今回は,CPUとは何かを書き溜め、
新しく計算機科学を学ぶ人のためのマイルストーンを残していく。
CPUとは何か?
CPUとはCentral Processing Unit(中央演算処理装置)の略で、
コンピュータ内での演算を行なう中心的な装置のことである。
マイクロプロセッサとも呼ばれます。
CPUの構成要素
CPU下記などから構成されます。
- 全体を制御する制御装置と演算装置
- データを一時記憶するレジスタ
- メモリなどの記憶装置とのインタフェース
- 周辺機器との入出力装置とのインタフェース
CPUは、シリコンでできた「ウエハー」と呼ばれる薄い円板の上に作られます。
スイッチの役割を果たす何億、何十億個の極小のトランジスターが組み込まれています。
つまり、CPUとはスイッチの集合体です。
そのため、CPUはスイッチのオンとオフを1と0で表現でき、
膨大な0-1のみであらゆる演算を行います。
制御装置と演算装置
演算装置はメモリから命令(プログラム一行分)をうけとり演算を行っています。
演算の結果はメモリやデータレジスタ、キャッシュと呼ばれる
CPU内にある記憶領域に保存されます。
CPU内で演算を行う部分は、「コア」と呼ばれており、
現代では、1つのCPU内に複数のコアがあるのが通常です。
CPUの動作タイミングを調整するための電気信号を、「クロック」と呼ばれており、
「クロック周波数」は、一秒間に何回クロック信号を発するか表したものです。
データレジスタとプログラムレジスタ
CPUの中には、メモリが用意されており、レジスタやキャッシュと呼ばれる。
キャッシュの役割は、処理の高速化である。
データレジスタとは、演算結果やデータを一時的に保存するための記憶回路のことです。
このレジスタのデータは、演算装置や外部データバスで外の記憶装置ともやり取りができるインターフェースを提供している。
プログラムレジスタとは、実行するプログラムを一行ずつ一時的に保存するための記憶回路のことです。
プログラミング言語は機械語に変換されたのち、最終的に一行ずつここに保存されます。
レジスタの数は、これらの2種類だけでなく、数多く存在します。
CPUの高速化
CPUを高速化する技術で代表的なものは5つほどある。
- クロック周波数を上げる
- コア数を増やす
- キャッシュメモリの拡充
- ハイパースレッディング・テクノロジー
- ターボブーストテクノロジー
ハイパースレッディングとは、従来CPUのコア一つに一つしか搭載していなかったコードを実行する装置を複数搭載してコードの処理能力を向上するものである。これにより、ハイパースレッディングを備えたCPUではホストOSから実際搭載しているコア数より多くのコアを搭載しているよう「論理的に」見えることとなり、実コア数より多くのスレッドやプロセスをOSが同時に実行できるようになる。(Wikipediaより)
CPUにはモデル毎に最大で何ワットの熱を発するかを定めた、熱設計電力(TDP)という数値がある。CPUが自身の発熱で破損しないよう、この数値の熱を排熱できるようコンピュータを設計すべし、という指標だが、スレッド (コンピュータ)を全幅有効活用できない(すなわち、マルチスレッド処理を念頭に置いてコーディングされていない旧来の)プログラムを実行した場合、CPUパッケージ全体で発熱上限まで余裕が残ることがある。Turbo Boostはこのような時に、負荷が集中している特定コア(単数とは限らない)のクロックを上げて性能を稼ごうという機能である。(Wikipediaより)
CPUについて説明してください。
さて、先程の説明を読んだ人は、CPUについて説明できますね。
ノートやメモに書くでも、Twitterに呟くでもYoutubeにアップロードするでも構いません。
今日知った情報をアウトプットしてみましょう。
詳しくは、参考をどうぞ。
じゃあね〜〜〜。