CPU実験とは!?

理学部情報科学科では3年生の冬学期に情報科学実験IIという授業を行います。 学科内では通称CPU実験と呼んでいます。 この実験を簡単に説明すると簡易コンピュータを作ろうというものです。

さすがにコンピュータと言っても秋葉原で売られている一般商用コンピュータなどに 対抗出来るほどのものは出来ませんが と入ってもそこそこ速いコンピュータをつくることが出来るために なかなか力を注ぎ込んでしまうものです。

何をするの?

この実験の与えられる課題はただひとつ、 「コンピュータを設計実装し、そのうえでプログラムを動かしなさい」 ということです。 数人でグループを組み、 与えられた基盤と開発環境とマニュアルとにらみ合いながら CPUを作成しようという課題です。

コンピュータの箱の中身を見たことのない人、 またどのような原理でコンピュータが動いているかについて全く知識の無い人 にとっては冷や汗ものの課題内容ですが、 このCPU実験を行うと不思議なことに、 現在のコンピュータシステムの基本が非常に分かるようになります。 現在情報科学科に進学してきた人の中にも コンピュータ内部構造についてほとんど知らない人もいましたが(筆者はそうでした) 授業と演習、実験を通して次第に内部構造についての知識を身につけていく ようです。

CPU実験中に「バス」って何だろう、という質問に対し、 バスを知らない人、知っててもうまく説明出来ない人がかなりいた記憶があります。 グループの全員がみんなで一致団結し、 コンピュータについて勉強しながら作成していく課題です。

ただこれだけの前提条件であるとすこし抽象的で話が分かりにくいので、 もう少し具体的に何が必要とされでどのような流れでシステムを作成していくのか を書いてみます。 毎年の傾向で開発されるものとして、 実際にコンピュータとして働く基盤、 与えられたプログラムをコンパイルするコンパイラ、 プログラムを実行するためのさまざまなライブラリ、 基盤のプロセッサの部分の論理回路、 自作した基盤が実際に動くかどうか検証するための シミュレーションプログラムが作成されます。 これらを全て自分達で設計していくため、 非常に自由度の高いアーキテクチャ課題となっております。 とはいえこのようなことをいちいち書かれてもさっぱり内容がわからないので、 これらをもっと詳しく説明していきます。

さらに


○ コンピュータシステムの基本的な動作の説明
○ 実験における開発環境
○ コンピュータシステムの基本プログラムの作り方
○ コンピュータシステムを評価する
○ 開発中の学生の様子
○ プロセッサ演習発表会
○ 2004年度マシンデータ