本公開的領域
本公開大體上涉及處理器,且更特定來說,涉及處理器的功率管理。
相關技術的描述
對于具有處理器的許多電子裝置(例如,通過電池供電的電子裝置)來說,需要處理器在消耗盡可能少的功率的同時仍至少滿足最小性能目標。因此,通常向處理器指派功率預算,通過電壓或表示施加到處理器的功率的其它特性來表示所述功率預算。處理器通過以下方式在其各種模塊(例如,處理器核心、存儲器控制器,和類似者)之間分派其功率預算:設定施加到每個模塊的電壓或其它特性,使得處理器至少滿足其最小性能預算。然而,每個模塊可能不會在所有情形中需要其所分派的功率。舉例來說,沒有操作要執行的模塊可能在一段短暫時期內不需要其所分派的功率,從而允許處理器將所述模塊的所分派的功率中的一些功率臨時地重新指派給不同的模塊,從而提高了整體處理器性能。
對圖式的簡要描述
通過參考附圖,可更好地理解本公開,且使其眾多特征和優勢對于本領域技術人員顯而易見。在不同圖式中使用相同的參考符號會指示類似或等同的項目。
圖1是根據一些實施例的可以基于存儲器存取等待時間將功率分派給存儲器控制器的處理器的框圖。
圖2是說明根據一些實施例的基于程序線程的存儲器等待時間容限將功率分派給圖1的存儲器控制器的圖。
圖3是說明根據一些實施例的基于程序線程的存儲器等待時間容限和指令處理率將功率分派給圖1的存儲器控制器的圖。
圖4是說明根據一些實施例的基于相對于多個閾值的程序線程的存儲器等待時間容限將功率分派給圖1的存儲器控制器的圖。
圖5說明根據一些實施例的基于程序線程的存儲器等待時間容限將功率分派給處理器的存儲器控制器的方法的流程圖。
圖6是說明根據一些實施例的用于設計和制造實施處理系統的組件的至少一部分的集成電路裝置的方法的流程圖。
具體實施方式
圖1到6說明用于基于程序線程的存儲器等待時間容限將功率分派給處理器的存儲器控制器的技術。處理器通過監測存儲器控制器對一個或多個存儲器存取請求作出響應所花費的時間量而直接地或間接地監測程序線程的存儲器等待時間。當超過程序線程的存儲器等待時間容限時(這通過例如緩存未命中率等一個或多個性能特性來指示),處理器可將額外的功率分派給存儲器控制器,進而提高存儲器控制器可以處理存儲器存取請求的速度。當未超過程序線程的存儲器等待時間容限時,處理器可以減少分派給存儲器控制器的功率的量。處理器因此提高了用于執行程序線程的性能,同時仍節省了功率。
為了說明,在一些實施例中,處理器通過監測提供給存儲器控制器的存儲器存取請求來檢測緩存未命中。舉例來說,緩存未命中可導致將提供給緩存的存儲器存取請求傳遞到存儲器控制器。當緩存的緩存未命中率(CMR)超過閾值時,這指示存儲器控制器可能具有相對大量的存儲器存取請求要處理,這可能會延遲對正在執行的程序線程的存儲器存取的處理,并且增加了所述正在執行的程序線程的存儲器等待時間,使得超過了所述線程的存儲器等待時間容限。作為響應,處理器的應用功率管理(APM)模塊可以增加施加到存儲器控制器的功率電壓。此增加的功率電壓允許存儲器控制器的晶體管更快速地開關,從而提高了存儲器控制器可以處理其待決的存儲器存取請求的總速度。因此,當有相當大量的存儲器存取請求要處理時,增加供應給存儲器控制器的功率會減少存儲器存取等待時間。當在存儲器控制器處有相對少的存儲器存取請求要處理時(這通過CMR來指示),APM模塊可以減小施加到存儲器控制器的功率電壓,進而節省功率。
如本文使用,“存儲器等待時間”是指存儲器存取請求完成執行所花費的時間量。在一些實施例中,用于特定存儲器存取請求的存儲器等待時間取決于若干因素,包括在存儲器控制器處可以處理存儲器存取請求的速度。此外,因為增加給存儲器控制器的功率會允許存儲器控制器更快速地處理存儲器存取請求,所以增加給存儲器控制器的功率會減少存儲器等待時間。
如本文使用,“存儲器等待時間容限”是指程序線程對存取存儲器分級體系的指定層級(例如,連接到處理器的外部RAM)的靈敏度。可將所述靈敏度表達為執行程序線程的至少一部分所花費或預期花費的時間。在一些實施例中,處理器可通過使用計數器或其它計時機構來測量在存儲器控制器處處理存儲器存取請求所花費的時間量,而測量是否已經超過程序線程的存儲器存取容限。在一些實施例中,處理器可使用性能指示符來間接地測量是否已經超過正在執行的程序線程的存儲器等待時間容限,所述性能指示符例如為緩存未命中率、在存儲器控制器處接收的存儲器存取請求的數目,或其它性能指示符。
如本文所描述,處理器可基于存儲器存取等待時間將功率分派給存儲器控制器。出于描述的目的,本文描述的實施例采用通過改變存儲器控制器的一個或多個參考電壓(有時被稱作VDD)的量值來分派功率的處理器。將了解,在一些實施例中,處理器可例如通過改變施加到存儲器控制器的一個或多個節點的電流的量而以其它方式分派功率。
圖1說明根據一些實施例的可以將功率分派給存儲器控制器的處理器100。所說明的處理器100包括處理器核心102,其可為(例如)基于x86指令集架構(ISA)、ARM ISA和類似者的中央處理單元(CPU)核心。處理器100可以實施多個此類處理器核心,并且可以進一步實施被設計成或被配置成實行專用操作的處理器核心,例如,用于代表處理器100執行圖形操作的一個或多個圖形處理單元(GPU)核心。可以在多種電子裝置中的任一者中實施處理器100,所述電子裝置例如為桌上型計算機、平板計算機、服務器、具備計算功能的蜂窩電話、個人數字助理(PDA)、機頂盒,和類似者。
處理器核心102執行多組指令(被稱作程序線程)來代表電子裝置執行任務。在執行程序線程的過程中,處理器核心102可產生請求(被稱作存儲器存取請求),其表示對未存儲在處理器核心102的內部寄存器處的數據的需求。存儲器存取請求可包括:存儲操作,每個存儲操作表示存儲對應數據以供隨后使用的需求;以及加載操作,每個加載操作表示檢索所存儲的數據以供處理器核心102使用的需求。
在所描繪的實例中,處理器100包括緩存103,所述緩存包括被稱作緩存線的一組條目,其中每個緩存線存儲對應數據。每條線與識別其所存儲的數據的存儲器地址相關聯。響應于存儲器存取請求,緩存103識別其是否包括存儲由存儲器存取請求的存儲器地址識別的數據的線。如果其包括那樣的線,那么緩存103指示緩存命中,并且通過提供數據(在加載操作的情況下)或者通過存儲與存儲器存取請求相關聯的數據(在存儲操作的情況下)來滿足所述存儲器存取請求。如果緩存103不包括存儲由存儲器存取請求的存儲器地址識別的數據的線,那么其指示緩存未命中,并且將存儲器存取請求提供給存儲器控制器110。如下文進一步描述,存儲器控制器110通過從系統存儲器(未示出)檢索與存儲器地址相關聯的數據并且將所檢索的數據提供給緩存103來滿足所述存儲器存取請求。作為響應,緩存103將數據存儲在其線中的一者處,其中所述線是基于緩存替換策略來選擇。另外,緩存103使用所檢索的數據來滿足存儲器存取請求,如上文所描述。
雖然將緩存103描繪為單個緩存,但在一些實施例中,其表示不同緩存的分級體系。舉例來說,緩存103可包括專用于處理器核心102的層級1(L1)緩存、在處理器核心102與其它處理器核心(未示出)之間共享的層級2(L2)緩存,和一個或多個額外層級的緩存。響應于存儲器存取請求,緩存103可以連續地檢查分級體系中的每個緩存,直到其定位了具有對應于存儲器存取請求的存儲器地址的線的緩存為止,從而指示每個層級處的個別緩存未命中或命中。如果沒有緩存包括對應于存儲器存取請求的存儲器地址的線,那么緩存103將存儲器存取請求提供給存儲器控制器110來進行滿足,如上文所描述。
存儲器控制器110管理存儲器存取請求到系統存儲器(未示出)的傳送,所述系統存儲器包括一個或多個存儲器裝置,例如隨機存取存儲器(RAM)模塊、快閃存儲器、硬盤驅動器,和類似者,或其組合。此外,存儲器控制器110被配置成使得其可以緩沖多個存儲器存取請求,并且根據指定仲裁策略來處理每個請求。處理存儲器存取請求可以包括:緩沖存儲器存取請求;在所述存儲器存取請求與存儲在緩沖器處的其它待決的存儲器存取請求之間進行仲裁;產生控制信令來將存儲器存取請求傳送到系統存儲器的存儲器裝置中的一者或多者;響應于存儲器存取請求而緩沖從系統存儲器接收的數據;以及將響應數據傳送到緩存103。在一些實施例中,存儲器控制器110是執行額外功能的北橋,所述額外功能包括管理緩存103與其它處理器緩存(未示出)之間的存儲器一致性、管理處理器核心與其它系統模塊之間的通信,和類似者。
存儲器控制器110包括由晶體管和未在圖1個別說明的其它電子組件構成的一組模塊。通過標示為“VDD”的參考電壓向這些電子組件供應功率。至少一些所述電子組件的特性是使得VDD的量值越高,電子組件可以越快地對輸入刺激作出響應。舉例來說,存儲器控制器110可以包括一個或多個晶體管,其被配置成基于導電狀態與非導電狀態之間的輸入刺激(例如,它們的相應柵極電極處的電壓)而開關。隨著VDD的量值增加,一個或多個晶體管可以在導電狀態與非導電狀態之間開關的速度會有所提高。因此,VDD的量值上的增加的凈效應是存儲器控制器110能夠更快速地處理存儲器存取請求,從而減少存儲器存取等待時間。
處理器100包括被配置成設定VDD的量值的電壓調節器121。如本文進一步描述,處理器100可以響應于超過程序線程的存儲器存取等待時間而控制電壓調節器121來調整VDD,進而提高處理器100處的整體處理效率。
為了促進對程序線程的存儲器等待時間的監測,處理器100包括性能監測器115,其基于處理器核心102、緩存103和處理器100的其它模塊處的操作而監測性能信息。性能監測器115包括一組寄存器、計數器和其它模塊來識別和記錄指定時間量內的指定事件的發生。舉例來說,在一些實施例中,性能監測器測量并記錄緩存103處的緩存未命中率(CMR)。當緩存103是具有多個緩存的緩存分級體系時,性能監測器115可以測量并記錄多個緩存中的一者或多者或每一者處的CMR。舉例來說,在一些實施例中,性能監測器115記錄在處理器核心102與一個或多個其它處理器核心之間共享的L2緩存處的CMR。性能監測器115還可以測量并記錄其它性能特性,例如處理器核心102處的每循環指令(IPC)率、存儲器控制器110接收存儲器存取請求所用的速率、存儲器控制器110響應于存儲器存取請求而發送數據所用的速率,和類似者。
APM模塊120是功率控制模塊,其使用性能信息來調整供應給處理器100(包括存儲器控制器110)的一個或多個模塊的功率。具體來說,APM模塊120使用在性能監測器115處記錄的一個或多個性能測量(例如,CMR)來識別存儲器控制器110處的存儲器存取等待時間。當性能測量超過對應閾值從而指示存儲器存取等待時間已經超過正在執行的程序線程的存儲器存取等待時間容限時,APM模塊120致使電壓調節器121增加VDD的量值,從而增加供應給存儲器控制器110的功率。這會提高存儲器控制器110處理存儲器存取請求的速度,進而將存儲器存取等待時間減少到程序線程的存儲器存取等待時間以下。當存儲器存取等待時間下降到程序線程的容限以下時、在增加VDD的量值之后已經逝去所界定的時間量之后、在已經在存儲器控制器110處處理了閾值數目的存儲器存取請求之后,或者基于滿足了一個或多個其它準則,APM模塊120減小VDD的量值。
為了說明,在所描繪的實例中,處理器100包括預取器114,其監測存儲器控制器110處的存儲器存取。預取器114識別存儲器存取中的模式,并且基于那些模式而將預取請求發出到存儲器控制器110,以便將預期馬上需要的數據加載到緩存103。因此,只要處理器核心102發出的存儲器存取請求遵循預取器114所識別的模式,便將有可能在緩存103處滿足存儲器存取請求,從而保持CMR較低。因此,提供給存儲器控制器110的存儲器存取請求的數目可能會被維持較低,進而還保持存儲器存取等待時間相對低。當處理器核心102發出未遵循由預取器114識別的模式的一定數目的存儲器存取請求時,所述存儲器存取請求更有可能在緩存103處未命中,從而增加了CMR。將在緩存103處未命中的存儲器存取請求提供給存儲器控制器110,進而導致存儲器存取等待時間超過在處理器核心102處正在執行的程序線程的存儲器存取等待時間,這是因為存儲器控制器110處理更高數目的存儲器存取請求要花費增加的時間。因此,當CMR增加到給定閾值以上時,存儲器存取等待時間有可能超過正在執行的程序線程的存儲器存取等待時間。響應于CMR超過給定閾值,APM模塊120增加VDD,使得存儲器控制器110可以更快速地處理更高數目的存儲器存取請求,使得正在執行的線程的存儲器等待時間下降到正在執行的線程的存儲器存取等待時間以下。
在一些實施例中,APM模塊120針對處理器100的模塊強制執行功率管理策略,借此,所述功率管理策略指示相對于熱限制和用于處理器100的其它物理規范的每個模塊的預算功率的標稱量。功率管理策略還可以針對處理器100的不同模塊設定優先級,使得APM模塊120基于1)每個模塊的性能;和2)每個模塊的優先級來指派供應給每個模塊的功率。因此,舉例來說,如果兩個不同模塊的性能特性指示對額外功率的需求,那么APM模塊120可以識別所需要的功率是否將致使處理器100超過總功率預算,且如果超過總功率預算,那么指示將向所述兩個模塊中的哪一者指派額外功率。
為了經由實例進行說明,在一些實施例中,處理器100與功率管理策略相關聯,借此,向處理器核心102的功率要求給予高于存儲器控制器110的功率要求的優先級。在一些情景中,存儲在性能監測器115處的性能特性可以指示處理器核心102和存儲器控制器110兩者都可以受益于所供應的功率上的增加。舉例來說,CMR可以指示存儲器控制器110可以與處理器核心102處的IPC同時地受益于VDD上的增加,從而指示處理器核心102可以受益于其供應功率上的增加。APM模塊120首先識別是否可以在處理器100不超過其總功率預算的情況下增加供應給處理器核心102的功率和供應給存儲器控制器110的功率兩者,且如果可以,那么增加供應給每個模塊的功率。如果APM模塊120識別出增加供應給處理器核心102和存儲器控制器110兩者的功率將導致超過總功率預算,那么APM模塊120會增加供應給處理器核心102的功率,這是處理器核心102的功率管理策略中的其優先級所要求的。
圖2描繪說明根據一些實施例的基于正在執行的程序線程的存儲器等待時間容限將功率分派給圖1的存儲器控制器110的圖200。圖200的x軸對應于時間,而y軸對應于由電壓調節器121供應給存儲器控制器110的VDD的量值。在所說明的實例中,在時間201處,APM模塊120基于存儲在性能監測器115處的信息而識別出緩存103處的CMR超過閾值,從而指示可能超過正在執行的程序線程的存儲器等待時間容限達對應閾值。因此,APM模塊120向電壓調節器121發信號,以便將VDD從標示為“V1”的標稱量值增加到標示為“V2”的增加的量值。在時間202處,VDD的量值已經增加到V2,進而允許存儲器控制器110更快速地處理待決的存儲器存取請求。
在時間203處,APM模塊120識別出緩存103的CMR已經下降到閾值以下,從而指示不再超過正在執行的程序線程的存儲器等待時間容限。作為響應,APM模塊120向電壓調節器121發信號以便將VDD的量值從V2減小到V1。到了時間204,VDD的量值已經減小到V1,進而減少了存儲器控制器110所消耗的功率。因此,在圖2的所說明的實例中,處理器100通過增加供應給存儲器控制器110的功率而提高了對存儲器等待時間敏感的正在執行的程序線程的性能,但通過僅在已經可能超過程序線程的存儲器等待時間容限時增加所供應的功率來限制存儲器控制器所消耗的功率。
圖3說明圖300,其示出根據一些實施例的基于緩存未命中率和指令處理率將功率分派給存儲器控制器110。圖300的x軸對應于時間,而y軸對應于由電壓調節器121供應給存儲器控制器110的VDD的量值。在所說明的實例中,在時間301處,APM模塊120基于存儲在性能監測器115處的信息而識別出緩存103處的CMR超過閾值。因此,APM模塊120向電壓調節器121發信號,以便將VDD從標示為“V1”的標稱量值增加到標示為“V2”的增加的量值。在時間302處,VDD的量值已經增加到V2,進而允許存儲器控制器110更快速地處理待決的存儲器存取請求。
在時間303處,APM模塊120識別出處理器核心102處的IPC率已經下降到閾值以下。APM模塊120進一步識別出在將VDD的量值維持在V2的同時供應額外的功率將致使處理器100超過總功率預算。另外,APM模塊120基于功率管理策略而識別出處理器核心102的功率需求將優先于存儲器控制器110的功率需求。作為響應,APM模塊120向電壓調節器121發信號以便將VDD的量值從V2減小到V1。到了時間304,VDD的量值已經減小到V1,進而減少了存儲器控制器110所消耗的功率。因此,APM模塊120可以增加供應給處理器核心102的功率(例如,通過增加供應給處理器核心102的電壓的量值)。這允許處理器核心102更快速地執行指令處理,從而在處理器100不超過其總功率預算的情況下減小其IPC。
在一些實施例中,APM模塊120可基于CMR與對應閾值的關系而將VDD的量值設定為若干可能量值中的任一者。當CMR超過所述閾值中的一者時,這指示已經超過正在執行的程序線程的存儲器等待時間容限達對應量。在圖4處說明實例,其描繪圖400,所述圖示出根據一些實施例的基于相對于多個閾值的緩存未命中率將功率分派給存儲器控制器110。圖400的x軸對應于時間,而y軸對應于由電壓調節器121供應給存儲器控制器110的VDD的量值。在所說明的實例中,在時間401處,APM模塊120基于存儲在性能監測器115處的信息而識別出緩存103處的CMR超過閾值(標示為“閾值1”),從而指示已經超過正在執行的程序線程的存儲器等待時間容限達第一量。因此,APM模塊120向電壓調節器121發信號,以便將VDD從標示為“V1”的標稱量值增加到標示為“V2”的增加的量值。在時間402處,VDD的量值已經增加到V2,進而允許存儲器控制器110更快速地處理待決的存儲器存取請求。
在時間403處,APM模塊120識別出緩存103處的CMR超過另一閾值(標示為“閾值2”)。閾值2大于閾值1,使得閾值2指示已經超過正在執行的程序線程的存儲器等待時間容限達比對應于閾值1的第一量大的第二量。因此,APM模塊120向電壓調節器121發信號,以便將VDD從V2增加到標示為“V3”的增加的量值。在時間404處,VDD的量值已經增加到V3,進而允許存儲器控制器110更快速地處理待決的存儲器存取請求。在時間405處,APM模塊120識別出緩存103的CMR已經下降到閾值2以下。作為響應,APM模塊120向電壓調節器121發信號以便將VDD的量值從V3減小到V2。
在一些實施例中,APM模塊120還可以基于其它存儲器存取特性(例如,存儲器帶寬)來調整VDD電壓。舉例來說,性能監測器115可以監測并且存儲指示來自緩存103的存儲器存取請求所需的存儲器帶寬的量的信息。響應于指示存儲器存取請求所使用的存儲器帶寬的量超過閾值的信息,APM模塊120向電壓調節器121發信號,以便在時間405處將VDD從量值V2增加到V3。
另外,在一些實施例中,APM模塊可以基于除了緩存103處的緩存未命中率之外或作為其補充的準則而識別出已經超過正在執行的程序線程的存儲器等待時間容限。舉例來說,在一些實施例中,APM模塊120可以基于存儲在存儲器控制器110的緩沖器處的存儲器存取請求的數目、基于在存儲器控制器110的接口處接收的存儲器存取請求的數目、基于存儲器控制器110發出的對存儲器存取請求的響應率和類似者來識別出已經超過正在執行的程序線程的存儲器等待時間容限。
圖5說明根據一些實施例的將功率分派給處理器的存儲器控制器的方法500的流程圖。出于描述的目的,相對于圖1的處理器100處的示例性實施方案來描述所述方法。在框502處,性能監測器115監測并記錄緩存103處的緩存未命中率。在框504處,APM模塊識別緩存103的CMR是否超過閾值。如果未超過閾值,那么方法流移動到框506,且APM模塊120不將要改變VDD的指示提供給電壓調節器121。因此,電壓調節器121將VDD維持在其標稱量值。
如果在框504處APM模塊120識別出緩存103的CMR超過量值,那么方法流移動到框508,且APM模塊120識別在針對處理器100的功率管理策略下是否存在可用的功率來分派給存儲器控制器110。如果不存在可用的功率(例如,因為已經將所有可用的功率分派給在功率管理策略下具有比存儲器控制器110更高的優先級的處理器100的模塊),那么方法流移動到框506,且電壓調節器121將VDD維持在其標稱量值。如果在框508處存在可用于分派的功率,那么方法流移動到框510,且APM模塊120向電壓調節器121發信號來增加VDD的量值。
方法流前進到框512,且性能監測器115繼續監測緩存103的CMR。在框514處,APM模塊120識別:1)緩存103的CMR是否已經下降到閾值以下;以及2)在功率管理策略下具有更高優先級的處理器100的模塊是否需要在框510處分派給存儲器控制器110的額外功率。如果這些條件都不為真,那么方法流返回到框512,且將VDD維持在于框510處設定的較高量值。如果這些條件中的任一者為真,那么方法流移動到框516,且APM模塊120向電壓調節器121發信號,以便將VDD減小到其標稱量值。方法流返回到框502。
在一些實施例中,上文所描述的設備和技術實施于包括一個或多個集成電路(IC)裝置(還被稱作集成電路封裝或微芯片)的系統中。可在這些IC裝置的設計和制造中使用電子設計自動化(EDA)和計算機輔助設計(CAD)軟件工具。這些設計工具通常表示為一個或多個軟件程序。所述一個或多個軟件程序包括可由計算機系統執行以便進行以下操作的代碼:操縱計算機系統對表示一個或多個IC裝置的電路的代碼進行操作,以便執行用于設計或調適制造系統來制造電路的過程的至少一部分。此代碼可包括指令、數據或指令與數據的組合。表示設計工具或制造工具的軟件指令通常存儲在計算系統可存取的計算機可讀存儲媒體中。同樣,表示IC裝置的設計或制造的一個或多個階段的代碼可存儲在同一計算機可讀存儲媒體或不同計算機可讀存儲媒體中且從其進行存取。
計算機可讀存儲媒體可包括可由計算機系統在使用期間存取以便將指令和/或數據提供給計算機系統的任何存儲媒體,或存儲媒體的組合。此類存儲媒體可包括(但不限于)光學媒體(例如,壓縮光盤(CD)、數字多功能光盤(DVD)、藍光光盤)、磁性媒體(例如,軟盤、磁帶或磁性硬盤驅動器)、易失性存儲器(例如,隨機存取存儲器(RAM)或高速緩沖存儲器)、非易失性存儲器(例如,只讀存儲器(ROM)或快閃存儲器),或基于微機電系統(MEMS)的存儲媒體。計算機可讀存儲媒體可嵌入計算系統(例如,系統RAM或ROM)中、固定地附接到計算系統(例如,磁性硬盤驅動器)、可移除地附接到計算系統(例如,光盤或基于通用串行總線(USB)的快閃存儲器),或經由有線或無線網絡耦合到計算機系統(例如,網絡可存取存儲裝置(NAS))。
圖6是示出用于設計和制造實施根據一些實施例的一個或多個方面的IC裝置的示例性方法500的流程圖。如上文所述,針對以下過程中的每一者所產生的代碼存儲在或以其它方式體現在非暫時性計算機可讀存儲媒體中以供對應的設計工具或制造工具存取和使用。
在框602處,產生IC裝置的功能規格。可通過多種編程語言或建模語言(包括C、C++、SystemC、Simulink或MATLAB)中的任一者來表示所述功能規格(常常被稱作微型架構規格(MAS))。
在框604處,使用所述功能規格來產生表示IC裝置的硬件的硬件描述代碼。在一些實施例中,使用至少一種硬件描述語言(HDL)來表示所述硬件描述代碼,所述硬件描述語言包括多種計算機語言、規范語言,或用于IC裝置的電路的規范化描述和設計的建模語言中的任一者。所產生的HDL代碼通常表示IC裝置的電路的操作、電路的設計和組織,以及用于通過模擬來驗證IC裝置的正確操作的測試。HDL的實例包括模擬HDL(AHDL)、Verilog HDL、SystemVerilog HDL和VHDL。對于實施同步數字電路的IC裝置,硬件描述符代碼可包括寄存器傳遞級(RTL)代碼來提供對同步數字電路的操作的抽象表示。對于其它類型的電路,硬件描述符代碼可包括行為級代碼來提供電路操作的抽象表示。由硬件描述代碼表示的HDL模型通常經受一輪或多輪的模擬和調試來通過設計驗證。
在驗證由硬件描述代碼表示的設計之后,在框606處,使用合成工具來合成硬件描述代碼以便產生表示或界定IC裝置的電路的初始物理實現方式的代碼。在一些實施例中,所述合成工具產生一個或多個網表,其包括電路裝置例子(例如,門、晶體管、電阻器、電容器、電感器、二極管等)以及電路裝置例子之間的網或連接。可選地,可在不使用合成工具的情況下手動地產生網表的全部或一部分。與硬件描述代碼一樣,網表可經受一個或多個測試和驗證過程,之后產生最終的一組一個或多個網表。
可選地,可使用示意性編輯器工具起草IC裝置的電路的示意圖,且隨后可使用示意性捕獲工具捕獲所得的電路圖,且產生表示電路圖的組件和連接性的一個或多個網表(存儲在計算機可讀媒體上)。所捕獲的電路圖隨后可經受一輪或多輪模擬來進行測試和驗證。在框608處,一個或多個EDA工具使用在框606處產生的網表來產生表示IC裝置的電路的物理布局的代碼。此過程可包括(例如)放置工具,其使用網表來確定或固定IC裝置的電路的每個元件的位置。此外,布線工具依賴放置過程而添加并布線根據網表連接電路元件所需的電線。所得的代碼表示IC裝置的三維模型。可以數據庫文件格式(例如,圖形數據庫系統II(GDSII)格式)表示所述代碼。呈此格式的數據通常表示幾何形狀、文本標記,和關于呈分層形式的電路布局的其它信息。
在框610處,將物理布局代碼(例如,GDSII代碼)提供給制造設施,所述制造設施使用物理布局代碼來配置或以其它方式調適制造設施的制造工具(例如,通過掩模工具)來制造IC裝置。也就是說,可將物理布局代碼編程到一個或多個計算機系統中,所述一個或多個計算機系統隨后可以完全地或部分地控制制造設施的工具的操作,或其中執行的制造操作。
在一些實施例中,上文所描述的技術的某些方面可由執行軟件的處理系統的一個或多個處理器實施。所述軟件包括存儲在或另外有形地體現在非暫時性計算機可讀存儲媒體上的一組或多組可執行命令。所述軟件可包括命令和某些數據,其當由一個或多個處理器執行時會操縱所述一個或多個處理器執行上文所描述的技術的一個或多個方面。所述非暫時性計算機可讀存儲媒體可包括(例如)磁盤或光盤存儲裝置、固態存儲裝置,例如快閃存儲器、高速緩沖存儲器、隨機存取存儲器(RAM),或其它非易失性存儲器裝置,和類似者。存儲在非暫時性計算機可讀存儲媒體上的可執行指令可呈由一個或多個處理器解譯或可以其它方式執行的源代碼、匯編語言代碼、目標代碼,或其它指令格式。
應注意,不需要上文在一般描述中所描述的所有活動或要素、可能不需要特定活動或裝置的一部分,且可執行一個或多個其它活動,或包括除了所描述的要素之外的要素。此外,列舉活動的次序不一定是執行活動的次序。而且,已經參考特定實施例描述了概念。然而,本領域技術人員應了解,可在不脫離所附權利要求書中所陳述的本公開的范圍的情況下作出各種修改和改變。因此,可在說明性意義而不是限制性意義上對待說明書和圖,且希望所有此類修改包括在本公開的范圍內。
上文已關于特定實施例描述了益處、其它優勢和問題的解決方案。然而,這些益處、優勢、問題的解決方案以及可導致任何益處、優勢或解決方案發生或變得更加突出的任何特征不應被解釋為任何或所有權利要求的關鍵、所需或實質特征。另外,上文公開的特定實施例僅是說明性的,因為所公開的標的可以按受益于本文教導的益處的本領域技術人員顯而易見的不同但等效的方式加以修改和實踐。除了所附權利要求書中所描述的內容之外,不希望對本文示出的構造或設計的細節進行限制。因此顯然的是,可更改或修改上文所公開的特定實施例,且所有此類變化都被視為在所公開的標的物的范圍內。因此,本文尋求的保護在所附權利要求書中予以陳述。