← Back to Patent Explorer
US4855899A Expired / Lapsed US ⏱️ 0.0 years remaining

Multiple I/O bus virtual broadcast of programmed I/O instructions

Assignee: NCR Voyix Corp
•
Filing: 1987-04-13
•
Granted: 1989-08-08
•
Expires: 2007-04-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of performing an input/output process containing a programmed input/output (PIO) instruction in a multiprocessor system including at least two processors each having an associated I/O bus with I/O devices connected thereto. The method has the steps of storing a unique address and a bus location for each I/O device in a device location table, determining the address of a referenced I/O device prior to performing the PIO instruction, reading the corresponding I/O bus location of the referenced I/O device from the device location table and executing the input/output process on the prescribed processor associated with the I/O bus to which the referenced I/O device is located. The method is used in conjunction with a task scheduler including a process control block for each scheduled process. When the PIO instruction references a device on the local I/O bus, the input/output process is executed normally. To execute the input/output process on a remote processor, a locked descriptor identifying the remote processor is placed in the process control block for that process. The input/output process is then scheduled for execution on the remote processor.

Inventors

  • 👤 Stephen D. Presant

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 21:51
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/4881; G06F13/00; G06F13/10; G06F15/00; G06F15/16; G06F15/161; G06F9/50; G06F9/5005; G06F9/5011

Claims Analysis

Total Claims: 9
Claim 1
Independent Claim 287 words
A method for performing an input/output process containing a programmed input/output instruction in a multiprocessor system including at least two processors, each of said processors being coupled to an I/O bus with one or more I/O devices connected thereto, said multiprocessor system including an operating system having process scheduling means for executing processes on said processors according to assigned priority, said process scheduling means including a process control block containing scheduling information for each of said processes said method comprising the steps of: establishing a global device location table accessible by each of said processors in which a unique I/O device address and a corresponding I/O bus location are stored for each I/O device in said multiprocessor system; when starting a programmed input/output instruction, determining the unique address of a referenced I/O device; reading the corresponding I/O bus location of the referenced I/O device from the global device location table; determining whether the referenced I/O device is connected to the local I/O bus, and when the referenced I/O device is connected to the local I/O bus, executing the input/output process on the local processor, when the referenced I/O device is connected to a prescribed remote I/O bus, placing a locked descriptor in the process control block for the input/output process indicating that the input/output process can be performed only on the remote processor coupled with the prescribed remote I/O bus, saving the registers of the input/output process in its process control block, scheduling the input/output process on the remote processor coupled with the prescribed remote I/O bus in accordance with the priority assigned to the I/O process by the operating system, and executing the input/output process on the remote processor coupled with the prescribed remote I/O bus.
Claim 2
Independent Claim 287 words
A method for performing an input/output process containing a programmed input/output instruction in a multiprocessor system including at least two processors, each of said processors being coupled to an I/O bus with one or more I/O devices connected thereto, said multiprocessor system including an operating system having process scheduling means for executing processes on said processors according to assigned priority, said process scheduling means including a process control block containing scheduling information for each of said processes said method comprising the steps of: establishing a global device location table accessible by each of said processors in which a unique I/O device address and a corresponding I/O bus location are stored for each I/O device in said multiprocessor system; when starting a programmed input/output instruction, determining the unique address of a referenced I/O device; reading the corresponding I/O bus location of the referenced I/O device from the global device location table; determining whether the referenced I/O device is connected to the local I/O bus, and when the referenced I/O device is connected to the local I/O bus, executing the input/output process on the local processor, when the referenced I/O device is connected to a prescribed remote I/O bus, placing a locked descriptor in the process control block for the input/output process indicating that the input/output process can be performed only on the remote processor coupled with the prescribed remote I/O bus, saving the registers of the input/output process in its process control block, scheduling the input/output process on the remote processor coupled with the prescribed remote I/O bus in accordance with the priority assigned to the I/O process by the operating system, and executing the input/output process on the remote processor coupled with the prescribed remote I/O bus.
Claim 3
Dependent Claim 84 words
A method as defined in claim 1 wherein the step of scheduling the input/output process includes the steps of determining whether the input/output process is higher in priority than the process currently running on the remote processor coupled with the prescribed remote I/O bus, and when the input/output process is higher in priority than the process currently running on the remote processor associated with the prescribed remote I/O bus, signalling said remote processor to preempt its currently running process and perform the input/output process.
Claim 4
Independent Claim 267 words
A method for performing an input/output process containing a programmed input/output instruction in a multiprocessor system including at least two processors, each of said processors coupled to an I/O bus with one or more I/O devices connected thereto, and further including an operating system having process scheduling means for executing processes on said processors according to assigned priority, said process scheduling means including a process control block for each of said processors, said method comprising the steps of: storing a unique I/O device address and a corresponding I/O bus location for each I/O device of the multiprocessor system in a global device location table accessible by each of said processors; determining the unique address of a referenced I/O device prior to performing the programmed input/output instruction; reading the corresponding I/O bus location of the referenced I/O device from the global device location table; executing the input/output process on the local processor when the referenced I/O device is connected to the local I/O bus, and when the referenced I/O device is connected to a prescribed remote I/O bus, placing a locked descriptor in the process control block for the input/output process indicating that the input/output process can be performed only on the remote processor coupled with the prescribed remote I/O bus; saving the registers of the input/output process in its process control block, scheduling the input/output process on the remote processor coupled with the prescribed remote I/O bus in accordance with the priority assigned to the I/O process by the operating system, and executing the input/output process on the remote processor coupled with the prescribed remote I/O bus.
Claim 5
Independent Claim 267 words
A method for performing an input/output process containing a programmed input/output instruction in a multiprocessor system including at least two processors, each of said processors coupled to an I/O bus with one or more I/O devices connected thereto, and further including an operating system having process scheduling means for executing processes on said processors according to assigned priority, said process scheduling means including a process control block for each of said processors, said method comprising the steps of: storing a unique I/O device address and a corresponding I/O bus location for each I/O device of the multiprocessor system in a global device location table accessible by each of said processors; determining the unique address of a referenced I/O device prior to performing the programmed input/output instruction; reading the corresponding I/O bus location of the referenced I/O device from the global device location table; executing the input/output process on the local processor when the referenced I/O device is connected to the local I/O bus, and when the referenced I/O device is connected to a prescribed remote I/O bus, placing a locked descriptor in the process control block for the input/output process indicating that the input/output process can be performed only on the remote processor coupled with the prescribed remote I/O bus; saving the registers of the input/output process in its process control block, scheduling the input/output process on the remote processor coupled with the prescribed remote I/O bus in accordance with the priority assigned to the I/O process by the operating system, and executing the input/output process on the remote processor coupled with the prescribed remote I/O bus.
Claim 6
Dependent Claim 44 words
A method as defined in claim 3 wherein the step of storing a unique I/O device address and corresponding I/O bus location for each I/O device includes the step of polling each I/O bus to determine the addresses of the I/O devices connected thereon.
Claim 7
Independent Claim 226 words
An apparatus for performing an input/output process containing a programmed input/output (PIO) instruction comprising: at least two processors, each of said processors capable of executing programmed input/output instructions; at least two I/O busses, each of said I/O busses coupled to one of said processors, each of said I/O busses having one or more I/O devices connected thereto; a shared memory means accessible by each of said processors and defining a global device location table, said global device location table containing a unique I/O device address and a corresponding I/O bus location for each I/O device attached to said I/O busses; means for determining the unique address of a reference I/o device for performing the PIO instruction; means for reading the corresponding I/O bus location of the reference I/O device from the global device location table; an operating system having process scheduling means for executing input/output processes on said processors according to priority assigned to said processes by said operating system, said process scheduling means further includes a process control block for each of said I/O processes, said process control block including a locked descriptor indicating that the I/O process is executable only on the processor to which the referenced I/O bus is coupled; and means for executing an I/O process on the processor coupled with the I/O bus on which the referenced I/O device is located.
Claim 8
Independent Claim 226 words
An apparatus for performing an input/output process containing a programmed input/output (PIO) instruction comprising: at least two processors, each of said processors capable of executing programmed input/output instructions; at least two I/O busses, each of said I/O busses coupled to one of said processors, each of said I/O busses having one or more I/O devices connected thereto; a shared memory means accessible by each of said processors and defining a global device location table, said global device location table containing a unique I/O device address and a corresponding I/O bus location for each I/O device attached to said I/O busses; means for determining the unique address of a reference I/o device for performing the PIO instruction; means for reading the corresponding I/O bus location of the reference I/O device from the global device location table; an operating system having process scheduling means for executing input/output processes on said processors according to priority assigned to said processes by said operating system, said process scheduling means further includes a process control block for each of said I/O processes, said process control block including a locked descriptor indicating that the I/O process is executable only on the processor to which the referenced I/O bus is coupled; and means for executing an I/O process on the processor coupled with the I/O bus on which the referenced I/O device is located.
Claim 9
Dependent Claim 22 words
The apparatus of claim 5 wherein each of said process control blocks for each of said I/O processes further comprises scheduling information.

References Cited (Backward Citations)

US3938098A Cited
US4672537A Cited
US4665482A Cited
US4707693A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1992-08-07 1993-02-06 1993-08-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1996-08-07 1997-02-06 1997-08-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2000-08-07 2001-02-06 2001-08-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag