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

一種定點(diǎn)數(shù)據(jù)篩選電路的制作方法

文檔序號(hào):12905884閱讀:344來源:國知局

【技術(shù)領(lǐng)域】

本發(fā)明屬于數(shù)字電路技術(shù)領(lǐng)域,涉及一種定點(diǎn)數(shù)據(jù)篩選電路。



背景技術(shù):

在數(shù)字信號(hào)處理芯片中,經(jīng)常需要從一組數(shù)量較多的數(shù)據(jù)中篩選出數(shù)滿足一定大小關(guān)系的數(shù)據(jù),給出滿足條件的數(shù)據(jù)值以及數(shù)據(jù)所對(duì)應(yīng)的地址。目前市場上的芯片較少直接提供對(duì)這種數(shù)據(jù)篩選功能的硬件支持。如果需要從大量數(shù)據(jù)中找出滿足一定大小關(guān)系的數(shù)據(jù),需要采用多條指令形成一個(gè)指令集合,采用若干次循環(huán)來完成數(shù)據(jù)的比較,這種方式在實(shí)現(xiàn)過程中,資源開銷較大,指令執(zhí)行時(shí)間較長。常見的處理器都包含數(shù)據(jù)比較指令,如果執(zhí)行對(duì)定點(diǎn)數(shù)據(jù)的比較,在每次執(zhí)行數(shù)據(jù)比較的過程中,一般都是將兩個(gè)數(shù)據(jù)在內(nèi)部作相減操作,然后去判斷標(biāo)志位,看相減的結(jié)果為正數(shù)還是負(fù)數(shù),或者是零,從而得到兩個(gè)數(shù)的大小關(guān)系。如果要找到一組數(shù)據(jù)中的最大值,可以利用一條數(shù)據(jù)比較指令,先將最前面兩個(gè)數(shù)做個(gè)比較,得到一個(gè)較大的值,然后將這個(gè)較大值寫回寄存器,然后用這個(gè)較大的值繼續(xù)和后續(xù)數(shù)據(jù)比較,如果有更大的值出現(xiàn),那么就將更大的值寫回寄存器,更新以前的較大值,完成所有數(shù)據(jù)比較的時(shí)候,可以得到該組數(shù)據(jù)中的最大值。這種方式采用一個(gè)循環(huán)代碼段的方式來實(shí)現(xiàn)一組數(shù)據(jù)的比較,利用前一次執(zhí)行比較的結(jié)果與后續(xù)的數(shù)據(jù)進(jìn)行比較,整個(gè)比較過程,需要程序人員來詳細(xì)的設(shè)計(jì)。采用這種方式,為了完成一組數(shù)據(jù)的篩選,需要占用較多的寄存器資源,而且由多條指令形成的代碼集合需要占用較大的程序存儲(chǔ)器空間,需要不斷的執(zhí)行取值、譯碼、執(zhí)行等操作,代碼執(zhí)行時(shí)間較長,而且會(huì)造成較多的能量消耗。實(shí)際上在數(shù)字芯片中,利用alu中已有的減法單元,能夠比較容易的實(shí)現(xiàn)大量數(shù)據(jù)的數(shù)據(jù)流式篩選。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺點(diǎn),提供一種定點(diǎn)數(shù)據(jù)篩選電路,利用alu中已有的減法器,實(shí)現(xiàn)定點(diǎn)數(shù)據(jù)的流式篩選。

為達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):

一種定點(diǎn)數(shù)據(jù)篩選電路,包括上升沿檢測電路、輸入電路、減法器以及輸出電路;待篩選數(shù)據(jù)dataa、待篩選數(shù)據(jù)在存儲(chǔ)器中的地址datab以及執(zhí)行閾值比較指令時(shí)的閾值dr0為輸入數(shù)據(jù);減法器的被減數(shù)輸入端輸入dataa,減數(shù)端輸入dr0或上一個(gè)dataa,減法器的輸出端連接上升沿檢測電路,上升沿檢測電路的輸出端以及輸入電路的輸出端均與輸出電路相連。

本發(fā)明進(jìn)一步的改進(jìn)在于:

上升沿檢測電路包括第一寄存器、與門以及第一反相器;第一寄存器的輸入端和與門的輸入端均輸入控制信號(hào)c0,控制信號(hào)c0為‘1’時(shí)表示數(shù)據(jù)篩選功能有效,為‘0’時(shí)表示數(shù)據(jù)篩選功能無效;與門的另一個(gè)輸入端輸入控制信號(hào)c2,控制信號(hào)c2為‘1’時(shí)表示求最大/小值,為‘0’時(shí)表示作閾值比較;第一寄存器的輸出端輸出信號(hào)經(jīng)第一反相器取反后輸入到與門,與門的輸出端與輸出電路相連。

減法器的符號(hào)位輸入第二或門的一個(gè)輸入端上,減法器的符號(hào)位通過第二反相器取反后輸入第一或門的一個(gè)輸入端上,上升沿檢測電路的輸出信號(hào)分別輸入第一或門和第二或門的另一個(gè)輸入端上;第一或門的輸出端與多路選擇器mux1的控制端相連,第二或門的輸出端與多路選擇器mux2的控制端相連;多路選擇器mux1和多路選擇器mux2的兩個(gè)輸入端分別輸入‘1’和‘0’;多路選擇器mux1和多路選擇器mux2的輸出端分別接到多路選擇器mux3的兩個(gè)輸入端上,多路選擇器mux3的控制端輸入控制信號(hào)c1,控制信號(hào)c1為‘1’時(shí)表示比大操作,為‘0’時(shí)表示比小操作;dataa、datab和多路選擇器mux3的輸出信號(hào)均通過輸入電路與輸出電路相連。

輸入電路包括多路選擇器mux4、多路選擇器mux5以及多路選擇器mux6,輸出電路包括由多路選擇器mux8、多路選擇器mux9、多路選擇器mux10、多路選擇器mux11和多路選擇器mux12組成的用于控制輸出數(shù)據(jù)和使能信號(hào)的電路;

多路選擇器mux4、多路選擇器mux5以及多路選擇器mux6的控制端均輸入信號(hào)c0,多路選擇器mux4的輸入端輸入dataa和‘0’,多路選擇器mux5的輸入端輸入datab和‘0’,多路選擇器mux6的輸入端輸入多路選擇器mux3的輸出信號(hào)和‘0’;多路選擇器mux4的輸出端與第二寄存器的輸入端d相連,多路選擇器mux5的輸出端與第三寄存器的輸入端d相連,多路選擇器mux6的輸出端與第四寄存器的輸入端d相連;第二寄存器的輸出端q分別輸出信號(hào)至多路選擇器mux7的一個(gè)輸入端上、多路選擇器mux8的一個(gè)輸入端上以及多路選擇器mux13,多路選擇器mux7的另一個(gè)輸入端輸入dr0;多路選擇器mux7的輸出端與減法器的減數(shù)端相連;第三寄存器的輸出端q分別輸出信號(hào)至多路選擇器mux9和多路選擇器mux13的輸入端上,第四寄存器的輸出端q分別輸出信號(hào)至多路選擇器mux10和多路選擇器mux12的輸入端上;多路選擇器mux13的輸出端輸出信號(hào)至多路選擇器mux11的輸入端上。

多路選擇器mux8、多路選擇器mux9、多路選擇器mux10、多路選擇器mux11以及多路選擇器mux12的另一個(gè)輸入端均輸入‘0’,控制端均輸入控制信號(hào)c2,控制信號(hào)c2為‘1’時(shí)表示求最大/小值,為‘0’時(shí)表示作閾值比較;多路選擇器mux13的控制端輸入控制信號(hào)c3,控制信號(hào)c3為‘1’時(shí)表示閾值比較時(shí)選擇數(shù)據(jù)輸出,為‘0’時(shí)表示閾值比較時(shí)選擇地址輸出。

多路選擇器mux8的輸出端輸出數(shù)據(jù)信號(hào)maxmindata,多路選擇器mux9的輸出端輸出地址信號(hào)maxminaddr,多路選擇器mux10的輸出端輸出使能信號(hào)maxminen,用于控制對(duì)dr0的寫操作;多路選擇器mux11的輸出端輸出數(shù)據(jù)或地址信號(hào),端口名稱為thresholdda,多路選擇器mux12的輸出端輸出使能信號(hào),端口名稱為thresholden。

與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:

本發(fā)明能夠以數(shù)據(jù)流方式實(shí)現(xiàn)對(duì)大量定點(diǎn)數(shù)據(jù)的篩選,能夠給出滿足指定條件的數(shù)據(jù)或者對(duì)應(yīng)的地址。在alu中設(shè)計(jì)這樣的篩選裝置,能夠快速完成定點(diǎn)數(shù)據(jù)的篩選,簡化軟件程序的設(shè)計(jì),降低處理器的執(zhí)行能耗,彌補(bǔ)普通的數(shù)據(jù)比較指令只能對(duì)較少的幾個(gè)數(shù)(一般兩個(gè)數(shù))進(jìn)行比較的不足。

【附圖說明】

圖1為定點(diǎn)流水?dāng)?shù)據(jù)篩選電路。

其中:1-第一寄存器;2-第二寄存器;3-第三寄存器;4-第四寄存器;5-第二反相器;6-與門;7-第二或門;8-第一或門;9-減法器;10-第一反相器。

【具體實(shí)施方式】

下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)描述:

如圖1所示,本發(fā)明定點(diǎn)數(shù)據(jù)篩選電路,包括上升沿檢測電路、輸入電路、減法器9以及輸出電路;待篩選數(shù)據(jù)dataa、待篩選數(shù)據(jù)在存儲(chǔ)器中的地址datab以及執(zhí)行閾值比較指令時(shí)的閾值dr0為輸入數(shù)據(jù);減法器9的被減數(shù)輸入端輸入dataa,減數(shù)端輸入dr0或上一個(gè)dataa,減法器9的輸出端連接上升沿檢測電路,上升沿檢測電路的輸出端以及輸入電路的輸出端均與輸出電路相連。

dataa為所要完成篩選的數(shù)據(jù),為32位寬定點(diǎn)整數(shù)。該數(shù)據(jù)也可以設(shè)置為其它位寬。

datab為所要dataa上的數(shù)據(jù)所在存儲(chǔ)器中的地址,這里指定地址寬度為32位,也可以為其他位寬。

dr0為執(zhí)行閾值比較指令時(shí)的閾值,為32位寬的定點(diǎn)整數(shù)。該數(shù)據(jù)也可以設(shè)置為其它位寬。

圖1中控制信號(hào)包括:c0、c1、c2、c3。c0、c1、c2、c3均為控制信號(hào),定義為1bit位寬。

c0控制信號(hào)為‘1’時(shí)表示數(shù)據(jù)篩選功能有效,為‘0’時(shí)表示數(shù)據(jù)篩選功能無效。

c1控制信號(hào)為‘1’時(shí)表示比大操作,為‘0’時(shí)表示比小操作。

c2控制信號(hào)為‘1’時(shí)表示求最大/小值,為‘0’時(shí)表示作閾值比較。

c3控制信號(hào)為‘1’時(shí)表示閾值比較時(shí)選擇數(shù)據(jù)輸出,為‘0’時(shí)表示閾值比較時(shí)選擇地址輸出。

圖1中信號(hào)clock和reset分別表示時(shí)鐘信號(hào)和復(fù)位信號(hào)。

本發(fā)明中涉及一個(gè)由與門6,第一反相器10,第一寄存器1組成的控制信號(hào)c0的上升沿檢測電路,該部分電路輸入信號(hào)為c0和c2,在執(zhí)行求最大/小值指令時(shí),當(dāng)c0由‘0’變?yōu)椤?’時(shí),在與門6的輸出端產(chǎn)生一個(gè)周期的高脈沖,這個(gè)高脈沖通過第一或門8、第二或門7輸出后,表示第一個(gè)數(shù)據(jù)到來。

上升沿檢測電路包括第一寄存器1、與門6以及第一反相器10;第一寄存器1的輸入端和與門6的輸入端均輸入控制信號(hào)c0,控制信號(hào)c0為‘1’時(shí)表示數(shù)據(jù)篩選功能有效,為‘0’時(shí)表示數(shù)據(jù)篩選功能無效;與門6的另一個(gè)輸入端輸入控制信號(hào)c2,控制信號(hào)c2為‘1’時(shí)表示求最大/小值,為‘0’時(shí)表示作閾值比較;第一寄存器1的輸出端輸出信號(hào)經(jīng)第一反相器10取反后輸入到與門6,與門6的輸出端與輸出電路相連。

減法器9的符號(hào)位輸入第二或門7的一個(gè)輸入端上,減法器9的符號(hào)位通過第二反相器5取反后輸入第一或門8的一個(gè)輸入端上,上升沿檢測電路的輸出信號(hào)分別輸入第一或門8和第二或門7的另一個(gè)輸入端上;第一或門8的輸出端與多路選擇器mux1的控制端相連,第二或門7的輸出端與多路選擇器mux2的控制端相連;多路選擇器mux1和多路選擇器mux2的兩個(gè)輸入端分別輸入‘1’和‘0’;多路選擇器mux1和多路選擇器mux2的輸出端分別接到多路選擇器mux3的兩個(gè)輸入端上,多路選擇器mux3的控制端輸入控制信號(hào)c1,控制信號(hào)c1為‘1’時(shí)表示比大操作,為‘0’時(shí)表示比小操作;dataa、datab和多路選擇器mux3的輸出信號(hào)均通過輸入電路與輸出電路相連。

輸入電路包括多路選擇器mux4、多路選擇器mux5以及多路選擇器mux6,多路選擇器mux4、多路選擇器mux5以及多路選擇器mux6的控制端均輸入信號(hào)c0,多路選擇器mux4的輸入端輸入dataa和‘0’,多路選擇器mux5的輸入端輸入datab和‘0’,多路選擇器mux6的輸入端輸入多路選擇器mux3的輸出信號(hào)和‘0’;多路選擇器mux4的輸出端與第二寄存器2的輸入端d相連,多路選擇器mux5的輸出端與第三寄存器3的輸入端d相連,多路選擇器mux6的輸出端與第四寄存器4的輸入端d相連;第二寄存器2的輸出端q分別輸出信號(hào)至多路選擇器mux7的一個(gè)輸入端上、多路選擇器mux8的一個(gè)輸入端上以及多路選擇器mux13,多路選擇器mux7的另一個(gè)輸入端輸入dr0;多路選擇器mux7的輸出端與減法器9的減數(shù)端相連;第三寄存器3的輸出端q分別輸出信號(hào)至多路選擇器mux9和多路選擇器mux13的輸入端上,第四寄存器4的輸出端q分別輸出信號(hào)至多路選擇器mux10和多路選擇器mux12的輸入端上;多路選擇器mux13的輸出端輸出信號(hào)至多路選擇器mux11的輸入端上。

圖1中減法器9的被減數(shù)為當(dāng)前輸入的數(shù)據(jù)dataa,減數(shù)為來自第二寄存器2的輸出或者為dr0中事先設(shè)置的閾值,由c2控制多路選擇器mux7進(jìn)行選擇。減法器輸出差值的符號(hào)位,符號(hào)位直接送入第二或門7,同時(shí)將符號(hào)位取反后送入第一或門8。

本發(fā)明中涉及兩個(gè)第一或門8和第二或門7。第二或門7的輸出用于控制多路選擇器mux2觸發(fā)比小使能信號(hào),即當(dāng)前數(shù)據(jù)(dataa)比減數(shù)(減數(shù)可能為之前已經(jīng)獲得的最小值,也可能為事先設(shè)置好的閾值,由當(dāng)前執(zhí)行的指令決定)更小,這時(shí)減法器輸出的差值符號(hào)位為1,第二或門7輸出高電平,觸發(fā)比小使能信號(hào),使得多路選擇器mux2輸出高電平。第一或門8的輸出用于觸發(fā)比大使能信號(hào),即當(dāng)前數(shù)據(jù)(dataa)不比減數(shù)(減數(shù)可能為之前已經(jīng)獲得的最大值,也可能為事先已經(jīng)設(shè)置好的閾值,由當(dāng)前執(zhí)行的指令決定)小,這時(shí)減法器輸出的差值符號(hào)位為0,第一或門8輸出高電平,觸發(fā)比大使能信號(hào),使得多路選擇器mux1輸出高電平。

圖1中多路選擇器mux3由c1控制選通輸出比大使能信號(hào)還是比小使能信號(hào)。當(dāng)執(zhí)行比大時(shí)(c1為1)選擇比大使能信號(hào)輸出,如果當(dāng)前數(shù)據(jù)不比之前獲得的值小,或者當(dāng)前數(shù)據(jù)不比閾值小,那么多路選擇器mux3輸出來自多路選擇器mux1的高電平。當(dāng)執(zhí)行比小時(shí)(c1為0),選擇比小使能信號(hào)輸出,如果當(dāng)前數(shù)據(jù)比以前獲得的值更小,或者當(dāng)前數(shù)據(jù)比閾值更小,那么多路選擇器mux3輸出來自多路選擇器mux2的高電平。

圖1中多路選擇器mux4、多路選擇器mux5、多路選擇器mux6均由c0控制。在執(zhí)行任何數(shù)據(jù)篩選功能時(shí),多路選擇器mux4輸出為當(dāng)前數(shù)據(jù)dataa,多路選擇器mux5輸出當(dāng)前數(shù)據(jù)對(duì)應(yīng)的地址datab,多路選擇器mux6輸出比大/小使能信號(hào)。如果不執(zhí)行任何數(shù)據(jù)篩選功能,那么三個(gè)多路選擇器都輸出0。

圖1中第二寄存器2和第三寄存器3。第二寄存器2和第三寄存器3主要在比大/小使能信號(hào)的控制下,分別保存當(dāng)前滿足條件的數(shù)值及其對(duì)應(yīng)的地址。當(dāng)比大/小信號(hào)有效時(shí),證明當(dāng)前獲得了一個(gè)滿足比較條件的值,這時(shí)第二寄存器2的使能信號(hào)有效,將這個(gè)值篩選出來送入第二寄存器2保存,同時(shí)由第三寄存器3保存其地址。

圖1中第四寄存器4。第四寄存器4主要用于緩存使能信號(hào),該寄存器的輸出指示當(dāng)前篩選出的數(shù)據(jù)是否有效,當(dāng)輸出為1時(shí),表示當(dāng)前篩選的數(shù)據(jù)和地址(分別由第二寄存器2和第三寄存器3給出)有效,否則無效。

圖1中多路選擇器mux8、多路選擇器mux9、多路選擇器mux10。多路選擇器mux8、多路選擇器mux9、多路選擇器mux10均由c2控制。當(dāng)執(zhí)行求最大/小值時(shí),三個(gè)寄存器分別輸出所篩選的最大/小值及其地址和使能信號(hào),否則輸出0。輸出的信號(hào)名分別為maxmindata、maxminaddr、maxminen。使能信號(hào)(maxminen)用于控制對(duì)dr0和dr1的寫操作,將數(shù)據(jù)(maxmindata)及對(duì)應(yīng)的地址(maxminaddr)分別寫入dr0和dr1。

圖1中多路選擇器mux13。多路選擇器mux13的控制信號(hào)為c3,主要用于在閾值比較時(shí)選擇地址還是數(shù)據(jù)輸出。

圖1中多路選擇器mux11、多路選擇器mux12。多路選擇器mux11、多路選擇器mux12均由c2控制。當(dāng)執(zhí)行閾值比較時(shí),多路選擇器mux11輸出數(shù)據(jù)或者地址(由多路選擇器mux13決定),端口名為thresholdda。多路選擇器mux12輸出使能信號(hào),端口名為thresholden。當(dāng)使能信號(hào)為1時(shí),表示當(dāng)前篩選所得數(shù)據(jù)有效,由該使能信號(hào)去控制存儲(chǔ)器寫操作,將當(dāng)前篩選結(jié)果(thresholdda)按照目的操作數(shù)尋址寄存器所指定的訪存方式存入存儲(chǔ)器中,同時(shí)該使能信號(hào)還觸發(fā)一次計(jì)數(shù)器的加1操作,用于統(tǒng)計(jì)滿足閾值條件的數(shù)據(jù)的個(gè)數(shù)。

圖1中多路選擇器mux7。多路選擇器mux7的控制信號(hào)為c2,用于控制輸入減法器的減數(shù)的來源。當(dāng)求最大/小值時(shí),多路選擇器mux7輸出為當(dāng)前獲得的最大/小值。當(dāng)進(jìn)行閾值比較時(shí),多路選擇器mux7輸出為事先設(shè)定的閾值(dr0中的值)。

為了支持本發(fā)明的正確運(yùn)行,需要利用一定數(shù)量的寄存器,這些寄存器包括尋址寄存器和數(shù)據(jù)寄存器。

尋址寄存器包括源操作數(shù)尋址寄存器ar0、ir0、imr0和目的操作數(shù)尋址寄存器ar1、ir1。源操作數(shù)尋址寄存器中ar0用于保存原操作數(shù)的起始地址。ir0用于保存源操作數(shù)的訪存步長,也即前后兩次取操作數(shù)的地址間隔。imr0用于保存源操作數(shù)的個(gè)數(shù)。目的操作數(shù)尋址寄存器只用于閾值比較指令,其中ar1用于保存篩選出的目的操作數(shù)的起始地址,ir1用于保存篩選出的目的操作數(shù)的存儲(chǔ)步長。目的操作數(shù)尋址寄存器ar1、ir1只用于閾值比較指令的目的操作數(shù)尋址,這是由于執(zhí)行閾值比較指令之后所得的篩選結(jié)果可能不只一個(gè)數(shù)據(jù)和地址值,因此需要配置ar1、ir1便于將目的操作數(shù)存放到存儲(chǔ)器中。

數(shù)據(jù)寄存器一共包括三個(gè),這三個(gè)數(shù)據(jù)寄存器直接采用alu中的本地寄存器dr0、dr1和dr2來實(shí)現(xiàn)。求最大/小值指令和閾值比較指令復(fù)用alu中的兩個(gè)數(shù)據(jù)寄存器dr0和dr1。當(dāng)執(zhí)行求最大/小值指令的時(shí)候,dr0和dr1分別保存篩選出的數(shù)據(jù)及其對(duì)應(yīng)的地址,等到求最大/小值指令執(zhí)行結(jié)束之后再去讀取這兩個(gè)寄存器以獲取數(shù)據(jù)和地址值。當(dāng)執(zhí)行閾值比較指令時(shí),dr0和dr1用來保存用戶設(shè)置的閾值和操作執(zhí)行后滿足閾值條件的數(shù)據(jù)個(gè)數(shù),而篩選出的結(jié)果的存儲(chǔ)位置由配置的目的尋址寄存器決定。dr2用于閾值比較指令選擇滿足條件的數(shù)據(jù)還是數(shù)據(jù)地址作為輸出,dr2中配置數(shù)據(jù)為0時(shí)選擇數(shù)據(jù)輸出,否則為地址輸出。

本發(fā)明復(fù)用alu中的減法單元完成數(shù)據(jù)的大小比較,由于需要給出最終結(jié)果所對(duì)應(yīng)的地址,所以需要的操作數(shù)據(jù)流包括輸入數(shù)據(jù)流,及其數(shù)據(jù)對(duì)應(yīng)的地址流。當(dāng)前執(zhí)行的是求最大/小值,在比較的過程中一旦發(fā)現(xiàn)有滿足條件的數(shù)據(jù)出現(xiàn),就保存該數(shù)據(jù)及其對(duì)應(yīng)的地址,如果后續(xù)還有更大/小的值出現(xiàn),則更新該值。如果執(zhí)行的是閾值比較,就根據(jù)當(dāng)前是選擇數(shù)據(jù)輸出還是地址輸出(由dr2配置確定)來給出相應(yīng)的地址或者數(shù)據(jù)。

在完成有關(guān)寄存器的配置之后,就可以執(zhí)行所需的數(shù)據(jù)篩選指令。執(zhí)行篩選過程中,源操作數(shù)按源操作數(shù)尋址寄存器所指定的尋址方式,源源不斷的被讀入alu中,當(dāng)完成源操作數(shù)的輸送之后,篩選過程也就執(zhí)行完畢。

本發(fā)明在內(nèi)部執(zhí)行篩選的時(shí)候,采用一個(gè)減法單元,將相比較的兩個(gè)數(shù)據(jù)作相減操作,根據(jù)差的符號(hào)位來判斷兩個(gè)數(shù)的大小關(guān)系。當(dāng)執(zhí)行求最大/小值指令時(shí),先將最前面的兩個(gè)數(shù)相減,獲取一個(gè)較大/小值,同時(shí)產(chǎn)生一個(gè)寫寄存器dr0和dr1的操作,將這個(gè)較大/小值及其對(duì)于對(duì)應(yīng)的地址分別寫入alu的本地寄存器dr0和dr1中。下一個(gè)時(shí)鐘周期用這個(gè)較大/小值與后續(xù)輸入的數(shù)據(jù)相減,如果有更大/小的值出現(xiàn),就用這個(gè)更大/小的值替代之前獲得的較大/小的值然后作后續(xù)比較,同時(shí)產(chǎn)生一個(gè)寫寄存器dr0和dr1的脈沖,將這個(gè)較大/小值及其對(duì)應(yīng)的地址分別寫入dr0和dr1中覆蓋之前的獲取值,執(zhí)行完當(dāng)前指令后,最終從dr0和dr1獲得該組數(shù)據(jù)中最大/小值及其對(duì)應(yīng)的地址。當(dāng)執(zhí)行閾值比較指令的時(shí)候,輸入的數(shù)據(jù)流與dr0中的閾值作逐一相減,然后判斷輸入數(shù)據(jù)流中的數(shù)據(jù)與dr0中閾值的大小關(guān)系,將滿足閾值條件的數(shù)據(jù)或者對(duì)應(yīng)的地址輸出到數(shù)據(jù)總線上,同時(shí)產(chǎn)生一個(gè)寫存儲(chǔ)器的有效信號(hào),將輸出值寫入目的尋址寄存器所指定的存儲(chǔ)器中。滿足閾值條件的數(shù)據(jù)的個(gè)數(shù)根據(jù)寫存儲(chǔ)器的有效信號(hào)來統(tǒng)計(jì),一旦寫存儲(chǔ)器有效,將當(dāng)前統(tǒng)計(jì)的數(shù)據(jù)量加1,統(tǒng)計(jì)個(gè)數(shù)最后保存到alu的本地寄存器dr1中。

本發(fā)明的原理:

本發(fā)明利用alu中已有的減法器,實(shí)現(xiàn)定點(diǎn)數(shù)據(jù)的流式篩選;定點(diǎn)數(shù)據(jù)篩選類指令屬于向量類指令,能夠用單條指令實(shí)現(xiàn)大量定點(diǎn)數(shù)據(jù)的篩選操作。使用本發(fā)明,能夠篩選出滿足一定條件的數(shù)據(jù),能夠?qū)崿F(xiàn)的定點(diǎn)數(shù)據(jù)篩選指令包括四條:求一組數(shù)據(jù)中的最大值指令,求一組數(shù)據(jù)中的最小值指令,閾值比大指令,閾值比小指令。閾值比大指令,即是給出一個(gè)閾值,從一組數(shù)據(jù)中篩選出大于等于該閾值的數(shù)的指令。閾值比小指令,即是給出一個(gè)閾值,從一組數(shù)據(jù)中篩選出小于該閾值的數(shù)值的指令。求最大/小值指令,即是求出一組數(shù)據(jù)中的最大/小值的指令。執(zhí)行求最大/小值指令之后,本發(fā)明會(huì)同時(shí)給出所篩選出的最大/小數(shù)據(jù)值及其對(duì)應(yīng)地址,如果該組數(shù)據(jù)中出現(xiàn)了幾個(gè)相同的最大/小值,那么求得的最大/小值地址為最后一個(gè)值的地址,最大/小值指令執(zhí)行時(shí)總是只有一個(gè)數(shù)據(jù)被篩選出來。執(zhí)行閾值比較指令時(shí),可以由用戶通過配置寄存器來選擇輸出滿足條件的數(shù)值或是輸出滿足條件的數(shù)值的地址。

下面對(duì)指令的執(zhí)行作進(jìn)一步的說明。

當(dāng)執(zhí)行求最大值指令時(shí),指令會(huì)使能控制信號(hào)c0,數(shù)據(jù)信號(hào)dataa和datab與控制信號(hào)c0、c1、c2均在同一個(gè)時(shí)鐘沿到達(dá),且c0、c1、c2的值都為1,由c0、c1、c2控制的多路選擇器均選擇第1路輸出。與門6輸出的信號(hào)表示c0的上升沿,即當(dāng)c0由‘0’變?yōu)椤?’時(shí),在與門6的輸出端產(chǎn)生一個(gè)周期的高脈沖同時(shí)輸入到第一或門8、第二或門7。這個(gè)高脈沖會(huì)觸發(fā)第一或門8、第二或門7輸出一個(gè)周期的高電平,使得多路選擇器mux1和多路選擇器mux2均選則第1路輸出(輸出值為1),多路選擇器mux3~多路選擇器mux6也選擇第1路輸出,且多路選擇器mux3的輸出值1,這時(shí)由于第二寄存器2和第三寄存器3的使能信號(hào)en有效(高電平有效),所以輸入的第一個(gè)數(shù)據(jù)(dataa)及其對(duì)應(yīng)的地址(datab)在下一個(gè)時(shí)鐘沿分別進(jìn)入第二寄存器2和第三寄存器3,并分別通過多路選擇器mux8和多路選擇器mux9輸出到maxmindata和maxminaddr端口上,與此同時(shí)第二寄存器2和第三寄存器3的en信號(hào)通過第四寄存器4和多路選擇器mux10輸出到maxminen端口上,由maxminen控制寄存器dr0和dr1的寫操作,將第一個(gè)數(shù)據(jù)和對(duì)應(yīng)的地址分別寫入dr0和dr1。由于多路選擇器mux11和多路選擇器mux12均選擇第一路輸出,所以thresholdda和thresholden均為0(無效),不影響外部存儲(chǔ)器的值。第一個(gè)數(shù)據(jù)進(jìn)入第二寄存器2后還會(huì)通過多路選擇器mux7到達(dá)減法器9,這時(shí)在數(shù)據(jù)信號(hào)dataa上恰好出現(xiàn)第二個(gè)數(shù)據(jù),而且也到達(dá)減法器9。減法器9實(shí)現(xiàn)dataa的數(shù)據(jù)與來自多路選擇器mux7的數(shù)據(jù)相減操作,并將差的符號(hào)位輸入到第二或門7,同時(shí)將差的符號(hào)位取反后輸入到第一或門8。如果dataa上的數(shù)據(jù)不小于來自多路選擇器mux7的數(shù)據(jù),則符號(hào)為0,這時(shí)第一或門8會(huì)輸出一個(gè)時(shí)鐘周期的高電平,多路選擇器mux1選則第1路輸出,輸出值為1,多路選擇器mux3也選擇第1路輸出(輸出值為1),第二寄存器2和第三寄存器3的使能信號(hào)有效,所以當(dāng)前dataa和datab的數(shù)據(jù)會(huì)分別通過第二寄存器2和第三寄存器3,并分別寫入dr0和dr1,更新前面寫入的值,這時(shí)減法器上的減數(shù)獲得更新。如果dataa上的數(shù)據(jù)小于來自多路選擇器mux7的數(shù)據(jù),則差的符號(hào)位為1,這時(shí)第二或門7會(huì)輸出一個(gè)時(shí)鐘周期的高電平,第一或門8維持低電平,多路選擇器mux1選則第0路輸出(輸出值為0),多路選擇器mux2選擇第1路輸出(輸出值為1),由于多路選擇器mux3選擇第1路輸出(輸出值為0),所以第二寄存器2和第三寄存器3的使能信號(hào)無效,第二寄存器2和第三寄存器3的輸出值不會(huì)改變,maxminen信號(hào)也維持無效。實(shí)際上當(dāng)dataa的值小于來自多路選擇器mux7的值(也即是當(dāng)前已經(jīng)獲得的最大值),第二寄存器2和第三寄存器3的使能信號(hào)始終為無效,第二寄存器2和第三寄存器3的值也就不會(huì)更新,最終篩選的結(jié)果為輸入數(shù)據(jù)流的最大值及其對(duì)應(yīng)的地址,當(dāng)輸入數(shù)據(jù)中同時(shí)存在多個(gè)最大值時(shí),所得地址為最后一個(gè)最大值所在的地址。

當(dāng)執(zhí)行求最小值指令時(shí),數(shù)據(jù)信號(hào)dataa和datab與控制信號(hào)c0、c1、c2均在同一個(gè)時(shí)鐘沿到達(dá),且c0、c1、c2的值分別為‘1’、‘0’、‘1’。整個(gè)過程與執(zhí)行求最大值篩選的區(qū)別在于多路選擇器mux3的選通路徑不同,且當(dāng)兩個(gè)數(shù)相減差值的符號(hào)位為1時(shí)第二寄存器2和第三寄存器3的使能信號(hào)有效,最終篩選出的數(shù)據(jù)為數(shù)據(jù)流中的最小值及其對(duì)應(yīng)的地址,當(dāng)輸入數(shù)據(jù)中同時(shí)存在多個(gè)最小值時(shí),所得地址為最后一個(gè)最小值所在的地址。

當(dāng)執(zhí)行閾值比大指令時(shí),先在dr0中設(shè)置好需要的閾值,數(shù)據(jù)信號(hào)dataa和datab與控制信號(hào)c0、c1、c2均在同一個(gè)時(shí)鐘沿到達(dá),且c0、c1、c2的值分別為‘1’、‘1’、‘0’。這時(shí)多路選擇器mux7~多路選擇器mux12均選擇第0路輸出,多路選擇器mux3~多路選擇器mux6均選擇第1路輸出。減法器的減數(shù)固定為來自dr0的閾值,當(dāng)dataa的數(shù)值不小于dr0的值時(shí),差值的符號(hào)位為0。這時(shí)第一或門8會(huì)輸出一個(gè)時(shí)鐘周期的高脈沖,多路選擇器mux1選則第1路輸出,輸出值為1,多路選擇器mux3也選擇第1路輸出(輸出值為1),從而使能第二寄存器2和第三寄存器3,使當(dāng)前dataa和datab的值進(jìn)入第二寄存器2和第三寄存器3,然后由多路選擇器mux13選擇dataa或者datab作為輸出(通過配置寄存器dr2來選擇),最后通過多路選擇器⑾輸出到thresholdda端口。同時(shí)使能信號(hào)通過多路選擇器mux12的第0路輸出到thresholden端口,用于控制存儲(chǔ)器的寫操作,將thresholdda的值按照目的操作數(shù)尋址寄存器所指定的尋址方式寫入到存儲(chǔ)器中,同時(shí)thresholden還觸發(fā)一個(gè)計(jì)數(shù)器的加1操作,用于統(tǒng)計(jì)滿足閾值條件的值的個(gè)數(shù)。當(dāng)來自dataa的數(shù)值小于dr0的值時(shí),差值的符號(hào)位為1,多路選擇器mux1選則第0路輸出(輸出數(shù)值為0),多路選擇器mux2選擇第1路輸出,由于多路選擇器mux3選擇第1路輸出(輸出數(shù)值為0),所以第二寄存器2和第三寄存器3的使能信號(hào)無效,第二寄存器2和第三寄存器3的輸出值不會(huì)改變。端口thresholden也始終維持無效狀態(tài)。實(shí)際上當(dāng)dataa的值小于來自多路選擇器mux7的值(也就是事先設(shè)置的閾值),第二寄存器2和第三寄存器3的使能信號(hào)始終為無效,第二寄存器2和第三寄存器3的值也就不會(huì)更新,最終篩選的結(jié)果為輸入數(shù)據(jù)流中比閾值大的數(shù)或者對(duì)應(yīng)的地址。

當(dāng)執(zhí)行閾值比小指令時(shí),先在dr0中設(shè)置好需要的閾值,數(shù)據(jù)信號(hào)dataa和datab與控制信號(hào)c0、c1、c2均在同一個(gè)時(shí)鐘沿到達(dá),且c0、c1、c2的值分別為‘1’、‘0’、‘0’,這時(shí)多路選擇器mux4~多路選擇器mux6選擇第1路輸出,多路選擇器mux7~多路選擇器mux12選擇第0路輸出。整個(gè)過程與執(zhí)行閾值比大指令時(shí)的區(qū)別在于多路選擇器mux3的選通路徑不同,且當(dāng)兩個(gè)數(shù)相減差值的符號(hào)位為1時(shí)第二寄存器2和第三寄存器3的使能信號(hào)有效,最終篩選的結(jié)果為輸入數(shù)據(jù)流中比閾值小的數(shù)或者對(duì)應(yīng)的地址。

以上內(nèi)容僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明權(quán)利要求書的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
额济纳旗| 西畴县| 吴旗县| 邢台县| 繁峙县| 金塔县| 陆川县| 南岸区| 崇州市| 大方县| 马龙县| 玉山县| 霍州市| 团风县| 绥中县| 大新县| 进贤县| 遂宁市| 小金县| 固阳县| 色达县| 资阳市| 甘德县| 普格县| 金寨县| 饶平县| 黑山县| 宁南县| 郯城县| 鞍山市| 如皋市| 义乌市| 宜阳县| 梓潼县| 德州市| 新闻| 恩施市| 商南县| 团风县| 都江堰市| 泰宁县|