Microprocessor architecture having alternative memory access paths
First Claim
1. A system comprising:
- non-sequential access memory;
a processor that is operable to process a first portion of instructions included in an executable file;
a communication bus via which the processor sends a second portion of instructions with specific syntax as appearing in the executable file to a heterogeneous functional unit, wherein the first portion of instructions includes first instructions that are recognized by a first instruction set of the processor and the second portion of instructions includes second instructions that are not recognized by the first instruction set of the processor;
the heterogeneous functional unit that is operable to execute the second portion of instructions according to the specific syntax;
cache memory;
a cache-access path in which block data is communicated between said non-sequential access memory and said cache memory for accesses of said block data by said processor for processing said first portion of instructions; and
a direct-access path in which individually-addressed data is communicated to/from said non-sequential access memory for accesses of said individually-addressed data by said heterogeneous functional unit for processing said second portion of instructions.
10 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed to a system and method which employ two memory access paths: 1) a cache-access path in which block data is fetched from main memory for loading to a cache, and 2) a direct-access path in which individually-addressed data is fetched from main memory. The system may comprise one or more processor cores that utilize the cache-access path for accessing data. The system may further comprise at least one heterogeneous functional unit that is operable to utilize the direct-access path for accessing data. In certain embodiments, the one or more processor cores, cache, and the at least one heterogeneous functional unit may be included on a common semiconductor die (e.g., as part of an integrated circuit). Embodiments of the present invention enable improved system performance by selectively employing the cache-access path for certain instructions while selectively employing the direct-access path for other instructions.
219 Citations
55 Claims
-
1. A system comprising:
-
non-sequential access memory; a processor that is operable to process a first portion of instructions included in an executable file; a communication bus via which the processor sends a second portion of instructions with specific syntax as appearing in the executable file to a heterogeneous functional unit, wherein the first portion of instructions includes first instructions that are recognized by a first instruction set of the processor and the second portion of instructions includes second instructions that are not recognized by the first instruction set of the processor; the heterogeneous functional unit that is operable to execute the second portion of instructions according to the specific syntax; cache memory; a cache-access path in which block data is communicated between said non-sequential access memory and said cache memory for accesses of said block data by said processor for processing said first portion of instructions; and a direct-access path in which individually-addressed data is communicated to/from said non-sequential access memory for accesses of said individually-addressed data by said heterogeneous functional unit for processing said second portion of instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
non-sequential access main memory; and a die comprising; cache memory, a micro-processor core that is operable to process a first portion of instructions included in an executable file and that is operable to access data via a cache-access path in which block data is communicated between said non-sequential access main memory and said cache memory, a communication bus via which the micro-processor core is operable to send a second portion of instructions with specific syntax as appearing in the executable file to a heterogeneous functional unit, and the heterogeneous functional unit that is operable to execute the second portion of instructions according to the specific syntax and that is operable to access data via a direct-access path in which individually-addressed data is communicated between said heterogeneous functional unit and said non-sequential access main memory. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 51)
-
-
23. A method comprising:
-
decoding, by a processor core of a system, an instruction of an executable file being executed, wherein the executable file includes native instructions that are recognized by a native instruction set of the processor core and extended instructions that are not recognized by the native instruction set of the processor core; determining, by said processor core, whether the decoded instruction is one of said native instructions or is one of said extended instructions; when determined that the decoded instruction is one of said native instructions, executing the decoded instruction by said processor core according to said processor core'"'"'s native instruction set, wherein said processor core accesses data for executing said decoded instruction via a cache-access path in which block data is fetched from a non-sequential access main memory of the system for loading to a cache of said system; and when determined that the decoded instruction is one of said extended instructions, sending the decoded instruction to a heterogeneous functional unit of the system, where the heterogeneous functional unit has an extended instruction set that recognizes said extended instruction, said heterogeneous functional unit being operable to execute the decoded extended instruction according to said extended instruction set, and wherein said heterogeneous functional unit accesses data for executing said decoded extended instruction via a direct-access path in which individually-addressed data is fetched from said non-sequential access main memory. - View Dependent Claims (24, 25, 26, 33, 34, 35, 36, 52)
-
-
27. A system comprising:
-
a main memory subsystem comprising non-sequential access main memory; a processing subsystem comprising; a microprocessor core having a first instruction set for executing a first portion of instructions included in an executable file, a communication bus via which the microprocessor core is operable to send a second portion of instructions having specific syntax as appearing in the executable file to a heterogeneous functional unit, the heterogeneous functional unit having a second instruction set for executing the second portion of instructions according to the specific syntax, and cache memory; a cache-access path in which block data is fetched from said non-sequential access main memory for loading to said cache memory for processing of said first portion of instructions by said microprocessor core; and a direct-access path in which individually-addressed data is fetched from said non-sequential access main memory for processing of said second portion of instructions by said heterogeneous functional unit. - View Dependent Claims (28, 29, 30, 31, 32, 53)
-
-
37. A system comprising:
-
non-sequential access memory; a processor having a first instruction set, said processor operable to execute a first portion of instructions included in an executable file that are defined by the first instruction set, where the executable file includes said first portion of instructions that are defined by the first instruction set and further includes a second portion of instructions that are not defined by the first instruction set; a communication bus via which the processor sends the second portion of instructions included in the executable file to a heterogeneous co-processor; the heterogeneous co-processor having an extended instruction set that defines said second portion of instructions, said heterogeneous co-processor operable to execute the second portion of instructions according to its extended instruction set; cache memory; a cache-access path in which block data is communicated between said non-sequential access memory and said cache memory for accesses of said block data by said processor for executing said first portion of instructions; and a direct-access path in which individually-addressed data is communicated to/from said non-sequential access memory for accesses of said individually-addressed data by said heterogeneous co-processor for executing said second portion of instructions. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 54)
-
-
48. A method comprising:
-
decoding, by a processor core of a system, an instruction of an executable file being executed, wherein the processor core has a first instruction set, and wherein the executable file includes first portion of instructions that are defined by the first instruction set of the processor core and further includes a second portion of instructions that are not defined by the first instruction set of the processor core; determining, by said processor core, whether the decoded instruction is of a first class or a second class, where an instruction defined by the first instruction set of the processor core is of said first class and an instruction that is not defined by the first instruction set of the processor core is of said second class; when determined that the decoded instruction is of said first class, executing the decoded instruction by said processor core according to said first instruction set, wherein said processor core accesses data for executing said decoded instruction via a cache-access path in which block data is fetched from a non-sequential access main memory of the system for loading to a cache of said system; and when determined that the decoded instruction is of said second class, sending the decoded instruction to a heterogeneous co-processor of the system, where the heterogeneous co-processor has an extended instruction set that defines said instruction of said second class, said heterogeneous co-processor being operable to execute the instruction of said second class according to said extended instruction set, and wherein said heterogeneous co-processor accesses data for executing said decoded instruction via a direct-access path in which individually-addressed data is fetched from said non-sequential access main memory. - View Dependent Claims (49, 50, 55)
-
Specification