본문 바로가기
Computer Science/컴퓨터 구조

[컴퓨터 구조] 레지스터 전송

by 히욤 2021. 6. 25.

디지털 컴퓨터에서에서 레지스터는 잠깐 데이터를 저장하고 명령을 실행할 수 있게 도와준다.

이는 메모리와는 다르다. 메모리는 방대한 양의 데이터를 저장하는 곳으로, 접근하는데 속도가 느리다.

쉽게말하면 책상에 앉아 공부할때 레지스터는 잠깐 정보를 적어놓는 메모지 같은 것이고

책장에 꽂혀있는 책들은 메모리라고 비유할 수 있겠다.

그렇다면 레지스터에 데이터를 담는 과정은 어떻게 수행될까?

레지스터1에 담겨있는 데이터를 레지스터2에 전송하는 과정은 다음과 같이 나타낸다.

R2 <- R1

만약 어떤 조건 P일때 위와 같은 전송이 이뤄졌으면 좋겠다면, 다음과 같이 표현한다.

이때 P 자리는 제어함수라고 말한다.

P : R2 <- R1

조건 P=1 이라면 위와 같은 전송이 이뤄지고, P=0이라면 전송이 수행되지 않는다.

보통 조건 P 자리에는 어떤 시간 T을 많이 쓴다.

시간 T에서 위와같은 레지스터 전송이 수행하라는 식으로 작성한다.

P = 1 일때 R1으로부터 R2로의 전송은 위와 같은 그림으로 설명될 수 있다.

그림(a) 에서 control circuit은 조건 P를 생성하는 블럭이다. 그냥 그렇구나 하고 넘기면 된다.

중요한건 레지스터 R2에 LOAD 신호로 P가 들어간다는 것이다.

여기서 LOAD는 레지스터에 데이터를 올리라는 신호이다.

LOAD=1이면 레지스터에 데이터가 올라간다.

즉 P = 1이면 LOAD신호가 1이 되므로 레지스터에 데이터가 올라가게 된다.

또한 R2는 클럭신호 CLK에 의해 작동되므로, 클럭의 상승 엣지에서 LOAD동작이 수행될 것이다.

R1과 R2를 잇는 화살표에 n은 전송되는 데이터의 비트수를 의미한다.

그림(b) 타이밍도를 보면 클럭이 t 시간때 상승 엣지이고, 그때 P=1이 된다.

하지만 실제로 R1에서 R2로 데이터가 전송되는 것은 시간 t+1 이다.

LOAD에 신호가 들어온 다음에 다시 클럭 신호가 상승엣지, 즉 t+1일 때 데이터를 레지스터에 올리게 된다.