用于提高mcu存储性能的方法及其对应的mcu芯片的制作方法

文档序号:6367218阅读:360来源:国知局
专利名称:用于提高mcu存储性能的方法及其对应的mcu芯片的制作方法
技术领域
本发明涉及计算机存储技术,更具 体地,涉及ー种能够提高自身存储性能的方法及其对应的新型MCU芯片。
背景技术
目前,通用MCU应用日趋广泛,各领域需求逐渐増大,如何在已有元件性能的基础上提高芯片整体性能并且扩大应用范围,是人们广泛关注的焦点。虽然芯片性能与特点千差万别,但就其内部存储器而言,主要分为可擦写非易失性存储器(诸如FLASH、EEPR0M、ROM、OPT、MTP等)及易失性存储器(诸如SRAM)。可擦写非易失性存储器掉电后数据不会消失,但性能相对较低,通常需要多个周期才能完成一次操作,主要用于存储程序。易失性存储器掉电后数据消失,但性能较高,单周期可完成ー个操作,主要用于程序执行过程中的中间数据存储。在一款芯片中,两者大小及所占地址是固定的,程序需要根据芯片所提供的硬件资源进行编写,要求相对较高,灵活度有限。同时由于片内可擦写非易失性存储器对芯片制造エ艺提出了特殊的要求,使得生产制造成本与可靠性变得更加敏感。因此,可擦写非易失性存储器与易失性存储器在芯片内的容量大小、性能高低以及其所影响的成品率与成本是当前芯片设计与制造的很重要考量因素。与存储器相依托的通用MCU芯片上电工作流程可抽象为如下三个过程上电引导过程;程序执行过程;烧录程序过程。芯片的上电过程与芯片的存储规划是紧密相连的。在对芯片性能需求日益增长的今天,用于存储程序的可擦写非易失性存储器的性能已经成为读取程序的瓶颈。其带来的成品率下降与成本上升也为人所诟病。在物理受限的前提下,可通过改变程序运行介质可以解决这ー问题,但运行流程也将随之改变。

发明内容
为克服现有技术的上述缺陷,本发明提出ー种能够提高自身存储性能的方法及其对应的MCU芯片。根据本发明的ー个方面,该MCU芯片包括外部存储器地址转换电路、片内地址产生逻辑、片内易失性存储器配置与控制器、片内易失性存储器、以及非易失性存储器;其特征在于,片内易失性存储器包括用于存储程序的程序区和用于存储数据的数据区;所述片内地址产生逻辑和片内易失性存储器配置与控制器通过易失性存储器地址总线通信连接,或两者一体形成于片内。根据本发明的另一方面,提出了一种提高MCU存储性能的方法,该方法包括以下步骤第一歩,判断外部非易失性存储器是否存在;如不存在,直接引入第五步;第二歩,在第一步检测成功的条件下,获取该存储器上用户程序信息;第三歩,识别用户程序信息,匹配则根据程序数据量大小从片外非易失性存储器拷贝至片内易失性存储器中;第四步,识别存储器转换标识,存在则进行片内存储器地址切換;第五步,执行用户程序。
本发明提出的用于提高MCU存储性能的方法,同时配合相应的上电执行流程以及程序烧录方式,可以克服所提到的程序区与数据区容量固定的局限性,同时解决可擦写非易失性存储器读取性能低的不足而导致程序执行效率低的问题,并可提升芯片生产制造成品率,降低成本。


图I为本发明存储区域布局示意图;图2为本发明所对应的MCU上电流程图;图3为存储器映射切換示意图;图4为本发明应用于MCU控制器的实际上电流程图。如图所示,为了能明确实现本发明的实施例的结构,在图中标注了特定的结构和 器件,但这仅为示意需要,并非意图将本发明限定在该特定结构、器件和环境中,根据具体需要,本领域的普通技术人员可以将这些器件和环境进行调整或者修改,所进行的调整或者修改仍然包括在后附的权利要求的范围中。
具体实施例方式下面结合附图和具体实施例对本发明提供的一种提高MCU存储性能的方法及其对应的新型MCU芯片进行详细描述。同时,在这里做以说明的是,为了使实施例更加详尽,下面的实施例为最佳、优选实施例,对于ー些公知技术本领域技术人员也可采用其他替代方式而进行实施;而且附图部分仅是为了更具体的描述实施例,而并不g在对本发明进行具体的限定。图I表示本发明最优实施例中提出的新型MCU芯片1,其中该MCU芯片I包括外部存储器地址转换电路5,该外部存储器地址转换电路5优选采用外部通用或专用总线接ロ控制器;片内地址产生逻辑6,其优选为外设通讯控制器、处理器地址累加器等地址产生硬件中的一个或多个组合;通过片内易失性存储器地址总线7连接到片内地址产生逻辑6的片内易失性存储器配置与控制器8 ;片内易失性存储器9,例如sram等;以及非易失性存储器;该非易失性存储器优选包括片内用于存储数据的可擦写非易失性存储器12以及片内用于存储引导程序的非易失性存储器13。其中外部存储器地址转换电路5通过外部存储器数据/地址总线3、4与芯片外部的片外可擦写非易失性存储器2通信连接,该片外可擦写非易失性存储器2优选于采用例如FLASH、EEPROM等。片内地址产生逻辑6通过片内易失性存储器地址总线7与片内易失性存储器配置与控制器8相连接,也可以将片内地址产生逻辑6与片内易失性存储器配置与控制器8 —体形成,从而可以省略片内易失性存储器地址总线7。进ー步如图I所示,片内易失性存储器9包括两部分一部分为用于存储程序的片内易失性存储器10 (程序区);另一部分是用于存储数据的片内易失性存储器11 (数据区)。当MCU主控芯片与外部存储器通讯使用串行总线时,外部存储器数据/地址存储总线3、4为同一串行总线。用于存储程序的片内易失性存储器10和用于存储数据的片内易失性存储器11这两部分区域对处理器具有不同的总线基址,逻辑上独立访问。程序区和数据区的容量的配比可以根据外部存储器中所储存的程序内容大小、所存储程序中记录的配置项以及芯片外部引脚配置而改变各自所占内部易失性存储器的容量比例。成功上电开始执行用户程序后,片内程序与数据存放在片内易失性存储器9中。在片内易失性存储器9中程序区与数据区的容量大小比例调整的方法是由片内易失性存储器配置与控制器8实现的。程序区与数据区具有不同的片内总线基址。处理器发 出的针对这两个不同区域的访问请求会被片内易失性存储器配置与控制器8翻译后,映射为同一个物理区域的访问。容量大小比例调整可由多种方法实现,包括a)根据外部可擦写或不可擦写非易失存储器中记录的程序大小信息智能调整山)根据外部可擦写或不可擦写非易失存储器中记录的指定的容量大小比例配置调整;c)根据芯片的特定引脚电平信息调整等方法。需要注意的是,根据本领域技术人员可知该附图I仅是示意性的,对于芯片的中的ー些公知技术,也可以采用其他本领域已知的技术手段或技术方案来代替,如非易失性存储器13与可擦写非易失性存储器12 —体形成,或仅保留其中ー个而实现上述两个的功能;又或者外部存储器地址总线3与外部存储器数据总线4可以采用相同的总线或串ロ来形成等。在本发明的教导、启示下,上述变形、替换以及修改均包含在本发明的保护范围内。如图2所示,上电后主控芯片引导程序工作流程如下第一歩检测外部非易失性存储器的ID或其中特定的内容等信息判断外部非易失性存储器是否存在;如不存在,直接引入第五步;第二步在第一步检测成功的条件下,获取该存储器上用户程序信息,包括程序标识、数据量大小、存储器转换标识等;第三步识别程序标识,如果匹配,则根据程序数据量大小从片外非易失性存储器拷贝至片内易失性存储器中;第四歩识别存储器转换标识,如果存在,则进行片内存储器地址切换,将存在用户程序部分的易失性存储器用作只读区,作用相当于传统MCU非易失性存储器,另一部分依然作为执行区;第五步清理现场,执行用户程序。下面针对具体的MCU芯片实施例,来更加具体的描述本发明。XXX型号MCU控制器使用FLASH作为片外非易失性存储器,并通过SPI串行通讯端ロ与之相连组成系统。在微控制器上具有专用存储器独占连接管脚。同时在微控制器中具有通讯模块。上电后,将此通讯模块接ロ切换至专用存储器芯片连接端ロ,经存储器独占链接管脚与专用存储器芯片进行通信。在完成外部专用存储器操作后,将通讯模块端ロ再切換回微控制器通讯端ロ。在MCU控制器中提供了 18k的易失性存储区,存储区分为两部分,一部分是程序存储器区(code area),另一部分是数据存储器区(data area)。这两部分区域具有不同的总线基址。程序区和数据区的容量的配比可以根据当前使用程序的大小不同而改变。程序区与数据区总线基址不同及区域空间大小的不同是由可擦写非易失性存储器控制器中特殊的地址译码器实现。例如当存储空间配置由程序区占16k,数据区占2k切換至程序区占12k,数据区占6k时,原有程序区12k-16k区域会有地址译码器重映射至数据区的2k-6k区域。如图3所示。上电后过程主要完成以下五步工作,流程图如图4所示。
引导程序需要获取用户代码信息用以作为拷贝代码及切换存储区域的依据。第一歩判断片外FLASH是否存在。可以采用读取FLASH ID的方式进行判断,若能够读取到FLASH ID,则继续进行后续过程;若无法读取,则不进行拷贝,根据目前SRAM内已有信息进行存储区域的切換工作,并跳至第五步,重映射芯片地址,以SRAM为载体执行用户程序,以达到在不掉电情况下,即使移除片外flash,也可通过复位执行程序的目的。第二步读取片外用户代码中指定位置的数据信息并判断是否合法。该信息大小即为用户代码中只读可执行区代码的大小。合法时,执行第三步,否则跳至第五歩。第三步,根据第二步中所获得的程序代码大小,进行代码拷贝工作,并根据程序内所包含的信息决定是否需要进行代码区与执行区地址的切換。首先根据第二步中所获得的程序代码信息,初始化FLASH连接端ロ,并将外置FLASH的程序拷贝至内置的SRAM中,以提 高执行效率。同时,识别用户程序内信息,决定是否需要切換。若需要切換,执行第四步,否则跳至第五歩。第四步,根据用户程序信息进行存储切换,更改SRAM划分。依据执行区最大的原贝1J,根据所拷贝的用户程序大小,选择能够容纳该程序且执行区最大的级别,进行代码区与执行区的切換,将已存在用户代码的一部分区域划分为传统芯片中的FLASH区,用于存储用户程序只读的可执行代码部分。程序在执行过程中,对该区域进行读写,但与传统芯片比较,该部分读取速度会大幅提升。SRAM另一部划分为传统芯片的RAM区,用作程序执行过程中可变数据的读写及保存,该部分所起作用与传统芯片无差异。完成切換后,执行第五歩。第五步,进行地址映射的转换,重新映射芯片地址,并跳转至用户程序代码的执行。以上即为上电的总体过程。当片外FLASH已存储用户程序吋,该过程可顺利完成。当片外FLASH不存在用户程序吋,需要进行下载。下载过程主要完成将上位机编译好的程序传输至芯片外部FLASH的任务,通过ISP(In System Programming)下载方式实现。传统ISP下载通常将程序存储至芯片内部FLASH,而本技术方案中ISP模式将程序存储至片外FLASH,需要涉及FLASH连接端ロ。与上位机使用串ロ进行数据传输,此部分同样可以使用弓I导程序实现。最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
权利要求
1.ー种MCU芯片,该MCU芯片包括外部存储器地址转换电路、片内地址产生逻辑、片内易失性存储器配置与控制器、片内易失性存储器、以及非易失性存储器;其特征在于,片内易失性存储器包括用于存储程序的程序区和用于存储数据的数据区;所述片内地址产生逻辑和片内易失性存储器配置与控制器通过易失性存储器地址总线通信连接,或两者一体形成于片内。
2.根据权利要求I所述的MCU芯片,其特征在于,所述程序区和数据区的容量的配比根据外部存储器中所储存的程序内容大小、所存储程序中记录的配置项或芯片外部引脚配置而改变。
3.根据权利要求I所述的MCU芯片,其特征在于,所述转换电路采用外部通用或专用总线接ロ控制器;所述片内地址产生逻辑外设通讯控制器、处理器地址累加器中的一个或多个组合。
4.根据权利要求I所述的MCU芯片,其特征在于,所述片内易失性存储器是SRAM;所述非易失性存储器包括片内用于存储数据的可擦写非易失性存储器以及片内用于存储引导程序的非易失性存储器。
5.根据权利要求2所述的MCU芯片,其特征在于所述外部存储器地址转换电路通过外部存储器数据/地址总线与片外可擦写非易失性存储器通信连接。
6.一种提高MCU存储性能的方法,包括 第一歩判断外部非易失性存储器是否存在;如不存在,直接进入第五步; 第二步在第一步检测外部非易失性存储器存在的情况下,获取该存储器上用户程序信息; 第三步识别用户程序信息,如果信息匹配,则根据程序数据量大小从片外非易失性存储器拷贝至片内易失性存储器中; 第四步识别存储器转换标识,如果该标识存在,则进行片内存储器地址切换; 第五步执行用户程序。
7.根据权利要求6所述的方法,其特征在于,所述第一步还包括通过检测外部非易失性存储器的ID或其中特定的内容信息来判断外部非易失性存储器是否存在。
8.根据权利要求7所述的方法,其特征在于,所述用户程序信息包括程序标识、数据量大小和存储器转换标识。
9.根据权利要求8所述的方法,其特征在于,第四步还包括将存在用户程序部分的易失性存储器用作只读区,当做传统MCU非易失性存储器;另一部分依然作为执行区。
10.根据权利要求6所述的方法,其特征在于所述片内易失性存储器包括用于存储程序的程序区和用于存储数据的数据区;所述程序区和数据区的容量的配比根据外部存储器中所储存的程序内容大小、所存储程序中记录的配置项或芯片外部引脚配置而改变。
全文摘要
本发明提出一种用于提高MCU存储性能的方法及其对应的新型MCU芯片,该MCU芯片包括外部存储器地址转换电路、片内地址产生逻辑、片内易失性存储器配置与控制器、片内易失性存储器、以及非易失性存储器;片内易失性存储器包括用于存储程序的程序区和用于存储数据的数据区。本发明提出的用于提高MCU存储性能的方法,同时配合相应的上电执行流程以及程序烧录方式,可以克服所提到的程序区与数据区容量固定的局限性,同时解决可擦写非易失性存储器读取性能低的不足导致程序执行效率受到影响的问题,并可提升芯片生产制造成品率,降低成本。
文档编号G06F15/78GK102662913SQ20121008912
公开日2012年9月12日 申请日期2012年3月29日 优先权日2012年3月29日
发明者孙有阳, 张炜, 张琢, 胡杰, 韩智毅 申请人:佛山华芯微特科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1