压缩内存访问控制方法、装置及系统的制作方法

文档序号:6493710阅读:188来源:国知局
压缩内存访问控制方法、装置及系统的制作方法
【专利摘要】本发明实施例提供一种压缩内存访问控制方法、装置及系统。该方法包括接收内存控制器发送的读请求消息,读请求消息包括待读数据的实际地址;根据待读数据的实际地址,从内存映射关系表中查询得到实际地址对应的物理地址段,内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;从内存芯片中读取物理地址段存储的数据,获得与实际地址对应的待读数据;将待读数据返回至内存控制器。本发明实施例可对压缩内存进行处理,可减少现有压缩内存访问中所带来的带宽资源浪费问题;同时,在内存访问过程中,可使得处理器与内存芯片之间的数据传输以压缩数据形式进行传输,从而可进一步减少内存访问的带宽资源占用。
【专利说明】压缩内存访问控制方法、装置及系统
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种压缩内存访问控制方法、装置及系统。
【背景技术】
[0002]在计算机系统中,处理器访问内存的性能是计算机系统的一个重要性能指标,特别是随着多核处理器计算机技术的发展,内存的访问性能已成为制约计算机技术发展的关键因素之一。其中,采用内存压缩技术就是一种可提高处理器访问内存性能的一项技术,其是将数据以压缩的格式存储的内存中,当处理器需要读取数据时,可直接读取压缩的数据,这样,在读取同样长度数据的情况下,可节省访问内存的带宽,提高内存的访问效率,同时也可节约内存的物理存储空间。
[0003]现有的内存压缩技术中,通常是在内存控制器上集成数据压缩解压缩功能模块,这样,内存控制器通过内存总线从内存芯片上读取的压缩数据,可直接在内存控制器进行解压缩处理;同样地,写入内存中的数据也可在内存控制器中压缩后,再通过内存总线写入内存芯片。具体地,内存控制器上维护有压缩翻译表(Compression Translation Table,CTT),该CTT包括多个CTT项,每个CTT项有16个字节,记录了实际地址(即数据压缩前的地址)空间中IK数据在内存芯片的物理地址空间中的位置,且每个CTT项中包括四个指针,每个指针指向4个基本块,每个基本块对应于内存芯片上的256字节的物理地址空间,即内存芯片中存储的压缩数据是分布在各基本块上,当内存控制器需要读取数据时,可基于CTT来查找所要读取的实际地址对应的物理地址段,并将物理地址段内存储压缩数据读出,并利用内存控制器上的压缩解压缩模块进行解压缩处理后,提供给处理器。
[0004]但是,现有的内存压缩技术中,在读取数据时,每次均需要读取至少一个CTT项对应的物理地址空间,即不管处理器需要的数据是多大,例如IK字节中的100字节,也要将这IK字节对应的压缩数据从内存芯片的四个基本块中取出,从而使得读取内存的带宽被无用数据浪费,导致内存访问带宽浪费,进而降低内存访问性能。

【发明内容】

[0005]本发明实施例提供一种压缩内存访问控制方法、装置及系统,可克服现有压缩内存技术中访问压缩内存带来的带宽浪费问题,提高内存访问性能。
[0006]第一方面,本发明实施例提供一种压缩内存访问控制方法,包括:
[0007]接收内存控制器发送的读请求消息,所述读请求消息包括待读数据的实际地址;
[0008]根据所述待读数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0009]从内存芯片中读取所述物理地址段存储的数据,获得与所述实际地址对应的所述待读数据;[0010]将所述待读数据返回至所述内存控制器。
[0011]第二方面,本发明实施例提供一种压缩内存访问控制方法,包括:
[0012]接收内存控制器发送的写请求消息,所述写请求消息包括待写数据的实际地址;
[0013]根据所述待写数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0014]从内存芯片中读取所述物理地址段存储的原始数据,并将所述待写数据与所述原始数据合成,得到合成数据;
[0015]将所述合成数据写入所述内存芯片。
[0016]第三方面,本发明实施例提供一种压缩内存访问控制装置,包括:
[0017]读请求消息接收模块,用于接收内存控制器发送的读请求消息,所述读请求消息包括待读数据的实际地址;
[0018]物理地址查询模块,用于根据所述待读数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0019]待读数据获取模块,用于从内存芯片中读取所述物理地址段存储的数据,获得与所述实际地址对应的所述待读数据;
[0020]待读数据返回模块,用于将所述待读数据返回至所述内存控制器。
[0021]第四方面,本发明实施例提供一种压缩内存访问控制装置,包括:
[0022]写请求信息接收模块,用于接收内存控制器发送的写请求消息,所述写请求消息包括待写数据的实际地址;
[0023]物理地址查询模块,用于根据所述待写数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0024]数据合成模块,用于从内存芯片中读取所述物理地址段存储的原始数据,并将所述待写数据与所述原始数据合成,得到合成数据;
[0025]数据写入模块,用于将所述合成数据写入所述内存芯片。
[0026]第五方面,本发明实施例提供一种压缩内存访问控制系统,包括内存调度器和内存芯片,所述内存调度器上述本发明实施例提供的压缩内存访问控制装置。
[0027]本发明实施例可基于内存控制器发送的读请求消息中的实际地址,从内存映射关系表中获取与实际地址对应的物理地址段,从而可从内存芯片中获取该实际地址对应的待读数据,使得内存访问过程中,可获得所需的实际数据,可避免现有需要获取无用数据带来的带宽浪费问题,减少压缩内存访问的带宽资源占用率,提高内存访问性能。
【专利附图】

【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0029]图1为本发明实施例一提供的压缩内存访问控制方法的流程示意图;
[0030]图2A为本发明实施例二提供的压缩内存访问控制方法的流程示意图;
[0031]图2B为本发明实施例中内存映射关系表的索引关系意图;
[0032]图3为本发明实施例三提供的压缩内存访问控制方法的流程示意图;
[0033]图4为本发明实施例四提供的压缩内存访问控制方法的流程示意图;
[0034]图5为本发明实施例五提供的压缩内存访问控制方法的流程示意图;
[0035]图6为本发明实施例六提供的压缩内存访问控制方法的流程示意图;
[0036]图7为本发明实施例七提供的压缩内存访问控制装置的结构示意图;
[0037]图8A为本发明实施例八提供的压缩内存访问控制装置的结构示意图;
[0038]图SB为本发明实施例中待读数据获取模块的结构示意图;
[0039]图9为本发明实施例九提供的压缩内存访问控制装置的结构示意图;
[0040]图1OA为本发明实施例十提供的压缩内存访问控制装置的结构示意图;
[0041]图1OB为本发明实施例中数据合成模块的结构示意图;
[0042]图11为本发明实施例十一提供的压缩内存访问控制系统的结构示意图。
【具体实施方式】
[0043]为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]本实施例提供的压缩内存访问控制方法可适用于压缩内存的访问控制中,其中,本实施例中所述的压缩内存访问控制系统包括内存调度器,该内存调度器与各内存芯片连接,用于管理各内存芯片;且该内存调度器还与内存控制器连接,可接收内存控制器发送的消息指令,对消息指令进行解析,并可基于该消息指令对内存芯片进行操作,例如读数据或写数据等。下面将会分别以读请求消息和写请求消息处理过程的具体实例,对本发明实施例对压缩内存的的访问控制进行说明。
[0045]图1为本发明实施例一提供的压缩内存访问控制方法的流程示意图。本实施例中方法可应用于上述的压缩内存访问控制系统中,其执行主体为压缩内存访问控制系统中的内存调度器,可对内存控制器发送的消息指令,本实施例中为读请求消息指令,进行处理,具体地,如图1所示,本实施例压缩内存访问控制方法包括:
[0046]步骤101、接收内存控制器发送的读请求消息,该读请求消息包括待读数据的实际地址;
[0047]步骤102、根据待读数据的实际地址,从内存映射关系表中查询得到实际地址对应的物理地址段,该内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0048]步骤103、从内存芯片中读取该物理地址段存储的数据,获得与实际地址对应的待读数据;
[0049]步骤104、将待读数据返回至内存控制器。
[0050]本实施例中,内存控制器发送的读请求消息,是对处理器(CPU )发出的读请求以消息包的形式发送至内存控制系统中的内存调度器,内存调度器在接收到该读请求消息后,只需要获取与该实际地址对应的物理地址段,即可从内存芯片中获取与该实际地址对应的待读数据,在获取待读数据后,可将待读数据返回至内存控制器。
[0051]本领域技术人员可以理解,上述的读请求消息中携带的待读数据的实际地址具体可以是指待读数据的起始地址和数据长度,或者,也可以是指待读数据的起始地址和结束地址的地址段。
[0052]综上,本实施例提供的压缩内存访问控制方法,可基于内存控制器发送的读请求消息中的实际地址,从内存映射关系表中获取与实际地址对应的物理地址段,从而可从内存芯片中获取该实际地址对应的待读数据,使得内存访问过程中,可获得所需的实际数据,可避免现有需要获取无用数据带来的带宽浪费问题,减少压缩内存访问的带宽资源占用率,提高内存访问性能。
[0053]图2A为本发明实施例二提供的压缩内存访问控制方法的流程示意图。本实施例中,压缩内存访问控制系统中的内存调度器中记录的内存映射关系表可包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据,这样,内存访问控制器请求的待读数据较长时,可从多个物理地址段中获取其所请求的数据,从而可满足各种数据长度的读请求处理中,具体地,如图2A所示,本实施例压缩内存访问控制方法包括如下步骤:
[0054]步骤201、接收内存控制器发送的读请求消息,该读请求消息包括待读数据的实际地址;
[0055]步骤202、根据待读数据的实际地址,从内存映射关系表中查询记录有该实际地址中的任一地址段的各映射项;
[0056]步骤203、将各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将各分段物理地址段组合起来作为实际地址对应的物理地址段;
[0057]步骤204、判断各分段物理地址段存储的数据是否包括有压缩数据,是则执行步骤205,否则,执行步骤208 ;
[0058]步骤205、从内存芯片中读取各分段物理地址段存储的各分段数据;
[0059]步骤206、将各分段数据的压缩数据解压缩,并组合起来得到组合数据;
[0060]步骤207、从该组合数据中得到与实际地址对应的待读数据,执行步骤209 ;
[0061]步骤208、直接从内存芯片中读取实际地址对应的待读数据;
[0062]步骤209、将该待读数据返回至内存控制器。
[0063]本实施例中,内存调度器中存储的内存映射关系表中记录有内存芯片的物理地址段存储的数据的压缩信息,这样,在执行步骤204时,就可以基于该内存映射关系表中记录的各物理地址段存储的数据的压缩信息,确定各物理地址段存储的数据是否为压缩数据;同时,在执行步骤206时,可对读出的数据进行解压缩处理,以获得所需的待读数据。本领域技术人员可以理解,所述的压缩信息具体可包括数据是否压缩,以及压缩所采用的算法等信息。
[0064]上述步骤204中,当各物理地址段存储的数据位未包括有压缩数据时,说明读请求信息所要读取的待读数据在内存芯片中是以非压缩形式存储的,该种情况下,实际地址实际上就是物理地址段,或物理地址段中的一段地址,此时可执行步骤208,直接从内存芯片中,读取物理地址段中,与实际地址对应的物理地址段所存储的数据。
[0065]上述步骤209中,将待读数据返回至内存控制器时,可根据需要以压缩数据形式返回至内存控制器,或者以非压缩数据形式返回至内存控制器。实际应用中,内存控制器发送的读请求消息可包括读请求优先级,该读请求优先级为高优先级或低优先级,其中,高优先级表示读请求数据获取的实时性要求较高,而低优先级则表示对读请求数据获取的实时性要求较低,因此内存调度器在将待读数据返回至内存控制器时,具体可为:在读请求的优先级为低优先级时,将待读数据以压缩包的方式返回至内存控制器,而在读请求的优先级为高优先级时,可直接将获得的待读数据返回至内存控制器,避免读请求时间过长,提高读请求处理的实时性。
[0066]上述步骤205,从内存芯片中读取各分段物理地址段存储的各分段数据之前,还可包括如下步骤:判断待读数据是否正好是物理地址段存储的数据,是则直接从内存芯片中读取物理地址段中的各分段物理地址段存储的数据,并将各分段物理地址段存储的数据组合起来,得到待读数据。实际应用中,若待读数据刚好是一个物理地址段,或多个物理地址段中存储的数据,那么只需要将各物理地址段的数据组合起来即可作为待读数据,返回至内存控制器,以提高读请求处理效率。本领域技术人员可以理解,在判断待读数据是否正好是物理地址段存储的数据时,可基于物理地址段中数据的压缩信息,确定存储的数据的长度,从而可与待读数据的数据长度,以及起始地址作比较,若完全相同,那么就说明待读数据正好是物理地址段存储的数据。
[0067]为便于对本发明实施例的理解,下面对本发明实施例中内存映射关系表进行详细说明。
[0068]图2B为本发明实施例中内存映射关系表的索引关系不意图。本实施例的内存映射关系表为一映射索引表,映射索引表中包括页映射项,每个页映射项中包括多个映射项,每个映射项记录有实际地址、物理地址段、数据压缩前长度、数据压缩后长度以及数据压缩算法等信息,利用该映射索引表,其可以基于哈希(hash)算法,对某一实地址在该索引表中查询到与该实地址相关的各映射项。具体地,如图2B所示,内存调度器接收到内存控制器发送的读请求中的待读数据的实际地址后,首先对实际地址进行一个哈希运算得到访问映射索引表的索引值,访问映射索引表在该入口处的链表,找到记录该实际地址所属页面的页映射表,其中,页映射表是个映射项的数组,记录了实际地址所属页面的数据占用的物理地址的情况,每一项中的物理地址段记录了一段连续数据块,考虑到压缩效率,一个映射项记录的数据块最小为256Byte,一个页映射表最多需要16个映射项。其中,一个页映射表中不同映射项对应的物理地址可以分散在内存芯片中的任何地方,而不是局限在一段连续的物理地址空间中;映射索引表可以存储在内存芯片中一段特定的保留空间内,也可以存储在内存调度器专用的缓存中。
[0069]图3为本发明实施例三提供的压缩内存访问控制方法的流程示意图。本实施例以压缩内存的数据读取过程中,内存控制器与内存调度器的交互对压缩内存的访问控制进行详细说明,具体地,如图3所示,本实施例方法可包括如下步骤:
[0070]步骤305、内存控制器接收处理器发出的读请求;
[0071]步骤310、内存控制器根据该读请求所要读取的待读数据的实际地址的起始地址、数据长度、延迟、优先级等参数,构造得到读请求消息包,发送至内存调度器;[0072]步骤315、内存调度器接收到该读请求消息包后,根据该请求的实际地址的起始地址及数据长度,从内存映射关系表中查询与该读请求相关的各映射项;
[0073]步骤320、内存调度器根据映射项的内容判断相关的各映射项的物理地址段中存储的数据的存储状态,即判断各映射项的物理地址段中存储的数据是否均以未压缩的形式存储在内存芯片中,是则执行步骤325,否则执行步骤330 ;
[0074]步骤325、根据各映射项的物理地址段,以及待读数据的实际地址的起始地址和数据长度,从内存芯片中读取该待读数据并存入内存调度器,执行步骤345;
[0075]步骤330、内存调度器判断待读数据是否正好是映射表中的一个映射项的物理地址段中存储的数据,是则执行步骤355,否则执行步骤335 ;
[0076]步骤335、内存调度器在映射表中标出与读请求相关的各映射项,并从内存芯片中读取各映射项的物理地址段中存储的数据,也称映射项数据,并存入内存调度器;
[0077]步骤340、内存调度器对每一映射项数据进行解压缩处理,并根据待读数据的实际地址的起始地址以及数据长度,获得待读数据;
[0078]步骤345、根据读请求消息包中携带的读请求的优先级,判断读请求是否要求尽快返回数据,是则执行步骤350,否则执行步骤360 ;
[0079]步骤350、内存调度器将从内存芯片中读取的数据构造成消息包,返回给内存控制器,执行步骤370 ;
[0080]步骤355、内存调度器从内存芯片中读取该一个映射项的物理地址段中存储的数据,构造成消息包返回给内存控制器,执行步骤365 ;
[0081]步骤360、内存调度器将从内存芯片读取的数据压缩,构造成消息包返回给内存控制器;
[0082]步骤365,内存控制器接收到消息包后,将消息包中的数据解压缩,并将解压缩后的数据发送至处理器,结束;
[0083]步骤370,内存控制器将消息包中的数据返回给处理器,结束。
[0084]本实施例中,内存调度器中的内存映射关系表的各映射项的内容包括与实际地址对应的物理地址段、物理地址段在内存芯片中存储的数据的压缩信息等。
[0085]本实施例中,上述步骤330和步骤355是仅对非压缩数据,且待读数据与映射项的物理地址段存储的数据一致才直接从内存芯片中直接读取作为待读数据,实际应用中,即使为压缩数据时,同样可以做此处理,详细可见图2实施例说明。
[0086]本实施例中,内存控制器是与处理器直接相连的内存读取控制装置,其可以接收处理器发送的读请求或写请求,并可将读请求和写请求打包成消息包的形式,以消息包的方式发送至内存调度器;同时,其也可以具有压缩和解压缩功能,可将读请求返回的经过压缩的待读数据进行解压缩后,返回至处理器,同样,也可将待写数据压缩后,携带在消息包中发送至内存调度器。
[0087]图4为本发明实施例四提供的压缩内存访问控制方法的流程示意图。与上述图1-图3所示实施例不同的是,本实施例中,内存调度器可对内存控制器发送的写请求消息进行处理,具体地,如图4所示,本实施例压缩内存访问控制方法可包括:
[0088]步骤401、接收内存控制器发送的写请求消息,该写请求消息包括待写数据的实际地址;[0089]步骤402、根据待写数据的实际地址,从内存映射关系表中查询得到实际地址对应的物理地址段,该内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0090]步骤403、从内存芯片中读取物理地址段存储的原始数据,并将待写数据与原始数据合成,得到合成数据;
[0091 ] 步骤404、将合成数据写入内存芯片。
[0092]本实施例中,内存控制器发送的写请求消息,是对处理器(CPU)发出的写请求以消息包的形式发送至内存控制系统中的内存调度器,内存调度器在接收到该写请求消息后,只需要获取与该实际地址对应的物理地址段,并与物理地址段中的原始数据进行合成后,即可完成数据的写请求处理。
[0093]图5为本发明实施例五提供的压缩内存访问控制方法的流程示意图。本实施例中,内存调度器中的记录的内存映射关系表可包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据,这样,内存访问控制器请求的待写数据较长时,可从多个物理地址段中获取其所请求的数据,从而可满足各种数据长度的写请求处理中,具体地,如图5所示,本实施例压缩内存访问控制方法可包括:;
[0094]步骤501、接收内存控制器发送的写请求消息,该写请求消息包括待写数据的实际地址;
[0095]步骤502、根据待写数据的实际地址,从内存映射关系表中查询记录有该实际地址中的任一地址段的各映射项;
[0096]步骤503、将各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将各分段物理地址段组合起来作为实际地址对应的物理地址段;
[0097]步骤504、从内存芯片读取各分段物理地址段存储的各分段数据;
[0098]步骤505、将各分段数据中为压缩数据的分段数据进行解压缩,并将解压缩后的各分段数据进行组合得到组合数据;
[0099]步骤506、将组合数据与待写数据合成得到合成数据;
[0100]步骤507、将合成数据写入内存芯片。
[0101]本实施例中,写请求消息中还可包括待写数据的压缩信息,上述步骤506中,将组合数据与待写数据合成得到合成数据具体可包括:
[0102]步骤5061、根据待请求信息中待写数据的压缩信息,判定待写数据是否为压缩数据;
[0103]步骤5062、在待写数据为压缩数据时,对待写数据进行解压缩;
[0104]步骤5063、将组合数据与解压缩后的待写数据合成得到合成数据。
[0105]本实施例中,在上述步骤502和步骤503,根据待写数据的实际地址,从内存映射关系表中查询得到实际地址对应的物理地址段之前还可包括:判断内存映射表中是否记录有待写数据的实际地址,以便在判断内存映射表中记录有实际地址时,从内存映射表中查询得到实际地址对应的物理地址段。
[0106]本实施例中,在内存映射表中未记录有所述实际地址时,可从内存芯片中为待请求数据分配一存储空间,以将待请求数据存储在该存储空间对应的物理地址段;同时,在内存映射关系表中记录待请求数据的实际地址与存储空间的物理地址段之间的对应关系。
[0107]本实施例中,将合成数据写入所述内存芯片具体可包括:在内存芯片中为合成数据分配一存储空间;将合成数据存储在该一存储空间,并在内存映射关系表中记录合成数据的实际地址与存储空间的物理地址段之间的映射关系。
[0108]图6为本发明实施例六提供的压缩内存访问控制方法的流程示意图。本实施例以压缩内存的写请求处理过程中,内存控制器与内存调度器的交互对压缩内存的访问控制进行说明,具体地,如图6所示,本实施例方法可包括如下步骤:
[0109]步骤605、内存控制器接收处理器发出的写请求;
[0110]步骤610、内存控制器判断该写请求是否要求压缩写待写数据,是则执行步骤615,否则执行步骤620 ;
[0111]步骤615、内存控制器压缩处理器发送的写请求的待写数据;
[0112]步骤620、内存控制器根据写请求的待写数据的实际地址的起始地址、数据长度等参数构造得到写请求消息包,发送至内存调度器;
[0113]步骤625、内存调度器接收到写请求消息包后,根据待写数据的实际地址的起始地址以及数据长度,在内存映射关系表中查询该写请求相关的各映射项;
[0114]步骤630、判断内存映射关系表中是否存在该写请求的相关映射项,是则执行步骤635,否则执行步骤640 ;
[0115]步骤635、内存调度器在内存芯片上查找得到一段空闲存储空间,分配给待写数据,执行步骤660 ;
[0116]步骤640、内存调度器从内存芯片中读出与待写请求相关的各映射项的物理地址段中存储的原始数据,并将以压缩形式存储的数据解压缩;
[0117]步骤645、判断待写数据是否已压缩,是则执行步骤650,否则执行步骤655;
[0118]步骤650、将待写数据进行解压缩处理;
[0119]步骤655、内存调度器将待写数据与内存芯片中读取的各映射项的物理地址段中存储的数据合并,得到合成数据,执行步骤635 ;
[0120]步骤660、内存调度器判断此时内存芯片上是否还有足够的空间存储压缩的数据,且实际剩余空间与可见剩余空间的比例小于一门槛值,是则执行步骤665,否则执行步骤670 ;
[0121]步骤665、内存调度器将待写数据进行压缩;
[0122]步骤670、内存调度器将待写数据写入内存芯片,并在内存映射关系表记录待写数据的实际地址与物理地址之间的对应关系,以及待写数据是否压缩的信息,结束。
[0123]上述步骤660中,所述的实际剩余空间就是指内存芯片的物理地址的大小,而可见剩余空间则是指待存储的数据的实际地址的大小,这样,只有他们之间的比例小于一定门槛值时,才可进行数据压缩,以压缩数据的形式存储,否则以非压缩形式存储。
[0124]图7为本发明实施例七提供的压缩内存访问控制装置的结构示意图。如图7所示,本实施例压缩内存访问控制装置包括读请求消息接收模块11、物理地址查询模块12、待读数据获取模块13和待读数据返回模块14,其中:
[0125]读请求消息接收模块11,用于接收内存控制器发送的读请求消息,该读请求消息包括待读数据的实际地址;[0126]物理地址查询模块12,用于根据待读数据的实际地址,从内存映射关系表中查询得到实际地址对应的物理地址段,该内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0127]待读数据获取模块13,用于从内存芯片中读取物理地址段存储的数据,获得与实际地址对应的待读数据;
[0128]待读数据返回模块14,用于将待读数据返回至内存控制器。
[0129]本实施例内存压缩访问控制装置可作为上述压缩内存控制系统中的内存调度器,对内存控制器发送的读请求消息进行处理,其具体实现可参见上述本发明方法实施例一-二的说明。
[0130]图8A为本发明实施例八提供的压缩内存访问控制装置的结构示意图;图8B为本发明实施例中待读数据获取模块的结构示意图。本实施例中,内存映射关系表包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据,对应的,物理地址查询模块12具体可包括映射项查询单元121和物理地址获取单元122,其中:
[0131]映射项查询单元121,用于根据待读数据的实际地址,从内存映射关系表中查询记录有实际地址中的任一地址段的各映射项;
[0132]物理地址获取单元122,用于将各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将各分段物理地址段组合起来作为实际地址对应的物理地址段。
[0133]进一步地,本实施例中,内存映射关系表中还可记录有内存芯片的物理地址段存储的数据的压缩信息,相应的,如图8B所示,上述的待读数据获取模块13可包括第一判断单元131、分段数据获取单元132、数据组合单元133和第一待读数据获取单元134,其中:
[0134]第一判断单元131,用于判断各分段物理地址段存储的数据是否包括有压缩数据;
[0135]分段数据获取单元132,用于在各分段物理地址段中存储的数据包括有压缩数据时,从内存芯片中读取各分段物理地址段存储的各分段数据;
[0136]数据组合单元133,用于将各分段数据的压缩数据解压缩,并组合起来得到组合数据;
[0137]第一待读数据获取单元134,用于从组合数据中得到与实际地址对应的所述待读数据。
[0138]本实施例中,如图SB所示,上述的待读数据获取模块13还可包括第二待读数据获取单元135,用于在各分段物理地址段中存储的数据未包括有压缩数据时,直接从内存芯片中读取实际地址对应的待读数据。
[0139]更进一步地,本实施例中,如图SB所示,上述的待读数据获取模块13还可包括第二判断单元136和第三待读数据获取单元137,其中:
[0140]第二判断单元136,用于判断待读数据是否正好是物理地址段存储的数据;
[0141]第三待读数据获取单元137,用于判断待读数据是否正好是物理地址段存储的数据时,直接从内存芯片中读取物理地址段中的各分段物理地址段存储的数据,并将各分段物理地址段存储的数据组合起来,得到待读数据。
[0142]本实施例中,如图8A所示,上述读请求消息接收模块11接收的读请求消息还可包括有读请求优先级,该读请求优先级为高优先级或低优先级,相应地,如图8A所示,上述的待读数据返回模块14,具体可用于在读请求的优先级为低优先级时,将待读数据以压缩包的方式返回至内存控制器。
[0143]本实施例可基于上述图2或图3所示压缩内存访问控制方法步骤实现对压缩内存的读请求进行处理,其具体实现可参见上述本发明方法实施例的说明。
[0144]图9为本发明实施例九提供的压缩内存访问控制装置的结构示意图。如图9所示,本实施例压缩内存访问控制装置包括写请求信息接收模块21、物理地址查询模块22、数据合成模块23和数据写入模块24,其中:
[0145]写请求信息接收模块21,用于接收内存控制器发送的写请求消息,该写请求消息包括待写数据的实际地址;
[0146]物理地址查询模块22,用于根据待写数据的实际地址,从内存映射关系表中查询得到实际地址对应的物理地址段,该内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;
[0147]数据合成模块23,用于从内存芯片中读取物理地址段存储的原始数据,并将待写数据与所述原始数据合成,得到合成数据;
[0148]数据写入模块24,用于将合成数据写入内存芯片。
[0149]本实施例内存压缩访问控制装置可作为上述压缩内存控制系统中的内存调度器,对内存控制器发送的写请求消息进行处理,其具体实现可参见上述本发明方法实施例四-六的说明。
[0150]图1OA为本发明实施例十提供的压缩内存访问控制装置的结构示意图;图1OB为本发明实施例中数据合成模块的结构示意图。本实施例中,内存映射关系表包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据,相应地,如图1OA所示,上述的物理地址查询模块22具体可包括映射项查询单元221和物理地址获取单元222,其中:
[0151]映射项查询单元221,用于根据待读数据的实际地址,从内存映射关系表中查询记录有实际地址中的任一地址段的各映射项;
[0152]物理地址获取单元222,用于将各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将各分段物理地址段组合起来作为实际地址对应的物理地址段。
[0153]进一步地,上述的内存映射关系表中还可记录有内存芯片的物理地址段存储的数据的压缩信息,相应地,如图1OB所示,上述的数据合成模块23具体可包括分段数据获取单元231、数据组合单元232和数据合成单元233,其中:
[0154]分段数据获取单元231,用于从内存芯片读取各分段物理地址段存储的各分段数据;
[0155]数据组合单元232,用于将各分段数据中为压缩数据的分段数据进行解压缩,并将解压缩后的各分段数据进行组合得到组合数据;
[0156]数据合成单元233,用于将组合数据与待写数据合成得到合成数据。
[0157]进一步地,上述写请求信息接收模块21接收到的写请求消息中还可包括所述待写数据的压缩信息,相应地,如图1OB所示,上述的数据合成单元233可包括判定子单元2331、解压缩子单元2332和数据合成子单元2333,其中:[0158]判定子单元2331,用于根据待请求信息中待写数据的压缩信息,判定待写数据是否为压缩数据;
[0159]解压缩子单元2332,用于在待写数据为压缩数据时,对待写数据进行解压缩;
[0160]数据合成子单元2333,用于将组合数据与解压缩后的待写数据合成得到合成数据。
[0161]此外,如图1OA所示,本实施例压缩内存访问控制装置还可包括:判断模块25,用于判断内存映射表中是否记录有待写数据的实际地址,以便在判断内存映射表中记录有实际地址时,物理地址查询模块22从内存映射表中查询得到实际地址对应的物理地址段。
[0162]进一步地,如图1OA所示,本实施例压缩内存访问控制装置还可包括存储空间分配模块26、存储模块27和映射关系记录模块28,其中:
[0163]存储空间分配模块26,用于在内存映射表中未记录有实际地址时,从内存芯片中为待请求数据分配一存储空间;
[0164]存储模块27,用于将待请求数据存储在存储空间对应的物理地址段;
[0165]映射关系记录模块28,用于在内存映射关系表中记录待请求数据的实际地址与存储空间的物理地址段之间的对应关系。
[0166]本实施例中,如图1OA所示,上述的数据写入模块24可包括第一存储空间分配单元241和第一映射关系记录 单元242,其中:
[0167]第一存储空间分配单元241,用于在内存芯片中为合成数据分配一存储空间;
[0168]第一映射关系记录单元242,用于将合成数据存储在一存储空间,并在内存映射关系表中记录合成数据的实际地址与存储空间的物理地址段之间的映射关系。
[0169]本实施例可基于图5或图6所示的压缩内存访问控制方法对内存控制器发送的写请求进行处理,具体实现可参见上述本发明方法实施例的说明。
[0170]图11为本发明实施例1^一提供的压缩内存访问控制系统的结构示意图。如图11所示,本实施例压缩内存访问控制系统包括内存调度器10和内存芯片20,该内存调度器可包括图7-图11任一所示的压缩内存控制装置,或者,也可同时包括图7或图8A所示的装置,以及图9或图1OA所示的装置。
[0171]本实施例中,如图11所示,压缩内存系统可与多核处理器30连接,用于对多核处理器30发送的读请求或写请求进行处理,其中,多核处理器30包括处理器301、命令总线302和内存控制器303,内存控制器303与内存调度器10之间通过消息通道40连接,内存调度器10和内存芯片20构成内存模块,其中,处理器301与内存控制器303之间,以及内存控制器303与内存调度器10之间均是通过消息包形式传输指令或数据。
[0172]本实施例中,上述的内存控制器303以及内存调度器10均可发送和接收消息包,并可具有压缩解压缩功能,即可对传输的数据进行压缩或解压缩处理。
[0173]本实施例中,上述的内存控制器303以及内存调度器10之间采用消息包进行信息传输,支持可变粒度的数据压缩,提高压缩数据的灵活性。同时,由于消息包中可携带数据的压缩信息,方便内存控制器和内存调度器两端的配合。
[0174]本实施例中,上述的内存控制器303以及内存调度器10在压缩数据时,可根据需要调整数据压缩解压缩比例,以提高内存资源的利用率。
[0175]本实施例中,由于内存访问是基于消息包形式进行数据传输,因此,可支持可变延迟访存,实现压缩解压缩内存数据的透明,不管是访问内存芯片中的压缩数据还是未压缩的数据,只需要统一的访存指令即可。
[0176]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0177]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种压缩内存访问控制方法,其特征在于,包括: 接收内存控制器发送的读请求消息,所述读请求消息包括待读数据的实际地址; 根据所述待读数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系; 从内存芯片中读取所述物理地址段存储的数据,获得与所述实际地址对应的所述待读数据; 将所述待读数据返回至所述内存控制器。
2.根据权利要求1所述的压缩内存访问控制方法,其特征在于,所述内存映射关系表包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据; 所述根据所述待读数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段包括: 根据所述待读数据的实际地址,从内存映射关系表中查询记录有所述实际地址中的任一地址段的各映射项; 将所述各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将所述各分段物理地址段组合起来作为所述实际地址对应的物理地址段。
3.根据权利要求2所述的压缩内存访问控制方法,其特征在于,所述内存映射关系表中还记录有内存芯片的物理地址段存储的数据的压缩信息; 所述从内存芯片中读取所述物理地址段存储的数据,获得与所述实际地址对应的所述待读数据包括: 判断所述各分段物理地址段存储的数据是否包括有压缩数据; 在所述各分段物理地址段中存储的数据包括有压缩数据时,从所述内存芯片中读取所述各分段物理地址段存储的各分段数据; 将所述各分段数据的压缩数据解压缩,并组合起来得到组合数据; 从所述组合数据中得到与所述实际地址对应的所述待读数据。
4.根据权利要求3所述的压缩内存访问控制方法,其特征在于,还包括: 在所述各分段物理地址段中存储的数据未包括有压缩数据时,直接从所述内存芯片中读取所述实际地址对应的所述待读数据。
5.根据权利要求1-4任一所述的压缩内存访问控制方法,其特征在于,所述读请求消息还包括读请求优先级,所述读请求优先级为高优先级或低优先级; 所述将所述待读数据返回至所述内存控制器包括: 在所述读请求的优先级为低优先级时,将所述待读数据以压缩包的方式返回至所述内存控制器。
6.根据权利要求3所述的压缩内存访问控制方法,其特征在于,所述从所述内存芯片中读取所述各分段物理地址段存储的分段数据之前还包括: 判断所述待读数据是否正好是所述物理地址段存储的数据,是则直接从所述内存芯片中读取所述物理地址段中的各分段物理地址段存储的数据,并将各分段物理地址段存储的数据组合起来,得到所述待读数据。
7.—种压缩内存访问控制方法,其特征在于,包括:接收内存控制器发送的写请求消息,所述写请求消息包括待写数据的实际地址; 根据所述待写数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系;从内存芯片中读取所述物理地址段存储的原始数据,并将所述待写数据与所述原始数据合成,得到合成数据; 将所述合成数据写入所述内存芯片。
8.根据权利要求7所述的压缩内存访问控制方法,其特征在于,所述内存映射关系表包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据; 所述根据所述待写数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段包括: 根据所述待写数据的实际地址,从内存映射关系表中查询记录有所述实际地址中的任一地址段的各映射项; 将所述各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将所述各分段物理地址段组合起来作为所述实际地址对应的物理地址段。
9.根据权利要求8所述的压缩内存访问控制方法,其特征在于,所述内存映射关系表中还记录有内存芯片的物理地址段存储的数据的压缩信息; 所述从内存芯片中读取所述物理地址段存储的原始数据,并将所述待写数据与所述原始数据合成,得到合成数据包括: 从所述内存芯片读取所述各分段物理地址段存储的各分段数据; 将所述各分段数据中为压缩数据的分段数据进行解压缩,并将解压缩后的各分段数据进行组合得到组合数据; 将所述组合数据与待写数据合成得到合成数据。
10.根据权利要求9所述的压缩内存访问控制方法,其特征在于,所述写请求消息中还包括所述待写数据的压缩信息; 所述将所述组合数据与待写数据合成得到合成数据包括: 根据所述待请求信息中所述待写数据的压缩信息,判定所述待写数据是否为压缩数据; 在所述待写数据为压缩数据时,对所述待写数据进行解压缩; 将所述组合数据与解压缩后的所述待写数据合成得到合成数据。
11.根据权利要求7所述的压缩内存访问控制方法,其特征在于,所述根据所述待写数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段之前还包括: 判断所述内存映射表中是否记录有所述实际地址,以便在判断所述内存映射表中记录有所述实际地址时,从所述内存映射表中查询得到所述实际地址对应的物理地址段。
12.根据权利要求7-11任一所述的压缩内存访问控制方法,其特征在于,所述将所述合成数据写入所述内存芯片包括: 在所述内存芯片中为所述合成数据分配一存储空间; 将所述合成数据存储在所述一存储空间,并在所述内存映射关系表中记录所述合成数据的实际地址与所述存储空间的物理地址段之间的映射关系。
13.根据权利要求11所述的压缩内存访问控制方法,其特征在于,还包括: 在所述内存映射表中未记录有所述实际地址时,从所述内存芯片中为所述待请求数据分配一存储空间; 将所述待请求数据存储在所述存储空间对应的物理地址段; 在所述内存映射关系表中记录所述待请求数据的实际地址与所述存储空间的物理地址段之间的对应关系。
14.一种压缩内存访问控制装置,其特征在于,包括: 读请求消息接收模块,用于接收内存控制器发送的读请求消息,所述读请求消息包括待读数据的实际地址; 物理地址查询模块,用于根据所述待读数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系; 待读数据获取模块,用于从内存芯片中读取所述物理地址段存储的数据,获得与所述实际地址对应的所述待读数据; 待读数据返回模块,用于将所述待读数据返回至所述内存控制器。
15.根据权利要求14所述的压缩内存访问控制装置,其特征在于,所述内存映射关系表包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据; 所述物理地址查询模块包括: 映射项查询单元,用于根据所述待读数据的实际地址,从内存映射关系表中查询记录有所述实际地址中的任一地址段的各映射项; 物理地址获取单元,用于将所述各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将所述各分段物理地址段组合起来作为所述实际地址对应的物理地址段。
16.根据权利要求15所述的压缩内存访问控制装置,其特征在于,所述内存映射关系表中还记录有内存芯片的物理地址段存储的数据的压缩信息; 所述待读数据获取模块包括: 第一判断单元,用于判断所述各分段物理地址段存储的数据是否包括有压缩数据;分段数据获取单元,用于在所述各分段物理地址段中存储的数据包括有压缩数据时,从所述内存芯片中读取所述各分段物理地址段存储的各分段数据; 数据组合单元,用于将所述各分段数据的压缩数据解压缩,并组合起来得到组合数据; 第一待读数据获取单元,用于从所述组合数据中得到与所述实际地址对应的所述待读数据。
17.根据权利要求16所述的压缩内存访问控制装置,其特征在于,所述待读数据获取模块还包括: 第二待读数据获取单元,用于在所述各分段物理地址段中存储的数据未包括有压缩数据时,直接从所述内存芯片中读取所述实际地址对应的所述待读数据。
18.根据权利要求14-17任一所述的压缩内存访问控制装置,其特征在于,所述读请求消息还包括读请求优先级,所述读请求优先级为高优先级或低优先级; 所述待读数据返回模块,具体用于在所述读请求的优先级为低优先级时,将所述待读数据以压缩包的方式返回至所述内存控制器。
19.根据权利要求16所述的压缩内存访问控制装置,其特征在于,所述待读数据获取模块还包括: 第二判断单元,用于判断所述待读数据是否正好是所述物理地址段存储的数据; 第三待读数据获取单元,用于判断所述待读数据是否正好是所述物理地址段存储的数据时,直接从所述内存芯片中读取所述物理地址段中的各分段物理地址段存储的数据,并将各分段物理地址段存储的数据组合起来,得到所述待读数据。
20.一种压缩内存访问控制装置,其特征在于,包括: 写请求信息接收模块,用于接收内存控制器发送的写请求消息,所述写请求消息包括待写数据的实际地址; 物理地址查询模块,用于根据所述待写数据的实际地址,从内存映射关系表中查询得到所述实际地址对应的物理地址段,所述内存映射关系表中记录有实际地址与内存芯片的物理地址段的对应关系; 数据合成模块,用于从内存芯片中读取所述物理地址段存储的原始数据,并将所述待写数据与所述原始数据合成,得到合成数据; 数据写入模块,用于将所述合成数据写入所述内存芯片。
21.根据权利要求20所述的压缩内存访问控制装置,其特征在于,所述内存映射关系表包括多个映射项,每个映射项记录有实际地址及其对应的内存芯片的物理地址段,每个映射项中的内存芯片的物理地址段对应于内存芯片中的一段存储数据; 所述物理地址查询模块包括: 映射项查询单元,用于根据所述待写数据的实际地址,从内存映射关系表中查询记录有所述实际地址中的任一地址段的各映射项; 物理地址获取单元,用于将所述各映射项中记录的内存芯片的物理地址段作为各分段物理地址段,并将所述各分段物理地址段组合起来作为所述实际地址对应的物理地址段。
22.根据权利要求21所述的压缩内存访问控制装置,其特征在于,所述内存映射关系表中还记录有内存芯片的物理地址段存储的数据的压缩信息; 所述数据合成模块包括: 分段数据获取单元,用于从所述内存芯片读取所述各分段物理地址段存储的各分段数据; 数据组合单元,用于将所述各分段数据中为压缩数据的分段数据进行解压缩,并将解压缩后的各分段数据进行组合得到组合数据; 数据合成单元,用于将所述组合 数据与待写数据合成得到合成数据。
23.根据权利要求22所述的压缩内存访问控制装置,其特征在于,所述写请求消息中还包括所述待写数据的压缩信息; 所述数据合成单元包括: 判定子单元,用于根据所述待请求信息中所述待写数据的压缩信息,判定所述待写数据是否为压缩数据;解压缩子单元,用于在所述待写数据为压缩数据时,对所述待写数据进行解压缩; 数据合成子单元,用于将所述组合数据与解压缩后的所述待写数据合成得到合成数据。
24.根据权利要求20所述的压缩内存访问控制装置,其特征在于,还包括: 判断模块,用于判断所述内存映射表中是否记录有所述实际地址,以便在判断所述内存映射表中记录有所述实际地址时,所述物理地址查询模块从所述内存映射表中查询得到所述实际地址对应的物理地址段。
25.根据权利要求20-24任一所述的压缩内存访问控制装置,其特征在于,所述数据写入模块包括: 第一存储空间分配单元,用于在所述内存芯片中为所述合成数据分配一存储空间; 第一映射关系记录单元,用于将所述合成数据存储在所述一存储空间,并在所述内存映射关系表中记录所述合成数据的实际地址与所述存储空间的物理地址段之间的映射关系O
26.根据权利要求24所述的压缩内存访问控制装置,其特征在于,还包括: 存储空间分配模块,用于在所述内存映射表中未记录有所述实际地址时,从所述内存芯片中为所述待请求数据分配一存储空间; 存储模块,用于将所述待请求数据存储在所述存储空间对应的物理地址段; 映射关系记录模块,用于在所述内存映射关系表中记录所述待请求数据的实际地址与所述存储空间的物理地址段之间的对应关系。
27.一种压缩内存访问控制系统,其特征在于,包括内存调度器和内存芯片,所述内存调度器包括权利要求14-19任一所述的压缩 内存访问控制装置,和/或权利要求20-26任一所述的压缩内存访问控制装置。
【文档编号】G06F12/06GK103902467SQ201210575114
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】阮元, 陈明宇, 崔泽汉, 黄永兵 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1