|
sf32 family of 32-bit processors |
|||
IntroductionThe sf32 family of 32-bit microprocessors is targeted at applications where high performance and small core sizes are most important. Fixed length 32-bit instruction coding enables low decoding complexity which results in high clock rates and small core foot prints. Multiple ISAs are available to address control & computing as well as DSP applications with optimized solutions.
ResourcesEvaluation_Package (contains free sf32bu) DetailsISAs (Instruction Set Architectures)Base ISA featuresThe sf32b is a 32-bit microprocessor architecture for embedded control & computing applications. Main focus of the ISA definition is on high clock rates and small core implementations. The sf32b 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 sf32b defines a generic and complete instruction set for efficient high level language compiler implementations. Features
ResourcesDSP extension ISAThe sf32d is an extension of the sf32b base ISA and is fully backward compatible with the sf32b. Main target are 32-bit DSP in general and specifically audio applications. The DSP extension adds only a few special registers but no general purpose registers to the programming model of the sf32b ISA. 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 sf32d processors are only slightly larger than base ISA implementations. The sf32d deviates from the puristic load/store architecture of the sf32b. 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 sf32b base ISA instruction set. Extension Features
Implementationssf32buThe sf32bu ultra light implementation is focused on low resource comsumption. A dual-ported RAM implements the general-purpose and most special registers. Instructions with two register source operands have 2 cycles effective execution time. A combined ALU/load/store unit has shared resources for computation and load/store instructions. Load/store instructions have 2 cycles effective execution time. Shift instructions are executed iteratively with 1 bit per cycle. Together this leads to an average IPC of ~0.5 which is still good enough for many embedded control & compute applications. Features
Resourcessf32blThe sf32bl light implementation is focused on high performance and moderate resource consumption. A 3 read-ports register-file makes sure that 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. Branch speculation, loop cache 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, with the loop cache loop execution with IPCs > 1 is possible. Features
Resourcessf32dlThe sf32dl light implementation has the same basic pipeline architecture as the sf32bl. 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
|
||||