CN103460181A - 集成电路器件和执行其位操纵的方法 - Google Patents

集成电路器件和执行其位操纵的方法 Download PDF

Info

Publication number
CN103460181A
CN103460181A CN2011800698499A CN201180069849A CN103460181A CN 103460181 A CN103460181 A CN 103460181A CN 2011800698499 A CN2011800698499 A CN 2011800698499A CN 201180069849 A CN201180069849 A CN 201180069849A CN 103460181 A CN103460181 A CN 103460181A
Authority
CN
China
Prior art keywords
value
manipulation
bit
data register
module
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.)
Granted
Application number
CN2011800698499A
Other languages
English (en)
Other versions
CN103460181B (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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN103460181A publication Critical patent/CN103460181A/zh
Application granted granted Critical
Publication of CN103460181B publication Critical patent/CN103460181B/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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Selective Calling Equipment (AREA)
  • Logic Circuits (AREA)

Abstract

一种集成电路器件(105)包括被布置成接收位操纵指令的至少一个指令处理模块(100),并且响应于接收到所述位操纵指令,根据至少一个控制位(305)的值,从至少一个源数据寄存器(210)中选择至少一个位(315),根据至少一个其它控制位(330)的值,从候选值中选择所述至少一个选择位(315)的操纵值(325),以及将所述至少一个选择位(315)的所选择的操纵值(325)存储在至少一个输出数据寄存器(230)中。

Description

集成电路器件和执行其位操纵的方法
技术领域
本发明的领域涉及一种集成电路器件、一种执行位操纵的方法以及一种实现其位操纵的方法。
背景技术
现代数字信号处理器(DSP)应用经常执行位重组操纵等等,以便实现所需数据操纵。例如,这样的位重组操作被使用以便在WIMAX(微波存取全球互通)或WCDMA(宽带码分多址)中实现位交错操作。DSP被布置成响应于接收到位重组指令而执行位重组操作。
专用指令可以被用于支持在DSP发展期间是众所周知的以及被计划的具体算法的实现。然而,这样的专用指令通常不能支持在DSP设计阶段之后随后变得要求被实现的算法。
在DSP内一般位重组/位操纵指令的实现是已知的,例如,使用蝶形位移位电路。然而,在硬件中实现这种技术的复杂度极高,由此增加了完成DSP设计的开发成本和时间。
发明内容
如所附权利要求中所描述的,本发明提供了一种集成电路器件、一种执行一般位操纵的方法以及一种实现一般位操纵的方法。
本发明的具体实施例在从属权利要求中被陈述。
本发明的这些或其它方面根据下文中描述的实施例将会显而易见,并且参照下文中描述的实施例被阐述。
附图说明
参照附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的参考数字被用于表示相同的或功能相似的元件。附图中的元件为了简单以及清晰而被图示,并且不一定按比例绘制。
图1示出了包括指令处理模块的集成电路器件的例子的框图。
图2示出了指令处理模块的一部分的例子的框图。
图3示出了位操纵模块的例子的框图。
图4示出了执行位操纵的方法的例子的简化流程图。
图5示出了实现位操纵的方法的例子的简化流程图。
具体实施方式
现在将参照诸如中央处理单元(CPU)或数字信号处理(DSP)的指令处理模块的例子描述本发明的例子。然而,将了解,本发明不限定于参照附图在此描述的特定指令处理模块,并且可能被同样应用于替代信号处理模块。对于所说明的例子,提供了包括单独的数据和地址寄存器的指令处理模块。替代地,该地址寄存器可与该数据寄存器组合,并且组合的寄存器被用于提供地址存储等等。此外,对于所说明的例子,指令处理模块被示出为包括四个数据执行单元。然而,将了解,本发明的例子可在指令处理模块中被同样实现,该指令处理模块包含任何其它数目的数据执行单元,例如,一个、两个、八个等等。此外,因为本发明所说明的示例实施例大部分可使用本领域所属技术人员所已知的电子组件以及电路被实现,所以将不会在比上述所说明的认为有必要的程度大的任何程度上解释细节,以便于对本发明基本概念的理解以及认识并且为了不混淆或偏离本发明所教之内容。
首先参照图1,图示了根据本发明的一些示例实施例的指令处理模块100的一部分的例子的简化框图。在所说明的例子中,指令处理模块100是集成电路器件的一部分,该部分通常在105被图示,并且包括至少一个程序控制单元(PCU)110、一个或多个数据执行单元(DEU)模块120、至少一个地址生成单元(AGU)130以及多个数据寄存器,这些通常在140被图示。PCU110被布置成接收指令,如通常在115被图示的,并且使得根据所接收到的指令执行在指令处理模块100中的操作,这样的操作通过比如一个或多个DEU模块120被执行。例如,PCU110可以接收例如存储在指令缓冲器(未示出)中的指令,其中接收到的指令需要对一个或多个位/字节/字等等的数据执行一个或多个操作。数据“位”通常指的是包括了逻辑“1”或逻辑“0”的二进制数据的单一单元,而“字节”通常指的是8位的块。数据“字”可包括一个或多个字节的数据,例如两个字节(16位)的数据,这取决于特定指令处理模块。一旦接收到这样指令,PCU110就生成指令和/或信号控制并且将其输出到指令处理模块100内的各种其它组件,以便执行所需的操作。AGU130被布置成生成用于访问外部***存储器(未示出)的地址值,并且可包括一个或多个地址寄存器,这些通常在135被图示。数据寄存器140给从***存储器提取的数据提供存储,并且对其执行一个或多个操作,并且可以从其将数据写入***存储器。根据从PCU110接收到的指令和控制信号,DEU模块120被布置成对数据(被直接提供到那里或者被存储到数据寄存器140内)执行操作。同样地,DEU模块120可包括算术逻辑单元(ALU)等等。
如下面更详细描述的,所说明的例子的指令处理模块100被布置成接收位操纵指令,并且响应于接收到所述位操纵指令:根据至少一个控制位从至少一个源数据寄存器选择至少一个位;根据至少一个其它控制位从候选值选择用于所述至少一个选择位的操纵值,并且将用于所述至少一个选择位的所述选择操纵值存储在至少一个输出数据寄存器中。以这种方式,指令处理模块100能够在源数据寄存器内以一种简单且有效的方式以及如下图所示,用一种低成本的硬件面积和复杂度来执行数据的灵活的并且可配置的位操纵。
参照图2,图示了这样的位操纵指令的执行的例子,诸如可实现在比如图1的指令处理模块100的一个或多个DEU模块120内。要***纵的数据位被加载到一个或多个源数据寄存器中。对于所说明的例子,要***纵的数据位被加载到32位的源数据寄存器210中。将了解,替代指令处理模块可包括不同尺寸的数据寄存器,并且因此本发明并不限定于使用32位数据寄存器。指令处理模块100被布置成:一旦接收到位操纵指令,则根据至少一个控制位的所述值,从源数据寄存器210选择至少一个位;以及根据至少一个其它控制位的所述值,选择用于所述(至少一个)选择位的操纵值。对于图2中所说明的例子,指令处理模块100包括一个或多个位操纵模块240,该位操纵模块240被布置成:根据通常在225被图示的控制位Ctrl_1至Ctrl_8的值,从源数据寄存器210选择数据位;以及对所选择的数据位执行位操纵操作。该位操纵操作可以包括根据一个或多个其它控制位的值来选择每个选择数据位的操纵值(为了简单起见,也通常在图2的225被图示)。特别是对于所说明的例子,指令处理模块100包括八位操纵模块240。每个位操纵模块240被布置成从源数据寄存器210选择一个数据位并且对所选择的数据位执行位操纵操作,包括选择用于所选择的数据的操纵值,以及输出所选择的操纵值。
图3更详细地图示了位操纵模块240的例子。所说明例子的位操纵模块240包括第一复用器310,第一复用器310被布置成在其数据输入处(通常在312被图示)接收存储在源数据寄存器210内的数据位。例如,第一复用器310的数据输入312可以可操作地耦合到图2的源数据寄存器210,并且因此能够直接访问存储在其中的数据位。替代地,第一复用器310的数据输入312可以可操作地耦合到数据操纵缓冲器(未示出),并且一旦接收到数据操纵指令,则指令处理模块100可被布置成将存储在源数据寄存器中的数据位加载到数据操纵缓冲器中。在所说明的例子中,第一复用器310的数据输入312被布置成接收存储在32位源数据寄存器210中的所有32位的数据。第一复用器310进一步被布置成在该复用器的控制输入314处接收至少一个控制位305,并且根据所接收到的控制位305的值来选择性地输出在其数据输入312处接收到的数据位的其中一个。对于所说明的例子,为了该第一复用器310从32个接收到的数据位选择一个数据位,该第一复用器310被布置成接收5个控制位305,5个控制位305的值定义了在0和31之间(十进制)的5位二进制值;0至31的可用值中的每个对应于32个接收到的数据位中的一个。
在所说明的例子中,位操纵模块240进一步包括第二复用器320,第二复用器320被布置成根据所述至少其它控制位330的所述值,选择性地输出由所述第一复用器310选择性地输出的用于所述位315的操纵值325。对于所说明的例子,第二复用器320被布置成在其控制输入处接收候选值,所述候选值包括由所述第一复用器310选择性地输出的位315和至少一个其它候选操纵值。第二复用器320进一步被布置成:在该复用器的控制输入处接收至少一个控制位330;以及选择性地输出由所述第一复用器310选择性地输出的位315或者至少一个其它操纵值中的一个。对于所说明的例子,第二复用器320被布置成在其数据输入处接收除了由所述第一复用器310选择性地输出的所述位315之外的其它候选操纵值,包括值“0”的位值322、“1”的位值324以及在输出数据寄存器(例如如在下面更详细地描述的)内的目标位单元的位值。因此对于所说明的例子,为了第二复用器320选择四个接收到的候选操纵值中的一个,该第二复用器320被布置成接收两个控制位330,两个控制位330的值定义了在0和3之间(十进制)的2位二进制值,0至3可用值中的每个对应于4个接收到的候选操纵位中的一个。位操纵模块240然后输出用于所选择的位的所选择的操纵值325。
返回参照图2,由位操纵模块240输出的所选择的位315的所选择的操纵值325随后被存储在一个或多个输出数据寄存器内。对于所说明的例子,所选择的操纵值325被存储到32位的输出数据寄存器230中,并且可以预期根据偏移值,所选择的操纵值325可通过部分“写入”操纵被存储在输出数据寄存器230内的位置处。特别对于所说明的例子,由于所说明例子的八位操纵模块240输出了八个选择操纵值325(也就是说,每位操纵模块值),所以八个选择操纵值325可被布置到字节中,如在245所图示的,并且根据在225被图示的字节偏移值,被存储在输出数据寄存器230内的位置处。对于所说明的例子,指令处理模块100包括位置选择模块250,该位置选择模块250被布置成接收所选择的操纵值325和所述字节偏移值225,并且根据所述字节偏移值255来将所选择的操纵值325存储在输出数据寄存器230内的字节位置235处。例如,在所述位偏移值表示n字节的偏移值的情况下,该字节被存储在寄存器230中的第n个字节位置中。
因此,对于所说明的例子,***纵的数据位可被一次一个字节地加载到输出数据寄存器340中,剩下的字节保持不变。因此,对于所说明的例子,32个位可***纵并且在位操纵指令的四个执行上存储在输出数据寄存器340内。具体地,在这样的位操纵的四个执行之后,可以执行从任何位到任何位的映射以及全32位的寄存器的操纵。
能够将部分结果写入到输出数据寄存器340中,同时如上所述保持剩余部分的寄存器不变(例如,将八个操纵位的值写入所说明例子中的32位寄存器中),向指令提供了附加灵活性,由此使得操纵数据(例如,所说明例子中的字节数据)的连续块能够在连续周期中被写入输出数据寄存器340。在没有这样的将部分结果写入输出数据寄存器340的能力的情况下,有必要将每个结果写入单独的寄存器并且随后使用将部分结果合并到寄存器的附加指令。
根据一些例子,控制位225可以在一个或多个控制数据寄存器内被提供,诸如在图2中的220被图示的。如图3中所示,在所说明的例子中,每个位操纵模块240的控制位225包括第一集合的五个控制位305以用于控制其第一复用器310以选择性地从源数据寄存器210输出位315,以及另一集合的两个控制位330以用于控制其第二复用器320以便有选择性地输出选择位315的操纵值325。因此,对于所说明的例子,每个位操纵模块240被布置成接收七个控制位225。因此,以及如图2中所示,对于所说明例子的指令处理模块100,每个位操纵模块240的七个控制位225可以被存储在八位字节的控制数据寄存器220中,由此使得所有八位操纵模块240的控制位225能够被提供在两个32位控制寄存器220内。以这种方式,可以通过简单地将合适的位值设置在控制寄存器220内来配置来自源寄存器210的数据位的选择、重组以及操纵。
下面是如上文所描述的位操纵指令的语法的例子:
BMANIP DSrc,DCtl1,DCtl2,#字节,DDst
其中,
DSrc识别了源数据寄存器210,要***纵的数据位于该寄存器中;
DCtl1和DCtl2识别了控制数据寄存器220,控制位位于该寄存器中;
DDst识别了输出数据寄存器210,***纵的位值要被存储到该寄存器中;以及
#字节是识别了输出寄存器内的特定字节的字节偏移255,其中***纵的位值要被存储到该输出数据寄存器中。
因此,在一些例子中,所说明例子的指令处理模块100以一种简单且有效的方式实现了灵活的并且可配置的位操纵指令。特别是,通过使得能够从源数据寄存器210内的任何位置选择要***纵的个别位,任何位到任何位的映射被提供,由此允许位重组/交错操作等等被简单有效地编程和执行。此外,通过使得能够选择每个选择位的不同候选操纵值,可以执行各种位操纵的操作,与位重组/交错相隔离或相结合。可以通过使用上文所描述的位操纵指令执行的位重组/操纵的操作包括,例如删余、复制、重复、交错等等。与使用一般指令执行各种位重组程序的常规实现相比,与使用上文所描述的位操纵指令的4个指令周期相比,简单的位交错操作或位反向操作常规地需要64个指令周期。类似地,3位解交错操作常规地需要48个指令周期,并且位到字节的操作常规地需要16个指令周期来实现,而上文所描述的位操纵指令分别只需要三个和一个指令周期。因此,提供了简单、有效并且实质上一般的位重组/操纵指令。
此外,在图3中所说明的例子中,32位的源寄存器内的数据的灵活的并且可配置的位重组/操纵可以只使用八个32-1位的复用器310在硬件中被实现,其中复用器310后面有八个4-1位的复用器320,由此实质上缓解了硬件中已知技术实现的高复杂度问题及其关联的高开发成本和时间问题。
在图3中所说明的例子中,所述(至少一个)指令处理模块100被布置成从一组位315值、位值“0”、位值“1”、以及在所述(至少一个)输出数据寄存器230内的目标位单元的位值中选择用于所述(至少一个)选择位315的操纵值325。可以使候选操纵值的任何替代适当的选择可用,例如选择比如只有位315值和所述输出数据寄存器230内的目标位单元的位值。关于所述输出数据寄存器230内的目标位单元的位值,这样的目标位单元可以包括对应的位单元,所选择的操纵值325要被存储到该位单元中(因此使得该位单元的值能够保持不变)。
现在参照图4,图示了一种在指令处理模块内执行位操纵的方法的例子的简化流程图400,诸如可以实现在图1的指令处理模块100内。该方法开始于410,其中接收到位操纵指令,并且移至420和430,其中对于所说明的例子,分别从这里取回来自一个或多个源数据寄存器的源数据位和来自一个或多个控制寄存器的控制位。例如,源位和控制位可以被加载到各自的缓冲器中,从所述缓冲器,通过比如图2和图3中所图示的诸如位操纵模块的位操纵模块来访问它们。替代地,源数据位和控制数据位的取回可能简单地包括将这样的位操纵模块直接可操作地耦合到各自的源寄存器和控制寄存器,以便位操纵模块从那里直接访问源位和控制位。
为了清楚起见,这样的源位和控制位的取回已经在图4的流程图400中被图示为两个独立的操作420、430。然而,在一些例子中,源数据位的这样的取回可以实质上同时与控制数据位的取回同样地执行,或以与图4中所说明的相反的顺序被执行。
接下来,在440,根据一个或多个控制数据位的值,从源数据寄存器被选择一个或多个源数据位。然后,在450,根据一个或多个其它控制数据位的值,从每个选择的源数据位的候选值选择操纵值。例如,这样的候选值可以包括选择的位的值、位值“0”、位值“1”、以及在输出数据寄存器中的目标位单元的位值。在460,根据在接收到的位操纵指令中提供的位置偏移(例如,字节偏移),选择的操纵值然后被存储在输出数据寄存器中。然后,该方法在470结束。
移至图5,图示了一种在诸如图1的指令处理模块100的指令处理模块内实现位操纵的例子的简化流程图500。该方法开始于510,然后移至520处,在这里位置偏移值(对于所说明的例子,包括字节偏移值)被初始化。例如,该字节偏移值可以被初始化以指示寄存器的第一个字节使操纵值被存储在比如输出寄存器的第一字节内。然后,该方法移至530和540,在这里对于所说明的例子,源数据位和控制位每一个分别被加载到源寄存器和控制寄存器中。
为了清楚起见,将这样的源数据位和控制位加载到各自的寄存器中已经在图5的流程图500中被图示为两个独立的操作530、540。然而,在一些例子中,这样的将源数据位加载到一个或多个源寄存器中实质上可以同时与将控制数据位加载到一个或多个控制寄存器中同样地执行,或以与图5中所说明的相反的顺序被执行。
将源位和控制位加载到它们各自的寄存器中,位操纵指令然后在550被调度执行。如果,在560,需要操纵更多位数据,则该方法移至570,在这里字节偏移值被更新(例如,递增或递减),以使操纵值被存储在比如输出寄存器的下一个字节中。可选地,在575,新的源位和/或控制位可以被加载到它们各自的寄存器中。然后,该方法回到550,在这里其它位操纵指令然后被调度执行。相反,如果在560,不需要操纵其它位数据,则该方法移至580,在这里输出寄存器(***纵的位值已经被存储在其中)的内容被写入例如***存储器中。然后,该方法在590结束。
本发明的至少部分可以在计算机程序中被实现,该计算机程序用于在计算机***上运行,至少包括用于当在例如计算机***的可编程装置上运行时执行一种根据本发明的方法的代码部分,诸如使得可编程的装置能够执行根据本发明的器件或***的功能。
计算机程序是一系列指令,诸如特定应用程序和/或操作***。计算机程序可以例如包括以下中的一个或多个:子例程、函数、程序、对象方法、对象实现、可执行的应用、小程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或被设计用于在计算机***上执行的其它指令序列。
计算机程序可以在计算机可读存储介质上被内部地存储或经由计算机可读传输介质传输到计算机***。所有或一些计算机程序可以被永久地提供在计算机可读介质上或远程地耦合到信息处理***。计算机可读介质可以包括,例如但不限于任何数目的以下:磁存储介质,包括磁盘和磁带存储介质;光学存储介质,诸如光盘介质(例如,CD-ROM、CD-R等等)以及数字视盘存储介质;非易失性存储器存储介质,包括基于半导体的存储器单元,诸如闪速存储器、EEPROM、EPROM、ROM;铁磁数字存储器;MRAM;易失性存储介质,包括寄存器、缓冲器或缓存器、主存储器、等等;以及数据传输介质,包括计算机网络、点对点电信设备、以及载波传输介质,仅举几个例子。
计算机处理通常地包括执行(运行)程序或程序的一部分,当前程序值和状态信息,以及通过操作***用于管理处理的执行而使用的资源。操作***(OS)是管理计算机的资源共享以及给程序员提供用于访问那些资源的界面的软件。操作***处理***数据和用户输入,以及通过分配和管理任务以及内部***资源作为对***的用户和程序的服务来作出响应。
计算机***可以例如包括至少一个处理单元、关联的存储器和多个输入/输出(I/O)器件。当执行计算机程序时,计算机***根据计算机程序处理信息并且经由I/O器件产生所得到的输出信息。
在前面的说明中,已经参照本发明实施例的特定例子对本发明进行了描述。然而,将明显的是,在不脱离如所附权利要求中陈述的发明的较宽精神及范围的情况下,可以在其中做出各种修改和变化。
如在此讨论的连接可以是适于例如经由中间器件传输来自或去往相应的节点、单元或器件的信号的任何类型的连接。因此,除非暗示或另外表明,所述连接例如可以是直接连接或间接连接。所述连接可以被图示或描述为涉及单一连接、多个连接、单向连接、或双向连接。然而,不同实施例可以改变连接的实现。例如,可以使用单独单向连接而不是双向连接,并且反之亦然。而且,多个连接可以被替换为连续地或以时间复用方式传输多个信号的单一连接。同样地,携带多个信号的单一连接可以被分离成携带这些信号的子集的各种不同的连接。因此,存在用于传输信号的许多选项。
虽然在例子中已经描述了具体导电类型或电位极性,但是将理解导电类型和电位极性可以是相反的。
在此描述的每个信号可以被设计为正逻辑或负逻辑。在负逻辑信号的情况下,所述信号是活跃低,其中所述逻辑真状态对应于逻辑电平0。在正逻辑信号的情况下,所述信号是活跃高,其中所述逻辑真状态对应于逻辑电平1。注意,在此描述的任何信号可以被设计为负逻辑信号或正逻辑信号。因此,在替代实施例中,被描述为正逻辑信号的那些信号可以被实现为负逻辑信号,以及被描述为负逻辑信号的那些信号可以被实现为正逻辑信号。
本领域技术人员将认识到:逻辑块之间的界限仅仅是说明性的并且替代实施例可以合并逻辑块或电路元件或在各种逻辑块或电路元件上强加替代的分解功能。因此,应了解,在此描述的架构仅仅是示例性的,并且事实上可以实现实现相同功能的很多其它架构。例如,为了清楚和易于描述,图2的位操作模块240和字节选择模块250已经被说明和描述为单独的、实质上独立的功能逻辑块。然而,将了解由此提供的功能可以被分布遍及于任何数目和配置的物理逻辑块。
为了实现相同功能的任何组件的布置是有效地“关联”使得所需的功能得以实现。因此,在此组合以实现特定功能的任何两个组件可以被看作彼此“相关联”使得所需的功能得以实现,而不论架构或中间组件。同样地,如此关联的任何两个组件还可以被认为是彼此被“可操作连接”或“可操作耦合”以实现所需的功能。
此外,本领域所属技术人员将认识到以上描述的操作之间的界限只是说明性的。多个操作可以组合成单一的操作,单一的操作可以分布在附加操作中并且可以至少部分地在时间上重叠地执行操作。而且,替代实施例可以包括特定操作的多个例子,并且操作的顺序在各种其它实施例中可以更改。
又例如,例子或其一部分可以以诸如任何合适类型的硬件描述语言被实现为软或代码表示的物理电路,或能够转化成物理电路的逻辑表示。
而且,本发明不限于在非可编程硬件中实现的物理器件或单元,但也可以应用在能够通过根据适当的程序代码操作来执行所需的器件功能的可编程器件或单元中,诸如主机、微型计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏、汽车和其它嵌入式***、手机和各种其它无线器件,在本申请中通常表示“计算机***”。
然而,其它修改、变化和替代也是可能的。说明书和附图相应地被认为是从说明性的而不是限制性意义。
在权利要求中,放置在括号之间的任何参照符号不得被解释为限制权利要求。单词“包括”不排除除了权利要求中列出的那些之外的其它元件或步骤的存在。此外,如在此使用的词语“一”或“一个”被定义为一个或不止一个。而且,即使当同一权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词时,在权利要求中诸如“至少一个”以及“一个或多个”的介绍性短语的使用也不应该被解释成暗示通过不定冠词“一”或“一个”引入的其它权利要求元素将包括这样介绍的权利要求元素的任何特定权利要求限制成仅包含一个这样的元素的发明。对于定冠词的使用也是如此。除非另有说明,使用诸如“第一”以及“第二”的术语来任意地区分这样的术语描述的元素。因此,这些术语不一定旨在指示这样的元素的时间或其它优先次序。在相互不同的权利要求中记载某些措施的事实并不指示这些措施的组合不能被用于获取优势。

Claims (17)

1.一种集成电路器件(105),包括至少一个指令处理模块(100),所述指令处理模块(100)被布置成接收位操纵指令,并且响应于接收到所述位操纵指令:
根据至少一个控制位(305)的值,从至少一个源数据寄存器(210)选择至少一个位(315);
根据至少一个其它控制位(330)的值,从候选值(315、322、324、326)选择用于所述至少一个选择位(315)的操纵值(325);以及
将用于所述至少一个选择位(315)的所选择的操纵值(325)存储在至少一个输出数据寄存器(230)中。
2.根据权利要求1所述的集成电路器件(105),其中所述至少一个指令处理模块(100)包括至少一个位操纵模块(240),所述位操纵模块(240)被布置成:根据所述至少一个控制位(305)的所述值,从所述至少一个源数据寄存器(210)选择所述至少一个位(315);根据所述至少一个其它控制位(330)的所述值,选择用于所述至少一个选择位(315)的所述操纵值(325);以及响应于所述指令处理模块(100)接收到所述位操纵指令,输出用于所述至少一个选择位(315)的所选择的操纵值(325)。
3.根据权利要求2所述的集成电路器件(105),其中所述至少一个位操纵模块(240)包括:
第一复用器(310),所述第一复用器(310)被布置成根据所述至少一个控制位(305)的所述值,从所述至少一个源数据寄存器(210)选择性地输出所述至少一个位(315);以及
第二复用器(320),所述第二复用器(320)被布置成根据所述至少一个其它控制位(330)的所述值,选择性地输出由所述第一复用器(310)选择性地输出的所述位(315)的所选择的操纵值(325)。
4.根据权利要求3所述的集成电路器件(105),其中所述至少一个位操纵模块(240)的所述第一复用器(310)被布置成根据5位控制信号,从32位源寄存器输出所述至少一个位(315)。
5.根据任何前述权利要求所述的集成电路器件(105),其中所述至少一个指令处理模块(100)被布置成从一组候选值选择用于所述至少一个选择位(315)的操纵值(325),所述组包括来自包括下列的组的至少一个:
所选择的位(315)的值;
位值“0”;
位值“1”;以及
在所述至少一个输出数据寄存器(230)中的目标位单元的位值。
6.根据任何前述权利要求所述的集成电路器件(105),其中从至少一个控制数据寄存器(220)取回所述至少一个控制位(305)和所述至少一个其它控制位(330)的所述值。
7.根据任何前述权利要求所述的集成电路器件(105),其中所述至少一个指令处理模块(100)被布置成根据偏移值(255),将用于所述至少一个选择位(315)的所选择的操纵值(325)存储在所述至少一个输出数据寄存器(230)内的位置处。
8.根据权利要求7所述的集成电路器件(105),其中所述至少一个指令处理模块(100)包括至少一个位置选择模块(250),所述位置选择模块(250)被布置成根据所述偏移值(255),将用于所述至少一个选择位(315)的所选择的操纵值(325)存储在所述至少一个输出数据寄存器(230)内的位置处。
9.根据任何前述权利要求所述的集成电路器件(105),其中所述至少一个指令处理模块(100)包括:
多个八位操纵模块(240),所述多个八位操纵模块(240)中的一些被布置成:根据所述至少一个控制位(305)的所述值,从所述至少一个源数据寄存器(210)选择所述至少一个位(315);根据所述至少一个其它控制位(330)的所述值,选择所述至少一个选择位(315)的所述操纵值(325);以及响应于所述指令处理模块(100)接收到位操纵指令,输出用于所述至少一个选择位(315)的所选择的操纵值(325)。
10.根据权利要求9所述的集成电路器件(105),其中所述至少一个指令处理模块(100)进一步包括:
字节选择模块(250),所述字节选择模块(250)被布置成存储由所述八位操纵模块(240)输出的八个选择的操纵值(325),以及根据字节偏移值(255),作为字节将所述操纵值(325)存储在所述至少一个输出数据寄存器(230)内的位置处。
11.根据任何前述权利要求所述的集成电路器件(105),其中所述至少一个指令处理模块(100)被布置成:通过部分写入操作,将用于所述至少一个选择位(315)的所选择的操纵值(325)存储在至少一个输出数据寄存器(230)中。
12.一种执行位操纵的方法(400),所述方法包括,在指令处理模块内,响应于接收到位操纵指令(410):
根据至少一个控制位的值,从至少一个源数据寄存器选择至少一个位(440);
根据至少一个其它控制位的值,从候选值中选择所述至少一个选择位的操纵值(450);以及
将用于所述至少一个选择位的所选择的操纵值存储在至少一个输出数据寄存器中(460)。
13.根据权利要求12所述的方法(400),其中所述方法包括从一组候选值选择用于所述至少一个选择位的操纵值(450),所述组包括下列中的至少一个:
所选择的位(315)的值;
位值“0”;
位值“1”;
在所述至少一个输出数据寄存器内的目标位单元的位值。
14.根据权利要求12或权利要求13所述的方法(400),其中所述方法进一步包括:从至少一个控制数据寄存器取回所述至少一个控制位和所述至少一个其它控制位的所述值(430)。
15.根据权利要求14所述的方法(400),其中所述方法进一步包括:根据偏移值,将用于所述至少一个选择位的所选择的操纵值存储在所述至少一个输出数据寄存器内的位置处(460)。
16.一种在指令处理模块中实现位操纵的方法(500),所述方法包括:
将要***纵的数据位加载到至少一个源数据寄存器中(530);以及
通过所述指令处理模块调度要执行的至少一个位操纵指令(550),
其中所述至少一个位操纵指令使得:
根据至少一个控制位的值,从所述至少一个源数据寄存器选择至少一个位(440);
根据至少一个其它控制位的值,从候选值选择所述至少一个选择位的操纵值(450);以及
将用于所述至少一个选择位的所选择的操纵值存储在至少一个输出数据寄存器中(460)。
17.根据权利要求16所述的方法(400),其中所述方法进一步包括:将所述控制位的所述值加载到至少一个控制数据寄存器中(540)。
CN201180069849.9A 2011-03-30 2011-03-30 集成电路器件和执行其位操纵的方法 Expired - Fee Related CN103460181B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2011/051353 WO2012131433A1 (en) 2011-03-30 2011-03-30 Integrated circuit device and methods of performing bit manipulation therefor

Publications (2)

Publication Number Publication Date
CN103460181A true CN103460181A (zh) 2013-12-18
CN103460181B CN103460181B (zh) 2017-10-24

Family

ID=46929550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180069849.9A Expired - Fee Related CN103460181B (zh) 2011-03-30 2011-03-30 集成电路器件和执行其位操纵的方法

Country Status (4)

Country Link
US (1) US9639362B2 (zh)
EP (1) EP2691850B1 (zh)
CN (1) CN103460181B (zh)
WO (1) WO2012131433A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304899B1 (en) * 2012-08-24 2016-04-05 Altera Corporation Network interface circuitry with flexible memory addressing capabilities
US10296334B2 (en) * 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit gather
US10296489B2 (en) * 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit shuffle
WO2019046710A1 (en) * 2017-08-31 2019-03-07 MIPS Tech, LLC UNIFIED LOGIC FOR PSEUDONYM PROCESSOR INSTRUCTIONS
US20190065202A1 (en) 2017-08-31 2019-02-28 MIPS Tech, LLC Pointer-size controlled instruction processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278931A (zh) * 1997-09-17 2001-01-03 索尼电子有限公司 特别适于译码数字音频信号的数字信号处理器
WO2001038974A1 (en) * 1999-11-23 2001-05-31 Sony Electronics Inc. Method and apparatus for extracting and depositing a string of bits from a source into a destination
TW200627265A (en) * 2004-10-06 2006-08-01 Sony Computer Entertainment Inc Bit manipulation method, apparatus and system
CN101620525A (zh) * 2003-06-30 2010-01-06 英特尔公司 混洗数据的方法和装置
US20100318771A1 (en) * 2009-06-11 2010-12-16 Ranganathan Sudhakar Combined byte-permute and bit shift unit

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5704052A (en) 1994-11-06 1997-12-30 Unisys Corporation Bit processing unit for performing complex logical operations within a single clock cycle
US6745319B1 (en) 2000-02-18 2004-06-01 Texas Instruments Incorporated Microprocessor with instructions for shuffling and dealing data
US20030105945A1 (en) 2001-11-01 2003-06-05 Bops, Inc. Methods and apparatus for a bit rake instruction
US7155601B2 (en) 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
US6760822B2 (en) 2001-03-30 2004-07-06 Intel Corporation Method and apparatus for interleaving data streams
US8463837B2 (en) * 2001-10-29 2013-06-11 Intel Corporation Method and apparatus for efficient bi-linear interpolation and motion compensation
US20040254966A1 (en) * 2003-05-16 2004-12-16 Daewoo Educational Foundation Bit manipulation operation circuit and method in programmable processor
JP4374363B2 (ja) * 2006-09-26 2009-12-02 Okiセミコンダクタ株式会社 ビットフィールド操作回路
US8285766B2 (en) 2007-05-23 2012-10-09 The Trustees Of Princeton University Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278931A (zh) * 1997-09-17 2001-01-03 索尼电子有限公司 特别适于译码数字音频信号的数字信号处理器
WO2001038974A1 (en) * 1999-11-23 2001-05-31 Sony Electronics Inc. Method and apparatus for extracting and depositing a string of bits from a source into a destination
CN101620525A (zh) * 2003-06-30 2010-01-06 英特尔公司 混洗数据的方法和装置
TW200627265A (en) * 2004-10-06 2006-08-01 Sony Computer Entertainment Inc Bit manipulation method, apparatus and system
US20100318771A1 (en) * 2009-06-11 2010-12-16 Ranganathan Sudhakar Combined byte-permute and bit shift unit

Also Published As

Publication number Publication date
US20140013088A1 (en) 2014-01-09
EP2691850B1 (en) 2018-05-16
CN103460181B (zh) 2017-10-24
US9639362B2 (en) 2017-05-02
EP2691850A1 (en) 2014-02-05
EP2691850A4 (en) 2015-06-03
WO2012131433A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
JP6849274B2 (ja) 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック
RU2636675C2 (ru) Команды, процессоры, способы и системы доступа множественных регистров к памяти
CN108351786B (zh) 在指令集架构中对数据进行排序并且合并经排序数据
BR102020019657A2 (pt) aparelhos, métodos e sistemas para instruções de um acelerador de operações de matriz
US9378182B2 (en) Vector move instruction controlled by read and write masks
US20090282214A1 (en) Network On Chip With Low Latency, High Bandwidth Application Messaging Interconnects That Abstract Hardware Inter-Thread Data Communications Into An Architected State of A Processor
US20110231616A1 (en) Data processing method and system
CN104834503A (zh) 具有粒度的增加立即数能力的处理器和方法
EP3757769B1 (en) Systems and methods to skip inconsequential matrix operations
US10579514B2 (en) Alignment based block concurrency for accessing memory
RU2639695C2 (ru) Процессоры, способы и системы для осуществления доступа к набору регистров либо как к множеству малых регистров, либо как к объединенному большому регистру
US20140331032A1 (en) Streaming memory transpose operations
US20200042321A1 (en) Low power back-to-back wake up and issue for paired issue queue in a microprocessor
CN103460181A (zh) 集成电路器件和执行其位操纵的方法
US20150169494A1 (en) Data path configuration component, signal processing device and method therefor
US20220100760A1 (en) Acceleration of data queries in memory
CN109983443B (zh) 实现分叉非易失性存储器快速驱动器的技术
US10635444B2 (en) Shared compare lanes for dependency wake up in a pair-based issue queue
EP3929732A1 (en) Matrix data scatter and gather by row
KR910001708B1 (ko) 중앙처리장치
TW201706830A (zh) 處理編碼格式以直譯關於群組指令的資訊
US11775310B2 (en) Data processing system having distrubuted registers
US20200210172A1 (en) Dynamic configuration of a data flow array for processing data flow array instructions
US20210042111A1 (en) Efficient encoding of high fanout communications
WO2009136402A2 (en) Register file system and method thereof for enabling a substantially direct memory access

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180224

Address after: texas

Patentee after: NXP America Co Ltd

Address before: Texas in the United States

Patentee before: Fisical Semiconductor Inc.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171024

Termination date: 20190330

CF01 Termination of patent right due to non-payment of annual fee