使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法
【專利摘要】一種使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法。提供用于描述所設(shè)計的存儲器的數(shù)據(jù),且產(chǎn)生前端模型和后端模型以提供一數(shù)據(jù)庫。通過用戶界面接收設(shè)計準(zhǔn)則。根據(jù)所提供的數(shù)據(jù)庫和設(shè)計準(zhǔn)則,同時考量速度、功率及面積來最佳化該存儲器的設(shè)計,從而產(chǎn)生存儲器實例。
【專利說明】使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種存儲器編譯器(compiler),特別是涉及一種同時考量并自動最佳化速度、功率及面積的存儲器編譯器。
現(xiàn)有技術(shù)
[0002]存儲器編譯器(例如隨機(jī)存取存儲器編譯器)可用于自動產(chǎn)生存儲器實例(memoryinstance)。存儲器編譯器還可用于支援系統(tǒng)整合晶片(SoC)的設(shè)計能力。然而,傳統(tǒng)的存儲器編譯器在產(chǎn)生存儲器實例時,僅提供速度、功率或密度的單一特性規(guī)格來制定。因此,所產(chǎn)生的存儲器實例通常沒有同時考量三方面的最佳化以符合客戶的要求。
[0003]此外,在產(chǎn)生存儲器實例時,傳統(tǒng)的存儲器編譯器操作于元件(device)層級。由于元件本身數(shù)量繁多,幾乎是以百萬以上的數(shù)量級來調(diào)整整體效率,因此,存儲器實例的最佳化需耗費相當(dāng)?shù)臅r間。
[0004]鑒于傳統(tǒng)的存儲器編譯器無法有效且快速產(chǎn)生最佳化存儲器實例,因此亟需提出一種新穎的存儲器編譯器,以克服傳統(tǒng)存儲器編譯器的缺點。
【發(fā)明內(nèi)容】
[0005]鑒于現(xiàn)有技術(shù)的上述問題,本發(fā)明實施例的目的之一在于提出一種使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其同時考量速度、功率及面積的三方因素以最佳化存儲器的設(shè)計。在一個實施例中,所提出的存儲器編譯器執(zhí)行于架構(gòu)(architecture)層級、區(qū)塊(block)層級及元件層級,用以加速存儲器實例的產(chǎn)生。
[0006]根據(jù)本發(fā)明的實施例,提供所設(shè)計存儲器的相關(guān)描述數(shù)據(jù),且產(chǎn)生前端模型和后端模型以提供一數(shù)據(jù)庫。通過用戶界面接收設(shè)計準(zhǔn)則。根據(jù)所述數(shù)據(jù)庫和設(shè)計準(zhǔn)則,同時考量速度、功率及面積三方因素以最佳化該存儲器的設(shè)計,從而產(chǎn)生存儲器實例。
[0007]在一特定實施例中,該最佳化步驟使用自上而下的方式,將所設(shè)計存儲器的架構(gòu)分解為多個區(qū)塊,根據(jù)區(qū)塊的特性做分析與選擇最佳組合;對于這些分解區(qū)塊,從數(shù)據(jù)庫中獲取至少一個高速度數(shù)據(jù)庫、至少一個小功率數(shù)據(jù)庫及至少一個小面積數(shù)據(jù)庫;針對這些區(qū)塊的表現(xiàn)特性做大方向的區(qū)塊選擇與調(diào)整;當(dāng)最佳組合的區(qū)塊選定后,調(diào)整該區(qū)塊里面的元件參數(shù)做更細(xì)部的調(diào)整,以實現(xiàn)最佳化。該最佳化步驟還使用自下而上的方式,連結(jié)這些調(diào)整元件,以形成這些區(qū)塊;且組合這些區(qū)塊,以形成存儲器,進(jìn)而查看整體最佳化的表現(xiàn)。
【專利附圖】
【附圖說明】
[0008]圖1顯示本發(fā)明實施例的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法的流程圖。
[0009]圖2顯示圖1的最佳化步驟的詳細(xì)流程圖。
[0010]圖3示出區(qū)塊分解。[0011]圖4示出三維限制條件曲面。
[0012]附圖標(biāo)記說明
[0013]11:提供存儲器相關(guān)數(shù)據(jù)
[0014]12:前端模型與和后端模型
[0015]13:存儲器編譯器用戶界面
[0016]14:最佳化
[0017]141:定義公式
[0018]142:選擇數(shù)據(jù)庫的相關(guān)部分
[0019]143:架構(gòu)分解
[0020]144:獲取高速度、小功率、小面積數(shù)據(jù)庫
[0021]145:元件調(diào)整
[0022]146:區(qū)塊重映射
[0023]147:架構(gòu)重映射
[0024]148:是否符合限制條件
[0025]149:實例產(chǎn)生
[0026]15:候選表
[0027]16:是否符合要求
[0028]41:三維限制條件曲面
[0029]2A:自上而下方式
[0030]2B:自下而上方式
[0031]XDEC:X 解碼器
[0032]10:輸入輸出電路
【具體實施方式】
[0033]圖1顯示本發(fā)明實施例的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法的流程圖。本實施例可用以產(chǎn)生最佳化存儲器實例,例如靜態(tài)隨機(jī)存取存儲器(SRAM)、只讀存儲器(ROM)、內(nèi)容可尋址存儲器(content addressable memory, CAM)或快閃存儲器。
[0034]首先,在步驟11,提供所設(shè)計存儲器的相關(guān)描述數(shù)據(jù),例如由半導(dǎo)體代工廠來提供。步驟11所提供的數(shù)據(jù)可以是集成電路模擬程序(SPICE)所描述的電路、設(shè)計法則(例如集成電路拓?fù)洳季忠?guī)則(TLR))或元件型態(tài)(例如隨機(jī)存取存儲器元件),但不限定于此。根據(jù)所提供的數(shù)據(jù),在步驟12產(chǎn)生前端(F/E)模型和后端(B/E)模型,用以將具有設(shè)計行為模型的數(shù)據(jù)庫(library)提供給最佳化器(optimizer),該最佳化器同時考量速度、功率及面積(或密度)這三方因素來最佳化存儲器的設(shè)計。相反地,傳統(tǒng)的存儲器編譯器僅針對速度、功率或密度中的單一特性因素作開發(fā),而非所有三個因素。在本說明書中,前端模型是相關(guān)于所設(shè)計存儲器的電流、電壓和/或功率,而后端模型則相關(guān)于所設(shè)計存儲器的布局樣式(pattern)。在一優(yōu)選實施例中,所提出的方法可適用于設(shè)計小面積(或高密度)存儲器。相比于傳統(tǒng)方法,本優(yōu)選實施例在設(shè)計最佳化小面積(或高密度)存儲器實例中更加有效。
[0035]另一方面,在步驟13,在具有存儲器編譯器的電腦上安裝用戶界面(例如圖形用戶界面(⑶I)),用于從客戶接收設(shè)計準(zhǔn)則(design criteria),例如實例配置(configuration)。用戶界面還接收速度、功率和面積的優(yōu)先順序。此外,用戶界面還接收所設(shè)計存儲器的儲存容量(例如2MB或1GB)。在接下來步驟中,根據(jù)儲存容量和優(yōu)先順序來設(shè)計并最佳化該存儲器。
[0036]接著,在步驟14,根據(jù)步驟12所提供的數(shù)據(jù)庫和步驟13所接收的限制條件(constraint)來最佳化速度、功率和面積的設(shè)計。將在下文中,結(jié)合圖2來說明有關(guān)最佳化的細(xì)節(jié)。
[0037]在執(zhí)行步驟14的最佳化之后,在步驟15準(zhǔn)備候選表(candidate list),其包含多個產(chǎn)生的存儲器實例,用以依據(jù)客戶要求來進(jìn)行最后評估。在步驟16,從候選表中選擇所產(chǎn)生的存儲器實例中的一個,其最符合客戶的要求。
[0038]圖2顯示圖1的最佳化(B卩,步驟14)的詳細(xì)流程圖。在步驟141,根據(jù)步驟13所接收的限制條件,對所設(shè)計存儲器的速度、功率和面積定義出控制規(guī)則(或公式)。同時,在步驟142,根據(jù)在步驟13所接收的限制條件,選擇所提供的數(shù)據(jù)庫的相關(guān)部分。
[0039]根據(jù)本實施例的特征之一,使用自上而下方式(top-down approach) 2A來最佳化存儲器的設(shè)計。其中,在步驟143,如圖3所例示,將所設(shè)計存儲器的整個架構(gòu)分解為多個區(qū)塊:存儲器單元、X解碼器(XDEC)、控制電路以及輸入輸出電路(10)。由此,可以區(qū)塊層級來表示存儲器的架構(gòu),以進(jìn)行區(qū)塊的特性分析與選擇最佳組合。相反的,傳統(tǒng)的存儲器編譯器則是執(zhí)行于元件層級,因此其存儲器設(shè)計較難操控。本實施例的區(qū)塊可以是基于葉單元(leaf-cell-based)的區(qū)塊,但不限定于此。
[0040]接下來,在步驟144,從步驟12所提供的數(shù)據(jù)庫中獲取這些區(qū)塊相關(guān)的至少一個高速度數(shù)據(jù)庫、至少一個小功率數(shù)據(jù)庫以及至少一個小面積(或高密度)數(shù)據(jù)庫。在本實施例中,修飾詞“高”或“低/小”分別指一個物理量(例如速度、功率或面積)的值大于或小于一預(yù)設(shè)臨界值。接著,針對這些區(qū)塊表現(xiàn)特性做大方向的區(qū)塊選擇與調(diào)整。最后,在步驟145,當(dāng)最佳組合的區(qū)塊選定后,若有需要,則對這些區(qū)塊的元件(例如,電晶體)的參數(shù)進(jìn)行更細(xì)部的調(diào)整或微調(diào)。在本實施例中,所調(diào)整的參數(shù)可包含臨界電壓(例如低準(zhǔn)位臨界電壓、標(biāo)準(zhǔn)臨界電壓或高準(zhǔn)位臨界電壓)、P型金屬氧化物半導(dǎo)體(PMOS)或N型金屬氧化物半導(dǎo)體(NMOS)的寬度/長度、實體布局樣式的并聯(lián)/串聯(lián)元件及動態(tài)/靜態(tài)的組合/循序(combinational/sequential)閘門(gate)電路型態(tài)。
[0041]根據(jù)本實施例的另一特征,使用自下而上方式(bottom-up approach)2B來微調(diào)最佳化。在步驟146,將這些調(diào)整元件(例如,對部分作調(diào)整而另一部分未調(diào)整)予以連結(jié)(或重映射)以形成個別區(qū)塊;在步驟147,將這些區(qū)塊予以組合(或重映射)以形成存儲器,再對該存儲器進(jìn)行整體組合模擬,以查看整體最佳化的表現(xiàn)。如果模擬結(jié)果符合限制條件(步驟148),則產(chǎn)生相關(guān)的存儲器實例(步驟149);否則,根據(jù)步驟13所接收的優(yōu)先順序,至步驟142選擇所提供數(shù)據(jù)庫的另一部分,并再次執(zhí)行自上而下方式2A和自下而上方式2B。由此,執(zhí)行自上而下方式2A和自下而上方式2B —次或多次,從而得到候選表,其包含多個產(chǎn)生的存儲器實例。
[0042]如前所述,本實施例同時考量速度、功率和面積因素這三者來最佳化存儲器的設(shè)計。因此,如圖4所例示,在最佳化過程中建構(gòu)出三維限制條件曲面(constraint surface)41。接近三維限制條件曲面41的一個或多個存儲器實例即被選為最佳的候選者。
[0043]以上所述僅僅是本發(fā)明的優(yōu)選實施例而已,并非用于限定本發(fā)明的范圍;其它未脫離發(fā)明所公開的精神下所完成的等效改變或修飾,均應(yīng)包含在的本申請的范圍內(nèi)。
【權(quán)利要求】
1.一種使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,包含: 提供所設(shè)計存儲器的相關(guān)描述數(shù)據(jù); 產(chǎn)生前端模型和后端模型,以提供一數(shù)據(jù)庫; 通過用戶界面接收設(shè)計準(zhǔn)則;以及 根據(jù)該數(shù)據(jù)庫以及該設(shè)計準(zhǔn)則,同時考量速度、功率及面積以最佳化該存儲器的設(shè)計,從而產(chǎn)生存儲器實例。
2.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,還包含: 準(zhǔn)備一候選表,用以進(jìn)行評估;該候選表包含多個所述存儲器實例;以及 從該候選表中選擇這些存儲器實例中的一個。
3.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中所述描述數(shù)據(jù)包含描述的電路、設(shè)計法則或元件型態(tài)。
4.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述前端模型相關(guān)于所述所設(shè)計存儲器的電流、電壓和/或功率。
5.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述后端模型相關(guān)于 所述所設(shè)計存儲器的布局樣式。
6.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述設(shè)計準(zhǔn)則包含速度、功率和面積的優(yōu)先順序。
7.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,還包含:接收所述所設(shè)計存儲器的儲存容量。
8.根據(jù)權(quán)利要求6所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述最佳化步驟包含: 根據(jù)所述優(yōu)先順序和規(guī)格要求,對所述所設(shè)計存儲器的速度、功率和面積定義出控制規(guī)則; 根據(jù)所述優(yōu)先順序和規(guī)格要求,選擇所述數(shù)據(jù)庫的相關(guān)部分; 將所述所設(shè)計存儲器的架構(gòu)分解為多個區(qū)塊; 對于這些分解的區(qū)塊,從所述數(shù)據(jù)庫中獲取至少一個高速度數(shù)據(jù)庫、至少一個小功率數(shù)據(jù)庫及至少一個小面積數(shù)據(jù)庫; 針對這些區(qū)塊表現(xiàn)特性,做大方向的區(qū)塊選擇與調(diào)整; 調(diào)整這些區(qū)塊的元件的參數(shù); 連結(jié)這些調(diào)整的元件,以形成所述這些區(qū)塊; 組合所述這些區(qū)塊,以形成所述存儲器;以及 對所述存儲器進(jìn)行整體組合模擬。
9.根據(jù)權(quán)利要求8所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述這些分解區(qū)塊包含存儲器單元、X解碼器、控制電路以及輸入輸出電路。
10.根據(jù)權(quán)利要求8所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述參數(shù)包含臨界電壓、P型金屬氧化物半導(dǎo)體PMOS或N型金屬氧化物半導(dǎo)體NMOS的寬度/長度、并聯(lián)/串聯(lián)元件及動態(tài)/靜態(tài)的閘門電路型態(tài)。
11.根據(jù)權(quán)利要求1所述的使用存儲器編譯器以產(chǎn)生最佳化存儲器實例的方法,其中,所述最佳化步驟產(chǎn)生三維限制條件曲面,接近該三維限制條件曲面的一個或多個存儲器實例被選為最佳的候選者。
12.—種三維存儲器編譯器最佳化的方法,包含: 根據(jù)速度、功率和面積的三維優(yōu)先順序,對所設(shè)計存儲器的三維定義出控制規(guī)則,從而產(chǎn)生三維限制條件曲面; 將所述所設(shè)計存儲器分解為多個區(qū)塊; 對于這些分解的區(qū)塊,從一提供數(shù)據(jù)庫獲取至少一個高速度數(shù)據(jù)庫、至少一個小功率數(shù)據(jù)庫以及至少一個小面積數(shù)據(jù)庫; 針對這些區(qū)塊表現(xiàn)特性,做大方向的區(qū)塊選擇與調(diào)整; 調(diào)整這些區(qū)塊的元件的參數(shù); 連結(jié)這些調(diào)整元件,以形成這些區(qū)塊; 組合這些區(qū)塊,以產(chǎn)生多個存儲器實例;以及 選擇接近所述三維限制條件曲面的一各或多個存儲器實例,做為最佳的候選者。
13.根據(jù)權(quán)利要求12所述的三維存儲器編譯器最佳化的方法,其中,這些分解區(qū)塊包含存儲器單元、X解碼器、控制電路以及輸入輸出電路。
14.根據(jù)權(quán)利要求12所述的三維存儲器編譯器最佳化的方法,其中所述參數(shù)包含臨界電壓、P型金屬氧化物半導(dǎo)體PMOS或N型金屬氧化物半導(dǎo)體NMOS的寬度/長度、并聯(lián)/串聯(lián)元件以及動態(tài)/靜態(tài)的閘門電路型態(tài)。
15.—種存儲器編譯器最佳化的方法,包含: 根據(jù)優(yōu)先順序,對所設(shè)計存儲器的速度、功率和面積定義出控制規(guī)則; 根據(jù)該優(yōu)先順序,選擇一提供數(shù)據(jù)庫的相關(guān)部分; 以自上而下的方式,將該所設(shè)計存儲器的架構(gòu)分解為多個區(qū)塊,再分為多個元件; 以自下而上的方式,連結(jié)這些元件以形成區(qū)塊,再組合該區(qū)塊以形成該存儲器的架構(gòu);以及 對該存儲器進(jìn)行整體組合模擬。
16.根據(jù)權(quán)利要求15所述的存儲器編譯器最佳化的方法,其中所述自上而下的步驟包含: 將該所設(shè)計存儲器的架構(gòu)分解為多個區(qū)塊; 對于這些分解的區(qū)塊,從該數(shù)據(jù)庫中獲取至少一個高速度數(shù)據(jù)庫、至少一個小功率數(shù)據(jù)庫以及至少一個小面積數(shù)據(jù)庫; 針對這些區(qū)塊表現(xiàn)特性,做大方向的區(qū)塊選擇與調(diào)整;以及 調(diào)整這些區(qū)塊的元件的參數(shù)。
17.根據(jù)權(quán)利要求16所述的存儲器編譯器最佳化的方法,其中該自下而上的步驟包含: 連結(jié)這些調(diào)整元件,以形成這些區(qū)塊;以及 組合這些區(qū)塊,以形成該存儲器。
18.根據(jù)權(quán)利要求16所述的存儲器編譯器最佳化的方法,其中,這些分解區(qū)塊包含存儲器單元、X解碼器、控制電路以及輸入輸出電路。
19.根據(jù)權(quán)利要求16所述的存儲器編譯器最佳化的方法,其中所述參數(shù)包含臨界電壓、P型金屬氧化物半導(dǎo)體PMOS或N型金屬氧化物半導(dǎo)體NMOS的寬度/長度、并聯(lián)/串聯(lián)元件及動態(tài)/靜態(tài)的閘門電 路型態(tài)。
【文檔編號】G06F17/50GK104008216SQ201310056648
【公開日】2014年8月27日 申請日期:2013年2月22日 優(yōu)先權(quán)日:2013年2月22日
【發(fā)明者】連南鈞, 林孝平, 石維強(qiáng), 林育均, 葉有偉 申請人:円星科技股份有限公司