(밑바닥부터 만드는 컴퓨팅 시스템 2판, 인사이트(insight), 2023)을 학습하고 개인 학습용으로 정리한 내용입니다.
[Chapter 2]에서 핵 컴퓨터에서 사용할 ALU를 만들었다. 이번에는 핵 컴퓨터에서 사용할 기계어에 대한 설명이다.
핵 컴퓨터는 폰 노이만 구조(von Neumann architecture)로 설계된, 16-bit 컴퓨터이다.
(폰 노이만 구조에 대해서는 Chapter 5에서 살펴본다)
- 메모리
핵 플랫폼은 데이터 메모리(data memory)와 명령어 메모리(instruction memory)라는 두 개의 개별 메모리를 활용한다.
데이터 메모리(RAM)는 프로그램이 조작하는 데이터(2진 값)를 저장한다.
명령어 메모리(ROM)는 프로그램의 명령어들을 저장한다.
두 메모리는 모두 폭이 16-bit이고, 각각 주소 공간은 15-bit이다. 따라서 우리가 사용할 수 있는 메모리 크기는
- 레지스터
핵은 두개의 레지스터를 가지고 있다. 데이터 레지스터(D)와 주소 레지스터(A).
데이터 레지스터(D)의 역할은 16-bit 값을 저장한다.
주소 레지스터(A)의 역할은 RAM 혹은 ROM의 주소를 지정하는데 활용한다. 메모리가 두 개 이지만, 메모리의 주소(위치)를 지정하는 레지스터는 하나이다. 주소 레지스터(A)는 주소 지정 역할 외에도, 다른 역할도 있다. 자세한 사용법은 핵 기계어 문법에서 설명한다.
- 핵 메모리 시스템의 개념적 모델
실제 구조는 약간 다르게 연결되어 있지만, 대략적인 구조는 다음과 같다.
레지스터(A)가 RAM과 ROM 모두에게 연결되어 있음을 눈여겨 봐야 한다.

'밑바닥부터 만드는 컴퓨팅 시스템 (Nand to Tetris)' 카테고리의 다른 글
[Chapter 4] 핵 기계어 명령어 (0) | 2024.02.29 |
---|---|
[Chapter 4] 핵 기계어 문법 (0) | 2024.02.27 |
[Chapter 4] 기계어 (Machine Language) (0) | 2024.02.20 |
[Chapter 3] project 03 (0) | 2024.02.18 |
[Chapter 3] 순차 칩 (Sequential Chip) (0) | 2024.02.15 |