Method and apparatus for communicating between multiple functional units in a computer environment
First Claim
1. A processor, comprising:
- a memory;
a plurality of functional units;
a plurality of physical busses interconnecting the memory and functional units;
at least one physical bus arbiter for each of said physical busses for allocating mastership of the bus to the functional units; and
a virtual bus, connected to at least two of said functional units, and not associated with any of the physical busses, the virtual bus receiving a request for a physical bus from one of the plurality of functional units and assigning an available one of the plurality of physical busses to said functional unit.
1 Assignment
0 Petitions
Accused Products
Abstract
A CPU includes a number of functional units that cooperate together to execute instructions. On-chip memory is divided into several sections, each of which is connected to an associated internal bus. All of the functional units are connected to each of the internal busses so that each of the functional units can read from and write to all memory locations. To conduct a transaction with memory, a functional unit determines which memory location it requires, and then arbitrates for mastership of the bus associated with the section of memory containing that memory location. By providing two or more internal busses, two or more bus transactions can occur simultaneously. A virtual bus is provided to facilitate transactions between functional units. The virtual bus is a bus arbiter without an associated physical bus. To conduct a transaction with another functional unit, the functional unit arbitrates for mastership of the virtual bus, the virtual bus monitors the internal busses or communicates with the other bus arbiters to determine which of the internal busses is unoccupied and, upon receiving a request to access the virtual bus, assigns one of the internal busses to the requesting functional unit. Using a virtual bus is advantageous since requesting access to the virtual bus has the affect of arbitrating for each of the physical busses simultaneously. Thus, the amount of time spent arbitrating for access to the physical busses is minimized. Also, since the physical busses typically do not run at 100% capacity, allocating use of the physical busses to non-memory transactions maximizes use of the physical busses without significantly distracting from the ability of the functional units to access memory. Finally, using a virtual bus instead of an additional physical bus takes up much less space than would be required if a dedicated physical bus were provided for transactions between functional units.
92 Citations
16 Claims
-
1. A processor, comprising:
-
a memory;
a plurality of functional units;
a plurality of physical busses interconnecting the memory and functional units;
at least one physical bus arbiter for each of said physical busses for allocating mastership of the bus to the functional units; and
a virtual bus, connected to at least two of said functional units, and not associated with any of the physical busses, the virtual bus receiving a request for a physical bus from one of the plurality of functional units and assigning an available one of the plurality of physical busses to said functional unit. - View Dependent Claims (2, 3, 4)
-
-
5. A processor, comprising:
-
a first section of memory;
a first physical bus associated with said first section of memory;
a first bus arbitration unit associated with said first physical bus;
a second section of memory;
a second physical bus associated with said second section of memory;
a second bus arbitration unit associated with said second physical bus;
a virtual bus comprising a third bus arbitration unit and no associated physical bus;
a plurality of functional units, connected to the first physical bus for conducting transactions with the first section of memory, connected to the second physical bus for conducting transactions with the second section of memory, and connected to the virtual bus for conducting transactions with each other; and
wherein conducting transactions between a first functional unit and the first section of memory further comprises arbitrating for mastership of the first physical bus, conducting transactions between the first functional unit and the second section of memory further comprises arbitrating for mastership of said second physical bus, and conducting transactions between the first functional unit and any other of the plurality of functional units further comprises arbitrating for mastership of the virtual bus, which determines an available physical bus, and the virtual bus assigns said available physical bus to the first functional unit. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of satisfying requests in a system comprising a plurality of sections of memory, a physical bus associated with each of the plurality of sections of memory, a plurality of functional units, wherein each functional unit is connected to each physical bus, and a virtual bus, comprising:
-
satisfying a first request between a first section of memory and a first functional unit by arbitrating for the physical bus associated with a first section of memory; and
satisfying a second request between the first functional unit and a second functional unit by arbitrating for mastership of the virtual bus, and upon obtaining mastership of the virtual bus, the virtual bus assigning an available physical bus to satisfy the second request. - View Dependent Claims (16)
determining that there is an available physical bus, and assigning said available physical bus to the second request;
determining that there are no available physical busses, determining that the second request is of higher priority than a currently executing request, and assigning the second request to a physical bus in place of said currently executing request; and
determining that there are no available physical busses, determining that the second request is not of higher priority than any currently executing requests, and waiting for up to a predetermined number of cycles for an available physical busses.
-
Specification