System and method of distributed initiator-local reorder buffers
AssigneeQUALCOMM Technologies, Inc.
InventorsPhilippe Boucard, Jean-Jacques Lecler
Life of this patent
Estimating the term…
Abstract
A Network-on-Chip (NoC) is provided that performs reordering of transaction responses such as those with requests that cross address mapping boundaries. Ordering is ensured by filtering logic in reorder buffers, some of which include storage to allow multiple simultaneously pending transactions. Transactions are transported by a packet-based transport protocol. The reorder buffering is done at packet level, within the transport topology. Reorder buffers are distributed physically throughout the floorplan of the chip, they have localized connectivity to initiators, and they operate in separate power and clock domains.
Claims14
A network on chip for performing transaction splitting and response reassembly, wherein the network on chip comprises:
- a first initiator for sending requests;
- a second initiator for sending requests;
- a first target for sending responses;
- a second target for sending responses;
- a first reorder buffer for receiving data, wherein the first reorder buffer is coupled to the first initiator, the first target, and the second target;
- and
- a second reorder buffer for receiving data, wherein the second reorder buffer is coupled to the second initiator, the first target, and the second target,
- wherein the second reorder buffer is physically non-adjacent to the first reorder buffer, and
- wherein an address range mapping of the first target and an address range mapping of the second target are striped.
A method of performing a data transfer transaction within a network on chip comprising steps of:
- accepting a primary transaction request, wherein the primary transaction request has a range that spans at least one address mapping boundary between at least two targets, wherein the primary transaction request comes from one of at least two initiators;
- splitting the primary transaction request into at least two secondary transaction requests, wherein each secondary transaction request is configured to result in at least one secondary transaction response;
- sending the at least two secondary transaction requests to the at least two targets;
- arbitrating for at least one target between at least one of the at least two secondary transaction requests and another transaction request;
- and
- reassembling secondary transaction responses to the at least two secondary transaction requests into a primary response to the primary transaction request.
A method of designing a network-on-chip for a chip considering a floorplan, the method comprising steps of:
- determining a connectivity between at least two initiator sockets and at least two target sockets;
- determining an address map of the at least two target sockets within an address space of each of the at least two initiator sockets;
- determining a physical location of each of the at least two initiator sockets and each of the at least two target sockets, within the floorplan;
- and
- determining a location of a reorder buffer, inside a transport topology of connectivity between the at least two initiator sockets and the at least two target sockets;
- and
- determining the physical location of the reorder buffer within the floorplan.
A design tool apparatus comprising:
- at least one processor;
- and
- at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform a data transfer transaction within a network-on-chip, wherein the data transfer transaction comprises steps of:
- accepting a primary transaction request of a range that spans at least one address mapping boundary between at least two targets, wherein the primary transaction request comes from one of at least two initiators;
- splitting the primary transaction request into at least two secondary transaction requests;
- sending the at least two secondary transaction requests to the at least two targets;
- arbitrating for at least one target between at least one of the at least two secondary transaction requests and another transaction request;
- and
- reassembling secondary transaction responses to the at least two secondary transaction requests into a response to the primary transaction request.
Dependencies are inferred from the claim text.