当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題のある表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

Immediate Values【Turing Complete編】

はじめに

いつもブログをご覧いただきありがとうございます。

FIRE生活中のIPUSIRONです😀

IPUSIRONのプロフィールを見る

Immediate Valuesステージ

Immediate Valuesステージのゴールは、Immediateモードの処理を回路に組み込むことです。

Instructionビット列が「00 xxxxxxb」のように上位2桁が00なら、Immediateモードとして処理します。

Immediateモードでは、「xxx xxxxb」(0から63までの数値)をREG 0にセーブします。

※アセンブリ言語を学んだことがあるならピンとくるかもしれませんが、Instructionビット列の下6桁が即値になります。即値(イミディエイト)とは、CPUに与える命令のうち、数値が直接記述されている部分あるいはその値のことです。

Immediate Valuesステージを解く

1:Immediateモードを認識する仕組みを追加する

Instructionビット列からImmediateモードを識別させるには、DECコンポーネントの役目です。

Instructionビット列の上位2桁が00b

⇒Immediateモード

⇒DECコンポーネントの0番ピン(0番スタート)がONになる

⇒Immediateモード時には、Instructionビット列をレジスターREG 0に記憶する

⇒Instructionビット列はプログラムメモリーから送られてくるので、それを取得してREG 0のSave valueピンから入力します。ただし、Immediateモード時にのみ送られるように、途中に8 Bit Switchコンポーネントを配置して、その制御はDECコンポーネントの0番ピンからくる信号とします。

(CPU回路の中央に配置されている)Registerコンポーネントの入出力
DECコンポーネント

上記の内容を実装すると次の回路になります。

2:REG 0の有効を制御する

まだ完成していません。Immediateモード時にREG 0をセーブ状態にしなければなりません。

REG 0はCopyモードとImmediateモードのどちらでもセーブ状態として使えるように、DECコンポーネントから伸びるモードを示すワイヤー(信号線)をORゲートを通したうえで、REG 0のSaveピンにつなげます。

3:全体を見直す

以上で回路を組み込み終えたので、全体が見えるようにしてください。

・DECコンポーネント・・・4つの出力ピンのうち3つの接続が完了。Immediateモード、Calculationモード、Copyモードに対応済み。

・REG共通・・・Copyモードで使う。

・REG 0・・・Immediateモードでの即値の記憶先。

・REG 1~3:Calculationモードで使う。

4:テストする

回路が完成したら、テストしてください。

いよいよ次がCPU ARCHITECTUREの最終ステージになります。