Claims
- 1. A digital system, comprising;a microprocessor having at least a first load/store unit and a second load/store unit; a memory subsystem having at least first memory port connected to the first load/store unit and a second memory port connected to the second load/store unit; address generation circuitry in the first load/store unit having a first address output connected to the first memory port and a second address output selectively connected to the second memory port, the address generation circuitry operable to provide a first address on the first address output and a second address on the second address output; and an extraction circuit connected to the first memory port, wherein the extraction circuit is operable to provide a first non-aligned data item to the first load/store unit extracted from a first data item accessed in response to the first address and from a second data item accessed in response to the second address.
- 2. The digital system of claim 1, further comprising insertion circuitry connected to the first memory port, wherein the insertion circuitry is operable to receive a second non-aligned data item from the first load/store unit and to store a first portion of the second non-aligned data item in a first data item in the memory subsystem responsive to the first address and to store a second portion of the second non-aligned data item in a second data item in the memory subsystem responsive to the second address.
- 3. The digital system of claim 2, wherein the address generation circuitry is operable to provide the first address and second address to the memory subsystem to access the memory subsystem in response to a first instruction type and to provide only the first address to the memory subsystem to access the memory subsystem in response to a second instruction type.
- 4. The digital system of claim 3, wherein the first instruction type is a non-aligned access type, and wherein the second instruction type is an aligned access type.
- 5. The digital system of claim 4, wherein the second load/store unit comprises address generation circuitry with a first address output selectively connected to the second memory port, such that the second load/store unit is operable to transfer a data item to the second memory port in parallel with the first load/store unit transferring a data item to the first memory port.
- 6. The digital system of claim 5, wherein the address generation circuitry of the second load/store unit is operable to provide the first address on a second address output selectively connected to the first memory port and the second address on the first address output for accessing the memory subsystem for an instruction of the first type.
- 7. The digital system of claim 5, wherein the second load/store unit is operable to execute a non-memory access instruction in parallel with the first load/store unit accessing the memory subsystem for an instruction of the first type.
- 8. The digital system of claim 1, wherein the memory subsystem is a cache memory.
- 9. The digital system of claim 1, wherein the microprocessor is a digital signal processor.
- 10. The digital system of claim 1 being a cellular telephone, further comprising:an integrated keyboard connected to the CPU via a keyboard adapter; a display, connected to the CPU via a display adapter; radio frequency (RF) circuitry connected to the CPU; and an aerial connected to the RF circuitry.
- 11. The digital system of claim 1, wherein the address circuitry comprises:combination circuitry connected to receive a base address value and an offset value, operable to combine the base address value and the offset value to form a base-offset address, wherein the base-offset address is selectively coupled to the first address output; and adder circuitry connected to receive the base-offset address and a line size value, operable to add the line size value to the base-offset address to form an augmented address, wherein the augmented address is selectively coupled the second address output.
- 12. The digital system of claim 1, wherein the memory subsystem comprises:a plurality of memory banks connected to the extraction circuitry; decode circuitry connected to the first memory port and to the second memory port; and a plurality of address multiplexers connected respectively to the plurality of memory banks with first input of each of the plurality of multiplexers connected a receive an address from the first memory port and a second input connected to receive an address from the second memory port, each of the plurality of address multiplexers having a select control separately connected to the decode circuitry, such that the decode circuitry is operable to individually control each of the plurality of address multiplexers.
- 13. A method of operating a microprocessor, comprising the steps of:fetching a first instruction for execution, wherein the first instruction is a non-aligned access type instruction and wherein the first instruction references a non-aligned data item in a memory subsystem region; decoding the instruction to form a plurality of fields; forming a first address and accessing a first data item via a first port of the memory subsystem; forming a second address and accessing a second data item via a second port of the memory subsystem, such that the first address and second address are formed in a simultaneous manner and such that the first data item and the second data item are accessed in a simultaneous manner: and extracting the non-aligned data item from the first data item and the second data item.
- 14. The method of claim 13, wherein, wherein the step of forming a first address comprises the step of combining a base address value and an offset value in accordance with a one of the plurality of fields of the instruction.
- 15. The method of claim 14, wherein the step of forming a second address comprises the step of adding a line size value in accordance with another one of the fields of the instruction.
- 16. The method of claim 13 wherein the step of extracting loads a data value from the non-aligned data item into the microprocessor.
- 17. The method of claim 13, wherein the step of extracting stores a data value in the non-aligned data item in the memory subsystem by storing a first portion of the non-aligned data item in a first aligned data item and storing a second portion of the non-aligned data item in a second aligned data item.
- 18. The method of claim 13, wherein the first data item is an aligned data item and wherein the second data item is an aligned data item.
- 19. The method of claim 13, further comprising the steps of:fetching a second instruction and a third instruction for parallel execution, wherein the second instruction and the third instruction are both aligned access type instructions; forming a third address in accordance with the second instruction and accessing a third data item via the first port of the memory subsystem; forming a fourth address in accordance with the third instruction and accessing a fourth data item via the second port of the memory subsystem, such that the third address and the fourth address are formed in a simultaneous manner and such that the third data item and the fourth data item are accessed in a simultaneous manner.
Parent Case Info
This application claims priority under 35 USC §119(e)(1) of Provisional Application No. 60/183,527, filed Feb. 18, 2000, now abandoned and converted to Non-Provisional application Ser. No. 09/703,096, filed Oct. 31, 2000, of Provisional Application No. 60/183,417, filed Feb. 18, 2000 now abandoned and converted to Non-Provisional application Ser. No. 09/703,105, filed Oct. 31, 2000, and of Provisional Application No. 60/165,512, filed Nov. 15, 1999 now expired.
US Referenced Citations (17)
Non-Patent Literature Citations (5)
Entry |
Restle, “Circular Buffer in Second Generation DSPs,” Application Brief: SRPA203, pp. 1-9, Texas Instruments, Dec. 1992.* |
Horner, “Using the Circular Buffers on the TMS320C5x,” Application Brief: SPRA264, pp. 1-14, Texas Instruments, Oct. 1995.* |
Hendrix, “Implementing Circular Buffers With Bit-Reversed Addressing,” Application Report: SPRA292, pp. 1-19, Texas Instruments, Nov. 1997.* |
Lai et al., “PMChip: an ASIC dedicated to Pipelined Read Out and Trigger Systems,” pp. 812-819, IEEE, Aug. 1995.* |
Tom R. Halfhill, et al.; MIPS vs. Lexra: Definitely Not aligned, Microdesign Resources, Dec. 6, 1999, Microprocessor Report, pp. 14-19. |
Provisional Applications (3)
|
Number |
Date |
Country |
|
60/183527 |
Feb 2000 |
US |
|
60/183417 |
Feb 2000 |
US |
|
60/165512 |
Nov 1999 |
US |