コンテンツにスキップ

PDP-11

出典: フリー百科事典『ウィキペディア(Wikipedia)』

PDP-11 (DEC)1970198016[1][2]PDP-11  DECPDPPDP-81032VAX

MC68000PDP-11 (OS) OSCP/M[3]MS-DOS[4]UNIXOS1970 PDP-11/20 PDP-11C[5][6]C ++  -- PDP-11PDP-7Ben:Increment and decrement operators#History
PDP-11/40 2DECtape

[]


DEC16PDP-11Nova Nova16DECPDP-812PDP-111970185[7]TTLIC1975使CPU1979 J-11  PDP-11/94  PDP-11/93 1990[2]

PDP-11[]

[]


PDP-11使 load  store PDP-11 move 使

PDP-11BC i  i++  i j*(i) = *(j++) 1BPDP-11PDP-7PDP-11BPDP-7使[8]CPDP-11PDP-11[5]

226(33)416108(07)7使67/12使

PDP[]


PDP-1116322161616PDP-11 PDP 

NUXI UNIX PDPUNIX UNIXNUXI

使1980PDP-11使

I/O[]


 PDP-11 Unibus  I/O () DECUnibusUnibus

PDP-111 Bell Telephone Manufacturing Company X.25 BTMC DPS-1500 PDP-11Unibus

PDP-11PDP-11/45PDP-11/83CPUCPU使UnibusQ-busI/OPDP-11/70 Massbus 

[]


4()

PDP-11CPUCPU4CPURTI (Return From Interrupt) CPUCPU

[]


PDP-11使()()()

LSI-11[]

LSI-11/2 CPU Q-bus
Fonz-11 (F11) 
Jaws-11 (J11) 

19752 LSI-11 (PDP-11/03)[2] 使PDP-11CPU4LSI(MCP-1600)UnibusQ-bus使 Q-bus I/O22Unibus18Unibus

CPURS-232C使調調使CPU調

DEC使

2使使使

Q-busLSI-11/23/73/83 DEC使UnibusPDP-11CPUQ-busUnibusUnibus使

Q-busPDP-11/03 Power On Self Test (POST) 

PDP-11退[]


UnibusQ-bus161664K1980PDP-11使

DECPDP-1132VAXVirtual Address Extension; PDP-11VAXPDP-1132使

80861632 1M IBM PC 802861M802868038632

MC68020 (1984) Intel 80386 (1985) 32PDP-11PDP-11 DEC Professional 

1994DECPDP-11 Mentec Inc. LSI-11 Q-bus [9]1997PDP-11MentecPDP-11

1980IBM PC DEC

1990DECUNIXWindows

2008使PDP-11[ 1]

20107VHDLPDP-11/70IPOpenCores[10]GPL2006PDP-112007FPGA(Digilent S3BOARD)2009UNIX 5th Edition2.11 BSD

[]


DECPDP-11 Processor Handbook[ 2]

[]


PDP-111664KBPDP-11VAX816PDP-1132K4K 160000  177777 PDP-1128K

使

PDP-11使1822256KB4MB11632K

PDP-11/4532K32KUNIX使

 Modula-2 8kB

[]


613838使

1OPRRnR0R7 "n" 

[]


8R6R7
コード 名称 説明
0n レジスタ OPR Rn Rnにオペランドがある。
1n レジスタ間接 OPR (Rn) Rnにオペランドのアドレスがある。
2n 自動インクリメント OPR (Rn)+ Rnにオペランドのアドレスがあり、命令実行後にRnの内容をインクリメントする。
3n 自動インクリメント間接 OPR @(Rn)+ Rnにオペランドへのポインタのアドレスがあり、命令実行後にRnの内容を2だけインクリメントする。
4n 自動デクリメント OPR −(Rn) 命令実行前にRnをデクリメントし、それをオペランドのアドレスとして使用する。
5n 自動デクリメント間接 OPR @−(Rn) 命令実行前にRnを2だけデクリメントし、それをオペランドへのポインタのアドレスとして使用する。
6n インデックス OPR X(Rn) Rn+X がオペランドのアドレス。Xはこの命令に続くワード。
7n インデックス間接 OPR @X(Rn) Rn+X がオペランドへのポインタのアドレス。Xはこの命令に続くワード。

2使使23

12/1/2

[]


R7使4
コード 名称 説明
27 イミディエート OPR #n オペランドは命令内にある。
37 絶対 OPR @#a オペランドの絶対アドレスが命令内にある
67 相対 OPR a 命令に続くワードの内容 a を PC+2 に加算したものをアドレスとして使用する。
77 相対間接 OPR @a 命令に続くワードの内容 a を PC+2 に加算したものをアドレスのアドレスとして使用する。

I/O使使使

PC2

[]


R6SP使SP
コード 名称 説明
16 間接 (SP) オペランドはスタックのトップにある。
26 自動インクリメント (SP)+ オペランドはスタックのトップにあり、それを使用後にポップする。
36 自動インクリメント間接 @(SP)+ オペランドへのポインタがスタックのトップにある。それを使用後にポップする。
46 自動デクリメント −(SP) 値をスタックにプッシュする。
66 インデックス X(SP) スタックのトップからの相対位置でスタック内の任意のアイテムを参照する。
76 インデックス間接 @X(SP) スタックのトップからの相対位置でスタック内の任意のポインタの指すアイテムを参照する。

ソフトウェアスタックはバイトも積むことができるが、SPの場合はワードしか積まない。従ってSPの自動インクリメント/自動デクリメントは常に2ずつである。

命令セット[編集]

PDP-11はバイト(群)やワード(群)を操作する。バイト(群)はレジスタ番号で指定され、そのレジスタの下位バイトを直接操作するか、そのレジスタでメモリ位置を指す。ワード(群)もレジスタ番号で指定され、そのレジスタの内容を直接操作するか、そのレジスタでメモリ位置を指す。ワードは偶数番地境界になければならない。オペランドのあるほとんどの命令で、ビット15がセットされているものはバイトアドレッシングで、ビット15がクリアされているものはワードアドレッシングである。以下の表で示すとおり、ニーモニックの最後尾に "B" をつけるとバイト操作を意味する(例えば、MOV と MOVB)。

2オペランド命令[編集]

命令の先頭4ビットが命令コードである(特にビット15でワードアドレッシングかバイトアドレッシングかを示す)。6ビットで1オペランドとなっており、2オペランドある。オペランドの内容については上述のアドレッシングモードを参照。

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
opcode mode source mode destination
命令コード ニーモニック 説明
01 MOV 転送: dest = src
11 MOVB
02 CMP 比較: src − dest を計算し、フラグだけセットする。
12 CMPB
03 BIT ビットテスト: dest & src を計算し、フラグだけをセットする。
13 BITB
04 BIC ビットクリア: dest &= ~src
14 BICB
05 BIS ビットセット(論理和): dest |= src
15 BISB
06 ADD 加算: dest += src
16 SUB 減算: dest −= src

ADD命令とSUB命令はワードアドレッシングであり、バイトを対象とするバージョンは存在しない。

一部の2オペランド命令は、一方のオペランドにレジスタしか指定できない。

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
opcode register mode source/destination

使(R,R+1)R2R
命令コード ニーモニック 説明
070 MUL 乗算: (R,R+1) = R × src
071 DIV 除算: (R,R+1) ÷ src を計算。商を R、余りを R+1 へ
072 ASH 算術シフト: R <<= src を行う。シフトするビット数は −32 から 31 まで指定可能。
073 ASHC 連鎖算術シフト: (R,R+1) <<= src を行い、シフトするビット数は −32 から 31 まで指定可能
074 XOR 排他的論理和: dest ^= reg (ワードのみ)
075 (浮動小数点演算)
076 (システム命令)
077 SOB デクリメントし、分岐: レジスタをデクリメントし、結果がゼロでない場合はPC相対で後方へ分岐する。分岐できる範囲は 0 から 63 ワードまで。

1オペランド命令[編集]

命令の先頭10ビットが命令コードで、特にビット15はワードアドレッシングかバイトアドレッシングかを示す。先頭4ビットの組合せのほとんどが2オペランド命令で使われているため、命令コードが9ビットであっても、それほど命令の種類は多くない。残り6ビットで1オペランドを表す。

15 11 10 6 5 3 2 0
B 0 0 0 1 Opcode Mode Register
命令コード ニーモニック 説明
0003 SWAB バイトスワップ: ワードを8ビットローテート
004r (サブルーチンコール)
104x (エミュレータトラップ)
0050 CLR クリア: dest = 0
1050 CLRB
0051 COM 補数: dest = ~dest
1051 COMB
0052 INC インクリメント: dest += 1
1052 INCB
0053 DEC デクリメント: dest −= 1
1053 DECB
0054 NEG 符号反転: dest = −dest
1054 NEGB
0055 ADC キャリー加算: dest += C
1055 ADCB
0056 SBC キャリー減算: dest −= C
1056 SBCB
0057 TST テスト: src をロードし、フラグのみセットする
1057 TSTB
0060 ROR 1ビット右ローテート
1060 RORB
0061 ROL 1ビット左ローテート
1061 ROLB
0062 ASR 右シフト: dest >>= 1
1062 ASRB
0063 ASL 左シフト: dest <<= 1
1063 ASLB
0064 MARK サブルーチンから復帰。0から63個の命令ワードをスキップ
1064 MTPS ステータスレジスタへ転送: PS = src
0065 MFPI 前のI空間から転送: −(SP) = src
1065 MFPD 前のD空間から転送: −(SP) = src
0066 MTPI 前のI空間へ転送: dest = (SP)+
1066 MTPD 前のD空間へ転送: dest = (SP)+
0067 SXT 符号拡張: dest = (Nフラグを16個コピー)
1067 MFPS ステータスレジスタから転送: dest = PS

SWAB

[]


PSWCMPBITTSTx86MOV

882PC
15 11 10 8 7 0
x 0 0 0 0 Opcode Offset
命令コード ニーモニック 説明
0000xx (システム命令)
0004xx BR 無条件分岐
0010xx BNE 等しくないとき分岐 (Z=0)
0014xx BEQ 等しいとき分岐 (Z=1)
0020xx BGE 大きいか等しいとき分岐 (N|V = 0)
0024xx BLT 小さいとき分岐 (N|V = 1)
0030xx BGT 大きいとき分岐 (N^V = 1)
0034xx BLE 小さいか等しいとき分岐 (N^V = 0)
1000xx BPL 正のとき分岐 (N=0)
1004xx BMI 負のとき分岐 (N=1)
1010xx BHI 高いとき分岐 (C|Z = 0)
1014xx BLOS 低いか同じとき分岐 (C|Z = 1)
1020xx BVC オーバーフローしていないとき分岐 (V=0)
1024xx BVS オーバーフローしているとき分岐 (V=1)
1030xx BCC キャリーがないとき分岐 (C=0)
BHIS 高いか同じとき分岐 (C=0)
1034xx BCS キャリーがあるとき分岐 (C=1)
BLO 低いとき分岐 (C=1)

2 SOB (subtract one and branch) 6

2JMPJMP BEQ  BNE JMP

[]


JMP 

JSR 

RTS 

MARK 

EMT 

TRAP, BPT 

IOT 

RTI & RTT 

JSRPC (JSR PC,address) RTS PC "JSR R4, address" R4JSR R4  (R4)+  @(R4)+ R4 RTS R4 

[]


HALT, WAIT 

RESET Unibus

[]


CLC, CLV, CLZ, CLN, CCC 

SEC, SEV, SEZ, SEN, SCC 

 (PSW) 4

N - 

Z - 

V - 

C - 

SCCCCC4

[]


extended instruction setEIS

PDP-11/3511/4011/03 
MULDIV - 

ASHASHC - 

 floating instruction setFIS

PDP-11/3511/4011/03 
FADDFSUBFMULFDIV - 

 floating-point processorFPP

PDP-11/45


 IEEE 754 823

 commercial instruction setCIS

11/23  11/24 11/4411/74COBOL  Dibol 使

PSW

PSW 177 776 PSW
SPL - 

MTPS - PSW

MFPS - PSW




MTPDmove to previous data space

MTPImove to previous instruction space

MFPDmove from previous data space

MFPImove from previous instruction space

[]

PDP-11使

RT-11PDP-11 Hello world :
        .TITLE  HELLO WORLD
        .MCALL  .TTYOUT,.EXIT
HELLO:: MOV     #MSG,R1 ;STARTING ADDRESS OF STRING
1$:     MOVB    (R1)+,R0 ;FETCH NEXT CHARACTER
        BEQ     DONE    ;IF ZERO, EXIT LOOP
        .TTYOUT         ;OTHERWISE PRINT IT
        BR      1$      ;REPEAT LOOP
DONE:   .EXIT

MSG:    .ASCIZ /Hello, world!/
        .END    HELLO

HELLO.MAC:
.MACRO HELLO
ERRORS DETECTED:  0

.LINK HELLO

.R HELLO
Hello, world!
.

RT-11.

MACRO-11 [11] KPUN.MAC[12] [13] JULIAN[ 3] PDP-11 Metalab[ 4]  Trailing Edge[ 5] 

 PDP-11 [14] SIMH PDP-11RT-11

PDP-11 []


PDP-11I/OOEM/

Unibus []

 PDP-11/20 
 PDP-11/70 
 PDP-11/70 

 Unibus 使:

PDP-11( PDP-11/20 ), PDP-11/15 - 使[15]

PDP-11/35, 11/40 - /20 

PDP-11/45, 11/50, 11/55 - 256kB使FP11 FPU 

PDP-11/70 - 11/45 4MB2KMassbus  I/O

PDP-11/05, 11/10 - 11/20

PDP-11/34, 11/04 - 11/3511/05PDP-11/34 [16]11/34Unibus256kB11/34a FPU11/34c 

PDP-11/60 -  PDP-11

PDP-11/44 - 11/4511/704MB John Sofio ICCPU

PDP-11/24 - Unibus使PDP-11VLSI PDP-11Fonz-11 (F11) Unibus使

PDP-11/84 - VLSI Jaws-11(J11) Unibus使

PDP-11/94 - J11 11/84 

Q-bus []

LSI-11/23

 Q-bus 使:

PDP-11/03 (LSI-11/03) - LSI PDP-11MCP-1600使60kB

PDP-11/23 - 2LSI (F-11) 使 248K 4M

PDP-11/23+/MicroPDP-11/23 -  11/23

MicroPDP-11/73 - 3LSI-11 Jaws-11 (J-11) 使4MB

MicroPDP-11/53 -  11/73

MicroPDP-11/83 - PMI(private memory interconnect)使 11/73

MicroPDP-11/93 - Q-bus 使 PDP-11

Mentec M100 - Mentec 11/93J-11 19.66MHz 44MBFPU

Mentec M11 - Mentec  PDP-11 TI 8832 ALU  TI 8818 使

Mentec M1 - Mentec  PDP-11Atmel0.35μmASIC使[17]

Quickware QED-993 -- PDP-11/93 

[]

PDT-11/150

PDT-11/110

PDT-11/130

PDT-11/150

PDT()/110  /130 VT100/1508FDD23111LSI-11/034使/150VT105 MiniMINC 

PRO-325

PRO-350

PRO-380

DEC Professional  IBM 8088  80286 5.25325 CPU  LSI-11 RSX-11M+  P/OS PDP-11DECRT-11DECRSTS/E325350 DCF-11 (Fonz) PDP-11/23380 DCJ-11 (Jaws) MicroPDP-11/53 10MHz

[]


PDP-11/27 - I/O VAXBI(VAX32)使 Jaws-11 使

PDP-11/68 - 4MPDP-11/60

PDP-11/74 - PDP-11/70424 RSX-11 使11/7432 VAX 11/780 [18]DECPDP-11VAXPDP-11[]

[]

DEC GT40 
MINC-23

GT40 - PDP-11/05

GT42 - PDP-11/10

GT44 - PDP-11/40

GT62 - PDP-11/34a

H-11 - LSI-11/03 Heathkit OEM

VT20 - PDP-11/05

VT71 - LSI-11/03

VT103 - LSI-11VT100

VT173 - PDP-11/03使使

MINC-11 -- PDP-11/03  11/23 [19]11/23 MINC-23 MINC-11MINC-23MINC-2311/23

C.mmp -- 

[]


PDP-11DECPDP-11:

SM-4SM-1420SM-1600BKElectronika 60DVKUKNCPDP-11ский(PDP-11)DECElektronika 8590

SM-4SM-1420IZOT-1016

SM-1620SM-1630

MERA-60

SM-4TPA-1140[20]TPA-1148[21]TPA-11/440[22]

CalData CDP-XI  DECOS[23]

[]


PDP-11 (OS) 使

DEC:

BATCH-11/DOS-11 - PDP-11OSRT-11

DSM-11 (Digital Standard MUMPS) - MUMPSDEC

RSTS/E - 

RSX-11 - VMSWindows NTOSWindows NT 
IAS - Interactive Application System1975OSRSX-11

P/OS - PDP-11OSRSX-11

RT-11 - 

Ultrix-11 - DECUNIX

:

ANDOS - FAT12

CSI-DOS - 

DEMOS - Unix

Duress - Datalogics[24]

Fuzzball - LSI-11NSFnet

MERT[24] - UNIXOS

MK-DOS -

MONECS - 

MUMPS - 

PC11 - OS[24]

polyForth - Forth Inc. Forth

Solo - Concurrent Pascal OS[25]

TRIPOS - OSPDP-11 Nova MC68000

TSX-Plus - RT-11OS

UCSD p-System - UCSD Pascal OS

UNIX -  Version 6 UnixVersion 7 UnixUNIX System III2BSDVenix 

Xinu - UnixOS

使[]

IUEPDP-11/35

PDP-11使使使

OEM使CNC使使1980PDP-11/34使25PDP-11/23[26]

PDP-11使PDP-112000使使調2007PDP-11/34使PDP-11PC[27]

注釈[編集]

出典[編集]



(一)^ What We Learned From the PDP-11. microsoft.com. p. 139 (1975). 2008910

(二)^ abc16-bit Timeline. microsoft.com. 20089

(三)^ Ceruzzi, Paul (2003), A History of Modern Computing, MIT Press, p. 238, ISBN 978-0-262-53203-7, https://books.google.co.jp/books?id=x1YESXanrgQC&lpg=PA238&dq=pdp-11+%22cp/m%22&pg=PA238&redir_esc=y&hl=ja#v=onepagef=false 201085 

(四)^ Conner, Doug. Father of DOS Still Having Fun at Microsoft.  Micronews. 201085

(五)^ abBakyo, John. "DEC PDP-11, benchmark for the first 16/32 bit generation. (1970)"inGreat Microprocessors of the Past and Present (V 13.4.0), Section Three, Part I. Accessed 2011-03-04

(六)^ "The Development of the C Language" in section More History, by Dennis M. Ritchie. Accessed August 5, 2011.

(七)^ PDP-11

(八)^ Dennis M. Ritchie (March 1993). The Development of the C Language. ACM SIGPLAN Notices 28 (3): 201208. doi:10.1145/155360.155580. http://cm.bell-labs.com/cm/cs/who/dmr/chist.html. "People often guess that they were created to use the auto-increment and auto-decrement address modes provided by the DEC PDP-11 on which C and Unix first became popular. This is historically impossible, since there was no PDP-11 when B was developed. The PDP-7, however, did have a few `auto-increment' memory cells, with the property that an indirect memory reference through them incremented the cell. This feature probably suggested such operators to Thompson; the generalization to make them both prefix and postfix was his own. Indeed, the auto-increment cells were not used directly in implementation of the operators, and a stronger motivation for the innovation was probably his observation that the translation of ++x was smaller than that of x=x+1." 

(九)^ Press Release re transfer of Operating Systems

(十)^ PDP-11/70 CPU core and SoC :: Overview2014815

(11)^ : Kevin Murrell

(12)^ kpun.mac

(13)^ : Farba Research

(14)^ : en

(15)^ : James O'Loughlin

(16)^ : Bob Armstrong

(17)^ Development Project Report

(18)^ Bruce Mitchell, Brian S. McCarthy (2005). Multiprocessor FAQ.  Machine Intelligence. 2011521[]

(19)^ Binary Dinosaurs - Digital MINC-11

(20)^ TPA-1140

(21)^ TPA-1148

(22)^ TPA-11/440

(23)^ CalData_brochure

(24)^ abchttp://www.village.org/pdp11/faq.pages/pdpOSes.html

(25)^ Brinch Hansen, Per (1976), The Solo Operating System: A Concurrent Pascal Program, http://brinch-hansen.net/papers/1976b.pdf 2011622 

(26)^ Leveson, Nancy G., and Clark S. Turner. "An Investigation of the Therac-25 Accidents." Computer July 1993: 18-41.

(27)^ Claremont, Bruce (20082). PDP-11 Replacement Keeps the Navys MSDD Spinning. 20125

参考文献[編集]

  • PDP11 processor handbook - PDP11/05/10/35/40, Digital Equipment Corporation, (1973) 
  • PDP11 processor handbook - PDP11/04/34a/44/60/70, Digital Equipment Corporation, (1979) 

関連文献[編集]

  • Eckhouse, jr., Richard H.; Morris, L. Robert (1979), Microcomputer Systems Organization, Programming and Applications (PDP-11), Englewood Cliffs, New Jersey: Prentice-Hall, ISBN 0-13-583914-9 
  • Michael Singer, PDP-11. Assembler Language Programming and Machine Organization, John Wiley & Sons, NY: 1980.

外部リンク[編集]


The PDP-11 FAQ

Preserving the PDP-11 Series of 16-bit minicomputers

 Bill Strecker 1975, What We Learned From the PDP-11

 Gordon Bell's site.

The Fuzzball

On LSI-11, RT-11, Megabytes of Memory and Modula-2/VRS by Günter Dotzel, ModulaWare.com - Modula-2 /PDP-11: DEC Professional: the magazine for DEC users, Professional Press, Spring House, PA. U.S.A., January 1986.

dpuadweb.depauw.edu/dharms_web/pdp11/. PDP-11/10

pdp11.co.uk PDP-11 

electronica-60.ucoz.com PDP-11

PDP-11/70 CPU core and SoC, OpenCores - PDP-11/70CPUFPGA