Bulgarian


From jmips

BDBengali BG CN ENEnglish ES ET FR DE IN IT JPJapanese PLPolish RO RURussian



Това е jMIPS лесен за използване с отворен код MIPS симулатор в Java. Вече би трябва да сте свалили архивиран файл съдържащ сорс кода на приложението (актуални копия могат да се намерят на страницате на freshmeat jMIPS), в който документацията се намира в папка DOC / HTML.

Запознаването с документацията ще Ви помогне да научите повече за MIPS архитектурата също така и по-общите понятия на компютърните системи и архитектури.

В архива ще откриете пет версии на симулатора. Номерата се увеличават с увеличаване на сложността на кода и модела на симулация:

  1. Обикновен симулатор (тази страница)
  2. Неоптимизиран симулатор
  3. Оптимизиран симулатор
  4. Оптимизиран симулатор с кеш памет
  5. Оптимизиран симулатор с кеш памет иобработка на прекъсвания
Архитектура на обикновен MIPS процесор


В следващите страници се разглежда в детайли процеса на изграждане и употреба на обикновенния симулатор както и другите симулатори. Симулаторите не се различават по принцип на изграждане или употреба а само по съставни части. В резултат на което някои симулатори са по - бързи от други.

Ще Ви се наложи да работите с всеки един симулатор по отделно с цел подобряване на скоростта на симулатора.

Общото време за изпълнение и времето за изпълнение на една инструкция се визуализират на един от стандартните изходи на симулатора. Ако искате да получите статистически данни, като например колко време всеки набор от инструкции се изпълнява при определени обстоятелства, вие ще трябва да го добавите собственоръчно в кода. Приложението е с отворен код! Можете да направите това. Кодът е ясно написано и обяснено в страниците тук.

Как да компилираме и стартираме обикновенния симулатор

Компилиране и стартиране на симулатора в Java Разархивирайте .zip файла (който може да го свалите от страницата на проекта)

% unzip jMIPS-1.7.zip

за .tar файл

%  tar xzvf jMIPS-1.7.tgz

След разархивиране на файловете изберете папка src


%  javac CPU/Cpu1.java

Компилираният Cpu1.class файл може да бъде стартиран от JVM на всяка платформа. За стартиране в среда LINUX

%  java CPU/Cpu1 -q hello_mips

Пример:

%  java CPU/Cpu1 -q hello_mips32
  Hello world
  %

За да импортирате сорс кода в Java NetBeans IDE, създайте нов NB проект (с име jMIPS), отметката за MainClass трябва да бъде избрана. След създаването на нов проект, копирайте всички *.java файлове от папка src/CPU от архива в новосъздадената папка от NetBeans src/CPU. NetBEans автоматично ще добави копираните файлове.


Възможните опции при стартиране на симулатора от command-line са следните:

  • Без опции: стартирането на симилатора без опции ще визуализира всяка машинна инструкция при стартирането и заедно с информация за времето на изпълнение.
% java CPU/Cpu1  hello_mips32
0:      0.000000007s:   0x80030080:     addiu $29, $29, -32
1:      0.000000012s:   0x80030084:     sw $31, 28($29)
2:      0.000000019s:   0x80030088:     sw $30, 24($29)
3:      0.000000024s:   0x8003008c:     addu $30, $29, $0
4:      0.000000030s:   0x80030090:     sw $28, 16($29)
...
218:    0.000001567s:   0x8003000c:     lui $3, -20480
219:    0.000001573s:   0x80030010:     ori $3, $3, 16
220:    0.000001580s:   0x80030014:     sb $3, 0($3)
%

В горния пример са изпълнени 220 инструкции за общо 0.000001580 секунди (тактовата честота е 1 GHz). Това е приблизително 5 такта на инструкция

  • -q: използване на -q("Quiet") виждате само това, което следва да се изпълни от програмата без допълнителен шум.
% java CPU/Cpu1 -q hello_mips32
Hello world
%
  • -d: Визуализира се допълнителна информация при стартиране с -d("debug").
% java CPU/Cpu1 -d hello_mips32
text start at virtual addr 0x80030000 file offset 0x10000
text end   at virtual addr 0x800300e0 file offset 0x100e0
text entry at virtual addr 0x80030080 file offset 0x10080
read 224B at offset 65536 from file 'hello_mips32'
stack start at virtual addr 0xb0000000
stack end   at virtual addr 0xb0100000
0:      0.000000007s:   0x80030080:     addiu $29, $29, -32
1:      0.000000012s:   0x80030084:     sw $31, 28($29)
2:      0.000000019s:   0x80030088:     sw $30, 24($29)
...
%
  • -o: Позволява настройването на определени вътрешни променливи по време на симулация "-o MEMORY_LATENCY=1000" (пример). Разгледайте кода в Cmdline.java и добавете ваши възможни опции!

Моля ви, да редактирате при източника за да добавите нещо друго, което Ви харесва, да се добавите към списъка с кредитите в горната част на изходния код във файла, и да изпратите променения кода - или го публикувайте на друго място.