[戻る]
記事閲覧
おなまえ
Eメール
タイトル
コメント
参照先
アイコン [アイコン参照]
暗証キー (英数字で8文字以内)
画像認証 (右画像の数字を入力) 投稿キー
文字色
状態遷移図 投稿者:e.naka 投稿日:2011/12/03(Sat) 09:27 No.30

 命令セットと回路図が公開されていても(頭が固くなっているので)理解できないところがあります。
 命令の実行ステップ数とか、R1/R0=1かつIx=1ではどうなるとか、Id=1かつM/im=0ではどうなるとか、など。
 できれば、ブロック図のほかに状態遷移図があれば、うれしいです。
 実装面で性能改善できないか考えてみたのですが、メモリと演算する命令セットなので、命令フェッチとアドレスデコードのパイプライン化は意味なさそう。

Re: 状態遷移図 投稿者:管理人tanacom 投稿日:2011/12/03(Sat) 11:54 No.31

おはようございます。
状態遷移図は、これを作らないと見る方が解りにくいだろうと丁度、書こうと考えておりました。それを作れば、実行ステップ数も解説出来ますし。
e.nakaさんは「それは、いい質問です」と言いたくなるような、ご質問を投げて下さるので、大感激です(そこまで深く見て頂いて〜)。
ご質問の件についても状態遷移図付近でご説明できると思います。・・・少々お待ちくださいませ

Re: 状態遷移図 投稿者:e.naka 投稿日:2011/12/04(Sun) 10:16 No.32

 楽しみに待っています。回路図を紙に出して蛍光ペンでなぞって、パズルを解くつもりで考えています。
 思いついた性能改善手段は、ALUがメモリとレジスタに(ほぼ)同時アクセスできるよう内部データバスの2重化かなあ。
 30年前はメモリがスピードのボトルネックとのことでしたが、メインメモリボードを更新した際にクロックアップとか検討されたんでしょうか。タイマやビデオ、IO周りがあるため単純ではないでしょうが。

Re: 状態遷移図 投稿者:管理人tanacom 投稿日:2011/12/04(Sun) 23:08 No.33

お待たせしました。
本文のカテゴリに「動作原理」を追加しました。宜しければ、ご覧下さい。
私は、かっこ良い状態遷移図は作れませんので(笑)、フローチャート的な図示で、命令実行サイクルを解説してみました。

ご覧になれば一目瞭然でしょうが、
>Id=1かつM/im=0ではどうなる?
イミデートが優先されるので、アドレス修飾の作業はナシです。

>R1/R0=1かつIx=1ではどうなる?
こちらは、図示には出てきません。
R1/R0=0かつIx=1とまったく同様な動作で、メモリから読み取ったデータが、R0ではなく、R1に入るだけです。
本文で解説していますが、R1/R0に使った74198は、マスタースレーブ式のFFで構成されたレジスタなので、自分の出力と何かを演算した結果を自分にレジストする事が出来ます。
よって、「R1/R0=1かつIx=1」は実行可能ですが、あまり意味のない命令となってしまいます。

>2009年、メインメモリを新設した時、高速SRAMにして、パーフォーマンス改善を何故しなかったの?
とにかく、無事生き返って、30年前のソフト達が、そのまま動いてくれる事が、最優先でした。
(万が一、高速になるとゲームソフトに遅延を入れないと、早くて私には、遊べません・・・笑)
本当は、DIPタイプで入手できる超高速SRAMが存在しなかったので、高速化は将来のお楽しみとしました。

e.naka さん、追加記事お読みになって、また何か性能改善が浮かばれたら、ぜひご提案ください〜!

Re: 状態遷移図 投稿者:e.naka 投稿日:2011/12/05(Mon) 06:28 No.34

 仕事が速いです (^_^;) おかげさまで、よく理解できました。
 新たに沸いた疑問としては、Id=0の時もDサイクルに2ステップ必要か、なぜCNT=1のときステップの増加はないのか、などです。
 ヒントをいっぱい頂いたので、もう少し自分で(楽しく)悩んでみます。

>イミデートが優先されるので、アドレス修飾の作業はナシです。
 既存のコードの未定義部分がどれかに固定されている場合に限りますが、M/im=0のときデコードとレジスタのセレクタを追加すれば、未定義部分にあと3条件押し込めますね。
 追加するとすれば、オペランド対象(□)を、上位byteへのイミデート、PCレジスタ、コンディションフラグにする、などでしょうか。そうすれば、PCに加減算してR1に代入直後にブランチ命令をIx=1で実行すれば、相対ジャンプの代用になるかもとか。

>よって、「R1/R0=1かつIx=1」は実行可能ですが、あまり意味のない命令となってしまいます。
 何かプログラム上の裏ワザ的利用法があるのかと思っていました。2倍掛と加算を1命令で実行できるとか。
 同じく既存のコードで未使用の場合に限りますが、R1/R0=1かつIx=1のときはR1でなくR0を加算するように変更した場合、(レジスタ選択の自由度が増して)プログラミングで何か嬉しいでしょうか。
 機械語で本格的なプログラミング経験がないのでよくわかりません。マイクロコードのプログラミングをしていて出来ないときはマイクロ命令のハードの方を変更してもらいました。スタックとか(笑)

>(万が一、高速になるとゲームソフトに遅延を入れないと、早くて私には、遊べません・・・笑)
 タイマ割り込みを使いやすくしたクロックに依存しないWAIT命令の追加が必要ですね(笑)
 高速化は現状も70nsのSRAMなので、周辺をそのままに簡単に実現するならば、クロックはそのまま分周を2分周にし、(E1/E2は条件変更が必要なので)M1/M2の2ステップのみを1ステップに変更して1.5倍速くらいでしょうか。

 つい嬉しくていっぱい書き込んでしまいました。

Re: 状態遷移図 投稿者:管理人tanacom 投稿日:2011/12/05(Mon) 15:55 No.35

>仕事が速いです
ありがとうございます、たまたま日曜日でしたので書けました。それにしても、e.naka さん、投稿されるお時間が「速いです」ね(^_^;)

>M/im=0のときデコードとレジスタのセレクタを追加すれば、未定義部分にあと3条件押し込めますね。
おぉ、これはグッドアイディア! TANACOM-1A に即採用したいです。
その他のご提案も、面白そうです。即答せず、じっくり考えてみます。コンピューターのアーキテクチャや、命令セットを考えるのは、実に楽しいですね!

1点、当時を思い出しますに、命令デコードに、独立したD-FF のフレーズを与えていないので、色々な条件でセレクタ等を多用して、解読作業をやらせた場合の、「遅延」による、ご動作を相当心配していました。
OPコードの頭4bit の状態は、デコーダー74154よりも先読みさせるために、7420のNAND を使ったりで、とにかく「遅延が招く誤動作」には、気を配っていました。
よって、便利だけど複雑な命令セットは、選ばなかったのだと自分を推理します(作る大変さも、鑑みて)。
e.naka さん、また蛍光ペンにぎって、頑張って下さい(^_^;)

Re: 状態遷移図 投稿者:e.naka 投稿日:2011/12/11(Sun) 07:28 No.39

>とにかく「遅延が招く誤動作」には、気を配っていました。
 実行ステップ数を減らすため、遅いRAMアクセスに隠れるよう命令デコード周りが非同期設計なんですね。IR回路やPHASEコントロール回路は、素子遅延も考慮して解読する必要があると。
 今手に入る部品で復刻しようとしても、そのまま74LSシリーズや74HCシリーズに置き換えられなさそう。もっとも、VIDEO回路で使っているCGROMなんか絶対入手不可能ですし、汎用ROMなどによる回路変更は必須なんですが(^_^;)

>便利だけど複雑な命令セットは、選ばなかった
 とにかく美しくてシンプルな回路構成に惚れ惚れします。シンプルなだけの回路でなく必要十分な命令とアドレッシングを持つのも素敵です。
 組み合わせ回路のところをGALに置き換えるだけで、ずっと部品点数を減らせそう。256K SRAMと合わせればA3回路図一枚に収まるんじゃ。

Re: 状態遷移図 投稿者:管理人tanacom 投稿日:2011/12/11(Sun) 19:27 No.41

>命令デコード周りが非同期設計なんですね。素子遅延も考慮して解読する必要があると。
素子遅延考慮は、ほんのちょっとだけで、何かたいそうな設計ポリシーがあった訳では、ございません(^_^);

>今手に入る部品で復刻しようとしても、そのまま74LSシリーズや74HCシリーズに置き換えられなさそう。
いえいえ、多分、今と同じクロック周波数で良ければ、74HCシリーズでも、動く、と予想しています。
フェッチサイクルの終わりがけに命令をデコードと、申しましたが、もう少し、詳しくご説明しますと、
フェッチサイクルにより命令を取得後、次のフェーズにバトンタッチするまで、100 nSマージンがあるのです。
よって、この100 nSの間に、デコードが完了しさえすれば、大丈夫なのです。
実はこの100 nSマージンは、全てのフェーズが内包しています。
ただ確かにALUの演算結果で、オールゼロを判定する回路には、74S02と74S30 を使っています、スピード的にここを一番心配しました。
そこだけは、CMOSタイプの74シリーズでも、何か高速版に置き換えればと思います。

>もっとも、VIDEO回路で使っているCGROMなんか絶対入手不可能ですし、汎用ROMなどによる回路変更は必須なんですが(^_^;)
そう言えば、TANACOM-1のちょっと後の頃、PCG(プログラマブルCG)というのも流行りましたですねぇ。
実は私は、VRAM回路は、CPUの外側だという感覚が強く、市販のVGAが取り付けられたらなあと思うほどです。
てもVRAMもロジック回路を組み合わせて・・・と言う、自作派のお気持ちも良く解ります。

>とにかく美しくてシンプルな回路構成に惚れ惚れします。シンプルなだけの回路でなく必要十分な命令とアドレッシングを持つのも素敵です。
うわー、とても嬉しいお言葉、涙が出そうです、ありがとうございます!!

>組み合わせ回路のところをGALに置き換えるだけで、ずっと部品点数を減らせそう。
「超マシン誕生」の本で触れましたEclipse MV/8000 は、当時出たばかりの「PAL」を挑戦的に採用しました。
そのPALとか、GALには、憧れがあります。GALは、今でも千石電商さんで入手できますねー。

Re: 状態遷移図 投稿者:e.naka 投稿日:2011/12/17(Sat) 08:29 No.46

>いえいえ、多分、今と同じクロック周波数で良ければ、74HCシリーズでも、動く、と予想しています。
 組み合わせ回路部分にて信号の確定順が逆転するとひげが出る箇所があるが阻止遅延を考慮すると大丈夫な箇所などで、高速なロジックに置き換えると問題があるんじゃないか、と心配していました。
 自分が読み解けた限りでは、そういうまずい設計はしていなくてきれいな設計でした。

>てもVRAMもロジック回路を組み合わせて・・・と言う、自作派のお気持ちも良く解ります。
 自分なら、DIPなら見た目雰囲気損なわないので、74181がありならカウンタに過ぎないMC6845系もアリと妥協してしまいます。さすがにCPU製作なので、PICとかマイコン使用は悲しいので自重しますが (^_^;)

>そのPALとか、GALには、憧れがあります。
 TOP853やTOP2005+などの数千円の廉価な汎用ライタが入手でき、無償の論理合成ツールのLattice ispLEVER ClassicがGALに対応しているため、デバイスの入手さえできるなら金銭的技術的敷居は低いです。
 論理合成(というほどでもない)ツールは、昔懐かしいPALASMも今では無償で入手できます。

Re: 状態遷移図 投稿者:iruka 投稿日:2011/12/17(Sat) 23:14 No.49

>そのPALとか、GALには、憧れがあります
Latticの16V8Aとか20V8Aならいくつか持ってます。
(たしかあれってfuseなので消せなかったような気がする・・・)
へんてこな合成ツールを書いて、論理式からJEDECへ変換
とかやってました。ライターはMINATOのやつがありました。
主にアドレスデコーダでメモリーチップのCEとか作るのに
使ってました。74LS138で作るとアドレスが多くなったとき
に外部に付け足しロジックが増えるので。
TTLに比べてゲート数は多いですけど消費電力もやや多かった
ような記憶があります。

Re: 状態遷移図 投稿者:iruka 投稿日:2011/12/17(Sat) 23:55 No.50

GALについては相変わらずChaNさんのページが詳しいです。
http://elm-chan.org/docs/gal.html

少し思い出してきたのですが、PAL16V8はOTPで消せなかった
のですが、GALのほうはEEPで再プログラミング出来たと
思います。そういえば、論理式を書き換えてメモリーマップ
を変更できたような気がします。

TTLがディスコンになってしまったらGALで互換品を焼くとい
う手がありますね。ちょっと高くつきますが。


Re: 状態遷移図 投稿者:e.naka 投稿日:2011/12/18(Sun) 06:27 No.51

 AND-ORアレイの片方が固定で多品種で対応するのがMMI社のPAL、両方がプログラマブルなのがLattice社のGAL。
 バイポーラ世代がFUSEによるワンタイム品、MOS世代がPROMによる再利用可能品で、GALは最初からMOSで、PALはAMD社の買収後にMOSに移行だったはず。
 残念ながらPALもGALもほぼディスコンになってしまいましたが、大量に使われたためパッケージにこだわらなければストック品が入手可能です。

Re: 状態遷移図 投稿者:管理人tanacom 投稿日:2011/12/18(Sun) 18:28 No.52

>確定順が逆転するとひげが出る箇所があるが・・・そういうまずい設計はしていなくてきれいな設計でした。
おぉ、30年前の私がホッとしましたー(笑)。そこまで深く回路を見て頂いて、ありがたいです!

>MC6845系もアリと妥協してしまいます
こちらにも同感できます。H8とかの出力装置として、CPLDで作ったVGAの記事とか目に止まり、一瞬、採用しようかと思ってしまいます。

e.nakaさん、irukaさん、GALなどのお話、お詳しいですね、とても参考になりました。
でもTTL等ディスコン話が増えてくると、とても寂しく感じますねぇ。

- YY-BOARD -