CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

狂:2009年给《全国高等学校计算机教育大会组委会》的信

已有 2598 次阅读 2015-2-11 10:18 |个人分类:计算机核|系统分类:科研笔记| 多核, 动态计算机

 

张凤祥

教授、王虹秘书长您们好!

 

下面的这篇《动态计算机结构与程序超并行执行测试》文章我想作为大会的发言稿,并不想作为论文,不知是否可以。本次我向大会投稿的题目是:将计算机设计制作做为重要培养目标。

自从那年乌鲁木齐大会之后,一直忙于计算机的设计制作,通过这几年的艰苦奋斗,我终于完成了自己的心愿,不但实现了自己设计制造计算机的梦想,而且在计算机结构设计,核心部件设计,软硬件一体化方法,计算机制作技术方面都有所收获。很想有机会能够与同行们切磋交流,进而推动计算机设计教学内容的开展。

《动态计算机结构与程序超并行执行测试》一文介绍的是一种新的计算机体系结构的设计思想,这种思想的核心作用就是能够实现程序的超并行执行。超并行执行所依托的是动态自动服务的过程,这与传统的计算机设计思想和方法有本质的不同。这种想法很有可能会影响到今后多元处理器结构计算机的设计方向,也可能撼动计算机操作系统的统治地位。如果把操作系统的方法比作“人治”,那么动态计算机的设计思想就如同实行“法治”。动态计算机的程序执行摆脱了操作系统程序的控制方式,而成为了一种依据法则,与处理器主动结合的行为,从而避开了“系统软件消耗”,效率的提高是容易理解的。

我想借助教师大会的机会,介绍一下动态计算机的设计思想和取获得的一些体会,目的想让更多的同行能够进入到动态计算机设计的行列中来,更希望能够对我们的计算机专业教育产生一点推动作用。

如果这种想法与大会目标违背,不必勉强。

 

十分感谢!

 

预祝大会成功。

 

姜咏江

2009-4-6

 

 


动态计算机结构与程序超并行执行测试

姜咏江

(对外经济贸易大学信息学院  北京 100013   Email: accsys@126.com)

摘 要: 动态计算机是以动态服务理论设计的计算机,该计算机在概念和程序执行方式上与传统的主张不一样,动态服务的思想更加适合多处理器计算机系统的设计,更适合现代超大规模集成电路的特色与特长。动态计算机属于复杂的动态核结构的计算机系统。动态核结构的计算机程序执行是主动的,再不像简单核结构那样由CPU来进行管理调度。动态计算机中程序好比被加工的产品,各种类型的处理器如同加工工具,根据程序的需要,程序会主动与处理器连接,动态施行对任务程序加工,各处理器上运行的程序可以实现指令间交叉执行,通常编写的任务程序都可以实现超并行执行。

关键词:处理器;存储单位;并行;并发;单道;指令交叉执行

 


1      引言

为了提高计算机的效率,实现任务的均衡服务,在程序执行方式上力求并行与并发,这即可以充分发挥硬件资源的作用,又可以不因程序的原因而耽误了处理器的工作。一般这种并行与并发的程序调度工作是由操作系统软件来完成的。操作系统要将运行的程序组织成进程结构进行调度和执行,这不仅增加了许多额外的工作,而且在系统程序执行中消耗了相当可观的机时。进程概念的引进适应了处理器与程序存储器固定连接结构的需要。处理器与存储器固定连接结构是一种简单核,不论有多少个处理器的计算机,只要是简单核结构,那么就必须使用进程和线程的软件方法来解决程序并发执行。动态计算机属于复杂的动态核结构的计算机系统。动态核结构的程序执行是主动的,再不像简单核结构那样由CPU来进行管理调度。动态计算机中任务程序好比被加工的产品,各种类型的处理器如同加工工具,程序根据的需要会主动地去连接处理器,施行对任务程序加工,最终完成任务。程序能够动态执行是靠乘载程序的存储设备程序存储单位来完成的。程序存储单位和处理器之间通过标志信号相互连接和断开,由硬件逻辑电路施行高速仲裁。程序执行存储单位一经与处理器连接,就立即执行程序当前指令,断开就立即停止这个程序执行,而不用像简单核结构那样要进行“现场”保护和恢复,因而程序运行效率极高。

作者设计了3程序处理器、2输入输出处理器和6程序存储单位的动态核计算机,现将6程序在该机上的动态执行过程的仿真展示出来,想通过仿真结果来说明动态计算机程序执行的超并行优势。本设计早在2006年就在Alera的DE1电子产品设计开发板上通过了下载运行验证,效果非常好。

2      动态计算机PMC362的结构与仿真

动态计算机又叫多元动态计算机,其特点是处理器、存储器都是多元的,处理器又分为不同的种类,每类处理器也是多元的。PMC的名称源于作者的“一种PU-MU-CHL结构计算机核心设计”专利题目,后面的数字是PU、MU、CHL的数量。

2.1         PMC362的结构

动态计算机PMC362 的结构如图 1所示。PU是程序处理器,叫执行单位(Performance Unit),有3个。CHL是输入输出处理器,有2个。T是通信处理器,也有2个。MU是程序存储设备,叫存储单位(Memory Unit),共有6个。DV是外部设备,有若干个。Logical Memory是大容量的缓冲设备。各设备之间采用关系型总线连接,用逻辑开关控制各总线的通断。

 

1  PMC362的结构

执行单位PU是一种指令无关的处理器,指令执行的初始信息和执行之后的结果一概都存放在MU当中,这是能够实现各程序间指令能够交叉执行的关键。输入输出处理器CHL担负着MU与外设数据传递的任务,虽然它与MU的连接是动态的,但由于程序对外设的选择性,一经连接好指定的外设,就需要将全部程序操作完成,使用“锁”信号以达到外设互斥使用。存储单位MU指定使用的外设如果忙,则立刻断开与CHL的连接,回到等待状态。通信处理器T自带信箱,分为接收标志和送达标志,根据MU的程序标识和通信方向标识来连接相应的MU,异步实现程序通信。

2.2         指令格式

PMC362是16位的计算机,指令代码放在高8位,低8位作为设备地址使用。指令格式分为1、2、3存储单元地址方式,如图 2所示。1地址格式16位,2地址格式32位,3地址格式48位。其中3地址格式可转变成32位内存地址方式,可以访问4Gword存储空间。

2  指令格式

在指令存储器中指令编码放在低地址单元,外部设备或数据地址放在高地址单元,这是因为程序计数器是采用增量方式运行的原因。

2.3         并行执行的程序例子

由于仿真能力的限制,并行执行的6程序都很紧凑。下面是最短的a程序,目的说明处理器转换过程。

SDA   001E   ;将立即数20放入累加器

STR   0023   ;将累加器内容送h0023单元

SDA   000F   ;将立即数15放入累加器

STR   0026   ;将累加器内容送h0026单元

ADD   0023   ;将累加器与h0023单元内容相加

STR   0024   ;将累加器内容送h0024单元

CHL          ;要求与输入输出处理器CHL连接

INCH  02  0025  0020 ;将02设备的h0020编址数据读到h0025内存单元

PU            ;要求与PU处理器连接

LDA   0024    ;将h0024单元内容放入累加器

ADD   0025    ;加上0025单元内容

STR   0025    ;结果送回0025单元

OUT   0025    ;输出0025单元内容

STP           ;程序结束        

3      程序动态执行的原理

动态计算机是出于高效解决多对多处理器服务系统的需要来设计的,各种类型的处理器与程序之间的动态结合运行,避免冲突和死锁乃是最初的出发点。由于动态连接经常频繁地发生,因而程序执行需要单道、并行、并发,这样才能彻底避免程序执行冲突和死锁的现象。

3.1         设立标志逻辑控制

除了系统初始化之外,存储单位MU中的程序是运行还是暂停,都由程序设计来决定,程序通过标志有选择处理器的权利,处理器在空闲的时候会按着优先顺序接受任务,不会产生任何竞争。程序运行暂停或结束,一律释放公共资源。如果程序运行中没有空闲的资源可用,那么就立即暂停,断开与处理器的连接,保持资源需求标志,这样在资源能够满足,并且处理器空闲时会立即恢复运行。

标志运用逻辑设计的基本思想如表 1所示,其中P代表处理器一方的标志,M代表程序存储单位一方的标志。

1  连接断开逻辑真值表

P

M

状态

0

0

保持连接

0

1

断开连接

1

0

断开连接

1

1

实现连接

3.2         硬件优先级仲裁

多设备动态连接最容易出现的问题是冲突。用硬件优先级逻辑电路解决冲突非常迅速有效,但在服务对象众多时,容易出现“沉淀”,即优先级低的被服务对象会长时间得不到服务。

使用限位数理论可以构造动态优先级电路。用动态优先级逻辑电路可以让每个被服务的对象按着一定的极短时间间隔,循环改变优先级。如果让设备连接断开过程在优先级保持的时间之内完成,那么就不会产生服务沉淀了。

由于标志逻辑控制能够在一个时钟周期内完成连接或断开,速度极快,所以用标志逻辑控制就能够充分发挥循环优先级电路的作用。

3.3         单道并发是均衡并行的保证

在动态计算机程序执行中,程序并发执行仍然被定义成“短时间内多个程序在一个处理器上交替运行”,而单道程序执行被定义成:一个存储单位的任务程序执行中不允许另外的任务的程序或程序段进驻。

并发程序执行机制是为了解决处理器均衡服务的一种方法,而单道程序运行方式是避免存储器管理复杂化的一种手段,二者相辅相成,这样既能保证多处理器的并行运行,也能保证多任务的均衡完成。

4      PMC362程序执行的时序仿真

图 3是a、b、c、d、e、f这 6个程序动态并行执行的时序仿真,outa~outf是6个程序的输出,chl0、chl1是输入输出处理器,pu0、pu1、pu2是程序处理器,处理器连接优先级为chl0、chl1、pu0、pu1、pu2,而程序的优先顺序是a、b、c、d、e、f。图中出现的6位二进制数从低向高,分别表示a、b、c、d、e、f程序在这些,为1的位置表示该程序正与左面标注的处理器上运行。

 

3  6程序动态执行的时序仿真

例如,pu2的值是001000,表示程序d正在处理器pu2上执行,而chl0的值是000001,就表示a程序在chl0处理器上执行输入或输出。

这个仿真的时钟周期是80ns,可以看到在系统启动后40ns处a程序就在pu0上执行了,并且接下来的1个时钟周期,b程序到pu1上执行了,下一个周期c程序在pu2处理器上执行了。经过一段时间的并行程序执行,约到2.88us的时候,a程序断开与pu0的连接,自动转到空闲的输入输出处理器chl0上执行,而且就在一个时钟周期的时间,d程序立即与刚与a程序断开的处理器pu0连接执行了。

由于没有空闲的pu处理器,因而e程序好f程序一直在等待,因为它们的优先级低,不能抢在其他程序前面连接执行。

约到4.00us的时候,b程序需要输入输出,断开了与pu1的连接,而与空闲的chl1连接执行,等待的e程序优先级高于f程序,所以它马上与pu1连接,进入程序执行。此时5个处理器都在工作,形成了5个程序并行执行的局面。

约在5.10us的时候,a程序完成输入输出,与pu0断开,虽然又需要与pu连接,但由于没有空闲的pu处理器,所以a程序也只好进入了等待状态。由于没有程序要求与chl处理器连接,chl0暂时空闲。

约到6.70us的时候,b程序与chl1处理器断开,由于没有空闲的pu,也只得进入等待状态。约7.10us的时候,d程序需要连接chl处理器,于是依据优先级,它与chl0连接,而空闲出来的pu0处理器又被优先级高度的a程序抢先连接,而优先级低的f程序还得与b程序一起等待,此时chl1处理器空闲。

约到9.60us的时候,d程序断开了与chl0的连接,要求与pu处理器连接,但没有空闲的pu处理器,所以d程序也进入了等待。此时处理器chl0、chl1都空闲,而pu处理器都在工作,并行执行的程序只有3个。

约在10.10us的时候,a程序完成结果输出,并在10.50us的时候结束程序,断开了与pu0的连接。等待的程序中b程序优先级高,因而它立即与pu0连接了,d程序好f程序等待。

约在13.50us的时候,b程序输出结果,并在约13.85的时候结束,让出的pu0马上被b程序连接,f程序仍然在等待。

此后一段时间3程序在并行执行,2个程序已经退出了,chl处理器空闲。

到了约16.90us的时候,d程序输出结果,并在约17.22us的时候退出,使f程序才有了与pu0连接的机会。

f程序只在pu0上执行了约不到1us,就断开了与pu0的连接,转与优先级高的chl0连接了,这使pu0空闲了起来,因为没有程序在等待运行了。

到了约21.00us的时候,f程序又需要回来与pu处理器结合,故立即与空闲的pu0连接执行。

到了约29.00us的时候,f程序连续输出3个数据,并与26.00us时结束,使pu0处理器空闲起来。

此后在89.50us的时候c程序输出结果,于约89.90us时结束。e程序一直运行到146.00us的时候输出结果,并于147.00us左右结束。至此全部程序结束执行,所有的处理器和存储单位mu都处于了空闲状态。6程序动态并行执行过程仿真过程完成。

5      下载到开发板上运行检验

动态计算机PMC362除了用Altera公司的Quartus II进行时序仿真之外,还下载到DE1电子电路开发板上进行了实际运行测试。为了能够见到快速运行的效果,用本机指令系统编写了输出延时子程序,还用Verilog HDL硬件设计语言编写了设备连接驱动程序等。

经过开发板上的下载运行测试,运行稳定,效果非常好。

 

6      解决处理器与存储器速度的矛盾

计算机存储器容量越大,访存所用的时间越长,这主要是访存译码器逻辑电路的延时,会随着存储单元的数量增加而增加,由于处理器工作周期并不随存储器容量变化,故产生了存储器与处理器之间速度的矛盾。

动态计算机使用MU来乘载程序,MU的存储器容量一定,只要将存储器的访问延时,保证和处理器相适应,那么整个计算机的存储容量的变化就不会使访存时间变化,因而也就化解了“存储墙”的矛盾。

7      结论

动态计算机在许多地方不同于以往的计算机设计,特别是在概念和程序执行方式上与传统的主张不一样,它运用动态服务的思想,让程序不再是被动由操作系统来安排调动的对象,而是具有了“主动性”,而这种概念更加适合多处理器计算机系统的设计,更适合现代超大规模集成电路的特色与特长。

在计算机程序执行的方式上,作者主张多程序的同时执行,为了在较少的处理器条件下,能够让更多的任务程序执行,仍然采用处理器程序运行时间段控制方式,已便能够达到程序并发执行。为了能够让多程序能够顺利地动态执行,作者主张单道多程序并行方式,也就是对每个MU的单道程序执行方式,而许多的MU又形成了程序执行的并行并发方式,这种与程序设计方法无关的同时运行方式,称为超并行程序执行方式。与以往不同处理方式不同,这一切都以硬件的方式实现的。

在任务调度上及编译方法上,作者主张“单页虚拟存储”方式,这不仅可以减轻操作系统对内存的复杂管理,而且会在程序调度上简单高效。

动态计算机的结构和方法减少了资源瓶颈问题,彻底解决了传统计算机中的总线冲突,内存冲突等一系列问题。程序运行再也不会出现“死锁”。在结构设计中,可以不受器件数量的限制来组织并行设备,在理论设计上可以完成“海量”程序并行执行,为高性能计算机设计是否会开辟一条新的思路?

动态计算机减免了操作系统带来的“软件消耗”,在关键的地方避开了“程序数据”传输的程序调度方式,而采用器件“切换”来实现程序转移,速度之快是可想而知的。

作者实现了动态计算机PMC362,但仅仅是处在初期阶段,面对要解决的问题相当多,如何能够更好地完成动态计算机的设计,确实期待有更多的同行参与。

不当之处欢迎批评指正。

 

 

参 考 文 献

[1]      姜咏江·一种PU-MU-CHL结构计算机核心设计·国家专利号200610072761.3

[2]      姜咏江·补码制理论的理解·计算机工程与应用 2004.5

[3]      姜咏江·计算机原理教程·清华大学出版社 2005.12

[4]      姜咏江·PMC计算机设计与应用·清华大学出版社2008.5

[5]      姜咏江·基于Quartus II的计算机核心设计·清华大学出版社2007.3

[6]      姜咏江·计算机原理综合课程设计·清华大学出版社2009.


研究背景

 长期以来计算机核心器件的设计和研制一直被国外把持着,我们曾一度没有能力进入这个领域。现在这种情况虽然有所改变,但由于理论和方法的缺乏和不适用,使我们计算机设计创新方面步履艰难。国外在计算机设计基础理论和方法上给我们许多似是而非的东西,其中包括设计核心部件的表数理论和方法。例如形式地给出的原码、补码、反码等形式表达方式,使我们不清楚“为什么”,不知不觉地进入了他们设计的圈套,混乱了我们对问题的思考。在计算机表数中出现了所谓的“符号位”,出现所谓“+0“-0的概念。在这种概念下,我们连为什么“8位二进制数的表数范围是-128到+127的问题,都解释不清楚,更不能解释符号位是如何参加运算的,说不清机器数位数扩充位数的依据。其实从硬件设计的角度来看,计算机内部只有二进制的限位数,它们才是机器表示的核心。如此一些看似简单,实际会影响计算机核心设计的问题,仍然被我们的计算机理论界所忽视,当然被忽视的原因也可能许多人尚没有接触到这些问题。

我在十多年以前就被这些问题所困扰,经过研究实际计算机运算器的设计,发现限位数理论和方法才是计算机运算器设计的基础理论和方法。特别是我在近几年计算机的设计实践中,运用限位数的理论和方法,非常容易地设计出运算器各种电路,并用于计算机整体设计之中,得到了十分满意的效果。我用限位数的理论和方法,不仅解决了计算机运算器的设计,而且发现在许多器件设计当中都有应用,例如程序计数器、指针、环形栈、动态优先级电路等。

2004年我在理论方面认清了限位数的作用,在《计算机工程与应用》第5期发表了《补码制理论的理解》一文,阐述了基本观点。从2004年至今,由于先后设计了几种计算机核心结构,2006年运用限位数的方法制作了教学用计算机pmc110,特别是成功地设计了动态计算机PMC362核心部件,并下载测试运行成功之后,对限位数的理论和作用有了更加深刻的认识,对计算机的理论方法,结构设计等有了更加深刻的认识,感到有必要推广我的限位数理论和方法,推广我的计算机设计思路,让大家在计算机设计中能够应用起来,少走弯路。

相当长一段时间我深入地研究了操作系统概念和方法的优缺点,剖析了进程概念和方法给多处理器计算机设计带来的麻烦,进而体会到计算机程序执行的过程,实质上就是一个服务的过程,处理器是服务元素,程序是服务对象。在多处理器环境下,只有程序和处理器的动态结合方式,才是效率最高的计算机设计方法。毫无疑问,今后软件操作系统控制调度程序执行的方法,必将让位于在逻辑规则之下,施行硬件电路控制的,程序主动选择处理器执行的动态服务方式。

过去我们不能进行计算机核心硬件设计,是因为我们不具备条件。现在的情况不同了,超大规模集成电路元器件技术,特别是现场可编程阵列器件FPGA,还有电子设计自动化EDA软件的诞生和发展,为我们在家里设计制作计算机创造了条件。个人设计制造计算机的时代到来了!

“作为一个发展中的大国,我国信息技术科技自主创新能力薄弱、核心技术缺乏已成不争的事实。从整体来看,由于缺乏强大的基础研究作为后盾,我国信息高科技产品仍以仿制为主,缺乏自己的创新特色。一个只能凭借别国的基础研究成果的国家,在未来技术创新的竞争中必败无疑。”这是科技部973有关信息产业的评价。从评价中不难看出设计制造具有“中国特色”的计算机的重要性。我们只有在硬件层面上搞清楚相关的理论和方法,才能做到“有所创造,有所发明”,才能真正造出属于我们自己的计算机来。

 

对外经济贸易大学信息学院姜咏江

 

通讯地址:北京朝阳区和平街11区甲16513

电话:64222477

手机:13651184072

 

 

 

 



https://blog.sciencenet.cn/blog-340399-867231.html

上一篇:物质与信息到底该怎么理解?
下一篇:数学家与计算机家的成就
收藏 IP: 222.130.178.*| 热度|

2 徐晓 icgwang

该博文允许注册用户评论 请点击登录 评论 (3 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-8-1 11:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部