Download presentation
Presentation is loading. Please wait.
1
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net
2
Chapter 02. 컴퓨터 구조
3
복잡한 논리를 간결하고 정확하게 표현할 수 있게 하는 논리회로에 대해 살펴본다
학습목표 복잡한 논리를 간결하고 정확하게 표현할 수 있게 하는 논리회로에 대해 살펴본다 컴퓨터 시스템을 전체적으로 구성하고 있는 요소들에 대한 각각의 기능을 살펴본다 중앙처리장치의 구성 요소들과 동작, 명령어 세트 등에 대해 자세하게 살펴본다 기억장치의 계층 구조를 통하여 주기억장치, 캐쉬 기억장치, 보조기억장치에 대한 역할들을 자세하게 살펴본다 입출력장치들의 입출력 방식에 대하여 살펴본다 처리 속도와 처리율을 향상시키기 위한 병렬 컴퓨터의 구조에 대하여 살펴본다
4
논리 대수(logic algebra) 논리적인 문제를 해결하기 위한 수학적인 방법 결과 논리 연산 게이트(gate)
Section1. 논리회로 – 부울 대수 논리 대수(logic algebra) 논리적인 문제를 해결하기 위한 수학적인 방법 결과 참, 거짓 0, 1 논리 연산 논리곱(AND), 논리합(OR), 논리부정(NOT) 게이트(gate) 신호를 나타내는 데 사용되는 논리회로 교환법칙, 결합법칙, 분배법칙 등 성립
5
부울 대수의 논리연산 논리곱(AND) 부울 대수(계속) 두 가지 명제가 모두 참일 경우에만 결과가 참 교재 p65[그림2-1]
수정합니다.
6
논리합(OR) 논리부정(NOT) 부울 대수 – 부울 대수의 논리연산(계속) 두 가지 명제 중 하나만 참이어도 결과가 참
명제를 부정하는 것 교재 p66[그림2-3] 수정합니다.
7
부울 대수의 기본법칙 교환법칙: AB=BA, A+B=B+A 결합법칙: (AB)C=A(BC), (A+B)+C=A+(B+C)
부울 대수(계속) 부울 대수의 기본법칙 교환법칙: AB=BA, A+B=B+A 결합법칙: (AB)C=A(BC), (A+B)+C=A+(B+C) 분배법칙: A(B+C)=AB+AC, A+(BC)=(A+B)(A+C) 흡수법칙: A(1+B)=A, A+AB=A 부정: AA'=0, A+A'=1, (A')'=A 드 모르간의 법칙: (AB)'=A'+B', (A+B)'=A'B' 기타: 0A=0, 1A=A, AA=A, 0+A=A, 1+A=1, A+A=A
8
부울 대수의 간소화 예 F=AB’+B =B+AB’ =(B+A)(B+B’) =(B+A) ·1 =A+B F=A(A’+B)
부울 대수(계속) 부울 대수의 간소화 예 F=AB’+B =B+AB’ =(B+A)(B+B’) =(B+A) ·1 =A+B F=A(A’+B) =AA’+AB =0+AB =AB F=AB+AC+AB’C’ =A(B+C+B’C’) =AC((B+C)+(B+C)’) =A·1 =A
9
논리 게이트 부울 대수(계속) X=AB AND X=A+B OR Buffer X=A NOT (Inverter) X=A’ 진리표
논리함수 논리기호 게이트 AND OR Buffer NOT (Inverter) X=AB X=A+B X=A X=A’
10
부울 대수 – 논리 게이트(계속) NAND X=A’+B’ NOR X=A’B’ XOR X=AOB=A’B+AB’ XNOR
(Exclusive-OR) XNOR (Exclusive-NOR) X=A’+B’ X=A’B’ X=AOB=A’B+AB’ X=AOB=A’B’+AB
11
조합 논리회로(combinational logic circuit)
논리회로의 종류 조합 논리회로(combinational logic circuit) 현재 입력값에 의해 출력값 결정 정보에 대한 기억능력 없음 반가산기(half adder)
12
논리회로의 종류 – 조합 논리회로(계속) 전가산기(full adder) 디코더(decoder) 인코더(encoder)
13
디멀티플렉서(demultiplexer)
논리회로의 종류 – 조합 논리회로(계속) 멀티플렉서(multiplexer) 디멀티플렉서(demultiplexer)
14
순서 논리회로 입력값과 회로의 현재 상태에 따라 출력값 결정 기억능력 갖고 있음 플립플롭(flip-flip)
논리회로의 종류(계속) 순서 논리회로 입력값과 회로의 현재 상태에 따라 출력값 결정 기억능력 갖고 있음 플립플롭(flip-flip) RS 플립플롭, D 플립플롭, JK 플립플롭, T 플립플롭
15
논리회로의 종류 – 순서 논리회로(계속) 레지스터(register) 카운터(counter)
16
컴퓨터의 기본적인 기능 컴퓨터 시스템의 구조 Section 2. 컴퓨터 시스템의 구성 프로그램 실행
중앙처리장치가 기억장치로부터 프로그램 코드를 읽고 실행 데이터 저장 중앙처리장치가 처리된 데이터를 기억장치에 저장 데이터 이동 하드디스크와 같은 보조기억장치에 저장되어 있는 프로그램과 데이터를 주기억장치로 이동 제어 프로그램이 제대로 실행될 수 있도록 각종 제어 신호을 발생
17
중앙처리장치 기억장치 입출력장치 명령어들을 기억장치로부터 차례로 인출하여 해독하고 실행
중앙처리장치 / 기억장치 / 입출력장치 중앙처리장치 명령어들을 기억장치로부터 차례로 인출하여 해독하고 실행 산술논리연산장치, 제어장치, 레지스터들로 구성 기억장치 데이터를 저장 주기억장치, 보조기억장치 입출력장치 컴퓨터 시스템에 모니터와 프린터 등과 같은 여러 장치가 연결되어 사용 장치마다 별도의 제어기 필요
18
주소 버스(address bus) 데이터 버스(data bus) 제어 버스(control bus)
시스템 버스 주소 버스(address bus) 중앙처리장치가 기억장치나 입출력장치의 주소 정보를 전송하는 신호 선의 집합 단방향 버스(uni-directional bus) 데이터 버스(data bus) 중앙처리장치가 기억장치나 입출력장치의 데이터를 보내거나 반대로 기억장치나 입출력장치에서 데이터를 읽어 들일 때 데이터를 전송하기 위한 신호 선의 집합 양방향 버스(bidirectional bus) 제어 버스(control bus) 중앙처리장치가 컴퓨터 시스템 내의 각종 장치들의 동작을 제어하기 위한 신호 선의 집합
19
제어 신호의 종류와 기능 시스템 버스(계속) 제어신호 종류 기능 기억장치 읽기
지정된 기억장치 주소에 있는 데이터를 데이터 버스에 싣기 위한 신호 기억장치 쓰기 데이터 버스에 있는 데이터를 지정된 기억장치 주소에 쓰기 위한 신호 입출력 읽기 지정된 입출력장치로부터 데이터를 읽어서 데이터 버스에 싣기 위한 신호 입출력 쓰기 데이터 버스에 있는 데이터를 지정된 입출력장치로 출력시키기 위한 신호 버스 요구 컴퓨터 시스템의 어떤 장치가 버스를 사용해야 할 경우 버스 요청을 요구하기 위한 신호 인터럽트 요구 인터럽트가 실행을 위해 대기하고 있음을 나타내는 신호 클럭 컴퓨터 시스템의 각 장치들의 동작을 동기화시키는데 사용되는 신호
20
시스템 버스(계속) 컴퓨터 시스템의 전체 구성
21
기능 명령어 인출(instruction fetch) 명령어 해독(instruction decode)
Section 3. 중앙처리장치 기능 명령어 인출(instruction fetch) 명령어 해독(instruction decode) 데이터 인출(data fetch) 데이터 처리(data processing) 데이터 저장(data store)
22
중앙처리장치 구성 CPU의 내부 구조 및 시스템 버스와의 접속
23
산술논리연산장치(ALU, Arithmetic and Logical Unit) 제어장치(Control Unit)
중앙처리장치 구성(계속) 산술논리연산장치(ALU, Arithmetic and Logical Unit) 산술연산(+, -, ×, ÷), 논리연산(AND, OR, NOT 등) 수행 제어장치(Control Unit) 명령어 해독하고 명령어 실행에 필요한 동작을 수행하기 위해 제어 신호 발생 레지스터(register) 데이터를 임시 저장하는 기능을 가진 CPU 내부에 있는 고속의 기억장치
24
레지스터의 종류와 기능 중앙처리장치 구성(계속) 레지스터 종류 기능 누산기(Accumulator)
데이터를 일시 저장하는 레지스터다. 누산기를 사용한 연산: 기억장치로부터의 읽어온 데이터와 누산기에 적재되어있던 데이터가 지정된 연산을 수행한 후 그 결과값을 다시 누산기에 적재한다. 누산기 내용을 전부 지워 0으로 만들 수 있으며, 왼쪽이나 오른쪽으로 몇 자리씩 움직일 수도 있다. 누산기의 비트 수는 CPU가 한 번에 처리할 수 있는 데이터 비트 수인 단어의 길이와 같다. 프로그램 카운터 (PC: Program Counter) 다음에 수행될 명령어의 주소를 가지고 있는 레지스터 PC 값은 단어의 크기에 따라 1 또는 명령어 길이(바이트 수)만큼씩 증가되어 기억장치에 저장되어 있는 명령어를 연속적으로 수행한다. 그러나 만일 분기 명령어가 실행되는 경우에는 그 목적지 주소로 갱신된다. 명령어 레지스터 (IR: Instruction Register) 현재 실행 중인 명령어를 기억하고 있는 레지스터 기억장치 주소 레지스터 (MAR: Memory Address Register) 다음에 수행될 명령어를 인출하기 위해 현재 PC에 들어있는 내용(주소)이 시스템 주소버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터 기억장치 버퍼 레지스터 (MBR: Memory Buffer Register) 기억장치로 쓰여질 데이터나 기억장치로부터 읽어온 데이터를 임시로 저장하는 레지스터 인덱스 레지스터(Index Register) 인덱스 주소지정(indexed addressing) 방식에서 사용되어지는 레지스터 스택 포인터(Stack Pointer) 스택 주소지정 방식에서 사용되어지며, 스택의 최상위를 지정
25
중앙처리장치 구성(계속) CPU 내부의 레지스터의 구성
26
중앙처리장치의 동작 기본 명령어 사이클
27
명령어 사이클(instruction cycle)
중앙처리장치의 동작(계속) 명령어 사이클(instruction cycle) 인출 사이클(fetch cycle) 실행 사이클(execution cycle) 간접 사이클(indirect cycle) 인터럽트 사이클(interrupt cycle)
28
인출 사이클(fetch cycle) 기억장치의 지정된 위치로부터 CPU로 명령어를 가져오는 단계
중앙처리장치의 동작 (계속) 인출 사이클(fetch cycle) 기억장치의 지정된 위치로부터 CPU로 명령어를 가져오는 단계 인출 사이클에서의 마이크로 연산 C0: MAR ← PC C1: MBR ← M(MAR), PC ← PC+1 C2: IR ← MBR C0 ~ C2 : CPU 클럭의 각 주기
29
실행 사이클(execution cycle)
중앙처리장치의 동작 (계속) 실행 사이클(execution cycle) 인출된 명령어를 해독(decode)하고 직접 명령을 실행하는 사이클 명령어 연산코드(operation code)와 오퍼랜드(operand)로 구성 LDA(Load AC) 명령에 대한 마이크로 연산 C0: MAR ← IR(addr) C1 : MBR ← M(MAR) C2 : AC ← MBR
30
STA(Store AC) 명령에 대한 마이크로 연산
중앙처리장치의 동작 - 실행 사이클(계속) ADD 명령에 대한 마이크로 연산 C0: MAR ← IR(addr) C1 : MBR ← M(MAR) C2 : AC ← AC+MBR STA(Store AC) 명령에 대한 마이크로 연산 C1 : MBR ← AC C2 : M(MAR) ← MBR BUN 명령에 대한 마이크로 연산 C0: PC ← IR(addr)
31
인터럽트 사이클(interrupt cycle)
중앙처리장치의 동작(계속) 인터럽트 사이클(interrupt cycle) 인터럽트 발생시 현재 수행 중이던 처리 과정을 저장한 후에 인터럽트 사이클 시작 처리 끝나면 원래의 프로그램으로 복귀(return) 인터럽트 CPU의 정상적인 처리를 방해하는 예기치 않았던 사건 간접 사이클(indirect cycle) 인출 사이클에서 읽어 들인 명령어가 간접 주소지정 방식의 명령어일 경우에 기억장치로부터 유효 주소(effective address)를 읽어오는 과정 인출 사이클과 실행 사이클 사이에 위치
32
명령어 파이프라이닝(instruction pipelining)
컴퓨터의 처리율을 높이기 위한 방법 한 명령어의 수행이 끝나기 전에 다른 명령어의 수행을 시작하는 방법 2-단계 명령어 파이프라이닝
33
명령어 세트(instruction set)
명령어 종류 데이터 전송 명령어 (ex) LDA, STA 등 데이터 처리 명령어 (ex) ADD, AND 등 프로그램 제어 명령어 (ex) BUN 등 명령어 형식 명령어의 기본 형식
34
명령어 세트(instruction set) – 명령어 형식(계속)
명령어 형식의 종류
35
명령어 세트(instruction set)(계속)
주소지정 방식(addressing mode) 연산에 사용될 데이터가 기억장치의 어디에 위치하는지를 지정하는 방법 즉시 주소지정 방식(immediate addressing mode) 레지스터 주소지정 방식(register addressing mode)
36
명령어 세트(instruction set) – 주소지정 방식(계속)
직접 주소지정 방식 (direct addressing mode) 변위 주소지정 방식 (displacement addressing mode)
37
명령어 세트(instruction set) – 주소지정 방식(계속)
간접 주소지정 방식 (indirect addressing mode) 레지스터 간접 주소지정 방식 (register indirect addressing mode)
38
산술논리연산장치 정수의 표현 양의 정수 표현 부호(+ 또는 -)를 나타내는 비트 필요없음 n 비트로 이루어진 수는 0부터 2n-1까지의 값을 나타낸다 34 128 255
39
음의 정수 표현 산술논리연산장치 – 정수의 표현(계속) 부호 비트 사용(0: 양수, 1: 음수)
부호화-크기(signed magnitude) 방식 최상위 1 비트를 부호로 사용하고 나머지 비트는 수의 크기를 나타내는 방식 (ex) +5: , -5: 1의 보수(1’s complement) 방식 이진수의 각 비트를 0은 1로, 1은 0으로 바꾸어서 표현하는 방식 (ex) +5: , -5:
40
산술논리연산장치 – 정수의 표현(계속) 2의 보수(2’s complement) 방식 컴퓨터에서 가장 많이 사용하는 방식
1의 보수에서 1을 더하여 숫자를 표현하는 방식 (ex) +5: , -5:
41
부동 소수점 수의 표현 소수점의 위치가 필요에 따라 이동하는 표현 방법을 의미하는 것 지수부(exponent part)
산술논리연산장치(계속) 부동 소수점 수의 표현 소수점의 위치가 필요에 따라 이동하는 표현 방법을 의미하는 것 지수부(exponent part) 소수점의 위치를 나타냄 가수부(mantissa part) 유효 숫자를 나타냄 일반적인 형태 N=(-1)S×M×BE S: 수의 부호, M: 가수, B: 기수(base), E: 지수
42
논리연산 레지스터에 저장된 데이터의 특정 비트 값을 변경하거나 일부 비트들을 삽입할 때 유용하게 사용 산술논리연산장치(계속)
P Q NOTP NOTQ PAND PORQ PXORQ 1
43
쉬프트 연산(shift operation)
산술논리연산장치(계속) 쉬프트 연산(shift operation) 레지스터 내에서 비트 값들을 왼쪽이나 오른쪽으로 한 자리씩 이동하게 하는 것 왼쪽 쉬프트 연산 오른쪽 쉬프트 연산
44
각 사이클에서의 마이크로 연산들의 수행 순서 제어 내부 구성
제어장치 각 사이클에서의 마이크로 연산들의 수행 순서 제어 내부 구성
45
Section 4. 기억장치 기억장치의 구성 기억장치 계층
46
CPU가 직접 사용할 수 있는 정보를 기억하고 있는 기억장치
주기억장치 CPU가 직접 사용할 수 있는 정보를 기억하고 있는 기억장치
47
CPU와 주기억장치 사이에 설치한 접근 속도가 빠른 소규모 기억장치(캐쉬라고도 함) 적중률(hit ratio)
캐쉬 기억장치 CPU와 주기억장치 사이에 설치한 접근 속도가 빠른 소규모 기억장치(캐쉬라고도 함) 적중률(hit ratio) 교체 알고리즘 LRU(Least Recently Used) 방식 FIFO(First-In First-Out) 방식 LFU(Least Frequently Used) 방식 임의(random) 교환 방식 적중률 = 캐쉬에 적중된 횟수 기억장치 총 접근 횟수
48
대량의 정보를 저장하고 관리하기 위한 장치 보조기억장치의 데이터를 접근하는 방법 순차 접근 기억장치 직접 접근 기억장치
SASD, Sequential Access Storage Device 보조기억장치에 저장된 파일로부터 미리 정해놓은 순서대로 데이터를 검색해 나가는 것 자기 테이프(magnetic tape) 직접 접근 기억장치 DASD, Direct Access Storage Device 어떤 파일 내에 있는 특정한 레코드를 찾을 때, 다른 레코드를 순차적으로 읽지 않고 원하는 레코드만 직접 접근하는 것
49
입출력장치의 전용 제어기(I/O controller) 필요
Section 5. 입출력장치 기억장치와 입출력장치의 차이점 동작 속도 기억장치의 동작 속도보다 입출력장치의 동작 속도가 느림 데이터 형식의 길이가 다름 오류 발생률 입출력 과정에서의 오류 발생률이 큼 입출력장치의 전용 제어기(I/O controller) 필요
50
입출력장치의 구성
51
CPU에 의한 입출력 방식 채널(channel)에 의한 입출력 방식 프로그램에 의한 입출력 방식 인터럽트에 의한 입출력 방식
시간적 낭비 심하고 처리 효율 떨어짐 인터럽트에 의한 입출력 방식 CPU는 입출력 동작을 작동시켜 놓고 다른 작업 수행 입출력 전송률이 느림 채널(channel)에 의한 입출력 방식 입출력 처리기(I/O processor)가 입출력과 관련된 거의 모든 동작을 수행하므로 CPU가 입출력 동작에 대한 부담을 거의 가지지 않음
52
DMA(Direct Memory Access)에 의한 입출력 방식
입출력 방식(계속) DMA(Direct Memory Access)에 의한 입출력 방식 프로그램에 의한 입출력 방식과 인터럽트에 의한 입출력 방식의 단점을 보완하기 위한 것 CPU의 레지스터를 거치지 않고 직접 주기억장치와 입출력장치 사이에서 데이터 전송이 이루어짐 CPU가 유휴(idle) 상태가 될 수 있음
53
병렬 처리(parallel processing)
Section 6. 병렬 컴퓨터 구조 병렬 처리(parallel processing) 여러 개의 프로세서가 동시에 정보를 처리하는 기술 목적 처리 속도 향상 처리율 증가 추가적인 하드웨어 필요 시스템 비용 증가
54
SISD(Single Instruction stream Single Data stream)
플린(Flynn) 종류 SISD(Single Instruction stream Single Data stream) 단일 명령어, 단일 데이터 스트림 단일 프로세서 시스템
55
SIMD(Single Instruction stream Multiple Data stream)
플린(Flynn) 종류(계속) SIMD(Single Instruction stream Multiple Data stream) 단일 명령어, 다중 데이터 스트림 공통의 제어장치 아래에 여러 개의 처리장치를 두고 있는 구조
56
MISD(Multiple Instruction stream Single Data stream)
플린(Flynn) 종류(계속) MISD(Multiple Instruction stream Single Data stream) 다중 명령어, 단일 데이터 스트림 여러 명령이 하나의 데이터 입력에 대하여 동작하는 경우
57
MIMD(Multiple Instruction stream Multiple Data stream)
플린(Flynn) 종류(계속) MIMD(Multiple Instruction stream Multiple Data stream) 다중 명령어, 다중 데이터 스트림 멀티프로세서 시스템
58
파이프라인 처리(pipeline processing)
병렬 처리 방법 중의 하나 하나의 프로세스를 서로 다른 기능을 가진 여러 개의 서브프로세스(subprocess)로 분할 각 서브프로세스가 동시에 서로 다른 데이터를 취급 파이프라인의 종류 명령어 파이프라인(instruction pipeline) 산술 파이프라인(arithmetic pipeline)
59
Thank you ehanbit.net
Similar presentations