VRChat CS集会で学ぶ!CPU作ろう#3:足し算回路の作り方をマスターしよう!

詳細情報

集会名 CS集会
日時 2023年07月04日 22:00 - 22:30
テーマ CPU作成#3
発表者 夜鍋ヨナ
発表資料 ファイル

発表内容のハイライト

  • VRChatのCS集会で、夜鍋ヨナさんが「CPU作ろう#3 足し算回路」というテーマで発表を行いました。
  • 論理回路を用いて足し算を行う仕組みを、半加算器と全加算器という概念を使って解説。
  • GPU RTX4060にSSDを増設できるという、ちょっと変わったおまけ情報も飛び出しました!

CPU作ろうシリーズ#3:足し算回路に挑戦!

夜鍋ヨナさんの「CPU作ろう#3 足し算回路」は、CPUを作るシリーズの第3弾。前回までの内容を踏まえて、今回は足し算回路の作り方に焦点を当てて解説してくれました。

前回までの振り返り:コンピュータサイエンスの世界へようこそ!

ヨナさんは、VRChatで活動する普通のユーザーさんが、CS集会を通じて4bit CPUを作ることに挑戦したという、ちょっと意外な経歴の持ち主です。

前回までは、コンピュータの基礎である論理回路について学びました。 - AND、OR、NOT、XOR、NAND、NORといった基本的な論理演算を理解し、 - NAND、NOR、NOTだけで他の論理演算を表現できることを学びました。

さらに、CPUの構成要素であるALU(算術論理演算ユニット)デコーダ、セレクタ、PC(プログラムカウンタ)、メモリなどの概念にも触れてきました。

足し算回路を作ってみよう!

いよいよ今回のメインテーマ、足し算回路の登場です。CPUは足し算だけでなく様々な計算を行いますが、基本となるのは足し算です。

論理回路で足し算?

では、どのようにして論理回路で足し算を実現するのでしょうか? ヨナさんは、和系積系否定の3つのグループに論理演算を分類し、足し算に適した論理演算を探っていきました。

  • 和系:OR、NOR、XOR
  • 積系:AND、NAND、XAND(XNOR)
  • 否定:NOT

加算器を作ろう!

これらの論理演算の中から、足し算に適しているのはXORでした。 XORを用いることで、1bit + 1bit = 1bit の計算ができる加算器(Adder)を作ることができました。

しかし、足し算には桁上がりという問題が発生します。 例えば、1 + 1 = 10 のように、繰り上がりがある場合、1bitの加算器だけでは足りません。

桁上がりを処理する:半加算器と全加算器

そこで登場するのが桁上がり(Carry Out)です。 桁上がりは、AND演算で表現することができます。

桁上がりを考慮した加算器を半加算器(Half Adder)と呼びます。 半加算器は、2つの入力と2つの出力(加算結果と桁上がり)を持つ回路です。

さらに、前の桁からの桁上がり(Carry In)も考慮した加算器を全加算器(Full Adder)と呼びます。 全加算器は、3つの入力(2つの被加数と前の桁からの桁上がり)と2つの出力(加算結果と桁上がり)を持つ回路です。

今後の展望:全加算器の設計へ!

今回の発表では、半加算器の作り方を学びました。 全加算器は、半加算器を2つ組み合わせることで作成することができます。 次回の発表では、全加算器の設計に挑戦するそうです。

GPU RTX4060のおまけ情報:SSDを増設できるってホント?

ヨナさんは、発表の最後におまけとして、GPU RTX4060にSSDを増設できるという情報を共有してくれました。

RTX4060は、PCIe x16のコネクタを搭載していますが、実際にはPCIe x8しか使われていませんでした。 つまり、残りのPCIe x8レーンを活用して、SSDを増設できるというわけです。

まとめ

今回の発表では、CPUを作る上で重要な足し算回路の作り方について、論理回路の基礎を踏まえて学ぶことができました。 半加算器と全加算器という概念を理解することで、CPUがどのように足し算を実行しているのか、その仕組みを理解することができたのではないでしょうか?

また、ヨナさんの発表から、コンピュータの仕組みは、一見複雑そうに見えても、基本的な論理回路を組み合わせることで実現されていることを知ることができましたね!

発表で使用されたスライド

CS集会の他の発表もチェック!

シフト演算ってなぁに?10進数と2進数で考えてみよう!

VRChatで量子コンピュータの世界を体験!CS集会#33で夜鍋ヨナさんが紹介した量子コンピュータの世界

VRChat CS集会で発表!量子コンピュータで半加算回路を実装してみたよ!

生成AIとプログラミング:夜鍋ヨナさんが語る、LLMとシステム開発の未来!

VRChat CS集会で学ぶ!比較器の仕組みと引き算を用いた実装

シフト演算をわかりやすく解説!コンピュータ内部でどう動いているの?