とあるPDP11/40のレジスタにまつわる議論

とあるエイプリルフールの夜に、ふいに始まったPDP11/40のレジスタにまつわる議論をまとめておきます。 twitter上でもこのようなやり取りをしながら昔のUNIX, PDP11について読み解いていっているのが見せられたら面白いと思い、まとめました。 最近古いUNIXの勉強をしている人が増えているように感じています。そのような人たちの参考になれば。
4
takahiro(John Smith) @superhoge

PDP11/40のレジスタについて調べていたはずなのに、何で今自分は「何故私は女帝と呼ばれるようになったのか」って資料を見ているんだろう

2012-04-01 20:55:44
満鉄附属地エリカちゃん @xylnao11

@superhoge Kernel stack pointer にかぎった話は、Lions本の2.3やPDP-11/05/10/35/40 handbookの6-22あたりに書いてありますね。

2012-04-01 21:00:31
takahiro(John Smith) @superhoge

@xylnao11 ありがとうございます。Lions本の方を見ましたが、spはUserとKernelで別の二つのsetがあって、他のregistersはspのように二重化されていないようですね。

2012-04-01 21:14:07
takahiro(John Smith) @superhoge

というわけで、PDP11/40の16bits registersはR0-7+R6(二重化)の計9個ってことかな。PDP11/40より後の製品の話とsimhの実装で混乱してしまった

2012-04-01 21:15:42
八丁堀マゴロク亭 @magoroku15

これだと、説明がつく。MMUユニットを追加するとSPが1個ついてくるんだだ。@superhoge というわけで、PDP11/40の16bits registersはR0-7+R6(二重化)の計9個ってことかな。PDP11/40より後の製品の話とsimhの実装で混乱してしまった

2012-04-01 21:19:40
takahiro(John Smith) @superhoge

もしかしたら、物量としてはPS[15:14]={10, 01}用のspも載ってるかもな

2012-04-01 21:19:47
takahiro(John Smith) @superhoge

昔のUNIXの勉強をしている人が増えているようなので、このPDP11/40に関するツイートのやり取りをtogetterでまとめとくと面白いかもな。twitter上でもみんなで話し合いながら読み解いているというのが見せられるから

2012-04-01 21:22:41
takahiro(John Smith) @superhoge

ところで、なんでspだけ複数セットがあるんだっけか。UserとKernelでアドレス空間が違うからだとは思うんだけれど、pcと同じようにソフトで退避させることはできない?まだ整理できていない……

2012-04-01 21:25:07
takahiro(John Smith) @superhoge

あぁ、pc退避しているのはstack上だっけか。そしたら同じやり方でspは退避できないか

2012-04-01 21:27:27
takahiro(John Smith) @superhoge

というわけで、自分の中では解決。皆様のTLを汚してしまい申し訳

2012-04-01 21:31:56
手ぎつねの人(射影前) @_handyfox

GPUとかだと、複数プロセッサに対してPCは一つで、そのおかげでコストを削減できていると聞きますが、なぜ低減できているのかわかりません。複数プロセッサに対してPC一つのおかげで、プログラミングが非常に難しくなっているので疑問に思うのです

2012-04-01 21:32:24
くまぎ @kumagi

@_handyfox コストって消費電力のことですか

2012-04-01 21:34:08
手ぎつねの人(射影前) @_handyfox

@kumagi 価格に効く物量的なコストのほうだと思います。消費電力的にも効果があるのでしょうか?

2012-04-01 21:37:33
くまぎ @kumagi

@_handyfox はい、消費電力的には大いに効果があります。ポラックの法則とかでググるとそれっぽい話が見れるのではないかと。

2012-04-01 21:38:21
八丁堀マゴロク亭 @magoroku15

デコーダと命令毎の回路構成の物量がコストに対して支配的。なので、PCを複数にすると、多くのリソースを複数用意しないといけなくなるから。GPUはSIMDの一種なので演算回路のみを多数用意すればよいいから。で合ってる? .@_handyfox

2012-04-01 21:38:48
手ぎつねの人(射影前) @_handyfox

@kumagi ああー、、(”ポラックの法則”でググった)なるほど…いままで、もやっていてモチベーションが上がらなかったことが、解決できました。不勉強でした。ありがとうございます。

2012-04-01 21:45:12
手ぎつねの人(射影前) @_handyfox

@magoroku15 ですね、@kumagiさんからも、アドバイスいただきました。ありがとうございます。プログラマから見ると、なぜそうなっているかがわからないと、面倒なだけで、モチベーションが上がらないことが多いのです。ありがとうございます。

2012-04-01 21:46:50
takahiro(John Smith) @superhoge

PC複数あったら、その分並行して同時に命令フェッチをする必要があり。GPU, SIMDは同命令(同演算)を複数データに対して平行して同時に処理をしようというものなので、PCは複数必要ないと思います。GPU, SIMDは勉強中なので、知っているのはこの程度

2012-04-01 21:49:37
takahiro(John Smith) @superhoge

この考えも合っているのかよくわからん

2012-04-01 21:50:12
八丁堀マゴロク亭 @magoroku15

simhでもbreakさせたらusp,kspと2個見えました。モードは上位機種でスーパバイザが追加されてるみたい。 RT @superhoge: 「とあるPDP11/40のレジスタにまつわる議論」をトゥギャりました。 http://t.co/7rQU7u66

2012-04-03 12:46:05
takahiro(John Smith) @superhoge

@magoroku15 やはり2個あるのですね。togetterまとめに追加させていただきました

2012-04-03 13:35:17
八丁堀マゴロク亭 @magoroku15

上位モデルはスーパバイザモード用にも1個。 RT @superhoge: @magoroku15 やはり2個あるのですね。togetterまとめに追加させていただきました

2012-04-03 13:54:47
takahiro(John Smith) @superhoge

@magoroku15 モードごとに1個ということですね

2012-04-03 13:56:39