CN116931824A - 以计算机辅助的方式运行存储单元和执行应用程序的方法 - Google Patents
以计算机辅助的方式运行存储单元和执行应用程序的方法 Download PDFInfo
- Publication number
- CN116931824A CN116931824A CN202310436721.6A CN202310436721A CN116931824A CN 116931824 A CN116931824 A CN 116931824A CN 202310436721 A CN202310436721 A CN 202310436721A CN 116931824 A CN116931824 A CN 116931824A
- Authority
- CN
- China
- Prior art keywords
- data
- application
- ads
- data set
- application data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 230000015654 memory Effects 0.000 title claims abstract description 85
- 238000007689 inspection Methods 0.000 claims abstract description 52
- 238000004590 computer program Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 65
- 238000013500 data storage Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 17
- 230000008901 benefit Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000012447 hatching Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 101000879675 Streptomyces lavendulae Subtilisin inhibitor-like protein 4 Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 101000726148 Homo sapiens Protein crumbs homolog 1 Proteins 0.000 description 1
- 102100027331 Protein crumbs homolog 1 Human genes 0.000 description 1
- 101000825534 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 40S ribosomal protein S2 Proteins 0.000 description 1
- 101000880156 Streptomyces cacaoi Subtilisin inhibitor-like protein 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
- Detection And Correction Of Errors (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的主题是一种用于以计算机辅助的方式运行存储单元的方法,其中,将数据存储在存储单元中,并且在存储之前对数据进行编码,或者从存储单元中调取数据,并且在调取之后对数据进行解码。为了对数据进行第一次编码,从可能的差异特征数据的存储库产生或选择应用数据集的至少一个组,应用数据集包含具有用于应用程序的相同的应用数据的数据部分和分别具有不同的差异特征数据的检查数据部分。对每个应用数据集进行编码和存储。通过调取应用数据集并且进行解码来进行数据的调取。通过对应用数据集进行编码和存储来进行数据存储。此外,本发明包括一种用于以计算机辅助的方式在冗余的计算实体中多次执行应用程序的方法、计算机程序产品及提供装置。
Description
技术领域
本发明涉及一种用于以计算机辅助的方式运行存储单元的方法,在所述方法中,
·将数据存储在存储单元中,并且在存储之前对数据进行编码,
·从存储单元中调取数据,并且在调取之后对数据进行解码。
此外,本发明涉及一种用于在冗余的计算实体中以计算机辅助的方式多次执行应用程序的方法,在所述方法中,为了执行所需要的应用数据集,从存储单元中调取以上述方式编码的一组应用数据集中的每个应用数据集并且进行解码。最后,本发明涉及一种计算机程序产品以及用于这种计算机程序产品的提供装置,其中,这种计算机程序产品配备有用于执行所述方法的程序命令。
背景技术
原则上,在与安全相关的计算环境中以计算机辅助的方式运行的与安全相关的系统必须保证在从存储单元中进行数据的存储器调取时不发生错误。在此,不能使用损坏的数据进行数据处理。在本发明的范围内,与安全相关应当理解为与系统的运行安全相关(也称为Safety)。例如,铁路应用被视为是所提到的该术语意义上的与安全相关的系统。
为了保护与安全相关的计算环境,已知在计算机上的多个计算实体中,仅可靠地安装用于处理相关应用的部件。然后,如果应用在多个计算实体中并行运行,则可以通过投票(Voting)以本身已知的方式确定在计算中是否发生错误,由此也可以发现存储错误。
根据WO 2014/009243 A2,描述了一种方法和计算机,其具有用于在由计算机形成的计算环境中处理应用的检查算法。在计算机上安装有冗余执行的应用程序,从而检查算法能够通过比较计算结果来发现错误(如所提到的,也称为投票)。然而,这种方法与相当大的硬件开销相关联,并且在特定情况下不允许进行可靠的错误识别。
发明内容
本发明要解决的技术问题在于,给出一种用于以计算机辅助的方式运行存储单元的方法以及用于以计算机辅助的方式执行应用程序的方法,在所述方法中使用这种存储单元,利用所述方法,可以改善对所使用或者处理的数据的完整性的检查的可靠性,并且特别是可以识别处理错误。此外,本发明要解决的技术问题在于,给出一种计算机程序产品以及用于这种计算机程序产品的提供装置,其可用于执行前面提到的方法。
根据本发明,上述技术问题利用开头给出的用于以计算机辅助的方式运行存储单元的方法通过以下方式来解决,即,为了对数据进行第一次编码,
·从可能的差异特征数据的存储库产生或者选择至少一组应用数据集,其包含具有用于应用程序的相同的应用数据的数据部分和具有相应地不同的差异特征数据的检查数据部分;
·对每个应用数据集进行编码和存储,
并且通过对应用数据集进行调取和解码来进行数据的调取,以及通过对应用数据集进行编码和存储来进行数据的存储。
形成分别包含具有相同的应用数据的数据部分的应用数据集的组具有如下优点,即,可以冗余地执行计算操作、即对使用相应地相同的应用数据的应用程序的处理。如果在应用数据集中的一个中识别出错误,则可以将相关的应用数据集排除在处理之外,而不需要由于此而立即中断方法流程。因为可以使用其它应用数据集用于方法的执行,即对相关的应用程序的处理。
差异特征数据使具有相应地相同的应用数据的应用数据集可以彼此区分,并且使得能够例如准确地分配给针对相关的应用数据设置的计算实体。由此也可以检查在将应用数据集分配给特定计算实体时是否出现了错误(称为分配错误)。这种识别出的错误也可以在方法流程中触发适当的反应。例如,应用数据集的错误分配可能导致相关的计算实体被排除在方法的执行之外。在这种情况下,其余计算实体也可以继续运行方法,因此不立即导致方法中断。
如果应用程序需要多个应用数据集(并且这是规则),则特别是每一组应用数据集可以再次获得相同的差异特征数据。从差异特征数据的存储库中选择这些差异特征数据,以这种方式,通过差异特征数据,将应用数据集分配给具有特定差异性的特定计算实体(换言之,将存储库中的特定类型的差异特征数据分配给的计算实体)。这已经大大提高了运行可靠性,并且由于差异特征数据的有限的存储库,可以利用很少的计算开销来实现。
如果结合本申请一般地提到数据,则数据可能具有任意内容。相比之下,应用数据、差异特征数据、冗余数据、计数数据等应当理解为特定的数据,即指定用途的数据。此外,还区分
·可变数据:与运行时间相关地占据或者改变这些数据(特别是应用数据)
·静态数据:程序数据(特别是描述应用程序的应用数据)。
包含应用数据的数据部分(简称为应用数据部分)可以被执行(作为用于应用程序的运行的指令的静态数据)或者被处理(用于应用程序的要处理的可变数据)。优选包含差异特征数据和/或冗余数据和/或计数数据的检查数据部分优选用于通过服务程序进行的处理,这些服务程序是为了检查数据的完整性而调取的(下面将对此进行更详细的说明)。
应用数据集的编码存储有利地提高了在处理中(处理错误)或者在存储中(存储错误)识别出数据错误的概率。尤其是例如数据存储期间的单个Bit-Kipper(位翻转)将在解码过程中导致不同的结果,使得编码的应用数据集与要编码的应用数据集明显不同。如果发现这种错误,则执行已经提到的措施,以便方法保证所需要的运行安全。
由此实现了一种安全机制,这种安全机制在要解决的技术问题的意义上改善了存储单元的运行以及应用程序(在此是服务程序或者实用程序(Nutzprogram),下面将对此进行更详细的说明)的执行。特别是与安全相关的应用,例如必须满足特定的安全级别(也称为安全等级SIL-1…SIL-4或者安全综合等级(Safety Integrity Level))作为批准先决条件的铁路应用,有利地受益于这种改善。在本发明的范围内,术语“安全”应当在运行安全(Safety)的意义上来理解。特别是,编码的着眼点首先在于运行安全,而不在于传输安全性(Security)。因此,根据本发明,优选提供一种编码方法,其在编码以及解码中实现高性能(具有编码时间和解码时间短的效果),而不保证在没有授权的情况下对编码进行解密的高难度。
一般而言,利用根据本发明的用于运行存储单元以及用于执行应用程序的方法,通过检查包含用于应用程序的数据的数据部分以及包含使检查变得容易的其它标准的检查数据部分,可以确定哪些数据集实际上或者至少潜在地是损坏的,因此在执行应用程序、特别是实用程序时危及运行安全。通过输出错误来标记相关的数据集,并且优选在进一步的过程中将其排除在数据处理之外。
换言之,根据本发明,可以说将运行安全与数据集本身耦合。为此,根据本发明,数据集设置有适当的检查数据部分。这有利地可以实现,可以将数据集存储在同一个存储单元上,即使在出于运行安全的原因过程并行(冗余地)运行时。特别是,由此,为了存储数据集以及处理应用程序,可以使用在市场上可以获得的硬件部件,即所谓的COTS部件(COTS代表Commercial off-the-shelf(市场上的现货)),而在此不危及对运行安全的要求。因此,这种部件例如也可以在铁路技术应用中使用,并且取代专门的系统。COTS部件有利地在购买时是低成本的,并且在需要时也可以更容易地更换,并且可以集成到云解决方案中。
由此实现了一种安全机制,这种安全机制在要解决的技术问题的意义上改善了存储单元的运行以及应用程序(在此是服务程序或者实用程序,下面还要对此进行更详细的说明)的执行。如已经说明的,特别是与安全相关的应用有利地受益于这种改善。
一般而言,利用根据本发明的用于运行存储单元以及用于执行应用程序的方法,通过检查包含用于应用程序的数据的数据部分以及包含使检查变得容易的其它标准的检查数据部分,可以确定哪些数据集实际上或者至少潜在地是损坏的,因此在执行应用程序、特别是实用程序时危及运行安全。通过输出错误来标记相关的数据集,并且优选在进一步的过程中将其排除在数据处理之外。
换言之,根据本发明,可以说将运行安全与数据集本身耦合。为此,根据本发明,数据集设置有适当的检查数据部分。这有利地可以实现,可以将数据集存储在同一个存储单元上,即使在出于运行安全的原因过程并且行(冗余地)运行时。特别是,由此,为了存储数据集以及处理应用程序,可以使用在市场上可以获得的软件和硬件部件,即所谓的COTS部件(COTS代表Commercial off-the-shelf(市场上的现货)),而在此不危及对运行安全的要求。因此,这种部件例如也可以在铁路技术应用中使用,并且取代专门的系统。COTS部件有利地在购买时是低成本的,并且在需要时也可以更容易地更换,并且可以集成到云解决方案中。
结合本发明,“计算机辅助的”或者“计算机实现的”可以理解为如下方法的实现,在该方法中,至少一个计算机或者处理器执行该方法的至少一个方法步骤。
结合本发明,“计算环境”可以理解为由诸如计算机、存储单元、程序的部件以及要利用程序处理的数据构成的基础设施,这些部件和数据用于执行有任务要完成的至少一个应用。特别是,基础设施也可以由所提到的部件的网络构成。
“计算实体”(或者简称为实体)在计算环境中可以理解为可以分配给应用并且可以执行应用的功能单元。在执行应用时,该功能单元形成物理地和/或虚拟地自成一体的系统。
表述“计算机”或者“computer”涵盖所有具有数据处理特性的电子设备。计算机例如可以是个人计算机、服务器、手持计算机、移动无线电设备以及以计算机辅助的方式处理数据的其它通信设备、处理器和用于进行数据处理的其它电子设备,其优选也可以通过接口连接成网络。
结合本发明,“处理器”例如可以理解为转换器、用于产生测量信号的传感器或者电子电路。处理器特别是可以是中央处理器(英语:Central Processing Unit(中央处理单元),CPU)、微处理器、微控制器或者数字信号处理器,其可能与用于存储程序命令和数据的存储单元组合。处理器也可以理解为虚拟化的处理器或者软CPU(Soft-CPU)。
结合本发明,“存储单元”例如可以理解为工作存储器(英语:Random-AccessMemory(随机存取存储器),RAM)或者数据存储器(硬盘或者数据载体)形式的计算机可读存储器。
“接口”可以通过硬件技术来实现,例如以有线的方式或者作为无线连接来实现,和/或通过软件技术来实现,例如作为一个或多个计算机程序的各个程序模块或者程序部分之间的交互来实现。
“云”应当理解为用于“云计算”的环境(也称为计算机云或者数据云)。这意味着通过诸如因特网的网络的接口使得可用的IT基础设施。其通常包括存储空间、计算能力或者软件作为服务,而不需要这些安装在使用云的本地计算机上。在云计算的框架中提供的服务涵盖了整个信息技术领域,尤其是包括基础设施、平台和软件。
“程序模块”应当理解为能够实现方法步骤的根据本发明的程序运行的各个功能单元。这些功能单元可以在单个计算机程序中或者在多个相互通信的计算机程序中实现。在此实现的接口可以通过软件技术在单个处理器内实现,或者如果使用多个处理器,可以通过硬件技术来实现。
除非在下面的描述中另有说明,否则术语“创建”、“确定”、“计算”、“生成”、“配置”、“修改”等优选涉及产生和/或改变数据和/或将数据转换为其它数据的过程。在此,数据特别是作为物理参量存在,例如作为电脉冲或者模拟的电气参量。所需要的指令在计算机程序中被组合成软件。此外,术语“发送”、“接收”、“读取”、“读出”、“传输”等涉及各个硬件部件和/或软件部件通过接口的相互作用。
替换地,根据本发明,上述技术问题还利用开头给出的用于在冗余的计算实体中以计算机辅助的方式多次执行应用程序的方法通过以下方式来解决,即,
·为了在对应用数据集解码之后检查数据,如果一个应用数据集中的差异特征数据不同于存储库中的、即针对该计算实体设置的存储库中的该计算实体的所有可能的差异特征数据,则相应地针对该应用数据集确定错误,
·如果确定没有错误,则利用相关组中的每个应用数据集的数据部分执行应用程序,
和/或
·根据本发明至少对包含通过执行应用程序而改变后的或者产生的数据部分的应用数据集进行编码,并且存储在存储单元中。
上面已经详细说明了在通过应用程序处理应用数据集时使用差异特征数据来识别错误。为了处理应用数据集,对应用数据集进行解码,并且在将应用数据集再次存储到存储单元之前,再次对应用数据集进行编码。此外,可以通过执行应用程序来改变应用数据集,或者形成具有新产生的数据部分的应用数据集。然后,根据上面提到的存储方法对应用数据集进行编码,并且将其存储在存储单元中。
在检查差异特征数据时,至少检查应用数据集的识别出的差异特征数据是否与存储库中的所有可能的差异特征数据(即对于相关计算实体可能的差异特征数据)不同。然后确定错误,如果这些差异特征数据对应于预期的差异特征数据,则假定不存在错误。优选对于一个计算实体,也仅允许存储库中的一种类型的差异特征数据。然而,也可以分别针对不同的差异特征数据,在不同的区域中保留计算实体,以便更好地利用计算实体(下面还要对此进行更详细的说明)。
在检查数据时,例如,如果原则上存储库中的所有差异特征数据都可以用于特定的计算实体,则可以检查应用数据集中的差异特征数据是否不同于存储库中的所有可能的差异特征数据。但是也可以针对特定的计算实体保留存储库中的特定差异特征数据。然后,仅检查差异特征数据是否与计算实体的这些保留的差异特征数据不同。在此,通过确定错误的差异特征数据而发现错误的概率有利地提高。
根据本发明的一个设计方案设置为,存储库中的不同的差异特征数据包含不同的编码常数和解码常数。
编码常数在编码算法中使用,并且解码常数在解码算法中使用。这样的编码算法和解码算法本身是已知的。借助这些常数,可以有利地实现高性能的编码和解码。在此仅涉及获得运行安全(Safety),而不涉及获得针对恶意攻击的足够的安全性(Security),其仅在明显更高的计算开销和与此相关联的计算性能损失的情况下才有可能。
如果同时使用编码常数和解码常数作为差异特征数据,则这具有在编码中包含应用数据集的差异的优点。这意味着,对于编码和解码,使用一对常数,它们同时定义相关应用数据集的差异。因此,利用这些常数,同时满足两个功能性,这节省了计算开销,因此提高了方法的性能。
根据本发明的一个设计方案设置为,差异特征数据包括匹配运算符,匹配运算符用于将通过解码产生的数据部分匹配于解码之前的数据部分。
如果编码的以及随后解码的应用数据集的信息内容(例如位宽)大于编码的应用数据集的信息内容,则需要匹配运算符。然后,在通过要执行的应用对应用数据集进行解码之后,可以不考虑多余的信息,可以说必须通过匹配运算符截取多余的信息。一般而言,对于编码和解码算法,因此得到如下函数方程
((AD opA C_enc)opB C_dec)opC Y==AD
其中,
AD 应用数据集
opA 编码运算符
C_enc编码常数
opB解码运算符
C_des解码常数
opC 匹配运算符
Y 期望的信息内容(位宽)
根据本发明的一个设计方案设置为,编码运算符是用来执行乘法的指令。
根据本发明的另一个设计方案设置为,解码运算符(特别是还有编码运算符)是用来作为解码运算(特别是还作为编码运算)执行乘法的指令,并且匹配运算符适合用于在解码之后将数据部分限制在其原始长度(位宽)。
如果选择乘法作为解码运算符(特别是还作为编码运算符),则其涉及可以在计算机中以高性能有利地实现的运算。特别是,如果解码常数(特别是还有编码常数)大于1并且是整数,则运算可以通过计算技术特别简单地实现。然而,通过两次乘法,编码的和随后解码的数据部分的长度变得更大。因此,在解码之后,可以说必须从解码的整个结果中截取数据部分的实际信息内容。
为此,优选适合模(Modulo)运算mod(也可以称为长度限制运算),在二进制表达的情况下,模运算有利地截断多余的位,以获得期望的位宽Y,并且不改变其余剩余的位的内容。为了存储编码状态下的多余的信息(冗余信息)(因为只有借助该冗余信息才能成功解码),必须在应用数据集中为这些数据(位)提供附加的存储空间。为了进一步提高方法的安全性,可以附加地检查作为冗余数据的附加的存储空间中的数据的错误(下面还要对此进行更详细的说明)。
在考虑将乘法作为编码和解码运算并且将模运算作为匹配运算符的情况下,对于前面用于编码和解码的函数方程,得到如下表达式:
(AD·C_enc·C_dec)mod Y==AD
其中,
AD应用数据集
C_enc编码常数>1
C_dec解码常数>1
mod Y模运算
Y期望的位宽
编码常数和解码常数是一个数字对,其特别是也表示相关应用数据集的差异。选择该数字对,使得在将应用数据集与编码常数相乘,随后将编码的应用数据集与解码常数相乘时,应用数据的期望的位宽Y的位针对每个位再次具有相同的值。在差异特征数据的存储库中,对于每个差异,可以提供一个编码常数和一个解码常数,其相应地形成具有所提到的特性的数字对。实验表明,在计算速度方面,可以以相对高的性能执行利用后一种函数方程的编码和解码算法。
根据本发明的一个设计方案设置为,在为了对数据进行第一次编码而以计算机辅助的方式运行存储单元时,附加地
通过执行针对存储单元的时间上的一系列计算机辅助的检查运行来监视存储单元的错误,其中,为了对数据进行第一次编码,
·产生或者选择至少一个应用数据集,
·对于每个应用数据集,附加地利用指示正在执行的检查运行的计数数据占据检查数据部分,
·对每个应用数据集进行编码和存储,
并且其中,为了在调取应用数据集并且对其进行解码之后检查正在执行的检查运行中的数据,相应地
·对于应用数据集,如果计数数据既不指示正在执行的检查运行,也不指示最近完成执行的检查运行,则确定有错误,
·如果确定没有错误,则利用指示正在执行的检查运行的计数数据占据相关应用数据部分的检查数据部分,
如果确定没有错误,则再次对相关的应用数据集进行编码和存储;
和/或
在以计算机辅助的方式执行应用程序时,根据本发明来运行存储单元,其中,从存储单元调取执行所需的应用数据集并且对其进行解码,其中,
·在对应用数据集进行解码之后,执行应用程序,
·至少对包含通过执行应用程序改变或者产生的数据部分的应用数据集进行编码,并且将其存储在存储单元中。
应用程序的执行优选可以逐步进行。这意味着,相应地至少对于应用程序的即将进行的步骤,也仅必须从存储单元中调取执行应用程序所需要的应用数据集,并且对其进行编码。当然,在处理应用程序时,逐步调取处理应用程序所需要的全部应用数据集并且对其进行解码。
如下面将描述的,本发明的这种设计方案是一种附加的安全机制,其在要解决的技术问题的意义上附加地进一步改善存储单元的运行以及应用程序的执行。如已经说明的,特别是与安全相关的应用、例如铁路应用有利地受益于这种改善。在此,仅必须出现在本发明的范围内所描述的错误中的一个,以在整体上引起错误的输出。因此,无论通过根据本发明的措施中的哪一种识别出错误,在执行应用程序(实用程序)时安全性都提高。如已经提到的,术语“安全”应当在运行安全(Safety)的意义上理解。
通过在第一次编码时将检查数据部分(如果还没有检查数据部分,则事先产生检查数据部分,或者如果已经有检查数据部分可用于相关的数据部分,则选择检查数据部分)分配给数据部分中的每个,可以将包含关于正在执行的检查运行的信息的计数数据存储在相关的数据集中。通过随后对相关的数据集进行编码,保护计数数据以及相关数据部分的其它数据在解码之前不被访问。也就是说,在编码状态下,不会意外地(例如由于故障)或者有意地(例如由于外部攻击)改变数据,并且不会在对数据进行解码时将改变识别为错误。至少在对数据集进行解码时,改变不被认为是错误的可能性极小。在这方面,更确切地说,不存在针对改变本身的保护,而是仅存在针对未发现的改变的保护。通过针对正确的编码周期性地检查存储器内容(在使用计数数据的情况下),也发现所谓的休眠的错误(schlafende Fehler)。这是指在数据存储期间例如由于存储介质的物理变化(Bit-Kipper(位翻转)等)而可能出现的错误。根据本发明,不能发现错误的低概率使得符合更高的安全级别(SEL-1…SIL-4)成为可能。
在数据集中,优选保护应用程序所需要的所有数据,即构成程序本身的数据以及作为要处理的信息的数据。
例如,由于存储错误、即在存储数据期间在存储单元上出现的错误(例如所谓的Bit-Kipper),或者由于处理错误、即在处理数据集期间出现的错误,计数数据可能被改变。然而,如果计数数据既不指示正在执行的检查运行,也不表示最近完成执行的检查运行,则于是在执行下一次检查运行时确定发生了这种改变。在这种情况下,确定出现错误。即使其原因可能无法明确地确定,并且可能对数据处理无害,出于所要达到的安全水平的原因,在确定出现错误之后,例如也输出错误和/或采取措施,该措施至少暂时禁止对有错误的数据进行进一步处理。
仅当确定没有错误时,检查数据部分中的计数数据才被正在执行的检查运行的计数数据占据,对数据集进行编码并且再次进行存储。由此同时将相关数据集标记为在相关检查运行中被检查(其中,稍后将说明如何也能够在检查运行之外利用检查数据部分中的当前的计数数据来占据数据集的可能性)。
计数数据必须具有如下的特性,即,其形成一个数列,其中,计数数据的集合的每个元素的前任和继任者相应地都是已知的。在此,原则上可以使用所有的数学数列。特别优选可以选择自然数的集合。
为了执行检查运行,优选使用执行检查运行的应用程序(服务程序)。为此,相关的应用程序(其也可以称为检查程序)访问存储单元,对数据集逐一进行解码、检查和编码,直到完全执行检查运行为止。对于确定存在错误的情况,可以通过检查程序输出错误。在此,检查程序还可以包含如下的功能,该功能包含对所确定的错误的反应,例如暂停如下的应用程序(实用程序),该应用程序使用应用的有错误的数据部分(也称为应用数据部分),因此可能潜在地导致与安全相关的错误。由此使得可以识别不同的错误源。
例如可以通过寻址各个数据集来控制检查运行的执行。如果在检查运行开始时已知所有数据集的地址,则可以按顺序调用这些数据集,直到检查运行结束为止(下面还要对此进行更详细的说明)。
如果检查运行作为整体以如下方式错误地执行,即,检查运行没有对检查运行的所有数据集进行检查,则这一点最迟将在下一个检查运行中被注意到,至少假定未检查的数据集在下一个检查运行中再次被检查。也就是说,其于是具有倒数第二个检查运行的计数数据,这在下一个检查运行期间将被注意到。由此识别出错误并且输出错误。因此,计数数据还使得能够监视检查运行本身的常规执行。由此使得可以识别另外的错误源。被归类为过时的、因此可能有错误的数据(因为未定期在检查运行中进行检查)在其完整性方面不够安全,因此这被评估为错误。
根据本发明的一个设计方案设置为,在第一次执行检查运行之前,确定计数数据的起始值。
起始值必须是所使用的数列的元素。特别是在使用自然数作为计数数据时,起始值是自然数。在此,有利的是,使用不等于一的数字,并且特别是在使用多个存储单元时,使用不同的起始值,因为这附加地降低了不同存储单元的错误的计数数据随机地一致的概率。由此有利地进一步提高了过程安全性,因为进一步降低了出现未识别出的存储错误或者处理错误的概率。
根据本发明的一个设计方案设置为,检查运行分别至少包含对在检查运行开始时可用于正在进行的方法的所有应用数据集的检查。
在所述方法的该设计方案中,在检查运行开始时确定要检查哪些数据集。随后,对所确定的数量的要检查的数据集进行检查。如果检查了所有要检查的数据集,则完成检查运行。随后,可以利用后续的计数器元素占据计数数据。可以说,通过确定检查运行的检查范围并且随后执行检查运行,可以有利地可靠地以较低的计算开销执行检查的过程。
替换地,也可以在检查运行中仅针对性地检查在上一个检查运行期间改变后的数据集。然而,这将包含对数据集的使用或者变化的监视,这将使方法的流程更加复杂。此外,在不访问所存储的数据时,也可能出现诸如Bit-Kipper的存储错误。下面还要更详细地讨论数据集的改变。
原则上,如果尤其是应用程序不需要(调取和/或改变)要检查的所有数据集,则可以执行检查运行。但是也可以与正在运行的应用程序并行地,即,在应用程序访问正在检查的所有数据集期间,执行检查运行。在这种情况下,不能检查正在处理的数据集(下面还要对此进行更详细的说明)。
根据本发明的一个设计方案设置为,一旦完成检查运行,则利用如下的计数元素占据计数数据,该计数元素跟随计数数据的用于先前的占据的计数元素。
当对检查运行包含的所有应用数据集进行了检查时,检查运行完成。这意味着,在检查运行期间,监视对哪些应用数据集进行了检查,哪些应用数据集尚未进行检查。这例如可以借助应用数据集的地址来实现,可以利用地址来识别应用数据集。
如果检查运行结束,并且利用随后的计数元素占据了提供给用于检查的应用程序的计数数据,则应用程序可以在随后的检查运行中调取更新后的计数数据。然后,在检查所存储的数据集时,可以检查数据集是否相应地包含先前的检查运行的计数数据,因为可以说应用程序通过先前的计数数据的增大而“知道”当前检查运行的计数元素。由于所检查的每个数据集中的计数数据(至少在确定没有错误时)都被设置为当前计数元素,因此根据所述方法,可以任意地多次重复检查运行。
通过在执行应用程序时也(如前面根据用于运行存储单元的方法所描述的)运行存储单元,在编码时,也利用指示当前正在执行的检查运行的计数数据,占据包含通过执行应用程序(实用程序)而改变或者产生的数据部分的应用数据集。
这具有不同的优点。如果创建了新的数据集或者改变了数据集(即,改变了现有数据集中的数据,特别是具有应用数据的数据部分),则与如下的计数数据一起存储这些数据集,这些计数数据适合用于至少在接下来的检查运行中一起检查相应的数据集。如果所存储的数据集没有错误,则在接下来的检查运行中,这些数据集也配备有适当的计数数据,以便可以将这些数据集识别为没有错误。
本发明的这种设计方案还具有如下优点,即,在与应用程序的数据处理并行进行的检查运行中不能用于检查的数据集可以被检查运行忽略,因为在通过应用程序、特别是实用程序进行处理时,这些数据集被当前的计数数据占据,该当前的计数数据使得能够在随后的检查运行中进行检查,即使当由于应用程序(实用程序或者服务程序)的并行处理而在当前的检查运行中忽略了(例如检查程序的)检查时。这特别是大大简化了检查运行的流程,因为检查运行可以在处理检查例程时简单地忽略正在处理的数据集,并且不需要在当前检查运行的稍后时间点补充进行检查。从安全的角度来看,这是合理的,因为数据的完整性也可以由应用程序(实用程序)在考虑计数数据的情况下执行(或者在可预见的将来在接下来的检查运行中执行),因此保持相关数据集最新。
根据本发明的一个设计方案设置为,在对应用数据集进行解码之后以及在执行应用程序之前检查数据时,相应地
·对于应用数据集,如果计数数据既不指示正在执行的检查运行,也不指示最近完成执行的检查运行,则确定错误,
·如果确定没有错误,则执行应用程序。
在本发明的这种设计方案中,附加地相应地在通过应用程序(实用程序)对数据进行处理时,实现通过借助检查运行对存储单元中的数据进行定期检查而实现的优点。换言之,每次从存储单元调取数据以进行处理时,检查是否在此期间出现了存储错误。由此实现附加的安全性,因为也可以识别出如下的存储错误,这些存储错误在最后一次成功的检查运行和应用程序(特别是实用程序)调用数据集之间的数据集中随机地出现。
根据本发明的一个设计方案设置为,在编码之前创建检查数据部分,使得检查数据部分附加地具有带有预先给定的冗余数据的冗余的存储空间。
如下面将要描述的,本发明的这种设计方案是一种附加的安全机制,其在要解决的技术问题的意义上附加地进一步改善存储单元的运行以及应用程序的执行。如已经说明的,特别是与安全相关的应用、例如铁路应用有利地受益于这种改善。在此,仅必须出现在本发明的范围内所描述的错误中的一个,以使得总体上输出错误。因此,无论通过哪一种措施识别出错误,执行应用程序(实用程序)时的安全性提高。如已经提到的,术语“安全”一词应当在运行安全(Safety)的意义上进行理解。
安全收益在于,方法中的预先给定的冗余数据,因为是预先给定的,因此也是已知的。对于冗余数据,冗余意味着存储应用数据不需要冗余数据。然而,由于数据量(位宽)在此增大,因此编码需要冗余数据。在此,冗余数据被通常与预先给定的冗余数据不同的新的数据占据。随后的解码需要这些新的数据。
然而,如果使用相应的编码或者解码算法,则在解码之后再次利用原始的预先给定的数据填充冗余数据。这意味着,如果不满足该条件,则确定有错误。
优选预先给定的数据仅能包含0或者1。以这种方式,利用预先给定的数据进行填充可以特别简单地以小的计算开销执行。
根据本发明的一个设计方案设置为,应用数据部分由数据字构成。
数据字(Datenwort)是计算机在处理器的算术逻辑单元中在一个步骤中可以处理的特定的数据量。如果指的是最大数据量,则将其大小称为字宽(Wortbreite)、处理宽度或者总线宽度。一个数据字优选可以具有32、64或者128位的字宽。如果应用数据部分由数据字构成,则这有利地使各个方法步骤的处理加速,由此可以以最佳性能执行根据本发明的方法。
根据本发明的一个设计方案设置为,同时使用至少两个处理器或者处理器核来执行所述方法。
如已经提到的,处理器可以以物理的方式(也利用处理器核)或者以虚拟的方式(例如以仿真的方式)来实施。特别是可以有利地使用多个处理器或者处理器核来冗余地执行计算过程,即并行地、特别是也同时执行计算过程,以便在处理应用数据集时出现错误时获得附加的安全性。如下面还要详细说明的,例如可以通过投票来检查错误的出现。
根据本发明的一个设计方案设置为,至少两个处理器或者处理器核共同访问同一个存储单元。
访问同一个存储单元是指至少两个处理器/处理器核共同使用一个存储单元,其中,该存储单元不针对一个处理器或者另一个处理器提供存储区域的物理分离。换言之,每个处理器原则上可以访问由存储单元提供的整个存储区域。当然,这不排除例如通过定义存储地址为一个处理器或者另一个处理器保留特定的存储区域。然而,这种保留可以在没有硬件干预的情况下被改变或者取消,从而潜在地使每个处理器都可以使用整个存储区域。
针对多个处理器使用共同的存储单元有利地使COTS部件的使用变得容易。此外,与在为每个处理器提供单独的存储单元时相比,购买共同的存储单元的成本效益更高。由此可以实现成本效益特别高的解决方案。
根据本发明的一个技术方案设置为,
·利用多次存储的相同的数据部分和/或利用多次相同地改变的数据部分来执行投票,
·如果基于投票识别出错误,则将包含导致识别出错误的数据部分的应用数据集排除在进一步处理之外。
如果以冗余的方式存储和处理应用数据集,则形成多次存储的相同的数据部分和/或多次相同地改变的数据部分。冗余的数据(即相关的应用数据部分)必须相同,因此出现的差异可以通过投票而被识别出是错误并且输出。
执行投票来识别数据错误本身是已知的。例如,可以在多个、优选三个并行的过程流程中计算独立的应用数据集,然后在投票的范围内对它们进行比较。仅当所比较的结果中的至少大多数是一致的时,结果才被归类是可信的。在此,计算环境对应用程序的并行处理特别是可以通过计算环境中的三个并行处理的应用数据集来执行。由此,可以有利地确保一个数据集的处理可以相应地在关于其它处理没有反馈的情况下执行。由此,可以有利地尽可能地降低在处理应用数据集时错误的出现也影响对其它数据集的处理的概率。
在检查运行中或者在执行应用程序时确定有数据错误或者通过投票确定有处理错误时,可以禁止或者至少暂停对数据的进一步处理,或者仅针对达到或者超过预先给定的安全级别的应用程序,禁止或者至少暂停对数据的进一步处理。这具有如下优点,即,相关主机的计算能力可以进一步用于与安全无关的应用程序。这意味着,如果出现的错误(例如程序崩溃)不构成与安全相关的风险(例如,与安全相关的风险在铁路应用中是火车碰撞或者其它事故),则可以执行应用程序。
可以有利地设置为,如果要比较的数据部分不匹配,或者如果属于这些数据部分的检查数据部分中的计数数据既不指示正在执行的检查运行,也不指示最近完全执行的检查运行,则停止应用程序中的第一应用程序和第二应用程序。
通过停止程序流程,有利地有效防止应用程序的错误处理继续进行。随后,如果错误已经被排除,则也可以再次开始相关的应用程序(包括子程序、程序复合体)。特别是,如果冗余地执行应用程序,以便随后能够对所产生的可变数据执行投票,则在重新启动各个应用程序或者主机时,例如铁路应用的运行可以继续。
根据本发明的一个设计方案设置为,
·使用相应的应用数据集的没有错误的数据部分来更新包含导致错误的数据部分的应用数据集,
·将更新后的应用数据集再次纳入进一步的处理中。
因此,对于更新,使用包含相关的没有错误的数据部分的相应的应用数据集。这意味着,在应用数据集中选择具有相同的应用数据的数据部分,换言之,属于同一组应用数据集的应用数据集。也就是说,如已经说明的,这些应用数据集的区别仅在于检查数据部分,然而不在于表示应用数据的数据部分、即应用数据部分,从而可以说可以将这些数据部分用于修复识别出的错误,前提是可以通过投票识别出没有错误的数据部分。
对有错误的数据部分的更新使得计算环境能够持续运行。否则,通过确定错误,将阻止越来越多的应用数据集,从而长此以往,方法将无法运行。由于在产生数据时缺乏冗余,投票也可能在某个时候不再能够执行。
但是除了投票之外,数据的冗余也使得计算环境能够运行,即使得能够对应用数据集进行处理,同时确定并且纠正各个应用数据集中的错误。也就是说,后者仅在按照上述方法修复之前才被排除在处理之外。然而,在排除损坏的应用数据集的同时,存在具有完整的数据的其它冗余的应用数据集,利用完整的数据,可以在应用中不导致延迟的情况下继续执行方法。然后,可以稍后、例如在运行暂停中激活修复的应用数据集。
此外,请求保护一种计算机程序产品,其具有用于执行所提到的根据本发明的方法和/或其实施例的程序命令,其中,借助该计算机程序产品,可以相应地执行根据本发明的方法和/或其实施例。
此外,请求保护一种用于存储和/或提供计算机程序产品的提供装置。在此,提供装置例如是存储和/或提供计算机程序产品的存储单元。替换地和/或附加地,提供装置例如是网络服务、计算机系统、服务器系统、特别是分布式的例如基于云的计算机系统和/或虚拟的计算机系统,其优选以数据流的形式存储和/或提供计算机程序产品。
以计算机程序产品的程序数据块的形式,作为文件、特别是作为下载文件、或者作为数据流、特别是作为下载数据流,来进行提供。但是这种提供例如也可以作为由多个部分构成的部分下载来进行。例如使用提供装置将这样的计算机程序产品读入系统中,从而使得在计算机上执行根据本发明的方法。
附图说明
下面参照附图来描述本发明的其它细节。相同或者相应的附图元素分别设置有相同的附图标记,并且仅在各个附图之间存在差异的情况下才多次进行说明。
下面说明的实施例是本发明的优选实施方式。在这些实施例中,所描述的实施方式的部件分别是可以被视为是相互独立的本发明的各个特征,这些特征也可以分别相互独立地扩展本发明,因此也可以单独或者在与所示出的组合不同的组合中被视为是本发明的构成部分。此外,所描述的部件也可以与前面描述的本发明的特征组合。
附图中:
图1示意性地示出了具有计算环境与其相互作用关系的铁路应用,其中,可以利用该计算环境来执行根据本发明的方法的实施例,
图2(由分布在两页上的部分图2A和部分图2B构成)作为框图示出了根据按照图1的铁路应用中的计算环境的根据本发明的方法的实施例,该计算环境具有两个主机,其中,各个功能单元包含程序模块,程序模块可以产生应用程序并且分别可以在一个或多个处理器中运行,并且接口可以相应地通过软件技术或者硬件技术来实施,
图3和图4作为流程图示出了根据本发明的方法的实施例,其中,各个方法步骤可以通过程序模块单独或者分组实现,并且其中,示例性地示出了根据图2的功能单元和接口。
图5旨在说明用于以计算机辅助的方式运行存储单元以及用于以计算机辅助的方式执行应用程序的方法的可能的方法流程。
具体实施方式
在图1中示意性地示出了由计算环境RU控制的铁路应用。该铁路应用具有轨道GL,其上示例性地示出了集控站技术设备的不同的部件。在此是可以调节道岔WH的道岔驱动器WA。此外,在轨道中的一个上安装有应答器(Balise)BL,可以借助应答器BL与驶过该应答器的列车交换信息。最后,示出了由控制器CL控制的灯光信号LS。
计算环境RU可以具有不同的主机HR1,HR2,HR3,用于控制铁路应用的应用以应用程序(下面将对此进行更详细的说明)的形式分布在这些主机HR1,HR2,HR3上。第一主机HR1由计算中心RZ提供,并且通过第一接口S1与第一存储单元SE1连接。计算中心RZ例如可以由铁路运营商的服务提供商运营,或者可以由铁路运营商自己运营。第一主机HR1通过第二接口S2与云CLD连接,从而其不在本地与铁路应用相关联。
铁路运营商的控制中心LZ容纳第二主机HR2,第二主机HR2同样通过第三接口S3与云CLD连接。此外,第二主机HR2通过第四接口S4与第二存储单元SE2连接。
此外,计算环境RU示例性地具有集控站STW,集控站STW容纳第三主机HR3,第三主机HR3通过第六接口S6与第三存储单元SE3连接。此外,第三主机HR3具有到第二主机HR2的第五接口S5。主机HR3也可以以未示出的方式与云CLD连接。此外,第三主机HR3具有到道岔驱动器WA的第七接口S7、到控制器CL的第八接口S8以及到应答器BL的第九接口S9。
根据图1的所有接口S1…S9原则上是有线的,或者也可以通过无线传输技术、例如无线电来实现。主机HR1…HR3的布置仅仅是示例性的,在更复杂的铁路系统中可以任意地扩展。通过如下方式来定义计算环境,即,所参与的主机HR1…HR3可以相互通信,由此可以在考虑可用的计算能力的情况下以分布在主机HR1…HR3上的方式对应用进行处理。为此,形成未详细示出的计算实体,将在下面更详细地描述计算实体(参见图2,其中示出了计算实体RP1…RPn)。
图2示例性地示出了根据图1的第一主机HR1和第二主机HR2的配置。其它主机的连接可以类似地进行。组织主机,使得为了完成特定的任务复合体,在主机上以程序复合体PK1,PK2,PK3,PK4的形式进行组织,这些程序复合体由各个应用程序AP1…AP5构成。
程序复合体一般将多个应用程序组合在一起,可以从应用整体的角度将这些应用程序共同的处理组合在一起。特别是可以设置为,将包含在数据集中的所有应用程序组合为一个程序复合体。在此,考虑如下事实,即,数据集在要应用的数据方面使得将数据部分组合在一起,同时与此并行地,程序复合体将与这些数据部分相关联的相应的应用程序组合在一起。
配置数据KD1…KD13应当理解为如下的数据,这些数据针对当前应用情况的个体化的要求配置应用程序。配置定义不同应用程序之间的交互以及应用程序针对安装应用程序的硬件部件的功能。此外,配置包含针对相关应用程序所针对的当前应用情况的调整(例如在不同的应用情况下可能不同的参数)。
此外,借助第五应用程序AP5示出了应用程序可以通过单独的子程序来实现。第五应用程序AP5的子程序是网关GW、投票器VT、时钟发生器TG和消息代理MB(下面将对此进行更详细的说明)。但是这仅应当理解为示例。替换地,例如,时钟发生器可以在另外的(不安全的)应用程序中运行,而其余的子程序(如所描述的)可以在(安全的)应用程序AP5中运行。
本发明意义上的子程序一般应当理解为诸如程序模块的较小的单元,其整体构成应用程序。因此,有利的是,应用程序模块化地构建,即,例如设置在多个应用程序中使用的程序模块。在此,依据子程序的使用,可以利用不同的配置数据来配置子程序。因此,子程序使得能够更容易地创建应用程序,并且因此可以使计算环境更容易地匹配于应用情况。
关于程序复合体、应用程序和子程序的创建,应当指出,可以分别对程序复合体、应用程序以及子程序分配配置数据。在此,可能导致对同一内容的特定数据进行多次存储,其中,这些数据分别产生数据部分,这些数据部分又可以唯一地与一个程序复合体、应用程序或者子程序相关联。在此,重要的是唯一地关联的可能性,以便为了实现检查功能而提供唯一地可寻址的数据部分。
第五应用程序AP5在所有程序复合体PK1…PK4中被相同地组织。通过网关GW可以与云CLD交换消息。因此,网关GW形成根据图1的接口S2和S3。通过消息代理MB,优选根据发布-订阅方法,使消息分布在程序复合体PK1…PK4内部。网关GW例如使用接口S14,以使接收到的消息通过消息代理MB提供给冗余的计算实体RP1…RPn。然后由冗余的计算实体RP1…RPn调取接收到的消息。这通过节点KN示出,节点KN在接口S14中(同样在下面还要描述的其它接口S10…S13中)示出。
在图2中,为了清楚起见,程序复合体PK1…PK4分别完全在主机HR1…HR2中实现。在现实中,程序复合体也可以以其应用程序AP1…AP5和其子程序在多个主机上以分布的方式运行(未示出)。这有利地使得当主机的容量不能为整个程序复合体的配置提供足够的容量时,能够通过将多个主机的容量共同用于相关的程序复合体,来利用主机的容量。
例如,可以针对特定的任务复合体设置程序复合体。例如,程序复合体可以用于控制特定的铁路部件(信号、集控站、道岔、计轴器等)。通常需要多个应用程序来控制这些铁路部件。特别是,还需要前面已经说明的应用程序AP5,以保证应用的安全执行以及与其它主机的通信。可以将应用程序AP5称为服务程序(Dienstprogramm),其用于保护主机功能的安全,因此执行与主机相关的应用(相对于处理用于铁路部件的实用数据(Nutzdaten)的应用程序AP1…AP4,因此将应用程序AP1…AP4称为实用程序(Nutzprogramm))。应用程序AP5同样在每个主机的至少一个计算实体RP9…RP12中运行,然而优选不是冗余的。
本发明意义上的多个冗余的计算实体应当理解为主机HR1…HR3上的软件实现,其允许并行地、即同时处理应用程序AP1…AP4,优选在相应的程序复合体PK1…PK4内进行处理。在图2中示出了分别具有两个冗余的计算实体的程序复合体,然而优选使用三个冗余的计算实体,但是也可以想到更多冗余的计算实体RP1…RPn,如针对第一程序复合体示例性地示出的。下面,借助用于处理第一应用程序AP1的用于第一冗余的计算实体RP1、第二冗余的计算实体RP2、…和第n冗余的计算实体的第一程序复合体PK1,来说明用于处理应用程序的方法。然而,对于程序复合体PK2…PK4,相应地进行处理,因此不需要单独对其进行说明。
在第一冗余的计算实体RP1、…和第n冗余的计算实体RPn中,冗余地、即同时并行地处理第一应用程序AP1。在此涉及执行根据图1的铁路应用的任务的应用程序。此外,从第一冗余的计算实体RP1到第n冗余的计算实体RP2,可以使用第一配置数据KD1,执行用于处理铁路应用程序的个性化任务的第一应用程序AP1需要第一配置数据KD1。例如,第一应用程序AP1一般可以用于控制灯光信号,其中,第一配置数据KD1确保将第一应用程序AP1应用于根据图1的灯光信号LS。在此,例如必须确保与根据图1的控制器CL的通信。
配置数据KD1…KD13也可以用于所有其它程序复合体PK1…PK4、应用程序AP1…AP4以及子程序MB、TG、VT、GW。对应地,配置数据KD1…KD13包含程序复合体、应用程序和子程序分别所需要的数据,以便它们能够在相关的应用情况下执行分配给它们的任务。在此,配置数据相应地是不可改变的,因此可以将其存储在开始已知并且结束已知的数据部分中。同样将所有的程序复合体PK1…PK4、应用程序AP1…AP4以及子程序TG、VT、GW、MB存储为开始已知并且结束已知的数据部分。为此,例如可以使用根据图1的第一存储单元SE1、第二存储单元SE2以及第三存储单元SE3。存储在所提到的存储单元中的一个中或者在一定的时间段内存储在所提到的存储单元中的一个中的数据定期经受检查运行,通过检查运行可以识别所存储的数据中的存储错误(下面还要对此进行更详细的说明)。存储错误应当理解为在数据存储在存储单元中时在存储或者调取数据时在数据中发生或者出现的错误。
在参与的伙伴之间作为消息交换在处理程序期间中改变的数据。如已经提到的,为此可以使用消息代理MB。此外,各个主机HR1,HR2通过外部接口S2,S3例如借助云CLD相互通信,以便也可以在不同主机的不同程序复合体PK1…PK4之间交换数据。在改变数据之后,将其再次存储在第一存储单元SE1、第二存储单元SE2或者第三存储单元SE3中。在处理数据时,也可能在数据中出现错误,其在本发明的范围内更准确地称为处理错误。
根据图1的铁路应用中的运行对于铁路应用的运行安全来说是与安全相关的。这就是在时间上并行地、即冗余地处理第一冗余的计算实体RP1中的第一应用程序AP1到第n冗余的计算实体RPn的原因。第一冗余的计算实体RP1和第二冗余的计算实体RP2(等等)在处理应用时将结果发送到消息代理MB,更确切地说,第一冗余的计算实体RP1通过第十一接口S11,并且第二冗余的计算实体通过接口S12(等等),将结果发送到消息代理MB。由执行投票的投票器VT通过所提到的接口调取这些结果。仅当大多数结果一致时(即,在两个冗余的计算实体的情况下,两个结果一致;在三个冗余的计算实体的情况下,至少两个结果一致;在四个冗余的计算实体的情况下,至少三个结果一致;……;在n个冗余的计算实体的情况下,在偶数情况下,至少n/2+1个结果一致,在奇数情况下,至少n/2+0.5个结果一致),才将结果通过第十三接口S13提供给消息代理,并且网关GW可以通过第十三接口S13调取结果,以通过第二接口S2传输到其它单元。
为了使计算结果同时可以用于投票器VT的投票,通过时钟发生器TG对第一冗余的计算实体RP1和第二冗余的计算实体RP2中的处理(等等)进行计时。时钟发生器TG通过第十接口S10提供时钟信号,第一冗余的计算实体RP1和第二冗余的计算实体RP2同样可以通过消息代理MB调取时钟信号。
通过第五应用程序AP5确保所描述的通过第一应用程序AP1和第二应用程序AP2处理任务的方式。也就是说,第五应用程序AP5是支持主机HR1…HR3的工作方式的内部应用程序。这清楚地表明,不仅必须为根据图1的铁路应用的应用提供应用程序(实用程序),而且必须为主机HR1…HR3中的应用的处理提供应用程序(服务程序)。
在此,将应用程序组合成程序复合体以及将应用程序细分为子程序,使得应用程序的汇编以及检查对任务的处理是否没有错误变得容易。为此目的,将数据组合成数据部分,数据部分本身相应地可以被唯一地识别和寻址(通过定义数据部分的开始和数据部分的结束)。如已经提到的,在数据部分中定义子程序、应用程序、程序复合体以及相应的相关的配置数据(其中,这些通常由多个数据部分构成)。在此,优选在使用差异特征数据的情况下多次存储所需要的数据,从而可以相应地唯一地关联数据部分和配置文件。换言之,在这种情况下,不会发生当不同的应用程序使用相同的配置数据时,不同的应用程序访问这些数据的相同的存储位置,而是始终访问相应地与其相关联的、数据可用的数据部分。
在图3中示意性地示出了根据本发明的对数据的第一次编码的方法步骤。这针对例如由第一主机HR1、第一存储单元SE1以及第二存储单元SE2构成的计算环境示出。原则上,第一主机HR1可以访问存储在第一存储单元SE1和第二存储单元SE2中的数据。在此,可以进行读RE和写WT,这通过相应的箭头示出。
例如,用于执行应用程序的应用AP可以存储在存储单元SE1,SE2中。此外,可以存储计数数据ZD以及差异特征数据DD1…DD4的存储库VR。为了使用用于本发明意义上的应用的应用数据AD,即以根据本发明的方式执行用于以计算机辅助的方式执行应用程序的方法,必须以应用数据集ADS的形式存储应用数据AD,应用数据集ADS借助根据图3的方法来创建,并且通过编码COD以编码的方式进行存储。
在图3中仅示例性地示出了应用数据AD、计数数据ZD以及差异特征数据DD1…DD4如何占据第一存储单元SE1和第二存储单元SE2的各个存储区域。原则上,将相应的数据存储在哪里是任意的,通过适当的寻址找到这些数据,并且对哪个应用数据集ADS在存储单元SE1,SE2中存储在哪里没有限制。
此外,通过阴影线示出了差异特征数据DD1…DD4的差异,这应当清楚地表明,可以通过存储库VR中的差异特征数据来标记应用数据集ADS。如借助存储库VR示出的,可以使用纵向阴影线、横向阴影线以及相互成90°角的两个斜阴影线。在图3中详细示出的应用数据集ADS例如具有指示差异特征数据DD1的阴影线。
如放大示出的应用数据集ADS所示出的,应用数据集ADS由用于应用数据AD的数据部分DA和检查数据部分PA构成,检查数据部分PA具有第一差异特征数据DD1、计数数据ZD中的计数元素和冗余数据RD。第一差异特征数据DD1、计数数据ZD、用起始值填充的冗余数据RD以及应用数据AD在主机HR1中例如被写入工作存储器,并且在此被组合成应用数据集ADS。随后,对应用数据集ADS进行编码并且写入第一存储单元SE1,其中,基于第一差异特征数据DD1的差异也在存储单元SE1中由所提到的阴影线示出。这里,应用数据集ADS可以用于进一步的处理。
在图4中示意性地示出了根据图3的应用数据集以及具有第二差异特征数据DD2和第三差异特征数据DD3的其它应用数据集的使用。所示出的三个应用数据集ADS应当包含相同的应用数据。在每一种情况下,检查数据部分PA被相应地不同的差异特征数据DD1,DD2,DD3占据。计数数据ZD和冗余数据RD也可能彼此不同。
现在,在三个计算实体RP1,RP2,RPn中执行应用数据集ADS(在所说明的示例中,n等于3,但是n也可以具有不同的值)。为此,应用数据集ADS被分别读入计算实体(RE)。在此,计算实体RP1,RP2,RPn分别与特定的差异相关联,这通过阴影线相应地示出。该阴影线分别对应于存储库VR中的差异特征数据DD1…DD3的阴影线。
还可以看到,计算实体RPn也可以处理两个差异的数据,在当前情况下是利用差异特征数据DD3和差异特征数据DD4标记的应用数据集ADS。由此可以实现对计算实体RPN可用的计算能力的最佳利用。
计算实体RP1…RPn分别读出正确的差异的应用数据集ADS。这通过在后台运行的服务程序来实现,从而向计算实体RP1…RPn自动提供正确的应用数据集ADS。这针对具有差异特征数据DD1的根据图3的应用数据集ADS更详细地示出并且要更详细地进行说明。
如果调取该应用数据集ADS,则首先对其进行解码(DEC),以便随后进行读取(RE)。通过解码,可以与应用数据AD一起读出第一差异特征数据DD1、当前的计数数据ZD以及冗余数据RD,并且应用服务程序,服务程序识别可能出现的存储错误。可以检查差异特征数据DD1是否来自存储库VR和/或与第一计算实体RP1的差异一致。根据计数数据ZD,可以对检查运行的正常过程进行检查,因为检查运行必须标记正在进行的检查运行或者先前进行的检查运行。仅当检查得出数据没有存储错误时,才释放数据用于读取RE,并且由第一计算实体RP1进行处理。
在处理应用数据集ADS之后,第一计算实体RP1将其写回到第一存储单元SE1中。这里,也可以对检查数据部分、即第一差异特征数据DD1、计数数据ZD和冗余数据RD执行检查,以识别在处理应用数据集ADS时可能出现的处理错误。此外,使计数数据ZD等于标记当前进行的检查运行的计数元素。随后,对应用数据集ADS进行编码(COD)并且将其写入第一存储单元SE1中(WT)。
即使没有详细示出,在计算实体RP2,RPn中同样针对其它应用数据集执行这种方法。在成功处理应用数据ADS之后,可以附加地针对应用数据AD进行投票,以确定即使在通过计算实体RP1…RPn进行处理之后,应用数据集AD也相同地改变。如果不是这种情况,则这指示处理错误。此外,在三个计算实体RP1…RPn的情况下,可以执行多数投票,从而将多数相同的应用数据用于进一步的处理,而阻止与它们不同的应用数据用于进一步的处理。
附录图5旨在说明用于以计算机辅助的方式运行存储单元以及用于以计算机辅助的方式执行应用程序的方法的可能的方法流程。在所述方法开始(START)之前,执行初始化步骤INI,其中,初始化步骤INI允许对未示出的存储单元进行常规的存储器访问。在所述方法开始之后,这里,在右侧示出了用于对存储单元执行检查运行的方法,以及在左侧示出了应用程序的执行。这些子区域可以依次单独执行,或者优选并行执行,因此并排示出。
首先,说明用于执行检查运行的方法。在计数数据的确定步骤DTM_ZD中,确定计数数据的起始值。在需要时,在计数数据的输出步骤ZD_OT中,将这些计数数据通过计数数据的输入步骤ZD_IN提供给用于执行应用程序的方法(左侧)。
实际的测试运行由重复的过程构成,针对存储单元中存储的所有应用数据集执行这些重复的过程(在图5中在右侧示出)。对于具有计数数据的当前计数元素的每个应用数据集,执行以下操作:
在应用数据集的解码步骤DEC_ADS中,对应用数据集进行解码。在计数数据的检查步骤TST_ZD中,检查计数元素是否对应于当前正在检查的检查运行或者最后一次检查运行。在差异特征数据的检查运行TST_DD中,检查应用数据集是否具有与可以使用的差异特征数据的数据库VT对应的差异特征数据(参见图3和图4)。在冗余数据的检查步骤TST_RD中,检查冗余数据是否具有预期的值、特别是默认值(Vorbelegungswert)(可选)。
如果执行了所有检查步骤,则在偏差的查询步骤DVG?中,如前面所描述的,对检查步骤中的一个是否相对于预期结果有偏差进行检查。如果是这种情况,则在错误的输出步骤ER_OT中输出错误(下面还要对此进行更详细的说明)。如果不是这种情况,则在应用数据集的编码步骤COD_ADS中,再次对所检查的应用数据集进行编码,其中,始终以具有当前检查运行的计数元素的计数数据对其进行编码。如果针对所有应用数据集执行了检查运行,则应用数据集因此在计数数据中具有当前的计数元素,并且可以在计数数据的更新步骤UPD_ZD中针对正在运行的服务程序更新计数数据,使得其现在包含随后开始的检查运行的计数元素。
在用于以计算机辅助的方式执行应用程序的方法(图5中的左侧)中,在已经提到的计数数据的输入步骤ZD_IN之后,针对由应用程序执行的应用的所需要的所有应用数据集,重复执行相关应用数据集的解码步骤DEC_ADS。随后,如已经针对检查运行所描述的,执行计数数据的检查步骤TST_ZD、差异特征数据的检查步骤TSD_DD以及冗余数据的检查步骤TSD_RD(可选)。
特殊之处在于,在未示出的具有特定差异的计算实体上执行应用,从而在差异特征数据的检查步骤TSD_DT中检查的差异特征数据必须完全对应于要在其上执行应用程序的计算实体的差异。
此外,在执行应用程序时,针对所需要的每个应用数据集,在偏差的检查步骤DVG?中,对检查步骤TST…是否识别出相对于应用数据集的预期内容的偏差进行检查。如果是这种情况,则如已经说明的,在错误的输出步骤ERR_OT中输出错误。否则继续对应用数据集进行检查,直到对应用程序所需要的所有应用数据集进行了检查为止。仅在该前提下,才在应用程序的执行步骤RUN_APP中执行应用程序。
对应用数据集的检查优选可以针对应用程序逐步进行(在图5中未详细示出)。这意味着,对应用程序的处理被细分为处理的各个步骤。在这种意义上,要对应用程序所需要的所有应用数据集进行检查,这些应用数据集相应地是应用程序接下来要执行的步骤所需要的。然后,在应用程序的执行步骤RUN_APP中,相应地执行应用程序的相关步骤。然后,对于每个应用程序,在图5中产生多个递归循环,在下面还要描述的应用数据集的编码步骤COD_ADS(在图5的左侧)之后,这些递归循环再次导致计数数据的输入步骤。
在应用程序的执行步骤RUN_APP之后,检查在执行应用程序之后存在的应用数据集是否是新的应用数据集。需要进行该检查(称为新应用数据集的查询步骤NW_ADS?),以便在检查数据部分的确定步骤DTM_PA中,将检查数据分配给新的应用数据集,检查数据使得能够在所提出的方法的进一步的步骤中对新的应用数据集ADS进行随后的检查。在任意情况下,在应用数据集的编码步骤COD_ADS中,对新的应用数据集或者还有旧的应用数据集再次进行编码,并且将其存储在存储单元中。随后,可以执行另外的应用程序,或者如上面所描述的,正在运行的应用程序的另外的步骤(重复ZD_IN、计数数据的输入步骤和后续步骤)。
也可以在冗余的计算实体中同时处理多个应用程序。在这种情况下,用于执行应用程序的流程以未示出的方式多次并排地并行示出。
应用程序的执行步骤RUN_APP也可以实现要输出的结果。在这进行之前,可选地同样可以执行测试过程(如图5中间所示)。在此,执行已经说明的步骤、即计数数据的检查步骤TSD_ZD、差异特征数据的检查步骤TSD_DD以及(可选的)冗余数据的检查步骤TSD_RD。在随后的偏差的查询步骤DVG?中,再次检查是否可以在检查步骤中确定偏差。如果是这种情况,则如已经描述的,在错误的输出步骤ERR_OT中产生错误信号。否则,在结果的输出步骤OT_RS中输出结果和/或在另外的步骤中进一步处理结果。
对于在错误的输出步骤ERR_OT中输出错误的情况,在根据图5的实施例中,立即停止(STOP)所述方法。随后,可以通过初始化步骤INI重置计算环境,并且例如再次开始所述方法。
附图标记列表
LZ 控制中心
STW 集控站
RZ 计算中心
GL 轨道
WH 道岔
WA 道岔驱动器
LS 灯光信号
CL 灯光信号的控制器
BL 应答器
RU 计算环境
HR1…HR3 主机
SE1…SE3 存储单元
S1…S14 接口
CLD 云
RP1…RP8,RPn 冗余的计算实体
AP1…AP5 应用程序
PK1…PK4 程序复合体
KD1…KD13 配置数据
MB 消息代理
TG 时钟发生器
VT 投票器
GW 网关
KN 节点
DD1…DD4 差异特征数据
ZD 计数数据
RD 冗余数据
AD 应用数据
DA 具有应用数据的数据部分
PA 检查数据部分
ADS 应用数据集
CDS 编码的应用数据集
GR 组
VR 存储库
COD 编码
DEC 解码
RE 读
WT 写
DTM_ZD 计数数据的确定步骤
UPD_ZD 计数数据的更新步骤
DEC_ADS 应用数据集的解码步骤
COD_ADS 应用数据集的编码步骤
TST_ZD 计数数据的检查步骤
TST_DD 差异特征数据的检查步骤
TST_RD 冗余数据的检查步骤
DVG? 偏差的查询步骤
ERR_OT 错误的输出步骤
INI 初始化步骤
RUN_APP 应用程序的执行步骤
ZD_IN 计数数据的输入步骤
ZD_OT 计数数据的输出步骤
OT_RS 结果的输出步骤
NW_ADS? 新应用数据集的查询步骤
DTM_PA 确定步骤
Claims (15)
1.一种用于以计算机辅助的方式运行存储单元的方法,在所述方法中,
·将数据存储在所述存储单元中,并且在存储之前对数据进行编码,
·从所述存储单元调取数据,并且在调取之后对数据进行解码,
其特征在于,
为了对数据进行第一次编码(COD),
·从可能的差异特征数据(DD1…DD4)的存储库(VR)产生或者选择应用数据集(ADS)的至少一个组(GR),所述应用数据集包含具有用于应用程序(AP1…AP5)的相同的应用数据(AD)的数据部分(DA)和分别具有不同的差异特征数据(DD1…DD4)的检查数据部分(PA),
·对每个应用数据集(ADS)进行编码和存储,
并且通过对应用数据集(ADS)进行调取和解码来进行数据的调取,以及通过对应用数据集(ADS)进行编码和存储来进行数据的存储。
2.一种用于以计算机辅助的方式在冗余的计算实体(RP1,RP2,RPn)中多次执行应用程序(AP1…AP5)的方法,在所述方法中,为了执行所需要的应用数据集(ADS),从存储单元调取根据上述权利要求编码的应用数据集(CD)的组(GR)中的每个应用数据集(ADS)并且对其进行解码,其中,
·为了在对应用数据集(ADS)进行解码(DEC)之后对数据进行检查,如果应用数据集(ADS)中的差异特征数据(DD1…DD4)不同于存储库(VR)中的、所述计算实体(RP1,RP2,RPn)的所有可能的差异特征数据(DD1…DD4),则相应地针对应用数据集(ADS)确定有错误,
·如果确定没有错误,则利用相关组(GR)中的每个应用数据集(ADS)的数据部分(DA)执行应用程序(AP1…AP5),
和/或
·根据上述权利要求至少对包含通过执行应用程序(AP1…AP5)而改变或者产生的数据部分(DA)的应用数据集(ADS)进行编码,并且将其存储在所述存储单元中。
3.根据上述权利要求中任一项所述的方法,
其特征在于,
所述存储库(VR)的不同的差异特征数据(DD1…DD4)包含不同的编码常数和解码常数。
4.根据上述权利要求中任一项所述的方法,
其特征在于,
差异特征数据(DD1…DD4)包括匹配运算符,匹配运算符用于将通过解码(DEC)产生的数据部分(DA)匹配到解码(DEC)之前的数据部分(DA)。
5.根据上述权利要求中任一项所述的方法,
其特征在于,
编码运算符是用于执行乘法的指令。
6.根据上述权利要求中任一项所述的方法,
其特征在于,
解码运算符是用于作为解码运算执行乘法的指令,并且匹配运算符适合用于在解码(DEC)之后将数据部分(DA)限制到其原始长度。
7.根据上述权利要求中任一项所述的方法,
其特征在于,
在为了对数据进行第一次编码(COD)而以计算机辅助的方式运行存储单元时,附加地
通过对存储单元执行时间上的一系列计算机辅助的检查运行来监视存储单元的错误,其中,为了对数据进行第一次编码(COD),
·产生或者选择至少一个应用数据集(ADS),
·对于每个应用数据集(ADS),附加地利用指示正在执行的检查运行的计数数据(ZD)占据检查数据部分(PA),
·对每个应用数据集(ADS)进行编码和存储,
并且其中,为了在调取应用数据集(ADS)并且进行解码(DEC)之后检查正在执行的检查运行中的数据,相应地
·对于应用数据集(ADS),如果计数数据(ZD)既不指示正在执行的检查运行,也不指示最近完全执行的检查运行,则确定有错误,
·如果确定没有错误,则利用指示正在执行的检查运行的计数数据(ZD)占据相关应用数据部分(DA)的检查数据部分(PA),
如果确定没有错误,则再次对相关的应用数据集(ADS)进行编码和存储,
和/或
在以计算机辅助的方式执行应用程序(AP1…AP5)时,根据上述权利要求中任一项所述运行存储单元,其中,从存储单元调取执行所需要的应用数据集(ADS)并且进行解码,其中,
·在对应用数据集(ADS)进行解码(DEC)之后,执行应用程序(AP1…AP5),
·至少对包含通过执行应用程序(AP1…AP5)改变或者产生的数据部分(DA)的应用数据集(ADS)进行编码,并且将其存储在存储单元中。
8.根据上述权利要求中任一项所述的方法,
其特征在于,
在编码(COD)之前,创建检查数据部分(PA),使得检查数据部分附加地具有带有预先给定的冗余数据(RD)的冗余的存储空间。
9.根据上述权利要求中任一项所述的方法,
其特征在于,
应用数据部分(DA)由数据字构成。
10.根据上述权利要求中任一项所述的方法,
其特征在于,
在同时使用至少两个处理器或者处理器核的情况下执行所述方法。
11.根据权利要求10所述的方法,
其特征在于,
所述至少两个处理器或者处理器核共同访问同一个存储单元。
12.根据上述权利要求中任一项所述的方法,
其特征在于,
·利用多次存储的相同的数据部分(DA)和/或利用多次相同地改变的数据部分(DA)执行投票,
·如果基于投票而识别出错误,则将包含导致识别出错误的数据部分(DA)的应用数据集(ADS)排除在进一步处理之外。
13.根据上述权利要求中任一项所述的方法,
其特征在于,
·使用相应的应用数据集(ADS)的没有错误的数据部分(DA)来更新包含导致错误的数据部分(DA)的应用数据集(ADS),
·将更新后的应用数据集(ADS)再次纳入进一步的处理中。
14.一种计算机程序产品,具有用于执行根据上述权利要求中任一项所述的方法的程序命令。
15.一种用于根据权利要求14所述的计算机程序产品的提供装置,其中,所述提供装置存储和/或提供所述计算机程序产品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22169517.4A EP4266176A1 (de) | 2022-04-22 | 2022-04-22 | Verfahren zum rechnergestützten betreiben einer speichereinheit und ausführen von applikationsprogrammen mit redundanter datenspeicherung |
EP22169517.4 | 2022-04-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116931824A true CN116931824A (zh) | 2023-10-24 |
Family
ID=81597930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310436721.6A Pending CN116931824A (zh) | 2022-04-22 | 2023-04-21 | 以计算机辅助的方式运行存储单元和执行应用程序的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230342072A1 (zh) |
EP (1) | EP4266176A1 (zh) |
CN (1) | CN116931824A (zh) |
AU (1) | AU2023202473B2 (zh) |
CA (1) | CA3197282A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10219501B4 (de) * | 2002-04-30 | 2010-04-01 | Siemens Ag | System und Verfahren zur Verbesserung von Fehlerbeherrschungsmassnahmen, insbesondere in Automatisierungssystemen |
EP2466466B1 (de) * | 2010-12-09 | 2013-10-16 | Siemens Aktiengesellschaft | Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems |
DE102014114157B4 (de) * | 2014-09-30 | 2016-11-03 | Technische Universität Dresden | Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code |
-
2022
- 2022-04-22 EP EP22169517.4A patent/EP4266176A1/de active Pending
-
2023
- 2023-04-17 CA CA3197282A patent/CA3197282A1/en active Pending
- 2023-04-21 CN CN202310436721.6A patent/CN116931824A/zh active Pending
- 2023-04-24 AU AU2023202473A patent/AU2023202473B2/en active Active
- 2023-04-24 US US18/305,540 patent/US20230342072A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2023202473B2 (en) | 2024-07-11 |
CA3197282A1 (en) | 2023-10-22 |
EP4266176A1 (de) | 2023-10-25 |
AU2023202473A1 (en) | 2023-11-09 |
US20230342072A1 (en) | 2023-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9304872B2 (en) | Method for providing a value for determining whether an error has occurred in the execution of a program | |
WO2011111211A1 (ja) | メモリ診断方法、メモリ診断装置およびメモリ診断プログラム | |
US20210081546A1 (en) | System and method for the cryptographically protected monitoring of at least one component of a device or an apparatus | |
CN111133434B (zh) | 用于受密码保护地运行虚拟机的设备和方法 | |
JP2014225276A (ja) | 安全関連制御ユニットおよび自動化設備の制御方法 | |
Zeng et al. | An analytical method for reliability analysis of hardware‐software co‐design system | |
JP6477553B2 (ja) | プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法 | |
EP2370899B1 (en) | Poison bit error checking code scheme | |
JP2013175118A (ja) | 制御装置、及びそのメモリ故障検出方法、その自己診断方法 | |
JP2010160649A (ja) | 制御装置および制御方法 | |
CN116931824A (zh) | 以计算机辅助的方式运行存储单元和执行应用程序的方法 | |
CN116931825A (zh) | 运行存储单元以及执行具有存储器检查的应用程序的方法 | |
US11914456B2 (en) | Method and device for securing access to encoded variables in a computer program | |
CN106940667B (zh) | 检验具有多个计算单元的系统中的计算结果的方法和设备 | |
El-Bayoumi | An enhanced algorithm for memory systematic faults detection in multicore architectures suitable for mixed-critical automotive applications | |
CN108604183A (zh) | 用于高效同时使用的存储器映像的复制 | |
US20230153231A1 (en) | Method and computing environment for creating and applying a test algorithm for computational processes | |
JP5545067B2 (ja) | 情報処理装置、及び情報処理装置の自己診断方法 | |
JP5563700B2 (ja) | 制御装置 | |
JP2013109532A (ja) | 診断修復装置、診断修復方法、及び診断修復プログラム | |
EP1990719A2 (en) | Industrial controller | |
WO2021038923A1 (ja) | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム | |
CN114089918A (zh) | 双向存取装置 | |
Fernández Muñoz et al. | On the safe deployment of matrix multiplication in massively parallel safety-related systems | |
CN115827336A (zh) | 一种cpu中冗余plc的校验方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40095421 Country of ref document: HK |