Changes between Version 7 and Version 8 of Component/Mips
- Timestamp:
- May 9, 2007, 4:50:24 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Component/Mips
v7 v8 4 4 5 5 This hardware component is a Mips R3000 processor core. 6 This uses the generic [wiki:Component s/VciXcache VciXcache] component to interface6 This uses the generic [wiki:Component/VciXcache VciXcache] component to interface 7 7 a VCI advanced interconnect. 8 8 9 9 The simulation model is actually an instruction set simulator (ISS), 10 organised as a two-stage pipeline: 11 * In the first cycle, the instruction fetch, with access to the external instruction cache. 12 * In the second cycle, the instruction is executed with a possible access to the external data cache. 10 organised as a three-stage pipeline: 11 * First stage: instruction fetch, with access to the external instruction cache. 12 * Second stage: instruction is executed with a possible access to the external data cache. 13 * Third stage: read memory access is written back to registers 14 13 15 The main functional specifications are the following: 16 * The patented LWL/LWR instructions are not implemented 14 17 * The floating point instructions are not supported 15 18 * There is no TLB, and no hardware support for virtual memory 16 * All Mips R3000 exceptions are handled, including the memory addressing X_IBE and X_DBE, but the write errors are not precise, due to the posted write buffer in the cache controller. 17 * A data cache line invalidation mechanism is supported : when a ''lw'' instruction is executed with the GR![0] destination register, a cache line invalidation request is sent to the data cache. 19 * All Mips R3000 exceptions are handled, including the memory addressing X_IBE and X_DBE, 20 but the write errors are not precise, due to the posted write buffer in the cache controller. 21 * A data cache line invalidation mechanism is supported: when a ''LW'' instruction is executed 22 with the GPR![0] destination register, a cache line invalidation request is sent to the data cache. 18 23 19 24 = Mips Processor CABA Implementation = … … 22 27 * source:trunk/soclib/systemc/include/caba/processor/mips.h 23 28 * source:trunk/soclib/systemc/src/caba/processor/mips.cc 29 * source:trunk/soclib/systemc/src/caba/processor/mips_jumps.cc 30 * source:trunk/soclib/systemc/src/caba/processor/mips_special.cc 31 * source:trunk/soclib/systemc/src/caba/processor/mips_decod.cc 24 32 25 33 == Template parameters == … … 42 50 * HI & LO : Intermediate registers for multiply / divide instructions 43 51 * CP0_REG[i] : Coprocessor 0 registers (0<=i<32). Implemented values: 44 * BAR : Bad address register = CP0![8]45 * SR : Status register = CP0![12]46 * CR : Cause register = CP0![13]47 * EPC : Exception PC register = CP0![14]48 * INFOS : CP0![15] withCPU identification number on bits ![9:0]52 * 8: BAR : Bad address register 53 * 12: SR : Status register 54 * 13: CR : Cause register 55 * 14: EPC : Exception PC register 56 * 15: INFOS : CPU identification number on bits ![9:0] 49 57 50 58 == Ports == … … 52 60 * sc_in<bool> '''p_resetn''' : Global system reset 53 61 * sc_in<bool> '''p_clk''' : Global system clock 54 * sc_in<bool> '''p_irq [6]''' : The interrupts62 * sc_in<bool> '''p_irq![6]''' : The interrupts 55 63 * soclib::caba::!IcacheProcesssorPort '''p_icache''' : Instruction cache interface to the [wiki:Component/VciXcache VciXcache] 56 64 * soclib::caba::!DcacheProcesssorPort '''p_dcache''' : Data cache interface to the [wiki:Component/VciXcache VciXcache]