專利名稱:雙模計算機處理器中索引式載入及儲存操作的系統(tǒng)及方法
技術領域:
本發(fā)明是有關于計算機系統(tǒng),且特別是有關于可在使用垂直及水平處理模式的計算機環(huán)境中,提供索引式和間接載入及儲存操作的方法及系統(tǒng)。
背景技術:
如眾所周知,目前已發(fā)展出一種單指令多數(shù)據(jù)(Single-Instruction,Multiple Data,SIMD)架構,以改善多維度計算(multi-dimensionalcomputations)的效率。一個典型SIMD的架構可讓一個指令(instruction)同時在多個操作數(shù)(operands)上運算。較明確地說,SIMD架構會善用將在一個寄存器(register)或存儲器位置內(nèi)的多個數(shù)據(jù)元件(data elements)封包在一起(packing)的優(yōu)點。利用平行方式的硬件執(zhí)行,可用一個指令執(zhí)行多個運算(operations),因此可通過降低程序大小及控制復雜度,而大量提升其性能及簡化其硬件設計。已知的SIMD架構主要是執(zhí)行垂直運算,也就是在個別操作數(shù)中的對應元件會以平行及獨立的方式運算。
雖然目前使用的多種應用程序皆可善用這種垂直運算的優(yōu)點,但仍有部分重要的應用程序需要在執(zhí)行垂直運算之前,重新安排其數(shù)據(jù)元件,才能實現(xiàn)該應用程序的功能。舉例而言,許多常用在圖形及信號處理中的應用程序,都是這種類型的應用程序。相較于可善用垂直運算優(yōu)點的應用程序而言,當使用水平模式運算時,某些應用程序?qū)⒏鼮橛行А?br>
舉例而言,在許多運算中,可通過使用將圖形數(shù)據(jù)部分在獨立的平行通道(parallel channels)中處理的垂直處理技術,而提升圖形管路(graphicspipeline)的性能。然而,有些運算則較適合使用將圖形數(shù)據(jù)方塊以串行方式處理的水平運算技術。垂直模式及水平模式處理兩者又合稱雙模式(dualmode),其較困難的部分為數(shù)據(jù)載入(loading)及儲存(storing)操作。當使用其中操作數(shù)是當成相對地址位置(relative address locations)的索引式(indexed)或間接式運算(indirect operations)的應用程序時,這個部分將更為困難。舉例而言,索引式運算一般需要一或多個獨立運算,才能完成一個基本的載入或儲存操作。因此,上述的計算機處理功能會使用大量的數(shù)據(jù)及指令,因此極需一種可在雙模式計算機處理環(huán)境中,以更有效率的方式提供索引式載入及儲存操作的系統(tǒng)、方法、及裝置。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一個計算機系統(tǒng),該計算機系統(tǒng)包括陣列邏輯電路(array logic circuit)、索引邏輯電路(index logic circuit)、載入邏輯電路(loading logic circuit)、轉(zhuǎn)置邏輯電路(transpositionlogic circuit)、以及寄存器邏輯電路(register logic circuit)。其中,陣列邏輯電路用來儲存多個向量(vectors),且每一該些向量都包括水平陣列(horizontal array)。索引邏輯電路用來儲存相對于每一該些向量基本地址(base address)的偏差數(shù)據(jù)(offset data)。載入邏輯電路用來獲取每一該些向量。轉(zhuǎn)置邏輯電路使用偏差數(shù)據(jù),將該些向量轉(zhuǎn)置成(transpose)垂直架構。寄存器邏輯電路用來接收該些向量,且其中每一該些向量都包括垂直陣列(vertical array)。
本發(fā)明實施例還提供一種在雙模式計算機處理器中執(zhí)行索引式載入的方法。該方法包括從陣列中獲取多個向量,其中該陣列包括多個陣列列(arrayrows)及多個陣列行(array columns),且每一該些向量是儲存在該陣列的其中一陣列列中;產(chǎn)生多個偏差值(offset values),其中每一偏差值是對應于相對于基本地址的其中一列的位置;使用該些偏差值,將該些向量轉(zhuǎn)置成垂直方向;以及儲存該些轉(zhuǎn)置過的向量,其中每一該些向量對應于其中一行。
本發(fā)明實施例還提供一種在雙模式處理環(huán)境中執(zhí)行索引式載入的計算機處理裝置。該計算機處理裝置包括數(shù)據(jù)陣列,其至少具有一維度(deimension),用來儲存多個數(shù)據(jù)組(data sets);索引寄存器(indexregister),用來儲存對應于在數(shù)據(jù)陣列之內(nèi)的地址的多個偏差值;累加器(accumulator),用來從該陣列接收多個數(shù)據(jù)組;以及目的寄存器(destination register),用來接收在轉(zhuǎn)置過架構中的該些數(shù)據(jù)組。
本發(fā)明實施例還提供一種在雙模式處理環(huán)境中執(zhí)行索引式載入的計算機硬件。該計算機硬件包括一種儲存裝置,用來將多個向量儲存在第一寄存器中,其中每一該些向量都包括垂直排列的多個元件(components);一種獲取裝置,用來從第一寄存器中獲取該些向量;一種產(chǎn)生裝置,用來產(chǎn)生對應于該些向量的多個偏差值;以及一種接收裝置,用來在第二寄存器中接收該些向量,其中在每一該些向量內(nèi)的每一該些元件是使用其所對應的其中一偏差值所接收。
本發(fā)明實施例還提供一種在雙模式處理環(huán)境中執(zhí)行索引寄存器載入操作的方法,包括從第一寄存器讀取多個相對數(shù)據(jù)地址值;產(chǎn)生多個有效地址值,其通過將該些相對數(shù)據(jù)地址值與一固定地址值相加所產(chǎn)生;載入對應于該些有效地址值的多個向量,其中每一該些向量都包括多個向量元件;經(jīng)由將與該些向量相關的每一列儲存為一行,以及將與該些向量相關的每一行儲存為一列,而轉(zhuǎn)置該些向量;以及將該些轉(zhuǎn)置過的向量,儲存在第二寄存器中。
本發(fā)明實施例還提供一種在雙模式處理環(huán)境中執(zhí)行索引寄存器儲存操作的方法,包括轉(zhuǎn)置儲存在第一寄存器的多個同方向連續(xù)地址中的多個向量;從第二寄存器讀取多個相對地址值;使用該些相對地址值,產(chǎn)生多個有效地址值;以及將該些轉(zhuǎn)置過的向量,儲存在對應于該些有效地址值的數(shù)據(jù)儲存元件中。
為讓本發(fā)明的上述和其它目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,做詳細說明如下。
圖1是繪示一個已知的圖形管路的方塊圖。
圖2是繪示一個用來說明執(zhí)行索引式載入及儲存操作的系統(tǒng)實施例的方塊圖。
圖3是繪示一個用來說明本發(fā)明一實施例的計算機處理裝置的方塊圖。
圖4是繪示一個用來說明當成垂直運算的索引操作實施例的方塊圖。
圖5是繪示一個用來說明索引寄存器載入操作實施例的方塊圖。
圖6是繪示一個用來說明執(zhí)行索引文件中的垂直運算的索引寄存器載入操作實施例的方塊圖。
圖7是繪示一個用來說明另一個索引寄存器載入操作實施例的方塊圖。
圖8是繪示一個用來說明索引寄存器儲存操作實施例的方塊圖。
圖9是繪示一個用來說明本發(fā)明一實施例的方法的方塊圖。
圖10是繪示一個用來說明本發(fā)明一實施例的計算機硬件的方塊圖。
10主機(圖形應用程序界面)14剖析器(parser)16頂點遮影器(vertex shader)18點陣轉(zhuǎn)化器(rasterizer)20Z-測試22像素遮影器(pixel shader)24畫面緩沖器(frame buffer)200系統(tǒng)210寄存器邏輯電路220索引邏輯電路230轉(zhuǎn)置邏輯電路240載入邏輯電路250陣列邏輯電路252向量300計算機處理裝置310數(shù)據(jù)陣列320累加器330索引寄存器340目的寄存器410陣列412向量414基本地址416偏差值418維度420索引寄存器430目的寄存器509基本值510陣列511維度
512,513,514,515向量516,517,518,519偏差值520索引寄存器530目的寄存器540累加器550轉(zhuǎn)置邏輯電路609維度610寄存器文件611垂直通道612,613,614,615向量616,617,618,619偏差值620索引寄存器630目的寄存器710寄存器712地址值720原始數(shù)據(jù)儲存裝置722有效地址724向量730暫時數(shù)據(jù)儲存位置736向量元件740轉(zhuǎn)置功能750目的寄存器752寄存器地址810寄存器812向量814寄存器地址816向量元件820轉(zhuǎn)置功能822向量8254×4矩陣830數(shù)據(jù)儲存元件
832有效地址840獨立寄存器842相對地址值910獲取方塊920產(chǎn)生方塊930轉(zhuǎn)置方塊940儲存方塊1000計算機硬件1010將向量儲存在原始寄存器1020從原始寄存器獲取向量1030產(chǎn)生對應于相對地址的偏差值1040在目的寄存器中接收向量具體實施方式
以下參考所附繪圖,詳細說明本發(fā)明實施例。雖然本發(fā)明是以所附繪圖說明,然本發(fā)明并未受限于在此所述的實施例。在不脫離本發(fā)明的精神和范圍內(nèi),本發(fā)明當可做些許的更動與潤飾,因此本發(fā)明的保護范圍當視所附的申請專利范圍所界定者為準。
當知本發(fā)明所附繪圖是供用來說明本發(fā)明實施例的特性及功能。從本發(fā)明說明中可知,本發(fā)明亦可使用各種不同方式的實施例實現(xiàn),只要其在不脫離本發(fā)明的精神和范圍之內(nèi)即可。
綜合上述,本發(fā)明是提供可在雙模式計算機環(huán)境中提供索引式載入及儲存操作的裝置、系統(tǒng)及方法。雖然本發(fā)明實施例是以計算機圖形系統(tǒng)的意涵呈現(xiàn),本領域技術人員當知在此所述的裝置、系統(tǒng)及方法是可應用于使用垂直模式及水平模式處理的任何計算機系統(tǒng)中。
圖2是繪示一個用來說明執(zhí)行索引式載入及儲存操作的系統(tǒng)200的實施例的方塊圖。請參考圖2所示,系統(tǒng)200是以計算機系統(tǒng)或類似的處理裝置而運作。在本發(fā)明的部分實施例中,系統(tǒng)200可以圖形處理系統(tǒng)來執(zhí)行,然本領域技術人員當知本發(fā)明在此所揭露的系統(tǒng)及方法,并不受限于圖形處理。系統(tǒng)200包括寄存器邏輯電路210、索引邏輯電路220、轉(zhuǎn)置邏輯電路230、載入邏輯電路240、以及陣列邏輯電路250。其中,寄存器邏輯電路210是做為暫時數(shù)據(jù)儲存及管理之用。一般而言,寄存器是代表在處理器中的儲存區(qū),舉例而言,用來儲存包括控制/狀態(tài)信息、整數(shù)數(shù)據(jù)、浮點數(shù)據(jù)、以及封包數(shù)據(jù)的各種信息。索引邏輯電路220用來儲存及管理與相對地址相關的偏差數(shù)據(jù)。轉(zhuǎn)置邏輯電路230用來將雙模式環(huán)境中的數(shù)據(jù)從一方向轉(zhuǎn)置成另一方向。舉例而言,可將以水平方式排列的數(shù)據(jù),轉(zhuǎn)置成以垂直方式排列的數(shù)據(jù)。對于以群組方式組合而成的數(shù)據(jù)矩陣(data matrix)的多個向量而言,是通過將該數(shù)據(jù)矩陣中的列及行互相對調(diào)的方式,而完成其轉(zhuǎn)置操作。載入邏輯電路240用來從數(shù)據(jù)陣列中獲取數(shù)據(jù),且該數(shù)據(jù)系由陣列邏輯電路250所提供。此外,在本發(fā)明部分實施例中,陣列邏輯電路250包含多個水平排列的向量252。
圖3是繪示用來說明本發(fā)明一實施例的計算機處理裝置的方塊圖。計算機處理裝置300包括數(shù)據(jù)陣列310、累加器320、索引寄存器330、以及目的寄存器340。其中,數(shù)據(jù)陣列310用來儲存向量數(shù)據(jù)。在本發(fā)明部分實施例中,向量數(shù)據(jù)是使用相對地址定位(relative addressing)所存取,因此又稱為索引式或間接地址定位(indexed or indirect addressing)。累加器320接收向量數(shù)據(jù),做為后續(xù)處理準備之用。累加器320為實際存儲器地址,或在部分實施例中,可以計算機處理裝置300的邏輯電路中實現(xiàn)。索引寄存器330包含與從累加器320所接收的向量數(shù)據(jù)相關的索引地址的偏差數(shù)據(jù)。目的寄存器340會接收累加器320所提供的向量數(shù)據(jù)與儲存在索引寄存器330中的偏差數(shù)據(jù)。
圖4是繪示用來說明當成垂直運算的索引操作實施例的方塊圖。請參考圖4所示,數(shù)據(jù)是儲存在陣列410中,以做為后續(xù)處理之用。在部分實施例中,陣列410為常數(shù)緩沖器陣列(constant buffer array),用來儲存對應于計算機圖形處理的向量數(shù)據(jù)。舉例而言,向量數(shù)據(jù)包含做為向量的每一維度(dimension)418的系數(shù)值(coefficient value)。本領域技術人員當知,陣列410亦可用來儲存各種不同應用程序及處理不同階段的數(shù)據(jù)。如圖4所示,儲存在陣列410中的向量412具有一個其值為+7的對應偏差值416。偏差值416是代表在對應向量所在的陣列410中,從基本地址414算起的地址線的個數(shù)。其中,基本地址414為常數(shù)地址,用來連接定義有效地址(effectiveaddress)的一個或多個偏差值。雖然基本地址414可在陣列中的常數(shù)地址位置,但是基本地址414亦可在相對于即將被處理的數(shù)據(jù)組的常數(shù)相對位置。偏差值416是儲存在索引寄存器420中,用來決定在陣列410內(nèi)的向量412的有效地址。此外,目的寄存器430會從陣列410接收向量數(shù)據(jù)。在本實施例中,陣列410及目的寄存器430兩者都以水平模式處理而水平排列。
圖5是繪示用來說明索引寄存器載入操作的實施例的方塊圖。請參考圖5所示,數(shù)據(jù)是儲存在陣列510中,做為后續(xù)處理之用。在部分實施例中,陣列510為常數(shù)緩沖器陣列,用來儲存對應于計算機圖形處理的向量數(shù)據(jù)。舉例而言,向量數(shù)據(jù)包含做為向量的每一維度511的系數(shù)值。如圖5所示,儲存在陣列510中的向量515、514、513、及512具有其值為+3、+7、+9、及+12的對應偏差值516、517、518、及519。偏差值516-519代表在對應向量所在的陣列510中,從基本值509往上算起的地址線的個數(shù)。舉例而言,向量515是位于基本地址上方三條地址線之處,所以其對應偏差值等于+3。其中,偏差值516-519是由索引寄存器520所決定,且是用來計算在陣列510中的向量512、513、514、及515有效地址。雖然在此所述的偏差值516-519為正值,但本領域技術人員當知只要在不脫離本發(fā)明的精神和范圍內(nèi),偏差值亦可為負值。
累加器540會收集向量512-515。其中,累加器540使向量512-515可保持與其儲存在陣列510中時相同的水平排列。如上所述,累加器540可為存儲器位置,或可由處理器內(nèi)的邏輯電路而實現(xiàn)。轉(zhuǎn)置邏輯電路550會運用在所累積的向量數(shù)據(jù)上,以產(chǎn)生用來載入及儲存在目的寄存器530的垂直排列。在目的寄存器530中的垂直排列架構,可讓每一行都可分享對應于特定向量的偏差值,且每一列都會組成不同向量元件。在本發(fā)明一實施例中,每一行都會組成用于單一處理的數(shù)據(jù),又稱為處理線(process thread)。這種垂直架構有利于包含多重數(shù)據(jù)元件處理的垂直SIMD計算,例如圖像處理、3-D圖形處理、以及多維度數(shù)據(jù)處理的各種計算。
圖6是繪示用來說明執(zhí)行索引文件中的垂直運算的索引寄存器載入操作的實施例的方塊圖。請參考圖6所示,數(shù)據(jù)系儲存在寄存器文件610中,做為后續(xù)處理之用。在部分實施例中,寄存器文件610為暫時或共同寄存器文件(common register file),用來儲存對應于計算機圖形處理的向量數(shù)據(jù)。舉例而言,向量數(shù)據(jù)包含做為向量的每一維度609的系數(shù)值。如圖6所示,向量612、613、614、及615系儲存在寄存器文件610中,且每一向量都儲存在多個垂直通道(vertical channels)611的其中一個不同通道中。此外,向量612-615具有對應偏差值616、617、618、及619。舉例而言,在通道1中的向量612,用來建立做為其它向量612-614的相對地址定位所需的基本地址616,以使得向量612的偏差值616等于零??蛇x定偏差值616-619,以用來驗證在最接近基本地址616的每一個向量內(nèi)的元件。此外,偏差值616-619是儲存在索引寄存器620中,以使得每一偏差值都可儲存在對應于該向量所儲存的寄存器文件垂直信道611的索引寄存器行中。目的寄存器630會用與寄存器文件610一致的垂直架構方式,來接收向量612。當每一向量元件都已被載入目的寄存器630之后,該向量的索引值即會遞增,以載入下一個向量元件。在此實施例中,寄存器文件可能需要讀取每一向量中的每一個元件,所以在四個其中每一向量都包含四個元件的向量中,共需使用16個寄存器,才能讀取該寄存器文件。
圖7是繪示一個用來說明另一個索引寄存器載入操作實施例的方塊圖。請參考圖7所示,寄存器710包含四個地址值(address values)712,其包含設定值R0、R1、R2、及R3。有效地址722是通過將地址值712加入基本地址而產(chǎn)生,而在該基本地址中,有效地址722可驗證對應向量724的位置。向量724是儲存在原始數(shù)據(jù)儲存裝置720中,該裝置720可為,但并不限定于存儲器或寄存器。對應于有效地址722的向量724會載入暫時數(shù)據(jù)儲存位置730。其中,暫時數(shù)據(jù)儲存位置730可為物理存儲器位置、寄存器、或可當成一個在程序邏輯中的虛擬裝置。
在暫時數(shù)據(jù)儲存位置730中的向量724的排列方式是與在原始數(shù)據(jù)儲存裝置720中的水平架構相同,以使得每一行都可包含每一向量的個別向量元件736。其中每一向量都具有四個向量元件736的四個向量724的架構,會在暫時數(shù)據(jù)儲存位置730,建立一個4×4矩陣。接下來,在4×4矩陣上,會執(zhí)行一個轉(zhuǎn)置功能740,并且將結(jié)果儲存在目的寄存器750中。其中,四個向量724是以垂直排列方式,儲存在目的寄存器750的連續(xù)寄存器地址752中,使每一行都可包含一個向量724,且每一列都可包含所有向量724的相同元件值736。以此方式所架構的向量,可更有效地執(zhí)行垂直模式處理。
圖8是繪示一個用來說明索引寄存器儲存操作實施例的方塊圖。請參考圖8所示,寄存器810包含四個連續(xù)寄存器地址814。其中,四個向量812的向量元件816是儲存在寄存器810中,使每一寄存器地址814都可對應于四個向量812的相同向量元件816。每一向量812都是以垂直方式排列在寄存器810中。此外,每一具有四個向量元件816的四個向量812的架構,會建立一個4×4矩陣。接下來,4×4矩陣會經(jīng)過一個轉(zhuǎn)置功能820,以產(chǎn)生一個具有水平排列向量822的4×4矩陣825。水平排列的向量822,會儲存在數(shù)據(jù)儲存元件830的對應有效地址832。其中,數(shù)據(jù)儲存元件830為可用來儲存數(shù)據(jù)的任何可尋址元件,包含但并非限定為存儲器或數(shù)據(jù)寄存器。有效地址832是通過從獨立寄存器840中獲取相對地址值842所決定。
綜合上述,圖5-8是用來說明本發(fā)明方法及系統(tǒng)實施例,但并非限定于此。其中,圖5所繪示的水平排列的數(shù)據(jù)是儲存在一陣列中,且該陣列包含但并非限定為常數(shù)緩沖器。此外,圖6-8所示的數(shù)據(jù)是儲存在寄存器中。同理,圖6及7所示為垂直排列的由目的寄存器所接收的數(shù)據(jù),圖6的數(shù)據(jù)剛開始是垂直排列,因此不需轉(zhuǎn)置。然而,圖7的數(shù)據(jù)剛開始是水平排列,所以在被目的寄存器接收之前,必須先經(jīng)過轉(zhuǎn)置。相較于圖5-7而言,圖8所示為原先在寄存器中,且后來由數(shù)據(jù)儲存元件所接收的數(shù)據(jù)。本領域技術人員當知上述實施例僅為說明本發(fā)明之用,而并非用來限制本發(fā)明的精神與范圍。
圖9是繪示一個用來說明本發(fā)明一實施例的方法的方塊圖。首先,在方塊910中,會從陣列中獲取多個向量。其中,該些向量是以水平架構方式儲存在陣列中,使每一向量都可儲存在陣列的不同列中。該些向量包含多個向量元件,且每一向量元件是儲存在陣列的不同行中。在本發(fā)明部分實施例中,該些向量可為位置向量(position vectors),且可包含X、Y、Z、及W方向的多個元件。獲取方塊910可包含一個累加功能,用來收集經(jīng)過驗證操作做為處理的向量。累加功能可通過將向量數(shù)據(jù)儲存在存儲器位置,或是將向量數(shù)據(jù)配置在處理器邏輯電路中而實現(xiàn)。獲取方塊910的執(zhí)行方式可為讀取整個數(shù)據(jù)列,再存取每一向量陣列一次。
相對于每一向量的相對地址的偏差值,系在方塊920中所產(chǎn)生。該些偏差值用來提供做為相對于基本地址的每一個向量的陣列位置信息。其中,基本地址可為在陣列內(nèi)的固定參考值,或可被指定為做為特定向量組的陣列位置。任何索引式或間接式運算都會使用基本地址與偏差值的組合,以決定確實數(shù)據(jù)位置。
所獲取與累積的水平排列的向量,接下來會在方塊930中,轉(zhuǎn)置成垂直排列。轉(zhuǎn)置操作會將水平方向的數(shù)據(jù)列,轉(zhuǎn)換成垂直方向的數(shù)據(jù)行,以使得轉(zhuǎn)置過的數(shù)據(jù)中的每一行,都可代表其中之一向量。因此,轉(zhuǎn)置過數(shù)據(jù)的每一列,都可代表向量的特別元件。在垂直架構中,每一偏差值都對應于其中一數(shù)據(jù)行或向量。在經(jīng)過轉(zhuǎn)置之后,垂直排列的數(shù)據(jù),會在方塊940中,儲存在目的寄存器中。在目的寄存器中垂直排列的數(shù)據(jù),可讓數(shù)據(jù)以多重并行線的方式處理。
圖10是繪示一個用來說明本發(fā)明一實施例的計算機硬件的方塊圖。請參考圖10所示,計算機硬件1000包括方塊1010。其中,方塊1010可為用來將向量儲存在原始寄存器中的硬件、軟件、或兩者的組合。原始寄存器可為寄存器文件,包含用來儲存向量數(shù)據(jù)的暫時或共同寄存器。舉例而言,向量數(shù)據(jù)包含向量的每一維度的系數(shù)值。該些向量是儲存在原始寄存器中,以使得每一儲存向量都具有垂直架構排列的向量元件。計算機硬件1000還包括方塊1030。其中,方塊1030可為用來產(chǎn)生對應于向量相對地址的偏差值的硬件、軟件、或兩者的組合。如上所述,偏差值用來定義基本地址與在原始寄存器中的向量位置之間的差異。在本發(fā)明的部分實施例中,其中向量位置會當成基本地址,以使得該向量的偏差值等于零。偏差值可儲存在如索引寄存器的特定寄存器中。
計算機硬件1000還包括方塊1020。其中,方塊1020可為用來從原始寄存器獲取向量,以及在方塊840所示的目的寄存器中接收向量的硬件、軟件、或兩者的組合。雖然接收向量與產(chǎn)生偏差值為完全獨立的兩個操作,但必須結(jié)合這兩個操作的結(jié)果,才可在目的寄存器中接收向量。因為目的寄存器會以垂直架構的方式儲存向量,而且原始寄存器也使用垂直架構,所以并不需要轉(zhuǎn)置。
本發(fā)明所述的方法可以硬件、軟件、固件、或其組合方式而實現(xiàn)。在本發(fā)明部分實施例中,本發(fā)明所述的方法是以儲存在存儲器,且可由適當指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件而實現(xiàn)。如果本發(fā)明所述的方法為以硬件實現(xiàn),則在本發(fā)明另一實施例中,該邏輯電路可由本領域技術人員所熟知的下列技術的其中之一或組合實現(xiàn)離散邏輯電路(discrete logic circuit(s)),其具有在數(shù)據(jù)信號上執(zhí)行邏輯功能的邏輯門;特定用途集成電路(applicationspecific integrated circuit,ASIC),其具有適當?shù)慕M合邏輯門;可程序化邏輯陣列(programmable gate array(s)),PGA);場效可程序化邏輯陣列(field programmable gate array),F(xiàn)PGA)…等等。
當知在流程圖中所陳述的任何處理或方塊,是代表模塊、程序代碼片段、或程序代碼部分,其可包含一或多個用來實現(xiàn)在該處理中的特定邏輯功能或步驟。其它實施方式亦包含在本發(fā)明實施例的范疇之內(nèi),且其功能可能是用與在此所述或所示的方法的不同順序來實現(xiàn)。本領域技術人員當知其中包含根據(jù)所引用的功能,可用完全平行或相反的順序?qū)崿F(xiàn)。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何本領域技術人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可做些許的更動與潤飾,因此本發(fā)明的保護范圍當視所附的權利要求范圍所界定者為準。
權利要求
1.一種計算機系統(tǒng),包括陣列邏輯電路,用來儲存多個向量,其中每一該些向量都包括水平陣列;索引邏輯電路,用來儲存偏差數(shù)據(jù),且該偏差數(shù)據(jù)相對于一基本地址,對應于每一該些向量;載入邏輯電路,用來獲取每一該些向量;轉(zhuǎn)置邏輯電路,使用該偏差數(shù)據(jù),將該些向量轉(zhuǎn)置成垂直架構;以及寄存器邏輯電路,用來接收該些轉(zhuǎn)置過的向量。
2.根據(jù)權利要求1所述的計算機系統(tǒng),其中該寄存器邏輯電路包括多個垂直通道,用于多個平行處理,每一該些垂直信道都接收對應的轉(zhuǎn)置過向量。
3.根據(jù)權利要求2所述的計算機系統(tǒng),其中該些垂直通道的個數(shù)等于該些向量的個數(shù)。
4.根據(jù)權利要求1所述的計算機系統(tǒng),其中該陣列邏輯電路還被用來儲存在一列中的每一該些向量,其中該列是對應于該些偏差數(shù)據(jù)的其中之一。
5.根據(jù)權利要求4所述的計算機系統(tǒng),其中該寄存器邏輯電路還被用來儲存在一行中的每一該些向量;其中該行是對應于該些偏差數(shù)據(jù)的其中之一。
6.根據(jù)權利要求1所述的計算機系統(tǒng),其中該些向量包括多個位置向量。
7.根據(jù)權利要求1所述的計算機系統(tǒng),其中該索引邏輯電路還被用來產(chǎn)生多個有效地址值,其通過將多個相對數(shù)據(jù)地址值與一固定地址值相加所產(chǎn)生。
8.一種在雙模式計算機處理器中執(zhí)行索引式載入的方法,包括從陣列獲取多個向量,該陣列包括多個陣列列及多個陣列行,且該陣列用來將每一該些向量儲存在該些陣列列的其中之一;產(chǎn)生多個偏差值,每一該些偏差值是對應于相對于基本地址的該些列的其中之一的位置;使用該些偏差值,將該些向量轉(zhuǎn)置成垂直方向;以及儲存該些轉(zhuǎn)置過的向量,其中每一該些向量是對應于該些行的其中之一。
9.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中該產(chǎn)生步驟包括至少如下步驟之一將每一該些偏差值,指定給該些寄存器行的其中之一;將該些偏差值儲存在索引寄存器中。
10.根據(jù)權利要求9所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中每一該些向量是儲存在對應于該些偏差值的其中之一的該行中。
11.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中該基本地址定義特定的該些陣列列的其中之一。
12.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中每一該些行都包括處理線。
13.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中該獲取步驟包括至少如下步驟之一在該陣列上,針對每一該些向量執(zhí)行存取操作;在轉(zhuǎn)置步驟之前,累積該些向量。
14.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中該些向量的個數(shù)與該些行的個數(shù)相等;每一該些向量都包括位置向量。
15.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中每一該些向量都包括W、X、Y、及Z方向的元件的值。
16.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中該轉(zhuǎn)置步驟包括將每一該些陣列列,指定給對應的寄存器行。
17.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,還包括在該陣列中,以水平模式處理數(shù)據(jù),以及在該寄存器中,以垂直模式處理數(shù)據(jù)。
18.根據(jù)權利要求17所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,其中該垂直模式包括平行處理該些向量。
19.根據(jù)權利要求8所述在雙模式計算機處理器中執(zhí)行索引式載入的方法,還包括產(chǎn)生多個有效地址值,其通過將每一該些相對數(shù)據(jù)地址值與一固定地址值相加所產(chǎn)生。
20.一種在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,包括數(shù)據(jù)陣列,用來儲存該些數(shù)據(jù)組;索引寄存器,用來儲存對應于在該數(shù)據(jù)陣列內(nèi)的地址的多個偏差值;累加器,從該陣列接收該些數(shù)據(jù)組;以及目的寄存器,用來接收具有轉(zhuǎn)置過架構的該些數(shù)據(jù)組。
21.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中該數(shù)據(jù)陣列包括多個陣列列及多個陣列行。
22.根據(jù)權利要求21所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中每一該些數(shù)據(jù)組都包括對應于該些陣列行的多個元件;每一該些數(shù)據(jù)組被儲存在用來支持水平模式處理的該些陣列列的其中之一中。
23.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中該些數(shù)據(jù)組為多個位置向量。
24.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中每一該些數(shù)據(jù)組包括多個元件。
25.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中該些元件包括W、Z、Y、及X系數(shù)。
26.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中每一該些偏差值是對應于該些數(shù)據(jù)組的其中之一。
27.根據(jù)權利要求26所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中每一該些偏差值是定義相對于固定基本地址的地址。
28.根據(jù)權利要求27所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中該目的寄存器包括多個寄存器列及多個寄存器行,且該目的寄存器用來將每一該些數(shù)據(jù)組儲存在該些行的其中之一,且其中每一該些列是對應于每一該些數(shù)據(jù)組元件。
29.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,還包括邏輯電路,用來將每一該些數(shù)據(jù)組從在該陣列中的水平方向,轉(zhuǎn)置成在該目的寄存器中的垂直方向。
30.根據(jù)權利要求29所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中該目的寄存器支持該些數(shù)據(jù)組的平行處理。
31.根據(jù)權利要求20所述在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機處理裝置,其中每一該些偏差值是對應于該些行的其中之一。
32.一種在雙模式處理環(huán)境中執(zhí)行索引式載入操作的計算機硬件,包括儲存裝置,用來將多個向量儲存在第一寄存器中,其中每一該些向量都包括多個元件,且該些元件是垂直排列;獲取裝置,用來從該第一寄存器中獲取該些向量;產(chǎn)生裝置,用來產(chǎn)生對應于該些向量的多個偏差值;以及接收裝置,用來在第二寄存器中接收該些向量,其中在每一該些向量內(nèi)的每一該些元件是使用該對應的該些偏差值的其中之一所接收。
33.一種在雙模式處理環(huán)境中執(zhí)行索引寄存器載入操作的方法,包括從第一寄存器讀取多個相對數(shù)據(jù)地址值;產(chǎn)生多個有效地址值,其通過將該些相對數(shù)據(jù)地址值與一固定地址值相加所產(chǎn)生;載入對應于該些有效地址值的多個向量,其中每一該些向量都包括多個向量元件;經(jīng)由將與該些向量相關的每一列儲存為一行,以及將與該些向量相關的每一行儲存為一列,而轉(zhuǎn)置該些向量;以及將該些轉(zhuǎn)置過的向量,儲存在第二寄存器中。
34.一種在雙模式處理環(huán)境中執(zhí)行索引寄存器儲存操作的方法,包括轉(zhuǎn)置儲存在第一寄存器的多個同方向連續(xù)地址中的多個向量;從第二寄存器讀取多個相對地址值;使用該些相對地址值,產(chǎn)生多個有效地址值;以及將該些轉(zhuǎn)置過的向量,儲存在對應于該些有效地址值的數(shù)據(jù)儲存元件中。
35.根據(jù)權利要求34所述在雙模式處理環(huán)境中執(zhí)行索引寄存器儲存操作的方法,其中該數(shù)據(jù)儲存元件包括如下之一存儲器;第三寄存器。
36.根據(jù)權利要求34所述在雙模式處理環(huán)境中執(zhí)行索引寄存器儲存操作的方法,其中該產(chǎn)生步驟包括將每一該些相對地址值與基本地址值相加。
全文摘要
本發(fā)明提供在支持水平模式與垂直模式處理的處理環(huán)境中,通過對具有索引式或間接式運算的處理器操作,提供索引式載入及儲存指令,以提升計算機系統(tǒng)性能的方法、系統(tǒng)、以及裝置。
文檔編號G06F15/80GK1892636SQ20061010134
公開日2007年1月10日 申請日期2006年7月6日 優(yōu)先權日2005年7月6日
發(fā)明者扎希德·胡笙 申請人:威盛電子股份有限公司