TW201035866A - Microcontroller with special banking instructions - Google Patents

Microcontroller with special banking instructions Download PDF

Info

Publication number
TW201035866A
TW201035866A TW099104422A TW99104422A TW201035866A TW 201035866 A TW201035866 A TW 201035866A TW 099104422 A TW099104422 A TW 099104422A TW 99104422 A TW99104422 A TW 99104422A TW 201035866 A TW201035866 A TW 201035866A
Authority
TW
Taiwan
Prior art keywords
memory
register
instruction
bank
special function
Prior art date
Application number
TW099104422A
Other languages
English (en)
Other versions
TWI483179B (zh
Inventor
Zeke R Lundstrum
Vivien Delport
Sean Steedman
Joseph Julicher
Original Assignee
Microchip Tech 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 Microchip Tech Inc filed Critical Microchip Tech Inc
Publication of TW201035866A publication Critical patent/TW201035866A/zh
Application granted granted Critical
Publication of TWI483179B publication Critical patent/TWI483179B/zh

Links

Classifications

    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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
    • 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
    • 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/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Description

201035866 · · 六、發明說明: 【發明所屬之技術領域】 本發明係關於整合式微控制器’且更特定言之’係關於 微控制器之記憶體存取。 本申請案主張2009年2月11曰申請之題為「LINEAR MEMORY IN A BANKED RISC MICROCONTROLLER, AND RISC MCU WITH BANKED MEMORY AND SPECIALIZED BANKING INSTRUCTIONS」的美國臨時申 請案第61/151,754號之權利,該臨時申請案之全文併入本 文中。 【先前技術】 可線性存取之資料記憶體空間需要大量記憶體位元組 (例如,隨機存取記憶體(RAM)位元組)在位址空間中相連 地置放且為可定址的。線性記憶體可因此經由長度取決於 RAM之大小的位址而完全定址。具有長指令之微控制器 (諸如’ 32位元微控制器或具有多個指令字之微控制器)可 將此長位址容易地嵌入於指令之運算碼(〇p_c〇de)内。然 而’較小架構(例如’具有有效的有限指令長度之8位元架 構)通常使用(例如)10個位元至15個位元之指令大小,該指 令大小不允許儲存長位址。即使多個字指令可容納較長位 址’此情形仍阻遏緊密編碼,且因此,此等處理器架構可 能不能夠對大線性位址空間直接定址。因此,記憶體編庫 (memory banking)為對較大記憶體提供完全存取之有效方 式。在記憶體編庫中,僅有限量(亦即,單一記憶體記憶 146440.doc 201035866 庫)藉由指標而可用。一指人 m而含有存取選定記憶體 屺隐庫内之所有記憶體位置 叩㈣& 為了切換至選定 5己隐庫外的記憶體位置,需要修改指標。 ❹ Ο 舉例而言’許多RISC架構微控制器可僅經由其指令直接 己憶體之有限量之位元組(例如’ 32或“個位元㈤。 =由使用32或64個位(组之多個記憶庫,可存取額外記憶 ^微控制器大體上為單一晶片上之具有周邊裝置之微處 :益或中央處理單元(CPU)與記憶體的組合。因此,使用 記憶體編庫概念之微控制器另外面對以下問題:用於(例 如)控制此^邊裝置及㈣功能之許多特殊功能暫存器 南要由♦曰7集存取。因此,此等特殊功能暫存器藉由將其 映射至資料記憶體中而可用。因為對―些特殊功能暫存器 之存取在執行程式時為關鍵的,所以在許多微控制器中, :等:殊功能暫存器中之一些需要始終為可用㈣例而 吕,若特殊功能暫存器僅可經由記憶體存取,則用於選擇 記憶體記憶庫之特殊功能暫存器需要始終為可存取的,否 則,使用者將陷於並未使此暫存器可用之記憶體記憶庫 中:為適應此情形’在許多微控制器巾,資料記憶體映射 將最小數目個此㈣殊功能暫存器(SFR)置於記憶體之每 一記憶庫中。然而,此情形致使資料記憶體不相連,因為 未經映射之記憶體區塊由經記憶體映射之暫存器分開。 【發明内容】 因此,需要一種具有一記憶庫式記憶體之微控制器,該 s己憶庫式s己憶體亦提供一比一記憶體記憶庫大的線性記憶 H6440.doc 201035866 體空間。 根據一實施例,一種用於-微控制器之指令集可包含: T資料記憶體,其被劃分成複數個記憶體記憶庫,其h 貧料記憶體包含形成線性資料記憶體之—區塊的未被映射 特殊功能暫存器之該複數個記憶體記憶庫中之一個以 fe、體§己憶庫;一未映射至續資粗4卜备碰 .^ 、 对至0玄貝科s己憶體的記憶庫選擇暫存 用於選擇-記憶體記憶庫;及—間接存取暫 其映射至至少一記憶體記憶庫,該指令集包含.。 =乍以對—選定記憶庫内之所有記憶體位 的複數個指令; *心at 提供對該記憶庫選擇暫存器之存取之至少—卜. 址=該間接存取暫存器執行對該資料記憶體Γ-間接定 址的至少一指令。 U椏疋 ::另::施例,提供對該記憶庫選擇暫存 L 指將一文字寫入至該記憶庫選擇暫存器。根 貫施例,提供對該記憶庫選擇暫存器之存取之另-才曰々可讀取該記憶庫選擇暫存哭 例,提俾對嗲q p 谷。根據另一實施 Μ座t 選㈣存11之存取之另—指令可對咳 _選擇暫存器的— 曰m亥 另一實施例,可操作以對-選定邏輯函數。根據 置直接定址的14 σ心庫内之所有記憶體位 疋址的4複數個指令可 於該複數個記情體,… 縣被δ己憶體映射至少 器。根據另—實//庫之§己憶體記憶庫的特殊功能暫存 億庫,且特殊功::貧料記憶體可包含η個記憶體記 力月匕暫存器可僅映射至該η個記憶體記憶庫 146440.doc 201035866 中之最先m個記憶體記憶庫 例’ n=8且m=4。根據1^根據另-實施 之-偶數記憶體記憶庫各=有:;㈣憶體記憶庫中 能暫存器的一第一隽人,上 1圯丨思體映射之特殊功
^ 〇 且^ m個記t音f ^咅)¾ rH 數記憶體記憶庫各自可含有:體5己隐庫中之-奇 映射之特殊功能暫存芎 3、°亥第-集合的經記憶體 使用該間接存取合。根據另-實施例, ©
的該至少—指令可為可摔己L體之間接定址 憶體位置直接定址的,、“ 、定記憶庫内之所有記 摄疋址的该複數個指令中的一者 位址指向-特殊功能暫存器。根據 、特= 接存取暫存器執行對另,例,該間 一 Μ貝枓§己憶體之—間接定址的該至少 一y可具有-用於執行間接定址之特定運 -貫施例,該微控制器可為一使用12位元指令字之= 微控制器。 — 只鉍例,一種用於在一包含一資料記憶體(其 中該貝料§己憶體被劃分成複數個記憶體記憶庫)之微控制 °°中執行导曰令之方法可包含以下步驟: -僅經由記憶體映射而提供對特殊功能暫存器的存取, /、中間接定址暫存器映射至至少一記憶體記憶庫; 在…、暫存器映射之情況下,於該記憶體内提供複數個 5己憶體记憶庫’藉此形成-線性記憶體區塊; -提供一未經記憶體映射之記憶庫選擇暫存器; 解碼指令; 146440.doc 201035866 右-經解碼之指彳識別對該記憶庫選擇暫#器的—寫入 存取,則: … -將該指令中所含有之—文字寫人至該記憶庫選擇暫 存器中,其中該記憶庫選擇暫存器之内容選擇該 憶體記憶庫中之一者; 若一經解碼之指令包括一直接位址,則: -藉由該記憶庫選擇暫存器選擇一記憶體記憶庫;及 藉由由—指令暫存器提供之位址對該選定記悵 記憶庫定址; w體 及若一經解碼之指令識別間接定址,則: -使用一由該經記憶體映射之間接定址暫存器提供 位址。 、 ㈣另—實施例’若—經解碼之指令識別對該記憶 擇暫存器的一讀取存取,則該方法可包含以下步驟:讀取 該記:庫選擇暫存器中所含有之—文字。根據另—實貝施 例,右一經解碼之指令識別待對該記憶庫選擇暫存器執疒 的一算術或邏輯函數,則該方法可包含以下步驟:讀取: 記憶庫選擇暫存器中所含有之-文字;對該文字執行 術或邏輯函數;及將該文字寫入至該記憶庫選擇暫存/ 根據另—實施例,可操作以對—選定記憶庫内之所有; 體位置直接定址的指令可用以存取被記憶體映射至少^ 複數们D己憶體§己憶庫之記憶體記憶庫的特殊功能暫存器。 =據另—實施例,該資料記憶體可包含n個記憶體記怜 犀’且特殊功能暫存器可僅映射至該„個記憶體記憶庫_ 146440.doc 201035866 之最先m個記憶體記憶庫’其中的。根據另_實施例, ㈣且㈣。減另一實施例,該己憶體記憶庫中之— 偶數記憶體記憶庫各自可含有經記憶體映射之特殊功能暫 • 存器的-第-集合,且該m個記憶體記憶庫中之—奇二 .憶、體記憶庫各自可含有不同於該第-集合的經記憶體映射 之特殊功能暫存器的-第二集合。根據另一實施例,料 ^記憶體之間接定址可藉由執行對_特定的特殊功 〇存器執行一讀取或寫入的-指令來執行。根據另—實施 例,該特殊功能暫存器可為一虛擬暫存器。根據另—實施 例,對該資料記憶體之間接定址可藉由執行對—特定 殊功能暫存器執行一讀取或寫入的一指令來執行。, 【實施方式】 :據本發明之教示,提供未經記憶體映射之記憶庫選擇 暫存器⑽R)以用於選擇用於直接定址之複數個記怜體―己 憶庫中的一者。記憶體映射暫存器用於獨立於選定吃憶雕 ❹記憶庫之間接定址。特殊化編庫指令(例如,將「文二 動至峨暫存器(MOVLB)」)之添加允許記憶體之記^庫 t之所有資料位元組用於通用f料’且因此’允許進行跨 越不含有任何經映射之特殊功能暫存器之複數個記憔: 憶庫的相連定址。因此,選擇作用中記憶體記憶庫:咖 Z存器未在資料暫存器中映射,但可能可藉由特殊化命令 存取。 ^此’亚不具有或需要特殊暫存器之複數個記憶體記憶 為可用的。此情形在不擔心或需要每一記憶體記憶料 146440.doc 201035866 之特殊功能暫存器(SFR)的情況下允許經由間接定址暫存 器(FSR)對把憶體之相鄰記憶庫間接定址。此情形允許進 :丁(例如)用作緩衝II、表、暫用記憶體區_咖) 等之。己L體之較大區塊的定址。可因此實施使用比記憶庫 式記憶體大小大之資料結構的任何功能。 圖1展不具有可藉由編庫機制存取之資料記憶體之習知 微控制益的簡化方塊圖。程式記憶體11G儲存形成一可執 行程式之複數個指令。程式計數器115可被設計成具有(例 如)用於對2k線性程式記憶體定址的u個位元。可提供堆 疊120以在執料常式時料程式計數H值。所展示之例 不性微控制器為藉由儲存於程式記憶體⑽中之⑵立元指 令字操作的8位元哈佛(Harvard)型微控制器。因此,中央8 位元資料匯流排105可用以㈣該微控制器内之各種功能 兀件,諸如,計時器單元〇及外部埠B 13 〜流排一自位址多工器]4。接收(:二 凡位址。對於直接定址,位址多卫器⑽組合來自由指令 暫存器135供應之位址資料盥由转 ,、田将殊功能暫存器I45供應之 位址資料的位址。在直接定 接疋址杈式中,指令暫存器135因 此供應下方5個位元,且特殊功 _ 月匕膂存益145供應上方3個 位元。因此’根據一實施例,转 J特殊功能暫存器145作為能 夠選擇8個不同記憶體記憶庫中 ^ 者的s己憶庫選擇暫存 器而操作。在間接定址中,特洗 荷殊功旎暫存器提供豆有 所有位元0至7之完整位址。間接 、 間接疋址精由存取為虛擬暫存 益且因此並非為實體暫存器 W殊功忐暫存器INDF來實 -ΙΟ Ι 46440.doc 201035866 施。對此暫存器INDF之任何讀取或寫入存取促使間接存 取經由特殊功能暫存器145應用於資料記憶體125。因此, 替代讀取或寫入暫存器INDF,執行間接資料記憶體存 取。
根據各種實施例,指令暫存器135自程式記憶體11〇直接 接收指令且(例如)經由另一内部8位元匯流排與指令解碼及 控制單7L180耦接。指令解碼及控制單元18〇此外與由單元 k t、之特疋内部功能耦接。舉例而言,此功能單元175 可包括裝置重設計時器、開機重設元件(Won reset)、 監視料器、内部RC時脈等。可整合其他功能及/或可省 ,特,功能。時序產生單元185可提供内部時序信號且亦 可與單兀175耦接。圖!中所展示之習知8位元微控制器核 心具有與狀態暫存器15喻接之算術邏輯單元⑽(則)。 ALU 160進-步與工作暫存器165輕接且一方面經由多工哭 ,自指令暫存器135及8位元資料匯流排接收資料,且; Γ方面自工作暫存11165接收資料。圖1因此僅展示微控制 益核。之些本質結構。其他内部結構為可能的且可與圖 2中所展示之特定眘八 ·貫轭例組合,如將在下文中更詳細地解 释。 射圖習知微控制器^之資料記憶體125的結構及映 -為可用的所提及,因為至少某一特殊功能暫存器必須始 :了用的,所以所有記憶體記憶庫之 最先〗6個資料你士 , a 丨王〒的 特殊功能暫存器可::有16個特殊功能暫存器的值。此等 體分離H映射架構將 146440.doc 201035866 此16個特殊功能暫存器映射至所有記憶體記憶庫。在圖2 中所展示之實施例中,每一記憶體記憶庫在位址〇〇h至OFh 中含有相同特殊功能暫存器。然而,由於一些特殊功能暫 存器較不關鍵,因此其可僅在每隔一個記憶庫中存取。因 此,可將16個以上之特殊功能暫存器映射至最先16個位址 中。舉例而言,所有偶數記憶庫及所有奇數記憶庫分別具 有同一映射結構。 圖4展示偶數記憶庫及奇數記憶庫各自含有特殊功能暫 存器之不同集合的例示性映射。舉例而言,所有偶數記憶 庫可具有映射至位址〇〇h至06h之以下特殊功能暫存器: INDF-若經存取,則FSR用以間接對資料記憶體定址。 TMR0-計時器0模組暫存器 PCL-儲存程式計數器之低階位元 STATUS-含有CPU之典型狀態位元 FSR-記憶庫選擇暫存器,含有3個位元以選擇八個記憶 體頁中之一者 OSCCAL-振盪器校準暫存器 PORTB-埠B暫存器 可將以下暫存器映射至所有奇數記憶體記憶庫之位址 00h至06h : 00h-INDF-若經存取,則FSR用以間接對資料記憶體定 址。
Olh-EECON-快閃記憶體之組態位元 02h-PCL-儲存程式計數器之低階位元 146440.doc 12 201035866 03h-STATUS-含有CPU之典型狀態位元 04h-FSR-記憶庫選擇暫存器’含有3個位元以選擇一記 憶體頁 05h-EEDATA-快閃記憶體之自寫入資料暫存器 06h-EEADR-快閃記憶體之自寫入位址 剩餘位址07h至〇Fh對於偶數及奇數記憶體記憶庫皆為相 同的。如圖3中所展示,每一記憶庫之上方位址1〇]1至iFh 〇 &含個別通用暫存器'然而’其形成個別小記憶體區塊且 不形成§己憶體之一線性區塊。因此,若(例如)一表比一記 隐庫中之通用暫存器的最大大小大,則該表必須分散至一 個以上記憶庫,且繁複程式化對於存取此表為必須的。 圖2展示克服此限制之微控制器的—例示性實施例。大 體而5,類似7Ό件具有同一參考符號。圖2中所展示之資 料記憶體RAM 225可與如^中所展示之記憶體相同。然 而不同參考符號用以指示不同地映射此rAM 225,如將 〇 在下文中更詳細地解釋。此資料記憶體現包含由未被映射 特殊功能暫存器之複數個連續記憶體記憶庫組成之一線性 記憶體區塊。提供-額外記憶庫選擇暫存器(bsr)2i〇,其 中此暫存器可經由專用指令存取且因此未經記憶體映射。 此暫存器21〇之内容提供由位址多工器22〇提供之位址的上 方個位兀,5亥位址多工器220自指令暫存器接收下方5 個位元。特殊功能暫存器FSR 145現可為可獨立於當前選 定記憶體記憶庫而用於整個線性資料記憶體之間接定址的 8位兀暫存器。在其他實施例中,此暫存器存取可限於藉 I46440.doc -13· 201035866 由將位元7永久設定成「1」而形成該線性資料記憶體的上 方4個5己憶庫。然而’此暫存斋不再自身提供記惊庫選擇 功能。記憶庫選擇僅藉由將各別記憶庫編號寫入至未經記 憶體映射之記憶庫選擇暫存器210中而實現。因此,即使 §選擇線性s己憶體區塊内之記憶體記憶庫時,專用指令仍 允許改變至任何其他記憶體記憶庫。 圖5展示可如何將特殊功能暫存器映射至資料記憶體225 的一實施例。在此實施例中,僅下方四個記憶庫用以提供 對特殊功能暫存器的存取,而上方四個記憶庫現提供線性 相連資料§己憶體空間。圖4亦展示如何執行直接及間接定 址。此處,未經記憶體映射之暫存器BSR 21〇提供記憶庫 選擇資訊,藉此將上方三個位址位元提供給位址多工器 22〇。指令暫存器提供下方5個位址位元。多工器220組合 此兩個位址資料部分以形成用以對資料記憶體225定址之8 位元位址。在其他實施例中,更多或更少位元可用以形成 位m憶庫選擇暫存器21G選擇τ方四個記憶體記憶 庫中之一者,則可將所有位址〇〇h至〇Fh映射回至記憶庫〇 或交替地映射回至記憶庫〇或記憶庫1,如將在圖6中更詳 細地解釋。如上文所提及’上方四個記憶體記憶庫不具有 映射至其之特殊功能暫存器,且因此形成相連線性資料記 憶體。此線性記憶體區塊仍可使用記憶庫選擇暫存器210 及指令運算竭中所提供之位址資訊經由直接定址來存取。 ,而’直接定址限於僅在當前選定記憶庫内執行。因此, 了或者經由特殊功能暫存㈣R 245間接存取線性記憶體 146440.doc 14 201035866 =塊,該特殊功能暫存器FSR 245現可儲存能夠獨立於選 記憶庫對資料記憶體225完全定址的8位元位址。 因此’舉例而言’可經由間接定址簡單地存取具有(例 如)128個條目之表、暫用記憶體或緩衝器。藉由此特殊功 能暫存器245對整個資料記憶體進行的存取可經由特殊指 令來執行或若未實施此指令,則經由對特殊功能暫存』 INDF之讀取或寫人存取來執行,如上文所解釋。
歸因於記憶庫選擇暫存器21〇未經記憶體映射的事實, 如上文所提及,保留特殊運算碼以執行關於此暫存器的讀 取及寫入功能。-或多個專㈣令提供對未經記憶體映射 之記憶庫選擇暫存器210的直接存取。舉例而言,單一指 令「將文字移動至嫌暫存器」(MqVlb)可用以將資料傳 送至s己憶庫選擇暫存器21 〇中。記憶庫選擇暫存器2丨〇之可 用位元取決於劃分資料記憶體後達成之記憶體記憶庫的數 目。在圖5及圖6中所展示之實例中,將資料記憶體劃分成 八個記憶體記憶庫,每一記憶庫具有32個位元組。因此, 此實施例提供256個資料記憶體位元組,其中上方四個記 憶庫提供形成一未由經映射之特殊功能暫存器中斷的線性 記憶體區塊的128個位元組。 指令MO VLB在解碼時提供對記憶庫選擇暫存器的直接 存取且(例如)將文字直接寫入至暫存器2丨〇中,其中(例如) 僅傳送該文字之下方3個位元。可使用其他編碼,且一個 以上指令可用以對記憶庫選擇暫存器21〇進行讀取及/或寫 入。在其他實施方案中’可提供更多記憶體記憶庫,且記 146440.doc -15- 201035866 憶庫選擇暫存器210可具有能夠對所有記憶庫定址之3個以 上位元。可提供其他額外專用指令。舉例而言,可提供讀 取指令,或任何類型之算術或邏輯修改指令,諸如,遞增 及遞減、遮蔽或布林函式(Boolean function)。因而,可提 供特殊功能暫存器210與ALU 160之額外耦接,如由圖2中 之點線所指示。 圖6展示記憶庫0及2各自含有與記憶庫1及3不同的特殊 功能暫存器集合之256位元組資料記憶體的例示性映射。 舉例而言,可將以下特殊功能暫存器映射至記憶庫〇及2之 位址00h至06h : 00h-INDF-若經存取,則FSR用以間接對資料記憶體定 址。
Olh- TMR0-計時器0模組暫存器 02h-PCL-儲存程式計數器之低階位元 03h-STATUS-含有CPU之典型狀態位元 04h-FSR-記憶庫選擇暫存器,含有3個位元以選擇一記 憶體頁 O5h-OSCCAL-振盪器校準暫存器 O6h-PORTB-埠B暫存器 可將以下暫存器映射至記憶庫1及3之位址00h至06h : 00h-INDF-若經存取,則FSR用以間接對資料記憶體定 址。
Olh-EECON-快閃記憶體之組態位元 02h-PCL-儲存程式計數器之低階位元 J46440.doc -16- 201035866 03h-STATUS-含有CPU之典型狀態位元 04h-FSR- s己憶庫選擇暫存器,含有3個位元以選擇一記 憶體頁 05h-EEDATA-快閃記憶體之自寫入資料暫存器 06h-EEADR-快閃記憶體之自寫入位址 哪一特殊功能暫存器映射至下方四個記憶庫之選擇取決 於特定實施方案且可變化。且,記憶體記憶庫之數目可更 小或更大,用以形成線性記憶體區塊之記憶庫的數目亦 雖然本發明之實施例已加以描繪、描述且參考本發明之 實例實施例得以界定’但此等參考並非暗示對本發明之限 制,且不應推斷出此限制。如—般熟習此項技術者將想 到,所揭示之標的物能夠在形式及功能上進行相當大的修 改、更改及等效處理,且具有本發明之益處。本發明之所 描繪並描述的實施例僅為實例’且並非對本發明之範蜂的
详盡描述。 【圖式簡單說明】 圖1展示習知微控制器之方塊圖; 圖2展示根據—實施例之例示性微控制器的方塊圖; 圖3為展示習知記憶庫式記憶體之方塊圖; 圖4展示偶數記憶庫及奇數 ^ 了数屺L、犀各自含有特殊功能暫 子益之不同集合的例示性映射; 圖5展示根據一實施例之記憶體映射;及 圖6展示根據一實施例之256位元έ &位几組貞枓記憶體的例示性 146440.doc 201035866 映射。 【主要元件符號說明】 105 中央8位元資料匯流排 110 程式記憶體 115 程式計數器 120 堆疊 125 資料記憶體 130 外部埠B 135 指令暫存器 140 位址多工器 145 特殊功能暫存器FSR 150 狀態暫存器 155 多工器 160 算術邏輯單元 165 工作暫存器 170 計時器0 175 功能單元 180 指令解碼及控制單元 185 時序產生單元 210 記憶庫選擇暫存器(BSR)/特殊功能暫存器 220 位址多工器 225 資料記憶體RAM 245 特殊功能暫存器FSR 146440.doc -18-

Claims (1)

  1. 201035866 七、申請專利範圍: 種用於-微控制器之指令集,該微控制器包含:—I 料記憶體,其被劃分成複數個記憶體記憶庫,其中該資 料記憶體包含形成線性資料記憶體之一區塊的未被映射 特殊功能暫存器之該複數個記憶體記憶庫中之—個以上 記憶體記憶庫;一夫咏射5 , 禾、射至4貧料記憶體的記憶庫選擇 暫存器,其用於選擇-記憶體記憶庫;及—間接存取暫
    存器,其映射至至少一記憶體記憶庫,該指令集包含: 可操作以對-選定記憶庫内之所有記憶體位置直接定 址的複數個指令; 提供對該記憶庫選擇暫存器之存取之至少一指令; a使用該間接存取暫存器執行對該資料記憶體之一間接 定址的至少一指令。 2·如請求項1之指令集,其中提供對該記憶庫選擇暫存号 ^存取之該至少·^令將-文字寫人至該記 ❹ 存器。 3. 如π求項2之指令集,其中提供對該記憶庫選擇暫存器 之存取之另一指令讀取該記憶庫選擇暫存器的内容。 4. 如睛求項2之指令集’其中提供對該記憶庫選擇暫存器 之=取之另—指令對該記憶庫選擇暫存器的—内容執行 -算術或邏輯函數。 5_如睛求項以指令集’其中可操作以對一選定記憶庫内 之所有C憶體位置直接定址的該複數個指令用以存取被 圮憶體映射至少於該複數個記憶體記憶庫之記憶體記憶 146440.doc 201035866 庫的特殊功能暫存器β 6.如請求項5之指令集,其中該資料記憶體包含_記憶體 §己憶庫,且特殊功能暫存器僅映射至該η個記憶體記憶 庫中之最先m個記憶體記憶庫,其中m<n。 、 7·如請求項6之指令集,其中n=8且m=4。 8·如请求項6之指令集,其中該爪個記憶體記憶庫中之—偶 數圮憶體記憶庫各自含有經記憶體映射之特殊功能暫存 器的一第一集合,且該m個記憶體記憶庫中之—奇數圮 憶體記憶庫各自含有不同於該第一集合的經記憶體映: 之特殊功能暫存器的一第二集合。 9·如請求項〖之指令集,其中使用該間接存取暫存器執行 對該資料記憶體之一間接定址的該至少—指令為可操= 以對一選定記憶庫内之所有記憶體位置直接定址的該複 數個指令中的一者,纟中該選定位址指向—特殊功能斬 存器。 曰 10·如請求項9之指令集,其中該特殊功能暫存器為一虛擬 暫存器。 11. 如請求項〗之指令集,其中使用該間接存取暫存器執行 對該資料記憶體之一間接定址的該至少一指令具有一用 於執行間接定址之特定運算碼。 12. 如請求項1之指令集,其中該微控制器為—使用12位元 指令字之8位元微控制器。 13. —種用於在一微控制器中執行指令之方法,該微控制器 包含—資料記憶體,其中該資料記憶體被劃分成複數個 146440.doc 201035866 δ己憶體S己憶庫’該方法包含以下步驟. 僅經由記憶體映射而提供對特殊功能暫存器的存取, 其中一間接定址暫存器映射至至少—記憶體記憶庫.. /無暫存器映射之情況下’於該記憶體内提供複數個 。己憶體5己憶庫,藉此形成一線性記憶體區塊; 提供一未經記憶體映射之記憶庫選擇暫存器,· 解碼指令; Ο Ο 若一經解碼之指令識別對該記憶庫選擇暫存 入存取,則: 两 /該指令中所含有之-文字寫人至該記憶庫選擇暫存 益中’其中該記憶庫選擇塹在吳 + 憶體記憶庫中之—者存益之内谷選擇該複數個記 若—經解碼之指令包括—直接位址,則: 藉由該記憶庫選擇暫存器選擇一記憶體記憶庫,及 :由-由-指令暫存器提供之位址對該選定記 憶庫定址; 及若一經解碼之指令識別間接定址,則: 使用-由該經記憶體映射之間接定址暫存器提供的位 址0 項13之方法,其中若—經解碼之指令識別對該記 擇暫存器的一讀取存取,則:讀取 暫存器中所含有之一文字。 造擇 15.tn項13之方法’其中若—經解碼之指令識別待對該 。心選擇暫存器執行的—算術或邏輯函數,則: 146440.doc 201035866 讀取該記憶庫選擇暫存器中所含有之一文字, 對該文字執行一算術或邏輯函數,及 將该文子寫入至該記憶庫選擇暫存器。 16. 17. 18. 19. 20. 21. 22. 如味求項13之方法,其中可操作以對一選定記憶庫内之 所有記憶體位置直接定址的指令用以存取被記憶體映射 至少於忒複數個記憶體記憶庫之記憶體記憶庫的特殊功 能暫存器。 如明求項16之方法,其中該資料記憶體包含n個記憶體 L庫且特殊功忐暫存器僅映射至該η個記憶體記憶 庫中之最先m個記憶體記憶庫,其中m<n。 如請求項17之方法,其中n=8且m=4。 士明求項1 7之方法,其中該m個記憶體記憶庫中之一偶 =圯k體記憶庫各自含有經記憶體映射之特殊功能暫存 态的一第一集合,且該爪個記憶體記憶庫中之一奇數記 憶體記憶庫各自含有不同於該第一集合的經記憶體映射 之特殊功能暫存器的一第二集合。 ^月求項13之方法,其中對該f料記憶體之間接定址係 藉由執行對一特定的特殊功能暫存器執行一讀取或寫入 的—指令來執行。 如請求項20之方法 存器。 其中該特殊功能暫存器為一虛擬暫 如請求項13之方法,其中對該 Μ , ^ 貝丁寸圯隳體之間接定址 曰 仃對一特定的特殊功能暫存器執行_ ^ _ 的-指令錄行。 卩 146440.doc
TW099104422A 2009-02-11 2010-02-11 微控制器及用於在一微控制器中執行指令之方法 TWI483179B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15175409P 2009-02-11 2009-02-11
US12/701,720 US8799552B2 (en) 2009-02-11 2010-02-08 Microcontroller with special banking instructions

Publications (2)

Publication Number Publication Date
TW201035866A true TW201035866A (en) 2010-10-01
TWI483179B TWI483179B (zh) 2015-05-01

Family

ID=42541313

Family Applications (2)

Application Number Title Priority Date Filing Date
TW099104423A TWI516918B (zh) 2009-02-11 2010-02-11 具有在記憶庫式記憶體中的線性記憶體之微控制器
TW099104422A TWI483179B (zh) 2009-02-11 2010-02-11 微控制器及用於在一微控制器中執行指令之方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW099104423A TWI516918B (zh) 2009-02-11 2010-02-11 具有在記憶庫式記憶體中的線性記憶體之微控制器

Country Status (7)

Country Link
US (2) US8793426B2 (zh)
EP (2) EP2396723B1 (zh)
KR (2) KR101668314B1 (zh)
CN (2) CN102282538B (zh)
ES (1) ES2619724T3 (zh)
TW (2) TWI516918B (zh)
WO (2) WO2010093657A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI474169B (zh) * 2012-12-22 2015-02-21 Himax Tech Ltd 記憶體資料存取方法及記憶體資料存取控制器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541745B (zh) * 2010-12-31 2015-10-21 上海海尔集成电路有限公司 微控制器数据存储器的寻址方法和微控制器
US9513912B2 (en) 2012-07-27 2016-12-06 Micron Technology, Inc. Memory controllers
US9304693B1 (en) 2012-12-17 2016-04-05 Marvell International Ltd. System and method for writing data to a data storage structure
US20160170466A1 (en) * 2014-12-15 2016-06-16 Jefferson H. HOPKINS Power saving multi-width processor core
US9946482B2 (en) * 2015-07-14 2018-04-17 Microchip Technology Incorporated Method for enlarging data memory in an existing microprocessor architecture with limited memory addressing
US10255073B2 (en) * 2016-05-12 2019-04-09 Microchip Technology Incorporated Microcontroller with variable length move instructions using direct immediate addressing or indirect register offset addressing

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727510A (en) * 1985-05-24 1988-02-23 Unisys Corporation System for addressing a multibank memory system
JPS6298434A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ処理システム
US5317706A (en) * 1989-11-15 1994-05-31 Ncr Corporation Memory expansion method and apparatus in a virtual memory system
US5530934A (en) * 1991-02-02 1996-06-25 Vlsi Technology, Inc. Dynamic memory address line decoding
EP0612422B1 (en) 1991-11-12 2000-07-05 Microchip Technology Inc. Microcontroller with fuse-emulating latches and method of testing
WO1994003860A1 (en) * 1992-08-07 1994-02-17 Thinking Machines Corporation Massively parallel computer including auxiliary vector processor
US5579277A (en) * 1995-05-01 1996-11-26 Apple Computer, Inc. System and method for interleaving memory banks
DE19718658A1 (de) * 1997-05-02 1998-11-05 Philips Patentverwaltung Verfahren zur Kennzeichnung von Video-Daten und Video-Datenspeichern mit Mitteln zur Erzeugung eines Video-Daten-Codes
US6029241A (en) * 1997-10-28 2000-02-22 Microchip Technology Incorporated Processor architecture scheme having multiple bank address override sources for supplying address values and method therefor
SE518099C2 (sv) 1997-11-21 2002-08-27 Claes Johansson Automotive Ab Inställbart pedalställ för ett fordon
US6009019A (en) * 1998-02-05 1999-12-28 S3 Incorporated Real time DRAM eliminating a performance penalty for crossing a page boundary
US6708268B1 (en) * 1999-03-26 2004-03-16 Microchip Technology Incorporated Microcontroller instruction set
US6795911B1 (en) * 2000-01-28 2004-09-21 Oki Electric Industry Co., Ltd. Computing device having instructions which access either a permanently fixed default memory bank or a memory bank specified by an immediately preceding bank selection instruction
JP2002073330A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
US6603704B2 (en) * 2001-09-26 2003-08-05 Micron Technology, Inc. Reduced current address selection circuit and method
US7437532B1 (en) * 2003-05-07 2008-10-14 Marvell International Ltd. Memory mapped register file
EP1706817B1 (en) 2003-10-23 2015-04-15 Microchip Technology Inc. Microcontroller with a virtual memory bank
CN1898641B (zh) * 2003-10-23 2015-03-25 密克罗奇普技术公司 微控制器指令集
US7082075B2 (en) * 2004-03-18 2006-07-25 Micron Technology, Inc. Memory device and method having banks of different sizes
US7359252B2 (en) * 2006-01-09 2008-04-15 Infineon Technologies Ag Memory data bus structure and method of transferring information with plural memory banks
US9208095B2 (en) * 2006-12-15 2015-12-08 Microchip Technology Incorporated Configurable cache for a microprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI474169B (zh) * 2012-12-22 2015-02-21 Himax Tech Ltd 記憶體資料存取方法及記憶體資料存取控制器

Also Published As

Publication number Publication date
ES2619724T3 (es) 2017-06-26
EP2396723B1 (en) 2019-07-03
US20100205346A1 (en) 2010-08-12
CN102282538B (zh) 2015-04-22
KR101668317B1 (ko) 2016-10-21
EP2396722A2 (en) 2011-12-21
US8793426B2 (en) 2014-07-29
TWI516918B (zh) 2016-01-11
US8799552B2 (en) 2014-08-05
KR101668314B1 (ko) 2016-10-28
EP2396723A2 (en) 2011-12-21
WO2010093657A3 (en) 2010-11-18
TW201035756A (en) 2010-10-01
TWI483179B (zh) 2015-05-01
CN102282538A (zh) 2011-12-14
WO2010093661A2 (en) 2010-08-19
WO2010093661A3 (en) 2010-11-25
CN102282539B (zh) 2014-09-10
CN102282539A (zh) 2011-12-14
US20100205345A1 (en) 2010-08-12
KR20110128786A (ko) 2011-11-30
EP2396722B1 (en) 2016-12-21
WO2010093657A2 (en) 2010-08-19
KR20110128787A (ko) 2011-11-30

Similar Documents

Publication Publication Date Title
TW201035866A (en) Microcontroller with special banking instructions
TW382091B (en) Resizable and relocatable memory scratch pad as a cache slice
KR101348048B1 (ko) 개선된 플래시 메모리 호환성을 갖는 전자 장치 및 전자 장치의 플래시 메모리 호환성을 개선하는 방법
ES2297417T3 (es) Invalidacion de almacenamiento, borrado de elementos de la memoria intermedia.
US20110072190A1 (en) Memory device and method
JP5787444B2 (ja) プログラム可能メモリコントローラ
TW201101306A (en) Flash memory controller circuit and storage system and data transfer method thereof
TW200416535A (en) Method and apparatus for determining a dynamic random access memory page management implementation
JP2008529181A5 (zh)
TW201011642A (en) Enhanced microprocessor or microcontroller
CN104866357B (zh) 数字信号处理器的boot启动方法及其启动装置
TWI379195B (en) Method and device for accessing memory and central processing unit using the same
JP2009288977A (ja) キャッシュメモリ制御装置、半導体集積回路、およびキャッシュメモリ制御方法
JP2015511049A (ja) コンテキストスイッチを伴うマイクロコントローラ
TW200415463A (en) Computer system embedding sequential buffers therein for improving the performance of a digital signal processing data access operation and a method thereof
CN118331898A (zh) 生成nvm芯片接口命令的方法及nvm控制器
JP5460409B2 (ja) 情報処理システム
TWI334572B (en) Method for performing jump and translation state change at the same time
CN104240756B (zh) 控制装置及存取系统
JAKOBSSON et al. 7. PIC 16F84
US20130080747A1 (en) Processor and instruction processing method in processor