English



マイクロアーキテクチャ設計入門
「制御回路編」



結線論理制御方式と水平型マイクロプログラム制御方式との間に本質的な相違はありません.

ここでは,結線論理制御方式(hardwired controlあるいはwired logic control)を「制御信号を有限状態機械(finite state machine)によって発生させる制御方式」,マイクロプログラム制御方式(microprogrammed control)を「マイクロプログラムを制御メモリに記録しておいて適宜読み出して制御信号を発生する制御方式」の意味に用いています.結線論理制御方式は布線論理制御方式とも言われます.

結線論理制御では有限状態機械(FSM)が状態遷移をしながら制御信号を発生します.有限状態機械は順序回路(sequential circuit)とも言われます.マイクロプログラム制御では制御メモリに格納されたマイクロプログラムを次々に読み出すことで制御信号を発生させます.マイクロプログラムを格納しておくメモリは制御メモリ(control storage)と呼ばれ,通常はROMで実現されます.これら2つの制御方式は,一見異なるように思われますが,

  1. 水平型マイクロプログラム制御方式におけるマイクロ命令レジスタ(microinstruction register)と 制御メモリアドレスレジスタ(control storage address register)の組
  2. 結線論理制御方式における状態レジスタ(state register)

を対応付けることで同一視できます.

ここに「水平型(horizontal)」という言葉は「個々のマイクロ命令が事実上制御信号そのものに対応しているような幅の広い符号化が行われているマイクロプログラム制御」という意味に用いています.水平型のマイクロプログラムは1クロックで処理されます.「水平型」に対比される「垂直型(vertical)」は各マイクロ命令が直接的に制御信号に対応してはおらず,数クロックに及ぶ,適当な解釈実行が必要なマイクロプログラム制御方式を意味します.ここでは垂直型は考えません.

水平型のマイクロプログラム制御方式の制御メモリ(control storage)が組合せ論理回路とみなせることに注意して下さい.出力が1ビット幅のメモリの場合,アドレスが000...0から111...1まで変るとき,それぞれのアドレスの内容の0と1を自由に指定できることは任意の真理値表が作れることに相当します.この意味において出力がNビット幅のメモリはN出力の任意の組合せ論理回路を実現可能なデバイスとみなすことができるわけです.こうして見るとこれら2つの制御方式は全く同じものだと見做すことができます.この様子を下の図に示します:





「制御状態が8個以下なら3ビットの状態レジスタを使えばいい」といった,Nを状態数としてlog Nのビット幅にするという発想が普通ですが,上述した同一視に注目すると結線論理制御方式における状態レジスタへの状態割当てには非常に広範囲な選択肢のあることに気付きます.

「フェッチ」,「デコード」,「オペランドフェッチ」,…のように,各時点でどの実行フェーズにあるかを示そうと,各制御状態に対して1ビットずつを割当てる符号化が指導されることもあるようです.「フェッチ」,「デコード」,「オペランドフェッチ」,…の各フェーズは「実行フェーズ」と呼ばれ,実行フェースを示す順序回路は「フェーズジェネレータ」と呼ばれてシフトレジスタで実現されます.フェーズジェネレータは初心者には理解しやすい設計ですが,可能なひとつの制御方法にすぎません.「フェーズジェネレータ」は"one hot"と呼ばれる状態割当てをしている結線論理制御です.選択肢はこれだけではありません.

「データ転送経路のゲートを開いたり,ALUの機能を選択したりするための信号を受ける箇所」を「制御点」と言います. 前述した同一視からは各制御点に対して1ビットを割当てるという状態割当ても得られます.水平型のマイクロプログラムとしては特に直接制御方式(direct control)と呼ばれる符号化です.状態レジスタのビット幅は制御点の数程度になります.無論,特定のバスにどのレジスタの内容を載せるのかなどでフィールド構成するなどの符号化をしても話は同じです.デコーダが多少負担にはなりますが,"log N"や" one hot"ほどではありません.

水平型のマイクロプログラムを順序回路で発生させて悪いという理由はどこにもありません.制御部が重くなり,全体の動作が遅くなるって?…いいえ,制御信号発生のための順序回路の遅延は並列に動作するデータパスの加算器などの遅延より軽ければ隠れてしまいます. ここでは「データパス」という言葉を中央処理装置(CPU)の,制御部を除く,算術論理演算回路や内部バスの意味に用いています. データパスと制御部は並列に動作しますので,結線論理制御方式での制御回路の遅延はデータパスの遅延より大になるかが問題なだけです.

設計が難しいって?1990年代に論理合成技術が普及して,複雑な制御信号を発生させる順序回路も,ハードウエア記述言語(HDL)で容易に設計出来るようになっています.

結線論理制御方式であっても, 所要クロック数の異なる命令からなる命令セットアーキテクチャをもつCISCの制御も思いのままです. CISC(complex instruction set computer)は複雑で高度な命令を多数備えたコンピュータ,RISC(reduced instruction set computer)は限られた数の命令の実行だけに全勢力を傾けるコンピュータです.これらのどちらにも結線論理制御方式を使おうという話です.

単に結線論理制御を使うというだけでなく,1制御点1ビットなどの水平型マイクロプログラムの符号化を用いた制御だと速いのです!「制御状態が8個以下なら3ビットの状態レジスタを使えばいい」というlog Nのビット幅の制御やフェーズジェネレータによる"one hot"の制御では最終的な制御信号を得るための回路がまだ必要です.制御部が殆ど制御信号という信号を発生させていれば,それらをそのまま使うだけで良くなります.

マイクロコンピュータ設計教育環境City-1が実施初年度,1996年(平成08年)度に例示したCISC-1というコンピュータでは,直接制御方式の水平型マイクロプログラム制御であるかのような,1制御点1ビットの状態割当てを行った順序回路で制御部を実現していました.結線論理制御方式はRISCだけのものではありません!

下記の拙著ではCISC-1を結線論理マイクロコードマシンHM^2(hardwired microcode machine)の名前で紹介させていただいています. 結線論理マイクロコードマシンは水平型のマイクロプログラムを順序回路で発生させる技術です.無論,何の問題もなく合成(シンセシス)に掛かります.

高橋隆一:Verilog HDLによるシステム開発と設計, 共立出版(2008)

ISBN978-4-320-12222-2


結線論理マイクロコードマシンCISC-1やVerilog HDLによるRTLでの動作記述RISC-3Bなどをダウンロードされたい方は拙著 「Verilog HDLによるシステム開発と設計」のWEBサイトをご訪問下さい.動作記述RISC-3Bは,2015年(平成27年)度現在も,卒業研究で一人一台コンピュータを設計させるときのひな形に使っています.

レジスタ間転送を箇条書きする構造記述は一般に「RTL記述」と言われます.CISC-1は所謂RTL記述を,状態レジスタの符号化の点で工夫した記述です.結線論理マイクロコードマシンとしていることで何も考えないRTL記述より10%から20%は高速なことを私どもの研究室で確認済みです.

RTL記述と動作記述の相違,RTLでの動作記述と構造記述については研究所主任時代の高橋隆一:オートマトン記述からの高位合成をご覧下さい.高位合成(ハイレベルシンセシス)技術があれば結線論理マイクロコードマシンの設計はもっと簡単になります.筆者がNECで開発していた高レベル自動設計システムはオートマトン記述から結線論理マイクロコードマシンを自動生成していました.

RISCが話題になりはじめた当時の国際会議ICCD'86についてはNEC若手社員時代の高橋隆一でご覧になれます.32ビットマイクロプロセッサについて7社から,計18件の発表のあったことが特徴的でした.この時期,半導体技術は32ビットの汎用プロセッサを1チップに集積できる時代を迎えていたのです,この1986年がちょうどその発表の時期にあたっていました.この時期はまだCISCはマイクロプログラム制御で作るのが当たり前でした.この国際会議で筆者はこのページで紹介している結線論理マイクロコードマシン技術の他に超高速オンデマンド機能シミュレーション技術も紹介しています.

結線論理マイクロコードマシン技術と超高速オンデマンド機能シミュレーション技術については下記でも紹介しています:

高橋隆一:電子機器設計に活かすディジタル代数学,科学情報出版 (2013)

ISBN978-4-904774-11-3


この本自体は電子機器設計を支える代数学の基本を網羅的に扱った著作になっています.内定をもらって,これから実務に付こうという大学生や大学院生,配置転換で,はじめて電子機器設計に係るようになったエンジニアの方が代数学をおさらいしておこうという時にお勧めの本になっています.


高橋隆一(たかはし・りゅういち)



文献


  1. 高橋隆一:Verilog HDLによるシステム開発と設計
    共立出版(2008)ISBN978-4-320-12222-2

    結線論理マイクロコードマシン:HM^2を扱った書籍です.この本で扱っている記述例が 「Verilog HDLによるシステム開発と設計」のWEBサイトでダウンロードできます.


  2. Ryuichi TAKAHASHI, Kenta KANDA, Yuji KIHARA, Hajime OHIWA:
    "CS Education for High School Students
    Focusing on Energy Consumption on FPGA,"
    Supplementary Proc. ICCE2007:15th International Conference on
    Computers in Education pp.39-40 (2007)

    "hardwired microcode machine(HM^2)" という呼び名を始めて使った文献です.


  3. Ryuichi TAKAHASHI and Noriyoshi YOSHIDA: "Diagonal Examples for Design Space Exploration in an Educational Environment CITY-1"...ACM, IEEE
    IEEE Proc. MSE 1999: International Conference on Microelectronic Systems Education, pp.71-73 (1999)

    水平型のマイクロプログラムを結線論理制御で発生するというアイデアを紹介した,英文での2件目の発表です.


  4. 高橋 隆一,吉村 猛:”ハイレベルシンセシスの動向”...IEICE
    電子情報通信学会論文誌A,Vol.J74-A,No.2,pp.143-151 (1991)

    「水平型のマイクロプログラム制御と結線論理制御は同一視できる」という話を扱った最初のジャーナル(論文)です.


  5. Ryuichi TAKAHASHI, Takeshi YOSHIMURA and Satoshi GOTO:
    A VLSI Architecture Evaluation System,
    Proc. International Conference on Computer Design, pp.60-63(1986)

    「水平型のマイクロプログラム制御と結線論理制御は同一視できる」という話を初めて発表した国際会議の書き物です.「規模を見積もるために両者を同一視する」という発表でした.NEC時代の書き物ですが特許は書いておらず,結線論理マイクロコードマシンHM^2は無料でご自由にお使いいただけます.




NEC若手社員時代の高橋隆一に戻る




「Verilog HDLによるシステム開発と設計」のWEBサイトへ




マイクロコンピュータ設計教育環境City-1のホームページへ




高橋隆一のパーソナル・ホームページのトップページに戻る