# Computer Architecture

Computer architecture는 CPU, memory, 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)과 같은 고급 기술을 사용합니다.

메모리 계층 구조는 다중 레벨 캐시(L1, L2, L3)를 통해 지연 시간과 처리량의 균형을 맞추는 중요한 설계 영역이며, MESI와 같은 프로토콜로 관리되고 다양한 교체 정책(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.

📚 출처