P64
#21
I'm sorta new to the whole flux-level workings of disks, having only dealt with the GCR side of things previously. When you are referring to a 2.5us minimum flux pulse time, are you actually referring to the time between flux transitions, or are you referring to the duration of an actual pulse, which is the how long the induced voltage is present on the coil? I'm guessing it's the former, since the latter would likely be a far shorter duration, but I want to understand this.
Reply
#22
It's the duration of flux. There is no "in between time". The flux is measured from the flux reversal point. From the digital side, this is converted into a pulse that is equal to the time between flux reversals. So, you measure the time between each high to low transition. There is a low to high transition that occurs some arbitrary time after high to low transition, and this seems to be drive dependent. I have seen the time between high to low and then low back to high anywhere from 250ns to 1000ns. The duration of that pulse does not appear to matter, but I have seen this change widths during weakbits on some drives, so I am investigating whether or not that is reliable enough to use as a queue for weakbits.

Since you know GCR, you can appreciate this information on converting flux to GCR, and once you understand it you will be looking at everything from a flux level... proving some things like V-Max using a particular number of 1 bits in a row for their syncs.

As you know, there are 4 valid densities for each flux duration - 3.250-4.000us. Data is encoded as 1x/2x/3x, and one special case of 12us-13us. Normally, GCR is encoded as 3 zones of 4us/8us/12us per bit cell. But CBM uses its densities so you get 3.25us/6.50us/9.75us for density level 1 (tracks 1-17), 3.50us/7.00us/10.50us for density level 2 (tracks 18-24), 3.75us/7.5us/11.25us for density level 3 (tracks 25-30), and 4.00us/8.00us/12.00us for density level 4 (tracks 31-25).

The flux duration (4/8/12 etc.) encodes the actual GCR bit in a packed bit array. Let's just use 4/8/12 for example:

A flux duration of 4us = '1'.
A flux duration of 8us = '01'
A flux duration of 12us = '001'

So, if you had a stream of flux transitions with durations of 4us/4us/8us/12us/4us, the converted data would be:

1/1/01/001/1 - which makes 8 bits (11010011) and is equal to $D3 in GCR.

There is a special case (a 5th density really) where 12.250, 12.500, and 12.275 are encoded as '0001', which was thought to be illegal because of the 3 zero bits in a row. Not the case for sure, and V-Max uses this extensively. Go take a look at track 20 on V-Max stuff (which you know well). Look at the protection check where it looks for the 5A 5A 55, 5A 5A FF, and then 5A 5A 37. Notice that 5A37 has 3 zero bits in a row. Sinbad has a ton of actual usable track data that was encoded this way.

Another example is the sync checking for V-Max. You can look at the V-Max syncs using my analyzer, move the cursor to the first FF you see in a series of sync marks and then switch to flux mode. You will see the flux times. If you are using a 360 RPM drives, 1 bits will be 3500ns/25/~1.2 = 0x0074. So, you will see values of probably 0x006F through 0x007A, depending on the speed variation and such for all 1 bits on track 18-24 (3500ns). The flux width varies, depending on the data rate and drive speed but using a window comparator you can convert a flux time with +/- 15% variation for each flux duration and get perfect GCR, even recovering bits that are outside of what is considered normal.
Reply
#23
Wouldn't the 0001 stream normally correspond to a flux timing of 13us at density 1, 14us@d2, 15us@d3, and 16us@d4? Is it 12.25us-12.75us only in the V-Max case since they slowed down the drive (and therefore increased density)? Even then, that density increase seems a bit on the high side at 6%. Even those insanely dense tracks on DoTC that are ~8000 bytes are only about 4% denser than normal.

I'd imagine that the 2.5us lower limit on flux timings for 1541 disks is largely academic since you can't get data that dense and still be readable by that drive anyways, could you? That's already a good 23% denser than the max density you can normally write at with a 1541, and would be equivalent to writing at ~230RPM.
Reply
#24
No, the 2.5us doesn't matter for data (because valid data has to be >3us), but for weakbits it does to be accurate.

The 0001 value is only available as 12.250-12.750, anything over 13us is considered a weakbit, and anything under 2.9us is a weakbit. 0001 is a very unique case for the ASIC, and I actually think that it is a unintentional side affect when the controller clocking exceeds the 12us range, but does not exceed some other theshold (~13us) that causes a timer reset. The range under the 1541-II and 1571 is slightly higher, up to 14us is supported as still being 0001.
Reply




Users browsing this thread: 1 Guest(s)