Tasks distribution in a multi-processor including a translation lookaside buffer shared between processors
First Claim
1. A system comprising:
- a first processor;
a second processor coupled to the first processor, and only the first processor configured to execute a single operating system, the second processor not executing an operating system;
a middle layer software configured to execute on the first processor and configured to distribute tasks to run on either or both processors; and
a shared translation lookaside buffer (TLB) configured to contain a plurality of entries in which virtual-to-physical address translations are stored, each entry also comprising a task ID field in which a task ID associated with the corresponding translation and with a task running on the first or second processor is stored, wherein at least one of the shared TLB entries are invalidated, and those entries that are invalidated have task IDs that are associated with tasks that are running or have run on only one of the first or second processors.
2 Assignments
0 Petitions
Accused Products
Abstract
A system comprises a first processor, a second processor coupled to the first processor, an operating system that executes exclusively only on the first processor and not on the second processor, and a middle layer software running on the first processor and that distributes tasks to run on either or both processors. A synchronization unit coupled to the first and second processors also may be provided to synchronize the processors. Further still, a translation lookaside buffer may be included that is shared between the processors. Each entry in the translation lookaside buffer (“TLB”) may include a task identifier to permit the operating system or middle layer software to selectively flush only some of the TLB entries (e.g., the entries pertaining to only one of the processors).
40 Citations
15 Claims
-
1. A system comprising:
-
a first processor; a second processor coupled to the first processor, and only the first processor configured to execute a single operating system, the second processor not executing an operating system; a middle layer software configured to execute on the first processor and configured to distribute tasks to run on either or both processors; and a shared translation lookaside buffer (TLB) configured to contain a plurality of entries in which virtual-to-physical address translations are stored, each entry also comprising a task ID field in which a task ID associated with the corresponding translation and with a task running on the first or second processor is stored, wherein at least one of the shared TLB entries are invalidated, and those entries that are invalidated have task IDs that are associated with tasks that are running or have run on only one of the first or second processors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method usable in a multi-processor system, comprising:
-
executing a single operating system in the multi-processor system, the single operating system executing on only one of a plurality of processors, the remaining ones of the plurality of processors not executing an operating system; distributing tasks to each of the plurality of processors by middle layer software running on the processor on which the operating system executes, wherein each task has a unique task identifier value and the method further comprises writing virtual-to-physical address translations and task identifier values associated with the task to which the translations pertain into a translation lookaside buffer that is shared between the plurality of processors; and selecting task identifier values and invalidating entries in the translation lookaside buffer that contain the selected task identifier values and not invalidating other entries in the translation lookaside buffer. - View Dependent Claims (12, 13, 14, 15)
-
Specification