Pamięć operacyjna: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
Nie podano opisu zmian
Linia 1: Linia 1:
= Organizacja pamięci =
= Organizacja fizyczna pamięci =


Pamięć operacyjna MERY-400 dzieli się na dwa podstawowe obszary.
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 ==
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.
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 użytkowe ==
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.
Bloki użytkowe (BU) przeznaczone są dla programów użytkowych i są wzajemnie chronione. Mają numery od 1 do 15 i pojemności od 4 do 32k słów (w krokach co 4k słów). System operacyjny może korzystać z dowolnego z bloków pamięci użytkowej, adresując go z użyciem numeru bloku (NB) i adresu w obrębie bloku. Bloki użytkowe dostępne są dla systemu dopiero po programowym zorganizowaniu pamięci.


= Programowy podział 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.
{| class="wikitable" style="text-align: center;"
| width=15 | 0 || width=15 | 1 || width=15 | 2 || width=15 | 3 || width=15 | 4 || width=15 | 5 || width=15 | 6 || width=15 | 7 || width=15 | 8 || width=15 | 9 || width=15 | 10 || width=15 | 11 || width=15 | 12 || width=15 | 13 || width=15 | 14 || width=15 | 15
|-
| colspan="4" | AB || colspan="8" | - || colspan="4" | 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).
{| class="wikitable" style="text-align: center;"
| width=15 | 0 || width=15 | 1 || width=15 | 2 || width=15 | 3 || width=15 | 4 || width=15 | 5 || width=15 | 6 || width=15 | 7 || width=15 | 8 || width=15 | 9 || width=15 | 10 || width=15 | 11 || width=15 | 12 || width=15 | 13 || width=15 | 14 || width=15 | 15
|-
| colspan="8" | - || colspan="3" | AL || colspan="4" | MP || 1
|}

Wersja z 21:25, 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