CN85108466A - 分布控制存贮器字的体系结构 - Google Patents
分布控制存贮器字的体系结构 Download PDFInfo
- Publication number
- CN85108466A CN85108466A CN85108466.4A CN85108466A CN85108466A CN 85108466 A CN85108466 A CN 85108466A CN 85108466 A CN85108466 A CN 85108466A CN 85108466 A CN85108466 A CN 85108466A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- subassembly
- micro
- address
- enemy personnel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims abstract description 153
- 238000012545 processing Methods 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 9
- 239000013598 vector Substances 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000000151 deposition Methods 0.000 claims description 3
- 230000002401 inhibitory effect Effects 0.000 claims 2
- 230000005856 abnormality Effects 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 2
- 239000011800 void material Substances 0.000 description 36
- 230000015572 biosynthetic process Effects 0.000 description 33
- 239000000853 adhesive Substances 0.000 description 17
- 230000001070 adhesive effect Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000002547 anomalous effect Effects 0.000 description 12
- 238000012360 testing method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 8
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 101000749842 Homo sapiens Leukocyte cell-derived chemotaxin 1 Proteins 0.000 description 3
- 102100040448 Leukocyte cell-derived chemotaxin 1 Human genes 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 101100220717 Arabidopsis thaliana CIP8 gene Proteins 0.000 description 2
- 101001005165 Bos taurus Lens fiber membrane intrinsic protein Proteins 0.000 description 2
- 101710115990 Lens fiber membrane intrinsic protein Proteins 0.000 description 2
- 102100026038 Lens fiber membrane intrinsic protein Human genes 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 101100220716 Arabidopsis thaliana CIP7 gene Proteins 0.000 description 1
- 102100028633 Cdc42-interacting protein 4 Human genes 0.000 description 1
- 102100034770 Cyclin-dependent kinase inhibitor 3 Human genes 0.000 description 1
- 102100026064 Exosome complex component RRP43 Human genes 0.000 description 1
- 101100439050 Homo sapiens CDKN3 gene Proteins 0.000 description 1
- 101000766830 Homo sapiens Cdc42-interacting protein 4 Proteins 0.000 description 1
- 101001055989 Homo sapiens Exosome complex component RRP43 Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 101150089280 cip2 gene Proteins 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012353 t test Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Computer And Data Communications (AREA)
- Steam Or Hot-Water Central Heating Systems (AREA)
- Exchange Systems With Centralized Control (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Processes Of Treating Macromolecular Substances (AREA)
- Manufacture, Treatment Of Glass Fibers (AREA)
- Multi Processors (AREA)
- Circuits Of Receivers In General (AREA)
- Logic Circuits (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Ceramic Products (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Abstract
多个子部件的微指令控制***的方法和设备 中,各子部件受控制存贮器微指令中的微操作控制。 主子部件产生从控制存贮器中读出的下一微指令的 地址以控制微指令执行顺序。此方法提供当前指令 的执行与下一条指令从控制存贮器中的读出相互覆 盖的技术。控制存贮器被分为若干子控制存贮器,每 个子控制存贮器位置靠近执行这个子控制存贮器中 微操作的那个子部件。子部件能在主子部件中引起 捕俘而使下一条微指令从控制存贮器中一预定单元 读出,从而改变了微指令正常执行顺序。
Description
本申请转让给同一受让人,并且有相关主题,在此提出作为参考。申请中公开的***和处理方法中的某些部分是下一申请的发明人的发明:“可控存贮器中读出错误的恢复法和设备”序号为-。
属于本发明的方法和设备总的说来是关于控制可编程设备的控制存储器如何分布的体系结构问题,更具体地说,是关于微程序化的电子数据处理***中控制存储器的体系结构问题。在这样的数据处理***中,多个子部件各有它们自己的局部控制存储器。
在目前,实现一个数据处理***时,通常的做法是用微处理机去执行软件的指令,而微处理机本身则是固件控制的。在这种***中,固件是作为一系列微指令存贮在称为控制存贮器的存贮器中的。控制存贮器可以是能写能读的随机存取存贮器(RAM),也可以是某种类型的只读存贮器(ROM)。只读型的控制存贮器往往被称为只读存贮器ROS。固件在这方面的应用随着***中可编程逻辑的增加而越趋广泛。
在今天的电子数据处理***中,普遍发现中央处理机和各种***控制器均是微程序控制的。在这样的***中,中央处理机(CPU)的控制存储器是由该中央处理机中的逻辑所控制和访问,而与每个***控制器有关的控制存储器则由各个***控制器中的逻辑所控制和访问。较新的发展是在受一个或多个控制存储器控制的部件中有多个子部件。图1展示了一个这样的***,其中CPU由微处理机1、商用指令处理机3、微处理机的只读存贮器ROS9和商用指令处理机的ROS11组成。该中央处理机经由46号线与主总线27联系。主总线27包含地址线、数据线和控制线,这些线供各个不同的部件用来在它们之间传送信息。主存29是用来存储供中央处理机用的软件程序指令和数据的,它借助于48号线与主总线27通讯。***设备31和33分别通过50号线和52号线与主总线27通讯,其用途是输入输出和存储该电子数据处理***中的数据。
就此***的CPU而言,商用指令处理机(CIP)3与微处理机1并行工作。微处理机1在中央处理机中负责执行二进制运算和逻辑操作。这个主要的子部件还负责控制哪条微指令将从微处理机的只读存储器ROS9和商用指令处理机的ROS11组成的控制存贮器中读出。微处理机1中下一地址的逻辑(67)产生一个地址并通过12号线输出到ROS地址寄存器19。在执行微指令期间的适当时刻该地址被存入ROS地址寄存器19,与此同时,地址寄存器19在2号线上选出一个12位地址的信号ROSADDR,它被用来访问微处理机的ROS9和商用指令处理机的ROS11。在图1中,这一12位的地址是用与2号线交叉的短斜杠附近的数字12表示的。该地址能够访问微处理机的ROS9中变量为4K(1K=1024)、字长为48位的任何一个微指令字,也能够访问CIP ROS 11中容量为2K、字长为8位的任何一个微指令字。如果此地址在0到2047之间,就从微处理机的ROS9中读出一个48位的微指令字并把这48位全部送到微处理机1的ROS数据寄存器53中,在这48位长的字中有35位信号称为MPROSDT是通过4号线传送,另外13位称为CMROSDT是经由8号线传送。信号CMROSDT也被送到商用指令处理机3的ROS的数据寄存器55中。如果这12位长的ROS地址指出的地址在2048和2095之间,那末,从控制存储器中读出一条56位长的微指令,其中48位来自微处理机的ROS9,还有8位来自CIP的ROS11。在此情形下,4号线上的35位的信号MPROSDT送到ROS数据寄存器53,8号线上13位长的信号CMROSDT同时送到ROS数据寄存器53和55,6号线上8位的信号CIPROSDT只送到ROS数据寄存器55中。
在读出一条微指令并且通过ROS数据寄存器53提供给微处理机1之后,这条微指令字中的某些位便被用来确定要从控制存贮器中读出的下一条微指令的地址。这些位经由10号线传送到下一地址生成逻辑67。此外,从商用指令处理机3中代号为61的指令寄存器中来的4位信号经由60号线也传送到下一地址生成逻辑67。来自该寄存器的60号线上的4位仅在下列情况下参与下一控制存贮器地址的计算,即当微处理机1处理的微指令中包含一个按照指示器61给出的4位条件来执行转移的微操作时。借助于这种机构,微指令的程序设计者能够通过在微处理机的ROS9中存放的微指令组中设置按条件转移的微操作就可以处理商用指令处理机3中出现的各种条件。图2是上述过程的固件流程图,从中可以看出通过对下一微指令地址生成的控制来控制微指令的能力。
在图2中,块A包含一条微指令MP1,它完成微处理机1中的一个操作。块A中没有需要由商用指令处理机执行的微操作。在块B中,微操作MP2是由微处理机1来执行的,而CIP2则是由商用指令处理机3来执行的。在块C中,微处理机1执行微操作MP3,商用指令处理机执行微操作CIP3。在微操作MP3中,安排有一条按指令分枝的操作。如果因为被测试的指示成立而执行转移,那么将从控制存储器中读入与块H相对应的微指令,这就是说,微处理机1将执行MP6,商用指令处理机则执行CIP6。接着执行块I,即在微处理机1中执行微操作MP7,在商用指令处理机3中执行CIP7。微操作MP7中包含一个转到块F的分枝,所以,下一条微指令就从控制存贮器的单元F中读出,它包含微操作MP8和CIP8。如果块C中的微指令因为指示器的条件不成立而不发生转移,那么块D将被读入,微处理机1就执行微操作MP4,商用指令处理机3则执行CIP4。然后块E接着被读进,微处理机1和商用指令处理机就分别处理微操作MP5和CIP5。在这个点上,该微程序返回到主路经执行块F中的微操作MP8和CIP8,它们分别由微处理器1和商用指令处理器3完成。块G将接着块F被读入,使微处理机1执行微操作MP9,商用指令处理此时不做任何动作。关于图1中说明的中央处理机的操作及图2中说明的执行微程序的方法的更详细的讨论可以在序号为537,991的美国专利申请中找到,它的标题为“执行十进制算术运算的商用指令处理机”,发明人是John J.Bradley、Theodore R.Staplin、Jr.Ming T.Miu、Thomas C.O′Brien、George M.O′Har、Melinda A.Widen和Brian′ L.Stoffers。
上述***的优点是在一个公共的控制存贮器控制的部件中允许有多个子部件,在这个意义上,上述***工作十分良好,但是该***的缺点是***中子部件的数目必须予先确定,因为下一地址生成逻辑只处理予先确定的外部条件数,对包含下一地址生成逻辑的那个部件进行控制的微操作也必须予先确定,以便能够根据各种外部条件作转移。该***的另一缺点是为一个部件编制固件的程序页必须知道任何一个子部件中何时会出现条件,并且必须把测试转移编入到固件中去,以便测试该微程序中这一条件是否存在。此外,微程序中的测试转移还会拉长微程序,并使它的执行速度低于不必对其它分部件中的外部条件进行测试的微程序。
如果生成控制存贮器地址的那个主子部件是单一的集成电路,或者说,如果对控制存贮器的访问实施控制的主要子部件中的下一地址生成逻辑是一单一的集成电路,那么想要在该***中增设可能会引起外部条件的其它子部件几乎是不可能的,因为,为了存取与那个外部条件相对应的那部分微程序,要求主子部件对这些外部条件进行检测。
因此需要这样一种体系结构,它准许把微程序化的子部件方便地加入到一个部件中而不必改变负责生成控制存贮器地址的那个主子部件的逻辑。
本发明的一个目的是提供这样一种体系结构,使得不需要修改负责生成控制存贮器地址的主部件就能把微程序化的子部件加入此***中。
本发明的另一个目的是提供一种分布式的控制存贮器的体系结构,使子控制存贮器与执行那些包含在相关子控制存贮器中微操作的逻辑部件离得比较近。
本发明的再一个目的是提出这样一种体系结构,它不需要主子部件来检测各子部件中要求由一个专门的微程序来处理的条件。
本发明的进一步目标是提出一种能减轻微程序设计者工作的体系结构,使他们不必编制用来不断测试要求专门处理的外部条件的微程序。
在后面附加的权利要求中,对此发明作了详细叙述。为了理解本发明的上述目标和进一步的目标与优点,可以参阅后面的说明和图解。
本发明提出了一种分布式控制存贮器结构,用于存贮可编程设备中的微指令,使得每个局部的子控制存贮器能够与受其微指令控制的子部件逻辑比较靠近,而这些微指令则是从与这个子部件有联系的局部子控制存贮器中读入的。主子部件负责生成下一条要从子控制存贮器中读出的微指令的地址。松散耦合的各子部件能够在主部件中导致一个陷井,使得主子部件能够知道子部件中要由微程序化的执行程序来专门处理的各条件。对主子部件提供了探询各子部件的逻辑,办法是把各子部件中的数据传送给主子部件,以使主子部件能够确定哪个子部件导致此陷井、哪个特定的条件需要予以注意。还提供了在微程序控制下禁止各子部件对主子部件引起陷井的逻辑。
通过下面的详细描述与附图,就能很好地了解本发明实施的方法,用本发明构成设备的方法及其工作的方式。在下面的附图中相同的参考编号表示相同的元件。在这些附图中:
图1是一个采用当前技术的数据处理***的框图,其中有两个子部件受一个公共的控制存贮器控制。
图2是在图1所示的数据处理***中微程序执行的流程图。
图3是一个采用本发明的数据处理***的框图。
图4是在图3所示的数据处理***中微程序执行的流程图。
图5是图3所示的中央处理机中几个微程序化子部件的比较详细的逻辑框图。
图6是图3和图5中用的几个信号的时间关系图,它包括不同的定时时钟,控制存贮器的地址信号以及控制存贮器的数据信号。
图3描绘了使用本发明优选方案的一个电子数据处理***,它由中央处理机(CPU)和其它成分组成。图3中的CPU包括主总线127之上的所有成分。它通过146号线经由高速缓存器107与此***中的其它部分通讯,高速缓存器107有地址线、数据线和控制线连到主总线127。主总线127本身也由地址线、数据线和控制线组成,它是主存129和***设备131和133之间传递信息的主要通路。主存129存贮由CPU执行的数据和软件程序指令,它通过148号线与主总线127连接。***设备131和133作为输入/输出部件,用来接收,存贮或输出进出此***的数据,它们和主总线的连接分别通过150号线和152号线。
如图3所示,中央处理机的逻辑可以分成四个部分。微处理机101通过执行主存129中的软件指令和软件程序完成中央处理机的算术和逻辑运算。虚存管理部件103把软件指令中的虚存地址转换为物理地址,这一地址经过140号线送到高速缓存器107。在这个优选方案中,来自微处理机101的虚地址由虚存管理部件103转换成30位的物理地址。高速缓存器107根据虚存管理部件103提供的物理地址,要么对主存129作一个读操作或写操作,要么从它自己的内部存储器中取数据或软件指令。从高速缓存器107取出的信息通过32位宽的处理机总线138供给微处理机101或虚存管理部件103。处理机总线138是该CPU中微处理机101、虚存管理部件103和高速缓存器107之间交换地址和数据的主要总线。粘合逻辑部件105包含一些杂散操作逻辑,它把微处理机101,虚存管理部件103和高速缓存器107联系在一起。如图3所示,这一部件包含一个ROS数据寄存器159,陷井控制逻辑173和时钟产生器125。
图3所示的中央处理机固件是固件控制的:其中微处理机101,虚存管理部件103,高速缓存器107和粘合逻辑105每个都受控制存贮器中的微指令所规定的微操作所控制。从图3中可以看出,本优选方案中控制存贮器是一只读存贮器,它分布在这个处理机的不同地方,使得对于各个子部件的微操作被存贮在本地的只读存贮器(ROS)中,而这个本地的只读存贮器则位于使用这些微操作的逻辑附近。这种分布式的ROS的优点是用于访问控制存贮器的较窄的14位地址分散到中央处理机中的各个微程序化的子部件,而较宽的104位的微指令则被分割成4段,使得每段的局部ROS位于使用这些操作的逻辑附近。因此,从图3中可以看到,微处理机101从它的ROS 109中通过104号线得到称为MPROSDT信号的67位宽的微操作。虚存管理部件103从虚存的ROS 111中通过106线得到称为VMROSDT信号的16位宽的微操作。高速缓存器107从高速缓存器的ROS 115中通过112号线得到称为CHROSDT信号的16位宽的微操作,粘合逻辑部件105则从粘合部件的ROS 113中通过108号线得到称为GLROSDT信号的4位宽的微操作。此外,粘合逻辑的ROS 113在110号线提供一个信号ROSPRTY,它是整个ROS的奇校验位,这样,每条103位宽的微指令都有一个相应的奇校验位,即第104位。这就是说,在控制存贮器中每条104位宽的微指令字中二进制1的位数一定是奇数。
控制存贮器由4个只读存贮器109、111、113和115组成,对它们的访问由称为主子部件的微处理机101来控制的。微处理机101算出下一条微指令的地址并在102号线上产生一称为ROSADDR信号的14位宽的地址用来访问每一个只读存贮器。这一14位宽的控制存贮器地址允许访问该控制存贮器中16K(1K=1024)104位长的指令字。
根据与每条微指令有关的第104位这一奇校验位的值,中央处理机能够检查出从控制存贮器中读出的微指令字是否带有一位错。在每条微指令字从控制存贮器中读出时进行,读出错误的检测,它是由粘合逻辑105中的一个奇偶计算一校验器(图中未画出)来完成的。如果奇偶计算一校验电路发现从该微指令字中算出的奇偶性与该指令字中含有的奇偶位不同,它就产生一个取消信号,这个信号阻止时钟产生器125在126号线上产生时钟信号CLK4。如果算出的奇偶性与存贮着的奇偶性不一致,上述的取消信号被用来取消当前这条微指令的执行,因为它包含有读出错误。然后,该微指令从控制存贮器中重新被读出并重新被执行。
时钟产生器125除了产生126号线上的时钟信号CLK4外,还产生时钟信号T1,T2,T3和T4。在中央处理机的各个部分中都要用T1到T4这4个时钟信号和CLK4,目的是同步微处理机101、虚存管理部件103、高速缓存器107和粘合逻辑105中的各种操作。图6表示各种时钟定时信号与ROS的地址、数据信号和读出错误信号的时间关系图。
如上所述,本优选方案***是这样设计的:即CPU中的各个子部件都是由固件通过微操作来控制的。微处理机101作为主子部件负责计算下一条要读的微指令地址,微指令的各个部分分别从微处理机的ROS 109,虚存的ROS 111,高速缓存的ROS 115和粘合逻辑的ROS 113中读出。该CPU是这样设计的:在执行第一条微指令期间就把第二条微指令的地址交给每一个ROS,而且,在执行第一条微指令的过程中就开始读第二条微指令,这样在第一条微指令执行完后,第二条微指令就已经得到了。这种在执行当前指令的同时就读下一条指令的复盖技术在图6中作了说明。我们可以看出,102号线上14位控制存贮器地址信号ROSADDR在第二个存贮周期内还指向控制存贮器的单元B,而ROS数据寄存器153中的内容则是存贮单元A的内容,即在第二个存贮周期内正在被执行的当前指令。ROS数据寄存器153的输出是67个固件位,它就是在114线上用来控制微处理机101的信号RDROUT。在图6中,用存贮单元地址“A”、“B”、“C”等等加上括号来表示该存贮单元中的内容,例如对RDROUT信号就是这样表示的。
在本优选方案中,CPU执行一条微指令所需的时间被分成四个相等的时间周期:周期1、周期2、周期3和周期4。执行一条微指令的总时间约160毫微秒,所以周期1到4每个长为40毫微秒。CPU逻辑使用与周期1到4有关的定时信号T1到T4来同步CPU中不同逻辑元件的动作。在周期1到4期间定时信号T1到T4各自保持40毫微秒长的“1”状态。
如果CPU中没有错误,信号CLK4将与定时信号T4相同。如果取消信号变“1”,那么,在定时信号T4为“1”的时间内,时钟产生器125不产生状态为“1”的信号CLK4。上述过程可从图6中看出,其中在第5个周期内发现了控制存贮器奇偶错,使取消信号变“1”,接着又便在定时信号T4为“1”的时间内CLK4信号保持为“0”。
在讨论CPU中各个微程序控制的子部件是如何影响从公共的分布式控制存贮器中读出的微程序流之前,我们先结合图6中所示的各种信号的时间关系来说明图4中的逻辑操作。如上所述,要从控制存贮器中读出的下一条微指令的地址是由微处理机101确定的。在微处理机101中,生成下一ROS的地址主要是下一地址生成逻辑167的职能,它从当前正在执行的微指令中(该微指令存放在ROS数据寄存器153中,并在114号线上以信号RDROUT表示)接收某些位作为共输入,还通过对当前微指令的译码得到另一路输入。微操作的译码由微操作译码器161完成。图6表示,在时间周期3,4和1期间(即定时信号T3、T4和T1分别为高电平时)在102线上从下一地址生成逻辑167的输出端可以得到称为信号ROSADDR的14位ROS地址。
图6中,带有阴影的区域表示在这些周期内,信号的状态不确定。例如,信号ROSADDR,它是下一个ROS地址,在时间周期2内是不确定的。图6表示在第一条微指令的存贮周期内(实际上是在存贮周期1内的时间3和4以及存贮周期2内的时间1),信号ROSADDR将含有控制存贮器A的地址。在第二条微指令周期内ROSADDR会有控制存贮单元B的地址。在第三条微指令存贮周期内,它含有控制存贮器单元C的地址,依次类推。
只要不出现异常条件,(这种异常条件会将CPU中正在执行的微程序转到一个处理异常事件的微程序),下一条要从控制存贮器中读出的微指令地址总是由微处理机101中的逻辑和101中各种寄存器和触发器的状态所确定。具体地说,下一地址生成逻辑167查阅来自ROS数据寄存器153的地址位和由微操作译码器161译码得到的各种微操作。在不出现异常事件时,ROS数据寄存器153和微操作译码器161的输出控制着下一地址生成逻辑167的输出以及各种状态指示器,这些指示器指出微处理机101中完成的各种操作的状态,例如,完成的最后一个算术运算的结果是0,奇数还是偶数,是正数还是负数,有无上溢出或下溢出。在微处理机101执行从控制存贮器中读出的部分微指令(即从微处理机的ROS 109中得到的那一部分)的同时,虚存管理部件103利用微操作译码器163执行从ROS数据寄存器155中得到的那一部分微指令。类似地,高速缓存器107依据微操作译码器165的译码结果,执行从ROS数据寄存器157中得到的那一部分微指令。与此同时,粘合逻辑105依据捕俘逻辑173中和图中没有画出的其它逻辑中的微操作译码逻辑的译码结果,执行从ROS数据寄存器159中得到的那一部分微指令。
随着每条微指令分成几个部分分别由子部件101,103,105和107处理,微处理机101生成指令的地址,下一条指令则从由ROS 109、111、115和113组成的控制存贮器中读出。如果虚存管理部件103或高速缓存器107出现某个条件而需要由专门的微程序来校正它,那么虚存管理部件103或高速缓存器107可以分别把捕俘触发器175和177置1,以便处理与它们有关的异常条件。例如,如果微处理机101经由处理机总线138提供给虚存管理部件103的虚地址因为所要的页面描述信息不在此虚存管理部件中而不能马上转换成一个物理地址,必须先通过一个主存的读操作把必要的页面描述信息取到虚存管理部件的内存中才行,那么在这种情形下,虚存管理部件103就会产生一个异常条件。类似地,如果高速缓存器107检测到:在140号线上给出的来自虚存管理部件103的30位物理地址所对应的单元不在高速缓存器107的小存贮器中,那么107必须存取主存127并读进一个主存页面,以便从高速缓存器107中能够取到所要的单元。如果在高速缓存器107中或在主存129中没有所要访问的单元,捕俘触发器177就被置“1”。捕俘触发器175的置值使154号线上的信号VMINT变“1”,而捕俘触发器177的置“1”使156号线上的信号CHCINT变“1”。
154号线上的信号VMINT和156号线上的信号CHCINT两者都是粘合逻辑105中捕俘允许逻辑173的输入。如果在捕俘允许逻辑173的输入端上信号VMINT为“1”,那么在捕俘逻辑173的一个输出端上送到158线的信号VMTRP也将为“1”,除非ROS数据寄存器159中的那一段微指令字中的虚存捕俘禁止位为“1”。类似地,如果捕俘允许逻辑173的输入端上信号CHCINT为“1”,那么在捕俘允许逻辑173的输出端160线上的信号UEVTRP也将为“1”,除非ROS的数据寄存器159中那段微指令字中的异常事件捕俘禁止位为“1”。158线上的信号VMTRP和160线上的信号UEVTRP作为微处理机101的下一地址生成逻辑167的输入。在执行位于ROS数据寄存器153中的那段微指令时,如果信号VMTRP或者UEVTRP两者中只要有一个的状态为“1”,下一地址生成逻辑167就不根据未来的下一个ROS地址指出的单元中去读下一条微指令,而是把这可能的下一个ROS地址存起来再转到两个存有微程序的ROS单元中的某一个,这两个微程序是用来处理虚存和高速缓存器的捕俘条件的。
紧接着应确定虚存管理部件103或高速缓存器107中引起捕俘的真正条件。因为在103或107中可能有若干个条件均能引起捕俘中断,所以,处理各种捕俘的微程序是这样编排的:使得虚存管理部件103中的故障寄存器169或高速缓存器107中的故障寄存器171有一个被加载到处理机总线138,并被读到微处理机101中。故障寄存器169和171中哪一个起作用是由捕俘处理微程序中的微指令的微操作控制的。如果对处理机总线138起作用的故障寄存器是169,那么在ROS数据寄存器155中的那一段微指令将有一个使故障寄存器起作用的微操作,这个微操作被编入这段微指令中并由微操作译码器163来译码。类似地,如果对处理机总线起作用的是高速缓存器107的故障寄存器171,那么包含在ROS数据寄存器157中的那一段微指令将有一个使故障寄存器起作用的微操作,这个微操作也被编入那一段微指令中并由微操作译码器165进行译码。在任何一条微指令中,故障寄存器169和171中只应当有一个能加到处理机总线138上。因此,微指令的编制要么是准对使故障寄存器169与处理机总线138接通,要么是使故障寄存器171与总线138接通。
一旦故障寄存器169或171中的内容被送到了处理机总线138,从而就可用作为微处理机101的输入,微处理机101就能够测试故障寄存器中各个位,以便确定引起捕俘条件的确切原因,然而在微处理机101执行的微操作的控制下转移到处理特定的异常事件所需的微程序。为了省去必须使虚存管理部件中的故障寄存器与处理机总线138接通的才能确定到底是哪一个条件引起虚存捕俘出现的这种做法,虚存管理部件103还通过162线向下一地址生成逻辑送出三个信号VMVECT。这三个信号的二进制编码能够向微处理机101指出虚存管理部件103中8个可能的条件,而不用加入故障寄存器169的内容。因此,每当虚存捕俘信号VMTRP变1时,处理机的动作不是只转到用来处理虚存捕俘的单一的微程序,而是转到8个微程序中的一个,其中每个微程序只处理由信号VMVECT编码的8种可能的捕俘条件中的一种。利用这种机构,消除了必须把故障寄存器169的内容送到处理机总线138供微处理机101使用的要求,从而使得引起捕俘的特定条件能够更方便地进行处理。在本优选方案***中,有六个导致虚存捕俘的条件不用把故障寄存器169的内容送给微处理机101就能够处理。第七个条件是一个公用的条件,必须把故障寄存器169的内容送到微处理机101才能确定这个条件的具体原因。第八个可能的条件当前不用而留给将来用,即当虚存管理部件103中有一个条件必须以方便的形式进行处理的时候。
为了理解图3所示的中央处理机的微程序编制方法,我们来看图4所示的微程序流程图。块AA表示含有4个微操作MP1,VM1,CH1和GL1的一条微指令,MP1从微处理机的ROS 109中读入并由微处理机101执行,VM1从虚存的ROS 111中读入并由虚存管理部件103执行,高速缓存器的微操作CH1则从它的ROS 115中读入并由高速缓存器107执行,而粘合逻辑的微操作CL1则从它的ROS 113中读入并由粘合逻辑105执行。在执行块AA的这条微指令期间,由微处理机101执行的那个微操作即MP1将使下一地址生成逻辑167产生下一条微指令的地址,即产生微指令块BB的地址。接着,微指令块BB从中央控制存贮器中读出并在下一微指令存贮周期内被执行。在执行块BB时,微操作MP2,VM2,CH2和GL2也就被执行。微指令BB中的微操作GL2使虚存捕俘起作用,如果发生虚存捕俘条件就能够引起捕俘并把处理虚存捕俘的微程序的第一条微指令作为下一条要执行的微指令。
如果在执行微指令块AA期间,由于虚存管理部件103所执行的微操作VM1产生一个捕俘条件,或者在更早些时候执行虚存微操作时产生了虚存捕俘条件但在执行微指令块AA期间又禁止虚存捕俘,那么在执行微指令块BB后,下一条微指令不是从块CC中去取,而是从块MM中去取,这是专门用来处理虚存捕俘的微程序。因此,块BB执行完后从块MM中取出了下一条微指令,它是虚存捕俘微程序的第一条指令。实际上,块MM是处理8个不同的可能捕俘条件的8个微程序之一的第一条指令,在这8个微程序中应该具体执行哪一个则由163号线上的三个信号VMVECT所确定,这三个信号把此捕俘与处理8个可能的虚存捕俘条件之一的特定例程连系起来。块MM中的微指令实现微操作MP10,VM10,CH10和GL10。然后虚存捕俘微程序继续执行微指令块NN等等,直到执行微指令块OO。块OO中的微指令是这样编制的:使得微处理机101所执行的那个微操作MP19将产生一个与块CC有联系的微指令地址,而此指令却将是在正常情况下,即不出现虚存管理捕俘时接着微指令块BB执行的。
微指令块CC被执行后接着执行微指令块DD。假设在微指令块CC执行期间,在高速缓存器107中出现了需要一个专门的微程序来处理的异常条件。在微指令块DD中,由粘合逻辑105所执行的微操作GL4开启异常事件的通路,所以当捕俘条件出现时下一地址生成逻辑167将通过捕俘转到处理的异常条件的微程序。因为在执行微指令块CC期间已经产生了一个捕俘条件,所以在执行微指令块DD时,下一地址生成逻辑167将给出微指令块RR的地址并从控制存贮器中读入这个微指令块。微指令块RR包含四个微操作:MP20、VM20、CH20和GL20,它们分别由微处理机101、虚存管理部件103、高速缓存器107和粘合逻辑105来执行。高速缓存器107执行的微操作CH20使故障寄存器171和处理机总线138接通,于是,该故障寄存器的内容便能送到微处理机101。微指令块SS随后从控制寄存器中读出并通过四个微操作MP21、VM21、CH21和GL21来执行这条微指令。由微处理机101执行的微操作MP21可以根据故障寄存器171送给它的内容中各位的值作测试转移,即根据该故障寄存器中哪一位置“1”而转到处理与那一位相联系的特定条件的异常事件处理微程序。因此在执行微指令块SS期间,通过测试各种不同的故障位导致下一地址生成逻辑167产生微指令块TT的地址。然后,微指令块TT和其它微指令依次被读出并执行,直到异常事件捕俘处理程序的最后一条微指令即微指令块UU被执行为止。微指令块UU含有一个微操作MP29,它由微处理机101执行并产生作为下一条微指令地址的返回地址,这个地址导致微指令块EE从控制存贮器中被读出和执行。微指令块EE实现微操作MP5、VM5、CH5和GL5。接着微指令块EE之后,微指令块FF和GG被读出和执行,只要不发生另外的捕俘中断,主微程序就这样继续不断地执行下去。
虽然图4中所示的每条微指令均包含由微处理机101、虚存管理部件103、高速缓存器107和粘合逻辑105执行的微操作,但在实际的微程序中,某个部件的某些微指令可以是空操作,只有主子部件是例外,因为,主子部件总要生成下一控制存贮器地址,使下一条微指令能够被读出和执行。
借助于图5可以详细讨论捕俘是如何控制存放在控制存贮器中的微程序的执行过程,在此之前,让我们来扼要比较一下采用现有技术的***及其流程图1和2与采用本发明的***(图3)及其相应的流程图4之间的差别。
在图1所示的***中,微程序化的各个子部件是紧耦合的,即每个子部件均能直接影响由下一地址生成逻辑67产生的下一个控制存贮器的地址。造成这种结果的原因是允许微处理机1中的条件能直接影响下一地址生成逻辑67的输出,以及允许商用指令处理机3中的条件直接影响下一地址生成逻辑,因为让来自指示寄存器61的在60号线上的信号送给了下一地址生成逻辑67。从图2可以看出,上述条件是由微处理机1在作转移微操作时予以检测的,具体地说,是在与块C有关的那条微指令中根据指示寄存器的内容实现转移。为了检测处理机1本身的各种条件,它还能够做其它的转移操作,但这些在图2中没有画出。图1所示的***有一个限制,即要想在***中再加入其它的微程序化的子部件是不容易的,除非原先就考虑到要加入这些子部件并为下一地址生成逻辑提供备份的输入以及为处理机1提供备份的微操作以便测试备份输入的状态。
上述情形与图3所示的采用本发明的***不同。对于图3所示的***,可以把若干个微程序化的子部件方便地加入到***中,只要让加入的子部件能对微处理机101产生捕俘并带有一个处理此捕俘的微程序,可以通过把故障寄存器的内容作为引起捕俘的条件指示经由138号处理机总线送给微处理机101即可现实。
例如,我们可以把微程序化的第5个子部件加入到图3这个***中,办法是加进第5个ROS和一个连接到处理机总线138上的故障寄存器。此外,在这第五个微程序化的子部件中,应当有一个能被捕俘条件置值的捕俘触发器,而且此捕俘触发器的输出与高速缓存器107的捕俘触发器的输出是逻辑或的关系。处理异常事件捕俘的微程序可以这样编制:它首先查看高速缓存器并分析故障寄存器171中的内容,是否由高速缓存器107引起的捕俘,如果不是,就再读出第五个子部件中故障寄存器的内容并测试其中是否有引起此异常事件捕俘的任何条件。
图2和图4的比较表明,本发明的***还有进一步的优点:即在编制本发明的微程序时不必考虑到各个不同的子部件中可能引起捕俘的那些条件,这样一来,在编制由微指令块AA到GG组成的图4中的主微程序时,可以不用考虑虚存管理部件103和高速缓存器107中可能发生的条件。这些可能出现的异常事件由捕俘微程序来处理,例如,含有指令块MM、NN和OO的微程序用来处理虚存的捕俘,含有指令块RR到UU的微程序用来处理异常事件捕俘。这和图2所示的微程序不同,在图2中,程序员必须知道商用指令处理机3中可能出现的条件,而且必须通过执行分枝微操作来测试该程序中的这些条件。
图5表示图3中某些逻辑的更详细的逻辑框图。图中各元件之输入端或输出端上的小园圈,例如寄存器169的允许输入信号,分别表示反相输入或输出。如上所述,在微处理机101、虚存管理部件103、高速缓存器107和粘合逻辑105分别执行当前微指令的不同的操作段的时候,下一地址生成逻辑167产生要从控制存贮器中读出的下一条微指令的地址,而要读出的这条微指令的各个操作段分别来自ROS 109、111、105和113。因此,在现行微指令的时间片2的执行期内,ROS地址寄存器501由加在它时钟输入端(C)上的信号T2来定时,从而在102号线上输出14位长的信号ROSADDR,此信号包含要读出的下一条微指令在控制存贮器中的单元地址。到现行微指令周期结束时,下一条微指令已从控制存贮器中读出而且在ROS 109、111、115和113的数据输出端上。在时间片4结束时,定时信号T4由“1”变“0”从而使反相器513、515、517和519的输出分别从“0”变“1”,这些输出分别作为ROS数据寄存器153、155、157和159的时钟输入,在此时钟输入的控制下,上述的下一条微指令便打入到ROS数据寄存器153、155、157和159中。因此在下一个微指令周期开始时,该微指令已经在不同的ROS数据寄存器中了。
现在,上述的下一条微指令已经变成当前的微指令了,而下一地址生成逻辑167(见图3)又产生下一条微指令的地址。在图5中,更详细地给出了下一地址生成逻辑167的细节,它包括正常的下一地址生成逻辑505,返回地址堆栈507和多路转换器503。正常的下一地址生成逻辑505的输入来自ROS数据寄存器153的各个位以及微处理机101中的一些状态信息,这些信息指出上一次执行的算术运算结果是0还是偶数、正数或负数,是否溢出等等。正常的下一地址生成逻辑505的输入还来自微操作译码器161,此译码器对各种各样的微操作,例如转移操作或溢出转移操作等进行译码,从而为正常的下一地址生成逻辑505提供输入。正常的下一地址生成逻辑505产生14位长的控制存贮器地址作为输出,它是未来的下一ROS的地址。这个地址提供给多路转换器503的B端输入也作为返回地址堆栈507的输入。
多路转换器503的A输入端用来接收返回地址堆栈507的地址输出。返回地址堆栈507是一下推式的堆栈。在本优选方案中,此堆栈的深度为8。每当返回地址堆栈处于下推工作方式时,它把堆栈的所有内容下推并把正常的下一地址生成逻辑505的14位地址输出放到栈顶。每当堆栈上托时,它从栈顶取出14位长的地址并把它提供给多路转接器503的A输入端。堆栈的移动受时钟(C)控制,它接收与门521的信号作为输入。与门521接收时钟信号CLK4作为输入,如果没有错误,时钟信号CLK4在定时信号T4为“1”的时间内保持为“1”,如图6所示。与门521的另一输入是或门523的输出。或门523的输入之一是信号MPM2,它来自微操作译码器161。如果ROS数据寄存器153中规定的微操作指明有一个地址要被存到返回地址堆栈507,那么信号MPM2变为“1”,从而使或门523的输出为“1”,这将使与门521部分选通,等到达时间片4时,就使与门521全部选通,从而使返回地址堆栈507有了时钟信号,于是14位的地址就被放到栈顶。或门523的另一输入是或门527的输出。或门527的两个输入信号是158号线上的VMTRAP和160号线上的UEVTRP,其中VMTRAP表示出现虚存捕俘条件,而UEVTRP用二进制“1”状态表示出现了非予料的事件条件。因此可以断言,在这个***中无论出现虚存捕俘条件或者出现意外事件的捕俘条件,或门527的输出将为“1”。从而使或门523的输出也为1。因此,这些条件中的任何一个将使未来的下一ROS地址,即信号PNXROSA在现行微指令周期内的第4个时间片中被存到返回地址堆栈507中。
多路转换器503的C端输入是来自两处的14位地址。这14位地址中的11位是予先置成“1”或者“0”,另外3位则是来自捕俘条件寄存器511的信号VMVECT。VMVECT的三位信号是“0”还是“1”取决于虚存管理部件103中出现什么样的捕俘条件,这三位和予先确定的11位结合在一起给出8个分枝可以转到8个不同的虚存捕俘微程序以处理8个不同的可能捕俘条件。
多路转换器503的D输入端是予先确定的14位地址,它是非向的异常事件捕俘处理微程序的首址,当出现意外事件捕俘时,它就被执行。
选通信号(S1和S2)是二进制编码的可以提供四种选择,多路转换器503就根据此选通信号的状态选出四个输入A、B、C和D中的某一个。当选通信号S1和S2全为“0”时,多路转换器503选出输入A。S1为“0”的条件是或门525的输出为“0”。或门525的输出为“0”的条件是160号线上的信号UEVTRP为“0”,这表示不存在意外事件捕俘条件,同时来自微操作译码器161的信号MPM3为“1”,它使反相器545的输出为“0”。来自微操作译码器161的信号MPM3为“1”的条件是ROS数据寄存器153中包含的微指令是返回微操作,它表明下一个ROS地址应当取自返回地址堆栈507。
如果S1输入信号为“1”而S2输入信号为“0”时,多路转接器503的B输入就被选为输出。如果微操作译码器161没有译出一个返回微操作,信号MPM3为“0”导致反相器545的输出为“1”,使输入信号S1为“1”;或者当出现了意外事件捕俘条件使得或门525的另一输入端上的信号UEVTRP为“1”时,输入信号S1也将为“1”。在既没有虚存捕俘也没有意外事件捕俘条件的情况下信号VMTRP和UEVTRP均为“0”,或门527的输出也就为“0”,在这种情况下输入信号S2也就为“0”。
如果信号S1为“0”且信号S2为“1”时,多路转接器503的C输入就被选为输出。上述情形是在或门525的一个输入端上的信号UEVTRP的状态为“0”(这表示没有意外事件捕俘条件)并且或门527的一个输入端上的信号VMTRP为二进制“1”(这表示有虚存捕俘条件)时发生的。
如果选通信号S1为“1”,选通信号2也为“1”,那么多路转接器503的D输入就被送到它的输出端作为信号NXROSAD。上述条件是当出现一个意外事件捕俘条件使或门525的一个输入端和或门527的一个输入端上的信号UEVTRP变成“1”时产生的。
从上述对于下一地址生成逻辑167(见图3)的操作讨论过程中,我们可以得出结论:如果出现一个捕俘条件,那么多路转接器503的C输入或者D输入将被选通并被送到多路转接器的输出端,同时对未来的下一个ROS地址完成下推到返回地址堆栈507的顶部。从上述讨论还可以得出另一个结论:如果意外事件捕俘和虚存捕俘条件两者同时出现,那么将选取多路转接器503中的输入D,因此意外事件捕俘条件比之虚存捕俘条件有着较高的优先权。
如上所述,每当虚存管理部件103中出现了一个条件而需要执行一个专门的微程序来处理它时,虚存捕俘触发器175就被置1。类似地,如果高速缓存器107中出现一条件而需要执行一个专门的微程序时,高速缓存器的捕俘触发器177就被置1。虚存捕俘触发器175是当在时钟输入端(C)上的定时信号CLK4由“0”变“1”而数据输入端(D)上的信号VTC为“1”的情况下被置1的。信号VTC为“1”状态的条件是在虚存管理部件103中出现一个捕俘条件。类似地,高速缓存器的捕俘触发器177是在时间片4开始时定时信号CLK4由“0”变“1”而高速缓存器的数据输入端(D)上的信号CTC为“1”的情况下被置“1”的,这种情形发生在当前微指令的执行快要结束的时候。如果高速缓存器107中出现一个需要用一个专门的微程序来进行处理的条件时,信号CTC将变成“1”状态。
如果虚存捕俘触发器175被置“1”,在它的Q输出端的信号VMINT为“1”,这将使与门539处于半开状态。如果高速缓存器的触发器177被置“1”,那么在它的Q输出端上的信号CHINT为“1”,这将使与门543处于半开状态。与门539的另一个输入是反相器537的输出。与门543的另一输入是反相器541的输出。反相器537的输入来自ROS数据寄存器159的Q3输出端上的信号GLROSD3。反相器541的输入则是ROS数据寄存器159的Q2输出端上的信号GLROSD2。如上指出,ROS数据寄存器159是在时间片4结束时由信号T4从“1”到“0”的跳变来定时启动的,从而使粘合逻辑的ROS 131的输出通过数据输入端D0到D4定时地装入到ROS数据寄存器159中,如果意外事件捕俘被禁止,那么D2输入端上的信号GLROSDT2为“1”状态。如果虚存捕俘被禁止,那么D3输入端上的信号GLROSDT3便为“1”状态。上述两个信号GLROSDT2和GLROSDT3对应于微指令中的某些位,它们分别可使与门543和539关闭,从而禁止了意外事件捕俘或虚存捕俘。
如果与门543和539不是因为禁止捕俘而处于关闭状态,那么当高速缓存器的捕俘触发器177被置1时160号线上的意外事件捕俘信号UEVTRP为“1”状态,而当虚存捕俘触发器175被置位时158号线上的虚存捕俘信号VMTRP为“1”状态。只要捕俘触发器175和177中有一个被置位,信号VMTRP和UEVTRP中就有一个为“1”状态,从而使多路转接器503选通C或D输入,这就使下一条微指令从控制存贮器中捕俘处理微程序的第一个单元中读出。
如上所述,当多路转接器503选通C输入或D输入时,未来的下一ROS地址,即来自正常的下一地址生成逻辑505的信号PNSROSA,将被下推到返回地址堆栈507中,以便在捕俘服务微程序结束时退出堆栈再被使用。如果因为出现了意外事件捕俘而使多路转接器503把D输入送到它的输出端,那么接着进入的微程序能够把故障寄存器171的内容传送给微处理机101,因为在进入的这条微指令中安排有使译码器165的输出(即信号CHM1)变成“1”的微操作。当信号CHM变“1”时,它使反相器549的输出为“0”。反相器549的输出用作高速缓存的捕俘触发器177的复位输入(R)从而使触发器177复位,反相器549的输出还作为或门535的一个输入。或门535的另一个输入来自或非门533,它有两个输入信号T1和T2,T1和T2分别在时间片1和2期间处于“1”状态。在一条微指令周期中的时间片1和2期间,或非门533的输出为“0”,因此在这期间,如果来自微操作译码器165的信号CHM1为“1”,那么或门535的输出就是“0”。或门535的“0”输出使故障寄存器171的输出送到处理机总线138上。因此,如果在读出的这条微指令中编入了一个CHM1微操作,那么高速缓存器的捕俘触发器177将被复位,从而清除了这个捕俘条件并把此故障寄存器的内容加到处理机总线138上,而此内容借助于BM寄存器509的时钟输入端(C)上的定时信号T2在时间片2期间被送到微处理机101的BM寄存器509中。这个寄存器的输出是正常的下一地址生成逻辑505的输入,因此使得故障寄存器171中的故障位(它指出引起高速缓存捕俘的具体条件)能够在微处理机101中进行测试并根据故障位的置值情况实现转移。
虚存捕俘触发器175和故障寄存器169的工作方式与高速缓存器的捕俘触发器177和故障寄存器171的工作方式完全类似,也即只要在读入的微指令中编入一个微操作,此微操作由译码器163译码并在有此微操作时产生一个状态为“1”的信号VMM1,那么捕俘触发器177就被清除,故障寄存器171的内容就被送到处理机总线138上。信号VMM1经过反相器547反相后会同经由或非门529的信号T1和T2通过或门531产生一个“0”,从而使故障寄存器169的内容送到处理机总线138上。上述的微操作除了清除虚存捕俘触发器175以外还清除捕俘条件寄存器511,寄存器511用来保存三个特征位,这些特征位是用来确定8个可能的条件中哪一个引起了虚存捕俘条件以及哪一个用于控制经由多路转接器503的8维向量捕俘。
从上面的讨论中我们可以知道,只要本***的子部件中出现一个捕俘条件,它将导致一个捕俘触发器在当前微指令的时间片4的执行期内被置“1”。在执行下一条微指令时,如果在它当中没有予先安排的用以禁止该捕俘出现的微操作因而使与门539或543在下一条指令执行期内处于开启状态,那么下一地址生成逻辑将产生用以处理此捕俘条件的微程序的地址并把原来应该执行的下一条微指令地址(假如不出现此次捕俘)推到返回地址堆栈507中。在捕俘处理程序执行期间,利用编排好的微操作可把故障寄存器的内容送到处理机总线138,接着又送给微处理机101以便考察这些故障位并确定到底是哪一个条件引起此次捕俘。在捕俘处理程序的末尾可以安排这样一个微操作,它由微操作译码器161译码后使返回地址从返回地址堆栈507中退出,从而使执行回到出现捕俘条件时被中断的那个微程序。
多路转接器503输出的下一ROS地址由ROS地址寄存器501的时钟输入端(C)上的定时信号T2被送到寄存器501中。ROS地址寄存器501里是一透明型的锁存器,在定时信号为“1”状态时,它使输入通向输出,而当定时信号由“1”变“0”时它将输入信号锁入输出端。上述情形可以用图6来说明,图中表示在第一条微指令周期内,ROS地址信号ROSADDR在周期1的时间片3和4及周期2的时间片1内指向控制存贮器的存贮单元A。图6还表明,在时间片2内,ROS地址是不确定的,在时间片2结束时,才将输入信号锁入到输出端。
102线上的14位ROS地址接到微处理机的ROS 109的地址输入端用以访问该控制存贮器中16K单元中的某一个。这一14位的ROS地址也接到控制存贮器的其它部分,即虚存的ROS 111,粘合逻辑的ROS 113以及高速缓存器的ROS115。这些ROS总是允许读的,因为它们的写允许输入端是“0”状态。在ROS地址加到控制存贮器的地址输入端后,过了一定时间就能从ROS中读出一个所要的单元。这时在每个不同的ROS数据输出端上就能得到相应的数据,举例说,在104线上可以得到作为信号MPROSDT的67位ROS数据。被访问的微指令单元的内容往往在时间片4内便可得到而且在时间片1内一直可以利用。反相器513的输出接到ROS数据寄存器153的时钟输入(C),该数据寄存器是一D型寄存器。当反相器513的输入端上的定时信号T4变“0”时,它的输出变“1”便打入数据寄存器153。因此从图6可以看出,在时间片4结束时,114线上的67位输出信号RDROUT将等于ROS数据寄存器153的输入端上的信号MPROSTD。因此在图6所示的第二个微指令周期内,信号RDROUT包含控制存贮器单元A的内容,而单元A的地址在前一个微指令周期内送到控制存贮器的地址输入端的。由此可以看出,微处理机101在执行当前微指令的同时产生下一个微指令的地址。
根据上述讨论并参看图6中的信号ROSADDR和RDROUT可以知道,在一个微指令周期内,一面产生下一条微指令的地址一面执行当前微指令并利用形成的地址开始从控制存贮器中读下一条微指令,这样,在下一个周期开始时,刚才读出的微指令就可利用了。
虽然以上讨论的控制存贮器只用来控制在中央处理机中的微指令的执行过程,但是上述原理同样适用于在其它处理部件中控制微指令执行过程的控制存贮器。此外,虽然以上讨论基于把一个中央控制存贮器分割为多个较小的子控制存贮器而且每个子控制存贮器只连到一个子部件,但是本发明的原理同样适用于单个控制存贮器与一个或多个子部件连接的情形。
虽然上述讨论是针对包含四个微程序化子部件的***,且其中两个子部件能够引起捕俘条件,但本发明的原理能够用于具有多个微程序化子部件的***。如果有多个能引起共同捕俘条件的子部件要加到此***中,这只要对每个子部件加一个故障寄存器,这些故障寄存器能够被有选择地送到处理机总线上,所以对应于这个公共的捕俘条件的微程序能够查询各个子部件并找出引起此捕俘的那个子部件。利用上述办法,不用改变产生下一微指令地址的主子部件的逻辑即可把微程序化的子部件加入此***中。
虽然上面的讨论是针对当前微指令的执行与下一条微指令的读出相重叠这种情况的,但本发明的原理同样可用于一条微指令的执行与多条微指令的读出相重叠的情形,也适用于在执行当前这条微指令后再开始读下一条微指令的情形。
虽然本发明是以本优选方案加以介绍和说明的,但是熟悉本行的人将会懂得,在本发明的精神和范围内可在形式上和细节上作出上述的和其它改变。
Claims (11)
1、一个可以微程序化的***包括:
A.多个可微程序化的子部件,上述部件中的一个是主子部件;
B.用来存放许多微指令的一个控制存贮器,上述控制存贮器包含多个子控制存贮器,上述多个子控制存贮器中每一个控制存贮器用来控制上述多个子部件中一个相应的子部件,上述多个子控制存贮器中每一个控制存贮器用来存贮上述多个微指令中每一个微指令中每一个微指令的一部分,上述多个子控制存贮器中每个子控制存贮器有一地址输入和一个数据输出,上述每个子控制存贮器中的地址输入接到上述的主子部件用来接收一条微指令的地址,上述每个子控制存贮器的数据输出接到和它对应的上述子部件用以提供微操作并由它对应的上述子部件执行;
C.下一地址生成装置,它包含在上述的主子部件中用于产生从上述的控制存贮器中读出的下一条微指令的地址;
D.捕俘请求装置,它包含在上述多个子部件中的第一个中,用来对上述主子部件产生一个捕俘信号,以指出在上述第一个子部件中出现了一个需要由异常处理微程序来处理的异常条件;
E.捕俘响应装置,它包含在上述下一地址生成机构中,能使这下一地址生成机构产生一个予先确定的捕俘地址,作为上述控制存贮器的微指令地址,上述予先确定的捕俘地址指向异常捕俘条件处理微程序所存放的单元;
在上述***的正常工作期间,上述微指令的执行受上述主子部件中条件的控制,但是上述的第一个子部件可以通过产生上述的捕俘信号来执行处理上述捕俘条件异常的微程序。
2、权利要求1所指的***进一步包括:
A.与上述下一地址生成装置连接的第一个故障寄存器,此寄存器用来保存上述第一子部件中一个或多个条件指示位,这些条件要求执行上述的捕俘异常条件微程序;
B.包含在上述第一子部件中与上述第一故障寄存器连接的第一故障寄存器接通装置,此装置使上述故障寄存器中的一位或多位指示能够改变上述下一地址生成装置产生的微指令的地址,从而使上述的捕俘异常条件微程序能够检测上述第一子部件中产生的各别条件。
3、权利要求2所述的***,其中第一故障寄存器接通装置能对寄存贮在与上述第一子部件对应的子控制存贮器中的第一个微操作作出响应。
4、权利要求3所述的***进一步包括:
A.与上述下一地址生成装置连接的第二故障寄存器,此故障寄存器用来保存上述多个子部件中第二个子部件中的一个或多个条件指示位,这些条件要求执行上述捕俘异常条件的微程序;
B.包含在上述第二个子部件中与上述第二故障寄存器连接的第二故障寄存器接通装置,此装置能使上述第二故障寄存器中一位或多位指示影响上述下一地址生成装置产生的微指令的地址,因而使上述捕俘异常条件微程序能够检测上述第二子部件中出现的各别条件,上述第二故障寄存器接通机构能对存贮在与第二子部件相对应的子控制存贮器中的第二个微操作作出响应,借助于这个机构,上述捕俘异常条件微程序能够交替地探询上述第一子部件和第二子部件以确定它们当中哪一个出现了引起捕俘的异常条件。
5、权利要求3所述的***进一步包括:
A.与上述下一地址生成装置连接的捕俘条件寄存器,此寄存器用来保存上述第一子部件中一个或多个条件指示,这些条件指示要求执行多个向量捕俘异常条件微程序中的一个;
B.包括在上述下一地址生成装置中且与上述捕俘条件寄存器连接的一个向量捕俘响应装置,此装置用来产生多个予定的向量捕俘地址作为上述控制存贮器的微指令地址,上述这些予定的向量捕俘地址指向存放相应的一组向量捕俘条件微程序的单元。
6、权利要求1所述的***还包括一个属于多个子部件中第二子部件的且与上述捕俘请求装置相连的捕俘禁止装置,此装置能对存贮在与上述第二子部件相应子控制存贮器中的第二个微操作作出反应,此捕俘禁止装置阻止上述的捕俘请求装置对上述的主子部件产生捕俘信号。
7、权利要求6的***,其中所说的第二子部件是上述的第一子部件。
8、权利要求6的***,其中所说的第二子部件是上述的主子部件。
9、权利要求6的***,其中所说的第二子部件不是上述的第一子部件或主子部件。
10、权利要求1所指的***,其中,从上述控制存贮器中读出微指令实际是从上述多个子控制存贮器中并行地读出上述微指令的某个部分,而且,上述微指令的执行是通过在上述各个子部件中并行地执行各自的那一部分微操作来完成的。
11、权利要求1所指的***,其中下一微指令地址的生成与当前微指令的执行重叠。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/663,096 US4670835A (en) | 1984-10-19 | 1984-10-19 | Distributed control store word architecture |
US636,096 | 1984-10-19 | ||
US663,096 | 1984-10-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN85108466A true CN85108466A (zh) | 1987-04-15 |
CN1010259B CN1010259B (zh) | 1990-10-31 |
Family
ID=24660454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN85108466A Expired CN1010259B (zh) | 1984-10-19 | 1985-10-18 | 分布控制存贮器字的体系结构 |
Country Status (15)
Country | Link |
---|---|
US (1) | US4670835A (zh) |
EP (1) | EP0178671B1 (zh) |
JP (1) | JPH081595B2 (zh) |
KR (1) | KR910008918B1 (zh) |
CN (1) | CN1010259B (zh) |
AT (1) | ATE64482T1 (zh) |
AU (1) | AU579194B2 (zh) |
BR (1) | BR8505210A (zh) |
CA (1) | CA1240800A (zh) |
DE (1) | DE3583201D1 (zh) |
DK (1) | DK165528C (zh) |
ES (1) | ES8800459A1 (zh) |
FI (1) | FI87283C (zh) |
NO (1) | NO169925C (zh) |
YU (1) | YU45924B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989193A (zh) * | 2010-11-05 | 2011-03-23 | 青岛海信信芯科技有限公司 | 微控制器及其指令执行方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4802088A (en) * | 1986-08-11 | 1989-01-31 | Amdahl Corporation | Method and apparatus for performing a pseudo branch in a microword controlled computer system |
US4914576A (en) * | 1986-12-18 | 1990-04-03 | Bull Hn Information Systems Inc. | Apparatus and method of loading a control store memory of a central subsystem |
US4901222A (en) * | 1987-05-19 | 1990-02-13 | Bull Nh Information Systems Inc. | Method and apparatus for backing out of a software instruction after execution has begun |
US5148530A (en) * | 1987-05-19 | 1992-09-15 | Bull Hn Information Systems Inc. | Method for reexecuting instruction by altering high bits of instruction address based upon result of a subtraction operation with stored low bits |
US5151986A (en) * | 1987-08-27 | 1992-09-29 | Motorola, Inc. | Microcomputer with on-board chip selects and programmable bus stretching |
FR2656442B1 (fr) * | 1989-12-21 | 1994-07-29 | Bull Sa | Processeur a plusieurs unites microprogrammees avec mecanisme d'execution anticipee des instructions. |
JP2570466B2 (ja) * | 1990-05-18 | 1997-01-08 | 日本電気株式会社 | 情報処理装置 |
EP0477599A3 (en) * | 1990-09-26 | 1993-11-10 | Siemens Ag | Control store for a processor comprising several processing elements |
US5377335A (en) * | 1991-08-30 | 1994-12-27 | Unisys Corporation | Multiple alternate path pipelined microsequencer and method for controlling a computer |
EP0586767A1 (en) * | 1992-09-11 | 1994-03-16 | International Business Machines Corporation | Selective data capture for software exception conditions |
US5440703A (en) * | 1993-09-20 | 1995-08-08 | International Business Machines Corporation | System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified |
TW436693B (en) * | 1998-08-18 | 2001-05-28 | Ind Tech Res Inst | Interrupt control device and method for pipeline processor |
US7743232B2 (en) * | 2007-07-18 | 2010-06-22 | Advanced Micro Devices, Inc. | Multiple-core processor with hierarchical microcode store |
US11467838B2 (en) | 2018-05-22 | 2022-10-11 | Advanced Micro Devices, Inc. | Fastpath microcode sequencer |
US11016763B2 (en) | 2019-03-08 | 2021-05-25 | Advanced Micro Devices, Inc. | Implementing a micro-operation cache with compaction |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS605977B2 (ja) * | 1974-05-15 | 1985-02-15 | 日本電気株式会社 | マイクロプログラム制御装置 |
CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
US4149243A (en) * | 1977-10-20 | 1979-04-10 | International Business Machines Corporation | Distributed control architecture with post and wait logic |
US4268908A (en) * | 1979-02-26 | 1981-05-19 | International Business Machines Corporation | Modular macroprocessing system comprising a microprocessor and an extendable number of programmed logic arrays |
US4393465A (en) * | 1981-04-13 | 1983-07-12 | Burroughs Corporation | Digital device for time-multiplexing multiple tasks |
JPS5851353A (ja) * | 1981-09-24 | 1983-03-26 | Nippon Telegr & Teleph Corp <Ntt> | プログラム制御回路 |
-
1984
- 1984-10-19 US US06/663,096 patent/US4670835A/en not_active Expired - Lifetime
-
1985
- 1985-10-16 AU AU48767/85A patent/AU579194B2/en not_active Ceased
- 1985-10-17 DE DE8585113207T patent/DE3583201D1/de not_active Expired - Fee Related
- 1985-10-17 FI FI854043A patent/FI87283C/fi not_active IP Right Cessation
- 1985-10-17 EP EP85113207A patent/EP0178671B1/en not_active Expired - Lifetime
- 1985-10-17 AT AT85113207T patent/ATE64482T1/de active
- 1985-10-18 DK DK479085A patent/DK165528C/da not_active IP Right Cessation
- 1985-10-18 CA CA000493337A patent/CA1240800A/en not_active Expired
- 1985-10-18 JP JP60233141A patent/JPH081595B2/ja not_active Expired - Lifetime
- 1985-10-18 NO NO854150A patent/NO169925C/no unknown
- 1985-10-18 CN CN85108466A patent/CN1010259B/zh not_active Expired
- 1985-10-18 BR BR8505210A patent/BR8505210A/pt not_active IP Right Cessation
- 1985-10-18 YU YU166785A patent/YU45924B/sh unknown
- 1985-10-18 ES ES548005A patent/ES8800459A1/es not_active Expired
- 1985-10-19 KR KR858507726A patent/KR910008918B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989193A (zh) * | 2010-11-05 | 2011-03-23 | 青岛海信信芯科技有限公司 | 微控制器及其指令执行方法 |
CN101989193B (zh) * | 2010-11-05 | 2013-05-15 | 青岛海信信芯科技有限公司 | 微控制器及其指令执行方法 |
Also Published As
Publication number | Publication date |
---|---|
ES548005A0 (es) | 1987-11-01 |
NO854150L (no) | 1986-04-21 |
EP0178671B1 (en) | 1991-06-12 |
AU4876785A (en) | 1986-04-24 |
FI87283C (fi) | 1992-12-10 |
DE3583201D1 (de) | 1991-07-18 |
DK479085A (da) | 1986-04-20 |
AU579194B2 (en) | 1988-11-17 |
FI87283B (fi) | 1992-08-31 |
JPH081595B2 (ja) | 1996-01-10 |
CN1010259B (zh) | 1990-10-31 |
KR910008918B1 (en) | 1991-10-24 |
KR860003552A (ko) | 1986-05-26 |
FI854043A0 (fi) | 1985-10-17 |
DK165528B (da) | 1992-12-07 |
DK479085D0 (da) | 1985-10-18 |
JPS61118838A (ja) | 1986-06-06 |
BR8505210A (pt) | 1986-07-29 |
EP0178671A3 (en) | 1988-08-17 |
YU166785A (en) | 1988-02-29 |
EP0178671A2 (en) | 1986-04-23 |
NO169925C (no) | 1992-08-19 |
DK165528C (da) | 1993-04-19 |
FI854043L (fi) | 1986-04-20 |
NO169925B (no) | 1992-05-11 |
ES8800459A1 (es) | 1987-11-01 |
ATE64482T1 (de) | 1991-06-15 |
YU45924B (sh) | 1992-09-07 |
CA1240800A (en) | 1988-08-16 |
US4670835A (en) | 1987-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN85108466A (zh) | 分布控制存贮器字的体系结构 | |
CA1213674A (en) | Pipeline error correction | |
US3978452A (en) | System and method for concurrent and pipeline processing employing a data driven network | |
JP2502960B2 (ja) | マイクロコンピュ−タ、ならびにマイクロコンピユ−タおよびマイクロコンピユ−タ・ネットワ−クを動作させる方法 | |
US4982402A (en) | Method and apparatus for detecting and correcting errors in a pipelined computer system | |
US5317756A (en) | Data processor for detecting identical data coexisting in a plurality of data section of data transmission paths | |
US3763474A (en) | Program activated computer diagnostic system | |
EP0242882B1 (en) | Storage control method and apparatus | |
EP0539595A1 (en) | Data processor and data processing method | |
CA1180455A (en) | Pipelined microprocessor with double bus architecture | |
JPH036742A (ja) | フオールト・トレラント・データ処理システム | |
EP0380845B1 (en) | An interface between a system control unit and a service processing unit of a digital computer | |
EP0204832A1 (en) | ERROR-DETECTING AND ERROR-CORRECTING SYSTEM. | |
US4204252A (en) | Writeable control store for use in a data processing system | |
US3470540A (en) | Multiprocessing computer system with special instruction sequencing | |
US20030034544A1 (en) | Microcomputer | |
US5907693A (en) | Autonomously cycling data processing architecture | |
CA1119307A (en) | Microcomputer having separate bit and word accumulators and separate bit and word instruction sets | |
US3309679A (en) | Data processing system | |
EP0162928B1 (en) | Microprogram control method | |
JPS6136845A (ja) | シングルチツプマイクロコンピユ−タ | |
US4631662A (en) | Scanning alarm electronic processor | |
SU1168960A1 (ru) | Многопроцессорна вычислительна система | |
US3222648A (en) | Data input device | |
JP2555123B2 (ja) | メモリアクセス管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |