PDP-8
PDP-8は、世界で初めて商業的に成功した12ビットミニコンピュータであり、1960年代にディジタル・イクイップメント・コーポレーション (DEC) が製造した。1965年3月22日に登場し、5万システムを売り上げ、DECのPDPシリーズでも当時最も成功したコンピュータとなった。最初のPDP-8の設計を指揮したエドソン・デ・カストロは、後にデータゼネラルを創業した。PDP-8 は、PDP(Programmed Data Processor)シリーズとしては、PDP-5 の後継である。
最初のPDP-8機種(非公式に "Straight-8" と呼ばれている)は diode-transistor logic (DTL) を採用したフリップチップ(英語版)基板で構成されており、小型冷蔵庫ほどの大きさだった。
その後、デスクトップ型とラックマウント型のPDP-8/Sが登場。1ビット直列ALU実装で、小型化と低価格化を実現したが、最初のPDP-8に比べると性能がかなり低い。PDP-8/Sに接続可能な唯一のストレージがDF32というディスク装置(容量32Kワード)だった。
これは計算尺より高精度だし、多くのアナログコンピュータにも引けを取らない。12ビットはまた、ASCIIのサブセットを6ビットで表せば、1ワードに2文字を格納できる。
コスト削減のため、他のコンピュータならフリップフロップで構成するレジスタも安価な主記憶を使う設計になっていた。
PDP-8の基本構成では、主記憶容量は4,096ワードで、オプションのメモリ拡張ユニットでさらに拡張する場合は、後述のIOT命令でバンク切り換えをして使用する。
当初、ソフトウェアから見てPDP-8は8種類の命令しかなく、レジスタも2本(12ビットのアキュムレータ AC とキャリービットに相当するリンクレジスタ L)しか持たない。主記憶は磁気コアメモリでクロックサイクルは1.5μ秒である。典型的には1命令で命令とデータにアクセスするため2サイクルかかり、性能は0.333MIPSとなる。1974年の Pocket Reference Card では基本命令実行時間は1.2μ秒、メモリ参照命令の場合は2.6μ秒となっている。後期の機種では新たなレジスタが追加され(積/商レジスタ、MQ)、乗算命令と除算命令が追加された。
PDP-8は設計の単純さを重視して設計が最適化されている。
000 - AND - メモリオペランドと AC の AND (ACはアキュムレータの略)
001 - TAD - メモリオペランドと <L,AC>(ACのビット値とLのキャリー)の加算(2の補数とみなす、つまり符号付)
010 - ISZ - メモリオペランドをインクリメントし、結果がゼロならば次の命令をスキップする
011 - DCA - ACをメモリオペランド位置に保存し、ACをクリアする
100 - JMS - サブルーチンへジャンプ(サブルーチンの先頭ワードにリターンアドレスを保持する)
101 - JMP - ジャンプ
110 - IOT - 入出力転送(後述)
111 - OPR - マイクロコード化操作(後述)
IOT命令のビット3からビット8でI/Oデバイスを指定する。一部は利便性のために標準化されていた。 00 - プロセッサが処理し、I/Oデバイスには送られない。例えば ION (6001) は割り込み処理のイネーブル、IOFF (6002) は同処理のディセーブルである。 01 - 通常、高速紙テープリーダー 02 - 高速紙テープパンチ 03 - コンソールのキーボード(および付属する低速紙テープリーダー) 04 - コンソールのプリンター(および付属する低速紙テープパンチ)
PDP-8のアセンブリ言語プログラムを例として示す。以下のコード例はPAL-IIIアセンブラによる。
直列化ALUを採用したPDP-8/Sでは、論理ゲートを519個しか使っていない。2008年現在、最も規模の小さいマイクロコントローラでも1万5千ゲート以上使っている。他のマシンと比較すると必須ではない部分がそぎ落とされ、可能な限り論理回路を共用する設計になっている。命令は自動インクリメントや自動クリアや間接アクセスを利用して性能向上を図りつつメモリ使用量を削減している。PDP-8のCPUには12ビットレジスタが4本しかない(アキュムレータ、プログラムカウンタ、メモリバッファレジスタ、メモリアドレスレジスタ)。これらのレジスタは処理サイクルの各時点で様々な用途に使われている。例えば、メモリバッファレジスタは算術演算のオペランドを供給し、磁気コアメモリに書き出すべきデータを一時的に保持する(また、磁気コアメモリからの読み出しで破壊されたデータを書き戻すのにも使われる)。このように基本は単純にもかかわらず、モジュールを小型化するために価格は高くなった。PDP-8/Sは電源電圧を2種類使っているが、これは diode-transistor logic (DTL) でのファンアウト数を大きくする安価な技法である。