[CS 스터디/컴퓨터시스템구조] 컴퓨터 레지스터
1. 기본 컴퓨터의 레지스터
기본 컴퓨터란?
- DEC PDP-11 Mini Computer
- 가상의 컴퓨터가 아닌 실제 제품 (80년대에 주름 잡던 제품)
- 최신의 CPU도 기본적으로 동일한 구조를 가짐
기본 컴퓨터 레지스터 종류
Register Symbol | 비트 | 레지스터 이름 | 기능 |
DR | 16 | Data Register | 데이터 레지스터 |
AR | 12 | Address Register | 메모리 주소를 지정하는 레지스터 |
AC | 16 | Accumulator | 프로세서 레지스터 |
IR | 16 | Instruction Register | 명령어 레지스터 |
PC | 12 | Program Counter | 명령어 주소를 지정하는 레지스터 |
TR | 16 | Temporary Register | 임시 데이터 저장 |
INPR | 8 | Input Register | 주변장치로부터 데이터를 받을 때 사용 |
OUTR | 8 | OutPut Register | 주변장치로 데이터를 줄 때 사용 |
2. 버스 시스템의 종류
데이터를 레지스터와 레지스터 사이에서 주고 받게 할 수 있는 길을 버스 라고 한다.
버스의 종류는 크게 3가지가 있다.
- 내부 버스 - CPU 내부 레지스터간 연결
- 외부 버스 - CPU 내부 레지스터 <-> 메모리간 연결
- 입출력 버스 - CPU <-> 주변장치(I/O) 연결
3. 공통 버스 시스템
공통 버스 시스템이라 함은 내부 버스를 통칭한다.
이때, 내부 버스의 크기(Width)로 CPU 워드 크기가 결정된다.
- 16bit 컴퓨터 -> 내부 버스 / 레지스터 크기가 16bit
- 32bit 컴퓨터 -> 내부 버스 / 레지스터 크기가 32bit
기본적으로 CPU 워드가 몇비트인지 나타내는 것은 한꺼번에 내부에서 버스로 보낼 수 있는 비트 수가 몇비트인지에 따라 결정된다.
공통 버스 시스템은 다시 말하면 전송 연결 통로이다.
레지스터와 레지스터 사이에 데이터를 전송하는 통로이자 레지스터와 메모리 사이에 데이터를 전송하는 통로이다.
이때 한 순간에는 하나의 전송 신호만이 버스에 존재할 수 있다.
만약 2개 이상의 신호가 발생하면 버스충돌(Collision)이 발생한다.
이러한 충돌이 발생하지 않으려면 데이터를 정확한 레지스터로 보낼 수 있게하는 제어기가 필요하다. 이것을 우리는 버스 제어기라 한다.
버스 제어기는 정확한 타이밍과 MUX 제어를 수행한다.
공통 버스 시스템은 MUX 입력과 로드입력(LD)으로 데이터를 송수신할 수 있게 된다.
위 그림을 보면 공통 버스가 레지스터들을 크게 둘러 싸고있다. 이때 각 레지스터들은 공통 버스로 데이터를 전송하고, 데이터를 로드한다.
만약 어느 한 순간에 한 레지스터에서 데이터가 튀어나오게 된다면, 그 순간에는 오직 그 데이터만이 버스에 존재해야 한다. 버스에 존재하는 데이터를 필요로 하는 레지스터에 도달할 때까지 다른 레지스터는 버스로 데이터를 보내면 안 된다.
버스에는 MUX 입력(Multiplex Input)이 존재한다. 위 그림의 우측에 존재하는 번호가 MUX Input이다.
레지스터 출력은 버스의 MUX 입력에 연결되며, 각 레지스터에 MUX 입력번호로 설정된다.
S2, S1, S0에 의하여 레지스터 출력이 결정된다. 예를 들어, MUX의 S0 S1 S2 가 1 0 0 이면 4번, 즉 AC에서 오는 데이터만을 받는 것이다. 그 후 출력을 내보내 주고 버스로 나간다.
레지스터 입력은 LD(로드 입력)가 1인 레지스터로 들어가게 된다.
이런 식으로 버스를 통해서 데이터가 보내지고 데이터를 받는 동작을 우리가 구현할 수 있게 된다.