基于提取插入操作的重組方法、裝置及微處理器的制造方法
【專利摘要】本發(fā)明提供一種基于提取插入操作的重組方法、裝置及微處理器,該方法中,通過解析提取插入操作指令,根據(jù)指示操作方式的第一類操作數(shù)確定出操作方式具體為提取和/或插入操作、根據(jù)第二類操作數(shù)確定出源寄存器和/或目的寄存器,以及根據(jù)第三類操作數(shù)據(jù)確定出重組方式,然后,根據(jù)第一類操作數(shù)執(zhí)行數(shù)據(jù)操作,根據(jù)第三類操作數(shù)指示的重組方式執(zhí)行重組。該過程中,在進(jìn)行數(shù)據(jù)操作的同時,還對數(shù)據(jù)操作過程中涉及到的寄存器中存儲數(shù)據(jù)的進(jìn)行數(shù)據(jù)位置重組、數(shù)據(jù)內(nèi)容重組,在一定程度上提升了微處理器的功能。
【專利說明】
基于提取插入操作的重組方法、裝置及微處理器
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)處理技術(shù),尤其涉及一種基于提取插入操作的重組方法、裝置及微處理器。
【背景技術(shù)】
[0002]為提升微處理器的功能,需要對微處理器設(shè)計(jì)功能強(qiáng)大的新指令。例如,為實(shí)現(xiàn)數(shù)據(jù)操作,設(shè)計(jì)提取指令、插入指令、提取且插入指令等,從而實(shí)現(xiàn)對數(shù)據(jù)的提取操作、插入操作、提取且插入操作等。
[0003]具體的,提取指令用于從一個較長的數(shù)據(jù)中,提取出一個較短的數(shù)據(jù),例如,從一個64位的源寄存器中提取出一個8位的數(shù)據(jù),并將提取出的數(shù)據(jù)放到目的寄存器的低8位;插入指令用于將一個較短的數(shù)據(jù)插入到一個較長的數(shù)據(jù)中,例如,將一個源寄存器的低8位的數(shù)據(jù)插入到長度為64位的目的寄存器的某個位置;提取且插入指令,用于從源寄存器中提取出數(shù)據(jù),并將提取出的數(shù)據(jù)插入到目的寄存器的某個位置。
[0004]然而,上述數(shù)據(jù)操作過程中,僅對數(shù)據(jù)進(jìn)行提取操作、插入操作或提取且插入操作,提升的功能有限。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種基于提取插入操作的重組方法、裝置及微處理器,實(shí)現(xiàn)數(shù)據(jù)操作的同時,提升微處理器的功能。
[0006]第一個方面,本發(fā)明實(shí)施例提供一種基于提取插入操作的重組方法,包括:
[0007]解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一類操作數(shù),指示源寄存器和/或目的寄存器的第二類操作數(shù),以及指示重組方式的第三類操作數(shù);
[0008]根據(jù)所述第一類操作數(shù),對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作;以及根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組;
[0009]其中,所述重組方式包括:數(shù)據(jù)內(nèi)容重組和數(shù)據(jù)位置重組中的至少一種;所述數(shù)據(jù)內(nèi)容重組包括:對源寄存器執(zhí)行提取操作后提取出的數(shù)據(jù)進(jìn)行內(nèi)容重和對目標(biāo)寄存器執(zhí)行插入操作前對將要插入的數(shù)據(jù)執(zhí)行內(nèi)容重組;所述數(shù)據(jù)位置重組包括:對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組和對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組中的至少一種。
[0010]可選的,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)據(jù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為所述對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;
[0011]所述根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括:
[0012]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置向右移動所述操作寬度;
[0013]或者,
[0014]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置右側(cè)的數(shù)據(jù)向左移動所述操作寬度。
[0015]可選的,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)據(jù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)內(nèi)容重組,所述數(shù)據(jù)內(nèi)容重組具體為對所述源寄存器中執(zhí)行提取操作后所述操作寬度的數(shù)據(jù)對應(yīng)的位置進(jìn)行重組;
[0016]所述根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括:
[0017]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置I;
[0018]或者,
[0019]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置O。
[0020]可選的,上述方法還包括:對所述操作寬度的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。
[0021]可選的,所述第一類操作數(shù)據(jù)還包括插入位置、操作寬度、待插入數(shù)據(jù);所述第一類操作數(shù)具體指示對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述待插入數(shù)據(jù)插入所述目的寄存器,所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;
[0022]根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括:
[0023]將所述目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置向左移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置;
[0024]或者,
[0025]將所述目的寄存器中,所述插入位置,以及所述插入位置右側(cè)的位置向右移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置。
[0026]可選的,上述方法還包括:
[0027]對所述待插入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。
[0028]可選的,所述第一類操作數(shù)還包括提取位置、操作寬度、插入位置;所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù)、對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述操作寬度的數(shù)據(jù)插入所述目的寄存器;所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組和/或所述數(shù)據(jù)內(nèi)容重組;
[0029]所述根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括:
[0030]對所述源寄存器以及所述目的寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置執(zhí)行數(shù)據(jù)位置重組,和/或,對所述操作寬度的數(shù)據(jù)執(zhí)行數(shù)據(jù)內(nèi)容重組。
[0031 ]第二個方面,本發(fā)明實(shí)施例提供一種基于提取插入操作的重組裝置,包括:
[0032]譯碼部件,解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一類操作數(shù),指示源寄存器和/或目的寄存器的第二類操作數(shù),以及指示重組方式的第三類操作數(shù);
[0033]操作單元,用于根據(jù)所述第一類操作數(shù),對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作;以及根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組;
[0034]其中,所述重組方式包括:數(shù)據(jù)內(nèi)容重組和數(shù)據(jù)位置重組中的至少一種;所述數(shù)據(jù)內(nèi)容重組包括:對源寄存器執(zhí)行提取操作后提取出的數(shù)據(jù)進(jìn)行內(nèi)容重和對目標(biāo)寄存器執(zhí)行插入操作前對將要插入的數(shù)據(jù)執(zhí)行內(nèi)容重組;所述數(shù)據(jù)位置重組包括:對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組和對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組中的至少一種。
[0035]可選的,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)據(jù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為所述對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;
[0036]所述操作單元,具體用于將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置向右移動所述操作寬度;
[0037]或者,
[0038]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置右側(cè)的數(shù)據(jù)向左移動所述操作寬度。
[0039]可選的,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)據(jù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)內(nèi)容重組,所述數(shù)據(jù)內(nèi)容重組具體為對所述源寄存器中執(zhí)行提取操作后所述操作寬度的數(shù)據(jù)對應(yīng)的位置進(jìn)行重組;
[0040]所述操作單元,具體用于:
[0041 ]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置I;
[0042]或者,
[0043]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置O。
[0044]可選的,所述操作單元,還用于對所述操作寬度的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。
[0045]可選的,所述第一類操作數(shù)據(jù)還包括插入位置、操作寬度、待插入數(shù)據(jù);所述第一類操作數(shù)具體指示對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述待插入數(shù)據(jù)插入所述目的寄存器,所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;
[0046]所述操作單元,具體用于將所述目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置向左移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置;
[0047]或者,
[0048]將所述目的寄存器中,所述插入位置,以及所述插入位置右側(cè)的位置向右移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置。
[0049]可選的,所述操作單元,還用于對所述待插入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。
[0050]可選的,所述第一類操作數(shù)還包括提取位置、操作寬度、插入位置;所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù)、對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述操作寬度的數(shù)據(jù)插入所述目的寄存器;所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組和/或所述數(shù)據(jù)內(nèi)容重組;
[0051]所述操作單元,具體用于對所述源寄存器以及所述目的寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置執(zhí)行數(shù)據(jù)位置重組,和/或,對所述操作寬度的數(shù)據(jù)執(zhí)行數(shù)據(jù)內(nèi)容重組。
[0052]第三個方面,本發(fā)明實(shí)施例提供一種微處理器,包括如上第二個方面或第二個方面任一種可能的方式實(shí)現(xiàn)的基于提取插入操作的重組裝置。
[0053]本發(fā)明實(shí)施例提供的基于提取插入操作的重組方法、裝置及微處理器,通過解析指令獲得包括操作方式及重組方式的控制信號,然后,根據(jù)操作方式進(jìn)行數(shù)據(jù)操作,根據(jù)重組方式對數(shù)據(jù)操作對應(yīng)的寄存器中存儲的數(shù)據(jù)進(jìn)行重組。該過程中,在進(jìn)行數(shù)據(jù)操作的同時,還對數(shù)據(jù)操作過程中涉及到的寄存器中存儲數(shù)據(jù)的進(jìn)行數(shù)據(jù)位置重組、數(shù)據(jù)內(nèi)容重組,在一定程度上提升了微處理器的功能。
【附圖說明】
[0054]圖1A現(xiàn)有技術(shù)中提取操作的過程示意圖;
[0055]圖1B為現(xiàn)有技術(shù)中插入操作的過程示意圖;
[0056]圖1C為現(xiàn)有技術(shù)中提取且插入操作的過程示意圖;
[0057]圖2為本發(fā)明基于提取插入操作的重組方法實(shí)施例一的流程圖;
[0058]圖3A為本發(fā)明基于提取操作的重組過程示意圖;
[0059]圖3B為本發(fā)明基于插入操作的重組過程示意圖;
[0060]圖3C為本發(fā)明基于提取且插入操作的重組過程示意圖;
[0061 ]圖4為本發(fā)明基于提取插入操作的重組裝置實(shí)施例一的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0062]目前,數(shù)據(jù)操作過程中,僅對數(shù)據(jù)進(jìn)行提取操作、插入操作或提取且插入操作,提升的功能有限。
[0063]例如,提取操作過程中,微處理器根據(jù)提取指令的控制信號,從較長的寄存器中提取出一個較短的數(shù)據(jù),具體可參見圖1A,圖1A現(xiàn)有技術(shù)中提取操作的過程示意圖。請參照圖1A,源寄存器為64位,存儲A、B、C、D四個數(shù)據(jù),且A至B為高有效位(Most Significant Bit,MSB)至低有效位(Least Significant Bit,LSB);控制信號指示操作寬度為16位,提取位置為第2個數(shù)據(jù)。此時,進(jìn)行提取操作時,將源寄存器中的第2個數(shù)據(jù)(即數(shù)據(jù)C)提取出來,并將提取出來的數(shù)據(jù)放到目的寄存器的低16位。
[0064]再如,插入操作過程中,微處理器根據(jù)插入指令的控制信號,將較短的數(shù)據(jù)插入到另一個較長的寄存器中,具體可參見圖1B,圖1B為現(xiàn)有技術(shù)中插入操作的過程示意圖。請參照圖1B,源寄存器1、源寄存器2以及目的寄存器均為64位;控制信號指示操作寬度為16位,插入位置為第2個數(shù)據(jù)。此時,進(jìn)行插入操作時,將源寄存器I的低16位數(shù)據(jù),即數(shù)據(jù)E作為待插入數(shù)據(jù),并將該待插入數(shù)據(jù)插入到源寄存器2的第2個數(shù)據(jù),即用數(shù)據(jù)E覆蓋數(shù)據(jù)C。該過程中,源寄存器2同時作為目的寄存器。
[0065]又如,提取且插入操作過程中,微處理器根據(jù)提取且插入指令的控制信號,從源寄存器中提取出一個數(shù)據(jù),并將提取出的數(shù)據(jù)插入到目的寄存器的某個位置,具體可參見圖1C,圖1C為現(xiàn)有技術(shù)中提取且插入操作的過程示意圖。請參照圖1C,源寄存器I中存儲被提取的數(shù)據(jù),源寄存器2中存儲被插入的數(shù)據(jù),控制信號指示操作寬度為16位,提取位置為第3個數(shù)據(jù),插入位置為第2個數(shù)據(jù)。此時,進(jìn)行提取且插入操作時,將源寄存器I的第3個數(shù)據(jù),即數(shù)據(jù)C提取出來,并將數(shù)據(jù)C插入到源寄存器2的第2個數(shù)據(jù),即用數(shù)據(jù)B覆蓋數(shù)據(jù)F。該過程中,源寄存器2同時作為目的寄存器。
[0066]然而,上述數(shù)據(jù)操作過程中,僅對數(shù)據(jù)進(jìn)行提取操作、插入操作或提取且插入操作,提升的功能有限。有鑒于此,本發(fā)明提供一種基于提取插入操作的重組方法、裝置及微處理器,實(shí)現(xiàn)數(shù)據(jù)操作的同時,提升微處理器的功能。具體的,可參見圖2。
[0067]圖2為本發(fā)明基于提取插入操作的重組方法實(shí)施例一的流程圖。本實(shí)施例的執(zhí)行主體為基于提取插入操作的重組裝置,該裝置可以設(shè)置在微處理器上。本實(shí)施例包括如下步驟:
[0068]101、解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一類操作數(shù),指示源寄存器和/或目的寄存器的第二類操作數(shù),以及指示重組方式的第三類操作數(shù)。
[0069]本發(fā)明實(shí)施例中,微處理器例如包括譯碼部件、寄存器、操作單元等。其中,譯碼部件用于解析提取插入指令以根據(jù)指示操作方式的第一類操作數(shù)確定出操作方式具體為提取和/或插入操作、根據(jù)第二類操作數(shù)確定出源寄存器和/或目的寄存器,以及根據(jù)第三類操作數(shù)據(jù)確定出重組方式,寄存器裝載源操作數(shù)和目的操作數(shù),而操作單元用于根據(jù)第一類操作數(shù)、第二類操作數(shù)以及第三類操作數(shù)據(jù)執(zhí)行數(shù)據(jù)操作及重組。
[0070]本發(fā)明實(shí)例中,數(shù)據(jù)具有兩個數(shù)據(jù):數(shù)據(jù)內(nèi)容和數(shù)據(jù)位置。相應(yīng)的,重組方式包括數(shù)據(jù)內(nèi)容重組和/或數(shù)據(jù)位置重組。當(dāng)重組方式具體為數(shù)據(jù)位置重組時,是指對寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行移位等。例如,當(dāng)解析提取插入操作指令,根據(jù)第一類操作數(shù)確定出操作方式具體為提取操作,則數(shù)據(jù)位置重組可以為對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;再如,當(dāng)解析提取插入操作指令,根據(jù)第一類操作數(shù)確定出操作方式具體為插入操作,則數(shù)據(jù)位置重組可以為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;又如,當(dāng)解析提取插入操作指令,根據(jù)第一類操作數(shù)據(jù)確定出操作方式具體為提取且插入操作,則數(shù)據(jù)位置重組可以為對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置,以及對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組。
[0071]當(dāng)重組方式具體為數(shù)據(jù)內(nèi)容重組時,是指對數(shù)據(jù)進(jìn)行置0、置1、按位取反、每位乘2等。例如,當(dāng)解析提取插入操作指令,根據(jù)第一類操作數(shù)確定出操作方式具體為提取操作,則數(shù)據(jù)內(nèi)容重組可以為對提取出的數(shù)據(jù)進(jìn)行數(shù)據(jù)內(nèi)容重組;再如,當(dāng)解析提取插入操作指令,根據(jù)第一類操作數(shù)據(jù)確定出操作方式具體為插入操作,則數(shù)據(jù)內(nèi)容重組可以為對待插入的數(shù)據(jù)進(jìn)行數(shù)據(jù)內(nèi)容重組。
[0072]102、根據(jù)所述第一類操作數(shù),對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作;以及根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組。
[0073]本發(fā)明實(shí)施例中,數(shù)據(jù)操作對應(yīng)的寄存器可以為源寄存器或目的寄存器,也可以同時包括源寄存器和目的寄存器。物理形態(tài)上,寄存器為內(nèi)存等。大小可以為64位、128位等,本發(fā)明并不以此為限制。
[0074]本步驟中,在對提取插入操作指令進(jìn)行解析后,根據(jù)第一類操作數(shù),對第二類操作數(shù)據(jù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作,根據(jù)第三類操作數(shù)指示的重組方式,對第二類操作數(shù)指示的源寄存器和/或目的寄存器。其中,數(shù)據(jù)操作和數(shù)據(jù)重組并無嚴(yán)格的先后順序,例如,進(jìn)行提取操作時,先進(jìn)行提取操作,再對存儲被提取數(shù)據(jù)的源寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行數(shù)據(jù)位置重組;再如,進(jìn)行插入操作時,先對存儲待插入數(shù)據(jù)的目的寄存器的數(shù)據(jù)位置進(jìn)行數(shù)據(jù)位置重組,再將待插入數(shù)據(jù)插入到目的數(shù)據(jù)存儲中。
[0075]本發(fā)明實(shí)施例提供的基于提取插入操作的重組方法,通過解析提取插入操作指令,根據(jù)指示操作方式的第一類操作數(shù)確定出操作方式具體為提取和/或插入操作、根據(jù)第二類操作數(shù)確定出源寄存器和/或目的寄存器,以及根據(jù)第三類操作數(shù)據(jù)確定出重組方式,然后,根據(jù)第一類操作數(shù)執(zhí)行數(shù)據(jù)操作,根據(jù)第三類操作數(shù)指示的重組方式執(zhí)行重組。該過程中,在進(jìn)行數(shù)據(jù)操作的同時,還對數(shù)據(jù)操作過程中涉及到的寄存器中存儲數(shù)據(jù)的進(jìn)行數(shù)據(jù)位置重組、數(shù)據(jù)內(nèi)容重組,在一定程度上提升了微處理器的功能。
[0076]下面,以寄存器具體為64位的寄存器為例,重組為基于提取操作的重組、基于插入操作的重組、基于提取且插入操作的重組對本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
[0077]首先,基于提取操作的重組。
[0078]這種情況下,先執(zhí)行提取操作,再執(zhí)行重組過程。此時,所述第一類操作數(shù)據(jù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),第一類操作數(shù)還包括提取位置和操作寬度,第二類操作數(shù)據(jù)指示源寄存器;第三類操作數(shù)據(jù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為所述對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組。提取操作過程中,從所述源寄存器存儲的第一數(shù)據(jù)的所述提取位置開始,提取出所述操作寬度的數(shù)據(jù)。重組過程中,根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組具體為:將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置向右移動所述操作寬度;或者,將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置右側(cè)的數(shù)據(jù)向左移動所述操作寬度。具體的,可參見圖3A,圖3A為本發(fā)明基于提取操作的重組過程示意圖。
[0079]請參照圖3A,源寄存器中存儲第一數(shù)據(jù),該第一數(shù)據(jù)由A、B、C、D數(shù)據(jù)組成,提取操作過程中,首先,基于提取插入操作的重組裝置上的譯碼部件解析提取操作指令,根據(jù)第一類操作數(shù)指確定出操作方式為提取操作,該第一類操作數(shù)還指示操作寬度為16位、提取位置為第2個數(shù)據(jù)(如圖中的控制信號所示);第三類操作數(shù)指示重組方式為數(shù)據(jù)位置重組,具體是將源寄存器提取出的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置右移。然后,進(jìn)行提取操作時,將源寄存器中的第2個數(shù)據(jù)(即數(shù)據(jù)C)提取出來作為第二數(shù)據(jù),得到圖中的結(jié)果I。然后,將第一數(shù)據(jù)中,數(shù)據(jù)C的位置刪除,并將位于數(shù)據(jù)C左側(cè)的數(shù)據(jù),即數(shù)據(jù)A、B右移16位,得到圖中的結(jié)果
2。最后,提取指令可以將任意一個結(jié)果寫入到目的寄存器,當(dāng)然,也可以有兩個目的寄存器,將兩個結(jié)果分別寫入到兩個目的寄存器中。需要說明的是,源寄存器也可以同時作為目的寄存器,用于將結(jié)果2作為該寄存器的新值。
[0080]另外,需要說明的是,上述實(shí)施例中,是以將第一數(shù)據(jù)中,第二數(shù)據(jù)的位置刪除,并將位于第二數(shù)據(jù)左側(cè)的位置右移操作寬度為例進(jìn)行數(shù)據(jù)位置重組對本發(fā)明進(jìn)行詳細(xì)闡述的,然而,本發(fā)明并不以此為限制,在其他可行的實(shí)現(xiàn)中,也可以通過其他方式進(jìn)行數(shù)據(jù)位置重組,例如,將第一數(shù)據(jù)中,第二數(shù)據(jù)的位置刪除,并將位于第二數(shù)據(jù)對應(yīng)的位置右側(cè)的位置左移操作寬度。
[0081]另外,第三類操作數(shù)指示的重組方式也可以為數(shù)據(jù)內(nèi)容重組,具體為對所述源寄存器中執(zhí)行提取操作后所述操作寬度的數(shù)據(jù)對應(yīng)的位置進(jìn)行重組。例如,將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置I,此時,請參照圖3A,將第一數(shù)據(jù)中,第二數(shù)據(jù)對應(yīng)的位置改為1,即置I;再如,將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置0,此時,請參照圖3A,將第一數(shù)據(jù)中,第二數(shù)據(jù)對應(yīng)的位置改為0,即置O。
[0082]另外,上述實(shí)施例中,還可以對所述操作寬度的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。例如,將第二數(shù)據(jù)按位取反、乘以2等。
[0083]其次,基于插入操作的重組。
[0084]這種情況下,先執(zhí)行重組過程,在執(zhí)行插入操作。此時,所述第一類操作數(shù)據(jù)具體指示對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述待插入數(shù)據(jù)插入所述目的寄存器,第一類操作數(shù)還包括插入位置、操作寬度、待插入數(shù)據(jù),第二類操作數(shù)具體指示目的寄存器,第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組。重組過程中,將所述目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置向左移動所述操作寬度得到目的插入位置;插入過程中,將待插入數(shù)據(jù)寫入所述目的插入位置?;蛘撸亟M過程中,將所述目的寄存器中,所述插入位置,以及所述插入位置右側(cè)的位置向右移動所述操作寬度得到目的插入位置;插入過程中,將待插入數(shù)據(jù)寫入所述目的插入位置。具體的,可參見圖3B,圖3B為本發(fā)明基于插入操作的重組過程示意圖。
[0085]請參照圖3B,插入操作過程中,首先,基于提取插入操作的重組裝置上的譯碼部件解析提取插入操作指令,根據(jù)第一類操作數(shù)據(jù)確定出操作方式為插入操作,該第一類操作數(shù)還指示操作寬度為16位、插入位置為第2個數(shù)據(jù)(如圖中的控制信號所示);第三類操作數(shù)指示重組方式為數(shù)據(jù)位置重組,具體將目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置右移以得到目的插入位置。然后,進(jìn)行插入操作時,將源寄存器2作為目的寄存器,將源寄存器2的第2個數(shù)據(jù),即數(shù)據(jù)C以及數(shù)據(jù)C左側(cè)的數(shù)據(jù)(數(shù)據(jù)A與數(shù)據(jù)B)向左移16位。最后,將待插入數(shù)據(jù)(即數(shù)據(jù)E)寫入到數(shù)據(jù)C原來的位置上,并將得到的結(jié)果作為源寄存器2的最新值。該過程中,并未將數(shù)據(jù)E復(fù)寫到數(shù)據(jù)C對應(yīng)的位置上以刪除數(shù)據(jù)C。
[0086]需要說明的是,上述實(shí)施例中,是以將目的寄存器中,插入位置,以及插入位置左側(cè)的位置向左移動操作寬度為例進(jìn)行數(shù)據(jù)位置重組對本發(fā)明進(jìn)行詳細(xì)闡述的。然而,本發(fā)明并不以此為限制,在其他可行的實(shí)現(xiàn)方式中也可以通過其他方式進(jìn)行數(shù)據(jù)重組,例如,將目的寄存器中,插入位置,以及插入位置右側(cè)的位置向右移動操作寬度以進(jìn)行數(shù)據(jù)位置重組。
[0087]另外,上述實(shí)施例中,還可以對待插入數(shù)據(jù)進(jìn)行重組,例如,對待插入數(shù)據(jù)進(jìn)行按位取反、乘以2等。
[0088]最后,基于提取且插入操作的重組。
[0089]所述第一類操作數(shù)還包括提取位置、操作寬度、插入位置;所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù)、對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述操作寬度的數(shù)據(jù)插入所述目的寄存器;所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組和/或所述數(shù)據(jù)內(nèi)容重組。
[0090]具體的,本發(fā)明實(shí)施例中,可以將提取操作和插入操作分別作為單獨(dú)的指令使用,也可以將提取操作和插入操作結(jié)合起來。下面,用一個具體的例子來描述本發(fā)明實(shí)施例提供的提取且插入操作,具體的,可參見圖3C,圖3C為本發(fā)明基于提取且插入操作的重組過程示意圖。
[0091]請參照圖3C,提取且插入操作過程中,基于提取插入操作的重組裝置上的譯碼部件解析提取插入操作指令,根據(jù)第一類操作數(shù)指確定出操作方式為提取且插入操作,該第一類操作數(shù)還指示操作寬度為16位、提取位置為第3個數(shù)據(jù)、插入位置為第2個數(shù)據(jù)(如圖中的控制信號所示);第三類操作數(shù)據(jù)指示對于源寄存器,重組方式為將提取出的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置右移;對于目的寄存器,重組方式為將插入位置,以及所述插入位置左側(cè)的位置右移以得到目的插入位置。然后,進(jìn)行提取且插入操作時,將源寄存器I中的第3個數(shù)據(jù),即數(shù)據(jù)B提取出來,并對源寄存器I中的存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行數(shù)據(jù)位置重組,得到結(jié)果1,源寄存器2作為目的寄存器,將源寄存器2中的第2個數(shù)據(jù)的位置以及第2個數(shù)據(jù)左側(cè)的位置,即數(shù)據(jù)F、G、H左移16位得到目的插入位置,最后,將數(shù)據(jù)B插入到目的插入位置,即數(shù)據(jù)F原來的位置上,得到結(jié)果2,并將得到的結(jié)2作為源寄存器2的最新值。該過程中,并未復(fù)寫數(shù)據(jù)F。
[0092]圖4為本發(fā)明基于提取插入操作的重組裝置實(shí)施例一的結(jié)構(gòu)示意圖。本實(shí)施例提供的基于提取插入操作的重組裝置,可以實(shí)現(xiàn)本發(fā)明任一實(shí)施例提供的應(yīng)用于基于提取插入操作的重組裝置的方法的各個步驟,具體實(shí)現(xiàn)過程在此不再贅述。具體的,本實(shí)施例提供的基于提取插入操作的重組裝置包括:
[0093]譯碼部件11,用于解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一類操作數(shù),指示源寄存器和/或目的寄存器的第二類操作數(shù),以及指示重組方式的第三類操作數(shù);
[0094]操作單元12,用于根據(jù)所述第一類操作數(shù),對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作;以及根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組。
[0095]其中,所述重組方式包括:數(shù)據(jù)內(nèi)容重組和數(shù)據(jù)位置重組中的至少一種;所述數(shù)據(jù)內(nèi)容重組包括:對源寄存器執(zhí)行提取操作后提取出的數(shù)據(jù)進(jìn)行內(nèi)容重和對目標(biāo)寄存器執(zhí)行插入操作前對將要插入的數(shù)據(jù)執(zhí)行內(nèi)容重組;所述數(shù)據(jù)位置重組包括:對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組和對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組中的至少一種。
[0096]本發(fā)明實(shí)施例提供的基于提取插入操作的重組裝置,通過解析指令獲得包括操作方式及重組方式的控制信號,然后,根據(jù)操作方式進(jìn)行數(shù)據(jù)操作,根據(jù)重組方式對數(shù)據(jù)操作對應(yīng)的寄存器中存儲的數(shù)據(jù)進(jìn)行重組。該過程中,在進(jìn)行數(shù)據(jù)操作的同時,還對數(shù)據(jù)操作過程中涉及到的寄存器中存儲數(shù)據(jù)的進(jìn)行數(shù)據(jù)位置重組、數(shù)據(jù)內(nèi)容重組,在一定程度上提升了微處理器的功能。
[0097]可選的,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)據(jù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為所述對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;
[0098]所述操作單元12,具體用于將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置向右移動所述操作寬度;
[0099]或者,
[0100]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置右側(cè)的數(shù)據(jù)向左移動所述操作寬度。
[0101 ]可選的,在本發(fā)明一實(shí)施例中,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)據(jù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)內(nèi)容重組,所述數(shù)據(jù)內(nèi)容重組具體為對所述源寄存器中執(zhí)行提取操作后所述操作寬度的數(shù)據(jù)對應(yīng)的位置進(jìn)行重組;
[0102]所述操作單元12,具體用于將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置I;
[0103]或者,
[0104]將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置O。
[0105]可選的,在本發(fā)明一實(shí)施例中,所述操作單元12,還用于對所述操作寬度的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。
[0106]可選的,在本發(fā)明一實(shí)施例中,所述第一類操作數(shù)據(jù)還包括插入位置、操作寬度、待插入數(shù)據(jù);所述第一類操作數(shù)具體指示對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述待插入數(shù)據(jù)插入所述目的寄存器,所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組;
[0107]所述操作單元12,具體用于將所述目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置向左移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置;
[0108]或者,
[0109]將所述目的寄存器中,所述插入位置,以及所述插入位置右側(cè)的位置向右移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置。
[0110]可選的,在本發(fā)明一實(shí)施例中,所述操作單元12,還用于對所述待插入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。
[0111]可選的,在本發(fā)明一實(shí)施例中,所述第一類操作數(shù)還包括提取位置、操作寬度、插入位置;所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù)、對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述操作寬度的數(shù)據(jù)插入所述目的寄存器;所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組和/或所述數(shù)據(jù)內(nèi)容重組;
[0112]所述操作單元12,具體用于對所述源寄存器以及所述目的寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置執(zhí)行數(shù)據(jù)位置重組,和/或,對所述操作寬度的數(shù)據(jù)執(zhí)行數(shù)據(jù)內(nèi)容重組。
[0113]另外,本發(fā)明還提供一種微處理器,該微處理器包括如上圖4或任意可選實(shí)施例所述的基于提取插入操作的重組裝置,具體實(shí)現(xiàn)過程和效果可參見上述基于提取插入操作的重組裝置的描述,此處不再贅述。
[0114]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0115]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【主權(quán)項(xiàng)】
1.一種基于提取插入操作的重組方法,其特征在于,包括: 解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一類操作數(shù),指示源寄存器和/或目的寄存器的第二類操作數(shù),以及指示重組方式的第三類操作數(shù); 根據(jù)所述第一類操作數(shù),對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作;以及根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組; 其中,所述重組方式包括:數(shù)據(jù)內(nèi)容重組和數(shù)據(jù)位置重組中的至少一種;所述數(shù)據(jù)內(nèi)容重組包括:對源寄存器執(zhí)行提取操作后提取出的數(shù)據(jù)進(jìn)行內(nèi)容重和對目標(biāo)寄存器執(zhí)行插入操作前對待插入的數(shù)據(jù)執(zhí)行內(nèi)容重組中的至少一種;所述數(shù)據(jù)位置重組包括:對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組和對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組中的至少一種。2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)據(jù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為所述對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組; 所述根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括: 將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置向右移動所述操作寬度; 或者, 將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置右側(cè)的數(shù)據(jù)向左移動所述操作寬度。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)據(jù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)內(nèi)容重組,所述數(shù)據(jù)內(nèi)容重組具體為對所述源寄存器中執(zhí)行提取操作后所述操作寬度的數(shù)據(jù)對應(yīng)的位置進(jìn)行重組; 所述根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括: 將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置I; 或者, 將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置O。4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,還包括: 對所述操作寬度的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一類操作數(shù)據(jù)還包括插入位置、操作寬度、待插入數(shù)據(jù);所述第一類操作數(shù)具體指示對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述待插入數(shù)據(jù)插入所述目的寄存器,所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組; 根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括: 將所述目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置向左移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置; 或者, 將所述目的寄存器中,所述插入位置,以及所述插入位置右側(cè)的位置向右移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括: 對所述待插入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一類操作數(shù)還包括提取位置、操作寬度、插入位置;所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù)、對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述操作寬度的數(shù)據(jù)插入所述目的寄存器;所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組和/或所述數(shù)據(jù)內(nèi)容重組; 所述根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組,包括: 對所述源寄存器以及所述目的寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置執(zhí)行數(shù)據(jù)位置重組,和/或,對所述操作寬度的數(shù)據(jù)執(zhí)行數(shù)據(jù)內(nèi)容重組。8.一種基于提取插入操作的重組裝置,其特征在于,包括: 譯碼部件,解析提取插入操作指令,所述提取插入操作指令中包括指示提取和/或插入操作的第一類操作數(shù),指示源寄存器和/或目的寄存器的第二類操作數(shù),以及指示重組方式的第三類操作數(shù); 操作單元,用于根據(jù)所述第一類操作數(shù),對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行提取和/或插入操作;以及根據(jù)所述第三類操作數(shù)指示的重組方式,對所述第二類操作數(shù)指示的源寄存器和/或目的寄存器中存儲的數(shù)據(jù)執(zhí)行重組; 其中,所述重組方式包括:數(shù)據(jù)內(nèi)容重組和數(shù)據(jù)位置重組中的至少一種;所述數(shù)據(jù)內(nèi)容重組包括:對源寄存器執(zhí)行提取操作后提取出的數(shù)據(jù)進(jìn)行內(nèi)容重和對目標(biāo)寄存器執(zhí)行插入操作前對將要插入的數(shù)據(jù)執(zhí)行內(nèi)容重組;所述數(shù)據(jù)位置重組包括:對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組和對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組中的至少一種。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)據(jù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為所述對源寄存器中執(zhí)行提取操作后存儲的剩余數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組; 所述操作單元,具體用于將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置左側(cè)的位置向右移動所述操作寬度;或者,將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置刪除,并將所述操作寬度的數(shù)據(jù)對應(yīng)的位置右側(cè)的數(shù)據(jù)向左移動所述操作寬度。10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一類操作數(shù)還包括:提取位置和操作寬度,所述第一類操作數(shù)據(jù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù),所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)內(nèi)容重組,所述數(shù)據(jù)內(nèi)容重組具體為對所述源寄存器中執(zhí)行提取操作后所述操作寬度的數(shù)據(jù)對應(yīng)的位置進(jìn)行重組; 所述操作單元,具體用于: 將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置I; 或者, 將所述源寄存器中,所述操作寬度的數(shù)據(jù)對應(yīng)的位置置O。11.根據(jù)權(quán)利要求9或10所述的裝置,其特征在于, 所述操作單元,還用于對所述操作寬度的數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一類操作數(shù)據(jù)還包括插入位置、操作寬度、待插入數(shù)據(jù);所述第一類操作數(shù)具體指示對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述待插入數(shù)據(jù)插入所述目的寄存器,所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組,所述數(shù)據(jù)位置重組具體為對目標(biāo)寄存器中執(zhí)行插入操作前存儲數(shù)據(jù)的數(shù)據(jù)位置進(jìn)行重組; 所述操作單元,具體用于將所述目的寄存器中,所述插入位置,以及所述插入位置左側(cè)的位置向左移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置;或者,將所述目的寄存器中,所述插入位置,以及所述插入位置右側(cè)的位置向右移動所述操作寬度得到目的插入位置,并將待插入數(shù)據(jù)寫入所述目的插入位置。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述操作單元,還用于對所述待插入數(shù)據(jù)執(zhí)行所述數(shù)據(jù)內(nèi)容重組。14.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一類操作數(shù)還包括提取位置、操作寬度、插入位置;所述第一類操作數(shù)具體指示對所述源寄存器中存儲的數(shù)據(jù)執(zhí)行提取操作以從所述提取位置開始提取出所述操作寬度的數(shù)據(jù)、對所述目的寄存器中存儲的數(shù)據(jù)執(zhí)行插入操作以根據(jù)所述插入位置、所述操作寬帶將所述操作寬度的數(shù)據(jù)插入所述目的寄存器;所述第三類操作數(shù)指示的重組方式具體為所述數(shù)據(jù)位置重組和/或所述數(shù)據(jù)內(nèi)容重組; 所述操作單元,具體用于對所述源寄存器以及所述目的寄存器中存儲數(shù)據(jù)的數(shù)據(jù)位置執(zhí)行數(shù)據(jù)位置重組,和/或,對所述操作寬度的數(shù)據(jù)執(zhí)行數(shù)據(jù)內(nèi)容重組。15.—種微處理器,其特征在于,包括如權(quán)利要求8?14任一項(xiàng)所述的基于提取插入操作的重組裝置。
【文檔編號】G06F9/30GK105892993SQ201610184867
【公開日】2016年8月24日
【申請日】2016年3月28日
【發(fā)明人】吳瑞陽, 汪文祥, 劉天義
【申請人】龍芯中科技術(shù)有限公司