: 가상의 컴퓨터를 만들어서 이를 이해하는 방식으로 진행된다.

1. 컴퓨터 구조의 접근방법

: 컴퓨터 구조에 대한 근본적인 이해는, 이후 공부하게될 프로세스와 쓰레드를 이해하는데 큰 도움이 된다.


* 컴퓨터를 디자인하자

: CPU를 디자인해보자

: ALU와 Control Unit은 이미 있다고 가정하고 Register Set만을 대상으로 디자인해보자.

: 시스템 프로그래머 입장에서는 CPU를 보는 관점이 대부분 Register에 집중되기 때문이다.

* 레지스터를 디자인하자

: 중요요소

1. 레지스터를 몇 비트로 구성할 것인가?              

2. 몇 개 정도로 레지스터를 구성할 것인가?

3. 레지스터 각각을 무슨 용도로 사용할 것인가?


- 1. 16bit로 구성 (64bit는 불편)

- 2. 8개로 제한 (이름은 r0 ~ r7로 한다)

- 3. 그림참고

 : 위 레지스터 구조는 ARM코어를 참조하였다. 다른 CPU보다 하드웨어 구성과 명령어 구조가 간단하기 때문인데, 이런 이유로 전력소비가 작아 핸드폰에 많이 사용된다.

: ir 은 다음번에 실행하게 될 명령어를 미리 가져다 놓는 용도로 사용된다.


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

: CPU 구성형태(register 구성형태)에 따라서 명령어 구조가 달라진다.

: 레지스터 길이가 16bit이므로 명령어 길이도 16bit로 정하자.

: 16bit모두를 명령어로 쓴다면, 총 65536 종류의 명령이 가능하겠지만, 비효율 적이므로 16bit의 부분부분을 나누어 다양한 용도로 사용한다면 더 효율적인 프로그래밍이 가능할 것이다.

- 연산자 : 8종류 면 충분하다

- 저장소 : 레지스터가 8개 이므로 3bit가 적절하다

- 피연산자1,2 : 임의로 결정했다. (피연산자가 나타내는 것이 숫자인지, register 주소값인지 모르므로, 왼쪽 첫 bit에 따라 의미를 달리 두자.)

- 예약 : 나중에 어떻게 사용할지 모르니, 예비로 두었다.

: 이처럼 명령어의 형태에 따라서 Control Unit의 논리회로가 결정되어진다.

: 실제 상에서는 명령어의 형태에 일정 부분 제약을 두기도 한다.

: 모든 피연산자에는 메인 메모리의 주소값이 올 수 없다. (숫자와 레지스터만 가능)

: CPU의 종합적인 측면(성능, 비용...)이 고려되는 가운데서 제약사항이 정해진다.


* RISC vs SISC

: CISC(Complex Instruction Set Computer)

: 복잡한 명령어 체계를 가지는 컴퓨터

: 인털도 16bit CPU까지는 이와 같은 구조를 가지고 있엇다

: 명령어수가 수백개일 정도로 많고, 그 크기가 일정치 않아 복잡하다

: 이는 성능향상에 제한을 두는 부정적인 영향을 끼친다.

: RISC

: CISC구조에서 CPU가 실제로 사용하는 명령어가 10%도 안된다는 것에 착안해서 만들어진 구조이다.

: 명령어를 대폭 줄이고 명령어 길이를 일정하게 디자인하였다

: 인텔뿐만아니라 임베디드 CPU의 대부분이 이 구조를 취한다.

: 명령어 길이가 일정하여 클럭당 2개 이상의 명령어도 처리할 수 있다.(Pipelining 기법)  - 가장 큰 장점!!


2. LOAD & STORE 명령어 디자인

: LOAD와 STORE의 기능과 관련된 명령어 디자인을 해보자

* LOAD & STORE 명령어의 필요성

: 메인 메모리에 존재하는 데이터를 레지스터로 이동하여 처리하고 반환해야한다.


3. Direct 모드와 Indirect 모드

* Direct  모드의 문제점과 Indirect 모드의 제안

: 하나의 명령어에 여러 정보를 담다 보니 표현하는 데이터 크기에 제한이 따른다는 문제점이 발생하였다.

: 여태까지 source 부분이 메모리 주소값을 직접 나타내었는데 여기서 사용할 수 있는 주소의 길이제한이 발생한다.

: 이를 Direct모드라고 부르는 메모리 접근방법의 한계이다.

: 이를 극복하기 위해 Indirect모드가 나타났다.

* Indirect 모드의 이해

: 해당 레지스터에 저장된 주소값을 참조해서 값을 읽어오는 것.


뇌를 자극하는 윈도우즈 시스템 프로그래밍
국내도서
저자 : 윤성우
출판 : 한빛미디어 2007.03.30
상세보기




+ Recent posts