WEBVTT

00:00.090 --> 00:00.923
インストラクター：このレッスンでは､

00:00.923 --> 00:03.540
CPUアーキテクチャについてお話しします｡

00:03.540 --> 00:06.030
CPU（セントラル・プロセッシング・ユニット）は､

00:06.030 --> 00:08.550
通常は単にプロセッサーと呼ばれ､ コンピューターの頭脳となるデバイスで､

00:08.550 --> 00:15.810
ソフトウェアやファームウェアの中に存在するさまざまなプログラムコードを実行するために使用される｡

00:15.810 --> 00:20.850
これは､ どのような種類の機能であれ､ コンピュータに正確にその仕事のやり方を指示するものだ｡

00:20.850 --> 00:25.770
基本的に､ CPUはひとつひとつの命令に対して基本的な処理を実行する｡

00:25.770 --> 00:28.170
CPUはまずその命令をフェッチし､

00:28.170 --> 00:36.690
プロセッサー内部のシステムメモリーやキャッシュから次の命令を取り出す｡

00:36.690 --> 00:38.850
そして､ コントロール・ユニットやプロセッサーが､

00:38.850 --> 00:46.650
それぞれの命令をデコードし､ それを実行するか､ あるいはその処理を助けるセカンダリー・ユニットに渡す｡

00:46.650 --> 00:48.570
例えば､ 多くのプロセッサーには､

00:48.570 --> 00:50.850
浮動小数点演算ユニットや算術論理演算ユニットといったものがあり､

00:50.850 --> 00:57.900
これらはコードの種類や実行される命令の種類に応じて異なる命令を実行するために使用される｡

00:57.900 --> 01:04.080
そして､ プロセッサが命令の実行を終えると､

01:04.080 --> 01:06.450
その情報をレジスタ､

01:06.450 --> 01:13.260
キャッシュ､ あるいはメモリに送り返す｡

01:13.260 --> 01:17.940
これは､ マザーボードやコンピューター内部のプロセッサーの基本的な動作方法である｡

01:17.940 --> 01:20.040
さて､ プロセッサーそのものを見てみると､

01:20.040 --> 01:21.960
独自のアーキテクチャを持っている｡

01:21.960 --> 01:26.190
マザーボードがフォームファクターによって何ができるかを定義するのと同じように､

01:26.190 --> 01:30.750
プロセッサーのアーキテクチャーは､ そのプロセッサーが持つ能力を定義することになる｡

01:30.750 --> 01:35.340
技術者として現場で遭遇する主なアーキテクチャは3つある｡

01:35.340 --> 01:38.130
最初のものはX86として知られている｡ 

01:38.130 --> 01:45.510
現在､ X86はIA-32またはインテル・アーキテクチャの32ビット命令セットと呼ばれることもある｡

01:45.510 --> 01:50.160
というのも､ X86はもともとインテルが1970年代から1980年代にかけて､

01:50.160 --> 01:53.280
最初のPCとともに開発したものだからだ｡

01:53.280 --> 01:55.380
やがてコンピューターは8ビットから16ビット､

01:55.380 --> 01:58.620
32ビットへと移行し､ その過程でインテルは後方互換性を作り出し､

01:58.620 --> 02:05.580
これらのシステムはすべてX86世代のプロセッサーとして知られるようになった｡

02:05.580 --> 02:11.040
これは､ インテルがコンピューターに採用した最初のプロセッサーが8086シリーズだったからだ｡

02:11.040 --> 02:13.470
そしてその次が286シリーズになり､

02:13.470 --> 02:23.010
386､ 486､ 586となり､ その時点でCeleronやPentiumといったブランド名を使うようになった｡

02:23.010 --> 02:27.810
いずれにせよ､ これらのデバイスはもともとすべてX86プロセッサーで､

02:27.810 --> 02:32.160
64ビットプロセッサーになるまでずっとそうだった｡

02:32.160 --> 02:34.770
64ビットプロセッサーに移行すると､

02:34.770 --> 02:39.930
これをX64プロセッサーとかX64アーキテクチャーと呼ぶようになった｡

02:39.930 --> 02:42.930
今､ X64という命令セットを目にするときはいつでも､

02:42.930 --> 02:50.520
これはX86または32ビット命令セットを拡張して64ビット演算をサポートできるようにしたことを意味する｡

02:50.520 --> 02:54.870
X86プロセッサーである32ビットプロセッサーを扱う場合､

02:54.870 --> 03:01.050
最大4ギガバイトのRAMしかサポートできないからだ｡

03:01.050 --> 03:02.370
アドレス指定に使用できるビットは32ビットしかないため､

03:02.370 --> 03:07.050
物理的に4ギガバイト以上のものをアドレス指定することはできない｡

03:07.050 --> 03:09.360
そして､ 2を32乗すると約40億ビットとなり､

03:09.360 --> 03:13.740
これは約4ギガバイトに相当する｡

03:13.740 --> 03:15.540
4ギガバイトのRAMは､

03:15.540 --> 03:21.510
現代のシステムでは決して多くはないからだ｡

03:21.510 --> 03:24.720
実際､ 最近では非常に低メモリのシステムとみなされているだろう｡

03:24.720 --> 03:27.630
ほとんどのコンピューターは､ メイン・システム・メモリーとして8ギガバイト､

03:27.630 --> 03:31.380
16ギガバイト､ 32ギガバイト､ あるいは64ギガバイトのRAMを搭載している｡

03:31.380 --> 03:33.120
そして､ そのすべてに対応するためには､

03:33.120 --> 03:38.130
X64プロセッサーを使って64ビット命令セットに移行する必要がある｡

03:38.130 --> 03:47.430
多くの場合､ AMD64またはインテル64というブランド名で呼ばれる｡

03:47.430 --> 03:52.560
しかし､ この2つのプロセッサは､ どちらもX64ベースのアーキテクチャとみなされている｡

03:52.560 --> 03:56.670
さて､ 64ビットと32ビットの比較でもうひとつ覚えておくべき重要なことは､

03:56.670 --> 04:00.840
32ビット・システムは32ビット・プログラムしか実行できないが､ 64ビット・プロセッサーは完全な後方互換性があるため､

04:00.840 --> 04:08.760
64ビット・プログラムも32ビット・プログラムも実行できるという事実だ｡

04:08.760 --> 04:09.660
というのも､

04:09.660 --> 04:14.310
X64ベースのプロセッサーはPC市場で多用されており､

04:14.310 --> 04:20.610
ウィンドウズやその亜種で広くサポートされているからだ｡

04:20.610 --> 04:23.010
さて､ 3つ目のタイプのプロセッサーは､

04:23.010 --> 04:25.800
ARMプロセッサーと呼ばれるものだ｡

04:25.800 --> 04:28.560
ARMはアドバンスドRISCマシンの略で､

04:28.560 --> 04:30.480
RISCはR-I-S-Cというスペルで､

04:30.480 --> 04:35.190
縮小命令セットコンピュータの頭文字をとったものだ｡

04:35.190 --> 04:41.010
ARMは長い間､ タブレットや携帯電話などの低消費電力デバイスに使われてきた｡

04:41.010 --> 04:49.080
しかし2020年代初頭､ アップルはデスクトップやラップトップ向けにARMチップを採用した新シリーズのプロセッサをリリースすることを決定し､

04:49.080 --> 04:51.030
これらはM1シリーズ､ M1 Pro､

04:51.030 --> 04:57.060
M1 Max､ そして現在はM2シリーズ以降の新シリーズとして知られている｡

04:57.060 --> 04:58.350
ARMでは､

04:58.350 --> 05:07.140
X86やX64ベースのプロセッサーではできない特別なことができるからだ｡

05:07.140 --> 05:08.310
その中で最も重要なのは､

05:08.310 --> 05:10.470
バッテリー寿命の延長だ｡

05:10.470 --> 05:14.730
ARMは､ X64やX86ベースのプロセッサーと同じ計算をするのに必要な発熱量が少ないため､

05:14.730 --> 05:21.690
バッテリーの消費電力を大幅に削減し､ 冷却の手間も省けます｡

05:21.690 --> 05:29.670
そのため､ 最新のノートパソコンだけでなく､ スマートテレビやスマートスピーカーなどのシステムオンチップ構成でも非常に人気がある｡

05:29.670 --> 05:30.990
アップル・デバイスやChromebook､

05:30.990 --> 05:36.840
あるいはアンドロイドの携帯電話やタブレットなど､ ウィンドウズ・ベースではないものを使う場合､

05:36.840 --> 05:48.030
バッテリー寿命が長く､ 消費電力が低いためデバイス内部の発熱が少ないという理由から､ X64やX86ではなくARMベースのプロセッサを使う傾向がある｡

05:48.030 --> 05:54.480
さて､ RISCベースやARMベースのプロセッサーとX64ベースやX86ベースのプロセッサーを比較した場合､

05:54.480 --> 05:59.520
完全な複雑な命令セットではなく､ 縮小された命令セットを扱うことになる｡

05:59.520 --> 06:03.060
しかし､ そうではない｡

06:03.060 --> 06:05.040
RISCベースのシステムを使用している場合､

06:05.040 --> 06:12.480
RISCシステムはより少ない命令数で同じタスクをこなせるが､ その分コードに頼る部分が多くなる｡

06:12.480 --> 06:17.730
これにより､ RISC内部の各コードは､ より少ないコードでより多くのことができるようになり､

06:17.730 --> 06:21.810
消費電力が減り､ バッテリー寿命が長くなる｡

06:21.810 --> 06:23.700
コンピュータの進化が進むにつれて､

06:23.700 --> 06:30.900
RISCやARMベースのプロセッサは､ デスクトップやラップトップを含むさまざまなシステムで普及していくでしょう｡

06:30.900 --> 06:39.330
ARMベースのプロセッサーをサポートするウィンドウズ11の提供も始まっている｡

06:39.330 --> 06:42.150
ARMがベータ版から一般生産に移行すれば､ アップル・システムにARMを使うだけでなく､

06:42.150 --> 06:47.523
より多くのデスクトップやラップトップがARMを使うようになるだろう｡
