# Arquitetura de Computadores

A Computer architecture define a organização e o comportamento dos componentes de hardware de um computador, enfatizando as interações entre CPU, memória e I/O que determinam o desempenho e a eficiência energética.

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["# Arquitetura de Computadores"]:::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;

      

🧒 Explique como se eu tivesse 5 anos

A arquitetura de computadores é como a planta de uma cidade, decidindo como os edifícios (processadores) e as estradas (conexões) trabalham em conjunto para realizar tarefas de forma eficiente.

🤓 Expert Deep Dive

## Análise Profunda de Especialista: Arquitetura de Computadores

A arquitetura de computadores moderna transcende descrições básicas de componentes, adentrando camadas intrincadas de abstração e otimização. No nível da Arquitetura do Conjunto de Instruções (ISA), a divergência fundamental entre os paradigmas RISC (ex: ARM) e CISC (ex: x86) dita a complexidade das instruções, o uso de registradores e os modos de endereçamento, impactando tanto a portabilidade do software quanto a implementação do hardware. A microarquitetura, por sua vez, materializa essa ISA, empregando técnicas avançadas como execução superscalar, execução fora de ordem (OoOE) com reorder buffers e reservation stations, e mecanismos sofisticados de predição de desvio (ex: Gshare, BTB) para maximizar o Paralelismo em Nível de Instrução (ILP).

A hierarquia de memória é um espaço de design crítico, equilibrando latência e throughput através de caches multinível (L1, L2, L3) gerenciados por protocolos como MESI e empregando diversas políticas de substituição (LRU, FIFO). Além da coerência de cache, os modelos de consistência de memória (sequencial, relaxada) influenciam profundamente os paradigmas de programação multiprocessador. O paralelismo é explorado em Nível de Thread (TLP) e Nível de Dados (DLP), manifestando-se em projetos multicore com caches compartilhadas e arquiteturas NUMA, e em sistemas many-core como GPUs que utilizam modelos de execução SIMT e paralelismo massivo. Interconexões, evoluindo de buses para sofisticadas Redes em Chip (NoCs) com topologias como malhas e fat-trees, são vitais para a comunicação inter-core. O desempenho é cada vez mais quantificado pela eficiência de energia (Perf/Watt) e eficiência de área (Perf/Area), impulsionando inovações em DVFS, clock gating e aceleradores especializados (ASICs, FPGAs, TPUs) para computação heterogênea. Recursos de segurança arquitetônica, como TEEs e mitigações de canal lateral, também são primordiais.

❓ Perguntas frequentes

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.

📚 Fontes