欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種有查詢功能的存儲器及其查詢方法與流程

文檔序號:11864271閱讀:405來源:國知局
一種有查詢功能的存儲器及其查詢方法與流程
本發(fā)明涉及集成電路
技術(shù)領(lǐng)域
,尤其涉及一種有查詢功能的存儲器及其查詢方法。
背景技術(shù)
:現(xiàn)有技術(shù)中存儲芯片為單一存儲功能,通過計算機向存儲器發(fā)出讀取命令,計算機收到返回的數(shù)據(jù)后,由處理器對數(shù)據(jù)進行相應處理,針對大規(guī)模的數(shù)據(jù)存儲時,一般采用多個存儲器組成陣列的形式擴大存儲規(guī)模,但是缺點就是查詢速度不能夠跟上存儲規(guī)模的擴展速度。數(shù)據(jù)查詢技術(shù)方面:硬件主要有存儲系統(tǒng)和計算系統(tǒng)組成,依托數(shù)據(jù)庫軟件或hadoop等分布式系統(tǒng)基礎(chǔ)架構(gòu)實現(xiàn)數(shù)據(jù)查詢。這種系統(tǒng)在PB級大數(shù)據(jù)條件下查詢速度很慢,很難滿足實時查詢的要求。并且隨著數(shù)據(jù)量的增長在未來EB級數(shù)據(jù)量甚至更高級別的數(shù)據(jù)量條件下將難以應對。在中國發(fā)明專利201310591511.0中公開了一種高速存儲器,該高速存儲器包括:充電電路,鋰電池,低漏電儲存電路和讀/寫控制電路;所述充電電路連接于電源與所述鋰電池之間,用于為所述鋰電池充電;當所述電源斷開時,切斷所述電池的漏電通路;所述讀/寫控制電路連接于電源和低漏電儲存電路,當所述電源導通時,用于低漏電儲存電路的讀或?qū)懖僮?;所述鋰電池,當所述電源斷開時,用于為所述低漏電儲存電路供電,所述低漏電儲存電路保持存儲信息。本對比文獻中的方案雖然能夠減小存儲器的寫操作時間,提高讀取速度。但是對于大規(guī)模數(shù)據(jù)中,要實現(xiàn)對數(shù)據(jù)的查詢,仍然只能對存儲器內(nèi)的數(shù)據(jù)逐個的讀取,然后由處理器判斷該數(shù)據(jù)是否滿足查詢條件,整個系統(tǒng)的查詢速度很慢。技術(shù)實現(xiàn)要素:本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中查詢速度慢的缺陷,提供一種通過內(nèi)嵌數(shù)據(jù)查詢分析器,實現(xiàn)對數(shù)據(jù)進行快速、實時查詢的有查詢功能的存儲器及其查詢方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:本發(fā)明提供一種有查詢功能的存儲器,包括指令譯碼器、控制器、地址發(fā)生及譯碼器、存儲器組和查詢分析器組,其中:所述指令譯碼器,用于將接收到的指令進行指令譯碼,并產(chǎn)生控制信號;所述控制器,用于根據(jù)指令譯碼的結(jié)果,控制首地址的產(chǎn)生,地址的遞增、遞減、復位和保持;所述地址發(fā)生及譯碼器,用于產(chǎn)生查詢使用的起始地址,并進行地址譯碼,得到地址信號;所述存儲器組,包括多個相互并聯(lián)的存儲器;所述查詢分析器組,包括與存儲器一一對應的查詢分析器,每個查詢分析器通過指令總線從指令譯碼器獲得控制信號,通過地址總線從地址發(fā)生及譯碼器獲得地址信號,根據(jù)地址信號和控制信號,對其對應的存儲器中的數(shù)據(jù)進行標記、查詢、分類和讀取操作,并通過數(shù)據(jù)輸出總線輸出查詢結(jié)果。進一步地,本發(fā)明的所述查詢分析器包括關(guān)系分析器、類型分析器和多個寄存器;類型分析器用于分析從存儲器輸出的數(shù)據(jù)類型,將數(shù)據(jù)輸出到寄存器或關(guān)系分析器中,同時將類型分析結(jié)果輸出給關(guān)系分析器;關(guān)系分析器用于根據(jù)指令中的立即數(shù),與存儲器輸出的數(shù)據(jù)進行數(shù)據(jù)關(guān)系分析,并判斷是否輸出數(shù)據(jù)。進一步地,本發(fā)明的所述查詢分析器還包括第一存儲器,用于存儲關(guān)系分析器根據(jù)控制指令對數(shù)據(jù)分析的結(jié)果。進一步地,本發(fā)明的所述寄存器包括第一寄存器、第二寄存器和寄存器堆;第一寄存器設(shè)置在第一存儲器與關(guān)系分析器之間,用于寄存從第一存儲器輸出的數(shù)據(jù);第二寄存器與關(guān)系分析器相連,用于寄存第一存儲器中的數(shù)據(jù)是否存在有效數(shù)據(jù);寄存器堆設(shè)置在類型分析器和關(guān)系分析器之間,用于存儲集合數(shù)據(jù)。本發(fā)明提供一種有查詢功能的存儲器的查詢方法,包括以下步驟:S1、指令譯碼器對指令進行指令譯碼,得到控制信號;S2、控制器依據(jù)控制信號控制地址發(fā)生及譯碼器產(chǎn)生首地址并進行地址譯碼,得到地址信號,存儲器輸出該地址處的數(shù)據(jù);S3、查詢分析器根據(jù)控制信號,對從存儲器中輸出的數(shù)據(jù)進行標記掃描、查詢掃描、分類掃描和讀取的操作;S4、通過數(shù)據(jù)輸出總線對查詢結(jié)果進行輸出。進一步地,本發(fā)明的步驟S2中標記掃描的具體方法包括:步驟1、控制器控制地址發(fā)生器產(chǎn)生起始地址,讀取存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2},存儲器的一個輸出端輸出數(shù)據(jù)DataA到類型分析器;步驟2、如果數(shù)據(jù)類型是數(shù)據(jù),則將A2輸出到關(guān)系分析器;如果數(shù)據(jù)類型是地址,則將A2作為地址輸入到寄存器堆的地址輸入端,寄存器堆輸出該地址對應的數(shù)據(jù)C到關(guān)系分析器;步驟3、關(guān)系分析器分析A2或C與指令中的立即數(shù)B1的關(guān)系,判斷二者之間的關(guān)系是否與指令中的關(guān)系碼OP所指定的關(guān)系一致;步驟4、如果數(shù)據(jù)類型是集合地址,且關(guān)系一致,設(shè)置第二寄存器為有效,同時在當前地址對第一存儲器寫入有效信號;步驟5、如果數(shù)據(jù)類型是數(shù)據(jù),且第二寄存器為有效,則在當前地址對第一存儲器寫入有效信號;步驟6、控制器使地址增1,繼續(xù)執(zhí)行步驟1-5的標記過程;步驟7、地址繼續(xù)增1,直到增大到地址最大值;地址每增1,查詢分析器執(zhí)行一次標記過程。進一步地,本發(fā)明的步驟S2中查詢掃描的具體方法包括:步驟1、控制器控制地址發(fā)生器產(chǎn)生地址,讀取存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2},在存儲器的一個輸出端輸出數(shù)據(jù)到類型分析器;同時讀取第一存儲器內(nèi)該地址的數(shù)據(jù),輸出到第二寄存器的輸入端,第二寄存器會在下一個時鐘邊沿記錄此數(shù)據(jù),在時鐘邊沿到來之前第二寄存器仍然保持原值;步驟2、如果數(shù)據(jù)類型是數(shù)據(jù),則將A2直接輸出到關(guān)系分析器;如果數(shù)據(jù)類型是集合地址,則寄存器堆輸出對應地址的數(shù)據(jù)C到關(guān)系分析器;步驟3、關(guān)系分析器分析A2或C與指令中的立即數(shù)B1的關(guān)系,判斷二者之間的關(guān)系是否與指令中的關(guān)系碼OP所指定的關(guān)系一致;步驟4、如果數(shù)據(jù)類型是數(shù)據(jù),且關(guān)系一致,且第二寄存器為有效,則在當前地址處對第一存儲器寫入有效信號;步驟5、控制器使地址增1,查詢分析器執(zhí)行一次查詢過程;步驟6、地址繼續(xù)增1,直到增大到地址最大值;每增1,查詢分析器執(zhí)行一次查詢過程。進一步地,本發(fā)明的步驟S2中分類掃描的具體方法包括:步驟1、設(shè)置第二寄存器為無效,控制器控制地址發(fā)生器產(chǎn)生地址最大值,讀取第一存儲器內(nèi)該地址的數(shù)據(jù);步驟2、如果數(shù)據(jù)類型為數(shù)據(jù),且如果第二寄存器為無效則把存儲器Ra值寫入第二寄存器,如果第二寄存器為有效則保持第二寄存器原值;步驟3、如果數(shù)據(jù)類型為地址,則置第二寄存器為無效,同時讀出A2到寄存器堆的地址輸入端,A2為存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2}的數(shù)據(jù)值,選通該地址對應的寄存器組,設(shè)置寄存器堆的值為B2,B2是指令中傳遞的立即數(shù);步驟4、控制器使地址減1,查詢分析器執(zhí)行一次分類過程;步驟5、地址繼續(xù)減1,直到減小到地址最小值;每減1,查詢分析器執(zhí)行一次分類過程。進一步地,本發(fā)明的步驟S2中進行讀取的具體方法包括:步驟1、控制器獲取控制指令,并執(zhí)行標記掃描過程;步驟2、控制器控制地址發(fā)生器產(chǎn)生地址和片選信號;步驟3、查詢分析器讀取存儲器在該地址內(nèi)的數(shù)據(jù),若寄存器輸出標記位為有效,則輸出該數(shù)據(jù)。本發(fā)明產(chǎn)生的有益效果是:本發(fā)明的有查詢功能的存儲器,通過在集成電路內(nèi)部將存儲器分成多組,每個存儲器都設(shè)置有查詢分析器,對該存儲器內(nèi)部的數(shù)據(jù)進行查詢,大幅的提高了數(shù)據(jù)查詢速度;該存儲器通過在存儲器內(nèi)部增加數(shù)據(jù)查詢的功能模塊,查詢用時不會隨數(shù)據(jù)量的增加而增加,在大數(shù)據(jù)情況下能夠顯著的增加數(shù)據(jù)查詢速度,不受硬件系統(tǒng)讀寫瓶頸對查詢速度的影響。附圖說明下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:圖1是本發(fā)明實施例的有查詢功能的存儲器的結(jié)構(gòu)示意圖;圖2是本發(fā)明實施例的有查詢功能的存儲器的查詢分析器的結(jié)構(gòu)示意圖;圖3是本發(fā)明實施例的有查詢功能的存儲器的查詢方法的流程圖;圖4是本發(fā)明實施例的有查詢功能的存儲器的去掉寄存器堆的查詢分析器的結(jié)構(gòu)示意圖。具體實施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所示,本發(fā)明實施例的有查詢功能的存儲器,包括指令譯碼器、控制器、地址發(fā)生及譯碼器、存儲器組和查詢分析器組,其中:指令譯碼器,用于將接收到的指令進行指令譯碼,并產(chǎn)生控制信號;控制器,用于根據(jù)指令譯碼的結(jié)果,控制首地址的產(chǎn)生,地址的遞增、遞減、復位和保持;地址發(fā)生及譯碼器,用于產(chǎn)生查詢使用的起始地址,并進行地址譯碼,得到地址信號;存儲器組,包括多個相互并聯(lián)的存儲器;查詢分析器組,包括與存儲器一一對應的查詢分析器,每個查詢分析器通過指令總線從指令譯碼器獲得控制信號,通過地址總線從地址發(fā)生及譯碼器獲得地址信號,根據(jù)地址信號和控制信號,對其對應的存儲器中的數(shù)據(jù)進行標記、查詢、分類和讀取操作,并通過數(shù)據(jù)輸出總線輸出查詢結(jié)果。如圖2所示,查詢分析器包括關(guān)系分析器、類型分析器和多個寄存器;類型分析器用于分析從存儲器輸出的數(shù)據(jù)類型,將數(shù)據(jù)輸出到寄存器或關(guān)系分析器中,同時將類型分析結(jié)果輸出給關(guān)系分析器;關(guān)系分析器用于根據(jù)指令中的立即數(shù),與存儲器輸出的數(shù)據(jù)進行數(shù)據(jù)關(guān)系分析,并判斷是否輸出數(shù)據(jù)。查詢分析器還包括第一存儲器,用于存儲關(guān)系分析器根據(jù)控制指令對數(shù)據(jù)分析的結(jié)果。寄存器包括第一寄存器、第二寄存器和寄存器堆;第一寄存器設(shè)置在第一存儲器與關(guān)系分析器之間,用于寄存從第一存儲器輸出的數(shù)據(jù);第二寄存器與關(guān)系分析器相連,用于寄存第一存儲器中的數(shù)據(jù)是否存在有效數(shù)據(jù);寄存器堆設(shè)置在類型分析器和關(guān)系分析器之間,用于存儲集合數(shù)據(jù)。在本發(fā)明的另一個具體實施例中,存儲器S為存儲器組中一個存儲器,寄存器堆為寄存器堆Rc,第一存儲器為存儲器Ra,第一寄存器為寄存器Rr,第二寄存器為寄存器Rin。指令包括:操作碼OC、關(guān)系碼OP、立即數(shù)B1和立即數(shù)B2。操作碼OC經(jīng)譯碼后得到控制信號CMD。控制信號CMD表示不同的操作,關(guān)系碼OP表示關(guān)系分析器的8種比較關(guān)系,B1和B2是對存儲器中數(shù)據(jù)進行比較的數(shù)值。各個模塊的功能分別為:一、存儲器S:功能:用于存儲數(shù)據(jù)及數(shù)據(jù)類型。補充說明:一個存儲器S的存儲容量不限。容量為n*m位(n為存儲器S內(nèi)的字節(jié)數(shù),m為字長。)示例:存儲的一個字節(jié)DataA={A1數(shù)據(jù)類型,A2數(shù)據(jù)}。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:功能:用于存儲關(guān)系分析器依據(jù)當前指令對數(shù)據(jù)分析的結(jié)果。其結(jié)果記錄在與存儲器S當前地址指向的字節(jié)對應的存儲單元中。三、寄存器Rr:功能:寄存從存儲器Ra輸出的數(shù)據(jù)。Rr值的更新是在一次查詢分析結(jié)束時的時鐘邊沿。這意味著Rr中的值總是上一個地址中Ra的值。當?shù)刂窞槠鹗嫉刂窌r。Rr為默認的值0。例如:如下表。當前地址為00101。Ra的輸出為地址00101指向的Ra中的數(shù)據(jù)0。此時的Rr中的數(shù)據(jù)是地址00100指向的Ra中的數(shù)據(jù)1。地址RaA1A2001001101t001010101t001100101t四、寄存器Rin:功能:記錄是否有Ra為有效。例如:在演示實例中,當執(zhí)行分類指令時,地址從最大值遞減,當某個地址處的Ra=1,且Rin=0時,置Rin=1。接著Rin的值不變,直到找到數(shù)據(jù)類型為集合地址的字節(jié)時Rin=0。五、類型分析器:功能:分析DataA中的A1是什么類型,并依據(jù)類型控制A2輸出到寄存器堆Rc還是關(guān)系分析器。同時把類型分析結(jié)果輸出給關(guān)系分析器。A1有8種類型:空、數(shù)據(jù)起始地址、集合地址、數(shù)據(jù)結(jié)束地址、數(shù)字、字符、外聯(lián)、無關(guān)。其中空、數(shù)據(jù)起始地址、數(shù)據(jù)結(jié)束地址、外聯(lián)、無關(guān)這五個類型是在外部設(shè)備中使用的與本電路無關(guān)。六、寄存器堆Rc功能:存儲集合數(shù)據(jù)。即存儲表示該數(shù)據(jù)記錄屬于哪個分類的數(shù)據(jù)。例如:在下面一條記錄<Btitle=”CPU”author=”John”/>在字符<的前面有一個字節(jié)(地址為00000)存放集合地址例如下表所示:記錄<Btitle=”CPU”author=”John”/>屬于集合地址為00000000的后兩位(具體幾位取決于Rc集合地址的位數(shù))即:00所指向的集合0001。即記錄<Btitle=”CPU”author=”John”/>屬于集合0001。如果00000000改為00000010則:記錄<Btitle=”CPU”author=”John”/>屬于集合0101。七、關(guān)系分析器;功能:1、依據(jù)指令CMD分析立即數(shù)B1與C或B1與A2之間的關(guān)系是否是op所描述的關(guān)系。2、依據(jù)指令CMD和當前Ra,Rr,Rin的值,并B1與C或A2的關(guān)系,控制寫入Ra,Rin的值。3、控制是否將B2寫入寄存器堆Rc。4、在數(shù)據(jù)讀取指令時依據(jù)Ra的值決定是否輸出數(shù)據(jù)。op描述的關(guān)系有八種: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所示,本發(fā)明實施例的有查詢功能的存儲器的查詢方法,包括以下步驟:S1、指令譯碼器對指令進行指令譯碼,得到控制信號;S2、控制器依據(jù)控制信號控制地址發(fā)生及譯碼器產(chǎn)生首地址并進行地址譯碼,得到地址信號,存儲器輸出該地址處的數(shù)據(jù);S3、查詢分析器根據(jù)控制信號,對從存儲器中輸出的數(shù)據(jù)進行標記掃描、查詢掃描、分類掃描和讀取的操作;S4、通過數(shù)據(jù)輸出總線對查詢結(jié)果進行輸出。步驟S2中標記掃描的具體方法包括:步驟1、控制器控制地址發(fā)生器產(chǎn)生起始地址,讀取存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2},存儲器的一個輸出端輸出數(shù)據(jù)DataA到類型分析器;步驟2、如果數(shù)據(jù)類型是數(shù)據(jù),則將A2輸出到關(guān)系分析器;如果數(shù)據(jù)類型是地址,則將A2作為地址輸入到寄存器堆的地址輸入端,寄存器堆輸出該地址對應的數(shù)據(jù)C到關(guān)系分析器;步驟3、關(guān)系分析器分析A2或C與指令中的立即數(shù)B1的關(guān)系,判斷二者之間的關(guān)系是否與指令中的關(guān)系碼OP所指定的關(guān)系一致;步驟4、如果數(shù)據(jù)類型是集合地址,且關(guān)系一致,設(shè)置第二寄存器為有效,同時在當前地址對第一存儲器寫入有效信號;步驟5、如果數(shù)據(jù)類型是數(shù)據(jù),且第二寄存器為有效,則在當前地址對第一存儲器寫入有效信號;步驟6、控制器使地址增1,繼續(xù)執(zhí)行步驟1-5的標記過程;步驟7、地址繼續(xù)增1,直到增大到地址最大值;地址每增1,查詢分析器執(zhí)行一次標記過程。步驟S2中查詢掃描的具體方法包括:步驟1、控制器控制地址發(fā)生器產(chǎn)生地址,讀取存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2},在存儲器的一個輸出端輸出數(shù)據(jù)到類型分析器;同時讀取第一存儲器內(nèi)該地址的數(shù)據(jù),輸出到第二寄存器的輸入端,第二寄存器會在下一個時鐘邊沿記錄此數(shù)據(jù),在時鐘邊沿到來之前第二寄存器仍然保持原值;步驟2、如果數(shù)據(jù)類型是數(shù)據(jù),則將A2直接輸出到關(guān)系分析器;如果數(shù)據(jù)類型是集合地址,則寄存器堆輸出對應地址的數(shù)據(jù)C到關(guān)系分析器;步驟3、關(guān)系分析器分析A2或C與指令中的立即數(shù)B1的關(guān)系,判斷二者之間的關(guān)系是否與指令中的關(guān)系碼OP所指定的關(guān)系一致;步驟4、如果數(shù)據(jù)類型是數(shù)據(jù),且關(guān)系一致,且第二寄存器為有效,則在當前地址處對第一存儲器寫入有效信號;步驟5、控制器使地址增1,查詢分析器執(zhí)行一次查詢過程;步驟6、地址繼續(xù)增1,直到增大到地址最大值;每增1,查詢分析器執(zhí)行一次查詢過程。步驟S2中分類掃描的具體方法包括:步驟1、設(shè)置第二寄存器為無效,控制器控制地址發(fā)生器產(chǎn)生地址最大值,讀取第一存儲器內(nèi)該地址的數(shù)據(jù);步驟2、如果數(shù)據(jù)類型為數(shù)據(jù),且如果第二寄存器為無效則把存儲器Ra值寫入第二寄存器,如果第二寄存器為有效則保持第二寄存器原值;步驟3、如果數(shù)據(jù)類型為地址,則置第二寄存器為無效,同時讀出A2到寄存器堆的地址輸入端,A2為存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2}的數(shù)據(jù)值,選通該地址對應的寄存器組,設(shè)置寄存器堆的值為B2,B2是指令中傳遞的立即數(shù);步驟4、控制器使地址減1,查詢分析器執(zhí)行一次分類過程;步驟5、地址繼續(xù)減1,直到減小到地址最小值;每減1,查詢分析器執(zhí)行一次分類過程。步驟S2中進行讀取的具體方法包括:步驟1、控制器獲取控制指令,并執(zhí)行標記掃描過程;步驟2、控制器控制地址發(fā)生器產(chǎn)生地址和片選信號;步驟3、查詢分析器讀取存儲器在該地址內(nèi)的數(shù)據(jù),若寄存器輸出標記位為有效,則輸出該數(shù)據(jù)。在本發(fā)明的方法的另一個具體實施例中:存儲器S為存儲器組中一個存儲器,寄存器堆為寄存器堆Rc,第一存儲器為存儲器Ra,第一寄存器為寄存器Rr,第二寄存器為寄存器Rin。1、由一個控制器,一個地址發(fā)生器,一個地址譯碼器,三個存儲器(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記錄數(shù)據(jù)類型,A2記錄數(shù)據(jù)值。5、數(shù)據(jù)類型編碼,如下表:編碼意義010集合地址101數(shù)據(jù)6、關(guān)系編碼:7、存儲器單個字節(jié)各數(shù)據(jù)位的意義與示例數(shù)據(jù)如下表:查詢示例:在下面三條記錄<Btitle=”CPU”author=”John”/><Btitle=”Face”author=”LP”/><Ctitle=”RED”owner=”Lee”/>中查找title=”CPU”的記錄并輸出。電路工作過程:【1】標記指令:執(zhí)行標記指令0100001000000001;起始地址為00000。如果類型分析器判斷S0_A1是集合地址,寄存器堆Rc輸出該地址的數(shù)據(jù)并輸出到關(guān)系分析器。關(guān)系分析器判斷此值與B的關(guān)系,如果與指令中的待求關(guān)系一致,則Rin=1,寫入Ra在該地址處數(shù)據(jù)為1;否則寫入Ra在該地址處數(shù)據(jù)為0。如果類型分析器判斷S0_A1是數(shù)據(jù),且Rin=1,寫入Ra在該地址處數(shù)據(jù)為1;否則寫入Ra在該地址處數(shù)據(jù)為0。地址增1,執(zhí)行上述過程。直到地址增到最大值。各存儲器與寄存器變化如下表:【2】查詢指令:執(zhí)行查詢指令:00100010001111001、地址發(fā)生器產(chǎn)生地址n=00000。2、輸出數(shù)據(jù)類型為010是集合地址。Rr記錄Ra的輸出,此時Rr=1。置Ra[0]=0。3、Rr=1,S0_A2[1]=00111100與立即數(shù)00111100(表示字符“<”)的關(guān)系為010。置Ra[1]=1。4、Rr=1,S0_A2[1]=01000010與立即數(shù)00111100的關(guān)系不是010。置Ra[2]=0。5、與第四步相似,從Ra[2]到Ra[31]都被置為0。(00111100為字符“<”的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2000011101<1101<0101<按照【2】過程執(zhí)行查詢指令:0010001001000010(01000010為字符“B”的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2000101101B1101B0101C按照【2】過程執(zhí)行查詢指令:0010001000100000(00100000為空格的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2000111101空格1101空格0101空格【3】分類指令:執(zhí)行分類指令0001001000000001000000111、地址發(fā)生器產(chǎn)生最大地址111112、從地址11111到地址00100都不滿足Ra=1,且Rin=0條件,則Rin不變,Rin=0;3、當?shù)刂窞?0011時,滿足Ra=1,且Rin=0條件,則Rin=1;4、地址自減,從地址00010到地址00001都不滿足Ra=1,且Rin=0條件,所以Rin不變,Rin=1;當?shù)刂窞?0000時類型為集合地址,關(guān)系分析器分析把A2后兩位值作為地址輸出到Rc地址輸入端。S0_Rc輸出數(shù)據(jù)為0001,S1_Rc輸出數(shù)據(jù)為0001,關(guān)系分析器E0、E1比較0001與立即數(shù)B2(B2=00000001)的后四位的關(guān)系是否為010,此處結(jié)果為是,則置Rc[00]=0011。【4】標記指令:執(zhí)行標記指令0100001000000011;指令執(zhí)行過程與【1】相同,但立即數(shù)為00000011。【5】查詢指令執(zhí)行查詢指令0010001001110100(01110100為字符t的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001001101t1101t0101t執(zhí)行查詢指令0010001001101001(01101001為字符i的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001011101i1101i0101i執(zhí)行查詢指令0010001001110100(01110100為字符t的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001101101t1101t0101t執(zhí)行查詢指令0010001001101100(01101100為字符l的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001111101l1101l0101l執(zhí)行查詢指令0010001001100101(01100101為字符e的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2010001101e1101E0101e執(zhí)行查詢指令0010001000111101(00111101為字符=的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2010011101=1101=0101=執(zhí)行查詢指令0010001000100010(00100010為字符”的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A20100101101“1101“0101“執(zhí)行查詢指令0010001001000011(01000011為字符C的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2010111101C0101F0101R執(zhí)行查詢指令0010001001010000(01010000為字符P的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2011001101P0101a0101R執(zhí)行查詢指令0010001001010101(01010101為字符U的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2011011101U0101c0101R執(zhí)行查詢指令0010001000100010(00100010為字符“的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2011101101“0101E0101R【6】分類指令:執(zhí)行分類指令000100100000001100000100;指令執(zhí)行過程與【3】相同,但立即數(shù)為0000001100000100?!?】讀取1、先執(zhí)行標記指令0100001000000100。執(zhí)行過程與【1】相同,但立即數(shù)為00000100。2、執(zhí)行讀取指令0000101000000100產(chǎn)生起始地址00000和片選信號。S0的Ra為1時,輸出數(shù)據(jù)S0_A1,S0_A2到輸出總線。Ra=0使輸出為高阻態(tài)。隨地址自增,數(shù)據(jù)依次被讀出。如圖4所示,在本發(fā)明的另一個實施例中,查詢分析器中去掉了寄存器堆Rc。步驟S2中標記掃描的具體方法包括:步驟1、控制器控制地址發(fā)生器產(chǎn)生起始地址,讀取存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2},A1輸出到類型分析器,A2輸出到關(guān)系分析器;步驟2、關(guān)系分析器分析A2與指令中的立即數(shù)B1的關(guān)系,判斷二者之間的關(guān)系是否與指令中的關(guān)系碼OP所指定的關(guān)系一致;步驟3、如果數(shù)據(jù)類型是集合,且關(guān)系一致,設(shè)置第二寄存器為有效,同時在當前地址對第一存儲器寫入有效信號;步驟4、如果數(shù)據(jù)類型是數(shù)據(jù),且第二寄存器為有效,則在當前地址對第一存儲器寫入有效信號;步驟5、控制器使地址增1,繼續(xù)執(zhí)行步驟1-4的標記過程;步驟6、地址繼續(xù)增1,直到增大到地址最大值;地址每增1,查詢分析器執(zhí)行一次標記過程。步驟S2中查詢掃描的具體方法包括:步驟1、控制器控制地址發(fā)生器產(chǎn)生地址,讀取存儲器在該地址內(nèi)的數(shù)據(jù)DataA={A1,A2},A1輸出到類型分析器,A2輸出到關(guān)系分析器;同時讀取第一存儲器內(nèi)該地址的數(shù)據(jù),輸出到第二寄存器的輸入端,第二寄存器會在下一個時鐘邊沿記錄此數(shù)據(jù),在時鐘邊沿到來之前第二寄存器仍然保持原值;步驟2、關(guān)系分析器分析A2與指令中的立即數(shù)B1的關(guān)系,判斷二者之間的關(guān)系是否與指令中的關(guān)系碼OP所指定的關(guān)系一致;步驟3、如果數(shù)據(jù)類型是數(shù)據(jù),且關(guān)系一致,且第二寄存器為有效,則在當前地址處對第一存儲器寫入有效信號;步驟4、控制器使地址增1,查詢分析器執(zhí)行一次查詢過程;步驟5、地址繼續(xù)增1,直到增大到地址最大值;每增1,查詢分析器執(zhí)行一次查詢過程。步驟S2中分類掃描的具體方法包括:步驟1、設(shè)置第二寄存器為無效,控制器控制地址發(fā)生器產(chǎn)生地址最大值,讀取第一存儲器內(nèi)該地址的數(shù)據(jù);步驟2、如果數(shù)據(jù)類型為數(shù)據(jù),且如果第二寄存器為無效則把存儲器Ra值寫入第二寄存器,如果第二寄存器為有效則保持第二寄存器原值;步驟3、如果數(shù)據(jù)類型為集合,則置第二寄存器為無效,設(shè)置存儲器在當前地址處的值為B2,B2是指令中傳遞的立即數(shù);步驟4、控制器使地址減1,查詢分析器執(zhí)行一次分類過程;步驟5、地址繼續(xù)減1,直到減小到地址最小值;每減1,查詢分析器執(zhí)行一次分類過程。步驟S2中進行讀取的具體方法包括:步驟1、控制器獲取控制指令,并執(zhí)行標記掃描過程;步驟2、控制器控制地址發(fā)生器產(chǎn)生地址和片選信號;步驟3、查詢分析器讀取存儲器在該地址內(nèi)的數(shù)據(jù),若寄存器輸出標記位為有效,則輸出該數(shù)據(jù)。在這種實施方式中,對應的一個處理過程為:存儲器S為存儲器組中一個存儲器,第一存儲器為存儲器Ra,第一寄存器為寄存器Rr,第二寄存器為寄存器Rin。1、由一個控制器,一個地址發(fā)生器,一個地址譯碼器,三個存儲器(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記錄數(shù)據(jù)類型,A2記錄數(shù)據(jù)值。5、數(shù)據(jù)類型編碼,如下表:編碼意義010集合101數(shù)據(jù)6、關(guān)系編碼:7、存儲器單個字節(jié)各數(shù)據(jù)位的意義與示例數(shù)據(jù)如下表:查詢示例:在下面三條記錄<Btitle=”CPU”author=”John”/><Btitle=”Face”author=”LP”/><Ctitle=”RED”owner=”Lee”/>中查找title=”CPU”的記錄并輸出。電路工作過程:【1】標記指令:執(zhí)行標記指令0100001000000001;起始地址為00000。如果類型分析器判斷S0_A1是集合,關(guān)系分析器判斷此值與B的關(guān)系,如果與指令中的待求關(guān)系一致,則Rin=1,寫入Ra在該地址處數(shù)據(jù)為1;否則寫入Ra在該地址處數(shù)據(jù)為0。如果類型分析器判斷S0_A1是數(shù)據(jù),且Rin=1,寫入Ra在該地址處數(shù)據(jù)為1;否則寫入Ra在該地址處數(shù)據(jù)為0。地址增1,執(zhí)行上述過程。直到地址增到最大值。各存儲器與寄存器變化如下表:【2】查詢指令:執(zhí)行查詢指令:00100010001111001、地址發(fā)生器產(chǎn)生地址n=00000。2、輸出數(shù)據(jù)類型為010是集合。Rr記錄Ra的輸出,此時Rr=1。置Ra[0]=0。3、Rr=1,S0_A2[1]=00111100與立即數(shù)00111100(表示字符“<”)的關(guān)系為010。置Ra[1]=1。4、Rr=1,S0_A2[1]=01000010與立即數(shù)00111100的關(guān)系不是010。置Ra[2]=0。5、與第四步相似,從Ra[2]到Ra[31]都被置為0。(00111100為字符“<”的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2000011101<1101<0101<按照【2】過程執(zhí)行查詢指令:0010001001000010(01000010為字符“B”的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。按照【2】過程執(zhí)行查詢指令:0010001000100000(00100000為空格的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2000111101空格1101空格0101空格【3】分類指令:執(zhí)行分類指令0001001000000001000000111、地址發(fā)生器產(chǎn)生最大地址111112、從地址11111到地址00100都不滿足Ra=1,且Rin=0條件,則Rin不變,Rin=0;3、當?shù)刂窞?0011時,滿足Ra=1,且Rin=0條件,則Rin=1;4、地址自減,從地址00010到地址00001都不滿足Ra=1,且Rin=0條件,所以Rin不變,Rin=1;當?shù)刂窞?0000時類型為集合,關(guān)系分析器分析把A2后兩位值與立即數(shù)B2(B2=00000001)的后兩位的關(guān)系是否為010,此處結(jié)果為是,則置A2=11。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A200000101011101011001000【4】標記指令:執(zhí)行標記指令0100001000000011;指令執(zhí)行過程與【1】相同,但立即數(shù)為00000011?!?】查詢指令執(zhí)行查詢指令0010001001110100(01110100為字符t的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001001101t1101t0101t執(zhí)行查詢指令0010001001101001(01101001為字符i的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001011101i1101i0101i執(zhí)行查詢指令0010001001110100(01110100為字符t的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001101101t1101t0101t執(zhí)行查詢指令0010001001101100(01101100為字符l的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2001111101l1101l0101l執(zhí)行查詢指令0010001001100101(01100101為字符e的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2010001101e1101E0101e執(zhí)行查詢指令0010001000111101(00111101為字符=的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2010011101=1101=0101=執(zhí)行查詢指令0010001000100010(00100010為字符”的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A20100101101“1101“0101“執(zhí)行查詢指令0010001001000011(01000011為字符C的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2010111101C0101F0101R執(zhí)行查詢指令0010001001010000(01010000為字符P的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2011001101P0101a0101R執(zhí)行查詢指令0010001001010101(01010101為字符U的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2011011101U0101c0101R執(zhí)行查詢指令0010001000100010(00100010為字符“的ASCii碼)其中Ra變化如下表。未列出的Ra都為0。地址S0_RaS0_A1S0_A2S1_RaS1_A1S1_A2S2_RaS2_A1S2_A2011101101“0101E0101R【6】分類指令:執(zhí)行分類指令000100100000001100000001;指令執(zhí)行過程與【3】相同,但立即數(shù)為0000001100000001。【7】讀取1、先執(zhí)行標記指令0100001000000100。執(zhí)行過程與【1】相同,但立即數(shù)為00000100。2、執(zhí)行讀取指令0000101000000001產(chǎn)生起始地址00000和片選信號。S0的Ra為1時,輸出數(shù)據(jù)S0_A1,S0_A2到輸出總線。Ra=0使輸出為高阻態(tài)。隨地址自增,數(shù)據(jù)依次被讀出。應當理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應屬于本發(fā)明所附權(quán)利要求的保護范圍。當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
外汇| 资源县| 新蔡县| 湘阴县| 建平县| 洪江市| 漳州市| 泰顺县| 天水市| 南漳县| 宾川县| 澄江县| 长沙市| 临夏市| 顺平县| 郸城县| 日土县| 唐河县| 江城| 栾川县| 连云港市| 闽清县| 保山市| 通江县| 乌鲁木齐县| 盐津县| 福泉市| 盐边县| 鄂托克旗| 湖北省| 安徽省| 郑州市| 黄浦区| 陵川县| 田阳县| 玛沁县| 乌审旗| 泸溪县| 惠安县| 肇东市| 瓮安县|