微控制器和相关的存储器管理方法与流程

文档序号:14266189阅读:159来源:国知局
微控制器和相关的存储器管理方法与流程

【技术领域】

本发明有关于存储器管理,特别是有关于微控制器和相关的存储器管理方法。



背景技术:

对于嵌入式微控制器(mcu)系统,因为高速缓存存储器(例如静态随机存取存储器(sram))是昂贵的,所以通常伴随高速缓存使用诸如动态随机存取存储器(dram)的大/较慢/较高功耗的存储器,以提供大的内存空间;然而,这种安排要花很多功耗。此外,关于高速缓存技术,硬件高速缓存实现需要更高的成本,并且纯软件高速缓存耗费功率和计算资源。因此,如何提供具有较低成本和较低功耗的存储器管理方法是重要的课题。



技术实现要素:

有鉴于此,本发明特提供以下技术方案:

依据本发明的一个实施方式,提供一种微控制器,包括处理器;具有至少工作空间的第一存储器,其中工作空间包括多个块;工作空间管理单元,用于管理第一存储器的工作空间;以及存储器监视器,由硬件电路实现,用于监视多个块,以及记录与第一存储器的多个块相对应的多个监视结果,其中所记录的多个监视结果包括关于多个块的数据是否被修改的信息。

依据本发明另一实施方式,提供一种存储器管理方法,用于管理第一存储器,其中所述第一存储器至少具有包括多个块的工作空间,存储器管理方法包括:使用硬件电路来监视多个块;以及记录与第一存储器的多个块相对应的多个监视结果,其中所记录的多个监视结果包括关于多个块的数据是否被修改的信息。

本发明所提供的微控制器和相关的存储器管理方法能够改善软件高速缓存的功耗和计算资源。

【附图说明】

图1是根据本发明一个实施例的微控制器的示意图。

图2为依据本发明一实施例的工作空间、内存监控器及动态加载器的示意图。

图3是根据本发明的一个实施例的动态加载器的操作的示意图。

图4是根据本发明的一个实施例的当cpu读取对象时存储器监视器的操作的示意图。

图5是根据本发明的一个实施例的当cpu将数据写入块b0和b3时存储器监视器的操作的示意图。

图6是根据本发明的一个实施例的当将修改块b0和b3写回到dram时动态加载器和存储器监视器的操作的示意图。

图7是根据本发明的一个实施例的块聚合的示意图。

【具体实施方式】

在权利要求书及说明书中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本权利要求书及说明书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在权利要求书及说明书中所提及的「包括」为开放式的用语,故应解释成「包括但不限定于」。另外,「耦接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第一设备耦接于第二设备,则代表所述第一设备可直接电连接于所述第二设备,或通过其他设备或连接手段间接地电连接至所述第二设备。

请参考图1,图1是根据本发明一个实施例的微控制器(mcu)100的示意图。如图1所示,微控制器100包括中央处理单元(cpu)110、诸如sram120的存储器、工作空间管理单元130和存储器监视器140,其中sram120至少包括工作空间122,工作空间管理单元130至少包括动态加载器(dynamicloader)132。在本实施例中,工作空间管理单元130用于管理工作空间122,工作空间管理单元130由纯软件实现(即,通过执行程序代码来执行工作空间管理单元130);并且存储器监视器140由硬件电路(例如,功能电路、逻辑门和寄存器等)实现。

微控制器100耦合到具有程序池(programpool)152的dram150,并且微控制器100从程序池152加载对象以执行相应的功能,其中术语“对象”是用于特定功能的代码或数据的集合,并且能够被链接和加载到sram120以被执行。详细地,工作空间管理单元130的动态加载器132将对象从程序池152加载到sram122的工作空间122,并且cpu110读取并执行工作空间122中加载的对象。此外,在微控制器100的工作时段期间,存储器监视器140动态地实时监视和记录存储在工作空间122中的对象的状态,并且工作空间管理单元130参考对象的记录状态控制/调整对sram120的管理策略。在一个实施例中,dram150具有比sram120更大的芯片面积、更慢的速度和/或更高的功耗。

请参考图2,图2为依据本发明一实施例的工作空间122、内存监控器140及动态加载器132的示意图。如图2所示,工作空间122被分成多个块b0-b127,存储器监视器140包括监视电路142和多个寄存器144,其中寄存器144用于记录块b0-b127的状态。在本实施例中,块b0-b127中的每一个具有读信息、有效信息、脏信息(dirtyinformation)和身份(id)信息,其中读信息指示块中的数据是否被cpu110读取,例如,当cpu110未读取块内的数据时,读取信息具有逻辑值“0”,而当cpu110读取块内的数据时,读取信息具有逻辑值“1”;有效信息指示块是空的还是由数据占据,例如,当块为空时,有效信息具有逻辑值“0”,而当块不为空时,有效信息具有逻辑值“1”;脏信息指示cpu110是否修改/更新块内的数据,例如,当块中的数据未被修改/更新时,脏信息具有逻辑值“0”,而当块中的数据被修改/更新时,脏信息具有逻辑值“1”;而id信息指示存储在块中的对象(数据)属于哪个。在一个实施例中,块的读信息、脏信息和有效信息中的每一个由一个比特表示。在其他实施例中,也可以用多个比特表示块的读信息、脏信息和有效信息中的每一个。

在本实施例中,由监视电路142更新块b0-b127的读信息(即硬件(hw)更新);由动态加载器132更新块b0-b127的有效信息和id信息(即软件(sw)更新);并且根据不同情况,块b0-b127的脏信息由监视电路142或动态加载器132更新。

图3-6是根据本发明的一个实施例的微控制器100的操作的示意图。请先参考图3,图3是根据本发明的一个实施例的动态加载器132的操作的示意图。动态加载器132从dram150加载对象,并且加载的对象被存储到工作空间122的块b0-b3中。同时,动态加载器132更新对应于块b0-b3的有效信息和id信息,例如,块b0-b3的有效信息从“0”改变为“1”,并且id信息更新为“001”。

图4是根据本发明的一个实施例的当cpu110读取对象时存储器监视器140的操作的示意图。如图4所示,cpu110仅读取对象的一部分(例如,块b0、b1和b3),并且监视电路142可以监视/拦截sram120内的读信号(例如来自cpu110的读请求)以更新块b0、b1和b3的读信息。

图5是根据本发明的一个实施例的当cpu110将数据写入块b0和b3时存储器监视器140的操作的示意图。如图5所示,cpu110将数据写入块b0和b3(即,块b0和b3的内容被修改/更新),并且监视电路142监视/拦截sram120内的写信号(例如来自cpu110的写请求)以更新块b0和b3的脏信息。

图6是根据本发明的一个实施例的当将修改块b0和b3写回到dram150时动态加载器132和存储器监视器140的操作的示意图。如图5所示,在cpu110完成执行之后,动态加载器132参考块b0-b3的脏信息以确定哪些块被修改,并且动态加载器132仅将经修改的块写回dram150,并且未修改的剩余块不被写回。在该实施例中,动态加载器132仅将修改的块b0和b3写回dram150,而不回写所有的块b0-b3。同时,通过监视电路142或动态加载器132将块b0和b3的脏信息从“1”更新为“0”,即监视电路142可以监视/拦截sram120内的信号以更新块b0和b3的脏信息,或者动态加载器132可以根据其内部信息直接更新块b0和b3的脏信息。

在图3-6所示的上述实施例中,硬件存储器监视器140用于监视和记录由软件高速缓存存储器不能获得的脏信息(因为软件不能获得从cpu110到sram120的写/读信号)。因此,软件动态加载器132可以通过参考由硬件存储器监视器140记录的脏信息来知道哪个块被修改,并且动态加载器132不会将存储在块b0-b3中的所有对象写回到dram150,并且可以降低数据量和传输开销以节省功率。

另外,块的脏信息可以用于离线分析。例如,动态加载器132可以周期性地或随机地或在定义的时间读取与具有id“001”的对象相对应的块b0-b3的脏信息,并且动态加载器132可以分析该信息以知道哪个(或哪几个)部分经常被更新,并且当下一次将对象加载到工作空间122时,动态加载器132可以将这些部分聚集在一起。请参考图7,图7是根据本发明的一个实施例的块聚合的示意图。如图7所示,假定块b0-b3分别对应于具有四个部分obp1-obp4的对象,并且只有块b0和b3(即,部分obp1和obp4)被回写到dram150,动态加载器132因此可以参考块b0-b3的脏信息以知道对象的哪些部分是脏的以及对象的哪些部分不是脏的。下一次当需要再次将对象加载到sram120的工作空间122时,动态加载器132可以将对象的先前的脏部分(即,obp1和obp4)加载到相邻块b0和b1(即将对象的先前修改部分布置在所述第一存储器的连续块中),并且其他部分(即obp2和obp3)被加载到块b2和b3。然后,如果cpu110执行块b0-b3,并且块b0和b1被更新,则动态加载器132可以将连续块b0和b1的更新数据写回dram150。因为将连续存储器写回dram150会更快,本实施例可以提高微控制器100的效率。

类似于图7所示的实施例,块的读信息也可以用于离线分析。例如,动态加载器132可以周期性地或随机地或在定义的时间读取对应于具有id“001”的对象的块b0-b3的读信息,并且动态加载器132可以分析该信息以知道对象的哪个(或哪些)部分经常被cpu110读取,并且当下一次将对象加载到工作空间122时,动态加载器132可以将这些部分聚集在一起(例如,下一次当所述工作空间管理单元再次将所述对象从所述第二存储器加载到所述第一存储器时,所述工作空间管理单元在所述第一存储器的连续块中布置所述对象的先前由所述处理器读取的部分)。通常,因为cpu110不读取并执行与对象相对应的所有块b0-b3,所以将经常读取的块聚集在一起可以提高执行速度。

简而言之,在存储器管理方法和相关联的微控制器中,硬件存储器监视器用于监视和记录至少读信息和不能通过软件获得的脏信息。因此,通过参考由硬件存储器监视器提供的读信息和脏信息,软件工作空间管理单元(软件高速缓存)可以更有效地管理sram120和dram150之间的操作。综上所述,在本发明的实施例中,微控制器不需要硬件高速缓存电路,从而节省了制造成本,并且通过使用具有小尺寸的硬件存储器监视器可以改善软件高速缓存的功耗和计算资源。

以上所述仅为本发明的较佳实施方式,凡依本发明权利要求所做的均等变化和修饰,均应属本发明的涵盖范围。

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