出于个人兴趣想自己开发一套系统软件,一来可以对系统软件的实现有更清楚的认识,二来可以
增强自己的技术水平。完全是利用闲暇时间来做,所以比较慢一些,但是如果坚持下来了会有很大收获。系统的开发是一项艰巨的任务,希望自己能坚持下来!
KH系统开发包括CPU芯片设计、指令集架构、汇编器开发、高级语言设计、编译器开发、虚拟机开发。系统的开发先从指令集入手,向下是芯片设计,向上是汇编语言、编译器等开发。
1.CPU芯片设计
使用VHDL描述硬件连接和逻辑关系,使用Cadence公司的Virtuoso软件进行仿真综合得到CPU core的电路图。
2.指令集架构
指令集的设计和CPU芯片设计密不可分,初步设计为RISC架构,指令长度固定,32位字长,32个通用寄存器,实现常用的指令集即可。
3.汇编器设计
用C++实现汇编器,有了汇编指令集就很容易翻译成机器指令集。
4.虚拟机设计
虚拟仿真CPU硬件工作原理,执行汇编器生成的机器指令。用C++实现虚拟机。
5.高级语言设计
语言是强类型的、LALR(1)、面向对象。是C语言的超集和C++的子集,不具有模板机制和一些特殊的语法。
6.编译器设计
语言的文法采用BNF范式描述,句法采用正则表达式描述,用Flex和Bison工具生成编译器前端,再生成中间代码,优化后转换成汇编代码。用C++开发编译器。
系统的开发先从虚拟机着手,以Space Invader游戏模拟器为例,开发一款基于Intel8080CPU的虚拟机,然后开发开发KH虚拟机。