컴퓨터 구조
프로그래머 관점
-컴퓨터 구조를 잘 아는 프로그래머도 컴퓨터 디자인에 참여
-컴퓨터 디자인은 레지스터와 명령어 디자인
레지스터 디자인의 핵심
- 레지스터는 몇 비트로 구성할 것인가?
일반적으로 N비트 시스템이라면 레지스터도 N비트다.
예) 32비트 시스템 = 레지스터 32비트
32비트 시스템에서 데이터의 최소 단위가 32비트이다.
그래서 레지스터도 데이터를 동일하게 32비트로 담는다.
예제에서는 16비트로 구성한다.
- 몇 개 정도로 레지스터를 구성할 것인가?
많으면 많을 수록 좋다. 하지만 예제에서는 8개로 구성한다.
-레지스터 각각을 무슨 용도로 사용할 것인가?
레지스터는 특별한 목적을 가지고 있는 저장장치다.
이처럼 목적과 용도를 정해 두면, 명령어가 단순해지고, 속도도 빨라진다.
예)
범용레지스터 (연산을 위한 레지스터) r1~ r3
특별한 목적을 위한 레지스터 r4 ~ r7
명령어 구조 및 명령어 디자인
16비트 시스템
예) 16비트 시스템에서는 레지스터도 16비트이고, 명령어도 16비트로 구성된다.
사칙연산 명령어 구성(달라질 수 있음)
예약 2비트
명령어(연산자) 담기위해서 3비트
저장소(레지스터) 담기위해서 3비트
숫자를 담기위한 피연산자(레지스터 값도 들어갈 수 있음) 4비트
숫자를 담기위한 피연산자(레지스터 값도 들어갈 수 있음) 4비트
참고 : 위의 조합은 명령어에 따라서 조합이 달라질 수 있다.
피연산자 1, 2에는 숫자도 올 수 있고, 레지스터도 올 수 있다. 그렇다면 만약 0001 이라는 값이 담기면
숫자 1인지, 레지스터값의 r1인지는 어떻게 알까?
4비트중에서 제일 첫 비트에 0 또는 1을 넣어줘서 숫자인지 레지스터인지 판별한다.
그럼 3비트 남는데 3비트에는 숫자 0 부터 7까지 만 담을 수 있다.
100+ 100은 어떻게 연산 할 수 있을까?
참고: 시스크 cpu
명령어 하나당 총 3클럭이 발생한다.
패치 1 클럭
디코더 1 클럭
실행 1 클럭
만약 명령어가 5개면 15클럭이 발생한다.
리스크 cpu 는 명령어 수 + 2 = 7 클럭
참고
뇌를 자극하는 윈도우즈 시스템 프로그래밍 정리 - 한빛출판네트워크
'컴퓨터 기초 > 운영체제 이론' 카테고리의 다른 글
7.Direct 모드와 Indirect 모드 (0) | 2021.01.19 |
---|---|
6.Load * Store 명령어 디자인 (0) | 2021.01.18 |
4.Win32비트 Vs Win64비트 (0) | 2021.01.18 |
3.아스키 코드 & 유니코드 (0) | 2021.01.18 |
2.프로그램 실행과정 (0) | 2021.01.18 |