用于访问共享存储器中的数据的机制和方法
【技术领域】
[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的至少一个的管理和/或操作或航空器功能的可运行指令的计算机程序的一部分或全部。程序和/或过程可包含计算机程序产品,其可包含用于携带或具有机器可运行指令或在其上存储的数据结构的机器可读媒体。这种机器可读媒体可以是任何可用媒体,其能够通过通用或专用计算机或具有处理器的其他机器来访问。通常,这种计算机程序可包含例行程序、程序、对象、组成部分、数据结构、算法等,其具有执行特定任务或实现特定抽象数据类型的技术效果。机器可运行指令、关联数据结构和程序表示用于运行如本文所公