kuzu do rzoczywistoj pojemności pamięci operacyjnej - pozwoli to na oszczędność pamięci zajmowanej przez program.
Dalszą konsekwencją umioszczania w słowach kodowych informacji o typie danych zawartych w opisywanym bloku jest związanie informacji o formacie danych z danymi, a nie z kodem rozkazu -jak to było w maszynach tradycyjnych. Prowadzi to do skrócenia liczby rozkazów, skróconia kodu operacji, a ponieważ dane umieszczano są najczęściej w blokach zawierających dane tego sarnogo rodzaju - również do oszozędności pamięci*.
Iliffe podaje następujący przykład: jeżeli maszyna (dwuadrosowa) rozpoznaje cztery typy argumentów (stałoprzecinkowe krótkie i długie oraz zmiennoprzecinkowe krótkie i długie ) i sześć typów operacji elementarnych ( np.: prześlij, porównaj, dodaj, odejmij, mnóż, dziel ) to teoretycznie możliwych Jest 96 różnych rozkazów typu rejestr-rojestr; jeżeli każdy z argumentów możo znajdować 3ię również w pamięci operacyjnej, to liczba możliwych rozkazów wzrośnie do 38^. V/ prakty-co znacznie zmniejsza się zbiór możliwych rozkazów ze względów czysto ekonomicznych.
Wiązanie informacji o formatach danych z danymi pozwoli na rozszerzenie funkcji rozkazu. Jo-don rozkaz daje się zastosować do wiolu formatów danych o dowolnej długości. Ten sam rozkaz "dodaj” można użyć do wykonania operacji na liczbach rzeczywistych stało- i zmiennoprzecinkowych, do liczb zespolonych, wektorów, a nawot macierzy!
Oprócz zwiększonia mocy pojedynczego rozkazu, jawno definiowanie struktury danych pozwoli na ujednolicenie i uproszczenie niektórych podstawowych algorytmów. Jeżeli, na przykład, należy wykonać pętlę programową, która dokonuje ciągu operacji na kolejnych elomontach tablicy, zbytecz-no jest określanie jej granic w programie. Sprzętowa interpretacja struktury może zapownić wyjś-cio z pętli po wyczerpaniu olementów tablicy.
Omówimy toraz bliżej strukturę zaproponowaną przez Iliffe'a. Z każdą informacją w maszynio bazowoj związany jest wskaźnik ( ang. tag ) określający sposób interpretacji danej informacji przez maszynę. Istnieją cztery wartości wskaźnika. Ich znaczenie jest następujące:
0 - słowo binarne pojedynczej długości
1 - informacja wymaga interpretacji programowej przez przerwanie ( np. jeszcze nie zakończono
formowania bloku )
2 - adre6 (takim wskaźnikiem opatrywane są słowa kodowe )
3 - liczba podwójnoj długości
Z każdym blokiem danych wiąże się informacja o rodzaju zawartych w nim danych, tzw. typ, który jest częścią słowa kodowego. Fonnat słowa kodowego przedstawiono na rys. 2.
WSK |
TYP |
DŁUGOŚĆ |
BAZA |
Rys. 2. Format słowa kodowego
baza (ang. datum ) określa adres bazowy (adres początku bloku) informacji opisywanych przez owo kodowo. Długość (ang. limit i określa rozmiar bloku. WSK oznacza omówiony już wskaźnik. Folo TXP określa rodzaj informacji w odpowiednim bloku. Iliffe wprowadza 16 następujących typów:
0 - słowo binarne
1 - bajt (znak)
2 - słowo binarne (tylko odczyt - próba zapisu powoduje błąd)
3 - bajt (tylko odczyt)
4
3
6
7
rozkazy w różnych rodzajach pracy (np. wykonywanie z monitorowaniem)
6 - absolutne słowo kodowe (baza jest adresem absolutnym) 9 - względne słowo kodowe (baza jest adresom względnym)
10 - typ mieszany - w bloku są elemonty różnych typów