EM400 - konfiguracja: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
Linia 42: Linia 42:
* '''typ''' - typ modułu pamięci. Dostępne typy to:
* '''typ''' - typ modułu pamięci. Dostępne typy to:
** '''elwro''' - pamięć ferrytowa
** '''elwro''' - pamięć ferrytowa
** '''mega''' - pamięć półprzewodnikowa
** '''[[MEGA|mega]]''' - pamięć półprzewodnikowa
* '''il_segmentów''' - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16)
* '''il_segmentów''' - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16)


Linia 52: Linia 52:
         module  2 = mega:5
         module  2 = mega:5
  }
  }
== Urządzenia zewnętrzne ==
=== Kanały ===
Dołączenie emulacji kanału wymaga zdefiniowania dla niego bloku konfiguracji w sposób następujący:
channel <nr_kanału> = <typ_kanału> { ... }
Gdzie:
* '''nr_kanału''' - kolejny numer kanału w systemie
* '''typ_kanału''' - typ kanału, dostępne typy to:
** '''char''' - kanał znakowy
** '''mem''' - kanał pamięciowy
** '''plix''' - procesor peryferyjny [[PLIX]]
** '''multix''' - procesor peryferyjny [[MULTIX]]
W nawiasach wąsowych występują definicje kolejnych urządzeń podłączonych do kanału (patrz niżej).
=== Urządzenia ===
Konfiguracja emulowanych urządzeń definiowana jest następująco:
unit <nr_urządzenia> = <typ_urządzenia> [: argument [, argument [...]]]
Gdzie:
* '''nr_urządzenia''' - kolejny numer urządzenia w kanale
* '''typ_urządzenia''' - jeden z obsługiwanych typów urządzenia.
* '''argument''' - opcjonalne argumenty będące parametrami dołączanego urządzenia
=== Emulowane urządzenia peryferyjne ===
* Terminal w konsoli emulatora:
** typ urządzenia: '''term_console'''
** argumenty: brak
** przykład użycia: <tt>term_console</tt>
* Terminal TCP
** typ urządzenia: '''term_tcp'''
** argumenty: port TCP
** przykład użycia: <tt>term_tcp:20034</tt>
* Terminal szeregowy
** typ urządzenia: '''term_serial'''
** argumenty: urządzenie, prędkość, ilość bitów w słowie, parzystość, ilosć bitów stopu
** przykład użycia: <tt>term_serial:/dev/ttyS0, 9600, 8, N, 1</tt>
* Dysk MERA 9425
** typ urządzenia: '''mera9425'''
** argumenty: obraz talerza stałego, obraz talerza wymiennego
** przykład użycia: <tt>mera9425:disk1.img, disk2.img</tt>
* Dysk Winchester
** typ urządzenia: '''winchester'''
** argumenty: obraz dysku
** przykład użycia: <tt>winchester:winchester.img</tt>

Wersja z 22:30, 29 mar 2013

Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Domyślne EM400 próbuje załadować następuące pliki konfiguracyjne:

  • em400.cfg (w katalogu bieżącym)
  • ~/.em400/em400.cfg (konfiguracja użytkownika)
  • /etc/em400.cfg (konfiguracja systemowa)

Jeśli jeden z plików uda się poprawnie załadować, dalesze nie są sprawdzane. Powyższa lista plików jest ignorowana, jeśli użytkownik użyje przełącznika -c w linii poleceń

Składnia pliku konfiguracyjnego

Konfiguracja składa się z bloków opisujących poszczególne elementy systemu. Definicja bloku rozpoczyna się jego nazwą, po czym w nawiasach wąsowych występuje zero lub więcej dostępnych opcji konfiguracyjnych dla elementu. Elementy objęte konfiguracją to:

  • cpu - procesor
  • memory - pamięć

Procesor

Dostępne sa następujące opcje konfigurujące działanie procesora:

  • speed - prędkość emulacji procesora. Dostępne warianty:
    • max - emulacja z maksymalną możliwą prędkością
    • real - emulator stara się zachować oryginalne czasy wykonania instrukcji, czasy dostępu do pamięci i urządzeń zewnętrznych
  • timer_step - okres zegara systemowego (w milisekundach)
  • mod_17bit - włącz/wyłącz modyfikację sprzętową CPU pozwalającą na 17-bitowe adresowanie bajtów (domyślnie włączone)
  • mod_sint - włącz/wyłącz modyfikację sprzętową dodającą przerwanie programowe o wysokim priorytecie (domyślnie włączone)

Przykładowy blok konfiguracji CPU:

cpu {
       speed = max
       timer_step = 10
       mod_17bit = true
       mod_sint = false
}

Pamięć

Każdy z szesnastu fizycznych modułów pamięci operacyjnej może zostać skonfigurowany niezależnie. Dołączone zostaną tylko moduły o numerach podanych w konfiguracji, pozostałe będą z punktu widzenia systemu nieobecne. Konfiguracja pojedynczego modułu pamięci opisana jest w następujący sposób:

module <nr_modułu> = <typ>:<il_segmentów>

Gdzie:

  • nr_modułu - kolejny numer modułu pamięci z zakresu 0-15 (moduł 0 to moduł pamięci systemu operacyjnego, musi mieć rozmiar przynajmniej 2 segmentów)
  • typ - typ modułu pamięci. Dostępne typy to:
    • elwro - pamięć ferrytowa
    • mega - pamięć półprzewodnikowa
  • il_segmentów - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16)

Przykładowy blok konfiguracji pamięci:

memory {
       module  0 = elwro:8
       module  1 = mega:16
       module  2 = mega:5
}

Urządzenia zewnętrzne

Kanały

Dołączenie emulacji kanału wymaga zdefiniowania dla niego bloku konfiguracji w sposób następujący:

channel <nr_kanału> = <typ_kanału> { ... }

Gdzie:

  • nr_kanału - kolejny numer kanału w systemie
  • typ_kanału - typ kanału, dostępne typy to:
    • char - kanał znakowy
    • mem - kanał pamięciowy
    • plix - procesor peryferyjny PLIX
    • multix - procesor peryferyjny MULTIX

W nawiasach wąsowych występują definicje kolejnych urządzeń podłączonych do kanału (patrz niżej).

Urządzenia

Konfiguracja emulowanych urządzeń definiowana jest następująco:

unit <nr_urządzenia> = <typ_urządzenia> [: argument [, argument [...]]]

Gdzie:

  • nr_urządzenia - kolejny numer urządzenia w kanale
  • typ_urządzenia - jeden z obsługiwanych typów urządzenia.
  • argument - opcjonalne argumenty będące parametrami dołączanego urządzenia

Emulowane urządzenia peryferyjne

  • Terminal w konsoli emulatora:
    • typ urządzenia: term_console
    • argumenty: brak
    • przykład użycia: term_console
  • Terminal TCP
    • typ urządzenia: term_tcp
    • argumenty: port TCP
    • przykład użycia: term_tcp:20034
  • Terminal szeregowy
    • typ urządzenia: term_serial
    • argumenty: urządzenie, prędkość, ilość bitów w słowie, parzystość, ilosć bitów stopu
    • przykład użycia: term_serial:/dev/ttyS0, 9600, 8, N, 1
  • Dysk MERA 9425
    • typ urządzenia: mera9425
    • argumenty: obraz talerza stałego, obraz talerza wymiennego
    • przykład użycia: mera9425:disk1.img, disk2.img
  • Dysk Winchester
    • typ urządzenia: winchester
    • argumenty: obraz dysku
    • przykład użycia: winchester:winchester.img