throbber
||I||I||||||||lllllllllllllIllllIIIIIlllllllllllllll|||||||l|||||||l||||||l
`US005499378A
`
`United States, Patent
`
`[19]
`
`McNeill, Jr. et al.
`
`[11] Patent Number:
`
`5,499,378
`
`[45] Date of Patent:
`
`Mar. 12, 1996
`
`[54] SMALL COIVIPUTER SYSTEM EMULATOR
`FOR NON-LOCAL SCSI DEVICES
`
`_75]
`
`Inventors: Andrew B. McNeill, Jr., Deerfield
`Beach; Edward L Wachtel, Boca
`Raton, both of Fla.
`
`:73] Assignee:
`
`Internatinal Business Machines
`Corporation, Armonk, N.Y.
`
`Appl. No.: 263,168
`
`Filed:
`
`Jun. 21, 1994
`
`Related U.S. Application Data
`
`Continuation of Ser. No. 812,197, Dec. 20, 1991, aban-
`doned.
`
`Int. Cl.“ ...................................................... G06F 15/16
`U.S. Cl. .......................... 395/500; 395/800; 364/228;
`364/280; 364/280.9; 364/284.2; 364/DIG. 1
`Field of Search ..................................... 395/800, 500;
`364/DIG. 1, 228, 280, 280.9, 284.2, DIG. 1
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,888,680 12/1989 Sander et al. ......................... .. 395/500
`5,073,854 12/1991 Martin et al.
`.
`.. 364/425
`5,093,776
`3/1992 Morss et al.
`..
`.. 395/500
`5,129,036
`7/1992 Dean el al.
`............................... .. 395/2
`
`........................... 395/145
`5,170,466 12/1992 Rogan et 211.
`......
`.. 395/275
`5,175,822 12/1992 Dixon et al.
`5,185,864
`2/1993 Bonevento et al.
`.. 395/275
`5,204,951
`4/1993 Keener et al.
`.. 395/325
`5,214,695
`5/1993 Arnold et al.
`............................ .. 380/4
`
`FOREIGN PATENT DOCU1\/[ENTS
`
`0395416
`2220509
`
`4/1990 European Pat. Off. .
`11/1989 United Kingdom ............ G06F 13/12
`OTHER PUBLICATIONS
`
`IBM TDB Vol. 30, No. 9 Feb. 1988.
`
`Primary Examiner—Alyssa H. Bowler
`Assistant Examiner—D. Nguyen
`Attorney, Agent, or Firm——BemaId D. Bogdon
`
`[57]
`
`ABSTRACT
`
`A SCSI computer system is provided whereby a host com-
`puter gains access to a targeted but non-local peripheral
`device, which device or devices are individually responsive
`to either SCSI or non-SCSI commands, by sending SCSI
`commands via a SCSI bus to a connected SCSI target
`computer which emulates the targeted peripheral device
`local
`to the SCSI target computer, whether the targeted
`peripheral device is responsive to only SCSI or only non-
`SCSI commands, to cause the targeted peripheral device to
`carry out the initial SCSI commands.
`
`1 Claim, 9 Drawing Sheets
`
`16
`
`( A
`
`/AGDISK
`
`TARGET
`
`Applicalion
`Sends Read
`Commands io
`DOS
`
`48
`
`"'R;s.::§és‘.’§‘
`Cmd and
`inierrupi hos!
`
`Do BIOS cull
`to local
`Magnetic disk
`
`Receive Data
`and Slalus
`and inierrupl
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 1
`
`

`
`U.S. Patent.
`
`Mar. 12, 1996
`
`Sheet 1 of 9
`
`5,499,378
`
`c:t®c:u:2c:H:oc:w:sc:Dc3c: E
`LT-:5 C3l:E:3:!zacjr:I:t:tc:1:3:::\
`9 sc3E:t:I3:3u::ac:H:L3::
`r1:: ::rj:3
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 2
`
`

`
`U.S. Patent
`
`6991Z,1r..aM
`
`Sheet 2 of 9
`
`5,499,378
`
`Emm>_8&
`
`E5E5
`
`.52._%:mE_
`
`Q
`
`393§.o£c_
`
`Emgm_8mEm
`
`
`
`2.232S88$M:._o.a%<
`
`2838mm.
`
`mssmuse_%:2:_ES88_>%
`282mmmesmESm2oo_.E._
`
`
`
`to;m3o_E>o
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 3
`
`

`
`U.S. Patent
`
`69912:1LaM
`
`Sheet 3 of 9
`
`5,499,378
`
`E95
`
`.1Eyim
`
`Q
`
`393
`
`Em
`
`2E33
`
`gmmom
`
`2$§_n_
`
`m
`
`.o_.o.£:_
`
`Em
`
`2E32
`
`.822__sas3
`
`3.€2.52
`
`Em$32
`
`E625
`
`
`
`to;.a=:£c_
`
`2825m
`
`222m28
`
`2.5
`
`2%
`
`2%:
`
`_2%u<
`
`%__.5
`
`82ma
`
`_u:oEEoo
`
`28§_82_
`
`222m28
`
`33:222;
`
`E;
`
`.2052
`
`252%
`
`:o=oo=Qg<
`
`boomwucom
`
`mom2223558
`
`28Q8
`
`;o_._:83
`
`League2mom83.5
`
`2:2m3o__o>o228
`
`:2.62_&o
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 4
`
`

`
`U.S. Patent
`
`S
`
`Mar. 12,1996
`
`Sheet 4 of 9
`
`5,499,378
`
`is
`
`Genefic
`
`SCSI BIOS
`
`installed ?
`
`B
`
`0 SCSI BIOS
`
`adapfer
`infimmd ?
`
`EXH
`
`Initialization
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 5
`
`

`
`U.S. Patent
`
`Mar. 12, 1996
`
`Sheet 5 of 9
`
`5,499,378
`
`62
`
`Replace
`inlerrupl
`veclor wllh
`
`device driver
`
`handler.
`
`Enable large’:
`mode on lhe
`
`SCSI» adapler.
`
`Save SCSI BIOS
`
`inlerrupl
`veclor and
`
`replace wllh
`
`Relurn
`
`lo caller
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 6
`
`

`
`U.S. Patent
`
`Mar. 12, 1996
`
`Sheet 6 of 9
`
`5,499,378
`
`Resei
`
`Share_Hurdfi|e
`
`Reset
`
`Shar&_HardfHe
`
`Resef SCSLJnf
`(SCSI
`con+roHer
`
`interrupt wfll
`be hundded)
`
`Process the
`
`SCSI
`
`confroHer
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 7
`
`

`
`U.S. Patent
`
`Mar. 12, 1996
`
`5,499,378
`
`76
`
`Give system
`and SCSI E01.
`
`ls
`
`local
`
`hardfile BIOS
`
`acfive ?
`
`ExiT ln’rerrup1
`Handler
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 8
`
`

`
`U.S. Patent
`
`Mar. 12, 1996
`
`Sheet 8 of 9
`
`5,499,373
`
`Send a SCSI
`check
`condilion
`
`slalus lo
`inilialor.
`
`Process
`
`SCSI
`
`command
`(Figure IO)
`
`Relurn good
`slalus and
`
`final
`
`message.
`
`Clear local
`sense
`
`Information.
`
`82
`
`Did
`
`command
`
`complele
`correclly?
`
`Has
`
`a SCSI
`
`command been
`received?
`
`Has
`SCSI sense
`
`dala been
`senl?
`
`Hardware
`
`failure.
`Disable Iargel
`lo cause SCSI
`
`selecl Ilmeoul.
`
`Relurn
`
`’
`
`Io caller
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 9
`
`

`
`U.S. Patent
`
`Mar‘. 12, 1996
`
`Sheet 9 of 9
`
`5,499,378
`
`Is a
`SCSI
`
`read command
`pendmg?
`
`Is a
`SCSI
`
`inquiry cpmmand
`pendmg?
`
`Is a
`SCSI sense
`
`command
`pending?
`
`Is a '
`SCSI capaciiy
`command
`
`pending?
`
`Is a
`SCSI Iesi
`
`unii ready
`pending?
`
`Siare illegal
`command in
`sense daIa.
`
`Translaie I0
`a BIOS read
`formai and
`execuie BIOS
`command.
`
`SIarI SCSI data
`Iransfer wiih
`daia from Read
`BIOS |nI
`ISH
`call.
`
`Siari SCSI
`daia Iransfer
`
`wiih inquiry
`information
`
`block.
`
`Translaie Io
`
`SCSI capacii
`formai and Y
`sIarI SCSI daia
`Transfer.
`
`Build SCSI
`
`inquiry
`informaiion
`
`block.
`
`Siari SCSI
`daia Iransfer
`
`wiih sense
`mformahon.
`
`Execuie a
`
`BIOS drive
`paramaier
`call.
`
`Send good
`SCSI siafus
`and final
`message in.
`
`Send back a
`SCSI check
`
`condiiion
`siuius.
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 10
`
`

`
`5,499,378
`
`1
`SMALL COMPUTER SYSTEM EMULATOR
`FOR NON-LOCAL SCSI DEVICES
`
`This is a continuation of patent application Ser. No.
`07/812,197 filed on Dec. 20, 1991, now abandoned.
`
`5
`
`FIELD AND BACKGROUND OF DISCLOSURE
`
`The American National Standard Institute has a standard
`for defining an input/output bus for interconnecting small
`computers and peripheral devices. The standard is referred
`to as the Small Computer System Interface (SCSI) Standard.
`It provides standardization of the defined command sets.
`SCSI is a local I/O bus that can be operated over a wide
`range of data rates. The primary objective of the SCSI
`interface is to provide host computers with device indepen-
`dence within a class of devices. Thus, diiferent disk drives,
`tape drives, printers, optical media drives, and other devices
`can be added to the host computers without requiring
`modifications to generic system hardware or software. Pro-
`vision is made for the addition of special features and
`functions through the use of vendor unique fields and codes.
`Reserved fields and codes are provided for future standard-
`ization.
`
`The SCSI interface uses logical rather than physical
`addressing for all data blocks. For direct-access devices,
`each logical unit may be interrogated to determine how
`many blocks it contains. A logical unit may coincide with all
`or part of a peripheral device.
`The interface protocol includes provision for the connec-
`tion of multiple initiators (SCSI devices capable of initiating
`an operation) and multiple targets (SCSI devices capable of
`responding to a request to perform an operation). Distributed
`arbitration (i.e., bus-contention logic) is built into the archi-
`tecture of SCSI. A priority system awards interface control
`to the highest priority SCSI device that is contending for use
`of the bus. The time to complete arbitration is independent
`of the number of devices that are contending and can be
`completed in less than ten microseconds.
`Regarding the logical characteristics of the interface,
`arbitration is defined to permit multiple initiators and to
`permit concurrent I/O operations. All SCSI devices are
`required to be capable of operating with the defined asyn-
`chronous transfer protocol.
`SCSI commands are classified as mandatory, optional, or
`vendor unique. SCSI devices are required to implement all
`mandatory commands defined for the appropriate device
`type and may implement other commands as well. SCSI
`devices support commands that facilitate the writing of
`self-configuring software drivers that can “discover” all
`necessary attributes without prior knowledge of specific
`peripheral characteristics (such as storage capacity). Many
`commands also implement a very large logical block address
`space (232 blocks), although some commands implement a
`somewhat smaller logical block address space (221 blocks).
`Some commands have a consistent meaning for all device
`types.
`Commands for direct-access devices (e.g. magnetic disk),
`sequential-access devices
`(e.g., magnetic tape), printer
`devices, processor devices, write-once devices (e.g., optical
`WORM disk), CD-ROM devices, scanner devices, optical
`memory devices, medium changer devices, and communi-
`cations devices are included. The commands are unique to
`the device type, or they have interpretations,
`fields, or
`features that are specific for the device type. Thus, for
`example, although the WRITE command is used for several
`
`2
`device types, it has a somewhat different form for each type,
`with different parameters and meanings. Therefore, it is set
`forth separately for each device type.
`Communication on the SCSI bus per the SCSI Standard is
`allowed between only two SCSI devices at any given time.
`There is a maximum of eight SCSI devices allowed per SCSI
`bus. Each SCSI device has a unique ID number assigned
`from 0 to 7. When two SCSI devices communicate on the
`SCSI bus, one acts as an initiator and the other acts as a
`target The initiator originates an operation and the target
`performs the operation. A SCSI device usually has a fixed
`role as an initiator or target, but some devices may be able
`to assume either role.
`
`An initiator may address up to eight peripheral devices
`(i.e. Logical Units, LUNs) that are connected to a target. The
`target may be physically housed within a peripheral device.
`Up to eight SCSI devices can be supported on the SCSI bus.
`They can be any combination of initiators and targets
`provided there is at least one of each.
`Certain SCSI bus functions are assigned to the initiator
`and certain SCSI bus functions are assigned to the target.
`The initiator may arbitrate for the SCSI bus and select a
`particular target. The target may request the transfer of
`COMMAND, DATA, STATUS, or other information on the
`DATA BUS, and in some cases it may arbitrate for the SCSI
`bus and reselect an initiator for the purpose of continuing an
`operation.
`The SCSI architecture includes eight distinct phases: BUS
`FREE phase, ARBITRATION phase, SELECTION phase,
`RESELECTION phase, COMMAND phase, DATA phase,
`STATUS phase and MESSAGE phase. The Command, Data,
`Status and Message phases are collectively termed the
`information transfer phases. The SCSI bus can never be in
`more that one phase at any given time.
`Although the SCSI Standard provides for communication
`between many types of devices within a given local bus of
`eight devices,
`it does not provide for communication
`between non-local SCSI buses or to non-SCSI devices. A
`SCSI device identifies itself to a computer by responding to
`an inquiry command with the device type field set to indicate
`what kind of device is attached (e.g., a printer, a magnetic
`disk, etc.) and with other fields set to indicate the appropriate
`standards it supports. Each device type has a set of SCSI
`commands which it supports (e.g., for a SCSI magnetic disk
`device there is supported a Read command, Write command,
`Format command and so forth).
`There are many device types which can be connected to
`a SCSI bus such as printers, scanners, optical devices and
`processor devices. In the future, there likely will be many
`more. As previously stated, because of the SCSI architec-
`ture, there can be only eight typical devices connected to a
`SCSI bus. These devices or initiators separately send com-
`mands to the other devices,
`targets. As an example an
`initiator, which might be a SCSI adapter card in a computer,
`sends a Read command to a SCSI disk, i.e., the target, or
`sends a Print command to a printer, i.e., yet another target.
`The commands the initiator uses are usually the SCSI
`Standard commands for the given device. A computer can
`have several separate SCSI buses with eight local devices on
`each. A computer can also have devices which are not based
`on the SCSI Standard such as an Enhanced Small Device
`Interface (ESDI) disk or A printer connected to a parallel
`port.
`One alternative method of accessing a device in another
`computer is to use a Local Area Network (LAN) system.
`This solution has a number of difficulties for the user. ALAN
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 11
`
`

`
`5,499,378
`
`3
`approach requires significant hardware and software invest-
`ment and necessitates extensive system overhead. A network
`requires one network adapter per computer. An abundance of
`software is needed to implement the communication proto-
`col and handle device sharing. Local Area Networks require
`the user to learn a new menu of commands. This is extra
`work for the end user and often adds significant delay in
`accessing the peripherals.
`Accordingly a method is needed to conveniently expand
`beyond the SCSI standard imposed limit of communication
`with eight target devices and to provide access to SCSI
`devices on non-local buses and to non-SCSI devices
`attached to computers which share a common SCSI bus.
`
`SUMMARY OF INVENTION
`
`This invention comprises a SCSI emulation device and
`system for providing access to non-SCSI devices or SCSI
`devices on a non-local SCSI bus via a common SCSI bus
`thereby providing a practical and economic system for
`achieving access to a multiplicity of peripherals in a SCSI
`environment. The target system receives standard SCSI
`commands and emulates the device being accessed. The
`initiator sends standard SCSI I/0 device driver commands.
`The target system uses its own Basic InputlOutput System
`(BIOS) and device drivers to access the non—local device and
`perform the initiator command. Thus, the initiator uses
`standard IJO device drivers for the given device and the
`target uses emulation code with redirection and/or transla-
`tion routines to look like a standard SCSI device.
`
`Application programs running in the initiator system,
`work without revision as long as they use standard device
`drivers. They access the non-SCSI or non-local device on
`another computer as if it were local to their own computer.
`The user has the benefit of not needing to learn and remem-
`ber additional commands to access devices on the other
`computers. In fact, the standard device drivers are used as if
`the peripheral units were integral with the basic system.
`Code size is reduced significantly since there is no software
`overhead for the initiator, and a device driver for the
`emulating target requires no screen graphics or user inter-
`face. When SCSI is standard on a computer, no additional
`hardware is necessary to support remote device access
`within another computer except a cable to connect them, and
`the appropriate software to support the SCSI target and
`device emulation functions.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is an exemplary computer system embodying the
`invention;
`FIG. 2 is a schematic illustration of a SCSI initiator and
`target computer system with a targeted peripheral;
`FIG. 3 is a power on sequence and communication flow
`chart for implementing the invention;
`FIG. 4 is an accessation sequence and communication
`flow chart for implementing the invention.
`FIG. 5 is a resident device driver emulation code Ilow
`chart for initialization in accordance with the present inven-
`tion;
`
`FIG. 6 is an emulation code flow chart for set up of the
`hardware and software interrupt vectors and enabling the
`target adapter in accordance with the present invention.
`FIG. 7 is a BIOS fixed disk software interrupt intercept
`and synchronization code flow chart in accordance with the
`present invention.
`
`4
`FIG. 8 is a Micro Channel” SCSI adaptor hardware
`interrupt handler in accordance with the present invention.
`FIG. 9 is an emulation code flow chart for processing of
`the SCSI adapter hardware target mode interrupt in accor-
`dance with the invention.
`
`FIG. 10 is an emulation code flow chart for processing a
`SCSI command in accordance with the present invention.
`
`DESCRIPTION OF THE INVENTION
`
`The described invention is operable in conjunction with
`the IBM PS/2 computer series and all compatibles, as
`exemplary presented in FIG. 1. The terminology and
`selected function calls are normal and are in accordance with
`standard references for the personal computer PS/2 such as
`OS/2 Prograrnmer’s Guide written by Ed Iacobucci and
`published by Osborne McGraw-Hill. The inventive interface
`is for inclusion in a system which generally comprises a
`display 2 and a processing system 4, which are controlled
`and inputted externally by a keyboard 6 and mouse 8.
`The exemplary system of FIG. 1 is equally suitable for an
`initiator and a target system operable with individual periph-
`erals and appropriate device drivers in an environment
`incorporating SCSI architecture. The IBM PS/2 SCSI
`Adapter with cache is an example of a SCSI adapter which
`supports both initiator and target functions and would be
`suitable for implementation of this invention in the target
`system.
`For SCSI architecture a command is comprised of two or
`more of the following phases: Selection, Reselection, Mes-
`sage Out, Command, Data In, Data Out, Status and Message
`In. The present inventive contribution is concerned with
`SCSI commands with a command phase. Those commands
`without a command phase can be handled with or without
`system intervention. Those commands with a command
`phase are comprised of the following sequence of phases:
`Selection, Message
`out
`(optional), Command, Data
`(optional), Status and Message In. A target may release
`(disconnect) the SCSI bus at any time by sending a discon-
`nect Message In to the initiator to tell the initiator it is
`disconnecting. This can be done with or without system
`intervention.
`
`In FIG. 2, an exemplary illustration of an inventive
`configuration for implementing the present
`invention is
`disclosed and included as a part of the exemplary processing
`system 4 of FIG. 1. An initiator system 10 is connected by
`an SCSI bus 12 to a target system 14. The initiator system
`10 will access a hardfile 16 local to the target system 14
`which is not on the initiator system SCSI bus 12. The SCSI
`subsystems 18 and 20 of initiator system 10 and target
`system 14, respectively, are schematically shown as SCSI
`adapter cards which plug into the system [/0 bus 12.
`The initiator system 10 requires no special microcode as
`long as it is powered up after the target system 14 has set up
`its target device emulation code. If the initiator system 10 is
`powered up before the target system 14 is ready, the situation
`is the same as powering up the system 10 before an external
`SCSI device is turned on. The Power On Self Test (POST)
`code will not know the device exists and will indicate a
`configuration error. If it is the case that the initiator system
`10 is powered on before the target system 14, the initiator
`user can power on the target system 14 and re-boot the
`initiator system 10. For this example, the assumption will be
`that the initiator system 10 will power on after the target
`system 14 has power and the device emulation code has been
`initialized.
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 12
`
`

`
`5,499,378
`
`5
`The initiator system 10 Power On sequence and commu-
`nication fiow is shown in FIG. 3. Illustrated in FIG. 3, are the
`following five columns: Column A—Initiator System, Col-
`umn B—Initiator SCSI Adapter, Column C——SCSI Bus
`Phases (completed), Column D—Target SCSI Adapter, and
`Column E———Target System. On the SCSI bus connection 12
`illustrated in FIG. 2, the following phases will occur to
`complete one SCSI command where the following phases
`and their abbreviations are set forth: Selection (Sel), Mes-
`sage Out (Msgo), Command (Cmdo), Data In (Data), Status
`In (Status), Message In (Msgin). The target system 14
`powers on and enables the target SCSI subsystem 20 to
`receive commands, as identified by FIG. 3 in sequence box
`22. The initiator system 10 powers on and the BIOS POST
`issues Inquiry commands to see what devices are connected
`to the SCSI bus 12, as identified by sequence box 24. The
`initiator SCSI adapter 18 of Column B builds a SCSI inquiry
`command as identified by sequence box 26 and selects the
`target system 14, as illustrated by the command on line 28
`from sequence box 26. The target system SCSI 20 accepts
`the Message Out and Command on line 28. The target
`adapter 20 transfers the command to the memory of target
`system 14 and interrupts the target system, as identified by
`sequence box 30. The target system 14 device emulation
`code recognizes the command as an inquiry command and
`builds the inquiry data, as identified by sequence box 32.
`The target system 14 device emulation code commands the
`target SCSI adapter 20 to send the inquiry data as set forth
`in sequence box 34. Inquiry data is received by the initiator
`adapter 18 on line 36 as identified by sequence box 38. The
`initiator system’s standard POST code recognizes the device
`as being present, as identified by sequence box 40.
`The device 16 is now available to the initiator system and
`can be accessed by any routine which accesses local periph-
`eral devices. An example of such an interaction is given in
`FIG. 4 utilizing the identified columns A—E of FIG. 3. An
`application program requests a Read command from the
`target system magnetic disk 16. The program assumes the
`magnetic disk 16 is local to the initiator system 10 of FIG.
`2. The DOS operating system calls the initiator system’s
`BIOS identified by sequence box 42, which builds the Read
`Subsystem Control Block (SCB) as identified by sequence
`box 44. The initiator SCSI adapter 18 builds the SCSI Read
`command, as identified by sequence box 46, and selects the
`target system 14 as if the target system 14 were the magnetic
`disk 16, as identified by line 47. The target adapter 20
`receives the Read command and interrupts the target system
`14 as identified by sequence box 48. The target system 14
`recognizes the command on line 47 as a Read command to
`the hardfile 16. The target system 14 calls the local BIOS to
`do a Read on the local hardfile 16, as identified by sequence
`box 50. The target system 14 loads the data in a local buffer,
`of a type well known in the art, and tells the target adapter
`card 20 to send the data to the initiator, as identified by
`sequence box 52. The initiator adapter 18 receives the data
`on line 53 as identified by sequence box 54 and interrupts the
`initiator system 10 with the data available, as further iden-
`tified by sequence box 56.
`The emulation code required by the target system 14 of
`FIG. 2 can be implemented as a resident device driver. This
`device driver will allow the two systems to share a read only
`database. It exemplifies the processes of device sharing,
`BIOS synchronization and redirection/translation of data
`and commands.
`The device driver initialization code within block 57 of
`FIG. 5 determines I.l1e local fixed disk which will be emu-
`
`lated and the initiator to which the SCSI adapter will
`
`6
`respond. The initialization code checks for generic BIOS
`installed in the system as depicted by step 58, for a SCSI
`adapter 20 installed in the system 14 as illustrated within
`step 59 and for a free logical device number on the SCSI
`adapter 20 as in block 60. If any of these are not installed or
`available the resident driver is not installed as set forth by
`block 61.
`
`.
`
`If the necessary environment is available, the step from
`block 60 is to block 55 depicting then the initialization code
`which saves the SCSI adapter Micro Charmelm interrupt
`vector as set forth in block 62 of FIG. 6 for interrupt
`chaining. This interrupt vector is replaced by the device
`driver SCSI adapter interrupt handler as in step 63. The free
`logical device number on the SCSI adapter is initialized as
`a target for the said initiator in the following step 64. The
`SCSI BIOS interrupt vector is saved for interrupt chaining
`and this interrupt vector is replaced by the device driver
`BIOS fixed disk interrupt handler as illustrated in block 65.
`The interrupt handlers are kept as resident routines as shown
`in block 66. Initialization is now complete.
`BIOS call synchronization is accomplished by intercept-
`ing all fixed disk BIOS software interrupts as shown in block
`67 of FIG. 7. A flag is set called Share_Hardfile in step 68
`before calling the real fixed disk BIOS routine as set forth in
`block 69. Upon return from this routine, Share_Hardfile is
`reset as in block 70.
`
`The SCSI adapter hardware interrupt is also intercepted as
`illustrated by 75 of FIG. 8. If Share,Hardfile is active, as
`determined at step 79, then a call to the fixed disk BIOS is
`not made and a flag is set, shown by SCSI_Int at block 80,
`to log the occurrence of a hardware SCSI interrupt for the
`emulated device.
`
`For the BIOS software interrupt see FIG. 7 where SCSI_
`Int is checked at step 71 following the reset of Share__
`Hardfile as before mentioned in block 70, thus insuring all
`hardware SCSI adapter interrupts will be serviced. If SCSI_
`Int is not set then the BIOS interrupt is complete as illus-
`trated by step 74. Otherwise SCSI_Int is reset at step 72 and
`the hardware interrupt is processed at step 73. This prevents
`a higher priority hardware interrupt from interrupting a
`BIOS interrupt. This ensures that
`the fixed disk BIOS
`routine is not called recursively which is not allowed by
`BIOS for the DOS operating system.
`For a SCSI adapter hardware interrupt, as illustrated in
`FIG. 8, the handler determines if the emulated SCSI adapter
`is the source, as before mentioned regarding step 75. If not,
`it chains to the next interrupt handler at block 76. If the
`interrupt is for the emulated device as determined at step 77,
`an end of interrupt command (EOD is given to the adapter
`20 and the system 14 at step 78. If the local hardfile BIOS
`interrupt is not active as determined at step 79, the hardware
`interrupt for the emulated device is processed as illustrated
`at block 81.
`
`FIG. 9 describes the processing of the SCSI adapter
`hardware interrupt. If the given command did not complete
`successfully at step 82, the sense code in the local sense area
`is updated with the error, and a check condition status byte
`is sent back to the initiator at block 83 and a command
`complete message is also sent. The device driver in the
`initiator will handle this error as it would any other standard
`SCSI error. If a new SCSI command has been received from
`the initiator as determined at step 84, the command is
`processed, as illustrated by block 85. If read data was sent
`successfully as set forth in block 86, good status and a
`command complete message is returned as set forth in block
`87. If sense data has been sent successfully as illustrated at
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 13
`
`

`
`5,499,378
`
`7
`
`step 88, the local sense area is cleared at step 89 and good
`status/message is returned to block 87. If none of these
`conditions occurred, there is a hardware failure and the
`emulated device is disabled as depicted at block 90, causing
`a selection timeout to the initiator. A selection timeout will
`be interpreted by the standard SCSI device driver on the
`initiator as a hard error.
`
`FIG. 10 describes the processing of a SCSI command. If
`the command from the initiator is a read command illus-
`trated at block 91, the command is translated to a BIOS fixed
`disk read function call at step 92. When complete, the data
`received is returned to the initiator through the emulated
`target at block 93. If a SCSI inquiry command is received
`from the initiator at block 94, an inquiry data block is built
`at block 95 and the data is sent back to the initiator at step
`96. If a SCSI request sense command is received at step 97,
`the current sense information for the emulated device is
`returned at step 98. If a read device capacity command is
`received at block 99, a BIOS return drive parameter call is
`sent to the local fixed disk BIOS at block 100. The infor-
`mation is translated to the SCSI read device capacity data
`format and returned to the initiator as illustrated at block
`101. If a SCSI test unit ready is received at 102, good status
`and message is returned through block 103 since the emu-
`lated target is ready for information transfer. Otherwise an
`illegal command was received. The local sense data is
`updated with illegal request as the sense key at step 104
`which will be returned in response to the next request sense
`command at step 97. Check condition status is then sent
`back to the initiator as illustrated at block 105.
`
`Target emulation is typically accomplished by a memory
`resident device driver. This example DOS device driver
`intercepts the hardware and software interrupts. BIOS call
`(software interrupt) and hardware interrupt synchronization
`is accomplished by sharing control flags. Redirection of
`interrupts and translation of SCSI/BIOS information is done
`within the interrupt handlers. Target emulation routines
`
`8
`(device drivers) could be written to support various types of
`devices and functions using similar structures under DOS or
`other operating system environments. Consideration must be
`given to device sharing support based on the number of
`possible initiators and particular emulated device character-
`istics.
`While the invention has been shown and described with
`reference to particular embodiments thereof,
`it will be
`understood by those skilled in the art that the foregoing and
`other changes and details may be made therein without
`departing from the spirit and scope of the invention.
`What is claimed is:
`
`1. A computer network system of two computers having
`BIOS software dependency wherein the first computer
`accesses a remote peripheral device of the second computer,
`comprising:
`a first computer including a first Small Computer System
`Interface (SCSI) adapter;
`a second computer including a second SCSI adapter with
`at least one remote peripheral device;
`a SCSI bus communications link between the first and
`second SCSI adapters; and
`memory resident emulation means in the second computer
`emulating a SCSI remote peripheral device for direct
`access of the SCSI remote peripheral device by the first
`computer and emulating a non-SCSI remote peripheral
`device for direct access of the non-SCSI remote periph-
`eral device by the first computer upon command by the
`first computer and providing for proper sharing of any
`BIOS software interrupt which supports remote periph-
`eral device access by both the first and second com-
`puters upon eommand by the first computer such that
`proper hardware and software priority operation is
`maintained and providing synchronization procedures
`to preclude BIOS software interrupt recursion.
`
`Papst Licensing GmbH & Co. KG - Exhibit 2004 - p. 14

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