專利名稱:執(zhí)行比較運算的方法和模塊的制作方法
執(zhí)行比較運算的方法和模塊
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字信號處理器,尤其涉及一種用于執(zhí)行比較運算的 方法和模塊。背景技術(shù):
近些年,處理器技術(shù)得到快速發(fā)展,各種處理器層出不窮。特別是, 由于人們對提供通信、媒體服務(wù)的電子產(chǎn)品的旺盛需求,數(shù)字信號處理器 更是無處不在,默默為我們提供著高質(zhì)量的服務(wù)。
數(shù)字信號處理器能夠非常高效地處理一些特殊運算,如乘加、比較、 加比選,非常適合在通信、媒體、科學(xué)研究等領(lǐng)域的數(shù)字信號處理。并且
由于開發(fā)周期短、適應(yīng)性強、易于升級、價格適中,因此在IC產(chǎn)品中具有
很大的優(yōu)勢。而隨著微電子技術(shù)的快速發(fā)展, 一些制約數(shù)字信號處理器發(fā) 展的因素,如處理速度、成本壓力,都在不斷消失。這將促使數(shù)字信號處 理器更好的發(fā)展。
常用數(shù)字信號處理器中的比較指令或運算, 一般只能完成兩個數(shù)據(jù)的 對比,每執(zhí)行一條指令,可以比較出一個結(jié)果,可以求得兩個數(shù)據(jù)誰為大 者、大者為誰,或者誰為小者、小者為誰。對于大數(shù)據(jù)量的比較運算,非 常吃力,不但需要執(zhí)行大量指令代碼,而且運算效率低。另外,在傳統(tǒng)數(shù) 字信號處理器中,大量數(shù)據(jù)的排序是一個很大的問題,應(yīng)用比較指令需要 大量的迭代運算。
發(fā)明內(nèi)容
本發(fā)明的主要目的就是解決現(xiàn)有技術(shù)中的問題,提供一種執(zhí)行比較運 算的方法和模塊,可以實現(xiàn)多個數(shù)據(jù)的比較運算。
為實現(xiàn)上述目的,本發(fā)明提供一種執(zhí)行比較運算的方法,用于對多個
源操作數(shù)進(jìn)行比較運算,包括以下步驟
Al、執(zhí)行比較指令,從指令中獲取源操作數(shù)初始地址和源操作數(shù)長度 信息;
Bl、從初始地址開始逐個讀出源操作數(shù),直到指令中所限定的長度; Cl、將源操作數(shù)逐個輸入比較模塊進(jìn)行比較;
4Dl、將比較結(jié)果根據(jù)指令要求進(jìn)行存儲和/或輸出。
在一種實施例中,所述步驟C1中進(jìn)行比較的步驟包括以下步驟 Cll、將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效數(shù)據(jù)進(jìn)行
比較,所述數(shù)據(jù)寄存器組中按序存儲有已經(jīng)過比較運算的源操作數(shù); C12、根據(jù)步驟Cll比較后的結(jié)果判定當(dāng)前源操作數(shù)的位次; C13、根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組中數(shù)據(jù)進(jìn)行移位操作,
并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中;
C14、重復(fù)執(zhí)行步驟C11-C13,直到比較完最后一位源操作數(shù)。
本發(fā)明還提供一種執(zhí)行比較運算的模塊,用于對多個源操作數(shù)進(jìn)行比
較運算,包括
執(zhí)行單元,用于執(zhí)行比較指令,從指令中獲取源操作數(shù)初始地址和源 操作數(shù)長度信息,從初始地址開始逐個讀出源操作數(shù),直到指令中所限定 的長度;
比較模塊,用于對逐個輸入的源操作數(shù)進(jìn)行比較,將比較結(jié)果根據(jù)指 令要求進(jìn)行存儲和/或輸出。
在一種實施例中,所述比較模塊包括
數(shù)據(jù)寄存器組,用于按序存儲已經(jīng)過比較運算的源操作數(shù); 比較器組,用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效 數(shù)據(jù)進(jìn)行比較;
控制判斷邏輯單元,用于根據(jù)比較器輸出的比較結(jié)果判定當(dāng)前源操作 數(shù)的位次,根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組中數(shù)據(jù)進(jìn)行移位操 作,并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中;
輸出管理邏輯單元,用于按照指令要求進(jìn)行存儲和/或輸出。 本發(fā)明還提供一種執(zhí)行比較運算的模塊,用于對多個源操作數(shù)進(jìn)行比 較運算,包括
數(shù)據(jù)寄存器組,用于按序存儲己經(jīng)過比較運算的源操作數(shù); 比較器組,用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效 數(shù)據(jù)進(jìn)行比較;
控制判斷邏輯單元,用于根據(jù)比較器輸出的比較結(jié)果判定當(dāng)前源操作 數(shù)的位次,根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組中數(shù)據(jù)進(jìn)行移位操 作,并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中;
輸出管理邏輯單元,用于按照指令要求進(jìn)行存儲和/或輸出。
本發(fā)明還提供一種執(zhí)行比較運算的模塊,用于對逐個輸入的多個源操作數(shù)進(jìn)行比較運算,所述比較運算為求最大值、最小值、最大值位置、最 小值位置中的至少一種,包括
數(shù)據(jù)寄存器組,用于按序存儲已經(jīng)過比較運算的源操作數(shù);
比較器組,用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效 數(shù)據(jù)進(jìn)行比較;
位次寄存器組,用于記錄每個輸入源操作數(shù)的位次;
輸出管理邏輯單元,用于按照指令要求進(jìn)行存儲和/或輸出。
本發(fā)明的有益效果是本發(fā)明與傳統(tǒng)比較指令在一次執(zhí)行過程完成兩 個源操作數(shù)的比較不同,本發(fā)明指令在一次執(zhí)行過程中,可以對地址連續(xù) 的多個數(shù)據(jù)(這里簡稱為源操作數(shù)組)進(jìn)行比較,可以輸出最大值、最小 值、按增序/減序?qū)υ床僮鲾?shù)組重新排序的數(shù)組、最大值所在的位置、最小 值所在的位置,或記錄按增序/減序重新排列的數(shù)組的順序等多種結(jié)果,所 以本發(fā)明可簡單快速地完成地址連續(xù)的多個數(shù)據(jù)的比較,并根據(jù)指令的要 求輸出結(jié)果。
圖1是連續(xù)多數(shù)據(jù)比較器結(jié)構(gòu)示意圖。
圖2是連續(xù)多數(shù)據(jù)比較操作處理過程的示意圖。
圖3是由單一一條指令代碼構(gòu)成的指令格式。
圖4是由三條指令代碼構(gòu)成的指令格式。
圖5是一種實施例的結(jié)構(gòu)。
圖6是一種實施例的流程圖。
圖7是當(dāng)指令只具有求最大值、最小值、最大值位置、最小值位置、 兩個源操作數(shù)的簡單比較時比較邏輯可采用的結(jié)構(gòu)。
具體實施方式
本申請的特征及優(yōu)點將通過實施例結(jié)合附圖進(jìn)行詳細(xì)說明。 實施例一
請參考圖1,圖1是用于執(zhí)行連續(xù)多數(shù)據(jù)比較運算的模塊結(jié)構(gòu)示意圖, 包括執(zhí)行單元(圖中未示出)和比較模塊l,執(zhí)行單元用于執(zhí)行比較指令, 從指令中獲取源操作數(shù)初始地址和源操作數(shù)長度信息,從初始地址開始逐 個讀出源操作數(shù),直到指令中所限定的長度。比較模塊l接收源操作數(shù)存 儲單元2送過來的源操作數(shù),處理后將目的操作數(shù)寫入目的操作數(shù)存儲單 元3, 3a、 3b表示存在兩個不同的目的操作數(shù)。
本實施例的主要特點是源操作數(shù)很多,存儲在源操作數(shù)存儲單元2中,在地址1存放著第一個源操作數(shù),在地址2存放著第二個源操作 數(shù),……,在地址n存放著第n個源操作數(shù),這些源操作數(shù)構(gòu)成了一個源 操作數(shù)組,地址1是其初始地址,n是源操作數(shù)長度;源操作數(shù)按時鐘節(jié) 拍從地址1開始依次被送給比較邏輯1;比較邏輯1產(chǎn)生的目的操作數(shù)不 止1種,3a、 3b分別表示兩種不同的目的操作數(shù);每種目的操作數(shù)可以有 多個,構(gòu)成目的操作數(shù)組,按地址順序依次存入目的操作數(shù)存儲單元3。
為了進(jìn)一步說明本發(fā)明的處理特征,圖2給出了該比較運算的流水處 理過程。比較邏輯l在接收到第二個源操作數(shù)時便開始比較處理,在比較 完第n個源操作數(shù)后輸出目的操作數(shù)。n個源操作數(shù)構(gòu)成源操作數(shù)組4, nl 個目的操作數(shù)1構(gòu)成了目的操作數(shù)組5a, n2個目的操作數(shù)2構(gòu)成了目的操 作數(shù)組5b。
與上述模塊配合的還有用于執(zhí)行比較運算的指令,適用于進(jìn)行連續(xù)大 數(shù)據(jù)量的比較操作。
該比較運算涉及的操作數(shù)分為2類,其中一類為源操作數(shù)組,另一類 為目的操作數(shù)(組),即最大值、最小值、按增序/減序?qū)υ床僮鲾?shù)組重新 排序的數(shù)組、最大值所在的位置、最小值所在的位置,或記錄按增序/減序 重新排列的數(shù)組的順序等多種結(jié)果。
由于源操作數(shù)組至少包含兩個數(shù)據(jù),因此指令需要指出源操作數(shù)的初 始地址和數(shù)組長度。同理,目的操作數(shù)組包含的數(shù)據(jù),即比較運算的輸出 數(shù)據(jù)也可能多于1個,因此指令需要指出目的操作數(shù)地址和輸出數(shù)據(jù)長度。 該指令支持多種尋址方式。
該指令格式可以是單一一條指令代碼,包括操作碼,能夠指出源操作 數(shù)初始地址的信息、能夠指出源操作數(shù)長度的信息、能夠指出目的操作數(shù) 初始地址的信息、能夠指出目的操作數(shù)長度的信息。如圖3所示為由單一 一條指令代碼構(gòu)成的指令格式,它包括操作碼7、源操作數(shù)初始地址8、源 操作數(shù)長度9、目的操作數(shù)初始地址IO、目的操作數(shù)長度ll。源操作數(shù)初 始地址8、源操作數(shù)長度9、目的操作數(shù)初始地址IO、目的操作數(shù)長度ll 這些信息可以由寄存器、存儲器、立即數(shù)等提供。
對于指令格式為單一一條指令代碼的情況,指令操作碼根據(jù)實際比較 運算的類型不同而不同,可以是求最大、求最小、遞增排序、遞減排序、 找最大位置、找最小位置,及源操作數(shù)組中兩個數(shù)據(jù)的比較。
該指令格式可以是兩條指令代碼構(gòu)成,第一條指令代碼包括第一操作碼,能夠指出源操作數(shù)初始地址的信息、能夠指出源操作數(shù)長度的信息; 第二條指令代碼包括第二操作碼,能夠指出目的操作數(shù)初始地址的信息、 能夠指出目的操作數(shù)長度的信息。
對于指令格式為兩條指令代碼構(gòu)成的情況,第一操作碼根據(jù)實際比較 運算的類型不同而不同,可以是求最大、求最小、遞增排序、遞減排序、 找最大位置、找最小位置,及源操作數(shù)組中兩個數(shù)據(jù)的比較。
對于指令格式為兩條指令代碼構(gòu)成的情況,第二操作碼執(zhí)行數(shù)據(jù)搬移 或存儲操作,將比較后的數(shù)據(jù)結(jié)果存入目的存儲單元中。
對于指令格式為兩條指令代碼構(gòu)成的情況,第一操作碼執(zhí)行通用比較 操作,可以實現(xiàn)求最大、求最小、遞增排序、遞減排序、找最大位置、找 最小位置等中的幾個或全部操作。
對于指令格式為兩條指令代碼構(gòu)成的情況,并且第一操作碼執(zhí)行通用 比較操作的情況,第二操作碼可以執(zhí)行有條件執(zhí)行數(shù)據(jù)搬移或存儲操作, 即可以將求得的最大值、最小值、重新排序的數(shù)據(jù)、最大位置、最小位置 等運算結(jié)果中某一項作為目的操作數(shù),存入目的存儲單元中。
指令格式可以推廣到超過兩條指令代碼。第一條指令代碼包括第一操 作碼,能夠指出源操作數(shù)初始地址的信息、能夠指出源操作數(shù)長度的信息。 第一操作碼執(zhí)行通用比較操作,可以實現(xiàn)求最大、求最小、遞增排序、遞 減排序、找最大位置、找最小位置等中的幾個或全部操作。
對于指令格式為多條指令代碼構(gòu)成的情況,第二條指令代碼包括第二 操作碼,能夠指出第一目的操作數(shù)初始地址的信息、能夠指出第一目的操 作數(shù)長度的信息;第三條指令代碼包括第三操作碼,能夠指出第二目的操 作數(shù)初始地址的信息、能夠指出第二目的操作數(shù)長度的信息。第四條指令 代碼包括第四操作碼,能夠指出第三目的操作數(shù)初始地址的信息、能夠指 出第三目的操作數(shù)長度的信息。以此類推,第n條指令代碼包括第n操作 碼,能夠指出第n-1目的操作數(shù)初始地址的信息、能夠指出第n-l目的操 作數(shù)長度的信息。
對于指令格式為多條指令代碼構(gòu)成的情況,第二、……、第n操作碼 可以執(zhí)行有條件執(zhí)行數(shù)據(jù)搬移或存儲操作,即可以將求得的最大值、最小 值、重新排序的數(shù)據(jù)、最大位置、最小位置等運算結(jié)果中某一項作為目的 操作數(shù),存入目的存儲單元中。
如圖4所示為由三條指令代碼構(gòu)成的指令格式,它包括操作碼7a、操作碼7b、操作碼7c、源操作數(shù)初始地址8、源操作數(shù)長度9、目的操作數(shù) l初始地址10a、目的操作數(shù)l長度lla、目的操作數(shù)2初始地址10b、目 的操作數(shù)2長度llb。操作碼7a執(zhí)行通用比較操作,比較邏輯會產(chǎn)生多種 結(jié)果,如最大值、最小值、最大值位置、最小值位置等。操作碼7b、操作 碼7c執(zhí)行目的操作數(shù)的選取和存儲操作,將需要的結(jié)果存入目的操作數(shù)存 儲單元中。
如圖5所示為本發(fā)明比較模塊的一種實施方式。該比較模塊結(jié)構(gòu)包括 比較器組12、控制判斷邏輯單元、存儲將源操作數(shù)按遞增或遞減順序重新 排列的數(shù)據(jù)寄存器組15、記錄與重新排列的數(shù)據(jù)對應(yīng)位次的位次寄存器組 16、輸出管理邏輯單元17??刂婆袛噙壿媶卧梢园刂婆袛鄦卧?3、 移位邏輯單元14。
數(shù)據(jù)寄存器組15存儲了當(dāng)前時刻已經(jīng)過比較運算的一個或多個輸入 源操作數(shù)的按序排列,其順序可以是遞增,也可以是遞減。數(shù)據(jù)寄存器組 根據(jù)需要可以包括一個或多個寄存器。
位次寄存器組16存儲了當(dāng)前多個輸入源操作數(shù)的按序排列順序,記 錄著每個輸入源操作數(shù)的位次。比如,源操作數(shù)的輸入依次是[8、 4、 5、 3],按降序排列后,數(shù)據(jù)寄存器組中內(nèi)容為[8、 5、 4、 3],則位次寄存器 組的內(nèi)容為[l、 3、 2、 4]。位次寄存器組根據(jù)需要可以包括一個或多個寄 存器。
比較器組12執(zhí)行當(dāng)前輸入源操作數(shù)與數(shù)據(jù)寄存器組15中的每個有效 數(shù)據(jù)的對比操作,每個比較器的輸出結(jié)果為或者f0'。比較器12組 根據(jù)需要可以包括一個或多個比較器。
比較器輸出結(jié)果因比較操作的判斷標(biāo)準(zhǔn)而不同,可以通過指令對其控 制。l可以表示大于等于,O表示小于。l也可以表示大于,O表示小于等 于。l也可以表示小于等于,O表示大于。l也可以表示小于,O表示大于 等于。
控制判斷單元13根據(jù)比較器組的輸出結(jié)果來判定當(dāng)前源操作數(shù)的位 次。假設(shè)l表示大于等于,O表示小于。如果輸出結(jié)果為OOll……,則表 示當(dāng)前源操作數(shù)小于當(dāng)前最大值和第二大值,說明當(dāng)前源操作數(shù)為第三大 值,可以排在第三的位置。
移位邏輯單元14根據(jù)控制判斷單元13的結(jié)果,對數(shù)據(jù)寄存器組15 和位次寄存器組16中的數(shù)據(jù)進(jìn)行移位操作,并將當(dāng)前源操作數(shù)存入相應(yīng)數(shù)據(jù)寄存器,將當(dāng)前源操作數(shù)被執(zhí)行的次序存入相應(yīng)的位次寄存器中。比如
當(dāng)控制判斷單元13判定當(dāng)前源操作數(shù)為第三大值時,需要將當(dāng)前第三以及 之后的數(shù)據(jù)整體向后移一位,將當(dāng)前第三以及之后的位次數(shù)據(jù)整體向后移 一位,然后將當(dāng)前源操作數(shù)存入第三個數(shù)據(jù)寄存器,將當(dāng)前源操作數(shù)的次 序存入第三個位次寄存器中。
輸出管理邏輯單元17是根據(jù)指令要求,將相應(yīng)的結(jié)果寫入目的操作 數(shù)存儲單元。輸出結(jié)果可以是最大、求最小、遞增排序、遞減排序、找最 大位置、找最小位置等中的任何一項。
本實施例不但可以求源操作數(shù)組的最大值、最小值、遞增排列、遞減 排列,因為使用了位次寄存器組16,還可以實現(xiàn)求源操作數(shù)組的最大值位 置、最小值位置、按增序/減序重新排列的數(shù)組的順序等結(jié)果。
本實施例執(zhí)行比較運算如圖6所示,包括以下步驟
在步驟SIO,執(zhí)行比較指令,從指令中獲取源操作數(shù)初始地址和源操 作數(shù)長度信息,也可以進(jìn)一步從指令中獲取目的操作數(shù)初始地址和目的操 作數(shù)長度信息,然后執(zhí)行步驟Sll。
在步驟Sll,從初始地址開始逐個讀出源操作數(shù),直到指令中所限定 的長度,然后執(zhí)行步驟S12。
在步驟S12,將源操作數(shù)逐個輸入比較器,然后執(zhí)行步驟S13。
在步驟S13,將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效數(shù) 據(jù)進(jìn)行比較,然后執(zhí)行步驟S14。
在步驟S14,根據(jù)步驟S13比較后的結(jié)果判定當(dāng)前源操作數(shù)的位次, 然后執(zhí)行步驟S15。
在步驟S15,根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組和位次寄存器 組進(jìn)行移位操作,并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中和將當(dāng) 前源操作數(shù)的位次存入位次寄存器組中,然后執(zhí)行步驟S16。
在步驟S16,判斷是否還有源操作數(shù)需要輸入到比較器,如果有則執(zhí) 行步驟S12,將該源操作數(shù)輸入到比較器,如果沒有,則執(zhí)行步驟S17。
在步驟S17,將比較結(jié)果根據(jù)指令要求進(jìn)行存儲和/或輸出,存儲時按 照指令中目的操作數(shù)初始地址和目的操作數(shù)長度進(jìn)行存儲。
實施例二
最大值、最小值、最大值位置、最小值位置時,比較器組可 以只包括一個比較器,數(shù)據(jù)寄存器組可以只包括一個寄存器,位次寄存器組也可以只包括一個寄存器。請參考圖7,圖7是執(zhí)行求最大值、最小值、 最大值位置、最小值位置中至少一者的結(jié)構(gòu)圖,包括用于按序存儲已經(jīng)過 比較運算的源操作數(shù)的數(shù)據(jù)寄存器19、用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù) 寄存器組中的每個有效數(shù)據(jù)進(jìn)行比較的比較器18、用于記錄每個輸入源操 作數(shù)的位次的位次寄存器20、用于按照指令要求進(jìn)行存儲和/或輸出的輸 出管理邏輯單元17。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說 明,不能認(rèn)定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù) 領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若 干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種執(zhí)行比較運算的方法,用于對多個源操作數(shù)進(jìn)行比較運算,其特征在于包括以下步驟A1、執(zhí)行比較指令,從指令中獲取源操作數(shù)初始地址和源操作數(shù)長度信息;B1、從初始地址開始逐個讀出源操作數(shù),直到指令中所限定的長度;C1、將源操作數(shù)逐個輸入比較模塊進(jìn)行比較;D1、將比較結(jié)果根據(jù)指令要求進(jìn)行存儲和/或輸出。
2. 如權(quán)利要求1所述的方法,其特征在于所述步驟Cl中進(jìn)行比 較的步驟包括以下步驟Cll、將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效數(shù)據(jù)進(jìn)行 比較,所述數(shù)據(jù)寄存器組中按序存儲有已經(jīng)過比較運算的源操作數(shù);C12、根據(jù)步驟Cll比較后的結(jié)果判定當(dāng)前源操作數(shù)的位次;C13、根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組中數(shù)據(jù)進(jìn)行移位操作, 并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中;C14、重復(fù)執(zhí)行步驟C11-C13,直到完成最后一位源操作數(shù)。
3. 如權(quán)利要求2所述的方法,其特征在于所述步驟C1中進(jìn)行比 較的步驟還包括以下步驟記錄每個輸入源操作數(shù)的位次。
4. 如權(quán)利要求1至3中任一項所述的方法,其特征在于在所述步驟A1中還從指令中獲取目的操作數(shù)初始地址和目的操作數(shù)長度信息,步 驟Dl中所述的存儲是按照目的操作數(shù)初始地址和目的操作數(shù)長度進(jìn)行存 儲。
5. —種執(zhí)行比較運算的模塊,用于對多個源操作數(shù)進(jìn)行比較運算, 其特征在于包括執(zhí)行單元,用于執(zhí)行比較指令,從指令中獲取源操作數(shù)初始地址和源 操作數(shù)長度信息,從初始地址開始逐個讀出源操作數(shù),直到指令中所限定的長度;比較模塊,用于對逐個輸入的源操作數(shù)進(jìn)行比較,將比較結(jié)果根據(jù)指 令要求進(jìn)行存儲和/或輸出。
6. 如權(quán)利要求5所述的模塊,其特征在于所述比較模塊包括 數(shù)據(jù)寄存器組,用于按序存儲已經(jīng)過比較運算的源操作數(shù);比較器組,用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效數(shù)據(jù)進(jìn)行比較;控制判斷邏輯單元,用于根據(jù)比較器輸出的比較結(jié)果判定當(dāng)前源操作 數(shù)的位次,根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組中數(shù)據(jù)進(jìn)行移位操 作,并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中;輸出管理邏輯單元,用于按照指令要求進(jìn)行存儲和/或輸出。
7. 如權(quán)利要求5所述的模塊,其特征在于所述比較模塊還包括: 位次寄存器組,用于記錄每個輸入源操作數(shù)的位次。
8. —種執(zhí)行比較運算的模塊,用于對逐個輸入的多個源操作數(shù)進(jìn)行 比較運算,其特征在于包括數(shù)據(jù)寄存器組,用于按序存儲已經(jīng)過比較運算的源操作數(shù); 比較器組,用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器組中的每個有效 數(shù)據(jù)進(jìn)行比較;控制判斷邏輯單元,用于根據(jù)比較器輸出的比較結(jié)果判定當(dāng)前源操作 數(shù)的位次,根據(jù)當(dāng)前源操作數(shù)的位次對數(shù)據(jù)寄存器組中數(shù)據(jù)進(jìn)行移位操 作,并將當(dāng)前源操作數(shù)按其位次存入數(shù)據(jù)寄存器組中;輸出管理邏輯單元,用于按照指令要求進(jìn)行存儲和/或輸出。
9. 如權(quán)利要求5所述的模塊,其特征在于所述比較模塊還包括 位次寄存器組,用于記錄每個輸入源操作數(shù)的位次。
10. —種執(zhí)行比較運算的模塊,用于對逐個輸入的多個源操作數(shù)進(jìn)行 比較運算,所述比較運算為求最大值、最小值、最大值位置、最小值位置 中的至少一種,其特征在于包括數(shù)據(jù)寄存器,用于按序存儲已經(jīng)過比較運算的源操作數(shù); 比較器,用于將當(dāng)前輸入的源操作數(shù)與數(shù)據(jù)寄存器中的每個有效數(shù)據(jù) 進(jìn)行比較;位次寄存器,用于記錄每個輸入源操作數(shù)的位次; 輸出管理邏輯單元,用于按照指令要求進(jìn)行存儲和/或輸出。
全文摘要
本發(fā)明公開了一種執(zhí)行比較運算的方法和模塊,用于對多個源操作數(shù)進(jìn)行比較運算,包括執(zhí)行單元,用于執(zhí)行比較指令,從指令中獲取源操作數(shù)初始地址和源操作數(shù)長度信息,從初始地址開始逐個讀出源操作數(shù),直到指令中所限定的長度;比較模塊,用于對逐個輸入的源操作數(shù)進(jìn)行比較,將比較結(jié)果根據(jù)指令要求進(jìn)行存儲和/或輸出。本發(fā)明可以簡單快速地對地址連續(xù)的多個數(shù)據(jù)進(jìn)行比較運算。
文檔編號G06F9/30GK101685388SQ20081021636
公開日2010年3月31日 申請日期2008年9月28日 優(yōu)先權(quán)日2008年9月28日
發(fā)明者劉雪嬌, 焦玉中, 王新安, 肖高發(fā), 胡子一, 陳紅英, 陳鑫森 申請人:北京大學(xué)深圳研究生院