Changes between Version 1 and Version 2 of Component/Mips


Ignore:
Timestamp:
May 6, 2007, 2:26:06 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Mips

    v1 v2  
    99The simulation model is actually an instruction set simulator (ISS),
    1010organised as a two-stage pipeline:
    11  * The first pipeline stage is the instruction fetch, with access to the external instruction cache
    12  * The second pipeline stage is the instruction execution; with a possible access to the external data cache
     11 * TIn 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.
    1313 * The "delayed branch" is accurately modelized, but not the "delayed load".
    1414The main functional specifications are the following:
     
    1616 * There is no TLB : no hardware support for virtual memory
    1717 * 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.
    18  * Five "system registers" are defined :
     18 * A data cache line invalidation mechanism is supported : when a ''lw'' instruction is executed with the R0 destination register, a cache line invalidation request is sent to the data cache.
    1919
    20  
    2120= Mips Processor  CABA  Implementation =
    2221
    2322The caba implementation is in
    24  * source:trunk/soclib/systemc/include/caba/interconnect/pibus_bcu.h
    25  * source:trunk/soclib/systemc/src/caba/interconnect/pibus_bcu.cc
     23 * source:trunk/soclib/systemc/include/caba/processor/Mips.h
     24 * source:trunk/soclib/systemc/src/caba/processor/Mips.cc
    2625
    2726== Template parameters ==
    2827 
    29 template<typename vci_param>
     28This component has no template parameters.
    3029
    3130== Constructor parameters ==
    3231{{{
    33 PiBcu(
     32Mips(
    3433     sc_module_name name,   //  Instance Name
    35      const soclib::common::MappingTable &mp,   // Mapping Table
    36      size_t nb_master,   // Number of initiators
    37      size_t nb-slave,   // Number of targets
    38      uint32_t time_out);   // Time-out (number of cycles)
     34     int  ident);   // processor id
    3935}}}
     36
     37== Visible registers ==
     38
     39 The following internal registers define the processor internal state, and can be inspected:
     40 * PC : program counter
     41 * IR : Instruction register
     42 * GR[i] : General registers ( 0 < i < 32)
     43 * HI & LO : intermediate registers for multiply / divide instructions
     44 * IDENT : processor id register  = CP0[0]
     45 * BAR : Bad address register  = CP0[8]
     46 * SR : Status register = CP0[12]
     47 * CR : Cause register = CP0[13]
     48 * EPC : Exception PC register = CP0[14]
    4049
    4150== Ports ==