CN1084496C - 处理系统及调试方式的实现方法 - Google Patents

处理系统及调试方式的实现方法 Download PDF

Info

Publication number
CN1084496C
CN1084496C CN94191179A CN94191179A CN1084496C CN 1084496 C CN1084496 C CN 1084496C CN 94191179 A CN94191179 A CN 94191179A CN 94191179 A CN94191179 A CN 94191179A CN 1084496 C CN1084496 C CN 1084496C
Authority
CN
China
Prior art keywords
instruction
floating
mode
integer
point
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
Application number
CN94191179A
Other languages
English (en)
Other versions
CN1117764A (zh
Inventor
约瑟夫·P·布拉特
约翰·布伦南
彼得·苏颜特
钱达·S·乔希
威廉姆·A·赫夫曼
莫妮卡·R·诺法尔
保罗·罗德曼
约瑟夫·T·斯坎伦
唐曼希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arm Overseas Finance Co ltd
Overpass Bridge Co ltd
Toshiba Corp
Original Assignee
Toshiba Corp
Silicon Graphics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Silicon Graphics Inc filed Critical Toshiba Corp
Publication of CN1117764A publication Critical patent/CN1117764A/zh
Application granted granted Critical
Publication of CN1084496C publication Critical patent/CN1084496C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

一种处理机系统,它能在无标准浮点异常的正常运作方式和调试运作方式之间进行切换,该处理系统的特征在于包括:发送整数指令及浮点指令的装置;具有执行整数指令的多级整数流水线的连接在上述发送装置上的整数单元;具有执行浮点指令的多级浮点流水线的与上述发送装置和上述整数单元连接的浮点单元;以及在正常运作方式和调试运作方式之间对系统进行切换的与上述发送装置连接的装置,从而当系统处于调试方式时,在浮点指令被发送后,在系统判定浮点指令是否会引起异常之前,阻止对指令的处理,这样在非正常方式时系统能发送标准异常信息。

Description

处理系统及调试方式的实现方法
本发明一般涉及计算机领域,更详细地说,涉及在以通常运作方式不支援标准浮点异常的超标量简化指令系统计算机(RISC)中,实现调试方式的系统和方法。
超标量简化指令系统计算机(RISC)(称为“RISC处理机”)正在飞速地从单一处理机的工作站,发展到多处理机的超级计算机,转变成新的计算机结构。MIPS(百万条指令/秒)RISC的结构可由R2000、R4000、R6000(统称为R系列)处理机实现,是一种特定的结构。G.Kane和J.Heinrich著的称为“MIPS RISC结构”的书(Prentice Hall,Englewood Cliffs New Jersey,USA,1992)是有关MIPS RISC结构的主要参考文献,本文中也加以引用。
以下三种文本的书更详细地说明了RISC结构。它们是JohL.Hennessy和David A.Patterson的“计算机结构定量引论”(Morgan Kaufmann Publisher,Inc.,San Mateo,California,USA,1990);Mike Johnson的“超标量微处理机设计”(PrenticeHall,Englewood Cliffs,New Jersey,USA,1991);以及StephenB Furber的VLSI(超大规模集成电路)RISC结构和组成方式(Marcel Dekker,Inc.,New York,USA,1989)。上述三本书都是供参考引用的。
在原有的MIPS计算机中存在标准异常的问题。如果出现标准异常,则有两个必要条件:(1)处理机或用户可以利用引发异常的指令(异常指令)的地址;(2)处理机能将状态返回到在执行引发异常的指令之前的状态。就是说,例如当指令产生异常时,原有的MIPS处理机全都是将处理机的状态返回到执行该指令之前的状态,然后将程序的流程传送至能决定如何处理该指令和后续的指令流的软件处理程序。
由于在出现标准异常时要将状态返回到执行该引发异常之前的状态,所以在处理机中需要大量的硬件。具体地说,为了要使计算机能够处理标准异常,就需要使处理机具备较多的并行操作性能(同时进行多项操作)的结构设计,也就需要有更多的硬件。
由于异常类型的不同,所以不一定都是标准异常。例如,如果产生浮点零位除法运算错误,虽然大多数程序都会中断,但异常却依然运行。为了程序的正确运作,在任何一种情况下,浮点零位除法异常都不必然是标准异常。反之,当转换索引缓冲器(TLB)补偿异常是不标准异常,所以大部分程序都不能正确运作。因此,异常可分为两种:必须是标准的整数异常、以及也可以是非标准异常的浮点异常。
希望能有这样一种处理机,它能在非标准浮点异常的条件下提供并行操作的可能性,并能在非标准异常的场合下,将标准异常提供给不运行的旧的少数程序。
本发明的目的是通过避开标准浮点异常,达到更大范围的并行操作,谋求具有良好性能的装置和方法,同时提供一种为标准浮点异常所必要的运行程序用的调试方式。
处理系统能在非标准浮点异常的正常运作方式和调试方式之间进行切换。由运行系统用的软件编程器对调试方式和非调试方式的切换进行编程,并由系统的操作系统进行切换。
本发明提供一种处理机系统,它能在无标准浮点异常的正常运作方式和调试运作方式之间进行切换,该处理系统的特征在于包括:发送整数指令及浮点指令的装置;具有执行整数指令的多级整数流水线的连接在上述发送装置上的整数单元;具有执行浮点指令的多级浮点流水线的与上述发送装置和上述整数单元连接的浮点单元;以及在正常运作方式和调试运作方式之间对系统进行切换的与上述发送装置连接的装置,从而当系统处于调试方式时,在浮点指令被发送后,在系统判定浮点指令是否会引起异常之前,阻止对指令的处理,这样在非正常方式时系统能发送标准异常信息。
本发明提供一种使处理系统按调试方式运作,且能在无标准浮点异常的正常方式和调试方式之间进行系统切换的方法,其特征在于该方法包括下述各个步骤:判断系统是否要切换到调试方式的步骤;发送浮点指令的步骤;以及在正常运行方式和调试运行方式之间切换系统,从而当系统处于调试方式时,在发送浮点指令之后,在系统判定浮点指令是否会引起异常之前,不处理指令,这样在非正常方式时系统能发送标准异常信息的步骤。
利用本发明的调试方式,即使是正在开发的新的程序(这种新程序可能是这样设计的,也就是即使遇到非标准浮点异常也能运行),也能进行调试。
如附图中的图解所示,通过详细说明本发明的优选实施例,可以明白本发明的上述的及除此以外的特征和优点。
参照附图能更好的理解本发明。
图1是本发明的处理系统100的高级典型框图。
图2表示本发明的图1所示的整数单元102的整数流水线200。
图3表示本发明的图2所示的整数流水线200和浮点流水线300。
图4是本发明的切换运作的典型流程图。
下面详细说明本发明的优选实施例。在说明中谈到具体的装置、结构和配置方法等,其目的只是为了举例说明,这是可以理解的。相关技术工作者能够理解:在不脱离本发明的精神和范围的前提下,也可以采用其它装置、结构及配置方法。
现结合附图说明本发明的优选实施例,相同的符号表示同一部件或功能相似的部件。另外,图中各参照编号左端的一个数字表示最先使用该参照编号的图号。
系统简介:
为了理解调试方式的运作,必须理解本发明的处理系统,以及在通常情况下怎样运作。图1是处理系统100的高级典型框图。下面举例说明处理系统100。如本专业工作者所知,本发明的调试系统和方法,能适用于备有多种结构模式的处理系统。同样如本专业工作者所知,处理系统100可组装成单片式或多片式的组件。另外,处理系统100也可作为多处理机计算机系统的一部分。图1所示的功能元件和功能块的最佳实施例的典型参数和数值见以下说明及图1所示。虽然这些参数和数值在所示的处理系统100的实施例中是优选的,但本发明并不受这些参数和数值的限制,可扩及到能产生出所需要的功能及其等价物的任意的参数和数值。
处理系统100备有2个主芯片,即整数单元芯片(IU)102和浮点芯片单元(FPU)104。另外,系统备有两个存储区的静态RAM芯片,它们构成两个大区,即标记随机存储器(RAM)芯片(GTAG)106和外部大区超高速缓冲存储器(GCACHE)108。
从单片的16KB(千字节)指令超高速缓冲存储器(ICACHE)110中读取指令。该ICACHE110是用32B(字节)线直接进行标记。如用总线111简略所示,每一循环取出4个指令(总计128位)。现设想在ICACHE110中已标上标记和特征。软件负责保持一致性。ICACHE110经过一对总线109,从GCACHE108用11个循环进行补给。ICACHE110的内容不必是GCACHE108的子集。设有转移预测CACHE(BCACHE)112,它与ICACHE110相联系,后者将控制信号和转移指令经过总线113输送至ICACHE110。BCACHE112也直接进行映射,其中备有1K个表目。
来自ICACHE110的指令,经过指令缓冲器(IBUF)114缓冲,在经过总线115到达调度逻辑(装置)116之前,先要进行重新编排。在每一循环从2个整数、2个存储器、4个浮点指令形式中只选定4个指令,然后就能够发送指令。浮点指令经过总线117发送到浮点队列FPQ)118。这里没有保留整数指令的发送功能,所以能够等待清除在资源竞争和数据之间的依存关系。尤其是由于FPQ118资源竞争使FPU104离开IU102,从而隐藏了GCACHE108的等待时间。对此以下将作详细说明。
整数及存储指令从一个13端口整数登记(IREG)文件120读取其操作数。多个整数功能单元122备有两个整数ALU、1个移位器、以及1个乘法除法单元,用总线121与IREG文件120连接起来。ALU和移位器在一个循环中运作。乘除法单元反复运作。就是说,32b/64b(位)整数进行乘法运算时,要用4/6个循环。进行整数除法运算时,根据乘积值的大小不同,分别要用21至73个循环。反复运作通过简单的编程而被完全互锁。在各循环中,等到达到两次循环时整数运作即开始进行。
存储指令经总线125,通过地址生成单元(AGEN)124,再经总线127,移到转换索引缓冲器(TLB)126。TLB126是备有384个表目的并用3路装置组合的超高速缓冲存储器。由于TLB126是双端口,所以在每1循环中都能支援2个独立的存储指令。TLB的缺乏由软件处理器(图中未示出)进行补偿。
整数的装入和存储通过总线129转移到单片数据超高速缓冲存储器(DCACHE)128。它也是每一循环装入两次,也可以改成双端口,以便对一次装入、一次存储进行支援。DCACHE128是由32B线直接映射的16KB。从外部的超高速缓冲存储器用7个循环进行补给。其中设有虚拟地址和物理标记。DCACHE128是GCACHE108的适用的子集,硬件(图中未示出)保持一致性。DCACHE128和GCACHE108备有分级的超高速缓冲存储器,DCACHE128是第1级超高速缓冲存储器,GCACHE108是第2级超高速缓冲存储器。
GCACHE108是两路交错存储器,在每一循环支持装入或存储两个64b。GCACHE108的容量可按1至16MB设计。GCACHE108是4路装置组件,在各超高速缓冲存储器线路内部装有各状态位的4个区或子块。根据线的容量可将其设计成与32B、64B、128B区段容量相对应的125B、265B、512B。外部超高速缓冲存储器可利用一对常规标记RAM(GTAG106)和普通的同步静态RAM(GCACHE108)实现。超高速缓冲存储器的补给时间等部件固有的(即应用系统所固有的)定时取决于系统的实际安装情况。GCACHE108和GTAG106经总线119,由TLB126提供地址。有关分级超高速缓冲存储器的详细说明可参阅上述题为“分级超高速缓冲存储器”的参考专利。此处记载的仅供参考。
浮点的读入由与总线109连接的装入数据队列(LDQ)120进行。浮点存储是这样进行的:先由FPU芯片104输出、经总线131、移到存储数据队列(STQ)130,由TLB126变换成物理地址后,经总线133移到GCACHE108,而不经过单片DCACHE128。
FPU104与两条执行数据总线(总线109)连接,分别有双倍精度混合乘法加法、单一乘法、加法、除法、以及平方根等计算变换能力。12端口浮点登记(FREG)文件134由总线135送入执行数据总线(该数据总线本身被完全旁路)。半数以上的浮点功能单元示于136。
浮点功能单元有多种。由比较、移动等项组成的短运作需要一个循环。由加法、乘法、混合乘法加法等组成的中等程度的运作需要4个循环,全部流水线传输。除法、平方根计算等要反复进行。1倍精度除法需要14个循环,2倍精度需要20个循环。2条数据总线完全对称,在软件中不能区分。已知编译程序在每一循环中只可安排2个浮点操作。
整数/浮点流水线:
IU102整数流水线200示于图2。由(F)级202进行读取,访问ICACHE110和BCACHE112。译码(D)级204,根据登记记录板和确保资源的原则,决定是否发送,且读取IREG登记文件120。地址(A)级206,算出装入和存储的有效地址。执行(E)级208,评价ALU122,访问DCACHE128和TLB126,解决转移,处理全部异常。最后,写入后备(W)级310,更新IREG登记文件122。
该流水线200与原有的RISC流水线有两点不同。实际上有4条流水线-2条整数ALU流水线和两条装入/存储流水线,ALU的运作与数据超高速缓冲存储器访问并行发生。在原有的RISC流水线中有装入盲区,装入后的指令循环不能使用装入结果。这是因为在装入编译程序之后,就能够频繁发送几个独立指令,所以这是在标量流水线中众所周知的事实。可是,这是不太会发生的情况,因为编译程序必须要在该超标量流水线的同一盲区中找到4个被隐蔽的独立指令。
使ALU延迟时,在向ALU进行装入运作时,虽然可以消除装入盲区,但在装入地址中却会产生ALU盲区。用下一个装入或存储指令将用ALU指令算出的地址作为基本地址使用时,还会产生更多的延迟循环。装入和使用的依存关系要比用计算装入/存储的依存关系更加频繁,特别是产生不受超标量的加速影响的转移整数码更是如此,所以本发明者认为该折衷是有利的。另外,采用浮点装入和存储的新登记+登记地址的方式,对减少事先计算地址的必要性也有促进作用。如果将ALU从流水线上撤下来,并不利于延迟转移的解决。这可通过下述方式缓解,即预测转移,或者将转移的延迟时隙同转移本身并行执行。
下面参照图3说明系统100怎样发送浮点和整数指令。图3表示整数流水线200和由S-V级构成的浮点流水线。
在F级中,从ICACHE读出每一循环中的4个指令,并存入IBUF114。D级决定在下一循环中在下一级实际能发送哪个指令。例如,系统在一个循环中不能读入4种指令。这时即使装入4种,也只能发送2个。
如上所述,在A级中,生成全部存储器运作、装入及存储的地址。然后在E级中,进行ALU运作,由DCACHE128进行整数存储状态的改变。
在级W中,对指令进行处理,处理哪个指令的决定是在级E中进行的。为了在以后执行浮点(FP)指令,而对其进行写入FPQ118中的处理。对整数装入和ALU运作的结果进行写入IREG文件120中的处理。在E级中,整数存储是将该数据写入DCACHE128中,但还进行这样的处理:即将存储数据写入FPQ118,并对已经有效和所写的DCACHE位置作出标记。未经处理的整数存储(可能早一些的指令发生异常)共有写入无效标记的DCACHE表目。关于状态的改变怎样反映在分级的超高速缓冲存储器中,可详见前面题为“分级超高速缓冲存储器”的专利申请说明书。
FPQ118保证只存入被处理的指令。已知处理程序从FPQ118的最后读取指令时,可由FP功能单元136执行,根据指令的要求,将其结果写回FREG文件134,存入GCACHE108。
在流水线200和300的正常运作中,关于在执行FP指令方面,如果不顾整数指令的顺序,执行的可行性还存在问题。可是,整数指令执行的结果,在W级中,实际上可能会变成处理程序的状态。
例如:在含有整数和FP指令的指令流中,整数指令在W级中就改成处理程序的状态。此时,FP指令输入FPQ。此外,在S级,从FPQ发送FPQ指令,输送至FPU,浮点流水线300中其余的T级、R级、X、Y、Z、U级、以及最后V级被作为“下水”看待。所谓“下水”是指处理过的指令按顺序送给FPU,完全通过FP流水线而言。这时,在V级中,指令最后指示将该状态改为处理程序的状态。处理程序的状态的实际变更,对于FP指令的引发要比引发整数指令慢得多。
在T级中,FP指令从IU芯片102被传输至FPU芯片104。在该级中,被传输的FP指令数据从LDQ130被读入FREG文件134。在下一个R级中,FP指令的运算数从FREG文件134读入,并传输给FP单元136。在该级中,还将FP的装入数据写入FREG文件。
EP指令的执行开始于级X,最后在U级结束。执行级从X到U(从级1到级4)全部共为4个级。并非所有的指令执行结束时都需要4级。执行短的FP指令、浮点条件码(EP CC)位也可在X级中生成。例如进行浮点比较操作时,生成表示比较结果的条件码。使用比较码位(CC)的2个副本。CC位的一个副本留在FPU104,另一方面,在下一个Y级中,被传输给IU芯片102。
位于级R、X、U中的旁路符号表示将X级和U级中的最后结果送回R级中的最后的同一或另一FP浮点单元的输入数据中。旁路操作用虚线302和304表示。这样,即使没有多余的等待时间从FREG文件输出中读取新的结果,执行结果也能立刻在下一个指令中使用。
调试方式的运作:
FP指令是否产生异常,在U级之前无法分辨。因此,即使等到FU在U级中将异常去掉,还存在定时和控制方面的问题。要想将异常变为正常,用户必须想办法取消该FP指令返回W级后产生的全部整数运作。有许多整数指令要从此开始执行。处理系统100不具备取消全部指令的机构。
如果采用本发明,标准浮点异常通过改变指令退出流水线的方法进行支援。在尚未能判定处理过的FP指令是否产生异常之前不处理此后的指令。
再举例说明本发明。在以FP指令和处理程序以核心的整数命令流中,如果采用本发明,经过控制逻辑(图中未示出)进行切换,进入“调试方式”的运行。
最初读入该FP指令之后,在202和204级中进行译码,在下一循环中被发送到A级。在调试方式的这一时刻,该FP指令通过FPQ中断执行,在通过大半条浮点流水线300之前,停止发送此后的指令。
如上所述,在E级中就能解决所有的整数异常。这样,在尚未判定整数指令是否发生异常之前,该整数指令到达E级。即使其它许多指令(每一级4个)还存留在先行的A、D、F级中,处理程序的状态在此时刻也完全是正确的。另外,例如如果在E级中消除异常的指令就是该级的头一个指令,那么还能有3个指令要进入E级。这样,在将FP指令的异常信息传送到整数单元之前,处于EP指令以后的整数指令只能到达E级。
在U级中,处理程序判断FP指令是否有异常。在V级中,该异常信息被传送给整数单元。在该时刻,整数单元能决定如何处理位于E级中的整数指令。
结果,如果FP指令到达U级,其它指令不会使处理程序的状态遭到危害,还能将其发送。例如,即使FP指令引发异常,新的被发送来的指令在FP异常未被确认之前,只能到达E级。如果FP指令的异常是标准异常,则处理程序就能在全部超标量带宽内开始对新指令的处理。如果FP指令引发了异常,E级就会收到发回报告该异常的信号。处于FP指令以后的所有指令就不会在任何状态下产生影响,这就使该指令的异常成为标准异常。在标准异常状态下,处理程序的状态实际上实现了能返回异常指令之前的地点的想法。
如上所述,本发明允许在调试方式和非调试方式之间进行切换,从而在具有标准浮点异常的处理器系统100上运行代码(例如程序)。通过这种选择,能让处理程序中的旧的程序运行,或者容易进行对新代码的调试。
图4是本发明的切换运作的典型的流程图。如步402所示,处理系统100在正常方式下,在不存在标准异常的条件下起动(即接通电源),开始运作。如步404所示,由处理程序来决定现在的程序(自动地或由使用者使其运行)是否有必要起动调试方式用以对付标准异常。如果步404的结果为“否”,则如步406所示,处理程序判断是否收到“切换到调试方式”的指令。如果步406的结果为“否”,则如图所示,在循环408中,处理程序继续按正常方式运作。如果步404的结果为“是”,处理程序便跳到步412(图中转移线410表示),切换为调试方式运作,借以对付异常。
在步414中,处理程序判断是否收到“切换到正常方式”的指令。如果步414的结果是“是”,则如步416所示,处理程序切换在没产生标准异常状态下的正常运作方式。如果步414的结果为“否”,如图所示,在循环418中,处理程序继续按调试方式运作。然后,如图中转移线420所示,处理程序跳到步406,再监视是否收到“切换到调试方式”指令。
在优选实施例中,由于切换调试方式的出入的控制逻辑(图中未示出)是用微码处理,从而被编入软件中。在调试方式的流水线中暂时停止所需要的逻辑设计,阅读了本发明的上述运作说明后,本领域的技术人员是会明白的。相关技术工作者同样也会明白,处理系统100的控制装置分别分散在IU和FPU芯片上,以及GTAG和GCACHE RAM上的全部系统中,由状态计算机等单独的控制器或多个控制器进行处理。
以上说明了本发明的多种实施例,但这些实施例只是作为举例,并不受其限制。在不脱离本发明的精神和范围的情况下,可对其形态和细节进行各种变更,这是本专业工作者所能理解的。本发明不受上述任何一个典型的实施例的限制,而由下述的权利要求和随同它的等效物决定。

Claims (4)

1.一种处理机系统,它能在无标准浮点异常的正常运作方式和调试运作方式之间进行切换,该处理系统的特征在于包括:发送整数指令及浮点指令的装置;具有执行整数指令的多级整数流水线的连接在上述发送装置上的整数单元;具有执行浮点指令的多级浮点流水线的与上述发送装置和上述整数单元连接的浮点单元;以及在正常运作方式和调试运作方式之间对系统进行切换的与上述发送装置连接的装置,从而当系统处于调试方式时,在浮点指令被发送后,在系统判定浮点指令是否会引起异常之前,阻止对指令的处理,这样在非正常方式时系统能发送标准异常信息。
2.按权利要求1所述的系统,其特征在于:上述发送装置在系统判定所述浮点指令是否会引起异常之前的一个以上的浮点流水线级中,发送进一步的指令。
3.一种使处理系统按调试方式运作,且能在无标准浮点异常的正常方式和调试方式之间进行系统切换的方法,其特征在于该方法包括下述各个步骤:判断系统是否要切换到调试方式的步骤;发送浮点指令的步骤;以及在正常运行方式和调试运行方式之间切换系统,从而当系统处于调试方式时,在发送浮点指令之后,在系统判定浮点指令是否会引起异常之前,不处理指令,这样在非正常方式时系统能发送标准异常信息的步骤。
4.权利要求3所述的方法,其特征在于:该方法还包括在系统判断所述浮点指令是否引起异常之前的一个或数个循环中,发送进一步的指令的步骤。
CN94191179A 1993-12-15 1994-12-15 处理系统及调试方式的实现方法 Expired - Lifetime CN1084496C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/166,969 US5537538A (en) 1993-12-15 1993-12-15 Debug mode for a superscalar RISC processor
US08/166,969 1993-12-15

Publications (2)

Publication Number Publication Date
CN1117764A CN1117764A (zh) 1996-02-28
CN1084496C true CN1084496C (zh) 2002-05-08

Family

ID=22605399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN94191179A Expired - Lifetime CN1084496C (zh) 1993-12-15 1994-12-15 处理系统及调试方式的实现方法

Country Status (9)

Country Link
US (1) US5537538A (zh)
EP (1) EP0684552B1 (zh)
JP (1) JP2843152B2 (zh)
KR (1) KR0175115B1 (zh)
CN (1) CN1084496C (zh)
DE (1) DE69428110T2 (zh)
HK (1) HK1018167A1 (zh)
TW (1) TW274595B (zh)
WO (1) WO1995016953A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US6081885A (en) * 1996-12-20 2000-06-27 Texas Instruments Incorporated Method and apparatus for halting a processor and providing state visibility on a pipeline phase basis
US6112298A (en) * 1996-12-20 2000-08-29 Texas Instruments Incorporated Method for managing an instruction execution pipeline during debugging of a data processing system
US6065106A (en) * 1996-12-20 2000-05-16 Texas Instruments Incorporated Resuming normal execution by restoring without refetching instructions in multi-word instruction register interrupted by debug instructions loading and processing
US5878377A (en) * 1997-04-10 1999-03-02 International Business Machines Corporation Environmental and power error handling extension and analysis
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7703076B1 (en) 2003-07-30 2010-04-20 Lsi Corporation User interface software development tool and method for enhancing the sequencing of instructions within a superscalar microprocessor pipeline by displaying and manipulating instructions in the pipeline
US7200742B2 (en) 2005-02-10 2007-04-03 International Business Machines Corporation System and method for creating precise exceptions
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US8555039B2 (en) * 2007-05-03 2013-10-08 Qualcomm Incorporated System and method for using a local condition code register for accelerating conditional instruction execution in a pipeline processor
CN101174200B (zh) * 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
CN104793987B (zh) * 2014-01-17 2018-08-03 中国移动通信集团公司 一种数据处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161026A (en) * 1977-11-22 1979-07-10 Honeywell Information Systems Inc. Hardware controlled transfers to microprogram control apparatus and return via microinstruction restart codes
JPH02181236A (ja) * 1989-01-05 1990-07-16 Nec Corp デバッグ装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4879676A (en) * 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
US5109514A (en) * 1988-07-28 1992-04-28 Sun Microsystems, Inc. Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5150469A (en) * 1988-12-12 1992-09-22 Digital Equipment Corporation System and method for processor pipeline control by selective signal deassertion
US5155816A (en) * 1989-02-10 1992-10-13 Intel Corporation Pipelined apparatus and method for controlled loading of floating point data in a microprocessor
JPH0314025A (ja) * 1989-06-13 1991-01-22 Nec Corp 命令実行制御方式
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
JP2878792B2 (ja) * 1990-06-22 1999-04-05 株式会社東芝 電子計算機
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
USH1291H (en) * 1990-12-20 1994-02-01 Hinton Glenn J Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions
US5257214A (en) * 1992-06-16 1993-10-26 Hewlett-Packard Company Qualification of register file write enables using self-timed floating point exception flags
US5204829A (en) * 1992-07-10 1993-04-20 Lsi Logic Corporation Interleaving operations in a floating-point numeric processor
US5367703A (en) * 1993-01-08 1994-11-22 International Business Machines Corporation Method and system for enhanced branch history prediction accuracy in a superscalar processor system
US5305248A (en) * 1993-04-23 1994-04-19 International Business Machines Corporation Fast IEEE double precision reciprocals and square roots
US5386375A (en) * 1993-11-01 1995-01-31 Motorola, Inc. Floating point data processor and a method for performing a floating point square root operation within the data processor
US5392228A (en) * 1993-12-06 1995-02-21 Motorola, Inc. Result normalizer and method of operation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161026A (en) * 1977-11-22 1979-07-10 Honeywell Information Systems Inc. Hardware controlled transfers to microprogram control apparatus and return via microinstruction restart codes
JPH02181236A (ja) * 1989-01-05 1990-07-16 Nec Corp デバッグ装置

Also Published As

Publication number Publication date
CN1117764A (zh) 1996-02-28
HK1018167A1 (en) 1999-12-10
EP0684552A4 (en) 1996-12-04
US5537538A (en) 1996-07-16
KR960701398A (ko) 1996-02-24
TW274595B (zh) 1996-04-21
WO1995016953A1 (fr) 1995-06-22
EP0684552B1 (en) 2001-08-29
JP2843152B2 (ja) 1999-01-06
DE69428110D1 (de) 2001-10-04
DE69428110T2 (de) 2002-04-25
EP0684552A1 (en) 1995-11-29
KR0175115B1 (ko) 1999-04-01

Similar Documents

Publication Publication Date Title
CN1084496C (zh) 处理系统及调试方式的实现方法
US8219220B2 (en) Industrial controller using shared memory multicore architecture
US6061710A (en) Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
DE69233313T2 (de) Hochleistungsarchitektur für RISC-Mikroprozessor
US4782441A (en) Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
CN1153139C (zh) 多线程处理器中性能监视的方法和系统
US5546593A (en) Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream
CN100357884C (zh) 用于处理指令的方法、处理器以及系统
CN101730881B (zh) 包括多个处理器的系统以及操作该系统的方法及设备
KR0185979B1 (ko) 디지탈 데이타 프로세서 및 그 동작 방법
EP1936500A2 (en) Structured exception handling for application-managed thread units
US5016169A (en) Data processor capable of correctly re-executing instructions
JPH0769818B2 (ja) デ−タ処理装置
JPH0114611B2 (zh)
US4152763A (en) Control system for central processing unit with plural execution units
US5822556A (en) Distributed completion control in a microprocessor
CN101689110B (zh) 指令执行控制装置以及指令执行控制方法
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JPS59167756A (ja) 仮想計算機のデイスパツチ制御方式
KR900008402A (ko) 저장 및 복귀방법과 이방법의 실행에 가장 적절한 프로세서 시스템
KR900001999B1 (ko) 멀티프로세서 시스템(multiprocessor system)
US5093784A (en) Data processor with efficient transfer between subroutines and main program
US6668315B1 (en) Methods and apparatus for exchanging the contents of registers
Burke et al. Emulating a Honeywell 6180 Computer System
JP2509981B2 (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: TOSHIBA CORPORATION; MIPS TECHNOLOGY CO.,LTD.

Free format text: FORMER OWNER: TOSHIBA CORPORATION; SILICON IMAGE CO., LTD.

Effective date: 20020927

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20020927

Patentee after: Toshiba Corp.

Patentee after: MIPS Technologies, Inc.

Patentee before: Toshiba Corp.

Patentee before: Silicon Graphics, Inc.

ASS Succession or assignment of patent right

Owner name: ARM FINANCE OVERSEAS LTD.

Free format text: FORMER OWNER: BRIDGE DECK LLC

Effective date: 20141230

Owner name: BRIDGE DECK LLC

Free format text: FORMER OWNER: MIPS TECHNOLOGIES INC.

Effective date: 20141230

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20141230

Address after: Tokyo, Japan

Patentee after: Toshiba Corp.

Patentee after: ARM Overseas Finance Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

Patentee before: Overpass Bridge Co.,Ltd.

Effective date of registration: 20141230

Address after: Tokyo, Japan

Patentee after: Toshiba Corp.

Patentee after: Overpass Bridge Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

Patentee before: MIPS Technologies, Inc.

C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20141215

Granted publication date: 20020508