TW200828111A - Microcode patching system and method - Google Patents

Microcode patching system and method Download PDF

Info

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
Application number
TW096112686A
Other languages
English (en)
Inventor
Ming-Hung Li
Original Assignee
Mediatek Inc
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 Mediatek Inc filed Critical Mediatek Inc
Publication of TW200828111A publication Critical patent/TW200828111A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)

  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
TW096112686A 2006-12-22 2007-04-11 Microcode patching system and method TW200828111A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) アドレス変換方式