3. 动态计算机的思想方法
本人发明的动态计算机理论和方法需要系统地介绍,行内人士方能理解。
3.1 核的服务结构
图 3 1是单处理器计算机核心的一般结构,这里将程序和数据是分开存储的,与将它们放在一个存储器中,不影响我们对多程序执行的方法进行讨论。
图 3 1 单处理器计算机核心的总线结构
我们将从功能上划分成服务元素和服务对象。图 3 1中虚线左面的部分只负责每条指令的执行,因而是“服务元素”,虚线右面的部分是存储程序和数据的部分,是程序执行的环境,构成了“服务对象”。我们用PU来简记服务元素,用MU来简记服务对象。于是可以将计算机核表示成图 3 2的形式。
图 3 2 计算机核的服务结构
这种服务结构的特点是PU与MU的松散“耦合”。PU只负责完成指令的执行,而不负责保存任何有关指令执行前后的信息。MU不但乘载程序,而且包括程序执行的“环境”。这种PU-MU结构的特点是“连接,程序执行”,“断开,程序执行暂停”。
3.2 多程序动态交换执行
多个程序交替地到处理器上执行就是所谓的程序并发执行。为了解决“同时”多程序执行的问题,过去使用“进程”的软件方法,这种软件方法不适合片上多处理器结构,就是单处理器结构,程序调度执行缓慢。多MU结构的计算机可以方便地进行程序运行调度,并且速度远远高于软件调度方式。
对于多程序在一个处理器上执行,可以采用多个MU与一个PU连接的方式,即PU-n.MU结构。PU-n.MU结构计算机核可以像图 3 3那样进行连接设计。可以通过总线的通断控制,实现MU与PU 的互斥交替连接,从而达到程序交替执行的目的。实现这种交替控制程序执行的方法非常简单,只要在连接的总线上加上可控制的开关,并由高层次的控制逻辑来指挥各个开关的通与断,就可以实现有序地调度。
n个MU是有优先顺序的,因而与PU的连接不会发生冲突。高层逻辑可以依据MU的连接请求信号,PU的空闲信号来发出连接控制信号,必要时还可以辅助限时执行的方法来保证程序任务的均衡完成。这种均衡性的保证还来自硬件“限位数”计算,从而使MU整体具有“循环优先级”的特点,保证优先级方式不出现“服务沉淀”。
图 3 3 多程序动态执行结构
假设图 3 3的PU-n.MU结构,每个MU中有一个程序,那么必然是一个程序执行时,另外的几个程序都在等待,这是单处理器计算机的特色。由于MU中都具有其中程序执行的环境,因而在与PU交换连接时,不用像进程运行那样要访问进程控制块,施行“现场保护”和“现场恢复”,如此就可以大量地节省软件调度所需要的时间。这种硬件线路的切换,一般在一个机器节拍中就可以完成,因而程序的中断或继续执行也是在一个节拍之内就转化完成。
如果一个MU中存储器容量一定,那么整个计算机存储容量的大小是由MU的数量来决定的。由于程序执行时访存的时间只由单一的MU来决定,因此不会产生访存带宽的变化,也就不会产生“存储墙”问题。
3.3 多程序同时执行结构
要真正实现多程序同时并行执行,必须要有多个处理器存在。为了使任务程序能够快速完成,一般每个任务程序中又可以分成若干个可独立执行的线程,以防某个线程无法执行时,另外的线程快速启动执行。图 3 4是多处理器与多程序同时执行计算机核结构。
图 3 4 n.PU-m.MU多处理器计算机核
由于每个MU中放置一个程序,而程序又以线程的方式划分,那么MU中要为每个线程设置一个执行环境。也就是说,现行执行的线程的程序计数器和其他环境设备会充当程序执行的计数器和其他环境条件。MU 内部线程执行也应该采用线路切换机制。显然这种线程切换适合“较稳定”的PU-MU连接方式,如果频繁实现线程在多异构处理器间转换,那么必然带动任务程序在相应处理器间转换。因而MU中过多地设置“硬线程”未必是最佳选择。不过由于无论是在MU中还是在MU之外,线路切换的速度都是一样的,因而不至于产生效率降低的问题。
--- 待续 ---
https://blog.sciencenet.cn/blog-340399-286858.html
上一篇:
CPU设计我要让更多的人掌握它(续7)下一篇:
CPU设计我要让更多的人掌握它(续9)