Krátký pohled na PDP-11, nejvlivnější minipočítač všech dob

Krátký pohled na PDP-11, nejvlivnější minipočítač všech dob

Historii výpočetní techniky lze zhruba rozdělit do tří epoch: éru sálových počítačů, minipočítačů a mikropočítačů. Minipočítače se staly důležitým pojítkem mezi prvními sálovými počítači a dnešními všudypřítomnými mikropočítači. Toto je příběh PDP-11, nejvlivnějšího a nejúspěšnějšího minipočítače.

Svého času byly minipočítače používány v různých aplikacích. Sloužily jako komunikační řadiče, řadiče přístrojů, velké systémové preprocesory, stolní kalkulátory a procesory pro sběr dat v reálném čase. Ale také položily základy pro významný pokrok v hardwarové architektuře a významně přispěly k moderním operačním systémům, programovacím jazykům a interaktivním počítačům, jak je známe dnes.

V dnešním světě výpočetní techniky, ve kterém každý počítač běží na nějaké verzi Windows, Mac nebo Linuxu, je těžké rozlišit procesory, které jsou základem operačního systému. Ale byla doba, kdy na rozdílech v architektuře CPU hodně záleželo. PDP-11 pomáhá vysvětlit, proč tomu tak je.

PDP-11 byl představen v roce 1970, kdy byla většina počítačů prováděna na drahých sálových počítačích GE, CDC a IBM, ke kterým mělo přístup jen málo lidí. Nebyly tam žádné notebooky, žádné stolní počítače, žádné osobní počítače. Pouze několik společností se zabývalo programováním, většinou v assembleru, COBOL a FORTRAN. Vstup byl proveden pomocí děrných štítků a programy byly spouštěny neinteraktivními dávkovými běhy.

Přestože byl první PDP-11 skromný, připravil půdu pro invazi minipočítačů, která učinila počítače nové generace dostupnějšími, což v podstatě znamenalo revoluci ve výpočetní technice. PDP-11 pomohl vytvořit operační systém UNIX a programovací jazyk C. To by také výrazně ovlivnilo další generaci počítačových architektur. Za 22 let života PDP-11 – na dnešní poměry bezprecedentní množství času – se prodalo více než 600 000 PDP-11.

Rané PDP-11 nebyly tak působivé. První 11/20 PDP-11 stál 20 000 $, ale měl pouze 4 KB RAM. Jako úložiště používal papírovou pásku a měl dálnopisnou konzolu ASR-33, která tiskla 10 znaků za sekundu. Ale měl také úžasnou ortogonální 16bitovou architekturu, osm registrů, 65 KB adresního prostoru, dobu cyklu 1,25 MHz a flexibilní hardwarovou sběrnici UNIBUS, která podporovala budoucí hardwarové periferie. Pro jeho tvůrce, společnost Digital Equipment Corporation, to byla vítězná kombinace.

Počáteční aplikace pro PDP-11 zahrnovala řízení hardwaru v reálném čase, automatizaci výroby a zpracování dat. Jak PDP-11 získal reputaci pro flexibilitu, programovatelnost a cenovou dostupnost, našel využití v systémech řízení semaforů, systému protiraketové obrany Nike, řízení letového provozu, jaderných elektrárnách, výcvikových systémech pilotů námořnictva a telekomunikacích. Byl také průkopníkem zpracování textu a zpracování dat, které dnes považujeme za samozřejmost.

A vliv PDP-11 je nejvíce patrný v programování sestavy zařízení.

Základy programování sestav

Před vynálezem jazyků na vysoké úrovni, jako je Python, Java a Fortran, se programovalo v jazyce symbolických instrukcí. Programování v assembleru lze provádět s velmi malým množstvím paměti RAM a místa na disku, což je ideální pro začátky počítačů.

Jazyk symbolických instrukcí je nízkoúrovňový střední formát, který je převeden na strojový jazyk, který pak může počítač spustit přímo. Je to nízkoúrovňové, protože přímo ovládáte aspekty architektury počítače. Jednoduše řečeno, programování v assembleru přesouvá vaše data bajt po bajtu prostřednictvím hardwarových registrů a paměti. To, co odlišovalo programování PDP-11, byl elegantní design minipočítače. Každý pokyn měl své místo a každý pokyn měl svůj význam.

16bitový adresní prostor znamenal, že každý registr mohl přímo adresovat až 64 KB RAM, přičemž horní 4 KB byly vyhrazeny pro vstup a výstup mapovaný v paměti. PDP-11 dokázaly adresovat celkem 128 KB RAM pomocí segmentů registrů (více o tom za chvíli). Takže i když se systémy PDP-11 dodávaly pouze se 4 KB RAM, byly stále produktivní díky chytrému použití časných programovacích technik.

Montážní program

Nejjednodušší způsob, jak pochopit tento koncept, je pomocí jednoduchého programu v assembleru PDP-11, na který se podíváme níže. Klíčová slova začínající „.“ jsou direktivy pro assembler. .globlexportuje štítek jako symbol do linkeru pro použití operačním systémem. .textdefinuje začátek segmentu kódu. .datadefinuje začátek jednoho datového segmentu. Klíčová slova končící na „:“ jsou značky. Programování v jazyce symbolických instrukcí používá štítky k symbolickému adresování paměti. (Poznámka: s příchodem žargonu a kódování PDP-11 je jakýkoli text za / komentářem.)

Klíčová slova Překlad
.globl_main Exportujte štítek _main jako vstupní bod pro použití operačním systémem.
.text Začátek segmentu instrukce obsahující kód pouze pro čtení
_main: HODNOTA MOTORU 1, R0 Zkopírujte hodnotu slova z paměťového místa VAL1 do registru 0.
PŘIDAT 10 $, 0 R Přidejte 10 k hodnotě v registru 0
MOTOR R0 HODNOTA1 Zkopírujte hodnotu z registru 0 do paměťového místa VAL1.
_.data Začátek datového segmentu obsahujícího data pro čtení/zápis.
VAL1:. slovo 100 dolarů Vyhraďte 2 bajty paměti pro uložení Val1 inicializovaného na 100.

Ačkoli můžete pro adresy paměti použít číselné hodnoty, použití štítků místo pevně zakódovaných adres zjednodušuje programování a umožňuje přesouvat kód v paměti. To poskytuje operačnímu systému flexibilitu při provádění kódu, díky čemuž je každý program rychlý a efektivní.

směrnice assembleru. data umístí data do segmentu paměti, který je jak čitelný, tak zapisovatelný. Segment paměti kódu je pouze pro čtení, aby se zabránilo chybám programování, aby poškodily program a způsobily selhání. Toto oddělení instrukcí od dat na PDP-11 se nazývá „oddělení instrukcí a dat“. Kromě zlepšení stability tato funkce také zdvojnásobuje adresní prostor a poskytuje 64 KB pro kód a 64 KB pro data, což bylo v té době považováno za inovaci. V souladu s tím mikropočítače Intel X86 později široce využívaly segmenty.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *