CN104375946A - 一种数据处理的方法及装置 - Google Patents

一种数据处理的方法及装置 Download PDF

Info

Publication number
CN104375946A
CN104375946A CN201310359560.1A CN201310359560A CN104375946A CN 104375946 A CN104375946 A CN 104375946A CN 201310359560 A CN201310359560 A CN 201310359560A CN 104375946 A CN104375946 A CN 104375946A
Authority
CN
China
Prior art keywords
data segment
write
write request
start address
read request
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.)
Granted
Application number
CN201310359560.1A
Other languages
English (en)
Other versions
CN104375946B (zh
Inventor
崔泽汉
陈明宇
阮元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310359560.1A priority Critical patent/CN104375946B/zh
Publication of CN104375946A publication Critical patent/CN104375946A/zh
Application granted granted Critical
Publication of CN104375946B publication Critical patent/CN104375946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理的方法,包括:根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段;当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。本发明实施例还提供相应的装置。本发明技术方案可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。

Description

一种数据处理的方法及装置
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据处理的方法及装置。
背景技术
在现有的内存控制器中,通常都会在一定的时间窗口内对读写请求进行调度,以提高性能。由于读请求往往对性能的影响更为关键,因此写请求被暂时缓存起来,优先处理读请求,直至写请求队列的深度达到一定的临界值才开始处理写请求。每个读请求都应该返回最新写入的数据段。由于写请求被缓存起来,因此最新的数据段可能并不在内存中,而是缓存在内存控制器的写请求队列中。这样每处理一个读请求,都必须检查其对应的数据段是否缓存在写请求队列中。
在传统的内存系统中,读写请求都是相同的固定的粒度(即每次访问的数据段量,通常是64字节),要检查读请求对应的数据段是否缓存在写请求队列中,只需要将该读请求的地址,并行地与所有缓存的写请求的地址进行比较,如果至少有一个相同,就表明最新数据段缓存在写请求队列中,否则表明最新数据段在内存中。
而在一些较新的内存系统中,读写请求的粒度都是可变的,每个请求访问的是一段内的内存。在这种场景下,判断读请求对应的数据段是否缓存在内存控制器中,需要将读请求对应的,并行地与所有缓存的写请求的进行比较:如果至少有一个重叠,就表明读请求对应的全部或部分最新数据段缓存在内存控制器中,否则,读请求对应的全部最新数据段都在内存中。
本发明的发明人发现,对于要判断可变粒度的读请求与写请求的是否重叠,在硬件上需要两个大小比较器和一个逻辑与门。大小比较器的逻辑资源消耗大,而且需要进位逻辑,延迟也大很多。特别是当内存控制器的写请求队列较长时,每一项缓存的写请求都需要这样的比较电路,面积、延迟、功耗的开销都很大。
发明内容
本发明实施例提供一种数据处理的方法,可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。本发明实施例还提供了相应的装置。
本发明第一方面提供一种数据处理的方法,包括:
根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;
按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段;
当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
结合第一方面,在第一种可能的实现方式中,所述按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段,包括:
获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
通过不同的相等比较器,分别确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,当所述等式关系成立时,所述当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段,包括:
停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求及对应的数据段。
结合第一方面第一种可能的实现方式,在第三种可能的实现方式中,当所述等式关系成立时,所述方法还包括:
根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,当所述与关系式为真时,所述当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段,包括:
停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第五种可能的实现方式中,所述根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段的掩码,包括:
根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;
找到所述位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
本发明第二方面提供一种数据处理装置,包括:
计算单元,用于根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;
检测单元,用于按照预置的与所述数据段的地址和所述计算单元计算出的掩码关联的等式检测关系,从写请求队列中检测所述数据段;
处理单元,用于当所述检测单元检测出所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
结合第二方面,在第一种可能的实现方式中,所述检测单元包括:
获取子单元,用于获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
输入子单元,用于输入所述获取子单元获取的所要写入的数据段的起始地址和掩码,以及所述读请求所请求读取的数据段的起始地址和掩码;
等式比较子单元,用于在所述输入子单元输入所述所要写入的数据段的起始地址和掩码,以及所述读请求所请求读取的数据段的起始地址和掩码后,做等式比较,确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,当所述等式关系成立时,
所述处理单元,用于停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求及对应的数据段。
结合第二方面第一种可能的实现方式,在第三种可能的实现方式中,当所述等式关系成立时,
所述计算单元,还用于根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
所述装置还包括:
确定单元,用于确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,当所述与关系式为真时,
所述处理单元,用于停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第五种可能的实现方式中,所述计算单元包括:
计算子单元,用于根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;
掩码确定子单元,用于找到所述计算子单元计算出的位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
本发明实施例采用根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段;当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。与现有技术中需要大小比较器才能确定是否重叠相比,本发明实施例提供的方法,可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中数据处理的方法的一实施例示意图;
图2是本发明实施例中数据处理的方法的另一实施例示意图;
图3是本发明实施例中数据处理的装置的一实施例示意图;
图4是本发明实施例中数据处理的装置的另一实施例示意图;
图5是本发明实施例中数据处理的装置的另一实施例示意图;
图6是本发明实施例中数据处理的装置的另一实施例示意图;
图7是本发明实施例中数据处理的装置的另一实施例示意图。
具体实施方式
本发明实施例提供一种数据处理的方法,可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。本发明实施例还提供了相应的装置。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的。
参阅图1,本发明实施例提供的数据处理的方法的一实施例包括:
101、根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码。
读请求用于请求读取数据段,会携带请求读取的数据段的起始地址和数据段长度,例如:起始地址为0000,长度为1,那么就是要读取从0000~0001的数据段。
掩码是按照预置的规则计算的,可以有多种计算规则。
102、按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段。
本发明实施例中可以预先设置读请求所请求读取的数据段的起始地址和掩码与写请求所对应的数据段的起始地址和掩码的等式检测关系,当等式成立时,就可以确定读请求所请求的数据段在写请求队列中。
103、当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
当所请求读取的数据段在写请求队列中时,可以直接从写请求队列中获得该读请求所请求的数据段,而不需要等写请求写入内存后,再从内存中提取,从而提高了数据段处理的效率。
本发明实施例采用根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段;当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。与现有技术中需要大小比较器才能确定是否重叠相比,本发明实施例提供的方法,可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的数据处理的方法的一可选实施例中,所述按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段,可以包括:
获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
通过不同的相等比较器,分别确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
本发明实施例中,addr1和mask1是唯一的,但addr2和mask2有多个,每个写请求对应的数据段都有一个addr2和mask2,每个相等比较器可以只负责比较一个写请求对应的数据段,上述等式成立时,说明读请求所请求的数据段与写请求队列中至少有一个写请求对应的数据段在绝大多数情况下都会重叠。
可选地,在上述图1对应的一可选实施例的基础上,本发明实施例提供的数据处理的方法的另一可选实施例中,当所述等式关系成立时,所述当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段,包括:
停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求及对应的数据段。
本发明实施例中,当addr1&mask1&mask2==addr2&mask1&mask2等式关系成立时,说明读请求所请求的数据段与写请求队列中至少有一个写请求对应的数据段绝大多数情况下都会重叠,一种获取最新数据段的方法可以为,保持当前读请求,并且不再接收新的请求,优先处理写请求,直至写请求队列中引起重叠的所有写请求全部被移出写请求队列,然后将读请求填入读请求队列,继续接收新的请求。
可选地,在上述图1对应的一可选实施例的基础上,本发明实施例提供的数据处理的方法的另一可选实施例中,当所述等式关系成立时,所述方法还可以包括:
根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。上述与关系式为真时,说明两个数据段肯定重叠。
本发明实施例中,当addr1&mask1&mask2==addr2&mask1&mask2等式关系成立时,可以认为读请求所请求的数据段与写请求队列中至少有一个写请求对应的数据段可能重叠,但因等式中涉及的掩码实际上扩大了数据段的,所以,最好进行进一步的精细比对,精细比对的方法可以为:将读请求所请求读取的数据段的起始地址与结束地址与有可能重叠的写请求对应数据段的起始地址和结束地址按照上述与关系式进行精确比较,本发明实施例中,因先进行等式比较,如果等式都不成立,说明等式两端的数据段不可能存在重叠,当等式成立时,再将等式两端的数据段输入大小比较器进行比较,这样,只需要一个或两个大小比较器即可,不需要像现有技术中那么多个复杂的大小比较器。
可选地,在上述另一可选实施例的基础上,本发明实施例提供的数据处理的方法的另一可选实施例中,当所述与关系式为真时,所述当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段,可以包括:
停止接收新的读请求或者写请求,按照顺序所述写请求队列中移出使所述等式关系成立的写请求队列中所有写请求对应的数据段。
本发明实施例中,当精确比较后,确定读请求所请求的数据段与写请求队列中至少有一个写请求对应的数据段重叠,可以直接从写请求队列中获取读请求所请求的数据段,而不需要从内存中获取。
可选地,在上述图1对应的实施例或图1对应的前两个可选实施例中任一实施例的基础上,本发明实施例提供的数据处理的方法的另一可选实施例中,所述根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段的掩码,可以包括:
根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;
找到所述位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
本发明实施例中,给出了计算掩码的具体方案,例如,所请求读取的数据段的起始地址为0000,结束地址为0001,按位异或的结果为0001,那么找到第一个1后,将1前面的0都填为1,将1改为0,得到该数据段的掩码为1110,写请求对应的数据段的掩码的计算方案与读请求相同,例如,写请求对应的数据段的起始地址为1100,结束地址为1101,那么该数据段对应的掩码为1110,可以理解为,addr1为0000,mask1为1110,addr2为1100,mask2为1110,那么:0000&1110&1110=0000、1100&1110&1110=1100,0000与1100不相等,从而可以确定等式关系不成立,该读请求所请求读取的数据段与写请求对应的数据段不重叠。如果写请求对应的数据段的起始地址为0010,结束地址为0111,那么该数据段的掩码为1000,这样,0000&1110&1000=0000,0010&1110&1000=0000,这样,可以确定等式关系成立,该读请求所请求读取的数据段与写请求对应的数据段可能重叠。
为了便于说明,下面以一个应用场景为例,说明本发明实施例中数据处理的过程:
S1.接收输入请求,该输入请求可以是读请求或写请求;
S2.根据读请求或写请求的所请求读取或者所要写入的数据段的起始地址和长度,编码得到数据段的掩码。
编码方法可以为根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;找到所述位向量从高位到低位的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
S3.判断该输入请求的类型,如果是写请求则执行步骤S4,如果是读请求则执行步骤S5。
S4.把写请求以及掩码填入写请求队列。
S5.对于写请求队列中的每一个写请求,与读请求进行并行比较,判断下面等式是否成立:addr1&mask1&mask2==addr2&mask1&mask2。
S6.对于写请求队列中的每一个写请求,如果上述等式都不成立,则执行S7,如果等式成立则执行S8。
S7.当没有出现重叠时,把读请求填入读请求队列。
S8.当出现可能重叠时,转入重叠处理流程。
重叠处理流程可以为:保持当前读请求,并且不再接收新的请求,优先处理写请求,直至写请求队列中引起重叠的所有写请求全部被移除写请求队列,然后将读请求填入读请求队列,继续接收新的请求。
参阅图3,本发明实施例提供的数据处理装置的一实施例包括:
计算单元201,用于根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;
检测单元202,用于按照预置的与所述数据段的地址和所述计算单元201计算出的掩码关联的等式检测关系,从写请求队列中检测所述数据段;
处理单元203,用于当所述检测单元202检测出所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
本发明实施例中,计算单元201根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;检测单元202按照预置的与所述数据段的地址和所述计算单元201计算出的掩码关联的等式检测关系,从写请求队列中检测所述数据段;处理单元203当所述检测单元202检测出所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。与现有技术中需要大小比较器才能确定是否重叠相比,本发明实施例提供的装置,可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。
在上述图3对应的实施例的基础上,参阅图4,本发明实施例提供的数据处理的装置的另一实施例中,所述检测单元202包括:
获取子单元2021,用于获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
输入子单元2022,用于输入所述获取子单元2021获取的所要写入的数据段的起始地址和掩码,以及所述读请求所请求读取的数据段的起始地址和掩码;
等式比较子单元2023,用于在所述输入子单元2022输入所述所要写入的数据段的起始地址和掩码,以及所述读请求所请求读取的数据段的起始地址和掩码后,做等式比较,确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
在上述图4对应的实施例的基础上,本发明实施例提供的数据处理的装置的另一实施例中,当所述等式关系成立时,
所述处理单元203,用于停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的写请求队列中所有写请求及对应的数据段。
在上述图4对应的实施例的基础上,参阅图5,本发明实施例提供的数据处理的装置的另一实施例中,当所述等式关系成立时,
所述计算单元201,还用于根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
所述装置20还包括:
确定单元204,用于确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。
在上述图5对应的实施例的基础上,本发明实施例提供的数据处理的装置的另一实施例中,
所述处理单元203,用于停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
在上述图3对应的实施例的基础上,参阅图6,本发明实施例提供的数据处理的装置的另一实施例中,所述计算单元201包括:
计算子单元2011,用于根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;
掩码确定子单元2012,用于找到所述计算子单元2011计算出的位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
本发明还提供一种计算机存储介质,该介质存储有程序,该程序执行时包括上述数据处理的装置侧调控信号质量的方法中的部分或者全部步骤。
参阅图7,本发明实施例提供的数据处理装置20的另一实施例包括:可包括输入设备210、输出设备220、处理器230和存储器240。
需要说明的是,本发明实施例中的数据处理装置可以为内存控制器,本发明实施例中的处理器230并不是中央处理器(Central Processing Unit,CPU),而只是一个执行具体处理功能的处理模块或者处理单元。例如:可以为相等比较器、大小比较器或者其他功能单元。
存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据段。存储器240的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器240存储了如下的元素,可执行模块或者数据段结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器230通过调用存储器240存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;
按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段;
当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
本发明实施例提供的数据处理的装置,可以通过相等比较器来确定读请求所请求的数据段是否在写请求队列中,从而降低了开销,提高了比较速度。
处理器230控制数据处理的装置20的操作,处理器230还可以称为CPU(Central Processing Unit,中央处理单元)。存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据段。存储器340的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,数据处理的装置20的各个组件通过总线系统250耦合在一起,其中总线系统250除包括数据段总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统250。
上述本发明实施例揭示的方法可以应用于处理器230中,或者由处理器230实现。处理器230可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器230中的硬件的集成逻辑电路完成。上述的处理器230可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器240,处理器230读取存储器240中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器230具体可获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
通过不同的相等比较器,分别确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
可选地,当所述等式关系成立时,处理器230具体可停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
可选地,当所述等式关系成立时,处理器230具体可根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。
可选地,当所述与关系式为真时,处理器230具体可停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
可选地,处理器230具体可根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;找到所述位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的数据处理的方法以及数据处理的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种数据处理的方法,其特征在于,包括:
根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;
按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段;
当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
2.根据权利要求1所述的方法,其特征在于,所述按照预置的与所述数据段的地址和掩码关联的等式检测关系,从写请求队列中检测所述数据段,包括:
获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
通过不同的相等比较器,分别确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
3.根据权利要求2所述的方法,其特征在于,当所述等式关系成立时,所述当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段,包括:
停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求及对应的数据段。
4.根据权利要求2所述的方法,其特征在于,当所述等式关系成立时,所述方法还包括:
根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。
5.根据权利要求4所述的方法,其特征在于,当所述与关系式为真时,所述当所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段,包括:
停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
6.根据权利要求1-3任一所述的方法,其特征在于,所述根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段的掩码,包括:
根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;
将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;
找到所述位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
7.一种数据处理装置,其特征在于,包括:
计算单元,用于根据读请求所请求读取的数据段的起始地址和数据段长度,计算所述数据段的掩码;
检测单元,用于按照预置的与所述数据段的地址和所述计算单元计算出的掩码关联的等式检测关系,从写请求队列中检测所述数据段;
处理单元,用于当所述检测单元检测出所述数据段在所述写请求队列中时,按照预置方案从所述写请求队列中获得所述数据段。
8.根据权利要求7所述的装置,其特征在于,所述检测单元包括:
获取子单元,用于获取写请求队列中每个写请求对应的所要写入的数据段的起始地址和掩码;
输入子单元,用于输入所述获取子单元获取的所要写入的数据段的起始地址和掩码,以及所述读请求所请求读取的数据段的起始地址和掩码;
等式比较子单元,用于在所述输入子单元输入所述所要写入的数据段的起始地址和掩码,以及所述读请求所请求读取的数据段的起始地址和掩码后,做等式比较,确定如下等式关系是否成立:
addr1&mask1&mask2==addr2&mask1&mask2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址,mask1为所述读请求所请求读取的数据段的掩码,mask2为所述任一写请求所对应的所要写入的数据段的掩码。
9.根据权利要求8所述的装置,其特征在于,当所述等式关系成立时,
所述处理单元,用于停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求及对应的数据段。
10.根据权利要求8所述的装置,其特征在于,当所述等式关系成立时,
所述计算单元,还用于根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;根据所述任一写请求所对应的所要写入的数据段的起始地址和数据段长度,计算所述任一写请求所对应的所要写入的数据段的结束地址;
所述装置还包括:
确定单元,用于确定下列与关系式是否为真;
addr1<E2&&E1>addr2;
其中,addr1为所述读请求所请求读取的数据段的起始地址、addr2为写请求队列中任一写请求所对应的所要写入的数据段的起始地址、E1为所述读请求所请求读取的数据段的结束地址、E2为写请求队列中任一写请求所对应的所要写入的数据段的结束地址。
11.根据权利要求10所述的装置,其特征在于,当所述与关系式为真时,
所述处理单元,用于停止接收新的读请求或者写请求,按照顺序从所述写请求队列中移出使所述等式关系成立的所有写请求对应的数据段。
12.根据权利要求7-9任一所述的装置,其特征在于,所述计算单元包括:
计算子单元,用于根据所述读请求所请求读取的数据段的起始地址和数据段长度,计算所述读请求所请求读取的数据段结束地址;将所述读请求所请求读取的数据段的起始地址和结束地址按位异或,得到一个位向量;
掩码确定子单元,用于找到所述计算子单元计算出的位向量中从高位到低位顺序排列的第一个1,将从这一位开始的更高位都填1,这一位及比这一位更低的位都填0,得到所述读请求所请求读取的数据段的掩码。
CN201310359560.1A 2013-08-16 2013-08-16 一种数据处理的方法及装置 Active CN104375946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310359560.1A CN104375946B (zh) 2013-08-16 2013-08-16 一种数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310359560.1A CN104375946B (zh) 2013-08-16 2013-08-16 一种数据处理的方法及装置

Publications (2)

Publication Number Publication Date
CN104375946A true CN104375946A (zh) 2015-02-25
CN104375946B CN104375946B (zh) 2018-04-20

Family

ID=52554881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310359560.1A Active CN104375946B (zh) 2013-08-16 2013-08-16 一种数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN104375946B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155577A (zh) * 2015-04-23 2016-11-23 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN108304272A (zh) * 2018-01-19 2018-07-20 深圳神州数码云科数据技术有限公司 一种数据io请求的处理方法及装置
CN109478168A (zh) * 2017-06-23 2019-03-15 华为技术有限公司 内存访问技术及计算机系统
WO2023065706A1 (zh) * 2021-10-18 2023-04-27 长鑫存储技术有限公司 写入缓存电路、数据写入方法和存储器
US11714645B2 (en) 2021-10-18 2023-08-01 Changxin Memory Technologies, Inc. Write cache circuit, data write method, and memory
CN117724985A (zh) * 2024-02-08 2024-03-19 此芯科技(武汉)有限公司 一种内存访问行为监控方法、装置、存储介质及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314504B1 (en) * 1999-03-09 2001-11-06 Ericsson, Inc. Multi-mode memory addressing using variable-length
US20020042867A1 (en) * 1998-06-04 2002-04-11 Alva Henderson Variable word length data memory
CN1427994A (zh) * 2001-01-30 2003-07-02 梅姆考尔有限责任公司 组合的按内容寻址存储器
CN1496511A (zh) * 2001-03-22 2004-05-12 �ֹ��� 宽带网络计算机体系结构的存储器保护系统和方法
US20040139293A1 (en) * 1999-09-10 2004-07-15 Rambus Inc. System and method for controlling retire buffer operation in a memory system
US20050010726A1 (en) * 2003-07-10 2005-01-13 Rai Barinder Singh Low overhead read buffer
CN1821968A (zh) * 2005-01-13 2006-08-23 威盛电子股份有限公司 存储器地址监控装置及其方法
CN101491098A (zh) * 2006-07-12 2009-07-22 高通股份有限公司 使用自适应可变长度码的视频压缩
US20100080071A1 (en) * 2008-09-30 2010-04-01 Seagate Technology Llc Data storage using read-mask-write operation
CN102684827A (zh) * 2012-03-02 2012-09-19 华为技术有限公司 数据处理方法及数据处理设备
WO2013028859A1 (en) * 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042867A1 (en) * 1998-06-04 2002-04-11 Alva Henderson Variable word length data memory
US6314504B1 (en) * 1999-03-09 2001-11-06 Ericsson, Inc. Multi-mode memory addressing using variable-length
US20040139293A1 (en) * 1999-09-10 2004-07-15 Rambus Inc. System and method for controlling retire buffer operation in a memory system
CN1427994A (zh) * 2001-01-30 2003-07-02 梅姆考尔有限责任公司 组合的按内容寻址存储器
CN1496511A (zh) * 2001-03-22 2004-05-12 �ֹ��� 宽带网络计算机体系结构的存储器保护系统和方法
US20050010726A1 (en) * 2003-07-10 2005-01-13 Rai Barinder Singh Low overhead read buffer
CN1821968A (zh) * 2005-01-13 2006-08-23 威盛电子股份有限公司 存储器地址监控装置及其方法
CN101491098A (zh) * 2006-07-12 2009-07-22 高通股份有限公司 使用自适应可变长度码的视频压缩
US20100080071A1 (en) * 2008-09-30 2010-04-01 Seagate Technology Llc Data storage using read-mask-write operation
WO2013028859A1 (en) * 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
CN102684827A (zh) * 2012-03-02 2012-09-19 华为技术有限公司 数据处理方法及数据处理设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈明宇 等: "基于消息的内存系统关键技术研究", 《网络新媒体技术》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545672B2 (en) 2015-04-23 2020-01-28 Huawei Technologies Co., Ltd. Method for accessing extended memory, device, and system
US11237728B2 (en) 2015-04-23 2022-02-01 Huawei Technologies Co., Ltd. Method for accessing extended memory, device, and system
CN106155577A (zh) * 2015-04-23 2016-11-23 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN106155577B (zh) * 2015-04-23 2019-03-26 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN109478168B (zh) * 2017-06-23 2020-12-04 华为技术有限公司 内存访问技术及计算机系统
US10732876B2 (en) 2017-06-23 2020-08-04 Huawei Technologies Co., Ltd. Memory access technology and computer system
CN109478168A (zh) * 2017-06-23 2019-03-15 华为技术有限公司 内存访问技术及计算机系统
US11231864B2 (en) 2017-06-23 2022-01-25 Huawei Technologies Co., Ltd. Memory access technology and computer system
US11681452B2 (en) 2017-06-23 2023-06-20 Huawei Technologies Co., Ltd. Memory access technology and computer system
CN108304272A (zh) * 2018-01-19 2018-07-20 深圳神州数码云科数据技术有限公司 一种数据io请求的处理方法及装置
WO2023065706A1 (zh) * 2021-10-18 2023-04-27 长鑫存储技术有限公司 写入缓存电路、数据写入方法和存储器
US11714645B2 (en) 2021-10-18 2023-08-01 Changxin Memory Technologies, Inc. Write cache circuit, data write method, and memory
CN117724985A (zh) * 2024-02-08 2024-03-19 此芯科技(武汉)有限公司 一种内存访问行为监控方法、装置、存储介质及电子设备
CN117724985B (zh) * 2024-02-08 2024-04-30 此芯科技(武汉)有限公司 一种内存访问行为监控方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN104375946B (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
CN104375946A (zh) 一种数据处理的方法及装置
KR101687081B1 (ko) 단채널 컨볼루션 레이어를 위한 처리 방법 및 장치, 및 다채널 컨볼루션 레이어를 위한 처리 방법 및 장치
CN109542713B (zh) 一种验证方法及验证装置
CN108628638B (zh) 数据处理方法及装置
CN108228442B (zh) 一种异常节点的检测方法及装置
US9632938B2 (en) Method and apparatus for pushing memory data
CN109213703B (zh) 一种数据检测方法及数据检测装置
US20190189238A1 (en) Method, Apparatus and Electronic Device For Read/Write Speed Testing
CN104035747A (zh) 用于并行计算的方法和装置
CN107632779B (zh) 数据处理方法和装置、服务器
US8065449B2 (en) DMA device having plural buffers storing transfer request information and DMA transfer method
JP6145193B2 (ja) メモリへの読取り又は書込み
US20130159241A1 (en) Template clauses based sat techniques
CN106569841B (zh) 一种文件加载方法和装置
JP5341198B2 (ja) 通信インタフェースにおけるビット反転
US10908902B2 (en) Distance based branch prediction and detection of potential call and potential return instructions
US20190369997A1 (en) Simulation device, simulation method, and computer readable medium
CN110674170B (zh) 基于链表逆序访问的数据缓存方法、装置、设备及介质
CN110378037B (zh) 基于Ceph的CFD仿真数据存储方法、装置及服务器
CN107977282B (zh) 一种SPI-Nand读取数据页的方法及装置
US20110071809A1 (en) Model generation based on a constraint and an initial model
CN105956251A (zh) 一种i2c总线的设计方法及装置
US8359456B2 (en) Generating random addresses for verification of distributed computerized devices
KR20060081440A (ko) 데이터 처리장치 및 방법
CN115297198B (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
TR01 Transfer of patent right

Effective date of registration: 20220825

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Patentee after: Institute of Computing Technology, Chinese Academy of Sciences

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right