用于運行控制器的方法以及具有模型計算單元的控制器的制造方法
【專利摘要】本發(fā)明涉及用于運行控制器(1)的方法,其中該控制器包括由軟件控制的主計算單元(2)、基于配置數據用于計算算法尤其用于實施貝葉斯回歸法的純基于硬件的模型計算單元(3)和存儲單元(5),其中在該存儲單元中限定模型存儲區(qū)域(51),該模型存儲區(qū)域分配有用于提供模型計算單元(3)中的配置數據的配置寄存器塊(31),其中將配置數據寫入到其中的配置寄存器塊(31)中的最高位地址分配有計算啟動配置寄存器(33),其寫入會啟動模型計算單元(3)中的計算,其中存儲單元(5)的存儲區(qū)域中的配置數據借助增量復制過程從模型存儲區(qū)域(51)被寫入到配置寄存器塊(31)中,其中在增量復制過程中以升序復制地址。
【專利說明】用于運行控制器的方法以及具有模型計算單元的控制器
【技術領域】
[0001 ] 本發(fā)明總體上涉及一種用于控制物理單元的控制器、尤其具有由軟件控制的計算單元和基于硬件的模型計算單元的控制器。此外,本發(fā)明還涉及一種用于通過計算單元控制模型計算單元的方法。
【背景技術】
[0002]為了計算行程模型(Streckenmodell)或系統(tǒng)模型,控制器能夠配有純基于硬件的邏輯單元,其表示為用于計算模型函數值的模型計算單元。因此,當計算行程模型或系統(tǒng)模型很麻煩時,這特別有意義,例如在基于數據的函數模型、尤其形式為高斯過程模型的函數模型中,由于復雜的數學函數和循環(huán)計算,情況就是如此。
[0003]模型計算單元為了進行計算能夠被初始化、實施計算、轉為睡眠模式并且被關閉,尤其在與位于系統(tǒng)中的、由軟件運行的主計算單元(微控制器)的合適端口的幫助下。為了進行計算所必須的、描述函數模型的、用于這種模型計算單元的配置數據能夠在一系列配置寄存器中傳遞,這些配置寄存器通常與控制器的內部存儲器的確定的連續(xù)的存儲區(qū)域關聯(lián)。為了啟動塊計算單元進行計算,通常規(guī)定,在其中一個確定的配置寄存器中寫入數據用于啟動計算過程,其中能夠規(guī)定,在配置寄存器中寫入的數據的類型是無關緊要的。
[0004]文獻US 2005/0102488 Al描述了一種用于對硬固件寄存器進行編程的語言。
[0005]此外,文獻US5,619,702示出了一種數據庫的用途,所述數據庫限定每個硬件寄存器并且為硬件寄存器分配位。
【發(fā)明內容】
[0006]根據本發(fā)明規(guī)定了根據權利要求1所述的、用于運行控制器的方法以及根據并列權利要求所述的控制器。
[0007]在從屬權利要求中得出了本發(fā)明的其他有利的技術方案。
[0008]根據第一方面規(guī)定了一種用于運行控制器的方法,其中控制器包括由軟件控制的主計算單元、基于配置數據用于計算算法尤其用于實施貝葉斯回歸法的純基于硬件的模型計算單元和存儲單元,其中在存儲單元中限定了模型存儲區(qū)域,為所述模型存儲區(qū)域分配了用于提供模型計算單元中的配置數據的配置寄存器塊,其中為將配置數據寫入到其中的配置寄存器塊中的最高位地址分配了計算啟動配置寄存器,所述計算啟動配置寄存器的寫入會啟動模型計算單元中的計算,其中存儲單元的存儲區(qū)域中的配置數據借助增量復制過程從模型存儲區(qū)域被寫入到配置寄存器塊中,其中在增量復制過程中以升序復制所述地址。
[0009]在具有由軟件控制的控制單元和在硬件中實施的模型計算單元的控制器中,為了減輕控制單元的負擔,在單獨的模型計算單元中計算函數模型(Funkt1nsmodell )、尤其基于數據的函數模型,在該控制器中,通過配置寄存器實現了對模型計算單元的控制和對模型函數的限定。配置寄存器用于向模型計算單元傳遞用于計算函數值的算法的啟動值并且還限定下述地址區(qū)域,其中保存著用于參數化的函數模型的參數或者說超參數和用于計算非參數化的、基于數據的函數模型的控制點數據。由軟件控制的主計算單元的任務是,在每個借助模型計算單元對基于數據的函數模型進行的函數值計算之前預先給定配置數據并且啟動計算過程,該任務對功率弱的主計算單元而言是不可忽視的負擔。
[0010]為了減輕主計算單元的負擔因此能夠規(guī)定,將啟動模型計算單元中的計算過程的配置寄存器作為最后一個配置寄存器寫入配置寄存器塊中。為此,所述配置寄存器優(yōu)選被分配給內部存儲器的連續(xù)的存儲區(qū)域、即模型存儲區(qū)域,從而通過簡單的增量存儲復制過程從其中存儲著用于模型計算單元的配置值的模型存儲區(qū)域轉移到模型計算單元的配置寄存器塊上,尤其在利用已知的、DMA單元的塊復制功能(Blockkopierfunkt1n)的情況下。啟動計算過程的確定的配置寄存器在此被設置作為連續(xù)的存儲區(qū)域的最高位存儲地址并且因此通過增量的存儲復制過程最后被寫入。以這種方式能夠在簡單的增量存儲復制過程結束之后就已經啟動計算并且訪問為了啟動計算所需要的原始數據。由此能夠省去在寫入配置數據之后對確定的配置寄存器的單獨寫入。該方法尤其在使用能夠負責配置寄存器塊中的寫入過程的DMA單元時有利,因為由此完全地減輕了計算單元的負擔。
[0011]能夠規(guī)定,增量復制過程具有粒度,其中當粒度大于模型存儲區(qū)域時,分配給計算啟動配置寄存器的存儲地址后面緊跟著未使用的存儲區(qū)域。
[0012]DMA單元能夠由主計算單元指示,執(zhí)行多個接連的塊復制功能。
[0013]能夠規(guī)定,根據DMA單元的指示:執(zhí)行多個接連的塊復制功能,模型計算單元中的多個計算被實施,其中第二 DMA單元在每個通過多倍塊復制過程啟動的計算之后復制計算結果并且指示第一 DMA單元來實施下一個第一塊復制過程。
[0014]根據另一個方面規(guī)定了一種用于運行物理單元的控制器,其包括:
-由軟件控制的主計算單元;
-基于配置數據用于計算算法、尤其用于實施貝葉斯回歸法的、純基于硬件的模型計算單元;以及
-用于存儲所述配置數據的存儲單元,其中在所述存儲單元中限定模型存儲區(qū)域,所述模型存儲區(qū)域分配有用于提供所述模型計算單元中的配置數據的配置寄存器塊,其中所述配置寄存器塊中的最高位地址分配有計算啟動配置寄存器;
其中所述模型計算單元構造用于當寫入所述計算啟動配置寄存器時啟動所述算法的計算。
[0015]第一 DMA單元此外還能夠設置用于借助塊復制過程實施模型存儲區(qū)域的訪問或者說讀取。
[0016]主計算單元能夠啟動第一 DMA單元的功能并且構造用于支配第一 DMA單元執(zhí)行多倍塊復制過程,然后在模型計算單元中先后進行多次計算。
【專利附圖】
【附圖說明】
[0017]下面借助附圖更詳盡地闡述本發(fā)明的優(yōu)選實施方式。其中:
圖1示出具有由軟件控制的主計算單元和在硬件中實現的模型計算單元的控制器的示意圖;
圖2示出內部存儲器的存儲區(qū)域,所述存儲區(qū)域被分配給模型計算單元并且配置寄存器被分配給所述存儲區(qū)域;
圖3示出具有多個編程模型的存儲單元的存儲區(qū)域;
圖4示出用于說明一種方法的流程圖,該方法用于利用圖1所示的模型計算單元中的多個有待計算的函數模型啟動模型計算;并且
圖5示出用于說明一種方法的流程圖,該方法用于利用具有兩個DMA單元的模型計算單元中的多個有待計算的函數模型啟動模型計算。
【具體實施方式】
[0018]圖1示意性地示出了機動車中尤其用于運行物理單元、例如燃燒發(fā)動機的控制器I的結構??刂破鱅包括作為主計算單元2的微控制器,其構造得與模型計算單元3共同集成在一起。模型計算單元3基本上是硬件單元,其能夠實施基于硬件的函數計算,尤其那些針對貝葉斯回歸法的函數計算。模型計算單元尤其構造用于在循環(huán)計算(Schleifeberechnung)中實施指數函數運算、加法運算和乘法運算。
[0019]由主計算單元2啟動模型計算單元3中的計算,從而基于描述函數模型的超參數和控制點數據(StiitzstelIendaten)求取測試點的函數值。超參數和控制點數據存儲在還與主計算單元2和模型計算單元3集成在一起的存儲單元5中并且用于代表描述有待控制的物理單元的運行的、基于數據的函數模型。
[0020]主計算單元2和模型計算單元3通過內部的通訊連接部、尤其系統(tǒng)總線4彼此處于通信連接中。此外,存儲單元5和DMA單元6 (DMA=Direct Memory Access)能夠與所述內部的通信連接部相連,從而確保與主計算單元2和模型計算單元3的信號通訊。
[0021]原則上,模型計算單元3僅具有預先給定固定的計算過程的硬件(硬布線Hartverdrahtung)并且優(yōu)選不構造用于執(zhí)行軟件代碼。出于這個原因,也不需要在模型計算單元3中設置處理器。這能夠資源優(yōu)化地實現這類模型計算單元3。通過按照所實現的硬件規(guī)則進行計算,能夠相對于軟件算法明顯地縮短計算時間。
[0022]使用非參數的、基于數據的函數模型是以貝葉斯回歸法為基礎的。貝葉斯回歸的基本原理例如在C.E.Rasmussen等人于2006年MIT出版社出版的《gaussian processesfor machine learning》《機器學習的高斯過程》中說明。貝葉斯回歸法是一種基于數據的方法,其以模型為基礎。為了建立模型,需要訓練數據(Trainingsdaten)的測量點以及輸出參量的所配屬的輸出數據的測量點。建立模型的實現借助于使用控制點數據,所述控制點數據完全或者部分相當于訓練數據或者由所述訓練數據生成)。此外還確定了抽象的超參數,所述超參數將模型函數或者說模型功能(Modellfunkt1n)的空間參數化并且有效地衡量訓練數據的各個測量點對之后模型預測的影響。
[0023]模型計算單元3構造用于訪問具有配置寄存器(Konfigurat1nsregister)32的配置寄存器塊(Konfigurat1nsregisterblock) 31。模型計算單元3尤其能夠構造用于將具有配置寄存器32的配置寄存器塊31安排到系統(tǒng)的存儲區(qū)域內或者說作為存儲映射的寄存器示出。
[0024]配置寄存器塊31的配置寄存器32構造用于獲取為了計算函數模型所需要的參數和地址指針。首先需要數據、尤其地址指針,其借助啟動指針給出存有用于計算函數模型的超參數和控制點數據的地址區(qū)域并且必要時給出數據長度。此外,能夠預先給定用于有待計算的循環(huán)(Schleife)的初始化值,還有偏移值(Offsetwert),基于所述偏移值計算基于數據的函數模型的函數值。其他參數的傳遞也是可能的。
[0025]為了啟動模型計算單元3中函數模型的計算,主計算單元2必須首先對配置寄存器32進行配置并且緊接著通過確定的計算啟動配置寄存器(Berechnungsstart-konfigurat1nsregister) 33的寫入(Beschreiben)啟動模型計算單元3,無論是否對其中包含的位進行了配置。
[0026]配置寄存器32的寫入和模型計算單元3的啟動迄今都完全依賴于主計算單元2,因此所述主計算單元尤其在多個接連實現的時間較短的模型計算時負擔很大。因此規(guī)定,如圖2中所示的那樣構造配置寄存器塊31。能夠看出,配置寄存器塊31具有一系列的配置寄存器32并且在最高位存儲地址處設置了計算啟動配置寄存器33,從而將配置數據在連續(xù)的寫入過程中(以增量存儲地址寫入)寫入配置寄存器塊31。因此,分配給計算啟動配置寄存器33的地址最后被寫入。由此在主計算單元2中能夠使用增量的存儲復制命令,所述存儲復制命令對于主計算單元2來說負擔小一些。
[0027]此外,該任務能夠由主計算單元2轉移給DMA單元6。通常,DMA單元具有確定的粒度(GranuIaritjit),從而使得被傳遞的數據塊在大小方面是確定的。然而,計算啟動配置寄存器33總是位于直接跟在分配給其余配置寄存器32的存儲地址后面的存儲地址上。如果DMA單元6的粒度G更高,那么緊接著用于計算啟動配置寄存器33的存儲地址的其余存儲地址被標記為或者存儲為未使用的存儲區(qū)域34。
[0028]此外還能夠規(guī)定,構造僅可讀的寄存器35,用于為模型計算單元3提供結果、狀態(tài)和其他信息。
[0029]為了設置由DMA單元6對模型計算單元3進行配置,需要限定一種包含多個編程模型F01、F02、…、FOM的結構。在圖3中,M個編程模型R)1、R)2、…、FOM接連地根據DMA粒度G被存儲到模型存儲區(qū)域51上。每個編程模型都包含被寫入到配置寄存器32和計算啟動配置寄存器33中的配置參數。此外,編程模型還能夠包含未利用的存儲區(qū)域34的儲備存儲地址,如上所述那樣。
[0030]在使用DMA單元6時,主計算單元2的任務僅僅是對DMA單元6進行配置并且在借助地址數據啟動該DMA單元,所述地址數據通過模型存儲區(qū)域51中的配置數據的啟動地址和通過配置寄存器塊31針對模型計算單元3的基址所給出的目標地址確定。
[0031]在圖4中示意性示出的方法中,能夠連續(xù)利用不同的編程模型R)l、R)2、FOM對模型計算單元3進行配置和啟動。DMA單元6應支持具有相同的目標基址的、可重復的塊復制過程。為此,主計算單元2在步驟SI中一次性地向DMA單元6發(fā)出相應的指令。在步驟S2中,DMA單元6通過配置寄存器塊31中的一次性的塊復制過程啟動計算過程。在每個計算之后,DMA單元6的模型計算單元3在步驟S3中發(fā)出信號:計算結束,例如借助于中斷實現。針對每個有待計算的編程模型H)l、R)2、…、FOM實施步驟S2和S3的這種過程。在最后一個有待計算的編程模型H)M的計算工作完成之后,替代步驟S3,在步驟S4中向主計算單元2傳遞相應的通知。
[0032]所述方法也能夠借助第二 DMA單元7實現,從而將計算結果復制給另外的存儲地址。第二 DMA單元7為此必須在不借助主計算單元2的情況下支持具有相同的源基址的、可重復的復制過程。
[0033]為此,主計算單元2在步驟Sll和S12中對兩個DMA單元6、7進行配置。第一 DMA單元6在步驟S13中通過模型計算單元3中的塊復制過程啟動計算過程。在結束相應的計算之后,模型計算單元3在步驟S14中向第二 DMA單元7相應地發(fā)出信號。通過模型計算單元3的中斷觸發(fā)第二 DMA單元7。
[0034]第二 DMA單元7被用于在每個計算之后將模型計算單元3的計算結果傳遞給另一個存儲地址并且在步驟15中支配第一 DMA單元6。
[0035]緊接著,利用步驟S13對模型計算單元3進行重新配置并且通過將配置數據寫入配置寄存器塊31中的塊復制過程啟動計算。在每個計算結束之后,模型計算單元3都在步驟S14中向第二 DMA單元7相應地發(fā)出信號并且在步驟S15中繼續(xù)觸發(fā)第一 DMA單元6。
[0036]在最后一次計算結束之后,能夠根據第二 DMA單元7的特性在步驟S16中向主計算單元2通知計算的結束。這能夠通過制造第二 DMA單元7的中斷得以實現,所述中斷要么直接傳遞給主計算單元2要么傳遞給第一 DMA單元6,然后所述第一 DMA單元再將所述中斷傳遞給主計算單元2。
[0037]所有的編程模型R)1、R)2、…、FOM都借助配置數據規(guī)定對第二 DMA單元7的中斷生成,并且第二 DMA單元7按照一個編程模型在模型計算單元3中的函數模型計算結束之后對弟一 DMA單兀6制造中斷。
【權利要求】
1.用于運行控制器(I)的方法,其中所述控制器(I)包括由軟件控制的主計算單元(2)、基于配置數據用于計算算法尤其用于實施貝葉斯回歸法的純基于硬件的模型計算單元(3)和存儲單元(5), 其中在所述存儲單元(5)中限定模型存儲區(qū)域(51),為所述模型存儲區(qū)域分配了用于提供所述模型計算單元(3)中的配置數據的配置寄存器塊(31),其中為將配置數據寫入到其中的配置寄存器塊(31)中的最高位地址分配了計算啟動配置寄存器(33),所述計算啟動配置寄存器的寫入啟動所述模型計算單元(3)中的計算, 其中所述存儲單元(5)的存儲區(qū)域中的配置數據借助增量復制過程從所述模型存儲區(qū)域(51)被寫入到所述配置寄存器塊(31)中,其中在所述增量復制過程中以連續(xù)順序、尤其以升序復制所述地址。
2.按照權利要求1所述的方法,其中借助DMA單元(6)的塊復制功能實施所述增量復制過程。
3.按照權利要求2所述的方法,其中所述增量復制過程具有粒度,其中緊接著分配給所述計算啟動配置寄存器(33)的存儲地址是未使用的存儲區(qū)域,用于配入DMA的粒度。
4.按照權利要求2或3所述的方法,其中所述DMA單元(6)由所述主計算單元(2)指示,執(zhí)行多個接連的、具有相同的目標基址的塊復制功能。
5.按照權利要求4所述的方法,其中根據所述DMA單元(6)執(zhí)行多個接連的塊復制功能的指令,在所述模型計算單元(3)中實施多個計算,其中第二 DMA單元(7)在每個通過多倍塊復制過程啟動的計算之后復制計算結果并且指示第一 DMA單元(6)實施下一個塊復制過程。
6.用于運行物理單元的控制器(1),其包括: -由軟件控制的主計算單元(2); -基于配置數據用于計算算法、尤其用于實施貝葉斯回歸法的、純基于硬件的模型計算單元(3);以及 -用于存儲所述配置數據的存儲單元(5),其中在所述存儲單元(5)中限定模型存儲區(qū)域(51),所述模型存儲區(qū)域分配有用于提供所述模型計算單元(3)中的配置數據的配置寄存器塊(31),其中所述配置寄存器塊(31)中的最高位地址分配有計算啟動配置寄存器(33); 其中所述模型計算單元(3)構造用于當寫入所述計算啟動配置寄存器(33)時啟動所述算法的計算。
7.按照權利要求6所述的控制器,其中第一DMA單元(6)設置用于借助塊復制過程實施所述配置寄存器塊(31)的寫入。
8.按照權利要求7所述的控制器,其中所述主計算單元(2)設置用于啟動所述第一DMA單元(6)的功能。
9.按照權利要求7或8所述的控制器,其中所述主計算單元(2)構造用于支配所述第一 DMA單元(6)實施多倍塊復制過程,然后在所述模型計算單元(3)中先后實施多個計算。
10.按照權利要求9所述的控制器,其中第二DMA單元(7)設置用于在每個通過多倍塊復制過程啟動的計算之后復制計算結果并且指示所述第一 DMA單元(6)實施下一個塊復制過程。
11.計算機程序,其設計用于執(zhí)行按照權利要求1至5中任一項所述的方法的所有步驟。
12.電子存儲介質,在其上存儲著按照權利要求11所述的計算機程序。
13.按照權利要求6至10中任一項所述的控制器,其具有按照權利要求12所述的電子存儲介質。
【文檔編號】G06F13/28GK104281547SQ201410309076
【公開日】2015年1月14日 申請日期:2014年7月1日 優(yōu)先權日:2013年7月2日
【發(fā)明者】H.馬克特, N.班諾夫, W.菲舍爾, A.岡托羅, M.漢澤爾曼 申請人:羅伯特·博世有限公司