레지스터(Resiter)

문딤·2022년 8월 6일
0

레지스터란?

레지스터_Resiter

데이터를 저장할 수 있는 기억소자
여러 개의 플립플롭으로 구성. 메모리는 단순 데이터를 저장하는 소자이지만, 레지스터는 저장 뿐 아니라 저장된 데이터를 처리할 수 있는 기능도 있다.

💨 레지스터는 CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 기억장치이다.

레지스터는 왜 필요할까 ❓

CPU가 RAM에 있는 데이터에 접근하기위해 물리적으로 먼 길을 돌아가는데
레지스터를 이용하면 고속으로 데이터를 처리 할 수 있다.
연산을 위한 데이터를 레지스터에 저장, 결과도 레지스터에 저장한다.

속도 :
레지스터 > 메모리 > 하드디스크

레지스터의 종류

공통버스 시스템에 연결된 기본 컴퓨터의 레지스터

데이터 레지스터 (DR)

메모리에서 읽어온 피연산자를 저장.
피연산자를 저장하기 때문에 16bit를 구성
메모리에서 전달되는 데이터를 저장하는데 사용된다.

메모리 레지스터 (AR)

메모리 주소를 저장, 메모리 주소를 저장하기 때문에 12bit 구성
AR레지스터는 특정 I/O 입출력 장치의 주소를 지정하는데 사용한다.

프로그램 카운터 (PC)

프로그램 카운터 레지스터를 명령어 포인터 레지스터(IP)라고도 부른다.
이 레지스터는 프로세서가 수행할 다음 명령의 주소를 일시적으로 저장하는데 사용된다. 명령을 가져오면 IP의 값이 증가한다.
따라서 이 레지스터는 항상 가져올 다음 명령의 주소를 가리키거나 현재 명령의 주소를 유지한다.

명령어 레지스터 (IR)

주기억장치에서 수행할 명령을 가져오면 명령어 레지스터에 저장된다.
제어장치는 이 레지스터의 지시를 받아 컴퓨터의 해당 구성요소로 신호를
전송하고 명령을 해석하여 실행한다.

메모리 주소 레지스터 (MAR)

CPU가 데이터를 읽거나 쓰려는 메모리 주소를 일시적으로 저장한다.
CPU가 메모리에 일부 데이터를 저장하려고 하거나
메모리에서 데이터를 읽을 때 필요한 메모리 위치의 주소를 MAR에 저장한다.

메모리 버퍼 레지스터 (MBR)

메모리에 읽거나 쓰려는 데이터 또는 명령을 일시적으로 저장한다.
이 레지스터에 배치된 명령은 명령어 레지스터(IR)로 전송되고, 데이터의 내용은 누산기 레지스터(AC) 또는 I/O레지스터로 전송된다.
즉 이 레지스터는 메모리를 읽거나 메모리에 쓰려는 데이터 또는 명령을 저장하는데 사용된다.

프로그램 상태 레지스터 (PSR)

  • CPSR
    Current PSR.
    현재 코어의 내부 동작을 모니터링 하고 제어하는 것에 사용되는 레지스터
  • SPSR
    Saved PSR
    프로세스의 동작모드가 변경될 때 사용된다.
    현재내용을 저장하는 역활을 한다.

레지스터 명령어

명령어 사이클

  1. 명령어를 메모리에서 가져온다.(Fetch)
  2. 명령어를 디코딩한다.(Decoding)
  3. 간접주소 방식의 명령일 경우에 메모리로부터 유호주소를 읽어온다.
  4. 명령어를 실행한다.
  5. 네번째 단계가 끝나면 HALT명령을 만날때 까지 윗 단계를 반복

FETCH와 디코드 단계에 대한 마이크로 연산

T0: AR ← PC
T1: IR ← M[AR], PC ← PC+1
T2: I ← IR(15), D0,,,,D7 ← Decode IR(12~14), AR ← IR(0~11)

• T0 타이밍의 연결 동작
1. 버스입력 선택(S2S1S0)을 010으로 하여 PC내용을 버스에 놓는다
2. AR의 LD입력를 인에이블시켜 BUS의 내용을 AR로 전송한다.
• T1 타이밍의 연결 동작
1. 메모리의 읽기입력(read신호)을 인에이블시킨다.
2. S2S1S0 = 111로 하여 메모리의 내용이 버스에 놓이도록 한다
3. IR의 LD입력를 인에이블시켜 버스의 내용을 IR로 전송한다.
4. PC의 INR 입력를 인에이블시켜 PC의 값을 하나 증가시킨다

명령어 사이클 초기 구성

참고

http://egloos.zum.com/dreamform/v/2805176

profile
풀스택개발자가 될래요

0개의 댓글