Pamięć MEGA
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 pierwszą współrzędną logiczną pamięci. Drugą współrzędną 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 słów 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 słów (np. pamięć ferrytowa) lub 64 k słów (pamięć MEGA). Numer modułu jest 4-bitową liczbą od 0 do 15 i stanowi pierwszą współrzędną fizyczną: NM. Moduły podzielone są na jednostki fizyczne, zwane kwantami, o pojemności 4 k słów. 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 między współrzędnymi logicznymi i fizycznymi służy rozkaz Alokuj (OU N15=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 słów,
- pamięć stałą PAS o pojemności 4 k słów dostępną pod adresem logicznym (0,017xxxx).
Pamięć MEGA może występować w systemie razem z innymi modułami pamięci np. z pamięcią ferrytową, drutową 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 słów 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 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15 |
NSL | - | BNL |
- R0-3 - zawiera NSL,
- R12-15 - zawiera BNL.
Drugi argument rozkazu identyfikuje adres fizyczny:
N0 | N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 | N9 | N10 | N11 | N12 | N13 | N14 | N15 |
- | - | NK | NM | 1 |
- 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. Przy instalacji pamięci MEGA należy dokonać przeróbki "obcych" modułów tak, aby nie reagowały na rozkazy alokacji z N6=1. 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 |
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 konfigurację 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 operacyjnego z pamięci MEGA o minimalnym numerze modułu (tzn przy pojemności 1M slow są to kwanty 0, 1 i 2 modułu numer 0, a przy pojemności 512 K słów są to kwanty 0, 1 i 2 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 |
---|---|
1-3 | wybrany tryb pracy:
|
5-6 | wolny |
6-14 | niewykorzystany |
0 lub 7 | ściągniecie systemu CROOK, i jeżeli żaden inny klucz nie jest podniesiony przeprowadzana jest próba transmisji z dysku 5M talerza stałego jednostki nr 0 w kanale 4. Gdy dysk ten nie jest włączony lub nie jest gotowy, przeprowadzana jest próba transmisji kolejno z dysku elastycznego 360K nr 0 lub z WINCHESTERA nr 0 procesora MULTIX w kanale 1. Przy podniesionych kluczach adres dysku określany jest następująco:
|
Przy pracy testu dodatkowe znaczenie mają klucze 4 oraz 8-15:
Klucze | Opis |
---|---|
4 | określa sposób porozumiewania się z operatorem przy teście pamięci.
|
5 | powoduje ominięcie testu pamięci obcych i przejście do testowania pamięci MEGA |
8-14 | nr urządzenia i nr kanału do porozumiewania się z operatorem (gdy klucz 4 = 0)
|
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.
Opis stopów
HLT,01 | Nieudana próba alokacji, EN lub PE, bloków obcych.
Zawartość rejestrów:
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:
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 próbie uaktywnienia MEGI (1/0).
Zawartość rejestrów:
STOP/START nie wznawia działania programu. |
HLT,06 | Błąd przy próbie odczytu poprzednio zapisanego obszaru pamięci MEGA (istnieją obce bloki pamięci)
Zawartość rejestrów:
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:
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:
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:
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 słów (rozkazy grupowe).
Zawartość rejestrów i komórek pamięci:
STOP/START wznawia działanie programu. |
HLT,021 | Błąd przy probie odczytu poprzednio wyzerowanego obszaru pamięci MEGA.
Zawartość rejestrów:
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:
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:
STOP/START nie wznawia działania programu. |
HLT,035 | Nieudana próba alokacji, EN lub PE, bloków pamięci MEGA.
Zawartość rejestrów:
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:
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:
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 - stałe 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że 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.
Źródło: Pamięć MEGA, Amepol, 1989-12-28