Seria SDS9
Komputery z serii SDS 9 to kompatybilna wstecz linia komputerów tranzystorowych wyprodukowanych przez Scientific Data Systems w latach sześćdziesiątych i siedemdziesiątych XX wieku. Linia ta obejmuje SDS 910 , SDS 920 , SDS 925 , SDS 930 , SDS 940 i SDS 945 . SDS 9300 jest rozszerzeniem architektury 9xx. SDS 92 z 1965 r. to niekompatybilny 12-bitowy system zbudowany przy użyciu monolitycznych układów scalonych .
Modele 910 i 920 zostały po raz pierwszy wysłane w sierpniu 1962 r. Model 9300 został ogłoszony w czerwcu 1963 r. Modele 925 i 930 zostały ogłoszone w 1964 r. Model 940 został ogłoszony w 1965 r., a 945 w 1968 r.
Seria 9 została zastąpiona serią SDS Sigma .
Ogólny opis
Wszystkie systemy są 24-bitowymi maszynami z jednym adresem. Rejestry dostępne dla programisty to A (akumulator), B (rozszerzenie), X (indeks) i P (licznik programu — 14 bitów) oraz wskaźnik przepełnienia. Model 9300 ma trzy rejestry indeksowe od X1 do X3, które można wykorzystać jako rejestry podstawowe , aby umożliwić dostęp do pamięci o pojemności powyżej 16 tys. słów. Rejestry W i Y służą do wejścia/wyjścia.
Maksymalna przestrzeń adresowa wynosi 2 14 lub 16 384 słów (16 KW — 64 KB znaków) w modelach 910 i 920. Modele 9300 i 930 obsługują do 32 KB (128 KB znaków), a 940 i 945 obsługują do 64 KB (256 KB znaków) ), chociaż metoda dostępu do pamięci powyżej 16 KB jest inna.
Formaty danych
Dane o punkcie stałym to 24 bity, uzupełnienie do dwóch , big-endian .
Liczba zmiennoprzecinkowa jest implementowana w oprogramowaniu przy użyciu „programowanych operatorów”, z wyjątkiem SDS 9300, który ma sprzętową funkcję zmiennoprzecinkową. Wszystkie liczby zmiennoprzecinkowe są przechowywane jako 48-bitowe słowa podwójne. Pojedyncza precyzja ma 24-bitowy ułamek ze znakiem i 9-bitowy wykładnik ze znakiem, a podwójna precyzja ma 39-bitowy ułamek i 9-bitowy wykładnik. Zarówno wykładnik, jak i ułamek są przechowywane w formacie big-endian z uzupełnieniem dwójkowym. Zakłada się, że punkt binarny znajduje się bezpośrednio na lewo od bitu wyższego rzędu ułamka. Wartość liczby to F*2 E
, gdzie F jest ułamkiem, a E jest wykładnikiem.
Formaty zmiennoprzecinkowe to:
Liczba zmiennoprzecinkowa podwójnej precyzji +---------------------------------------+ |±| Ułamek | słowo wyższego rzędu +-+------+-+---------+ | frac(cd.) |±|wykładnik | Słowo młodsze +------------+-+-------------+ bit 0 1 2 5 3 Słowo starsze: bit 0 znak ułamka bity 1-23 część ułamka wyższego rzędu słowo młodszego rzędu: bity 0-14 część ułamka młodszego rzędu bit 15 znak wykładnika bity 16-23 wykładnik zmiennoprzecinkowy
pojedynczej precyzji +------------------- ----------+ |±| Ułamek | słowo wyższego rzędu +-+------+-+---------+ | nie używany |±|wykładnik | słowo niższego rzędu +------------+-+-------------+ bit 0 1 2 5 3 Format jest taki sam jak w przypadku podwójnej precyzji, z tą różnicą, że tylko 24 bity frakcji.
Generowanie adresu
W przypadku generowania adresu indeksowanie , jeśli zostało określone, jest wykonywane przed pośrednim . Słowo pod efektywnym adresem pośrednim jest dekodowane tak, jakby było instrukcją (z wyjątkiem tego, że kod instrukcji jest ignorowany), dzięki czemu adres pośredni może również określać pośredniość lub indeksowanie. Dopuszczalnych jest wiele poziomów adresowania pośredniego.
Zaprogramowani operatorzy
Funkcja zaprogramowanego operatora pozwala polu kodu instrukcji wskazać wywołanie wektora adresów podprogramów. Sześciobitowy kod instrukcji pozwala na zaprogramowanie do 64 operatorów (ósemkowe od 00 do 77). Jeśli P , kod instrukcji xx jest traktowany jako wywołanie lokalizacji 1xx (ósemkowej). Lokalizacja instrukcji POP jest zapisywana w lokalizacji zerowej. Bit zero lokalizacji zerowej jest ustawiany na aktualną wartość wskaźnika przepełnienia, a wskaźnik jest resetowany. Bit 9 lokalizacji zerowej jest ustawiony na „1” w celu wskazania adresu pośredniego, umożliwiając zaprogramowanej procedurze operatora pośredni dostęp do danych określonych w adresie instrukcji POP.
SD 910
Pamięć główna modelu 910 zawiera od 2048 do 16384 słów pamięci z rdzeniem magnetycznym i czas cyklu wynosi 8 μs. Instrukcja dodawania punktu stałego zajmuje 16 μs, mnożenie punktu stałego zajmuje 248 μs. Dwa przerwania sprzętowe są w standardzie, a opcjonalnie można ich dodać do 896.
Format instrukcji dla systemów 910 i 920 jest następujący:
+-+-+-+------+-+-------------+ |0|X|P|Kod operacji|I| Adres | +-+-+-+------+-+------------------+ 1 2 bit 0 1 2 3 8 9 0 3 Bity 0-2 nazywane są „ tag” Bit 0 ma zawsze wartość zero. Bit 1 '1'b wskazuje, że adres argumentu ma być indeksowany. Bit 2 „1”b wskazuje, że ta instrukcja jest operatorem programowanym (POP). Bity 3-8 to kod instrukcji lub identyfikator zaprogramowanego operatora. Bit 9 '1'b wskazuje, że adres argumentu będzie pośredni (indeksowanie poprzedzające pośrednictwo), potencjalnie rekurencyjnie. Bity 10-23 Zawierają adres argumentu.
SDS 910 ważył około 900 funtów (410 kg).
SDS 920
Pamięć główna modelu 920 zawiera od 4096 do 16384 słów pamięci z rdzeniem magnetycznym. Czas dodawania punktu stałego jest taki sam jak w przypadku 910 (16 μs), ale mnożenie punktu stałego jest w przybliżeniu dwukrotnie szybsze i wynosi 128 μs. Model 920 może mieć do 1024 przerwań priorytetowych.
Model 920 ważył około 1000 funtów (450 kg).
SDS 930
Model 930 oferuje „system rozszerzenia pamięci”, który umożliwia adresowanie więcej niż 16284 słów. Dostępne są dwa 3-bitowe „rejestry rozszerzające pamięć”, zwane EM2 i EM3, do których można załadować wartość, która będzie używana jako trzy bity wyższego rzędu adresu efektywnego. Adresy 00000 8 –17777 8 (pierwsze 8192 słowa pamięci) pozostają zawsze niezmodyfikowane. Jeśli najwyższa cyfra ósemkowa adresu w instrukcji wynosi dwa, zawartość EM2 zastępuje cyfrę wyższego rzędu w adresie efektywnym; gdy cyfrą jest trzy, używana jest zawartość EM3.
Aby zachować kompatybilność z wcześniejszymi modelami. po uruchomieniu komputera wartość w EM2 jest ustawiana na 2, a EM3 na 3, umożliwiając programom adresowanie pierwszych 16384 słów pamięci. Rejestry te mogą być ładowane przez program.
Program ładujący program używa starszego bitu instrukcji, ignorowanego przez wszystkie modele, jako flagi wskazującej, że aktualnie ładowana instrukcja ma zostać przeniesiona.
Pamięć 930 ma czas cyklu 1,75 μs. Dodawanie punktu stałego zajmuje 3,5 μs, a mnożenie punktu stałego 7,0 μs. System przerwań priorytetowych umożliwia od 2 do 38 przerwań wejścia/wyjścia i do 896 przerwań systemowych.
Format instrukcji dla systemu 930 jest kompatybilny z wcześniejszymi systemami, z wyjątkiem bitów używanych do rozszerzonej pamięci:
+-+-+-+------+-+--+---------+ |0|X|P|Kod operacji|I|EM| Adres | +-+-+-+------+-+--+----------+ bit 0 1 2 3 3 9 11 1 2 01 2 3 Bity 10 i 11 określają albo nie pamięć rozszerzona (EM='00'b — odnosi się do pierwszych 8 tys. słów pamięci) lub dołącz zawartość EM2 (EM='10'b) lub EM3 (EM='11'b) w celu utworzenia adresu efektywnego.
SDS 940
Model 940 dodaje tryby działania umożliwiające obsługę wielu użytkowników. Tryb pracy poprzednich modeli został przemianowany na tryb normalny . Nowy tryb monitorowania ogranicza dostęp do wejść/wyjść i niektórych uprzywilejowanych instrukcji. Tryb użytkownika służy do uruchamiania aplikacji użytkownika.
Zestaw rejestrów mapy pamięci służy do mapowania adresów wirtualnych na fizyczne. Istnieje osiem rejestrów mapy pamięci, każdy odwzorowujący 2K słów, co zapewnia przestrzeń adresową 16K.
Format instrukcji dla trybu normalnego jest taki sam jak dla 930. Adresowanie różni się w trybie użytkownika i trybie monitorowania.
Format instrukcji trybu użytkownika SDS 940: +-+-+-+------+-+---+---------+ |U|X|P|Opcode|I|Blk| Adres | +-+-+-+------+-+---+---------+ bit 0 1 2 3 3 9 1 1 2 0 3 3 Bit 0 jest ignorowany w trybie użytkownika chyba że pozycja bitu 2 (P) wskazuje, że jest to operator programowany. W tym przypadku „1”b na pozycji bitu 0 wskazuje, że jest to „systemowy POP” lub „SYSPOP” zamiast standardowego operatora programowanego. W trybie użytkownika pozycje bitów 10–12 „stanowią numer bloku pamięci wirtualnej”, czyli określają rejestr mapy pamięci, a bity 13–23 „określają lokalizację w bloku pamięci wirtualnej”. Zawartość rejestru mapy pamięci jest dodawana do bitów instrukcji 13–23 w celu utworzenia adresu efektywnego.
Mapa pamięci
Model 940 uzyskuje dostęp do pamięci poprzez mapę pamięci, aby zapewnić pamięć wirtualną . Formaty map różnią się nieco pomiędzy mapą pamięci użytkownika i mapą pamięci monitora .
W przypadku programów działających w trybie użytkownika trzy bity wyższego rzędu w polu adresowym instrukcji służą jako indeks tablicy ośmiu rejestrów (R0-R7). Każdy rejestr zawiera 5-bitową wartość ( Rn . ), która jest dodawana do 11 bitów niższego rzędu pola adresu instrukcji, tworząc 16-bitowy adres fizyczny Dzieli to logicznie pamięć wirtualną na osiem bloków po 2048 słów każdy. Rejestry umożliwiają dostęp do 16 tys. słów w dowolnym momencie z możliwych 32 tys. słów pamięci fizycznej. Szósty bit ( Pn ) w każdym rejestrze wskazuje blok pamięci tylko do odczytu. R n =0 i P n =1 wskazują nieprzypisany blok, a każde odwołanie powoduje pułapkę . Rejestry mapy można ustawić tylko w trybie monitorowania.
Mapa pamięci dla trybu monitora jest podobna. Nie ma P ; odpowiedniki 0 R –R 5 , zwane 0 M –M 5 , zawierają wartości tylko do odczytu 0–5, zapewniając bezpośredni dostęp do adresów fizycznych 0–8K-1 (00000–17777 8 ). Dla adresów z zakresu 8K–12K-1 (20000–27777 8 ) rejestr rozszerzenia pamięci EM2 jest używany do utworzenia adresu fizycznego, tak jak ma to miejsce w trybie normalnym. Dla adresów 12K–16K-1 (30000–37777 8 ) zawartość rejestrów mapy pamięci M 6 i M 7 służy do tworzenia adresu.
Monitor może wykorzystywać mapę pamięci monitora lub mapę pamięci użytkownika, określoną przez wartość bitu 0 instrukcji. Umożliwia to monitorowi dostęp do przestrzeni adresowej użytkownika.
Operatorzy zaprogramowani w systemie
W trybie użytkownika zaprogramowani operatorzy działają tak samo jak w trybie normalnym, uzyskując dostęp do wirtualnych lokalizacji użytkownika 100-177 8 . Model 940 zawiera także funkcję wykonywania operatorów programowanych systemowo (SYSPOPS) , używanych do wywoływania usług monitorowania. Kiedy w trybie użytkownika napotkany zostanie komunikat SYSPOP (bity instrukcji 0 i 2 to „1” b), komputer najpierw przechodzi w tryb monitora, a następnie uzyskuje dostęp do wektora instrukcji na ( fizycznym) 100-177 8 monitora .
Karta SD 945
Model 945 stanowi aktualizację systemu podziału czasu modelu 940. Reklamowano go jako zdolny do „obsługiwania do 24 jednoczesnych użytkowników i do 64 autoryzowanych użytkowników”.
MAGPAK
Podsystem napędu taśmowego MAGPAK 9446 i powiązana z nim kaseta z taśmą 9401 zostały opracowane przez firmę SDS dla serii SDS 900 i ogłoszone w maju 1964 r. Każdy napęd taśmowy składa się z dwóch niezależnie sterowanych napędów taśm magnetycznych zamontowanych na standardowym panelu 10½ cala na 19 cali. Dane są zapisywane z szybkością 7,5 cala na sekundę i 1400 bitów na cal. Jednostka sterowania taśmami 9448 umożliwia podłączenie jednostki napędu taśm do dowolnego systemu serii 900. Kaseta z taśmą zawiera około 600 stóp taśmy Mylar z dwiema niezależnymi ścieżkami, każda mieszcząca około 1,5 miliona znaków IBM (6 bitów plus parzystość), co daje pojemność około 4 milionów sześciobitowych znaków na kasetę.
Oprogramowanie
Podstawowym systemem operacyjnym dla tej linii, z wyjątkiem modeli 940 i 945, jest system operacyjny MONARCH . MONARCH to jednozadaniowy system operacyjny wsadowy . Pierwotnie zapisane na taśmie magnetycznej , późniejsze wersje mogą znajdować się na dysku magnetycznym typu head-per-track zwanym plikiem RAD (Rapid Access Data). MONARCH nie jest systemem wykonawczym , ponieważ programy użytkowe kontrolują wszystkie zasoby komputera podczas działania. Zamiast tego jest to monitor zapewniający przejście z zadania do zadania i usługi wspierające aplikacje.
Procedura monitorująca akceptuje informacje sterujące, które między innymi mogą obejmować żądanie załadowania i wykonania określonej standardowej procedury systemowej. Monitor wykonuje swoje funkcje pomiędzy zadaniami i nie sprawuje kontroli nad wykonaniem programu po załadowaniu tego programu i przekazaniu mu kontroli przez monitor. ... Ta część monitora, która pozostaje w pamięci rdzeniowej podczas wykonywania programu, składa się z procedury startowej monitora i tabeli przypisań jednostek.
Inne standardowe procedury systemowe zawarte w monitorze to:
- Ładowarka MONARCH
- Procedura aktualizacji MONARCH
- Standardowe podprogramy wejścia/wyjścia
- Asembler metasymbolu
- Kompilator FORTRAN II
Do roku 1969 dostępny był kompilator ALGOL 60 .