从零开始构建现代计算机--第五章,01-HACK硬件平台规范

概述

PC(程序计数器)芯片的输出端连接到指令内存ROM芯片的地址输入端,使ROM芯片总是输出ROM[PC] (大小为一个word),即“PC所指向的指令内存单元”的值,也就是当前指令。
每个时钟周期内整个计算机的操作可以表示为:

执行(Execute)

当前指令中不同的bit位域被同时送入计算机中不同的芯片。

  • 地址指令(A指令,最高位MSB=0),则A寄存器被置为指令内含的15位常数
  • 计算指令(C指令,最高位MSB=1),则指令中内含的a-位域(指定计算函数)、c-位域(指定计算函数)、d-位域(输出地址)、j-位域成为控制位,导致ALU和寄存器相应执行该指令。

取指令(Fetch)

计算机下一步取哪条指令,取决于当前指令的jump位和ALU的输出。在下一个时钟周期,PC指向的指令在ROM的输出中出现

构建使用的元件

  1. CPU基于ALU
  2. 寄存器和程序计数器基于16位寄存器和16位计数器
  3. ROM和RAM基于16位寄存器
  4. 屏幕和键盘通过内存映像与硬件平台接口,通过有相同接口的内置芯片(如RAM)来实现

中央处理器(Central Processing Unit,CPU)

与两个内存模块相连:

  • 指令内存取指令
  • 数据内存读/写数据

从零开始构建现代计算机--第五章,01-HACK硬件平台规范

指令内存(Instruction Memory)

可直接访问的只读内存设备(ROM, Read-Only-Memory),由32K可寻址的16位寄存器组成。

从零开始构建现代计算机--第五章,01-HACK硬件平台规范

数据内存(Data Memory)

前面实现的相同,用于通用数据的存储和内存映像的实现。
从零开始构建现代计算机--第五章,01-HACK硬件平台规范
n为存储容量,k为寻址所需的位宽。

内存映像

I/O映像介绍

屏幕

准确的映射如下所示:
从零开始构建现代计算机--第五章,01-HACK硬件平台规范

键盘

从零开始构建现代计算机--第五章,01-HACK硬件平台规范
除了通常的ASCII码,KBD芯片还能识别以下的一些键:
从零开始构建现代计算机--第五章,01-HACK硬件平台规范

全局内存(overall memory)

HACK平台的地址空间,也就是整个数据内存,称为Memory芯片,包含RAM(常规的数据内存的指令内存)和屏幕、键盘内存映像:
从零开始构建现代计算机--第五章,01-HACK硬件平台规范

计算机(computer)

HACK硬件阶层顶层是一个单一的computer芯片,作为完整计算机系统的抽象。执行程序前首先要把程序代码预加载到ROM中。
从零开始构建现代计算机--第五章,01-HACK硬件平台规范