2021. 4. 16. 21:00ㆍLayer7/Hardware
- 간단 설명
CPU의 명령어 처리 구조에서 Fetch, Decode, Execute는 각각
인출, 해석, 실행을 맡고있다.
추가적으로, Writeback 단계는 쓰기를 담당한다.
- Fetch
우선 첫 번째 필요한 것은 인출이다.
Fetch 단계에서는 CPU가 주기억 장치에서 명령어를 가져온다.
명령어를 가져오기 위해서는 두 가지 장치가 필요하다.
- 프로그램 카운터(Program counter, PC)
- 명령어 레지스터(Instruction Register, IR)
여기서 PC와 IR에 대해서 간단하게 정리를 해보자면
PC는 다음에 수행될 명령어의 주소값을 가지고 있는 *레지스터고
IR은 현재 실행중인 명령어를 기억하고 있는 *레지스터다.
* CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치
Fetch 단계에서 PC는 Fetch 단계가 끝났을 때 다음 실행할 명령어의 주소값을 저장해준다.
그리고 IR은 현재 실행중인 명령어를 저장해준다.
CPU는 주기억장치에 있는 PC에서 명령어를 가져와 IR에 저장하고
PC의 값을 ++시켜 다음에 올 명령어를 가리키도록 만든다.
- Decode
두 번째로는 저장한 명령어를 실행해야 한다.
필요한 장치는 아래와 같다.
- 제어장치(Control Unit, CU)
CU는 IR에 저장된 명령어들을 컴퓨터가 읽을 수 있도록 해독해준다.
Decode 단계에서는 IR에 저장된 명령어를 CU가 읽어 해독하고
그 값을 ALU로 보낸다.
- Execute
세 번째로 해독된 명령어를 실행을 해야하는데
해독한 명령어를 실행 할 수 있게 만들어주는 CPU 내부의 여러 레지스터가 필요하다.
필요한 장치들을 정리해보면 아래와 같다.
- 내부 레지스터(Internal Register)
- 산술논리연산장치(Arithmetic and Logic Unit, ALU)
내부 레지스터는 명령어를 처리하기 위한 공간을 만들어주는데
* 프로세서의 종류별 이름, 용도, 개수 등이 다르다.
* Processor, 디지털 시스템의 핵심 부분이며 프로그램을 기억장치로부터 읽어
여러가지 데이터를 처리하고, 각종 장치를 구동시킨다.
ALU는 Decode 단계에서 가장 중요한 역할인 데이터 처리 기능을 담당한다.
내부 레지스터가 만들어준 공간을 활용하여 ALU는 산술/논리 연산을 진행한다.
연산이 종료되면 ALU는 연산값을 다른 레지스터로 보낸다.
- 이후에는 위와 같은 과정이 반복된다.
'Layer7 > Hardware' 카테고리의 다른 글
임베디드(UART 찾기, 칩 종류/역할) (0) | 2021.04.20 |
---|---|
Speculation Execution, Meltdown, Spectre에 대하여 (0) | 2021.04.17 |
Pipelining, Out-of-order Execution, Branch prediction (0) | 2021.04.17 |
Flash, ROM, RAM에 대하여 | 컴퓨터의 부팅과정 (0) | 2021.04.11 |