Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@774 cc03376c-175c-47c8-b038-4cd826a8556b
109 lines
4.2 KiB
Plaintext
109 lines
4.2 KiB
Plaintext
-----------------------------------------------------------------
|
|
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)
|
|
- Endianness umschaltbar zur Hard-reset Zeit
|
|
|
|
-----------------------------------------------------------------
|
|
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
|
|
|
|
|