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