eMMC的控制方法及基于FPGA的eMMC控制器与流程

文档序号:11136067阅读:4045来源:国知局
eMMC的控制方法及基于FPGA的eMMC控制器与制造工艺

本发明涉及eMMC存储控制器领域,特别是涉及一种eMMC的控制方法及基于FPGA的eMMC控制器。



背景技术:

eMMC(embed Multi Media Card,嵌入式多媒体卡)为MMC(Multi Media Card,多媒体卡)协会所订立的内嵌式存储器标准格式。eMMC以其电路简单,成本低,开发容易越来越受到对存储容量有较高要求的电子产品的青睐。

现有技术中,在使用eMMC时,由CPU控制实现对eMMC的操作。由于CPU在执行多个软件控制时,通过串行的方式实现,CPU无法实现对多片片eMMC的并行控制。如CPU总线挂接两片eMMC,则由该CPU控制对两片eMMC的操作时,需要采用串行的方式先控制一片eMMC实现操作,之后再控制另一片eMMC实现操作,而无法同时实现对两片eMMC的控制操作。

因此,亟需一种能够同时实现对多片eMMC控制的控制方案。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种eMMC的控制方法及基于FPGA的eMMC控制器,实现多片eMMC的并行控制,技术方案如下:

一种eMMC的控制方法,应用于基于FPGA的eMMC控制器,所述eMMC控制器与N片eMMC相连,N为大于1的正整数;

所述控制方法包括:

向所述N片eMMC并行发送操作指令;

并行接收所述N片eMMC响应所述操作指令分别发送的反馈信息,所述反馈信息指示每片eMMC是否成功实现所述操作指令;

根据所述反馈信息确定未成功实现所述操作指令的eMMC,并向所述未成功实现所述操作指令的eMMC并行发送所述操作指令,直到所述N片eMMC都成功实现所述操作指令。

可选地,当所述操作指令为读取指令时,所述读取指令携带所述每片eMMC的标识和所述该标识对应的eMMC的读取起始地址和读取结束地址;

所述反馈信息指示所述每片eMMC向所述eMMC控制器反馈数据;

相应的,确定所述N片eMMC都成功实现所述操作指令之后,还包括:

接收所述每片eMMC依据与该eMMC对应的反馈信息反馈的数据,所述数据为所述读取起始地址至所述读取结束地址所构成的数据存储空间中的数据;

将接收的所述每片eMMC反馈的数据缓存至与所述每片eMMC对应的数据缓存器中;

判断所述每个数据缓存器的缓存状态是否均为非空状态;

当判断结果为是时,并行发送N个所述数据缓存器中的数据给用户;

当判断结果为否时,监测不是非空状态的数据缓存器的缓存状态,直到不是非空状态的数据缓存器的缓存状态变为非空状态,并行发送N个所述数据缓存器中的数据给用户。

可选地,当所述操作指令为写入指令时,所述写入指令携带所述每片eMMC的标识和与所述标识对应的eMMC的写入起始地址和写入结束地址;

所述反馈信息指示所述每片eMMC是否成功接收所述写入指令;

相应的,确定所述N片eMMC都成功实现所述操作指令之后,还包括:

将待写入的数据分割成N个数据包,每个数据包的数据量为每片eMMC每次可写入的数据量;

将所述N个数据包分别缓存至N个数据缓存器中,所述N个数据缓存器与所述N片eMMC一一对应;

判断所述N个数据包的总数据量是否小于所述待写入的数据的数据量;

当判断结果为是时,将所述待写入的数据中未被缓存至所述N个数据缓存器中的数据作为新的待写入数据,并将所述新的待写入数据分割成N个所述数据包,直到分割后的所述数据包的总数据量等于所述待写入数据的数据量;

当判断结果为否时,将缓存在所述N个数据缓存器中的数据包并行发送至与所述N个数据缓存器对应的所述N片eMMC中,以使所述N片eMMC将数据包分别写入与所述每片eMMC对应的由写入起始地址和写入结束地址构成的数据存储空间中。

可选地,将缓存在所述N个数据缓存器中的数据包并行发送至与所述N个数据缓存器对应的N片eMMC中,包括:

对并行发送的所述数据包中的每个数据包进行冗余校验;

将所述冗余校验后的校验数据附在所述每个数据包的结尾;

将带有校验数据的所述数据包发送至所述N片eMMC中。

可选地,所述操作指令为擦除指令,所述擦除指令携带所述每片eMMC的标识和与所述标识对应的eMMC的擦除起始地址和擦除结束地址;

所述反馈信息指示所述每片eMMC是否成功擦除从所述擦除起始地到所述擦除结束地址所构成的数据存储空间中的数据;

相应的,确定所述N片eMMC都成功实现所述操作指令之后,还包括:

向用户返回指示对所述N片eMMC擦除成功的信息。

一种基于FPGA的eMMC控制器,所述eMMC控制器与N片eMMC相连,N为大于1的正整数;

所述eMMC控制器包括:

第一发送单元,用于向所述N片eMMC并行发送操作指令;

第一接收单元,用于并行接收所述N片eMMC响应所述操作指令分别发送的反馈信息,所述反馈信息指示每片eMMC是否成功实现所述操作指令;

确定单元,用于根据所述反馈信息确定未成功实现所述操作指令的eMMC,并向所述未成功实现所述操作指令的eMMC并行发送所述操作指令,直到所述N片eMMC都成功实现所述操作指令。

可选地,当所述操作指令为读取指令时,所述读取指令携带所述每片eMMC的标识和与所述标识对应的eMMC的读取起始地址和读取结束地址;

所述反馈信息指示所述每片eMMC向所述eMMC控制器反馈数据;

相应的,还包括:

第二接收单元,用于确定所述N片eMMC都成功实现所述操作指令之后,接收所述每片eMMC依据与该eMMC对应的反馈信息反馈的数据,所述数据为所述读取起始地址至所述读取结束地址所构成的数据存储空间中的数据;

第一缓存单元,用于将接收的所述每片eMMC反馈的数据缓存至与所述每片eMMC对应的数据缓存器中;

第一判断单元,用于判断所述每个数据缓存器的缓存状态是否均为非空状态;

第二发送单元,用于当所述第一判断单元判断每个数据缓存器的缓存状态均为非空状态时,并行发送N个所述数据缓存器中的数据给用户;

监测单元,用于当所述第一判断单元判断每个数据缓存器中的缓存状态不均为非空状态时,监测不是非空状态的数据缓存器的缓存状态,直到不是非空状态的数据缓存器的缓存状态变为非空状态,并行发送N个所述数据缓存器中的数据给用户。

可选地,当所述操作指令为写入指令时,所述写入指令携带所述每片eMMC的标识和与所述标识对应的eMMC的写入起始地址和写入结束地址;

所述反馈信息指示所述每片eMMC是否成功接收所述写入指令;

相应的,还包括:

第一分割单元,用于确定所述N片eMMC都成功实现所述操作指令之后,将待写入的数据分割成N个数据包,每个数据包的数据量为每片eMMC每次可写入的数据量;

第二缓存单元,用于将所述N个数据包分别缓存至N个数据缓存器中,所述N个数据缓存器与所述N片eMMC一一对应;

第二判断单元,用于判断所述N个数据包的总数据量是否小于所述待写入的数据的数据量;

第二分割单元,用于当所述第二判断单元判断所述N个数据包的总数据量小于所述待写入的数据的数据量时,将所述待写入的数据中未被缓存至所述N个数据缓存器中的数据作为新的待写入数据,并将所述新的待写入数据分割成N片数据包,直到分割后的所述数据包的总数据量等于所述待写入数据的数据量;

第三发送单元,用于当所述第二判断单元判断所述N个数据包的总数据量不小于所述待写入的数据的数据量时,将缓存在所述N个数据缓存器中的数据包并行发送至与所述N个数据缓存器对应的所述N片eMMC中,以使所述N片eMMC将数据包分别写入与所述每片eMMC对应的由写入起始地址和写入结束地址构成的数据存储空间中。

可选地,所述第三发送单元,包括:

校验单元,用于对并行发送的所述数据包中的每个数据包进行冗余校验;

重组单元,用于将所述冗余校验后的校验数据附在所述每个数据包的结尾;

发送子单元,用于将带有校验数据的所述数据包发送至所述N片eMMC中。

可选地,所述操作指令为擦除指令,所述擦除指令携带所述每片eMMC的标识和与所述标识对应的eMMC的擦除起始地址和擦除结束地址;

所述反馈信息指示所述每片eMMC是否成功擦除从所述擦除起始地到所述擦除结束地址所构成的数据存储空间中的数据;

相应的,还包括:

第四发送单元,用于确定所述N片eMMC都成功实现所述操作指令之后,向用户返回指示对所述N片eMMC擦除成功的信息。

本发明实施例所提供的技术方案,应用于基于FPGA的eMMC控制器,该eMMC控制器与N片eMMC相连,由于FPGA是基于硬件编程语言实现的器件,可以实现硬件模块的并行使用与控制,因此,本申请的eMMC控制器能够同时实现对多片eMMC的控制。进一步地,本申请的方案根据每片eMMC的反馈状态实现了N片eMMC在实现所述控制操作时的同步性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种eMMC的控制方法的一种流程示意图;

图2为本发明实施例所提供的一种eMMC的控制方法的另一种流程示意图;

图3为本发明实施例所提供的一种eMMC的控制方法的另一种流程示意图;

图4为本发明实施例所提供的一种eMMC的控制方法的另一种流程示意图;

图5为本发明实施例所提供的一种eMMC的控制方法的另一种流程示意图;

图6为本发明实施例所提供的一种基于FPGA的eMMC控制器的一种结构示意图;

图7为本发明实施例所提供的一种基于FPGA的eMMC控制器的另一种结构示意图;

图8为本发明实施例所提供的一种基于FPGA的eMMC控制器的另一种结构示意图;

图9为本发明实施例所提供的一种基于FPGA的eMMC控制器的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种eMMC的控制方法及基于FPGA的eMMC控制器,实现了对N片eMMC的并行控制。

请参阅图1,图1为本申请实施例提供的eMMC的控制方法的一种实现流程图,所述控制方法包括:

步骤S101、向N片eMMC并行发送操作指令。

本实施例的控制方法应用于基于FPGA的eMMC控制器,该eMMC控制器与N片eMMC相连,N为大于1的正整数。

可选地,所述操作指令为复位指令、双电压模式设置指令、标识号设定指令、寻址地址设定指令、工作功率设定指令、复位引脚使能指令、数据接口设定指令、工作模式设定指令、擦除指令、读取指令和写入指令中的至少一种。

步骤S102、并行接收所述N片eMMC响应所述操作指令分别发送的反馈信息,所述反馈信息指示每片eMMC是否成功实现所述操作指令。

依据不同的操作指令,本实施例中的实现操作指令包括接收操作指令或执行操作指令两种情况,即,反馈信息指示每片eMMC是否成功接收或执行操作指令。

步骤S103、根据所述反馈信息确定未成功实现所述操作指令的eMMC,并向所述未成功实现所述操作指令的eMMC并行发送所述操作指令,直到所述N片eMMC都成功实现所述操作指令。

本发明所提供的技术方案,应用于基于FPGA的eMMC控制器,该控制器与N片eMMC相连,由于FPGA是基于硬件编程语言实现的器件,可以实现硬件模块的并行使用与控制,因此,本申请的控制器能够同时实现对多片eMMC的控制。进一步地,本申请的方案根据每片eMMC的反馈状态实现了N片eMMC在实现所述控制操作时的同步性。

请参阅图2,图2为本申请实施例提供的eMMC的控制方法的另一种实现流程图,该实施例实现的是对eMMC的初始化流程,所述控制方法包括:

步骤S201、向N片eMMC并行发送复位指令。

本实施例的控制方法应用于基于FPGA的eMMC控制器,该eMMC控制器与N片eMMC相连,N为大于1的正整数。

步骤S202、并行接收所述N片eMMC响应所述复位指令分别发送的状态字,所述状态字的值指示每片eMMC是否复位成功。

步骤S203、根据所述状态字的值判断是否有未成功复位的eMMC,若是,执行步骤S204,否则,执行步骤S205。

步骤S204、向所述未成功复位的eMMC并行发送复位指令,直到所述N片eMMC都成功执行所述复位指令。

步骤S205、向所述N片eMMC并行发送双电压模式设置指令。

所述双电压模式设置指令用于设置每片eMMC的工作电压兼容1.8V和3.3V。

步骤S206、并行接收所述N片eMMC响应所述双电压模式设置指令分别发送的状态信息,所述状态信息指示每片eMMC是否成功配置双电压模式。

步骤S207、根据所述状态信息判断是否有未成功配置所述双电压模式的eMMC,若是,执行步骤S208,否则,执行步骤S209。

步骤S208、向所述未成功配置双电压模式的eMMC并行发送所述双电压模式设置指令,直到所述N片eMMC都成功配置所述双电压模式。

步骤S209、向所述N片eMMC并行发送高速工作模式设定指令,所述高速工作模式设定指令用于为所述N片eMMC设定高速工作模式。

eMMC在高速工作模式下的最大单片写入带宽为200MB/s。

步骤S210、并行接收所述N片eMMC响应所述高速工作模式设定指令分别发送的反馈信息,所述反馈信息指示每片eMMC是否成功设定所述高速工作模式。

步骤S211、根据所述反馈信息判断是否有未成功设定所述高速工作模式的eMMC,若是,执行步骤S212,否则,结束流程。

步骤S212、向所述未成功设定所述高速工作模式的eMMC并行发送所述高速工作模式设定指令,直到所述N片eMMC都成功设定所述高速工作模式。

需要说明的是,在步骤S208与步骤S209之间还可以依次包括对所述N片eMMC设定统一标识号、设定统一寻址地址、设定工作功率、设定复位引脚使能、设定数据接口的过程,且实现上述过程的指令依次为标识号设定指令、寻址地址设定指令、工作功率设定指令、复位引脚使能指令、工作模式设定指令。对上述每一过程的执行流程均可以参照上一实施例中步骤S101-步骤S103的实现,鉴于流程执行相似,此处不多加介绍。

本实施例的技术方案实现的是对N片eMMC的初始化流程,该初始化流程包括多个操作过程,对于每个操作过程,本实施例均实现了对N片eMMC的并行控制,并通过每片eMMC的反馈信息实现了N片eMMC在实现一操作指令后再实现另一操作指令,以此保证了N片eMMC实现操作指令的同步性。

在对所述N片eMMC完成初始化后,根据用户的需求可以分别实现对所述N片eMMC的读、写、擦操作,以下分别进行介绍:

请参阅图3,图3为本申请实施例提供的eMMC的控制方法的另一种实现流程图,所述控制方法包括:

步骤S301、向所述N片eMMC并行发送读取指令。

本实施例的控制方法应用于基于FPGA的eMMC控制器。

所述读取指令携带每片eMMC的标识和与该标识对应的eMMC的读取起始地址和读取结束地址。

步骤S302、并行接收所述N片eMMC响应所述读取指令分别发送的反馈信息,所述反馈信息指示所述每片eMMC向所述eMMC控制器反馈数据。

步骤S303、根据所述反馈信息判断是否有未成功接收所述读取指令的eMMC,若是,执行步骤S304,否则,执行步骤S305。

步骤S304、向所述未成功接收读取指令的eMMC并行发送所述读取指令,直到所述N片eMMC都成功接收所述读取指令。

步骤S305、接收所述每片eMMC依据与该eMMC对应的反馈信息反馈的数据。

所述数据为所述读取起始地址至所述读取结束地址所构成的数据存储空间中的数据。

对于每片eMMC,当成功接收到读取指令后,将读取起始地址至读取结束地址所构成的数据存储空间中的数据发送给eMMC控制器。

步骤S306、将接收的所述每片eMMC反馈的数据缓存至与所述每片eMMC对应的数据缓存器中。

由于不同的eMMC向eMMC控制器反馈数据的时间可能不同,为了在用户侧实现数据读取的同步性,本实施例中在接收到每片eMMC反馈的数据包后,先将数据包缓存至与每片eMMC对应的数据缓存器中。

由于各eMMC之间反馈数据的时间差不超过8192个时钟周期,因此,将每个数据缓存器的深度设定为8192个位宽。

步骤S307、判断每个数据缓存器的缓存状态是否均为非空状态,若是,执行步骤S308,否则,执行步骤S309。

数据缓存器的非空状态指示该数据缓存器中存储有数据。

步骤S308、并行发送N个所述数据缓存器中的数据给用户。

步骤S309、监测不是非空状态的数据缓存器的缓存状态,直到不是非空状态的数据缓存器的缓存状态变为非空状态,并执行步骤S308。

需要说明的是,当某一eMMC对应的读取起始地址和读取结束地址构成的数据存储空间中无数据时,该eMMC仍然会执行读取指令,只是向eMMC控制器反馈的数据为空数据包,当数据存储器中仅存储有空数据包时,该数据存储器的缓存状态也为非空状态。

本实施例的技术方案实现的是从N片eMMC读数据的操作,具体地,当N片eMMC成功接收读取指令后,向eMMC控制器反馈数据,由于不同eMMC反馈数据的时间不一定同步,因此,本实施例的方案通过eMMC控制器中的数据缓存器缓存eMMC反馈的数据包,并当N个数据缓存器的缓存状态均为非空状态时,才向用户并行发送数据,以此实现了向用户反馈数据的同步。

请参阅图4,图4为本申请实施例提供的eMMC的控制方法的另一种实现流程图,所述控制方法包括:

步骤S401、向所述N片eMMC并行发送写入指令,所述写入指令携带每片eMMC的标识和与该标识对应的eMMC的写入起始地址和写入结束地址。

本实施例的控制方法应用于基于FPGA的eMMC控制器。

步骤S402、并行接收所述N片eMMC响应所述写入指令分别发送的反馈信息,所述反馈信息指示所述每片eMMC是否成功接收所述写入指令。

步骤S403、根据所述反馈信息判断是否有未成功接收所述写入指令的eMMC,若是,执行步骤S404,否则,执行步骤S405。

步骤S404、向所述未成功接收写入指令的的eMMC并行发送所述写入指令,直到所述N片eMMC都成功接收所述写入指令。

步骤S405、将待写入的数据分割成N个数据包,每个数据包的数据量为每片eMMC每次可写入的数据量。

由于每片eMMC每次写入的数据大小为512B,因此,在将数据写入eMMC之前,需要先将数据分割成N个数据大小为512B的数据包。

步骤S406、将所述N个数据包分别缓存至N个数据缓存器中。

为了保证写入操作的同步性,将分割的N个数据包分别缓存至N个数据缓存器中,所述N个数据缓存器与所述N片eMMC一一对应。

步骤S407、判断N个数据包的总数据量是否小于所述待写入的数据的数据量,当判断结果为是时,执行步骤S408,否则,执行步骤S409。

步骤S408、将所述待写入的数据中未被缓存至所述N个数据缓存器中的数据作为新的待写入数据,并对该新的待写入数据分割成N个数据包,直到将所有的待写入数据分割完,并执行步骤S409。

需要说明的是,当新的待写入数据的数据量不能表示为N*512B的整数倍时,差的数据量用0补充。如,新的待写入数据的数据量为(N-1)*512B,差的数量为512B,此时差的512B的数据用0补充。

步骤S409、将缓存在所述N个数据缓存器中的数据包并行发送至与所述N个数据缓存器对应的N片eMMC中,以使所述N片eMMC将数据包分别写入与每片eMMC对应的由写入起始地址和写入结束地址构成的数据存储空间中。

可选的,为了及时可靠地将数据写入eMMC中,将缓存在所述N个数据缓存器中的数据包并行发送至与所述N个数据缓存器对应的N片eMMC中,包括:

对并行发送的所述数据包中的每个数据包进行冗余校验;

将冗余校验后的校验数据附在所述每个数据包的结尾;

将带有校验数据的数据包发送至所述N片eMMC中。

本实施例的技术方案实现的是对N片eMMC写入数据的操作,具体地,当反馈信息指示N片eMMC成功接收写入指令后,对待写入数据进行分割,每次分割出N个数据包,每个数据包的数据量为每片eMMC每次可写入的数据量,为了实现写入数据操作的同步性,将分割出的N个数据包分别缓存至与N片eMMC对应的N个数据缓存器中,并将N个数据缓存器中的数据发给用户。

请参阅图5,图5为本申请实施例提供的eMMC的控制方法的另一种实现流程图,所述控制方法包括:

步骤S501、向所述N片eMMC并行发送擦除指令,所述擦除指令携带每片eMMC的标识和与该标识对应的eMMC的擦除起始地址和擦除结束地址。

本实施例的控制方法应用于基于FPGA的eMMC控制器。

步骤S502、并行接收所述N片eMMC响应所述擦除指令分别发送的反馈信息,所述反馈信息指示所述每片eMMC是否成功擦除从所述擦除起始地到所述擦除结束地址所构成的数据存储空间中的数据。

步骤S503、根据所述反馈信息判断是否有未成功擦除的eMMC,若是,执行步骤S504,否则,执行步骤S505。

步骤S504、向所述未成功执行所述擦除指令的eMMC并行发送所述擦除指令,直到所述N片eMMC都成功执行所述擦除指令,并执行步骤S505。

步骤S505、向用户返回指示对所述N片eMMC擦除成功的信息。

本实施例的技术方案实现的是对N片eMMC擦除数据的操作,具体地,通过反馈信息指示N片eMMC是否成功执行擦除指令,若否,则继续向未成功执行所述擦除指令的eMMC并行发送所述擦除指令,直到N片eMMC都成功执行所述擦除指令,而后向用户返回指示对N片eMMC擦除成功的信息,以此实现了擦除操作的同步。

下面对本申请实施例提供的基于FPGA的eMMC控制器进行描述,下文描述的eMMC控制器与上文描述的eMMC的控制方法可相互对应参照。

请参阅图6,图6为本申请实施例提供的基于FPGA的eMMC控制器的一种实现结构示意图,所述eMMC控制器与N片eMMC相连,N为大于1的正整数,所述eMMC控制器包括:

第一发送单元610,用于向所述N片eMMC并行发送操作指令。

可选地,所述操作指令为复位指令、双电压模式设置指令、标识号设定指令、寻址地址设定指令、工作功率设定指令、复位引脚使能指令、数据接口设定指令、工作模式设定指令、擦除指令、读取指令和写入指令中的至少一种。

第一接收单元620,用于并行接收所述N片eMMC响应所述操作指令分别发送的反馈信息,所述反馈信息指示每片eMMC是否成功实现所述操作指令。

确定单元630,用于根据所述反馈信息确定未成功实现所述操作指令的eMMC,并向所述未成功实现所述操作指令的eMMC并行发送所述操作指令,直到所述N片eMMC都成功实现所述操作指令。

本发明所提供的技术方案,应用于基于FPGA的eMMC控制器,该控制器与N片eMMC相连,由于FPGA是基于硬件编程语言实现的器件,可以实现硬件模块的并行使用与控制,因此,本申请的eMMC控制器能够同时实现对多片eMMC的控制。进一步地,本申请的方案根据每片eMMC的反馈状态实现了N片eMMC在实现所述控制操作时的同步性。

请参阅图7,图7为本申请实施例提供的基于FPGA的eMMC控制器的另一种实现结构示意图,该eMMC控制器包括:

第一发送单元710、用于向N片eMMC并行发送读取指令。

所述读取指令携带每片eMMC的标识和与该标识对应的eMMC的读取起始地址和读取结束地址。

本实施例的eMMC控制器与N片eMMC相连,N为大于1的正整数。

第一接收单元720、用于并行接收所述N片eMMC响应所述读取指令分别发送的反馈信息,所述反馈信息指示所述每片eMMC向所述eMMC控制器反馈数据。

第三判断单元730、用于根据所述反馈信息判断是否有未成功接收所述读取指令的eMMC。

确定单元740、用于当所述第三判断单元730根据所述反馈信息判断有未成功接收所述读取指令的eMMC时,确定未成功接收所述读取指令的eMMC,并向所述未成功接收读取指令的的eMMC并行发送所述读取指令,直到所述N片eMMC都成功接收所述读取指令。

第二接收单元750、用于当所述第三判断单元730根据所述反馈信息判断没有未成功接收所述读取指令的eMMC时,接收所述每片eMMC依据与该eMMC对应的反馈信息反馈的数据。

所述数据为所述读取起始地址至所述读取结束地址所构成的数据存储空间中的数据。

第一缓存单元760、用于将接收的所述每片eMMC反馈的数据缓存至与所述每片eMMC对应的数据缓存器中。

第一判断单元770、用于判断每个数据缓存器的缓存状态是否均为非空状态。

第二发送单元780、用于当所述第一判断单元770判断每个数据缓存器中的缓存状态均为非空状态时,并行发送N个所述数据缓存器中的数据给用户。

监测单元790、用于当所述第一判断单元770判断每个数据缓存器中的缓存状态不均为非空状态时,监测不是非空状态的数据缓存器的缓存状态,直到不是非空状态的数据缓存器的缓存状态变为非空状态,并并行发送N个所述数据缓存器中的数据给用户。

本实施例的技术方案实现的是从N片eMMC读数据的操作,具体地,当N片eMMC成功接收读取指令后,向eMMC控制器反馈数据,由于不同eMMC反馈数据的时间不一定同步,因此,本实施例的方案通过eMMC控制器中的数据缓存器缓存eMMC反馈的数据包,并当N个数据缓存器的缓存状态均为非空状态时,才向用户并行发送数据,以此实现了向用户反馈数据的同步。

请参阅图8,图8为本申请实施例提供的基于FPGA的eMMC控制器的另一种实现结构示意图,该eMMC控制器包括:

第一发送单元810、用于向N片eMMC并行发送写入指令,所述写入指令携带每片eMMC的标识和与该标识对应的eMMC的写入起始地址和写入结束地址。

本实施例的eMMC控制器与N片eMMC相连,N为大于1的正整数。

第一接收单元820、用于并行接收所述N片eMMC响应所述写入指令分别发送的反馈信息,所述反馈信息指示所述每片eMMC是否成功接收所述写入指令。

第三判断单元830、用于根据所述反馈信息判断是否有未成功接收所述写入指令的eMMC。

确定单元840、用于当所述第三判断单元830根据所述反馈信息判断有未成功接收所述写入指令的eMMC时,向所述未成功接收写入指令的eMMC并行发送所述写入指令,直到所述N片eMMC都成功接收所述写入指令。

第一分割单元850、用于当所述第三判断单元830根据所述反馈信息判断没有未成功接收所述写入指令的eMMC时,将待写入的数据分割成N个数据包,每个数据包的数据量为每片eMMC每次可写入的数据量。

由于每片eMMC每次写入的数据大小为512B,因此,在将数据写入eMMC之前,需要先数据分割成N个数据大小为512B的数据包。

第二缓存单元860、用于将所述N个数据包分别缓存至N个数据缓存器中。

为了保证写入操作的同步性,将分割的N个数据包分别缓存至N个数据缓存器中,所述N个数据缓存器与所述N片eMMC一一对应。

第二判断单元870、用于判断N个数据包的总数据量是否小于所述待写入的数据的数据量。

第二分割单元880、用于当所述第二判断单元870判断所述N个数据包的总数据量小于所述待写入的数据的数据量时,将所述待写入的数据中未被缓存至所述N个数据缓存器中的数据作为新的待写入数据,并对该新的待写入数据分割成N个数据包,直到将所有的待写入数据分割完。

第三缓存单元890、用于当所述第二判断单元870判断所述N个数据包的总数据量不小于所述待写入的数据的数据量时,将缓存在所述N个数据缓存器中的数据包并行发送至与所述N个数据缓存器对应的N片eMMC中,以使所述N片eMMC将数据包分别写入与每片eMMC对应的由写入起始地址和写入结束地址构成的数据存储空间中。

可选的,为了及时可靠地将数据写入eMMC中,所述第三发送单元,包括:

校验单元,用于对并行发送的所述数据包中的每个数据包进行冗余校验;

重组单元,用于将冗余校验后的校验数据附在所述每个数据包的结尾;

发送子单元,用于将带有校验数据的数据包发送至所述N片eMMC中。

本实施例的技术方案实现的是对N片eMMC写入数据的操作,具体地,当反馈信息指示N片eMMC成功接收写入指令后,对待写入数据进行分割,每次分割出N个数据包,每个数据包的数据量为每片eMMC每次可写入的数据量,为了实现写入数据操作的同步性,将分割出的N个数据包分别缓存至与N片eMMC对应的N个数据缓存器中,并将N个数据缓存器中的数据发给用户。

请参阅图9,图9为本申请实施例提供的基于FPGA的eMMC控制器的另一种实现结构示意图,所述eMMC控制器包括:

第一发送单元910、用于向N片eMMC并行发送擦除指令,所述擦除指令携带每片eMMC的标识和与该标识对应的eMMC的擦除起始地址和擦除结束地址。

本实施例的eMMC控制器与N片eMMC相连,N为大于1的正整数。

第一接收单元920、用于并行接收所述N片eMMC响应所述擦除指令分别发送的反馈信息,所述反馈信息指示所述每片eMMC是否成功擦除从所述擦除起始地到所述擦除结束地址所构成的数据存储空间中的数据。

第三判断单元930、用于根据所述反馈信息判断是否有未成功擦除的eMMC。

确定单元940、用于当所述第三判断单元930根据所述反馈信息判断有未成功擦除的eMMC时,向所述未成功执行所述擦除指令的eMMC并行发送所述擦除指令,直到所述N片eMMC都成功执行所述擦除指令。

第四发送单元950、用于当所述第三判断单元930根据所述反馈信息判断没有未成功擦除的eMMC时,向用户返回指示对所述N片eMMC擦除成功的信息。

本实施例的技术方案实现的是对N片eMMC擦除数据的操作,具体地,通过反馈信息指示N片eMMC是否成功执行擦除指令,若否,则继续向未成功执行所述擦除指令的的eMMC并行发送所述擦除指令,直到N片eMMC都成功执行所述擦除指令,而后向用户返回指示对N片eMMC擦除成功的信息,以此实现了擦除操作的同步。

对于装置或系统实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置或系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

另外,所描述系统,装置和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1