`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