專利名稱:有共享程序存儲(chǔ)器的多處理器計(jì)算設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及具有執(zhí)行來自共享程序存儲(chǔ)器的指令的多處理器的數(shù)據(jù)處理設(shè)備。本發(fā)明可以用于例如網(wǎng)絡(luò)處理器和圖像處理器。
背景技術(shù):
存在多數(shù)據(jù)處理器同時(shí)執(zhí)行相同計(jì)算機(jī)軟件以完成類似任務(wù)的各種情況。例如,網(wǎng)絡(luò)處理器是接收電信網(wǎng)中的數(shù)據(jù)包并根據(jù)數(shù)據(jù)包中的信息執(zhí)行動(dòng)作的設(shè)備。網(wǎng)絡(luò)處理器執(zhí)行的動(dòng)作的例子包括將數(shù)據(jù)包傳遞到特定的輸出端口,將數(shù)據(jù)包分配到優(yōu)先級(jí)隊(duì)列,丟棄數(shù)據(jù)包等等。由于大多數(shù)網(wǎng)絡(luò)處理任務(wù)都必須對(duì)每個(gè)數(shù)據(jù)包分別進(jìn)行,所以,具有在多個(gè)處理單元之間分擔(dān)處理進(jìn)入數(shù)據(jù)包的任務(wù)的結(jié)構(gòu)的網(wǎng)絡(luò)處理器不是罕見的。每個(gè)處理單元執(zhí)行相同的計(jì)算機(jī)軟件,它控制如何處理進(jìn)入的數(shù)據(jù)包。
大量的網(wǎng)絡(luò)處理器可以制造在單個(gè)專用集成電路(ASIC)上。每個(gè)處理器執(zhí)行來自指令存儲(chǔ)器的指令。某些網(wǎng)絡(luò)處理器具有被多個(gè)處理單元共享的公用指令存儲(chǔ)器。例如,PCT公開說明書WO 01/17179公開了一種有N個(gè)處理單元的網(wǎng)絡(luò)處理器,所述處理單元能夠并行執(zhí)行來自公用指令存儲(chǔ)器的微代碼。
圖像處理器也可以包括執(zhí)行來自公用指令存儲(chǔ)器的指令的多個(gè)處理單元。
這種共享存儲(chǔ)器結(jié)構(gòu)的問題是,在公用指令存儲(chǔ)器中的每個(gè)位置通常一次只由一個(gè)處理器訪問。這種情況下,某些處理單元在需要時(shí)不能從公用指令存儲(chǔ)器獲得需要的指令。這些處理器會(huì)停止工作,直到輪到它們能檢索公用指令存儲(chǔ)器中的所需指令的時(shí)間片為止。這就降低了效率,并減少了總處理吞吐量。
發(fā)明內(nèi)容
本發(fā)明涉及為多個(gè)處理單元提供對(duì)將被其執(zhí)行的指令的訪問的方法和設(shè)備。指令保存在多個(gè)處理單元之間共享的存儲(chǔ)器結(jié)構(gòu)中。
根據(jù)本發(fā)明的一個(gè)方面,提供一種設(shè)備,包括多個(gè)處理單元,包括若干可同時(shí)訪問的存儲(chǔ)器段的存儲(chǔ)器結(jié)構(gòu),和存儲(chǔ)器段訪問控制。存儲(chǔ)器段的數(shù)量至少等于處理單元的數(shù)量。存儲(chǔ)器結(jié)構(gòu)能夠保存包括多個(gè)順序部件的軟件,所述部件分配在存儲(chǔ)器段之間,使得順序部件位于順序存儲(chǔ)器段中。存儲(chǔ)器段訪問控制被連接在處理單元與存儲(chǔ)器結(jié)構(gòu)之間,并且被構(gòu)造成允許每個(gè)存儲(chǔ)器單元在多個(gè)相繼存儲(chǔ)器訪問周期中的每個(gè)周期上,從存儲(chǔ)器段中的不同存儲(chǔ)器段檢索軟件部件中的一個(gè)部件。存儲(chǔ)器段訪問控制允許至少一個(gè)處理單元在順序存儲(chǔ)器訪問周期上從存儲(chǔ)器段中的順序存儲(chǔ)器段檢索軟件部件中的順序部件。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種方法,用于為多個(gè)處理單元提供對(duì)包含其要執(zhí)行的軟件的共享指令存儲(chǔ)器的訪問。該方法包括在多個(gè)可同時(shí)訪問的存儲(chǔ)器段中間分配軟件,使得順序部件位于順序的存儲(chǔ)器段中;在多個(gè)存儲(chǔ)器訪問周期的每個(gè)周期中,為每個(gè)處理單元從存儲(chǔ)器段中不同的存儲(chǔ)器段檢索軟件的部件;和在存儲(chǔ)器訪問周期的順序周期中,為至少一個(gè)處理單元從存儲(chǔ)器段的順序存儲(chǔ)器段中檢索軟件的順序部件。
以下描述本發(fā)明的其它方面和本發(fā)明具體實(shí)施例的其它特征。
在圖解本發(fā)明的非限制性實(shí)施例的附圖中,圖1是按本發(fā)明第一實(shí)施例的一組處理單元的指令存儲(chǔ)器結(jié)構(gòu)的示意圖;圖2是圖1所示的指令存儲(chǔ)器結(jié)構(gòu)中可能的指令組織示意圖;圖3圖解了一種控制簡單循環(huán)結(jié)構(gòu)的方式,該方式為處理單元提供對(duì)圖1的指令存儲(chǔ)器結(jié)構(gòu)中存儲(chǔ)器段的訪問;圖4是圖1所示的指令存儲(chǔ)器結(jié)構(gòu)中另一可能的指令組織示意圖;圖5是按本發(fā)明另一實(shí)施例的一組處理單元的指令存儲(chǔ)器結(jié)構(gòu)的示意圖,包括仲裁器;圖6是可以在圖5的仲裁器中實(shí)現(xiàn)的算法的流程圖;圖7是使用2-位計(jì)數(shù)器產(chǎn)生存儲(chǔ)器段選擇值的示意圖;圖8是具有多組處理單元的ASIC的示意圖,每一組處理單元都有共享存儲(chǔ)器結(jié)構(gòu);而圖9是按本發(fā)明另一實(shí)施例的用于多組處理單元的指令存儲(chǔ)器結(jié)構(gòu)的示意圖。
具體實(shí)施例方式
在以下所有描述中,提供具體細(xì)節(jié)以便能夠更全面地理解本發(fā)明。但是,本發(fā)明不受這些具體細(xì)節(jié)的限制。為了避免使本發(fā)明出現(xiàn)不必要的模糊不清,在其他例子中不再詳細(xì)描述公知的部分。因此,說明書和附圖都是說明性的,而不是對(duì)本發(fā)明的限制。
圖1示出了按本發(fā)明一個(gè)實(shí)施例的多處理器數(shù)據(jù)處理設(shè)備10。設(shè)備10包括多個(gè)處理單元12。設(shè)備10最好包括2m個(gè)處理單元12,m是一個(gè)整數(shù)。每個(gè)處理單元12可以包括在ASIC上的處理器核心。處理單元12訪問并執(zhí)行存儲(chǔ)在存儲(chǔ)器結(jié)構(gòu)13中的指令。存儲(chǔ)器結(jié)構(gòu)13包括多個(gè)可獨(dú)立訪問的段14。在圖示的實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)13包括4個(gè)段14-0到14-3,這些段包含由處理單元12執(zhí)行的指令。
存儲(chǔ)器結(jié)構(gòu)13包含要由處理單元12執(zhí)行的軟件程序15。如圖2所示,軟件程序15包括多個(gè)部件(每個(gè)部件包括一個(gè)指令,或任選地,包括多個(gè)指令)。每個(gè)部件的寬度最好等于處理單元12的指令總線17的寬度。每個(gè)部件例如可以包括一個(gè)字,指令總線17可以均具有一個(gè)字的寬度,字可以是例如8位、16位、32位或64位字。
所述部件在段14-0到14-3之間交錯(cuò)。段14-0包含部件0、4、8、12等。段14-1包含部件1、5、8、13等。段14-2包含部件2、6、9、14等。段14-4包含部件3、7、10、15等。
存儲(chǔ)器段訪問控制連接在處理單元12與存儲(chǔ)器結(jié)構(gòu)13之間。存儲(chǔ)器段訪問控制確定在每個(gè)存儲(chǔ)器訪問周期內(nèi)哪些處理單元12可以訪問哪些存儲(chǔ)器段14。在圖1所示的實(shí)施例中,存儲(chǔ)器段訪問控制包括用于每個(gè)段14的輸入多路復(fù)用器20,輸出多路復(fù)用器24,和計(jì)數(shù)器25。每個(gè)計(jì)數(shù)器25包含為控制輸入多路復(fù)用器20和輸出多路復(fù)用器24的輸入而提供的值。該值可以稱作存儲(chǔ)器段選擇值。如果有2m個(gè)處理器,計(jì)數(shù)器25最好是m-位計(jì)數(shù)器。
每個(gè)處理單元12均具有程序計(jì)數(shù)器22。程序計(jì)數(shù)器22通常是圖1中如虛線12’所示的處理單元12的一部分。程序計(jì)數(shù)器22包含一個(gè)值,該值直接或間接地指示要從存儲(chǔ)器結(jié)構(gòu)13提取的軟件15的下一個(gè)部件,以便被相關(guān)處理單元12執(zhí)行。與每個(gè)處理單元12相關(guān)的程序計(jì)數(shù)器22位于每個(gè)輸入多路復(fù)用器20的輸入端。
在每個(gè)存儲(chǔ)器段14的輸入端,輸入多路復(fù)用器20提供一個(gè)處理單元12的程序計(jì)數(shù)器值。根據(jù)計(jì)數(shù)器25中的值確定哪個(gè)程序計(jì)數(shù)器值被提供給存儲(chǔ)器段14的輸入端。在每個(gè)周期中,從存儲(chǔ)器段14輸入端的值所指定的每個(gè)存儲(chǔ)器段14檢索軟件15的部件。
每個(gè)存儲(chǔ)器段14在輸出端提供軟件15中檢索出的部件。存儲(chǔ)器段14的每個(gè)輸出連接到每個(gè)輸出多路復(fù)用器24的輸入。來自每個(gè)輸出多路復(fù)用器24的輸出連接到與一個(gè)處理單元12關(guān)聯(lián)的指令總線17。由此,每個(gè)處理單元12借助于輸出多路復(fù)用器24從一個(gè)存儲(chǔ)器段14接收指令。在特定存儲(chǔ)器訪問周期發(fā)出被交付到特定處理單元12的指令的特定存儲(chǔ)器段14,由與該處理單元12關(guān)聯(lián)的計(jì)數(shù)器25的值確定。
設(shè)置計(jì)數(shù)器25中的值,使得在每個(gè)存儲(chǔ)器訪問周期中,每個(gè)處理單元12訪問一個(gè)不同的存儲(chǔ)器段14。在每個(gè)后續(xù)存儲(chǔ)器訪問周期中,改變計(jì)數(shù)器25中的值,使得在若干存儲(chǔ)器訪問周期上,每個(gè)處理單元12將訪問每個(gè)存儲(chǔ)器段14和軟件15的所有部件。例如,計(jì)數(shù)器25中的值可以循環(huán),如圖3所示。在有4個(gè)存儲(chǔ)器段14和4個(gè)計(jì)數(shù)器25(標(biāo)識(shí)為25-0到25-3)的情況下,計(jì)數(shù)器25中的值如表I所示可以循環(huán)。
例如,當(dāng)圖1的系統(tǒng)復(fù)位時(shí),每個(gè)處理單元12被構(gòu)造成開始運(yùn)行軟件15。每個(gè)處理單元12的程序計(jì)數(shù)器22包含指示軟件15的部件0的值。由于部件0在存儲(chǔ)器段14-0中,只有處理單元12-0(在第一存儲(chǔ)器訪問周期訪問存儲(chǔ)器段14-0)將得到其需要的指令。處理單元12-0是唯一在第一存儲(chǔ)器訪問周期訪問存儲(chǔ)器段14-0的處理單元,因?yàn)槠溆?jì)數(shù)器25-0中的值對(duì)應(yīng)于存儲(chǔ)器段14-0。其他的處理單元12停止工作。
在第二存儲(chǔ)器訪問周期,處理單元12-0訪問存儲(chǔ)器段14-1,并可以檢索軟件15的部件1(在第二存儲(chǔ)器訪問周期中,計(jì)數(shù)器25-0中的值對(duì)應(yīng)于存儲(chǔ)器段14-1)。在第二存儲(chǔ)器訪問周期中,處理單元12-1可以檢索軟件15的部件0。仍然等待訪問軟件15的部件0的其他兩個(gè)處理單元12仍將停止工作。
在第四存儲(chǔ)器訪問周期內(nèi)和第四存儲(chǔ)器訪問周期之后,只要沒有處理單元12在軟件15中執(zhí)行跳轉(zhuǎn)或分支轉(zhuǎn)移,則每個(gè)處理單元12以循環(huán)方式接收軟件15的下一個(gè)部件。如果處理單元12執(zhí)行跳轉(zhuǎn)或分支轉(zhuǎn)移,則停止工作,直到下一個(gè)存儲(chǔ)器訪問周期,在該周期中處理器12訪問含有分支轉(zhuǎn)移到的指令的存儲(chǔ)器段14。在上述實(shí)施例中,如果處理單元12的程序計(jì)數(shù)器22中地址的最低兩位與其對(duì)應(yīng)計(jì)數(shù)器25中的值不匹配,則進(jìn)行跳轉(zhuǎn)或分支轉(zhuǎn)移的處理單元12將在指定存儲(chǔ)器訪問周期中停止工作。
在很多應(yīng)用中,軟件15包括相對(duì)小部分的通常執(zhí)行代碼,和相對(duì)大量的、用于處理必須處理但難得出現(xiàn)的情況的代碼。例如,如果處理單元12被用于數(shù)據(jù)包處理,則多數(shù)處理單元12會(huì)耗費(fèi)主要時(shí)間來執(zhí)行軟件15的通常執(zhí)行部件。處理單元12也會(huì)遇到異常,例如,錯(cuò)誤的數(shù)據(jù)包或信元傳輸,或帶選項(xiàng)的數(shù)據(jù)包等等。當(dāng)出現(xiàn)這種情況時(shí),處理單元12將分支轉(zhuǎn)移到軟件15中包含處理異常的代碼、通常不太使用的部件。
在這些狀態(tài)下的有益作法是,如上所述,在每個(gè)存儲(chǔ)器段14中提供軟件15中完整的通常使用部分,并且將軟件15中其余的通常不太使用的部分分配在存儲(chǔ)器段14中間。圖4圖解了存儲(chǔ)器段14中軟件15的可能布局。每個(gè)存儲(chǔ)器段14均被分成兩個(gè)區(qū)域14A和14B。在每個(gè)存儲(chǔ)器段14中重復(fù)軟件15的第一部分15A。第一部分15A位于區(qū)域14A中。部分15A包含根據(jù)0到M-1范圍內(nèi)的程序計(jì)數(shù)器值檢索的部件。
如上述的,在存儲(chǔ)器段14的區(qū)域14B中劃分軟件15的第二部分15B。第二部分15B包括根據(jù)M到N范圍內(nèi)的程序計(jì)數(shù)器值檢索的部件。如圖4所示,部件M、M+4、M+8等等位于存儲(chǔ)器段14-0的區(qū)域14B中,部件M+1、M+5、M+9等等位于存儲(chǔ)器段14-1的區(qū)域14B中。第二部分15B的其他部件位于存儲(chǔ)器段14-2和14-3的區(qū)域14B中。
對(duì)于圖4所示的存儲(chǔ)器布局,只要處理單元12正執(zhí)行軟件15的部分15A中找到的指令,則由于每個(gè)存儲(chǔ)器段14中均重復(fù)部分15A的全部部件,所以就不會(huì)停止工作。如果處理單元12分支轉(zhuǎn)移到軟件15中位于部分15B的部件,則處理單元12可以停止工作多達(dá)3個(gè)存儲(chǔ)器訪問周期,直到它訪問包含其分支轉(zhuǎn)移到的軟件15的部件的存儲(chǔ)器段14。
可以使存儲(chǔ)器區(qū)域14A和14B的相對(duì)尺寸是可以配置的。設(shè)備10可以包括寄存器,該寄存器包含表示界定存儲(chǔ)器區(qū)域14A和14B之間的邊界的地址的值。通過改變寄存器中的值,可以在軟件15的性能和尺寸之間進(jìn)行權(quán)衡。通過設(shè)定該值以使所有的存儲(chǔ)器段14作為存儲(chǔ)器區(qū)域14A處理,可以提高性能和避免停止工作,其代價(jià)是只能容納較小數(shù)量的軟件15。通過設(shè)定該值以使所有存儲(chǔ)器段14均作為存儲(chǔ)器區(qū)域14B處理,可以提高軟件15的容量,但是要犧牲性能。
圖5圖解了按本發(fā)明另一實(shí)旋例的設(shè)備10’。設(shè)備10’包含代替計(jì)數(shù)器25的仲裁器30。仲裁器30具有從每個(gè)處理單元12接收程序計(jì)數(shù)器值的輸入,和控制多路復(fù)用器20和24的輸出。仲裁器30嘗試控制多路復(fù)用器20和24,以便為每個(gè)處理單元12提供對(duì)包含處理單元12所需軟件15之部件的存儲(chǔ)器段14的訪問。
可以用多種不同的方式實(shí)現(xiàn)仲裁器30。在某些實(shí)施例中,仲裁器30可以控制多路復(fù)用器20和24以交換存儲(chǔ)器段14,其中兩個(gè)處理單元12將在下一個(gè)存儲(chǔ)器訪問周期從所述存儲(chǔ)器段14檢索指令。例如,考慮第一處理單元12需要軟件15的位于部分15B中的部件的情況(見圖4)。由于部分15B的每個(gè)部件位于唯一一個(gè)存儲(chǔ)器段14中,第一處理單元12在下一個(gè)存儲(chǔ)器訪問周期將會(huì)停止工作,除非它能訪問包含軟件15的所需部件的特定存儲(chǔ)器段14。假?zèng)]在下一個(gè)存儲(chǔ)器訪問周期,第一處理單元12會(huì)正常訪問第一存儲(chǔ)器段14,第二處理單元12會(huì)正常訪問第二存儲(chǔ)器段14,而第二存儲(chǔ)器段(即可由第二處理單元12正常訪問的存儲(chǔ)器段)包含第一處理單元12所需的軟件15的部件。在這些條件下,仲裁器30確定通過交換對(duì)第一和第二存儲(chǔ)器段14的訪問是否能減少在下一個(gè)存儲(chǔ)器訪問周期停止工作的處理單元數(shù)量,以使在下一個(gè)存儲(chǔ)器訪問周期中,第一處理單元12將訪問第二存儲(chǔ)器段14,而第二處理單元12將訪問第一存儲(chǔ)器段14。如果是這樣,仲裁器30控制與第一和第二存儲(chǔ)器段關(guān)聯(lián)的多路復(fù)用器20和24執(zhí)行該切換。
在以下情況下通過這種切換將會(huì)減少停止工作的處理器的數(shù)量·第二處理單元12正執(zhí)行公用部分15A中的軟件部件(在這種情況下,第二處理單元不在意它要訪問哪個(gè)存儲(chǔ)器段);·第二處理單元12正執(zhí)行部分15B中軟件15的部件,并且第二處理單元12所需的軟件部件不位于第二存儲(chǔ)器段14中;或·第二處理單元12不活躍(例如由提供給仲裁器30的保留或不存在的程序計(jì)數(shù)器值,或分立信號(hào)(未示出)所指示的)。
圖6圖解了能在仲裁器30中實(shí)現(xiàn)的可能邏輯。塊40確定是否存在需要來自部分15B的軟件15之部件的處理單元12。在某些實(shí)施例中,通過比較用于有關(guān)處理單元12的程序計(jì)數(shù)器值,和劃分存儲(chǔ)器段14的區(qū)域14A和14B的值,可以實(shí)現(xiàn)此目的。在塊42中,仲裁器30進(jìn)行檢查以確定該處理單元12是否會(huì)正常訪問包含所需的軟件15之部件的存儲(chǔ)器段14。在某些實(shí)施例中,這可以通過檢查程序計(jì)數(shù)器值的最低階位來實(shí)現(xiàn)。在塊44中,仲裁器30確定交換是否有利(即,在下一個(gè)存儲(chǔ)器訪問周期停止工作的處理器的數(shù)量是否減少)。如果有利,則仲裁器30在塊46中執(zhí)行交換。
可以通過邏輯電路的形式實(shí)現(xiàn)仲裁器30,所述邏輯電路在其輸出上產(chǎn)生用于多路復(fù)用器20和24的控制信號(hào)。仲裁器30可以具有復(fù)雜度各異的各種體系結(jié)構(gòu)。簡單的仲裁器30可以例如嘗試減少單級(jí)段中的工作停止。仲裁器30可以例如交換與一或多對(duì)處理器關(guān)聯(lián)的存儲(chǔ)器段14,以減少在下一個(gè)存儲(chǔ)器訪問周期停止工作的處理單元12的數(shù)量。更復(fù)雜的仲裁器30可以嘗試進(jìn)一步的優(yōu)化,但以較慢的操作為代價(jià)。仲裁器30可以用在按圖2所示組織軟件15的情況,以及按圖4所示組織軟件15的情況。
表II提供了仲裁器30的一個(gè)針對(duì)特定情況的實(shí)施例的真值表,在該情況下用于所有處理單元12的程序計(jì)數(shù)器22或者需要軟件15的位于部分15A中的部件,或者不活躍。這些處理器要求由表II左邊列中的字母“A”指示,它們對(duì)應(yīng)于各個(gè)處理單元12-0到12-3。由于訪問任何存儲(chǔ)器段14均可滿足各個(gè)處理單元12,仲裁器30不需要改變存儲(chǔ)器段14針對(duì)處理單元12的分配。這些存儲(chǔ)器段的分配由表II右邊列中的數(shù)字0到3指示,它們對(duì)應(yīng)于各個(gè)處理單元12-0到12-3。例如,與處理單元12-0相應(yīng)的列中的數(shù)字0表明,在下一個(gè)存儲(chǔ)器訪問周期,處理單元12-0將訪問在下一個(gè)存儲(chǔ)器訪問周期通常要指定給處理單元12-0的存儲(chǔ)器段14。
表III-0到III-3提供了仲裁器30的一個(gè)實(shí)施例的真值表,用于以下情況(i)3個(gè)處理單元12的程序計(jì)數(shù)器22或者需要軟件15的位于部分15A中的部件,或者不活躍;和(ii)一個(gè)處理單元12-0的程序計(jì)數(shù)器22需要訪問規(guī)定的存儲(chǔ)器段14。
通過擴(kuò)展上述的表,可以提供針對(duì)2、3或4個(gè)處理單元12需要訪問特定存儲(chǔ)器段14的情況的仲裁器真值表。例如,表IV是針對(duì)處理單元12-0和12-1均需要訪問特定存儲(chǔ)器段14的情況的真值表。
如圖8所示,本發(fā)明可以在ASIC 50中實(shí)施,ASIC 50帶有處理單元12和存儲(chǔ)器13。在某些實(shí)施例中,單個(gè)ASIC 50帶有多個(gè)組52的處理單元12,每個(gè)組52還包含相關(guān)的存儲(chǔ)器結(jié)構(gòu)13。例如,每個(gè)組52可包括4到16個(gè)處理單元12。最好是每個(gè)組52具有2m個(gè)處理單元12,和具有2m個(gè)存儲(chǔ)器段14的存儲(chǔ)器結(jié)構(gòu)13。圖8所示的ASIC具有5個(gè)組52且每組8個(gè)處理單元12,并且還具有其他的電路(沒有示出)。ASIC 50可以包括存儲(chǔ)器寫電路54,存儲(chǔ)器寫電路54被構(gòu)造成接收要存儲(chǔ)在組52的存儲(chǔ)器結(jié)構(gòu)13中的軟件(例如,可以從芯片外軟件源接收軟件),并且并行地將接收到的軟件寫入所有組52的存儲(chǔ)器結(jié)構(gòu)13。
對(duì)于前面提及的構(gòu)件(例如軟件模塊、處理器、組件、器件、電路等等),除非另外指出,對(duì)所述構(gòu)件的引用(包含對(duì)“裝置”的引用)均應(yīng)被解釋為包含作為該構(gòu)件的等同物、執(zhí)行該構(gòu)件的功能(即,功能等同)的任何構(gòu)件,即包含在結(jié)構(gòu)上不等價(jià)于所公開的結(jié)構(gòu)、但執(zhí)行了所圖解的本發(fā)明示例性實(shí)施例中的功能的構(gòu)件。
正如本領(lǐng)域技術(shù)人員根據(jù)前面的公開內(nèi)容所能夠理解的,在不脫離本發(fā)明的精神和范圍的前提下,本發(fā)明的實(shí)施可以有各種變化和改型。例如,·本發(fā)明可以用于圖像處理,網(wǎng)絡(luò)處理,數(shù)字信號(hào)處理,或任何其它期望使多個(gè)處理單元執(zhí)行來自公用指令存儲(chǔ)器的指令的領(lǐng)域?!げ槐靥峁┓至⒌挠?jì)數(shù)器25來控制輸入多路復(fù)用器20和輸出多路復(fù)用器24??梢允褂靡换蚨鄠€(gè)狀態(tài)機(jī)來產(chǎn)生用于多路復(fù)用器的合適控制信號(hào)。還可以使用單個(gè)計(jì)數(shù)器,該計(jì)數(shù)器與用來向每個(gè)多路復(fù)用器傳遞合適控制信號(hào)的邏輯相關(guān)聯(lián)?!ご鎯?chǔ)器段14的數(shù)量不必等于這些存儲(chǔ)器段14伺服的處理單元12的數(shù)量。存儲(chǔ)器段14的數(shù)量可以大于處理單元12的數(shù)量?!と籼峁┲俨闷?0,則根據(jù)仲裁器30的能力,沒有必要象例如參照?qǐng)D3描述的那樣,在所有可用存儲(chǔ)器段14中循環(huán)特定處理單元12會(huì)正常訪問的存儲(chǔ)器段14。按照使停止工作的數(shù)量最小并且對(duì)任何處理單元均沒有不公平的方式,仲裁器30可以針對(duì)每個(gè)存儲(chǔ)器訪問周期為存儲(chǔ)器段14指定各個(gè)處理單元12。仲裁器30可以包括給某些處理單元12設(shè)置優(yōu)先級(jí)的機(jī)構(gòu)。·雖然這里將存儲(chǔ)器段描述成可以同時(shí)訪問的,但這僅僅意味著軟件部件能在單個(gè)存儲(chǔ)器訪問周期從各個(gè)存儲(chǔ)器段中檢索到?!と绻鎯?chǔ)器段訪問控制包括如圖1所示的計(jì)數(shù)器25,則不必有對(duì)應(yīng)于每個(gè)存儲(chǔ)器段的分立計(jì)數(shù)器25。如圖7所示,單個(gè)計(jì)數(shù)器25可以用于產(chǎn)生合適的存儲(chǔ)器段選擇值25-0、25-1、25-2和25-3,以用于全部輸入和輸出多路復(fù)用器。·不必象圖1所示的那樣配置輸出多路復(fù)用器。在圖9所示的可選實(shí)施例10”中,每個(gè)存儲(chǔ)器段14與輸出多路分解器24’關(guān)聯(lián)。特定存儲(chǔ)器段14的輸出被連接到其對(duì)應(yīng)的輸出多路分解器24’的輸入,輸出多路分解器24’的4個(gè)輸出被連接到相應(yīng)的處理單元12。對(duì)于這種結(jié)構(gòu),每個(gè)多路分解器24’的控制輸入25’被用來選擇特定的一個(gè)處理單元12,以便從連接到這個(gè)多路分解器24’的其他處理單元12中接收數(shù)據(jù)?!ゎ愃频兀槐叵髨D1所示的那樣配置輸入多路復(fù)用器。在圖9所示的可選實(shí)施例10”中,每個(gè)處理單元12與輸入多路分解器20’關(guān)聯(lián)。特定處理單元12的程序計(jì)數(shù)器被連接到其對(duì)應(yīng)輸入多路分解器20’的輸入,輸入多路分解器20’的4個(gè)輸出被連接到相應(yīng)的存儲(chǔ)器段14。對(duì)于這種結(jié)構(gòu),每個(gè)輸入多路分解器20’的控制輸入25’被用來選擇特定的一個(gè)存儲(chǔ)器段14,以便從連接到輸入多路分解器20’的其他存儲(chǔ)器段中接收指令請(qǐng)求。因此,將要按以下權(quán)利要求限定的實(shí)質(zhì)內(nèi)容來界定本發(fā)明的范圍。
權(quán)利要求
1.一種設(shè)備,包括多個(gè)處理單元;存儲(chǔ)器結(jié)構(gòu),包括若干可同時(shí)訪問的存儲(chǔ)器段,存儲(chǔ)器段的數(shù)量至少等于處理單元的數(shù)量,存儲(chǔ)器結(jié)構(gòu)能夠保存包括多個(gè)順序的部件的軟件,這些部件分配在存儲(chǔ)器段之間,使得順序的部件在順序的存儲(chǔ)器段中;和存儲(chǔ)器段訪問控制,連接在處理單元與存儲(chǔ)器結(jié)構(gòu)之間,存儲(chǔ)器段訪問控制被構(gòu)造成允許各個(gè)處理單元在多個(gè)相繼存儲(chǔ)器訪問周期中的每個(gè)周期上,從存儲(chǔ)器段中的一個(gè)不同存儲(chǔ)器段檢索軟件的部件中的一個(gè)部件,存儲(chǔ)器段訪問控制允許至少一個(gè)處理單元在順序存儲(chǔ)器訪問周期上,從順序的存儲(chǔ)器段檢索軟件的部件中的順序部件。
2.按權(quán)利要求1的設(shè)備,其中存儲(chǔ)器段訪問控制被構(gòu)造成允許多個(gè)處理單元中的每個(gè)處理單元在相繼存儲(chǔ)器訪問周期,從相繼存儲(chǔ)器段檢索軟件的部件中的相繼部件。
3.按權(quán)利要求2的設(shè)備,包括與各個(gè)處理單元關(guān)聯(lián)的程序計(jì)數(shù)器,其中存儲(chǔ)器段訪問控制包括多個(gè)輸入多路復(fù)用器,多個(gè)多路復(fù)用器中的一個(gè)與每個(gè)存儲(chǔ)器段關(guān)聯(lián),多個(gè)輸入多路復(fù)用器中的每個(gè)均具有進(jìn)行連接以接收來自每個(gè)程序計(jì)數(shù)器的值的多個(gè)輸入,和進(jìn)行連接以將來自一個(gè)程序計(jì)數(shù)器的值提供給關(guān)聯(lián)的存儲(chǔ)器段的輸出。
4.按權(quán)利要求3的設(shè)備,其中每個(gè)輸入多路復(fù)用器包括控制輸入,并且存儲(chǔ)器段訪問控制被構(gòu)造成在各個(gè)存儲(chǔ)器訪問周期向各個(gè)輸入多路復(fù)用器控制輸入提供存儲(chǔ)器段選擇值,每個(gè)控制輸入上的存儲(chǔ)器段選擇值對(duì)應(yīng)于一個(gè)不同的處理單元,每個(gè)輸入多路復(fù)用器控制輸入上的存儲(chǔ)器段選擇值在每個(gè)存儲(chǔ)器訪問周期內(nèi)發(fā)生變化,并且循環(huán)遍歷對(duì)應(yīng)于全部處理單元的值。
5.按權(quán)利要求4的設(shè)備,包括2m個(gè)處理單元,m是整數(shù),其中存儲(chǔ)器段訪問控制包括m-位計(jì)數(shù)器,并且一個(gè)輸入多路復(fù)用器控制輸入上的存儲(chǔ)器段選擇值包括m-位計(jì)數(shù)器的輸出。
6.按權(quán)利要求5的設(shè)備,其中存儲(chǔ)器訪問控制包括多個(gè)輸出多路復(fù)用器,每個(gè)輸出多路復(fù)用器具有連接到一個(gè)處理單元的指令總線的輸出,和多個(gè)輸入,每個(gè)輸入進(jìn)行連接以從一個(gè)存儲(chǔ)器段接收軟件的部件。
7.按權(quán)利要求6的設(shè)備,其中輸出多路復(fù)用器均包括控制輸入,所述控制輸入進(jìn)行連接以接收對(duì)應(yīng)一個(gè)輸入多路復(fù)用器的存儲(chǔ)器段選擇值。
8.按權(quán)利要求7的設(shè)備,其中每個(gè)處理單元的指令總線具有的寬度等于軟件的每個(gè)部件的尺寸。
9.按權(quán)利要求8的設(shè)備,其中由單個(gè)指令組成軟件的每個(gè)部件。
10.按權(quán)利要求8的設(shè)備,其中指令總線具有的寬度是8位、16位和32位之一。
11.按權(quán)利要求2的設(shè)備,包括2m個(gè)存儲(chǔ)器段,m是整數(shù),其中存儲(chǔ)器段訪問控制包括m-位計(jì)數(shù)器,并且連接m-位計(jì)數(shù)器的輸出,以使至少一個(gè)處理單元在順序的存儲(chǔ)器訪問周期從順序的存儲(chǔ)器段檢索軟件的部件中的順序部件。
12.按權(quán)利要求11的設(shè)備,其中m的范圍是2到4。
13.按權(quán)利要求1的設(shè)備,其中存儲(chǔ)器段訪問控制包括多個(gè)輸出多路復(fù)用器,每個(gè)輸出多路復(fù)用器具有連接到一個(gè)處理單元的指令總線的輸出,和多個(gè)輸入,每個(gè)輸入進(jìn)行連接以便從一個(gè)存儲(chǔ)器段接收軟件的部件。
14.按權(quán)利要求13的設(shè)備,其中存儲(chǔ)器段訪問控制被構(gòu)造成在每個(gè)存儲(chǔ)器訪問周期向每個(gè)輸出多路復(fù)用器控制輸入輸入提供存儲(chǔ)器段選擇值,每個(gè)輸出多路復(fù)用器控制輸入上的存儲(chǔ)器段選擇值對(duì)應(yīng)于一個(gè)不同的處理單元,每個(gè)輸出多路復(fù)用器控制輸入上的存儲(chǔ)器段選擇值在每個(gè)存儲(chǔ)器訪問周期內(nèi)發(fā)生變化,并且循環(huán)遍歷對(duì)應(yīng)于全部處理單元的值。
15.按權(quán)利要求14的設(shè)備,其中每個(gè)處理單元的指令總線具有的寬度等于軟件的每個(gè)部件的尺寸。
16.按權(quán)利要求15的設(shè)備,其中軟件的每個(gè)部件由單個(gè)指令組成。
17.按權(quán)利要求14的設(shè)備,其中,指令總線具有的寬度是8位、16位和32位之一。
18.按權(quán)利要求1的設(shè)備,其中每個(gè)存儲(chǔ)器段包括第一區(qū)域和第二區(qū)域,軟件包括第一部分,該部分包括在第一區(qū)域內(nèi)的第一組部件;和第二部分,該部分包括在第二區(qū)域內(nèi)的第二組部件,其中每個(gè)存儲(chǔ)器段的第一區(qū)域包含軟件的第一部分的所有部件,而軟件的第二部分的部件分配在存儲(chǔ)器段的第二區(qū)域之間。
19.按權(quán)利要求18設(shè)備,其中第一區(qū)域和第二區(qū)域之間的邊界在可配置的位置處。
20.按權(quán)利要求1的設(shè)備,其中存儲(chǔ)器段訪問控制包括仲裁器,仲裁器被構(gòu)造成交換與一或多對(duì)處理單元關(guān)聯(lián)的存儲(chǔ)器段,以減少存儲(chǔ)器訪問周期之后會(huì)停止工作的處理單元的數(shù)量。
21.將權(quán)利要求1在單個(gè)集成電路中實(shí)施所得到的設(shè)備。
22.按權(quán)利要求21的設(shè)備,其中單個(gè)集成電路包括多個(gè)組,每個(gè)組包括多個(gè)處理單元,相關(guān)聯(lián)的存儲(chǔ)器結(jié)構(gòu)和相關(guān)聯(lián)的存儲(chǔ)器段訪問控制。
23.按權(quán)利要求22的設(shè)備,包括存儲(chǔ)器寫電路,該電路被構(gòu)造成接收要存儲(chǔ)在存儲(chǔ)器結(jié)構(gòu)中的軟件,并且并行地將接收到的軟件寫入全部組的存儲(chǔ)器結(jié)構(gòu)。
24.按權(quán)利要求5的設(shè)備,其中存儲(chǔ)器段訪問控制包括多個(gè)輸出多路復(fù)用器,每個(gè)輸出多路復(fù)用器具有進(jìn)行連接以便從一個(gè)存儲(chǔ)器段接收軟件的一個(gè)部件的輸入,和多個(gè)輸出,多個(gè)輸出中的每個(gè)輸出被連接到一個(gè)處理單元的指令總線。
25.按權(quán)利要求1的設(shè)備,其中存儲(chǔ)器段訪問控制包括多個(gè)輸出多路復(fù)用器,每個(gè)輸出多路復(fù)用器具有進(jìn)行連接以便從關(guān)聯(lián)的一個(gè)存儲(chǔ)器段接收軟件的一個(gè)部件的輸入,和多個(gè)輸出,多個(gè)輸出中的每個(gè)輸出被連接到一個(gè)處理單元的指令總線。
26.為多個(gè)處理單元提供對(duì)共享指令存儲(chǔ)器的訪問的方法,所述共享指令存儲(chǔ)器包含要由處理單元執(zhí)行的軟件,該方法包括以下步驟將軟件分配在多個(gè)可同時(shí)訪問的存儲(chǔ)器段中,使得順序的部件在順序的存儲(chǔ)器段中;在多個(gè)存儲(chǔ)器訪問周期的每個(gè)周期中,對(duì)于每個(gè)處理單元,從一個(gè)不同的存儲(chǔ)器段檢索軟件的部件;在順序的存儲(chǔ)器訪問周期中,對(duì)于至少一個(gè)處理單元,從存儲(chǔ)器段的順序存儲(chǔ)器段中檢索軟件的順序部件。
27.按權(quán)利要求26的方法,包括在順序的存儲(chǔ)器訪問周期中,對(duì)于全部的處理單元,從順序的存儲(chǔ)器段中檢索軟件的順序部件。
28.按權(quán)利要求26的方法,包括交換與一或多對(duì)處理單元關(guān)聯(lián)的存儲(chǔ)器段,以減少存儲(chǔ)器訪問周期之后會(huì)停止工作的處理單元的數(shù)量。
29.按權(quán)利要求26的方法,其中每個(gè)部件由單個(gè)指令組成。
30.按權(quán)利要求26的方法,其中指令的長度是8位、16位和32位之一。
31.為多個(gè)處理單元提供對(duì)共享指令存儲(chǔ)器的訪問的方法,所述共享指令存儲(chǔ)器包含要由處理單元執(zhí)行的軟件,該方法包括以下步驟提供軟件,所述軟件被分配在多個(gè)可同時(shí)訪問的存儲(chǔ)器段中,使得順序的軟件部件在順序的存儲(chǔ)器段中;在順序的存儲(chǔ)器周期中,將每個(gè)處理單元與一個(gè)存儲(chǔ)器段相關(guān)聯(lián),并且允許每個(gè)處理器從關(guān)聯(lián)的存儲(chǔ)器段檢索軟件的部件;在處理單元與存儲(chǔ)器段之間循環(huán)這種關(guān)聯(lián),使得在相繼的存儲(chǔ)器訪問周期中,每個(gè)處理單元可以從相繼的存儲(chǔ)器段訪問軟件的相繼部件。
32.按權(quán)利要求31的方法,包括交換與一或多對(duì)處理單元關(guān)聯(lián)的存儲(chǔ)器段,以減少存儲(chǔ)器訪問周期之后會(huì)停止工作的處理單元的數(shù)量。
全文摘要
由多個(gè)處理單元共享的指令存儲(chǔ)器具有多個(gè)可分別訪問的段。指令存儲(chǔ)器中的軟件程序分配在多個(gè)存儲(chǔ)器段中,軟件程序的順序部件在順序段中。軟件程序可以具有在每個(gè)存儲(chǔ)器段中重復(fù)的公用部件。仲裁器可以在每個(gè)存儲(chǔ)器訪問周期中控制哪個(gè)處理單元訪問哪個(gè)存儲(chǔ)器段。
文檔編號(hào)G06F9/38GK1484169SQ03127490
公開日2004年3月24日 申請(qǐng)日期2003年6月18日 優(yōu)先權(quán)日2002年6月19日
發(fā)明者查德·肯代爾, 普利德拉格·克斯蒂克, 羅伯特·E.·羅伯塔姆, E. 羅伯塔姆, 拉格 克斯蒂克, 查德 肯代爾 申請(qǐng)人:阿爾卡塔爾加拿大公司