# 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;
🧒 Простими словами
🧠 Комп'ютерна архітектура схожа на план міста, який визначає, як будівлі (процесори) та дороги (з'єднання) взаємодіють для ефективного виконання завдань.
🤓 Expert Deep Dive
## Глибоке занурення експерта: Архітектура комп'ютерів
Сучасна комп'ютерна архітектура виходить за межі базових описів компонентів, заглиблюючись у складні рівні абстракції та оптимізації. На рівні Архітектури набору команд (ISA), фундаментальна відмінність між парадигмами RISC (наприклад, ARM) та CISC (наприклад, x86) визначає складність інструкцій, використання регістрів та режими адресації, впливаючи як на переносимість програмного забезпечення, так і на апаратну реалізацію. Мікроархітектура потім реалізує цю ISA, застосовуючи передові методики, такі як суперскалярне виконання, позачергове виконання (OoOE) з буферами перевпорядкування та станціями резервування, а також складні механізми передбачення розгалужень (наприклад, Gshare, BTB) для максимізації паралелізму на рівні інструкцій (ILP).
Ієрархія пам'яті є критично важливим простором проектування, що балансує затримку та пропускну здатність через багаторівневі кеші (L1, L2, L3), керовані протоколами, такими як MESI, та застосовуючи різноманітні політики заміщення (LRU, FIFO). Окрім узгодженості кешу, моделі узгодженості пам'яті (послідовні, розслаблені) глибоко впливають на парадигми багатопроцесорного програмування. Паралелізм експлуатується на рівні потоків (TLP) та на рівні даних (DLP), проявляючись у багатоядерних архітектурах зі спільними кешами та NUMA-архітектурах, а також у багатоядерних системах, таких як GPU, що використовують моделі виконання SIMT та масивний паралелізм. Міжз'єднання, що еволюціонують від шин до складних мереж на кристалі (NoCs) з топологіями, такими як сітки та fat-trees, є життєво важливими для міжядерної комунікації. Продуктивність все більше кількісно оцінюється ефективністю енергоспоживання (Perf/Watt) та ефективністю використання площі (Perf/Area), що стимулює інновації в DVFS, тактовому придушенні (clock gating) та спеціалізованих прискорювачах (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.