最后是字符显示器功能:
1.何标准储存器并输出储存器中的字符信息。
2.字符可换行换页。
3.交互式操作,单字符控制(这个还没做完所以视频里没有)。
视频里有个字幕写错了,有一句话里welcome没有加最后那个e,不过已经费劲千辛万苦把超清视频传到优酷里,就懒得重新压视频再传上去了。
关于工程的架构名称:Alpha21016。之所以取这个名字,是为了纪念十几年前DEC(Digital Equipment Corporation)的Alpha架构,那是一个处理器时代的传奇,可惜商业上并不成功。Alpha组的人很多后来都去了Intel和AMD,并立下了汗马功劳。
综合视频和日志粗略的介绍了一下工程,题目说是“技术细节”实际上还有好多没介绍的,就先不说了,真要写完估计要写一本200多页的书。具体的规划细节比如各种重要功能结构的设计,指令集的设计,硬件单元接口排布,储存器空间位置,流水线级数,动态分支预测,乱序执行,显示器控制原理等等实在写不动,这篇已经写了2万多字了,等最终成品做完了再发完整的技术文档。
本文是2013年8月写的,不知为何2013年12月11日被大家顶上来。首先感谢大家的评论,分享和赞扬。需要看工程新进展可以到我的相册里找。工程最终大约在2015年完工,会再发一篇完整地视频和文档出来。
最后再次感谢大家的支持!!!
2014年8月25日更新
最近仍有很多人关注我的工程,我非常感动。我没弃坑,只是进度缓慢。
最新的进度图
目前CPU已经可以执行若干种机器指令(以MOV为主):通用寄存器赋值,按字/字节+立即数/间接/直接寻址。
详细设置如下:
指令名称:数据储存器取数据至X寄存器
指令目标:将数据储存器中的某一字/字节数据传输至X寄存器中
指令格式:00001 0/1 0/1 addr(9)
对应含义:指令码 直接寻址/立即数寻址 按字/按字节 数据地址
备注:如果地址为奇数且为按字寻址,则改地址数据赋值到目的寄存器高8位
指令名称:传输MOV
指令目标:通用寄存器之间的数据传输
指令格式:1000000 x reg(4) reg(4)
对应含义:指令码 无效 源寄存器地址 目的寄存器地址
指令名称:加减乘除
指令目标:将被操作数取出传输至Y寄存器四则运算后储存至X寄存器
指令格式:00100/00101/00110/00111 0/1 0/1 addr(9)
对应含义:加/减/乘/除 直接寻址/立即数寻址 取数计算/直接计算 数据地址
备注:只支持按字读取数据储存器
指令名称:寄存器间接寻址
指令目标:将某寄存器中数据作为地址传输至MAR,取数后传输到任意寄存器
指令格式:1000001 0/1 reg(4) reg(4)
对应含义: 指令码 按字/按字节 地址寄存器地址 目的寄存器地址
备注:Y寄存器不支持作为地址寄存器,其他寄存器都可以
之后还有约30种指令未完成,工程量很庞大,但我肯定会坚持完成的。实现所有指令后我会尝试做一个可视化的类似DOS界面的机器码处理界面。如果不做的话除了我就没人能看懂这个工程里CPU的作用了。字符显示器可以接收CPU传输过来的ASCII码并输出,不支持写入。
更多相关资讯请关注:我的世界专区