書籍概要

算数で読み解く コンピュータのしくみ

著者
発売日
更新日

概要

コンピュータは多くの先人たちの知識や技術の結晶といえますが,その基本的なしくみは小学校で習った算数や理科の知識で十分に理解できます。本書は,この道ひとすじのコンピュータ科学者が「コンタ」という簡単なコンピュータをモデルにして,徹底的に原理を解説。イラストや図も工夫してわかりやすくしていますが,ごまかしはありません。じっくり読み進めれば,やがてコンピュータの驚異的なしくみが鮮明に見えてくることでしょう。

こんな方におすすめ

  • コンピュータのしくみを知りたいかた

目次

[第1部]コンピュータができるまで

第1章 コンピュータの世界への第一歩

  • 1-1 どこでもコンピュータ
    ……コンピュータなしでは成り立たない私たちの生活
  • 1-2 コンピュータと電卓
    ……何が違う?

第2章 コンピュータをコンピュータらしくしたプログラム内蔵方式

  • 2-1 プログラム内蔵方式の発明
  • 2-2 プログラム内蔵方式による命令の実行
    ―― ことばで動くコンピュータ:ことばコンタ
    • ちょっと一休み コンピュータの歴史

[第2部]コンピュータの基本となるビットの世界

第3章 ビットを単位として情報を表現する

  • 3-1 ビットという単位
    ……コンピュータのなかはすべて0か1
    • ちょっと一休み 0か1か決められない?
  • 3-2 数値データの表現と計算
  • 3-3 文字データの表現
  • 3-4 アナログ情報の表現
    • ちょっと一休み 人間の五感とディジタル化

第4章 ビットを単位として命令を表現する

  • 4-1 ビットの世界で「コンタ」を定義する
    ―― 0,1で動くコンピュータ:ビットコンタ
  • 4-2 ビットコンタの命令を使って足し算をする

[第3部]ハードウェアの世界

第5章 ビットを単位として処理する

  • 5-1 ランプ(豆電球)とスイッチから始めよう
    • ちょっと一休み ランプはなぜ点くか? 抵抗器の話
  • 5-2 処理の基本となるANDとORとNOT
    • ちょっと一休み 論理の世界と情報
  • 5-3 ANDとORとNOTを活用する
    • ちょっと一休み ド・モルガン則
  • 5-4 ランプとスイッチ以外の論理素子
    ―― リレーとトランジスタ
    • ちょっと一休み リレーコンピュータ
    • ちょっと一休み NANDかNORがあれば十分
    • ちょっと一休み n-MOS,p-MOS,CMOS

第6章 入力だけで出力が決まる回路―組み合わせ回路

  • 6-1 入力と出力の組み合わせから論理回路を設計する
  • 6-2 2点スイッチのしくみを表す回路
    ―― 排他的論理和
  • 6-3 1ビットの足し算をする回路
  • 6-4 2ビット以上の足し算ができる回路
  • 6-5 2進数の表すビット位置を指す回路
    ―― デコーダ
  • 6-6 ビットを指したときその位置を2進数で表す回路
    ―― エンコーダ
  • 6-7 複数ある入力から1つを選ぶ回路
    ―― セレクタ

第7章 記憶をする回路 ―― 順序回路

  • 7-1 順序回路とは?
  • 7-2 記憶する回路を実現する
  • 7-3 時間の概念を導入する
    • ちょっと一休み クロック信号

[第4部]ハードウェアの世界でビットコンタを実現する

第8章 ビットコンタのハードウェア構成と命令サイクル

  • 8-1 ビットコンタを構成する
  • 8-2 組み合わせ回路と順序回路を使ってビットコンタを構成する
    • ちょっと一休み いろいろなメモリ
    • ちょっと一休み 自動販売機の設計

[第5部]ビットコンタの上に構築するソフトウェアの世界

第9章 コンタの世界でプログラムを作る ―― ソフトウェアへの第一歩

  • 9-1 ハードウェアとソフトウェアをつなぐ機械語
  • 9-2 機械語ではプログラムが作りにくい
  • 9-3 機械語プログラムを作りやすくするアセンブリ言語
  • 9-4 ビットコンタのプログラム作りを助けるASCシステム
  • 9-5 機械語プログラムの振る舞いを模擬するシミュレータ

第10章 コンピュータでの処理の手順を考える

  • 10-1 処理の手順とは何だろう
  • 10-2 手順を表現するためにまず流れ図を描いてみよう
  • 10-3 コンタでのかけ算の手順を考える
    • ちょっと一休み 分岐命令の役割
  • 10-4 作ったプログラムを活用する
    ―― かけ算を使って階乗を計算する
    • ちょっと一休み 限界に挑戦する
  • 10-5 かけ算と階乗の実行命令数を比較する
  • おわりに コンタの先にある世界
  • 参考文献

[付録]

  • 付録1 ASCモデルコンピュータ ―― ビットコンタの生みの親
  • 付録2 ASCシステムについて
  • 付録3 Dフリップフロップの動作,およびDラッチとの比較
  • 付録4 かけ算,割り算の高速化
  • 付録5 制御回路の設計と動作の確認

サポート

補足情報

ASCシミュレータ&アセンブラシステムについて

(2022年7月15日更新)

概要

ASCシミュレータ&アセンブラシステム(以下「ASCシステム」という)は,本書の付録1で定義したモデルコンピュータASCの命令セット(図11-2)に対するシミュレータとアセンブラからなるシステムです。

シミュレータは,付録1で定義した命令サイクルを忠実に実現しています。通常のコンピュータのように停止命令(HLT)まで連続実行もできますが,しくみの理解を深めるため,機械命令単位あるいは状態単位のステップランにより,きめ細かに動作を制御して画面で見ることができます。

アセンブラは,第9章で定義したアセンブリ言語の仕様に沿って記述したプログラムを機械語に変換します。

ASCシステムのダウンロード方法

ダウンロード
  1. 以下のURLにアクセスしてください。
    https://github.com/mj-hd/ASC-Simulator-and-Assembler/releases/latest
  2. 「Assets」の下にある「ASC.vXX.zip」(“XX”は最新のバージョン番号を表す)をクリックすると,ダウンロードを開始します。

ASCフォルダの内容

ダウンロードした「ASC.vXX.zip」ファイルを解凍すると,ASCフォルダが表示されます。

ASCフォルダには,ASCシミュレータとASCアセンブラの2つのシステムのほかに,ASCアセンブリ言語によるサンプルプログラムの説明(サンプルプログラム自体はサブフォルダsample内にある)およびシステム全体の説明書が含まれています。

プログラムの使用時に,不明な発行元に対する警告が出たら[はい]や[実行]をクリックして,PCへの変更を許可します。

サンプルプルグラムについて

サンプルプログラムには,本書の第2,8,9章などで一貫して使用している「1+2→3」のプログラムをはじめ,乗算,階乗,除算,平均,ビット計数など,多様なプログラムが含まれています。簡単な命令セットでも工夫次第でいろいろな計算ができることを理解していただければ幸いです。

併せて,何か意味のあるプログラム作りに挑戦し,その成果を寄せていただければ,このサンプルプログラムに追加したいと考えています。

商品一覧