본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터 구조] 중앙처리장치

이 글은 www.youtube.com/watch?v=y0ZqhmmWRks&list=PLc8fQ-m7b1hD4jqccMlfQpWgDVdalXFbH&index=34 보고 공부한 글 입니다.

 

중앙처리장치

 

CPU 주요 요소

기억장치

레지스터 집합
데이터 임시 저장 장소

 

제어장치

CPU 명령어 처리 회로의 집합
논리 게이트와 요소들로 구성
명령어에 따라서 연산 제어 수행

 

연산장치

ALU
산술연산, 논리연산 및 시프트 연산 수행

 

 

 

범용 레지스터 구조

ALU와 레지스터 집합 관계는? 어떤 레지스터에서 데이터를 가져와서ALU에서 계산한 다음 어떤 레지스터로 보낼 것을 정하는 것

 

7개의 레지스터와 외부 Input이 있다.


ALU
2개의 데이터를 받는다. 2개의 데이터는 8개의 입력인 MUX에서 나온다.

 

몇 번 레지스터에서 가져올 것이냐? Select AB를 결정하는 것

 

어떤 연산을 할 것인가? OPR로 결정한다.

 

결과는 어떤 레지스터로 갈 것이냐? 3x8디코더를 이용해서 load한다.(Select D)

 

 

 

ALU 제어를 위한 제어 워드

R2A bus에 가져가야 한다. SEL AMUX에서 010이 되야 한다.
R3
B bus에 가져가야 한다. SEL BMUX에서 011이 되야 한다.
정해진 OPR코드가 있다.
SELD
에서3x8디코더의 값은 R1로 넣어야 하니 001이 된다.

 

공용 ALU를 가진 레지스터 집합

7개의 범용 레지스터
3x8
디코더1
8x1 MUX 2

ALU

 

레지스터와 연산 인코딩

000selAinput selBinput selDNone을 할당했다.

 

 

OPR 부분에 쓰이는 코드이다. 위에 쓰인 코드대로 ALU가 작동한다.

00000Transfer라고 하는데 들어온 것이 그대로 나간다는 것이다.

 

 

 

마이크로 연산의 예

R1 <- R2 – R3

R2선택 – 010
R3
선택 – 011
ALU
출력선택 – 011
ALU
연산선택 – 00101

 

결과를 0으로 clear시키고 싶다면 ALU연산을 통해 같은 값을 XOR하면 된다.

 

 

728x90