CN102282539B - 微控制器以及用于对微控制器的数据存储器寻址的方法 - Google Patents

微控制器以及用于对微控制器的数据存储器寻址的方法 Download PDF

Info

Publication number
CN102282539B
CN102282539B CN201080004731.3A CN201080004731A CN102282539B CN 102282539 B CN102282539 B CN 102282539B CN 201080004731 A CN201080004731 A CN 201080004731A CN 102282539 B CN102282539 B CN 102282539B
Authority
CN
China
Prior art keywords
memory
register
address
storehouse
special function
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201080004731.3A
Other languages
English (en)
Other versions
CN102282539A (zh
Inventor
齐克·R·伦德斯特鲁姆
维维安·德尔波特
肖恩·斯蒂德曼
约瑟夫·朱利谢尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology 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 Technology Inc filed Critical Microchip Technology Inc
Publication of CN102282539A publication Critical patent/CN102282539A/zh
Application granted granted Critical
Publication of CN102282539B publication Critical patent/CN102282539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)

Abstract

一种微控制器具有:数据存储器,其被划分成多个存储器库;地址多路复用器,其用于将地址提供到所述数据存储器;指令寄存器,其将第一部分地址提供到所述地址多路复用器的第一输入端;未映射到所述数据存储器的库选择寄存器,其用于将第二部分地址提供到所述地址多路复用器的所述第一输入端;及多个特殊功能寄存器,其映射到所述数据存储器,其中所述多个特殊功能寄存器包含与所述地址多路复用器的第二输入端耦合的间接存取寄存器,且其中所述数据存储器包含形成无特殊功能寄存器被映射到的线性数据存储器块的所述多个存储器库中的一个以上存储器库。

Description

微控制器以及用于对微控制器的数据存储器寻址的方法
相关申请案的交叉参考
本申请案主张2009年2月11日申请的标题为“库式RISC微控制器中的线性存储器,及具有库式存储器及专用编库指令的RISC MCU(LINEAR MEMORY IN A BANKEDRISC MICROCONTROLLER,AND RISC MCU WITH BANKED MEMORY ANDSPECIALIZED BANKING INSTRUCTIONS)”的第61/151,754号美国临时申请案的权益,所述临时申请案的全文并入本文中。
技术领域
本发明涉及集成式微控制器,且更确切地说,涉及微控制器的存储器存取。
背景技术
可线性存取的数据存储器空间需要大量存储器字节(例如,随机存取存储器(RAM)字节)在地址空间中相连地放置且为可寻址的。线性存储器可于是经由长度取决于RAM的大小的地址而完全寻址。具有长指令的微控制器(例如,32位微控制器或具有多个指令字的微控制器)可将此长地址容易地嵌入于指令的运算码(op-code)内。然而,较小架构(例如,具有有效的有限指令长度的8位架构)通常使用(例如)10个位至15个位的指令大小,所述指令大小不允许存储长地址。即使多个字指令可容纳较长地址,此情形仍阻遏压缩编码,这些处理器架构可能不能够对大线性地址空间直接寻址。因此,存储器编库(memory banking)为对较大存储器提供完全存取的有效方式。在存储器编库中,仅有限量(即,单一存储器库)通过指针而可用。指令可于是含有存取选定存储器库内的所有存储器位置的足够位。为了切换到选定库外的存储器位置,需要修改指针。
举例来说,许多RISC架构微控制器可仅经由其指令直接存取存储器的有限量的字节(例如,32或64个字节)。通过使用32或64个字节的多个库,可存取额外存储器。微控制器大体上为单一芯片上的具有外围装置的微处理器或中央处理单元(CPU)与存储器的组合。因此,使用存储器编库概念的微控制器另外面对以下问题:用于(例如)控制这些外围装置及内部功能的许多特殊功能寄存器需要由指令集存取。因此,这些特殊功能寄存器通过将其映射到数据存储器中而可用。因为对一些特殊功能寄存器的存取在执行程序时为关键的,所以在许多微控制器中,这些特殊功能寄存器中的一些需要始终为可用的。举例来说,如果特殊功能寄存器仅可经由存储器存取,则用于选择存储器库的特殊功能寄存器需要始终为可存取的,否则,用户将陷于并未使此寄存器可用的存储器库中。为适应此情形,在许多微控制器中,数据存储器映射将最小数目个这些特殊功能寄存器(SFR)放置于存储器的每一库中。然而,此情形致使数据存储器不相连,因为未经映射的存储器块由经存储器映射的寄存器分开。
发明内容
因此,需要一种具有库式存储器的微控制器,所述库式存储器还提供比存储器库大的线性存储器空间。
根据一实施例,一种微控制器可包含:数据存储器,其被划分成多个存储器库;地址多路复用器,其用于将地址提供到所述数据存储器;指令寄存器,其将第一部分地址提供到所述地址多路复用器的第一输入端;未映射到所述数据存储器的库选择寄存器,其用于将第二部分地址提供到所述地址多路复用器的第一输入端;及多个特殊功能寄存器,其映射到所述数据存储器,其中所述多个特殊功能寄存器包含与所述地址多路复用器的第二输入端耦合的间接存取寄存器,且其中所述数据存储器包含形成线性数据存储器的块的未被映射特殊功能寄存器的所述多个存储器库中的一个以上存储器库。
根据另一实施例,所述数据存储器可包含n个存储器库,且m个存储器库形成线性数据存储器的所述块。根据另一实施例,n=8且m=4。根据另一实施例,所述特殊功能寄存器可存储器映射到除所述m个存储器库外的所有存储器库的下方部分。根据另一实施例,除所述m个存储器库外的所有存储器库的偶数存储器库及奇数存储器库各自可含有不同组的经存储器映射的特殊功能寄存器。根据另一实施例,所述特殊功能寄存器可包含虚拟寄存器,且其中对所述虚拟寄存器的读取或写入存取使用所述间接存取寄存器而引起间接数据存储器存取。根据另一实施例,所述特殊功能寄存器可包含用于执行快闪存储器的编程的寄存器。根据另一实施例,所述特殊功能寄存器可选自由以下各者组成的群组:程序计数器寄存器、状态寄存器、定时器寄存器、端口寄存器、振荡器校准寄存器。根据另一实施例,所述微控制器可为使用12位指令字的8位微控制器。
根据又一实施例,一种用于对微控制器的存储器(其中所述存储器被划分成多个存储器库)寻址的方法可包含以下步骤:仅经由存储器映射而提供对特殊功能寄存器的存取,其中间接寻址寄存器映射到至少一个存储器库;在无寄存器映射的情况下,在所述存储器内提供多个存储器库,借此形成线性存储器块;提供未经存储器映射的库选择寄存器;其中对于直接寻址:通过所述库选择寄存器选择存储器库;及通过由指令寄存器提供的地址对所述选定存储器库寻址;且其中对于间接寻址:使用由所述经存储器映射的间接寻址寄存器提供的地址。
根据另一实施例,所述数据存储器可包含n个存储器库,且m个存储器库可形成所述线性存储器块。根据另一实施例,n=8且m=4。根据另一实施例,所述方法可进一步包含将所述特殊功能寄存器存储器映射到除所述m个存储器库外的所有存储器库的下方部分的步骤。根据另一实施例,除所述m个存储器库外的所有存储器库的偶数存储器库及奇数存储器库各自可含有不同组的经存储器映射的特殊功能寄存器。根据另一实施例,间接寻址可由对虚拟寄存器的读取或写入存取执行。根据另一实施例,所述特殊功能寄存器可包含用于执行快闪存储器的编程的寄存器。根据另一实施例,所述特殊功能寄存器可选自由以下各者组成的群组:程序计数器寄存器、状态寄存器、定时器寄存器、端口寄存器、振荡器校准寄存器。根据另一实施例,所述微控制器可为使用12位指令字的8位微控制器。
根据又一实施例,一种微控制器可包含:数据存储器,其被划分成多个存储器库,其中所述存储器内的多个存储器库无经映射的特殊功能寄存器,借此形成线性存储器块;特殊功能寄存器,其映射到所述数据存储器,所述特殊功能寄存器可仅经由所述存储器由所述微控制器存取,其中间接寻址寄存器映射到至少一个存储器库;未经存储器映射的库选择寄存器;其中所述微控制器针对直接寻址可操作以:通过所述库选择寄存器选择存储器库;且通过由指令寄存器提供的地址对所述选定存储器库寻址;且针对间接寻址可操作以:使用由所述经存储器映射的间接寻址寄存器提供的地址。
根据另一实施例,所述数据存储器可包含8个存储器库,且四个存储器库形成所述线性存储器块。根据另一实施例,所述特殊功能寄存器可存储器映射到除所述四个存储器库外的所有存储器库的下方部分。根据另一实施例,除所述四个存储器库外的所述所有存储器库的偶数存储器库及奇数存储器库各自可含有不同组的经存储器映射的特殊功能寄存器。
附图说明
图1展示常规微控制器的框图;
图2展示根据一实施例的示范性微控制器的框图;
图3为展示常规库式存储器的框图;
图4展示偶数库及奇数库各自含有不同组的特殊功能寄存器的示范性映射;
图5展示根据一实施例的存储器映射;及
图6展示根据一实施例的256字节数据存储器的示范性映射。
具体实施方式
根据本发明的教示,提供未经存储器映射的库选择寄存器(BSR)以用于选择用于直接寻址的多个存储器库中的一者。存储器映射寄存器用于独立于选定存储器库的间接寻址。特殊化编库指令(例如,“将文字移动到BSR寄存器(MOVLB)”)的添加允许存储器的库中的所有数据字节用于通用数据,且因此,允许进行跨越不含有任何经映射的特殊功能寄存器的多个存储器库的相连寻址。因此,选择作用中存储器库的BSR寄存器未在数据寄存器中映射,但可能可通过特殊化命令存取。
因此,可获得其中并不具有或需要特殊寄存器的多个存储器库。此情形允许经由间接寻址寄存器(FSR)对存储器的相邻库间接寻址,而不必担心或需要每一存储器库中的特殊功能寄存器(SFR)。此情形允许进行(例如)用作缓冲器、表、高速暂存存储器区(scratch pad area)等的存储器的较大块的寻址。可因此实施使用比库式存储器大小大的数据结构的任何功能。
图1展示具有可通过编库机制存取的数据存储器的常规微控制器的简化框图。程序存储器110存储形成可执行程序的多个指令。程序计数器115可被设计成具有(例如)用于对2k线性程序存储器进行寻址的11个位。可提供堆栈120以在执行子例程时存储程序计数器值。所展示的示范性微控制器为通过存储于程序存储器110中的12位指令字操作的8位哈佛(Harvard)型微控制器。因此,中央8位数据总线105可用以耦合所述微控制器内的各种功能元件,例如,定时器单元0及外部端口B130。数据存储器125与此总线105耦合并从地址多路复用器140接收(例如)8位地址。对于直接寻址,地址多路复用器140组合来自由指令寄存器135供应的地址数据与由特殊功能寄存器145供应的地址数据的地址。在直接寻址模式中,指令寄存器135因此供应下方5个位,且特殊功能寄存器145供应上方3个位。因此,根据一实施例,特殊功能寄存器145作为能够选择8个不同存储器库中的一者的库选择寄存器而操作。在间接寻址中,特殊功能寄存器145提供具有所有位0至7的完整地址。通过存取为虚拟寄存器且因此并非为物理寄存器的特殊功能寄存器INDF来实施间接寻址。对此寄存器INDF的任何读取或写入存取迫使经由特殊功能寄存器145将间接存取应用于数据存储器125。因此,替代读取或写入寄存器INDF,执行间接数据存储器存取。
根据各种实施例,指令寄存器135从程序存储器110直接接收指令且(例如)经由另一内部8位总线与指令解码及控制单元180耦合。指令解码及控制单元180此外与由单元175提供的特定内部功能耦合。举例来说,此功能单元175可包括装置复位定时器、开机复位件(power-on reset)、监视定时器、内部RC时钟等。可集成其它功能及/或可省略特定功能。时序产生单元185可提供内部时序信号且也可与单元175耦合。图1中所展示的常规8位微控制器核心具有与状态寄存器150耦合的算术逻辑单元160(ALU)。ALU160进一步与工作寄存器165耦合且一方面经由多路复用器155从指令寄存器135及8位数据总线接收数据,且另一方面从工作寄存器165接收数据。图1因此仅展示微控制器核心的一些本质结构。其它内部结构为可能的且可与图2中所展示的特定实施例组合,如将在下文中更详细地解释。
图3展示常规微控制器中的数据存储器125的结构及映射。如上文所提及,因为至少某一特殊功能寄存器必须始终为可用的,所以所有存储器库的地址00h至0Fh中的最先16个数据字节含有16个特殊功能寄存器的值。这些特殊功能寄存器可与存储器物理上分离。然而,映射架构将此16个特殊功能寄存器映射到所有存储器库。在图2中所展示的实施例中,每个存储器库在地址00h至0Fh中含有相同特殊功能寄存器。然而,由于一些特殊功能寄存器较不关键,因此其可仅在每隔一个库中存取。因此,可将16个以上的特殊功能寄存器映射到最先16个地址中。举例来说,所有偶数库及所有奇数库分别具有同一映射结构。
图4展示偶数库及奇数库各自含有不同组的特殊功能寄存器的示范性映射。举例来说,所有偶数库可具有映射到地址00h至06h的以下特殊功能寄存器:
INDF-如果经存取,则FSR用以间接对数据存储器寻址。
TMR0-定时器0模块寄存器
PCL-存储程序计数器的低阶位
STATUS-含有CPU的典型状态位
FSR-库选择寄存器,含有3个位以选择八个存储器页中的一者
OSCCAL-振荡器校准寄存器
PORTB-端口B寄存器
可将以下寄存器映射到所有奇数存储器库的地址00h至06h:
00h-INDF-如果经存取,则FSR用以间接对数据存储器寻址。
01h-EECON-快闪存储器的配置位
02h-PCL-存储程序计数器的低阶位
03h-STATUS-含有CPU的典型状态位
04h-FSR-库选择寄存器,含有3个位以选择存储器页
05h-EEDATA-快闪存储器的自写入数据寄存器
06h-EEADR-快闪存储器的自写入地址
剩余地址07h至0Fh对于偶数及奇数存储器库均为相同的。如图3中所展示,每一库的上方地址10h至1Fh包含个别通用寄存器。然而,其形成个别小存储器块且不形成存储器的一个线性块。因此,如果(例如)表比一个库中的通用寄存器的最大大小大,则所述表必须分散到一个以上库,且要存取此表必须进行繁琐的编程。
图2展示克服此限制的微控制器的一示范性实施例。大体来说,类似元件具有同一参考符号。图2中所展示的数据存储器RAM225可与如图1中所展示的存储器相同。然而,不同参考符号用以指示以不同方式映射此RAM225,如将在下文中更详细地解释。此数据存储器现在包含由特殊功能寄存器未被映射到的多个连续存储器库组成的线性存储器块。提供额外库选择寄存器(BSR)210,其中此寄存器可经由专用指令存取且因此未经存储器映射。此寄存器210的内容提供由地址多路复用器220提供的地址的上方3个位,所述地址多路复用器220从指令寄存器135接收下方5个位。特殊功能寄存器FSR145现在可为可独立于当前选定存储器库而用于整个线性数据存储器的间接寻址的8位寄存器。在其它实施例中,可通过将位7永久设定成“1”而限制此寄存器以存取形成所述线性数据存储器的上方4个库。然而,此寄存器自身不再提供库选择功能。仅通过将相应库编号写入到未经存储器映射的库选择寄存器210中而实现库选择。因此,即使当选择线性存储器块内的存储器库时,专用指令仍允许改变成任何其它存储器库。
图5展示可如何将特殊功能寄存器映射到数据存储器225的实施例。在此实施例中,仅下方四个库用以提供对特殊功能寄存器的存取,而上方四个库现在提供线性的相连数据存储器空间。图4还展示如何执行直接及间接寻址。此处,未经存储器映射的寄存器BSR210提供库选择信息,借此将上方三个地址位提供给地址多路复用器220。指令寄存器提供下方5个地址位。多路复用器220组合此两个地址数据部分以形成用以对数据存储器225进行寻址的8位地址。在其它实施例中,更多或更少位可用以形成地址。如果库选择寄存器210选择下方四个存储器库中的一者,则可将所有地址00h至0Fh映射回到库0或交替地映射回到库0或库1,如将在图6中更详细地解释。如上文所提及,上方四个存储器库不具有映射到其的特殊功能寄存器,且因此形成相连的线性数据存储器。仍可使用库选择寄存器210及指令运算码中所提供的地址信息经由直接寻址来存取此线性存储器块。然而,直接寻址被限于仅在当前选定库内执行。因此,可或者经由特殊功能寄存器FSR245间接存取线性存储器块,所述特殊功能寄存器FSR245现在可存储能够独立于选定存储器库对数据存储器225进行完全寻址的8位地址。因此,举例来说,可简单地经由间接寻址存取具有(例如)128个条目的表、高速暂存存储器或缓冲器。通过此特殊功能寄存器245对整个数据存储器进行的存取可经由特殊指令来执行或如果未实施此指令,则经由对特殊功能寄存器INDF的读取或写入存取来执行,如上文所解释。
由于库选择寄存器210未经存储器映射的事实,如上文所提及,保留特殊运算码以执行关于此寄存器的读取及写入功能。一个或一个以上专用指令提供对未经存储器映射的库选择寄存器210的直接存取。举例来说,单一指令“将文字移动到BSR寄存器”(MOVLB)可用以将数据传送到库选择寄存器210中。库选择寄存器210的可用位取决于数据存储器划分成的存储器库的数目。在图5及图6中所展示的实例中,将数据存储器划分成八个存储器库,每一库具有32个字节。因此,此实施例提供256个数据存储器字节,其中上方四个库提供形成未由经映射的特殊功能寄存器中断的线性存储器块的128个字节。
指令MOVLB在被解码时提供对库选择寄存器的直接存取且(例如)将文字直接写入到寄存器210中,其中(例如)仅传送所述文字的下方3个位。可使用其它编码,且一个以上指令可用以对库选择寄存器210进行读取及/或写入。在其它实施方案中,可提供更多存储器库,且库选择寄存器210可具有能够对所有库寻址的3个以上位。可提供其它额外专用指令。举例来说,可提供读取指令,或任何类型的算术或逻辑修改指令,例如,递增及递减、遮蔽或布尔函数(Boolean function)。为此,可提供特殊功能寄存器210与ALU160的额外耦合,如由图2中的点线所指示。
图6展示库0及2各自含有与库1及3不同组的特殊功能寄存器的256字节数据存储器的示范性映射。举例来说,可将以下特殊功能寄存器映射到库0及2的地址00h至06h:
00h-INDF-如果经存取,则FSR用以间接对数据存储器寻址。
01h-TMR0-定时器0模块寄存器
02h-PCL-存储程序计数器的低阶位
03h-STATUS-含有CPU的典型状态位
04h-FSR-库选择寄存器,含有3个位以选择存储器页
05h-OSCCAL-振荡器校准寄存器
06h-PORTB-端口B寄存器
可将以下寄存器映射到库1及3的地址00h至06h:
00h-INDF-如果经存取,则FSR用以间接对数据存储器寻址。
01h-EECON-快闪存储器的配置位
02h-PCL-存储程序计数器的低阶位
03h-STATUS-含有CPU的典型状态位
04h-FSR-库选择寄存器,含有3个位以选择一存储器页
05h-EEDATA-快闪存储器的自写入数据寄存器
06h-EEADR-快闪存储器的自写入地址
哪一特殊功能寄存器映射到下方四个库的选择取决于特定实施方案且可变化。且,存储器库的数目可更小或更大,用以形成线性存储器块的库的数目亦然。
虽然本发明的实施例已加以描绘、描述且参考本发明的实例实施例得以界定,但这些参考并非暗示对本发明的限制,且不应推断出此限制。所属领域的技术人员将想到,且受益于本发明,所揭示的标的物能够在形式及功能上进行相当大的修改、更改及等效物。本发明的所描绘并描述的实施例仅为实例,且并非对本发明的范围的详尽描述。

Claims (27)

1.一种微控制器,其包含:
数据存储器,其被划分成多个存储器库,其中所述数据存储器包含所述多个存储器库的第一组存储器库和第二组存储器库;
地址多路复用器,其用于将地址提供到所述数据存储器;
指令寄存器,其将第一部分地址提供到所述地址多路复用器的第一输入端;
库选择寄存器,其用于将第二部分地址提供到所述地址多路复用器的所述第一输入端;以及
多个特殊功能寄存器,其映射到所述数据存储器,包含与所述地址多路复用器的第二输入端耦合的间接存储器地址寄存器,其中
所述库选择寄存器未映射到所述数据存储器,
至少一个特殊功能寄存器被存储器映射到相同存储器库地址下的所述第一组存储器库中的一个以上存储器库,且其中所述第二组存储器库形成无特殊功能寄存器映射到的线性数据存储器块。
2.根据权利要求1所述的微控制器,其中所述数据存储器包含n个存储器库,且m个存储器库形成所述线性数据存储器块。
3.根据权利要求2所述的微控制器,其中n=8且m=4。
4.根据权利要求2所述的微控制器,其中所述特殊功能寄存器被存储器映射到所述第一组存储器库中所有存储器库的下方部分。
5.根据权利要求4所述的微控制器,其中所述第一组存储器库中所有存储器库的偶数存储器库及奇数存储器库各自含有一组不同的经存储器映射的特殊功能寄存器。
6.根据权利要求1所述的微控制器,其中所述特殊功能寄存器包含虚拟寄存器,且其中对所述虚拟寄存器的读取或写入存取引起使用所述间接存储器地址寄存器的间接数据存储器存取。
7.根据权利要求1所述的微控制器,其中所述特殊功能寄存器包含用于执行快闪存储器的编程的寄存器。
8.根据权利要求1所述的微控制器,其中所述特殊功能寄存器是选自由以下各者组成的群组:程序计数器寄存器、状态寄存器、定时器寄存器、端口寄存器、振荡器校准寄存器。
9.根据权利要求1所述的微控制器,其中所述微控制器为使用12位指令字的8位微控制器。
10.根据权利要求1所述的微控制器,其中所述微控制器为8位微控制器,且一个存储器库具有32字节。
11.根据权利要求5所述的微控制器,其中仅所述奇数存储器库包含用于存取快闪存储器的特殊功能寄存器。
12.根据权利要求5所述的微控制器,其中仅所述偶数存储器库包含用于存取端口的特殊功能寄存器。
13.根据权利要求5所述的微控制器,其中仅所述偶数存储器库包含用于振荡器校准的特殊功能寄存器。
14.根据权利要求5所述的微控制器,其中仅所述偶数存储器库包含用于定时的特殊功能寄存器。
15.一种用于对微控制器的数据存储器进行寻址的方法,其中所述数据存储器被划分成多个存储器库,其中所述数据存储器包含所述多个存储器库的第一组存储器库和第二组存储器库,且其中所述微控制器包含用于将地址提供到所述数据存储器的地址多路复用器,将第一部分地址提供到所述地址多路复用器的第一输入端的指令寄存器,将第二部分地址提供到所述地址多路复用器的所述第一输入端的库选择寄存器,以及与所述地址多路复用器的第二输入端耦合的间接存储器地址寄存器,所述方法包含以下步骤:
将包含所述间接存储器地址寄存器的至少一个特殊功能寄存器映射到相同存储器库地址下的所述第一组存储器库中的一个以上存储器库;
不将任何特殊功能寄存器存储器映射到所述第二组存储器库以形成线性数据存储器块;
其中对于直接寻址:
通过所述库选择寄存器选择存储器库,以及
经由所述多路复用器,通过由来自所述指令寄存器的所述第一部分地址和来自所述库选择寄存器的所述第二部分地址形成的地址对所述选定存储器库进行寻址;
且其中对于间接寻址:
通过选择由所述间接存储器地址寄存器提供的地址间接寻址所述数据存储器,以允许存取至少整个线性数据存储器块,该整个线性数据存储器块由所述第二组存储器库形成。
16.根据权利要求15所述的方法,其中所述数据存储器包含n个存储器库,且m个存储器库形成所述线性存储器块。
17.根据权利要求16所述的方法,其中n=8且m=4。
18.根据权利要求16所述的方法,其包含将所述特殊功能寄存器存储器映射到除所述m个存储器库外的所有存储器库的下方部分的步骤。
19.根据权利要求18所述的方法,其中除所述m个存储器库外的所有存储器库的偶数存储器库及奇数存储器库各自含有一组不同的经存储器映射的特殊功能寄存器。
20.根据权利要求15所述的方法,其中通过对虚拟寄存器的读取或写入存取执行间接寻址。
21.根据权利要求15所述的方法,其中所述特殊功能寄存器包含用于执行快闪存储器的编程的寄存器。
22.根据权利要求15所述的方法,其中所述特殊功能寄存器是选自由以下各者组成的群组:程序计数器寄存器、状态寄存器、定时器寄存器、端口寄存器、振荡器校准寄存器。
23.根据权利要求15所述的方法,其中所述微控制器为使用12位指令字的8位微控制器。
24.一种微控制器,其包含:
数据存储器,其被划分成多个存储器库,其中所述数据存储器包含所述多个存储器库的第一组存储器库和第二组存储器库,且所述存储器内的多个存储器库无经映射的特殊功能寄存器,借此形成线性存储器块;
特殊功能寄存器,其映射到所述数据存储器,所述特殊功能寄存器可仅经由所述存储器由所述微控制器存取;
地址多路复用器,其用于将地址提供到所述数据存储器;
指令寄存器,其将第一部分地址提供到所述地址多路复用器的第一输入端;
库选择寄存器,其用于将第二部分地址提供到所述地址多路复用器的所述第一输入端;以及
间接存储器地址寄存器,其与所述地址多路复用器的第二输入端耦合;
其中所述微控制器可针对直接寻址操作以:
通过所述库选择寄存器选择存储器库,且
经由所述多路复用器,通过由来自所述指令寄存器的所述第一部分地址和来自所述库选择寄存器的所述第二部分地址形成的地址对所述选定存储器库进行寻址;
且可针对间接寻址操作以:
通过选择所述间接存储器地址寄存器提供的地址间接寻址所述数据存储器,以允许存取至少整个线性数据存储器块,该整个线性数据存储器块由所述第二组存储器库形成。
25.根据权利要求24所述的微控制器,其中所述数据存储器包含8个存储器库,且四个存储器库形成所述线性存储器块。
26.根据权利要求25所述的微控制器,其中所述特殊功能寄存器被存储器映射到除所述四个存储器库外的所有存储器库的下方部分。
27.根据权利要求26所述的微控制器,其中除所述四个存储器库外的所述所有存储器库的偶数存储器库及奇数存储器库各自含有一组不同的经存储器映射的特殊功能寄存器。
CN201080004731.3A 2009-02-11 2010-02-10 微控制器以及用于对微控制器的数据存储器寻址的方法 Active CN102282539B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15175409P 2009-02-11 2009-02-11
US61/151,754 2009-02-11
US12/701,664 US8793426B2 (en) 2009-02-11 2010-02-08 Microcontroller with linear memory access in a banked memory
US12/701,664 2010-02-08
PCT/US2010/023701 WO2010093657A2 (en) 2009-02-11 2010-02-10 Microcontroller with linear memory in a banked memory

Publications (2)

Publication Number Publication Date
CN102282539A CN102282539A (zh) 2011-12-14
CN102282539B true CN102282539B (zh) 2014-09-10

Family

ID=42541313

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201080004730.9A Active CN102282538B (zh) 2009-02-11 2010-02-10 具有特殊分组指令的微控制器
CN201080004731.3A Active CN102282539B (zh) 2009-02-11 2010-02-10 微控制器以及用于对微控制器的数据存储器寻址的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201080004730.9A Active CN102282538B (zh) 2009-02-11 2010-02-10 具有特殊分组指令的微控制器

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) TWI483179B (zh)
WO (2) WO2010093657A2 (zh)

Families Citing this family (7)

* 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
TWI474169B (zh) * 2012-12-22 2015-02-21 Himax Tech Ltd 記憶體資料存取方法及記憶體資料存取控制器
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0918279A2 (en) * 1997-10-28 1999-05-26 Microchip Technology Inc. Processor architecture scheme having multiple sources for supplying bank address values and method therefor
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

Family Cites Families (19)

* 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
WO1993010501A1 (en) 1991-11-12 1993-05-27 Microchip Technology Inc. Microcontroller with fuse-emulating latches
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
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
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
KR100960095B1 (ko) * 2003-10-23 2010-05-31 마이크로칩 테크놀로지 인코포레이티드 마이크로컨트롤러 명령어 셋트
KR100897857B1 (ko) 2003-10-23 2009-05-15 마이크로칩 테크놀로지 인코포레이티드 마이크로컨트롤러 명령어 셋트
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0918279A2 (en) * 1997-10-28 1999-05-26 Microchip Technology Inc. Processor architecture scheme having multiple sources for supplying bank address values and method therefor
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TIM WILHURST.Designing embedded systems with PIC microcontrollers:principles and applications.《Designing embedded systems with PIC microcontrollers:principles and applications》.2006, *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN102282539B (zh) 微控制器以及用于对微控制器的数据存储器寻址的方法
ES2327058T3 (es) Invalidacion de almacenamiento, borrado de elementos de la memoria intermedia.
EP1839159B1 (en) Data processing apparatus having memory protection unit
US5787493A (en) Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory
KR20100101090A (ko) 개선된 마이크로프로세서 또는 마이크로컨트롤러
US5317706A (en) Memory expansion method and apparatus in a virtual memory system
CN101008922A (zh) 面向异构多核体系的段页式存储空间管理方法
US7996647B2 (en) Enhanced microprocessor or microcontroller
CN101868780B (zh) 增强的微处理器或微控制器
CN100538623C (zh) 一种8位微控制器
US11537389B2 (en) Memory devices, systems, and methods for updating firmware with single memory device
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
TWI574152B (zh) 具有上下文切換之微控制器
CN102541745A (zh) 微控制器数据存储器的寻址方法和微控制器
JAKOBSSON et al. 7. PIC 16F84

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant