# 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 и массивный параллелизм. Интерконнекты, эволюционировавшие от шин до сложных сетей на кристалле (NoC) с топологиями, такими как сетки и fat-trees, имеют решающее значение для межъядерной связи. Производительность все чаще измеряется энергоэффективностью (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.

📚 Источники