2009/10/19

ハードウェアのお仕事 その1

こんにちは。基盤係の花元です。前回お話したとおり理情では平日でも基本的に 2 限しか講義が無いため、生活リズムが崩壊しがちです。先日午前 3 時ぐらいになんとなーく大学に行きたくなって自転車で大学に向かっていったら職務質問を受けました。

「君、家に帰る途中?」
「はい…(あ、でも防犯登録している場所と方向が逆だ…)いや、大学に向かう途中です」
「それは大変ですね(笑)」

と、ちょっとだけ疑いの目を向けられた反応が返ってきてしまいました。

とまあそんなことはさておき、今回はハードウェアはどんなことをするのか説明したいと思います。ハードウェアは何をするかというと、コンパイラが生成してくれた言語を忠実に実行します。それだけです。ところがただ実行するだけでもさまざまな特徴が出てくるんですね。特に私たち Team C# が今回作る VLIW アーキテクチャは結構特殊なアーキテクチャです。

VLIW とは Very Long Instruction Word、現代語訳するとめっちゃ長い命令語です。短い命令語だと「掃除して」「洗濯して」「料理して」と小分けしてハードウェアに伝えないといけない所を VLIW なら「掃除しながら洗濯もしながら料理しといてーな」と一度に命令することが出来ます。

「えーすごいじゃん。じゃあ何で VLIW は今 popular じゃないの?」と思うかもしれません。実は VLIW にすると命令を出すほうが大変になるんです。例えば「洗濯しながら洗濯物もたたみながら洗濯物をタンスにしまってーな」なんて命令を出しちゃうと、ハードウェア君は何も考えずに洗濯する前の洗濯物をたたみ、洗濯もしていなければたたんですらいない洗濯物をタンスにしまってしまうのです。これでは困りますね。そこで、コンパイラはこのような命令(依存関係のある命令と言います)を出さないようにしつつ、出来るだけ効率よく(この例では)家事をこなせるように命令してあげないといけないのです。

というわけで VLIW アーキテクチャを作る我らが C# 班では

  1. コンパイラはとても頭のよい司令官になること大切
  2. 基盤は上官様の指令を何も考えずにとにかく速く従うことが大切

になります。両方大切ですがコンパイラ係が特に大切ですね。頑張れ竹井君!

0 件のコメント:

コメントを投稿