两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

在不對稱多處理器架構(gòu)中處理中斷和異常的系統(tǒng)和方法

文檔序號:6412244閱讀:359來源:國知局
專利名稱:在不對稱多處理器架構(gòu)中處理中斷和異常的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種含有具有不相同控制和數(shù)據(jù)處理特性的不對稱處理器的多處理器系統(tǒng)。具體說,本發(fā)明涉及在不對稱多處理器系統(tǒng)中處理中斷和異常的系統(tǒng)和方法。
通用的處理器一般都包括處理中斷和異常的電路和結(jié)構(gòu)。中斷是一種事件,該事件使處理器停止執(zhí)行當前的指令線程(instruction thread)而開始執(zhí)行由中斷處理器指定和激活的中斷服務(wù)指令線程。當完成中斷服務(wù)指令線程的執(zhí)行后,就繼續(xù)執(zhí)行當前指令線程。中斷的起因與當前指令線程中各指令的執(zhí)行并無直接關(guān)系,在此意義上說,中斷是外部事件。處理中斷的方法通常是保存處理器的狀態(tài)或現(xiàn)場、執(zhí)行中斷服務(wù)程序、然后復原處理器的狀態(tài)或現(xiàn)場并繼續(xù)被中斷的執(zhí)行線程。
異常是一種由處理器執(zhí)行或企圖執(zhí)行某指令所引起的事件,執(zhí)行該指令與處理器的當前狀態(tài)不一致。造成異常條件的事件例子有企圖由處理器執(zhí)行非法或未定義的指令,企圖在未對準指令地址或數(shù)據(jù)地址時執(zhí)行指令,保護出錯,已設(shè)置的斷點,被零除,及執(zhí)行算術(shù)指令時的溢出條件。處理器通過執(zhí)行異常處理程序的指令線程來響應(yīng)異常條件。在已有技術(shù)中,處理異常的方法是執(zhí)行一套經(jīng)過選擇的指令集,具體執(zhí)行哪個指令取決于造成異常條件的特定條件類型。
中斷和異常處理固有的控制操作用通用處理器進行起來既迅速又容易,但采用大現(xiàn)場的向量處理器則難得多,所以把多處理器架構(gòu)系統(tǒng)中使用的中斷和異常處理機構(gòu)用于具有不相同控制和數(shù)據(jù)處理特性的處理器的不對稱多處理器系統(tǒng)通常是低效的。使用中斷和異常來處理的多處理器系統(tǒng)的操作經(jīng)常涉及各處理器的狀態(tài)的保存,而這種保存包括對諸寄存器和當前正在接受處理的數(shù)據(jù)的保存。在諸如多處理器的現(xiàn)場交換之類的操作期間,具有許多大寄存器的處理器不容易保存和重新加載處理器的狀態(tài)。
對于含有大機器狀態(tài)或大現(xiàn)場的不對稱處理器,需要的是便于處理中斷和異常的多處理器架構(gòu)。
按照本發(fā)明的一個方面,多處理器計算機系統(tǒng)包括稱為不對稱處理器的多個處理器,這些處理器具有互不相同的控制和數(shù)據(jù)處理特性。雖然各別處理器的指令集和另一些處理器的指令集互不相關(guān),但是這些不對稱處理器受單一操作系統(tǒng)的控制。該多處理器計算機系統(tǒng)采用中斷和異常處理的多處理架構(gòu)定義,該定義規(guī)定由具有大機器狀態(tài)和大數(shù)據(jù)寬度的稱作數(shù)據(jù)或向量處理器的處理器來檢測異常但是把中斷和異常處理操作委托給另一個具有小機器狀態(tài)和小數(shù)據(jù)寬度的稱作控制處理器的處理器。由于控制程序一般涉及對個別狀態(tài)標志和指針的監(jiān)視和控制,所以控制處理器的小機器狀態(tài)和小數(shù)據(jù)寬度十分適合于執(zhí)行中斷和異常處理之類的操作系統(tǒng)程序。與此相反,大機器狀態(tài)和大數(shù)據(jù)寬度的數(shù)據(jù)或向量處理器處理控制任務(wù)的效果差,所以把中斷和異常處理委托給控制處理器是非常有利的。
按照本發(fā)明的另一方面,多處理器計算機系統(tǒng)包括在復位和檢測到異常時進入空閑狀態(tài)的數(shù)據(jù)處理器。該數(shù)據(jù)處理器進入空閑狀態(tài)是為了方便系統(tǒng)的設(shè)計和編程,及為了在系統(tǒng)復位時簡化各處理器的同步。
按照本發(fā)明的又一實施例,多處理器計算機系統(tǒng)包括讀寫數(shù)據(jù)處理器內(nèi)的各控制和狀態(tài)寄存器的控制處理器。因此該控制處理器控制了執(zhí)行操作系統(tǒng)或應(yīng)用程序期間數(shù)據(jù)處理器的操作。控制處理器進行獨立于數(shù)據(jù)處理器執(zhí)行的對數(shù)據(jù)處理器的各控制和狀態(tài)寄存器的訪問,使同一控制和狀態(tài)寄存器可以由控制處理器和數(shù)據(jù)處理器并行地訪問。
按照本發(fā)明的再一實施例,多處理器計算機系統(tǒng)包括一種架構(gòu)定義,其中控制處理器被約束只在數(shù)據(jù)處理器處于空閑狀態(tài)時才訪問該數(shù)據(jù)處理器的包括各控制和狀態(tài)寄存器在內(nèi)的內(nèi)部狀態(tài)。這一約束顯著地簡化了控制處理器和數(shù)據(jù)處理器之間的程序運行的相互作用,保護了數(shù)據(jù)處理器不致進入不協(xié)調(diào)和無效狀態(tài)。
所述不對稱多處理器架構(gòu)和操作方法具有許多優(yōu)點。優(yōu)點之一是即使與采用相同多個處理器的對稱架構(gòu)相比,編程模型和數(shù)據(jù)處理器的實現(xiàn)也得到顯著的簡化。
在附后的權(quán)利要求書中明確陳述了所述實施例的被認為是新穎的特點。然而,與結(jié)構(gòu)和運行方法二者有關(guān)的本發(fā)明實施例參考以下描述和附圖可得到最好的理解。


圖1是表示按照本發(fā)明實施例的多媒體多處理器系統(tǒng)的高層次概略方框圖。
圖2是表示包含在圖1多媒體多處理器系統(tǒng)的多媒體信號處理器的概略方框圖。
圖3是表示多媒體多處理器系統(tǒng)中的控制處理器的概略方框圖。
圖4是控制處理器的功能圖。
圖5是表示圖2多媒體信號處理器中的向量處理器的概略方框圖。
圖6是表示圖5向量處理器的向量處理器執(zhí)行數(shù)據(jù)路徑的概略方框圖。
圖7是表示圖2多媒體信號處理器中的協(xié)處理器接口的概略方框圖。
圖8是表示多媒體信號處理器的固體架構(gòu)的概略方框圖。
圖9是表示在多媒體多處理器系統(tǒng)中與中斷和異常處理有關(guān)的操作的流程圖。
參照圖1,高層次概略方框圖示出了包括主處理器102和多媒體信號處理器104的多媒體多處理器系統(tǒng)100。典型的主處理器102是諸如PentiumTM或Pentium ProTM之類的x86處理器。主處理器102根據(jù)保持在系統(tǒng)存儲器116內(nèi)的指令和數(shù)據(jù)來執(zhí)行程序。主處理器102通過如PCI總線之類的系統(tǒng)總線106與多媒體信號處理器104通信。多媒體信號處理器104與各種功能塊接口,如音頻和通信CODEC108、視頻A/D變換器110、視頻D/A變換器112、和幀緩沖SDRAM存儲器114。
參照圖2,概略方框圖示出多媒體多處理器系統(tǒng)100內(nèi)部的多媒體信號處理器104。多媒體信號處理器104包括連接到多個多媒體接口的數(shù)字信號處理器(DSP)核202。
DSP核202是多媒體信號處理器104的計算機器,包括RISC控制處理器204、向量處理器206、高速緩沖存儲器子系統(tǒng)208、快速總線(FBUS)210及I/O總線212??刂铺幚砥?04是由英國ARM Limited公司設(shè)計和制造的32位ARM 7TM控制處理器,它執(zhí)行通用處理功能如實時操作系統(tǒng)操作、中斷和異常處理、輸入/輸出設(shè)備管理、與主處理器102的通信等等。在一個實施例中,控制處理器204工作在40MHz??刂铺幚砥?04通過協(xié)處理器接口242與向量處理器206對接。
控制處理器204響應(yīng)于異常(通常是在處理指令時出現(xiàn)的不正常條件)而進行異常處理,從而導致執(zhí)行控制流動的改變??刂铺幚砥?04響應(yīng)于七種異常,它們按照從高到低的優(yōu)先權(quán)次序列出為復位條件、中止(數(shù)據(jù))條件、FIQ、IRQ、中止(預取)條件、以及未定義的指令陷阱或軟件中斷。
參照圖3,概略方框圖示出了由指令譯碼器和控制邏輯302控制的ARM7控制處理器204??刂铺幚砥?04通過寫數(shù)據(jù)寄存器304及指令流水線和讀數(shù)據(jù)寄存器306與高速緩沖存儲器子系統(tǒng)208通信??刂铺幚砥?04包括地址寄存器308和地址增量器310以對31×32位寄存器組312中的數(shù)據(jù)尋址??刂铺幚砥?04包括算術(shù)邏輯電路,如32位ALU 314、桶形移位器316和Booth乘法器318。協(xié)處理器接口242通過nOPC、nCPI、CPA和CPB信號線直接耦合到指令譯碼器和控制邏輯302,這些信號線通過協(xié)處理器接口242在控制處理器204和向量處理器206之間交流操作碼和指令變元。圖4表示控制處理器204的功能圖。
向量處理器206是多媒體信號處理器104的數(shù)字信號處理機器。向量處理器206有單指令多數(shù)據(jù)的架構(gòu),并包括流水線化的RISC機器,該流水線化的RISC機器并行地對多個數(shù)據(jù)元素操作以執(zhí)行如離散余弦變換(DCT)、FIR濾波、卷積、視頻運動估計和其他處理操作之類的信號處理功能。向量處理器206支持向量算術(shù),在該向量算術(shù)中以向量處理的方式用多個向量執(zhí)行單元并行地對多個數(shù)據(jù)元素操作。向量處理器206執(zhí)行標量操作,也執(zhí)行組合的向量-標量操作。向量處理器206的多個數(shù)據(jù)元素打包成576位的向量,以每周(例如,12.5ns)三十二次8/9位定點算術(shù)操作、十六次16位定點算術(shù)操作或八次32位定點或浮點算術(shù)操作的速率進行計算。大多數(shù)32位標量操作的流水線速度為每周一個指令,而大多數(shù)576位向量操作的流水線速度為每二周一個指令。裝入和存儲操作與算術(shù)操作交疊并獨立地由分別的裝入和存儲電路執(zhí)行。
參照圖5,向量處理器206有四個功能塊,它們是取指令單元502,指令譯碼器和發(fā)出器504,指令執(zhí)行數(shù)據(jù)路徑506,及裝入和存儲單元508。取指令單元502及指令譯碼器和發(fā)出器504包含在向量處理器206內(nèi)以允許向量處理器206的操作獨立于控制處理器204。
取指令單元502預取指令并處理諸如分支指令和轉(zhuǎn)移至子程序指令之類的控制流動指令。取指令單元502包括當前執(zhí)行流用的預取指令的16項隊列和分支目的流用的預取指令的8項隊列。取指令單元502在一周內(nèi)自指令高速緩沖存儲器接收多達8條指令。指令譯碼器和發(fā)出器504譯碼和調(diào)度所有由向量處理器206執(zhí)行的指令。譯碼器按照從取指令單元502接收的次序在一周內(nèi)處理一條指令,而發(fā)出器根據(jù)執(zhí)行資源和操作數(shù)據(jù)的可得情況不按次序地調(diào)度大多數(shù)指令。
參照圖6,指令執(zhí)行數(shù)據(jù)路徑506包括四端口寄存器組602,八個32×32并行乘法器604和八個36位ALU 606。寄存器組602每個周期支持二次讀操作和二次寫操作。并行乘法器604每周產(chǎn)生整數(shù)或浮點格式的多達八次32位乘法,或十六次16位乘法或三十二次8位乘法。ALU 606每周(例如,12.5ns)執(zhí)行整數(shù)或浮點格式的八次36位ALU操作、十六次16位ALU操作或三十二次8位ALU操作。
寄存器組602包括多個特殊用途寄存器和多個返回地址寄存器。特殊用途寄存器包括向量控制和狀態(tài)寄存器(VCSR)、向量程序計數(shù)器(VPC)、向量異常程序計數(shù)器(VEPC)、向量中斷源寄存器(VISRC)、向量和控制處理器同步寄存器(VASYNC)以及其他如各種計數(shù)、屏蔽、溢出和斷點寄存器之類的寄存器。向量程序計數(shù)器(VPC)的計數(shù)值是待由向量處理器206執(zhí)行的下一指令的地址。
向量中斷源寄存器(VISRC)向控制處理器204指示各中斷源。一旦檢測到異常,就由硬件設(shè)置VISRC的適當位。在向量處理器206恢復執(zhí)行之前,用軟件來使這些位復位。VISRC中的任何一位都使向量處理器206進入VP-IDLE(向量處理器-空閑)狀態(tài)。如果協(xié)處理器接口242的VIMSK寄存器中的對應(yīng)中斷允許位被置位,就向控制處理器204發(fā)出IRQ中斷請求信號。
向量處理器206檢測包括精確異常和不精確異常在內(nèi)的異常條件。精確異常由向量處理器206檢測并在出錯指令之前報告。精確異常包括指令地址斷點異常、數(shù)據(jù)地址斷點異常、無效指令異常、單步異常、返回地址堆棧溢出異常、返回地址堆棧下溢異常、VCINT異常和VCJOIN異常。向量處理器206的不精確異常在執(zhí)行按程序次序晚于出錯指令的可變數(shù)目的指令之后檢測和報告。不精確異常包括無效指令地址異常、無效數(shù)據(jù)地址異常、未對準的數(shù)據(jù)訪問異常、整數(shù)溢出異常、浮點數(shù)溢出異常、浮點無效操作數(shù)據(jù)異常、浮點數(shù)除零異常及整數(shù)除零異常。
當執(zhí)行指令以中斷控制處理器204時,向量中斷指令寄存器(VIINS)用向量處理器的VCINT或VCJOIN指令更新。
向量處理器206認得二個特別條件,它們是由控制處理器204執(zhí)行的協(xié)處理器中斷(CPINT)指令,和在向量處理器206中由軟件執(zhí)行的多個嵌套的轉(zhuǎn)移運動子程序指令所引起的硬件堆棧溢出。在多媒體信號處理器104中產(chǎn)生的其他中斷和異常條件由控制處理器204處理。
一旦系統(tǒng)復位使向量處理器206處于空閑(VP_IDLE)狀態(tài),向量處理器206執(zhí)行一串上電指令。向量處理器206保持在VP_IDLE狀態(tài)直到控制處理器204用控制處理器指令集中的STARTVP指令初始化向量處理器206中的諸寄存器和激活向量處理器206的諸操作。
再次參照圖2,控制處理器204初始化向量處理器206的諸操作。具體說,通過對控制處理器204指令集的擴充,控制處理器204控制與向量處理器206的交互作用。指令集的擴充包括協(xié)處理器數(shù)據(jù)操作(如STARTVP和INTVP指令)、協(xié)處理器數(shù)據(jù)傳送、以及協(xié)處理器寄存器傳送(如用于讀寫向量處理器206中寄存器的TESTSET指令和MFVP、MTVP、MFER和MTER指令)。
控制處理器204用STARTVP指令起動向量處理器206。STARTVP指令使向量處理器206進入VP_RUN狀態(tài),表示向量處理器206正在執(zhí)行中。如果向量處理器206已經(jīng)處于VP_RUN狀態(tài),則STARTVP什么也不做。響應(yīng)于STARTVP指令,沒有結(jié)果傳送給控制處理器204,在STARTVP之后控制處理器204繼續(xù)執(zhí)行。在設(shè)置條件碼的協(xié)處理器數(shù)據(jù)操作格式(CDP)指令之后引發(fā)STARTVP指令。STARTVP指令用下列匯編器句法來引發(fā)CDP{cond}p7,0,c0,c0,c0STARTVP{cond}其中條件(cond)包括等于(eq)、不等于(ne、進位置位(cs)、進位清除(cc)、負(mi)、正(pl)及其他條件。STARTVP只在條件為真時執(zhí)行??刂铺幚砥?04使用STARTVP指令向向量處理器206發(fā)出開始執(zhí)行的請求信號,然后自動清除向量中斷源(VISRC)寄存器的向量處理器中斷位(VISRC<vip>)和向量處理器聯(lián)合位(VISRC<vjp>)。一旦作出STARTVP調(diào)用,控制處理器204不等待向量處理器206的開始執(zhí)行就繼續(xù)執(zhí)行下一條指令。在調(diào)用STARTVP之前必須按需要初始化向量處理器206的狀態(tài)。如果向量處理器206已經(jīng)處于VP_RUN狀態(tài),則STARTVP指令不起作用。在STARTVP指令執(zhí)行期間,可以出現(xiàn)向量處理器不可用的異常。
控制處理器204使用中斷向量處理器(INTVP)指令來停止向量處理器206。INTVP指令使向量處理器206進入表示向量處理器206不在執(zhí)行的VP_IDLE狀態(tài)。如果向量處理器206不在執(zhí)行中,INTVP什么事也不做。響應(yīng)于INTVP指令,沒有結(jié)果傳送給控制處理器204,在INTVP之后控制處理器204繼續(xù)執(zhí)行。在設(shè)置條件碼的協(xié)處理器數(shù)據(jù)操作格式(CDP)指令之后引發(fā)INTVP指令。INTVP指令只在條件為真時執(zhí)行。因此,INTVP指令用下列匯編器句法來引發(fā)CDP{cond}p7,1,c0,c0,c0INTVP{cond}其中條件(cond)包括等于(eq)、不等于(ne)、進位置位(cs)、進位清除(cc)、負(mi)、正(p1)及其他條件??刂铺幚砥?04使用INTVP指令向向量處理器206發(fā)出暫停執(zhí)行的請求信號。一旦作出INTVP調(diào)用,控制處理器204不等待向量處理器206的暫停就繼續(xù)執(zhí)行下一條指令。一般在INTVP指令之后使用從擴充的寄存器傳送(MFER)指令以確定向量處理器206是否已暫停。如果向量處理器206已經(jīng)處于VP_IDLE狀態(tài),則INTVP指令不起作用。在INTVP指令執(zhí)行期間可以出現(xiàn)向量處理器不可用的異常。
控制處理器204使用測試和置位(TESTSET)指令來測試包括同步測試在內(nèi)的向量處理器206的操作狀態(tài)。TESTSET讀取為用戶擴充的寄存器并把該寄存器的位30置為1,從而提供了向量處理器206和控制處理器204之間的生產(chǎn)者/消費者類型的同步。TESTSET使控制處理器204停車直至寄存器被傳送??刂铺幚砥?04在設(shè)置條件碼的協(xié)處理器寄存器傳送操作(MRC,MCR)指令之后請求TESTSET指令。TESTSET指令只在條件為真時執(zhí)行。使用下列匯編器句法來調(diào)用TESTSET指令。
MRC{cond} p7,0,Rd,c0,cER,0TESTSET{cond} Rd,RNAME其中條件(cond)包括等于(eq)、不等于(ne)、進位置位(cs)、進位清除(cc)、負(mi)、正(pl)和其他條件。Rd是控制處理器204中的寄存器。ER是在協(xié)處理器接口242中的擴充的寄存器,RNAME是指由架構(gòu)規(guī)定的寄存器助記符如UER1或VASYNC。
其他控制處理器指令向控制處理器寄存器傳送向量處理器標量寄存器/特殊用途寄存器中的數(shù)據(jù)。另一些其他的控制處理器指令把數(shù)據(jù)從控制處理器寄存器傳送到向量處理器的標量/特殊用途寄存器。
舉例說,MFVP指令將數(shù)據(jù)從向量處理器標量寄存器/特殊用途寄存器傳送到控制處理器204中的通用寄存器。在設(shè)置條件碼的協(xié)處理器寄存器傳送操作(MRC,MCR)指令以后調(diào)用MFVP指令。MFVP指令只在條件為真時執(zhí)行。使用下列匯編器句法來調(diào)用MFVP指令MRC{cond} p7,1,Rd,CRn,CRm,0MFVP{cond} Rd,RNAME其中條件(cond)包括等于(eq)、不等于(ne)、進位置位(cs)、進位清除(cc)、負(mi)、正(pl)和其他條件。協(xié)處理器號數(shù)碼p7表示向量處理器206。Rd是控制處理器204中的寄存器。CRn和CRm是向量處理器206中的標量寄存器/特殊用途寄存器。RNAME是指由架構(gòu)規(guī)定的寄存器助記符如SP0或VCSR??刂铺幚砥?04調(diào)用MFVP指令以把數(shù)據(jù)從向量處理器206的標量寄存器/特殊用途寄存器CRn和CRm傳送到控制處理器寄存器Rd。在執(zhí)行MFVP指令期間可以出現(xiàn)向量處理器不可用的異常。
向向量處理器傳送(MTVP)指令把數(shù)據(jù)從控制處理器204中的通用寄存器傳送到向量處理器標量寄存器/特殊用途寄存器。在設(shè)置條件碼的協(xié)處理器寄存器傳送操作(MRC,MCR)指令之后調(diào)用MTVP指令。MTVP指令只在條件為真時執(zhí)行。使用下列匯編器句法來調(diào)用MTVP指令MRC{cond} p7,1,Rd,CRn,CRm,0MTVP{cond} RNAME,Rd其中條件(cond)包括等于(eq)、不等于(ne)、進位置位(cs)、進位清除(cc)、負(mi)、正(pl)及其他條件。協(xié)處理器號數(shù)碼p7表示向量處理器206。Rd是控制處理器204中的寄存器。CRn和CRm是向量處理器206中的標量寄存器/特殊用途寄存器。RNAME是指由架構(gòu)規(guī)定的寄存器助記符如SP0或VCSR??刂铺幚砥?04調(diào)用MTVP指令以把控制處理器寄存器Rd中的數(shù)據(jù)傳送到向量處理器206中的標量寄存器/特殊用途寄存器CRn和CRm。在執(zhí)行MTVP指令期間可以出現(xiàn)向量處理器不可用的異常。
MFVP和MTVP只準備在向量處理器206處于VP_IDLE狀態(tài)時執(zhí)行。在控制處理器204和向量處理器206之間不發(fā)生直接通信。每次傳送使用由協(xié)處理器接口242在示范性實施例中提供的中間存儲器。
MFVP和MTVP指令允許控制處理器204自由地讀和寫向量處理器206之中的各控制和狀態(tài)寄存器。因此在執(zhí)行操作系統(tǒng)或應(yīng)用程序期間,控制處理器204控制向量處理器206的操作。MFVP和MTVP指令只準備在向量處理器206處于VP_IDLE狀態(tài)時執(zhí)行,因為控制處理器204具有獨立于向量處理器206的執(zhí)行而訪問向量處理器206的各控制和狀態(tài)寄存器的能力,使同一的控制和狀態(tài)寄存器可能被控制處理器204和向量處理器206并行地訪問。
向擴充的寄存器傳送(MTER)指令把數(shù)據(jù)從控制處理器204傳送到規(guī)定的擴充的寄存器。在設(shè)置條件碼的協(xié)處理器寄存器傳送操作(MRC,MCR)指令之后調(diào)用MTER指令。MTER指令只在條件為真時執(zhí)行。使用下列匯編器句法來調(diào)用MTER指令MRC{cond} p7,1,Rd,cP,cER,0MTER{cond} RNAME,Rd其中條件(cond)包括等于(eq)、不等于(ne)、進位置位(cs)、進位清除(cc)、負(mi)、正(pl)和其他條件。協(xié)處理器號數(shù)碼p7表示向量處理器206。Rd是控制處理器204中的寄存器。P表示選擇的協(xié)處理器,ER表示在協(xié)處理器P中的擴充的寄存器。RNAME是指由架構(gòu)規(guī)定的寄存器助記符如PER0或CSR??刂铺幚砥?04調(diào)用MTER指令以把控制處理器寄存器Rd中的數(shù)據(jù)傳送到指定的協(xié)處理器P中指定的擴充的寄存器ER。在執(zhí)行MTER指令期間可以出現(xiàn)企圖訪問指定的協(xié)處理器時保護的破壞。
從擴充的寄存器傳送(MFER)指令把數(shù)據(jù)從指定的協(xié)處理器中的擴充的寄存器傳送到控制處理器204中的寄存器。在設(shè)置條件碼的協(xié)處理器寄存器傳送操作(MRC,MCR)指令之后調(diào)用MFER指令。MFER只在條件為真時執(zhí)行。使用下列匯編器句法來調(diào)用MFER指令MRC{cond} p7,2,Rd,cP,cER,0MFER{cond} Rd,RNAME其中條件(cond)包括等于(eq)、不等于(ne)、進位置位(cs)、進位清除(cc)、負(mi)、正(pl)和其他條件。協(xié)處理器號數(shù)碼p7表示向量處理器206。Rd是控制處理器204中的寄存器。P表示選擇的協(xié)處理器,ER表示在協(xié)處理器P中的擴充的寄存器。RNAME是指由架構(gòu)規(guī)定的寄存器助記符如PER0或CSR??刂铺幚砥?04調(diào)用MFER指令以把數(shù)據(jù)從指定的協(xié)處理器P中指定的擴充的寄存器ER傳送到寄存器Rd。在執(zhí)行MFER指令期間可以發(fā)生企圖訪問指定的協(xié)處理器時保護的破壞。
協(xié)處理器接口242的概略方框圖示于圖7。協(xié)處理器接口242通過增加實現(xiàn)擴充控制處理器204指令集的指令用的寄存器和邏輯功能來補充控制處理器204的功能度。協(xié)處理器接口242包括在控制處理器204和向量處理器206之間通信用的寄存器。協(xié)處理器接口242還充當在以不同時鐘速率操作的結(jié)構(gòu)之間交流數(shù)據(jù)和信號用的緩沖器。在一個實施例中,控制處理器204以40MHz速率操作,而向量處理器206以80MHz執(zhí)行。
協(xié)處理器接口242包括譯碼器702、狀態(tài)機704、特許的擴充的寄存器塊706和為用戶們擴充的寄存器塊708。特許的擴充的寄存器塊706中的各寄存器和用戶擴充寄存器塊708都是由控制處理器204和由向量處理器206可讀和可寫的。譯碼器702對控制處理器指令集的指令譯碼。控制處理器指令集包括可在控制處理器204上執(zhí)行的指令以及不用控制處理器204執(zhí)行而用協(xié)處理器接口242執(zhí)行以實現(xiàn)協(xié)處理器特殊功能度的擴充指令。譯碼器702對控制處理器指令譯碼、檢測擴充的指令及把檢測到的擴充指令供應(yīng)給狀態(tài)機704以便執(zhí)行。狀態(tài)機704包括實現(xiàn)擴充指令用的邏輯電路。
特許的擴充寄存器塊706是在控制處理器204執(zhí)行特殊指令期間被訪問的擴充寄存器。特許的擴充寄存器塊706包括控制寄存器(CTR)、處理器版本寄存器(PVR)、向量中斷屏蔽寄存器(VIMSK)、指令地址斷點寄存器(AIABR)、數(shù)據(jù)地址斷點寄存器(ADABR)、高速暫存寄存器(SPREG)和狀態(tài)寄存器(STR)。特許的擴充寄存器塊706主要用于控制處理器204和向量處理器206的同步。
在一個實施例中,為用戶們擴充的寄存器塊708的寄存器只有映射到位<30>的單一位,所以位<31>及位<290>都讀作0。為用戶們擴充的寄存器塊708包括向量處理器狀態(tài)(VPSTATE)標志及向量和控制處理器同步(VASYNC)標志。VPSTATE表示當位<30>置位時向量處理器206處于VP_RUN狀態(tài)。當位<30>復位時,向量處理器206處于VP_IDLE狀態(tài)并被暫停,此時程序計數(shù)器的地址指向下一條要執(zhí)行的指令。VASYNC允許向量處理器206和控制處理器204之間的生產(chǎn)者-消費者同步。VASYNC標志由在向量處理器206中執(zhí)行的VMOV指令來置位或復位。VASYNC也通過使用從擴充的寄存器傳送(MFER)指令、向擴充的寄存器傳送(MTER)指令或TESTSET指令而由控制處理器204處理來置位或復位。
一旦上電復位,特許的擴充寄存器塊706和為用戶們擴充的寄存器塊708的所有各位都被復位,使得向量處理器206為空閑。
向量中斷屏蔽寄存器(VIMSK)控制向控制處理器204報告在向量處理器206內(nèi)出現(xiàn)的異常。當VIMSK中的各位隨向量中斷源(VISRC)寄存器中的一相應(yīng)位一起置位時,VIMSK中的各位使異常能中斷控制處理器204。VISRC寄存器包括表示多個異常和中斷的來源的多個位。VIMSK寄存器的各位包括數(shù)據(jù)地址斷點中斷允許(DABE)、指令地址斷點中斷允許(IABE)和單步中斷允許(SSTPE)。VIMSK還控制浮點溢出(FOVE)、浮點無效操作數(shù)(FINVE)和浮點數(shù)除以零(FDIVE)的各中斷允許位以及整數(shù)溢出(IOVE)和整數(shù)除以零(IDIVE)的各中斷允許位。VIMSK還控制VCINT中斷允許(VIE)、VCJOIN中斷允許(VJE)和現(xiàn)場交換允許(CSE)。
向量處理器206通過向控制處理器204發(fā)送信號與控制處理器204相互作用。具體說,向量處理器206包括向控制處理器204提供讀訪問和寫訪問的邏輯電路。向量處理器206用VCJOIN指令和VCINT指令通過為用戶擴充的寄存器間接向控制處理器204送出表示向量處理器206已執(zhí)行同步指令的信號。向量處理器206還通過表示向量處理器206已經(jīng)暫停執(zhí)行和已進入VP_IDLE狀態(tài)的中斷請求直接向控制處理器204發(fā)信號。向量處理器206執(zhí)行用于告知控制處理器204的二條指令。VCJOIN指令(VCJOINn)有條件地與控制處理器204聯(lián)合并使向量處理器206暫停和進入VP_IDLE狀態(tài)。在向量處理器206內(nèi)的程序計數(shù)器(未示出)指向VCJOIN指令后下一條指令的地址。VCINT指令(VCINTn)有條件地中斷控制處理器204,同時使向量處理器206暫停和進入VP_IDLE狀態(tài)。向量處理器206內(nèi)的程序計數(shù)器指向VCINT指令后的下一條指令的地址。VCINT和VCJOIN指令是由向量處理器206執(zhí)行的歸入控制流動類別的指令??刂屏鲃又噶畎ㄈ绶种Аp量然后分支、轉(zhuǎn)移、自子程序返回、現(xiàn)場交換和屏蔽(barrier)指令之類的各種條件指令。
在向量處理器206上執(zhí)行的多個指令,包括條件現(xiàn)場交換(VCCS)指令、條件中斷(VCINT)指令和條件聯(lián)合(VCJOIN)指令,用于中斷和異常處理。
條件中斷(VCINT)指令,如果被使能,暫停向量處理器206的執(zhí)行和中斷控制處理器204。VCINT指令可以產(chǎn)生VCINT中斷。條件中斷(VCINT)指令的匯編器句法如下VCINTcond#ICODE其中cond是規(guī)定的條件碼,#ICODE是標記供控制處理器204使用的常數(shù)的23位數(shù)值。條件碼(cond)從以下條件碼中選擇無條件(un)、小于(lt)、等于(eq)、小于或等于(1e)、大于(gt)、不等于(ne)、大于或等于(ge)及溢出(ov)。VCINT的操作由偽碼描述如下<pre listing-type="program-listing"><![CDATA[If((cond==VCSR[SO,GT,EQ,LT])|(cond==un)){ VISRC<vip>=1; VIINS=[VCINT.cond#ICODE instruction]; VEPC=VPC; if(VIMSK<vie>==1)signal control processor int; VP_STATE=VP_IDLE;} else VPC=VPC+4c;]]></pre>因此,如果向量控制和狀態(tài)寄存器(VCSR)與條件碼相配或者條件碼為無條件,則向量中斷源(VISRC)寄存器的向量中斷位置位,向量中斷指令寄存器(VIINS)裝入由#ICODE參數(shù)標記的指令,向量異常程序計數(shù)器(VEPC)裝入來自向量處理器206的程序計數(shù)器的數(shù)值。向量中斷指令寄存器(VIINS)裝入VCINT指令的標記符、條件和#ICODE變元以向控制處理器204供給與以下有關(guān)的信息(1)向量處理器206要中斷控制處理器204中的原因和(2)在執(zhí)行軟件中斷服務(wù)程序中供控制處理器204使用的常數(shù)值。如果VIMSK寄存器的向量處理器中斷允許位被置位,則向量處理器206向控制處理器204發(fā)送中斷信號(IRQ)。向量處理器206的狀態(tài)(VP_STATE)被設(shè)成空閑狀態(tài)。然而,如果條件碼不是無條件或者控制碼與向量控制和狀態(tài)寄存器(VCSR)不配,則VCINT指令被忽視,但是程序計數(shù)器增四。
有條件與控制處理器任務(wù)聯(lián)合(VCJOIN)指令,如果被使能,暫停向量處理器206的執(zhí)行并參加在控制處理器204中工作的任務(wù)。VCJOIN指令可以產(chǎn)生VCJOIN中斷。條件聯(lián)合(VCJOIN)指令的匯編器句法如下VCJOIN.cond#Offset其中cond是規(guī)定的條件碼,#Offset是標記相對于向量處理器206存儲器中VCJOIN指令位置的偏移量的23位數(shù)值,其中的存儲器存有在以后待激活的向量處理器子程序。VCJOIN指令激活在控制處理器204中執(zhí)行的中斷服務(wù)程序。控制處理器204保存#Offset參數(shù)并執(zhí)行規(guī)定的中斷服務(wù)程序。中斷服務(wù)程序完成時,控制處理器204進行規(guī)定的操作并對向量處理器206中的諸寄存器置位以作將來的處理。一旦完成中斷服務(wù)程序,控制處理器204用STARTVP指令起動向量處理器206,并指定保存的地址#Offset作為向量處理器206應(yīng)該開始執(zhí)行的子程序的位置??刂铺幚砥?04以分支指令的方式使用偏移量變元以引導控制處理器204執(zhí)行的指令序列。使用VCJOIN指令的一個例子描述于美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4365 US,S.P.Song等人發(fā)明的標題為“EFFICIENT CONTEXT SAVING ANDRESTORING IN MULTIPROCESSORS(多處理器中有效的現(xiàn)場保存和恢復)”的申請,為了本文的完整將其納入作為參考文獻。條件碼(cond)從以下的條件碼中選擇無條件(un)、小于(lt)、等于(eq)、小于或等于(le)、大于(gt)、不等于(ne)、大于或等于(ge)和溢出(ov)。VCJOIN的操作由偽碼描述如下<pre listing-type="program-listing"><![CDATA[If(cond==VCSR[SO,GT,EQ,LT])|(cond==un)){VISRC<vjp>=1;VIINS=[VCJOIN.cond#Offset instruction];VEPC=VPC;if(VIMSK<vje>==1)signal control processorint;VP_STATE=VP_IDLE;}else VPC=VPC+4;]]></pre>因此,如果向量控制和狀態(tài)寄存器(VCSR)與條件碼相配或者條件碼為無條件,則向量中斷源(VISRC)寄存器的向量聯(lián)合位被置位,向量中斷指令寄存器(VIINS)裝入由#Offset參數(shù)標記的指令,向量異常程序計數(shù)器(VEPC)裝入來自向量處理器206的程序計數(shù)器的數(shù)值。向量中斷指令寄存器(VIINS)裝入VCJOIN指令的標記符、條件和#Offset變元以向控制處理器204供給與以下有關(guān)的信息(1)向量處理器206要中斷控制處理器204的原因和(2)向量處理器206的指令存儲器中自地址或標簽(label)的偏移值,該偏移值表示在控制處理器204重新激活向量處理器206時引導向量處理器例行程序的指令順序流動的分支偏移值。如果VIMSK寄存器的向量處理器聯(lián)合允許位被置位,則向量處理器206向控制處理器204發(fā)送中斷信號(IRQ)。向量處理器206的狀態(tài)(VP_STATE)被設(shè)成空閑狀態(tài)。然而,如果條件碼不是無條件或者控制碼與向量控制和狀態(tài)寄存器(VCSR)不配,則VCJOIN指令被忽視,但是程序計數(shù)器增四。
如果VIMSK寄存器的現(xiàn)場交換允許位VIMSK&lt;cse&gt;為真,條件現(xiàn)場交換(VCCS)指令執(zhí)行向現(xiàn)場交換子程序的立即(不延時的)轉(zhuǎn)移。如果VIMSK&lt;cse&gt;為真,則把VPC+4中的返回地址保存到返回地址堆棧上。否則,在地址VPC+4處異常繼續(xù)。VCCS指令可以產(chǎn)生返回地址堆棧溢出異常。條件現(xiàn)場交換(VCCS)指令的匯編器句法如下VCCS #Offset其中#Offset是標記現(xiàn)場交換子程序位置的23位數(shù)值。VCCS操作由偽碼描述如下<pre listing-type="program-listing"><![CDATA[If VIMSK<cse>==1){ if(VSP<4>>15){ VISRC<RASO>=1; signal control processor with RASO; VP_STATE=VP_IDLE;} else {RSTACK[VSP<30>]=VPC+4;VSP<40>=VSP<40>+1; VPC=VPC+4;}}else VPC=VPC+4;]]></pre>因此,如果VIMSK寄存器的現(xiàn)場交換允許位被置位,則測試返回堆棧指針(VSP)的溢出。如果已發(fā)生溢出條件,則向量中斷源(VISRC)寄存器的返回地址堆棧溢出位被置位,向量處理器206向控制處理器204發(fā)送返回地址堆棧溢出異常,向量處理器206的狀態(tài)(VP_STATE)被置成空閑狀態(tài)。如果不曾發(fā)生溢出條件,則加四后的程序計數(shù)器值被壓入返回地址堆棧(RSTACK),返回堆棧指針(VSP)被加一,向量處理器206的程序計數(shù)器(VPC)被增以#Offset乘四的帶符號乘積。如果VIMSK寄存器的現(xiàn)場交換允許位沒有置位,則忽視VCCS指令,但是程序計數(shù)器增四。
一旦在控制處理器204執(zhí)行STARTVP指令之后向量處理器206開始執(zhí)行操作,控制處理器204和向量處理器206就互相獨立地并行操作??刂铺幚砥?04和向量處理器206互相獨立和并行的操作利用特殊控制指令同步。對二個線程(一個在控制處理器204上,另一個在向量處理器206上)同時執(zhí)行的支持有利地增加了任務(wù)執(zhí)行速度,還便于把在控制處理器204上運行的指令碼移植到MSP處理器系列的種種處理器。在本說明性的實施例中,向量處理器206以80MHz的速率工作。
再次參看圖2,高速緩沖存儲器子系統(tǒng)208包括數(shù)據(jù)高速緩沖存儲器214(例如5KB)、指令高速緩沖存儲器216(例如2KB)和高速緩沖存儲器ROM218(例如16KB),該子系統(tǒng)208一般工作在向量處理器206的同一速率(80MHz)上。在一個實施例中,高速緩沖存儲器子系統(tǒng)208包括控制處理器204用的1KB指令存儲器和1KB數(shù)據(jù)存儲器、向量處理器206用的1KB指令存儲器和4KB數(shù)據(jù)存儲器以及控制處理器204和向量處理器206合用的16KB集成的指令和數(shù)據(jù)高速緩沖存儲器ROM。高速緩沖存儲器子系統(tǒng)208通過32位數(shù)據(jù)總線與控制處理器204接口,通過128位數(shù)據(jù)總線與向量處理器206接口。高速緩沖存儲器ROM 218包括uROM初始化軟件、自檢診斷軟件、各種系統(tǒng)管理軟件、庫例行程序及用于經(jīng)過挑選的指令和數(shù)據(jù)常數(shù)的高速緩沖存儲器。具體說,高速緩沖存儲器ROM 218包括控制處理器204用的指令異常處理器和輸入輸出設(shè)備中斷處理器0、1、2和3。高速緩沖存儲器ROM218也包括在控制處理器204中執(zhí)行的向量處理器中斷處理器和向量處理器斷點異常處理器。
FBUS 210與多個FBUS外設(shè)對接,這些FBUS外設(shè)包括例如32位PCI總線接口220、64位SDRAM存儲器控制器222、8通道DMA控制器224、客戶ASIC邏輯塊226及存儲器數(shù)據(jù)傳送器228。PCI總線接口220連接至系統(tǒng)總線106并工作于例如33MHz??蛻鬉SIC邏輯塊226按需要提供實現(xiàn)常規(guī)功能的控制邏輯。在一個實施例中,客戶ASIC邏輯塊226提供包括與各種模擬CODEC和客戶專用的I/O設(shè)備接口的10K個門。存儲器數(shù)據(jù)傳送器228把DMA數(shù)據(jù)從主處理器102傳送給在多媒體信號處理器104內(nèi)部的SDRAM存儲器230。
I/O總線212與多個I/O總線設(shè)備對接,這些設(shè)備包括位流處理器232、UART串行線234、定時器電路236、中斷控制器238和特殊寄存器240。位流處理器232處理視頻位流。特殊寄存器240用于受軟件控制的初始化和中斷處理。
參照圖8,概略方框圖示出了多媒體信號處理器104的軟件和固件架構(gòu)800,包括在多媒體信號處理器104上執(zhí)行的MSP系統(tǒng)部件軟件802和在主處理器102上執(zhí)行的PC應(yīng)用程序和操作系統(tǒng)軟件808。多媒體信號處理器104受固件控制,該固件包括在向量處理器206上執(zhí)行的向量化-DSP固件庫804和在控制處理器204上執(zhí)行的系統(tǒng)管理功能塊806。向量化-DSP固件庫804和系統(tǒng)管理功能塊806包括在MSP系統(tǒng)部件軟件802中。架構(gòu)800的優(yōu)點是把信號處理的功能從主處理器應(yīng)用控制操作中分離出來以簡化軟件的開發(fā),它改進了軟件設(shè)計管理和降低了應(yīng)用程序開發(fā)和維護的成本。
MSP系統(tǒng)部件軟件802專門在控制處理器204上執(zhí)行,它包括MSP實時核心810、多媒體庫模塊812、系統(tǒng)管理功能塊806和向量化-DSP固件庫804。MSP實時核心810一般負責與主處理器102的接口、資源管理、I/O設(shè)備處理和大部分中斷及異常處理。MSP實時核心810包括與在主處理器102執(zhí)行的與WindowsTM和WindowsNTTM軟件接口用的軟件。MSP實時核心810還包括從主處理器102選擇和下載已選應(yīng)用固件的軟件、在控制處理器204和向量處理器206中執(zhí)行用的調(diào)度諸任務(wù)的軟件以及管理多媒體信號處理器104的包括存儲器和I/O設(shè)備在內(nèi)的系統(tǒng)資源的軟件。MSP實時核心810包括使多媒體信號處理器104各任務(wù)之間的通信同步的軟件和報告與MSP有關(guān)的中斷、異常和狀態(tài)條件的軟件。
向量化-DSP固件庫804實質(zhì)上執(zhí)行所有數(shù)字信號處理功能。向量化-DSP固件庫804還控制由控制處理器204向向量處理器206發(fā)出的如協(xié)處理器中斷之類的專用特殊中斷,或控制在向量處理器206內(nèi)產(chǎn)生的硬件堆棧溢出異常。
多媒體庫模塊812執(zhí)行通信處理功能如數(shù)據(jù)通信、MPEG視頻和音頻、語言編碼和合成、與Sound BlasterTM兼容的音頻等。MSP實時核心810是實時、健壯(robust)、多任務(wù)、搶先的操作系統(tǒng),它包括便于在多媒體信號處理器104上執(zhí)行多媒體應(yīng)用程序的增強措施。
在主處理器102中執(zhí)行的PC應(yīng)用和操作系統(tǒng)軟件808控制多媒體信號處理器104,其方法是通過系統(tǒng)總線106讀寫各MSP控制和狀態(tài)寄存器,及寫入駐留到系統(tǒng)存儲器116和駐留到多媒體信號處理器104的共用數(shù)據(jù)結(jié)構(gòu)。
MSP的程序執(zhí)行隨控制處理器204執(zhí)行第一執(zhí)行流而開始??刂铺幚砥?04可以在向量處理器206起動第二個獨立的執(zhí)行流??刂铺幚砥?04和向量處理器206的操作用以下指令同步在控制處理器204中運行的專用協(xié)處理器指令,包括STARTVP,INTVP和TESTVP指令;在向量處理器206中執(zhí)行的特殊指令,包括VJOIN和VINT指令??刂铺幚砥?04和向量處理器206之間的數(shù)據(jù)傳送用在控制處理器204中執(zhí)行的數(shù)據(jù)傳送指令來實現(xiàn)。
在上電之后,多媒體信號處理器104自動進入自檢順序以充分測試功能性。自檢順序包括多媒體信號處理器104中所有寄存器的初始化和檢驗多媒體信號處理器104各部件功能性的片內(nèi)自檢診斷程序的執(zhí)行。一旦自檢順序結(jié)束,多媒體信號處理器104就執(zhí)行MSP系統(tǒng)部件軟件802以裝入和執(zhí)行MSP初始化軟件及裝入和執(zhí)行MSP實時核心810。多媒體信號處理器104支持三種復位操作,它們是通過PCI總線的受硬件控制的系統(tǒng)復位、通過MSP控制寄存器中PCI系統(tǒng)復位位的受軟件控制的系統(tǒng)復位以及通過控制處理器204和通過MPS控制寄存器內(nèi)向量重新起動位的受軟件控制的重新起動。
參照圖9,流程圖示出與多媒體多處理器系統(tǒng)100中中斷和異常處理有關(guān)的操作。
向量處理器206在多媒體多處理器系統(tǒng)100中執(zhí)行非常有限的控制和管理功能。具體說,雖然向量處理器206產(chǎn)生異常,向量處理器206卻不包括處理異常的能力。相反,復位初始化和各異常由控制處理器204來處理。此外,只在向量處理器206空閑時才允許控制處理器204去讀或?qū)懴蛄刻幚砥?06。因此,控制處理器204作為主動控制的處理器工作,而向量處理器206作為在主動控制處理器控制下的受控處理器工作。
如此,在向量處理器206和控制處理器204具有互不相同的控制和數(shù)據(jù)處理特性的意義上,多媒體多處理器系統(tǒng)100包括多個不對稱的處理器。這些不對稱處理器由單一的操作系統(tǒng)控制。向量處理器206和控制處理器204具有互不相關(guān)的指令集。多媒體多處理器系統(tǒng)100采用中斷和異常處理的多處理器架構(gòu)定義,其中向量處理器206具有大機器狀態(tài)或現(xiàn)場、大數(shù)據(jù)寬度和許多寄存器。在一個說明性實施例中,向量處理器206具有288位數(shù)據(jù)寬度、64個288位向量寄存器、80個以上的32位標量寄存器和4KB高速暫存(scratch pad)存儲器。向量處理器206的大機器狀態(tài)包括具有相當大量位數(shù)的相當大量寄存器。向量處理器206對于陣列或向量之類的大數(shù)據(jù)結(jié)構(gòu)的處理十分有效,但是對于位和狀態(tài)標志之類的小數(shù)據(jù)結(jié)構(gòu)的處理不是最優(yōu)的。因此向量處理器206包括檢測異常的電路,但是把中斷和異常處理操作委托給控制處理器204。控制處理器204具有小機器狀態(tài)和小數(shù)據(jù)寬度,例如16或32位,這對執(zhí)行中斷和異常處理之類的操作系統(tǒng)程序是有利的,因為控制程序一般涉及個別狀態(tài)標志和指針的監(jiān)視和控制。
向量處理器206檢測異常條件但是不為該條件服務(wù)而是向控制處理器204發(fā)送中斷信號、進入空閑狀態(tài)并且保持在空閑狀態(tài)直到引起異常的條件或來源接受了控制處理器204的操作的服務(wù)。由于異常和中斷控制操作不需要協(xié)調(diào),由于所有控制操作都單獨由控制處理器204執(zhí)行,所以簡化了多媒體多處理器系統(tǒng)100的控制。
向量處理器206工作在按照MSP架構(gòu)定義的運行狀態(tài)(VP_RUN)和空閑狀態(tài)(VP_IDLE)以分別指示向量處理器206正在執(zhí)行或是無限期暫停執(zhí)行。一旦多媒體多處理器系統(tǒng)100復位902,向量處理器206進入VP_IDLE狀態(tài)904。控制處理器204僅在VP_IDLE狀態(tài)期間才被允許讀寫向量處理器206中的寄存器906。當向量處理器206處于VP_RUN狀態(tài)時,由控制處理器204執(zhí)行的和指向向量處理器206的寄存器的讀操作或?qū)懖僮鞯慕Y(jié)果是“有界無定義的(boundedly undefined)”。“有界無定義的”結(jié)果是多媒體信號處理器104中任何指令序列都可產(chǎn)生的多媒體多處理器系統(tǒng)100的狀態(tài)。因此,只允許控制處理器204在向量處理器206處于VP_IDLE狀態(tài)時進行對向量處理器206內(nèi)各寄存器的讀寫訪問。
控制處理器204初始化向量處理器206中的諸寄存器908。在把向量處理器206中的諸寄存器初始化到選定的狀態(tài)之后,控制處理器204執(zhí)行STARTVP指令910以把向量處理器206的狀態(tài)改變?yōu)閂P_RUN狀態(tài)911。
當向量處理器206遭遇異常條件912時,向量處理器206進入VP_IDLE狀態(tài)914并用中斷請求916告知控制處理器204。向量處理器206保持在VP_IDLE狀態(tài)直到控制處理器204執(zhí)行另一條STARTVP指令918。控制處理器204通過讀出向量處理器206中的諸寄存器而確定所報告的異常的類別920并以規(guī)定的方式處理該異常922。然后控制處理器204,如果有需要,重新初始化924向量處理器206中的諸寄存器,接著重新起動向量處理器206的執(zhí)行926。
在保存和恢復向量處理器206中的諸寄存器方面,向量處理器206比控制處理器204更有效。因此,當控制處理器204編程使向量處理器206在現(xiàn)場交換操作期間執(zhí)行寄存器保存和恢復指令時,實現(xiàn)了性能上的優(yōu)點。一種有利的現(xiàn)場交換操作的詳細討論見于在本發(fā)明同一申請日申請的、一起正在審理中的、美國專利申請?zhí)枴痢?×××,×××(代理人案號M-4365)、S.P.Song等人發(fā)明的標題為“EFFICIENT CONTEXT SAVING ANDRESTORING IN MULTIPROCESSORS(多處理器中有效的現(xiàn)場保存和恢復)”的申請。
當復位和檢測到異常時,向量處理器206進入VP_IDLE狀態(tài)以方便系統(tǒng)的設(shè)計和編程及在系統(tǒng)復位時簡化處理器的同步。異常一般不經(jīng)常出現(xiàn),所以在不顯著降低向量處理器206功能度或性能的情況下大大簡化了向量處理器206的中斷處理。此外,普遍認為對異常的響應(yīng)性是重要性有限的特性。例如,許多實時執(zhí)行的現(xiàn)有應(yīng)用程序諸如多媒體應(yīng)用程序包括在實時操作模式下禁止對異常事件作出響應(yīng)的編程。在另一例中,某些現(xiàn)有的應(yīng)用程序使用飽和模式(saturation mode)來避免實時算術(shù)處理時的算術(shù)或下溢條件。
雖然參照各種實施例對本發(fā)明作了描述,但是應(yīng)當懂得這些實施例是說明性的,本發(fā)明的范圍不受它們的限制??赡軐λ龅膶嵤├鞒鲈S多變動、修改、添加和改進。例如,這些實施例是作為利用包括Pentium主計算機和特定多媒體處理器的多處理器系統(tǒng)的系統(tǒng)來描述的。在其他實施例中可以采用其他的處理器配置。
本專利文件與以下同時申請的專利有關(guān),為了完整起見,將它們納入作為參考美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4354 US,標題“MULTIPROCES SOR OPERATION IN A MULTIMEDIA SIGNALPROCESSOR(在多媒體信號處理器中的多處理器操作)”,發(fā)明者Le Nguyen。
美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4355 US,標題“SINGLE-INSTRUCTION-MULTIPLE-DATA PROCESSING IN AMULTMEDIA SIGNAL PROCESSOR(在多媒體信號處理器中的單指令多數(shù)據(jù)處理)”,發(fā)明者Le Nguyen。
美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4365 US,標題“EFFICIENT CONTEXT SAVING AND RESTORING IN MULTIPROCESSORS(多處理器中有效的現(xiàn)場保存和恢復)”,發(fā)明者S.P.Song等人。
美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4366 US,標題“SYSTEM AND METHOD FOR HANDLING SOFTWARE INTERRUPTSWITH ARGUMENT PASSING(隨變元傳送處理軟件中斷的系統(tǒng)和方法)”,發(fā)明者S.P.Song等人。
美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4368 US,標題“METHODS AND APPARATUS FOR PROCESSING VIDEO DATA(處理視頻數(shù)據(jù)的方法和裝置)”,發(fā)明者C.Reader等人。
美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4369 US,標題“SINGLE-INSTRUCTION-MULTIPLE-DATAPROCESSING USINGMULTIPLE BANKS OF VECTOR REGISTERS(使用多組向量寄存器的單指令多數(shù)據(jù)處理)”,發(fā)明者Le Nguyen等人。
美國專利申請?zhí)枴痢?×××,×××,代理人案號M-4370 US,標題“SINGLE-INSTRUCTION-MULTIPLE-DATAPROCESSING WITHCOMBINED SCALAR/VECTOR OPERATIONS(帶標量/向量組合操作的單指令多數(shù)據(jù)處理)”,發(fā)明者Le Nguyen等人。
權(quán)利要求
1.一種計算機系統(tǒng),包括含有控制和數(shù)據(jù)處理特性互不相同的處理器的多個互相連接的處理器;共同的操作系統(tǒng),用于控制所述多個處理器;中斷和異常處理器,用于和所述操作系統(tǒng)一起運行,包括在所述多個處理器的第一處理器上運行的中斷和異常檢測器,用檢測所述第一處理器的各中斷和異常條件;以及在所述多個處理器的第二處理器上運行的中斷和異常子處理器,用于檢測所述第一處理器的各中斷和異常條件及組合地處理所述第一處理器和所述第二處理器的各中斷和異常條件。
2.按照權(quán)利要求1所述的計算機系統(tǒng),其特征在于所述第二處理器是具有規(guī)定數(shù)據(jù)路徑寬度的控制處理器;以及所述第一處理器是向量處理器,該向量處理器具有比所述第二處理器的數(shù)據(jù)路徑寬度大得多的寬數(shù)據(jù)路徑寬度。
3.按照權(quán)利要求1所述的計算機系統(tǒng),其特征在于在所述多個處理器的所述第一處理器上運行的所述中斷和異常檢測器響應(yīng)檢測到的異常而將所述第一處理器去激活到空閑狀態(tài)。
4.按照權(quán)利要求1所述的計算機系統(tǒng),其特征在于所述第二處理器有對所述第一處理器的各控制和狀態(tài)寄存器的讀和寫訪問。
5.按照權(quán)利要求4所述的計算機系統(tǒng),其特征在于在所述多個處理器的所述第一處理器上運行的所述中斷和異常檢測器響應(yīng)檢測到的異常而將所述第一處理器去激活到空閑狀態(tài);以及所述第二處理器被約束在所述第一處理器處于所述空閑狀態(tài)時有對所述第一處理器的各控制和狀態(tài)寄存器的讀和寫訪問。
6.一種計算機系統(tǒng),包括含有控制和數(shù)據(jù)處理特性互不相同的處理器的多個互相連接的處理器;共同的操作系統(tǒng),用于控制所述多個處理器;中斷和異常處理器,用于和所述操作系統(tǒng)一起運行,包括在所述多個處理器的第一處理器上運行的中斷和異常檢測器,用于檢測所述第一處理器的各中斷和異常條件,其中所述中斷和異常檢測器響應(yīng)檢測到的異常而將所述第一處理器去激活到空閑狀態(tài)。
7.按照權(quán)利要求6所述的計算機系統(tǒng),其特征在于所述中斷和異常處理器還包括在所述多個處理器的第二處理器上運行并控制所述第一處理器的中斷和異常響應(yīng)的中斷和異常子處理器。
8.按照權(quán)利要求7所述的計算機系統(tǒng),其特征在于所述第二處理器是具有規(guī)定數(shù)據(jù)路徑寬度的控制處理器;以及所述第一處理器是向量處理器,該向量處理器具有比所述第二處理器的所述數(shù)據(jù)路徑寬度大得多的寬數(shù)據(jù)路徑寬度。
9.一種計算機系統(tǒng),包括含有控制和數(shù)據(jù)處理特性互不相同的處理器的多個互相連接的處理器;共同的操作系統(tǒng),用于控制所述多個處理器;中斷和異常處理器,用于和所述操作系統(tǒng)一起在所述多個處理器的第一處理器和第二處理器上運行,其中所述第二處理器有對所述第一處理器的各控制和狀態(tài)寄存器的讀和寫訪問。
10.按照權(quán)利要求9所述的計算機系統(tǒng),其特征在于所述中斷和異常處理器還包括在所述多個處理器的所述第一處理器上運行的中斷和異常檢測器,用于檢測所述第一處理器的各中斷和異常條件。
11.按照權(quán)利要求9所述的計算機系統(tǒng),其特征在于所述中斷和異常處理器還包括在所述第二處理器上運行的中斷和異常子處理器,用于檢測所述第一處理器的各中斷和異常條件以及用于組合地處理所述第一處理器和所述第二處理器的各中斷和異常條件。
12.按照權(quán)利要求9所述的計算機系統(tǒng),其特征在于所述第二處理器是具有規(guī)定數(shù)據(jù)路徑寬度的控制處理器;以及所述第一處理器是向量處理器,該向量處理器具有比所述第二處理器的所述數(shù)據(jù)路徑寬度大得多的寬數(shù)據(jù)路徑寬度。
13.按照權(quán)利要求9所述的計算機系統(tǒng),其特征在于在所述多個處理器的所述第一處理器上運行的所述中斷和異常檢測器響應(yīng)檢測到的異常而將所述第一處理器去激活到空閑狀態(tài);以及所述第二處理器被約束在所述第一處理器處于所述空閑狀態(tài)時有對所述第一處理器的各控制和狀態(tài)寄存器的讀和寫訪問。
14.一種在含有不對稱處理器的計算機系統(tǒng)中處理中斷和異常的方法,包括以下步驟把所述不對稱處理器中的第一處理器作為受控處理器運行;把所述不對稱處理器中的第二處理器作為主動控制處理器運行;檢測在所述受控處理器中的異常條件;把指出所述受控處理器的所述異常條件的中斷請求信號從所述受控處理器發(fā)到所述主動控制處理器;響應(yīng)所述異常條件在所述受控處理器中引發(fā)空閑狀態(tài);以及運行所述主動控制處理器以處理所述受控處理器的所述異常條件。
15.按照權(quán)利要求14所述的方法,進一步包括以下步驟檢測所述計算機系統(tǒng)的復位;以及響應(yīng)所述的計算機系統(tǒng)復位引發(fā)所述受控處理器的空閑狀態(tài)。
16.按照權(quán)利要求15所述的方法,其特征在于所述運行所述主動控制處理器以處理所述受控處理器的所述異常條件的步驟還包括以下步驟運行所述主動控制處理器以在所述受控處理器處于所述空閑狀態(tài)時響應(yīng)來自所述受控處理器的所述中斷請求信號而初始化所述受控處理器的諸寄存器;以及運行所述主動控制處理器以在所述受控處理器的所述諸寄存器初始化后執(zhí)行把所述受控處理器激活成運行狀態(tài)的指令。
17.按照權(quán)利要求16所述的方法,其特征在于所述運行所述主動控制處理器以處理所述受控處理器的所述異常條件的步驟還包括以下步驟運行所述主動控制處理器以從所述受控處理器讀取寄存器信息;根據(jù)所述寄存器信息確定異常類型;以及運行所述主動控制處理器以根據(jù)所述異常類型處理所述異常。
18.按照權(quán)利要求14所述的方法,進一步包括以下步驟運行所述主動控制處理器以在所述受控處理器處于所述空閑狀態(tài)時讀和寫所述受控處理器的各個寄存器。
19.按照權(quán)利要求14所述的方法,進一步包括以下步驟使用單一的操作系統(tǒng)運行所述主動控制處理器和所述受控處理器;以及在所述主動控制處理器和所述受控處理器中執(zhí)行互相獨立的指令集。
20.按照權(quán)利要求14所述的方法,其特征在于所述受控處理器是具有大機器狀態(tài)和大數(shù)據(jù)寬度的向量處理器或數(shù)據(jù)處理器;以及所述主動控制處理器是具有比所述受控處理器的所述機器狀態(tài)和數(shù)據(jù)寬度小得多的機器狀態(tài)和數(shù)據(jù)寬度的控制處理器。
21.一種多媒體計算機系統(tǒng),包括控制處理器;連接到所述控制處理器的向量或數(shù)據(jù)處理器,其中所述向量或數(shù)據(jù)處理器與所述控制處理器相比具有大機器狀態(tài)和大數(shù)據(jù)寬度;連接在所述控制處理器和所述向量或數(shù)據(jù)處理器之間的協(xié)處理器接口;連接到所述向量或數(shù)據(jù)處理器的異常檢測器,用于檢測異常條件以及響應(yīng)所述異常條件的檢測向所述控制處理器發(fā)送中斷請求及將所述向量或數(shù)據(jù)處理器去激活到空閑狀態(tài);以及連接到所述控制處理器的異常處理器,用于接收所述中斷請求及響應(yīng)所述中斷請求而處理所述向量或數(shù)據(jù)處理器的所述異常條件。
22.按照權(quán)利要求21所述的多媒體計算機系統(tǒng),其特征在于所述協(xié)處理器接口包括多個由所述控制處理器和所述向量或數(shù)據(jù)處理器可讀和可寫的寄存器;譯碼器,用于對所述控制處理器指令集的指令譯碼并檢測在所述協(xié)處理器接口上可執(zhí)行的諸擴充指令;以及執(zhí)行所述諸擴充指令的狀態(tài)機。
23.按照權(quán)利要求21所述的多媒體計算機系統(tǒng),其特征在于所述控制處理器和所述向量或數(shù)據(jù)處理器具有互不相同的控制和數(shù)據(jù)處理特性。
24.按照權(quán)利要求23所述的多媒體計算機系統(tǒng),其特征在于所述控制處理器具有規(guī)定的數(shù)據(jù)路徑寬度;以及所述向量或數(shù)據(jù)處理器具有比所述控制處理器的所述數(shù)據(jù)路徑寬度大得多的寬數(shù)據(jù)路徑寬度。
25.按照權(quán)利要求21所述的多媒體計算機系統(tǒng),進一步包括連接到所述控制處理器的主處理器,其中所述主處理器包括控制所述控制處理器運行的程序代碼。
全文摘要
含有多個具有控制和數(shù)據(jù)處理特性互不相同的不對稱處理器的多處理器計算機系統(tǒng)。指令集各不相關(guān)的這些不對稱處理器由單一操作系統(tǒng)控制。該多處理器計算機系統(tǒng)使用中斷和異常處理的多處理器架構(gòu)定義。在復位或檢測到異常時,所述多處理器計算機系統(tǒng)的數(shù)據(jù)處理器進入空閑狀態(tài),該系統(tǒng)的控制處理器讀和寫數(shù)據(jù)處理器內(nèi)的也能由數(shù)據(jù)處理器讀寫的各控制和狀態(tài)寄存器。因此在執(zhí)行操作系統(tǒng)或應(yīng)用程序時,控制處理器控制數(shù)據(jù)處理器的運行。
文檔編號G06F7/544GK1176437SQ97116048
公開日1998年3月18日 申請日期1997年8月15日 優(yōu)先權(quán)日1996年8月19日
發(fā)明者森甬·P·桑, 莫塔茲·A·穆罕默德, 利·恩格延, 樸憲哲 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
克拉玛依市| 勐海县| 阿巴嘎旗| 津南区| 武夷山市| 额敏县| 宁化县| 昭平县| 民权县| 阳城县| 郁南县| 济阳县| 江华| 乐平市| 偏关县| 冀州市| 海城市| 阿克苏市| 山东| 青州市| 平阳县| 兴城市| 湖北省| 桃江县| 巴南区| 深泽县| 岫岩| 法库县| 常熟市| 乌兰察布市| 凤翔县| 阿拉善盟| 城口县| 景洪市| 吉隆县| 平乐县| 景泰县| 娱乐| 类乌齐县| 阿合奇县| 平陆县|