第一篇 计算机系统构成及自定义CPU芯片设计
对于绝大多数人来说,一谈到计算机、CPU,总带有一种神秘、崇敬的感觉。
其实,计算机系统的早期构想就来源于人们经常见到的普通产品加工厂的样子。厂内加工车间的加工设备、物料货架就相当于CPU中的运算器、寄存器,厂子进出物料、成品的大门就相当于CPU的输入/输出端口,厂内的原材料、半成品、成品库房就相当于计算机系统中的数据存储器,厂内存放着加工各类产品所需的加工工艺及加工流程文件的资料室就相当于计算机系统中的程序存储器,连接厂内加工车间、库房、大门的道路就相当于计算机系统中的总线。从厂子大门进出、道路运输、库存内容、加工车间中的各种设备与货架都是由机关调度室统一控制指挥的,这里的调度室就对应于CPU中的控制器。
如果说加工厂与计算机有什么区别的话,前者加工的对象是有形的产品,而后者加工的对象则是无形的数据。
与工厂中按部就班的产品加工流水线一样,计算机并不具有创造性。加工数据时,控制器只要从程序存储器中取出加工工艺(文件)中所规定的加工操作流程,控制调度相关设备执行即可。由于人的一个动作往往是以秒、分、时来计算的,而计算机完成一个动作则是以纳秒来计算的,两者速度相差十亿倍以上,因而人们必然感觉到它特别神奇。对一个正在流水线上加工的产品,生产人员可根据产品当前的状态来决定下一步应该采取何种加工流程。计算机既能够对数据进行加工处理,又能够对数据状态做出迅速判断,从而能迅速对后续的加工流程进行调整,因而人们感觉到它具有智能。
加工厂按其所拥有的加工设备种类、库房大小、道路和大门宽窄可分为大型企业和小型企业,大型企业一般占用的场地更大,调度室可支配的资源会更多一些。但原则上,它们都应拥有最基本的加工设备,都能加工出相同的产品,只是所付出的时间代价有所区别。以上谈到的调度室可支配资源就对应CPU中的指令系统,指令条数决定了一个CPU的内部结构和复杂程度。
当你将待设计的CPU的指令系统通过硬件描述语言告诉计算机后,计算机中的软件会帮助你自动完成CPU内部数字电路的设计与优化工作。将得到的设计文件瞬间下载至FPGA芯片上,由你自定义的具有自主知识产权的CPU芯片就诞生了。
然后为所设计的CPU配上程序存储器、数据存储器、晶体振荡器等外围芯片后,一个自定义计算机系统的硬件部分就算完成了。
为了使读者能熟练掌握硬件描述语言编程和FPGA芯片开发技术,第3章和第4章以较大的篇幅对这两部分内容进行了详细介绍。