皆さん、こんにちは。
id:hiro-tamakiです。
8/29(木)に第2回『コンピュータシステムの理論と実装』の勉強会が開催されました。ここでは、勉強会で学習した内容と次回予告を書いていきます。
また、勉強会の様子や進め方は 第1回「コンピュータシステムの理論と実装」の勉強会 に記載していますので、よかったらご覧ください。
本記事の目次
第2回勉強会の内容
第2回勉強会の学習内容を簡単に書いていきます。より詳しく知りたい場合は、次の資料を参考にしてください。
コンピュータで処理される演算には大きく分けて2種類あります。それが論理演算と算術演算です。
論理演算は、第1回目で扱ったブール論理を用いた演算のことで、And,Or,Not(またはNand)を基本要素とします。
算術演算は、足し算や引き算のような四則演算のことです。第2回目の勉強会では、2進数の算術演算とそれを処理するハードウェア装置について学習しました。
この本で作るコンピュータは、全ての算術演算をハードウェアで行うのではなく、ソフトウェア側にもお手伝いしてもらいます。ハードウェアでは加算と減算、ソフトウェアでは乗算と除算を処理します。
2進数加算
2進数の加算は、10進数と基本的には同じです。違うのは、10進数のときは9を超えた場合、2進数は1を超えた場合に、それぞれ桁上がりします。
2進数減算
数には正の数と負の数があります。正の数は、3や9のように数字だけを用いて表すことができます。しかし、負の数は、ー3やー9のように数字だけでなく符号もつけなければいけません。この符号付きの数をコンピュータ上で表現する一般的な方法として、2の補数表現があります。
ある負の数を2の補数表現すると正の数のように扱うことができます。ですので、コンピュータで実行される減算は加算としてみなすことができます。
加算器
上で説明した、2進数の加算と減算を行ってくれるハードウェア装置を加算器といいます。
加算器は大きく分けて2種類、半加算器と全加算器があります。半加算器は2つのオペランドの加算(減算)、全加算器は3つのオペランドの加算(減算)を行ってくれます。
ALU
ALUは Arithmetic and Logic Unit の略で、日本語では算術論理演算器といわれます。その名の通り、算術演算と論理演算の2つの演算をやってくれる優れものです。
ALUでどのような演算を行うかは制御ビットによって決まります。1つの制御ビットでは 0と1 の2通りの演算内容があります。2つの制御ビットでは4通り、3制御ビットでは8通り・・・と制御ビットが増えるごとに、扱える演算内容も増えていきます。
勉強会の作業内容
HDLを使って、加算器とALUを作成
↓
シミュレータで動作確認
次回予告
勉強会は毎週金曜日の19時頃から開催しております (主催者の都合上開催されない週もございます)。詳しくは下のリンクをご覧ください。
第3回目では、データを保存するハードウェア装置 レジスタとメモリを作成していきます。