CPU
중앙 처리 장치 또는 CPU는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행, 처리하는 가장 핵심적인 컴퓨터의 제어 장치, 혹은 그 기능을 내장한 칩이다. 컴퓨터 안의 중앙 처리 장치(CPU)는 외부에서 정보를 입력 받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하여 연산하고, 외부로 출력 하는 역활을 한다. 따라서 중앙 처리 장치는 컴퓨터 부품과 정보를 교환하면서 컴퓨터 시스템 전체를 제어하는 장치로, 모든 컴퓨터의 작동과정이 중앙 처리 장치(CPU)의 제어를 받기 때문에 컴퓨터의 두뇌에 해당한다고 할 수 있다.
CPU의 구성요소
제어장치(Control Unit): 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치이다.
- 명령 레지스터에서 읽어 들인 프로그램 코드(명령어)를 해석하고, 해당하는 장치에 제어 신호를 보내 정확하게 실행하도록 지시.
- 프로그램 카운터(PC), 명령어 레지스터(IR), 부호기(제어신호 발생기), 명령어 해독기, 번지 해독기 등으로 구성.
- 명령어의 실행(Instruction Cycle) 단계 : 인출(Fetch) 단계, 간접(indirect) 단계, 실행(Execute)단계, 인터럽트(Interrupt) 단계
명령어 실행단계
- 인출(Fetch)
- 메모리에서 데이터를 로드하여 CPU에 있는 레지스터에 적재하는 과정
- 간접(Indirect)
- 메모리를 참조할 때 간접주소 방식을 사용하는 경우에 실행
- 간접주소란 CPU가 메모리를 참조했을 때 데이터가 존재하는 것이 아니라 메모리에 주소가 존재하여 메모리 내에서 한번 더 조회해서 데이터를 얻는 것
- 실행(Execute)
- 명령과 데이터로 CPU가 산술 및 논리연산을 수행하는 것
- 인터럽트(Interrupt)
- 컴퓨터 작동 중 예기치 않은 문제 발생 시 업무 처리가 계속될 수 있도록 하는 컴퓨터 운영체제의 한 기능으로, 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉨
- SVC 하드웨어 인터럽트 : 기계착오 인터럽트, 외부 인터럽트, 입출력 인터럽트, 프로그램 검사 인터럽트
- 소프트웨어 인터럽트 : CPU 내부에서 자신이 실행한 명령이나 CPU의 명령 실행에 관련된 모듈이 변화하는 경우 발생
연산장치(ALU: Arithmetic & Logic Unit) : 제어장치의 명령에 따라 실제로 연산을 수행하는 장치이다.
- 연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동(Shift)등이 있다.
- 연산장치는 가산기, 누산기(AC;Accumulator), 보수기, 데이터 레지스터, 오버플로 검출기, 시프트레지스터 등으로 구성.
레지스터(Register) : CPU 내부에서 처리할 명령어나 연산의 결과나 주소 등을 일시적으로 기억하는 임시 기억장소
- 메모리 중에서 속도가 가장 빠름
- 레지스터에 새로운 데이터가 전송되면 기존에 있던 내용은 지워지고 새로운 내용만 기억.
- 레지스터는 연산 속도를 향상하기 위해 사용
레지스터의 종류 및 기능
- 프로그램 카운터(PC; Program Counter)
- 다음에 수행할 명령어가 저장된 주기억장치의 번지를 지정하는 레지스터
- 명령 레지스터(IR;Instruction Register)
- 연산된 결과를 일시적으로 저장하는 레지스터로 연산의 중심이 됨
- 상태 레지스터(Status Register), PSWR(Program Status World Register), 플래그 레지스터(Flag Register)
- 시스템 내부의 순간 순간의 상태가 기록된 정보를 PSW라고 함
- 오버플로, 언더플로, 자리올림, 인터럽트 등의 PSW를 저장하고 있는 레지스터
- 제어장치와 연산장치의 실행 순서를 제어하기 위해 사용되는 레지스터
- 메모리 주소 레지스터(Memory Address Register)
- 기억장치를 출입하는 데이터의 번지를 기억하는 레지스터
- 메모리 버퍼 레지스터(Memory Buffer Register)
- 기억장치를 출입하는 데이터가 잠시 기억되는 레지스터
- 버퍼 레지스터라고도 함
- 인덱스 레지스터(Index Register)
- 주소의 변경, 서브루틴 연결 및 프로그램에서의 반복 연산의 횟수를 세는 레지스터
- 데이터 레지스터(Data Register)
- 연산에 사용될 데이터를 기억하는 레지스터
- Shift Register
- 클럭 펄스(Clock Pulse)에 의해서 기억된 내용을 왼쪽 또는 오른쪽으로 1bit씩 자리를 이동시키는 레지스터
- 2배 길이 레지스터라고도 함
'CS > Computer Science' 카테고리의 다른 글
01/06 컴파일러 (0) | 2023.01.06 |
---|---|
01/05 GPU (0) | 2023.01.05 |
12/29 MSA (0) | 2022.12.29 |
12/27 객체 지향 프로그래밍 ,절차 지향 프로그래밍 정리 및 차이점 (0) | 2022.12.28 |
12/26 컴퓨터 사이언스란(Computer Science) (0) | 2022.12.28 |