La PDP-10 estis komputilo fabrikita de Cifereca Equipment Corporation (DEC) de finoj de la jaroj 1960 en antaŭen. La nomo signifas "Programmed Datiĝas Processor model 10" (Procesoro de Datumoj Planita modelo 10). Estis la maŝino kiu faris komuna la tempo dividita. Estas de multa graveco en la folklore hacker pro lia adopción en la jaroj 1970 por multaj instaladoj de komputado universitarias kaj laboratorioj de esploro, la plej konsiderindaj estis la AI Lab de la MIT, la SAIL de la Universitato de Stanford, kaj la Universitato Carnegie Mellon.
La arkitekturo de la PDP-10 estis preskaŭ identa versio de la antaŭa arkitekturo de la PDP-6, dividante la sama longitudo de vorto de 36 bitoj kaj etendante iomete la aro de instrukcioj (sed kun implementación de aparataro plibonigita). Iuj aspektoj de la aro de instrukcioj estas solaj, lin pli konsiderinda estis la instrukcioj de "bajto", kiu operaciis en kampoj de bitoj de arbitra grandeco (en tiu epoko la bajto ne estis nepre de ok bitoj).
Enhavo |
La originala procesoro de la PDP-10 estis la KA10, enkondukita en 1968. Ĝi uzis diskretajn transistorojn pakitaj kun la teknologio Flip-Blato® de DEC, kun alambrado en la parto trasera pere de procezo de fabrikado semiautomatizado. En 1973, la KA10 estis anstataŭita de la KI10, kiu uzis cirkvitojn SSI TTL. Al ĉi tiu oni kunigis, en 1975, la KL10 de alta okupas (poste la KL20), kiu estis konstruita kun ECL, estis microprogramado, kaj ĝi havis memoron caché. Pli malgranda modelo kaj malpli peniga, la KS10, estis enkondukita en 1978, uzante komponantoj bito-slice TTL kaj Am2901 kaj inkludante la Unibus de la PDP-11 por konekti la ekstercentraj.
La KA10 havis maksimuman kapablon de ĉefa memoro (tiel virtuala kiel fizika) de 256 Kwords (ekvivalenta al 1152 KB). Kiel ĝi venis havigita de DEC, ĝi ne inkludis aparataron de paginación; uzado de la memoro kiu konsistas en du aroj de protekto kaj relocalización, nomitaj la registroj de "bazo and bounds". Ĉi tio permesis, al ĉiu duono de la spaco de direkto de uzanto, esti limigita al specifa sekcio??? De la sistemo de la centra memoro, designada por la bazo de la fizika direkto kaj la grandeco. Ĉi tio permesis la modelon, uzita poste de Unikso, de segmento de kodo compartible de nur legado (kutime la alta segmento), disigita de segmento de datumoj/pilo de legado/skribo (kutime la malalta segmento). Iuj maŝinoj KA10, ej. Unue en la MIT, kaj poste en la BBN, estis modifitaj por aldoni apogon por la paginación, tiel kiel pli fizika memoro.
La KI10 kaj postaj procesoroj proponis uzadon de memoro paginada, kaj ili ankaŭ elportis pli granda spaco de fizika direkto de 4 Mwords.
La originalaj modeloj de la KL10 (1070, 1080, ktp.) Uzis la buson de originala memoro de la PDP-10, kun moduloj de eksteraj memoro. Modulo, en ĉi tiu kunteksto signifas kabineton, la dimensioj proksimume (An. X Al la. X Pr.) 80 X 200 x 80 cm kun kapablo de 32 al 256 kWords de memoro de magnetaj kernoj (la bildo en la dekstra flanko montras ses de ĉi tiuj kabinetoj). La uzitaj procesoroj en la DECSYSTEM-20 (2040, 2050, 2060, 2065), komune sed malĝuste nomita "KL20", ili uzis la internan memoron muntita en la sama kabineto kiu la CPU. La modeloj 10xx ankaŭ havis pakita malsama; ili venis en la originalaj altaj kabinetoj de la PDP-10, anstataŭ la mallongaj uzitaj poste por la DECSYSTEM-20. La diferencoj inter la modeloj 10xx kaj 20xx estis pli da kosmetikoj ol realaj; iuj sistemoj 10xx havis la internan memoron kaj la 1a/Aŭ al la "stilo 20", kaj iuj sistemoj 20xx havis la eksteran memoron kaj la buson de 1a/Aŭ al la "stilo 10". En aparta, ĉiuj sistemoj de ARPAnet TOPS-20 havis buson de 1a/Aŭ ĉar la interface AN20 IMP estis mekanismo de 1a/Aŭ. Ambaŭ povis kuri la microcódigo de la TOPS-10 aŭ la TOPS-20 kaj sekve la responda mastruma sistemo.
La arkitekturo de 1a/Aŭ de la maŝinoj 20xx de la serio KL estis bazita en nova dezajno de buso de la DEC, nomita la MASSbus. Dum multaj atribuis la sukceson de la PDP-11 al la decido de la DEC en fari arkitekturon malfermita de la Unibus de la PDP-11. Kun la KL, DEC revirtió al la antaŭa filozofio, farante la MASSbus tiel sola kiel proprietulo. Konsekvence, ne estis fabrikantoj de ekstercentraj de la merkato de akcesoraj, kiu faris mekanismojn por la MASSbus, kaj DEC decidis taksi liajn proprajn mekanismojn de MASSbus, notinde la unueco de disko RP06, en prezo substancialmente alta sur comparables kongruaj mekanismoj kun IBM. CompuServe, ĝi desegnis lia propra controlador de alternativa disko kiu povis operacii en la MASSbus sed konektis kun subsistemas de diskoj IBM stilo 3330.
Poste, la versio de la "Modelo B" de la procesoroj 2060 forigis la limigon de la 256 Kword en la spaco de virtuala direkto, permesante la uzo de ĝis 32 "sekcioj" de ĝis 256 Kwords ĉiu, kune kun substanciales ŝanĝoj al la aro de instrukcioj. La procesoroj KL10 "Modelo Al" kaj "Modelo B" eblas konsideritaj kiel malsamaj CPUs. La unua mastruma sistemo kiu prenis avantaĝojn de la kapabloj de la Modelo B estis la TOPS-20 release 3, kaj la direccionamiento etendita de la modo uzanto estis proponita en la TOPS-20 release 4. La versioj de la TOPS-20 post la release 4.1 nur kuris en la Modelon B.
La dezajno KS10 estis lisiado por esti Modelo Al, kvankam estis prezencoj la plimulto de la itineroj de necesaj datumoj por elporti la arkitekturon de la Modelo B kiam ĉeestis. Sen dubo, ĉi tio provis segmenti la merkaton, sed mallongigis grande la tempo de vivo de la KS10.
Ĝi plibonigas al ŝi finon al la KL10 estis la ĝisdatigo MCA25 de ĉirkaŭ 2060 al ĉirkaŭ 2065, kiu donis iujn pliigojn de okupas por programoj kiuj kuris en multnombraj sekcioj.
De la unua PDP-6 ĝis la KL-10 Modelo Al, la arkitekturo de la aro de instrukcioj de la modo-uzanto en granda parto estis la sama. Ĉi tiu sekcio kovras tiun arkitekturon.
La PDP-10 havis vortojn de 36 bitoj kaj direktoj de vortoj de 18 bitoj. En la modo kontrolisto, la direktoj de instrukcio respondas rekte al la fizika memoro. En la modo de uzanto, la direktoj estas tradukitaj al fizika memoro. La unuaj modeloj donis memoira "alta" kaj malaltiĝo" al procezo de uzanto: la direktoj kun la bito 0 en la kolizias uzis registron bazu, kaj la plej altaj direktoj uzis alian. Ĉiu segmento estis apuda. La postaj arkitekturoj havis aliron al memoro paginada, permesante spacoj de direktoj ne apudaj. La registroj ankaŭ povis direccionar kiel pozicioj de memoro 0-15.
Estis 16 registroj de ĝenerala uzo, de 36 bitoj ĉiu. La dekstra duono de ĉi tiuj registroj estis uzita por indeksita (kun escepto de la registro 0). Iuj instrukcioj operaciis en paroj da registroj. Estis ankaŭ registro de kondiĉo kiu stokis pliajn bitojn de la rezultoj de aritmetikaj operacioj (ej. Desbordamiento) al la kiu nur povis aliri iujn instrukciojn.
Estis du modoj operacionales, la modo kontrolisto kaj la modo de uzanto. Krom la diferenco, priskribita supre, en la maniero de referenciar la memoro, la programoj de la modo kontrolisto povis ekzekuti operaciojn de eniro/elirita.
La konekto de la modo uzanto kun la modo kontrolisto estis farita kun Unimplemented User Operations (UUOs) (Operacioj de Uzanto Ne-Implementadas): la instrukcioj kiuj ne estis difinitaj de la aparataro estis kaptitaj de la kontrolisto. Ĉi tiu mekanismo ankaŭ estis uzita por emular operacioj kiuj ne havis implementación por aparataro en la plej malkaraj modeloj.
La ĉefaj tipoj de datumoj kiuj estis rekte elportitaj por la arkitekturo, estis la tuta aritmetiko de 36 bitoj de komplemento al du (inkludante operacioj bitwise), punkto flotante de 36 bitoj, kaj duonaj vortoj. La punkto flotante etendita de 72 bitoj estis elportita de duona specialaj instrukcioj desegnitaj por esti uzitaj en sekvencoj de multi-instrukcioj. La pointers de bajto estis elportitaj de specialaj instrukcioj. Vorto konsistante de duona "contador" kaj duona "pointer" elportis limigitajn regionojn de memoro, notinde la piloj.
La aro de instrukcioj estas tre simetria. Ĉiu instrukcio konsistas de 36 bitoj, disdonitaj de la sekva maniero:
La ekzekuto de la instrukcio komencas kalkulante la efektiva direkto. ĝi aldonas la enhavon de la registro donita (se ne estas nulo) al la ofseto, tiam se la nerekta bito estas 1, ĝi legas la vorton en la direkto kalkulita kaj ĝi ripetas la ŝtonon de la direccionamiento efektiva (eble nedifinite, sed fakte finos kun trap post 32 iteraciones). La efektiva direkto resultante eblas uzita de la instrukcio kiu alportas la enhavon de la memoro, aŭ simple kiel konstanta. Tiel, ekzemple, MOVEI Al,3(C) adicias 3 al la 18 bitoj pli malaltaj de la registras C kaj ĝi metas la rezulton en la registro Al, sen tuŝi la memoron.
Estas tri ĉefaj klasoj de instrukcioj: aritmetikoj, logikaj, kaj de movado; salto condicional (conditional jump); salto condicional (conditional skip) (kiu povas havi malĉefajn efektojn); kaj pluraj malgrandaj klasoj.
La operacioj de aritmetiko, logika, kaj movado inkludas variantojn kiuj operacias de:
Pro tio ke kiu la registroj agas kiel ĝi dividas de la memoro, operacioj de registro-al-registro ankaŭ estas difinitaj. (Ne ĉiuj variantoj estas utilaj, kvankam estas bone difinitaj). Ekzemple, la operacio ADD havas kiel variantoj ADDI (adicii konstanta inmediata de 18 bitoj al registro), ADDM (adicii la enhavon de la registro al la Memoria), ADDB (adicii al Ambaŭ (Both), tio estas, adicii la enhavon de la registro al la memoro kaj ankaŭ meti la rezulton en la registro). Ekzemplo pli ellaborita estas HLROM (Half Left to Right Ones to Memory) (maldekstra duono al dekstra, oni al memoro), kiu prenas la maldekstran duonon de la enhavo de la registro, kaj ĝi metas lin en la dekstra duono de la pozicio de memoro, kaj reemplazala maldekstra duono de la pozicio de memoro kun oni.
La operacioj condicionales de salto (conditional jump) ekzamenas la enhavon de la registro kaj ili saltas al localización donita dependante de la rezulto de la komparo. Ekzemple, JUMPN Al, LOC saltas al LOC se Al ne estas nulo. Estas ankaŭ saltoj condicionales bazitaj en la registro de kondiĉo de la procesoro.
La operacioj condicionales de salto (conditional skip) komparas enhavitaj de registro kaj de memoro kaj, dependante de la rezulto de la komparo, ili saltas la sekvan instrukcion (kiu ofte estas senrezerva salto). Simpla ekzemplo estas CAMN Al, LOC kiu komparas la enhavon de la registro Al kun la enhavo de la localización LOC kaj ĝi saltas la sekvan instrukcion se ne estas egalaj. Ekzemplo pli ellaborita estas TLCE Al, LOC (kiu signifas "Teston Left Complement, Skip if equal") (Provas la komplementon al du, ĝi saltas se estas egala), kiu uzante la enhavo de LOC kiel masko, ĝi selektas la respondajn bitojn en la maldekstra duono de la registro Al. Se ĉiuj tiuj bitoj estas Egala al nulo, ĝi saltas la sekvan instrukcion; kaj en ajna kazo, ĝi Anstataŭas tiujn bitojn por lia komplemento booleano.
Iuj klasoj de instrukcio pli malgrandaj inkludas la instrukciojn de shift/rotate kaj la instrukcioj de alvoko al proceduroj. Aparte konsiderindaj estas la instrukcioj de pilo PUSH kaj POPO kaj la respondaj instrukcioj de alvoko al pilo PUSHJ kaj POPJ. La instrukcioj de bajto uzas specialan formaton de nerekta vorto por ĉerpi kaj stoki kampojn de bitoj de arbitra grandeco, antaŭante eble la pointer al la sekva unueco.
La originala mastruma sistemo de la PDP-10 estis nomita simple "Monitoro", sed poste estis renoma TOPS-10, por la momento kiun la sistemo komencis esti konita kiel la DECsystem-10. La unuaj versioj de la Monitoro kaj de la TOPS-10 formis la bazon de la mastruma sistemo WAITS de Stanford kaj de la Compuserve prifriponu-sharing system.
Kun la tempo, iuj telefonistoj de la PDP-10 komencis kuri mastrumajn sistemojn ensamblados de components gravaj disvolvitaj ekstere de DEC. Ekzemple, la Scheduler ĉefa devenis universitaton, la Disk Service de alia, ktp. La servoj de komercaj dividita tempo kiel CompuServe, Online Systems, kaj Rapidata subtenis kompleksajn internajn grupojn de programado de sistemoj, de maniero de povi modifi la mastruman sistemon kiel estis necesa por liaj propraj negocoj sen esti dependaj en la DEC aŭ aliaj. De iuj manieroj, ĉi tiu estis unu el la unuaj medioj de fonto malfermita, kvankam la komercaj telefonistoj inklinis nur preni kodon de fontoj malfermitaj, gardante liaj propraj plibonigas proprietulinojn por ili samaj.
BBN disvolvis lian propran alternativan mastruman sistemon, TENEX, kiu igis sufiĉe rapide en la normo de facto en la komunumo de esploro. Poste DEC portis Tenex al la KL10, plibonigante ĝin konsiderinde, kaj ĝi enoficigis lin TOPS-20, formante la linio DECSYSTEM-20. La MIT ankaŭ estis disvolvinta lian propran influan sistemon, ITS (enoficigita tiel por parodii al la mastruma sistemo CTSS).
En la jaroj 1970, la investigadores en Xerox PARC, frustritaj de la denegación de la supera direktado de la kompanio por ke ili lasis aĉeti ilin PDP-10 (Xerox ĵus aĉetis la SDS, kaj ĝi volis ke PARC uzis maŝinon SDS), diseñadron kaj ili konstruis du sistemojn klonas por lia propra uzo, kiu enoficigis "MAXC" (prononcita "Max", en honoro de Max Palevsky, kiu estis vendinta la SDS al Xerox). Ili kuris version modifita de TENEX.
La provoj de triaj de vendi klonas de la PDP-10 estis relative malsukcesitaj; vidi Foonly, System Concepts, kaj XKL.
La PDP-10 estis eventuale eclipsado por la maŝinoj supermini de VAX (posteuloj de la PDP-11) kiam la DEC rekonis ke la linioj de produktoj PDP-10 kaj VAX konkurencis kun la alia kaj ĝi decidis koncentri lian penadon de disvolviĝo de programaro en la VAX, pli utila ekonomie. La cancelación de la linio de produktoj PDP-10 estis anoncita en 1983, inkludante la cancelación de la projekto en kurso Jupitero por produkti novan procesoron de la kolizias de la linio por la PDP-10 (kvankam tiu projekto estis en bona formo al la horo de la cancelación).
Ĉi tiu okazaĵo skribis la condenación de la ITS kaj la teknikaj kulturoj kiuj estis produktintaj la Jargon File originalo, sed por la jaroj 1990 estis iginta iun kiel devizo de honoro inter hackers malnovaj esti havinta lian unuan sperton en PDP-10.
La instrukcioj de lingvo ensamblador LDB kaj DPB (laŭdu/deposit bajto) postvivas kiel funkcioj en la lingvo de programado Common Lisp. Vidi la sekcion de "notoj" en la artikolo LISP - la grandeco de la vorto de 36 bitoj de la PDP-6 kaj la PDP-10 influis por la conveniencia de programado de havi 2 pointers de la LISP, ĉiu kun 18 bitoj, en vorto.
Will Crowther kreis Adventure, la prototipo de la ludo de aventuro de komputilo, por PDP-10. Dono Daglow kreis al la unua ludo de bazpilkado de komputilo (1971) kaj Dungeon (1975), la unua videoludo de listo (RPG) en PDP-10. Walter Bright origine kreis Empire por la PDP-10. Roy Trubshaw kaj Richard Bartle kreis la unua MUD en PDP-10. Aldone, Zork estis skribita en la PDP-10, kaj Infocom uzis pluraj PDP-10s por la disvolviĝo kaj provo de ludoj.
Iom da la CGI por la filmo de la scienco fikcio TRON, de Disney, estis renderizado en la Foonly F-1, clon de la PDP-10. Estas ankaŭ signifa ol la PDP-10 havas instrukcion TRON (Testo Right-halfword Ones and skip if Not masked) en la opcode 666 (octal). Coincidentemente, la programadores antaŭaj de la PDP-10 kreis la ludojn de video TRON de la Intellivision, kiu sekvis al la ĵeto de la filmo.
Unu el la plej grandaj kolektoj de ĉiuj tempoj de sistemoj de arkitekturo DECsystem-10 ensamblados, estis en CompuServe, kiu en lia beko operaciis sur 200 sistemoj malforte kuplitaj en tri centroj de datumoj en Columbus, Ohio. CompuServe uzis ĉi tiujn sistemojn kiel 'hosts', havigante aliro al komercaj aplikoj tiel kiel al la Servo de Informo CompuServe. Dum kiu la unua de tiuj sistemoj estis aĉetitaj al la DEC, kiam DEC forlasis la arkitekturon PDP-10 en favoro de la VAX, CompuServe kaj aliaj klientoj de la PDP-10 komencis aĉeti la kongruajn komputilojn (al nivelo de plugs) de Systems Concepts. En dato januaro de 2007, CompuServe daŭre operacias malgrandan numeron de maŝinoj kun la arkitekturo PDP-10 por realigi iujn funkciojn de facturación kaj encaminamiento.
La fontoj de uzitaj ĉefaj nutrado en la maŝinoj de la serio KL estis tiel ineficientes kiu la inĝenieroj de CompuServe desegnis fonton de nutrado de anstataŭas ke ĝi konsumis ĉirkaŭ la duono de energio. CompuServe proponis licenciar la dezajno de lia fonto de nutrado de la KL al DEC sen kosto, se DEC promesis ke ajna nova KL aĉetita de CompuServe havus instalita la fonto de nutrado pli eficiente. La DEC declinó la propono.
Alia modifo farita al la PDP-10 por la inĝenieroj de CompuServe estis la anstataŭas, en la kabineto de la procesoro KI-10, de centoj da lampoj indicadoras inkandeskaj kun moduloj de lampoj LED. La kosto de la konvertiĝo estis kompensita facile de la ŝparadoj en la elektra konsumo, la redukto de la varmego, kaj la mano de verko postulita por anstataŭi la brulgustajn lampojn. Ne estis similaj datenbankoj de lampoj indicadoras en procesoroj KL kaj KS.
La maŝinoj de la klaso KL ne eblis ŝaltitaj sen la asistencia de komputilo front end PDP-11/40 instalita en ĉiu sistemo. La PDP-11 estis ŝarĝita (booted) de unueco de disko RP06 de du havenoj (aŭ alternative de unueco de Disketo de 8 " aŭ DECtape), kaj tiam la comandos povis doni al la PDP-11 por komenci la ĉefan procesoron, kiu tipe estis ŝarĝita de la sama unueco de disko RP06 kiu la PDP-11. La PDP-11 realigus funkcias gardiston fojo kiun la ĉefa procesoro kuris.
La sistemo de KS uzis similan proceduron de ŝarĝo. CPU 8080 ŝarĝis la microcódigo de disko de RM03 aŭ RP06, aŭ magneta bendo kaj ĝi tiam komencis la ĉefan procesoron. La 8080 ŝanĝis modojn post kiam la mastruma sistemo estis eltirinta kaj ĝi kontrolis la havenojn seriales remotos de diagnóstico de la cónsola.
Systems Concepts konstruis modelon de pruvo de versio de portebla komputilo de la PDP-10. Ĝi ne scias se ankoraŭ ekzistas ĉi tiu unueco.
En la filmo Operacio Swordfish, Stanley, la hacker stokas la kodon por lia vermo en PDP-10 en kvara de arkivo Kalko Tech kiu estis subtenita en linio, kaj en Interreto, por "historia motivo".
Ĉi tiu artikolo dividas estas bazita en la Jargon File, kiu estas en la publika regado.
Vidi: TOPS-10, ITS, Tenex, TOPS-20, WAITS.