MULTI-CORE ARCHITECTURE WITH HARDWARE MESSAGING

Information

  • Patent Application
  • 20070180310
  • Publication Number
    20070180310
  • Date Filed
    January 26, 2007
    18 years ago
  • Date Published
    August 02, 2007
    17 years ago
Abstract
Disclosed herein are a system and method for designing digital circuits. In some embodiments, the digital circuits include processors having dedicated messaging hardware that enable processor cores to minimize interrupt activity related to inter-core communications. The messaging hardware receives and parses any message in its entirety prior to passing the contents of the message on to the digital circuit. In other embodiments, the digital circuit functionalities are partitioned across individual cores to enable parallel execution. Each core may be provided with standardized messaging hardware that shields internal implementation details from all other cores. This modular approach accelerates development and testing, and renders parallel circuit design to more efficiently attain feasible speedups. These digital circuit cores may be homogenous or heterogeneous.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of various disclosed embodiments, reference will now be made to the accompanying drawings in which:



FIG. 1 shows an illustrative integrated circuit device;



FIG. 2 shows an illustrative embodiment of a parallel processing system;



FIG. 3 shows an illustrative embodiment of control and data flow in the system;



FIG. 4 shows an illustrative embodiment of message scheduling and input data;



FIG. 5 shows an illustrative embodiment of an overview of the address and data buses;



FIG. 6 shows a flowchart according to one embodiment;



FIG. 7 shows a more detailed flowchart in accordance with one embodiment; and



FIG. 8 shows an illustrative embodiment of the system of nodes that connect with memory.


Claims
  • 1. A system comprising a plurality of processing nodes integrated on a semiconductor chip, each processing node including: a processing core; andmessaging hardware that includes: at least one input data buffer to receive data transfer messages via an interconnect;at least one output data buffer to send output data via an interconnect; andat least one mailbox that receives control messages specifying an output data destination, wherein in response to a control message the mailbox initiates operation of the processing core to process data from the input data buffer and provide output data to the output data buffer, and wherein the mailbox configures the output data buffer to send the output data to said output data destination.
  • 2. The system of claim 1, wherein processing core has multiple threads, and wherein the mailbox initiates operation of a thread specified by the control message.
  • 3. The system of claim 2, wherein the processing core completes the operations initiated by the control message before initiating operations in response to a subsequent control message.
  • 4. The system of claim 1, wherein at least one of the plurality of processing nodes has a processing core that is heterogeneous with respect to another processing node.
  • 5. The system of claim 4, further comprising a shared memory node integrated on the shared semiconductor chip, the shared memory node storing program instructions for heterogeneous processing nodes.
  • 6. The system of claim 5, wherein the shared memory node includes: a memory array; andmessaging hardware that initiates a thread to access memory in response to a control message from one of the plurality of processing nodes.
  • 7. The system of claim 6, further comprising a network of node interconnections to interconnect the plurality of processing nodes and the shared memory node.
  • 8. The system of claim 7, wherein the network of node interconnections comprises point-to-point connections that transport message packets.
  • 9. The system of claim 7, wherein the network is a packet-switched network having a star topology.
  • 10. A data processing method comprising: providing a shared memory node on a semiconductor chip; andproviding heterogeneous processing nodes on the semiconductor chip,wherein the heterogeneous processing nodes each include messaging hardware that communicate with the shared memory node and other processing nodes using messages,wherein each message includes a thread identifier that indicates a thread to be initiated on a destination node once the message has been received.
  • 11. The method of claim 10 wherein the shared memory node stores program instructions for nodes having different instruction sets.
  • 12. The method of claim 11, further comprising: receiving at each of the processing nodes at least one control message that causes that processing node to retrieve program instructions from the shared memory node for each of multiple threads on that processing node.
  • 13. The method of claim 12, further comprising: receiving by at least one of the processing nodes a data transfer message and a control message, wherein the control message causes the messaging hardware to initiate a thread specified by the control message, and wherein the thread processes the data from the data transfer message to produce output data.
  • 14. The method of claim 13, wherein the control message further causes the messaging hardware to prepare an output buffer to send the output data to a destination specified by the control message.
  • 15. The method of claim 14, wherein the output buffer sends the output data as a sequence of data transfer messages each having a header, and wherein the output buffer automatically appends a termination message once the thread finishes processing.
  • 16. The method of claim 13, wherein the messaging hardware enables a local core to complete a previous task before initiating said thread in response to the control message.
  • 17. The method of claim 10, wherein the messaging hardware includes: data buffers that receive data transfer messages via an interconnect;at least one output data buffer that sends output data via an interconnect; andmailboxes that receive control messages specifying an output data destination.
  • 18. The method of claim 10, further comprising: transporting messages between processing nodes using an interconnection network having a star configuration.
  • 19. The method of claim 10, further comprising: transporting messages between processing nodes using an interconnection network having a pipeline configuration.
Provisional Applications (2)
Number Date Country
60764497 Feb 2006 US
60764533 Feb 2006 US