Pamięć MEGA

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania

<1987.04.09>


Wprowadzenie

Pamięć systemu MERA-400 jest dwuwymiarowa. Odwołania do pamięci dokonują się przez podanie pary współrzędnych logicznych. Pamięć wyposażona jest w mechanizm, dokonujący odwzorowania współrzędnych logicznych na współrzędne fizyczne.

Organizacja logiczna

Pamięć podzielona jest na jednostki zwane blokami logicznymi. Bloków może być maksimum 16. Są one numerowane od 0 do 15. Numer bloku logicznego NBL ma 4 bity i stanowi pierwsza współrzędna logiczna pamięci. Druga współrzędna jest adres logiczny wewnątrz bloku. Każdy blok ma pojemność do 64 k slow i jest podzielony na jednostki zwane stronami o pojemności 4 k slow każda. Zatem blok może mieć do 16 stron. Numer logiczny strony wewnątrz bloku stanowią 4 najstarsze bity adresu logicznego: NSL = AL0-3. Zatem strona pamięci lokalizowana jest przez podanie pary współrzędnych (NBL,NSL), zaś komórka pamięci przez podanie pary współrzędnych (NBL,AL).

Organizacja fizyczna

Nośnik fizyczny pamięci zorganizowany jest jako zbiór modułów. Moduły maja pojemność 32 k slow (np. pamięć ferrytowa) lub 64 k slow (pamięć MEGA). Numer modułu jest 4-bitowa liczba od 0 do 15 i stanowi pierwsza współrzędna fizyczna: NM. Moduły podzielone są na jednostki fizyczne, zwane kwantami, o pojemności 4 k slow. Zatem moduł może zawierać 8 lub 16 kwantów. Numer kwantu wewnątrz modułu oznaczamy NK. Kwant pamięci identyfikowany jest przez podanie pary współrzędnych (NM, NK), zaś komórka pamięci przez podanie pary współrzędnych (NM, AF).

Pamięć ferrytowa instalowana standardowo w systemie ma numer modułu 0, a w nim zaalokowane sprzętowo dwa kwanty o numerach 0 i 1, którym odpowiadają numery stron 0 i 1.

Alokacja

Do ustalenia relacji miedzy współrzędnymi logicznymi i fizycznymi służy rozkaz Alokuj (OU N(15)=1 Q=0 nielegalny), który przypisuje:

  • numerowi bloku - numer modułu,
  • numerowi strony - numer kwantu,

zaś młodsze 12 bitów adresu pozostawia bez zmian.

Budowa pamięci MEGA

Pamięć MEGA zawiera:

  • pamięć alokacji PAL dla całej przestrzeni adresowej MERA-400,
  • nośnik informacji PAO o pojemności od 128 k do 1024 k slow,
  • pamięć stała PAS o pojemności 4 k slow dostępna pod adresem logicznym (0,017xxxx).

Pamięć MEGA może występować w systemie razem z innymi modułami pamięci np. z pamięcią ferrytowa, drutowa itd. Pamięć MEGA jest umownie zorganizowana w moduły, każdy o pojemności 64 k czyli zawierającymi po 16 kwantów.

Pamięć alokacji PAL

Pamięć alokacji pamięci MEGA przechowuje odwzorowanie dla wszystkich adresów logicznych. Ma pojemność 256 slow 9-cio bitowych. Przed działaniem pamięci należy zapisać wszystkie pozycje pamięci PAL.

Zapis do pamięci PAL wykonuje rozkaz ALOKUJ (OU,N15=1, Q=0). Adres logiczny przesyłany jest w pierwszym argumencie rozkazu:

  • R0-3 - zawiera NSL,
  • R12-15 - zawiera BNL.

Drugi argument rozkazu identyfikuje adres fizyczny:

  • N11-14 - numer modułu NM,
  • N7-10 - numer kwantu w module NK,

oraz niektóre atrybuty strony (rozróżniane przez pamięć MEGA):

  • N6 - znacznik lokalizacji strony w pamięci MEGA (gdy N6=1),
  • N5 - znacznik dealokacji strony w pamięci MEGA (gdy N5=1),
  • N2 - znacznik odsłonięcia pamięci PAS (N2=1),
  • N1 - znacznik zasłonięcia pamięci PAS (N1=1),
  • N0 - wskaźnik zakończenia procesu alokacji pamięci MEGA.

Pozycje N0-2 i N5-7 są ignorowane przez "obce" moduły pamięci. Pamięć MEGA odpowiada OK na każdy rozkaz ALOKUJ z N6=1, bez względu na pojemność zaimplementowanego nośnika.

W pamięci MEGA można przypisać rożnym adresom logicznym ten sam adres fizyczny.

Pamięć MEGA odpowiada na rozkaz PISZ/CZYTAJ po wykonaniu rozkazu ALOKUJ z N0=1, gdy rozkazy PISZ/CZYTAJ odwołują się do istniejącej w pamięci MEGA i zaalokowanej strony czyli alokowanej z N6=1 i N5=0.

W pamięci MEGA przewidziane jest bateryjne podtrzymanie zasilania przy krótkotrwałych zanikach sieci. Zachowana jest wówczas zarówno zawartość pamięci PAL, jak i nośnika. PAO. Przy faktycznym zaniku zasilania pamięć MEGA przestaje odpowiadać na rozkazy PISZ/CZYTAJ. Należy wówczas przeprowadzić pełną alokacje pamięci PAL oraz uwzględnić fakt zaniku informacji w nośniku PAO.

Uwaga: Moduł pamięci ferrytowej nie odpowiada na rozkaz ALOKUJ dotyczący sprzętowo zaalokowanych pierwszych dwóch kwantów. (BRAK-ODP).

Nośnik informacji PAO

Pamięć MEGA może być wykonana z elementów 64 k-bitowych lub 256 k-bitowych. Nośnik może być implementowany w niepełnej pojemności. Przewidywane są następujące wykonania pamięci:

Pojemność Elementy Numery modułów
128k 64k 15, 14
256k 64k 15 - 12
256k 256k 15 - 12
512k 256k 15 - 8
768k 256k 15 - 4
1024k 256k 15 - 0*

* W tym przypadku może wystąpić konflikt z innymi modułami pamięci i należy odpowiednio oznaczać kwanty w pamięci MEGA.

Pamięć stała PAS

Pamięć PAS zbudowana jest na elementach PROM. Przy odwołaniach do PAS (adresy logiczne (0,017xxxx)) nie dokonuje się transformacji adresu poprzez pamięć alokacji.

Po zaniku zasilania pamięci MEGA lub/i wykonaniu zerowania systemu (CLEAR, rozkaz MCL) pamięć PAS jest dostępna (widoczna) w systemie. Pamięć PAS można "przesłonić" dowolnym rozkazem ALOKUJ z N1=1, oraz "odsłonić" dowolnym rozkazem ALOKUJ z N2=1.

Pamięć PAS zawiera program realizujący następujące funkcje:

  • wstępny zapis całej pamięci PAL,
  • zbadanie rzeczywistej konfiguracji pamięci w systemie Mera-400 ("obce" moduły pamięci, ich pojemność, sprzętowo zaalokowane kwanty, konfiguracja pamięci MEGA),
  • testy pamięci MEGA,
  • wczytanie wskazanego systemu operacyjnego do pamięci (wskazanej) oraz przekazanie mu sterowania wraz z informacjami o rzeczywistej konfiguracji pamięci systemu.

PAS - inicjator systemu pamięci MEGA

Uruchomienie inicjatora

Inicjator systemu PAS zawiera:

  • testy pamięci bloków obcych po 32K i MEGA po 64K,
  • ściągaczki typowych systemów operacyjnych (CROOK,SOM),
  • ściągaczkę systemu testów STM.

Uruchomienie inicjatora następuje od adresu 0170000 bloku 0. Inicjator bada konfiguracje dołączonej do systemu pamięci operacyjnej. przy istnieniu hardwer'owo zaalokowanej pamięci bloku 0 inicjator działa w tym bloku, w przypadku dołączonej wyłącznie pamięci MEGA inicjator alokuje na adresy 0-030000 bloku logicznego numer 0 trzy kwanty dla systemu CROOK lub na adresy 0-020000 dwa kwanty dla pozostałych systemów z pamięci MEGA o minimalnym numerze modułu (tzn przy pojemności 1M slow są to kwanty 0, 1 i 2 lub 0 i 1 modułu numer 0, a przy pojemności 512 K slow są to kwanty 0, 1 i 2 lub 0 i 1 modułu numer 8) i do tego obszaru przepisuje wybrany system operacyjny. Po włączeniu maszyny, należy ustawić na kluczach adres 0170000, CLEAR, LOAD.

Następnie na kluczach należy ustawić:

Klucze Opis
0 - 3 wybrany tryb pracy:
  • 0 - test pamięci bloków obcych i MEGA,
  • 1 - ściągniecie systemu SOM-MERCOMP (z dysku stałego),
  • 2 - ściągniecie systemu testów STM,
  • 3 - ściągniecie systemu SOM-MERCOMP (z winchestera),
4 - 5 wolny
6 - 14 niewykorzystany
15 ściągniecie systemu CROOK, i jeżeli:
  • klucz 7 = 1 to na kluczach 5 i 6 należy ustawić numer winchestera z kanału MULTIX-a,
  • klucz 7 = 0 to na kluczach 8 - 15 należy ustawić adres pamięci dyskowej.

Przy pracy testu dodatkowe znaczenie maja klucze 4 oraz 8 - 15:

Klucze Opis
4 określa sposób porozumiewania się z operatorem przy teście pamięci MEGA.
  • 1 - test zatrzymuje się na stopach w przypadku wystąpienia błędu,
  • 0 - całkowity wydruk (nr urządzenia i nr kanału określają klucze 8 - 14)
8 - 14 nr urządzenia i nr kanału do porozumiewania się z operatorem (gdy klucz 4 = 0)
  • 0 - przyjmuje się nr urządzenia = 4 i nr kanału = 15,
  • > 0 - odczytywany jest nr urządzenia i nr kanału (nr urządzenia/10+nr kanału/14)
15 0

Po ustawieniu kluczy należy włączyć klucz START.

Test pamięci bloków obcych i MEGA

Test wykorzystuje klucz 4 pulpitu technicznego. W czasie wykonywania testu przy włączonym kluczu 4 na monitor nie są drukowane teksty. Test pamięci wykonuje się w sposób automatyczny.

Test obsługuje 32 przerwania przychodzące z jednostki centralnej. Numer stopu odpowiada numerowi przerwania. Z wyjątkiem stopu 0, wszystkie stopy od 1 do 32 zapalają bit 6. Ignorowane są:

  • przerwanie zegarowe - nr 5,
  • przerwanie kanałowe - nr 13, 14, 15 i 27,
  • zgłoszenie operatora - nr 28.

STOP/START wznawia działanie programu.

Opis stopów

HLT,01 Nieudana próba alokacji, EN lub PE, bloków obcych.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny

STOP/START nie wznawia działania programu.

HLT,02 Źle ustawiono klucze przy wyborze systemu
HLT,03 Nieudana próba alokacji, EN lub PE, bloków pamięci MEGA.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,05 Nieudana próba alokacji, BO, EN lub PE, 15 kwantu i 15 bloku pamięci MEGA, przy probie uaktywnienia MEGI (1/0).

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,06 Błąd przy probie odczytu, poprzednio zapisanego obszaru pamięci MEGA (istnieją obce bloki pamięci)

Zawartość rejestrów:

  • R6 - numer bloku, w którym wystąpił błąd,
  • R1 - adres wystąpienia błędu,
  • R2 - informacja zapisana (nr kwantu/3, nr bloku/15)
  • R3 - informacja odczytana.

zapis/odczyt dokonywany jest do/z każdego pierwszego słowa kolejnych kwantów. STOP/START wznawia działanie programu.

HLT,010 Nieudana próba dealokacji nieistniejącego obszaru pamięci MEGA.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,011 Błąd przy próbie odczytu poprzednio zapisanego obszaru pamięci MEGA (obce bloki pamięci = 0)

zawartości rejestrów opisane są przy HLT,06.

HLT,012 Koniec testu pamięci MEGA.

STOP/START wznawia działanie testu od stanu poczatkowego i umożliwia ponowny wybór trybu pracy.

HLT,013 Błąd w czasie wykonywania testu. Transmisje PISZ/CZYTAJ dokonywane są po jednym słowie.

Zawartość rejestrów i komórek pamięci:

  • 010014 - rodzaj testu (wartość od 1 do 3),
  • 010033 - wzorzec testowany (wartość od 1 do 6),
  • 010032 - sposób testowania (wartość =1),
  • 010004 - numer bloku, w którym wystąpił błąd,
  • R1 - adres wystąpienia błędu,
  • R2 - informacja,która powinna być zapisana,
  • R3 - informacja odczytana.

STOP/START wznawia działanie programu.

HLT,014 Błąd parzystości w czasie wykonywania testu. Transmisje PISZ/CZYTAJ dokonywane są po jednym słowie.

Zawartość rejestrów i komórek pamięci opisane są w opisie HLT,013.

HLT,015 Błąd w czasie wykonywania testu. Transmisje PISZ/CZYTAJ dokonywane są po dwa słowa (rozkazy grupowe).

Zawartość rejestrów i komórek pamięci:

  • 010014 - rodzaj testu (wartość od 1 do 3),
  • 010033 - wzorzec testowany (wartość od 1 do 6),
  • 010032 - sposób testowania (wartość = 2),
  • 010004 - numer bloku, w którym wystąpił błąd,
  • 010005 - adres wystąpienia błędu,
  • R3 i R7 - informacja, która powinna być zapisana,
  • R1 i R2 - informacja odczytana.

STOP/START wznawia działanie programu.

HLT,016 Błąd parzystości w czasie wykonywania testu. Transmisje PISZ/CZYTAJ dokonywane są po dwa słowa (rozkazy grupowe).

Zawartość rejestrów i komórek pamięci opisane są w opisie HLT,015. STOP/START wznawia działanie programu.

HLT,017 Błąd w czasie wykonywania testu. Transmisje PISZ/CZYTAJ dokonywane są po siedem slow (rozkazy grupowe).

Zawartość rejestrów i komórek pamięci:

  • 010014 - rodzaj testu (wartość od 1 do 3),
  • 010033 - wzorzec testowany (wartość od 1 do 6),
  • 010032 - sposób testowania (wartość = 3),
  • 010004 - numer bloku, w którym wystąpił błąd,
  • 010005 - adres wystąpienia błędu,
  • 010021 - 010027 - informacja, która powinna być zapisana,
  • R1 - R7 - informacja odczytana.

STOP/START wznawia działanie programu.

HLT,021 Błąd przy probie odczytu poprzednio wyzerowanego obszaru pamięci MEGA.

Zawartość rejestrów:

  • R3 - numer bloku, w którym wystąpił błąd,
  • R5 - adres wystąpienia błędu,
  • R1 i R2 - informacja odczytana,

STOP/START wznawia działanie programu.

HLT,022 Nieudana próba drukowania tekstu na monitor.
HLT,023 Nieudana próba drukowania liczby na monitor.
HLT,030 Błąd parzystości podczas wykonywania testu. Transmisje PISZ/CZYTAJ dokonywane są po siedem słów (rozkazy grupowe).

Zawartość rejestrów i komórek pamięci opisane są w opisie HLT,017. STOP/START wznawia działanie programu.

HLT,032 Nieudana próba dealokacji MEGI przed wybraniem systemu operacyjnego.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,033 Zatrzymanie testu przy wyborze trybu pracy 4 lub 5.
HLT,034 Nieudana próba alokacji obszaru roboczego w pamięci MEGA.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R7 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,035 Nieudana próba alokacji, EN lub PE, bloków pamięci MEGA.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,036 Nieudana próba alokacji kwantu 14 i 15 w bloku 15 pamięci MEGA na obszar roboczy (przy blokach obcych = 0).

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,037 Wykrycie błędu podczas testowania obszaru roboczego.

STOP/START powoduje kontynuowanie testu.

HLT,040 Podczas testowanie obszaru roboczego były błędy.

STOP/START nie wznawia działania programu.

HLT,041 Nieudana próba dealokacji kwantu 15 w bloku 0 w pamięci MEGA.

Zawartość rejestrów:

  • R1 - adres logiczny,
  • R2 - adres fizyczny.

STOP/START nie wznawia działania programu.

HLT,070 Zatrzymanie testu przed skokiem do wybranego systemu operacyjnego, celem ustawienia potrzebnych kluczy.

STOP/START wznawia działanie programu.

Wzorce testowane w programie:

  • 1 - stale zero,
  • 2 - stała jedynka,
  • 3 - pływające zero,
  • 4 - pływająca jedynka,
  • 5 - adres,
  • 6 - negacja adresu.

Rodzaje testów:

  • 1 - zapis całego obszaru pamięci,
  • 2 - zapis i bezpośredni odczyt całego obszaru pamięci, sprawdzenie zgodności zapisu z odczytem,
  • 3 - odczyt z całego obszaru pamięci poprzednio zapisanego i sprawdzenie zgodności zapisu z odczytem.

Sposoby testowania:

  • 1 - transmisje po jednym słowie.,
  • 2 - transmisje po dwa słowa,
  • 3 - transmisje po siedem slow.

Komunikaty wyprowadzane na monitor

Przy prawidłowo działającym teście pamięci, i przy zadaniu wydruku na monitor wyprowadzane są następujące teksty:

>>ZEROWANIE PAMIECI

Zerowanie, sprawdzenie regeneracji i odczytanie całego obszaru pamięci, bloki od 0 do 15 trwa około 30 sekund. Po wyzerowaniu pamięci MEGA i przy zadaniu systemu operacyjnego odbywa się jej dealokacja.

W przypadku, gdy sprawdzenie konfiguracji pamięci obcej nie wykazało istnienia bloków obcych, w bloku pamięci MEGA o najniższym numerze alokowanie są dwa lub trzy kwanty po 4 k na obszar o adresie (0,0) i (1,0) lub (0,0), (1,0) i (2,0) i następuje przejście do wybranego systemu operacyjnego.

Jeżeli operator na kluczach 0 - 3 ustawi 0 sterowanie przechodzi do testu pamięci. Wyprowadzane są następujące teksty:

WZOR  A      RODZ  B      SPOSOB   C
BLOKI 32K lub BLOKI 64K
TEST BLOKU  N0  KONIEC TESTU
   .
   .
   .
TEST BLOKU  NN  KONIEC TESTU
  • A - testowany wzorzec od 1 do 6
  • B - rodzaj testowania od 1 do 3
  • C - sposób testowania od 1 do 3
  • N0, ..., NN - numery testowanych bloków pamięci MEGA.

W trakcie wykonywania testu możne pojawić się komunikat:

>>BLAD
>>ADRES ....
>>ZAPIS  - ....
>>ODCZYT - ....

lub

>>BLAD PARZYSTOSCI
>>ADRES ....
>>ZAPIS  - ....
>>ODCZYT - ....

lub oba komunikaty równocześnie i zatrzymanie testu na odpowiednim stopie. Klucz STOP/START powoduje kontynuowanie testu.

Podanie na kluczach 0 - 3 wartości odpowiadającej wybranemu systemowi powoduje:

  • sprawdzenie konfiguracji pamięci,
  • wyzerowanie pamięci,
  • zatrzymanie na stopie 070 przed wejściem do systemu, celem ustawienia kluczy wymaganych przez system operacyjny.

Podanie na kluczach 0 - 3 wartości 4 lub 5 powoduje zatrzymanie HLT,033. Test całego obszaru pamięci MEGA, bloków od 0 do 15 trwa około 45 min. Test zakończony jest komunikatem END i stopem 012. STOP/START powoduje przejście do początku programu, co umożliwia ponowny wybór trybu pracy.