이 글은 www.youtube.com/watch?v=y0ZqhmmWRks&list=PLc8fQ-m7b1hD4jqccMlfQpWgDVdalXFbH&index=34 보고 공부한 글 입니다.
중앙처리장치
CPU 주요 요소
기억장치
데이터 임시 저장 장소
제어장치
CPU 명령어 처리 회로의 집합
논리 게이트와 요소들로 구성
명령어에 따라서 연산 제어 수행
연산장치
ALU
산술연산, 논리연산 및 시프트 연산 수행
범용 레지스터 구조
ALU와 레지스터 집합 관계는? 어떤 레지스터에서 데이터를 가져와서ALU에서 계산한 다음 어떤 레지스터로 보낼 것을 정하는 것
7개의 레지스터와 외부 Input이 있다.
ALU는 2개의 데이터를 받는다. 2개의 데이터는 8개의 입력인 MUX에서 나온다.
몇 번 레지스터에서 가져올 것이냐? Select A와B를 결정하는 것
어떤 연산을 할 것인가? OPR로 결정한다.
결과는 어떤 레지스터로 갈 것이냐? 3x8디코더를 이용해서 load한다.(Select D)
ALU 제어를 위한 제어 워드
R2를A bus에 가져가야 한다. SEL A가 MUX에서 010이 되야 한다.
R3를B bus에 가져가야 한다. SEL B가 MUX에서 011이 되야 한다.
정해진 OPR코드가 있다.
SELD에서3x8디코더의 값은 R1로 넣어야 하니 001이 된다.
공용 ALU를 가진 레지스터 집합
3x8디코더1개
8x1 MUX 2개
ALU
레지스터와 연산 인코딩
000은selA에 input selB에input selD에None을 할당했다.
OPR 부분에 쓰이는 코드이다. 위에 쓰인 코드대로 ALU가 작동한다.
00000은 Transfer라고 하는데 들어온 것이 그대로 나간다는 것이다.
마이크로 연산의 예
R1 <- R2 – R3
R2선택 – 010
R3선택 – 011
ALU출력선택 – 011
ALU연산선택 – 00101
결과를 0으로 clear시키고 싶다면 ALU연산을 통해 같은 값을 XOR하면 된다.
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] 명령어 형식 (0) | 2021.02.02 |
---|---|
[컴퓨터 구조] 스택 구조 (0) | 2021.02.01 |
[컴퓨터 구조] 이진 마이크로 프로그램 (0) | 2021.01.30 |
[컴퓨터 구조] 마이크로프로그램 예 (0) | 2021.01.29 |
[컴퓨터 구조] 마이크로 프로그램 (0) | 2021.01.28 |