专利名称:在单计算机上可在同一时刻执行多道程序的方法及计算机的制作方法
技术领域:
本发明涉及计算机技术范畴中的计算机体系结构技术领域。具体说是一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机。
背景技术:
最早的计算机是由著名数学家冯.偌依曼等人在1946年总结并明确提出来的,因此经常称之为冯.偌依曼结构计算机。冯.偌依曼结构计算机的发明奠定了现代计算机发展的基础,有着十分重大的意义。
按照冯.偌依曼计算机原理设计的计算机在体系结构上的特点有许多的归纳与总结。但本发明作者认为冯.偌依曼结构计算机在体系结构上的最重要的特点是面向单道程序执行的体系结构,即在任何时刻,都仅有而且仅能有一道程序在计算机中执行。
在现代计算机的实际应用中,一个用户在一台计算机(PC)上调用多个应用、运行多道程序的情况比比皆是在用编辑器编写某个文档的同时,从网上下载一个、甚至同时下载多个图片、也许还在播放着一段音乐、防病毒程序正在实时监控、敲击键盘、移动鼠标等。为满足该用户的需求,一个PC不得不花费大量的时间用于在所有这些程序之间频繁地来回切换,至使系统的总体性能大大降低。所有这一切都是由于根据冯.偌依曼计算机原理设计的冯.偌依曼结构计算机不能在同一时刻在同一台计算机上同时并行地执行多道程序。
发明内容
有鉴于此,本发明提出一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征在于在任一台该类计算机上能够在同一时刻并行地执行多道程序。
如上所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征在于为每一道程序引入了一个程序执行驱动装置,从而多个程序执行驱动装置可在同一台该类计算机上相互独立地管理与控制多道程序在同一时刻并行地执行。注,组成一道程序的多道程序或子程序亦可有各自的程序执行驱动装置。
每道程序在生成可执行代码的同时,生成了该道程序的程序执行驱动装置。一个程序执行驱动装置至少包含有用于说明与定义该道程序属性特征以及管理与控制该道程序执行所需要的全部相关信息。
新型计算机的基本构成1、系统的硬件部分至少由下述部件组成一个或多个可并行工作的存储部件,如程序存储部件、数据存储部件、寄存器组等,一个或多个可并行工作的操作控制部件,如控制部件、“译码”部件、算术/逻辑运算部件、外部设备部件等,一个或多个可并行工作的在部件间起连接作用的连通部件,如总线及其控制部件等。上述各类部件通常有一个输入缓存装置与一个输出缓存装置。注●系统中的所有部件可按请求/服务的方式工作收到请求后,即输入缓存非空时,启动完成指定的服务,结果存入输出缓存。
●如某被请求服务的部件重复设置了多个,则可任选一个闲者。如果全忙,则等其闲。
●系统中的部件分为独占型与非独占型。对于独占型部件,或由系统预设或在第一次请求服务时申请。预设或申请的结果保存到该道程序对应的程序执行驱动装置的某些项目中。
2、系统的软件部分至少由一个类似于现代计算机系统中的操作系统的系统管理程序所组成。该系统管理程序存放在某个存储部件中,至少具有程序调度的功能,并至少维护着一个称为程序调度表的数据结构。系统在初启时就将系统管理程序的程序执行驱动装置加载到系统的某操作控制部件中去,称为激活或活化该程序执行驱动装置。该程序执行驱动装置将驱动系统管理程序逐个激活多个用户程序的程序执行驱动装置。此后,各用户程序的程序执行驱动装置将相互独立地在同一时刻驱动各自的用户程序在同一台上述计算机中同时并行地执行。
新型计算机的工作方法,即程序执行驱动装置驱动程序执行的方法1、一道程序一旦生成了可执行代码及其程序执行驱动装置,系统管理程序就将该道程序的程序执行驱动装置写入到它的程序调度表中。此时,该程序存放在某个存储部件中并处于等待执行状态。
2、该道程序一旦满足被调入执行的各项条件,系统管理程序就将激活或活化该道程序的程序执行驱动装置。此后,该道程序进入执行状态,并在它的程序执行驱动装置的管理与控制下独立地执行。
3、程序执行驱动装置依据它所保存的该道程序的驻存信息(如程序存储部件号、部件内地址PC等)控制到相应的存储部件去取当前要执行的指令。
4、指令取出后,该程序执行驱动装置即控制到某操作控制部件对已取出的指令进行“译码”。并据此,控制到相应的存储部件去取操作数、控制到相应的操作控制部件完成指定的处理,以及控制将处理的结果写回到相应的存储部件中去。注●此处的“译码”与传统的译码有些许差别,详见后续章节。
●取出后的指令、指令“译码”的结果、取出的操作数、以及操作的结果均被暂时地保存在该程序执行驱动装置的某些单元中。
5、最后,在该程序执行驱动装置将它所保存的属于程序驻存信息类中的PC项按当前指令规定的方式进行修正后,转步骤3以控制执行本道程序的下一条指令。
6、至少在下述情况下,系统管理程序将卸载某道程序的程序执行驱动装置1)执行到该道程序的结束指令这将导致PM置相应的结束标志并激活系统管理程序的程序执行驱动装置驱动系统管理程序对该道程序进行相应的结束处理,最终从程序调度表中删除该道程序的程序执行驱动装置。2)当某个程序执行驱动装置驱动的某道程序执行完当前指令后满足被中断的条件这将导致PM置相应中断标志后保存该程序执行驱动装置相应单元的内容,并启动系统管理程序的中断处理例程,即将该例程的程序执行驱动装置置入PM的输入队列;由该程序执行驱动装置驱动中断处理例程去完成有关的中断处理工作该中断处理例程将把被中断的程序的程序执行驱动装置写回到系统的程序调度表中,然后再根据调度规则选择和激活下一道程序的程序执行驱动装置以执行该道程序。
很明显,依据本发明提出的计算机工作方法设计的一类新型的计算机可实现指令级的并行。事实上,在同一时刻在同一台该类新型计算机上多个程序执行驱动装置相互独立地管理与控制着多道程序同时并行地执行。
在依据本发明提出的计算机工作方法设计的一类新型的计算机中可实现指令级的资源共享。系统中的任何部件,如果当前未被占用,都可被任意一道程序的程序执行驱动装置驱动的当前指令所使用。
在依据本发明提出的计算机工作方法设计的一类新型的计算机中,活化程序执行驱动装置的个数仅与系统提供资源的总量成正比。在系统资源足够多的条件下,活化程序执行驱动装置的数量可足够的大,即系统可支持足够多道的程序在同一时刻在同一台计算机上同时并行地执行。注,当等待执行的程序总数超过系统允许的最大值时,可采用中断切换技术使所有的程序都有机会执行。
依据本发明提出的计算机工作方法设计的一类新型的计算机与传统的多计算机系统、多处理机系统、以及多处理器系统等有着本质的不同,也与采用其它并行处理技术(如重叠技术、先行控制技术、多操作部件技术、流水线技术、超流水线技术、超长指令字技术、超标量技术、多线程技术等)的计算机系统有着本质的不同。特别值得指出的是依据本发明提出的计算机工作方法设计的一类新型的计算机与传统的多计算机系统的差别在于存在许多这样的情况多道程序只能在一台计算机上执行而不能分配给多个计算机执行,如鼠标、键盘、显示等系统程序、病毒监控等程序与使用该台计算机的用户程序就不能分配给多个计算机执行而只能在一台计算机上执行。在这种情况下,传统的多计算机系统只好采用中断切换方式将多道程序转换成一道“宏”程序在一台计算机上执行。而在依据本发明提出的计算机工作方法设计的一类新型的计算机中,
上述各道程序均可在同一时刻在单台计算机上并行地执行。
图1是本发明的一种实施方案的体系结构的原理性示意框图;图2是本发明的上述实施方案中的程序执行驱动装置的配送部件的结构框图;图3是本发明的上述实施方案中的配送部件的连通网络装置的交叉互连设计方式的结构框图;图4是本发明的上述实施方案中的配送部件的连通网络装置的多总线互连设计方式的结构框图;图5是本发明的上述实施方案的工作流程图;具体实施方式
依据本发明提出的计算机工作方法可设计出一类新型结构的计算机(以下简称L结构计算机)。图1是其中一种实施方案的体系结构的原理性示意框图。鉴于本文的目的在于阐述L结构计算机的技术原理而不是设计一台实用的L结构计算机,因此对该原理性体系结构示意框图作了许多的简化与省略,如省略了时钟部分、总线部分等;I/O接口及外部设备部分也仅仅是象征性的说明。
出于同样的原因,本文亦仅设计了一个十分简化的指令系统。第20-21页。
L结构计算机系统的一个最重要的特征在于为每一道程序引入了一个程序执行驱动装置用于驱动程序的执行。在本示例中,程序执行驱动装置被设计成为由一组信息单元组成的信息块。在系统硬件的支持下,这些信息单元组,即程序执行驱动装置,按照当前所携带的指令的操作码的要求逐次前往相应的各功能部件对指令的操作数进行指定的功能操作,如取操作、运算操作、存操作等。程序执行驱动装置的组成如下所示
在本示例中,一个程序执行驱动装置由30个单元组成,各组成单元的定义与说明如下所示。
单元0-单元6运行时工作单元用于本道程序在执行过程中存放临时/中间结果。其中0号单元(称为NEXT单元)是本程序执行驱动装置当前将要前往请求服务的功能部件的编号;1-6号单元依当前所驱动的指令的不同而不同,其具体用法在描述各部件功能时有详细的说明。特别需要指出的是单元1有时被用作ΔPC单元,当ΔPC=0时表示当前指令是一条END指令,当ΔPC=1时表示当前指令是一条非转移型指令,当ΔPC>1或ΔPC<0时表示当前指令是一条转移型指令。
单元7程序存储部件的部件编号(MPno)用于存放本道程序驻存的程序存储部件的部件编号。
单元8程序存储部件的部件个数(MPnu)当一道程序所需要占用的程序空间大于一个程序存储部件的容量时,可按顺序存放在邻接的多个连续的程序存储部件中。程序存储部件个数单元用于存放本道程序所占用的连续的程序存储部件的个数。如果MPnu的值大于1,则MPno的值是第一个程序存储部件的部件编号。
单元9程序存储部件的部件内地址(PC)用于存放本道程序当前执行指令的程序存储部件的部件内地址。
单元10数据存储部件的部件编号(MDno)用于存放本道程序所占用的数据存储部件的部件编号。
单元11数据存储部件部件个数(MDnu)当一道程序所需要占用的数据空间大于一个数据存储部件的容量时,可按顺序占用邻接的多个连续的数据存储部件。数据存储部件个数单元用于存放本道程序所占用的连续的数据存储部件的个数。如果MDnu的值大于1,则MDno的值是第一个数据存储部件的部件编号;单元12执行指令条数(Ins)用于记录本道程序本次调入后累计执行的指令条数。本参数在本实施例中用在中断处理中作为中断条件。
单元13程序道号(PrNo)当两道以上正在执行的程序共同存放在同一个程序存储部件中时,用本参数标识各道程序。
单元14-单元2916个通用寄存器(R0-R15)在本实施例中,将16个通用寄存器(R0…R15)设计成为程序执行驱动装置的组成部分。
在传统计算机中,寄存器组通常被设计成为一种硬件部件,由硬件的存储电器装置和读/写电器装置构成。为区别起见,称此种寄存器组设计方式为固定式寄存器组设计方式。对于L结构计算机,寄存器组可按固定式硬件方式进行设计。然而在本实施例中,寄存器组被设计成为程序执行驱动装置的一个组成部分、且随着程序执行驱动装置来往于各部件之间。称此种寄存器组设计方式为动态寄存器组设计方式。这样设计的最大好处是不仅消除了读/写寄存器所花费的传送时间,而且也消除了各道程序同时访问寄存器组时造成的等待延时。
图1列出了本发明的上述实施例的系统各硬件功能部件。这些功能部件的主要功能及其输入/输出的程序执行驱动装置的内容如下所述。
1、存储功能部件1)部件1称为程序存储部件MP,用于提供有关读/写程序存储部件的服务。可设置多个可独立并行工作的MP部件。每个MP部件的主要功能如下●MP维护着一个输入队列,所有请求本MP处理的程序执行驱动装置都等待在该队列中。MP也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务。
●读请求如果当前队首的程序执行驱动装置请求的是读操作,则从该程序执行驱动装置中取出该道程序的部件内地址PC送MP的地址寄存器,并启动MP的读操作读取该道程序的当前指令;读出的指令写入到当前的程序执行驱动装置的相应单元中;置程序执行驱动装置的NEXT单元为IT;然后将其写入到MP的输出队列中。
●写请求如果当前队首的程序执行驱动装置请求的是读操作,需完成的操作与数据存储部件的写操作类似,此处予以省略。
●重复上述处理过程;如果本MP的输入队列为空或输出队列为满;则进行一次空操作。
●在MP部件的输入队列中的程序执行驱动装置及其组成单元的内容如下所示。
其中0号单元中的MPr表示目的部件是MP且要求进行“读”操作;注,限于篇幅,凡当前未涉及到的程序执行驱动装置的组成单元,如单元1至单元6,均予以省缺,以下相同。
●在MP部件的输出队列中的程序执行驱动装置及其组成单元的内容如下所示。其中1号单元中的I为读出的当前指令,如LDIR0,C。
注,在本实施例中略去了如何将程序本身写入程序存储部件的过程,也因此略去了有关的程序执行驱动装置组成单元的内容;事实上,该过程与将数据写入相应的数据存储部件的过程类似。
2)部件2称为数据存储部件MD,用于提供有关读/写数据存储部件的服务。可设置多个可独立并行工作的MD部件。每个MD部件的主要功能如下●MD维护着一个输入队列,所有请求本MD处理的程序执行驱动装置都等待在该队列中。MD也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务。
●读操作如果当前队首的程序执行驱动装置请求的是读操作,则从该程序执行驱动装置中取出该读操作的部件内地址送MD的地址寄存器,并启动MD的读操作读取相应存储单元的内容;读出的数据写入到当前的程序执行驱动装置的某单元中;置NEXT单元为PM;置ΔPC单元为1;然后将其写入到MD的输出队列中。
●写操作如果当前队首的程序执行驱动装置请求的是写操作,则从该程序执行驱动装置中取出该写操作的数据及部件内地址分别送MD的数据寄存器和地址寄存器,并启动MD的写操作将数据写入到相应的MD存储单元中去;置NEXT单元为PM;置ΔPC单元为1;然后将其写入到MD的输出队列中。
●重复上述处理过程,如果本MD的输入队列为空或输出队列为满;则进行一次空操作。
●在MD部件的输入队列中的程序执行驱动装置及其组成单元的内容可参见IT部件的输出队列中发往MD的程序执行驱动装置及其组成单元的内容。
●在MD部件的输出队列中发往PM的程序执行驱动装置及其组成单元的内容如下所示
其中1号单元为PC,当前指令的当前值是1。
2、操作功能部件1)部件3称为程序管理部件PM,用于提供有关管理程序执行驱动装置运行的服务。可设置多个可独立并行工作的PM部件。每个PM部件的主要功能如下●PM维护着一个输入队列,所有请求本PM处理的程序执行驱动装置都等待在该队列中。PM也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务。
●启动一个程序执行驱动装置的运行系统管理程序激活一道程序的程序执行驱动装置实际上就是将该道程序的程序执行驱动装置写入PM的输入队列。当PM处理到该程序执行驱动装置时,将其NEXT单元置为MP(取指令),然后将其写入到PM的输出队列中。
●继续一个程序执行驱动装置的运行每个程序执行驱动装置驱动一道程序的当前指令执行的最后一步是返回到PM。如果当前指令不是一条结束指令,则PM将控制该驱动器继续运行进行单元9 单元9+单元1,即PC PC+ΔPC;置NEXT单元为MP;然后将其写入到PM的输出队列中。
●中断一个程序执行驱动装置的运行当某个程序执行驱动装置驱动的某道程序执行到当前指令满足被中断的条件时,PM置相应的中断标志、保存该程序执行驱动装置相应单元的内容、并启动系统管理程序的中断处理例程,即将该例程的程序执行驱动装置置入PM的输入队列,由该程序执行驱动装置驱动中断处理例程去完成有关的中断处理工作。该中断处理例程将把被中断的程序的程序执行驱动装置写回到系统的程序调度表中,然后再根据调度规则选择和激活下一道程序的程序执行驱动装置以执行该道程序。
●终止一个程序执行驱动装置的运行当某道程序执行到一条结束指令时,PM将通过采用删除该道程序的程序执行驱动装置的方式来终止该道程序的执行。注,该道程序在执行结束指令前,须执行一条或多条资源释放型指令。
●重复上述处理过程;如果本PM的输入队列为空或输出队列为满,则进行一次空操作。
●在PM部件的输入队列中接收到的程序执行驱动装置及其组成单元的内容如下所示
其中1号单元为PC,其值或是0或是1或是转移的偏移量。
●在PM部件的输出队列中发往MP部件的程序执行驱动装置及其组成单元的内容如下所示
其中0号单元中的MPr表示目的部件是MP且要求进行“读”操作;2)部件4称为指令格式转换部件IT,用于提供有关指令译码和指令格式转换的服务。可设置多个可独立并行工作的IT部件。每个IT的主要功能如下●IT维护着一个输入队列,所有请求本IT处理的程序执行驱动装置都等待在该队列中。IT也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务。
●对于请求指令格式转换的程序执行驱动装置,IT将对该程序执行驱动装置中存放的当前指令进行格式转换,并据此设置NEXT等单元,然后将其写入到IT的输出队列中。
●重复上述处理过程;如果本IT的输入队列为空或输出队列为满,则进行一次空操作。
●在IT部件的输入队列中的程序执行驱动装置及其组成单元的内容如下所示。其中1号单元中的I为读出的当前指令,如LDIR0,C。
●在IT部件的输出队列中的程序执行驱动装置及其组成单元的内容根据当前指令I的不同而不同,如下所示。
由IT发往PM的程序执行驱动装置及其组成单元的内容LDI Rd,C
其中1号单元为PC,当前指令的当前值是1。
MV Rd,Rs
其中1号单元为PC,当前指令的当前值是1。
Δ由IT发往MD的程序执行驱动装置及其组成单元的内容LD Rd,Rs
其中0号单元中的MDr表示目的部件是MD且要求进行“读”操作;2,3号单元中的[Rd]与[Rs]表示寄存器Rd与寄存器Rs中的内容。
STI Rd,C
其中0号单元中的MDIw表示目的部件是MD且要求进行“立即数写”操作;2号单元中的[Rd]表示寄存器Rd中的内容。
ST Rd,Rs
其中0号单元中的MDw表示目的部件是MD且要求进行“写”操作;2,3号单元中的[Rd]与[Rs]表示寄存器Rd与寄存器Rs中的内容。
Δ由IT发往ALU的程序执行驱动装置及其组成单元的内容ADDI Rd,C
其中0号单元中的ALUI+表示目的部件是ALU且要求进行“立即数的加”操作。对于SUBI,MULI,DIVI等指令,其相应的程序执行驱动装置及其组成单元的内容与此类似,仅是0号单元分别置为是ALUI-、ALUI*、ALUI÷。
ADD Rd,Rs1,Rs2
其中0号单元中的ALU+表示目的部件是ALU且要求进行“加”操作;SUB,MUL,DIV等与此类似。
JEQI Rs,C
其中0号单元中的ALUIj表示目的部件是ALU且要求进行“立即数的转移判断”操作;JNEI等与此类似。
JEQ Rs1,Rs2
其中0号单元中的ALUj表示目的部件是ALU且要求进行“转移判断”操作;JNE等与此类似。
SLT Rd,Rs1,Rs2
其中0号单元中的ALUslt表示目的部件是ALU且要求进行“小于设置”操作;SLE、SGT、SGE、SEQ、SNE等与此类似。
3)部件5称为算术/逻辑运算部件ALU,用于提供有关算术/逻辑运算的服务。可设置多个可独立并行工作的ALU部件。每个ALU部件的主要功能如下●ALU维护着一个输入队列,所有请求本ALU处理的程序执行驱动装置都等待在该队列中。ALU也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务。
●在请求ALU进行算术/逻辑运算的服务之前,程序执行驱动装置已控制将该指令所需的操作数准备好且存放在程序执行驱动装置的相应单元中。ALU对存放在程序执行驱动装置中的相应的操作数进行所要求的算术/逻辑运算,结果存放在程序执行驱动装置的相应的单元中;置NEXT单元PM;按指令的规定置1单元,即ΔPC单元;然后将其写入到ALU的输出队列中。
●重复上述处理过程;如果本ALU的输入队列为空或输出队列为满,则进行一次空操作。
●在ALU部件的输入队列中的程序执行驱动装置及其组成单元的内容可参见IT部件的输出队列中的发往ALU的程序执行驱动装置及其组成单元的内容。
●在ALU部件的输出队列中的程序执行驱动装置及其组成单元的内容如下所示。
其中1号单元为PC,其值或是1或是转移的偏移量。
4)部件6称为外部设备管理部件PD,用于提供管理外部设备,如显示、键盘、鼠标、打印、通信等设备,与主机之间进行数据输入/输出的服务。
3、部件7称为程序执行驱动装置配送部件DU,用于提供将程序执行驱动装置从一个部件的输出队列配送到另一个部件的输入队列的运输与配送服务。可设置多个可独立并行工作的DU部件。每个DU部件的主要功能如下●DU按预定的顺序逐个查询各部件组的各部件的输出队列是否为非空。对于某非空的输出队列,DU从队中取出一程序执行驱动装置,并按照此程序执行驱动装置的NEXT单元所指示的目的部件组编号以及目的部件编号查询该目的部件组的目的部件的输入队列是否为非满。如果是非满,则将该程序执行驱动装置配送到该目的部件组的目的部件的输入队列中去。注,以上的处理方式是针对PM、MP和MD而言。对于IT和ALU,只需在该部件中任选一输入队列为非满的部件即可。
●重复上述处理过程;如果所有部件组的所有部件的输出队列全为空,或者虽有输出队列为非空,但相对应的输入队列全为满,则进行一次空操作。
图1亦给出了本发明的上述实施例中系统各部件的连接关系部件1到6分别通过各自的一或两组信号线将各自的输入队列的尾端与输出队列的首端连到部件7;图2是本发明的上述实施例的部件7的结构框图。部件7由多个数据输入端口、多个数据输出端口、连通网络装置与控制管理装置等所组成。部件7的控制管理装置用于选通的控制与管理,如各端口忙闲的探测、优先级的确定、路径的选择等。部件7的连通网络装置用于将多个数据输入端口连到多个数据输出端口。该连通网络装置的设计有多种方法,以下列举其中较为典型的两种。
图3是本发明的上述实施例中的配送部件的连通网络装置的交叉互连设计方式的结构框图。装置7的连通网络装置采用交叉互连结构,任何一个输入端口都与所有或部分输出端口相连。
图4是本发明的上述实施例中的配送部件的多总线互连设计方式的结构框图。装置7的连通网络装置采用多总线结构,所有的输入端口与输出端口被分成几组,分别连到一条总线上;总线与总线之间再交叉互连。
图5是本发明的上述实施例的工作流程图,也是在新型计算机中程序执行驱动装置的工作流程图。其具体步骤如下步骤S1,系统初启时,至少有一道程序,如系统管理程序,的程序执行驱动装置存放在某个程序管理部件PM的输出队列中;下转步骤S2;步骤S2,当某个DU部件检测到某个PM部件的输出队列为非空、且当前处于队首的程序执行驱动装置的NEXT单元所指向的那个特定的目的MP部件的输入队列为非满时,将该PM部件的输出队列队首的程序执行驱动装置配送到相应的MP部件的输入队列中等待该部件的处理;下转步骤S3;步骤S3,当某个MP部件检测到其输入队列为非空时,按输入队列队首处的程序执行驱动装置中PC单元所指定的PC地址到它所管理的程序存储部件中读取指令,取出的指令存放到该程序执行驱动装置的1号单元中;如果此时该MP部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;下转步骤S4;步骤S4,当某个DU部件检测到某个MP部件的输出队列为非空、且当前处于队首的程序执行驱动装置的NEXT单元所指向的目的部件是IT、且至少有一个IT部件的输入队列为非满时,将该MP部件的输出队列队首的程序执行驱动装置配送到相应的IT部件的输入队列中等待该部件的处理;下转步骤S5;步骤S5,当某个IT部件检测到其输入队列为非空时,对输入队列队首处的程序执行驱动装置中的指令进行指令的格式变换,变换后的结果存放到该程序执行驱动装置的相应单元中;如果此时该IT部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;下转步骤S6;步骤S6,当某个DU部件检测到某个部件,这里的某个部件是指IT、ALU和MD中的任何一个部件,的输出队列为非空、且当前处于队首的程序执行驱动装置的NEXT单元所指向的目的部件的输入队列为非满时,将该部件的输出队列队首的程序执行驱动装置配送到相应的目的部件的输入队列中等待该部件的处理。此时的目的部件有3种,一是某个ALU部件,此时的目的ALU部件可以是任意一个输出队列有空位的ALU部件;以下转步骤S7;二是某个MD部件,此时的目的MD部件必须是上述程序执行驱动装置的NEXT单元所特指的哪个MD部件;以下转步骤S8;最后一个是某个PM部件,此时的目的PM部件必须是上述程序执行驱动装置的NEXT单元所特指的哪个PM部件;以下转步骤S9;步骤S7,当某个ALU部件检测到其输入队列为非空时,按输入队列队首处的程序执行驱动装置中的NEXT单元中的命令对该程序执行驱动装置中的相应单元所保存的操作数进行指定的算术/逻辑运算,运算后的结果存放到该程序执行驱动装置的相应单元中;如果此时该ALU部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;此时的目的部件是PM部件,下转步骤S6;步骤S8,当某个MD部件检测到其输入队列为非空时,按输入队列队首处的程序执行驱动装置中的NEXT单元中的读或写命令以及该程序执行驱动装置中的某单元所指定的部件内地址对该程序执行驱动装置中的某单元的数据在它所管理的数据存储部件中进行读/写操作;如果是读操作,将读出的数据存放到该程序执行驱动装置的某单元中;如果此时该MD部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;此时的目的部件是PM部件,下转步骤S6;步骤S9,当PM的某个部件检测到其输入队列为非空时,按其输入队列队首处的程序执行驱动装置中的命令要求进行相应的操作1)非END指令,此时ΔPC单元为非0值PM按要求修正其PC等单元的值,结果存放到该程序执行驱动装置的相应单元中;如果此时该PM部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;下转步骤S2。2)END指令,此时ΔPC单元为0PM置相应结束标志,从输入队列中删除该程序执行驱动装置,激活系统管理程序调度其它程序执行。3)当某个程序执行驱动装置驱动的某道程序执行完当前指令后满足被中断的条件时PM置相应中断标志后保存该程序执行驱动装置相应单元的内容,并启动系统管理程序的中断处理例程,即将该例程的程序执行驱动装置置入PM的输入队列;由该程序执行驱动装置驱动中断处理例程去完成有关的中断处理工作该中断处理例程将把被中断的程序的程序执行驱动装置写回到系统的程序调度表中,然后再根据调度规则选择和激活下一道程序的程序执行驱动装置以执行该道程序。
系统的软件部分由一道简化的系统管理程序所组成。为重点说明本发明的技术原理,该系统管理程序仅设置了简化的程序调度功能和简化的中断处理功能,并为此维护一张程序调度表。在系统初启时,该系统管理程序的程序执行驱动装置就被加载到系统的PM部件中。该程序执行驱动装置驱动系统管理程序逐个激活用户程序的程序执行驱动装置。当等待执行的程序总数超过系统允许的最大值时,系统管理程序将通过中断机制切换程序的执行。
本文所述仅为本发明技术构思下的一些基本说明。存在多种依据本发明提出的计算机工作方法设计计算机的方式与方法,也存在多种实现程序执行驱动装置以及实现用程序执行驱动装置来管理与控制程序执行的方式与方法。而依据本发明的技术构想所做的任何等效变换,均应属于本发明的保护范围。
本发明作者为论证本发明提出的计算机工作方法以及按此方法设计计算机的可行性,分别用C++开发了两个模拟系统,一是冯.偌依曼结构计算机系统,一是使用本发明提出的计算机工作方法的计算机系统,即L结构计算机系统。两种计算机系统采用相同的系统参数,如存储器读/写周期、ALU运算周期等。执行100万条指令的模拟结果显示L结构计算机系统比冯.偌依曼结构计算机系统快2到10倍,而且进一步提高的余地很大。
简化的指令系统MOVE指令MOV Rd,Rs Rd←RsLOAD指令LD Rd,Rs Rd←DM[Rs]LDI Rd,C Rd←CSTORE指令ST Rd,Rs DM[Rd]←RsSTI Rd,C DM[Rd]←C转移指令 JEQ Rs1,Rs2 IF(Rs1=0)PC←PC+Rs2 ELSE PC←PC+1JNE Rs1,Rs2 IF(Rs1≠0)PC←PC+Rs2 ELSE PC←PC+1JEQI Rs1,CIF(Rs1=0)PC←PC+C ELSE PC←PC+1JNEI Rs1,CIF(Rs1≠0)PC←PC+C ELSE PC←PC+1运算指令ADD Rd,Rs1,Rs2 Rd←Rs1+Rs2SUB Rd,Rs1,Rs2 Rd←Rs1-Rs2MUL Rd,Rs1,Rs2 Rd←Rs1*Rs2ADDI Rs,CRs←Rs+CSUBI Rs,CRs←Rs-CMULI Rs,CRs←Rs*C逻辑指令OR Rd,Rs1,Rs2 Rd←Rs1 OR Rs2AND Rd,Rs1,Rs2 Rs←Rs1 AND Rs2ORI Rs,C Rs←Rs OR C
ANDI Rs,CRs←Rs AND C设置指令SLT Rd,Rs1,Rs2 IF(Rs1<Rs2)Rd←1 ELSE Rd←05SLE Rs1,Rs2 IF(Rs1<=Rs2)Rd←1 ELSE Rd←0SGT Rs1,Rs2 IF(Rs1>Rs2)Rd←1 ELSE Rd←0SGE Rd,Rs1,Rs2 IF(Rs1>=Rs2)Rd←1 ELSE Rd←0SEQ Rd,Rs1,Rs2 IF(Rs1=Rs2)Rd←1 ELSE Rd←0SNE Rd Rs1,Rs2 IF(Rs1≠Rs2)Rd←1 ELSE Rd←0资源管理指令GETMD Rd,Rs 申请占用[Rs]个连续的MD部件,Rd←获准的MD部件编号。
GETMDI Rd,C 申请占用C个连续的MD部件Rd←获准的MD部件编号。
RETMD Rs1,Rs2申请释放由[Rs1]开始的[Rs2]个连续的MD部件。
GETMDI Rs,C 申请释放由[Rs1]开始的C个连续的MD部件。
结束指令END 程序结束。
权利要求
1.一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征在于,在任一台该类计算机上能够在同一时刻并行地执行多道程序。
2.根据权利要求1所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征在于为每一道程序引入了一个程序执行驱动装置,从而多个程序执行驱动装置可在同一台该类计算机上相互独立地管理与控制多道程序在同一时刻并行地执行。
3.根据权利要求1或2所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征在于每道程序在生成可执行代码的同时,生成了该道程序的程序执行驱动装置,一个程序执行驱动装置至少包含有用于说明与定义该道程序属性特征、以及管理与控制该道程序执行所需要的全部相关信息;组成一道程序的多道程序或子程序亦可有各自的程序执行驱动装置。
4.一种在同一时刻在单台计算机上能够并行地执行多道程序的计算机,其特征在于该类计算机的基本构成是
1)系统的硬件部分至少由下述部件组成一个或多个可并行工作的存储部件,一个或多个可并行工作的操作控制部件,一个或多个可并行工作的在部件间起连接作用的连通部件;
2)系统的软件部分至少由一个类似于现代计算机系统中的操作系统的系统管理程序所组成;该系统管理程序至少具有程序调度的功能,并至少维护着一个称为程序调度表的数据结构;系统在初启时就将系统管理程序的程序执行驱动装置加载到系统的某操作控制部件中去,称为激活或活化该程序执行驱动装置;该程序执行驱动装置将驱动系统管理程序逐个激活多个用户程序的程序执行驱动装置;此后,各用户程序的程序执行驱动装置将相互独立地在同一时刻驱动各自的用户程序在同一台上述计算机中同时并行地执行。
5.根据权利要求1或2或3所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征在于该类计算机的工作方法是1)一道程序一旦生成了可执行代码及其程序执行驱动装置,系统管理程序就将该道程序的程序执行驱动装置写入到它的程序调度表中;此时,该程序存放在某个存储部件中并处于等待执行状态;2)该道程序一旦满足被调入执行的各项条件,系统管理程序就将激活或活化该道程序的程序执行驱动装置;此后,该道程序进入执行状态,并在它的程序执行驱动装置的管理与控制下独立地执行;3)程序执行驱动装置依据它所保存的该道程序的驻存信息,如程序存储部件号、部件内地址PC等,控制到相应的存储部件去取当前要执行的指令;4)指令取出后,该程序执行驱动装置即控制到某操作控制部件对已取出的指令进行“译码”;并据此,控制到相应的存储部件去取操作数、控制到相应的操作控制部件完成指定的处理,以及控制将处理的结果写回到相应的存储部件中去;取出后的指令、指令“译码”的结果、取出的操作数、以及操作的结果均被暂时地保存在该程序执行驱动装置的某些单元中;5)最后,在该程序执行驱动装置将它所保存的属于程序驻存信息类中的PC项按当前指令规定的方式进行修正后,转步骤3以控制执行本道程序的下一条指令;6)至少在下述情况下,系统管理程序将卸载某道程序的程序执行驱动装置(1)执行到该道程序的结束指令这将导致PM置相应的结束标志并启动系统管理程序对该道程序进行相应的结束处理;(2)当执行完当前指令后满足被中断的条件这将导致PM置相应中断标志、保存该程序执行驱动装置相应单元的内容,并启动系统管理程序的中断处理例程进行有关的中断处理。
6.根据权利要求4所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的计算机,其特征在于该类计算机硬件的基本构成部件至少包括1)一个或多个可并行工作的存储部件,包括下述部件●程序存储部件MP-用于提供有关读/写程序存储部件的服务,可设置多个可独立并行工作的MP部件;●数据存储部件MD-用于提供有关读/写数据存储部件的服务,可设置多个可独立并行工作的MD部件;2)一个或多个可并行工作的操作控制部件,至少包括下述部件●程序管理部件PM-用于提供有关管理程序执行驱动装置运行的服务,可设置多个可独立并行工作的PM部件;●指令格式转换部件IT-用于提供有关指令译码和指令格式转换的服务,可设置多个可独立并行工作的IT部件;●算术/逻辑运算部件ALU-用于提供有关算术/逻辑运算的服务,可设置多个可独立并行工作的ALU部件;●外部设备部件PD-用于对外部设备部件的管理与控制;3)一个或多个可并行工作的在部件间起连接作用的连通部件,即程序执行驱动装置的配送部件DU-用于提供将程序执行驱动装置从一个部件的输出队列配送到另一个部件的输入队列的运输与配送服务,可设置多个可独立并行工作的DU部件;上述各类部件通常有一个输入缓存装置与一个输出缓存装置,可按请求/服务的方式工作收到请求后,即输入缓存非空时,启动完成指定的服务,结果存入输出缓存。
7.根据权利要求4或6所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的计算机,其特征在于程序执行驱动装置被设计成为由一组信息单元组成的信息块,在系统硬件的支持下,这些特殊的信息块,即程序执行驱动装置,按照当前所携带的指令的操作码的要求逐次前往相应的各功能部件对指令进行相应的加工、处理,如取操作、运算操作、存操作等;程序执行驱动装置的具体组成如下所示
一个程序执行驱动装置由30个单元组成,各组成单元的定义与说明如下单元0-单元6运行时工作单元用于本道程序在执行过程中存放临时/中间结果;其中0号单元,称为NEXT单元,是本程序执行驱动装置当前将要前往请求服务的功能部件的编号;1-6号单元依当前所驱动的指令的不同而不同,其具体用法在描述各部件功能时有详细的说明;单元1有时被用作PC单元,当PC=0时表示当前指令是一条END指令,当PC=1时表示当前指令是一条非转移型指令,当△PC>1或△PC<0时表示当前指令是一条转移型指令;单元7程序存储部件的部件编号MPno用于存放本道程序驻存的程序存储部件的部件编号;单元8程序存储部件的部件个数MPnu用于存放本道程序所占用的连续的程序存储部件的个数;如果MPnu的值大于1,则MPno的值是第一个程序存储部件的部件编号;单元9程序存储部件的部件内地址PC用于存放本道程序当前执行指令的程序存储部件的部件内地址;单元10数据存储部件的部件编号MDno用于存放本道程序所占用的数据存储部件的部件编号;单元11数据存储部件的部件个数MDnu用于存放本道程序所占用的连续的数据存储部件的个数;如果MDnu的值大于1,则MDno的值是第一个数据存储部件的部件编号;单元12执行指令条数Ins用于记录本道程序本次调入后累计执行的指令条数;单元13程序道号PrNo当两道以上正在执行的程序共同存放在同一个程序存储部件中时,用本参数标识各道程序;单元14-单元2916个通用寄存器R0-R15。
8.根据权利要求4或6或7所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的计算机,其特征在于通用寄存器组不是被设计成为一个硬件装置,而是被设计成为一组流动的信息单元,即程序执行驱动装置的一个组成部分。
9.根据权利要求4或6或7所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的计算机,其特征在于系统各主要硬件功能部件的功能及其输入/输出的程序执行驱动装置的内容如下所述;1)存储功能部件(1)部件1称为程序存储部件MP,用于提供有关读/写程序存储部件的服务,可设置多个可独立并行工作的MP部件,每个MP部件的主要工作如下●MP维护着一个输入队列,所有请求本MP处理的程序执行驱动装置都等待在该队列中,MP也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务;●读请求如果当前队首的程序执行驱动装置请求的是读操作,则从该程序执行驱动装置中取出该道程序的部件内地址PC送MP的地址寄存器,并启动MP的读操作读取该道程序的当前指令,读出的指令写入到当前的程序执行驱动装置的相应单元中,置程序执行驱动装置的NEXT单元为IT,然后将其写入到MP的输出队列中;●写请求如果当前队首的程序执行驱动装置请求的是写操作,需完成的操作与数据存储部件的写操作类似,此处予以省略;●重复上述处理过程,如果本MP的输入队列为空或输出队列为满,则进行一次空操作;●在MP部件的输入队列中的程序执行驱动装置及其组成单元的内容如下所示;
其中0号单元中的MPr表示目的部件是MP且要求进行“读”操作;凡当前未涉及到的程序执行驱动装置的组成单元,如单元1至单元6,均予以省缺,以下相同;●在MP部件的输出队列中的程序执行驱动装置及其组成单元的内容如下所示,其中1号单元中的I为读出的当前指令,如LDIR0,C
(2)部件2称为数据存储部件MD,用于提供有关读/写数据存储部件的服务,可设置多个可独立并行工作的MD部件,每个MD部件的主要工作如下●MD维护着一个输入队列,所有请求本MD处理的程序执行驱动装置都等待在该队列中,MD也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务;●读操作如果当前队首的程序执行驱动装置请求的是读操作,则从该程序执行驱动装置中取出该读操作的部件内地址送MD的地址寄存器,并启动MD的读操作读取相应存储单元的内容,读出的数据写入到当前的程序执行驱动装置的某单元中,置NEXT单元为PM,置△PC单元为1,然后将其写入到MD的输出队列中;●写操作如果当前队首的程序执行驱动装置请求的是写操作,则从该程序执行驱动装置中取出该写操作的数据及部件内地址分别送MD的数据寄存器和地址寄存器,并启动MD的写操作将数据写入到相应的MD存储单元中去,置NEXT单元为PM,置△PC单元为1,然后将其写入到MD的输出队列中;●重复上述处理过程,如果本MD的输入队列为空或输出队列为满,则进行一次空操作;●在MD部件的输入队列中的程序执行驱动装置及其组成单元的内容可参见IT部件的输出队列中发往MD的程序执行驱动装置及其组成单元的内容;●在MD部件的输出队列中发往PM的程序执行驱动装置及其组成单元的内容如下所示
其中1号单元为△PC,当前指令的当前值是1;2)操作功能部件(1)部件3称为程序管理部件PM,用于提供有关管理程序执行驱动装置运行的服务,可设置多个可独立并行工作的PM部件,每个PM部件的主要功能如下●PM维护着一个输入队列,所有请求本PM处理的程序执行驱动装置都等待在该队列中,PM也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务;●启动一个程序执行驱动装置的运行系统管理程序激活一道程序的程序执行驱动装置实际上就是将该道程序的程序执行驱动装置写入PM的输入队列,当PM处理到该程序执行驱动装置时,将其NEXT单元置为MP,然后将其写入到PM的输出队列中;●继续一个程序执行驱动装置的运行每个程序执行驱动装置驱动一道程序的当前指令执行的最后一步是返回到PM,如果当前指令不是一条结束指令,则PM将控制该驱动器继续运行进行单元9单元9+单元1,即PC PC+△PC,置NEXT单元为MP,然后将其写入到PM的输出队列中;●中断一个程序执行驱动装置的运行当某个程序执行驱动装置驱动的某道程序执行到当前指令满足被中断的条件时,PM置相应的中断标志、保存该程序执行驱动装置相应单元的内容、并启动系统管理程序的中断处理例程,即将该例程的程序执行驱动装置置入PM的输入队列,由该程序执行驱动装置驱动中断处理例程去完成有关的中断处理工作,该中断处理例程将把被中断的程序的程序执行驱动装置写回到系统的程序调度表中,然后再根据调度规则选择和激活下一道程序的程序执行驱动装置以执行该倒程序;●终止一个程序执行驱动装置的运行当某道程序执行到一条结束指令时,PM将通过采用删除该道程序的程序执行驱动装置的方式来终止该道程序的执行,该道程序在执行结束指令前,须执行一条或多条资源释放型指令;●重复上述处理过程;如果本PM的输入队列为空或输出队列为满,则进行一次空操作;●在PM部件的输入队列中接收到的程序执行驱动装置及其组成单元的内容如下所示
其中1号单元为△PC,其值或是0或是1或是转移的偏移量;●在PM部件的输出队列中发往MP部件的程序执行驱动装置及其组成单元的内容如下所示
其中0号单元中的MPr表示目的部件是MP且要求进行“读”操作;(2)部件4称为指令格式转换部件IT,用于提供有关指令译码和指令格式转换的服务,可设置多个可独立并行工作的IT部件,每个IT的主要功能如下●IT维护着一个输入队列,所有请求本IT处理的程序执行驱动装置都等待在该队列中,IT也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务;●对于请求指令格式转换的程序执行驱动装置,IT将对该程序执行驱动装置中存放的当前指令进行格式转换,并据此设置NEXT等单元,然后将其写入到IT的输出队列中;●重复上述处理过程;如果本IT的输入队列为空或输出队列为满,则进行一次空操作;●在IT部件的输入队列中的程序执行驱动装置及其组成单元的内容如下所示,其中1号单元中的I为读出的当前指令,如LDIR0,C;
●在IT部件的输出队列中的程序执行驱动装置及其组成单元的内容根据当前指令I的不同而不同,如下所示△由IT发往PM的程序执行驱动装置及其组成单元的内容LDIRd,C
其中1号单元为△PC,当前指令的当前值是1;MV Rd,Rs
其中1号单元为△PC,当前指令的当前值是1;△由IT发往MD的程序执行驱动装置及其组成单元的内容LD Rd,Rs
其中0号单元中的MDr表示目的部件是MD且要求进行“读”操作;2,3号单元中的[Rd]与[Rs]表示寄存器Rd与寄存器Rs中的内容;STI Rd,C
其中0号单元中的MDIw表示目的部件是MD且要求进行“立即数写”操作;其中2号单元中的[Rd]表示寄存器Rd中的内容;ST Rd,Rs
其中0号单元中的MDw表示目的部件是MD且要求进行“写”操作;2,3号单元中的[Rd]与[Rs]表示寄存器Rd与寄存器Rs中的内容;△由IT发往ALU的程序执行驱动装置及其组成单元的内容ADDI Rd,C
其中0号单元中的ALUI+表示目的部件是ALU且要求进行“立即数的加”操作;对于SUBI,MULI,DIVI等指令,其相应的程序执行驱动装置及其组成单元的内容与此类似,仅是0号单元分别置为是ALUI-、ALUI*、ALUI÷;ADD Rd,Rs1,Rs2
其中0号单元中的ALU+表示目的部件是ALU且要求进行“加”操作;SUB,MUL,DIV等与此类似;JEQI Rs,C
其中0号单元中的ALUIj表示目的部件是ALU且要求进行“立即数的转移判断”操作;JNEI等与此类似;JEQ Rs1,Rs2
其中0号单元中的ALUj表示目的部件是ALU且要求进行“转移判断”操作;JNE等与此类似;SLT Rd,Rs1,Rs2
其中0号单元中的ALUslt表示目的部件是ALU且要求进行“小于设置”操作;SLE、SGT、SGE、SEQ、SNE等与此类似;(3)部件5称为算术/逻辑运算部件ALU,用于提供有关算术/逻辑运算的服务,可设置多个可独立并行工作的ALU部件,每个ALU部件的主要工作如下●ALU维护着一个输入队列,所有请求本ALU处理的程序执行驱动装置都等待在该队列中,ALU也维护着一个输出队列,所有已处理的程序执行驱动装置都等待在该队列中等待DU部件的配送服务;●在请求ALU进行算术/逻辑运算的服务之前,程序执行驱动装置已控制将该指令所需的操作数准备好且存放在程序执行驱动装置的相应单元中,ALU对存放在程序执行驱动装置中的相应的操作数进行所要求的算术/逻辑运算,结果存放在程序执行驱动装置的相应的单元中,置NEXT单元PM,按指令的规定置1单元,即△PC单元,然后将其写入到ALU的输出队列中;●重复上述处理过程;如果本ALU的输入队列为空或输出队列为满,则进行一次空操作;●在ALU部件的输入队列中的程序执行驱动装置及其组成单元的内容可参见IT部件的输出队列中的发往ALU的程序执行驱动装置及其组成单元的内容;●在ALU部件的输出队列中的程序执行驱动装置及其组成单元的内容如下所示;
其中1号单元为△PC,其值或是1或是转移的偏移量;(4)部件6称为外部设备管理部件PD,用于提供管理外部设备,如显示、键盘、鼠标、打印、通信等设备,与主机之间进行数据输入/输出的服务;3)部件7称为程序执行驱动装置配送部件DU,用于提供将程序执行驱动装置从一个部件的输出队列配送到另一个部件的输入队列的运输与配送服务,可设置多个可独立并行工作的DU部件,每个DU部件的主要工作如下●DU按预定的顺序逐个查询各部件组中的各部件的输出队列是否为非空,对于某非空的输出队列,DU从队中取出一程序执行驱动装置,并按照此程序执行驱动装置的NEXT单元所指示的目的部件组编号以及目的部件编号查询该目的部件组中的目的部件的输入队列是否为非满,如果是非满,则将该程序执行驱动装置配送到该目的部件组中的目的部件的输入队列中去,以上的处理方式是针对PM、MP和MD而言,对于IT和ALU,只需在该部件中任选一输入队列为非满的部件即可;●重复上述处理过程;如果所有部件组的所有部件的输出队列全为空,或者虽有输出队列为非空,但相对应的输入队列全为满,则进行一次空操作。
10.根据权利要求4或6或7或9所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的计算机,其特征在于1)各部件之间的连接关系是部件1到6分别通过各自的一或两组信号线将各自的输入队列的尾端与输出队列的首端连到部件7;2)部件7至少由多个数据输入端口、多个数据输出端口、连通网络装置与控制管理装置所组成;部件7的控制管理装置用于选通的控制与管理,如各端口忙闲的探测、优先级的确定、路径的选择等;部件7的连通网络装置用于将多个数据输入端口连到多个数据输出端口,该连通网络装置的设计有多种方法;3)装置7的连通网络装置可采用交叉互连的设计方式任何一个输入端口都与所有或部分输出端口相连;4)装置7的连通网络装置可采用多总线的设计方式所有的输入端口与输出端口被分成几组,分别连到一条总线上,总线与总线之间再交叉互连。
11.根据权利要求1或2或3或5所述的一种在同一时刻在单台计算机上能够并行地执行多道程序的方法,其特征在于其工作的流程,也是在新型计算机中程序执行驱动装置驱动程序执行的工作流程的具体步骤如下步骤S1,系统初启时,至少有一道程序,如系统管理程序,的程序执行驱动装置存放在某个程序管理部件PM的输出队列中;下转步骤S2;步骤S2,当某个DU部件检测到某个PM部件的输出队列为非空、且当前处于队首的程序执行驱动装置的NEXT单元所指向的那个特定的目的MP部件的输入队列为非满时,将该PM部件的输出队列队首的程序执行驱动装置配送到相应的MP部件的输入队列中等待该部件的处理;下转步骤S3;步骤S3,当某个MP部件检测到其输入队列为非空时,按输入队列队首处的程序执行驱动装置中PC单元所指定的PC地址到它所管理的程序存储部件中读取指令,取出的指令存放到该程序执行驱动装置的1号单元中;如果此时该MP部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;下转步骤S4;步骤S4,当某个DU部件检测到某个MP部件的输出队列为非空、且当前处于队首的程序执行驱动装置的NEXT单元所指向的目的部件是IT、且至少有一个IT部件的输入队列为非满时,将该MP部件的输出队列队首的程序执行驱动装置配送到相应的IT部件的输入队列中等待该部件的处理;下转步骤S5;步骤S5,当某个IT部件检测到其输入队列为非空时,对输入队列队首处的程序执行驱动装置中的指令进行指令的格式变换,变换后的结果存放到该程序执行驱动装置的相应单元中;如果此时该IT部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;下转步骤S6;步骤S6,当某个DU部件检测到某个部件,这里的某个部件是指IT、ALU和MD中的任何一个部件,的输出队列为非空、且当前处于队首的程序执行驱动装置的NEXT单元所指向的目的部件的输入队列为非满时,将该部件的输出队列队首的程序执行驱动装置配送到相应的目的部件的输入队列中等待该部件的处理,此时的目的部件有3种,一是某个ALU部件,此时的目的ALU部件可以是任意一个输出队列有空位的ALU部件;以下转步骤S7;二是某个MD部件,此时的目的MD部件必须是上述程序执行驱动装置的NEXT单元所特指的哪个MD部件;以下转步骤S8;最后一个是某个PM部件,此时的目的PM部件必须是上述程序执行驱动装置的NEXT单元所特指的哪个PM部件;以下转步骤S9;步骤S7,当某个ALU部件检测到其输入队列为非空时,按输入队列队首处的程序执行驱动装置中的NEXT单元中的命令对该程序执行驱动装置中的相应单元所保存的操作数进行指定的算术/逻辑运算,运算后的结果存放到该程序执行驱动装置的相应单元中;如果此时该ALU部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;此时的目的部件是PM部件,下转步骤S6;步骤S8,当某个MD部件检测到其输入队列为非空时,按输入队列队首处的程序执行驱动装置中的NEXT单元中的读或写命令以及该程序执行驱动装置中的某单元所指定的部件内地址对该程序执行驱动装置中的某单元的数据在它所管理的数据存储部件中进行读/写操作;如果是读操作,将读出的数据存放到该程序执行驱动装置的某单元中;如果此时该MD部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;此时的目的部件是PM部件,下转步骤S6;步骤S9,当PM的某个部件检测到其输入队列为非空时,按其输入队列队首处的程序执行驱动装置中的命令要求进行相应的操作1)非END指令,此时△PC单元为非0值PM按要求修正其PC等单元的值,结果存放到该程序执行驱动装置的相应单元中;如果此时该PM部件的输出队列为满状态,则等待其空;当有空位时,就将处理结束的程序执行驱动装置写入到它的输出队列中等待DU的配送处理;下转步骤S2;2)END指令,此时△PC单元为0PM置相应结束标志,从输入队列中删除该程序执行驱动装置,激活系统管理程序调度下一个等待执行的程序进入执行;3)当前指令执行结束后满足被中断的条件时PM置相应中断标志后保存该程序执行驱动装置相应单元的内容,并启动系统管理程序的中断处理例程;
全文摘要
本发明涉及计算机技术范畴中的计算机体系结构技术领域。具体说是一种在同一时刻在单台计算机上能够并行地执行多道程序的方法及使用这种方法的计算机,其特征之一在于该类计算机能够在同一时刻在单台计算机上同时并行地执行多道程序;其特征之二在于为每一道程序引入了一个程序执行驱动装置,多个程序执行驱动装置可相互独立地管理与控制多道程序在上述计算机中同时并行地执行。本发明可用于指导设计各类用途的计算机系统。在该类新型的计算机中,程序执行驱动装置的个数仅与系统提供资源的总量成正比。在系统资源足够多的条件下,程序执行驱动装置的数量可足够的大,即系统可支持足够多道的程序在同一时刻在单台计算机上同时并行地执行。
文档编号G06F9/44GK1595359SQ200410049759
公开日2005年3月16日 申请日期2004年6月28日 优先权日2004年6月28日
发明者李晓波 申请人:李晓波