IP Library Granted Patent US 7,996,592
Granted Patent B2
US 7,996,592 · App. 09/847,991 · Granted Aug 9, 2011

Cross bar multipath resource controller system and method

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,996,592
App. No.
09/847,991
Granted
Aug 9, 2011
Kind
B2
Abstract

A cross bar multipath resource controller system and method permit multiple processors in a computer system to access various resource of the computer system, such as memory or peripherals, with zero blocking access. In particular, each processor has its own bus so that the processors can each independently access different resources in the computer system simultaneously.

Claims (34)

1. A system comprising:

a plurality of memory resources;

a plurality of peripheral resources;

a plurality of processors;

a memory controller coupled to said plurality of processors and said plurality of memory resources, wherein said memory controller comprises a first resource controller operable to control access by said plurality of processors to said plurality of memory resources using a hardware semaphore unit, wherein said first resource controller is further operable to implement respective buses for coupling said plurality of processors to said plurality of memory resources, wherein said memory controller is further operable to enable each processor of said plurality of processors to simultaneously access a respective portion of a memory resource of said plurality of memory resources, and wherein said memory controller is further operable to enable each of said plurality of processors to have priority access to a respective instruction memory of a plurality of instruction memories; and

a peripheral controller coupled to said plurality of processors and said plurality of peripheral resources, wherein said peripheral controller comprises a second resource controller operable to control access by said plurality of processors to said plurality of peripheral resources using said hardware semaphore unit, and wherein said second resource controller is further operable to implement respective buses for coupling said plurality of processors to said plurality of peripheral resources.

2. The system of claim 1 further comprising:

a timer component coupled to said memory controller and said peripheral controller, said timer component operable to control timing of said memory controller and said peripheral controller.

3. The system of claim 1 , wherein said first resource controller is further operable to enable each of said plurality of processors to simultaneously access a respective memory resource of said plurality of memory resources.

4. The system of claim 1 , wherein said second resource controller is further operable to enable each of said plurality of processors to simultaneously access a respective peripheral resource of said plurality of peripheral resources.

5. The system of claim 1 , wherein said memory controller and said peripheral controller are further operable to enable each processor of said plurality of processors to perform, in parallel, respective portions of a plurality of tasks.

6. The system of claim 1 , wherein said plurality of processors are operable to negotiate for access to at least one shared resource using said hardware semaphore unit, wherein said at least one shared resource is selected from a group consisting of at least one memory resource of said plurality of memory resources and at least one peripheral resource of said plurality of peripheral resources.

7. The system of claim 6 , wherein said hardware semaphore unit is further operable to enable said plurality of processors to communicate with one another.

8. The system of claim 6 , wherein said access to said at least one shared resource is determined based upon information selected from a group consisting of: a chronological ordering of requests for a shared resource, a round-robin access arbitration scheme; a predetermined priority assignment of a given processor to at least one given shared resource; and a predetermined priority assignment of a given processor to at least one given shared resource for a predetermined period of time.

9. The system of claim 1 , wherein said plurality of memory resources, said plurality of peripheral resources, said plurality of processors, said memory controller, and said peripheral controller comprise components of a portable electronic device.

10. A component for negotiating access to a plurality of shared resources, said component comprising:

a memory controller coupled to said plurality of processors and said plurality of memory resources, wherein said memory controller comprises a first resource controller operable to control access by said plurality of processors to said plurality of memory resources using a hardware semaphore unit, wherein said first resource controller is further operable to implement respective buses for coupling said plurality of processors to said plurality of memory resources, wherein said memory controller is further operable to enable each processor of said plurality of processors to simultaneously access a respective portion of a memory resource of said plurality of memory resources, and wherein said memory controller is further operable to enable each of said plurality of processors to have priority access to a respective instruction memory of a plurality of instruction memories; and

a peripheral controller coupled to said plurality of processors and said plurality of peripheral resources, wherein said peripheral controller comprises a second resource controller operable to control access by said plurality of processors to said plurality of peripheral resources using said hardware semaphore unit, and wherein said second resource controller is further operable to implement respective buses for coupling said plurality of processors to said plurality of peripheral resources.

11. The component of claim 10 further comprising:

a timer component coupled to said memory controller and said peripheral controller, said timer component operable to control timing of said memory controller and said peripheral controller.

12. The component of claim 10 , wherein said first resource controller is further operable to enable each of said plurality of processors to simultaneously access a respective memory resource of said plurality of memory resources.

13. The component of claim 10 , wherein said second resource controller is further operable to enable each of said plurality of processors to simultaneously access a respective peripheral resource of said plurality of peripheral resources.

14. The component of claim 10 , wherein said memory controller and said peripheral controller are further operable to enable each processor of said plurality of processors to perform, in parallel, respective portions of a plurality of tasks.

15. The component of claim 10 , wherein said plurality of processors are operable to negotiate for access to at least one shared resource using said hardware semaphore unit, wherein said at least one shared resource is selected from a group consisting of at least one memory resource of said plurality of memory resources and at least one peripheral resource of said plurality of peripheral resources.

16. The component of claim 15 , wherein said hardware semaphore unit is further operable to enable said plurality of processors to communicate with one another.

17. The component of claim 15 , wherein said access to said at least one shared resource is determined based upon information selected from a group consisting of: a chronological ordering of requests for a shared resource; a round-robin access arbitration scheme; a predetermined priority assignment of a given processor to at least one given shared resource; and a predetermined priority assignment of a given processor to at least one given shared resource for a predetermined period of time.

18. The component of claim 10 , wherein said plurality of processors, said memory controller, and said peripheral controller comprise components of a portable electronic device.

19. A controller for negotiating access to a plurality of shared resources, said controller comprising:

a resource arbitration controller operable to control access by said plurality of processors to said plurality of shared resources using a hardware semaphore unit, wherein said resource arbitration controller is further operable to implement respective buses for coupling said plurality of processors to said plurality of shared resources, wherein said resource arbitration controller is further operable to enable each processor of said plurality of processors to simultaneously access a respective portion of a shared resource of said plurality of shared resources, and wherein said resource arbitration controller is further operable to enable each of said plurality of processors to have priority access to a respective instruction memory of a plurality of instruction memories.

20. The controller of claim 19 , wherein said resource arbitration controller is further operable to control access of said plurality of processors to said plurality of shared resources based upon a respective priority value assigned to each of said plurality of processors.

21. The controller of claim 20 , wherein said respective priority value is assigned to each of said plurality of processors using a hardware semaphore unit.

22. The controller of claim 19 , wherein said plurality of shared resources are selected from a group consisting of at least one memory resource and at least one peripheral resource.

23. The controller of claim 19 , wherein said resource arbitration controller is further operable to enable each of said plurality of processors to simultaneously access a respective shared resource of said plurality of shared resources.

24. The controller of claim 19 , wherein said resource arbitration controller is further operable to enable each processor of said plurality of processors to perform, in parallel, respective portions of a plurality of tasks.

Assignments (7)
MERGER Recorded Aug 2, 2007
From: PORTALPLAYER, INC.
To: NVIDIA CORPORATION
Reel/Frame 019668/0704 →
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2007
From: SILICON VALLEY BANK
To: PORTAL PLAYER, INC.
Reel/Frame 018777/0143 →
RELEASE Recorded Jan 10, 2007
From: SILICON VALLEY BANK
To: PORTAL PLAYER, INC.
Reel/Frame 018777/0191 →
SECURITY AGREEMENT Recorded Dec 23, 2003
From: PORTALPLAYER, INC.
To: SILICON VALLEY BANK
Reel/Frame 014829/0897 →
SECURITY AGREEMENT Recorded Mar 31, 2003
From: PORTALPLAYERS, INC.
To: SILICON VALLEY BANK
Reel/Frame 013898/0743 →
SECURITY INTEREST Recorded Oct 10, 2002
From: PORTALPLAYER, INC.
To: CONWAY, KEVIN
Reel/Frame 013358/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2001
From: KIM, JASON SEUNG-MIN; BIGNELL, ROBERT ALAN
To: PORTALPLAYER, INC.
Reel/Frame 011778/0776 →