throbber
United States Patent
`
`[19]
`
`Sangveraphunsiri et al.
`
`[11] Patent Number:
`
`5,590,375
`
`[45] Date of Patent:
`
`Dec. 31, 1996
`
`|||||||ll||Ill|l|||||||||I||||||||||||I||||||I|||||H||||Illlllllllllll||||
`US005590375A
`
`[54] APPARATUS FOR PERFORMING
`CONCURRENT SEEKS ON PLURAL
`INTEGRATED DRIVE ELECTRONICS (IDE)
`DISK DRIVES WITHOUT ADDITIONAL
`DEVICES
`
`[75]
`
`Inventors: Vic Sangveraphunsiri, San Clemente;
`Felix Pinai, Fountain Valley; Thomas
`Shu, Lake Forest; Cameron Spears,
`Diamond Bar, all of Calif.
`
`[73] Assignee: Advanced Logic Research, Irvine,
`Calif.
`
`[21] Appl. No.: 353,336
`
`[22]
`
`Filed:
`
`Dec. 5, 1994
`
`Related U.S. Application Data
`
`[63] Continuation of Ser. No. 935,713, Aug. 27, 1992, aban-
`doned, which is a continuation—in—part of Ser. No. 926,675,
`Aug. 10, 1992, abandoned.
`
`Int. Cl.6 ....................... G06F 7/00; G06F 13/00
`[51]
`[52] U.S. Cl.
`. 395/841; 395/44.1; 364/DIG. 1;
`364/236.2; 364/243; 364/243.7; 364/248.1;
`_
`364/256.8
`[58] Field of Search ....................... 369/14-15; 371/10.1,
`371/11.1, 51.1; 395/275, 425, 575, 800,
`840, 841, 441, 182.04, 182.05
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`................... .. 340/172.5
`11/1971 Balakian et al.
`3,623,006
`7/1975 Sordello
`.. 360/73
`3,893,178
`.. 318/338
`12/1980 White ........
`4,240,015
`360/98
`5/1981 Crawford ..
`4,270,154
`360/99
`11/1983 Wcnner
`4,414,591
`. 395/457
`.
`4,415,970 11/1983 Swenson et
`1/1985 Greer ............
`395/880
`4,494,196
`7/1985 Dean etal.
`4,528,626
`395/848
`..
`4,590,559
`5/1986 Baldwin etal.
`364/414
`4,638,189
`1/1987 Geannopoulos et al
`307/465
`2/1987 Allebest et a1.
`..
`4,644,515
`369/32
`
`4,670,714
`6/1987
`4,688,198
`8/1987
`
`
`
`
`
`367/70
`369/32
`95/185.07
`
`.
`
`
`
`9/1987 Sengupta ...............
`4,694,438
`4,701,896 10/1987 Allebest et al.
`4,817,035
`3/1989 Timsit
`.......
`8/1989 Kazama ........
`4,858,038
`
`(List continued on next page.)
`OTHER PUBLICATIONS
`
`Dell Computer Corporation, Dell, Summer 1991, p. 35.
`Dr. Jerry Lake, “Systems Effectiveness", Defense Systems
`Management College, Systems Engineering Management
`Department Fig. 1 (Jul. 1992).
`Murray Sargent & Richard Shoemaker, “The IBM Personal
`Computer from the Inside Out” p. 398 (Rev. Ed. 1986).
`Jerry M. Rosenberg, “Dictionary of Computers, Information
`Processing, and Telecommunications” p. 628 (2d ed. 1987).
`
`Primary Examiner—Lance Leonard Barry
`Attorney, Agent, or Firm—Popham, Haik, Schnobrich &
`Kaufman, Ltd.
`
`[57]
`
`ABSTRACT
`
`An interface allows a given CPU (Central Processing Unit)
`to communicate concurrently with a large number of disk
`drivesvin a high—performance, low-cost system. Plural seek
`operations can be performed concurrently, to serve a com-
`mon processor. Also, heterogeneous physical drives—oI any
`physical or logical configuration (storage capacity, number
`of heads, and so forth)—can be combined into one or more
`“logical” drives as seen by a host operating system. An
`“on-board” embodiment provides an “enhanced” IDE (Inte-
`grated Drive Electronics) disk drive that is an extension of
`the industry-standard IDE drives, allowing an arbitrary
`number of independently seeking IDE drives on a conven-
`tionally single-seeking,
`two—drive—maximum bus.
`In a
`“paddle board” embodiment, low-cost IDE drives of arbi-
`trary physical size, storage capacity and geometry, can be
`combined simply and inexpensively into a high-perfor-
`mance storage device. For example, a 3.5"80 MB (mega-
`byte) drive cau be transparently combined with a 2.5" 60
`MB drive. The inventive concept can thus be embodied with
`either a “paddle board” controller (with standard IDE
`drives), or with no additional controller
`(employing
`“enhanced” IDE drives).
`
`12 Claims, 17 Drawing Sheets
`
`PROCESSOR
`l"‘BOARD
`
`
`
`Apple 1040
`
`U.S. Pat. 9,189,437
`
`Apple 1040
`U.S. Pat. 9,189,437
`
`

`
`5,590,375
`Page 2
`
`11/1992 Kaplinsky .......................... .. 307/272.2
`5,164,612
`3/1993 Anderson ............................... 371/51.1
`5,191,584
`7/1993 Hillis et a1.
`........................ 395/182.04
`5,202,979
`4/1993 Guimdon at al
`600/16
`5205 810
`8/1993 Parks etal. .......................... 361/729
`5,239,445
`5271012 12/1993 B1
`31
`182 04
`51274307 12/1993 Lea“‘“ 9‘
`---------- 395’360}39

`~
`9 -- --- --- ----- ---
`v- ----
`§1;;=n°Y:1ta1- v
`3332:?
`
`
`
`395/182.03
`395/841
`............................. 395/404
`
`-
`eet
`4/1994 Isman et al.
`4/1995 Parks ..........
`12/1995 Parks et a1.
`
`'
`
`,

`5,301,310
`5.404.454
`5,473,761
`
`U.S. PATENT DOCUMENTS
`51 2
`/1
`9 989 B““.‘”““ °“‘1' """""""""" 39 ’ 3 -05
`3/1990 Arm etal.
`360/69
`4/1990 CW2 "
`364/602
`6/1990 Fnssell ...........
`360/78.04
`1/1991 Dunphy,Jr.etal.
`. 395/182.05
`7/1991 H bart
`tal. .... ..
`.. 372/107
`8/1991 Lgwis
`307/475
`
`
`
`395/822
`.. 395/402
`.. 395/439
`395/834
`
`5,058,004 10/1991 Ravid ........ ..
`5,097,439
`3/1992 Patriquin etal.
`5,127,088
`6/1992 Takaxi
`.......... ..
`5,150,465
`9/1992 Bush et al.
`..........................
`
`4
`487
`°’6 3
`’
`4,910,614
`4’92°’5°6
`4,935,828
`4,989,206
`5,033,061
`5,043,606
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 1 of 17
`
`5,590,375
`
`
`
`
`IDE |NTERFACE/
`
`CONNECTOR
`
`PRIOR ART
`
`F/6‘./
`
`ISA/EISA BUS
`
`L__ _ _ _ _ _ _ _ PROCESSOR BOARD
`B/A|ULTl‘SEEK IDE
`00
`PADDLE BOARD R
`
`I
`
`I
`
`-— - ————-———..-——,
`
`:II
`
`___..l.__
`
`“*1
`I
`E
`,
`.
`L _ _,___1
`l|8~’
`
`IDE
`DRIVE 1
`
`IDE
`DRIVE 2
`
`IDE
`DRIVE 3
`
`I
`|DE
`DRIVE 4
`
`HO
`
`||2
`
`H
`
`H
`
`F/G. 2/I
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 2 of 17
`
`5,590,375
`
`MULT|’SEEK
`IDE CONTROLLER
`
`T PC SYSTEM
`/486 TM
`
`
`
`HOST PC
`
`TEM
`
`
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 3 of 17
`
`5,590,375
`
`
`
`PROCESSOR
`I~’BOARD
`
`I
`
`I
`I
`I
`I
`I
`I
`,
`I
`I
`
`I I
`
`I
`I
`I
`I
`
`
`
`HARD DISK
`#2
`
`HARD DISK
`#3
`
`HARD DISK
`4|
`
`I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`I
`
`I
`I
`I
`I
`I
`
`A SA/EISABUS
`PROCESSOR BOARD
`
`- — _ _ _ — - -L_I3R—OC_IE—SS—C)—R_S—YS—1'-EM _ _ _ — _— ———
`
`F/G. 2E
`
`

`
`l||n|IlnIl|lI|I|||I|.|n||||..|ulu|II|l|I|l~I||.IIIIIIr|
`
`
`
`om<om_mommmuommx.
`
` U.S.Patent
`
`
`
`
`
`mam35.28mmmmE8<<mm_\<m_om
`
`omm
`
`mo.-
`
`26.-
`
`Dec.31,1996
`
`o_m
`
`mm>_mumz<E
`
`mam«:3<m_m\<m__
`
`won
`
`Om__w>mm>_m5_uoDuOmOQ
`
`Sheet_4of17
`
`
`<om>m-
`ol vm¢lIEHmo_-
`mo“.moZmzz8mmoouwoEu.90cmEomlmmfi«N
`
`
`
`
`
`zzouN<..o.mmmcm
`
`.E<mo:_E
`
`5,590,375'
`_.|IIIIIIIIIIIIIIIIIIIIII
`
`omm
`
`
`
`
`
`mm>_mom><,._m\mm:m<2mmm
`
`
`

`
`Llwn
`
`eD
`
`c
`
`1
`
`1.9
`
`6
`
`LleehS
`
`71cl.0
`
`5
`
`WomvamW._wéE<2om.m<m_o
`
`
`
`D...mm.._m2<E<2om._m<zm
`
`
`
`.."4...a3mm.52:mamS4":1..<_2E.m..::moo./<m_m2m_
`
`3
`
`5
`
`wI
`
`mmmm8<_
`
`5.
`
`ownzw<5,u.H-E29-.<
`«M.n¥.aaufl=.m.mmE«m.aIEmmmm
`
`
`9...._..<..r<_2.43.2IE0IlfimfiIi9.mmo8uo
`
`mwm—
`
`
`

`
`3U
`
`et
`
`D
`
`%Um
`
`U.m6am
`
`5»
`
`H
`
`
`
`om._<zo_m.5528:9.mo_.N<-o<
`
`
`
`
`
`Ma.53moin.wMb\K
`
`
`
`mm_uEE»z_E=$mfiz_
`
`wmam5.8
`
`S.
`
`mamawewon
`
`
`
`}.5528ma.
`
`

`
`f..mfiofizmoamo.
`xmmm-:..5s_.Pn_.o<:amo_
`
`AWo_m
`
`
`%H9_
`
`_.uuuuuuuI'LMmz:em_:»
`...o5%.
`1,_mam«:3we1_vowJ.mamm"SE28moD_mom_m_.oE<B>.E..r._
`
`57
`
`_m_-o<EBo_
`
`t_.1«._\weW_.o.2h_....uS.u..o...._
`_____BEE.U__..55..
`r__.,.m..myM_amomzmoL,.mobmzzou
`
`_.ll|»|I.LIII.I.“cmm>_mo_
`
`~.os.<8e5E.5,9m
`3,EBQ4..10.E8959:0,©\In\
`BEE
`.\.O=N8
`
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 8 of 17
`
`5,590,375
`
`IDE CONTROL BUS
`
`
`
`
`I DE DATA BUS
`
`
`
`
`_—.1—..:_—.—__.———-_-.—-——
`
`IDE CONNECTOR
`
`PROCESSOR__BOARD
`
`|
`
`
`
`
`
`MASTER
`
`MULT|‘SEEK IDE
`MULTI'SEEK IDE
`DRIVE
`DRIVE
`W2
`
`
`
`
`
`SLAVE
`
`F/6? 7
`
`I I I I
`
`PHYSICAL DRIVE STATUS
`LOGICAL REQUESTS AND DATA
`
`
`I
`0
`I
`I IIOO
`' '2
`I HOST 05
`I I4...
`I
`I
`I
`
`
`
`
`I I I I I I I
`
`
`
`LOGICAL DATA AND STATUS
`
`PHYSICAL DRIVE COMMANDS
`
`
`
`LOGICAL PARAM.
`OS SPECIFIC INFO.
`
`PHYSICAL DRNE FARAM.
`DRIVE NUMBER
`
`CONFIGURATION INFO.
`
`H ARDWARE
`
`"20
`
`
`
`TRANSLATION TABLES
`
`F/G. 8
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 9 of 17
`
`5,590,375
`
`I252
`
`PORT
`SELI§E§_'°”
`
`I }
`
`I
`,
`I
`I
`
`I
`
`I
`I
`'
`I
`
`I
`I
`
`I254
`INTERRUPT
`CONTROL
`
`REG‘
`
`l
`STANDARD
`IDE REG.
`I25
`
`I255
`DRIVE
`COMMNDS:
`I
`
`~
`
`I202
`
`DRIVE ID
`
`1253
`“W5 ‘D
`
`I
`'
`I
`
`LOGICAL SECTOR
`
`i REQUEST(READ)
`
`I
`:
`I
`IIOO I
`
`HOST '
`Os
`I
`I
`:
`;
`I
`
`I26‘
`
`DRIVE STATUS
`
`‘304
`
`II
`
`LOGICAL STATUS
`I (READ COMPLETE)
`
`I206
`
`I270
`
`
`
`INTERRUPT
`STATUS
`REG.
`
`I26
`
`HI
`
`|
`I
`
`I I I
`
`I I I
`
`HARDWARE
`
`I I E
`
`I
`
`DATA TRANSFER AREA
`
`F/6‘. 9
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 10 of 17
`
`5,590,375
`
`I352
`
`I :
`
`I35I
`
`DRIVE ID
`
`I
`
`,
`
`I
`
`I
`:
`
`I
`
`I
`'
`:
`I
`
`I353
`°“'“E'°
`
`I355
`
`DRIVE
`
`COMMANDS:
`
`I
`_,
`I
`'
`'
`
`'36‘
`DRIVE STATUS
`
`PORT
`
`SELREE .'°”
`
`|354
`'E‘3E$I‘§8ET
`REG.
`
`
`
`STANDARD
`
`[05 R53
`
`.
`
`I356
`
`IN-rERRUp1'
`STATUS
`R55
`
`I360
`
`‘
`
`I
`I
`
`LOGICAL SECTOR
`I REQUESTIWRITEI
`
`502
`
`I
`
`I
`I
`liq-Q :
`”8§T I
`
`I
`
`I‘
`
`I
`I
`I
`
`.
`
`I304
`
`II
`
`LOGICAL STATUS
`' (WRITE COMPLETE)
`
` HARDWARE
`
`DATA TRANSFER AREA
`
`F/G.
`
`/O
`
`

`
`&U
`
`Llm%
`
`mD
`
`9D%
`
`H.mua.mS
`
`5
`
`573,
`
`
`
`m><E<PE:mmm»z_ezazmamansV55
`
`6So:
`
`
`mm>_m_QmZO_._.UDm.—.mZ__2m»m>m
`...O:OO:
`
`
`
`
`00,m._mS
`
`5,oz_&<_2mofimm
`
`
`
`
`
`._<u_m>:.n_4t._<u_oo._%\\.0\I.\
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 12 of 17
`
`5,590,375
`
`ASSOC
`HOST
`PRIORITY STATUS INT
`
`RW BUFFPTR
`
`TRANSACTION o
`
`
`
`TRANSACTION I
`
`'
`
`TRANSACTION 2
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 13 of 17
`
`5,590,375
`
`RECEIVE
`ST
`
`RE UE0
`
`TRANSLATE
`LOGICALTO
`PHYSICAL
`
`2500
`
`2505
`
`
`
`
`RECEIVE
`LOGICAL
`
`SECTOR
`
`REQUEST
`
`
`
`
`
`
`TRANSLATE
`TO PHYSICAL
`SECTORS
`
` SELECT
`TARGET
`(PHYSICAL)
`
` SEND
`
`STANDARD
`COMMAND(S)
`
`
`F/G /6
`
`F/G. /5
`
`ENABLE
`I NTERRUPT
`
`25|O
`
`SEND
`COMMAND
`TO DRIVE
`
`-
`
`2530
`
`2540
`
`2570
`
`2575
`
`25 80
`
`SET BITZ
`‘DRIVE
`-TRANSACT ION
`
`
`
`PROCESS
`I NTERRUPT
`
`I RESETPT
`NT RRU
`BIT
`
`YES
`
`2590
`
`COMPLETE
`
`

`
`U.S. Patent
`
`Dec. 31,‘ 1996
`
`Sheet 14 of 17
`
`5,590,375
`
`‘bHANNEu%o
`
`200
`
`SELECT THE CHANNEL
`
`210
`
`3220
`
`in
`
`YES
`
`
`
`3230
`NO IS
`THERE MORE
`
`» CHANNE
`
`326 0
`
`ET REQUEST FROM
`QUEUE
`
`
`
`3250
`
`3270
`
`3240
`
`UPDATE TASK
`
`F/G. /7
`
`
`
`3280
`
`ENABLE CHANNEL
`I NTER RUPT
`
`$ND COMMAND T0
`CHANNEL
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 15 of 17
`
`5,590,375
`
`33IO
`
`3320
`
`READ INTERRUPT STATUS
`
`REGISTER
`
`SELECT INTERRUPTING
`CHANNEL
`
`
` IS IT DM ‘
`
`DATA REQ INT
`
`3330
`
`NO
`
`YES
`
`IOXN8I
`
`P
`
`
`
`PROCESS DMA DATA REQ
`INT ACK
`
` DMA REQ
`OMP INT’
`
`RETURN To03'PROCESSDMA REQ
`
`COMP INT ACK
`
`3380
`
`3360
`
`PROCESS DRIVE
`INTERRUPT
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 16 of 17
`
`5,590,375
`
` SELECT DRIVE n
`
`4H3
`
`LOCK DMA FOR DRIVE n
`
`3360
`
`
`
`
`
`3420
`
`PROGRAM H$T DMA
`0 1
`I 0
`I
`
`
`
`LET DMA START
`
`A A .
`
`RETURN TU 03
`
`3380
`
`
`
`F/G. /9
`
` SCHEDULE NEXT REQUES
`
`FROM DRIVE n
`
`RETURN TO OS
`
`3380
`
`F76. 20
`
`

`
`U.S. Patent
`
`Dec. 31, 1996
`
`Sheet 17 of 17
`
`5,590,375
`
`3370
`
`SELECT DRIVE n
`
`36lO
`
`READ TRANSFER STATUS
`FROM DRIVE n
`
`%
`
`620
`
`PROCESSING INTERRUPT
`
`CLEANING
`
`SCHEDULE NEXT REQUEST
`
`FOR DRIVE n
`
`

`
`1
`APPARATUS FOR PERFORMING
`CONCURRENT SEEKS ON PLURAL
`INTEGRATED DRIVE ELECTRONICS (IDE)
`DISK DRIVES WITHOUT ADDITIONAL
`DEVICES
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This is a continuation of U.S. patent application Ser. No.
`07/935,713, filed Aug. 27, 1992 now abandoned, which was
`a continuation-in-part of Ser. No. 07/926,675, filed Aug. 10,
`1992 now abandoned.
`
`10
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates to interfaces between pro-
`cessors and peripheral devices. More specifically, the inven-
`tion relates to interfaces between processors and disk drives
`which allow a larger number of disk drives to be controlled
`by a single processor and an existing disk controller, thereby
`allowing concurrent seeks on more than one drive.
`2. Related Art
`
`Various patents disclose control schemes for storage
`media.
`
`For example, U.S. Pat. No. 3,623,006 (Balakian et al.)
`shows an early example of a “disk file optimizer” which
`selects a most optimum request for execution based on
`minimum latency time. U.S. Pat. No. 3,893,178 (Sordello)
`provides synchronized rotation of several disks to minimize
`latency time, when switching from one disk to another. U.S.
`Pat. No. 4,270,154 (Crawford) discloses a system in which
`several heads (or stacks of heads) are provided to minimize
`latency time.
`In U.S. Pat. No. 4,494,196 (Greer), a controller 20 is
`disposed between a central processor unit 10 and N periph-
`eral data storage units 12-1 through 12-N. The Greer con-
`troller focuses on controlling data storage devices having
`different data transfer rates, using a corresponding number
`of instruction storage units.
`U.S. Pat. No. 4,858,038 (Kazama) discloses a set of disk
`drive selector circuits for a disk drive controller which allow
`different “types” of disk drives to be selected.
`U.S. Pat. No. 4,910,614 (Arai et al.) discloses a disk
`controller which is disposed between a host processor and
`several disk drives of diiferent types. The focus of the Arai
`et al. patent is the presence of two types of memories: a first
`type of memory in one-to-one correspondence with the disk
`drive units, and a second set of memories defining the types
`of disk drives.
`
`U.S. Pat. No. 4,935,828 (Frissell) discloses a seek multi-
`tasking disk controller in which a disk control unit 102
`(Frissell’s FIG. 2) is disposed between a CPU 201 and
`several disk drives 104, 106. As explained with reference to
`Frissell’s FIGS. 6 and 7, during a time when a data transfer
`command is deferred in one disk drive, a seek command
`may be addressed to another disk drive. The Frissell multi-
`tasking controller depends heavily on the relative location of
`the head and sectors on one of the disk drives.
`
`Finally, U.S. Pat. No. 5,097,439 (Patriquin et al.) is
`directed to interfacing several disk drives to an ATTM-based
`host computer. The Patriquin et al. patent focuses on a
`“subsystem” which is an interface between the host com-
`puter’s buses and many disk drive “clusters” the subsystem
`allowing substantial expansion. The Patriquin et al. system
`
`20
`
`30
`
`35
`
`45
`
`50
`
`60
`
`65
`
`5,590,375
`
`2
`
`may carry out seeks concurrently in more than one disk
`drive.
`
`From the foregoing patents, it is apparent that various
`schemes for handling more than one recording medium are
`known in the art. However, the known system possess one
`or more disadvantage which are of concern from either or
`both a cost or performance standpoint. For example, it is
`known in the art that additional drives may be added to a
`given computer system, but only through costly addition of
`additional software drivers. Alternatively, a known solution
`is to adapt a given disk drive to such a system, but this
`adaptation of the disk drive’s interface is also costly. More-
`over, the addition of a larger number of disk drives to a
`system has often slowed the performance of the overall
`system, even in those which conceivably could perform
`concurrent seek operations in different disk drives.
`FIG. 1 illustrates an ISA/EISA (Industry Standard Archi-
`tecture/Extended Industry Standard Architecture) bus 100
`connected in a standard configuration to first IDE (Inte-
`greated Drive Eklectronics) drive 110 and a second IDE
`drive 112 via an IDE interface/connector 104. The ISA/EISA
`bus 100 is controlled by a processing unit such as CPU
`(Central Processing Unit) 102.
`On a standard IDE interface, at most two drives can be
`connected to the ISA/EISA bus. In the known arrangement
`illustrated in FIG. 1, the CPU selects one of the drives 110,
`112 by setting bit 4 of I/O register 1F6H to 0 or 1. This bit
`enables I/O (Input/Output) decoding to the address ranges
`1FOH-1F07H and 3F6H—3F7H, as well as to select the
`source of interrupt line IRQ14 used for disk 1/0 in ISA/EISA
`systems. In this known arrangement, only one IDE disk
`drive can be selected at any given time. One operation must
`be completed on a first disk drive, before another operation
`can begin with respect to another drive. Therefore, concur-
`rent multi-seek operations carmot be performed at all in two
`disk drives in the arrangement illustrated in FIG. 1.
`The FIG. 1 arrangement including an existing IDE inter-
`face with a maximum of two disk drives is adequate for
`operating systems such as MS-DOSTM, because the envi-
`ronment requires only sequential disk accesses. However, in
`other operating systems, such as “lVIICROSOFI"’TM “WIN-
`DOWS”TM, “NOVELL”TM “NETWARE”TM, or “UNIX”TM,
`concurrent requests may be pending due to multi-tasking
`and multi-user capability. If an operating system desires
`access to more than one disk drive at a time, or if commands
`are desired to be sent to different disk drives simultaneously, ,
`concurrent seeking on more than one disk drive is required.
`If this can be achieved, faster data acquisition is possible,
`and the system would have higher performance than one
`with a sequential request access.
`As described to some extent in the above-listed patents, as
`well as in the SCSI (Small Computer System Interface)
`controllers, seeks can be perfonned on more than one disk
`drive at a time. However, the cost of the SCSI controller is
`high, and the SCSI protocol interface involves substantial
`overhead. To date,
`there is no known system in which
`multi-seek operations can be performed while nrinimizing
`both cost and overhead. It is especially desirable to provide
`this multi-seek capability on disk drives which do not
`require special interface hardware or software, but may
`employ a conventional (for example, IDE) interface arrange-
`ment.
`
`Therefore, there is a need in the art to provide means for
`interfacing a processor with more than one disk drive at the
`same time, thereby allowing concurrent multi-seek capabil-
`ity even when both drives are standard IDE drives, in a
`
`

`
`3
`
`4
`
`5,590,375
`
`low-cost, high performance system especially suitable for
`multi-tasking.
`
`SUMMARY OF THE INVENTION
`
`The present invention overcomes the limitations of the
`system of FIG. 1 by providing an interface which allows a
`given CPU to communicate concurrently with a large num-
`ber of disk drives in a high-performance, low-cost system. In
`particular, the present invention allows more than one seek
`operation to be performed at the same time, in serving a
`common processor.
`
`10
`
`Additionally, the present invention can combine standard
`physical drives of any physical or logical configuration
`(storage capacity, number of heads, and so forth) into one or
`more “logical” drives. That
`is, heterogeneous physical
`drives can be combined into one or more homogeneous
`“logical” drives as seen by a host operating system.
`Advantageously, the present invention provides an inter-
`face which is downward compatible with the existing inter-
`face between the processor bus and the disk drives. Although
`the invention provides control for additional disk drives, no
`additional disk controller is required, resulting in consider-
`able improvements in system cost, performance, mainte-
`nance cost, flexibility, and reliability.
`The invention not only provides increased storage capac-
`ity, but also higher performance and improved price/perfor-
`mance ratios. The invention creates an environment,
`in
`which “standard” (lower performance) disk drives having
`standard interfaces not allowing concurrent seeks, may be
`placed,
`the environment allowing the various drives to
`independently perform concurrent seeks. In this manner,
`performance in accessing randomly located files is increased
`in a nearly proportional fashion, with n drives providing
`almost n times the performance of a single drive.
`Supplemental enclosures external to the computer chassis,
`additional power supplies, special cabling, and the like, are
`not required to implement the present invention. Rather,
`standard electrical and physical interfaces (connectors and
`cabling) may be employed in implementing the invention,
`while obtaining increased capacity and performance, main-
`taining a storage device addressing scheme which preserves
`the simplicity of the CPU’s addressing of data locations,
`achieving an improved price/perforrnance ratio, and main-
`taining low cost and a small parts list.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention is better understood by reading the follow-
`ing Detailed Description of the Preferred Embodiments with
`reference to the accompanying drawing figures, in which
`like reference numerals refer to like elements throughout,
`and in which:
`
`FIG. 1 is a block diagram illustrating a known arrange-
`ment of an ISA/EISA bus 110 operationally connecting a
`processor 102 and two disk drives 110, 112 using a conven-
`tional IDE interface.
`
`FIG. 2A is a high-level block diagram showing a “paddle
`boar ” implementation of the multi-seek unit of the present
`invention, the paddle board being disposed between bus 100
`and a larger number of disk drives 110, 112, 114, 116. FIG.
`2B is a perspective view of an embodiment of the multi-seek
`unit according to the paddle board embodiment, in which the
`multi-seek unit is on a paddle board installed in an ATTM-
`compatible personal computer.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`FIG. 2C is a high-level block diagram showing an “on-
`board” implementation of the present invention, in which
`the multi-seek unit uses an ATTM-compatible computer’s
`standard IDE interface in conjunction with special Multi-
`seek IDE hard drives. FIG. 2D is a perspective view of the
`“on-boar ” embodiment, in which drives 210, 212, 214, 216
`are “daisy-chained”.
`FIG. 2E illustrates an embodiment of the invention in
`which multiple disk drives are mounted on a single printed
`circuit card, all the drives being capable of concurrent seek
`operations serving a common processor in accordance with
`the “paddle board” embodiment shown in FIGS. 2A—2B, it
`being understood that both the paddle board embodiment
`(FIGS. 2A-2B) and the on-board embodiment
`(FIGS.
`2C—2D) could be implemented on a single card.
`FIG. 3 illustrates in greater detail the interface in the
`known system of FIG. 1.
`FIG. 4 is a high-level block diagram of paddle board
`circuitry which allows an improvement in performance over
`the known system in FIG. 3.
`FIG. 5 illustrates a known interface to a standard IDE
`drive.
`
`FIG. 6 is a high-level block diagram illustrating an
`improved interface to a standard IDE drive, according to the
`on-board embodiment of the present invention.
`FIG. 7 is a block diagram illustrating connection of master
`and slave Multi-seek IDE disk drives in a configuration
`supported by the present invention.
`FIG. 8 is a context diagram schematically illustrating how
`the preferred software driver resides between the host oper-
`ating system and the disk drive hardware.
`FIG. 9 schematically illustrates the data flow between the
`host operating system and the disk drive hardware during a
`read operation, as managed by a software driver according
`to the present invention.
`FIG. 10 schematically illustrates the data flow between
`the host operating system and the disk drive hardware during
`a write operation, as managed by a software driver according
`to the present invention.
`FIG. 11 schematically illustrates exemplary software
`architecture according to a preferred embodiment of the
`present invention.
`FIG. 12 illustrates an exemplary task queue of the FIG. 11
`software architecture.
`
`FIG. 13 illustrates an exemplary sector mapping table
`according to the FIG. 11 software architecture.
`FIG. 14 illustrates an exemplary pending interrupt table
`according to the FIG. 11 software architecture.
`FIG. 15 is a flow chart illustrating the driver’s operation
`using the pending interrupt table of FIGS. 11 and 14.
`FIG. 16 is a flow chart illustrating a multi-seek driver
`executive according to a preferred embodiment.
`FIG. 17 is a flow chart illustrating channel request queue
`processing in more detail than FIG. 16.
`FIG. 18 is a high-level flow chart illustrating the operation
`of interrupt service routines, to be executed in response to
`completed executed command sequences.
`FIGS. 19, 20, and 21 are flow charts illustrating particular
`interrupt service routines for DMA (Direct Memory Access)
`data request interrupts, DMA request completed interrupts,
`and disk interrupts, respectively.
`DETAEED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`In describing preferred embodiments of the present inven-
`tion illustrated in the drawings, specific terminology is
`
`

`
`5
`
`6
`
`5,590,375
`
`employed for the sake of clarity. However, the invention is
`not intended to be limited to the specific terminology so
`selected, and it is to be understood that each specific element
`includes all technical equivalents which operate in a similar
`manner to accomplish a similar purpose.
`In addition to the more general problems addressed
`above, the multi-seek IDE embodiments described herein
`address problems of high cost and high overhead associated
`with interfaces such as the SCSI implementations. First, the
`need for an expensive SCSI controller is eliminated. In
`contrast, an IDE interface is standard on nearly all present-
`day PC/ATTM compatible systems. Second, IDE hard drives
`are more efficient than SCSI hard drives, requiring fewer I/O
`cycles per operation.
`More generally, an interface according to the present
`invention allows a given CPU to communicate concurrently
`with a large number of disk drives in a high-performance,
`low-cost system. In particular, more than one seek operation
`can be performed at the same time, in serving a common
`processor. Additionally, the present invention can combine
`standard (for example, IDE) physical drives of any physical
`or logical configuration (storage capacity, number of heads,
`and so forth) into one or more logical drives. That is,
`heterogeneous physical drives can be combined into one or
`more homogeneous “logical” drives as seen by a host
`operating system. When applying the invention to IDE
`drives, a first, “on-boar ” embodiment provides a “multi-
`seek IDE disk drive” that is an extension of the industry-
`standard IDE drives, allowing an arbitrary number of inde-
`pendently seeking IDE drives on the formerly single-
`seeking, two-drive-maximum bus. Low-cost IDE drives of
`arbitrary physical size, storage capacity and geometry, can
`be combined simply and inexpensively into a high perfor-
`mance multi-seek disk drive. For example, a 3.5" 80 MB
`drive can be transparently combined with a 2.5" 60 MB
`drive.
`
`The concept can be embodied in several implementations,
`such as one using a “paddle boar ” controller (with standard
`IDE drives), or another using no additional controller (but
`with enhanced IDE drives). These two implementations are
`shown respectively in block diagram form in FIGS. 2A and
`2C, and in perspective view in FIGS. 2B and 2D. The
`multi-seek paddle board (FIGS. 2A, 2B) allows use of
`unmodified, conventional IDE disk drives. In contrast, the
`on-board
`implementation
`(FIGS.
`2C,
`2D)
`employs
`“enhanced” (or “mu1ti-seek”) IDE drives.
`FIG. 2E illustrates an embodiment of the invention in
`which multiple disk drives are mounted on a single printed
`circuit card, all the drives being capable of concurrent seek
`operations serving a common processor in accordance with
`the “paddle boar ” embodiment shown in FIGS. 2A—2B. It
`is understood, however, that both the paddle board embodi-
`ment (FIGS. 2A—2B) and the on-board embodiment (FIGS.
`2C-2D) may be implemented on a single card.
`In FIG. 2E, the board is shown poised for connection to
`a standard«ISA/EISA bus. FIG. 2E drarnatizes the inven-
`tion’s ability to provide plural physical disk drives in a
`simple configuration that presents to the system CPU a
`single logical disk drive of substantial aggregate storage
`capacity. Moreover, performance in addressing randomly
`located files is nearly proportional to the number of physical
`drives in the system, despite the fact that multiple concurrent
`seeks are performed without the CPU’s specific supervision.
`A preferred embodiment of the multi-seek unit 200 is
`preferably implemented using a PLSITM 1032 Program-
`mable Large Scale Integrated Logic Device available from
`
`20
`
`25
`
`30
`
`35
`
`,
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`LATTICE SEMI—CONDUCTOR CORP., 555 N. E. Moore
`Court, Hillsboro, Oreg. 97214 (telephone l-800-LATTICE).
`As readily appreciated by those skilled in the art,
`the
`LATTICE PLSITM 1032 is a programmable high-density
`logic device having a large number of registers, I/O pins,
`clock input pins, and a “global routing pool” which allows
`complete interconnectivity between all of the elements. This
`chip, readily capable of programming by those skilled in the
`art, enables fairly complex logic functions to be imple-
`mented without using a large number of discrete elements or
`integrated circuits, providing the advantage of reduced size.
`By reference to the LATTICE data sheet such as that dated
`October 1991 as well as to the accompanying description of
`the present invention, those skilled in the art are readily
`capable of implementing this multi-seek unit in a workable
`computer system. The October 1991 LATTICE data sheet on
`the PLSITM 1032, being documentation of a type which is
`readily available to those skilled in the art, need not be
`further described herein.
`
`Referring to FIG. 2A, a high-level block diagram of a
`paddle board embodiment of the present invention is illus-
`trated. A paddle board multi-seek unit 200 embodying
`principles of the present invention is illustrated between
`ISA/EISA bus 100 and a plurality of IDE drives 110, 112,
`114, and 116. A larger number of drives may readily be
`supported, as indicated by element 118. Comparing FIG. 2A
`to FIG. 1 in view of the following discussion, those skilled
`in the art will readily appreciate that the present invention
`provides greater effective storage capacity that is readily
`accessible to CPU 102, in a high-perforrnance system not
`requiring additional software drivers associated with CPU
`102 or specialized interface software in IDE drives 110-118.
`FIG. 2B illustrates in perspective View a multi-seek unit
`in the form of a multi-seek paddle board 200. The paddle
`board 200 is shown plugged into the ATM bus connector
`card, and extending between the bus and a rear connector
`allowing communication with a plurality of disk drives 110,
`112, 114, 116, and so forth. In the illustrated arrangement,
`the various disk drives do not require any special software
`or hardware interface, but may include only the conven-
`tional IDE interface.
`
`FIG. 2C is a high-level block diagram showing an “on-
`board” implementation of the present invention, in which
`the multi-seek unit uses an ATTM-compatible computer’s
`standard IDE interface in conjunction with special multi-
`seek IDE hard drives 210, 212, 214, 216 and so forth.
`
`FIG. 2D illustrates in perspective view a multi-seek unit
`in the form of an “on-boar ” unit. An IDE cable connects the
`system processor board with a plurality of daisy-chained
`disk drives 210, 212, 214, 216, and so forth. The illustrated
`drives are preferably the “enhanced” IDE drives described
`with respect to FIG. 6.
`The operation of the paddle board embodiment is appre-
`ciated by referring to FIG. 4 and accompanying text below;
`the operation of the “on-board” embodiment is appreciated
`by referring to FIG. 6 and accompanying text below. More-
`over, a fundamental feature of the invention is that the host
`software for operating either embodiment remains the same
`(see FIGS. 11-21).
`Referring now to FIG. 3, the known interface arrangement
`of FIG. 1 is illustrated in greater detail. In particular,
`ISA/EISA bus 100 is illustrated as comprising an address
`and control bus 302 and a data bus 304. Data passes
`bi-directionally through a data transceiver 310, between
`ISA/EISA data bus 304 and a drive connector 350 that leads
`directly to the disk drive.
`
`

`
`7
`
`8
`
`5,590,375
`
`The transfer of data is governed by control and address
`lines passing through port decoder 320. Port decoder 320
`receives I/O read and I/O write control signals on paths 322
`and 324, respectively. An address enable control signal on
`path 326 enables the port decoder to recognize port address
`signals on paths 328. Port decoder 320 outputs hard drive
`channel select on paths 332, 334. The hard drive channel
`select signals are input to drive connector 350 to govern
`transfer of data between transceiver 310 and the hard drive
`connected to drive connector 350.
`
`As mentioned above, in the Background of the Invention,
`the known arrangement illustrated in FIGS. 1 and 3 allows
`only one of a maximum of two IDE disk drives to be
`accessed at any given time, in a configuration in which
`concurrent seek operations are not possible.
`Referring now to FIG. 4, the paddle board embodiment of
`the invention in FIG. 2A is illustrated in greater detail.
`ISA/EISA control bus 302, address bus 303 and data bus 304
`are connected to port decoder 320 and transceiver 310, in the
`same manner as in FIG. 3.
`
`According to the invention, each paddle board card may
`be implemented an I/O-mapped interface card. Each card is
`assigned a unique I/O address (such as 0x130, 0x170, x1B0,
`xlF0), a unique system interrupt (such as IRQIO, IRQ11,
`IRQ14, IRQ15), and a unique DMA Request (such as
`DRQO, DRQ5, DRQ6, DRQ7). A software driver, logically
`residing between the paddle board and the host processor,
`manages communication with the cards using each card’s
`unique values. In a particular preferred embodiment using a
`commonly available computer system,
`this arrangement
`allows up to four paddle board cards to be installed simul-
`taneously (in a single PC/ATTM system).
`Supplementing the conventional arrangement in FIG. 3,
`additional circuitry is provided i

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket