US5081609A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Multiprocessor controller having time shared control store
Assignee: Bull HN Information Systems Inc
•
Filing: 1989-01-10
•
Granted: 1992-01-14
•
Expires: 2009-01-10
Abstract
Abstract A controller connected between a system bus and peripheral devices has at least two microprocessors. One controls the data transfers with the peripheral devices, and the other controls data transfers with the system bus. The microprocessors share a data buffer and control store. This sharing is possible because of the controller timing means which synchronizes exclusive access to the shared components of the controller. When first initialized, the microprocessors are directed to execute a test instruction which points them to the beginning of their set of microinstructions. Once pointed to their set of microinstructions, normal operation may begin.
Inventors
- 👤 Edward F. Getson, Jr.
- 👤 John W. Bradley
- 👤 Joseph P. Gardner
- 👤 Alfred F. Votolato
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 03:37
CPC Classifications
G; G06; G06F; G06F9/00; G06F13/00; G06F13/10; G06F13/12; G06F13/124
Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
132 words
A controller for controlling data transfers between a data processing system bus and peripheral devices, comprising: a. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices; b. a first microprocessor for controlling data transfers between the data processing system bus and the at least one data buffer; c. a second microprocessor in communication with the first microprocessor for controlling data transfers between the data buffer and the peripheral devices; d. a control store connected to both microprocessors for storing microinstructions that control operation of the respective microprocessors; and e. a timing means which produces a clock signal divided into cycles wherein each microprocessor is assigned a portion of a cycle during which it may exclusively access the control store.
Claim 2
Dependent Claim
132 words
A controller for controlling data transfers between a data processing system bus and peripheral devices, comprising: a. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices; b. a first microprocessor for controlling data transfers between the data processing system bus and the at least one data buffer; c. a second microprocessor in communication with the first microprocessor for controlling data transfers between the data buffer and the peripheral devices; d. a control store connected to both microprocessors for storing microinstructions that control operation of the respective microprocessors; and e. a timing means which produces a clock signal divided into cycles wherein each microprocessor is assigned a portion of a cycle during which it may exclusively access the control store.
Claim 3
Dependent Claim
17 words
A controller as recited in claim 1 further comprising a scratch pad memory connected to both microprocessors.
Claim 4
Dependent Claim
33 words
A controller as recited in claim 2 wherein each microprocessor is assigned a portion of a cycle in which it may exclusively access the scratch pad memory or exclusively seize the data buffer.
Claim 5
Dependent Claim
18 words
A controller as recited in claim 1 wherein the dual port control store comprises a random access memory.
Claim 6
Dependent Claim
13 words
A controller as recited in claim 1 wherein there are two data buffers.
Claim 7
Dependent Claim
21 words
A controller as reoited in claim 1 wherein the control store is loaded with separate sets of microinstructions for each microprocessor.
Claim 8
Dependent Claim
35 words
A controller as recited in claim 1 wherein the control store is prepared for operation by loading it with a test instruction which directs each microprocessor to the beginning of its respective set of microinstructions.
Claim 9
Dependent Claim
16 words
A controller as reoited in claim 7 wherein the test instruction is a conditional branch instruction.
Claim 10
Dependent Claim
203 words
A peripheral device controller for controlling data transfers between a data processing system bus and peripheral devices, comprising: a. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices; b. a first microprocessor for controlling data transfers between a data processing system bus and peripheral devices, comprising: a. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices; b. a first microprocessor for controlling data transfers between the at least one data buffer and the data processing system bus; c. a second microprocessor for controlling data transfers between the at least one data buffer and the peripheral devices; d. a control store comprising a random access memory for storing sets of microinstructions for each microprocessor wherein the control store is prepared for operation by loading it with a test instruction which directs each of the microprocessors to the beginning of its respective set of microinstructions; and e. a timing means which generates a clock signal which is divided into cycles wherein each microprocessor is assigned a portion of a cycle during which it may exclusively access the control store.
Claim 11
Dependent Claim
203 words
A peripheral device controller for controlling data transfers between a data processing system bus and peripheral devices, comprising: a. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices; b. a first microprocessor for controlling data transfers between a data processing system bus and peripheral devices, comprising: a. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices; b. a first microprocessor for controlling data transfers between the at least one data buffer and the data processing system bus; c. a second microprocessor for controlling data transfers between the at least one data buffer and the peripheral devices; d. a control store comprising a random access memory for storing sets of microinstructions for each microprocessor wherein the control store is prepared for operation by loading it with a test instruction which directs each of the microprocessors to the beginning of its respective set of microinstructions; and e. a timing means which generates a clock signal which is divided into cycles wherein each microprocessor is assigned a portion of a cycle during which it may exclusively access the control store.
Claim 12
Dependent Claim
172 words
A controller for efficiently transferring information between peripheral devices and a system bus comprising a. a first synchronously operated processor for receiving and processing input/output commands from said system by specifying operation to be performed by said bus; b. a second synchronously operated processor for transferring information to the peripheral devices; c. a control store coupled to said first and second processor comprising a first and a second set of storage locations for storing sets of a corresponding number of microinstructions for each said processor wherein said microinstructions define operations to be performed by said processors; d. a timing means for application to said first and second processors for synchronizing their operations relative to each other in a predetermined manner, each sequence having at least first and second intervals for defining the time period that said first and second processors respectively have exclusive access to said control store; and e. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices.
Claim 13
Dependent Claim
172 words
A controller for efficiently transferring information between peripheral devices and a system bus comprising a. a first synchronously operated processor for receiving and processing input/output commands from said system by specifying operation to be performed by said bus; b. a second synchronously operated processor for transferring information to the peripheral devices; c. a control store coupled to said first and second processor comprising a first and a second set of storage locations for storing sets of a corresponding number of microinstructions for each said processor wherein said microinstructions define operations to be performed by said processors; d. a timing means for application to said first and second processors for synchronizing their operations relative to each other in a predetermined manner, each sequence having at least first and second intervals for defining the time period that said first and second processors respectively have exclusive access to said control store; and e. at least one data buffer for temporarily storing data as it passes between the data processing system bus and the peripheral devices.
Claim 14
Independent Claim
161 words
A method of synchronizing elements of a controller having a buffer, first and second microprocessors, a timing means and a control store which controls data transfers between a data processing system bus and peripheral devices, comprising: (a) dividing time into cycles using the timing means; (b) at the start of a first portion of a cycle, performing an instruction fetch by the first microprocessor from the control store; (c) during said first portion of said cycle, beginning execution by the first microprocessor of the microinstruction fetched by he first microprocessor; and completing execution by the second microprocessor of a microinstruction previously fetched by the second microprocessor; (d) at the start of a second portion of said cycle, performing an instruction fetch by the second microprocessor from the control store; (e) during said second portion of said cycle, p1 beginning execution by the second microprocessor of the microinstruction fetched by the second microprocessor; and (f) repeating the above steps b through e.
Claim 15
Independent Claim
161 words
A method of synchronizing elements of a controller having a buffer, first and second microprocessors, a timing means and a control store which controls data transfers between a data processing system bus and peripheral devices, comprising: (a) dividing time into cycles using the timing means; (b) at the start of a first portion of a cycle, performing an instruction fetch by the first microprocessor from the control store; (c) during said first portion of said cycle, beginning execution by the first microprocessor of the microinstruction fetched by he first microprocessor; and completing execution by the second microprocessor of a microinstruction previously fetched by the second microprocessor; (d) at the start of a second portion of said cycle, performing an instruction fetch by the second microprocessor from the control store; (e) during said second portion of said cycle, p1 beginning execution by the second microprocessor of the microinstruction fetched by the second microprocessor; and (f) repeating the above steps b through e.
Claim 16
Dependent Claim
32 words
A method of synchronizing elements of a controller as recited in claim 11 wherein execution of the microprocessor may comprise exclusively accessing a scratch pad memory or exclusively seizing a data buffer.
Claim 17
Dependent Claim
61 words
A method of synchronizing elements of a controller as recited in claim 11 wherein each said microprocessor may only exclusively access the scratch pad memory or exclusively seize a data buffer during an assigned one of said portions of cycles which is not assigned to other said microprocessors, and the assigned one of said portions is the same for each cycle.
Claim 18
Independent Claim
247 words
A method of preparing a control store of a controller having a data buffer, first and second microprocessors, and a timing means for operation comprising: (a) loading a test instruction into the control store; (b) loading a set of microinstructions for each microprocessor into the control store; (c) dividing time into cycles using the timing means; (d) at the start of a first portion of a cycle, fetching the test instruction from the control store by the first microprocessor; (e) during said first portion of said cycle, beginning execution of the test instruction by the first microprocessor; (f) at the start of a second portion of said cycle, fetching the test instruction by the second microprocessor; (g) during said second portion of said cycle, completing execution of the test instruction by the first microprocessor wherein execution of the test instruction comprises directing the first microprocessor to a first microinstruction in its set of microinstructions; beginning execution of the test instruction by the second microprocessor; (h) at the start of a first portion of a next cycle, fetching the first microinstruction at the beginning of the set of microinstructions for the first microprocessor by he first microprocessor; (i) during said first portion of said next cycle, completing execution of the test instruction by the second microprocessor comprises directing the second microprocessor of a first microinstruction in its set of microinstructions; (j) fetching the first microinstruction in the set of microinstructions for the second microprocessor by the second microprocessor.
Claim 19
Independent Claim
247 words
A method of preparing a control store of a controller having a data buffer, first and second microprocessors, and a timing means for operation comprising: (a) loading a test instruction into the control store; (b) loading a set of microinstructions for each microprocessor into the control store; (c) dividing time into cycles using the timing means; (d) at the start of a first portion of a cycle, fetching the test instruction from the control store by the first microprocessor; (e) during said first portion of said cycle, beginning execution of the test instruction by the first microprocessor; (f) at the start of a second portion of said cycle, fetching the test instruction by the second microprocessor; (g) during said second portion of said cycle, completing execution of the test instruction by the first microprocessor wherein execution of the test instruction comprises directing the first microprocessor to a first microinstruction in its set of microinstructions; beginning execution of the test instruction by the second microprocessor; (h) at the start of a first portion of a next cycle, fetching the first microinstruction at the beginning of the set of microinstructions for the first microprocessor by he first microprocessor; (i) during said first portion of said next cycle, completing execution of the test instruction by the second microprocessor comprises directing the second microprocessor of a first microinstruction in its set of microinstructions; (j) fetching the first microinstruction in the set of microinstructions for the second microprocessor by the second microprocessor.
References Cited (Backward Citations)
US3500466A
Cited
US3651482A
Cited
US3969702A
Cited
US4008462A
Cited
US3909799A
Cited
US4152763A
Cited
US4028668A
Cited
US4124888A
Cited
US4084229A
Cited
US4062058A
Cited
US4156925A
Cited
US4050097A
Cited
US4085450A
Cited
US4296464A
Cited
US4365311A
Cited
US4246637A
Cited
US4321665A
Cited
US4327408A
Cited
US4371932A
Cited
US4322792A
Cited
US4323967A
Cited
US4348723A
Cited
US4488231A
Cited
US4384285A
Cited
US4695943A
Cited
US4800523A
Cited
US4754396A
Cited
US4890218A
Cited
US4821170A
Cited
US4890225A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1995-01-13 | 1995-07-15 | 1996-01-14 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1999-01-13 | 1999-07-15 | 2000-01-14 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2003-01-13 | 2003-07-15 | 2004-01-14 | $7700.00 | Window Closed / Lapsed |