1. コンピュータアーキテクチャの基本概念 MOC
- 定義と範囲
- 歴史的背景と進化
- 性能評価
2. デジタル論理回路 (Digital Logic Circuits) MOC
- 数の表現と演算
- ブール代数と論理ゲート
- 組み合わせ回路 (Combinational Circuits)
- 組み合わせ回路とは (出力が現在の入力のみで決まる)
- 半加算器 (Half Adder) と全加算器 (Full Adder)
- リップルキャリー加算器 (Ripple Carry Adder)
- 桁上げ先見加算器 (Carry Lookahead Adder)
- 減算器 (Subtractor)
- デコーダ (Decoder)
- エンコーダ (Encoder)
- マルチプレクサ (Multiplexer - MUX)
- デマルチプレクサ (Demultiplexer - DEMUX)
- 比較器 (Comparator)
- 算術論理演算ユニット (ALU - Arithmetic Logic Unit) の基本設計
- 順序回路 (Sequential Circuits)
3. 命令セットアーキテクチャ (Instruction Set Architecture - ISA) MOC
- ISAの役割と分類
- オペランドとデータ型
- 命令の種類
- アドレッシングモード (Addressing Modes)
- 命令フォーマット
- 代表的なISAの例
4. プロセッサ MOC
- CPUの基本構成要素
- 命令実行サイクル (Instruction Execution Cycle)
- データパス (Datapath) と制御
- データパスとは (CPU内のデータの流れと処理要素)
- 単純なデータパス設計
- パイプライン処理 (Pipelining)
- パイプライン処理の基本概念 (スループット向上)
- パイプラインステージ (IF, ID, EX, MEM, WB)
- パイプラインの性能評価 (スピードアップ率)
- パイプラインハザード (Pipeline Hazards)
- 構造ハザード (Structural Hazard) とその対策
- データハザード (Data Hazard) (RAW, WAR, WAW)
- Branch Hazard)
- 分岐予測 (Branch Prediction) (静的予測、動的予測、分岐履歴テーブル BHT, 分岐ターゲットバッファ BTB)
- 遅延分岐 (Delayed Branch)
- パイプラインの実装例 (MIPSパイプラインなど)
- スーパースカラーとVLIWにおけるパイプライン
- 命令レベル並列性 (Instruction-Level Parallelism - ILP)
- 分岐予測の詳細
- (オプション) マイクロアーキテクチャの例 (Intel Coreシリーズ, AMD Ryzenシリーズなど)
5. メモリシステム (Memory System) MOC
- メモリの基本
- メモリ階層 (Memory Hierarchy)
- キャッシュメモリ (Cache Memory)
- キャッシュメモリの基本原理と動作
- ブロック、タグ、データ、有効ビット)
- キャッシュマッピング方式 (Cache Mapping Schemes)
- キャッシュヒットとキャッシュミス (Cache Hit / Cache Miss)
- キャッシュ置き換えアルゴリズム (Cache Replacement Algorithms) (フル/セットアソシアティブの場合)
- キャッシュ書き込みポリシー (Cache Write Policies)
- キャッシュの設計パラメータと性能への影響 (ブロックサイズ、キャッシュサイズ、結合度)
- マルチレベルキャッシュ (Multi-level Caches) (L1, L2, L3キャッシュ)
- 命令キャッシュとデータキャッシュの分離 (Split Cache)
- 主記憶装置 (Main Memory / Primary Storage)
- RAM (Random Access Memory) の種類
- SRAM (Static RAM) (キャッシュに使われることが多い)
- DRAM (Dynamic RAM) (主記憶に使われることが多い)
- DRAMのセル構造とリフレッシュ動作
- DRAMのアクセスモード (RAS, CAS)
- SDRAM (Synchronous DRAM)
- DDR SDRAM (Double Data Rate SDRAM) (DDR, DDR2, DDR3, DDR4, DDR5)
- (オプション) RDRAM (Rambus DRAM)
- ROM (Read-Only Memory) の種類 (PROM, EPROM, EEPROM, Flash Memory)
- メモリコントローラ (Memory Controller)
- RAM (Random Access Memory) の種類
- 仮想記憶 (Virtual Memory)
- 仮想記憶の概念と目的 (メモリ容量の拡張、メモリ保護、プロセス分離)
- 仮想アドレスと物理アドレス
- ページング方式 (Paging)
- セグメンテーション方式 (Segmentation) (ページングとの比較)
- TLB (Translation Lookaside Buffer)
- マルチレベルページテーブル (Multi-level Page Tables)
- インバーテッドページテーブル (Inverted Page Tables)
- エラー検出と訂正 (Error Detection and Correction)
- 補助記憶装置 (Secondary Storage) (概要、主記憶との比較)
6. Output) システム MOC
- I/Oの基本
- I/O制御方式
- データ転送のインターフェースとバス
- バス (Bus) の基本 (アドレスバス、データバス、制御バス)
- バスアーキテクチャ (同期バス、非同期バス)
- バス調停 (Bus Arbitration) (デイジーチェーン、集中調停、分散調停)
- 代表的なバス規格
- I/O性能
7. 並列処理とマルチコアアーキテクチャ MOC
- 並列処理の基本
- フリンの分類 (Flynn’s Taxonomy)
- 共有メモリ型マルチプロセッサ
- UMA (Uniform Memory Access) (対称型マルチプロセッサ - SMP)
- NUMA (Non-Uniform Memory Access)
- キャッシュコヒーレンス (Cache Coherence)
- メモリ一貫性モデル (Memory Consistency Model) (逐次一貫性、緩和された一貫性など - 概要)
- 同期プリミティブ (アトミック命令、ロック、セマフォなど - ハードウェアサポート)
- 分散メモリ型マルチプロセッサ
- マルチコアプロセッサ (Multicore Processors)
- 同時マルチスレッディング (Simultaneous Multithreading - SMT) (IntelのHyper-Threadingなど)
- GPU (Graphics Processing Unit) と GPGPU (General-Purpose computing on GPUs)
- (オプション) データフローアーキテクチャ
- (オプション) シストリックアレイ
- (オプション) リコンフィギュラブルコンピューティングとFPGA
8. 現代のトピックと将来の展望 MOC
- 低消費電力設計 (Low-Power Design)
- ハードウェアセキュリティ
- サイドチャネル攻撃 (Side-Channel Attack) (タイミング攻撃、電力解析攻撃など - 概要)
- Spectre と Meltdown の概要と対策
- ハードウェアセキュリティモジュール (HSM)
- 物理的複製困難関数 (PUF - Physically Unclonable Function)
- 信頼実行環境 (TEE - Trusted Execution Environment) (ARM TrustZoneなど)
- アクセラレータとヘテロジニアスコンピューティング
- (超概要) 量子コンピュータ (Quantum Computing)
- (超概要) ニューロモーフィックコンピューティング (Neuromorphic Computing)
- Processing-In-Memory)
- (超概要) 光コンピューティング (Optical Computing)