본문 바로가기

Programing/정보처리기사

(정보처리기사) 레지스터

PC <--- 프로그램 카운터 입니다. 다음 명령어의 주소를 가지고 있습니다.

 

MAR <--- 메모리 어드레스 레지스터 인데 한마디로 PC가 MAR한테 다음 명령어의 주소를 넘겨주는데 MAR은 그 주소번지를 찾아가서 그 주소번지에 있는 명령어를 가져와 MBR 에게 넘겨줍니다.

 

MBR이란 메모리 버퍼 레지스터인데 MAR이 준명령어를 가지고 있다가

만약 MBR에 ADD(108,109) 가 들어 왔다면 ADD라는 명령어를 IR로 넘겨줍니다.

 

IR은 인스트럭션 레지스터인데  MBR에서 준 명령어를 가지고 있다가 Decoder한테 이 명령어는 뭐냐? 하고 물어봅니다 그럼 Decoder는 그 명령어를 해석해서 제어장치에 이건 덧셈이다! 라고 말해주면 제어장치에서는 연산장치한테

MBR에 있는 108,109 번지의 값을 더하라고 명령합니다. 그리고 그 이전에

MBR은 ADD를 IR에 넘겨주고 108번지를 다시 MAR한테 넘겨줘서 MAR이 108번지 값을 가져오면 다시 MBR에 그 값을 가지고 있고 다시 MAR한테 109번지를 넘겨주면 MAR이 다시 MBR에게 109번지 값을 전달해서 MBR은 109번지와 108번지의 값을 가지고 있게 됩니다. 이때 연산장치에 의해서 연산을 수행하게 됩니다. 그리고 연산 결과는 AC(누산기) 에 저장되게 됩니다.

 

막 적다보니 정리가 안되네요 ㅎㅎ 다음에 더 똑바로 정리하도록 하겠습니다~

 

아참 그리고 MAR이 명령어를 가지고 왔는데 분기 명령어를 만날때가 있습니다. 예를 들면 PC가 100번지 값을 가리키고 있었는데 MAR이 그값을 가져왔더니 명령어가 Jump 105번지 해라 라고 있으면 PC값을 당연히 다음 번지인 106번지를 가리키게 됩니다! ^^

'Programing > 정보처리기사' 카테고리의 다른 글

결선 게이트 (Wired Gate)  (0) 2014.07.24
(정보처리기사) 명령어  (0) 2014.07.21
(정보처리기사) 코드의 분류  (0) 2014.07.21
fan-in  (0) 2014.07.21
운영체제 HRN 알고리즘 공식  (0) 2014.07.21