TW200828111A - Microcode patching system and method - Google Patents
Microcode patching system and method Download PDFInfo
- Publication number
- TW200828111A TW200828111A TW096112686A TW96112686A TW200828111A TW 200828111 A TW200828111 A TW 200828111A TW 096112686 A TW096112686 A TW 096112686A TW 96112686 A TW96112686 A TW 96112686A TW 200828111 A TW200828111 A TW 200828111A
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- output
- memory
- microcode
- repair
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
200828111 九、發明說明: 【發明所屬之技術領域】 本發明係有關於嵌入式程式(Embedde<1 Pro§rams), 特別係有關於一種對嵌入式唯讀記憶體(Embedded Read Only Memories)實施修補機制之系統及方法。 【先前技術】 對於一具有内嵌式處理器之通用目的之特殊應用積 體電路(Application-specific integrated Circuit ; ASIC)而 言,必須具備程式記憶體,以儲存指令碼。此程式記憶 體可以是唯讀記憶體(Read Only Memory ; ROM)、隨機存 取記憶體(Random Access Memory; RAM),或是兩者之組 合。一般而言,相同容量之ROM與RAM,以ROM所佔 之面積較小,故用以儲存指令碼中之絕大部分,也因此 初始化後即不能修正之。所以,當需要存取並執行儲存 於ROM中的指令碼時,倘若ROM内部儲存著錯誤的指 令碼或是需要增加更多指令碼,就需要一種修補機制。 修補機制中的一種係略過錯誤指令,並以另一指令 來取代錯誤指令’以命令處理器存取一修補記憶體(p atch Memory)内之正確指令。第1圖係顯示這種修補機制之一 範例,其為美國專利US6,891,765所揭露之電路1〇〇之方 塊圖。如圖所示’電路100係包括一處理器1Q2、一程式 空間($己ί思體)104、一修補邏輯電路1〇6,以及一選取電 路108。記憶體104包含一唯讀記憶體(R〇M)1〇4a及一修 0758-A32186TWF;MTKI-06-178 ;yens 6 200828111 補記憶體104b。處理器i〇2提供一位址PAB至記憶體 104,且記憶體1〇4對位址pab加以回應並提供一資料 項目DATA至選取電路1〇8。與此同時,處理器1〇2亦 提供位址PAB至修補邏輯電路1〇6。如果位址pab與預 先設定的複數個位址中任何一個均不符合而不需要被修 補、修正或擴展,則修補邏輯電路1〇6取消(de_assert)命 令訊號PTCH一DAT—SEL。然而,如果位址PAB符合該等 籲 預先設定的位址中的任何一個,則使命令訊號 PTCH一DAT一SEL有效(assert),並產生一分支指令PI以 重新命令處理器102對修補記憶體i〇4b進行存取。選取 電路108係根據命令訊號PTCH_DAT_SEL,而選擇由記 憶體104所接收之資料項目DaTa或是由修補邏輯電路 106所接收之分支指令PI作為一指令項目PDBI,並隨後 將指令項目PDBI經由資料匯流排傳送至處理器1〇2。 另一種修補機制係將送至唯讀記憶體之位址加以修 春 改。第2圖及第3圖分別係此種修補機制之兩範例,分 別顯示美國專利US6,438,664以及台灣專利TWI236,018 所揭露之電路200及300。請參考第2圖,一定序器 (sequencer)92控制多工器(Μυχ)86以選取記憶體之下— 位址。下一位址係傳送至一下一位址暫存器94以選取來 自唯讀記憶體64a或修補記憶體64b之連接線。所選擇 之連接線被提供至一輸出暫存器8〇。下一位址亦被提供 至比較器84。比較器84繼而將下一位址與儲存於數個匹 配暫存器88之數值加以比較。如果來自下一位址暫存器 〇758.A32186TWF;MTKI-06-178;yens η 200828111 94之下一位址與匹配暫存器88中的任一個數值相符,則 比較器84從一查找表90中選擇出一對應之修補RAM位 址。從查找表90中所選擇出之位址被提供至多工器86。 比較器84亦向定序器92指出相符情況發生之事件,以 便定序器92控制多工器86從查找表90中選出位址。由 唯讀記憶體64a輸入至輸出暫存器80之連接線被取消, 並且來自修補記憶體64b中之修補將從查找表90所指示 之位址開始執行。 如第3圖所示,電路300係包括一唯讀記憶體3(Π、 一隨機存取記憶體303、一計數器305,以及一比較與載 入單元311。計數器305產生下一位址以存取唯讀記憶體 301或隨機存取記憶體303。計數器305亦提供下一位址 313至比較與載入單元311。當下一位址與儲存於比較與 載入單元311内之預先設定位址CHkl-CHk4當中之一相 符時,比較與載入單元311發出一重置訊號317以及一 跳入位址訊號319至計數器305。跳入位址訊號319係表 示預設除錯/更新程式位址A1至A4當中之一,以及重置 訊號317係重置計數器305,以將下一位址313變換為跳 入位址訊號319所表示之位址。 在電路100、200及300中,下一位址不僅傳送至 ROM,亦傳送至一電路(修補邏輯電路106、比較器84 或比較與載入單元311)以判斷其是否與要修補、修正或 擴展之數個預先設定位址當中之任一個相符。結果,被 修補、修正或擴展之ROM位址仍被存取並產生稍後將被 0758-A32186TWF;MTKI-06-l 78;yens 200828111 t棄或取叙不必要之指 向ROM内存取不 電力及打間因而浪費在 處理哭H)2、4 令碼上。此外,電路1〇〇内之 处里。口川2、或是電路2〇〇 ^ 或電路300内之計數”^之疋序@ 92及多工器86、 ,、寸數益305需要被重新指派或重置以嘉 生一存取修補記情靜夕仞u 人里置Μ產 a 位址。這種重新指派或重置之叙 作干擾了正常產生下—之動 力及時間。 伹址之抓%並且浪費了電 【發明内容】 種可以解決以上技術問題 有鑑於此,本發明提供 之微碼修補之系統及方法。 —本發明係提供一種微碼修補系統,包括 70 : 一位址選取單元’以及-捕捉及修補邏輯單元:; :單元係包括一用以健存至少一微碼主指令:二二 體,以及一用以提供至少一微碼修補指令之第 :單記=根據一選取輸出位址來被存取二^ =用以提供一第一輸出訊號。捕捉及修補邏輯單 兀係麵胁位址選取單元及記憶單元H以 一輸出位址是否與至少一錯誤訊號當中任一相符,並且 當第:輸出位址與錯誤位址當中之一相符時,選出:: 取修補位址作為-第二輸出位址以存取第二記慢體.t 第一輸出位址與錯誤位址皆不相符時,則選取輸= 位址作為第二輸出位址。第二輸出位址係孝馬接於記憶 元。 σ W早 0758-Α32186TWF ;ΜΤΚΙ-06-178;yens 9 200828111 本發明亦提供一微碼修補方法,用以存取一記憶單 元,其中記憶單元係包括一用以儲存至少一微碼主指令 之第一記憶體,以及一用以儲存至少一微碼修補指令之 第二記憶體。該方法係包括:提供第一記憶體之至少一 錯誤位址;提供一第一輸出位址;判斷第一輸出位址是 否與錯誤位址當中任一相符’如果是’則第二輸出位址 為一存取該第二記憶體之一選取修補位址,如果否,則 第二輸出位址為該第一輸出位址;以及根據該第二輸出 位址來存取記憶單元。 本發明提供之微碼修補之系統及方法,藉由先判斷 第一輸出位址是否需要被替代為一存取第二記憶體之位 址之後,再根據判斷結果來選取第二輸出位址,不需要 存取需修補、修正或擴展之ROM位址,並且修補記憶體 之修補位址之產生過程亦不會干擾到下一 ROM位址之 正常產生流程,因而能夠節省電力及時間。 【實施方式】 第4圖係顯示本發明一實施例之一微碼修補系統 400之一方塊圖。如圖所示,微碼修補系統400係包括一 記憶單元410及一處理器430。 記憶單元410係包括一第一記憶體411及一第二記 憶體412。第一記憶體411可為唯讀記憶體(Read Only Memory ; ROM),其包含記憶單元410之記憶空間之第 一位址範圍,用以儲存至少一微碼主指令。第二記憶體 0758-A32186TWF;MTKI-06-178;yens 10 200828111 412可為隨機存取記憶體(Random Access Memory ; RAM),其包含記憶單元410之記憶空間之第二位址範 ^ 圍,用以儲存至少一微碼修補指令。第一及第二記憶體 411、412可為彼此獨立之分離記憶體,也可為單一記憶 體之第一及第二部份。 如圖所示,處理器430包括一位址選取單元432、 一捕捉及修補邏輯單元434,——位址暫存器436,以及一 位址累加器438。位址選取單元432接收至少一輸入目標 • 位址(如八丨以至Ain_n)以存取第一記憶體411,以及從位 址累加器438接收下一目標位址Anext,並根據順序控制 訊號Ssc在所接收之位址當中選一作為第一輸出位址 Aoj,繼而提供第一輸出位址Aoj至捕捉及修補邏輯單 元434。在一實施例中,位址選取單元432係一多工器。 輸入·目標位址Ainj至Ain_n,例如,一由指令解碼器(圖 中未顯示)所產生之用以讀取第一記憶體411所儲存之分 0 支指令之目標位址,或一由中斷控制器(圖中未顯示)所產 生之用以存取第一記憶體411所儲存之中斷處理指令之 起始位址,等等。 當接收到第一輸出訊號A0j之後,捕捉及修補邏輯 單元434檢查第一輸出訊號Aoj是否與至少一錯誤位址 (例如為AbugJl至Abug__m)當中任一相符合,並繼而根據該 檢查結果來提供一第二輸出位址A〇_2以存取記憶單元 410。錯誤位址Abugj至Abug_m係指示儲存於第一記憶體 411中需要被修補、修正或擴展之微碼主指令之起始位 0758-A32186TWF;MTKI-06-178;yens 11 200828111 址0 假設第-輸出位址A。」與錯誤位址
Abug-^9# * 43b;r :=!補位址(譬如為Wi至a—)當中選“ 於1位址A_J ’並接著輸出修補位址作為第_ 輸出⑽存取第二記憶體412。修補位址a ^ 至二係分別與錯誤位址AbugJ至Abu"相對應卿每1
PatChJ主Apatch—m係弟二記憶體4 1 2所儲存 ^某更新/除錯轉之起触址。並且每—更新/除錯程 序係以一重新指派處理器430再度存取第一記憶體411 之微碼修補指令作為結束。 然:,假使第一輸出位址A0—i與錯誤位址AbugJ至 Abug_m當中任一均不相符,則捕捉及修補邏輯單元434 係直接輸出第一輸出位址Aoj做為第二輸出位址A〇j以 存取記憶單元410。須注意的是,捕捉及修補邏輯單元 434也可不設置於處理器430之内,而可將其設置於處理 口j 430之外並與處理器43〇相獨立。捕捉及修補邏輯單 元434之細部構造將於第6圖之相關描述中說明。 位址暫存器436係暫存第二輸出位址a〇_2,並將第 二輸出位址Ao_2提供至位址累加器438。位址累加器438 係將第一輸出位址A〇_2增加一單位位址(例如為1)以提 供下一目標位址Anext 〇 因此,即使第一記憶體411是儲存著不可修改之資 料或指令之唯讀記憶體,仍然可以替代或增加資料或指 0758-A32186TWF;MTKI-06-178;yens 12 200828111 令到第一記憶體411所儲存之資料或指令中。舉例而言, 當需要忽略第一記憶體411之位址Ah至Ah+m所指示之微 碼主指令Ch至Ch+m時,可以將一錯誤位址設定為位址 Ah,位址Ah所對應之修補位址所指示一微碼修補指令, 指示處理器430以存取第一記憶體411之位址
Ah+m+l 0 在另一範例中,當第一記憶體411之位址人11至Ah+m所指 示之微碼主指令需要被替代為第二記憶體412之位址Ap 至Aq所指示之微碼修補指令時,可以將一錯誤位址設定 ® 為位址Ah,位址Ah所對應之修補位址設定為Ap,且第 二記憶體412之位址Aq+1所指示之微碼修補指令可以指 示處理器430以存取第一記憶體411之位址
Ah+m+l 〇 在 又一範例中,當第一記憶體411之位址人1)至Aq所指示 之微碼主指令需要被插入到第一記憶體411之位址八11至 Ah+1所指示之微碼主指令之間時,可以將一錯誤位址設 定為位址Ah,位址Ah所對應之修補位址設定為Ap,且 0 第二記憶體412之位址Aq+1所指示之微碼修補指令重新 指示處理器430以存取第一記憶體411之位址Ah+1。 第5圖係本發明另一實施例所提供之一微碼修補系 統500之一方塊圖,其與第4圖所示之微碼修補系統的 差異僅在於:由位址暫存器436提供第二輸出位址AO; 至位址記憶單元410,而不是由捕捉及修補邏輯單元434 提供第二輸出位址AO#?。其餘細節係相當類似,在此為 簡明起見故不再贅述之。 第6圖分別係本發明第4及第5圖所示之捕捉及修 0758-A32186TWF;MTKI-06-178;yens 13 200828111 補邏輯單元434之方塊圖之實施例。如圖所示,捕捉及 修補電路434係包括一比較模組610以及一位址選取器 620。比較模組610係判斷第一輸出位址Aoj是否與至少 一錯誤位址(譬如為Abugj至Abug_m)當中任一相符,其中 錯誤位址係指示第一記憶體410所儲存之要被修補、修 正或擴展之微碼主指令。比較模組610產生一位址選取 訊號SAS以指示錯誤位址當中何者與第一輸出位址Aoj 相符,並將位址選取訊號SAS提供至位址選取器620。當 接收到位址選取訊號SAS以及第一輸出位址A〇_d^,假 如位址選取訊號SAS指示錯誤位址當中之一與第一輸出 位址Αο」相符,則位址選取器620會從至少一修補位址 (譬如為Apatch_i至Apatch_m)中選取出一者為第二輸出位址 AO」,其中修補位址Apatehj至Apateh_m係分別與錯誤位址 Abugj至Abug_m相對應;反之,假如位址選取訊號SAS指 示出錯誤位址均不與第一輸出位址A〇j相符,則位址選 取器620直接輸出第一輸出位址A〇j作為第二輸出位址 A〇—2。 第6圖亦顯示了比較模組610及位址選取器620之 細部結構。如圖所示,比較模組610係包括一比較單元 612以及一致能邏輯單元616。比較單元612係包括數個 邏輯方塊613i至613z。每一邏輯方塊613i至613z可為 一比較器,用以比較第一輸出位址Αο」與數個預先設定 位址Apre」至Apre_z當中之一以產生一代表比較結果之比 較輸出((^至〇z)。預先設定位址人心」至Apre_z·可由位 0758-A32186TWF;MTKI-06-l 78;yens 14 200828111 址暫存器接收而得,或也可從外部產生。預先設定位址
ApTe」至ApTe_z係包括錯誤位址Abug_m°由於錯 誤位址之數目(m)係變動的,因此並非所有儲存於位址暫 存器内的預先設定位址Αρκ」至Apre_z皆用作錯誤位址 Abugj至Abug_m。比較單元612繼而提供一匹配訊號SM(即 比較輸出〇ι至〇z)至致能邏輯單元616,以指示預先設 定位址Aprej至Apre_z當中何者與第一輸出位址A〇j相 符。 ® 致能邏輯單元616係包括數個閘617i至617z,每一 閘係用以致能/去能該比較輸出仏至〇z。由於並非所有 預先設定位址Apre」至Apre_z均用來作為指示第一記憶體 411需要修補、修正或擴展之錯誤位址Abug」至Abug_m, 因此當邏輯方塊接收到並未用作錯誤位址之預先設定位 址時,致能邏輯閘6171至617z係將其所產生之比較輸出 予以去能;而當邏輯方塊接收到用作錯誤位址之預先設 ^ 定位址者,致能邏輯閘617 i至617Z係將其所產生之比較 輸出予以致能。 每一閘6171至617z可為一邏輯及閘(如圖所示),其 具有一第一輸入,用以從邏輯方塊6131至613z當中之一 接收一比較輸出;一第二輸入,用以接收數個致能位元(譬 如為EN〇至ENZ)當中之一,以提供一致能輸出EC^至 EOz。致能位元EN〇至ENZ係可由致能暫存器接收而得, 或可由外部產生。值為「1」之致能位元ΕΝ〇至ENZ係將 比較訊號仏至〇z予以致能,而值為「〇」之致能位元EN〇 0758-A32186TWF;MTKI-06-178;yens 15 200828111 至ENZ係將比較訊號Ch至〇z予以去能。致能邏輯單元 616繼而輸出位址選取訊號SAS(即致能輸出EO!至 E〇z),位址選取訊號SAS係指示目前用作錯誤位址Abugj 至Abug_m之預先設定位址Aprej至Apre_z當中何者係與第 一輸出位址Α〇_ι相符。 第6圖係亦顯示了比較模組610及位址選取器620 之細部構造。如圖所示,位址選取器620可為一多工器, 其接收第一輸入位址Α〇_ι以及數個修補位址Apatchj至 Apatch_m ” 用以根據位址選取訊號sAS而選取當中之一作 為第二輸出位址AO」。修補位址Apatchj至Apatch_m可由 位址暫存器接收而得,或可從外部產生。如前所述,修 補位址Apatch」至Apatch_m可提供用於第二記憶體412内 更新/除錯程序之新指令部分之起始位址。如此一來,倘 若第一輸出位址Α〇_ι與預先設定位址Aprej至Apre_z中之 作為錯誤位址的一特定位址相符,處理器410所執行之 程序可以分支為修補位址 Apatch一 1 至 Apatch一m 〇 摘要而言,處理器430係產生第一輸出位址A〇j, 其中第一輸出位址Α〇_ι係被初始化以存取第一記憶體 411,並判斷第一輸出位址Αο」是否需要被取代為一存取 第二記憶體412之位址,繼而根據判斷結果選取第二輸 出位址AO」以存取記憶單元410。如此一來,需要被修 補、修正或擴展之位址會在被傳送至第一記憶體(ROM) 之前就被判斷並取代掉,因此能避免對第一記憶體的不 必要存取。這與傳統電路100、200及300有所不同,傳 0758-A32186TWF;MTKI-06-178;yens 16 200828111 統電路100、200及300中必須被修補、修正或擴展之位 址仍然被傳送至ROM。此外,用以取代被修補、修正或 擴展之修補位址乃直接傳送至記憶單元410而非傳送至 傳統電路100中之處理器102、傳統電路200中之多工器 86或傳統電路300中之計數器305,因此本發明中位址 選取單元432不需要重新指派或重新設定之動作,從而 產生第一記憶體之下一位址之正常程序不會被中斷。 第7圖示本發明所提供之微碼修補方法之流程圖之 一實施例,其中微碼修補方法係用以存取一記憶單元, 包括一第一記憶體,用以儲存至少一微碼主要指令,以 及一第二記憶體,用以儲存至少一微碼修補指令。 首先,於步驟710中,將第一輸出位址初始化以存 取第一記憶體之某一位址。更明確言之,步驟710係由 至少一用以存取第一記憶體之輸入位址當中,選取一位 址作為第一輸出位址,例如,由一指令解碼器所產生之 一目標位址,用以讀取第一記憶體所儲存之一分支指 令、或是由一中斷控制單元所產生之一起始位址,用以 儲存該第一記憶體所儲存之中斷程序碼等等。 接下來,於步驟720中,判斷第一輸出位址是否與 錯誤位址當中任一相符。 如果是,則程序進入步驟731以提供第二記憶體之 一選取修補位址作為第二輸出位址,並且第二輸出位址 係用來存取記憶單元。在步驟731之一實施例中,係提 供至少一對應至錯誤位址之修補位址,並且與第一輸出 0758-A32186TWF;MTKI-06-178 ;yens 17 200828111 位址相符之錯誤位址所對應之修補位址係被選取為選取 修補位址。 如果不是,程序會進入步驟732以輸出第一輸出位 址來作為第二輸出位址,並且第二輸出位址乃用來存取 記憶單元。 接下來,於步驟740中,重新產生第一輸出位址, 並且程序回歸到步驟720。在一實施例中,第二輸出位址 之下一相鄰位址將最先被產生,繼而於步驟710所描述 之輸入位址以及第二輸出位址之下一相鄰位址兩者當 中,選取出第一輸出位址。 摘要而言,本發明係先判斷被初始化為存取第一記 憶體之第一輸出位址是否需要被替代為一存取第二記憶 體之位址之後,才根據先前判斷結果以選取第二輸出位 址提供至記憶單元。如此一來,需要被修補、修正或擴 展之位址會在被傳送至第一記憶體(ROM)之前就被取代 掉,因此能避免第一記憶體不必要存取。這與傳統電路 100、200及300有所不同,傳統電路100、200及300中 必須被修補、修正或擴展之位址仍然被傳送至ROM。此 外,用以取代被修補、修正或擴展之修補位址被直接傳 送至記憶單元,因此本發明不需要重新指派或重新設定 之動作。 雖然本發明已以較佳實施例揭露如上,然其並非用 以限定本發明,任何熟習此技藝者,在不脫離本發明之 精神和範圍内,當可作些許之更動與潤飾,因此本發明 0758-A32186TWF;MTKI-06-178;yens 18 200828111 之保護範圍當視後附之申請專利範圍所界定者為準。 【圖式簡單說明】 第1圖係顯示一傳統微碼修補機制之電路方塊圖; 第2圖係顯示另一傳統微碼修補機制之電路方塊 圖, 第3圖係顯示另一傳統微碼修補機制之電路方塊 圖, • 第4圖係顯示本發明所提供之一微碼修補系統之一 方塊示意圖之一實施例; 第5圖係顯示本發明所提供之一微碼修補系統之一 方塊示意圖之另一實施例;以及 第6圖亦顯示第4及第5圖之比較模組及位址選取 器之個別細部結構。 第7圖顯示本發明所提供之微碼修補方法之流程圖 之實施例。 【主要元件符號說明】 100〜傳統微碼修補電路; 104〜程式空間; 104b〜修補記憶體; 108〜選取電路; 64a〜唯讀記憶體; 80〜輸出暫存器; 8 4〜比較器; 102〜處理器; 104a〜唯讀記憶體; 106〜修補邏輯電路; 200〜傳統微碼修補電路; 64b〜修補記憶體; 82〜累加器; 86〜多工器; 0758-A32186TWF;MTKI-06-178;yens 19 200828111 88〜匹配暫存器; 90〜表單; 92〜定序器; 94〜下一位址暫存器; 300〜傳統微碼修補電路;301〜唯讀記憶體; 303〜隨機存取記憶體;305〜計數器; 311〜比較與載入單元; 313〜指令讀取記憶體位址訊號; 317〜重置訊號; 319〜跳入位址訊號; 400〜微碼修補系統電路;410〜記憶單元; 411〜第一記憶體; 412〜第二記憶體; · 430〜處理器; 432〜位址選取單元; 434〜捕捉及修補邏輯單元; 436〜位址暫存器; 438〜位址累加器; 5 00〜微碼修補系統電路;610〜比較模組, 612〜位址選取器; 613^6132〜邏輯方塊; 616〜致能邏輯單元; 617;r617z〜致能邏輯閘; 620〜位址選取器; 〜預設除錯/更新程式位址; _
Abug_l- AbUg_m〜錯誤位址;Ainj-Ain_n〜輸入目標位址;
Anext〜下一目標位址; A〇j〜第一輸出位址; A〇_2〜第二輸出位址;
Apateh_l-Apateh_m〜修補位址,
Apre_i-Apre_z〜既定位址, CHKrCHK4〜預設主程式位址; DATA〜資料項目; ENo-ENz〜致能位元; 0758-A32186TWF;MTKI-06-178;yens 20 200828111 Οι-Oz〜比較輸出; PAB〜位址; PDBI〜指令項目; PI〜分支指令; PTCH—D AT 一 SEL〜命令訊號; sAS〜位址選取訊號; Ssc〜順序控制訊號; SM〜匹配訊號。
0758-A32186TWF;MTKI-06-178;yens 21
Claims (1)
- 200828111 十、申請專利範圍: 1.一種微碼修補系統,包括: 之第一==’其包括—心料至少—微碼主指令 /—微醫補指令之第 選取輸出位址來被存取; i 70 ’用以提供—第—輸出位址;以及 一捕捉及修補邏輯單元,耦接㈣位址選取單元及 ,己fe早π之間’用以判斷是否該第一輸出位址與至少 1錯触址當中任—相符,並且當該第—輸出位址與該 =位址當中之-相符時,選出—用於存取該第二記憶 ,之選取修補位址作為—第二輸出位址,或#該第一輸 出位址與該錯誤㈣皆不相符時,選取該第—輸出位址 作為-第二輸出位址,其中該第二輸出位址仙接於該 記憶單元。 」·如申請專利範圍第丨項所述之微碼修補系統,其 中该第一記憶體係一唯讀記憶體。 二士如申請專利範圍第!項所述之微碼修補系統,其 中5亥第二記憶體係一隨機存取記憶體。 4·如申請專利範圍第1項所述之微碼修補系統,其 中孩位址選取單元係接收複數輸入位址,並選出當中之 作為该第一輸出位址,其中該等輸入位址係包括至少 一用以存取該第一記憶體之位址。 5·如申請專利範圍第4項所述之微碼修補系統,其 中該等輪入位址係更包括該第二輸出位址之一下一相鄰 0758-.A32186TWF;MTKI-06-178;yens 200828111 位址。 6. 如申請專利範圍第1項所述之微碼修補系統,更 包括: 一位址暫存器,用以暫存該捕捉及修補邏輯單元所 輸出之該第二輸出位址;以及 一位址累加器,用以增加該位址暫存器所輸出之該 第二輸出位址以提供該第二輸出位址之一下一相鄰位 址。 7. 如申請專利範圍第6項所述之微碼修補系統,其 中該位址暫存器係耦接於該捕捉及修補邏輯單元,並且 提供該第二輸出位址至該記憶單元。 8. 如申請專利範圍第1項所述之微碼修補系統,其 中該捕捉及修補邏輯單元係包括: 一比較模組,用以判斷該第一輸出位址是否與至少 一該等錯誤位址當中任一相符,並輸出一位址選取訊號 以指示該等錯誤位址當中何者與該第一輸出位址相符; 以及 一位址選取器,用以接收該位址選取訊號以及該第 一輸出位址,以及若該位址選取訊號指示該等錯誤位址 當中之一與該第一輸出位址相符時,選取一對應之修補 位址做為該選取修補位址並提供該選取修補位址做為該 第二輸出位址;否則,選取該第一輸出位址作為該第二 輸出位址。 9. 如申請專利範圍第1項所述之微碼修桥系統,其 0758-A32186TWF;MTKI-06-178;yens 23 200828111 中該錯誤位址係分別對應至少一修補位址,以及若該第 一輪出位址與一錯誤位址相符時,該捕捉及修補邏輯單 元係選出一對應之修補位址做為該選取修補位址。 10.如申請專利範圍第9項所述之微碼修補系統,其 中該捕捉及修補邏輯單元係包括:一比較單元,用以判斷該第一輸出位址是否與至少 一預先設定位址當中任一相符,該等預先設定位址係包 括該錯誤位址,並輸出一匹配訊號用以指示該等預先設 定訊號當中何者與該第一輸出位址相符;以及、 At 一双戚邏輯皁元,用以判斷該匹配訊號之致能;| f ’以提供該位址選取訊號用以指示該等設定為致能片 態之預先設定位址當中何者與該第—輸出訊號相符。 =-種微碼修財存取—記鮮元,該言 思早7L係L括-用以儲存至少—微瑪主指令之第一記 mux儲存至少—微碼修補指令之 體. 該微碼修補方法包括: u ^提供一第一輸出位址; 一錯誤位址當中任 判斷該第一輸出位址是否與至少 一相符;以及 ' 很據該判斷結果以輸出一 斷,是',則該第二輪出位:為-:存:第= :璉:修補位址,假如該判斷結果為否,則: 出位址為該第—輸出位址,並根出=- 取該記憶單元。 罘一W出位址以 0758-A32186TWF;MTKl.〇6-i78;yens 200828111 12. 如申請專利範圍第Π項所述之微碼修補方法, 其中提供該選取修補位址作為該第二輸出位址以存取該 第二記憶體之步驟包括: 提供至少一修補位址,分別對應至該錯誤位址;以 及 選取該等修補位址當中之一對應於與該第一輸出位 址相符之該錯誤位址作為該選取修補位址。 13. 如申請專利範圍第11項所述之微碼修補方法, • 其中第一記憶體係一唯讀記憶體。 14. 如申請專利範圍第11項所述之微碼修補方法, 其中該第二記憶體係一隨機存取記憶體。0758-A32186TWF;MTKI-06-178;yens 25
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/615,059 US20080155172A1 (en) | 2006-12-22 | 2006-12-22 | Microcode patching system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
TW200828111A true TW200828111A (en) | 2008-07-01 |
Family
ID=39544577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096112686A TW200828111A (en) | 2006-12-22 | 2007-04-11 | Microcode patching system and method |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080155172A1 (zh) |
CN (1) | CN101206562A (zh) |
TW (1) | TW200828111A (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504993B2 (en) * | 2006-12-29 | 2013-08-06 | Intel Corporation | Virtualization of micro-code patches for probe less debug |
US20090031090A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Apparatus and method for fast one-to-many microcode patch |
US20090031121A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Apparatus and method for real-time microcode patch |
US20090031108A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Configurable fuse mechanism for implementing microcode patches |
US20090031103A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Mechanism for implementing a microcode patch during fabrication |
US20090031109A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Apparatus and method for fast microcode patch from memory |
US20090031107A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | On-chip memory providing for microcode patch overlay and constant update functions |
US20090031110A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Microcode patch expansion mechanism |
US20100180104A1 (en) * | 2009-01-15 | 2010-07-15 | Via Technologies, Inc. | Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor |
EP2660713B1 (en) * | 2012-05-03 | 2015-03-04 | Nxp B.V. | Patch mechanism in embedded controller for memory access |
EP2784682A1 (en) * | 2013-03-25 | 2014-10-01 | Dialog Semiconductor B.V. | Memory patching circuit |
US11676657B2 (en) | 2020-04-16 | 2023-06-13 | Mediatek Inc. | Time-interleaving sensing scheme for pseudo dual-port memory |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
FR2764407B1 (fr) * | 1997-06-05 | 1999-07-30 | Alsthom Cge Alcatel | Dispositif de retouche de programme de commande dans un processeur |
US5983337A (en) * | 1997-06-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction |
US6158018A (en) * | 1997-11-25 | 2000-12-05 | Philips Semiconductor, Inc. | Integrated circuit including patching circuitry to bypass portions of an internally flawed read only memory and a method therefore |
US6438664B1 (en) * | 1999-10-27 | 2002-08-20 | Advanced Micro Devices, Inc. | Microcode patch device and method for patching microcode using match registers and patch routines |
US6925521B2 (en) * | 2001-09-10 | 2005-08-02 | Texas Instruments Incorporated | Scheme for implementing breakpoints for on-chip ROM code patching |
US7062598B1 (en) * | 2003-04-29 | 2006-06-13 | Advanced Micro Devices, Inc. | Bypass custom array and related method for implementing ROM fixes in a data processor |
US6891765B2 (en) * | 2003-08-05 | 2005-05-10 | Via Telecom, Inc. | Circuit and/or method for implementing a patch mechanism for embedded program ROM |
-
2006
- 2006-12-22 US US11/615,059 patent/US20080155172A1/en not_active Abandoned
-
2007
- 2007-04-11 TW TW096112686A patent/TW200828111A/zh unknown
- 2007-04-20 CN CNA2007101044223A patent/CN101206562A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN101206562A (zh) | 2008-06-25 |
US20080155172A1 (en) | 2008-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200828111A (en) | Microcode patching system and method | |
US11657857B2 (en) | Memory devices having special mode access | |
JP4166979B2 (ja) | 不揮発性半導体メモリ装置、それのデータ入/出力制御方法及びメモリ応用システム | |
US9971647B2 (en) | Apparatus and method for programming ECC-enabled NAND flash memory | |
TWI284906B (en) | Flexible OTP sector protection architecture for flash memories | |
JP5144542B2 (ja) | アドレス変換バイパスを有するデータ処理システム及びその方法 | |
TW200915335A (en) | Redundancy scheme in memory | |
TW200849009A (en) | Apparatus and method for using a page buffer of a memory device as a temporary cache | |
JP2006107710A (ja) | 停電によるプログラムエラーの有無を検出することができる集積回路メモリ装置及び方法 | |
TW200905553A (en) | Patch apparatus and method | |
US7873753B2 (en) | Memory subsystem capable of accessing a plurality of memory bank identifications and method thereof | |
JP2012089010A (ja) | メモリ制御装置、記憶装置、及びメモリ制御方法 | |
TWI242777B (en) | Circuit and/or method for implementing a patch mechanism for embedded program ROM | |
TW200839530A (en) | Dynamic switching between multiplexed interfaces LPC and SPI | |
US20070028037A1 (en) | Memory system with automatic dual-buffering | |
TWI579845B (zh) | 具預看快速讀取之串列記憶體 | |
JP3747213B1 (ja) | シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ | |
JP5563719B2 (ja) | エラー補正に起因する経年関連性能劣化を最小限に抑えるためのnandメモリコントローラでの動的バッファ管理 | |
JP4703394B2 (ja) | インターフェースシステム | |
TW200907991A (en) | Method and apparatus for testing the functionality of a page decoder | |
US20120268977A1 (en) | Semiconductor memory device and programming method thereof | |
JPH10307762A (ja) | メモリ初期化制御方式 | |
JPH10333903A (ja) | マイクロプログラム制御装置 | |
JP2005190092A (ja) | メモリアクセスコントロール回路 | |
JPS623356A (ja) | アドレス変換方式 |