CN1107272C - 微处理器 - Google Patents
微处理器 Download PDFInfo
- Publication number
- CN1107272C CN1107272C CN 97110943 CN97110943A CN1107272C CN 1107272 C CN1107272 C CN 1107272C CN 97110943 CN97110943 CN 97110943 CN 97110943 A CN97110943 A CN 97110943A CN 1107272 C CN1107272 C CN 1107272C
- Authority
- CN
- China
- Prior art keywords
- instruction
- memory storage
- order code
- address
- taken
- 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 - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
一种能高效执行指令而与取操作无关的微处理器。通过预取队列器7实现的。预取队列器7由以两个指令单位存储32位指令码的PFQ14U、14L及15U、15L,暂时存储应执行的指令的IRG基本部16B及扩展部16E,从存在PFQ14U、14L或15U、15L中的指令码或从外部取入的指令码中选择输出应存在IRG基本部16B及扩展部16E中的指令码的多路转换器17以及控制寄存器及多路转换器操作的状态控制器18构成。
Description
发明领域
本发明涉及微处理器。
微处理器通过将存储在成为外部存储器的主存储器中的指令码和数据取入微处理器内部来进行指令的执行处理过程。但是,由于用在主存储器中的外部存储器,例如DRAM(Dynamic Random Access Memory)等,其访问时间一般较长,所以不能期望高速处理从存储在外部存储器中的指令列中逐个读入所需的指令。在现有技术中,在微处理器内部设置了可以高速访问的寄存器,预先将外部存储器中的指令列发送到这个寄存器中,由此来提高处理效率。由于我们将从这个主存储器中读出指令码的动作称为取动作,故将预先读出动作称为预取。
背景技术
图11是示出了现有的微处理器中的指令取入器周边主要部件构成的方块图。
如图11所示,微处理器30包括用于执行将指令码从图中未示出的外部存储器取入微处理器30的命令取入器31,用于检测所取入的指令的类别的命令检测器32,和用于执行被检测出的指令的命令执行器33。而且在本微处理器30中,还设置了32位的数据总线BD和20位的地址总线BA。
命令取入器31由具有与外部存储器连接的接口功能的外部存储器存取控制器34,具有产生下一指令的取地址功能的取地址生成器35和具有与命令检测器32连接的接口功能的预取队列器36构成。外部存储器存取控制器34由用于控制对外部存储器的访问操作的发送控制器37和依据四位校验位进行数据有效性检测的校验位检测器38构成。
取地址生成器35由用于生成访问外部存储器时的地址的取程序计数器(以下称FPC)39和用于选择错误处理执行时的错误向量地址和分支对方地址并执行对FPC39的地址设置处理的取地址选择控制器40构成。
预取队列器36由两个用于存储一个指令单位(本例中为32位)的指令码的预取队列(以下称PFQ:Pre Fetch Queue)41、42,用于暂时存储从PFQ42输出的指令码的指令寄存器(以下称IRG:Instruction Register)43,以及依据存储在PFQ41、42和IRG43这三个寄存器中的有效指令的有无来设置有效标志的有、无并将现在的状态控制成状态0-状态7这八个状态的状态控制器44构成。而且在图11中,IRG43由用于存储基本指令的IRG基本部分43B和用于存储扩充指令的IRG扩充部分43E这两个32位寄存器构成。
图12和图13是随对应于三个寄存器的有效标志而变化的状态迁移图,根据这些状态迁移图,状态控制器44进行状态迁移的控制。例如,在PRQ41、42及IRG43中不存在有效指令的0级状态下,在取有效信号及访问RDY信号为“H”时,取数据被存入PFQ41中并迁移到二级状态。
下面分(1)通常时、(2)分支时和(3)异常时三种情况说明微处理器30的指令取操作。而且,作为以下说明及图中所使用的简略标号,CLK表示标准时钟信号,A表示输入到状态控制器44的取有效信号,B表示从发送控制器37输出的存储器片选信号,C表示输入到发送控制器37的访问准备(以下把准备记为RDY)信号,D表示FPC39的递增计数值,E表示取数据(数字部分表示取顺序,“基”表示基本指令,“扩”表示扩充指令),F表示数据错误信号,G表示从发送控制器37输出的正常RDY信号,H表示从状态控制器44输出的队列或IRG空信号,I表示PFQ41内的存储数据,J表示PFQ42内的存储数据,K表示IRG基本部分43B内的存储数据,L表示IRG扩充部分43E内的存储数据,M表示从发送控制器37输出的IRG有效信号,N表示从命令检测器32输出的IRG重写许可信号,O表示对应于命令执行器33的指令执行信号,P表示PC溢出信号,图14-图17中的级数指示图12及图13中的状态0-状态7。
(通常时的指令取操作)
图14是用于说明通常时的指令取操作的时序图。
首先,在输入到状态控制器44的取有效信号A为“H”时(参照图中①),发送控制器37使存储器片选信号B为“H”(有效)并以FPC39的值为地址进行存储器访问。然后,在来自外部的访问RDY信号C为“H”时,参照由校验位检测器38产生的数据检测结果,如果正常的话,使对取地址生成器35及预取队列器36输出的正常RDY信号G为“H”(参照图中②)。
在正常RDY信号G为“H”时,取地址选择控制器40使FPC39的值加1(参照图中③),由于PFQ41、42及IRG基本部分43B中不存在有效指令,故预取队列器36在将从外部存储器读入的数据存入PFQ41的同时,将PFQ41中的数据存入PFQ42,并将PFQ42中的数据存入IRG基本部43B(参照图中④)。接着,发送控制器37以每次加1的FPC39的值为地址进行存储器访问,直到IRG基本部43B中存有有效指令为止,重复图中②-④所示的操作(参照图中⑤)。在IRG其中部43B中存有有效指令时,状态控制器44使IRG43的有效标志为“有”并使对命令检测器32输出的IRG有效信号M为“H”(参照图中⑥)。
在IRG有效信号M为“H”时,命令检测器32进行存在IRG基本部43B中的指令类别的检测。在检测出存在IRG基本部43B中的指令为基本指令并且是可能以一个时钟执行的指令时,命令检测器32使对状态控制器44输出的IRG重写许可信号N为“H”(参照图中⑦),并将指令发送给命令执行器33。在预取队列器36内的PFQ41、42及IRG基本部分43B中全部存有有效指令的情况下,由于IRG重写许可信号N为“H”,故根据正常RDY信号G,分别将从外部存储器读入的数据存入PFQ41,将PFQ41中的数据存PFQ42,而将PFQ42中的数据存入IRG基本部43B(参照图中⑧)。
在由命令检测器32检测指令类别的结果为存在IRG基本部43B中的指令为基本指令并且是可能以多个时钟执行的指令时,命令检测器32使对状态控制器44输出的IRG重写许可信号N为“L”(参照图中⑨),并将指令发送给命令执行器33。即使在预取队列器36内的PFQ41、42及IRG基本部分43B中全部存有有效指令,但由于IRG重写许可信号N为“L”,故发送控制器37使存储器片选信号B为“L”,并停止取操作(参照图中⑨)。在命令执行器33完成了指令执行时,命令检测器32使IRG重写许可信号N再次为“H”,发送控制器37使存储器片选信号B为“H”,并再次启动取操作(参照图中⑩)。
在由命令检测器32检测指令类别的结果为存在IRG基本部43B中的指令为扩展指令的基本部时,将这个指令作为无处理指令(以下称NOP:NoOperation)并将NOP指令送到命令执行器33中(参照图中)。
接着在扩展指令的扩展部被存入IRG扩展部43E中时,命令检测器32将其与存入IRG基本部43B中的扩展指令基本部组合在一起作为扩展指令发送到命令执行器33中(参照图中)。在此,由于访问RDY信号C为“L”,存储器访问处于等待中,并且IRG重写许可信号为“H”,预取队列器36分别将PFQ41的数据存入PFQ42,将PFQ42的数据存入IRG扩展部43E中(参照图中)。
在从命令检测器32输出的IRG重写许可信号也为“H”,并且IRG基本部43B中没有存入有效指令的情况下,状态控制器44使IRG43的有效标志为“无”,对命令检测器32输出的IRG有效信号M为“L”(参照图中)。在IRG有效信号M为“L”时,命令检测器32使IRG基本部43B中的指令为NOP指令并将NOP指令送到命令执行器33中(参照图中)。
(分支时的指令取操作)
图15是用于说明分支时的指令取操作的时序图。
在有效指令(在此情况下为分支指令)被存入IRG基本部43B中之前,进行与上述通常时的指令取操作相同的指令取操作(同参照图①)。在IRG基本部43B中存有有效指令时,状态控制器44使IRG43的有效标志为“有”并使对命令检测器32输出的IRG有效信号M为“H”。
在IRG有效信号M为“H”时,命令检测器32进行存在IRG基本部43B中的指令类别的检测。在检测出存在IRG基本部43B中的指令为分支指令时,命令检测器32使对状态控制器44输出的IRG重写许可信号N为“H”并将分支指令发送给命令执行器33。由于此时的访问RDY信号C为“H”,故命令执行器33根据分支指令将分支地址通知给取地址选择控制器40,取地址选择控制器40将FPC39的地址重写成分支对方地址,状态控制器44使IRG有效信号M为“L”(参照图中②)。
命令执行器33执行分支指令时,状态控制器44使级数复位到状态0并以分支地址再次进行取操作(参照图中③)。此时,由于IRG有效信号M仍为“L”并且IRG基本部43B中还未存入有效指令,故命令检测器32使IRG基本部43B中的指令为NOP指令并将NOP指令送到命令执行器33中(参照图中④)。但在IRG基本部43B中存入了分支指令的状态下执行分支指令时,在访问RDY信号C为“L”并且存储器访问处于等待中的情况下,命令执行器33对应于状态控制器44使IRG重写许可信号N为“L”并且分支指令的执行也处于等待中。这样在存储器访问的过程中进行地址变更时,就产生了可能发生校验错误的担心(参照图中⑤)。
在访问RDY信号C为“H”时,命令执行器33根据分支指令在访问RDY信号C输出“H”的时刻进行组合并将分支地址通知给取地址选择控制器40,取地址选择控制器40将FPC39的地址重写成分支对方地址,状态控制器44使IRG有效信号M为“L”(参照图中⑥)。命令执行器33执行分支指令时,状态控制器44使级数复位到状态0并以分支地址再次进行取操作(参照图中③)。
(异常时的指令取操作)
图16是用于说明由校验错误造成的异常时的指令取操作的时序图。
在上述通常时的取操作中,发送控制器37在来自外部的访问RDY信号C为“H”时,参照校验位检测器38的数据检测结果。
在此,在检测出校验错误等数据传送异常时,使对取地址生成器35和预取队列器36输出的正常RDY信号G为“L”。此时,在命令执行器33执行分支指令的情况下优先进行分支处理,将FPC39的值变更成分支地址并继续取操作(参照图中①)。另一方面,在检测出校验错误等数据传送异常的时候,在存入IRG43中的指令是分支指令以外的情况下,使对取地址生成器35和预取队列器36输出的正常RDY信号G为“L”,将错误矢量地址设置到FPC39中并转移到错误处理(参照图中②)。
图17是用于说明在FPC中由计数溢出造成的异常时指令取操作的时序图。
在上述通常时的取操作中,在正常RDY信号G为“H”时,取地址选择控制器40使FPC39的值加1。在FPC39中发生计数溢出时,FPC39使对取地址选择控制器40输出的FPC溢出信号P为“H”。此时,在命令执行器33执行分支指令的情况下优先进行分支处理,将FPC39的值变更成分支地址并继续取操作(参照图中①)。另一方面,在FPC39中发生计数溢出并且FPC溢出信号P为“H”的状态下,在存入IRG43中的指令是分支指令以外的情况下,将错误矢量地址设置到FPC39中并转移到错误处理(参照图中②)。
在最近的微处理器中,为了提高处理速度而具有提高操作频率的倾向,提供了各种具有外部时钟频率的1.5-3倍的内部时钟频率。象这样提高操作频率时,就不能以一个时钟定时来进行对存储器的访问。这样做时,在以一个时钟执行的命令连续执行的情况下,由于IRG43内不能存入新的指令,所以指令执行处理就会取决于存储器访问定时。
针对这样的问题,通过进一步增加设置在IRG前的PFQ的段数,如果是在通常时的指令执行中,就能够吸收存储器访问时间的超出,但是在这样的情况下会产生新的问题,例如在执行分支命令时,执行指令顺序变化的情况下,仅在PFQ的段数的指令执行中需要较多的时间。
在现有技术中,由指令检测器32进行存在IRG中的指令码是分支命令还是扩展指令的基本部等的检测时,如果在指令码是扩展指令的情况下,尽管通过预取操作先进行并将指令取入PFQ中,但由于从PFQ到IRG只能进行逐个指令传送,所以具有在扩展指令执行中至少要用两个时钟的问题。而且在这种情况下,在通过分支指令和异常处理等改变执行指令顺序时,由于到新指令被存入IRG中之前,IRG内具有无效指令,从而具有必须将这个无效指令作为NOP指令发送到指令执行器33中的问题。象这样执行分支指令时,由于先进行并且取得的指令成为无意义的,在必然分支的无条件分支指令的情况下最好以一个时钟周期在较早分支的对方地址进行预取操作。
在现有的微处理器30中,在存在的存储器区域的最后具有分支指令的情况下,在取最后的分支指令时,应通过预取操作对不存在存储器的地方进行访问。此时,在发生了校验位错误的情况下,这个错误变为无意义。同样地,在FPC的最大值区域的最后,具有分支指令的情况下,由于取出最后的分支指令后,通过预取操作FPC的计数值加1,发生了计数溢出。此时,虽然发生了FPC计数溢出错误,但这个错误也变为无意义。因此,在现有技术中为了防止这样的无意义的错误发生,在将分支指令从存储区域的最后配置到先于PFQ的段数时,具有在存储区域的指令配置中需要加以考虑的问题。
而且,在现有的微处理器30中,在改变与取操作无关的取地址时,就具有了不能满足存储器访问的地址规定时间,发生校验位错误等数据异常的担心。在取操作的存储器访问中具有地址变化的状态下,在取RDY信号为“H”时变化地址时,具有了执行系列的操作影响了取系列的操作。
发明内容
本发明是针对上述问题而提供一种微处理,与取操作无关地进行高效的指令执行操作,并且无须特殊的考虑也能防止无意义的错误发生。
在取入存在外部存储器的指令码并执行指令的微处理器中,本发明的微处理器包括具有一个指令单位的整数倍的存储容量的多段第一存储装置,具有一个指令单位的整数倍的存储容量并存储应执行的指令码的第二存储装置,选择存在多段第一存储装置的某一个中的指令码或从外部直接取入的指令码并输出到第二存储装置的选择装置,控制选择装置以便将存在第一存储装置中的指令码或从外部取入的指令码直接输出到第二存储装置的状态控制装置,以及读入存在所述第二存储装置中的指令码和接着应存入第二存储装置中的指令码并检测出这些指令码的指令类别的指令类别检测装置。所述状态控制装置根据所述指令类别检测装置的检测结果,控制所述选择装置以便将存在所述多个第一存储装置中的一个中的一个或多个指令码或从外部取入的一个或多个指令码输出到所述第二存储装置中。
本发明中,在例如第二存储装置中不存有有效指令码的情况下,由于被存在多段第一存储装置的第一段的第一存储装置中的指令码或从外部取入的指令码被选择并且被直接输出到第二存储装置,所以即使在外部存储器的访问速度低于微处理器的操作速度时,指令的执行操作几乎不必为了外部存储器的访问而等待。
第二存储装置由以多个指令单位存储有意义的扩展型指令的基本部的基本存储部和存储扩展部的扩展存储部构成。从而,在指令类别检测装置检测出应接着存在第二存储装置中的指令码是扩展型指令的指令码时,由于能够将两个指令码同时存入第二存储装置的扩展存储部和基本存储部中。所以能够加快扩展型指令的执行速度。
本发明的微处理器的对外部存储器进行访问时发生异常的情况下,具有保存异常信息的异常信息保持器,在异常发生的时刻中止新指令的取入。在第一及第二存储装置中没有有效指令的时刻,保存在异常信息保持部中的异常信息变为有效,并根据异常信息执行错误处理。
附图说明
图1是本发实施例中的表示指令取入部周围构成的方块图;
图2是在本实施例的是在状态控制器中表示迁移控制的状态迁移图;
图3是在状态控制器中表示迁移控制的状态迁移图;
图4是在状态控制器中表示迁移控制的状态迁移图;
图5是在状态控制器中表示迁移控制的状态迁移图;
图6是用于说明0等待时的取指令通常操作处理的时序图;
图7是用于说明1等待时的取指令通常操作处理的时序图;
图8是用于说明指令取分支操作处理的时序图;
图9是用于说明非错误指令取异常操作处理的时序图;
图10是用于说明错误指令取异常操作处理的时序图;
图11是现有的微处理器中的指令取入器周边主要部件构成的方块图;
图12是在现有的状态控制器18中表示迁移控制的状态迁移图;
图13是在现有的状态控制器18中表示迁移控制的状态迁移图;
图14是用于说明通常时的指令取操作的时序图;
图15是用于说明分支时的指令取操作的时序图;
图16是用于说明由校验错误造成的异常时的指令取操作的时序图;
图17是说明FPC中由计数溢出造成的异常时的指令取操作的时序图。
优选实施方式
下面根据附图详细说明本发明的实施例。图1是本实施例中的表示指令取入部周边结构的方块图。
如图1所示,本实施例的微处理器1包括用于执行将指令码从图中未示出的外部存储器取入微处理器1的命令取入器2,用于检测所取入的指令的类别的命令检测器3,和用于根据被检出的指令码执行预定处理的命令执行器4。而且在本实施例的微处理器1中,要取入的指令码为32位,为了以两个指令单位取入此指令码,还设置了64位的数据总线BDA和20位的地址总线BAD。
命令取入器2包括具有以64位进行存取的与外部存储器接口功能的外部存储器存取控制器5,具有产生在外部存储器存取控制器5中的取地址功能的取地址生成器6,具有以两个指令单位取入指令码并与命令检测器3接口功能的预取队列器7构成和成为了预先对指令码类别进行简单检测的指令类别检测部的分支未定义命令检测器8。
外部存储器存取控制器5由用于控制对外部存储器的访问操作的发送控制器9、依据8位校验位进行数据有效性检测的校验位检测器10、用于保存了校验错误及FPC计数溢出错误等错误信息的错误保存器(异常信息保存器)11构成。保存在这个错误保存器11中的错误信息是存入PFQ14、15内的全部执行过的指令码,并且在PFQ14、15及IRG16中不存在有效指令的时刻成为有效,在存入PFQ14、15内的指令码为分支指令时成为无效。
取地址生成器6由用于生成访问外部存储器时的地址信息的FPC12以及用于选择为了执行预定的错误处理的错误向量地址和对应于分支指令的分支地址并执行对FPC12的地址设置的取地址选择控制器13构成。
预取队列器7包括以两个指令单位存储32位长指令码的PFQ14U、14L及15U、15L(第一存储装置),用于暂时存储由命令检测器3和命令执行器4检测、执行的指令码的IRG基本部16B及IRG扩展部16E(第二存储装置),从根据来自下述状态控制器18的控制信号而存入PFQ14U、14L或15U、15L中的指令码或者直接取入预取队列器7中的指令码中选择输出应存入IRG基本部16B及IRG扩展部16E内的指令码的多路转换器17(选择装置)以及依据存在PFQ14U、14L、15U、15L、IRG基本部16B及IRG扩展部16E这六个寄存器中的有效指令的有无来设置有效标志的有、无并将现在的状态控制成状态0-状态15这十六个状态的状态控制器18(状态控制装置)。
图2~图5是随对应于六个寄存器的有效标志而变化的状态迁移图,根据这些状态迁移图,状态控制器18进行状态迁移的控制。而且,状态控制器18还具备如下功能:除对上述多路转换器17进行选择指示的控制信号以外,还具有在异常等特殊状态下输出的控制信号,并且多路转换器17根据这个控制信号停止输入选择处理,对IRG基本部16B输出“0”、即输出NOP指令。
分支、未定义命令检测器8包括根据读入的存于IRG基本部16B及IRG扩展部16E内的指令码和必须存于IRG基本部16B内的指令码,来检测这些指令码是否为未定义指令的未定义命令检测器19;在检测这些指令码是否为分支指令的同时,在是分支指令的情况下,进行其执行指示的分支指令检测、执行器20以及检测指令码为基本指令还是扩展指令的次指令基本/扩展检测器21。
下面以(1)通常时(存储器存取时间不同的两种模式)、(2)分支时和(3)异常时(有无错误发生的两种模式)三种情况说明本实施例中的微处理器1的指今取操作。而且,作为以下说明及图中所使用的简略标号,除E,F,I,J,L以外的A~P和CLK与前面的说明相同,但取数据E、PFQ14内的存储数据I、PFQ15内的存储数据J在本实施例的构成上分为上位部分(EU,IU,JU)和下位部分(EL,IL,JL),IRG16内的存储数据L分为基本部LB和扩展部LE。Q表示执行程序计数器的计数值,R表示从发送控制部输出的取RDY信号,S表示指示指令码是否为扩展指令的次指令扩展信号,T表示取RDY忽略信号,U表示分支成立信号,V表示错误保存信号。
(外部存储器访问为等待0时的取指令通常操作)
图6是用于说明0等待时的取指令通常操作处理的时序图。
首先,在输入到状态控制器18的取有效信号A为“H”时,发送控制器9使存储器片选信号B为“H”并以FPC12的值为地址进行存储器访问(参照图中①)。然后,在来自外部的访问RDY信号C为“H”时,参照由校验位检测器10产生的数据检测结果,如果正常的话,使对取地址生成器6及预取队列器7输出的取RDY信号R为“H”(参照图中②)。
在取RDY信号R为“H”时,取地址选择控制器13使FPC12的值加2(参照图中③),由于PFQ14、15及IRG16在空状态下不存在有效指令,故状态控制器18在将从外部存储器读入的数据存入PFQ14的同时,将其通过多路转换器17也存入IRG16中(参照图中④)。
由此,在PFQ14、15及IRG16中不存在有效指令的情况下,由于从外部存储器读出的数据能够通过多路转换器17直接被存入IRG16中,从而缩短了到执行指令的时间。
接着,在有效指令被存入IRG16中时,状态控制器18使有效标志为“有”并使对命令检测器3输出的IRG有效信号M为“H”(参照图中⑤)。
在IRG有效信号M为“H”时,命令检测器3进行存于IRG16中的指令类别的检测。在检测出存于IRG16中的指令为基本指令并且是能以一个时钟执行的指令时,命令检测器3使对状态控制器18输出的IRG重写许可信号N为“H”,并将指令发送给命令执行器4(参照图中⑥)。接着在确认IRG有效信号M和IRG重写许可信号N为“H”时,执行程序计数器加1(参照图中⑦),并且状态控制器18将PFQ14U中的指令码存入IRG基本部16B中(参照图中③)。
在由命令检测器3检测指令类别的结果为存在IRG16中的指令为基本指令并且是能以多个时钟执行的指令时,命令检测器3使对状态控制器18输出的IRG重写许可信号N为“L”,并将指令发送给命令执行器4(参照图中⑨)。接着,状态控制器18将状态控制指令存入PFQ14、15及IRG16中,在PFQ14、15及IRG16中全部存有有效指令时,队列或IRG空信号为“L”(参照图中⑩)。
在此,由于PFQ14、15及IRG16中全部存有有效指令并且IRG重写许可信号N为“L”,取RDY信号R为“H”,取RDY忽略信号T为“H”,数据不存入PFQ14中(参照图中)。接着,由于取RDY忽略信号T为“H”,取地址选择控制器13不进行FPCI2的递增计数,并以同一地址进行取操作(参照图中)。
接着,在检测出应存在IRG16中的指令为扩展指令时,次命令基本/扩展检测器21将指令码同时存入IRG基本部16B及IRG扩展部16E内并发送到命令检测器3中(参照图中)。由此,可以同时将扩展指令的基本部和扩展部取入IRG16中。
在IRG重写许可信号N为“H”并且PFQ14、15及IRG16中全部存有有效指令的情况下,使取RDY忽略信号T为“H”,未取入所访问的数据,并在下一个时钟以同一地址再次进行指令的取入操作。
(外部存储器访问为等待1时的取指令通常操作)
图7是用于说明1等待时的取指令通常操作处理的时序图。
首先,在输入到状态控制器18的取有效信号A为“H”时,发送控制器9使存储器片选信号B为“H”并进行以FPC12的值为地址的存储器访问(参照图中①)。由于PFQ14、15及IRG16的空状态下不存在有效指令,故状态控制器18根据取RDY信号R为“H”的时刻而将从外部存储器读入的数据存入PFQ14,同时,将其通过多路转换器17也存入IRG16中(参照图中②)。而且,状态控制器18使IRG16中的有效标志为“有”并使对命令检测器3输出的IRG有效信号M为“H”(参照图中③)。
接着,在将PFQ14U内的基本指令存入IRG基本部16B中时,由于此时的取RDY信号R为“L”,故PFQ14为空(参照图中④)。从而,由于PFQ14、15为空并且IRG重写许可信号为“H”,故根据取RDY信号R为“H”的时刻而将从外部存储器读入的数据存入PFQ14,同时,将其通过多路转换器17也存入IRG16中(参照图中⑤)。
接着,在将PFQ14U内的基本指令存入IRG基本部16B中时(参照图中⑥),由于此时存在IRG基本部16B中的扩展指令中不存在扩展部数据,故IRG有效信号M为“L”,并根据取RDY信号R为“H”的时刻而将从外部存储器读入的数据存入PFQ14和IRG扩展部16E中,使IRG有效信号M为“H”(参照图中⑧)。由此,在存储器访问中为等待1的情况下,能够以连续的时刻取入扩展指令。
(指令取分支操作)
图8是用于说明指令取分支操作处理的时序图。
首先,在输入到状态控制器18的取有效信号A为“H”时,发送控制器9使存储器片选信号B为“H”并以FPC12的值为地址进行存储器访问(参照图中①)。接着,根据图2~图5所示的状态迁移进行指令的取入操作(参照图中②)。在此,在IRG16内为有条件分支指令以外的指令码并且该指令码是不能在1个时钟内执行的指令时,命令检测器3使IRG重写许可信号N为“L”(参照图中③)。
另一方面,在存入IRG基本部16B中的指令为无条件分支指令时,分支、未定义命令检测器8使分支成立信号U为“H”(参照图中④),取地址选择控制器13将分支地址写入FPC12中(参照图中⑤)。虽然此时的IRG重写许可信号为“L”,但由于分支已经成立,故状态控制器18按照分支地址将所取的指令存入IRG16中(参照图中⑥)。接着,基于图2~图5所示的状态迁移进行指令的取入操作(参照图中⑦)。
由此,在分支成立时,由于在分支地址所取的指令被直接存入IRG16中,所以与PFQ14、15的段数无关的分支指令被马上执行。
现在,在IRG基本部16B内被存入有条件指令以外的指令并且接着存于IRG基本部16B中的指令为无条件分支指令时,分支、未定义命令检测器8使分支成立信号U为“H”(参照图中⑧)。在分支成立信号U为“H”时,取地址选择控制器13将分支地址写入FPC12中(参照图中⑨)。在此,外部存储器存取控制器5在外部存储器访问待机中进行FPC12的重写时,虽然访问RDY信号C为“L”,但忽略此信号,使取RDY信号为“L”(参照图中⑩)。在访问RDY信号C第二次变成“H”的时刻,将分支地址下的指令码取入PFQ14及IRG16中(参照图中(11))。
(非错误指令取异常操作)
图9是用于说明非错误指令取异常操作处理的时序图。
首先,在输入到状态控制器18的取有效信号A为“H”时,发送控制器9使存储器片选信号B为“H”并以FPC12的值为地址进行存储器访问(参照图中①)。接着,根据图2~图5所示的状态迁移进行指令码的取入操作(参照图中②)。在取操作中检测出数据异常时,取地址选择控制器13中止存储器访问(参照图中③),并根据错误信息,错误保存器11使错误保持信号为“H”(参照图中④)。
在分支/未定义命令检测器8检测出IRG16中存有有条件分支指令时,等待从命令检测器3输入的分支条件信号变成“H”,并且在分支条件信号为“H”时,分支成立信号U为“H”(参照图中⑤)。而且,在分支成立信号U为“H”时,取地址选择控制器13将分支地址写入FPC12中(参照图中⑥),并根据由分支成立引起的FPCI2的重写,外部存储器存取控制器5使错误保持信号V为“L”(参照图中⑦)。
(错误指令取异常操作)
图10是用于说明错误指令取异常操作处理的时序图。
首先,在输入到状态控制器18的取有效信号A为“H”时,发送控制器9使存储器片选信号B为“H”并以FPC12的值为地址进行存储器访问(参照图中①)。接着,根据图2所示的状态迁移进行指令码的取入操作(参照图中②)。在取操作中检测出数据异常时,外部存储器存取控制器5中止存储器访问(参照图中③),并根据错误信息,错误保存器11使错误保持信号V为“H”(参照图中④)。此处理与非错误指令取异常操作时的处理相同。
在分支/未定义命令检测器8检测出IRG16中存有有条件分支指令时,确认来自命令检测器3的分支条件信号为“L”并分支条件不成立,使分支成立信号U为“L”(参照图中⑤)。在分支成立信号U为“L”时,状态控制器18将IRG16的错误指令发送到命令检测器3,此时,由于PFQ14、15及IRG16内不存有有效指令,故IRG有效信号M为“L”(参照图中⑥)。由于IRG有效信号为“L”并且错误保持信号V为“H”,故取地址选择控制器13将表示预定错误处理地址的错误向量写入FPC12,并转移到错误处理(参照图中⑦)。外部存储器存取控制器5在转移到错误处理的时候使错误保持信号V为“L”(参照图中⑧)。
根据以上说明,在本实施例中,由于指令码的取操作和指令的执行操作能够相互独立地进行,所以取系统和执行系统能够分离,并且在高速化的微处理器的时钟下指令执行几乎无须等待取操作,从而使指令的连续执行成为可能。
由于用较少的队列数可以连续执行指令,所以在抑制了零件件数的同时能够容易地实现由状态控制器18进行的取管理。而且,由于在异常指令码被执行时可进行异常通知,所以能够将指令码排列到存储器领域的最后,而不需要特别考虑分支指令的排列位置。
由于可以同时以两个指令单位处理指令码,故可在一个时钟内执行扩展指令,而且,由于设计了向多路转换器17输出NOP指令的功能,故能够省略由命令检测器3判定输出NOP指令的功能。
在上述的实施例中,是以作为第一寄存器的PFQ的个数是2为例进行说明的,但这个个数是可以任意设定的。在上述的实施例中,分支/未定义命令检测器8被设置于命令取入器2内,但不应仅限于此结构,也可设置于命令取入器2以外。
而且,在上述实施例中,指令码为32位,扩展指令为32位×2,但指令码的位数不仅限于此,扩展指令也可以是任意位数的指令码。即,作为第一寄存器的PFQ的存储位数及个数对应于上述指令码,通过扩展数据总线位数使之成为可能。
由以上的说明可知,通过本发明能够高效地进行与取操作无关的指令执行操作,由于能够高效地处理扩展指令和分支指令,故能够使指令码的取入处理高速化。
而且,由于错误处理是在执行成为错误对象的指令码时进行的,故不需要特别予以考虑并能够防止无意义的错误发生。
Claims (12)
1.一种取入存于外部存储器中的指令码并执行指令的微处理器,其特征在于,包括:
多个具有一个指令单位的整数倍的存储量的第一存储装置;
具有一个指令单位的整数倍的存储量并存储应执行的指令码的第二存储装置;
选择存在所述多个第一存储装置中的一个中的指令码或从外部取入的指令码,输出到所述第二存储装置中的选择装置;
控制所述选择装置以便直接将存在所述第一存储装置中的指令码或从外部取入的指令码输出到所述第二存储装置中的状态控制装置;以及
读入存在所述第二存储装置中的指令码和接着应存入第二存储装置中的指令码并检测出这些指令码的指令类别的指令类别检测装置,
所述状态控制装置根据所述指令类别检测装置的检测结果,控制所述选择装置以便将存在所述多个第一存储装置中的一个中的一个或多个指令码或从外部取入的一个或多个指令码输出到所述第二存储装置中。
2.如权利要求1所述的微处理器,其特征在于,所述第二存储装置由存储以多个指令单位保持意义的扩展型指令的基本部的基本存储部和存储扩展部的扩展存储部构成,
在所述指令类别检测装置检测出存于第二存储装置中的指令码为扩展型指令的指令码时,所述状态控制装置控制所述选择装置以便将扩展型指令的基本部存入所述第二存储装置的基本存储部,同时将扩展型指令的扩展部存入所述扩展存储部中。
3.如权利要求1或2所述的微处理器,其特征在于,所述状态控制装置控制所述选择装置以便在所述第二存储装置中不存在可以执行的指令或存在所述第二存储装置中的指令被执行为空的情况下,将存在所述第一存储装置中的指令码或从外部取入的指令码存入所述第二存储装置中。
4.如权利要求3所述的微处理器,其特征在于,所述状态控制装置控制所述选择装置以便在所述第一及第二存储装置中不存在可以执行的指令或存在所述第二存储装置中的指令被执行为空的情况下,将从外部取入的一个指令码存入所述第一存储装置,其它指令码存入所述第二存储装置中。
5.如权利要求1或2所述的微处理器,其特征在于,具有用于生成应从外部存储器连续取入的指令的地址的取地址生成装置,
在指令取入的存取中,在取地址被重新变更时,忽略存取中的数据并以变更后的地址再次进行指令取入。
6.如权利要求1或2所述的微处理器,其特征在于,具有用于生成应从外部存储器连续取入的指令的地址的取地址生成装置,
在所述第一及第二存储装置中全部存有有效的指令码时,忽略根据所述取地址生成装置生成的取地址而读出的数据,并在下一个时钟以同一地址再次进行指令取入。
7.如权利要求1或2所述的微处理器,其特征在于,具有用于生成应从外部存储器连续取入的指令的地址的取地址生成装置,
在存在所述第二存储装置中指令码为有条件分支指令以外的指令码并且下一个应存入所述第二存储装置的指令码为无条件分支指令时,所述取地址生成装置生成该无条件分支指令的分支对方地址作为下一个的取地址。
8.如权利要求1或2所述的微处理器,其特征在于,在下一个应存入所述第二存储装置的指令码为无条件分支指令时,所述取地址生成装置生成该无条件分支指令的分支对方地址作为下一个的取地址,
所述状态控制装置将由所述分支对方地址读出的指令码从所述选择装置输出到所述第二存储装置中。
9.如权利要求1或2所述的微处理器,其特征在于,在先取入的指令被废弃或下一个应存入所述第二存储装置的指令码为未定义指令时,直到所述第二存储装置中存入有效的指令码,所述状态控制装置才从所述选择装置输出无处理指令的指令码。
10.如权利要求1或2所述的微处理器,其特征在于,在访问外部存储器时发生异常的情况下,具有保存异常信息的异常信息保存器,在异常发生的时刻中止新的指令取入。
11.如权利要求10所述的微处理器,其特征在于,在异常信息被保存在所述异常信息保存器中的状态下,在所述第一及第二存储装置中无有效指令时,保存在所述异常信息保存器中的异常信息变为有效并根据该异常信息执行错误处理。
12.如权利要求10所述的微处理器,其特征在于,在异常信息被保存在所述异常信息保存器中的状态下,在由于分支指令及其异常处理而使先取入的指令被废弃时,异常信息变为无效。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25125996A JP3476314B2 (ja) | 1996-09-24 | 1996-09-24 | マイクロプロセッサ |
JP251259/1996 | 1996-09-24 | ||
JP251259/96 | 1996-09-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1180199A CN1180199A (zh) | 1998-04-29 |
CN1107272C true CN1107272C (zh) | 2003-04-30 |
Family
ID=17220124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 97110943 Expired - Fee Related CN1107272C (zh) | 1996-09-24 | 1997-02-27 | 微处理器 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3476314B2 (zh) |
CN (1) | CN1107272C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113496275B (zh) * | 2020-04-08 | 2023-07-25 | 北京地平线机器人技术研发有限公司 | 指令执行方法、装置和电子设备 |
-
1996
- 1996-09-24 JP JP25125996A patent/JP3476314B2/ja not_active Expired - Lifetime
-
1997
- 1997-02-27 CN CN 97110943 patent/CN1107272C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1097422A (ja) | 1998-04-14 |
CN1180199A (zh) | 1998-04-29 |
JP3476314B2 (ja) | 2003-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2212704C2 (ru) | Структура совместно используемого кэша для временных и невременных команд | |
CN1084896C (zh) | 清空高速缓冲存储器内容的装置 | |
KR100555997B1 (ko) | 메모리 엔진과, 데이터 조사 및 정정 방법 | |
CN1522405A (zh) | 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法 | |
CN1690952A (zh) | 根据多组高速缓存组预测来选择执行的指令的装置和方法 | |
CN86102265A (zh) | 随机存取存贮器的快速功能测试法及其系统 | |
CN1105138A (zh) | 超标量计算机的寄存器结构 | |
CN1117767A (zh) | 分级数据超高速缓冲存储器系统中同步化的系统和方法 | |
CN1834930A (zh) | 双重存储装置及该双重存储装置的控制方法 | |
CN1376977A (zh) | 选择性存取不同指令缓冲阶层的装置及方法 | |
CN1218227A (zh) | 数据处理系统和微型计算机 | |
CN1180430A (zh) | 不按顺序执行读写指令的存储器控制器 | |
CN1287296C (zh) | 减少快取储存器标签阵列存取动作的系统及其方法 | |
CN1038792C (zh) | 三维计算机图形设备 | |
CN1149472C (zh) | 更名装置及处理器 | |
CN1107272C (zh) | 微处理器 | |
CN1148656C (zh) | 面向线程的调试 | |
CN1132111C (zh) | 微处理器 | |
CN1250184A (zh) | 具有地址变换的数据处理方法及设备 | |
US20050055488A1 (en) | Method and related apparatus for controlling data transmission in a memory | |
CN1297892C (zh) | 用于微处理器的中断控制器 | |
US20120005414A1 (en) | Semiconductor memory device and method of reading data from and writing data into a plurality of storage units | |
JP3747213B1 (ja) | シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ | |
JP2005258509A (ja) | ストレージ装置 | |
CN1206145A (zh) | 带有流水线处理电路的信号处理器及其方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030430 Termination date: 20100227 |