发布信息

一种应用Cortex-M芯片系统的数据存储方法及Cortex-M芯片系统与流程

作者:admin      2022-09-30 21:45:57     724



计算;推算;计数设备的制造及其应用技术一种应用cortex-m芯片系统的数据存储方法及cortex-m芯片系统技术领域1.本公开涉及计算机存储设备技术领域,具体涉及一种应用cortex-m芯片系统的数据存储方法及cortex-m芯片系统。背景技术:2.目前市场上,cortex-m芯片主要应用于小型微控制器的应用场景,每年以亿颗的数量增加,以cortex-m处理器来说,cortex-m0作为首款m系列的处理器,具有体积小、低功耗等特性,其cortex-m3和cortex-m4处理器是面向大众市场的微控制器,cortex-m7处理器则面向更高端产品,具有更高的性能可以处理更高的工作负载。cortex-m芯片主要由内存管理、存储器操作、外设管理和芯片固件升级等功能组成,可以直接通过总线读写存储,通过读写外设寄存器用于控制gpio、uart等外设,在嵌入式应用产品中,cortex-m芯片具有简单操作的相关优势,有益于工程师开发人员进行项目开发工作。3.cortex-m芯片主要支持多种模式转换,在低功耗、短时间内启动和多种唤醒事件中达到最佳的平衡状态。在睡眠模式下,cpu可以停止工作,所有的外设处于工作状态在中断事件后可以唤醒cpu;在停机模式下,保证内存和寄存器数据不丢失的情况下,达到最低的电能消耗,在该模式下可以停止内部供电;在待机模式下,内部电压调节器被关闭,整个芯片可以达到最低的电能功耗,但进入该模式下,sram的存储内容会丢失;这是因为sram主要由存储阵列和外围电路构成,存储单元由6个晶体管单元组成,进入停机状态后,由于sram信息会丢失,系统需要重新初始化完成数据加载,唤醒时间长,影响相关产品的用户实际体验,同时由于会丢失数据,cortex-m芯片不能在非工作状态下进入功耗最低的停机模式。技术实现要素:4.针对现有技术中的上述技术问题,本公开实施例提出了一种应用cortex-m芯片系统的数据存储方法及cortex-m芯片系统,能够解决现有技术中存在的数据易丢失、影响用户体验等问题。5.本公开实施例一方面公开了一种应用cortex-m芯片系统的数据存储方法,所述方法包括:6.周期性检查cortex-m芯片系统是否处于工作模式,若未处于工作模式,则调整所述芯片系统的工作模式为待机模式;7.通过预设方式唤醒所述芯片系统,并调整所述芯片系统的工作模式为主模式;8.加载所述芯片系统中mram存储器里已初始化的数据,恢复所述芯片系统的正常工作模式;9.在所述mram存储器中按照预设的存储方式对数据执行存储操作。10.在一些实施例中,所述芯片系统中的电压调节器调整所述芯片系统的工作模式。11.在一些实施例中,所述预设方式具体包括外设和/或中断的方式。12.在一些实施例中,所述预设的存储方式具体包括:根据存储数据的类别按照层级划分所述mram存储器中的存储区域。13.在一些实施例中,所述方法还包括:自下而上统计不同数据类别对应层级的存储区域的磨损频繁度,并与阈值进行比较,根据比较结果执行相应的存储操作。14.在一些实施例中,所述方法具体包括:若下层数据类别的各个存储区域的磨损频繁度均小于所述阈值,维持下层数据类别各个存储区域的数据不变。15.在一些实施例中,所述方法具体包括:若下层数据类别的各个存储区域的磨损频繁度均大于所述阈值,计算上一层数据类别的存储区域的磨损频繁度,计算结果与所述下层数据类别的各个存储区域的磨损频繁度进行比较。16.在一些实施例中,所述方法具体包括:若下层数据类别的一个存储区域的磨损频繁度小于所述阈值,另一个存储区域的磨损频繁度大于所述阈值,则交换两个存储区域的数据。17.本公开实施例另一方面公开了一种cortex-m芯片系统,至少包括:内置内存存储器、mram存储器、向量式中断控制器以及外部中断/事件控制器;18.所述内置内存存储器用于存储程序和数据;所述mram存储器用于存储已初始化的数据,同时可以确保cpu以周期的形式进行访问;所述向量式中断控制器用于以最小的中断延迟提供中断管理功能;所述外部中断/事件控制器可唤醒所述cortex-m芯片系统。19.在一些实施例中,还包括电压调节器,用于调整所述芯片系统的工作模式。20.本公开实施例的有益效果是:通过在cortex-m芯片系统中应用mram存储器,可以选择功耗最低的待机模式,节省整体的系统功耗;同时在芯片系统唤醒时,可以直接读取mram存储器中的已初始化的数据,节省系统唤醒时间;而且优化存储方式使得mram存储器可以达到均衡写入,提升mram存储器的使用寿命,用户体验良好。附图说明21.通过参考附图会更加清楚的理解本公开的特征和优点,附图是示意性的而不应理解为对本公开进行任何限制,在附图中:22.图1是根据本公开的一些实施例所示的一种cortex-m芯片系统结构图;23.图2是根据本公开的一些实施例所示的一种应用cortex-m芯片系统的数据存储方法流程图;24.图3是根据本公开的一些实施例所示的cortex-m芯片系统软件加载的过程示意图;25.图4是根据本公开的一些实施例所示的优化磨损均衡算法示意图。具体实施方式26.在下面的详细描述中,通过示例阐述了本公开的许多具体细节,以便提供对相关披露的透彻理解。然而,对于本领域的普通技术人员来讲,本公开显而易见的可以在没有这些细节的情况下实施。应当理解的是,本公开中使用“系统”、“装置”、“单元”和/或“模块”术语,是用于区分在顺序排列中不同级别的不同部件、元件、部分或组件的一种方法。然而,如果其他表达式可以实现相同的目的,这些术语可以被其他表达式替换。27.应当理解的是,当设备、单元或模块被称为“在……上”、“连接到”或“耦合到”另一设备、单元或模块时,其可以直接在另一设备、单元或模块上,连接或耦合到或与其他设备、单元或模块通信,或者可以存在中间设备、单元或模块,除非上下文明确提示例外情形。例如,本公开所使用的术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。28.本公开所用术语仅为了描述特定实施例,而非限制本公开范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的特征、整体、步骤、操作、元素和/或组件,而该类表述并不构成一个排它性的罗列,其他特征、整体、步骤、操作、元素和/或组件也可以包含在内。29.参看下面的说明以及附图,本公开的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本公开的保护范围。可以理解的是,附图并非按比例绘制。30.本公开中使用了多种结构图用来说明根据本公开的实施例的各种变形。应当理解的是,前面或下面的结构并不是用来限定本公开。本公开的保护范围以权利要求为准。31.目前市场上,cortex-m芯片主要应用于小型微控制器的应用场景,每年以亿颗的数量增加,以cortex-m处理器来说,cortex-m0作为首款m系列的处理器,具有体积小、低功耗等特性,其cortex-m3和cortex-m4处理器是面向大众市场的微控制器,cortex-m7处理器则面向更高端产品,具有更高的性能可以处理更高的工作负载。cortex-m芯片主要由内存管理、存储器操作、外设管理和芯片固件升级等功能组成,可以直接通过总线读写存储,通过读写外设寄存器用于控制gpio、uart等外设,在嵌入式应用产品中,cortex-m芯片具有简单操作的相关优势,有益于工程师开发人员进行项目开发工作。32.cortex-m芯片主要支持多种模式转换,在低功耗、短时间内启动和多种唤醒事件中达到最佳的平衡状态。在睡眠模式下,cpu可以停止工作,所有的外设处于工作状态在中断事件后可以唤醒cpu;在停机模式下,保证内存和寄存器数据不丢失的情况下,达到最低的电能消耗,在该模式下可以停止内部供电;在待机模式下,内部电压调节器被关闭,整个芯片可以达到最低的电能功耗,但进入该模式下,sram的存储内容会丢失;这是因为sram主要由存储阵列和外围电路构成,存储单元由6个晶体管单元组成,进入停机状态后,由于sram信息会丢失,系统需要重新初始化完成数据加载,唤醒时间长,影响相关产品的用户实际体验,同时由于会丢失数据,cortex-m芯片不能在非工作状态下进入功耗最低的停机模式。33.通常cortex-m芯片的工作模式主要分成工作模式和低功耗模式,其低功耗模式根据不同工作需求调整电路器件状态,可分成睡眠模式、停机模式和待机模式几种,在待机模式下,芯片内部的电压调节器、pll、hsi和hse的rc振荡器被关闭,因此不能进行1.8v电压供电,sram由于在断电后电容放电,因此会丢失存储信息。34.为了解决上述问题,本公开实施例公开了一种cortex-m芯片系统,将mram(magnetoresistive random access memory,磁阻式随机访问存储器)作为cortex-m芯片的存储器,由于mram具有非易失性,当芯片不工作时,可以将工作模式状态调整为停机模式,对于已初始化的变量不会造成数据丢失的情况;当中断唤醒cortex-m芯片工作时,不会增加系统的唤醒时间,同时降低cortex-m芯片的整体系统消耗;同时针对非易失存储器mram的数据存储方式进行优化,使mram存储器达到均衡写入,提升mram的使用寿命。35.具体地,如图1所示公开了cortex-m芯片系统结构图;其中,cortex-m芯片系统主要由内置内存存储器、mram存储器、嵌套的向量式中断控制器、外部中断/事件控制器和电压调节器等组成。具体地,内置内存存储器主要用于存储程序和数据;内置mram用于cpu在访问时可以以周期的形式进行访问;嵌套的向量式中断控制器能够处理多达40多个的中断通道和优先级,该模块以最小的中断延迟提供灵活的中断管理功能;外部中断/事件控制器主要通过上升沿或下降沿或双边沿独立的配置触发事件,可以独立被屏蔽,唤醒cortex-m芯片系统处于正常的工作模式中。在cortex-m芯片系统的电压调节器中mr模式为系统的主模式,用于正常的运行模式;其低功耗模式lpr用于cpu的停机模式;其关断模式的待机模式,在该模式下,调节器输出为高阻状态时,此时内核电路的供电切断,节省芯片在非工作模式下的功耗,调节器此时处于零消耗的状态。在系统进入待机或者停机模式下,rtc和看门狗都不会停止,cortex-m芯片系统除了通用i/o接口外,还有i2c、i2s、usart、spi和uart接口,可以通过这些通信协议与外设器件相连接,当这些通信协议有中断事件时,将响应cortex-m芯片系统进行正常工作。36.进一步地,如图2所示,本公开实施例还公开一种应用cortex-m芯片系统的数据存储方法,具体包括:37.s101、周期性检查cortex-m芯片系统是否处于工作模式,若未处于工作模式,则调整所述芯片系统的工作模式为待机模式;38.s102、通过预设方式唤醒所述芯片系统,并调整所述芯片系统的工作模式为主模式;39.s103、加载所述芯片系统中mram存储器里已初始化的数据,恢复所述芯片系统的正常工作模式;40.s104、在所述mram存储器中按照预设的存储方式对数据执行存储操作。41.在一些实施例中,所述芯片系统中的电压调节器调整所述芯片系统的工作模式。42.在一些实施例中,所述预设方式具体包括外设/中断的方式。43.在一些实施例中,在芯片正常工作流程中,芯片会固定周期查看芯片的工作状态,判断其是否仍处于正常工作模式下,若处于在工作模式下,cortex-m芯片不会改变相关组成功能的工作状态,继续保持该工作状态,若检测cortex-m不在工作状态,将做芯片模式调整。44.当芯片系统在非工作模式下,由于mram具有非易失性,系统断电后不会丢失已初始化的数据变量,通过内部的电压调节器将芯片调整为待机模式,待机模式下,只有rtc和看门狗不会断电,其他内部功能模块将全部断电,从而节省系统功耗,会解决在停机等其他模式下电路级别无法完全解决的漏电流等问题。当系统在待机模式时,可以通过外设或中断的方式唤醒芯片。45.当在外设或中断模式下唤醒芯片系统时,cortex-m芯片电压调节器调整其工作状态为主模式,在该模式下,cortex-m芯片将为恢复整个系统工作状态做准备。46.系统唤醒后,可以直接获取mram存储器中的已初始化的数据,略过原芯片的软件加载过程中的初始化硬件设置流程和软件设置sp的流程;如图3所示,公开了cortex-m芯片系统软件加载的过程:直接获取系统时钟和软件sp,由于mram存储器内部存储了已初始化的数据,可以直接加载.data.bss初始化栈区,然后执行main函数,完成系统程序加载阶段。完成软件加载功能后,此时完成cortex-m芯片的工作模式转换,并通过外设/中断唤醒后,恢复正常工作模式。47.在一些实施例中,所述预设的存储方式具体包括:根据存储数据的类别按照层级划分所述mram存储器中的存储区域。48.在一些实施例中,所述方法还包括:自下而上统计不同数据类别对应层级的存储区域的磨损频繁度,并与阈值进行比较,根据比较结果执行相应的存储操作。49.在一些实施例中,所述方法具体包括:若下层数据类别的各个存储区域的磨损频繁度均小于所述阈值,维持下层数据类别各个存储区域的数据不变。50.在一些实施例中,所述方法具体包括:若下层数据类别的各个存储区域的磨损频繁度均大于所述阈值,计算上一层数据类别的存储区域的磨损频繁度,计算结果与所述下层数据类别的各个存储区域的磨损频繁度进行比较,逐级向上递增,直至最上层数据。51.在一些实施例中,所述方法具体包括:若下层数据类别的一个存储区域的磨损频繁度小于所述阈值,另一个存储区域的磨损频繁度大于所述阈值,则交换两个存储区域的数据。52.具体地,非易失存储器mram在正常工作时,进行优化磨损算法计算,对mram各存储区域划分,具体如图4所示。对于存储数据的类别按照以下方式存储起来,a(n)作为数据区域类,b(n-1)和b(n-2)为a(n)的数据分类,c(n-1)和c(n-2)为b(n-1)的数据分类,以此类推。同时考虑到存储区域垃圾与磨损重叠情形,本公开实施例公开的分类存储方式不会造成无用的数据块,可以及时合并和处理没有被应用的存储区域。针对每类数据区域操作的频繁度进行统计对比,是否满足阈值区域调配,threshold作为阈值判断,以c(n-1)和c(n-2)为例,以公式(1)代表同层级存储的磨损频繁度的数据转移表达式:[0053][0054]其中,代表该存储块在t时刻的擦除次数,代表在t时刻整个系统的平均擦除次数。[0055]在存储区域磨损对比时,会出现以下三种情况,分别为:[0056](a)当c(n-1)的磨损频繁度小于threshold和c(n-2)大于threshold时,两个区域的数据将进行交换;[0057](b)当c(n-1)和c(n-2)的磨损频繁度都小于threshold时,两个区域的数据不进行交换;[0058](c)当c(n-1)和c(n-2)的磨损频繁度都大于threshold时,按照公式(1)计算上层数据对应存储区域的磨损频繁度,将计算结果与c(n-1)和c(n-2)的磨损频繁度进行比较;即逐级递增,直至最上层数据。[0059]具体地,按照以下方式实现对子数组的排列,partition(c,n-1,n-2):[0060]1.x=c[n-1],y=c[n-2];[0061]2.for i=n-1to n-4[0062]3.if c[n-1]《=threshold&&c[n-2]》threshold[0063]4.exchange c[n-1]with c[n-2];[0064]5.return n-1;[0065]本公开实施例应用非易失存储器mram取代易失性sram在cortex-m芯片中的工作,在芯片中可以将芯片的低功耗工作模式直接选择最节省系统功耗的待机模式;节省整体的系统功耗,同时在芯片唤醒时,可以读取mram中的已初始化的数据,直接进行系统工作,节省系统唤醒时间。[0066]在结构上,mram由1个cmos管组成,sram由6个cmos管组成,mram的体积远小于sram的体积,可以节省cortex-m芯片系统的面积,同时节省系统功耗,减少工业生产成本;而且,在工艺中相同的晶圆也可以生产出更多的芯片,节省工业成本。[0067]最重要的,mram非易失存储器通过优化磨损均衡算法,使mram存储器达到均衡的写入和读取,避免针对部分存储地址频繁写入和读取带来的不均衡,提升mram存储器的使用寿命。[0068]应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部