読者です 読者をやめる 読者になる 読者になる

mrasu’s blog

読んだ物の内容など

入門 コンピュータ科学

UNIXという考え方」が読み終わったので、 「入門 コンピュータ科学」を読み始めました。

「入門」という名前がつくように、内容が初歩的で知っている内容が多いので、用語の羅列が主になると思います。

入門 コンピュータ科学 ITを支える技術と理論の基礎知識

入門 コンピュータ科学 ITを支える技術と理論の基礎知識


0章

序章
コンピュータの歴史と社会的意義について

1章

1.1 ビット世界について

bool演算
フリップフロップ回路

1.2 メインメモリ

セルとアドレスによるRAM
からの、DRAM

1.3 マスストレージ

種類と性質

磁気システムならシークや回転により速度制約を受けている
光学システムはトラックの密度が一定(磁気は近隣トラックに存在するデータ量が一定)
フラッシュドライブは小さいバイトサイズにアクセスすることが出来るが、消去時に格納領域が減少する。(物理的衝撃には強い)

1.4 ビットと情報の符号化

符号化の方法

テキストだったら、ASCIIからのユニコード
数値は2の補数とか
画像はビットマップと幾何による符号化)(ベクタ形式とか?)
音は、波を標本するかMIDI

1.5 二進数

加算と、小数について

1.6 整数

2の補数とオーバーフロー
エクセス記法

1.7 小数

浮動小数点と丸め誤差

1.8 圧縮

種類 0. ロスなし ランレングス、頻度依存、ハフマンコード、差分符号化、辞書式符号化、LZW符号化
0. ロスあり GIF, JPEG, MP3

画像や音声は、物理的圧縮という目的以外に、ストリーミングを目的とした転送速度に勝つことを目的とすることもある。

1.9 誤り検出

パリティビット、チェックバイト
ハミング符号

2章 データ操作

2.1 コンピュータアーキテクチャ

内部

  1. レジスタ
  2. CPU (キャッシュ含)
  3. メモリ

プログラム内蔵方式(stored-program concept)でメモリにロードするという考え方。

2.2 マシン語

RISCCISC

3種類存在する命令命令グループ

  1. データ転送命令
  2. 算術・論理命令
  3. 制御命令

2.3 プログラム実行

マシンサイクル

  1. 命令の取得とプログラムカウンタの増加
  2. 命令の解釈
  3. 命令実行

データと命令を見分けるフラグは存在しないので、CPUは与えられたものを実行する事しかできない。

2.4 算術論理命令

論理演算(AND,OR,XOR)で計算ができる。

シフト
* ローテーション(右にシフトしたらはみ出したものを左端に着ける)
* 論理シフト(右にシフトしたら、左端は0になる)

片方のローテーションだけで、目的のシフトは達成できる。

算術演算はシフトで表現できるが、指数表現の場合は桁合わせが必要

2.5 他の装置との通信

コントローラを通して周辺機器と通信するが、
コントローラはCPUとメインメモリ間のバス接続部分で行われる。
通信方法が2種類あり、

  1. メモリマップドIO (memory mapped I/O): コントローラがメモリアドレスにマッピングする
  2. コントローラに転送するオペコードを使い、直接転送する

メモリとコントローラがバスを介して通信すれば、CPUとメモリがバスを使用していない時間が使え、CPUに負荷がかからない
というのが、ダイレクトメモリアクセス(DMA)