控制處理系統(tǒng)中的處理器之間的數(shù)據(jù)流的制作方法
【專利摘要】本申請的各實施例涉及控制處理系統(tǒng)中的處理器之間的數(shù)據(jù)流。一種處理系統(tǒng)包括用于執(zhí)行程序的程序處理器和用于執(zhí)行特定類型的操作(例如,矢量處理操作)的專用處理器。程序處理器使用對接模塊和一組兩個或者更多寄存器組以將特定類型的操作卸載到專用處理器以用于在其上執(zhí)行。在專用處理器訪問用于執(zhí)行當前操作的一個寄存器組之時,對接模塊可以并發(fā)地向寄存器組中的不同寄存器組中加載用于后續(xù)操作的數(shù)據(jù)。對多個寄存器組的使用允許專用處理器花費它的時間的更大比例執(zhí)行操作。
【專利說明】
控制處理系統(tǒng)中的處理器之間的數(shù)據(jù)流
技術(shù)領(lǐng)域
[0001]本申請的各實施例涉及控制處理系統(tǒng)中的處理器之間的數(shù)據(jù)流。
【背景技術(shù)】
[0002]處理系統(tǒng)總體上包括一個或者多個處理器(或者“處理單元”),比如中央處理單元(CPU)、數(shù)字信號處理器(DSP)和/或圖形處理單元(GPU),僅給出一些示例。處理器通常被配置為執(zhí)行計算機系統(tǒng)的操作,比如在處理系統(tǒng)內(nèi)移動數(shù)據(jù)和/或操控數(shù)據(jù)。例如,程序的操作可以涉及到對數(shù)據(jù)項執(zhí)行算術(shù),比如乘法或者加法。一些處理器可以比其它處理器更適合特定任務。例如,CPU可以被設計為可以相當高效地處理多種操作的通用處理器,而DSP可以被具體地設計成它的架構(gòu)對于數(shù)字信號處理的操作需要而被優(yōu)化,而GPU可以被具體地設計用于處理圖形數(shù)據(jù)。
[0003]存在許多不同計算機編碼語言,計算機程序員可以按照它們編寫計算機程序,但是語言中的一些語言比其它語言更流行,例如C代碼廣泛地為計算機程序員所知??梢杂杏玫氖翘幚硐到y(tǒng)包括被設計為處理用常見計算機語言(比如C)編寫的程序的代碼,從而使得易于程序員編寫可以由處理系統(tǒng)處理的代碼。然而,在一些情形中,可以有益的是處理系統(tǒng)在專用處理器上執(zhí)行特定類型的操作,這些操作適合用于執(zhí)行那些特定類型的操作。例如,在DSP上而不是在CPU上執(zhí)行用于數(shù)字信號處理的操作可能更高效(例如,在時間、功率和/或?qū)μ幚碣Y源的使用方面)。因此,可以在處理系統(tǒng)中包括兩個或者更多處理器,由此操作可以由最適合執(zhí)行操作的處理器執(zhí)行。例如,處理系統(tǒng)可以包括可以在其上執(zhí)行程序的主處理器(或者“程序處理器”)(例如,通用CPU)和適合執(zhí)行特定類型的操作的專用處理器(例如,DSP或者GPU)。在程序處理器開始在程序內(nèi)的特定類型的操作(例如,矢量處理操作)時,程序處理器可以向?qū)S锰幚砥鱾鬟f(即,卸載)操作以用于在其上執(zhí)行。專用處理器可以具有包括多個寄存器的寄存器組,數(shù)據(jù)可以被加載到這些寄存器中以用于由專用處理器處理操作。專用處理器然后可以使用在它的寄存器組的寄存器中存儲的數(shù)據(jù)來執(zhí)行操作。操作的結(jié)果可以在專用處理器已經(jīng)完成操作的執(zhí)行時被存儲在寄存器組的寄存器中。程序處理器然后可以從寄存器讀取出數(shù)據(jù)并且進行對程序的執(zhí)行。備選地,存儲器(取代專用處理器的寄存器組)可以用于在專用處理器與程序處理器之間傳達數(shù)據(jù)。例如,專用處理器可以從存儲器取回數(shù)據(jù)并且可以對取回的數(shù)據(jù)執(zhí)行操作。專用處理器可以在專用處理器已經(jīng)完成操作的執(zhí)行時在存儲器中存儲操作的結(jié)果,并且程序處理器然后可以從存儲器讀取出數(shù)據(jù)。
[0004]以這一方式,可以更高效地執(zhí)行程序,因為專用處理器適于在執(zhí)行特定類型的操作時比程序處理器更高效(例如,DSP通常在執(zhí)行矢量處理操作時比CPU更高效)。因此,通過使用專用處理器,可以從主處理器(“程序處理器”)卸載執(zhí)行程序的操作中的一些操作這樣的作業(yè)。以這一方式,可以減少程序處理器的工作負荷。對處理系統(tǒng)可以執(zhí)行程序的操作的效率的任何提高(例如,在速度、功率和/或?qū)μ幚碣Y源的使用方面)可能是有益的。
【發(fā)明內(nèi)容】
[0005]提供這一
【發(fā)明內(nèi)容】
以按照簡化形式介紹以下在【具體實施方式】中進一步描述的概念的選集。這一
【發(fā)明內(nèi)容】
并未旨在于標識要求保護的主題內(nèi)容的關(guān)鍵特征或者實質(zhì)特征,它也并未旨在于用來限制要求保護的主題內(nèi)容的范圍。
[0006]在以上【背景技術(shù)】一節(jié)中描述的處理系統(tǒng)中,目的是從程序處理器向?qū)S锰幚砥魃闲遁d工作,其中焦點在于減少程序處理器的工作負荷。對照而言,發(fā)明人已經(jīng)認識到一些處理系統(tǒng)主要地用于執(zhí)行特定類型的操作,其中專用處理器適合用于執(zhí)行特定類型的操作。使用專用處理器以執(zhí)行特定類型的操作可以是有益的(因為它被適配以便在執(zhí)行特定類型的操作時比程序處理器更高效)。另外,根據(jù)這里描述的示例,可以使用對接模塊來減少專用處理器上的工作負荷以使用一組兩個或者更多個寄存器組來控制在程序處理器與專用處理器之間的數(shù)據(jù)流。對多個寄存器組的使用允許專用處理器花費它的時間的更大比例執(zhí)行操作,因此可以更快執(zhí)行操作序列(與在以上【背景技術(shù)】一節(jié)中描述的處理系統(tǒng)中的比較)。
[0007]具體而言,提供了一種處理系統(tǒng),該處理系統(tǒng)包括:專用處理器,適合用于執(zhí)行特定類型的操作;程序處理器,被配置為執(zhí)行包括多個操作的程序,其中程序處理器被配置為使得程序的為特定類型的操作由專用處理器執(zhí)行;一組兩個或者更多個寄存器組,被配置為存儲與特定類型的操作有關(guān)的數(shù)據(jù);對接模塊,被配置為通過以下各項使用該一組寄存器組來控制程序處理器與專用處理器之間的數(shù)據(jù)流:并發(fā)地:(i)向?qū)S锰幚砥魈峁拇嫫鹘M中的存儲用于當前操作的先前加載的數(shù)據(jù)的寄存器組的訪問,由此允許專用處理器執(zhí)行當前操作,以及(ii)訪問寄存器組中的不同寄存器組以向寄存器組中的該不同寄存器組中加載用于后續(xù)操作的數(shù)據(jù)一用于設立用于由專用處理器后續(xù)執(zhí)行的后續(xù)操作;以及在專用處理器完成當前操作的執(zhí)行之后,控制該一組寄存器組以向?qū)S锰幚砥魈峁碜栽撘唤M寄存器組的寄存器組之一的用于后續(xù)操作的數(shù)據(jù)的訪問,由此允許專用處理器執(zhí)行后續(xù)操作。
[0008]提供了一種處理程序的操作的方法,該方法包括:在程序處理器處執(zhí)行程序,其中程序處理器使得程序的為特定類型的操作由專用處理器執(zhí)行,其中專用處理器適合用于執(zhí)行特定類型的操作;通過以下各項使用一組寄存器組來控制程序處理器與專用處理器之間的數(shù)據(jù)流:并發(fā)地:(i)向?qū)S锰幚砥魈峁拇嫫鹘M中的存儲用于當前操作的先前加載的數(shù)據(jù)的寄存器組的訪問,由此允許專用處理器執(zhí)行當前操作,以及(ii)訪問寄存器組中的不同寄存器組以向寄存器組中的該不同寄存器組中加載用于后續(xù)操作的數(shù)據(jù)以用于設立用于由專用處理器后續(xù)執(zhí)行的后續(xù)操作;以及在專用處理器完成當前操作的執(zhí)行之后,控制該一組寄存器組以向?qū)S锰幚砥魈峁碜栽撘唤M寄存器組的寄存器組之一的用于后續(xù)操作的數(shù)據(jù)的訪問,由此允許專用處理器執(zhí)行后續(xù)操作。
[0009 ]可以在集成電路上在硬件中體現(xiàn)這里描述的處理系統(tǒng)中的任何處理系統(tǒng)。也可以提供用于生成根據(jù)這里描述的示例中的任何示例的處理系統(tǒng)的計算機可讀代碼??梢栽谟嬎銠C可讀存儲介質(zhì)上對計算機可讀代碼進行編碼。
[0010]如本領(lǐng)域技術(shù)人員將清楚的那樣,以上特征可以如適當?shù)哪菢颖唤M合,并且可以與這里描述的示例的方面中的任何方面組合。
【附圖說明】
[0011 ]現(xiàn)在將參照附圖具體描述示例,在附圖中:
[0012]圖1是第一示例中的處理系統(tǒng)的示意圖;
[0013]圖2示出了流程圖,該流程圖圖示了處理系統(tǒng)中的程序的處理操作的方法;
[0014]圖3示出了用于處理系統(tǒng)的部分的定時圖;
[0015]圖4是第二示例中的處理系統(tǒng)的示意圖;
[0016]圖5是第二不例中的處理系統(tǒng)的不意圖;
[0017]圖6是包括處理系統(tǒng)的計算機系統(tǒng)的示意圖;以及
[0018]圖7示出了用于生成體現(xiàn)處理系統(tǒng)的集成電路的集成電路制造系統(tǒng)。
[0019]附圖圖示了各種示例。本領(lǐng)域技術(shù)人員將認識到,附圖中的所示單元邊界(例如,框、框組或者其它形狀)代表邊界的一個示例??梢栽谝恍┦纠校粋€單元可以被設計為多個單元或者多個單元可以被設計為一個單元。共同標號在適當時貫穿各圖用來指示相似特征。
【具體實施方式】
[0020]現(xiàn)在將僅通過示例描述實施例。
[0021]在這里描述的示例中,處理系統(tǒng)包括被配置為執(zhí)行包括多個操作的程序的程序處理器,例如,CPU。程序處理器可以適于處理按照被普遍地理解的編程語言(比如C)編寫的操作。處理系統(tǒng)也包括適于執(zhí)行特定類型的操作(例如,數(shù)據(jù)并行操作,比如矢量操作)的專用處理器,比如DSP。專用處理器可以被配置為執(zhí)行按照可能不是被普遍地理解的既定語言編寫的操作。由于專用處理器可以比程序處理器更高效地用于執(zhí)行特定類型的操作,所以編寫用于這些操作的代碼以用于由專用處理器執(zhí)行,例如,按照用于專用處理器的既定語言。然而,專用處理器和需要在它上執(zhí)行的操作的性質(zhì)可能使得難以編寫用于編譯(例如,按照C編寫)的高級指令的編譯器,該編譯器將按照既定語言生成代碼。因此,取代按照既定語言編寫整個程序(包括專用操作和用于組織對操作序列的執(zhí)行的程序流),從專用處理器向程序處理器卸載程序流。在程序流中經(jīng)常有許多復雜性,并且通過在程序處理器上實施這一程序流,可以按照與專用處理器的既定語言比較更易于編寫、修改、維護和/或以別的方式使用的高級語言(例如,C)編寫程序流。因此,即使對于主要地包括將由專有處理器執(zhí)行的一類操作的程序,仍然可以有益的是編寫程序的程序流用于在程序處理器上執(zhí)行,因為可以比按照既定語言編寫的代碼更容易地理解以及更容易地編寫和修改這樣的代碼以用于在專用處理器上執(zhí)行。
[0022]在這里描述的示例中,對接模塊用來以使專用處理器能夠高效地執(zhí)行操作的方式控制程序處理器與專用處理器之間的數(shù)據(jù)流。具體而言,一組兩個或者更多個寄存器組用來存儲與由專有處理器執(zhí)行的操作有關(guān)的數(shù)據(jù)(例如,控制數(shù)據(jù))。對接模塊通過寄存器組管理數(shù)據(jù)流以允許專用處理器使用來自一個寄存器組的數(shù)據(jù)來執(zhí)行當前操作,而用于下一操作的數(shù)據(jù)被加載到不同寄存器組中。在專用處理器完成當前操作的執(zhí)行時,對接模塊可以控制寄存器組,從而使得向?qū)S锰幚砥魈峁?shù)據(jù)的訪問以用于來自寄存器組之一的后續(xù)操作,從而使得專用處理器可以執(zhí)行后續(xù)操作。可以對于將由專用處理器執(zhí)行的操作序列迭代這一循環(huán),從而使得下一操作可以被排隊用于在專用處理器上執(zhí)行,而當前操作由專用處理器執(zhí)行。以這一方式,專用處理器與如下系統(tǒng)比較可以花費更大比例的時間執(zhí)行操作,這是它被設計用于的目的,在該系統(tǒng)中,一個操作在用于下一操作的數(shù)據(jù)被加載到寄存器中從而使得專用處理器可以執(zhí)行下一操作之前完全由專用處理器執(zhí)行。在這里描述的示例中,可以有用的是嘗試最大化專用處理器執(zhí)行操作而花費的時間比例,或者至少嘗試與在【背景技術(shù)】一節(jié)中描述的系統(tǒng)比較增加專用處理器執(zhí)行操作而花費的時間比例。
[0023]圖1示出了第一示例中的處理系統(tǒng)100。處理系統(tǒng)100包括被配置為執(zhí)行程序的程序處理器102、適于執(zhí)行特定類型的操作的專用處理器104、對接模塊106和寄存器組108的集合。在圖1中所示的示例中,寄存器組108的集合包括第一寄存器組110(在圖1中被標注為“A”)和第二寄存器組112(在圖1中被標注為“B”)。寄存器組(I 10和112)中的每個寄存器組包括專用處理器104可以用來執(zhí)行操作的寄存器。也就是說,寄存器組110和112被配置為存儲與專用處理器104適于執(zhí)行的特定類型的操作有關(guān)的數(shù)據(jù)(例如,控制數(shù)據(jù))。處理系統(tǒng)100連接到可以例如是隨機存取存儲器(RAM)的存儲器114。具體而言,程序處理器102和專用處理器104連接到存儲器114并且可以從和/或向存儲器114讀取和/或?qū)懭霐?shù)據(jù)。如以上描述的那樣,程序處理器102是可以執(zhí)行按照被普遍地理解的編程語言(比如C)編寫的程序的通用處理器(例如,CPU);而專用處理器104在它適于很高效地執(zhí)行特定類型的操作的意義上是專門化的處理器。例如,專用處理器104可以是適于處理數(shù)據(jù)并行操作(比如矢量操作)的DSP,或者專用處理器104可以是適于處理圖形數(shù)據(jù)的GPU。
[0024]對接模塊106耦合到程序處理器102。例如,對接模塊106可以耦合到程序處理器102的協(xié)處理器端口。作為另一示例,對接模塊106可以經(jīng)由寄存器接口耦合到程序處理器102。然而,將對接模塊106耦合到程序處理器102的協(xié)處理器端口保證對接模塊106與程序處理器102之間的交互是高效的。對接模塊106可以利用對于程序處理器102而言是本機的匯編器指令以提供與專用處理器104的接口。專用處理器104按照它的既定語言(例如,它的本機匯編語言)被編程但是僅用于實施希望的操作而不是整個程序,特別地不是程序流。因此在效果上按照專用處理器104的本機語言將希望的操作編寫為函數(shù)以用于在其上執(zhí)行,并且(例如,按照高級語言(比如C)編寫的)程序在程序處理器102上運行以實施控制流。另夕卜,在為專用處理器104匯編指令時,生成允許經(jīng)由高級語言(比如C)控制指令的接口。也就是說,編寫的用于由專用處理器104執(zhí)行的操作可以有效地是使希望的操作在專用處理器上被執(zhí)行的C可調(diào)用函數(shù)。這保證對接和集成易于實施并且在編寫程序時維持程序員的意圖的清楚。
[0025]與在以上【背景技術(shù)】一節(jié)中描述的處理系統(tǒng)比較,處理系統(tǒng)100包括用于由專用處理器104使用的額外“陰影”寄存器集合。也就是說,有兩個寄存器110和112。每個寄存器組110和112可以存儲用于由專用處理器104執(zhí)行的操作的數(shù)據(jù)。由于有兩個寄存器組,所以專用處理器104可以訪問寄存器組之一以用于執(zhí)行操作,而用于另一操作的數(shù)據(jù)被移入或者移出另一寄存器組。在圖1中所示的示例中,寄存器組中的每個寄存器組被配置為在任何給定的時間耦合到專用處理器104或者對接模塊106。對接模塊106控制對寄存器組110和112的耦合(耦合到專用處理器104或者對接模塊106),從而使得在專用處理器104耦合到寄存器組中的第一寄存器組(例如,110)時,對接模塊106耦合到寄存器組中的第二寄存器組(例如,112),并且反之亦然。
[0026]在寄存器組中存儲(并且貫穿本申請引用)的“與操作有關(guān)的數(shù)據(jù)”可以包括或者可以不包括所有與操作有關(guān)的數(shù)據(jù)。例如,在寄存器組中存儲的與操作有關(guān)的數(shù)據(jù)可以包括用于操作的控制數(shù)據(jù)(例如,僅控制數(shù)據(jù)),并且專用處理器104可以根據(jù)控制數(shù)據(jù)對在存儲器114中駐留的數(shù)據(jù)操作。也就是說,專用處理器104可以從存儲器114取回數(shù)據(jù)、根據(jù)經(jīng)由對接模塊106接收的控制數(shù)據(jù)對它操作并且向存儲器114回寫出結(jié)果數(shù)據(jù)。因此,可以是并非所有與操作有關(guān)的數(shù)據(jù)經(jīng)過對接模塊106這樣的情況。
[0027]參照圖2中所示的流程圖和圖3中所示的定時圖,現(xiàn)在描述使用處理系統(tǒng)100來處理程序的操作的方法。
[0028]在步驟S202中,程序開始由程序處理器102執(zhí)行。如以上描述的那樣,程序處理器102被布置為執(zhí)行按照高級語言(比如C)編寫的代碼。程序的特定類型的操作(例如,數(shù)字信號處理操作)將被卸載到專用處理器104以用于在其上執(zhí)行(例如,其中專用處理器104是DSP)并且按照用于專用處理器104的既定語言被編寫。例如,程序可以包括特定類型的操作序列,從而使得有將由專用處理器104執(zhí)行的操作序列。這些操作由對接模塊106發(fā)起,從而使得可以在專用處理器104上執(zhí)行它們。
[0029]對接模塊106有助于由專用處理器104執(zhí)行操作。具體而言,在有將由專用處理器104執(zhí)行的操作序列時,對接模塊106向?qū)S锰幚砥?04提供數(shù)據(jù)(經(jīng)由寄存器組108),從而使得專用處理器104可以轉(zhuǎn)而執(zhí)行操作。如以上描述的那樣,對接模塊106可以連接到程序處理器102的協(xié)處理器端口,并且可以根據(jù)如下協(xié)議與程序處理器102通信,通信可以按照該協(xié)議出現(xiàn)在程序處理器102的協(xié)處理器端口上。這意味著程序處理器102與對接模塊106交互的方式可以被編寫用于程序的代碼的程序員容易地理解而,無論專用處理器104被配置為用來操作的協(xié)議如何。另外,在編譯時間自動生成對對接模塊106進行操縱的代碼,從而使得向程序員隱藏其中的復雜性并且從程序處理器102調(diào)用的C函數(shù)引起由專用處理器104執(zhí)行希望的操作。也就是說,對接模塊106使用自動生成的代碼以加載對將由專用處理器104執(zhí)行的操作的描述,并且然后使得專用處理器104執(zhí)行操作。因此,向程序員隱藏程序處理器102與對接模塊106之間的對接的細節(jié)并且通過自動生成管理這一對接的代碼來簡化該細節(jié)。
[0030]向程序員呈現(xiàn)的編程模型是作業(yè)隊列的編程模型。處理作業(yè)可以被排隊以在專用處理器104上運行,并且程序處理器102然后可以等待這些作業(yè)完成或者可以繼續(xù)進行其它處理(該其它處理可以例如包括設立下一作業(yè)以在專用處理器104上運行),而作業(yè)由專用處理器104處理。一旦作業(yè)已經(jīng)在專用處理器104上被完成,程序處理器102就可以再次使用自動生成的代碼來讀取該作業(yè)的結(jié)果以簡化接口。對接模塊106向C可調(diào)用函數(shù)取得參數(shù)并且使用自動生成的代碼來生成其它參數(shù),其中生成的參數(shù)描述將在專用處理器104上執(zhí)行的作業(yè)。對接模塊106通過向在寄存器組108之一內(nèi)的寄存器中寫入生成的參數(shù)來向?qū)S锰幚砥?04傳達它們。對接模塊106也處理作業(yè)開始和完成,從而在相關(guān)時間向?qū)S锰幚砥?04和向程序處理器102呈現(xiàn)正確寄存器。
[0031]在圖1中所示的示例中,初始地,對接模塊106耦合到第一寄存器組110并且專用處理器104耦合到第二寄存器組112,但是在其它示例中,這可以反過來。雖然在圖1中未明確地圖示,但是對接模塊106可以例如通過轉(zhuǎn)換圖1中所示的開關(guān)來控制寄存器110和112耦合到對接模塊106和專用處理器104。可以控制開關(guān)以一直在彼此相反的配置中。因此,在專用處理器104使用來自寄存器組A 110的數(shù)據(jù)時,寄存器組B 112經(jīng)由對接模塊106對程序處理器102可見,并且反之亦然。
[0032]變量“X”用來標識操作序列的不同操作。在步驟S204中,對接模塊將X設置成零以便開始在專用處理器104上執(zhí)行操作序列。如以下描述的那樣,在該方法中使用多個標志(例如,執(zhí)行完成標志、加載完成標志和最后操作標志)。在步驟S204中,清除(S卩,不設置(unset))這些標志以保證該方法始于在正確狀態(tài)中的標志。圖3示出了定時圖,該定時圖圖示了處理系統(tǒng)100的部分在三個操作的序列被傳遞到專用處理器104并且在其上被執(zhí)行時的活動和狀態(tài)。
[0033]該方法然后向并行(例如,并發(fā)地)被執(zhí)行的步驟S206和S212二者傳遞。在步驟S206中,對接模塊106確定用于操作X的數(shù)據(jù)是否已經(jīng)被加載到耦合到專用處理器104的寄存器組中。在第一迭代中,商沒有數(shù)據(jù)被加載到寄存器組110或者112中以用于將由專用處理器104執(zhí)行的操作,因此該方法向其中設置‘執(zhí)行完成’標志的步驟S208傳遞。這一標志指示專用處理器104當前未執(zhí)行操作。該方法從步驟S208向步驟S211傳遞,在步驟S211中,對接模塊106確定“最后操作”標志是否被設置。初始地,“最后操作”標志未被設置,并且它僅在執(zhí)行序列的最后操作時被設置,如以下更具體描述的那樣。在“上個操作”標志未被設置時,該方法從步驟S211向以下更具體描述的步驟S220傳遞。
[0034]如果已經(jīng)為操作X加載了數(shù)據(jù),則該方法從步驟S206向以下更具體描述的步驟S210傳遞。
[0035]在步驟S212中,對接模塊106確定是否有將從耦合到對接模塊106的寄存器組讀取的、用于操作x-1的結(jié)果數(shù)據(jù)。在第一迭代中,尚沒有向寄存器110或者112中加載的結(jié)果數(shù)據(jù),因為序列的操作商沒有由專用處理器104執(zhí)行。該方法因此向步驟S216傳遞。
[0036]在步驟S216中,對接模塊106確定是否有如下操作x+1,用于該操作的數(shù)據(jù)準備好被加載到寄存器110或者112之一中。在第一迭代中,有如下操作I,用于該操作的數(shù)據(jù)可以被加載到寄存器組110或者112之一中。因此,該方法向步驟S218傳遞,在該步驟中,對接模塊106將操作x+1的數(shù)據(jù)加載到當前耦合到對接模塊106的寄存器組(110或者112)中。在圖3中所示的示例中,對接模塊106在時間to耦合到寄存器組A 110,并且對接模塊106將用于操作I的數(shù)據(jù)加載到寄存器組A 110中。將用于操作I的數(shù)據(jù)加載到寄存器組A 110中設立用于由專用處理器104后續(xù)執(zhí)行的操作I。對接模塊106在時間^完成將用于操作I的數(shù)據(jù)加載到寄存器組A 110的寄存器中。‘加載完成’標志被設置成指示對數(shù)據(jù)的加載完成。加載完成標志也可以被稱為‘作業(yè)隊列滿’標志,因為它指示有作業(yè)等待由專用處理器104執(zhí)行。
[0037]在步驟S220中,在執(zhí)行完成標志和加載完成標志二者被設置時(如同它們將分別在步驟S208和S218之后的時間t那樣),遞增變量x(例如,在第一迭代中從O遞增至1),并且兩個標志(執(zhí)行完成標志和加載完成標志)被重置,即‘不設置’。
[0038]標志中的每個標志可以例如由一位代表。然后在步驟S222中,對接模塊106轉(zhuǎn)換寄存器組110和112,從而使得寄存器組110和112到對接模塊106和專用處理器104的耦合被切換。這一轉(zhuǎn)換可以被視為反轉(zhuǎn)圖1中所示的將寄存器組110和112耦合到對接模塊106或者專用處理器104的兩個開關(guān)。然而,注意圖1中為了概念理解而示出開關(guān),并且可以如本領(lǐng)域技術(shù)人員將清楚的那樣在不同示例中按照多個不同方式(例如使用一個或者多個復用器而不是開關(guān)來實施步驟S222的轉(zhuǎn)換。
[0039]步驟S220和S222在時間t出現(xiàn)。因此,雖然加載完成標志(S卩,作業(yè)隊列滿標志)在步驟S218中在時間^被設置,但是這一標志然后在步驟S220中在時間^被立即地重置,因此圖3未示出這一標志在時間t被設置。在步驟S222之后,在時間^,對接模塊106耦合到寄存器組B 112,并且專用處理器104耦合到寄存器組A 110。該方法然后傳遞回到并行步驟S206和S212,其中在這一迭代時,X = I。
[0040]這時,在步驟S206中確定用于操作I的數(shù)據(jù)已經(jīng)被加載到耦合到專用處理器104的寄存器組110中。因此,該方法從步驟S206向步驟S210(而不是步驟S208)傳遞。在步驟S210中,專用處理器104使用在寄存器組110的寄存器中存儲的數(shù)據(jù)(例如,控制數(shù)據(jù))來執(zhí)行操作I。在其中寄存器中存儲的數(shù)據(jù)僅為操作的控制數(shù)據(jù)的情況下,專用處理器104可以從存儲器114取回另外的數(shù)據(jù)以便執(zhí)行操作。操作可以例如是對矢量執(zhí)行的矢量處理操作。專用處理器104良好地適合執(zhí)行這一類型的操作。對操作I的執(zhí)行從時間七直至時間t3。在專用處理器104已經(jīng)完成操作I的執(zhí)行時,執(zhí)行完成標志被設置,并且在寄存器組110的寄存器中存儲用于操作的結(jié)果數(shù)據(jù)。用于操作的結(jié)果數(shù)據(jù)可以是操作的結(jié)果(例如,來自矢量處理操作的所得矢量),或者結(jié)果數(shù)據(jù)可以是控制數(shù)據(jù)以例如指示操作已經(jīng)被執(zhí)行并且指示操作的結(jié)果(例如,來自矢量處理操作的所得矢量)在存儲器114中的地址。該方法然后從步驟S210向步驟S211傳遞。由于最后操作標志尚未被設置,所以該方法從步驟S211向步驟S220傳遞。[0041 ] 與步驟S206和S210并行執(zhí)行步驟S212至S218。也就是說,在專用處理器104執(zhí)行操作X之時,對接模塊106讀取先前執(zhí)行操作(如果有)的結(jié)果數(shù)據(jù)并且加載用于下一操作(如果有)的數(shù)據(jù)。在步驟S212中,在時間^,對接模塊106確定沒有將被讀取的用于操作x-1的結(jié)果數(shù)據(jù),因此該方法向步驟S216傳遞。在步驟S216中,在時間t,對接模塊106確定有如下操作2,用于該操作的數(shù)據(jù)準備好被加載。因此該方法向步驟S218傳遞,在該步驟中,對接模塊106向當前耦合到對接模塊106的寄存器組112中加載操作2的數(shù)據(jù)(例如,控制數(shù)據(jù))。向寄存器組B 112中加載用于操作2的數(shù)據(jù)設立用于由專用處理器104后續(xù)執(zhí)行的操作2。對接模塊106在時間^完成向寄存器組B 112的寄存器中加載用于操作2的數(shù)據(jù)。加載完成標志(即,作業(yè)隊列滿標志)被設置以指示對數(shù)據(jù)的加載在時間t2完成。該方法從步驟S218向步驟S220傳遞。
[0042]步驟S220在執(zhí)行完成標志和加載完成標志二者被設置時在時間t3完成。這時,專用處理器104已經(jīng)完成操作I的執(zhí)行,而用于操作I的結(jié)果數(shù)據(jù)被存儲在寄存器組A 110的寄存器中,并且用于操作2的數(shù)據(jù)已經(jīng)被加載到寄存器組B 112的寄存器中。在步驟S220中,遞增變量x(例如,在時間t3從I遞增至2),并且兩個標志(執(zhí)行完成標志和加載完成標志)被重置,即,‘不設置’。然后在步驟S222中,對接模塊106轉(zhuǎn)換寄存器組110和112,從而使得寄存器組110和112到對接模塊106和專用處理器104的耦合被切換。因此,在時間t3之后,對接模塊106耦合到寄存器組A 110,并且專用處理器104耦合到寄存器組B 112。
[0043]該方法然后傳遞回到并行步驟S206和S212,其中在這一迭代時,x = 2。
[0044]這時,在步驟S206中確定用于操作2的數(shù)據(jù)已經(jīng)被加載到現(xiàn)在耦合到專用處理器104的寄存器組B 112中。因此,該方法從步驟S206向步驟S210傳遞。在步驟S210中,專用處理器104使用在寄存器組112的寄存器中存儲的數(shù)據(jù)來執(zhí)行操作2。操作可以例如是對矢量執(zhí)行的矢量處理操作。對操作2的執(zhí)行是從時間t3直至時間t5。在專用處理器104已經(jīng)完成操作2的執(zhí)行時,執(zhí)行完成標志被設置,并且在寄存器組112的寄存器中存儲用于操作的結(jié)果數(shù)據(jù)。該方法然后從步驟S210向步驟S211傳遞。因為最后操作標志尚未被設置,所以該方法從步驟S211向步驟S220傳遞。
[0045]與步驟S206和S210并行執(zhí)行步驟S212至S218。因此,在專用處理器104執(zhí)行操作2之時,對接模塊106訪問寄存器組A 110以讀取用于操作I的結(jié)果數(shù)據(jù)并且加載用于下一操作(操作3)的數(shù)據(jù)。具體而言,在步驟S212中,在時間t3,對接模塊106確定有將被讀取的用于操作I的結(jié)果數(shù)據(jù),因此該方法向步驟S214傳遞。在步驟S214中,對接模塊106從寄存器組A 110的寄存器讀取用于操作I的結(jié)果數(shù)據(jù),并且向程序處理器102傳遞結(jié)果數(shù)據(jù)。用于操作I的結(jié)果數(shù)據(jù)在時間t4完成從寄存器組A 110被讀取。
[0046]該方法然后向步驟S216傳遞。在步驟S216中,在時間t4,對接模塊106確定有如下操作3,用于該操作的數(shù)據(jù)準備好被加載。因此,該方法向步驟S218傳遞,在該步驟中,對接模塊106向當前耦合到對接模塊106的寄存器組A 110中加載操作3的數(shù)據(jù)。向寄存器組Al 1中加載用于操作3的數(shù)據(jù)設立用于由專用處理器104后續(xù)執(zhí)行的操作3。對接模塊106在時間U(該時間在時間t5之后,專用處理器104在該時間〖5完成操作2的執(zhí)行)完成向寄存器組A110的寄存器中加載用于操作3的數(shù)據(jù)。加載完成標志(S卩,作業(yè)隊列滿標志)被設置以指示對數(shù)據(jù)的加載在時間t6完成。該方法從步驟S218向步驟S220傳遞。
[0047]步驟S220在執(zhí)行完成標志和加載完成標志二者被設置時在時間U完成。這時,專用處理器104已經(jīng)完成操作2的執(zhí)行,而用于操作2的結(jié)果數(shù)據(jù)被存儲在寄存器組B 112的寄存器中,并且用于操作3的數(shù)據(jù)已經(jīng)被加載到寄存器組A 110的寄存器中。在步驟S220中,遞增變量x(例如,從2遞增至3),并且兩個標志(執(zhí)行完成標志和加載完成標志)被重置、S卩‘不設置’。然后在步驟S222中,對接模塊106轉(zhuǎn)換寄存器組110和112,從而使得寄存器組110和112到對接模塊106和專用處理器104的耦合被切換。因此,在時間t6之后,對接模塊106耦合到寄存器組B 112,并且專用處理器104耦合到寄存器組A 110。
[0048]步驟S220和S222在時間U出現(xiàn)。因此,雖然加載完成標志(即作業(yè)隊列滿標志)在步驟S218中在時間t6被設置,但是這一標志然后在步驟S220中在時間t6被立即地重置,因此圖3未示出這一標志在時間t6被設置。該方法然后傳遞回到并行步驟S206和S212,其中在這一迭代時,X = 3。
[0049]與步驟S212至S223并行執(zhí)行步驟S206至S211。這時,在步驟S212中,在時間t6,對接模塊106確定有將被讀取的用于操作2的結(jié)果數(shù)據(jù),因此該方法向步驟S214傳遞。在步驟S214中,對接模塊106從寄存器組B 112的寄存器讀取用于操作2的結(jié)果數(shù)據(jù),并且向程序處理器102傳遞結(jié)果數(shù)據(jù)。用于操作2的結(jié)果數(shù)據(jù)在時間t7完成從寄存器組B 112被讀取。
[0050]該方法然后向步驟S216傳遞。在步驟S216中,在時間t7,對接模塊106確定沒有更多如下操作,用于這些操作的數(shù)據(jù)準備好被加載。因此該方法從步驟S216向步驟S223傳遞,在該步驟S223中,“最后操作”標志被設置。該方法然后向以下描述的步驟S224傳遞。
[0051]在步驟S206中,確定用于操作3的數(shù)據(jù)已經(jīng)被加載到現(xiàn)在耦合到專用處理器104的寄存器組A 110中。因此,該方法從步驟S206向步驟S210傳遞。在步驟S210中,專用處理器104使用在寄存器組110的寄存器中存儲的數(shù)據(jù)來執(zhí)行操作3。操作可以例如是對矢量執(zhí)行的矢量處理操作。對操作3的執(zhí)行是從時間t6直至時間t8。在專用處理器104已經(jīng)完成操作3的執(zhí)行時,執(zhí)行完成標志被設置。該方法然后從步驟S210向步驟S211傳遞,在該步驟S211中確定“最后操作”標志已經(jīng)被設置。因此該方法向步驟S224傳遞。
[0052]在步驟S224中,對接模塊106等待直至執(zhí)行完成標志被設置、S卩,直至在專用處理器104已經(jīng)完成操作3的執(zhí)行并且步驟S211已經(jīng)被執(zhí)行時的時間t8。這時(t8),對接模塊106轉(zhuǎn)換寄存器組,從而使得寄存器組110和112到對接模塊106和專用處理器104的耦合的切換。因此,在時間t8之后,對接模塊106耦合到寄存器組A 110,并且專用處理器104耦合到寄存器組B 112。
[0053]然后在步驟S226,在時間t8,對接模塊106從寄存器組A 110的寄存器讀取用于操作3的結(jié)果數(shù)據(jù),并且向程序處理器102傳遞結(jié)果數(shù)據(jù)。用于操作3的結(jié)果數(shù)據(jù)在時間t9完成從寄存器組A 110被讀取。然后在步驟S228中,該方法結(jié)束,因為序列的所有三個操作已經(jīng)被傳遞到專用處理器104并且由專用處理器104執(zhí)行,并且用于序列的所有三個操作的結(jié)果數(shù)據(jù)已經(jīng)被讀取和傳遞到程序處理器102。程序處理器102可以繼續(xù)執(zhí)行程序,并且如果進一步操作是專用處理器104適合的類型,則那些操作可以被傳遞到專用處理器104以用于以與以上關(guān)于圖2和圖3描述的方式相似的方式在其上執(zhí)行。
[0054]在參照圖2描述的方法中,加載完成標志充當對數(shù)據(jù)(例如,控制數(shù)據(jù))是否已經(jīng)完成加載到寄存器組之一中的指示,并且對接模塊106可以維持加載完成標志以確定用于后續(xù)操作的數(shù)據(jù)是否已經(jīng)被加載。相似地,執(zhí)行完成標志充當對當前操作是否已經(jīng)完成由專用處理器104執(zhí)行的指示,并且對接模塊106可以維持執(zhí)行完成標志以確定專用處理器104是否已經(jīng)完成對當前操作的執(zhí)行。對接模塊108可以控制一組寄存器組108以響應于例如基于加載完成標志和執(zhí)行完成標志的狀態(tài)確定專用處理器已經(jīng)完成當前操作的執(zhí)行并且用于后續(xù)操作的數(shù)據(jù)已經(jīng)被加載來向?qū)S锰幚砥魈峁碜砸唤M寄存器組108的寄存器組之一的用于后續(xù)操作的數(shù)據(jù)的訪問。另外,對接模塊108可以響應于例如基于加載完成標志和執(zhí)行完成標志的狀態(tài)確定專用處理器已經(jīng)完成當前操作的執(zhí)行并且用于后續(xù)操作的數(shù)據(jù)已經(jīng)被加載來轉(zhuǎn)換寄存器組(110和112)到專用處理器104和對接模塊106的耦合。
[0055]圖3圖示了對對接模塊106和多個寄存器組108的使用允許專用處理器104花費它的時間的大比例執(zhí)行操作,而這是它適于高效執(zhí)行的。在圖3中所示的示例中,專用處理器104對三個操作的執(zhí)行在時間^與丨8之間幾乎連續(xù),但是在時間丨5與丨6之間有小的執(zhí)行間斷,因為用來讀取用于操作I的結(jié)果數(shù)據(jù)并且加載用于操作3的數(shù)據(jù)的時間多于用來執(zhí)行操作2的時間??梢哉J識到,三個操作的處理在參照圖1至圖3描述的系統(tǒng)中比在如在以上【背景技術(shù)】一節(jié)中描述的如下系統(tǒng)中更快,在該系統(tǒng)中,每個操作在下一操作被處理之前被處理(即,加載、執(zhí)行、然后讀取出數(shù)據(jù)以用于操作)。例如,在圖3中所示示例中用來處理三個操作的時間是t9-to。對照而言然,如果依次地處理三個操作(加載、執(zhí)行和讀取),則用來處理
二個操作的時間將是:(tl-to) + (t3_tl) + (t4_t3) + (t2_tl) + (t5_t3) + (t7_t6) + (t6_t4) + (t8_t6)+ (七9_七8),這等于(^9-1:()) + (^2-1:1) + (^5-七3) + (^7-七6)。因此,在圖3中所示的示例中與依次處理操作比較而節(jié)省的時間量由(^2-1:1) + (^5-七3) + (^7-七6)給定。這些是并行處理出現(xiàn)的時間。也就是說,在時間。與〖2之間,專用處理器104使用寄存器組A 110來執(zhí)行操作I,并且并發(fā)地,對接模塊106向寄存器組B 112中加載用于操作2的數(shù)據(jù);在時間^與七之間,專用處理器104使用寄存器組B 112來執(zhí)行操作2,并且并發(fā)地,對接模塊106從寄存器組A 110讀取用于操作I的結(jié)果數(shù)據(jù)并且向寄存器組A 110中加載用于操作3的數(shù)據(jù);以及在時間U與t7之間,專用處理器104使用寄存器組A 110來執(zhí)行操作3,并且并發(fā)地,對接模塊106從寄存器組B112讀取用于操作2的結(jié)果數(shù)據(jù)。因此,對寄存器組108的不同寄存器組的并發(fā)訪問去除用于設立寄存器和從寄存器讀取用于將在專用處理器104上執(zhí)行的操作的結(jié)果數(shù)據(jù)的時間延遲的至少一些時間延遲。
[0056]圖3中所示的示例用于三個操作的序列,但是在其它示例中,可以使用參照圖2描述的方法來操縱任何數(shù)目的操作的序列。
[0057]在以上描述的示例中,經(jīng)由寄存器組108中的一個寄存器組從專用處理器104向程序處理器102傳遞用于執(zhí)行的操作的結(jié)果數(shù)據(jù)。在備選示例中,由專用處理器104執(zhí)行的操作的結(jié)果可以被寫入到存儲器114,由此如果程序處理器102需要訪問結(jié)果數(shù)據(jù),則它可以訪問存儲器114以便獲得結(jié)果數(shù)據(jù)??梢允浅绦蛱幚砥?02無需接收由專用處理器104執(zhí)行的操作的結(jié)果這樣的情況,在該情況下可以向存儲器114寫入結(jié)果而無任何進一步需要程序處理器102從存儲器114取回結(jié)果。另外,對接模塊106可以提供存儲器保護以控制專用處理器104對存儲器114的訪問。例如,對接模塊106可以指示存儲器114中的哪些存儲器地址是用于由專用處理器104執(zhí)行的操作的結(jié)果被寫入到的有效地址。以這一方式,如果專用處理器104嘗試向存儲器114的在有效地址范圍以外的存儲器地址寫入數(shù)據(jù),則可以生成錯誤信號并且可以防止向無效存儲器地址寫入數(shù)據(jù)。以這一方式,可以防止專用處理器104破壞存儲器114的不允許訪問的區(qū)域。
[0058]在存儲器114中存儲操作的結(jié)果允許第一操作的結(jié)果在下一操作的執(zhí)行期間由專用處理器104取回。這對于如下重疊的操作可能是不可能的,在該重疊的操作中,結(jié)果數(shù)據(jù)經(jīng)由一個寄存器組被傳遞回到程序處理器,而用于下一操作的數(shù)據(jù)存在于不同寄存器組中,因為在該情況下,操作X已經(jīng)在用于操作x-1的結(jié)果已經(jīng)被讀取之前被排隊用于操作。然而,如果操作x-1的結(jié)果被存儲在存儲器114中,則下一操作(操作X)可以通過從存儲器114取回數(shù)據(jù)來使用操作x-1的結(jié)果作為輸入。
[0059]在圖1中,寄存器組108被示出為位于專用處理器104以外。在其它示例中,寄存器組108可以位于專用處理器104內(nèi)。
[0060]相似地,在圖1中,對接模塊106被示出為位于程序處理器102以外。在其它示例中,這里描述的對接模塊106的功能可以被實施為程序處理器102的部分,從而使得在概念上在程序處理器102內(nèi)實施對接模塊106。作為另一備選,可以在專用處理器104內(nèi)實施對接模塊106。
[0061]在圖1中所示的處理系統(tǒng)100中有兩個寄存器組110和112。圖4示出了另一示例中的處理系統(tǒng)400。處理系統(tǒng)400包括如以上關(guān)于圖1描述的程序處理器102和專用處理器104。另外,處理系統(tǒng)400以與以上關(guān)于圖1描述的相同方式耦合到存儲器114。處理系統(tǒng)400也包括對接模塊406和一組寄存器組408,但是這些與圖1中所示的處理系統(tǒng)100的對應單元略微地不同。具體而言,處理系統(tǒng)400包括三個寄存器組:耦合到對接模塊406的第一寄存器組410(在圖4中被標注為“A”)、耦合到專用處理器104的第二寄存器組412(在圖4中被標注為“B”)和耦合到寄存器組B 412的第三寄存器組414(在圖4中被標注為“C”)。寄存器組C 414也耦合到寄存器組A 410和對接模塊406之一或者二者,其中用虛線示出這些耦合以表示在一些示例中,僅耦合之一存在。寄存器組(410、412和414)中的每個寄存器組包括專用處理器104可以用來執(zhí)行操作的寄存器。也就是說,寄存器組410、412和414被配置為存儲與專用處理器104適于執(zhí)行的特定類型的操作有關(guān)的數(shù)據(jù)。
[0062]處理系統(tǒng)400以與以上描述的處理系統(tǒng)100相似的方式被操作,并且相似地允許使用在寄存器組之一中存儲的數(shù)據(jù)在專用處理器104上并發(fā)執(zhí)行當前操作,而用于后續(xù)操作的數(shù)據(jù)被加載到寄存器組中的不同寄存器組中。然而,取代在兩個寄存器組(110和112)之間轉(zhuǎn)換訪問,在處理系統(tǒng)400中使用了三個寄存器組。在這一情況下,響應于確定專用處理器104已經(jīng)完成當前操作的執(zhí)行并且用于后續(xù)操作的數(shù)據(jù)已經(jīng)被加載到寄存器組410中(例如,基于執(zhí)行完成標志和加載完成標志),對接模塊406可以控制該一組寄存器組408,從而使得(a)用于當前操作的結(jié)果數(shù)據(jù)從寄存器組B 412被傳遞到寄存器組C 414,并且(b)用于后續(xù)操作的數(shù)據(jù)從寄存器組A 410被傳遞到寄存器組B 412,由此允許專用處理器104通過訪問來自寄存器組B 412的數(shù)據(jù)來執(zhí)行后續(xù)操作。以這一方式,專用處理器104可以在當前操作已經(jīng)完成執(zhí)行之后快速地開始執(zhí)行后續(xù)操作。
[0063]如果寄存器組C 414耦合到寄存器組A 410,則對接模塊406可以控制寄存器組408,從而使得一旦已經(jīng)執(zhí)行了以上描述的步驟(a)和(b),就執(zhí)行步驟(C),其中用于當前操作的結(jié)果數(shù)據(jù)從寄存器組C 414被傳遞到寄存器組A 410。這允許對接模塊406從寄存器組A410讀取用于當前操作的結(jié)果數(shù)據(jù)。在已經(jīng)從寄存器組A 410讀取了結(jié)果數(shù)據(jù)時,則對接模塊406可以向寄存器組A 410中加載用于另一操作的數(shù)據(jù),而專用處理器執(zhí)行后續(xù)操作,并且該方法然后可以對于將由專用處理器104執(zhí)行的操作序列而重復。
[0064]如果寄存器組C414耦合到對接模塊106,則對接模塊406可以控制寄存器組408,從而使得一旦已經(jīng)執(zhí)行了以上描述的步驟(a)和(b),就執(zhí)行步驟(C),在該步驟中用于當前操作的結(jié)果數(shù)據(jù)由對接模塊106從寄存器組C 414讀取。在已經(jīng)從寄存器組C 414讀取了結(jié)果數(shù)據(jù)時,則對接模塊406可以向寄存器組A 410中加載用于另一操作的數(shù)據(jù),而專用處理器執(zhí)行后續(xù)操作,該方法然后可以對于將由專用處理器104執(zhí)行的操作序列而重復。
[0065]圖5示出了在又一示例中的處理系統(tǒng)500。處理系統(tǒng)500包括如以上關(guān)于圖1描述的程序處理器102和專用處理器104。另外,處理系統(tǒng)500以與以上關(guān)于圖1描述的相同方式耦合到存儲器114。處理系統(tǒng)500也包括對接模塊506和一組寄存器組508,但是這些與圖1中所示的處理系統(tǒng)100的對應單元和圖4中所示的處理系統(tǒng)400的對應單元略微地不同。具體而言,處理系統(tǒng)500包括兩個寄存器組:耦合到對接模塊506的第一寄存器組510(在圖5中被標注為“A”)和耦合到專用處理器104的第二寄存器組512(在圖5中被標注為“B”)。處理系統(tǒng)500也包括耦合到寄存器組510和512 二者的高速緩存514(在圖5中被標注為“C”)。高速緩存514被配置為把持比寄存器組510和512中的每個寄存器組更少的數(shù)據(jù)。寄存器組(510和512)中的每個寄存器組包括專用處理器104可以用來執(zhí)行操作的寄存器。也就是說,寄存器組510和512被配置為存儲與專用處理器104適于執(zhí)行的特定類型的操作有關(guān)的數(shù)據(jù)。高速緩存被配置為一次存儲用于操作的數(shù)據(jù)的一部分,并且用來在寄存器組510與512之間逐個部分地傳送數(shù)據(jù)。
[0066]處理系統(tǒng)500以與以上描述的處理系統(tǒng)100和400相似的方式被操作,并且相似地允許使用在寄存器組之一中存儲的數(shù)據(jù)在專用處理器104上并發(fā)執(zhí)行當前操作,而用于后續(xù)操作的數(shù)據(jù)被加載到寄存器組中的不同寄存器組中。然而,響應于確定專用處理器104已經(jīng)完成當前操作的執(zhí)行并且用于后續(xù)操作的數(shù)據(jù)已經(jīng)被加載到寄存器組510中(例如,基于執(zhí)行完成標志和加載完成標志),對接模塊506可以控制該一組寄存器組508,從而使得(a)用于當前操作的結(jié)果數(shù)據(jù)的一部分(例如,來自寄存器組512的寄存器的前1/3的數(shù)據(jù))從寄存器組B 512被傳遞到高速緩存514,(b)用于后續(xù)操作的數(shù)據(jù)的對應部分(例如,來自寄存器組510的寄存器的前1/3的數(shù)據(jù))從寄存器組A 510被傳遞到寄存器組B 512,以及(c)高速緩存514中的用于當前操作的結(jié)果數(shù)據(jù)的一部分從寄存器組514被傳遞到寄存器組A510。對于數(shù)據(jù)的不同部分(例如,對于寄存器組的寄存器的第二 1/3并且然后對于寄存器組的寄存器的第三1/3)迭代步驟(a)、(b)和(C),直至用于當前操作的所有結(jié)果數(shù)據(jù)已經(jīng)經(jīng)由高速緩存514傳遞到寄存器組A 510并且用于后續(xù)操作的所有數(shù)據(jù)已經(jīng)傳遞到寄存器組B 512。這允許專用處理器104通過訪問來自寄存器組B 512的數(shù)據(jù)來執(zhí)行后續(xù)操作,并且它允許對接模塊506從寄存器組A 510讀取用于當前操作的結(jié)果數(shù)據(jù)并且向程序處理器102傳遞結(jié)果數(shù)據(jù)。對接模塊506然后可以向寄存器組A 510中加載用于另一操作的數(shù)據(jù),而專用處理器執(zhí)行后續(xù)操作。在向或者從高速緩存514傳遞的數(shù)據(jù)的“部分”中的數(shù)據(jù)量可以對應于高速緩存可以對應于(例如,等于)在給定的時間存儲的數(shù)據(jù)量。該方法可以對于將由專用處理器104執(zhí)行的操作序列而重復。
[0067]以上描述的三個處理系統(tǒng)100、400和500都允許專用處理器104通過訪問來自寄存器組的數(shù)據(jù)來執(zhí)行當前操作,而用于后續(xù)操作的數(shù)據(jù)被加載到不同寄存器組中。然而,不同系統(tǒng)具有一些不同。處理系統(tǒng)100比處理系統(tǒng)400和500更面積高效,因為處理系統(tǒng)100僅包括兩個寄存器組(110和112),而處理系統(tǒng)400包括三個寄存器組(410、412和414)并且處理系統(tǒng)500包括兩個寄存器組和高速緩存(510、512和514)。每個寄存器組或者高速緩存使用某一數(shù)量的存儲器(例如,每個寄存器組可以被布置為存儲近似4000位),這由此占用處理系統(tǒng)中的面積。另外,處理系統(tǒng)100允許單周期切換(S卩,轉(zhuǎn)換)寄存器組,因此在專用處理器104完成操作的執(zhí)行與開始下一操作的執(zhí)行之間有很小延遲。然而,轉(zhuǎn)換寄存器組可能影響專用處理器104的定時,因為專用處理器104在不同時間耦合到不同寄存器組。
[0068]對照而言,處理系統(tǒng)400使用三個全寄存器組,因此它比系統(tǒng)100和500更少面積高效。在處理系統(tǒng)400中,在操作之間在寄存器組之間切換數(shù)據(jù)將需要一個或者兩個周期,因此它仍然很快(比系統(tǒng)500更快),但是它可能沒有在處理系統(tǒng)100中的轉(zhuǎn)換塊。然而,在處理系統(tǒng)400中,由于專用處理器104總是耦合到寄存器組412,所以沒有如在處理系統(tǒng)100中那樣由于切換對寄存器組的耦合而對專用處理器104的定時的不利影響。
[0069]處理系統(tǒng)500在面積方面在系統(tǒng)100與400之間某處。高速緩存514使用少于全寄存器組的面積(但是多于如在處理系統(tǒng)100中那樣完全未實施高速緩存)。對系統(tǒng)500中的專用處理器104的定時無影響,因為專用處理器104總是耦合到寄存器組B 512。然而,在寄存器組512與514之間切換數(shù)據(jù)需要多個周期,因為一次傳送來自寄存器組的數(shù)據(jù)的僅部分(因為高速緩存太小以至于不能一次保持來自寄存器組的所有數(shù)據(jù))。因此,在專用處理器104完成操作的執(zhí)行與開始下一操作的執(zhí)行之間的時間在處理系統(tǒng)500中比在處理系統(tǒng)100和400中更長。高速緩存514的大小可以在不同示例中不同以變更面積比對切換時間的權(quán)衡。
[0070]在以上描述的示例中,處理系統(tǒng)使用二的隊列深度以用于對將由專用處理器104執(zhí)行的操作排隊,即,在專用處理器104執(zhí)行當前操作之時,用于僅一個后續(xù)操作的數(shù)據(jù)(例如,控制數(shù)據(jù))被加載到寄存器組中。在其它示例中,處理系統(tǒng)可以使用多于二的隊列深度,從而使得可以在相應寄存器組中保持用于多于一個后續(xù)操作的數(shù)據(jù)而專用處理器執(zhí)行當前操作。這些處理系統(tǒng)將使用比在以上描述的示例中更多的寄存器組,因為寄存器組未用來一次存儲用于多于一個操作的數(shù)據(jù)。對寄存器組的控制將需要與以上描述的控制略微地不同,但是本領(lǐng)域技術(shù)人員將能夠適當?shù)乜刂萍拇嫫鹘M,從而是的在適當時間向?qū)S锰幚砥?04提供用于適當操作的數(shù)據(jù)以用于在其上執(zhí)行,而可以從另一寄存器組讀取用于先前執(zhí)行的操作的結(jié)果數(shù)據(jù)和/或可以如適當?shù)哪菢酉蛄硪患拇嫫鹘M中加載用于后續(xù)操作的數(shù)據(jù)。例如,在其中寄存器組到對接模塊或者專用處理器104的耦合被切換的系統(tǒng)(與處理系統(tǒng)100相似)中,可以按照順序(例如,輪循順序)切換寄存器組,從而使得轉(zhuǎn)而為對接模塊和專用處理器104例如以循環(huán)方式提供對寄存器組的訪問。具有大于二的隊列深度可以進一步減少專用處理器104花費在未執(zhí)行操作上的時間。例如,參照圖3,在專用處理器完成執(zhí)行操作2(在時間t5)時,用于操作3的數(shù)據(jù)可以已經(jīng)被加載到寄存器組中,因為加載操作可以在時間^更早開始(并且對接模塊可以在該時間向又一寄存器組中加載用于操作4的數(shù)據(jù)),從而使得專用處理器104可以立即地開始執(zhí)行操作3(在時間t5)而未等待操作4完成向又一寄存器組中加載。注意,在這一示例中,對寄存器組之一的訪問被切換的時間可以對于對接模塊和專用處理器不同。
[0071]可以在更寬計算機系統(tǒng)中實施以上描述的處理系統(tǒng)(100、400或者500)。例如,圖6示出了包括處理系統(tǒng)602(可以是以上面描述的處理系統(tǒng)100、400或者500)、存儲器604(可以是以上描述的處理器114)和接收器606的計算機系統(tǒng)600。接收器606被配置為從另一設備接收信號并且可以包括用于接收無線信號的天線。計算機系統(tǒng)也包括其它設備608,比如顯示器610、揚聲器612和相機614。計算機系統(tǒng)的部件可以經(jīng)由通信總線616相互通信。在示例中,可以在設備(比如移動電話、平板計算機、膝上型計算機、電視或者任何其它適當設備)中實施計算機系統(tǒng)600。接收器606可以被配置為接收信號并且向處理系統(tǒng)602傳遞它們,其中處理系統(tǒng)602可以包括可以用來對由接收器606接收的信號高效地執(zhí)行數(shù)字信號處理操作的DSP(作為專用處理器104)。
[0072]在其它實施例中,可以與控制這里描述的系統(tǒng)的方式不同地控制系統(tǒng)、例如經(jīng)由使用標志,但是可以實現(xiàn)相似效果。
[0073]—般地,可以使用軟件、固件、硬件(例如,固定邏輯電路裝置)或者這些實現(xiàn)方式的任何組合來實施以上描述的功能、方法、技術(shù)或者部件中的任何功能、方法、技術(shù)或者部件。術(shù)語“模塊”、“功能”、“部件”、“±夬”、“單元”和“邏輯”這里用來一般地代表軟件、固件、硬件或者其任何組合。
[0074]在軟件實現(xiàn)方式的情況下,模塊、功能、部件、單元或者邏輯代表在處理器(例如,一個或者多個CPU)上被執(zhí)行時執(zhí)行指定的任務的程序代碼。在一個示例中,描述的方法可以由配置有以機器可讀形式存儲于機器可讀介質(zhì)上的軟件的計算機執(zhí)行。計算機可讀介質(zhì)的一個這樣的配置是信號承載介質(zhì),并且因此被配置為比如經(jīng)由網(wǎng)絡向設備傳輸指令(例如,作為載波)。計算機可讀介質(zhì)也可以被配置為非瞬態(tài)計算機可讀存儲介質(zhì),并且因此不是信號承載介質(zhì)。計算機可讀存儲介質(zhì)的示例包括隨機存取存儲器(RAM)、只讀存儲器(R0M)、光盤、閃存、硬盤存儲器和可以使用磁、光和其它技術(shù)以存儲指令或者其它數(shù)據(jù)的并且可以由機器訪問的其它存儲器設備。
[0075]軟件可以是以包括計算機程序代碼的計算機程序這一形式(該計算機程序代碼用于配置計算機以執(zhí)行描述的方法的組成部分)或者以包括計算機程序代碼裝置的計算機程序這一形式(該計算機程序代碼裝置被適配為在程序在計算機上被運行時執(zhí)行這里描述的方法中的任何方法的步驟,并且其中計算機程序可以被體現(xiàn)在計算機可讀介質(zhì)上)。程序代碼可以被存儲于一個或者多個計算機可讀介質(zhì)中。這里描述的技術(shù)的特征獨立于平臺,這意味著這些技術(shù)可以被實施在具有多種處理器的多種計算平臺上。
[0076]本領(lǐng)域技術(shù)人員也將認識到,功能、技術(shù)或者方法的全部或者部分可以由專用電路、專用集成電路、可編程邏輯陣列、現(xiàn)場可編程門陣列等實現(xiàn)。例如,模塊、功能、部件、單元或者邏輯(例如處理系統(tǒng)100、400和500的部件)可以包括以電路裝置這一形式的硬件。這樣的電路裝置可以包括在制造工藝中可用的晶體管和/或其它硬件元件。舉例而言,這樣的晶體管和/或其它元件可以用來形成實施和/或包含存儲器的電路裝置或者結(jié)構(gòu),比如寄存器、觸發(fā)器或者鎖存器、邏輯運算器(比如布爾運算)、數(shù)學運算器(比如加法器、乘法器)或者移位器以及互連??梢宰鳛槎ㄖ齐娐坊蛘邩藴蕟卧獛臁⒑昊蛘咴谄渌橄蠡教峁┻@樣的元件。這樣的元件可以在具體布置中被互連。模塊、功能、部件、單元或者邏輯(例如處理系統(tǒng)100、400和500的部件)可以包括如下電路裝置,該電路裝置是可以被編程為執(zhí)行一個或者多個功能的固定功能和電路裝置;可以從固件或者軟件更新或者控制機制提供這樣的編程。在示例中,硬件邏輯具有實施固定功能操作、狀態(tài)機或者過程的電路裝置。
[0077]也旨在于涵蓋如下軟件,該軟件“描述”或者定義硬件的配置,該硬件實施以上描述的模塊、功能、部件、單元或者邏輯(例如,處理系統(tǒng)100、400和500的部件),比如如用于設計集成電路或者用于配置可編程芯片以實現(xiàn)希望的功能的HDL(硬件描述語言)軟件。也就是說,可以提供計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)具有在其上編碼的以集成電路定義數(shù)據(jù)集這一形式的計算機可讀程序代碼,該集成電路定義數(shù)據(jù)集在集成電路制造系統(tǒng)中被處理時配置系統(tǒng)以制造配置為執(zhí)行這里描述的方法中的任何方法的處理系統(tǒng)或者制造包括這里描述的任何裝置的處理系統(tǒng)。IC定義數(shù)據(jù)集可以是以例如在適當HDL中編寫對計算機代碼、比如寄存器傳遞級(RTL)代碼的形式?,F(xiàn)在將關(guān)于圖7描述如下示例,該示例在集成電路制造系統(tǒng)處理集成電路定義數(shù)據(jù)集以便配置系統(tǒng)以制造處理系統(tǒng)。
[0078]圖7示出了包括布局處理系統(tǒng)704和集成電路生成系統(tǒng)706的集成電路(IC)制造系統(tǒng)702的示例。IC制造系統(tǒng)702被配置為接收IC定義數(shù)據(jù)集(例如,定義如在這里的示例中的任何示例中描述的處理系統(tǒng))、處理IC定義數(shù)據(jù)集并且根據(jù)IC定義數(shù)據(jù)集生成IC(例如,該IC定義數(shù)據(jù)集例如體現(xiàn)如在這里的示例中的任何示例中描述的處理系統(tǒng))。對IC定義數(shù)據(jù)集的處理配置IC制造系統(tǒng)702以制造體現(xiàn)如在這里的示例中的任何示例中描述的處理系統(tǒng)的集成電路。更具體地,布局處理系統(tǒng)704被配置為接收和處理IC定義數(shù)據(jù)集以確定電路布局。從IC定義數(shù)據(jù)集確定電路布局的方法在本領(lǐng)域中是已知的,并且例如可以涉及合成RTL代碼以例如在邏輯部件(例如,NAND、N0R、AND、0R、MUX和FLIP-FLOP部件)方面確定待生成的電路的門級表示??梢酝ㄟ^確定用于邏輯部件的定位信息來從電路的門級表示確定電路布局。這可以自動地或者在用戶參與下被完成以便優(yōu)化電路布局。在部件處理系統(tǒng)704已經(jīng)確定了電路布局時,它可以向IC生成系統(tǒng)706輸出電路布局定義。IC生成系統(tǒng)706如在本領(lǐng)域中已知的那樣根據(jù)電路部件定義生成1C。例如,IC生成系統(tǒng)706可以實施半導體器件制造工藝以生成1C,這可以涉及到光刻和化學處理步驟的多步驟序列,在這些步驟期間在由半傳導材料制成的晶片上逐漸地創(chuàng)建電子電路。電路布局定義可以是以可以在用于根據(jù)電路定義生成IC的光刻工藝中使用的掩模的形式。備選地,向IC生成系統(tǒng)706提供的電路布局定義可以是計算機可讀代碼的形式,IC生成系統(tǒng)706可以使用該計算機可讀代碼以形成用于在生成IC時使用的適當掩模??梢远荚谝粋€位置例如由一方實施由IC制造系統(tǒng)702執(zhí)行的不同過程。備選地,IC制造系統(tǒng)702可以是分布式系統(tǒng),從而使得工藝中的一些工藝可以在不同位置被執(zhí)行并且可以由不同方執(zhí)行。例如,可以在不同位置和/或由不同方執(zhí)行以下階段中的一些階段:(i)合成代表IC定義數(shù)據(jù)集的RTL代碼以形成待生成的電路的門級表示、
(ii)基于門級表示生成電路布局、(iii)根據(jù)電路布局形成掩模和(iv)使用掩模來制作集成電路。
[0079]在其它示例中,在集成電路制造系統(tǒng)處理集成電路定義數(shù)據(jù)集可以配置系統(tǒng)以制造處理系統(tǒng)而未處理IC定義數(shù)據(jù)集以便確定電路布局。例如,集成電路定義數(shù)據(jù)集可以定義可重配置處理器(比如FPGA的配置),并且對該數(shù)據(jù)集的處理可以配置IC制造系統(tǒng)以生成具有該定義的配置的可重配置處理器(例如,通過向FPGA加載配置數(shù)據(jù))。
[0080]在一些示例中,集成電路定義數(shù)據(jù)集可以包括在由數(shù)據(jù)集定義的硬件上或者與由數(shù)據(jù)集定義的硬件組合運行的軟件。在圖7中所示的示例中,IC生成系統(tǒng)還可以由集成電路定義數(shù)據(jù)集配置以在制造集成電路時、根據(jù)在集成電路定義數(shù)據(jù)集定義的程序代碼向該集成電路上加載固件或者以別的方式與集成電路提供程序代碼用于與集成電路使用。
[0081]術(shù)語‘處理器’和‘計算機’這里用來指代任何如下設備或者其部分,該設備或者其部分具有處理能力,從而使得它可以執(zhí)行指令,或者指代能夠?qū)崿F(xiàn)功能或者方法的全部或者部分的專用電路,或者其任何組合。
[0082]雖然已經(jīng)用結(jié)構(gòu)特征和/或方法動作特有的語言描述了主題內(nèi)容,但是將理解,在所附權(quán)利要求中定義的主題內(nèi)容未必限于以上描述的具體特征或者動作。實際上,以上描述的具體特征和動作被公開作為實施權(quán)利要求的示例形式。將理解,以上描述的益處和優(yōu)點可以涉及一個示例或者可以涉及若干示例。
[0083]如本領(lǐng)域技術(shù)人員將清楚的那樣,可以擴展或者更改這里給定的任何范圍或者值而不失尋求的效果??梢匀邕m當?shù)哪菢影凑杖魏芜m當順序或者同時執(zhí)行這里描述的方法的步驟。以上描述的示例中的任何示例的方面可以與描述的其它示例中的任何示例的方面組合以形成更多示例而不失尋求的效果。
【主權(quán)項】
1.一種處理系統(tǒng),包括: 專用處理器,適合用于執(zhí)行特定類型的操作; 程序處理器,被配置為執(zhí)行包括多個操作的程序,其中所述程序處理器被配置為使得所述程序的為所述特定類型的操作由所述專用處理器執(zhí)行; 一組兩個或者更多個寄存器組,被配置為存儲與所述特定類型的操作有關(guān)的數(shù)據(jù); 對接模塊,被配置為通過以下各項來使用所述一組寄存器組來控制所述程序處理器與所述專用處理器之間的數(shù)據(jù)流: 并發(fā)地:(i)向所述專用處理器提供對所述寄存器組中的存儲用于當前操作的先前加載的數(shù)據(jù)的寄存器組的訪問,由此允許所述專用處理器執(zhí)行所述當前操作,以及(ii)訪問所述寄存器組中的不同寄存器組以向所述寄存器組中的所述不同寄存器組中加載用于后續(xù)操作的數(shù)據(jù)以用于設立用于由所述專用處理器后續(xù)執(zhí)行的所述后續(xù)操作;以及 在所述專用處理器完成所述當前操作的執(zhí)行之后,控制所述一組寄存器組以向所述專用處理器提供對來自所述一組寄存器組的所述寄存器組之一的用于所述后續(xù)操作的所述數(shù)據(jù)的訪問,由此允許所述專用處理器執(zhí)行所述后續(xù)操作。2.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其中所述對接模塊被配置為在步驟(ii)中使用對所述寄存器組中的所述不同寄存器組的所述訪問以在用于所述后續(xù)操作的所述數(shù)據(jù)被加載到所述寄存器組中的所述不同寄存器組中之前從所述寄存器組中的所述不同寄存器組讀取用于由所述專用處理器執(zhí)行的先前操作的結(jié)果數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其中所述專用處理器被配置為向與所述一組寄存器組不同的存儲器寫入由所述專用處理器執(zhí)行的操作的結(jié)果。4.根據(jù)權(quán)利要求3所述的處理系統(tǒng),其中所述對接模塊被配置為指示所述存儲器中的哪些存儲器地址是用于所述結(jié)果被寫入到的有效地址。5.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中所述對接模塊被配置為對于將由所述專用處理器執(zhí)行的操作序列中的每個操作迭代并發(fā)步驟(i)和(ii)。6.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中所述對接模塊被配置為控制所述一組寄存器組以響應于確定所述專用處理器已經(jīng)完成所述當前操作的執(zhí)行并且用于所述后續(xù)操作的所述數(shù)據(jù)已經(jīng)被加載到所述寄存器組中的所述不同寄存器組中、來向所述專用處理器提供對來自所述寄存器組的所述寄存器組之一的用于所述后續(xù)操作的所述數(shù)據(jù)的訪問。7.根據(jù)權(quán)利要求6所述的處理系統(tǒng),其中所述對接模塊被配置為維持對數(shù)據(jù)是否已經(jīng)完成加載到所述寄存器組之一中以用于等待由所述專用處理器執(zhí)行的操作的指示,其中所述對接模塊被配置為使用所述指示以確定用于所述后續(xù)操作的所述數(shù)據(jù)是否已經(jīng)被加載到所述寄存器組中的所述不同寄存器組中。8.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中在所述一組寄存器組中有兩個寄存器組,其中所述寄存器組中的每個寄存器組被配置為在任何給定的時間耦合到所述專用處理器或者所述對接模塊,其中所述對接模塊被配置為控制對所述寄存器組的所述耦合,從而使得在所述專用處理器耦合到所述寄存器組中的第一寄存器組時,所述對接模塊耦合到所述寄存器組中的第二寄存器組,并且反之亦然。9.根據(jù)權(quán)利要求8所述的處理系統(tǒng),其中所述對接模塊被配置為響應于確定所述專用處理器已經(jīng)完成所述當前操作的執(zhí)行并且用于所述后續(xù)操作的所述數(shù)據(jù)已經(jīng)被加載到所述寄存器組中的所述不同寄存器組中、來轉(zhuǎn)換所述寄存器組到所述專用處理器和所述對接模塊的所述耦合。10.根據(jù)權(quán)利要求1至7中的任一權(quán)利要求所述的處理系統(tǒng),其中在所述一組寄存器組中有三個寄存器組,其中: 所述寄存器組中的第一寄存器組耦合到所述對接模塊; 所述寄存器組中的第二寄存器組耦合到所述專用處理器;以及 所述寄存器組中的第三寄存器組耦合到所述第二寄存器組; 其中所述對接模塊被配置為控制所述寄存器組,從而使得響應于確定所述專用處理器已經(jīng)完成所述當前操作的執(zhí)行并且用于所述后續(xù)操作的所述數(shù)據(jù)已經(jīng)被加載到所述第一寄存器組中:(a)用于所述當前操作的結(jié)果數(shù)據(jù)從所述第二寄存器組被傳遞到所述第三寄存器組,以及(b)用于所述后續(xù)操作的所述數(shù)據(jù)從所述第一寄存器組被傳遞到所述第二寄存器組,由此允許所述專用處理器通過訪問所述第二寄存器組來執(zhí)行所述后續(xù)操作。11.根據(jù)權(quán)利要求10所述的處理系統(tǒng),其中所述第三寄存器組還耦合到所述第一寄存器組,并且其中所述對接模塊被配置為控制所述寄存器組,從而使得還響應于確定所述專用處理器已經(jīng)完成所述當前操作的執(zhí)行并且用于所述后續(xù)操作的所述數(shù)據(jù)已經(jīng)被加載到所述第一寄存器組中:(c)用于所述當前操作的所述結(jié)果數(shù)據(jù)從所述第三寄存器組被傳遞到所述第一寄存器組,由此允許所述對接模塊從所述第一寄存器組讀取用于所述當前操作的所述結(jié)果數(shù)據(jù)。12.根據(jù)權(quán)利要求10所述的處理系統(tǒng),其中所述第三寄存器組還耦合到所述對接模塊,并且其中所述對接模塊被配置為控制所述寄存器組,從而使得還響應于確定所述專用處理器已經(jīng)完成所述當前操作的執(zhí)行并且用于所述后續(xù)操作的所述數(shù)據(jù)已經(jīng)被加載到所述第一寄存器組中用于所述當前操作的所述結(jié)果數(shù)據(jù)被所述對接模塊從所述第三寄存器組讀取。13.根據(jù)權(quán)利要求1至7中的任一權(quán)利要求所述的處理系統(tǒng),其中在所述一組寄存器組中有兩個寄存器組,其中所述寄存器組中的第一寄存器組耦合到所述對接模塊,并且所述寄存器組中的第二寄存器組耦合到所述專用處理器; 其中所述處理系統(tǒng)還包括耦合到兩個所述寄存器組并且被配置為保持比所述寄存器組中的每個寄存器組更少的數(shù)據(jù)的高速緩存; 其中所述對接模塊被配置為控制所述寄存器組,從而使得響應于確定所述專用處理器已經(jīng)完成所述當前操作的執(zhí)行并且用于所述后續(xù)操作的所述數(shù)據(jù)已經(jīng)被加載到所述第一寄存器組中:(a)用于所述當前操作的所述結(jié)果數(shù)據(jù)的部分從所述第二寄存器組被傳遞到所述高速緩存,(b)用于所述后續(xù)操作的所述數(shù)據(jù)的對應的部分從所述第一寄存器組被傳遞到所述第二寄存器組,以及(c)用于所述當前操作的所述結(jié)果數(shù)據(jù)的所述部分從所述高速緩存被傳遞到所述第一寄存器組; 其中對于數(shù)據(jù)的不同部分迭代步驟(a)、(b)和(C)。14.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中所述對接模塊耦合到所述程序處理器。15.根據(jù)權(quán)利要求14所述的處理系統(tǒng),其中所述對接模塊耦合到所述程序處理器的協(xié)處理器端口。16.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中所述對接模塊被配置為使用自動生成的代碼以加載對將由所述專用處理器執(zhí)行的操作的描述。17.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中所述特定類型的操作包括數(shù)據(jù)并行操作。18.根據(jù)權(quán)利要求17所述的處理系統(tǒng),其中所述數(shù)據(jù)并行操作包括矢量操作。19.根據(jù)任一前述權(quán)利要求所述的處理系統(tǒng),其中所述寄存器組位于所述專用處理器內(nèi)。20.根據(jù)權(quán)利要求1至18中的任一權(quán)利要求所述的處理系統(tǒng),其中所述寄存器組位于所述專用處理器以外。21.一種處理程序的操作的方法,包括: 在程序處理器處執(zhí)行所述程序,其中所述程序處理器使得所述程序的為特定類型的操作由專用處理器執(zhí)行,其中所述專用處理器適合用于執(zhí)行所述特定類型的操作; 通過以下各項使用一組寄存器組來控制所述程序處理器與所述專用處理器之間的數(shù)據(jù)流: 并發(fā)地:(i)向所述專用處理器提供對所述寄存器組中的存儲用于當前操作的先前加載的數(shù)據(jù)的寄存器組的訪問,由此允許所述專用處理器執(zhí)行所述當前操作,以及(ii)訪問所述寄存器組中的不同寄存器組以向所述寄存器組中的所述不同寄存器組中加載用于后續(xù)操作的數(shù)據(jù)以用于設立用于由所述專用處理器后續(xù)執(zhí)行的所述后續(xù)操作;以及 在所述專用處理器完成所述當前操作的執(zhí)行之后,控制所述一組寄存器組以向所述專用處理器提供對來自所述一組寄存器組的所述寄存器組之一的用于所述后續(xù)操作的所述數(shù)據(jù)的訪問,由此允許所述專用處理器執(zhí)行所述后續(xù)操作。
【文檔編號】G06F15/82GK106021175SQ201610170137
【公開日】2016年10月12日
【申請日】2016年3月23日
【發(fā)明人】P·默林, G·戴維斯, A·安德森
【申請人】想象技術(shù)有限公司