Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

A device and method for providing inter-processor communication in a multi-processor architecture. A post office RAM has a plurality of mailboxes. Each mailbox is write-accessible by one port, but is read-accessible by the other ports. Thus, a processor device on a port has write-access to one mailbox, but can read the other mailboxes in the post office. A transmitting processor communicates with a receiving processor, by utilizing the post office. The transmitting processor writes information into its own mailbox, and signals a receiving processor. The receiving processor determines which of the processor devices signalled it, and reads the information in the transmitting processor's mailbox.

InventorsRyan Feemster, David Dettmer
Original AssigneeAdvanced Micro Devices, Inc.
Current U.S. Classification709/214; 711/163
International Classification: G06F 1314

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US4665482Jun 13, 1983May 12, 1987Honeywell Information Systems Inc.Data multiplex control facility
US4760521Nov 18, 1985Jul 26, 1988White Consolidated Industries, Inc.Arbitration system using centralized and decentralized arbitrators to access local memories in a multi-processor controlled machine tool
US4862354May 5, 1986Aug 29, 1989Honeywell Bull Italia S.p.A.Multiprocessor system with interrupt notification and verification unit
US4873476Sep 23, 1987Oct 10, 1989Fanuc Ltd.Robot control apparatus for controlling a manipulator through a robot arm having a plurality of axes
US4879642Oct 18, 1984Nov 7, 1989Allied-Signal Inc.Servo loop processor in association with a central processing unit for closed loop control of a servo system
US4965707Feb 5, 1990Oct 23, 1990Basic Engineering Ltd.Apparatus for simulating flames
US4970447Feb 9, 1989Nov 13, 1990Fanuc Ltd.Software servo control apparatus for use in an injection molding machine
US5038276Mar 16, 1990Aug 6, 1991Data processing system having dual arbiter for controlling access to a system bus
US5072373Jan 17, 1991Dec 10, 1991Encore Computer U.S., Inc.Real-time data processing system
US5127089Jul 3, 1989Jun 30, 1992Motorola, Inc.Synchronous bus lock mechanism permitting bus arbiter to change bus master during a plurality of successive locked operand transfer sequences after completion of current sequence
US5136714Dec 4, 1989Aug 4, 1992International Business Machines CorporationMethod and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US5142683Oct 7, 1991Aug 25, 1992Unisys CorporationIntercomputer communication control apparatus and method
US5142689May 25, 1990Aug 25, 1992Siemens Nixdort Informationssysteme AGProcess for the preparation of the connection of one of several data processor devices to a centrally synchronized multiple line system
US5146596Jan 29, 1990Sep 8, 1992Unisys CorporationMultiprocessor multifunction arbitration system with two levels of bus access including priority and normal requests
US5161209Jan 24, 1992Nov 3, 1992Sony CorporationServo control device for a VTR
US5187796Jul 16, 1990Feb 16, 1993Computer Motion, Inc.Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US5193197Aug 30, 1990Mar 9, 1993Digital Equipment CorporationApparatus and method for distributed dynamic priority arbitration for access to a shared resource
US5202966Sep 6, 1991Apr 13, 1993Rockwell International CorporationCentralized bus arbitration circuit
US5271020Dec 21, 1990Dec 14, 1993Intel CorporationBus stretching protocol for handling invalid data
US5319753Sep 29, 1992Jun 7, 1994Zilog, Inc.Queued interrupt mechanism with supplementary command/status/message information

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6189049Aug 10, 1998Feb 13, 2001Micron TechnologyMethod for operating processor with internal register for peripheral status
US6219720Aug 10, 1998Apr 17, 2001Micron Technology, Inc.Core logic unit with internal register for peripheral status
US6233627Aug 10, 1998May 15, 2001Micron Technology, Inc.Processor with internal register for peripheral status
US6338098Jan 26, 2001Jan 8, 2002Micron Technology, Inc.Processor with internal register for peripheral status
US6374320Aug 10, 1998Apr 16, 2002Micron Technology, IncMethod for operating core logic unit with internal register for peripheral status
US6393507Jan 17, 2001May 21, 2002Micron Technology, Inc.Computer system including core logic unit with internal register for peripheral status
US6912716Nov 5, 1999Jun 28, 2005Agere Systems Inc.Maximized data space in shared memory between processors
US7233977Dec 18, 1998Jun 19, 2007EMC CorporationMessaging mechanism employing mailboxes for inter processor communications
US7617346Feb 27, 2007Nov 10, 2009Integrated Device Technology, Inc.Rapid input/output doorbell coalescing to minimize CPU utilization and reduce system interrupt latency
US7840762Aug 23, 2007Nov 23, 2010Samsung Electronics Co., LtdMulti-path accessible semiconductor memory device having mailbox areas and mailbox access control method thereof
US7870313Feb 27, 2007Jan 11, 2011Integrated Device Technology, Inc.Method and structure to support system resource access of a serial device implementating a lite-weight protocol
US7996574May 3, 2007Aug 9, 2011EMC CorporationMessaging mechanism for inter processor communication
US8019948Oct 21, 2010Sep 13, 2011SAMSUNG Electronics Co., Ltd.Multi-path accessible semiconductor memory device having mailbox areas and mailbox access control method thereof
US8078838Sep 23, 2008Dec 13, 2011Samsung Electronics Co., Ltd.Multiprocessor system having multiport semiconductor memory with processor wake-up function responsive to stored messages in an internal register
US8094677Feb 27, 2007Jan 10, 2012Integrated Device Technology, Inc.Multi-bus structure for optimizing system performance of a serial buffer

Claims

1. An apparatus for communication between a plurality of processor devices, comprising:

a post office memory including a plurality of mailbox memories;
each of the mailbox memories being write accessible at any time only by a corresponding owner processor device, and read-accessible by the corresponding owner processor device and other processor devices of the plurality of processor devices at times determined independently of a write access;
the plurality of processor devices including a transmitting processor device and a receiving processor device;
a mailbox memory corresponding to the transmitting processor device containing information to be transferred to the receiving processor device; and
the transmitting processor device being determined prior to the receiving processor device reading the information to be transferred.

2. An apparatus as in claim 1, wherein:

a signal line provides communication between the processor devices; and
a subroutine in the receiving processor device, corresponding to the signal line, reads the mailbox memory corresponding to the transmitting processor device.

3. An apparatus as in claim 2, wherein the signal line is a trigger, and further comprising a vector register pointing to the subroutine.

4. An apparatus as in claim 3, wherein the plurality of processor devices comprises at least three processor devices, including at least two transmitting processor devices and at least one receiving processor device, and a signal line between the receiving processor device and each of the transmitting processor devices, further comprising:

(a) an OR gate producing a logical-OR of the signal lines; and
(b) a mailbox status register associated with the receiving processor device, each of the signal lines setting a status of one of the transmitting processor devices in the mailbox status register.

5. An apparatus as in claim 3, having at least three processor devices, including at least two transmitting processor devices and at least one receiving processor device, and a signal line between the receiving processor device and each of the transmitting processor devices, further comprising:

(a) an OR gate producing a logical-OR of the signal lines;
(b) a mailbox status register associated with the receiving processor device, each of the signal lines setting a status of one of the transmitting processors in the mailbox status register.

6. An apparatus as in claim 2, wherein at least one of the processor devices is external to a chip, and the other processor devices are on the chip.

7. An apparatus as in claim 6, wherein at least two of the processor devices on the chip are streamlined signal processors, and one of the processor devices on the chip is a master microprocessor.

8. An apparatus as in claim 2, wherein the signal line is an interrupt, and wherein the subroutine is an interrupt service routine addressed by the interrupt.

9. An apparatus as in claim 1, wherein the post office memory is a multi-port random access memory (RAM), and each of the mailbox memories is a predetermined area of the RAM;

each predetermined area of the RAM further comprising means for providing write-access for only one of the processor devices to the predetermined area of the RAM from one port of the RAM; and
means for providing read-access to the RAM for the processor devices from each port of the RAM.

10. An apparatus as in claim 9, wherein the multi-port RAM comprises a 4-port RAM.

11. An apparatus as in claim 10, wherein each predetermined area of RAM comprises 8 bytes.

12. An apparatus as in claim 1, further comprising:

a plurality of ports corresponding to the plurality of processor devices; and
wherein each of the mailbox memories comprises,
a plurality of register blocks, each of the register blocks including,
storage for a predetermined number of data bits,
a single data-in bus connection,
a plurality of data-out bus connections, one data-out bus connection for each of the plurality of ports,
a plurality of read input lines, one read input line from each of the plurality of ports, and
a single write line, the write line coming from the port corresponding to the owner processor device.

13. A method of communicating among a plurality of processor devices, including a transmitting processor device and a receiving processor device, utilizing a post office with a plurality of mailboxes, the method comprising the steps of:

writing information to be transferred from a transmitting processor device to a receiving processor device into a predetermined one of the mailboxes in the post office at any time determined by the transmitting processor device;
signaling the receiving processor device with the transmitting processor device;
determining in the receiving processor device, prior to the receiving processor reading the information, which of the processor devices signalled the receiving processor device; and
reading the information from the predetermined mailbox with the receiving processor device an a time determined by the receiving processor.

14. The method of claim 13, wherein the signalling step comprises the transmitting processor device issuing an interrupt to the receiving processor device.

15. The method of claim 14, the determining step including the receiving processor device executing an interrupt subroutine corresponding to the interrupt, and the reading step being performed by the interrupt subroutine.

16. The method of claim 15, further comprising the step of the transmitting processor device setting a status register indicating the transmitting processor device, and the determining step comprising the receiving processor device reading the status register to determine the transmitting processor device.

17. The method of claim 13, wherein the signalling step comprises the transmitting processor device issuing a trigger to the receiving processor device.

18. The method of claim 17, the determining step including executing a subroutine pointed at in a vector register corresponding to the trigger, and the reading step being performed by the subroutine.

19. The method of claim 18, further comprising the step of the transmitting processor device setting a mailbox status register indicating the transmitting processor device, and the determining step comprising the receiving processor device reading the mailbox status register to determine the transmitting processor device.

20. The method of claim 13, further comprising the step of the receiving processor device acting on the information.

21. The method of claim 13, wherein the writing step occurs via a first port which is reserved to the transmitting processor device.

22. A method of bi-directional communication between at least two processor devices, utilizing a post office RAM with a plurality of mailboxes, the method comprising the steps of:

writing information to be transferred from a first processor device to a second processor device into a first mailbox in the post office RAM, and signaling the second processor device with the first processor device;
writing information to be transferred from the second processor device to a first processor device into a second mailbox in the post office RAM, and signaling the first processor device with the second processor device;
determining in the second processor device, prior to the second processor device reading the first mailbox, which of the processor devices signalled the second processor device;
determining in the first processor device, prior to the first processor device reading the second mailbox, which of the processor devices signalled the first processor device;
reading the information in the first mailbox with the second processor device; and
reading the information in the second mailbox with the first processor device.

23. A post office RAM comprising:

a multi-port RAM, having a plurality of cells and a plurality of ports, any one of the RAM cells being read-accessible by the plurality of ports, and write-accessible by only one of the ports.