본문 바로가기
Major Review (학부)/Computer Architecture

2. CPU의 구조와 기능 (1)

by 삼준 2023. 2. 19.
반응형

- Read Me는 읽어보셨나요? -

2023.02.17 - [HakBu Review (학부)/Computer Architecture] - Read Me

 

개요

 

CPU가 수행해야 하는 세부적인 동작

1. 명령어 인출 : 명령어 읽어오기

2. 명령어 해독 : 수행할 동작 결정

3. 데이터 인출 : 필요한 데이터 읽어오기

4. 데이터 처리 : 데이터로 연산 수행

5. 데이터 저장 : 결과 저장

1~2는 모든 명령어에 대해 공통적으로 수행되고, 3~5는 필요에 따라 수행됨.

 

CPU의 기본 구조

 

CPU는 산술논리연산장치(Arithmetic and Logical Unit : ALU)와 레지스터 세트, 제어 유닛, 그리고 CPU 내부 버스로 구성됨.

 

명령어(Instruction) 실행

 

- 명령어 사이클 : 명령어 한 개를 실행하는 데 필요한 전체 과정. 인출 사이클과 실행 사이클로 나뉨.

명령어 실행을 위해 필요한 CPU 내부 레지스터들

1. 프로그램 카운터(PC) : 다음에 인출될 명령어 주소를 갖고 있음.

2. 누산기(Accumulator : AC) : 데이터 일시 저장.

3. 명령어 레지스터(Instruction ~ : IR) : 가장 최근 인출된 명령어 저장.

4. 기억장치 주소 레지스터(Memory Address ~ : MAR) : PC에 저장된 주소가 시스템 주소 버스로 출력되기 전 일시적으로 저장.

5. 기억장치 버퍼 레지스터(Memory Buffer ~ : MBR) : 기억장치에/로부터 저장될/읽혀진 데이터가 일시적으로 저장.

 

- 인출 사이클

1. PC가 가리키는 기억장치 주소에 가서 명령어 인출해옴.

2. PC값 + 1

마이크로 연산으로 표현 시 다음과 같음.

t0 : MAR ← PC   #PC에서 MAR에 주소 저장.
t1 : MBR ← M[MAR], PC ← PC + 1   #기억장치에서 MAR에 저장된 주소를 찾아가서 해당 내용 MBR에 저장. PC값 + 1 // 두 작업은 위치가 달라서 동시에 일어날 수 있음.
t2 : IR ← MBR   #MBR에 저장된 내용 IR에 저장.
( tn은 CPU 클록 주기 )

※ 마이크로 연산 : CPU 클록의 각 주기 동안 수행되는 기본적인 동작.

 

- 실행 사이클

1. 인출된 명령어 해독

2. 연산 수행

이 때, 수행하는 연산들은 매우 다양하며, 크게 네 가지로 분류가 가능함.

2-1. 데이터 이동 : CPU-기억장치, CPU-I/O장치 간에 데이터 이동. (ex. LOAD)

2-2. 데이터 처리 : 산술,논리 연산. (ex. ADD)

2-3. 데이터 저장 : 연산 결과 또는 입력장치로부터 입력받은 데이터 기억장치에 저장. (ex. STA)

2-4. 프로그램 제어 : 프로그램 실행 순서 결정. (ex. JUMP)

 

- 인터럽트 사이클

인터럽트 : 프로그램 처리 중에 다른 프로그램을 처리하도록 요구하는 매커니즘, 외부 장치와 상호 작용 등을 위해 꼭 필요한 기능임.

인터럽트 서비스 루틴(ISR) : 인터럽트 요구가 들어왔을 때 원래 프로그램의 수행을 중단하고 요구된 인터럽트를 처리해주기 위해 먼저 수행하는 프로그램.

인터럽트 사이클 : 인터럽트 요구가 들어왔는지 검사하고, PC 내용을 스택에 저장한 후(복귀를 위한 과정), PC에 ISR의 시작 주소를 적재하는 과정. 사이클을 시작하기 전 인터럽트가 가능한 상태인지 확인하는 것이 중요함.

 

ISR 과정에서 레지스터 값이 변경되면 기존 프로그램의 실행 결과가 달라질 수 있음. 따라서 레지스터의 내용들을 스택에 저장했다가 원래 프로그램으로 복귀하기 직전 복원해주는 절차가 필요함.

ISR 도중 또 다른 장치에서 인터럽트 요구를 발생할 수 있는데, 이를 다중 인터럽트라고 하며 해결방법은 다음과 같이 두 가지가 있다.

1. 인터럽트 불가능 : ISR 도중에는 인터럽트 요구가 들어와도 인터럽트 사이클이 수행되지 않도록 함. 

2. 우선순위 설정 : ISR 도중 더 높은 우선순위의 인터럽트 요구가 들어오면 새로운 ISR을 실행함.

 

- 간접 사이클

명령어에 있는 주소가, 데이터의 주소가 아니라, 데이터의 주소에 대한 주소인 경우,(= 간접 주소지정 방식의 경우) 해당 주소에서 한 번 더 인출해 오는 과정이 필요하며, 이를 간접 사이클이라고 함. 인출 사이클과 실행 사이클 사이에 위치함.

마이크로 연산으로 표현 시 다음과 같음.

t0 : MAR ← IR(addr)   #명령어(주소필드)에 있는 주소를 MAR에 저장.
t1 : MBR ← M[MAR]   #MAR에 저장된 주소를 메모리에서 찾아가 해당 주소를 MBR에 저장.
t2 : IR(addr) ← MBR   #MBR에 저장된 주소를 명령어(주소필드)에 저장.
반응형

'Major Review (학부) > Computer Architecture' 카테고리의 다른 글

2. CPU의 구조와 기능 (3)  (0) 2023.02.21
2. CPU의 구조와 기능 (2)  (0) 2023.02.20
1. 컴퓨터시스템 개요 (2)  (0) 2023.02.19
1. 컴퓨터시스템 개요 (1)  (0) 2023.02.18
Read Me  (0) 2023.02.17

댓글