CN102053819A - 信息处理设备和信息处理设备的指令解码器 - Google Patents
信息处理设备和信息处理设备的指令解码器 Download PDFInfo
- Publication number
- CN102053819A CN102053819A CN2010105173032A CN201010517303A CN102053819A CN 102053819 A CN102053819 A CN 102053819A CN 2010105173032 A CN2010105173032 A CN 2010105173032A CN 201010517303 A CN201010517303 A CN 201010517303A CN 102053819 A CN102053819 A CN 102053819A
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- data
- operand
- execution
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title abstract 3
- 238000007493 shaping process Methods 0.000 claims description 24
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 abstract description 5
- 230000003111 delayed effect Effects 0.000 abstract 1
- 230000001131 transforming effect Effects 0.000 abstract 1
- 230000003252 repetitive effect Effects 0.000 description 11
- 238000000605 extraction Methods 0.000 description 9
- 238000001914 filtration Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 235000019580 granularity Nutrition 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 240000001439 Opuntia Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Abstract
提供了信息处理设备和指令解码器。该信息处理设备包括:指令提供部件,提供多个指令作为单个指令组;执行部件,并行地重复地执行与多个指令对应的多个执行处理;发布定时控制部件,控制每个指令对于执行部件的发布定时,以便以根据预定等待时间而延迟的定时执行多个执行处理;以及操作数转换部件,在执行部件中执行的每一次重复时,根据预定增量值,转换每个指令的操作数寄存器地址。
Description
技术领域
本发明涉及信息处理设备,具体地涉及将多条指令作为单个指令组提供和执行的信息处理设备。
背景技术
随着近年来普通家庭中多媒体的激增,执行图像处理和声音处理的处理器的改进的性能已经成为日益增长的需求。因此,已经采用了并行处理技术,以尝试加速处理器。例如,执行SIMD(单指令流多数据流)指令的处理器作为数据级(data-level)并行处理技术的示例而存在。并且,VLIW处理器(超长指令字处理器)作为指令级并行处理技术的示例而存在。另外,为了在时间方向上执行并行处理,已经采用了这样的技术:其中,增大流水线级(pipeline stage)的数量,以改进处理器的操作时钟频率。
对于这些技术,VLIW处理器通过同时执行单个指令组中包含的多条指令(VLIW指令),实现了增强的并行性,由此改进了处理器性能。例如,在单个指令组中指定四个处理,并且并行地执行,由此使能高速计算处理。并且,当要对于多条数据执行相同处理时,该VLIW处理器使用指定处理重复的指令,由此去除了指令代码重复,从而改进了编码效率。例如,在现有技术中,存在在重复块内重复地执行处理的重复指令(例如,参见日本待审专利申请公开No.2002-229779(图15))。
发明内容
当使用上述根据现有技术的重复指令时,不需要在VLIW处理器中关于多条数据写下处理,从而使能了编码效率的改进。然而,如果在多个指令之间存在依赖性,则必须移动每个指令的执行定时,从而由于重复指令使得在稳定状态重复处理之前和之后瞬时处理变得必需。如果试图在编译时静态地执行该瞬时处理,则重复地插入无操作(NOP)指令多次,这不利地影响已经通过使用重复指令而改进的编码效率。
期望在VLIW处理器中与重复指令相关联地动态地执行瞬时处理。
根据本发明的实施例,提供了信息处理设备,包括:指令提供部件,作为单个指令组提供多个指令;执行部件,并行地重复执行与多个指令对应的多个执行处理;发布定时控制部件,控制每个指令向执行部件的发布定时,以便以根据预定等待时间而延迟的定时执行多个执行处理;以及操作数转换部件,在执行部件中执行的每一次重复时,根据预定增量值,转换每个指令的操作数寄存器地址。结果,以根据预定等待时间而延迟的定时重复地执行指令,同时转换多个指令中的每一个的操作数寄存器地址。
在本发明的实施例中,当转换操作数寄存器地址时,所述操作数转换部件可以使得操作数寄存器地址根据等待时间而循环。结果,当重复地执行多个指令时,使得每一个操作数寄存器地址根据等待时间而循环。在这种情况下,当转换操作数寄存器地址时,操作数转换部件可以通过根据增量对操作数寄存器地址执行加法或减法然后计算由于等待时间引起的余数,来执行循环。
在本发明的实施例中,操作数转换部件可以向以字为单位分配的操作数寄存器地址附加标识半字的信息,以便以半字为单位转换操作数寄存器地址。结果,当重复地执行多个指令时,以半字为单位转换每一个操作数寄存器地址。
在本发明的实施例中,指令组可以包括指定是否需要重复执行的重复信息;以及如果重复信息指定重复执行,则执行部件可以重复地执行与指令组中包括的多个指令对应的多个执行处理。结果,根据重复信息(如,重复指令或重复标志)重复地执行多个执行处理。
在本发明的实施例中,信息处理设备可以进一步包括:多个寄存器,其每一个均由操作数转换部件转换的操作数寄存器地址来存取;源数据整形部件,整形从每一个寄存器读取的源数据,并且将整形后的源数据提供到执行部件;以及执行结果数据整形部件,整形执行部件的执行结果数据,并将整形后的执行结果数据作为写数据提供到每一个寄存器。结果,消除了分开地执行用以执行数据整形的指令的必要性,由此使能了程序代码尺寸的减小。在这种情况下,源数据整形部件可以将32位数据的高16位和低16位之一提供到执行部件,执行部件可以在将位扩展应用于高16位和低16位之一后,执行每一个执行处理,并输出32位执行结果数据,并且执行结果数据整形部件可以提供执行部件的执行结果数据的低16位,作为写数据的高16位和低16位之一。
根据本发明的实施例,提供了指令解码器,包括:发布定时控制部件,控制作为单个指令组提供的多个指令中的每一个的发布定时,以便以根据预定等待时间而延迟的定时执行与多个指令对应的多个执行处理;以及操作数转换部件,在多个执行处理中的每一个的每一次重复时,转换每一个指令的操作数寄存器地址。结果,以根据预定等待时间而延迟的定时重复地执行指令,同时转换多个指令中的每一个的操作数寄存器地址。
附图说明
图1是示出了根据本发明第一实施例的信息处理设备的配置示例的图;
图2是示出了根据本发明实施例的指令解码器部件的配置示例的图;
图3是示出了根据本发明第一实施例的操作数转换部件的配置示例的图;
图4A到图4C每一个均为示出了根据本发明实施例的寄存器组的寄存器配置示例的图;
图5是示出了根据本发明实施例的、如何执行VLIW指令的图像示例的图;
图6A和图6B是示出了根据现有技术的、通过VLIW指令的编码的示例的图;
图7A到图7D每一个均为示出了根据本发明实施例的、通过VLIW指令的编码的示例的图;
图8A和图8B是示出了根据本发明实施例的、通过寄存器循环器的寄存器偏移值的循环的示例的图;
图9是示出了根据本发明第二实施例的信息处理设备的配置示例的图;
图10是示出了根据本发明第二实施例的操作数转换部件的配置示例的图;
图11是示出了根据本发明第二实施例的、如何进行半字存取的图;
图12是示出了根据本发明第二实施例的源数据整形部件的配置示例的图;
图13是根据本发明第二实施例的源数据选择部件的操作的真值表;
图14是示出了根据本发明第二实施例的执行部件的配置示例的图;
图15是示出了根据本发明第二实施例的执行结果数据整形部件的配置示例的图;
图16是根据本发明第二实施例的执行结果数据选择部件的操作的真值表;
图17A到图17C是示出了作为本发明第二实施例的应用示例的、对称滤波操作中寄存器与阵列之间的关系示例的图;
图18A和图18B每一个均为示出了作为本发明第二实施例的应用示例的滤波操作的程序代码的示例的图;
图19是示出了根据本发明实施例的源数据整形部件的第一修改的图;以及
图20是示出了根据本发明实施例的源数据整形部件的第二修改的图。
具体实施方式
在下文中,将描述用于执行本发明的方式(在下文中,称为实施例)。将以如下顺序给出描述。
1.第一实施例(以字为单位转换操作数寄存器地址的示例)
2.第二实施例(以半字为单位转换操作数寄存器地址的示例)
3.修改(在任意位位置处执行源数据的整形的示例)
<1.第一实施例>
[信息处理设备的配置示例]
图1是示出了根据本发明第一实施例的信息处理设备100的配置示例的图。信息处理设备100是VLIW处理器,其同时取回(fetch)作为单个指令组的多个指令,并同时执行所取回的指令。在该实施例中,假设信息处理设备100能够同时执行四个指令。信息处理设备100连接到存储器200,且包括指令提供部件110、指令解码器部件120、执行部件130和寄存器组140。
指令提供部件110同时取回存储器200中存储的多个指令作为单个指令组,并且将所取回的指令提供到指令解码器部件120。由于信息处理设备100是同时执行四个指令的VLIW处理器,因此指令提供部件110也同时取回四个指令。
指令解码器部件120解码从指令提供部件110提供的指令,并根据解码结果使得由执行部件130执行各指令的处理。由于信息处理设备100是同时执行四个指令的VLIW处理器,因此指令解码器部件120也同时解码四个指令。指令解码器部件120的内部配置将稍后描述。
执行部件130根据通过指令解码器部件120的解码结果并行地执行各指令的处理。该实施例假设存在同时操作的第一到第四单元,其中第一和第四单元以及第二和第三单元分别能够同时执行加载/存储指令和算术运算指令。
寄存器组140是当由执行部件130执行指令时必需的一组寄存器。由指令解码器部件120指定目标寄存器,将从寄存器读取的数据提供到执行部件130,并且还将数据从执行部件130写入寄存器。寄存器组140由信息处理设备100的指令集限定。稍后将描述寄存器组140的分类(breakdown)。应该注意,寄存器组140代表权利要求中所述的寄存器的示例。
[指令解码器部件的配置示例]
图2是示出了根据本发明实施例的指令解码器部件120的配置示例的图。指令解码器部件120包括指令保存部件121、指令解码部件122、发布定时控制部件123、操作数转换部件124、重复计数设置寄存器125、等待时间设置寄存器126和解码控制部件129。
指令保存部件121临时地保存从指令提供部件110提供的VLIW指令。在该实施例中,单个VLIW指令包含分别与上述第一到第四单元对应的四个指令。
指令解码部件122解码指令保存部件121中保存的四个指令。结果,产生信息处理设备100的内部控制所需的控制信号。也就是说,获得待存取的寄存器的地址、所执行的计算的种类等作为控制信号。
发布定时控制部件123控制将已解码的指令发布到执行部件130的定时。尽管通常同时发布四个已解码的指令,但是如果在等待时间设置寄存器126中设置后面所述的等待时间,则以移动了与等待时间对应的量的定时发布每一个指令。
操作数转换部件124根据预定规则转换各指令中包括的操作数地址。稍后将描述操作数转换部件124的内部配置。
重复计数设置寄存器125是用于设置重复VLIW指令的次数的寄存器。通过软件指令等预先在重复计数设置寄存器125中设置重复计数。
等待时间设置寄存器126是用于设置用以移动VLIW指令中包含的各指令的发布定时的等待时间的寄存器。通过软件指令等预先在等待时间设置寄存器126中设置等待时间。应该注意,在每一目标指令的基础上,可以将等待时间设置寄存器126设置为不同的值。
解码控制部件129整体地控制指令解码器部件120。例如,解码控制部件129根据重复计数设置寄存器125中设置的重复计数,而在指令保存部件121中保存指令,并且根据等待时间设置寄存器126中设置的等待时间确定各指令中的每一个的发布定时。
[操作数转换部件的配置示例]
图3是示出了根据本发明第一实施例的操作数转换部件124的配置示例的图。操作数转换部件124以字为单位转换操作数寄存器地址,并且包括偏移值寄存器410、偏移增量寄存器420、加法器430和460以及寄存器循环器440。
偏移值寄存器410是关于从发布定时控制部件123发布的每一个指令的操作数寄存器而保存偏移值的寄存器。由寄存器循环器440更新偏移值寄存器410的值,并且由加法器430和460参考偏移值寄存器410的值。
偏移增量寄存器420是在重复VLIW指令时保存添加到偏移值寄存器410的增量值的寄存器。偏移增量寄存器420中保存的增量值可以取负值。通过软件指令等预先设置偏移增量寄存器420的值,并且由加法器430参考偏移增量寄存器420的值。
加法器430执行偏移值寄存器410的值与偏移增量寄存器420的值的相加。由于偏移增量寄存器420可以取负值,因此在那种情况下执行减法。加法器430的相加结果用于由寄存器循环器440更新偏移值寄存器410。
寄存器循环器440基于加法器430的相加结果,更新偏移值寄存器410中保存的操作数寄存器的偏移值。在更新时,寄存器循环器440执行控制,以便偏移值寄存器410的值在与等待时间设置寄存器126中设置的等待时间对应的每一定时处循环。具体地说,寄存器循环器440可以由模算符(modulooperator)实施。应该注意,可以由指令解码器部件120来设置是否需要通过寄存器循环器440的循环。
加法器460将偏移值寄存器410中保存的偏移值加到从发布定时控制部件123发布的每一个指令的操作数寄存器地址。将加法器460的输出提供到寄存器组140作为操作数寄存器地址。因此,在寄存器组140中,进行对添加了偏移值的操作数寄存器地址的存取。应该注意,在发布了每一个VLIW指令之后,作为后处理执行偏移值寄存器的更新。
在操作数转换部件124中,向每一个指令的每一个操作数提供偏移值寄存器410和偏移增量寄存器420。这允许高度自由地对每一个操作数进行更新。例如,在可以指定两个源寄存器和一个目的寄存器的指令集的情况下,提供三组偏移值寄存器410和偏移增量寄存器420。
[寄存器组的寄存器配置]
图4A到图4C均为示出了根据本发明实施例的寄存器组140的寄存器配置的示例的图。假设寄存器组140包括通用寄存器、系数寄存器和累加器。
图4A示出了通用寄存器141的寄存器配置示例。通用寄存器141是在执行部件130进行的处理时用于普通目的的寄存器,并且用于保存用于执行部件130的源数据或用于存储器存取和存储数据的地址。在该示例中,提供具有32位宽的24个通用寄存器141(R0到R23)。
图4B示出了系数寄存器142的寄存器配置示例。系数寄存器142是用于保存滤波操作等中使用的系数而提供的特殊寄存器。在该示例中,提供具有32位宽的12个系数寄存器142(KR0到KR11)。
图4C示出了累加器143的寄存器配置示例。累加器143是用于执行部件130中的算术运算处理的寄存器。在该示例中,提供了具有32位宽的五个寄存器(A0、ML0、MH0、ML1和MH1)。累加器A0是在算术运算处理之中用于相加和相减的寄存器。累加器A0以外的四个寄存器是在算术运算处理之中用于相乘的寄存器。累加器ML0和MH0用作组合低32位和高32位的64位寄存器M0。累加器ML1和MH1用作组合低32位和高32位的64位寄存器M1。
应该注意,这里由大写字母表示指示每一个寄存器的字母,并且在后面描述的组装注释中由小写字母表示,且二者均表示相同的寄存器。
[VLIW指令的执行图像]
图5是示出了根据本发明实施例的、如何执行VLIW指令的图像示例的图。假设单个VLIW指令包括四个指令,这四个指令可以被同时执行。然而,应该注意的是,在实际的程序中,存在出现数据依赖性的情况,如当由另一条指令参照给定指令所产生的数据时。在那些情况下,必须延迟后一指令的执行,以便等待数据变为可用的。
在该图的情况下,假设将VLIW指令重复执行256次,并且由于数据依赖性而将每一个指令的发布延迟两个周期。即,由于第一周期中发布的指令A的结果可以用在第三周期中,因此在第三周期中发布指令B。由于在第三周期中发布的指令B的结果可以用在第五周期中,因此在第五周期中发布指令C。由于在第五周期中发布的指令C的结果可以用在第七周期中,因此在第七周期中发布指令D。
因此,在这种情况下,在本发明的实施例中,必须在重复计数设置寄存器125中设置“256”,并且在等待时间设置寄存器126中设置“2”。此时,尽管在第7到第256周期中同时执行四个指令,但是在其他周期中,那些指令中的至少一个是NOP(无操作)指令。即,第1到第6周期对应于开始处的过渡时段(transition period),并且第257到第262周期对应于结束处的过渡时段。在根据现有技术的技术中,这些过渡时段必须明示地编码。
图6A和图6B是示出了根据现有技术的、通过VLIW指令的编码示例的图。图6A示出了以C语言写的目标算法。即,当变量i通过每次向变量i增加“1”而从“0”增大到“256”时,执行乘法(a[i]×b[i]),并且将乘法结果右移c位(m[i]>>c)。
在根据现有技术的技术中,如图6B所示,必须在考虑数据依赖性的同时明示地编码在开始处的过渡时段(第1到第6行),然后编码重复部分(第7到第9行)。然后,进一步需要明示地编码在结束处的过渡时段(第10到第15行)。
应该注意的是,在该示例中,id指令是加载指令,其将64位数据的每个32位部分从由$men()指示的地址加载到两个级联的通用寄存器(R0和R1或R2和R3)中的每一个。这里,“r0:r1”指示通用寄存器R0和R1的级联。mul指令是相乘指令,其将两个32位宽的通用寄存器的值相乘在一起,并且将结果存储到64位宽累加器(M0或M1)中。sra指令是算术右移指令,其将64位宽累加器的值右移通用寄存器r23所指示的次数,并且将结果存储到通用寄存器(R16或R17)中。sw指令是存储指令,其将通用寄存器(R16或R17)的值存储到由$men()指示的地址。nop指令是无操作指令,其不执行处理。loop指令是用于形成循环的分支指令,其在它和标记的指令之间重复地执行预定次数。
图7A到图7D每一个均为示出了根据本发明实施例的、通过VLIW指令的编码示例的图。目标算法与图6A和图6B中的相同。图7A和图7B示出了第一示例,其是把指定重复的重复指令置于前缀的类型。rpt指令是指定VLIW指令的重复执行的重复指令,并且在下一循环中将VLIW指令执行重复计数设置寄存器125中设置的次数(rptr)。即,重复地执行下一VLIW指令中包括的id指令、mul指令、sra指令和sw指令。
此时,通过预先在重复计数设置寄存器125中设置“256”,并且在等待时间设置寄存器126中设置“2”,在与图5中所示的定时相同的定时处进行每个指令的执行。
并且,在这种情况下,将“0”设置为mul指令的每一个源操作数的偏移值寄存器410的初始值,并且在偏移增量寄存器420中设置“2”。因此,由于寄存器循环器440,mul指令的每一个源操作数的偏移值寄存器410的值重复地在“0”和“2”之间交替。因此,作为mul指令的源操作数,交替地产生R0和R1以及R2和R3。并且,将“0”设置为mul指令的目的地操作数的偏移值寄存器410的初始值,并且在偏移增量寄存器420中设置“1”。因此,由于寄存器循环器440,mul指令的目的地操作数的偏移值寄存器410的值重复地在“0”和“1”之间交替。因此,作为mul指令的目的地操作数,交替地产生M0和M1。稍后将描述通过寄存器循环器440的偏移值寄存器410的更新。
在上述第一示例中,由于将重复指令实现为单个独立的指令,因此四个指令字段中的三个是NOP指令,这是浪费的。因此,在下面所述的第二示例中,在VLIW指令内提供1位重复标志,并且根据该重复标志的状态来控制VLIW指令的重复执行。
图7C和图7D示出了第二示例,其中如果VLIW指令内的重复标志指示ON(开),则重复地执行VLIW指令。相反地,如果重复标志指示OFF(关),则仅执行一次VLIW指令。
应该注意的是,这里描述的重复指令和重复标志每个均代表权利要求中所述的重复信息的示例。
图8A和图8B是示出了根据本发明实施例的、通过寄存器循环器440的寄存器偏移值的循环的示例的图。当重复地执行VLIW指令时,如果不同的寄存器可以用于与等待时间对应的每一个循环,则独立的执行是可能的。例如,在图6B的情况下,通过使用通用寄存器R0和R1以及R2和R3,可以以等待时间“2”连续地发布两个加载指令。如果仅可以使用通用寄存器R0和R1,则仅可以每两个周期地发布加载指令,导致处理效率的下降。因此,在寄存器循环器440中,以循环方式更新偏移值寄存器410的值,由此实现寄存器重命名。
图8A示出了在当偏移增量寄存器420的值是“1”且等待时间设置寄存器126中设置的等待时间范围从“1”到“3”时的情况下,通用寄存器的寄存器地址的循环示例。当等待时间是“1”时,寄存器偏移值仍然为“0”。当等待时间是“2”时,寄存器偏移值重复地在“0”和“1”之间交替。当等待时间是“3”时,寄存器偏移值在“0”、“1”和“2”之间循环。因此,VLIW指令中的通用寄存器R0以这种方式改变以便当等待时间是“1”时仍然为R0,当等待时间是“2”时在R0和R1之间重复地交替,而当等待时间是“3”时在R0、R1和R2之间循环。
图8B示出了在当偏移增量寄存器420的值是“1”且等待时间设置寄存器126中设置的等待时间范围从“1”到“2”时的情况下,累加器的寄存器地址的循环示例。当等待时间是“1”时,寄存器偏移值仍然为“0”。当等待时间是“2”时,寄存器偏移值重复地在“0”和“1”之间交替。因此,VLIW指令中的累加器M0在等待时间是“1”时仍然为M0,在等待时间是“2”时在M0和M1之间重复地交替。
以这种方式,根据本发明的第一实施例,在根据等待时间设置寄存器126中设置的等待时间移动定时的同时,动态地重复VLIW指令,由此使得可以避免明示地编码过渡时段。另外,通过更新偏移值寄存器410的值来重命名寄存器地址,以便根据等待时间设置寄存器126中设置的等待时间来循环,从而能够改进处理效率。
<2.第二实施例>
[信息处理设备的配置示例]
图9是示出了根据本发明第二实施例的信息处理设备100的配置示例的图。为了处理半字,根据第二实施例的信息处理设备100包括对提供到执行部件130的源数据和从执行部件130输出的执行结果数据进行整形的功能。因此,根据第二实施例的信息处理设备100与上述根据第一实施例的信息处理设备的不同之处在于,进一步提供了源数据整形部件150和执行结果数据整形部件160。源数据整形部件150根据解码结果,对从寄存器组140读取的源数据进行整形。执行结果数据整形部件160根据解码结果,对从执行部件130输出的执行结果数据进行整形。
由于指令提供部件110和寄存器组140与第一实施例中的相同,因此这里省略其描述。尽管指令解码器部件120的整体配置与第一实施例中的相同,但是操作数转换部件124的内部配置不同,并且稍后将给出关于这一点的描述。由于部分修改了执行部件130,因此稍后还将给出关于这一点的描述。
[操作数转换部件的配置示例]
图10是示出了根据本发明第二实施例的操作数转换部件124的配置示例的图。根据第二实施例的操作数转换部件124与以上参照图3所述的根据第一实施例的操作数转换部件的不同之处在于,操作数转换部件124以半字为单位换操作数寄存器地址并且包括移位器450,而在其他方面的配置相同。
移位器450将从发布定时控制部件123提供的操作数的寄存器地址左移1位。因此,从移位器450输出的寄存器地址是除去了低1位的寄存器地址,以半字为单位。从偏移值寄存器410提供低1位。
图11是示出了根据本发明第二实施例的、如何进行半字存取的图。尽管该示例图示了对于通用寄存器141的应用,但是也可以将其应用于系数寄存器142和累加器143。
在字的普通规格(specification)中,以32位一个字为单位,通过指令的操作数来执行指定。相比之下,为了指定16位半字,除了字规格之外,必须指定MSB侧或LSB侧作为字内规格。该字内规格可以通过偏移值寄存器410的最不有效位来完成。
[源数据整形部件的配置示例]
图12是示出了根据本发明第二实施例的源数据整形部件150的配置示例的图。源数据整形部件150包括源数据选择部件151。
将从寄存器组140中的寄存器之一提供的32位输入数据301输入到源数据选择部件151,作为每一个LSB侧和MSB侧的16位半字数据。源数据选择部件151根据指令解码器部件120中的解码结果,在LSB侧或MSB侧选择16位数据。源数据选择部件151的输出变为输出数据309的LSB侧上的16位数据。输出数据309的MSB侧上的16位数据与输入数据301的MSB侧上的16位数据相同。即,对于输出数据309来说两种情况是可想到的,一种是输出数据309完全与输入数据301匹配的情况,而另一种是输入数据301的MSB侧上的16位数据也被输出在输出数据309的LSB侧上的情况。
尽管关于图12中的单条数据给出了说明,但是根据操作数的数量,准备多个相同电路(为了下述执行部件130的目的,准备两个相同电路)。
图13是根据本发明第二实施例的源数据选择部件151的操作的真值表。如果作为指令解码器部件120中的解码结果,确定不需要交换(swap)用于半字存取的数据,则源数据选择部件151选择输入数据301的LSB侧上的16位数据。另一方面,如果确定需要交换用于半字存取的数据,则源数据选择部件151选择输入数据301的MSB侧上的16位数据。因此,在输出数据309的LSB侧上,根据解码结果输出输入数据301的LSB侧或MSB侧上的16位数据。
[执行部件的配置示例]
图14是示出根据本发明第二实施例的执行部件130的配置示例的图。执行部件130在应用位扩展之后,对于从源数据整形部件150提供的两条输入数据310和320执行运算,并对输出数据330进行输出。执行部件130包括用于两条输入数据的位扩展部件131和132以及计算部件133。
位扩展部件131根据解码结果,将输入数据310的LSB侧上的16位数据符号扩展或零扩展为32位精度。位扩展部件132根据解码结果,将输入数据320的LSB侧上的16位数据符号扩展或零扩展为32位精度。位扩展部件131和132的输出均被提供到计算部件133作为32位数据。
计算部件133根据指令解码器部件120中的解码结果,对于从每一个位扩展部件131和132提供的32位数据执行计算。将计算部件133的计算结果提供到执行结果数据整形部件160作为具有32位精度的输出数据330。
[执行结果数据整形部件的配置示例]
图15是示出了根据本发明第二实施例的执行结果数据整形部件160的配置示例的图。执行结果数据整形部件160包括执行结果数据选择部件161。
将从执行部件130提供的32位输入数据341输入到执行结果数据选择部件161作为LSB侧和MSB侧的每一个上的16位半字数据。执行结果数据选择部件161根据指令解码器部件120中的解码结果,选择LSB侧或MSB侧上的16位数据。执行结果数据选择部件161的输出变为输出数据349的MSB侧上的16位数据。输出数据349的LSB侧上的16位数据与输入数据341的LSB侧上的16位数据相同。即,对于输出数据349来说两种情况是可想到的,一种是输出数据349完全匹配输入数据341的情况,另一种是输入数据341的LSB侧上的16位数据也被输出在输出数据349的MSB侧上的情况。
图16是根据本发明第二实施例的执行结果数据选择部件161的操作的真值表。如果作为指令解码器部件120中的解码结果,确定不需要交换用于半字存取的数据,则执行结果数据选择部件161选择输入数据341的MSB侧上的16位数据。另一方面,如果确定需要交换用于半字存取的数据,则执行结果数据选择部件161选择输入数据341的LSB侧上的16位数据。因此,在输出数据349的MSB侧上,根据解码结果输出输入数据341的LSB侧或MSB侧上的16位数据。
以这种方式,在本发明的第二实施例中,可以将16位半字数据符号扩展或零扩展并计算为32位数据,然后在存储到寄存器中之前恢复到半字。
[对称滤波操作的应用示例]
图17A到图17C是示出了作为本发明第二实施例的应用示例的对称滤波操作中寄存器与阵列之间的关系示例的图。图17A示出了目标对称滤波操作的等式。阵列L表示采样数据,而阵列Coef表示滤波器系数。由于总和的变量n取从0到8的值,因此阵列L和阵列Coef分别具有从L[0]到L[16]的17个元素和从Coef[0]到Coef[8]的9个元素。在加和之后,以由即时NORM指示的次数执行右移,并且以32位精度将结果代入滤波结果Result。即时NORM是归一化的值,并且实际中使用“5”或“6”。
如图17B和图17C所示,阵列L被分配给通用寄存器141,并且阵列Coef被分配给系数寄存器142。每一个数据被分配为具有16位精度的半字。因此,图17A中的等式所需的所有阵列可以被分配给通用寄存器141和系数寄存器142,由此改进了程序代码的效率。
图18A和图18B每一个均是示出了作为本发明第二实施例的应用示例的滤波操作的程序代码的示例的图。图18A示出了假设执行两个指令的VLIW处理器所执行的程序代码的示例。
在第一步骤中写入rpt指令和nop指令。rpt指令是指定下一步骤要重复的次数的重复指令。由于rpt指令,第二步骤中的两个指令重复九次。此时,通过预先在等待时间设置寄存器126中设置“1”,第二步骤的右侧的指令以1个周期的延迟开始。应该注意的是,nop操作是无操作指令,并且不执行操作。
在第二步骤中,写入addh指令和madd指令。addh指令是半字相加指令,其将两个通用寄存器的半字符号扩展到32位,并将已符号扩展的半字作为输入操作数相加,并将结果以32位精度存储到累加器A0中。madd指令是积-和指令,其将具有32位精度的累加器A0的值乘以具有16位精度的系数寄存器的值,并以64位精度将相乘结果添加到累加器M0。
在第三步骤中,写入sra指令和nop指令。sra指令是右移指令,其将具有64位精度的累加器M0的值右移即时NORM所指示的次数,并且将结果以32位精度存储到通用寄存器R9中。
通用寄存器和系数寄存器的各个地址由指令代码中操作数的指定和偏移值寄存器410来确定。对于每一个操作数提供偏移值寄存器410,并且根据其对应的偏移增量寄存器420来更新。在该示例中,对于addh指令的两个输入操作数中之一将偏移增量寄存器420的值设置为“+1”(半字增大),而对于另一个将其设置为“-1”(半字减小)。作为madd指令的输入操作数的关于系数寄存器设置的值是“1”(半字增大)。应该注意的是,以32位为单位的增大是“+2”,而以32位为单位的减小是“-2”。作为偏移值寄存器410的初始值,对于addh指令的两个输入操作数二者设置“8”,而对于其输出操作数设置“0”,并且对于作为madd指令的输入操作数的系数寄存器设置“0”。
图18B是示出了执行图18A中所示的程序代码的定时的图。首先,在第1周期中,执行L[8](R4(LSB))和L[8](R4(LSB))的相加。在第2周期中,执行L[9](R4(MSB))和L[7](R3(LSB))的相加,并且还将第1周期的相加结果乘以Coef[0](KR0(LSB))。接下来以相同的方式执行处理,以便在第9周期中,执行L[16](R8(LSB))和L[0](R0(LSB))的相加,并且还将第8周期的相加结果乘以Coef[7](KR3(MSB))。然后,在第10周期中,将第9周期的相加结果乘以Coef[8](KR4(LSB))。最后,在第11周期中,将第10周期的积-和结果右移由即时NORM指示的次数,并且将结果存储到通用寄存器R9中。
以这种方式,根据本发明的第二实施例,在以半字为单位重命名寄存器地址的同时,可以动态地重复VLIW指令,由此使能寄存器的有效使用和减少的程序代码。
<3.修改>
尽管上述实施例针对以字或半字为单位转换操作数的寄存器地址的情况,但是截断必要数据的位置可以是如下所述的寄存器中的任意位位置。
[第一修改]
图19是示出了根据本发明实施例的源数据整形部件150的第一修改的图。在源数据整形部件150的第一修改中,由数据提取部件152提取从寄存器组140读取的32位输入数据301的第x位开始的n位部分,作为提取数据302。由位扩展部件153对n位提取数据302进行符号扩展或零扩展,且n位提取数据302变为32位的输出数据309。将输出数据309提供到执行部件130。
根据本发明实施例的第一修改,由于在参考输入数据的指令中执行数据的提取和扩展,因此不需要分开地执行独立的数据提取和数据扩展指令,由此使得能够减小程序代码大小。
[第二修改]
图20是示出了根据本发明实施例的源数据整形部件150的第二修改的图。在源数据整形部件150的第二修改中,由数据提取部件152从读取自寄存器组140的32位输入数据301中提取两条提取数据。即,提取从输入数据301的第x位开始的n位部分作为提取数据303,并且提取从输入数据301的第y位开始的n位部分作为提取数据304。
然后,由位扩展部件153对n位提取数据303进行符号扩展或零扩展,并且将n位提取数据303设置在输出数据309的LSB侧上。并且,由位扩展部件153将n位提取数据304符号扩展或零扩展为16位,并且将n位提取数据304设置在输出数据309的MSB侧上。即,32位输出数据309包括两条16位数据。在这种情况下,将输出数据309作为两个输入操作数提供到执行部件130。
根据本发明实施例的第二修改,从单条输入数据中提取两条16位数据,并进行符号扩展。因此,可以并行地运行两倍多的算符,而不分开地执行独立的数据提取和数据扩展指令。
[其他修改]
应该注意的是,在本发明的实施例中,通过扩展偏移值寄存器410和偏移增量寄存器420的位宽,可以扩展系数寄存器142的字数,而不引起程序代码的操作数位宽的增大。因此,在需要大量系数(滤波器抽头)的滤波操作等的算法的情况下,可以处理以程序代码写的操作数而不用重命名。因此易于配置扩展的系数寄存器为ROM。
在偏移值寄存器410和偏移增量寄存器420中,通过不仅提供16位粒度(granularity)而且提供十进制点位,操作数指定的更新的频率可以减小到小于每次一次的频率。这也使得可以例如连续地参考相同的系数值。
应该注意的是,本发明的实施例是用于实施本发明的示例的说明,并且如本发明的实施例中明确声明的那样,在本发明实施例的事物与权利要求中发明限定的事物之间存在相互的对应性。同样地,在权利要求中发明限定的事物与本发明实施例中的事物(由与发明限定的事物相同的名称表示)之间存在相互的对应性。然而,应该注意的是,本发明不限于实施例,并且在不脱离本发明的范围的情况下,可以通过对实施例进行各种修改来实施本发明。
参照本发明实施例描述的处理步骤可以理解为具有一系列的这些步骤的方法,或者可以理解为使计算机执行一系列这些步骤的程序或存储该程序的记录介质。作为该记录介质,例如,可以使用CD(压缩盘)、MD(迷你盘)、DVD(数字多功能盘)、存储卡、蓝光盘(注册商标)等。
本申请包含与于2009年10月26日向日本专利局提交的日本优先权专利申请JP 2009-245013中公开的主题有关的主题,将其全部内容通过引用的方式合并在此。
本领域的技术人员应该理解,根据设计要求和其他因素,可能出现各种修改、组合、部分组合和变更,只要它们落在所附权利要求及其等价物的范围内即可。
Claims (8)
1.一种信息处理设备,包括:
指令提供部件,提供多个指令作为单个指令组;
执行部件,并行地重复执行与所述多个指令对应的多个执行处理;
发布定时控制部件,控制每个指令向所述执行部件的发布定时,以便以根据预定等待时间而延迟的定时执行所述多个执行处理;以及
操作数转换部件,在所述执行部件中执行的每一次重复时,根据预定增量值,转换每个指令的操作数寄存器地址。
2.根据权利要求1所述的信息处理设备,其中,当转换所述操作数寄存器地址时,所述操作数转换部件使得所述操作数寄存器地址根据所述等待时间而循环。
3.根据权利要求2所述的信息处理设备,其中。当转换所述操作数寄存器地址时,所述操作数转换部件通过根据增量对所述操作数寄存器地址执行加法或减法然后计算由于所述等待时间引起的余数,来执行循环。
4.根据权利要求1所述的信息处理设备,其中,所述操作数转换部件向以字为单位分配的操作数寄存器地址附加标识半字的信息,以便以半字为单位转换所述操作数寄存器地址。
5.根据权利要求1所述的信息处理设备,其中:
所述指令组包括指定是否需要重复执行的重复信息;以及
如果所述重复信息指定重复执行,则所述执行部件重复地执行与所述指令组中包括的多个指令对应的多个执行处理。
6.根据权利要求1所述的信息处理设备,进一步包括:
多个寄存器,其每一个均由所述操作数转换部件转换的操作数寄存器地址来存取;
源数据整形部件,整形从每一个寄存器读取的源数据,并且将整形后的源数据提供到所述执行部件;以及
执行结果数据整形部件,整形所述执行部件的执行结果数据,并将整形后的执行结果数据作为写数据提供到每一个寄存器。
7.根据权利要求6所述的信息处理设备,其中:
所述源数据整形部件将32位数据的高16位和低16位之一提供到所述执行部件;
所述执行部件在将位扩展应用于高16位和低16位之一后,执行每一个执行处理,并输出32位执行结果数据;以及
所述执行结果数据整形部件提供所述执行部件的执行结果数据的低16位,作为写数据的高16位和低16位之一。
8.一种指令解码器,包括:
发布定时控制部件,控制作为单个指令组提供的多个指令中的每一个的发布定时,以便以根据预定等待时间而延迟的定时执行与所述多个指令对应的多个执行处理;以及
操作数转换部件,在所述多个执行处理中的每一个的每一次重复时,转换每一个指令的操作数寄存器地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009245013A JP2011090592A (ja) | 2009-10-26 | 2009-10-26 | 情報処理装置とその命令デコーダ |
JP245013/09 | 2009-10-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102053819A true CN102053819A (zh) | 2011-05-11 |
Family
ID=43899367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105173032A Pending CN102053819A (zh) | 2009-10-26 | 2010-10-19 | 信息处理设备和信息处理设备的指令解码器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9164763B2 (zh) |
JP (1) | JP2011090592A (zh) |
CN (1) | CN102053819A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015021803A1 (zh) * | 2013-08-13 | 2015-02-19 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN107408036A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 用户级分叉与结合处理器、方法、系统和指令 |
CN109032665A (zh) * | 2017-06-09 | 2018-12-18 | 龙芯中科技术有限公司 | 微处理器中指令输出处理方法及装置 |
CN111522586A (zh) * | 2019-02-01 | 2020-08-11 | 富士通株式会社 | 信息处理装置、非暂态计算机可读介质和信息处理方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013242700A (ja) * | 2012-05-21 | 2013-12-05 | Internatl Business Mach Corp <Ibm> | コード最適化方法、プログラム及びシステム |
US20150293767A1 (en) * | 2014-04-11 | 2015-10-15 | Fujitsu Limited | Rotating register file with bit expansion support |
TWI489445B (zh) * | 2014-09-23 | 2015-06-21 | Delta Electronics Inc | 即時色域映對系統與即時色域映對方法 |
US11409525B2 (en) * | 2018-01-24 | 2022-08-09 | Intel Corporation | Apparatus and method for vector multiply and accumulate of packed words |
US11829762B2 (en) | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Time-resource matrix for a microprocessor with time counter for statically dispatching instructions |
US11954491B2 (en) | 2022-01-30 | 2024-04-09 | Simplex Micro, Inc. | Multi-threading microprocessor with a time counter for statically dispatching instructions |
US11829187B2 (en) | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Microprocessor with time counter for statically dispatching instructions |
US11829767B2 (en) | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Register scoreboard for a microprocessor with a time counter for statically dispatching instructions |
US20230342153A1 (en) * | 2022-04-20 | 2023-10-26 | Simplex Micro, Inc. | Microprocessor with a time counter for statically dispatching extended instructions |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1227932A (zh) * | 1997-12-19 | 1999-09-08 | 日本电气株式会社 | 通过流水线控制访问的高速缓冲存储器系统及其访问方法 |
CN1320238A (zh) * | 1998-09-24 | 2001-10-31 | 英特尔公司 | 高频管道去耦合队列设计 |
CN1426547A (zh) * | 2000-04-06 | 2003-06-25 | 格姆普拉斯公司 | 基于流水线体系结构的微控制器的对抗方法 |
CN1545026A (zh) * | 2003-11-26 | 2004-11-10 | 中国人民解放军国防科学技术大学 | 依据确定延迟的动态vliw指令调度方法 |
CN1605061A (zh) * | 2001-12-21 | 2005-04-06 | 皇家飞利浦电子股份有限公司 | 用于阵列处理的可编程的延迟指数的数据通路寄存器堆 |
CN1717654A (zh) * | 2002-11-28 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 数据处理器的循环控制电路 |
CN1826583A (zh) * | 2003-04-29 | 2006-08-30 | 皇家飞利浦电子股份有限公司 | 时间-固定处理器中零开销的分支和循环 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2359641B (en) * | 2000-02-25 | 2002-02-13 | Siroyan Ltd | Mapping circuitry and method |
JP2002229779A (ja) | 2001-02-02 | 2002-08-16 | Mitsubishi Electric Corp | 情報処理装置 |
US8098251B2 (en) * | 2008-02-22 | 2012-01-17 | Qualcomm Incorporated | System and method for instruction latency reduction in graphics processing |
-
2009
- 2009-10-26 JP JP2009245013A patent/JP2011090592A/ja not_active Abandoned
-
2010
- 2010-08-24 US US12/805,907 patent/US9164763B2/en not_active Expired - Fee Related
- 2010-10-19 CN CN2010105173032A patent/CN102053819A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1227932A (zh) * | 1997-12-19 | 1999-09-08 | 日本电气株式会社 | 通过流水线控制访问的高速缓冲存储器系统及其访问方法 |
CN1320238A (zh) * | 1998-09-24 | 2001-10-31 | 英特尔公司 | 高频管道去耦合队列设计 |
CN1426547A (zh) * | 2000-04-06 | 2003-06-25 | 格姆普拉斯公司 | 基于流水线体系结构的微控制器的对抗方法 |
CN1605061A (zh) * | 2001-12-21 | 2005-04-06 | 皇家飞利浦电子股份有限公司 | 用于阵列处理的可编程的延迟指数的数据通路寄存器堆 |
CN1717654A (zh) * | 2002-11-28 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 数据处理器的循环控制电路 |
CN1826583A (zh) * | 2003-04-29 | 2006-08-30 | 皇家飞利浦电子股份有限公司 | 时间-固定处理器中零开销的分支和循环 |
CN1545026A (zh) * | 2003-11-26 | 2004-11-10 | 中国人民解放军国防科学技术大学 | 依据确定延迟的动态vliw指令调度方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015021803A1 (zh) * | 2013-08-13 | 2015-02-19 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN104375803A (zh) * | 2013-08-13 | 2015-02-25 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN104375803B (zh) * | 2013-08-13 | 2017-10-24 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN107408036A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 用户级分叉与结合处理器、方法、系统和指令 |
CN107408036B (zh) * | 2015-03-27 | 2021-08-31 | 英特尔公司 | 用户级分叉与结合处理器、方法、系统和指令 |
CN109032665A (zh) * | 2017-06-09 | 2018-12-18 | 龙芯中科技术有限公司 | 微处理器中指令输出处理方法及装置 |
CN109032665B (zh) * | 2017-06-09 | 2021-01-26 | 龙芯中科技术股份有限公司 | 微处理器中指令输出处理方法及装置 |
CN111522586A (zh) * | 2019-02-01 | 2020-08-11 | 富士通株式会社 | 信息处理装置、非暂态计算机可读介质和信息处理方法 |
CN111522586B (zh) * | 2019-02-01 | 2023-10-03 | 富士通株式会社 | 信息处理装置、非暂态计算机可读介质和信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2011090592A (ja) | 2011-05-06 |
US9164763B2 (en) | 2015-10-20 |
US20110099354A1 (en) | 2011-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053819A (zh) | 信息处理设备和信息处理设备的指令解码器 | |
US7386844B2 (en) | Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions | |
US7162621B2 (en) | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration | |
CN117349584A (zh) | 实行16位浮点矩阵点积指令的系统和方法 | |
US7380112B2 (en) | Processor and compiler for decoding an instruction and executing the decoded instruction with conditional execution flags | |
KR100328162B1 (ko) | 정보처리회로와마이크로컴퓨터와전자기기 | |
TW201820125A (zh) | 執行複數的熔合乘-加指令的系統與方法 | |
CN101495959B (zh) | 组合微处理器内的多个寄存器单元的方法和设备 | |
JP2024038122A (ja) | 行列演算アクセラレータの命令のための装置、方法、およびシステム | |
WO2015114305A1 (en) | A data processing apparatus and method for executing a vector scan instruction | |
CN117724766A (zh) | 用于执行将矩阵变换为行交错格式的指令的系统和方法 | |
US20060259747A1 (en) | Long instruction word processing with instruction extensions | |
JP2023051994A (ja) | 連鎖タイル演算を実施するためのシステムおよび方法 | |
KR20050010800A (ko) | 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치 | |
JP2004013185A (ja) | プロセッサ | |
US20140047218A1 (en) | Multi-stage register renaming using dependency removal | |
CN102576302B (zh) | 微处理器及用于微处理器上增强精确度乘积和计算的方法 | |
EP1861775B1 (en) | Processor and method of indirect register read and write operations | |
Derby et al. | A high-performance embedded DSP core with novel SIMD features | |
CN116382782A (zh) | 向量运算方法、向量运算器、电子设备和存储介质 | |
Corbal et al. | On the efficiency of reductions in/spl mu/-SIMD media extensions | |
CN112149050A (zh) | 用于增强的矩阵乘法器架构的装置、方法和系统 | |
Spaderna et al. | An integrated floating point vector processor for DSP and scientific computing | |
CN110109704B (zh) | 一种数字信号处理系统 | |
US20060206695A1 (en) | Data movement within a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110511 |
|
WD01 | Invention patent application deemed withdrawn after publication |