麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種向量處理器及其進行向量數(shù)據(jù)存取、交互的方法

文檔序號:6489315閱讀:309來源:國知局
一種向量處理器及其進行向量數(shù)據(jù)存取、交互的方法
【專利摘要】本發(fā)明公開了一種向量處理器及其進行向量數(shù)據(jù)存取、交互的方法,向量處理器包括:地址寄存器組,用于存儲操作數(shù)以及向量化的地址數(shù)據(jù),并將向量化的地址數(shù)據(jù)通過地址總線接口傳送到存儲器組,所述向量化的地址數(shù)據(jù)用于訪問存儲器組;地址生成邏輯單元,用于通過算術(shù)邏輯單元,根據(jù)操作數(shù)計算出向量化的地址數(shù)據(jù)并存入地址寄存器組;數(shù)據(jù)交互邏輯單元,用于通過算術(shù)邏輯單元,將通過數(shù)據(jù)總線接口從存儲器組存取的向量數(shù)據(jù)進行拆拼運算。本發(fā)明能夠充分利用向量處理器高效的算術(shù)邏輯單元,因此數(shù)據(jù)處理速度快,效率高。
【專利說明】一種向量處理器及其進行向量數(shù)據(jù)存取、交互的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理,特別涉及一種向量處理器及其進行向量數(shù)據(jù)存取、交互的方法。
【背景技術(shù)】
[0002]圖1為現(xiàn)有的向量處理器數(shù)據(jù)存取結(jié)構(gòu)示意圖,如圖所示,在現(xiàn)有的向量處理器數(shù)據(jù)存儲機制中,涉及的元器件主要有:向量處理器101、向量處理器的訪問地址線102、數(shù)據(jù)線103、數(shù)據(jù)總線104、地址生成控制邏輯單元105、數(shù)據(jù)拆拼邏輯單元106,以及由η個存儲器組成的存儲器組107。
[0003]當(dāng)發(fā)生向量數(shù)據(jù)訪問時,向量處理器101通過訪問地址線102發(fā)送一個初始地址,這個初始地址作為地址生成控制邏輯單元105的輸入,通過地址生成控制邏輯單元105的計算得到一組地址信號,所述地址作為存儲器地址輸入存儲器組107。存儲器組107接收到地址后響應(yīng),返回一組數(shù)據(jù)或進行數(shù)據(jù)存儲等處理。
[0004]當(dāng)向量處理器101與存儲器組107進行數(shù)據(jù)傳遞時,在數(shù)據(jù)總線104后端的數(shù)據(jù)拆拼邏輯單元106負責(zé)將向量處理器101輸出的數(shù)據(jù)拆分成每個存儲器個體的數(shù)據(jù)輸入存儲器組107,或?qū)⒚總€存儲器個體的輸出拼接成一個向量數(shù)據(jù)通過數(shù)據(jù)總線返回給向量處理器101。
[0005]在向量處理器進行數(shù)據(jù)存取的過程中,這種由專門的地址生成控制邏輯單元完成地址生成運算,由專門的數(shù)據(jù)拆拼邏輯單元進行數(shù)據(jù)拆拼運算的方式,存在著數(shù)據(jù)存取效率低的不足。

【發(fā)明內(nèi)容】

[0006]本發(fā)明提供了一種向量處理器及其進行向量數(shù)據(jù)存取、交互的方法,用以提高向量處理器存取向量數(shù)據(jù)的效率。
[0007]本發(fā)明實施例中提供了一種包括算術(shù)邏輯單元的向量處理器,還包括:地址生成邏輯單元、數(shù)據(jù)交互邏輯單元、地址寄存器組以及地址總線接口、數(shù)據(jù)總線接口,其中:
[0008]地址寄存器組,用于存儲操作數(shù)以及向量化的地址數(shù)據(jù),并將向量化的地址數(shù)據(jù)通過地址總線接口傳送到存儲器組,所述向量化的地址數(shù)據(jù)用于訪問存儲器組;
[0009]地址生成邏輯單元,用于通過算術(shù)邏輯單元,根據(jù)操作數(shù)計算出向量化的地址數(shù)據(jù)并存入地址寄存器組;
[0010]數(shù)據(jù)交互邏輯單元,用于通過算術(shù)邏輯單元,將通過數(shù)據(jù)總線接口從存儲器組存取的向量數(shù)據(jù)進行拆拼運算。
[0011]較佳地,所述地址總線接口是將若干個向量化地址并聯(lián)向外輸出的向量化地址接□。
[0012]本發(fā)明實施例中還提供了 一種用向量處理器進行向量數(shù)據(jù)存取的方法,在向量化的地址數(shù)據(jù)生成時,包括如下步驟:[0013]向量處理器在處理器流水線的譯碼階段解析到向量訪存相關(guān)的指令時,根據(jù)指令的內(nèi)容,從地址寄存器組中選擇若干個寄存器作為操作數(shù);
[0014]向量處理器將所選擇的操作數(shù)作為地址生成邏輯單元的輸入數(shù)據(jù);
[0015]與向量處理器共享算術(shù)邏輯單元的地址生成邏輯單元將輸入數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段以使相關(guān)的計算單元根據(jù)指令格式進行相應(yīng)的計算。
[0016]較佳地,所述向量化的地址數(shù)據(jù)生成由對存儲器組的訪問行為觸發(fā)。
[0017]較佳地,對地址寄存器組中的寄存器的操作位于向量處理器的流水線結(jié)構(gòu)中。
[0018]本發(fā)明實施例中還提供了 一種用向量處理器進行向量數(shù)據(jù)存取的方法,在向量化的地址數(shù)據(jù)寫回時,包括如下步驟:
[0019]在處理器流水線的訪存階段,地址生成邏輯單元將執(zhí)行階段的計算結(jié)果寫回地址寄存器組中。
[0020]本發(fā)明實施例中還提供了 一種用向量處理器進行向量數(shù)據(jù)存取的方法,在向量處理器對存儲器組的向量數(shù)據(jù)進行存取時,包括如下步驟:
[0021]地址生成邏輯單元將向量化的地址數(shù)據(jù)通過并行化的地址總線接口傳送到存儲器組。
[0022]本發(fā)明實施例中還提供了一種用向量處理器進行向量數(shù)據(jù)交互的方法,在對向量數(shù)據(jù)進行交互時,包括如下步驟:
[0023]向量處理器解析所執(zhí)行的指令內(nèi)容,從向量數(shù)據(jù)寄存器組中選取未經(jīng)排序的向量數(shù)據(jù);
[0024]向量處理器將未經(jīng)排序的向量數(shù)據(jù)送至數(shù)據(jù)交互邏輯單元;
[0025]與向量處理器共享算術(shù)邏輯單元的數(shù)據(jù)交互邏輯單元將未經(jīng)排序的向量數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段以使相關(guān)的計算單元根據(jù)指令格式將所述向量數(shù)據(jù)生成經(jīng)排序后的向量數(shù)據(jù)。
[0026]較佳地,所述對向量數(shù)據(jù)進行交互由向量數(shù)據(jù)的交互運算觸發(fā)。
[0027]本發(fā)明實施例中還提供了 一種向量數(shù)據(jù)存取裝置,包括存儲器組以及向量處理器,其中:
[0028]存儲器組通過地址總線接口、數(shù)據(jù)總線接口與向量處理器相連,通過地址總線接口傳送需存取的向量數(shù)據(jù)的向量化的地址數(shù)據(jù),通過數(shù)據(jù)總線接口傳送需存取的向量數(shù)據(jù)。
[0029]本發(fā)明有益效果如下:
[0030]在本發(fā)明實施中,地址生成邏輯單元、數(shù)據(jù)交互邏輯單元共享向量處理器的算術(shù)邏輯單元,將其用于計算向量化的地址數(shù)據(jù)以及對從存儲器組存取的向量數(shù)據(jù)進行拆拼運算,并且將向量化的地址數(shù)據(jù)通過向量化地址總線接口直接傳送到存儲器組。與現(xiàn)有由專門的地址生成控制邏輯單元完成地址生成運算,由專門的數(shù)據(jù)拆拼邏輯單元進行數(shù)據(jù)拆拼運算的方式相比,現(xiàn)有技術(shù)中地址生成邏輯運算和數(shù)據(jù)拆拼邏輯獨立于處理器內(nèi)部結(jié)構(gòu),實際上是一個協(xié)處理器,這樣的分離式結(jié)構(gòu)顯然降低了處理器的訪存效率;而本發(fā)明由于無需再由專門的地址生成控制邏輯、數(shù)據(jù)拆拼邏輯來進行地址生成運算和數(shù)據(jù)交互運算,還能夠充分利用向量處理器高效的算術(shù)邏輯單元,因此數(shù)據(jù)處理速度快,效率高。【專利附圖】

【附圖說明】
[0031]圖1為現(xiàn)有的向量處理器數(shù)據(jù)存取結(jié)構(gòu)示意圖;
[0032]圖2為本發(fā)明實施例中的向量處理器結(jié)構(gòu)示意圖;
[0033]圖3為本發(fā)明實施例中的向量數(shù)據(jù)存儲的方法實施流程示意圖;
[0034]圖4為本發(fā)明實施例中的向量處理器流水線結(jié)構(gòu)示意圖;
[0035]圖5為本發(fā)明實施例中的向量處理器內(nèi)部各信號的流轉(zhuǎn)示意圖。
【具體實施方式】
[0036]下面結(jié)合附圖對本發(fā)明的【具體實施方式】進行說明。
[0037]發(fā)明人在發(fā)明過程中注意到,在現(xiàn)有的向量處理器進行數(shù)據(jù)存取的過程中,需要額外的地址生成控制邏輯單元和數(shù)據(jù)拆拼邏輯單元來計算地址和數(shù)據(jù)信息,這些操作降低了處理器的總線效率,也降低了存儲系統(tǒng)的時序性能。例如,采用查表方法實現(xiàn)的地址生成控制邏輯至少需要一個時鐘周期完成查表操作;而數(shù)據(jù)的拆拼也產(chǎn)生了復(fù)雜的數(shù)據(jù)選擇邏輯,增加了訪問延遲,降低了時序性能。另一方面,在現(xiàn)有的實現(xiàn)方式下,地址控制邏輯和數(shù)據(jù)拆拼邏輯的規(guī)模制約了向量地址的產(chǎn)生方式不能太靈活,同時也導(dǎo)致了數(shù)據(jù)交互方法不能太復(fù)雜,降低了對處理器對復(fù)雜的數(shù)據(jù)操作的處理能力。另外,專門設(shè)立的地址生成控制邏輯以及數(shù)據(jù)拆拼邏輯成本高、費用高;還由于其功能的局限性只能進行相對較為簡單的地址生成邏輯運算和數(shù)據(jù)拆拼邏輯運算。
[0038]為了克服現(xiàn)有向量處理器數(shù)據(jù)存儲技術(shù)對總線效率和系統(tǒng)時序性能產(chǎn)生的負面影響,本發(fā)明實施例中提供了一種包括算術(shù)邏輯單元的向量處理器,在該向量處理器中,將向量地址生成邏輯與數(shù)據(jù)交互邏輯獨立于總線,以向量化的地址和數(shù)據(jù)總線實現(xiàn)對存儲器陣列的直接訪問,用以減小數(shù)據(jù)總線訪問延遲,提高存儲系統(tǒng)的時序性能。進一步地,將地址生成邏輯和數(shù)據(jù)交互邏輯集成到向量處理器的微結(jié)構(gòu)中,以利用處理器計算部件完成對復(fù)雜地址操作和數(shù)據(jù)交互操作,提高處理器對復(fù)雜數(shù)據(jù)操作的處理能力。下面進行說明。
[0039]圖2為向量處理器結(jié)構(gòu)示意圖,如圖所示,向量處理器201包括算術(shù)邏輯單元,還包括:地址生成邏輯單元202、數(shù)據(jù)交互邏輯單元204、地址寄存器組203以及地址總線接口205、數(shù)據(jù)總線接口 206,為便于說明向量處理器的實施方式,圖中還示出了存儲器組208,以及連接向量處理器與存儲器組的總線207 ;方案中涉及到的算術(shù)邏輯單元的實施方式將會在下面的實施例中給出具體說明。
[0040]則在向量處理器中的各單元結(jié)構(gòu)關(guān)系可以如下:
[0041]地址寄存器組,用于存儲操作數(shù)以及向量化的地址數(shù)據(jù),并將向量化的地址數(shù)據(jù)通過地址總線接口傳送到存儲器組,所述向量化的地址數(shù)據(jù)用于訪問存儲器組;
[0042]地址生成邏輯單元,用于通過算術(shù)邏輯單元,根據(jù)操作數(shù)計算出向量化的地址數(shù)據(jù)并存入地址寄存器組;
[0043]數(shù)據(jù)交互邏輯單元,用于通過算術(shù)邏輯單元,將通過數(shù)據(jù)總線接口從存儲器組存取的向量數(shù)據(jù)進行拆拼運算。
[0044]實施中,地址總線接口可以是將若干個向量化地址并聯(lián)向外輸出的向量化地址接□。
[0045]具體實施中,向量處理器可以沿用原始的地址接口可以實現(xiàn)地址的串行輸出,即一次只輸出一個向量化地址;而本實施例的向量化地址接口一次可以輸出一組向量化地址實現(xiàn)向量化地址的并行傳輸。
[0046]假若向量處理器為16位字長的,串行傳輸向量化地址的地址接口的寬度與向量化地址的字長相等,則向量化地址接口也對應(yīng)的是16位字長寬。而一次需要傳輸8個向量化地址,則向量化地址接口的寬度則需要滿足16*8=128位字長。
[0047]故本實施例拓寬了原有地址接口的寬度,使向量處理器能并行輸出若干個向量化地址,實現(xiàn)并行訪問。采用本實施例所述的向量化地址接口,實現(xiàn)并行訪問,進一步提供了數(shù)據(jù)存取的速率,提高了處理能力。
[0048]具體實施中,向量處理器主要包含:結(jié)構(gòu)化的地址生成邏輯單元、結(jié)構(gòu)化的數(shù)據(jù)交換邏輯單元、向量化的數(shù)據(jù)地址寄存器組以及向量化的地址總線接口。實施例中所描述的存儲陣列亦即存儲器組,存儲陣列是本領(lǐng)域技術(shù)人員更為慣常的另一種描述方式。則在向量處理器中有:
[0049]結(jié)構(gòu)化的地址生成邏輯單元:位于向量處理器的流水線中,與向量處理器共享算術(shù)邏輯單元。向量存儲器訪問行為將觸發(fā)位于流水線結(jié)構(gòu)中分布的各個處理階段,以實現(xiàn)所需的地址計算功能。
[0050]結(jié)構(gòu)化的數(shù)據(jù)交互邏輯單元:位于向量處理器的流水線中,與向量處理器共享算術(shù)邏輯單元。向量數(shù)據(jù)的交互運算觸發(fā)位于流水線結(jié)構(gòu)中分布的各個處理階段,以實現(xiàn)所需的數(shù)據(jù)交互操作,如洗牌、倒序操作等。
[0051]向量化的地址寄存器組:向量化的地址寄存器組包含若干個向量化的地址寄存器。為了實現(xiàn)對存儲器組中各個存儲器個體的直接訪問,向量化的地址寄存器包含了所有存儲器個體的地址。通過這些地址,無需更多的存儲器控制邏輯即可直接完成對存儲器陣列的訪問。這些寄存器位于向量處理器的流水線結(jié)構(gòu)中,作為所述結(jié)構(gòu)化的地址生成邏輯的輸入,進行地址間的邏輯運算,生成訪存所需的向量地址。
[0052]向量化的地址總線接口:向量化的地址總線接口由一組地址信號組成,負責(zé)向存儲器陣列傳送向量化的地址數(shù)據(jù)。
[0053]基于上述向量處理器,本發(fā)明實施例中還提供了 一種向量數(shù)據(jù)存取裝置,包括存儲器組以及上述的向量處理器,其中:
[0054]存儲器組通過地址總線接口、數(shù)據(jù)總線接口與向量處理器相連,通過地址總線接口傳送需存取的向量數(shù)據(jù)的向量化的地址數(shù)據(jù),通過數(shù)據(jù)總線接口傳送需存取的向量數(shù)據(jù)。
[0055]基于上述向量處理器,本發(fā)明實施例中還提供了一種向量數(shù)據(jù)存取的方法,用于降低訪存延遲并提高處理器效率,下面進行說明。
[0056]向量數(shù)據(jù)存取的過程包含了向量化的地址數(shù)據(jù)生成、向量化的地址數(shù)據(jù)寫回、向量處理器對存儲器組的向量數(shù)據(jù)進行存取、對向量數(shù)據(jù)進行交互等流程,下面先對各分流程的實施進行說明。
[0057]1、在向量化的地址數(shù)據(jù)生成時,向量處理器進行向量數(shù)據(jù)存取可以包括如下步驟:
[0058]向量處理器在處理器流水線的譯碼階段解析到向量訪存相關(guān)的指令時,根據(jù)指令的內(nèi)容,從地址寄存器組中選擇若干個寄存器作為操作數(shù);[0059]向量處理器將所選擇的操作數(shù)作為地址生成邏輯單元的輸入數(shù)據(jù);
[0060]與向量處理器共享算術(shù)邏輯單元的地址生成邏輯單元將輸入數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段以使相關(guān)的計算單元根據(jù)指令格式進行相應(yīng)的計算。
[0061]實施中,向量化的地址數(shù)據(jù)生成可以由對存儲器組的訪問行為觸發(fā)。
[0062]實施中,對地址寄存器組中的寄存器的操作可以位于向量處理器的流水線結(jié)構(gòu)中。
[0063]2、在向量化的地址數(shù)據(jù)寫回時,向量處理器進行向量數(shù)據(jù)存取可以包括如下步驟:
[0064]在處理器流水線的訪存階段,地址生成邏輯單元將執(zhí)行階段的計算結(jié)果寫回地址寄存器組中。
[0065]3、在向量處理器對存儲器組的向量數(shù)據(jù)進行存取時,包括如下步驟:
[0066]地址生成邏輯單元將向量化的地址數(shù)據(jù)通過并行化的地址總線接口傳送到存儲器組。
[0067]4、在向量數(shù)據(jù)交互時,包括如下步驟:
[0068]向量處理器解析所執(zhí)行的指令內(nèi)容,從向量數(shù)據(jù)寄存器組中選取未經(jīng)排序的向量數(shù)據(jù);
[0069]向量處理器將未經(jīng)排序的向量數(shù)據(jù)送至數(shù)據(jù)交互邏輯單元;
[0070]與向量處理器共享算術(shù)邏輯單元的數(shù)據(jù)交互邏輯單元將未經(jīng)排序的向量數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段以使相關(guān)的計算單元根據(jù)指令格式將所述向量數(shù)據(jù)生成經(jīng)排序后的向量數(shù)據(jù)。
[0071 ] 實施中,對向量數(shù)據(jù)進行交互可以由向量數(shù)據(jù)的交互運算觸發(fā)。
[0072]下面以一個整體的向量數(shù)據(jù)存儲過程用以說明,但該整體的實施流程并不代表向量數(shù)據(jù)存取必須同時具備這些流程,從理論上來說,還可以只選用其中的幾個階段,或者采用其他的組合方式,或者按其他順序?qū)嵤┑龋率龅南蛄繑?shù)據(jù)存儲過程僅用于教導(dǎo)本領(lǐng)域技術(shù)人員具體如何實施本發(fā)明,但不意味僅能使用下述的向量數(shù)據(jù)存儲過程,實施過程中可以結(jié)合實踐需要來確定相應(yīng)的實施過程。
[0073]圖3為向量數(shù)據(jù)存儲的方法實施流程示意圖,如圖所示,向量數(shù)據(jù)存儲可以包括下列步驟:
[0074]步驟301、訪存指令譯碼,地址寄存器操作數(shù)選擇。
[0075]實施中,處理器流水線的譯碼階段解析到向量訪存相關(guān)的指令時,根據(jù)指令的內(nèi)容,從向量化的地址寄存器組中選擇若干個寄存器作為操作數(shù)。
[0076]步驟302、所選操作數(shù)輸出給結(jié)構(gòu)化地址生成邏輯。
[0077]實施中,處理器流水線的譯碼階段將步驟301所選擇的操作數(shù),作為結(jié)構(gòu)化的地址生成邏輯的輸入數(shù)據(jù)。
[0078]步驟303、向量處理器的執(zhí)行單元根據(jù)指令格式對輸入操作數(shù)進行邏輯計算。
[0079]實施中,與處理器共享算術(shù)邏輯單元的結(jié)構(gòu)化的地址生成邏輯負責(zé)將輸入數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段,相關(guān)的計算單元負責(zé)根據(jù)指令格式進行相應(yīng)的計算。
[0080]步驟304、目的地址寄存器中包含一組向量化的地址。這一組地址作為存儲器陣列的有效地址,進行并行訪存操作,返回一組數(shù)據(jù)。[0081]實施中,在處理器流水線的訪存階段,結(jié)構(gòu)化的地址生成邏輯負責(zé)將執(zhí)行階段的計算結(jié)果寫回向量化的地址寄存器組中的目的向量地址寄存器中。
[0082]實施中,目的向量地址寄存器所存儲的地址用于直接訪問存儲器陣列。該向量地址通過向量化的地址總線接口傳送到存儲器陣列,存儲器陣列中的每個存儲器個體都接收到相對應(yīng)地址,并得到地址中的數(shù)據(jù)。
[0083]步驟305、返回的一組數(shù)據(jù),直接組合成一組未經(jīng)排序的向量數(shù)據(jù),并返回給向量處理器的向量數(shù)據(jù)寄存器組。
[0084]實施中,從若干個存儲器個體得到若干個數(shù)據(jù),這些數(shù)據(jù)經(jīng)過簡單組合組成一個未經(jīng)排序的向量數(shù)據(jù),并通過數(shù)據(jù)總線返回給向量處理器的向量數(shù)據(jù)寄存器組。
[0085]步驟306、向量處理器從向量數(shù)據(jù)寄存器組選取未經(jīng)排序的向量數(shù)據(jù)輸出給結(jié)構(gòu)化的數(shù)據(jù)交互邏輯。
[0086]實施中,向量處理器將未經(jīng)排序的向量數(shù)據(jù)送于結(jié)構(gòu)化的數(shù)據(jù)交互邏輯。
[0087]步驟307、向量處理器的執(zhí)行單元根據(jù)指令格式對向量數(shù)據(jù)進行排序操作。
[0088]實施中,與處理器共享算術(shù)邏輯單元的結(jié)構(gòu)化的數(shù)據(jù)交互邏輯負責(zé)將未經(jīng)排序的向量數(shù)據(jù)傳送到處理器執(zhí)行階段,相關(guān)的計算單元負責(zé)根據(jù)指令格式對所述向量數(shù)據(jù)進行倒序、洗牌等操作,生成經(jīng)排序后的向量數(shù)據(jù)。
[0089]步驟308、將經(jīng)過排序的向量數(shù)據(jù)寫回目的向量寄存器。
[0090]實施中,處理器流水線的寫回階段將排序后的向量數(shù)據(jù)寫入目的向量寄存器中,完成此次訪存指令的相關(guān)操作。
[0091]下面再對上面實施例中提到的算術(shù)邏輯單元、流水線等概念進行說明,主要是通過本發(fā)明實施例中提供的向量處理器對指令的具體實施來進行說明。
[0092]圖4為向量處理器流水線結(jié)構(gòu)示意圖,如圖所示,現(xiàn)有的向量處理器大都是流水線結(jié)構(gòu)的,流水線結(jié)構(gòu)可以分為五個單元依次是取指單元、譯碼單元、執(zhí)行單元、訪存單元以及寫回單元。其中:
[0093]取指單元從程序寄存器中讀取指令;譯碼單元接收取指單元中接收指令并進行譯碼,譯碼后的操作數(shù)、操作碼傳輸至后端的執(zhí)行單元,執(zhí)行單元根據(jù)操作碼對操作數(shù)據(jù)進行相應(yīng)的操作。
[0094]執(zhí)行單兀中包括了 ALU (Arithmetic Logic Unit,算術(shù)邏輯單兀),ALU是一個高速的計算器,能進行高速的向量運算。
[0095]訪存單元與寫回單元根據(jù)執(zhí)行單元傳輸?shù)牡刂穼?nèi)部存儲器或外部存儲器進行數(shù)據(jù)訪問讀取、寫數(shù)據(jù)等。
[0096]為便于理解本發(fā)明提供的向量處理器在流水線結(jié)構(gòu)中的【具體實施方式】,下面以具體指令的實施為例進行說明。
[0097]圖5為向量處理器內(nèi)部各信號的流轉(zhuǎn)示意圖,如圖所示,下面介紹三種指令依次在取指單元、譯碼單元、執(zhí)行單元、訪存單元以及寫回單元相應(yīng)的操作的各信號流轉(zhuǎn)。
[0098]指令一:Load ARO, ARl, AR2, VR10。
[0099]此指令意思為讀取外部存儲陣列中的存儲器ARO,ARl中的存儲的數(shù)據(jù),并將讀取的數(shù)據(jù)存儲到VRlO中,且將通過計算得到的向量化地址存儲到向量地址寄存器AR2中。
[0100]取指單元:讀取指令Load ARO,ARl,AR2,VRlO,并將指令傳輸?shù)阶g碼單元;[0101]譯碼單元,接收Load ARO, AR1,AR2,VR10指令;第二譯碼邏輯從所述指令獲取存儲器AR0的地址源操作數(shù)索引0、存儲器AR1的地址源操作數(shù)索引1、寄存器AR2所對應(yīng)的目的地址索引2以及結(jié)構(gòu)化向量訪存標(biāo)記;第一數(shù)據(jù)選擇器根據(jù)結(jié)構(gòu)化向量訪存標(biāo)記將第二譯碼邏輯輸入的地址源操作數(shù)索引0以及地址源操作數(shù)索引1傳輸?shù)较蛄康刂芳拇嫫髦校幌蛄康刂芳拇嫫鞲鶕?jù)地址源操作數(shù)索引0和地址源操作數(shù)索引1返回兩組源向量地址;譯碼單元將目的地址索引以及由向量地址寄存器返回的源向量地址輸入到執(zhí)行單元中。
[0102]執(zhí)行單元:接收源向量地址、目的地址索引以及結(jié)構(gòu)化向量訪存標(biāo)記;由ALU對接收的源向量地址進行地址生成邏輯運算得到向量化地址;執(zhí)行單元再將目的地址索引、結(jié)構(gòu)化向量訪存標(biāo)記以及向量化地址輸入到訪存單元。
[0103]訪存單元:接收執(zhí)行單元的輸出;根據(jù)向量化地址直接訪問外部存儲陣列中的存儲器;與現(xiàn)有技術(shù)不同在于,不再需要由現(xiàn)有技術(shù)中的向量處理器外部的專門的地址生成控制模塊進行地址生成邏輯運算了,同時外部存儲陣列中的存儲器接收到各自相對應(yīng)的地址,返回一組外部數(shù)據(jù);外部數(shù)據(jù)不再進行數(shù)據(jù)拆拼邏輯的數(shù)據(jù)交互運算直接返回到訪存單元;訪存單元在與外部存儲陣列進行通信的同時,將向量化地址根據(jù)目的地址索引寫入到向量地址寄存器中。訪存單元中的第二數(shù)據(jù)選擇器,根據(jù)結(jié)構(gòu)化向量訪存標(biāo)記,將外部數(shù)據(jù)輸入到寫回單元;訪存單元同時將目的索引輸入到寫回單元。
[0104]寫回單元:接收到訪存單元輸入的外部數(shù)據(jù)以及目的索引,根據(jù)目的索引將外部數(shù)據(jù)存儲到寄存器組中的向量數(shù)據(jù)寄存器。
[0105]通過Load AR0,AR1,AR2,VR10的描述可知,本實施例中的向量處理器可以自行的生成向量化地址,直接與外部存儲陣列通信,因此,本實施例中的向量處理器讀取向量數(shù)據(jù)的速度更快,對向量數(shù)據(jù)的處理效率更高。與現(xiàn)有技術(shù)中由外部專門的地址生成控制邏輯進行地址生成邏輯運算傳統(tǒng)的向量處理器相比,節(jié)省了硬件開銷,降低了成本,同時打破了地址生成控制邏輯不能處理太復(fù)雜的邏輯運算的局限。
[0106]指令二:Shuffle VR10,VR11。
[0107]此指令意思為將向量寄存器VR10中的數(shù)據(jù)洗牌后存入到向量寄存器VR11中。
[0108]取指單元:讀取指令Shuffle VR10, VR11,并將該指令輸入到譯碼單元。
[0109]譯碼單元:第一譯碼邏輯讀取指令,并獲取源操作數(shù)VR10的索引10,目的操作數(shù)VR11的索引11 ;譯碼單元中的第一數(shù)據(jù)選擇器根據(jù)結(jié)構(gòu)化向量訪存標(biāo)記將索引10輸入到寄存器組中的向量數(shù)據(jù)寄存器中,向量數(shù)據(jù)寄存器返回一組存儲在向量寄存器VR10中的源向量數(shù)據(jù)。
[0110]執(zhí)行單元:接收譯碼單元輸出的源向量數(shù)據(jù)、目的索引11 ;有設(shè)置在執(zhí)行單元中的ALU根據(jù)洗牌操作碼的不同,對譯碼單元讀取的VR10中寄存的源向量數(shù)據(jù)進行洗牌操作生成向量化數(shù)據(jù),并將向量化數(shù)據(jù)傳輸?shù)皆L存單元中;此外執(zhí)行單元還將目的索引以及結(jié)構(gòu)化向量訪存標(biāo)志與向量化數(shù)據(jù)一同輸出到訪存單元。
[0111]訪存單元:接收執(zhí)行單元輸出的計算結(jié)果、目的索引、結(jié)構(gòu)化向量訪存標(biāo)記等。位于訪存單元中的第二數(shù)據(jù)選擇器,根據(jù)結(jié)構(gòu)化向量訪存標(biāo)記,將其接收到的計算結(jié)構(gòu)中的向量數(shù)據(jù)傳輸?shù)綄懟貑卧辉L存單元同時將目的索引輸入到寫回單元。
[0112]寫回單元:接受訪存單元的各種輸出,根據(jù)目的索引將向量數(shù)據(jù)寫回到向量數(shù)據(jù)寄存器VR11中。[0113]上述各單元通過相應(yīng)的操作完成了向量數(shù)據(jù)交互操作中的洗牌指令ShuffleVR10, VRll0
[0114]Shuffle VR10,VRll是數(shù)據(jù)交互指令中的一種,數(shù)據(jù)交互的其他類型的指令也同樣可以按照指令二的形式由向量處理器流水線結(jié)構(gòu)中的各個單元各司其責(zé)依次完成。由此可見本實施例所述的向量處理器可以自行完成數(shù)據(jù)交互的功能,無需有設(shè)置在向量處理器與外部存儲陣列之間的專門的數(shù)據(jù)拆拼邏輯來完成,且解決了數(shù)據(jù)拆拼模塊帶來的處理速度慢,處理的復(fù)雜度有限的局限。
[0115]指令三:StoreVRll,AR3,AR4。
[0116]此指令的意思為將向量數(shù)據(jù)寄存器VRll中的數(shù)據(jù)洗牌后,存入到外部存儲陣列中的寄存器AR3中,并將通過計算得到的向量地址存儲到寄存器組的向量地址寄存器AR4中。
[0117]取指單元:讀取并輸出指令Store VR11, AR3, AR4 ;
[0118]譯碼單元:第一譯碼邏輯接收指令Store VR11,AR3,AR4,獲取源操作數(shù)VRll的索引11 ;第二譯碼邏輯接收指令Store VRlI, AR3,AR4,獲取地址源操作數(shù)AR3的索引3、目的地址索引4以及結(jié)構(gòu)化向量化標(biāo)記;第一數(shù)據(jù)選擇器根據(jù)結(jié)構(gòu)化向量標(biāo)記依次將源操作數(shù)索引、地址源操作數(shù)索引傳輸?shù)郊拇嫫鹘M;向量數(shù)據(jù)寄存器根據(jù)源操作數(shù)索引輸出源向量數(shù)據(jù);向量地址寄存器組根據(jù)地址源操作數(shù)索引輸出源向量地址;譯碼單元將源向量數(shù)據(jù)、源向量地址、目的地址索引輸入到執(zhí)行單元。
[0119]執(zhí)行單元:由ALU依次接收源向量地址進行操作得到向量化地址;同時執(zhí)行單元將讀取的源向量地址通過計算得到向量化數(shù)據(jù),并將目的地址索引以及結(jié)構(gòu)化向量訪存標(biāo)記輸入到后續(xù)的訪存單元中。
[0120]訪存單元:接收所述向量化地址、目的地址索引、向量化數(shù)據(jù);將向量化地址根據(jù)目的地址索引寫入到向量地址寄存器AR4中,并將向量化數(shù)據(jù)根據(jù)向量化地址寫入外部存儲陣列的存儲器AR3中,完成訪存功能。
[0121]寫回單元:不進行相關(guān)動作。
[0122]在執(zhí)行本指令時,向外部存儲陣列中的存儲器寫入一個數(shù)據(jù),在譯碼單元有第一譯碼邏輯獲取了向量處理器內(nèi)部的數(shù)據(jù)存儲位置的索引,再由第二譯碼邏輯或取外部存儲陣列相對應(yīng)需要存儲向量處理器輸出數(shù)據(jù)的地址;然后將地址通過運算得到向量化地址。顯然,采用本實施例的向量處理器對外部存儲陣列中的存儲器進行寫入數(shù)據(jù)時具有快捷簡便的優(yōu)點。
[0123]由上述實施例可見,在與外部存儲器進行通信時,在指令的取指、譯碼、執(zhí)行、訪存以及寫回的階段的流水線處理中,同步進行了地址生成邏輯的運算和數(shù)據(jù)交互邏輯運算,不需要額外的專門進行地址生成邏輯運算和數(shù)據(jù)交互運算,這樣可以節(jié)省向量數(shù)據(jù)的處理時間,相應(yīng)的不再需要額外的邏輯來將上述運算,節(jié)省了硬件開銷,降低了成本。此外采用此方案進行地址生成邏輯運算和數(shù)據(jù)交互運算可以實現(xiàn)更為高級且更為復(fù)雜的運算,使用性能更高。
[0124]實施中,還可以在進行從外部存儲陣列中讀取數(shù)據(jù)或?qū)⑾蛄炕瘮?shù)據(jù)寫入到外部存儲陣列的時候,與外部存儲陣列進行通信的向量化地址并聯(lián)向外部陣列輸出,同時訪問多個外部存儲陣列中的若干個存儲器。采用向量化地址并聯(lián)輸出,同時訪問多個存儲器可以進一步提高了向量數(shù)據(jù)處理方法與外部存儲陣列通信的時序性能,速度更快。
[0125]由上述實施例可見,在本發(fā)明實施例提供的向量處理器及其對向量數(shù)據(jù)的存取方法中,將存儲器系統(tǒng)中的地址生成部件與處理器流水線統(tǒng)一設(shè)計、將數(shù)據(jù)交互部件與處理器流水線統(tǒng)一設(shè)計、以向量化的地址總線直接完成對存儲器組訪問,以及以結(jié)構(gòu)化的地址生成邏輯和結(jié)構(gòu)化的數(shù)據(jù)交互邏輯為主要特征的向量數(shù)據(jù)訪存方法。
[0126]本發(fā)明實施例提供的向量處理器除了完成普通向量處理器的所有功能外,還可以實現(xiàn)以向量化地址直接與外部存儲陣列進行通信,無需再由專門的地址生成控制邏輯、數(shù)據(jù)拆拼邏輯來進行地址生成運算和數(shù)據(jù)交互運算,具有數(shù)據(jù)處理快,效率高的特點。本發(fā)明實施例提供的向量處理器自身完成地址生成邏輯運算以及數(shù)據(jù)交互邏輯運算,由于執(zhí)行單元中的ALU功能處理強大,處理速度快而且較傳統(tǒng)的向量處理器可以處理更加復(fù)雜的地址生成邏輯運算和數(shù)據(jù)交互邏輯運算。同時也節(jié)省了專門設(shè)立的地址生成控制邏輯以及數(shù)據(jù)拆拼邏輯硬件投入成本。本發(fā)明實施例提供的向量處理器還采用向量化地址接口為向量處理器的地址輸出接口,可以向外部存儲陣列并聯(lián)輸出向量化地址,同時與外部存儲陣列中的若干個存儲器通信,進一步提高了向量處理器的訪存速度。
[0127]本發(fā)明實施例提供的對向量數(shù)據(jù)的存取方法,在譯碼階段讀取地址源操作數(shù)并讀取源向量地址或讀取源操作數(shù)并讀取源向量數(shù)據(jù),執(zhí)行階段根據(jù)源向量地址生成向量化地址或根據(jù)源向量數(shù)據(jù)生成向量化地址,訪存階段可以以向量化地址直接與外部存儲陣列中的存儲器進行通信,需要拆拼的數(shù)據(jù)可以完成讀取后再進行數(shù)據(jù)交互,具有向量數(shù)據(jù)處理速度快,效率高的特點。相對于傳統(tǒng)方法可以進行更加復(fù)雜的地址生成邏輯運算以及數(shù)據(jù)交互邏輯運算。在進行數(shù)據(jù)存儲、讀取、交互的時候不需要專門的地址生成控制邏輯進行地址生成邏輯運算以及數(shù)據(jù)拆拼邏輯進行數(shù)據(jù)交互運算,具體的應(yīng)用中節(jié)省了開銷。還能向量化地址并聯(lián)輸出,同步同時可以與存儲陣列中的若干個存儲器通信,進一步提高了向量數(shù)據(jù)的處理速度。
[0128]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0129]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種包括算術(shù)邏輯單元的向量處理器,其特征在于,還包括:地址生成邏輯單元、數(shù)據(jù)交互邏輯單元、地址寄存器組以及地址總線接口、數(shù)據(jù)總線接口,其中:地址寄存器組,用于存儲操作數(shù)以及向量化的地址數(shù)據(jù),并將向量化的地址數(shù)據(jù)通過地址總線接口傳送到存儲器組,所述向量化的地址數(shù)據(jù)用于訪問存儲器組;地址生成邏輯單元,用于通過算術(shù)邏輯單元,根據(jù)操作數(shù)計算出向量化的地址數(shù)據(jù)并存入地址寄存器組;數(shù)據(jù)交互邏輯單元,用于通過算術(shù)邏輯單元,將通過數(shù)據(jù)總線接口從存儲器組存取的向量數(shù)據(jù)進行拆拼運算。
2.如權(quán)利要求1所述的向量處理器,其特征在于,所述地址總線接口是將若干個向量化地址并聯(lián)向外輸出的向量化地址接口。
3.一種用如權(quán)利要求1-2任一所述的向量處理器進行向量數(shù)據(jù)存取的方法,其特征在于,在向量化的地址數(shù)據(jù)生成時,包括如下步驟:向量處理器在處理器流水線的譯碼階段解析到向量訪存相關(guān)的指令時,根據(jù)指令的內(nèi)容,從地址寄存器組中選擇寄存器作為操作數(shù);向量處理器將所選擇的操作數(shù)作為地址生成邏輯單元的輸入數(shù)據(jù); 與向量處理器共享算術(shù)邏輯單元的地址生成邏輯單元將輸入數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段以使相關(guān)的計算單元根據(jù)指令格式進行相應(yīng)的計算。
4.如權(quán)利要求3所述的方法,其特征在于,所述向量化的地址數(shù)據(jù)生成由對存儲器組的訪問行為觸發(fā)。
5.如權(quán)利要求3或4所述的方法,其特征在于,對地址寄存器組中的寄存器的操作位于向量處理器的流水線結(jié)構(gòu)中。
6.一種用如權(quán)利要求1-2任一所述的向量處理器進行向量數(shù)據(jù)存取的方法,其特征在于,在向量化的地址數(shù)據(jù)寫回時,包括如下步驟:在處理器流水線的訪存階段,地址生成邏輯單元將執(zhí)行階段的計算結(jié)果寫回地址寄存器組中。
7.一種用如權(quán)利要求1-2任一所述的向量處理器進行向量數(shù)據(jù)存取的方法,其特征在于,在向量處理器對存儲器組的向量數(shù)據(jù)進行存取時,包括如下步驟:地址生成邏輯單元將向量化的地址數(shù)據(jù)通過并行化的地址總線接口傳送到存儲器組。
8.一種用如權(quán)利要求1-2任一所述的向量處理器進行向量數(shù)據(jù)交互的方法,其特征在于,在對向量數(shù)據(jù)進行交互時,包括如下步驟:向量處理器解析所執(zhí)行的指令內(nèi)容,從向量數(shù)據(jù)寄存器組中選取未經(jīng)排序的向量數(shù)據(jù);向量處理器將未經(jīng)排序的向量數(shù)據(jù)送至數(shù)據(jù)交互邏輯單元;與向量處理器共享算術(shù)邏輯單元的數(shù)據(jù)交互邏輯單元將未經(jīng)排序的向量數(shù)據(jù)傳送到處理器流水線的執(zhí)行階段以使相關(guān)的計算單元根據(jù)指令格式將所述向量數(shù)據(jù)生成經(jīng)排序后的向量數(shù)據(jù)。
9.如權(quán)利要求8所述的方法,其特征在于,所述對向量數(shù)據(jù)進行交互由向量數(shù)據(jù)的交互運算觸發(fā)。
10.一種向量數(shù)據(jù)存取裝置,其特征在于,包括存儲器組以及包括如權(quán)利要求1至2任一所述的向量處理器,其中: 存儲器組通過地址總線接口、數(shù)據(jù)總線接口與向量處理器相連,通過地址總線接口傳送需存取的向量數(shù)據(jù)的向量化的地址數(shù)據(jù),通過數(shù)據(jù)總線接口傳送需存取的向量數(shù)據(jù)。
【文檔編號】G06F9/30GK103699360SQ201210366032
【公開日】2014年4月2日 申請日期:2012年9月27日 優(yōu)先權(quán)日:2012年9月27日
【發(fā)明者】石晶林, 朱子元, 唐杉, 蘇泳濤 申請人:北京中科晶上科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 东乡族自治县| 三原县| 襄垣县| 平阴县| 扶沟县| 潼南县| 理塘县| 澎湖县| 崇左市| 南溪县| 科技| 漳平市| 玉龙| 塔城市| 建平县| 周口市| 扶风县| 洪洞县| 慈溪市| 张家港市| 金川县| 西青区| 罗源县| 宜章县| 台南市| 元氏县| 渭源县| 健康| 和龙市| 绵阳市| 康马县| 炉霍县| 莆田市| 娄烦县| 清水县| 扎兰屯市| 敦化市| 房山区| 拜城县| 深泽县| 田林县|