專利名稱:非阻塞協(xié)處理器接口系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型提出了一種協(xié)處理器接口系統(tǒng),特別是一種非阻塞式的協(xié)處理器接口系統(tǒng)。
背景技術(shù):
在基于微處理器的系統(tǒng)中,協(xié)處理器通常用于協(xié)助主處理器完成特定操作,對(duì)提高系統(tǒng)的工作性能起到重要作用。而協(xié)處理器與主處理器之間的接口方式,決定了主處理器和協(xié)處理器之間的通信延遲,數(shù)據(jù)通量等性能,同時(shí)也是系統(tǒng)整體性能的瓶頸之一?,F(xiàn)有的協(xié)處理器接口主要包括阻塞式協(xié)處理器同步接口和寄存器觸發(fā)式協(xié)處理器異步接口。阻塞式協(xié)處理器同步接口的原理是,當(dāng)需要應(yīng)用協(xié)處理器時(shí),主處理器向協(xié)處理器發(fā)出啟動(dòng)指令,協(xié)處理器根據(jù)該指令進(jìn)行操作,在協(xié)處理器操作期間,主處理器的指令流水線停止工作并等待協(xié)處理器的操作結(jié)果,協(xié)處理器完成操作之后向主處理器返回操作結(jié)果,此后主處理器繼續(xù)進(jìn)行后續(xù)操作。ARM的浮點(diǎn)協(xié)處理器接口就是典型的阻塞式協(xié)處理器同步接口。這種接口的優(yōu)點(diǎn)在于使得主處理器和協(xié)處理器硬件交換信息效率較高。但是,由于這種接口采用了“阻塞方式”,即主處理器和協(xié)處理器處于同一線程,在協(xié)處理器指令尚未完全結(jié)束之前主處理器需停止工作并等待,因此影響了主處理器的運(yùn)行效率。寄存器觸發(fā)式協(xié)處理器異步接口的原理是,主處理器將協(xié)處理器的啟動(dòng)指令映射至外部寄存器,協(xié)處理器讀取外部寄存器中的指令并進(jìn)行操作,在協(xié)處理器操作期間主處理器繼續(xù)工作,協(xié)處理器完成操作之后,將結(jié)果返回外部寄存器,主處理器通過讀取外部寄存器來(lái)獲得該結(jié)果。芯片設(shè)計(jì)者自行設(shè)計(jì)的專用接口多采用這種異步接口方式。這種接口的優(yōu)點(diǎn)是使得協(xié)處理器和主處理器在不同的進(jìn)程中工作,主處理器不再等待協(xié)處理器,并且這種接口能夠支持多個(gè)協(xié)處理器并行運(yùn)行,從而提高了系統(tǒng)性能。然而,這種接口的缺點(diǎn)在于依賴于外部寄存器的讀寫,而外部寄存器讀寫訪問通常延遲大,通量低,對(duì)寄存器的訪問通常需要幾十甚至上百個(gè)時(shí)鐘周期,每次通常只能訪問16位或32位。并且對(duì)寄存器的訪問本身是“阻塞式”的,也就是說,在訪問寄存器期間,主處理器和協(xié)處理器都停止工作,這使得寄存器的訪問速度和通量成為了主處理器和協(xié)處理器之間通信的瓶頸,因此這種接口不適合主處理器和協(xié)處理器之間有較多交流的應(yīng)用場(chǎng)合。
實(shí)用新型內(nèi)容本實(shí)用新型的目的在于提出一種非阻塞協(xié)處理器接口系統(tǒng),來(lái)克服現(xiàn)有的協(xié)處理器接口的上述問題。本實(shí)用新型的協(xié)處理器接口系統(tǒng)既具有高效率信息交換能力,同時(shí)也具有多線程能力和高度并行的優(yōu)點(diǎn)。根據(jù)本實(shí)用新型的一方面,提出了一種非阻塞協(xié)處理器接口系統(tǒng),其特征在于,該系統(tǒng)包括主處理器,其輸出端連接至少一個(gè)參數(shù)寄存器及至少一個(gè)協(xié)處理器,該主處理器向協(xié)處理器發(fā)送調(diào)用指令,并且在發(fā)送完成后繼續(xù)執(zhí)行后續(xù)指令,當(dāng)主處理器需要協(xié)處理器的操作結(jié)果時(shí),由主處理器向協(xié)處理器發(fā)出返回指令;至少一個(gè)參數(shù)寄存器,每個(gè)參數(shù)寄存器的輸入端分別連接至主處理器和數(shù)據(jù)總線,每個(gè)參數(shù)寄存器的輸出端連接至協(xié)處理器,所述參數(shù)寄存器根據(jù)主處理器發(fā)出的調(diào)用指令從所述數(shù)據(jù)總線讀取操作參數(shù)以提供給協(xié)處理器,并根據(jù)主處理器發(fā)出的返回指令從所述數(shù)據(jù)總線讀取返回參數(shù)以提供給協(xié)處理器;至少一個(gè)協(xié)處理器,根據(jù)所述操作參數(shù)執(zhí)行操作,所述協(xié)處理器包括內(nèi)部寄存器,協(xié)處理器在操作完成后將操作結(jié)果存儲(chǔ)在所述內(nèi)部寄存器中;外部寄存器,協(xié)處理器根據(jù)所述返回參數(shù)將協(xié)處理器內(nèi)部寄存器中存儲(chǔ)的操作結(jié)果寫入該外部寄存器;主處理器讀取該外部寄存器中的操作結(jié)果。
優(yōu)選地,該系統(tǒng)還包括支持多個(gè)單位寬度的寄存器讀寫的極寬總線;以及在至少一個(gè)參數(shù)寄存器中包含與該極寬總線相關(guān)聯(lián)的專用寄存器,該專用寄存器根據(jù)調(diào)用指令或返回指令,同時(shí)對(duì)多個(gè)單位寬度的寄存器進(jìn)行讀取。優(yōu)選地,該系統(tǒng)還可包括配置寄存器,用于存儲(chǔ)協(xié)處理器的靜態(tài)配置信息。優(yōu)選地,存在多個(gè)協(xié)處理器,并通過包含在調(diào)用指令中的協(xié)處理器ID來(lái)區(qū)分各個(gè)協(xié)處理器。本實(shí)用新型的非阻塞協(xié)處理器接口系統(tǒng)支持多個(gè)協(xié)處理器及多個(gè)硬件加速器之間的亂序訪問,具有極高的靈活性。本實(shí)用新型的非阻塞協(xié)處理器接口系統(tǒng)能夠支持極寬總線,數(shù)據(jù)通量大大增加。本實(shí)用新型的非阻塞協(xié)處理器接口系統(tǒng)能夠與傳統(tǒng)的阻塞式協(xié)處理器同步接口兼容。
圖I是根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的一種非阻塞協(xié)處理器接口方法的流程圖;圖2是根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的非阻塞協(xié)處理器接口系統(tǒng)的框圖;圖3是根據(jù)本實(shí)用新型的另一個(gè)實(shí)施例的非阻塞協(xié)處理器接口系統(tǒng)的框圖;圖4描述了根據(jù)本實(shí)用新型的非阻塞式協(xié)處理器接口系統(tǒng)的一個(gè)具體實(shí)施例。
具體實(shí)施方式
本實(shí)用新型的非阻塞協(xié)處理器接口方法的基本原理是-由主處理器向協(xié)處理器發(fā)出調(diào)用指令;-調(diào)用指令發(fā)出后即結(jié)束,主處理器繼續(xù)執(zhí)行后續(xù)指令;-協(xié)處理器根據(jù)調(diào)用指令完成操作并產(chǎn)生結(jié)果;-當(dāng)主處理器需要使用該結(jié)果時(shí),由主處理器向協(xié)處理器發(fā)出返回指令以收取結(jié)果O應(yīng)用本實(shí)用新型所述的方法,主處理器和協(xié)處理器之間的通信不需要經(jīng)過外部寄存器,因此具有如協(xié)處理同步接口那樣的信息交換能力,同時(shí)主處理器和協(xié)處理器處于不同進(jìn)程,因此具有協(xié)處理器異步接口那樣的多線程并行工作能力。圖I是根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的一種非阻塞協(xié)處理器接口方法的流程圖,該方法主要包括以下步驟S101,由主處理器向協(xié)處理器發(fā)送調(diào)用指令,并且在發(fā)送完成后主處理器繼續(xù)執(zhí)行后續(xù)指令,根據(jù)該調(diào)用指令獲得協(xié)處理器的操作參數(shù);S102,協(xié)處理器根據(jù)所述操作參數(shù)執(zhí)行操作;S103,協(xié)處理器在操作完成后將操作結(jié)果存儲(chǔ)在協(xié)處理器的內(nèi)部寄存器中;S104,當(dāng)主處理器需要協(xié)處理器的操作結(jié)果時(shí),由主處理器向協(xié)處理器發(fā)出返回指令,并根據(jù)該返回指令獲得返回參數(shù);S105,協(xié)處理器根據(jù)所述返回參數(shù)將協(xié)處理器內(nèi)部寄存器中存儲(chǔ)的操作結(jié)果寫入外部寄存器;S106,主處理器讀取該外部寄存器中的操作結(jié)果。其中,協(xié)處理器的操作參數(shù)可包括協(xié)處理器待完成的操作命令,操作數(shù)據(jù)等信息,返回參數(shù)可包括返回地址等信息。該方法可支持主處理器對(duì)多個(gè)協(xié)處理器的調(diào)用,并可通過協(xié)處理器ID來(lái)區(qū)分各個(gè)協(xié)處理器,協(xié)處理器ID是每個(gè)協(xié)處理器的唯一識(shí)別信息,可包含在調(diào)用指令和返回指令中。由于各個(gè)協(xié)處理器以及主處理器都具有獨(dú)立的線程,因此可以實(shí)現(xiàn)各個(gè)協(xié)處理器之間的亂序訪問,使得系統(tǒng)靈活性增大。在本實(shí)用新型的一個(gè)變型中,主處理器對(duì)每個(gè)協(xié)處理器發(fā)出的每次調(diào)用指令均需依次發(fā)出返回指令。在這一變型中,協(xié)處理器保留每次調(diào)用指令所產(chǎn)生的操作結(jié)果,以供主處理器通過返回指令獲取這些操作結(jié)果。在本實(shí)用新型的另一個(gè)變形中,每個(gè)協(xié)處理器只處理最近一次收到的調(diào)用指令,并只有對(duì)應(yīng)于該最后一次收到的調(diào)用指令的返回結(jié)果有效,之前的調(diào)用指令的操作結(jié)果如未先期被主處理器讀取則被放棄。舉例來(lái)說,如果主處理器發(fā)出要求協(xié)處理器A執(zhí)行操作I的調(diào)用指令,在未讀取操作I的結(jié)果時(shí)主處理器又發(fā)出要求協(xié)處理A執(zhí)行操作2的調(diào)用指令,則操作I的操作結(jié)果被放棄,僅保存操作2的操作結(jié)果供主處理器讀取。這種模式特別適用于主處理器執(zhí)行預(yù)判斷指令的情景,即操作I是主處理器根據(jù)概率預(yù)先判斷的操作,而操作2才是實(shí)際要執(zhí)行的操作,當(dāng)實(shí)際要執(zhí)行的操作2與預(yù)先判斷的操作I不同時(shí),則協(xié)處理器放棄操作I的結(jié)果僅保留操作2的結(jié)果。在本實(shí)用新型的另一變形中,主處理器可以省略發(fā)送調(diào)用指令的步驟,而直接發(fā)送返回指令,并將協(xié)處理器的操作參數(shù)包含在返回指令中,協(xié)處理器接收到返回指令之后,直接執(zhí)行操作并返回結(jié)果,在協(xié)處理器執(zhí)行操作期間,主處理器停止工作,等待協(xié)處理器完成操作并返回結(jié)果,這種工作模式實(shí)現(xiàn)了本實(shí)用新型的協(xié)處理器接口與傳統(tǒng)的阻塞式協(xié)處理器同步接口之間的兼容。在本實(shí)用新型的一個(gè)實(shí)施例中,協(xié)處理器可同時(shí)對(duì)多個(gè)寄存器進(jìn)行讀寫。也就是說,不同于傳統(tǒng)的每次只能讀寫一個(gè)單位寬度(例如16位或32位)的寄存器數(shù)據(jù),在根據(jù)本實(shí)用新型的方法中,協(xié)處理器可以同時(shí)讀寫多個(gè)單位寬度的寄存器數(shù)據(jù),例如同時(shí)讀寫4個(gè)16位寄存器以訪問64位數(shù)據(jù)、或讀寫8個(gè)16位寄存器以訪問128位數(shù)據(jù),使得協(xié)處理器能夠支持極寬且延遲極低的總線,從而大大提高了信息交換能力。在一個(gè)實(shí)施例中,可通過常規(guī)的數(shù)據(jù)總線為協(xié)處理器提供一個(gè)單位寬度的數(shù)據(jù),并通過極寬數(shù)據(jù)總線為協(xié)處理器提供多個(gè)單位寬度的數(shù)據(jù),從而提高協(xié)處理器的處理能力。在一個(gè)示例中,可以通過調(diào)用或返回指令中的一個(gè)字段來(lái)指示協(xié)處理器需要同時(shí)讀寫多少個(gè)單位寬度的寄存器。圖2是根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的非阻塞協(xié)處理器接口系統(tǒng)的框圖。其中,該接口系統(tǒng)主要包括主處理器201,其輸出端連接至少一個(gè)參數(shù)寄存器202及至少一個(gè)協(xié)處理器203,該主處理器201向協(xié)處理器203發(fā)送調(diào)用指令,并且在發(fā)送完成后繼續(xù)執(zhí)行后續(xù)指令,當(dāng)主處理器201需要協(xié)處理器203的操作結(jié)果時(shí),由主處理器201向協(xié)處理器203發(fā)出返回指令;至少一個(gè)參數(shù)寄存器202,每個(gè)參數(shù)寄存器202的輸入端分別連接至主處理器201和數(shù)據(jù)總線205,每個(gè)參數(shù)寄存器202的輸出端連接至協(xié)處理器203,所述參數(shù)寄存器202根據(jù)主處理器201發(fā)出的調(diào)用指令從所述數(shù)據(jù)總線205讀取操作參數(shù)以提供給協(xié)處理器203,并根據(jù)主處理器201發(fā)出的返回指令從所述數(shù)據(jù)總線205讀取返回參數(shù)以提供給協(xié)處理器203 ;至少一個(gè)協(xié)處理器203,根據(jù)所述操作參數(shù)執(zhí)行操作,所述協(xié)處理器203包括內(nèi)部寄存器2031,協(xié)處理器203在操作完成后將操作結(jié)果存儲(chǔ)在所述內(nèi)部寄存器2031中;外部寄存器204,協(xié)處理器203根據(jù)所述返回參數(shù)將協(xié)處理器203的內(nèi)部寄存器2031中存儲(chǔ)的操作結(jié)果寫入該外部寄存器204 ;主處理器201讀取該外部寄存器204中的操作結(jié)果。在如圖3所示的另一個(gè)實(shí)施例中,該系統(tǒng)還包括支持多個(gè)單位寬度的寄存器讀寫的極寬總線2051,在至少一個(gè)參數(shù)寄存器202中包含與該極寬總線2051相關(guān)聯(lián)的參數(shù)寄存器2021,或稱為專用寄存器,該專用寄存器可根據(jù)調(diào)用指令或返回指令,同時(shí)對(duì)多個(gè)單位寬度的寄存器進(jìn)行讀取,例如同時(shí)讀取64位或128位,作為協(xié)處理器203的輸入,從而極大地提高了協(xié)處理器203的工作效率。在另一個(gè)實(shí)施例中,該系統(tǒng)還可包括配置寄存器,用于存儲(chǔ)協(xié)處理器的靜態(tài)配置信息,該靜態(tài)配置信息可由用戶定義。圖4描述了根據(jù)本實(shí)用新型的非阻塞式協(xié)處理器接口系統(tǒng)的一個(gè)具體實(shí)施例。其中,該系統(tǒng)包括主處理器MP、協(xié)處理器C0P、參數(shù)寄存器UTP、VTP和XTP、協(xié)處理器輸出寄存器XWB、外部寄存器RF和配置寄存器C0PRF。其中,由主處理器MP發(fā)出調(diào)用指令,該調(diào)用指令指明了要調(diào)用的協(xié)處理器ID,與該ID相對(duì)應(yīng)的協(xié)處理器被激活,即本示例中的協(xié)處理器C0P,根據(jù)該調(diào)用指令,參數(shù)寄存器VTP和XTP分別讀取了協(xié)處理器COP的操作命令(在該示例中為16位)和協(xié)處理器COP的操作數(shù)(在該示例中為128位),協(xié)處理器COP根據(jù)參數(shù)寄存器VTP和XTP的數(shù)據(jù)進(jìn)行操作,并將操作結(jié)果保存在協(xié)處理器COP的內(nèi)部寄存器IRF中。當(dāng)主處理器MP發(fā)送返回指令時(shí),該返回指令指明了要調(diào)用的協(xié)處理器ID,即本示例中的協(xié)處理器C0P,根據(jù)該返回指令,參數(shù)寄存器UTP讀取返回參數(shù),協(xié)處理器COP根據(jù)該返回參數(shù),利用輸出寄存器XWB讀取內(nèi)部寄存器IRF中的操作結(jié)果并輸出到外部寄存器RF,主處理器MP在外部寄存器RF中讀取該操作結(jié)果。應(yīng)注意的是,以上示例僅僅為本實(shí)用新型的一個(gè)示例性實(shí)施例,而并非限制本實(shí)用新型,其中參數(shù)寄存器的數(shù)量不限于三個(gè),參數(shù)寄存器的位數(shù)以及各個(gè)參數(shù)寄存器讀取的參數(shù)類別可根據(jù)實(shí)際需要調(diào)整,也可由協(xié)處理器自行定義。協(xié)處理器的數(shù)量可為多個(gè),并通過協(xié)處理器ID來(lái)識(shí)別各個(gè)協(xié)處理器。[0050] 上述實(shí)施例是用于例示性說明本實(shí)用新型的原理及其功效,而非用于限制本實(shí)用新型。任何本領(lǐng)域技術(shù)人員均可在不違背本實(shí)用新型的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修改。因此本實(shí)用新型的保 護(hù)范圍,應(yīng)如本實(shí)用新型的權(quán)利要求書所列。
權(quán)利要求1.一種非阻塞協(xié)處理器接口系統(tǒng),其特征在于,該系統(tǒng)包括 主處理器,其輸出端連接至少一個(gè)參數(shù)寄存器及至少一個(gè)協(xié)處理器,該主處理器向協(xié)處理器發(fā)送調(diào)用指令,并且在發(fā)送完成后繼續(xù)執(zhí)行后續(xù)指令,當(dāng)主處理器需要協(xié)處理器的操作結(jié)果時(shí),由主處理器向協(xié)處理器發(fā)出返回指令; 至少一個(gè)參數(shù)寄存器,每個(gè)參數(shù)寄存器的輸入端分別連接至主處理器和數(shù)據(jù)總線,每個(gè)參數(shù)寄存器的輸出端連接至協(xié)處理器,所述參數(shù)寄存器根據(jù)主處理器發(fā)出的調(diào)用指令從所述數(shù)據(jù)總線讀取操作參數(shù)以提供給協(xié)處理器,并根據(jù)主處理器發(fā)出的返回指令從所述數(shù)據(jù)總線讀取返回參數(shù)以提供給協(xié)處理器; 至少一個(gè)協(xié)處理器,根據(jù)所述操作參數(shù)執(zhí)行操作,所述協(xié)處理器包括內(nèi)部寄存器,協(xié)處理器在操作完成后將操作結(jié)果存儲(chǔ)在所述內(nèi)部寄存器中; 外部寄存器,協(xié)處理器根據(jù)所述返回參數(shù)將協(xié)處理器內(nèi)部寄存器中存儲(chǔ)的操作結(jié)果寫入該外部寄存器;主處理器讀取該外部寄存器中的操作結(jié)果。
2.根據(jù)權(quán)利要求I所述的非阻塞協(xié)處理器接口系統(tǒng),其特征在于,該系統(tǒng)還包括支持多個(gè)單位寬度的寄存器讀寫的極寬總線;以及 在至少一個(gè)參數(shù)寄存器中包含與該極寬總線相關(guān)聯(lián)的專用寄存器,該專用寄存器根據(jù)調(diào)用指令或返回指令,同時(shí)對(duì)多個(gè)單位寬度的寄存器進(jìn)行讀取。
3.根據(jù)權(quán)利要求I所述的非阻塞協(xié)處理器接口系統(tǒng),其特征在于,該系統(tǒng)還可包括配置寄存器,用于存儲(chǔ)協(xié)處理器的靜態(tài)配置信息。
4.根據(jù)權(quán)利要求I所述的非阻塞協(xié)處理器接口系統(tǒng),其特征在于,存在多個(gè)協(xié)處理器,并通過包含在調(diào)用指令中的協(xié)處理器ID來(lái)區(qū)分各個(gè)協(xié)處理器。
專利摘要本實(shí)用新型涉及一種非阻塞協(xié)處理器接口系統(tǒng),包括主處理器,向協(xié)處理器發(fā)送調(diào)用指令,并且在發(fā)送完成后繼續(xù)執(zhí)行后續(xù)指令,當(dāng)主處理器需要協(xié)處理器的操作結(jié)果時(shí),由主處理器向協(xié)處理器發(fā)出返回指令;至少一個(gè)參數(shù)寄存器,根據(jù)主處理器發(fā)出的調(diào)用指令從數(shù)據(jù)總線讀取操作參數(shù)以提供給協(xié)處理器,并根據(jù)主處理器發(fā)出的返回指令從數(shù)據(jù)總線讀取返回參數(shù)以提供給協(xié)處理器;至少一個(gè)協(xié)處理器,根據(jù)所述操作參數(shù)執(zhí)行操作,所述協(xié)處理器包括內(nèi)部寄存器,協(xié)處理器在操作完成后將操作結(jié)果存儲(chǔ)在所述內(nèi)部寄存器中;外部寄存器,協(xié)處理器根據(jù)所述返回參數(shù)將協(xié)處理器內(nèi)部寄存器中存儲(chǔ)的操作結(jié)果寫入該外部寄存器;主處理器讀取該外部寄存器中的操作結(jié)果。
文檔編號(hào)G06F15/167GK202548823SQ20122004417
公開日2012年11月21日 申請(qǐng)日期2012年2月10日 優(yōu)先權(quán)日2012年2月10日
發(fā)明者蘭軍強(qiáng), 朱磊, 沙力 申請(qǐng)人:上海算芯微電子有限公司