亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于高效計算海量布局數(shù)據(jù)的增量式并發(fā)處理的制作方法

文檔序號:6580567閱讀:111來源:國知局
專利名稱:用于高效計算海量布局數(shù)據(jù)的增量式并發(fā)處理的制作方法
技術(shù)領(lǐng)域
本公開一般地涉及電子設(shè)計自動化。更具體地,本公開涉及用于按照增量式并發(fā)
方式執(zhí)行電子設(shè)計自動化工作流程的處理階段的方法和裝置。
背景技術(shù)
隨著電子設(shè)計自動化(EDA)工具的進步,計算技術(shù)的快速進步已經(jīng)成為可能。EDA 流程的最后一步稱為掩膜綜合,并且減小該步驟的回轉(zhuǎn)時間(turnaround time, TAT)非常 關(guān)鍵。工廠經(jīng)常對EDA供應(yīng)商強加嚴(yán)格的TAT要求。例如,工廠可能要求掩膜綜合步驟的 TAT小于12小時。 遺憾的是,由于掩膜數(shù)據(jù)的規(guī)模和復(fù)雜度的快速增加,滿足這樣的TAT要求變得 越來越困難。從每工藝時代設(shè)計數(shù)據(jù)量增長兩倍開始,由此增加RET(分辨率增強技術(shù))使 用,更迅猛的OPC(光學(xué)鄰近校正),以及由于長程交互造成的不可避免的層級丟失,因此每 時代的掩膜數(shù)據(jù)量增長了多倍。 特別地,I/0和資源競爭正開始顯示出嚴(yán)重的瓶頸,從而扼制實際的周期時間。例 如,利用常規(guī)的硬盤驅(qū)動技術(shù),向硬盤驅(qū)動或自硬盤驅(qū)動傳送僅一個T字節(jié)的布局數(shù)據(jù)(期 望是32nm工藝時代)就可能花費大約3個小時。鑒于諸如RET、OPC、MDP (掩膜數(shù)據(jù)準(zhǔn)備) 等處理階段間的多次移交,僅I/O時間一項就可能超過TAT要求。因此,需要減少針對掩膜 綜合的TAT的技術(shù)和系統(tǒng)。

發(fā)明內(nèi)容
本發(fā)明的一些實施方式通過在不同處理階段的移交期間保持布局數(shù)據(jù)是分布式的 來克服I/0瓶頸。具體地,一些實施方式利用并發(fā)計算范例(paradigm)的優(yōu)點,其中數(shù)據(jù)在 各階段之間增量式傳播,并且其中連續(xù)階段間的數(shù)據(jù)處理和各階段之間的I/O并發(fā)地執(zhí)行。
取代以單個大型文件來表示布局數(shù)據(jù),一些實施方式使用至少兩個類型的文件來 表示布局數(shù)據(jù)。第一類型的文件通常規(guī)模較小,并且包含布局數(shù)據(jù)的不同片段的位置。第 二類型的文件包含針對特定片段的實際布局數(shù)據(jù)。注意,術(shù)語"文件"一般指代可以作為單 個單元進行訪問的數(shù)據(jù)塊。文件可以存儲在存儲設(shè)備上,或者可以經(jīng)由網(wǎng)絡(luò)接收。
具體地,一些實施方式提供用于生成用于布局的模板數(shù)據(jù)庫的系統(tǒng)和技術(shù)。在操 作期間,系統(tǒng)可以確定用于該布局的模板集合,其中該模板集合中的每個模板與該布局中 的一個區(qū)域相關(guān)聯(lián)。接著,系統(tǒng)可以按空間連貫的方式來處理模板,使得流程中的下游處理 能夠并發(fā)地執(zhí)行,由此提高系統(tǒng)的總體性能。例如,在一些實施方式中,系統(tǒng)可以使用該模 板集合、基于模板的空間連貫的順序來確定處理進度表。接著,系統(tǒng)可以根據(jù)該空間連貫的 處理進度表來選擇模板以進行處理。


圖1示出了根據(jù)本發(fā)明的一個實施方式的集成電路的設(shè)計和加工中的各個階段。
圖2A示出了無并發(fā)工作流程。 圖2B示出了根據(jù)本發(fā)明的一個實施方式的并發(fā)工作流程。 圖2C給出示出了根據(jù)本發(fā)明的一個實施方式的用于并發(fā)地執(zhí)行EDA工作流程的 各處理階段的過程的流程圖。 圖2D示出根據(jù)本發(fā)明的一個實施方式,調(diào)度器如何通過考慮并發(fā)工作流程中的
不同階段之間的依賴關(guān)系來改善性能。 圖3示出根據(jù)本發(fā)明的一個實施方式的模板。 圖4給出了示出根據(jù)本發(fā)明的一個實施方式的用于按空間連貫的方式生成模板 的過程的流程圖。 圖5A示出根據(jù)本發(fā)明的一個實施方式的如何針對布局確定唯一的模板。 圖5B示出根據(jù)本發(fā)明的一個實施方式如何使用螺旋來生成空間連貫的處理進度表。 圖6示出根據(jù)本發(fā)明的一個實施方式的計算機系統(tǒng)。
圖7示出根據(jù)本發(fā)明的一個實施方式的設(shè)備。
具體實施例方式
給出下面的描述以使得本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)和使用本發(fā)明,并且該描述是在
具體應(yīng)用及其要求的上下文中提供的。對公開的實施方式的各種修改對于本領(lǐng)域技術(shù)人員
是很顯然的,并且在不偏離本發(fā)明的精神和范圍的情況下,此處定義的一般性原理可以應(yīng)
用于其他實施方式和應(yīng)用。因此,本發(fā)明不限于示出的實施方式,而是與和此處公開的原理
和特征的最廣泛的范圍一致。 集成電路(IC)設(shè)計流程 圖1示出了根據(jù)本發(fā)明的一個實施方式的集成電路的設(shè)計和加工中的各個階段。
該過程可以始于產(chǎn)品構(gòu)思(步驟100),其可以利用通過使用EDA過程(步驟110) 設(shè)計的集成電路來實現(xiàn)。在集成電路被流片(事件140)之后,其可以經(jīng)歷加工過程(步驟 150)以及封裝和組裝過程(步驟160),從而生產(chǎn)出芯片170。 EDA處理(步驟IIO)包括步驟112-130,下面僅出于圖示目的來描述它們,并且其 不旨在限制本發(fā)明。特別地,這些步驟可以以與下面所描述的順序不同的順序來執(zhí)行。
在系統(tǒng)設(shè)計期間(步驟112),電路設(shè)計者可以描述他們想要實現(xiàn)的功能。他們還 可以執(zhí)行假設(shè)分析(what-if)規(guī)劃來改善功能、控制成本,等等。硬件-軟件架構(gòu)劃分也可 以在這個階段發(fā)生。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品 包括Model Architect、Saber⑧、System Studio禾口 Design Ware 。
在邏輯設(shè)計和功能驗證期間(步驟114),可以編寫針對系統(tǒng)中的模塊的VHDL 或Verilog代碼,并且可以檢查設(shè)計的功能準(zhǔn)確性,例如可以檢查設(shè)計以確保其產(chǎn)生正 確的輸出。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括
VCS 、 Vera 、 Design Ware 、 Magellan 、 Formality⑧、ESP和Leda⑧。 在綜合和測試設(shè)計期間(步驟116) , VHDL/Verilog可以被轉(zhuǎn)換成網(wǎng)表。另夕卜,網(wǎng) 表可以針對目標(biāo)技術(shù)進行優(yōu)化,并且可以設(shè)計測試并實現(xiàn)測試以檢查完成的芯片。在這個 步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括Design Complier 、Physical Compiler 、 Test Compi 1 er、 Power Compi 1 erTM、 FPGACompi 1 er、
TetraMAX⑧以及DesignWare⑧。 在網(wǎng)表驗證期間(步驟118),可以檢查網(wǎng)表是否符合時序約束以及是否與VHDL/ Verilog源代碼相一致。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)
品包括Formality⑧、PrimeTime⑧以及VCS⑧。 在設(shè)計規(guī)劃期間(步驟120),可以構(gòu)建芯片的整體平面布置并針對時序和頂層 布線進行分析。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括 Astro 禾口 IC Complier嚴(yán)品。 在物理實現(xiàn)期間(步驟122),電路元件可以被定位在布局中(放置)并且被電 氣耦合(布線)??梢栽谠摬襟E處使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括 Astr。TM和IC Compiler產(chǎn)品。 在分析和提取期間(步驟124),可以在晶體管級驗證電路的功能并且可以提 取寄生效應(yīng)。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括 AstroRail 、 PrimeRail、PrimeTime⑧和Star-RCXT 。 在物理驗證期間(步驟126),可以檢查設(shè)計以確保制造、電氣問題、光刻問題以及 電路的正確性。Hercules 是在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟 件產(chǎn)品。 在分辨率增強期間(步驟128),可以對布局執(zhí)行幾何處理以改進設(shè)計的可制造 性。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括Proteus/ Progen、 ProteusAF禾口 PSMGen。 在掩膜數(shù)據(jù)準(zhǔn)備期間(步驟130),設(shè)計可以被"流片"以生產(chǎn)在加工期間使用的掩 膜。在這個步驟處可以使用的來自Synopsys公司的示例性EDA軟件產(chǎn)品包括CATS⑧系
列產(chǎn)品。 本發(fā)明的實施例可以在一個或多個上述步驟期間使用。
并發(fā)工作流程 執(zhí)行掩膜分析所花費的時間正以驚人的速度增長。期望微處理器架構(gòu)的性能增長 以及分布式(并行)處理算法的日益增長的作用可以幫助保持周期時間是可管理的。然 而,1/0和資源競爭正開始展現(xiàn)出嚴(yán)重的瓶頸,從而扼制實際的周期時間。特別地,鑒于諸 如RET、 0PC、 MDP等處理階段間的多次移交,僅1/0時間一項就可能超過TAT要求。
本發(fā)明的一些實施例通過在不同處理階段的移交期間保持布局數(shù)據(jù)是分布式的 從而克服了 1/0瓶頸。具體地,一些實施方式利用了并發(fā)計算范例的優(yōu)勢,其中數(shù)據(jù)在各階 段之間增量式傳播,并且其中連續(xù)階段間的數(shù)據(jù)處理和各階段之間的1/0并發(fā)地執(zhí)行。
本發(fā)明的實施例提供了許多優(yōu)于常規(guī)方法的好處。具體地,這些實施例可以通過 使1/0與處理并發(fā)進行來減少或消除1/0開銷對TAT的影B向。另外,這些實施例可以通過將
低擴展性階段與高擴展性階段相重疊,以及通過擴展共享資源在時間上的利用率來最大化 資源利用率。另外,這些實施例可以通過使用具有較短壽命的較小的增量數(shù)據(jù)包來減小簇 交換存儲需求。另外,本發(fā)明的實施例可以減小RAM(隨機訪問存儲器)需求。注意,在并 發(fā)方法中,需要大量RAM進行其處理的階段在并發(fā)工作流程中不會同時處理所有數(shù)據(jù)。因 為,階段處理在時間上是分布式的,僅僅簇處理器中的子集會需要較大量的RAM(而不是要求簇中的所有處理器都具有最大存儲器)。 在掩膜綜合環(huán)境中,首先關(guān)心與物理芯片布局相關(guān)聯(lián)的空間數(shù)據(jù),其包括多邊形、 連接網(wǎng)、像素場。增量并發(fā)分布式流程的一個關(guān)鍵前提是數(shù)據(jù)需要預(yù)先劃分并且在整個流 程中保持劃分。數(shù)據(jù)從一個階段到下一個階段增量方式傳播,并且數(shù)據(jù)按照需要在分塊之 間增量式傳播以處理大于分塊規(guī)模的空間范圍。并發(fā)工作流程避免了在順序流程中可見的 嚴(yán)重的1/0瓶頸。流程中的數(shù)據(jù)用階段之間的增量式移交集合來保持劃分,而不是在階段 間的大型移交中傳播定義中間狀態(tài)的所有數(shù)據(jù)。 圖2A示出了無并發(fā)工作流程。注意,圖中時間從左向右前進。換言之,在圖的左 邊接收布局數(shù)據(jù)并且隨著數(shù)據(jù)走向圖的右邊,布局數(shù)據(jù)被不同的應(yīng)用處理。
圖2A中所示的無并發(fā)工作流程包括以下處理階段預(yù)處理和重新確定目標(biāo)階段 202、刻蝕糾正階段204、雙重圖形化技術(shù)(DPT)著色階段206、光刻糾正階段208、光刻規(guī)則 檢查(LRC)階段210、掩膜規(guī)則檢查(MRC)階段212以及掩膜數(shù)據(jù)準(zhǔn)備(MDP)階段214。在 每個處理階段之間,執(zhí)行I/O操作。例如,I/O操作216包括將來自預(yù)處理和重新確定目標(biāo) 階段202的數(shù)據(jù)寫到磁盤,以及從磁盤讀取數(shù)據(jù)以供在刻蝕糾正階段204中使用。圖中的 每個單獨的方框指示在特定時隙期間正使用特定量的計算資源。例如,方框218可指示在 與方框218相關(guān)聯(lián)的時隙期間,計算農(nóng)場中的一個服務(wù)器被專用于預(yù)處理和重新確定目標(biāo) 階段202。注意,方框中的每列對應(yīng)于特定時隙。例如,在時隙1\期間,計算農(nóng)場中的四個 服務(wù)器被專用于預(yù)處理和重新確定目標(biāo)階段202。 一旦LRC階段210完成,則用戶可以開始 審閱結(jié)果。 特定階段中所需要的處理類型可以確定該階段是否可以是分布式的。具體地,計 算可以具有局部范圍或全局范圍。如果可以以準(zhǔn)確和高效的方式對布局的不同部分獨立地 執(zhí)行計算,則計算具有局部范圍。另一方面,如果不能以準(zhǔn)確和高效的方式對布局的不同部 分獨立地執(zhí)行計算,則計算具有全局范圍。注意,具有局部范圍的處理階段可以以分布方式 執(zhí)行,而具有全局范圍的處理階段不能以分布方式執(zhí)行。例如,蝕刻糾正可以具有局部范 圍,并且因此它可以以分布方式執(zhí)行,如圖2A中所示。然而,DPT著色可以具有全局范圍, 并且因此它不可以以分布方式執(zhí)行,如圖2A中所示。
圖2B示出了根據(jù)本發(fā)明的一個實施方式的并發(fā)工作流程。 如上所述,在并發(fā)工作流程中,布局以空間連貫的方式被打破成較小的塊,并且處 理在時間上是展開的。具體地,在任意給定時隙期間,系統(tǒng)可以并發(fā)地執(zhí)行一個或多個階 段。例如,在時隙T2期間,系統(tǒng)可以對不同的數(shù)據(jù)塊并發(fā)地執(zhí)行預(yù)處理和重新確定目標(biāo)、以 及刻蝕糾正。 注意,在并發(fā)工作流程中,系統(tǒng)可以并發(fā)地執(zhí)行全局范圍階段以及其他階段,由此 減小整個TAT。例如,在圖2A中,當(dāng)DPT著色階段206正在處理數(shù)據(jù)時,沒有任何其他階段 在處理數(shù)據(jù)。相反,在并發(fā)工作流程中,在DPT著色階段254正在執(zhí)行的同時,系統(tǒng)可以執(zhí) 行其他階段。注意,無并發(fā)工作流程的TAT 220比并發(fā)工作流程的TAT 256要長得多。此 外,在并發(fā)工作流程中,用戶可以比在無并發(fā)流程中要快得多地開始審閱結(jié)果。
注意,在并發(fā)流程中某些階段可能要花費較長時間來完成,因為計算可能分散在 較多的時隙上。例如,在并發(fā)工作流程中預(yù)處理和重新確定目標(biāo)可能需要七個時隙,而不是 無并發(fā)流程中的四個時隙。具體地,如圖2A和2B中所示,預(yù)處理和重新確定目標(biāo)階段202
7可能比預(yù)處理和重新確定目標(biāo)階段252更快地完成。因此,使用并發(fā)流程來減小整個回轉(zhuǎn) 時間并非是顯而易見的。 并發(fā)流程可以極大地增加用于隱藏I/O延遲和用于資源負載平衡的機會。此外, 注意,在大多數(shù)時間,單個階段僅僅使用部分可用資源。因此,在相同的簇或計算農(nóng)場中,可 以有效地共享高值資源(例如具有強大處理器和大量存儲器的計算機)與低值資源。相反, 在無并發(fā)的流程中,計算農(nóng)場中的所有計算機必須配置有最高要求的階段所需要的最高值 資源。 微工碰禾罕@,* 為了啟用端到端的并發(fā)工作流程,理想地數(shù)據(jù)應(yīng)當(dāng)保持在階段之間按增量移交劃 分,并且在連續(xù)階段中的操作理想地應(yīng)當(dāng)并發(fā)地執(zhí)行。因為將端到端的并發(fā)引入到EDA工 作流程是基礎(chǔ)的范例移位,所以需要許多啟用技術(shù)來實現(xiàn)它并不奇怪。 這些啟用技術(shù)可以歸類成三大類(a)將數(shù)據(jù)分成較小塊的技術(shù),(b)對小塊進行 編碼以及使這些塊能夠在并發(fā)工作流程的不同階段之間進行交換的技術(shù),以及(c)有效地 調(diào)度在每個數(shù)據(jù)塊上運行的任務(wù)和進程的技術(shù)。以下章節(jié)提供這些啟用技術(shù)的進一步細 節(jié)。 籠潛 可以使用許多技術(shù)來劃分布局數(shù)據(jù)。取決于應(yīng)用,數(shù)據(jù)可以被劃分成重疊區(qū)域或 非重疊區(qū)域。另外,可以使用許多標(biāo)準(zhǔn)來確定每個分塊的形狀和大小。 例如, 一種方法可以僅僅是將布局劃分成相等規(guī)模的矩形塊。另一種方法可以使 用單元層級來劃分布局。在又一種方法中,圖案的密度和/或復(fù)雜度可以用于確定分塊的 大小。例如,在包含大量復(fù)雜幾何圖形的區(qū)域中,系統(tǒng)可以生成較小規(guī)模的分塊,而在具有 較簡單幾何圖形的區(qū)域中,系統(tǒng)可能生成較大規(guī)模的分塊。 另夕卜,隨著數(shù)據(jù)移動通過EDA流程,系統(tǒng)可決定重新組織這些分塊。具體地,系統(tǒng) 可以根據(jù)階段的處理需求來合并或分割分塊。例如,如果一個階段對小分塊執(zhí)行處理,并且 該階段的輸出被作為輸入提供給傾向于較大分塊的另一階段,則在這些小分塊從第一階段 中出來時系統(tǒng)可將其合并,并且將合并的分塊饋送給第二階段。 在某些實施例中,系統(tǒng)可確定一組唯一的分塊以改善效率。具體地,如果兩個分塊
相同(例如這些分塊包含相同的圖案),則系統(tǒng)可決定僅處理一個分塊并將結(jié)果重新用于
另一分塊(在稍后的章節(jié)中討論系統(tǒng)可以如何確定一組唯一的分塊的細節(jié))。 不管布局數(shù)據(jù)被如何劃分,都需要技術(shù)和系統(tǒng)來對分塊進行編碼以及在不同處理
階段之間交換分塊。下一章節(jié)討論用于表示和交換增量式布局數(shù)據(jù)的啟用技術(shù)。 層級分解和增量式布局數(shù)據(jù)移奪 增量式布局數(shù)據(jù)移交機制的主要組成可以包括1)將層級布局分解成離散片段 的方法;以及2) —個工具與另一工具交換片段和元數(shù)據(jù)的禁止方法。片段名義上是可以獨 立地寫、轉(zhuǎn)移和讀取的數(shù)據(jù)文件(盡管不排除其他媒介,諸如套接字(socket))。增量方法 的前提是允許使用多個文件來表示圖形數(shù)據(jù)(也即片段)以及在時間上增量式傳播這些片 段。 OASIS和GDS格式被組織成一組單元,其定義層級和數(shù)據(jù)。每個單元可包含多邊形 和/或?qū)ζ渌麊卧囊谩Mǔ?,若一個單元沒有被任何其他單元引用,則該單元是單元層
8級的根或"頂單元"。從根單元開始,其引用定義了到"子單元"的分支,這些子單元的引用 又定義了子分支,等等,由此定義了完整的層級樹。在分支末端的單元不包含任何引用并且 因此被稱作"葉子"單元。 將GDS/0ASIS布局分解成片段的普通方法是將單元的子集歸組成片段。然而,通 常所有片段都必須聚到一起以推導(dǎo)出層級樹。這將意味著以增量形式來接收這種數(shù)據(jù)的工 具必須等待直到收集所有片段,才能開始有用的工作。 這種限制可以通過用"葉子支架(scaffolding)"來轉(zhuǎn)換布局層級來解決。這種操 作將虛擬單元添加到同時包含圖形和引用的任意單元并且將圖形移動到該虛擬單元。結(jié)果 是,單元將或者包含對其他單元的引用,或者包含圖形,但不會同時包含二者?,F(xiàn)在,可以將 托架單元放進一個片段(或片段集合)并且將葉子單元放進其他片段。當(dāng)"托架"片段被首 先傳播時,接收工具具有布局的完整的層級組織(骨架),其極大地增強了它對后續(xù)圖形進 行有用工作的能力。如果除了引用之外,托架單元還包含子單元的圖形范圍的邊界框(或 作為最大的可能范圍的估計邊界框),則接收工具甚至可以更好地確定何時可以完成有用 工作,而不需要在圖形單元變得可用時才讀取圖形單元。在一些實施例中,增量式布局數(shù)據(jù) 移交系統(tǒng)使用多個文件來表示圖形數(shù)據(jù)(也即片段)。 通常,增量式布局數(shù)據(jù)移交需要某種機制向后續(xù)階段傳送關(guān)于將由前面階段生成 的數(shù)據(jù)片段(在產(chǎn)生依賴信息時,這些片段自身不必是可用的)的明確的信息。利用依賴 信息,接收階段可以定義它需要做的(分布式)工作(在數(shù)據(jù)可用之前)。
在某些實施例中,狀態(tài)機制用于存儲和傳送關(guān)于哪"塊(chunk)"數(shù)據(jù)是可用的以 及到哪去找到它們的信息。對處理數(shù)據(jù)感興趣的所有階段可以通過狀態(tài)機制來發(fā)送和接收 數(shù)據(jù)。例如,如在圖2B中示出,可以在圖形單元變得可用時對圖形單元執(zhí)行預(yù)處理和重新 確定目標(biāo)。進一步地,一旦對圖形單元完成了預(yù)處理和重新確定目標(biāo),則系統(tǒng)可以告知狀態(tài) 機制,由此使得計算機能夠使用圖形單元來執(zhí)行下一個階段(刻蝕糾正)。注意,狀態(tài)機制 僅僅是用于圖示目的并不旨在限制本發(fā)明。 注意,使用骨架和一組圖形單元來表示布局數(shù)據(jù)是并發(fā)工作流程的重要啟用者。
具體地,如果一個階段需要有關(guān)不同片段如何進行空間布置的信息,則它可以快速地接收
骨架文件,因為骨架文件的大小遠小于整個布局數(shù)據(jù)。進一步地,系統(tǒng)(例如任務(wù)調(diào)度器)
可以使用骨架文件來確定特定任務(wù)何時具有其開始處理所需要的所有數(shù)據(jù)。 使用多個文件來表示布局數(shù)據(jù)——例如一個骨架文件和多個圖形數(shù)據(jù)文件——
可以增加表示布局數(shù)據(jù)所需的總的字節(jié)數(shù)(其對于32nm工藝而言可以是幾個T字節(jié))。換
言之,單個布局數(shù)據(jù)文件的大小將小于骨架文件和多個圖形數(shù)據(jù)文件的大小之和。因此,使
用多個文件來表示布局數(shù)據(jù)并非是顯而易見的,因為它將增加表示的總大小。然而,本發(fā)明
的某些實施例部分地基于以下認識并發(fā)的好處超出了使用多個文件來表示布局數(shù)據(jù)的缺點。"主數(shù)據(jù)"可以存儲在片段中,每個片段被編碼成合法的、單獨存在的OASIS或 GDSII文件。分層的數(shù)據(jù)定義了布局的結(jié)構(gòu)并且至少包含所有托架單元定義。另外,層級應(yīng) 當(dāng)枚舉所有葉子單元,并且它應(yīng)當(dāng)提供為每個葉子和托架單元估計的邊界框。邊界框信息 可以包括在骨架主數(shù)據(jù)中(例如,通過在OASIS中使用"boundbox"元素,或通過使用GDSII 中的屬性或預(yù)留的層和多邊形)。在另一實施例中,邊界框信息可以包括在元數(shù)據(jù)中。與骨架中的鵬葉子單元相關(guān)聯(lián)的邊界框?qū)⒈灰暈閷⑸傻膶嶋H葉子單元的估計(最大可能 范圍的)。注意,與葉子單元片段相關(guān)聯(lián)的邊界框可以包含準(zhǔn)確大小的邊界框,因為在該處 圖形是已知的。 葉子單元片段可包含標(biāo)準(zhǔn)0ASIS/GDS單元定義加上使文件能夠如同"正常"GDS/ OASIS文件一樣被訪問的頭/尾記錄。注意,審閱者通常將在單元坐標(biāo)中覆蓋片段中的所有 單元,并且因此,審閱的有效性局限于一次檢查一個單元。注意,通過將主數(shù)據(jù)分成片段,布 局數(shù)據(jù)的1/0可以與其他計算并發(fā)地執(zhí)行。進一步地,通過收集所有片段并組裝它們以產(chǎn) 生單個文件,可以一直在單個文件中表示布局。 在某些實施例中,圖形片段按"標(biāo)準(zhǔn)"空間順序來生成。度量可以包括在狀態(tài)信息 中,其跟蹤沿著一維的掃描坐標(biāo),從而完整地生成在布局邊沿與掃描坐標(biāo)之間的所有圖形 數(shù)據(jù)。片段大小可以通過生成應(yīng)用來確定,以便針對該應(yīng)用所運行的計算環(huán)境而優(yōu)化。注 意,特定的空間順序可能需要執(zhí)行某些類型的處理。因此,可以保持評估給定輸出的空間連 貫性的度量以使應(yīng)用能夠確定數(shù)據(jù)是否是以特定的空間順序生成的。 圖2C給出了示出根據(jù)本發(fā)明的一個實施方式的用于并發(fā)地執(zhí)行EDA工作流程的 各處理階段的過程的流程圖。 過程可以開始于接收布局描述(方框282)。布局描述可以是單個OASIS或GDSII 文件。注意,術(shù)語"文件"通常是指可以作為單個單元來訪問的數(shù)據(jù)塊。文件可以存儲在存 儲設(shè)備上,或者可以經(jīng)由網(wǎng)絡(luò)來接收。 接下來,系統(tǒng)可以使用布局描述來生成骨架文件和圖形文件集合,其中骨架文件 通過區(qū)域集合來表示布局,并且其中每個圖形文件包含針對區(qū)域集合中的特定區(qū)域的布局 數(shù)據(jù)(方框284)。 接著,系統(tǒng)可以使用骨架文件和圖形文件集合來生成執(zhí)行進度表,其中該執(zhí)行進 度表指明特定處理階段何時將處理特定的圖形文件(方框286)。 接下來,該系統(tǒng)可以部分地基于該執(zhí)行進度表來對圖形文件的第一子集執(zhí)行第一 處理階段(方框288)。在某些實施例中,該系統(tǒng)可以以空間連貫的順序來處理這些圖形文 件。 接著,系統(tǒng)可以部分地基于該執(zhí)行進度表來對圖形文件的第二子集執(zhí)行第二處理 階段,其中該第二處理階段與該第一處理階段并發(fā)地執(zhí)行(方框290)。 在某些實施例中,依賴關(guān)系可以由每個處理階段以分布方式確定,而不是通過集 中的調(diào)度器來確定。例如,系統(tǒng)可以執(zhí)行第一處理階段,由此導(dǎo)致該第一處理階段接收骨架 文件和圖形文件集合,并且開始處理該圖形文件集合。 接下來,系統(tǒng)可以與該第一處理階段并發(fā)地執(zhí)行第二處理階段,其中在圖形文件
集合被第一處理階段處理的同時,該第二處理階段接收骨架文件。注意,骨架文件可以使得
第二處理階段能夠確定圖形文件集合之間的相互依賴關(guān)系,從而第一處理階段剛完成對圖
形文件執(zhí)行第二處理階段所需要的處理圖形文件,第二處理階段就開始處理圖形文件集合
中的圖形文件。備選地,第二階段可以特別地請求第一階段處理特定的圖形文件,從而第二
階段可以開始它的處理。 i周度并發(fā)工作流稈的ft備 并發(fā)工作流程的各種階段之間可能具有復(fù)雜的相互依賴關(guān)系。理論上,如果所有分布式任務(wù)及其依賴關(guān)系對于整個流程是已知的,則所有任務(wù)的最優(yōu)執(zhí)行順序可以利用該 信息來解決(在其他優(yōu)化準(zhǔn)則的上下文中)。然而,在實踐中,可能不可能事先知道整個流 程中的所有任務(wù),因為某些階段的任務(wù)的組織可能依賴于前面階段的計算結(jié)果。在這種情 形中,在中間調(diào)度點處可能需要線索(例如,按照從已定義邊沿到其他邊沿的掃描順序來 做一些事情)來確保數(shù)據(jù)可能按照接近后續(xù)階段所需要的最優(yōu)順序到來。
注意,任務(wù)依賴關(guān)系可以導(dǎo)致數(shù)據(jù)以空間連貫的方式自動地處理。例如,實施掃描 順序的處理可以是智能整體調(diào)度的結(jié)果。解決方案將有可能包含類掃描的內(nèi)部流程,即使 調(diào)度器不知道將這種執(zhí)行圖案作為目標(biāo)。 如果流程的客戶需要/傾向于特定空間順序的數(shù)據(jù),則系統(tǒng)可以提供該順序以作 為任務(wù)調(diào)度器的輸入。接著,調(diào)度器可以調(diào)度處理,從而前面階段內(nèi)的序列將根據(jù)需要排列 以獲得最優(yōu)調(diào)度器目標(biāo)。注意,這種方法的好處是,僅調(diào)度器需要知道特定空間順序;各任 務(wù)僅僅在它們被告知時才執(zhí)行。 本發(fā)明的某些實施例可以使用主調(diào)度器,其在整個并發(fā)工作流程上調(diào)度任務(wù)。調(diào) 度器可以基于資源可用性、許可證可用性以及獲得優(yōu)先輸出的最小循環(huán)時間(其可以由用 戶來設(shè)置)來發(fā)起任務(wù)。 圖2D示出了根據(jù)本發(fā)明的一個實施方式調(diào)度器如果通過考慮并發(fā)工作流程中的 不同階段的依賴關(guān)系來改善性能。 在圖2D中示出了對分布式數(shù)據(jù)執(zhí)行操作的兩個獨立階段布局的九個劃分的區(qū)
域A、B.....I。第一階段被分解成獨立的分布式任務(wù)。每個任務(wù)依賴于"主"分塊以及其
鄰近的所有"上下文"分塊。因為這些第一階段任務(wù)是獨立的,所以它們可以以任意順序來 執(zhí)行。第二階段是掃描順序的處理,其中任務(wù)依賴于同一階段中其他任務(wù)的結(jié)果。具體地, 在這個例子中,每個分塊任務(wù)依賴于它上面鄰居的結(jié)果。 假設(shè)有五個可用于執(zhí)行此流程的處理器(還假設(shè)所有任務(wù)花費相同量的處理時 間)。如果針對每個階段獨立地進行分布式控制,則這些任務(wù)的可能部署可以如下
階段l :-部署五個任務(wù)。
-部署四個任務(wù);1個CPU空閑。 階段2部署3個任務(wù)(以獲得結(jié)果A2, B2, C2) ;2個CPU空閑。
-部署3個任務(wù)(結(jié)果D2, E2, F2) ;2個CPU空閑。
-部署3個任務(wù)(結(jié)果G2, H2, 12) ;2個CPU空閑。 相比于上述調(diào)度,智能調(diào)度器可以考慮整體任務(wù)依賴關(guān)系圖來產(chǎn)生更好地利用處
理器的優(yōu)良部署戰(zhàn)略。具體地,智能調(diào)度器可確定以下調(diào)度 階段1 :-部署5個任務(wù)A1, Bl, Cl, Dl, El -部署5個任務(wù)A2,B2,C2,F(xiàn)1,G1 -部署5個任務(wù)D2,E2,F(xiàn)2,H1, II -部署3個任務(wù)G2, H2, 12 ;2個CPU空閑。 注意,智能調(diào)度器縮減了 20%的循環(huán)時間。另外,注意,改進的并發(fā)流程是優(yōu)化任 務(wù)依賴關(guān)系圖的結(jié)果。 不太可能在流程開始時知道所有任務(wù)和依賴關(guān)系。因此,在某些實施例中,調(diào)度器 可以基于其已有的任何依賴關(guān)系信息來調(diào)度任務(wù),并且隨著更多的信息可用,調(diào)度器可以適當(dāng)?shù)匦薷恼{(diào)度。 除了調(diào)度任務(wù)之外,調(diào)度器還可監(jiān)視正在執(zhí)行的任務(wù)的健康狀況以及探測任務(wù)何
時結(jié)束或掛起。調(diào)度器還可通過重啟失敗的任務(wù)來幫助工作流程從故障中恢復(fù)。故障恢復(fù)
可能需要重繞到比探測到故障的任務(wù)更早的任務(wù)。例如,如果先前任務(wù)的輸出損壞了,但是
直到下一任務(wù)看見才探測到該故障,則系統(tǒng)可能必須重繞到先前任務(wù)。另外,調(diào)度器可以幫
助清理中間數(shù)據(jù)文件。 對角線化全局范圍處理 如果不能以準(zhǔn)確且高效的方式獨立地對布局中的不同部分執(zhí)行計算,則該計算具 有全局范圍。對全局范圍問題的常規(guī)解決方案常常奢侈地要求在同一時間具有所有可用的 數(shù)據(jù)。這為這些解決方案在如何構(gòu)建其底層算法方面提供了最大的自由度。遺憾的是,當(dāng) 掩膜數(shù)據(jù)非常大時(例如幾個T字節(jié)),對全局范圍問題的常規(guī)解決方案是效率很低的,因 為它們花費了過量的時間在1/0操作上。 本發(fā)明的某些實施例是基于以下認識全局范圍問題可以通過一次對輸入的一個 子集進行處理的方式來增量式解決,由此允許它們可以與并發(fā)工作流程中的其他處理一起 并發(fā)地執(zhí)行。從先前子集獲取的信息可以傳播給后續(xù)子集以解決這些子集之間的依賴關(guān) 系,而無需重訪先前的計算。對輸入數(shù)據(jù)的每個子集的執(zhí)行產(chǎn)生已完成的輸出的一部分,以 及被傳播用于執(zhí)行輸入數(shù)據(jù)的下一個子集的部分計算的信息。 注意,對全局范圍問題的增量式解決方案可能不需要一次性地訪問所有的輸出數(shù) 據(jù)。增量式解決方案可能只需要在存儲器中保持足夠的輸入數(shù)據(jù),從而它可以解決任何全 局范圍沖突。換言之,全局范圍問題可以以增量和并發(fā)的形式來實現(xiàn),而無需一次性地訪問 大量數(shù)據(jù)。 以下章節(jié)使用模板生成階段來說明可以如何調(diào)整全局范圍階段以適合于并發(fā)工 作流程。針對并發(fā)工作流程調(diào)整全局范圍階段可以視為使全局范圍階段"對角線化",因為 該階段可以表示成并發(fā)工作流程圖中的對角線。例如,在圖2B中DPT著色問題已經(jīng)被對角 線化。
示例模板生成 圖3示出了根據(jù)本發(fā)明的一個實施例的模板。 布局302包括單元實例304和306,它們是相同單元的實例。 注意,因為單元實例304和306是相同單元的實例,所以與這些單元實例相關(guān)聯(lián)的 布局形狀很有可能非常相似。例如,如在放大圖308和放大圖310中所示,單元實例304的 形狀與單元實例306的形狀非常相似。然而,同樣如在放大圖308和放大圖310中所示,單 元實例可以被互不相同的形狀包圍。 模板是布局中可以用于對布局執(zhí)行計算的區(qū)域。模板的尺寸和形狀可依賴于應(yīng) 用。例如,對于OPC,模板的尺寸可以基于OPC核的交互范圍。在圖3中,模板312和314分別包括單元實例304和306。注意,如果兩個模板具 有相同的形狀集合,則系統(tǒng)可以對一個模板執(zhí)行處理,并針對另一模板重復(fù)使用該結(jié)果。例 如,系統(tǒng)可以對模板之一執(zhí)行OPC糾正,并且針對所有其他匹配模板重復(fù)使用該OPC糾正。
用于生成一組唯一的模板的處理被稱為模板生成,其對于許多EDA階段而言是重 要的處理。模板生成不容易以分布方式執(zhí)行,因為該處理具有全局范圍。這是因為,為了確定模板是否是唯一的,每個模板必須與當(dāng)前的唯一模板數(shù)據(jù)庫進行比較。具體地,如果兩個 (或更多)處理器正獨立地執(zhí)行模板生成,則它們將破壞唯一性的屬性,因為單個唯一模板 將在每個處理中獨立存在。即使這個問題可以通過互換信息以同步處理來解決,整個流程 的并發(fā)節(jié)奏也會丟失。 本發(fā)明的某些實施例以增量并發(fā)方式來執(zhí)行模板生成。增量并發(fā)式模板生成不是 顯而易見的,因為如果沒有對模板生成處理中的并發(fā)進行恰當(dāng)?shù)墓芾?,則它可能導(dǎo)致性能 惡化而不是性能改善。 具體地,空間順序布局數(shù)據(jù)可以以特定方式幫助改善某些處理的效率。例如,當(dāng)對 模板執(zhí)行0PC計算時,其通常修改模板中的所有形狀。完全由于其屬性,OPC計算在靠近模 板中心處比在模板的外圍更加精確。這是因為在模板的外圍處精確執(zhí)行OPC所需的數(shù)據(jù)存 在于相鄰模板中。因此,為了對模板中的所有形狀精確地執(zhí)行OPC, OPC處理需要知道相鄰
模板中的形狀。注意,如果模板生成是以隨機空間順序來執(zhí)行的,則在幾乎所有模板都已經(jīng)
處理之后0PC計算才可能開始。因此,在隨機空間順序的情形下,如果模板生成處理是以并 發(fā)形式來執(zhí)行的,則其可能惡化性能,因為0PC計算將不與模板生成處理一起并發(fā)地執(zhí)行。
本發(fā)明的某些實施例部分地基于以下認識如果唯一模板以空間連貫的形式來標(biāo) 識,則它們可能增加并發(fā)工作流程的并發(fā)性。 圖4給出了示出根據(jù)本發(fā)明的一個實施方式的用于按空間連貫的方式生成模板 的過程的流程圖。 該過程可以開始于確定布局的模板集合,其中模板集合中的每個模板與布局中的 一個區(qū)域相關(guān)聯(lián)(步驟402)。 在某些實施例中,系統(tǒng)可接收布局中的點集合。例如,系統(tǒng)可接收在期望執(zhí)行輔助 特征布置的區(qū)域中的點集合。接下來,系統(tǒng)可以針對點集合中的每個點生成模板,其中模板 集合中的每個模板包括布局中位于點集合中的各點的范圍(例如影響半徑或影響范圍)內(nèi) 的多邊形。 注意,模板數(shù)據(jù)庫可以被初始化成空狀態(tài)。隨著模板生成過程的前進,模板將被一 個一個地添加到模板數(shù)據(jù)庫中。 圖5A圖示根據(jù)本發(fā)明的一個實施例,可以如何針對布局確定唯一的模板。注意, 圖5A僅僅用于圖示目的,并不旨在將本發(fā)明限制到所公開的形式。 布局502可以被分成許多模板,諸如模板504、506和508。注意,通常,兩個模板可 以彼此重疊(出于清晰起見圖5A沒有示出重疊模板)。模板可具有不同形狀和大小,并且 每個模板在布局中可具有特定位置。在某些實施例中,骨架文件可以指明模板的位置、形狀 和尺寸,并且圖形文件集合可以指明每個模板的布局數(shù)據(jù)(例如多邊形)。
繼續(xù)圖4的描述,系統(tǒng)可基于模板的空間連貫順序來確定處理進度表(方框404)。
例如,圖5A圖示了如何將掃描線用于生成空間連貫處理進度表。具體地,掃描線 510可從布局的一側(cè)移動到另一側(cè)。當(dāng)掃描線移動時,系統(tǒng)可跟蹤掃描線與模板相交的順 序。接下來,系統(tǒng)可基于這個順序來確定處理進度表。 注意,系統(tǒng)可使用多種技術(shù)來生成空間連貫的順序。例如,掃描線可對角地移動, 也即從布局的一個角移動到對角。另外,空間順序還可以是基于其他幾何形狀和路徑,諸如 矩形、圓、橢圓、螺旋形,等等。
圖5B示出根據(jù)本發(fā)明的一個實施方式如何使用螺旋來生成空間連貫的處理進度 表。該系統(tǒng)可以從布局的中心開始并沿著螺旋路徑從該中心向外移動。模板的空間順序可 以通過跟蹤模板與螺旋路徑相交的順序來確定。 注意,已經(jīng)給出了空間連貫順序的上述例子,其僅用于圖示目的,而不旨在將本發(fā) 明限制到所公開的形式。 繼續(xù)圖4的描述,接著系統(tǒng)可根據(jù)空間連貫處理進度表來選擇模板以進行處理 (方框406)。 接下來,系統(tǒng)可確定模板是否在模板數(shù)據(jù)庫中(方框408)。為了匹配兩個模板,系 統(tǒng)可比較兩個模板的多邊形。如果對于一個模板中的每個多邊形,在另一模板中存在相應(yīng) 的多邊形,則系統(tǒng)可推斷這兩個模板匹配。在某些實施例中,系統(tǒng)可使用模板中的多邊形的 坐標(biāo)來計算哈希值。接下來,為了確定兩個模板是否彼此匹配,系統(tǒng)可比較與這兩個模板相 關(guān)聯(lián)的哈希值。 如果模板已經(jīng)存在于模板數(shù)據(jù)庫中,則系統(tǒng)可給該模板加上合適的標(biāo)識符(塊 410)。例如,如果模板與所存儲的與特定標(biāo)識符相關(guān)聯(lián)的模板相匹配,則系統(tǒng)可將該匹配的 模板與同一標(biāo)識符關(guān)聯(lián)起來。 另一方面,如果模板不與任何存儲的模板匹配,則系統(tǒng)可將該模板存儲在模板數(shù)
據(jù)庫中(塊412)。 i十纖碰禾口驟 圖6圖示根據(jù)本發(fā)明的一個實施例的計算機系統(tǒng)。 計算機系統(tǒng)602包括處理器604、存儲器606和存儲設(shè)備608。計算機系統(tǒng)602可 與顯示器614、鍵盤610和指點設(shè)備612相耦合。存儲設(shè)備608可存儲指令和/或數(shù)據(jù),其 在被處理器604處理時可使得計算機系統(tǒng)602執(zhí)行與并發(fā)架構(gòu)相一致的處理。
具體地,存儲設(shè)備608可存儲調(diào)度模塊616、匹配模塊618、模板數(shù)據(jù)庫620、骨架文 件622和圖形文件624。調(diào)度模塊616和匹配模塊618可用于創(chuàng)建模板數(shù)據(jù)庫620。骨架 文件622可表示布局片段的位置。通常,骨架文件622足夠小,從而它不會導(dǎo)致I/O瓶頸。 圖形文件624可包含針對骨架文件622中所提及的每個片段的詳細的圖形。圖6中所示模 塊僅僅用于圖示目的,并不旨在將本發(fā)明限制到所公開的形式。
圖7圖示了根據(jù)本發(fā)明的一個實施例的設(shè)備。 設(shè)備702可包括許多裝置,其可經(jīng)由有線或無線通信信道彼此進行通信。具體地, 設(shè)備702可包括確定裝置704、確定裝置706、調(diào)度裝置708、生成裝置710和輸出裝置712。 在某些實施例中,確定裝置704可配置成確定模板集合,確定裝置706可配置成確定模板集 合的空間連貫順序,調(diào)度裝置708可配置成基于模板集合的空間連貫順序來確定處理進度 表,生成裝置710可配置成隨著模板集合按空間連貫順序進行處理而生成模板數(shù)據(jù)庫,以 及輸出裝置712可配置成當(dāng)唯一模板被標(biāo)識時輸出該唯一模板。 設(shè)備702可以是計算機系統(tǒng)的一部分,或者是能夠與其他計算機系統(tǒng)和/或設(shè)備 進行通信的獨立設(shè)備。設(shè)備702可用一個或多個集成電路來實現(xiàn)。具體地,設(shè)備702中的 一個或多個裝置可實現(xiàn)成處理器的一部分。
結(jié)論 在具體實施方式
部分中描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲在計算機可讀存儲設(shè)備
14上,該計算機可讀存儲設(shè)備可以是可存儲由計算機系統(tǒng)使用的代碼和/或數(shù)據(jù)的任意設(shè) 備。計算機可讀存儲設(shè)備包括但不限于易失性存儲器、非易失性存儲器、磁的和光的存儲設(shè) 備,例如盤驅(qū)動器、磁帶、CD (壓縮盤)、DVD (數(shù)字多功能盤或數(shù)字視頻盤)、或現(xiàn)在已知或以 后開發(fā)的能夠存儲計算機可讀介質(zhì)的其他介質(zhì)。
具體實施方式
部分所描述的方法和處理可以具體化為代碼和/或數(shù)據(jù),其可以存 儲在如上所述的計算機可讀存儲設(shè)備中。當(dāng)計算機系統(tǒng)讀取和執(zhí)行存儲在計算機可讀存儲 設(shè)備上的代碼和/或數(shù)據(jù)時,計算機系統(tǒng)執(zhí)行具體化為數(shù)據(jù)結(jié)構(gòu)和代碼并且存儲在計算機 可讀存儲設(shè)備中的方法和處理。 此外,上面所述的方法和處理可以包括在硬件模塊中。例如,硬件模塊可以包括但 不限于專用集成電路(ASIC)芯片、現(xiàn)場可編程門陣列(FPGA)和其他現(xiàn)在已知或以后開發(fā) 的可編程邏輯器件。當(dāng)硬件模塊被激活時,硬件模塊執(zhí)行包括在硬件模塊中的方法和處理。
僅為了說明和描述的目的提供了本發(fā)明的實施方式的上述描述。它們不旨在于窮 舉或?qū)⒈景l(fā)明限于這里公開的形式。因此,對于本領(lǐng)域技術(shù)人員來說,許多修改和變形將是 明顯的。另外,上述的公開并不旨在限制本發(fā)明。本發(fā)明的范圍由所附的權(quán)利要求書所限 定。
權(quán)利要求
一種生成用于布局的模板數(shù)據(jù)庫的方法,所述方法包括確定用于所述布局的模板集合,其中所述模板集合中的每個模板與所述布局中的一個區(qū)域相關(guān)聯(lián);基于所述模板集合的空間連貫順序來確定處理進度表;根據(jù)所述處理進度表來選擇模板以進行處理;響應(yīng)于確定所述模板與所述模板數(shù)據(jù)庫中存儲的模板匹配,給第一模板加上所述存儲的模板的標(biāo)識符;以及響應(yīng)于確定所述模板不與所述模板數(shù)據(jù)庫中的任何模板匹配,將所述模板存儲在所述模板數(shù)據(jù)庫中。
2. 根據(jù)權(quán)利要求1所述的方法,其中確定所述模板集合包括 接收所述布局中的點集合;以及生成針對所述點集合中的每個點的模板,其中所述模板集合中的每個模板包括所述布 局中位于所述點集合中的各個點的范圍內(nèi)的多邊形。
3. 根據(jù)權(quán)利要求1所述的方法,其中確定所述第一模板是否與所述存儲的模板匹配包 括將所述第一模板的多邊形與所述存儲的模板的多邊形進行比較。
4. 根據(jù)權(quán)利要求1所述的方法,其中確定所述第一模板是否與所述存儲的模板匹配包 括將所述第一模板的哈希值與所述存儲的模板的哈希值進行比較。
5. 根據(jù)權(quán)利要求1所述的方法,其中確定處理進度表包括 將掃描線定位在所述布局的第一邊界處;朝著位于所述第一邊界對面的所述布局的第二邊界移動所述掃描線;以及 部分地基于所述掃描線與所述模板集合相交的順序來確定所述處理進度表。
6. 根據(jù)權(quán)利要求1所述的方法,其中確定處理進度表包括 確定布局中的路徑;以及部分地基于所述路徑與所述模板集合相交的順序來確定所述處理進度表。
7. —種生成用于布局的模板數(shù)據(jù)庫的設(shè)備,所述設(shè)備包括第一確定裝置,其配置成確定用于所述布局的模板集合,其中所述模板集合中的每個 模板與所述布局中的一個區(qū)域相關(guān)聯(lián);第二確定裝置,其配置成基于所述模板集合的空間連貫順序來確定處理進度表; 選擇裝置,其配置成根據(jù)所述處理進度表來選擇模板以進行處理;加標(biāo)簽裝置,其配置成響應(yīng)于確定所述模板與所述模板數(shù)據(jù)庫中存儲的模板匹配,給 第一模板加上所述存儲的模板的標(biāo)識符;以及存儲裝置,其配置成響應(yīng)于確定所述模板不與所述模板數(shù)據(jù)庫中的任何模板匹配,將 所述模板存儲在所述模板數(shù)據(jù)庫中。
8. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述第一確定裝置被配置成 接收所述布局中的點集合;以及生成針對所述點集合中的每個點的模板,其中所述模板集合中的每個模板包括所述布 局中位于所述點集合中的各個點的范圍內(nèi)的多邊形。
9. 根據(jù)權(quán)利要求7所述的設(shè)備,其中確定所述第一模板是否與所述存儲的模板匹配包 括將所述第一模板的多邊形與所述存儲的模板的多邊形進行比較。
10. 根據(jù)權(quán)利要求7所述的設(shè)備,其中確定所述第一模板是否與所述存儲的模板匹配 包括將所述第一模板的哈希值與所述存儲的模板的哈希值進行比較。
11. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述第二確定裝置被配置成 將掃描線定位在所述布局的第一邊界處;朝著位于所述第一邊界對面的所述布局的第二邊界移動所述掃描線;以及 部分地基于所述掃描線與所述模板集合相交的順序來確定所述處理進度表。
12. 根據(jù)權(quán)利要求7所述的設(shè)備,其中所述第二確定裝置被配置成 確定布局中的路徑;以及部分地基于所述路徑與所述模板集合相交的順序來確定所述處理進度表。
13. —種用于并發(fā)執(zhí)行電子設(shè)計自動化(EDA)工作流程中的第一處理階段和第二處理 階段的方法,其中所述第一處理階段處理數(shù)據(jù)之后所述第二處理階段處理所述數(shù)據(jù),所述 方法包括接收布局描述;使用所述布局描述來生成骨架文件和圖形文件集合,其中所述骨架文件用區(qū)域集合來 表示所述布局,并且其中每個圖形文件包含針對所述區(qū)域集合中的特定區(qū)域的布局數(shù)據(jù);使用所述骨架文件和所述圖形文件集合來確定執(zhí)行進度表,所述執(zhí)行進度表指明特定 處理階段何時處理特定的圖形文件;部分地基于所述執(zhí)行進度表來對圖形文件的子集執(zhí)行所述第一處理階段;以及部分地基于所述執(zhí)行進度表來對圖形文件的第二子集執(zhí)行所述第二處理階段,其中所 述第二處理階段與所述第一處理階段并發(fā)地執(zhí)行。
14. 一種用于并發(fā)執(zhí)行電子設(shè)計自動化(EDA)工作流程中的第一處理階段和第二處理 階段的設(shè)備,其中所述第一處理階段處理數(shù)據(jù)之后所述第二處理階段處理所述數(shù)據(jù),所述 設(shè)備包括接收裝置,其配置成接收布局描述;生成裝置,其配置成使用所述布局描述來生成骨架文件和圖形文件集合,其中所述骨 架文件用區(qū)域集合來表示所述布局,并且其中每個圖形文件包含針對所述區(qū)域集合中的特 定區(qū)域的布局數(shù)據(jù);確定裝置,其配置成使用所述骨架文件和所述圖形文件集合來確定執(zhí)行進度表,所述 執(zhí)行進度表指明特定處理階段何時處理特定的圖形文件;第一執(zhí)行裝置,其配置成部分地基于所述執(zhí)行進度表來對圖形文件的子集執(zhí)行所述第 一處理階段;以及第二執(zhí)行裝置,其配置成部分地基于所述執(zhí)行進度表來對圖形文件的第二子集執(zhí)行所 述第二處理階段,其中所述第二處理階段與所述第一處理階段并發(fā)地執(zhí)行。
全文摘要
本發(fā)明提供了用于高效計算海量布局數(shù)據(jù)的增量式并發(fā)處理的方法和設(shè)備。本發(fā)明的一些實施例通過在不同處理階段之間的移交期間將布局數(shù)據(jù)保持為分布式,克服了EDA工作流程中的I/O瓶頸。具體地,一些實施例利用了并發(fā)計算范例的優(yōu)點,其中數(shù)據(jù)在各階段之間增量式傳播,以及其中在連續(xù)階段之間的數(shù)據(jù)處理和這些階段之間的I/O并發(fā)地執(zhí)行。具體地,一些實施例可以生成包含模板集合中的唯一模板的模板數(shù)據(jù)庫。在操作期間,一個實施例可以確定布局的模板集合。接下來,系統(tǒng)可以基于模板集合的空間連貫順序來確定處理進度表。接下來,系統(tǒng)可以根據(jù)空間連貫的處理進度表來處理模板。以空間連貫的順序來處理模板可以確保并發(fā)工作流程中的下游處理能夠最大化并發(fā)性,由此改善系統(tǒng)的整體性能。
文檔編號G06F17/50GK101794322SQ20091017491
公開日2010年8月4日 申請日期2009年10月29日 優(yōu)先權(quán)日2009年1月30日
發(fā)明者D·D·亨格, M·G·布拉舍, M·L·里格, M·伯安, N·V·貝克哈齊, T·B·哈爾 申請人:新思科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1