본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터구조] 기본 컴퓨터 레지스터

이 글을 www.youtube.com/watch?v=m5Yw8TdBnmQ 보고 공부한 글입니다.

 

 

 

 

PC(program count), AR – 12비트로 되어있다. 메인 메모리를 주소를 지정하는 역할이기 때문에

IR(instruction register) – 명령어 레지스터

 

8비트
INPR
OUTR
외부장치로 데이터를 주고받는 역할 레지스터

 

버스 

레지스터와 레지스터와 정보를 주고받을 수 있는 길 

-내부버스 – cpu 내부 레지스터간 연간

-외부버스 - cpu 내부 레지스터 <–> 메인 메모리간 연결

-입출력 버스 – cpu <- -> 주변장치 (I/O) 연결

-공통 버스 시스템 -내부버스를 통칭

-내부 버스의 크기(width)cpu 워드 크기 결정(한꺼번에 몇bit를 전달할 수 있느냐?)
16bit
컴퓨터 내부 버스/ 레지스터 크기가 16bit
32bit
컴퓨터 내부 버스/ 레지스터 크기가 32bit

 

--전송 연결 통로
레지스터 레지스터 데이터 전송 통로
레지스터 메모리 데이터 전송 통로(예외적 표현)
한 순간에는 하나의 전송 신호만이 버스에 전재 가능
 -2
개 이상의 신호 발생시에는 버스충돌(발생)
 -
버스 제어기(정확한 타이밍과 mux 제어 수행)

 

 

버스 제어기

메인 메모리와 연결된 버스는 외부 버스이다.
공통 버스에 데이터를 전송하고 받는다.
한 레지스터가 데이터를 보내면 버스에는 그 데이터만 존재해야 한다. 어떤 데이터가 다른 레지스터로 들어갈 때까지 데이터가 못 나간다.

그러면 버스통로가 막히지 않을까? 버스로 이동이 빠르기 때문에 걱정 안해도 된다.

 

 

 

 

 

사실 레지스터들은 버스에 멀티플렉서의 입력이다. 8x1멀티플렉서이다.
버스 컨트롤러로 어떤 레지스터에서 데이터가 나갈지 지정한다.

 

버스로 데이터를 내보내는건 모든 레지스터에 다 들어간다. load1이된 레지스터만 데이터를 받는다.
레지스터는 병렬로드 가능한 양뱡항 시프트 레지스터이기 때문에

 

AR <- PCpc에서 AR로 가는 것인데 PC가 열라면 버스 컨트롤러에 010을 줘서 데이터를 버스에 받는다.
AR
load값이 1이면 AR이 값을 받는다.

 

 

 

기본 컴퓨터 명령어 종류

MRI 명령 7가지 메모리를 참조하는 명령(메인메모리를 반드시 접근)
RRI
명령 12가지 레지스터를 참조하는 명령(레지스터 레지스터 사이에)
IO
명령 6가지 - io장치에 접근하는 명령

 

 

 

명령어 포맷

AND 명령 – AC와 주소가 가리키고 있는 값을 and한 결과를 다시 AC에 보내라
ADD
명령 -  AC와 주소가 가리키고 있는 값을 한 결과를 다시 AC에 보내라
LDA
명령 메모리에 있는 값을 AD에 넣어라
STA
명령 – AC에 있는 데이터를 메인메모리에 저장
BUN
명령 무조건 분기해라, 지정된 번지로 점프해라
BSA
명령 점프하고 다시 돌아올 때return address를 저장해라
ISZ
명령 값을 증가시켜라 값이 0이면 스킵

ex) i=0(직접주소)이고 0 xxx(주소) 이면 AND명령 수행

    i=1(간접주소)이고 8 xxx(주소) 이면 AND명령 수행

 

 

RRI명령은 0111부터 시작한다. MRI명령이7를 안넣은 이유이다.
12
개 비트가 주소가 들어가는 것이 아니라 명령의 종류가 들어간다.
7800 -> 0111/ 1000/ 0000 /0000
으로 CLA가 표현된 것이다.

728x90