X3T9.2/88-039 April 18, 1988 To: John Lohmeyer, X3T9.2 Chairman From: Bret Weber, NCR Corporation Subject: Proposed clarification to ESDI The current wording in ESDI seems to imply that drive manufacturers may arbitrarily split the ISG before and after Index/Sector. This can create a timing problem for controllers if too little gap is placed before Index/Sector. NCR is proposing that the following changes be made to ESDI to clarify the timing requirements. Changes are identified with underscore and strike-out. cc: I. Dal Allan 7.7.1.6 Specific Configuration Response If command modifier bits 0001-1111 are used, the specific configuration information shown in Table 7-12 is returned for each Request Configuration command with those modifiers. +---------+ +-------------------------------------------------------------+ |Command | | | |Modifier | | Configuration Response | |Bits 11-8| | | +---------+ +-------------------------------------------------------------+ | 0 0 0 1 |#| Number of Cylinders - Fixed (FIXCYL) | | 0 0 1 0 |#| Number of Cylinders - Removable Media (0 if not) (REMCYL) | | 0 0 1 1 | | Number of Heads | | | | Bits 15-8 Removable Drive Heads (REMHDS) | | | | Bits 7-0 Fixed Heads (FIXHDS) | | 0 1 0 0 |#| Minimum Unformatted Bytes per Track | | 0 1 0 1 |#| Minimum Unformatted Bytes per Sector (Hard Sector only) | | 0 1 1 0 |#| Number of Sectors per Track (Hard Sector Only) | | | | Bits 15-8 Reserved = 0 | | | | Bits 7-0 Sectors per Track | | 0 1 1 1 |#| Minimum Bytes in ISG Field (not inc InterSector Speed Tol) | | | | Bits 15-8 ISG Bytes after Index/Sector Pulse to WSplice| | | | Bits 7-0 Bytes per ISG | | 1 0 0 0 |#| Minimum Bytes per PLO Sync Field | | | | Bits 15-8 Reserved = 0 | | | | Bits 7-0 Bytes per PLO Sync Field required after | | | | READ GATE is asserted | | 1 0 0 1 | | Number of Status Words Available | | | | Bits 15-8 Number of Extended Status Words | | | | Bits 7-0 Number of Vendor Unique Status Words | | 1 0 1 0 | | | | to | | Reserved = 0 | | 1 1 0 1 | | | | 1 1 1 0 |#| Seek Overhead Skew | | | | Bits 15-8 Cylinder Switch Skew | | | | Bits 7-0 Head Switch Skew | | 1 1 1 1 | | Vendor Identification (Optional - See Table 7-17) | | | | Vendor Id - Extended Information (See 7.7.4.2) | +---------+ +-------------------------------------------------------------+ Note: Removable heads map from 00 to (REMHDS-1) Fixed heads map from REMHDS to (REMHDS+FIXHDS-1) Removable cylinders map from 0000 to (REMCYL-1) Fixed cylinders map from 0000 to (FIXCYL-1) # This may be affected by Notched Drive operation. TABLE 7-12 MAGNETIC DISK SPECIFIC CONFIGURATION RESPONSE BITS IMPLEMENTORS NOTE: Controller manufacturers are dependent on ISG Gaps for head switching. To switch heads on a Hard Sectored Drive without incurring a rotation latency, the controller must perform several actions before the leading edge of Index since Index provides the only timing reference for the next sector. If Drive manufacturers have no preference as to where the ISG Gap resides with respect to Index/Sector, it is recommended that it be weighted so that the majority of the total ISG Gap falls before Index/Sector. This can be done by specifying a small percentage of the total ISG Gap in "ISG Bytes after Index/Sector" which forces the majority of the Gap to reside before Index/Sector. Drives that need a specific amount of the ISG to be after Index/Sector (such as some embedded servo drives) should specify the minimum amount needed after Index/Sector. 7.7.1.7 Seek Overhead Skew This information is supplied by the drive to assist the controller in determining the amount of skew necessary to allow contiguous data transfers. To provide granularity and consistency across all implementations the skew factor is returned as n/256 of the rotation time i.e. modulo 256. Example: A drive with 32 sectors/track spinning at 3,600 rpm with a 5 msec cylinder switch seek time, no overhead on head switch, and a skew value of 77 reported in bits 15-8 (60/3600*256=65.1 usecs per unit of skew and 5 msec/65.1 usec = 76.8). The controller uses this to allow an actual skew of 10 (77*32/256=9.6) sectors between cylinders excluding any controller overhead. Drives which deassert COMMAND COMPLETE on a head switch need to supply values that include both head switch and cylinder switch skew values, while others need only supply the cylinder switch value. The values reported by the drive are chosen by the manufacturer to suit its anticipated application and make no provision for controller overhead. __ INDEX/SECTOR ___/ \___________________________________________________ | *3 | | |<--- Address Area --->| --------+-----+----+--------+----+----+----+-----+-------+... *3 | *3 | *1| *1 | *1| *1| *1|*1 *2| *1 *3 | --------+-----+----+--------+----+----+----+-----+-------+ |PLO |SYNC| | |SEC-|FLAG|ADDR |ADDRESS| ISG |SYNC |PTRN|CYLINDER|HEAD|TOR |STA-|CHECK| PAD | |BYTES|BYTE|msb lsb| | |TUS |BYTES| BYTES | --------+-----+----+--------+----+----+----+-----+-------+ n | n | 1 | 2 | 1 | 1 | 1 | n | 2 | --------+-----+----+--------+----+----+----+-----+-------+... SECTOR __ __________________________________________________________________/ \_ | *3| |<--- Data Area --->| | ...+-----+-----+----+--------------------+-------+-------+-------+-------- |*1 *3| *3 | *1| *1 | *1 *2 | *1 *3 | *4 | *3 +-----+-----+----+--------------------+-------+-------+-------+-------- |WRITE|PLO |SYNC| | DATA | DATA |FORMAT | |SPL- |SYNC |PTRN| DATA FIELD | CHECK | PAD | SPEED | ISG | ICE|BYTES|BYTE| | BYTES | BYTES |TOL GAP| +-----+-----+----+--------------------+-------+-------+-------+-------- | n | n | 1 | n | n | 2 | n | n ...+-----+-----+----+--------------------+-------+-------+-------+-------- *1 These areas are examples only, and may be structured to suit individual customer requirements *2 The number of check bytes is controller-defined. *3 Established by device and reported in response to Request Configuration Commands. *4 Format Speed tolerance gap is required if REFERENCE CLOCK is not tied to rotational speed. The applicability of this gap is defined in the Configuration data. NOTE: All byte numbers indicated are minimums. FIGURE 8-1 FIXED SECTOR FORMAT 8.3.2 Intersector Gap (ISG) The minimum Intersector Gap size is determined from the configuration data. The Intersector Gap provides a separation between each sector. The gap size is chosen to provide for the following: a) Drive required write-to-read recovery time (the minimum time between negation of WRITE GATE and assertion of READ GATE or ADDRESS MARK ENABLE) which is specified in the "ISG Bytes after Index/SectorBytes per ISG" in Configuration Data Response. b) Other drive required ISG times. c) Variations in detecting INDEX and SECTOR.