4.2. Xtensa Processor Block Diagram

Figure 4.2 shows a block diagram of the Xtensa processor with all of its optional and configurable components. If the Xtensa processor core was a fixed-ISA machine, every instance of the processor would need to contain all of the elements appearing in Figure 4.2, which would result in a large processor core. Such a large core would be quite powerful but it would not be a precise fit for any particular set of application tasks. Instead, the Xtensa processor core is configurable, which means that the SOC design team can develop processor cores based on the Xtensa ISA that are sized to fit the performance profiles of the various processor “sockets” in the overall system design.

The Xtensa block diagram shows many blocks common to all RISC processors including an instruction-fetch/instruction-decode unit, a load/store unit, a register file, and an ALU. Optional and configurable elements include interfaces to local instruction and data memories; interfaces to instruction and data caches; the processor’s main interface bus (called the processor interface, PIF); predefined functional execution units such as a multiplier, multiplier/accumulator, a floating-point unit (FPU), and a vector DSP unit; a second load/store unit; exceptions, interrupts, and timers; memory-management and memory-protection blocks; and trace, and debugging hardware. Table 4.1 describes some of the configurable hardware elements in the Xtensa processor core design.

Table 4.1. Configurable elements in the Xtensa processor core
Configurable elementDescription and configurability
MAC1616-bit multiplier/accumulator
MUL3232-bit multiplier
FPUFloating-point unit
VectraVector DSP unit
Zero-overhead loopOptional hardware to accelerate loop performance
Load/store unitOptional second load/store unit supported
16-bit instructions16-bit instructions in the base ISA are optional
Clock gatingAdding clock gates reduces dynamic power
General-purpose register file32 or 64 entries
Pipeline depthFive or seven stages
Byte orderingBig- or little-endian byte ordering
Memory managementOptional Linux-compatible MMU
Memory protectionOptional region-protection unit
Exceptions and interruptsAs many as 32 external interrupts, six priority levels, NMI
PIFOptional main interface bus, configurable bus width
PIF write-buffer depthConfigurable depth for the PIF write buffer
XLMIFast, single-cycle local bus
Cache memoryOptional caches with 1-, 2-, 3-, and 4-way associativity
Cache write policyWrite-through or write-back
Local data RAMsOptional, multiple local data RAMs supported
Local data ROMOptional, one local data ROM supported
Local instruction RAMsOptional, multiple local instruction RAMs supported
Local instruction ROMOptional, one local instruction ROM supported
Multiple-processor supportOptional synchronization instructions

In addition to the configurable elements in the Xtensa core design, designers can add registers, register files, instructions, and data ports using the TIE language to describe the desired processor extensions. Later sections in this chapter discuss TIE-based processor extensions in more detail.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset