Claims
- 1. A computer system comprising:
a processor that is configured to execute the program instructions that are contained in a memory; and a memory access system that includes:
a plurality of instruction latches, each instruction latch of the plurality of instruction latches being associated with a corresponding partition of a plurality of cyclically sequential partitions of the memory; wherein the memory access system is configured to contemporaneously:
determine whether an instruction addressed by the processor is contained in a first instruction latch of the plurality of instruction latches, based on an identification of the partition of the memory corresponding to the addressed instruction, load a first plurality of instructions, including the addressed instruction, from the memory and into the first instruction latch, if the addressed instruction is not in the first instruction latch, and load a second plurality of instructions from the memory and into a second instruction latch of the plurality of instruction latches, if the second plurality of instructions is not in the second instruction latch, so that the first and second plurality of items are available for direct access by the processor from the corresponding first and second instruction latches.
- 2. The computer system of claim 1, further including
a plurality of address latches corresponding to the plurality of instruction latches, and wherein the memory access system is further configured to store a segment identifier associated with each plurality of instructions that is loaded into each instruction latch into a corresponding address latch of the plurality of address latches.
- 3. The computer system of claim 2, wherein
the addressed instruction is addressed by an address that includes, as discrete bit-fields: the segment identifier, the identification of the partition of the memory, and a word identifier, and the word identifier identifies a location in the first instruction latch corresponding to the addressed instruction.
- 4. The computer system of claim 3, wherein
the memory access system is configured to determine whether the addressed instruction is contained in the first instruction latch by comparing the segment identifier of the addressed instruction to the segment identifier that is stored in the address latch associated with the first instruction latch.
- 5. The computer system of claim 1, further including the memory.
- 6. The computer system of claim 1, wherein the processor is an ARM processor.
- 7. The computer system of claim 1, wherein
the first and second plurality of instructions contain a same number of instructions, and the number of instructions is determined based on an execution time of the processor to execute the number of instructions and an access time to effect the load of the sets of instructions.
- 8. The computer system of claim 1, wherein
the memory access system is also configured to allow a selective disabling of the load of the second plurality of instructions from the memory.
- 9. The computer system of claim 1, wherein
each of the plurality of first and second instruction latches include a number of instruction latches that is based on a ratio of an access delay of the memory and an instruction cycle time of the processor, so that the load of the second plurality of instructions is effected within a time required to execute the first plurality of instructions.
- 10. The computer system of claim 1, wherein
the memory access system further comprises a plurality of data latches, and the memory access system is further configured to:
determine whether a data item addressed by the processor is contained in a data latch of the plurality of data latches, and load a first plurality of data items, including the addressed data item, from the memory and into the first data latch, if the addressed data item is not in the data latch.
- 11. The computer system of claim 10, wherein
the memory access system is further configured to:
load a second plurality of data items from the memory and into a second data latch of the plurality of data latches, if the second plurality of data items is not in the second data latch, so that the first and second plurality of data items are available for direct access by the processor from the corresponding first and second data latches.
- 12. A microcontroller comprising:
a memory that is configured to store program instructions, a processor that is configured to execute the program instructions that are stored in the memory, and a memory accelerator, operably coupled between the processor and the memory, that is configured to receive select program instructions from the memory and to provide an addressed instruction of the select program instructions to the processor; wherein the memory and the memory accelerator are operably coupled to each other via a plurality of access paths, and the memory accelerator is configured
to receive a first set of instructions from the memory via a first access path of the plurality of access paths, based on an instruction address that is provided by the processor corresponding to the addressed instruction, and to receive a second set of instructions from the memory via a second access path of the plurality of access paths,
the second set of instructions having addresses that are sequential to addresses of the first set of instructions, and to provide the addressed instruction and subsequent instructions to the processor from the first and second set of instructions contained in the memory accelerator.
- 13. The microcontroller of claim 12, wherein
the plurality of access paths comprises four access paths,
each access path corresponding to a cyclically sequential quadrant of the memory.
- 14. The microcontroller of claim 12, wherein the memory accelerator includes:
a plurality of instruction latches corresponding to the plurality of access paths, including a first instruction latch that receives the first set of instructions, and a second instruction latch that receives the second set of instructions, a plurality of address latches corresponding to the plurality of instruction latches, each address latch of the plurality of address latches being configured to store an address associated with the set of instructions stored in the corresponding instruction latch, wherein the memory accelerator is configured to compare the address associated with the set of instructions stored in the corresponding instruction latch to the instruction address that is provided by the processor, to forego receiving the first set of instructions from the memory when the corresponding instruction latch contains the addressed instruction.
- 15. The microcontroller of claim 14, wherein
each instruction latch is configured to contain four sequentially addressed instructions.
- 16. The microcontroller of claim 14, further including:
a plurality of word multiplexers corresponding to the plurality of instruction latches that are each configured to select an instruction from the set of instructions stored in the instruction latch, based on a word address contained within the instruction address, and a partition multiplexer operably coupled to each of the plurality of word multiplexers that is configured to select the instruction selected by a particular word multiplexer, based on a partition address that is contained within the instruction address.
- 17. The microcontroller of claim 12, wherein
the memory accelerator is also configured to allow a selective disabling of the receiving of the second plurality of instructions from the memory.
- 18. The microcontroller of claim 12, wherein
each of the first and second sets of instruction include a number of instructions that is based on a ratio of an access delay associated with the memory and an instruction cycle time of the processor.
- 19. The microcontroller of claim 12, wherein
the memory accelerator is further configured
to receive a set of data items from the memory via an other access path of the plurality of access paths, based on a data address that is provided by the processor, and to provide the addressed data item to the processor from the set of data items contained in the memory accelerator.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to concurrently filed U.S. patent application “CYCLICALLY SEQUENTIAL MEMORY PREFETCH”, Ser. No. ______ (Attorney Docket US018012).