2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부 4. 컴퓨터의 동작방식 2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
컴퓨터의 동작 방식 (revisit) Von Neumann 구조 중앙 처리 장치 컴퓨터의 모든 구성 요소를 관리하고, 프로그램을 실행시키는 역할 기억 장치 프로그램과 데이터를 저장 프로그램의 실행 중앙처리장치는 기억 장치에 저장된 명령어를 기억장치에서 순서대로 읽고, 해석하여 명령어가 지시하는 동작을 수행
기억 장치 프로그램 데이터
컴퓨터 내부의 데이터 표현 컴퓨터에서의 정보 단위 꺼짐(off)과 켜짐(on)의 전기적 상태를 0과 1로 간주하기로 약속함 1 bit 8 bits = 1 byte 28=256가지의 정보를 표현 워드(word): 컴퓨터의 데이터 처리 단위
데이터의 종류
문자의 표현 문자 하나를 숫자 하나에 대응시킴 코드 테이블을 이용 Codes ASCII (American Standard Code for Information Interchange) by ANSI (American National Standards Institute) Extended ASCII EBCDIC by IBM Unicode UTF (Unicode Transformation Format) encodings UCS (Universal Character Set) encodings ISO (International Organization for Standardization)
ASCII Table
한글 문자의 표현 1 완성형 코드 조합형 코드 약 3000자의 글자를 순서대로 배열한 후 번호를 매김 초성, 중성, 종성을 각각 5bit로 표현 완성형 코드 약 3000자의 글자를 순서대로 배열한 후 번호를 매김 1 영어 = 0 한글 = 1 초성 ‘ㄱ’ 중성 ‘ㅏ’ 종성 ‘ㅇ’ 숫자 (16 진수 ) 문자 B0A1 가 B0A2 각 B0A3 간 ... 현재 유니 코드
숫자의 표현 숫자 정수, 실수 정수의 표현 2진수로 표현됨 3 bit로 표현할 수 있는 숫자: 0~7 (8개) 사용되는 비트 수는 형식에 따라 정해짐
정수의 표현 부호 없는 정수 (unsigned integer) 할당되는 비트 수 N 예) N = 8 bits 0 ~ 255 부호 있는 정수 (signed integer) 표현 가능한 값의 범위 -(2N-1-1) ~ +(2N-1-1) or -(2N-1) ~ +(2N-1-1) 예) 8 bits -127 ~ +127 or -128 ~ +127 Sign-and-magnitude / One’s complement Two’s complement
음수의 표현 1의 보수 형식 (1’s complement representation)
부동 소수점 수(floating-point number)의 표현 실수 = 정수 + 소수 소수의 이진수 변환
부동 소수점 수의 표현 정규화(normalization) 실수 연산 용이 소수점 왼쪽에 오직 하나의 1을 갖도록 조절 부호 + 지수(exponent) + 가수(mantissa) 부동 소수점 저장 방법 단정도 (single-precision) 배정도 (double-precision)
8진수, 16진수 표현 편의를 위해 사용
그림의 표현 이미지 표현 방법 비트맵 (bitmap) 벡터 (vector) 비트맵 표현 방법
소리의 표현 양자화
명령어의 표현 컴퓨터마다 이진수로 표현되는 명령어(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
CPU 성능 향상 기술 성능 향상의 기법 CISC / RISC Pipelining Superscalar / VLIW CPU 예 : Intel 무어의 법칙 암달의 법칙
명령어 구현 CISC RISC Complex Instruction Set Computer 복잡한 내부 명령어를 많이 가짐 필요에 따라 여러 명령어 집합을 제공 RISC Reduced Instruction Set Computer 필수적인 명령어만 제공함 (CISC의 30%) 명령어의 조합을 통해 복잡한 작업 수행 Pipeline을 통해 속도 향상을 꾀함
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 / VLIW 동시에 여러 명령어 수행 명령어들간의 의존성 존재 명령어 A의 결과를 B에서 사용하게 될 때, A와 B의 수행이 동시에 처리되기 어렵다. 의존성 해결 방법 Superscalar: 의존성을 하드웨어가 검사 VLIW (Very Long Instruction Word) 여러 명령어를 합쳐서 동시에 실행 가능한 하나의 큰 명령어를 생성
Other CPU Technology MMX (Intel, 1997) 3DNow! (AMD, 1998)
인텔 칩의 역사 Intel CPU (IBM PC에 도입) 초기의 8086과 호환성을 유지하면서 성능을 향상시킨 것이 계속적인 성공의 열쇠 4bit CPU: 4004 (1971), 4040 8bit CPU: 8008, 8080, 8085 16bit CPU: 8086/8088 (1978~79), 80286 32bit CPU: 80386, 80486 Pentium (1993) Pentium Pro (1995) Pentium II (1997): Pentium Pro + MMX Pentium III, Pentium IV 64bit CPU: Pentium M, Pentium D, Core 2
Moore’s Law CPU 내 트랜지스터의 수가 18~24개월 만에 두 배가 된다는 법칙
Amdahl’s Law 시스템의 특정부분 (e.g. CPU)의 속도 향상이 전체 시스템의 속도 향상으로 비례적으로 이어지지 않는다. 메모리 속도가 고정된 상태에서 CPU가 향상돼도 시스템 전체의 성능이 크게 향상되지 않음.