Pamięć operacyjna: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 33: | Linia 33: | ||
| colspan="8" | - || colspan="3" | AL || colspan="4" | MP || 1 | | colspan="8" | - || colspan="3" | AL || colspan="4" | MP || 1 | ||
|} | |} | ||
Programowy podział pamięci pozwala efektywnie wykorzystać pamięć operacyjną minikomputera, dzięki możliwości przydzielenia programom bloków o rozmiarach odpowiadających ich potrzebom. |
Wersja z 21:48, 8 paź 2012
Organizacja fizyczna pamięci
Pamięć operacyjna MERY-400 dzieli się na dwa podstawowe obszary: systemowy i użytkowy. Fizycznie bloki zbudowane są z modułów konstrukcyjnych o pojemności 32k słów, w których wyróżnia się segmenty o pojemności 4k słów.
Blok systemowy (BSO) przeznaczony jest dla systemu operacyjnego i tylko on ma dostęp do zapisanych w nim informacji. Ma on numer 0 i rozmiar 4k lub 8k słów. W przypadku dwuprocesorowej konfiguracji maszyny, każdy z procesorów dysponuje własnym blokiem pamięci systemowej. Istnieje również możliwość rozszerzenia bloku pamięci systemowej do 32k. Takie rozszerzenie jest wtedy dostępne dla obu procesorów (jak pamięć użytkowa). Bloki systemowe dostępne są dla procesorów zawsze.
Bloki w obszarze użytkowym (BU) przeznaczone są dla programów użytkowych. Mają numery fizyczne od 1 do 15 i pojemności od 4 do 32k słów (z przyrostem co 4k). System operacyjny może korzystać z dowolnego z bloków pamięci użytkowej, jednak dostępne są one dopiero po programowym zorganizowaniu pamięci.
Programowy podział pamięci
Bloki fizyczne w obszarze użytkowym muszą przed użyciem zostać zorganizowane przez system operacyjny na drodze programowej. Operacja ta przypisuje logicznym numerom bloków (NB) fizyczne obszary pamięci.
W modułach pamięci o pojemności 32k słów każdy organizowane są na drodze programowej bloki pamięci o pojemności od 4k do 32k słów z przyrostem co 4k. Każdemu modułowi jest nadawany numer (za pomocą zworki na pakiecie pamięci), według którego następuje wybranie modułu przy programowym organizowaniu pamięci. W ramach każdego modułu zrealizowanych jest osiem segmentów po 4k, którym przydziela się numer bloku i adres w bloku, zapamiętywane w rejestrze adresu logicznego segmentu pamięci.
Programowy podział pamięci dokonywany jest rozkazem OU. Zawartość argumentów rozkazu OU dla programowego podziału pamięci jest następująca:
Na podstawie pierwszego argumentu (w rejestrze określonym polem A rozkazu) przydziela się numer bloku (NB) i adres w bloku (AB), i zapisuje w rejestrze adresu logicznego, który wybierany jest drugim argumentem. Numer bloku i adres w bloku określany jest jako adres logiczny. Ponieważ segment ma zawsze obszar 4k słów, przy dokonywaniu podziału programowego wpisuje się tylko cztery najstarsze pozycje adresu w bloku.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
AB | - | NB |
Na podstawie drugiego argumentu (argument normalny N) jest określane:
- skierowanie rozkazu OU do pamięci operacyjnej (bit 15=1),
- wybór modułu pamięci (MP) według jego numeru,
- wybór rejestru adresu logicznego (AL).
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
- | AL | MP | 1 |
Programowy podział pamięci pozwala efektywnie wykorzystać pamięć operacyjną minikomputera, dzięki możliwości przydzielenia programom bloków o rozmiarach odpowiadających ich potrzebom.