/**********************************************************************
 * SimMips: Simple Computer Simulator of MIPS    Arch Lab. TOKYO TECH *
 **********************************************************************/
COPYRIGHT

SimMips is free software.
See the file COPYING for copying permission.

/**********************************************************************/
About SimMips

vZ@A[LeN`Iy[eBOVXe̋Ec[ƂāC
VXeV~[^ւ̗v܂Ă܂DȂC̃VX
eV~[^́C̃vbgtH[ɑΉ邱ƂCɓ
삷邱ƂɎĂ邽߁CEɂďdvƂȂVv
ǐĂ܂D

̃V~[^Ƃ͈悵CVvǐCg
dCMIPS32߃Zbg̃vZbT܂ރVXeV~[^ł
SimMips ̊JȂĂ܂DǐƎsxƂ̊Ԃɂ̓g[hI
t܂CvZbT̍ɂCǐƌIȎsx
Ƃ̗\ƂȂ܂DSimMips ́CvZ@VXeOS̋E
EJɑ傢ɗ_𔭊܂D

/**********************************************************************/
Building your SimMips binary

SimMips̓N[C++ŋLqĂ܂D
Intel Linux, Intel Cygwin Ȃǂ̊œmFĂ܂D
_łBig-EndiañvbgtH[CႦCell/B.E. Linux Ȃǂ̊
ł͓삵܂D

SimMips ̎st@C쐬邽߂ɂ̓RpCKvłD
SimMips ̔zzpbP[W_E[hāCWJ܂D
ĩt@CǂłƂƂ́CɃpbP[WWJĂ
@܂񂪁Dj

Ⴆ΁Ct@CSimMips-0.5.0.tgz Ȃ΁Cȉ̃R}hŃpbP[
WWJ܂D

$ tar xvzf SimMips-0.5.0.tgz

SimMips-0.5.0 ƂfBNg쐬C̒Ƀ\[XR[hȂ
WJ܂DɁCWJꂽfBNgɈړăRpC܂D

$ cd SimMips-0.5.0
$ make

RpCɏI΁CSimMips ƂO̎st@C
܂D

/**********************************************************************/
Let's run SimMips

p[^w肹SimMips sƁCȒPȎg\܂D

| $ ./SimMips
| ## SimMips: Simple Computer Simulator of MIPS Version 0.5.0 2008-11-05
| Usage: simmips [-options] object_file_name
|   -e[num][kmg]: stop simulation after num cycles executed
|   -d[level]: debug mode
|   -i: put instruction mix after simulation
|   -m: use multi-cycle execution model
|   -M [filename]: specify machine setting file

TvƂāCNCbN\[g̃vOtest/qsortɒuĂ܂D
܂́C̃vOSimMips œ삳Ă݂܂傤D

| $ ./SimMips test/qsort
| ## SimMips: Simple Computer Simulator of MIPS Version 0.5.0 2008-11-05
|
| Before:   65536 items quick sorting.
| a[    0] =        9086
| a[  200] =       28147
| a[  400] =        7617
| a[  600] =        9586
| a[  800] =       18764
| a[ 1000] =       28363
| a[ 1200] =       23597
| a[ 1400] =       26600
| a[ 1600] =        6196
| a[ 1800] =       12923
| 
| After:   65536 items quick sorting.
| a[    0] =           0
| a[  200] =          98
| a[  400] =         197
| a[  600] =         300
| a[  800] =         402
| a[ 1000] =         503
| a[ 1200] =         600
| a[ 1400] =         701
| a[ 1600] =         802
| a[ 1800] =         897
| 
| ## cpu stopped
| ## cycle count: 17663749
| ## inst count: 17663749
| ## simulation time:    1.431
| ## mips: 12.343

̂悤ȃbZ[W\܂H
sԂȂ(ԉ2s) ́CpĂvZ@ɂĕω܂D

/**********************************************************************/
Command Line Options

-eIvV́CTCN̎sƃV~[VI
IvVłDڔƂāCk ܂K(1,000)Cm ܂M(100)C
g ܂G(10) pł܂D

| $ ./SimMips -e10k test/qsort
| ## SimMips: Simple Computer Simulator of MIPS Version 0.5.0 2008-11-05
| 
| ## cycle count reaches the limit
| ## cycle count: 10000
| ## inst count: 10000
| ## simulation time:    0.001
| ## mips: 11.455

-dIvV́CfobO[hłD1`4܂ł̃[hw肵܂D
-d1 ́CV~[VIɃWX^lƃ̓e\܂D
-d2 ́Csꂽߗ\܂D
-d3 ́CsꂽߗƓǂݏꂽWX^̒l\܂D
-d4 ́COTLB ̓ǂݏ\܂(OS[h)D

-iIvV́CV~[VIɎsꂽ߂̎ނƉ񐔂\
܂Dgpꂽ񐔂ɕבւ܂D

-mIvV́CsfƂă}`TCNf̂܂D
ʏSimMips ͂PTCNɂP̖߂s@\x̎sf
gpĂ܂C̃IvVgpƂP̖߂̖߂𕡐̃X
e[WւƕCT`VTCNĎs܂D

-MIvV́C⃌WX^̏ݒp̃t@Cw肵܂D
ڍ׎dĺCtest/mem_test.txt ɋLڂĂ܂D

/**********************************************************************/
SimMips Source Code

WJfBNgɂ́CrICǂ݂₷`ɉH\[XR[h
PDF(code.pdf)t@C܂D\[XR[h𒭂߂OɁC
ڂʂƂ悢܂D

/**********************************************************************/
SimMips History

vȃo[WLڂĂ܂D

v0.5.5 2009-05-13 (4,540 lines)
EȑOMieruPC̃L[{[h͂ɂēύXD

v0.5.4 2009-03-18 (4,533 lines)
EMieruPC-2008̃}bvŐVłɍ킹D
iL[{[h͈͂ꕔ̃L[ɔΉCςȂ͔F܂j

v0.5.3 2009-02-18 (4,440 lines)
EDIV, DIVU߂̃[Zɑ΂舵CD
EeXgpoCiCD

v0.5.2 2009-01-09 (4,432 lines)
EMULT߂̎Ɍ肪̂CD

v0.5.1 2008-12-18 (4,432 lines)
EMieruPC-2008̃}bvɑΉD

v0.5.0 2008-11-05 (4,422 lines)
EMieruPC ɕʂŊJĂo[W𓝍Dv0.5.0ƂČJD

v0.4.9 2008-08-13 (4,090 lines)
E\[XR[ȟC@\̒ǉȂǂ𐏎sĂD

v0.4.0 2008-06-17 (3,765 lines)
EOS[h̃oO肪IDVFオClsȂǂ̓mFD

v0.3.1 2008-06-04 (3,459 lines)
E荞݃Rg[ƃVAC^tF[XD
@ڍׂȌ؂͂ĂȂD

v0.3.0 2008-05-27 (2,980 lines)
ECoprocessor 0(CP0)DڍׂȌ؂͂ĂȂD

v0.2.0 2008-04-14 (2,384 lines)
EApp [h̎IDnqueenvOD

/**********************************************************************/
MieruPC Project

SimMips ̊J́CMieruPC vWFNgigvZ@VXe\
z錤EvWFNgj̈ƂĂsĂ܂D
MieruPC vWFNgɊւ͈ȉURLɌfڂ\łD
http://www.arch.cs.titech.ac.jp/mieru/
܂CMieruPC̃n[hEFAɊւĂ͈ȉURLɌfڂ\łD
http://www.mierupc.com/

/**********************************************************************/
Reference

[1] }P, n糐L, g: SimMips: EɗLpLinux
5000sMIPSVXeV~[^, 20Rs[^VXeEV|
WE(ComSys2008)_W (November 2008).

[2] g, ^, XJ, }P, ᐙS, n糐L, AV,
Xm, OcL, p, , RcT, F, їǑY,
OD, : MieruPC vWFNg: gvZ@VXe
\z錤EvWFNg, 20Rs[^VXeEV|WE
(ComSys2008) (November 2008).

[3] n糐L, }P, ᐙS, OcL, Xm, g: MIPSV
XeV~[^SimMips pg݃VXeJ̌,@
w 2008-EMB-10 (November 2008).

/**********************************************************************/