패스트캠퍼스

[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 11회차 미션

돌맹이시터 2020. 10. 29. 21:52

 

 

 

환급미션 11일째

 

 

 

 

 

컴퓨터 구조 - 중앙처리장치 - CPU 내부 구조와 레지스터 -1

컴퓨터 구조 - 중앙처리장치 - CPU 내부 구조와 레지스터 -2

 

 

 

 

CPU 내부 구조와 레지스터들의 유기적 연결에 대해 다룬다.

(레지스터는 이전 강의에서 나왔던 기억회로의 일종인 flip-flop 여러 개가 모인 것이다.)

이들과 관련된 전체적인 layout에 대한 강의였다.

 

 

 

- CPU ( central processing unit )

 

컴퓨터에서 데이터 처리동작을 수행하는 부분을 중앙 처리 장치 ( cpu ) 라고 한다.

CPU는 레지스터 세트(register set), 산술논리장치 (ALU:Arithmetic Logic Unit), 제어장치 (control unit)으로 구성된다.

 

 

 

 

그림에서 보이는 것과 같이

register set : 명령어의 실행을 위한 데이터를 보관한다.

control unit : register set 간의 정보 전송을 감시하고, ALU에게 명령을 내린다.

ALU : 명령어의 실행을 위한 마이크로 연산을 수행한다.

 

(마이크로 연산의 예시...는 아니고 마이크로 연산이라는 것을 이해하기 위해 비유를 해주셨는데,

인간이 운동을 하는 행위에 있어서

심장이 뛰고, 신경계가 작동하고... 등의 행위를 마이크로 연산에 비유하였다.)

 

 

 

 

 

 

 

https://ko.wikipedia.org/wiki/%EB%AA%85%EB%A0%B9_%EC%A3%BC%EA%B8%B0

 

 

cpu의 내부 구조는 위 그림과 같이 표현할 수 있고,

instruction cycle 은 위 도표로 설명한다.

 

 

 

* MAR ( memory adress register )

 

주기억장치 주소 레지스터 혹은 메모리 주소 레지스터라고 부르며, memory 상태를 체크하는 역할을 한다. 라고 설명을 하셨는데

조금 찾아보니 cpu에 불러올 memory 주소값을 저장하고, 메모리를 불러올 때 MAR의 주소 정보를 MDR ( memory data register, =MBR, memory buffer register) 로 불러들이고, 이후에 CPU에 의해 사용된다고 한다. cpu가 MDR에 있는 데이터를 MAR에 저장되어있는 메모리 주소에 작성(?)하기도 한다.

다음에 실행할 명령어에 대한 메모리 주소를 추적하는 역할이다.

 

 

 

* MBR ( memory buffer register = MDR, memory data register )

 

임시저장공간이라고 설명을 하셨다.

MAR에 있는, 지정된 메모리 주소값의 사본을 포함하고 있기도 한다. 작동할 때 processor와 memory unit 간의 사소한 차이에 영향을 받지 않고 독립적으로 실행될 수 있도록 버퍼 역할을 한다. 

산술 데이터의 경우도 MBR으로 처음 저장되고, 여러 레지스터를 거친 후 ALU에서 처리된다.

양방향 레지스터로, 정보가 MBR로 저장되기도 하고, 다른 cpu레지스터에서 MBR로 저장된 정보가 메모리로 가기도 한다.

메모리로부터 페치(fetch)되어 cpu가 처리할 준비가 된 데이터나 메모리에 저장되어 대기 중인 데이터를 보관한다고 한다.

 

 

 

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

 

cpu의 control unit에 해당된다.

OP ( op code, operation code, 명령 코드 ) , OPRD ( operand, 피연산자 ) 영역으로 나누어져 있고

OP-code를 해독함으로 명령을 내리거나, 피연산자(operand)의 메모리 상의 위치를 결정하거나, 메모리에서 operand를 가져오거나, 프로세서 자원을 할당하거나 하는 일들을 수행할 수 있게 된다.

PC ( program counter )가 지정하는 주소에 기억되어 있는 명령어를 해독하기 위해 임시 기억하는 레지스터이며 메모리로부터 페치(fetch)되는 명령어를 일시적으로 보관하는 역할을 한다고 한다.

 

 

 

* 명령어 해독기 ( instruction decoder )

 

IR에 들어있는 명령코드의 해석 ( 각종 명령 코드를 제어 신호화하여 기계 사이클로 전송)을 담당하는 논리회로

 

 

 

* 상태 레지스터 ( SR, status register ) 

 

산술 연산 결과의 상태를 알려주는 플래그 비트들이 모인 레지스터이며, 주로 조건문과 같은 실행 순서의 분기에 사용된다.

cpu의 상태를 나타내는 특수목적의 레지스터로, 연산 결과의 상태, 영 Z (zero), 부호 S (sign), 오버플로우 V (overflow), 캐리 C (carry), 인터럽트 I (interrupt)

 

 

 

* 작업 레지스터 ( WR, working register )

 

처리된 중간값을 기억한다고 설명하셨는데.. 따로 검색은 되지 않는다.

예를 들어 연산 중 캐리비트가 발생하면 캐리비트를 기억한다던지 하는 역할을 한다고 한다.

산술논리연산을 실행할 수 있도록 자료를 저장하고, 그 결과를 저장한다고 한다.

( GPR과의 차이점은 ALU에 연결되어있는지 여부 )

 

 

 

* 범용 레지스터 ( GPR, general purpose register )

 

일반적으로 활용되는 레지스터들을 통칭하는 말인 듯..?

작업 레지스터에서 데이터가 용이하게 처리되도록 임시로 자료를 저장한다.

 

 

 

* 프로그램 계수기 ( PC, program counter )

 

레지스터 중 하나. 다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정한다.

명령 주기에 따라 자동으로 1씩 증가하게 되고, 메모리의 명령어들이 순차적으로 실행될 수 있도록 한다.

IC ( instruction counter ), LC ( location counter ) 라고 부르기도 한다.

 

 

 

 

 

 

 

 

 

 

 

 

올인원 패키지 : 컴퓨터 공학 전공 필수👉https://bit.ly/3i4sCVE