ES2333189A1 - Procedimiento corrector para un micro-procesador reprogramable. - Google Patents

Procedimiento corrector para un micro-procesador reprogramable. Download PDF

Info

Publication number
ES2333189A1
ES2333189A1 ES200702347A ES200702347A ES2333189A1 ES 2333189 A1 ES2333189 A1 ES 2333189A1 ES 200702347 A ES200702347 A ES 200702347A ES 200702347 A ES200702347 A ES 200702347A ES 2333189 A1 ES2333189 A1 ES 2333189A1
Authority
ES
Spain
Prior art keywords
routine
application
corrective
code
integrity
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.)
Granted
Application number
ES200702347A
Other languages
English (en)
Other versions
ES2333189B1 (es
Inventor
Markus Fislage
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of ES2333189A1 publication Critical patent/ES2333189A1/es
Application granted granted Critical
Publication of ES2333189B1 publication Critical patent/ES2333189B1/es
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Abstract

Procedimiento corrector para un micro-procesador reprogramable según la invención prevé los siguientes pasos: aprontamiento del micro-procesador con una memoria semiconductora reprogramable no volátil; archivado de al menos una rutina aplicativa en la memoria semiconductora reprogramable no volátil; aprontamiento de un código corrector para al menos una rutina aplicativa; aprontamiento de un código de comprobación para al menos una rutina aplicativa; comprobación de la integridad de al menos una rutina aplicativa archivada mediante el código de comprobación; ejecución de una corrección mediante el código corrector, cuando falta la integridad de la rutina aplicativa, en donde la corrección se realiza en la memoria semiconductora reprogramable no volátil; comprobación de la integridad de la rutina aplicativa corregida mediante el código de comprobación; y adopción de una corrección exitosa, cuando se confirma la integridad de la rutina aplicativa corregida.

Description

Procedimiento corrector para un micro-procesador reprogramable.
La presente invención se refiere a un procedimiento corrector para un micro-procesador reprogramable y a un micro-procesador reprogramable para llevar a cabo el procedimiento corrector.
Múltiples aparatos de control utilizan un micro-procesador, que ejecuta rutinas aplicativas predeterminadas de forma fija. Estas rutinas aplicativas se almacenan normalmente en el micro-procesador. El microprocesador presenta para esto una región de memoria que puede regrabarse una o varias veces. El micro-procesador carga las diferentes inducciones directamente desde la región de memoria en su registro de ejecución. La región de memoria se materializa normalmente como EEPROM. Mediante aparatos de programación externos pueden archivarse nuevas rutinas aplicativas en bloques en la EEPROM.
En las memorias regrabables pueden modificarse aisladamente diferentes bits a causa de influencias perturbadoras. Estos errores de bits aislados pueden conducir después a que las rutinas de control no se ejecuten o lo hagan de forma defectuosa. En aparatos de control especialmente importantes para la seguridad, como por ejemplo para un sistema de airbag, no es tolerable un comportamiento defectuoso de este tipo. En el caso de aparatos de control de este tipo se comprueba por ello si las rutinas de control y sus datos correspondientes están archivados sin errores, antes de que se ejecuten. Si no es este el caso se bloquea el aparato de control.
Manifiesto de la invención
El procedimiento conforme a la invención con las particularidades de la reivindicación 1 crea ventajosamente una corrección de rutinas aplicativas archivadas, antes de que se ejecuten.
El procedimiento corrector para un micro-procesador reprogramable prevé los pasos siguientes:
(a)
aprontamiento del micro-procesador con una memoria semiconductora reprogramable no volátil;
(b)
archivado de al menos una rutina aplicativa en la memoria semiconductora reprogramable no volátil;
(c)
aprontamiento de un código corrector para al menos una rutina aplicativa;
(d)
aprontamiento de un código de comprobación para al menos una rutina aplicativa;
(e)
comprobación de la integridad de al menos una rutina aplicativa archivada mediante el código de comprobación;
(f)
ejecución de una corrección mediante el código corrector, cuando falta la integridad de la rutina aplicativa, en donde la corrección se realiza en la memoria semiconductora reprogramable no volátil;
(g)
comprobación de la integridad de la rutina aplicativa corregida mediante el código de comprobación; y
(h)
adopción de una corrección exitosa, cuando se confirma la integridad de la rutina aplicativa corregida.
Una medida del procedimiento conforme a la invención consiste en corregir una rutina aplicativa del micro-procesador reprogramable, en el caso de que se reconozca como defectuosa. Por un lado se consigue una elevada seguridad con relación a la integridad de la rutina aplicativa, por medio de que se utilizan diferentes procedimientos para la comprobación y la corrección de la rutina aplicativa.
La complejidad para un micro-procesador o un dispositivo de tratamiento de datos de un aparato de control se mantiene reducida, por medio de que una corrección sólo se produce si previamente se ha determinado una falta de integridad. Aparte de esto la corrección se produce en la memoria regrabable no volátil. Si se carga la rutina aplicativa una próxima vez, presenta de nuevo una integridad y por ello no precisa una nueva corrección.
La comprobación y la corrección se producen sin componentes externos. Por medio de esto puede realizarse también una corrección durante el funcionamiento.
El micro-procesador puede cargar instrucciones de las rutinas aplicativas, en cada caso directamente desde la memoria semiconductora reprogramable no volátil, para su ejecución.
Durante la corrección se regraba un bloque de la memoria semiconductora reprogramable no volátil, que presenta la rutina aplicativa correctora.
Una rutina correctora para ejecutar la corrección se archiva en un bloque propio. Por medio de esto se garantiza que, en el caso de una corrección, no se grabe por descuido encima de la rutina correctora. Con preferencia no es posible una modificación del bloque con la rutina correctora.
La comprobación de la integridad puede realizarse cada vez, antes de que se ejecute la rutina aplicativa.
Una rutina correctora para ejecutar la corrección puede ser ella misma una rutina aplicativa. Una corrección se considera ventajosamente no exitosa, si la rutina correctora archivada no presenta una integridad.
La memoria reprogramable no volátil puede ser una memoria flash.
El aprontamiento de la rutina aplicativa puede realizarse mediante una rutina de carga, que archive la rutina aplicativa en la memoria reprogramable no volátil. La rutina de carga comprueba convenientemente la integridad de la rutina aplicativa archivada, directamente después del archivado, por medio del código de comprobación. Además de esto la propia rutina de carga puede ser una rutina aplicativa. La carga posterior o la modificación de rutinas aplicativas se lleva a cabo en este caso mediante la rutina de carga. De este modo no es necesario un aprontamiento externo de esta rutina de carga. Al mismo tiempo puede modificarse la propia rutina de carga.
El código corrector puede ser un código Reed-Solomon.
Breve descripción de los dibujos
La figura 1 muestra una forma de ejecución del dispositivo para llevar a cabo un procedimiento corrector;
la figura 2 muestra un diagrama de flujo de una forma de ejecución del procedimiento corrector conforme a la invención;
la figura 3 muestra un diagrama de flujo una aplicación de la forma de ejecución de la figura 2; y
la figura 4 muestra una segunda aplicación de la forma de ejecución de la figura 2.
Descripción de las formas de ejecución
En la figura 1 se muestra un diagrama en bloques de un aparato de control 1, que puede ejecutar un procedimiento corrector. El aparato de control 1 presenta una unidad de micro-procesador 2. La unidad de micro-procesador 2 está acoplada con una memoria flash u otra memoria 4 reprogramable no volátil.
El micro-procesador 2 comienza normalmente en la dirección 0, por medio de que carga o ejecuta una primera instrucción en una dirección predeterminada fijamente desde la memoria flash 4. Después de esto el micro-procesador 1 carga una instrucción tras otra desde la memoria flash 4 conforme a un contador de direcciones incremental o conforme a órdenes de salto, que acaba de ejecutar.
No se ha implementado una memoria principal u otra memoria de acceso directo mayor de otro tipo. De este modo tampoco se dispone de una copia de una rutina de ejecución a ejecutar.
Un sistema de diagnóstico 5 o un dispositivo de aprontamiento para nuevas rutinas aplicativas puede acoplarse a través de un interfaz 6 con el micro-procesador 2.
A continuación se explica una forma de ejecución de un procedimiento corrector con base en el diagrama de flujo en la figura 2. En la memoria 4 reprogramable no volátil se archiva (10) una rutina de activación para un airbag. La rutina de activación es un ejemplo para múltiples rutinas aplicativas diferentes tipo flash.
En la rutina de activación se entrelaza (11) un código corrector. Se utiliza ventajosamente un código Reed-Solomon. El código Reed-Solomon hace posible corregir errores de bit aislados en la rutina de activación. El número de bits entrelazados adicionalmente para el código Reed-Solomon se elige según cuántos errores de bit deben corregirse todavía. Los bits adicionales para la corrección mediante el código Reed-Solomon pueden depositarse en una región de memoria separada, en lugar de entrelazarse en la rutina de activación.
Además de esto se calcula (12) un código de comprobación para la rutina de activación y se deposita en la memoria flash. El código de comprobación puede ser una suma de comprobación generada por ejemplo cíclicamente. En el caso de requisitos de seguridad reducidos pueden utilizarse también bits de comprobación de paridad sencillos.
Antes de que se inicie la rutina de activación se comprueba su integridad (13). Esto se produce mediante el código de comprobación. La rutina de comprobación responsable de ello está archivada con preferencia igualmente en la memoria flash. Esta rutina de comprobación se ejecuta paso a paso mediante el micro-procesador y carga las instrucciones aisladas de la rutina de activación para leer su contenido de memoria o ejecutar el mismo. De este modo se recalcula de forma conocida el código de comprobación desde la rutina aplicativa archivada y se compara su identidad con el código de comprobación aprontado.
En el caso de que falte la identidad, es decir, de que falte la identidad del código de comprobación recién calculado y del código de comprobación aprontado, se produce una corrección de la rutina de activación (14). Una rutina correctora apropiada, que puede estar depositada por sí misma en la memoria flash, ejecuta el procedimiento Reed-Solomon. La rutina correctora es ejecutada paso a paso por el micro-procesador. Después de esto se regraba un bloque, en el que está archivada la rutina de activación, con el contenido corregido.
Para la regrabación por bloques puede aprontarse un regulador 3. En éste puede depositarse una copia del bloque y archivarse de forma intermedia la rutina aplicativa corregida, antes de que se grabe el contenido en la memoria flash.
Normalmente se eliminan de este modo todos los errores de bit de la rutina de activación. Sin embargo, puede darse de forma aislada que en la rutina de activación existan demasiados errores de bit. Esto hace necesario que se compruebe la integridad de la rutina de activación corregida mediante el código de comprobación (15).
Las correcciones se ejecutan directamente en la memoria reprogramable no volátil. De este modo se dispone de la rutina aplicativa, es decir, por ejemplo la rutina de activación, ahora en edición corregida en la memoria no volátil.
La rutina correctora se deposita con preferencia en un bloque propio de la memoria flash 4. Debido a que la ejecución de la rutina correctora no se dispone de ninguna copia, no debe regrabarse durante la corrección de un bloque la propia rutina correctora.
El procedimiento descrito conforme a la forma de ejecución no necesita ninguna rutina externa. De este modo es totalmente autárquico y puede llevarse a cabo, por ejemplo, localmente en el aparato de control 1.
La forma de ejecución puede usarse para múltiples aplicaciones en un aparato de control. Una primera aplicación consiste en utilizar el procedimiento corrector durante la reprogramación (20) de un aparato de control. Las nuevas rutinas aplicativas se aprontan mediante un sistema externo (21). Del mismo modo se aprontan externamente el código corrector y el código de comprobación de las nuevas rutinas aplicativas (22, 23). Una rutina de carga, que forma parte de las rutinas aplicativas en la memoria reprogramable no volátil, carga las nuevas rutinas aplicativas aprontadas con su código corrector y código de comprobación (24).
Después de que se ha archivado la nueva rutina aplicativa en la memoria reprogramable no volátil, se comprueba su integridad mediante el código de comprobación (25) y, dado el caso, se ejecuta una corrección mediante el código corrector (26).
Otro campo de aplicación de la forma de ejecución del procedimiento corrector consiste en que, durante el funcionamiento del aparato de control, las rutinas aplicativas allí archivadas se comprueban cíclicamente o en caso de necesidad y, dado el caso, se corrigen. De este modo puede comprobarse por ejemplo la integridad de cada rutina aplicativa, antes de que se inicie, y, en caso necesario, corregirse y comprobarse de nuevo su integridad.
Por medio de esto se garantiza por ejemplo también que un aparato de control pueda reiniciarse en la mayoría de los casos, incluso si una rutina de inicio del aparato de control es defectuosa a intervalos. Normalmente un defecto de la rutina de inicio conduciría a que la unidad procesadora, las otras unidades de memoria y los interfaces no pudieran instalarse adecuadamente y ya no pudiera iniciarse ninguna rutina aplicativa más.
Durante el funcionamiento del aparato de control se vigila con preferencia cíclicamente la integridad de la rutina de inicio. En el caso de que a causa de un error de bit o de otra avería no pueda garantizarse ya la integridad, se ejecuta una corrección de la rutina de inicio. Para seguridad se comprueba a continuación de nuevo la integridad de la rutina de inicio.
Al iniciar el aparato de control (30) pueden ejecutarse los siguientes pasos (figura 4). Primero se comprueban las rutinas de comprobación y las rutinas correctoras (31, 32). Si en estas rutinas se presenta un defecto, por ejemplo un error de bit (33), se supone por motivos de seguridad que el aparato de control no puede reponerse a un estado operativo (34). En el caso de que las rutinas antes citadas sean correctas, se produce una comprobación de las otras rutinas aplicativas (35). La comprobación y dado el caso la corrección se produce conforme a la forma de ejecución, que se explica entre otras junto con la figura 2.

Claims (9)

1. Procedimiento corrector para un micro-procesador reprogramable, con los pasos
(a)
aprontamiento del micro-procesador con una memoria semiconductora reprogramable no volátil;
(b)
archivado de al menos una rutina aplicativa en la memoria semiconductora reprogramable no volátil;
(c)
aprontamiento de un código corrector para al menos una rutina aplicativa;
(d)
aprontamiento de un código de comprobación para al menos una rutina aplicativa;
(e)
comprobación de la integridad de al menos una rutina aplicativa archivada mediante el código de comprobación;
(f)
ejecución de una corrección mediante el código corrector, cuando falta la integridad de la rutina aplicativa, en donde la corrección se realiza en la memoria semiconductora reprogramable no volátil;
(g)
comprobación de la integridad de la rutina aplicativa corregida mediante el código de comprobación; y
(h)
adopción de una corrección exitosa, cuando se confirma la integridad de la rutina aplicativa corregida.
2. Procedimiento corrector según la reivindicación 1, en donde el micro-procesador carga instrucciones de las rutinas aplicativas, en cada caso directamente desde la memoria semiconductora reprogramable no volátil, para su ejecución.
3. Procedimiento corrector según la reivindicación 1 ó 2, en donde durante la corrección se regraba un bloque de la memoria semiconductora reprogramable no volátil.
4. Procedimiento corrector según una de las reivindicaciones anteriores, en donde una rutina correctora para ejecutar la corrección se archiva en un bloque propio.
5. Procedimiento corrector según la reivindicación anterior 4, en donde una corrección se considera no exitosa, si la rutina correctora archivada no presenta una integridad.
6. Procedimiento corrector según una de las reivindicaciones anteriores, en donde la memoria reprogramable no volátil es una memoria flash.
7. Procedimiento corrector según una de las reivindicaciones anteriores, en donde el código corrector es un código Reed-Solomon.
8. Procedimiento corrector según una de las reivindicaciones anteriores, en donde la integridad de la rutina aplicativa archivada se comprueba antes de que se ejecute la rutina aplicativa.
9. Dispositivo corrector, en especial para llevar a cabo uno de los procedimientos correctores según las reivindicaciones 1 a 8, con
una memoria (4) reprogramable no volátil para archivar al menos una rutina aplicativa, en cada caso un código de comprobación y en cada caso un código corrector para al menos una rutina aplicativa y
un dispositivo de tratamiento de datos (2) para llevar a cabo una comprobación de la integridad de la rutina aplicativa con base en el código de comprobación y para llevar a cabo una corrección utilizando el código corrector.
ES200702347A 2006-08-30 2007-08-29 Procedimiento corrector para un micro-procesador reprogramable. Expired - Fee Related ES2333189B1 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200610040644 DE102006040644A1 (de) 2006-08-30 2006-08-30 Korrekturverfahren für einen neu-programmierbaren Mikroprozessor
DE102006040644 2006-08-30

Publications (2)

Publication Number Publication Date
ES2333189A1 true ES2333189A1 (es) 2010-02-17
ES2333189B1 ES2333189B1 (es) 2010-11-04

Family

ID=39046974

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200702347A Expired - Fee Related ES2333189B1 (es) 2006-08-30 2007-08-29 Procedimiento corrector para un micro-procesador reprogramable.

Country Status (4)

Country Link
DE (1) DE102006040644A1 (es)
ES (1) ES2333189B1 (es)
FR (1) FR2905487B1 (es)
IT (1) ITMI20071696A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014032488A (ja) * 2012-08-02 2014-02-20 Denso Corp 制御装置の出荷検査方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller
WO2001098872A2 (en) * 2000-06-22 2001-12-27 Microchip Technology Incorporated A method of checking eeprom data with an embedded crc
US6421805B1 (en) * 1998-11-16 2002-07-16 Exabyte Corporation Rogue packet detection and correction method for data storage device
WO2005076133A1 (en) * 2004-01-30 2005-08-18 Micron Technology, Inc. An error detection and correction scheme for a memory device
US20060039196A1 (en) * 2003-10-03 2006-02-23 Gorobets Sergey A Corrected data storage and handling methods
GB2419979A (en) * 2004-11-04 2006-05-10 Sigmatel Inc System and method for reading non-volatile computer memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller
US6421805B1 (en) * 1998-11-16 2002-07-16 Exabyte Corporation Rogue packet detection and correction method for data storage device
WO2001098872A2 (en) * 2000-06-22 2001-12-27 Microchip Technology Incorporated A method of checking eeprom data with an embedded crc
US20060039196A1 (en) * 2003-10-03 2006-02-23 Gorobets Sergey A Corrected data storage and handling methods
WO2005076133A1 (en) * 2004-01-30 2005-08-18 Micron Technology, Inc. An error detection and correction scheme for a memory device
GB2419979A (en) * 2004-11-04 2006-05-10 Sigmatel Inc System and method for reading non-volatile computer memory

Also Published As

Publication number Publication date
FR2905487A1 (fr) 2008-03-07
DE102006040644A1 (de) 2008-03-13
ITMI20071696A1 (it) 2008-02-29
ES2333189B1 (es) 2010-11-04
FR2905487B1 (fr) 2012-09-21

Similar Documents

Publication Publication Date Title
US7707481B2 (en) System and method for efficient uncorrectable error detection in flash memory
US7937647B2 (en) Error-detecting and correcting FPGA architecture
TW201432705A (zh) 程式化具有錯誤修正碼之一非揮發性記憶體系統
US20100257345A1 (en) Method and apparatus for reprogramming applications in embedded devices
JP2014035730A (ja) 車両用制御装置
US20110107160A1 (en) Time-based techniques for detecting an imminent read failure in a memory array
EP1701262B1 (en) Method and device of rewriting a sector storing the bootloader code in a sector erasable semiconductor memory means
TW202121171A (zh) 電腦系統及其安全管理方法以及電腦軟體產品
CN107463516B (zh) 控制装置
ES2333189B1 (es) Procedimiento corrector para un micro-procesador reprogramable.
US9721665B2 (en) Data writing method and system
JP2001043101A (ja) 制御装置のメモリ内容変更方法及びその装置
JP6708596B2 (ja) 電子制御装置及び制御プログラム検証方法
KR101212679B1 (ko) 반도체 메모리 장치 및 그 동작 방법
TWI594252B (zh) 用以監視記憶體之資料錯誤狀態之方法與裝置
JPH11260097A (ja) セクタにより消去可能で且つプログラム可能なフラッシュメモリにおける電荷損失エラーの自己テスト及び補正
JP7161583B1 (ja) 半導体装置
JP2012118904A (ja) 情報処理装置
JP5872982B2 (ja) 車両用制御装置
JP6363044B2 (ja) 制御装置
CN111176732A (zh) 一种基于mram实现的软硬件冗余安全启动与维护方法
US11314588B2 (en) Memory device and multi physical cells error correction method thereof
JP6568826B2 (ja) 電子制御装置
WO2013143578A1 (en) Non-volatile memory assemblies
JP2939745B1 (ja) データ保全方法

Legal Events

Date Code Title Description
EC2A Search report published

Date of ref document: 20100217

Kind code of ref document: A1

FG2A Definitive protection

Ref document number: 2333189B1

Country of ref document: ES

FD2A Announcement of lapse in spain

Effective date: 20180912