增強的微處理器或微控制器的製作方法
2023-04-22 19:43:46 1
專利名稱:增強的微處理器或微控制器的製作方法
技術領域:
本申請案的技術領域涉及微處理器或微控制器。
背景技術:
微控制器通常構成晶片上系統且包含微處理器及多個外圍組件。存在具有8位、 16位及32位架構的各種此類微處理器/微控制器。由微芯科技公司(MicrochipT echnology Inc)製造的現有微處理器/微控制器(例如8位微控制器)提供靈活架構。此類微處理器 /微控制器可包含其中程序與數據存儲器是分離的哈弗架構(Harvardarchitecture)。此 類型的微處理器/微控制器進一步可包含允許對數據存儲器的存取的特定分庫(banking) 系統。為此,通常,將數據存儲器劃分成多個庫且庫選擇寄存器界定所述庫中的哪一庫是當 前選定的且是可存取的。為提供對某些寄存器(例如,特殊功能寄存器、寄存器堆或任何其 它寄存器)的此微處理器/微控制器存取,分庫方案可經設計以將多個此類寄存器存儲器 映射到所述庫中的多數庫中。因此,可將多數庫內的減少數目的存儲器位置自由地用作通 用存儲器區。圖1更清晰地解釋此常見概念。將物理存儲器空間100劃分成多個存儲器 庫IlO1. . IlOn,其中通常中央處理單元一次僅可存取一個庫。在圖1的右側,顯示單個示範 性存儲器庫及其示範性結構。舉例來說,可將庫IlOx的第一存儲器範圍120存儲器映射到 共用核心特殊功能寄存器(SFR)且可將鄰近或後面的存儲器區130存儲器映射到用於外圍 設備的其它SFR。後面的存儲器區140包含通用寄存器(GPR)且存儲器區150用於共用存 儲器。在一個實施例中,例如8位微處理器/微控制器,每一庫具有128個字節且存儲器區 120包括12個共用核心SFR,存儲器區130包括20個SFR、存儲器區140包括80個GPR且 存儲器區150包括16個字節。可應用具有SFR或其它寄存器的不同存儲器映射方案的其 它實施方案且此取決於架構設計。除通過此分庫方案存取存儲器100外,可實施允許間接存取整個線性化存儲器 100或其一較大部分的特殊功能寄存器。然而,所述SFR或在其它實施方案中被存儲器映射 到至少多個庫的其它寄存器不允許單個連續較大存儲器區。因此,需要使用分庫存取方案的微處理器/微控制器的改進的架構。
發明內容
根據一實施例,一種處理器裝置可包含數據存儲器,其包含線性地址空間,所述 數據存儲器可通過多個存儲器庫來存取,其中至少一子組的所述存儲器庫經組織以使得所 述子組的每一存儲器庫包含至少第一及第二存儲器區,其中多個連貫存儲器庫的第二存儲 器區不形成連貫存儲器塊;及地址調整單元,當使用預定義地址範圍時,所述地址調整單元 轉換所述預定義地址範圍內的用以存取所述第二存儲器區的地址以便通過所述地址,多個 第二存儲器區形成連續線性存儲器塊。根據進一步實施例,所述處理器可進一步包含用於啟動地址調整單元的地址解碼 器。根據進一步實施例,所述處理器可進一步包含多路復用器,所述多路復用器具有接收地址及經調整地址的第一及第二輸入且由接收所述地址的地址比較器控制。根據進一步實施 例,所述第一存儲器區可包含特殊功能寄存器。根據進一步實施例,所述第二存儲器區可包 含通用寄存器。根據進一步實施例,所述第二存儲器區可包含共用存儲器區。根據進一步 實施例,所述第二存儲器區可包含通用寄存器。根據進一步實施例,所述處理器可以是微控 制器或微處理器。根據進一步實施例,所述第一存儲器區可包含核心特殊功能寄存器且所 述子組的每一存儲器庫可包含第三存儲器區,所述第三存儲器區包含用於外圍裝 置的特殊 功能寄存器。根據進一步實施例,所述地址調整單元可包含第一解碼器單元,其用於存取 存儲器單元陣列的列;及多個行解碼器對,其中每一行解碼器對與存儲器單元陣列的一行 相關聯且包含第一行解碼器及第二行解碼器。根據進一步實施例,所述行解碼器中的一者 可響應於所述地址。根據進一步實施例,每一行解碼器可輸出通過與所述存儲器單元陣列 耦合的「或」門組合的行選擇信號。根據另一實施例,一種處理器裝置可包含數據存儲器,其包含線性地址空間,所 述數據存儲器可通過多個存儲器庫來存取;多個特殊功能寄存器,其中至少兩個特殊功能 寄存器用於形成級聯地址;預定義地址空間,其包含第一地址空間,物理數據存儲器被映 射到所述第一地址空間;及第二地址空間,多個存儲器庫的部分存儲器地址區以所述多個 存儲器庫的部分存儲器地址區形成連續線性存儲器塊的方式被映射到所述第二地址空間。根據進一步實施例,所述處理器可進一步包含地址調整單元,所述地址調整單元 將尋址所述線性存儲器塊的地址轉換成物理地址。根據進一步實施例,存儲器庫可包括第 一存儲器區,其包含特殊功能寄存器;及第二存儲器區,其包含通用寄存器,且其中所述第 二存儲器區形成所述部分存儲器地址區。根據進一步實施例,存儲器庫的部分存儲器地址 區可包含用作共用存儲器區的存儲器。根據進一步實施例,所述處理器可以是微控制器或 微處理器。根據進一步實施例,所述數據存儲器可以是存儲器單元陣列,且所述處理器裝置 可進一步包含第一解碼器單元,其用於存取存儲器單元陣列的列;及多個行解碼器對,其 中每一行解碼器對與存儲器單元陣列的一行相關聯且包含第一行解碼器及第二行解碼器。 根據進一步實施例,所述第一行解碼器可響應於所述第一地址空間內的地址且所述第二行 解碼器可響應於所述第二地址空間內的地址。根據進一步實施例,每一行解碼器輸出通過 與所述存儲器單元陣列耦合的「或」門組合的行選擇信號。根據另一實施例,一種使用存儲器分庫存取方案存取處理器中的數據存儲器的方 法可包含以下步驟將數據存儲器劃分成多個存儲器庫,其中中央處理單元通過所述存儲 器庫中的一者直接存取所述數據存儲器;及通過級聯地址寄存器間接存取所述數據存儲 器內的連續存儲器塊,其中所述存儲器塊由至少一子組的存儲器庫的多個部分存儲器區形 成,所述多個部分存儲器區在物理存儲器空間中是不連續的但以其形成連續存儲器塊的方 式被映射到存儲器空間。根據進一步實施例,所述子組可具有少於所述多個存儲器庫的存儲器庫。根據進 一步實施例,所述連續存儲器塊可由所有存儲器庫的部分存儲器區形成。根據進一步實施 例,存儲器庫可包含第一存儲器區,其包含特殊功能寄存器;及第二存儲器區,其包含通 用寄存器,其中所述部分存儲器區由所述第二存儲器區形成。根據進一步實施例,存儲器庫 的部分存儲器區可包含用作共用存儲器區的存儲器。根據進一步實施例,在至少所述子組 的存儲器庫中,每一存儲器庫可包含特殊功能寄存器、通用寄存器及共用存儲器區。
根據以下圖式、說明及以上權利要求書,所屬領域的技術人員將易於明了本發明 的其它技術優點。本發明的各種實施例可僅獲得所列舉優點的子組。對所述實施例來說沒 有一個優點是決定性的。
通過結合附圖參閱以下說明可獲取對本發明及其優點的更完全理解,附圖中相同 參考編號指示相同特徵且其中圖1顯示典型的常規存儲器分庫方案。圖2顯示使用具有32個庫的分庫方案的實施例;圖3顯示改進的分庫方案的實施例。圖4顯示根據一實施例的存儲器映射方案。圖5顯示用於尋址存儲器的微處理器/微控制器架構的一個實施例。圖6顯示存儲器存取電路的另一實施例。圖7顯示存儲器存取電路的又一實施例。雖然已參照本發明的實例性實施例來描繪、描述及界定本發明的各實施例,但此 參照並不意味著限定本發明,且不應推斷出存在此限定。所揭示的標的物能夠在形式及功 能上具有大量修改、替代及等效形式,所屬領域的技術人員根據本發明將會聯想到此等修 改、替代及等效形式並受益於本發明。所描繪及描述的本發明的各實施例僅作為實例,而並 非是對本發明範圍的窮盡性說明。
具體實施例方式根據各種實施例,微處理器/微控制器包含具有多個存儲器庫的物理地址空間, 所述多個存儲器庫經順序布置以形成線性化存儲器空間及虛擬地址空間。根據另一實施 例,存儲器可在多個地址下尋址,其中第一地址範圍具有用於正常分庫的尋址順序存儲器 位置的連貫地址,且第二地址範圍具有用於存取線性化存儲器塊的至少部分地尋址非順序 存儲器位置的連貫地址。根據一個實施例,所述物理地址空間的地址可與虛擬地址空間的 一部分相同,其中所述虛擬地址空間比所述物理地址空間大。換句話說,所述物理 地址空間 可以是所述虛擬地址空間的子組。根據一實施例,所述物理地址空間的每一庫內的某些區 段也被存儲器映射到第二或虛擬地址空間的另一部分使得其形成連續存儲器塊。換句話 說,即使每一存儲器庫內的這些塊的物理地址不形成連續存儲器塊,那麼其在其被存儲器 映射到其中的第二或虛擬存儲器空間的另一部分中也會形成連續存儲器塊。圖3顯示使用如圖1中所示的存儲器庫組織的示範性實施例。物理存儲器空間再 次用編號100標示。在此實施例中,存儲器庫IlO1. . IlOn中的每一者或多數包含僅囊括每 一存儲器庫的一部分的存儲器區段140,其中存儲器庫的剩餘部分可用於指定目的,例如特 殊功能寄存器或共用存儲器的映射。然而,在其它實施例中,不是所有存儲器庫均可相等地 組織且共享相同的存儲器區120到150。舉例來說,針對特殊功能保留一個或一個以上存儲 器庫,其含有到某些寄存器的唯一虛擬或物理存儲器映射。舉例來說,圖3顯示使用具有32 個存儲器庫的分庫方案200的8位微控制器,其中每一庫包含128個字節。前31個庫0到 30相同地組織。類似於圖1中所示,每一庫0到30包括存儲器庫區120、130、140及150。庫31包含映射到外圍SFR 130及GPR 140的部分地不同且額外的特殊功能寄存器及調試
寄存器。
根據一個實施例,存儲器區段140被存儲器映射到虛擬存儲器空間內的特定存儲 器區,從而形成連續存儲器塊300,如圖3中所示。根據其它實施例,每一庫的其它部分(例 如,存儲器區150或庫的任一其它部分存儲器區)依據其組織可被指派到連續虛擬存儲器 空間300。因此,映射形成連續存儲器空間300,其可由經設計以存取比分庫方案所允許大 的線性化存儲器空間的特殊功能寄存器存取。根據此映射方案,當被存取時,每一存儲器庫 仍允許通過所述分庫方案對其存儲器區140的常規存取。然而,每一存儲器區140還可在 第二地址(即虛擬存儲器地址)下存取,其中這些通用寄存器或共用存儲器形成一個單個 連續線性化存儲器空間300。在8位微處理器/微控制器中,所述寄存器按照定義僅8位 寬且因此可僅尋址256個不同存儲器位置(在圖2中所示的實施例中,僅128個存儲器位 置用於每一庫,然而,其它設計可使用更多的位置(例如256個)或甚至更少的位置)。然 而,此線性化存儲器空間200可由特殊功能寄存器或至少兩個8位地址寄存器的組合存取。 根據具有不同位大小的其它實施例,相同原理相應地適用。圖4顯示示範性虛擬存儲器空間400。此虛擬存儲器空間400可部分地與物理存 儲器相同。舉例來說,從0x0000開始到OxOFFF的虛擬存儲器區400可以是實際的隨機存 取存儲器(RAM)且虛擬存儲器區0x8000到OxFFFF可表示實際的程序存儲器。根據此實施 例,具有地址0x1000到0x7FFF的虛擬存儲器區400部分地被映射到所述RAM以形成連續 線性化存儲器塊300。舉例來說,如圖4中所示,地址範圍0x4000到0x49FF用於從每一存 儲器庫IlO1. . IlOn映射80個字節的32個塊,其中在此特定實施例中η = 32。然而,在其 它實施例中,η可能更小或更大且用於此映射的庫的實際數目可少於庫的可用數目。在以上實施例中,構成每一庫中的通用寄存器140的80個字節用於形成單個線 性化連續存儲器塊300,因為對於許多應用,其可用於將所有通用寄存器組合成一個不間斷 塊。然而,因為庫區150還包含不用於通用寄存器的共用存儲器區,因此依據所述實施例, 還可改為使用此存儲器區150或與存儲器區140組合使用,以形成連續存儲器塊。特定來 說,根據各種實施例的原理適用於使用具有中斷庫中的剩餘存儲器的連續性的存儲器映射 的寄存器的庫的所有數據存儲器配置。通過將這些剩餘存儲器庫區組合成通過虛擬存儲器 映射可用的線性化存儲器空間,可實現關於使用分庫方案的常規微處理器/微控制器的增 強。圖5顯示實現如上文所描述的映射的存儲器存取調整電路500。然而,實現相同 結果的其它實施例可適用。CPU 510經由地址總線520與地址解碼器530及地址調整單元 540耦合。地址調整單元540由地址解碼器經由地址調整控制線570控制。地址調整單元 540經由總線550與數據存儲器560耦合且通過地址解碼器530啟用。一般來說,根據圖3及圖4中所示的虛擬尋址方案,如果CPU 510輸出範圍0x0000 到OxOFFF中的地址(舉例來說,通過相關聯地址寄存器),那麼地址調整單元540將不通過 地址解碼器530激活且僅將所述地址傳遞到將由地址解碼器530啟用的數據存儲器560。然 而,根據圖3及圖4中所示的指派方案,如果CPU 510輸出位於地址範圍0x4000到0x49FF 內的地址,那麼地址解碼器530激活地址調整單元540,地址調整單元540將此地址轉換成 數據存儲器560的物理地址以存取相應存儲器庫內的相應存儲器位置。在另一實施例中,可使用不同的地址範圍,例如0x2000到0x29FF。特定地址範圍僅作為實例顯示,根據各種 其它實施例,用戶可根據系統的相應要求選擇具有不同長度的不同地址空間。而且,可依據 相應實施方案來映射多個連續存儲器塊。圖6顯示存儲器存取調整電路600的另一實施例,其中多路復用器610的第一輸 入從兩個特殊功能寄存器660接收地址,所述地址經級聯以形成能夠尋址虛擬存儲器庫 300的長地址。這兩個寄存器在此實例中標示為SFR X及SFR X+1。來自這些寄存器660 的相同地址還經由總線640饋入到地址範圍比較器620及地址轉換器630。所述地址轉換 器根據與圖3及圖4中所示的方案一致的預定義方程式或算法執行地址轉換且將其輸出轉 發到多路復用器610的第二輸入。多路復用器610由地址範圍比較器620控制,地址範圍 比較器620在所述地址位於第一地址範圍內的情況下選擇第一輸入或在所述地址範圍位 於指定虛擬地址範圍內的情況下選擇第二輸入。多路復用器610在與數據存儲器耦合的地 址總線650上輸出其地址。其它電路可完成相同的結果且不特定偏好某種設計來完成虛擬 存儲器映射。
圖7顯示如何在微處理器/微控制器中實施存儲器存取的又一可能性。此實施例 不利用虛擬地址空間,因為所述存儲器可在存取所述存儲器內的不同存儲器位置的兩個相 異地址範圍下尋址。圖7中所示的電路布置700包括使用列及行解碼器的靜態隨機存取存 儲器(SRAM)單元陣列620,如此項技術中一般所知。然而,與常規行解碼器相反,此實施例 針對所述SRAM單元陣列的每一行使用成對的行解碼器。因此,相同行可在不同物理地址下 存取。所述地址分為上部及下部部分而且經由部分地址總線720饋入到列解碼器730且經 由部分地址總線710饋入到行解碼器對單元740」 . 740n。每一行解碼器對單元740」 . 740n 包含經分庫地址解碼器742及線性地址解碼器744,每一這些地址解碼器742、744的行選擇 輸出信號饋入到「或」門720。當操作時,多個地址解碼器檢測依據所述地址是否必須選擇 SRAM單元陣列750的特定行。因此,如果地址位於經分庫存儲器區內,舉例來說,在如圖4 中所示的範圍0x0000到OxOFFF中,那麼經分庫地址解碼器742中的一者將輸出將經由相 應「或」門746饋入到SRAM單元陣列750的行選擇信號。然而,如果所述地址位於(舉例 來說)線性存儲器塊地址0x4000到0x49FF內,那麼線性地址解碼器744中的一者將輸出 又將經由行地址解碼器對單元740」 . 740n中的一者的相應「或」門746饋入到SRAM單元陣 列750的行選擇信號。SRAM單元陣列750組織成行及列,使得根據圖3中所示的方案形成 線性化存儲器塊成為可能。根據使用以不同方式組織的存儲器的其它實施例,可相應地調 節地址解碼以匹配如圖3中所示的映射技術。然而,其它實施例可使用不同的列/行選擇 機構,例如多路復用器或可控制驅動器。因此,本發明極適於實施所述目標並獲得所提及的結果及優點以及其中固有的那 些結果及優點。雖然所屬領域的技術人員可做出眾多改變,但此類改變囊括於所附權利要 求書所界定的本發明的精神內。
權利要求
1.一種處理器裝置,其包含數據存儲器,其包含線性地址空間,所述數據存儲器可通過多個存儲器庫來存取,其中 至少一子組的所述存儲器庫經組織以使得所述子組的每一存儲器庫包含至少第一及第二 存儲器區,其中多個連貫存儲器庫的所述第二存儲器區不形成連貫存儲器塊;地址調整單元,當使用預定義地址範圍時,所述地址調整單元轉換所述地址範圍內的 用以存取所述第二存儲器區的地址以便通過所述地址,多個第二存儲器區形成連續線性存 儲器塊。
2.根據權利要求1所述的處理器,其進一步包含用於啟動所述地址調整單元的地址解 碼器。
3.根據權利要求1所述的處理器,其進一步包含多路復用器,所述多路復用器具有接 收地址及經調整地址的第一及第二輸入且由接收所述地址的地址比較器控制。
4.根據權利要求1所述的處理器,其中所述第一存儲器區包含特殊功能寄存器。
5.根據權利要求1所述的處理器,其中所述第二存儲器區包含通用寄存器。
6.根據權利要求1所述的處理器,其中所述第二存儲器區包含共用存儲器區。
7.根據權利要求1所述的處理器,其中所述第二存儲器區包含通用寄存器。
8.根據權利要求1所述的處理器,其中所述處理器為微控制器或微處理器。
9.根據權利要求1所述的處理器,其中所述第一存儲器區包含核心特殊功能寄存器, 且其中所述子組的每一存儲器庫包含第三存儲器區,所述第三存儲器區包含用於外圍裝置 的特殊功能寄存器。
10.根據權利要求1所述的處理器,其中所述地址調整單元包含第一解碼器單元,其 用於存取存儲器單元陣列的列;及多個行解碼器對,其中每一行解碼器對與所述存儲器單 元陣列的一行相關聯且包含第一行解碼器及第二行解碼器。
11.根據權利要求1所述的處理器,其中所述行解碼器中的一者響應於所述地址。
12.根據權利要求1所述的處理器,其中每一行解碼器輸出通過與所述存儲器單元陣 列耦合的「或」門組合的行選擇信號。
13.一種處理器裝置,其包含數據存儲器,其包含線性地址空間,所述數據存儲器可通過多個存儲器庫來存取,多個特殊功能寄存器,其中至少兩個特殊功能寄存器用來形成級聯地址;第一地址空間,物理數據存儲器被映射到所述第一地址空間;及第二地址空間,多個存 儲器庫的部分存儲器地址區以所述多個存儲器庫的所述部分存儲器地址區形成連續線性 存儲器塊的方式被存儲器映射到所述第二地址空間。
14.根據權利要求13所述的處理器,其進一步包含地址調整單元,所述地址調整單元 將尋址所述線性存儲器塊的地址轉換成物理地址。
15.根據權利要求13所述的處理器,其中存儲器庫包括第一存儲器區,其包含特殊功 能寄存器;及第二存儲器區,其包含通用寄存器,且其中所述第二存儲器區形成所述部分存 儲器地址區。
16.根據權利要求13所述的處理器,其中存儲器庫的部分存儲器地址區包含用作共用 存儲器區的存儲器。
17.根據權利要求13所述的處理器,其中所述處理器為微控制器或微處理器。
18.根據權利要求13所述的處理器,其中所述數據存儲器為存儲器單元陣列且所述處 理器裝置進一步包含第一解碼器單元,其用於存取存儲器單元陣列的列;及多個行解碼 器對,其中每一行解碼器對與所述存儲器單元陣列的一行相關聯且包含第一行解碼器及第 二行解碼器。
19.根據權利要求13所述的處理器,其中所述第一行解碼器響應於所述第一地址空間 內的地址且所述第二行解碼器響應於所述第二地址空間內的地址。
20.根據權利要求13所述的處理器,其中每一行解碼器輸出通過與所述存儲器單元陣 列耦合的「或」門組合的行選擇信號。
21.一種使用存儲器分庫存取方案來存取處理器中的數據存儲器的方法,所述方法包 含以下步驟將數據存儲器劃分成多個存儲器庫,其中中央處理單元通過所述存儲器庫中的一者直 接存取所述數據存儲器;通過級聯地址寄存器間接存取所述數據存儲器內的連續存儲器塊,其中所述存儲器塊 由至少一子組的存儲器庫的多個部分存儲器區形成,所述多個部分存儲器區在物理存儲器 空間中是不連續的但以其形成所述連續存儲器塊的方式被映射到另一存儲器空間。
22.根據權利要求21所述的方法,其中所述子組具有少於所述多個存儲器庫的存儲器庫。
23.根據權利要求21所述的方法,其中所述連續存儲器塊由所有存儲器庫的部分存儲 器區形成。
24.根據權利要求21所述的方法,其中存儲器庫包含第一存儲器區,其包含特殊功能 寄存器;及第二存儲器區,其包含通用寄存器,其中所述部分存儲器區由所述第二存儲器區 形成。
25.根據權利要求21所述的方法,其中存儲器庫的部分存儲器區包含用作共用存儲器 區的存儲器。
26.根據權利要求21所述的方法,其中在至少所述子組的存儲器庫中,每一存儲器庫 包含特殊功能寄存器、通用寄存器及共用存儲器區。
全文摘要
一種處理器裝置具有帶有線性地址空間的數據存儲器,所述數據存儲器可通過多個存儲器庫來存取。至少一子組的所述存儲器庫經組織以使得所述子組的每一存儲器庫具有至少第一及第二存儲器區,其中多個連貫存儲器庫的所述第二存儲器區不形成連貫存儲器塊。提供一種地址調整單元,當使用預定義地址範圍時,所述地址調整單元轉換所述預定義地址範圍內的用以存取所述第二存儲器區的地址以便通過所述地址,多個第二存儲器區形成連續線性存儲器塊。
文檔編號G06F9/30GK102007477SQ200980113788
公開日2011年4月6日 申請日期2009年7月21日 優先權日2008年7月23日
發明者傑羅爾德·S·茲德內克, 約瑟夫·朱利謝, 維維安·德爾波特, 肖恩·斯蒂德曼 申請人:密克羅奇普技術公司