CPUとは(文系新入社員向けIT用語説明)

前置き

私の説明は、文系新入社員向けに、漏れなくダブりなく説明することでは”ありません”。7割の精度で素早く用語を理解することを目指しています。
そのため、敢えて間違った説明をしていきます。理由は単純。IT独自の用語が多すぎるし、時代とともに意味が変わるし、どんどん増えていくため、専門家を目指すのでなければ、ざっとした本質的な理解で十分です。特に新入社員は。

3秒理解:CPUを一言で言えば

ヒトの「判断・暗算」機能になります。

我々人間が目や耳に入った情報を元に、脳が判断し何らかの行動(発言)をするように、パソコンではCPUがマウス・キーボード・ネットワーク届いた情報を元に、CPUがパソコン内のHDDを操作したり、画像を作り出してモニタに表示したり、インターネットへデータを送信したりします。
基本的には人間の脳とざっくり思ってもらえれば良いのですが、脳の主要機能である記憶に関しては別途メモリというハードウェアが担っていますので後述する記憶する部分のほとんどはCPU内に存在する一時的な記憶領域になります。

では具体的にパソコンにおけるCPUの役割を説明します。

背景: パソコンにおけるCPUの役割

CPU自身は実はそこまで複雑な事をしているわけではありません。
プログラム(手順書)を順番に見て(読み込み)、記載内容に基づいて
<どこかにある>”情報を参照”
        ”加工・計算”
<どこかに>  ”情報を渡す”
実はこれしかしていません。というかこれしか出来ません。

イメージとしては部屋にこもりながら書類の山と睨めっこしながら、黙々と書類を作成したり、ハンコ教えている上司のイメージでしょうか。

ではその書類の山はどこにあるのかといえば、通常はCPUの外にあるメモリという場所に保存されています。CPUは”次に読むべき書類”を取り出して、”記載内容を順番に目を通しています”

ただし通常書類(手順書)の山から順番に処理をCPUはしていますが、
もしそれしか出来ないと、私たちが文字を入力したり、マウス操作した時も書類の山が終わるまで待たされてしまいます。

そこで、集中している上司(CPU)の部屋にコンコンとノックして「入れ」っと言ってもらう必要があります。パソコンでも、このノックを行いCPUの注意を向ける"割り込み”という機能(IRQ)が備わっています。
これで緊急案件を適切なタイミングでCPUが処理出来るようになり、私たちは待たされずにすみます。

そして処理が終わり、作成した処理は決済箱(メモリ)へ入れたり、
部下(HDDやネットワークカード、GPU)を呼び出し指示をします

つまり、<どこかにある>情報を参照とは、基本はCPU外にあるメモリを指していますが、マウスやキーボード、インターネットから届いた情報だったりもします。そして<どこかに>”情報を渡す”とは、ファイルとしてHDDに保存したり、画像としてモニターに渡したり、インターネット先に情報を渡したりしています。

概要: CPUを構成する基本技術(用語)説明

現在のCPUは複雑なので、最低限に絞ります。
用語としては現在(弊社)ではそこまで重要ではありませんが、
パソコンの性能(価格)を左右する部分もありますので覚えていて損はありません。

64ビットとは・・・
一度に扱える情報の数が64つである事を示しています。現在一般に売られているパソコンは全て64ビットCPUが入っています。

クロック数(Hz数)とは・・・1秒間に何回動作するのか?です。
音楽のメトロノームのように、カチカチというタイミングでCPUは動作しています。数が大きければ大きいほど動作が早い事を示しています。

キャッシュ(メモリ)とは・・・
ヒトで言うなら、フラッシュ記憶として一次的に覚えている記憶領域になります。いちいち書類箱(メモリ)を見るまでもなく直感のように取り出せるの故に高速なのが特徴です。

基本的にCPUはクロック数が大きく、キャッシュメモリが大きいと高性能(早い)と考えてください。

一時期はこの基本原則に則り開発競争が進められてきました(20年前)
しかし2つの問題がネックとなって現在は別のやり方が取られています。

ネック1: 距離の短さ
ネック2: 発熱

皆さんの移動をイメージしてください。羽田ーハワイ間はジェット機でも8時間掛かります。距離としては約6500kmです。
もしハワイが10mの距離にあったりどうでしょう。ものの1、2秒で到着しますよね。パソコンの世界では情報を受け渡す半導体の距離を極限まで小さくするためにナノ(10のー9乗)という極小の単位で製造されています。小さくすればするほど製造が難しいのと、素材の小ささにも限界があるためこれ以上小さくするのは難しい領域に突入しています。

次に発熱問題です。みなさんも集中して勉強した際に”知恵熱”のようなものを感じた事はあるのではないでしょうか。イメージとしては閉ざされた体育館の中でぎゅうぎゅう詰めの状態で激しく運動しているような感じです。
そんな状態だと暑すぎて倒れたり、激しく運動が続けれないようにCPUも同じです。では、上記をパソコンに当てはめてみると以下のようになります。

”閉ざされた” ・・・ パソコンの筐体
”体育館の中でぎょうぎゅう詰め”・・・半導体の距離を極限まで短くする事
”激しく運用”・・・ 高くロック数で動作

CPUは発熱によってダウンしないためにある一定以上の熱が出た場合は自動的にクロック数を落して壊れないようにしています。
そのためカタログに出ている数値ほど性能が出ないと言うことが多々発生しました。

このネックを解決するための当たな進化が求められるようになりました。

進化:CPUの物理的仮想化とソフト的仮想化

そもそも人間社会においても、一人の優秀なヒトが処理出来る事に限界があるので、チームを作り一人では出来ない大きな成果を出すように、CPUも一人で頑張るのではなく、複数のCPUで頑張れば良いのでは?という発想から、複数のCPUをパソコンに入れ、高クロックで動作させるのではなく仕事を複数のCPUで分散処理することで、結果として高いパフォーマンスを出すやり方が考えられました。
PCサーバーと呼ばれる物理的に筐体が大きいものは物理的にCPUを複数搭載するように元々なっていましたが、パソコンではあまり大きな場所を確保できないのとCPU間を連携する機能を追加すると高額になるため現実的ではありませんでした。そこで物理的にはCPU1つ分の場所に、2個CPUを入れるやり方が取られるようになりました。この見た目がCPU1つだけど中はCPU複数ある状態を表現する用語が”コア数”になります。

現在のCPUは大概1CPUという物理的なモノの中に8コア、16コアという単位でCPUが入っています。イメージとしてはケルベロスやヤマタノオロチのようなモノでしょうか。これにより高クロック数を追求せず、高パフォーマンスが出せるようになってきました。

また物理的にCPUが複数入っている以外にも、クロック数を分割して擬似(ソフトウェア)的にCPU複数ある状態にする機能も作られました。用語としてはハイパースレッドと呼ばれるものです。
なぜこのような機能が出来たかといえば、現在のパソコンでは時間のかかる計算処理がたくさんあるのではなく、たくさんの簡単な処理があるため、高クロックを持て余してしまっていた状態でした。事実CPUの高速化に比例して人間のマウス操作やキーボード操作がそんなに高速にはなってませんよね?なので実はオーバースペックになっていました。

現在のCPUはクロック数、コア数、キャッシュメモリで大体の性能や価格が決まっています。

今後: CPUを知ることで何に役立つのか?

CPUなんて普段パソコンを使っているヒトなら直接なにかするわけでもないし、開発者の人にとっても直接的には関係がないことにはなります。

しかしいざパソコンが遅い(パフォーマンスが悪い)となった時、それはどこに原因があるのかが理解できないと、適切な説明と対応が出来ず、顧客からクレームが来たり、無駄な費用がかかるケースが往々にあります。

特に開発者はプログラム(手順書)の書き方とCPUの特性が合っていないとパフォーマンスが出ずらいです。どこにパフォーマンス劣化の原因(ボトルネック)があるあるのかを理解するためにハードウェアの特定も理解しておいてください。

また現在のCPUの特性を知ることで、なぜ量子コンピューターが必要とされているかがわかります。量子コンピュータは今よりも格段に早いと言われていますが、なぜ早いのかは前述したネック1、2の問題を別の技術で突破したからに他なりません。そして新しい技術を使うからこれからコンピュータにおいてパフォーマンスを発揮するためのシステム構成やプログラム開発も大きく変わると言われています。

まずは基本を理解し、新しい技術や用語が出てきても類推出来る基礎力をぜひ向上させていってください。



いいなと思ったら応援しよう!