掌桥专利:专业的专利平台
掌桥专利
首页

内存管理单元、内存管理方法、处理器芯片、电子设备

文献发布时间:2024-04-18 20:01:55


内存管理单元、内存管理方法、处理器芯片、电子设备

技术领域

本发明涉及SoC设计和应用技术领域,具体是涉及一种内存管理单元、内存管理方法、处理器芯片、电子设备。

背景技术

在嵌入式系统设计中,物理内存资源通常是极其珍贵的,然而,实际所需处理的地址空间却常常要大很多,如何管理有限的物理内存是现代处理器系统中十分重要的内容。

内存管理包括地址空间映射、内存分配和替换。

地址空间映射有两种方式:1)连续映射方式;2)离散映射方式。连续映射方式的物理空间和逻辑空间是连续对应的,结构简单,但是对内存的利用率很低。离散映射方式将物理内存分割成不同的小块,每个小块可以映射逻辑空间的任意块,这极大地增强了内存的使用效率,但也相对复杂。

常规的内存替换策略由软件进行编程确定,常用的替换算法包括:先进先出(FIFO)算法,时钟页面置换(CLOCK)算法,最近最久未使用(LRU)算法。通常认为LRU算法性能较好,但是由软件统计页框的使用情况非常消耗资源,也较大地限制了实际使用的场景。

参照图1,图1是微型处理器(如siFi ve E21/中天微CK902/芯来E205/晶芯D25)的典型存储结构。该典型存储结构由CPU_CORE、ILM(I nstructi on Loca l Memory)、DLM(Data I nstruct ion Memory)组成。CPU_CORE是CPU控制运算的主体。I LM是指令本地存储,用于存储CPU执行的代码。DLM是数据本地存储,用于存储CPU执行过程需要缓存的数据。另外,处理器还有一组或多组用于进行外部访问的总线BUS,从而与处理器的外部进行通信,进行外部存储的访问或者外部设备的访问。

相对于外部存储,本地存储(ILM和DLM)比外部存储性能更高。但是本地存储也一般比较昂贵,因此其空间通常也比较小。如图1所示,ILM具有64KB的空间,那么访问该存储的地址总线为16比特。当所需要执行的程序大于ILM的空间时,则需要进行分块处理操作。通过限定使用场景,每个场景下最大只允许ILM的空间大小的程序执行。在场景切换的情况下,通过软件进行程序的覆盖重载。不同的程序块在外部存储中处于不同的位置,但运行的位置都是I LM地址区,这对程序的编写和编译都有比较多的限制。

参照图2,图2是改进后的I LM存储结构。通过在CPU_CORE和ILM之间插入一个MMU(Memory Management Un it,内存管理单元),负责将处理器从外部存储接收到的逻辑地址空间转换为I LM的物理地址空间。如图2所示,逻辑地址空间大小为1MB,物理地址空间为64KB。因此,MMU的地址输入为20比特,地址输出为16比特。

参照图3,MMU将64KB空间大小的ILM切为16片4KB页框,每个页框可以装载外部存储1MB空间中的任意一个4KB页。通过MMU的设置,使得I LM映射的地址空间大小可以由之前的64KB扩展到1MB,极大地扩展了系统指令存储区的空间,且该空间内软件程序设计可以先行排布,无需考虑程序的覆盖重载,逻辑地址到物理地址的转换由MMU完成,程序的重载由MMU引发的异常,在异常中进行统一处理。

传统的MMU存在软件算法比较复杂,配置成本较高的问题。

发明内容

本发明的第一目的是提供一种使用硬件资源少的内存管理单元。

本发明的第二目的是提供一种实施简单的内存管理方法。

本发明的第三目的是提供一种包括上述内存管理单元的处理器芯片。

本发明的第四目的是提供一种包括上述处理器芯片的电子设备。

为了实现上述的第一目的,本发明提供的一种内存管理单元,应用于从外部的处理单元获取逻辑地址并将逻辑地址转换成物理地址输出,其中,包括:页框选择单元、页框判决单元、页框匹配索引单元,页框选择单元连接页框判决单元,页框判决单元连接页框匹配索引单元;页框选择单元包括多组比对模块,每组比对模块包括一个页框标签和一个页框比较电路,页框标签连接页框比较电路;页框选择单元用于获取逻辑地址,并根据逻辑地址的第一索引部分输出比较结果;其中,页框比较电路用于将页框标签的预设值和逻辑地址的第一索引部分进行比较,并输出比较结果至页框判决单元;页框判决单元用于根据比较结果从多个第二页框的第二索引部分中确定目标第二页框的第二索引部分,将目标第二页框的第二索引部分输出至页框匹配索引单元;页框标签与第二页框的第二索引部分一一对应;页框匹配索引单元用于输出物理地址,物理地址包括目标第二页框的第二索引部分和逻辑地址的第一地址部分。

由上述方案可见,本发明通过页框选择单元、页框判决单元、页框匹配索引单元的配合实现逻辑地址到物理地址的转换,由页框比较电路对逻辑地址的第一索引部分进行比较,页框判决单元根据比较结果确定第二页框的第二索引部分,从而页框匹配索引单元组合第二页框的第二索引部分以及逻辑地址的第一地址部分得到物理地址。相比传统的内存管理单元,采用较少的硬件高效地完成逻辑地址到物理地址的转换。

进一步的方案是,页框使用统计单元,页框使用统计单元连接页框判决单元;页框使用统计单元用于从页框判决单元获取目标第二页框的第二索引部分,并根据目标第二页框的第二索引部分对第二页框的进行排序。

由此可见,通过设置页框使用统计单元获取去目标第二页框的索引部分,可以记录第二页框的使用情况,方便配合LRU算法确定替换或更换第二页框。

进一步的方案是,页框使用统计单元包括多级排序模块,每级排序模块包括一个二选一多路选择器和D触发器,二选一多路选择器的输出端连接D触发器的输入端,D触发器的输出端连接二选一多路选择器的一个输入端;其中,第一级排序模块的第一二选一多路选择器的一个输入端连接第一D触发器的输出端,另一个输入端从页框判决单元获取目标第二页框的第二索引部分;第二级排序模块的第二二选一多路选择器的另一个输入端连接第一触发器的输出端。

由此可见,通过多路选择器和D触发器实现了对页框的使用进行排序,实现方式简单。

进一步的方案是,页框标签的位数与逻辑地址的第一索引部分的位数相同。

为了实现上述的第二目的,本发明提供的一种内存管理方法,应用于处理单元,其中,包括以下步骤:处理单元向上述的内存管理单元内存管理单元发出逻辑地址;从内存管理单元获取匹配命中信号,且匹配命中信号为无效时,触发总线错误;触发总线错误后,从内存管理单元的页框配置端口获取页框使用统计,并根据页框使用统计确定目标页框标签;将逻辑地址的第一索引部分写入目标页框标签;重新向内存管理单元发出逻辑地址,从内存管理获取匹配命中信号,且匹配命中信号为有效。

由上述方案可见,本发明在内存管理单元输出的匹配命中为无效时,根据页框使用统计确定要使用的目标页框标签,进而确定目标页框标签对应的第二页框。本发明无需通过软件方式统计第二页框的使用情况,减少资源消耗,覆盖的应用场景更广。此外,针对页框替换使用LRU算法,能够最大的发挥页框的利用效率。采用页框排序的硬件电路可以简化软件的处理流程,减少由缺页带来的软件开销。

进一步的方案是,将逻辑地址的第一索引部分写入目标页框标签时,使能目标页框标签对应的目标页框比较电路。

由此可见,可以减少资源消耗。

为了实现上述的第三目的,本发明提供的一种处理器芯片,其中:包括上述的内存管理单元。

为了实现上述的第四目的,本发明提供的一种电子设备,包括壳体,其中:壳体内包括上述的处理器芯片。

附图说明

图1是现有技术中微型处理器的典型存储结构示意图。

图2是现有技术中现有微型处理器的改进后的存储结构示意图。

图3是现有技术中MMU的页框与外部存储空间的页框的映射关系示意图。

图4是本发明的处理器及外部存储器的结构示意图。

图5是本发明的内存管理单元的结构示意图。

图6是本发明中采用LRU算法时非命中情况下更换最近不使用的第二页框的示意图。

图7是本发明中采用LRU算法时命中情况下进行第二页框的替换的示意图。

图8是本发明的中页框统计使用单元的多级排序模块的结构示意图。

以下结合附图及实施例对本发明作进一步说明。

具体实施方式

本发明提出一种嵌入式的软硬件结合进行内存管理的方法,适用于通用的SoC设计和应用,该内存管理方法基于本发明的内存管理单元实现。本发明还提供包含上述内存管理单元的处理器芯片以及电子设备。

参见图4,本实施例的处理器芯片30包括处理单元301与内存管理单元302,处理单元301连接内存管理单元302。本实施例的处理器芯片30与外部存储器40连接。

外部存储器40上存储有不同的程序,处理器芯片30通过总线访问外部存储器40时,处理单元301获取外部存储器40的逻辑地址,通过内存管理单元302将逻辑地址转换成物理地址输出,例如ILM的物理地址或者内存的物理地址,从而处理单元301通过访问物理地址获取对应的逻辑地址的内容。

处理单元301可以包括一个或多个CPU内核,CPU内核连接到内存管理单元302中。

本实施例以程序的逻辑地址的空间大小为1MB,ILM的物理空间大小为64KB,内存管理单元302的地址输入为20比特,内存管理单元302的地址输出为16比特进行说明。

由于ILM的物理空间大小为将64KB,I LM的物理空间大小以4KB的粒度进行分页,可得到16个4KB大小的第二页框。将ILM的物理地址划分为第二索引部分和第二地址部分,通过第二索引部分和第二地址部分组合便得到一个第二页框的物理地址。其中,第二索引部分为4个比特,第二地址部分为12个比特,从而可以通过第二索引部分的4个比特定位16个第二页框中的其中一个,再通过第二地址部分的12个比特定位该第二页框的具体位置。

同理,由于欲加载的程序在外部存储器40的逻辑空间大小为1MB,将该1MB的逻辑空间大小以4KB的粒度进行分页,可得到256个4KB大小的第一页框。同样将欲加载的程序的逻辑地址划分为第一索引部分和第一地址部分。其中,第一索引部分为8个比特,第二地址部分为12个比特,从而可以通过第一索引部分的8个比特定位256个第一页框中的其中一个,再通过第二索引部分的12个比特定位该第一页框的具体位置。

由于第一页框的数量大于第二页框的数量,无法将全部的第一页框映射到第二页框中,即同一时刻下,最多只能有16个第二页框与16个第一页框一一建立映射。具体的,基于本实施例的内存管理单元302动态地将第二页框映射到不同的第一页框中,从而处理单元301可以加载不同的第一页框对应的程序块。

参见图5,本实施例的内存管理单元302包括页框选择单元3021、页框判决单元3022、页框匹配索引单元3023以及页框使用统计单元3024,页框选择单元3021连接页框判决单元3022,页框判决单元3022分别连接页框匹配索引单元3023和页框使用统计单元3024。

页框选择单元3021包括多组比对模块,每组比对模块包括一个页框标签和一个页框比较电路,例如图5中的一个比对模块包括页框0标签和页框0比较电路,本实施例中,页框选择单元3021包括16组比对模块。页框选择单元3021用于获取逻辑地址,并根据逻辑地址的第一索引部分输出比较结果。其中页框比较电路用于将页框标签的预设值和逻辑地址的第一索引部分进行比对,并输出比较结果至页框判断单元3022。

页框判决单元3022用于根据比较结果确定多个第二页框中的目标第二页框的第二索引部分,并将目标第二页框的第二索引部分输出至页框匹配索引单元3023和页框使用统计单元3024。页框标签与第二页框的第二索引部分一一对应,即一个页框标签固定对应一个第二页框的第二索引部分,例如,页框0标签对应的第二页框的第二索引部分为0000,页框1标签对应的第二页框的第二索引部分为0001。

页框匹配索引单元3023用于输出I LM的物理地址,物理地址包括多个第二页框中选出的目标第二页框的第二索引部分和逻辑地址的第一地址部分。

页框使用统计单元3024用于从页框判决单元3022获取第二页框的第二索引部分以及根据使用情况对第二页框进行排序。

在应用上述内存管理单元302将逻辑地址转换为物理地址工作过程包括:

1)初始阶段,ILM的第二页框都未被使用,所有页框比较电路的使能信号均设为无效。

2)程序运行中,需要访问ILM,处理单元将逻辑地址传输到内存管理单元。

具体的,参见图5,逻辑地址的第一索引部分为12至19位共8个比特,逻辑地址的第一地址部分为0至11位共12个比特。

3)由于页框比较电路未使能,或者使用的页框比较电路中,当前输入的逻辑地址的第一地址部分与任意一个页框比较电路对应的页框标签的预设值均不同,页框判决单元输出的页框匹配命中信号为无效,并触发CPU BUS ERROR异常,即处理单元触发总线错误。

4)处理单元进入异常处理程序,处理单元从内存管理单元预设的页框配置端口获取页框使用统计,并根据页框使用统计确定目标页框标签,将逻辑地址的第一索引部分写入目标页框标签。

具体的,页框使用统计表示第二页框的使用情况,处理单元优先将已经使能的页框比较电路对应的页框标签确定为目标页框标签,如不存在未使能的页框比较电路,则根据LRU算法,处理单元将最久未使用的第二页框对应的页框标签确定为目标页框标签,然后将逻辑地址的第一索引部分写入目标页框标签,使能目标页框标签对应的目标页框比较电路。例如,处理单元将逻辑地址的第一索引部分填入页框0标签,并使能该页框0标签对应的页框0比较电路,退出异常处理程序。

5)异常程序处理结束后,处理单元重新发出该逻辑地址,连接到内管管理单元的地址输入。

6)内存管理单元将所有已经使能的页框标签与逻辑地址的第一索引部分进行比较,输出物理地址,以及输出有效的页框匹配命中信号至处理单元。

具体的,已经使能的每一个页框比较电路将页框标签的预设值与当前输入的逻辑地址的第一索引部分进行比较,页框标签的预设值即在异常处理程序中,处理单元写入页框标签的值。例如,当前输入的逻辑地址的第一索引部分为10101010,页框标签中,只有页框0标签的预设值为10101010,则页框0比较电路输出高电平至页框判决单元,其余页框比较电路输出低电平置页框判决单元,当前输入的逻辑地址对应的第一页框命中页框0标签对应的第二页框。然后,页框判决单元输出与页框0标签对应的第二页框的第二索引部分至页框匹配索引单元和页框使用统计单元,以及输出状态为有效的页框匹配命中信号至处理单元。当前得到页框匹配索引单元将第二页框的第二索引部分和逻辑地址的第一地址部分组合,便得到物理地址,输出该物理地址。页框使用统计单元记录该第二索引部分对应的第二页框的使用情况。匹配索引为0,生成物理地址进行MMU地址输出,页框匹配命中信号输出有效。

由于逻辑地址的第一地址部分与物理地址的第二地址部分都为8个比特,从而将第一索引部分对应的第一页框与第二索引部分对应的第二页框进行映射,从而通过第二索引部分+第一地址部分访问该第二页框的第二地址部分,第一地址部分与第二地址部分的每一位都是相同的。

7)内存管理单元的地址输出连接到I LM,处理单元获取到物理地址对应的数据内容。

8)后续操作中执行类似上述2)至7)的步骤。

在上述阶段4)中,页框匹配命中信号为无效,不存在未使能的页框比较电路,则根据LRU算法,处理单元将最久未使用的第二页框对应的页框标签确定为目标页框标签时,参见图6,即序号为“15”的第二页框对应的页框15标签,该序号为“15”的第二页框在替换后被真正使用,因此将该序号为“15”的第二页框移动至最左边,排序0至14的第二页框往右边移动一格。

在上述阶段6)中,页框匹配命中信号为有效,需要进行页替换,同样通过LRU算法,将最近不使用的第二页框替换出去。例如,参见图7,序号为“7”的第二页框被命中,则将序号为“7”的第二页框页框移至最左边,排序0至6的第二页框往右移动一格。

本实施例中,统计单元从页框判决单元获取到第二标签的第二索引部分时,记录该第二页框的使用情况。具体的,参见图8,页框使用统计单元包括多级排序模块,每级排序模块包括一个二选一多路选择器和D触发器,二选一多路选择器的输出端连接D触发器的输入端,D触发器的输出端连接二选一多路选择器的一个输入端。其中,第一级排序模块的第一二选一多路选择器MUX1的一个输入端连接第一D触发器D1的输出端,第一二选一多路选择器MUX1的另一个输入端从页框判决单元获取目标第二页框的第二索引部分。第二级排序模块的第二二选一多路选择器MUX2的另一个输入端连接第一触发器D1的输出端。

第一二选一多路选择器MUX1的另一个输入端从页框判决单元获取到的目标第二页框的第二索引部分需要进行二进制到十进制的转换,该转换过程可以是页框判决单元完成或页框使用统计单元完成。例如,目标第二页框的第二索引部分为0000时,则第一二二选一多路选择器MUX1的另一个输入端从页框判决单元获取到的输入值为0。0被保存到第一触发器D1中,直到第一二选一多路选择器MUX1的另一个输入端从页框判决单元获取到下一个输入值,例如,下一个输入值为4,额第一触发器保存的值为4,第二触发器D2保存的值为0。由此,将每一个触发器对应一个第二页框,从而计算单元可以根据触发器的状态确定最久未使用的页框。例如,计算单元从页框配置端口获取各个D触发器依次获取到的值为{1,2,4,3,8,9,6,7,12,14,5,11,15,10,13},则确定第二索引部分为1101对应的第二页框为最久未使用第二页框。

本实施例还提供一种电子设备,该电子设备包括壳体,壳体内包括上述的处理器芯片。

综上所述,本发明通过软硬件结合的方式高效地完成逻辑地址到物理地址的转化,其中通过硬件方式自动完成逻辑地址到物理地址的转化,页框使用统计单元对第二页框的使用进行排序,进而通过运行在操作系统的软件读取排序编号进行第二页框的替换。本发明具有消耗硬件资源少以及软件开销小的特点。

技术分类

06120116571883