WSP09

LJM·2023년 7월 14일
0

컴퓨터지식

목록 보기
10/41
post-thumbnail

컴퓨터 구조에 대한 두번째 이야기

컴퓨터 구조의 접근방법

가장 일반적인 형태의 컴퓨터 구조 알기 -> 프로세스와 쓰레드를 이해하는데 도움이됨

레지스터를 디자인하자
결정해야할 중요 요소들
1 몇 비트로 구성할것인가
2 몇개로 구성할것인가
3 각각 무슨 용도로 사용할것인가

16비트로 디자인 해보자
개수는 8개
이름은 R0~R7 이라고 이름 지어보자

R4~R7 은 특수한 목적이 있다

명령어 구조 및 명령어를 디자인하자

CPU에게 일을 시키기 위한 명령어 구조 및 명령어 종류를 디자인하자
레지스터 구성형태에 따라서 명령어 구조가 달라진다

레지스터 크기가 16비트이므로 명령어 길이도 16비트로 구성하자

16비트를 어떻게 활용하면 좋을까?
"레지스터 R1에 있는 값과 숫자 7을 더해서 레지스터 R2에 저장하라"
피연산자 R1과 숫자7, 연산결과 저장을 위한 피연산자 R2가 필요하다
이 모두를 16트에 담아보자
'덧셈', 'R1', 'R2', '7'

연산자에 3비트 할당했으므로 8가지 종류 가능하다
우선 덧셈, 뺄셈, 곱셈, 나눗셈 정의하자


레지스터의 이진 코드는 위와 같다

피연산자를 나타낼때 레지스터인지 숫자인지 구분하기위해 첫번째 비트를 사용한다
0이면 숫자, 1이면 레지스터

위의 16비트를 해석해 보자
덧셈 연산, 결과는 R2에 저장, 피연산자1은 첫 비트가 1이므로 레지스터를 나타내고 R1이다, 피연산자2는 첫 비트가 0이므로 숫자를 의미하며 값은 7이다

피연산자가 표현가능한 숫자가 3비트이므로 8개밖에 표현할 수 없다 지금으로선

어셈블리 언어로 표현해보자
ADD r2, r1, 7


위 그림에서 보면 명령어가 IR(Instruction Register)에 저장되고 있다
IR은 실행할게 될 명령어를 미리 가져다 놓는 용도로 사용된다

명령어의 구성에 따라서 컨트롤 유닛의 논리회로가 디자인된다

CISC(Complex Instruction Set Computer) 명령어 종류가 많다 명령어길이가 유동적
구조가 복잡해진다. 성능향상에 제한이 생긴다.
RISC 명령어 종류를 줄이고 길이도 일정하다. 높은 성능을 낼 수 있다.
클럭당 둘 이상의 명령어처리가능(Pipelining)

profile
게임개발자 백엔드개발자

0개의 댓글