CN104346234B - 一种内存访问的方法、设备及系统 - Google Patents
一种内存访问的方法、设备及系统 Download PDFInfo
- Publication number
- CN104346234B CN104346234B CN201310345355.XA CN201310345355A CN104346234B CN 104346234 B CN104346234 B CN 104346234B CN 201310345355 A CN201310345355 A CN 201310345355A CN 104346234 B CN104346234 B CN 104346234B
- Authority
- CN
- China
- Prior art keywords
- operation object
- fault
- data
- reliability class
- memory device
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种内存访问的方法、设备及系统,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。本发明实施例提供的方法包括:内存设备接收处理器发送的所述处理器的运行对象的可靠性级别信息;根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系;接收所述处理器发送的访问请求;根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
Description
技术领域
本发明涉及计算机系统设计领域,尤其涉及一种内存访问的方法、设备及系统。
背景技术
随着计算机系统的存储容量规模不断增加,内存可靠性的提升对计算机系统运行的稳定至关重要,当前业界通常采用容错编码对内存的数据进行校验,以提升内存的可靠性,常见的容错编码方法包括单比特纠错-双比特检错(Single Error Correction-DoubleError Detection,简称SEC-DED)方法、Chipkill(IBM公司开发的一种新的内存保护技术)方法、BCH(取自Bose、Chaudhuri与Hocquenghem的缩写)容错编码方法和MIRROR(双模镜像容错编码)方法等,特定的运行对象(例如应用程序、线程、进程、代码段等)在一定条件下访问内存时,选用合适的容错编码方法才能够使得内存满足该特定的运行对象对相应数据的正确访问,也即满足该特定的运行对象对内存可靠性的需求。现有技术的内存一般使用单一的容错编码方法,访问内存时相应也使用该内存单一的容错编码方法对数据进行校验。例如,现有技术中一种内存采用的容错编码方法是单比特纠错-双比特检错(Single ErrorCorrection-Double Error Detection,简称SEC-DED)方法,在对应用程序的数据进行读访问的过程中,首先通过容错编码对读取的数据进行检错,只有在检出错误之后才通过纠错编码进行纠错。发明人发现现有技术中至少存在如下问题:使用的容错编码方法单一,不能满足不同的运行对象在不同条件下访问内存对内存的可靠性需求。
发明内容
本发明的实施例提供一种内存访问的方法、设备及系统,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种内存访问方法,包括:
内存设备接收处理器发送的所述处理器的运行对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
所述内存设备根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的数据区域DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
所述内存设备接收所述处理器发送的访问请求,所述访问请求包含所述处理器运行对象的标识信息以及所述运行对象的数据的物理地址信息和所述运行对象的容错编码的物理地址信息;
所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
在第一种可能的实现方式中,结合第一方面,所述内存设备根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,包括:
所述内存设备根据所述可靠性级别信息中的所述容错编码方法查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,获取所述运行对象的可靠性级别;
所述内存设备根据所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,获取与所述运行对象的可靠性级别对应的DR,并生成所述第一映射关系;
所述内存设备根据所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,获取与所述运行对象的可靠性级别对应的CECR,并生成所述第二映射关系。
在第二种可能的实现方式中,结合第一方面或者第一种可能的实现方式,所述内存设备接收所述处理器发送的访问请求,其中,所述访问请求包括读访问请求;相应的,
所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问,包括:
所述内存设备根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据读访问RD-d子请求,其中,所述RD-d子请求包括所述运行对象的数据所存储的DR以及所述运行对象的数据的物理地址信息;以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象的容错编码所存储的CECR,并生成对所述CECR的容错编码读访问RD-c子请求,其中,所述RD-c子请求包括所述运行对象的容错编码所存储的CECR以及所述对象的容错编码的物理地址信息;
所述内存设备在所述RD-d子请求所包括的DR中通过所述运行对象的数据的物理地址信息进行查找,获取所述运行对象的数据;以及在所述RD-c子请求所包括的CECR中通过对所述运行对象的容错编码物理地址信息进行查找,获取所述运行对象的容错编码;
所述内存设备根据所述运行对象的容错编码对所述运行对象的数据进行校验,获取所述运行对象的准确的数据;
所述内存设备将所述经过校验的所述运行对象的准确的数据发送给所述处理器。
在第三种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述内存设备接收所述处理器发送的访问请求,其中,所述访问请求包括写访问请求和需要写入所述内存设备的数据,所述写访问请求包括所述运行对象的标识信息以及所述需要写入所述内存设备的数据的物理地址信息和所述需要写入所述内存设备的数据的容错编码的物理地址信息;相应的,
所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问,包括:
所述内存设备根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据写访问WR-d子请求,其中,所述WR-d子请求包括所述对象的数据所存储的DR以及所述需要写入所述内存设备的数据的物理地址信息;以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象对应的CECR,并生成对所述CECR的容错编码WR-c写访问子请求,其中所述WR-c子请求包括所述对象的容错编码所存储的CECR以及所述需要写入所述内存设备的数据的容错编码的物理地址信息;
所述内存设备通过所述运行对象的标识信息查找所述第二映射关系,得到所述运行对象对应的容错编码方法,并通过所述对象对应的容错编码方法对所述需要写入所述内存设备的数据进行容错编码处理,从而获取到与所述需要写入所述内存设备的数据对应的容错编码,并将所述需要写入所述内存设备的数据和与所述需要写入所述内存设备的数据对应的容错编码填入写请求队列;
所述内存设备在所述WR-d子请求所包括的DR中通过对所述需要写入所述内存设备的数据的物理地址信息进行查找获取到所述需要写入所述内存设备的数据的第一物理地址,并将所述写请入队列中的所述需要写入所述内存设备的数据写入到所述第一物理地址;以及在所述WR-c子请求所包括的CECR中通过对所述需要写入所述内存设备的数据的容错编码的物理地址信息进行查找,获取到所述所述需要写入所述内存设备的数据的容错编码的第二物理地址,并将所述写请求队列中的与所述需要写入所述内存设备的数据对应的容错编码写入到所述第二物理地址。
在第四种可能的实现方式中,结合第一方面,第一种至第三种可能的实现方式中的任一项,当所述访问请求为读访问请求时,所述方法还包括,
所述内存设备接收由所述处理器发送的所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述内存设备根据所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;
所述内存设备根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;
所述内存设备根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
第二方面,本发明实施例提供了一种内存访问方法,包括:
处理器设置所述处理器的运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
所述处理器查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述运行对象的可靠性级别对应的容错编码方法,并且向内存设备发送所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,以使得所述内存设备根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的数据区域DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
所述处理器向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息,以使得所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
在第一种可能的实现方式中,结合第二方面,所述方法还包括:所述处理器改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述处理器向所述内存设备发送所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法,以使得所述内存设备根据所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;以及根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;以及根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
第三方面,本发明实施例提供了一种内存设备,包括:
接收单元,用于接收处理器发送的所述处理器的运行对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
映射关系建立单元,用于根据所述接收单元接收的所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的数据区域DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
所述接收单元还用于,接收所述处理器发送的访问请求,所述访问请求包含所述处理器运行对象的标识信息以及所述运行对象的数据的物理地址信息和所述运行对象的容错编码的物理地址信息;
访问单元,用于根据所述接收单元接收的所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
在第一种可能的实现方式中,结合第三方面,所述映射关系建立单元具体用于,根据所述接收单元接收的所述可靠性级别信息中的所述容错编码方法查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,获取所述运行对象的可靠性级别;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,获取与所述运行对象的可靠性级别对应的DR,并生成所述第一映射关系;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,获取与所述运行对象的可靠性级别对应的CECR,并生成所述第二映射关系。
在第二种可能的实现方式中,结合第三方面或者第一种可能的实现方式,所述接收单元具体用于,接收所述处理器发送的访问请求,其中所述访问请求包括读访问请求;相应的,
所述访问单元,包括:
读访问子请求生成模块,用于根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据读访问RD-d子请求,其中,所述RD-d子请求包括所述运行对象的数据所存储的DR以及所述运行对象的数据的物理地址信息;
以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象的容错编码所存储的CECR,并生成对所述CECR的容错编码读访问RD-c子请求,其中,所述RD-c子请求包括所述运行对象的容错编码所存储的CECR以及所述对象的容错编码的物理地址信息;
读取模块,用于在所述读访问子请求生成模块生成的所述RD-d子请求所包括的DR中通过所述运行对象的数据的物理地址信息进行查找,获取所述运行对象的数据;
以及在所述读访问子请求生成模块生成的所述RD-c子请求所包括的CECR中通过对所述运行对象的容错编码物理地址信息进行查找,获取所述运行对象的容错编码;
校验模块,用于根据所述读取模块读取的所述运行对象的容错编码对所述读取模块读取的所述运行对象的数据进行校验,获取所述运行对象的准确的数据;
发送模块,用于将经过所述校验模块校验的所述运行对象的准确的数据发送给所述处理器。
在第三种可能的实现方式中,结合第三方面或者第一种可能的实现方式,所述接收单元用于接收所述处理器发送的访问请求,其中所述访问请求包括写访问请求和需要写入所述内存设备的数据,所述写访问请求包括所述运行对象的标识信息以及所述需要写入所述内存设备的数据的物理地址信息和所述需要写入所述内存设备的数据的容错编码的物理地址信息;相应的,
所述访问单元包括:
写访问子请求生成模块,用于根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据写访问WR-d子请求,其中,所述WR-d子请求包括所述对象的数据所存储的DR以及所述需要写入所述内存设备的数据的物理地址信息;
以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象对应的CECR,并生成对所述CECR的容错编码WR-c写访问子请求,其中所述WR-c子请求包括所述对象的容错编码所存储的CECR以及所述需要写入所述内存设备的数据的容错编码的物理地址信息;
容错编码处理模块,用于通过所述运行对象的标识信息查找所述第二映射关系,得到所述运行对象对应的容错编码方法,并通过所述对象对应的容错编码方法对所述需要写入所述内存设备的数据进行容错编码处理,从而获取到与所述需要写入所述内存设备的数据对应的容错编码,并将所述需要写入所述内存设备的数据和与所述需要写入所述内存设备的数据对应的容错编码填入写请求队列;
写入模块,用于在所述写访问子请求生成模块生成的所述WR-d子请求所包括的DR中通过对所述需要写入所述内存设备的数据的物理地址信息进行查找获取到所述需要写入所述内存设备的数据的第一物理地址,并将所述写请入队列中的所述需要写入所述内存设备的数据写入到所述第一物理地址;
以及在所述写访问子请求生成模块生成的所述WR-c子请求所包括的CECR中通过对所述需要写入所述内存设备的数据的容错编码的物理地址信息进行查找,获取到所述所述需要写入所述内存设备的数据的容错编码的第二物理地址,并将所述写请求队列中的与所述需要写入所述内存设备的数据对应的容错编码写入到所述第二物理地址。
在第四种可能的实现方式中,结合第三方面,第一种至第三种可能的实现方式中的任一项,所述接收单元还用于,接收由所述处理器发送的所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述映射关系建立单元还用于,根据所述接收单元接收的所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;
以及根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;
以及根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
第四方面,本发明实施例提供了一种处理器,包括:
设置单元,用于设置所述处理器运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
查询单元,用于查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述设置单元设置的所述运行对象的可靠性级别对应的容错编码方法;
发送单元,用于向内存设备发送所述查询单元得到的所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法;
所述发送单元还用于,向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息。
在第一种可能的实现方式中,结合第四方面,所述处理器还包括改变单元,用于改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述发送单元还用于,向内存设备发送所述改变单元得到的所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法。
第五方面,本发明实施例提供了一种内存设备,包括:
内存芯片,包括数据区域DR和可配置纠错编码区域CECR,其中,所述DR用于存储处理器的运行对象的数据,所述CECR用于存储所述运行对象的数据对应的容错编码;
缓冲调度器,用于接收处理器发送的所述处理器运行对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
以及根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的CECR;
以及接收所述处理器发送的访问请求,所述访问请求包含所述处理器运行的对象的标识信息以及所述运行对象的数据的物理地址信息和所述运行对象的容错编码的物理地址信息;
以及根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象对应的容错编码进行访问。
在第一种可能的实现方式中,结合第五方面,所述缓冲调度器,用于根据所述可靠性级别信息中的所述容错编码方法查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,获取所述运行对象的可靠性级别;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,获取与所述运行对象的可靠性级别对应的DR,并生成所述第一映射关系;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,获取与所述运行对象的可靠性级别对应的CECR,并生成所述第二映射关系。
在第二种可能的实现方式中,结合第五方面或者第一种可能的实现方式,所述缓冲调度器接收所述处理器发送的访问请求,其中所述访问请求包括读访问请求;
相应的,所述缓冲调度器,用于根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据读访问RD-d子请求,其中,所述RD-d子请求包括所述运行对象的数据所存储的DR以及所述运行对象的数据的物理地址信息;
以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象的容错编码所存储的CECR,并生成对所述CECR的容错编码读访问RD-c子请求,其中,所述RD-c子请求包括所述运行对象的容错编码所存储的CECR以及所述对象的容错编码的物理地址信息;
以及将所述RD-d子请求和所述RD-c子请求传输至所述内存芯片;
所述内存芯片用于,在所述RD-d子请求所包括的DR中通过所述运行对象的数据的物理地址信息进行查找,获取所述运行对象的数据;
以及在所述RD-c子请求所包括的CECR中通过对所述运行对象的容错编码物理地址信息进行查找,获取所述运行对象的容错编码;
以及将所述运行对象的数据和容错编码返回至所述缓冲调度器;
所述缓冲调度器用于,根据所述运行对象的容错编码对所述运行对象的数据进行校验,获取所述运行对象的准确的数据;
以及将所述经过校验的所述运行对象的准确的数据发送给所述处理器。
在第三种可能的实现方式中,结合第五方面或者第一种可能的实现方式,所述缓冲调度器接收所述处理器发送的访问请求,其中,所述访问请求包括写访问请求和需要写入所述内存设备的数据,所述写访问请求包括所述运行对象的标识信息以及所述需要写入所述内存设备的数据的物理地址信息和所述需要写入所述内存设备的数据的容错编码的物理地址信息;
相应的,所述缓冲调度器用于,根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据写访问WR-d子请求,其中,所述WR-d子请求包括所述对象的数据所存储的DR以及所述需要写入所述内存设备的数据的物理地址信息;以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象对应的CECR,并生成对所述CECR的容错编码WR-c写访问子请求,其中所述WR-c子请求包括所述对象的容错编码所存储的CECR以及所述需要写入所述内存设备的数据的容错编码的物理地址信息;
以及通过所述运行对象的标识信息查找所述第二映射关系,得到所述运行对象对应的容错编码方法,并通过所述对象对应的容错编码方法对所述需要写入所述内存设备的数据进行容错编码处理,从而获取到与所述需要写入所述内存设备的数据对应的容错编码,并将所述需要写入所述内存设备的数据和与所述需要写入所述内存设备的数据对应的容错编码填入写请求队列;
以及将所述WR-d子请求和所述WR-c子请求传输至所述内存芯片;
所述内存芯片用于,在所述WR-d子请求所包括的DR中通过对所述需要写入所述内存设备的数据的物理地址信息进行查找获取到所述需要写入所述内存设备的数据的第一物理地址,并将所述写请入队列中的所述需要写入所述内存设备的数据写入到所述第一物理地址;以及在所述WR-c子请求所包括的CECR中通过对所述需要写入所述内存设备的数据的容错编码的物理地址信息进行查找,获取到所述所述需要写入所述内存设备的数据的容错编码的第二物理地址,并将所述写请求队列中的与所述需要写入所述内存设备的数据对应的容错编码写入到所述第二物理地址。
在第四种可能的实现方式中,结合第五方面,第一种至第三种可能的实现方式中的任一项,所述缓冲调度器还用于,接收由所述处理器发送的所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
以及根据所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;
以及根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;
以及根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
第六方面,本发明实施例提供了一种处理器,包括:
处理核心,用于设置所述处理器的运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
以及查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述运行对象的可靠性级别对应的容错编码方法,并且向内存设备发送所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法;
以及向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息。
在第一种可能的实现方式中,结合第六方面,所述处理核心还用于,改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
以及向所述内存设备发送所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法。
第七方面,本发明实施例提供了一种内存访问系统,其特征在于,包括如第三方面或第五方面任一项所述的内存设备以及如第四方面或第六方面任一项所述的处理器。
本发明实施例提供了一种内存访问的方法、设备及系统,内存设备根据处理器发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种内存访问的方法流程图;
图2为本发明实施例提供的另一种内存访问的方法流程图;
图3为一种内存访问方法的详细实施例流程图;
图4为内存区域划分示意图;
图5为详细实施例中步骤306的读访问详细步骤示意图;
图6为详细实施例中步骤306的写访问详细步骤示意图;
图7为详细实施例中可靠性级别的调节过程示意图;
图8为本发明实施例提供的一种内存设备的装置示意图;
图9为本发明实施例提供的另一种内存设备的装置示意图;
图10为本发明实施例提供的一种处理器的装置示意图;
图11为本发明实施例提供的另一种处理器的装置示意图;
图12为本发明实施例提供的一种内存设备的硬件装置图;
图13为本发明实施例提供的一种处理器的硬件装置图;
图14为本发明实施例提供的一种内存访问的系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种内存访问的方法的实施例,参见图1,包括:
S101:内存设备接收处理器发送的处理器的运行对象的可靠性级别信息,其中,可靠性级别信息包含运行对象的标识信息以及运行对象的可靠性级别对应的容错编码方法,运行对象的可靠性级别表示运行对象对内存可靠性需求的高低;
S102:内存设备根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,第一映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及运行对象的数据所存储的数据区域DR;第二映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及与运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
示例性的,内存设备根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系,包括:
内存设备根据可靠性级别信息中的容错编码方法查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,获取运行对象的可靠性级别;
内存设备根据运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,获取与运行对象的可靠性级别对应的DR,并生成第一映射关系;
内存设备根据运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,获取与运行对象的可靠性级别对应的CECR,并生成第二映射关系。
示例性的,该方法还可以包括:内存设备接收由处理器发送的改变后的可靠性级别信息,其中,改变后的可靠性级别信息包括运行对象的标识信息以及运行对象的可靠性级别改变后所对应的新的容错编码方法;
内存设备根据改变后的可靠性级别信息中运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,更新第一映射关系和第二映射关系中的运行对象的可靠性级别;
内存设备根据第一映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,更新第一映射关系中的DR;
内存设备根据第二映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,更新第二映射关系中的CECR。
S103:内存设备接收处理器发送的访问请求,其中,访问请求包含处理器运行对象的标识信息以及运行对象的数据的物理地址信息和运行对象的容错编码的物理地址信息;
S104:内存设备根据访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象的容错编码进行访问。
示例性的,内存设备接收处理器发送的访问请求,其中,访问请求包括读访问请求;相应的,
内存设备根据访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象的容错编码进行访问,包括:
内存设备根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR,并生成对DR的数据读访问RD-d子请求,其中,RD-d子请求包括运行对象的数据所存储的DR以及运行对象的数据的物理地址信息;以及根据运行对象的标识信息查询第二映射关系,获取运行对象的容错编码所存储的CECR,并生成对CECR的容错编码读访问RD-c子请求,其中,RD-c子请求包括运行对象的容错编码所存储的CECR以及对象的容错编码的物理地址信息;
内存设备在RD-d子请求所包括的DR中通过运行对象的数据的物理地址信息进行查找,获取运行对象的数据;以及在RD-c子请求所包括的CECR中通过对运行对象的容错编码物理地址信息进行查找,获取运行对象的容错编码;
内存设备根据运行对象的容错编码对运行对象的数据进行校验,获取运行对象的准确的数据;
内存设备将经过校验的运行对象的准确的数据发送给处理器。
示例性的,内存设备接收处理器发送的访问请求,其中,访问请求包括写访问请求和需要写入内存设备的数据,写访问请求包括运行对象的标识信息以及需要写入内存设备的数据的物理地址信息和需要写入内存设备的数据的容错编码的物理地址信息;
相应的,内存设备根据访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象的容错编码进行访问,包括:
内存设备根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR,并生成对DR的数据写访问WR-d子请求,其中,WR-d子请求包括对象的数据所存储的DR以及需要写入内存设备的数据的物理地址信息;以及根据运行对象的标识信息查询第二映射关系,获取运行对象对应的CECR,并生成对CECR的容错编码WR-c写访问子请求,其中WR-c子请求包括对象的容错编码所存储的CECR以及需要写入内存设备的数据的容错编码的物理地址信息;
内存设备通过运行对象的标识信息查找第二映射关系,得到运行对象对应的容错编码方法,并通过对象对应的容错编码方法对需要写入内存设备的数据进行容错编码处理,从而获取到与需要写入内存设备的数据对应的容错编码,并将需要写入内存设备的数据和与需要写入内存设备的数据对应的容错编码填入写请求队列;
内存设备在WR-d子请求所包括的DR中通过对需要写入内存设备的数据的物理地址信息进行查找获取到需要写入内存设备的数据的第一物理地址,并将写请入队列中的需要写入内存设备的数据写入到第一物理地址;以及在WR-c子请求所包括的CECR中通过对需要写入内存设备的数据的容错编码的物理地址信息进行查找,获取到需要写入内存设备的数据的容错编码的第二物理地址,并将写请求队列中的与需要写入内存设备的数据对应的容错编码写入到第二物理地址。
本发明实施例提供的一种内存访问的方法、设备及系统,内存设备根据处理器发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
本发明实施例提供了一种内存访问的方法,参见图2,包括:
S201:处理器设置处理器的运行对象的可靠性级别,其中,运行对象的可靠性级别表示运行对象对内存可靠性需求的高低。
S202:处理器查询预设的运行对象的可靠性级别与容错编码方法的对应关系,得到运行对象的可靠性级别对应的容错编码方法,并且向内存设备发送处理器运行的对象的可靠性级别信息,其中,可靠性级别信息包含运行对象的标识信息以及运行对象的可靠性级别对应的容错编码方法,以使得内存设备根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,第一映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及运行对象的数据所存储的数据区域DR;第二映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及与运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
示例性的,方法还可以包括:
处理器改变运行对象的可靠性级别,得到运行对象的可靠性级别改变后所对应的新的容错编码方法;
处理器向内存设备发送改变后的可靠性级别信息,其中,改变后的可靠性级别信息包括运行对象的标识信息以及运行对象的可靠性级别改变后所对应的新的容错编码方法,以使得内存设备根据改变后的可靠性级别信息中运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,更新第一映射关系和第二映射关系中的运行对象的可靠性级别;以及根据第一映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,更新第一映射关系中的DR;以及根据第二映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,更新第二映射关系中的CECR。
S203:处理器向内存设备发送访问请求,访问请求包含运行的对象的标识,运行对象的数据的物理地址信息,运行对象的容错编码的物理地址信息,以使得内存设备根据访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象的容错编码进行访问。
本发明实施例提供了一种内存访问的方法,内存设备根据处理器发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
参见图3,为一种内存访问的方法的详细实施例,需要说明的是,在本发明的实施例中,通过以进程作为处理器的运行对象进行原理的说明,但并不代表本发明的实施例只适用于以进程作为处理器的运行对象的情况,由于进程对内存可靠性需求的不同,不同的进程可以有不同的可靠性级别,也同时对应不同的容错编码方法。可以理解的,本发明实施例还可以适用于其他的粒度大小的运行对象,比如线程、代码段等,不同粒度大小的运行对象也可以对应不同的可靠性级别;在本发明实施例中不再赘述,本实施例的具体的实现步骤包括:
301:处理器设置其运行对象的可靠性级别;
示例性的,运行对象的可靠性级别表示该运行对象对内存可靠性需求的高低。
示例性的,在本发明实施例中,处理器在初始调度并开始运行某一进程App j时,可以设置进程App j的可靠性级别,具体的,可靠性级别的设置依据可以包含以下一种或几种:用户自定义、操作系统设定、内存芯片故障信息、当前的运行模式等,本发明实施例对此不做任何限制。
为了方便说明,不同的可靠性级别可以对应不同的容错编码方法,本发明实施例中,存在四个不同的可靠性级别,它们通过预设的可靠性级别与容错编码方法的对应关系与不同的容错编码方法一一对应,如表1所示。
处理器可以设置进程App j的可靠性级别为Level3,其对应的容错编码方法为BCH码;
表1
示例性的,处理器在设置完进程App j的可靠性级别之后,还可以保存进程App j的可靠性级别,优选的,可以将App j的可靠性级别对应的容错编码方法写入可靠性级别寄存器中(Reliability-Level Register,简称RLR),其中一个进程对应一个RLR,需要说明的是,在本实施例中优选的,RLR是一个与进程相对应的,用来存储和读取与该进程的可靠性级别对应的容错编码方法的寄存器,它可以设置在处理器内部,也可以通过地址总线的方式与处理器相连接,本发明实施例对其具体的实现形式不做任何限制。
302:处理器查询预设的运行对象的可靠性级别与容错编码方法的对应关系,得到运行对象的可靠性级别对应的容错编码方法;
示例性的,可靠性级别信息包含运行对象的标识信息以及运行对象的可靠性级别对应的容错编码方法;
优选的,处理器可以通过查询表1得到App j的可靠性级别所对应的容错编码方法,并保存在与App j对应的RLR中,具体的,App j的可靠性级别为Level3,对应于BCH码;
然后,处理器将从与App j对应的RLR中所读取的App j对应的容错编码方法发送至内存设备,具体的,处理器可以通过App j的标识信息以及App j的可靠性级别对应的容错编码方法得到App j的可靠性级别信息。
303:处理器向内存设备发送处理器运行的对象的可靠性级别信息。
304:内存设备接收处理器发送的处理器的运行对象的可靠性级别信息,并根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系;
示例性的,内存设备根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系,具体可以包括:
内存设备根据可靠性级别信息中的容错编码方法查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,如表1所示,获取运行对象的可靠性级别;
内存设备根据运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,获取与运行对象的可靠性级别对应的DR,并生成第一映射关系;
内存设备根据运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,获取与运行对象的可靠性级别对应的CECR,并生成第二映射关系;
其中,第一映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及运行对象的数据所存储的数据区域DR;第二映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及与运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
具体在本发明实施例中,第一映射关系和第二映射关系可以通过一个查询表的形式体现一一对应的进程的标识信息、可靠性级别、进程的数据所存储的DR和进程的数据对应的容错编码所存储的CECR,本发明并不以此为限制。优选的,结合如图4所示的内存区域示意图,App j的数据所存储的DR3和进程的数据对应的容错编码所存储的CECR3,查询表的形式可以是地址映射表(Address Mapping Table,简称AMT),参见表2,为本发明实施例优选的AMT,包括进程号,进程的可靠性级别,进程的数据所存储的DR和进程的数据对应的容错编码所存储的CECR。
具体的,在本发明实施例中,内存设备可以在接收处理器发送的App j的可靠性级别信息之后,根据可靠性级别信息中的App j的容错编码方法BDH码查询预设的进程的可靠性级别与容错编码方法的对应关系表,如表1所示,得到App j的可靠性级别Level3;
内存设备可以查询预设的可靠性级别与DR的对应关系表,获取与App j的可靠性级别Level3对应的DR为DR3,并以此建立第一映射关系,优选的,第一映射关系可以表示成App j的数据映射为DR3;
内存设备可以查询预设的可靠性级别与CECR的对应关系表,获取与App j的可靠性级别Level3对应的CECR为CECR3,并以此建立第二映射关系,优选的,第二映射关系可以表示成App j的编码映射为CECR3;
随后,内存设备将进程App j的标识信息,本实施例优选为进程号、App j的可靠性级别Level3,App j的数据存储的DR3以及App j的数据对应的容错编码所存储的CECR3填入到表2所示的AMT,本发明的实施例中,AMT表可以由内存设备中的缓冲调度器进行管理和维护。
表2
示例性的,在本实施例中,在内存设备根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系之后,内存设备可以根据AMT中进程App j的表项,将进程App j的数据存入DR3中,并App j的数据通过BCH码进行容错编码之后,将得到的编码码字写入CECR3中;
进一步的,若内存中没有DR3或/和CECR3,内存设备可以根据第一映射关系和第二映射关系为App j分配对应的DR与CECR;
具体的,内存设备可以根据AMT为App j在内存中分配DR3和CECR3两个区域,并根据AMT中进程App j的表项,将进程App j的数据存入DR3中,并App j的数据通过BCH码进行容错编码之后,将得到的编码码字写入CECR3中。
此时已经将进程App j的第一映射关系和第二映射关系建立完成,后续在进程Appj的运行过程中,可以处理器可以根据App j的这两个映射关系对内存进行可靠性访问,具体的访问过程如下:
305:处理器向内存设备发送访问请求;
示例性的,访问请求包含处理器运行对象的标识信息以及运行对象的数据的物理地址信息和运行对象的容错编码的物理地址信息;
在本实施例中,优选的,在运行App j的过程中,处理器所发送的访问请求包括Appj的进程号和App j的数据的物理地址信息和App j的同错编码的物理地址信息,此外,访问请求可以包括读访问请求和写访问请求,当访问请求类型为写访问请求时,处理器还需要向内存设备发送App j需要写入内存设备的数据。
306:内存设备根据访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象的容错编码进行访问。
示例性的,当访问请求为读访问请求时,如图5所示,步骤306具体可以包括:
306a:内存设备根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR,并生成对DR的数据读访问RD-d子请求,以及根据运行对象的标识信息查询第二映射关系,获取运行对象的容错编码所存储的CECR,并生成对CECR的容错编码读访问RD-c子请求;
示例性的,RD-d子请求包括运行对象的数据所存储的DR以及运行对象的数据的物理地址信息;RD-c子请求包括运行对象的容错编码所存储的CECR以及对象的容错编码的物理地址信息;
具体在本实施例中,内存设备可以根据读访问请求中的进程号查询AMT得到进程App j的数据所存储的DR3和容错编码所存储的CECR3,并且生成对DR3进行读取的数据读访问子请求RD-d(Read data)和对CECR3进行读取的编码码字读访问子请求RD-c(Readcode),其中,RD-d子请求包括DR3以及App j的数据的物理地址信息,RD-c子请求包括CECR3以及App j的容错编码的物理地址信息;
306b:内存设备在RD-d子请求所包括的DR中通过运行对象的数据的物理地址信息进行查找,获取运行对象的数据;以及在RD-c子请求所包括的CECR中通过对运行对象的容错编码物理地址信息进行查找,获取运行对象的容错编码;
具体的在本实施例中,内存设备可以将两个读访问子请求转化为一系列符合内存芯片标准的命令并且发送至内存芯片中,以使得内存芯片可以在RD-d子请求所包括的DR中通过App j的数据的物理地址信息进行查找,获取App j的数据;以及在RD-c子请求所包括的CECR中通过对App j的容错编码物理地址信息进行查找,获取App j的容错编码,并将Appj的数据和容错编码传输给内存设备。
306c:内存设备根据数据和编码码字完成数据校验,获取运行对象的准确的数据;
具体的在本实施例中,内存设备在接收到内存芯片根据两个读访问子请求返回的数据和编码码字之后,通过与App j的可靠性级别Level3对应的容错编码方法BCH码对数据进行校验,校验成功后,将数据返回至处理器执行步骤306d,若校验不成功,本领域技术人员可以理解的,内存设备会进行报错,中断访问过程,并将报错信息返回至处理器由处理器进行处理,在此不再赘述。
306d:内存设备将经过校验的运行对象的准确的数据发送给处理器。
示例性的,当访问请求类型为写访问请求时,写访问请求包括运行对象的标识信息以及需要写入内存设备的数据的物理地址信息和需要写入内存设备的数据的容错编码的物理地址信息,如图6所示,步骤306具体可以包括:
306A:内存设备根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR,并生成对DR的数据写访问WR-d子请求,以及根据运行对象的标识信息查询第二映射关系,获取运行对象对应的CECR,并生成对CECR的容错编码WR-c写访问子请求;
示例性的,WR-d子请求包括对象的数据所存储的DR以及需要写入内存设备的数据的物理地址信息;WR-c子请求包括对象的容错编码所存储的CECR以及需要写入内存设备的数据的容错编码的物理地址信息;
具体的在本实施例中,内存设备可以根据写访问请求中的进程号查询AMT得到Appj的数据所存储的DR3和容错编码所存储的CECR3,并且生成对DR3进行写入的数据写访问子请求WR-d(Write data)以及对CECR3进行写入的编码码字写访问子请求WR-c(Writecode),其中,WR-d子请求包括DR3以及需要写入内存设备的数据的物理地址信息,WR-c子请求包括CECR3以及需要写入内存设备的数据的容错编码的物理地址信息。
306B:内存设备通过运行对象的标识信息查找第二映射关系,得到运行对象对应的容错编码方法,并通过对象对应的容错编码方法对需要写入内存设备的数据进行容错编码处理,从而获取到与需要写入内存设备的数据对应的容错编码,并将需要写入内存设备的数据和与需要写入内存设备的数据对应的容错编码填入写请求队列;
具体的在本实施例中,内存设备可以通过查询AMT得到App j的可靠性级别Level3对应的容错编码方法BCH码,并且根据该容错编码方法对需要写入内存的数据生成编码码字,之后将需要写入内存的数据以及编码码字填入写请求队列。
306C:内存设备在WR-d子请求所包括的DR中通过对需要写入内存设备的数据的物理地址信息进行查找获取到需要写入内存设备的数据的第一物理地址,并将写请入队列中的需要写入内存设备的数据写入到第一物理地址;以及在WR-c子请求所包括的CECR中通过对需要写入内存设备的数据的容错编码的物理地址信息进行查找,获取到需要写入内存设备的数据的容错编码的第二物理地址,并将写请求队列中的与需要写入内存设备的数据对应的容错编码写入到第二物理地址;
具体的在本实施例中,内存设备会将两个写访问请求转化为一系列符合内存芯片标准的命令并且发送至内存芯片中,以使得内存芯片将写请求队列中的需要写入内存设备的数据以及其容错编码分别写入到第一物理地址和第二物理地址。
另外,在运行对象的运行过程中,还可以对运行对象的可靠性级别做出调节,本实施例中,在进程App j的运行过程中,还可以对其可靠性级别做出调节,如图7所示,具体的调节的过程如下:
701:处理器改变运行对象的可靠性级别,得到运行对象的可靠性级别改变后所对应的新的容错编码方法;
示例性的,本实施例中,处理器可以根据可靠性级别的设置依据其中一项或者几项的改变对进程App j的可靠性级别进行调节,并且处理器在调节之前,会先对正在运行的进程App j进行中断处理。
为了能够详细说明,本发明实施例设定进程App j的可靠性级别由Level3调节成Level4,由此通过查询表1,可以得到进程App j的容错编码方法由BCH码改变为MIRROR码;
优选的,处理器可以将进程App j对应的RLR中的容错编码方法修改为MIRROR码。
702:处理器向内存设备发送改变后的可靠性级别信息;
示例性的,改变后的可靠性级别信息包括运行对象的标识信息以及运行对象的可靠性级别改变后所对应的新的容错编码方法;
优选的,本实施例中,处理器可以读取进程App j所对应的RLR中的修改后的容错编码方法MIRROR,连同进程App j的进程号一起组成改变后的可靠性级别信息,并将改变后的可靠性级别信息发送至内存设备。
703:内存设备根据改变后的可靠性级别信息中运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,更新第一映射关系和第二映射关系中的运行对象的可靠性级别;
示例性的,本实施例中,内存设备可以根据进程App j新的容错编码方法MIRROR查询预设的进程的可靠性级别与容错编码方法的对应关系表,得到App j的新的可靠性级别Level4;
704:内存设备根据第一映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,更新第一映射关系中的DR;
示例性的,在本实施例中,内存设备可以查询预设的可靠性级别与DR的对应关系表,获取与App j的新的可靠性级别Level4对应的DR,需要说明的是,App j对应的Dr发生变化与否只涉及App j所对应的数据在DR中的迁移,与可靠性级别的改变没有直接联系,为了描述方便,设定App j的DR不发生变化,仍然可以为DR3,从而更新后的第一映射关系,优选的,可以表示成App j的数据映射为DR3。
705:内存设备根据第二映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,更新第二映射关系中的CECR。
示例性的,内存设备可以查询预设的可靠性级别与CECR的对应关系表,获取与Appj的新的可靠性级别Level4对应的CECR为CECR4,并以此更新第二映射关系,优选的,更新后的第二映射关系可以表示成App j的编码映射为CECR4;
进一步的,在本实施例中,内存设备可以将AMT中进程号App j的表项修改为进程号App j、改变后的App j的可靠性级别Level4,App j的数据存储的DR3以及App j的数据对应的新的容错编码所存储的CECR4,如表3所示。
表3
示例性的,在本实施例中,在内存设备对第一映射关系的DR以及第二映射关系的CECR进行更新后,可以根据如表3所示的修改后的AMT将App j的数据迁移到如表3所示的App j的DR,并将App j的数据根据App j的数据对应的新的容错编码方法MIRROR得到新的容错编码,并且将App j的新的容错编码迁移到CECR4;
进一步的,在完成步骤705之后,处理器将中断恢复,继续运行进程App j,后续可以根据改变后的App j的可靠性级别进行数据访问,访问过程如前述的步骤305-步骤306,在此不再赘述。
本发明实施例提供的一种内存访问的方法、设备及系统,内存设备根据处理器发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
本发明实施例提供了一种内存设备80,参见图8,包括:
接收单元801,用于接收处理器发送的处理器的运行对象的可靠性级别信息,其中,可靠性级别信息包含运行对象的标识信息以及运行对象的可靠性级别对应的容错编码方法,运行对象的可靠性级别表示运行对象对内存可靠性需求的高低;
映射关系建立单元802,用于根据接收单元801接收的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,第一映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及运行对象的数据所存储的数据区域DR;第二映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及与运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
接收单元801还用于,接收处理器发送的访问请求,访问请求包含处理器运行对象的标识信息以及运行对象的数据的物理地址信息和运行对象的容错编码的物理地址信息;
在本实施例中,优选的,在运行App j的过程中,处理器所发送的访问请求包括Appj的进程号和App j的数据的物理地址信息和App j的同错编码的物理地址信息,此外,访问请求可以包括读访问请求和写访问请求,当访问请求类型为写访问请求时,处理器还需要向内存设备发送App j需要写入内存设备的数据。
访问单元803,用于根据接收单元801接收的访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象的容错编码进行访问。
示例性的,不同的可靠性级别可以对应不同的容错编码方法,本发明实施例中,存在四个不同的可靠性级别,它们通过预设的可靠性级别与容错编码方法的对应关系与不同的容错编码方法一一对应,如表1所示,与此同时,进程App j的可靠性级别为Level3,其对应的容错编码方法为BCH码。
示例性的,映射关系建立单元802具体用于,根据接收单元801接收的可靠性级别信息中的容错编码方法查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,获取运行对象的可靠性级别;
以及根据运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,获取与运行对象的可靠性级别对应的DR,并生成第一映射关系;
以及根据运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,获取与运行对象的可靠性级别对应的CECR,并生成第二映射关系;
具体的在本发明实施例中,第一映射关系和第二映射关系可以通过一个查询表的形式体现一一对应的进程的标识信息、可靠性级别、进程的数据所存储的DR和进程的数据对应的容错编码所存储的CECR,本发明并不以此为限制。优选的,结合如图4所示的内存区域示意图,App j的数据所存储的DR3和进程的数据对应的容错编码所存储的CECR3,查询表的形式可以是地址映射表(Address Mapping Table,简称AMT),参见表2,为本发明实施例优选的AMT,包括进程号,进程的可靠性级别,进程的数据所存储的DR和进程的数据对应的容错编码所存储的CECR;
映射关系建立单元802可以根据可靠性级别信息中的App j的容错编码方法BDH码查询预设的进程的可靠性级别与容错编码方法的对应关系表,得到App j的可靠性级别Level3;
并且可以查询预设的可靠性级别与DR的对应关系表,获取与Appj的可靠性级别Level3对应的DR为DR3,并以此建立第一映射关系,优选的,第一映射关系可以表示成App j的数据映射为DR3;
并且可以查询预设的可靠性级别与CECR的对应关系表,获取与App j的可靠性级别Level3对应的CECR为CECR3,并以此建立第二映射关系,优选的,第二映射关系可以表示成App j的编码映射为CECR3;
随后,映射关系建立单元802还可以将进程App j的标识信息,本实施例优选为进程号、App j的可靠性级别Level3,App j的数据存储的DR3以及App j的数据对应的容错编码所存储的CECR3填入到表2所示的AMT。
在本实施例中,映射关系建立单元802根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系之后,还可以根据AMT中进程App j的表项,将进程App j的数据存入DR3中,并App j的数据通过BCH码进行容错编码之后,将得到的编码码字写入CECR3中;
进一步的,若内存中没有DR3或/和CECR3,映射关系建立单元802可以根据第一映射关系和第二映射关系为App j分配对应的DR与CECR;
具体的,映射关系建立单元802可以根据AMT为App j在内存中分配DR3和CECR3两个区域,并根据AMT中进程App j的表项,将进程App j的数据存入DR3中,并将App j的数据通过容错编码方法BCH码进行容错编码之后,将得到的编码码字写入CECR3中。
示例性的,接收单元801具体用于,接收处理器发送的访问请求,其中访问请求包括读访问请求;相应的,
参见图9,访问单元803,包括:
读访问子请求生成模块8031,用于根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR,并生成对DR的数据读访问RD-d子请求,其中,RD-d子请求包括运行对象的数据所存储的DR以及运行对象的数据的物理地址信息;
以及根据运行对象的标识信息查询第二映射关系,获取运行对象的容错编码所存储的CECR,并生成对CECR的容错编码读访问RD-c子请求,其中,RD-c子请求包括运行对象的容错编码所存储的CECR以及对象的容错编码的物理地址信息;
读取模块8032,用于在读访问子请求生成模块8031生成的RD-d子请求所包括的DR中通过运行对象的数据的物理地址信息进行查找,获取运行对象的数据;
以及在读访问子请求生成模块8031生成的RD-c子请求所包括的CECR中通过对运行对象的容错编码物理地址信息进行查找,获取运行对象的容错编码;
校验模块8033,用于根据读取模块8032读取的运行对象的容错编码对读取模块8032读取的运行对象的数据进行校验,获取运行对象的准确的数据;
发送模块8034,用于将经过校验模块8033校验的运行对象的准确的数据发送给处理器。
具体的在本实施例中,读访问子请求生成模块8031可以根据读访问请求中的进程号查询AMT得到进程App j的数据所存储的DR3和容错编码所存储的CECR3,并且生成对DR3进行读取的数据读访问子请求RD-d(Read data)和对CECR3进行读取的编码码字读访问子请求RD-c(Read code),其中,RD-d子请求包括DR3以及App j的数据的物理地址信息,RD-c子请求包括CECR3以及App j的容错编码的物理地址信息;
读取模块8032可以将两个读访问子请求转化为一系列符合内存芯片标准的命令并且发送至内存芯片中,以使得内存芯片可以在RD-d子请求所包括的DR中通过App j的数据的物理地址信息进行查找,获取App j的数据;以及在RD-c子请求所包括的CECR中通过对App j的容错编码物理地址信息进行查找,获取App j的容错编码,并将App j的数据和容错编码传输给内存设备;
校验模块8033在接收到内存芯片根据两个读访问子请求返回的数据和编码码字之后,通过与App j的可靠性级别Level3对应的容错编码方法BCH码对数据进行校验,校验成功后,将数据返回至处理器执行步骤306c,若校验不成功,本领域技术人员可以理解的,内存设备会进行报错,中断访问过程,并将报错信息返回至处理器由处理器进行处理,在此不再赘述。
示例性的,接收单元801用于接收处理器发送的访问请求,其中访问请求包括写访问请求和需要写入内存设备80的数据,写访问请求包括运行对象的标识信息以及需要写入内存设备80的数据的物理地址信息和需要写入内存设备80的数据的容错编码的物理地址信息;相应的,
参见图9,访问单元803包括:
写访问子请求生成模块8035,用于根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR,并生成对DR的数据写访问WR-d子请求,其中,WR-d子请求包括对象的数据所存储的DR以及需要写入内存设备的数据的物理地址信息;
以及根据运行对象的标识信息查询第二映射关系,获取运行对象对应的CECR,并生成对CECR的容错编码WR-c写访问子请求,其中WR-c子请求包括对象的容错编码所存储的CECR以及需要写入内存设备80的数据的容错编码的物理地址信息;
容错编码处理模块8036,用于通过运行对象的标识信息查找第二映射关系,得到运行对象对应的容错编码方法,并通过对象对应的容错编码方法对需要写入内存设备80的数据进行容错编码处理,从而获取到与需要写入内存设备80的数据对应的容错编码,并将需要写入内存设备80的数据和与需要写入内存设备80的数据对应的容错编码填入写请求队列;
写入模块8037,用于在写访问子请求生成模块8035生成的WR-d子请求所包括的DR中通过对需要写入内存设备80的数据的物理地址信息进行查找获取到需要写入内存设备80的数据的第一物理地址,并将写请入队列中的需要写入内存设备80的数据写入到第一物理地址;
以及在写访问子请求生成模块8035生成的WR-c子请求所包括的CECR中通过对需要写入内存设备80的数据的容错编码的物理地址信息进行查找,获取到需要写入内存设备80的数据的容错编码的第二物理地址,并将写请求队列中的与需要写入内存设备80的数据对应的容错编码写入到第二物理地址。
具体的在本发明实施例中,写访问子请求生成模块8035可以根据写访问请求中的进程号查询AMT得到App j的数据所存储的DR3和容错编码所存储的CECR3,并且生成对DR3进行写入的数据写访问子请求WR-d(Write data)以及对CECR3进行写入的编码码字写访问子请求WR-c(Write code),其中,WR-d子请求包括DR3以及需要写入内存设备的数据的物理地址信息,WR-c子请求包括CECR3以及需要写入内存设备的数据的容错编码的物理地址信息;
容错编码处理模块8036可以通过查询AMT得到App j的可靠性级别Level3对应的容错编码方法BCH码,并且根据该容错编码方法对需要写入内存的数据生成编码码字,之后将需要写入内存的数据以及编码码字填入写请求队列;
写入模块8037会将两个写访问请求转化为一系列符合内存芯片标准的命令并且发送至内存芯片中,以使得内存芯片将写请求队列中的需要写入内存设备的数据以及其容错编码分别写入到第一物理地址和第二物理地址。
示例性的,接收单元801还用于,接收由处理器发送的改变后的可靠性级别信息,其中,改变后的可靠性级别信息包括运行对象的标识信息以及运行对象的可靠性级别改变后所对应的新的容错编码方法;
映射关系建立单元802还用于,根据接收单元801接收的改变后的可靠性级别信息中运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,更新第一映射关系和第二映射关系中的运行对象的可靠性级别;
以及根据第一映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与DR的对应关系表,更新第一映射关系中的DR;
以及根据第二映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与CECR的对应关系表,更新第二映射关系中的CECR。
具体的,在本实施例中,接收单元801接收由处理器发送的改变后的可靠性级别信息,其中,改变后的可靠性级别信息是通过处理器根据可靠性级别的设置依据其中一项或者几项的改变对进程App j的可靠性级别进行调节,由Level3调节成Level4;并且通过查询表1,可以得到进程App j的容错编码方法由BCH码改变为MIRROR码,连同进程App j的进程号一起组成得到的;
此时,映射关系建立单元802根据接收单元801所接收到的改变后的可靠性级别信息中进程App j新的容错编码方法MIRROR查询预设的进程的可靠性级别与容错编码方法的对应关系表,得到App j的新的可靠性级别Level4;
并且查询预设的可靠性级别与DR的对应关系表,获取与App j的新的可靠性级别Level4对应的DR,需要说明的是,App j对应的Dr发生变化与否只涉及App j所对应的数据在DR中的迁移,与可靠性级别的改变没有直接联系,为了描述方便,设定App j的DR不发生变化,仍然可以为DR3,从而更新后的第一映射关系,优选的,可以表示成App j的数据映射为DR3;
并且查询预设的可靠性级别与CECR的对应关系表,获取与App j的新的可靠性级别Level4对应的CECR为CECR4,并以此更新第二映射关系,优选的,更新后的第二映射关系可以表示成App j的编码映射为CECR4;
进一步的,映射关系建立单元802可以将AMT中进程号App j的表项修改为进程号App j、改变后的App j的可靠性级别Level4,App j的数据存储的DR3以及App j的数据对应的新的容错编码所存储的CECR4,如表3所示;
映射关系建立单元802在对第一映射关系的DR以及第二映射关系的CECR进行更新后,可以根据如表3所示的修改后的AMT将App j的数据迁移到如表3所示的App j的DR,并将App j的数据根据App j的数据对应的新的容错编码方法MIRROR得到新的容错编码,并且将App j的新的容错编码迁移到CECR4。
后续内存设备80就可以根据改变后的App j的可靠性级别进行数据访问,访问过程如步骤306-步骤306,在此不再赘述
本发明实施例提供了一种内存访问的内存设备80,内存设备80根据处理器发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
本发明实施例提供了一种处理器100,参见图10,包括:
设置单元1001,用于设置所述处理器运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
查询单元1002,用于查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述设置单元1001设置的所述运行对象的可靠性级别对应的容错编码方法;
发送单元1003,用于向内存设备发送所述查询单元1002得到的所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法;
示例性的,发送单元1003可以通过App j的标识信息以及App j的可靠性级别对应的容错编码方法得到App j的可靠性级别信息,并将此信息发送至内存设备。
所述发送单元1003还用于,向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息。
示例性的,在本实施例中,处理器100在初始调度并开始运行某一进程App j时,设置单元1001可以设置进程App j的可靠性级别,具体的,可靠性级别的设置依据包含以下一种或几种:用户自定义、操作系统设定、内存芯片故障信息、当前的运行模式等,本实施例对此不作任何限定。
不同的可靠性级别对应不同的容错编码方法,为了方便说明,本发明实施例中,存在四个不同的可靠性级别,它们通过预设的可靠性级别与容错编码方法的对应关系与不同的容错编码方法一一对应,如表1所示。
设置单元1001可以设置进程App j的可靠性级别为Level3,查询单元1002可以根据表1得到进程App j的容错编码方法为BCH码。
示例性的,参见图11,处理器100还可以包括接收单元1004,当访问请求为读访问请求时,用于接收内存设备发送的进程App j的数据。
示例性的,发送单元1003,当访问请求为写访问请求时,还可以用于向内存设备发送需要写入内存设备的数据。
示例性的,参见图11,处理器100还包括改变单元1005,用于改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述发送单元1003还用于,向内存设备发送所述改变单元得到的所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
具体的在本实施例中,改变单元1005可以根据可靠性级别的设置依据其中一项或者几项的改变对进程App j的可靠性级别进行调节,并且参见图11,处理器100还可以包括中断单元1006,用于在改变单元1005调节之前,对正在运行的进程App j进行中断处理;为了能够详细说明,本发明实施例设定进程App j的可靠性级别由Level3调节成Level4,由此通过查询表1,可以得到进程App j的容错编码方法由BCH码改变为MIRROR码。
示例性的,中断单元1006还可以用于将中断恢复,继续运行进程App j。
本发明实施例提供的一种内存访问的处理器100,内存设备根据处理器100发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器100发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
参见图12,为本发明实施例提供的一种内存设备80,包括:
内存芯片1201,包括数据区域DR12011和可配置纠错编码区域CECR12012,其中,DR12011用于存储处理器的运行对象的数据,CECR12012用于存储运行对象的数据对应的容错编码,具体的区域示意图可参见图4;
总线接口1202,用于实现本实施例中的内存设备与外部部件之间的通信;示例性的,总线接口1301可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等,本发明实施例对此不作任何限定。
缓冲调度器1203,可以是带存储功能的特定集成电路(Application SpecificIntegrated Circuit,简称为ASIC),本发明对此不做限定,用于:
通过总线接口1202接收处理器发送的处理器运行对象的可靠性级别信息,其中,可靠性级别信息包含运行对象的标识信息以及运行对象的可靠性级别对应的容错编码方法,运行对象的可靠性级别表示运行对象对内存可靠性需求的高低;
以及根据运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,第一映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及运行对象的数据所存储的DR12011;第二映射关系包含一一对应的运行对象的标识信息、运行对象的可靠性级别以及与运行对象的数据对应的容错编码所存储的CECR12012;
以及通过总线接口1202接收处理器发送的访问请求,访问请求包含处理器运行的对象的标识信息以及运行对象的数据的物理地址信息和运行对象的容错编码的物理地址信息;
以及根据访问请求和第一映射关系对运行对象的数据进行访问,以及根据访问请求和第二映射关系对运行对象对应的容错编码进行访问。
示例性的,缓冲调度器1203可以用于,
根据可靠性级别信息中的容错编码方法查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,获取运行对象的可靠性级别;
以及根据运行对象的可靠性级别查询预设的可靠性级别与DR12011的对应关系表,获取与运行对象的可靠性级别对应的DR12011,并生成第一映射关系;
以及根据运行对象的可靠性级别查询预设的可靠性级别与CECR12012的对应关系表,获取与运行对象的可靠性级别对应的CECR12012,并生成第二映射关系。
示例性的,缓冲调度器1203通过总线接口1202接收处理器发送的访问请求,其中访问请求包括读访问请求;
相应的,缓冲调度器,用于根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR12011,并生成对DR12011的数据读访问RD-d子请求,其中,RD-d子请求包括运行对象的数据所存储的DR12011以及运行对象的数据的物理地址信息;
以及根据运行对象的标识信息查询第二映射关系,获取运行对象的容错编码所存储的CECR12012,并生成对CECR12012的容错编码读访问RD-c子请求,其中,RD-c子请求包括运行对象的容错编码所存储的CECR12012以及对象的容错编码的物理地址信息;
以及将RD-d子请求和RD-c子请求传输至内存芯片1201;
内存芯片1201用于,在RD-d子请求所包括的DR12011中通过运行对象的数据的物理地址信息进行查找,获取运行对象的数据;
以及在RD-c子请求所包括的CECR12012中通过对运行对象的容错编码物理地址信息进行查找,获取运行对象的容错编码;
以及将运行对象的数据和容错编码返回至缓冲调度器;
缓冲调度器用于,根据运行对象的容错编码对运行对象的数据进行校验,获取运行对象的准确的数据;
以及将经过校验的运行对象的准确的数据发送给处理器。
示例性的,缓冲调度器1203通过总线接口1202接收处理器发送的访问请求,其中,访问请求包括写访问请求和需要写入内存设备的数据,写访问请求包括运行对象的标识信息以及需要写入内存设备的数据的物理地址信息和需要写入内存设备的数据的容错编码的物理地址信息;
相应的,缓冲调度器用于,根据运行对象的标识信息查询第一映射关系,获取运行对象的数据所存储的DR12011,并生成对DR12011的数据写访问WR-d子请求,其中,WR-d子请求包括对象的数据所存储的DR12011以及需要写入内存设备的数据的物理地址信息;以及根据运行对象的标识信息查询第二映射关系,获取运行对象对应的CECR12012,并生成对CECR12012的容错编码WR-c写访问子请求,其中WR-c子请求包括对象的容错编码所存储的CECR12012以及需要写入内存设备的数据的容错编码的物理地址信息;
以及通过运行对象的标识信息查找第二映射关系,得到运行对象对应的容错编码方法,并通过对象对应的容错编码方法对需要写入内存设备的数据进行容错编码处理,从而获取到与需要写入内存设备的数据对应的容错编码,并将需要写入内存设备的数据和与需要写入内存设备的数据对应的容错编码填入写请求队列;
以及将WR-d子请求和WR-c子请求传输至内存芯片1201;
内存芯片1201用于,在WR-d子请求所包括的DR12011中通过对需要写入内存设备的数据的物理地址信息进行查找获取到需要写入内存设备的数据的第一物理地址,并将写请入队列中的需要写入内存设备的数据写入到第一物理地址;以及在WR-c子请求所包括的CECR12012中通过对需要写入内存设备的数据的容错编码的物理地址信息进行查找,获取到需要写入内存设备的数据的容错编码的第二物理地址,并将写请求队列中的与需要写入内存设备的数据对应的容错编码写入到第二物理地址。
示例性的,缓冲调度器1203还用于,通过总线接口1202接收由处理器发送的改变后的可靠性级别信息,其中,改变后的可靠性级别信息包括运行对象的标识信息以及运行对象的可靠性级别改变后所对应的新的容错编码方法;
以及根据改变后的可靠性级别信息中运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的运行对象的可靠性级别与容错编码方法的对应关系表,更新第一映射关系和第二映射关系中的运行对象的可靠性级别;
以及根据第一映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与DR12011的对应关系表,更新第一映射关系中的DR12011;
以及根据第二映射关系中更新后的运行对象的可靠性级别查询预设的可靠性级别与CECR12012的对应关系表,更新第二映射关系中的CECR12012。
本发明实施例提供了一种内存访问的内存设备,内存设备根据处理器发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
参见图13,本实施例提供的一种处理器100,其可能是一个中央处理器(CentralProcessing Unit,简称为CPU),或者是特定集成电路(Application Specific IntegratedCircuit,简称为ASIC),本发明对此不做限定,包括:
总线接口1301,用于实现本实施例中的处理器与外部部件之间的通信;示例性的,总线接口1201可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等,本发明实施例对此不作任何限定。
处理核心1302,用于设置处理器的运行对象的可靠性级别,其中,运行对象的可靠性级别表示运行对象对内存可靠性需求的高低;
以及查询预设的运行对象的可靠性级别与容错编码方法的对应关系,得到运行对象的可靠性级别对应的容错编码方法,并且通过总线接口1301向内存设备发送处理器运行的对象的可靠性级别信息,其中,可靠性级别信息包含运行对象的标识信息以及运行对象的可靠性级别对应的容错编码方法;
以及通过总线接口1301向内存设备发送访问请求,访问请求包含运行的对象的标识,运行对象的数据的物理地址信息,运行对象的容错编码的物理地址信息。
示例性的,处理核心1302还用于,改变运行对象的可靠性级别,得到运行对象的可靠性级别改变后所对应的新的容错编码方法;
以及通过总线接口1301向内存设备发送改变后的可靠性级别信息,其中,改变后的可靠性级别信息包括运行对象的标识信息以及运行对象的可靠性级别改变后所对应的新的容错编码方法。
本发明实施例提供了一种内存访问的处理器100,内存设备根据处理器100发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器100发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
参见图14,本发明实施例提供了一种内存访问系统140,包括上述任一实施例的内存设备80以及上述任一实施例的处理器100。
本实施例提供的一种内存访问的系统140,内存设备80根据处理器100发送的运行对象的可靠性级别信息建立第一映射关系和第二映射关系,并根据第一映射关系和第二映射关系对处理器100发送的访问请求分别对运行对象的数据以及容错编码进行访问,提供层次化的,灵活的内存靠性级别的设定方法,实现不同运行对象类型、不同可靠性级别的内存访问机制。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (22)
1.一种内存访问的方法,其特征在于,包括:
内存设备接收处理器发送的所述处理器的运行对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
所述内存设备根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的数据区域DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
所述内存设备接收所述处理器发送的访问请求,所述访问请求包含所述处理器运行对象的标识信息以及所述运行对象的数据的物理地址信息和所述运行对象的容错编码的物理地址信息;
所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
2.根据权利要求1所述的方法,其特征在于,
所述内存设备根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,包括:
所述内存设备根据所述可靠性级别信息中的所述容错编码方法查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,获取所述运行对象的可靠性级别;
所述内存设备根据所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,获取与所述运行对象的可靠性级别对应的DR,并生成所述第一映射关系;
所述内存设备根据所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,获取与所述运行对象的可靠性级别对应的CECR,并生成所述第二映射关系。
3.根据权利要求1或2所述的方法,其特征在于,所述内存设备接收所述处理器发送的访问请求,其中,所述访问请求包括读访问请求;相应的,
所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问,包括:
所述内存设备根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据读访问RD-d子请求,其中,所述RD-d子请求包括所述运行对象的数据所存储的DR以及所述运行对象的数据的物理地址信息;以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象的容错编码所存储的CECR,并生成对所述CECR的容错编码读访问RD-c子请求,其中,所述RD-c子请求包括所述运行对象的容错编码所存储的CECR以及所述对象的容错编码的物理地址信息;
所述内存设备在所述RD-d子请求所包括的DR中通过所述运行对象的数据的物理地址信息进行查找,获取所述运行对象的数据;以及在所述RD-c子请求所包括的CECR中通过对所述运行对象的容错编码物理地址信息进行查找,获取所述运行对象的容错编码;
所述内存设备根据所述运行对象的容错编码对所述运行对象的数据进行校验,获取所述运行对象的准确的数据;
所述内存设备将所述经过校验的所述运行对象的准确的数据发送给所述处理器。
4.根据权利要求1或2所述的方法,其特征在于,所述内存设备接收所述处理器发送的访问请求,其中,所述访问请求包括写访问请求和需要写入所述内存设备的数据,所述写访问请求包括所述运行对象的标识信息以及所述需要写入所述内存设备的数据的物理地址信息和所述需要写入所述内存设备的数据的容错编码的物理地址信息;
相应的,所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问,包括:
所述内存设备根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据写访问WR-d子请求,其中,所述WR-d子请求包括所述对象的数据所存储的DR以及所述需要写入所述内存设备的数据的物理地址信息;以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象对应的CECR,并生成对所述CECR的容错编码WR-c写访问子请求,其中所述WR-c子请求包括所述对象的容错编码所存储的CECR以及所述需要写入所述内存设备的数据的容错编码的物理地址信息;
所述内存设备通过所述运行对象的标识信息查找所述第二映射关系,得到所述运行对象对应的容错编码方法,并通过所述对象对应的容错编码方法对所述需要写入所述内存设备的数据进行容错编码处理,从而获取到与所述需要写入所述内存设备的数据对应的容错编码,并将所述需要写入所述内存设备的数据和与所述需要写入所述内存设备的数据对应的容错编码填入写请求队列;
所述内存设备在所述WR-d子请求所包括的DR中通过对所述需要写入所述内存设备的数据的物理地址信息进行查找获取到所述需要写入所述内存设备的数据的第一物理地址,并将所述写请求队列中的所述需要写入所述内存设备的数据写入到所述第一物理地址;以及在所述WR-c子请求所包括的CECR中通过对所述需要写入所述内存设备的数据的容错编码的物理地址信息进行查找,获取到所述所述需要写入所述内存设备的数据的容错编码的第二物理地址,并将所述写请求队列中的与所述需要写入所述内存设备的数据对应的容错编码写入到所述第二物理地址。
5.根据权利要求1-2任一项所述的方法,其特征在于,所述方法还包括:
所述内存设备接收由所述处理器发送的改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述内存设备根据所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;
所述内存设备根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;
所述内存设备根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
6.一种内存访问的方法,其特征在于,包括:
处理器设置所述处理器的运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
所述处理器查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述运行对象的可靠性级别对应的容错编码方法,并且向内存设备发送所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,以使得所述内存设备根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的数据区域DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
所述处理器向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息,以使得所述内存设备根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述处理器改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述处理器向所述内存设备发送所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法,以使得所述内存设备根据所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;以及根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;以及根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
8.一种内存设备,其特征在于,包括:
接收单元,用于接收处理器发送的所述处理器的运行对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
映射关系建立单元,用于根据所述接收单元接收的所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的数据区域DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的可配置纠错编码区域CECR;
所述接收单元还用于,接收所述处理器发送的访问请求,所述访问请求包含所述处理器运行对象的标识信息以及所述运行对象的数据的物理地址信息和所述运行对象的容错编码的物理地址信息;
访问单元,用于根据所述接收单元接收的所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象的容错编码进行访问。
9.根据权利要求8所述的内存设备,其特征在于,
所述映射关系建立单元具体用于,根据根据所述接收单元接收的所述可靠性级别信息中的所述容错编码方法查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,获取所述运行对象的可靠性级别;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,获取与所述运行对象的可靠性级别对应的DR,并生成所述第一映射关系;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,获取与所述运行对象的可靠性级别对应的CECR,并生成所述第二映射关系。
10.根据权利要求8或9所述的内存设备,其特征在于,所述接收单元具体用于,接收所述处理器发送的访问请求,其中所述访问请求包括读访问请求;相应的,
所述访问单元,包括:
读访问子请求生成模块,用于根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据读访问RD-d子请求,其中,所述RD-d子请求包括所述运行对象的数据所存储的DR以及所述运行对象的数据的物理地址信息;
以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象的容错编码所存储的CECR,并生成对所述CECR的容错编码读访问RD-c子请求,其中,所述RD-c子请求包括所述运行对象的容错编码所存储的CECR以及所述对象的容错编码的物理地址信息;
读取模块,用于在所述读访问子请求生成模块生成的所述RD-d子请求所包括的DR中通过所述运行对象的数据的物理地址信息进行查找,获取所述运行对象的数据;
以及在所述读访问子请求生成模块生成的所述RD-c子请求所包括的CECR中通过对所述运行对象的容错编码物理地址信息进行查找,获取所述运行对象的容错编码;
校验模块,用于根据所述读取模块读取的所述运行对象的容错编码对所述读取模块读取的所述运行对象的数据进行校验,获取所述运行对象的准确的数据;
发送模块,用于将经过所述校验模块校验的所述运行对象的准确的数据发送给所述处理器。
11.根据权利要求8或9所述的内存设备,其特征在于,所述接收单元用于接收所述处理器发送的访问请求,其中所述访问请求包括写访问请求和需要写入所述内存设备的数据,所述写访问请求包括所述运行对象的标识信息以及所述需要写入所述内存设备的数据的物理地址信息和所述需要写入所述内存设备的数据的容错编码的物理地址信息;相应的,
所述访问单元包括:
写访问子请求生成模块,用于根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据写访问WR-d子请求,其中,所述WR-d子请求包括所述对象的数据所存储的DR以及所述需要写入所述内存设备的数据的物理地址信息;
以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象对应的CECR,并生成对所述CECR的容错编码WR-c写访问子请求,其中所述WR-c子请求包括所述对象的容错编码所存储的CECR以及所述需要写入所述内存设备的数据的容错编码的物理地址信息;
容错编码处理模块,用于通过所述运行对象的标识信息查找所述第二映射关系,得到所述运行对象对应的容错编码方法,并通过所述对象对应的容错编码方法对所述需要写入所述内存设备的数据进行容错编码处理,从而获取到与所述需要写入所述内存设备的数据对应的容错编码,并将所述需要写入所述内存设备的数据和与所述需要写入所述内存设备的数据对应的容错编码填入写请求队列;
写入模块,用于在所述写访问子请求生成模块生成的所述WR-d子请求所包括的DR中通过对所述需要写入所述内存设备的数据的物理地址信息进行查找获取到所述需要写入所述内存设备的数据的第一物理地址,并将所述写请求队列中的所述需要写入所述内存设备的数据写入到所述第一物理地址;
以及在所述写访问子请求生成模块生成的所述WR-c子请求所包括的CECR中通过对所述需要写入所述内存设备的数据的容错编码的物理地址信息进行查找,获取到所述所述需要写入所述内存设备的数据的容错编码的第二物理地址,并将所述写请求队列中的与所述需要写入所述内存设备的数据对应的容错编码写入到所述第二物理地址。
12.根据权利要求8-9任一项所述的内存设备,其特征在于,
所述接收单元还用于,接收由所述处理器发送的改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述映射关系建立单元还用于,根据所述接收单元接收的所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;
以及根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;
以及根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
13.一种用于内存访问的处理器,其特征在于,包括:
设置单元,用于设置所述处理器运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
查询单元,用于查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述设置单元设置的所述运行对象的可靠性级别对应的容错编码方法;
发送单元,用于向内存设备发送所述查询单元得到的所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法;
所述发送单元还用于,向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息。
14.根据权利要求13所述的处理器,其特征在于,还包括:
改变单元,用于改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
所述发送单元还用于,向内存设备发送所述改变单元得到的所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法。
15.一种内存设备,其特征在于,包括:
内存芯片,包括数据区域DR和可配置纠错编码区域CECR,其中,所述DR用于存储处理器的运行对象的数据,所述CECR用于存储所述运行对象的数据对应的容错编码;
缓冲调度器,用于接收处理器发送的所述处理器运行对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
以及根据所述运行对象的可靠性级别信息建立第一映射关系和第二映射关系,其中,所述第一映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及所述运行对象的数据所存储的DR;所述第二映射关系包含一一对应的所述运行对象的标识信息、所述运行对象的可靠性级别以及与所述运行对象的数据对应的容错编码所存储的CECR;
以及接收所述处理器发送的访问请求,所述访问请求包含所述处理器运行的对象的标识信息以及所述运行对象的数据的物理地址信息和所述运行对象的容错编码的物理地址信息;
以及根据所述访问请求和所述第一映射关系对所述运行对象的数据进行访问,以及根据所述访问请求和所述第二映射关系对所述运行对象对应的容错编码进行访问。
16.根据权利要求15所述的内存设备,其特征在于,
所述缓冲调度器,用于根据所述可靠性级别信息中的所述容错编码方法查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,获取所述运行对象的可靠性级别;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,获取与所述运行对象的可靠性级别对应的DR,并生成所述第一映射关系;
以及根据所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,获取与所述运行对象的可靠性级别对应的CECR,并生成所述第二映射关系。
17.根据权利要求15或16所述的内存设备,其特征在于,
所述缓冲调度器接收所述处理器发送的访问请求,其中所述访问请求包括读访问请求;
相应的,所述缓冲调度器,用于根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据读访问RD-d子请求,其中,所述RD-d子请求包括所述运行对象的数据所存储的DR以及所述运行对象的数据的物理地址信息;
以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象的容错编码所存储的CECR,并生成对所述CECR的容错编码读访问RD-c子请求,其中,所述RD-c子请求包括所述运行对象的容错编码所存储的CECR以及所述对象的容错编码的物理地址信息;
以及将所述RD-d子请求和所述RD-c子请求传输至所述内存芯片;
所述内存芯片用于,在所述RD-d子请求所包括的DR中通过所述运行对象的数据的物理地址信息进行查找,获取所述运行对象的数据;
以及在所述RD-c子请求所包括的CECR中通过对所述运行对象的容错编码物理地址信息进行查找,获取所述运行对象的容错编码;
以及将所述运行对象的数据和容错编码返回至所述缓冲调度器;
所述缓冲调度器用于,根据所述运行对象的容错编码对所述运行对象的数据进行校验,获取所述运行对象的准确的数据;
以及将所述经过校验的所述运行对象的准确的数据发送给所述处理器。
18.根据权利要求15或16所述的内存设备,其特征在于,所述缓冲调度器接收所述处理器发送的访问请求,其中,所述访问请求包括写访问请求和需要写入所述内存设备的数据,所述写访问请求包括所述运行对象的标识信息以及所述需要写入所述内存设备的数据的物理地址信息和所述需要写入所述内存设备的数据的容错编码的物理地址信息;
相应的,所述缓冲调度器用于,根据所述运行对象的标识信息查询所述第一映射关系,获取所述运行对象的数据所存储的DR,并生成对所述DR的数据写访问WR-d子请求,其中,所述WR-d子请求包括所述对象的数据所存储的DR以及所述需要写入所述内存设备的数据的物理地址信息;以及根据所述运行对象的标识信息查询所述第二映射关系,获取所述运行对象对应的CECR,并生成对所述CECR的容错编码WR-c写访问子请求,其中所述WR-c子请求包括所述对象的容错编码所存储的CECR以及所述需要写入所述内存设备的数据的容错编码的物理地址信息;
以及通过所述运行对象的标识信息查找所述第二映射关系,得到所述运行对象对应的容错编码方法,并通过所述对象对应的容错编码方法对所述需要写入所述内存设备的数据进行容错编码处理,从而获取到与所述需要写入所述内存设备的数据对应的容错编码,并将所述需要写入所述内存设备的数据和与所述需要写入所述内存设备的数据对应的容错编码填入写请求队列;
以及将所述WR-d子请求和所述WR-c子请求传输至所述内存芯片;
所述内存芯片用于,在所述WR-d子请求所包括的DR中通过对所述需要写入所述内存设备的数据的物理地址信息进行查找获取到所述需要写入所述内存设备的数据的第一物理地址,并将所述写请求队列中的所述需要写入所述内存设备的数据写入到所述第一物理地址;以及在所述WR-c子请求所包括的CECR中通过对所述需要写入所述内存设备的数据的容错编码的物理地址信息进行查找,获取到所述所述需要写入所述内存设备的数据的容错编码的第二物理地址,并将所述写请求队列中的与所述需要写入所述内存设备的数据对应的容错编码写入到所述第二物理地址。
19.根据权利要求15-16任一项所述的内存设备,其特征在于,
所述缓冲调度器还用于,接收由所述处理器发送的改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
以及根据所述改变后的所述可靠性级别信息中所述运行对象的可靠性级别改变后所对应的新的容错编码方法,查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系表,更新所述第一映射关系和所述第二映射关系中的所述运行对象的可靠性级别;
以及根据所述第一映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述DR的对应关系表,更新所述第一映射关系中的DR;
以及根据所述第二映射关系中更新后的所述运行对象的可靠性级别查询预设的可靠性级别与所述CECR的对应关系表,更新所述第二映射关系中的所述CECR。
20.一种用于内存访问的处理器,其特征在于,包括:
处理核心,用于设置所述处理器的运行对象的可靠性级别,其中,所述运行对象的可靠性级别表示所述运行对象对内存可靠性需求的高低;
以及查询预设的所述运行对象的所述可靠性级别与容错编码方法的对应关系,得到所述运行对象的可靠性级别对应的容错编码方法,并且向内存设备发送所述处理器运行的对象的可靠性级别信息,其中,所述可靠性级别信息包含所述运行对象的标识信息以及所述运行对象的可靠性级别对应的容错编码方法;
以及向所述内存设备发送访问请求,所述访问请求包含所述运行的对象的标识,所述运行对象的数据的物理地址信息,所述运行对象的容错编码的物理地址信息。
21.根据权利要求20所述的处理器,其特征在于,所述处理核心还用于,改变所述运行对象的可靠性级别,得到所述运行对象的可靠性级别改变后所对应的新的容错编码方法;
以及向所述内存设备发送所述改变后的所述可靠性级别信息,其中,所述改变后的所述可靠性级别信息包括所述运行对象的标识信息以及所述运行对象的可靠性级别改变后所对应的新的容错编码方法。
22.一种内存访问的系统,其特征在于,包括如权利要求8-12,15-19任一项所述的内存设备以及如权利要求13-14,20-21任一项所述的处理器。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310345355.XA CN104346234B (zh) | 2013-08-09 | 2013-08-09 | 一种内存访问的方法、设备及系统 |
PCT/CN2014/083874 WO2015018351A1 (zh) | 2013-08-09 | 2014-08-07 | 一种内存访问的方法、设备及系统 |
EP14835213.1A EP3021222B1 (en) | 2013-08-09 | 2014-08-07 | Method, device and system for memory access |
KR1020167005832A KR101666455B1 (ko) | 2013-08-09 | 2014-08-07 | 메모리 액세스 방법, 장치, 및 시스템 |
US15/015,303 US9772891B2 (en) | 2013-08-09 | 2016-02-04 | Memory access method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310345355.XA CN104346234B (zh) | 2013-08-09 | 2013-08-09 | 一种内存访问的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346234A CN104346234A (zh) | 2015-02-11 |
CN104346234B true CN104346234B (zh) | 2017-09-26 |
Family
ID=52460677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310345355.XA Active CN104346234B (zh) | 2013-08-09 | 2013-08-09 | 一种内存访问的方法、设备及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9772891B2 (zh) |
EP (1) | EP3021222B1 (zh) |
KR (1) | KR101666455B1 (zh) |
CN (1) | CN104346234B (zh) |
WO (1) | WO2015018351A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318363B2 (en) * | 2016-10-28 | 2019-06-11 | Advanced Micro Devices, Inc. | System and method for energy reduction based on history of reliability of a system |
US10831653B2 (en) | 2018-05-15 | 2020-11-10 | Micron Technology, Inc. | Forwarding code word address |
US11003375B2 (en) | 2018-05-15 | 2021-05-11 | Micron Technology, Inc. | Code word format and structure |
US11257543B2 (en) * | 2019-06-25 | 2022-02-22 | Stmicroelectronics International N.V. | Memory management device, system and method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043729A (zh) * | 2009-10-20 | 2011-05-04 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
CN102272855A (zh) * | 2008-12-30 | 2011-12-07 | 韩商英得联股份有限公司 | 存储器控制器及存储器管理方法 |
CN102308282A (zh) * | 2011-07-20 | 2012-01-04 | 华为技术有限公司 | 多处理器体系结构远端内存访问的模拟方法及模拟器 |
CN102331977A (zh) * | 2011-09-07 | 2012-01-25 | 上海交通大学 | 内存控制器、处理器系统及内存访问控制方法 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041295A1 (en) * | 2001-08-24 | 2003-02-27 | Chien-Tzu Hou | Method of defects recovery and status display of dram |
US7962700B2 (en) * | 2006-09-06 | 2011-06-14 | International Business Machines Corporation | Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization |
TWI469052B (zh) * | 2008-12-12 | 2015-01-11 | Genesys Logic Inc | 具有複數修正儲存單元的程式更新系統及其方法 |
TWI474329B (zh) * | 2010-11-15 | 2015-02-21 | Silicon Motion Inc | 提昇錯誤更正能力之方法以及記憶裝置及控制器 |
US8990657B2 (en) * | 2011-06-14 | 2015-03-24 | Freescale Semiconductor, Inc. | Selective masking for error correction |
CN102323899B (zh) * | 2011-09-05 | 2013-05-08 | 浪潮电子信息产业股份有限公司 | Numa体系结构下面向容错的操作系统内存管理方法 |
US8930749B2 (en) * | 2012-04-02 | 2015-01-06 | International Business Machines Corporation | Systems and methods for preventing data loss |
-
2013
- 2013-08-09 CN CN201310345355.XA patent/CN104346234B/zh active Active
-
2014
- 2014-08-07 KR KR1020167005832A patent/KR101666455B1/ko active IP Right Grant
- 2014-08-07 EP EP14835213.1A patent/EP3021222B1/en active Active
- 2014-08-07 WO PCT/CN2014/083874 patent/WO2015018351A1/zh active Application Filing
-
2016
- 2016-02-04 US US15/015,303 patent/US9772891B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102272855A (zh) * | 2008-12-30 | 2011-12-07 | 韩商英得联股份有限公司 | 存储器控制器及存储器管理方法 |
CN102043729A (zh) * | 2009-10-20 | 2011-05-04 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
CN102308282A (zh) * | 2011-07-20 | 2012-01-04 | 华为技术有限公司 | 多处理器体系结构远端内存访问的模拟方法及模拟器 |
CN102331977A (zh) * | 2011-09-07 | 2012-01-25 | 上海交通大学 | 内存控制器、处理器系统及内存访问控制方法 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3021222A4 (en) | 2016-11-09 |
US9772891B2 (en) | 2017-09-26 |
EP3021222B1 (en) | 2019-04-17 |
CN104346234A (zh) | 2015-02-11 |
EP3021222A1 (en) | 2016-05-18 |
WO2015018351A1 (zh) | 2015-02-12 |
KR20160040284A (ko) | 2016-04-12 |
US20160154687A1 (en) | 2016-06-02 |
KR101666455B1 (ko) | 2016-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731523B (zh) | 非易失性分级存储系统中的协同管理的方法及其控制器 | |
CN108769111A (zh) | 一种服务器连接方法、计算机可读存储介质及终端设备 | |
CN104572517B (zh) | 提供被请求数据的方法、控制器以及计算机系统 | |
CN107040585A (zh) | 一种业务校验的方法及装置 | |
CN103368867B (zh) | 高速缓存经网络与辅助站点通信的对象的方法和系统 | |
CN106030549B (zh) | 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统 | |
CN106294421A (zh) | 一种数据写入、读取方法及装置 | |
CN104346234B (zh) | 一种内存访问的方法、设备及系统 | |
CN105556930A (zh) | 针对远程存储器访问的nvm express控制器 | |
KR102575913B1 (ko) | 비대칭 세트 결합된 캐시 | |
KR102626162B1 (ko) | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 | |
US9489328B2 (en) | System on chip and method for accessing device on bus | |
CN103345469B (zh) | 号码集合的存储、查询方法及其装置 | |
CN103019960A (zh) | 分布式缓存方法及系统 | |
CN110442534A (zh) | 用于相干消息的高带宽链路层 | |
US10248497B2 (en) | Error detection and correction utilizing locally stored parity information | |
CN107203475A (zh) | 包括存储器件的存储系统及其操作方法 | |
CN112148217B (zh) | 全闪存储系统的重删元数据的缓存方法、装置及介质 | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
KR20180019051A (ko) | 스마트 스토리지 장치 내에서 데이터 스크러빙을 실행하는 방법 | |
TW201037716A (en) | Data access method for a flash memory and storage system and controller thereof | |
CN109478171A (zh) | 提高openfabrics环境中的吞吐量 | |
CN106598548A (zh) | 存储单元读写冲突的解决方法及装置 | |
CN104166649A (zh) | 一种用于搜索引擎的缓存方法和设备 | |
CN109726147A (zh) | 使用数据保护访问带内存储器的设备和方法 |
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 |