명령어 구조 및 명령어 디자인
- 명령어의 기본 모델 : 16비트 명령어
-> 레지스터를 16비트로 구성하려고 함(예시용)
- 명령어의 구성(사칙연산)
-> 예약 공간
-> 연산자 : 연산의 종류
-> 저장소 : 연산의 결과를 저장할 공간. 레지스터
->피연산자 1, 2 : 연산에 사용될 피연산자. 레지스터 혹은 숫자(피연산자가 표현할 수 있는 숫자의 범위 안)
-> 레지스터와 숫자를 구분하기 위해서는 제한을 두어야 함
* ex) 4비트 중 0으로 시작하면 숫자, 1로 시작하면 레지스터
- 명령어에 따라 구조가 바뀔 수 있음
- Fetch, Decode, Execution 과정에서 명령어 안에는 아래처럼 피연산자의 정보도 같이 담겨있음
- 명령어의 구성 및 설계도 프로그래머가 참여함
-> 명령어가 어떤 일을 해야 하는지 구분해주는 ALU를 디자인하기 전에 명령어를 디자인해야 함
-> 명령어가 어떻게 나눠져 있는지에 대해 알아야 ALU가 구분해서 해석할 수 있음
RISC / CISC
- Reduced Instruction Set Computer / Complex Instruction Set Computer
- CISC의 장점
-> 명령어가 복잡해 다양한 형태로 명령어를 조합할 수 있음
-> 명령어 조합이 다양해 프로그래밍하기 편함
- RISC의 장점
-> 복잡한 명령어를 줄여서 간소화함
-> 고성능의 CPU에 적합
* Fetch, Decode, Execution 마다 1 클럭 소모가 되기 때문에 명령어 1개가 실행되려면 3 클럭이 소모됨
* Fetch, Decode, Execution의 로직이 별도이기 때문에 동시에 실행돼도 문제가 되지 않음
* 아래처럼 Decode 중 다른 명령어를 Fetch해도 문제가 되지 않음
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(4) (0) | 2020.07.12 |
---|---|
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(3) (0) | 2020.07.12 |
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(1) (0) | 2020.07.09 |
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(2) (0) | 2020.07.08 |
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(1) (0) | 2020.07.08 |