CN106302374B - 一种用于提高表项访问带宽和原子性操作的装置及方法 - Google Patents
一种用于提高表项访问带宽和原子性操作的装置及方法 Download PDFInfo
- Publication number
- CN106302374B CN106302374B CN201510364814.8A CN201510364814A CN106302374B CN 106302374 B CN106302374 B CN 106302374B CN 201510364814 A CN201510364814 A CN 201510364814A CN 106302374 B CN106302374 B CN 106302374B
- Authority
- CN
- China
- Prior art keywords
- list item
- address
- cache
- data
- threshold
- 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.)
- Active
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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/0877—Cache access modes
- G06F12/0879—Burst mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种用于提高表项访问带宽和原子性操作的装置及方法,其中,所述装置包括:比较模块、缓存Cache、分发模块;比较模块,用于收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等,如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错。
Description
技术领域
本发明涉及表项管理技术,尤其涉及一种用于提高表项访问带宽和原子性操作的装置及方法。
背景技术
本申请发明人在实现本申请实施例技术方案的过程中,至少发现相关技术中存在如下技术问题:
网络处理器(NP,Network Processor)是为网络应用领域涉及的专用指令处理器(ASIP,Application Specific Instruction Process),ASIP具有自己的结构特征和专门的电路设计以适用于网络分组处理,同时它又是一块软件可编程芯片。它使得网络系统能够具备高性能和灵活性。
由于网络处理器应用于不同的场合,查表的类型、表项容量、表项条目大小及查表性能需求差异较大,因此,需要解决的技术问题包括以下两方面:
一、网络处理器对表项管理,要求表项在实现一定更新性能下进行查找时需要达到不断流和不出现错误的目的。对于单条目宽度比较大的表项存储,可能需要存储器多个地址来存储单个条目,此时表项更新过程中,保证表项的原子性操作尤为重要;
二、同时存储在片外存储器由于受到自身结构的影响,表项查询时的访问带宽也是亟待解决的问题。
发明内容
有鉴于此,本发明实施例希望提供一种用于提高表项访问带宽和原子性操作的装置及方法,至少提高了表项查询时的访问带宽和确保原子性操作能实现不断流和不出现错误的目的。
本发明实施例的技术方案是这样实现的:
本发明实施例的一种用于提高表项访问带宽和原子性操作的装置,所述装置包括:比较模块、缓存Cache、分发模块;
比较模块,用于收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等,如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错;
所述Cache,用于存储表项数据和表项地址;
分发模块,用于识别返回给业务侧的数据是Cache中的表项数据还是所述片外存储器中的表项数据后返回给业务侧。
上述方案中,所述比较模块,进一步用于按照第一预设规则判断所述查找请求指向的地址与Cache中的存储的地址是否相等,包括以下任意一种方式:
方式一:若低于第一阈值Mbit地址对应的所述vld为全有效,高于第二阈值Nbit地址和Cache中存储的地址相等,将Cache中的数据返回至业务侧,不更新Cache中的数据;若地址不相等,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式二:若低于第一阈值Mbit地址对应的所述vld为部分有效,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式三:若低于第一阈值Mbit地址对应的所述vld为无效,更新Cache中的数据,将片外存储器返回的数据发送至业务侧;
其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述装置还包括:
第一仲裁模块,用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁;
控制模块,用于管理vld标识位及判断何时发起对片外存储器的更新操作;
中央处理单元,用于配置业务表项,对于单burst表项更新的情况,发出写单burst表项的指令;经所述第一仲裁模块仲裁后以表项低于第一阈值Mbit为地址,将表项高于第二阈值Nbit地址/表项数据写入Cache中,通过所述控制模块将此地址对应的vld寄存器置位,发出更新片外存储器的指令,完成表项更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述装置还包括:
第一仲裁模块,用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁;
控制模块,用于管理vld标识位及判断何时发起对片外存储器的更新操作;
中央处理单元,用于配置业务表项,对于多burst表项更新的情况,发出写多burst表项的指令;经所述第一仲裁模块仲裁后首burst以表项低于第一阈值Mbit左移2^S bit得到的值作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应的vld置0,不发出更新所述片外存储器表项的指令;第二个burst以表项低于第一阈值Mbit左移2^S bit的得到值+1作为地址,将表项高于第二阈值Nbit地址/表项数据置写入所述Cache中,通过所述控制模块将此地址对应vld置0,不发出更新所述片外存储器的指令,同时将首burst的vld置1,发出更新vld表项的指令;依此类推,当所述片外存储器返回的倒数第二个burst地址低于第一阈值Mbit左移2^S bit得到的地址+S-2地址匹配时,将最后一个burst对应的vld置1,发出更新所述片外存储器表项的指令,完成表项的更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述装置还包括:
查找信息存储模块,用于存储查表请求和多burst标志信息;
所述比较模块,进一步用于对于单burst表项的情况,判断所述查找请求低于第一阈值Mbit对应的vld标识是否有效,有效,则用查找请求低于第一阈值Mbit发起查询Cache,获得查询结果,解析所查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;
第二仲裁模块,用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁;
所述片外存储器,用于存储查找表项;
上述方案中,所述装置还包括:
查找信息存储模块,用于存储查表请求和多burst标志信息;
所述比较模块,进一步用于对于多burst表项的情况,且多burst表项为2^S个时,通过所述控制模块判断所述查找请求低于第一阈值Mbit左移Sbit后,连续2^S个地址对应的vld标识是否有效,若全有效,用查找请求低于第一阈值Mbit左移sbit后连续发出2^S个查询Cache的请求,获得查询结果,解析所述查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果拼接后通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;所述S为自然数;
第二仲裁模块,用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁;
所述片外存储器,用于存储查找表项。
上述方案中,所述比较模块,进一步用于在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息,对于单burst表项的情况,通过所述控制模块判断地址低于第一阈值Mbit对应的vld是否有效,有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
上述方案中,所述比较模块,进一步用于在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息,对于多burst表项的情况,先通过所述控制模块判断地址低于第一阈值Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
上述方案中,所述比较模块,进一步用于在接收到所述查询请求,根据查询请求携带的多burst标识,通过所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache的数据,判断业务请求高于第二阈值Nbit与Cache中的地址是否匹配,匹配,则直接将数据返回给业务侧;不匹配,则发出查询片外存储器的请求。
上述方案中,所述比较模块,进一步用于待表项数据返回后,读取查找信息存储模块,以获取查找请求地址和多burst标识,在所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效,则读取对应Cache的数据,判断业务请求的高于第二阈值Nbit地址与返回Cache的业务地址是否匹配,若匹配,将Cache中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据,否则,直接将片外存储器中的表项数据通过所述分发模块返回给业务侧,同时更新Cache中的表项数据;若多burst对应的vld为部分有效,则表明表项更新未完成,将片外存储器中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据。
本发明实施例的一种用于提高表项访问带宽和原子性操作的方法,所述方法应用于上述方案中任一项所述的装置,所述方法包括:
收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等;
如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;
如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错。
上述方案中,所述第一预设规则用于判断查找请求的地址与Cache中的存储的地址是否相等,包括以下任意一种方式:
方式一:若低于第一阈值Mbit地址对应的所述vld为全有效,高于第二阈值Nbit地址和Cache中存储的地址相等,将Cache中的数据返回至业务侧,不更新Cache中的数据;若地址不相等,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;;
方式二:若低于第一阈值Mbit地址对应的所述vld为部分有效,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式三:若低于第一阈值Mbit地址对应的所述vld为无效,更新Cache中的数据,将片外存储器返回的数据发送至业务侧;
其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述方法还包括:
中央处理单元配置业务表项,对于单burst表项更新的情况,发出写单burst表项的指令;
经所述第一仲裁模块仲裁后以表项低于第一阈值Mbit为地址,将表项高于第二阈值Nbit地址/表项数据写入Cache中,通过所述控制模块将此地址对应的vld寄存器置位,发出更新片外存储器的指令,完成表项更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述方法还包括:
中央处理单元配置业务表项,对于多burst表项更新的情况,发出写多burst表项的指令;
经所述第一仲裁模块仲裁后首burst以表项低于第一阈值Mbit左移2^S bit得到的值作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应的vld置0,不发出更新所述片外存储器表项的指令;
第二个burst以表项低于第一阈值Mbit左移2^S bit的得到值+1作为地址,将表项高于第二阈值Nbit地址/表项数据置写入所述Cache中,通过所述控制模块将此地址对应vld置0,不发出更新所述片外存储器的指令,同时将首burst的vld置1,发出更新vld表项的指令;
依此类推,当所述片外存储器返回的倒数第二个burst地址低于第一阈值Mbit左移2^S bit得到的地址+S-2地址匹配时,将最后一个burst对应的vld置1,发出更新所述片外存储器表项的指令,完成表项的更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述方法还包括:
比较模块对于单burst表项的情况,判断所述查找请求低于第一阈值Mbit对应的vld标识是否有效,有效,则用查找请求低于第一阈值Mbit发起查询Cache,获得查询结果;
解析所查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
上述方案中,所述方法还包括:
比较模块对于多burst表项的情况,且多burst表项为2^S个时,通过所述控制模块判断所述查找请求低于第一阈值Mbit左移sbit后,连续2^S个地址对应的vld标识是否有效,若全有效,用查找请求低于第一阈值Mbit左移sbit后连续发出2^S个查询Cache的请求,获得查询结果;
解析所述查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果拼接后通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;所述S为自然数。
上述方案中,所述方法还包括:
比较模块在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息;
对于单burst表项的情况,通过所述控制模块判断地址低于第一阈值Mbit对应的vld是否有效,有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,若匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
上述方案中,所述方法还包括:
比较模块在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息;
对于多burst表项的情况,先通过所述控制模块判断地址低于第一阈值Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,若匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
上述方案中,所述方法还包括:
比较模块在接收到所述查询请求,根据查询请求携带的多burst标识,通过所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache的数据,判断业务请求高于第二阈值Nbit与Cache中的地址是否匹配,匹配,则直接将数据返回给业务侧;不匹配,则发出查询片外存储器的请求。
上述方案中,所述方法还包括:
比较模块在待表项数据返回后,读取查找信息存储模块,以获取查找请求地址和多burst标识;
在所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效,则读取对应Cache的数据,判断业务请求的高于第二阈值Nbit地址与返回Cache的业务地址是否匹配,若匹配,将Cache中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据,否则,直接将片外存储器中的表项数据通过所述分发模块返回给业务侧,同时更新Cache中的表项数据;若多burst对应的vld为部分有效,则表明表项更新未完成,将片外存储器中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据。
本发明实施例的用于提高表项访问带宽和原子性操作的装置包括:比较模块、缓存Cache、分发模块;其中,比较模块,用于收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等,如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错;所述Cache,用于存储表项数据和表项地址;分发模块,用于识别返回给业务侧的数据是Cache中的表项数据还是所述片外存储器中的表项数据后返回给业务侧。
采用本发明实施例,由于并不是总是需发起查找片外存储器的请求,从而减少了对所述片外存储器的访问次数,从而减少了查询带宽,而且,在将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错。
附图说明
图1为应用本发明实施例的表项原子性操作及提高片外存储器查找带宽装置示意图;
图2为应用本发明实施例的表项原子性操作说明示意图;
图3为应用本发明实施例的缓冲(Cache)内部数据结构示意图;
图4为应用本发明实施例的提高查表带宽性能及表项原子性操作处理流程示意图;
图5为应用本发明实施例的单burst表项更新处理流程示意图;
图6为应用本发明实施例的多burst表项更新处理流程示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
本发明实施例的一种用于提高表项访问带宽和原子性操作的装置,包括比较模块、缓存Cache、分发模块;
比较模块,用于收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等,如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错;
所述Cache,用于存储表项数据和表项地址;
分发模块,用于识别返回给业务侧的数据是Cache中的表项数据还是所述片外存储器中的表项数据后返回给业务侧。
在本发明实施例一实施方式中,所述比较模块,进一步用于按照第一预设规则判断所述查找请求指向的地址与Cache中的存储的地址是否相等,包括以下任意一种方式:
方式一:若低于第一阈值Mbit地址对应的所述vld为全有效,高于第二阈值Nbit地址和Cache中存储的地址相等,将Cache中的数据返回至业务侧,不更新Cache中的数据;若地址不相等,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式二:若低于第一阈值Mbit地址对应的所述vld为部分有效,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式三:若低于第一阈值Mbit地址对应的所述vld为无效,更新Cache中的数据,将片外存储器返回的数据发送至业务侧;
其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述装置还包括:
第一仲裁模块,用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁;
控制模块,用于管理vld标识位及判断何时发起对片外存储器的更新操作;
中央处理单元,用于配置业务表项,对于单burst表项更新的情况,发出写单burst表项的指令;经所述第一仲裁模块仲裁后以表项低于第一阈值Mbit为地址,将表项高于第二阈值Nbit地址/表项数据写入Cache中,通过所述控制模块将此地址对应的vld寄存器置位,发出更新片外存储器的指令,完成表项更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述装置还包括:
第一仲裁模块,用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁;
控制模块,用于管理vld标识位及判断何时发起对片外存储器的更新操作;
中央处理单元,用于配置业务表项,对于多burst表项更新的情况,发出写多burst表项的指令;经所述第一仲裁模块仲裁后首burst以表项低于第一阈值Mbit左移2^S bit得到的值作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应的vld置0,不发出更新所述片外存储器表项的指令;第二个burst以表项低于第一阈值Mbit左移2^S bit的得到值+1作为地址,将表项高于第二阈值Nbit地址/表项数据置写入所述Cache中,通过所述控制模块将此地址对应vld置0,不发出更新所述片外存储器的指令,同时将首burst的vld置1,发出更新vld表项的指令;依此类推,当所述片外存储器返回的倒数第二个burst地址低于第一阈值Mbit左移2^S bit得到的地址+S-2地址匹配时,将最后一个burst对应的vld置1,发出更新所述片外存储器表项的指令,完成表项的更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述装置还包括:
查找信息存储模块,用于存储查表请求和多burst标志信息;所述查表请求包括查表的表项地址;
所述比较模块,进一步用于对于单burst表项的情况,判断所述查找请求低于第一阈值Mbit对应的vld标识是否有效,有效,则用查找请求低于第一阈值Mbit发起查询Cache,获得查询结果,解析所查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;
第二仲裁模块,用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁;
所述片外存储器,用于存储查找表项;
在本发明实施例一实施方式中,所述装置还包括:
查找信息存储模块,用于存储查表请求和多burst标志信息;所述查表请求包括查表的表项地址;
所述比较模块,进一步用于对于多burst表项的情况,且多burst表项为2^S个时,通过所述控制模块判断所述查找请求低于第一阈值Mbit左移Sbit后,连续2^S个地址对应的vld标识是否有效,若全有效,用查找请求低于第一阈值Mbit左移sbit后连续发出2^S个查询Cache的请求,获得查询结果,解析所述查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果拼接后通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数;所述S为自然数;
第二仲裁模块,用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁;
所述片外存储器,用于存储查找表项。
在本发明实施例一实施方式中,所述比较模块,进一步用于在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息,对于单burst表项的情况,通过所述控制模块判断地址低于第一阈值Mbit对应的vld是否有效,有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
在本发明实施例一实施方式中,所述比较模块,进一步用于在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息,对于多burst表项的情况,先通过所述控制模块判断地址低于第一阈值Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
在本发明实施例一实施方式中,所述比较模块,进一步用于在接收到所述查询请求,根据查询请求携带的多burst标识,通过所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache的数据,判断业务请求高于第二阈值Nbit与Cache中的地址是否匹配,匹配,则直接将数据返回给业务侧;不匹配,则发出查询片外存储器的请求。
在本发明实施例一实施方式中,所述比较模块,进一步用于待表项数据返回后,读取查找信息存储模块,以获取查找请求地址和多burst标识,在所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效,则读取对应Cache的数据,判断业务请求的高于第二阈值Nbit地址与返回Cache的业务地址是否匹配,若匹配,将Cache中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据,否则,直接将片外存储器中的表项数据通过所述分发模块返回给业务侧,同时更新Cache中的表项数据;若多burst对应的vld为部分有效,则表明表项更新未完成,将片外存储器中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据。
一种用于提高表项访问带宽和原子性操作的方法,包括
步骤S11、收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等;
步骤S12、如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;
步骤S13、如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错。
在本发明实施例一实施方式中,所述第一预设规则用于判断查找请求的地址与Cache中的存储的地址是否相等,包括以下任意一种方式:
方式一:若低于第一阈值Mbit地址对应的所述vld为全有效,高于第二阈值Nbit地址和Cache中存储的地址相等,将Cache中的数据返回至业务侧,不更新Cache中的数据;若地址不相等,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式二:若低于第一阈值Mbit地址对应的所述vld为部分有效,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式三:若低于第一阈值Mbit地址对应的所述vld为无效,更新Cache中的数据,将片外存储器返回的数据发送至业务侧;
其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述方法还包括:
中央处理单元配置业务表项,对于单burst表项更新的情况,发出写单burst表项的指令;
经所述第一仲裁模块仲裁后以表项低于第一阈值Mbit为地址,将表项高于第二阈值Nbit地址/表项数据写入Cache中,通过所述控制模块将此地址对应的vld寄存器置位,发出更新片外存储器的指令,完成表项更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述方法还包括:
中央处理单元配置业务表项,对于多burst表项更新的情况,发出写多burst表项的指令;
经所述第一仲裁模块仲裁后首burst以表项低于第一阈值Mbit左移2^S bit得到的值作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应的vld置0,不发出更新所述片外存储器表项的指令;
第二个burst以表项低于第一阈值Mbit左移2^S bit的得到值+1作为地址,将表项高于第二阈值Nbit地址/表项数据置写入所述Cache中,通过所述控制模块将此地址对应vld置0,不发出更新所述片外存储器的指令,同时将首burst的vld置1,发出更新vld表项的指令;
依此类推,当所述片外存储器返回的倒数第二个burst地址低于第一阈值Mbit左移2^S bit得到的地址+S-2地址匹配时,将最后一个burst对应的vld置1,发出更新所述片外存储器表项的指令,完成表项的更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述方法还包括:
比较模块对于单burst表项的情况,判断所述查找请求低于第一阈值Mbit对应的vld标识是否有效,有效,则用查找请求低于第一阈值Mbit发起查询Cache,获得查询结果;
解析所查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
在本发明实施例一实施方式中,所述方法还包括:
比较模块对于多burst表项的情况,且多burst表项为2^S个时,通过所述控制模块判断所述查找请求低于第一阈值Mbit左移sbit后,连续2^S个地址对应的vld标识是否有效,若全有效,用查找请求低于第一阈值Mbit左移sbit后连续发出2^S个查询Cache的请求,获得查询结果;
解析所述查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果拼接后通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;所述S为自然数。
在本发明实施例一实施方式中,所述方法还包括:
比较模块在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息;
对于单burst表项的情况,通过所述控制模块判断地址低于第一阈值Mbit对应的vld是否有效,有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,若匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
在本发明实施例一实施方式中,所述方法还包括:
比较模块在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息;
对于多burst表项的情况,先通过所述控制模块判断地址低于第一阈值Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,若匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
在本发明实施例一实施方式中,所述方法还包括:
比较模块在接收到所述查询请求,根据查询请求携带的多burst标识,通过所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache的数据,判断业务请求高于第二阈值Nbit与Cache中的地址是否匹配,匹配,则直接将数据返回给业务侧;不匹配,则发出查询片外存储器的请求。
在本发明实施例一实施方式中,所述方法还包括:
比较模块在待表项数据返回后,读取查找信息存储模块,以获取查找请求地址和多burst标识;
在所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效,则读取对应Cache的数据,判断业务请求的高于第二阈值Nbit地址与返回Cache的业务地址是否匹配,若匹配,将Cache中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据,否则,直接将片外存储器中的表项数据通过所述分发模块返回给业务侧,同时更新Cache中的表项数据;若多burst对应的vld为部分有效,则表明表项更新未完成,将片外存储器中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据。
以一个现实应用场景为例对本发明实施例阐述如下:
一个表项管理的应用场景为:基于同步动态随机存取内存(SDRAM,synchronousdynamic random-access memory)的表项管理进行的,由于网络处理器应用于不同的场合,查表的类型、表项容量、表项条目大小及查表性能需求差异较大,一方面需要实现网络处理器表项原子性操作时确保数据为全新或全旧,以达到不断流和不出现错误的目的,另一方面需要实现提高查找时的访问带宽,以达到高效的表项管理目的。
而对于本应用场景,采用现有技术,均是从存储器自身的结构特点作为出发点,或是多bank复制,或是减少换行操作等,也就是说,都需要改变片外存储器的自身结构才可行,而本应用场景采用本发明实施例,无需改变片外存储器的自身结构,而是从减少对外部存储器SDRAM的访问来提高查找带宽来入手,是一种高效的表项管理方案,不仅提高了外部存储器SDRAM的查找性能,而且克服多burst表项在查找过程中更新表项存在的原子性操作的问题,保证在表项更新过程中,查找不断流不出错误的目的。另外,由于本应用场景采用本发明实施例,无需改变片外存储器的自身结构,在制造成本上,设计使用上都更方便和灵活。
需要指出的是,本应用场景包括对单burst表项和对多burst表项更新处理的不同情况,后续具体阐述,这里只对所涉及的技术术语描述如下:
1)所谓单burst表项,指表项条目需要存放在存储器的单个地址中,查表时直接根据查找请求获取表项结果。
2)所谓多burst表项,指表项条目需要存放在存储器的多个地址中,查表时表项管理模块需要将单个查找请求转换为多个查找请求获取表项结果。
3)表项原子性操作:如图2所示,多burst表项更新的过程中,可能会出现写多burst表项操作过程中夹杂读操作,使得表项返回结果出现新老交替情况,如对地址A、B、C、D操作时,得到返回结果为:A’、B、C、D,这就是一种新老交替的情况,其中,A’为新值,B、C、D为旧值;原子性操作就是查找获取表项结果或全是老值或全是新值,保证查找不出错或不断流,如对地址A、B、C、D操作时,得到返回结果为:A’、B’、C’、D’,这就是一种全是新值的情况。
本应用场景采用本发明实施例的装置,具体为一种高效的提高片外存储器表项访问带宽和原子性操作的装置,如图1所示,主要包括:查找信息存储模块101、比较模块102、控制模块104、第二仲裁模块105、第一仲裁模块108、分发模块103、Cache106和SDRAM109。
查找信息存储模块101,用于存储查表地址和多burst标志信息。
比较模块102,一是业务侧发起查找请求,当查找请求过来时,用于判断查找请求的地址与Cache中的存储的地址是否相等,若相等且有效标识(vld,valid)标识有效,则直接将Cache中存储的表项通过分发模块103返回至业务侧,而无需发起查找SDRAM109的请求;否则,说明查找请求的地址与Cache中的存储的地址不相等,则需等待,发起查找SDRAM109的请求,以便根据返回数据来继续处理;二是当SDRAM109返回数据时,用于判断查找请求的地址与Cache中的存储的地址是否相等,存在如下几种情况:
1)若低Mbit地址对应vld标识全有效,高Nbit地址和Cache中存储的地址相等,将Cache106中的数据返回至业务侧,不更新Cache106中的数据;若地址不相等,不更新Cache106中的数据,将SDRAM109返回数据送至业务侧;其中,所述M和N都为自然数,为不同的取值,作用都是表示一个阈值,需按照实际应用的需求进行设置,即所述低Mbit指低于一个第一阈值,如M比特时如何处理的情况;而所述高Nbit指高于一个第二阈值,如N比特时如何处理的情况。
2)若低Mbit地址对应vld标识部分有效(针对多burst表项),不更新Cache106中的数据,将SDRAM109返回数据送至业务侧。
3)若低Mbit地址对应vld标识无效,更新Cache106中的数据,将SDRAM109返回数据送至业务侧。
分发模块103,用于识别返回给业务侧的数据是Cache106中表项数据或是SDRAM109中表项数据。
控制模块104,用于管理vld标识位及判断何时发起对SDRAM109的更新操作。表项更新标识vld操作规则如下所示:
1)中央处理单元107,用于写单burst表项时更新为1,发出更新SDRAM109表项更新操作。
2)多burst表项写入第一个burst时对应地址的vld置0,写入第二个burst对应vld置0,同时将第一个burst时对应的vld置1,发出更新表项第一个burst操作,以此类推。当外部存储器SDRAM109返回的读数据对应的地址与cache中倒数第二个burst匹配时,最后一个burst对应的vld置1完成表项的更新。
3)其他情况vld保持不变。
第二仲裁模块105,用于业务侧读Cache106和SDRAM109返回读Cache106的仲裁。
Cache106,用于存储表项数据、表项地址,如图3所示,图3为应用本发明实施例的缓冲(Cache)内部数据结构。
中央处理单元107,用于配置业务表项。
第一仲裁模块108,用于完成中央处理单元107写Cache106和SDRAM109返回数据写Cache106的仲裁。
SDRAM109,用于存储查找表项。
本应用场景采用本发明实施例的装置,具体为一种高效的提高片外存储器表项访问带宽和原子性操作的方法,主要包括如下几个方面,均包括单burst和多burst处理:
1)中央处理单元更新表项过程;
2)提高SDRAM访问带宽处理过程;
3)多burst表项原子性操作处理过程。
一、就所述中央处理单元更新表项过程而言,如发送是单burst表项更新,如图5的处理流程,首先通过第一仲裁模块108仲裁,将要更新的表项和对应地址的高Nbit拼接后写入Cache106低Mbit地址中,同时通过控制模块104置低Mbit对应地址的vld标识位为1,发出更新SDRAM109表项操作;如中央处理单元发送的是多burst表项,如图6的处理流程,发出首burst表项更新时与单burst操作一致,区别是此时通过控制模块104置低Mbit对应地址的vld标识位为0,且不发出表项更新操作,中央处理单元发出第二个burst表项更新时,实现过程与首个burst处理过程一致,此时将上一个burst对应的vld标识置1,发出上一个表项更新SDRAM109表项的操作。以此类推,当SDRAM109返回的表项对应的地址与多burst表项的倒数第二个burst表项地址一致时,将最后一个burst表项更新到SDRAM109中,完成多burst表项的更新。
二、就提高SDRAM访问带宽处理过程而言,如图1所示,接收到业务侧发送请求,将查表请求和多burst标识存储在查找信息存储模块101,若是单burst,首先判断该查找请求低Mbit对应的VLD标识是否有效,有效,则用查找请求低Mbit发起查询cache106,获得查询结果,通过比较模块102将查到的地址与业务侧查找请求的高Nbit进行比较,相等直接将Cache106的查表结果通过分发模块103返回给业务侧,不发出查询外部存储器SDRAM109的请求,同时将查找信息存储模块101的数据读取丢弃;若是多burst表项(假设2^S个),首先通过控制模块104判断该查找请求低Mbit左移sbit后,连续2^S个地址对应的VLD标识是否有效,若全有效,用查找请求低Mbit左移sbit后连续发出2^S个查询Cache106请求,获得查询结果,通过比较模块102将查到的地址与业务侧查找请求的高Nbit进行比较,相等直接将Cache106的查表结果拼接后通过分发模块103返回给业务侧,不发出查询SDRAM109的请求,同时将查找信息存储模块101的数据读取丢弃。
所述业务侧查询请求和Cache106中的所有地址均不匹配,则发出查询SDRAM109的请求,待表项返回后,从查找信息存储模块101取出地址和多burst信息,若为单burst表项首先通过控制模块104判断地址低Mbit对应的vld是否有效,有效,则通过第二仲裁模块105仲裁后读取Cache106,获取地址的高Nbit,通过比较模块102和查找信息存储模块101取出地址高Nbit进行比较,匹配,则将对应地址的数据用SDRAM109返回的数据进行替换回写至Cache106,同时将此数据通过分发模块103返回至业务侧;若为多burst表项,首先通过控制模块104判断地址低Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过第二仲裁模块105仲裁后读取Cache106,后续操作与单burst一致。
所述接收到业务侧查表请求对应的表项结果已存储在Cache106中,直接将cache106中的查询结果通过分发模块103返回给业务侧,同时不会发出外部存储器SDRAM109的访问请求,进而提高了表项的查询带宽。
三、就所述多burst表项原子性操作处理过程而言,如图1所示,接收到业务侧查询请求,根据查询请求携带的多burst标识,通过控制模块104判断业务请求的低Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache106的数据,在比较模块102判断业务请求高Nbit与Cache106中的地址是否匹配,匹配则直接将数据返回给业务侧,不匹配发出查询外部存储器SDRAM109的请求。待表项返回后,读取查找信息存储模块101,获取查找请求地址和多burst标识,在控制模块104判断业务请求的低Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效则读取对应Cache106的数据,通过比较模块102判断业务请求的高Nbit地址与返回Cache106的业务地址是否匹配,若匹配将cache106数据通过分发模块103返回给业务侧,不更新Cache106数据,否则直接将SDRAM109数据通过分发模块103返回给业务侧,同时更新Cache106数据;若多burst对应的vld有部分有效则表明表项更新未完成,此时将SDRAM109数据通过分发模块103返回给业务侧,不更新Cache106数据。
对应上述描述,如图4所示为应用本发明实施例的提高查表带宽性能及表项原子性操作处理流程示意图,是一个完整的原理流程,包括:
步骤S21、依据表项多burst标志,将业务查找请求低Mbit左移2^S bit后的连续2^S个地址对应的vld均有效时,则用业务请求这个连续2^S个地址读取Cache中的数据;
步骤S22、业务查找请求高Nbit与Cache中的addrl进行比较,将Cache中的数据返回给业务查询模块;
步骤S23、否则将业务查找请求和多burst标志存储,同时发出查询片外存储器请求,待数据返回后读取业务查找请求和多burst标志,当业务查找请求低Mbit左移2^S bit后的连续2^S个地址对应的vld均有效时,则用业务请求这连续2^S个地址读取Cache中的数据;
步骤S24、查找请求高Nbit与Cache中的addrl进行比较若相等,将Cache中的数据返回给业务查询模块,否则将查询到的数据写入Cache的同时返回给业务模块;
步骤S25、若vld部分有效不发出查cache请求,直接将SDRAM得到的数据返回给业务模块。
对应上述描述,图5为应用本发明实施例的单burst表项更新处理流程示意图,包括:
步骤S31、中央处理单元发出的写单burst表项;
步骤S32、以表项低Mbit为地址将表项高Nbit地址/表项数据写入cache中,同时将此地址对应的VLD寄存器置位,发出更新外部存储器的指令,完成表项更新。
对应上述描述,图6为应用本发明实施例的多burst表项更新处理流程示意图,包括:
步骤S41、中央处理单元发出的写多burst表项;
步骤S42、首burst以低Mbit左移2^S bit得到的地址作为Cache的地址,将数据写入此地址对应的Cache中,同时将此地址对应的vld置0,不发出更新SDRAM表项的指令;
步骤S43、第二个burst以低Mbit左移2^S bit的得到的地址+1作为Cache的地址,将数据写入此地址对应的Cache中,把此地址对应的vld置0,不发出更新SDRAM表项的指令,同时将首burst的vld置1,发出更新SDRAM表项的指令;
步骤S44、依此类推,当SDRAM返回的倒数第二个burst地址低Mbit左移2^S bit得到的地址+s-2匹配时,将最后一个burst对应的vld置1,发出更新SDRAM表项的指令,完成表项的更新。
总之,本应用场景采用本发明实施例这种高效的提高SDRAM表项访问带宽和原子性操作的方案,克服了多burst表项在查找过程中更新表项存在的原子性操作的问题,保证在表项更新过程中,查找不断流和不出错,同时对已经存储在Cache中的表项数据,查询时直接由Cache返回,不需要发出SDRAM的读访问请求,提高了SDRAM的查找性能,且该方案具有使用简单、灵活等特点。从而可以广泛的应用于其他单burst/多burst表项管理中。
本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应的,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序用于执行本发明实施例的用于提高表项访问带宽和原子性操作的方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (18)
1.一种用于提高表项访问带宽和原子性操作的装置,其特征在于,所述装置包括:比较模块、缓存Cache、分发模块;
比较模块,用于收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等,如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错;
所述Cache,用于存储表项数据和表项地址;
分发模块,用于识别返回给业务侧的数据是Cache中的表项数据还是所述片外存储器中的表项数据后返回给业务侧;
所述比较模块,进一步用于按照第一预设规则判断所述查找请求指向的地址与Cache中的存储的地址是否相等,包括以下任意一种方式:
方式一:若低于第一阈值Mbit地址对应的所述vld为全有效,高于第二阈值Nbit地址和Cache中存储的地址相等,将Cache中的数据返回至业务侧,不更新Cache中的数据;若地址不相等,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式二:若低于第一阈值Mbit地址对应的所述vld为部分有效,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式三:若低于第一阈值Mbit地址对应的所述vld为无效,更新Cache中的数据,将片外存储器返回的数据发送至业务侧;
其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
第一仲裁模块,用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁;
控制模块,用于管理vld标识位及判断何时发起对片外存储器的更新操作;
中央处理单元,用于配置业务表项,对于单burst表项更新的情况,发出写单burst表项的指令;经所述第一仲裁模块仲裁后以表项低于第一阈值Mbit为地址,将表项高于第二阈值Nbit地址/表项数据写入Cache中,通过所述控制模块将此地址对应的vld寄存器置位,发出更新片外存储器的指令,完成表项更新;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
3.根据权利要求1所述的装置,其特征在于,所述装置还包括:
第一仲裁模块,用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁;
控制模块,用于管理vld标识位及判断何时发起对片外存储器的更新操作;
中央处理单元,用于配置业务表项,对于多burst表项更新的情况,发出写多burst表项的指令;经所述第一仲裁模块仲裁后首burst以表项低于第一阈值Mbit左移2^S bit得到的值作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应的vld置0,不发出更新所述片外存储器表项的指令;第二个burst以表项低于第一阈值Mbit左移2^S bit的得到值+1作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应vld置0,不发出更新所述片外存储器的指令,同时将首burst的vld置1,发出更新vld表项的指令;依此类推,当所述片外存储器返回的倒数第二个burst地址与表项低于第一阈值Mbit左移2^S bit得到的地址+S-2地址匹配时,将最后一个burst对应的vld置1,发出更新所述片外存储器表项的指令,完成表项的更新;其中,所述S为自然数,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
4.根据权利要求2所述的装置,其特征在于,所述装置还包括:
查找信息存储模块,用于存储查表请求和多burst标志信息;
所述比较模块,进一步用于对于单burst表项的情况,判断所述查找请求低于第一阈值Mbit对应的vld标识是否有效,有效,则用查找请求低于第一阈值Mbit发起查询Cache,获得查询结果,解析所查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;
第二仲裁模块,用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁;
所述片外存储器,用于存储查找表项。
5.根据权利要求3所述的装置,其特征在于,所述装置还包括:
查找信息存储模块,用于存储查表请求和多burst标志信息;
所述比较模块,进一步用于对于多burst表项的情况,且多burst表项为2^S个时,通过所述控制模块判断所述查找请求低于第一阈值Mbit左移Sbit后,连续2^S个地址对应的vld标识是否有效,若全有效,用查找请求低于第一阈值Mbit左移Sbit后连续发出2^S个查询Cache的请求,获得查询结果,解析所述查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果拼接后通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽;
第二仲裁模块,用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁;
所述片外存储器,用于存储查找表项。
6.根据权利要求4所述的装置,其特征在于,所述比较模块,进一步用于在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息,对于单burst表项的情况,通过所述控制模块判断地址低于第一阈值Mbit对应的vld是否有效,有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
7.根据权利要求5所述的装置,其特征在于,所述比较模块,进一步用于在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息,对于多burst表项的情况,先通过所述控制模块判断地址低于第一阈值Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过所述第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧。
8.根据权利要求7所述的装置,其特征在于,所述比较模块,进一步用于在接收到所述查询请求,根据查询请求携带的多burst标识,通过所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache的数据,判断业务请求高于第二阈值Nbit与Cache中的地址是否匹配,匹配,则直接将数据返回给业务侧;不匹配,则发出查询片外存储器的请求。
9.根据权利要求8所述的装置,其特征在于,所述比较模块,进一步用于待表项数据返回后,读取查找信息存储模块,以获取查找请求地址和多burst标识,在所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效,则读取对应Cache的数据,判断业务请求的高于第二阈值Nbit地址与返回Cache的业务地址是否匹配,若匹配,将Cache中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据,否则,直接将片外存储器中的表项数据通过所述分发模块返回给业务侧,同时更新Cache中的表项数据;若多burst对应的vld为部分有效,则表明表项更新未完成,将片外存储器中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据。
10.一种用于提高表项访问带宽和原子性操作的方法,其特征在于,所述方法应用于权利要求1至9任一项所述的装置,所述方法包括:
收到业务侧的查询请求,判断所述查询请求指向的地址与缓存Cache中的存储的表项地址是否相等;
如果相等,且有效标识vld当前为有效,则无需发起查找片外存储器的请求,以减少对所述片外存储器的访问,直接将所述Cache中存储的表项数据返回至业务侧;
如果不相等,发起查找片外存储器的请求,以将请求片外存储器返回的表项数据按照第一预设规则进行处理,使在表项查找过程中更新表项存在的原子性操作能实现查找不断流和不出错;
所述第一预设规则用于判断查找请求的地址与Cache中的存储的地址是否相等,包括以下任意一种方式:
方式一:若低于第一阈值Mbit地址对应的所述vld为全有效,高于第二阈值Nbit地址和Cache中存储的地址相等,将Cache中的数据返回至业务侧,不更新Cache中的数据;若地址不相等,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式二:若低于第一阈值Mbit地址对应的所述vld为部分有效,不更新Cache中的数据,将请求片外存储器返回的数据发送至业务侧;
方式三:若低于第一阈值Mbit地址对应的所述vld为无效,更新Cache中的数据,将片外存储器返回的数据发送至业务侧;
其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
中央处理单元配置业务表项,对于单burst表项更新的情况,发出写单burst表项的指令;
经第一仲裁模块仲裁后以表项低于第一阈值Mbit为地址,将表项高于第二阈值Nbit地址/表项数据写入Cache中,通过控制模块将此地址对应的vld寄存器置位,发出更新片外存储器的指令,完成表项更新;其中,所述第一仲裁模块用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁,所述控制模块用于管理vld标识位及判断何时发起对片外存储器的更新操作,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
中央处理单元配置业务表项,对于多burst表项更新的情况,发出写多burst表项的指令;
经第一仲裁模块仲裁后首burst以表项低于第一阈值Mbit左移2^S bit得到的值作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过控制模块将此地址对应的vld置0,不发出更新所述片外存储器表项的指令;
第二个burst以表项低于第一阈值Mbit左移2^S bit的得到值+1作为地址,将表项高于第二阈值Nbit地址/表项数据写入所述Cache中,通过所述控制模块将此地址对应vld置0,不发出更新所述片外存储器的指令,同时将首burst的vld置1,发出更新vld表项的指令;
依此类推,当所述片外存储器返回的倒数第二个burst地址与表项低于第一阈值Mbit左移2^S bit得到的地址+S-2地址匹配时,将最后一个burst对应的vld置1,发出更新所述片外存储器表项的指令,完成表项的更新;其中,所述第一仲裁模块用于完成中央处理单元写入Cache与片外存储器返回表项数据写入Cache间的仲裁,所述控制模块用于管理vld标识位及判断何时发起对片外存储器的更新操作,所述S为自然数,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
比较模块对于单burst表项的情况,判断所述查找请求低于第一阈值Mbit对应的vld标识是否有效,有效,则用查找请求低于第一阈值Mbit发起查询Cache,获得查询结果;
解析所查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
比较模块对于多burst表项的情况,且多burst表项为2^S个时,通过所述控制模块判断所述查找请求低于第一阈值Mbit左移Sbit后,连续2^S个地址对应的vld标识是否有效,若全有效,用查找请求低于第一阈值Mbit左移Sbit后连续发出2^S个查询Cache的请求,获得查询结果;
解析所述查询结果,将查到的地址与所述查找请求的高于第二阈值Nbit进行比较,相等,直接将Cache的查表结果拼接后通过所述分发模块返回给业务侧,不发出查询片外存储器的请求,将查找信息存储模块的数据读取丢弃;其中,所述M和N都为自然数,M和N之和为业务侧发送请求位宽。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
比较模块在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息;
对于单burst表项的情况,通过所述控制模块判断地址低于第一阈值Mbit对应的vld是否有效,有效,则通过第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,若匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧;其中,所述第二仲裁模块用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括:
比较模块在所述查询请求和Cache中的所有地址均不匹配,发起查找片外存储器的请求,待表项数据返回后,从所述查找信息存储模块取出表项地址和多burst信息;
对于多burst表项的情况,先通过所述控制模块判断地址低于第一阈值Mbit左边移Sbit后对应连续2^S个地址的对应的vld是否有效,全有效,则通过第二仲裁模块仲裁后读取Cache,获取地址的高于第二阈值Nbit,取出地址高于第二阈值Nbit进行比较,若匹配,则将对应地址的数据用从所述片外存储器返回的表项数据进行替换回写至Cache,将此数据通过所述分发模块返回至业务侧;其中,所述第二仲裁模块用于业务侧读取Cache与片外存储器返回读取Cache间的仲裁。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
比较模块在接收到所述查询请求,根据查询请求携带的多burst标识,通过所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若有效,则读取对应Cache的数据,判断业务请求高于第二阈值Nbit与Cache中的地址是否匹配,匹配,则直接将数据返回给业务侧;不匹配,则发出查询片外存储器的请求。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
比较模块在待表项数据返回后,读取查找信息存储模块,以获取查找请求地址和多burst标识;
在所述控制模块判断业务请求的低于第一阈值Mbit左移Sbit,对应的连续2^S个请求的vld标识是否有效,若全有效,则读取对应Cache的数据,判断业务请求的高于第二阈值Nbit地址与返回Cache的业务地址是否匹配,若匹配,将Cache中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据,否则,直接将片外存储器中的表项数据通过所述分发模块返回给业务侧,同时更新Cache中的表项数据;若多burst对应的vld为部分有效,则表明表项更新未完成,将片外存储器中的表项数据通过所述分发模块返回给业务侧,不更新Cache中的表项数据。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510364814.8A CN106302374B (zh) | 2015-06-26 | 2015-06-26 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
PCT/CN2016/081618 WO2016206490A1 (zh) | 2015-06-26 | 2016-05-10 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
US15/739,243 US10545867B2 (en) | 2015-06-26 | 2016-05-10 | Device and method for enhancing item access bandwidth and atomic operation |
ES16813606T ES2813944T3 (es) | 2015-06-26 | 2016-05-10 | Dispositivo y procedimiento para mejorar un ancho de banda de acceso a elemento y una operación atómica |
PT168136067T PT3316543T (pt) | 2015-06-26 | 2016-05-10 | Dispositivo e método para melhorar a largura de banda de acesso a itens e a operação atómica |
SG11201710789YA SG11201710789YA (en) | 2015-06-26 | 2016-05-10 | Device and method of enhancing item access bandwidth and atomic operation |
EP16813606.7A EP3316543B1 (en) | 2015-06-26 | 2016-05-10 | Device and method of enhancing item access bandwidth and atomic operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510364814.8A CN106302374B (zh) | 2015-06-26 | 2015-06-26 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106302374A CN106302374A (zh) | 2017-01-04 |
CN106302374B true CN106302374B (zh) | 2019-08-16 |
Family
ID=57584540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510364814.8A Active CN106302374B (zh) | 2015-06-26 | 2015-06-26 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10545867B2 (zh) |
EP (1) | EP3316543B1 (zh) |
CN (1) | CN106302374B (zh) |
ES (1) | ES2813944T3 (zh) |
PT (1) | PT3316543T (zh) |
SG (1) | SG11201710789YA (zh) |
WO (1) | WO2016206490A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656832A (zh) * | 2017-10-11 | 2019-04-19 | 深圳市中兴微电子技术有限公司 | 一种查表方法、计算机可读存储介质 |
CN107888513A (zh) * | 2017-10-23 | 2018-04-06 | 深圳市楠菲微电子有限公司 | 用于交换芯片的缓存方法及装置 |
US10776281B2 (en) * | 2018-10-04 | 2020-09-15 | International Business Machines Corporation | Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency |
CN113630462B (zh) * | 2021-08-09 | 2022-06-03 | 北京城建设计发展集团股份有限公司 | 一种数据中台实现设备下控的方法与系统 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1300707C (zh) | 2002-07-23 | 2007-02-14 | 华为技术有限公司 | 外部sdram读写处理方法 |
US7107425B2 (en) | 2003-09-06 | 2006-09-12 | Match Lab, Inc. | SDRAM controller that improves performance for imaging applications |
US7200713B2 (en) * | 2004-03-29 | 2007-04-03 | Intel Corporation | Method of implementing off-chip cache memory in dual-use SRAM memory for network processors |
ATE458222T1 (de) * | 2004-06-08 | 2010-03-15 | Freescale Semiconductor Inc | Aufrechterhaltung der cachespeicherkoherenz zum direkten zugriff (dma), abschluss einer aufgabe, zur synchronisierung |
CN100418331C (zh) * | 2006-03-03 | 2008-09-10 | 清华大学 | 基于网络处理器的路由查找结果缓存方法 |
US7921243B1 (en) | 2007-01-05 | 2011-04-05 | Marvell International Ltd. | System and method for a DDR SDRAM controller |
US20100146415A1 (en) * | 2007-07-12 | 2010-06-10 | Viasat, Inc. | Dns prefetch |
US8335122B2 (en) * | 2007-11-21 | 2012-12-18 | The Regents Of The University Of Michigan | Cache memory system for a data processing apparatus |
US20090138680A1 (en) * | 2007-11-28 | 2009-05-28 | Johnson Timothy J | Vector atomic memory operations |
CN101340365A (zh) | 2008-08-11 | 2009-01-07 | 杭州瑞纳科技有限公司 | 一种高带宽利用率的ddr2 sdram控制器设计方法 |
CN101526896B (zh) * | 2009-01-22 | 2011-11-23 | 杭州中天微系统有限公司 | 嵌入式处理器的加载/存储单元 |
CN101534477A (zh) | 2009-04-23 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种表项管理方法和装置 |
CN101620623A (zh) | 2009-08-12 | 2010-01-06 | 杭州华三通信技术有限公司 | 内容可寻址存储器表项管理方法和装置 |
CN101651628A (zh) | 2009-09-17 | 2010-02-17 | 杭州华三通信技术有限公司 | 一种三状态内容可寻址存储器实现方法及装置 |
CN101719055B (zh) * | 2009-12-03 | 2012-10-10 | 杭州中天微系统有限公司 | 快速执行加载存储指令模块 |
US20120239688A1 (en) | 2009-12-04 | 2012-09-20 | Takatoshi Yanase | Table lookup apparatus, table lookup method, and table lookup system |
US9507735B2 (en) * | 2009-12-29 | 2016-11-29 | International Business Machines Corporation | Digital content retrieval utilizing dispersed storage |
US8447798B2 (en) | 2010-03-25 | 2013-05-21 | Altera Corporation | Look up table (LUT) structure supporting exclusive or (XOR) circuitry configured to allow for generation of a result using quaternary adders |
CN102073539B (zh) * | 2010-12-02 | 2013-10-09 | 华为技术有限公司 | 队列请求处理方法和装置 |
CN102831078B (zh) | 2012-08-03 | 2015-08-26 | 中国人民解放军国防科学技术大学 | 一种cache中提前返回访存数据的方法 |
CN104378295B (zh) * | 2013-08-12 | 2019-03-26 | 中兴通讯股份有限公司 | 表项管理装置及表项管理方法 |
CN104601471B (zh) * | 2015-02-02 | 2017-12-01 | 华为技术有限公司 | 一种转发信息表的读写方法及网络处理器 |
-
2015
- 2015-06-26 CN CN201510364814.8A patent/CN106302374B/zh active Active
-
2016
- 2016-05-10 PT PT168136067T patent/PT3316543T/pt unknown
- 2016-05-10 SG SG11201710789YA patent/SG11201710789YA/en unknown
- 2016-05-10 ES ES16813606T patent/ES2813944T3/es active Active
- 2016-05-10 WO PCT/CN2016/081618 patent/WO2016206490A1/zh active Application Filing
- 2016-05-10 US US15/739,243 patent/US10545867B2/en active Active
- 2016-05-10 EP EP16813606.7A patent/EP3316543B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180314634A1 (en) | 2018-11-01 |
ES2813944T3 (es) | 2021-03-25 |
US10545867B2 (en) | 2020-01-28 |
CN106302374A (zh) | 2017-01-04 |
SG11201710789YA (en) | 2018-01-30 |
EP3316543B1 (en) | 2020-07-01 |
PT3316543T (pt) | 2020-07-16 |
WO2016206490A1 (zh) | 2016-12-29 |
EP3316543A4 (en) | 2018-08-01 |
EP3316543A1 (en) | 2018-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI737977B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
US20210157800A1 (en) | Blockchain-based transaction processing methods, apparatuses, and electronic devices | |
US9787773B2 (en) | Method and system for global namespace with consistent hashing | |
US20210150519A1 (en) | Blockchain-based transaction processing method and apparatus and electronic device | |
CN106302374B (zh) | 一种用于提高表项访问带宽和原子性操作的装置及方法 | |
WO2021217863A1 (zh) | 订单标识生成方法、装置、服务器及存储介质 | |
CN110909025A (zh) | 数据库的查询方法、查询装置及终端 | |
US11250395B2 (en) | Blockchain-based transaction processing methods and apparatuses and electronic devices | |
US8818942B2 (en) | Database system with multiple layer distribution | |
US20200272610A1 (en) | Method, apparatus, device and medium for storing and querying data | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
WO2015172533A1 (zh) | 数据库查询方法和服务器 | |
CN104750740A (zh) | 数据更新的方法及装置 | |
US10761781B2 (en) | Apparatus and methods for a distributed memory system including memory nodes | |
CN106326309A (zh) | 一种数据查询方法和装置 | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
CN113220717B (zh) | 基于区块链的数据核验方法及装置、电子设备 | |
CN102710763A (zh) | 一种分布式缓存池化、分片及故障转移的方法及系统 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
US10747773B2 (en) | Database management system, computer, and database management method | |
WO2016101759A1 (zh) | 一种数据路由方法、数据管理装置和分布式存储系统 | |
US8886886B2 (en) | System cache with sticky removal engine | |
US20150178328A1 (en) | Client-Side Directed Commands to a Loosely Coupled Database | |
US20150100545A1 (en) | Distributed database system and a non-transitory computer readable medium | |
CN110235110A (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 |