3주 컴퓨터구조
1 컴퓨터 구조: 구성요소 입력장치: 마우스, 키보드, 스캐너 등 출력장치: 모니터, 프린터, 스피커 등 본체: CPU, RAM, HDD, ODD, Video Card, Sound Card … 참고) 경험 삼아서 컴퓨터를 스스로 조립해볼것 !
1.1 컴퓨터 구조: 본체 / 메인보드 메인보드 or 마더보드(motherboard) 중앙처리장치(Central Processing Unit, CPU) / 프로세서 메모리(memory) 버스(bus) 다양한 입출력 인터페이스 카드 비디오카드(GPU) 네트웍카드 모뎀(modem) 사운드카드 SCSI 카드 등
1.2 컴퓨터 구조: 버스(BUS) 시스템 버스: CPU와 주기억장치 연결 PCI 버스: CPU/주기억장치와 고속 IO 장치를 연결 USB 버스: 저속 IO 장치 연결
1.2 컴퓨터 구조: 버스(BUS) 주소 버스(address bus) 데이터 버스(data bus) CPU가 기억장치나 입출력장치의 주소 정보를 전송하는 신호선의 집합 단방향 버스(uni-directional bus) 데이터 버스(data bus) CPU가 기억장치나 입출력장치의 데이터를 보내거나 반대로 기억장치나 입출력장치에서 데이터를 읽어 들일 때 데이터를 전송하기 위한 신호선의 집합 양방향 버스(bidirectional bus) 제어 버스(control bus) CPU가 컴퓨터 시스템 내의 각종 장치들의 동작을 제어하기 위한 신호선의 집합
1.3 컴퓨터 구조: 중앙처리장치(CPU) CPU (Central Processing Unit) 구성 요소 연산장치(ALU, FPU)와 제어장치 레지스터(register) 범용 레지스터 (정수, FP 레지스터) PC와 그밖에 용도 지정 레지스터 캐쉬 메모리(Cache) : 성능/속도 향상, 고비용
1.3 컴퓨터 구조: 중앙처리장치(CPU) 산술논리연산장치(ALU, Arithmetic and Logical Unit) 산술연산(+, -, ×, ÷), 논리연산(AND, OR, NOT 등) 수행 제어장치(Control Unit) 명령어 해독, 실행에 필요한 동작을 수행하기 위한 제어신호 발생 레지스터(register) CPU 내부에 데이터를 임시 저장하는 고속 기억장치 X86에서는 8 개의 32 비트 레지스터를 가지며 각, 레지스터는 32개의 플립플롭으로 구성
1.3 컴퓨터 구조: 중앙처리장치(CPU) CPU는 주기억장치에서 명령들을 읽어와서 실행 프로그램의 실행: 간단한 컴퓨터 구조 가정 Instruction Register: 현재 수행할 명령을 보관 Program Counter: 다음 실행할 명령의 주소를 보관 16비트 컴퓨터를 가정
2 기계어 기계 명령: 비트 패턴으로 인코딩된 명령 기계어(machine language): 특정 기계가 인식할 수 있는 모든 명령의 집합 기계어 명령의 종류 데이터 전송(data transfer): 메모리와 레지스터 사이에 데이터를 복사한다(load, store) 연산(arithmetic/logic): 산술 논리 연산을 수행한다(add, and, not) 제어(control transfer): 프로그램 실행 순서를 바꾼다(jmp, jsr)
2.1 기계 명령의 요소들 명령코드(op-code): 실행할 연산을 지정한다 피연산자(operand): 연산의 입출력 데이터 장소를 지정한다 피연산자에 대한 해석은 명령 코드에 따라 달라진다 16비트 명령의 예
2.2 기계어 명령 0x35A7의 해석 CPU 종류마다 명령이 다르고, 그 의미도 다르다.
2.3 기계어 철학의 양대 축 RISC(Reduced Instruction Set Computing) 단순하고, 빠른 소수의 명령 예: ARM, IBM의 PowerPC CISC(Complex Instruction Set Computing) 편리하고 복잡한 다수의 명령 예: Intel의 x86 (Pentium, Pentium 4)
3 CPU에 의한 명령의 실행: 기계 주기 기계 주기의 각 단계 : 인출(fetch) 해석(decode) 실행(execute) Clock에 의하여 동기화되며, 기계 주기를 반복 수행하여 프로그램 실행
3.1 주기억장치에 저장되어 실행 준비된 프로그램 예 실행 대기
3.1 프로그램 실행: 기계 주기의 인출 단계 인출 프로그램 카운터의 값은 2바이트 증가함
3.1 프로그램 실행: 기계 주기의 해석, 실행 단계 해석 (156C) 명령 1(LOAD) → 레지스터번호 5, 메모리주소 6C 실행 다음명령 166D의 경우: 명령 1(LOAD) → 레지스터번호 6, 메모리주소 6D
3.2 프로그램 실행: 파이프라이닝 파이프라이닝 (Pipelining) 처리율(throughput) 개선을 위한 기술
4 CPU와 입출력 장치간의 통신 방법 메모리 사상 (memory-mapped) I/O: 데이터 전송 명령으로 입출력 장치에 데이터 전송 DMA(Direct Memory Access) 주변장치가 버스를 경유하여 직접 주기억장치에 데이터를 전송 주변장치가 CPU를 방해하지 않고 주기억장치로부터 입출력 가능 인터럽트(interrupt): 주변장치가 CPU에게 입출력의 시작과 종료 또는 사건의 발생을 알림 CPU의 대기 시간을 없애줌으로써 멀티태스킹을 가능하게 함
4.1 데이터 전송 속도 측정 단위 대역폭(bandwidth): 최대 전송 속도 Bps: Bits per second Kbps: Kilo-bps (1,000 bps) Mbps: Mega-bps (1,000,000 bps) Gbps: Giga-bps (1,000,000,000 bps) 대역폭(bandwidth): 최대 전송 속도
최상위 비트(MSB) 최하위 비트(LSB) 5 주기억장치 (Main memory) 셀(cell): 주기억장치의 단위 - 대개 한 바이트(byte)에 해당하는 8 비트 최상위 비트(Most significant bit): 메모리 셀의 가장 왼쪽(상단) 비트 최하위 비트(Least significant bit): 메모리 셀의 가장 오른쪽(하단) 비트 바이트 크기 메모리 셀의 구성 상단 0 1 0 1 1 0 1 0 하단 최상위 비트(MSB) 최하위 비트(LSB)
5.1 메모리 주소 (Address) 주소: 컴퓨터 기억장치 안의 셀을 식별하는 고유한 이름 이 이름은 실제로는 숫자이다. 이 숫자들은 0에서 시작하는 일련번호이다. 이 방식으로 셀들에 번호를 지정하여 메모리 셀에 순서를 부여한다. 2. 주소에 따라 배열된 메모리 셀 (그림) 참고) 8비트 컴퓨터, 16비트 컴퓨터, 32비트 컴퓨터의 주소범위
5.2 메모리 용어 RAM(Random Access Memory, 임의 접근 메모리): 임의의 순서로 셀들에 접근할 수 있는 메모리 Read와 Write 가능한 메모리 DRAM (Dynamic RAM, 동적 메모리): 휘발성 (volatile) 메모리로 이루어진 RAM SRAM (Static RAM, 정적 메모리): 전원이 공급되는 한 현재 상태를 유지 (캐시, 레지스터) 3. ROM(Read Only Memory): 비휘발성 (nonvolatile) 메모리로 Read만 가능한 메모리 (Write 불가능)접근 속도가 느림 예) ROM, PROM, EPROM, EEPROM – BIOS에 활용
5.2 메모리 용량의 측정 단위 Kilobyte: 210 바이트 = 1024 바이트 Example: 3 KB = 3 × 1024 바이트 “kilo” 대신 “kibi”를 사용하기도 함 Megabyte: 220 바이트 = 1,048,576 바이트 Example: 3 MB = 3 × 1,048,576 바이트 “mega” 대신 “mebi”를 사용하기도 함 Gigabyte: 230 바이트 = 1,073,741,824 바이트 Example: 3 GB = 3 × 1,073,741,824 바이트 “giga” 대신 “gibi”를 사용하기도 함 Terabyte: 240 바이트 = ? 바이트 Example: 1 TB = 1,024 × 1 Gigabyte
5.3 보조 기억장치(Secondary Storage) 대개 주기억장치보다 용량이 크다 비휘발성 메모리이다 속도가 주기억장치보다 느리다
5.3 보조 기억장치 종류 자기 저장장치 (Magnetic) 광학 장치 (Optical) 플래시 드라이브 (Flash) 디스크: 3.5inch, 2.5inch 등 테이프: DAT(4mm, 8mm) 광학 장치 (Optical) CD DVD 플래시 드라이브 (Flash) MicroSD, Compact Flash (CF), SD, Memory Stick, … EEPROM의 한 종류
5.3 디스크 저장장치 디스크 실린더의 구조 HDD의 용량 = 실린더 수 * 섹터수 * 트랙수 HDD 대표 브랜드?
5.4 컴퓨터 구조: 메모리 계층 기억장치의 구성 기억장치 계층
5.5 컴퓨터 구조: 캐시 캐쉬에 적중된 횟수 적중률 = 기억장치 총 접근 횟수 캐시(Cache) 기억장치 CPU와 주기억장치 사이에 위치한 접근 속도가 빠른 소규모 기억장치(캐시라고도 함) Static RAM이라 빠르고 CPU에 가까이 있어 빠르고 작아서 빠르다 적중률(hit ratio) 적중률 = 캐쉬에 적중된 횟수 기억장치 총 접근 횟수
6 기타 컴퓨터 구조 병렬 처리(parallel processing) 기술의 분류 멀티코어 (Multicore) SISD: 병렬 처리하지 않음 MIMD: 여러 개의 프로그램이 각자 다른 데이터를 사용하여 수행됨 SIMD: 동일한 명령이 여러 데이터에 적용됨 MMX, GPU, 벡터 프로세서 멀티코어 (Multicore) 하나의 CPU칩에 여러 개의 CPU를 집적 최근 싱글코어 → 듀얼코어 → 쿼드코어 MIMD 병렬 처리 방식
Homework 4 Textbook 5장 연습문제 1 ~ 16, 26, 28, 33, 34, 38, 40~44 Computer Science Overview 3장 연습문제 2, 5, 10