US5983266A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Control method for message communication in network supporting software emulated modules and hardware implemented modules
Assignee: Unisys Corp
•
Filing: 1997-03-26
•
Granted: 1999-11-09
•
Expires: 2017-03-26
Abstract
Abstract A method for message transfers between digital modules in a network where some modules are hardware implemented and some modules are emulated in software. An Auxiliary Message Arbitrator Unit utilizes Main Memory storage for messages destined for receiving modules. Algorithmic sequencing means maintains chronological transfer operations of messages and uses hard and soft Interrupt signal queues to inform respective hard and soft modules of pending messages for them to retrieve.
Inventors
- 👤 Mark Jeffrey Tadman
- 👤 Richard Mike Holmes
- 👤 Leon Arie Krantz
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-05 08:46
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/163; G06F15/173; G06F15/17306
Claims Analysis
Total Claims: 10
Claim 1
Independent Claim
511 words
A network utilizing digital hardware modules and software emulated digital modules placed as software in Main System Memory, wherein a Central Processing Module, a PC Processor, and Main System Memory providing, for each one of N modules, a dedicated message queue, identified by a queue number, having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware Input/Output Modules and a hardware Auxiliary Message Control Module providing algorithmic control sequences for sending messages to dedicated queues in Main System Memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential token values for sending modules to access Main Memory plus utilizing a Control RAM with Read, Write and Interrupt pointers for said algorithmic control sequences, a method for regulating the transfer of messages between sending modules and receiving modules, including the steps of: (a) establishing a separate queue in a Main System Memory for each one of said "N" digital modules in the network; (b) assigning each digital module a message-queue number which represents a series of "M" message holding slots in each one of said N message queues dedicated to each particular receiving destination module, each said message queue having Flag means to indicate that the queue is "Empty" or "Not Empty"; (c) providing a Token value to a requesting sending module which Token value identifies a particular message slot in a message queue dedicated to said receiving destination module said Token value being provided in such a rapid sequential fashion so as to prevent any lockup with a concurrently requesting sending module; (d) receiving, by said sending module, of said provided Token value and using it to calculate a Main System Memory address for placing a message destined for said receiving destination module; (e) writing a message from said message-sending module into the main Memory queue in the slot designated by said Token value; (f) returning the Token value, by said sending module, back to said Token RAM, thus indicating that the message from the sending module is now residing in the addressed Main Memory queue and slot for the receiving destination module; (g) signaling an Interrupt to the receiving destination module to indicate that a message is waiting for it; (h) receiving of the Interrupt by the receiving destination module in order to execute a "Get Message" operation via said Auxiliary Message Control Module to said Main System Memory; (i) providing a Token value from said Auxiliary Message Control Module, to said receiving module, which can be used to calculate the System Main Memory address where the message is stored said token value being provided to said receiving module in such a rapid sequential fashion so as to prevent any lockup with a concurrently requesting receiving module; (j) reading, by said receiving destination module, the message residing in said message queue in said Main System Memory; (k) returning, by said receiving destination module, of the message Token value just used, back to said Token RAN in said Auxiliary Message Control Module.
Claim 2
Dependent Claim
511 words
A network utilizing digital hardware modules and software emulated digital modules placed as software in Main System Memory, wherein a Central Processing Module, a PC Processor, and Main System Memory providing, for each one of N modules, a dedicated message queue, identified by a queue number, having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware Input/Output Modules and a hardware Auxiliary Message Control Module providing algorithmic control sequences for sending messages to dedicated queues in Main System Memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential token values for sending modules to access Main Memory plus utilizing a Control RAM with Read, Write and Interrupt pointers for said algorithmic control sequences, a method for regulating the transfer of messages between sending modules and receiving modules, including the steps of: (a) establishing a separate queue in a Main System Memory for each one of said "N" digital modules in the network; (b) assigning each digital module a message-queue number which represents a series of "M" message holding slots in each one of said N message queues dedicated to each particular receiving destination module, each said message queue having Flag means to indicate that the queue is "Empty" or "Not Empty"; (c) providing a Token value to a requesting sending module which Token value identifies a particular message slot in a message queue dedicated to said receiving destination module said Token value being provided in such a rapid sequential fashion so as to prevent any lockup with a concurrently requesting sending module; (d) receiving, by said sending module, of said provided Token value and using it to calculate a Main System Memory address for placing a message destined for said receiving destination module; (e) writing a message from said message-sending module into the main Memory queue in the slot designated by said Token value; (f) returning the Token value, by said sending module, back to said Token RAM, thus indicating that the message from the sending module is now residing in the addressed Main Memory queue and slot for the receiving destination module; (g) signaling an Interrupt to the receiving destination module to indicate that a message is waiting for it; (h) receiving of the Interrupt by the receiving destination module in order to execute a "Get Message" operation via said Auxiliary Message Control Module to said Main System Memory; (i) providing a Token value from said Auxiliary Message Control Module, to said receiving module, which can be used to calculate the System Main Memory address where the message is stored said token value being provided to said receiving module in such a rapid sequential fashion so as to prevent any lockup with a concurrently requesting receiving module; (j) reading, by said receiving destination module, the message residing in said message queue in said Main System Memory; (k) returning, by said receiving destination module, of the message Token value just used, back to said Token RAN in said Auxiliary Message Control Module.
Claim 3
Dependent Claim
501 words
A network utilizing digital hardware modules and software emulated digital modules placed as software in Main System Memory, wherein a Central Processing Module, a PC Processor, and Main System Memory providing, for each module, a dedicated message queue, identified by a queue number, having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware Input/Output Modules and a hardware Auxiliary Message Control Module providing algorithmic control sequences for sending messages to dedicated queues in Main System Memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential token values for sending modules to access Main memory plus utilizing a Control RAM with Read, Write and Interrupt pointers for said algorithmic control sequences, a method for regulating the transfer of messages between sending modules and receiving modules, including the steps of: (a) establishing a separate queue in a Main System Memory for each one of "N" digital modules in the network; (b) assigning each digital module a message-queue number which represents a series of "M" message holding slots in each one of said N message queues dedicated to each particular receiving destination module, each said message queue having Flag means to indicate that the queue is "Empty" or "Not Empty": (c) providing a Token value to a requesting sending module which Token value identifies a particular message slot in a message queue dedicated to said receiving destination module; (d) receiving, by said sending module, of said provided Token value and using it to calculate a Main System Memory address for placing a message destined for said receiving destination module; (e) writing a message from said message-sending module into the Main Memory queue in the slot designated by said Token value; (f) returning the Token value, by said sending module, back to said Token RAM, thus indicating that the message from the sending module is now residing in the addressed Main Memory queue and slot for the receiving destination module; (g) signaling an Interrupt to the receiving destination module to indicate that a message is waiting for it; (h) receiving of the Interrupt by the receiving destination module in order to execute a "Get Message" operation via said Auxiliary Message Control Module to said Main System Memory; (i) providing a Token value from said Auxiliary Message Control Module, to said receiving module, which can be used to calculate the System Main Memory address where the message is stored; (j) reading, by said receiving destination module, the message residing in said message queue in said Main System Memory; (k) returning, by said receiving destination module, of the message Token value just used, back to said Token RAN in said Auxiliary Message Control Module; (m) utilizing a fast empty sequence by using a series of Get Message operations to retrieve a series of messages from said receiving destination module's message queue with only one initial Interrupt signal being used to initiate the sequence, thus eliminating any intervening Interrupts.
Claim 4
Dependent Claim
501 words
A network utilizing digital hardware modules and software emulated digital modules placed as software in Main System Memory, wherein a Central Processing Module, a PC Processor, and Main System Memory providing, for each module, a dedicated message queue, identified by a queue number, having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware Input/Output Modules and a hardware Auxiliary Message Control Module providing algorithmic control sequences for sending messages to dedicated queues in Main System Memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential token values for sending modules to access Main memory plus utilizing a Control RAM with Read, Write and Interrupt pointers for said algorithmic control sequences, a method for regulating the transfer of messages between sending modules and receiving modules, including the steps of: (a) establishing a separate queue in a Main System Memory for each one of "N" digital modules in the network; (b) assigning each digital module a message-queue number which represents a series of "M" message holding slots in each one of said N message queues dedicated to each particular receiving destination module, each said message queue having Flag means to indicate that the queue is "Empty" or "Not Empty": (c) providing a Token value to a requesting sending module which Token value identifies a particular message slot in a message queue dedicated to said receiving destination module; (d) receiving, by said sending module, of said provided Token value and using it to calculate a Main System Memory address for placing a message destined for said receiving destination module; (e) writing a message from said message-sending module into the Main Memory queue in the slot designated by said Token value; (f) returning the Token value, by said sending module, back to said Token RAM, thus indicating that the message from the sending module is now residing in the addressed Main Memory queue and slot for the receiving destination module; (g) signaling an Interrupt to the receiving destination module to indicate that a message is waiting for it; (h) receiving of the Interrupt by the receiving destination module in order to execute a "Get Message" operation via said Auxiliary Message Control Module to said Main System Memory; (i) providing a Token value from said Auxiliary Message Control Module, to said receiving module, which can be used to calculate the System Main Memory address where the message is stored; (j) reading, by said receiving destination module, the message residing in said message queue in said Main System Memory; (k) returning, by said receiving destination module, of the message Token value just used, back to said Token RAN in said Auxiliary Message Control Module; (m) utilizing a fast empty sequence by using a series of Get Message operations to retrieve a series of messages from said receiving destination module's message queue with only one initial Interrupt signal being used to initiate the sequence, thus eliminating any intervening Interrupts.
Claim 5
Dependent Claim
28 words
The method of claim 1 which includes the step of: (m) sensing said "Empty Flag" signal of step (b) to terminate said Get Message operation of step (h).
Claim 6
Dependent Claim
492 words
A network utilizing digital hardware modules and software emulated digital modules placed as software in main System Memory, wherein a Central Processing Module, a PC Processor, and Main system memory providing, for each module, a dedicated message queue, identified by a queue number, having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware Input/Output Modules and a hardware Auxiliary Message Control Module providing algorithmic control sequences for sending messages to dedicated queues in Main System memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential token values for sending modules to access Main memory plus utilizing a Control RAM with Read, Write and Interrupt pointers for said algorithmic control sequences, a method for regulating the transfer of messages between sending modules and receiving modules, including the steps of: (a) establishing a separate queue in a Main System Memory for each one of "N" digital modules in the network; (b) assigning each digital module a message-queue number which represents a series of "M" message holding slots in each one of said N message queues dedicated to each particular receiving destination module, each said message queue having Flag means to indicate that the queue is "Empty" or "Not Empty"; (c) providing a Token value to a requesting sending module which Token value identifies a particular message slot in a message, queue dedicated to said receiving destination module; (d) receiving, by said sending module, of said provided Token value and using it to calculate a Main System memory address for placing a message destined for said receiving destination module; (e) writing a message from said message-sending module into the Main Memory queue in the slot designated by said Token value; (f) returning the Token value, by said sending module, back to said Token RAM, thus indicating that the message from the sending module is now residing in the addressed Main memory queue and slot for the receiving destination module; (g) signaling an Interrupt to the receiving destination module to indicate that a message is waiting for it on the basis of: (g1) generating a hard Interrupt signal when said receiving destination module is a hardware module; (g2) generating a soft Interrupt signal when said receiving destination module is a software-emulated digital module; (h) receiving of the Interrupt by the receiving destination module in order to execute a "Get Message" operation via said Auxiliary Message Control Module to said Main System Memory; (i) providing a Token value from said Auxiliary Message Control Module, to said receiving module, which can be used to calculate the System Main Memory address where the message is stored; (i) reading, by said receiving destination module, the message residing in said message queue in said Main System Memory; (k) returning, by said receiving destination module, of the message Token value just used, back to said Token RAM in said Auxiliary Message Control Module.
Claim 7
Dependent Claim
492 words
A network utilizing digital hardware modules and software emulated digital modules placed as software in main System Memory, wherein a Central Processing Module, a PC Processor, and Main system memory providing, for each module, a dedicated message queue, identified by a queue number, having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware Input/Output Modules and a hardware Auxiliary Message Control Module providing algorithmic control sequences for sending messages to dedicated queues in Main System memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential token values for sending modules to access Main memory plus utilizing a Control RAM with Read, Write and Interrupt pointers for said algorithmic control sequences, a method for regulating the transfer of messages between sending modules and receiving modules, including the steps of: (a) establishing a separate queue in a Main System Memory for each one of "N" digital modules in the network; (b) assigning each digital module a message-queue number which represents a series of "M" message holding slots in each one of said N message queues dedicated to each particular receiving destination module, each said message queue having Flag means to indicate that the queue is "Empty" or "Not Empty"; (c) providing a Token value to a requesting sending module which Token value identifies a particular message slot in a message, queue dedicated to said receiving destination module; (d) receiving, by said sending module, of said provided Token value and using it to calculate a Main System memory address for placing a message destined for said receiving destination module; (e) writing a message from said message-sending module into the Main Memory queue in the slot designated by said Token value; (f) returning the Token value, by said sending module, back to said Token RAM, thus indicating that the message from the sending module is now residing in the addressed Main memory queue and slot for the receiving destination module; (g) signaling an Interrupt to the receiving destination module to indicate that a message is waiting for it on the basis of: (g1) generating a hard Interrupt signal when said receiving destination module is a hardware module; (g2) generating a soft Interrupt signal when said receiving destination module is a software-emulated digital module; (h) receiving of the Interrupt by the receiving destination module in order to execute a "Get Message" operation via said Auxiliary Message Control Module to said Main System Memory; (i) providing a Token value from said Auxiliary Message Control Module, to said receiving module, which can be used to calculate the System Main Memory address where the message is stored; (i) reading, by said receiving destination module, the message residing in said message queue in said Main System Memory; (k) returning, by said receiving destination module, of the message Token value just used, back to said Token RAM in said Auxiliary Message Control Module.
Claim 8
Independent Claim
542 words
A system for regulating the sequential transfer of messages between multiple sending modules and multiple receiving modules in a network utilizing a message control system whereby no possible deadlock can occur between two concurrently requesting modules seeking a message token, and wherein the network utilizes digital hardware modules and software emulated digital modules which are placed as software in main system memory, and wherein a central processing module, an auxiliary processor utilizes a main system memory to provide a dedicated message queue for each of "N" digital modules, each identified by a queue number having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware input/output modules and a hardware Auxiliary Message Control module providing algorithmic control sequences for sending messages to dedicated queues in main system memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential Token values in order to access main memory, and additionally utilizing a Control RAM with Read, Write, and Interrupt pointers for said algorithmic control sequences, said system ensuring that all messages will be transferred in the proper time sequential order and with no delays due to deadlocks, said system comprising: (a) queue means in said main system memory being dedicated for each one of said "N" digital modules in the network; (b) means to provide each digital module in said network with a message-queue number, which represents a series of "M" message holding slots in each one of said "N" message queues dedicated to each particular destination module; (c) token RAM means to provide a token value to each requesting module whereby said token value identifies a particular message slot in a message queue dedicated to the said receiving destination module said token value being provided in a rapid sequential fashion which will prevent any deadlock condition with other requesting modules; (d) means, in a said sending module, to calculate a main system memory address for placing a message in it destined for said receiving destination module; (e) means to place a message from said message-sending module into the main memory queue in the slot designated by said token value; (f) means, in said sending module, to return the token value back to said token RAM to indicate that the message from the sending module is now residing in the addressed main memory queue and numbered slot for the receiving destination module; (g) means to signal with an interrupt signal to the receiving destination module to indicate that a message is waiting for the said receiving destination modules; (h) means by said destination module to execute a "get message" operation via said Auxiliary Message Control module to said main system memory; (i) means in said Auxiliary Message Control module to provide a token value to said receiving module which can be used by said receiving module to calculate the system main memory address where the message is stored; (j) means in said receiving destination module to access and read the message residing in said message queue in said main system memory; (k) means in said receiving destination module to return the message token value just used, back to said token RAM in said Auxiliary Message Control module.
Claim 9
Independent Claim
542 words
A system for regulating the sequential transfer of messages between multiple sending modules and multiple receiving modules in a network utilizing a message control system whereby no possible deadlock can occur between two concurrently requesting modules seeking a message token, and wherein the network utilizes digital hardware modules and software emulated digital modules which are placed as software in main system memory, and wherein a central processing module, an auxiliary processor utilizes a main system memory to provide a dedicated message queue for each of "N" digital modules, each identified by a queue number having "M" message slots, which modules are connected via a system bus which bridges to a PCI bus holding a plurality of hardware input/output modules and a hardware Auxiliary Message Control module providing algorithmic control sequences for sending messages to dedicated queues in main system memory for retrieval by a receiving destination module and utilizing a Token RAM to provide sequential Token values in order to access main memory, and additionally utilizing a Control RAM with Read, Write, and Interrupt pointers for said algorithmic control sequences, said system ensuring that all messages will be transferred in the proper time sequential order and with no delays due to deadlocks, said system comprising: (a) queue means in said main system memory being dedicated for each one of said "N" digital modules in the network; (b) means to provide each digital module in said network with a message-queue number, which represents a series of "M" message holding slots in each one of said "N" message queues dedicated to each particular destination module; (c) token RAM means to provide a token value to each requesting module whereby said token value identifies a particular message slot in a message queue dedicated to the said receiving destination module said token value being provided in a rapid sequential fashion which will prevent any deadlock condition with other requesting modules; (d) means, in a said sending module, to calculate a main system memory address for placing a message in it destined for said receiving destination module; (e) means to place a message from said message-sending module into the main memory queue in the slot designated by said token value; (f) means, in said sending module, to return the token value back to said token RAM to indicate that the message from the sending module is now residing in the addressed main memory queue and numbered slot for the receiving destination module; (g) means to signal with an interrupt signal to the receiving destination module to indicate that a message is waiting for the said receiving destination modules; (h) means by said destination module to execute a "get message" operation via said Auxiliary Message Control module to said main system memory; (i) means in said Auxiliary Message Control module to provide a token value to said receiving module which can be used by said receiving module to calculate the system main memory address where the message is stored; (j) means in said receiving destination module to access and read the message residing in said message queue in said main system memory; (k) means in said receiving destination module to return the message token value just used, back to said token RAM in said Auxiliary Message Control module.
Claim 10
Dependent Claim
67 words
The system of claim 5 whereby said means to signal an interrupt to the receiving destination module to indicate that a message is waiting for it, includes: (i) means to generate a hard interrupt signal to the receiving destination module when said receiving destination module is a hardware module; (ii) means to generate a soft interrupt signal when said receiving destination module is a software-emulated digital module.
References Cited (Backward Citations)
US3670306A
Cited
US4649473A
Cited
US4766530A
Cited
US4914653A
Cited
US5333269A
Cited
US5241635A
Cited
US5274637A
Cited
US5357612A
Cited
US5418913A
Cited
US5560019A
Cited
US5491799A
Cited
US5434975A
Cited
US5515537A
Cited
US5704047A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-11-08 | 2003-05-10 | 2003-11-09 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-11-08 | 2007-05-10 | 2007-11-09 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-11-08 | 2011-05-10 | 2011-11-09 | $7700.00 | Window Closed / Lapsed |