• 검색 결과가 없습니다.

1장. 컴퓨터 시스템 개요

N/A
N/A
Protected

Academic year: 2023

Share "1장. 컴퓨터 시스템 개요"

Copied!
22
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

1장. 컴퓨터 시스템 개요

1. 강의 목표

• 컴퓨터 시스템 구성요소를 이해한다.

• 처리기 레지스터의 종류와 역할을 이해한다 .

• 명령 수행 사이클을 통하여, 프로그램이 실행되는 방식을 이해한다.

• 인터럽트의 정의, 필요성, 처리 방법에 대해서 이해한다.

• 메모리 계층 구조에 대해서 이해한다 .

• 캐시 메모리 구조와 참조 지역성의 원리를 이해한다.

• 입출력 통신 기술들에 대해서 이해한다.

(2)

컴퓨터 시스템 개요 3

목 차

1.1 컴퓨터 구성 요소 1.2 처리기 레지스터 1.3 명령어 수행 1.4 인터럽트

1.5 메모리 계층 구조 1.6 캐시 메모리

1.7 입출력 통신 기술

1.1 기본 하드웨어 구성 요소

처리기(중앙 처리 장치: central processing unit)

컴퓨터의 두뇌: 데이터 연산, 논리 연산(ALU), 제어(control Unit) 레지스터(register)

– x86, ARM, PPC, Sparc, Alpha, MIPS, SH4, XScale, …

주기억장치(main memory) : 휘발성(volatile) 메모리 셀: 메모리 내의 개별적인 저장 공간

(3)

컴퓨터 구성 요소 ( 최상위 수준 관점 )

컴퓨터 시스템 개요 5 1.1 기본 구성 요소

1.2 처리기 레지스터

• 레지스터 (register)

– 메모리 주소 레지스터(Memory address register (MAR))

다음 번에 읽거나 쓸 주소를 명시

– 메모리 버퍼 레지스터(Memory buffer register (MBR))

메모리에 쓸 데이터를 포함하거나 메모리로부터 수신된 데이터를 포

– I/O 주소 레지스터(I/O AR) – I/O 버퍼 레지스터(I/O BR)

(4)

사용자가 볼 수 있는 레지스터

컴퓨터 시스템 개요 7

– 레지스터 사용을 최적화하여 프로그래머가 주 메모리를 참조하는 것을 줄여줌

– 모든 프로그램에서 사용

응용 프로그램과 시스템 프로그램 – 레지스터의 종류

데이터 레지스터

주소 레지스터

인덱스 레지스터: 유효 주소를 얻기 위해 베이스 값에 인덱스 값을 더해 줌

세그먼트 포인터: 메모리가 세그먼트로 나뉘어질 때, 메모리는 세 그먼트와 오프셋에 의해 참조됨

스택 포인터: 스택의top을 가리킴

1.2 처리기 레지스터

제어 및 상태 레지스터

Control and status registers

– 처리기의 작동을 제어하기 위해 사용

– 프로그램의 실행을 제어하기 위한 특권 모드의 운영체제 루틴에 의해 사용됨

– 프로그램 계수기(Program Counter (PC))

반입할 명령어의 주소 포함

1.2 처리기 레지스터

(5)

명령어 수행

• 명령어 실행 (instruction cycle) 2 단계

– 처리기가 메모리로부터 명령어 읽음(반입, fetch) – 처리기가 각 명령어 실행

컴퓨터 시스템 개요 9

명령어 반입과 실행

• 처리기는 메모리로부터 명령어 반입

• 프로그램 계수기(PC)가 다음에 반입할 명령어의 주소를 저장함

PC는 매 명령어 반입 후 증가됨

1.3 명령어 수행

(6)

명령어 레지스터

컴퓨터 시스템 개요 11

• 반입된 명령어는 명령어 레지스터(IR)에 적재

CPU 명령어의 범주

– 처리기-메모리

처리기와 메모리간 데이터 전달 – 처리기-I/O

주변장치로(또는 주변장치로부터) 데이터 전달 – 데이터 처리

데이터에 산술 또는 논리 연산

– 제어

실행 순서의 변경

1.3 명령어 수행

Machine Instruction 의 특징

1.3 명령어 수행

(7)

프로그램 실행 예

컴퓨터 시스템 개요 13 1.3 명령어 수행

1.4 인터럽트 (interrupt)

처리기의 정상적인 흐름을 방해한다는 의미의 인터럽

트 이지만

– 획기적인 컴퓨터 시스템 성능향상 역할을 함.

• 대부분의 I/O 장치는 CPU보다 느림

– CPU는 디바이스가 작업을 완료 할 때까지 기다려야 함 – Blocking I/O의 문제점

(8)

컴퓨터 시스템 개요 15

Computer System 들의 전형적인 수행시간

항목 시간 사람의 시간으로 환산

Processor Cycle 0.5 ns(2GHz) 1초

Cache Access 1ns(1GHz) 2

Memory Access 15ns 30초

Context Switch 5,000ns(5us) 167분

Disk Access 7,000,000ns(7ms) 162일

Time Quantum 100,000,000ns(100ms) 6.3

주) 1ns= 10-9초, 1us= 10-6초, 1ms= 10-3

1.4 인터럽트

인터럽트의 분류

• 대부분의 I/O 디바이스는 CPU보다 느림

– 처리기가 디바이스의 작업 완료를 위해 기다린다면

처리기의 성능 저하 유발

– 이를 위하여 디바이스가 작업이 완료되면 처리기에게 인터럽트 를 걸 수 있도록 허용

1.4 인터럽트

(9)

인터럽트와 프로그램 제어 흐름

컴퓨터 시스템 개요 17 1.4 인터럽트

인터럽트 단계

• 처리기가 인터럽트를 검사

• 인터럽트가 발생한 경우

– 프로그램의 실행을 보류한다 – 인터럽트-처리 루틴을 실행한다

• 인터럽트 처리 루틴(Interrupt Service Routine)

– 특정 I/O 디바이스를 서비스하기 위한 프로그램

– 일반적으로 운영체제 커널 코드에 포함됨

– 인터럽트 처리를 위한 오버헤드가 존재하나, 입출력 연산이 완료 되기를 기다리며 낭비하는 시간에 비해 상대적으로 짧다.

1.4 인터럽트

(10)

인터럽트를 통한 제어 분기

컴퓨터 시스템 개요 19

• 일반적인 실행흐름의 연기

1.4 인터럽트

인터럽트가 포함된 명령어 사이클

처리기는 인터럽트 발생 여부 검사

인터럽트가 발생하지 않았으면 지금 수행 중인 프로그램의 다음 명령어 반입

인터럽트가 있으면, 현재 프로그램의 실행을 멈추고, 인터럽트 처리 루 틴을 실행시킴

(11)

짧은 I/O 대기에 기반한 프로그램 실행 시간 다이어그램

컴퓨터 시스템 개요 21

1.4 인터럽트

I/O 대기에 기반한 프로그램 실행 시간 다이어그램

1.4 인터럽트

(12)

간단한 인터럽트 처리

컴퓨터 시스템 개요 23

1.4 인터럽트

인터럽트 처리를 위한 메모리와 레지스터의 상태 변화

1.4 인터럽트

(13)

순차적 인터럽트 처리

컴퓨터 시스템 개요 25

• 하나의 인터럽트가 처리 중에는 다른 인터럽트를 불능화

상대적인 우선 순위나 시간 긴급도(time-critical)를 고려하지 않음

1.4 인터럽트

다중 인터럽트

• 인터럽트 간의 우선 순위 지정

1.4 인터럽트

(14)

다중 인터럽트

컴퓨터 시스템 개요 27

1.4 인터럽트

• 중첩 인터럽트의 시간적인 순서 예

다중 프로그래밍

• 처리기는 실행 가능한 하나 이상의 프로그램을 보유

• 프로그램이 실행되는 순서는 프로그램의 상대적인 우선 순위와 입출력 대기 여부에 따라 달라짐

• 인터럽트 처리 루틴이 실행을 마치면, 인터럽트가 발생 한 당시에 수행 중이던 프로그램으로 제어가 돌아가지

1.4 인터럽트

(15)

1.5 메모리 계층 구조

• 접근 시간이 빠르면 비트 당 가격 증가

• 용량이 크면 비트 당 저장 비용이 작음

• 용량이 크면, 접근 속도는 느림

컴퓨터 시스템 개요 29

계층 구조를 따라 내려가면서

• 비트 당 비용이 감소

• 용량이 증가

• 접근 속도 느려짐

• 처리기가 접근하는 빈도가 줄어듦

1.5 메모리 계층 구조

(16)

Secondary Memory

• 보조 메모리

• 외부 저장 장치

• 비휘발성 (non-volatile)

• 프로그램과 데이터 파일을 저장하기 위해 사용

컴퓨터 시스템 개요 31 1.5 메모리 계층 구조

1.6 캐시 메모리 (Cache Memory)

cache [kæʃ] n.

① 숨겨두는 장소, (특히 식량·탄약 등을 숨겨두기 위한) 땅굴.

② 저장물, 은닉물.

③ 시렁(a wall shelf)

• 캐싱(Caching)

(17)

캐시 원칙 1

• 주 메모리의 한 영역의 복사본을 가지고 있음

• 처리기는 먼저 캐시를 참조

• 캐시에 없으면, 필요한 정보가 저장된 메모리 블록이 캐시로 읽혀짐

• 참조 지역성 때문에 향후 참조될 데이터는 캐시에 존재할 가능성이 높 음

컴퓨터 시스템 개요 33 1.6 캐시 메모리

캐시 / 주 메모리 구조

1.6 캐시 메모리

• 캐시 메모리 구성 원리

– 교재: pp. 58 ~ 59.

(18)

참조 지역성 원리

컴퓨터 시스템 개요 35

• 참조 지역성(Locality of Reference)

– 프로그램이 수행되는 동안, 명령어와 데이터 둘 다에 대한 처리기 의 메모리 참조는 인근 지역으로 몰리는 경향이 있다. 이러한 원리 를 참조 지역성의 원리라고 한다.

– 장기간으로 보면 이들 집단들은 변하게 되나, 단기적으로는 처리 기가 고정된 메모리 참조 집단들을 주로 이용하여 일을 처리한다 – 시간 참조지역성(temporal locality of reference)

명령문: 반복문, 서브루틴

– 공간 참조지역성(spatial locality of reference))

데이터: 테이블, 배열

1.6 캐시 메모리

참조 지역성 원리 (cont’d)

• 적중률(Hit ratio)

– 적중률(H)은 보다 빠른 메모리(예를 들어, 캐시)에서 메모리 접근 이 성공할 확률로 정의된다.

Example

– T1: 단계1 메모리(예: 캐시 메모리)에 접근하는 시간

1.6 캐시 메모리

(19)

컴퓨터 시스템 개요 37

캐시 읽기 연산

1.6 캐시 메모리

캐시 원칙 2

• 캐시 메모리의 크기

– 작은 크기의 캐시도 성능에 큰 영향을 미침

• 캐시 블록의 크기

– 캐시와 메인 메모리 사이에 교환되는 데이터의 단위 – 블록의 크기가 클수록 높은 적중률을 보임

, 새로 반입된 데이터를 참조할 확률이 캐시에서 방출된 데이터를 참조할 확률보다 적어질 때까지

• 매핑 함수

– 블록이 캐시의 어느 위치에 저장될 지를 결정

• 교체 알고리즘(Replacement Algorithm)

1.6 캐시 메모리

(20)

캐시 원칙 3

• 쓰기 정책

– 어느 시점에 메모리로 쓸 것인가를 결정 – 블록이 갱신될 때마다 씀

– 블록이 교체될 때마다 씀

쓰기 연산을 최소로 함

메인 메모리의 데이터가 최신이 아닐 수 있음

컴퓨터 시스템 개요 39 1.6 캐시 메모리

1.7 입출력 통신 기술

Programmed I/O

– 입출력 연산 시작 및 중간 과정에CPU가 개입 – 입출력 연산 종료 여부도 처리기가 매번 직접 검사 – 따라서 종료할 때까지 처리기는 다른 일을 할 수 없음

Interrupt-driven I/O

(21)

Programmed I/O

• 처리기가 아니라 입출력 모듈이 수행

• 입출력 상태 레지스터에 적절한 비트 를 세트

• 인터럽트가 없음

• 처리기는 연산이 완료될 때까지 상태 를 반복적으로 검사해야 함.

컴퓨터 시스템 개요 41 1.7 입출력 통신 기술

인터럽트 기반의 I/O

I/O 모듈이 데이터를 전달할 준비가 될 때 처리기를 인터럽트

• 처리기는 프로그램의 실행 문맥을 저장 하고 인터럽트 처리 루틴을 실행 시킴

CPU가 입출력이 끝나기를 기다릴 필요

가 없어 CPU 낭비가 줄어듦

• 읽거나 쓸 데이터가 처리기를 통해서 이 동되기 때문에 처리기 시간을 낭비함

1.7 입출력 통신 기술

(22)

Direct Memory Access

• 데이터 블록을 메모리로(또는 로부터) 직접 전송

• 전송이 완료되면 인터럽트가 보 내짐

• 훨씬 효율적임

컴퓨터 시스템 개요 43 1.7 입출력 통신 기술

요 약

• 컴퓨터 시스템 구성요소

– 사용자가 볼 수 있는 레지스터, 제어 및 상태 레지스터

• 명령어 실행 사이클

• 인터럽트

– 인터럽트와 명령어 사이클, 인터럽트 처리, 중첩 인터럽트

참조

관련 문서