![見出し画像](https://assets.st-note.com/production/uploads/images/83697092/rectangle_large_type_2_ed3a521e025c7499062f90ac15b7f3e8.png?width=1200)
コンピュータ構成要素
◯情報の単位
コンピュータの中は「0」と「1」しかない世界で構成されています。2進数と言われています。例えば「A」という文字を打った時、コンピュータの中では「01000001」というふうに表現されています。8個の電球があって、左から2番目と1番右がついていたら「A」とイメージしてください
![](https://assets.st-note.com/img/1650770997344-6BU6l86HLv.png?width=1200)
この2進数1桁をbinary digitを略してbit(ビット)と言い、1ビットで2通りの情報を表現することが出来ます。さらに、8ビットを1つの塊として扱う単位が1byte(バイト)と言い、1バイトで2⁸=256通りの情報を表現することが出来ます。
例)2bitで何種類の情報を表現できるか
00
01
10
11
の4種類
2通りが2桁で2²=4通りでも解ける
![](https://assets.st-note.com/img/1650772288935-roVW29GUjZ.png?width=1200)
コンピュータの世界では非常に大きな数値や小さな数値を扱うので、膨大な桁数になってしまいます。例えば最近のスマホで撮った写真はおよそ2000000〜10000000byteです。これでは人間にとって大変なので分かりやすくするために補助単位を用います。主な補助単位は次の表のとおりです。併せて近い2の乗数も覚えておくと便利なのでぜひ覚えましょう。
![](https://assets.st-note.com/img/1650773296023-u7anrDesbh.png?width=1200)
◯文字の表現
コンピュータで扱う文字にはそれぞれ2進数で構成されるパターンが割り当てられていて、文字コードと呼ばれています。世界には色々なコード体系が存在しているため、情報のやり取りをする際はコードが合致していないといわゆる文字化けをしてしまい正しく表現されません。
・ASCII(アスキー)
英数字と特殊文字のみで決められている英語や西ヨーロッパ言語で使われるラテン文字を中心とした文字コード。
・EUC
主にUNIX系OSやLinuxなどで標準的に用いられる、日本語文字に対応した文字コード。
・シフトJIS
ASCIIコードに漢字・かなを混在させた日本語文字コード。WindowsやMacOSに利用されている。
・UNICODE
世界の文字の多くを1つの体系で表現した各国の文字コードを統一的に扱うセット。
◯構成と要素
コンピュータはハードウェアとソフトウェアの2つから成り立ちます。ハードウェアとはモニターやキーボードなど目に見えるもので、ソフトウェアはプログラムなどの目に見えないものです。人間に例えていうならハードウェアは身体でソフトウェアは心や知識です。
〇ハードウェアの分類
一般的なコンピュータは5つの装置、制御装置、演算装置、記憶装置、入力装置、出力装置で構成されています。
![](https://assets.st-note.com/img/1653956988547-QeQamm3Ir3.png?width=1200)
コンピュータの核をなす装置として処理装置があり、その中に各装置の制御をする制御装置や計算、比較判断をする演算装置があります。一般的にはCPU(Central Processing Unit:中央処理装置)やプロセッサと呼ばれています。記憶装置は結果や手順などを記憶し、入出力装置はコンピュータとデータの入出力の際に利用されます。主な例として記憶装置はメモリやHDD、入力装置はマウスやキーボード、出力装置はディスプレイやプリンタなどが該当します。またそれらを繋ぐデータの通り道のことをバスと呼びます。
あらかじめプログラムとデータを主記憶装置(メモリ)に内蔵する方式をプログラム内蔵方式といい、命令を主記憶装置から解読し、実行するという一連の流れを自動的に繰り返していく方式を逐次制御方式といいます。
〇CPU
CPUはコンピュータにおける脳の役割を果たしており、その性能はクロック周波数とバス幅によって変わります。クロックとはコンピュータのマザーボード上にある複数の装置がタイミングを併せて動くために発生させる信号のことです。その信号の1秒間あたりの発生回数をクロック周波数といい単位はHzを用います。基本的には周波数が高くなるにつれ高速に動作をすることができます。命令(仕事)によって必要なクロック数が違いますCPU内にある内部クロックのほうが速く、CPU 周辺にある外部クロックの方がやや遅いです。クロック周波数が2倍になったとしても、全体の性能は周辺機器の性能の影響を受けるので、全体性能が2倍にはなりません。
イメージとしては流れ作業を考えてもらえればわかりやすいかと思います。メインのベルトコンベアの進むスピードがクロック周波数を表しており、スピードが速くなるにつれて生産効率は上がりますが、実際には梱包したり出荷したりなど他の作業の影響も受けるのでベルトコンベアのスピードが2倍になっても手元に届くスピードは2倍速くなるわけではないということです。
バス幅はデータの通り道の広さを表しており、バス幅が広いとデータを一度にたくさん送ることができます。16bit、32bit、64bitなどがあります。
CPUは制御装置と演算装置が連携しながら処理を行いますが、それぞれ高速で容量の小さい記憶装置を持ち、それをレジスタといいます。
命令レジスタ(IR):命令(仕事)を格納。
命令アドレスレジスタ(IAR):次の命令が格納された場所(アドレス)を格納。
※プログラムレジスタ、プログラムカウンタ、命令カウンタ、逐次制御カウンタとも呼ぶ。
指標(インデックス)レジスタ:基準となる場所(アドレス)を格納。
基底(ベース)レジスタ:基準となる場所(アドレス)を格納。
※違いに関しては後ほど説明します。
アキュムレータ:演算対象や結果も格納。
汎用レジスタ(GR):様々な用途に使われる。
ここでいうアドレスとは主記憶内の場所を指し、番地とも呼びます。
コンピュータへの命令は命令(オペレータ)部とオペランド部で構成されています。オペランド部の中にはアドレス修飾部とアドレス部があります。
![](https://assets.st-note.com/img/1653957026831-eoMMueEFEC.png?width=1200)
・CPUの動作原理
コンピュータは基本動作を指示する「命令」によって動いており、それらを組み合わせたものをがプログラムです。
まず命令を受けたCPUは命令アドレスレジスタに格納された番地を用い、
①主記憶装置から読みだして命令レジスタに格納します。これをフェッチといいます。
②命令レジスタを解読し
③実行アドレスを計算します。計算方法はのちほど説明します。
④その計算をもとにデータを取得して
⑤デコーダと呼ばれるもので解読した命令と併せて演算をおこない
⑥その結果を格納します。
ざっくりした説明になりますがこんな流れで行われています。
![](https://assets.st-note.com/img/1653957035035-SUImZZ1R7Q.png)
・アドレスの指定方式
先ほどの③で使用したアドレスの計算方式には次のような種類があります。
Ⅰ.即値アドレス指定方式:アドレス部が即計算に使える値。
![](https://assets.st-note.com/img/1653957040749-AJ2RBRqD23.png?width=1200)
Ⅱ.直接アドレス指定方式:アドレス部の内容が、主記憶装置上のアドレスであり、そこにそのままデータがある。
![](https://assets.st-note.com/img/1653957044967-BCwlO4A2Kb.png?width=1200)
Ⅲ.間接アドレス指定方式:アドレス部の内容が、主記憶装置上のアドレスであり、そこにさらにアドレスがある、1ステップはさんで間接的に指定する方法。
![](https://assets.st-note.com/img/1653957049498-kIypgfZMLr.png?width=1200)
Ⅳ.指標(インデックス)アドレス指定方式:オペランド部に指標レジスタがあり、指標レジスタの値を加算することで求める方法。
![](https://assets.st-note.com/img/1653957055017-aTNZdVgkZ9.png?width=1200)
Ⅴ.基底(ベースアドレス)指定方式:ベースレジスタの値を加算することで求める方法。
![](https://assets.st-note.com/img/1653957061222-g2EHm4kjmg.png?width=1200)
Ⅵ.相対アドレス指定方式:プログラムカウンタの値を加算することで求める方法。基底アドレスとの違いはベースレジスタの代わりにプログラムカウンタを使用している点。
![](https://assets.st-note.com/img/1653957065527-PLOXPigKPz.png?width=1200)
・CPUを高速化する技術
先ほど紹介した「逐次制御方式」の場合、命令1が終わるまで次の命令を進めることが出来ないので効率が悪いです。そのため様々な高速化する技術が開発されました。
パイプライン方式:命令の読み出しから完了までのステージを独立して動作させることで、複数の命令を並行して実行する方式。かえるの歌の合唱のようなイメージです。欠点として命令が前の結果次第で分岐する時があります。その際は実行する確率が高い方を予測する分岐予測と予測した分岐先の命令を実行して正しければその結果を利用する投機実行があります。
スーパーパイプライン方式:パイプライン方式を更に細かくずらしながら実行し詰められるだけ詰めてしまう方式です。
スーパースカラ方式:複数のパイプラインで並列動作させる方式です。
![](https://assets.st-note.com/img/1651069971208-y9Jk2pgE2J.png?width=1200)
またCPU内部の命令セットにも工夫があり、大きく2つに分けられます。
![](https://assets.st-note.com/img/1651071757238-ixQzM1aQNQ.png)
CISCはインテルのCOREシリーズで、RISCはMacのM1チップで使用されています。またCPUのスペックを見るとコアとスレッドというものがあります。
コア:制御装置と演算装置のセット
スレッド:いくつの処理を同時にできるか
ちなみにCORE i5は6コア6スレッド、CORE i9は8コア16スレッドです。イメージとしてはレストランのキッチンにいる料理人の数がコアで、同時に作れる料理数がスレッドと考えてもらえれば分かりやすいと思います。
また画像処理専門の演算装置としてGPU(Graphics Processing Unit)があります。機械学習や仮想通貨のマイニングに利用されています。
◯メモリ
メモリには半導体と呼ばれる条件によって電流をコントロールできるように作成されたものが使用されています。これを半導体メモリと言います。性質の違いでRAMとROMに大きく分けられます。
RAM(Random Access Memory):読み書き可能であり、揮発性(電源を消すと記憶情報が失われる)です。
ROM(Read Only Memory):元々は読み込みだけが可能であり、不揮発性(電源が消えても記憶が残る)です。
・RAMの種類と特徴
DRAM(Dynamic RAM):大容量のものを比較的安価に製造できるため、主記憶装置に使用されます。コンデンサに電荷が溜まっているかで判断をしますが放置しておくと自然に放電してしまうので、一定時間間隔でリフレッシュ動作が必要です。
SRAM(Static RAM):フリップフロップ回路で構成され、読み書きが高速なのでレジスタやキャッシュメモリで利用されます。電源を切らない限り記憶は失われないので、リフレッシュ動作は不要です。
![](https://assets.st-note.com/img/1651198886708-5FTpNVl1vU.png)
・ROMの種類と特徴
マスクROM:出荷時にデータが書き込まれており、内容の変更ができません。
PROM(Programmable ROM):後から書き込みが可能なROMです。以下の3種類を紹介します。
UV-EPROM(Erasable PROM):紫外線でデータ消去&書き換えが可能です。
EEPROM(Electrically EPROM):電気的にデータをバイト単位で書き換えが可能です。
フラッシュメモリ:ブロック単位もしくは一括でのデータ消去、大容量化、書き込みの高速化などを実現したもので、SDやUSBメモリなどで使用されています。
・キャッシュメモリ
キャッシュメモリとはCPUと主記憶の間で高速化をするためのメモリです。最近はキャッシュメモリを複数持つ場合もあり、1次キャッシュや2次キャッシュのように呼ばれます。数字が低いほどCPUに近いメモリです。主記憶に比べると容量は非常に少ないですが、データの一部分をキャッシュメモリに読み込んでおくことにより、CPUへの高速化が可能となります。
CPUが必要なデータがキャッシュメモリにある場合をヒットと呼び、このヒット率が高ければ高いほど実行アクセス時間(平均メモリアクセス時間)は早くなり、次式で求めることが出来ます。
CPUの実行アクセス時間
=ヒット率 × キャッシュメモリのアクセス時間
+(1 ー ヒット率)× 主記憶のアクセス時間
過去に出た問題のリンクを載せておくので、試しに解いてみましょう。
ヒットしない(キャッシュミス)場合、キャッシュと主記憶の間でデータのやり取り(リフィル)が行われます。この際、データがキャッシュと主記憶の2箇所に存在するためデータの整合性と、キャッシュ内のどのデータを消したらいいのかという2つの問題が生じます。
・データの整合性
ライトスルー方式:CPUが書き込み命令を実行する際に、キャッシュと主記憶の両方にその都度データを書き込む方法です。
ライトバック方式:キャッシュのみデータの書き込みを行い、後で主記憶を更新する方法です。こちらの方がアクセス時間を短縮できます。
・消すデータの選択
3つの方法があります。
ランダム:ランダムに選択。
ラウンドロビン(Round Robin):書き込まれた時間が古い順に選択。
LRU(Least Recently Used):最も古くアクセスされたデータを選択。
・メモリインタリーブ
主記憶をいくつかの並列にアクセスが可能な区画(バンク)に分割して、連続したメモリへのアクセスを効率よく行う方法をメモリインターリーブと言います。
◯補助記憶装置
補助記憶装置は電源を切っても記憶が残る不揮発性の記憶装置です。アクセス速度は遅いですが、安価で大容量なのが特徴です。
・HDD(Hard Disk Drive)
ハードディスク装置、磁気ディスク装置とも呼ばれますが、磁気の力を利用してデータを読み書きする記憶装置です。
![](https://assets.st-note.com/img/1651231786624-iYRO7kQVhP.png?width=1200)
アクセスアームの先端にある次期ヘッドがディスク面を移動し、データの読み書きを行います。ディスクの容量を求める問題では次の図のように求めます。
![](https://assets.st-note.com/img/1651234230777-LXxyrdZESn.png?width=1200)
制御装置がデータの入出力に関する命令を出してから、データの転送が完了するまでの待ち時間をアクセス時間と言います。アクセス時間は①平均位置決め時間(シーク時間)、②平均回転待ち時間(サーチ時間)、③データ転送時間の合計になります。
①平均位置決め時間(シーク時間)
ヘッドを目的データのあるトラックまで移動する時間。
②平均回転待ち時間(サーチ時間)
目的のデータがヘッドの真下に回転してくるまでの時間。1/2回転に要する時間。回転数から求めることができる。
例:6000回転/分の時
60秒÷6000回転÷2=0.005秒=5ミリ秒
③データ転送時間
データを読み取る時間。
データ転送量÷転送速度で求めることができる。
例:1000バイトのデータ、転送速度10メガバイト/秒の時
1000バイト÷10メガバイト/秒=0.0001秒=0.1ミリ秒
1トラックあたりの容量から求める場合もある。
例:1トラックあたり16000バイト、回転数が②の例と同じ時、4000バイトを読み取るのに必要な時間は
10ミリ秒/1回転 ×(4000/16000)バイト=2.5ミリ秒
過去に出た問題のリンクを載せておくので、試しに解いてみましょう。
使い込んだドライブではデータがディスク上で断片化(バラバラになること)してしまい、アクセス速度が落ちる原因となってしまいます。これをフラグメンテーションといい、データを再配置することをデフラグメンテーション(デフラグ)といいます。
・フラッシュメモリ
電気的に全部、または一部分を消去・書き込みができる半導体メモリをフラッシュメモリといいます。主なフラッシュメモリは以下の通りです。
USBメモリ、SDカード、SSD、コンパクトフラッシュなど
・光ディスク
レーザ光を利用しデータの読み書きをする補助記憶装置を光ディスクと言います。読み出し専用のものや書き込み可能で書き換えが不可能な追記型、書き込み書き換え可能な書換え型が存在します。
◯入力装置
入力装置はコンピュータにデータや指示を渡すための装置です。利用目的によってさまざまな種類があります。今回はその一例を紹介します。
キーボード、マウス、ペンタブレット、タッチパネル、スキャナ、バーコードリーダ、生体認証など
タッチパネルの方式は以下のものがあります。
静電容量方式:導電性のある指先が近づくことで反応し、スマホなどに採用されている。
抵抗膜方式:指やペン先が触れたときに生じる電圧の変化を検知する。
電磁誘導方式:センサをパネルに組み込み、専用ペンが必要。
入力装置に関する技術として出題されるものも紹介しておきます。
QRコード:様々な情報を詰め込むことができ、360度どの方向からでも読み取りが可能。エラー訂正機能があり、一部分が欠けていても読み取りができる。
RFID(Radio Frequency IDentification):Suicaやユニクロのタグなど極小のICチップとアンテナ、電磁波を用いて情報を非接触で読み取る技術です。
◯出力装置
コンピュータからデータを取り出す装置が出力装置です。
①ディスプレイ
液晶ディスプレイ(LCD;Liquid Crystal Display):光の通過、遮断を画素ごとに制御し,カラーフィルタを用いて色を表現するディスプレイです。自身で発光はしないのでバックライトを使って映像を表示します。
有機EL(Electro Luminescence)ディスプレイ:電圧をかけると自ら発光する有機物質を用いたディスプレイです。バックライトが不要なので、低電圧での駆動、低電力、広い視野角が特徴です。
最近よく聞く4Kや8Kなどは解像度と呼ばれるもので、ディスプレイ上の横と縦方向のドット数を表しています。解像度の単位はdpi(Dots Per Inch)で表現され、1インチの幅の間にどれだけのドットを表現できるかを表します。ドットとはピクセルや画素ともいい、1つの点です。例えば4Kの画面には、横に3840画素、縦に2160画素、全体で829万4400個の画素が敷き詰められていて、それぞれが色を持つことで1つの映像を表現しています。そのため画素数が多ければ多いほど細部まで表現でき、よりリアルな映像になります。
![](https://assets.st-note.com/img/1651241946802-g8z4eYCC8c.png?width=1200)
色の表現はRGBという赤、緑、青を重ねて色を作成する方式が使われています。白黒の場合は1ドットの情報を0か1で表すので1ビットです。なので上の図の場合、1ビットが縦に8個、横に8個あるので64ビット=8バイトです。色の数はビットが上がるにつれ増えていき、それらを重ね合わせて様々な色を作っています。例えばRGBで1つの色が8ビット(1バイト)で表現されるとき赤、緑、青それぞれで2⁸=256種類の色が表現できるので、256×256×256で16,777,216色も表すことができます。
②プリンタ
レーザプリンタ:静電気で粉インク(トナー)を付着させます。性能を表す指標として、1インチあたりのドット数と1分間に印刷できるページ数があります。
インクジェットプリンタ:小さい穴からインクを吹きかけて色をつけます。
ドットインパクトプリンタ:インクリボンに衝撃を与えて色をつけます。
3Dプリンタ:樹脂や金属粉末を層状に積み重ねるなどの方法で立体物を作成できるプリンタ。
この記事が気に入ったらサポートをしてみませんか?