用于訪問共享存儲器中的數據的機制和方法
【技術領域】
[0001]本發明涉及客戶端訪問共享存儲器中的數據的機制和方法。
【背景技術】
[0002]線路可替換單元(LRU)是諸如車輛或航空器的更大單元的模塊化組件,并且設計成用來保證它們能夠在故障的情況下被交換和/或被替換的規范。航空器的LRU例如可包含完全被包含的系統、傳感器、無線電或其他輔助設備以管理和/或操作航空器功能。在航空器環境中,LRU可設計成按照特定的操作、互操作性,和/或諸如由ARINC串聯標準所限定的那些的形狀因數標準來操作。
[0003]多個LRU可由用來訪問或交換公共或共享的存儲器中的數據的飛行控制計算機或其他計算機系統的數據網絡來互連。飛行控制計算機或其他計算機系統可進一步管理和/或操作航空器功能。
【發明內容】
[0004]在一個實施例中,用于由至少一個客戶端訪問共享存儲器中的數據的機制,該機制包含共享存儲器中的數據到至少一個主題(topic)的分配,該分配通過預定固定地址是可訪問的,該至少一個主題具有多個緩沖器,緩沖器的數量等于訪問該至少一個主題的客戶端的數量再針對訪問該至少一個主題的每個服務器加二,每個客戶端和每個服務器具有主動訪問指針,并且主動訪問指針導向器用來基于來自客戶端或服務器的事務請求來將主動訪問指針指引到緩沖器。一個緩沖器常常包含共享存儲器中的最新數據,并且至少一個緩沖器常常可用來訪問共享存儲器中的數據。另外,由主動訪問指針導向器僅使用機器匯編語言事務(machine assembly language transact1n)在緩沖器之間分配主動訪問指針,無需復制在操作系統等級的數據。
[0005]在另一個實施例中,用于由至少一個客戶端訪問共享存儲器中的數據,該方法包含將共享存儲器中的數據分配給至少一個主題;指派單個預定地址以訪問每一個至少一個主題;分配用于每一個至少一個主題的多個緩沖器,其等于訪問該至少一個主題的客戶端的數量再針對訪問該至少一個主題的每個服務器加二;并且通過將每個相應的客戶端或服務器的主動訪問指針分配給緩沖器來響應來自客戶端或服務器的至少一個的事務請求。該數據經由緩沖器來訪問,無需復制在操作系統等級的數據。
[0006]技術方案1:一種用于由至少一個客戶端訪問共享存儲器中的數據的機制,包括:
[0007]共享存儲器中的數據到至少一個主題中的分配,該分配通過預定固定地址是可訪問的;
[0008]該至少一個主題具有多個緩沖器,緩沖器的數量等于訪問該至少一個主題的客戶端的數量對于訪問該至少一個主題的每個服務器加二;
[0009]每個客戶端和每個服務器具有主動訪問指針;以及
[0010]主動訪問指針,用來基于來自客戶端或服務器的事務請求將主動訪問指針指引到緩沖器;
[0011]其中一個緩沖器常常包含共享存儲器中的最新數據,并且至少一個緩沖器常常可用來訪問共享存儲器中的數據;以及
[0012]其中由主動訪問指針導向器僅使用的機器匯編語言事務在緩沖器之間分配該主動訪問指針,無需復制在操作系統等級的數據。
[0013]技術方案2:技術方案I的所述機制,其中該機制是飛行管理系統。
[0014]技術方案3:技術方案I的所述機制,其中多個主題排列在共享存儲器中。
[0015]技術方案4:技術方案I的所述機制,其中該至少一個主題和緩沖器的數量在共享存儲器的初始化期間來預定。
[0016]技術方案5:技術方案I的所述機制,其中該至少一個主題或緩沖器的數量中的至少一個依據訪問該至少一個主題的客戶端和服務器的集體的數量在運行時間期間來限定。
[0017]技術方案6:技術方案I的所述機制,其中客戶端或服務器的至少一個訪問與所指引的主動訪問指針緩沖器相關聯的數據。
[0018]技術方案7:技術方案6的所述機制,其中響應于完整的事務請求,該主動訪問指針導向器將用于新的事務的主動訪問指針指引到包括最新數據的不同的緩沖器。
[0019]技術方案8:—種用于由至少一個客戶端訪問共享存儲器中的數據的訪問,該方法包括:
[0020]將該共享存儲器中的數據分配到至少一個主題中;
[0021 ] 指派單個預定地址以訪問每個至少一個主題;
[0022]分配用于每個至少一個主題的多個緩沖器,等于訪問該至少一個主題的客戶端的數量再針對訪問該至少一個主題的每個服務器加二,以及
[0023]通過將用于每個相應的客戶端或服務器的主動訪問指針分配給緩沖器來響應于來自客戶端或服務器的至少一個的事務請求;
[0024]其中該數據經由該緩沖器來訪問,無需復制在操作系統等級的數據。
[0025]技術方案9:技術方案8的所述方法,其中經由該緩沖器訪問該數據防止數據鎖定。
[0026]技術方案10:技術方案8的所述方法,其中將該數據分配到至少一個主題中,指派單個預定地址,以及分配用于每個至少一個主題的多個緩沖器發生在該共享存儲器的初始化期間。
[0027]技術方案11:如技術方案8所述的方法,其中所述將所述數據分配到至少一個主題中,或所述分配用于每個至少一個主題的多個緩沖器中的至少一個基于訪問所述至少一個主題的客戶端和服務器的集體的數量發生在運行時間期間。
[0028]技術方案12:技術方案8的所述方法,其中響應于事務請求進一步包括將用于每個相應的客戶端的該主動訪問指針指引到包括該共享存儲器中最新數據的緩沖器。
[0029]技術方案13:技術方案12的所述方法,進一步包括該客戶端或服務器中的至少一個執行在所訪問的數據上的事務。
[0030]技術方案14:技術方案13所述方法,其中該執行事務包括讀取該數據、將新的數據寫入該緩沖器或將該緩沖器數據存儲到該共享存儲器中的至少一個。
[0031]技術方案15:技術方案14所述方法,進一步包括響應于完成的事務請求,更新將用于每個相應的客戶端或服務器的該主動訪問指針指引到包括最新數據的不同的緩沖器。
【附圖說明】
[0032]在附圖中:
[0033]圖1是按照本發明的一個實施例、航空器的數據通信網絡的示意圖。
[0034]圖2是按照本發明的一個實施例、客戶端訪問主題的緩沖器的示意圖。
[0035]圖3是按照本發明的一個實施例、用于客戶端訪問緩沖器中的最新數據的機制的示意圖。
[0036]圖4是按照本發明的一個實施例、用于客戶端和服務器對在緩沖器中數據執行讀取/寫入事務的機制的示意圖。
【具體實施方式】
[0037]本發明的所描述的實施例在具有全部在單個系統上操作直接訪問公共或共享存儲器的航空器的多個傳感器、系統、軟件組成部分和/或物理組件的航空器的環境中來圖示。然而,本發明的實施例可在使用客戶端和服務器訪問公共或單個共享存儲器的任何環境中實現。此外,雖然下面描述了“客戶端”和“服務器”,但是將理解,所描述的特定實施例是客戶端和服務器二者的非限制示例。另外,雖然描述了 “客戶端”,但是可包含來自共享存儲器的數據的“消耗裝置”的任何組件。同樣地,雖然描述了 “服務器”,但是可包含共享存儲器的數據的“產生器”的任何組件。客戶端和服務器的附加示例可包含遠程或局部離散單元、應用、計算機過程、處理線程(thread)等或其任何組合,其訪問共享存儲器。例如,多個“客戶端”可全部駐留在單個計算機或計算單元,從而訪問公共的隨機存取存儲器(RAM)。
[0038]圖1示出按照本發明的一個實施例的數據通信系統24的示意性圖示。一個或多個線程或計算機過程26,各自包含一個或多個客戶端18,可以通信地訪問示為共享RAM的共享存儲器22。另外,一個或多個線程或計算機過程28可各自包含一個或多個服務器20,也可以訪問共享存儲器22。在這個意義上,每個過程26、28、客戶端18和服務器20可以訪問共享存儲器22。另外,雖然圖示了僅示出相應的客戶端18或服務器20的一些過程26、28,但是本發明的實施例可包含其中包含單個過程26、28內的客戶端18和/或服務器20的組合的過程26、28。雖然描述了服務器20,但是本發明的實施例可包含任何計算系統、計算系統運行ARINC653操作系統、飛行管理系統、飛行計算機等。
[0039]存儲器33可包含隨機存取存儲器(RAM)、閃速存儲器或一個或多個不同類型的便攜式電子存儲器等或這些類型的存儲器的任何適合組合。客戶端18和/或服務器20可以是可操作地與存儲器22耦合,使得客戶端18和/或服務器20或在其上的任何計算機程序或過程可訪問存儲器(例如“共享存儲器” 22)的至少一部分。
[0040]如本文所使用的,“程序”和/或“過程”可包含具有用于控制相應的客戶端18、服務器20的至少一個的管理和/或操作或航空器功能的可運行指令的計算機程序的一部分或全部。程序和/或過程可包含計算機程序產品,其可包含用于攜帶或具有機器可運行指令或在其上存儲的數據結構的機器可讀媒體。這種機器可讀媒體可以是任何可用媒體,其能夠通過通用或專用計算機或具有處理器的其他機器來訪問。通常,這種計算機程序可包含例行程序、程序、對象、組成部分、數據結構、算法等,其具有執行特定任務或實現特定抽象數據類型的技術效果。機器可運行指令、關聯數據結構和程序表示用于運行如本文所公