throbber
United States Patent [19]
`Matsunami et al.
`
`||||||||||||||||||||||||||||||||||
`
`US005802345A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,802,345
`Sep. 1, 1998
`
`[54] COMPUTER SYSTEM WITH A REDUCED
`NUMBER OF COMMAND END INTERRUPTS
`FROM AUXILIARY MEMORY UNIT AND
`METHOD OF REDUCING THE NUMBER OF
`COMMAND END INTERRUPTS
`
`[76] Inventors: Naoto Matsunami, Matsuba Hights
`A-202, Nakada-cho 643-1, Izumi-ku,
`Yokohama-shi, Kanagawa-ken, Japan;
`Masayuki Kan, 20350 Stevens Creek
`Blvd., Apt. #501, Cupertino, Calif.
`95014; Yasunori Kaneda, Hitachi,
`Seciria Nagatadai 320, Nagatadai 9-3,
`Minami-ku, Yokohama-shi,
`Kanagawa-ken, Japan; Ikuya Yagisawa,
`Hitachi Fujimi-ryo 508, Yoshida-cho
`1545, Totsuka-ku, Yokohama-shi,
`Kanagawa-ken, Japan; Takashi Oeda,
`Dai 2 Yoshihara Hights 15,
`Shimokurata-cho 1223, Totsuka-ku,
`Yokohama-shi, Kanagawa-ken, Japan;
`Hiroshi Arakawa, Hatachi Keimei-ryo
`258, Maioka-cho 850, Totsuka-ku,
`Yokohama-shi, Kanagawa-ken, Japan
`
`[21] Appl. No.: 411,991
`[22] Filed:
`Mar 28, 1995
`[30]
`Foreign Application Priority Data
`Mar 28, 1994 [JP,
`Japan .................................... 6–057197
`[51] Int. Cl* ~~~~~~~~~ G06F 13/00; G06F 13/12
`[52] U.S. Cl. .......................... 395/500; 395/441; 395/275;
`395/733
`[58] Field of Search ..................................... 395/500, 275,
`395/441, 826, 733, 825, 827
`References Cited
`U.S. PATENT DOCUMENTS
`5,148,432 9/1992 Gordon et al.......................... 371/10.1
`
`[56]
`
`5,179,704 1/1993 Jibbe et al. ............................. 395/725
`5,313,588 5/1994 Nagashige et al. ..................... 395/275
`5,572,699 11/1996 Kamo et al. ..........................., 395/441
`
`FOREIGN PATENT DOCUMENTS
`
`60-225957 11/1985 Japan .............................. G06F 13/14
`4–131954 5/1992 Japan .....
`..... G06F 13/10
`5-250099 9/1993 Japan ................................ G06F 3/06
`
`Primary Examiner—Kevin J. Teska
`Assistant Examiner—Vuthe Siek
`Attorney Agent, or Firm—Antonelli, Terry, Stout, & Kraus,
`LLP
`
`[57]
`
`ABSTRACT
`
`A computer system which includes a host machine having a
`memory and a CPU with an interrupt handling feature, an
`auxiliary memory unit for recording and reproducing data
`and an input/output unit for permitting data input and output
`between the host machine and the auxiliary memory unit.
`The CPU of the host machine generates a plurality of
`commands for designating access to the auxiliary unit, in
`response to at least one command, groups a plurality of the
`commands for designating access to the auxiliary memory
`unit, into at least one group and supplies the input/output
`unit with the commands independently of one another. The
`input/output unit executes access to the auxiliary memory
`unit as designated by each of the commands of one group
`supplied independently of one another by the CPU, and
`notifies the CPU by a single interruption that execution of
`the commands of the one group has been terminated when
`the accesses designated by all commands belonging to the
`one group have been terminated.
`
`51 Claims, 12 Drawing Sheets
`
`HOST COMPUTER
`
`MEMORY
`
`LÜCAL BUS
`1532
`
`|
`
`SYSTEM BUS
`
`systemss|º
`INTERFACE
`252
`
`*4 up,
`
`_{NTERNAL BUS
`253
`254-
`wellow
`CISK
`:NTERFACE
`
`
`
`
`
`
`
`
`
`| ?
`
`Ex.1047.001
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 1 of 12
`
`5,802,345
`
`FIG. 1
`
`
`
`HOST COMPUTER
`
`L00AL BUS
`

`
`SYSTEM
`BUS
`
`MEMORY
`
`151
`
`SYSTEM BUS
`
`system bus | *
`INTERFACE
`
`INPUT/OUTPUT UNIT
`
`|NTERNAL BUS
`
`Ex.1047.002
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 2 of 12
`
`5,802,345
`
`FIG. 2
`
`USER PROCESS
`FILE ACCESS
`REQUEST
`GENERATE PART
`
`
`
`
`
`CACHE DATA
`WRITE REQUEST
`
`151
`
`MENT PART
`FILE ACCESS REQUEST MANAGE
`
`DISK ACCESS
`REQUEST
`RECEPTION
`MEANS
`
`D|SK ACCESS
`REQUEST END
`NOTICE ISSUANCE
`MEANS
`
`
`
`DISK ARRAY MANAGEMENT MEANS
`1043
`1042
`
`DISK COMMAND
`| DISK COMMAND
`MANAGEMENT
`RELATION
`10430 |MANAGEMENT MEANS |
`
`
`
`COMMAND
`MANAGE
`MENT
`AREA
`
`D|SK COMMAND
`END RECEPTION
`MEANS
`
`
`
`105 INPUT?
`OUTPUT UNIT
`CONTROL
`PART
`is
`>
`S
`253
`201
`SSC206 INTERRUPTSIGNAL
`– INPUT/OUTPUT
`DISK COMMAND
`UNIT
`DISK COMMAND
`END NOTICE
`INTERFACE
`RECEPTION MEANS
`ISSUANCE MEANS
`202
`DISK
`COMMAND
`MANAGEMENT
`PART
`203
`
`RELATED
`COMMAND
`ENTRY MEANS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`101
`
`INPUT/
`ºn
`-
`CESSING
`MEANS
`OVERALL
`CONTROL
`PART
`
`RELATED
`COMMAND END
`DETERMINATION
`MEANS
`DISK
`--~ INTERFACE
`-—
`PART
`DISK COMMAND PROCESSING PART
`204
`A
`*—
`A
`/
`303
`
`
`
`
`
`
`
`
`
`301
`HARD DISK
`DRIVE
`
`302
`
`304
`
`
`
`
`
`
`
`
`
`
`
`
`
`COMMAND
`MANAGEMENT
`3
`AREA
`
`Ex.1047.003
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 3 of 12
`
`5,802,345
`
`FIG. 3
`COMMAND PACKET (#1)
`BOARD COMMAND TYPE
`TARGET DISK NO.
`LOGICAL DEVICE NO.
`DATA TRANSFER LENGTH
`DISK ADDRESS
`DISK COMMAND TYPE
`MEMORY ADDRESS
`STATUS
`COMMAND
`QUEUING POINTER
`coºps
`-ADDED
`PACKET POINTER
`
`
`
`
`
`
`
`
`
`
`
`(CONTENTA)
`
`CP1
`
`CAP1
`RELATED COMMAND TAG
`COMMAND-
`§ RELATED COMMAND
`(CONTENTB)
`EXECUTION STATUS
`
`
`
`STRUCTURE OF COMMAND
`PACKETS AND RELATED
`COMMAND MANAGEMENT
`TABLE
`
`(CONTENTC)
`RELATED COMMAND
`MANAGEMENT TABLE
`E RELATED COMMAND TAG
`RELATED COMMAND
`PACKET COUNT
`REMAINING COMMAND
`COUNT
`EXECUTION STATUS
`COMMAND PACKET
`ADDRESS POINTER LIST

`ADDRESS
`POINTER TABLE
`
`COMMAND PACKET (#2)
`
`
`
`ADDRESS POINTER
`
`CP2
`
`(CONTENTA) H- || -ºn
`CAP2
`ET |#2
`COMMAND- |
`(CONTENTB) —
`ADDED
`
`CP3
`
`COMMAND PACKET (#3)
`(CONTENTA)
`
`E
`
`#3
`
`CAP3 —
`COMMAND-
`
`(CONTENT B)
`
`ADDED Ét T.E
`
`CPAPT3
`NULL
`
`Ex.1047.004
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 4 of 12
`
`5,802,345
`
`FIG. 4
`DISK COMMAND
`
`END NOTICE
`
`D|SK COMMAND RELATING FUNCTION
`SUPPORT AVAILABILITY DETERMINATION MEANS
`
`SUPPORT
`AVAILABLE
`
`SUPPORT
`NOT AVAILABLE
`
`D{SK COMMAND RELATION
`PRESENCE DETERMINATION
`MEANS
`
`PREVIOUS
`RELATION
`ABSENT
`
`PREVIOUS
`RELATION
`PRESENT
`
`COMMAND
`MANAGEMENT
`
`|
`l
`
`}
`i
`|
`|
`|
`
`(
`
`043
`
`
`
`D|SK COMMAND
`ND
`T MEANS
`EFFECTED WHEN COMMAND IS ISSUED
`- - - - -ºs- EFFECTED WHEN COMMAND IS TERMINATED
`
`END NOTICE
`
`Ex.1047.005
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 5 of 12
`
`5,802,345
`
`
`
`(Z09) Z
`
`Ex.1047.006
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 6 of 12
`
`5,802,345
`
`FIG. 6
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DISKARRAY ADDRESS
`TRANSLATION MEANS
`
`D|SKARRAY INFORMATION
`MANAGEMENT MEANS
`-10422
`ECC
`ECC
`CALCULATION -—- GENERATION
`MEANS
`CACHE MEANS
`
`
`
`10425
`
`DISKARRAY COMMAND RELATION MANAGEMENT MEANS
`-1042.
`
`
`
`
`
`1042
`DISK ARRAY
`
`D|SK COMMAND MANAGEMENT MEANS
`
`
`
`
`
`COMMAND
`MANAGEMENT
`
`Ex.1047.007
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 7 of 12
`
`5,802,345
`
`FIG. 7
`
`READ ACCESS
`REQUEST
`|
`
`DATA TRANSFER LENGTH
`i BYTES ( is 3K)
`
`DISK0
`
`D|SK
`
`DISK2
`
`DISK3
`
`D|SK 4
`
`STRIPE
`K BYTE
`
`
`
`
`
`Ex.1047.008
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 8 of 12
`
`5,802,345
`
`FIG. 8
`
`D|SK 0
`
`DISK1
`
`DISK 2
`
`DISK3
`
`DISK 4
`
`
`
`E. E. E. E. E.
`
`STRIPE
`K BYTE
`
`PARTY
`GROUP
`
`Ex.1047.009
`
`(DATA
`DISK)
`
`(PARITY
`DISK)
`
`(DATA
`DISK)
`
`(DATA
`DISK)
`
`(DATA
`DISK)
`
`DELL
`
`

`

`DISTRIBUHON
`COUNT (3)
`
`CHILD PACKET
`
`NEXT
`
`PARENT PACKET
`POINTER
`r
`
`
`(CONTENT A)
`
`(CONTENT A)
`
`PACKET TYPE
`)
`(CHILD
`
`DISTRIBUTION
`
`PACKET TYPE
`(CHILD)
`
`DlSTRIBUTiON
`
`COUNT (O)
`
`COUNT (D)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`COMMAND PACKET
`COMMAND PACKET
`(CHILD #1)
`(CHILD #2)
`
`
`
`
`
`RELATED
`
`COMMAND—
`
`
`
`
`COMMAND-
`
`"’ ADDED PACKET
`
`CPsJ
`
`
`
`US. Patent
`
`Sep. 1, 1998
`
`Sheet 9 of 12
`
`5,802,345
`
`FIG. 9
`
`COMMAND PACKET
`(PARENT)
`
`
`
`
`(CONTENT A)
`
`PACKET TYPE
`)
`(PARENT
`
`
`
`COMMAND PACKET
`(CHILD #3)
`
`(CONTENT A)
`
`PACKET TYPE
`(CHILD)
`
`DISTRIBUTION
`COUNT (O)
`
`CHILD NULL
`
`
`
`
`
`
`
`
`
`A} J I:
`
`
`CHILD NULL
`
`CHILD NULL
`
`COMMAND-
`ADDED PACKET
`9
`
`
`—
`
`I
`T
`
`T
`
`(CONTENT C)
`
`L”
`
`
`
`RELATED COMMAND
`MANAGEMENT TABLE
`
`;
`'v CPAPT1
`COMMAND PACKET
`ADDRESS POINTER TABLE
`
`)
`K/ CPAPT2
`
`‘L/ CPAPT3
`
`(CONTENTS A,B AND C
`IDENTICAL TO THOSE IN FIG. 3)
`
`DELL Ex.1047.010
`Ex.1047.010
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 10 of 12
`
`5,802,345
`
`COMMAND PACKET
`(PARENT)
`(CONTENT A)
`PACKET TYPE
`(PARENT)
`DISTRIBUTION
`COUNT (2)
`
`-º-------——
`
`-
`
`FIG.
`
`10
`
`COMMAND PACKET
`(
`)
`CHILD #1
`
`(CHILD)
`
`COUNT (2)
`
`.
`
`
`
`
`
`
`
`
`
`
`
`COMMAND
`ADDED PACKET

`
`CPi— NULL
`
`COMMAND PACKET
`(CHILD #2)
`(CONTENTA)
`PACKET TYPE
`(CHILD)
`DISTRIBUTION
`COUNT (2)
`CHILD
`
`e- |
`
`PARENT
`COMMAND
`ADOED PACKET
`
`CP2- Nºll
`
`|
`
`COMMAND PACKET
`(GRANDCHILD #1)
`(CONTENTA)
`PACKET TYPE
`(GRANDCHILD)
`DISTRIBUTION
`COUNT (0)
`CHILD
`NULL
`NEXT e
`PARENT? e
`COMMAND
`ADDED PACKET

`
`COMMAND PACKET
`GRANDCHILD #2)
`(
`(CONTENTA)
`PACKET TYPE
`(GRANDCHILD)
`DISTRIBUTION
`COUNT (0)
`CHILD
`NULL
`NEXT
`NULL
`
`PARENT e
`
`COMMAND
`
`ADOED PACKET .
`
`COMMAND PACKET
`(GRANDCHILD #3)
`(CONTENTA)
`PACKET TYPE
`(GRANDCHILD)
`DISTRIBUTION
`COUNT (O)
`CHILD
`NULL
`NEXT
`
`
`
`
`
`
`
`
`
`PARENT e
`COMMAND
`ADDED PACKET. F.
`
`COMMAND PACKET
`(GRANDCHILD #4)
`(CONTENTA)
`PACKET TYPE
`(GRANDCHILD)
`DISTRIBUTION
`COUNT (O)
`CHILD
`NULL
`NEXT
`NULL
`
`PARENT e
`COMMAND
`ADDED PACKET
`*
`
`CP5–)
`
`
`
`CP6-_
`(CONTENTS B)
`
`(CONTENTS B) EF
`
`
`
`
`
`~
`ACMT1 CPAPT1
`
`(CONTENTSC)
`
`|
`.
`
`CPAPT2
`|-E
`
`(CONTENTSC)
`
`ACMI2; CPAP13
`&
`
`CPAPT4
`
`RELATED COMMAND
`MANAGEMENT TABLE
`(#1)
`
`COMMAND PACKET
`ADDRESS POINTER
`TABLE
`
`RELATED COMMAND COMMAND PACKET
`MANAGEMENT TABLE ADDRESS POINTER
`(#2)
`TABLE
`
`Ex.1047.011
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 11 of 12
`
`5,802,345
`
`FIG. 11
`WRITE CACHE OPERATION AND RELATING OF COMMANDS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DELAYED WRITE
`CACHE DATA WRITE
`REQUEST PART
`
`1021
`
`F|LE ACCESS
`REQUEST
`MANAGEMENT
`
`DISK CACHE PART
`
`
`
`199 |COMMANDS
`
`
`
`
`
`
`
`DISK ACCESS
`REQUEST
`RECEPTION
`MEANS
`
`
`
`
`
`
`
`
`
`1043
`
`DISK COMMAND
`MANAGEMENT
`MEANS
`10430
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DISKCOMMAND
`1980, $ºns
`
`UNWRITTEN
`AREA
`
`1040
`
`1044
`
`DISK COMMAND
`RELATION
`MANAGEMENT
`TABLE
`
`
`
`
`
`ABCDE
`END NOTICE
`(A+B+C+D+E)
`1051
`
`DISKCOMMAND
`END RECEPTION
`MEANS
`
`
`
`
`
`
`
`
`
`
`
`|NTERRUPTION
`(A+B+C+D+E)
`
`|NPUT/OUTPUT UNIT
`
`Ex.1047.012
`
`DELL
`
`

`

`U.S. Patent
`
`Sep. 1, 1998
`
`Sheet 12 of 12
`
`5,802,345
`
`FIG. 12
`COMMAND PACKET
`PARENT #2
`(CONTENTSA)
`<PARITY:
`PACKET TYPE
`(PARENT)
`DISTRIBUTION
`COUNT (2)
`CHILD
`NE
`PARENT
`COMMAND
`ADDED PACKET
`
`e
`
`| |
`
`NULL
`
`COMMAND
`PACKET
`(CHILD #2)
`(CONTENTSA)
`<WRITES
`
`PACKET TYPE
`(CHILD)
`
`
`
`
`
`
`
`
`
`
`
`COMMAND
`PACKET
`(CHILD #3)
`(CONTENTSA)
`<READS
`
`COMMAND
`PACKET
`(CHILD #4)
`(CONTENTSA)
`<WRITES,
`
`
`
`PACKET TYPE
`(CHILD)
`DISTRIBUTION
`COUNT (0)
`CHILD
`NULL
`NEXT e
`–
`PARENT
`COMMAND
`ADDED PACKET
`*
`
`PACKET TYPE
`(CHILD)
`DISTRIBUTION
`COUNT (0)
`NULL
`CHILD
`NULL
`NEXT
`PARENT e
`COMMAND
`ADDED PACKET

`
`COMMAND PACKET
`PARENT #1
`(CONTENTSA)
`<DATAS
`
`T
`
`PACKET TYPE
`(PARENT)
`DISTRIBUTION
`COUNT (2)
`CHILD
`N
`PARENT
`COMMAND
`ADDED PACKET
`
`Z
`CP0 NULL
`
`COMMAND
`PACKET
`(CHILD #1)
`(CONTENTSA)
`<READS
`
`PACKET TYPE
`(CHILD)
`D:STRIBUTION
`COUNT (0)
`CHILD
`NULL
`NEXT
`PARENT
`COMMAND
`ADDED PACKET
`
`NULL
`
`
`
`
`
`ACMT1
`Z
`*>
`
`-—-------
`!
`
`
`
`(CONTENTC)
`
`T-E - - - - - ºs
`
`RELATED COMMAND
`MANAGEMENT TABLE
`
`CPAPT1
`
`| –
`
`CPAPT3
`
`-
`
`\->
`
`t
`f
`
`Ex.1047.013
`
`DELL
`
`

`

`5,802.345
`
`1
`COMPUTER SYSTEM WITH A REDUCED
`NUMBER OF COMMAND END INTERRUPTS
`FROM AUXILLARY MEMORY UNIT AND
`METHOD OF REDUCING THE NUMBER OF
`COMMAND END INTERRUPTS
`
`10
`
`15
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`This application is related to application Ser. Nos. 08/199,
`838, filed Feb. 22, 1994 now U.S. Pat. No. 5,651,132 and
`08/312,791, filed Sep. 27, 1994, the disclosures of which are
`incorporated herein by reference.
`BACKGROUND OF THE INVENTION
`The present invention relates generally to improved tech
`niques for accessing an auxiliary memory unit used by a
`computer system. More particularly, the present invention
`relates to a method and apparatus for reducing the number
`of interruptions to a central processing unit (CPU) included
`in the computer system during access to the auxiliary
`memory unit constructed of a plurality of disc drives by the
`computer system.
`There is known multi-disc technology involving a plural
`ity of disc drives connected to a single host computer
`whereby a reliable, high-speed disc unit is implemented as
`an auxiliary memory unit of a computer system. Techniques
`of this type are discussed illustratively in “A Case for
`Redundant Arrays of Inexpensive Disks (RAID)” in Proc.
`ACM SIGMOD, June 1988 (published by the University of
`California, Berkeley). The subject of the publication
`involves connecting a plurality of disc drives to a CPU via
`a dedicated controller so that the controller will take care of
`all kinds of disc management procedures including control
`over distribution of data to the configured disc drives. This
`setup allows the CPU to regard the multiple disc drives as a
`single disc unit.
`Since CPU throughput is nearly doubling every year,
`there has proposed the implementation of so-called soft
`arrays or soft RAID. This technique involves getting a CPU
`to control a plurality of disc drives using software, i.e.,
`without the use of a dedicated controller.
`The software-based technique allows a disc interface of
`the CPU to connect a plurality of configured disc drives. In
`45
`operation, a driver process running on the CPU takes a
`command issued by another process that treats a plurality of
`disc drives virtually as a single disc unit, and converts the
`command into individual commands to be sent to the
`individual disc drives. In recording data, the driver process
`generates redundant data for correcting data errors and
`records the redundant data along with the target data. In
`reproducing data, the driver process corrects any error in the
`reproduced data using the redundant data previously
`recorded for error correction purposes.
`As outlined above, the soft array or soft RAID technique
`helps to implement a reliable, inexpensive and high
`performing disc system by taking advantage of the continu
`ally increasing CPU power.
`However, it takes time to access discs in the disc drives
`because the access operation involves mechanical move
`ments. To get apparently faster access to discs in the disc
`drives, the so-called read-cache and write-cache techniques
`have been used extensively.
`These conventional techniques require having a cache
`area allocated beforehand in a main memory. Theread-cache
`technique involves reading data from a disc drive and
`
`55
`
`35
`
`2
`storing it in the cache area. If a process issues a request for
`reading the same data, the data in the cache area of main
`memory is read and delivered to the process without access
`ing the disc drive. This scheme reduces the number of disc
`access operations. The write- cache technique involves
`writing data to the cache area of main memory and issuing
`a write end notice to the process that has requested the disc
`access operation. Upon elapse of a predetermined period of
`time, the data in the cache area of main memory is written
`collectively to the disc, whereby the number of disc access
`operations is also reduced.
`The read-cache and write-cache techniques take advan
`tage of the temporally and spatially localized nature of
`access operations to discs requested by the process. Because
`of their considerable time-saving effects, these techniques
`are widely utilized by a majority of computer systems.
`Generally, user programs run on the computer system
`under a principal program called the operating system (OS).
`The OS allows the programs to operate in parallel. In
`implementing the parallel operation, the OS manages the
`programs in units called processes which are switched on a
`time division basis during execution.
`In the generic computer system, the CPU issues a disc
`access command to a disc unit. When the disc unit termi
`nates the designated access, the unit sends an interruption to
`the CPU notifying the latter of the end of the access
`corresponding to the issued command. On receiving the
`interruption, the CPU halts the ongoing process temporarily
`and initiates predetermined interrupt handling for disc
`access termination.
`Interrupt handling of the above type proceeds as follows.
`The CPU first halts the ongoing process, preserves the
`environment needed to restart the process later, prepares an
`environment necessary for executing necessary interrupt
`handling, and executes the interrupt handling process. With
`the interrupt handling completed, the CPU returns to the
`environment in effect before execution of the interrupt
`handling, and restarts the process that was put on hold.
`As outlined above, execution of the interrupt handling
`places heavy burdens on the CPU. However, the above
`mentioned soft array or soft RAID technique allows the
`driver process running on the CPU to convert the issued
`command into a plurality of commands to be sent to indi
`vidual disc drives. This means that an interruption by the
`disc unit to the CPU notifying it of the end of access must
`occur for each of the multiple commands issued to the
`individual disc drives.
`Where redundant data is generated for error correction to
`obtain at higher reliability and is stored on discs along with
`target data, the CPU issues, in addition to the command for
`access to data requested by the user process, a data read
`command for generating the redundant data and a data write
`command for writing the redundant data. This translates into
`a growing number of interruptions by which the disc unit
`notifies the CPU of the end of each access.
`In other words, the aforementioned soft array or soft
`RAID technique entails high frequencies of interrupt han
`dling and thereby places a heavy burden on the CPU in
`executing the interrupt handling. As a result, the user pro
`gram may not be executed as fast as is desired, or the
`multi-disc setup may fail to attain the level of performance
`envisaged.
`The write-cache technique requires removing data from
`the cache area of the main memory at predetermined inter
`vals. Since the capacity of main memory has its limit, when
`the amount of data yet to be written to the discs has exceeded
`
`Ex.1047.014
`
`DELL
`
`

`

`5,802,345
`
`10
`
`15
`
`3
`a predetermined level, the excess data needs to be written
`out to the disc unit so that the cache area will be available
`for the next data write operation.
`The write operation, performed either periodically or as
`designated, involves writing a large amount of data at a time
`to the disc unit. In carrying out the operation, the CPU needs
`to issue many write commands for the necessary processing
`in addition to the command for access to the data requested
`by the user process. This increases the number of interrup
`tions by which the disc unit notifies the CPU of the end of
`each access.
`As described, the write-cache technique also entails high
`frequencies of interrupt handling and places a heavy burden
`on the CPU in executing the interrupt handling.
`SUMMARY OF THE INVENTION
`It is therefore an object of the present invention to provide
`a computer system that reduces the number of interruptions
`to the CPU at times of disc access, whereby the operative
`burdens on the CPU are alleviated.
`In achieving the foregoing and other objects of the present
`invention and according to one aspect thereof, there is
`provided a computer system including a host machine
`having a memory and a CPU with an interrupt handling
`feature, an auxiliary memory unit for recording and repro
`ducing data to and from an auxiliary recording medium, and
`an input/output unit for permitting data input and output
`between the auxiliary memory unit and the host machine.
`The CPU of the host machine includes means for gener
`ating a plurality of commands for designating access to the
`auxiliary unit, relation means, responsive to at least one
`command, for grouping a plurality of commands for desig
`nating the access to the auxiliary memory unit into at least
`one group, and for supplying the input/output unit with the
`commands independently of one another.
`The input/output unit includes access execution means for
`executing the access to the auxiliary memory unit as desig
`nated by each of the commands issued independently by the
`CPU, and notification means for notifying the CPU by a
`single interruption that the processing of a particular group
`has been terminated when the accesses designated by all
`commands belonging to the particular group have been
`terminated.
`Alternatively, the above input/output unit may be replaced
`by one including access execution means for executing
`access to the auxiliary memory unit as designated by each of
`the commands issued independently by the CPU, and noti
`fication means for notifying the CPU by a single interruption
`that processing of a particular group has been terminated
`when the accesses designated by all commands belonging to
`the particular group have been terminated based on infor
`mation in the memory which represents correspondence
`between each of the groups and the commands belonging to
`the groups.
`With the computer system according to the invention, the
`CPU, instead of being notified of the end of each of the
`individual commands, is notified by a single interruption of
`the end of the processing of a particular group of commands
`only when the accesses designated by all commands belong
`ing to that particular group have been terminated. This
`scheme reduces the number of interruptions to the CPU and
`therefore alleviates the operative loads on the CPU.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The present invention will be more apparent from the
`following detailed description, when taken in conjunction
`with the accompanying drawings, in which:
`
`4
`FIG. 1 is a block diagram of a computer system practiced
`as an embodiment of the invention;
`FIG. 2 is a block diagram of the constitution of the
`components associated with disc access command process
`ing in the embodiment illustrated in FIG. 1;
`FIG. 3 is a view showing typical structures of command
`packets and a related command management table, and the
`relationship between the command packets, as well as the
`management table in connection with the embodiment illus
`trated in FIG. 1;
`FIG. 4 is a block diagram of the disc command manage
`ment means in the embodiment illustrated in FIG. 1;
`FIG.5 is a timing chart depicting the disc access operation
`of the embodiment illustrated in FIG. 1;
`FIG. 6 is a block diagram of the disc array management
`means in the embodiment illustrated in FIG. 1;
`FIG. 7 is a view illustrating how a plurality of discs in a
`disc array are related to an access request;
`FIG. 8 is a view showing how data and parity data are
`related in a RAID constitution;
`FIG. 9 is a view showing typical structures of command
`packets and a related command management table, and the
`relationship between the command packets, as well as the
`management table in connection with another embodiment
`of the invention;
`FIG. 10 is a view depicting typical structures of command
`packets and a related command management table, and the
`relationship between the command packets, as well as the
`management table in connection with the another embodi
`ment of the invention;
`FIG. 11 is a view illustrating how disc access commands
`are routed by the another embodiment of the invention; and
`FIG. 12 is a view showing typical structures of command
`packets and a related command management table, and the
`relationship between the command packets, as well as the
`management table in connection with another embodiment
`of the invention.
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`Preferred embodiments of the invention will now be
`described with reference to the accompanying drawings.
`FIG. 1 is a block diagram of a computer system practiced
`as a first embodiment of the invention.
`In FIG. 1, reference numeral 1 is a host computer; 101 is
`a CPU that provides overall control on the host computer 1
`and executes various calculations; 151 is a memory that
`stores data and programs to be executed by the CPU 101;
`153 is a local bus of the CPU 101; 154 is a system bus that
`connects peripheral devices; and 152 is a system bus inter
`face that connects the local bus 153 and system bus 154 so
`as to connect peripheral circuits to the CPU 101.
`Reference numeral 2 is an input/output unit that controls
`data input and output to and from disc drives connected to
`the system bus 154 of the host computer 1. An MPU 201
`provides overall control on the input/output unit 2 and
`carries out various calculations. A system bus interface 251
`connects to the system bus 154 of the host computer 1.
`Reference numeral 252 is an internal bus of the input/output
`unit 2; 253 is a memory that stores programs to be executed
`by the MPU and other necessary data; and 254 is a disc
`interface that connects the disc drives.
`Reference numeral 3 is a disc unit that comprises disc
`arrays made of a plurality of hard disc drives (301–304).
`
`35
`
`45
`
`55
`
`60
`
`65
`
`Ex.1047.015
`
`DELL
`
`

`

`5,802,345
`
`10
`
`15
`
`5
`Alternatively, the disc unit 3 may be a single or a plurality
`of discrete disc drives. The disc unit 3 of the first embodi
`ment is composed illustratively of a single or a plurality of
`discrete disc drives.
`The flow of data in a disc access operation of the CPU 101
`takes place as follows:
`In the host computer 1, it becomes necessary over time for
`the CPU 101 to read data from the disc unit 3. In that case,
`the CPU 101 issues a read command via the system bus
`interface 152 to the input/output unit 2. In the input/output
`unit 2, the MPU 201 receives the read command via the
`system bus interface 251, analyzes the command, converts it
`into commands (i.e., disc commands) destined to the target
`disc drives of the disc unit 3, and issues the commands to the
`discunit 3 via the discinterface 254. Upon receipt of the disc
`commands, the disc unit 3 positions the heads accordingly
`and transfers the target data to the input/output unit 2. The
`input/output unit 2 receives the data via the disc interface
`254 and transfers the received data to the memory 151 of the
`host computer 1 via the system bus 154 and system bus
`interface 152 of the host. The data transfer occurs in one of
`two ways. Namely, either the CPU 101 of the host computer
`1 reads the data directly from the system bus interface 251
`of the input/output unit 2 and transfers the data to the
`memory 151, or the input/output unit 2 transfers on its own
`the data to the memory 151 of the host computer 1. With the
`first embodiment, the latter way of data transfer (I/O unit 2
`transferring data to memory 151) is implemented.
`The processing described above completes the data read
`operation from the disc unit 3. Using the retrieved data, the
`CPU 101 of the host computer 1 performs necessary com
`putations. For a data write operation, only the direction of
`data transfer is reversed. The other aspects of the data write
`operation are the same as those of the data read operation.
`FIG. 2 is a block diagram of the structure of the CPU 101
`in the host computer and that of the MPU 201 in the
`input/output unit 2, emphasizing the components for imple
`menting the disc access command processing of the CPU
`101.
`In FIG.2, reference numeral 1010 is the operating system
`(OS) that runs on the CPU 101; 102 is a user process that
`generates and issues a request for access to a file stored on
`discs; 1020 is a cache data write request part; and 1000 is a
`disc driver part.
`In practice, the user process 102, the cache data write
`request part 1020 and the disc driver part 1000 are imple
`mented as processes that are executed by the CPU 101 under
`control of the operating system 1010 which in turn runs on
`the CPU 101.
`Although the CPU 101 and the MPU201 are shown to be
`directly connected in FIG. 2, the connection is in fact
`accomplished via the system bus interfaces 152 and 251.
`And although the MPU 201 and the disc unit 3 are also
`shown to be directly connected, that connection is achieved
`in practice by way of the disc interface 254.
`In the disc driver part 1000, reference numeral 103
`represents a file access request management part that relates
`files to data storage addresses on the discs, takes a file access
`request generated and issued by the cache data write request
`part 1020 and converts the request into a request for access
`to actual disc drives. A disc command management part 104
`receives the disc access request issued by the file access
`request management part 103, accordingly, and generates
`commands to individual disc drives in the disc unit 3. The
`disc command management part 104 also performs other
`operations including command relation processing, com
`
`6
`mand issuance, and termination of command processing, to
`be described later. An input/output unit control part 105
`supplies the input/output unit 2 with disc commands gener
`ated by the disc command management part 104. A disc
`cache part 106 is a cache area allocated in the memory 151.
`In the disc command management part 104, reference
`numeral 1040 stands for disc access request reception means
`for receiving the disc access request issued by the file access
`request management part 103. Disc access request end
`notice issuance means 1041 issues an end-of-request notice
`to the file access request management part 103 regarding the
`terminated disc access request. Disc array management
`means 1042 takes an access request made to a disc unit 3
`illustratively composed of disc arrays, and converts the
`request into access requests to the individual disc drives
`involved. Disc command management means 1043 incor
`porates disc command relation management means 10430
`for managing the disc unit 3 and for relating disc commands
`to one another, as will be described later.
`A command management area 1044 is allocated in the
`memory 151. This area includes a related command man
`agement table (to be described later in detail) for managing
`information about command groups related by the disc
`command relation management means 10430.
`In the MPU 201, reference numeral 2010 is an overall
`control part that corresponds to the OS. An input/output unit
`interface 202 receives the disc command issued by the
`input/output unit control part 105 of the host computer 1,
`notifies the overall control part 2010 of the received disc
`command and, when execution of the command is
`terminated, notifies the host computer 1 of the end of the disc
`command. A disc command management part 203 manages
`entry and termination of the received command from the
`input/output unit control part 105, and also manages entry
`and termination of commands that are related to one another.
`In accordance with the received disc command, a disc
`command processing part 204 gains access to the appropri
`ate disc drives so as to execute data transfer between the disc
`unit 3 and the memory 151 in the host computer 1. In
`practice, the input/output unit interface 202, the disc com
`mand management part 203, and the disc command pro
`cessing part 204 are processes that are executed under
`control of the overall control part 2010 which in turn is a
`program running on the MPU 201.
`A command management area 205 is allocated in the
`memory 253. This area includes a related command man
`agement table, to be described later.
`In the disc command management part 203, reference
`numeral 2030 represents related command entry means for
`taking the commands related to one another by the disc
`command management means 1043 in the host computer 1
`and for entering these related commands into the command
`management area 205 of the memory 253 in the input/output
`unit 2. Related command end determination means 2031
`checks to see if all disc accesses corresponding to the related
`commands thus entered have been terminated.
`A disc access operation of the first embodiment takes
`places as follows:
`Referring to FIG. 2, it becomes necessary over time for
`the ongoing user process 102 to write or read data to or from
`discs. In that case, the user process 102 issues a file access
`request to the OS 1010. In response, the OS starts the disc
`driver part 1000 and delivers the file access request thereto.
`In the disc driver part 1000, the file access request
`management part 103 references a file storage information
`table furnished inside and, according to the file access
`
`35
`
`45
`
`55
`
`Ex.1047.016
`
`DELL
`
`

`

`5,802,3

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