内存管理系统与方法

文档序号:6580927阅读:153来源:国知局
专利名称:内存管理系统与方法
技术领域
本发明是有关于一种内存管理系统与方法,特别是有关于一种可以有效管理数据传输的内存管理系统与方法。
背景技术
现今的计算机系统大都使用虛拟内存的机制以加快计算机系统的速度以及降低计算机系统的负载,因为虚拟内存的使用使得在多任务的环境下更有效率,可以很明显的加快计算机系统的运算速度。
然而,随着科技的进步,计算机系统要处理的数据量越来越多也越来越复杂,传输的数据越来越大,大量的存取内存开始造成计算机系统的负担,让计算机系统的效率降低以及电能的浪费。举例来说,在通用序列总线
(Universal Serial Bus, BUS)2. 0的时代,数据的传输速率在每秒480兆位(Megabyte per second, Mbps)左右,然而在最新的通用序列总线3. 0的规格中,其传输的速率希望可以达到每秒千兆位(gigabyte per second, Gbps)的阶段,在4Gbps的速率以上。而在这么高速的数据传,中,若没有一个有效率的内存存取方式及设计,对于计算机系统来说会是一个负担。
因此需要一种内存存取的管理机制,可以有效地控制内存的存取,以降低计算机系统的负担与电能的浪费。

发明内容
本发明的主要目的在于提供一种可以降低系统负载与电源负担的内存管理系统。
本发明的另一目的在于设计一种内存管理方法可以应付大量且快速的数
据传输。
根据上述的目的,本发明揭露一种内存管理系统,此内存管理系统主要包含緩存内存、内存对应表、数据备份緩存器与内存控制器。缓存内存用于储存多个数据结构;内存对应表用于储存该些数据结构的地址的多个对应表;
4数据备份緩存器用于储存该些数据结构的基本地址信息;而内存控制器用于
管理緩存内存与数据备份緩存器等组件的数据结构存取。
根据上述的目的,本发明揭露一种内存管理方法,此内存管理方法主要
包含下列步骤。在内存控制器接收一指令;根据该指令,通过该内存控制器
在一内存对应表中比对是否在该内存对应表中找到与一缓存内存的相匹配的
一端点数据结构的地址信息;在该内存对应表中有相匹配的该端点数据结构 的地址信息,从该缓存内存中读取该端点数据结构;而在緩存内存中没有找 到相匹配的数据,从该内存对应表中选择一字段,从系统内存中读取该端点 数据结构,并将该端点数据结构存入该緩存内存中。


通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目
的、特征、优点将会变得更加清楚,其中
图1为显示本发明较佳实施例的内存管理系统的示意图2为本发明的内存管理系统的内存读取与写入的流程图3A为本发明的内存管理方法的流程图3B为本发明的内存管理方法的有限状态机制的状态图;及
图4A、图4B、图4C、图4D与图4E为本发明的内存管理系统的内存对
应表的示意图。
具体实施例方式
本发明的一些实施例将详细描述如下。然而,除了如下描述外,本发明 还可以广泛地在其它的实施例施行,且本发明的范围并不受实施例的限定, 其以之后的专利范围为准。再者,为提供更清楚的描述及更易理解本发明, 图式内各部分并没有依照其相对尺寸绘图,某些尺寸与其它相关尺度相比已 经被放大;不相关的细节部分也未完全绘出,以求图式的简洁。
图1是显示本发明较佳实施例的内存管理系统的示意图。如图1所示, 此内存管理系统10主要包含緩存内存(例如管线后緩存,PIPE Translation Look-aside Buffer, TLB) 102、内存对应表(例如管线对应表,PIPE Mapping Table) 104、数据备份緩存器(例如便笺缓存地址緩存器(Scratchpad Buffer Address Cache)) 106与内存控制器108。缓存内存102用于储存长度为8个
5双字组(8 double words, 8DWs)的端点数据结构(endpoint data structure),在一实施例中,緩存内存102中存储了 32个端点数据结构,而这些数据是属于全相连(full association)的数据结构;内存对应表104用于储存对应于緩存内存102中的端点数据结构在系统内存(未画出)中存储的地址信息,在一实施例中,共有32个对应于緩存内存102中32个端点数据结构的字段(entry);数据备份緩存器106用于緩存便笺緩存阵列基本地址(ScratchpadBuffer array base address)和便笺緩存入口基本地址(Scratchpad Bufferentry base address),而内存控制器108用于管理緩存内存102与数据备份緩存器106等组件的数据结构读取或写入,且根据内存管理系统10的外部信号的要求,以最短的路径找到对应的数据结构。
依旧参阅图1,内存管理系统10还包含第一信道110、第二信道112、仲裁模块114等。第一信道110与第二信道112用于传输一指令116,第一信道110与第二信道112依据传输的速率来区分可分别为高速信道与超高速信道,根据指令116的数据传输的速率需求选择通过第一信道110或第二信道112传输。仲裁模块114则根据从第一信道110与第二信道112传输的指令116的重要性判断数据执行的优先级。当指令116进入内存控制器108,内存控制器108根据内存对应表104中的端点数据结构地址信息找到与指令116相匹配的数据时,表示此指令116相关的端点数据结构已储存于緩存内存102中,将储存在缓存内存102对应于此指令116的端点数据结构送回至内存控制器108做进一步的执行。若当指'令116进入内存控制器108时,内存控制器108在内存对应表104的端点数据结构地址信息中找不到与指令116相匹配的数据时,内存控制器108则会在内存对应表104中找空白的字段或是可以被覆盖的字段,内存控制器108会根据此指令116和数据备份緩存器106中的便笺緩存阵列基本地址和便笺緩存入口基本地址,从系统内存中找到端点数据结构(endpoint data structure),并将此端点数据结构的地址信息写入到内存对应表104的空白字段(entry)或是可以被覆盖的字段,并将此端点数据结构写入到緩存内存102中。另外,当内存管理系统10完成上述的数据流量控制或是有些错误产生时,储存在緩存内存102中的端点数据结构同样也需要被更新。
然而,在此需要说明的是图1中所述的内存更新是通过一种最少使用(Least Recent Used, LRU)算法来作为更新在内存对应表104的字段的依据。在内存对应表104中有四个位称为使用计算机(in-active counter, IACTCNT),其功能是用于记录此字段的存取纪录。根据内存对应表104的存 取记录,通过LRU算法判断哪个字段可以被置换。LRU算法为现有技术,为 本领域技术人员所熟知,故在此不再针对LRU算法做详细描述。另外,在此 内存管理系统中还包含一微控制器118,此微控制器118用于更新在内存对 应表104中各个字段所储存的数据结构以因应在不同状态下的内存控制。
图2是显示本发明的内存管理系统的内存读取与写入的流程图。如图2 所示,在步骤202中,在起始的状态下,緩存内存(TLB)102处于闲置状态。 而在步骤204中,有一个指令116(PIPEREQ)在内存控制器108中读取,内存 控制器108则根据内存对应表104中的端点数据结构地址信息检查是否有与 指令116相匹配的数据。在步骤206中,若在内存对应表104中有相匹配的 数据,则在緩存内存102中读取所需的端点数据结构,以完成内存读取的步 骤。在步骤208中,若在内存对应表104没有找到匹配的数据,则在内存对 应表104中找出一个可以被写入的字段,而在步骤210中根据此指令116和 数据备份緩存器106中的便笺緩存阵列基本地址和便笺緩存入口基本地址, 从系统内存中读取端点数据结构,并将该端点数据结构的地址信息写入在步 骤208中所找到在内存对应表104中可以被写的字段,将此端点数据结构写 入到缓存内存102中。
图3A是显示本发明的内存管理方法的流程图。如图3所示,在步骤302A 中,此为起始的状态,从系统内存中将所有的端点(endpoint)的便笺緩存阵 列基本地址和便笺緩存入口基本地址緩存到数据备份緩存器106中。在步骤 304A中,通过内存控制器108检查内存对应表104中的端点数据结构地址信 息检查是否有与指令116相匹配的数据;在步骤306A中,若在内存对应表 104中有相匹配的数据,则从该緩存内存102中读取相应的8个双字节的端 点数据结构。在步骤308A中,若在内存对应表104中没有找到相匹配的数据, 则从内存对应表104中选择一字段,根据此指令116和数据备份緩存器106 中的便笺緩存阵列基本地址和便笺緩存入口基本地址,从系统内存中读取端 点数据结构,并将该端点数据结构的地址信息写入到内存对应表104中可以 被写的字段,将此端点数据结构写入到缓存内存102中。
图3B是显示本发明的内存管理方法的有限状态机制的状态图。如图3B 所示,在302B的状态中,系统处于闲置的状态下,而在304B与306B的状态中,分别从系统内存中将所有的端点的便笺緩存阵列基本地址和便奚緩存入
口基本地址緩存到数据备份緩存器106中,302B、 304B与306B的状态可称为起始状态。在308B中,緩存内存102为工作状态,也就是说可以开始读取或写入数据。310B中,根据内存对应表104中的端点数据结构地址信息检查是否有与指令116相匹配的数据,在312B中,若在内存对应表104中有相匹配的数据,则从该緩存内存102中读取相应的8个双字节的端点数据结构,状态机回到308B。在314B中,若在内存对应表104中没有找到相匹配的数据,则需要判断内存对应表104中是否有空白字段,若存在空白字段,则选择空白字段为一可供写入的字段,状态机跳转到318B;若不存在空白字段,则需要选择内存对应表104中可以被覆盖的字段为可供写入的字段,状态机跳转到316B。在316B中,将内存对应表104中可以被覆盖的字段在緩存内存102中相对应的端点数据结构写回到系统内存中,然后状态机跳转到318B。在318B中,从系统内存中读取端点数据结构,并将该端点数据结构的地址信息写入到内存对应表104中可以被写的字段,将此端点数据结构写入到缓存内存102中,然后回到308B的状态。在320B中,微控制器118要求更新端点数据结构的下一个链路指针(next link pointer)。在322B中,微控制器118要求读取8个双字节的端点数据结构。在32化中,当门铃(doorbell ring)信号地址为1时,微控制器118要求更新一内存对应表中DBPV (DoorbellPending Value)的地址信息。在326B中,微控制器118要求从緩存内存移除一 8个双字节的端点数据结构,当该数据应该从不同步表或周期性日+间表中移除。当完成了指令116中的操作或者是在执行指令116过程中存在错误时,緩存内存102中的端点数据结构会被更新,在328B中,指令116要求将第一信道110或者第二信道112更新后的端点数据写回到缓存内存102中。
图4A、图4B、图4C、图4D与图4E是显示本发明的内存管理系统的内存对应表的示意图。如图4A所示,第0~ l2个地址的数据是用于端点数据结构在系统内存中的地址信息;第13-16个地址则是微控制器用于控制或确认此内存对应表的字段是否准备好、是否是个有效字段或是此字段是否是被锁定等。第17 ~ 20个地址是失效计数器(In-Active Counter),用于记录LRU机制;而第21 ~ 31个地址则为保留地址。在图4B中则是当端点数据结构为异步的状态时,需要更新端点数据结构的下一个连结指针时,内存对应表的地址排列;在图4C中则是当需要更新DBPV这个地址信息时,内存对应表的地址排列;在图4D中则是当内存对应表中某些端点数据结构需要备移除时, 内存对应表的地址排列;图4E则是緩存内存中的端点数据结构需要被读取 时,内存对应表的地址排列。
上述的实施例仅为说明本发明的技术思想及特点,其目的在使本领域技 术人员能了解本发明的内容并据以实施,当不能以的限定本发明的专利范围, 即凡其它未脱离本发明所揭示精神所完成的各种等效改变或修饰都涵盖在本 发明所揭露的范围内,均应包含在上述的申请专利范围内。
权利要求
1.一种内存管理系统,其包含一缓存内存,其用于储存多个数据结构;一内存对应表,其用于储存该些数据结构的地址的多个对应表;一数据备份缓存器,其用于储存该些数据结构的基本地址信息;以及一内存控制器,其用于管理该缓存内存与该数据备份缓存器的该些数据结构的读取与写入。
2. 根据权利要求1所述的内存管理系统,还包含一第一信道、 一第二信道和一仲裁模块,根据传输速率选择该第一信道或该第二信道传输一指令,该仲裁模块判断该指令的优先级,将优先的该指令先传输至该内存控制器。
3. 根据权利要求2所述的内存管理系统,其中该内存控制器根据该指令与该内存对应表的对应,在该内存对应表中找寻相匹配的其中 一个该些数据结构的地址信息。
4. 根据权利要求3所述的内存管理系统,其中,当该内存控制器在该内存对应表中找到对应的一个该数据结构的地址信息时,该内存控制器在该緩存内存中读取该数据结构,当该内存控制器在该内存对应表中找不到对应的一个该数据结构的地址信息时,该内存控制器从系统内存中读取该数据结构。
5. 根据权利要求4所述的内存管理系统,当该内存控制器在该内存对应表中找不到对应的一个该数据结构的地址信息时,该内存控制器根据该指令和该数据备份緩存器中储存的该些数据结构的基本地址信息从系统内存中读取该数据结构。
6. 根据权利要求1所述的内存管理系统,还包含一微处理器,该微处理器用于更新该内存对应表的多个地址消息。
7. 根据权利要求1所述的内存管理系统,其中该緩存内存为一管线后緩存。
8. 根据权利要求1所述的内存管理系统,其中该数据备份暂存内存为一便笺緩存地址缓存器。
9. 一种内存管理方法,其包含在一 内存控制器接收一指令;根据该指令,通过该内存控制器在一内存对应表中比对是否在该内存对应表中找到与 一緩存内存的相匹配的 一端点数据结构的地址信息;在该内存对应表中有相匹配的该端点数据结构的地址信息,从该緩存内存中读取该端点数据结构;以及在缓存内存中没有找到相匹配的数据,从该内存对应表中选择一字段,从系统内存中读取该端点数据结构,并将该端点数据结构存入该緩存内存中。
10. 根据权利要求9所述的内存管理方法,其中,在緩存内存中没有找到相匹配的数据时,根据该指令和一数据备份緩存器中储存的该端点数据结构的一基本地址信息来从系统内存中读取该端点数据结构,并将该端点数据结构存入该緩存内存中。
11. 根据权利要求9所述的内存管理方法,其中该指令是从一第一信道与一第二信道传输至该内存控制器,并通过一指令仲裁模块判断该指令的优先级,将优先的该指令先传输至该内存控制器。
12. 根据权利要求9所述的内存管理方法,还包含通过一微处理器更新该内存对应表的多个地址消息。
13. 根据权利要求9所述的内存管理方法,其中该缓存内存为一管线后緩存。
14. 根据权利要求IO所述的内存管理方法,其中该数据备份暂存内存为便笺緩存地址緩存器。
15. 根据权利要求9所述的内存管理方法,其中该数据结构为一8个双字节的数据结构。 '
16. 根据权利要求9所述的内存管理方法,其中该緩存内存利用一最少使用算法来选择需要更新的该内存对应表的该字段。
17. 根据权利要求9所述的内存管理方法,.其中该内存管理方法中的该些数据结构为 一 全相连的数据结构。
全文摘要
本发明揭露了一种内存管理系统与方法,此内存管理系统主要包含缓存内存、内存对应表、数据备份缓存器与内存控制器。缓存内存用于储存多个数据结构;内存对应表用于储存该些数据结构的地址的多个对应表;数据备份缓存器用于储存该些数据结构的基本地址信息;而内存控制器用于管理缓存内存与数据备份缓存器等组件的数据结构存取,以最有效率的方式找到对应的数据结构。
文档编号G06F12/08GK101673247SQ200910179380
公开日2010年3月17日 申请日期2009年9月30日 优先权日2009年9月15日
发明者庞珊娜, 惠志强, 笛 戴, 健 李, 瑾 赖 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1