第2回「コンピュータシステムの理論と実装」の勉強会

皆さん、こんにちは。  

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時頃から開催しております (主催者の都合上開催されない週もございます)。詳しくは下のリンクをご覧ください。  

connpass.com

第3回目では、データを保存するハードウェア装置 レジスタとメモリを作成していきます。