用于產(chǎn)生按照數(shù)值順序的相差恒定跨度的整數(shù)的序列的處理器、方法、系統(tǒng)和指令的制作方法
【專利摘要】一個(gè)方面的方法包括接收指示目的地存儲(chǔ)位置的指令。響應(yīng)于該指令,將結(jié)果存儲(chǔ)在該目的地存儲(chǔ)位置中。該結(jié)果包括按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度。在一個(gè)方面中,在無(wú)需利用先前指令的結(jié)果來(lái)計(jì)算至少四個(gè)整數(shù)的情況下,存儲(chǔ)包括至少四個(gè)整數(shù)的序列的結(jié)果。公開(kāi)了其他方法、裝置、系統(tǒng)和指令。
【專利說(shuō)明】用于產(chǎn)生按照數(shù)值順序的相差恒定跨度的整數(shù)的序列的處理器、方法、系統(tǒng)和指令
【背景技術(shù)】
[0001]【技術(shù)領(lǐng)域】
[0002]實(shí)施例涉及處理器。具體而言,實(shí)施例涉及具有指令集的處理器,該指令集包括使用控制索引的指令。
[0003]背景信肩、
[0004]許多處理器具有單指令多數(shù)據(jù)(SMD)架構(gòu)。在SMD架構(gòu)中,打包數(shù)據(jù)指令、向量指令或者SMD指令可同時(shí)或并行地對(duì)多個(gè)數(shù)據(jù)元素或者多對(duì)數(shù)據(jù)元素進(jìn)行操作。處理器可具有并行執(zhí)行硬件,該并行執(zhí)行硬件響應(yīng)于打包數(shù)據(jù)指令來(lái)同時(shí)或并行地執(zhí)行多個(gè)操作。
[0005]多個(gè)數(shù)據(jù)元素可在一個(gè)寄存器或存儲(chǔ)器位置內(nèi)被打包為打包數(shù)據(jù)或向量數(shù)據(jù)。在打包數(shù)據(jù)中,寄存器或者其他存儲(chǔ)位置的位可邏輯地分成多個(gè)數(shù)據(jù)元素的序列。例如,256位寬打包數(shù)據(jù)寄存器可具有四個(gè)64位寬打包數(shù)據(jù)元素、八個(gè)32位寬打包數(shù)據(jù)元素、十六個(gè)16位寬打包數(shù)據(jù)元素等。每一打包數(shù)據(jù)元素可表示單獨(dú)的各段數(shù)據(jù)(例如,像素的紅色、綠色、藍(lán)色或α顏色分量、或復(fù)數(shù)的實(shí)部或虛部等等),各段數(shù)據(jù)可單獨(dú)地操作或與其他數(shù)據(jù)獨(dú)立地操作。
[0006]一些SMD架構(gòu)具有用于根據(jù)控制索引在一個(gè)或多個(gè)源打包數(shù)據(jù)內(nèi)靈活地重新安排打包數(shù)據(jù)元素的指令。此類指令的示例是置換指令和混洗指令??刂扑饕刂七@些指令如何重新安排打包數(shù)據(jù)元素。
【專利附圖】
【附圖說(shuō)明】
[0007]通過(guò)參考用來(lái)說(shuō)明本發(fā)明的實(shí)施例的以下描述和附圖,可最好地理解本發(fā)明。在附圖中:
[0008]圖1是用于處理可用來(lái)產(chǎn)生控制索引的指令的處理器的示例實(shí)施例的框圖。
[0009]圖2是處理打包數(shù)據(jù)重新安排控制索引產(chǎn)生指令的示例實(shí)施例的方法的示例實(shí)施例的流程框圖。
[0010]圖3是處理打包數(shù)據(jù)重新安排控制索引前體產(chǎn)生指令的示例實(shí)施例的方法的示例實(shí)施例的流程框圖。
[0011]圖4是用于處理可用來(lái)產(chǎn)生控制索引的指令的指令處理裝置的示例實(shí)施例的框圖。
[0012]圖5是處理存儲(chǔ)遵循數(shù)值模式的至少四個(gè)非負(fù)整數(shù)的序列的指令的方法的示例實(shí)施例的流程框圖。
[0013]圖6是可用來(lái)產(chǎn)生控制索引的指令的指令格式的實(shí)施例的框圖。
[0014]圖7Α是示出在一些實(shí)施例中通過(guò)指令存儲(chǔ)的整數(shù)序列可具有主要或完全基于指令的操作碼的數(shù)值模式的框圖。
[0015]圖7Β是框圖,示出在一些實(shí)施例中,通過(guò)指令存儲(chǔ)的整數(shù)序列可具有部分地基于指令的操作碼并且部分地基于由該指令指示的一個(gè)或多個(gè)數(shù)值模式限定參數(shù)的數(shù)值模式。
[0016]圖8是處理存儲(chǔ)按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列的指令的方法的示例實(shí)施例的流程框圖。
[0017]圖9是示出打包數(shù)據(jù)重新安排操作的示例實(shí)施例的框圖,該打包數(shù)據(jù)重新安排操作使用具有按照數(shù)值順序的偏移連續(xù)整數(shù)的值的打包數(shù)據(jù)重新安排控制索引,來(lái)從兩個(gè)經(jīng)對(duì)齊的打包數(shù)據(jù)中提取未對(duì)齊的打包數(shù)據(jù)以避免需要執(zhí)行未對(duì)齊加載。
[0018]圖10是處理存儲(chǔ)按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列的指令的方法的示例實(shí)施例的流程框圖,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定整數(shù)跨度。
[0019]圖11是處理存儲(chǔ)按照數(shù)值順序的至少四個(gè)非負(fù)相同奇偶性(例如均為偶數(shù)或均為奇數(shù))整數(shù)的序列的指令的方法的示例實(shí)施例的流程框圖。
[0020]圖12是示出打包數(shù)據(jù)重新安排操作的示例實(shí)施例的框圖,該打包數(shù)據(jù)重新安排操作使用打包數(shù)據(jù)重新安排控制索引以將實(shí)數(shù)(R)與虛數(shù)(頂)分開(kāi),該打包數(shù)據(jù)重新安排控制索引具有按照遞增數(shù)值順序的連續(xù)偶數(shù)的值。
[0021]圖13是處理存儲(chǔ)按照數(shù)值順序的至少四個(gè)整數(shù)的序列的指令的方法的示例實(shí)施例的流程框圖,其中整數(shù)中的最小整數(shù)從零偏移一偏移量,并且其中連續(xù)位置中的所有整數(shù)彼此相差一跨度。
[0022]圖14是處理用于存儲(chǔ)按照數(shù)值順序的連續(xù)非負(fù)整數(shù)的序列的第一控制索引前體產(chǎn)生指令和向每一整數(shù)應(yīng)用跨度和偏移量的第二指令的方法的示例實(shí)施例的流程框圖。
[0023]圖15是存儲(chǔ)紅、綠、藍(lán)、α四元數(shù)據(jù)的源打包數(shù)據(jù)的框圖。
[0024]圖16是包括存儲(chǔ)一個(gè)或多個(gè)整數(shù)序列的只讀存儲(chǔ)器(ROM)的處理器的示例實(shí)施例的框圖。
[0025]圖17A是示出用于存儲(chǔ)控制索引和控制索引前體的適當(dāng)格式的第一示例實(shí)施例的框圖。
[0026]圖17B是示出用于存儲(chǔ)控制索引和控制索引前體的適當(dāng)格式的第二示例實(shí)施例的框圖。
[0027]圖18是一組合適的打包數(shù)據(jù)寄存器的示例實(shí)施例的框圖。
[0028]圖19是包括存儲(chǔ)可用來(lái)產(chǎn)生控制索引的指令的機(jī)器可讀存儲(chǔ)介質(zhì)的制品的框圖。
[0029]圖20A示出示例性AVX指令格式,包括VEX前綴、實(shí)操作碼字段、ModR/M字節(jié)、SIB字節(jié)、位移字段以及IMM8。
[0030]圖20B示出來(lái)自圖20A的哪些字段構(gòu)成完整操作碼字段和基礎(chǔ)操作字段。
[0031 ] 圖21A是示出根據(jù)本發(fā)明的實(shí)施例的通用向量友好指令格式及其A類指令模板的框圖。
[0032]圖21B是示出根據(jù)本發(fā)明的實(shí)施例的通用向量友好指令格式及其B類指令模板的框圖。
[0033]圖22是示出根據(jù)本發(fā)明的實(shí)施例的示例性專用向量友好指令格式的框圖。
[0034]圖22B是示出根據(jù)本發(fā)明的實(shí)施例的構(gòu)成完整操作碼字段的具有專用向量友好指令格式的字段的框圖。
[0035]圖22C是示出根據(jù)本發(fā)明的實(shí)施例的構(gòu)成寄存器索引字段的具有專用向量友好指令格式的字段的框圖。
[0036]圖22D是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的構(gòu)成擴(kuò)充(augmentation)操作字段的具有專用向量友好指令格式的字段的框圖。
[0037]圖23是根據(jù)本發(fā)明的一個(gè)實(shí)施例的寄存器架構(gòu)的框圖。
[0038]圖24A是示出根據(jù)本發(fā)明的實(shí)施例的示例性有序流水線和示例性的寄存器重命名的無(wú)序發(fā)布/執(zhí)行流水線二者的框圖。
[0039]圖24B示出處理器核,該處理器核包括耦合到執(zhí)行引擎單元的前端單元,并且兩者耦合到存儲(chǔ)器單元。
[0040]圖25A是根據(jù)本發(fā)明實(shí)施例的單處理器核連同其到管芯上互連網(wǎng)絡(luò)的連接以及其2級(jí)(L2)高速緩存的本地子集的框圖。
[0041]圖25B是根據(jù)本發(fā)明的實(shí)施例的圖25A中的處理器核的一部分的展開(kāi)圖。
[0042]圖26是根據(jù)本發(fā)明實(shí)施例可具有一個(gè)以上的核、可具有集成存儲(chǔ)器控制器以及可具有集成圖形器件的處理器的框圖。
[0043]圖27所示為根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)的框圖。
[0044]圖28所示為根據(jù)本發(fā)明的實(shí)施例的第一更具體示例性系統(tǒng)的框圖。
[0045]圖29示出根據(jù)本發(fā)明的實(shí)施例的第二更具體的示例性系統(tǒng)的框圖。
[0046]圖30示出根據(jù)本發(fā)明的實(shí)施例的SoC的框圖。
[0047]圖31是根據(jù)本發(fā)明的實(shí)施例的對(duì)照使用軟件指令轉(zhuǎn)換器將源指令集中的二進(jìn)制指令轉(zhuǎn)換成目標(biāo)指令集中的二進(jìn)制指令的框圖。
【具體實(shí)施方式】
[0048]在以下描述中,陳述了諸多特定細(xì)節(jié)(例如特定處理器、方法、操作、指令、數(shù)值模式以及數(shù)據(jù)格式)。然而,應(yīng)當(dāng)理解,本發(fā)明的各實(shí)施例可以在不具有這些具體細(xì)節(jié)的情況下得到實(shí)施。在其他實(shí)例中,未詳細(xì)示出公知的電路、結(jié)構(gòu)和技術(shù)以免混淆對(duì)本描述的理解。
[0049]典型地,通過(guò)執(zhí)行對(duì)具有源打包數(shù)據(jù)元素的源打包數(shù)據(jù)操作數(shù)進(jìn)行操作的一系列通用指令,來(lái)從頭開(kāi)始漸進(jìn)地建立用于置換指令和混洗指令的控制索引。例如,產(chǎn)生控制索引的方法的一部分可包括執(zhí)行一系列通用打包數(shù)據(jù)算術(shù)指令以對(duì)源打包數(shù)據(jù)元素執(zhí)行一系列打包數(shù)據(jù)算術(shù)操作,以將源打包數(shù)據(jù)元素最終轉(zhuǎn)換為控制索引。
[0050]趨向于限制置換和混洗指令以及籠統(tǒng)的其它打包數(shù)據(jù)重新安排指令的有用性的一個(gè)因素是為了產(chǎn)生置換控制索引、混洗控制索引或其它打包數(shù)據(jù)重新安排控制索引而通常需要按順序執(zhí)行的指令的數(shù)量。可能需要若干指令(例如大約4到10個(gè)指令或甚至更多指令)來(lái)產(chǎn)生一組控制索引。此外,所需的指令的數(shù)量一般趨向于隨著打包數(shù)據(jù)元素的總數(shù)量增加而增加,由于打包數(shù)據(jù)寄存器的位寬增加,故隨時(shí)間傾向于如此。
[0051]執(zhí)行這些指令趨向于在處理時(shí)間、處理器資源使用率以及功耗方面是昂貴的。此夕卜,這些花費(fèi)趨向于減損或減少由打包數(shù)據(jù)重新安排指令提供的整體益處。在一些情況下,在已經(jīng)產(chǎn)生和使用控制索引之后可能丟棄控制索引,在此情況下,如果需求出現(xiàn),則可能需要從頭開(kāi)始重新產(chǎn)生控制索引。在其它情況下,在已經(jīng)產(chǎn)生和使用控制索引之后,可將控制索引存儲(chǔ)在主存儲(chǔ)器中,然后稍后在需要它們時(shí)經(jīng)由系統(tǒng)總線將它們從主存儲(chǔ)器取出。這可以有助于避免每當(dāng)需要控制索引時(shí)從頭開(kāi)始產(chǎn)生控制索引,但從主存儲(chǔ)器取出控制索引也趨向于花費(fèi)大量時(shí)間。
[0052]本申請(qǐng)中公開(kāi)了可用來(lái)產(chǎn)生用于其它指令(例如置換指令、混洗指令、其它打包數(shù)據(jù)重新安排指令以及使用控制索引的其它指令)的控制索引的指令。還公開(kāi)了用于執(zhí)行上述指令的處理器,在處理或執(zhí)行上述指令時(shí)由處理器執(zhí)行的方法,以及包含用于處理或執(zhí)行上述指令的一個(gè)或多個(gè)處理器的系統(tǒng)。本申請(qǐng)中別處公開(kāi)的各種處理器和系統(tǒng)是合適的。有利地,這些指令、處理器、方法和系統(tǒng)可有助于減少為了產(chǎn)生控制索引而需要執(zhí)行的指令的處理時(shí)間量和/或數(shù)量。
[0053]圖1是用于處理可用來(lái)產(chǎn)生控制索引的指令的處理器100的示例實(shí)施例的框圖。該處理器可以是各種復(fù)雜指令集計(jì)算(CISC)處理器、各種精簡(jiǎn)指令集計(jì)算(RISC)處理器、各種超長(zhǎng)指令字(VLIW)處理器、其各種混合、或完全其他類型的處理器中的任何處理器。在一些實(shí)施例中,該處理器可以是通用處理器(例如通用微處理器),不過(guò)這不是必須的。替換地,處理器可以是專用處理器。合適的專用處理器的示例包括但不限于,網(wǎng)絡(luò)處理器、通信處理器、加密處理器、圖形處理器、協(xié)處理器、嵌入式處理器、數(shù)字信號(hào)處理器(DSP)以及控制器(例如,微控制器),僅列舉數(shù)例。
[0054]處理器具有指令集架構(gòu)(ISA) 101。ISA表示處理器的架構(gòu)中涉及編程的那部分。ISA通常包括原生指令、架構(gòu)寄存器、數(shù)據(jù)類型、尋址模式、存儲(chǔ)器架構(gòu)、中斷和異常處理以及處理器的外部輸入和輸出(I/O)。ISA與微架構(gòu)不同,微架構(gòu)通常表示選擇用于實(shí)現(xiàn)ISA的特定處理器設(shè)計(jì)技術(shù)。帶有不同的微架構(gòu)的處理器可以共享共同的ISA。
[0055]ISA包括架構(gòu)可見(jiàn)的或架構(gòu)的寄存器(例如,架構(gòu)寄存器組)102。架構(gòu)寄存器表示處理器上的存儲(chǔ)位置。架構(gòu)寄存器此處也可以被簡(jiǎn)稱為寄存器。短語(yǔ)架構(gòu)寄存器、寄存器組、以及寄存器在本申請(qǐng)中用于表示對(duì)軟件和/或編程者可見(jiàn)(例如,軟件可見(jiàn)的)的寄存器和/或由通用宏指令指定用來(lái)標(biāo)識(shí)操作數(shù)的寄存器,除非另外指定或清楚明顯可知。這些寄存器與給定微架構(gòu)中的其他非架構(gòu)的或在架構(gòu)上不可見(jiàn)的寄存器(例如,指令所使用的臨時(shí)寄存器、重新排序緩沖器、引退寄存器、由微指令使用的微架構(gòu)只讀寄存器、等等)不同。所示出的架構(gòu)可見(jiàn)的寄存器包括打包數(shù)據(jù)寄存器103。每個(gè)打包數(shù)據(jù)寄存器可操作用于存儲(chǔ)打包數(shù)據(jù)、向量數(shù)據(jù)或者SIMD數(shù)據(jù)。
[0056]所示出的ISA包括處理器支持的指令集104。指令集的這些指令表示宏指令(例如,提供給處理器以供執(zhí)行的指令),與微指令或微操作(例如,處理器的解碼器解碼宏指令得到的微指令或微操作)不同。該處理器可包括用于執(zhí)行該指令集的指令的專用或特定邏輯(例如可能具有一些固件或軟件的電路系統(tǒng))。
[0057]該指令集包括使用控制索引的一個(gè)或多個(gè)指令105。如上所述,在一些實(shí)施例中,這些指令可包括一個(gè)或多個(gè)置換指令、混洗指令或其它打包數(shù)據(jù)重新安排指令106。作為另一選擇,如將在下文中進(jìn)一步討論,在一些實(shí)施例中,這些指令可包括一個(gè)或多個(gè)聚集指令或加載指令107,這一個(gè)或多個(gè)聚集指令或加載指令107用于利用控制索引從處理器外的存儲(chǔ)器聚集或加載不連續(xù)的數(shù)據(jù)。
[0058]根據(jù)本發(fā)明的實(shí)施例,該指令集還包括分別可用來(lái)產(chǎn)生控制索引的一個(gè)或多個(gè)指令108。在一些實(shí)施例中,這些指令可包括一個(gè)或多個(gè)控制索引產(chǎn)生指令109,用于產(chǎn)生實(shí)際控制索引。每個(gè)控制索引產(chǎn)生指令可用于完全在單個(gè)宏指令的執(zhí)行范圍內(nèi)產(chǎn)生控制索弓I。相反,常規(guī)地,通常需要執(zhí)行一系列通用宏指令來(lái)逐漸或漸進(jìn)地從頭開(kāi)始建立控制索引。
[0059]在一些實(shí)施例中,指令可包括一個(gè)或多個(gè)控制索引前體產(chǎn)生指令110,這些指令不產(chǎn)生實(shí)際控制索引,而產(chǎn)生控制索引前體。每個(gè)控制索引前體產(chǎn)生指令可用于完全在單個(gè)宏指令的執(zhí)行范圍內(nèi)產(chǎn)生控制索引前體。并非從頭開(kāi)始產(chǎn)生實(shí)際控制索引,控制索引前體可用作有用的起始點(diǎn)或前導(dǎo)值,通過(guò)一個(gè)或多個(gè)其它指令可將該起始點(diǎn)或前導(dǎo)值高效地轉(zhuǎn)換成實(shí)際控制索引。有利地,與從頭開(kāi)始相比,前體的使用可允許更迅速地和/或利用更少指令來(lái)產(chǎn)生實(shí)際控制索引。
[0060]處理器還包括執(zhí)行邏輯111。執(zhí)行邏輯用于執(zhí)行或處理指令集的指令。
[0061]圖2是處理打包數(shù)據(jù)重新安排控制索引產(chǎn)生指令的示例實(shí)施例的方法212的示例實(shí)施例的流程框圖。在框213接收打包數(shù)據(jù)重新安排控制索引產(chǎn)生指令。所接收的指令指定或以其它方式指示第一目的地存儲(chǔ)位置。在一些方面中,可通過(guò)該指令的編碼的多個(gè)位或一個(gè)或多個(gè)字段來(lái)明確地指定第一目的地存儲(chǔ)位置。在其它方面中,第一目的地存儲(chǔ)位置對(duì)于該指令可以是隱式的。
[0062]在框214,響應(yīng)于打包數(shù)據(jù)重新安排控制索引產(chǎn)生指令和/或作為其結(jié)果,將結(jié)果存儲(chǔ)在第一目的地存儲(chǔ)位置中。該結(jié)果包括表示打包數(shù)據(jù)重新安排控制索引的至少四個(gè)非負(fù)整數(shù)的序列。上述至少四個(gè)整數(shù)典型地具有多個(gè)不同的值(即它們不全是相同的整數(shù)值)。在多個(gè)實(shí)施例中,該序列可包括表示打包數(shù)據(jù)重新安排控制索引的至少8個(gè)、至少16個(gè)、至少32個(gè)、或至少64個(gè)非負(fù)整數(shù)。該結(jié)果和/或整數(shù)的序列可以是本申請(qǐng)中別處公開(kāi)的結(jié)果和/或整數(shù)的序列中的任一個(gè)。在一些實(shí)施例中,可完全在單個(gè)宏指令的執(zhí)行的范圍內(nèi)產(chǎn)生該結(jié)果和/或整數(shù)的序列(例如,整數(shù)的值可能不依賴于該程序流中的任何先前指令)。
[0063]為了進(jìn)一步說(shuō)明某些概念,并且雖然本發(fā)明不限于此方面,在框215處接收打包數(shù)據(jù)重新安排指令。在多個(gè)方面中,該指令可以是置換指令、混洗指令、或用于根據(jù)打包數(shù)據(jù)重新安排控制索引來(lái)重新安排一個(gè)或多個(gè)源打包數(shù)據(jù)中的數(shù)據(jù)元素的另一類型的打包數(shù)據(jù)重新安排指令。該指令指示打包數(shù)據(jù)重新安排控制索引(例如指定第一目的地存儲(chǔ)位置)。該指令還指定或以其它方式指示具有打包數(shù)據(jù)元素的至少一個(gè)源打包數(shù)據(jù),并指定或以其它方式指示第二目的地存儲(chǔ)位置。
[0064]在框216,響應(yīng)于打包數(shù)據(jù)重新安排指令和/或作為其結(jié)果,將打包數(shù)據(jù)結(jié)果存儲(chǔ)在第二目的地存儲(chǔ)位置中。打包數(shù)據(jù)結(jié)果包括來(lái)自至少一個(gè)源打包數(shù)據(jù)的根據(jù)打包數(shù)據(jù)重新安排控制索引重新安排的數(shù)據(jù)元素。在一些實(shí)施例中,如同許多置換和混洗指令的情況,打包數(shù)據(jù)重新安排控制索引可標(biāo)識(shí)、選擇或以其它方式建立至少一個(gè)源打包數(shù)據(jù)內(nèi)的特定數(shù)據(jù)元素的索引。可將有索引的數(shù)據(jù)元素存儲(chǔ)在與索引在位置上對(duì)應(yīng)的結(jié)果數(shù)據(jù)元素中。
[0065]圖3是處理打包數(shù)據(jù)重新安排控制索引前體產(chǎn)生指令的示例實(shí)施例的方法317的示例實(shí)施例的流程框圖。在框318接收打包數(shù)據(jù)重新安排控制索引前體產(chǎn)生指令。所接收的指令指定或以其它方式指示目的地存儲(chǔ)位置。
[0066]在框319,響應(yīng)于打包數(shù)據(jù)重新安排控制索引前體產(chǎn)生指令和/或作為其結(jié)果,將結(jié)果存儲(chǔ)在目的地存儲(chǔ)位置中。該結(jié)果包括表示打包數(shù)據(jù)重新安排控制索引前體的至少四個(gè)非負(fù)整數(shù)的序列。上述至少四個(gè)整數(shù)典型地具有多個(gè)不同的值。在多個(gè)實(shí)施例中,該序列可包括表示打包數(shù)據(jù)重新安排控制索引前體的至少8個(gè)、至少16個(gè)、至少32個(gè)、或至少64個(gè)非負(fù)整數(shù)。該結(jié)果和/或整數(shù)序列可以是本申請(qǐng)中別處公開(kāi)的結(jié)果和/或整數(shù)序列中的任一個(gè)。在一些實(shí)施例中,可完全在單個(gè)宏指令的執(zhí)行的范圍內(nèi)產(chǎn)生該結(jié)果和/或整數(shù)序列(例如,整數(shù)的值可能不依賴于該程序流中的任何先前指令)。
[0067]為了進(jìn)一步說(shuō)明某些概念,并且雖然本發(fā)明不限于此方面,但在框320,執(zhí)行至少一個(gè)附加指令(例如至少一個(gè)通用算術(shù)指令)的執(zhí)行,以將打包數(shù)據(jù)重新安排控制索引前體轉(zhuǎn)換成打包數(shù)據(jù)重新安排控制索引。至少一個(gè)附加指令中的第一指令可將目的地存儲(chǔ)位置指示為打包數(shù)據(jù)重新安排控制索引前體的源。
[0068]然后,在框321,可執(zhí)行指示打包數(shù)據(jù)重新安排控制索引的打包數(shù)據(jù)重新安排指令。打包數(shù)據(jù)重新安排指令的操作可以類似于先前描述的操作。
[0069]在圖2和3中,已經(jīng)示出了框215、216、320和321處的操作,以更好地說(shuō)明某些概念。然而,應(yīng)理解本發(fā)明不限于在這些框處執(zhí)行的操作。其它實(shí)施例涉及各個(gè)打包數(shù)據(jù)重新安排控制索引產(chǎn)生指令的方法和操作,另外的其它實(shí)施例涉及各個(gè)打包數(shù)據(jù)重新安排控制索引前體產(chǎn)生指令的方法和操作,這些方法和操作不限于其它后續(xù)指令的操作。
[0070]圖4是指令處理裝置400的示例實(shí)施例的框圖。指令處理裝置可以是處理器,或可以是處理器的部分。例如,在一些實(shí)施例中,指令處理裝置可以是圖1的處理器100或類似設(shè)備,或者可以是圖1的處理器100或類似設(shè)備的部分。替代地,指令處理裝置可被包括在不同的處理器或電子系統(tǒng)(例如本申請(qǐng)中公開(kāi)的其它處理器或系統(tǒng)之一)之中。
[0071]指令處理裝置可接收可用來(lái)產(chǎn)生控制索引的指令408。該指令可表示本申請(qǐng)別處公開(kāi)的可用來(lái)產(chǎn)生控制索引的指令的多個(gè)實(shí)施例中的任一個(gè)實(shí)施例。該指令可表示機(jī)器指令、宏指令或類似的控制信號(hào)。指令處理裝置可具有專用的或特定的電路或其它邏輯(例如,與固件和/或軟件結(jié)合的硬件),用于處理指令和/或響應(yīng)于該指令、作為該指令的結(jié)果和/或根據(jù)該指令來(lái)存儲(chǔ)結(jié)果。
[0072]所示出的指令處理裝置包括指令解碼器422。解碼器可接收和解碼高級(jí)機(jī)器指令或宏指令,并且輸出一個(gè)或多個(gè)較低級(jí)的微操作、微代碼入口點(diǎn)、微指令或者反映和/或從原始較高級(jí)指令導(dǎo)出的其它較低級(jí)的指令或控制信號(hào)。一個(gè)或多個(gè)較低級(jí)指令或控制信號(hào)可通過(guò)一個(gè)或多個(gè)較低級(jí)(例如,電路級(jí)或硬件級(jí))操作來(lái)實(shí)現(xiàn)較高級(jí)指令的操作。該解碼器可以使用各種不同的機(jī)制來(lái)實(shí)現(xiàn),包括但不限于,微代碼只讀存儲(chǔ)器(ROM)、查找表、硬件實(shí)現(xiàn)、可編程邏輯陣列(PLA)和本領(lǐng)域公知的用于實(shí)現(xiàn)解碼器的其它機(jī)制。
[0073]或者,代替具有解碼器422,在一個(gè)或多個(gè)其它實(shí)施例中,該裝置可具有指令仿真器、轉(zhuǎn)換器、變形器(morpher)、解釋器或者其它指令變換邏輯。各種不同類型的指令變換邏輯在本領(lǐng)域中是已知的,并且可在軟件、硬件、固件、或者其組合中實(shí)現(xiàn)。指令變換邏輯可接收指令,并且仿真、轉(zhuǎn)換、變形、解釋、或者以其它方式將該指令轉(zhuǎn)換成一個(gè)或多個(gè)對(duì)應(yīng)的導(dǎo)出指令或控制信號(hào)。在又一個(gè)其它實(shí)施例中,指令處理裝置可具有指令變換邏輯和解碼器二者。例如,該指令處理裝置可具有用于將接收到的指令變換成一個(gè)或多個(gè)中間指令的指令變換邏輯、以及用于將一個(gè)或多個(gè)中間指令解碼成可由該指令處理裝置的原生硬件執(zhí)行的一個(gè)或多個(gè)較低級(jí)指令或控制信號(hào)的解碼器。指令變換邏輯中的一些或全部可位于指令處理裝置的其余部分的管芯外,諸如在單獨(dú)的管芯上或在管芯外的存儲(chǔ)器中。
[0074]再次參考圖4,用來(lái)產(chǎn)生控制索引的指令408的指令明確地(例如通過(guò)一個(gè)或多個(gè)字段)指定或以其它方式(例如隱含地指示)指示目的地存儲(chǔ)位置427。如所示,在一些實(shí)施例中,目的地存儲(chǔ)位置可以在指令處理裝置的一組打包數(shù)據(jù)寄存器403內(nèi)?;蛘撸康牡卮鎯?chǔ)位置可以是另一個(gè)寄存器或存儲(chǔ)器位置。打包數(shù)據(jù)寄存器是架構(gòu)可見(jiàn)的位于處理器上的存儲(chǔ)位置,它可通過(guò)使用公知技術(shù)以不同方式實(shí)現(xiàn)于不同的微架構(gòu)中,并且不限于任何已知的特定類型的電路。多種不同類型的寄存器可適用,只要它們能夠存儲(chǔ)并提供在本申請(qǐng)中描述的數(shù)據(jù)。合適類型的寄存器的示例包括但不限于專用物理寄存器、使用寄存器重命名的動(dòng)態(tài)分配的物理寄存器及其組合。
[0075]指令處理裝置還包括執(zhí)行單元423。執(zhí)行單元與解碼器422和目的地存儲(chǔ)位置427耦合。執(zhí)行單元可從解碼器接收一個(gè)或多個(gè)微操作、微代碼進(jìn)入點(diǎn)、微指令、其它指令或其它控制信號(hào),它們反映了指令408或者是從指令408導(dǎo)出的。作為示例,執(zhí)行單元可包括算術(shù)邏輯單元、邏輯單元、算術(shù)單元、功能單元或類似物。執(zhí)行單元可包括可能具有其它邏輯(例如軟件、固件或組合)的專用或特定硬件邏輯(例如集成電路),用于執(zhí)行指令(例如執(zhí)行一個(gè)或多個(gè)微指令)和/或存儲(chǔ)響應(yīng)于該指令的結(jié)果。
[0076]執(zhí)行單元用于響應(yīng)于指令408和/或作為指令408的結(jié)果將結(jié)果428存儲(chǔ)在目的地存儲(chǔ)位置427中。如圖所示,在多個(gè)實(shí)施例中,該結(jié)果可包括至少四個(gè)整數(shù)的序列。在指令408是控制索引產(chǎn)生指令的實(shí)施例中,每個(gè)整數(shù)可表示控制索引。在指令408是控制索引前體產(chǎn)生指令的實(shí)施例中,每個(gè)整數(shù)可表示控制索引前體。
[0077]在一些實(shí)施例中,執(zhí)行單元可包括用于計(jì)算至少四個(gè)整數(shù)的序列的計(jì)算邏輯424。這些計(jì)算邏輯可以是專用或特定電路(例如用于使用列掃描方法來(lái)計(jì)算整數(shù)、迭代地計(jì)算整數(shù)等等)。在其它實(shí)施例中,執(zhí)行單元可響應(yīng)于該指令從存儲(chǔ)器426 (例如與執(zhí)行單元一起在管芯上的非架構(gòu)可見(jiàn)的只讀存儲(chǔ)器(ROM))訪問(wèn)至少四個(gè)整數(shù)的序列的已有副本425。例如,參見(jiàn)下文對(duì)圖16的討論。在這些實(shí)施例中的任一實(shí)施例中,通常不從管芯外的主存儲(chǔ)器或經(jīng)由系統(tǒng)總線來(lái)訪問(wèn)該整數(shù)序列。
[0078]在一些實(shí)施例中,該結(jié)果可包括遵循數(shù)值模式的至少4個(gè)、至少8個(gè)、至少16個(gè)、至少32個(gè)或至少64個(gè)非負(fù)整數(shù)的序列。在一些實(shí)施例中,遵循數(shù)值模式的這些整數(shù)可以是按照數(shù)值順序的連續(xù)非負(fù)整數(shù)(例如0、1、2、3、4、5、6和7)。在其它實(shí)施例中,遵循數(shù)值模式的這些整數(shù)可以是按照數(shù)值順序的非負(fù)整數(shù),其中處于連續(xù)位置的所有整數(shù)相差至少為2的恒定整數(shù)跨度。在一些實(shí)施例中,該跨度可等于2,并且整數(shù)序列可以是按照數(shù)值順序的連續(xù)相同奇偶性整數(shù)的序列。例如,連續(xù)相同奇偶性整數(shù)可以是連續(xù)的偶數(shù)(例如O、
2、4、6、8、10、12和14)或連續(xù)的奇數(shù)(例如1、3、5、7、9、11、13和15)。在其它實(shí)施例中,跨度(N)可以大于2(例如跨度可以是3、4、8、16等等),并且整數(shù)序列可包括該跨度的連續(xù)整數(shù)倍數(shù)(例如0、N、2N、3N、4N、5N、6N和 7N)。
[0079]在一些實(shí)施例中,該指令可明確地指定或以其它方式指示一個(gè)或多個(gè)數(shù)值模式限定參數(shù)(例如整數(shù)偏移量、恒定整數(shù)跨度、整數(shù)循環(huán)量(integer rotation amount)、整數(shù)偏移量和恒定整數(shù)跨度、等等)。在一些實(shí)施例中,該指令可指示正整數(shù)偏移量(K),并且整數(shù)中的最小整數(shù)可從零偏移該整數(shù)偏移量(例如在連續(xù)整數(shù)K、K+l、K+2、K+3、K+4、K+5、K+6和K+7的情況下)。在一些實(shí)施例中,該指令可指示正整數(shù)偏移量⑷和恒定的整數(shù)跨度(N),并且這些整數(shù)可以是從零偏移的跨度的連續(xù)整數(shù)倍數(shù)(例如K、N+K、2N+K、3N+K、4N+K、5N+K.6N+K以及7N+K)。替代地,結(jié)果和/或至少四個(gè)整數(shù)的序列可以是本申請(qǐng)中別處針對(duì)用來(lái)產(chǎn)生控制索引的多個(gè)指令實(shí)施例公開(kāi)的結(jié)果和/或至少四個(gè)整數(shù)的序列中的任一個(gè)。在一些實(shí)施例中,數(shù)值模式完全或至少主要基于指令的操作碼或操作碼和一個(gè)或多個(gè)數(shù)值模式限定參數(shù),或通過(guò)操作碼或操作碼和一個(gè)或多個(gè)數(shù)值模式限定參數(shù)固定。在另外的實(shí)施例中,整數(shù)序列不需要遵循數(shù)值模式(例如它們可能看起來(lái)是隨機(jī)的)。
[0080]為了避免混淆描述,已示出和描述了相對(duì)簡(jiǎn)單的指令處理裝置400。在其它實(shí)施例中,該指令處理裝置可任選地包括其它公知組件,諸如舉例而言,指令提取單元、指令調(diào)度單元、分支預(yù)測(cè)單元、指令和數(shù)據(jù)的高速緩存、指令和數(shù)據(jù)的轉(zhuǎn)換后備緩沖器(translationlookaside buffer)、預(yù)取緩沖器、微指令隊(duì)列、微指令定序器、總線接口單元、第二或更高級(jí)高速緩存、引退單元、寄存器重命名單元、處理器中包含的其它組件、以及上述的各種組合。其它實(shí)施例可具有多個(gè)核、邏輯處理器或執(zhí)行引擎。可用于執(zhí)行本申請(qǐng)中公開(kāi)的指令實(shí)施例的執(zhí)行單元可被包含在核、邏輯處理器或執(zhí)行引擎中的至少一個(gè)、至少兩個(gè)、大多數(shù)或全部中。應(yīng)理解,實(shí)際上在處理器中存在這些組件的多種不同的組合和配置,并且本發(fā)明的范圍不限于任何特定的組合或配置。
[0081]圖5是處理用于產(chǎn)生控制索引的指令的方法530的示例實(shí)施例的流程框圖,該指令存儲(chǔ)遵循數(shù)值模式的至少四個(gè)非負(fù)整數(shù)的序列。在框531,接收該指令。該指令指定或以其它方式指示目的地存儲(chǔ)位置。
[0082]在框532,響應(yīng)于該指令和/或作為其結(jié)果,將結(jié)果存儲(chǔ)在目的地存儲(chǔ)位置中。該結(jié)果包括遵循數(shù)值模式的至少四個(gè)整數(shù)的序列。在多個(gè)實(shí)施例中,該結(jié)果可包括遵循數(shù)值模式的至少8個(gè)、至少16個(gè)、至少32個(gè)、至少64個(gè)或甚至更多個(gè)非負(fù)整數(shù)的序列。該整數(shù)序列可以是遵循本申請(qǐng)中別處公開(kāi)的多種數(shù)值模式的整數(shù)序列中的任一個(gè)。通常,上述整數(shù)中的至少兩個(gè)、至少四個(gè)、至少一半或甚至全部具有不同的值(即上述整數(shù)典型地不全相等)。
[0083]圖6是可用來(lái)產(chǎn)生控制索引的指令608的指令格式的實(shí)施例的框圖。該指令格式包括操作碼633。操作碼可表示該指令格式的用于標(biāo)識(shí)該指令的多個(gè)位或一個(gè)或多個(gè)字段。該指令格式還可包括目的地存儲(chǔ)位置634。在所示實(shí)施例中,該指令格式包括該指令格式中的用于明確地指定目的地存儲(chǔ)位置的多個(gè)位或一個(gè)或多個(gè)字段。替代地,該目的地存儲(chǔ)位置可以是該指令隱含的。
[0084]在一些實(shí)施例中,該指令格式未明確地指定、隱含地指示或以其它方式指示具有將要由指令操作的打包數(shù)據(jù)元素的架構(gòu)可見(jiàn)的源存儲(chǔ)位置(例如打包數(shù)據(jù)寄存器或主存儲(chǔ)器位置)635。在本發(fā)明的實(shí)施例中,由本申請(qǐng)中公開(kāi)的指令存儲(chǔ)的整數(shù)序列、控制索引以及控制索引前體不是從架構(gòu)可見(jiàn)的源存儲(chǔ)位置中的打包數(shù)據(jù)元素計(jì)算得出或以其它方式導(dǎo)出的。作為對(duì)比,如【背景技術(shù)】部分中所討論,常規(guī)地,典型地通過(guò)執(zhí)行對(duì)架構(gòu)可見(jiàn)的源打包數(shù)據(jù)寄存器中的打包數(shù)據(jù)元素進(jìn)行操作、直到將打包數(shù)據(jù)元素最終轉(zhuǎn)換成置換或混洗控制索引的一系列通用指令(例如通用打包數(shù)據(jù)算術(shù)指令),來(lái)從頭開(kāi)始逐漸建立置換和混洗控制索引。在本發(fā)明的實(shí)施例中,由本申請(qǐng)中公開(kāi)的指令存儲(chǔ)的整數(shù)序列、控制索引以及控制索引前體完全在單個(gè)指令的執(zhí)行范圍內(nèi)產(chǎn)生,并且不基于按照程序順序的任何先前指令的結(jié)果。
[0085]在一些實(shí)施例中,該指令格式可具有用于明確地指定一個(gè)或多個(gè)數(shù)值模式限定參數(shù)636的一個(gè)或多個(gè)源操作數(shù)和/或一個(gè)或多個(gè)立即數(shù)。替代地,一個(gè)或多個(gè)數(shù)值模式限定參數(shù)可由該指令隱含地指示(例如通過(guò)由該指令隱含地指示的寄存器來(lái)提供)。一個(gè)或多個(gè)模式限定參數(shù)中的每一個(gè)可影響作為指令的結(jié)果而存儲(chǔ)的結(jié)果或整數(shù)序列的數(shù)值模式。一個(gè)或多個(gè)模式限定參數(shù)中的每一個(gè)可影響該序列或結(jié)果中的每個(gè)整數(shù)的值。一個(gè)或多個(gè)模式限定參數(shù)中的每一個(gè)可用于對(duì)該指令隱含的數(shù)值模式限定方程或關(guān)系進(jìn)行求值。合適的數(shù)值模式限定參數(shù)的幾個(gè)代表性示例包括但不限于從零的整數(shù)偏移量、整數(shù)跨度、整數(shù)循環(huán)量以及上述參數(shù)的組合(例如從零的整數(shù)偏移量以及整數(shù)跨度)。
[0086]在其它實(shí)施例中,該指令可能不指定或以其它方式指示任何數(shù)值模式限定參數(shù)。在一些實(shí)施例中(例如在該指令不指定或以其它方式指示任何數(shù)值模式限定參數(shù)的實(shí)施例中),該指令可能不具有(例如指定或以其它方式指示)任何源操作數(shù)637。
[0087]圖7A是框圖,示出在一些實(shí)施例中,通過(guò)指令708A存儲(chǔ)在目的地存儲(chǔ)位置727A中的結(jié)果728A中的整數(shù)序列740A可具有完全或至少主要基于738該指令的操作碼733A的數(shù)值模式。該指令具有操作碼和用于指定目的地存儲(chǔ)位置727A的位或一個(gè)或多個(gè)字段734A。注意,本實(shí)施例的指令不指定或以其它方式指示任何數(shù)值模式限定參數(shù),或用于該目的的任何源操作數(shù)。該指令的執(zhí)行導(dǎo)致在目的地存儲(chǔ)位置中存儲(chǔ)該結(jié)果。該結(jié)果包括具有該數(shù)值模式的整數(shù)序列。在這些實(shí)施例中,整數(shù)序列的數(shù)值模式完全地或至少主要地基于該指令的操作碼。在這些實(shí)施例中,整數(shù)序列的數(shù)值模式對(duì)于該指令的操作碼是固定或恒定的。例如,該序列中的連續(xù)整數(shù)之間的差可完全地或至少主要地基于該指令的操作碼,和/或?qū)τ谠撝噶畹牟僮鞔a是固定或恒定的。在標(biāo)識(shí)操作碼之后,可固定整數(shù)序列和它們的數(shù)值模式(即可能不依賴于該指令的任何源操作數(shù))。在一些實(shí)施例中,該指令/操作碼可能僅能夠存儲(chǔ)一個(gè)特定的整數(shù)序列和/或一個(gè)特定的數(shù)值模式。作為比較,當(dāng)通用算術(shù)指令對(duì)源打包數(shù)據(jù)進(jìn)行操作以產(chǎn)生置換或混洗控制索引時(shí),置換或混洗控制索引不具有完全或甚至主要基于通用算術(shù)指令的操作數(shù)的數(shù)值模式,而是具有基于源打包數(shù)據(jù)的數(shù)值模式。
[0088]圖7B是框圖,示出由指令708B存儲(chǔ)在目的地存儲(chǔ)位置中的結(jié)果728B中的整數(shù)序列740B可具有部分地基于該指令的操作碼733B并且部分地基于739由該指令指示的一個(gè)或多個(gè)數(shù)值模式限定參數(shù)736的數(shù)值模式。該數(shù)值模式完全地或至少主要地基于操作碼和一個(gè)或多個(gè)數(shù)值模式限定參數(shù)。該指令具有操作碼、用于指定目的地存儲(chǔ)位置727B的位或一個(gè)或多個(gè)字段734B,并且指定或以其它方式指示一個(gè)或多個(gè)數(shù)值模式限定參數(shù)736。該指令的執(zhí)行導(dǎo)致在目的地存儲(chǔ)位置中存儲(chǔ)該結(jié)果。該結(jié)果包括具有該數(shù)值模式的整數(shù)序列。在這些實(shí)施例中,整數(shù)序列的數(shù)值模式部分地基于指令的操作碼并且部分地基于由該指令指示的一個(gè)或多個(gè)數(shù)值模式限定參數(shù),但完全地或至少主要地基于操作碼和一個(gè)或多個(gè)數(shù)值模式限定參數(shù)(即,不基于由先前指令作為結(jié)果存儲(chǔ)的源打包數(shù)據(jù))。
[0089]圖8是處理用于產(chǎn)生控制索引的指令的方法830的示例實(shí)施例的流程框圖,該指令存儲(chǔ)按照數(shù)值順序的至少四個(gè)連續(xù)非負(fù)整數(shù)的序列。在框831,接收該指令。該指令指定或以其它方式指示目的地存儲(chǔ)位置。
[0090]在框832,響應(yīng)于該指令和/或作為其結(jié)果,將結(jié)果存儲(chǔ)在目的地存儲(chǔ)位置中。該結(jié)果包括按照數(shù)值順序的至少四個(gè)連續(xù)非負(fù)整數(shù)的序列。在一些實(shí)施例中,該結(jié)果可包括目的地存儲(chǔ)位置中按照數(shù)值順序的至少8個(gè)、至少16個(gè)、至少32個(gè)、至少64個(gè)或甚至更多個(gè)連續(xù)非負(fù)整數(shù)的序列。在不同實(shí)施例中,連續(xù)整數(shù)的序列可以包括表1-3中所示出的任一個(gè)。[0091]表1列出對(duì)于不同整數(shù)數(shù)量,按照遞增數(shù)值順序的連續(xù)非負(fù)整數(shù)的序列的示例實(shí)施例。
[0092]表1.[0093]
【權(quán)利要求】
1.一種方法,包括: 接收指令,所述指令指示目的地存儲(chǔ)位置;以及 響應(yīng)于所述指令,將結(jié)果存儲(chǔ)在所述目的地存儲(chǔ)位置中,所述結(jié)果包括按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中,在無(wú)需利用先前指令的結(jié)果來(lái)計(jì)算所述至少四個(gè)整數(shù)的情況下,存儲(chǔ)包括所述至少四個(gè)整數(shù)的序列的結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,接收所述指令包括接收控制索引產(chǎn)生指令,并且存儲(chǔ)所述結(jié)果包括將所述至少四個(gè)整數(shù)的序列存儲(chǔ)為至少四個(gè)相應(yīng)的控制索引。
3.如權(quán)利要求1所述的方法,其特征在于,通過(guò)所述指令的操作碼來(lái)確定存儲(chǔ)按照數(shù)值順序的所述整數(shù),其中連續(xù)位置中的整數(shù)相差恒定跨度。
4.如權(quán)利要求1所述的方法,其特征在于,接收所述指令包括接收指定所述恒定跨度的指令。
5.如權(quán)利要求1所述的方法,其特征在于,接收所述指令包括接收指定整數(shù)偏移量的指令,并且存儲(chǔ)包括存儲(chǔ)所述至少四個(gè)整數(shù)中與零相差所述整數(shù)偏移量的最小整數(shù)。
6.如權(quán)利要求1所述的方法,其特征在于,接收所述指令包括接收未指示在架構(gòu)可見(jiàn)存儲(chǔ)位置中的源操作數(shù)的指令。
7.如權(quán)利要求1所 述的方法,其特征在于,存儲(chǔ)所述結(jié)果包括在所述目的地存儲(chǔ)位置中存儲(chǔ)按照數(shù)值順序的至少四個(gè)非負(fù)連續(xù)相同奇偶性整數(shù)的序列。
8.如權(quán)利要求1所述的方法,其特征在于,存儲(chǔ)所述結(jié)果包括存儲(chǔ)以下之一:
O, 2,4,6,8,10,12,14 ;
O, 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 ;以及
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62。
9.如權(quán)利要求1所述的方法,其特征在于,存儲(chǔ)所述結(jié)果包括存儲(chǔ)以下之一:
1,3,5,7,9,11,13,15 ;
I, 3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 ;以及
I,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63。
10.如權(quán)利要求1所述的方法,其特征在于,存儲(chǔ)所述結(jié)果包括存儲(chǔ)按照數(shù)值順序的至少8個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差所述恒定跨度。
11.如權(quán)利要求1所述的方法,其特征在于,還包括從與正在執(zhí)行所述指令的執(zhí)行單元一起位于管芯上的非架構(gòu)可見(jiàn)只讀存儲(chǔ)位置訪問(wèn)按照數(shù)值順序的所述至少四個(gè)非負(fù)整數(shù)的序列。
12.一種裝置,包括: 目的地存儲(chǔ)位置;以及 與所述目的地存儲(chǔ)位置耦合的執(zhí)行單元,所述執(zhí)行單元用于,響應(yīng)于指示所述目的地存儲(chǔ)位置的指令,將結(jié)果存儲(chǔ)在所述目的地存儲(chǔ)位置中,所述結(jié)果包括按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中,所述執(zhí)行單元用于,在無(wú)需利用先前指令的結(jié)果來(lái)計(jì)算所述至少四個(gè)整數(shù)的情況下,存儲(chǔ)包括所述至少四個(gè)整數(shù)的序列的結(jié)果。
13.如權(quán)利要求12所述的裝置,其特征在于,所述指令包括控制索引產(chǎn)生指令,并且所述執(zhí)行單元用于響應(yīng)于所述指令來(lái)將所述至少四個(gè)非負(fù)整數(shù)的序列存儲(chǔ)為至少四個(gè)相應(yīng)的控制索引。
14.如權(quán)利要求12所述的裝置,其特征在于,所述指令的操作碼確定所述執(zhí)行單元用于存儲(chǔ)按照數(shù)值順序的所述整數(shù),其中連續(xù)位置中的整數(shù)相差恒定跨度。
15.如權(quán)利要求12所述的裝置,其特征在于,所述指令用于指定所述恒定跨度。
16.如權(quán)利要求12所述的裝置,其特征在于,所述指令用于指定整數(shù)偏移量,并且所述執(zhí)行單元用于存儲(chǔ)所述至少四個(gè)整數(shù)中與零相差所述整數(shù)偏移量的最小整數(shù)。
17.如權(quán)利要求12所述的裝置,其特征在于,所述指令用于指示所述恒定跨度且用于指示整數(shù)偏移量,并且所述執(zhí)行單元用于存儲(chǔ)所述至少四個(gè)整數(shù)中與零相差所述偏移量的最小整數(shù)。
18.如權(quán)利要求12所述的裝置,其特征在于,所述指令未指示在架構(gòu)可見(jiàn)存儲(chǔ)位置中的源操作數(shù)。
19.如權(quán)利要求12所述的裝置,其特征在于,所述執(zhí)行單元用于響應(yīng)于所述指令在所述目的地存儲(chǔ)位置中存儲(chǔ)按照數(shù)值順序的至少四個(gè)非負(fù)連續(xù)相同奇偶性整數(shù)的序列。
20.如權(quán)利要求12 所述的裝置,其特征在于,所述執(zhí)行單元用于響應(yīng)于所述指令存儲(chǔ)以下之一:
O, 2,4,6,8,10,12,14 ;
O, 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 ;以及
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52, 54, 56, 58, 60, 62。
21.如權(quán)利要求12所述的裝置,其特征在于,所述執(zhí)行單元用于響應(yīng)于所述指令存儲(chǔ)以下之一:
1,3,5,7,9,11,13,15 ;
I, 3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 ;以及
I, 3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63。
22.如權(quán)利要求12所述的裝置,其特征在于,所述執(zhí)行單元用于響應(yīng)于所述指令來(lái)存儲(chǔ)按照數(shù)值順序的至少8個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度。
23.如權(quán)利要求19所述的裝置,其特征在于,所述執(zhí)行單元用于響應(yīng)于所述指令來(lái)存儲(chǔ)按照數(shù)值順序的至少32個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度。
24.如權(quán)利要求12所述的裝置,其特征在于,還包括與所述執(zhí)行單元一起位于管芯上并存儲(chǔ)所述至少四個(gè)非負(fù)整數(shù)的序列的非架構(gòu)可見(jiàn)存儲(chǔ)位置,并且所述執(zhí)行單元用于響應(yīng)于所述指令從所述非架構(gòu)可見(jiàn)存儲(chǔ)位置訪問(wèn)所述至少四個(gè)非負(fù)整數(shù)的序列。
25.—種系統(tǒng),包括: 互連;與所述互連耦合的處理器,所述處理器包括目的地寄存器,所述處理器響應(yīng)于指示所述目的地寄存器的指令在所述目的地寄存器中存儲(chǔ)結(jié)果,所述結(jié)果包括按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中所述處理器用于響應(yīng)于未指示在架構(gòu)可見(jiàn)的存儲(chǔ)位置中具有多個(gè)打包數(shù)據(jù)元素的源打包數(shù)據(jù)操作數(shù)的指令來(lái)存儲(chǔ)所述結(jié)果;以及 與所述互連耦合的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述指令包括具有操作碼的指令,所述操作碼確定所述處理器用于存儲(chǔ)按照數(shù)值順序的所述至少四個(gè)整數(shù),其中連續(xù)位置中的整數(shù)相差恒定跨度。
27.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述指令用于指定所述恒定跨度。
28.一種制品,包括: 機(jī)器可讀存儲(chǔ)介質(zhì),包括一個(gè)或多個(gè)固態(tài)存儲(chǔ)材料,所述機(jī)器可讀存儲(chǔ)介質(zhì)存儲(chǔ)指令, 所述指令用于指示目的地存儲(chǔ)位置,并且所述指令如果由機(jī)器執(zhí)行則使所述機(jī)器執(zhí)行包括以下的操作: 將結(jié)果存儲(chǔ)在所述目的地存儲(chǔ)位置中,所述結(jié)果包括按照數(shù)值順序的至少四個(gè)非負(fù)整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中所述指令未指示在 架構(gòu)可見(jiàn)存儲(chǔ)位置中具有多個(gè)打包數(shù)據(jù)元素的源打包數(shù)據(jù)操作數(shù)。
29.如權(quán)利要求28所述的制品,其特征在于,所述指令的操作碼確定將按照數(shù)值順序存儲(chǔ)所述至少四個(gè)整數(shù)。
30.如權(quán)利要求28所述的制品,其特征在于,所述指令用于指定所述恒定跨度。
【文檔編號(hào)】G06F9/30GK104011644SQ201180075696
【公開(kāi)日】2014年8月27日 申請(qǐng)日期:2011年12月22日 優(yōu)先權(quán)日:2011年12月22日
【發(fā)明者】E·烏爾德-阿邁德-瓦爾, S·阿布拉罕, R·凡倫天, Z·斯波伯, A·格雷德斯廷 申請(qǐng)人:英特爾公司