コンピュータのしくみ

Category
並べ替え
コンピュータのしくみ ① 2進数 とトランジスタ

コンピュータのしくみ ① 2進数 とトランジスタ

CPU や メモリ、ストレージ、OS の働きがなんとなく理解できている、くらいの方を対象に、コンピュータのしくみ について書いていきます。C 言語や Python をメインに扱っていきますが、たまに C# や JavaScript がでてくる予定です。 なぜ2進数を扱うのか 結論から行くとコンピューターが 0 か 1 ...
コンピュータのしくみ ② メモリセルの読み書き

コンピュータのしくみ ② メモリセルの読み書き

前回に引き続きここではシンプルな DRAM (Dynamic Random Access Memory)を扱っていきます。DRAM は1ビット 1 トランジスタのシンプルな構成のメモリです。 今回は DRAM のメモリセルの書き込みと読み出しの挙動を追っていきます。 メモリはメモリセルの集合体 メモリは大量のメモリセル...
コンピュータのしくみ ③ メモリコントローラ

コンピュータのしくみ ③ メモリコントローラ

前回はメモリのセルの内部構造とそれがどうやって 1 ビットを表現しているかを見てきました。今回は範囲を広げ、CPU が DRAM(メモリ)をどう動かしているかに焦点をあてていきます。 メモリコントローラ とは メモリコントローラは CPU の中に組み込まれている LSI(大規模な IC のこと。Large Scale ...
コンピュータのしくみ ⑤ 仮想アドレスと物理アドレス

コンピュータのしくみ ⑤ 仮想アドレスと物理アドレス

アドレスについて見ていきます。下記の仮想アドレスと物理アドレスが具体的に何を指しているか、という部分です。 メモリアドレス(仮想アドレス) 仮想アドレス空間はプログラムごとに作られます。例えば Slack と Chrome を同時に立ち上げた状態の場合、それぞれが独自の仮想アドレス空間を持ちます。 仮想アドレス空間の容...
コンピュータのしくみ ⑥ 仮想と物理の接続

コンピュータのしくみ ⑥ 仮想と物理の接続

仮想アドレスと物理アドレスの対応付けを行うページングの内容を見ていきます。コアな OS や CPU の内容までは踏み込みません。 ここでは、64bit OS、x86_64アーキテクチャの CPU などで使用される標準的な 4レベルのマルチレベルページテーブルと呼ばれるページテーブルを扱います。ページテーブルはコンピュー...