專利名稱:調(diào)諧數(shù)字系統(tǒng)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種方法和設(shè)備,用于調(diào)諧諸如IP塊或片上系統(tǒng)(SoC)的數(shù)字系統(tǒng)的性能,具體地涉及一種用于調(diào)諧數(shù)字系統(tǒng)的性 能以便獲得根據(jù)具體應(yīng)用程序的最佳執(zhí)行的方法和設(shè)備。10背景技術(shù)存在改進(jìn)數(shù)字系統(tǒng)的硬件設(shè)計(jì)的連續(xù)動(dòng)力,以便得到速度、功率 損耗、無(wú)誤差操作等方面的最佳性能。除了改進(jìn)數(shù)字系統(tǒng)的實(shí)際硬件 設(shè)計(jì)以外,還存在通過(guò)改變系統(tǒng)操作參數(shù)來(lái)改進(jìn)任意給定的數(shù)字系統(tǒng)15 的性能的連續(xù)動(dòng)力。例如,根據(jù)給定應(yīng)用程序所需要的性能,已知改 變數(shù)字系統(tǒng)的操作參數(shù),使得系統(tǒng)操作于盡可能的最快頻率和/或最低 功率損耗。技術(shù)已經(jīng)發(fā)展到適應(yīng)諸如分立IP塊或SoC的數(shù)字系統(tǒng)的性能, 使得根據(jù)特定的應(yīng)用程序以最佳的方式在速度和功率兩個(gè)方面保證一20 定性能水平。圖1示出了已知系統(tǒng)的示例,在其中可以修改數(shù)字系統(tǒng) 的電源電壓、頻率和晶體管閾值電壓,以便改變?cè)摂?shù)字系統(tǒng)的性能。在圖1中,數(shù)字系統(tǒng)1包括用于執(zhí)行特定應(yīng)用程序的執(zhí)行裝置3。 數(shù)字系統(tǒng)1還包括用于接收性能指示或參數(shù)的接收裝置5,性能指示 或參數(shù)用于調(diào)諧數(shù)字系統(tǒng)1。例如,可以從軟件中接收以專用指令625為形式的性能指示,該軟件用于控制應(yīng)用程序的執(zhí)行。基于接收裝置 5所接收到的性能指示,提供了調(diào)諧電路7,以便調(diào)諧該數(shù)字系統(tǒng)的頻 率(f)、電源電壓(Vdd)和/或晶體管閾值電壓(Vb)。按照這種方 式,由軟件6所通信的性能指示具有強(qiáng)迫硬件適配其操作參數(shù)的作用, 以便得到所需要的性能。可以通過(guò)多種方式給定所需要的性能,例如30參考每秒千兆操作(GOPS)的數(shù)量;參考最大功率損耗電平;或者
參考所需要的噪聲容限或電平。因此,調(diào)諧裝置7可以調(diào)諧硬件性能 以便得到所需要的性能。圖2描述了用于控制圖1中的數(shù)字系統(tǒng)的操作的軟件的操作。在 步驟S21,對(duì)應(yīng)用程序進(jìn)行編譯,在其后的步驟23中,確定該應(yīng)用程 5序的執(zhí)行簡(jiǎn)檔。然后在步驟25確定一個(gè)或多個(gè)性能指示或參數(shù)。如上 所述,可以將性能指示指定在GOPS、功率損耗或噪聲因子方面。步 驟27,基于性能指示,通過(guò)調(diào)諧數(shù)字系統(tǒng)的參數(shù)來(lái)增強(qiáng)對(duì)于應(yīng)用程序 的執(zhí)行。同樣如上所述,調(diào)諧包括調(diào)整數(shù)字系統(tǒng)1的頻率(f)、電源 電壓(Vdd)和/或晶體管閾值電壓(Vb)。 10 這項(xiàng)技術(shù)提供了旨在對(duì)IP塊或SoC的性能進(jìn)行實(shí)時(shí)最優(yōu)化的調(diào)諧方案。針對(duì)速度和/或功率損耗方面的給定的所需要的性能,該技術(shù) 確定了最佳電源電壓(Vdd)、閾值電壓(Vb)和時(shí)鐘頻率(f)?,F(xiàn)代數(shù)字系統(tǒng)還面對(duì)涉及慢互連、額外功率需求和復(fù)雜系統(tǒng)組合 性等越來(lái)越多的問(wèn)題。這些問(wèn)題已經(jīng)導(dǎo)致將數(shù)字系統(tǒng)分為單元(island)15 (即IP組)的概念,其中的每個(gè)單元都是內(nèi)部同步的,并獨(dú)立于系統(tǒng) 的其他部分。按照這種方式,系統(tǒng)變成異步??梢匀缟纤龅貙?duì)每個(gè) 部分或單元的性能進(jìn)行調(diào)諧,以便提供針對(duì)給定應(yīng)用程序的最優(yōu)性能。 在這種技術(shù)有利于實(shí)現(xiàn)速度和/或功率損耗方面所需要的性能的同時(shí), 該技術(shù)對(duì)于數(shù)字系統(tǒng)的數(shù)據(jù)吞吐量和/或數(shù)據(jù)等待時(shí)間具有副作用。20 本發(fā)明的目的是,提供一種方法和設(shè)備,用于調(diào)諧數(shù)字系統(tǒng)的性能,而不具有上述的缺點(diǎn)。發(fā)明內(nèi)容根據(jù)本發(fā)明的第一方面,提供了用于調(diào)諧數(shù)字系統(tǒng)的性能的方 25 法。該方法包括以下步驟接收涉及數(shù)字系統(tǒng)性能的一個(gè)或多個(gè)性能指示,以及調(diào)諧數(shù)字系統(tǒng)的頻率、電源電壓和/或晶體管閾值電壓,以 便得到所需要的性能。該方法還包括,調(diào)整數(shù)字系統(tǒng)的流水線深度以 便對(duì)數(shù)字系統(tǒng)性能進(jìn)行微調(diào)的步驟。本發(fā)明的優(yōu)點(diǎn)是根據(jù)提供的性能指示提供初始調(diào)諧步驟,以便用30 微調(diào)數(shù)字系統(tǒng)性能提供的流水線深度調(diào)節(jié)獲得所需要的性能水平。
根據(jù)本發(fā)明的另一個(gè)方面,提供了用于調(diào)諧數(shù)字系統(tǒng)性能的設(shè) 備。該設(shè)備包括接收裝置,用于接收涉及數(shù)字系統(tǒng)性能的一個(gè)或多 個(gè)性能指示;以及調(diào)諧裝置,用于調(diào)諧數(shù)字系統(tǒng)的頻率、電源電壓和/ 或晶體管閾值電壓,以便得到所需要的性能。該設(shè)備還包括流水線配 5 置裝置,用于在調(diào)諧裝置已經(jīng)對(duì)數(shù)字系統(tǒng)進(jìn)行調(diào)諧之后,調(diào)整該數(shù)字 系統(tǒng)的流水線深度,由此對(duì)數(shù)字系統(tǒng)的性能進(jìn)行微調(diào)。
為了更好地理解本發(fā)明,并更清楚地示出其如何作用,作為示例,10只參考以下附圖,在附圖中-.圖1是用于調(diào)諧數(shù)字系統(tǒng)性能的傳統(tǒng)設(shè)備的方框圖; 圖2是描述了如何控制圖1中的設(shè)備以便調(diào)諧數(shù)字系統(tǒng)性能的流 程圖;圖3是用于調(diào)諧數(shù)字系統(tǒng)性能的根據(jù)本發(fā)明的設(shè)備的方框圖; 15 圖4是描述了如何控制圖3中的設(shè)備以便調(diào)諧根據(jù)本發(fā)明的數(shù)字系統(tǒng)性能的流程圖;圖5是描述了根據(jù)本發(fā)明的系統(tǒng)的操作的狀態(tài)圖。
具體實(shí)施方式
20 圖3示出了根據(jù)本發(fā)明的系統(tǒng)。如上如圖l所述,數(shù)字系統(tǒng)l包括用于執(zhí)行特定應(yīng)用程序的執(zhí)行裝置3。數(shù)字系統(tǒng)1還包括接收裝置5, 用于從軟件6接收一個(gè)或多個(gè)性能指示或參數(shù),軟件6用于增強(qiáng)系統(tǒng) l的性能?;诮邮昭b置5所接收到的性能指示,提供了調(diào)諧電路7, 以便調(diào)諧數(shù)字系統(tǒng)1的頻率(f)、電源電壓(Vdd)和/或晶體管閾值25電壓(Vb)。然而,根據(jù)本發(fā)明,數(shù)字系統(tǒng)1還包括流水線配置裝置8,用于 配置數(shù)字系統(tǒng)1的流水線深度。該系統(tǒng)還包括選擇裝置10,用于選擇 所調(diào)諧的數(shù)字系統(tǒng)的頻率(f)、電源電壓(Vdd)、晶體管閾值電壓(Vb) 和流水線深度(Pd)。選擇裝置10被配置為,根據(jù)針對(duì)給定應(yīng)用程序30所接收到的性能指示來(lái)選擇數(shù)字系統(tǒng)的頻率(f)、供電電壓(Vdd)、
晶體管閾值電壓(Vb)和流水線深度(Pd),下面將對(duì)此進(jìn)行更詳細(xì) 的描述。圖4描述了用于控制根據(jù)本發(fā)明的圖3中的數(shù)字系統(tǒng)的操作的軟 件的操作。在步驟41,對(duì)應(yīng)用程序進(jìn)行編譯,在其后的步驟43中確 5 定該應(yīng)用程序的執(zhí)行簡(jiǎn)檔。然后在步驟45確定一個(gè)或多個(gè)性能指示或 參數(shù),該性能指示或參數(shù)涉及針對(duì)給定應(yīng)用程序的所需要的性能。例 如,可以將性能指示指定在GOPS、功率損耗或噪聲因子中。然后在 步驟46,針對(duì)給定頻率來(lái)配置流水線深度,以便最優(yōu)化吞吐量或等待 時(shí)間。在步驟47,基于軟件所提供的性能指示或參數(shù),通過(guò)調(diào)諧數(shù)字 10 系統(tǒng)的參數(shù)來(lái)增強(qiáng)應(yīng)用程序的執(zhí)行。因此,根據(jù)本發(fā)明,除了調(diào)整數(shù)字系統(tǒng)1的頻率(f)、電源電壓 (Vdd)和/或晶體管閾值電壓(Vb)以外,調(diào)諧還包括調(diào)整流水線深 度(Pd)。按照這種方式,在根據(jù)頻率(f)、電源電壓(Vdd)和/或晶 體管閾值電壓(Vb)對(duì)數(shù)字系統(tǒng)進(jìn)行調(diào)諧之后,流水線深度的調(diào)整就 15 像調(diào)諧數(shù)字系統(tǒng)的裝置。選擇裝置10可以被配置為,針對(duì)任意給定頻率確定最佳流水線 深度,以便最優(yōu)化吞吐量、等待時(shí)間、或吞吐量和等待時(shí)間之間的折 衷或平均??蛇x地,選擇裝置IO可以被配置為,針對(duì)任意給定頻率確 定可能的流水線深度的范圍。這是因?yàn)楦鶕?jù)流水線的兩個(gè)級(jí)之間的最 20 大延遲,頻率在流水線深度上提供了硬約束。電源電壓(Vdd)和晶 體管閾值電壓(Vb)也可以改變延遲,并且在這個(gè)方面,還影響了此 硬約束??杀焕斫獾氖?,這是一個(gè)上延遲約束,但是允許的延遲更小 (對(duì)應(yīng)于更深的流水線),并且這將完全取決于從軟件接收到的性能指25 選擇裝置10可以被配置為,確定在運(yùn)行中(on-the-fly)的流水線深度。換言之,為響應(yīng)從軟件接收到的性能指示或指示,選擇裝置 10可以被配置為動(dòng)態(tài)確定流水線深度。可選地,選擇裝置IO可以被 配置為,基于存儲(chǔ)在查找表中的預(yù)先計(jì)算的值來(lái)選擇流水線深度。在 后面情況下,查找表包括需要用以針對(duì)頻率(f)、電源電壓(Vdd)30和/或晶體管閾值電壓(Vb)的不同組合提供一定吞吐量或等待時(shí)間的
流水線深度列表。配置流水線的步驟包括改變流水線的深度。可以通過(guò)跳過(guò)一個(gè)或 多個(gè)寄存器組來(lái)改變流水線的深度,該寄存器組用于將數(shù)字系統(tǒng)中的 流水線級(jí)分開。這允許根據(jù)特定應(yīng)用程序根據(jù)數(shù)據(jù)吞吐量或數(shù)據(jù)等待 5 時(shí)間改變?cè)撔阅堋1绢I(lǐng)域的技術(shù)人員將理解,流水線的吞吐量是對(duì)指 令離開流水線的測(cè)量,即每秒完成的指令數(shù)。相反地,流水線等待時(shí) 間涉及其花費(fèi)多長(zhǎng)時(shí)間來(lái)執(zhí)行流水線中的單一指令。雖然已知每秒改變流水線的深度,通常改變?cè)撋疃纫越档皖l率, 同時(shí)降低了功率損耗。這分立部件中具有有限的優(yōu)點(diǎn)。本發(fā)明的不同 10 在于,例如,首先根據(jù)電源電壓(Vdd)、頻率(f)和/或晶體管閾值 電壓(Vb)對(duì)系統(tǒng)進(jìn)行調(diào)諧,從而降低功率損耗,但是需要進(jìn)行進(jìn)一步調(diào)整流水線深度。換言之,針對(duì)降低的功率損耗,電源電壓(Vdd)、 頻率(f)和晶體管閾值電壓(Vb)的調(diào)諧將具有降低系統(tǒng)的整體性能的副作用,然后這通過(guò)調(diào)諧流水線深度來(lái)補(bǔ)償,以便改進(jìn)性能,即15 針對(duì)數(shù)據(jù)吞吐量或數(shù)據(jù)等待時(shí)間的最優(yōu)化。圖5示出了描述本發(fā)明的設(shè)備的操作的狀態(tài)圖。初始狀態(tài)是狀態(tài) 50,這是控制器開始或控制器接收到新的性能指示的時(shí)刻。在這個(gè)點(diǎn) 處,控制器移向狀態(tài)51,在狀態(tài)51該控制器檢驗(yàn)諸如噪聲因子的提 取參數(shù),以確定噪聲是否在給定容限以內(nèi)。如果噪聲不在給定容限以20 內(nèi),則控制器將進(jìn)入噪聲回路56,以便將噪聲減小到可接受的水平。 這可以通過(guò)在電源電壓(Vdd)、晶體管閾值電壓(Vb)和/或供電頻 率(f)的細(xì)微改變來(lái)實(shí)現(xiàn)。如果噪聲在最大電平以下,則控制器移向狀態(tài)53,在狀態(tài)53執(zhí) 行流水線檢驗(yàn)。這里,將性能指示翻譯成三個(gè)指示(流水線深度、頻25率、電源),其最小化了功率,并更容易實(shí)現(xiàn)(具有最小狀態(tài)距離的位 置最大值,其位置由電源和頻率的改變中的延遲和關(guān)于多久可以實(shí)現(xiàn) 新的三個(gè)指示的約束來(lái)確定)。然后將三個(gè)指示通過(guò)延遲回路(54) 和電源回路(55)施加到系統(tǒng)中。這些回路不是獨(dú)立的,因?yàn)榇嬖谝?個(gè)流水線深度、供電電壓和時(shí)鐘頻率必須按照其改變的順序。例如,30優(yōu)選地,在電源增加之前不增加頻率。此外,頻率降低之后優(yōu)選地是 電源降低。將被理解的是,晶體管閾值電壓(Vb)的改變可以隱藏在 功率、速度和噪聲動(dòng)作中。控制器是,即使在不改變性能指示的情況下,也可以由于其始終 遵守的約束本地最小值的事實(shí)來(lái)改變?nèi)齻€(gè)指示(流水線深度、頻率、 5 電源)。例如,這可以發(fā)生在電源(Vdd)、頻率(f)、晶體管閾值電壓(Vb)和流水線深度(Pd)的值由于諸如溫度的環(huán)境條件下的改變而發(fā)生變化。雖然優(yōu)選實(shí)施例是指作為IP塊或SoC的數(shù)字系統(tǒng),將被理解的 是,該數(shù)字系統(tǒng)可以是任何形式的集成電路,包括分成獨(dú)立區(qū)域或單 10 元的集成電路。此外,雖然將性能指示作為從軟件通信到硬件的以專用指令為形 式來(lái)描述,將被理解的是,可以通過(guò)其他方式來(lái)提供性能指示。應(yīng)注意的是,上述實(shí)施例現(xiàn)實(shí)而非限制了本發(fā)明,并且在不偏離 所附權(quán)利要求的范圍的前提下,本領(lǐng)域的技術(shù)人員將能夠設(shè)計(jì)許多可 15 選實(shí)施例。詞"包括"不排除除了權(quán)利要求中已經(jīng)列出的那些以外的 元素或步驟的存在,"一個(gè)"或"一"不排除多個(gè),并且單個(gè)處理器或 其他單元可以滿足權(quán)利要求中所列舉的已寫單元的功能。權(quán)利要求中 的任意附圖標(biāo)記不應(yīng)構(gòu)成限制權(quán)利要求的范圍。
權(quán)利要求
1.一種調(diào)諧數(shù)字系統(tǒng)性能的方法,包括-接收涉及數(shù)字系統(tǒng)性能的一個(gè)或多個(gè)性能指示;-調(diào)諧數(shù)字系統(tǒng)的頻率、電源電壓和/或晶體管閾值電壓,以便得到所需要的性能;以及調(diào)整數(shù)字系統(tǒng)的流水線深度,以便對(duì)數(shù)字系統(tǒng)的性能進(jìn)行微調(diào)。
2. 如權(quán)利要求l所述的方法,其中,在調(diào)整流水線深度之前的步 驟是,針對(duì)給定的頻率來(lái)確定最佳流水線深度的步驟。
3. 如權(quán)利要求2所述的方法,其中,確定流水線深度的步驟是基 于在數(shù)字系統(tǒng)中獲得最大吞吐量。
4. 如權(quán)利要求2所述的方法,其中,確定最佳流水線深度的步驟 是基于在數(shù)字系統(tǒng)中獲得最小等待時(shí)間。
5.如權(quán)利要求2所述的方法,其中,確定最佳流水線深度的步驟是基于在數(shù)字系統(tǒng)中獲得吞吐量和等待時(shí)間之間的折衷。
6.如權(quán)利要求1到5的任意之一所述的方法,其中,調(diào)整流水線 深度的步驟,包括跳過(guò)用于在數(shù)字系統(tǒng)中分隔不同流水線級(jí)的一個(gè)或 多個(gè)寄存器的組。
7.如前述權(quán)利要求之一所述的方法,其中,根據(jù)不同性能指示來(lái)調(diào)諧數(shù)字系統(tǒng)的不同部分。
8. 如前述權(quán)利要求之一所述的方法,其中,所述數(shù)字系統(tǒng)是IP 塊或SoC。
9. 一種用于調(diào)諧數(shù)字系統(tǒng)的性能的設(shè)備,包括-接收裝置,用于接收涉及數(shù)字系統(tǒng)性能的一個(gè)或多個(gè)性能指示;-調(diào)諧裝置,用于調(diào)諧數(shù)字系統(tǒng)的頻率、電源電壓和/或晶體管閾值電壓,以便得到所需要的性能;以及流水線配置裝置,用于在調(diào)諧裝置已經(jīng)對(duì)數(shù)字系統(tǒng)進(jìn)行調(diào)諧之后, 調(diào)整數(shù)字系統(tǒng)的流水線深度,由此對(duì)數(shù)字系統(tǒng)的性能進(jìn)行微調(diào)。
10.如權(quán)利要求9所述的設(shè)備,還包括選擇裝置,用于選擇最佳流水線深度,以便得到所需要的性能。
11. 如權(quán)利要求io所述的設(shè)備,其中,所述選擇裝置被配置為, 選擇最佳流水線深度以便在數(shù)字系統(tǒng)中獲得最大吞吐量。
12. 如權(quán)利要求IO所述的設(shè)備,其中,所述選擇裝置被配置為, 5 選擇最佳流水線深度以便在數(shù)字系統(tǒng)中獲得最小等待時(shí)間。
13. 如權(quán)利要求IO所述的設(shè)備,其中,所述選擇裝置被配置為, 選擇最佳流水線深度,以便在數(shù)字系統(tǒng)中獲得吞吐量和等待時(shí)間之間 的折衷。
14. 如權(quán)利要求9到13的任意之一所述的設(shè)備,其中,用于調(diào)整 10流水線深度的流水線配置裝置包括裝置,跳過(guò)用于在數(shù)字系統(tǒng)中分隔不同流水線級(jí)的一個(gè)或多個(gè)寄存器組。
15. 如權(quán)利要求9到14的任意之一所述的設(shè)備,其中,數(shù)字系統(tǒng) 的不同部分被配置為根據(jù)不同性能指示來(lái)調(diào)諧。
16. 如權(quán)利要求9到15的任意之一所述的設(shè)備,其中,所述數(shù)字 15 系統(tǒng)是IP塊或SoC。
全文摘要
一種數(shù)字系統(tǒng)(1),包括接收裝置(5),用于從軟件(6)接收一個(gè)或多個(gè)性能指示或參數(shù),軟件(6)用于控制應(yīng)用程序(3)的執(zhí)行。基于接收裝置(5)所接收到的性能指示,提供了調(diào)諧電路(7),用于調(diào)諧數(shù)字系統(tǒng)(1)的頻率(f)、電源電壓(Vdd)和/或晶體管閾值電壓(Vb)。此外,提供了流水線配置裝置(8),用于基于選擇裝置(10)所確定的流水線深度來(lái)配置數(shù)字系統(tǒng)(1)的流水線。選擇裝置(10)被配置為,基于頻率(f)、供電電壓(Vdd)、晶體管閾值電壓(Vb),并根據(jù)應(yīng)用程序是否需要最大吞吐量或最小等待時(shí)間,來(lái)選擇流水線深度(Pd)。
文檔編號(hào)G06F1/32GK101156127SQ200680002029
公開日2008年4月2日 申請(qǐng)日期2006年1月10日 優(yōu)先權(quán)日2005年1月12日
發(fā)明者倫澤·I·M·P·邁耶, 何塞·D·J·皮內(nèi)達(dá)德干維茲, 弗朗切斯科·佩索拉諾, 馬庫(kù)斯·J·M·杰利吉爾斯 申請(qǐng)人:Nxp股份有限公司