CN104346293B - 混合内存的数据访问方法、模块、处理器及终端设备 - Google Patents

混合内存的数据访问方法、模块、处理器及终端设备 Download PDF

Info

Publication number
CN104346293B
CN104346293B CN201310317746.0A CN201310317746A CN104346293B CN 104346293 B CN104346293 B CN 104346293B CN 201310317746 A CN201310317746 A CN 201310317746A CN 104346293 B CN104346293 B CN 104346293B
Authority
CN
China
Prior art keywords
data
visited
dram
migration
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310317746.0A
Other languages
English (en)
Other versions
CN104346293A (zh
Inventor
陈荔城
陈明宇
崔泽汉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310317746.0A priority Critical patent/CN104346293B/zh
Priority to PCT/CN2014/082974 priority patent/WO2015010646A1/zh
Publication of CN104346293A publication Critical patent/CN104346293A/zh
Application granted granted Critical
Publication of CN104346293B publication Critical patent/CN104346293B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明的实施例提供一种混合内存的数据访问方法、模块、处理器及终端设备,涉及计算机领域,能够简化数据访问过程。包括:当待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。本发明的实施例提供的一种混合内存的数据访问方法、模块、处理器及终端设备,用于混合内存的数据访问。

Description

混合内存的数据访问方法、模块、处理器及终端设备
技术领域
本发明涉及计算机领域,尤其涉及一种混合内存的数据访问方法、模块、处理器及终端设备。
背景技术
随着技术的逐渐进步,处理器内集成的核的个数不断增长,服务器、云计算平台对内存容量的需求也不断增长,而内存容量的增长速度较慢,通常的,内存主要都是使用DRAM(Dynamic Random Access Memory,动态随机存取存储器),而为了提高内存容量的增长速度,研发新型的内存材料成为了必然趋势,目前新型的内存材料研究主要集中在NVM(Non-Volatile Memory,非易失性存储器)材料上,如PCM(Phase Change Memory,相变存储器),MRAM(Magnetic Random Access Memory,磁性随机存储器)和快闪存储器(Flash)等等。这些NVM材料具有位密度高、静态功耗低和非易失等优点,但是NVM等新型的内存材料还存在写寿命有限等缺点,使得这些新型的内存材料还无法完全替代DRAM作为内存,而是作为DRAM的扩展内存。
现有技术中,在使用由DRAM和扩展内存组成的混合内存时,内存访问仍然使用DDRx内存同步访问接口,其中,x是指第几代DDR协议,如DDR3,DDR4,而DDR(Double DataRate,双倍速率)内存同步访问接口要求访问命令具有固定的时序延迟,因此无法直接处理这种由于混合内存带来的非一致访存延迟,需要对所述非一致访问延迟进行处理。示例的,当在OS(Operating System,操作系统)中使用由DRAM和扩展内存组成的混合内存时,需要软件来维护当前哪些页面(Page)位于DRAM中,哪些页面只在扩展内存中,这一般通过在页表项中增加标志位来实现。当OS收到访存请求,即数据访问请求,先查询页表获取数据访问请求中访问的数据是否在DRAM中,如果是,则直接访问DRAM;如果不是,需要产生缺页中断(Page Fault),然后将访问的数据对应的页面从扩展内存迁移到DRAM中,并更新对应页表项中的标志位,最后才能向DRAM重新发送访存请求。
但是上述混合内存的数据访问方法需要对现有的处理器运行的操作系统中的内存管理部分进行重新设计,如建立和更新页表项中的标志位、产生缺页中断等,代码修改量较大,数据访问过程较为复杂。
发明内容
本发明的实施例提供一种混合内存的数据访问方法、模块、处理器及终端设备,能够简化数据访问过程。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种混合内存的数据访问方法,应用于串接模块,包括:
当待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;
在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
结合第一方面,在第一种可实施方式中,在所述向内存控制器发送预设出错数据之前,所述方法还包括:
建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据,所述存储模块为由所述DRAM和所述NVM组成的混合内存;
接收所述数据访问请求;
根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中;
当所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
结合第一种可实施方式,在第二种可实施方式中,所述将位于NVM中的所述待访问数据迁移至所述DRAM中包括:
按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据;
根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。
结合第二种可实施方式,在第三种可实施方式中,所述数据访问请求包括所述待访问数据的物理地址,
所述按照所述数据访问请求生成数据迁移请求包括:
根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度。
结合第二、三种可实施方式,在第四种可实施方式中,
所述预设迁移粒度与DRAM行缓冲器的粒度相同。
结合第一至四种可实施方式,在第五种可实施方式中,所述地址映射表还记录了缓存标志,所述缓存标志用于标识数据是否位于缓存中,
在所述向内存控制器发送预设出错数据之前,所述方法还包括:
查询所述地址映射中的缓存标志,判断所述待访问数据是否位于缓存中;
当所述待访问数据位于缓存中,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中。
结合第一至五种可实施方式,在第六种可实施方式中,
接收所述处理器重新发送的所述数据访问请求;
根据所述数据访问请求查询所述地址映射表,判断得到所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
结合第一方面,第一至六种可实施方式,在第七种可实施方式中,所述预设出错数据为至少存在两位出错的数据。
第二方面,提供一种混合内存的数据访问方法,应用于处理器,包括:
接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;
根据所述预设出错数据产生错误纠正码ECC出错中断,以便于所述串接模块在所述处理器对所述ECC出错中断处理时,所述串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。
结合第二方面,在第一种可实现方式中,在所述根据所述预设出错数据产生错误纠正码ECC出错中断之前,所述方法还包括:
通过对所述预设出错数据进行ECC校验,判断所述预设出错数据的错误模式是否为ECC出错中断模式。
结合第二方面、第一种可实现方式,在第二种可实现方式中,在所述串接模块将位于所述NVM中的所述待访问数据迁移至所述DRAM中之后,所述方法还包括:
重新向所述串接模块发送所述数据访问请求,以便于所述串接模块在所述DRAM中获取所述待访问数据。
结合第二方面、第一、二种可实现方式,在第三种可实现方式中,所述预设出错数据为至少存在两位出错的数据。
第三方面,提供一种串接模块,包括:
发送单元,用于在待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;
迁移单元,用于在所述处理器对所述ECC出错中断处理时,所述迁移单元将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
结合第二方面,在第一种可实施方式中,所述串接模块还包括:
建立单元,用于在所述向内存控制器发送预设出错数据之前,建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据,所述存储模块为由所述DRAM和所述NVM组成的混合内存;
接收单元,用于接收所述数据访问请求;
判断单元,用于根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中;
执行单元,用于在所述判断单元判断得到所述待访问数据在所述DRAM中时,则在所述DRAM中获取所述待访问数据,在所述判断单元判断得到所述待访问数据在所述DRAM中时,触发所述发送单元发送所述预设出错数据。
结合第一种可实施方式,在第二种可实施方式中,所述迁移单元具体包括:
生成子单元,用于按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据;
迁移子单元,用于根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。
结合第二种可实施方式,在第三种可实施方式中,所述数据访问请求包括所述待访问数据的物理地址,
所述生成子单元具体用于:根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度。
结合第二、三种可实施方式,在第四种可实施方式中,
所述预设迁移粒度与DRAM行缓冲器的粒度相同。
结合第一至四种可实施方式,在第五种可实施方式中,所述地址映射表还记录了缓存标志,所述缓存标志用于标识数据是否位于缓存中,
所述判断单元还用于查询所述地址映射中的缓存标志,判断所述待访问数据是否位于缓存中;
所述执行单元还用于在所述待访问数据位于缓存中时,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中。
结合第一至五种可实施方式,在第六种可实施方式中,
所述接收单元还用于接收所述处理器重新发送的所述数据访问请求;
所述判断单元还用于根据所述数据访问请求查询所述地址映射表,判断得到所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
结合第三方面,第一至六种可实施方式,在第七种可实施方式中,所述预设出错数据为至少存在两位出错的数据。
第四方面,提供一种处理器,包括:
接收单元,用于接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;
处理单元,用于根据所述预设出错数据产生错误纠正码ECC出错中断,以便于所述串接模块在所述处理器对所述ECC出错中断处理时,将位于NVM中的所述待访问数据迁移至所述DRAM中。
结合第四方面,在第一种可实现方式中,所述处理器还包括:
判断单元,用于在所述根据所述预设出错数据产生错误纠正码ECC出错中断之前,通过对所述预设出错数据进行ECC校验,判断所述预设出错数据的错误模式是否为ECC出错中断模式。
结合第四方面、第一种可实现方式,在第二种可实现方式中,所述处理器还包括:
发送单元,用于在所述串接模块将位于所述NVM中的所述待访问数据迁移至所述DRAM中之后,重新向所述串接模块发送所述数据访问请求,以便于所述串接模块在所述DRAM中获取所述待访问数据。
结合第四方面、第一、二种可实现方式,在第三种可实现方式中,所述预设出错数据为至少存在两位出错的数据。
第五方面,提供一种终端设备,包括:
处理器,内存控制器,串接模块,存储模块,所述存储模块为由所述DRAM和所述NVM组成的混合内存;
所述串接模块为以上任意所述的串接模块,用于在待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中;
所述处理器为以上任意所述的处理器,用于接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;根据所述预设出错数据产生错误纠正码ECC出错中断,以便于在所述处理器对所述ECC出错中断处理时,所述串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。
本发明的实施例提供一种混合内存的数据访问方法、模块、处理器及终端设备,包括:当待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。这样一来,在待访问数据不在动态随机存取存储器DRAM中时,通过发送预设出错数据来触发ECC出错中断,使得在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,无需改变内存控制器的硬件结构,减少对对现有的处理器运行的操作系统中内存管理部分的重新设计,降低了代码修改量,简化了数据访问过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种混合内存的数据访问方法流程图;
图2为本发明实施例提供的另一种混合内存的数据访问方法流程图;
图3为现有技术中存在混合内存的终端设备的结构示意图;
图4为本发明实施例提供的存在混合内存的终端设备的结构示意图;
图5为本发明实施例提供的又一种混合内存的数据访问方法流程图;
图6为本发明实施例提供的生成预设出错数据的方法示意图;
图7为本发明实施例提供的地址映射表的示意图;
图8为本发明实施例提供的一种串接模块结构示意图;
图9为本发明实施例提供的另一种串接模块结构示意图;
图10为本发明实施例提供的一种串接模块中迁移单元结构示意图;
图11为本发明实施例提供的一种处理器结构示意图;
图12为本发明实施例提供的另一种处理器结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,存在混合内存的终端设备10的结构可以如图1所示,包括:处理器101,内存控制器102,存储模块103,所述存储模块103包括:DRAM1031,NVM1032,即所述存储模块103为由所述DRAM1031和所述NVM1032组成的混合内存,其中,内存控制器102可以与存储模块103进行信息交互,通常的,单一内存的终端设备中,内存控制器负责控制内存并且使内存与CPU之间交换数据,而在终端设备10中,处理器101运行的操作系统需要通过修改代码量来建立和更新页表项中的标志位,在DRAM1031不存在待访问数据时产生缺页中断等等。
在本发明实施例中,终端设备20的结构可以如图2所示,包括:处理器201,内存控制器202,串接模块203,存储模块204,所述存储模块204包括:DRAM2041,NVM2042,其中,内存控制器202可以与串接模块203进行信息交互,内存访问仍然使用DDRx内存同步访问接口,内存控制器202的硬件结构与通常的内存控制器相同。所述串接模块203可以由FPGA(Field-Programmable Gate Array,现场可编程门阵列)或ASIC(Application SpecificIntegrated Circuit,专用集成电路)构成,所述终端设备20可以为运行OS(OperatingSystem,操作系统)的装置,如服务器,也可以为虚拟机等等。
本发明实施例提供一种混合内存的数据访问方法,如图3所示,应用于串接模块,包括:
步骤301、当待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生ECC(ErrorCorrecting Code,错误纠正码)出错中断。
特别的,所述待访问数据为数据访问请求中访问的数据。所述串接模块中的存储有所述预设出错数据的存储空间可以与内核空间存在映射关系。
步骤302、在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
示例的,可以按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据,具体的,所述数据访问请求包括所述待访问数据的物理地址,串接模块根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度;根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。所述预设迁移粒度可以与DRAM行缓冲器的粒度相同。特别的,在实际应用中,所述串接模块中可以设置请求队列,串接模块首先将所述数据迁移请求添加至所述请求队列中,然后按照该请求队列中各个数据迁移请求的顺序依次进行相应数据的迁移。
这样一来,在待访问数据不在动态随机存取存储器DRAM中时,通过发送预设出错数据来触发ECC出错中断,使得在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,无需改变内存控制器的硬件结构,减少对对现有的处理器运行的操作系统中内存管理部分的重新设计,降低了代码修改量,简化了数据访问过程。
进一步的,在步骤301之前,还需要建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据;接收所述数据访问请求;根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中。特别的,所述地址映射表还记录了缓存标志,所述缓存标志用于标识数据是否位于缓存(Cache)中;由于DRAM的容量比NVM容量要小,所以DRAM用于NVM的缓存,即只能存放部分的NVM数据。当处理器需要访问NVM的数据时,需要先将数据放入到DRAM中,而如果DRAM中容量已满,即没有可用空间,就需要先选择将DRAM中的数据替换出来放回NVM。所以这时对DRAM中数据需要一个选择替换的过程。而这个缓存标志是用于优化这个选择替换过程的:位于缓存中的数据不从DRAM中替换至NVM中,即在所述向内存控制器发送预设出错数据之前,还可以查询所述地址映射中的缓存标志,判断所述待访问数据是否位于缓存中;当所述待访问数据位于缓存中,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中,这样位于缓存中的待访问数据则不从DRAM中替换出去。
特别的,在步骤302之后,串接模块还需要接收所述处理器重新发送的所述数据访问请求;根据所述数据访问请求查询所述地址映射表,判断得到所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。这样整个混合内存的数据访问过程才完成。
本发明实施例提供一种混合内存的数据访问方法,应用于处理器,所述处理器通常为CPU(Central Processing Unit,中央处理器)如图2所示,包括:
步骤401、接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的。
所述预设出错数据可以为至少存在两位出错的数据。
步骤402、根据所述预设出错数据产生ECC出错中断,以便于所述串接模块在所述处理器对所述ECC出错中断处理时,所述串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。
在所述待访问数据迁移完成之后,处理器可以重新向所述串接模块发送所述数据访问请求,以便于所述串接模块在所述DRAM中获取所述待访问数据。
这样一来,在待访问数据不在动态随机存取存储器DRAM中时,通过接收内存控制器发送的触发消息来触发ECC出错中断,使得串接模块在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,减少对现有处理器内核中的内存管理部分进行重新设计,降低了代码修改量,简化了数据访问过程。
进一步的,在步骤402之前,处理器可以通过对所述预设出错数据进行ECC校验,判断所述预设出错数据的错误模式是否为ECC出错中断模式,所述ECC出错中断模式与现有的ECC出错中断模式相同,本发明对此不再赘述。
在本发明实施例中,终端设备20中的混合内存的数据访问方法,如图5所示,包括:
步骤501、内存控制器向串接模块发送数据访问请求。执行步骤502。
内存控制器的数据访问请求可以是由处理器生成并发送过来,由内存控制器直接转发给串接模块的,也可以是内存控制器根据处理器发送过来的相关数据请求生成的。在内存控制器中可以建立请求队列,将一条或多条所述数据访问请求存入该数据请求队列,依次发送给串接模块。
步骤502、串接模块判断待访问数据是否在DRAM中,当待访问数据在DRAM中,执行步骤508,当待访问数据不在DRAM中,执行步骤503。
串接模块可以在步骤501之前建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据。在接收到内存控制器发送的数据访问请求后,根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中。所述地址映射表可以设置In_DRAM字段,用于指示待访问数据是否在DRAM中,在所述In_DRAM字段中可以采用1代表待访问数据在DRAM中,0代表待访问数据不在DRAM中,而只在NVM中。
步骤503、串接模块向内存控制器发送预设出错数据。执行步骤504。
串接模块可以设置存储空间,所述存储空间存储有预设出错数据,所述预设出错数据能够触发ECC对ECC出错中断模式的处理,即ECC出错中断。当待访问数据不在DRAM中时,串接模块将数据访问请求重定向到存储空间,由存储空间向内存控制器发送预设出错数据。所述串接模块中的存储有所述预设出错数据的存储空间与内核空间存在映射关系。示例的,所述存储空间可通过使用ioremap(IO地址空间重映射)系统调用映射到内核空间,这样可以保证这段存储空间除了串接模块访问外,其它部分,如OS,应用等软件等都不会访问到。可以在终端设备40系统初始化的时候,将这段存储空间设置为存储有预设出错数据的空间,预设出错数据为至少存在两位出错的数据。需要说明的是,内核空间为Linux系统中的一部分特定空间,在Linux系统对自身进行了划分时,一部分核心软件独立于普通应用程序,运行在较高的特权级别上,它们驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,这样的空间称为内核空间。
可选的,图6给出了一个生成预设出错数据的例子,该预设出错数据存在4位出错,首先,获取预设数据A,对所述预设数据A进行ECC运算得到预设数据A的ECC值,所述预设数据A的二进制数值的16位均为1,然后修改预设数据A得到错误数据B,使得错误数据B的二进制数值的指定4个位置的数据较预设数据A取反(由1变成0),图6中将预设数据A的二进制数值从右向左数的9、13、15和16位进行了数据取反,获取预设数据A的ECC值作为错误数据B的ECC值,即错误数据B和预设数据A存在相同的ECC值,但两者二进制数值不同,最终将错误数据B的二进制数值和错误数据B的ECC值作为预设出错数据。
步骤504、内存控制器向处理器发送触发消息。
通常的,内存控制器根据接收到的数据计算相应的ECC值,然后与读取的ECC值进行比较,通过比较计算得到的ECC值和读取的ECC值是否相同来判断是否出错,当返回数据中存在1位出错时,内存控制器直接对出错的位置进行修正,当返回数据中存在至少两位出错时,由于内存控制器接收到预设出错数据,因此会判断出存在错误,并向所述处理器发送触发消息,所述触发消息包括预设出错数据。
步骤505、处理器判断所述预设出错数据的错误模式是否为ECC出错中断模式。当所述预设出错数据的错误模式是ECC出错中断模式,执行步骤506,当所述预设出错数据的错误模式不是ECC出错中断模式,执行步骤510。
处理器会对所述触发消息中的预设出错数据进行ECC校验,具体的,先进行错误模式的判断,由于内存控制器返回数据中存在至少两位出错,处理器产生ECC出错中断。
本发明实施例中,为了减少对对现有的处理器运行的操作系统的代码修改量,处理器对所述预设出错数据同样进行ECC校验,但在对返回数据中存在至少两位出错的ECC时,可能存在两种结果,一种是ECC出错为普通出错模式,一种是ECC出错中断模式,因此需要判断所述预设出错数据的错误模式是否为ECC出错中断模式。所述ECC出错中断模式与所述预设出错数据相关,示例的,如图6所示,当预设出错数据由错误数据B和预设数据A的ECC值组成,当对错误数据B进行ECC运算得到如图6所示的错误数据B的ECC值时,说明出现了ECC出错中断模式。
步骤506、处理器产生ECC出错中断。执行步骤507。
步骤507、串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。执行步骤508。
串接模块可以按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据,具体的,所述数据访问请求包括所述待访问数据的物理地址,串接模块根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度;然后根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。特别的,在实际应用中,所述串接模块中可以设置请求队列,串接模块首先将所述数据迁移请求添加至所述请求队列中,然后按照该请求队列中各个数据迁移请求的顺序依次进行相应数据的迁移。
需要说明的是,目前的DRAM的访问协议中,发送数据时,总是先送行地址,再送列地址。在本发明实施例中,可以选择以DRAM的行缓冲器(Row Buffer)大小作为NVM到DRAM迁移的粒度,这样当待访问数据的行地址迁移到DRAM中时,若串接模块接收到内存控制器发送新的数据访问请求的行地址时,便可以直接使用行地址就可以查询地址映射表来查询待访问数据是否在DRAM中,如果不在,就可以立即重复步骤503至步骤506迁移操作,而不用等到收到待访问数据的列地址再在地址映射表中进行待访问数据的查询,从而能够减少部分数据迁移操作带来的时间延迟,提高数据访问性能。
步骤508、处理器重新向所述串接模块发送所述数据访问请求。执行步骤502。
可选的,串接模块内可以包括第一状态寄存器,每次发生ECC出错中断模式时,串接模块都将对应指示寄存器的值设置为1;而这些寄存器可以映射到内核空间中,每次ECC出错中断时,内存控制器都先去读取这些状态寄存器,如果为1,就识别为ECC出错中断模式;如果为0,就识别为普通出错模式。同时串接模块内包括第二状态寄存器,所述第二状态寄存器指示待访问数据从NVM迁移到DRAM的工作是否完成,串接模块设置有迁移队列,串接模块将所述数据迁移请求加入所述迁移队列时,将状态寄存器设置为0,完成待访问数据迁移后,将状态寄存器设置为1;内存控制器查询第二寄存器,一旦发现第二寄存器的值变为1,表示迁移已经完成,可以重新发送数据访问请求。
步骤509、串接模块将DRAM中待访问数据发送给内存控制器。
步骤510、处理器执行正常ECC处理流程。
特别的,在本发明实施例中,所述地址映射表还可以记录其他的状态信息,如位于缓存中的数据;在所述步骤507之后,串接模块可以查询所述地址映射表,将所述位于缓存中的数据中超过预设时限的数据迁移至所述DRAM中。
示例的,所述地址映射表可以如图7所示,ADDR(Address,地址)代表物理地址;In_DRAM用于指示数据是否在DRAM中,在所述In_DRAM字段中可以采用1代表第一数据在DRAM中,0代表数据不在DRAM中,而只在NVM中;所述地址映射表还记录了缓存标志,所述缓存标志用于标识数据是否位于缓存中,如采用In_Cache指示数据是否在缓存中,串接模块可根据In_Cache判断是否进行DRAM中数据的替换;lru为DRAM中数据的替换指示;NVM_ADDR则指示数据在NVM中存放的地址。当数据从DRAM被读入到缓存中的时候,设置In_Cache为1,当数据从缓存中被替换至DRAM中后,重置In_Cache为0;对于DRAM的替换策略,在本实施例中,选择在缓存中且超过预设时限的没被访问的时间最久的一个数据块替换至DRAM,即从lru位置开始往前找,找到第一个In_Cache为0的数据块从缓存中替换至DRAM。所述数据为需要查询的数据或待访问数据。特别的,当将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中时,当In_Cache指示所述待访问数据中的部分数据位于缓存中,则无需将所述部分数据从非易失性存储器NVM中迁移至所述DRAM中,这样可以减少迁移数据,简化数据访问过程。因此在步骤503中串接模块向内存控制器发送预设出错数据之前,还可以查询所述地址映射中的缓存标志,判断所述待访问数据是否位于缓存中;当所述待访问数据位于缓存中,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中。
需要说明的是,本发明实施例提供的混合内存的数据访问方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
本发明实施例中,在待访问数据不在动态随机存取存储器DRAM中时,通过接收预设出错数据来触发ECC出错中断,使得串接模块在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,无需改变内存控制器的硬件结构,减少对对现有的处理器运行的操作系统中内存管理部分的重新设计,降低了代码修改量,简化了数据访问过程。
本发明实施例提供一种串接模块60,所述串接模块60由FPGA或ASIC构成,如图8所示,包括:
发送单元601,用于在待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生ECC出错中断,所述待访问数据为数据访问请求中访问的数据。
迁移单元602,用于在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
这样一来,在待访问数据不在动态随机存取存储器DRAM中时,发送单元通过发送预设出错数据来触发ECC出错中断,使得迁移单元在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,无需改变内存控制器的硬件结构,减少对对现有的处理器运行的操作系统中内存管理部分的重新设计,降低了代码修改量,简化了数据访问过程。
进一步的,如图9所示,所述串接模块60还包括:
建立单元603,用于在所述向内存控制器发送预设出错数据之前,建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据,所述存储模块为由所述DRAM和所述NVM组成的混合内存。
接收单元604,用于接收所述数据访问请求。
判断单元605,用于根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中。
执行单元606,用于在所述判断单元604判断得到所述待访问数据在所述DRAM中时,则在所述DRAM中获取所述待访问数据,在所述判断单元判断得到所述待访问数据在所述DRAM中时,触发所述发送单元601发送所述预设出错数据。
所述接收单元604还用于接收所述处理器重新发送的所述数据访问请求;所述判断单元605还用于根据所述数据访问请求查询所述地址映射表,判断得到所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
如图10所示,所述迁移单元602具体包括:
生成子单元6021,用于按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据;
迁移子单元6022,用于根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。
所述数据访问请求包括所述待访问数据的物理地址,
所述生成子单元6021具体用于:根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度。
需要说明的是,所述预设迁移粒度可以与DRAM行缓冲器的粒度相同。所述地址映射表还可以记录缓存标志,所述缓存标志用于标识数据是否位于缓存中。所述预设出错数据可以为至少存在两位出错的数据。由于DRAM的容量比NVM容量要小,所以DRAM用于NVM的缓存,即只能存放部分的NVM数据。当处理器需要访问NVM的数据时,需要先将数据放入到DRAM中,而如果DRAM中容量已满,即没有可用空间,就需要先选择将DRAM中的数据替换出来放回NVM。所以这时对DRAM中数据需要一个选择替换的过程。而这个缓存标志这是用于优化这个选择替换过程的:位于缓存中的数据不从DRAM中替换至NVM中,即所述迁移单元602可以用于在选择DRAM中的数据替换出来放回NVM时,需要查询所述用于标识数据是否位于缓存(Cache)中的标志,如果数据位于缓存中,则不从DRAM中替换出去。
因此,所述判断单元605还用于查询所述地址映射中的缓存标志,判断所述待访问数据是否位于缓存中;所述执行单元606还用于在所述待访问数据位于缓存中时,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中。
本发明实施例提供的串接模块,在待访问数据不在动态随机存取存储器DRAM中时,发送单元通过发送预设出错数据来触发ECC出错中断,使得迁移单元在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,无需改变内存控制器的硬件结构,减少对对现有的处理器运行的操作系统中内存管理部分的重新设计,降低了代码修改量,简化了数据访问过程。
本发明实施例提供一种处理器70,如图11所示,包括:
接收单元701,用于接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的。
处理单元702,用于根据所述预设出错数据产生ECC出错中断,以便于所述串接模块在所述处理器对所述ECC出错中断处理时,将位于NVM中的所述待访问数据迁移至所述DRAM中。
这样一来,在待访问数据不在动态随机存取存储器DRAM中时,接收单元通过接收内存控制器发送的触发消息来触发处理单元进行ECC出错中断,使得串接模块在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,减少对现有处理器内核中的内存管理部分进行重新设计,降低了代码修改量,简化了数据访问过程。
进一步的,如图12所示,所述处理器70还包括:
判断单元703,用于在所述根据所述预设出错数据产生ECC出错中断之前,通过对所述预设出错数据进行ECC校验,判断所述预设出错数据的错误模式是否为ECC出错中断模式。
发送单元704,用于在所述串接模块将位于所述NVM中的所述待访问数据迁移至所述DRAM中之后,重新向所述串接模块发送所述数据访问请求,以便于所述串接模块在所述DRAM中获取所述待访问数据。
特别的,所述预设出错数据可以为至少存在两位出错的数据。
本发明实施例提供的处理器,在待访问数据不在动态随机存取存储器DRAM中时,接收单元通过接收内存控制器发送的触发消息来触发处理单元进行ECC出错中断,使得串接模块在ECC出错中断时进行待访问数据的迁移,利用已有的ECC处理机制,减少对现有处理器内核中的内存管理部分进行重新设计,降低了代码修改量,简化了数据访问过程。
本发明实施例提供一种终端设备20,如图2所示,包括:处理器201,内存控制器202,串接模块203,存储模块204,所述存储模块204包括:DRAM2041,NVM2042,其中,内存控制器202可以与串接模块203进行信息交互,内存访问仍然使用DDRx内存同步访问接口,内存控制器202的硬件结构与通常的内存控制器相同。所述串接模块203由FPGA或ASIC构成,所述终端设备20可以为运行OS(Operating System,操作系统)的装置,也可以为虚拟机等等。
所述串接模块203为本发明实施例任意所述的串接模块,用于在待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
所述处理器201为本发明实施例任意所述的处理器,用于接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;根据所述预设出错数据产生错误纠正码ECC出错中断,以便于在所述处理器对所述ECC出错中断处理时,所述串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (25)

1.一种混合内存的数据访问方法,应用于串接模块,其特征在于,包括:
当待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;
在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
2.根据权利要求1所述的方法,其特征在于,在所述向内存控制器发送预设出错数据之前,所述方法还包括:
建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据,所述存储模块为由所述DRAM和所述NVM组成的混合内存;
接收所述数据访问请求;
根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中;
当所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
3.根据权利要求2所述的方法,其特征在于,
所述将位于NVM中的所述待访问数据迁移至所述DRAM中包括:
按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据;
根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。
4.根据权利要求3所述的方法,其特征在于,所述数据访问请求包括所述待访问数据的物理地址,
所述按照所述数据访问请求生成数据迁移请求包括:
根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度。
5.根据权利要求3或4所述的方法,其特征在于,
所述预设迁移粒度与DRAM行缓冲器的粒度相同。
6.根据权利要求2至4任意一项权利要求所述的方法,其特征在于,所述地址映射表还记录了缓存标志,所述缓存标志用于标识数据是否位于缓存中,
在所述向内存控制器发送预设出错数据之前,所述方法还包括:
查询所述地址映射表中的缓存标志,判断所述待访问数据是否位于缓存中;
当所述待访问数据位于缓存中,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中。
7.根据权利要求2至4任意一项权利要求所述的方法,其特征在于,
接收所述处理器重新发送的所述数据访问请求;
根据所述数据访问请求查询所述地址映射表,判断得到所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
8.根据权利要求1至4任意一项权利要求所述的方法,其特征在于,所述预设出错数据为至少存在两位出错的数据。
9.一种混合内存的数据访问方法,应用于处理器,其特征在于,包括:
接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;
根据所述预设出错数据产生错误纠正码ECC出错中断,以便于在所述处理器对所述ECC出错中断处理时,所述串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。
10.根据权利要求9所述的方法,其特征在于,在所述根据所述预设出错数据产生错误纠正码ECC出错中断之前,所述方法还包括:
通过对所述预设出错数据进行ECC校验,判断所述预设出错数据的错误模式是否为ECC出错中断模式。
11.根据权利要求9或10所述的方法,其特征在于,在所述串接模块将位于所述NVM中的所述待访问数据迁移至所述DRAM中之后,所述方法还包括:
重新向所述串接模块发送所述数据访问请求,以便于所述串接模块在所述DRAM中获取所述待访问数据。
12.根据权利要求9至10任意一项权利要求所述的方法,其特征在于,所述预设出错数据为至少存在两位出错的数据。
13.一种串接模块,其特征在于,包括:
发送单元,用于在待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;
迁移单元,用于在所述处理器对所述ECC出错中断处理时,所述迁移单元将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中。
14.根据权利要求13所述的串接模块,其特征在于,所述串接模块还包括:
建立单元,用于在所述向内存控制器发送预设出错数据之前,建立地址映射表,所述地址映射表记录了存储模块中当前位于所述DRAM中的数据和位于所述NVM中的数据,所述存储模块为由所述DRAM和所述NVM组成的混合内存;
接收单元,用于接收所述数据访问请求;
判断单元,用于根据所述数据访问请求查询所述地址映射表,判断所述待访问数据是否在所述DRAM中;
执行单元,用于在所述判断单元判断得到所述待访问数据在所述DRAM中时,则在所述DRAM中获取所述待访问数据,在所述判断单元判断得到所述待访问数据在所述DRAM中时,触发所述发送单元发送所述预设出错数据。
15.根据权利要求14所述的串接模块,其特征在于,所述迁移单元具体包括:
生成子单元,用于按照所述数据访问请求生成数据迁移请求,所述数据迁移请求中请求迁移的数据为所述待访问数据;
迁移子单元,用于根据所述数据迁移请求,按照预设迁移粒度将位于NVM中的所述待访问数据迁移至所述DRAM中。
16.根据权利要求15所述的串接模块,其特征在于,所述数据访问请求包括所述待访问数据的物理地址,
所述生成子单元具体用于:
根据所述数据访问请求生成所述数据迁移请求,所述数据迁移请求包括所述待访问数据的物理地址,所述数据迁移请求还包括所述预设迁移粒度。
17.根据权利要求15或16所述的串接模块,其特征在于,
所述预设迁移粒度与DRAM行缓冲器的粒度相同。
18.根据权利要求14至16任意一项权利要求所述的串接模块,其特征在于,所述地址映射表还记录了缓存标志,所述缓存标志用于标识数据是否位于缓存中,
所述判断单元还用于查询所述地址映射表中的缓存标志,判断所述待访问数据是否位于缓存中;
所述执行单元还用于在所述待访问数据位于缓存中时,停止将位于所述NVM中的所述待访问数据迁移至所述DRAM中。
19.根据权利要求14至16任意一项权利要求所述的串接模块,其特征在于,包括:
所述接收单元还用于接收所述处理器重新发送的所述数据访问请求;
所述判断单元还用于根据所述数据访问请求查询所述地址映射表,判断得到所述待访问数据在所述DRAM中,则在所述DRAM中获取所述待访问数据。
20.根据权利要求13至16任意一项权利要求所述的串接模块,其特征在于,所述预设出错数据为至少存在两位出错的数据。
21.一种处理器,其特征在于,包括:
接收单元,用于接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;
处理单元,用于根据所述预设出错数据产生错误纠正码ECC出错中断,以便于所述串接模块在所述处理器对所述ECC出错中断处理时,将位于NVM中的所述待访问数据迁移至所述DRAM中。
22.根据权利要求21所述的处理器,其特征在于,所述处理器还包括:
判断单元,用于在所述根据所述预设出错数据产生错误纠正码ECC出错中断之前,通过对所述预设出错数据进行ECC校验,判断所述预设出错数据的错误模式是否为ECC出错中断模式。
23.根据权利要求21或22所述的处理器,其特征在于,所述处理器还包括:
发送单元,用于在所述串接模块将位于所述NVM中的所述待访问数据迁移至所述DRAM中之后,重新向所述串接模块发送所述数据访问请求,以便于所述串接模块在所述DRAM中获取所述待访问数据。
24.根据权利要求21至22任意一项权利要求所述的处理器,其特征在于,所述预设出错数据为至少存在两位出错的数据。
25.一种终端设备,其特征在于,包括:
处理器,内存控制器,串接模块,存储模块,所述存储模块为由所述DRAM和所述NVM组成的混合内存;
所述串接模块为权利要求13至20任意一项权利要求所述的串接模块,用于在待访问数据不在动态随机存取存储器DRAM中时,向内存控制器发送预设出错数据,以便于所述内存控制器根据所述预设出错数据触发处理器产生错误纠正码ECC出错中断,所述待访问数据为数据访问请求中访问的数据;在所述处理器对所述ECC出错中断处理时,所述串接模块将位于非易失性存储器NVM中的所述待访问数据迁移至所述DRAM中;
所述处理器为权利要求21至24任意一项权利要求所述的处理器,用于接收内存控制器发送的触发消息,所述触发消息是所述内存控制器在接收串接模块发送的预设出错数据后发送的,所述预设出错数据为所述串接模块在待访问数据不在DRAM中时发送的;根据所述预设出错数据产生错误纠正码ECC出错中断,以便于在所述处理器对所述ECC出错中断处理时,所述串接模块将位于NVM中的所述待访问数据迁移至所述DRAM中。
CN201310317746.0A 2013-07-25 2013-07-25 混合内存的数据访问方法、模块、处理器及终端设备 Active CN104346293B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310317746.0A CN104346293B (zh) 2013-07-25 2013-07-25 混合内存的数据访问方法、模块、处理器及终端设备
PCT/CN2014/082974 WO2015010646A1 (zh) 2013-07-25 2014-07-25 混合内存的数据访问方法、模块、处理器及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310317746.0A CN104346293B (zh) 2013-07-25 2013-07-25 混合内存的数据访问方法、模块、处理器及终端设备

Publications (2)

Publication Number Publication Date
CN104346293A CN104346293A (zh) 2015-02-11
CN104346293B true CN104346293B (zh) 2017-10-24

Family

ID=52392751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310317746.0A Active CN104346293B (zh) 2013-07-25 2013-07-25 混合内存的数据访问方法、模块、处理器及终端设备

Country Status (2)

Country Link
CN (1) CN104346293B (zh)
WO (1) WO2015010646A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155577B (zh) * 2015-04-23 2019-03-26 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN106326135B (zh) * 2015-06-30 2020-06-02 华为技术有限公司 一种平移非易失性存储器nvm的数据的方法及装置
US20170060434A1 (en) * 2015-08-27 2017-03-02 Samsung Electronics Co., Ltd. Transaction-based hybrid memory module
CN105760220B (zh) * 2016-01-29 2019-05-17 湖南大学 一种基于混合内存的任务与数据调度方法和装置
CN105786717B (zh) * 2016-03-22 2018-11-16 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统
CN107818052B (zh) * 2016-09-13 2020-07-21 华为技术有限公司 内存访问方法及装置
CN106569960B (zh) * 2016-11-08 2019-05-28 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN109952565B (zh) * 2016-11-16 2021-10-22 华为技术有限公司 内存访问技术
CN110807125B (zh) * 2019-08-03 2020-12-22 北京达佳互联信息技术有限公司 推荐系统、数据访问方法及装置、服务器、存储介质
CN110781019B (zh) * 2019-09-03 2023-06-23 惠州市德赛西威汽车电子股份有限公司 一种基于功能安全的汽车仪表设计方法
CN112181712B (zh) * 2020-09-28 2022-02-22 中国人民解放军国防科技大学 一种提高处理器核可靠性的方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508787A (zh) * 2011-11-29 2012-06-20 清华大学 混合结构内存的内存分配系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380095B2 (en) * 2004-06-30 2008-05-27 Intel Corporation System and method for simulating real-mode memory access with access to extended memory
US7681004B2 (en) * 2005-06-13 2010-03-16 Addmm, Llc Advanced dynamic disk memory module
WO2012167533A1 (zh) * 2011-10-31 2012-12-13 华为技术有限公司 一种构建内存访问模型的方法及装置
CN103092534B (zh) * 2013-02-04 2016-01-27 中国科学院微电子研究所 一种内存结构的调度方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508787A (zh) * 2011-11-29 2012-06-20 清华大学 混合结构内存的内存分配系统及方法

Also Published As

Publication number Publication date
CN104346293A (zh) 2015-02-11
WO2015010646A1 (zh) 2015-01-29

Similar Documents

Publication Publication Date Title
CN104346293B (zh) 混合内存的数据访问方法、模块、处理器及终端设备
EP3436953B1 (en) Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
JP7358594B2 (ja) メモリシステム
US11119701B2 (en) Memory system and method of controlling nonvolatile memory by controlling the writing of data to and reading of data from a plurality of blocks in the nonvalatile memory
US10108565B2 (en) Method for on-demand fetching of SGL pointers based buffer, traffic and command requirements
DE112011106013T5 (de) System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem
US20160246712A1 (en) Indirection data structures implemented as reconfigurable hardware
JP2006134324A (ja) ロッキング・キャッシュを用いる直接的保存
CN109891397A (zh) 用于固态装置中的操作系统高速缓冲存储器的设备及方法
CN110647359B (zh) 半导体装置、其操作方法和具有其的层叠存储装置
JP7143232B2 (ja) メモリシステムおよび制御方法
EP4202704A1 (en) Interleaving of heterogeneous memory targets
US11163493B2 (en) Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command
US11698862B2 (en) Three tiered hierarchical memory systems
EP2764439B1 (en) Mapping persistent storage
WO2021034657A1 (en) Hierarchical memory systems
EP3271826B1 (en) Interleaved access of memory
KR20220044849A (ko) 계층적 메모리 장치
EP4120087B1 (en) Systems, methods, and devices for utilization aware memory allocation
EP4303734A1 (en) Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device
EP4033346A1 (en) Affinity-based cache operation for a persistent storage device
CN114341818B (zh) 分级存储器设备
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
TW202311974A (zh) 計算系統中的記憶體分層技術
WO2021035116A1 (en) Hierarchical memory systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant