컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습
컴퓨터 = 하드웨어 + 소프트웨어 하드웨어 전자 회로 및 기계 장치 입출력 장치, 중앙처리장치, 주/보조 기억 장치 버스(Bus): 각 구성 요소들을 연결하는 데이터의 통로 소프트웨어 하드웨어를 제어하여 작업을 수행하는 프로그램 명령문과 데이터로 구성 사람이 이해하기 쉬운 고급 언어로 작성 C, Java, … 고급언어 기계어로 번역 (by 컴파일러)
컴퓨터의 기본 구성 요소 (1) 입력장치(input device) 컴퓨터가 처리할 수 있는 형태로 데이터나 명령을 받아 들이는 역할을 수행 프로세서(processor) 중앙 처리 장치(CPU: Central Processing Unit) 실제적으로 컴퓨터 명령어들을 수행 출력장치(output device) 처리된 데이터를 사람이 이해할 수 있는 형태로 출력
컴퓨터의 기본 구성 요소 (2) 저장장치(storage, secondary storage) 데이터나 프로그램을 보관하기 위한 테이프나 디스크 등 주 기억장치를 보조 메모리 일차 기억장치 입출력 장치, 보조 기억 장치, 멀티미디어 장치 주변 장치 (Peripheral equipment)
PC Hardware: 기본 구성도
기본 구성 요소 설명 입력 장치 (Input) 중앙 처리 장치 (CPU) 주 기억 장치 (Memory, Primary Storage) 출력 장치 (Output) 보조 기억 장치 (Secondary Storage)
입력 장치 타이핑(typing): 키보드 포인팅(pointing): 마우스 스캐닝(scanning) 단말기(terminal) 레이저 광선을 이용하여 문서, 기호, 사진 등의 인쇄물을 직접 읽어 들임 Barcode reader, handheld scanner, flatbed scanner 단말기(terminal) 입력 장치 + 화면 + 대형 컴퓨터와의 연결 장치
마더보드(Motherboard or Mainboard) 칩들이 부착되어 있는 보드
프로세서 프로세서 (processor) 프로그램을 실행 입력, 출력, 저장 장치 제어 중앙 처리 장치 (Central Processing Unit, CPU)
중앙 처리 장치 CPU의 구성 ALU + CU + Register 산술, 논리 연산 장치 (Arithmetic/Logic Unit, ALU) 제어 장치 (Control Unit, CU) 프로그램에 따라 명령과 제어 신호를 생성 정보와 데이터의 흐름을 결정하고, 각종 장치의 동작을 제어 임시 기억 장소 (Register) CPU에서 사용하는 데이터를 일시적으로 저장 보통 30개 정도를 번호를 붙여 사용
프로그램에 의한 중앙 처리 장치 동작 과정 주기억장치의 기계어 코드 중앙처리장치 레지스터 R1 제어신호 R2 R3 ADD R4 주변장치 중앙처리장치 ADD R2, R3, R5 레지스터 R1 제어장치(CU) 제어신호 R2 R3 ADD R4 R5 산술논리연산장치(ALU) R6 R7 데이터값
클럭 (Clock) 컴퓨터가 벽시계라면 시계추의 진동에 해당 중앙 처리 장치가 작업을 수행하는 단위 같은 종류의 CPU라면 초당 클럭 수가 많을 수록 속도가 빨라짐 예) 명령 읽기 해독 데이터 계산 수행 결과 저장
PC의 성능 및 용량 정보처리 성능 8-비트 Machine: 동시에 1바이트(8비트) 처리 컴퓨터 처리 속도의 표현 MHz / GHz 초당 처리되는 machine cycle의 수 MIPS Million Instruction Per Second 초당 처리되는 명령어의 수 MFLOPS Million Floating-point Operation Per Second 초당 처리 가능한 실수 연산의 수
PC의 성능 및 용량 기억용량의 표현 KB: 1 kilobytes = 210 bytes = 1024 bytes 640KB = 640 x 1024 = 655360 bytes. MB: 1 megabytes = 1024 x 1024 bytes GB: 1 gigabytes = 1024 MB
메모리 주 기억 장치, 1차 기억 장치 프로그램과 데이터는 메모리에 저장이 되어 있어야 프로세서에 의해 처리될 수 있음. RAM : 전원이 공급되어 정상적으로 동작 중일 때만 기억 기능 수행 기억용량 주기억장치가 기억할 수 있는 자료의 양 최소 32MB – 64MB 보통 128MB – 512MB
주 기억 장치 프로그램 수행을 위해 필요한 정보에 비해 레지스터의 용량은 너무 작음 정보를 저장해 두었다가 필요할 때 읽어 들이는 저장소로 이용됨 명령어(프로그램)와 데이터를 저장 주소(address)를 통해 자료의 위치를 지정 8 / 16 / 32 / 64 비트 단위로 읽고 씀 워드(word) 읽기/쓰기/연산 단위인 워드의 길이에 따라 성능이 달라짐 접근 시간(Access time) : 읽고 쓰는데 걸리는 시간 주 기억 장치의 종류 RAM + ROM
주 기억 장치의 종류 RAM (Random Access Memory) 전원이 끊어지면 내용이 지워진다 보조 저장 장치가 반드시 필요함 RAM의 크기는 프로그램의 수행 속도에 영향을 줌 CPU에서 직접 접근이 가능한 유일한 저장 장치 (cf. 하드 디스크)
주 기억 장치의 종류 SRAM (Static RAM) 리프레쉬(refresh)가 필요 없음 충전된 전하를 정기적으로 재충전 전력 소모가 적다 비싸다, Cache 메모리에 사용 DRAM (Dynamic RAM) 리프레쉬(refresh)가 필요 SRAM 보다 저가, 많이 사용됨 SDRAM (Synchronous DRAM), DDR (Double Data Rate) SDRAM, RDRAM (Rambus DRAM)
주 기억 장치의 종류 ROM (Read Only Memory) 대부분 읽을 수만 있는 장치 전원이 끊겨도 내용이 보존됨 예) 컴퓨터가 처음 켜질 때 (부팅) 자동으로 수행되는 명령어들을 저장 PROM(Programmable ROM) 한번 프로그램 가능 EPROM(Erasable PROM) 내용 변경 가능 (정기적으로 변경할 필요가 있는 프로그램 저장 위해 사용)
캐시 메모리 (Cache Memory) 자주 사용되는 내용을 일시적으로 저장하여 프로그램 실행 속도를 빠르게 하는 용도 레지스터 Cache memory 주기억장치 보조 기억 장치 가격 저렴 속도가 빠르고 용량이 작다
출력 장치 화면(screen) 문자 그래픽 프린터(printer) 레이저 프린터 잉크 젯 프린터
출력장치: 모니터 컴퓨터에서 나오는 글자, 그림 등의 결과를 화면에 보여주는 장치 크기 화면의 크기를 대각선 방향으로 잰 길이를 ‘인치’로 나타냄 해상도(resolution) 화면에 나타나는 그림이나 글자의 선명도를 결정하는 요소 화면에서 가로와 세로로 각각 몇 개의 점(pixel)을 나타낼 수 있는 가를 의미 예) 800 × 600 : 800개의 점으로 구성된 가로줄이 600개 실제 화면의 해상도: 모니터 + 비디오 카드에 의해서 결정됨
출력장치: 모니터 비디오 카드 주기억장치에서 만들어진 글자나 그림을 모니터에 나타내기 위한 전자신호로 변환하는 카드 사용하는 카드의 종류에 따라 최대 해상도, 재생주기, 표현할 수 있는 색상의 수가 결정됨 비디오 메모리 비디오 카드가 가지고 있는 자체 기억장치 모니터에 나타낼 자료를 미리 만드는데 사용됨 최소한 4MB가 있어야 166만 색상(24비트)을 1280 × 1024의 해상도로 표현 가능
출력장치: 프린터 컴퓨터에서 나오는 결과를 종이 위에 인쇄하는 장치 종류 해상도: 1200 DPI, 600 DPI 내용물의 색상: 흑백, 컬러 인쇄방식: 레이저, 잉크젯, 도트 매트릭스 DPI (dots per inch)가 클수록 더 정교한 글자나 그림 인쇄가 가능
보조 기억 장치 보조 기억 장치 프로그램이나 자료를 영구적으로 기억할 수 있는 기억장치 주기억장치에 비해 기억된 내용을 읽는 속도는 느리지만 대용량 기억이 가능 현재 사용하지 않는 프로그램은 보조 기억 장치에 저장 작업이 수행될 때, 보조 기억 장치에서 주 기억 장치로 정보를 이동함 (program loading) 보조 기억 장치의 종류 자기 디스크 (FDD, HDD) CD-ROM, DVD-ROM
자기 디스크 디스크 드라이브: 자기 디스크로부터 데이터를 읽는 주변 장치 원반 표면의 철 입자의 방향 (N/S)으로 0/1을 표현 FDD, HDD
FDD Floppy Disk Drive 디스켓이라고 줄여서 지칭 두 종류의 크기 3.5인치: 1.44MB 장점: 가격이 저렴하고 이동이 간편 단점: 보조기억장치 중 읽고 쓰는 속도가 느림 3.5인치 디스켓 5.25인치 디스켓
HDD Hard Disk Drive 여러 장의 원형 금속판에 magnetic 성분을 입혀 놓은 보조 기억장치 장점: 속도가 빠르고 기억 용량이 크다 단점: 이동이 힘들다
하드 디스크의 구성 Arm and disk Dust on the disk Whole disks and arms
CD-ROM Compact-Disk, Read-Only Memory 약 650+ MB의 용량
DVD-ROM Digital Video Disk, Read Only Memory 4.7 GB ~ 17GB의 저장 용량 멀티미디어용으로 많이 사용
기타 보조 기억 장치 광자기 디스크 (Magneto-Optical Disk) 레이저 빔이 닿은 부분만 철 입자가 움직이게 되어 저장 밀도를 높임 자기 테이프, DAT 플래시 메모리
컴퓨터 및 CPU의 구현 방식 컴퓨터의 동작 방식 데이터의 표현(문자, 숫자) 명령어의 표현 버스
컴퓨터의 동작 방식 인간과 컴퓨터의 비교 인간: 눈, 귀, 코.. ⇒ 뇌 ⇒ 근육 세포 인간: 눈, 귀, 코.. ⇒ 뇌 ⇒ 근육 세포 컴퓨터: 키보드, 마우스 ⇒ 중앙처리 장치, 기억 장치 ⇒ 모니터, 프린터 내부적으로 저장된 정보의 일종인 프로그램의 지시에 따라 동작한다 중앙처리 장치와 기억 장치의 상호 작용 중앙 처리 장치 컴퓨터의 모든 구성 요소를 관리하고, 프로그램을 실행시키는 역할 기억 장치 프로그램과 데이터를 저장
컴퓨터의 동작 방식 주소(address) 프로그램 또는 데이터의 기억 장치 내 위치 읽기 : 중앙처리 장치 ⇒ (주소) 기억 장치 ⇒ 자료 쓰기 : 중앙처리 장치 ⇒ (주소&자료) 기억 장치 프로그램의 실행 중앙처리장치는 기억 장치에 저장된 명령어를 기억장치에서 순서대로 읽고, 해석하여 명령어가 지시하는 동작을 수행
컴퓨터의 동작 방식 프로그램 데이터
컴퓨터 내부의 데이터 표현 컴퓨터에서의 정보 단위 꺼짐(off)과 켜짐(on)의 전기적 상태를 0과 1로 간주하기로 약속함 (bit) 8 bit = 1 byte : 28=256가지의 정보를 표현 워드(word) : 컴퓨터의 데이터 처리 단위 32비트 컴퓨터 : 1 word = 4 byte
숫자의 표현 정수의 표현 2진수로 표현됨 3 bit로 표현할 수 있는 숫자: 0 – 7 (8개) 보통 32 bit 또는 64 bit로 숫자를 표시 소수의 표현
문자의 표현 문자 하나를 숫자 하나에 대응시킴 그림 2-18 예) 0100001 := ‘A’ ASCII American Standard Code for Information Interchange EBCDIC(IBM) Extended Binary Coded Decimal Interchange) 그림 2-18
문자의 표현 - 한글의 경우 1 1 1 1 1 1 1 1 조합형 코드 초성, 중성, 종성을 각각 5bit로 표현 완성형 코드 약 3000자의 글자를 순서대로 배열한 후 번호를 매김 1 1 1 1 1 1 1 1 숫자 문자 (16 진수 ) 초성 ‘ㄱ’ 중성 ‘ㅏ’ 종성 ‘ㅇ’ B0A1 가 영어 = 0 한글 = 1 B0A2 각 B0A3 간 ... ...
명령어의 표현 컴퓨터마다 이진수로 표현되는 명령어(instructor) 집합이 존재 예) A1 A2 + A3 Load A2, 3 : (hexadecimal) 05 02 00 03 Load A3, 1 : 50 03 00 01 ADD A1, A2, A3 : 70 01 02 03
버스 (BUS) CPU MEM I/O CPU MEM I/O 버스의 구성 예 데이터의 통로 역할을 함 칩 내부의 연결 통로 칩 외부의 연결 통로 버스의 폭*)은 ALU, Register의 워드 단위와 일치함 *) 동시에 보낼 수 있는 비트 수 버스의 구성 예 CPU MEM I/O CPU MEM I/O
CPU의 구현 성능 향상의 기법 CISC vs. RISC Pipelining Superscalar vs. VLIW MMX CPU 예 : Intel 무어의 법칙 암달의 법칙
성능 향상의 기법 RISC CISC Reduced Instruction Set Computer 명령어의 조합을 통해 복잡한 작업 수행 Pipeline을 통해 속도 향상을 꾀함 CISC Complex Instruction Set Computer 복잡한 내부 명령어를 많이 가짐 필요에 따라 여러 명령어 집합을 제공
Pipeline의 원리 명령어를 몇 개의 수행 단계로 나누어서 각 단계를 하나의 클럭 사이클에 수행 명령어의 수행 단계들을 동시에 처리 일종의 병렬처리 명령어의 수행 시간이 균등할수록 효과적임
5 단계 pipeline IF ID EX M WB IF ID EX M WB 1 단계 : Instruction Fetch 명령어를 메모리에서 가져옴 2 단계 : Instruction Decode 명령어를 해석 3 단계 : Execution 명령어 실행 4 단계 : Memory access 읽거나 쓸 메모리 특정 위치에 접근 5 단계 : Write Back 레지스터에 다시 씀 IF ID EX M WB IF ID EX M WB IF ID EX M WB
Superscalar vs. VLIW 여러 명령어를 동시에 fetch/decode/execute 할 수 있는 마이크로 프로세서 문제점: 명령어들간의 의존성이 존재 명령어 A의 결과를 B에서 사용하게 될 때, A와 B의 수행이 동시에 처리되기 어렵다. 의존성 해결 방법에 따라 Superscalar: 의존성을 하드웨어가 검사 VLIW (Very Long Instruction Word) 여러 명령어를 합쳐서 동시에 실행 가능한 하나의 큰 명령어를 생성
MMX Technology 멀티미디어의 효율적 처리를 위한 명령어 집합 필요성 Intel: MMX(MultiMedia eXtension) (1996.4)
인텔 칩의 역사 Intel CPU (IBM PC에 도입) 초기의 8086과 호환성을 유지하면서 성능을 향상시킨 것이 계속적인 성공의 열쇠 4bit CPU: 4004 (1971) 8bit CPU: 8008, 8080 16bit CPU: 8086/8088, 80286 32bit CPU: 80386, 80486 Pentium (1993) Pentium II (1997): Pentium Pro + MMX Pentium III Pentium IV
Moore’s Law CPU 내 트랜지스터의 수가 18 ~ 24개월 만에 두 배가 된다는 법칙
Amdahl’s Law 시스템의 특정부분 (e.g. CPU)의 속도 향상이 전체 시스템의 속도 향상으로 비례적으로 이어지지 않는다. 메모리 속도가 고정된 상태에서 CPU가 향상돼도 시스템 전체의 성능이 크게 향상되지 않음.