信笺下面,是厚厚一本《精简指令集体系结构与编码表》,A4纸,钢笔手写,每一页都画着表格,工工整整。
吕辰翻开第一页,是一张总表。
工业计算机精简指令集(RISC-IC-1.0)
指令条数48条。
指令字长16位。
操作码8位(支持256种,当前使用48种,预留208种)。
寻址方式,立即寻址、直接寻址、寄存器寻址、寄存器间接寻址。
通用寄存器8个(R0-R7),每个16位。
8级中断,硬件自动压栈。
八大类,每类下列了具体指令。
吕辰一页一页地翻,理论组非常用心。
每一条指令的编码、操作数、执行周期、影响的状态位,都写得清清楚楚。
有些指令还附了使用示例,旁边用红笔标注了典型应用场景,一看就是从1867个基本操作里提炼出来的。
他合上本子,立即召集人。
不到一刻钟,钱兰、诸葛彪、曾祺都到了。
几个人围坐在吕辰办公室的桌前,传阅那份《精简指令集体系结构与编码表》。
钱兰看得最仔细,每一页都要看两三分钟,偶尔在笔记本上记几笔。
诸葛彪叼着烟,眯着眼睛翻,翻到中间一页停了下来。
“48条指令,8位操作码,预留了208种扩展空间。许教授这是给咱们留了后路。”
吕辰点了点头:“不止。你看寻址方式,寄存器间接寻址都有了。这是正经的计算机指令集,不是凑合出来的。”
诸葛彪翻到最后一页,是那张《仿真器使用说明》。
“许教授已经把仿真器写好了,在午马机上编译就能跑。测试向量也附了,涵盖了我们那73类通用逻辑里的典型操作。”
曾祺靠在椅背上,手指在桌面上轻轻敲着:“不用等了,上机跑吧。”
来到星河CAD系统机房,吴国华等人和计算机所、6305厂、理论组的工程师正在给系统升级。
听说要上机跑工业计算机的精简指令集。
吴国华自告奋勇,来到中央存储柜旁边的管理员终端前。
他把那张《仿真器使用说明》摊在桌上,左手翻着,右手在键盘上敲。
吕辰、钱兰、诸葛彪、曾祺站在他身后,盯着屏幕。
屏幕上,绿色的提示符在跳动。
吴国华敲了一行命令:
DB> LOAD SIMULATOR FROM TAPE
磁带机嗡嗡地转了几秒,屏幕上跳出一行字:
SIMULATOR LOADED. 48 INSTRUCTIONS DEFINED. READY.
吴国华又敲了一行:
DB> RUN TEST_VECTOR_1
屏幕上开始跳动数据。
第一条测试向量:测试算术逻辑类指令。
ADD R1、R2 → R1=5、R2=3 → 结果应为8
模拟器逐条解释执行,屏幕上每执行一条就输出一行:
ADD R1,R2 : PASS (8)
SUB R3,R4 : PASS (2)
AND R5,R6 : PASS (0x00F0)
……
一行一行的绿色“PASS”在屏幕上刷新。
钱兰在笔记本上记录着每一条指令的测试结果,笔尖沙沙作响。
诸葛彪靠在机柜上,眼睛盯着屏幕,一动不动。
测试向量1跑完,38条指令全部通过。
吴国华又敲了第二组测试向量,分支跳转类。
JMP 0x100 → 程序计数器应变为0x100
BZ R0、LABEL → R0=0时应跳转
模拟器逐条执行,屏幕上再次跳出绿色的“PASS”。
第三组:数据传送类。
MOV R1、#0x1234 → R1应为0x1234
LOAD R2、[0x200] → 从内存地址0x200读取数据到R2
STORE R3、[0x300] → 将R3写入内存地址0x300
全部通过。
第四组:I/O读写类。
IN R1、PORT_0 → 从端口0读入数据到R1
OUT PORT_1、R2 → 将R2输出到端口1
模拟器里,I/O端口是虚拟的,但指令的执行逻辑完全正确。
第五组:中断响应测试。
模拟器产生一个外部中断,记录从中断触发到第一条中断服务程序指令执行的时钟周期数。
屏幕上跳出一行数字:INTERRUPT LATENCY: 8 CYCLES
吴国华转过头,看着吕辰:“8个时钟周期,按午马机的主频算,大约4微秒。满足要求。”
吕辰点了点头,没说话。
第六组、第七组、第八组……
一直到晚上,48条指令,十几组测试向量,才算是全部跑完。
本小章还未完,请点击下一页继续阅读后面精彩内容!
喜欢四合院:我是雨水表哥请大家收藏:(m.20xs.org)四合院:我是雨水表哥20小说网更新速度全网最快。