欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于產生按照數(shù)值順序的相差恒定跨度的整數(shù)的序列的處理器、方法、系統(tǒng)和指令的制作方法

文檔序號:6485297閱讀:158來源:國知局
用于產生按照數(shù)值順序的相差恒定跨度的整數(shù)的序列的處理器、方法、系統(tǒng)和指令的制作方法
【專利摘要】一個方面的方法包括接收指示目的地存儲位置的指令。響應于該指令,將結果存儲在該目的地存儲位置中。該結果包括按照數(shù)值順序的至少四個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度。在一個方面中,在無需利用先前指令的結果來計算至少四個整數(shù)的情況下,存儲包括至少四個整數(shù)的序列的結果。公開了其他方法、裝置、系統(tǒng)和指令。
【專利說明】用于產生按照數(shù)值順序的相差恒定跨度的整數(shù)的序列的處理器、方法、系統(tǒng)和指令
【背景技術】
[0001]【技術領域】
[0002]實施例涉及處理器。具體而言,實施例涉及具有指令集的處理器,該指令集包括使用控制索引的指令。
[0003]背景信肩、
[0004]許多處理器具有單指令多數(shù)據(jù)(SMD)架構。在SMD架構中,打包數(shù)據(jù)指令、向量指令或者SMD指令可同時或并行地對多個數(shù)據(jù)元素或者多對數(shù)據(jù)元素進行操作。處理器可具有并行執(zhí)行硬件,該并行執(zhí)行硬件響應于打包數(shù)據(jù)指令來同時或并行地執(zhí)行多個操作。
[0005]多個數(shù)據(jù)元素可在一個寄存器或存儲器位置內被打包為打包數(shù)據(jù)或向量數(shù)據(jù)。在打包數(shù)據(jù)中,寄存器或者其他存儲位置的位可邏輯地分成多個數(shù)據(jù)元素的序列。例如,256位寬打包數(shù)據(jù)寄存器可具有四個64位寬打包數(shù)據(jù)元素、八個32位寬打包數(shù)據(jù)元素、十六個16位寬打包數(shù)據(jù)元素等。每一打包數(shù)據(jù)元素可表示單獨的各段數(shù)據(jù)(例如,像素的紅色、綠色、藍色或α顏色分量、或復數(shù)的實部或虛部等等),各段數(shù)據(jù)可單獨地操作或與其他數(shù)據(jù)獨立地操作。
[0006]一些SMD架構具有用于根據(jù)控制索引在一個或多個源打包數(shù)據(jù)內靈活地重新安排打包數(shù)據(jù)元素的指令。此類指令的示例是置換指令和混洗指令??刂扑饕刂七@些指令如何重新安排打包數(shù)據(jù)元素。
【專利附圖】

【附圖說明】
[0007]通過參考用來說明本發(fā)明的實施例的以下描述和附圖,可最好地理解本發(fā)明。在附圖中:
[0008]圖1是用于處理可用來產生控制索引的指令的處理器的示例實施例的框圖。
[0009]圖2是處理打包數(shù)據(jù)重新安排控制索引產生指令的示例實施例的方法的示例實施例的流程框圖。
[0010]圖3是處理打包數(shù)據(jù)重新安排控制索引前體產生指令的示例實施例的方法的示例實施例的流程框圖。
[0011]圖4是用于處理可用來產生控制索引的指令的指令處理裝置的示例實施例的框圖。
[0012]圖5是處理存儲遵循數(shù)值模式的至少四個非負整數(shù)的序列的指令的方法的示例實施例的流程框圖。
[0013]圖6是可用來產生控制索引的指令的指令格式的實施例的框圖。
[0014]圖7Α是示出在一些實施例中通過指令存儲的整數(shù)序列可具有主要或完全基于指令的操作碼的數(shù)值模式的框圖。
[0015]圖7Β是框圖,示出在一些實施例中,通過指令存儲的整數(shù)序列可具有部分地基于指令的操作碼并且部分地基于由該指令指示的一個或多個數(shù)值模式限定參數(shù)的數(shù)值模式。
[0016]圖8是處理存儲按照數(shù)值順序的至少四個非負整數(shù)的序列的指令的方法的示例實施例的流程框圖。
[0017]圖9是示出打包數(shù)據(jù)重新安排操作的示例實施例的框圖,該打包數(shù)據(jù)重新安排操作使用具有按照數(shù)值順序的偏移連續(xù)整數(shù)的值的打包數(shù)據(jù)重新安排控制索引,來從兩個經(jīng)對齊的打包數(shù)據(jù)中提取未對齊的打包數(shù)據(jù)以避免需要執(zhí)行未對齊加載。
[0018]圖10是處理存儲按照數(shù)值順序的至少四個非負整數(shù)的序列的指令的方法的示例實施例的流程框圖,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定整數(shù)跨度。
[0019]圖11是處理存儲按照數(shù)值順序的至少四個非負相同奇偶性(例如均為偶數(shù)或均為奇數(shù))整數(shù)的序列的指令的方法的示例實施例的流程框圖。
[0020]圖12是示出打包數(shù)據(jù)重新安排操作的示例實施例的框圖,該打包數(shù)據(jù)重新安排操作使用打包數(shù)據(jù)重新安排控制索引以將實數(shù)(R)與虛數(shù)(頂)分開,該打包數(shù)據(jù)重新安排控制索引具有按照遞增數(shù)值順序的連續(xù)偶數(shù)的值。
[0021]圖13是處理存儲按照數(shù)值順序的至少四個整數(shù)的序列的指令的方法的示例實施例的流程框圖,其中整數(shù)中的最小整數(shù)從零偏移一偏移量,并且其中連續(xù)位置中的所有整數(shù)彼此相差一跨度。
[0022]圖14是處理用于存儲按照數(shù)值順序的連續(xù)非負整數(shù)的序列的第一控制索引前體產生指令和向每一整數(shù)應用跨度和偏移量的第二指令的方法的示例實施例的流程框圖。
[0023]圖15是存儲紅、綠、藍、α四元數(shù)據(jù)的源打包數(shù)據(jù)的框圖。
[0024]圖16是包括存儲一個或多個整數(shù)序列的只讀存儲器(ROM)的處理器的示例實施例的框圖。
[0025]圖17A是示出用于存儲控制索引和控制索引前體的適當格式的第一示例實施例的框圖。
[0026]圖17B是示出用于存儲控制索引和控制索引前體的適當格式的第二示例實施例的框圖。
[0027]圖18是一組合適的打包數(shù)據(jù)寄存器的示例實施例的框圖。
[0028]圖19是包括存儲可用來產生控制索引的指令的機器可讀存儲介質的制品的框圖。
[0029]圖20A示出示例性AVX指令格式,包括VEX前綴、實操作碼字段、ModR/M字節(jié)、SIB字節(jié)、位移字段以及IMM8。
[0030]圖20B示出來自圖20A的哪些字段構成完整操作碼字段和基礎操作字段。
[0031 ] 圖21A是示出根據(jù)本發(fā)明的實施例的通用向量友好指令格式及其A類指令模板的框圖。
[0032]圖21B是示出根據(jù)本發(fā)明的實施例的通用向量友好指令格式及其B類指令模板的框圖。
[0033]圖22是示出根據(jù)本發(fā)明的實施例的示例性專用向量友好指令格式的框圖。
[0034]圖22B是示出根據(jù)本發(fā)明的實施例的構成完整操作碼字段的具有專用向量友好指令格式的字段的框圖。
[0035]圖22C是示出根據(jù)本發(fā)明的實施例的構成寄存器索引字段的具有專用向量友好指令格式的字段的框圖。
[0036]圖22D是示出根據(jù)本發(fā)明的一個實施例的構成擴充(augmentation)操作字段的具有專用向量友好指令格式的字段的框圖。
[0037]圖23是根據(jù)本發(fā)明的一個實施例的寄存器架構的框圖。
[0038]圖24A是示出根據(jù)本發(fā)明的實施例的示例性有序流水線和示例性的寄存器重命名的無序發(fā)布/執(zhí)行流水線二者的框圖。
[0039]圖24B示出處理器核,該處理器核包括耦合到執(zhí)行引擎單元的前端單元,并且兩者耦合到存儲器單元。
[0040]圖25A是根據(jù)本發(fā)明實施例的單處理器核連同其到管芯上互連網(wǎng)絡的連接以及其2級(L2)高速緩存的本地子集的框圖。
[0041]圖25B是根據(jù)本發(fā)明的實施例的圖25A中的處理器核的一部分的展開圖。
[0042]圖26是根據(jù)本發(fā)明實施例可具有一個以上的核、可具有集成存儲器控制器以及可具有集成圖形器件的處理器的框圖。
[0043]圖27所示為根據(jù)本發(fā)明的一個實施例的系統(tǒng)的框圖。
[0044]圖28所示為根據(jù)本發(fā)明的實施例的第一更具體示例性系統(tǒng)的框圖。
[0045]圖29示出根據(jù)本發(fā)明的實施例的第二更具體的示例性系統(tǒng)的框圖。
[0046]圖30示出根據(jù)本發(fā)明的實施例的SoC的框圖。
[0047]圖31是根據(jù)本發(fā)明的實施例的對照使用軟件指令轉換器將源指令集中的二進制指令轉換成目標指令集中的二進制指令的框圖。
【具體實施方式】
[0048]在以下描述中,陳述了諸多特定細節(jié)(例如特定處理器、方法、操作、指令、數(shù)值模式以及數(shù)據(jù)格式)。然而,應當理解,本發(fā)明的各實施例可以在不具有這些具體細節(jié)的情況下得到實施。在其他實例中,未詳細示出公知的電路、結構和技術以免混淆對本描述的理解。
[0049]典型地,通過執(zhí)行對具有源打包數(shù)據(jù)元素的源打包數(shù)據(jù)操作數(shù)進行操作的一系列通用指令,來從頭開始漸進地建立用于置換指令和混洗指令的控制索引。例如,產生控制索引的方法的一部分可包括執(zhí)行一系列通用打包數(shù)據(jù)算術指令以對源打包數(shù)據(jù)元素執(zhí)行一系列打包數(shù)據(jù)算術操作,以將源打包數(shù)據(jù)元素最終轉換為控制索引。
[0050]趨向于限制置換和混洗指令以及籠統(tǒng)的其它打包數(shù)據(jù)重新安排指令的有用性的一個因素是為了產生置換控制索引、混洗控制索引或其它打包數(shù)據(jù)重新安排控制索引而通常需要按順序執(zhí)行的指令的數(shù)量??赡苄枰舾芍噶?例如大約4到10個指令或甚至更多指令)來產生一組控制索引。此外,所需的指令的數(shù)量一般趨向于隨著打包數(shù)據(jù)元素的總數(shù)量增加而增加,由于打包數(shù)據(jù)寄存器的位寬增加,故隨時間傾向于如此。
[0051]執(zhí)行這些指令趨向于在處理時間、處理器資源使用率以及功耗方面是昂貴的。此夕卜,這些花費趨向于減損或減少由打包數(shù)據(jù)重新安排指令提供的整體益處。在一些情況下,在已經(jīng)產生和使用控制索引之后可能丟棄控制索引,在此情況下,如果需求出現(xiàn),則可能需要從頭開始重新產生控制索引。在其它情況下,在已經(jīng)產生和使用控制索引之后,可將控制索引存儲在主存儲器中,然后稍后在需要它們時經(jīng)由系統(tǒng)總線將它們從主存儲器取出。這可以有助于避免每當需要控制索引時從頭開始產生控制索引,但從主存儲器取出控制索引也趨向于花費大量時間。
[0052]本申請中公開了可用來產生用于其它指令(例如置換指令、混洗指令、其它打包數(shù)據(jù)重新安排指令以及使用控制索引的其它指令)的控制索引的指令。還公開了用于執(zhí)行上述指令的處理器,在處理或執(zhí)行上述指令時由處理器執(zhí)行的方法,以及包含用于處理或執(zhí)行上述指令的一個或多個處理器的系統(tǒng)。本申請中別處公開的各種處理器和系統(tǒng)是合適的。有利地,這些指令、處理器、方法和系統(tǒng)可有助于減少為了產生控制索引而需要執(zhí)行的指令的處理時間量和/或數(shù)量。
[0053]圖1是用于處理可用來產生控制索引的指令的處理器100的示例實施例的框圖。該處理器可以是各種復雜指令集計算(CISC)處理器、各種精簡指令集計算(RISC)處理器、各種超長指令字(VLIW)處理器、其各種混合、或完全其他類型的處理器中的任何處理器。在一些實施例中,該處理器可以是通用處理器(例如通用微處理器),不過這不是必須的。替換地,處理器可以是專用處理器。合適的專用處理器的示例包括但不限于,網(wǎng)絡處理器、通信處理器、加密處理器、圖形處理器、協(xié)處理器、嵌入式處理器、數(shù)字信號處理器(DSP)以及控制器(例如,微控制器),僅列舉數(shù)例。
[0054]處理器具有指令集架構(ISA) 101。ISA表示處理器的架構中涉及編程的那部分。ISA通常包括原生指令、架構寄存器、數(shù)據(jù)類型、尋址模式、存儲器架構、中斷和異常處理以及處理器的外部輸入和輸出(I/O)。ISA與微架構不同,微架構通常表示選擇用于實現(xiàn)ISA的特定處理器設計技術。帶有不同的微架構的處理器可以共享共同的ISA。
[0055]ISA包括架構可見的或架構的寄存器(例如,架構寄存器組)102。架構寄存器表示處理器上的存儲位置。架構寄存器此處也可以被簡稱為寄存器。短語架構寄存器、寄存器組、以及寄存器在本申請中用于表示對軟件和/或編程者可見(例如,軟件可見的)的寄存器和/或由通用宏指令指定用來標識操作數(shù)的寄存器,除非另外指定或清楚明顯可知。這些寄存器與給定微架構中的其他非架構的或在架構上不可見的寄存器(例如,指令所使用的臨時寄存器、重新排序緩沖器、引退寄存器、由微指令使用的微架構只讀寄存器、等等)不同。所示出的架構可見的寄存器包括打包數(shù)據(jù)寄存器103。每個打包數(shù)據(jù)寄存器可操作用于存儲打包數(shù)據(jù)、向量數(shù)據(jù)或者SIMD數(shù)據(jù)。
[0056]所示出的ISA包括處理器支持的指令集104。指令集的這些指令表示宏指令(例如,提供給處理器以供執(zhí)行的指令),與微指令或微操作(例如,處理器的解碼器解碼宏指令得到的微指令或微操作)不同。該處理器可包括用于執(zhí)行該指令集的指令的專用或特定邏輯(例如可能具有一些固件或軟件的電路系統(tǒng))。
[0057]該指令集包括使用控制索引的一個或多個指令105。如上所述,在一些實施例中,這些指令可包括一個或多個置換指令、混洗指令或其它打包數(shù)據(jù)重新安排指令106。作為另一選擇,如將在下文中進一步討論,在一些實施例中,這些指令可包括一個或多個聚集指令或加載指令107,這一個或多個聚集指令或加載指令107用于利用控制索引從處理器外的存儲器聚集或加載不連續(xù)的數(shù)據(jù)。
[0058]根據(jù)本發(fā)明的實施例,該指令集還包括分別可用來產生控制索引的一個或多個指令108。在一些實施例中,這些指令可包括一個或多個控制索引產生指令109,用于產生實際控制索引。每個控制索引產生指令可用于完全在單個宏指令的執(zhí)行范圍內產生控制索弓I。相反,常規(guī)地,通常需要執(zhí)行一系列通用宏指令來逐漸或漸進地從頭開始建立控制索引。
[0059]在一些實施例中,指令可包括一個或多個控制索引前體產生指令110,這些指令不產生實際控制索引,而產生控制索引前體。每個控制索引前體產生指令可用于完全在單個宏指令的執(zhí)行范圍內產生控制索引前體。并非從頭開始產生實際控制索引,控制索引前體可用作有用的起始點或前導值,通過一個或多個其它指令可將該起始點或前導值高效地轉換成實際控制索引。有利地,與從頭開始相比,前體的使用可允許更迅速地和/或利用更少指令來產生實際控制索引。
[0060]處理器還包括執(zhí)行邏輯111。執(zhí)行邏輯用于執(zhí)行或處理指令集的指令。
[0061]圖2是處理打包數(shù)據(jù)重新安排控制索引產生指令的示例實施例的方法212的示例實施例的流程框圖。在框213接收打包數(shù)據(jù)重新安排控制索引產生指令。所接收的指令指定或以其它方式指示第一目的地存儲位置。在一些方面中,可通過該指令的編碼的多個位或一個或多個字段來明確地指定第一目的地存儲位置。在其它方面中,第一目的地存儲位置對于該指令可以是隱式的。
[0062]在框214,響應于打包數(shù)據(jù)重新安排控制索引產生指令和/或作為其結果,將結果存儲在第一目的地存儲位置中。該結果包括表示打包數(shù)據(jù)重新安排控制索引的至少四個非負整數(shù)的序列。上述至少四個整數(shù)典型地具有多個不同的值(即它們不全是相同的整數(shù)值)。在多個實施例中,該序列可包括表示打包數(shù)據(jù)重新安排控制索引的至少8個、至少16個、至少32個、或至少64個非負整數(shù)。該結果和/或整數(shù)的序列可以是本申請中別處公開的結果和/或整數(shù)的序列中的任一個。在一些實施例中,可完全在單個宏指令的執(zhí)行的范圍內產生該結果和/或整數(shù)的序列(例如,整數(shù)的值可能不依賴于該程序流中的任何先前指令)。
[0063]為了進一步說明某些概念,并且雖然本發(fā)明不限于此方面,在框215處接收打包數(shù)據(jù)重新安排指令。在多個方面中,該指令可以是置換指令、混洗指令、或用于根據(jù)打包數(shù)據(jù)重新安排控制索引來重新安排一個或多個源打包數(shù)據(jù)中的數(shù)據(jù)元素的另一類型的打包數(shù)據(jù)重新安排指令。該指令指示打包數(shù)據(jù)重新安排控制索引(例如指定第一目的地存儲位置)。該指令還指定或以其它方式指示具有打包數(shù)據(jù)元素的至少一個源打包數(shù)據(jù),并指定或以其它方式指示第二目的地存儲位置。
[0064]在框216,響應于打包數(shù)據(jù)重新安排指令和/或作為其結果,將打包數(shù)據(jù)結果存儲在第二目的地存儲位置中。打包數(shù)據(jù)結果包括來自至少一個源打包數(shù)據(jù)的根據(jù)打包數(shù)據(jù)重新安排控制索引重新安排的數(shù)據(jù)元素。在一些實施例中,如同許多置換和混洗指令的情況,打包數(shù)據(jù)重新安排控制索引可標識、選擇或以其它方式建立至少一個源打包數(shù)據(jù)內的特定數(shù)據(jù)元素的索引??蓪⒂兴饕臄?shù)據(jù)元素存儲在與索引在位置上對應的結果數(shù)據(jù)元素中。
[0065]圖3是處理打包數(shù)據(jù)重新安排控制索引前體產生指令的示例實施例的方法317的示例實施例的流程框圖。在框318接收打包數(shù)據(jù)重新安排控制索引前體產生指令。所接收的指令指定或以其它方式指示目的地存儲位置。
[0066]在框319,響應于打包數(shù)據(jù)重新安排控制索引前體產生指令和/或作為其結果,將結果存儲在目的地存儲位置中。該結果包括表示打包數(shù)據(jù)重新安排控制索引前體的至少四個非負整數(shù)的序列。上述至少四個整數(shù)典型地具有多個不同的值。在多個實施例中,該序列可包括表示打包數(shù)據(jù)重新安排控制索引前體的至少8個、至少16個、至少32個、或至少64個非負整數(shù)。該結果和/或整數(shù)序列可以是本申請中別處公開的結果和/或整數(shù)序列中的任一個。在一些實施例中,可完全在單個宏指令的執(zhí)行的范圍內產生該結果和/或整數(shù)序列(例如,整數(shù)的值可能不依賴于該程序流中的任何先前指令)。
[0067]為了進一步說明某些概念,并且雖然本發(fā)明不限于此方面,但在框320,執(zhí)行至少一個附加指令(例如至少一個通用算術指令)的執(zhí)行,以將打包數(shù)據(jù)重新安排控制索引前體轉換成打包數(shù)據(jù)重新安排控制索引。至少一個附加指令中的第一指令可將目的地存儲位置指示為打包數(shù)據(jù)重新安排控制索引前體的源。
[0068]然后,在框321,可執(zhí)行指示打包數(shù)據(jù)重新安排控制索引的打包數(shù)據(jù)重新安排指令。打包數(shù)據(jù)重新安排指令的操作可以類似于先前描述的操作。
[0069]在圖2和3中,已經(jīng)示出了框215、216、320和321處的操作,以更好地說明某些概念。然而,應理解本發(fā)明不限于在這些框處執(zhí)行的操作。其它實施例涉及各個打包數(shù)據(jù)重新安排控制索引產生指令的方法和操作,另外的其它實施例涉及各個打包數(shù)據(jù)重新安排控制索引前體產生指令的方法和操作,這些方法和操作不限于其它后續(xù)指令的操作。
[0070]圖4是指令處理裝置400的示例實施例的框圖。指令處理裝置可以是處理器,或可以是處理器的部分。例如,在一些實施例中,指令處理裝置可以是圖1的處理器100或類似設備,或者可以是圖1的處理器100或類似設備的部分。替代地,指令處理裝置可被包括在不同的處理器或電子系統(tǒng)(例如本申請中公開的其它處理器或系統(tǒng)之一)之中。
[0071]指令處理裝置可接收可用來產生控制索引的指令408。該指令可表示本申請別處公開的可用來產生控制索引的指令的多個實施例中的任一個實施例。該指令可表示機器指令、宏指令或類似的控制信號。指令處理裝置可具有專用的或特定的電路或其它邏輯(例如,與固件和/或軟件結合的硬件),用于處理指令和/或響應于該指令、作為該指令的結果和/或根據(jù)該指令來存儲結果。
[0072]所示出的指令處理裝置包括指令解碼器422。解碼器可接收和解碼高級機器指令或宏指令,并且輸出一個或多個較低級的微操作、微代碼入口點、微指令或者反映和/或從原始較高級指令導出的其它較低級的指令或控制信號。一個或多個較低級指令或控制信號可通過一個或多個較低級(例如,電路級或硬件級)操作來實現(xiàn)較高級指令的操作。該解碼器可以使用各種不同的機制來實現(xiàn),包括但不限于,微代碼只讀存儲器(ROM)、查找表、硬件實現(xiàn)、可編程邏輯陣列(PLA)和本領域公知的用于實現(xiàn)解碼器的其它機制。
[0073]或者,代替具有解碼器422,在一個或多個其它實施例中,該裝置可具有指令仿真器、轉換器、變形器(morpher)、解釋器或者其它指令變換邏輯。各種不同類型的指令變換邏輯在本領域中是已知的,并且可在軟件、硬件、固件、或者其組合中實現(xiàn)。指令變換邏輯可接收指令,并且仿真、轉換、變形、解釋、或者以其它方式將該指令轉換成一個或多個對應的導出指令或控制信號。在又一個其它實施例中,指令處理裝置可具有指令變換邏輯和解碼器二者。例如,該指令處理裝置可具有用于將接收到的指令變換成一個或多個中間指令的指令變換邏輯、以及用于將一個或多個中間指令解碼成可由該指令處理裝置的原生硬件執(zhí)行的一個或多個較低級指令或控制信號的解碼器。指令變換邏輯中的一些或全部可位于指令處理裝置的其余部分的管芯外,諸如在單獨的管芯上或在管芯外的存儲器中。
[0074]再次參考圖4,用來產生控制索引的指令408的指令明確地(例如通過一個或多個字段)指定或以其它方式(例如隱含地指示)指示目的地存儲位置427。如所示,在一些實施例中,目的地存儲位置可以在指令處理裝置的一組打包數(shù)據(jù)寄存器403內?;蛘?,目的地存儲位置可以是另一個寄存器或存儲器位置。打包數(shù)據(jù)寄存器是架構可見的位于處理器上的存儲位置,它可通過使用公知技術以不同方式實現(xiàn)于不同的微架構中,并且不限于任何已知的特定類型的電路。多種不同類型的寄存器可適用,只要它們能夠存儲并提供在本申請中描述的數(shù)據(jù)。合適類型的寄存器的示例包括但不限于專用物理寄存器、使用寄存器重命名的動態(tài)分配的物理寄存器及其組合。
[0075]指令處理裝置還包括執(zhí)行單元423。執(zhí)行單元與解碼器422和目的地存儲位置427耦合。執(zhí)行單元可從解碼器接收一個或多個微操作、微代碼進入點、微指令、其它指令或其它控制信號,它們反映了指令408或者是從指令408導出的。作為示例,執(zhí)行單元可包括算術邏輯單元、邏輯單元、算術單元、功能單元或類似物。執(zhí)行單元可包括可能具有其它邏輯(例如軟件、固件或組合)的專用或特定硬件邏輯(例如集成電路),用于執(zhí)行指令(例如執(zhí)行一個或多個微指令)和/或存儲響應于該指令的結果。
[0076]執(zhí)行單元用于響應于指令408和/或作為指令408的結果將結果428存儲在目的地存儲位置427中。如圖所示,在多個實施例中,該結果可包括至少四個整數(shù)的序列。在指令408是控制索引產生指令的實施例中,每個整數(shù)可表示控制索引。在指令408是控制索引前體產生指令的實施例中,每個整數(shù)可表示控制索引前體。
[0077]在一些實施例中,執(zhí)行單元可包括用于計算至少四個整數(shù)的序列的計算邏輯424。這些計算邏輯可以是專用或特定電路(例如用于使用列掃描方法來計算整數(shù)、迭代地計算整數(shù)等等)。在其它實施例中,執(zhí)行單元可響應于該指令從存儲器426 (例如與執(zhí)行單元一起在管芯上的非架構可見的只讀存儲器(ROM))訪問至少四個整數(shù)的序列的已有副本425。例如,參見下文對圖16的討論。在這些實施例中的任一實施例中,通常不從管芯外的主存儲器或經(jīng)由系統(tǒng)總線來訪問該整數(shù)序列。
[0078]在一些實施例中,該結果可包括遵循數(shù)值模式的至少4個、至少8個、至少16個、至少32個或至少64個非負整數(shù)的序列。在一些實施例中,遵循數(shù)值模式的這些整數(shù)可以是按照數(shù)值順序的連續(xù)非負整數(shù)(例如0、1、2、3、4、5、6和7)。在其它實施例中,遵循數(shù)值模式的這些整數(shù)可以是按照數(shù)值順序的非負整數(shù),其中處于連續(xù)位置的所有整數(shù)相差至少為2的恒定整數(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)。在其它實施例中,跨度(N)可以大于2(例如跨度可以是3、4、8、16等等),并且整數(shù)序列可包括該跨度的連續(xù)整數(shù)倍數(shù)(例如0、N、2N、3N、4N、5N、6N和 7N)。
[0079]在一些實施例中,該指令可明確地指定或以其它方式指示一個或多個數(shù)值模式限定參數(shù)(例如整數(shù)偏移量、恒定整數(shù)跨度、整數(shù)循環(huán)量(integer rotation amount)、整數(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ù)跨度(N),并且這些整數(shù)可以是從零偏移的跨度的連續(xù)整數(shù)倍數(shù)(例如K、N+K、2N+K、3N+K、4N+K、5N+K.6N+K以及7N+K)。替代地,結果和/或至少四個整數(shù)的序列可以是本申請中別處針對用來產生控制索引的多個指令實施例公開的結果和/或至少四個整數(shù)的序列中的任一個。在一些實施例中,數(shù)值模式完全或至少主要基于指令的操作碼或操作碼和一個或多個數(shù)值模式限定參數(shù),或通過操作碼或操作碼和一個或多個數(shù)值模式限定參數(shù)固定。在另外的實施例中,整數(shù)序列不需要遵循數(shù)值模式(例如它們可能看起來是隨機的)。
[0080]為了避免混淆描述,已示出和描述了相對簡單的指令處理裝置400。在其它實施例中,該指令處理裝置可任選地包括其它公知組件,諸如舉例而言,指令提取單元、指令調度單元、分支預測單元、指令和數(shù)據(jù)的高速緩存、指令和數(shù)據(jù)的轉換后備緩沖器(translationlookaside buffer)、預取緩沖器、微指令隊列、微指令定序器、總線接口單元、第二或更高級高速緩存、引退單元、寄存器重命名單元、處理器中包含的其它組件、以及上述的各種組合。其它實施例可具有多個核、邏輯處理器或執(zhí)行引擎??捎糜趫?zhí)行本申請中公開的指令實施例的執(zhí)行單元可被包含在核、邏輯處理器或執(zhí)行引擎中的至少一個、至少兩個、大多數(shù)或全部中。應理解,實際上在處理器中存在這些組件的多種不同的組合和配置,并且本發(fā)明的范圍不限于任何特定的組合或配置。
[0081]圖5是處理用于產生控制索引的指令的方法530的示例實施例的流程框圖,該指令存儲遵循數(shù)值模式的至少四個非負整數(shù)的序列。在框531,接收該指令。該指令指定或以其它方式指示目的地存儲位置。
[0082]在框532,響應于該指令和/或作為其結果,將結果存儲在目的地存儲位置中。該結果包括遵循數(shù)值模式的至少四個整數(shù)的序列。在多個實施例中,該結果可包括遵循數(shù)值模式的至少8個、至少16個、至少32個、至少64個或甚至更多個非負整數(shù)的序列。該整數(shù)序列可以是遵循本申請中別處公開的多種數(shù)值模式的整數(shù)序列中的任一個。通常,上述整數(shù)中的至少兩個、至少四個、至少一半或甚至全部具有不同的值(即上述整數(shù)典型地不全相等)。
[0083]圖6是可用來產生控制索引的指令608的指令格式的實施例的框圖。該指令格式包括操作碼633。操作碼可表示該指令格式的用于標識該指令的多個位或一個或多個字段。該指令格式還可包括目的地存儲位置634。在所示實施例中,該指令格式包括該指令格式中的用于明確地指定目的地存儲位置的多個位或一個或多個字段。替代地,該目的地存儲位置可以是該指令隱含的。
[0084]在一些實施例中,該指令格式未明確地指定、隱含地指示或以其它方式指示具有將要由指令操作的打包數(shù)據(jù)元素的架構可見的源存儲位置(例如打包數(shù)據(jù)寄存器或主存儲器位置)635。在本發(fā)明的實施例中,由本申請中公開的指令存儲的整數(shù)序列、控制索引以及控制索引前體不是從架構可見的源存儲位置中的打包數(shù)據(jù)元素計算得出或以其它方式導出的。作為對比,如【背景技術】部分中所討論,常規(guī)地,典型地通過執(zhí)行對架構可見的源打包數(shù)據(jù)寄存器中的打包數(shù)據(jù)元素進行操作、直到將打包數(shù)據(jù)元素最終轉換成置換或混洗控制索引的一系列通用指令(例如通用打包數(shù)據(jù)算術指令),來從頭開始逐漸建立置換和混洗控制索引。在本發(fā)明的實施例中,由本申請中公開的指令存儲的整數(shù)序列、控制索引以及控制索引前體完全在單個指令的執(zhí)行范圍內產生,并且不基于按照程序順序的任何先前指令的結果。
[0085]在一些實施例中,該指令格式可具有用于明確地指定一個或多個數(shù)值模式限定參數(shù)636的一個或多個源操作數(shù)和/或一個或多個立即數(shù)。替代地,一個或多個數(shù)值模式限定參數(shù)可由該指令隱含地指示(例如通過由該指令隱含地指示的寄存器來提供)。一個或多個模式限定參數(shù)中的每一個可影響作為指令的結果而存儲的結果或整數(shù)序列的數(shù)值模式。一個或多個模式限定參數(shù)中的每一個可影響該序列或結果中的每個整數(shù)的值。一個或多個模式限定參數(shù)中的每一個可用于對該指令隱含的數(shù)值模式限定方程或關系進行求值。合適的數(shù)值模式限定參數(shù)的幾個代表性示例包括但不限于從零的整數(shù)偏移量、整數(shù)跨度、整數(shù)循環(huán)量以及上述參數(shù)的組合(例如從零的整數(shù)偏移量以及整數(shù)跨度)。
[0086]在其它實施例中,該指令可能不指定或以其它方式指示任何數(shù)值模式限定參數(shù)。在一些實施例中(例如在該指令不指定或以其它方式指示任何數(shù)值模式限定參數(shù)的實施例中),該指令可能不具有(例如指定或以其它方式指示)任何源操作數(shù)637。
[0087]圖7A是框圖,示出在一些實施例中,通過指令708A存儲在目的地存儲位置727A中的結果728A中的整數(shù)序列740A可具有完全或至少主要基于738該指令的操作碼733A的數(shù)值模式。該指令具有操作碼和用于指定目的地存儲位置727A的位或一個或多個字段734A。注意,本實施例的指令不指定或以其它方式指示任何數(shù)值模式限定參數(shù),或用于該目的的任何源操作數(shù)。該指令的執(zhí)行導致在目的地存儲位置中存儲該結果。該結果包括具有該數(shù)值模式的整數(shù)序列。在這些實施例中,整數(shù)序列的數(shù)值模式完全地或至少主要地基于該指令的操作碼。在這些實施例中,整數(shù)序列的數(shù)值模式對于該指令的操作碼是固定或恒定的。例如,該序列中的連續(xù)整數(shù)之間的差可完全地或至少主要地基于該指令的操作碼,和/或對于該指令的操作碼是固定或恒定的。在標識操作碼之后,可固定整數(shù)序列和它們的數(shù)值模式(即可能不依賴于該指令的任何源操作數(shù))。在一些實施例中,該指令/操作碼可能僅能夠存儲一個特定的整數(shù)序列和/或一個特定的數(shù)值模式。作為比較,當通用算術指令對源打包數(shù)據(jù)進行操作以產生置換或混洗控制索引時,置換或混洗控制索引不具有完全或甚至主要基于通用算術指令的操作數(shù)的數(shù)值模式,而是具有基于源打包數(shù)據(jù)的數(shù)值模式。
[0088]圖7B是框圖,示出由指令708B存儲在目的地存儲位置中的結果728B中的整數(shù)序列740B可具有部分地基于該指令的操作碼733B并且部分地基于739由該指令指示的一個或多個數(shù)值模式限定參數(shù)736的數(shù)值模式。該數(shù)值模式完全地或至少主要地基于操作碼和一個或多個數(shù)值模式限定參數(shù)。該指令具有操作碼、用于指定目的地存儲位置727B的位或一個或多個字段734B,并且指定或以其它方式指示一個或多個數(shù)值模式限定參數(shù)736。該指令的執(zhí)行導致在目的地存儲位置中存儲該結果。該結果包括具有該數(shù)值模式的整數(shù)序列。在這些實施例中,整數(shù)序列的數(shù)值模式部分地基于指令的操作碼并且部分地基于由該指令指示的一個或多個數(shù)值模式限定參數(shù),但完全地或至少主要地基于操作碼和一個或多個數(shù)值模式限定參數(shù)(即,不基于由先前指令作為結果存儲的源打包數(shù)據(jù))。
[0089]圖8是處理用于產生控制索引的指令的方法830的示例實施例的流程框圖,該指令存儲按照數(shù)值順序的至少四個連續(xù)非負整數(shù)的序列。在框831,接收該指令。該指令指定或以其它方式指示目的地存儲位置。
[0090]在框832,響應于該指令和/或作為其結果,將結果存儲在目的地存儲位置中。該結果包括按照數(shù)值順序的至少四個連續(xù)非負整數(shù)的序列。在一些實施例中,該結果可包括目的地存儲位置中按照數(shù)值順序的至少8個、至少16個、至少32個、至少64個或甚至更多個連續(xù)非負整數(shù)的序列。在不同實施例中,連續(xù)整數(shù)的序列可以包括表1-3中所示出的任一個。[0091]表1列出對于不同整數(shù)數(shù)量,按照遞增數(shù)值順序的連續(xù)非負整數(shù)的序列的示例實施例。
[0092]表1.[0093]
【權利要求】
1.一種方法,包括: 接收指令,所述指令指示目的地存儲位置;以及 響應于所述指令,將結果存儲在所述目的地存儲位置中,所述結果包括按照數(shù)值順序的至少四個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中,在無需利用先前指令的結果來計算所述至少四個整數(shù)的情況下,存儲包括所述至少四個整數(shù)的序列的結果。
2.如權利要求1所述的方法,其特征在于,接收所述指令包括接收控制索引產生指令,并且存儲所述結果包括將所述至少四個整數(shù)的序列存儲為至少四個相應的控制索引。
3.如權利要求1所述的方法,其特征在于,通過所述指令的操作碼來確定存儲按照數(shù)值順序的所述整數(shù),其中連續(xù)位置中的整數(shù)相差恒定跨度。
4.如權利要求1所述的方法,其特征在于,接收所述指令包括接收指定所述恒定跨度的指令。
5.如權利要求1所述的方法,其特征在于,接收所述指令包括接收指定整數(shù)偏移量的指令,并且存儲包括存儲所述至少四個整數(shù)中與零相差所述整數(shù)偏移量的最小整數(shù)。
6.如權利要求1所述的方法,其特征在于,接收所述指令包括接收未指示在架構可見存儲位置中的源操作數(shù)的指令。
7.如權利要求1所 述的方法,其特征在于,存儲所述結果包括在所述目的地存儲位置中存儲按照數(shù)值順序的至少四個非負連續(xù)相同奇偶性整數(shù)的序列。
8.如權利要求1所述的方法,其特征在于,存儲所述結果包括存儲以下之一:
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.如權利要求1所述的方法,其特征在于,存儲所述結果包括存儲以下之一:
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.如權利要求1所述的方法,其特征在于,存儲所述結果包括存儲按照數(shù)值順序的至少8個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差所述恒定跨度。
11.如權利要求1所述的方法,其特征在于,還包括從與正在執(zhí)行所述指令的執(zhí)行單元一起位于管芯上的非架構可見只讀存儲位置訪問按照數(shù)值順序的所述至少四個非負整數(shù)的序列。
12.一種裝置,包括: 目的地存儲位置;以及 與所述目的地存儲位置耦合的執(zhí)行單元,所述執(zhí)行單元用于,響應于指示所述目的地存儲位置的指令,將結果存儲在所述目的地存儲位置中,所述結果包括按照數(shù)值順序的至少四個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中,所述執(zhí)行單元用于,在無需利用先前指令的結果來計算所述至少四個整數(shù)的情況下,存儲包括所述至少四個整數(shù)的序列的結果。
13.如權利要求12所述的裝置,其特征在于,所述指令包括控制索引產生指令,并且所述執(zhí)行單元用于響應于所述指令來將所述至少四個非負整數(shù)的序列存儲為至少四個相應的控制索引。
14.如權利要求12所述的裝置,其特征在于,所述指令的操作碼確定所述執(zhí)行單元用于存儲按照數(shù)值順序的所述整數(shù),其中連續(xù)位置中的整數(shù)相差恒定跨度。
15.如權利要求12所述的裝置,其特征在于,所述指令用于指定所述恒定跨度。
16.如權利要求12所述的裝置,其特征在于,所述指令用于指定整數(shù)偏移量,并且所述執(zhí)行單元用于存儲所述至少四個整數(shù)中與零相差所述整數(shù)偏移量的最小整數(shù)。
17.如權利要求12所述的裝置,其特征在于,所述指令用于指示所述恒定跨度且用于指示整數(shù)偏移量,并且所述執(zhí)行單元用于存儲所述至少四個整數(shù)中與零相差所述偏移量的最小整數(shù)。
18.如權利要求12所述的裝置,其特征在于,所述指令未指示在架構可見存儲位置中的源操作數(shù)。
19.如權利要求12所述的裝置,其特征在于,所述執(zhí)行單元用于響應于所述指令在所述目的地存儲位置中存儲按照數(shù)值順序的至少四個非負連續(xù)相同奇偶性整數(shù)的序列。
20.如權利要求12 所述的裝置,其特征在于,所述執(zhí)行單元用于響應于所述指令存儲以下之一:
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.如權利要求12所述的裝置,其特征在于,所述執(zhí)行單元用于響應于所述指令存儲以下之一:
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.如權利要求12所述的裝置,其特征在于,所述執(zhí)行單元用于響應于所述指令來存儲按照數(shù)值順序的至少8個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度。
23.如權利要求19所述的裝置,其特征在于,所述執(zhí)行單元用于響應于所述指令來存儲按照數(shù)值順序的至少32個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度。
24.如權利要求12所述的裝置,其特征在于,還包括與所述執(zhí)行單元一起位于管芯上并存儲所述至少四個非負整數(shù)的序列的非架構可見存儲位置,并且所述執(zhí)行單元用于響應于所述指令從所述非架構可見存儲位置訪問所述至少四個非負整數(shù)的序列。
25.—種系統(tǒng),包括: 互連;與所述互連耦合的處理器,所述處理器包括目的地寄存器,所述處理器響應于指示所述目的地寄存器的指令在所述目的地寄存器中存儲結果,所述結果包括按照數(shù)值順序的至少四個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中所述處理器用于響應于未指示在架構可見的存儲位置中具有多個打包數(shù)據(jù)元素的源打包數(shù)據(jù)操作數(shù)的指令來存儲所述結果;以及 與所述互連耦合的動態(tài)隨機存取存儲器(DRAM)。
26.如權利要求25所述的系統(tǒng),其特征在于,所述指令包括具有操作碼的指令,所述操作碼確定所述處理器用于存儲按照數(shù)值順序的所述至少四個整數(shù),其中連續(xù)位置中的整數(shù)相差恒定跨度。
27.如權利要求25所述的系統(tǒng),其特征在于,所述指令用于指定所述恒定跨度。
28.一種制品,包括: 機器可讀存儲介質,包括一個或多個固態(tài)存儲材料,所述機器可讀存儲介質存儲指令, 所述指令用于指示目的地存儲位置,并且所述指令如果由機器執(zhí)行則使所述機器執(zhí)行包括以下的操作: 將結果存儲在所述目的地存儲位置中,所述結果包括按照數(shù)值順序的至少四個非負整數(shù)的序列,其中連續(xù)位置中的所有整數(shù)相差至少為2的恒定跨度, 其中所述指令未指示在 架構可見存儲位置中具有多個打包數(shù)據(jù)元素的源打包數(shù)據(jù)操作數(shù)。
29.如權利要求28所述的制品,其特征在于,所述指令的操作碼確定將按照數(shù)值順序存儲所述至少四個整數(shù)。
30.如權利要求28所述的制品,其特征在于,所述指令用于指定所述恒定跨度。
【文檔編號】G06F9/30GK104011644SQ201180075696
【公開日】2014年8月27日 申請日期:2011年12月22日 優(yōu)先權日:2011年12月22日
【發(fā)明者】E·烏爾德-阿邁德-瓦爾, S·阿布拉罕, R·凡倫天, Z·斯波伯, A·格雷德斯廷 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桓台县| 张掖市| 盐津县| 莆田市| 沧源| 乌兰察布市| 繁昌县| 宁波市| 博罗县| 洪洞县| 明星| 砚山县| 怀化市| 庆元县| 邢台市| 曲麻莱县| 阿勒泰市| 广安市| 湘阴县| 临江市| 明水县| 壤塘县| 灵石县| 湄潭县| 西宁市| 吉木萨尔县| 布拖县| 高雄市| 达孜县| 商丘市| 丰台区| 旬阳县| 盐亭县| 莱芜市| 南皮县| 辽源市| 甘谷县| 自贡市| 黄平县| 大方县| 六盘水市|