English


広島市立大学・情報科学部・情報工学科・学部3年の情報工学実験
マイクロコンピュータ設計教育環境City-1の実施最終年度

〜2008年(平成20年)度のCity-1: maruCm FPGAコンピュータ〜





ビデオGod's willで広島市立大学・情報科学部・情報工学科3年生を対象に高橋隆一が実施したマイクロコンピュータ設計教育環境City-1の最後の5年間(2004-2008)を紹介しています.

BGMにしている"God's will"には,作曲者(高橋隆一)自身,何度も勇気付けられました.

YouTubeにアップしているのと同じ計7本のビデオが高橋隆一のパーソナル・ホームページのフロントページではmp4でダウンロード出来ます.「作曲」をご訪問下さい.




この年もマイクロコンピュータ設計教育環境City-1(シティー・ワン)は履修登録した54人中50人が課題のプログラムを走らせるという好結果になりました.すべての作業を2009年1月30日(金)の17:50に打ち切りました.情報工学科の実験室(情報科学部棟3Fの314)のみでの実施となりました.学部演習室(情報科学部棟3Fの313)を使えなくされて3年目でした.走らせるべき課題は,この年もユークリッドの互除法としました.これで12年目になりました.互いに素な場合と2以上の最大公約数を持つ場合と等しい場合の3通りのすべてで最大公約数(GCM)と最小公倍数(LCM)を求めることができることを要求しました.

1996年度以来,13年間に及んだ世界最高水準の本マイクロコンピュータ設計教育環境City-1は,この2008年度が最終年度になりました.

2004年(平成16年)度に投入した20万ゲート規模のFPGA(Xilinx XC2S200-5 PQ208)を載せたボード(プリント基板)はFPGA込みで1枚1万円弱でした.TTLやソケット,スイッチなどを含めると1枚のボードに2万円の費用が掛かっていました.可能な限りのリサイクルも行っていました.この2008年(平成20年)度は周辺回路のかなりをFPGA内部に取り込ませました.

周辺回路を取り込む前
(2007年度の設計製作事例)

周辺回路を取り込んだ後
(2008年度の設計製作事例)


それでも高価な工具が必要だったりで高くつく実験でした.

システム設計のノウハウの本を書くまでは続けたい…ずっとそう思っていました.その本が書けていました:

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


"Verilog HDL(ヴェリローグ・エイチ・ディー・エル)"というのはハードウエアを記述するための専用言語のひとつです.ハードウエア記述言語(harware description langugae)と言われ,HDLと略称されます.Verilog HDLは1980代既に業界標準(de facto standard)として広く用いられていたHDLです.Verilog HDLは奇しくもCity-1の実施初年度の前年にあたる1995年(平成7年)にIEEE(アイ・トリプル・イー)によってIEEE1364として標準化されたHDLでした.IEEEは電気電子技術関連の大変権威ある米国の学会です.Verilog HDLは本マイクロコンピュータ設計教育環境City-1で13年間一貫して愛用したHDLでした.

一口にVerilog HDLと言ってもゲートレベルの構造記述も行えるなど実に様々な記述が可能です.本情報工学実験では平均的な学生にも高度な記述能力を与える真のRTL記述,「静的オートマトン記述」SSMD(static state machine description)を使いました.RTLはレジスタ転送レベル(register transfer level)の略称でレジスタ間のデータ転送が問題にされる設計レベルを意味します.論理回路が問題にされるゲートレベル(gate level)の上位に位置します.City-1成功の背景には,この,Verilog HDLによるRTLでの動作記述がありました.以下はInternational Journal of Computer Science and Network Security(IJCSNS), Vol.16 No.10, pp.116-121 (2016)で紹介したSSMDの記述例です:


「動作記述」は手続き的な記述を意味します.「オートマトン記述」は状態単位にレジスタ間転送を列挙して次の状態を指定していることを意味します.オートマトン記述の場合,手続き的な動作は状態遷移によって表現されます.オートマトン記述は,前述した拙著で紹介しているように,J. R. DuleyとD. L. Dietmeyerによって1968年に提案された古典的なハードウエア記述言語"digital system design language(DDL)"の記述スタイルです.

オートマトン記述自体は新しいものではありませんが,Verilog HDLでオートマトン主体の記述をしたのは筆者(高橋隆一)が初めてだと思います.古典的なハードウエア記述言語DDLの記述スタイルであり,ハードウエア記述言語を研究していた筆者にしかできない,Verilog HDLでは非常にユニークな記述スタイルでした.

筆者がNECで開発していた独自のオートマトン記述A^2DL(エイ・スクエア・ディーエル)の記述例


は高橋隆一:”ブール式を要求駆動で評価するRTレベルシミュレーション,”情処研報 設計自動化51-8(1990)でご覧になれます.

Verilog HDLによるRTLでの動作記述,静的オートマトン記述SSMDでは状態単位の動作を決めるだけで良く,システム設計の作業を進めながら書き下すことができます.オートマトン記述を書き下すことでマイクロアーキテクチャが形作られるとも言えます.マイクロアーキテクチャは計算機構成とも言われ,パイプライン段数や演算ユニットの数,バス構成などが問題にされる内部構造を意味します.アーキテクチャはこれより上位の概念で,機械語のプログラマから見える論理的な構造を意味します.何故「静的」と呼んでいるのかを含めて,詳しくはNEC主任時代の高橋隆一:オートマトン記述からの高位合成を御覧下さい.

筆者が工夫したとは言っても,Verilog HDLによるRTLでの動作記述,SSMDはIEEE1364標準であることに変わりはありません.Verilog HDLは非常に広範な記述能力を持ったHDLで,オートマトン記述も仕様の一部でした.問題は合成ツールが賢い合成をしてくれるかという点でした.マイクロコンピュータ設計教育環境City-1で愛用していたSynplifyという合成ツールは期待に応えてくれ,世界最高水準のマイクロコンピュータ設計教育を支えてくれました.

Verilog HDLによるオートマトン記述からのSynplifyによる合成事例がVerilog HDLによるRTLでの動作記述(SSMD)からのSynplifyによる高位合成でご覧いただけます.

オートマトン記述はC言語と比較しても全く遜色のない動作記述だと考えていました.クロック信号がひとつという単相の場合を含む,多相のクロック信号に同期したレジスタ間転送を縦横に記述することができる分,C言語による動作記述より優れているとも考えていました.オートマトン記述はRTオペレーション(レジスタ間転送)の間の依存関係しか定めていないと見做せば,他の動作記述と比較しても全く遜色のない手続き的な動作記述の能力があると考えられます.特定のRTオペレーションを他の状態に移動させるスケジューリングも行えます.他方で妙なスケジューリングなどしないでほしい場合もあるでしょ.クロック信号を指定しない動作記述など無用だという話です.「アルゴリズムレベル」など存在しないという話でもあります.広い目で見ればVerilog HDLはC言語をベースにして開発されたHDLとして成功した唯一の事例だとも考えていました.

世の中で言われているVerilog HDLによる「RTL記述」は構造記述です.Verilog HDLによる構造記述では,手続き的な記述は行われず,レジスタ毎にどんな条件でどんなデータが格納されるかを箇条書きします.「RTL記述」ではデータパス部と制御部は分けて記述されます.制御部は制御信号を発生させる順序回路として記述されます.制御部はどの状態にあるかを示す信号を発生させます.データパス部の記述では制御部が発生する制御信号を受けて各レジスタにはどんなデータが取り込まれるかが箇条書きされます.「RTL記述」はマイクロアーキテクチャが定まってからでないと書き下すことはできません.

半導体理工学研究センター(STARC)が推奨してきたRTLでのVerilog HDLによる記述スタイルも,世の中で言われているVerilog HDLによる「RTL記述」でした.Verilog HDLによるRTLでの構造記述であり,各モジュールはどんな場合にどんなデータがセットされるかを箇条書きしたレジスタで終端するよう指導されていました.ちなみにSTARCが推奨してきた記述スタイル,「RTL記述」はNECが1980年代既に実用化していたFDLという独自のハードウエア記述言語のVerilog HDL版と見ることがことができたりします.FDLはレジスタ毎にどんな場合にどんなデータがセットされるかをIF THEN ELSEで箇条書きするHDLでした.

City-1の実施初年度の1996年に配布した記述例CISC-1では
  1. 殆ど制御信号と言えるマイクロプログラムを発生する順序回路と
  2. 当該マイクロプログラムで制御されるデータパス部
を別のモジュールとして記述していました.RTLでの構造記述になっており,世の中で言う「RTL記述」でした.が,RTL記述だったという以前にCISC-1は結線論理マイクロコードマシンでした.

結線論理マイクロコードマシンは水平型のマイクロプログラムを発生させる順序回路を持つ設計を意味します.ここに「水平型」は,殆ど制御信号という,1クロックで実行可能なマイクロプログラムを意味します.これに対する垂直型は解釈実行が必要なマイクロプログラムを意味します.結線論理マイクロコードマシンの制御部はどの状態にあるかではなく,各状態で必要になる制御信号そのものを発生させていたのです.結線論理マイクロコードマシンでは各状態でどんな制御が行われるかを解読する回路が必要ないだけ,どの状態にあるかしか考えないRTL記述より,10%から20%は高速なことを私どもの研究室で確認済みです.

学生実験とはいえ,コンピュータというたったひとつの装置のためだけに存在した情報工学科の3年生が存続した1996年(平成8年)度から2008年(平成20年)度までの13年間,全く自由なアーキテクチャ,マイクロアーキテクチャのコンピュータを一人一台設計し,製作までをする,他に類を見ない世界最高水準の情報工学実験City-1を筆者の思い通りに実施する機会を与えてくれた広島市立大学と広島市に深く感謝しています.

情報工学実験City-1を履修する機会を失った2010年度の4年生からは,筆者を選んだ数名が対象ですが,卒業研究で一人一台コンピュータを設計してもらうことにしました.高価な製作はさせない代わり,設計検証などを研究してもらっています.以下は関連ページです:

SystemVerilogアサーション(SVA)の書き方

IUS(Linux版)によるアサーションベース検証(ABV)


卒業研究に使っている例を含むVerilog HDLによるRTLでの動作記述(RISC-3など)や構造記述(CISC-1など)をダウンロードされたい方は拙著 「Verilog HDLによるシステム開発と設計」のWEBサイトをご訪問下さい.Computer_RISC_3BVは3段パイプラインのComputer_RISC_3Bの記述にSystemVerilogアサーションを加えた記述です.2016年(平成28年)度の卒業研究ではComputer_RISC_3BVをひな形にASIP設計と検証を指導しました.

オートマトン主体のVerilog HDLによる動作記述,静的オートマトン記述,略してSSMDや結線論理マイクロコードマシンについては下記でも紹介しています.

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


この本自体は電子機器設計を支える代数学の基本を網羅的に扱った著作になっています.電子機器設計に関連するメーカーへの就職が内定した大学生や大学院生にお勧めです.理学の人が読んでも面白いかもしれません.


YouTubeの高橋驤でCity-1のビデオ5本すべてがご覧になれます♪


…原画は高橋隆一のマイクロコンピュータ設計教育環境City-1を紹介するDVDでダウンロードできます.

何故この2008年度で止めたのか,City-1の凄まじい(笑)楽屋裏に興味のある方は広島市大・助教授/准教授時代の高橋隆一をご訪問下さい.

City-1最後の年は,筆者以外のスタッフとして,情報科学研究科・情報工学専攻M2になった神田健太(かんだ・けんた)君とM1の笠松祐人(かさまつ・ひろと)君の2人にTA(teaching assistant)を担当いただきました.


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



最優秀設計製作賞受賞者:

おかざき ともや きむら みつひさ したおか しゅんすけ すぎやま よういち ふじわら しょうへい

岡崎 知也

木村 光寿

下岡 俊介

杉山 陽一

藤原 昇平



課題をクリアしたスーパースカラ・プロセッサ一覧:

いしはら しゅうへい いのうえ ゆうすけ いはら まさと うしろごうち たかお うたん ゆういちろう うまやはら だいすけ

石原 周平

井上 裕介

井原 誠斗

後河内 貴生

宇丹 裕一朗

馬屋原 大介


おおた やすはる おさき としのぶ おせ としひろ かじやま たかひろ かわむら えみ きくち りょうた

大田 康晴

尾崎 俊信

尾世 俊洋

梶山 恭弘

河村 依美

菊地 亮太


きむら みつたか くにみつ しゅうじ くまがい ゆかり くろかわ きょうへい くわばら ゆうき さいとう あきひさ

木村 光隆

国光 修司

熊谷 ゆかり

黒川 恭平

桑原 祐樹

斎藤 彰久


しまもと こうじ すみ たつろう せら こうじ そがべ としゆき たおもと けん たくわ ようへい

島本 浩司

住 達郎

世良 公二

曽我部 敏行

垰本 謙

宅和 洋平


たなか よしと たまおき たかとし ためひろ かずや とよた けいこ ないとう しげふみ なかの さとる

田中 義人

玉置 貴俊

爲廣 和也

豊田 恵子

内藤 成文

仲野 悟


なかむら まさとし にしもと しん はしもと たけし ひぐち なおや ふじい ちはる ふるまい ひろかず

中村 政智

西本 真

橋本 健志

樋口 直哉

藤井 千晴

古米 央憲


ほんじょう まさみつ まえだ ともや まつだ としひこ みき ゆうすけ みむら けんた みよし つばさ

本庄 賢光

前田 智哉

松田 稔彦

三木 佑亮

三村 健太

三好 翼


みよし ゆうな もり ゆういちろう やすだ さとし

三好 佑奈

森 雄一郎

安田 哲志







広島市立大学・助教授/准教授時代の高橋隆一に戻る



高橋隆一のパーソナル・ホームページへ



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