Page 2
TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements. Following are URLs where you can obtain information on other Texas Instruments products and application solutions:...
Page 3
About This Manual This manual describes the features and operation of the instruction cache that is available on the TMS320VC5501 and TMS320VC5502 digital signal processors (DSPs) in the TMS320C55x (C55x) DSP generation. This manual assumes the reader has some fundamental knowledge about cache operation.
Page 4
Related Documentation From Texas Instruments TMS320C55x Technical Overview (literature number SPRU393). This overview is an introduction to the TMS320C55x DSPs, the latest generation of fixed-point DSPs in the TMS320C5000 DSP platform. Like the previous generations, this processor is optimized for high performance and low-power operation.
Page 5
Trademarks Trademarks TMS320C5000, TMS320C55x, C55x trademarks Texas Instruments. Other trademarks are the property of their respective owners. SPRU630C Instruction Cache...
Page 6
This page is intentionally left blank. Instruction Cache SPRU630C...
Page 8
Figures Figures Conceptual Block Diagram of the I-Cache in the DSP System ......2-Way Cache ..............Fetch Address Fields for the 2-Way Cache .
Instruction Cache On the TMS320VC5501/5502 digital signal processors (DSPs), instructions can reside in internal memory or external memory. When instructions reside in external memory, the instruction cache (I-Cache) can improve the overall system performance by buffering the most recent instructions accessed by the central processing unit (CPU).
Introduction Figure 1. Conceptual Block Diagram of the I-Cache in the DSP System VC5501/5502 DSP I-Cache Cache-control bits in Control logic ST3_55 to enable, freeze, and flush I-Cache Data read/write logic I-Cache registers to configure and monitor I-Cache Instruction buffer 2-way cache queue I-Cache...
Introduction TMS320VC5501/5502 DSP External Memory Interface (EMIF) Reference Guide ( literature number SPRU621). Since data from the EMIF passes through the IPORT to get to the I−cache, the IPORT must be properly enabled to allow proper cache operation. The IPORTI bit in the Idle Control Register (ICR) controls whether the IPORT is enabled or disabled after an idle instruction.
Introduction Figure 2. 2-Way Cache Memory bank 1 Memory bank 2 Data Data Set 0 Line 0 Line 0 Set 1 Line 1 Line 1 Set 254 Line 254 Line 254 Set 255 Line 255 Line 255 Set 510 Line 510 Line 510 Set 511 Line 511...
Introduction 1.2.1 How the I-Cache Uses the Fetch Address Figure 3 and Table 1 describe how the I-Cache uses the fetch address for the 2-way cache. Figure 3. Fetch Address Fields for the 2-Way Cache 13 12 Index (set) Offset Byte 11 bits 9 bits...
Introduction Table 2. Instruction Presence Check and I-Cache Response Case 2-Way Cache Presence I-Cache Response Miss False 2-way cache line loaded from external memory, requested 32-bit word delivered to CPU True Requested 32-bit word taken directly from 2-way cache 1.2.3 Line Load Process When an instruction presence check results in a fetch from the external memory, the 4-word external memory block that contains the requested word...
Introduction Figure 4. Flow Chart of the Line Load Process I-Cache must load 2-way cache line Command EMIF to read four 32-bit words from external memory word received Wait for next word Write word to line it the Line requested load done word Deliver word to...
CPU Bits for Controlling the I-Cache CPU Bits for Controlling the I-Cache Control of the I-Cache is maintained not only through the I-Cache registers but also through three bits located in status register ST3_55 of the CPU. These bits are highlighted in Figure 5. For more details about ST3_55, see the TMS320C55x DSP CPU Reference Guide (SPRU371).
CPU Bits for Controlling the I-Cache CAFRZ Bit to Freeze the Contents of the I-Cache When you write 1 to the cache freeze (CAFRZ) bit of ST3_55, the contents of the I-Cache are locked. Instruction words that were cached prior to the freeze are still accessible in the case of an I-Cache hit, but the data arrays are not updated in response to an I-Cache miss.
Configuring and Enabling the I-Cache Configuring and Enabling the I-Cache This section gives the procedures for preparing and enabling the I-Cache. The I-Cache registers mentioned in this section are described in section 6 (page 22). The cache enable (CAEN) bit that is used to enable and disable the I-Cache is described in section 2.1 (page 16).
Timing Considerations Timing Considerations As the I-Cache fetches and returns 32-bit words requested by the CPU, two key time periods affect the speed of the I-Cache: Hit time Miss penalty Hit Time The hit time is the time required for the I-Cache to deliver the 32-bit requested word to the CPU in the case of a hit (when the word is present in the I-Cache).
Timing Considerations Miss Penalty The miss penalty is the time required for the I-Cache to deliver the 32-bit requested word to the CPU in the case of a miss (when the word must be fetched from external memory). In response to a miss, the I-Cache requests four words from the external memory interface (EMIF) to load the appropriate line.
Power, Emulation, and Reset Considerations Power, Emulation, and Reset Considerations See the TMS320C5501 Fixed-Point Digital Signal Processor Data Manual (SPRS206) or the TMS320C5502 Fixed-Point Digital Signal Processor Data Manual (SPRS166) for information on power and reset. Emulator Access The software emulator can read the contents of the I-Cache during the debug mode.
I-Cache Registers I-Cache Registers Control of the I-Cache is maintained through a set of registers within the I-Cache. These registers are accessible at addresses in the I/O space of the DSP. For the addresses, see the TMS320C5501 Fixed-Point Digital Signal Processor Data Manual (SPRS206) or the TMS320C5502 Fixed-Point Digital Signal Processor Data Manual (SPRS166).
I-Cache Registers Table 4. I-Cache Global Control Register (ICGC) Bits Field Description 15−13 Reserved Always write 110b to these reserved bits. FLUSHLINE Flush the cache line specified by the flush line address registers (ICFARH and ICFARL). The line flush starts when a 1 is written to the FLUSHLINE bit.
I-Cache Registers Flush Line Address Registers (ICFARL and ICFARH) The flush line address registers (ICFARL and ICFARH) contain the program address that is used to determine the line to be flushed. When a line flush is initiated (DE3Ch written to ICGC), the I-Cache automatically flushes the line associated with the program address contained in these registers.
I-Cache Registers Way Miss Counter Register (ICWMC) The ICWMC is incremented by 1 for every miss in the 2-way cache. A DSP reset forces ICWMC = 0000h. ICWMC can be loaded with a value in the range 0000h − FFFFh. When ICWMC is read, it is reset to 0000h. When it reaches FFFFh, the incrementing stops and ICWMC holds the value FFFFh until the register is read or loaded with a different value.
Page 26
This page is intentionally left blank. Instruction Cache SPRU630C...
Revision History This document was revised to SPRU630C from SPRU630B, which was released in August 2003. Changes that were made since the last revision are listed in the following table. Page Additions/Modifications/Deletions Added IPORT block to Figure 1. Revised paragraphs 2 − 4 in Section 1. 10 and 11 Added bit number 12 in Figure 3.
Page 28
This page is intentionally left blank. Instruction Cache SPRU630C...
Index Index 2−way cache, 11 emulator access, 21 enable I−Cache as part of initialization procedure, 18 block diagram of I−Cache, 10 CAEN bit description, 16 external memory interface EMIF, 10 cache clear bit (CACLR) described, 16 fetch address, how I−Cache uses, 13 shown in figure, 16 flush I−Cache, 16 cache control bits of CPU, 16...
Page 30
Index instruction cache (I-Cache), 10 instruction presence check, 13 introduction to I−Cache, 9 operation of I−Cache, 12 IPORT, 10 presence check, 13 LAH bits of ICFARH described in table, 24 shown in figure, 24 LAL bits of ICFARL reconfiguration of I−Cache after DSP reset, 21 described in table, 24 registers of I−Cache, 22 shown in figure, 24...