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[1][2] 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[3]. Čí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[4].
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[5] a MS-DOS[6]. 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-11[7], i když nebyly převzaty úmyslně[8].
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-11[9]. 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[2].
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í:
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ý.
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.
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í.
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í.
Počítač LSI-11 (PDP-11/03) představený v únoru 1975[2] 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).
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. Nejstarší 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.
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.
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 [10] prodal softwarová práva na systém PDP-11 firmě Mentec Inc., Irský výrobce desek LSI pro Q-Bus a ISA architekturu osobní počítače a v roce 1997 ukončil PDP-11 výroba vycházející z 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í většina počítačového průmyslu Nové Anglie založeného na minipočítačích podobných PDP-11 zkrachovala kvůli konkurenci pracovních stanic a serverů používajících mikroprocesory.
Procesory PDP-11 lze rozdělit na několik přirozených skupin podle původního návrhu a podle toho, kterou 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.
Následující modely používaly jako hlavní sběrnici Unibus:
Následující modely používaly jako svou hlavní sběrnici sběrnici Q-Bus:
Řada PDT byly stolní systémy prodávané jako „inteligentní terminály“. Typy /110 a /130 byly umístěné ve skříni pro terminál VT100. Typ /150 byl stolní počítač se dvěma osmipalcovými jednotkami pružných disků, třemi arytmickými sériovými porty, jedním portem tiskárny, jedním modemovým portem, jedním synchronním sériovým portem a vyžadoval externí terminál. Všechny tři používaly stejnou čipovou sadu jako LSI-11/03 a LSI-11/2 ve čtyřech „micromech“. Bylo také možné zkombinovat dva micromy do jednoho dual carrier, což uvolnilo jeden konektor pro čip EIS/FIS. Verze /150 byla v kombinaci s terminálem VT105 také prodávána jako MiniMINC, levná verze MINC-11.
DEC Professional byla řada stolních PC navržených jako konkurence k prvním osobním počítačům IBM PC s procesory Intel 8088 a IBM PC/AT s procesorem Intel 80286. Počítače byly vybaveny 5,25 palcovými jednotkami pružných disků a (s výjimkou modelu 325) pevným diskem. Používaly operační systém P/OS, což byl v zásadě RSX-11M+ se systémem menu. Protože byl navržen tak, aby nedovoloval používat software pro existující modely PDP-11, špatné přijetí počítačů na trhu nebylo překvapením pro nikoho kromě firmy DEC. Do počítačů byl nakonec portován operační systém RT-11. Ve firmě DEC byla vytvořena i verze systému RSTS/E pro tyto počítače, ale nebyla oficiálně vydána. Počítače PRO-325 a PRO-350 používaly čipovou sadu DCF-11 („Fonz“) stejnou jako v počítačích PDP-11/23, 11/23+ a 11/24. Počítač PRO-380 používal čipovou sadu DCJ-11 („Jaws“), která byla použita v počítačích PDP-11/53,73,83 a dalších variantách, ovšem s rychlostí pouze 10 MHz kvůli omezením v podpůrné čipové sadě.
PDP-11 byl natolik oblíbený, že v zemích východního bloku se vyrábělo mnoho neautorizovaných minipočítačů kompatibilních s PDP-11. Některé byly vývodově kompatibilní s PDP-11 a mohly používat jeho periferní zařízení a systémový software. Mezi tyto klony patří:
Pro PDP-11 bylo dostupných několik operačních systémů
Pro PDP-11 bylo dostupné velké množství periferních zařízení; některé z nich byly používány také v jiných systémech firmy DEC jako PDP-8 nebo PDP-10. Následuje seznam některých obvyklejších PDP-11 periferních zařízení.
Počítače řady PDP-11 byly používány pro nejrůznější účely. Sloužily jako standardní minipočítače pro obecné použití, jako systémy sdílení času pro vědecké, vzdělávací nebo obchodní výpočty. Dalšími obvyklými aplikacemi bylo jejich použití s operačním systémem reálného času pro řízení procesů a pro automatizaci výroby.
Některé OEM modely také byly často používány jako vestavěné systémy k řízení složitých systémů, např. systémů semaforů, lékařských systémů, číslicově řízených obráběcích strojů nebo pro řízení sítí. Příkladem takových použití PDP-11 byla správa sítě s přepojováním paketů Datanet 1. V 80. letech 20. století řízení letového provozu ve Spojeném království používalo pro zpracování radarových dat v RAF West Drayton systém známý jako PRDS – Processed Radar Display System na PDP 11/34. Software pro lékařský lineární urychlovač Therac-25 také běžel na 32K PDP 11/23[25]. V roce 2013 bylo oznámeno, že programátoři PDP-11 budou potřební pro řízení jaderných elektráren nejméně do roku 2050[26].
Dalším použití bylo ukládání testovacích programů pro zařízení Teradyne pro Automatické testování zařízení, v systému známém jako TSD (Test System Director), který odstaven až kvůli problému roku 2000. Vojenské námořnictvo Spojených států amerických používalo PDP-11/34 pro řízení svých simulátorů Multi-station Spatial Disorientation Device pro trénink pilotů až do roku 2007, kdy byly nahrazeny emulátorem, který mohl spouštět původní software pro PDP-11 a rozhraní se zákaznickým řadičem karet Unibus na PC[27].
Počítače PDP 11-45 byly používány v Brookhaven National Laboratory pro pokusy, při kterých byl objeven J/ψ meson[28]. V roce 1976 získal Samuel Ting za tento objev Nobelovu cenu.