CN105893277A - 数据处理方法及数据处理装置 - Google Patents
数据处理方法及数据处理装置 Download PDFInfo
- Publication number
- CN105893277A CN105893277A CN201610191904.6A CN201610191904A CN105893277A CN 105893277 A CN105893277 A CN 105893277A CN 201610191904 A CN201610191904 A CN 201610191904A CN 105893277 A CN105893277 A CN 105893277A
- Authority
- CN
- China
- Prior art keywords
- data
- bus
- memory
- read
- buffer
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012795 verification Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 170
- 238000003672 processing method Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000012937 correction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种数据处理方法及数据处理装置;方法包括:确定总线的操作指令需要在存储器访问的目标存储空间;从所述存储器读取所述目标存储空间的数据存入缓存器;从所述存储器读取对应所读取的数据的校验信息,基于所述校验信息对所述数据进行纠正;基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令。实施本发明,能够在响应总线的指令的过程中,减小DDR内存中存储资源的消耗和计算资源的消耗。
Description
技术领域
本发明涉及动态随机存储器的数据处理技术,尤其涉及一种数据处理方法及数据处理装置。
背景技术
双倍速率同步动态(DDR,Double Data Rate)动态随机存储器(SDRAM,Synchronous Dynamic Random Access Memory),简称为DDR内存,广泛用于服务器以及对计算精度有较高要求的场合,DDR内存对于有效数据和有效数据的校验位分别存储,例如支持错误校验(ECC)的DDR内存,校验位用于验证对DDR内存的读取或写入的数据进行纠正,实际应用中在对DDR内存进行读写操作的过程中不可避免地遇到以下情况:操作(读取或者写入)DDR内存的数据可能不是DDR内存中一个码字长度的整数倍,或者地址不是DDR内存中码字的边界位置。在从DDR内存读取数据或写入DDR内存数据时,当DDR内存的一个码字的同时存储有新写入的数据以及旧数据(在写入新数据之前存储的数据)时就需要对该码字中的新数据和旧的数据进行拼接生成新的校验位,以供在从DDR内存读出数据,根据相应码字的校验位对读出的数据进行校验。
上述操作过程中如何减小DDR内存中计算资源的消耗,尚无有效解决方案。
发明内容
本发明实施例提供一种数据处理方法及数据处理装置,能够在响应总线的指令的过程中,减小DDR内存中存储资源的消耗和计算资源的消耗。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据处理方法,所述数据处理方法包括;
确定总线的操作指令需要在存储器访问的目标存储空间;
从所述存储器读取所述目标存储空间的数据存入缓存器;
从所述存储器读取对应所读取的数据的校验信息,基于所述校验信息对所述数据进行纠正;
基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令。
优选地,所述基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令,包括:
当所述操作指令为读指令时,从所述存储器读取对应所读取的数据的校验信息;
基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正,将纠正后的所述数据发送到所述总线以响应所述总线的读指令。
优选地,所述基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令,包括:
当所述操作指令写指令时,从所述存储器读取对应所读取的数据的校验信息;
基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正;
将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据;
将所述缓存器中更新后的所述读取的数据写入所述存储器以响应所述总线的写指令。
优选地,所述将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据,包括:
所述总线设置字节有效时,
将所述写指令指示写入的数据写入所述缓存器中对应所述目标存储空间的数据,得到更新后的所述读取的数据。
优选地,所述将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据,包括:
所述总线设置字节无效时,确定所述总线被设置为字节无效时所请求写入的无效的存储空间;
将所述写指令指示写入的数据写入所述缓存器中对应所述目标存储空间中除所述无效的存储空间之外的存储空间,得到更新后的所述读取的数据。
优选地,所述方法还包括:
根据所述缓存器中更新后的所述读取的数据进行编码得到对应的校验信息;
更新所述存储器中存储所述更新后的所述读取的数据对应的校验信息。
第二方面,本发明实施例提供一种数据处理装置,所述数据处理装置包括处理器和缓存器;其中,
所述处理器,用于确定总线的操作指令需要在存储器访问的目标存储空间;
所述处理器,还用于从所述存储器读取所述目标存储空间的数据存入所述缓存器;
所述处理器,还用于从所述存储器读取对应所读取的数据的校验信息,基于所述校验信息对所述数据进行纠正;
所述处理器,还用于基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令。
优选地,所述处理器,还用于当所述操作指令为读指令时,从所述存储器读取对应所读取的数据的校验信息;
所述处理器,还用于基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正,将纠正后的所述数据发送到所述总线以响应所述总线的读指令。
优选地,所述处理器,还用于当所述操作指令写指令时,从所述存储器读取对应所读取的数据的校验信息;
所述处理器,还用于基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正;
所述处理器,还用于将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据;
所述处理器,还用于将所述缓存器中更新后的所述读取的数据写入所述存储器以响应所述总线的写指令。
优选地,所述处理器,还用于所述总线设置字节有效时,
所述处理器,还用于将所述写指令指示写入的数据写入所述缓存器中对应所述目标存储空间的数据,得到更新后的所述读取的数据。
优选地,所述处理器,还用于所述总线设置字节无效时,确定所述总线被设置为字节无效时所请求写入的无效的存储空间;
将所述写指令指示写入的数据写入所述缓存器中对应所述目标存储空间中除所述无效的存储空间之外的存储空间,得到更新后的所述读取的数据。
优选地,所述处理器,还用于根据所述缓存器中更新后的所述读取的数据进行编码得到对应的校验信息;
所述处理器,还用于更新所述存储器中存储所述更新后的所述读取的数据对应的校验信息。
本发明实施例中,在缓存器中形成总线需要读取的数据以响应总线的读指令以响应总线;以及,在缓存器中形成总线需要写入DDR内存的数据,然后将数据写入DDR内存,不需要记录字节有效信息并进行计算,仅仅在缓存器对数据进行处理,节省了计算资源。
附图说明
图1为本发明实施例中DDR内存与总线对接的示意图;
图2为本发明实施例中数据处理装置分别与DDR内存、总线对接的示意图;
图3为本发明实施例中DDR内存的存储结构示意图;
图4为本发明实施例中数据处理方法的流程示意图一;
图5为本发明实施例中数据处理方法的流程示意图二;
图6为本发明实施例中数据处理方法的流程示意图三;
图7为本发明实施例中数据处理装置的硬件结构示意图;
图8为本发明实施例中在DDR内存中进行数据处理的示意图;
图9为本发明实施例中数据处理装置的功能架构结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
DDR内存是目前的主流规范内存,各大芯片组厂商的主流产品全部都采用DDR内存作为数据交换器件。DDR内存的基本原件是电容,电容可以在两个极板上短时间内保留电荷,可以通过两极之间有无电压差代表电子计算设备中的0和1。在使用过程中由于电磁辐射等一些因素会造成电荷量的变化,从而使它代表的0和1发生反转,使得DDR内存中的数据变得不可靠。为了增加DDR内存中数据的可靠性,在DDR内存中的数据进行保护,一种通用的做法是对DDR内存中的数据进行信道编码并在DDR内存内存中存储编码结果,使其具备一定的纠正能力,从而在DDR内存中有数据发生变化时能够基于DDR内存中信道编码结果进行纠正。由于加入信道编码功能后(需要利用DDR内存的一定的访问带宽读取信道编码结果)会造成DDR内存的访问带宽(也就是读取有效数据的带宽)的降低,以及降低DDR内存的有效数据存储空间,所以只对DDR内存中的重要的并且对吞吐量要求不高数据进行保护。
如图1所示,DDR内存设置在设备(如服务器等)中与设备的总线连接,与设备的总线交互的结构为从(slave)接口,slave接口一般使用高级可扩展接口(AXI,Advanced eXtensible Interface),此时DDR内存作为从(slave)端,设备的总线为主(master)端,DDR内存通过slave接口被动接收作为master端的设备的总线发送的数据和命令。
如图2所示,在DDR内存和总线之间增加了承载信道编码功能的数据处理装置后,数据处理装置提供了slave接口接收来自作为master端的总线下发的数据或命令,通过处理后再转换成master接口的数据或命令发送到DDR内存的slave接口,由DDR内存存储数据或执行命令。
信道编码的本质是引入冗余度,即在传输的信息码元后增加一些多余的码元(称为校验位),使受损或出错的信息仍然能够在接收端恢复。分组码是一种常用的信道编码方式,它将k个信息码元划分为一组,在后面附加r个监督码元,组成长度为n=k+r的码字。
由于分组码的这种特性使得在进行纠正时需要将一个码字包含的所有信息位都读出来,即使总线的命令显示并不需要DDR内存的该码字中全部的数据。同样在数据写入DDR内存时,写入DDR内存的数据长度可能不是DDR内存中的一个码字长度的整数倍,或者需要从DDR读取的数据的存储地址不是DDR中的码字的边界位置。因此,当一个码字的同时存储有新写入的数据以及旧数据(在写入新数据之前存储的数据)时就需要对该码字中的新数据和旧的数据进行拼接生成新的校验位。
如图3所示的DDR内存中存储数据的数据结构的示意图,在DDR内存存储有效数据和对有效数据中每个码字的校验信息,并且有效数据和校验位(存储有效数据的校验信息)使用DDR内存中的不同存储空间,如果总线请求写入的数据地址范围为图3所示的黑色线条框中,那么这部分地址跨越了第2个码字,第3个码字和第4个码字。但是由于码字的信息位(承载有效数据)和校验位是对应的,所以当码字中信息位发生改变后,校验位也需要变化。
由于第2和码字和第4个码字被写入了部分数据,这就需要将第2个码字新写入的数据与第2个码字中的旧数据(原先存储而未被覆盖的数据)进行合并,并基于合并后数据计算得到新的校验位;同理,第4个码字新写入的数据与第4个码字中的旧数据(原先存储而未被覆盖的数据)进行合并,并基于合并后数据计算得到新的校验位。对于第3个码字的被全部写入的新的数据,因此基于被写入的新数据生成对应的校验位。
上述写入处理是针对总线上没有设置字节有效(byte valid,控制一个周期总线上传输的数据有的字节有效)信号的情况的处理;即使总线要求写入的地址范围覆盖第3码字的全部空间,且在向DDR内存中的第3个码字写入数据时总线上设置了字节无效(byte unvalid,控制一个周期总线上传输的数据无效),那么在第3个码字中只会部分地被写入新数据,这样第3个码字被部分地写入新数据时,仍然需要对第3个码字中写入的新数据以及未被覆盖的旧数据进合并,基于合并后的数据生成新的校验位。
针对上述问题,本发明实施例首先对几种可行的处理方式进行分析。
1)设置缓存,接收总线传输过来的数据,并且记录byte valid信息,当数据传送至缓存之后,再将DDR内存中需要写入的码字中不需要被覆盖的数据读出,与缓存中的需要写入的新的数据合并后存入DDR内存中对应的码字并生成校验位。这样的处理方式带来的问题:一是需要消耗缓存资源来存储bytevalid信息,二是在从DDR内存中读原始数据时也需要发送byte valid信号,需要精确地计算每个byte在缓存中的位置,从而额外消耗了计算资源。
2)直接将总线接收到的数据转发到DDR内存中,当数据全部传输至DDR内存之后再从DDR内存中把数据全部读出再次进行编码。这种做法的缺点是由于没有对DDR内存中无需替换的原始数据进行校验,从而增加了译码错误的概率。
可见,上述方式者对DDR内存中存储资源和计算资源的额外消耗。
为避免对DDR内存中存储资源和计算资源的额外消耗,参见图4示出的本发明实施例提供的数据处理方法的一个可选的流程示意图,该方法应用于数据处理装置,数据处理装置设置在DDR内存和使用DDR内存的设备(如笔记本电脑、台式机电脑、服务器)的总线之间,实际应用中,数据处理装置可以采用微处理器(MCU)、专用集成电路(ASIC)、逻辑可编程门阵列(FPGA)实现。
一个示例如图2所示,数据处理装置在DDR内存和总线之间,数据处理装置提供了slave接口接收来自作为master端的总线下发的数据或命令,通过处理后再转换成master接口的数据或命令发送到DDR内存的slave接口,由DDR内存存储数据或执行命令。
当数据处理装置通过slave接收到作为master的总线的操作指令(如读取数据的指令或写入数据的指令,当然,在接收到写入数据的指令时还接收到待写入的数据),参见图4,在步骤101,确定总线的操作指令需要在存储器访问的目标存储空间(例如需要读取数据对应的码字或需要写入数据对应的码字);在步骤102,从存储器读取目标存储空间的数据(例如需要读取数据对应的码字中的数据,或需要写入数据对应的码字中的数据)存入缓存器;在步骤103,从存储器读取对应所读取的数据的校验信息,基于校验信息对数据进行纠正;在步骤104,基于纠正后的数据、以及操作指令的操作类型(例如,操作指令是读取数据的指令还是写入数据的指令)响应总线的操作指令。
以下结合操作指令的不同类型对上述步骤进行说明,上述的存储器在以下具体示例中可以为DDR内存。
1)操作指令为从DDR内存读取数据的指令,参见图5,响应总线的操作指令包括以下步骤:
步骤201,确定总线的读指令需要在存储器访问的目标存储空间。
待读取的数据在DDR具有对应的码字空间(目标存储空间),部分码字中的数据可能仅仅有一部分是总线需要读取的数据,例如,如图3所示,待读取的数据如图3中的线条框所示,部分码字(如第3个码字)中仅仅有部分数据是总线需要读取的数据。当然,也存在这样一种情况,待读取的数据对应的码字空间中的全部数据都是总线需要读取的数据。
步骤202,从存储器读取目标存储空间的数据存入缓存器。
在DDR内存中数据的基本读取单位为码字,因此将读取数据对应码字空间中的全部数据读取到缓存器。
步骤203,从存储器读取对应所读取的数据的校验信息,基于校验信息对数据进行纠正。
DDR内存中存储有信息位(有效数据)和校验位(码字的校验信息),在确定需要写入的数据对应的码字后,可以从DDR内存中读取相应码字的校验位至DDR内存。
步骤204,将纠正后的读取的数据发送到总线以响应总线的读指令。
将码字的数据读取到缓存器后,由于部分码字空间中的数据可能仅有部分数据是总线期望读取的,因此,在对缓存器中的码字空间的数据进行纠正后,仅将码字空间中的数据中总线所期望读取的数据发送到总线。
2)操作指令为从DDR内存写入数据的指令,参见图6,响应总线的操作指令包括以下步骤:
步骤301,确定总线的写指令需要在存储器访问的目标存储空间。
待写入的数据在DDR具有对应的码字空间(目标存储空间),部分码字空间中的数据可能仅仅有一部分是总线需要写入的存储空间。当然,也存在这样一种情况,待写入的数据对应的码字空间中的全部数据都是总线需要覆盖的数据(以写入新数据)。
步骤302,从存储器读取目标存储空间的数据存入缓存器。
在DDR内存中数据的基本读取单位为码字,因此将待写入数据在DDR内存中对应的码字的全部数据读取到缓存器。
步骤303,从存储器读取对应所读取的数据的校验信息。
DDR内存中存储有信息位(有效数据)和校验位(码字的校验信息),在确定需要读取的数据对应的码字后,可以从DDR内存中读取相应码字的校验位。
步骤304,基于校验信息对缓存器中存储的读取的数据进行纠正。
步骤305,将写指令指示写入的数据写入缓存器中,得到更新后的读取的数据。
包括以下两种情况:
1)总线设置字节有效时,总线在写入数据的所有总线周期中输出的待写入的数据都是有效的,因此,将写指令指示写入的数据以覆盖的方式写入缓存器中对应目标存储空间的数据,对从DDR内存中读取的数据进行更新,也就是以待写入的数据对缓存器中的数据进行了覆盖。
2)总线设置字节无效时,确定被设置为字节无效的存储空间;总线在写入数据的所有总线周期中只有在部分总线周期向数据处理装置输出的待写入的数据是有效的,在总线在某个总线周期被设置字节无效时,总线在该总线周期向DDR内存中对应的码字写入数据是无效的,可以视为该码字(无效存储空间)并没有被写入新的数据,没有必要读取该码字的数据至缓存器,因此,仅仅将写指令指示写入的数据覆盖缓存器中对应目标存储空间中除无效的存储空间之外的存储空间,对从DDR内存中读取的数据进行更新,也就是以总线输出的待写入的有效数据对缓存器中的数据进行了覆盖。
步骤306,将缓存器中更新后的读取的数据写入存储器中的目标存储空间以响应总线的写指令。
在向DDR存储器写入数据之后,还对缓存器中发生更新的码字重新编码得到校验位,更新DDR内存中对应码字的校验位。
参见图7,本发明实施例提供一种数据处理装置,数据处理装置包括处理器100和缓存器200。
处理器100,用于确定总线的操作指令需要在存储器访问的目标存储空间;从存储器读取目标存储空间的数据存入缓存器200;从存储器读取对应所读取的数据的校验信息,基于校验信息对数据进行纠正;基于纠正后的数据、以及操作指令的操作类型响应总线的操作指令。
总线的操作指令包括以下两种情况:
1)读指令
当操作指令为读指令时,处理器100从存储器读取对应所读取的数据的校验信息;基于校验信息对缓存器200中存储的读取的数据进行纠正,将纠正后的数据发送到总线以响应总线的读指令。
2)写指令
当操作指令写指令时,处理器100从存储器读取对应所读取的数据的校验信息;基于校验信息对缓存器200中存储的读取的数据进行纠正;将写指令指示写入的数据写入缓存器200中,得到更新后的读取的数据;将缓存器200中更新后的读取的数据写入存储器以响应总线的写指令。
在响应写指令时,如果总线在所有的总线周期上都没有被设置字节无效(也就是在所有的总线周期输出的数据都是有效的),处理器100将写指令指示写入的数据写入缓存器200中对应目标存储空间的数据,得到更新后的读取的数据;利用缓存器200中的数据发送至总线作为读指令的响应。
在响应写指令时,如果总线在部分的总线周期上被设置字节无效(也就是在部分总线周期输出的数据是无效的),处理器100确定总线被设置为字节无效时在存储器中所请求写入的无效的存储空间;将写指令指示写入的数据写入缓存器200中对应目标存储空间中除无效的存储空间之外的存储空间,得到更新后的读取的数据。
在响应总线的写指令对存储器写入数据后,处理器100根据缓存器200中更新后的读取的数据进行编码得到对应的校验信息;更新存储器中存储更新后的读取的数据对应的校验信息。
处理器100可以根据需要而实施为多个处理器以对应实现不同的功能,如用于与DDR内存对接的master接口,与作为master端的总线对接的slave接口,对总线的操作指令进行解析以在存储器中确定目标存储空间的命令解析模块,以及用于对数据进行编码生成校验信息的编码器,对存储器的校验位进行读取的译码器等。
实际实施中缓存器200可以根据响应操作指令的不同而实施为响应读指令的读缓存器,以及响应写指令的写缓存器。
以下再结合具体示例进行说明。
DDR内存中数据管理方式如图8所示,
①表示一个码字的信息位。
②代表一个码字的边界地址,该地址由数据处理装置的命令解模块计算得出。
③为计算后得到的需要访问DDR内存的全部地址空间,并且总线的所有总线周期设置字节有效。从图8中可以看出,由于是以码字为基本单位访问DDR内存的存储空间,访问的DDR内存的空间要大于总线请求(读或写)的空间范围。
④为新的数据(在第2个码字中新写入的数据)和原始的数据在缓存中拼接成一个新的码字的信息位。
⑤为由④生成的新的校验位,替换原来第2个码字的校验位。
数据处理装置的一个可选的架构示意图如图9所示,采用符合AXI标准的slave接口对接作为master端的总线(采用AXI标准),采用符合AXI标准的master接口对接DDR内存。
命令解模块负责接收master端的命令,分析是写指令还是读指令,以及读写的长度。并且根据总线访问的长度,起始地址等信息计算出DDR内存中需要读取的码字,如图8中③的范围。
如果master端发送的写指令,那么整个数据流程由数据处理装置中的写控制模块进行调配,写缓存器(write buffer)作为响应写指令的数据缓存。如果master端发送的是读指令,那么数据流程由数据处理装置中的读控制模块进行调配,读缓存器(read buffer)作为响应读指令的数据缓存。
编码器和译码器分别完成信道编码和译码,它们能够调用数据处理装置中的master接口完成写校验位和读校验位。
对于访问DDR内存时进行数据保护和数据合并的过程主要分为以下几步
1)命令解模块根据一个码字的信息位长度和总线请求的最低地址以及长度计算出需要访问DDR内存的起始地址和结束地址(目标存储空间)。
2)如果总线请求是读DDR内存,那么数据处理装置的master接口发出读指令,信息位全部读出在read buffer中进行缓存,之后译码器调用master接口读出码字的校验位,进行译码并对错误的码字在read buffer中进行纠正。译码结束后利用read buffer的数据响应master端的读指令,此时,数据处理装置的slave接口将read buffer中的数据传输到master端。
3)如果总线请求是写DDR内存,那么无法预测在数据传输过程中是否有byte unvalid的情况发生(除非软件有特殊说明),所以即使计算得到master端请求的地址空间正好是码字的边界,但如果某个总线周期被设置为byte无效,那么DDR内存中相应位置的码字仍然需要参与新的校验位计算。所以,master接口首先需要发送读指令,把需要访问的码字空间所有数据读出到write buffer,之后译码器调用master接口读出需要访问的码字空间的码字的校验位,进行译码并对错误的码字在write buffer中进行纠正,然后slave接口响应master端的写指令,slave接口将把master端发送过来的数据写到write buffer中。如果bytevalid,直接覆盖write buffer中相应的数据,如果byte unvalid,那么,slave接口会进行译码,跳过该byte unvalid对应的byte在write buffer中对应的位置,从而原始的数据不会被覆盖。当master端的数据传输结束之后,数据处理装置的master接口会向DDR内存发送写指令,将write buffer中的数据写入DDR内存,在写入的过程中,数据也会输入到编码器,生成校验位。当所有的数据都写入DDR内存之后,校验位随之生成,此时编码器会调用master接口将校验位写到DDR内存中。
4)如果数据处理装置被旁路(bypass),那么master端直接映射到DDR内存的slave接口上,数据处理装置不再发生作用。
综上,本发明实施例至少具有以下有益效果:
1)在缓存器中形成总线需要读取的数据以响应总线的读指令,在缓存器中形成总线需要写入DDR内存的数据,然后将数据写入DDR内存,不需要记录byte valid信息并进行计算,仅仅在缓存器对数据进行处理,节省了计算资源。
2)能够对DDR内存中的原始数据读出并进行校验,如果发现错误可进行纠正,从而增加了数据的可靠性。
3)使用符合AXI标准的slave接口对接作为master端的总线,使用符合AXI标准的master接口对接DDR内存的slave接口,直接由标准的接口进行映射,对标准实现了兼容,实际实施中无需对设备进行改动。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序命令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种数据处理方法,其特征在于,所述数据处理方法包括:
确定总线的操作指令需要在存储器访问的目标存储空间;
从所述存储器读取所述目标存储空间的数据存入缓存器;
从所述存储器读取对应所读取的数据的校验信息,基于所述校验信息对所述数据进行纠正;
基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令。
2.如权利要求1所述的数据处理方法,其特征在于,所述基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令,包括:
当所述操作指令为读指令时,从所述存储器读取对应所读取的数据的校验信息;
基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正,将纠正后的所述数据发送到所述总线以响应所述总线的读指令。
3.如权利要求1所述的数据处理方法,其特征在于,所述基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令,包括:
当所述操作指令写指令时,从所述存储器读取对应所读取的数据的校验信息;
基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正;
将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据;
将所述缓存器中更新后的所述读取的数据写入所述存储器以响应所述总线的写指令。
4.如权利要求3所述的数据处理方法,其特征在于,所述将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据,包括:
所述总线设置字节有效时,
将所述写指令指示写入的数据写入所述缓存器中对应所述目标存储空间的数据,得到更新后的所述读取的数据。
5.如权利要求3所述的数据处理方法,其特征在于,所述将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据,包括:
所述总线设置字节无效时,确定所述总线被设置为字节无效时在所述存储器中所请求写入的无效的存储空间;
将所述写指令指示写入的数据写入所述目标存储空间中除所述无效的存储空间之外的存储空间,得到更新后的所述读取的数据。
6.如权利要求4或5所述的数据处理方法,其特征在于,所述方法还包括:
根据所述缓存器中更新后的所述读取的数据进行编码得到对应的校验信息;
更新所述存储器中存储所述更新后的所述读取的数据对应的校验信息。
7.一种数据处理装置,其特征在于,所述数据处理装置包括处理器和缓存器;其中,
所述处理器,用于确定总线的操作指令需要在存储器访问的目标存储空间;
所述处理器,还用于从所述存储器读取所述目标存储空间的数据存入所述缓存器;
所述处理器,还用于从所述存储器读取对应所读取的数据的校验信息,基于所述校验信息对所述数据进行纠正;
所述处理器,还用于基于纠正后的所述数据、以及所述操作指令的操作类型响应所述总线的操作指令。
8.如权利要求7所述的数据处理装置,其特征在于,
所述处理器,还用于当所述操作指令为读指令时,从所述存储器读取对应所读取的数据的校验信息;
所述处理器,还用于基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正,将纠正后的所述数据发送到所述总线以响应所述总线的读指令。
9.如权利要求7所述的数据处理装置,其特征在于,
所述处理器,还用于当所述操作指令写指令时,从所述存储器读取对应所读取的数据的校验信息;
所述处理器,还用于基于所述校验信息对所述缓存器中存储的所述读取的数据进行纠正;
所述处理器,还用于将所述写指令指示写入的数据写入所述缓存器中,得到更新后的所述读取的数据;
所述处理器,还用于将所述缓存器中更新后的所述读取的数据写入所述存储器以响应所述总线的写指令。
10.如权利要求9所述的数据处理装置,其特征在于,
所述处理器,还用于所述总线设置字节有效时,
所述处理器,还用于将所述写指令指示写入的数据写入所述缓存器中对应所述目标存储空间的数据,得到更新后的所述读取的数据。
11.如权利要求10所述的数据处理装置,其特征在于,
所述处理器,还用于所述总线设置字节无效时,确定所述总线被设置为字节无效时在所述存储器所请求写入的无效的存储空间;
将所述写指令指示写入的数据写入所述目标存储空间中除所述无效的存储空间之外的存储空间,得到更新后的所述读取的数据。
12.如权利要求10或11所述的数据处理装置,其特征在于,
所述处理器,还用于根据所述缓存器中更新后的所述读取的数据进行编码得到对应的校验信息;
所述处理器,还用于更新所述存储器中存储所述更新后的所述读取的数据对应的校验信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610191904.6A CN105893277A (zh) | 2016-03-30 | 2016-03-30 | 数据处理方法及数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610191904.6A CN105893277A (zh) | 2016-03-30 | 2016-03-30 | 数据处理方法及数据处理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893277A true CN105893277A (zh) | 2016-08-24 |
Family
ID=57014638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610191904.6A Pending CN105893277A (zh) | 2016-03-30 | 2016-03-30 | 数据处理方法及数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893277A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625281A (zh) * | 2020-05-25 | 2020-09-04 | 上海载德信息科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN116701042A (zh) * | 2023-07-27 | 2023-09-05 | 飞腾信息技术有限公司 | 一种内存数据保留方法、保留装置和相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629235A (zh) * | 2012-03-01 | 2012-08-08 | 重庆中天重邮通信技术有限公司 | 一种提高ddr存储器读写速率的方法 |
CN103077123A (zh) * | 2013-01-15 | 2013-05-01 | 华为技术有限公司 | 一种数据写入和读取方法及装置 |
CN103577275A (zh) * | 2013-10-24 | 2014-02-12 | 华为技术有限公司 | 一种数据校验的方法、设备和系统 |
US20150370711A1 (en) * | 2014-06-18 | 2015-12-24 | International Business Machines Corporation | Method and apparatus for cache memory data processing |
-
2016
- 2016-03-30 CN CN201610191904.6A patent/CN105893277A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629235A (zh) * | 2012-03-01 | 2012-08-08 | 重庆中天重邮通信技术有限公司 | 一种提高ddr存储器读写速率的方法 |
CN103077123A (zh) * | 2013-01-15 | 2013-05-01 | 华为技术有限公司 | 一种数据写入和读取方法及装置 |
CN103577275A (zh) * | 2013-10-24 | 2014-02-12 | 华为技术有限公司 | 一种数据校验的方法、设备和系统 |
US20150370711A1 (en) * | 2014-06-18 | 2015-12-24 | International Business Machines Corporation | Method and apparatus for cache memory data processing |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625281A (zh) * | 2020-05-25 | 2020-09-04 | 上海载德信息科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN116701042A (zh) * | 2023-07-27 | 2023-09-05 | 飞腾信息技术有限公司 | 一种内存数据保留方法、保留装置和相关设备 |
CN116701042B (zh) * | 2023-07-27 | 2023-10-13 | 飞腾信息技术有限公司 | 一种内存数据保留方法、保留装置和相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7206891B2 (en) | Multi-port memory controller having independent ECC encoders | |
US9323602B2 (en) | Error correction with extended CAM | |
US9436546B2 (en) | Apparatus for error detection in memory devices | |
US20120159286A1 (en) | Data transmission device, memory control device, and memory system | |
KR20090028507A (ko) | 비휘발성 메모리 에러 보정 시스템 및 방법 | |
US8065555B2 (en) | System and method for error correction in cache units | |
CN110309013B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
TW201346550A (zh) | 實體頁、邏輯頁及碼字對應 | |
CN108665939B (zh) | 为存储器提供ecc的方法与装置 | |
US10938417B2 (en) | Flash memory controller and encoding circuit and decoding circuit within flash memory controller | |
KR20180086816A (ko) | 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법 | |
US11409608B2 (en) | Providing host-based error detection capabilities in a remote execution device | |
CN112214346A (zh) | 用于存储器子系统中的数据修改期间的错误检测的方法及装置 | |
JP4339914B2 (ja) | エラー訂正コード生成方法及びメモリ管理装置 | |
CN115729746A (zh) | 一种基于crc和ecc存储数据保护方法 | |
JP4819843B2 (ja) | メモリ装置のためのeccコード生成方法 | |
CN111221746B (zh) | 数据储存系统与其相关方法 | |
JP2009064238A (ja) | メモリシステム | |
CN105893277A (zh) | 数据处理方法及数据处理装置 | |
KR101999288B1 (ko) | 메모리 데이터의 에러 보정 장치 및 방법 | |
CN108762975B (zh) | 一种ecc数据存储方法、系统及存储介质 | |
CN114356645A (zh) | 用于数据纠错的方法、装置、电子设备及存储介质 | |
US8447932B2 (en) | Recover store data merging | |
CN107977282B (zh) | 一种SPI-Nand读取数据页的方法及装置 | |
CN114116530B (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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170302 Address after: The 100176 branch of the Beijing economic and Technological Development Zone fourteen Street No. 99 building 33 building D No. 2226 Applicant after: Beijing legend core technology Co., Ltd. Address before: 100085 Haidian District West Road, Beijing, No. 6 Applicant before: Lenovo (Beijing) Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160824 |