náhled|250px|PDP-11/40 je ve spodní části racku. V horní části je dvojitá pásková jednotka TU56 PDP-11 byla řada 16bitových minipočítačů firmy Digital Equipment Corporation (DEC) prodávaných od roku 1970 do 90. let 20. století. Počítače PDP-11 byly součástí rozsáhlejší řady PDP a měly řadu unikátních vlastností. Jejich programování bylo díky přidaným víceúčelovým registrům snazší než programování jejich předchůdců. V mnoha aplikacích pracujících v reálném čase nahradila řada PDP-11 počítače PDP-8, ačkoli obě produktové řady existovaly současně déle než 10 roků. Celkem bylo prodáno okolo 600 tisíc počítačů PDP-11 všech modelů, což z nich činí nejúspěšnější produktovou řadu firmy DEC. Číslo 11 v názvu následníka PDP-11 v oboru středních minipočítačů – 32bitového VAX-11 – bylo převzato jako připomínka oblíbenosti PDP-11.
Architektura PDP-11 ovlivnila návrh mikroprocesorů Motorola 68000; architektura operačních systémů pro PDP-11 i další OS firmy DEC ovlivnily jiné operační systémy jako CP/M a MS-DOS. První oficiálně pojmenovaná verze Unixu běžela v roce 1970 na PDP-11/20. Často se připomíná, že několik nízkoúrovňových vlastností programovacího jazyka C pochází z PDP-11Bakyo, John. "DEC PDP-11, benchmark for the first 16/32 bit generation. (1970)" v Great Microprocessors of Past a Present (V 13.4.0), Section Three, Part I. Accessed 2011-03-04, i když nebyly převzaty úmyslně.
Historie Firma DEC vyvinula 16bitový počítač PDP 11 jako odpověď na zavádění 16bitových počítačů Data General NOVA; předchozí řada počítačů PDP-8 firmy DEC měla pouze 12bitové slovo. Rodina PDP 11 byla představena v lednu 1970 a dodávky začaly na počátku téhož roku. V 70. letech 20. století prodala firma DEC přes 170 tisíc kusů PDP-11Paul Cerruzi, A History of Modern Computing, MIT Press, 2003, , stránka 199. První PDP-11 používaly obvody TTL nízké integrace; v roce 1975 byla vyvinuta jednodesková verze procesoru s obvody LSI; v roce 1979 byl vyvinut jednočipový procesor J-11. Poslední modely řady PDP-11 byly PDP-11/94 a PDP-11/93 uvedené v roce 1990.
Inovativní vlastnosti
Ortogonalita instrukční sady Procesor PDP-11 měl téměř ortogonální instrukční sadu. Místo instrukcí load a store používal instrukci move, jejíž oba operandy (zdroj a cíl) mohl být obsah paměti i registrů. Procesor neměl zvláštní instrukce pro vstup a výstup; používal paměťově mapované I/O, takže i pro komunikaci se vstupy a výstupy se používala instrukce move; díky ortogonalitě bylo dokonce možné přesouvat data přímo ze vstupního zařízení na výstupní. Složitější instrukce jako například add mohly také používat paměť, registry nebo vstupy či výstupy jako zdrojové i cílové operandy.
Jako operandy většina operací se mohl používat libovolný z osmi registrů a libovolná z osmi metod adresování:
registr přímý operand () absolutní adresa relativní adresa nepřímá adresa () indexované adresování
a mohlo zahrnovat autoinkrementaci nebo autodekrementaci obsahu registru o 1 (pro bytové instrukce) nebo 2 (pro instrukce pracující se slovy). Díky použití relativního adresování byl program ve strojovém kódu pozičně nezávislý.
Neexistence vyhrazených V/V instrukcí První modely PDP-11 neměly oddělenou sběrnici pro vstupy/výstupy. Sběrnice Unibus sloužila jak pro připojení paměti, tak pro vstupní a výstupní zařízení, jejichž registry byly mapovány na paměťové adresy.
Vstupní a výstupní zařízení se vybíralo pomocí paměťových adres a umožňovalo vybrat vektor přerušení a prioritu přerušení. Tento flexibilní rámec poskytovaný architekturou procesoru usnadňoval návrh zařízení pro novou sběrnici, včetně zařízení na řízení hardware, které nebyly uvažovány v době, kdy byl procesor navrhovaný. Firma DEC veřejně publikovala základní standardy sběrnice Unibus, nabízela prototypování obvodových desek rozhraní sběrnice a podporovala zákazníky ve vývoji vlastního hardwaru kompatibilního se sběrnicí Unibus.
Díky sběrnici Unibus byl počítač PDP-11 vhodný pro zákaznická periferní zařízení. Firma Bell Telephone Manufacturing Company (jeden z předchůdců Alcatel-Lucent) vyvinula síť BTMC DPS-1500 s přepojováním paketů pracující s protokolem X.25, jejíž regionální a národní centrum používalo počítače PDP-11, které měly sběrnici Unibus přímo propojenou s hardwarem pro DPS-1500.
Výkonnější členy rodiny PDP-11 počínaje systémy PDP-11/45 Unibus a 11/83 Q-Bus opustily jednosběrnicový přístup. Místo toho byla paměť připojena specializovanými obvody ve skříni procesoru, zatímco sběrnice Unibus se používala pouze pro vstupy/výstupy. PDP-11/70 tento přístup rozšířil přidáním vyhrazeného rozhraní mezi disky a páskami a pamětí pomocí sběrnice Massbus. Ačkoli vstupní a výstupní zařízení byla stále mapována na paměťové adresy, bylo nutné doprogramovat podporu pro přidaná rozhraní sběrnice.
Přerušení Počítač PDP-11 podporoval hardwarové přerušení se čtyřmi úrovněmi priority. Přerušení byla obsluhována obslužnými funkcemi, které mohly stanovit, zda mohou být samy přerušeny (což dovoluje vnořování přerušení). Událost, které způsobila přerušení, byla indikována samotným zařízením, které informovalo procesor o adrese vlastního vektoru přerušení.
Vektory přerušení tvoří blok dvojic 16bitových slov v dolním adresním prostoru jádra (který normálně odpovídal dolní fyzické paměti) na adresách 0 až 7768. První slovo vektoru přerušení obsahovalo adresu obslužné funkce přerušení, druhé slovo hodnotu, která se při vstupu do obslužné funkce zaváděla do registru PSW (úroveň priority).
Článek o architektuře PDP-11 poskytuje více informací o přerušení.
Navržený pro hromadnou výrobu Počítač PDP-11 byl navržen tak, aby jej mohli vyrábět průměrně schopní dělníci. Rozměry jeho součástí nebyly příliš kritické. Používal backplane s ovíjenými spoji. Jednotlivé desky s plošnými spoji se zapojovaly do backplane pomocí konektoru. Konektory měly hranaté piny, které mohly být propojeny ovinutím vodičů. Rohy pinů se zařezaly do vodičů, takže vzniklo vzduchotěsné (tj. odolné proti korozi, proto spolehlivé) spojení.
LSI-11 náhled|PDP-11/03 (nahoře vpravo) Počítač LSI-11 (PDP-11/03) představený v únoru 1975 byl prvním modelem PDP-11 používajícím obvody vysoké integrace (LSI); procesor se skládal z čtyř LSI obvodů firmy Western Digital (čipová sada MCP-1600; pro rozšíření instrukční sady mohl být přidán pátý obvod, viz obrázek vpravo). Používal sběrnici nazývanou LSI Bus nebo Q-Bus odvozenou od sběrnice Unibus; hlavním rozdílem bylo, že adresa a data byly multiplexovány na sdílené sadě vodičů, zatímco sběrnice Unibus používala oddělené sady vodičů. Také se poněkud lišilo adresování V/V zařízení a bylo možné pracovat s 22bitovou fyzickou adresou (Unibus měl pouze 18bitovou) a používat operace v blokovém režimu (které sběrnice Unibus nepodporovala), které výrazně zrychlovaly přenosy.
Mikrokód procesoru zahrnoval debugger: firmware s přímým sériovým rozhraním (RS-232 nebo proudová smyčka) na terminál. To dovolovalo operátorovi provádět ladění zadáváním příkazů a čtením osmičkových čísel, místo používání přepínačů a čtení kontrolek, což byla v té době typická metoda ladění. Operátor mohl číst a měnit obsah registrů paměti a V/V zařízení, a tím odhalovat a opravovat chyby v softwaru a periferních zařízeních (pokud selhání nezrušilo samotný mikrokód). Operátor mohl také zadat, ze kterého disku se má zavést operační systém.
Obě vylepšení zvýšila spolehlivost a snížila cenu LSI-11.
Pozdější systémy používající Q-Bus jako LSI-11/23, /73 a /83 používaly čipové sady navržené firmou DEC. Pozdější systémy PDP-11 používající sběrnici Unibus byly navrženy s podobnými procesorovými kartami Q-Bus a pomocí adaptéru Unibus podporovaly existující periferie Unibus, někdy se speciální paměťovou sběrnicí pro zvýšení rychlosti.
Řada se sběrnicí Q-Bus přinesla další významná vylepšení. Varianta PDP-11/03 například zavedla plný systémový Power On Self Test (POST).
Ústup Základní návrh PDP-11 byl velmi flexibilní a byl průběžně aktualizován pro použití novějších technologií. Ale omezená propustnost sběrnic Unibus a Q-Bus se stala úzkým hrdlem pro výkonnost systému a omezení velikosti logické adresy na 16 bitů znemožňovalo vývoj větších softwarových aplikací. Článek o architektuře PDP-11 popisuje hardwarové a softwarové techniky používané pro překonání omezení adresního prostoru.
32bitový následník PDP-11 firmy DEC nazvaný VAX-11 (zkratka z „Virtual Address eXtension“) překonával omezení 16bitových adres, a byl zpočátku superminipočítač určený pro náročný trh se systémy se sdílením času. První VAXy poskytovaly režim kompatibilní s PDP-11, ve kterém bylo možné používat většinu existujícího softwaru současně s novějším 32bitovým softwarem, ale tato funkčnost byla opuštěna s nástupem MicroVAX.
Deset let byly PDP-11 nejmenšími počítači, na kterých běžel Unix, ale v 80. letech 20. století IBM PC a jeho klony z větší části převzaly malý počítačový trh a firma DEC nebyla schopna této konkurenci odolávat. Časopis Byte v roce 1984 napsal, že mikroprocesor Intel 8088 má v systému Unix větší výkon než PDP-11. Novější mikroprocesory jako například Motorola 68000 (1979) a Intel 80386 (1985) také umožňovaly 32bitové logické adresování. Jejich hromadná výroba odstranila veškerou cenovou výhodu 16bitových počítačů PDP-11. Řada osobních počítačů DEC Professional vycházejících z PDP-11 obchodně neuspěla, stejně jako jiné počítače z nabídky firmy DEC.
V roce 1994 DEC prodal softwarová práva na systém PDP-11 firmě Mentec Inc., irskému výrobci desek LSI pro Q-Bus a osobní počítače s architekturou ISA, a v roce 1997 ukončil výrobu PDP-11 Mentec několik let vyráběl nové procesory PDP-11. Další společnosti nalezly tržní niku v náhradách za originální procesory PDP-11, diskové subsystémy, atd.
V posledních letech 20. století se většina počítačového průmyslu Nové Anglie založeného na minipočítačích podobných PDP-11 zhroutila kvůli konkurenci pracovních stanic a serverů používajících mikroprocesory.
Modely Procesory PDP-11 lze rozdělit na několik přirozených skupin podle původního návrhu a podle toho, jakou V/V sběrnici používaly. V každé skupině byla většina modelů nabízena ve dvou verzích, jedné určené pro OEM a druhé pro koncové uživatele. Ačkoli všechny modely používaly stejnou instrukční sadu, pozdější modely přidaly nové instrukce a interpretovaly určité instrukce nepatrně odlišně. Jak se architektura vyvíjela, existovaly také odchylky ve zpracovávání některých stavových a řídicích registrů procesoru.
Modely se sběrnicí Unibus náhled|Původní čelní panel počítače PDP-11/20 náhled|Původní čelní panel počítače PDP-11/70 náhled|Pozdější PDP-11/70 s disky a páskami
Následující modely používaly jako hlavní sběrnici Unibus: PDP-11/20 a PDP-11/15 – Původní, nemikroprogramovaný procesor, jehož návrhářem byl Jim O'Loughlin. Matematický koprocesor byl podporován periferními jednotkami s různými datovými formáty. PDP-11/35 a PDP-11/40 – Mikroprogramovaný následník PDP-11/20, jehož vývojový tým vedl Jim O'Loughlin. PDP-11/45, PDP-11/50 a PDP-11/55 – Mnohem rychlejší mikroprogramovaný procesor, který mohl používat polovodičovou paměť o kapacitě až 256 kB spolu s pamětí tvořenou magnetickými jadérky nebo místo ní. První model podporoval volitelný matematický koprocesor FP11, který zavedl formát používaný v pozdějších modelech. PDP-11/70 – Počítač s architekturou 11/45 rozšířenou pro použití až 4 MB fyzické paměti na oddělené paměťové sběrnici, 2 kB cache paměti a mnohem rychlejší připojení V/V zařízení pomocí sběrnice Massbus1 MB = 1024 KB. PDP-11/05 a PDP-11/10 – Levnější následníci PDP-11/20. PDP-11/34 a PDP-11/04 – Zlevnění následníci 11/35 a 11/05; koncept PDP-11/34 vytvořil Bob Armstrong. Typ 11/34 podporoval až 256 kB paměti Unibus. PDP-11/34a podporoval rychlý matematický koprocesor a 11/34c podporoval volitelnou cache paměť. PDP-11/60 – PDP-11 s uživatelsky zapisovatelnou pamětí mikrořadiče; byl navržen dalším týmem, který vedl Jim O'Loughlin.