TWI468961B - 用於實施多使用者快取的參數化單元之方法及系統 - Google Patents
用於實施多使用者快取的參數化單元之方法及系統 Download PDFInfo
- Publication number
- TWI468961B TWI468961B TW98133744A TW98133744A TWI468961B TW I468961 B TWI468961 B TW I468961B TW 98133744 A TW98133744 A TW 98133744A TW 98133744 A TW98133744 A TW 98133744A TW I468961 B TWI468961 B TW I468961B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- data
- parameterized
- counter
- index
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係關於積體電路(IC)設計,且特定言之,係關於一種用於實施IC設計之多使用者快取的參數化單元之系統及方法。
參數化單元(pcell)在設計全定製晶片設計中已經使用了二十多年。每次開啟該設計都評估該等參數化單元。參數化單元之高動態性質引入該等設計小組可能想要控制之變異性之一等級。
多年來,參數化單元之使用已經顯示出三個主要缺點。第一個缺點為長設計開啟時間。含有參數化單元之設計經常因為評估該等參數化單元內之碼以便產生該參數化單元設計資料而被緩慢開啟。第二個缺點為缺乏該等參數化單元之讀取互操作性。當以某種專屬語言(如SKILL)撰寫該參數化單元碼時,未鏈結該正確參數化單元評估器之第三方應用程式不能評估該等參數化單元,且因此不能存取該參數化單元設計資料。第三個缺點為缺乏該等參數化單元之寫入互操作性。第三方應用程式很難正確編輯一含有未評估參數化單元之設計。
已經提出幾種部分解決一些此等缺點之解決方案。一種解決方案為將該設計轉譯為一完全經評估、與工具無關之表示法,例如GDSII。第二種解決方案為建立該設計之一完整拷貝。在該拷貝內,參數化單元之所有執行個體被重新製造至一規則單元(例如,該規則單元為該參數化單元執行個體副主檔之一拷貝)之執行個體中。此程序也被稱為「凍結」該設計。該解決方案之一變體利用該等參數化單元參數之一保存版本替代在定位之該等副主檔,以致能以後「解凍」該設計。另一解決方案由CiraNova of Santa Clara,CA提供。從在該環境中之該第三方應用程式之行為之外部觀察來看,此解決方案提供一低效能快取。例如,在Virtuoso環境中,它將所有SKILL參數化單元執行個體替代為CiraNova參數化單元執行個體。CiraNova參數化單元外掛程式之作用是在磁碟上快取經評估參數化單元且重新使用來自磁碟之該等參數化單元。該評估係藉由以下完成:調用一子程序(例如,一DFII子程序),以一次評估一個參數化單元副主檔、將它儲存在磁碟上作為在一暫時庫/單元/視圖中之一規則主檔,接著將該佈局檔案拷貝在一快取記憶體內。該重新使用係藉由以下完成:將該快取的規則主檔植入至一暫時庫/單元/視圖,當利用一組新參數評估一參數化單元時,開啟該庫/單元/視圖,且將該設計資料自該庫/單元/視圖拷貝至由如OpenAccess(可從www.si2.org
取得)之一系統建立之參數化單元副主檔。
一種較佳解決方案為容許參數化單元副主檔內容在原生應用程式內被評估之後的快取。此等副主檔被持久地保存在一快取記憶體中之磁碟上。為了限制磁碟輸入及輸出(IO)之數目,同一參數化單元之副主檔被儲存在同一二進位檔案快取記憶體中。當呼叫該參數化單元評估器以產生一新參數化單元變體時,首先諮詢該快取記憶體。若在該快取記憶體中該資料已經可用,則直接利用該快取資料植入該副主檔。否則,發生該規則副主檔評估程序,且產生該等副主檔元素以植入該變體。於同在申請中之美國專利申請案第11/769,568中描述一種用於實施此類快取參數化單元之方法,其全文以引用的方式併入本文中。
當使用快取參數化單元時,經常期望容許多使用者同時使用或存取該快取記憶體。這是因為當執行設計活動時有可能多個實體(如(例如)程序、節點、任務、使用者與執行緒)及設計群組將需要同時存取同一組之參數化單元資料。然而,很有可能該等實體及設計群組之一些或全部還將對該參數化單元資料作修改。結果,若授予多個使用者同時存取,則可能發生重要的同時控制及一致性問題。例如,考慮若一第一及一第二使用者都從該參數化單元快取記憶體同時存取同一資料項。若第一同時使用者對該參數化單元資料作修改,且該第二同時使用者並不知道已經發生此一修改,則該第二同時使用者可能操作於無效及/或不一致的資料上。
本發明之一些實施例提供一種改良的參數化單元快取之方法,其致能安全且有效率地多使用者存取參數化單元快取記憶體。根據本發明之一些實施例,結合計數器而使用鎖定結構以提供參數化單元快取記憶體之多使用者支援。當發生對快取的參數化單元資料之一修改時,對該(等)相應計數器作一更新。檢查該等計數器之該(等)值,以決定由一實體操作於其上之資料項是否仍然有效,或者是否另一同時實體已經對該資料作了改變。特別重要的是對於該等快取檔案引入之兩種類型計數器之間的相互作用,且在一些實施例中它們的複製橫跨兩個檔案。在一多使用者共用的快取存取設定中,此於最佳化各種檔案之鎖定時間且從而最小化同步化此等檔案之效能影響中起重要作用。
在實施方式、圖式及申請專利範圍中描述本發明之其他及額外目的、特徵及優點。
本發明提供一種改良之用於容許多使用者同時存取在一快取記憶體(在下文中稱為「快取的參數化單元資料」、「快取的快速參數化單元資料」、「快取的參數化單元」或「持久的參數化單元」)內之參數化單元資料之機構及方法。根據本發明之一些實施例,結合計數器而使用鎖定結構來提供快取之參數化單元之多使用者支援。當發生對快取的參數化單元資料之一修改時,係對該(等)適當計數器作一更新。檢查該等計數器之該(等)值以決定由一實體操作於其上之該資料項是否仍然有效或者是否另一同時實體已經對該資料作了改變。
一pcell或參數化單元可實施為一經修飾的OpenAccess設計(oaDesign),其具有基於一組參數動態建立之內容。一參數化單元之主要屬性是一給定語言形式之一小段碼、參數類型及預設值的一列表及一評估器。一參數化單元執行個體為一參數化單元之一執行個體,例如,利用參數化單元參數值修飾之一執行個體。評估一參數化單元執行個體意味著在該評估器的幫助下依據該等執行個體參數評估該參數化單元碼以便產生一新的具有真實資料之非持久oaDesign;此新的oaDesign通常被稱為一副主檔。
因為已知的參數化單元快取方法沒有安全地容許同時讀取寫入存取該共同共用之快速參數化單元快取記憶體的容量,所以它們無法提供有效率且有效力的支援該快取記憶體之多個使用者的機構。為了解釋,考慮在一多使用者共用快取記憶體的情況下可能出現的一問題之以下實例。假設有兩個使用者(A及B)試圖共用一共同快取記憶體(例如,其是基於預先存在/由他們其中之一從一先前會期預先保存的資料),且該兩個使用者試圖按時間順序利用以下步驟同時寫入至該快取記憶體(或若一使用者當另一使用者已經讀取該索引檔案且以後將讀取該等副主檔內容時寫入):
1.使用者A啟動該設計應用程式且開啟一小設計「cv1」(即,藉由讀取該快取的索引檔案及少數副主檔)。
2.使用者B啟動該設計應用程式且開啟一小設計「cv2」(即,也藉由讀取同一快取的索引檔案及少數副主檔)。
3.使用者B編輯該設計「cv2」建立某個新副主檔、自該快取記憶體刪除一些副主檔及/或更新一些副主檔/超主檔內容。接著,使用者B在磁碟上更新(重新保存)。此步驟也更新該快取的索引檔案。
4.使用者A(在步驟「1」中啟動之同一舊會期中)現嘗試開啟另一現有的單元視圖cv3(含有對應於該等快取的副主檔之一些參數化單元執行個體)。此步驟將嘗試利用先前讀取的該等副主檔內容之快取索引檔案之位址存取一些預先保存的副主檔。
此時,因為已經在磁碟上(於步驟「3」中由使用者「B」)更新該快取記憶體,所以因由使用者A存取之資料與該等副主檔資料檔案之該等最新位址不同步而存在一問題。因此,該使用者A結束自該等副主檔資料檔案中之該等錯誤位置讀取,導致該參數化單元快取基礎設施之意外錯誤。
由於此限制,從事於一頂層設計(或設計庫)之不同單元的多個設計者可能被迫使用他們自己的私人快取記憶體目錄。此等單一私人快取記憶體目錄不能自給自足而含有包含在該頂層階層式設計中之所有副主檔。這意味著若假設利用一第三方工具(例如,一驗證工具)使用該頂層設計,則一方將需要藉由將整個頂層設計重新開啟至所有葉層而重新產生完整的快取資料且完整地保存該參數化單元快取記憶體。
本發明之實施例提供一種能支援參數化單元之多使用者共用的快取之機構。如圖1中所示,這意味著多個使用者310及312可達成同時讀取寫入存取在一快取記憶體240內之快取的參數化單元資料245。根據一些實施例,這藉由提供進階檔案層同時控制302而實施,該進階檔案層同時控制包括與伴隨計數器320之快取的參數化單元資訊245關聯之一組鎖定機構。
為了描述本發明之一些實例性實施例,現將提供一用於實施參數化單元快取之一般方法的一描述。應指出可利用任何參數化單元快取實施以實施本發明,且並不受限於本文所述之該說明方法。
根據該說明性參數化單元快取方法,參數化單元副主檔內容在原生應用程式內被評估之後被快取。此等副主檔被持久地保存在磁碟上之一快取記憶體中。為了限制磁碟輸入及輸出(IO)之數目,同一參數化單元之所有副主檔被儲存在同一二進位檔案快取記憶體中。當呼叫該參數化單元評估器以產生一新的參數化單元變體時,首先諮詢該快取記憶體。若在該快取記憶體中該資料已經可用,則直接利用該快取資料植入該副主檔。否則,發生該規則副主檔評估程序,且產生該等副主檔元素以植入該變體。藉由組合參數化單元副主檔之選擇性重新評估及智慧快取技術,因為它只有將該等參數化單元評估一次,所以本發明大大加快含有許多小參數化單元或一些大參數化單元之一設計的啟動時間。在一實施例中,該應用程式為一電子設計自動化(EDA)應用程式,如可從Cadence Design Systems of San Jose,California獲得之Virtuoso應用程式。在一實施例中,一參數化單元評估器包含例如C++碼之軟體碼之一部分,其負責相對於一組給定參數填充一參數化單元副主檔。該等參數當建立一參數化單元之一執行個體時由該使用者指定。呼叫該參數化單元評估器,以藉由依據該等執行個體參數評估該參數化單元之該碼(例如,在Virtuoso的情況下之SKILL碼)填充該執行個體之該副主檔。
可以複數種不同方式實施一參數化單元評估器。例如,作為一靜態鏈結編譯庫,該參數化單元評估器被編譯成一藉由利用它靜態鏈結至利用它之應用程式之庫。在一實施例中,該設計平臺之應用程式為一Virtuoso應用程式。在另一實例中,作為一動態鏈結編譯庫,該參數化單元評估器被編譯成一動態鏈結至利用它之應用程式之庫。在另一實施例中,該應用程式為一第三方應用程式。
圖2說明一具有一完整參數化單元評估器之方塊圖,例如,一完整Virtuoso參數化單元評估器。該完整參數化單元評估器支援快取的參數化單元副主檔內容。這被實施為在該參數化單元外掛程式內之一模組。此模組負責基於該等使用者設定填充該快取記憶體及存取該快取記憶體,且評估由該應用程式傳遞之若干組參數。另外,該快取記憶體本身被實施為一組儲存於磁碟上在該二進位結構內或在一不同位置之二進位檔案。每個二進位檔案可被用於一參數化單元主檔,其也稱為一參數化單元快取檔案。因此,一參數化單元主檔之許多副主檔之內容被儲存在一唯一參數化單元快取檔案內。還有一二進位索引檔案,其列出儲存在該參數化單元二進位檔案中之該等評估參數化單元連同用於評估該等及一些索引/偏移以找出來自該快取的參數化單元檔案之該參數化單元資料之該等參數值。此第二檔案被稱為該參數化單元索引檔案。將一給定參數化單元之所有副主檔儲存在一檔案內可大致減少當存取該快取記憶體時所需之該等磁碟IO。所有該等檔案(例如,快取的參數化單元及其索引)被儲存在與該參數化單元之該等不同執行個體被定位之該單元有關的一位置中。
該設計資料庫對於一給定參數組評估一參數化單元執行個體以便填充由該設計資料庫產生之一副主檔。若該等使用者設定使得該副主檔成為所需要,則該完整參數化單元評估器可首先存取該參數化單元索引檔案以找出在之前該相同參數化單元是否已經被評估且被持久保存。若是這樣,則獲得在該參數化單元快取檔案中讀取之資料之該索引及數量。此資訊連同該參數化單元快取檔案指標被傳遞給一新設計功能,其讀取該資料量以直接填充該參數化單元副主檔。在該完整參數化單元評估器沒有找到來自該參數化單元索引檔案之該正確副主檔或被該使用者設定迫使重新評估該參數化單元的情況下,它可獲得由該設計平臺之該評估器評估之該參數化單元碼。
圖2包含一設計平臺110、一設計資料庫120、一完整參數化單元評估器130及儲存器140。該完整參數化單元評估器130包含持久的參數化單元135。該儲存器包含一用於儲存參數化單元145之快取記憶體。該設計平臺110分析且評估一具有參數化單元之晶片設計。還可從一設計資料庫120請求額外設計資訊以便正確且有效率地分析及評估一晶片設計。一關於該參數化單元之該設計之資訊的請求可被傳送至該設計資料庫120。另外,該平臺可直接獲得該資料庫中之該資訊。該設計資料庫120包含可輔助分析且模擬該晶片設計之資訊。在一方法中,該設計資料庫為一OpenAccess資料庫,但是取決於該應用程式可利用任何資料庫。該資料庫120可需要位於遠端之資訊。該設計資料庫檢索在儲存器140中之設計資訊。與該參數化單元有關的資訊可被傳送至一不同位置,其中需要參數化單元設計資訊之該設計資料庫120提供該請求及/或設計給該完整參數化單元評估器。
該完整參數化單元評估器130決定該參數化單元參數資訊是否位於該持久的參數化單元快取記憶體(在磁碟儲存器上)內。該等持久的參數化單元容許幾乎沒有延遲使該參數化單元設計資訊提供給該平臺。若不是這樣,則該參數化單元設計可能需要被評估且接著在使用者請求下以後被儲存為持久的參數化單元。在該快取記憶體145中之其他參數化單元資訊可能可用。該等參數化單元資訊被檢索且被儲存為持久的參數化單元且提供給該平臺。若該參數化單元已經在該快取記憶體中或為持久的參數化單元135,則該資訊在沒有被該評估器分析的情況下被提供給該設計平臺。
圖3說明一方塊圖,其中可自一第三方應用程式使用該快取的參數化單元。該快取的參數化單元可由鏈結至該參數化單元外掛程式之該第三方應用程式存取。在一方法中,由於不能從該外掛程式呼叫該評估器(例如,沒有新副主檔之改變或建立),所以該第三方應用程式不能評估一參數化單元。在另一方法中,第三方應用程式重新使用先前由一EDA設計平臺(如Virtuoso)快取之參數化單元。
圖3包含一第三方應用程式210、一設計資料庫220、一參數化單元外掛程式230及儲存器240。該儲存器包含用於儲存快取的參數化單元245之一部分且該參數化單元外掛程式包含持久的參數化單元235。該第三方應用程式210運行形式一專屬語言之程序。它與該設計資料庫220通信以分析且評估晶片設計。該設計資料庫220可以一公開得到的格式,如OpenAccess。在另一實施中,該設計資料庫220還以容許該應用程式與資料庫之間之通信之專屬語言。當該第三方應用程式210需要來自該設計資料庫220之參數化單元資訊時,它與該參數化單元外掛程式230通信。該參數化單元外掛程式檢查在儲存器中之該參數化單元資訊且試圖從該儲存器240檢索該快取的參數化單元245。若找到,則該資訊被提供給該參數化單元外掛程式230,該參數化單元外掛程式從而被提供給該應用程式。若它不是一持久的參數化單元或不在該儲存器中,則該應用程式將不會存取參數化單元副主檔設計資料。對於與該參數化單元無關的設計資訊,該設計資料庫220可直接與該應用程式及儲存器240通信。應指出,在一些實施例中,該參數化單元外掛程式總是被縮減。
圖4說明實例性鎖定及檔案結構,可利用該鎖定及檔案結構實施該多使用者快取發明。如此圖式中所示,利用參數化單元資料檔案408及一參數化單元索引檔案406快取參數化單元資料。該參數化單元資料檔案包含具有每個超主檔之分離檔案的一檔案集合。根據一些實施例,該等單個參數化單元資料檔案每個具有50M位元組的一檔案大小限制。這意味著若對應於一特定超主檔之副主檔資料小於50M位元組,則該超主檔將正好有一快取的資料檔案。若該超主檔超過50M位元組,則每個超主檔之該快取的資料將被分割成多個檔案。該等單個檔案將含有例如由一SKILL評估器在記憶體中產生之每個參數化單元副主檔之該等實際內容。
該索引檔案406提供該等參數化單元資料檔案之映射,例如,用於參數化單元變體之映射。可由該索引檔案提供之一功能為提供該等參數化單元資料檔案之位址映射。
為了支援一多使用者共用快取,該索引檔案406將包含該等快取的資料檔案408及該索引檔案406兩者的計數器410a。根據本發明之一些實施例,在該等快取的檔案中將有至少兩種類型計數器,用於同步化由多個使用者/程序在一進行中的會期期間同時執行的該等更新。一第一類型計數器將追蹤對該索引檔案406所作的該等改變。一第二類型計數器將追蹤對該等參數化單元資料檔案408所作的該等改變。該等資料檔案它們本身還將包含計數器410b。
運作中,每一次修改該索引檔案,該索引檔案之該計數器將被增量。同樣地,每一次更新一資料檔案408,與該更新的資料檔案關聯的該特定計數器也被增量。以這種方式,任何使用者可立即決定由該使用者存取之該資料是否已經被另一使用者修改。可藉由儲存正在操作於其上之該資料的該計數器值以及在一確定之前再次檢查看看該計數器值是否已經由另一使用者更新而做出此決定。若該計數器值因為該操作之開始而已經被改變,則先前載入的所關注之該資料檔案不再有效,且將需要由該使用者重新載入。然而,若在該確定時之該計數器值匹配該儲存的計數器值,則因為它保證沒有其他使用者修改過該資料檔案,所以可進行該確定。
鎖定結構302被用於在讀取及寫入操作期間鎖定該索引檔案406及參數化單元資料檔案408。將利用該等適當讀取寫入鎖鎖定被開啟以用於讀取、寫入或更新/附加模式之所有該等檔案,以進行檔案同時控制。根據一些實施例,讀取及寫入鎖都被運用成鎖定結構302。在讀取一檔案之前,一使用者必須獲得對該檔案的一讀取鎖。該讀取鎖為一共用鎖定結構,其容許多個使用者/實體同時持有該讀取鎖。同樣地,在寫入一檔案之前,該使用者必須獲得對該檔案的一寫入鎖。與該讀取鎖不同,該寫入鎖為一專用鎖,其僅容許一單一使用者/實體於任何時候在一給定檔案上執行寫入操作。
本發明之實施例利用一堅固的鎖定機制,其也最小化對該設計開啟時間的效能影響。為了實現此,該等鎖被保持一最小持續時間以改良同時性及縮減該等檔案存取之序列化。例如,在至少一實施例中,在磁碟上已經更新該超主檔之該等快取的副主檔且關閉該檔案之後立即釋放對一參數化單元副主檔資料檔案的寫入鎖。作為另一實例,在自其參數化單元資料檔案讀取一副主檔之後立即釋放一讀取鎖。
該等計數器及該等鎖定機構被用於確保參數化單元快取資料完整性且保留由任何其他使用者在該快取記憶體中之任何同時更新。此係藉由對於相關快取記憶體檔案之更新增量該等計數器之該等值且對於快取記憶體讀取/寫入操作執行它們的最近值的檢查而實現。
圖5及6說明計數器如何可被併入到參數化單元資料檔案及參數化單元索引檔案中,其中圖5說明沒有該等計數器之該等檔案結構,且圖6顯示具有該等計數器之該等相同參數化單元檔案結構。
圖5說明一參數化單元索引檔案502及參數化單元資料檔案504及506(例如,如在可從Cadence Design Systems Inc. of San Jose,California獲得之Virtuoso快速參數化單元產品中所使用)。該參數化單元索引檔案502包含指向在該等參數化單元資料檔案504及506上之副主檔資料之該位置的項目。例如,項目510對應在參數化單元資料檔案504中之副主檔1之該位置(位置「#p」)。如上所指出,在一些實施例中,該等單個參數化單元資料檔案具有50M位元組的一檔案大小限制,其中若對應於一特定超主檔之副主檔資料大於一指定數量(例如,50M位元組),則例如利用儲存在該參數化單元索引檔案中之一<fileNum>屬性,每個超主檔之該快取的資料將被分割成多個檔案。該等單個檔案將含有例如由一SKILL評估器在記憶體中產生之每個參數化單元副主檔之該等實際內容。例如,此等單個檔案可被命名為<superLibName>_<superCellName>_<superViewName>[_<fileNum>].cds。
如圖6中所示,為了支援多使用者存取該共用快取記憶體,兩種類型計數器被放置到該等快取檔案中,用以同步化由多個使用者/實體執行之該等更新。資料檔案計數器614(在該圖式中識別為「<superCvCounter>」)被添加在該等超主檔特定副主檔資料檔案604及606中。將有一基於每個檔案而添加的此類計數器。若由於該等資料檔案的大小限制,一超主檔有一個以上的檔案,則每個檔案將具有儲存在它中的一分離計數器值。根據一些實施例,該資料檔案計數器614被儲存在其相應檔案之前4個位元組中,且當該各自副主檔資料檔案之每次更新時將進行增量。該資料檔案計數器值也被放置到該參數化單元索引檔案602中之項目中。除了在該副主檔資料檔案604及606中以外在該索引檔案602中該superCvCounter值之該複製促進更快地讀取該等資料檔案計數器值,這最小化在載入該索引檔案602期間檢查該快取記憶體中之任何增量副主檔檔案更新之該等狀態涉及的努力。因為該系統可避免分離讀取所有該等副主檔檔案而得此等值,所以達成此優點。
一索引計數器610(識別為「<indexCounter>」)被添加在該參數化單元索引檔案602中。當執行一操作時,該操作可例如基於對該參數化單元快取記憶體之一保存、寫入、更新或清除操作而改變該快取記憶體內之資料,該索引計數器610之該值被增量。根據一些實施例,該索引計數器610被儲存在該參數化單元索引檔案602之前4個位元組中。根據一些實施例,該資料檔案及索引計數器之各個被實施為一長度為4個位元組的無符號整數。
此文件現將描述用於例如在一評估呼叫(也稱為「onEval() call」)期間執行之自該參數化單元快取記憶體讀取一副主檔之本發明之一實施例。為了說明此程序,考慮有兩個參數化單元(pcA及pcB)及其關聯副主檔的情況。至少有三種儲存在該快速參數化單元目錄中之該等各自檔案中之計數器:
(i)索引計數器<indexC>:此計數器對應用於該索引檔案之該計數器。
(ii)pcA之superCvCounter<supCA>:1計數器對應該pcA參數化單元之該資料檔案計數器。
(iii)pcB之superCvCounter<supCB>:此計數器對應該pcB參數化單元之該資料檔案計數器。
在一程序/會期期間呼叫首次onEval()時,從該磁碟讀取該參數化單元索引檔案且其內容被植入在該記憶體中。圖7說明根據本發明之一些實施例之用於讀取該索引檔案之一程序的一流程圖。該程序藉由在該索引檔案上放置一讀取鎖而開始(702)。該讀取鎖為一共用鎖,其容許其他人也同時自該索引檔案讀取。
接著,獲得存在於該索引檔案中之該等計數器值(704)。為了此實例的目的,自該索引檔案獲得之該等計數器值包含該索引計數器<IndexC>、參數化單元pcA之該計數器值<supCA>及參數化單元pcB之該計數器值<supCB>。該等獲得的計數器值被儲存在一虛擬記憶體(VM)中,該虛擬記憶體提供相連工作記憶體的外觀,然而實際上該實際記憶體在實體上可能片段的且甚至可能溢出到磁片儲存器(706)。例如,可利用該初始索引計數器值之一變數initIC儲存indexC之該值(initIC=indexC)。可利用該pcA參數化單元之一變數initPCA儲存參數化單元pcA之該計數器值(initPCA=supCA)。同樣地,可利用該pcB參數化單元之一變數initPCB儲存參數化單元pcB之該計數器值(initPCB=supCB)。
該程序執行讀取在虛擬記憶體中之該索引檔案(708)。此動作被用於自該索引檔案讀取該映射及位置資訊。一旦已經從該索引檔案讀取該所需資訊,在動作702期間釋放該獲得之讀取鎖(710)。
基於來自該索引檔案之該資訊,執行在該快取記憶體中存在該所需的唯一副主檔之一檢查。在該索引檔案中檢查該副主檔之存在,該索引檔案已經基於圖7中所作之該動作被載入到記憶體中。若在該索引檔案中找到該副主檔,則利用圖8之該程序將它從該相應參數化單元資料檔案讀取。圖8之該程序藉由在所關注之該副主檔檔案上放置一讀取鎖而開始(802)。例如,假設有意圖讀取在磁碟上之該快取記憶體中之該pcA參數化單元之一唯一副主檔。因此,一共用讀取鎖被放置在該pcA參數化單元之該副主檔檔案(lib_pcA_view.cds)上。該共用鎖意味著其他使用者/程序也可同時獲得一讀取鎖且讀取此副主檔檔案之該等內容。
接著,讀取所關注之該副主檔之該計數器值(804)。在本說明性實例中,假設有意圖讀取在磁碟上之該快取記憶體中之該pcA參數化單元之一唯一副主檔。因此,讀取參數化單元pcA之該計數器值(supCVA)。此supCVA值係自pcA之該參數化單元資料檔案讀取而獲得。
接著依據用於該參數化單元之該新獲得的計數器值檢查在圖7之該程序期間讀取之該初始計數器值(806)。若該等值匹配,則清楚的是,因為原始存取該索引檔案且獲得該參數化單元資料檔案之該位址,所以沒有其他使用者或程序更新該pcA參數化單元。因此,該使用者/程序可假設從該pcA參數化單元之該識別的參數化單元資料檔案讀取該副主檔資料是安全的(808)。在已經讀取該參數化單元資料之後,可釋放對pcA之該參數化單元資料檔案的該讀取鎖(810)。
若在圖7之該程序期間讀取之該初始計數器值不匹配該參數化單元之該新獲得的計數器值,則可假設另一使用者/程序在期中已經改變或更新該參數化單元資料,且因此自該索引檔案讀取之該等原始值可能不再有效。因此,該使用者/程序將需要再次重新載入該等值以確保正在操作於該資料之最近版本上。此時將釋放該鎖(812)。此處這樣做是為了解決一潛在的鎖死情況。因為例如該lib_pcA_view.cds檔案被讀取鎖定,若另一實體或使用者正在寫入該快取記憶體中之其他檔案且已經鎖定該索引檔案,則他們在完成該保存操作以釋放對該索引檔案之該鎖之前現在可能等待獲得對同一檔案之一寫入鎖,所以這是有用的。接著重新載入該索引檔案(814)。這將提供關於該等參數化單元資料檔案之最新映射及資訊。此後,重新啟動圖8之該程序以讀取該參數化單元資料檔案(816)。
圖9說明一用於將資料保存在該參數化單元快取記憶體內之程序。當建立、更新、修改或刪除該快取記憶體中之資料項時可執行此類型保存操作。最初,獲得在該索引檔案上的一寫入鎖(902)。接著,從磁碟上之該索引檔案讀取該索引計數器之最近值(904)。
接著依據該最新獲得的索引計數器值檢查在圖7之該程序期間讀取之該初始計數器值(906)。若在圖7之該程序期間讀取之該初始計數器值不匹配該最新獲得的索引計數器值,則可假設該另一使用者/程序在期中已經改變或更新該索引檔案,且因此自該索引檔案讀取之該等原始值可能不再有效。因此,該使用者/程序將需要重新載入該索引檔案以確保正在操作於該資料之最近版本(922)。還將更新該局部儲存之索引計數器值之值(924)。接著該程序將進行以增量在該索引檔案中之該索引計數器(908)。因為將發生對在該參數化單元快取記憶體中之該資料之一改變,所以正在更新該索引計數器,且因此可能改變該索引檔案中之映射值。
接著對於記憶體中之每個超主檔執行下一組動作(910)。首先,獲得在正在操作於其上之該(等)參數化單元資料檔案上之一寫入鎖且以某種方式保存(912)。例如,若需要寫入每個超主檔之至少一新副主檔的資料,或更新該現有檔案以進行磁碟上之任何超主檔更新,則將獲得該寫入鎖。假設與pcA關聯之該參數化單元資料檔案(lib_pcA_view.cds)需要該保存操作。接著,在記憶體中之該參數化單元資料檔案之該計數器被增量且保存(supCV=initPC++)(914)。此時,對於該等各自副主檔執行一保存操作(916)。此時,在已經處理該超主檔之後更新在該索引檔案中之該適當資料檔案計數器(918)。此後,可釋放對該參數化單元資料檔案之該寫入鎖(920)。
接著可釋放對該索引檔案之該寫入鎖(920)。此時,其他實體及使用者接著可開始寫入到該索引檔案。
如上所指出,該等超主檔特定檔案具有分離計數器。因此,若pcA的副主檔超過50M位元組且被儲存在2個分離檔案中,則將有它們各自參數化單元資料檔案之supCA及supCA_2。該等計數器值將同時被儲存在該索引檔案中以及它們各自參數化單元資料檔案之開始。若更新多個檔案,則本文所述該當前實例將涉及鎖定及保存至多個檔案。
對於另一實例,考慮當(由使用者A所嘗試)已經載入於虛擬記憶體中之該索引檔案中不存在該所需副主檔時的情況。在該實例性情況中,有一種可能性是,可能已經由某個其他使用者(使用者B)在磁碟上快取該副主檔。一種選擇是除非如上所述使用者A在該參數化單元快取記憶體上執行一重新載入/同步操作或它基於一識別的計數器不匹配被讀取,否則忽略它。
另一種選擇是檢查所關注之該超主檔在該虛擬記憶體中之該索引檔案中之一項目的存在。若此項目不存在,則決定該相應資料檔案是否存在於磁碟上。例如,若在虛擬記憶體中之該索引檔案中沒有超主檔「pcA」之項目,則檢查lib_pcA_view.cds檔案是否存在於磁碟上。若是這樣,則從磁碟重新載入/重新同步該索引檔案。可添加一檢查以避免由於某些不可預見之損壞的資料而導致的任何無限遞迴。這樣做是為了決定在虛擬記憶體中該索引檔案中現在是否有超主檔「pcA」之一項目。若是這樣,則遞迴呼叫該程序。
在如該快取記憶體之保存、清除及重新產生的操作期間運用該同時控制機制。在保存或更新一設計之該等操作/動作期間利用該等最近內容更新/保存該等參數化單元檔案。在磁碟上之該參數化單元快取記憶體之保存/更新期間,追蹤且更新該等額外/新變體使得該快取記憶體變成所有使用者之該超集,且不僅僅是任何單一使用者之快照。對於多使用者操作,一寫入鎖還將被放置在該參數化單元索引檔案上,如上所討論。
為了與同時藉由某個其他使用者之任何其他潛在更新同步化,該索引計數器值被用於決定是否需要重新載入該索引檔案,且朝著該參數化單元快取記憶體操作進行。可執行一增量保存以保留由其他使用者添加的該資料且利用它以減少該保存時間。
對於第三方應用程式之外掛程式,上述該快取讀取操作可被用於識別一預先評估之快取的副主檔。對於該讀取操作,該外掛程式還將檢查有關該onEval()函數之調用的該等supCVCounter值。若該supCVCounter值是過時的,則該外掛程式將在存取該所需副主檔之前從磁碟重新載入/同步該參數化單元索引檔案。
可執行最佳化以減少當獲得該等讀取及寫入鎖時的等待時間。可最佳化在獲得一讀取寫入鎖期間之待時間,而得在不同情況下對該終端使用者的最小影響。
例如,考慮一第一情況,其中一應用程式(例如,一DFII/Virtuoso應用程式)具有SKILL語言評估能力,同時獲得對該參數化單元資料檔案之該讀取鎖。若該鎖由於在該檔案上一現有之寫入鎖而不能被放置在該參數化單元資料檔案上,則有兩種選擇。第一種選擇是等待該檔案上之該現有寫入鎖被釋放。第二種選擇是繼續且評估該各自副主檔。根據一些實施例,由於此方法將更快而不是等待在該檔案中寫入潛在大量資料,所以較佳地是藉由利用該可用SKILL評估器而利用該第二種選擇。
作為另一實例,考慮一不具有該SKILL評估能力之外掛程式的情況,其從事於獲得對該參數化單元資料檔案之該讀取鎖的該程序。若該鎖由於該檔案上之一現有寫入鎖而不能被放置在該參數化單元資料檔案上,則將發生等待該寫入鎖被釋放。在該程序放棄該等待週期之前可外加一超時。當該程序等待該鎖時,一訊息將以一間歇性基礎被提供給該使用者,使得該使用者意識到該緩慢之速度,且若頻繁,則可採取任何動作以避免在一共用快取情況下之鎖定衝突。
另一情況可出現於保存該參數化單元快取記憶體時。若不能獲得對該索引檔案之該寫入鎖,則該程序將等待一超時週期且將顯示一適當訊息。若發生該超時,則將略過該保存程序且在磁碟上將沒有檔案被更新。若當寫入一參數化單元快取記憶體時不能獲得對該參數化單元資料檔案之該寫入鎖,則有可能這是由於在該檔案上已經存在該讀取鎖。該程序將等待該讀取鎖且接著獲得該寫入鎖被釋放。然而,在最壞情況下,若在超時之前不能獲得該寫入鎖(例如,若具有一對於一參數化單元資料檔案之讀取鎖的另一程序已經被暫時中止),則這可導致在該參數化單元資料庫中的資料訛誤。將藉由復原回到在此保存操作中已經更新至該時之該等資料檔案的先前版本解決此問題,該復原可藉由維護由該當前保存操作保存之該等資料檔案之備份而實施,該等備份可被用於復原回到該原始索引檔案以及該等先前存在的資料檔案。接著,該保存操作不成功的一適當訊息將被遞送至該使用者。
因此,已經描述一種改良方法,其對參數化單元快取記憶體提供安全且有效率的多使用者能力。具有同時讀取&寫入存取能力之該多使用者共用的快取記憶體提供超過利用一單一使用者私人快取記憶體之先前解決方案的以下幾個優點。例如,一優點是不需要重新產生用於一全晶片/區塊層級驗證運行之該快取記憶體,其提供改良的佈局設計生產能力。在涉及多使用者之一佈局設計專案的許多情況下,任何一個使用者很少看見該整個設計階層。許多使用者看見該整體設計之較小子集。若每個使用者具有一私人局部快取記憶體,則任何一個快取記憶體將僅為該整個設計之一子集。但是此整個設計通過包含驗證及串流輸出的該等動作之該實際流程。其隱含:為了確保第三方互操作性,可能需要產生一分離的全植入私人快取記憶體所有單個快取記憶體之該超集之均等物。這意味著還可能需要維護該超集快取記憶體。跨越多使用者之共用讀取寫入致能快取記憶體之使用將避免該問題,且節省在利用一第三方工具運行之每個驗證之前重新產生該快取記憶體所需的時間,其將提供更好的佈局設計生產能力。
此外,該方法將節省儲存空間。在利用一多使用者共用快取記憶體的情況下,若一使用者已經執行該評估,則所有其他使用者可立即利用它且從它受益。該等使用者不需要將同一副主檔之複製拷貝保持在他們單個局部快取記憶體目錄中,其將導致明顯節省磁碟空間利用。
圖10為適合於實施本發明之一實施例之一說明性計算系統1400的一方塊圖。電腦系統1400包含一匯流排1406或用於通信資訊之其他通信機構,其互連子系統與裝置,如處理器1407、系統記憶體1408(例如,RAM)、靜態儲存裝置1409(例如,ROM)、磁碟機1410(例如,磁性或光學)、通信介面1414(例如,數據機或乙太網路卡)、顯示器1411(例如,CRT或LCD)、輸入裝置1412(例如,鍵盤)及游標控制。
根據本發明之一實施例,電腦系統1400藉由處理器1407執行特定操作,該處理器執行包含在系統記憶體1408中之一或多個指令之一或多個序列。此類等指令可自另一電腦可讀取/可使用媒體(如靜態儲存裝置1409或磁碟機1410)被讀取至系統記憶體1408中。在替代性實施例中,硬佈線電路可被用於替代或組合軟體指令以實施本發明。因此,本發明之實施例並不限於硬體電路及/或軟體之任何特定組合。在一實施例中,該術語「邏輯」應意為用於實施本發明之全部或一部分之軟體或硬體之任何組合。
如本文所使用之該術語「電腦可讀取媒體」或「電腦可使用媒體」是指參與提供指令給處理器1407以用於執行之任何媒體。此一媒體可採用許多形式,其包含但不限於非揮發性媒體及揮發性媒體。非揮發性媒體包含(例如)光碟或磁碟,如磁碟機1410。揮發性媒體包含動態記憶體,如系統記憶體1408。
電腦可讀取媒體之常見形式包含(例如)軟碟、可撓性碟、硬碟、磁帶、任何其他磁性媒體、CD-ROM、任何其
他光學媒體、打孔卡、紙帶、任何其他具有孔圖案之實體媒體、RAM、PROM、EPROM、FLASH-EPROM、任何其他記憶體晶片或記憶體匣,或者一電腦可自其讀取之任何其他媒體。
在本發明之一實施例中,用於實行本發明之該等指令之該等序列之執行係由一單一電腦系統1400執行。根據本發明之其他實施例,由通信鏈結1415耦合之兩個或更多電腦系統1400(例如,LAN、PSTN或無線網路)可彼此配合而執行用以實行本發明所需之該等指令之該等序列。
電腦系統1400可經由通信鏈結1415及通信介面1414發送及接收訊息、資料及指令(包含程式,即應用程式碼)。接收的程式碼可在它被接收時由處理器1407執行,及/或儲存在磁碟機1410或其他非揮發性儲存器中用於以後執行。電腦系統1400亦可以經由一資料介面1433存取位在一計算系統1431上之一資料庫(DB)1432。
在以上說明書中,已經參考其特定實施例描述本發明。然而,顯而易見的是,在不偏離本發明之較廣精神及範疇的情況下可對其做各種修改及改變。例如,參考程序動作之一特定順序描述上述該等程序流程。然而,在不影響本發明之該範疇或操作的情況下可改變許多之該等所述程序動作的該順序。因此,該說明書及圖式應視為說明性而不是限制之意。
110...設計平臺
120...設計資料庫
130...完整參數化單元評估器
135...參數化單元
140...儲存器
145...參數化單元
210...第三方應用程式
220...設計資料庫
230...參數化單元外掛程式
235...參數化單元
240...儲存器
245...參數化單元
302...鎖定結構
310...電腦
312...電腦
402...索引鎖
404...資料檔案鎖
406...索引檔案
408...資料檔案
410a...計數器
410b...計數器
502...參數化單元索引檔案
504...參數化單元資料檔案
506...參數化單元資料檔案
510...項目
602...參數化單元索引檔案
604...副主檔資料檔案
606...副主檔資料檔案
610...索引計數器
614...資料檔案計數器
1400...電腦系統
1406...匯流排
1407‧‧‧處理器
1408‧‧‧主記憶體
1409‧‧‧唯讀記憶體
1410‧‧‧儲存裝置
1411‧‧‧顯示器
1412‧‧‧輸入裝置
1414‧‧‧通信介面
1415‧‧‧通信鏈結
1431‧‧‧計算系統
1432‧‧‧資料庫
1433‧‧‧資料介面
圖1說明一具有一完整Virtuoso參數化單元評估器之方塊圖;圖2說明一方塊圖,其中實施為一外掛程式之一縮減的Virtuoso參數化單元評估器可由一第三方應用程式使用;
圖3說明一方塊圖,其中可自一第三方應用程式使用該快取的參數化單元;
圖4說明實例性鎖定及檔案結構,可利用該鎖定及檔案結構實施該多使用者快取;
圖5說明沒有該等計數器的檔案結構;
圖6說明具有計數器之該等相同參數化單元檔案結構;
圖7說明根據本發明之一些實施例之一種用於讀取該索引檔案之程序的一流程圖;
圖8說明一種用於自一參數化單元資料檔案讀取之程序;
圖9說明一種用於將資料保存在一參數化單元快取記憶體內之程序;及
圖10描繪一電腦化系統,在該電腦化系統上可實施一用於快取參數化單元之方法。
220...設計資料庫
240...儲存器
245...參數化單元
302...鎖定結構
310...電腦
312...電腦
Claims (20)
- 一種用於實施對一電子設計之快取的參數化資料之多使用者存取之系統,其包括:一非暫態電腦可存取儲存媒體,用於儲存一快取的參數化單元;一計算系統之至少一處理器,其使用至少下列項目以執行個別功能:一索引,用於參考該儲存媒體內之該快取的參數化單元,該快取的參數化單元包括一或多個表示該電子設計之一電路區塊之參數,該一或多個參數已經根據一或多個執行個體(instance)參數評估;一或多個鎖定結構,用於至少部分基於一準則至少鎖定對該快取的參數化單元之讀取存取;一索引計數器,其追蹤對該索引之一或多個第一更新;及一資料計數器,其追蹤對已被快取的參數化單元之一或多個第二更新。
- 如請求項1之系統,其中在該索引計數器之該位置複製該資料計數器。
- 如請求項1之系統,其中該索引計數器位於該索引中。
- 如請求項1之系統,其中該資料計數器位於一資料檔案中,該資料檔案包括關於該已被快取的參數化單元之資訊。
- 如請求項1之系統,其中該一或多個鎖定結構包括一或 多個專用寫入鎖及一或多個非專用讀取鎖。
- 一種用於實施對一電子設計之快取的參數化單元資料之多使用者存取之方法,其包括:使用一計算系統之至少一處理器以執行一程序,該程序包含:至少部分地基於一準則至少鎖定一快取的參數化單元之讀取存取且獲得該快取的參數化單元之映射資訊,其中該快取的參數化單元包括一或多個表示該電子設計之一電路區塊之參數,該一或多個參數已經根據一或多個執行個體(instance)參數評估;獲得一或多個對應於該已被快取的參數化單元之計數器值;檢查該一或多個計數器值以決定是否應存取該已被快取的參數化單元之資料;當該一或多個計數器值指示可信任該快取的參數化單元資料,則為該參數化單元存取該快取的參數化單元資料;及當該一或多個計數器值指示不可信任該快取的參數化單元資料,則重新獲得該參數化單元之該映射資訊。
- 如請求項6之方法,其中存取一索引以獲得該映射資訊。
- 如請求項7之方法,其中該一或多個計數器包括一索引計數器,該索引計數器追蹤對該索引之一或多個改變。
- 如請求項7之方法,其中該一或多個計數器包括一資料 計數器,該資料計數器追蹤對該快取的參數化單元資料之諸改變。
- 如請求項7之方法,其中在該索引及該已被快取的參數化單元兩者處複製該一或多個計數器。
- 如請求項8之方法,其中該索引計數器位於該索引中。
- 如請求項6之方法,其中一資料計數器位於一資料檔案中,該資料檔案包括關於該快取的參數化單元之該快取的參數化單元資料。
- 如請求項6之方法,其中一或多個鎖定結構被用於至少鎖定該讀取存取且包括一或多個專用寫入鎖及若干非專用讀取鎖。
- 如請求項6之方法,其中在讀取該一或多個計數器值之前將一鎖放置在一索引上,其中在已經獲得該一或多個計數器值之後釋放該鎖。
- 如請求項6之方法,其中藉由將一寫入鎖放置在一索引檔案上而執行一更新。
- 如請求項6之方法,其中進一步包含當該一或多個計數器值匹配該參數化單元時更新一索引計數器。
- 如請求項6之方法,其進一步包含當該一或多個計數器值匹配該參數化單元時對於一超主檔執行以下步驟:獲得對該超主檔之一鎖;增量該超主檔之一計數器;保存該超主檔之資料;釋放對該超主檔之該鎖。
- 如請求項6之方法,其中當該快取的參數化單元資料超過一臨限值時,則該快取的參數化單元被分裂成多個檔案,且其中針對該等多個檔案之各者存在一分開的計數器。
- 一種計算系統,其具有用於實施如請求項6至18之任一項之方法的步驟之構件。
- 一種電腦程式產品,其用於實施如請求項6至18之任一項之方法的步驟,該電腦程式產品包含一非暫態電腦可讀取儲存媒體,該電腦可讀取媒體包括一指令序列,該指令序列當由一計算系統之一處理器執行時致使該處理器執行如請求項6至18之任一項之方法的步驟。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/262,514 US8364656B2 (en) | 2008-10-31 | 2008-10-31 | Method and system for implementing multiuser cached parameterized cells |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201019154A TW201019154A (en) | 2010-05-16 |
TWI468961B true TWI468961B (zh) | 2015-01-11 |
Family
ID=42132886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW98133744A TWI468961B (zh) | 2008-10-31 | 2009-10-05 | 用於實施多使用者快取的參數化單元之方法及系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8364656B2 (zh) |
TW (1) | TWI468961B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI802941B (zh) * | 2020-08-11 | 2023-05-21 | 南亞科技股份有限公司 | 標準單元建立方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347261B2 (en) * | 2009-09-10 | 2013-01-01 | Cadence Design Systems, Inc. | Method and system for implementing graphically editable parameterized cells |
US8312410B2 (en) * | 2010-03-05 | 2012-11-13 | Synopsys, Inc. | Parameterized cell caching in electronic design automation |
US8977863B1 (en) * | 2010-08-30 | 2015-03-10 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for dynamic protection of intellectual property in electronic circuit designs |
US8626917B2 (en) * | 2012-03-16 | 2014-01-07 | Sap Ag | File access using counter locking mechanism |
US9053289B1 (en) | 2012-04-12 | 2015-06-09 | Cadence Design Systems, Inc. | Method and system for implementing an improved interface for designing electronic layouts |
US8954903B1 (en) | 2013-10-28 | 2015-02-10 | Freescale Semiconductor, Inc. | Method of adding features to parameterized cells |
US9305127B2 (en) * | 2013-11-15 | 2016-04-05 | Synopsys Taiwan Co., LTD. | P-cell caching |
JP2015207218A (ja) * | 2014-04-22 | 2015-11-19 | 富士通株式会社 | 情報処理プログラム、情報処理装置およびバックアノテーション方法 |
US9734273B2 (en) * | 2014-05-27 | 2017-08-15 | Mentor Graphics Corporation | System design management |
US9280621B1 (en) | 2014-08-05 | 2016-03-08 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for analyzing a multi-fabric electronic design and displaying analysis results for the multi-fabric electronic design spanning and displaying simulation results across multiple design fabrics |
WO2016085541A1 (en) * | 2014-11-28 | 2016-06-02 | Nasuni Corporation | Versioned file system with global lock |
US9779193B1 (en) | 2015-03-31 | 2017-10-03 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing electronic design layouts with symbolic representations |
US9881119B1 (en) | 2015-06-29 | 2018-01-30 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for constructing a simulation schematic of an electronic design across multiple design fabrics |
US9881120B1 (en) | 2015-09-30 | 2018-01-30 | Cadence Design Systems, Inc. | Method, system, and computer program product for implementing a multi-fabric mixed-signal design spanning across multiple design fabrics with electrical and thermal analysis awareness |
US10346573B1 (en) | 2015-09-30 | 2019-07-09 | Cadence Design Systems, Inc. | Method and system for performing incremental post layout simulation with layout edits |
US9798840B1 (en) | 2015-10-15 | 2017-10-24 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing a simulation platform with dynamic device model libraries for electronic designs |
US10331841B1 (en) | 2016-01-15 | 2019-06-25 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing virtual prototyping for electronic designs |
US9934354B1 (en) | 2016-06-30 | 2018-04-03 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing a layout-driven, multi-fabric schematic design |
US10354037B1 (en) | 2016-06-30 | 2019-07-16 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing an electronic design by manipulating a hierarchical structure of the electronic design |
US10133841B1 (en) | 2016-09-30 | 2018-11-20 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing three-dimensional integrated circuit designs |
CN108958833B (zh) * | 2018-06-14 | 2021-10-08 | 北京奇虎科技有限公司 | 一种加载插件的方法及终端设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818726A (en) * | 1994-04-18 | 1998-10-06 | Cadence Design Systems, Inc. | System and method for determining acceptable logic cell locations and generating a legal location structure |
US6067477A (en) * | 1998-01-15 | 2000-05-23 | Eutech Cybernetics Pte Ltd. | Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems |
TW200305086A (en) * | 2001-12-19 | 2003-10-16 | Cadence Design Systems Inc | System and method for providing burst licensing in a circuit simulation environment |
US7266790B2 (en) * | 2003-03-07 | 2007-09-04 | Cadence Design Systems, Inc. | Method and system for logic equivalence checking |
TWI293157B (en) * | 2004-09-20 | 2008-02-01 | Sony Computer Entertainment Inc | Method, apparatus, system and computer readable recording medium recorded with relevant instructions for executing a software program in a multi-processor system with adjusting processing capabilities |
TW200834421A (en) * | 2006-11-06 | 2008-08-16 | Devicevm Inc | Instant-on platform |
TW200836083A (en) * | 2006-12-29 | 2008-09-01 | Cadence Design Systems Inc | Method, system, and computer program product for preparing multiple layers of semiconductor substrates for electronic designs |
CN100424706C (zh) * | 2000-02-28 | 2008-10-08 | 卡登斯设计系统公司 | 选择并获取用于电路及芯片设计的电子元件的自动化方法及系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
EP0669020B1 (en) * | 1992-11-13 | 1997-04-02 | Microsoft Corporation | Methods for marshalling interface pointers for remote procedure calls |
US5841663A (en) * | 1995-09-14 | 1998-11-24 | Vlsi Technology, Inc. | Apparatus and method for synthesizing integrated circuits using parameterized HDL modules |
US5802349A (en) * | 1996-01-22 | 1998-09-01 | Motorola, Inc. | Method for generating an optimized integrated circuit cell library |
US6449757B1 (en) * | 1998-02-26 | 2002-09-10 | Micron Technology, Inc. | Hierarchical semiconductor design |
DE10025583A1 (de) * | 2000-05-24 | 2001-12-06 | Infineon Technologies Ag | Verfahren zur Optimierung integrierter Schaltungen, Vorrichtung zum Entwurf von Halbleitern und Programmobjekt zum Entwerfen integrierter Schaltungen |
US6539533B1 (en) * | 2000-06-20 | 2003-03-25 | Bae Systems Information And Electronic Systems Integration, Inc. | Tool suite for the rapid development of advanced standard cell libraries |
US6857110B1 (en) * | 2001-01-30 | 2005-02-15 | Stretch, Inc. | Design methodology for merging programmable logic into a custom IC |
JP3928360B2 (ja) * | 2001-02-07 | 2007-06-13 | ソニー株式会社 | メモリ装置 |
US6862600B2 (en) * | 2001-05-22 | 2005-03-01 | Silicon Metrics Corporation | Rapid parameter passing between multiple program portions for efficient procedural interaction with minimum calls and/or call backs |
US7398503B2 (en) * | 2002-01-31 | 2008-07-08 | Cadence Design Systems, Inc | Method and apparatus for pre-tabulating sub-networks |
US6775806B2 (en) * | 2002-06-10 | 2004-08-10 | Sun Microsystems, Inc. | Method, system and computer product to produce a computer-generated integrated circuit design |
US7293247B1 (en) * | 2002-07-02 | 2007-11-06 | Cadence Design Systems, Inc. | Encapsulating parameterized cells (pcells) |
US7379952B2 (en) * | 2004-01-30 | 2008-05-27 | Oracle International Corporation | Techniques for multiple window resource remastering among nodes of a cluster |
US7089512B2 (en) * | 2004-03-15 | 2006-08-08 | International Business Machines Corporation | Method for optimal use of direct fit and interpolated models in schematic custom design of electrical circuits |
US7830826B2 (en) * | 2004-07-01 | 2010-11-09 | Nokia Corporation | Multicast relay for mobile devices |
US20060101368A1 (en) * | 2004-09-08 | 2006-05-11 | Mentor Graphics Corporation | Distributed electronic design automation environment |
US7546571B2 (en) * | 2004-09-08 | 2009-06-09 | Mentor Graphics Corporation | Distributed electronic design automation environment |
US7698662B1 (en) * | 2006-07-21 | 2010-04-13 | Ciranova, Inc. | System and method for proxied evaluation of PCells |
US7750408B2 (en) * | 2007-03-29 | 2010-07-06 | International Business Machines Corporation | Integrated circuit structure incorporating an inductor, a conductive sheet and a protection circuit |
US7971175B2 (en) * | 2007-06-27 | 2011-06-28 | Cadence Design Systems, Inc. | Method and system for implementing cached parameterized cells |
-
2008
- 2008-10-31 US US12/262,514 patent/US8364656B2/en active Active
-
2009
- 2009-10-05 TW TW98133744A patent/TWI468961B/zh not_active IP Right Cessation
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5818726A (en) * | 1994-04-18 | 1998-10-06 | Cadence Design Systems, Inc. | System and method for determining acceptable logic cell locations and generating a legal location structure |
US6067477A (en) * | 1998-01-15 | 2000-05-23 | Eutech Cybernetics Pte Ltd. | Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems |
CN100424706C (zh) * | 2000-02-28 | 2008-10-08 | 卡登斯设计系统公司 | 选择并获取用于电路及芯片设计的电子元件的自动化方法及系统 |
TW200305086A (en) * | 2001-12-19 | 2003-10-16 | Cadence Design Systems Inc | System and method for providing burst licensing in a circuit simulation environment |
US7266790B2 (en) * | 2003-03-07 | 2007-09-04 | Cadence Design Systems, Inc. | Method and system for logic equivalence checking |
TWI293157B (en) * | 2004-09-20 | 2008-02-01 | Sony Computer Entertainment Inc | Method, apparatus, system and computer readable recording medium recorded with relevant instructions for executing a software program in a multi-processor system with adjusting processing capabilities |
TW200834421A (en) * | 2006-11-06 | 2008-08-16 | Devicevm Inc | Instant-on platform |
TW200836083A (en) * | 2006-12-29 | 2008-09-01 | Cadence Design Systems Inc | Method, system, and computer program product for preparing multiple layers of semiconductor substrates for electronic designs |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI802941B (zh) * | 2020-08-11 | 2023-05-21 | 南亞科技股份有限公司 | 標準單元建立方法 |
Also Published As
Publication number | Publication date |
---|---|
US8364656B2 (en) | 2013-01-29 |
US20100115207A1 (en) | 2010-05-06 |
TW201019154A (en) | 2010-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI468961B (zh) | 用於實施多使用者快取的參數化單元之方法及系統 | |
US9183236B2 (en) | Low level object version tracking using non-volatile memory write generations | |
KR102579190B1 (ko) | 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원 | |
JP4620457B2 (ja) | 複数の同時にアクティブなファイルシステム | |
US20130054531A1 (en) | Database cloning | |
JP2011513853A (ja) | 連想ストレージのシステムと方法 | |
US11704335B2 (en) | Data synchronization in a data analysis system | |
JP5721056B2 (ja) | トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム | |
JP4951141B2 (ja) | データベースの管理方法 | |
US9195686B2 (en) | Optimistic versioning concurrency scheme for database streams | |
US20220382674A1 (en) | Garbage collection of tree structure with page mappings | |
US10162841B1 (en) | Data management platform | |
CN113448977A (zh) | 基于数据库Binlog的分布式缓存更新方法及装置 | |
JP5283769B2 (ja) | データベースの管理方法、データベース管理システム、およびプログラム | |
US20230006814A1 (en) | Method and apparatus for implementing changes to a file system that is emulated with an object storage system | |
US20170153951A1 (en) | Incremental synchronous hierarchical system restoration | |
JP5832592B1 (ja) | データ管理装置 | |
WO2012169080A1 (ja) | データベースの管理方法 | |
Mäkinen | Tracing Android applications for file system optimization | |
Lei et al. | CEIU: Consistent and Efficient Incremental Update mechanism for mobile systems on flash storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |