專(zhuān)利名稱(chēng):具有動(dòng)態(tài)通信服務(wù)選擇的集成電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包括多個(gè)模塊的集成電路和用于在這樣的集成電路中進(jìn)行動(dòng)態(tài)通信服務(wù)選擇的方法。
背景技術(shù):
隨著當(dāng)前計(jì)算和通信資源的發(fā)展,在移動(dòng)終端的結(jié)構(gòu)中已經(jīng)產(chǎn)生了兩種主要趨勢(shì)。第一種趨勢(shì)是應(yīng)用會(huì)聚和增加的多樣性,例如,越來(lái)越多的不同功能或子系統(tǒng)被集成在能夠使終端執(zhí)行新的服務(wù)和應(yīng)用的單個(gè)終端中。第二種趨勢(shì)是指體系結(jié)構(gòu)復(fù)雜度的加劇,例如,硬件和軟件體系結(jié)構(gòu)的整體復(fù)雜度超過(guò)了基于由總線連接的內(nèi)核的傳統(tǒng)體系結(jié)構(gòu)形式的限制。
滿(mǎn)足上述趨勢(shì)的一種可能的解決方案看起來(lái)是模塊化。當(dāng)模塊的邊界被選擇為與類(lèi)似于GSM調(diào)制解調(diào)器、顯示器或音頻這樣的功能子系統(tǒng)相符時(shí),可以得到兩級(jí)的硬件和軟件體系結(jié)構(gòu)。第一種是子系統(tǒng)內(nèi)體系結(jié)構(gòu),其中可以應(yīng)用基于由總線連接的內(nèi)核的傳統(tǒng)體系結(jié)構(gòu)形式,由此可以重用現(xiàn)有的子系統(tǒng)。第二級(jí)體系結(jié)構(gòu)是子系統(tǒng)間體系結(jié)構(gòu),其中應(yīng)用了網(wǎng)絡(luò)體系結(jié)構(gòu),具有在類(lèi)似于OSI分層網(wǎng)絡(luò)體系結(jié)構(gòu)上執(zhí)行的子系統(tǒng)間通信。利用這些兩級(jí)體系結(jié)構(gòu),能夠如本領(lǐng)域中已知的那樣實(shí)現(xiàn)功能子系統(tǒng)的發(fā)展,因此可以重用知識(shí)產(chǎn)權(quán)(IP)塊。
典型地,大多數(shù)的移動(dòng)終端在少數(shù)外圍組件的基礎(chǔ)上提供它們的功能,如便攜式音頻播放器(音頻子系統(tǒng)和CD或固態(tài)存儲(chǔ)器)、移動(dòng)電話(GSM調(diào)制解調(diào)器和語(yǔ)音編解碼器)、掌上管理器(觸摸屏+微處理器)或固態(tài)照相機(jī)(照相機(jī)+顯示器+固態(tài)存儲(chǔ)器)。這些各種不同的子系統(tǒng),例如外圍組件,在穩(wěn)定地增加。這些不同的子系統(tǒng)相互獨(dú)立地發(fā)展,并迅速地變得更高級(jí)和更復(fù)雜,使得它們的性能參數(shù),例如比特率、容量、分辨率和質(zhì)量,在穩(wěn)定地提高。實(shí)際的終端包括越來(lái)越多的子系統(tǒng),且由于重點(diǎn)被移向了軟件、應(yīng)用和服務(wù),子系統(tǒng)的內(nèi)部變得不太重要。
當(dāng)基于內(nèi)核和總線的傳統(tǒng)體系結(jié)構(gòu)專(zhuān)注于在有限的計(jì)算資源集合上的計(jì)算、在具有低的等待時(shí)間和緊密總線協(xié)議的緊密耦合的塊的小集合上調(diào)度任務(wù)時(shí),子系統(tǒng)之間的體系結(jié)構(gòu)不再專(zhuān)注于計(jì)算上,而是專(zhuān)注于通信上。由不同子系統(tǒng)共享的資源是通信基礎(chǔ)設(shè)施,且可能是共享的存儲(chǔ)器。這些子系統(tǒng)通常以相對(duì)高的等待時(shí)間和相對(duì)低的同步率而松散地耦合,網(wǎng)絡(luò)協(xié)議也是這樣。
終端通常由通過(guò)網(wǎng)絡(luò)相互連接的多個(gè)子系統(tǒng)組成。類(lèi)似于UMTS調(diào)制解調(diào)器或視頻編解碼器這樣的子系統(tǒng)可以被獨(dú)立地設(shè)計(jì)。它們可以包括一個(gè)或多個(gè)可編程內(nèi)核、一些處理器、本地存儲(chǔ)器和I/O。網(wǎng)絡(luò)被用于連接子系統(tǒng)。所有的子系統(tǒng)間通信,如數(shù)據(jù)、指令、存儲(chǔ)通信量和控制信息,將被通過(guò)網(wǎng)絡(luò)執(zhí)行。
所謂的片上系統(tǒng)SoC典型包括多個(gè)子系統(tǒng),例如具有本地存儲(chǔ)器的功能元件或模塊,其由互連電路連接。該片上系統(tǒng)SoC適于執(zhí)行可以被映射到子系統(tǒng)集合上的不同的應(yīng)用。由子系統(tǒng)執(zhí)行的所有功能需要一定量的存儲(chǔ)器以用于它們的處理的執(zhí)行。存儲(chǔ)器的準(zhǔn)確量將取決于多個(gè)參數(shù),如視頻解碼的屏幕大小、調(diào)制解調(diào)器的數(shù)據(jù)率等等。因此,不同的應(yīng)用會(huì)具有不同的存儲(chǔ)器需求?,F(xiàn)在消費(fèi)電子設(shè)備范圍中的多數(shù)應(yīng)用領(lǐng)域要求系統(tǒng)成本和功耗最小化。為了在上述限制環(huán)境中具有競(jìng)爭(zhēng)性,為特定的應(yīng)用優(yōu)化所需存儲(chǔ)器(片上的或者外部的)的量是很重要的。另一方面,隨著類(lèi)似于移動(dòng)電話、PDA、MP3播放器等這樣的許多消費(fèi)電子市場(chǎng)的上述會(huì)聚的趨勢(shì),著眼于單個(gè)的特定應(yīng)用或僅著眼于應(yīng)用的有限集合不再是可行的。終端的任何實(shí)現(xiàn)都應(yīng)該是低成本和低功率的,其中成本實(shí)質(zhì)上是由材料清單規(guī)定的,也就是芯片面積、芯片量、引腳量和PCB布線層。
另外對(duì)于以上存儲(chǔ)器需求,需要一些不同的通信服務(wù)來(lái)處理片上通信,其中系統(tǒng)中的不同的塊或模塊可以以不同速度和不同粒度產(chǎn)生處理數(shù)據(jù)。一種通信服務(wù)可以是根據(jù)直接連接,同時(shí)僅在模塊的本地存儲(chǔ)器中有一個(gè)小緩沖器,其中兩個(gè)硬件塊或模塊通過(guò)以數(shù)據(jù)交換的低粒度以及高同步率為特征的網(wǎng)絡(luò)在相互之間直接通信。第二種通信服務(wù)可以是根據(jù)基于存儲(chǔ)器的連接,其中為了去耦(decouple)兩個(gè)通信塊或模塊,數(shù)據(jù)被存儲(chǔ)在緩沖器中。基于存儲(chǔ)器的通信以數(shù)據(jù)交換的粗粒度以及較低的同步率為特征,這是因?yàn)楦蟮木彌_器可以被分配在共享的存儲(chǔ)器中。
通常設(shè)計(jì)的已知系統(tǒng)使得在系統(tǒng)設(shè)計(jì)期間已經(jīng)評(píng)估了在模塊之間的所有可能的連接,并且每個(gè)通信都被靜態(tài)地鏈接到某個(gè)通信服務(wù)。典型地,資源受限系統(tǒng)對(duì)資源的使用是非常優(yōu)化的,該通信是已知的和靜態(tài)的,并且此外沒(méi)有動(dòng)態(tài)連接創(chuàng)建。這可能對(duì)于具有已知應(yīng)用的系統(tǒng)是可行的,然而,對(duì)于其最終應(yīng)用還未知的系統(tǒng)或可能在它們生存期期間被改變的系統(tǒng),在塊或模塊之間的通信應(yīng)該更靈活。因此,系統(tǒng)應(yīng)該能提供通信資源的動(dòng)態(tài)分配。盡管有時(shí)在這樣的系統(tǒng)中的連接被動(dòng)態(tài)地產(chǎn)生,僅使用一個(gè)預(yù)定的連接服務(wù)。特別是對(duì)于資源受限的片上系統(tǒng)SoC,也就是低資源的,為了提供低成本和低功率設(shè)備,通信資源的動(dòng)態(tài)分配是很重要的。當(dāng)某個(gè)通信請(qǐng)求總是以同一個(gè)方式(可能最壞的情況)被滿(mǎn)足,而不管其當(dāng)前的參數(shù)時(shí),某些其中所有的資源都被占用的情況會(huì)出現(xiàn)。因此,其它通信請(qǐng)求會(huì)因?yàn)樗械馁Y源被占用而被拒絕。特別對(duì)于便攜式設(shè)備,該便攜式設(shè)備是功率嚴(yán)重受限的,并且其中一些設(shè)備的功能性是會(huì)聚的,且可用資源的有效使用對(duì)于在這個(gè)特定領(lǐng)域中具有競(jìng)爭(zhēng)性是很重要的。因此,通信請(qǐng)求的更靈活的處理和相應(yīng)通信資源的授權(quán)看起來(lái)是有利的。
發(fā)明內(nèi)容
因此本發(fā)明的目的是在具有多個(gè)模塊的片上系統(tǒng)中提供通信服務(wù)的動(dòng)態(tài)選擇。
因此,提供了一種集成電路,包括多個(gè)模塊M1到M5、CPU,其用于處理應(yīng)用;全局存儲(chǔ)器GM,其能夠由所述多個(gè)模塊M1到M5、CPU共享;互連裝置IM,其用于根據(jù)多個(gè)通信服務(wù)C1、C2來(lái)互連所述模塊M1到M5、CPU和所述全局存儲(chǔ)器GM。所述集成電路進(jìn)一步包括至少一個(gè)通信管理單元CMU,其用于管理所述多個(gè)模塊M1到M5之間的通信,其中所述通信管理單元CMU接收在至少兩個(gè)所述模塊M1到M5、CPU之間通信的請(qǐng)求,并動(dòng)態(tài)選擇所述多個(gè)通信服務(wù)C1、C2的一個(gè)作為所述模塊M1到M5、CPU之間所請(qǐng)求的通信的基礎(chǔ)。
因此,該系統(tǒng)能夠動(dòng)態(tài)地對(duì)模塊之間通信中的改變作出反應(yīng)。
根據(jù)本發(fā)明的一個(gè)方面,需要最少互連資源的通信服務(wù)C1、C2被選擇。因此,允許更好的資源使用,并因此在資源受限環(huán)境中可以開(kāi)放更多的通信信道。
根據(jù)本發(fā)明的另一方面,如果所述模塊M1到M5、CPU中的至少兩個(gè)的粒度和數(shù)據(jù)率不匹配,或者如果所述兩個(gè)模塊M1到M5、CPU中的一個(gè)未包含足夠的本地緩沖,那么第一通信服務(wù)C1被選擇以允許在所述兩個(gè)模塊(M1到M5、CPU)之間的基于存儲(chǔ)器的通信,以及如果所述模塊M1到M5、CPU中的兩個(gè)的粒度和數(shù)據(jù)率匹配,且如果所述兩個(gè)模塊M1到M5、CPU中的一個(gè)包含足夠的本地緩沖,那么第二通信服務(wù)被選擇以允許直接通信。因此,如果可能,會(huì)選擇直接通信服務(wù),借此減少所需帶寬、存儲(chǔ)器分配和附加的系統(tǒng)的功率使用。
根據(jù)本發(fā)明的又一方面,每次通信管理單元CMU接收到在所述多個(gè)模塊M1到M5、CPU中的至少兩個(gè)之間建立通信的請(qǐng)求時(shí)執(zhí)行該選擇。因此,允許系統(tǒng)為每個(gè)請(qǐng)求的通信動(dòng)態(tài)分配最佳資源,并因此允許最佳的資源使用。
根據(jù)本發(fā)明的又一方面,為在所述多個(gè)模塊中的所述兩個(gè)之間通信而保留的資源,在已經(jīng)執(zhí)行了所請(qǐng)求的通信之后被釋放。因此,保留的資源被立即釋放,使得它們能夠?yàn)槠渌?qǐng)求的通信再次重用。
本發(fā)明同樣涉及在上述集成電路中選擇通信服務(wù)的方法。通過(guò)接收在所述模塊M1到M5、CPU中的至少兩個(gè)之間通信的請(qǐng)求,和通過(guò)動(dòng)態(tài)選擇所述多個(gè)通信服務(wù)C1、C2中的一個(gè)作為在所述模塊M1到M5、CPU之間的通信的基礎(chǔ),來(lái)管理所述多個(gè)模塊M1到M5之間的通信。
現(xiàn)在將參考附圖詳細(xì)描述本發(fā)明。
附圖簡(jiǎn)述
圖1示出了根據(jù)第一實(shí)施例的片上系統(tǒng)的框圖;圖2示出了根據(jù)第二實(shí)施例的片上系統(tǒng)的框圖;以及圖3示出了根據(jù)第三實(shí)施例的片上系統(tǒng)的框圖。
具體實(shí)施例方式
根據(jù)本發(fā)明的片上系統(tǒng)可以是低資源的,也就是,如移動(dòng)電話或便攜式設(shè)備這樣的低成本和低功率的系統(tǒng)。然而,本發(fā)明的原理同樣可以被應(yīng)用到較少限制的環(huán)境。
圖1示出了根據(jù)本發(fā)明的第一實(shí)施例的片上系統(tǒng)SoC的框圖。該系統(tǒng)包括兩個(gè)模塊M1、M2、中央處理單元CPU、全局存儲(chǔ)器GM和互連裝置IM。第二模塊M2包括存儲(chǔ)緩沖器MB。全局存儲(chǔ)器GM包括全局緩沖器FB,并被用作共享存儲(chǔ)器,CPU或兩個(gè)模塊M1、M2可以在該共享存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)。通信管理單元CMU在軟件基礎(chǔ)上被實(shí)現(xiàn)在中央處理單元CPU上,并被用于管理在CPU和模塊之間的通信以及模塊間通信。
根據(jù)在模塊上運(yùn)行的應(yīng)用,不同的模塊能夠以不同的速度和不同的粒度產(chǎn)生數(shù)據(jù)。模塊間通信能夠以?xún)煞N方式實(shí)現(xiàn),也就是直接塊到塊或模塊到模塊通信或基于存儲(chǔ)器的通信。直接塊到塊通信主要地用于小令牌的交換。這個(gè)通信具有相當(dāng)高的同步率,但卻僅使用小緩沖器,其中該緩沖器對(duì)于一個(gè)塊是本地的?;诖鎯?chǔ)器的通信主要用于大令牌,其具有更低的同步率,但是更大的緩沖器,其中該緩沖器位于主存儲(chǔ)器中,也就是共享存儲(chǔ)器GM中。僅使用直接塊到塊的通信會(huì)導(dǎo)致不靈活的系統(tǒng),這是由于某些特定的連接僅能夠使用基于存儲(chǔ)器的服務(wù)而被建立。然而,如果僅執(zhí)行基于存儲(chǔ)器的通信,這將導(dǎo)致共享存儲(chǔ)器和較低通信要求情況所需功率的過(guò)度使用,由此也阻止或阻塞了其它通信請(qǐng)求的處理。
通過(guò)實(shí)現(xiàn)通信管理單元CMU,片上系統(tǒng)可以根據(jù)請(qǐng)求的通信的實(shí)際粒度和數(shù)據(jù)率動(dòng)態(tài)分配直接塊到塊或者基于存儲(chǔ)器的通信。因此,對(duì)于將實(shí)現(xiàn)什么通信模式或通信服務(wù)的決定,是基于對(duì)請(qǐng)求的通信的實(shí)際參數(shù)的分析的。根據(jù)第一實(shí)施例,在第一和第二模塊M1、M2之間的通信的管理由在CPU上實(shí)現(xiàn)的通信管理單元CMU執(zhí)行。在兩個(gè)模塊M1、M2之間的通信可以通過(guò)連接C1或通過(guò)連接C2執(zhí)行。連接C1被實(shí)現(xiàn)為基于存儲(chǔ)器的通信,也就是,模塊M1寫(xiě)數(shù)據(jù)到全局緩沖器FB中,而模塊M2從全局緩沖器FB中讀取這些數(shù)據(jù)。連接C2被實(shí)現(xiàn)為從模塊M1到模塊M2的直接連接,其中數(shù)據(jù)可以直接被寫(xiě)到存儲(chǔ)緩沖器MB中。根據(jù)第一實(shí)施例,對(duì)于使用哪條連接(C1或C2)的決定是通過(guò)被實(shí)現(xiàn)為運(yùn)行在CPU上的軟件任務(wù)的通信管理單元CMU而執(zhí)行的。因此,在系統(tǒng)中的中央位置上執(zhí)行該決定處理。
在處理系統(tǒng)上的應(yīng)用期間,可以從CPU發(fā)布請(qǐng)求到通信管理單元CMU,以在模塊M1和模塊M2之間建立通信或連接。作為選擇,也可以從模塊M1、M2中的一個(gè)發(fā)送這個(gè)請(qǐng)求。通信管理單元CMU從應(yīng)用或發(fā)送模塊中檢索請(qǐng)求的通信的參數(shù)。這些參數(shù)可以是所需通信的粒度或帶寬。
如果通信的參數(shù)相互對(duì)應(yīng),且一個(gè)模塊,也就是接收模塊,具有足夠的本地緩沖,也就是模塊緩沖器MB,那么直接模塊到模塊通信被用來(lái)建立連接C2。然而,如果參數(shù)不匹配,那么基于存儲(chǔ)器的連接C1被選擇。對(duì)于要使用上述通信模式中的哪一個(gè)的決定,優(yōu)選地在每次建立連接的請(qǐng)求被通信管理單元CMU接收時(shí)被執(zhí)行。因此,系統(tǒng)可以為通信請(qǐng)求動(dòng)態(tài)分配最佳的資源。在成功地執(zhí)行模塊之間或在CPU和一個(gè)模塊之間的通信后,像全局存儲(chǔ)器GM中的全局緩沖器FB這樣的已經(jīng)為這個(gè)通信而保留的資源被釋放,使得這些資源可以被用于其它連接。因此,可以最佳地使用系統(tǒng)存儲(chǔ)器和系統(tǒng)的帶寬,使得存儲(chǔ)器的全部使用的資源分配減少,同樣與靜態(tài)的情況相比,該通信模式所需的帶寬,允許同時(shí)打開(kāi)更多通信信道。另外,由于占用更少的資源,因此降低了系統(tǒng)的功耗。
在兩個(gè)模塊之間的直接通信與基于存儲(chǔ)器的服務(wù)相比,具有較少的延遲或等待時(shí)間,由此可以增加系統(tǒng)的性能。然而,在能夠建立通信之前發(fā)生的決定處理向該通信中引入了初始延遲,并同樣需要實(shí)現(xiàn)通信管理單元所需的控制開(kāi)銷(xiāo)。在另一方面,不需要實(shí)時(shí)建立連接,此外偶爾執(zhí)行這些連接的建立,使得某些延遲是可以接受的。
圖2示出了根據(jù)本發(fā)明的第二實(shí)施例的片上系統(tǒng)的框圖。該片上系統(tǒng)包括兩個(gè)模塊M3、M4,以及互連裝置IM和全局存儲(chǔ)器GM。全局存儲(chǔ)器GM包括全局緩沖器FB。模塊M3包括通信管理單元CMU,其被實(shí)現(xiàn)為所述模塊M3上的軟件任務(wù)。模塊M4包括模塊緩沖器MB,并且一個(gè)被實(shí)現(xiàn)為硬件塊的通信管理單元CMU與模塊M4相關(guān)。通信管理單元CMU或兩個(gè)模塊M3、M4被用于管理模塊的通信。能夠通過(guò)連接C1或者通過(guò)連接C2執(zhí)行兩個(gè)模塊M3、M4之間的通信,其中連接C1也就是基于存儲(chǔ)器的通信,連接C2也就是直接通信。
根據(jù)第二實(shí)施例,沒(méi)有在第一實(shí)施例中的中央通信管理單元。模塊的通信管理被分布到每個(gè)模塊上并被對(duì)每個(gè)模塊而執(zhí)行??梢栽诎l(fā)起通信的模塊上或者在接收通信的模塊上執(zhí)行通信管理,其中該接收通信的模塊也就是從模塊。作為選擇,可以在發(fā)起以及接收模塊上執(zhí)行通信管理。在這樣的情況中,要為每個(gè)模塊實(shí)現(xiàn)決定機(jī)制。通信管理可以被實(shí)現(xiàn)為軟件任務(wù)(模塊M3)或硬件元件,其中硬件元件被安排成模塊和互連裝置IM之間的命令解釋器(shell)。
如第一實(shí)施例中所述的那樣來(lái)執(zhí)行實(shí)際的決定機(jī)制。首先,接收在兩個(gè)模塊之間建立通信的請(qǐng)求。可以從一個(gè)塊或從在片上系統(tǒng)上原始地執(zhí)行的應(yīng)用發(fā)送這個(gè)請(qǐng)求。優(yōu)選地與發(fā)起模塊(作為選擇這也可以是接收模塊)相關(guān)的通信管理單元CMU,要檢查這個(gè)通信所需的參數(shù)。如上所述,這可以是粒度或帶寬。如果發(fā)送和接收模塊的通信參數(shù)匹配,且如果接收模塊在其模塊緩沖器MB中有足夠的本地緩沖,那么選擇直接模塊到模塊通信,且在模塊之間建立對(duì)應(yīng)的連接,也就是連接C2。然而,如果模塊的通信參數(shù)不匹配,或者如果在模塊緩沖器MB中沒(méi)有足夠的本地緩沖,那么選擇基于存儲(chǔ)器的通信且使用連接C1。
根據(jù)可選擇的實(shí)施例,可以提供在第一和第二實(shí)施例的組合的基礎(chǔ)上的片上系統(tǒng)SoC。因此,可以中央地或非中央地執(zhí)行對(duì)通信服務(wù)的選擇。
圖3示出了根據(jù)本發(fā)明第三實(shí)施例的片上系統(tǒng)。第三實(shí)施例是在第一實(shí)施例的基礎(chǔ)上的。該系統(tǒng)包括模塊M5、命令解釋器S、互連裝置IM、全局存儲(chǔ)器GM和資源管理單元RMU。模塊M5通過(guò)命令解釋器S和互連裝置IM而連接到全局存儲(chǔ)器GM。模塊M5包括處理器PROC、指令高速緩存器I,數(shù)據(jù)高速緩存器D和本地存儲(chǔ)器LM。處理器PROC和本地存儲(chǔ)器LM通過(guò)總線B而相互連接。本地存儲(chǔ)器LM包括預(yù)取緩沖器PB。本地存儲(chǔ)器LM被用作專(zhuān)用于模塊M的私有存儲(chǔ)器。本地存儲(chǔ)器LM被定尺寸為小存儲(chǔ)器,其足夠以低存儲(chǔ)器需求來(lái)運(yùn)行應(yīng)用。這個(gè)存儲(chǔ)空間的量可以取決于在模塊M5上執(zhí)行的應(yīng)用。
另外,如圖1所示,該系統(tǒng)還包括中央處理單元CPU和兩個(gè)模塊M1、M2。第二模塊M2包括存儲(chǔ)緩沖器MB。全局存儲(chǔ)器GM包括全局緩沖器FB,并被用作共享存儲(chǔ)器,CPU或兩個(gè)模塊M1、M2可以在該共享存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)。通信管理單元CMU在軟件的基礎(chǔ)上在中央處理單元CPU上被實(shí)現(xiàn),并被用來(lái)管理在CPU和模塊之間的通信以及模塊間通信。根據(jù)第一實(shí)施例執(zhí)行對(duì)通信服務(wù)的選擇。
模塊M5可以是任意的子系統(tǒng),且可以還包括其它功能塊,執(zhí)行專(zhuān)用的應(yīng)用或一些不同的應(yīng)用。命令解釋器S配備在模塊M5和互連電路IM之間,并被用于管理在模塊和互連電路之間的通信。命令解釋器S的思想是對(duì)模塊隱藏互連電路的特性。因此,由于命令解釋器S被用作接口,已經(jīng)存在的模塊可以被使用而不必重新設(shè)計(jì)它們的通信?;ミB電路IM優(yōu)選地是在芯片上的網(wǎng)絡(luò),但同樣可以是基于總線的電路。
命令解釋器S包括存儲(chǔ)管理單元MMU和尋址轉(zhuǎn)換單元ATU。存儲(chǔ)管理單元MMU監(jiān)測(cè)本地存儲(chǔ)器LM中的空閑存儲(chǔ)空間,并且一旦本地存儲(chǔ)器LM中的可用存儲(chǔ)空間比預(yù)定最小值小時(shí)就請(qǐng)求分配全局存儲(chǔ)器GM中的全局緩沖器FB。在這背后的思想是對(duì)于在本地存儲(chǔ)器LM中沒(méi)有足夠空間的運(yùn)行在模塊M上的應(yīng)用,則外包處理數(shù)據(jù)。地址轉(zhuǎn)換單元ATU接著用來(lái)將由運(yùn)行在模塊M上的應(yīng)用使用的地址轉(zhuǎn)換成相應(yīng)于全局存儲(chǔ)器GM的全局地址映射的地址。
如上所述,存儲(chǔ)管理單元MMU發(fā)送一個(gè)請(qǐng)求,來(lái)請(qǐng)求全局存儲(chǔ)器GM中的緩沖器,該緩沖器應(yīng)當(dāng)被保留專(zhuān)用于來(lái)自該模塊的處理數(shù)據(jù)。該請(qǐng)求被從存儲(chǔ)管理單元MMU發(fā)送到資源管理單元RMU。資源管理單元RMU用來(lái)管理系統(tǒng)中的全部資源。另外,存儲(chǔ)管理單元MMU請(qǐng)求提供通過(guò)互連電路IM在模塊M和全局存儲(chǔ)器GM之間的保證的數(shù)據(jù)路徑。資源管理單元RMU接收到這些請(qǐng)求,并確定在全局存儲(chǔ)器GM中是否有足夠的可用空間來(lái)保留所請(qǐng)求大小的緩沖器,以及是否互連電路IM可以提供在模塊M5和全局存儲(chǔ)器GM之間的請(qǐng)求的通信路徑的足夠帶寬。如果資源管理單元RMU已確定在全局存儲(chǔ)器GM中有足夠的可用空間并且對(duì)于通信路徑有足夠的可用通信資源,那么資源管理單元RMU向存儲(chǔ)管理單元MMU發(fā)送一個(gè)響應(yīng)。資源管理單元RMU將全局存儲(chǔ)器GM中全局緩沖器FB的可用空間及其地址包括到該響應(yīng)中。一旦存儲(chǔ)管理單元MMU已經(jīng)從資源管理單元RMU接收到這個(gè)肯定的響應(yīng),它可以激活地址轉(zhuǎn)換單元ATU。地址轉(zhuǎn)換單元ATU被用來(lái)對(duì)于運(yùn)行在模塊M上的應(yīng)用隱藏處理數(shù)據(jù)的外包。為了完成這種隱藏,不能再存儲(chǔ)在本地存儲(chǔ)器LM中的處理數(shù)據(jù)的地址被提供了偏移量。那些不能存儲(chǔ)在本地存儲(chǔ)器LM中的處理數(shù)據(jù)的地址偏移量,是根據(jù)由資源管理單元RMU返回的全局存儲(chǔ)器GM中的全局緩沖器FB的地址計(jì)算的。
為了獲得這個(gè)系統(tǒng)性能的另外的提高,存儲(chǔ)在全局緩沖器FB中的數(shù)據(jù)可以在其由運(yùn)行在模塊M上的應(yīng)用使用之前被預(yù)取并被存儲(chǔ)在本地存儲(chǔ)器LM中的預(yù)取緩沖器PB中。通過(guò)預(yù)取該數(shù)據(jù),對(duì)于該應(yīng)用隱藏了全局存儲(chǔ)器GM中的全局緩沖器FB的較長(zhǎng)的路徑,且可以同樣對(duì)該應(yīng)用隱藏由外包處理數(shù)據(jù)引入的等待時(shí)間。
對(duì)于全局存儲(chǔ)器GM中的全局緩沖器FB的分配可以在某個(gè)應(yīng)用的運(yùn)行時(shí)被執(zhí)行,或也可以在預(yù)定的時(shí)間周期后被執(zhí)行,或可選擇地,可以如上所述在某個(gè)事件的基礎(chǔ)上被執(zhí)行。
如果片上以及片外全局存儲(chǔ)器在系統(tǒng)中出現(xiàn),那么將進(jìn)行對(duì)于全局存儲(chǔ)器中的緩沖器的分配,例如為了使成本、功率和帶寬資源最優(yōu)化。
根據(jù)本發(fā)明的動(dòng)態(tài)存儲(chǔ)器分配的缺點(diǎn)是,通過(guò)引入地址轉(zhuǎn)換單元ATU,另外的復(fù)雜度被增加到模塊M的接口或命令解釋器中。此外,為了跟蹤可用的通信資源,資源管理單元RMU需要被結(jié)合到片上系統(tǒng)中。數(shù)據(jù)的輸出或外包會(huì)引入另外的等待時(shí)間。此外,資源管理單元RMU需要在全局存儲(chǔ)器上執(zhí)行訪問(wèn)判優(yōu),使得所需的通信路徑可以被保證。
根據(jù)本發(fā)明的又一實(shí)施例,第三實(shí)施例的動(dòng)態(tài)存儲(chǔ)器分配同樣可以被應(yīng)用在根據(jù)第二實(shí)施例的片上系統(tǒng)SoC中,或可選擇地被應(yīng)用于在第一和第二實(shí)施例的組合的基礎(chǔ)上的片上系統(tǒng)SoC中。
根據(jù)本發(fā)明的實(shí)施例的通信管理單元CMU同樣也可以連同存儲(chǔ)管理單元MMU和地址轉(zhuǎn)換單元ATU一起被實(shí)現(xiàn)在根據(jù)第三實(shí)施例的命令解釋器S中。
模塊之間的通信的參數(shù),模塊的參數(shù)或運(yùn)行在模塊上的應(yīng)用的參數(shù)可以由資源管理單元RMU存儲(chǔ)并管理。因此,作為選擇,向CMU查詢(xún)通信參數(shù)可以通過(guò)向RMU發(fā)布對(duì)這些參數(shù)的請(qǐng)求來(lái)執(zhí)行。
模塊之間的通信同樣可以在多于兩個(gè)模塊之間執(zhí)行,例如,通過(guò)多播,也就是一個(gè)發(fā)送模塊和幾個(gè)接收模塊。
在以上實(shí)施例中所述的通信管理單元CMU同樣能夠與模塊(M1到M5)通信。這些模塊例如可以發(fā)送請(qǐng)求,且CPU發(fā)送授權(quán)或程序緩沖器大小。這同樣可以發(fā)生在實(shí)際數(shù)據(jù)交換期間,這是由于模塊必須在它們之間通信來(lái)同步,例如通知另一個(gè)模塊緩沖器已經(jīng)滿(mǎn)了,并可以由該另一個(gè)模塊清空。這個(gè)通信在數(shù)據(jù)通信的相反方向中執(zhí)行,并可以被實(shí)現(xiàn)為控制通信。基本上,這樣的控制通信量,如發(fā)送請(qǐng)求、對(duì)模塊(M1到M5)編程或它們之間的同步可以直接完成,而不需要進(jìn)入全局存儲(chǔ)器中。對(duì)于該通信量,有時(shí)同樣可以使用單獨(dú)的通信介質(zhì)(總線)。
另外,互連IM可以被實(shí)現(xiàn)為網(wǎng)絡(luò),其中可以動(dòng)態(tài)指定基于例如等待時(shí)間的通過(guò)該網(wǎng)絡(luò)的路徑。這樣的互連裝置IM同樣能夠例如提供不同參數(shù)的通信信道,其中所述參數(shù)例如帶寬、延遲、去耦(通過(guò)全局存儲(chǔ)器中的緩沖器)??梢詣?dòng)態(tài)選擇適合具有某種參數(shù)的某種類(lèi)型的通信的信道(具有合適的參數(shù)的信道)。
應(yīng)該注意的是,上述實(shí)施例描述并不限制本發(fā)明,本領(lǐng)域的那些技術(shù)人員能夠設(shè)計(jì)許多可選擇的實(shí)施例,而不脫離所附的權(quán)利要求的范圍。在權(quán)利要求中,括號(hào)之間的參考標(biāo)記不應(yīng)被解釋為限制權(quán)利要求。詞語(yǔ)“包括”不排除存在除了在權(quán)利要求中所列出的那些元件或者步驟以外的元件或者步驟。在元件前面的詞語(yǔ)“一個(gè)”不排除存在多個(gè)這樣的元件。在列舉若干裝置的設(shè)備權(quán)利要求中,這些裝置中的若干個(gè)可以由同一個(gè)硬件具體化。在相互不同的從屬權(quán)利要求中引用某些手段的事實(shí)并不表示這些手段的組合不具有優(yōu)勢(shì)。
此外,權(quán)利要求中的任何參考標(biāo)記不應(yīng)被理解為限制權(quán)利要求的范圍。
權(quán)利要求
1.一種集成電路,包括用于處理應(yīng)用的多個(gè)模塊(M1到M5、CPU),該集成電路包括全局存儲(chǔ)器(GM),其能夠由所述多個(gè)模塊(M1到M5、CPU)共享;互連裝置(IM),其用于根據(jù)多個(gè)通信服務(wù)(C1、C2)來(lái)互連所述模塊(M1到M5、CPU)和所述全局存儲(chǔ)器(GM);以及至少一個(gè)通信管理單元(CMU),其用于管理所述多個(gè)模塊(M1到M5)之間的通信,其中所述通信管理單元(CMU)接收在所述模塊(M1到M5、CPU)中的至少兩個(gè)之間通信的請(qǐng)求,并動(dòng)態(tài)選擇所述多個(gè)通信服務(wù)(C1、C2)中的一個(gè)作為所述模塊(M1到M5、CPU)之間所請(qǐng)求的通信的基礎(chǔ)。
2.根據(jù)權(quán)利要求1的集成電路,其中需要最少互連資源的通信服務(wù)(C1、C2)被選擇。
3.根據(jù)權(quán)利要求1或2的集成電路,其中如果所述模塊(M1到M5、CPU)中的至少兩個(gè)的粒度和數(shù)據(jù)率不匹配,或者如果所述兩個(gè)模塊(M1-M5、CPU)中的一個(gè)未包含足夠的本地緩沖,那么選擇第二通信服務(wù)(C1)以允許在所述兩個(gè)模塊(M1到M5、CPU)之間的基于存儲(chǔ)器的通信。
4.根據(jù)權(quán)利要求1或2的集成電路,其中如果所述模塊(M1-M5、CPU)中的兩個(gè)的粒度和數(shù)據(jù)率匹配,且如果所述兩個(gè)模塊(M1-M5、CPU)中的一個(gè)包含足夠的本地緩沖,那么選擇第二通信服務(wù)(C2)以允許在所述兩個(gè)模塊(M1-M5、CPU)之間的直接通信。
5.根據(jù)權(quán)利要求3或4的集成電路,其中每次通信管理單元(CMU)接收到在所述多個(gè)模塊(M1到M5、CPU)中的至少兩個(gè)之間建立通信的請(qǐng)求時(shí),執(zhí)行所述選擇。
6.根據(jù)權(quán)利要求1或5的集成電路,其中為在所述多個(gè)模塊中的所述兩個(gè)之間的通信而保留的資源,在已經(jīng)執(zhí)行了所請(qǐng)求的通信之后被釋放。
7.根據(jù)權(quán)利要求1的集成電路,其中運(yùn)行在所述模塊上的所述應(yīng)用是資源受限的。
8.一種在集成電路中選擇通信服務(wù)的方法,該集成電路包括用于處理應(yīng)用的多個(gè)模塊(M1到M5、CPU)和適于在所述多個(gè)模塊(M1到M5、CPU)之間共享的全局存儲(chǔ)器(GM),該方法包括以下步驟通過(guò)接收在所述模塊(M1到M5、CPU)中的至少兩個(gè)之間通信的請(qǐng)求,和通過(guò)動(dòng)態(tài)選擇所述多個(gè)通信服務(wù)(C1、C2)中的一個(gè)作為所述模塊(M1到M5、CPU)之間的通信的基礎(chǔ),來(lái)管理所述多個(gè)模塊(M1到M5)之間的通信。
全文摘要
提供了一種集成電路,包括多個(gè)模塊(M1到M5、CPU),用于處理應(yīng)用;全局存儲(chǔ)器(GM),能夠由所述多個(gè)模塊(M1到M5、CPU)共享;互連裝置(IM),用于根據(jù)多個(gè)通信服務(wù)(C1、C2)來(lái)互連所述模塊(M1到M5、CPU)和所述全局存儲(chǔ)器(GM)。所述集成電路進(jìn)一步包括至少一個(gè)通信管理單元(CMU),其用于管理所述多個(gè)模塊(M1到M5)之間的通信,其中所述通信管理單元(CMU)接收在所述模塊(M1到M5、CPU)中的至少兩個(gè)之間通信的請(qǐng)求,并動(dòng)態(tài)選擇所述多個(gè)通信服務(wù)(C1、C2)中的一個(gè)作為所述模塊(M1到M5、CPU)之間所請(qǐng)求的通信的基礎(chǔ)。
文檔編號(hào)G06F15/167GK1829982SQ200480021831
公開(kāi)日2006年9月6日 申請(qǐng)日期2004年7月21日 優(yōu)先權(quán)日2003年7月30日
發(fā)明者阿圖爾·T·伯查德, 弗朗索瓦絲·J·哈姆斯?jié)? 哈爾姆·J·H·N·肯特爾 申請(qǐng)人:皇家飛利浦電子股份有限公司