国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于雙數(shù)據(jù)路徑處理的裝置和方法

      文檔序號(hào):6331637閱讀:265來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):用于雙數(shù)據(jù)路徑處理的裝置和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種計(jì)算機(jī)處理器,一種操作該計(jì)算機(jī)處理器的方法,以及一種包括 計(jì)算機(jī)用的指令集的計(jì)算機(jī)程序產(chǎn)品。
      背景技術(shù)
      為了提高計(jì)算機(jī)處理器的速度,現(xiàn)有技術(shù)結(jié)構(gòu)已使用了雙執(zhí)行路徑用于執(zhí)行指 令。雙執(zhí)行路徑處理器可以根據(jù)單指令多數(shù)據(jù)(SIMD)原理操作,利用操作的并行性用于提 高處理器速度。然而,雖然使用雙執(zhí)行路徑和SIMD處理,但是仍不斷的需要提高處理器速度。典 型的雙執(zhí)行路徑處理器使用兩個(gè)大致類(lèi)似的通路,因此每個(gè)通路都處理控制代碼和數(shù)據(jù)路 徑代碼。雖然公知的處理器支持32位標(biāo)準(zhǔn)編碼和16位“密集”編碼的組合,但是該方案承 受著許多不足,包括缺少在16位格式中少數(shù)可用位中的語(yǔ)義內(nèi)容。此外,常規(guī)的通用數(shù)字信號(hào)處理器不能匹配用于許多目的的應(yīng)用特定算法,包括 執(zhí)行諸如卷積、快速傅立葉變換、Trellis/Viterbi編碼、相關(guān)性、有限脈沖響應(yīng)過(guò)濾和其他 操作的專(zhuān)用操作。

      發(fā)明內(nèi)容
      在根據(jù)本發(fā)明的一個(gè)實(shí)施例中,提供一種具有控制和數(shù)據(jù)處理能力的計(jì)算機(jī)處理 器。該計(jì)算機(jī)處理器包括用于解碼指令的解碼單元;包括第一數(shù)據(jù)執(zhí)行路徑和第二數(shù)據(jù) 執(zhí)行路徑的數(shù)據(jù)處理設(shè)備,所述第一數(shù)據(jù)執(zhí)行路徑包括固定操作符,所述第二數(shù)據(jù)執(zhí)行路 徑至少包括可配置操作符,所述可配置操作符具有多個(gè)預(yù)定義的配置,通過(guò)數(shù)據(jù)處理指令 的操作碼部分可選擇所述配置中的至少一些;其中所述解碼單元可操作用于檢測(cè)數(shù)據(jù)處理 指令是定義固定數(shù)據(jù)處理操作還是可配置數(shù)據(jù)處理操作,所述解碼單元使計(jì)算機(jī)系統(tǒng)將用 于處理的數(shù)據(jù)在檢測(cè)到所述固定數(shù)據(jù)處理指令時(shí)提供給所述第一數(shù)據(jù)執(zhí)行路徑,而在檢測(cè) 到可配置數(shù)據(jù)處理指令時(shí)提供給所述可配置數(shù)據(jù)執(zhí)行路徑。在另一相關(guān)實(shí)施例中,解碼單元能夠解碼來(lái)自存儲(chǔ)器的指令包流,每個(gè)包包括多 個(gè)指令。解碼單元也可操作用于檢測(cè)指令包是否包含數(shù)據(jù)處理指令。可配置操作符以多位 值的級(jí)別、或者以字的級(jí)別可配置,其中多位值包括具有四個(gè)或更多位的多位值。根據(jù)單指 令多數(shù)據(jù)原理,第一數(shù)據(jù)執(zhí)行路徑的多個(gè)固定操作符可以被布置用于在獨(dú)立通道中執(zhí)行多 個(gè)固定操作。同樣,根據(jù)單指令多數(shù)據(jù)原理,第二數(shù)據(jù)執(zhí)行路徑的多個(gè)可配置操作符可以被 布置用于在不同通道中執(zhí)行多個(gè)操作。在另一相關(guān)實(shí)施例中,第二執(zhí)行路徑的可配置操作符可以被布置用于接收確定所 執(zhí)行的操作的特性的配置信息??梢詮亩x可配置數(shù)據(jù)處理操作的指令的字段接收該信息。第二執(zhí)行路徑的可配置操作符可以被布置用于接收包括控制相關(guān)的互連性的信息的可 配置信息。該計(jì)算機(jī)處理器進(jìn)一步包括與第二數(shù)據(jù)執(zhí)行路徑的可配置操作符相關(guān)聯(lián)的控 制映射,所述控制映射可操作用于從可配置數(shù)據(jù)處理指令接收至少一個(gè)配置位,并給響應(yīng) 于此的可配置操作符提供配置信息。該配置信息可以通過(guò)所述可配置操作符確定操作的特 性;并且控制兩個(gè)或多個(gè)所述配置操作符之間的互連性。在另一相關(guān)實(shí)施例中,第二執(zhí)行路徑的可配置操作符可被布置用于從源而不是從 可配置數(shù)據(jù)處理指令來(lái)接收確定待執(zhí)行的操作的特性的配置信息、或者控制互連性的配置 信息。第二數(shù)據(jù)執(zhí)行路徑的至少一個(gè)可配置操作符能夠在向結(jié)果存儲(chǔ)器返回結(jié)果之前以比 兩個(gè)計(jì)算大的執(zhí)行深度來(lái)執(zhí)行數(shù)據(jù)處理指令。該計(jì)算機(jī)處理器可以包括轉(zhuǎn)換裝置,其用于 從可配置數(shù)據(jù)處理指令接收數(shù)據(jù)處理操作數(shù)并在適當(dāng)時(shí)轉(zhuǎn)換所述數(shù)據(jù)處理操作數(shù)用于提 供給一個(gè)或多個(gè)所述可配置操作符。計(jì)算機(jī)處理器也可以包括以下轉(zhuǎn)換裝置,其用于從一 個(gè)或多個(gè)所述可配置操作符接收結(jié)果,并在適當(dāng)時(shí)轉(zhuǎn)換所述結(jié)果用于提供給結(jié)果存儲(chǔ)器和 反饋循環(huán)中的一個(gè)或多個(gè)。該計(jì)算機(jī)處理器也包括多個(gè)控制映射,其用于將從可配置數(shù)據(jù) 處理指令所接收的配置位映射成用于提供給第二數(shù)據(jù)執(zhí)行路徑的可配置操作符的配置信 息。同樣,該計(jì)算機(jī)處理器可以包括以下轉(zhuǎn)換裝置,其用于從控制映射接收配置信息,并在 適當(dāng)時(shí)轉(zhuǎn)換該配置信息用于提供給第二數(shù)據(jù)執(zhí)行路徑的可配置操作符。該計(jì)算機(jī)處理器也 可以包括從一個(gè)或多個(gè)以下項(xiàng)所選擇的可配置操作符乘累加操作符;算術(shù)操作符;狀態(tài) 操作符;和交叉通道換碼器。同樣,該計(jì)算機(jī)處理器可以包括能執(zhí)行從如下項(xiàng)中所選擇的一 個(gè)或多個(gè)操作的操作符和指令集快速傅立葉變換;反向快速傅立葉變換;Viterbi編碼/ 解碼;Turbo編碼/解碼;和有限脈沖響應(yīng)計(jì)算;以及任何其他相關(guān)性或卷積。在根據(jù)本發(fā)明的另一實(shí)施例中,提供一種操作具有控制和數(shù)據(jù)處理能力的計(jì)算機(jī) 處理器的方法,所述計(jì)算機(jī)處理器包括第一數(shù)據(jù)執(zhí)行路徑和第二數(shù)據(jù)執(zhí)行路徑,所述第一 數(shù)據(jù)執(zhí)行路徑包括固定操作符,所述第二數(shù)據(jù)執(zhí)行路徑包括可配置操作符,所述可配置操 作符具有多個(gè)預(yù)定義的配置,所述配置中的至少一些可通過(guò)數(shù)據(jù)處理指令的操作碼部分來(lái) 選擇。該方法包括解碼多個(gè)指令以檢測(cè)所述多個(gè)指令的至少一個(gè)數(shù)據(jù)處理指令是定義固 定數(shù)據(jù)處理操作還是可配置數(shù)據(jù)處理操作;使計(jì)算機(jī)處理器將用于處理的數(shù)據(jù)在檢測(cè)到固 定數(shù)據(jù)處理指令時(shí)提供給所述第一數(shù)據(jù)執(zhí)行路徑,而在檢測(cè)可配置數(shù)據(jù)處理指令時(shí)提供給 所述可配置數(shù)據(jù)執(zhí)行路徑;以及輸出結(jié)果。在根據(jù)本發(fā)明的另一實(shí)施例中,提供一種包括程序代碼裝置的計(jì)算機(jī)程序產(chǎn)品, 所述程序代碼裝置用于使計(jì)算機(jī)處理器執(zhí)行以下步驟,其中所述計(jì)算機(jī)處理器包括第一數(shù) 據(jù)執(zhí)行路徑和第二數(shù)據(jù)執(zhí)行路徑,所述第一數(shù)據(jù)執(zhí)行路徑包括固定操作符,所述第二數(shù)據(jù) 執(zhí)行路徑包括可配置操作符,所述可配置操作符具有多個(gè)預(yù)定義的配置,所述配置中的至 少一些可通過(guò)數(shù)據(jù)處理指令的操作碼部分來(lái)選擇,即解碼多個(gè)指令以檢測(cè)所述多個(gè)指令 的至少一個(gè)數(shù)據(jù)處理指令是定義固定數(shù)據(jù)處理操作還是可配置數(shù)據(jù)處理操作;使計(jì)算機(jī)處 理器將用于處理的數(shù)據(jù)在檢測(cè)到固定數(shù)據(jù)處理指令時(shí)提供給所述第一數(shù)據(jù)執(zhí)行路徑,而在 檢測(cè)可配置數(shù)據(jù)處理指令時(shí)提供給所述可配置數(shù)據(jù)執(zhí)行路徑;以及輸出結(jié)果。在根據(jù)本發(fā)明的另一實(shí)施例中,提供一種包括第一多個(gè)指令和第二多個(gè)指令的數(shù) 據(jù)處理指令集,所述第一多個(gè)指令具有指示數(shù)據(jù)處理操作的固定類(lèi)型的字段,所述第二多 個(gè)指令具有指示數(shù)據(jù)處理操作的可配置類(lèi)型的字段。
      在根據(jù)本發(fā)明的另一實(shí)施例中,提供一種包含可配置操作符的數(shù)據(jù)執(zhí)行路徑的計(jì) 算機(jī)處理器,其中可配置操作符包括操作符配置的多個(gè)預(yù)定義的組,每個(gè)組包括來(lái)自獨(dú)立 的操作符類(lèi)的操作符。操作符類(lèi)可以包括從一個(gè)或多個(gè)如下項(xiàng)中所選擇的類(lèi)乘累加操作 符;算術(shù)操作符;狀態(tài)操作符;和換碼器。從操作符配置的每個(gè)預(yù)定義的組內(nèi)所選擇的操作 符之間的連接能夠通過(guò)由計(jì)算機(jī)處理器所執(zhí)行的指令內(nèi)的操作碼部分來(lái)配置。同樣,從操 作符配置的多于一個(gè)的預(yù)定義的組所選擇的操作符之間的連接能夠通過(guò)由計(jì)算機(jī)處理器 所執(zhí)行的指令內(nèi)的操作碼部分來(lái)配置。本發(fā)明的其他優(yōu)點(diǎn)和新穎特性在如下說(shuō)明中將會(huì)部分地被提出,并且依據(jù)下面的 審查和附圖,對(duì)于本領(lǐng)域技術(shù)人員而言部分地是顯然的;或者可以通過(guò)實(shí)施本發(fā)明被學(xué)習(xí) 到。


      為了更好的理解本發(fā)明,并說(shuō)明可以如何同樣實(shí)施本發(fā)明,現(xiàn)在將僅通過(guò)示例參 考附圖,其中圖1是根據(jù)本發(fā)明實(shí)施例的不對(duì)稱(chēng)的雙執(zhí)行路徑計(jì)算機(jī)處理器的框圖;圖2表示根據(jù)本發(fā)明實(shí)施例的用于圖1的處理器的指令的示例性類(lèi);以及圖3是表示根據(jù)本發(fā)明實(shí)施例的可配置深執(zhí)行單元的組件的示意具體實(shí)施例方式圖1是根據(jù)本發(fā)明實(shí)施例的不對(duì)稱(chēng)的雙路徑計(jì)算機(jī)處理器的框圖。圖1的處理器 將單指令流100的處理在兩個(gè)不同的硬件執(zhí)行路徑之間劃分即用于處理控制代碼的控制 執(zhí)行路徑102、和用于處理數(shù)據(jù)代碼的數(shù)據(jù)執(zhí)行路徑103。兩個(gè)執(zhí)行路徑102、103的數(shù)據(jù)寬 度、操作符和其他特征根據(jù)控制代碼和數(shù)據(jù)路徑代碼的不同特征而不同。典型地,控制代碼 支持較少、較窄的寄存器,難于并行化,典型地(但不是唯一地)用C代碼或另一高級(jí)語(yǔ)言 來(lái)寫(xiě),并且它的代碼密度一般比它的速度性能更重要。相反,數(shù)據(jù)路徑代碼典型地支持寬寄 存器的大文件,可高度并行化,以匯編語(yǔ)言來(lái)寫(xiě),并且它的性能比它的代碼密度更重要。在 圖1的處理器中,兩個(gè)不同的執(zhí)行路徑102和103專(zhuān)用于處理兩種不同類(lèi)型的代碼,每側(cè) 都具有其自己的結(jié)構(gòu)寄存器文件(諸如控制寄存器文件104和數(shù)據(jù)寄存器文件105),在寄 存器寬度和數(shù)量方面是不同的;控制寄存器具有較窄的寬度,以位數(shù)計(jì)(在一個(gè)示例中,32 位),而數(shù)據(jù)寄存器具有較寬的寬度(在一個(gè)示例中,64位)。因?yàn)榧拇嫫鞯膬蓚€(gè)執(zhí)行路徑 執(zhí)行不同的專(zhuān)門(mén)功能而具有不同的位寬度,因此該處理器是不對(duì)稱(chēng)的。在圖1的處理器中,指令流100由指令包的序列組成。所提供的每個(gè)指令包由指 令解碼單元101解碼,其從數(shù)據(jù)指令中分離控制指令,如下進(jìn)一步所述??刂茍?zhí)行路徑102 為指令流處理控制流操作,并利用分支單元106、執(zhí)行單元107、和載入存儲(chǔ)單元108管理機(jī) 器的狀態(tài)寄存器,其中在該實(shí)施例中所述載入存儲(chǔ)單元108被數(shù)據(jù)執(zhí)行路徑103共享。只 有處理器的控制側(cè)需要對(duì)編譯器(諸如對(duì)于C、C++、或Java語(yǔ)言的編譯器、或另一高級(jí)語(yǔ) 言編譯器)可視。在控制側(cè)內(nèi),分支單元106和執(zhí)行單元107的操作依照本領(lǐng)域普通技術(shù) 人員公知的常規(guī)處理器設(shè)計(jì)。在固定執(zhí)行單元109和可配置深度執(zhí)行單元110中,數(shù)據(jù)執(zhí)行路徑103使用SIMD(單指令多數(shù)據(jù))并行性。就像將在下面進(jìn)一步描述的那樣,除了常規(guī)的SIMD處理器 所使用的寬度以外,為了增加每指令工作,可配置深度執(zhí)行單元110提供處理的深度。如果被解碼的指令定義控制指令,則其被施加給機(jī)器的控制執(zhí)行路徑上的適當(dāng)?shù)?功能單元(例如分支單元106、執(zhí)行單元107和載入/存儲(chǔ)單元108)。如果被解碼的指令 定義具有固定或者可配置數(shù)據(jù)處理操作的指令,則其被供應(yīng)給數(shù)據(jù)處理執(zhí)行路徑。在指令 包的數(shù)據(jù)指令部分內(nèi),指定位表示指令是固定還是可配置數(shù)據(jù)處理指令,以及在可配置指 令的情況下,另外的指定位定義配置信息。根據(jù)被解碼的數(shù)據(jù)處理指令的子類(lèi)型,將數(shù)據(jù)提 供給機(jī)器的數(shù)據(jù)處理路徑的固定或可配置執(zhí)行子路徑。這里,“可配置”表示從多個(gè)預(yù)定義的(“偽靜態(tài)”)操作符配置中選擇操作符配置 的能力。操作符的偽靜態(tài)配置是有效的用以使操作符(i)執(zhí)行特定類(lèi)型的操作或者(ii) 以特定形式與相關(guān)元件互連或者(iii)上述(i)和(ii)的組合。實(shí)際上,所選的偽靜態(tài)配 置每次可以確定許多操作符元素的特性和互連性。它也能控制與數(shù)據(jù)路徑相關(guān)聯(lián)的轉(zhuǎn)換配 置。在優(yōu)選的實(shí)施例中,至少部分多個(gè)偽靜態(tài)操作符配置通過(guò)數(shù)據(jù)處理指令的操作代碼部 分是可選擇的,這將在下面進(jìn)一步描述。同樣根據(jù)這里的實(shí)施例,“可配置指令”允許以多位 值的級(jí)別執(zhí)行定制的操作;例如以四個(gè)或多個(gè)位多位值的級(jí)別,或者以字的級(jí)別。需要指出的是,控制和數(shù)據(jù)處理指令可以定義存儲(chǔ)器訪(fǎng)問(wèn)(載入/存儲(chǔ))和基本 算術(shù)操作,所述控制和數(shù)據(jù)處理指令在機(jī)器的它們的相應(yīng)不同的側(cè)上被執(zhí)行。用于控制操 作的輸入/操作數(shù)可被提供給控制寄存器文件104/從控制寄存器文件104提供,而用于數(shù) 據(jù)處理操作的數(shù)據(jù)/操作數(shù)被提供給寄存器文件105/從寄存器文件105提供。根據(jù)本發(fā)明的實(shí)施例,每個(gè)數(shù)據(jù)處理操作的至少一個(gè)輸入可以是矢量。在這方面, 可以認(rèn)為可配置數(shù)據(jù)路徑的可配置操作符和/或轉(zhuǎn)換電路是可配置的,以利用所執(zhí)行的操 作的特性和/或其間的互連性執(zhí)行矢量操作。例如,對(duì)數(shù)據(jù)處理操作的64位矢量輸入可以 包括四個(gè)16位的標(biāo)量操作數(shù)。這里,“矢量”是標(biāo)量操作數(shù)的集合。矢量算術(shù)可以在多個(gè)標(biāo) 量操作數(shù)上執(zhí)行,并可以包括標(biāo)量元素的轉(zhuǎn)向、移動(dòng)和置換。不是矢量操作的所有操作數(shù)都 需要是矢量;例如,矢量操作可以有標(biāo)量和至少一個(gè)矢量作為輸入;并且輸出或者是標(biāo)量 或者是矢量的結(jié)果。這里,“控制指令”包括專(zhuān)用于程序流和分支以及地址產(chǎn)生的指令;但不是數(shù)據(jù)處 理。“數(shù)據(jù)處理指令”包括用于邏輯操作或算術(shù)操作的指令,對(duì)于該算術(shù)操作,至少一個(gè)輸入 是矢量。數(shù)據(jù)處理指令可以在多個(gè)數(shù)據(jù)指令上操作,例如在SIMD處理中,或在處理數(shù)據(jù)元 素的寬的、短的矢量中。上述的控制指令和數(shù)據(jù)處理指令的基本功能并不重疊;然而,共性 在于兩種類(lèi)型的代碼都具有邏輯和標(biāo)量算術(shù)能力。圖2示出用于圖1的處理器的指令包的三種類(lèi)型。指令包的每種類(lèi)型都是64位 長(zhǎng)。指令包211是3標(biāo)量類(lèi)型,用于密集控制代碼,并包括三個(gè)21位控制指令(c21)。指令 包212和213是LIW(長(zhǎng)指令字)類(lèi)型,用于數(shù)據(jù)路徑代碼的并行執(zhí)行。在該示例中,每個(gè) 指令包212、213都包括兩個(gè)指令,但是如果需要可以包括不同的數(shù)目。指令包212包括34 位數(shù)據(jù)指令(d34)和28位存儲(chǔ)器指令(m28);并且被用于并行執(zhí)行具有數(shù)據(jù)側(cè)載入存儲(chǔ)操 作(m28指令)的數(shù)據(jù)側(cè)算術(shù)(d34指令)。存儲(chǔ)器類(lèi)指令(m28)可以利用來(lái)自控制側(cè)的地 址從處理器的控制側(cè)或數(shù)據(jù)側(cè)讀出,或?qū)懭胩幚砥鞯目刂苽?cè)或數(shù)據(jù)側(cè)。指令包213包括34 位數(shù)據(jù)指令(d34)和21位控制指令(c21);并被用于并行執(zhí)行具有控制側(cè)操作(c21指令)(例如控制側(cè)算術(shù)、分支或者載入存儲(chǔ)操作)的數(shù)據(jù)側(cè)算術(shù)(d34指令)。圖1的實(shí)施例的指令解碼單元101使用每個(gè)指令包的初始識(shí)別位、或者在預(yù)定位 位置處的某些其他指定的識(shí)別位,用于確定正在解碼哪一種類(lèi)型的包。例如,如圖2所示, 初始位“1”表示指令包是標(biāo)量控制指令類(lèi)型,具有3個(gè)控制指令;而初始位“01”和“00”表 示類(lèi)型212和213的指令包,在包212中具有數(shù)據(jù)和存儲(chǔ)器指令或者在包213中具有數(shù)據(jù) 和控制指令。已經(jīng)解碼了每個(gè)指令包的初始位,圖1的解碼單元101根據(jù)指令包的類(lèi)型將 每個(gè)包的指令適當(dāng)?shù)貍鬟f到控制執(zhí)行路徑102或者數(shù)據(jù)執(zhí)行路徑103。為了執(zhí)行圖2的指令包,圖1的實(shí)施例的處理器的指令解碼單元101從存儲(chǔ)器順 序地取得程序包;并程序包順序地被執(zhí)行。在指令包內(nèi),順序地執(zhí)行包211的指令,其中首 先執(zhí)行64位字的最低有效端的21位控制指令,然后是接下來(lái)的21位控制指令,以及然后 是最高有效端的21位控制指令。在指令包212和213內(nèi),可以同時(shí)執(zhí)行指令(在根據(jù)本發(fā) 明的實(shí)施例中,雖然這不是必需的情況)。因此,以圖1的實(shí)施例的處理器的程序順序,程序 包被順序地執(zhí)行;但是包內(nèi)的指令可以或者順序地被執(zhí)行(對(duì)于包類(lèi)型211),或同時(shí)被執(zhí) 行(對(duì)于包212和213)。下面,將類(lèi)型212和213的指令包分別簡(jiǎn)稱(chēng)為MD和⑶包(分別 包含一個(gè)存儲(chǔ)器和一個(gè)數(shù)據(jù)指令;以及一個(gè)控制指令和一個(gè)數(shù)據(jù)指令)。通過(guò)使用21位控制指令,圖1的實(shí)施例克服了許多在具有其他長(zhǎng)度指令的處理器 中以及特別是在支持?jǐn)?shù)據(jù)指令用的32位標(biāo)準(zhǔn)編碼和控制代碼用的16位“密集”編碼的組 合的處理器中所發(fā)現(xiàn)的缺陷。在這種雙16/32位處理器中,由于使用每條指令用的雙編碼、 或者使用具有通過(guò)分支、提取地址在編碼方案之間轉(zhuǎn)換的裝置或其他裝置的兩個(gè)獨(dú)立的解 碼器而引起冗余。根據(jù)本發(fā)明實(shí)施例,通過(guò)使用單21位長(zhǎng)度用于所有控制指令來(lái)消除該冗 余。此外,使用21位控制指令消除在16位“密集”編碼方案中不充分的語(yǔ)義內(nèi)容所產(chǎn)生的 缺陷。由于不充分的語(yǔ)義內(nèi)容,使用16位方案的處理器典型地需要設(shè)計(jì)折衷的某些混合, 諸如使用兩操作數(shù)破壞性操作,其中相應(yīng)的代碼膨脹(code bloat)用于復(fù)制;使用對(duì)寄 存器文件的子集的有窗口訪(fǎng)問(wèn),其中代碼膨脹用于溢出/填充或者窗口指針操作;或頻繁 逆轉(zhuǎn)為32位格式,因?yàn)椴皇撬械牟僮鞫伎梢砸?6位格式中很少可用的操作碼位來(lái)表示。 在本發(fā)明實(shí)施例中,通過(guò)使用21位控制指令減輕這些缺陷。根據(jù)本發(fā)明實(shí)施例,可以使用大量指令。例如,指令簽名可以是如下任一種,其中 C格式、M格式、和D格式分別表示控制、存儲(chǔ)器訪(fǎng)問(wèn)和數(shù)據(jù)格式
      指令簽名參數(shù)被...使用instr指令沒(méi)有參數(shù)僅僅C格式instr dst指令有單個(gè)目的參數(shù)僅僅C格式instr srcO指令有單個(gè)源參數(shù)僅僅C或D格式instr dst, srcO指令有單個(gè)目的、單個(gè)源參數(shù)D和M格式指令instr dst,srcO,srcl指令有單個(gè)目的參數(shù)和兩個(gè)源參數(shù)C、D和M格式指令
      同樣,根據(jù)本發(fā)明一個(gè)實(shí)施例,C格式指令都提供SISD (單指令單數(shù)據(jù))操作,而M 格式和D格式指令提供SISD或SIMD操作。例如,控制指令可以提供一般的算術(shù)、比較和邏 輯指令;控制流指令;存儲(chǔ)器載入和存儲(chǔ)指令;以及其他。數(shù)據(jù)指令可以提供一般的算術(shù)、 移位、邏輯和比較指令;清洗(shuffle)、分類(lèi)、字節(jié)擴(kuò)展和置換指令;線(xiàn)性反饋偏移寄存指 令;以及經(jīng)由可配置深度執(zhí)行單元110 (如下所述)由用戶(hù)定義的指令。存儲(chǔ)器指令可以提 供存儲(chǔ)器載入和存儲(chǔ);將所選擇的數(shù)據(jù)寄存器復(fù)制到控制寄存器;將廣播控制寄存器復(fù)制 到數(shù)據(jù)寄存器;以及立即到寄存器指令。根據(jù)本發(fā)明一個(gè)實(shí)施例,圖1的處理器的特征在于第一固定數(shù)據(jù)執(zhí)行路徑和第二 可配置數(shù)據(jù)執(zhí)行路徑。第一數(shù)據(jù)路徑具有以與常規(guī)的SIMD處理設(shè)計(jì)類(lèi)似的形式被分裂為 通道的固定SIMD執(zhí)行單元。第二數(shù)據(jù)路徑具有可配置深度執(zhí)行單元110。“深度執(zhí)行”指 的是在向寄存器文件返回結(jié)果之前在由單個(gè)發(fā)布的指令所提供的數(shù)據(jù)上執(zhí)行多個(gè)連續(xù)操 作的處理器能力。深度執(zhí)行的一個(gè)示例在于常規(guī)的MAC操作(乘和累加),其在來(lái)自單個(gè) 指令的數(shù)據(jù)上執(zhí)行兩個(gè)操作(乘法和加法),因此具有數(shù)量級(jí)2的深度。深度執(zhí)行也可以 以操作數(shù)輸入的數(shù)目等于結(jié)果輸出的數(shù)目為特征;或等同地,價(jià)進(jìn)(valency-in)等于價(jià)出 (valency-out)。因此,例如具有一個(gè)結(jié)果的常規(guī)兩操作數(shù)加法不是優(yōu)選的深度執(zhí)行的示 例,因?yàn)椴僮鲾?shù)的數(shù)目不等于結(jié)果的數(shù)目;而卷積、快速傅立葉變換、Trellis/Viterbi編 碼、相關(guān)器、有限脈沖響應(yīng)過(guò)濾器以及其他信號(hào)處理算法是深度執(zhí)行的示例。專(zhuān)用數(shù)字信號(hào) 處理(DSP)算法典型地在位級(jí)上以及以存儲(chǔ)器映射的形式執(zhí)行深度執(zhí)行。但是,常規(guī)的寄 存器映射通用DSP的算法不執(zhí)行深度執(zhí)行,而是在MAC操作中,執(zhí)行順序深度最多為數(shù)量級(jí) 2的指令。相反,圖1的處理器提供寄存器映射通用處理器,其能夠深度執(zhí)行數(shù)量級(jí)大于2 的動(dòng)態(tài)可配置的字級(jí)指令。在圖1的處理器中,深度執(zhí)行指令的特性(待執(zhí)行的數(shù)學(xué)函數(shù) 的圖表)可以由指令本身中的配置信息調(diào)節(jié)/定制。在優(yōu)選實(shí)施例中,格式指令包括被分 配給配置信息的位位置。為了提供這個(gè)能力,深度執(zhí)行單元110具有可配置執(zhí)行資源,其意 味著可以上載操作符模式、互連性和常數(shù)以適合每個(gè)應(yīng)用。深度執(zhí)行對(duì)執(zhí)行的并行性添加 深度,其正交于由SIMD和LIW處理的早期構(gòu)思所提供的寬度;因此它表示用于增加目標(biāo)處 理器的每指令工作(work-per-instruction)的其他尺度。圖3示出根據(jù)本發(fā)明實(shí)施例的可配置深度執(zhí)行單元310的組件。如圖1所示,可配 置深度執(zhí)行單元110是數(shù)據(jù)執(zhí)行路徑103的一部分,并因此可以由來(lái)自圖2的MD和⑶指 令包212和213的數(shù)據(jù)側(cè)指令指示。在圖3中,從圖1的指令解碼單元101和數(shù)據(jù)寄存器 文件105將指令314和操作數(shù)315提供到深度執(zhí)行單元310。被解碼的指令314中的多位 配置代碼被用于訪(fǎng)問(wèn)控制映射316,其將多位代碼擴(kuò)展為比較復(fù)雜的配置信號(hào)集用于配置 深度執(zhí)行單元的操作符。例如,控制映射316可以被實(shí)施為查詢(xún)表,其中將指令的不同的可 能多位代碼映射為深度執(zhí)行單元的不同的可能操作符配置。根據(jù)對(duì)控制映射316的查詢(xún)表 查詢(xún)的結(jié)果,交叉互連317配置一組操作符318-321,在任何布置中對(duì)于執(zhí)行由多位指令代 碼所表示的操作符配置都是必要的。例如,該操作符可以包括乘法操作符318、算術(shù)邏輯 單元(ALU)操作符319、狀態(tài)操作符320、或交叉通道換碼器321。在一個(gè)實(shí)施例中,深度執(zhí) 行單元包含15個(gè)操作符一個(gè)乘法操作符318、八個(gè)ALU操作符319、四個(gè)狀態(tài)操作符320、 和兩個(gè)交叉通道換碼器321 ;盡管其他操作符數(shù)目也是可能的。被提供到深度執(zhí)行單元的 操作數(shù)315可以是例如16位操作數(shù);將這些操作數(shù)提供到第二交叉互連322,其可以將操
      8作數(shù)提供給合適的操作符318-321。第二交叉互連322也從操作符318-321接收中間結(jié)果 的反饋324,所述反饋接著又同樣可以由第二交叉互連322提供給合適的操作符318-321。 第三交叉互連323多路復(fù)用來(lái)自操作符318-321的結(jié)果,并輸出最后結(jié)果325。各種控制 信號(hào)可以被用于配置操作符;例如,圖3的實(shí)施例的控制映射316不必要被實(shí)施為單個(gè)查詢(xún) 表,而是可以被實(shí)施為兩個(gè)或更多級(jí)聯(lián)查詢(xún)表的序列。第一查詢(xún)表中的項(xiàng)目可以從給出的 多位指令代碼指向第二查詢(xún)表,因此減少了在每個(gè)查詢(xún)表中用于復(fù)雜操作符配置所需的存 儲(chǔ)量。例如,第一查詢(xún)表可以被組織為配置種類(lèi)的庫(kù),使得多個(gè)多位指令代碼在第一查詢(xún)表 中被組合在一起,其中每組指向提供該組的每個(gè)多位代碼的特定配置的隨后的查詢(xún)表。根據(jù)圖3的實(shí)施例,操作符優(yōu)選地被預(yù)配置為各種操作符類(lèi)。實(shí)際上,這通過(guò)硬布 線(xiàn)的策略層來(lái)實(shí)現(xiàn)。該方法的優(yōu)勢(shì)在于,意味著需要存儲(chǔ)更少的預(yù)定義的配置,并且控制電 路可以更簡(jiǎn)單。例如,將操作符318預(yù)配置在乘法操作符的類(lèi)中;將操作符319預(yù)配置為 ALU操作符;將操作符320預(yù)配置為狀態(tài)操作符;以及將操作符321預(yù)配置為交叉通道換碼 器;而且其他預(yù)配置的類(lèi)是可能的。然而,即使操作符的類(lèi)被預(yù)配置,對(duì)于用于實(shí)施所給出 的算法的特定配置的最終布置,指令的運(yùn)行時(shí)間靈活性能夠布置至少以下項(xiàng)(i)在每類(lèi) 中的操作符的連接性;(ii)與來(lái)自其他類(lèi)的操作符的連接性;(iii)任何相關(guān)轉(zhuǎn)換裝置的 連接性。技術(shù)人員應(yīng)當(dāng)理解,雖然上面已描述了什么被認(rèn)為是本發(fā)明的最佳模式以及在什 么情況下執(zhí)行本發(fā)明的其他模式是適當(dāng)?shù)?,但是本發(fā)明不應(yīng)局限于在優(yōu)選實(shí)施例的所述描 述中公開(kāi)的特定裝置配置或方法步驟。本領(lǐng)域技術(shù)人員同樣應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明具有廣泛 的應(yīng)用,并且實(shí)施例允許在不偏離本發(fā)明構(gòu)思的情況下具有廣范的不同的實(shí)施和修改。特 別是,這里提及的示例性位寬不是限制性的,也不是被稱(chēng)為半字、字、長(zhǎng)等的位寬的任意選 擇。
      權(quán)利要求
      計(jì)算機(jī)處理器,所述處理器包括解碼單元,用于解碼來(lái)自存儲(chǔ)器的指令包流,每個(gè)指令包包括多個(gè)指令;處理通道,其包括多個(gè)功能單元,并且可操作用于執(zhí)行控制處理操作;其中所述解碼單元可操作用于接收具有64位位長(zhǎng)的指令包,并且可操作用于使用所述指令包中的識(shí)別位來(lái)檢測(cè)所述指令包是否定義三個(gè)每個(gè)都具有21位位長(zhǎng)的控制指令,以及其中當(dāng)所述解碼單元檢測(cè)到所述指令包包括三個(gè)這種控制指令時(shí)所述控制指令被提供給所述處理通道用于按照它們出現(xiàn)在所述指令包中的順序來(lái)執(zhí)行。
      2.如權(quán)利要求1所述的計(jì)算機(jī)處理器,其中所述處理通道包括從控制寄存器文件、控 制執(zhí)行單元、分支執(zhí)行單元和載入/存儲(chǔ)單元中選擇的一個(gè)或多個(gè)。
      3.操作計(jì)算機(jī)處理器的方法,所述計(jì)算機(jī)處理器包括處理通道并且能夠執(zhí)行具有多個(gè) 功能單元的控制處理操作,所述方法包括(a)接收來(lái)自存儲(chǔ)器的指令包序列,所述指令包的每一個(gè)均包括多個(gè)定義了操作的指令;(b)通過(guò)以下方式來(lái)依次解碼每個(gè)指令包使用所述指令包中的識(shí)別位來(lái)確定所述指 令包是否定義了三個(gè)每個(gè)具有21位位長(zhǎng)的控制指令,并且其中當(dāng)所述解碼單元檢測(cè)到所 述指令包包括三個(gè)這種控制指令時(shí),提供所述多個(gè)控制指令給所述第一處理通道用于按照 它們出現(xiàn)在所述指令包中的順序來(lái)執(zhí)行。
      4.計(jì)算機(jī)程序產(chǎn)品,包括用于促使計(jì)算機(jī)根據(jù)權(quán)利要求3的方法來(lái)操作的程序代碼裝置。
      5.計(jì)算機(jī)程序代碼,包括用于促使計(jì)算機(jī)根據(jù)權(quán)利要求3所述的方法來(lái)操作的指令序列。
      6.用于計(jì)算機(jī)的指令集,所述指令集包括具有64位位長(zhǎng)的指令包類(lèi),并且每個(gè)包括 識(shí)別位;和三個(gè)用于順序執(zhí)行的控制指令,所述控制指令中的每一個(gè)都具有21位的位長(zhǎng)。
      全文摘要
      一種具有控制和數(shù)據(jù)處理能力的計(jì)算機(jī)處理器,包括用于解碼指令的解碼單元。數(shù)據(jù)處理裝置包括第一數(shù)據(jù)執(zhí)行路徑和第二數(shù)據(jù)執(zhí)行路徑,所述第一數(shù)據(jù)執(zhí)行路徑包括固定操作符,所述第二數(shù)據(jù)執(zhí)行路徑至少包括可配置操作符,所述可配置操作符具有多個(gè)預(yù)定義的配置,所述配置中的至少一些可通過(guò)數(shù)據(jù)處理指令的操作碼部分來(lái)選擇。解碼單元可操作用于檢測(cè)數(shù)據(jù)處理指令是定義固定數(shù)據(jù)處理操作還是可配置數(shù)據(jù)處理操作,所述解碼單元使計(jì)算機(jī)系統(tǒng)將用于處理的數(shù)據(jù)在檢測(cè)到所述固定數(shù)據(jù)處理指令時(shí)提供給所述第一數(shù)據(jù)執(zhí)行路徑,而在檢測(cè)到可配置數(shù)據(jù)處理指令時(shí)提供給所述可配置數(shù)據(jù)執(zhí)行路徑。
      文檔編號(hào)G06F9/318GK101963897SQ20101027629
      公開(kāi)日2011年2月2日 申請(qǐng)日期2005年3月22日 優(yōu)先權(quán)日2004年3月31日
      發(fā)明者S·諾勒斯 申請(qǐng)人:艾色拉公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1