프로세서 레지스터
- CPU 내에서 데이터를 저장하는 장치
- 기억장치 중에서 속도가 가장 빠르다.
- 임시보관 (ALU에서 처리된 결과 데이터), 주기억장치에서 읽어온 명령어와 데이터)
레지스터의 용도별 분류
- 데이터 레지스터 : 정수 데이터 값을 저장
- 주소 레지스터 : 기억장치 주소를 저장하여 기억장치 액세스에 사용
- 범용 레지스터 : 데이터와 주소를 모두 저장
- 부동소수점 레지스터 : 부동소수점 데이터 값을 저장
- 상수 레지스터 : 0이나 1등 고정된 데이터 값 저장
- 특수 레지스터 : 실행 중인 프로그램의 상태를 저장. (프로그램 카운터, 상태 레지스터 등)
- 명령 레지스터 : 현재 실행 중인 명령어 저장
- 색인 레지스터 : 피연산자의 주소를 계산 (index)
CPU에 존재하는 레지스터에는 사용자에게 보이는 레지스터와 제어 및 상태 레지스터가 있다.
①사용자에게 보이는 레지스터
- 어셈블리어 프로그래머는 프로그램에서 사용되는 변수 데이터 등을 저장하기 해당 레지스터를 알고 있어야 한다.
- 8086(16비트), 80386 펜티엄 2(32비트)
- 일반 목적용 레지스터 : 프로그래머가 여러 용돌 사용할 수 있고, 연산을 위한 모든 종류의 피연산자를 저장할 수 있는 레지스터
- 데이터 레지스터 : 데이터 저장만 사용. (대표적인 예로 누산기)
- 주소 레지스터 : 특정 주소지정 방식을 위해 사용하는 레지스터
- 세그먼트 포인트 : 세그먼트의 시작 주소 저장
- 인덱스 레지스터 : 인덱스 주소지정
- 스택 포인터 : 스택 저장장치의 최상위 주소 저장
- 조건 코드 : 사용자에게 보이는 레지스터에 저장된 데이터의 상태를 표시
- 부호 비트 : 양수, 음수 표시
- 영(0) 비트 : 해당 데이터가 0이라는 것을 표시
- 오버플로우 비트 : 연산의 결과가 오버플로우가 발생함을 표시
②제어 및 상태 레지스터
- 프로그램 카운터 : 주기억장치에 저장된 다음에 인출할 명령어의 주소를 가지고 있다.
- 명령어 레지스터 : 가장 최근에 주기억장치인 RAM에서 인출한 명령어를 저장
- 기억장치 주소 레지스터 : 기억장치의 주소가 저장. 주소 버스와 연결
- 기억장치 버터 레지스터 : 가장 최근에 읽은 데이터가 저장. 데이터 버스와 연결
- 입출력 주소 레지스터 : 입출력장치의 주소를 저장
- 입출력 버퍼 레지스터 : 입출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장
- 프로그램 상태 단어(PSW) : 데이터의 상태와 조건을 나타내기 위해 추가된 코드 비트
- 부호비트 : 데이터의 부호를 표시한다.
- 영 비트 : 레지스터가 0이라는 것을 표시
- 올림수(carry) 비트 : 자리 올림이 발생했다는 것을 표시
- 동등(equal) 비트 : 비교 대상과 해당 레지스터가 동일한 상태임을 표시
- 오버플로우(overflow) 비트 : 오버플로우 상태를 표시
- 인터럽트 가능/불가능 비트 : 인터럽트 가능 여부를 표시
- 디렉션 비트 : 참일 경우 주소 레지스터 값이 자동으로 감소하고, 거짓일 경우 자동으로 증가
- 트랩 비트 : 참일 경우 한 명령을 실행할 때마다 인터럽트가 발생
- 보조 올림수 : 연산 결과 하위 니블에서 비트 범위를 넘었을 때 참이 된다.
- 패리티(parity) 비트 : 연산 결과에서 1의 값을 갖는 비트의 수가 짝수일 경우
- 슈퍼바이저 비트 : cpu가 슈퍼바이저 모드 혹은 사용자 모드에서 실행 중 인지를 나타내는 비트
728x90
'컴퓨터구조' 카테고리의 다른 글
컴퓨터구조 - 제어장치 (0) | 2019.11.07 |
---|---|
컴퓨터구조 - 스택 저장장치 (0) | 2019.11.07 |
컴퓨터구조 - CPU의 내부 구조(연산장치) (0) | 2019.11.07 |
컴퓨터구조 - CPU와 마이크로프로세서(머신 사이클) (0) | 2019.11.07 |
컴퓨터구조 - 04. 비트, 바이트, 워드 (0) | 2019.09.16 |