CA2161460C - Command delivery for a computing system - Google Patents

Command delivery for a computing system

Info

Publication number
CA2161460C
CA2161460C CA002161460A CA2161460A CA2161460C CA 2161460 C CA2161460 C CA 2161460C CA 002161460 A CA002161460 A CA 002161460A CA 2161460 A CA2161460 A CA 2161460A CA 2161460 C CA2161460 C CA 2161460C
Authority
CA
Canada
Prior art keywords
command
subsystem
port
scb
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002161460A
Other languages
French (fr)
Other versions
CA2161460A1 (en
Inventor
Francis Michael Benevento
Douglas Roderick Chilsholm
Sammy Davis Dodds
Dhruvkumar M. Desai
Ernest Nelson Mandese
Andrew Boyce Mcneill
Richard Neil Mendelson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US07/364,931 external-priority patent/US5131082A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2161460A1 publication Critical patent/CA2161460A1/en
Application granted granted Critical
Publication of CA2161460C publication Critical patent/CA2161460C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

A Command interface includes ports for transferring information between a host processor and at least one intelligent subsystem which may have attached devices. A Command interface port receives either a direct command or an indirect command from the host processor, which commands are indicative of a type of operation to be performed by the one subsystem or an attached device. An Attention port receives a code from the host processor which is indicative of which one of the direct command or the indirect command is received at the Command Interface port, and which is also indicative of which of the one intelligent subsystem or a device is to execute the command. A command busy/status port receives a code from the one intelligent subsystem which is indicative of whether or not the Command Interface port and the Attention port are busy, and whether or not the one intelligent subsystem is accepting or rejecting commands. The host processor can read this port without altering or updating the code.

Description

~ 2161~60 COMMAND DELIVERY FOR A COMPUTING SYSTEM

Field of The I~ nlion The invention is in the field of computing systems, and in particular is directed to a command delivery mechanism. Specifically, the invention is directed to delivering commands from a personal computer class machine to a plurality of intelligent subsystems which may have attached devices.

Ba( ~l(Ju~ld of The I~ liioll In a data processing or computing system comprised of a host system and at least one subsystem, there is a need to communicate direct and indirect commands to an individual 15 subsystem, usually over an I/O channel.

The direct command is one which can be directly sent to a subsystem in one operation, is completely and totally self-contained, and totally specifies an operation to be executed by the subsystem. On the other hand, an indirect command is one which requires more data to specify 20 the operation than can be provided within one channel I/O cycle. The indirect command is itself a pointer to a block of system memory which contains all the parameters necessary to totally specify an operation to be performed by the subsystem. This block of memory is often referred to as a "control block".

25 In all computer systems, there exists at least one I/O instruction which enables the program running in the host system to send data and/or commands over its external interface or channel. The amount of data that can be sent with each I/O operation, as well as the status received from the channel or subsystem relative to the acceptance or completion of the operation is system dependent.

.

2161g6D
` -In computers of the class typified by the IBM Series/l~, the opcration of which is described in "Series/l Principles of Operation", IBM publication order number GA34-0152-0, every I/O
Operation transferred the following information to pcripheral attachment cards installed in the Series/l I/O channel:

(I) The address of the subsystem to which the command is directed.

~2) An 8-bit command field that indicated whether the operation was direct or indirect.

(3) A 16-bit data word which either containcd data with respect to a direct command, or an address of a device control block (DCB) in the case of an indirect command.

15 In addition, during execution of each l/O instruction Cycle on the channel, status was presented through various indicators to record a condition codc specifying the status of the l/O
operation. This immediate, real-time status allowcd the host program to determine whether the command was accepted by the subsystem successfully, or whether an error condition occurred such as "Device Not Attached" or "Immediate Command Reject". In the case of an error, the 20 host program could retry the command at a later time.

Because the Series/l subsystems could immediately acccpt or rcject an l/O command, there was no need to use a priority interrupt or othcr mcchani.sm to report immediate status to the host program.
In order to ensure the integrity of an entire system, therc must always be a mechanism to report whether or not an I/O command is acceptcd for execution by the subsystem. The host system cannot assume that a command is successfully accepted by the subsystem because there are many modes of failure which could remain undetected and therefore unrecoverable.

2161~6~

The need to have complex commands on a personal computer class machine is indicated by the growing complexities of the I/O subsystems that are utilized in state-of-the-art computing systems.

5 According to the present invention, this need is met by providing a mechanism to transmit commands in the form of subsystem Control Blocks (SCB's) between a host system and a plurality of subsystems. Rather than having a unique processor instruction for delivery of the address field and command type ~lelds as in the Series/l, these ~lelds are provided to a single port, called an attention port to accommodate the present instruction set of common Intel 80286/386/486 base processor systems. lt is to be appreciated that other processor based systems may be utilized in the practice of the invention. A command interface port receives direct or indirect commands.

Also, as in the Series/l type machine, a mechanism did not exist in the personal computer class 15 machines for reporting immediate status when communicating direct or indirect commands across the I/O channel. This need is met by providing a Command Busy/Status Port within each subsystem to provide status of a previous l/O operation, as well as providing the current state of the subsystem. This port can be read by the host program using an I/O read command which does not alter or update the status in this port. Only output (write) commands directed 20 to other ports within a subsystem affect the status in the Command Busy/Status Port.

Obiect~ of the In~ n~

It is an object of the invention to provide a command delivery mechanism for a computing 25 system.

It is also an object of the invention to provide a computing system wherein a host system provides direct and indirect commands to at least one subsystem which may have attached devices.

2161~60 .

It is another object of the invention to provide a computing system wherein a host proeessor provides an immediate eommand or the address of a subsystem control block (SCB) to at least one subsystem which may have attached devices, and the one subsystem executes the immediate eommand or fetehes the SCB for subsequent exeeution.

It is a further object of the invention to provide a computing system wherein a eommand interfaee transfers information between a host processor and at Ieast one intelligent subsystem, whieh may have a plurality of attaehed devices. The eommand interface ineludes a eommand interfaee port whieh reeeives either an immediate command or the address of a SCB stored in 10 a system memory, and an attention port which receives a code from the host processor whieh is indieative of which one of the immediate command or the address of the SCB is reeeived at the eommand interfaee port, and whieh is also indicative of which of the one intelligent subsystem or a device is to execute the command. An initial command and an initial code are locked in the command interface port and the attention port, respectively, such that a 15 subsequent eommand and eode can't overwrite the respective ports until the initial command is processed.

It is yet another object of the invention to provide a computing system wherein a command interface transfers information between a host processor and at least one intelligent subsystem 20 whieh may have attaehed deviees. The eommand interface includes a command interface port, an attention port and a command busy/status port. The command interface port receives either an immediate command or the address Or an SCB s~ored in system memory. The attention port reeeives a code from the host processor which is hldicative of which one of the immediate eommand or the address of the SCB is received at the command interface port, and which is 25 also indieative of whieh of the one intelligent subsystem or a device is to exeeute the eommand.
The command busy/status port receives a code from the one subsystem which is indicative of whether or not the eommand interfaee port and the attention port are busy, and whether or not the one intelligent subsystem is accepting or rejecting commands. This port can be read by the host processor without altering or updating the status of the port.

~,, It is yet a further object of the invention to provide a computing system wherein a command interfaee transfers information between a host processor and at least one intelligent subsystem which may have attached devices. The command interface includes a command interface port and an attention port. The command interface port receives either an immediate command or 5 the address of a SCB stored in system memory. The attention port receives a code from the host processor whieh is indicative of which one of the immediate command or the address of the SCB is reeeived at the eommand interface port, and which is also indicative of which of the one intelligent subsystem or a device is to execute the command. SCB commands may be chained in a specific order, and are treated as one logical request. The chaining of SCB
10 commands allows the intelligent subsystem to fetch and execute commands, without causing undue interfacing with host processor operation. There may also be chaining of multiple data buffers for a given command. The chain of- buffers is structured using an indirect list. Each SCB ineludes the address of a Termination Status Block (TSB) in system memory, to whieh the subsystem whieh is proeessing the SCB stores completion or termination status for the SCB.
Summary of the Inv~,~Liol~

The invention is direeted to a command interface including ports for transferring information between a host proeessor and at least one intelligent subsystem which may have attached 20 deviees. A eommand interface port receives from the host processor either a direet eommand whieh eontains all the information necessary for an intelligent subsystem to immediately exeeute the eommand, or an indirect command whicll is the address of a subsystem control block (SCB) stored at one of the addressable locations of the system memory of the host proeessor. An attention port receives from the host r)rocessor a code having a first portion 25 whieh is indieative of whieh of the direct command or the indirect command is reeeived at the eommand interface port, and a second portion which is indicative of which of the one intelligent subsystem or an attached device is to execute the command. A command busy/status port contains status information which can be read by the host processor, which information reflects immediate acceptance or rejection of a command by the subsystem or attached deviee 30 for subsequent execution. A direct command is directly executed by the one inte]ligent 2161g60 subsystem or an attaehed device in accordaince with the second portion of the eode written in the attention port. If there is an indirect command, the one intelligent subsystem directly aecesses the system memory at the indicated SCB address. The one intelligent subsystem or a deviee then performs the operation indicated in the aceessed SCB.

BAef D~icliplio~ of the Dla~ s FIG.lis a bloek diagram of a computing system including a host system eonneeted to a plurality of intelligent subsystems, whieh may have a plurality of deviees eonneeted to eaeh subsystem;
FIG.2is a bloek diagram detailing the host system and one of the intelligent subsystem;
FIG. 3 is a bloek diagram of the Command interface for exchanging information between the host system and an intelligent subsystem;
FIG.4is a bloek diagram detailing the Attention port;
FIG.5is a block diagram detailing the Command busy/status port;
FIG.6 illustrates the Command interface port and Attention port general formats for an immediate eommand;
FIG.7 illustrates the Command interface port and Attention port general formats for a Subsystem Control Bloek (SCB) eommand;
FIG.g illustrates a detailed (SCB) format of the control bloek utilized in the eomputing system of the invention;
FIG.9 illustrates a detailed extended SCB format;
FIG.10 illustrates a detailed SCB Termination Status Bloek (TSB) format;
FIG.II illustrates a detailed extended TSB rOrmat;
FIG.12is a bloek diagram of the computin~ system detailing the SCB format in system memory;
FIG. 13 is a state diagram of the subsystem state transitions during eommand submission;
FIG.14is a deeision table indieative of the results of host proeessor attempts to set I/0 ports;
FIG.lSis a deeision table indicative of accepting commands in the decode process;

216146~

scg - 89 - 002B 7 FIG. 16, 17 and 18 are decision tables indicative of rejecting commands in the decode process;
FIG. 19 is a flow chart of the command delivery system of the invention;
FIG. 20A, 20B and 20C taken together as shown in Fig. 20, and Fig. 21 are detailed 5 flow charts of the process write to the subsystem control port, which is shown generally in FIG.
19;
FIGS. 22A and 22B taken together as shown in FIG. 22 are detailed flow charts of the process write to the attention port, which is shown generally in FIG. 19;
FIG. 23 is a detailed flow chart of the process wr;te to the command interface port 10 which is shown generally in FIG. 19; and FIG. 24A and 24B when taken together as shown in FIG. 24, and FIGS. 25A and 25B
taken together as shown in FIG. 25 are detailed flow charts of the command decode process.

De~liplio~ of the P~ f~ d Embodiment The invention is directed in general to a command delivery system for a program running on a host computer system. Direct or indirect commands are delivered via a command interface to at least one intelligent subsystem, which may have a plurality of attached devices. For purposes of description, the invention is described in the context of a command delivery system 20 for a program running on an IBM Personal System/2 (PS12)~ computer. Direct commands, such as immediate commands, and indirect commands? such as addresses of subsystem control blocks stored in the PS/2 system memory, are delivered via the IBM Micro Channel~, to a command interface on the one intelligent subsystem, which may have a plurality of attached devices such as tape drives, disk drives, printers, communication devices, display devices and 25 the like. It is to be appreciated, however, that the invention may be practiced on other host computer systems delivering commands to intelligent subsystems via an interface network.

A subsystem Control Block (SCB) architecture is dermcd to provide a control block level of interface between a host processor and subsystems having a Direct Memory Access (DMA) 30 capability, and having the ability to handle command level operations. Individual commands are contained within an SCB. There is command chaining, wherein one SCB points to the address of one or more other SCB's, with this chain being treated as one logical command.
There is also data chaining of multiple buffcrs associated with a given command. The chain of buffers is structured using an indirect list.
A SCB includes the address of a Termination Status Block (TSB) in system memory. The completion or termination status of a given SCB is placed in the TSB by the subsystem processing the command. In order to handle termination at any point in a chain of commands, there is a TSB defined for each SCB in a chain.

Detailed descriptions of the SCB and TSB follow the gcneral description of the command delivery system set forth below.

Refer now to FIG. 1 which is a general block diagram of a computing system according to the invention. A host computer system 100 exchanges information with a plurality of intelligent subsystems 102, 104, 106 and 108 via a bus architccture 110. The bus architecture 110 is connected between a channel 112 on the host computcr system 110 and an interface on each subsystem, such as the interface 114 in subsystem 102. Each of the subsystems 104, 106 and 108 are similar to subsystem 102. The bus architccturc includes a control bus 116 for exchanging control signals, a data bus 11 ~ for exchanging data signals and an address bus 120 for exchanging addresses.

FIG. 2 sets forth details of the system I ()0 ~nd thc sub~ystcm 1 ()2, with the understanding that the other subsystems are configured in a like manner.
The host system 100 includes a system processor complex or host processor 122 which is connected to a system memory 124 via a bus 12~. The system processor complex 122 consists of a personal computer class microprocessor such as the referenced PS/2 connected by the Micro Channel 126 to the system memory 124. The operation of the PS/2 and the Micro Channel are described in "PS/2 Hardware Intcrfacc Technical Reference", IBM Publication 216146~
-BC9 - 89 - 002 B g order number 68X-2330-0. The memory 124 is acccssible by the host processor 122, or the subsystem 102 by direct memory access.

The subsystem 102 is comprised of an attachmcnt or adapter which includes a Micro Channel interface 128 to the Micro Channel 126. The interface includes a set of input/output (I/O) ports, the details of which are dcscribcd relative to FIG. 3, which allows the system host processor to direct commands to, and rcccive replies from the subsystem. These ports may be mapped into the system memory space or llO spacc. This interface also provides the Micro Channel bus master and/or slave functions needed by the adaptcr.

The commands include direct or immediatc commands and indirect commands such as addresses of Subsystem Control block (SCB's) in thc system memory 124. A SCB delivery support logic 130 provides the SCB Commands to a local microprocessor 132, such as an Intel 80186 or 80188 class microprocessor, the operation of which is described in the "Intel Microprocessor and Peripheral Handbook", for processing. SCB delivery 130 also provides local processor interrupts to interrupt logic 134 in processor 132. Detailed flow charts are set forth in FIGS. 17-23 to explain the runction of thc command handler and decode processor functions included in the SCB delivery logic 130 and microproce~ssor 132.

The microprocessor 132 responds to the SCB commands to schedule tasks for attached devices 136, 138, 140 and 142 via attached devicc interface 146, which for example may be the Small Computer System Interface (SCSI). Thc opcration of the SCSl Interface is described in "American National Standards lnstitutc (ANSI) For Information Systems-Small Computer Systems Interface (SCSI)", publication numbcr ANSI X3.131 - 1986. The attached devices may be disk drives, tape drives, direct accc.ss memory deviccs (DASD's), printers, displays and the like. Device D(0) 136 is utilizcd to dircct commands to the subsystem. The intelligent subsystem 136 and the devices 13~,140 and 142 are cach viewed as a logical device by the host processor, with each being assigned a dcvice identirlcation numbcr, D(0), D(l), D(2) and D(n), respectively, by which they are addresscd.

~ 2161~60 BC9- 89 - 002s 10 The I/0 ports of the Micro Channel interface 128 are illustrated in FIG. 3. The ports defined to control a subsystem must be allocated in l/0 address space in the following order:

(1) A Command Interface Port 148.
5 (2) An Attention Port 150.
(3) A Subsystem Control Port 152.
(4) An Interrupt Status Port 154.
(5) A Command Status/Busy Port 156.

10 These ports can be mapped into system memory address space instead of the I/0 address space. E~or purposes of description, I jO addresses were chosen. Therefore, where an "OUTn or an "IN" command is used in the description, a "System Write" or System Read" command would be substituted if the ports are mapped to system memory address space.

15 The Command Interface Port 148, which may also be referred to as the Command Port, is a subsystem read/system write register. This 32-bit register is used to transfer a two word (32-bit) Direct, that is an Immediate Command, or an Indirect Command such as the SCB address from the system to the subsystem. The Immediate Command or SCB specifies the operation to be performed by the subsystem.
The system program writes an immediate command or an SCB address to the Command Interface Port 148 then writes the Attention Port 15(). The subsystem sets the busy bit in the Command Busy/Status Port 156. When the system has written the Attention Port 150 this signals the local microprocessor 132 via the interrupt 134 (FIG. 2). Responding to the 25 interrupt, the subsystem reads the Attention and Command Interface Ports, then determines the type of operation to be performed, and the device it is directed to. The subsystem will either fetch the SCB at the address provided in the Command Interface Port or execute the Immediate Command.

The Attention Port 150 is a subsystem read/system write register. This 8 or 16 bit register is 216146~
BC9-89-002B . 11 used by the system program to request the attention of the Subsystem to perform a command.
The bits in the register indicate the requested action and the associated device number. Stated another way, the Attention port receives a code having a first portion which is indicative of which one of the immediate command or SCB address is received at the command interface Port 148, and a second portion which is indicative of which one of the subsystem or an attached device is to execute the command received at the command interface Port 148. When the Attention Port 150 is written by the system, thc Busy bit in the Command Busy/Status Port 156 is immediately set to ONE by the subsystem. The Busy bit remains set until the subsystem reads the attention request and the associated Command Interface Port, and determines if it can accept the comman(i. The subsystem must be able to receive new commands at any time the Busy bit is ZERO. The Busy bit will also remain set until the subsystem has completed a Reset Subsystem.

Refer now to FIG. 4 for details of the Attention Port (AP). The host processor has read/write access to the AP. During System Software Write (SSW) or System Software Read (SSR) operations to the AP, the Micro Channel l/O address must be equal to the value assigned to the AP during the Micro Channel SETUP, to select the subsystem.

The AP receives the 8-bit attention command 141 at the input of an AP register 143. The input attention command is clocked into register 143 when AND gate 153 is active, with the attention command being provided at the register output 157. A SET_AP_INTRPT signal is provided on line 155 whenever gate 153 is active. This signal is an interrupt to the subsystem local processor signalling that a commancl has been writtcn to thc AP by the host processor.
Whenever gate 153 is inactive, an attention comm~nd c~n not be clocked into register 143, and is therefore ignored by the subsystem.

Four inputs control whether or not gate 153 has a ONE output. A positive logic input is denoted by a plus (+) sign, and a negative logic input is denoted by a negative (-) sign. The first input on line 145 is a + MC_AP_SEL signal which when a ONE indicates that the Micro Channel address for the AP is valid and thc host processor has selected the AP for this ~ 216146~

subsystem. The seeond input on line 147 is a +SSW_REG_CLK signal which when a ONE
indieates that a Miero Channel l/O write is valid for this subsysteins l/O address space. The third and fourth signals are provided from the command Busy/Status Post (CBSP). The third input on line 149 is a -CBSP BITO_2B signal, which is a Busy bit (B) signal. Since this is a 5 negative logic signal, when B is a ZERO the signal on line 149 is a ONE, and when B is a ONE the signal on line 149 is a ZERO. The fourth input on line 151 is a -CBSP_BIT4_ (REJ) signal which is the reject ~RE.I) signal. Since this is a negative logic signal, when REJ is a ZERO the signal on line 151 is a ONE, and when REJ is a ONE the signal on line 151 is a ZERO. It is seen that anytime the lines 145, 147, 149 and 151 are each ONE, the attention eommand on lines 141 are clocked into register 143, and the SET_AP_INTRPT signal on line 155 signals the loeal processor that a command has been written in the AP. Conversely, if any of these lines are ZERO, gate 153 provide a ZERO output which inhibits the writing of a eommand into AP register 143. Specirlcally, if either the Busy bit or the REJ bit is a ONE, the writing of a eommand to AP register 143 is blocked.
The Subsystem Control Port 152 is a subsy~tem read/system write register. This is an 8 bit Read/Write port whieh provides direct hardware eontrol of several subsystem wide functions.
Ineluded in this port are bits to control the reset of the subsystem and all attached devices, enable or disable the subsystem from presenting physical interrupts to the main processor, a subsystem DMA enable/Disable function, and lastly a function to reset an error caused when a eommand is rejeeted without execution by the subsystem. The format and funetion of the Subsystem Control Port 152 is shown for bits 0-7 in FIG. 3, the f~]nction of which is set forth below.

BIT 0 - EI - Enable SulJs~L~Ill Intcrrupts.
This bit enables the subsystem to sen(l a physical Interrupt to the system when it is set to ONE. The EI bit is initialize(J to ZERO when the subsystem is powered on or reset by a Reset Subsystem. When the El bit is ZERO, the subsystem is disabled for physical interrupts and is not allowed to send a r~hysical interrupt to the main processor.
This bit remains set until it is explicitly reset by an OUT command to the port or a ~ 2161~60 BC9-89-002s 13 Reset Subsystem.
.

BIT I - DMA- Enable DMA.
When this bit is set to ZERO, the subsystem is not allowed to initiate any DMA
operations. Setting this bit to ZERO, places the subsystem into a state where it cannot execute any SCB commands or store any SCB logical interrupt status (TSB). This bit is set to ZERO when the subsystem is powered on, and is reset to ZERO by a ResetSubsystem. The bit remains set until it is explicitly reset by an OUT command to the port or a Reset Subsystem. (The DMA bit is intended as a means of debugging hardware. It may also be used as a means to force the subsystem to halt Micro Channel activity.) .
BIT 2~3 - S.D. - Sut~ Depcndent.
Bits 2 and 3 of the port are reserved for subsystem dependent functions.
BIT 4~6 - R - Reserved.
Bits 4 and 6 are Reserved and must be set to ZERO.

) BIT 5 - RR- Reset Reject.
When the host processor sets this bit to ONE, and the subsystem is in the Reject State, the Rejeet State will be cleared, by setting the RR bit ON, i.e., to a ONE. When the Reject State is cleared, the Busy (B) and Reject (RE I) bits in the Command Busy Status are set to ZERO. If the suhsystem is not in the Reject State, then writing a ONE to the RR bit causes no effect. The RR bit is set to ZERO when the subsystem is poweredon, or reset by a Reset Subsystem. The setting of this bit remains until it is explicitly reset by a specific OUT command to the port or a Reset Subsystem. Writing a ZEROvalue to the RR bit does not effcct thc intcrnal statc of thc subsystem.

BIT 7 - RST - Sul~l. l.l Rcsct.
This bit is used to provide a hardware controlled reset of the subsystem and all the devices attached to it. When set to ONE, the subsystem enters the Reset Pending State, and sets the Busy bit (B) in the Command Busy Status Port to ONE. All device activities on the subsystem are halted. The program must write a ZERO value to RST
in a time period which is subsystem specirlc. The transition of the RST bit from a value of ONE to ZERO while in the Reset Pending State p]aces the subsystem into the Reset in Progress state. In this state, the subsystem completes resetting itself and all devices attached to it. When the reset is complete, the Busy bit will set to ZERO, and an interrupt of the main processor will be attempted.

The Interrupt Status Port 154 is a system read/subsystem write register. This 8 or 16 bit register is used by the subsystem to present interrupt data to the program. Interrupts for Immediate Commands, SCB commands with severe hardware failure, Non SCB Cornmand,or SCB Commands are presented in this port. Additional SCB completion status is presented in the Termination Status Block (TSB) area associated with each SCB. The function of a TSB
is described subsequently. No new interrupts can be presented to the system through the ISP
until it is explicitly reset by the system software.

The 8 bit register configuration for the Interrupt Status Port l 54 are shown in FIG. 3, and the bit assignments are as follows:
BITS 7-4~ upl ID.
These bits are encoded with a number which identirles the cause of the interruptpresented. The program can obtain more infot mation by cxamining the TSB status, for an SCB interrupt.
BITS ~0 - Device Address.
The device address which originated the intetrupt presented.

The format of the 16 bit Interrupt Status Port (not shown) is as follows:

-- 2161~6~

BITS 15-12- Int~llu~ ID.
These bits are encoded with a number which identifies the cause of the interruptpresented. The program can obtain more information by examining the TSB status, for SCB interrupt.

BITS l l-0 - Device Address.
The device address which originated the interrupt presented.

The Command Busy/Status Port 156 is a subsystem write/system read register. This 8 bit port has two functions: First it must be read by the sy.stem before each command is submitted to determine the status of a prior submitted command. After a command is submitted, the program must allow a subsystem a defined time period to elapse before it attempts to read this port to obtain command status.

Secondly, the port indicates whether or not the subsystem has a valid interrupt value present in the Interrupt Status Port, ISP 154. This ISP should not be read by the program unless the Command Busy/Status port indicates that a valid value is present7 IV equals to ONE.

The format and function of the Command Busy Status Port 156 is as follows:
BIT 0 - B - Busy Bit.
This bit indicates whether or not lhe Command Interface and Attention Ports are currently being used. A program should nOt a~tempt to write either the Command or Attention ports of the subsystem when the Busy (B) bit is ONE. The Busy bit (B) is ONE ;f the subsystem is in the following state~; Reset Pending, Reset in Progress, Reject, or Decode as explained below. If the host program writes the Attention and/or Command ports whi]e the Busy bit (B) is ONE, the attempted write to these ports is ignored by the subsystem~ and the newly attempted command is ignored by the subsystem without any indication of error.

'- 2161~6~

This bit is set to ONE when the subsystem cnters thc states: Reset Pending, Reset in Progress, Reject or Decodc. Thc subsystem cnters the state Reset Pending when the RST bit of the Subsystem Control Port is sct to ONE. If the subsystem is Reset Pending and the RST bit of thc Subsystem Control port is set to ZERO, then the Subsystem enters the state Rcset in Progress. The subsystem also enters the Reset in Progress State, when a Reset Dcvice Command is issued to device 0, the subsystemitself.
When the subsystem completes a Reset Subsystem Command exiting the Reset in Progrcss state, the BUSY bit is set to ZERO.

The subsystem enters the Dccode statc, when the program submits a new command by a write to the Attention port, and the subsystem is not in the statesReset Pending, Reset in Progress, or Decode. The Busy bit is also set to ZERO, when the subsystem exits the Decodc State, by acccpting a command. When the command being processed in thc Decodc state is rejccted, the subsystem exits theDecode State, and enters thc Reject Statc. In thc Reject State, the Reject (REJ)and the Busy Bit (B) are set to ONE. The Status bits (S) will indicate the reason the command was rejected by the subsystem. When a subsystem enters the state ~20 Reset Pending, the statcs Rejcct or Decode are cleared.

BIT I - IV ~ lc. l uyt Valid.
This bit is set to ONE aftcr thc subsystcm writcs an inte~ rupt value in to the Interrupt Status Port (ISP) of the subsystcm. Whcn IV i~ ZERO, thc ISP does not contain a valid interrupt value. When IV is ONE, rcading the ISP will give a valid interrupt ID
and device number.

BIT 2 - Reserved.

30 BIT 3 - Reservcd.
-BIT 4 - REJ Bit.
This bit will be set to ONE when the subsystem decides to reject a command submitted through the Command Interface port and the Attention port. The subsystem exits the Decode State and enters the Reject State. The Status (S) Bits in the Command Busy status port will contain an encoded value which indicates why the command was rejected. When the subsystem exits the Decode State by accepting the command submitted to the subsystem, then the Reject (RE.I) and Busy (B) Bits in the Command Busy Status Port will both be ZERO.

When a subsystem is in the Reject State, a program cannot submit a new command by writing to the Command or Attcntion ports. Thesc write Attempts are ignored, andthese ports continue to contain the values of the command which was rejected. When a subsystem is in the Reject State, both thc RE.I and Busy bits are set to ONE by the subsystem.
The subsystem can be removed from the Reject State by setting the RST bit of theSubsystem Control Port to ONE, exccuting a hardware controlled Reset Subsystem, or by setting the RR bit of the Subsystem Control Port to ONE, issuing a hardware controlled Reset Reject. The use of the RR bit is the usual method of clearing the Reject State. When the subsystem is removed from the Reject State, both the REJ and Busy bits are set to ZERO by thc subsystem.

BITS 5-7 - Status Bits.
An encoded three bit value set in the Command Busy/Status Port after a command submitted through the Attention port has been rejcctcd during the Decode State. The Subsystem exits the Decode Statc and enters the Reject State with the Reject (REJ) bit and the Busy bit (B) are equal to ONE. Thc valucs of the S bits are undef~lned and should be ignored by a host program unless thc REJ bit is ONE.

The encoded values of the S bits are:

~ 2161~60 S = 000 Reserved.

S=001 Devicc Unavailable Rcjcct. This condition arises when the subsystem is able to determine that a device is not functional enough to execute a command. The condition cannot arise for Reset Device or Reset Subsystem. This condition may be cleared by either of these two commands.

S=OlO Invalid Command. This condition arises when the subsystem does not recognize an Attention code in the Attention Port or the Immediate Command Code speci~led in bits 0 to 7 of an immediate command submitted in the Command Port are not valid.

S =OI l Device Bu~y. This condition arises when the device is busy executing a command, and cannot accept a new command at this time. The condition cannot arise for a Reset Device or a Reset Subsystem.

S= 100 Devicc in SCB Execution Rcjcct. This condition arises when the program place~s the device in the state where it is not permitted to executive any SCB command.s, by issuing a Suspend command.
The condition can be cleared by a Resume, Reset Device or Reset Subsystem .

S=lOl Invalid Dcvicc Addres~. This condition arises when the system places an invalid, non-existent device number in the Attention Port.
If the Attention Port is Y. bits wide, then bits 3 to 0 contain an invalid device number. F;or a 16 bit wide Attention Port, bits ll to 0 contain an invalid device number.

-` 2161460 ~, S= 110 Reserved.

S = 111 Device Intcrrupt Queue Full. This condition arises when a device has used all the internal storage in the interrupt queue it maintains for interrupts that have not been stored in the Interrupt Status Port of the subsystem. All commands cxcept Reset Device, Reset Subsystem, and Reset Interrupt will be rejected by the device if the condition exists. This condition is cleared for the device as soon as it able to write data from its intcrrupt queue into the Interrupt Status port of thc subsystem.

Refer now to FIG. 5 which details functionally how the respectivc bits of the Command/Busy Status port (CBSP) 156 are manipulated.

The Busy bit (B), CBSP_BIT0_(B) is implemented in a register combination of a S/R register 302 and a Polarity Hold (PH) register 300. If the Busy bit is ZERO or inactive, it can be set to ONE by any of three specific actions.

l. If the Micro Channel CHRESET signal on line 314 is a ONE, the output of OR
gate 310 is a ONE which is provided to the Set (S) input of register 302. This sets register 302 to a ONE which i.s applicd to the D input of register 300. Theinverse MC_AP_SEL signal from invcrtcr 312 is applied to the Clock (C) input of register 300, and the oulput +CBSP_BIT()_(B), thc Busy bit (B), is set to ONE.
2. If the system programs writcs a ONE to bit 7 of the Subsystem Control Port (SCP), as manifested by the +SCP_BlT7(RST) signal on line 316 being ONE, the output of OR gate 310 becomes a ONE, and rcgisters 302 and 300 and the Busy bit (B) are set to ONE as set forth in action l above.

'' 2161~6~
3. If there is a Write by the svftware to the AP, the signals + MC_AP_SEL on line 304 and +SSW_REG_CLK on line 3()6 are each a ONE which causes AND
gate 30~ to have a ONE output. The ONE from gate 308 causes OR gate 310 to have a ONE output, and registers 3()2 and 300 and the Busy bit (B) are set to ONE as set forth in actions l and 2 above.

If the Busy bit (B) is a ONE it can be cleared, that is set to ZERO, in either of two ways.

l. The Busy bit (B) is cleared by the system program writing a ONE to the Subsystem Control Port (SCP) bit 5 (RR). This also clears the Reject (REJ) bit as set forth below. When the RR bit is ONE in the SCP, the signals + MC_SCP_SEL on line 328; + IC_BUS_RCVR_BIT5 on line 326; and +SSW_REG_CLK on line 306 each become a ONE, which produces a ONE at the output of AND/OR gate 31~. This ONE is applied to the Reset (R) of register 302, the output of which becomes ZERO which is applied to the D input of register 300. The signal + MC_AP_SEL on line 304 is ZERO at this time, which ZERO is inverted by inverter 312 to a ONE. This ONE is applied to the C input of register 300, clocking in the ZERO at the D input, thereby setting register 300 to ZERO. The Busy bit (B), the output + CBSP_BIT0_(B), becomes ZERO when register 3()0 is set to Zcto.

2. The Busy bit (B) is also cleared by the subsystem after the Command Handler has exited the Decode state and entere~l the Accept state. The subsystems local processor writes a ZERO to bit 0 of ~he CBSP. The signals -IC_BUS_RCVR_BIT0 on line 320; + LP_CBSP_SEL on line 322; and + LPW_REG_CLK on line 324 each become ONE, producing a ONE at the output of AND/OR gate 31 ~. This resets register 302 and register 300 to ZERO
as set forth above. The Busy bit (B) becomes ZERO when register 300 is set to ZERO.

2161~60 ~' BC9-89-002B . 21 If the subsystem is performing a subsystem reset indicatecl by the system writing SSCP bit 7 to a ONE, the Busy bit (B) will be reset by the subsystem whcn tlie subsystem has completed the subsystem reset. Assume that the Busy bit is ON and thc subsystem is in the decode state and then the reject state. The Busy bit is also reset with the rcject bit (CBSP bit 4) via the 5 Reset Reject bit 5 in the SCP in the following manner. The system writes a ONE into the SCP
bit 5 (RR) position. Once the write to the SCP has been detectcd by the subsystem, line 326 (IC_BUS_RCVR_BIT 5) becomes active, as well as line 32~ (MC_SCP_SEL) and line 306 (SSW_REG CLK). These lines being active turns gate 318 ON resetting register 302 to OFF.
Register 302 bein~ OFF concurrent with inverter 312 being ON, as previously described, resets 1O register 300 OFF, setting the Busy bit (B) OFF.

The CBSP REJ bit (4) and CBSP status bits (5,6,7) are represented by registers 330 and 332, respectively. When the subsystem has entcred the rejcct statc, CBSP bit 4 is set to ONE, and CBSP bits 5,6 and 7 (status) are set to the rejcct code. The S/R register 330 is set to ONE
when lines 334, 332 and 324 are active, which turns on AND gate 336 which sets S/R Register 330 ON, turning ON the REJ bit. The status bits in register 332 are set ON by placing the status code on lines 326,336 and 338. Thc status code is clocked into register 332 by lines 322 and 324 being active which turns ON AND gate 340 which activates the C input of register 332.
The reject (REJ) bit is reset OFF whencver OR gate 346 is ON. OR gate 346 is ON when line 326 (CHRSET) is active, or linc 316 (RST) is activc, or AND gate 342 is ON. AND gate 342 is ON if line 326 and line 328 and linc 3()6 arc active. This rcpresents that the system has written the reset reject bit 5 (SCP) to a ONE, rclcasing thc subsystem from the reject state.
The CBSP_BITI_IV is implemented as thc output of S/R rcgister 348. Register 348 is set to ONE whenever AND gate 350 is ON. AND gatc 350 is turned ON if lines 322 and 324 and 352 are active. The IV bit is set to ONE aftcr the subsystem has written the Interrupt Status port (ISP).

~ 21614~0 BC9-89-002s 22 The host processor reads the IV bit as a result of a Micro Channel interrupt asserted by the subsystem or may use the IV bit to poll the subsystem for interrupts. After the host processor has read the ISP, and the host interrupt handler has processed the interrupt, the host processor issues a reset interrupt attention code (1110h) to the subsystem via the Attention port.

S/R register 348 is reset to OFF whenevcr OR gate 354 is ON. OR gate 354 is turned ON if line 314 ~CHRESET) or line 316 (CDRESET) or AND gate 356 or AND gate 358 is ON.

AND gate 356 is ON if the IC_BUS_RCVR bits (7-4) 011 lines 360, 362, 364 and 36~, 10 respectively are set with the binary value "0000"(resct device immediate) from the attention port bits 7-4, respectively, and lines 304 and 306 are active.

AND gate 358 is turned ON if the IC_BUS_RCVR bits (714) on lines 338, 336, 326 and 366 are set with the binary value "1110" (reset interrupt) and lines 304 and 306 are active.
The CBSP Reserved (R) bits are represented by register 362. The two data (D) inputs are set when lines 370 and 372, IC_BUS_Bits ~2,3) are active. These bits are clocked into register 368 when AND gate 374 is ON. AND gate 374 is ON when lines 322 and 324 are ON.

20 The formats utili~ed in the Command interrace port and Attention port are dependent on whether an immediate command or an SCB command is provk~ed from the host system to the subsystem.

Immediate commands are mainly device directed and are control oriented. Refer to FIG. 6 for 25 the general format of the command interface port as indicated at 160; and the code for three types of immediate commands at the attention port as indicated at 162, 164 and 166, respectively. If a command is directed to a device, the device must verify that the full command is received before executing the immediate command. To determine the command type, bits 7 through 4 of the attention port are examined. If a reset device command type is 30 received, the code is as indicated at 162; if an immediate command (command type) is received ~ 2161460 the code is as indicated at 164; and if a rcsct interrupt (EOI) command type is received the code is as indicated at 166.

Bits 7-0 of the command interface port, as indicated at 160, spcciry the operating code. When the command is received, the device sets thc Busy bit in the command busy/status port ~not shown). The device must insure that thc time that thc port remains busy is kept to a minimum.
On a subsystem reset command, the subsystem must hold the port busy until the reset has completed.

Command interface port definitions for immcdiatc commands arc as follows:

IC Bit 8 - Specify Immediate Command Format IC Bit 8 is used to specify the Immediate command format type used. If IC bit 8 = 1.
The Immediate command format is defined as TYPE l.
IC Bits 31 -16 -Reserved ( Set to zero by ~orlw~l~ ptior to is.suing command). If IC bit ~= 0.
The Immediate command format is defined as TYPE 2.

If IC Bit 8 = 0. IC Bit 8 is uscd to spociry thelmmcdiatc command format type 2 used.
The difference in bit den~ilions arc noted bclow.

IC Bits 31 - 16 - OP CODE DEPENDENT

IC Bit 15 - DISABLE COMMAND INTERRUPT.
If bit 15 = 0, interrupt after thc Immcdiatc Command has completed and report status in the Interrupt Status Port (ISP). If bit 15 = I, do not interrupt on completion of the Immediate Command, unless an crror occurred. Some commands ignore this specification.

IC Bit 14- DISABLE DEVICE INTERRUPT

2161~60 If bit 14 = 0, then interrupts arc enabled to thc system for the specified device. If bit 14 = 1, then interrupts are disabled to the system for the specified device.

IC Bits 13-9 - OP CODE DEPENDENT BITS
These bits allow modifying of the Command ~leld. Currently, BITS 13 & 12 are used by the Reset Device Command. Bits 12-9 are used by the Immediate Reset SCB
Interrupt command to specify the interrupt count to be reset.

IC Bits 7 - > O - Imlllediale Cmd Bit~.
Decoded as follows:
BITS

0 0 0 0 1 0 0 0 - RESET SCB INTERRUPT(S) All reserved bits are set to zero by systcm softwarc prior to i.ssuing the command. All other s of bits ~7 are reserved.

20 Refer to FIG. 7 for the general format of the Command interface port, as indicated at 168; and the Attention port, as indicated at 170, for SCB commands. The Command interface port contains the starting address of the SCB. The starting addrcss is a physical address and must be on a double word boundary. The format of thc Attention port for a start SCB attention request is as indicated at 170.

As previously set forth, indirect commands arc containcd within a SCB. SCB's may be chained in a specific order and are treatcd as one iogical rcquest. Data buffers may be chained using an indirect list. The structure also allows for handling elaborate status information in case of errors during the processing of a rcqucst. Thc status is placed in a Termination Status 30 Block (TSB). In order to handle termination at any point in a chain of commands there is a BC9-89-002s 26 TSB defined for each SCB in a chain.

There are two detailed versions of a SCB layout. These are referred to as the basic format shown in FIG. 8, and the extended format shown in FIG. 9. The extended format is made up 5 of the basic format with additional fields added to the end. A brief definition of each of the fields and the acronyms utilized is as follows:

l . Command Word It is used to define the type of SCB command being delivered. This word has three rlelds.

- Op Code - contains an 8 bit operation code for this SCB's command - A - one bit indicator to tell if this SCB contains an architected or unarchitected command code. The layout shown applies to both architected and non-architected command codes.

- Reserved 2. Enable Word The various fields in the SCB allow for a varicty of command specific operations. The enable word contains a number of rlclds which indicate the use of these fields for this command. It also has indicators which dcfinc the typc of reply indications that are to be used.
- CH - CHain to the next SCB (addrcss of next SCB is in chain address l field) if there is no error.
- COND CH - bit l indicatcs to CHain to the SCB whose address is in chain address 2 on certain CONDitions defined by bits 2, 3 and 4.

2l6l~6n - Al - indicates that this command uses address I to point to either a buffer or to an indirect list (which has a set of pointers to buffers) (specific use defined by the command) - A2 - indicates that this command uses address 2 to point to either a buffer or to an indirect list (which has a set of pointers to buffers) (specific use defined by the command) - I - disables Interrupt when command completes without error - EXT - indicates that this SCB has the EXTended format - R- reserved - SES - Suppress Exception Short (as when data read is less than buffer size provided) - SEL - Suppress Exception Long (as when data read from a device is more than the size of the buffers(s) provided by the command - PT - indicates this command uses an indirect list to PoinT to a chain of buffers (data chain on command) - TSB - indicates that TSB status is to be stored only on an error 3. Enable Word 2 When the extended format is used additional indicators are provided in enable word 2 located in the extension portion. These indicators are:

- PT2 - indicates that addres.s 2 PoinTs to an indirect list (length of list in byte count 2) - DECI - indicates that memory address I sho-llcl be DECremented rather than incremented - DEC2 - indicates that memory address 2 should be DECremented rather than incremented 4. ADDRESS l 2161~60 Contains 32 bit address which points to a data buffer or to an indirect list. The use is def~lned by the command. An enable word indicator (PT) indicates which form of address is being used.
5 5. ADDRESS 2 Contains a 32 bit address which points to a data buffer or to an indirect list. The use is derlned by the command. An enable word indicator (PT2) indicates which form of address is being used.
6. BYTE COUNT l Contains a 4 byte count that derlnes the length of the buffer or indirect list pointed to by the address in address l or address 2.
7. BYTE COUNT 2 Contains a 4 byte count that defines the Iength of the buffer or indirect list pointed to by the address in address 2. This field is located in the extension.
8. TSB ADDRESS

Contains a 32 bit address for the TSB ~ssociated with this SCB.

25 9. CHAIN ADDRESS I

Used to point to next SCB in a request that uses command chaining.

l0. CHAIN ADDRESS 2 216146~

Used to point to an SCB to be used when conditional chain conditions are satisfied.

l 1. CHAIN I D

Contains a 16 bit identifier for the chain. The value is the same for all SCBs in a chain (request).

12. EXTENDED LENGTH

A one byte count indicating the number of bytes in the extension to the base format.
The other byte of this word is reserved.

In addition to the error/no-error indication in the Interrupt Status Port 154, the invention provides for detail status information to be reported from a subsystem to the host computer for each command in a SCB chain. This is reported in the Termination Status Block ~TSB).
Each SCB includes a TSB address in system memory to which a subsystem writes completion or termination status of the SCB. The TSB has a basic format as shown in FIG. 10 and an extended format as shown in FIG. I l. When the extension is added to the basic format, the location of the count indicating the size of device dependent information is changed.
The following is a brief definition of the various fields used in the basic and extended TSB
format:
1. End Status Word This word contains a number Or indicators which define specific status information related to the execution of the command contained in the SCB which points to this TSB.

- D - indicates request is Done with no error - SES - indicates short Iength - associated with the SES indicator in the SCB
enable word 216146~

- R- reserved - SC - indicates Specification Check for the SCB. The SCB is not valid.
- SEL - indicates long length - associated with the SEL control in the SCB enable word - HLD- indicates the SCB command chain HaLteD
- INT - indicates request for logical INTerrupt - ASA - indicates Architected Status Available - DSA - indicates Device dependent Status Available (used together ASA and DSA indicate extended format~
- DO - indicates Device Overrun - INI - indicates device not INltialized - ERR - indicates major ERRor has occurred - CD - indicates Chaining Direction (following normal chain or conditional chain) - SUS - indicates SUSpend command completed against SCB.
- ES - indicates Extended Status used 2. Extended End Status This word has additional status indicators. Only one indicator is currently architected.
- CT - indicates Command Type (SCB or Immediate command) 3. RESIDUAL BUFFER COUNT

This is a 4 byte count containing the number of bytes Ieft in the buffer pointed to by the residual buffer address.

4. RESIDUAL BUFFER ADDRESS

This is a 32 bit address of the buffer being used when the request terminated. It may ~ 2161~60 be the address I or address 2 buffcr address from the last SCB or an address in an indirect list pointed to by address 1 or address 2 in thc last SCB. The specific meaning is command specific.

5 5. RESIDUAL BUFFER COUNT 2 This is a 4 byte count (in the TSB extension) containing the number of bytes left in the buffer pointed to by the residual buffer addrcss 2.

10 6. RESIDUAL BUFFER ADDRESS 2 This is a 32 bit address (in the TSB exten~sion) of the buffer being used when the request terminated. It may be the address 2 buffer address from the last SCB or an address in an indirect list pointed to by address 2 in thc last SCB. It is used when both addresses are used by a command.

7. SIZE OF DEVICE DEPENDENT AREA

Provision is made to provide information over and abovc the set of architected status.
The amount of this varies depending on whether basic or extended format is used. The location of this field is differcnt in the basic format and in the extended format.
Additional status is subsystem dcpcndcnt.

8. DEVICE DEPENDENT DATA
This area contains device dependent status inform~tion. The areas maximum size is determined by which format is being used.

The details of the Computing systcm of thc invcntion utilizing the SCB format just de-scribed, is set forth in FIG. 12. As prcviously described, a host system 200 exchanges t~, information with at least one intelligent subsystem 202 via a bus architecture such as a Micro Channel 204.

System programs 206 in the host system 200 build SCB's in system memory 208 via line 210. The operation of system programs is described in "PS/2 BIOS Interface Technical Reference", IBM Publication Order Number 62X-2341-00; "IBM PS/2 Operating Systems Directory Guide", IBM Publication Order number Z360-2741-0; and "IBM
OS/2~ Internals, Vol. 1", IBM Publication order number GG24-3225-0. As previously described, an SCB format provides buffer addresses, chain addresses and TSB
addresses. In a page memory system, the SCB's, buffer addresses, chain addresses and TSB addresses are "pinned" in the system memory by the operating system. That is, a section of system memory is locked for this purpose. For purposes of description, an SCB 212 is shown which includes a TSB 214; an indirect list 216 which points to data buffers 218 and 220; and a chain address to an SCB 222. The SCB 222 includes a TSB
224, and points to a data buffer 226. It is to be appreciated that a plurality of like SCB's are formatted in the system memory 208, in accordance with the formats shown in FIGS . 8- 11.

The subsystem 202 is similar to subsystem 102 in FIG. 2, with the only difference being that subsystem 202 is shown in more detail to describe command delivery. Subsystem 202 includes a bus interface and control unit 222 having a command delivery logic 230 and a bus master 232; a local microproces~ol 234 having an interrupt (I) logic 236; a local memory 238; and a device interface and control logic 240 which connects to a plurality of devices 242, 244, 246 and 248.
The general description of the comman~l handling system including the command handler and decode process follows relative to FIG. 12, and then a detailed functional description is set forth in flow chart ~orm relative to FIGS. 19-25.

The system program reads the Command Busy/Status port (not shown) to verify that the Attention and Command Interface ports are not busy. The system program 206 provides the address of an SCB to the Command delivery logic 230 of the bus interface and control unit 228 via the command interface port (not shown), and the command type and the device it is intended for, to the attention port (not shown), via line 250.
The Command is validated and either accepted or rejected as part of the decode process.
Assuming the Command is accepted, the subsystem writes the status into the Command Busy/Status port (not shown) and directs the Command to be executed.

The subsystem initiates bus cycles on the Micro Channel 204 using the bus master function in the bus master 232. The system memory is a Micro Channel memory slave at this time, with the Micro Channel control and address lines being driven by the bus master 232. The system memory drives the Micro Channel data bus, and the bus master function transfers the SCB('s) to the subsystem local memory 238. Once the subsystem receives an SCB, a program running in the microprocessor decodes the command and directs it to the specified device. This program operation is explained in detail relative to the flow charts of FIGS. 19-25. Buffer addresses are loaded into the bus master 232 for the transfer to be performed.

Specifically, once the SCB address is decoded, the address is provided to the system memory 208 and the SCB is fetched to the subsystem 2()2. For example, if SCB 212 is to be addressed, the bus master 232 activates address lines 252 with the SCB address, and the first portion of the SCB is returned via line 254. This process is repe3ted after incrementing the address until the entire SCB is fetched. The data to be ,nrocesxe(l is accessed via address lines 256 and 258 to data buffers 218 and 220 as pointecl ~o via tlle indirect list 216. Data is returned from the buffers 218 and 220 via data lines 260 and 262. The bus master 232 then transfers the data to the local memory 238 or one of the devices via interface 240 as specified by the second portion of the command in the attention port (not shown). Status of completion or termination for the SCB is stored into TSB 214 via lines 264 and 266, with status data being provided to TSB 214 via lines 268 and 270.

2161~6~

SCB 212 points to SCB 222 which is addressed via line 272 with the SCB 222 being returned via line 274. The data to be processed from buffer 226 is accessed via address line 256, with the data being returned to the bus master 232 via line 262. The bus master 232 then transfers the data to the local memory 238 or one of the devices via interface 240 as described above.
Status of completion or termination of SCB 222 is stored into TSB 224 by addressing via line 264, with status data being provided to TSB 224 via line 268.

The subsystem 202 also loads the Interrupt Status port (not shown) with the interrupt status for the SCB or SCB ehain. This provides a physical interrupt back to the host system 200 via line 264.

Before providing a flow chart description of the command handling system, a general description is set forth below, which makes the terms used in the flow charts of FIGS. 19-25 more understandable.
Command Submission Methods and Command Types This invention def1nes two methods to deliver commands to a subsystem. Certain subsystem wide, hardware specific functions are invoked using Hardware Controls, which are accessed by the program modifying bits in the Subsystem Control Port. Hardware Controls provide a fast high priority way to change the state of the subsystem, a Reset Subsystem submitted in this manner has priority over all other commands submitted to the subsystem by writing data to the Command and Attention Ports.

Hardware Controls are activated by using an OUT command to the Subsystem Control port, and changing certain specific bits.

Modifying the RR, DMA, and EI bits are not described by specific commands but these also have subsystem wide effects on the subsystem, which are summarized in "Results of Host Processor attempts to set l/O Ports" which follows, and the table in FIG. 14.

2161~60 ~~

Commands which are submitted through writing the Command and Attention ports fall into two broad categories, Indirect (SCB based) commands, and Direct based commands SCB
based eommands are distinguished by the Attention Request Code 3. In the case of an SCB
command, the Command Interface Port contains the real memory address of the start of the 5 SCB. Direet commands are of 3 types which are determined by unique Attention code settings.
All Direet eommands have a 32 bit value in the Command Port whieh along with the Attention code defines the action to be performed by the subsystem. Attention code O (Reset) and E
(Reset Interrupt) are provided so that special case processing can be done for these commands over the other Direct commands which have an Attention Request Code of "Olh". Direct lo commands are sometimes described by the term Immediate commands, to indicate that the command port contains a 32 bit value which completely defines the operation that must be performed. This is eontrasted to an SCB command which must be fetched from the system memory address given by the command port to determine the action to be performed.

15 A unique attention code F (Device Dependent Attention) is defined in the Architecture.
Attention code F is provided so that an implementation can provide special case handling for a command that it wishes to optimize.

Subsystem State Transitions in Command Submission In this seetion those state transitions and actions are defined which occur when a eommand is submitted either using a Hardware Control or through tlle Attention Port. The data is provided in a State Transition diagram in Fig. 13. When a subsystem is in the Decode State, its acceptance or rejection of a comman(l which is submitted is discussed in detail in 25 "Command Handling and the Decode Process" which, follows and gives more details on the decode process, and provides a set of decision tables in FIGS. 15-18 which show how the eommands are aeeepted and rejected by the decode process.

The following states are de~lned for use in Command Submission Transitions, further detail 30 on subsystem states and the deeode process is found in the discussion relative to "Command ~ 216146 Handling and the Decode Process."

Subsystem States are:

5 l. Accepting Commands or ACCEPT.

The subsystem is in a state where it can acccpt commands submitted through the Command and Attention ports. In this state the Rcjcct and Busy bits in the Command/Busy Status port will both be zero.

A host processor write to the Attention port will take the subsystem from this state and put it into the Decode in Process state, whcre it will determine if the command submitted will be accepted.

15 2. Subsystem Reset Pending Started or PENDS.

The RST bit in the Subsystem Control port has been set to ONE by the host program, and the subsystem has started a hardware controlled reset of its micro processor.
During this state, host processor writes to ~hc Command and Attention ports are ignored. Host writes to bits othcr than thc RST bit of the Subsystem Control Port are ignored. When the hardware resct complctcs, thc subsystem enters the state Subsystem Reset Pending Complete.

The Busy bit (B) is ONE, and thc Rcjcct bit (R) is ZERO in the Command Busy/Status port while in this state.

3. Subsystem Reset Pending Complete or PENDC. The subsystem has completed the hardware controlled reset of its micro proccssor and is waiting for a Host processor write of a ZERO bit to the RST bit of thc Subsystem Control Port. While in this state Host processor writes to the Command and Attention ports are ignored. Host processor ~_ 2161460 writes to the Subsystem Control Port are allowed. A write of ZERO to the RST bit of the Subsystem Control Port will take thc subsystem to the Subsystem Reset in Process State.

The Busy bit (B) is ONE, and the Reject bit (R) is ZERO in the Command Busy/Status Port while in this state.

An implementation may not be able to disccrn the difference between the Reset Pending Started, and the Reset Pending Complete statcs, and may have only a single ResetPending State. In this situation, setting the RST bit to ZERO, takes the subsystem from the Pending to the Reset In Process State.

4. Subsystem Reset in Process or RESETS.

The RST bit of the Subsystem Control Port has been set to ZERO by the host program, after an implementation deflned amount of time has elapsed, while in the Reset Subsystem Pending Started statc. On entering this statc the subsystem completes its reset subsystem. The Host processor is allowcd to modify the contents of the Subsystem Control port while the Subsystem is in this state. Host processor writes to the Command and Attention ports are ignored.

While in this state the Busy Bit in the Command/Busy Status port is ONE, while the Reject bit is ZERO.

Upon the completion of the resct subsystem, thc subsystcm enters the state Accepting Commands. The Busy and Rejcct bits in thc Command Busy/Status Port are set to ZERO. The IV bit is set to ONE to indicate that the ISP contains an interrupt value for the completed Reset Subsystcm.

30 5. Subsystem Reject or REJECT.

~ 2161460 A command submitted through the Command and Attention Ports has been rejected by the decode process. No further commands will be accepted through the Command and Attention ports until the Reject state is cleared. While in this state, Host processor writes to the Command and Attention ports are ignored. Host processor writes to the Subsystem Control port are allowed. The Command Busy/Status port will have the Reject and Busy bits both set to ONE. The S bits in thc Command Busy Status Portwill have the reason the command was rejected by the decode process.

The subsystem exits the Reject state when the RR bit in the Subsystem Control port is set to ONE, or by a hardware controlled Reset Subsystem, setting the RST bit of the Subsystem Control Port to ONE.

6. Decode in Process or DECODE.

The subsystem enters this state from the Accepting Commands state, when a host processor write to the Attention port is detected. In this state the subsystem determines whether or not it will accept the command.

When the subsystem enters this state, the Busy bit in the Command Busy/Status port is set to ONE, the Reject bit will be ZERO. Host processor writes to the Commandand Attention Port are ignored while in this state. Host Processor writes to theSubsystem Control port are ignorcd cxccpt for changes to the RST bit.

If the decode process accepts thc command, the ~ubsystcm cnters the state Accepting Commands. If the command is not accepted for execution~ then the subsystem enters the Reject state.

The actions are:
a. Host Processor Write to Subsystem Control Port RST Bit with a I or RST = I.

The host processor issues an OUT command to the Subsystem Control port with the RST bit value set to ONE.

b. Host Processor Write to Subsystem Control Port RST Bit with a 0 or RST = 0.

The host processor issues an OUT command to the Subsystem Control port with the RST bit value set to ZERO.

c. Host Processor Writes to the Attention Port or W/AP.

The host processor writes to the Attention Port with an OUT command.

d. Host Processor Write to Subsystem Control Port RR Bit with a 1 or RR = I.
The host processor issues an OUT command to the Subsystem Control port with the RR bit value set to ONE.

e. Reset Pending Complete or PEND COMPLETE.
The subsystem has completed the actions of resetting its micro processor and anyother actions needed to allow it to wait to complete resetting the subsystem.

f. Reset Subsystem Complete or RESET COMPLETE.
The subsystem has completed the actions of re~etting the subsystem.

g. Decode Accept Command or DECODE ACCEPT.

The subsystem decode process has accepted a command submitted through the 2161~60 J_ Command and Attention ports.

h. Decode Reject Command or DECODE REJECT.

The subsystem decode process has rejected a command submitted through the Command and Attention ports.

With these states and actions, state transition~ arc derlned in the state diagram of FIG. 13.

Results of Host Processor attempts to set IIO Ports.

In the decision table of FIG. 14, the results Or host processor attempts to set I/O ports when the subsystem is in various states are summarized. The States are the ones used in the State diagram of FIG. 12. SSCP, means Subsystcm Control Port.
Explanation of notes in table of FIG. 14.

I. The system setting RST to ONE, places the subsystem into the Reset Pending Started state.
2. If RST is set to ONE, all other bits in the Subsystem Control port are made ZERO by the subsystem as part of entering thc Rcset Pcnding Started state.

3. A system write to the Attention Port whilc the subsystem is the state, Accepting Commands, places the subsystem in thc Dccode state.

4. The system setting RST to ZERO, while thc subsystem is the state Reset Pending Complete, puts the subsystcm into the Rcsct in Progrcss state.

30 5. The system setting RR to ONE, whilc the subsystem is in the Reject State will put the 2l6l~6a subsystem into the Aceepting Commands state, unless the OUT which sets RR, also set RST to ONE. If RST is set to ONE, then the change to RR is ignored, and the subsystem is placed in the Reset Pending Started state. Setting RR to ZERO, while in the subsystem is in the Reject state, will not clear the Reject State.

Command Handling and the Decode Process.

In this seetion the diseussion of the command handling portion foeus on the deeode proeess.
A deeision table relative to aecepting commands in the decode process is shown in FIG. 15, lO and decision tables relative to rejecting commands in the decode process are shown in FIGS.
16, 17 and 18.

The requirement is that a hardware controlled process exist which the subsystem uses to monitor host processor writes to the Command, Attention and Subsystem Control Ports. This 15 process called, the Command Handler, responds to actions like writing RST bit of the Subsystem Control port, by invoking hardware controls to reset the subsystem. The Command Handler also has the responsibility for invoking a process which may be either in hardware or f~lrmware which the subsystem uses to determine whether or not to aeeept a command submitted through the Attention and Command Ports. The Command Handler invokes this 20 process when the subsystem is in the Accepting Commands State, and a host proeessor write of the Attention port is detected. The Command Handler places the subsystem into the Decode state, and invokes the Decode Process to determine whether or not it can accept the newly submitted command.

25 While in the Decode State, the Command Handler is responsible for insuring that host processor attempts to submit a new Command by writing the Command or Attention ports are blocked. The Command Handler also responds to host program writes to the Subsystem Control port to insure that Host Program changes to the RST bit are permitted while the subsystem is in any state. It is this facility which allows a hardware controlled Reset 30 Subsystem to be aceepted from the host F~rocessor. Other hardware controls are allowed, by 2161~60 the Command Handler depending on the subsystem state.

Since the Decode Process has the task of determining whether or not the subsystem can accept a command directed to a device, it needs to be concerned with the following kinds of data:
* Command Type. The attention code for the command determines how a command willbe processed. Commands are broken into the following categories: Reset Device, Reset Interrupt, SCB, Immediate Command~. Device Dependent Attention, if it is supported by the implementation will be placed in either the SCB, or Immediate command category, as defined by the implementation. Unsupported attention codes are rejected by the decode process with an Invalid Command Attention codes which are not SCB
commands are termed Direct commands.

* Device Number. The device to which the command is directed is contained in theattention port. This data is needed in order to determine which device the command is directed to. Using this data, the Decode Process also accesses device state information which allows the subsystem to determine whether or not the new command can be accepted or rejected. An invalid device address causes a command to be rejected.
20 $ Command Code. When Direct Commands are being processed, their 8 bit commandcode in bits 0-7 of the command is examined to determine the command code. An unrecognized 8 bit immediate command code causes the command to be rejected withan Invalid Command.

25 * The Device State. This is the current condition of the device and defines whether or not given the current device state, the command can be accepted. This invention defines a number of states and indicates whether or not a command may be accepted while in a given state. This data is presented in detail in "Decision Tables for the Decode Process"
which is discussed later.

~- 2161460 When the Decode Process decides to accept a command, it needs to insure that the device state is updated to show that the new command is accepted, and to schedule the device to start executing the new command. The Decode Process must also insure that the Command Handler takes the subsystem from the Decode state, and places it into the Accepting 5 Commands State. This invention does not insist that the resetting of device state, and the scheduling of the new command be performed in the Decode Process. but it is conceptually simpler to think of that being the case.

It is also important to recognize that the Decode Process must cause the required new 10 command to be scheduled for execution at the required device. The word scheduled is used for all commands except Reset Device 0, since the usage of subsystem processor cycles needs to be shared among tasks that are being performing for other devices. In the case of Reset Device 0, this is a special case since the action causes a software invoked reset of the subsystem, and requires that all current subsystem activities for other devices be halted.
When a command is signalled as being accepted, it is the Command Handler which sets the Command Busy/Status port so that the Busy and Reject bits are both ZERO.

When the Decode Process rejects a command, the Command Handler is given the reason for 20 the rejection. The subsystem is moved from the Decode State, to the Reject State. The Busy and Reject bits in the Command Busy/Status port are set to ONE. The S bits in this port are set at the same time as the Reject bit, and contain the encoded value which indicates why the command was rejected.

25 At the completion of the Decode Process several objectives are met:

* An Immediate command accepted by the Decode process, will not interrupt for command rejection at a later time. Unless the hardware fails, the Immediate command will execute correctly after acceptance by the Decode Process. 0 ~ 2161~60 * Any commands which cannot be executed because of current device state are rejected as quickly as possible with no subsystem interrupt. The rejection status and cause of rejection remain available to the host program until explicitly cleared.

5 * Special attention codes like Reset Device are scheduled for execution as quickly as possible.

* SCB commands are scheduled for fetching. The decode process does not examine SCBs for valid f~leld values.

The description of how a device reacts when various commands are presented to it is defined in a set of decision tables in "Decision Tables for the Decode Process" which is discussed shortly. As a general summary these rules can be described as follows:

15 1. A Hardware Controlled Reset Subsystem is always accepted by the subsystem.
2. A Command directed to the Attention port will be ignored by the subsystem if it is the states, Decode in Process, Subsystem Reject, Subsystem Reset in Process, Subsystem Reset Pending Started, or Subsystem Reset Pending Complete.
3. A Reset Device command will be accepted by the device even if the device is busy executing another command. There are three exceptions to this rule.

- The device number specified in the Attention Port is not valid.
- The ~ bit immediate command code in bits 0-7 is not equal to zero.
- The subsystem is in one of the states defined in exception 2 above, that is, it is ignoring any commands which are submitted by a write attempted to the Attention port.

4. When a device is busy executing a command, it will reject a new command with '- 2161~60 a device busy code except for the following cascs:

- New command is Reset Device.
- The device is busy executing an SCB, and the new command is Suspend. (In this case the SCB which is executing is allowed to complete before the device is placed in a state where SCB execution has been disabled. A suspend always causes the last SCB executed at the device to request an interrupt.) - The device is busy executing an SCB, and the new command is Reset SCB
Interrupt. (The currently cxccuting SCB is halted immediately, and the Reset SCB Interrupt function is cxecutcd. The halted SCB is allowed to continue i execution.) 5. When the interrupt queue for a devicc is full, it will rcjcct a new command except in the following situations:
- Reset Device - Reset Interrupt (SCB or Immediate) - Reset Subsystem (Hardware or Softwarc Controlled) 20 6. When a device is not busy executing a command, it will reject an SCB command if the device has been placed in a statc where it cannot cxecute SCB commands by a prior Suspend command.

7. If the device is in a state wherc it cannot reliably cxccutc a command, it will reject all 2 5 commands except:
- Reset Device - Reset Subsystem (Hardware or Softw~rc Controllcd.) - If the device address in thc Attcntion Port is not valid, the command is rejected.

Decision Tables for the Decode Process I~_ The Architecture for the Decode Process de~lnes an order in which rejection tests are made so that it specifies which rejection is to be given, when multiple reasons for rejection exist. This is shown in the fo]lowing table:

Steps in the Decode Process Step l - Validate the Attention Code and thc Command. Reject Code=OlO

Causes for Rejection Unrecognized Attention Invalid Attcntion Code Code Reset Attention Invalid 8 bit Code (00) Immediate Command Code Reset Interrupt Invalid 8 bit Attention Code (OE) Immediate Command Codc Immediate Command Invalid ~ bit Attention Code (Ol) Immcdiatc Comman(l Codc Step 2 - Validate Device in Attention Port is valid. Rcject Code = lOI

Causes for Rejection Reset Device Invalid device numbcr in Attention Port 2l6ll6~

SCB or Device Dependent Invalid dcvice number Attention as SCB in Attention Port NOOP Immediate, Suspend, Invalid device number Resume in Attention Port Diagnose Immediate Invalid device number in Attcntion Port Reset Interrupt Status Invalid devicc numbcr Port in Attention Port Reset SCB Interrupt Invalid dcvice number in Attention Port Device Dependent Invalid device number Attention as non-SCB in Attention Port Immediate Command Invalid dcvice number in Attention Port Step 3 - Validate Device is in Availablc Statc.
Reject Code = 001 Causes for Rejection SCB or Device Device in Dependent Attention unavailablc state as SCB

f ~ 2161460 NOOP Immediate, Device in Suspend, Resume unavailable state Diagnose Immediate Device in unavailable state Reset SCB Interrupt Device in unavailable state Reset Interrupt Dcvice in unavailable state Status Port Dcvicc in unavailablc state Device Dependent Device in Attention as Non-SCB unavailable statc Immediate Command Dcvice in (None of the above) unavailable state Step 4 - Validate that Device is Not Busy Reject Code = 01 1 Causes for Rejection SCB or Device Dependent Device is Busy Attention as SCB

NOOP Immediate, Resume, Device is Busy ~ 2161~6~

BC9-89-002s 49 Diagnose Immediate .

Reset Interrupt Status Device is Busy Port Reset SCB Interrupt, Dcvice Busy, (Not Suspend executing an SCB) Device Dependent Device Busy Attention as Non-SCB

Immediate Command (None Device Busy of the above) Step 5 - Validate Device Interrupt Queue Not Full Reject Code= l l l Reasons for Rejection SCB or Device Dependent Interrupt Queue Attention as SCB Full Resume, Suspend, NOOP Intcrrupt Qucuc Immediate Full Diagnose Immediate Intcrrupt Queuc FuII

Device Dependent I nterrupt Qucue Attention as Non-SCB Full ` ~ 2161~60 Immediate Command (None Interrupt Queue of the above) Full Step 6 - Validate SCB Execution Enable Reject Code- 100 Reasons for Rejection SCB or Device Dependent SCB Execution Attention as SCB disabled by Suspend The decode Architecture is fully defined fir~t by specifyin~ a dctailed Device and Subsystem state, and then by a set of decision tables.
Subsystem and Device State Definitions:

The Subsystem has the following State components:

20 * Subsystem Execution States are: ACCEPT, PENDS, PENDC, RESETS, REJECT, DECODE. These states derme whether or not the subsystem can accept a new command or hardware control.

* Available State. Defines whether or not the subsy~tem has entered a state where it can be expected to reliably executc a commancl. If its values are YES, the subsystem is available, or NO, it is not.

* DMA Enable. This state component indicates whether or not DMA activity is allowed for the subsystem, YES or NO. When DMA activity is not allowed, no fetching of SCB
commands, storing of TSB status, or data movemcnt for SCB commands is permitted !

2161~60 for the subsystem. This component corresponds to the DMA bit in the Subsystem Control Port.

* I~ ui)l Enable. This state component indicates whether or not the subsystem is enabled to send a physical interrupt to the main proccssor when a command requires an interrupt. It corresponds to the El bit in the Subsystem Control Port. When the value is YES, a physical interrupt may be signaled. When the value is N0, then an interrupt will not be signalled.

10 * IV valid. This state component corresponds to the IV bit in the Command Busy/Status port. If its value is YES, then the Interrupt Status port for the subsystem has a valid interrupt value in it which has not bcen reset by thc host program. If the value is N0 the Interrupt Status Port is clear of any interrupt value.

15 * Any Device Active. This state component is used by the subsystem to determine how to resume processing after it has processed a request from the host processor to handle either a hardware control, or a command submitted through the Attention port. For example, a write to the RR bit when the subsystem is in the ACCEPT state, and this component is YES, means that the subsystem should return to the activity it was performing before the RR bit was sct. If the value of this component is N0, then the subsystem has no device activity to perform, and is placed in a state waiting for the next main processor action to occur.

Device State A device is defined to have the following statc components.

1. Busy State. This defines whether or not thc devicc is currently busy executing a command. This state has two values, BUSY, or lDLE. If thc value is IDLE, the device is not currently executing any command. lf the value is BUSY, then the device is '- 2161~6~

exeeuting a eommand, and the Busy Substate, and CMD states will further define the eommand or hardware control in progress at the device.

2. Busy Subst~trc. If a deviee is busy exeeuting a command this state eomponent indieates the type of command in progress as follows: Immediate Command, SCB, Reset Subsystem (Hardware Controlled), Reset Subsystem (Software Controlled), Reset Deviee, Suspend, Reset SCB Interrupt.

When the Busy Substate is Immediate Command or SCB, then the CMD field defines the explieit eommand which will be executed at the device.

When the Busy Substate is Reset Subsystem (Hardware Controlled), Reset Subsystem(Software Controlled), Reset Device, Suspend, or Reset SCB Interrupt, then the CMD
state component indicates the command which is in execution at the deviee when one of these commands is aceepted.

When the Busy Substate is Reset Subsystem (Hardware Controlled), Reset Subsystem(Software Controlled), Reset Device, Suspend, or Reset SCB Interrupt, the device state component OLD Busy Substate contains the Busy Substate active when one of these eommands is accepted.

When the Busy state of the device is IDLE, the Busy Substate component will be Undefined for the device.

25 3. CMD State. This gives details on the command being executed at the device as follows:
If the Busy Substate of the device is Immediate Command this gives the command whieh is in exeeution at the deviee. In this ease its values are:

Run Diagnostic Test Immediate NOOP Immediate ~- 2161~60 Reset Interrupt Status Port Immediate Command If the Busy Substate was SCB, then the CMD states are:

Fetch next SCB from host processor memory for single SCB.
Fetch next SCB from host processor memory fi~r element of SCB chain.
Validate single SCB. (Perform specification test of SCB).
Validate SCB chain element. (Perform specification test of SCB).
Execute Single SCB
Execute SCB Chain Element These CMD states are set by the device task as it executes an SCB. That is, the Command state progresses from Fetch SCB to Execute Single SCB or Execute SCB
Chain element. When a single SCB is executing, the device moves to the Idle state when the SCB completes execution. When a Device is executing an SCB chain, it progresses through the Fetch and execute SCB Command states until the chain is complete or SCB
execution is suspended by a Suspend command. A Suspend Command will always forcethe device to the Idle State when the Suspend action is completed.
If the Busy Substate for the device is equal to Reset Subsystem (Hardware Controlled), Reset Subsystem (Software Controlled), Reset Device, Suspend, or Reset SCB Interrupt the usage of the CMD field depends upon the state component OLD Busy Substate.
If the value is Immediate comm~ncl or SCB~ then the CMD field reflects the command that was active when Reset Subsystem, Reset Device, Suspend or Reset SCB interrupt was accepted for execution. If the Old Busy Substate of the Device is Reset Subsystem (Hardware or Software Controlled, Reset Device, Suspend, or Reset SCB interrupt the CMD is ignored, since the command active at acceptance is defined completely by the state component Old Busy Substate.

2151q60 BC9-89-002s 54 4. Device Il~lel~u~ Queue Full or Intcrrupt Qucue FuU. This state component indicates whether or not the Interrupt Queue Space for the device is full. A value of YES,indicates that the queue is currently full. A value of NO indicates that the device interrupt queue has space available in it. Interrupt queue space is allocated when an interrupt is queued by the device, the interrupt queue can become full at that point.

5. SCB E~ lioA Enablemcnt or SCB Excc Enable. This state component indicates whether or not SCB execution is allowed by the device. If SCB execution has not been allowed, this component is NO. This is caused by the execution of a Suspend command.
If SCB execution is allowed, the value of the component is YES. It is set YES byResume, Reset Device or Subsystem.

6. SCB Chain Suspended or Chain Su~pcnded. The value of this state is only valid when a Suspend was issued against the device. lf a suspend was issued, and the Fetching of the next SCB in a chain was stopped by a Suspend, the value of this component is YES.
This means that a Resume issued to a device in this state will cause the device to re-enter the SCB Busy Substate, and to resume execution of the suspended chain using the SCB address saved at the time of the Suspend Command in SCB Fetch Address. If a Suspend was issued when an SCB chain was not active, or if the Chain was halted by the completion of the current SCB, then the value of this component will be NO. A
Resume issued to a device in this state will not cause the device to re-enter the SCB
Busy Substate it will exit Resume to the Idle state.

7. SCB Fetch Address. When an SCB command is initially accepted by a device, theaddress in the Command port is moved to tllis area by the Decode Process. When the next SCB in a chain is to be fetched by the device task, this state component is updated with the address of that SCB. The device task decides which chain address to select from the SCB depending on the ending state of the SCB.

30 8. De~rice Available or Dcvice Avail. If the device is a state where it can reliably execute command, this state component has a value of YES. If the device is in a state where it cannot reliably execute a command, then this state value is N0.
9. I~ ediate Command Value or IC. When the Decode Process accepts a Direct command, then the value in the Command port is moved to this state component. Itcan be used by the device task to access the values in the Direct command. Currently only Bits 15-0, effect the execution of a Direct command.
10. Device I~ Enablemcnt. This state component determines whether or not a device is enabled to request a physical interrupt. If the valuc of the component is ENABLE
an interrupt can be requested. If the value is DISABLE no physical interrupt can be requested. A device is always required to queue an interrupt in the device's internal interrupt queue independently of the value of this component. The component is set either by bit 14 of an immediate command which is sent to the device or a Reset Subsystem.
11. I~l,lui~l After. This state component determines whether or not an immediate command will request an interrupt on succes.sful completion. It is ignored for Reset Subsystem, Reset SCB Interrupt, and Reset Immediate Interrupt. The component hasthe values YES or N0 and is set by bit 15 of an immediate command directed to the device.
12. Old Busy Substate. This state component contains the Busy Substate value which was active at the device when a Suspcnd, Reset Subsystem (Software Controlled), Reset Device, Reset Subsystem (Hardware Controlled), or Reset SCB Interrupt is accepted.
13. Old CMD State. This state componcnt contains the SCB CMD value which is active when an SCB could not be fetched because the device had a full interrupt queue. The device is placed in the IDLE state when this condition arises. A Reset SCB Interrupt or Reset Immediate Interrupt can cause the device to re-enter the SCB state if the .

" 2l6l~6n interrupt queue is not full after execution.
14. SCB Suspend Intellupt Queue Full. Thi.s state component has the value YES if the device is taken from SCB state and placed in the IDLE state because the device'sinterrupt queue was full. The state component Old CMD State, and SCB Fetch Address are used to re-start SCB execution when a Reset Interrupt causes the device's interrupt queue to exit the full state when this state component is equal to YES. The component has a value of NO, when the device is not in a state where SCB execution is suspended because its interrupt queue is full.
15. Reset SCB Inl~llu~)- Acc~,led Whilc Executing SCB. This state component is equal to YES when a Reset SCB Interrupt Command is accepted by a device busy executingan SCB. This value is equal to NO, when a Reset SCB Interrupt is accepted when the device is in the IDLE state.
16. I~ t Queue for the Devicc. This is the state component which locates the internal interrupt queue for the device. It has to include the location of the current oldest element, and the location and number of entries available to allocate for later interrupts.

20 17. The SCB Logical I1~lc.l.lpl Count. This is the state component which is incremented by one every time the device raises an SCB logical interrupt.

Using some of these State Components a Command is accepted or rejected by the Decode Process as indicated in the decision tables of FlGS. 15, l6, 17 and 18. Within these tables the notation DC means Don't Care, and the condition is not tested to determine the outcome of the Decode Process. The notation NA means Not Applicable, and means that the condition cannot exist as part of the testing needed in the Decode Process.

The command delivery system includes a command handler and a decode processor. These 2161~60 functions may be implemented in hardware and/or software. Accordingly, their implementation is shown in flow chart form in FIGS. 19-25 to complement the earlier block diagram implementations utilized in FIGS. 2 and l2 explaining system operation. Specifically, the Command handler and decode processor are included and exemplified in hardware form in the command delivery logic 230 and microprocessor 234 of subsystem 202 in FIG. 12. The command handler processes the commands receivcd at thc l/O ports, and the decode processor decodes the commands for execution by the subsystem or one of the attached devices.

FIG. 19 is an overview flow chart of the command delivery system. The command handler is entered on an interrupt, whcn thc subsystem dctects a host processor write to any of the following I/O addresses: Subsystem Control Port (SSCP), Attcntion Port (AP), or Command Interface Port (CP), as indicated at block 500. As indicated at block 502, if the command handler is able to do so, it disables any interruptions of its processing for host processor writes to the Command Interface and Attention Ports. If such interruptions cannot be disabled, then writes to these ports are ignored until the command handler is re-cnabled later in its processing.
At decision block 504 a determination is made relative to whether the command handler was entered as a result of an attempt to writc to the SSCP. If so, thc logic proceeds to block 506 to process the write to the SSCP. This process is dcscribed in detail relative to FIG. 20 and FIG. 21. After the write to SSCP the logic procceds to block 502 where the command handler re-enables processing for host processor writes to thc attention and command interface ports by looping back to block 500.

If at decision block 504 there is not a writc to thc SSCP, procced to decision block 510 to determine if the host computer attemptcd to writc to thc Command Interface port. If so, the logic proceeds to block 512 to process the write to the Command Intcrface port. This process is described in detail relative to FIG. 23. Aftcr thc write to the Command Interface port the logic once again proceeds to block 508 whcrc the command handler re-enables processing for host processor writes to the attention port by looping back to block 500.

If at decision block 510 there was not a writc to thc Command Interface port, proceed to block ~' 2161160 514 to process the write to the Attention port. Thi.s process is described in detail relative to FIG. 22.

A detailed description of block 506 of FIG. 19, the processing of a write to SSC P, follows with respect to FIG. 20 and FIG. 21. With respect to FIG. 20, the host processor value written to the SSCP is read as indicated at block 516. At block 518 a determination is made whether or not a reset of the subsystem has been attempted. If so, procced to block 520 where the RST
bit in the SSCP is set to 1. Proceed to decision block 522 where a determination is made whether or not the subsystem execution state is accepting commands. If so, the subsystem state is set to subsystem reset pending started as indicatcd at block 524. The subsystem hardware function to execute subsystem reset pending is thcn invoked as indicated at block 526. On completion of the hardware function to execute the subsystem reset pending function, the subsystem execution state is set to subsystem reset pcnding complete as indicated at block 528.
A return is then made to block 508 of FIG. l9 to enable host interrupts as previously explained.

If at decision block 522 a determination is made that the subsystem execution state is not accepting commands proceed to decision block 530 to determine if the subsystem execution state is subsystem reset pending started. If so, proceed to block 532 to re-enable host processor writes to the Command Interface and Attention ports. Thc command handler then returns control to the hardware process which is exccuting thc reset pending function as indicated at block 534.

If at decision block 530 a determination is madc that the subsystem execution state is not subsystem reset pending started, proceed to dccision block 536 to determine if the subsystem e~ecution state is subsystem reset pcnding complctc. If so, a rcturn is made to block 508 of FIG. 19 to enable host interrupts as previously explaincd. If not, proceed to decision block 538 to determine if the subsystem execution state is rejcct. If so, proceed to block 524 to place the subsystem in the reset pending started state, and proceed as previously explained. If not, proceed to decision block 540 to dcterminc if the subsystem execution state is equal to decode.

216146~

If so, proceed to block 542 where the cxecution of the decode process which was underway when the host computer set RST to I is abortcd. Proceed to block 524 to place the subsystem in the reset pending started state, and proceed as previously explained. If the subsystem execution state is not equal to decodc at decision block 540, proceed to block 544 where the 5 current subsystem execution state is subsystem reset in process. RST is set to 1 causing the subsystem to abort the reset in process state as indicatcd at block 546. Proceed to block 524 to place the subsystem in the reset pending started state, as previously explained.

If at decision block 518 a determination is made that there was not an attempt being made to 10 reset the subsystem, proceed to block 548 where the RST bit of the SSCP is set to 0. Proceed to decision block 550 where a determination is made if the execution state of the subsystem is decode. If so, proceed to block 552 where the Command Handler re-enables processing for host processor writes to the Command and Attcntion ports. The Command Handler then returns control to the decode process as indicated at block 554.
If at decision block 550 a determination is made that the execution state of the subsystem was not decode, proceed to decision block 556 to determinc if the subsystem execution state is reset subsystem pending started. If so, procced to block 558 to force all SSCP bits to O except the RST bit. Next proceed to block 532 to enable writcs to the Command Interface and Attention 20 ports, and proceed as previously explained.

If at decision block 556 a determination is madc that thc subsys~cm execution state is not reset subsystem pending started, procccd to decision block .SfiO whcrc a detcrmination is made if the subsystem execution state is reset pending complctc. If so, proceed to block 562 where the 25 subsystem execution state is set to reset subsystem in process. At block 564, the Command Handler re-enables processing of host processor writcs to the Command Interface and Attention ports. The Command Handler then calls the rcset subsystem in process function as indicated at block 566. At this time, the subsystcm cxecution state is ready to accept commands as indicated at block 568. A return is then made to block 508 of FIG. 19 to enable 30 host interrupts as previously explaincd.

i_ 2161460 If at deeision block 560 a determination is made that the subsystem execution state is not reset pending complete, proceed to block 570 where the subsystem execution is reject or accept. At block 572 bit zero of the SSCP is set to the EI bit of the SSCP. The interrupt enable component of the subsystem execution state is set to YES as indicated at block 574. The test 5 interrupt function is invoked at block 576 to determine if any device, starting with device 0 can raise an interrupt. Bit one of the SSCP is set into the DMA of the subsystem control port as indicated at block 578. Bits 6, 4, 3 and 2 of the SSCP are set in the corresponding positions in the SSCP as indicated at block 580. Bit 5 of the SSCP is set into the RR bits of the SSCP
as indicated at block 582.
The process write to SSCP is continued on FIG. 21 at decision block 584 where a determination is made whether or not the RR bit in the SSCP equals ZERO. If so, proceed to decision block 586 where a determination is made whether or not the subsystem execution state is accept command. If so, proceed to decision block 588 where a determination is made 15 whether or not any device active component of the ~subsystem is equal to NO. If so, proceed to block 508 of FIG. 19 to enable host interrupts as previously explained. If any device active components is equal to YES, proceed to block 590 where the Command Handler re-enables processing of host processor writes to the Command Interface and Attention ports. At block 592, the Command Handler returns from handling its actions to return control to the 20 interrupted activity on the subsystem.

If at decision block 586 the determination is made th~t the subsystem execution state is not accepting commands, proceed to decision block 594 where a determination is made whether or not the subsystem execution state is reset ~system in proce~ss. If so, proceed to block 596 25 where the Command Handler re-enables processing of host processor writes to the Command interface and Attention ports. The Command handler then returns from the interrupt to the reset subsystem in process function as indicated at block 598.

If at decision block 594 a determination i.s made that the subsystem execution state is not reset 30 in process, proceed to decision block 5~8 and proceed as previously explained.

2161~60 ~, If at deeision block 584 a determination is made that the RR bit is not equal to ZERO, proeeed to deeision bloek 600 where a determination is made whether or not the subsystem exeeution state is equal to reject. If so, proceed to block 602 where the subsystem is taken from the rejeet state and plaeed in the accept commands state. Next proeeed to deeision block 588 5 and proeeed as previously explained. If at decision block 600 a determination is made that the subsystem execution state is not equal to rejeet, proceed to decision block 588 and proceed as previously explained.

A detailed description of block 514 of FIG. 19, the processing of a write to the Attention port, follows with respect to FIG. 22. At decision block 604 a determination is made whether or not the subsystem execution state is equal to decode. If so, the host processor write to the Attention port is ignored as indicated at block 606, and a return is made to block 552 of FIG.
20A to proceed as previously explained. If a determination is made at decision block 604 that the subsystem execution state is not equal to decode, proceed to decision block 608 where a 15 determination is made whether or not the subsystem execution state is equal to reject. If so, the host computer write to the Attention port is ignored as indicated at block 610, and a return is made to block 588 of FIG. 21 to proceed as previously explained.

If a determination is made at decision block 608 that the subsystem execution state is not equal 20 to rejeet, proceed to deeision block 612 where a determination is made whether or not the subsystem execution state is equal to reset pending started. If so, the host computer write to the Attention port is ignored a~ indicated at block 614, and a return is made to block 532 of FIG. 20C to proceed as previously explained.

25 If a determination is made at decision block 612 that the subsystem execution state is not equal to reset pending, proeeed to decision block 616 where a determination is made whether or not the subsystem state is equal to reset pending eomplete. If so, the host eomputer write to the Attention port is ignored as indieated in block 618, and a return is made to bloek 508 of FIG.
19 to enable host interrupts as previously explained.

~- 2161460 - If a determination is made at decision block 616 that the subsystcm execution state is not equal to reset pending complete, proceed to decision block 620 where a determination is made whether or not the subsystem execution state is equal to reset subsystem in process. If so, the host computer write to the attention port is ignored as indicated in block 622, and a return is 5 made to block 596 of FIG. 21 to proceed as previously explained.

If a determination is made at decision hlock 620 that the subsystem execution state is not equal to reset subsystem in process, proceed to block 624 where the subsystem execution state is in the accept state, and the Attention port is updated at block 626. The subsystem execution 10 state is then set to decode as indicated at block 628. The Command Handler then invokes the decode process in block 630, the details of which are described subsequently, relative to FIGS.
24 and 25.

At decision block 632 a determination is made whether or not the decode process accepted the 15 command. If so, proceed to block 634 where the subsystem execution state is set to accepting commands, and a return is made to decision block 588 of FIG. 21 to proceed as previously explained.

If a determination is made at decision block 632 that the decodc process had not accepted the 20 Command, proceed to block 636 where the subsystem execution state is set to reject. In block 638 the B bit and REJ bit are set to I and the S bits are set as determined by the decode process in the Command/Busy Status port. A return is then made to decision block 588 of FIG. 21 to proceed as previously explained.

A detailed description of block 512 of FlG. 19, the proce~sing of a write to the Command Interface port, follows with respect to FIG. 23. At decision block fi40 a determination is made whether or not the subsystem executon state is equal to decode. If so, the host computer write to the Command Interface port is ignored as indicated at block 642, and a return is made to block 552 of FIG. 20A to proceed as previously explained. lf a determination is made at block 640 that the subsystem execution state is not equat to decodc, proceed to decision block 644 1_ 2161460 where a determination is made whether or not the subsystem execution state is equal to reject.
If so, the host computer write to the Command Interface port is ignored as indicated at block 646, and a return is made to block 588 of FIG. 21 to proceed as previously explained.

5 If a determination is made at decision block 644 that the subsystem execution state is not equal to reject, proceed to decision block 648 where a determination is made whether or not the subsystem execution state is equal to reset pending started. If so, the host computer write to the Command Interface port is ignored as indicated at block 650, and a return is made to block 532 of FIG. 20C to proceed as previously explained.
If a determination is made at decision block 64Y, that the subsystem execution state is not equal to reset pending started, proceed to decision block 652 where a determination is made whether or not the subsystem execution state is equal to reset pending complete. If so, the host computer write to the Command Interface port is ignored as indicated in block 654, and a return is made to block 508 of FIG. 19 to proceed as previously explained.

If a determination is made at decision block 652 that the subsystem execution state is not equal to reset pending complete, proceed to decision block 656 where a determination is made whether or not the subsystem execution state is equal to reset subsystem in process. If so, the 20 host computer write to the Command lnterface port is ignored as indicated at block 658 and a return is made to block 596 of FIG. 21 to proceed as previously explained.

If a determination is made at decision block 656 that tlle subsystem execution state is not equal to reset subsystem in process proceed to hlock 660 wherc thc subsystem execution state is in 25 the accept state. The Command Interface port is then updated by the value provided by the host computer as indicated at block 662. A return is then made to decision block 588 of FIG.
21 to proceed as previously explained.

The Decode Process is invoked by the Command Handler using a "a call like" process to 30 determine whether or not a command can be accepted. If the command is accepted, the ~ 2161460 BC9-89-002s 64 Deeode Process schedules a device task to execute the eommand after it returns eontrol to the Command Handler indieating whether or not a Command was Accepted or Rejected. The Decode process sets the device state accordingly if a command is Accepted for execution. If a command is Rejected, the Decode Process returns the value which the Command Handler 5 writes as the S bit values in the Command/Busy Status port.

The Decode Process is entered with a call from the Command Handler. On entry theCommand to be processed is available in the Command Interface port. The Attention port eontains the command type, and identifies the device to which the command is directed.

A detailed description of the decode process follows, with reference to FIGS. 24 and 25. At decision block 664 a determination is made whether or not the Attention code for the command is reset device. If so, proceed to decision block 666 to determine if the immediate Command Code in bits 7-0 of the Command Interface port are equal to zero. If not, proceed to block 15 672 where the decode process sets its return code to indicate the command is rejected. This also oecurs if the answer is NO from decision block 698 or 700, the operation of whieh is to be explained shortly. The reason for the rejection is an invalid command as indicated at block 674. The decode process returns control to the Command Handler at block 676. A return is then made to decision block 632 of Fig. 22B to proceed as previously explained.
If at deeision block 666 the determination is made that the immediate Command Code in bits 7-0 of the Command Interface Port are equal to zero, proceed to decision block 668 where a determination is made if the device accessed is address '(), that is the subsystem address, then the Command is a software controlled reset subsystem. If so, proceed to block 680 where the 25 execution state of the subsystem is set to subsystem reset in process. The reset subsystem software controlled function is invoked by the decode proccss at block 682. The decode process sets its return code as command accept at block 684, and 3 return is made to block 676 to return to the Command Handler.

30 If at decision block 668 a determination is made that the device address is not address "0", the ~ 2161460 BC9-89-002s 65 subsystem address, proeeed to block 670 where the determination is made whether or not the deviee ID in the Attention Port is valid. lf so, proceed to block 686 where the current busy substate of the deviee to whieh the eommand is direeted is saved in the device state component OLD Busy Substate. An internal variable IBSS is set to the value reset device. In block 688 5 the device state component IC of the device to which the command is directed is set to the value in the Command Interface port. The busy state of the addressed device is then set to busy in bloek 690. The subsystem schedule function is then invoked in block 692 to schedule the command ICMD to the addressed device for later execution. A return is then made to bloek 684 to proceed as previously explained.

If at deeision block 670 the determination is made that the device ID in the Attention Port is not valid, proceed to block 671 where the return codc of the Command is set to reject, with the reason being an invalid deviee ID. Proceed next to bloek 676 to return to the Command Handler.
If at deeision block 664 the determination is made that the attention code for the command is not reset deviee, proceed to deeision bloek 694 where the determination is made whether or not the attention eode for the eommand is equal to reset interrupt. If not, proeeed to deeision bloek 696 to determine if the attention code for the new command is an immediate eommand.
20 If so proeeed to deeision block 700, to be described shortly; if not, proeeed to deeision bloek 698 where a determination is made whether or not the attention eode for the new eommand is an SCB. If so, proeeed to decision block 702, to be described shortly; if not, proceed to bloek 672 and proeeed as previously explained.

2~ If at deeision bloek 694 a determination is made that the attention code for the command is equal to reset interrupt, proceed to decision block 700 whcre a determination is made whether or not the immediate eommand eode in bits 7-0 of the eommand in the Command Interfaee port is valid. If the command is not valid proeeed to block 672 and proceed as previously explained. If the eommand is valid proceed to decision block 702 where a determination is 30 made if the deviee ID in the Attention Port is valid. If not, proceed to block 671 and proeeed 2161~60 BC9-89-002B . 66 as previously explained. If so, proceed to decision block 704 where a determination is made as to whether or not the device is in an available state. If not, proceed to block 706 where the return code is set to reject. The specirlc rejection code is device unavailable as indicated in block 708. A return is then made to block 676 to proceed as previously explained.

If at decision block 704 a determination is made that the device is in the available state, refer now to FIG. 25A and proceed to decision block 710 where a determination is made whether or not the device is in the busy state. If so, proceed to decision block 712 where a determination is made whether or not the new command is reset interrupt. If not, proceed to decision block 714 to determine if the new command is suspend. If not, set the return code to reject in block 716, with the reason being the device is busy as indicated in block 718. A return is then made to block 676 of FlG. 24B to proceed as previously explained.

If at either decision block 712 or 714 the decision is YES, proceed to decision block 720 where a determination is made whether or not the device is currently executing a SCB. If not, return to block 716 and proceed as previously explained. If so, proceed to decision block 722. If a determination is made at decision block 710 that the device is not busy, the logic also proceeds to decision block 722. At decision block 722 a determination is made whether or not the attention code- for the new command is reset interrupt. If so, a return is made to block 686 of FIG. 24A. If not, proceed to decision block 724 where a determination is made whether or not the device interrupt queue is full. If so, the decode process sets its return code to reject in block 726. The specific rejection code is interrupt Queue full as indicated in block 728. A
return is made to block 676 of FIG. 24B to proceed as previously explained.

If at decision block 724 a determination is made that the device interrupt queue is not full, proceed to decision block 730 ~here a determination is made whether or not the new command is suspend. If so, return to block 6~6 of FIG. 24A and proceed as previously explained. If not, the new command must be a SCB as indicated at block 732. Next, at decision bloek 734 a determination is made whether or not the device state allows the SCB to execute. If so, return to block 688 of FIG. 24A and proceed as previously explained. If not, the return code is set ~ 2161460 to reject in block 736. The reject reason is SCB executc reject in block 738. A return is made to block 676 of FIG. 24B to proceed as previously explained.

In summary, a command interface has been described for transferring information between a 5 host computer and at least one intelligent subsystem that may have attached devices. The information transferred from the host processor includes direct commands and indirect commands such as the addresses of Subsystem Control Blocks (SCB's) which containparameters to specify operations to be performcd by the identified one intelligent subsystem or device. The information transferred from the one intelligent subsystem to the host processor 10 includes busy signals wh;ch are indicativc of whcthcr or not the one intelligent subsystem Command Interface or Attention ports are busy, and status signals which are indicative of the operational status of the one intelligent subsystem and thc attached devices.

Claims

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A method of operating a computer system which includes a host processor and at least one subsystem which may have attached devices, and a command interface for transferring information between said host processor and said one subsystem, with said command interface including a Command Interface port which is in an active state when receiving commands from said host processor, an Attention port which is in an active state when receiving a code from said host processor which is indicative of which one of said one intelligent subsystem or a device is receiving the command at said command interface port, a command busy/status port which includes a busy bit position and a reject bit position, and a subsystem control port which includes a subsystem reset bit position, and a reset reject state bit position, said method including the steps of:
setting the busy bit position of said command busy/status register to an ON state in response to said Attention port being active, or the subsystem reset bit position of said subsystem control port being in the ON state; and setting the reject bit position of said command busy/status port to an ON state in response to the reset bit position of said subsystem control port being in the ON state, or the reset reject state bit position of said subsystem control port being in the ON state.
CA002161460A 1989-06-09 1990-03-16 Command delivery for a computing system Expired - Lifetime CA2161460C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/364,931 US5131082A (en) 1989-06-09 1989-06-09 Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
US364,931 1989-06-09
CA002012400A CA2012400C (en) 1989-06-09 1990-03-16 Command delivery for a computing system

Publications (2)

Publication Number Publication Date
CA2161460A1 CA2161460A1 (en) 1990-12-10
CA2161460C true CA2161460C (en) 1999-05-11

Family

ID=25674018

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002161460A Expired - Lifetime CA2161460C (en) 1989-06-09 1990-03-16 Command delivery for a computing system

Country Status (1)

Country Link
CA (1) CA2161460C (en)

Also Published As

Publication number Publication date
CA2161460A1 (en) 1990-12-10

Similar Documents

Publication Publication Date Title
US5131082A (en) Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
US5170471A (en) Command delivery for a computing system for transferring data between a host and subsystems with busy and reset indication
US3996564A (en) Input/output port control
US5185864A (en) Interrupt handling for a computing system with logical devices and interrupt reset
US5664199A (en) Microcomputer free from control of central processing unit (CPU) for receiving and writing instructions into memory independent of and during execution of CPU
EP0591437B1 (en) Multiprocessor distributed initialization and self-test system
US4271466A (en) Direct memory access control system with byte/word control of data bus
US5446910A (en) Interrupt controller with automatic distribution of interrupts for a multiple processor computer system
US6449709B1 (en) Fast stack save and restore system and method
US4067059A (en) Shared direct memory access controller
US4991085A (en) Personal computer bus interface chip with multi-function address relocation pins
KR0168656B1 (en) Data processing system
JPH0666821B2 (en) Data communication controller
CA1092718A (en) Input/output interface connector circuit for repowering and isolation
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
EP0437550B1 (en) Information processing system emulation apparatus and method
KR20010080515A (en) A direct memory access engine for supporting multiple virtual direct memory access channels
JPH0782479B2 (en) Error detection, separation and recovery equipment
US6678838B1 (en) Method to track master contribution information in a write buffer
US5305442A (en) Generalized hierarchical architecture for bus adapters
US6907521B2 (en) Enabling video BIOS and display drivers to leverage system BIOS platform abstract
CA2161460C (en) Command delivery for a computing system
JP3323341B2 (en) Emulation processor and emulator equipped with it
JPS605370A (en) Common bus control system
JPH04340635A (en) Memory access system

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry
MKEX Expiry

Effective date: 20100316