多层单元存储器的访问方法及装置、计算设备、存储介质与流程

文档序号:25542387发布日期:2021-06-18 20:38阅读:85来源:国知局
多层单元存储器的访问方法及装置、计算设备、存储介质与流程
本申请涉及存储
技术领域
,特别涉及一种多层单元存储器的访问方法及装置、计算设备、存储介质。
背景技术
:随着科学技术的快速发展,在业务处理过程中涉及的数据量呈爆炸式增长,对存储器的存储容量提出了更高的要求。因此,增大存储器的存储容量是目前亟待解决的问题。目前,以相变存储器(phasechangememory,pcm)、自旋转移力矩存储器(sharedtransistortechnologyrandomaccessmemory,stt-ram)、及可变电阻式存储器(resistiverandom-accessmemory,rram)为代表的具有多层单元(multi-levelcell,mlc)的新型非易失存储器(non-volatilememory,nvm),由于具有存储容量可扩展性强、空闲功耗低和性价比高等优点,得到了广泛的应用。并且,随着多层单元(multi-levelcell,mlc)技术在nvm上的应用,nvm中每个存储单元能够存储至少两位二进制数,提高了nvm的存储密度,进一步地增加了nvm存储容量。但是,nvm会受到该mlc技术写性能的影响,导致应用了mlc技术的nvm的写入速度较慢。技术实现要素:本申请提供了一种多层单元存储器的访问方法及装置、计算设备、存储介质,可以解决nvm的写入速度较慢的问题。第一方面,本申请提供了一种多层单元存储器的访问方法,该方法包括:当原始待写入数据是预设类型的数据时,将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,预设的n位二进制数组合是n位二进制数的所有组合中写入速度慢的组合,其中多层单元存储器的一个存储单元可同时写入n位二进制数,n为大于1的整数;将目标待写入数据写入多层单元存储器中。当原始待写入数据是预设类型的数据时,通过将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,再将目标待写入数据写入多层单元存储器中。由于预设的n位二进制数组合是该n位二进制数的所有组合中写入速度慢的组合,通过对原始待写入数据进行转换,将该原始待写入数据转换成了写入速度较快的目标待写入数据,减小了写入该目标待写入数据所耗费的时长,提高了多层单元存储器的整体写入速度。在一种可实现方式中,将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,包括:当预设类型的数据不是指定类型的数据时,将预设类型的数据转换为指定类型的数据,按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据;当预设类型数据是指定类型的数据时,按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据。其中,预设规则可以满足:当n=2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第i/2个二进制位上的二进制数值,目标待写入数据中第j个二进制位上的二进制数值为指定类型的数据中第t-[(j+1)/2]个二进制位上的二进制数值,i为大于或等于0的偶数,j为正奇数,t为指定类型的数据所包括的二进制位的总位数。当n=3时,对于目标待写入数据中第i个二进制位,当i除以3的余数为0时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]个二进制位上的二进制数值,当i除以3的余数为1时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+r个二进制位上的二进制数值;当i除以3的余数为2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+2×r个二进制位上的二进制数值,[i/3]表示不超过i/3的最大整数。可选地,预设类型的数据包括指定数据及普通数据,预设类型的数据中的指定数据中所有位的数据全部为“1”或全部为“0”,指定类型的数据中目标数据位上的数据全部为“0”,当n=2时,指定类型的数据的所有数据位中前一半数据位均为目标数据位,当n=3时,指定类型的数据的所有数据位中前2/3数据位均为目标数据位。相应的,当预设类型的数据不是指定类型的数据时,将预设类型的数据转换为指定类型的数据,包括以下几种应用场景:在第一种应用场景中,对目标数据位上的数据全部为“1”的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”。在第二种应用场景中,对指定数据为“0”的预设类型的数据进行移位操作,使移位后的数据中目标数据位的数据全部为“0”。其中,当多层单元存储器为mlcnvm时,将预设类型的数据转换为指定类型的数据的实质为:将不是指定类型的数据转换为按照yx表示的指定类型的数据。其实现过程至少包括以下五种情况:第一种情况,当预设类型的数据为按照xy表示的数据时,可以将预设类型的数据中对应xy中x的二进制数值与对应xy中y的二进制数值交换位置,得到按照yx表示的指定类型的数据。其中,变换二进制数值位置的操作即为对二进制数执行的移位操作。该y为包括2n个二进制数值“0”的指定数据,该x为包括2n个二进制数值的普通数据,n为大于或等于0的整数,该普通数据中的二进制数值可以为“0”或“1”。第二种情况,当预设类型的数据为按照y'x'y'x'表示的数据时,可以将预设类型的数据中对应y'x'y'x'中第一个x'的二进制数值与对应y'x'y'x'中第二个y'的二进制数值交换位置,得到按照yx表示的指定类型的数据。其中,该y'为包括2n/2个二进制数值“0”的指定数据,该x'为包括2n/2个二进制数值的普通数据。第三种情况,当预设类型的数据为按照y'x'x'y'表示的数据时,可以将预设类型的数据中对应y'x'x'y'中第二个y'的二进制数值移动至该预设类型的数据的最左端,并将移动第二个y'后的数据整体向右移动2n/2个二进制位,得到按照yx表示的指定类型的数据。第四种情况,当预设类型的数据为按照x'y'y'x'表示的数据时,可以将预设类型的数据中对应x'y'y'x'中第一个x'的二进制数值移动至该预设类型的数据的最右端,并将移动第一个x'后的数据整体向左移动2n/2个二进制位,得到按照yx表示的指定类型的数据。第五种情况,当预设类型的数据为按照x'y'x'y'表示的数据时,可以将预设类型的数据中对应x'y'x'y'中第一个x'的二进制数值与对应x'y'x'y'中第一个y'的二进制数值交换位置,再将交换位置后的数据中的第二个y'的二进制数值移动至该预设类型的数据的最左端,并将移动第二个y'后的数据整体向右移动2n/2个二进制位,得到按照yx表示的指定类型的数据。当多层单元存储器为tlcnvm时,将预设类型的数据转换为指定类型的数据的实质为:将不是指定类型的数据转换为按照pps表示的指定类型的数据。其实现过程至少包括以下两种情况:第六种情况,当预设类型的数据为按照psp表示的数据时,可以将预设类型的数据中对应psp中s的二进制数值与对应psp中第二个p的二进制数值交换位置,得到按照pps表示的指定类型的数据。其中,该p为包括r个二进制数值“0”的指定数据,该s为包括r个二进制数值的普通数据,该普通数据中的二进制数值可以为“0”或“1”,且r为正整数。第七种情况,当预设类型的数据为按照spp表示的数据时,可以将预设类型的数据中对应spp中s的二进制数值移动至该预设类型的数据的最右端,并将移动s后的数据整体向左移动r个二进制位,得到按照pps表示的指定类型的数据00a。在第三种应用场景中,对指定数据为“1”的预设类型的数据进行移位操作,使移位后的预设类型的数据中目标数据位的数据全部为“1”,然后对移位后的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”;或者,对指定数据为“1”的预设类型的数据的数据全部取反,然后对取反后的预设类型的数据进行移位操作,使得移位后的数据中目标数据位的数据全部为“0”。可选地,预设类型的数据包括指定数据及普通数据,当n=2时,指定数据所包括的数据的总位数和普通数据所包括的数据的总位数相同,当n=3时,指定数据所包括的数据的总位数为普通数据所包括的数据的总位数的两倍;此时,当原始待写入数据中包括指定数据时,则可以确定原始待写入数据是预设类型的数据。并且,在写入数据后,该方法还包括:当原始待写入数据是预设类型的数据时,获取预设类型的数据对应的预设类型的数据的转换标识;在写入目标待写入数据时,也写入转换标识;当接收到读取原始待写入数据的读请求时,从多层单元存储器中读取目标待写入数据和转换标识;根据预设规则将目标待写入数据转换为指定类型的数据,根据转换标识将指定类型的数据转换为预设类型的数据,并返回预设类型的数据。在获取预设类型的数据对应的预设类型的数据的转换标识的一种可实现方式中,存储系统中可以预先存储有不同预设类型与不同转换标识的对应关系,在确定原始待写入数据包括某一预设类型的数据后,可以根据该预设类型查询该对应关系,以得到该预设类型的数据的转换标识。需要说明的是,由于预设类型的数据中的普通数据可以为“0”,也可以为“1”,因此,某一原始待写入数据所包括的预设类型的数据可能具有多种表现形式。例如原始待写入数据00000011所包括的预设类型的数据的表现形式可以为0000aaaa,也可以为00aa00aa。此时,还可以预先定义不同转换标识的优先级,当某一原始待写入所包括的预设类型的数据的表现形式有多个时,在确定预设类型的数据的转换标识时,可以将多个预设类型的数据对应的多个转换标识中优先级最高的转换标识,确定为该原始待写入所包括的预设类型的数据的转换标识。当根据预设规则将目标待写入数据转换为指定类型的数据时,当多层单元存储器的类型不同时,根据预设规则进行转换的过程需要满足的规律不同。在一种可实现方式中,当多层单元存储器为mlcnvm时,根据预设规则进行转换的过程需要满足的规律为:目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第i/2个二进制位上的二进制数值,目标待写入数据中第j个二进制位上的二进制数值为指定类型的数据中第t-[(j+1)/2]个二进制位上的二进制数值。i为大于或等于0的偶数,j为正奇数,t为目标待写入数据所包括的二进制位的总位数。在另一种可实现方式中,当多层单元存储器为tlcnvm时,根据预设规则进行转换的过程需要满足的规律为:对于目标待写入数据中第i个二进制位,当i除以3的余数为0时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]个二进制位上的二进制数值。当i除以3的余数为1时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+r个二进制位上的二进制数值。当i除以3的余数为2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+2×r个二进制位上的二进制数值。其中,[i/3]表示不超过i/3的最大整数。可选地,根据转换标识将指定类型的数据转换为转换标识所指示的预设类型的数据的实现过程包括以下几种实现场景:在第一种实现场景中,当转换标识所指示的预设类型的数据中目标数据位上的数据全部为“1”时,对该指定类型的数据全部取反,使取反后的目标数据位的数据全部为“1”,得到转换标识所指示的预设类型的数据。在第二种实现场景中,当转换标识所指示的预设类型的数据中指定数据为“0”时,对该指定类型的数据进行移位操作,使移位后的数据为转换标识所指示的预设类型的数据。并且,当多层单元存储器的类型不同时,其实现方式也不同。当多层单元存储器为mlcnvm时,将指定类型的数据转换为转换标识所指示的预设类型的数据的实质为:将按照yx表示的指定类型的数据转换为转换标识所指示的预设类型的数据。其实现过程至少包括以下五种情况:第一种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示预设类型的数据为按照xy表示的数据时,可以将指定类型的数据中对应yx中x的二进制数值与对应yx中y的二进制数值交换位置,得到按照xy表示的预设类型的数据。第二种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照y'x'y'x'表示的数据时,可以将指定类型的数据中对应yx中y的二进制数值中的后一半二进制数值,与指定类型的数据中对应yx中x的二进制数值中的前一半二进制数值交换位置,得到按照y'x'y'x'表示的预设类型的数据。第三种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照y'x'x'y'表示的数据时,可以将指定类型的数据中对应yx中y的二进制数值中的前一半二进制数值,移动至指定类型的数据的最右端,并将移动二进制数值后的指定类型的数据整体向左移动2n/2个二进制位,得到按照y'x'x'y'表示的预设类型的数据。第四种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照x'y'y'x'表示的数据时,可以将指定类型的数据中对应yx中x的二进制数值中的后一半二进制数值,移动至指定类型的数据的最左端,并将移动二进制数值后的指定类型的数据整体向右移动2n/2个二进制位,得到按照x'y'y'x'表示的预设类型的数据。第五种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照x'y'x'y'表示的数据时,可以将指定类型的数据中对应yx中y的二进制数值中的前一半二进制数值,移动至指定类型的数据的最右端,得到按照y'x'x'y'表示的数据,然后将该按照y'x'x'y'表示的数据中对应第一个y'的二进制数值与对应第一个x'的二进制数值交换位置,得到按照x'y'x'y'表示的预设类型的数据。当多层单元存储器为tlcnvm时,将指定类型的数据转换为转换标识所指示的预设类型的数据的实质为:将按照pps表示的指定类型的数据转换为转换标识所指示的预设类型的数据。其实现过程至少包括以下两种情况:第六种情况,当指定类型的数据为按照pps表示的数据,读取的转换标识所指示预设类型的数据为按照psp表示的数据时,可以将指定类型的数据中对应pps中s的二进制数值与对应pps中第二个p的二进制数值交换位置,得到按照psp表示的预设类型的数据。第七种情况,当指定类型的数据为按照pps表示的数据,读取的转换标识所指示的预设类型的数据为按照spp表示的数据时,可以将指定类型的数据中对应pps中s的二进制数值移动至指定类型的数据的最左端,并将移动s后的数据整体向右移动r个二进制位,得到按照spp表示的预设类型的数据。在第三种实现场景中,当转换标识所指示的预设类型的数据中指定数据为“1”时,对该指定类型的数据进行移位操作和取反,得到转换标识所指示的预设类型的数据。在第一种可实现方式中,可以先对指定类型的数据进行移位操作,得到转换标识所指示的预设类型的数据的相反数据,然后对该相反数据全部取反,得到转换标识所指示的预设类型的数据。在第二种可实现方式中,可以先对指定类型的数据进行全部取反,然后对取反后的数据进行移位操作,得到转换标识所指示的预设类型的数据。该第三种实现场景的第二种可实现方式的实现过程,可以相应参考该第三种实现场景的第一种可实现方式的实现过程,此处不再赘述。第二方面,本申请提供了一种多层单元存储器的访问装置,该装置包括:转换模块,用于当原始待写入数据是预设类型的数据时,将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,预设的n位二进制数组合是n位二进制数的所有组合中写入速度慢的组合,其中多层单元存储器的一个存储单元可同时写入n位二进制数,n为大于1的整数;写入模块,用于将目标待写入数据写入多层单元存储器中。可选地,转换模块,具体用于:当预设类型的数据不是指定类型的数据时,将预设类型的数据转换为指定类型的数据,按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据;当预设类型数据是指定类型的数据时,按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据。可选地,预设类型的数据包括指定数据及普通数据,当n=2时,指定数据所包括的数据的总位数和普通数据所包括的数据的总位数相同,当n=3时,指定数据所包括的数据的总位数为普通数据所包括的数据的总位数的两倍;当原始待写入数据中包括指定数据时,则确定原始待写入数据是预设类型的数据。可选地,预设类型的数据包括指定数据及普通数据,预设类型的数据中的指定数据中所有位的数据全部为“1”或全部为“0”,指定类型的数据中目标数据位上的数据全部为“0”,当n=2时,指定类型的数据的所有数据位中前一半数据位均为目标数据位,当n=3时,指定类型的数据的所有数据位中前2/3数据位均为目标数据位。相应的,转换模块,具体用于:对指定数据为“0”的预设类型的数据进行移位操作,使移位后的数据中目标数据位的数据全部为“0”;对目标数据位上的数据全部为“1”的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”;对指定数据为“1”的预设类型的数据进行移位操作,使移位后的预设类型的数据中目标数据位的数据全部为“1”,然后对移位后的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”;或者,对指定数据为“1”的预设类型的数据的数据全部取反,然后对取反后的预设类型的数据进行移位操作,使得移位后的数据中目标数据位的数据全部为“0”。可选地,装置还包括:获取模块,用于当原始待写入数据是预设类型的数据时,获取预设类型的数据对应的预设类型的数据的转换标识;写入模块,还用于在写入目标待写入数据时,也写入转换标识;读取模块,用于当接收到读取原始待写入数据的读请求时,从多层单元存储器中读取目标待写入数据和转换标识;转换模块,用于根据预设规则将目标待写入数据转换为指定类型的数据,根据转换标识将指定类型的数据转换为预设类型的数据,并返回预设类型的数据。可选地,预设规则满足:当n=2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第i/2个二进制位上的二进制数值,目标待写入数据中第j个二进制位上的二进制数值为指定类型的数据中第t-[(j+1)/2]个二进制位上的二进制数值,i为大于或等于0的偶数,j为正奇数,t为指定类型的数据所包括的二进制位的总位数。当n=3时,对于目标待写入数据中第i个二进制位,当i除以3的余数为0时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]个二进制位上的二进制数值,当i除以3的余数为1时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+r个二进制位上的二进制数值;当i除以3的余数为2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+2×r个二进制位上的二进制数值,[i/3]表示不超过i/3的最大整数。第三方面,本申请提供了一种计算设备,包括处理器和存储器;在处理器执行存储器存储的计算机程序时,计算设备执行第一方面的多层单元存储器的访问方法。第四方面,本申请提供一种存储介质,当存储介质中的指令被处理器执行时,实现第一方面的多层单元存储器的访问方法。附图说明图1是本申请实施例提供的一种多层单元存储器的访问方法涉及的实施环境的结构示意图;图2是本申请实施例提供的另一种多层单元存储器的访问方法涉及的实施环境的结构示意图;图3是本申请实施例提供的一种写操作不对称性的示意图;图4是本申请实施例提供的一种多层单元存储器的访问方法的流程图;图5是本申请实施例提供的一种按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据的示意图;图6是本申请实施例提供的另一种按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据的示意图;图7是本申请实施例提供的另一种多层单元存储器的访问方法的流程图;图8是本申请实施例提供的一种多层单元存储器的访问装置的结构示意图;图9是本申请实施例提供的另一种多层单元存储器的访问装置的结构示意图;图10是本申请实施例提供的一种计算设备的结构示意图;图11是本申请实施例提供的另一种计算设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。图1是本申请实施例提供的多层单元存储器的访问方法涉及的实施环境的结构示意图。如图1所示,该实施环境包括:主机01和存储系统02。主机01和存储系统02之间可以通过有线或无线网络进行连接,以实现两者之间的数据传输。主机01可以向存储系统02发送输入/输出(input/output,i/o)请求,该i/o请求包括写数据请求和读数据请求。存储系统02接收i/o请求之后,可以根据该i/o请求访问存储器,以实现主机01通过i/o请求所请求的写操作或读操作。在一种可实现方式中,如图1所示,该存储系统02包括:处理器021和存储器022。该存储器022用于存储写数据请求写入的数据等。该存储器022可以包括多个存储单元,每个存储单元中可以存储至少两位二进制数,即该存储器022可以为多层单元存储器。该处理器021用于实现本申请实施例提供的多层单元存储器的访问方法的功能。该处理器021可以是硬件芯片,该硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。在另一种可实现方式中,如图2所示,该存储系统02包括:处理器021、存储器022和内存023。该存储器022用于存储可执行代码、存储执行应用程序时产生的数据、或写数据请求写入的数据等。该存储器022可以包括多个存储单元,每个存储单元中可以存储至少两位二进制数,即该存储器022可以为多层单元存储器。内存023用于暂时存放处理器021运行时需要的数据,且存储器022中存储的可执行代码可被读取到内存023中,并被处理器021运行,以实现该可执行代码对应的功能。类似的,该存储器022中存储的数据可被读取到内存中,并被处理器021访问,以根据该数据执行相应的处理。例如,本申请实施例提供的多层单元存储器的访问方法可通过运行可执行代码实现,且该多层单元存储器的访问方法对应的可执行代码可被存储在存储器022中,当该多层单元存储器的访问方法对应的可执行代码被读入内存023中并被处理器021运行时,可实现该多层单元存储器的访问方法的功能。该处理器021可以是通用处理器,例如,中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np),或者,cpu和np的组合。另外,在上述两种可实现方式中,处理器021还可以实现根据i/o请求对i/o请求进行存储管理的功能。例如,处理器021可以根据优先级等调度策略对i/o请求进行调度,处理器021可以根据i/o请求确定i/o请求涉及的数据在存储器022中的存储地址,以及,处理器021还可以根据i/o请求和i/o请求涉及的数据,控制存储器022工作。进一步地,处理器021还可以对待写入数据进行数据处理,并将经过数据处理后的待写入数据发送至存储器022,以指示存储器022存储该经过数据处理后的待写入数据。示例地,在大数据应用场景中,可以使用该处理器021的数据处理功能对主机01发送的数据进行数据处理,并将经过数据处理后的数据存储在存储器022中。可选地,在本申请实施例中,多层单元存储器可以为应用了mlc技术的nvm(即mlcnvm,也称多层单元存储器),即该存储器中每个存储单元可以存储两位二进制数。例如,该存储器可以为应用了mlc技术的pcm(即mlcpcm),可以为应用了mlc技术的stt-ram(即mlcstt-ram),也可以为应用了mlc技术的rram(即mlcrram),还可以为上述种类的存储器的组合等。或者,多层单元存储器可以为应用了三层单元(trinarylevelcell,tlc)技术的nvm(即tlcnvm,也称多层单元存储器),即该tlcnvm中每个存储单元可以存储三位二进制数。例如,该存储器可以为应用了tlc技术的pcm(即tlcpcm),可以为应用了tlc技术的stt-ram(即tlcstt-ram),也可以为应用了tlc技术的rram(即tlcrram),还可以为上述种类的存储器的组合等。mlcnvm在存储数据的过程中,由于mlcnvm会针对不同的数据写入情况采用不同的编码方式,且该不同的编码方式对数据量相同的数据进行编码所耗费的编码时长不同,导致在mlcnvm中按照不同数据写入情况存储数据所使用的存储时长不同。其中,数据写入情况可以由存储单元在写入数据前存储单元的初始状态和写入数据后存储单元的目标状态表示,即该数据写入情况用于表示存储单元中存储的数据从初始状态刷新为目标状态的变化过程。例如,在mlcnvm中,每个存储单元能够存储两个比特的数据。在向存储单元写入数据之前,该存储单元中存储的是01(二进制),即该存储单元的初始状态表示为01。在写入数据之后,该存储单元中存储的是11(二进制),即该存储单元的目标状态表示为11。因此,该存储单元的数据写入情况为:将存储单元中存储的01刷新为11。mlcnvm中针对不同数据写入情况所使用的存储时长不同的特性可称为mlcnvm的写操作不对称性。该写操作不对称性的表现请参考图3,该图3中位于箭头起点的数字表示存储单元的初始状态,位于箭头终点的数字表示存储单元的目标状态,箭头上的数字表示将该存储单元中存储的数据由初始状态刷新为目标状态时的写入速度的归一化值。例如,将00刷新为10时,其写入速度的归一化值为1.0,将10刷新为00时,其写入速度的归一化值为0.3。根据该图3可以看出,mlcnvm对不同的数据写入情况的存储时长不同。并且,当一次写入过程中需要向多个存储单元同时写入数据时,根据“木桶原理”可知,在该次数据写入过程的写入速度由多个存储单元中写入速度最慢的存储单元的写入速度决定,因此,导致mlcnvm的写入速度整体较慢。类似的,tlcnvm也存在写操作不对称的问题,因此,该tlcnvm的写入速度整体也较慢。本申请实施例提供了一种多层单元存储器的访问方法,当原始待写入数据是预设类型的数据时,可以将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,再将目标待写入数据写入多层单元存储器中。由于预设的n位二进制数组合是该n位二进制数的所有组合中写入速度慢的组合,通过对原始待写入数据进行转换,将该原始待写入数据转换成了写入速度较快的目标待写入数据,减小了写入该目标待写入数据所耗费的时长,提高了多层单元存储器的整体写入速度。在一种可实现方式中,预设的n位二进制数组合可以为二进制数组成的所有二进制数组合中,写速度最慢的二进制数组合。例如,对于mlcnvm,该预设的n位二进制数组合可以为10,对于tlcnvm,该预设的n位二进制数组合可以为011和100。下面分别以多层单元存储器为mlcnvm和tlcnvm为例,对该多层单元存储器的访问方法的实现过程进行说明。图4为本申请实施例提供的一种多层单元存储器的访问方法的流程图。如图4所示,该多层单元存储器的访问方法包括以下步骤:步骤401、接收写数据请求,并获取待写入多层单元存储器中的原始待写入数据。写数据请求用于请求向多层单元存储器中写入原始待写入数据。存储系统接收该写数据请求后,可以根据该写数据请求获取原始待写入数据。需要说明的是,在写入待写入数据的过程中,通常是分批次向多层单元存储器中写入数据,且每批次向多层单元存储器中写入指定大小的数据。因此,存储系统获取待写入数据后,通常先将待写入数据写入写缓存中,然后按照每批次允许写入多层单元存储器中的指定大小的数据量(例如8比特),每次从写缓存中取出指定大小的待写入数据,再将取出的待写入数据写入多层单元存储器中。在本申请实施例中,以原始待写入数据为每次取出的指定大小的待写入数据为例进行说明。在获取原始待写入数据后,为保证向多层单元存储器中写入数据的写入速度,存储系统可以检测该原始待写入数据中是否包括预设的n位二进制数组合。当该原始待写入数据中不包括预设的n位二进制数组合,存储系统可以将该原始待写入数据直接写入多层单元存储器中。当该原始待写入数据中包括预设的n位二进制数组合时,存储系统可以先对该原始待写入数据进行数据类型转换,将该原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,再将该目标待写入数据写入多层单元存储器中。其中,预设的n位二进制数组合是该n位二进制数的所有组合中写入速度慢的组合。在一种可实现方式中,预设的n位二进制数组合可以为二进制数组成的所有二进制数组合中,写速度最慢的二进制数组合。例如,对于mlcnvm,该预设的n位二进制数组合可以为10,对于tlcnvm,写入性能差的预设的n位二进制数组合可以为011和100。下面步骤402至步骤406为对原始待写入数据进行数据类型转换的实现过程的描述。步骤402、判断原始待写入数据是否是预设类型的数据。在一种可实现方式中,预设类型的数据可以包括指定数据和普通数据。在写入mlcnvm的预设类型的数据中,即n=2时,指定数据所包括的数据的总位数与普通数据所包括的总位数相同。在写入tlcnvm的预设类型的数据中,即n=3时,指定数据所包括的数据的总位数为普通数据所包括的总位数的两倍。其中,预设类型的数据中的指定数据包括位于该原始待写入数据中一个或多个指定数据位上的指定数值,相应的,预设类型的数据中的普通数据包括位于该原始待写入数据中一个或多个其他数据位上的普通数值,且该普通数值的取值不限。例如,所有指定数据位上的指定数值可以全部为“1”或全部“0”,即指定数据中所有位的数据可以全部为“1”或全部为“0”,且不存在某一指定数据中同时包括“1”和“0”的情况。该预设类型的数据中的指定数据位可以根据应用需求确定。例如,对于写入mlcnvm的具有多个数据位的原始待写入数据,按照数据位由左向右排列的顺序,该原始待写入数据前半部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照yx或zx表示的数据。或者,该原始待写入数据后半部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照xy或xz表示的数据。或者,该原始待写入数据的第1/4部分的所有数据位和位于第3/4部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照y'x'y'x'或z'x'z'x'表示的数据。或者,该原始待写入数据的第2/4部分的所有数据位和位于第4/4部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照x'y'x'y'或x'z'x'z'表示的数据。或者,该原始待写入数据的奇数位可以均为指定数据位,此时,该原始待写入数据可以为以y”x”为循环单元或以z”x”为循环单元循环排列的数据。或者,该原始待写入数据的偶数位可以均为指定数据位,此时,该原始待写入数据可以为以x”y”为循环单元或以x”z”为循环单元循环排列的数据。或者,该原始待写入数据的第1/4部分的所有数据位和位于第4/4部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照y'x'x'y'或z'x'x'z'表示的数据。或者,该原始待写入数据的第2/4部分的所有数据位和位于第3/4部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照x'y'y'x'或x'z'z'x'表示的数据。其中,该y为包括2n个二进制数值“0”的指定数据,该z为包括2n个二进制数值“1”的指定数据,该x为包括2n个二进制数值的普通数据,该y'为包括2n/2个二进制数值“0”的指定数据,该z'为包括2n/2个二进制数值“1”的指定数据,x'为包括2n/2个二进制数值的普通数据,该y”为包括1个二进制数值“0”的指定数据,该z”为包括1个二进制数值“1”的指定数据,x”为包括1个二进制数值的普通数据。n为大于或等于0的整数,该普通数据中的二进制数值可以为“0”或“1”。示例地,当预设类型的数据为8位的二进制数时,该预设类型的数据可以为:0000aaaa,aaaa0000,00aa00aa,0a0a0a0a,a0a0a0a0,00aaaa00,aa0000aa,aa00aa00,1111aaaa,aaaa1111,11aa11aa,1a1a1a1a,a1a1a1a1,11aaaa11,aa1111aa,aa11aa11。0000aaaa指该数据的前半部分的所有数据位上的数值均为二进制数值“0”。aaaa0000指该数据的后半部分的所有数据位上的数值均为二进制数值“0”。00aa00aa指该数据的第1/4部分的所有数据位和位于第3/4部分的所有数据位上的数值均为二进制数值“0”。00aaaa00指该数据的第1/4部分的所有数据位和位于第4/4部分的所有数据位上的数值均为二进制数值“0”。aa0000aa指该数据的第2/4部分的所有数据位和位于第3/4部分的所有数据位上的数值均为二进制数值“0”。aa00aa00指该数据的第2/4部分的所有数据位和位于第4/4部分的所有数据位上的数值均为二进制数值“0”。1111aaaa指该数据的前半部分的所有数据位上的数值均为二进制数值“1”。aaaa1111指该数据的后半部分的所有数据位上的数值均为二进制数值“1”。11aa11aa指该数据的第1/4部分的所有数据位和位于第3/4部分的所有数据位上的数值均为二进制数值“1”。11aaaa11指该数据的第1/4部分的所有数据位和位于第4/4部分的所有数据位上的数值均为二进制数值“1”。aa1111aa指该数据的第2/4部分的所有数据位和位于第3/4部分的所有数据位上的数值均为二进制数值“1”。aa11aa11指该数据的第2/4部分的所有数据位和位于第4/4部分的所有数据位上的数值均为二进制数值“1”。并且,在该多种预设类型的数据中,“a”可以为“1”或“0”。又例如,对于写入tlcnvm的具有多个数据位的原始待写入数据,按照数据位由左向右排列的顺序,该原始待写入数据第1/3部分和第2/3部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照pps或qqs表示的数据。或者,该原始待写入数据第1/3部分和第3/3部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照psp或qsq表示的数据。或者,该原始待写入数据的第2/3部分和第3/3部分的所有数据位可以均为指定数据位,此时,该原始待写入数据可以为按照spp或sqq表示的数据。其中,该p为包括r个二进制数值“0”的指定数据,该q为包括r个二进制数值“1”的指定数据,该s为包括r个二进制数值的普通数据,该普通数据中的二进制数值可以为“0”或“1”,且r为正整数。示例地,当预设类型的数据为3位的二进制数时,该预设类型的数据可以为:00a,0a0,a00,11a,1a1和a11。00a为按照pps表示的数据。0a0为按照psp表示的数据。a00为按照spp表示的数据。11a为按照qqs表示的数据。1a1为按照qsq表示的数据。a11为按照sqq表示的数据。其中,“a”可以为“1”或“0”。由上可知,在预设类型的数据中,该指定数据起到对该预设类型的数据进行标记的作用,因此,判断原始待写入数据是否是预设类型的数据的实现过程,可以包括:判断原始待写入数据中是否包括该预设类型应包括的指定数据,当原始待写入数据中包括该预设类型应包括的指定数据时,则确定原始待写入数据是该预设类型的数据。在一种可实现方式中,判断原始待写入数据是否是预设类型应包括的指定数据的过程,可以通过模板匹配的方式实现。其具体为:将原始待写入数据分别与包括有不同指定数据的多个数据模板序列做逻辑与运算,当原始待写入数据与某一数据模板序列的逻辑与运算的结果为1时,确定该原始待写入数据包括该某一数据模板序列所包括的指定数据,即确定该原始待写入数据是包括该指定数据的预设类型的数据。并且,由于预设类型的数据包括指定数据和普通数据,且在判断数据中是否包括指定数据时,无需关心该数据中包含什么样的普通数据,因此,包含有同一指定数据的数据模板序列可以有多个,且该多个数据模板序列包括的普通数据不同。示例地,对于某一预设类型的数据0000aaaa,该预设类型的数据包括的指定数据指示数据的前半部分的所有数据位上的数值均为二进制数值“0”,因此,所有前四位均为0的数据模板序列均为包括该指定数据的数据模板序列。例如,00000000、00000001、00000010、00000011、00000100、00000101、00000110、00000111、00001000、00001001、00001010、00001011、00001100、00001101、00001110和00001111均为包括该指定数据的数据模板序列。相应的,当原始待写入数据与该多个数据模板序列中的任一个的逻辑与运算的结果为1时,确定该原始待写入数据包括该指定数据,进而可以确定该原始待写入数据是预设类型的数据0000aaaa。需要说明的是,上述对预设类型的描述内容为对该预设类型的举例,实际应用中,该预设类型的种类可以根据实际需要进行设置,本申请实施例对其不做具体限定。并且,当原始待写入数据不是预设类型的数据时,可以直接将原始待写入数据写入多层单元存储器中。步骤403、当原始待写入数据是预设类型的数据时,获取预设类型的数据对应的预设类型的数据的转换标识。根据步骤402的描述可知,预设类型可以有多种,因此,可以采用不同的转换标识对不同的预设类型进行标识,以便于对包括不同预设类型的原始待写入数据进行区分。在一种可实现方式中,存储系统中可以预先存储有不同预设类型与不同转换标识的对应关系,在确定原始待写入数据包括某一预设类型的数据后,可以根据该预设类型查询该对应关系,以得到该预设类型的数据的转换标识。需要说明的是,在一个转换标识能够唯一标识一种预设类型的数据的前提下,每种预设类型的数据对应的转换标识可以根据需要进行定义。可选地,该转换标识可以采用二进制数表示,且该二进制数的总位数m与预设类型的总种类数n可以满足:2m大于或等于(n+1),这样就能够使用每个转换标识唯一地标识一种预设类型的数据。表1预设类型的数据转换标识预设类型的数据转换标识0000aaaa001aaaa1111101aaaa000001011aa11aa11000aa00aa0111111aaaa100其他000示例地,表1示出了具有8个二进制位的原始待写入数据可能包括的6种预设类型的数据与转换标识的对应关系。该6种预设类型的数据分别为:0000aaaa、aaaa0000、00aa00aa、aaaa1111、11aa11aa和1111aaaa。该表1中预设类型的数据所表示的含义,可以相应参考步骤402中的描述。根据表1可以看出每个转换标识可以唯一地标识6种预设类型中的一种预设类型的数据。示例地,表2示出了具有8个二进制位的原始待写入数据可能包括的14种预设类型的数据与转换标识的对应关系。该14种预设类型的数据分别为:0000aaaa、aaaa0000、00aa00aa、0a0a0a0a、00aaaa00、aa0000aa、aa00aa00、aaaa1111、11aa11aa、1111aaaa、1a1a1a1a、11aaaa11、aa1111aa和aa11aa11。该表2中预设类型的数据所表示的含义,可以相应参考步骤402中的描述。根据表2可以看出每个转换标识可以唯一地标识14种预设类型中的一种预设类型的数据。表2预设类型的数据转换标识预设类型的数据转换标识0000aaaa0001aaaa11111000aaaa0000001011aa11aa100100aa00aa00111111aaaa10100a0a0a0a01001a1a1a1a101100aaaa00010111aaaa111100aa0000aa0110aa1111aa1101aa00aa000111aa11aa111110其他0000示例地,表3示出了具有3个二进制位的原始待写入数据可能包括的6种预设类型的数据与转换标识的对应关系。该6种预设类型的数据分别为:00a,0a0,a00,11a,1a1和a11。该表3中预设类型的数据所表示的含义,可以相应参考步骤402中的描述。根据表3可以看出每个转换标识可以唯一地标识6种预设类型中的一种预设类型的数据。表3预设类型的数据转换标识预设类型的数据转换标识00a00111a1010a00101a1110a00011a11100其他000需要说明的是,由于预设类型的数据中的普通数据可以为“0”,也可以为“1”,因此,某一原始待写入数据所包括的预设类型的数据可能具有多种表现形式。例如原始待写入数据00000011所包括的预设类型的数据的表现形式可以为0000aaaa,也可以为00aa00aa。此时,还可以预先定义不同转换标识的优先级,当某一原始待写入所包括的预设类型的数据的表现形式有多个时,在确定预设类型的数据的转换标识时,可以将多个预设类型的数据对应的多个转换标识中优先级最高的转换标识,确定为该原始待写入所包括的预设类型的数据的转换标识。步骤404、判断预设类型的数据是否为指定类型的数据。指定类型的数据中目标数据位上的数据全部为“0”。该目标数据位可以根据多层单元存储器的类型确定。在一种实现方式中,当多层单元存储器为mlcnvm,即n=2时,假设预设类型的数据共包括2m位数据位,则该指定类型的数据可以为数据中前m位的数据全部为“0”的数据,即指定类型的数据的所有数据位中前一半数据位均为目标数据位。此时,按照yx表示的数据为指定类型的数据。例如,0000aaaa为指定类型的数据。在另一种可实现方式中,当多层单元存储器为tlcnvm,即n=3时,假设预设类型的数据共包括3m位数据位,则该指定类型的数据可以为数据中前2m位的数据全部为“0”的数据,即指定类型的数据的所有数据位中前2/3数据位均为目标数据位。此时,按照pps表示的数据为指定类型的数据。例如,00a为指定类型的数据。根据步骤402的描述可知,预设类型的数据中的指定数据中所有位的数据可以全部为“1”或全部为“0”,且在步骤402中已确定指定数据在预设类型的数据中的位置。因此,在该步骤404的一种可实现方式中,可以对预设类型的数据中的指定数据进行检测,以确定该指定数据中所有位的数据是否全部为“0”,当指定数据中所有位的数据全部为“0”时,确定该预设类型的数据为指定类型的数据。在该步骤404的另一种可实现方式中,对于预设类型的数据对应的转换标识,可以预先对数据类型为预设类型且为指定类型的数据对应的转换标识进行标记,在确定预设类型的数据的转换标识后,可以查看该转换标识是否携带标记,当该转换标识携带有标记时,确定该预设类型的数据为指定类型的数据。在该步骤404的再一种可实现方式中,由于步骤402中使用数据模板序列确定原始待写入数据是否是预设类型的数据,因此,可以预先对类型为指定类型的数据模板序列进行标记,在确定原始待写入数据与某一数据模板序列的逻辑与运算的运算结果为1后,可以查看该数据模板序列是否携带标记,当该数据模板序列携带有标记时,确定根据该数据模板序列确定预设类型的数据为指定类型的数据。步骤405、当预设类型的数据不是指定类型的数据时,将预设类型的数据转换为指定类型的数据。当预设类型的数据不是指定类型的数据时,需要先将预设类型的数据转换为指定类型的数据,然后执行步骤406。当预设类型的数据是指定类型的数据时,在执行完步骤404后,可以直接执行步骤406。并且,当预设类型的数据的数据类型不同时,该步骤405的实现过程不同,下面对其分别进行说明:在第一种实现场景中,当预设类型的数据中目标数据位上的数据全部为“1”时,对该预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”。示例地,假设多层单元存储器为mlcnvm,预设类型的数据为1111aaaa,该a为0或1,则可以1111aaaa中所有二进制数值执行取反操作,得到0000bbbb,该0000bbbb即为目标数据位的数据全部为“0”的指定类型的数据。其中,b由对a取反得到。在第二种实现场景中,当预设类型的数据中指定数据为“0”时,对该预设类型的数据进行移位操作,使移位后的数据中目标数据位的数据全部为“0”。并且,当多层单元存储器的类型不同时,其实现方式也不同。下面分别以多层单元存储器为mlcnvm和tlcnvm为例,对其实现方式进行说明。当多层单元存储器为mlcnvm时,将预设类型的数据转换为指定类型的数据的实质为:将不是指定类型的数据转换为按照yx表示的指定类型的数据。其实现过程至少包括以下五种情况:第一种情况,当预设类型的数据为按照xy表示的数据时,可以将预设类型的数据中对应xy中x的二进制数值与对应xy中y的二进制数值交换位置,得到按照yx表示的指定类型的数据。其中,变换二进制数值位置的操作即为对二进制数执行的移位操作。该y为包括2n个二进制数值“0”的指定数据,该x为包括2n个二进制数值的普通数据,n为大于或等于0的整数,该普通数据中的二进制数值可以为“0”或“1”。示例地,假设y为包括4个二进制数值“0”的指定数据,x为包括4个二进制数值a的普通数据,且a为“0”或“1”,即按照xy表示的预设类型的数据为aaaa0000,则可以将aaaa0000中后面四个二进制数值“0”与前面四个二进制数值a交换位置,得到按照yx表示的指定类型的数据0000aaaa。第二种情况,当预设类型的数据为按照y'x'y'x'表示的数据时,可以将预设类型的数据中对应y'x'y'x'中第一个x'的二进制数值与对应y'x'y'x'中第二个y'的二进制数值交换位置,得到按照yx表示的指定类型的数据。其中,该y'为包括2n/2个二进制数值“0”的指定数据,该x'为包括2n/2个二进制数值的普通数据。示例地,假设y'为包括2个二进制数值“0”的指定数据,x'为包括2个二进制数值a的普通数据,且a为“0”或“1”,即按照y'x'y'x'表示的预设类型的数据为00aa00aa,则可以将00aa00aa中第二位和第三位上的二进制数值a,与第四位和第五位上的二进制数值“0”交换位置,得到按照yx表示的指定类型的数据0000aaaa。第三种情况,当预设类型的数据为按照y'x'x'y'表示的数据时,可以将预设类型的数据中对应y'x'x'y'中第二个y'的二进制数值移动至该预设类型的数据的最左端,并将移动第二个y'后的数据整体向右移动2n/2个二进制位,得到按照yx表示的指定类型的数据。示例地,假设y'为包括2个二进制数值“0”的指定数据,x'为包括2个二进制数值a的普通数据,且a为“0”或“1”,即按照y'x'x'y'表示的预设类型的数据为00aaaa00,则可以将00aaaa00中第六位和第七位上的二进制数值“0”,移动至该预设类型的数据的最左端,并将移位后的数据整体向右移动2个二进制位,得到按照yx表示的指定类型的数据0000aaaa。第四种情况,当预设类型的数据为按照x'y'y'x'表示的数据时,可以将预设类型的数据中对应x'y'y'x'中第一个x'的二进制数值移动至该预设类型的数据的最右端,并将移动第一个x'后的数据整体向左移动2n/2个二进制位,得到按照yx表示的指定类型的数据。示例地,假设y'为包括2个二进制数值“0”的指定数据,x'为包括2个二进制数值a的普通数据,且a为“0”或“1”,即按照x'y'y'x'表示的预设类型的数据为aa0000aa,则可以将aa0000aa中第零位和第一位上的二进制数值a,移动至该预设类型的数据的最右端,并将移位后的数据整体向左移动2个二进制位,得到按照yx表示的指定类型的数据0000aaaa。第五种情况,当预设类型的数据为按照x'y'x'y'表示的数据时,可以将预设类型的数据中对应x'y'x'y'中第一个x'的二进制数值与对应x'y'x'y'中第一个y'的二进制数值交换位置,再将交换位置后的数据中的第二个y'的二进制数值移动至该预设类型的数据的最左端,并将移动第二个y'后的数据整体向右移动2n/2个二进制位,得到按照yx表示的指定类型的数据。示例地,假设y'为包括2个二进制数值“0”的指定数据,x'为包括2个二进制数值a的普通数据,且a为“0”或“1”,即按照x'y'x'y'表示的预设类型的数据为aa00aa00,则可以将aa00aa00中第零位和第一位上的二进制数值a,与第二位和第三位上的二进制数值“0”交换位置,得到00aaaa00,再将00aaaa00中第六位和第七位上的二进制数值“0”,移动至00aaaa00的最左端,并将移位后的数据整体向右移动2个二进制位,得到按照yx表示的指定类型的数据0000aaaa。当多层单元存储器为tlcnvm时,将预设类型的数据转换为指定类型的数据的实质为:将不是指定类型的数据转换为按照pps表示的指定类型的数据。其实现过程至少包括以下两种情况:第六种情况,当预设类型的数据为按照psp表示的数据时,可以将预设类型的数据中对应psp中s的二进制数值与对应psp中第二个p的二进制数值交换位置,得到按照pps表示的指定类型的数据。其中,该p为包括r个二进制数值“0”的指定数据,该s为包括r个二进制数值的普通数据,该普通数据中的二进制数值可以为“0”或“1”,且r为正整数。示例地,假设p为包括1个二进制数值“0”的指定数据,s为包括1个二进制数值a的普通数据,且a为“0”或“1”,即按照psp表示的预设类型的数据为0a0,则可以将0a0中第二个二进制数值“0”与二进制数值“a”交换位置,得到按照pps表示的指定类型的数据00a。第七种情况,当预设类型的数据为按照spp表示的数据时,可以将预设类型的数据中对应spp中s的二进制数值移动至该预设类型的数据的最右端,并将移动s后的数据整体向左移动r个二进制位,得到按照pps表示的指定类型的数据00a。示例地,假设p为包括1个二进制数值“0”的指定数据,s为包括1个二进制数值a的普通数据,且a为“0”或“1”,即按照spp表示的预设类型的数据为a00,则可以将a00中二进制数值“a”移动至该预设类型的数据的最右端,得到按照pps表示的指定类型的数据00a。在第三种实现场景中,当预设类型的数据中指定数据为“1”时,可以对该预设类型的数据进行移位操作和取反,以得到目标数据位的数据全部为“0”的指定类型的数据。在第一种可实现方式中,可以先对指定数据为“1”的预设类型的数据进行移位操作,使移位后的预设类型的数据中目标数据位的数据全部为“1”,然后对移位后的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”。当多层单元存储器为mlcnvm时,将预设类型的数据转换为指定类型的数据的实质为:先通过移位操作将预设类型的数据转换为按照zx表示的数据,然后通过取反将按照zx表示的数据转换为按照ym表示的指定类型的数据。y包括的二进制数由对z包括的二进制数取反得到,即z为包括2n个二进制数值“1”的指定数据。m包括的二进制数由对x包括的二进制数取反得到,即该m为包括2n个二进制数值的普通数据。其中,通过移位操作将预设类型的数据转换为按照zx表示的数据的实现过程,可以相应参考第二种实现场景中移位操作的实现过程。例如,当预设类型的数据为按照xz表示的数据时,可以将预设类型的数据中对应xz中x的二进制数值与对应xz中z的二进制数值交换位置,得到按照zx表示的数据。类似的,当预设类型的数据为按照z'x'z'x'、z'x'x'z'、x'z'z'x'和x'z'x'z'等其他形式表示的数据时,其移位操作的实现过程可以相应参考第二种实现场景中移位操作的实现过程,此处不再赘述。当多层单元存储器为tlcnvm时,将预设类型的数据转换为指定类型的数据的实质为:先将预设类型的数据转换为按照qqs表示的数据,然后将按照qqs表示的数据转换为按照ppu表示的指定类型的数据。u包括的二进制数由对s包括的二进制数取反得到。其中,通过移位操作将预设类型的数据转换为按照qqs表示的数据的实现过程,可以相应参考第二种实现场景中移位操作的实现过程。例如,当预设类型的数据为按照qsq表示的数据时,可以将预设类型的数据中对应qsq中s的二进制数值与对应qsq中第二个q的二进制数值交换位置,得到按照qqs表示的数据。类似的,当预设类型的数据为按照spp等其他形式表示的数据时,其移位操作的实现过程可以相应参考第二种实现场景中移位操作的实现过程,此处不再赘述。在第二种可实现方式中,可以先对指定数据为“1”的预设类型的数据中的数据全部取反,然后对取反后的预设类型的数据进行移位操作,使得移位后的数据中目标数据位的数据全部为“0”。该第三种实现场景的第二种可实现方式的实现过程,可以相应参考该第三种实现场景的第一种可实现方式的实现过程,此处不再赘述。需要说的是,在完成预设类型的数据到指定类型的数据的转换后,可以记录该转换规则,以便于后续在读取过程中根据该转换规则,将根据原始读出数据转换得到的指定类型的数据转换为预设类型的数据,使得输出至主机的数据为主机原始写入的数据,保证读取的数据的准确性。步骤406、按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据。多层单元存储器的一个存储单元中可以同时写入n位二进制数,因此,当指定类型的数据中包括有待写入某一存储单元的数据为预设的n位二进制数组合时,可以确定该指定类型的数据包括预设的n位二进制数组合,可以将该指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据,以保证向存储单元中写入数据的写入速度。当指定类型的数据中不包括有预设的n位二进制数组合时,无需执行该步骤406。在将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据时,可以按照预设规则对指定类型的数据中的数值执行移位操作实现。并且,当多层单元存储器的类型不同时,预设规则需要满足的规律不同。在一种可实现方式中,当多层单元存储器为mlcnvm时,该预设规则应符合的规律为:目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第i/2个二进制位上的二进制数值,目标待写入数据中第j个二进制位上的二进制数值为指定类型的数据中第t-[(j+1)/2]个二进制位上的二进制数值。i为大于或等于0的偶数,j为正奇数,t为指定类型的数据所包括的二进制位的总位数。示例地,假设指定类型的数据为8位二进制数0000aaaa,对该指定类型的数据执行第一指定移位操作的过程请参考图5,目标待写入数据中第0、2、4和6个二进制位上的二进制数值分别为指定类型的数据中第0、1、2和3个二进制位上的二进制数值,目标待写入数据中第1、3、5和7个二进制位上的二进制数值分别为指定类型的数据中第7、6、5和4个二进制位上的二进制数值,且该目标待写入数据中第0、2、4和6个二进制位上的二进制数值均为“0”,目标待写入数据中第1、3、5和7个二进制位上的二进制数值均为a,此时,将指定类型的数据变换成了不包括预设的n位二进制数组合的目标待写入数据0a0a0a0a。在该目标待写入数据0a0a0a0a中,写入每个存储单元中的数据均为0a,避免了写入存储单元中的数据为10的情况出现,因此,能够有效保证向多层单元存储器中写入数据时的写入速度。在另一种可实现方式中,当多层单元存储器为tlcnvm时,该预设规则应符合的规律为:对于目标待写入数据中第i个二进制位,当i除以3的余数为0时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]个二进制位上的二进制数值。当i除以3的余数为1时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+r个二进制位上的二进制数值。当i除以3的余数为2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+2×r个二进制位上的二进制数值。其中,[i/3]表示不超过i/3的最大整数。示例地,假设指定类型的数据为9位二进制数000000a0a,对该指定类型的数据执行第三指定移位操作的过程请参考图6,目标待写入数据中第0至8个二进制位上的二进制数值分别为指定类型的数据中第0、3、6、1、4、7、2、5和8个二进制位上的二进制数值,此时,将指定类型的数据变换成了不包括预设的n位二进制数组合的目标待写入数据00a00000a。在该目标待写入数据00a00000a中,写入每个存储单元中的数据既不是011也不是100,避免了写入存储单元中的数据为011和100的情况出现,因此,能够有效保证向多层单元存储器中写入数据时的写入速度。需要说的是,在完成指定类型的数据到目标待写入数据的转换后,可以记录该预设规则,以便于后续在读取过程中根据该预设规则将原始读出数据转换为指定类型的数据。步骤407、将目标待写入数据和预设类型的数据对应的转换标识写入多层单元存储器中。在将原始待写入数据变换为不包括预设的n位二进制数组合的目标待写入数据后,即可将目标待写入数据写入多层单元存储器中。并且,为了能够正确读出写入的原始待写入数据,还需要将预设类型的数据的转换标识一同写入多层单元存储器中,并记录目标待写入数据,及目标待写入数据的存储位置与该转换标识的存储位置的对应关系。示例地,假设原始待写入数据为aaaa0000,且其对应的转换标识为0010,将该原始待写入数据转换得到的目标待写入数据后,可以将目标待写入数据和该转换标识0010一并写入多层单元存储器中。示例地,以mlcpcm为例,主机请求向mlcpcm写入64字节的原始待写入数据,该原始待写入数据为00000000fffffffe(采用十六进制表示),其二进制表示为二进制为0000000000000000000000000000000011111111111111111111111111111110。存储系统获取该原始待写入数据后,可以将该原始待写入数据先写入写缓存中。可知,在步骤402中确定该原始待写入数据为包括预设类型的数据,且在步骤404中确定该预设类型的数据为指定类型的数据。并且,该原始待写入数据为按照yx表示的数据,且y为00000000000000000000000000000000,即该y为包括32个二进制数值“0”的指定数据,x为11111111111111111111111111111110,即x为包括32个二进制数值的普通数据。经过步骤406的转换过程,转换得到的目标待写入数据为0001010101010101010101010101010101010101010101010101010101010101,其十六进制表示为1555555555555555。由此可以看出,目标待写入数据中写入存储单元的数据为00和01,消除了写入数据中需要写入至存储单元中的10,即目标待写入数据不包括预设的n位二进制数组合的目标待写入数据,消除了写入数据中耗费写入时长最长的数据写入情况,减小了写入数据所耗费的时长,因此,提高了mlcnvm的整体写入速度。上述步骤401至步骤407为向多层单元存储器中写入待写入数据的过程。下面介绍从多层单元存储器中读取数据的过程。如图7所示,该读取数据的过程可以包括以下步骤:步骤701、当接收到读取原始待写入数据的读请求时,从多层单元存储器中读取目标待写入数据及转换标识。在接收到数据读请求后,可以在该数据读请求所指示的存储位置中读取目标待写入数据。并根据在写入过程中的记录的目标待写入数据的存储位置与该转换标识的存储位置的对应关系,获取该目标待写入数据对应的转换标识的存储位置,然后从该存储位置中获取该转换标识。步骤702、根据预设规则将目标待写入数据转换为指定类型的数据。当原始待写入数据为预设类型的数据时,向多层单元存储器中写入的数据均为不包括预设的n位二进制数组合的目标待写入数据,因此,该步骤702可视为步骤406的逆过程,可以根据步骤406中记载的预设规则实现转换。并且,当多层单元存储器的类型不同时,根据预设规则进行转换的过程需要满足的规律不同。在一种可实现方式中,当多层单元存储器为mlcnvm时,根据预设规则进行转换的过程需要满足的规律为:目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第i/2个二进制位上的二进制数值,目标待写入数据中第j个二进制位上的二进制数值为指定类型的数据中第t-[(j+1)/2]个二进制位上的二进制数值。i为大于或等于0的偶数,j为正奇数,t为目标待写入数据所包括的二进制位的总位数。在另一种可实现方式中,当多层单元存储器为tlcnvm时,根据预设规则进行转换的过程需要满足的规律为:对于目标待写入数据中第i个二进制位,当i除以3的余数为0时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]个二进制位上的二进制数值。当i除以3的余数为1时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+r个二进制位上的二进制数值。当i除以3的余数为2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+2×r个二进制位上的二进制数值。其中,[i/3]表示不超过i/3的最大整数。步骤703、当指定类型的数据不是转换标识所指示的预设类型的数据时,根据转换标识将指定类型的数据转换为转换标识所指示的预设类型的数据。当指定类型的数据不是转换标识所指示的预设类型的数据时,需要先将指定类型的数据转换为转换标识所指示的预设类型的数据,然后执行步骤704。当指定类型的数据是转换标识所指示的预设类型的数据时,在执行完步骤702后,可以直接执行步骤704。当步骤703中的指定类型与步骤405中的指定类型相同,且步骤703中的指定类型与步骤405中的预设类型相同时,该步骤703可视为步骤405的逆过程。并且,当转换标识所指示的预设类型不同时,该步骤703的实现过程不同,下面对其分别进行说明:在第一种实现场景中,当转换标识所指示的预设类型的数据中目标数据位上的数据全部为“1”时,对该指定类型的数据全部取反,使取反后的目标数据位的数据全部为“1”,得到转换标识所指示的预设类型的数据。在第二种实现场景中,当转换标识所指示的预设类型的数据中指定数据为“0”时,对该指定类型的数据进行移位操作,使移位后的数据为转换标识所指示的预设类型的数据。并且,当多层单元存储器的类型不同时,其实现方式也不同。下面分别以多层单元存储器为mlcnvm和tlcnvm为例,对其实现方式进行说明。当多层单元存储器为mlcnvm时,将指定类型的数据转换为转换标识所指示的预设类型的数据的实质为:将按照yx表示的指定类型的数据转换为转换标识所指示的预设类型的数据。其实现过程至少包括以下五种情况:第一种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示预设类型的数据为按照xy表示的数据时,可以将指定类型的数据中对应yx中x的二进制数值与对应yx中y的二进制数值交换位置,得到按照xy表示的预设类型的数据。该步骤703的第一种情况可视为步骤405中第二种实现场景的第一种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第一种情况的实现过程,此处不再赘述。第二种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照y'x'y'x'表示的数据时,可以将指定类型的数据中对应yx中y的二进制数值中的后一半二进制数值,与指定类型的数据中对应yx中x的二进制数值中的前一半二进制数值交换位置,得到按照y'x'y'x'表示的预设类型的数据。该步骤703的第二种情况可视为步骤405中第二种实现场景的第二种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第二种情况的实现过程,此处不再赘述。第三种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照y'x'x'y'表示的数据时,可以将指定类型的数据中对应yx中y的二进制数值中的前一半二进制数值,移动至指定类型的数据的最右端,并将移动二进制数值后的指定类型的数据整体向左移动2n/2个二进制位,得到按照y'x'x'y'表示的预设类型的数据。该步骤703的第三种情况可视为步骤405中第二种实现场景的第三种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第三种情况的实现过程,此处不再赘述。第四种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照x'y'y'x'表示的数据时,可以将指定类型的数据中对应yx中x的二进制数值中的后一半二进制数值,移动至指定类型的数据的最左端,并将移动二进制数值后的指定类型的数据整体向右移动2n/2个二进制位,得到按照x'y'y'x'表示的预设类型的数据。该步骤703的第四种情况可视为步骤405中第二种实现场景的第四种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第四种情况的实现过程,此处不再赘述。第五种情况,当指定类型的数据为按照yx表示的数据,读取的转换标识所指示的预设类型的数据为按照x'y'x'y'表示的数据时,可以将指定类型的数据中对应yx中y的二进制数值中的前一半二进制数值,移动至指定类型的数据的最右端,得到按照y'x'x'y'表示的数据,然后将该按照y'x'x'y'表示的数据中对应第一个y'的二进制数值与对应第一个x'的二进制数值交换位置,得到按照x'y'x'y'表示的预设类型的数据。该步骤703的第五种情况可视为步骤405中第二种实现场景的第五种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第五种情况的实现过程,此处不再赘述。当多层单元存储器为tlcnvm时,将指定类型的数据转换为转换标识所指示的预设类型的数据的实质为:将按照pps表示的指定类型的数据转换为转换标识所指示的预设类型的数据。其实现过程至少包括以下两种情况:第六种情况,当指定类型的数据为按照pps表示的数据,读取的转换标识所指示预设类型的数据为按照psp表示的数据时,可以将指定类型的数据中对应pps中s的二进制数值与对应pps中第二个p的二进制数值交换位置,得到按照psp表示的预设类型的数据。该步骤703的第六种情况可视为步骤405中第二种实现场景的第六种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第六种情况的实现过程,此处不再赘述。第七种情况,当指定类型的数据为按照pps表示的数据,读取的转换标识所指示的预设类型的数据为按照spp表示的数据时,可以将指定类型的数据中对应pps中s的二进制数值移动至指定类型的数据的最左端,并将移动s后的数据整体向右移动r个二进制位,得到按照spp表示的预设类型的数据。该步骤703的第七种情况可视为步骤405中第二种实现场景的第七种情况的逆过程,其实现过程请相应参考步骤405中第二种实现场景的第七种情况的实现过程,此处不再赘述。在第三种实现场景中,当转换标识所指示的预设类型的数据中指定数据为“1”时,对该指定类型的数据进行移位操作和取反,得到转换标识所指示的预设类型的数据。在第一种可实现方式中,可以先对指定类型的数据进行移位操作,得到转换标识所指示的预设类型的数据的相反数据,然后对该相反数据全部取反,得到转换标识所指示的预设类型的数据。当多层单元存储器为mlcnvm时,将指定类型的数据转换为预设类型的数据的实质为:先通过移位操作将按照yx表示的指定类型的数据,转换为转换标识所指示的预设类型的数据的相反数据,然后对该相反数据全部取反,得到转换标识所指示的预设类型的数据。其中,通过移位操作将按照yx表示的指定类型的数据,转换为转换标识所指示的预设类型的数据的相反数据的实现过程,可以相应参考该步骤703的第二种实现场景中移位操作的实现过程。例如,当指定类型的数据为按照yx表示的数据,转换标识所指示的数据为按照mz表示的数据时,可以将指定类型的数据中对应yx中x的二进制数值与对应yx中y的二进制数值交换位置,得到按照xy表示的相反数据,使得在对该按照xy表示的相反数据全部取反后,得到按照mz表示的数据。类似的,当预设类型的数据为按照z'm'z'm'、z'm'm'z'、m'z'z'm'和m'z'm'z'等其他形式表示的数据时,其移位操作的实现过程可以相应参考该步骤703的第二种实现场景中移位操作的实现过程,此处不再赘述。当多层单元存储器为tlcnvm时,将指定类型的数据转换为预设类型的数据的实质为:先将按照pps表示的指定类型的数据,转换为转换标识所指示的预设类型的数据的相反数据,然后对该相反数据全部取反,得到转换标识所指示的预设类型的数据。其中,通过移位操作将按照pps表示的指定类型的数据,转换为转换标识所指示的预设类型的数据的相反数据的实现过程,可以相应参考该步骤703的第二种实现场景中移位操作的实现过程。例如,当指定类型的数据为按照pps表示的数据,转换标识所指示的数据为按照uqq表示的数据时,可以将指定类型的数据中对应pps中s的二进制数值移动至该指定类型的数据的最左端,并将移动s后的数据整体向右移动r个二进制位,得到按照spp表示的相反数据,使得在对该按照spp表示的相反数据全部取反后,得到按照uqq表示的数据。类似的,当预设类型的数据为按照quq等其他形式表示的数据时,其移位操作的实现过程可以相应参考该步骤703的第二种实现场景中移位操作的实现过程,此处不再赘述。在第二种可实现方式中,可以先对指定类型的数据进行全部取反,然后对取反后的数据进行移位操作,得到转换标识所指示的预设类型的数据。该第三种实现场景的第二种可实现方式的实现过程,可以相应参考该第三种实现场景的第一种可实现方式的实现过程,此处不再赘述。需要说明的是,上述对步骤405、步骤406、步骤702和步骤703实现过程的描述中,主要是以写入mlcnvm的指定类型的数据为按照yx表示的数据,以写入tlcnvm的指定类型的数据为按照pps表示的数据为例,对该步骤405、步骤406、步骤702和步骤703的实现过程进行的说明。当预设类型的数据为按照其他方式表示的数据时,可按照本申请实施例提供的构思,对数据进行变换,以提高写入速度。此时,对该步骤405、步骤406、步骤702和步骤703所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。步骤704、根据读请求返回预设类型的数据。将目标待写入数据转换为数据类型为预设类型的原始待写入数据后,即可根据读请求向主机输出该预设类型的数据。综上所述,本申请实施例提供的多层单元存储器的访问方法,当原始待写入数据是预设类型的数据时,通过将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,再将目标待写入数据写入多层单元存储器中,由于预设的n位二进制数组合是该n位二进制数的所有组合中写入速度慢的组合,通过对原始待写入数据进行转换,将该原始待写入数据转换成了写入速度较快的目标待写入数据,减小了写入该目标待写入数据所耗费的时长,提高了多层单元存储器的整体写入速度。需要说明的是,该多层单元存储器的访问方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如,可以根据应用需求选择是否执行步骤402和步骤404。任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。本申请实施例还提供了一种多层单元存储器的访问装置,如图8所示,该多层单元存储器的访问装置80可以包括:转换模块801,用于当原始待写入数据是预设类型的数据时,将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,预设的n位二进制数组合是n位二进制数的所有组合中写入速度慢的组合,其中多层单元存储器的一个存储单元可同时写入n位二进制数,n为大于1的整数。写入模块802,用于将目标待写入数据写入多层单元存储器中。可选地,转换模块801,具体用于:当预设类型的数据不是指定类型的数据时,将预设类型的数据转换为指定类型的数据,按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据。当预设类型数据是指定类型的数据时,按照预设规则将指定类型的数据转换为不包括预设的n位二进制数组合的目标待写入数据。可选地,预设类型的数据包括指定数据及普通数据,当n=2时,指定数据所包括的数据的总位数和普通数据所包括的数据的总位数相同,当n=3时,指定数据所包括的数据的总位数为普通数据所包括的数据的总位数的两倍。相应的,当原始待写入数据中包括指定数据时,则确定原始待写入数据是预设类型的数据。可选地,预设类型的数据包括指定数据及普通数据,预设类型的数据中的指定数据中所有位的数据全部为“1”或全部为“0”,指定类型的数据中目标数据位上的数据全部为“0”,当n=2时,指定类型的数据的所有数据位中前一半数据位均为目标数据位,当n=3时,指定类型的数据的所有数据位中前2/3数据位均为目标数据位,转换模块801,具体用于:对指定数据为“0”的预设类型的数据进行移位操作,使移位后的数据中目标数据位的数据全部为“0”。对目标数据位上的数据全部为“1”的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”。对指定数据为“1”的预设类型的数据进行移位操作,使移位后的预设类型的数据中目标数据位的数据全部为“1”,然后对移位后的预设类型的数据全部取反,使取反后的目标数据位的数据全部为“0”。或者,对指定数据为“1”的预设类型的数据的数据全部取反,然后对取反后的预设类型的数据进行移位操作,使得移位后的数据中目标数据位的数据全部为“0”。可选地,如图9所示,该多层单元存储器的访问装置80还包括:获取模块803,用于当原始待写入数据是预设类型的数据时,获取预设类型的数据对应的预设类型的数据的转换标识。写入模块802,还用于在写入目标待写入数据时,也写入转换标识。读取模块804,用于当接收到读取原始待写入数据的读请求时,从多层单元存储器中读取目标待写入数据和转换标识。转换模块801,还用于根据预设规则将目标待写入数据转换为指定类型的数据,根据转换标识将指定类型的数据转换为预设类型的数据,并返回预设类型的数据。可选地,预设规则满足:当n=2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第i/2个二进制位上的二进制数值,目标待写入数据中第j个二进制位上的二进制数值为指定类型的数据中第t-[(j+1)/2]个二进制位上的二进制数值,i为大于或等于0的偶数,j为正奇数,t为指定类型的数据所包括的二进制位的总位数。当n=3时,对于目标待写入数据中第i个二进制位,当i除以3的余数为0时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]个二进制位上的二进制数值,当i除以3的余数为1时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+r个二进制位上的二进制数值。当i除以3的余数为2时,目标待写入数据中第i个二进制位上的二进制数值为指定类型的数据中第[i/3]+2×r个二进制位上的二进制数值,[i/3]表示不超过i/3的最大整数。综上所述,本申请实施例提供的多层单元存储器的访问装置,当原始待写入数据是预设类型的数据时,通过转换模块将原始待写入数据转换为不包括预设的n位二进制数组合的目标待写入数据,写入模块将目标待写入数据写入多层单元存储器中。由于预设的n位二进制数组合是该n位二进制数的所有组合中写入速度慢的组合,通过对原始待写入数据进行转换,将该原始待写入数据转换成了写入速度较快的目标待写入数据,减小了写入该目标待写入数据所耗费的时长,提高了多层单元存储器的整体写入速度。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本申请实施例提供了一种计算设备。该计算设备可以为服务器或终端等。图1所示的存储系统可以部署在该计算设备中。如图10所示,该计算设备10可以包括:处理器101,通信接口102和存储器103。处理器101、通信接口102和存储器103之间通过总线104相互连接。当图1中的存储系统部署在该计算设备中时,处理器101可以为图1中的处理器021,存储器103可以为图1中的存储器022。在图10中,总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。在图10中,该处理器101可以是硬件芯片,该硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。图11为本申请实施例提供的另一种计算设备的结构示意图。如图11所示,该计算设备11可以包括:处理器111,通信接口112、存储器113和内存115。处理器111、通信接口112和存储器113之间通过总线114相互连接。当图2中的存储系统部署在该计算设备中时,处理器111可以为图2中的处理器021,存储器113可以为图2中的存储器022,内存115可以为图2中的内存023。在图11中,总线114可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。处理器021可以是通用处理器,例如,中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np),或者,cpu和np的组合。在图10和图11中,存储器103和存储器113可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)。还可以包括上述种类的存储器的组合。并且,该存储器103和存储器113可以为多层单元存储器。可选地,在本申请实施例中,多层单元存储器可以为应用了mlc技术的nvm(即mlcnvm,也称多层单元存储器),即该存储器中每个存储单元可以存储两位二进制数。例如,该存储器可以为应用了mlc技术的pcm(即mlcpcm),可以为应用了mlc技术的stt-ram(即mlcstt-ram),也可以为应用了mlc技术的rram(即mlcrram),还可以为上述种类的存储器的组合等。或者,多层单元存储器可以为应用了三层单元(trinarylevelcell,tlc)技术的nvm(即tlcnvm,也称多层单元存储器),即该tlcnvm中每个存储单元可以存储三位二进制数。例如,该存储器可以为应用了tlc技术的pcm(即tlcpcm),可以为应用了tlc技术的stt-ram(即tlcstt-ram),也可以为应用了tlc技术的rram(即tlcrram),还可以为上述种类的存储器的组合等。本申请实施例还提供了一种存储介质,该存储介质为非易失性计算机可读存储介质,当存储介质中的指令被处理器执行时,实现本申请实施例提供的多层单元存储器的访问方法。本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请实施例提供的多层单元存储器的访问方法。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1