PT835489E - Metodo e sistema para utilizar dados invertidos para detectar dados corrompidos - Google Patents
Metodo e sistema para utilizar dados invertidos para detectar dados corrompidos Download PDFInfo
- Publication number
- PT835489E PT835489E PT96919156T PT96919156T PT835489E PT 835489 E PT835489 E PT 835489E PT 96919156 T PT96919156 T PT 96919156T PT 96919156 T PT96919156 T PT 96919156T PT 835489 E PT835489 E PT 835489E
- Authority
- PT
- Portugal
- Prior art keywords
- data item
- data
- inverted
- item
- memory
- Prior art date
Links
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/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/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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Description
85 370 ΕΡ 0 835 489/ΡΤ
DESCRICÃO “Método e sistema para utilizar dados invertidos para detectar dados corrompidos”
Campo do invento
Este invento refere-se genericamente à detecção de dados corrompidos armazenados numa memória de computador e, mais especificamente, a um método e sistema que é utilizado para detectar erros em tais dados antes dos dados ser utilizados em cálculo.
Antecedentes do invento
Muitas pessoas crêem erradamente que os computadores são infalíveis na resolução de cálculos matemáticos. Outros assumem que, exceptuando os erros que tiverem sido feitos na entrada de dados ou na escrita de um programa, que utiliza os dados, os cálculos e a lógica implementados por um computador podem ser consideradas como sendo exactas. Infelizmente, esta assunção é incorrecta porque a mesma ignora outras fontes de erro, incluindo erros que aparecem no suporte físico. Por exemplo, foi recentemente anunciado que a parte do ponto flutuante de uma unidade de processamento central (CPU), utilizada para implementar cálculos matemáticas pode introduzir erros no resultado devido a um “erro” prévio não detectado na lógica implementada pelo dispositivo. O presente invento encontra-se ainda envolvido com uma outra fonte de erro que pode afectar os cálculos feitos com um computador. Antes de serem utilizados em cálculo, os dados são tipicamente armazenados dentro da memória do computador. Tipicamente, os dados serão mantidos numa armazenagem não volátil, tal como memória apenas de leitura (ROM) ou numa unidade de disco rígido ou unidade de disquetes até serem necessários num cálculo ou em qualquer outro aspecto de um programa, que está a ser executado no computador. Quando são necessários num programa os dados serão normalmente transferidos para a memória de acesso aleatório (RAM), após o que a CPU levará a efeito uma operação matemática tal como a adição do valor dos dados a um outro valor de dados, produzindo um resultado que será temporariamente armazenado na RAM ou subsequentemente transferido para armazenagem não volátil.
85 370 ΕΡ 0 835 489/ΡΤ 2 A maneira pela qual os dados são utilizados por um computador é controlada pelos passos da linguagem máquina. Estes passos de linguagem máquina são trequentemente produzidos por compilação ou Interpretação de um programa escrito numa linguagem de alto nível, tal como C++. O programa determina quais os valores de dados que são utilizados, como são utilizados os dados e o que é feito com qualquer resultado de cálculo derivado dos dados. No entanto, antes de ser utilizados pela CPU, os dados podem ficar corrompidos, quer na armazenagem não volátil quer na RAM do computador pessoal.
Os erros nos dados armazenados na memória (RAM) podem surgir por várias razões. A memória pode ser adversamente afectada pela exposição a níveis elevados de radiação, descargas estáticas ou outras condições ambientais, que provocam a corrupção dos dados armazenados na mesma. Em tais casos, a memória será tipicamente estabelecida para todos os zeros ou uns binários. Uma pastilha electrónica de memória pode também falhar sem qualquer razão aparente, originando erros em alguns ou em todos os dados armazenados dentro da pastilha electrónica. O excesso de amontoamento ou de erros na programação pode também provocar que os dados armazenados na memória sejam perdidos e/ou escritos por cima.
Nalgumas aplicações, os erros num ou dois bits dos dados armazenados na memória podem ter consequências pequenas. Por exemplo, as imagens gráficas não devem genericamente ser afectadas de forma perceptivel se apenas um ou dois bits dos dados da imagem forem corrompidos. No entanto, se os dados são utilizados em aplicações críticas, tais como equipamento médico de controlo, poderá ser essencial detectar quaisquer erros antes dos dados corrompidos poderem conduzir a possíveis consequências perigosas para a vida. A abordagem mais simples para detectar erros nos dados é fazer uma cópia de cada item de dados e então comparar as duas cópias periodicamente para determinar se um erro na memória na qual os mesmos estão armazenados deu origem a que uma das cópias difira da outra. No entanto, uma falha na memória, que provoca que todos os bits armazenados num ou mais pastilhas electrónicas de memória sejam estabelecidos quer em zeros quer em uns binários, pode não ser detectada por este método, desde que ambas as cópias do elemento de dados serão afectadas pela corrupção da mesma maneira. 3 85 379 ΕΡ Ο 835 489/ΡΤ
Além disso, é conhecido a partir do documento DE-A-3312873 como armazenar dados na forma normal e invertida e verificar a correspondência após a leitura.
As técnicas convencionais mais sofisticadas para detecção de erros nos dados incluem a utilização de valores da verificação de redundância cíclicos (CRC), que devem determinar quando os dados são armazenados e depois verificados periodicamenté. Os valores de CRC são determinados utilizando fórmulas polinomiais relativamente complexas. Qualquer alteração nos dados pode ser detectada se o valor de CRC determinado subsequentemente difere dos valores CRC prévios para os dados. Uma técnica semelhante emprega somas de verificação para detectar alterações nos dados armazenados na memória. O soma de verificação anteriormente determinada para os dados é comparada com o soma de verificação subsequente e é detectado um erro se os valores das duas somas de verificação diferem.
Ambos estes métodos da técnica anterior têm várias desvantagens comuns. Uma das desvantagens mais significativas, em particular, quando se utiliza uma CPU relativamente menos eficiente, é a sobrecarga de cálculo imposta ao processador para determinar o valor de CRC ou a soma de verificação. Um outro problema é a complexidade adicional de programação requerida para atribuir os itens de dados que serão verificados por um destes métodos e para assegurar que os itens de dados são periodicamente verificados em relação a erros, quando o programa é executado. Finalmente, uma vez que cada um dos métodos da técnica anterior é normalmente realizado apenas numa base periódica, pode surgir um erro nos dados depois de ter sido realizada a última verificação e permanecer sem detecção quando é a seguir utilizado o item de dados no cálculo. O que é necessário é uma técnica para detecção de erros nos dados críticos, que pode ser implementada com uma sobrecarga de cálculo relativamente mínima e sem requerer um esforço de programação significativo para assegurar que os dados críticos são apenas verificados em relação a erros imediatamente antes dos dados serem utilizados num programa. Uma tal técnica deve impor uma pequena carga ao programador para implementar, deve ser mais eficiente do que os métodos da técnica anterior e deve ser completamente fiável. No entanto, não se deverá esperar que qualquer nova técnica, destinada detectar erros nos dados armazenados na memória será também capaz de detectar erros que surjam no processo de cálculo devido aos defeitos na CPU ou a erros no programa. 4 ΕΡ Ο 835 489/ΡΤ
Sumário do invento
De acordo com o presente invento, é definido um método para delectar um erro no item de dados como estabelecido na reivindicação independente 1. O método inclui os passos de utilização de uma função construtora, para determinar um item de dados invertido, que corresponde ao item de dados, quando o item de dados é armazenado na memória. O item de dados invertido é também armazenado na memória em associação com o item de dados. Quando o item de dados é requerido num programa, ambos os itens de dados e de dados invertidos são chamados da memória. A seguir, o item de dados é comparado com o item de dados invertido antes de ser utilizado pelo programa. Se o item de dados não corresponde mais ao item de dados invertido, o método fornece a indicação de que ocorreu um erro quer no item de dados quer no item de dados invertido.
Numa concretização, o método inclui, além disso, o passo de inversão do item de dados para produzir um item de dados invertido de teste para comparação com o item de dados invertido. Numa outra concretização, o método inclui, em vez disso, o passo de inverter o item de dados invertido para produzir um item de dados de teste para comparação com o item de dados. Para esta concretização, o método utiliza, de preferência, um operador de função de conversão (definido pelo utilizador) para executar a inversão do item de dados invertido. Adicionalmente, o operador da função de conversão é, de preferência, introduzida de novo para permitir a partilha do operador entre uma pluralidade de tarefas, nas quais é utilizada uma pluralidade de outros itens de dados invertidos.
No método está também incluído o passo de declaração um tipo de item de dados para o item de dados para indicar que o mesmo tem um item de dados invertido a si associado. Além disso, os passos de utilização de uma função construtora para determinar o item de dados invertido, de armazenamento do item de dados e do item de dados invertido na memória, de chamar o item de dados e o item de dados invertido da memória, de comparação do item de dados com o item de dados invertido e de indicação de que ocorreu um erro se o item de dados já não corresponde ao item de dados invertido, são implementados automaticamente para cada item de dados que é declarado para ser do tipo que tem um item de dados invertido, associado ao mesmo.
Um aspecto adicional do presente invento é dirigido a um sistema para detecção de um erro no item de dados antes do item dc dados ser empregue num 5 ΕΡ Ο 835 489/ΡΤ cálculo como estabelecido na reivindicação independente 9. O sistema inclui um computador para implementar o cálculo que emprega o item de dados. O computador inclui uma CPU que executa os passos de programa para detectar um erro no item de dados. É incluída uma memória no computador para armazenar o item de dados e para armazenar instruções máquina que controlam a CPU e determinam os passos do programa implementados pela CPU. Adicionalmente, o computador inclui um bus de dados, que faz o acoplamento da memória à CPU. As instruções máquina obrigam a CPU a utilizar uma função construtora para determinar um item de dados invertido, correspondente ao item de dados, quando o item de dados é armazenado na memória. O item de dados invertido é então armazenado na memória em associação com o item de dados. Além disso, as instruções máquina fazem com que a CPU chame o item de dados e o item de dados invertido da memória, quando o item de dados é a seguir requerido pela CPU, e a comparar o item de dados com o item de dados invertido, antes deste ser utilizado. Adicionalmente, a CPU é obrigada a indicar que ocorreu um erro quer no item de dados quer no item de dados invertido, se o item de dados já não corresponde ao item de dados invertido.
Outras funções implementadas pela CPU, em resposta às instruções máquina, são geralmente consistentes com os passos descritos acima em ligação com o método.
Breve descrição das figuras dos desenhos
Os aspectos anteriores e muitas das vantagens presentes deste invento serão mais facilmente apreciadas à medida que as mesmas se vão tomando melhor compreendidas pela referência à descrição detalhada seguinte, quando tomada em conjunto com os desenhos anexos, nos quais: a FIG. 1 é uma vista isométrica de um sistema de computador pessoal no qual é implementado o presente invento; a FIG. 2 é um diagrama de blocos dos componentes internos dentro do chassis do processador do computador pessoal, mostrado na FIG. 1; a FIG. 3 é um diagrama de blocos, representando uma pluralidade de células de memória, que mostra as várias maneiras diferentes pelas quais os dados armazenados nas células da memória podam sar corrompidos;
85 370 ΕΡ 0 835 489/ΡΤ 6 a FIG. 4 é um fluxograma que representa uma visão global dos passos lógicos implementados para executar o presente invento; a FIG. 5 é um fluxograma que mostra os pormenores dos passos implementados na definição de uma classe para um tipo de dados protegidos; a FIG. 6 é um fluxograma que mostra os passos implementados por um programador para incorporar um tipo de dados protegidos num programa; e a FIG. 7 é um fluxograma que representa a lógica implementada para verificar a integridade dos dados protegidos, quando é implementado um programa, no qual o presente invento é utilizado.
Descrição das concretizações preferidas O presente invento destina-se a ser implementado num microcontrolador (não mostrado) ou num computador, tal como um computador pessoal 10, o qual está representado na FIG. 1. O computador pessoal 10 é geraimente de concepção convencional, incluindo um chassis de processador 12, no qual são colocados os componentes internos de suporte físico do computador pessoal. No topo do chassis de processador 12 está um monitor de visualização 14, em que a resolução e as características de cor do mesmo não são particularmente relevantes no que se refere ao presente invento. Uma unidade de disco rígido 16 e uma unidade de disquetes 18 estão instaladas no painel frontal do chassis do processador, fornecendo a memória não volátil fixa para armazenagem de programas de aplicação, outros ficheiros, e dados. A unidade de disquetes 18 permite ao computador pessoal 10 fazer a leitura e escrita de ficheiros e/ou dados nas disquetes (não mostradas separadamente).
Um teclado 20 está acoplado ao chassis de processador 12, permitindo ao utilizador introduzir dados e instruções que controlam os programas que são executados no computador pessoal 10. A entrada do operador no sistema é também fornecida pela utilização de um rato 22 ou outro dispositivo de apontação, que controla um cursor no monitor de visualização 14; o cursor pode ser posicionado pelo utilizador para seleccionar itens do menu e objectos gráficos apresentados no monitor de visualização.
85 379 ΕΡ Ο 835 489/ΡΤ 7 A FIG. 2 representa os componentes convencionais incluídos dentro do chassis do processador 12, alguns dos quais são utilizados em ligação com a implementação do presente invento. Uma CPU 24 é proporcionada para executar instruções máquina, que implementam os passos do programa em aplicações que correm no computador pessoal 10. A CPU 24 está acoplada a um bus de dados 26, como estão outros componentes, incluindo uma memória 28. A memória 28 inclui tanto a memória apenas de leitura (ROM) como a memória de acesso aleatório (RAM). As instruções máquina requeridas para o arranque inicial do computador pessoal 10 estão armazenadas na ROM. A armazenagem volátil é fornecida para as instruções máquina que são carregadas quando as aplicações são corridas e para armazenamento de variáveis e outros dados requeridos para executar tais programas. Uma interface de visualização 30 é utilizada para accionar o monitor de visualização 14 em resposta os dados de vídeo, transferidos para a interface de visualização pelo bus de dados 26. Uma porta série/rato 32, um interface 34 para unidade de disco rígida e unidade de disquetes e um interface para teclado 36 estão acoplados também ao bus de dados. A função de cada um dos componentes representados na FIG. 2 em relação à sua utilização no computador pessoal 10 é bem conhecida pelos técnicos de competência normal na técnica e não necessitam de ser explicada mais para proporcionar uma descrição habilitante do presente invento. Deve ser notado que podem ser utilizados vários tipos de CPU no presente invento diferentes daqueles utilizados tipicamente com os computadores pessoais. Por exemplo, se o presente invento é implementado num controlador para outros dispositivos, a CPU 24 e a memória 28 podem ser substituídas por um microcontrolador (não mostrado) que inclui ambos estes componentes funcionais. O computador pessoal 10 está representado na FIG. 1 como um sistema de secretária; no entanto, o presente invento pode ser implementado virtualmente em qualquer tipo de computador, incluindo os computadores portáteis e postos de trabalho em rede. É também facilmente implementado num microcontrolador utilizado para controlar um dispositivo de suporte físico tal como um componente médico. Embora a concretização do microcontrolador do invento não seja mostrada nas figuras, estes dispositivos são tão bem conhecidos no campo da tecnologia de controlo que não há necessidade de providenciar detalhes acerca das concretizações. Operativamente, as funções de concretização do microcontrolador são em muito da mesma maneira que as da concretização que executa um programa no computador pessoal 10. Além disso, deverá ser notado que o presente invento pode ser incluído numa variedade de diferentes programas de aplicação, sem limitações quanto ao tipo. Virtualmcntc qualquer programa que
85 370 ΕΡ 0 835 489/ΡΤ 8 utiliza dados pode beneficiar da inclusão do presente invento para detectar erros nos dados antes de serem utilizados dados errados.
Como acima explicado nos antecedentes do invento, os dados armazenados na memória de um microcontrolador ou de um computador, tal como o computador pessoal 10 estão sujeitos a corrupção devida a várias causas. A FIG. 3 fornece vários exemplos, que mostram algumas das maneiras pelas quais os dados armazenados na memória pode ser corrompidos. Nesta figura, está representada uma pluralidade de células de memória 40 para mostrar os bytes de dados armazenados na memória originalmente na forma binária, antes de experimentar, pelo menos, alguma corrupção devida aos efeitos de uma descarga estática ou radiação, que está representada por um faísca iluminante 42. No primeiro exemplo de corrupção, o byte armazenado numa única célula de monitor de vídeo 44 é alterado nas células de memória 40'. No byte armazenado na célula de memória 44', o segundo bit menos significante (LSB) dos dados alterou-se. Especificamente, como armazenado originalmente, a célula de memória 44 contém o valor binário “11000101"; este valor é alterado na célula de memória 44' para “11000111”. (O bit corrompido está sublinhado de modo a indicar mais claramente a alteração que ocorreu).
No segundo exemplo de corrupção de dados, mostrado na FIG. 3, os dados contidos nas células de memória 40" foram estabelecidos em zeros em resultado da descarga estática ou radiação. Alternativamente, o efeito da descarga estática ou radiação pode causar que todos os dados sejam estabelecidos em uns binários, como indicado nas células de memória 40"'. Deve ser evidente que as condições de dados corruptos, mostradas nas células de memória 40" e 40"' deverão impedir a comparação das duas cópias dos dados armazenados originalmente na memória, uma vez que após a corrupção, ambas as cópias devem ser afectadas da mesma maneira, impedindo a detecção da corrupção.
Pelo contrário, o presente invento evita este problema pela armazenagem dos itens de dados críticos na memória tanto nas suas formas padrão como na sua forma de bit invertido (espelho). Quando o item de dados é invertido, cada bit binário do item de dados é alterado para o valor binário oposto, isto é, cada zero binário é alterado para um um binário e cada um binário é alterado para um zero binário. Assim, por exemplo, o valor de bit invertido de “10010010” é “01101101”. Antes do item de dados ser subsequentemente utilizado num cálculo ou para qualquer outro fim por um programa aplicação, o item de dados deve primeiro ser
85 379 ΕΡ Ο 835 489/ΡΤ 9 obtido da sua localização de armazenagem na memória. É, então, ou invertido e comparado com as suas formas de bit invertido anteriores ou o item de dados de bit invertido anteriormente é obtido da rnemúria e invertido para se obter a forma padrão para comparação com o item de dados, obtido exactamente da memória. Uma alteração quer no item de dados armazenado originalmente ou na correspondente forma de bit invertido armazenada originalmente será assim detectada, devido a uma diferença entre os dois valores que são comparados.
Na FIG. 4, é apresentada num fluxograma uma visão geral dos passos envolvidos no presente invento, que começam no bloco inicial 50. No bloco 52, é feita uma selecção do item(s) de dados que serão verificados em relação à corrupção ou erro. Em muitas ocasiões, muitos dos dados utilizados no programa não são suficientemente críticos para justificar o excesso de armazenagem adicional requerida para armazenar a forma invertida dos dados ou o excesso de cálculo (mesmo que ligeiro) requerido para detectar os erros nos dados. O utilizador seleccionará assim apenas os itens de dados que são de importância crítica num programa de “itens de dados protegidos”, isto é, os itens de dados em que serão verificados os erros utilizando o presente invento.
No bloco 54, o utilizador define a classe (ou tipo de dados definidos pelo utilizador) para o tipo de dados protegidos. Os pormenores da lógica envolvida na concretização deste passo estão representados no fluxograma da FIG. 5, a começar no bloco 70. Como indicado nesse fluxograma, para cada o tipo de dados protegidos, o utilizador executa os passos indicados, começando com o passo de definição de armazenamento para o item de dados protegido, como proporcionado no bloco 72. Neste passo, o utilizador assegurará que o armazenamento apropriado na memória é regulado para cada item de dados protegido. Este mesmo passo deverá ser requerido para qualquer item de dados para assegurar que a memória apropriada e adequada é atribuída ao item de dados. No bloco 74, o utilizador define o armazenamento requerido para a cópia bit invertido (espelho) do item de dados protegido, que é também armazenado na memória, em associação com o item de dados protegido a partir do qual foi produzido. O presente invento é, de preferência, implementado na linguagem C++. Uma das vantagens da utilização desta linguagem é a sua inclusão das funções construtoras. No bloco 76, a lógica fornece a declaração da(s) função(ões) construtora(s) utilizadas para criar um exemplo ou “utilização única) do tipo de dados protegidos e utilizado para converter tipos de dados padrão (número inteiro,
85 370 ΕΡ 0 835 489/ΡΤ 10 ponto flutuante, etc.) no tipo de dados protegidos. Na linguagem C++, a função construtora realiza eficientemente esta tarefa com a mínima quantidade de sobrecarga do processador (ciclos).
Uma outra capacidade incluída dentro das linguagens C++ (e outras) é o previsão de funções de conversão, utilizadas para converter entre tipos de dados. Uma função de conversão é declarada para o tipo de dados protegidos para incluir a conversão do tipo de dados protegidos nos vários tipos de dados padrão que serão utilizados no programa. Uma vez definida a função de conversão, não é necessário ao programador incluir explicitamente os passos de programação a fim de implementar as funções de conversão cada vez que o item de dados protegido é requerido para utilização no programa aplicação. Pelo contrário, estes passos serão automaticamente implementados pela linguagem. Um exemplo do ficheiro de cabeçalho para definição de uma classe espelhojnt é como segue. class int mirror privado: int value; int valorjnirror público: int_mirror(int); //funções membro normal void store (int new_value); void compar (void): int get(void); //funções de conversão operator int (); }; // valor inteiro //publicar espelho invertido do valor inteiro //construtor //armazenar novo valor e seu espelho //comparar o valor com seu espelho //adquirir valor //converter mirror int num inteiro
No hloco 78, o utilizador declara as funções de conversão empregues para verificar a integridade dos dados como parte da conversão do tipo de dados protegidos num ou mais tipos de dados padrão. Nos blocos 80 e 82 o utilizador define a seguir, respectivamente, as funções construtoras especificas e as funções de conversão requeridas. Um exemplo da função construtora e da função de cuuversão para tratar com dados inteiros é apresentado abaixo. 11 ΕΡ Ο 835 489/ΡΤ //CONSTRUTOR mirror_int_mirror_int (int_value) { store (value); } //FUNÇÕES MEMBRO NORMAL void mirror_int_store (in new_value) r \ value = new_value; mirror_value = ~new_value; } void mirror_int_compare(void) char *error_string=” se (value ! = ~mirror_value) { sprintf ( error_string, “Corrupted mirror_int %p: %d = %d”, este, valor, ~mirror_value); // FUNÇÃO DE TRATAMENTO DE ERROS DE CHAMADA sistem_error (error_string); } int mirror_integer(void) { int temp = value; compare(); return temp; } //FUNÇÕES DE CONVERSÃO mirror_int_operator int() { return (get()); } 12 ΕΡ Ο 835 489/ΡΤ Ο bloco 84 fornece a definição de uma função de acção que será utilizada se qualquer corrupção de dados é detectada num item de dados protegido. Neste passo, o utilizador pude proporcionar que seja visualizada uma mensagem de aviso e/ou que, além disso, a execução da aplicação, na qual o presente invento é utilizado, seja interrompida. No entanto, a resposta específica à detecção da corrupção de dados dependerá do programa de aplicação particular, no qual o presente invento é utilizado. Em seguida, a lógica continua no bloco 86, voltando para a visão geral mostrada na FIG. 4.
Voltando a referir a FIG. 4, o bloco 56 proporciona a inclusão do tipo de dados protegidos no programa ou aplicação, em que o presente invento é empregue. Os pormenores adicionais deste passo estão representados na FIG. 6, começando com o bloco 90, que indica que os passos seguintes são implementados pelo programador, que faz a escrita do programa de aplicação, no qual é incluído o presente invento.
No bloco 92, o programador inclui o ficheiro de cabeçalho do tipo de dados protegidos, em que são definidos ou declarados exemplos do tipo de dados protegidos. Este passo será evidente para o técnico normal nas técnicas de programação, uma vez que seja incluído o ficheiro de cabeçalho apropriado para cada uma das funções da linguagem de programação, que são utilizadas no programa.
No bloco 94, o programador inclui indicações de definição para cada item de dados protegido, indicando que o item é do tipo de dados protegidos. Finalmente, no bloco 96, o programador deve incluir uma indicação de declaração para cada item de dados protegido, utilizado fora do âmbito da definição, indicando que o item é do tipo de dados protegidos. A lógica continua no bloco 98, voltando para a visão geral mostrada na FIG. 4. O próximo passo na FIG. 4 é num bloco 58. Este passo proporciona a construção e o teste do programa, no qual o é empregue presente invento. Uma vez que este passo tem pouco a ver com o presente invento, a não ser assegurar que os erros de programação relacionados sejam detectados e corrigidos, não sendo providenciados detalhes adicionais. O bloco 60 indica que o programa, construído e testado com sucesso, está a correr, pela sua execução na CPU. Os pormenores adicionais dos passos que são 13 ΕΡ Ο 835 489/ΡΤ implementados em ligação com o presente invento, quando é feito correr o programa, no qual o mesmo está incluído, são mostrados na FIG. 7, começando no bloco 100. No bloco 102, são criados automaticamente os itens de dados protegidos, utilizando funções construtoras. Uma vez que as funções construtoras definem elementos de dados dos tipos de dados protegidos, compreendendo ambos os itens de dados protegidos e o item de dados de bit invertido correspondente, a criação e o armazenamento destes itens de dados são tratados em contínuo pela função construtora durante a execução do programa aplicação. A FIG. 7 não mostra qualquer dos outros passos implementados, quando é corrido um programa de aplicação específico, que inclui o presente invento. Pelo contrário, apenas os passos que envolvem o presente invento estão representados. Por exemplo, o bloco decisão 104 determina se um item de dados protegido está a ser acedido pelo programa. Se não, um bloco decisão 106 determina se estão a ser escritos dados num item de dados protegido. Uma resposta negativa a ambos os blocos de decisão conduz ao bloco 102. No entanto, se estão a ser escritos dados para um item de dados protegido, o bloco 108 providencia a chamada da apropriada função construtora para converter os dados para o tipo de dados protegido. Assim, uma variável de ponto flutuante é convertida no tipo de dados protegido, se a variável de ponto flutuante é atribuída a um item de dados protegido. O bloco 110 chama o armazenamento do item de dados protegido e do seu item de dados de bit invertido associado na memória (RAM). A lógica volta depois para o bloco 102.
Voltando para o bloco decisão 104, se um item de dados protegido está a ser acedido pelo programa, um bloco 112 indica que deve ser utilizada a função de conversão apropriada para inverter o item de dados protegido (produzindo dados de teste para fins de comparação). Está implícito dentro do bloco 112 a recuperação do item de dados protegido da memória, em que o mesmo está armazenado. A seguir, no bloco 114, os dados de teste resultantes da inversão do item de dados protegido, que acabou de ser acedido a partir da memória é comparado com o item de dados protegidos armazenados, o qual foi recuperado da memória. Uma alteração quer no item de dados protegido quer no seu item de dados de bit invertido correspondente dentro da memória, será evidente nesta comparação. Altemativamente, pode ser feita de novo a escrita do passo 112 para proporcionar a inversão do item de dados protegido e armazenado, para produzir os dados de teste e o passo no bloco 114 pode ser feita de novo a escrita para ΕΡ Ο 835 489/ΡΤ 14 comparar os dados de teste com o item de dados protegido e armazenado. Os resultados de quaisquer das comparações são equivalentes.
No bloco decisão 116, a CPU determina se a integridade dos dados está bem. Por outras palavras, qualquer diferença, entre os dados de teste e o valor com o qual é comparada, indicará que ocorreu um erro num dos dois valores dos dados, o que leva a um resultado negativo do bloco decisão 116. Em muitos casos, no entanto, os dois valores comparados serão iguais, o que leva ao bloco 118, que proporciona a conversão do item de dados protegido no tipo de dados padrão apropriados para utilização no programa. Subsequentemente, o bloco 120 indica que o item de dados convertidos é utilizado no programa. A lógica prossegue em seguida para o bloco 124, o qual indica que continuam os passos mostrados na FIG. 4. Uma resposta negativa ao bloco decisão 116, que indica que foi detectado um erro nos dados, que foram armazenados na memória, origina que a lógica procede para o bloco 122. No bloco 122 são implementadas a(s) função(ões) de acção predefinida(s), criadas anteriormente para responder aos dados corrompidos. Estas funções possivelmente alertarão o operador e/ou darão qualquer outra resposta apropriada, dependendo do programa de aplicação particular envolvido. Depois disso, a lógica deve prosseguir para o bloco 124. Referindo de novo a FIG. 4, o bloco 62 indica que o programa, o qual inclui o presente invento, é feito correr ou então terminado, concluindo o fluxo da lógica.
Embora o presente invento tenha sido descrito em ligação com a forma preferida de o pôr em prática, os técnicos normais na técnica compreenderão que podem ser feitas muitas modificações no mesmo dentro do âmbito das reivindicações que se seguem. Por conseguinte, não se pretende que o âmbito do invento seja, de qualquer maneira, limitado pela descrição acima, mas pelo contrário seja inteiramente determinado pela referência às reivindicações que se seguem. 2QQ1
Lisboa,
Por ABBOTT LABORATORIES - O AGENTE OF
IOàOi ruwHà tmmk\
Claims (13)
- 85 379 ΕΡ Ο 835 489/ΡΤ REIVINDICAÇÕES 1 - Método para detectar um erro num item de dados, compreendendo os passos de: (a) seleccionar o item de dados de uma pluralidade de itens de dados; (b) proporcionar uma pluralidade de funções, que incluem uma função construtora, uma função de conversão e uma função de tratamento de erros; (c) empregar a função construtora para associar um tipo de dados protegidos com o item de dados, determinar um item de dados invertido, correspondente a um item de dados, quando o item de dados é primeiro armazenado na memória, sendo o item de dados invertido também armazenado na memória em associação com o item de dados ao qual o mesmo corresponde; (d) chamar o item de dados e o item de dados invertido da memória, quando o item de dados é requerido num programa; (e) determinar se o item de dados e o item de dados invertido ainda correspondem um ao outro antes de um dos mesmos ser utilizado pelo programa; e (f) indicar que ocorreu um erro num dos itens de dados e de dados invertidos com a função de tratamento de erros, se o item de dados já não corresponde ao item de dados invertido e ainda se o item de dados corresponde ao item de dados invertido, empregando a função de conversão, para converter o tipo de dados protegidos num tipo de dados padrão, que será utilizado no programa.
- 2 - Método de acordo com a reivindicação 1, em que o passo de empregar uma função construtora compreende, além disso, o passo de identificar o item de dados como um item de dados protegido, que será verificado em relação a erros, de entre uma pluralidade de itens de dados possíveis utilizados pelo programa.
- 3 - Método de acordo com as reivindicações 1 ou 2, em que o passo de empregar a função construtora compreende, além disso, o passo de inverter o item de dados, para produzir um item de dados invertido de teste para comparação com o item de dados invertido. ΕΡ Ο 835 489/ΡΤ 2/4
- 4 - Método de acordo com as reivindicações 1 ou 2, em que o passo de empregar a função construtora compreende, além disso, o passo de inverter o item de dados invertido, para produzir um item de dados de teste para comparação com o item de dados.
- 5 - Método de acordo com a reivindicação 4, em que o passo de inverter o item de dados invertido compreende o passo de utilizar a função de conversão para implementar a inversão.
- 6 - Método de acordo com a reivindicação 5, em que a função de conversão inclui um operador, sendo o operador introduzido de novo para permitir partilhar o operador entre uma pluralidade de tarefas, nas quais é utilizada uma pluralidade de outros itens de dados invertidos.
- 7 - Método de acordo com a reivindicação 1, que compreende, além disso, o passo de indicar um tipo de dados protegidos para o item de dados que indica que o item de dados tem um item de dados invertido associado ao mesmo.
- 8 - Método de acordo com a reivindicação 7, em que os passos (a) e (d) são implementados automaticamente para cada item de dados seleccionado que é indicado para ser do tipo que tem o item de dados invertido associado com o mesmo.
- 9 - Sistema para detectar um erro num item de dados antes do item de dados ser empregue num cálculo, que compreende: (a) um computador (10) para implementar o cálculo que emprega o item de dados, incluindo o computador (10): (i) uma unidade de processamento central (24), que executa os passos de programa para detectar um erro no item de dados; (ii) uma memória (28), que contém o item de dados, uma pluralidade de funções, que inclui uma função construtora, uma função de conversão e uma função de tratamento de erros, e instruções máquina que controlam a unidade de processamento central (24) e determinam os passos de programa implementados pela unidade de processamento central (24); e ΕΡ Ο 835 489/ΡΤ 3/4 (iii) um bus de dados (26), que faz o acoplamento da memória (28) à unidade de processamento central (24); e (b) as instruções máquina, que fazem com que a unidade de processamento central (24): (i) seleccione o item de dados de uma pluralidade de itens de dados; (ii) aceda à pluralidade das funções; (iii) associar, pelo emprego da função construtora, um tipo de dados protegido com o item de dados e determinar um item de dados invertido, que corresponde ao item de dados, quando o item de dados é armazenado na memória (28), sendo também o item de dados invertido armazenado na memória (28) em associação com o item de dados; (iv) chamar o item de dados e o item de dados invertido da memória (28) quando o item de dados é requerido a seguir pela unidade de processamento central (24); (v) determinar se o item de dados e o item de dados invertido ainda correspondem um ao outro antes de um dos mesmos ser utilizado pela unidade de processamento central (24); e (vi) indicar, pela função de tratamento de erros, que ocorreu um erro, num dos item de dados e item de dados invertidos, se o item de dados que é comparado ao item de dados invertido já não corresponde ao item de dados invertido e, ainda, se o item de dados corresponde ao item de dados invertido, convertendo o tipo de dados protegidos num tipo de dados padrão, empregando a função de conversão e permitindo que a unidade de processamento central (24) utilize o item de dados.
- 10 - Sistema de acordo com a reivindicação 9, em que os passos de programa, implementados pela unidade de processamento central (24), invertem o item de dados invertido para produzir um item de dados de teste para comparação com o item de dados.
- 11 - Sistema de acordo com a reivindicação 10, em que os passos de programa, implementados pela unidade de processamento central (24) para 85 37Θ ΕΡ Ο 835 489/ΡΤ 4/4 inverter ο item de dados invertido, utilizam uma função de conversão de uma pluralidade de funções.
- 12 - Sistema de acordo com a reivindicação 11, em que a função de conversão é introduzida de novo para permitir partilhar a função de conversão entre uma pluralidade de tarefas implementadas pela unidade de processamento central (24), incluindo a pluralidade de tarefas uma pluralidade de outros itens de dados invertidos.
- 13 - Sistema de acordo com e uma ou mais das reivindicações 9 a 12, em que o tipo de dados protegido, indicado para o item de dados na definição dos passos de programa, indica que o item de dados tem um item de dados invertido associado ao mesmo. Lisboa, .cííJí Por ABBOTT LABORATORIES - O AGENTE OFICIAL - O ADJUNTOANTÓNIO JOÀO BA CUNHA FERREIRA Ag. Of. Pr. Ind. Kue das Flores, 74 - 4.” ie@Q LISBOA
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/484,704 US5699509A (en) | 1995-06-07 | 1995-06-07 | Method and system for using inverted data to detect corrupt data |
Publications (1)
Publication Number | Publication Date |
---|---|
PT835489E true PT835489E (pt) | 2001-04-30 |
Family
ID=23925246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PT96919156T PT835489E (pt) | 1995-06-07 | 1996-06-05 | Metodo e sistema para utilizar dados invertidos para detectar dados corrompidos |
Country Status (12)
Country | Link |
---|---|
US (1) | US5699509A (pt) |
EP (1) | EP0835489B1 (pt) |
JP (1) | JPH11507450A (pt) |
AT (1) | ATE197510T1 (pt) |
AU (1) | AU707825B2 (pt) |
CA (1) | CA2216636A1 (pt) |
DE (1) | DE69610920T2 (pt) |
DK (1) | DK0835489T3 (pt) |
ES (1) | ES2153583T3 (pt) |
GR (1) | GR3035256T3 (pt) |
PT (1) | PT835489E (pt) |
WO (1) | WO1996041261A1 (pt) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5813002A (en) * | 1996-07-31 | 1998-09-22 | International Business Machines Corporation | Method and system for linearly detecting data deviations in a large database |
US6947903B1 (en) * | 1999-08-06 | 2005-09-20 | Elcommerce.Com.Inc. | Method and system for monitoring a supply-chain |
JP2001338497A (ja) * | 2000-05-24 | 2001-12-07 | Fujitsu Ltd | メモリ試験方法 |
US6751757B2 (en) * | 2000-12-07 | 2004-06-15 | 3Ware | Disk drive data protection using clusters containing error detection sectors |
DE10113319A1 (de) * | 2001-03-20 | 2002-09-26 | Conti Temic Microelectronic | Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems |
US7130229B2 (en) * | 2002-11-08 | 2006-10-31 | Intel Corporation | Interleaved mirrored memory systems |
US7028156B1 (en) | 2003-07-01 | 2006-04-11 | Veritas Operating Corporation | Use of read data tracking and caching to recover from data corruption |
US7028139B1 (en) | 2003-07-03 | 2006-04-11 | Veritas Operating Corporation | Application-assisted recovery from data corruption in parity RAID storage using successive re-reads |
US8065161B2 (en) | 2003-11-13 | 2011-11-22 | Hospira, Inc. | System for maintaining drug information and communicating with medication delivery devices |
US9123077B2 (en) | 2003-10-07 | 2015-09-01 | Hospira, Inc. | Medication management system |
EP1533695B1 (en) * | 2003-11-19 | 2013-08-07 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Updating data in a mobile terminal |
DE102004021088A1 (de) * | 2004-04-29 | 2005-11-17 | Giesecke & Devrient Gmbh | Verfahren zum Schützen von Daten eines Datenträgers gegen DFA-Angriffe |
EP1712996A1 (en) * | 2005-04-15 | 2006-10-18 | STMicroelectronics S.r.l. | Method and system for configuring registers in microcontrollers, related microcontroller and computer program product |
US7404057B2 (en) * | 2005-06-24 | 2008-07-22 | Dell Products L.P. | System and method for enhancing read performance of a memory storage system including fully buffered dual in-line memory modules |
EP2092470A2 (en) | 2006-10-16 | 2009-08-26 | Hospira, Inc. | System and method for comparing and utilizing activity information and configuration information from mulitple device management systems |
WO2008059480A1 (en) * | 2006-11-16 | 2008-05-22 | Sandisk Il Ltd. | Systems and methiods for protection of data integrity of updatable data against unauthorized modification |
US20080120481A1 (en) * | 2006-11-16 | 2008-05-22 | Sandisk Il Ltd. | Methods For Protection Of Data Integrity Of Updatable Data Against Unauthorized Modification |
JP2009294869A (ja) * | 2008-06-04 | 2009-12-17 | Toshiba Corp | メモリシステム |
DE102008035095A1 (de) * | 2008-07-28 | 2010-02-11 | Vincotech (Germany) Gmbh | Verfahren und Vorrichtung um Änderungen an Daten zu erkennen |
US8271106B2 (en) | 2009-04-17 | 2012-09-18 | Hospira, Inc. | System and method for configuring a rule set for medical event management and responses |
JP5680920B2 (ja) * | 2009-09-24 | 2015-03-04 | 株式会社テララコード研究所 | Rfidタグ、及びデータ管理システム |
ES2959510T3 (es) | 2011-10-21 | 2024-02-26 | Icu Medical Inc | Sistema de actualización de dispositivos médicos |
WO2014138446A1 (en) | 2013-03-06 | 2014-09-12 | Hospira,Inc. | Medical device communication method |
EP3039596A4 (en) | 2013-08-30 | 2017-04-12 | Hospira, Inc. | System and method of monitoring and managing a remote infusion regimen |
US9662436B2 (en) | 2013-09-20 | 2017-05-30 | Icu Medical, Inc. | Fail-safe drug infusion therapy system |
US10311972B2 (en) | 2013-11-11 | 2019-06-04 | Icu Medical, Inc. | Medical device system performance index |
TR201908852T4 (tr) | 2013-11-19 | 2019-07-22 | Icu Medical Inc | İnfüzyon pompası otomasyon sistemi ve yöntemi. |
WO2015168427A1 (en) | 2014-04-30 | 2015-11-05 | Hospira, Inc. | Patient care system with conditional alarm forwarding |
US9724470B2 (en) | 2014-06-16 | 2017-08-08 | Icu Medical, Inc. | System for monitoring and delivering medication to a patient and method of using the same to minimize the risks associated with automated therapy |
US9539383B2 (en) | 2014-09-15 | 2017-01-10 | Hospira, Inc. | System and method that matches delayed infusion auto-programs with manually entered infusion programs and analyzes differences therein |
CA2988094A1 (en) | 2015-05-26 | 2016-12-01 | Icu Medical, Inc. | Infusion pump system and method with multiple drug library editor source capability |
US9866574B1 (en) * | 2015-06-01 | 2018-01-09 | Amazon Technologies, Inc. | Protected data type handling awareness |
CA3030786A1 (en) | 2016-07-14 | 2018-01-18 | Icu Medical, Inc. | Multi-communication path selection and security system for a medical device |
US11152109B2 (en) | 2018-07-17 | 2021-10-19 | Icu Medical, Inc. | Detecting missing messages from clinical environment |
AU2019306492A1 (en) | 2018-07-17 | 2021-02-11 | Icu Medical, Inc. | Systems and methods for facilitating clinical messaging in a network environment |
NZ771914A (en) | 2018-07-17 | 2023-04-28 | Icu Medical Inc | Updating infusion pump drug libraries and operational software in a networked environment |
US10861592B2 (en) | 2018-07-17 | 2020-12-08 | Icu Medical, Inc. | Reducing infusion pump network congestion by staggering updates |
US10692595B2 (en) | 2018-07-26 | 2020-06-23 | Icu Medical, Inc. | Drug library dynamic version management |
AU2019309766B2 (en) | 2018-07-26 | 2024-06-13 | Icu Medical, Inc. | Drug library management system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3312873A1 (de) * | 1983-04-11 | 1984-10-25 | Deutsche Fernsprecher Gesellschaft Mbh Marburg, 3550 Marburg | Verfahren zur datensicherung in speichern |
GB2158622A (en) * | 1983-12-21 | 1985-11-13 | Goran Anders Henrik Hemdal | Computer controlled systems |
DE3404782A1 (de) * | 1984-02-10 | 1985-08-14 | Nixdorf Computer Ag, 4790 Paderborn | Verfahren und schaltungsanordnung zum pruefen eines programms in datenverarbeitungsanlagen |
JPS6152758A (ja) * | 1984-08-22 | 1986-03-15 | Hioki Denki Kk | メモリのエラ−検出装置 |
US4782487A (en) * | 1987-05-15 | 1988-11-01 | Digital Equipment Corporation | Memory test method and apparatus |
JP3066753B2 (ja) * | 1987-12-24 | 2000-07-17 | 富士通株式会社 | 記憶制御装置 |
US5361351A (en) * | 1990-09-21 | 1994-11-01 | Hewlett-Packard Company | System and method for supporting run-time data type identification of objects within a computer program |
US5488727A (en) * | 1991-09-30 | 1996-01-30 | International Business Machines Corporation | Methods to support multimethod function overloading with compile-time type checking |
US5513315A (en) * | 1992-12-22 | 1996-04-30 | Microsoft Corporation | System and method for automatic testing of computer software |
US5390325A (en) * | 1992-12-23 | 1995-02-14 | Taligent, Inc. | Automated testing system |
DE59308113D1 (de) * | 1993-03-11 | 1998-03-12 | Francotyp Postalia Gmbh | Verfahren zum Speichern sicherheitsrelevanter Daten |
-
1995
- 1995-06-07 US US08/484,704 patent/US5699509A/en not_active Expired - Lifetime
-
1996
- 1996-06-05 AT AT96919156T patent/ATE197510T1/de not_active IP Right Cessation
- 1996-06-05 PT PT96919156T patent/PT835489E/pt unknown
- 1996-06-05 WO PCT/US1996/009257 patent/WO1996041261A1/en active IP Right Grant
- 1996-06-05 AU AU61566/96A patent/AU707825B2/en not_active Ceased
- 1996-06-05 CA CA002216636A patent/CA2216636A1/en not_active Abandoned
- 1996-06-05 EP EP96919156A patent/EP0835489B1/en not_active Expired - Lifetime
- 1996-06-05 DE DE69610920T patent/DE69610920T2/de not_active Expired - Fee Related
- 1996-06-05 DK DK96919156T patent/DK0835489T3/da active
- 1996-06-05 ES ES96919156T patent/ES2153583T3/es not_active Expired - Lifetime
- 1996-06-05 JP JP9501615A patent/JPH11507450A/ja not_active Withdrawn
-
2001
- 2001-01-17 GR GR20010400076T patent/GR3035256T3/el not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
ATE197510T1 (de) | 2000-11-11 |
DE69610920T2 (de) | 2001-03-15 |
WO1996041261A1 (en) | 1996-12-19 |
GR3035256T3 (en) | 2001-04-30 |
EP0835489B1 (en) | 2000-11-08 |
ES2153583T3 (es) | 2001-03-01 |
AU6156696A (en) | 1996-12-30 |
CA2216636A1 (en) | 1996-12-19 |
AU707825B2 (en) | 1999-07-22 |
EP0835489A1 (en) | 1998-04-15 |
DE69610920D1 (de) | 2000-12-14 |
DK0835489T3 (da) | 2001-02-05 |
JPH11507450A (ja) | 1999-06-29 |
US5699509A (en) | 1997-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
PT835489E (pt) | Metodo e sistema para utilizar dados invertidos para detectar dados corrompidos | |
US10310926B2 (en) | Data error detection in computing systems | |
JP5512892B2 (ja) | メモリのセグメントをプロテクトするための方法及び装置 | |
US6035426A (en) | System for memory error checking in an executable | |
US8261130B2 (en) | Program code trace signature | |
Borchert et al. | Generative software-based memory error detection and correction for operating system data structures | |
US8341491B2 (en) | System and method for providing data integrity in a non-volatile memory system | |
US10218387B2 (en) | ECC memory controller supporting secure and non-secure regions | |
US7831858B2 (en) | Extended fault resilience for a platform | |
Gorjiara et al. | Yashme: detecting persistency races | |
KR20230161517A (ko) | 오프로드된 동작에 사용된 데이터 오류 검사 | |
Liu et al. | Flexible and efficient memory object metadata | |
US10360104B2 (en) | ECC memory controller to detect dangling pointers | |
US6453427B2 (en) | Method and apparatus for handling data errors in a computer system | |
KR20220095986A (ko) | 임베디드 프로세서의 소스 코드의 컴파일링 방법 및 컴파일러 | |
CN111061591A (zh) | 基于存储器完整性检查控制器实现数据完整性检查的系统和方法 | |
Nezu et al. | Supports for Testing Memory Error Handling Code of In-memory Key Value Stores | |
BR112016025201B1 (pt) | Método para realizar cálculos à prova de falhas, dispositivo para realizar cálculos à prova de falhas para operar um hardware, e, método para compilar um código para operar um hardware em um modo à prova de falhas | |
TWI685787B (zh) | 電腦主機裝置及其自動選擇客製化程式的方法 | |
NEZU et al. | Runtime Tests for Memory Error Handlers of In-memory Key Value Stores using MemFI | |
Zhang | Building Reliable Software for Persistent Memory | |
JP2023059860A (ja) | 完全性検査を伴うインプレースアーキテクチャの実行 | |
TW202234230A (zh) | 記憶體檢查方法、記憶體檢查裝置及記憶體檢查系統 | |
JPS6031650A (ja) | 計算機 | |
SE1300783A1 (sv) | Hantering av mjuka fel i samband med datalagring |