|
eco32 family of 32-bit processors |
|||
IntroductionThe eco32 family of 32-bit microprocessors is targeted at embedded control & computing and DSP applications. The family defines two ISAs:
ResourcesDetailsISAs (Instruction Set Architectures)Base ISAThe eco32b is a 32-bit microprocessor architecture for embedded control & computing applications. Main focus of the ISA definition is on high code density enabled through 16/32-bit variable length instruction coding and low power consumption enabled through the moderate number of registers. The eco32b is a load/store architecture. All operands of computation instructions are either constants or contained in registers. Load/store instructions are used to transfer operands between registers and memory. The eco32b ISA defines a generic and complete instruction set for efficient high level language compiler implementations. In addition it defines a set of DSP enhancement features that use the available processor resources (registers, multiplier) and do not add significantly to the size and complexity of processor implementations. With these features the eco32b is a good candidate also for applications with moderate DSP performance requirements. For higher performance DSP applications the eco32d ISA is available. Features
DSP enhancements
DSP extension ISAThe eco32d is an extension of the eco32b base ISA and is fully backward compatible with the eco32b. Main target are 32-bit DSP and specifically audio applications. The DSP extension adds only a few special registers but no general purpose registers to the programming model of the eco32b. Main additions are addressing modes with memory source operands and special add/subtract instructions that improve the performance of audio and general DSP algorithms. With the same pipeline architecture and computation resources implementations of eco32d processors are only slightly larger than base ISA implementations. The eco32d deviates from the puristic load/store architecture of the eco32b. Some performance critical extension instructions have one source operand in memory. The instructions with additional addressing modes and the additional, special add/subtract instructions can't be used easily from high level languages. The targeted use model suggests hand optimized assembler routines for performance critical DSP functions using the special addressing modes and instructions. The less performance critical higher layers and control code is written in C and compiled to the eco32b base ISA instruction set. Extension Features
Implementationseco32blThe eco32bl light implementation is focused on high performance and moderate resource consumption. A 3 read-ports register-file makes sure that almost all instructions potentially can be executed in one cycle effective. A decoupled unit for instruction fetch and flow-instruction execution together with separate execution units for computation and for load/store instructions enable high pipeline throughput. With 16/32-bit variable length instruction coding and a 32-bit instruction bus the average instruction fetch rate per cycle is > 1 and fills the decoupling buffer between the instruction fetch unit and the computation and load/store execution units. A filled buffer enables zero cycle effective execution time for flow change instructions (branch, jump, return). Branch speculation, pre-fetching and conditional instructions minimize performance penalties of program flow changes. Average IPCs strongly depend on instruction sequences e.g. branches and operand dependencies. Performance optimized sequences can get close to an IPC of 1, highly optimized sequences with effective zero cycle flow change instructions can achieve IPCs > 1. Features
eco32dlThe eco32dl light implementation has the same basic pipeline architecture as the eco32bl. Only difference is an extra execution unit for multiply/MAC instructions. To support this unit the register-file is upgraded to 4/3 read/write ports. Features
|
||||