在图纸的右下角还对这些器件分别做了说明。
1:指令寄存器模块主要完成从只读存储器(ROM)中接受指令字,同时将指令字分送到控制部件和内部数据总线或者地址总线上。由于目前设计的是16位处理器,所以他接收16位的指令字后,通过微处理器控制器发出的控制信号把高8位操作码送给控制模块用于指令的译码,而低8位的数据和地址送到地址总线或数据总线。
2:程序计数器模块设计一位16位的程序计数器同时还必须能直接接受跳转地址。
3:子程序计数器模块本身也相当于一个程序计数器,它是通过处理器里的控制器产生的控制信号来置数,一经置数,即是子程序的开始地址。另外子程序计数器还是可屏蔽中断和不可屏蔽中断程序执行过程的程序计数器,减少程序计数器设计的复杂。
4:算术逻辑单元模块是处理器运行算术和逻辑运算的不见,同时还有与这个模块相关联的寄存器模块,寄存器的大量使用是RISC架构的一大鲜明特点,他主要是用来存放算术逻辑运算的两个操作数的模块,也是算术逻辑单元运算结果的存储部件。
5:数据存储器模块是为了能从数据存储器中读取数据和写入数据,就要有存储地址寄存器和存储数据寄存器对于要存储的地址和数据进行暂存。
6:微处理器控制模块通过对指令的译码给出不同工作状态各个模块的操作脉冲信号,是整个微处理器的大脑,由译码器、环形计数器和控制矩阵组成。其中环形计数器产生控制矩阵所需要的控制状态,指令译码和控制矩阵由控制模块来实现。
7:数据总线处理器模块主要解决内部数据总线冲突问题,对不同的模块的总线请求给予回应。
这就基本完成了处理器的大致框架的构造和各功能模块功用的定义。李逸轩不需要过高的技术领先,所以决定不采用多址指令格式,对于用在硬盘上的总控制芯片,多址指令完全没用,还会增加指令的寻址时间。
李逸轩为芯片设计一个二级缓存系统,一级4K,二级8K,这能大大增加硬盘的读写速度。
缓存的设计不能过大,也不能过低,必须根据芯片的实际用途合适才行。大了,没用不说还浪费成本,小了又不够用,总之这款控制芯片只要硬盘容量不超过2GB,就不会被淘汰。
这款控制CPU李逸轩还采用了流水线设计,分为用户模式和专用模式2种工作模式,而寄存器也分为2种,通用寄存器和特殊寄存器,为此而专门设计了16个寄存器,在用户模式下,指令只能访问12个通用寄存器,而专用模式可以多全部的16个寄存器自愿进行访问,从用户模式近入专用模式的钥匙就是中断和例外。
中断对于流水线的数据通道而言,只有两种情况,一类是执行的指令代码不合法,需要转入中断服务程序,另外一类是例外或者中断指令,例如系统启动、硬件中断和中断返回等。
在李逸轩的设计中,指令的执行过程被划分为3个步骤:取指令、译码和执行,为什么这样设计?
首先,让大家看下比如有3条指令输入计算机是123,123,123,那么采用了流水线后,执行的情况首先取值1然后译码到2的位置,这个时候第二条指令正好进入取值环节,当指令1进入到执行阶段的时候,那么第二条指令正好是译码阶段,而第三条指令处于取值阶段,这样处理器内部将全速运行,这个时候处理器的执行效率最高,这也是在不增加计算机频率上就可以增加计算机性能的一项技术。
李逸轩采用的是3级流水线设计,完全能满足现状和未来10年的硬盘容量增长需求了,对于一款面向硬盘总控制的CPU,完全没有必要设计什么4级5级甚至8级9级流水线,君不见未来的4TB容量硬盘,其总控制芯片的流水总线也不过才10级。
相反在总线设计上,李逸轩才是费了不少的脑细胞,不但要满足现在的需求,还要满足未来的需求。
总线是处理器的内部的数据、地址以及控制信号的传输通道,同时也是外部交流的接口,因此,处理器总线的设计对处理器的性能有着非常重要的影响。
这就好比如果一个城市没有宽敞畅通且快速的大马路,和有宽阔大马路甚至高速比较,如果你想从城东到城西办事,你觉的那个更快捷。
李逸轩把片外的总线分为3部分数据总线、地址总线和控制总线,采用3总线并行结构。
数据总线为16位的双向总线,用于外部程序存储器或者数据存储器读取指令或者数据和对外数据存储器进行写操作的通道,对只读存储器和对随机存储器的读和写是分时复用。地址总线也是16位,可以寻址的空间为64K,程序计数器是个16位的地址寄存器,用来存放要访问的程序存储器的地址,子程序计数器也是一个16位的地址寄存器,在子程序调用或者执行中断程序的时候来代替程序寄存器的功能。
外部的控制总线将由访问存储器的读、写和准备等信号组成,主要读写外部存储器和I/O设备。
这是外部总线,接着是内部总线结构。内部总线有两种设计结构,该选哪一种李逸轩当初也是思考了很久。
那两种总线结构?
冯诺依曼体系和哈佛体系,自然哈佛体系对计算机的性能的提升有很大帮助但是也将会造成工艺的复杂对成本控制不利,哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。
中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。
程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。
而冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,而英特尔的8086就是这种结构。
李逸轩后来仔细的想了想,哈佛体系结构的存储器的最大优点是,方便芯片后续设计的连续性,缺点是工艺生产上的复杂,不利于成本控制。
虽然ARM处理器内部总线结构采用的是哈佛体系,但眼前这款CPU是作为硬盘总控制芯片用的。对于硬盘来说,是不需要太过于考虑未来内部总线设计的连续性,只要能达到原始设计要求就行了,最终他还是选用了冯·诺伊曼结构。
即便李逸轩讲的深入简出,尽可能的让普通人能听懂,可遗憾的是郭英年还是没有听明白。
没办法,CPU的专业性实在太强了。他只是一名官僚,并非该领域的专家,不过这些对他来说并不重要,重要的是他现在已经知道眼前这么年轻人是真的会设计芯片。
郭英年心中的天平开始倾斜了,不过他还有一个疑问,“我现在相信你会设计芯片了,不过生产线你从哪里弄?”