ES2333189A1 - Procedimiento corrector para un micro-procesador reprogramable. - Google Patents
Procedimiento corrector para un micro-procesador reprogramable. Download PDFInfo
- 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
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/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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online 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.
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.
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.
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014032488A (ja) * | 2012-08-02 | 2014-02-20 | Denso Corp | 制御装置の出荷検査方法 |
Citations (6)
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 |
-
2006
- 2006-08-30 DE DE200610040644 patent/DE102006040644A1/de not_active Withdrawn
-
2007
- 2007-08-28 IT ITMI20071696 patent/ITMI20071696A1/it unknown
- 2007-08-29 FR FR0757235A patent/FR2905487B1/fr not_active Expired - Fee Related
- 2007-08-29 ES ES200702347A patent/ES2333189B1/es not_active Expired - Fee Related
Patent Citations (6)
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 |