----------------------------------------------------------------- J-MIPS Features ----------------------------------------------------------------- - Synchrones Design - Portable Beschreibung in VHDL - Kompatible zur GNU Toolchain (Binutils, GCC, Newlib) - Befehle kompatibel mit MIPS-1 ISA (z.B. MIPS R3000) - 5-Stufige Pipeline und Hazardvermeidung durch Forwarding - 64Bit Multiplier (32Bit Operanden), 12 Cycles Latenz - 64Bit Divider (32Bit Operanden), 36 Cycles Latenz - Coprocessor 0 (COP0) für Exceptionhandling - Direct-mapped Instruction Cache mit variabler Größe, 8-words per Line - Direct-mapped Data Cache mit variabler Größe, 8-words per Line - J-Bus kompatible Bus Interface Unit (J-Bus ist im wesentlichen FIFO interface mit 'wichtigen' Signalnamen) - 1,2 DMIPS/MHz mit 16Kbyte I/D-Cache (Dhrystone 2.1, GCC 4.3) ----------------------------------------------------------------- Known Limitations ----------------------------------------------------------------- - keine MMU - keine Unterstützung für Bus exceptions IBE und DBE - kein externes Coprocessor interface (COP1..3) für z.B. FPU - Befehle für Cop1..3 nicht implementiert: CFCz, CTCz, COPz, MFCz, MTCz, LWCz, SWCz Benutzung dieser Befehle führt zur Exception 'RI' (Reserved Instruction) - nicht alle COP0 Register/Bits vorhanden. ----------------------------------------------------------------- Known Bugs ----------------------------------------------------------------- - es gibt bestimmt noch nicht entdeckte Bugs ----------------------------------------------------------------- Known Optimizations ----------------------------------------------------------------- - Area: Multiplier als technologieabhängiges Primitive instanzieren - Area: Auf Divider verzichten - Area: Auf Multiplier verzichten - Area vs. Speed: Bei Hazards Pipeline-stall statt Forwarding. Durch Stalling geringerer Befehlsdurchsatz dafür weniger Logik. Weniger Logik bedeutet vielleicht wieder auch größere Taktfrequenz. ----------------------------------------------------------------- Known ToDos ----------------------------------------------------------------- - Unterstützung für Bus exceptions IBE und DBE - Externes COP1..3 interface, fehlende COP-Befehle implementieren - Optimierungen evaluieren und ggf. durchführen ----------------------------------------------------------------- Synthesis results ----------------------------------------------------------------- Virtex-4 XC4VSX35-10 Config: 16Kbyte I/D-Cache Number of Slices 2387 15360 15% Number of Slice Flip Flops 1784 30720 5% Number of 4 input LUTs 3962 30720 12% Number of FIFO16/RAMB16s 18 192 9% Speed: 110MHz nach Synthesis ----------------------------------------------------------------- Virtex-1 XCV1000-4 Config: 4Kbyte I/D-Cache Number of Slices 2045 13824 16% Number of Slice Flip Flops 1783 27648 7% Number of 4 input LUTs 3923 27648 15% Number of FIFO16/RAMB16s 20 32 62% Speed: 30MHz nach Synthesis ----------------------------------------------------------------- Performance bei 100MHz - GCC ohne Small-data section - MIPS Rev. 9 ----------------------------------------------------------------- I/D-Cache Dhrystone-2.1 RipeMD-160 Whetstone Stanford Queens(12x12) 1k 32 DMIPS 5 Mbit/s 345 kwhets/s 47/767 2,135s 2k 51 DMIPS 5 Mbit/s 534 kwhets/s 38/561 2,134s 4k 72 DMIPS 5 Mbit/s 623 kwhets/s 36/259 2,121s 8k 98 DMIPS 10 Mbit/s 1149 kwhets/s 31/228 1,938s 16k 115 DMIPS 17 Mbit/s 1234 kwhets/s 23/225 1,938s 32k 115 DMIPS 17 Mbit/s 1285 kwhets/s 24/218 1,938s 64k 115 DMIPS 17 Mbit/s 1285 kwhets/s 20/221 1,938s ----------------------------------------------------------------- Performance bei 100MHz - GCC mit Small-data section - MIPS Rev. 9 ----------------------------------------------------------------- I/D-Cache Dhrystone-2.1 RipeMD-160 Whetstone Stanford Queens(12x12) 16k 117 DMIPS 17 Mbit/s 1236 kwhets/s 24/230 1,811s ----------------------------------------------------------------- Performance bei 100MHz - GCC mit Small-data section - MIPS Rev. 10 ----------------------------------------------------------------- I/D-Cache Dhrystone-2.1 RipeMD-160 Whetstone Stanford Queens(12x12) 16k 120 DMIPS 17 Mbit/s 1242 kwhets/s 25/219 1,803s