CN106126114B - 一种有查询功能的存储器及其查询方法 - Google Patents

一种有查询功能的存储器及其查询方法 Download PDF

Info

Publication number
CN106126114B
CN106126114B CN201610428748.0A CN201610428748A CN106126114B CN 106126114 B CN106126114 B CN 106126114B CN 201610428748 A CN201610428748 A CN 201610428748A CN 106126114 B CN106126114 B CN 106126114B
Authority
CN
China
Prior art keywords
address
data
memory
register
query
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.)
Expired - Fee Related
Application number
CN201610428748.0A
Other languages
English (en)
Other versions
CN106126114A (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.)
Wuhan card code technology Co., Ltd.
Original Assignee
Wuhan Card Code Technology Co Ltd
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 Wuhan Card Code Technology Co Ltd filed Critical Wuhan Card Code Technology Co Ltd
Priority to CN201610428748.0A priority Critical patent/CN106126114B/zh
Priority to PCT/CN2016/087387 priority patent/WO2017215030A1/zh
Publication of CN106126114A publication Critical patent/CN106126114A/zh
Application granted granted Critical
Publication of CN106126114B publication Critical patent/CN106126114B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Abstract

本发明公开了一种有查询功能的存储器及其查询方法,该存储器包括指令译码器、控制器、地址发生及译码器、存储器组和查询分析器组,其中:指令译码器用于将接收到的指令进行指令译码,并产生控制信号;控制器用于控制首地址的产生,地址的递增、递减、复位和保持;地址发生及译码器用于产生查询使用的起始地址,并进行地址译码,得到地址信号;查询分析器组包括与存储器一一对应的查询分析器,根据地址信号和控制信号,对其对应的存储器中的数据进行标记、查询、分类和读取操作,并输出查询结果。本发明查询用时不会随数据量的增加而增加,在大数据情况下能够显著的增加数据查询速度,不受硬件系统读写瓶颈对查询速度的影响。

Description

一种有查询功能的存储器及其查询方法
技术领域
本发明涉及集成电路技术领域,尤其涉及一种有查询功能的存储器及其查询方法。
背景技术
现有技术中存储芯片为单一存储功能,通过计算机向存储器发出读取命令,计算机收到返回的数据后,由处理器对数据进行相应处理,针对大规模的数据存储时,一般采用多个存储器组成阵列的形式扩大存储规模,但是缺点就是查询速度不能够跟上存储规模的扩展速度。
数据查询技术方面:硬件主要有存储系统和计算系统组成,依托数据库软件或hadoop等分布式系统基础架构实现数据查询。这种系统在PB级大数据条件下查询速度很慢,很难满足实时查询的要求。并且随着数据量的增长在未来EB级数据量甚至更高级别的数据量条件下将难以应对。
在中国发明专利201310591511.0中公开了一种高速存储器,该高速存储器包括:充电电路,锂电池,低漏电储存电路和读/写控制电路;所述充电电路连接于电源与所述锂电池之间,用于为所述锂电池充电;当所述电源断开时,切断所述电池的漏电通路;所述读/写控制电路连接于电源和低漏电储存电路,当所述电源导通时,用于低漏电储存电路的读或写操作;所述锂电池,当所述电源断开时,用于为所述低漏电储存电路供电,所述低漏电储存电路保持存储信息。本对比文献中的方案虽然能够减小存储器的写操作时间,提高读取速度。但是对于大规模数据中,要实现对数据的查询,仍然只能对存储器内的数据逐个的读取,然后由处理器判断该数据是否满足查询条件,整个系统的查询速度很慢。
发明内容
本发明要解决的技术问题在于针对现有技术中查询速度慢的缺陷,提供一种通过内嵌数据查询分析器,实现对数据进行快速、实时查询的有查询功能的存储器及其查询方法。
本发明解决其技术问题所采用的技术方案是:
本发明提供一种有查询功能的存储器,包括指令译码器、控制器、地址发
生及译码器、存储器组和查询分析器组,其中:
所述指令译码器,用于将接收到的指令进行指令译码,并产生控制信号;
所述控制器,用于根据指令译码的结果,控制首地址的产生,地址的递增、递减、复位和保持;
所述地址发生及译码器,用于产生查询使用的起始地址,并进行地址译码,得到地址信号;
所述存储器组,包括多个相互并联的存储器;
所述查询分析器组,包括与存储器一一对应的查询分析器,每个查询分析器通过指令总线从指令译码器获得控制信号,通过地址总线从地址发生及译码器获得地址信号,根据地址信号和控制信号,对其对应的存储器中的数据进行标记、查询、分类和读取操作,并通过数据输出总线输出查询结果。
进一步地,本发明的所述查询分析器包括关系分析器、类型分析器和多个寄存器;
类型分析器用于分析从存储器输出的数据类型,将数据输出到寄存器或关系分析器中,同时将类型分析结果输出给关系分析器;
关系分析器用于根据指令中的立即数,与存储器输出的数据进行数据关系分析,并判断是否输出数据。
进一步地,本发明的所述查询分析器还包括第一存储器,用于存储关系分析器根据控制指令对数据分析的结果。
进一步地,本发明的所述寄存器包括第一寄存器、第二寄存器和寄存器堆;
第一寄存器设置在第一存储器与关系分析器之间,用于寄存从第一存储器输出的数据;
第二寄存器与关系分析器相连,用于寄存第一存储器中的数据是否存在有效数据;
寄存器堆设置在类型分析器和关系分析器之间,用于存储集合数据。
本发明提供一种有查询功能的存储器的查询方法,包括以下步骤:
S1、指令译码器对指令进行指令译码,得到控制信号;
S2、控制器依据控制信号控制地址发生及译码器产生首地址并进行地址译码,得到地址信号,存储器输出该地址处的数据;
S3、查询分析器根据控制信号,对从存储器中输出的数据进行标记扫描、查询扫描、分类扫描和读取的操作;
S4、通过数据输出总线对查询结果进行输出。
进一步地,本发明的步骤S2中标记扫描的具体方法包括:
步骤1、控制器控制地址发生器产生起始地址,读取存储器在该地址内的数据DataA={A1,A2},存储器的一个输出端输出数据DataA到类型分析器;
步骤2、如果数据类型是数据,则将A2输出到关系分析器;
如果数据类型是地址,则将A2作为地址输入到寄存器堆的地址输入端,寄存器堆输出该地址对应的数据C到关系分析器;
步骤3、关系分析器分析A2或C与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤4、如果数据类型是集合地址,且关系一致,设置第二寄存器为有效,同时在当前地址对第一存储器写入有效信号;
步骤5、如果数据类型是数据,且第二寄存器为有效,则在当前地址对第一存储器写入有效信号;
步骤6、控制器使地址增1,继续执行步骤1-5的标记过程;
步骤7、地址继续增1,直到增大到地址最大值;地址每增1,查询分析器执行一次标记过程。
进一步地,本发明的步骤S2中查询扫描的具体方法包括:
步骤1、控制器控制地址发生器产生地址,读取存储器在该地址内的数据DataA={A1,A2},在存储器的一个输出端输出数据到类型分析器;同时读取第一存储器内该地址的数据,输出到第二寄存器的输入端,第二寄存器会在下一个时钟边沿记录此数据,在时钟边沿到来之前第二寄存器仍然保持原值;
步骤2、如果数据类型是数据,则将A2直接输出到关系分析器;
如果数据类型是集合地址,则寄存器堆输出对应地址的数据C到关系分析器;
步骤3、关系分析器分析A2或C与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤4、如果数据类型是数据,且关系一致,且第二寄存器为有效,则在当前地址处对第一存储器写入有效信号;
步骤5、控制器使地址增1,查询分析器执行一次查询过程;
步骤6、地址继续增1,直到增大到地址最大值;每增1,查询分析器执行一次查询过程。
进一步地,本发明的步骤S2中分类扫描的具体方法包括:
步骤1、设置第二寄存器为无效,控制器控制地址发生器产生地址最大值,读取第一存储器内该地址的数据;
步骤2、如果数据类型为数据,且如果第二寄存器为无效则把存储器Ra值写入第二寄存器,如果第二寄存器为有效则保持第二寄存器原值;
步骤3、如果数据类型为地址,则置第二寄存器为无效,同时读出A2到寄存器堆的地址输入端,A2为存储器在该地址内的数据DataA={A1,A2}的数据值,选通该地址对应的寄存器组,设置寄存器堆的值为B2,B2是指令中传递的立即数;
步骤4、控制器使地址减1,查询分析器执行一次分类过程;
步骤5、地址继续减1,直到减小到地址最小值;每减1,查询分析器执行一次分类过程。
进一步地,本发明的步骤S2中进行读取的具体方法包括:
步骤1、控制器获取控制指令,并执行标记扫描过程;
步骤2、控制器控制地址发生器产生地址和片选信号;
步骤3、查询分析器读取存储器在该地址内的数据,若寄存器输出标记位为有效,则输出该数据。
本发明产生的有益效果是:本发明的有查询功能的存储器,通过在集成电路内部将存储器分成多组,每个存储器都设置有查询分析器,对该存储器内部的数据进行查询,大幅的提高了数据查询速度;该存储器通过在存储器内部增加数据查询的功能模块,查询用时不会随数据量的增加而增加,在大数据情况下能够显著的增加数据查询速度,不受硬件系统读写瓶颈对查询速度的影响。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的有查询功能的存储器的结构示意图;
图2是本发明实施例的有查询功能的存储器的查询分析器的结构示意图;
图3是本发明实施例的有查询功能的存储器的查询方法的流程图;
图4是本发明实施例的有查询功能的存储器的去掉寄存器堆的查询分析器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例的有查询功能的存储器,包括指令译码器、控制器、地址发生及译码器、存储器组和查询分析器组,其中:
指令译码器,用于将接收到的指令进行指令译码,并产生控制信号;
控制器,用于根据指令译码的结果,控制首地址的产生,地址的递增、递减、复位和保持;
地址发生及译码器,用于产生查询使用的起始地址,并进行地址译码,得到地址信号;
存储器组,包括多个相互并联的存储器;
查询分析器组,包括与存储器一一对应的查询分析器,每个查询分析器通过指令总线从指令译码器获得控制信号,通过地址总线从地址发生及译码器获得地址信号,根据地址信号和控制信号,对其对应的存储器中的数据进行标记、查询、分类和读取操作,并通过数据输出总线输出查询结果。
如图2所示,查询分析器包括关系分析器、类型分析器和多个寄存器;
类型分析器用于分析从存储器输出的数据类型,将数据输出到寄存器或关系分析器中,同时将类型分析结果输出给关系分析器;关系分析器用于根据指令中的立即数,与存储器输出的数据进行数据关系分析,并判断是否输出数据。
查询分析器还包括第一存储器,用于存储关系分析器根据控制指令对数据分析的结果。
寄存器包括第一寄存器、第二寄存器和寄存器堆;第一寄存器设置在第一存储器与关系分析器之间,用于寄存从第一存储器输出的数据;第二寄存器与关系分析器相连,用于寄存第一存储器中的数据是否存在有效数据;寄存器堆设置在类型分析器和关系分析器之间,用于存储集合数据。
在本发明的另一个具体实施例中,存储器S为存储器组中一个存储器,寄存器堆为寄存器堆Rc,第一存储器为存储器Ra,第一寄存器为寄存器Rr,第二寄存器为寄存器Rin。
指令包括:操作码OC、关系码OP、立即数B1和立即数B2。操作码OC经译码后得到控制信号CMD。控制信号CMD表示不同的操作,关系码OP表示关系分析器的8种比较关系,B1和B2是对存储器中数据进行比较的数值。
各个模块的功能分别为:
一、存储器S:
功能:用于存储数据及数据类型。
补充说明:一个存储器S的存储容量不限。容量为n*m位(n为存储器S内的字节数,m为字长。)
示例:存储的一个字节DataA={A1数据类型,A2数据}。A1,A2的字长不限。例如A1字长可以是2位,3位等。A2字长可以是8位,16位等。DataA的字长等于A1字长加上A2字长。
实例:DataA={10100111100}中A1=101字长为3位。A2=00111100字长为8位。DataA字长为11位;
DataA={01010000000000111100}中,A1=0101字长为4;
A2=0000000000111100字长为16位。DataA字长为20位。
二、存储器Ra:
功能:用于存储关系分析器依据当前指令对数据分析的结果。其结果记录在与存储器S当前地址指向的字节对应的存储单元中。
三、寄存器Rr:
功能:寄存从存储器Ra输出的数据。Rr值的更新是在一次查询分析结束时的时钟边沿。这意味着Rr中的值总是上一个地址中Ra的值。当地址为起始地址时。Rr为默认的值0。
例如:如下表。当前地址为00101。Ra的输出为地址00101指向的Ra中的数据0。此时的Rr中的数据是地址00100指向的Ra中的数据1。
地址 Ra A1 A2
00100 1 101 t
00101 0 101 t
00110 0 101 t
四、寄存器Rin:
功能:记录是否有Ra为有效。
例如:在演示实例中,当执行分类指令时,地址从最大值递减,当某个地址处的Ra=1,且Rin=0时,置Rin=1。接着Rin的值不变,直到找到数据类型为集合地址的字节时Rin=0。
五、类型分析器:
功能:分析DataA中的A1是什么类型,并依据类型控制A2输出到寄存器堆Rc还是关系分析器。同时把类型分析结果输出给关系分析器。
A1有8种类型:空、数据起始地址、集合地址、数据结束地址、数字、字符、外联、无关。
其中空、数据起始地址、数据结束地址、外联、无关这五个类型是在外部设备中使用的与本电路无关。
六、寄存器堆Rc
功能:存储集合数据。即存储表示该数据记录属于哪个分类的数据。
例如:在下面一条记录
<B title=”CPU”author=”John”/>
在字符<的前面有一个字节(地址为00000)存放集合地址例如下表所示:
记录<B title=”CPU”author=”John”/>属于集合地址为00000000的后两位(具体几位取决于Rc集合地址的位数)即:00所指向的集合0001。
即记录<B title=”CPU”author=”John”/>属于集合0001。
如果00000000改为00000010则:记录<B title=”CPU”author=”John”/>属于集合0101。
七、关系分析器;
功能:
1、依据指令CMD分析立即数B1与C或B1与A2之间的关系是否是op所描述的关系。2、依据指令CMD和当前Ra,Rr,Rin的值,并B1与C或A2的关系,控制写入Ra,Rin的值。
3、控制是否将B2写入寄存器堆Rc。
4、在数据读取指令时依据Ra的值决定是否输出数据。
op描述的关系有八种:
1、不比较;2、A>B;3、A==B;4、A>B或A==B;5、A<B;6、A<B或A>B;7、A<B或A==B;8、A<B或A==B或A>B。
如图3所示,本发明实施例的有查询功能的存储器的查询方法,包括以下步骤:
S1、指令译码器对指令进行指令译码,得到控制信号;
S2、控制器依据控制信号控制地址发生及译码器产生首地址并进行地址译码,得到地址信号,存储器输出该地址处的数据;
S3、查询分析器根据控制信号,对从存储器中输出的数据进行标记扫描、查询扫描、分类扫描和读取的操作;
S4、通过数据输出总线对查询结果进行输出。
步骤S2中标记扫描的具体方法包括:
步骤1、控制器控制地址发生器产生起始地址,读取存储器在该地址内的数据DataA={A1,A2},存储器的一个输出端输出数据DataA到类型分析器;
步骤2、如果数据类型是数据,则将A2输出到关系分析器;
如果数据类型是地址,则将A2作为地址输入到寄存器堆的地址输入端,寄存器堆输出该地址对应的数据C到关系分析器;
步骤3、关系分析器分析A2或C与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤4、如果数据类型是集合地址,且关系一致,设置第二寄存器为有效,同时在当前地址对第一存储器写入有效信号;
步骤5、如果数据类型是数据,且第二寄存器为有效,则在当前地址对第一存储器写入有效信号;
步骤6、控制器使地址增1,继续执行步骤1-5的标记过程;
步骤7、地址继续增1,直到增大到地址最大值;地址每增1,查询分析器执行一次标记过程。
步骤S2中查询扫描的具体方法包括:
步骤1、控制器控制地址发生器产生地址,读取存储器在该地址内的数据DataA={A1,A2},在存储器的一个输出端输出数据到类型分析器;同时读取第一存储器内该地址的数据,输出到第二寄存器的输入端,第二寄存器会在下一个时钟边沿记录此数据,在时钟边沿到来之前第二寄存器仍然保持原值;
步骤2、如果数据类型是数据,则将A2直接输出到关系分析器;
如果数据类型是集合地址,则寄存器堆输出对应地址的数据C到关系分析器;
步骤3、关系分析器分析A2或C与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤4、如果数据类型是数据,且关系一致,且第二寄存器为有效,则在当前地址处对第一存储器写入有效信号;
步骤5、控制器使地址增1,查询分析器执行一次查询过程;
步骤6、地址继续增1,直到增大到地址最大值;每增1,查询分析器执行一次查询过程。
步骤S2中分类扫描的具体方法包括:
步骤1、设置第二寄存器为无效,控制器控制地址发生器产生地址最大值,读取第一存储器内该地址的数据;
步骤2、如果数据类型为数据,且如果第二寄存器为无效则把存储器Ra值写入第二寄存器,如果第二寄存器为有效则保持第二寄存器原值;
步骤3、如果数据类型为地址,则置第二寄存器为无效,同时读出A2到寄存器堆的地址输入端,A2为存储器在该地址内的数据DataA={A1,A2}的数据值,选通该地址对应的寄存器组,设置寄存器堆的值为B2,B2是指令中传递的立即数;
步骤4、控制器使地址减1,查询分析器执行一次分类过程;
步骤5、地址继续减1,直到减小到地址最小值;每减1,查询分析器执行一次分类过程。
步骤S2中进行读取的具体方法包括:
步骤1、控制器获取控制指令,并执行标记扫描过程;
步骤2、控制器控制地址发生器产生地址和片选信号;
步骤3、查询分析器读取存储器在该地址内的数据,若寄存器输出标记位为有效,则输出该数据。
在本发明的方法的另一个具体实施例中:存储器S为存储器组中一个存储器,寄存器堆为寄存器堆Rc,第一存储器为存储器Ra,第一寄存器为寄存器Rr,第二寄存器为寄存器Rin。
1、由一个控制器,一个地址发生器,一个地址译码器,三个存储器(A0、A1、A2),三个查询分析器(E0、E1、E2)组成。
2、采用逻辑1表示有效,逻辑0表示无效。
3、每个存储器存储容量为16*11bit,存储器地址范围为0000~1111。
4、DataA={A1,A2}。其中A1为3位,A2为8位,DataA为11位。用A1记录数据类型,A2记录数据值。
5、数据类型编码,如下表:
编码 意义
010 集合地址
101 数据
6、关系编码:
7、存储器单个字节各数据位的意义与示例数据如下表:
查询示例:
在下面三条记录
<B title=”CPU”author=”John”/>
<B title=”Face”author=”LP”/>
<C title=”RED”owner=”Lee”/>
中查找title=”CPU”的记录并输出。
电路工作过程:
【1】标记指令:
执行标记指令01000 010 00000001;
起始地址为00000。
如果类型分析器判断S0_A1是集合地址,寄存器堆Rc输出该地址的数据并输出到关系分析器。关系分析器判断此值与B的关系,如果与指令中的待求关系一致,则Rin=1,写入Ra在该地址处数据为1;否则写入Ra在该地址处数据为0。
如果类型分析器判断S0_A1是数据,且Rin=1,写入Ra在该地址处数据为1;否则写入Ra在该地址处数据为0。
地址增1,执行上述过程。直到地址增到最大值。
各存储器与寄存器变化如下表:
【2】查询指令:
执行查询指令:00100 010 00111100
1、地址发生器产生地址n=00000。
2、输出数据类型为010是集合地址。Rr记录Ra的输出,此时Rr=1。置Ra[0]=0。
3、Rr=1,S0_A2[1]=00111100与立即数00111100(表示字符“<”)的关系为010。置Ra[1]=1。
4、Rr=1,S0_A2[1]=01000010与立即数00111100的关系不是010。置Ra[2]=0。
5、与第四步相似,从Ra[2]到Ra[31]都被置为0。
(00111100为字符“<”的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00001 1 101 < 1 101 < 0 101 <
按照【2】过程执行查询指令:00100 010 01000010(01000010为字符“B”的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00010 1 101 B 1 101 B 0 101 C
按照【2】过程执行查询指令:00100 010 00100000(00100000为空格的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00011 1 101 空格 1 101 空格 0 101 空格
【3】分类指令:
执行分类指令00010 010 00000001 00000011
1、地址发生器产生最大地址11111
2、从地址11111到地址00100都不满足Ra=1,且Rin=0条件,则Rin不变,Rin=0;
3、当地址为00011时,满足Ra=1,且Rin=0条件,则Rin=1;
4、地址自减,从地址00010到地址00001都不满足Ra=1,且Rin=0条件,所以Rin不变,Rin=1;
当地址为00000时类型为集合地址,关系分析器分析把A2后两位值作为地址输出到Rc地址输入端。S0_Rc输出数据为0001,S1_Rc输出数据为0001,关系分析器E0、E1比较0001与立即数B2(B2=00000001)的后四位的关系是否为010,此处结果为是,则置Rc[00]=0011。
【4】标记指令:
执行标记指令01000 010 00000011;
指令执行过程与【1】相同,但立即数为00000011。
【5】查询指令
执行查询指令00100 010 01110100(01110100为字符t的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00100 1 101 t 1 101 t 0 101 t
执行查询指令00100 010 01101001(01101001为字符i的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00101 1 101 i 1 101 i 0 101 i
执行查询指令00100 010 01110100(01110100为字符t的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00110 1 101 t 1 101 t 0 101 t
执行查询指令00100 010 01101100(01101100为字符l的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00111 1 101 l 1 101 l 0 101 l
执行查询指令00100 010 01100101(01100101为字符e的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01000 1 101 e 1 101 E 0 101 e
执行查询指令00100 010 00111101(00111101为字符=的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01001 1 101 1 101 0 101
执行查询指令00100 010 00100010(00100010为字符”的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
010010 1 101 1 101 0 101
执行查询指令00100 010 01000011(01000011为字符C的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01011 1 101 C 0 101 F 0 101 R
执行查询指令00100 010 01010000(01010000为字符P的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01100 1 101 P 0 101 a 0 101 R
执行查询指令00100 010 01010101(01010101为字符U的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01101 1 101 U 0 101 c 0 101 R
执行查询指令00100 010 00100010(00100010为字符“的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01110 1 101 0 101 E 0 101 R
【6】分类指令:
执行分类指令00010 010 00000011 00000100;
指令执行过程与【3】相同,但立即数为00000011 00000100。
【7】读取
1、先执行标记指令01000 010 00000100。执行过程与【1】相同,但立即数为00000100。
2、执行读取指令00001 010 00000100
产生起始地址00000和片选信号。S0的Ra为1时,输出数据S0_A1,S0_A2到输出总线。Ra=0使输出为高阻态。随地址自增,数据依次被读出。
如图4所示,在本发明的另一个实施例中,查询分析器中去掉了寄存器堆Rc。
步骤S2中标记扫描的具体方法包括:
步骤1、控制器控制地址发生器产生起始地址,读取存储器在该地址内的数据DataA={A1,A2},A1输出到类型分析器,A2输出到关系分析器;
步骤2、关系分析器分析A2与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤3、如果数据类型是集合,且关系一致,设置第二寄存器为有效,同时在当前地址对第一存储器写入有效信号;
步骤4、如果数据类型是数据,且第二寄存器为有效,则在当前地址对第一存储器写入有效信号;
步骤5、控制器使地址增1,继续执行步骤1-4的标记过程;
步骤6、地址继续增1,直到增大到地址最大值;地址每增1,查询分析器执行一次标记过程。
步骤S2中查询扫描的具体方法包括:
步骤1、控制器控制地址发生器产生地址,读取存储器在该地址内的数据DataA={A1,A2},A1输出到类型分析器,A2输出到关系分析器;同时读取第一存储器内该地址的数据,输出到第二寄存器的输入端,第二寄存器会在下一个时钟边沿记录此数据,在时钟边沿到来之前第二寄存器仍然保持原值;
步骤2、关系分析器分析A2与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤3、如果数据类型是数据,且关系一致,且第二寄存器为有效,则在当前地址处对第一存储器写入有效信号;
步骤4、控制器使地址增1,查询分析器执行一次查询过程;
步骤5、地址继续增1,直到增大到地址最大值;每增1,查询分析器执行一次查询过程。
步骤S2中分类扫描的具体方法包括:
步骤1、设置第二寄存器为无效,控制器控制地址发生器产生地址最大值,读取第一存储器内该地址的数据;
步骤2、如果数据类型为数据,且如果第二寄存器为无效则把存储器Ra值写入第二寄存器,如果第二寄存器为有效则保持第二寄存器原值;
步骤3、如果数据类型为集合,则置第二寄存器为无效,设置存储器在当前地址处的值为B2,B2是指令中传递的立即数;
步骤4、控制器使地址减1,查询分析器执行一次分类过程;
步骤5、地址继续减1,直到减小到地址最小值;每减1,查询分析器执行一次分类过程。
步骤S2中进行读取的具体方法包括:
步骤1、控制器获取控制指令,并执行标记扫描过程;
步骤2、控制器控制地址发生器产生地址和片选信号;
步骤3、查询分析器读取存储器在该地址内的数据,若寄存器输出标记位为有效,则输出该数据。
在这种实施方式中,对应的一个处理过程为:
存储器S为存储器组中一个存储器,第一存储器为存储器Ra,第一寄存器为寄存器Rr,第二寄存器为寄存器Rin。
1、由一个控制器,一个地址发生器,一个地址译码器,三个存储器(A0、A1、A2),三个查询分析器(E0、E1、E2)组成。
2、采用逻辑1表示有效,逻辑0表示无效。
3、每个存储器存储容量为16*11bit,存储器地址范围为0000~1111。
4、DataA={A1,A2}。其中A1为3位,A2为8位,DataA为11位。用A1记录数据类型,A2记录数据值。
5、数据类型编码,如下表:
编码 意义
010 集合
101 数据
6、关系编码:
7、存储器单个字节各数据位的意义与示例数据如下表:
查询示例:
在下面三条记录
<B title=”CPU”author=”John”/>
<B title=”Face”author=”LP”/>
<C title=”RED”owner=”Lee”/>
中查找title=”CPU”的记录并输出。
电路工作过程:
【1】标记指令:
执行标记指令01000 010 00000001;
起始地址为00000。
如果类型分析器判断S0_A1是集合,关系分析器判断此值与B的关系,如果与指令中的待求关系一致,则Rin=1,写入Ra在该地址处数据为1;否则写入Ra在该地址处数据为0。
如果类型分析器判断S0_A1是数据,且Rin=1,写入Ra在该地址处数据为1;否则写入Ra在该地址处数据为0。
地址增1,执行上述过程。直到地址增到最大值。
各存储器与寄存器变化如下表:
【2】查询指令:
执行查询指令:00100 010 00111100
1、地址发生器产生地址n=00000。
2、输出数据类型为010是集合。Rr记录Ra的输出,此时Rr=1。置Ra[0]=0。
3、Rr=1,S0_A2[1]=00111100与立即数00111100(表示字符“<”)的关系为010。置Ra[1]=1。
4、Rr=1,S0_A2[1]=01000010与立即数00111100的关系不是010。置Ra[2]=0。
5、与第四步相似,从Ra[2]到Ra[31]都被置为0。
(00111100为字符“<”的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00001 1 101 < 1 101 < 0 101 <
按照【2】过程执行查询指令:00100 010 01000010(01000010为字符“B”的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
按照【2】过程执行查询指令:00100 010 00100000(00100000为空格的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00011 1 101 空格 1 101 空格 0 101 空格
【3】分类指令:
执行分类指令00010 010 00000001 00000011
1、地址发生器产生最大地址11111
2、从地址11111到地址00100都不满足Ra=1,且Rin=0条件,则Rin不变,Rin=0;
3、当地址为00011时,满足Ra=1,且Rin=0条件,则Rin=1;
4、地址自减,从地址00010到地址00001都不满足Ra=1,且Rin=0条件,所以Rin不变,Rin=1;
当地址为00000时类型为集合,关系分析器分析把A2后两位值与立即数B2(B2=00000001)的后两位的关系是否为010,此处结果为是,则置A2=11。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00000 1 010 11 1 010 11 0 010 00
【4】标记指令:
执行标记指令01000 010 00000011;
指令执行过程与【1】相同,但立即数为00000011。
【5】查询指令
执行查询指令00100 010 01110100(01110100为字符t的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00100 1 101 t 1 101 t 0 101 t
执行查询指令00100 010 01101001(01101001为字符i的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00101 1 101 i 1 101 i 0 101 i
执行查询指令00100 010 01110100(01110100为字符t的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00110 1 101 t 1 101 t 0 101 t
执行查询指令00100 010 01101100(01101100为字符l的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
00111 1 101 l 1 101 l 0 101 l
执行查询指令00100 010 01100101(01100101为字符e的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01000 1 101 e 1 101 E 0 101 e
执行查询指令00100 010 00111101(00111101为字符=的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01001 1 101 1 101 0 101
执行查询指令00100 010 00100010(00100010为字符”的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
010010 1 101 1 101 0 101
执行查询指令00100 010 01000011(01000011为字符C的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01011 1 101 C 0 101 F 0 101 R
执行查询指令00100 010 01010000(01010000为字符P的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01100 1 101 P 0 101 a 0 101 R
执行查询指令00100 010 01010101(01010101为字符U的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01101 1 101 U 0 101 c 0 101 R
执行查询指令00100 010 00100010(00100010为字符“的ASCii码)其中Ra变化如下表。未列出的Ra都为0。
地址 S0_Ra S0_A1 S0_A2 S1_Ra S1_A1 S1_A2 S2_Ra S2_A1 S2_A2
01110 1 101 0 101 E 0 101 R
【6】分类指令:
执行分类指令00010 010 00000011 00000001;
指令执行过程与【3】相同,但立即数为00000011 00000001。
【7】读取
1、先执行标记指令01000 010 00000100。执行过程与【1】相同,但立即数为00000100。
2、执行读取指令00001 010 00000001
产生起始地址00000和片选信号。S0的Ra为1时,输出数据S0_A1,S0_A2到输出总线。Ra=0使输出为高阻态。随地址自增,数据依次被读出。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (7)

1.一种有查询功能的存储器,其特征在于,包括指令译码器、控制器、地址发生及译码器、存储器组和查询分析器组,其中:
所述指令译码器,用于将接收到的指令进行指令译码,并产生控制信号;
所述控制器,用于根据指令译码的结果,控制首地址的产生,地址的递增、递减、复位和保持;
所述地址发生及译码器,用于产生查询使用的起始地址,并进行地址译码,得到地址信号;
所述存储器组,包括多个相互并联的存储器;
所述查询分析器组,包括与存储器一一对应的查询分析器,每个查询分析器通过指令总线从指令译码器获得控制信号,通过地址总线从地址发生及译码器获得地址信号,根据地址信号和控制信号,对其对应的存储器中的数据进行标记、查询、分类和读取操作,并通过数据输出总线输出查询结果;
所述查询分析器包括关系分析器、类型分析器和多个寄存器;
类型分析器用于分析从存储器输出的数据类型,将数据输出到寄存器或关系分析器中,同时将类型分析结果输出给关系分析器;
关系分析器用于根据指令中的立即数,与存储器输出的数据进行数据关系分析,并判断是否输出数据。
2.根据权利要求1所述的有查询功能的存储器,其特征在于,所述查询分析器还包括第一存储器,用于存储关系分析器根据控制指令对数据分析的结果。
3.根据权利要求2所述的有查询功能的存储器,其特征在于,所述寄存器包括第一寄存器、第二寄存器和寄存器堆;
第一寄存器设置在第一存储器与关系分析器之间,用于寄存从第一存储器输出的数据;
第二寄存器与关系分析器相连,用于寄存第一存储器中的数据是否存在有效数据;
寄存器堆设置在类型分析器和关系分析器之间,用于存储集合数据。
4.一种权利要求1所述的有查询功能的存储器的查询方法,其特征在于,包括以下步骤:
S1、指令译码器对指令进行指令译码,得到控制信号;
S2、控制器依据控制信号控制地址发生及译码器产生首地址并进行地址译码,得到地址信号,存储器输出该地址处的数据;
S3、查询分析器根据控制信号,对从存储器中输出的数据进行标记扫描、查询扫描、分类扫描和读取的操作;
S4、通过数据输出总线对查询结果进行输出;
步骤S2中标记扫描的具体方法包括:
步骤1、控制器控制地址发生器产生起始地址,读取存储器在该地址内的数据DataA={A1,A2},存储器的一个输出端输出数据DataA到类型分析器;
步骤2、如果数据类型是数据,则将A2输出到关系分析器;
如果数据类型是地址,则将A2作为地址输入到寄存器堆的地址输入端,寄存器堆输出该地址对应的数据C到关系分析器;
步骤3、关系分析器分析A2或C与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤4、如果数据类型是集合地址,且关系一致,设置第二寄存器为有效,同时在当前地址对第一存储器写入有效信号;
步骤5、如果数据类型是数据,且第二寄存器为有效,则在当前地址对第一存储器写入有效信号;
步骤6、控制器使地址增1,继续执行步骤1-5的标记过程;
步骤7、地址继续增1,直到增大到地址最大值;地址每增1,查询分析器执行一次标记过程。
5.根据权利要求4所述的有查询功能的存储器的查询方法,其特征在于,步骤S2中查询扫描的具体方法包括:
步骤1、控制器控制地址发生器产生地址,读取存储器在该地址内的数据DataA={A1,A2},在存储器的一个输出端输出数据到类型分析器;同时读取第一存储器内该地址的数据,输出到第二寄存器的输入端,第二寄存器会在下一个时钟边沿记录此数据,在时钟边沿到来之前第二寄存器仍然保持原值;
步骤2、如果数据类型是数据,则将A2直接输出到关系分析器;
如果数据类型是集合地址,则寄存器堆输出对应地址的数据C到关系分析器;
步骤3、关系分析器分析A2或C与指令中的立即数B1的关系,判断二者之间的关系是否与指令中的关系码OP所指定的关系一致;
步骤4、如果数据类型是数据,且关系一致,且第二寄存器为有效,则在当前地址处对第一存储器写入有效信号;
步骤5、控制器使地址增1,查询分析器执行一次查询过程;
步骤6、地址继续增1,直到增大到地址最大值;每增1,查询分析器执行一次查询过程。
6.根据权利要求4所述的有查询功能的存储器的查询方法,其特征在于,步骤S2中分类扫描的具体方法包括:
步骤1、设置第二寄存器为无效,控制器控制地址发生器产生地址最大值,读取第一存储器内该地址的数据;
步骤2、如果数据类型为数据,且如果第二寄存器为无效则把存储器Ra值写入第二寄存器,如果第二寄存器为有效则保持第二寄存器原值;
步骤3、如果数据类型为地址,则置第二寄存器为无效,同时读出A2到寄存器堆的地址输入端,A2为存储器在该地址内的数据DataA={A1,A2}的数据值,选通该地址对应的寄存器组,设置寄存器堆的值为B2,B2是指令中传递的立即数;
步骤4、控制器使地址减1,查询分析器执行一次分类过程;
步骤5、地址继续减1,直到减小到地址最小值;每减1,查询分析器执行一次分类过程。
7.根据权利要求4所述的有查询功能的存储器的查询方法,其特征在于,步骤S2中进行读取的具体方法包括:
步骤1、控制器获取控制指令,并执行标记扫描过程;
步骤2、控制器控制地址发生器产生地址和片选信号;
步骤3、查询分析器读取存储器在该地址内的数据,若寄存器输出标记位为有效,则输出该数据。
CN201610428748.0A 2016-06-15 2016-06-15 一种有查询功能的存储器及其查询方法 Expired - Fee Related CN106126114B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610428748.0A CN106126114B (zh) 2016-06-15 2016-06-15 一种有查询功能的存储器及其查询方法
PCT/CN2016/087387 WO2017215030A1 (zh) 2016-06-15 2016-06-28 一种有查询功能的存储器及其查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610428748.0A CN106126114B (zh) 2016-06-15 2016-06-15 一种有查询功能的存储器及其查询方法

Publications (2)

Publication Number Publication Date
CN106126114A CN106126114A (zh) 2016-11-16
CN106126114B true CN106126114B (zh) 2018-09-07

Family

ID=57470476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610428748.0A Expired - Fee Related CN106126114B (zh) 2016-06-15 2016-06-15 一种有查询功能的存储器及其查询方法

Country Status (2)

Country Link
CN (1) CN106126114B (zh)
WO (1) WO2017215030A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159002B (zh) * 2019-12-31 2023-04-28 山东有人物联网股份有限公司 一种基于分组的数据边缘采集方法、边缘采集设备及系统
CN111478708B (zh) * 2020-03-31 2023-08-11 Oppo广东移动通信有限公司 电子设备、芯片、系统总线、译码模块、译码器及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055511B (zh) * 2007-05-16 2010-05-26 华为技术有限公司 一种存储阵列系统及其数据操作方法
JP4712069B2 (ja) * 2008-06-03 2011-06-29 富士通株式会社 スイッチ装置、ストレージシステム、およびルーティング方法
JP5902137B2 (ja) * 2013-09-24 2016-04-13 株式会社東芝 ストレージシステム
CN104571946B (zh) * 2014-11-28 2017-06-27 中国科学院上海微系统与信息技术研究所 一种支持逻辑电路快速查询的存储器装置及其访问方法
CN104965676B (zh) * 2015-06-17 2018-10-16 深圳市中兴微电子技术有限公司 一种随机存取存储器的访问方法、装置及控制芯片

Also Published As

Publication number Publication date
WO2017215030A1 (zh) 2017-12-21
CN106126114A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
US4167728A (en) Automatic image processor
US4514826A (en) Relational algebra engine
US7934025B2 (en) Content terminated DMA
CN101853301A (zh) 正则表达式匹配的方法和系统
US4495575A (en) Information processing apparatus for virtual storage control system
US10521366B2 (en) System and method for individual addressing
US10698697B2 (en) Adaptive routing to avoid non-repairable memory and logic defects on automata processor
CN111930386B (zh) 一种pattern文件编译方法、装置及电子设备
CN106126114B (zh) 一种有查询功能的存储器及其查询方法
US5125039A (en) Object recognition system
CN101866277B (zh) 数据排序方法和装置
CN102855194B (zh) 数据存储方法和存储器
CN107678686A (zh) 基于硬件实现闪存的ftl功能的方法及其数据存储装置
CN106843803A (zh) 一种基于归并树的全排序加速器及应用
CN106816175A (zh) 存储器的控制方法及装置
CN103902471B (zh) 数据缓存处理方法和装置
CN107463340A (zh) 计算机的数据存储系统
CN110262753A (zh) 一种加快命令响应的方法、系统以及ssd
CN102663051A (zh) 搜索内容可寻址存储器的方法和系统
CN103176912A (zh) 随机写的方法和转换器
CN213780945U (zh) 一种日志数据快速存储装置
CN105426130B (zh) 邮件快速处理方法
CN105518790A (zh) 数据写入的方法及装置
CN105843589A (zh) 一种应用于vliw类型处理器的存储器装置
CN101859605B (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
TA01 Transfer of patent application right

Effective date of registration: 20180820

Address after: 430073 Optics Valley Road 16, Optics Valley New Technology Development Zone, Wuhan, Hubei, 6, 1, 12, 03, room 8, Optics Valley 8.

Applicant after: Wuhan card code technology Co., Ltd.

Address before: 154300 Heilongjiang Jiamusi Huachuan County Jianshe Road Jixiang Jiayuan 5-402

Applicant before: Pang Haoxue

TA01 Transfer of patent application right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180907

Termination date: 20190615

CF01 Termination of patent right due to non-payment of annual fee