![[컴퓨터 구조] CPU 레지스터(Register)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcnz0A8%2FbtsGvWCQYQT%2FoOq4onTAR09QbCmozl5bmK%2Fimg.jpg)

★KEYWORD★
레지스터 / CPU 내부에 있는 메모리 장치 / 연산과 프로그램의 실행을 효율적으로 수행하기 위해 사용 / 매우 빠름 / PC / AC / IR / MAR / MBR
CPU란?
컴퓨터의 핵심 요소
기억장치에 저장되어 있는 명령어들을 실행 (프로그램 수행)
산술 논리 연산 장치 (ALU), 레지스터, 제어장치(CU), 버스로 구성된다.
CPU의 내부 구조
- ALU (산술 논리 연산 장치) : 각종 산술/논리 연산들을 수행하는 회로
참고 : https://lake0989.tistory.com/145
- 제어장치 (CU) : 장치들에게 동작을 명령하고 제어하는 장치. 명령어를 해독하여 처리할 수 있게 제어신호를 전송하여 수행하게 명령하는 역할을 담당
- 버스(Bus) : 장치와 장치사이에 정보를 주고받기 위한 전송선
- 레지스터 : CPU 내에서 데이터들을 기억하는 메모리 장치, 엑세스 속도가 가장 빠르고 많은 공간을 차지함
레지스터란?
레지스터는 컴퓨터의 중앙 처리 장치(CPU) 내부에 있는 매우 빠른 메모리 장치이다.연산과 프로그램의 실행을 효율적으로 수행하기 위해 사용되며, 이를 위해 컴퓨터 메모리와 상호 작용하는 여러 가지 레지스터가 있다.
레지스터의 핵심 목적은 데이터를 빠르게 CPU로 가져오는 것이다.레지스터는 메모리의 일종이지만, RAM과는 다르다.레지스터는 작고 빠르기에 CPU가 연산을 수행하는 데 필요한 중요한 정보(명령어, 데이터, 주소 등)를 임시 저장한다.
레지스터의 장/단점
레지스터는 매우 빠르며, 메인 메모리보다 훨씬 빠르게 데이터에 액세스 할 수 있다. 또한 효율적으로 작은 양의 데이터만 저장하도록 설계되었으며, 이는 CPU가 쉽게 액세스 할 수 있게 한다.
레지스터(Register) 종류
- 프로그램 카운터 : Program Counter(PC)
- 누산기 : Accumulator(AC)
- 명령어 레지스터 : Instruction Register(IR)
- 기억 장치 주소 레지스터 : Memory Address Register(MAR)
- 기억 장치 버퍼 레지스터 : Memory Bufer Register(MBR)
- 입출력 주소 레지스터 : I/O Address Register(IOAR)
- 입출력 버퍼 레지스터 : I/O Buffer Register(IOBR)
- 플래그 레지스터 : Flag Register(FR)
프로그램 카운터 : Program Counter(PC)
다음 번에 실행할 명령어 주소를 기억하는 레지스터
각 명령어가 인출된 후에는 자동적으로 일정 크기(명령어 길이: 워드)만큼 증가
분기(Branch), 조건(Conditional)명령어가 실행되는 경우, 해당 명령어가 있는 목적지 주소 값으로 갱신
누산기 : Accumulator(AC)
데이터의 연산결과를 일시적으로 저장하는 레지스터
레지스터의 길이는 CPU가 한 번에 처리할 수 있는 데이터 비트수(단어 길이)와 동일
명령어 레지스터 : Instruction Register(IR)
현재 실행 중인 명령을 기억하는 레지스터
가장 최근에 지정된 주소 번지의 메모리로부터(주기억장치) cpu로 인출된 명령어 코드가 저장되는 레지스터
-> 메모리에 있는 명령어가 IR로 이동
MEM -> MDR -> ALU -> IR
기억 장치 주소 레지스터 : Memory Address Register(MAR)
접근 할 메모리의 주소를 임시 저장
PC에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전에 일시적으로 저장
기억 장치 버퍼 레지스터 : Memory Bufer Register(MBR)
기억장치에 쓰여질 데이터, 혹은 읽혀진 데이터를 일시적으로 저장하는 버퍼 레지스터
(데이타를 처리하기 위해 반드시 거쳐간다)
입출력 주소 레지스터 : I/O Address Register(IOAR)
접근 할 I/O 장치의 주소를 저장
입출력 버퍼 레지스터 : I/O Buffer Register(IOBR)
I/O 장치와 CPU사이의 교환되는 데이터가 임시 저장됨
플래그 레지스터 : Flag Register(FR)
연산 결과를 bit 단위로 할당하여 저장
출처 및 참고: 위키백과, 나무위키

HyunZzang의 프로그래밍 공간 / 함께 공부해요!!
도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다 :)