System IBM/3 - IBM System/3

System IBM/3
IBM logo.svg
Centralna jednostka systemu IBM 3 - Museo science tecnologia Milano D0828-D0830 foto.jpg
IBM System/3 model 10 w Museo Nazionale della Scienza e della Tecnologia w Mediolanie
Wprowadzono 1969 ; 52 lata temu ( 1969 )
Wycofane 1985 ; 36 lat temu ( 1985 )
Koszt 1000 USD/miesiąc do dzierżawy
Pamięć 4096 bajtów
Język IBM RPG II

IBM System / 3 był IBM średniotonowy komputer wprowadzony w 1969 roku i sprzedawane aż do roku 1985. Został on wyprodukowany przez IBM Rochester w Minnesocie jako low-end działalności mającej na mniejszych organizacji, które nadal używany komputer IBM serii 1400 komputerów lub urządzeń rekord jednostka . Jako pierwszy członek tego, co IBM nazywa swoją linią „średnią”, wprowadził także język programowania RPG II . Jest to pierwszy przodek w tej linii produktów, którego obecna wersja to seria IBM i i obejmuje bardzo udany AS/400 .

Historia

Jednostka przetwarzania System/3 i klawiatura 5496

W momencie wprowadzenia na rynek w 1969 roku był dostępny za 1000 USD miesięcznie — mniej niż połowę ceny IBM System/360 Model 20 ; najmniejszy członek rodziny IBM System/360.

Wiele oryginalnych jednostek 10 systemu System/3 było dostarczanych bez dysków, a jedynie nowy IBM 5424 Multifunction Card Unit (MFCU), który odczytywał, dziurkował, drukował i sortował nowe, mniejsze 96-kolumnowe karty dziurkowane wprowadzone w tym samym czasie.

IBM dostarczył następujące modele:

  • 1969 - IBM 5410 lub System/3 Model 10, wprowadzony (wysłany w 1970)
  • 1970 - IBM 5406 lub System/3 Model 6, wprowadzony (system zorientowany na dysk)
  • 1973 — wprowadzenie IBM 5415 lub System/3 Model 15
  • 1974 — wprowadzenie IBM 5408 lub System/3 Model 8
  • 1975 — wprowadzenie IBM 5412 lub System/3 Model 12
  • 1976 — wprowadzenie IBM 5404 lub System/3 Model 4

Modele System/3 i ich następcy System/32 , System/34 , System/36 i System/38 są ogólnie określane w terminologii IBM jako „systemy średniej klasy” — w przeciwieństwie do komputerów mainframe IBM .

Sprzęt komputerowy

96-kolumnowa karta dziurkowana
Rejestrator danych IBM 5496, dziurkacz dla 96-znakowych kart
Sorter kart IBM 5486 używany z kartami dziurkowanymi System/3

IBM System/3 został ogłoszony jako system komputerowy, który początkowo składał się z:

  • Jednostka centralna IBM 5410 Model 10
  • Wielofunkcyjna jednostka kart IBM 5424 (MFCU)
  • Drukarka liniowa IBM 5203
  • Pamięć masowa IBM 5444 (opcjonalnie)
  • Klawiatura drukarki IBM 5471
  • Klawiatura do wprowadzania danych IBM 5475
  • Rejestrator danych IBM 5496, maszyna do dziurkowania klawiszy z funkcjami drukowania i weryfikacji
  • Sortownik kart IBM 5486

Pamięć

Podstawowe modele miały zaledwie 4K (4096) bajtów pamięci z rdzeniem magnetycznym .

Bezpośredni dostęp do przechowywania

Dla pamięci masowej, system / 3 użył IBM 5444 pojedynczego talerza dysku , mniej więcej wielkości dużej pizzy; początkowo każdy talerz mieścił 2,5 MB danych. Standardową konfiguracją przechowywania był jeden lub dwa dyski stałe, każdy w osobnej wysuwanej szufladzie, w której zwykle znajdował się system operacyjny i programy opracowane przez użytkownika. Dodatkowo, każdy stały dysk może mieć dołączony wymienny dysk kasety; zazwyczaj zawierały one pliki danych związane z różnymi aplikacjami, na przykład z listą płac, a użytkownicy często mieli ich kilka. W ten sposób systemy z niższej półki mogły obsługiwać maksymalnie 10 MB pamięci online (dwa stałe, dwa wymienne), chociaż w praktyce było to bardzo drogie i nieczęste.

System/3 był również dostępny z dyskiem IBM 5445 (20 MB), a później model 15 pozwalał na napędy 3340 w stylu „winchester”. W mniejszych modelach, chociaż można było podłączyć dyski 5445, trzeba było zachować 5444 dla systemu operacyjnego i innych bibliotek programistycznych, jednak to ograniczenie zostało zmienione za pomocą oprogramowania o nazwie elimn8, które pozwoliło dyskom 5445 całkowicie zastąpić 5444. Inne firmy, takie jak Memorex, wyprodukowały kompatybilne dyski 5445 dla Systemu/3.

Karta wielofunkcyjna

Najpopularniejszym urządzeniem do kart dziurkowanych był IBM 5424 Multifunction Card Unit (MFCU), który odczytywał, dziurkował, drukował i sortował nowe, mniejsze, 96-kolumnowe karty dziurkowane . Zamiast prostokątnych dziurkaczy w klasycznej 80-kolumnowej karcie IBM, nowe karty miały małe (1 mm), okrągłe dziurki, przypominające taśmę papierową . Dane były przechowywane w sześciobitowym kodowanym binarnie kodzie dziesiętnym , z trzema rzędami po 32 znaki każdy, lub w 8-bitowym EBCDIC , z dwoma dodatkowymi otworami umieszczonymi w górnych rzędach. Nowe karty miały miejsce na 128 drukowanych znaków w czterech rzędach po 32 znaki każdy. Były one o około 1/3 wielkości starszych 80-kolumnowych kart, ale zawierały o 20% więcej danych tekstowych. Mniejsza, a tym samym lżejsza karta mogłaby być przetwarzana szybszym sprzętem i przy mniejszej liczbie zacięć.

Dostępne jako RPQ (urządzenia na specjalne zamówienie) do obsługi 80-kolumnowych kart to IBM 2560 Multifunction Card Machine (MFCM), który mógł czytać, dziurkować, interpretować i sortować, oraz IBM 1442, który mógł tylko czytać i dziurkować.

Taśma magnetyczna

Pamięć w trybie offline była dostępna po zakupie zewnętrznego napędu taśmowego, który odczytywał i zapisywał standardową 9-ścieżkową taśmę IBM .

System/3 Mod 10 opcjonalnie zawierał podsystem taśmy magnetycznej IBM 3410.

Obiekt konsoli operatora

System/3 Operator Console Facility (OCF) składał się ze zmodyfikowanej maszyny do pisania IBM Selectric podłączonej do komputera lub specjalnego wyświetlacza IBM 3270 . W ramach OCF istniała możliwość „anulowania” uruchomionych procesów i/lub zadań, w tym partycji (P1 lub P2). System mógł uruchamiać tylko dwa programy jednocześnie, z wyjątkiem modelu 15 lub systemów obsługujących program Kontroli Komunikacji, CCP. CCP był funkcją programowania sterowania systemem, która umożliwiała obsługę sieci terminali online .

Drukarki

Drukarka IBM 5203 dla Systemu/3

Mniejsza drukarka (IBM 5203) została podłączona do głównego systemu. Później IBM zaoferował wiele modeli istniejącej linii drukarek IBM 1403 , która została pierwotnie zbudowana dla komputera IBM 1401 .

Dyskietka

Wraz z pojawieniem się systemu wprowadzania danych IBM 3740 , System/3 Model 10 otrzymał funkcję zwaną LCA (lokalny adapter komunikacyjny), która umożliwiała „podłączenie” stacji IBM 3741 do systemu w celu przesyłania/odbierania danych. Późniejsze modele Systemu/3, takie jak Model 8, były bezkartowe i używały 8- calowej dyskietki w stylu 3740 .

Zestaw instrukcji

Zestaw instrukcji został zoptymalizowany pod kątem dwóch kluczowych aspektów produktu: ograniczonej dostępności pamięci głównej oraz języka programowania RPG II. Oryginalny S/3 (modele 10, a następnie 6, 8 i 12) miał 29 instrukcji, wszystkie zajmujące od 3 do 6 bajtów (24 do 48 bitów).

Pierwsze 4 bity przekazywały dużo informacji: „1111” oznaczało, że była to instrukcja bez operandów, znana jako polecenie. np. Start I/O (operacja I/O jest definiowana przez wcześniej załadowane rejestry I/O). „11xx” i „xx11” oznaczały instrukcję 1-argumentową, taką jak Branch. Jeśli xx było 00, operand był adresowany pełnym 16-bitowym adresem. xx=01 lub 10 oznacza, że ​​użyto adresowania z przemieszczeniem bazy, używając odpowiednio rejestru indeksowego 1 lub 2. Adres bazowy byłby wcześniej załadowany do jednego z dwóch rejestrów indeksowych, a instrukcja zawierałaby przesunięcie do zaledwie 256 bajtów (8 bitów adresowania).

Inne wzorce dla tego pierwszego półbajtu wskazywały na instrukcję 2-argumentową. „0000” oznaczało, że oba operandy były adresowane przez ich bezpośredni adres 16-bitowy. "0100": operand 1 używa rejestru 1 jako podstawy; operand 2 wykorzystuje adresowanie bezpośrednie. "0110": operand 1 używa rejestru 1 jako podstawy, argument 2 używa rejestru 2. I tak dalej.

Pozostałe 4 bity pierwszego bajtu dalej określały instrukcję. Taka struktura oznaczała możliwość wykonania do 64 operacji we wszystkich: 16 komendach (chociaż nigdy nie było więcej niż pięć w całej gamie produktów); 16 instrukcje 1-argumentowe zaczynające się od 11xx; 16 instrukcje 1-argumentowe zaczynające się od xx11; 16 2-argumentowe instrukcje.

Oprócz dwóch wspomnianych już rejestrów indeksowych (określanych jako 1 i 2 lub binarne 01 i 10) istniały również inne rejestry. „Reg 4” (0100) był rejestrem adresu instrukcji (IAR), który wskazywał na bieżącą instrukcję. „Reg 8” (1000) był rejestrem przywracania adresów (ARR), ustawionym przez określone instrukcje. Wśród nich była gałąź warunkowa (mnemoniczna BC), która używała go do wskazywania na bajt bezpośrednio po operacji gałęzi. Dla programistów przyzwyczajonych do zachowania mainframe IBM oznaczało to, że działanie gałęzi S/3 można porównać do warunkowego BALR (rejestr gałęzi i łączy) – bardzo przydatne przy rozgałęzianiu do podprogramu i powracaniu po jego przetworzeniu. Wreszcie „Reg 16” (00010000) był rejestrem statusu programu (PSR), zawierającym takie rzeczy, jak wyniki instrukcji porównania. Zauważ, że rejestry były używane tylko do adresowania i statusu programu, a nie do arytmetyki.

Instrukcje arytmetyczne zawarte wśród 29 instrukcji to binarne dodawanie/odejmowanie (dostarczone w celu ułatwienia manipulacji adresami) oraz dodawanie/odejmowanie dziesiętne. Mnożenie i dzielenie nie były zapewniane przez standardowy sprzęt i musiały być obsługiwane przez procedury programowe. W ogóle nie było przepisu zmiennoprzecinkowego. Wszystko to było prawdą nawet z późniejszymi i ogólnie bardziej wyrafinowanymi systemami/34 i 36.

Wszystko to stało się bardziej skomplikowane w przypadku Systemu/3 model 15 oraz Systemów/34 i /36. Chociaż nadal używają adresowania 16-bitowego, wszystkie te systemy mogą obsługiwać znacznie ponad 64 KB pamięci głównej (do 512 KB i teoretycznie więcej), więc translacja adresów została wykorzystana do zamiany jednej przestrzeni adresowej 64 KB na inną. Rejestry translacji adresów zostały ustawione tak, aby definiowały rzeczywistą przestrzeń adresową w użyciu w dowolnym momencie, ich zawartość była połączona z 16-bitowym adresem używanym przez program do tworzenia adresu rzeczywistego. Te „ATR” były uprzywilejowane, dostępne tylko dla systemu operacyjnego.

Oryginalny model S/3 10 (i późniejszy model 12) miał opcjonalną surową formę wieloprogramowania zwaną Dual Program Feature. Nie zapewniało to więcej adresowania pamięci głównej, ale dawało dwa zestawy rejestrów i instrukcji, które przeskakiwały z jednego "poziomu programu" na drugi. Zmodyfikowano również standardowe instrukcje we/wy, aby odwracały się podczas uruchamiania we/wy.

Jak dotąd wyjaśniono tutaj tylko pierwszy bajt instrukcji. Następny ("Q") bajt był ogólnie kwalifikatorem, takim jak określanie liczby bajtów, które mają zostać przeniesione w ruchu znaków op lub warunku do sprawdzenia w gałęzi. Kilka instrukcji używało tego bajtu jako 1-bajtowego „natychmiastowego” operandu. Pozostałe bajty dotyczyły przesunięcia (przemieszczeń) lub adresu (adresów) dla operandów lub szczegółów niektórych poleceń.

Przykład: proste polecenie, Przeskok Warunkowy, specjalny rodzaj gałęzi warunkowej (tylko do przodu, do 256 bajtów) nadający się głównie do przeskakiwania krótkich bloków kodu: Kod operacji bajt= F2 (jest szesnastkowy, szesnastkowy F jest binarny 1111, Hex 2 (0010) definiuje op); Q byte= 00000001 określa, że ​​„przeskakujemy”, jeśli rejestr warunków ma włączony bit „równy”; Operand= 00011000: jeśli warunek jest spełniony, przeskakujemy o 24 bajty do przodu.

Wskaźniki były przełącznikami binarnymi używanymi do sterowania przepływem programu. Ponad 100 z nich było dostępnych dla programisty. Korzystając z formatów instrukcji wyjaśnionych powyżej, wiele operacji zorientowanych na wskaźniki można zmieścić w zaledwie 3 bajtach. Na przykład wiersz RPG może testować wskaźnik na "On": 3 bajty dla operacji "Test Bits On"; następnie 3 bajty dla skoku, jak opisano wcześniej i przydatne dla kompilatora RPG. Zapisywanie nieparzystego bajtu tu i tam było dobre, gdy miałeś tylko 64 KB do zabawy – a na samym S/3 musiało to obejmować system operacyjny (który urósł do około 20 KB w modelu 10 wraz z wprowadzeniem „ Program Kontroli Komunikacji”, CCP).

Język sterowania operacjami

Prosty język sterowania zadaniami o nazwie Operation Control Language (OCL) był powierzchownie podobny do języka sterowania zadaniami (JCL).

Polecenia kontrolne operatora

Do komunikacji z systemem wykorzystano komendy sterowania operatora (OCC).

Języki

System/3 wspierał RPG II , Fortran IV , COBOL i Assembler .

Kompilator RPG II

System/3 był standardowo wyposażony w kompilator RPG II . W systemie kartowym kompilator RPG II był dostarczany w dwóch fazach. Pierwsza faza zostanie uruchomiona z jednego zasobnika wejściowego MFCU, a następnie źródło zostanie odczytane za kompilatorem. Formularz pośredni został wybity na kartach, które następnie zostały odczytane przez drugą fazę kompilatora. Następnie przebito talię programu wykonywalnego. Ten plik wykonywalny można następnie uruchomić ("IPL", dla "Początkowego ładowania programu") w celu wykonania żądanego przetwarzania. Ten proces może zająć więcej niż godzinę w przypadku programu o znacznej wielkości.

Problemy z systemem/3

System/3 nie przewidywał zatrzymania procesu po jego uruchomieniu. Na przykład, jeśli kompilacja nie powiodła się z powodu błędu na pierwszej stronie, użytkownik musiał poczekać, aż czasami obszerna lista kompilacji zostanie wydrukowana w całości. Użytkownicy nauczyli się sięgać pod drukarkę i popychać rynnę wyładowczą papieru, co powodowało zatrzymanie maszyny i wyświetlenie komunikatu „P3” (błąd drukarki). Użytkownik może następnie wybrać kod odpowiedzi FF, aby przerwać przebieg. Innym sposobem na zatrzymanie tego było po prostu naciśnięcie zielonego przycisku "Start" na konsoli, co spowodowało ponowne uruchomienie systemu.

Kody błędów były wyświetlane na dwucyfrowym siedmiosegmentowym wyświetlaczu (jednym z pierwszych widzianych i zbudowanym z lamp, a nie diod LED). Zakres kodów błędów obejmował nie tylko cyfry dziesiętne i szesnastkowe (ponieważ powszechnie stosuje się wyświetlacze siedmiosegmentowe), ale także ograniczony zestaw innych liter; na przykład „P3” był jednym z kilku kodów błędów drukarki. Obszerna instrukcja dołączona do Systemu/3 pomogła operatorowi zinterpretować kody błędów i sugerować procedury naprawcze. System/3 nie miał dźwiękowego urządzenia ostrzegawczego, więc program, który nie drukował, nie odczytywał kart lub nie powodował innych oczywistych działań, mógł się zatrzymać, a operator nie wiedziałby o tym, chyba że przypadkiem spojrzał na wyświetlacz stanu. Modele z funkcją podwójnego programu miały dwa oddzielne wyświetlacze stanu.

Większość/wielu użytkowników nie kupiło konsoli. Zamiast tego kod OCL został albo całkowicie pominięty, albo wydrukowany na drukarce 5203. Konsola oferowana przez IBM ogromnie spowalniała wykonywanie programu podczas drukowania poleceń OCL, ponieważ była to w zasadzie selektryczna maszyna do pisania .

Koncepcja wpisywania kart dziurkowanych przez konsolę była chwytem marketingowym. W rzeczywistości System/3 nie mógł być jednocześnie komputerem i dziurkaczem, więc gdy był to dziurkacz, żadne przetwarzanie nie było możliwe. Oryginalny IBM System/3, który został zaprezentowany w lipcu 1969 roku, miał konsolę do dziurkowania klawiszy, dzięki czemu mógł oferować komputer za mniej niż 2000 USD miesięcznie. W rzeczywistości było to niewykonalne i prawie zawsze użytkownicy nabyli samodzielny dziurkacz/weryfikator.

Później kilka firm OEM zbudowało 96-kolumnowe dziurkacze, sortowniki i kolatory. To odciążyło MFCU i uwolniło System/3 od rzeczywistych funkcji obliczeniowych.

Większość doświadczonych użytkowników Systemu/3 minimalizowała użycie MFCU tak bardzo, jak to możliwe, ponieważ było to wąskie gardło systemu.

Współzawodnictwo

Późniejszy System/32 , IBM System/34 i IBM System/36 były w stanie uruchamiać aplikacje Systemu/3 poprzez emulację.

System/32 używał pionowo mikrokodowanego procesora z 16-bitowymi słowami mikrokodu, które emulowały zestaw instrukcji System/3, raczej powoli, w mikrokodzie. Zarówno System/34, jak i System/36 miały dwa procesory: Control Storage Processor (CSP), podobnie jak System/32, który obsługiwał większość nadzorczych i operacji wejścia/wyjścia, oraz Main Storage Processor (MSP). Ten ostatni był reimplementacją procesora System/3 model 15; skutecznie zapewniając "emulację sprzętową" Systemu/3.

Zobacz też

Bibliografia

Dalsza lektura

  • „Wszystko, co zawsze chciałeś wiedzieć o systemie/3, ale nikt ci nie powiedział” Charlie Massoglia
  • „Sortowanie dysków System/3 jako język programowania” Charlie Massoglia
  • „System/3 Programowanie RPG II” Solomona Martina Bernarda, 1972, ISBN  0-13-881698-0
  • „Wprowadzenie do informatyki: IBM System/3” Jerome T. Murray, 1971, ISBN  0-04-510037-3
  • „System biznesowy z przetwarzaniem danych kart dziurkowanych i System/3 Model 10”, FR Crawford, 1973, ISBN  0-13-107698-1

Zewnętrzne linki