在具有有限存储器寻址的现存微处理器架构中用于增大数据存储器的方法与流程

文档序号:14033585阅读:160来源:国知局
在具有有限存储器寻址的现存微处理器架构中用于增大数据存储器的方法与流程

相关专利申请案

本申请案主张2015年7月14日申请的共同拥有的第62/192,434号美国临时专利申请案的优先权,所述申请案为了全部目的特此以引用的方式并入本文中。

本发明涉及微处理器或微控制器架构,特定来说涉及库选择机制。



背景技术:

库选择机制在微处理器架构的技术中为众所周知的。其通常应用于低成本系统中,低成本系统在指令字中提供有限数目个位且因此仅具有有限寻址能力。举例来说,如果指令字限于针对地址提供最大7个位,那么单一指令字仅可寻址128个存储器位置。库选择机制可用于选择存储器库,例如上文提及的实例中寻址128个存储器位置的库。库选择寄存器可为可经存储器映射的单独寄存器或其可为极低成本的微处理器或微控制器中的状态寄存器的部分且仅提供2个位。此库选择寄存器的实例是pic16系列,也参见可从微芯片技术公司(microchiptechnologiesinc)公司购得的1997年的“picmicrotm中档mcu系列参考手册(picmicrotmmid-rangemcufamilyreferencemanual)”,其特此以引用的方式并入。状态寄存器并入2个位用于选择四个数据存储器库中的一者且并入1个位用于选择两个程序存储器库中的一者。因此,这些类型的微处理器或微控制器限于最大4×128个字节=512个字节,其中数据存储器中的某些存储器位置用于存储器映射特殊功能寄存器,接着,取决于实施方案,特殊功能寄存器将数据存储器中的通用寄存器的数目进一步减小到通常约368个字节的最大值。



技术实现要素:

根据实施例,一种用于扩展用于微处理器架构的数据存储器的方法,所述数据存储器包括用于存取分成多个存储器库的数据存储器的库选择存取方案及经配置以选择存储器库的库选择寄存器,且其中所述微处理器架构包括具有用于选择存储器库的专属指令的指令集;其中所述专属库选择指令的操作码提供最大n个位的有效负载,借此提供经配置以选择最大2n个存储器库的地址值,所述方法包括以下步骤:使用提供m个位的有效负载的测试指令的操作码用于新库选择指令,其中m>n;及使用所述专属库选择指令的操作码用于新测试指令。

根据进一步实施例,所述测试指令是在仿真环境中更新仿真状态的设置控制指令。根据进一步实施例,所述设置控制指令可在所述微处理器的正常操作期间作为不操作指令执行。根据进一步实施例,n=5且m=6。根据进一步实施例,所述多个存储器库的至少一子集各自包括多个核心寄存器、多个存储器映射的特殊功能寄存器、多个通用寄存器及多个共同通用寄存器,其中将所述共同通用寄存器及所述核心寄存器映射到每一存储器库。根据进一步实施例,所述存储器库中的每一者提供用于高达12个核心寄存器、高达20个特殊功能寄存器、高达80个通用寄存器及高达16个共同通用寄存器的地址空间。根据进一步实施例,一些存储器库仅包括核心寄存器、特殊功能寄存器及共同通用寄存器,其中将所述共同通用寄存器及所述核心寄存器映射到每一存储器库。根据进一步实施例,一些存储器库仅包括特殊功能寄存器及共同通用寄存器,其中将所述共同通用寄存器映射到每一存储器库。根据进一步实施例,一些存储器库仅包括共同通用寄存器,其中将所述共同通用寄存器映射到每一存储器库。根据进一步实施例,存储器库的第一子集包括核心寄存器、特殊功能寄存器、通用寄存器及共同通用寄存器,其中存储器库的第二子集仅包括核心寄存器、特殊功能寄存器及共同通用寄存器,其中存储器库的第三子集仅包括特殊功能寄存器及共同通用寄存器,其中存储器库的第四子集仅包括共同通用寄存器,其中将所述共同通用寄存器及所述核心寄存器映射到每一存储器库。根据进一步实施例,可通过两个级联间接地址寄存器存取整个数据存储器。根据进一步实施例,第一间接地址寄存器包括下部八个地址位且第二间接地址寄存器包括上部5个地址位。根据进一步实施例,在包括由特殊功能寄存器控制的多个外围设备的微控制器中实施所述微处理器架构,其中将所述特殊功能寄存器存储器映射到所述数据存储器。根据进一步实施例,所述微控制器包括高达1760个特殊功能寄存器。根据进一步实施例,所述数据存储器具有4千字节的大小。

附图说明

图1展示根据实施例的8位微处理器核心的框图。

图1a展示如何结构化数据存储器库的实施例。

图2展示根据各种实施例的数据存储器存取方案。

图3a及3b展示根据各种实施例的增强型微处理器核心的指令集。

图4a到4e展示根据特定实施例的64个存储器库及其映射。

图5a展示存储器库60、61及63的细节。

图5b展示用于两个不同实施方案的存储器库62的两个版本。

图5c展示12个核心寄存器的映射。

具体实施方式

需要扩展通常经并入作为这些类型的低成本8位微处理器或微控制器(例如,pic16系列微控制器)的sram的数据存储器或通用存储器。这些微控制器包括8位中央处理单元及单独程序及数据存储器及多个外围设备。各种实施例存在且在程序存储器大小、数据存储器大小及经实施的外围设备方面不同。取决于经实施外围设备的数目,需要大数目个特殊功能寄存器,其中这些控制寄存器通常经存储器映射到数据存储器。

通常,此低成本8位微控制器的设计具有限制用于数据存储器的地址范围的经减小大小的指令字。因此,使用库化方案且取决于设计(特定来说指令中的直接地址的可用位的数目),每一库可具有(例如)每库介于32个到127个之间的存储器位置。归因于数据存储器仅可通过选定存储器库直接存取的事实,一次仅可直接存取特殊功能寄存器的子集。这些微控制器具有高达32个库,其中根据一个架构,每一库包括高达通用数据存储器的80个字节且剩余部分保留到核心寄存器、特殊功能寄存器及存取数据存储器的16个字节的所谓共同ram而无关于选择哪一库。总的来说,因此ram中的可用通用存储器位置的量限于约小于2千字节的总体数据存储器大小。

然而,需要用于这些类型的微控制器的更多数据存储器。此实施方案需要与较旧设计的指令集兼容性。

根据实施例,用于具有现存指令集的微处理器架构(例如,pic16架构)的数据存储器包括用于存取数据存储器的库选择存取方案及经配置以选择存储器库的库选择寄存器。微处理器架构包括具有用于选择存储器库的专属指令的指令集。然而,专属库选择指令的操作码仅提供有限数目个位。举例来说,在pic16架构中,在加载bsr的movlb指令中可用最大n个位的有效负载,借此提供经配置以选择pic16架构32存储器库中的最大2n个存储器库的地址值。根据各种实施例,pic16架构中可用的测试指令的操作码用于加载bsr。此指令具有现在可与新库选择指令一起使用的m个位的有效负载,其中m>n。旧专属库选择指令的操作码不用于新测试指令。因此,可实现最大兼容性。新指令将在常规pic16微控制器上作为不操作指令执行。

pic16架构提供通常用户不可用或无法使用的测试操作模式。因此,操作码译码可保留用于通常不可用且因此用于根据各种实施例的扩展指令的新实施方案的一些特殊指令的程序代码。可通过外部编程/除错器装置进入测试模式。测试模式使装置可用于装置验证、测试及生产;其具有支持各种测试需要的各种操作模式。举例来说,施加到mclr接脚的电压可确定将进入哪一类型测试模式。可用测试指令中的一者可为(例如)设置控制指令,所述设置控制指令在仿真环境中更新仿真状态且在正常操作期间不工作,因此,在常规微控制器中,除非装置在测试操作模式中,否则此指令如同不操作指令一般执行。设置控制指令在仿真环境中执行。定义专属信号且指令将值加载到所述信号。

其它测试指令可为(例如)外部执行数据输出模式选择指令。此指令可在正常测试模式的子模式中执行从而允许更快执行或更多详细数据读出,所述子模式通过编程接口进入且其更改如何传送数据。可存在于正常操作模式中作为不操作指令执行的可用的各种其它测试指令。

图1展示根据各种实施例的增强型微控制器核心(例如,根据pic16架构设计的核心)的库化架构。在此改进实施例中,已实施6位库选择寄存器210(bsr),其相对于常规设计提供1个额外位,从而允许64个存储器库的选择。指令寄存器可针对直接地址提供高达7个位,这允许每选定存储器库128个存储器位置。图1a展示示范性存储器库。根据所展示的方案,前12个字节映射到核心寄存器且在每一存储器库中可用。核心寄存器是对于用户最重要且因此可在每一存储器库中可存取的寄存器。这些寄存器的子集或其全部可定义在异常(例如中断)的情况下保存的当前上下文。保留库中的接下来的20个存储器位置用于高达20个存储器映射的特殊功能寄存器。地址20h到6fh包括通用ram的80个字节。取决于ram的总体大小,这些地址映射到ram且可用作通用ram。因此,一些实施例将使用全部存储器库中的全部80个字节,而具有较少存储器的实施例将使一些上部库为空。保留地址70h到7fh用于所谓共同ram。因此,每一库映射到相同的16个物理数据存储器位置。因此,用户可具有始终可用的高达16个字节,不管已选择了哪一库。的确不需要全部库都遵循所述方案。

一般来说,核心寄存器及共同ram可用于全部存储器库。然而,根据一些实施例,一些上部库可能无法将任何特殊功能寄存器映射到地址0ch到1fh。此外,取决于经实施外围装置,一些库可将地址0ch到6fh仅用于或主要用于特殊功能寄存器。如图1a中所展示的方案允许高达64×20=1280个特殊功能寄存器位置以及12个核心寄存器。

选择存储器库的常规指令(例如pic16微控制器的指令movlb)允许设置库选择寄存器bsr具有5个位。根据pic16架构,其通常编码为000000001kkkkk,其中k表示写入到bsr中的5位值。此编码不允许到6个位的简单扩展,这是因为常规指令字的现存bsr指令有效负载不足以保持6位bsr值。

根据各种实施例,为了增加ram容量高于2千字节,地址总线中需要额外位,且必须实施banksel指令以在有效负载中具有额外位。

如图2中所展示,bsr210提供sram/sfr地址总线的最上位。通过添加单一位而延伸常规库化方案,从而使根据各种实施例的寻址范围有效加倍。除了更新指令操作码之外,还需要额外改变以(例如)扩展电路内置除错器(icd)影子寄存器。然而,原始指令字段不适合于容易地增加有效负载大小,因此根据各种实施例,已设计新操作码结构。

如图2中所展示,可由新指令选择64个库,其中库选择寄存器210(bsr)包括6个位。通过提供13个位而将直接寻址模式及间接寻址模式两者延伸到总共8千字节的范围。通过编程两个8位寄存器230、240fsrxh及fsrxl而执行间接寻址,两个8位寄存器230、240fsrxh及fsrxl的内容经级联以提供能够寻址整个数据存储器空间250的经延伸地址范围。为达此目的,扩展较高间接地址寄存器230fsrxh以提供额外位,现在经级联寄存器230及240提供13个寻址位。对直接寻址来说,现在库选择寄存器210提供6个位,所述6个位与来自操作码220的7位组合,借此还提供13个寻址位。

新架构具有以下优势:64个库允许高达4千字节的实际通用用户ram(gpr),其中当使用根据图1a的方案时每一库贡献高达80个通用寄存器。此外,每一库可包括经存储器映射到特殊功能寄存器(sfr)的20个存储器位置。然而,一些库可提供高达100个sfsr。因此,微控制器可针对大多数装置提供高达64*20=1280个sfr或例如最上部库中的6*100个sfr,此致使高达1760个sfr。具有甚至更多或更少sfr的其它配置有可能。因此,根据各种实施例的微控制器可提供高达4kb的通用寄存器(通用存储器)且可提供高达1760个sfr。

pic16微控制器架构使用14位指令代码。因此,编码相对于其它设计有限。根据各种实施例,为了与常规pic16微控制器兼容,新bsr指令使用在常规pic16架构中用于测试目的的另一指令(例如,setcnt测试指令)的编码。当在正常操作模式中操作时,此指令在常规pic16微控制器中执行nop。编码是:00.0001.01bb.bbbb,其中b表示新库值。

新setcnt是旧bsr。编码将是00.0000.001b.bbbb。此改变未分配新操作码。

图3a及3b展示用于改进的微控制器的整个指令集。图4a到4e展示使用具有分成扩展的64个存储器库的ram的pic16架构的微控制器的一个实例。在此实施例中,如图4a及4b中所展示,前13个库使用通用寄存器的全部可用的80个字节,其中第一库包括96个gpr,这是因为其还提供在全部库中可用的共同ram。图4d及4c展示一些存储器库13到23可不提供gpr,其中库13到19提供额外sfr。图4d展示存储器库24到31各自提供80个字节的gpr。图4e展示存储器库32到50、54、56到58及60到62各提供80个字节的gpr,其中一些存储器库(此处库32到59)可或可不存储器映射任何sfr。这些映射仅是实例且如所属领域的技术人员将了解,其它实施方案可有可能。在图5a及5b中更详细展示最后四个存储器库60到63。图5a及5b展示额外特殊功能寄存器映射。如图5a中可见,存储器库60及61存储器映射某些sfr,此处针对可配置逻辑单元及其它外围设备。存储器库63还向核心寄存器提供八个存储器映射的影子寄存器以及堆叠指针及表指针。八个影子寄存器用于保存如上文解释的当前上下文。如可见,在此实例中,上下文由8个核心寄存器组成。图5a展示除了共同ram之外,库63不具有通用寄存器。图5b展示针对存储器库62的不同微控制器实施方案的两个不同实施例。图5c更详细展示每一库的前12个核心寄存器。全部库在底部地址处具有共同ram区域,尽管图5a及b未展示所述共同ram区域。此外,图4a到4e及5a、b仅是核心寄存器、特殊功能寄存器及通用寄存器的特定存储器映射的实例。取决于特定微控制器及其外围设备的需要可应用其它映射。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1