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

多處理器系統(tǒng)、裝置和方法

文檔序號:6502902閱讀:143來源:國知局
多處理器系統(tǒng)、裝置和方法
【專利摘要】本發(fā)明涉及多處理器系統(tǒng)、裝置和方法。本發(fā)明的實施方式提供了多處理器系統(tǒng)中的方法和裝置,從而在硬件部件中創(chuàng)建和實施與存儲器訪問有關的規(guī)則的集合。這些規(guī)則可以被動態(tài)地更新,例如通過用于控制多處理部件的順序處理器(或者定序器)來動態(tài)地更新。
【專利說明】多處理器系統(tǒng)、裝置和方法
【技術領域】
[0001]本發(fā)明涉及多處理器系統(tǒng)中的方法和裝置。
【背景技術】
[0002]本 申請人:的在先申請(GB2482141A)描述了在計算必須滿足嚴格的實時約束的情況下在具有多處理器或處理部件的系統(tǒng)中控制任務執(zhí)行的系統(tǒng)和方法。該文獻描述了使用應用建模(例如使用統(tǒng)一建模語言(Unified Modeling Language, UML))來描述無線物理層的設計。
[0003]在上述申請中描述了如下裝置,該裝置由順序處理器(即具備實現UML原語的指令集的可編程處理器)組成,該順序處理器可用表示由UML定義的操作序列的代碼來編程并生成控制信號以觸發(fā)各個處理部件中的操作;并且其中來自處理部件的表示任務完成的信號還與控制原語結合使用,以控制后續(xù)任務的執(zhí)行。所述系統(tǒng)還允許使用由系統(tǒng)時鐘生成的、將要作為觸發(fā)信號被包括在內的時間事件,使得嚴格的實時約束能夠被應用到系統(tǒng)。所描述的裝置和方法的優(yōu)點是可以非常有效地控制多處理器集合中的任務執(zhí)行,并且由UML定義的任務序列可以被自動編譯成微代碼,以控制順序處理器的操作。
[0004]因此,建模工具根據以專用硬件順序處理器為對象的模型生成代碼。該硬件順序處理器保證在處理器上執(zhí)行的任務(以及實際上在專用硬件塊上運行的任務/功能)滿足它們的截止期限以及它們的控制和數據依賴性。
[0005]在多處理器系統(tǒng)中,存儲器的訪問是復雜的,因為在各個時間很多處理部件都能訪問存儲器。如果存儲器也被頻繁地循環(huán)利用(以縮小尺寸),那么系統(tǒng)的調試和驗證極其困難。
[0006]此外,在能夠支持多個空中接口模式(諸如未來的蜂窩手機中所需要的模式,其中可以在現場加載和更新的軟件中定義模式)的調制解調器中,在軟件訪問存儲器的方式上可能存在意料之外的交互,這將會引起系統(tǒng)必須自動恢復的操作故障。
[0007]因此,期望具有能夠識別和管理多處理器系統(tǒng)中的存儲器訪問中、或者在開發(fā)/調試階段或在正常操作中的問題的系統(tǒng)。

【發(fā)明內容】

[0008]根據本發(fā)明的第一個方面,提供了如所附權利要求書中闡述的、監(jiān)控多處理器系統(tǒng)中的存儲器訪問的方法。
[0009]根據本發(fā)明的另一個方面,公開了配置為執(zhí)行根據第一個方面的方法的硬件部件(還被稱為存儲器監(jiān)視單元),以及多處理器系統(tǒng),該多處理器系統(tǒng)包括上述硬件部件;多個處理部件;各處理部件所訪問的存儲器;以及用于生成要被多個處理部件執(zhí)行的代碼序列的定序器。
【專利附圖】

【附圖說明】[0010]為了更好地理解本發(fā)明,并且更清楚地示出可以如何實施本發(fā)明,現在將以示例的方式參考以下附圖,在附圖中:
[0011]圖1是根據本發(fā)明實施方式的多處理器系統(tǒng)的示意圖;以及
[0012]圖2是生成用于圖1所示的系統(tǒng)的代碼的處理流程的示意圖。
【具體實施方式】
[0013]圖1是根據本發(fā)明實施方式的多處理器系統(tǒng)10的示意圖。
[0014]系統(tǒng)10包括多個處理部件I_nl2,其中η是大于I的正整數。雖然示例性實施方式示出了三個處理部件12,但系統(tǒng)10可以包括如兩個這樣少的處理部件。
[0015]處理部件12可以包括任何處理器或專用處理器。例如,多個處理部件12可以包括如下每個的一個或更多個:矢量信號處理器,其能夠在同一處理器周期中對數據陣列的每個元素執(zhí)行矩陣矢量算術運算;硬件塊,其專用于例如直接存儲器訪問或turbo譯碼這樣的單一類型的操作;中央處理單元(CPU);或者許多其它類型的處理塊中的一種。
[0016]系統(tǒng)10進一步包括提供系統(tǒng)時鐘的定時器14、控制處理器15和順序處理器16。處理部件12、定時器14、控制處理器15和順序處理器16經由系統(tǒng)總線或互連器18來彼此互連。 [0017]順序處理器16是具備實現UML原語的指令集的可編程處理器。順序處理器16可用表示由UML定義的操作序列的代碼來編程并生成信號(還被稱作動作啟用(ActionInnovation))以觸發(fā)各個處理部件12中的操作。來自處理部件的指示任務完成的信號(還被稱作動作指示)還與控制原語結合使用以控制后續(xù)任務的執(zhí)行。因此由UML定義的任務序列能夠被自動地編譯成微代碼,以控制順序處理器16的操作,該順序處理器16產生動作啟用(Action Invocation, Al)來觸發(fā)處理部件12中的操作。
[0018]每個Al都是包括以下內容中的一部分或全部的消息:執(zhí)行該動作所要求的資源的定義,包括要求的處理部件的類型、任何存儲器要求和/或任何功率或電流要求;關于所要求的處理部件能否被先占有的指示;指向對處理部件進行編程的代碼(如果需要)的指針;指向輸入數據和輸出數據緩沖區(qū)的指針;關于如果數據依賴則執(zhí)行該動作要求的最小和最大執(zhí)行循環(huán)的數據;動作的優(yōu)先級的定義;任何最早開始或最晚結束時間(即,動作決不能在特定時間之如開始、或必須在特定時間完成)的定乂 ;以及?呆作序列中在動作完成時控制必須交返回的位置的定義。
[0019]設置有每個處理部件12和順序處理器16都具有訪問權的存儲器20。存儲器20可以是片上存儲器、片外存儲器或二者的組合??梢酝ㄟ^單個存儲體提供存儲器20,但是更通常期望存儲器將包括排列在系統(tǒng)10周圍不同位置的多個存儲體。存儲器20可以經由存儲總線21或多條總線(例如存儲地址總線、存儲數據總線和/或一條或多條控制線)連接到系統(tǒng)10的其它部件。
[0020]根據本發(fā)明的實施方式,系統(tǒng)還包括存儲器監(jiān)視單元22。該存儲器監(jiān)視單元22是專用硬件部件,與存儲器20同樣耦接到互連器或總線21。其可以是專用存儲總線(如圖1所示實施方式)或更通用的系統(tǒng)互連器18。因此,存儲器監(jiān)視單元22能監(jiān)控處理部件12和/或順序處理器16進行的每個存儲器訪問。下面給出存儲器監(jiān)視單元22的操作的進一步細節(jié)。[0021]圖2是示出在設計過程期間創(chuàng)建多處理器系統(tǒng)(例如前面所述的多處理器系統(tǒng)10)的模型的技術的示意圖。這種系統(tǒng)的一個具體示例是(如GB2482141A描述的)調制解調器物理層的軟件實例化。該模型允許表達和可視化各種設計考慮(例如,功率、性能、面積等),并且允許在生成用于控制多處理器系統(tǒng)的代碼之前進行對模型的分析。雖然這些設計考慮(以及其它)并不是彼此孤立的,但是當其被表達和可視化時將它們分開是有用的,不只是對于設計人員而言降低復雜性。在處理的分析階段,各種考慮可以被一起交叉搭配和分析。在這個階段,可以定義策略以便可以影響代碼生成階段。
[0022]在模型103中表達了存儲器101的考慮或約束或其它考慮102 (可以使用UML或任何其它適合的建模語言來表達)。如GB2482141A所描述地,模型103的主要目的是表達系統(tǒng)的多處理部件執(zhí)行的任務之間的依賴性。
[0023]使用模型中描述的行為生成存儲器使用情況104。可以通過在模型中創(chuàng)建緩沖區(qū)并將其隸屬于處理器中運行的任務,對存儲器使用情況進行建模,以創(chuàng)建控制和數據流。該模型可進一步被注釋以描述存儲器的屬性-例如在系統(tǒng)中可以從何處分配存儲器、其對齊類型等。還可以對緩沖區(qū)進行注釋,以描述其預期壽命,允許隨著代碼執(zhí)行的進行存儲器重復用于其它用途。因此該模型獲知全部關鍵方面:存儲器位置、存儲器地址、數據流(即,哪個處理正在訪問什么和何時訪問)和存儲器壽命。
[0024]可以通過可視化工具105顯示存儲器使用情況:可視輔助工具,其向設計人員呈現存儲器在使用時如何布局。
[0025]可以應用策略107以允許分析關于不同方面之間交互的“交叉考慮”并且優(yōu)化系統(tǒng)。例如,策略可以是盡可能將訪問限于一個存儲器存儲體,使得可以關閉其它存儲體,即本示例中的策略優(yōu)先考慮節(jié)電。在這種情況下,開發(fā)工具能推斷出一個存儲器子系統(tǒng)未使用,然后可以生成代碼將其關閉。在另一個示例中,策略可優(yōu)先考慮訪問速度,并生成代碼以優(yōu)先于片外存儲器來使用片上存儲器。在再一個示例中,策略可以優(yōu)先考慮性能,由此在多個存儲器子系統(tǒng)上來展開存儲器分配,以便多個處理部件可以并行地訪問存儲器子系統(tǒng)。然而,本發(fā)明并不限于任何特定的策略。
[0026]接下來,基于在步驟106中執(zhí)行的分析,針對系統(tǒng)中的各個處理器生成108代碼。在代碼生成階段,可以靜態(tài)地分配(即,被管理為使得在設計時進行分配)存儲器;動態(tài)地分配存儲器,其中生成代碼來訪問存儲器分配API(由目標主機的操作系統(tǒng)來提供);或者靜態(tài)和動態(tài)分配的組合。在一個實施方式中,控制處理器15與操作系統(tǒng)通信,并因而與存儲器分配API通信;但是,在其它實施方式中,任何處理部件12都可以直接與存儲器分配API通信。
[0027]生成的代碼包括針對順序處理器16的目標代碼109和存儲器監(jiān)視列表110。該目標代碼包括在順序處理器16控制下多個處理部件要執(zhí)行的程序或者動作的列表。
[0028]當生成并運行針對順序處理器16和其它系統(tǒng)部件的代碼時,可能出現意料之外的行為,其中存儲器20的特定區(qū)域被分配給不同并且無關的處理。這可能是因為程序員失誤,或者因為順序處理器16正在運行來自無關的并且可能異步的協(xié)議的代碼。這樣的行為可能很難被追蹤,尤其是如果其不是在開發(fā)階段出現而是隨后在現場部署產品時出現。
[0029]因此,順序處理器16被提供有在圖2中概示的流程中生成的程序或者動作的列表,并由此可以生成上述的將要發(fā)送到處理部件12的動作啟用。經由圖2的流程還生成存儲器監(jiān)視列表110,其包含系統(tǒng)操作中各個點上的存儲器地址、存儲器數據內容和存儲器控制信號(例如讀或寫信號)的集合。順序處理器16使用該存儲器監(jiān)視列表以利用關于對存儲器20的訪問的一條或多條規(guī)則對存儲器監(jiān)視單元22編程。
[0030]因此,隨著程序執(zhí)行的進行,順序處理器16提供多個信號來對存儲器監(jiān)視單元22動態(tài)編程。例如,在處理部件完成任務時,可以規(guī)定新規(guī)則或者改變舊規(guī)則。這些信號可以包括在執(zhí)行控制處理部件12的代碼序列期間在各個點上期望出現(或者不應當出現)的存儲器地址、存儲器位置數據內容和存儲器控制信號。
[0031]存儲器監(jiān)視單元22經由總線21 (其可以是許多總線和/或事實上其它互連器)連接到存儲器20,并由此能夠檢測處理部件進行的存儲器訪問,并且應用存儲器監(jiān)視列表110中規(guī)定的規(guī)則。如果規(guī)則中的一條或更多條被違反,則可以按照以下描述的生成警告信號。
[0032]例如,可以被編程以應用禁止對一個或者一組存儲器地址的訪問的規(guī)則。因此,存儲器監(jiān)視單元22可以檢測存儲器訪問中規(guī)定的地址,并且如果該地址與被禁止地址列表中的一個地址相匹配時將該存儲器訪問標志為違反規(guī)則。可以通過分析地址的最高有效位中的僅僅一位或更多位,檢測對一組地址中的任意地址的訪問。而且,這些地址可以僅僅針對特定類型的處理部件被禁止訪問。因此,如果存儲器訪問源自第一類型的處理部件(允許該類型的處理部件訪問該地址),則可以授權存儲器訪問;如果存儲器訪問源自第二類型的處理部件(其對該地址的訪問被禁止),則可以認為存儲器訪問違反了規(guī)則。
[0033]在另一個實施方式中,可以應用規(guī)則,從而如果對特定地址的存儲器訪問為特定類型,則其被禁止。例如,存儲器控制線可以標識訪問是讀操作還是寫操作。特定地址可以被指定為只讀,因此對這些地址的任何寫操作可以認為是違反了存儲器訪問規(guī)則。
[0034]在進一步的實施方式中,存儲器監(jiān)視單元22可以通過監(jiān)控任何存儲器訪問中的指定存儲器位置處的數據來實施規(guī)則。例如,規(guī)則可以規(guī)定在特定存儲器地址的數據采用特定值。該值可以是用于使系統(tǒng)正確運行而要求的控制值,或者用來測試系統(tǒng)是否正確運行的任意值(用于防止惡意程序對存儲器覆寫的技術)。如果存儲器訪問向該存儲器地址寫入不同的值,或者從該存儲器地址讀取不同的值,則可以認為已經違反了規(guī)則。
[0035]為了實施這些規(guī)則,存儲器監(jiān)視單元22可以包含多個比較器,以便將數據、地址、始發(fā)處理部件和/或存儲器訪問類型與可能違反存儲器監(jiān)視列表110中規(guī)定的規(guī)則的那些參數的值進行比較。存儲器監(jiān)視單元22可以包含一個或多個比較器組,其可以邏輯組合以給出復雜的觸發(fā)。
[0036]如果存儲器監(jiān)視單元22發(fā)現存儲器訪問已經違反了規(guī)則中的一條(例如,比較器檢測到與被禁止訪問相匹配的存儲器訪問),則其可以生成在系統(tǒng)10中可以以各種方式使用的警告信號(也被稱為存儲器違規(guī)觸發(fā))。
[0037]例如,警告信號可以被施加給斷點模塊,其將“中斷”軟件執(zhí)行并且在系統(tǒng)“調試”階段向外部系統(tǒng)輸出跟蹤數據,使得程序員能夠發(fā)現問題。在進一步的實施方式中,警告信息可以被傳遞到中斷控制器以生成系統(tǒng)中斷(其可以被傳遞到控制處理器)和/或順序處理器16以觸發(fā)異常處理例程來按照可控的方式處理存儲器違規(guī)。
[0038]根據本發(fā)明的實施方式,可以在開發(fā)期間為了調試而提供的預先存在的跟蹤模塊中實現存儲器監(jiān)視單元22。也就是說,在很多嵌入式系統(tǒng)中(例如,基于來自ARM Limited的處理器和總線技術的那些系統(tǒng)),通常具有被稱為跟蹤模塊的IP塊。在ARM技術中,這可以是“系統(tǒng)跟蹤模塊”(System Trace Module, STM)或者“擴展跟蹤模塊”(Extended TraceModule, ETM)。這些IP塊通常包含可以由外部調試器來編程的一組比較器,以與一組條件相匹配接著導致系統(tǒng)斷點(即,暫停軟件執(zhí)行以允許程序員檢查直至斷點的跟蹤數據)。通常,跟蹤模塊由外部調試系統(tǒng)經由符合IEEE 1149.1標準測試訪問端口和邊界掃描架構的JTAG端口來編程?,F代嵌入式系統(tǒng)設計的一個重要方面是這類跟蹤硬件被理所當然地并入,然而可以通過在已編程控制下將其關閉,來使功耗最小。也就是說,通過JTAG端口上的信號來使能跟蹤硬件,并且通過該端口向所附接的諸如ARM D-Stream JTAG接口模塊和DS5跟蹤和調試軟件這樣的監(jiān)控系統(tǒng)傳輸跟蹤信息。當開發(fā)完成時,該硬件被關閉。
[0039]根據本發(fā)明的實施方式,可以改造該預先存在的跟蹤電路,以被系統(tǒng)10自身內部地訪問。例如,可以將跟蹤電路的輸入和輸出送往系統(tǒng)互連器18,使得該電路可以被順序處理器16訪問,或許還有通常所使用的JTAG端口。按此方式,跟蹤電路可以被順序處理器16編程,或者被適于實現存儲器監(jiān)視列表110中列出的規(guī)則的任何其它硬件部件來編程。由此跟蹤電路可以適于執(zhí)行存儲器監(jiān)視單元22要求的功能,并且可以在基本上不增加系統(tǒng)10中要求的硬件數量的情況下提供本發(fā)明的功能。
[0040]因此,本發(fā)明的實施方式提供了多處理器系統(tǒng)中的方法和裝置,從而在硬件部件中創(chuàng)建和實施與存儲器訪問有關的規(guī)則的集合。這些規(guī)則可以被動態(tài)地更新,例如在這些處理部件執(zhí)行的任務完成之后,通過用于控制多處理部件的順序處理器(或者定序器)16來動態(tài)更新。
[0041]本領域技術人員將認識到,在不脫離所附權利要求書所限定的本發(fā)明的范圍的前提下,可以對上述實施方式作出各種修改和替換。
【權利要求】
1.一種多處理器系統(tǒng)中的方法,所述系統(tǒng)包含多個處理部件、各個所述處理部件所訪問的存儲器以及適于生成所述多個處理部件要執(zhí)行的代碼序列的定序器,所述方法包括以下步驟: 在執(zhí)行所述代碼序列期間接收多個信號,所述信號指示在進一步執(zhí)行所述代碼序列期間在實例中將要應用的多個存儲器訪問規(guī)則; 所述實例中,針對所述多個處理部件的存儲器訪問應用所述存儲器訪問規(guī)則;以及 在所述處理部件的存儲器訪問違反所述規(guī)則中的一條或多條的情況下,生成警告信號。
2.根據權利要求1所述的方法,其中,所述多個信號包括指示一個或多個存儲器地址以及在這些一個或多個存儲器地址的預期數據內容的一個或多個信號。
3.根據權利要求1或2所述的方法,其中,所述多個信號包括指示特定存儲器地址和期望訪問所述特定存儲器地址的處理部件的一個或多個信號。
4.根據前述權利要求中的任一項所述的方法,所述方法進一步包含以下步驟: 在生成所述警告信號時,采取動作來處理所述一個或多個違反規(guī)則的后果。
5.根據權利要求4所述的方法,其中,所述動作包括以下中的一個或多個: 暫停執(zhí)行所述代碼序列的一部分或者全部; 輸出在所述違反之前的存儲器訪問的跟蹤數據;以及 觸發(fā)異常處理例程。
6.根據前述權利要求中的任一項所述的方法,其中,如果處理部件的存儲器訪問指定了禁止該處理部件訪問的存儲器地址,則認為出現違反。
7.根據前述權利要求中的任一項所述的方法,其中,如果存儲器訪問指定了對只讀的存儲器地址的寫動作,則認為出現違反。
8.根據前述權利要求中的任一項所述的方法,其中,如果存儲器訪問指定了與所述存儲器訪問規(guī)則中的一條所指定的值不同的數據值,則認為出現違反。
9.根據前述權利要求中的任一項所述的方法,所述方法進一步包括以下步驟: 在連接到所述存儲器的一條或多條總線上檢測存儲器訪問。
10.根據前述權利要求中的任一項所述的方法,其中,從所述定序器接收所述多個信號。
11.根據權利要求10所述的方法,其中,隨著所述代碼序列執(zhí)行的進行,所述多個信號動態(tài)地更新所述存儲器訪問規(guī)則。
12.根據前述權利要求中的任一項所述的方法,在為了調試而提供的跟蹤數據獲取電路上執(zhí)行所述方法。
13.一種在多處理器系統(tǒng)中使用的硬件部件,所述硬件部件適于執(zhí)行根據前述權利要求中的任一項所述的方法。
14.一種多處理器系統(tǒng),所述多處理器系統(tǒng)包括: 多個處理部件; 各所述處理部件所訪問的存儲器; 適于生成所述多個處理部件要執(zhí)行的代碼序列的定序器;以及 權利要求13所述的硬件部件。
【文檔編號】G06F15/16GK103593320SQ201310180544
【公開日】2014年2月19日 申請日期:2013年3月29日 優(yōu)先權日:2012年3月30日
【發(fā)明者】E·烏伊貢, P·庭達爾 申請人:優(yōu)北羅墨爾本有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阜康市| 万年县| 徐闻县| 邵阳县| 万宁市| 望都县| 台北市| 黄大仙区| 博湖县| 大化| 腾冲县| 马龙县| 通州区| 太仆寺旗| 永平县| 策勒县| 盐源县| 无极县| 格尔木市| 岳阳市| 松桃| 潜山县| 民乐县| 长兴县| 银川市| 留坝县| 鄂托克旗| 宁远县| 武汉市| 湾仔区| 炎陵县| 龙州县| 贡觉县| 凉山| 永宁县| 鲁山县| 福安市| 赤水市| 新郑市| 宁夏| 沛县|