최규상 님의 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) | 스마트폰, 태블릿 등에 내장, 저비용 |
PostPC 시대
구분 | 설명 |
Personal Mobile Device |
배터리 탑재, 휴대성과 편의성을 갖춘 개인용 기기 (스마트폰, 태블릿 등)
|
Software as a Service (SaaS) |
대규모 데이터 센터(Warehouse Scale Computers)를 기반으로 동작
중요한 기능(보안 필요)을 제공하는 클라우드 서비스 (예: Amazon, Google) |
성능 평가
요소 | 설명 |
알고리즘 | 명령어 수가 적을수록 성능 향상 |
컴파일러 & 아키텍처 | 최적화된 명령어 구조 |
프로세서 & 메모리 | 단위시간당 실행되는 명령 수 |
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 → 기계어 변환 |
- 운영체제(OS) |
입출력 처리, 메모리 관리, 작업 스케줄링, 자원 공유
|
하드웨어 구성 | 프로세서, 메모리, 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) | - | 연산 및 제어 기능 수행 |
Datapath | 데이터의 연산 및 이동 경로 관리 | |
Control | 프로세서의 컴포넌트 제어 | |
Cache Memory |
자주 사용하는 데이터를 저장하여 빠른 접근을 제공 (SRAM 사용)
|
|
Core | 연산을 담당하는 프로세서의 기본 단위 |
Abstraction
- 복잡성을 다루는 기술
- 하위 레벨의 세부사항을 숨기고 상위 레벨에서 쉽게 사용할 수 있도록 함
구성요소 | 설명 |
ISA (Instruction Set Architecture) |
하드웨어와 소프트웨어의 인터페이스 역할 수행
소프트웨어는 Instruction(명령어) 단위로 구성됨 하드웨어는 각 Instruction을 해석하고 실행 |
ABI (Application Binary Interface) |
ISA에 운영체제(OS) 및 시스템 소프트웨어 인터페이스를 추가한 개념
애플리케이션이 OS 및 하드웨어와 호환성을 유지하면서 실행될 수 있도록 보장 |
Implementation |
하드웨어 및 소프트웨어가 어떻게 실제로 구현되는지를 의미
CPU 설계 방식, 마이크로아키텍처, 메모리 구조 등을 포함 |
데이터 저장 방법
메모리 유형 | 특징 | 예시 | 설명 |
메인 메모리 (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 (집적 회로)
- 여러 전자 부품(트랜지스터, 저항, 캐패시터 등)을 하나의 칩에 집적시킨 회로.
- 주로 실리콘을 사용하여 반도체를 생성함
- 실리콘 웨이퍼 제조 과정
- 실리콘을 슬라이싱하여 웨이퍼 형태로 자름
- 웨이퍼 위에 미세한 패턴을 입혀 회로를 설계
- 다이서로 칩을 패키징하고, 이를 테스트하여 동작 여부를 확인
용어 | 설명 |
Yield (수율) |
웨이퍼당 동작하는 die의 비율 (즉 정상 동작하는 칩의 비율을 의미)
|
Die (다이) |
웨이퍼에서 잘라낸 작은 칩 (하나의 다이가 하나의 칩을 의미)
웨이퍼 내에는 여러 개의 다이가 있을 수 있음. |
출처