CN105892993B - 基于提取插入操作的重组方法、装置及微处理器 - Google Patents
基于提取插入操作的重组方法、装置及微处理器 Download PDFInfo
- Publication number
- CN105892993B CN105892993B CN201610184867.6A CN201610184867A CN105892993B CN 105892993 B CN105892993 B CN 105892993B CN 201610184867 A CN201610184867 A CN 201610184867A CN 105892993 B CN105892993 B CN 105892993B
- Authority
- CN
- China
- Prior art keywords
- data
- operand
- reorganization
- type
- register
- 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.)
- Active
Links
- 238000003780 insertion Methods 0.000 title claims abstract description 150
- 230000037431 insertion Effects 0.000 title claims abstract description 150
- 238000005215 recombination Methods 0.000 title claims abstract description 70
- 230000006798 recombination Effects 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000000605 extraction Methods 0.000 claims abstract description 127
- 230000008521 reorganization Effects 0.000 claims description 130
- 239000000284 extract Substances 0.000 abstract description 6
- 238000011112 process operation Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 230000008707 rearrangement Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
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)
Abstract
本发明提供一种基于提取插入操作的重组方法、装置及微处理器,该方法中,通过解析提取插入操作指令,根据指示操作方式的第一类操作数确定出操作方式具体为提取和/或插入操作、根据第二类操作数确定出源寄存器和/或目的寄存器,以及根据第三类操作数据确定出重组方式,然后,根据第一类操作数执行数据操作,根据第三类操作数指示的重组方式执行重组。该过程中,在进行数据操作的同时,还对数据操作过程中涉及到的寄存器中存储数据的进行数据位置重组、数据内容重组,在一定程度上提升了微处理器的功能。
Description
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种基于提取插入操作的重组方法、装置及微处理器。
背景技术
为提升微处理器的功能,需要对微处理器设计功能强大的新指令。例如,为实现数据操作,设计提取指令、插入指令、提取且插入指令等,从而实现对数据的提取操作、插入操作、提取且插入操作等。
具体的,提取指令用于从一个较长的数据中,提取出一个较短的数据,例如,从一个64位的源寄存器中提取出一个8位的数据,并将提取出的数据放到目的寄存器的低8位;插入指令用于将一个较短的数据插入到一个较长的数据中,例如,将一个源寄存器的低8位的数据插入到长度为64位的目的寄存器的某个位置;提取且插入指令,用于从源寄存器中提取出数据,并将提取出的数据插入到目的寄存器的某个位置。
然而,上述数据操作过程中,仅对数据进行提取操作、插入操作或提取且插入操作,提升的功能有限。
发明内容
本发明提供一种基于提取插入操作的重组方法、装置及微处理器,实现数据操作的同时,提升微处理器的功能。
第一个方面,本发明实施例提供一种基于提取插入操作的重组方法,包括:
解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一类操作数,指示源寄存器和/或目的寄存器的第二类操作数,以及指示重组方式的第三类操作数;
根据所述第一类操作数,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作;以及根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组;
其中,所述重组方式包括:数据内容重组和数据位置重组中的至少一种;所述数据内容重组包括:对源寄存器执行提取操作后提取出的数据进行内容重组和对目的寄存器执行插入操作前对将要插入的数据执行内容重组;所述数据位置重组包括:对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组和对目的寄存器中执行插入操作前存储数据的数据位置进行重组中的至少一种。
可选的,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为所述对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组;
所述根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
将所述源寄存器中所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置左侧的位置向右移动所述操作宽度;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置右侧的数据向左移动所述操作宽度。
可选的,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据内容重组,所述数据内容重组具体为对所述源寄存器中执行提取操作后所述操作宽度的数据对应的位置进行重组;
所述根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
将所述源寄存器中所述操作宽度的数据对应的位置置1;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置置0。
可选的,上述方法还包括:对所述操作宽度的数据执行所述数据内容重组。
可选的,所述第一类操作数还包括插入位置、操作宽度、待插入数据;所述第一类操作数具体指示对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述待插入数据插入所述目的寄存器,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为对目的寄存器中执行插入操作前存储数据的数据位置进行重组;
根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
将所述目的寄存器中所述插入位置,以及所述插入位置左侧的位置向左移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置;
或者,
将所述目的寄存器中所述插入位置,以及所述插入位置右侧的位置向右移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置。
可选的,上述方法还包括:
对所述待插入数据执行所述数据内容重组。
可选的,所述第一类操作数还包括提取位置、操作宽度、插入位置;所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据、对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述操作宽度的数据插入所述目的寄存器;所述第三类操作数指示的重组方式具体为所述数据位置重组和/或所述数据内容重组;
所述根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
对所述源寄存器以及所述目的寄存器中存储数据的数据位置执行数据位置重组,和/或,对所述操作宽度的数据执行数据内容重组。
第二个方面,本发明实施例提供一种基于提取插入操作的重组装置,包括:
译码部件,解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一类操作数,指示源寄存器和/或目的寄存器的第二类操作数,以及指示重组方式的第三类操作数;
操作单元,用于根据所述第一类操作数,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作;以及根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组;
其中,所述重组方式包括:数据内容重组和数据位置重组中的至少一种;所述数据内容重组包括:对源寄存器执行提取操作后提取出的数据进行内容重组和对目的寄存器执行插入操作前对将要插入的数据执行内容重组;所述数据位置重组包括:对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组和对目的寄存器中执行插入操作前存储数据的数据位置进行重组中的至少一种。
可选的,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为所述对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组;
所述操作单元,具体用于将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置左侧的位置向右移动所述操作宽度;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置右侧的数据向左移动所述操作宽度。
可选的,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据内容重组,所述数据内容重组具体为对所述源寄存器中执行提取操作后所述操作宽度的数据对应的位置进行重组;
所述操作单元,具体用于:
将所述源寄存器中所述操作宽度的数据对应的位置置1;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置置0。
可选的,所述操作单元,还用于对所述操作宽度的数据执行所述数据内容重组。
可选的,所述第一类操作数还包括插入位置、操作宽度、待插入数据;所述第一类操作数具体指示对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述待插入数据插入所述目的寄存器,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为对目的寄存器中执行插入操作前存储数据的数据位置进行重组;
所述操作单元,具体用于将所述目的寄存器中,所述插入位置,以及所述插入位置左侧的位置向左移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置;
或者,
将所述目的寄存器中所述插入位置,以及所述插入位置右侧的位置向右移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置。
可选的,所述操作单元,还用于对所述待插入数据执行所述数据内容重组。
可选的,所述第一类操作数还包括提取位置、操作宽度、插入位置;所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据、对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述操作宽度的数据插入所述目的寄存器;所述第三类操作数指示的重组方式具体为所述数据位置重组和/或所述数据内容重组;
所述操作单元,具体用于对所述源寄存器以及所述目的寄存器中存储数据的数据位置执行数据位置重组,和/或,对所述操作宽度的数据执行数据内容重组。
第三个方面,本发明实施例提供一种微处理器,包括如上第二个方面或第二个方面任一种可能的方式实现的基于提取插入操作的重组装置。
本发明实施例提供的基于提取插入操作的重组方法、装置及微处理器,通过解析指令获得包括操作方式及重组方式的控制信号,然后,根据操作方式进行数据操作,根据重组方式对数据操作对应的寄存器中存储的数据进行重组。该过程中,在进行数据操作的同时,还对数据操作过程中涉及到的寄存器中存储数据的进行数据位置重组、数据内容重组,在一定程度上提升了微处理器的功能。
附图说明
图1A现有技术中提取操作的过程示意图;
图1B为现有技术中插入操作的过程示意图;
图1C为现有技术中提取且插入操作的过程示意图;
图2为本发明基于提取插入操作的重组方法实施例一的流程图;
图3A为本发明基于提取操作的重组过程示意图;
图3B为本发明基于插入操作的重组过程示意图;
图3C为本发明基于提取且插入操作的重组过程示意图;
图4为本发明基于提取插入操作的重组装置实施例一的结构示意图。
具体实施方式
目前,数据操作过程中,仅对数据进行提取操作、插入操作或提取且插入操作,提升的功能有限。
例如,提取操作过程中,微处理器根据提取指令的控制信号,从较长的寄存器中提取出一个较短的数据,具体可参见图1A,图1A现有技术中提取操作的过程示意图。请参照图1A,源寄存器为64位,存储A、B、C、D四个数据,且A至B为高有效位(Most Significant Bit,MSB)至低有效位(LeastSignificant Bit,LSB);控制信号指示操作宽度为16位,提取位置为第2个数据。此时,进行提取操作时,将源寄存器中的第2个数据(即数据C)提取出来,并将提取出来的数据放到目的寄存器的低16位。
再如,插入操作过程中,微处理器根据插入指令的控制信号,将较短的数据插入到另一个较长的寄存器中,具体可参见图1B,图1B为现有技术中插入操作的过程示意图。请参照图1B,源寄存器1、源寄存器2以及目的寄存器均为64位;控制信号指示操作宽度为16位,插入位置为第2个数据。此时,进行插入操作时,将源寄存器1的低16位数据,即数据E作为待插入数据,并将该待插入数据插入到源寄存器2的第2个数据,即用数据E覆盖数据C。该过程中,源寄存器2同时作为目的寄存器。
又如,提取且插入操作过程中,微处理器根据提取且插入指令的控制信号,从源寄存器中提取出一个数据,并将提取出的数据插入到目的寄存器的某个位置,具体可参见图1C,图1C为现有技术中提取且插入操作的过程示意图。请参照图1C,源寄存器1中存储被提取的数据,源寄存器2中存储被插入的数据,控制信号指示操作宽度为16位,提取位置为第3个数据,插入位置为第2个数据。此时,进行提取且插入操作时,将源寄存器1的第3个数据,即数据C提取出来,并将数据C插入到源寄存器2的第2个数据,即用数据B覆盖数据F。该过程中,源寄存器2同时作为目的寄存器。
然而,上述数据操作过程中,仅对数据进行提取操作、插入操作或提取且插入操作,提升的功能有限。有鉴于此,本发明提供一种基于提取插入操作的重组方法、装置及微处理器,实现数据操作的同时,提升微处理器的功能。具体的,可参见图2。
图2为本发明基于提取插入操作的重组方法实施例一的流程图。本实施例的执行主体为基于提取插入操作的重组装置,该装置可以设置在微处理器上。本实施例包括如下步骤:
101、解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一类操作数,指示源寄存器和/或目的寄存器的第二类操作数,以及指示重组方式的第三类操作数。
本发明实施例中,微处理器例如包括译码部件、寄存器、操作单元等。其中,译码部件用于解析提取插入指令以根据指示操作方式的第一类操作数确定出操作方式具体为提取和/或插入操作、根据第二类操作数确定出源寄存器和/或目的寄存器,以及根据第三类操作数确定出重组方式,寄存器装载源操作数和目的操作数,而操作单元用于根据第一类操作数、第二类操作数以及第三类操作数执行数据操作及重组。
本发明实例中,数据具有两个数据:数据内容和数据位置。相应的,重组方式包括数据内容重组和/或数据位置重组。当重组方式具体为数据位置重组时,是指对寄存器中存储数据的数据位置进行移位等。例如,当解析提取插入操作指令,根据第一类操作数确定出操作方式具体为提取操作,则数据位置重组可以为对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组;再如,当解析提取插入操作指令,根据第一类操作数确定出操作方式具体为插入操作,则数据位置重组可以为对目的寄存器中执行插入操作前存储数据的数据位置进行重组;又如,当解析提取插入操作指令,根据第一类操作数确定出操作方式具体为提取且插入操作,则数据位置重组可以为对源寄存器中执行提取操作后存储的剩余数据的数据位置,以及对目的寄存器中执行插入操作前存储数据的数据位置进行重组。
当重组方式具体为数据内容重组时,是指对数据进行置0、置1、按位取反、每位乘2等。例如,当解析提取插入操作指令,根据第一类操作数确定出操作方式具体为提取操作,则数据内容重组可以为对提取出的数据进行数据内容重组;再如,当解析提取插入操作指令,根据第一类操作数确定出操作方式具体为插入操作,则数据内容重组可以为对待插入的数据进行数据内容重组。
102、根据所述第一类操作数,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作;以及根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组。
本发明实施例中,数据操作对应的寄存器可以为源寄存器或目的寄存器,也可以同时包括源寄存器和目的寄存器。物理形态上,寄存器为内存等。大小可以为64位、128位等,本发明并不以此为限制。
本步骤中,在对提取插入操作指令进行解析后,根据第一类操作数,对第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作,根据第三类操作数指示的重组方式,对第二类操作数指示的源寄存器和/或目的寄存器。其中,数据操作和数据重组并无严格的先后顺序,例如,进行提取操作时,先进行提取操作,再对存储被提取数据的源寄存器中存储数据的数据位置进行数据位置重组;再如,进行插入操作时,先对存储待插入数据的目的寄存器的数据位置进行数据位置重组,再将待插入数据插入到目的数据存储中。
本发明实施例提供的基于提取插入操作的重组方法,通过解析提取插入操作指令,根据指示操作方式的第一类操作数确定出操作方式具体为提取和/或插入操作、根据第二类操作数确定出源寄存器和/或目的寄存器,以及根据第三类操作数确定出重组方式,然后,根据第一类操作数执行数据操作,根据第三类操作数指示的重组方式执行重组。该过程中,在进行数据操作的同时,还对数据操作过程中涉及到的寄存器中存储数据的进行数据位置重组、数据内容重组,在一定程度上提升了微处理器的功能。
下面,以寄存器具体为64位的寄存器为例,重组为基于提取操作的重组、基于插入操作的重组、基于提取且插入操作的重组对本发明实施例进行详细描述。
首先,基于提取操作的重组。
这种情况下,先执行提取操作,再执行重组过程。此时,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,第一类操作数还包括提取位置和操作宽度,第二类操作数指示源寄存器;第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为所述对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组。提取操作过程中,从所述源寄存器存储的第一数据的所述提取位置开始,提取出所述操作宽度的数据。重组过程中,根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组具体为:将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置左侧的位置向右移动所述操作宽度;或者,将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置右侧的数据向左移动所述操作宽度。具体的,可参见图3A,图3A为本发明基于提取操作的重组过程示意图。
请参照图3A,源寄存器中存储第一数据,该第一数据由A、B、C、D数据组成,提取操作过程中,首先,基于提取插入操作的重组装置上的译码部件解析提取操作指令,根据第一类操作数指确定出操作方式为提取操作,该第一类操作数还指示操作宽度为16位、提取位置为第2个数据(如图中的控制信号所示);第三类操作数指示重组方式为数据位置重组,具体是将源寄存器提取出的数据对应的位置左侧的位置右移。然后,进行提取操作时,将源寄存器中的第2个数据(即数据C)提取出来作为第二数据,得到图中的结果1。然后,将第一数据中,数据C的位置删除,并将位于数据C左侧的数据,即数据A、B右移16位,得到图中的结果2。最后,提取指令可以将任意一个结果写入到目的寄存器,当然,也可以有两个目的寄存器,将两个结果分别写入到两个目的寄存器中。需要说明的是,源寄存器也可以同时作为目的寄存器,用于将结果2作为该寄存器的新值。
另外,需要说明的是,上述实施例中,是以将第一数据中,第二数据的位置删除,并将位于第二数据左侧的位置右移操作宽度为例进行数据位置重组对本发明进行详细阐述的,然而,本发明并不以此为限制,在其他可行的实现中,也可以通过其他方式进行数据位置重组,例如,将第一数据中,第二数据的位置删除,并将位于第二数据对应的位置右侧的位置左移操作宽度。
另外,第三类操作数指示的重组方式也可以为数据内容重组,具体为对所述源寄存器中执行提取操作后所述操作宽度的数据对应的位置进行重组。例如,将所述源寄存器中,所述操作宽度的数据对应的位置置1,此时,请参照图3A,将第一数据中,第二数据对应的位置改为1,即置1;再如,将所述源寄存器中,所述操作宽度的数据对应的位置置0,此时,请参照图3A,将第一数据中,第二数据对应的位置改为0,即置0。
另外,上述实施例中,还可以对所述操作宽度的数据执行所述数据内容重组。例如,将第二数据按位取反、乘以2等。
其次,基于插入操作的重组。
这种情况下,先执行重组过程,在执行插入操作。此时,所述第一类操作数具体指示对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述待插入数据插入所述目的寄存器,第一类操作数还包括插入位置、操作宽度、待插入数据,第二类操作数具体指示目的寄存器,第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为对目的寄存器中执行插入操作前存储数据的数据位置进行重组。重组过程中,将所述目的寄存器中,所述插入位置,以及所述插入位置左侧的位置向左移动所述操作宽度得到目的插入位置;插入过程中,将待插入数据写入所述目的插入位置。或者,重组过程中,将所述目的寄存器中,所述插入位置,以及所述插入位置右侧的位置向右移动所述操作宽度得到目的插入位置;插入过程中,将待插入数据写入所述目的插入位置。具体的,可参见图3B,图3B为本发明基于插入操作的重组过程示意图。
请参照图3B,插入操作过程中,首先,基于提取插入操作的重组装置上的译码部件解析提取插入操作指令,根据第一类操作数确定出操作方式为插入操作,该第一类操作数还指示操作宽度为16位、插入位置为第2个数据(如图中的控制信号所示);第三类操作数指示重组方式为数据位置重组,具体将目的寄存器中,所述插入位置,以及所述插入位置左侧的位置右移以得到目的插入位置。然后,进行插入操作时,将源寄存器2作为目的寄存器,将源寄存器2的第2个数据,即数据C以及数据C左侧的数据(数据A与数据B)向左移16位。最后,将待插入数据(即数据E)写入到数据C原来的位置上,并将得到的结果作为源寄存器2的最新值。该过程中,并未将数据E复写到数据C对应的位置上以删除数据C。
需要说明的是,上述实施例中,是以将目的寄存器中,插入位置,以及插入位置左侧的位置向左移动操作宽度为例进行数据位置重组对本发明进行详细阐述的。然而,本发明并不以此为限制,在其他可行的实现方式中也可以通过其他方式进行数据重组,例如,将目的寄存器中,插入位置,以及插入位置右侧的位置向右移动操作宽度以进行数据位置重组。
另外,上述实施例中,还可以对待插入数据进行重组,例如,对待插入数据进行按位取反、乘以2等。
最后,基于提取且插入操作的重组。
所述第一类操作数还包括提取位置、操作宽度、插入位置;所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据、对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述操作宽度的数据插入所述目的寄存器;所述第三类操作数指示的重组方式具体为所述数据位置重组和/或所述数据内容重组。
具体的,本发明实施例中,可以将提取操作和插入操作分别作为单独的指令使用,也可以将提取操作和插入操作结合起来。下面,用一个具体的例子来描述本发明实施例提供的提取且插入操作,具体的,可参见图3C,图3C为本发明基于提取且插入操作的重组过程示意图。
请参照图3C,提取且插入操作过程中,基于提取插入操作的重组装置上的译码部件解析提取插入操作指令,根据第一类操作数指确定出操作方式为提取且插入操作,该第一类操作数还指示操作宽度为16位、提取位置为第3个数据、插入位置为第2个数据(如图中的控制信号所示);第三类操作数指示对于源寄存器,重组方式为将提取出的数据对应的位置左侧的位置右移;对于目的寄存器,重组方式为将插入位置,以及所述插入位置左侧的位置右移以得到目的插入位置。然后,进行提取且插入操作时,将源寄存器1中的第3个数据,即数据B提取出来,并对源寄存器1中的存储数据的数据位置进行数据位置重组,得到结果1,源寄存器2作为目的寄存器,将源寄存器2中的第2个数据的位置以及第2个数据左侧的位置,即数据F、G、H左移16位得到目的插入位置,最后,将数据B插入到目的插入位置,即数据F原来的位置上,得到结果2,并将得到的结2作为源寄存器2的最新值。该过程中,并未复写数据F。
图4为本发明基于提取插入操作的重组装置实施例一的结构示意图。本实施例提供的基于提取插入操作的重组装置,可以实现本发明任一实施例提供的应用于基于提取插入操作的重组装置的方法的各个步骤,具体实现过程在此不再赘述。具体的,本实施例提供的基于提取插入操作的重组装置包括:
译码部件11,用于解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一类操作数,指示源寄存器和/或目的寄存器的第二类操作数,以及指示重组方式的第三类操作数;
操作单元12,用于根据所述第一类操作数,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作;以及根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组。
其中,所述重组方式包括:数据内容重组和数据位置重组中的至少一种;所述数据内容重组包括:对源寄存器执行提取操作后提取出的数据进行内容重和对目的寄存器执行插入操作前对将要插入的数据执行内容重组;所述数据位置重组包括:对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组和对目的寄存器中执行插入操作前存储数据的数据位置进行重组中的至少一种。
本发明实施例提供的基于提取插入操作的重组装置,通过解析指令获得包括操作方式及重组方式的控制信号,然后,根据操作方式进行数据操作,根据重组方式对数据操作对应的寄存器中存储的数据进行重组。该过程中,在进行数据操作的同时,还对数据操作过程中涉及到的寄存器中存储数据的进行数据位置重组、数据内容重组,在一定程度上提升了微处理器的功能。
可选的,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为所述对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组;
所述操作单元12,具体用于将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置左侧的位置向右移动所述操作宽度;
或者,
将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置右侧的数据向左移动所述操作宽度。
可选的,在本发明一实施例中,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据内容重组,所述数据内容重组具体为对所述源寄存器中执行提取操作后所述操作宽度的数据对应的位置进行重组;
所述操作单元12,具体用于将所述源寄存器中,所述操作宽度的数据对应的位置置1;
或者,
将所述源寄存器中,所述操作宽度的数据对应的位置置0。
可选的,在本发明一实施例中,所述操作单元12,还用于对所述操作宽度的数据执行所述数据内容重组。
可选的,在本发明一实施例中,所述第一类操作数还包括插入位置、操作宽度、待插入数据;所述第一类操作数具体指示对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述待插入数据插入所述目的寄存器,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为对目的寄存器中执行插入操作前存储数据的数据位置进行重组;
所述操作单元12,具体用于将所述目的寄存器中,所述插入位置,以及所述插入位置左侧的位置向左移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置;
或者,
将所述目的寄存器中,所述插入位置,以及所述插入位置右侧的位置向右移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置。
可选的,在本发明一实施例中,所述操作单元12,还用于对所述待插入数据执行所述数据内容重组。
可选的,在本发明一实施例中,所述第一类操作数还包括提取位置、操作宽度、插入位置;所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据、对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述操作宽度的数据插入所述目的寄存器;所述第三类操作数指示的重组方式具体为所述数据位置重组和/或所述数据内容重组;
所述操作单元12,具体用于对所述源寄存器以及所述目的寄存器中存储数据的数据位置执行数据位置重组,和/或,对所述操作宽度的数据执行数据内容重组。
另外,本发明还提供一种微处理器,该微处理器包括如上图4或任意可选实施例所述的基于提取插入操作的重组装置,具体实现过程和效果可参见上述基于提取插入操作的重组装置的描述,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种基于提取插入操作的重组方法,其特征在于,包括:
解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一类操作数,指示源寄存器和/或目的寄存器的第二类操作数,以及指示重组方式的第三类操作数;
根据所述第一类操作数,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作;以及根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组;
其中,所述重组方式包括:数据内容重组和数据位置重组中的至少一种;所述数据内容重组包括:对源寄存器执行提取操作后提取出的数据进行内容重组和对目的寄存器执行插入操作前对待插入的数据执行内容重组中的至少一种;所述数据位置重组包括:对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组和对目的寄存器中执行插入操作前存储数据的数据位置进行重组中的至少一种;
其中,当重组方式具体为数据内容重组时,包括:对数据进行置0、置1、按位取反、每位乘2中任一种操作。
2.根据权利要求1所述方法,其特征在于,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为所述对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组;
所述根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
将所述源寄存器中所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置左侧的位置向右移动所述操作宽度;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置右侧的位置向左移动所述操作宽度。
3.根据权利要求1所述的方法,其特征在于,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据内容重组,所述数据内容重组具体为对所述源寄存器中执行提取操作后所述操作宽度的数据对应的位置进行重组;
所述根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
将所述源寄存器中所述操作宽度的数据对应的位置置1;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置置0。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
对所述操作宽度的数据执行所述数据内容重组。
5.根据权利要求1所述的方法,其特征在于,所述第一类操作数还包括插入位置、操作宽度、待插入数据;所述第一类操作数具体指示对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述待插入数据插入所述目的寄存器,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为对目的寄存器中执行插入操作前存储数据的数据位置进行重组;
根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
将所述目的寄存器中所述插入位置,以及所述插入位置左侧的位置向左移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置;
或者,
将所述目的寄存器中所述插入位置,以及所述插入位置右侧的位置向右移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置。
6.根据权利要求5所述的方法,其特征在于,还包括:
对所述待插入数据执行所述数据内容重组。
7.根据权利要求1所述的方法,其特征在于,所述第一类操作数还包括提取位置、操作宽度、插入位置;所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据、对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述操作宽度的数据插入所述目的寄存器;所述第三类操作数指示的重组方式具体为所述数据位置重组和/或所述数据内容重组;
所述根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组,包括:
对所述源寄存器以及所述目的寄存器中存储数据的数据位置执行数据位置重组,和/或,对所述操作宽度的数据执行数据内容重组。
8.一种基于提取插入操作的重组装置,其特征在于,包括:
译码部件,解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一类操作数,指示源寄存器和/或目的寄存器的第二类操作数,以及指示重组方式的第三类操作数;
操作单元,用于根据所述第一类操作数,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行提取和/或插入操作;以及根据所述第三类操作数指示的重组方式,对所述第二类操作数指示的源寄存器和/或目的寄存器中存储的数据执行重组;
其中,所述重组方式包括:数据内容重组和数据位置重组中的至少一种;所述数据内容重组包括:对源寄存器执行提取操作后提取出的数据进行内容重组和对目的寄存器执行插入操作前对将要插入的数据执行内容重组;所述数据位置重组包括:对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组和对目的寄存器中执行插入操作前存储数据的数据位置进行重组中的至少一种;其中,当重组方式具体为数据内容重组时,包括:对数据进行置0、置1、按位取反、每位乘2中任一种操作。
9.根据权利要求8所述的装置,其特征在于,
所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为所述对源寄存器中执行提取操作后存储的剩余数据的数据位置进行重组;
所述操作单元,具体用于将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置左侧的位置向右移动所述操作宽度;或者,将所述源寄存器中,所述操作宽度的数据对应的位置删除,并将所述操作宽度的数据对应的位置右侧的位置向左移动所述操作宽度。
10.根据权利要求8所述的装置,其特征在于,所述第一类操作数还包括:提取位置和操作宽度,所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据,所述第三类操作数指示的重组方式具体为所述数据内容重组,所述数据内容重组具体为对所述源寄存器中执行提取操作后所述操作宽度的数据对应的位置进行重组;
所述操作单元,具体用于:
将所述源寄存器中所述操作宽度的数据对应的位置置1;
或者,
将所述源寄存器中所述操作宽度的数据对应的位置置0。
11.根据权利要求9或10所述的装置,其特征在于,
所述操作单元,还用于对所述操作宽度的数据执行所述数据内容重组。
12.根据权利要求8所述的装置,其特征在于,所述第一类操作数还包括插入位置、操作宽度、待插入数据;所述第一类操作数具体指示对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述待插入数据插入所述目的寄存器,所述第三类操作数指示的重组方式具体为所述数据位置重组,所述数据位置重组具体为对目的寄存器中执行插入操作前存储数据的数据位置进行重组;
所述操作单元,具体用于将所述目的寄存器中,所述插入位置,以及所述插入位置左侧的位置向左移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置;或者,将所述目的寄存器中,所述插入位置,以及所述插入位置右侧的位置向右移动所述操作宽度得到目的插入位置,并将待插入数据写入所述目的插入位置。
13.根据权利要求12所述的装置,其特征在于,
所述操作单元,还用于对所述待插入数据执行所述数据内容重组。
14.根据权利要求8所述的装置,其特征在于,所述第一类操作数还包括提取位置、操作宽度、插入位置;所述第一类操作数具体指示对所述源寄存器中存储的数据执行提取操作以从所述提取位置开始提取出所述操作宽度的数据、对所述目的寄存器中存储的数据执行插入操作以根据所述插入位置、所述操作宽度将所述操作宽度的数据插入所述目的寄存器;所述第三类操作数指示的重组方式具体为所述数据位置重组和/或所述数据内容重组;
所述操作单元,具体用于对所述源寄存器以及所述目的寄存器中存储数据的数据位置执行数据位置重组,和/或,对所述操作宽度的数据执行数据内容重组。
15.一种微处理器,其特征在于,包括如权利要求8~14任一项所述的基于提取插入操作的重组装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184867.6A CN105892993B (zh) | 2016-03-28 | 2016-03-28 | 基于提取插入操作的重组方法、装置及微处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184867.6A CN105892993B (zh) | 2016-03-28 | 2016-03-28 | 基于提取插入操作的重组方法、装置及微处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105892993A CN105892993A (zh) | 2016-08-24 |
CN105892993B true CN105892993B (zh) | 2019-02-15 |
Family
ID=57013837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610184867.6A Active CN105892993B (zh) | 2016-03-28 | 2016-03-28 | 基于提取插入操作的重组方法、装置及微处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105892993B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093102B1 (en) * | 2000-03-29 | 2006-08-15 | Intel Corporation | Code sequence for vector gather and scatter |
CN1894659A (zh) * | 2003-12-09 | 2007-01-10 | Arm有限公司 | 在寄存器和存储器之间移动数据的数据处理设备和方法 |
CN1926511A (zh) * | 2004-03-10 | 2007-03-07 | Arm有限公司 | 在数据字内插入比特 |
CN103827818A (zh) * | 2011-09-30 | 2014-05-28 | 高通股份有限公司 | Fifo加载指令 |
CN104915182A (zh) * | 2010-11-23 | 2015-09-16 | Arm有限公司 | 具有位域操纵指令的数据处理装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243210B2 (en) * | 2005-05-31 | 2007-07-10 | Atmel Corporation | Extracted-index addressing of byte-addressable memories |
-
2016
- 2016-03-28 CN CN201610184867.6A patent/CN105892993B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093102B1 (en) * | 2000-03-29 | 2006-08-15 | Intel Corporation | Code sequence for vector gather and scatter |
CN1894659A (zh) * | 2003-12-09 | 2007-01-10 | Arm有限公司 | 在寄存器和存储器之间移动数据的数据处理设备和方法 |
CN1926511A (zh) * | 2004-03-10 | 2007-03-07 | Arm有限公司 | 在数据字内插入比特 |
CN104915182A (zh) * | 2010-11-23 | 2015-09-16 | Arm有限公司 | 具有位域操纵指令的数据处理装置及方法 |
CN103827818A (zh) * | 2011-09-30 | 2014-05-28 | 高通股份有限公司 | Fifo加载指令 |
Also Published As
Publication number | Publication date |
---|---|
CN105892993A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2603851B1 (en) | Data processing apparatus having bit field manipulation instruction and method | |
CN107851019B (zh) | 用于执行叠接操作的设备和方法 | |
JP2009542092A5 (zh) | ||
US20150378674A1 (en) | Converting numeric-character strings to binary numbers | |
US9740493B2 (en) | System and method of loop vectorization by compressing indexes and data elements from iterations based on a control mask | |
WO2001037083A3 (en) | Decompression bit processing with a general purpose alignment tool | |
JP2009542092A (ja) | データ圧縮の方法 | |
CN107450888A (zh) | 嵌入式数字信号处理器中的零开销循环 | |
CN103065069A (zh) | 一种基于壳技术的软件保护方法 | |
US10394763B2 (en) | Method and device for generating pileup file from compressed genomic data | |
CN105144084B (zh) | 提高处理器中返回分支指令的执行速度的方法 | |
CN105892993B (zh) | 基于提取插入操作的重组方法、装置及微处理器 | |
CN110795165A (zh) | 一种神经网络模型数据的加载方法及相关装置 | |
CN111443948B (zh) | 指令执行方法、处理器和电子设备 | |
JP4141112B2 (ja) | プロセッサおよびプロセッサシステム | |
US9323524B2 (en) | Shift instruction with per-element shift counts and full-width sources | |
CN109756231B (zh) | 循环移位处理装置及方法 | |
CN104049949A (zh) | 一种面向bswap指令的窥孔优化方法 | |
CN108897522A (zh) | 数据处理方法、数据处理装置以及电子设备 | |
CN112732649B (zh) | Ofd文档签章方法、电子设备及介质 | |
CN111916155B (zh) | 无参考基因序列的基因数据压缩及还原方法、系统和介质 | |
US9348535B1 (en) | Compression format designed for a very fast decompressor | |
CN108762720B (zh) | 数据处理方法、数据处理装置以及电子设备 | |
US10037148B2 (en) | Facilitating reverse reading of sequentially stored, variable-length data | |
Yang et al. | AR Exploit: An Automatic ROP Exploit Based on Long Sequence |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |