要想彻底掌握计算机的工作原理,最好的方法就是自己搜集零件,试着组装一台微型计算机。
制作微型计算机所必需的元件
所需的基础元件有三个,CPU、内存和I/O,都是作为一块独立的IC在市场上出售。CPU是计算机大脑,负责解释、执行程序;内存负责存储程序和数据;I/O是负责将计算机和外部设备连接在一起的。
还需要若干辅助元件:
驱动CPU运转的电信号(时钟信号)元件 -- 时钟发生器,带有晶振,根据其自身的频率(振动的次数)产生时钟信号。时钟信号的频率可以衡量CPU的运转速度。
用于输入程序的装置 -- 指拨开关,是一种由8个开关关排连接在一起构成的元件。输出程序执行结果的装置是8个LED(发光二极管)。
电阻用于阻碍电流流动、降低电压值的元件。开关式稳压式电源装置,220v交流电压变成5v的直流电。
连接电源、数据和地址总线
计算机以CPU为中心运转。CPU可以与内存或I/O进行数据输入和输出。为了指定输入输出数据时的源头或目的地,CPU上备有地址总线引脚。Z80 CPU的地址总线引脚共有16个,用代码A0~A15表示。
一旦指定了存取数据的地址,就可以使用数据总线引脚进行数据的输入输出了。Z80 CPU的数据总线引脚共有8个,用代号D0~D7表示。
连接I/O
寄存器是位于CPU和I/O的数据存储器,Z80 PIO上共用4个寄存器,2个用于设定PIO本身的功能,2个用于存储与外部设备进行输入输出的数据。
连接时钟信号
计算机的原型 -- 分析机,分析机是由齿轮组成,想象一个跟随着滴答滴答响的时钟(话钟老钟为什么会嘀嗒嘀嗒响?),分析机改成用电子元件就是今天的计算机。
连接用于区分读写对象是内存还是I/O引脚
I/O仅仅用到了地址总线的两个引脚A0和A1,不过也同时连接到了内存,那怎么知道是访问的是哪个呢?Z80 CPU上的MERQ(内存请求)引脚和 IORQ(I/O请求)引脚解决了这个问题。
连接剩余的控制引脚
CPU、内存、I/O中不但有地址总线引脚、数据总线引脚,还有其他引脚,通常把这些引脚统称为控制引脚。这些引脚上输入输出的信号具有控制IC的功能。
例如发出中断请求的引脚,中断CPU正在执行的程序的处理流程。
BUSRQ 引脚,当值为0时,CPU就从电路中隔离,就可以不通过CPU,手动地向内存写入程序。这种不经过CPU而直接从外部设备读写内存的行为就叫做DMA(直接存储器访问)。
连接外部设备,通过DMA输入程序
这次是将主计算机主机系统和外部设备连接起来。通过使用2个指拨开关和1个按键开关,向地址总线引脚和数据总线引脚发送电信号,然后通过DMA将数据总线上的数据存储到内存中。
连接用于输入输出的外部设备
当微型计算机运行起来后,指拨开关可用于从外部输入数据,LED可用于向外部输出数据。
虽然这个东西现在感觉有点过时了, 不过不管怎么说,对计算机的理解程度的深浅还是和有没有制作过微型计算机有很大关系的。