Computer Architecture

[컴퓨터 구조 및 설계] 1-1. Computer Abstractions and Technology: 개요

noahkim_ 2025. 3. 24. 18:15

최규상 님의 KOCW 강의 "컴퓨터 구조"를 정리한 글입니다.

* David A. Patterson님과 John L. Hennessy 님의
"컴퓨터 구조 및 설계" 책을 교제로 한 강의입니다. (책의 내용은 포함되지 않았습니다)

 

 

복잡해지는 하드웨어 위에서 더 빠르고 효율적으로 프로그램을 실행하기 위해 계층화/표준화/병렬화를 선택함

 

목표

  • 프로그램이 기계어로 어떻게 바뀌는가 (+하드웨어가 명령어를 어떻게 수행하는가)
  • 하드웨어 / 소프트웨어 인터페이스
  • Performance의 정의를 알 수 있음 (+어떻게 향상시킬 수 있나)
  • 하드웨어 디자인
  • 병렬 프로그래밍

 

1. Introduction

컴퓨터 기술의 발전

  • 무어의 법칙을 통해 급진적으로 발전함

 

무어의 법칙

  • 1965년에 Intel CEO인 고든 무어가 제시함
  • 반도체 칩 성능이 2년마다 2배씩 업그레이드 될것이라 예언함 (Log Scale)
  • 이를 통해 새로운 애플리케이션이 등장함 (자동차 컴퓨터, 스마트폰 등)

 

컴퓨터 종류

  • 컴퓨터는 계산을 위해 만들어진 기계이지만, 점차 사용목적이 달라지면서 그에 따른 종류가 생겨나고, 서로 다른 방향으로 발전해옴
종류 설명 특징
PC (Personal Computer) 일반적인 목적 가격 대비 성능 중요
서버 컴퓨터 (Server Computer) 기업용 고용량·고성능·고신뢰성
슈퍼컴퓨터 (Super Computer)
과학 문제 해결용
유지비용 높음 (국방, 기상청)
임베디드 컴퓨터 (Embedded Computer) 스마트폰, 태블릿 등에 내장 저비용

 

포스트 PC 시대

  • 컴퓨터를 작고, 실물로 사용하지 않는 방향으로 발전됨
구분 설명
Personal Mobile Device
배터리 탑재, 휴대성과 편의성을 갖춘 개인용 기기 (스마트폰, 태블릿 등)
Software as a Service (SaaS) 중요한 기능(보안)을 제공하는 클라우드 서비스 (예: Amazon, Google)
대규모 데이터 센터(Warehouse Scale Computers)를 기반으로 동작

 

성능 평가

  • 하나의 프로그램의 성능은 CPU 속도 뿐만이 아님
요소 설명 예시
알고리즘 같은 일을 얼마나 적은 연산으로 끝내느냐 빅오 표기법
아키텍처 & 컴파일러 명령어를 얼마나 최적화된 구조로 처리하느냐 - ISA, 파이프라인 구조, 분기 예측, SIMD 지원 여부 등
- 불필요한 연산 제거, 레지스터 재사용, 루프 전개 등
프로세서 & 메모리 단위시간당 얼마나 명령어를 처리할 수 있는가 클럭 속도, 코어 수, 파이프라인 깊이, 캐시 등
I/O 시스템 & OS 단위시간당 얼마나 I/O요청을 처리할 수 있는가 디스크 속도, 네트워크 지연, 시스템 콜 비용 등

 

2. Eight Great Ideas in Computer Architecture

원칙 설명
Moore's Law
반도체 기술 발전으로 트랜지스터 수가 2년마다 2배 증가하여 성능 향상
Abstraction
복잡한 하드웨어/소프트웨어를 계층화하여 독립적이고 효율적인 설계 가능
Make the Common Case Fast
자주 발생하는 작업을 최적화하여 시스템 전체의 성능을 향상
Parallelism
여러 연산을 동시에 수행하여 성능을 극대화
Pipelining
여러 명령어를 연속적으로 겹쳐 실행하여 처리량 향상
Prediction
분기 예측 등을 통해 성능 저하를 방지하고 실행 속도를 증가
Hierarchy of Memories
캐시, RAM, 디스크 등 계층 구조를 통해 성능과 비용 균형 유지
Dependability via Redundancy (RAID)
중복성을 활용하여 시스템 신뢰성과 내구성을 향상 (예: RAID를 통한 데이터 보호)

 

3. Below Your Program

프로그램 수행 계층

구성 요소 설명
애플리케이션 소프트웨어 High-Level Language(HLL)로 작성
시스템 소프트웨어 - 컴파일러: HLL → 기계어 변환
- 운영체제: 입출력 처리, 메모리 관리, 작업 스케줄링, 자원 공유
하드웨어 프로세서, 메모리, I/O 컨트롤러

 

프로그램 언어 계층

코드 계층 설명
HLL (High-Level Language)
프로그래머가 사용하는 고급 프로그래밍 언어
어셈블리어
하드웨어 기계어를 사람이 이해할 수 있도록 변환한 언어 (컴파일러에 의해 생성)
기계어 (Hardware Representation)
2진수 형태로 명령어와 데이터를 직접 표현 (어셈블러에 의해 변환됨)

 

4. Under the Covers

컴퓨터 구성요소 

구성 요소 하위 구성 요소 설명
Input/Output - User Interface
- Storage
- Network Adapter
사용자 입력 및 출력, 데이터 저장 및 네트워크 연결
Display Touchscreen 화면 출력 장치
  LCD Screen Frame Buffer에 영상 데이터 저장하여 화면에 출력
Battery - 전원 공급 장치
Motherboard -
프로세서, 메모리, I/O 장치를 연결하는 주요 회로 기판
Processor (CPU) - 연산 및 제어 기능 수행
  Core 연산 담당 (프로세서의 기본 단위)
  Datapath 데이터 연산 및 이동 경로 관리
  Control 프로세서의 컴포넌트 제어
  Cache Memory
자주 사용하는 데이터를 저장하여 빠른 접근을 제공 (SRAM 사용)

 

Abstraction

  • 복잡성을 다루는 기술
  • ✅ 캡슐화: 하위 레벨의 세부사항을 숨기고 상위 레벨에서 사용하는데 필요한 정보만 제공함
  • ➡️ 하위 레벨의 복잡성을 낮추어, 시스템을 쉽게 이해하고 사용 및 관리할 수 있음
구성요소 설명
ISA (Instruction Set Architecture)
소프트웨어가 하드웨어에게 "어떤 명령을 어떤 방식으로 수행할 수 있는지"를 정의한 규격
- 소프트웨어: ISA에 정의된 Instruction들의 조합으로 프로그램을 구성함
- 하드웨어: 각 Instruction을 해석하고 실행
ABI (Application Binary Interface)
프로그램이 OS의 기능을 사용하기 위한 인터페이스
✅ ISA 위에 운영체제 및 시스템 소프트웨어와의 호출 규약을 추가한 개념
➡️ 애플리케이션이 OS와 하드웨어에서 바이너리 수준으로 호환되게 실행하도록 보장
Implementation
하드웨어 및 소프트웨어가 어떻게 실제로 구현되는지를 의미
CPU 설계 방식, 마이크로아키텍처, 메모리 구조 등

 

예시) ISA

더보기

C언어

c = a+b

 

어셈블리어 (x86)

mov eax, [a]
add eax, [b]
mov [c], eax

 

➡️ CPU는 해당 명령에 대해 이해할 수 있음

✅ add 명령어, eax 레지스터 , 메모리 -> 레지스터 이동 규칙

 

예시) ABI

더보기

write (system call)

 

C언어

write(1, "hi\n", 3);

 

어셈블리어 (x86)

mov rax, 1      ; syscall 번호 (write)
mov rdi, 1      ; fd
mov rsi, buf    ; buffer
mov rdx, 3      ; length
syscall

 

➡️ CPU는 해당 명령에 대해 이해할 수 있음

 syscall 번호 (rax), 인자 순서와 레지스터, syscall 명령 사용

 

데이터 저장 방법

메모리 유형 특징 예시 설명
Primary Memory 휘발성 메모리 RAM (Random Access Memory)
실행 중인 프로그램과 데이터를 임시로 저장
속도가 빠르고 CPU와 직접 통신
Secondary Memory 비휘발성 메모리 HDD (Hard Disk Drive)
SSD (Solid State Drive)
Optical Discs (CD, DVD)
장기적인 데이터 저장용
대용량 데이터 저장이 가능
전원이 꺼져도 데이터가 유지

 

네트워크

네트워크 유형 설명 특징 예시
LAN
(Local Area Network)
지역 내의 작은 범위 - 제한된 공간(건물, 캠퍼스 등) 내에서 장비들 간의 통신
- 빠른 데이터 전송 속도
- 비교적 낮은 비용으로 구축 가능
회사 내 네트워크
학교 네트워크
집안의 Wi-Fi 네트워크
WAN
(Wide Area Network)
광범위한 지역 - 지리적으로 먼 장소들(국가나 대륙)을 연결
- 상대적으로 느린 전송 속도와 높은 비용
- 인터넷과 같은 글로벌 네트워크를 포함
인터넷
기업의 지사 네트워크
Wireless Network
(무선 네트워크)
전선 없이 통신 - Wi-Fi, Bluetooth, Cellular(3G, 4G, 5G) 등
- 이동성 제공, 다양한 장치에서 연결 가능
- 유선보다 낮은 안정성, 신호 간섭 가능성
Wi-Fi 네트워크
블루투스 연결
4G/5G 모바일 네트워크

 

5. Technologies for Building Processors and Memory

Year Technology used in computers
Relative performance/unit cost
1951 Vacuum Tube 1
1965 Transistor  35
1975 Integrated circuit 900
1995 Very large-scale integrated circuit 2,400,000
2013 Ultra large-scale integrated circuit 250,000,000,000
  • DRAM Capacity가 급격히 늘어남 

 

Semiconductor

구성요소 설명 예시
Conductor (전도체) 전기가 잘 흐르는 물질 구리, 금속
Insulator (절연체) 전기가 흐르지 않는 물질
고무, 유리
Switch (스위치) 전기 회로에서 전류를 켜거나 끌 수 있는 장치
트랜지스터 (주로 반도체 스위치로 구현됨)

 

ICs
  • Integrated Circuit (집적 회로)
    • 여러 전자 부품(트랜지스터, 저항, 캐패시터 등)을 하나의 칩에 집적시킨 회로.
    • 주로 실리콘을 사용하여 반도체를 생성함
  • 실리콘 웨이퍼 제조 과정
    1. 실리콘을 슬라이싱하여 웨이퍼 형태로 자름
    2. 웨이퍼 위에 미세한 패턴을 입혀 회로를 설계
    3. 다이서로 칩을 패키징하고, 이를 테스트하여 동작 여부를 확인

 

용어 설명
Yield (수율)
웨이퍼당 동작하는 die의 비율 (정상 동작하는 칩의 비율을 의미)
Die (다이)
웨이퍼에서 잘라낸 작은 칩 (하나의 다이가 하나의 칩을 의미)
웨이퍼 내에는 여러 개의 다이가 있을 수 있음.

 

 

출처