本發(fā)明涉及一種微控制器以及一種用于運行這樣的微控制器的方法和一種用于執(zhí)行該方法的計算機程序。
背景技術(shù):
現(xiàn)代的微控制器,如它們例如在機動車的控制設(shè)備中(例如在用于發(fā)動機控制的發(fā)動機控制設(shè)備中)所采用的那樣,大多具有多核處理器,所述多核處理器具有多個(至少兩個)處理器核(core)。處理器核或core包括:算術(shù)邏輯單元(alu),所述算術(shù)邏輯單元(alu)是用于實施任務(wù)、程序、計算命令等等的真正的電子運算器;以及此外還包括本地存儲器。這樣的本地存儲器例如可以被構(gòu)造為由一個或多個寄存器構(gòu)成的寄存器組,或者可以被構(gòu)造為ram存儲器。此外,微控制器還包括全局存儲器,其例如可以被構(gòu)造成閃存、nor閃存或者ram存儲器。
技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明,提出了具有專利獨立權(quán)利要求的特征的一種微控制器以及一種用于運行這樣的微控制器的方法和一種用于執(zhí)行該方法的計算機程序。有利的構(gòu)建方案是從屬權(quán)利要求以及隨后的描述的主題。
該微控制器包括全局存儲器(例如閃存、nor閃存、ram存儲器)和處理器單元。處理器單元包括至少一個處理器核。處理器單元尤其是被構(gòu)造為多核處理器并且包括多個處理器核。每個處理器核都分別具有算術(shù)邏輯單元(alu)和本地存儲器(例如由一個或多個寄存器構(gòu)成的寄存器組,或者ram存儲器)。
所述至少一個處理器核以及因此尤其是本地存儲器通過通信信道與全局存儲器保持通信連接。該通信信道例如被構(gòu)造為總線、交叉開關(guān)矩陣(crossbar)或者片上網(wǎng)絡(luò)(network-on-a-chip)。
在微控制器中設(shè)置有至少一個打包單元。這樣的打包單元直接與通信信道以數(shù)據(jù)傳輸?shù)姆绞竭B接。此外,這樣的打包單元還直接與全局存儲器或者與所述處理器核之一的本地存儲器以數(shù)據(jù)傳輸?shù)姆绞竭B接。多個打包單元可以以適當?shù)姆绞奖环植嫉轿⒖刂破鞯牟煌鎯ζ魃?。例如,特定的、不同的?shù)目的打包單元可以分別與不同的處理器核的本地存儲器耦合。在全局存儲器上也可以設(shè)置適宜的數(shù)目的打包單元或者也可以不設(shè)置打包單元。
與全局存儲器耦合的打包單元尤其是被設(shè)立為在全局存儲器與處理器核的本地存儲器之間交換數(shù)據(jù)。與本地存儲器耦合的打包單元尤其是被設(shè)立為在所述本地存儲器與所述全局存儲器之間交換數(shù)據(jù)和/或在所述本地存儲器與其它的本地存儲器之間交換數(shù)據(jù)。
每個打包單元都具有本地存儲單元、例如閃存。在所述本地存儲單元中存儲有復制數(shù)據(jù)(kopierdaten)。根據(jù)所述復制數(shù)據(jù),相對應的打包單元按照命令(aufveranlassung)通過通信信道將多個單個的數(shù)據(jù)共同在相應的打包單元與其直接以數(shù)據(jù)傳輸?shù)姆绞竭B接的存儲器和另一存儲器之間進行交換。所述多個數(shù)據(jù)尤其是作為共同的數(shù)據(jù)包來傳送。與全局存儲器耦合的打包單元尤其是在該全局存儲器與本地存儲器之間交換數(shù)據(jù)包。與本地存儲器耦合的打包單元尤其是在該本地存儲器與全局存儲器和/或其它的本地存儲器之間交換數(shù)據(jù)包。
通過本發(fā)明來提供一種可能性,以便盡可能快地并且以低的計算成本在微控制器的存儲器之間復制數(shù)據(jù)。尤其是使得能夠以有效的和低成本的方式在微控制器的存儲器之間復制對于執(zhí)行進程所需的輸入數(shù)據(jù)和/或復制在這樣的進程的過程中獲得的結(jié)果數(shù)據(jù)。
在微控制器上運行的進程尤其是以周期性的時間段時控地工作。在此,所述各個處理器核以所謂的時隙(timeslot)或時間片(timeslice)分別實施特定的、不同的軟件功能或進程(任務(wù)、程序、計算指令等等)。時間片例如可以分別為1ms、2ms、5ms、10ms、20ms、50ms、100ms、1000ms。對于每個時間片被實施的進程大多需要特定的輸入數(shù)據(jù)、例如已經(jīng)由機動車的傳感器檢測到的當前的測量值。所述測量值尤其是被寄存在微控制器的全局存儲器中。為了處理器核可以在一個時間片期間根據(jù)特定的輸入數(shù)據(jù)來執(zhí)行特定的進程,這些輸入數(shù)據(jù)可以按照相對應的指示例如在時間片開始時通過打包單元從全局存儲器被復制到該處理器核的本地存儲器中。在這些進程的過程中所確定的結(jié)果數(shù)據(jù)可以按照命令在時間片結(jié)束時或者也在下一時間片開始時通過打包單元從相應的處理器核的本地存儲器被復制到全局存儲器中。
在傳統(tǒng)的微控制器中,在微控制器的存儲器之間的復制過程大多由各個處理器核本身(軟件側(cè))來執(zhí)行,這常常帶有問題和缺點。這樣的借助于軟件的復制大多是成本高的、費時的并且與高的計算能力相關(guān)聯(lián)。為了該目的,處理器核尤其是從相應的輸出存儲器單個地讀入要復制的數(shù)據(jù),并且首先將所述要復制的數(shù)據(jù)例如暫存在寄存器中。從該寄存器出發(fā),處理器核緊接著將暫存的數(shù)據(jù)單個地寫到目標存儲器中。在此,處理器核例如處理預先給定的列表,以便以這種方式相繼地復制各個數(shù)據(jù)。因而,對于單個數(shù)據(jù)的這樣的復制過程,通過通信信道的比較多的事務(wù)(transaktion)是必要的,由此整個復制過程比這對于數(shù)據(jù)的純粹的傳輸會是必要的時間持續(xù)顯著更長的時間。這樣的復制過程可能占用處理器核的總運行時間的直至多個百分點,這可能導致微控制器的明顯變慢。此外,在傳統(tǒng)的微控制器中,大多不可能同時執(zhí)行不同處理器核的多個這樣的復制過程。因而,在所執(zhí)行的復制過程期間,可能發(fā)生與其它的應該被執(zhí)行的復制過程的沖突(kollision),這可能導致微控制器的附加的變慢。這樣的沖突的風險隨著各個復制過程的持續(xù)時間和處理器核的數(shù)目而升高。
通過本發(fā)明可以消除傳統(tǒng)的微控制器的這些問題和缺點。尤其是,數(shù)據(jù)不借助于軟件來交換、而是借助于硬件由打包單元來交換。尤其是,以打包單元的形式來設(shè)置僅供數(shù)據(jù)的交換支配的硬件單元。與處理器核不同,打包單元不通過通信信道讀取命令。
數(shù)據(jù)由打包單元組合成更大的數(shù)據(jù)包,并且尤其是不需要相繼地復制每個單個的數(shù)據(jù)。此外,打包單元還可以直接地并且在沒有延遲的情況下、尤其是在沒有通信信道的延遲(所述通信信道的延遲例如可以為直至15個時鐘)的情況下訪問所述打包單元與其耦合的相應的存儲器。為了該目的,打包單元尤其是分別通過直接的接口與相應的存儲器耦合。打包單元尤其是可以在單個的時鐘內(nèi)以所期望的方式訪問相應的被耦合的存儲器。因此,總體上,借助于打包單元的數(shù)據(jù)交換可以比在傳統(tǒng)的微控制器中快得多地來執(zhí)行。
通過使處理器核由數(shù)據(jù)交換的任務(wù)釋放(befreien),所述處理器核的相對應的計算能力可以被用于執(zhí)行其它的進程,由此有更多計算能力或計算時間可供微控制器支配。此外,可以避免復制過程的沖突,如它們在通過處理器核進行數(shù)據(jù)交換時可能出現(xiàn)的那樣,由此,微控制器的性能(verhalten)總體上變得更可預測。
打包單元的本地存儲單元例如可以分別在幾千字節(jié)的量級內(nèi)。例如,要交換的數(shù)據(jù)的地址、尤其是數(shù)據(jù)在輸出存儲器中的地址和在所述數(shù)據(jù)應該被寫到其上的目標存儲器中的地址可以作為復制數(shù)據(jù)來寄存。復制數(shù)據(jù)例如可以在微控制器的系統(tǒng)啟動時被寫入到打包單元的本地存儲器中。復制數(shù)據(jù)優(yōu)選地可以在微控制器的運行時間期間例如由處理器核來改變或適配。打包單元尤其是分別具有如下特定的硬件:所述特定的硬件依據(jù)被寄存在相應的打包單元的本地存儲器中的復制數(shù)據(jù)來執(zhí)行相應的數(shù)據(jù)交換。尤其是,借助于該硬件,要交換的數(shù)據(jù)按照作為復制數(shù)據(jù)來寄存的地址在輸出存儲器中被搜索(zusammensuchen),并且尤其是與此同時被寫入到目標存儲器中。
所述至少一個打包單元有利地被設(shè)立為按照命令借助于突發(fā)傳輸(burst-transfer)通過通信信道來交換所述多個單個的數(shù)據(jù)。在這樣的突發(fā)傳輸?shù)倪^程中可以傳輸由單個的數(shù)據(jù)構(gòu)成的數(shù)據(jù)包或突發(fā)(burst),而在此沒有對每個單個的數(shù)據(jù)單獨地進行尋址(adressieren)。尤其是,數(shù)據(jù)包的只有一個單個的數(shù)據(jù)明確地被尋址,并且可以在沒有附加的等待時間的情況下訪問該數(shù)據(jù)包的其余數(shù)據(jù)的地址。各個數(shù)據(jù)尤其是可以借助于突發(fā)傳輸以所述各個數(shù)據(jù)已經(jīng)被寫入到輸出存儲器中的順序來交換。
打包單元優(yōu)選地分別包括以所述多個單個的數(shù)據(jù)的大小、尤其是以要交換的數(shù)據(jù)的數(shù)據(jù)包的大小的緩沖器。有利地,該緩沖器具有突發(fā)(burst)的大小。尤其是,每個打包單元可以設(shè)置兩個這樣的緩沖器,以便盡可能快地和同時執(zhí)行在兩個方向上的數(shù)據(jù)交換。
根據(jù)一有利的實施方案,所述至少一個打包單元被設(shè)立為作為主機(master)訪問通信信道。因此,尤其是可以阻止在數(shù)據(jù)交換時可能的沖突。如果打包單元作為主機主動地訪問通信信道并且交換數(shù)據(jù),則打包單元尤其是占用所述打包單元與其耦合的相對應的存儲器。有利地,在所述至少一個打包單元的數(shù)據(jù)交換期間,微控制器的其它部件不能訪問所述至少一個打包單元與其以數(shù)據(jù)傳輸?shù)姆绞街苯舆B接的相應的存儲器。因此,尤其是確保了:數(shù)據(jù)在數(shù)據(jù)交換期間不能改變,因為禁止了其它部件在數(shù)據(jù)交換期間重寫或更新數(shù)據(jù)。由此,可以在沒有諸如軟件鎖(software-lock)那樣的附加措施的情況下保證所交換的數(shù)據(jù)的一致性。
有利地,所述至少一個打包單元被設(shè)立為將所述多個單個的數(shù)據(jù)轉(zhuǎn)換成其它的數(shù)據(jù)類型。例如,16位數(shù)據(jù)可以被轉(zhuǎn)換成32位數(shù)據(jù)和/或整數(shù)數(shù)據(jù)(integerdaten)可以被轉(zhuǎn)換成浮點數(shù)據(jù)(floatdaten)和/或小端(littleendian)數(shù)據(jù)可以被轉(zhuǎn)換成大端(bigendian)數(shù)據(jù)。
優(yōu)選地,由所述至少一個打包單元來交換的所述多個單個的數(shù)據(jù)作為輸入數(shù)據(jù)被用于實施進程,或者已經(jīng)作為所執(zhí)行的進程的結(jié)果數(shù)據(jù)被確定。如已經(jīng)解釋的那樣,這樣的進程尤其是在時間片之內(nèi)時控地來實施。所述至少一個打包單元有利地在這樣的時間片開始和/或結(jié)束時被促使交換所述多個單個的數(shù)據(jù)。
有利地,所述至少一個打包單元借助于中斷(interrupt)和/或定時器(timer)被促使交換所述多個單個的數(shù)據(jù)。這樣的中斷例如可以由所述處理器核之一來輸出,使得數(shù)據(jù)交換可以直接由處理器核來操控或發(fā)起(anstossen)。借助于定時器,例如通過在打包單元本身中的相對應的邏輯電路(logik)可以例如利用自己的系統(tǒng)時鐘來實現(xiàn)例如自己的運行控制。在這種情況下,打包單元也可以承擔對復制過程的操控并且因此附加地減輕處理器核的負擔。
優(yōu)選地,所述至少一個打包單元被設(shè)立為以比訪問通信信道更大的位寬來訪問該打包單元與其以數(shù)據(jù)傳輸?shù)姆绞街苯舆B接的存儲器。例如,打包單元可以以1024位而不是64位來訪問相應的被耦合的存儲器。接著,打包單元可以同時處理在所述大的位寬之內(nèi)的多個值。
優(yōu)選地,本地存儲器和/或全局存儲器可以被劃分成多個存儲體(bank)。尤其是,這樣的存儲體只對于與相應的存儲器以數(shù)據(jù)傳輸?shù)姆绞街苯舆B接的相應的打包單元是可見的。尤其是,打包單元可以同時訪問相應的被耦合的存儲器的所有存儲體。因此,在打包單元與存儲器之間的訪問的至少一部分可以被并行化。
有利地,打包單元可以在對于所述打包單元與其以數(shù)據(jù)傳輸?shù)姆绞街苯舆B接的相應的存儲器和通信系統(tǒng)不同的ecc碼之間進行編譯。尤其是,該通信系統(tǒng)可以根據(jù)字寬要求secded碼,而對于各個存儲器而言,具有更高的字寬和更高的識別和校正能力的碼是有意義的。
優(yōu)選地,所述至少一個打包單元被設(shè)立為對微控制器的存儲器保護單元、所謂的memoryprotectionunit(存儲器保護單元,mpu)進行編程。尤其是,打包單元可以在所述打包單元傳送特定的處理器核的數(shù)據(jù)時根據(jù)所傳送的數(shù)據(jù)對所述特定的處理器核的mpu重新編程。因此,可以提高安全性,而且可以節(jié)省必會被用于對mpu手動的編程的時間。
微控制器尤其是被實施到機動車的控制設(shè)備中、例如被實施到發(fā)動機控制設(shè)備中。因此,可以確保相對應的控制設(shè)備的被改善的安全性,而且可以遵守在機動車領(lǐng)域中所提出的安全性要求。尤其是可以遵守如在iso標準26262中存有的安全性要求。
根據(jù)本發(fā)明的微控制器尤其是以程序技術(shù)被設(shè)立為執(zhí)行根據(jù)本發(fā)明的方法。
以計算機程序的形式實施該方法也是有利的,因為這尤其是當實施的控制設(shè)備還被用于其它的任務(wù)并且因而總歸存在時導致了特別低的成本。用于提供計算機程序的適當?shù)臄?shù)據(jù)載體尤其是磁存儲器、光學存儲器和電存儲器(諸如硬盤、閃存、eeprom、dvd等等)。通過計算機網(wǎng)絡(luò)(例如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)等等)來下載程序也是可能的。
本發(fā)明的其它的優(yōu)點和構(gòu)建方案從說明書和隨附的附圖中得出。
本發(fā)明是依據(jù)附圖中的實施例示意性地被示出,而且隨后參考附圖被描述。
附圖說明
圖1示意性地示出了根據(jù)本發(fā)明的微控制器的優(yōu)選的構(gòu)建方案,所述微控制器被設(shè)立為執(zhí)行根據(jù)本發(fā)明的方法的優(yōu)選的實施方式。
圖2作為方框圖示意性地示出了根據(jù)本發(fā)明的方法的優(yōu)選的實施方式。
具體實施方式
在圖1中,根據(jù)本發(fā)明的微控制器的優(yōu)選的構(gòu)建方案示意性地被示出并且用100來標明。微控制器100例如被集成到機動車的控制設(shè)備中、例如被集成到用于控制或調(diào)節(jié)發(fā)動機功能的發(fā)動機控制設(shè)備中。
微控制器100包括具有多個處理器核110的多核處理器。在圖1中示例性地示出了三個處理器核110a、110b和110c。易于理解的是,微控制器100可以具有適宜的數(shù)目的處理器核、例如也可以只具有一個處理器核。
每個處理器核110a、110b或110c都分別包括本地存儲器111a、111b和111c。此外,微控制器100還包括全局存儲器140。本地存儲器111a、111b和111c和全局存儲器140例如都可以分別被構(gòu)造為ram存儲器。
處理器核110a、110b和110c、尤其是本地存儲器111a、111b和111c與全局存儲器140通過通信系統(tǒng)130、例如總線保持通信連接。
微控制器100此外還包括多個打包單元。例如,打包單元120a和120b分別以數(shù)據(jù)傳輸?shù)姆绞街苯优c處理器核110a和110b的本地存儲器111a和111b連接。例如兩個打包單元120c和120d以數(shù)據(jù)傳輸?shù)姆绞街苯优c本地存儲器111c連接。打包單元120e以數(shù)據(jù)傳輸?shù)姆绞街苯优c全局存儲器140連接。此外,打包單元120a、120b、120c、120d和120e分別以數(shù)據(jù)傳輸?shù)姆绞街苯优c總線130連接。
打包單元120a、120b、120c、120d和120e分別通過直接的接口與相應的存儲器111a、111b、111c和140耦合。此外,每個打包單元120a、120b、120c、120d和120e都分別包括自己的本地存儲單元121a、121b、121c、121d和121e。
打包單元120e被設(shè)立為通過總線130在全局存儲器140與本地存儲器111a、111b和111c之間交換數(shù)據(jù)。打包單元120a、120b、120c、120d和120e被設(shè)立為不僅通過總線130在本地存儲器111a、111b、111c與全局存儲器140之間交換數(shù)據(jù)而且在所述本地存儲器111a、111b和111c彼此之間交換數(shù)據(jù)。
在打包單元120a、120b、120c、120d和120e的本地存儲器121a、121b、121c、121d和121e中分別寄存如下復制數(shù)據(jù),按照所述復制數(shù)據(jù)執(zhí)行相應的數(shù)據(jù)交換。尤其是,所要交換的數(shù)據(jù)的地址以及所述數(shù)據(jù)應該在相應的目標存儲器中被寫到的目標地址作為復制數(shù)據(jù)被寄存在相應的輸出存儲器中。
微控制器100尤其是以程序技術(shù)被設(shè)立為執(zhí)行根據(jù)本發(fā)明的方法的優(yōu)選的實施方式,所述實施方式在圖2中作為方框圖示意性地被示出。
微控制器100的運行以例如100ms的周期性的時間片時控地實現(xiàn)。在所述時間片內(nèi),由處理器核110a、110b和110c在發(fā)動機控制的過程中分別執(zhí)行特定的進程。為了執(zhí)行所述進程,處理器核110a、110b和110c分別需要被寄存在全局存儲器140中的特定的輸入數(shù)據(jù)、例如傳感器的測量值。此外,作為所述各個進程的結(jié)果被計算出的結(jié)果數(shù)據(jù)應該由處理器核110a、110b和110c傳送給全局存儲器140。打包單元120a、120b、120c、120d和120e被設(shè)置用于交換這些數(shù)據(jù)。
在圖2中所示出的步驟201中,這樣的時間片開始。例如,這通過由處理器單元110a發(fā)送的中斷來用信號通知。利用該中斷來促使打包單元交換數(shù)據(jù)。
例如,在步驟202中,根據(jù)被寄存在本地存儲單元121e中的復制數(shù)據(jù),打包單元120e按照所述命令通過總線130將溫度和壓力測量值從全局存儲器140中寫入到本地存儲器111a中。所述溫度和壓力測量值由多個單個的數(shù)據(jù)組成。打包單元120e將所述多個單個的數(shù)據(jù)共同作為唯一的數(shù)據(jù)包借助于突發(fā)傳輸傳送給本地存儲器111a。
在處理這些數(shù)據(jù)并且將結(jié)果存放在本地存儲器111a中之后,打包單元120e在步驟203中通過總線130將數(shù)據(jù)包從本地存儲器111a傳送到全局存儲器140中。該數(shù)據(jù)包例如描述了在發(fā)動機燃燒室中的執(zhí)行器的操控值,所述操控值已經(jīng)由處理器核110a基于最后被傳送的溫度和壓力測量值計算出。
與根據(jù)步驟202和203的所述數(shù)據(jù)交換同時地,在步驟204中,根據(jù)被存儲在本地存儲單元121a中的復制數(shù)據(jù),由打包單元120a按照來自步驟201的命令通過總線130將數(shù)據(jù)包從本地存儲器111a傳送到處理器核110c的本地存儲器111c中。例如,該數(shù)據(jù)包是也在步驟203中被傳送的相同的數(shù)據(jù)包。
在根據(jù)步驟202至205的所述數(shù)據(jù)交換期間,打包單元120a和120e分別作為主機訪問相應的被耦合的存儲器140和111a。在此過程中,微控制器100的其它部件不能訪問全局存儲器140和本地存儲器111a。
在數(shù)據(jù)交換已經(jīng)結(jié)束之后,在步驟206中由處理器核110來實施進程。所述打包單元直至下一數(shù)據(jù)交換都是不活躍的,而且微控制器100的其余部件可以正常地訪問全局存儲器140和本地存儲器111a。