蒼天在眼 (そうてんまなこにあり)ーベランダで星を見る

昔、昔、天文少年でした。そして、今は、ベランダから、星を見ています。
いろいろの忘備録

PiDP-11を使う その5 表の顔ーコンソールの巻

2023-12-05 13:45:20 | コンピュータ

いよいよ、オペレータコンソールです。これを操作したいために、わざわざPiDP-11を組み立てました。

フロントパネル全体はこんな感じです。見渡すと、表示部は三段に分かれて、その下に30個のスイッチと右横に二つのノブがついています。

右横の切り替えノブはメモリとバスの切り替えスイッチで、表示ランプがついていますが、Bare Metal で使う分には CONS  PHY(コンソール・物理メモリ)と DATA PATH が点灯するようにセットすれば、問題ありません。"

 

表示ランプは 三段に分かれていて、上から、CPU のステータス表示、アドレス表示、データ表示に分かれています。

CPUのステータス表示は、左から、エラー関係(メモリのパリティ不一致、アドレスエラー)で、これらは、通常点灯しません。次のRUNランプはCPUが命令実行中に点灯します。

PDPのデータバスであるUNIBUSは、CPUだけでなく、周辺機器もマスターとして、バスを制御することができます。他の機器がバスを制御しているため、CPUがバスの空くのを待っている時に、PAUSEランプが点灯、CPUがマスターになって、バスを占有している場合は、MASTER が点灯します。次のUSERからDATAまでは、Bare Metal 運用に関係ないので、省略します。ADDRESSING は Bare Metal では 16ビット固定です。

 

一番左中段に、キーを差し込む形の電源スイッチがあります。PiDP−11では、オフとオンの2段階ですが、実機では、オフ、オン、ロックの三段になっていました。マニュアルの通りそのまま作るとこのスイッチはダミーです。Balconは、ちゃんと通電するように配線してあります。キーを入れて回すと、冷却ファンが回り始めます。うーん本当に懐かしい。

パワースイッチの隣は、メモリのパリーティを表示しています。PDP-11のメモリは、byte単位ですが、8ビットにパリティービットの1ビットを追加して、1が立っている桁の数が、奇数になるように、パリティビットをセットして記憶しています(奇数パリティ)。もしも、メモリから読み出したデータにパリティが一致しないと、1ビットの誤りであれば、これを検出して、一番上段の表示にパリティエラーを点灯するようになっています。なお、PDP-11は、1語が、2 byteなので、High byte、Low  byteのパリティビットが表示されます。

ADRESS, DATAのランプとスイッチについての説明は次回にします。

より詳しく知りたい方は、 PDP-11/70 Handbook の11章をご覧ください。(コンソールオペレーションへつづく)

https://bitsavers.org/pdf/dec/pdp11/1170/PDP-11_70_Handbook_1977-78.pdf

 


PiDP-11 を使う その4 -裏の顔 表の顔の巻-

2023-12-03 19:33:28 | コンピュータ

いよいよ各論に入ります。

PDP-11の裏の顔と言っても、怪しいものではありません。一目で見ることができない顔ということです。表の顔をオペレータ・コンソールとすると、裏の顔は、PDP−11の最上層の構造とでもいうことでしでしょうか。PDPー11の構造の特徴をよくまとめた図がありました。木村泉先生が東京工業大学のプログラミングの講義に使ったOHP(Power pointがない時代のプレゼン手段)です。とても簡潔に纏まっているので拝借させていただきます。木村先生は、1980年代に共立出版のbitという雑誌に寄稿していて、Balcon も毎月楽しみに愛読していました。残念ながら、お弟子さん達編集の追悼文集からの引用になります。木村先生のOHPに若干の改変をさせてもらいました。

PDPの記憶領域は、八個の16ビットのレジスタと1語16ビット幅の32k語のメモリ領域からできています。アドレスは、byte(8ビット)ごとについているので、64kbytesのメモリ空間があるわけですが、高位から4k語(8kbytes)は、周辺機器とのインターフェースに予約されているので、実際は28k語が使用可能なメモリとなります。また0番地から776(8進)までは、割り込みや、スタックに使われるので、実際には、ユーザは1000番地(8進)から、157776(8進)までが、ブログラムとデータを収容することになります。(OHP の緑の部分)

DECのマシンは8進法がデフォールトなので、これからは、断りなく数字が出てきた場合は8進法表記と考えてください。

各レジスタ r0からr5は、自由に使うことができますが、r6、r7は、それぞれ、現在のスタックトップを指すスタックポインタ(SP)と、次に実行する命令のアドレスを指すプログラムカウンタ(PC)として使うため、偶数のデータしか書き込むことしかできません。

各種フラグを収容するプロセッサステータスワード(PSW)には、下位4bitに各種フラグが入ります。これ以外ビットは、実行モードや、プライオリティなのデータが入りますが、これらは、Bare Metalで使うのには関係ないので、説明は割愛します。

それぞれ、レジスタのアドレスは、PDP-11/70では、アドレスが22ビットに拡張されているため、他のPDP-11シリーズと異なるので注意が必要です。(私はこれにハマりました。)

次回は、PDP-11/70の表の顔、オペレータコンソールについて、記載していきます。(表の顔-コンソールへつづく)


PiDP-11を使う その3 -Bare Metal で行こうの巻-

2023-12-01 12:47:40 | コンピュータ

ベアメタルというと、航空機業界では、塗装なしで、ジュラルミンの地肌剥き出しの運航をすることを指しますが、コンピュータの世界では、OSなしで、コンピュータを使う意味で使われます。

PCでは、Windows OSをインストールしないで使う人は、ほとんどいないでしょうが、組み込み用途のコンピュータ(たとえば、車載システムとかは、ベアメタルがほとんどではないでしようか。

Wikipediaでベアメタルを検索すると、

ベアメタル: bare metal)とは、計算機科学では、オペレーティングシステム (OS) を介さずに、ロジックハードウェア上で直接命令を実行するコンピュータを指す。ベアマシン: bare machine)とも呼ばれる。bareとは「裸」のことで、OS等の「衣」を纏っていない、という意味。

<中略>

PDP-11などの初期のコンピュータでは、プログラママシンコードで提供されるプログラムをRAMにロードしていた。プログラムの動作はLEDの点灯や、磁気テープ、印刷デバイス、またはストレージから得られる出力によって監視できた。

とあります。

PiDP-11は、普通にインストールすると、各種OSが使用できる状態で、インストールされます。たとえば、DEC謹製の RT-11 (<ーお世話になりました。)、RSX-11 M Plus, DOS-11 , RSTS,  AT&Tの初期のUNIXなどが、プレインスートール済です。Lions' commentary で有名なV6も2.11BSDも入っています。

しかし、一度OSが起動すると、コンソールパネルを操作することは、終了するときまで、ほとんどありません。コンソールパネルを使い込むには、ベアメタルで運用するのが1番いいと思います。

ベアメタルの良い点は、PDP-11のマシンのアーキテクチャーや動作を知ることができると言うのもあります。そんな、無くなってしまったマシンを学んでどうするのだという意見もありますが、実は

いわゆるノイマン型プログラム内蔵方式のプロセッサの構造と基本動作は、世界で最初の実用的なノイマン型・プログラム内蔵方式のコンピュータであったEDSACの実装の時点で、すでに構造と基本動作が実装されている。(Wepedia CPUの項目からの引用)

ということで、最新の64bitプロセッサも、処理速度と、一度に処理するデータ量が増えていますが、本質的には変わりません。一応、16 bit プロセッサの完成形とされるPDP–11を知ることは、現代のプロセッサの理解にも役にたつと思えるのですが…。

まあ、趣味には理由はいらないと思うので、次回は、ベアメタルで使うPDP-11ということで、各論を始めたいと思います。(裏の顔表の顔へとつづく)


PVバーナー

PVアクセスランキング にほんブログ村