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

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

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

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

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

Instruction Decoder【Turing Complete編】

はじめに

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

FIRE生活中のIPUSIRONです😀

IPUSIRONのプロフィールを見る

Instruction Decoderステージ

Instruction Decoderステージのゴールは、Instructionのためのビット列(以降Instructionビット列と呼ぶ)の上位2桁でモードを振り分ける回路を組むことです。

次の4つのモードが定義されているものとします。

※「x」は0 or 1になります。

Instructionビット列指示の内容
00xx xxxxbImmediate
01xx xxxxbCalculate(Compute)
10xx xxxxbCopy
11xx xxxxbCondition
Instructionビット列の解読

RegistersモードではCopyモードの場合だけに注目しました。このときは上位2桁は無視していましたが、本来は10bのときにCopyモードになるということです。

Instruction Decoderステージを解く

1:回路を組む

右側にある4つの出力端子は、各モード(Immediate、Calculation、Copy、Condition)に対応します。

これは素朴に考えるだけで解けます。

Input端子はInstructionビット列(8ビット)なので、まずは8 Bit Splitterを通して分離します。

次に3 Bit decoderを通して、4本に分岐させます。ただし、4つのモードは2進数2桁に対応しており、3 Bit decoderの入力は2ビット分しか使いません。

最後に、4本のワイヤーを各モードの出力端子につなげればよいことになります。

2:テストする

テストにパスすれば、回路がセーブされて、Component Factoryで使えるようになります。

DECコンポーネントがアンロックされます。