# Computer Architecture
Computer architectureは、CPU、メモリ、I/O間の相互作用に焦点を当て、コンピュータハードウェアコンポーネントの組織と動作を定義し、パフォーマンスと電力効率を決定します。
Computer architecture encompasses the design and organization of the central processing unit (CPU), memory hierarchy, input/output systems, and the interconnections among these components. It includes instruction set architectures (ISAs), datapath design, control logic, pipelining strategies, cache hierarchies, virtual memory, memory coherence, and parallel processing models. Foundational models such as Von Neumann (shared memory for instructions and data) and Harvard (separate instruction and data memories) illustrate how architectural choices impact performance, power, and cost. Modern architectures balance latency and throughput through techniques like deep pipelines, branch prediction, cache coherence protocols, memory-level parallelism, and multi-core or many-core designs. A complete view also considers I/O subsystems, storage hierarchies, and virtualization that enable scalable, secure, and interoperable systems.
graph LR
Center["# Computer Architecture"]:::main
Rel_security_architecture["security-architecture"]:::related -.-> Center
click Rel_security_architecture "/terms/security-architecture"
Rel_hardware_security["hardware-security"]:::related -.-> Center
click Rel_hardware_security "/terms/hardware-security"
Rel_security_automation["security-automation"]:::related -.-> Center
click Rel_security_automation "/terms/security-automation"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
🧠 コンピュータアーキテクチャは、都市の設計図のようなもので、建物(プロセッサ)と道路(接続)が効率的に連携して物事を遂行する方法を決定します。
🤓 Expert Deep Dive
## エキスパート・ディープダイブ:コンピュータアーキテクチャ
現代のコンピュータアーキテクチャは、基本的なコンポーネントの説明を超え、抽象化と最適化の複雑な層へと深く踏み込みます。命令セットアーキテクチャ(ISA)レベルでは、RISC(例:ARM)とCISC(例:x86)のパラダイム間の根本的な違いが、命令の複雑さ、レジスタの使用、アドレッシングモードを決定し、ソフトウェアの移植性とハードウェアの実装の両方に影響を与えます。次にマイクロアーキテクチャがこのISAを実現し、命令レベル並列性(ILP)を最大化するために、スーパースカラ実行、リオーダバッファと予約ステーションを備えたアウトオブオーダー実行(OoOE)、そして洗練された分岐予測メカニズム(例:Gshare、BTB)などの高度な技術を採用します。
メモリ階層は、MESIのようなプロトコルで管理されるマルチレベルキャッシュ(L1、L2、L3)と、多様な置換ポリシー(LRU、FIFO)を活用して、レイテンシとスループットのバランスを取る重要な設計領域です。キャッシュコヒーレンシを超えて、メモリ一貫性モデル(シーケンシャル、リラックス)は、マルチプロセッサプログラミングパラダイムに深く影響を与えます。並列性は、スレッドレベル(TLP)とデータレベル(DLP)で活用され、共有キャッシュを備えたマルチコア設計やNUMAアーキテクチャ、SIMT実行モデルと大規模並列性を利用するGPUのような多くのコアシステムに現れます。バスからメッシュやファットツリーのようなトポロジーを備えた洗練されたチップ上ネットワーク(NoC)へと進化するインターコネクトは、コア間通信に不可欠です。パフォーマンスは、電力効率(Perf/Watt)と面積効率(Perf/Area)によってますます定量化され、DVFS、クロックゲーティング、そして異種コンピューティングのための専用アクセラレータ(ASIC、FPGA、TPU)におけるイノベーションを推進しています。アーキテクチャセキュリティ機能、例えばTEEやサイドチャネル緩和策も同様に最重要です。
❓ よくある質問
What is the difference between computer architecture and computer organization?
Computer architecture defines the high-level design and the functional capabilities of a system, while computer organization describes how the components are arranged and operate to realize those capabilities.
What are Von Neumann and Harvard architectures?
Von Neumann architecture uses a single shared memory for instructions and data; Harvard architecture uses separate memories for instructions and data, affecting bandwidth and design tradeoffs.
Why is memory hierarchy important in architecture?
A memory hierarchy (registers, L1/L2/L3 caches, main memory) hides latency and increases effective bandwidth by exploiting locality, thereby improving overall performance.