会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~

微处理器

阅读:91发布:2020-05-12

IPRDB可以提供微处理器专利检索,专利查询,专利分析的服务。并且一种能高效执行指令而与取操作无关的微处理器。通过预取队列器7实现的。预取队列器7由以两个指令单位存储32位指令码的PFQ14U、14L及15U、15L,暂时存储应执行的指令的IRG基本部16B及扩展部16E,从存在PFQ14U、14L或15U、15L中的指令码或从外部取入的指令码中选择输出应存在IRG基本部16B及扩展部16E中的指令码的多路转换器17以及控制寄存器及多路转换器操作的状态控制器18构成。,下面是微处理器专利的具体信息内容。

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所述的微处理器,其特征在于,在异常信息被保存 在所述异常信息保存器中的状态下,在由于分支指令及其异常处理而使先 取入的指令被废弃时,异常信息变为无效。

说明书全文

发明领域

本发明涉及微处理器

微处理器通过将存储在成为外部存储器的主存储器中的指令码和数据 取入微处理器内部来进行指令的执行处理过程。但是,由于用在主存储器 中的外部存储器,例如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:No Operation)并将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的存储位数及个数对应于上述指令码,通过扩展数据总 线位数使之成为可能。
由以上的说明可知,通过本发明能够高效地进行与取操作无关的指令 执行操作,由于能够高效地处理扩展指令和分支指令,故能够使指令码的 取入处理高速化。
而且,由于错误处理是在执行成为错误对象的指令码时进行的,故不 需要特别予以考虑并能够防止无意义的错误发生。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用