TW201232313A - Architecture optimizer - Google Patents

Architecture optimizer Download PDF

Info

Publication number
TW201232313A
TW201232313A TW100133927A TW100133927A TW201232313A TW 201232313 A TW201232313 A TW 201232313A TW 100133927 A TW100133927 A TW 100133927A TW 100133927 A TW100133927 A TW 100133927A TW 201232313 A TW201232313 A TW 201232313A
Authority
TW
Taiwan
Prior art keywords
architecture
processor
memory
instruction
cache memory
Prior art date
Application number
TW100133927A
Other languages
English (en)
Inventor
Suresh Kadiyala
Pius Ng
Anand Pandurangan
Satish Padmanabhan
James Player
Original Assignee
Algotochip Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Algotochip Corp filed Critical Algotochip Corp
Publication of TW201232313A publication Critical patent/TW201232313A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Devices For Executing Special Programs (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

201232313 六、發明說明: I:發明所屬技術領城】 本發明係有關於一種針對一定製積體電路(1C)或一特 別應用積體電路(ASIC)來自動產生一最佳架構的方法。 t先前治^冬好3 發明背景 現代電腦晶片由一或更多處理器(CPU)以及某些共享 與私有的快取記憶體以及記憶體所組成。此外,所有現代 的欣式電腦晶片包含多個輸入_輸出單元來以高速移動進 出該處理器之資料。該等晶片典型可裝入諸如手機的設 備、所有類型的消費者與媒體設備,如現代電視設備之視 Λ與音樂播放器、醫藥設備、汽車、全球定位祕、通訊 設備、衛星'以及遠端感測。 °亥汁算本質會在各種不同的應用間廣泛變化。針對各 種不同I化的應用之相同晶片會造成—應用所需内容與該 晶片所提供内容之間相當不匹配。此通常造成該晶片中之 處理貝源的低彻率,gj此形成價格與操作細節之過度花
費’諸如_需還高㈣率消耗’或者針對手邊工作之處 理功率不足迫使供應商提供次級產品至市場。ASIC或ASIP I產生客製化函數以針對手邊—特別應用來建立一客製 〜但34是舰可執行的—個且唯-的應用。設計-ASIP =生所有功率的伽以該雜料m匹配,但 =昂貴且耗時的解決方案。其需花費數十個人年、與 數千萬元來設計僅用於—應用之_ASIP。 201232313 正常情況下,演算法設計者指定該晶片必須執行之所 有功能性時,該晶片設計程序即開始。此通常以一語言如c 或Matlab來完成。一晶片專家、工具工程師、驗證工程師 以及韌體工程師的團隊之後需工作許多人年來將該演算法 對映至一硬體晶片與相關韌體。該團隊可使用已被證明但 具有效能限制的一現貨供應處理器,因為該標準架構可能 無法相當適合該演算法。 此替代方案為針對該所欲演算法來設計一定製架構與 疋製硬體以達到高效能。一電腦架構是一電腦系統之計 算、通訊、與資料儲存元件(硬體)、該等構件如何互動(機 益組織)、以及其如何被控制(指令集)的一詳細規格。一機 器的架構可決哪些計算可最有效執行、以及哪些型式之 資料組織與程式設計可最佳化執行。 δ亥疋製晶片方法是—相當昂貴的程序而且從成本超出 至技術問題亦充滿風險。發展尖端的^製^設計會導出許 夕需解決的議題。較高處理速度已將某些條件導入先前本 質上單純為數位之類比領域中,諸如多個時鐘區域、曰漸 複雜的時知加乘與同步技術、雜訊控制、以及高速。 P增加計伽性之效應為需達到一成功設計之額 卜的產轉向數s。尚有另_議題是熟練的工作者之可用 Π ASIC電路設計之快速成長已造成缺乏熟練邮工程師 現象。 t發明内容】 發明概要 201232313 於一觀點中,本案揭示自動產生由一電腦可讀碼或模 型來說明之—定製積體電路(ic)的系統與方法。該Ic具有一 或更多的計時與硬體限制。該系統可從該電腦可讀碼之一 靜態設定檔與一動態設定檔來擷取定義該處理器架構的來 數,藉由改變該處理器之一或更多參數以反覆地最佳化該 處理器架構,直到使用一架構最佳化器(A〇)來符合以一成 本函數表示之所有計時與硬體限制為止;以及將該產生之 處理器架構合成為該定製積體電路之—電腦可讀說明以用 於半導體製造。 上现蜆點之執行可包括下列 /哪u添丁対一給 定應用程式/演算法組合,—最佳電腦系統架構可根據如效 能、成本、與功率之各種不同因素來自動決定。該最佳結 構由該系統準位架構與該處理器準位架構兩者所组成。針 對該系統準位架構,A◦可自動決定所需之記憶體數量、支 體頻寬、腿通道、時鐘之數量。 準位架構,該A〇可根據該演算法中之平行性 …亥系統之效能準則來自動決定 需求與數量;需有雜㈣演算法之^讀之纽性的 效執行該❹者編碼之計算元件&件類型’需有 指令發出逮率、該等級性之管·且織/照階段數量、該 儲存單元、等等之計算元件數旦&照加法器、負載、 算元件放置;該等ALU(計算元二之=該管線組織中的計 量以及其按照該暫存器數量、其a’暫存器檀案之數 量之鈒態;條件碼暫存器之需求、取埠與寫入埠數 而之指令快取記憶體、 201232313 與資料快取記憶體、以及其階層之需求與數量;分別針對 該指令快取記憶體與資料快取記憶體、該列大小、以及該 快取記憶體溢出與填入演算法之高速存取機構。該系統可 自動導入該使用者演算法之編碼中的指令與資料之預取指 令,來隨選以及在正確時間執行預取。該系統可決定該等 快取記憶體之每一個的寫回政策;記憶體之讀取與寫入槔 數量、以及該等快取記憶體與該記憶體間之匯流排寬度; 該快取記憶體準位、以及其按照共享/分開的指令與資料、 或一組合快取記憶體的組織、或者其成為多準位的組織, 來降低該整體成本結構並仍可維持高效能;或者按照該記 憶體大小、該記憶體對映方案、該存取大小、讀取/寫入埠 之數量與其寬度、以及該記憶體需如何分開來取得最大效 能之記憶體階層。該系統可自動決定該機器之ISA以便以一 有效方式來執行該演算法。該系統可自動決定該指令集之 一最佳編碼,以採用最小的編碼空間量並仍可達到高效 能。該系統可自動決定確保該可用暫存器之最佳使用的呼 叫慣例。所有步驟以一階層方式反覆完成即可決定該最佳 整體系統架構,以提出對手邊應用程式最佳化、滿足該給 定計時、成本、與功率需求之一晶片。 其他實施態樣可包括下列步驟。該系統可最佳化處理 器等級性與指令分組規則。該系統亦可最佳化所需核心的 數量並自動分開該指令串流來有效使用該核心。該處理器 架構最佳化包括改變一指令集。該系統之改變一指令集包 括減少所需之指令數量、提出新指令、以及將該等指令編 201232313 碼以改善指令存取、解碼速度與指令記憶體大小的需求。 該處理器架構最佳化包括改變一或更多下列項目:一暫存 器檔案埠、埠寬度、以及至資料記憶體之埠數量。該處理 器架構最佳化包括改變一或更多下列項目:資料記憶體大 小、資料快取記憶體預取政策、資料快取記憶體組態、指 令記憶體大小、指令快取記憶體預取政策以及指令快取記 憶體組態。該處理器架構最佳化包括加入一或更多共同處 理器。該系統可自動單獨產生客製化為該電腦可讀碼之一 新指令以針對該演算法來改善該處理器架構之效能。該系 統包括剖析該電腦可讀碼,且更包括導出零負擔迴圈操 作;識別所需之記憶體頻寬;替換將旗標執行來作為一或 更多硬體旗標之一或更多軟體。該等擷取參數更包括針對 每一迴圈來決定一執行週期時間;針對每一迴圈來決定一 執行時鐘週期計數;針對一或更多筐箱來決定時鐘週期計 數;產生一操作者統計表格;針對每一函數產生統計;以 及藉由降低執行計數之順序來排序列。該系統可將共同使 用的指令塑造成一或更多群組並針對每一群組產生一定製 指令以改善效能(指令塑造)。該系統可針對該架構參數改變 來決定計時與區域成本。可以該新的塑造指令替代之程式 中的序列可加以識別。此包括重新安排一序列中之指令的 能力來將適切性最大化而不會危及該編碼之功能。該系統 可追蹤有關步幅與記憶體存取型樣以及記憶體相依性之指 標行進與建構統計以最佳化快取記憶體預取以及一快取記 憶體組織。 201232313 該系統亦包括執行該電腦可讀碼之靜態設定表示以及 該電腦可讀碼之動態設定表示。一系統晶片規格可根據該 電腦可讀碼之設定檔來設計。該晶片規格可根據該電腦可 讀碼之靜態與動態設定表示來進一步逐漸最佳化。該電腦 可讀碼可編譯為最佳組合碼’其受組合與鏈接來產生該選 擇架構之韌體。一模擬器可執行該勃體之週期精確模擬。 該系統可執行該韌體之動態設定表示。此方法包括進一步 根據設定表示之韌體或根據該組合碼來將晶片規格最佳 化。該系統針對該設計之晶片規格可自動產生暫存器轉移 準位(RTL)碼。該系統亦可執行該RTL碼之合成以製造石夕。 器花費數週來提 該較佳實施例之優點可包括下列一或更多項目。該系 統可針對ASIC與ASIP之開發來顯著降低該轉返時間與兮 設計成本。切記此可藉由利用以“C”撰寫具有下列演算法之 應用程式,而非任何特定的“晶片,,設計來完成。該系統之 後自動產生一處理器式晶片設計以執行該演算法,以及兮 不可或缺的軟體開發套件及該晶片i運作之拿刀體。對照針 對一ASIP/ASIC之若干人年的努力,該處理 ' 出一設計。 "疋工日日乃扠叶以藉由依靠—“加 ^器”(A〇)來與該應用程式之需求匹配。根據從^ 確系統準位模擬器取得的演算法執行設定檔、盘 2⑭定標、以及裝人該晶片之各種不同的硬心 不’糊可決定滿足該供應商之效能、功率、勺 品未之—最麵硬脸態。科之-分析、/ 201232313 :提出滿足該效能需求、以及將該硬體最佳化為手邊的演 算法之-建議晶片架構。該AQ於其採用之—序列反覆步棘 中提出—最佳_,以針對該給定演算法並根據-最佳硬 體來收敛。 該AO針對-給定演算法並根據其在該撕之各種不 同方面作#彳列@層決定來決定該最佳架構,來與該供 應商的準則匹配並不侷限在達成非—總體最小 架構之一局部最小架構上。 該系統可將評估程序自動化,使得所有成本皆列入考 量而系統設計者可得到最佳可能的數量表示型態與位元寬 度候選者來靠。該方法可以—快速且自動的方式來評估 一給定架構之區域 '計時與功率成本。該方法可用來作為 一成本計算引擎。該方法可以一最佳方式根據該演算法來 自動使該DSP合成。該系、賊計者*需知道與—特定表示 型態以及另一型態之選擇相關聯的硬體區域'延遲*功率 成本。該祕允許硬魏域、㈣與功率可塑造為在該演 算法評估階段儘量精確。 該系統之較佳實施例的其他優點可包括下列一或更多 項目^ m可緩和晶#設計的問題並使其成為—簡單程 序》亥實域可將產品開發程序之焦點從該硬體實施態樣 程序轉移至產品規格與電腦可讀碼或演算法的設計。該電 腦可讀碼或演算法並不受限於特定硬體的選擇 ,其可於特 別針對該應用最佳化之-處理器上執行。該較佳實施例可 自動產生-肢化處㈣从财料相_軟體工具與 201232313 韌體應用程式。該程序可以數天而非如習知以數年來完 成。該說明之自動系統可移除風險並使晶片設計成為一自 動程序’使得該演算法設計者本身可直接製造該硬體晶片 而不需任何晶片設計的知識,因為該系統之主要輸入是該 電腦可讀碼、模型或演算法規格而非低準位基元。 使用該系統尚有其他益處可包括: u速度:若晶片設計週期變得可以數週而非數年來測 量’則使用該系統之公司可藉由將其產品快速帶入市場來 桃速穿透改變市場。 2) 成本:通常需雇用來執行晶片之許多工程師可成為 冗餘。對於使用該瞬時系統之公司而言此可帶來大量的成 本節省。 3) 最佳性:使用該瞬時系統產品來設計之晶片具有優 越的效能、區域以及功率耗損。 該瞬時系統在用於具有一數位晶片構件之系統的設計 方法中為一完全的範例轉換。該系統為從C/Matlab中說明 之演算法產生數位硬體之-完全自動的軟體產品。該系統 伏用一單獨的方法採用諸如C或MaUab之 一高階語言的程 序來實現硬體晶片。概括而言,其使得晶片設計成為一完 食自動的軟體程序。 圓式簡單說明 第1圖,,、、員示—示範系統來自動決定其功能性由一程 式、編碼或電腦模型來指定之一定製1(^或八沉設備的最佳 架構。 10 201232313 第2圖顯示一以該架構最佳化器來決定該最佳架構之 示範系統。 第3圖顯示—用以形成新指令之示範程序。 第4圖顯示一以§玄架構最佳化器定義之架構來自動產 生—定製1C之示範系統。 C實方方式j 較佳實施例之詳細說明 第1圖顯示一示範系統來自動決定其功能性由―程 式編碼或電腦模型來指定之一定製工c或A s工C設備的最隹 架構。不同較包含針對提供作為輸人之-給定電腦可 喝或程式來取得架構定義⑴。於—實施财,該程式可以 。。來撰寫,但亦可使用諸如Matiab、C++、或爪唾的美 他"。a。该程式可被編譯 '組合與鏈接(3)。該可執行螞於 模擬器或貫際電腦上運作(5)。來自該執行過程之蹤跡可 提仏至分析工具(7)。該分析工具產生之資訊包括靜態執 ^與動態執仃、碼執行設定檔、暫存器配置資訊、與目前 木構、等等之呼叫圖,而該資訊可提供至—架構最佳化器 (A〇)10。物構最佳化_之輸㈣包括管線資訊、編譯器 ^貫例暫存器檔案、快取記憶體組織、記憶體組織、以 及4曰令集架構(ISA)與指令集編碼資訊、料之_架構規格。 忒AO產生一晶片設計來與該應用程式之需求匹配。根 據從一週_確系統準位模擬器取得的演算法執行設定 槽與°亥次算法之靜態設定樓、以及裝入該晶片之各種不 同的⑽方塊的特性’該AC)可決定滿足該供應商之效能、 201232313 功率、與成本的需求之一最佳化硬體組態。根據該演算法 之分析’該AO可提議滿足該效能需求、以及將該硬體最 佳化為手邊的演算法之一晶片架構。該AO於針對一給定演 算法並根據一最佳硬體來收斂之一序列反覆步驟中提出一 最佳架構。 该AO針對一給定演算法並根據其在該asip之各種不 同方面作的一序列階層決定來決定該最佳架構,來與該供 應商的準則匹配’使得其不應侷限在達成一局部最小架構 上。而是,該AO可設計一總體最小架構。 針對該AO,該架構最佳化程序期間應避免侷限在造成 遺漏該整體最小值之—局部最小值,該A〇可以一階層方式 來執行該架構最佳化。於該階層最佳化程序之一實施態樣 中,該AO首先決定需以一最佳方式來最佳化對映該應用程 式核心(迴圈)之管線布局與計算元件之數量,以符合該使用 者給定的限制。一旦完成後,該A0選擇一最佳指令集來符 合該使用者給定的限制、以及與一設計塑造器(DM)指定之 私序需求匹配。接著,該A〇決定該暫存器檔案與其組織、 接著是快取記憶體組織、而之後是該記憶體組織。該等階層 檢查點之每一個中,該AO決定每一點之該等個別構件的最 佳組織以確認該設計係位於該DM給定之硬體程序限制中。 該AO可根據該給定演算法之執行設定檔來自動產生 一最佳電腦架構以適合一組演算法。第2圖顯示一以該架構 最佳化器來決定該最佳架構之示範系統。 第2圖中,一使用者應用程式30提供來作為一輸入。此 12 201232313 外,指定一初始架構說明32。該架構說明由一工具產生器 34來處理,該農生器針對具有目標相依性37之一編譯器 36、具有目標相依性39之一組合器38、具有目標相依性41 之一键接器40、具有目標相依性43之—模擬器42、具有目 標相依性45之一分析工具44來產生目標相依性資訊。根據 該目標相依性資訊’可產生該使用者應用程式30之—設定 檔。該設定檔可識別關鍵常式及其核心(大多數執行迴圈)。 該設定檔亦可識別記憶體訊務型樣。該設定檔可提供至一 架構最佳化器46。該架構最佳化器46亦使用來自一設計資 料塑造器48之一輸入。該設計塑造器48提供計時、區域、 功率、以及其他相關資訊給一特定硬體’而該類資訊可由該 架構最佳化器46來隨選查詢。該最佳化器46之輸出為一全新 最佳化結構50。該最佳化結構50之後提供至該工具產生器34 作架構之反覆最佳化直到達到一預定最佳化目標為止。 該新架構可藉由最佳化該架構中之每一構件、以及其 整體互連體來取得。針對一組給定的應用程式/演算法,一 最佳電腦系統架構可根據如效能、成本、及功率之各種不 同因素來自動決定。該最佳架構可包括一系統準位架構與 一處理器準位架構。針對該系統準位架構,該A〇可自動決 定例如’所需之記憶體數量、支援之記憶體頻寬、DMA通 道、時鐘、與週邊設備之數量。針對處理器準位架構,該 A Ο可根據該演算法中之平行性與該系統之效能準則組合 來自動決定該等計算元件之等級性的需求與數量;需有效 執行該應用程式之計算元件類型;按照階段數量、該指令 13 201232313 發出速率、該等級性之管線組織、按照加法器、負載、儲 存單元、等等之計算元件數量、以及該管線組織中的計算 元件放置;該等ALU(計算元件)之寬度;暫存器檔案之數量 以及其按照該暫存器數量、其寬度、讀取埠與寫入琿數量 之組態;條件碼暫存器之需求;所需之指令快取記憶體、 與資料快取記憶體、以及其階層之需求與數量;分別針對 該指令快取記憶體與資料快取記憶體、該列大小、以及該 快取記憶體溢出與填入演算法之高速存取機構。 該AO可自動導入該使用者演算法之編碼中的指令與 資料之預取指令,來隨選以及在正確時間執行預取。該AO 可決定該等快取記憶體之每一個的寫回政策;記憶體之讀 取與寫入埠數量;該等快取記憶體與該記憶體間之匯流排 寬度;以及該快取記憶體準位、與其按照共享或分開的指 令與資料快取記憶體、或一組合快取記憶體的組織、或者 其成為多準位的組織,來降低該整體成本結構並仍可維持 南效能。 該AO可自動決定按照該記憶體大小、該記憶體對映方 案、該存取大小、該讀取/寫入埠之數量與其寬度、以及該 記憶體需如何分開來取得最大效能之記憶體階層。該AO可 自動決定該機器之ISA以便以一有效方式來執行該演算 法,並可進一步自動決定該指令集之一最佳編碼,以採用 最小的編碼空間量並仍可達到高效能。該AO亦可自動決定 確保該可用暫存器之最佳使用的呼叫慣例。 上述操作可反覆地並以一階層方式來完成以決定該最 14 201232313 = = 趣式骑佳化、滿足該 給定㈣、成本、與功率需求之—晶片。 字兒月4A0決定-特定架構之管線與等級性特 現:二:碼或—演算法以°或可編譯之任何其他型式呈 、糾可被執行。«執行料,可取得其執行設 疋檔。根據該執行設定檀’可例如,藉由考量佔用執行時 間之:⑽至90%的編碼區域來(根據該執行設定檔)決定關 鍵的計算區域/方塊。構成料識別計算方塊之計算可被塑 造而根據該估計的效能、與該包含的計算中之平行性,一 管線布局連同平行執行管之數量可被決定,全在具有該資 料塑造H(DM)之固定諮詢巾。該塑造可蚊該處理器之時 鐘頻率以及作為一超級純量或一 vuw執行引擎來予以組 織的平行執行管之數量。 現5炎到該ISA,由於該執行管塑造已完成,故該A〇可 根據該8 0 %至9 〇 %的執行設定檔來減少該識別的關鍵計算 區域中的關鍵路徑。針對執行該等新指令之硬體方塊的計 時區域、與功率,於具有該DM之固定諮詢中可產生新指 令來再次減少該等關鍵路徑。該等計算方塊有時可包含一 整個C-函數與更多函數。 之後,將說明该AO決定之一示範編譯器呼叫慣例。針 對一處理器之示範編譯器呼叫慣例可包括: 呼叫堆疊布局; 專屬於傳遞參數之若干暫存器; 用於保持有用呼叫之數值的某些若干暫存器(被叫者 15 201232313 保留暫存器); 者保:::有用呼叫之數值的某些若干暫存器(主叫 例’該AO以該靜二:應:程式來決定-最佳啤叫慣 式的行為為基礎料定I與職態呼,%其組成常 可給定某-加權,而傳至皮呼叫的次數量,其 $式之參數數量亦可取;in 我二:::::”:行時_之所有常式二 旦決《參數決賴參數暫存11之數量。— 者保留與被叫者之後可決定所需之主叫 器數量之考量可:==的數量。減少主叫者保留暫存 該_”存有最小暫 該AO根據-特別暫存器配置器提供 數=可由 器可執行暫存“置與衫主叫者㈣與'置 器溢出與填入料小=的導言與結尾中,將該暫存 存與復原。 切及減少純叫者保”存器之儲 接者將說明決定適當的暫存器與暫存 決定該呼叫慣例,來數 U _案。—旦 留暫存器之數量便=暫主叫者糾、與被叫者保 里便已知。根據該原始應用程 的需求,可決定該(等)暫存器糟案之構成,而亦=二區域 位元旗標暫存器的需求,以便將該組織與該^ 暫存轉終化。該A〇亦可根據該暫存器標 16 201232313 案中操作之ISA,來決定一給定暫存器檔案之暫存器讀取 淳、寫入埠、以及讀取-寫入埠的數量。該等個別暫存器寬 度可根據該應用程式的需求來決定。一暫存器檔案中之一 個別暫存器的寬度可與該暫存器檔案中之其他暫存器的寬 度不同。 現談到該快取記憶體之決定,該快取記憶體為一高速 資料存取機構,其可橋接該使用者應用程式需存取資料之 速率與該資料可從該等較低記憶體方塊供應之速率間的不 匹配。根據該使用者應用程式對資料存取速率的需求、與 該資料可從該記憶體供應之速率,該AO可決定對快取記憶 體之需求。若其決定該使用者應用程式需要一快取記憶 體,則該AO可決定範圍從一簡單緩衝器至一較精密階層多 準位快取記憶體機構之快取記憶體組態。每一情況中,該 AO可再次根據該演算法之關鍵區域中的效能來決定該快 取記憶體列之大小、列的數量、該快取記憶體之結合性程 度、該快取記憶體列之替代政策、該預取政策(若有的話)、 以及該快取記憶體之寫入政策。其亦可決定該快取記憶體 之讀取與寫入埠數量、以及該等快取記憶體與該記憶體間 之匯流排寬度。如該情況有的話,其亦可決定是否需要一 分開的指令快取記憶體、與一資料快取記憶體、或一組合 快取記憶體。 現談到記憶體需求,根據該應用程式的需求,該AO可 決定該記憶體大小、該記憶體存取寬度、以及該等記憶體 方塊之讀取與寫入埠數量。該AO亦可決定該記憶體方塊之 17 201232313 匯流排寬度。 接下來,將說明該A〇決定該ISA與指令集編上 算法分析期間,該AO可決定與手邊應用程式相關二 架構。其根據該包含之操作、與需支援軸演算法取= 最佳ISA之^:址模式、與該支援之立即運 Μ X小、以及 该指令需支援執行該處理器之應用程式的模式來決定, ISA。該ΑΟ可將任何未用的模式與該使用者從未使用= 算兀範圍移除。料決定係根據該應用程式套組、等等之靜 態以及動態設定檔。此外’雜構最佳化科對該指令集^ 產生-最佳編絲將該編碼大小最小化。根據此考量,其可 提出-固定指令長度、或—雙指令長度、或—可變指令長 度,其皆適合來使該編碼大小騎最低、與高效能。7 第3圖顯不-用以形成新指令之示範程序。第]圖之程 序可取得識職使时編财執行的_常式與核心或迴 圈之分析工具資料。針對每-核心,該程序執行下列步驟。 首先,該程序建構-資料流圖形與—控制流圖形(64)。接 著,若有可能,該程序將控制相依性轉換為資料相依性 (66)。s亥程序之後識別資料流圖形中之每一基本方塊的關鍵 路徑(68)。該程序之後嘗試組合該關鍵路徑之兩個或更多操 作以形成加入該指令集之一潛在新指令(7〇>該潛在新指令 之後可於硬體中執行並允許最佳化為該使用者編碼之新架 構。3亥私序可針對執行该新指令之—特定硬體方塊來詢問 該設塑造器(DM)的計時、區域、與功率、等等屬性(72)。 從該DM回應,該程序可檢查計時、區域、功率、與其他因 18 201232313 素疋否符合該真實狀況與效能預算以及該保留是否足以建 立該新指令(74)。若不符合,則該程序跳至操作78,或者該 私序以硬體與編碼方案來建立一新指令(%)。之後,該程序 檢查是否需建立額外的指令(78) 。若是,則該程序返回(70) 而右不是’則該裎序之後檢查所有關鍵常式是否已被檢查/ 處理(8〇)。若否,則該程序返回(64),或者,該程序停止。 於一實施態樣中,使用一預處理器,該輸入程式或使 用者編碼可在該類程式由一剖析器分析前被格式化。該格 式化程序中’該程式之功能可被保留。該剖析器初始使用 一基本架構來姆所有資訊《立-資料庫n统之後 收集該程式之靜n與動態設定I從該剖析器之輸出,該 架構疋義所需之參數可由—參數擷取ϋ來擷取》由於該程 式符合以作為輸人之該等參數以及即時與硬體限制, 統可針對該給定C-; •程式在該給定階段反覆決定最適合 構。該架構可用來剖析該C-程式與參數擷取。—新架構^ 再次被定義。該迴圈可繼續直到給定該最佳計時、 可 功率效能之最佳架構被定義為止。 品域與 -何…呀效隸制,則亦會探望其 制。該等硬體限制可按照區域、功率與某些其他參數X限 示。該演算法之後可微調該架構以減少冗餘路徑與2來表 部段來符合該等限制。另—演算法可絲㈣㈣關鍵 指令並確認該等指令提供之益處。—成本函數可用1用之 此檢查。可替移除而獨擊_㈣效㈣路執行 令可從該集合中移除,使得指令解碼相可減斤有指 足最小準 201232313 位。玎符合或不符合該等限制。針對調查一給定應用程式 與減少該架構之複雜性的任何範疇,該等限制使用來使得 該定義之架構不是個大的過度傷害。 第4圖顯示一自動產生—定製IC之示範系統1〇〇β第4圖 之系統可支援針對該選擇的目標應用程式之一定製硬體解 決方案的一架構之自動產生。該目標應用程式規格通常透 過以一高階語言如 C、Matlab、SystemC、Fortran、Ada、或 任何其他語言來表示為電腦可讀碼之演算法來完成。該規 格包括該目標應用程式的說明以及諸如該硬體解決方案之 所需成本、區域、功率、速度、效能與其他屬性之一或更 多限制。 第4圖中,一1C客戶產生一產品規格1〇2。典型情況會 有擷取-所需產品之所有主要功能性的—初始產品規格。 從該產品巾,演算法專家可識職產^所需之f腦可讀媽 或演算法。某些料演算法可從第三團體或從標準開發委 員會來取得以作為IP 其某些必須開發為該產品開發之一 伤此方式中,5亥產品規格1〇2可於作為諸如一 C程式或 諸如-Mathlab模型、料之__數學模_—程絲予以表 不之-電腦可讀碼或演算法1〇4中更詳細說明。該產品規格 1〇2亦包含諸如成本、區域、功率、程序類型、程式庫、與 記憶體類型、等等的需求1〇6。 … 違電腦可讀碼或演算法綱與需求⑽可提供至一自動 Ic產生@110。僅根據該編碼或演算法1()4以及該晶片設計 之限制·»亥1C產生器u〇可自動產生少數或無人為介入、 20 201232313 包括一GDS檔案112、韌體114之一輸出來運作該IC、一軟 體開發(SDK)套件116、及/或一測試套組118。該GDS檔案 112與韌體114可用來製造一定製晶片120。 該瞬時系統可緩和晶片設計的問題並使其成為一簡單 程序。該系統可將產品開發程序之焦點從該硬體實施態樣 程序轉移至產品規格與演算法的設計。該演算法可於特別 針對該應用最佳化之一處理器上執行。該系統可自動產生 該最佳化處理器以及所有該等相關聯軟體工具與韌體應用 程式。該整個程序可以數天而非其現在採用以數年來完 成。概括而言,該系統使得該產品開發之數位晶片設計部 分成為一黑盒子。 於一實施例中,該瞬時系統產品可採用下列項目來作 為輸入: 以C/Matlab來定義之電腦可讀碼或演算法 所需之週邊設備 區域目標 功率目標 邊距目標(針對未來韌體更新與複雜性增加需多少附 加負擔來建構) 程序選擇 標準胞元程式庫選擇 可測試性掃描 該系統之輸出可為連同所有該相關聯韌體之一數位硬 體巨集。針對該數位硬體巨集來最佳化之一軟體開發套件 21 201232313 ()亦可自動產生,使得未來動體更新可得以執行而不需 改變該處理器。 °亥系統可針對任何選擇的目標應用程式來執行該完整 與最佳硬體解決㈣的自動產生。而料共同目標應用程 式係位於其不需偈限於此之嵌式應用程式空間中。 藉由範例,接著說明支援該自動晶片設計系統之一電 月&的方塊圖。該電職佳包括—處理器、隨機存取記憶體 ()程式°己憶體(較佳為諸如一快取ROM之一可寫唯 讀記憶體(R〇M))以及由一 CPU匯流_合之—輸入/輸出 (I/O)控fjfl。$電腦可選擇性包括_合至—硬碟與CPU匯 "IL排之硬碟控制器。硬碟可用來儲存諸如本發明之應用 &式與資料。或者,應用程式可儲存於RAM或R〇M中。 I/O控制器可以一I/O匯流排來耦合至一ι/〇介面。介面可 於諸如彳列鍵接、區域網路、無線鏈接、與並列鏈接之 通錢接上以類比或數位型式來接收與發送資料。或隨意 地’亦可將-顯示器、—鍵盤與一指向設備(滑鼠)連接至1/〇 匯流排。或者’分開的連接(分開的匯流排)可用於】/〇介面、 顯不器、㈣與指向設備中。可_處理线可被預先規 劃或者其可藉由從另_來源(例如,—軟碟、cd r〇m、或 另一電腦)下載-程式來規劃(與重新規劃)。 每一電腦程式可明白地儲存於由 一通用或專用的可規 劃電腦來讀取之ill可讀财雜或設備(例如,程式記 憶體或磁碟)中’以便該儲存媒體狀備由該電腦讀取時可 組配與控制-電腦之操作來執行本文所述之程序^本發明 22 201232313 系統亦可視為於,以—電腦程式來組配之一電腦可讀儲存 媒n中具m其巾如此組配之該儲存媒體可使—電腦以 一特疋且預疋的方法來操作以執行本文所述之功能。 本發明已於本文中相當詳細地說明以遵從該專利法 規,並提供該等業界熟於此技者需應用該等新穎原則的資 訊’以及建造與使用該類所需之專Η構件。然而,應了解 本發明可由特別不同的裝置與設備來實現,而在不違背本 發明本身之範的情:¾下,有關該等裝置細節與操作程序 兩者的各種不同修改可得以完成。 【圖式簡:¾¾明】 苐1圖顯示一示範系統來自動決定其功能性由_程 式、編碼或電腦模型來指定之一定製1C或ASIC設備的最佳 架構。 第2圖顯示一以該架構最佳化器來決定該最佳架構之 示範系統。 第3圖顯示一用以形成新指令之示範程序。 第4圖顯示一以該架構最佳化器定義之架構來自動產 生一定製1C之示範系統。 【主要元件符號説明】 1、3、5、7、10、64、66、68、70、72、74、76、78、80..·方塊 30…使用者應用程式 32.. .初始架構說明 34.. .工具產生器 36…C/C++編譯器 23 201232313 37、39、41、43、45…目標相依性 38.. .組合器 40.. .鏈接器 42.. .模擬器 44.. .分析工具 46.. .架構最佳化器 48.. .設計資料塑造器 50.. .新最佳化架構 100.. .系統 102.. .產品規格 104.. .電腦可讀碼或演算法 106.. .需求 110.. .自動1C產生器 112.. .GDS 檔案 114…韌體 116.. .軟體開發套件 118.. .測試套組 120.. .定製晶片 24

Claims (1)

  1. 201232313 七、申請專利範圍: 1. 一種自動產生由一使用者編碼來指定之一定製積體電 路(1C)的一處理器架構之方法,該1(:具有至少:或更多 的a十時與硬體限制,該方法包含下列步驟: a. 從該使用者編碼之—靜態設定標與_動態設定 檔來擷取定義該處理器架構的參數; b. 藉由以一階層式方法來改變該處理器架構之一 或更多參數以反覆地最佳化該處理器架構,直到使用一 架構最佳化器(AO)來符合以—成本函數表示之所有計 時與硬體限制為止;以及 將》亥產生之處理器架構合成為該定製積體電路 之一電腦可讀說明以用於半導體製 2·如申請專利範圍第1項之方法’其包含根據包括效能、成 本、與功率之預定準則來自動決定一最佳電腦系統架構。 3·如申請專利範圍第1項之方法,其包含自動決定具有需 有效執灯該使用者編石馬之一或更多類型的計算元件之 一處理器準位架構。 4·如申料利第1項之方法,其包含自動蚊具有需 有效執行該使用者編碼之計算元件的數量之一處理器 準位架構。 5.如申請專利範圍第1項之方法,其包含自動決定具有若 干暫存㈣案以及包括若干暫存^、暫存器寬度、讀取 阜與寫入皡之一暫存器组態的-處理器準位架構。 6·如申請專利第1項之方法,其包含自動決定具有條 25 201232313 件碼暫存ϋ之-處理器準位架構。 7·:申請專利第1項之方法,其包含自動決定具有指 7快取記憶體、資料快取記憶體、以及快取記憶體階層 之—處理器準位架構。 8·如申請專職圍扑貞之方法,其包含自動蚊具有分 別針對該指令快取記憶體與資料快取記憶體、該列大 丨違溢出與填人演算法之高速存取機構的—處理器準 位架構。 ° 9· ^申請專職圍第1奴方法,其包含自誠定具有每 快取讀體之寫回政策的__處理器準位架構。 10·如申請專利範圍第旧之方法,其包含自動決定具有若 干。己隐體之4取與寫人频量、以及快取域體與記憶 體間之匯流排寬度的一處理器準位架構。 一 U.如申料利範圍第1項之方法,其包含自動蚊具有快 己隐體準位、以及包括共享或分開的指令快取記憶體 與資料快取記憶體、或-組合快取記憶體的組織之I處 理器準位架構。 12·如申請專利範圍第1項之方法,其包含自動決定具有成 為多準位以降低成本並維持高效能的快取記憶體組織 之一處理器準位架構。 13.,申請專利範圍第1之方法,其包含自動決定具有一 己隐體層、具有—記憶體大小、—記憶體對映方案、 —存取大小、若干讀取/寫入琿與寬度、以及-記憶體 組織之一處理器準位架構。 26 201232313 14.如申請專利範圍第1項之 〜 方法,其包含自動決定具有執 行该使用者編碼之一指令华 7果木構(ISA)的一處理器準位 架構。 15·如申請專利範圍第1項之方法,其包含自動決定具有確 保可用暫存器之最佳使用的呼叫慣例之—處理器準位 架構。 16.如申請專利範圍第w之方法,其中該處理器架構最佳 化匕3改欠心令集’其步驟包括減少所需之指令數量 以及將該等指令編碼以改善指令解碼速度、以及改善指 令記憶體大小的需求。 .如申》月專利範圍第1項之方法,其中該處理器架構最佳 化包含改變-或更多下列項目:—暫存器㈣淳、棒寬 度、以及資料記憶體之淳數量。 18. 如申請專利範圍第旧之方法,其中該處理器架構最佳 化包含改變D卜或〇項目:資料記龍大小、資料 快取記顏預取政f、資料絲錢猶代政策、指令 記憶體大小、指令快取記龍預取政策、以及指令快取 記憶體替代政策。 19. 如申請專利範圍第!項之方法,其包含藉由自動單獨產 生客製化為該電腦可讀碼之新指令來改變該處理器指 令集,以改善該處理器架構之效能,該方法更包括下列 步驟: a. 識別所需之記憶體頻寬; b. 替換將旗標執行來作為一或更多硬體旗標之一 27 201232313 或更多軟體;以及 C.組合兩個或更多操作來成為一新指令。 20.如申請專利範圍第1項之方法,其中擷取參數更包含下 列步驟: a. 針對每一指令來決定一執行週期時間; b. 針對每一迴圈來決定一執行時鐘週期計數; c. 產生一操作者統計表格; d. 針對每一函數來產生統計;以及 e. 藉由降低執行計數之順序來排序内部迴圈(核 28
TW100133927A 2011-01-19 2011-09-21 Architecture optimizer TW201232313A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/008,900 US8336017B2 (en) 2011-01-19 2011-01-19 Architecture optimizer

Publications (1)

Publication Number Publication Date
TW201232313A true TW201232313A (en) 2012-08-01

Family

ID=46491712

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100133927A TW201232313A (en) 2011-01-19 2011-09-21 Architecture optimizer

Country Status (7)

Country Link
US (1) US8336017B2 (zh)
EP (1) EP2666112A1 (zh)
JP (1) JP5717015B2 (zh)
KR (1) KR20130114688A (zh)
CN (1) CN103329132A (zh)
TW (1) TW201232313A (zh)
WO (1) WO2012099625A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930666B1 (en) * 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8555218B2 (en) 2008-05-24 2013-10-08 Tabula, Inc. Decision modules
US8912820B2 (en) 2010-04-02 2014-12-16 Tabula, Inc. System and method for reducing reconfiguration power
US8869087B2 (en) * 2011-05-06 2014-10-21 Xcelemor, Inc. Computing system with data and control planes and method of operation thereof
US8760193B2 (en) 2011-07-01 2014-06-24 Tabula, Inc. Configurable storage elements
US8984464B1 (en) 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
US8522186B2 (en) * 2011-12-16 2013-08-27 Industrial Technology Research Institute Method and apparatus of an integrated circuit
US9135143B2 (en) * 2012-10-08 2015-09-15 National Instruments Corporation Automated analysis of compilation processes in a graphical specification and constraint language
US8789001B1 (en) 2013-02-20 2014-07-22 Tabula, Inc. System and method for using fabric-graph flow to determine resource costs
CN105005465B (zh) * 2015-06-12 2017-06-16 北京理工大学 基于比特或字节并行加速的处理器
US20170003959A1 (en) * 2015-06-30 2017-01-05 Ca, Inc. Detection of application topology changes
US10078722B2 (en) 2016-06-13 2018-09-18 International Business Machines Corporation Dynamic microprocessor gate design tool for area/timing margin control
US11675948B2 (en) * 2017-09-29 2023-06-13 Intel Corporation Methods and apparatus for profile-guided optimization of integrated circuits
WO2021234720A1 (en) * 2020-05-19 2021-11-25 Chandra Mohan Umapathy Power performance area optimization driven synthesis
CN111782269B (zh) * 2020-06-04 2023-12-12 珠海格力电器股份有限公司 一种中断处理方法及中断处理设备
CN116311374B (zh) * 2023-03-27 2023-10-20 淮阴工学院 一种化工厂工人异常行为识别与预警方法及系统
CN117113890B (zh) * 2023-10-23 2024-02-06 深圳安森德半导体有限公司 一种cpu芯片设计方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US7114056B2 (en) * 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
JP2003503791A (ja) * 1999-06-26 2003-01-28 セイ−ヤン ヤン、 入出力探針装置及びこれを用いた入出力探針方法と、これを基盤とする混合エミュレーション/シミュレーション方法
US6385757B1 (en) * 1999-08-20 2002-05-07 Hewlett-Packard Company Auto design of VLIW processors
US6263302B1 (en) * 1999-10-29 2001-07-17 Vast Systems Technology Corporation Hardware and software co-simulation including simulating the cache of a target processor
US7725848B2 (en) * 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization
JP2005216177A (ja) * 2004-01-30 2005-08-11 Toshiba Corp コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法
US20070266229A1 (en) * 2006-05-10 2007-11-15 Erich Plondke Encoding hardware end loop information onto an instruction
US8819608B2 (en) * 2007-07-23 2014-08-26 Synopsys, Inc. Architectural physical synthesis

Also Published As

Publication number Publication date
KR20130114688A (ko) 2013-10-17
JP5717015B2 (ja) 2015-05-13
US8336017B2 (en) 2012-12-18
CN103329132A (zh) 2013-09-25
EP2666112A1 (en) 2013-11-27
US20120185809A1 (en) 2012-07-19
WO2012099625A1 (en) 2012-07-26
JP2014507715A (ja) 2014-03-27

Similar Documents

Publication Publication Date Title
TW201232313A (en) Architecture optimizer
US8572544B2 (en) Programmatic auto-convergent method for “physical layout power hot-spot” risk aware ASIP architecture customization for performance optimization
US8719742B2 (en) Conversion of circuit description to an abstract model of the circuit
JP5667305B2 (ja) アーキテクチャ最適化から物理設計クロージャへの設計の収束を図るために統合されたデータ・モデル・ベースのフレームワーク
US20120174048A1 (en) Method for designing integrated circuits employing a partitioned hierarchical design flow and an apparatus employing the method
KR101448410B1 (ko) 알고리즘들 및 사양으로부터의 자동 최적 집적 회로 생성기
CN112270148A (zh) 一种门级网表生成方法及相关装置
Chen et al. xpilot: A platform-based behavioral synthesis system
US8225247B2 (en) Automatic optimal integrated circuit generator from algorithms and specification
JP2001357090A (ja) 論理合成方法及び論理合成装置
TW201218008A (en) Intelligent architecture creator
Ascia et al. Parameterised system design based on genetic algorithms
Wang et al. ASIC synthesis using architecture description language
Farhadtoosky et al. Improved layout implementation of Mini-Mips in terms of power, performance and chip footprint
Heusler et al. Transistor sizing for large combinational digital CMOS circuits
Lu et al. Timing slack aware incremental register placement with non-uniform grid generation for clock mesh synthesis
CN113688587B (zh) 一种电路布图的生成方法、装置、计算机设备及存储介质
Ramachandran et al. Incorporating the controller effects during register transfer level synthesis
CN110110362A (zh) 一种使用嵌入式命令设计芯片的方法
Azadi et al. Extending Memory Compatibility with Yosys Front-End in VTR Flow
CN115730545A (zh) 一种面向存算fpga的部署映射的工具
Kim et al. A framework for layout-level logic restructuring
Qu System-level design and configuration management for run-time reconfigurable devices
Corre et al. Memory aware high-level synthesis for embedded systems
Gu et al. Implement “Mesh+ Local Trees” clock design flow in encounter