본문 바로가기

[Chapter 4] 핵 기계어

 

(밑바닥부터 만드는 컴퓨팅 시스템 2판, 인사이트(insight), 2023)을 학습하고 개인 학습용으로 정리한 내용입니다.

 

 

 

 

 

[Chapter 2]에서 핵 컴퓨터에서 사용할 ALU를 만들었다. 이번에는 핵 컴퓨터에서 사용할 기계어에 대한 설명이다.

핵 컴퓨터는 폰 노이만 구조(von Neumann architecture)로 설계된, 16-bit 컴퓨터이다.

(폰 노이만 구조에 대해서는 Chapter 5에서 살펴본다)

 

  • 메모리

핵 플랫폼은 데이터 메모리(data memory)와 명령어 메모리(instruction memory)라는 두 개의 개별 메모리를 활용한다.

데이터 메모리(RAM)는 프로그램이 조작하는 데이터(2진 값)를 저장한다.

명령어 메모리(ROM)는 프로그램의 명령어들을 저장한다.

두 메모리는 모두 폭이 16-bit이고, 각각 주소 공간은 15-bit이다. 따라서 우리가 사용할 수 있는 메모리 크기는 215=32768이다.

 

  • 레지스터

핵은 두개의 레지스터를 가지고 있다. 데이터 레지스터(D)와 주소 레지스터(A).

데이터 레지스터(D)의 역할은 16-bit 값을 저장한다.

주소 레지스터(A)의 역할은 RAM 혹은 ROM의 주소를 지정하는데 활용한다. 메모리가 두 개 이지만, 메모리의 주소(위치)를 지정하는 레지스터는 하나이다. 주소 레지스터(A)는 주소 지정 역할 외에도, 다른 역할도 있다. 자세한 사용법은 핵 기계어 문법에서 설명한다.

 

  • 핵 메모리 시스템의 개념적 모델

실제 구조는 약간 다르게 연결되어 있지만, 대략적인 구조는 다음과 같다.

레지스터(A)가 RAM과 ROM 모두에게 연결되어 있음을 눈여겨 봐야 한다.