发明内容
本申请提供一种数据处理装置,以充分利用数据存储装置中的ECC颗粒的存储空间。
第一方面,提供一种数据处理装置,所述数据处理装置的内存和CPU集成在一个封装上,所述数据处理装置包括数据颗粒,差错校验纠正ECC颗粒,双倍速率同步动态随机存储器DDR控制器,DDR物理接口PHY,所述数据颗粒和所述ECC颗粒为数据位宽相同的DDR颗粒,所述DDRPHY与所述数据颗粒和所述ECC颗粒的数据接口连接,且所述DDR PHY的DDR接口的数据位宽为所述数据颗粒和所述ECC颗粒的数据位宽之和,所述DDR控制器通过所述DDR PHY与所述数据颗粒和ECC颗粒的数据接口连接,其中,所述数据颗粒的数据总位宽为k位,k=2n,n为大于等于4的整数;所述DDR控制器包括第一校验模块、第二校验模块和缓存模块,所述第一校验模块和所述第二校验模块分别与所述缓存模块连接,所述第一校验模块和第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒的数据接口连接,所述第一校验模块和所述第二校验模块的第二类接口通过所述DDR PHY与所述ECC颗粒的数据接口连接;所述第一校验模块用于从所述缓存模块获取第一组数据,对所述第一组数据进行ECC校验,产生k/8位ECC校验码,并通过所述第一校验模块的第一类接口将所述第一组数据存储在所述数据颗粒中,通过所述第一校验模块的第二类接口将所述k/8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块用于从所述缓存模块获取第二组数据,对所述第二组数据进行ECC校验,产生另外k/8位ECC校验码,并通过所述第二校验模块的第一类接口将所述第二组数据存储在所述数据颗粒中,通过所述第二校验模块第二类接口将所述另外k/8位ECC校验码存储在所述ECC颗粒中,其中,所述第一组数据和第二组数据均包含k/2位缓存数据。
对于现有的数据处理装置来说,在将CPU和内存封装在一起时往往会有一些ECC颗粒的存储空间处于空闲状态,没有充分利用起来,造成了存储空间的浪费。而本申请中的数据处理装置的两个校验模块分别通过DDRPHY分别数据颗粒和ECC颗粒的数据接口相连,能将缓存数据分成两组进行ECC校验,这样能采用更多的校验码对缓存数据进行校验,能取得更好的校验效果,此外,通过将多产生的ECC校验码存储在ECC颗粒中,充分利用了ECC颗粒的存储空间。
结合第一方面,在第一方面的第一种实现方式中,n=6,所述数据颗粒为4片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述第一校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第一数据颗粒和第二数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDRPHY与所述数据颗粒中的第三数据颗粒和第四数据颗粒的数据接口连接;所述第一校验模块用于从所述缓存模块获取32位数据,对所述32位数据进行ECC校验,产生8位ECC校验码,并通过所述第一校验模块的第一类接口将所述32位数据存储在所述第一数据颗粒和第二数据颗粒中,通过所述第一校验模块的第二类接口将所述8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块用于从所述缓存模块获取另外32位数据,对所述另外32位数据进行ECC校验,产生另外8位ECC校验码,并通过所述第二校验模块的第一类接口将所述另外32位数据存储在所述第三数据颗粒和第四数据颗粒中,通过所述第二校验模块的第二类接口将所述另外8位ECC校验码存储在所述ECC颗粒中。结合第一方面,在第一方面的第二种实现方式中,n=5,所述数据颗粒为2片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述第一校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第一数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第二数据颗粒的数据接口连接;所述第一校验模块用于从所述缓存模块获取16位数据,对所述16位数据进行ECC校验,产生8位ECC校验码,并通过所述第一校验模块的第一类接口将所述16位数据存储在所述第一数据颗粒中,通过所述第一校验模块的第二类接口将所述8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块用于从所述缓存模块获取另外16位数据,对所述另外16位数据进行ECC校验,产生另外8位ECC校验码,并通过所述第二校验模块的第一类接口将所述16位数据存储在所述第二数据颗粒中,通过所述第二校验模块的第二类接口将所述另外8位ECC校验码存储在所述ECC颗粒中。
与现有的数据处理装置相比,本发明的数据处理装置通过产生另外的8位ECC校验码能够在存储数据时产生更好的校验效果,相比于现有的数据处理装置中每64bit单元可以纠正1bit错误和检测2bit以上的错误,本发明的数据处理装置中每64bit单元可以纠正2bit错误和检测4bit以上的错误。另外,将多出的8位ECC校验码存储在ECC颗粒中也充分利用了ECC颗粒的存储空间。
结合第一方面,在第一方面的第二种实现方式中,n=5,所述数据颗粒为2片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述第一校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第一数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第二数据颗粒的数据接口连接;所述第一校验模块用于从所述缓存模块获取16位数据,对所述16位数据进行ECC校验,产生8位ECC校验码,并通过所述第一校验模块的第一类接口将所述16位数据存储在所述第一数据颗粒中,通过所述第一校验模块的第二类接口将所述8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块用于从所述缓存模块获取另外16位数据,对所述另外16位数据进行ECC校验,产生另外8位ECC校验码,并通过所述第二校验模块的第一类接口将所述16位数据存储在所述第二数据颗粒中,通过所述第二校验模块的第二类接口将所述另外8位ECC校验码存储在所述ECC颗粒中。
结合第一方面,在第一方面的第三种实现方式中,n=5,所述数据颗粒为4片数据位宽均为8位的DDR颗粒,所述ECC颗粒为1片数据位宽为8位的DDR颗粒;所述第一校验模块的第一类接口通过所述DDRPHY与所述数据颗粒中的第一数据颗粒和第二数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第三数据颗粒和第四数据颗粒的数据接口连接;所述第一校验模块用于从所述缓存模块获取16位数据,对所述16位数据进行ECC校验,产生4位ECC校验码,并通过所述第一校验模块的第一类接口将所述16位数据存储在所述第一数据颗粒和所述第二数据颗粒中,通过所述第一校验模块的第二类接口将所述4位ECC校验码存储在所述ECC颗粒中;所述第二校验模块用于从所述缓存模块获取另外16位数据,对所述另外16位数据进行ECC校验,产生另外4位ECC校验码,并通过所述第二校验模块的第一类接口将所述16位数据存储在所述第三数据颗粒和第四数据颗粒中,通过所述第二校验模块的第二类接口将所述另外4位ECC校验码存储在所述ECC颗粒中。
第二方面,提供一种数据处理装置,所述数据处理装置的内存和CPU集成在一个封装上,所述数据处理装置包括数据颗粒,差错校验纠正ECC颗粒,双倍速率同步动态随机存储器DDR控制器,DDR物理接口PHY,所述数据颗粒和所述ECC颗粒为数据位宽相同的DDR颗粒,所述DDRPHY与所述数据颗粒和所述ECC颗粒的数据接口连接,且所述DDR PHY的DDR接口的数据位宽为所述数据颗粒和所述ECC颗粒的数据位宽之和,所述DDR控制器通过所述DDR PHY与所述数据颗粒和ECC颗粒的数据接口连接,其中,所述数据颗粒的数据总位宽为k位,k=2n,n为大于等于4的整数,所述数据颗粒用于存储CPU运行所需的数据;所述DDR控制器包括校验模块和缓存模块,所述校验模块通过所述DDRPHY与所述数据颗粒的数据接口和所述ECC颗粒的数据接口连接,所述校验模块还与所述缓存模块连接;所述校验模块用于从所述缓存模块获取k+m位缓存数据,对所述k+m位缓存数据进行ECC校验,产生1+k/8位ECC校验码,将所述k位缓存数据存储在所述数据颗粒中,将所述1+k/8位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<k/8,且m为整数。
对于现有的数据处理装置来说,在将CPU和内存封装在一起时往往会有一些ECC颗粒的存储空间处于空闲状态,没有充分利用起来,造成了存储空间的浪费。而本申请中的数据处理装置中,校验模块通过DDR PHY与数据颗粒和ECC颗粒的全部数据接口连接,校验模块可以从缓存模块获取k+m位缓存数据,并产生1+k/8位ECC校验码,并将1+k/8位ECC校验码和m位缓存数据存储在ECC颗粒中,相对于现有技术中的ECC颗粒只存储k/8位ECC校验码的数据处理装置来说,本申请中的数据处理装置中的ECC颗粒可以多存储一些缓存数据和一些校验码,充分利用了ECC颗粒的存储空间。
结合第二方面,在第二方面的第一种实现方式中,n=6,所述数据颗粒为4片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述校验模块用于从所述缓存模块获取64+m位缓存数据,对所述64+m位缓存数据进行ECC校验,产生9位ECC校验码,将所述64位缓存数据存储在所述数据颗粒中,将所述9位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<8,且m为整数。
结合第二方面,在第二方面的第二种实现方式中,n=5,所述数据颗粒为2片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述校验模块用于从所述缓存模块获取32+m位缓存数据,对所述32+m位缓存数据进行ECC校验,产生9位ECC校验码,将所述32位缓存数据存储在所述数据颗粒中,将所述9位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<8,且m为整数。
结合第二方面,以及第二方面的第一种至第二种实现方式中的任意一种,在第二方面的第三种实现方式中,所述m位缓存数据为所述CPU缓存的TAG信息和/或目录信息。
第三方面,提供一种处理数据的方法,所述方法应用于数据处理装置,所述方法应用于数据处理装置,所述数据处理装置内存和CPU集成在一个封装上,所述数据处理装置包括数据颗粒,差错校验纠正ECC颗粒,双倍速率同步动态随机存储器DDR控制器,DDR物理接口PHY,所述数据颗粒和所述ECC颗粒为数据位宽相同的DDR颗粒,所述DDR PHY与所述数据颗粒和所述ECC颗粒的数据接口连接,且所述DDR PHY的DDR接口的数据位宽为所述数据颗粒和所述ECC颗粒的数据位宽之和,所述DDR控制器通过所述DDR PHY与所述数据颗粒和ECC颗粒的数据接口连接,其中,所述数据颗粒的数据总位宽为k位,k=2n,n为大于等于4的整数,所述DDR控制器包括第一校验模块、第二校验模块和缓存模块,所述第一校验模块和所述第二校验模块分别与所述缓存模块连接,所述第一校验模块和第二校验模块的第一类接口通过所述DDRPHY与所述数据颗粒的数据接口连接,所述第一校验模块和所述第二校验模块的第二类接口通过所述DDR PHY与所述ECC颗粒的数据接口连接;所述第一校验模块从所述缓存模块获取第一组数据,对所述第一组数据进行ECC校验,产生k/8位ECC校验码,并通过所述第一校验模块的第一类接口将所述第一组数据存储在所述数据颗粒中,通过所述第一校验模块的第二类接口将所述k/8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块从所述缓存模块获取第二组数据,对所述第二组数据进行ECC校验,产生另外k/8位ECC校验码,并通过所述第二校验模块的第一类接口将所述第二组数据存储在所述数据颗粒中,通过所述第二校验模块第二类接口将所述另外k/8位ECC校验码存储在所述ECC颗粒中,其中,所述第一组数据和第二组数据均包含k/2位缓存数据。
现有的数据处理装置在处理数据时,由于ECC颗粒的存储空间的数据接口并没有全部与DDR控制器连接,因此,在操作或者处理数据时往往会导致一些ECC颗粒的存储空间处于空闲状态,没有充分利用起来,造成了存储空间的浪费。而本申请的处理数据的方法所应用的数据处理装置的两个校验模块分别通过DDR PHY分别数据颗粒和ECC颗粒的全部数据接口相连,这样在处理数据时就可以将缓存数据分成两组进行ECC校验,这样能采用更多的校验码对缓存数据进行校验,能取得更好的校验效果,此外,通过将多产生的ECC校验码存储在ECC颗粒中,充分利用了ECC颗粒的存储空间。
结合第三方面,在第三方面的第一种实现方式中,n=6,所述数据颗粒为4片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒,所述第一校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第一数据颗粒和第二数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第三数据颗粒和第四数据颗粒的数据接口连接;所述第一校验模块从所述缓存模块获取32位数据,对所述32位数据进行ECC校验,产生8位ECC校验码,并通过所述第一校验模块的第一类接口将所述32位数据存储在所述第一数据颗粒和第二数据颗粒中,通过所述第一校验模块的第二类接口将所述8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块从所述缓存模块获取另外32位数据,对所述另外32位数据进行ECC校验,产生另外8位ECC校验码,并通过所述第二校验模块的第一类接口将所述另外32位数据存储在所述第三数据颗粒和第四数据颗粒中,通过所述第二校验模块的第二类接口将所述另外8位ECC校验码存储在所述ECC颗粒中。
与现有的数据处理装置处理数据相比,本发明的处理数据的方法,通过产生16位ECC校验码,能够在存储数据时产生更好的校验效果,相比于现有的数据处理装置中每64bit单元可以纠正1bit错误和检测2bit以上的错误,本发明的处理数据的方法对于每64bit单元就可以纠正2bit错误和检测4bit以上的错误。另外,将多出的8位ECC校验码存储在ECC颗粒中也充分利用了ECC颗粒的存储空间。
结合第三方面,在第三方面的第二种实现方式中,n=5,所述数据颗粒为2片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒,所述第一校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第一数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第二数据颗粒的数据接口连接;所述第一校验模块从所述缓存模块获取16位数据,对所述16位数据进行ECC校验,产生8位ECC校验码,并通过所述第一校验模块的第一类接口将所述16位数据存储在所述第一数据颗粒中,通过所述第一校验模块的第二类接口将所述8位ECC校验码存储在所述ECC颗粒中;所述第二校验模块从所述缓存模块获取另外16位数据,对所述另外16位数据进行ECC校验,产生另外8位ECC校验码,并通过所述第二校验模块的第一类接口将所述16位数据存储在所述第二数据颗粒中,通过所述第二校验模块的第二类接口将所述另外8位ECC校验码存储在所述ECC颗粒中。
结合第三方面,在第三方面的第三种实现方式中,n=5,所述数据颗粒为4片数据位宽均为8位的DDR颗粒,所述ECC颗粒为1片数据位宽为8位的DDR颗粒,所述第一校验模块的第一类接口通过所述DDRPHY与所述数据颗粒中的第一数据颗粒和第二数据颗粒的数据接口连接,所述第二校验模块的第一类接口通过所述DDR PHY与所述数据颗粒中的第三数据颗粒和第四数据颗粒的数据接口连接;所述第一校验模块从所述缓存模块获取16位数据,对所述16位数据进行ECC校验,产生4位ECC校验码,并通过所述第一校验模块的第一类接口将所述16位数据存储在所述第一数据颗粒和所述第二数据颗粒中,通过所述第一校验模块的第二类接口将所述4位ECC校验码存储在所述ECC颗粒中;所述第二校验模块从所述缓存模块获取另外16位数据,对所述另外16位数据进行ECC校验,产生另外4位ECC校验码,并通过所述第二校验模块的第一类接口将所述16位数据存储在所述第三数据颗粒和第四数据颗粒中,通过所述第二校验模块的第二类接口将所述另外4位ECC校验码存储在所述ECC颗粒中。
第四方面,提供一种处理数据的方法,所述方法应用于数据处理装置,所述数据处理装置内存和CPU集成在一个封装上,所述数据处理装置包括数据颗粒,差错校验纠正ECC颗粒,双倍速率同步动态随机存储器DDR控制器,DDR物理接口PHY,所述数据颗粒和所述ECC颗粒为数据位宽相同的DDR颗粒,所述DDR PHY与所述数据颗粒和所述ECC颗粒的数据接口连接,且所述DDR PHY的DDR接口的数据位宽为所述数据颗粒和所述ECC颗粒的数据位宽之和,所述DDR控制器通过所述DDR PHY与所述数据颗粒和ECC颗粒的数据接口连接,其中,所述数据颗粒的数据总位宽为k位,k=2n,n为大于等于4的整数,所述DDR控制器包括校验模块和缓存模块,所述校验模块通过所述DDR PHY与所述数据颗粒的数据接口和所述ECC颗粒的数据接口连接,所述校验模块还与所述缓存模块连接;所述校验模块从所述缓存模块获取k+m位缓存数据,对所述k+m位缓存数据进行ECC校验,产生1+k/8位ECC校验码,将所述k位缓存数据存储在所述数据颗粒中,将所述1+k/8位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<k/8,且m为整数。
现有的数据处理装置在将CPU和内存封装在一起时往往会有一些ECC颗粒的存储空间处于空闲状态,没有充分利用起来,造成了存储空间的浪费。而本申请中的数据处理方法所应用的数据处理装置,通过DDR PHY将校验模块与数据颗粒和ECC颗粒的全部数据接口连接,这样在对数据进行处理时,可以利用校验模块从缓存模块获取k+m位缓存数据,并产生1+k/8位ECC校验码,并将1+k/8位ECC校验码和m位缓存数据存储在ECC颗粒中,相对于现有技术中的ECC颗粒只存储k/8位ECC校验码的数据处理方法来说,本申请中的数据处理方法可以在ECC颗粒多存储一些缓存数据和一些校验码,充分利用了ECC颗粒的存储空间。
结合第四方面,在第四方面的第一种实现方式中,n=6,所述数据颗粒为4片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述校验模块从所述缓存模块获取64+m位缓存数据,对所述64+m位缓存数据进行ECC校验,产生9位ECC校验码,将所述64位缓存数据存储在所述数据颗粒中,将所述9位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<8,且m为整数。
结合第四方面,在第四方面的第二种实现方式中,n=5,所述数据颗粒为2片数据位宽均为16位的DDR颗粒,所述ECC颗粒为1片数据位宽为16位的DDR颗粒;所述校验模块从所述缓存模块获取32+m位缓存数据,对所述32+m位缓存数据进行ECC校验,产生9位ECC校验码,将所述32位缓存数据存储在所述数据颗粒中,将所述9位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<8,且m为整数。
结合第四方面,以及第四方面的第一种至第二种实现方式中的任意一种,在第四方面的第三种实现方式中,所述m位缓存数据为所述CPU缓存的TAG信息和/或目录信息。
在某些实现方式中,所述数据处理装置的DDR控制器的数据接口位宽为160位,所述数据颗粒和所述ECC颗粒的数据总位宽为80位。
在某些实现方式中,所述数据颗粒用于存储CPU运行所需的数据,所述ECC颗粒用于存储对所述数据颗粒所存储的数据进行ECC校验而产生的ECC校验码。
在某些实现方式中,所述数据处理装置为一种CPU系统。
在某些实现方式中,所述数据处理装置的内存和CPU集成在一个芯片上。
在某些实现方式中,所述数据处理装置的内存和CPU合封在一起。
在某些实现方式中,所述CPU包含CPU内核,内存控制器,以太网控制器。
本申请中,数据处理装置的DDR控制器中的两个校验模块通过DDRPHY分别与数据颗粒和ECC颗粒的数据接口相连,能将缓存数据分成两组进行ECC校验,这样能采用更多的校验码对缓存数据进行校验,能取得更好的校验效果,此外,通过将多产生的ECC校验码存储在ECC颗粒中,充分利用了ECC颗粒的存储空间。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在图3所示的数据处理装置中,该据处理装置的内存和CPU集成在一个封装上,该数据处理装置的ECC颗粒中有一半的存储空间处于空闲状态,没有被利用,造成了ECC存储空间的浪费。为了将ECC颗粒剩余的存储空间利用起来,可以将ECC颗粒的全部的数据接口都通过DDR PHY与DDR控制器连接,并且在现有数据处理装置的基础上对DDR控制器进行改进,使得DDR控制器能够利用更多的ECC代码实现对存储数据的更准确的校验,并将该多出来的ECC代码存储到ECC颗粒剩余的存储空间里,或者,ECC颗粒的剩余存储空间还可以一部分用来存储多出来的ECC代码,另一部分再存储一些缓存信息,或者是ECC颗粒剩余的存储空间全部用来存储缓存信息。下面,结合具体的实施例对本发明实施例的数据处理装置进行详细的描述。
图4是本发明实施例的数据处理装置,如图4所示,该数据处理装置包括DDR控制器,DDR PHY(DDR PHY是CPU与DDR颗粒和ECC颗粒相连接的物理接口),数据颗粒和ECC颗粒,该DDR控制器包括缓存模块,第一校验模块,第二校验模块。其中,数据颗粒和ECC颗粒属于相同规格的DDR颗粒,数据颗粒的数据总位宽为k位,k=2n,n为大于等于4的整数。第一校验模块和第二校验模块的一端分别与DDR控制器的缓存模块连接,第一校验模块和第二校验模块的另一端都包含两类接口,分别是第一类接口和第二类接口,其中,第一类接口通过DDR PHY与数据颗粒的数据接口连接,第二类接口通过DDR PHY与ECC颗粒的数据接口连接。应理解,这里的数据颗粒可以用于存储CPU运行过程中所需要的数据,ECC颗粒可以用于存储CPU运行过程中所需要的数据进行ECC校验而产生的ECC校验码。
缓存模块可以缓存即将要存储到数据颗粒的数据。例如,缓存模块可以缓存k位数据。第一校验模块可以从缓存模块获取第一组数据,并对第一组数据进行ECC校验,产生k/8位ECC校验码,并通过第一校验模块的第一类接口将第一组数据存储在数据颗粒中,通过第一校验模块的第二类接口将k/8位ECC校验码存储在所述ECC颗粒中。
同样,第二校验模块可以从所述缓存模块获取第二组数据,对第二组数据进行ECC校验,产生另外k/8位ECC校验码,并通过第二校验模块的第一类接口将第二组数据存储在所述数据颗粒中,通过第二校验模块第二类接口将该另外k/8位ECC校验码存储在ECC颗粒中,其中,第一组数据和第二组数据均可以均包含k/2位缓存数据。
本申请中,通过将DDR控制的两个校验模块通过DDR PHY分别与数据颗粒和ECC颗粒的数据接口相连,能将缓存数据分成两组进行ECC校验,这样能采用更多的校验码对缓存数据进行校验,能取得更好的校验效果,此外,通过将多产生的ECC校验码存储在ECC颗粒中,充分利用了ECC颗粒的存储空间。
可选地,作为一个实施例,当n=6时,数据颗粒和DDR颗粒均为数据位宽为16位的DDR颗粒时,数据处理装置中的数据颗粒为4片数据位宽均为16位的DDR颗粒,ECC颗粒为1片数据位宽为16位的DDR颗粒。此时,本发明实施例的数据处理装置可以如图5所示的数据处理装置。如图5所示,第一校验模块的第一类接口通过DDR PHY分别与数据颗粒中的第一数据颗粒和第二数据颗粒的数据接口连接,第二校验模块的第一类接口通过DDR PHY分别与数据颗粒中的第三数据颗粒和第四数据颗粒的数据接口连接。这里的DDR控制器中包含两个校验模块,而现有的数据处理装置中一般只包括一个校验模块,在现有的数据处理装置中,校验模块从缓存模块中取出64位数据,在对64位数据进行校验的过程中,产生8位ECC校验码,然后将64位数据分别存储在4片数据颗粒中,将8位ECC校验码存储在ECC颗粒中,这时,ECC颗粒中只有一半的存储空间用来存储这8位ECC校验码,而另一半存储空间处于空闲状态,存储空间没有被充分利用。而本发明实施例中的数据处理装置中的DDR控制器有两个校验模块,这样在对64位数据进行ECC校验时,可以将这64位分开成两组,每组32位数据,分别有两个校验模块(也就是第一校验模块和第二校验模块)对这两组32位数据进行校验,在校验时,为了提高校验的准确性,第一校验模块和第二校验模块在分别对32位数据进行校验时均产生8位ECC校验码,校验完毕后,64位数据仍然保存在4片数据颗粒中,而16位ECC校验码都保存在ECC颗粒中,与现有的数据处理装置相比,本发明实施例的ECC校验码的数量是现有的数据处理装置的两倍。对于现有的数据处理装置来说,利用8位ECC校验码能在64位数据中纠正1位错误,检测2位以上的错误,而在本发明实施例中,由于ECC校验码增加到了16位,因此利用16位ECC校验码能在64位数据中纠正2位错误,检测4位以上的错误,因此,本发明实施例的数据处理装置不仅提高了校验的准确性,而且还充分利用了ECC颗粒多余的存储空间。
可选地,作为一个实施例,n=5时,数据处理装置的数据位总位宽位32位,该数据处理装置中的数据颗粒和DDR颗粒均为数据位宽为16位的DDR颗粒,数据颗粒为2片数据位宽均为16位的DDR颗粒,ECC颗粒为1片数据位宽为16位的DDR颗粒。与图5中所示的数据处理装置相似,该数据处理装置也包含两个校验模块,分别是第一校验模块和第二校验模块,其中第一校验模块的第一类接口通过DDR PHY与数据颗粒中的第一数据颗粒的数据接口连接,第二校验模块的第一类接口通过DDR PHY与数据颗粒中的第二数据颗粒的数据接口连接。与图5中的数据处理装置所不同的是,该数据处理装置每次是将32位的数据存储在数据颗粒中。在存储数据的过程中将32位数据分成两组,每组16位数据,由第一校验模块和第二校验模块分别进行校验处理。第一校验模块和第二校验模块在分别对16位数据进行校验时均产生8位ECC校验码,校验完毕后,32位数据仍然保存在2片数据颗粒中,而16位ECC校验码都保存在ECC颗粒中,这样也提高了数据校验的准确性,而且还充分利用了ECC颗粒多余的存储空间。
可选地,作为一个实施例,n=5,也就是说数据处理装置的数据总位宽位32位时,该数据处理装置中的数据颗粒和DDR颗粒均为数据位宽为8位的DDR颗粒,数据颗粒为4片数据位宽均为8位的DDR颗粒,ECC颗粒为1片数据位宽为8位的DDR颗粒。与图5中所示的数据处理装置相似,该数据处理装置也包含两个校验模块,分别是第一校验模块和第二校验模块,其中第一校验模块的第一类接口通过DDR PHY分别与数据颗粒中的第一数据颗粒和第二数据颗粒的数据接口连接,第二校验模块的第一类接口通过DDR PHY分别与数据颗粒中的第三数据颗粒和第四数据颗粒的数据接口连接。与图5中的数据处理装置所不同的是,该数据处理装置每次是将32位的数据存储在数据颗粒中。在存储数据的过程中将32位数据分成两组,每组16位数据,由第一校验模块和第二校验模块分别进行校验处理。第一校验模块和第二校验模块在分别对16位数据进行校验时均产生4位ECC校验码,校验完毕后,32位数据仍然保存在4片数据颗粒中,而8位ECC校验码都保存在ECC颗粒中,这样也提高了数据校验的准确性,而且还充分利用了ECC颗粒多余的存储空间。
图6示出了是本发明实施例的数据处理装置,如图6所示,该数据处理装置包含数据颗粒,ECC颗粒,DDR控制器,数据颗粒和ECC颗粒属于相同规格的DDR颗粒。数据颗粒用于存储CPU运行过程中所需要的数据,ECC颗粒用于存储CPU运行过程中所需要的数据进行ECC校验而产生的ECC校验码。数据颗粒的数据总位宽为k位,k=2n,n为大于等于4的整数。DDR控制器包含校验模块和缓存模块,校验模块分别与数据颗粒的数据接口和ECC颗粒的数据接口连接,校验模块与还与缓存模块连接。与图4和图5所示的数据处理装置所不同的是该数据处理装置中的DDR控制器只包含一个校验模块,该校验模块在对缓存模块中的数据进行ECC校验时不再分组。这时为了充分利用ECC颗粒的存储空间,可以将存储ECC校验码剩余的存储空间用来存储一些数据和/或ECC校验码。这样也充分利用了ECC颗粒的存储空间。
本申请中,通过将校验模块与数据颗粒和ECC颗粒的全部数据接口相连,能将一些缓存数据或者新增加的ECC校验码保存在ECC颗粒多余的存储空间里,充分利用了ECC颗粒的存储空间。
可选地,作为一个实施例,如图7所示的数据处理装置,在该数据处理装置中,n=6,并且数据颗粒和DDR颗粒均为16位的DDR颗粒。例如,当校验模块从缓存模块获取的是64+m位缓存数据时,可以对这64+m位缓存数据进行ECC校验,产生9位ECC校验码,将其中64位缓存数据存储在所述数据颗粒中,将9位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<8,m为整数。可选地,当校验模块从缓存模块获取的是64+m位缓存数据时,在对这些缓存数据进行ECC校验时也可以只产生8位ECC校验码(虽然这个时候的校验效果可能比较差),然后将其中64位缓存数据存储在所述数据颗粒中,将8位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中m为大于0小于等于8的整数,也就是说这个时候ECC颗粒的剩余空间可以完全用来保存缓存数据。
更具体地,当校验模块从缓存模块获取的是71位缓存数据时,可以对这71位缓存数据进行ECC校验,产生9位ECC校验码,将其中64位缓存数据存储在所述数据颗粒中,将9位ECC校验码和7位缓存数据存储在所述ECC颗粒中。这样,ECC颗粒中剩余的存储空间不仅保存了新产生的ECC校验码,而且还保存了一些其它的缓存数据,节省了存储空间保存了一些缓存数据,提高了校验的效果。此外,上述m位缓存数据为CPU缓存的TAG信息和/或目录信息,也就是说ECC颗粒剩余的存储空间可以保存TAG信息和/或目录信息。
可选地,作为一个实施例,n=5时,该数据处理装置的数据位总位宽为32位,该数据处理装置中的数据颗粒和DDR颗粒均为数据位宽为16位的DDR颗粒,数据颗粒为2片数据位宽均为16位的DDR颗粒,ECC颗粒为1片数据位宽为16位的DDR颗粒。当校验模块从缓存模块获取的是32+m位缓存数据时,可以对这32+m位缓存数据进行ECC校验,产生9位ECC校验码,将其中32位缓存数据存储在所述数据颗粒中,将9位ECC校验码和m位缓存数据存储在所述ECC颗粒中,其中0<m<8,m为整数。
上文结合图4至图7,详细的描述了根据本发明实施例的数据处理装置,应理解,本发明实施例的数据处理的方法能够利用图4至图7数据处理装置来实现对数据的处理,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。