在非微码数据处理系统上提供扩展的处理环境的装置和方法

文档序号:6405228阅读:180来源:国知局
专利名称:在非微码数据处理系统上提供扩展的处理环境的装置和方法
技术领域
本发明一般涉及数据处理系统,更准确地说,涉及要求实现指令的多重性,以执行单一宏指令的数据处理系统。
在复杂的数据处理系统中,经常使用的执行工具是应用编制微码的中央处理机。在此种实施方法中,数据处理系统指令在一种一般叫做微定序器的专门处理装置中开始工作。根据一种机器指令,该微定序器检索专用的微指令序列,该微指令具有一种与数据处理系统指令的格式完全不相关的格式。这些微指令一般存储在一种叫做“控制存储器”的专用存储器里。在复杂的、高性能数据处理系统中,微指令的应用也比数据处理指令普遍得多。
编制微码的技术提供一种用于执行复杂的机器指令的装置,这些指令就象不可分割的原子单元那样在设有程序中断的情况下完成多重性操作。另一方面,编制微码的技术具有要求特殊的快速控制存储器和硬件逻辑以对微指令排序的缺点。在另外的数据处理系统中,一般称为“简化的指令系统计算机”(RISC),不用编制微码技术。从而,该数据处理系统被限于能直接在硬件中实施而不需要编制微码技术的系统指令。这种限制给软件程序增添额外的负担,使它必须适应一种缺乏必要的基本操作的数据操作系统。
为此,已经意识到需要一种技术,该技术使不包含微码的数据处理系统能够提供可以进行复杂操作的数据处理系统功能。这种复杂操作应当象原子操作那样,以保证硬件不出现异常情况,而且能不间断操作为条件。
本发明的一个目的是提供一种改进的数据处理装置。
其特征在于提供一种技术,它允许一种软件程序在若干类型的数据处理系统上运行。
本发明的另一个特征是提供一种技术,通过它,一种软件程序能够在微码数据处理系统和非微码数据处理系统上运行。
本发明的再一个特征是在通常的非特权方式和特权方式之外,提供一种数据处理系统执行指令的操作方式。
本发明的另一个特征是允许以无中断的原子方式执行预选的指令组。
本发明的再另一个特征是提供一种用户操作方式,一种操作系统操作的方式,以及用于执行预先制定指令序列的第三种操作方式。
本发明的再另一个特征是在数据处理系统中上下文环境的同步转移。
根据本发明,通过提供一种具有三种执行指令方式的数据处理系统,前面所说的和其他的特征都已达到。用户方式和核心态方式是数据处理系统的通常方式,在用户方式中,一般执行应用程序,在核心态方式中,一般执行特权指令。这些方式之外,本发明增加了第三种方式,下文称之为EPICODE(扩充处理机指令代码)方式。该EPICODE方式由特殊的EPICODE指令或通过预先的事件来启动。在EPICODE操作方式中,禁止那些会中断正常指令序列执行的事件,而允许某些在EPICODE方式中推进指令执行的指令和装置。在适当场合,对于那些由分指令序列执行的、并且其中不希望有中断的指令,该EPICODE方式使数据处理系统能够具有指令原子性。
本发明的这些和其他的特征,在结合附图阅读以下说明后将可充分理解。


图1A和图1B是能够应用本发明的数据处理系统的实施例。
图2是能够应用本发明的数据处理装置的中央处理机的实施例。
图3是虚拟存储数据处理系统结构的图解说明。
图4是数据处理系统各操作方式间的关系的原则性图解说明。
图5举例说明佑没Х绞交蚝诵奶绞阶坏紼PICODE方式的各步骤。
图6举例说明EPICODE指令序列被存储在主存储器的保留区内。
现参照图1A和图1B,图上示出能够应用本发明的两种示范性的数据处理系统配置。图1A中,中央处理机(#1)11与系统总线19耦合。其他的中央处理机(例如,#N)12也能与该系统耦合。中央处理机11(直到12)按照该中央处理机与其控制程序联系的结构处理数据,该控制程序由常驻在主存储器15中的指令组成。非常驻数据和指令通常存储在海量存储器单元中,并且经由系统总线19转移到主存储器15或从主存储器15转移出来。输入/输出设备〔#1〕16(直到〔#M〕17)借助系统总线19将各种设备,例如海量存储器、用户终端设备和通信设备耦合到数据处理系统。海量存储器存储着数据处理装置所需要的数据和指令。中央处理机11直至12的操作所需要的数据和/或指令集(通常称为页数据和/或指令),从具有较慢的可访问性的海量存储器转移到主存储器,中央处理机对后者的访问是比较快的。面向总线的系统具有较容易再重新组合系统的优点,但是它具有如下缺点每个系统组分需要控制装置,以提供连接系统总线的接口。下面参照图1B,图上示出一种数据处理系统,其中,中央处理机11(直到12)和输入/输出设备16(直到17)通过存储器控制设备14耦合到主存储器15。存储器控制设备14代替系统总线19以及由图1A中示出的面向总线的数据处理配置中各数据处理系统元件所执行的控制功能。存储器控制设备14提供数据转换和各指令的集中指挥和监控,它可以比图1A面向总线的配置具有更高的效率,但失去了灵活性。
下面参照图2,图上举例说明能够有效利用本发明的示范性的中央处理机的方框图。发行部件22负责向若干专用执行部件提供(译码的)指令,专用执行部件包括标量操作地址生成部件,至少一个执行部件(#1)25(直到执行部件〔#Q〕26)和向量运算部件28,向量运算部件28包括向量运算处理部件28A,向量运算地址生成部件28B和向量运算寄存器28C。经过执行部件处理的数据一般从标量寄存器23或向量寄存器28C取出。从执行部件得到的结果数据存储在标量寄存器23,矢量寄存器28C或数据高速缓冲存储器27之中。数据高速缓冲存储器27可以看做在主存储器15和中央处理机11之间提供接口的高速缓冲存储器。(数据高速缓冲存储器27在图2中显示为直接与主存储器耦合。如在图1A和图1B中所示,实际的耦合可以包括插入的数据处理器件。)发行部件22包括用于确定哪个执行部件将处理所选择的数据,以及什么时候所选择的执行部件可进行数据处理。后面这个特征包括查明将可用于存储所处理的数据的目的存储单元。指令高速缓冲存储器21存储各种已译码的并通过发行部件转送到适当的执行部件的指令。发行部件22具有力图使各执行部件的处理操作达到最大限度的器件。因而,发行部件22包括预取器件和各种算法,以保证在必要时适当的指令(包括任一分支指令)适用于发行部件22。正如通过标量操作地址生成部件24和向量运算部件28所表明的,许多执行部件都是用于掌握某类处理操作的专用处理设备。例如,执行部件可以配置成可处理浮点运算,或整数算术运算,等等。发行部件22具有与此关联的标量寄存器23,该寄存器能够存储执行程序所需要的数据或用于提供数据处理操作的记录。例如,一个寄存器是程序计数器寄存器,它按执行程序指令序列存储准备处理的下一个指令的(虚拟)地址。标量操作地址生成部件24用于把在主存储器15中的虚拟地址转变成物理单元。当各执行部件以不同速率处理指令时,发行部件22还负责以校正序列对来自执行部件的数据进行再定序。
向量运算部件28包括向量处理部件28A,向量运算地址生成部件28B和向量运算寄存器28C。该向量运算处理部件的活动,能够控制向执行部件24至26的数据分配,以及其中指令的执行。根据另一个实施例(未画出),通过向量运算部件28来执行各种指令的执行部件可适用于数据处理系统。当执行部件既适合于向量运算又适用于标量运算时,控制装置服从发行部件22的全面的系统控制,后者分配数据处理机的资源。
接着参照图3,图上说明了最佳实施例的虚拟地址机理。发行部件中的指令301具有与此关联的虚拟地址302,后者标识一种数据元,将根据该数据元来执行指令操作。发行部件将该虚拟地址302转移到标量地址生成部件24(或者,在适当场合,向量地址生成部件28B)。在该地址生成部件24(或28B)中,部分虚拟地址用以标识(通过在地址生成部件中的器件303)在主存储器15中的页面表项目304。页面表项目304被转移降刂飞刹考 4(或28B)和器件305,器件303检验页面表项目中的被选字段,以确定正打算的对数据元的访问是否被准许。当该访问未被准许时,于是,访问违例306被标识,而且调用一个适应的操作系统程序,以确定如何响应该访问违例。当检验步骤305确定允许对数据元312进行访问时,对页面表项目304履行检验步骤307,以确定该指令所需要的数据元在主存储器15中是否可用。当检验步骤307表明该数据元不存在时,于是产生页面故障308,同时一个适当的操作系统程序把数据元转移到主存储器15(存储单元312中),更新有关的页面表顽目304,并重新执行招致页面故障的指令。假如检验步骤307确定所要求的数据元在主存储器中是可利用的,那么,检验步骤309就检验该页面表项目304,以确定需要该数据元的相关指令的活动是否被视为导致一种故障。当该指令确定的活动被视为一种故障状态时,然后,对于读的故障、写的故障或者执行的故障,相应地,将调用一个操作系统程序以对该故障状态做出响应。假如检验步骤309表明该指令关于关联的数据元的活动未被视为故障状态,那么,地址生成部件24(或28B)确定在主存储器里存储所需要的数据元的物理地址311。在该地址的数据元312被转移到标量寄存器23中的存储单元313,向量运算寄存器28C或转移到指令高速缓冲存储器21(即,当该数据元是一指令时)。这样指令301适用于处理虚拟地址标识的所需要的数据元。
接着参照图4,图上示出两种传统的操作系统的方式和EPICODE方式之间的关系。用户方式4A一般执行应用类型的程序,以完成用户直接关心的处理功能。为了能获得所期望的处理能力,为用户配备有比较完整的控制装置。这些指令一般都是非特权的,在指令的次序和所选的方式的意义上,是受用户控制的。核心态方式4B是在其间操作系统执行各指令的方式。核心态方式执行在用户方式中可利用的全部指令,以及与核心态方式4B相关联的一些外加的指令,这些外加的指令都是特权的,因此,都是不适用于由用户操纵的。特权指令不允许在用户方式中使用,因为他们可能危及其他用户或程序的安全。数据处理系统的EPICODE操作方式是为以下指令序列保留的这些指令序列应当无间断地执行和/或除非该数据处理系统处于预定的状态,否则将不予执行。在用户方式4A或核心态方式4B能够执行的某些指令,进入EPICODE方式时需要有一种过渡。这种方式配备有一定的特权和某些专用的硬件,以实施确保不可中断地(原子式地)执行指令序列的对策。
下面参考图5,图上示出从两种操作方式中的任何一种进入EPICODE方式的各步骤。事件501,例如,中断、硬件异常或EPICODE格式的指令传到数据处理系统要求进入EPICODE格式。在步骤502中,阻止发行部件发出新的指令,但已开始执行的指令仍予以完成。当前执行指令的完成允许在执行EPICODE方式之前向所有硬件异常发出信号。在步骤503中,禁止外部的中断,在步骤504中,禁止指令流引用的虚拟地址变换。在步骤505中,允许执行为EPICODE方式保留的专用指令的特权。在步骤506中,保存任何在EPICODE方式的执行中会被破坏的处理机状态。例如,程序计数器的内容在该步骤中被保存起来。在步骤507中,允许访问与EPICODE方式有关联的专用寄存器集。在步骤508中,通过把来自硬件寄存器(称为EPICODE基地址寄存器)的地址与一定的状态信号标志组合,产生新的程序计数器地址。以及在步骤509中,执行产生编址的EPICODE方式程序的通常的和EPICODE的指令序列。
参照图6,主存储器15有一个保留区151,与EPICODE有关的指令序列就存储于其中。这些信息由CPICODE基地址寄存器238编址。寄存器238可以是只适用于EPICODE方式(例如,允许按预定的比特位置存取)的若干寄存器之一。某些标志和状态信号可用于确定对指令序列基地址的偏离量,所述指令序列对产生这些标志状态信号的条件起反应。
在受若干限制的最佳实施例中,实施具有图2的流水线执行部件的中央处理机,然而,别种结构的执行程序也可以利用本发明。该中央处理机包括若干执行部件,每个执行部件适合于执行一类指令。作为实例,一个执行部件-标量地址生成部件24,控制着中央处理机和主存储器之间的数据转移,即,执行标量装入/存储指令。一个执行部件适用于执行数据移位操作,一个执行部件用于浮点加/减运算,一个执行部件适用于整数和浮点乘法运算以及一个执行部件适用于整数和浮点除法运算。各种专用的执行部件可以但并不必须履行流水线式配置。中央处理机的其他各特征如下。从指令高速缓冲存储器21把当前执行指令序列中的指令转移到发行部件22。在发行部件中,该指令被分解成它的组成部分,而且由此产生与数据相关的控制信号和地址信号。欢谥噶羁梢钥贾葱兄埃矗环⑿兄埃匦肼闳舾上拗啤8弥噶畹娜吭春湍康募拇嫫鞅匦胧强衫玫模矗运璧募拇嫫骼此担荒苡形赐瓿傻男慈氩僮鳌<拇嫫鞯男慈肼肪对谖蠢吹难分斜匦胧强衫玫模浼洌弥噶罱娲⒕淼牧俊R笥糜诖碇噶畹闹葱胁考谥葱衅诩洌匦肟捎美赐瓿筛孟畈僮鳌9赜谙蛄吭怂悴考谡鱿蛄吭怂闫诩洌蛄坎僮髟ざ艘桓鲋葱胁考5贝娲⑵髯叭 存储指令经历高速缓冲存储器失误时,该装入/存储部件忙的标志将导致延迟紧接的装入/存储指令,直至该高速缓冲存储器失误应答完成为止。当指令在发行时,为所述结果保留目的寄存器以及写入路径循环。在操作数建立期间,生成全部与指令无关的寄存器地址,读出和存储操作数,同时还生成与数据相关的控制信号。指令操作数和控制信号传送到相关的执行部件以供执行。由执行部件产生的结果以适当的方式存进寄存器文件或数据高速缓冲存储器15。一旦指令发出,处理结果可能不适用于各不同的机器循环。其时,在下一个机器循环中,当必要的发行条件已满足时,可以把下一指令译码并发出。这样,就以正常的指令序列将各指令译码和发出,但是,由于执行部件的不同的指令执行时间,所以,能够以不同的次序存储所述结果。这种失调的存储使对异常的处理和故障指令的再试复杂化。然而,这些事件是比较罕见的,而所述失调存储提供了执行和硬件的一些优点。
就图3而论,已经很广泛地实现了虚拟地址技术的应用。该项技术允许程序编制员不用干预数据元和指令元的实际的位置,这种地址产生机制在程序地址和数据处理机内数据及指令元之间提供一种接口。通过应用页数据和指令元,从大量或海量存储介质转移数据和指令元得到促进,不再需要转移单一的数据和指令元。此外,一般以这样一种格式编写程序,即,这种格式以比较密集的方式将顺序的指令执行所需的数据和指令元存入程序或文件中。这样,一个页数据和指令元一般将包含大量的用于程序执行的有关的数据和指令元。页面执行程序的比较严密的粒度还带来如下结果(特别在向量指令执行中),即,使有关数据和指令元组可以延伸到页面边界之外,直至数据处理系统的主存储器之外。该数据处理系统一般包括与虚拟地址技术相关联的各过程,例如,用于发出信号的器件(它所需的信息页面不在主存储器里)以及用于通过检索错误的信息页面来对页面故障做出反应的程序。
上述的数据处理系统是典型的,而且能够以多种方式来实施。更具体地说,可以在实施这种结构时选用微码技术。当不使用微码技术时,数据处理系统的许多必要的功能要求复杂的排序,而且,对于中央处理机中其他活动,还必须原子式地执行上述必要的功能。这些功能的某些实例包括1.调度中断和例外,2.存储器管理控制功能,例如转换缓冲器填充,3.要求复杂排序的指令,例如从例外或中断返回(REI)指令,4.要求受控访问处理机资源的指令,例如导致存储器互锁的指令,5.为了软件的兼容性,要求在所有执行程序两端设置接口的指令,但是所述接口的物理实现在各执行程序之间可以大不相同。各实施例包括从例外和中断返回,以及向处理机寄存器传送或从处理机寄存器向外传送。
这些功能在微码数据处理系统中是容易实现的。EPICODE方式提供一种在不采用微指令技术的数据处理系统中实施这些指令的技术。
在最佳实施例中,当下列任何事件在数据处理系统中被标识时,就进入EPICODE方式。接受到来自外部输入/输出设备或另一个处理机的中断信号。由当前执行程序产生硬件异常。或执行EPICODE格式指令,原子式地执行复杂的指令。为了响应这些事件,EPICODE指令序列以一种原子的和通常无间断的方式执行。
因为EPICODE方式在数据处理系统的操作方式之间作为一种过渡方式,所以,进入EPICODE方式的入口自动地允许在进入该方式之前,完成任何当前执行指令的执行。这样,就能够在上下文环境中,以及在过渡到EPICODE方式之前,对各种例外事件作出响应。EPICODE方式使操作方式之间的过渡同步进行,这些过渡包括向EPICODE方式的过渡和从该方式向其他方式过渡。
在该最佳实施例中,要求以EPICODE方式执行的指令具有特殊的格式。此外,适用于执行EPICODE指令的噶钕低晨梢园ㄈ砑噶罴约耙恍┳ㄓ玫闹噶睿笳哂糜谕瓿晌訣PICODE方式执行而保留的专业化活动。EPICODE方式有许多专用的寄存器(在标量寄存器部件23中),它们适用于在该操作方式中增强性能和灵活性。因此,EPICODE方式提供能够与保留的各寄存器相互作用的机制。
以上描述用于举例说明最佳实施例的操作,并不意味着限制本发明的范围。本发明的范围应当只受以下权利要求书的限制,根据以上的描述,本专业的技术人员将很清楚可以进行许多改变,这些改变仍将包含在本发明的精神和范围之内。
权利要求
1.一个执行指令序列的数据处理系统,其特征在于包括用于执行非特权指令的第一操作方式;用于执行特权和非殊权指令的第二操作方式;用于执行为响应关联的被选指令而预先制定的不间断指令序列的第三操作方式,所述不间断指令序列消除所述被选指令。
2.根据权利要求1的数据处理系统,其特征在于所述第三方式禁止中断。
3.根据权利要求1的数据处理系统,其特征还在于以第三操作方式执行的指令序列被存储在与所述第三方式有关的主存储器的保留部分中。
4.根据权利要求1的数据处理系统,其特征还在于所述数据处理系统利用虚拟地址技术,在所述数据处理系统以所述第三方式操作期间,为指令流引用而禁止所述虚拟地址过程。
5.根据权利要求1的数据处理系统,其特征还在于应答中断事件的过程在所述第三操作方式中执行。
6.根据权利要求1的数据处理系统,其特征还在于能够从所述第一操作方式和从所述第二操作方式进入所述第三操作方式。
7.根据权利要求6的数据处理系统,其特征在于可以由在所述第一操作方式中执行若干预选指令之一的结果而进入所述第三操作方式,并且也可以由在所述第二操作方式中执行若干预定的指令之一的结果而进入所述第三操作方式。
8.根据权利要求1的数据处理系统,其特征还在于所述数据处理系统具有若干预定的、只有在所述第三操作方式中才可能执行的指令。
9.根据权利要求1的数据处理系统,其特征还在于所述数据处理系统具有若干只有当所述数据处理系统处于所述第三操作方式时才可访问的寄存器。
10.根据权利要求1的数据处理系统,其特征还在于所述数据处理系统包括用于应答中断条件的器件,所述中断应答器件当所述数据处理系统处于所述第三方式时被禁止。
11.根据权利要求1的数据处理系统,其特征还在于所述数据处理系统在所述第一方式和所述第二方式中能够执行若干重叠指令,所述数据处理系统进入所述第三方式之前完成全部在所述第一方式和所述第二方式中执行的当前执行指令。
12.在一个具有用于执行非特权指令的第一操作方式和具有用于执行特权和非特权指令的第二操作方式的数据处理系统中执行程序的方法,其特征在于包括以下步骤为所述数据处理系统提供第三操作方式;以及执行预选的指令序列,该序列在所述第三操作方式中完成相关的特权和非特权指令,所述预选的指令序列是以一种不间断方式被执行的。
13.根据权利要求12的执行软件程序的方法,其特征在于所述执行步骤包括把所述预先的指令序列存进所述据处理系统的主存储器的保留部分中。
14.根据权利要求12的执行软件程序的方法,其特征在于进一步包括当在所述第三操作方式中执行所述预选指令序列时,禁止中断器件的步骤。
15.根据权利要求12的执行软件程序的方法,其特征在于进一步包括在所述第三方式运行期间禁止所述数据处理系统的虚拟地址机制的步骤。
16.根据权利要求12的执行软件程序的方法,其特征在于进一步包括在所述第三操作方式中执行例外过程的步骤。
17.根据权利要求12的执行软件程序的方法,其特征在于进一步包括只在所述第三操作方式中访问预定的寄存器的步骤。
18.根据权利要求12的执行软件程序的方法,其特征在于进一步包括在以第三方式执行指令之前完成全部当前执行指令的步骤。
19.一种用于执行各指令的数据处理系统,其特征在于包括用于执行非特权指令的第一操作方式;用于执行特权和非特权指令的第二操作方式;以及用于执行应答在所述第一和第二方式中执行的被选指令的所述特权和非特权的不间断序列的第三操作方式,所述不间断指令序列消除所述被选指令。
20.根据权利要求19的数据处理系统,其特征在于所述不可间断的指令序列包括除所述特权和非特权之外的专用指令。
21.根据权利要求19的数据处理系统,其特征在于所述不可间断指令序列的所述执行,可以是对例外和中断事件的应答。
22.根据权利要求19的数据处理系统,其特征在于进一步包括应答例外和中断事件的器件,所述应答器件在所述不可间断的指令序列执行期间被禁止。
23.根据权利要求19的数据处理系统,其特征在于所述数据处理系统在所述第一和所述第二方式中能够执行重叠指令,其中全部当前执行指令都被完成,而且已不再有根据所述被送指令之一的标识而发出的指令。
全文摘要
在使用微码技术的数据处理系统中,为了获得指令执行的相同的原子性以及给非微码的数据处理系统提供执行如原子式操作一样的复杂指令序列的能力,非微码数据处理系统除了(非特权的)用户方式和(特权的)核心态方式之外,还配备有第三操作方式,后者允许执行具有禁止中断事件和允许某些功能及装置指令序列,以便简化指令序列的执行。
文档编号G06F9/38GK1030308SQ8810394
公开日1989年1月11日 申请日期1988年7月1日 优先权日1987年7月1日
发明者戴维·N·卡特勒, 戴维·A·奥必斯, 迪利普·班达卡, 韦恩·卡尔多萨, 理查德·T·威特克 申请人:数字设备公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1