一种数据处理装置(2)包含一处理电路(4)及指令译码器(6)。位域操纵指令控制该处理装置(2)从相应第一源数据元素src1及第二源数据元素src2产生至少一个结果数据元素。每一个结果数据元素包括对应于该相应第一源数据元素src1的位域bf的部分。比所插入的位域bf更有效的结果数据元素的位具有前缀值p,基于由该指令所指定的控制值选择该前缀值p,作为第一前缀值、第二前缀值及第三前缀值中的一个前缀值,该第一前缀值具有零值,该第二前缀值具有该相应第二源数据元素src2的一部分的值,该第三前缀值对应于该第一源数据元素src1的该位域bf的符号扩展。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术关于数据处理的领域。
技术介绍
在数据处理系统中,数据值有时可含有若干相邻位,这些位的值独立于数据值的其余位而受关注。这样一组相邻位可被认为是位域(bitfield),且该组中的相邻位的数目可被认为是位域的宽度。例如,表示RGB色值的数据值可包括分别表示红色成分、绿色成分及蓝色成分的位域。有时,可能希望操纵含有位域的数据值以便将位域与该位域的周围隔离。例如,有人可能希望仅提取或替换RGB色值中的绿色成分。本技术试图提供位域操纵指令的有效编码,该位域操纵指令可控制处理装置执行各式各样不同种类的位域操纵。在本申请案中,记法<X:Y>指示从位位置X处的最高有效位延伸至位位置Y处的最低有效位的一组相邻位。由<X:Y>所描述的组宽度为X-Y+1位。例如,表述〈4:0>指示位位置4至0处的5位宽度, 其中位〈4>比位〈0>更有效。应注意,记法<X:Y>并非暗示储存位置内的位的任何特定储存次序,因为储存次序不必与有效性的次序相同(例如,可使用大端或小端储存格式)。在本申请案中,跟随有一系列I及0的前缀Ob表示二进制记数法中的数值。例如,ObllO表示十进制记数法中的值6。
技术实现思路
从一个方面来看,本专利技术提供一种数据处理装置,该数据处理装置包含:处理电路,该处理电路被配置为执行处理操作;指令译码器,该指令译码器响应于程序指令产生用于控制该处理电路执行所述处理操作的控制信号;其中:所述程序指令包括位域操纵指令,该位域操纵指令至少识别第一源数据值、第二源数据值及控制值,该第第一源数据值包含各自具有N位〈N-1: 0>的至少一个第一源数据元素,该第二源数据值包含各自具有N位〈N-1: 0>的至少一个第二源数据元素;该控制值包括用于指示位域宽度W、源位位置A及结果位位置B的信息,其中l^ff^N,0^A^ (N-W)及 0 < B < (N-W);以及该指令译码器响应于该位域操纵指令以产生用于控制该处理电路产生结果数据值的控制信号,该结果数据值包含至少一个结果数据元素,每个结果数据元素对应于相应第一源数据元素及相应第二源数据元素,每个结果数据元素具有N位〈N-1: 0>,这些位包含:(a)具有与该相应第一源数据元素的位<A+W-1:A>相对应的位值的位<B+W-1:B> ;以及(b)若B+W〈N,则为具有与前缀值相对应的位值的位〈N-1:B+W>,根据该控制值选择该前缀值为以下中的一者:(i)第一前缀值,该第一前缀值包含各自具有零值的位,(ii)第二前缀值,该第二前缀值具有该相应第二源数据元素的位<N-1:B+W>的位值,以及(iii)第三前缀值,该第三前缀值具有与该相应第一源数据元素的位<A+W-1:A>的符号扩展相对应的位值。处理装置被提供有处理电路及指令译码器,该指令译码器响应于位域操纵指令以控制处理电路执行位域操纵操作。位域操纵指令至少识别第一源数据值及第二源数据值,该第一源数据值包含至少一个第一源数据元素,该第二源数据值包含至少一个第二源数据元素。响应于位域操纵指令,处理电路被控制来产生结果数据值,该结果数据值包含至少一个结果数据元素。每一个第一源数据元素、第二源数据元素及结果数据元素具有N位<N-1:0>。每一个N位结果数据元素包括W位〈B+W-1:B〉,所述W位〈B+W-1:B〉具有与第一源数据值的相应第一源数据元素的位<A+W-1:A>相对应的位值。因此,每一个结果数据元素包括自相应第一源数据元素提取的W位位域。源位位置A指示第一源数据元素内位域的最低有效位的位置,结果位位置B指示结果数据元素内位域的最低有效位,且位域宽度W指示位域所包含的位数目。量A、量B及量W位于I彡W彡N,0彡A彡N-W及0彡B彡N-W的范围内,且由位域操纵指令内的控制值识别。控制值可直接识别A、B及W,或使用可用于推导A、B及W的任何参数组间接识别A、B及W。应注意,控制值不必为位域操纵指令编码内的一组连续的位,但亦可包含分布于指令编码中各处的两组或更多组的位。若控制值指示B+W < N,则每一个结果数据元素将包括前缀部分,该前缀部分包含位比结果数据元素内位域的最高有效位〈B+W-1〉更有效的<N-1:B+W>。本技术为设定前缀部分的位值提供了不同的选择。位域操纵指令的控制值包括指示何种类型的前缀部分将用于特定位域操纵的信息。根据控制值,前缀值被选择为第一前缀值、第二前缀值及第三前缀值中的一个。第一前缀值包含各自具有零值的位。当选定第一前缀值时,每一个结果数据元素含有从该相应源数据元素提取的位域,其中比 该位域更有效的任何位被设定为O。此举可用于隔离源数据元素的位域,以便可以与源数据元素的其他部分相分离地来处理该位域的值。第二前缀值具有该相应第二源数据元素的位<N-1:B+W>的位值。因此,当选定第二前缀值时,则位域操纵产生这样的结果,该结果等效于将第一源数据元素的位域插入第二源数据元素内,其中第二源数据元素的任何更有效的位保持无变化。此举可用于将两个或两个以上数据值的各部分组合成为单个数据值。例如,通过使用第二前缀形式的位域操纵指令将与另外两种成分相对应的位域插入含有RGB成分中的一种成分的数据值内,可从分离的RGB成分值组装成组合RGB色值。第三前缀值具有与相应第一源数据元素的位<A+W-1:A>的符号扩展相对应的位值。此举适用于表示带符号值的位域,因为当符号扩展被包括于结果数据元素内时符号扩展保存第一源数据元素的位域的符号。例如,若自第一源数据元素提取的位域<A+W-1:A>表示负数,则由第三前缀值提供的符号扩展维持结果数据元素内的位域的负号。通过选择第一前缀值、第二前缀值及第三前缀值中的合适的一个前缀值,可通过相同的位域操纵指令来对不同种类的位域操纵编码。由于单个位域操纵指令可提供多个不同的操纵操作,故可高效率地使用指令集的编码空间。熟习此项技术者将了解:用于实施位域操纵指令的硬件可具有各式各样的不同形式,且处理电路及指令译码器可包含用于产生具有上述形式的至少一个结果数据元素的结果值的任何种类的硬件。取决于用于数据值的符号表示的类型,第三前缀值的符号扩展位可具有不同形式。然而,在一个示例中,第三前缀值可包含各自具有相应第一源数据元素的位〈A+W-1〉的位值的位。在许多二进制带符号数表示中,指示数据值为正或为负的符号位为该数据值的最高有效位。自第一源数据元素提取的位域的最高有效位为位〈A+W-1〉,且因此通过在第三前缀值的各位中复制该位,当将该位域插入结果数据值内时,被提取位域的符号得到维持。若控制值将结果位位置B定义为大于0,则结果数据元素具有这样的后缀部分,该后缀部分包括不及位域的最低有效位〈B〉有效的至少一个位〈B-1: 0>。根据控制值,后缀值可被选定为第一后缀值及第二后缀值中的一个,该第一后缀值包含各自具有零值的位,该第二后缀值具有相应第二源数据元素的位的位值。通过选择第一后缀值,可将位域在结果数据元素内与具有零值的较低有效位隔离。通过使用第二后缀值,位域操纵将第一源数据元素的本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:戴维·詹姆斯·西尔,理查德·罗伊·格里森思怀特,奈杰尔·约翰·斯蒂芬斯,
申请(专利权)人:ARM有限公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。