US5146565A
Expired / Lapsed
US
⏱️ 0.0 years remaining
I/O Control system having a plurality of access enabling bits for controlling access to selective ports of an I/O device
Assignee: Intel Corp
•
Filing: 1991-06-19
•
Granted: 1992-09-08
•
Expires: 2011-06-19
Abstract
Abstract In an I/O port protection device, accessing an I/O device is selectively controlled by a value of a bit stored in a bit map. A CPU instruction accessing a port is allowed direct acceess when the bit value for that port is a zero, but is trapped when the value is a one. A trapped instruction is either prohibited from any accessing or is rerouted for accessing a different I/O port.
Inventors
- 👤 Greg J. Blanck
- 👤 Rakesh K. Agarwal
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 07:21
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/14; G06F12/1458; G06F12/1483; G06F12/02; G06F12/06; G06F12/0646; G06F13/00; G06F13/10
Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
282 words
A digital computer apparatus for controlling direct access to an input/output (I/O) device comprising: a central processing unit (CPU) for performing a plurality of substantially simultaneous tasks; a plurality of I/O ports coupled to said CPU, for accessing I/O devices; means for accessing a plurality of I/O access enabling bits stored in a first storage means coupled to said CPU, said plurality of I/O access enabling bits being associated with said plurality of I/O ports, wherein for each task a corresponding I/O access enabling bit is assigned for each I/O port and in which a value of said corresponding I/O access enabling bit determines accessibility of its associated I/O port by that task, said plurality of I/O access enabling bits being stored in a variable length storage location; means for selecting a plurality of said I/O access enabling bits for each task, said plurality of I/O access enabling bits selected by said means for selecting corresponding to I/O ports of said I/O device, said means for selecting being coupled to said CPU and to said first storage means; control means for permitting a given task to directly access said I/O device when said corresponding plurality of I/O access enabling bits selected by said means for selecting are of a first value and prohibiting access when said corresponding plurality of I/O access enabling bits selected by said means for selecting are of a second value, such that an I/O instruction for directly accessing an I/O port of said I/O device is permitted, only if said corresponding I/O access enabling bit for a corresponding task is of a first value, said control means being coupled to said CPU and to said means for accessing.
Claim 2
Dependent Claim
282 words
A digital computer apparatus for controlling direct access to an input/output (I/O) device comprising: a central processing unit (CPU) for performing a plurality of substantially simultaneous tasks; a plurality of I/O ports coupled to said CPU, for accessing I/O devices; means for accessing a plurality of I/O access enabling bits stored in a first storage means coupled to said CPU, said plurality of I/O access enabling bits being associated with said plurality of I/O ports, wherein for each task a corresponding I/O access enabling bit is assigned for each I/O port and in which a value of said corresponding I/O access enabling bit determines accessibility of its associated I/O port by that task, said plurality of I/O access enabling bits being stored in a variable length storage location; means for selecting a plurality of said I/O access enabling bits for each task, said plurality of I/O access enabling bits selected by said means for selecting corresponding to I/O ports of said I/O device, said means for selecting being coupled to said CPU and to said first storage means; control means for permitting a given task to directly access said I/O device when said corresponding plurality of I/O access enabling bits selected by said means for selecting are of a first value and prohibiting access when said corresponding plurality of I/O access enabling bits selected by said means for selecting are of a second value, such that an I/O instruction for directly accessing an I/O port of said I/O device is permitted, only if said corresponding I/O access enabling bit for a corresponding task is of a first value, said control means being coupled to said CPU and to said means for accessing.
Claim 3
Dependent Claim
35 words
The apparatus as defined in claim 1, wherein said control means further comprises a means for modifying a CPU instruction for accessing said I/O port when said access enabling bit is of said second value.
Claim 4
Dependent Claim
45 words
The apparatus as defined in claim 2, further including second storage means coupled to said control means, said second storage means for storing a set of modifying instructions and generating said modifying instruction when said corresponding I/O access enabling bit is of said second value.
Claim 5
Dependent Claim
28 words
The apparatus as defined in claim 3, wherein said variable length storage locations of said first storage means are bit mapped to store said I/O access enabling bits.
Claim 6
Dependent Claim
14 words
The apparatus as defined in claim 4, wherein said first storage means is programmable.
Claim 7
Dependent Claim
20 words
The apparatus as defined in claim 5, wherein said set of modifying instructions in said second storage means is programmable.
Claim 8
Dependent Claim
43 words
The apparatus as defined in claim 6, wherein said access enabling bit identified with its port for said given task is comprised of a single bit such that said first value is a 0 (zero) and said second value is a 1 (one).
Claim 9
Dependent Claim
20 words
The apparatus as defined in claim 7, wherein said CPU and said modifying instructions access a plurality of contiguous ports.
Claim 10
Dependent Claim
14 words
The apparatus according to claim 1 wherein said control means is implemented in microcode.
Claim 11
Dependent Claim
292 words
A digital computer apparatus for selectively controlling direct access to an input/output (I/O) device comprising: a central processing unit (CPU) for performing a plurality of substantially simultaneous tasks; a plurality of I/O ports coupled to said CPU for accessing I/O devices; means for accessing a plurality of I/O access enabling bits stored in a first memory coupled to said CPU, said plurality of I/O access enabling bits being associated with said plurality of I/O ports, wherein for each task, a corresponding I/O access enabling bit is assigned for each I/O port and in which a value of said corresponding I/O access enabling bit determines accessibility of its associated I/O port by that task, said plurality of I/O access enabling bits being stored in a variable length storage location; means for accessing a set of modifying instructions stored in a second memory coupled to said CPU; means for selecting a plurality of said I/O access enabling bits for each task, said plurality of I/O access enabling bits selected by said means for selecting corresponding to I/O ports of said I/O device, said means for selecting being coupled to said CPU and to said first memory; control means for permitting a given task to directly access said I/O device when said corresponding plurality of I/O access enabling bits selected by said means for selecting are of a first value and providing an instruction from said set of modifying instructions to virtualize access to said I/O device when said plurality of I/O access enabling bits selected by said means for selecting are of a second value, said control means being coupled to said CPU, said means for accessing said first memory and said means for accessing said second memory being coupled to said control means,
Claim 12
Dependent Claim
292 words
A digital computer apparatus for selectively controlling direct access to an input/output (I/O) device comprising: a central processing unit (CPU) for performing a plurality of substantially simultaneous tasks; a plurality of I/O ports coupled to said CPU for accessing I/O devices; means for accessing a plurality of I/O access enabling bits stored in a first memory coupled to said CPU, said plurality of I/O access enabling bits being associated with said plurality of I/O ports, wherein for each task, a corresponding I/O access enabling bit is assigned for each I/O port and in which a value of said corresponding I/O access enabling bit determines accessibility of its associated I/O port by that task, said plurality of I/O access enabling bits being stored in a variable length storage location; means for accessing a set of modifying instructions stored in a second memory coupled to said CPU; means for selecting a plurality of said I/O access enabling bits for each task, said plurality of I/O access enabling bits selected by said means for selecting corresponding to I/O ports of said I/O device, said means for selecting being coupled to said CPU and to said first memory; control means for permitting a given task to directly access said I/O device when said corresponding plurality of I/O access enabling bits selected by said means for selecting are of a first value and providing an instruction from said set of modifying instructions to virtualize access to said I/O device when said plurality of I/O access enabling bits selected by said means for selecting are of a second value, said control means being coupled to said CPU, said means for accessing said first memory and said means for accessing said second memory being coupled to said control means,
Claim 13
Dependent Claim
23 words
The apparatus as defined in claim 10, wherein said control means further comprises a programmable logic array having a set of controlling instructions.
Claim 14
Dependent Claim
26 words
The apparatus as defined in claim 11, wherein said variable length storage locations of said first memory are bit mapped to store said access enabling bits.
Claim 15
Dependent Claim
19 words
The apparatus as defined in claim 12, wherein said set of modifying instructions in said second memory is programmable.
Claim 16
Dependent Claim
20 words
The apparatus as defined in claim 13, wherein said CPU and said modifying instructions access a plurality of contiguous ports.
Claim 17
Dependent Claim
20 words
The apparatus as defined in claim 10, wherein said control means further includes a programmable memory on a semiconductor device.
Claim 18
Dependent Claim
14 words
The apparatus according to claim 10 wherein said control means is implemented in microcode.
Claim 19
Dependent Claim
169 words
In a digital computer apparatus having a central processing unit (CPU), means for performing a plurality of substantially simultaneous tasks, and a plurality of I/O ports coupled to said CPU, for accessing I/O devices, a process for controlling access to an I/O device, comprising the steps of: receiving an I/O request instruction for accessing said I/O device by one of said plurality of substantially simultaneous tasks; selecting a plurality of I/O access enabling bits for each task, said selected plurality of I/O access enabling bits corresponding to I/O ports of said I/O device, said plurality of I/O access enabling bits being stored in a storage means; permitting access of said selected I/O device by said one of said plurality of substantially simultaneous tasks if said selected plurality of I/O access enabling bits are of a first value; and prohibiting access of said selected I/O device by said one of said plurality of substantially simultaneous tasks if said selected plurality of I/O access enabling bits are of a second value.
Claim 20
Dependent Claim
169 words
In a digital computer apparatus having a central processing unit (CPU), means for performing a plurality of substantially simultaneous tasks, and a plurality of I/O ports coupled to said CPU, for accessing I/O devices, a process for controlling access to an I/O device, comprising the steps of: receiving an I/O request instruction for accessing said I/O device by one of said plurality of substantially simultaneous tasks; selecting a plurality of I/O access enabling bits for each task, said selected plurality of I/O access enabling bits corresponding to I/O ports of said I/O device, said plurality of I/O access enabling bits being stored in a storage means; permitting access of said selected I/O device by said one of said plurality of substantially simultaneous tasks if said selected plurality of I/O access enabling bits are of a first value; and prohibiting access of said selected I/O device by said one of said plurality of substantially simultaneous tasks if said selected plurality of I/O access enabling bits are of a second value.
Claim 21
Dependent Claim
36 words
The method defined by claim 17 further including the step of modifying said I/O request instruction when said I/O access enabling bit is of a second value, such that a different I/O request instruction is generated.
Claim 22
Dependent Claim
22 words
The method defined by claim 18, wherein said first value is a 0 (zero) and said second value is a 1 (one).
References Cited (Backward Citations)
US3668651A
Cited
US4135240A
Cited
GB1497600A
Cited
US4091455A
Cited
GB2070302A
Cited
US4509140A
Cited
US4475155A
Cited
US4463445A
Cited
US4574350A
Cited
GB2123189A
Cited
EP0117930A1
Cited
EP0166984A2
Cited
US4727480A
Cited
US4901274A
Cited
EP0172342A2
Cited
US4695945A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1995-09-08 | 1996-03-09 | 1996-09-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1999-09-08 | 2000-03-09 | 2000-09-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2003-09-08 | 2004-03-09 | 2004-09-08 | $7700.00 | Window Closed / Lapsed |