728x90

 

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

- 명령어의 기본 모델 : 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해도 문제가 되지 않음

F(etch) D(ecode) E(xecution)

 

 

728x90

+ Recent posts