CN101180607B - 处理器 - Google Patents

处理器 Download PDF

Info

Publication number
CN101180607B
CN101180607B CN2006800178135A CN200680017813A CN101180607B CN 101180607 B CN101180607 B CN 101180607B CN 2006800178135 A CN2006800178135 A CN 2006800178135A CN 200680017813 A CN200680017813 A CN 200680017813A CN 101180607 B CN101180607 B CN 101180607B
Authority
CN
China
Prior art keywords
instruction
mentioned
group
instructions
mentioned instruction
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
Application number
CN2006800178135A
Other languages
English (en)
Other versions
CN101180607A (zh
Inventor
细木哲
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101180607A publication Critical patent/CN101180607A/zh
Application granted granted Critical
Publication of CN101180607B publication Critical patent/CN101180607B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明的处理器(101)具备:指令缓冲器(102),保持可并列执行的指令组;指令解释单元(103),可同时解释指令组的一部分或全部;指令发出控制单元(111),检测在指令组中是否存在阻碍同时执行指令组的原因,在存在原因的情况下依次供给指令组的指令,在不存在原因的情况下控制指令缓冲器(102)将指令组向指令解释部(103)供给,以将指令组的所有指令同时供给。

Description

处理器
技术领域
本发明涉及能够并列解释并执行多个指令的处理器。
背景技术
近年来,在能够并列解释并执行多个指令的处理器中,提出了各种有关对不能同时执行的多个指令的控制方法的技术。
作为一例,设有控制单元,该控制单元将指令发送给执行阶段,在执行阶段中的指令的处理中判断是否依存于不可利用的数据,在依存的情况下仅使该指令停止而同时执行其他指令。即,提出了在前进到执行阶段后不能同时执行的情况下,发生风险而停止处理的技术(参照例如专利文献1)。
此外,通过对应于指令缓冲器及各运算器的指令寄存器的未发出的指令数判断是否能够进行指令的同时执行,进行寄存器的更新控制。即,提出了在处理器中准备监视执行状态的电路,根据在运算器中先行的指令文是怎样的执行状态的信息,在前进到执行阶段之前控制指令供给来停止处理的技术(参照例如专利文献2)。
专利文献1:日本特开平8-221273号公报
专利文献2:日本特开平8-305567号公报
但是,在以往的技术中,在判断执行阶段中的指令的数据依存性的控制单元中,如果随着省面积化而减少运算器的数量,则有对于发生构造风险的多个指令不能适用的问题。它是为了在将指令发送给执行阶段后判断指令的同时执行可能性。
此外,如果对于对1个指令代码执行多个操作的多循环指令准备并列数的计数器,则能够同时执行多个多循环指令,但如果伴随着省面积化而减少计数器的数量,则产生同样的问题。
此外,在以往的根据指令缓冲器与指令寄存器的未发出的指令数判断同时执行的可否的方法中,由于除了需要检测运算器中的指令执行状态,还有对于已经具有并列地保持多个指令的指令缓冲器的处理器不能适用的问题。
即,有在如随着省面积化而减少了运算器的数量的情况、或者随着高速化而将单循环指令变更为多循环指令的情况等那样变更了架构的情况下,不能适用的问题。
发明内容
所以,本发明是鉴于上述问题而做出的,目的是提供一种处理器,该处理器在如随着省面积化而减少了运算器的数量的情况、或者随着高速化而将单循环指令变更为多循环指令的情况等那样、变更了处理器的构造的情况下,也能够不改变对变更前的架构最适合化的目标代码而利用。
在解决上述问题时,有关本发明的处理器,(a)是能够将多个指令并列解释的处理器,具备:(b)指令缓冲器,保持可并列执行的指令组;(c)指令解释单元,可同时解释上述指令组的一部分或全部;(d)指令发出控制单元,基于执行包含在上述指令组中的规定的指令的运算器的个数,检测在上述指令组中是否存在阻碍同时执行上述指令组的原因,在存在上述原因的情况下,依次供给上述指令组的指令,在不存在上述原因的情况下,控制上述指令缓冲器向上述指令解释单元供给上述指令组,以同时供给上述指令组的所有指令。
由此,即使在存在指令执行部的结构最适合化于部分不同的其他处理器用的指令程序、能够同时执行的指令的组合不同、在指令缓冲器中保持有不能同时执行的多个指令的情况下,通过由指令发出控制单元依次供给,也能够不改变程序或进行指令缓冲器的保存方法的变更等、而 原样地利用程序。
此外,能够不检测指令执行部的动作状态等、仅通过指令的静态信息就能够判断可否同时执行,有利于设计容易化以及设计周期的缩短。
进而,上述指令发出控制单元基于从上述指令解释单元输入的上述指令组的解释结果,检测出在上述指令组之中包含有发生构造风险的指令的组合的情况,作为阻碍同时执行上述指令组的原因。
此外,上述指令发出控制单元基于从上述指令解释单元输入的上述指令组的解释结果,检测出在上述指令组之中包含有1个以上有可能发生构造风险的指令的情况,作为阻碍同时执行上述指令组的原因。
由此,能够使构造风险的检测简单化,能够使检测变得更高速,所以也有利于处理器的动作速度的高速化。
或者,上述指令发出控制单元基于简单解释从上述指令缓冲器输入的上述指令组的结果,检测出在上述指令组之中包含有规定数量的多循环指令的情况,作为阻碍同时执行上述指令组的原因。
或者,上述指令发出控制单元基于简单解释从上述指令缓冲器输入的上述指令组的结果,检测出在上述指令组之中包含有1个以上多循环指令的情况,作为阻碍同时执行上述指令组的原因。
由此,能够使多循环指令的检测简单化,能够使检测变得更高速,所以也有利于处理器的动作速度的高速化。
或者,上述指令发出控制单元在依次供给上述指令组的指令的情况下,利用以能够由上述指令解释单元同时解释的最大指令数为最大值的计数器,从上述指令组之中依次每次供给1个对应于上述计数器的各个值的指令。
由此,能够不检测指令执行部的动作状态等而通过仅由指令缓冲器的指令决定的计数器的计数器值进行指令供给的控制,有利于设计容易化以及设计期间的缩短。
或者,上述指令发出控制单元在依次供给上述指令组的指令的情况下,利用以保持在上述指令缓冲器中的指令数为最大值的计数器,从上 述指令组之中依次每次供给1个对应于上述计数器的各个值的指令。
由此,即使在指令缓冲器中没有配置有指令解释单元能够同时解释的最大指令数的情况下,也能够没有冗余的设备周期而控制指令的供给,有利于处理性能的提高。
或者,上述指令发出控制单元在依次供给上述指令组的指令的情况下,将上述指令组分割为有可能发生上述构造风险的指令为1个指令以下的子指令组,利用以有可能发生上述构造风险的指令数为最大值的计数器,依次供给对应于上述计数器的各个值的子指令组。
由此,能够总是同时供给可同时执行的最大指令数,有利于处理性能的提高。
或者,上述指令发出控制单元在依次供给上述指令组的指令的情况下,将上述指令组分割为上述多循环指令为1个指令以下的子指令组,利用以上述多循环指令数为最大值的计数器,依次供给对应于上述计数器的各个值的子指令组。
由此,能够总是同时供给可同时执行的最大指令数,有利于处理性能的提高。
另外,本发明不仅可以作为处理器实现,也可以作为控制处理器的方法等实现。
此外,也可以作为组装有由处理器提供的功能的LSI、将其功能形成在FPGA、CPLD等的可编程逻辑设备中的IP核心、以及记录有该IP核心的记录介质等来实现。
以上,根据本发明的处理器,即使在存在有指令执行部的结构最适合化于部分不同的其他处理器用的指令程序,能够同时执行的指令的组合不同,在指令缓冲器中保持有不能同时执行的多个指令的情况下,通过由指令发出控制单元依次供给,也能够不改变程序或进行指令缓冲器的保存方法的变更等、而原样地利用程序。
此外,能够不检测指令执行部的动作状态等、仅通过指令的静态信息就能够判断可否同时执行,有利于设计容易化以及设计周期的缩短。
此外,在处理器在其他处理器中是单循环指令、能够同时执行多个的指令变为多循环指令而不能同时执行多个的情况下,即使在存在有包含该指令的最适合化于上述其他处理器用的程序的情况下,在指令缓冲器中保持有不能同时执行的多个多循环指令的情况下,通过由指令发出控制部依次供给,也能够不改变程序或进行指令缓冲器的保存方法的变更等、而原样利用程序。
附图说明
图1是表示实施方式1的处理器的结构的框图。
图2是表示实施方式1的指令解码器的结构的框图。
图3是表示实施方式1的指令发出控制部的结构的框图。
图4A是表示用来说明实施方式1的程序例的图。
图4B是表示用来说明实施方式1的程序例的图。
图5A是用来说明实施方式1的动作说明图。
图5B是用来说明实施方式1的动作说明图。
图6是表示实施方式2的处理器的结构的框图。
图7是表示实施方式2的指令发出控制部的结构的框图。
图8A是表示用来说明实施方式2的程序例的图。
图8B是表示用来说明实施方式2的程序例的图。
图8C是表示用来说明实施方式2的程序例的图。
图9A是用来说明实施方式2的动作说明图。
图9B是用来说明实施方式2的动作说明图。
图9C是用来说明实施方式2的动作说明图。
图10是表示实施方式3的处理器的结构的框图。
图11是表示实施方式3的指令发出控制部的结构的框图。
图12A是表示用来说明实施方式3的程序例的图。
图12B是表示用来说明实施方式3的程序例的图。
图13A是用来说明实施方式3的动作说明图。
图13B是用来说明实施方式3的动作说明图。
图14是表示实施方式4的处理器的结构的框图。
图15是表示实施方式4的指令发出控制部的结构的框图。
图16A是表示用来说明实施方式4的程序例的图。
图16B是表示用来说明实施方式4的程序例的图。
图17A是用来说明实施方式4的动作说明图。
图17B是用来说明实施方式4的动作说明图。
图18是表示实施方式5的处理器的结构的框图。
图19是表示实施方式5的指令发出控制部的结构的框图。
图20A是表示用来说明实施方式5的程序例的图。
图20B是表示用来说明实施方式5的程序例的图。
图20C是表示用来说明实施方式5的程序例的图。
图21A是用来说明实施方式5的动作说明图。
图21B是用来说明实施方式5的动作说明图。
图21C是用来说明实施方式5的动作说明图。
图22是表示实施方式6的处理器的结构的框图。
图23是表示实施方式6的指令发出控制部的结构的框图。
图24是表示实施方式6的无效化指令选择部的输入输出关系的真值表的图。
图25A是表示用来说明实施方式6的程序例的图。
图25B是表示用来说明实施方式6的程序例的图。
图26A是用来说明实施方式6的动作说明图。
图26B是用来说明实施方式6的动作说明图。
附图标记说明
101、201、301、401、501、601处理器
102、402指令缓冲器
103、403指令解释部
104、404指令执行部
105、405指令解码器
106、406控制信号选择部
107、407算术逻辑运算部
108、408积和运算部
109、409存储器访问控制部
110、410寄存器文件
111、211、311、411、511、611指令发出控制部
112、212构造风险检测部
113、313、414、614指令无效化控制部
412多循环指令解释管理部
413、513、613多循环指令检测部
420除法运算部
624无效化指令选择部
具体实施方式
(实施方式1)
以下,参照附图对本发明的实施方式1进行说明。
实施方式1的处理器是能够并列解释多个指令并执行的处理器,其特征在于,其特征在于,保持可并列执行的指令组,能够同时解释指令组的一部分或全部,检测在指令组中是否存在阻碍同时执行指令组的原因,在存在原因的情况下依次供给指令组的指令,在不存在原因的情况下控制指令缓冲器而将指令组向指令解释部供给,以将指令组的所有的指令同时供给。
此外,实施方式1的处理器的特征还在于,基于从指令解释部输入的指令组的解释结果,检测在指令组之中包含有发生构造风险的指令的组合的情况,作为原因。
此外,实施方式1的处理器的特征还在于,在依次供给指令组的指令的情况下,利用以能够由指令解释部同时解释的最大指令数为最大值的计数器,从指令组中将对应于各个计数器的值的指令每次供给1个。
遵循以上的点,对实施方式1的处理器进行说明。
图1是表示本实施方式的处理器的结构的框图。这里是能够同时执行3个指令的处理器的结构,但本发明的适用范围并不限于3个指令。
如图1所示,处理器101具备指令缓冲器组102、指令解释部103、指令执行部104、指令发出控制部111等。
指令缓冲器组102具备多个指令缓冲器,保持指令组。这里,假设由指令缓冲器102-1~102-3构成。指令缓冲器102-1保持有指令代码151-1和指令有效信息152-1。指令缓冲器102-2保持有指令代码151-2和指令有效信息152-2。指令缓冲器102-3保持有指令代码151-3和指令有效信息152-3。
指令解释部103由指令解码器105-1~105-3、控制信号选择部106构成。
指令执行部104由算术逻辑运算部107、积和运算部108、存储器访问控制部109、和寄存器文件110构成。通过算术逻辑运算部107、积和运算部108、存储器访问控制部109执行指令,将执行而得到的结果保存到寄存器文件110中。
图2是表示本实施方式的指令解码器105-1~105-3的结构的框图。这里,对指令解码器105-1进行说明,对于指令解码器105-2、105-3,由于是与指令解码器105-1相同的结构,所以省略说明。
如图2所示,指令解码器105-1从指令缓冲器102-1接受指令代码151-1及指令有效信息152-1。此时,如果指令有效信息152-1被肯定,则将指令代码151-1解码。并且,将对应于解码结果的指令执行控制信号153-1向控制信号选择部106输出。此外,在检测到有可能发生构造风险的指令时,将对应于解码结果的发出控制指令检测信号154-1向指令发出控制部111输出。另一方面,如果指令有效信息152-1被否定,则不将指令代码151-1解码。
控制信号选择部106从指令解码器105-1~105-3接受指令执行控制信号153-1~153-3,从指令发出控制部111接受指令无效化信号155-1~ 155-3,将对应于有效的指令的指令执行控制信号157向指令执行部104输出。具体而言,如果指令无效化信号155-1被否定,则对应于指令执行控制信号153-1的指令执行控制信号157被肯定。此外,对于指令无效化信号155-2与指令执行控制信号153-2、指令无效化信号155-3与指令执行控制信号153-3也同样。假设指令无效化信号155-1~155-3都被否定,则对应于指令执行控制信号153-1~153-3的全部的指令执行控制信号157被肯定。即,对应于指令无效化信号155-1~155-3被否定的组合,将指令执行控制信号153-1~153-3组合、对应于组合后的指令执行控制信号153-1~153-3的指令执行控制信号157被肯定。
图3是表示本实施方式的指令发出控制部111的结构的框图。如图3所示,指令发出控制部111具备构造风险检测部112、指令无效化控制部113等。
构造风险检测部112从指令解码器105-1~105-3接受发出控制指令检测信号154-1~154-3,由逻辑积电路114-1~3分别在发出控制指令检测信号154-1与发出控制指令检测信号154-2、发出控制指令检测信号154-2与发出控制指令检测信号154-3、发出控制指令检测信号154-1与发出控制指令检测信号154-3之间检测2个指令的发出控制对象的指令的有无。进而,由逻辑和电路115判断2个指令以上的发出控制对象的指令的有无,将对应于判断结果的依次发出指示信号162向指令无效化控制部113输出。此时,如果有发出控制对象的指令,则依次发出指示信号162被肯定。
指令无效化控制部113接受依次发出指示信号162,启动初始值0的2-bit累加计数器116。接着,2-bit累加计数器116在依次发出指示信号162被肯定的每个期间机器周期,更新计数器值163。
比较器117-1~117-3从2-bit累加计数器116接受计数器值163。进而,比较器117-1将值“0”与计数器值163比较,将比较结果164-1向逻辑积电路118-1输出。同样,比较器117-2将值“1”与计数器值163比较,将比较结果164-2向逻辑积电路118-2输出。比较器117-3将值“2” 与计数器值163比较,将比较结果164-3向逻辑积电路118-3输出。
逻辑积电路118-1~118-3从构造风险检测部112接受依次发出指示信号162。进而,逻辑积电路118-1从比较器117-1接受比较结果164-1,将对应于依次发出指示信号162与比较结果164-1的逻辑积的指令无效化信号155-1输出。同样,逻辑积电路118-2从比较器117-2接受比较结果164-2,将对应于依次发出指示信号162与比较结果164-2的逻辑积的指令无效化信号155-2输出。逻辑积电路118-3从比较器117-3接受比较结果164-3,将对应于依次发出指示信号162与比较结果164-3的逻辑积的指令无效化信号155-3输出。此外,逻辑积电路118-3还将指令无效化信号155-3作为指令缓冲器更新停止信号156输出。
对于以上那样构成的处理器,以下说明其动作。
图4A、图4B是用来进行动作说明的指令程序例,图5A、图5B是其动作说明图。这里,在图4A、图4B、图5A、图5B中,add表示加法指令,mac表示积和运算指令,ld表示来自存储器的装载指令,能够通过算术逻辑运算部107、积和运算部108、存储器访问控制部109执行。这里,在实施方式1的处理器101中使用的程序中,假设所有指令配置为,使得仅有可能发生对算术逻辑运算部107的构造风险、即在指令缓冲器102中有可能配置有多个算术逻辑运算指令,但不会发生除此以外的构造风险。
在图4A所示的指令的组合(add,mac,ld)中,由于执行这些指令的运算部的数量足够,所以能够同时执行3个指令。指令解码器105-1检测使用算术逻辑运算部107的指令,将对应于检测结果的发出控制指令检测信号154-1向指令发出控制部111输出。同样,指令解码器105-2检测使用算术逻辑运算部107的指令,将对应于检测结果的发出控制指令检测信号154-2向指令发出控制部111输出。指令解码器105-3检测使用算术逻辑运算部107的指令,将对应于检测结果的发出控制指令检测信号154-3向指令发出控制部111输出。
在图4A所示的指令的组合中,构造风险检测部112由于2个指令以 上的发出控制指令检测信号没有被肯定,所以不肯定依次发出指示信号162。此外,指令无效化控制部113不肯定指令无效化信号155-1~155-3以及指令缓冲器更新停止信号156。
随之,控制信号选择部106同时输出与图4A所示的全部3个指令对应的指令执行控制信号157。并且,如图5A所示,指令执行部104同时执行这些指令。
另一方面,在图4B所示的指令的组合(add,add,ld)中,由于能够执行add指令的算术逻辑运算部107只存在1个,所以指令执行部104不能同时执行。在该指令的组合中,由于构造风险检测部112不能肯定两个指令以上的发出控制指令检测信号,所以肯定依次发出指示信号162。此外,指令无效化控制部113接受依次发出指示信号162,依次肯定指令无效化信号155-1~155-3,以使得每次1个指令成为有效。
随之,控制信号选择部106将对应于每次1个指令的指令执行控制信号157向指令执行部104输出。并且,如图5B所示,指令执行部104每次执行一个指令。此时,指令发出控制部111停止指令缓冲器组102的更新直到全部指令被发出,所以肯定指令缓冲器更新停止信号156直到第2个机器周期。
这样,处理器101即使在指令缓冲器组102中配置有发生构造风险的指令的组合,也能够在不知道指令执行部104的动作状态的情况下,仅通过指令缓冲器组102的内容的信息避免构造风险来执行指令。
另外,在将指令组的指令依次供给的情况下,依次每次供给一个指令,但在有多个运算器的情况下,例如在有两个算术逻辑运算部的情况下,也可以不只是依次每次供给1个指令,而是如包括两个使用算术逻辑运算部的指令的组那样、对将能够分别独立地同时处理的多个指令集合为一个的指令组依次供给。
(实施方式2)
接着,参照附图对有关本发明的实施方式2进行说明。
在实施方式1的处理器101中,有时在来自指令解码器105-1~105-3的解码结果输出的时间中没有富余、如果设置指令发出控制部111,则动作速度会降低而不能满足用户要求的动作速度规格。相对于此,如图6所示,在实施方式2的处理器201中,其特征在于,代替指令发出控制部111而具备指令发出控制部211,消除了这样的问题。
即,实施方式2的处理器的特征在于,根据从指令解释部输入的指令组的解释结果,作为原因而检测在指令组中包含1个以上有可能发生构造风险的指令的情况。
遵循以上的点,对实施方式2的处理器进行说明。另外,对于与实施方式1的处理器101相同的结构要素赋予相同的参考表及而省略说明。
图7是表示本实施方式的指令发出控制部211的结构的框图。如图7所示,构造风险监测部212从指令解码器105-1~105-3接受发出控制指令检测信号154-1~154-3,通过逻辑和电路214判断有无1个指令以上的发出控制对象的指令,将对应于判断结果的依次发出指示信号162向指令无效化控制部113输出。
对以上那样构成的处理器,以下说明其动作。
图8A~图8C是用来进行动作说明的程序例,图9A~图9C是其动作说明图。这里,在图8A~图8C、图9A~图9C中,rnd表示舍入运算指令,能够在算术逻辑运算部107中执行,“一”表示没有配置有指令的情况。这里,被供给到实施方式2的处理器201中的程序有可能仅发生舍入运算处理对算术逻辑运算部107的构造风险。即,有可能多个舍入运算指令配置在指令缓冲器组102中、或者舍入运算指令与算术逻辑运算指令的组合同时配置在指令缓冲器组102中,将全指令配置为使得除此以外不会发生构造风险。
在图8A所示的指令组合(add,mac,ld)中,由于执行这些指令的运算部的数量足够,所以能够同时执行3个指令。指令解码器105-1检测使用算术逻辑运算部107的指令,将对应于检测结果的发出控制指令检测信号154-1向指令发出控制部211输出。同样,指令解码器105-2检 测使用算术逻辑运算部107的指令,将对应于检测结果的发出控制指令检测信号154-2向指令发出控制部211输出。指令解码器105-3检测使用算术逻辑运算部107的指令,将对应于检测结果的发出控制指令检测信号154-3向指令发出控制部211输出。
在图8A所示的指令的组合中,构造风险监测部212由于不能肯定1个指令以上的发出控制指令检测信号,所以不肯定依次发出指示信号162。此外,指令无效化控制部113不肯定指令无效化信号155-1~155-3以及指令缓冲器更新停止信号156。
随之,控制信号选择部106将对应于图8A所示的全部3个指令的指令执行控制信号157同时向指令执行部104输出。接着,如图9A所示,指令执行部104对该指令的组合同时执行各个指令。
在图8B所示的指令的组合(rnd,add,ld)中,由于能够执行rnd指令或add指令的算术逻辑运算部107在指令执行部104中只存在1个,所以指令执行部104不能同时执行。在该指令的组合中,构造风险检测部212由于1个指令以上的发出控制指令检测信号被肯定,所以肯定依次发出指示信号162。此外,指令无效化控制部113接受依次发出指示信号162,依次肯定指令无效化信号155-1~155-3,以使得每次1个指令变为有效。
随之,控制信号选择部106将对应于每次1个指令的指令执行控制信号157向指令执行部104输出。接着,如图9B所示,指令执行部104每次执行1个指令。此时,指令发出控制部211停止指令缓冲器组102的更新直到全部指令被发出,所以肯定指令缓冲器更新停止信号156直到第2机器周期。
在图8C所示的指令的组合(rnd,ld,-)中,使用算术逻辑运算部107的指令只是rnd指令1个指令,不发生构造风险。但是,构造风险检测部212由于1个指令以上的发出控制指令检测信号被肯定,所以肯定依次发出指示信号162。此外,指令无效化控制部113接受依次发出指示信号162,依次肯定指令无效化信号155-1~155-3,以使得每次1个指令 变为有效。
随之,控制信号选择部106将对应于每次1个指令的指令执行控制信号157向指令执行部104输出。接着,如图9C所示,指令执行部104每次执行1个指令。此时,指令发出控制部211停止指令缓冲器组102的更新直到全部指令被发出,所以肯定指令缓冲器更新停止信号156直到第2机器周期。
另外,如图8C所示,在所有指令缓冲器中都没有配置指令的情况下,在有关本发明的实施方式1及实施方式2中,与没有配置的指令数相等的机器周期数的期间作为什么都不发出的冗余的期间存在。
这样,处理器201即使在指令缓冲器组102中配置有发生构造风险的指令的组合,也不用知道指令执行部104的动作状态,并且通过构造风险检测部212仅由1个逻辑和电路构成,能够仅通过指令缓冲器组102的内容的信息避免构造风险来执行指令。
(实施方式3)
接着,参照附图对有关本发明的实施方式3进行说明。
在实施方式1的处理器101中,在所有指令缓冲器中没有配置有指令的情况下存在冗长的期间。对此,如图10所示,实施方式3的处理器301中,其特征在于,代替指令发出控制部111而具备指令发出控制部311,能够消除这样的问题。
即,实施方式3的处理器的特征在于,在依次供给指令组的指令的情况下,利用以保持在指令缓冲器中的指令数为最大值的计数器,从指令组之中将对应于每个计数器的值的指令依次每次供给1个指令。
遵循以上的点对实施方式3的处理器301进行说明。另外,对于与实施方式1的处理器101相同的结构要素赋予相同的标号而省略说明。
图11是表示本实施方式的指令发出控制部311的结构的框图。如图11所示,指令无效化控制部313接受依次发出指示信号162及指令有效信息152-1~152-3,输出指令无效化信号355-1~355-3以及指令缓冲器 更新停止信号356。
对以上那样构成的处理器,以下说明其动作。
图12A、图12B是用来进行动作说明的程序例,图13A、图13B是其动作说明图。这里,被供给到实施方式3的处理器301中的程序与有关本发明的实施方式1同样,假设仅有可能发生对算术逻辑运算部107的构造风险。即,将全指令配置为,使得有可能配置有多个算术逻辑运算指令,除此以外不会发生构造风险。
在图12A所示的指令组合(add,add,ld)中,由于能够执行add指令的算术逻辑运算部107只存在1个,所以不能同时执行两个add指令。在该指令的组合中,由于构造风险检测部112不能肯定两个指令以上的发出控制指令检测信号,所以肯定依次发出指示信号162。此外,指令无效化控制部313接受依次发行指示信号162及指令有效信息152-2、152-3。此时,指令有效信息152-3也被肯定。由此,检测到存在3个指令,依次肯定指令无效化信号355-1~355-3,以每次使1个指令有效。
随之,控制信号选择部106将对应于每次1个指令的指令执行控制信号157向指令执行部104输出。接着,如图13A所示,指令执行部104每次执行1个指令。此时,指令发出控制部31停止指令缓冲器组102的更新直到全部指令被发出,所以肯定指令缓冲器更新停止信号356直到第2机器周期。
另一方面,在图12B所示的指令的组合(add,add,-)中,构造风险检测部112由于不能肯定两个指令以上的发出控制指令检测信号,所以与图12A所示的指令的组合同样肯定依次发出指示信号162。
但是,指令无效化控制部313接受依次发出指示信号162及指令有效信息152-2、152-3。此时,指令有效信息152-2被肯定,指令有效信息152-3没有被肯定。由此,检测到存在两个指令,依次肯定指令无效化信号355-1~355-3以使每次1个指令变为有效。
随之,控制信号选择部106将对应于每次1个指令的指令执行控制信号157向指令执行部104输出。接着,如图13B所示,指令执行部104 每次执行1个指令。此时,指令发出控制部311仅肯定第1机器周期的指令缓冲器更新停止信号356,否定第2机器周期更新停止信号。由此,在接着的机器周期中将新的指令保存到指令缓冲器组102中。
这样,处理器301即使在指令缓冲器组102中配置有发生构造风险的指令的组合,也不用知道指令执行部104的动作状态,并且仅通过指令缓冲器组102的内容避免构造风险,能够仅在配置在指令缓冲器中的指令数量的机器周期数量的期间依次发出指令。
(实施方式4)
接着,参照附图对有关本发明的实施方式4进行说明。
在多循环指令解释管理部从来自指令解码器的多个指令选择能够解释的1个指令来进行多循环指令的解释管理的情况下,即使在实施方式1的处理器101中单纯地包含有多循环指令解释管理部,如果配置有多个多循环指令,则由于在多循环指令解释管理部中的指令选择时刻会发生多个多循环指令的竞争,所以不能不进行解释管理而使用。对此,如图14所示,在实施方式4的处理器401中,其特征在于,代替指令缓冲器组102、指令解释部103、指令执行部104、指令发出控制部111而具备指令缓冲器组402、指令解释部403、指令执行部404、指令发出控制部411、多循环指令解释管理部412等,能够消除这样的问题。
即,实施方式4的处理器基于简单解释从指令缓冲器组输入的指令组的结果,以在指令组中包含有规定数量的多循环指令为原因来检测。
这里,在简单解释时,至少确定是否是多循环指令。
所谓的“多循环指令”是指对1个指令执行多个运算的指令。另外,将此时执行的运算也称作微操作。
遵循以上的点,对实施方式4的处理器401进行说明。另外,对于与实施方式1的处理器101相同的结构要素赋予相同的标号而省略说明。
图14是表示本实施方式的处理器的结构的框图。如图14所示,处理器401具备指令缓冲器组402、指令解释部403、指令执行部404、指 令发出控制部411、多循环指令解释管理部412等。
指令缓冲器组402具备多个指令缓冲器,保持指令组。这里,假设由指令缓冲器402-1~402-3构成。指令缓冲器402-1~402-3保持有指令代码451-1~451-3和指令有效信息452-1~452-3。
指令解释部403由指令解码器405-1~405-3、控制信号选择部406构成。
指令解码器405-1~405-3从指令缓冲器402-1~402-3接受指令代码451-1~451-3,从指令发出控制部411接受指令有效信息462-1~462-3。进而,将该解码结果中的多循环指令的检测结果作为多循环指令信号463-1~463-3向多循环指令解释管理部412输出,从多循环指令解释管理部412接受微操作指示信号464-1~464-3。并且,将来自指令缓冲器402-1~402-3的信息和对应于微操作指示信号464-1~464-3的指令执行控制信号457向指令执行部404输出。
控制信号选择部406从指令解码器405-1~405-3接受指令执行控制信号453-1~453-3,将对应于有效的指令的指令执行控制信号457向指令执行部404输出。
指令执行部404由算术逻辑运算部407、积和运算部408、存储器访问控制部409、寄存器文件410、和除法运算部420构成,进行指令的执行及执行结果的保存。
多循环指令解释管理部412从指令解码器405-1~405-3接受多循环指令信号463-1~463-3,将微操作指示信号464-1~464-3向指令解码器405-1~405-3输出,向指令发出控制部411输出计数器更新停止信号466。
图15是表示本实施方式的指令发出控制部411的结构的框图。如图15所示,指令发出控制部411具备多循环指令检测部413、指令无效化控制部414、逻辑和电路415、逻辑积电路416-1~416-3等。
并且,逻辑积电路416-1从指令缓冲器402-1接受指令有效信息452-1,从指令无效化控制部414接受指令无效化信号468-1。并且,将指令有效信息462-1向指令解码器405-1输出,该指令有效信息462-1对 应于使指令无效化信号468-1反转后的信号与指令有效信息452-1的逻辑积。同样,逻辑积电路416-2将指令有效信息462-2向指令解码器405-2输出,该指令有效信息462-2对应于使从指令无效化控制部414接受到的指令无效化信号468-2反转后的信号与从指令缓冲器402-2接受到的指令有效信息452-2的逻辑积。逻辑积电路416-3将指令有效信息462-3向指令解码器405-3输出,该指令有效信息462-3对应于使从指令无效化控制部414接受到的指令无效化信号468-3反转后的信号与从指令缓冲器402-3接受到的指令有效信息452-3的逻辑积。
逻辑和电路415从多循环指令解释管理部412接受计数器更新停止信号466,从指令无效化控制部414接受指令缓冲器更新停止信号469。并且,将指令缓冲器更新停止信号456向指令缓冲器组402输出,该指令缓冲器更新停止信号456对应于计数器更新停止信号466与指令缓冲器更新停止信号469的逻辑和。
多循环指令检测部413从指令缓冲器402-1接受指令代码451-1及指令有效信息452-1。并且,从指令缓冲器402-2接受指令代码451-2及指令有效信息452-2。从指令缓冲器402-3接受指令代码451-3及指令有效信息452-3。进而,通过多循环指令检测解码器421-1~421-3检测可配置多个的多循环指令。通过逻辑积电路422-1~422-3检测有无两个指令的多循环指令。通过逻辑和电路423判断可配置两个以上的多个多循环指令的有无。并且,将对应于判断结果的依次发出指示信号465向指令无效化控制部414输出。
指令无效化控制部414从多循环指令检测部413接受依次发出指示信号465,从多循环指令解释管理部412接受计数器更新停止信号466,启动初始值0的2-bit累加计数器417。并且,2-bit累加计数器417在依次发出指示信号465被肯定的期间、且计数器更新停止信号466被否定的机器周期,更新计数器值。
比较器418-1~418-3从2-bit累加计数器417接受计数器值467。进而,比较器418-1将值“0”与计数器值467比较,将比较结果470-1向 逻辑积电路419-1输出。同样,比较器418-2将值“1”与计数器值467比较,将比较结果470-2向逻辑积电路419-2输出。比较器418-3将值“2”与计数器值467比较,将比较结果470-3向逻辑积电路419-3输出。
逻辑积电路419-1~419-3从多循环指令检测部413接受依次发出指示信号465。进而,逻辑积电路419-1从比较器418-1接受比较结果470-1,将指令无效化信号468-1向逻辑积电路416-1输出,该指令无效化信号468-1对应于依次发出指示信号465与比较结果470-1的逻辑积。同样,逻辑积电路419-2从比较器418-2接受比较结果470-2,将指令无效化信号468-2向逻辑积电路416-2输出,该指令无效化信号468-2对应于依次发出指示信号465与比较结果470-2的逻辑积。逻辑积电路419-3从比较器418-3接受比较结果470-3,将指令无效化信号468-3向逻辑积电路416-3输出,该指令无效化信号468-3对应于依次发出指示信号465与比较结果470-3的逻辑积。
对于以上那样构成的处理器,以下说明其动作。
图16A、图16B是用来进行动作说明的指令程序例,图17A、图17B是其动作说明图。这里,在图16A、图16B、图17A、图17B中,div表示除法指令,是由多循环指令解释管理部412管理的n循环的多循环指令,能够由除法运算部420执行。这里,在实施方式4的处理器401中使用的程序中,多循环指令中的仅除法运算有可能在指令缓冲器组402中配置有多个,对于除此以外的多循环指令配置为使其不会在指令缓冲器组402中配置有多个。
在图16A所示的指令的组合(add,div,ld)中,多循环指令检测部413由于作为多循环指令的div指令是一个,所以否定依次发出指示信号465。由此,由于指令有效信息462-1~462-3同时被肯定,所以指令代码451-1~451-3被指令解码器405-1~405-3同时解码。
此时,多循环指令解释管理部412接受1个多循环指令div的多循环指令信号464-2而进行解释管理。并且,在多循环指令的解释管理中,并且在不是多循环指令的最终微操作的期间,多循环指令解释管理部412 肯定计数器更新停止信号466。指令发出控制部411由于指令缓冲器更新停止信号469被否定,所以将计数器更新停止信号466原样作为指令缓冲器更新停止信号456输出。
随之,控制信号选择部406对于这些指令的组合,将对应于各个指令的指令控制信号457同时向指令执行部404输出。并且,如图17A所示,指令执行部404对这些指令的组合同时执行各个指令。
另一方面,在图16B所示的指令的组合(add,div,div)中,多循环指令检测部413由于作为多循环指令的div指令是两个,所以肯定依次发出指示信号465。由此,当计数器值467为“0”时,指令有效信息462-1~462-3中的仅对应于add指令的指令有效信息462-1被肯定,所以仅将指令代码451-1用指令解码器405-1进行解码。
进而,多循环指令解释管理部412由于不存在有效的多循环指令,所以将计数器更新停止信号466否定。因此,在接着的机器周期将计数器值467更新为“1”。由此,当计数器值467为“1”时,由于指令有效信息462-1~462-3中的仅对应于第1个div指令的指令有效信息462-2被肯定,所以仅将指令代码451-2用指令解码器405-2进行解码。
进而,多循环指令解释管理部412由于存在有效的多循环指令div,所以将计数器更新停止信号466肯定。因此,停止2-bit累加计数器417的更新,直到第1个div的解释管理结束。在成为第1个div的最终微操作时,多循环指令解释管理部412将计数器更新停止信号466否定,所以在接着的机器周期将计数器值467更新为“2”。由此,由于对应于第2个div指令的指令有效信息462-3被肯定,所以只有指令代码451-3被指令解码器405-3解码。
接着,多循环指令解释管理部412由于存在有效的多循环指令div,所以将计数器更新停止信号466肯定。因此,停止2-bit累加计数器417的更新,直到第2个div的解释管理结束。在成为第2个div的最终微操作时,多循环指令解释管理部412由于将计数器更新停止信号466否定,所以指令缓冲器更新停止信号456也被否定,在下一机器周期中更新指 令缓冲器组402。
随之,控制信号选择部401将对应于每次1个指令的指令执行控制信号457向指令执行部404输出。接着,如图17B所示,指令执行部404每次执行1个指令。
这样,处理器401即使在指令缓冲器组402中配置有多个多循环指令,也不用知道指令执行部404的动作状态,通过仅根据指令缓冲器组402的内容和来自多循环指令解释管理部412的计数器更新停止信号466依次发出指令,能够执行指令。
(实施方式5)
接着,参照附图对有关本发明的实施方式5进行说明。
在实施方式4的处理器401中,有时在指令有效信息462-1~462-3的输出的时间中没有富余,如果设置指令发出控制部411则动作速度降低,不能满足用户要求的动作速度规格。相对于此,如图18所示,在实施方式5的处理器501中,代替指令发出控制部411而具备指令发出控制部511,能够解决这样的问题。
即,实施方式5的处理器的特征在于,基于将从指令缓冲器输入的指令组简单解释的结果,作为原因而检测在指令组之中包含1个以上多循环指令的情况。
这里,在简单解释时,假设至少确定是否是多循环指令。
遵循以上的点,对实施方式5的处理器501进行说明。另外,对于与实施方式4的处理器401相同的结构要素赋予相同的标号而省略说明。
图19是表示本实施方式的指令发出控制部511的结构的框图。如图19所示,多循环指令检测部513从指令缓冲器402-1~402-3接受指令代码451-1~451-3以及指令有效信息452-1~452-3,通过多循环指令检测解码器521-1~521-3检测可配置多个的多循环指令。进而,通过逻辑和电路522判断能够配置1个指令以上的多个多循环指令的有无,将其判断结果作为依次发出指示信号465向指令无效化控制部414输出。
对于以上那样构成的处理器,以下说明其动作。
图20A~图20C是用来进行动作说明的指令程序例,图21A~图21C是其动作说明图。这里,在实施方式5的处理器501中使用的程序中,假设配置为,使多循环指令中的仅除法运算有可能在指令缓冲器组402中配置有多个,除此以外的多循环指令不会在指令缓冲器组402中配置有多个。
在图20A所示的指令的组合(add,mac,ld)中,多循环指令检测部513由于不能检测到可配置多个的多循环指令,所以将依次发出指示信号465否定。
随之,控制信号选择部406对这些指令的组合,将对应于各个指令的指令执行控制信号457同时向指令执行部404输出。接着,如图21A所示,指令执行部404对这些指令的组合同时执行各自的指令。
另一方面,在图20B所示的指令的组合(add,div,div)中,多循环指令检测部513由于可配置多个的多循环指令是两个,所以将依次发出指示信号465肯定。
随之,控制信号选择部406将对应于每次1个指令的指令执行控制信号457向指令执行部404输出。接着,如图21B所示,指令执行部404每次执行1个指令。
在图20C所示的指令的组合(add,div,ld)中,在多循环指令检测部513中,可配置多个的多循环指令只是1个,即使对指令解释部405供给图20C所示的指令的组合也能够通过多循环指令解释管理部412进行控制。但是,多循环指令检测部513检测出可配置多个的1个指令以上的多循环指令,将依次发出指示信号465予以肯定。
随之,控制信号选择部406将对应于每次1个指令的指令执行控制信号457向指令执行部404输出。接着,如图21C所示,指令执行部404每次执行1个指令。
这样,处理器501即使在指令缓冲器402中配置有多个多循环指令,也不用知道指令执行部404的动作状态、且多循环指令检测部513通过 多循环指令检测解码器521-1~521-3和1个逻辑和电路522的结构,能够在指令缓冲器组402的内容中避免构造风险来执行指令。
另外,在所有指令缓冲器中没有配置有指令的情况下,在本发明的实施方式4及实施方式5中与没有配置的指令数相等的机器周期数量的期间作为什么都不能发出的冗余期间存在,但相对于此,通过将指令有效信息452-2~452-3向指令无效化控制部414追加、进行与本发明的实施方式3中的指令发出控制部3 13同样的控制,能够将冗余的期间去除。
(实施方式6)
接着,参照附图对本发明的实施方式6进行说明。
在实施方式4的处理器401中,在多循环指令检测部413中,如果依次发出指示信号465被肯定,则不仅是多循环指令,能够与多循环指令同时执行的单循环指令也被每次1个指令地依次供给。相对于此,如图22所示,在实施方式6的处理器601中,其特征在于,代替指令发出控制部411而具备指令发出控制部611,能够消除这样的问题。
遵循以上的点,对实施方式6的处理器601进行说明。另外,对于与实施方式4的处理器401相同的结构要素赋予相同的标号而省略说明。
图23是表示本实施方式的指令发出控制部611的结构的框图。如图23所示,指令发出控制部611由多循环指令检测部613、指令无效化控制部614构成。
多循环指令检测部613从指令缓冲器402-1~402-3接受指令代码451-1~451-3及指令有效信息452-1~452-3,通过多循环指令检测解码器421-1~421-3检测可配置多个的多循环指令。进而,将多循环指令检测信号472-1~472-3向指令无效化控制部614输出。此外,通过以多循环指令检测信号472-1~472-3为输入的逻辑积电路422-1~422-3检测两个指令的多循环指令的有无,通过逻辑和电路423判断可配置多个两指令以上的多循环指令的有无。并且将其判断结果作为依次发出指示信号465向指令无效化控制部614输出。
指令无效化控制部614从多循环指令检测部613接受依次发出指示信号465以及多循环指令检测信号472-1~472-3,从多循环指令解释管理部412接受计数器更新停止信号466。进而,启动初始值“0”的2-bit累加计数器417。并且,2-bit累加计数器417在依次发出指示信号465被肯定的期间、并且计数器更新停止信号466被否定的机器周期,更新计数器值。
比较器418-1~418-3从2-bit累加计数器417接受计数器值467,将各个值“0”、“1”、“2”与计数器值467比较,将比较结果470-1~470-3向逻辑积电路419-1~419-3输出。
逻辑积电路419-1~419-3从比较器418-1~418-3接受比较结果470-1~470-3,从多循环指令检测部613接受依次发出指示信号465,取比较结果470-1~470-3与依次发出指示信号465的逻辑积,将其结果作为子指令组无效化信息674-1~674-3向无效化指令选择部624供给。
无效化指令选择部624基于图24所示的真值表,按照多循环指令检测信号472-1~472-3从子指令组无效化信息674-1~674-3中选择1个,作为指令无效化信息468-1~468-3输出。
逻辑积电路625~627及逻辑和电路628构成为,在多循环指令是两个指令的情况下、当计数器值467为“0”时,在多循环指令是3个指令的情况下、当计数器值467为“0”或“1”时,将缓冲器更新信号456予以肯定。
对于以上那样构成的处理器,以下说明其动作。
图25A、图25B是用来进行动作说明的指令程序例,图26A、图26B是其动作说明图。这里,在实施方式6的处理器601中使用的程序假设配置为,使多循环指令中的仅除法运算有可能在指令缓冲器组402中配置有多个,除此以外的多循环指令不会在指令缓冲器组402中配置有多个。
在图25A所示的指令的组合(add,mac,ld)中,多循环指令检测部613由于没有检测到可配置多个的多循环指令,所以将依次发出指示 信号465予以否定。由此,指令有效信息462-1~462-3同时被肯定,所以指令代码451-1~451-3被指令解码器405-1~405-3同时解码。
随之,控制信号选择部406对于这些指令的组合,将对应于各个指令的指令控制信号457同时向指令执行部404输出。并且,如图26A所示,指令执行部404对这些指令的组合同时执行各个指令。
在图25B所示的指令的组合(add,div,div)中,多循环指令检测部613检测出可配置多个的多循环指令存在两个指令以上,肯定依次发出指示信号465。此时,多循环指令检测部613将多循环指令检测信号472-2及472-3也予以肯定。
此外,指令无效化控制部614由于多循环指令是两个指令,所以仅在计数器值467是“0”时肯定缓冲器更新停止信号456。
无效化指令选择部624由于多循环指令检测信号472-1~472-3分别是“0”、“1”、“1”,所以如图24所示,对于指令无效化信息468-1~468-3,分别选择子指令组无效化信息674-1、674-1、674-2并输出。
由此,如图26B所示,首先add指令与第1div指令被向指令解释部403供给,接着第2div指令被向指令解释部403供给。另外,作为与第1div信号同时被供给的单循环指令的add指令在与第1div指令同时被向指令解释部403供给后,由多循环指令解释管理部412与div指令的最终微操作同时发出。
这样,处理器601即使在指令缓冲器组402中配置有多个多循环指令的情况下,也不用知道指令执行部404的动作状态,通过仅根据指令缓冲器组402的内容的信息避免构造风险、将可同时执行的最大数量的指令同时供给,能够以可执行的最小的循环数执行指令。
另外,在本发明的实施方式3的处理器中,也将发出控制指令检测信号154-1~154-3作为指令无效化控制部313的输入追加,通过将指令无效化控制部313做成与指令无效化控制部614同样的结构,通过将可同时执行的最大数量的指令同时供给,能够以可执行的最小循环数执行指令。
另外,如实施方式6的处理器那样,在实施方式1的处理器中,在依次供给指令组的指令的情况下,也可以将指令组分割为有可能发生构造风险的指令为1个指令以下的子指令组,利用以有可能发生构造风险的指令数为最大值的计数器,依次供给对应于每个计数器值的子指令组。
(其他)
另外,有关本发明的处理器也可以通过全定制LSI(Large ScaleIntegration)实现。此外,也可以通过ASIC(Application Specific IntegratedCircuit)等那样的半定制LSI实现。此外,也可以通过FPGA(FieldProgrammable Gate Array)、CPLD(Complex Programmable Logic Device)等那样的可编程逻辑设备实现。此外,也可以作为可动态改写电路结构的动态可重构设备来实现。
进而,将构成本发明的处理器的1个以上的功能形成在这些LSI中的设计数据也可以做成通过VHDL(Very high speed integrated circuitHardware Description Language)、Verilog-HDL、SystemC等那样的硬件描述语言描述的程序(以下称作HDL程序)。此外,也可以做成将HDL程序逻辑合成而得到的门级的网络列表。此外,也可以做成在门级的网络列表中附加了配置信息、过程条件等的微单元信息。此外,也可以做成尺寸、定时等被规定的掩码数据。
进而,设计数据也可以记录在光学记录介质(例如CD-ROM等)、磁记录介质(例如硬盘等)、光磁记录介质(例如MO等)、半导体存储器(例如存储卡等)等那样的计算机可读取的记录介质中,以便能够被计算机系统、内嵌系统等的硬件系统读出。
或者,设计数据也可以保持在传送路径上的硬件系统中,以便能够经由网络等的传送路径由其他硬件系统得到。进而,从硬件系统经由传送路径被其他硬件系统取得的设计数据也可以经由下载线缆被下载到可编程逻辑设备中。
或者,被逻辑合成、配置、布线的设计数据也可以记录在串行ROM 中,以便在通电时能够被传送给FPGA。并且,记录在串行ROM中的设计数据也可以在通电时直接被下载到FPGA中。
工业实用性
本发明可以作为如下的处理器等来使用,该处理器在如伴随着省面积而减少运算器的数量的情况、或者随着高速化而将单循环指令变更为多循环指令的情况等那样变更了构架的情况下,也能够不改变而利用最适于变更前的构架的目标码。

Claims (11)

1.一种处理器,能够将多个指令并列解释并执行,其特征在于,具备:
指令缓冲器,保持可并列执行的指令组;
指令解释单元,可同时解释上述指令组的一部分或全部;
指令发出控制单元,基于执行包含在上述指令组中的规定的指令的运算器的个数,检测在上述指令组中是否存在阻碍同时执行上述指令组的原因,在存在上述原因的情况下,依次供给上述指令组的指令,在不存在上述原因的情况下,控制上述指令缓冲器向上述指令解释单元供给上述指令组,以同时供给上述指令组的所有指令。
2.如权利要求1所述的处理器,其特征在于,
上述指令发出控制单元基于从上述指令解释单元输入的上述指令组的解释结果,检测出在上述指令组之中包含有发生构造风险的指令的组合的情况,作为阻碍同时执行上述指令组的原因。
3.如权利要求1所述的处理器,其特征在于,
上述指令发出控制单元基于从上述指令解释单元输入的上述指令组的解释结果,检测出在上述指令组之中包含有1个以上有可能发生构造风险的指令的情况,作为阻碍同时执行上述指令组的原因。
4.如权利要求1所述的处理器,其特征在于,
上述指令发出控制单元基于简单解释从上述指令缓冲器输入的上述指令组的结果,检测出在上述指令组之中包含有规定数量的多循环指令的情况,作为阻碍同时执行上述指令组的原因。
5.如权利要求1所述的处理器,其特征在于,
上述指令发出控制单元基于简单解释从上述指令缓冲器输入的上述指令组的结果,检测出在上述指令组之中包含有1个以上多循环指令的情况,作为阻碍同时执行上述指令组的原因。
6.如权利要求1所述的处理器,其特征在于,
上述指令发出控制单元在依次供给上述指令组的指令的情况下,利用以能够由上述指令解释单元同时解释的最大指令数为最大值的计数器,从上述指令组之中依次每次供给1个对应于上述计数器的各个值的指令。
7.如权利要求1所述的处理器,其特征在于,
上述指令发出控制单元在依次供给上述指令组的指令的情况下,利用以保持在上述指令缓冲器中的指令数为最大值的计数器,从上述指令组之中依次每次供给1个对应于上述计数器的各个值的指令。
8.如权利要求2所述的处理器,其特征在于,
上述指令发出控制单元在依次供给上述指令组的指令的情况下,将上述指令组分割为有可能发生上述构造风险的指令为1个指令以下的子指令组,利用以有可能发生上述构造风险的指令数为最大值的计数器,依次供给对应于上述计数器的各个值的子指令组。
9.如权利要求3所述的处理器,其特征在于,
上述指令发出控制单元在依次供给上述指令组的指令的情况下,将上述指令组分割为有可能发生上述构造风险的指令为1个指令以下的子指令组,利用以有可能发生上述构造风险的指令数为最大值的计数器,依次供给对应于上述计数器的各个值的子指令组。
10.如权利要求4所述的处理器,其特征在于,
上述指令发出控制单元在依次供给上述指令组的指令的情况下,将上述指令组分割为上述多循环指令为1个指令以下的子指令组,利用以上述多循环指令数为最大值的计数器,依次供给对应于上述计数器的各个值的子指令组。
11.如权利要求5所述的处理器,其特征在于,
上述指令发出控制单元在依次供给上述指令组的指令的情况下,将上述指令组分割为上述多循环指令为1个指令以下的子指令组,利用以上述多循环指令数为最大值的计数器,依次供给对应于上述计数器的各个值的子指令组。
CN2006800178135A 2005-06-15 2006-03-09 处理器 Expired - Fee Related CN101180607B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP174860/2005 2005-06-15
JP2005174860 2005-06-15
PCT/JP2006/304550 WO2006134693A1 (ja) 2005-06-15 2006-03-09 プロセッサ

Publications (2)

Publication Number Publication Date
CN101180607A CN101180607A (zh) 2008-05-14
CN101180607B true CN101180607B (zh) 2011-08-03

Family

ID=37532062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800178135A Expired - Fee Related CN101180607B (zh) 2005-06-15 2006-03-09 处理器

Country Status (5)

Country Link
US (1) US7953959B2 (zh)
JP (1) JPWO2006134693A1 (zh)
CN (1) CN101180607B (zh)
TW (1) TW200703106A (zh)
WO (1) WO2006134693A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5093237B2 (ja) * 2007-06-20 2012-12-12 富士通株式会社 命令処理装置
JP5436033B2 (ja) * 2009-05-08 2014-03-05 パナソニック株式会社 プロセッサ
WO2014085267A1 (en) * 2012-11-30 2014-06-05 Intel Corporation Apparatus, method and system for providing termination for multiple chips of an integrated circuit package
US20180004512A1 (en) * 2016-06-30 2018-01-04 Intel Corporation System and Method for Out-of-Order Clustered Decoding
CN106625674B (zh) * 2016-12-29 2019-09-27 北京光年无限科技有限公司 一种用于机器人的指令处理方法及机器人

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3259340B2 (ja) * 1992-07-22 2002-02-25 ソニー株式会社 信号処理装置
US6618802B1 (en) * 1999-09-07 2003-09-09 Hewlett-Packard Company, L.P. Superscalar processing system and method for selectively stalling instructions within an issue group
US6651164B1 (en) * 1999-10-14 2003-11-18 Hewlett-Packard Development Company, L.P. System and method for detecting an erroneous data hazard between instructions of an instruction group and resulting from a compiler grouping error

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5744173B2 (zh) * 1975-02-27 1982-09-20
JPH03259340A (ja) * 1990-03-09 1991-11-19 Fuji Xerox Co Ltd データ処理装置
JP2883465B2 (ja) * 1991-04-05 1999-04-19 株式会社東芝 電子計算機
JPH06332701A (ja) * 1993-05-26 1994-12-02 Hitachi Ltd 情報処理装置
JP3180175B2 (ja) * 1995-02-13 2001-06-25 株式会社日立製作所 命令レベルの並列処理制御方法およびプロセッサ
JPH08305567A (ja) * 1995-05-10 1996-11-22 Hitachi Ltd 演算命令の並列処理方法および並列処理装置
JPH08328859A (ja) * 1995-05-29 1996-12-13 Toshiba Corp Vliwコンピュータに適用される仮想並列演算装置
US5822560A (en) * 1996-05-23 1998-10-13 Advanced Micro Devices, Inc. Apparatus for efficient instruction execution via variable issue and variable control vectors per issue
JPH1049348A (ja) * 1996-08-05 1998-02-20 Toshiba Corp 整数乗算装置
FR2755897A1 (fr) 1996-11-15 1998-05-22 Michelin & Cie Procede et dispositif de fabrication de preforme de jantes
US5890009A (en) * 1996-12-12 1999-03-30 International Business Machines Corporation VLIW architecture and method for expanding a parcel
US6035389A (en) * 1998-08-11 2000-03-07 Intel Corporation Scheduling instructions with different latencies
US6338133B1 (en) * 1999-03-12 2002-01-08 International Business Machines Corporation Measured, allocation of speculative branch instructions to processor execution units
EP1460519B1 (en) * 2003-03-18 2014-05-07 Panasonic Corporation Processor, driving method thereof, and information processing device
US6981128B2 (en) * 2003-04-24 2005-12-27 International Business Machines Corporation Atomic quad word storage in a simultaneous multithreaded system
JP2006039791A (ja) * 2004-07-26 2006-02-09 Matsushita Electric Ind Co Ltd 伝送履歴依存処理装置
US7237094B2 (en) * 2004-10-14 2007-06-26 International Business Machines Corporation Instruction group formation and mechanism for SMT dispatch
WO2006043345A1 (ja) * 2004-10-19 2006-04-27 Matsushita Electric Industrial Co., Ltd. プロセッサ
US7254697B2 (en) * 2005-02-11 2007-08-07 International Business Machines Corporation Method and apparatus for dynamic modification of microprocessor instruction group at dispatch
US7266674B2 (en) * 2005-02-24 2007-09-04 Microsoft Corporation Programmable delayed dispatch in a multi-threaded pipeline

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3259340B2 (ja) * 1992-07-22 2002-02-25 ソニー株式会社 信号処理装置
US6618802B1 (en) * 1999-09-07 2003-09-09 Hewlett-Packard Company, L.P. Superscalar processing system and method for selectively stalling instructions within an issue group
US6651164B1 (en) * 1999-10-14 2003-11-18 Hewlett-Packard Development Company, L.P. System and method for detecting an erroneous data hazard between instructions of an instruction group and resulting from a compiler grouping error

Also Published As

Publication number Publication date
TW200703106A (en) 2007-01-16
US7953959B2 (en) 2011-05-31
CN101180607A (zh) 2008-05-14
US20090228687A1 (en) 2009-09-10
WO2006134693A1 (ja) 2006-12-21
JPWO2006134693A1 (ja) 2009-01-08

Similar Documents

Publication Publication Date Title
CN101180607B (zh) 处理器
US8645673B2 (en) Multicore processor and method of use that adapts core functions based on workload execution
CN101464721B (zh) 控制流水线型处理器中的功率消耗的方法和系统
CN101427213B (zh) 用于实现多态分支预测器的方法和装置
CN101523344B (zh) 用于解析同时所预测分支指令的方法及系统
US9055070B2 (en) Hardware computing system with extended calculation and method of operation thereof
US20060156004A1 (en) Vl1w processor with power saving
US10606797B2 (en) Systems and methods for implementing an intelligence processing computing architecture
WO2013006566A2 (en) Method and apparatus for scheduling of instructions in a multistrand out-of-order processor
CN100361072C (zh) 流水线处理一系列处理指令的方法和设备
CN102422262B (zh) 处理器
JP6746596B2 (ja) 検体検査自動化システム
CN101246726A (zh) 光学储存装置及其存储装置管理方法
CN104156197A (zh) 微处理器以及微处理器操作方法
WO2023069384A1 (en) Large-scale accelerator system energy performance optimization
US8108662B2 (en) Checkpointing a hybrid architecture computing system
CN1761940B (zh) 指令处理设备,指令执行方法和装置,指令编译方法和装置
CN101464813A (zh) 用于多核处理器上的自动工作量分配的系统和方法
US20060020851A1 (en) Information processing apparatus and error detecting method
CN103207827A (zh) 基于Linux系统下检测IO热点的方法与装置
US20170351524A1 (en) Operation of a multi-slice processor implementing datapath steering
CN1833222A (zh) 采用ilp和tlp的可重构处理器阵列
US20220413590A1 (en) Systems and methods for reducing power consumption in compute circuits
WO2022099235A1 (en) Diagnostic laboratory systems, analyzer instruments, and control methods
CN101615115B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110803

Termination date: 20180309