ES2612829T3 - Ordenador y método de migración de datos de memoria - Google Patents

Ordenador y método de migración de datos de memoria Download PDF

Info

Publication number
ES2612829T3
ES2612829T3 ES13896846.6T ES13896846T ES2612829T3 ES 2612829 T3 ES2612829 T3 ES 2612829T3 ES 13896846 T ES13896846 T ES 13896846T ES 2612829 T3 ES2612829 T3 ES 2612829T3
Authority
ES
Spain
Prior art keywords
memory card
memory
data
processor
instruction
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.)
Active
Application number
ES13896846.6T
Other languages
English (en)
Inventor
Liping Yang
Teng Lü
Hongwei Sun
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2612829T3 publication Critical patent/ES2612829T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Un ordenador, que comprende: un procesador (105); un sistema básico de entrada/salida (104); una memoria principal (101), configurada para cargar una instrucción del sistema básico de entrada/salida (104) y una instrucción de un sistema operativo (103) en el ordenador, en donde la memoria principal (101) comprende una o más tarjetas de memoria; y un controlador de memoria (102), en donde un controlador de memoria (102) correspondiente se configura para cada tarjeta memoria (101); en donde: el procesador (105) está configurado para ejecutar la instrucción del sistema operativo (103), recibir una primera instrucción de activación cuando se ejecute la instrucción del sistema operativo (103) y ejecutar una instrucción de migración de datos de memoria del sistema básico de entrada/salida (104) según la primera instrucción de activación, en donde el procesador (105) lleva a cabo las operaciones siguientes según la instrucción de migración de datos de memoria del sistema básico de entrada/salida (104): determinar una tarjeta de memoria de origen de datos que van a migrarse; determinar una tarjeta de memoria de soporte para la tarjeta de memoria de origen; e instruir un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria; y el controlador de memoria (102) de la tarjeta de memoria está configurado para recibir una instrucción del procesador (105) y migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte según la instrucción del procesador (105); en donde el controlador de memoria (102) de la tarjeta de memoria de origen está configurado además para monitorizar datos erróneos en la tarjeta de memoria de origen y activar la primera instrucción de activación si una cantidad de datos erróneos excede un umbral; y el procesador (105) está configurado específicamente para recibir la primera instrucción de activación activada por el controlador de memoria (102) de la tarjeta de memoria de origen.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Ordenador y metodo de migracion de datos de memoria.
Campo tecnico
La presente invencion se refiere a las tecnologfas informaticas y, en particular, a un metodo y a un ordenador para migrar datos de memoria.
Antecedentes
Una memoria (Memoria) se refiere tambien como una memoria principal y es uno de los componentes importantes de un ordenador. Todos los programas en el ordenador se ejecutan en la memoria; por lo tanto, el rendimiento de la memoria tiene un gran impacto en el ordenador. La memoria puede usarse para almacenar de forma temporal datos informaticos de un procesador y datos intercambiados con una memoria externa tal como un disco duro. Mientras que el ordenador esta ejecutandose, el procesador transfiere a la memoria los datos que van a computarse para su computacion y, despues de que se completa la computacion, el procesador transfiere un resultado fuera de la memoria. La ejecucion de la memoria determina tambien la ejecucion estable del ordenador.
En una arquitectura X86, un servidor admite mas memorias. Para el ultimo procesador Intel E7 V2, el ultimo procesador Intel E7 V2 individual puede admitir 2 elevadores de memoria como maximo, cada elevador de memoria puede admitir 12 modulos de memoria como maximo y una cantidad de modulos de memoria en un sistema 8P puede alcanzar 192. Sin embargo, un mdice de fallos de una memoria en un sistema puede ser de hasta el 0,1 % actualmente y un mdice de fallos puede causar no solo una ejecucion inestable del sistema sino tambien un bloqueo del sistema.
En la tecnica anterior, no puede implementarse la migracion de los datos de memoria en un ordenador. Cuando se produce un fallo de memoria en un sistema, no puede implementarse la migracion de datos ni en un elevador de memoria defectuoso ni en un modulo de memoria defectuoso en un caso en donde el ordenador se ejecute normalmente. Como resultado, no puede llevarse a cabo un mantenimiento online en una memoria defectuosa y el elevador de memoria defectuoso o el modulo de memoria defectuoso puede reemplazarse solo despues de que el ordenador se apague primero.
El documento US 2012/054456A1 se refiere a las soluciones de almacenamiento de datos en los sistemas informaticos. En particular, describe un modulo de procesamiento, que es diferente del BIOS, que determina la memoria que se usa para almacenar los datos de la memoria cuya vida ha expirado o expirara. El documento US 2664990A1 se refiere a un metodo y a un dispositivo para implementar la migracion de la memoria. En particular, describe esa migracion, cuando se migra una memoria que va a migrarse, mediante un sistema basico de entrada-salida de un ordenador, de datos en la memoria que va a migrarse a una primera memoria inutilizable de un sistema operativo del ordenador. La primera memoria inutilizable puede ser una memoria que se convierta con antelacion a partir de una memoria original utilizable del OS y se establezca como reservada para el OS y que sea inmodificable por e inaccesible para el OS.
Compendio
La presente invencion proporciona un metodo y un ordenador para migrar datos de memoria, que pueden implementar la migracion de los datos de memoria en un caso en donde un ordenador no este apagado.
Segun un primer aspecto como se define en la reivindicacion 1, la presente invencion proporciona un ordenador, que incluye:
un procesador;
un sistema basico de entrada/salida;
una memoria principal, configurada para cargar una instruccion almacenada en el sistema basico de entrada/salida y una instruccion de un sistema operativo en el ordenador, donde la memoria principal incluye una o mas tarjetas de memoria; y
un controlador de memoria, donde un controlador de memoria correspondiente esta configurado para cada tarjeta de memoria; donde:
en el ordenador, el procesador esta configurado para ejecutar la instruccion del sistema operativo, recibir una primera instruccion de activacion cuando se ejecute la instruccion del sistema operativo y ejecutar una instruccion de migracion de datos de memoria del sistema basico de entrada/salida segun la primera instruccion de activacion, donde el procesador lleva a cabo las operaciones siguientes segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida: determinar una tarjeta de memoria
5
10
15
20
25
30
35
40
45
50
55
de origen de los datos de memoria que van a migrarse; determinar una tarjeta de memoria de soporte para la tarjeta de memoria de origen e instruir un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria; y
el controlador de memoria de la tarjeta de memoria de origen esta configurado para recibir una instruccion del procesador y migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte segun la instruccion del procesador; en donde el controlador de memoria de la tarjeta de memoria de origen esta configurado ademas para monitorizar datos erroneos en la tarjeta de memoria de origen y activar la primera instruccion de activacion si una cantidad de datos erroneos excede un umbral; y
el procesador esta configurado espedficamente para recibir la primera instruccion de activacion activada por el controlador de memoria de la tarjeta de memoria de origen.
Con referencia al primer aspecto, de una primera manera de implementacion posible, el procesador esta configurado espedficamente para: establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo, enviar una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de lectura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen y enviar una instruccion de escritura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de escritura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen ; el controlador de memoria de la tarjeta de memoria de origen esta configurado espedficamente para leer los datos de memoria de la tarjeta de memoria de origen segun la instruccion de lectura de datos del procesador, recibir la instruccion de escritura de datos enviada por el procesador y enviar los datos de memoria lefdos de la tarjeta de memoria de origen a un controlador de memoria de la tarjeta de memoria de soporte segun el modo espejo de la tarjeta de memoria de origen y de la tarjeta de memoria de soporte; el controlador de memoria de la tarjeta de memoria de soporte esta configurado para escribir los datos de memoria recibidos de la tarjeta de memoria de origen en la tarjeta de memoria de soporte.
Con referencia a un primer aspecto o con la primera manera de implementacion posible del primer aspecto, de una segunda manera de implementacion posible, el procesador esta configurado espedficamente para adquirir una polftica de multiples migraciones e instruir, segun la polftica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria.
Con referencia a la segunda manera de implementacion posible del primer aspecto, de una tercera manera de implementacion posible, el procesador esta configurado espedficamente para llevar a cabo las operaciones siguientes (a) a (d) segun la polftica de multiples migraciones, hasta que los datos de memoria de la tarjeta de memoria de origen se migren por completo a la tarjeta de memoria de soporte, donde las operaciones (a) a (d) incluyen: (a) determinar una cantidad de datos de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar la cantidad de datos de la migracion actual a la tarjeta de memoria de soporte; o determinar la duracion de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual; (b) despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la migracion actual, salir del sistema basico de entrada/salida y ejecutar la instruccion del sistema operativo; (c) recibir una segunda instruccion de activacion, donde la segunda instruccion de activacion se usa para instruir el procesador para volver a ejecutar la instruccion de migracion de datos de memoria del sistema basico de entrada/salida; y (d) volver a llevar a cabo la etapa (a) segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida.
Con referencia al primer aspecto o a la primera manera de implementacion posible, la segunda manera de implementacion posible o la tercera manera de implementacion posible del primer aspecto, de una quinta manera de implementacion posible, el sistema operativo esta configurado ademas para establecer una polftica de inicio de migracion de datos de memoria o recibir una instruccion de inicio de migracion de datos de memoria enviada por un usuario, y el sistema operativo instruye, segun la polftica de inicio o la instruccion de inicio, el procesador para generar la primera instruccion de activacion.
Segun un segundo aspecto como se define en la reivindicacion independiente 11, la presente invencion proporciona un metodo para migrar datos de memoria, usado para migrar datos de memoria en un ordenador, donde el metodo incluye:
recibir, mediante un procesador en el ordenador, una primera instruccion de activacion cuando se ejecute una instruccion de un sistema operativo;
ejecutar, mediante el procesador, una instruccion de migracion de datos de memoria de un sistema basico de entrada/salida segun la primera instruccion de activacion; y
llevar a cabo, mediante el procesador, las operaciones siguientes segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida:
5
10
15
20
25
30
35
40
45
50
determinar una tarjeta de memoria de origen de los datos de memoria que van a migrarse;
determinar una tarjeta de memoria de soporte para la tarjeta de memoria de origen; e
instruir un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, de
modo que el controlador de memoria de la tarjeta de memoria de origen migra los datos de memoria de la
tarjeta de memoria de origen a la tarjeta de memoria de soporte segun una instruccion del procesador; en donde el metodo comprende ademas:
monitorizar, mediante el controlador de memoria de la tarjeta de memoria de origen, datos erroneos en la tarjeta de memoria de origen y activar, mediante el controlador de memoria de la tarjeta de memoria de origen, la primera instruccion de activacion si una cantidad de datos erroneos excede un umbral; y
recibir, por el procesador, la primera instruccion de activacion activada por el controlador de memoria de la tarjeta de memoria de origen.
Con referencia al segundo aspecto, en una primera manera de implementacion posible, el metodo incluye ademas: establecer, mediante el procesador, la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo, donde la instruccion, mediante el procesador, de un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, de modo que el controlador de memoria de la tarjeta de memoria de origen lee los datos de memoria de la tarjeta de memoria de origen de origen y escribe los datos de memoria de lectura de la tarjeta de memoria de origen en la tarjeta de memoria de soporte segun una instruccion del procesador, incluye:
enviar, por el procesador, una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de lectura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen;
leer, mediante el controlador de memoria de la tarjeta de memoria de origen, los datos de memoria de la tarjeta de memoria de origen segun la instruccion de lectura de datos del procesador;
enviar, por el procesador, una instruccion de escritura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de escritura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen; y
recibir, por el controlador de memoria de la tarjeta de memoria de origen, la instruccion de escritura de datos enviada por el procesador y enviar los datos de memoria de lectura de la tarjeta de memoria de origen a un controlador de memoria de la tarjeta de memoria de soporte segun el modo espejo de la tarjeta de memoria de origen y de la tarjeta de memoria de soporte, de modo que el controlador de memoria de la tarjeta de memoria de soporte escribe los datos de memoria recibidos de la tarjeta de memoria de origen en la tarjeta de memoria de soporte.
Con referencia al segundo aspecto o a la primera manera de implementacion posible del segundo aspecto, de una segunda manera de implementacion posible, antes de la instruccion, mediante el procesador, de un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, el metodo incluye ademas: adquirir, mediante el procesador, una polttica de multiples migraciones; e instruir mediante el procesador, segun la polttica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria.
Con referencia a la segunda manera de implementacion posible del segundo aspecto, de una tercera manera de implementacion posible, la instruccion, mediante el procesador segun la polttica de multiples migraciones, del controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria incluye: (a) determinar, mediante el procesador, una cantidad de datos de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar la cantidad de datos de la migracion actual a la tarjeta de memoria de soporte; o determinar, mediante el procesador, la duracion de una migracion actual et instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual; (b) despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la migracion actual, salir, mediante el procesador, del sistema basico de entrada/salida y ejecutar la instruccion del sistema operativo; (c) recibir, mediante el procesador, una segunda instruccion de activacion, donde la segunda instruccion de activacion se usa para instruir el procesador para volver a ejecutar la instruccion de migracion de datos de memoria del sistema basico de entrada/salida; y (d) volver, mediante el procesador, a llevar a cabo la etapa (a) segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida, hasta que los datos de memoria de la tarjeta de memoria de origen se migren por completo a la tarjeta de memoria de soporte.
Con referencia al segundo aspecto o a la primera manera de implementacion posible, la segunda manera de implementacion posible o la tercera manera de implementacion posible del segundo aspecto, de una quinta manera de implementacion posible, cuando el procesador en el ordenador ejecuta la instruccion del sistema operativo, el metodo incluye ademas: instruir, mediante el sistema operativo segun una polttica de inicio de migracion de datos de 5 memoria configurados previamente o una instruccion de inicio de migracion de datos de memoria, el procesador para generar la primera instruccion de activacion; y recibir, por el procesador, la primera instruccion de activacion generada por el procesador.
En las realizaciones de la presente invencion, despues de recibir una primera instruccion de activacion, un procesador sale de un sistema operativo y ejecuta una instruccion de migracion de datos de memoria de un sistema 10 basico de entrada/salida, donde la instruccion de migracion de datos de memoria del sistema basico de entrada/salida permite que el procesador determine una tarjeta de memoria de origen de los datos de memoria que van a migrarse, determine una tarjeta de memoria de soporte para la tarjeta de memoria de origen e instruya un controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen y escribir los datos de memoria lefdos de la tarjeta de memoria de origen en la tarjeta de memoria de 15 soporte, de modo que pueden migrarse los datos de memoria de la tarjeta de memoria de origen. Esto implementa el mantenimiento online de una tarjeta de memoria defectuosa en un caso en donde un ordenador no este apagado y resuelve el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando todo un ordenador este apagado.
Breve descripcion de los dibujos
20 Para describir las soluciones tecnicas en las realizaciones de la presente invencion mas claramente, a continuacion se presenta brevemente los dibujos adjuntos requeridos para describir la tecnica anterior o las realizaciones. Evidentemente, los dibujos adjuntos en la memoria descriptiva siguiente muestran meramente algunas realizaciones de la presente invencion y una persona con experiencia ordinaria en la tecnica puede derivar todavfa otros dibujos a partir de estos dibujos adjuntos sin esfuerzos creativos.
25 La Figura 1 es un diagrama de bloques sistematico de un ordenador segun una realizacion de la presente
invencion;
la Figura 2 es un diagrama de flujo de un metodo para migrar datos de memoria segun una realizacion de la presente invencion;
la Figura 3 es un diagrama de flujo de otro metodo para migrar datos de memoria segun una realizacion de 30 la presente invencion;
la Figura 4 es un diagrama de flujo de otro metodo mas para migrar datos de memoria segun una realizacion de la presente invencion; y
la Figura 5 es un diagrama de la composicion de un aparato segun una realizacion de la presente invencion.
35 Descripcion de las realizaciones
Las realizaciones de la presente invencion proporcionan un metodo, un ordenador y un aparato para migrar datos de memoria, que pueden implementar la migracion de datos de memoria en un caso en donde un ordenador se ejecute normalmente.
Ordenador para implementar la migracion de datos de memoria
40 La Figura 1 muestra un ejemplo de un ordenador segun una realizacion de la presente invencion donde el ordenador puede incluir una memoria principal 101, un controlador de memoria 102, un procesador 105, un sistema basico de entrada/salida (Sistema Basico de Entrada/Salida, BIOS) 104 y un disco duro (no mostrado en la Figura 1). La memoria principal 101 incluye al menos una tarjeta de memoria y, en la Figura 1, se usan tres tarjetas de memoria como ejemplo, que son tarjetas de memoria 101-A, 101-B y 101-C. El controlador de memoria 102 esta configurado 45 para controlar la memoria principal 101 y un controlador de memoria 102 correspondiente puede estar configurado para cada tarjeta de memoria en la memoria principal 101, por ejemplo, un controlador de memoria 102-A para la tarjeta de memoria 101-A, un controlador de memoria 102-B para la tarjeta de memoria 101-B y un controlador de memoria 102-C para la tarjeta de memoria 101-C. Espedficamente, la tarjeta de memoria en esta realizacion puede ser cualquier medio de almacenamiento que pueda usarse como una memoria, tal como un elevador de memoria o 50 un modulo de memoria, y una tarjeta de memoria puede referirse a un modulo de memoria o a un elevador de memoria y puede referirse tambien a un conjunto de multiples modulos de memoria o a un conjunto de multiples elevadores de memoria. Un controlador de memoria correspondiente esta configurado para cada tarjeta de memoria. Puede existir una correspondencia una a uno, una a muchos o muchas a uno entre las tarjetas de memoria y los
5
10
15
20
25
30
35
40
45
50
55
controladores de memoria. La Figura 1 es meramente uno de los ejemplos de implementacion de la presente invencion.
Despues de que el ordenador se encienda, la memoria principal 101 puede cargar una instruccion del BIOS 104 y una instruccion, almacenada en el disco duro, de un sistema operativo (Sistema Operativo, OS) 103 en el ordenador cuando el ordenador se encienda o se inicie. El procesador 105 puede ejecutar la instruccion del BIOS 104 o la instruccion del sistema operativo (Sistema Operativo, OS) 103 en el ordenador. Por ejemplo, el procesador 105 puede ejecutar la instruccion del BIOS 104 para iniciar un dispositivo en el ordenador y ejecutar la instruccion del OS 103 para llevar a cabo una operacion de lectura/escritura en la tarjeta de memoria. El procesador 105 se refiere principalmente a una parte de nucleo de la CPU y puede ser un nucleo de CPU o puede ser un conjunto de multiples nucleos de CPU. En esta realizacion de la presente invencion, el procesador 105 es un conjunto de multiples nucleos de CPU. El BIOS 104 puede ser un chip de procesamiento, donde se registran multiples instrucciones de procesamiento con el chip de procesamiento, y el procesador 105 puede ejecutar estas instrucciones de procesamiento.
En esta realizacion, para implementar la migracion de los datos de memoria, una tarjeta de memoria de soporte necesita estar configurada en el ordenador para servir de tarjeta de memoria objetivo a la que se migre los datos de memoria de una tarjeta de memoria de origen; ademas, una tarjeta de memoria desde la que han de migrarse los datos de memoria se refiere como tarjeta de memoria de origen en esta realizacion. En la realizacion mostrada en la Figura 1, las tarjetas de memoria 101-A y 101-B pueden ser las tarjetas de memoria de origen y la tarjeta de memoria 101-C es la tarjeta de memoria de soporte configurada en esta realizacion de la presente invencion. En esta realizacion, se usa un ejemplo en el que una tarjeta de memoria de soporte 101-C se especifica para el ordenador y, en la practica, pueden especificarse multiples tarjetas de memoria de soporte para el ordenador. El proposito de la migracion de los datos de memoria mencionado en esta realizacion de la presente invencion es permitir que una tarjeta de memoria de soporte obtenga los datos de memoria de una tarjeta de memoria de origen; para lograr el proposito de la migracion, pueden usarse en una implementacion espedfica maneras tales como duplicando, copiando o migrando los datos de memoria. Todas las maneras de implementacion espedficas anteriores caen dentro del alcance de "migracion" en esta realizacion de la presente invencion siempre que se logre el proposito de la migracion, es decir, permitir que una tarjeta de memoria de soporte obtenga los datos de memoria de una tarjeta de memoria de origen.
En esta realizacion de la presente invencion, el BIOS 104 puede mejorarse, por ejemplo, registrando una nueva instruccion de migracion de datos de memoria con el BIOS 104, de modo que el procesador ejecuta la instruccion de migracion de datos de memoria del BIOS 104 para implementar la migracion de los datos de memoria.
Los componentes del ordenador en esta realizacion de la presente invencion pueden llevar a cabo las operaciones siguientes:
El procesador 105 esta configurado para recibir una instruccion de activacion de migracion de datos de memoria cuando se ejecute la instruccion del OS 103 y salir del OS 103 y ejecutar la instruccion de migracion de datos de memoria del BIOS 104 segun la instruccion de activacion de migracion de datos de memoria, donde la instruccion de migracion de datos de memoria del BIOS 104 permite que el procesador lleve a cabo las operaciones siguientes: determinar una tarjeta de memoria de origen de los datos de memoria que van a migrarse, por ejemplo, la tarjeta de memoria de origen 101-A, determinar una tarjeta de memoria de soporte para la tarjeta de memoria de origen, por ejemplo, la tarjeta de memoria de soporte 101-C e instruir el controlador de memoria 102-A de la tarjeta de memoria de origen para migrar los datos de memoria.
El controlador de memoria 102-A de la tarjeta de memoria de origen esta configurado para recibir una instruccion del procesador, leer los datos de memoria de la tarjeta de memoria de origen 101-A segun la instruccion del procesador y escribir los datos de memoria de lectura de la tarjeta de memoria de origen 101-A en la tarjeta de memoria de soporte, a fin de implementar la migracion de los datos de la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101-C.
En esta realizacion de la presente invencion, el procesador 105 puede recibir la instruccion de activacion de migracion de datos de memoria cuando se ejecute la instruccion del OS y salir del OS 103 y ejecutar la instruccion de migracion de datos de memoria del BIOS 104 segun la instruccion de activacion de migracion de datos de memoria, implementando que los datos de la tarjeta de memoria de origen 101-A estan escritos en la tarjeta de memoria de soporte 101-C. De esta forma, los datos de memoria de la tarjeta de memoria de origen 101-A pueden migrarse en un caso en donde el ordenador no este encendido, implementando de ese modo el mantenimiento online de una tarjeta de memoria defectuosa y resolviendo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse cuando todo un ordenador este apagado. Ademas, el procesador ejecuta la instruccion del BIOS para completar la migracion de los datos de memoria; por lo tanto, puede implementarse la migracion de datos de una tarjeta de memoria en donde este situado un modulo de nucleo del OS, evitando el problema de que los datos del modulo de nucleo del OS no pueden migrarse por medio de una operacion del OS.
5
10
15
20
25
30
35
40
45
50
55
A continuacion se presenta esta realizacion de la presente invencion de manera detallada.
Acerca de la configuracion de la tarjeta de memoria de soporte
En esta realizacion, para garantizar que la instruccion de migracion de datos de memoria se ejecute correctamente, la tarjeta de memoria de soporte usada como dispositivo objetivo de los datos de memoria que van a migrarse tiene una diferencia de otra tarjeta de memoria en el ordenador. Por ejemplo, la tarjeta de memoria de soporte es invisible al OS 103 antes de que se complete la migracion de los datos de memoria, es decir, el OS 103 no puede llevar a cabo una operacion de lectura/escritura en la tarjeta de memoria de soporte. El procesador 105 puede ejecutar la instruccion del BIOS 104 para llevar a cabo una iniciacion especial en la tarjeta de memoria de soporte 101-C, de modo que la tarjeta de memoria de soporte 101-C se separa y puede usarse con normalidad. Sin embargo, el proceso de iniciacion evita asignar una direccion de sistema a la tarjeta de memoria de soporte 101-C, de modo que el OS 103 no puede llevar a cabo ninguna operacion de lectura/escritura en la tarjeta de memoria de soporte 101-C. De esta forma, puede garantizarse que los datos de memoria de la tarjeta de memoria de origen se migren por completo a la tarjeta de soporte y garantizarse que los datos migrados no se sobrescribiran por otros datos en el proceso de migracion, evitando de ese modo el dano a los datos de memoria migrados.
La configuracion de la tarjeta de memoria de soporte puede incluir:
1. Especificar y registrar un identificador de la tarjeta de memoria de soporte. Puede ser que el identificador de la tarjeta de memoria de soporte se registre en un modulo de almacenamiento en el ordenador usando el OS 103 despues de que un usuario inserte la tarjeta de memoria de soporte en una ranura de hardware, por ejemplo, registrada en una configuracion avanzada y una lista de interfaz de gestion de fallos de energfa (Interfaz avanzada de configuracion y energfa, ACPI), donde la lista ACPI es un conjunto de tablas de informacion intercambiadas entre el OS 103 y el BIOS 104, y tanto el OS 103 como el BIOS 104 pueden llevar a cabo una operacion de busqueda en la lista ACPI. En este caso, una tarjeta de memoria que exista como hardware en el ordenador se especifica como la tarjeta de memoria de soporte. Puede ser tambien que el usuario no inserte la tarjeta de memoria de soporte en una ranura de hardware; en su lugar, se especifica un numero de ranura de la ranura de hardware en la que la tarjeta de memoria de soporte ha de insertarse y el numero de ranura especificado se registra como el identificador de la tarjeta de memoria de soporte. En este caso, una tarjeta de memoria que no se ha constituido como hardware en el ordenador se especifica como la tarjeta de memoria de soporte.
El identificador de la tarjeta de memoria de soporte se especifica y se registra y el procesador 105 puede consultar posteriormente el modulo de almacenamiento usado para registrar la tarjeta de memoria de soporte, por ejemplo, la lista ACPI, para determinar la tarjeta de memoria de soporte.
2. Llevar a cabo una iniciacion especial en la tarjeta de memoria de soporte. Despues de que se
especifique la tarjeta de memoria de soporte, la iniciacion especial puede llevarse a cabo en la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de soporte esta lista y el ordenador puede escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte. Para iniciar la tarjeta de memoria de soporte, la tarjeta de memoria necesita insertarse en la ranura de hardware. De hecho, el tiempo para insertar la tarjeta de memoria de soporte en la ranura de hardware puede ser muy flexible. La tarjeta de memoria de soporte puede insertarse antes de que se especifique la tarjeta de memoria de soporte, despues de que se especifique la tarjeta de memoria de soporte o en cualquier momento antes de que se migren los datos de memoria. Espedficamente, los escenarios de iniciacion pueden clasificarse de en dos tipos. En un tipo, antes de que se inicie la migracion de los datos de memoria, un usuario presiona el boton en una unidad de soporte y el boton genera una
interrupcion de iniciacion, de modo que el BIOS 104 lleva a cabo una iniciacion especial en la tarjeta de
memoria de soporte. En el otro tipo, despues de que se inicie la migracion de los datos de memoria, si el BIOS detecta que la tarjeta de memoria de soporte no se ha iniciado, la iniciacion de la tarjeta de memoria de soporte puede iniciarse temporalmente.
La iniciacion especial llevada a cabo en la tarjeta de memoria de soporte se refiere a la configuracion en la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de soporte esta lista y puede usarse con normalidad, pero es invisible al Os 103. El proceso de iniciacion incluye diversas acciones de iniciacion normal excepto la asignacion de una direccion de sistema a la tarjeta de memoria de soporte en el proceso de iniciacion. Por ejemplo, la iniciacion de la tarjeta de memoria de soporte puede incluir suministrar la tarjeta de memoria de soporte con energfa, configurando un parametro tal como el rendimiento relacionado, configurando una conexion de comunicacion entre la tarjeta de memoria de soporte y el procesador en el ordenador, detectando si una operacion de lectura/escritura
normal puede llevarse a cabo en la tarjeta de memoria de soporte, y similar. Cuando se inicia la tarjeta de memoria
de soporte, se evita la asignacion de una direccion de sistema a la tarjeta de memoria de soporte, de modo que el OS 103 no puede adquirir una direccion de sistema de la tarjeta de memoria de soporte y no puede llevar a cabo
5
10
15
20
25
30
35
40
45
50
55
cualquier operacion de lectura/escritura en la tarjeta de memoria de soporte. Es decir, aunque la tarjeta de memoria de soporte este lista, es invisible al OS; en este caso, el OS no puede usar la tarjeta de memoria de soporte.
Acerca de la activacion de la migracion de los datos de memoria
En esta realizacion de la presente invencion, el inicio de la migracion de los datos de memoria se activa segun una condicion de fallo de la tarjeta de memoria de origen o un requisito de un usuario. Es decir, despues de que el ordenador se enciende y se inicia, el ordenador ejecuta normalmente la instruccion del OS l03 y, segun la instruccion recibida de activacion de la migracion de datos de memoria, conmuta el BIOS 104 y ejecuta la instruccion del BIOS 104, a fin de implementar la migracion de los datos de memoria. En esta realizacion de la presente invencion, el procesador 105 migra los datos de memoria solo cuando se recibe la instruccion de activacion de la migracion de datos de memoria. Es decir, los datos de memoria se migran para una tarjeta de memoria de origen especificada por un usuario o para una tarjeta de memoria de origen que tenga un fallo espedfico, sin una necesidad de especificar una tarjeta de memoria de origen fija con antelacion y sin una necesidad de configurar previamente una relacion de espejo entre una tarjeta de memoria de origen y la tarjeta de memoria de soporte. Por lo tanto, en esta realizacion de la presente invencion, la migracion de los datos de memoria se activa para una tarjeta de memoria de origen espedfica, que no solo garantiza el procesamiento oportuno de un fallo, sino tambien ahorra recursos del ordenador y garantiza un alto rendimiento del ordenador.
En esta realizacion de la presente invencion, la instruccion de activacion de la migracion de datos de memoria se usa para instruir el procesador 105 para salir del OS 103 y ejecutar la instruccion de migracion de datos de memoria del BIOS 104, a fin de implementar la migracion de los datos de memoria. En esta realizacion de la presente invencion, puede implementarse una unica migracion de los datos de memoria y pueden implementarse tambien multiples migraciones de los datos de memoria; por lo tanto, en esta realizacion de la presente invencion, la instruccion de activacion de la migracion de datos de memoria puede incluir una primera instruccion de activacion y una segunda instruccion de activacion, donde una instruccion de activacion de la migracion de datos de memoria para iniciar una migracion por primera vez de los datos de memoria se refiere como la primera instruccion de activacion, y una instruccion de activacion de la migracion de datos de memoria para activar una migracion posterior de los datos de memoria se refiere como la segunda instruccion de activacion.
La primera instruccion de activacion puede activarse de forma flexible. Por ejemplo, la primera instruccion de activacion puede activarse mediante el procesador 105 segun la instruccion del Os 103, y la primera instruccion de activacion puede activarse tambien mediante el controlador de memoria 102-A de la tarjeta de memoria de origen. Espedficamente, por ejemplo:
(1) Los controladores de memoria 102-A y 102-B de las tarjetas de memoria de origen pueden monitorizar ademas datos erroneos en las tarjetas de memoria de origen 101-A y 101-B respectivamente y, si una cantidad de datos erroneos en la tarjeta de memoria de origen 101-A o 101-B excede un umbral, el controlador de memoria correspondiente puede activar la primera instruccion de activacion. Por ejemplo, si una cantidad de datos erroneos en la tarjeta de memoria de origen 101-A excede el umbral, el controlador de memoria 102-A activa la primera instruccion de activacion; el procesador 105 puede recibir la primera instruccion de activacion activada por el controlador de memoria 102-A de la tarjeta de memoria de origen, salir del OS 103 y ejecutar la instruccion de migracion de datos de memoria del BIOS 104. Espedficamente, la primera instruccion de activacion puede ser una interrupcion de gestion de sistema (Interrupcion de Gestion de Sistema, SMI).
(2) La primera instruccion de interrupcion puede generarse por el procesador que se active directamente mediante el OS segun una instruccion de inicio de migracion de datos de memoria enviada por un usuario y puede generarse tambien por el OS segun una polttica de inicio de migracion de datos de memoria configurada previamente por un usuario en el OS. Por ejemplo, el usuario envfa directamente una instruccion al OS y el OS instruye, segun la instruccion del usuario, el procesador para generar la primera instruccion de activacion o, por ejemplo, el usuario configura previamente en el OS una polttica de inicio de que la migracion de datos de memoria se inicia segun el tiempo o un estado de ejecucion del procesador y el OS instruye el procesador para generar una primera instruccion de activacion cuando se satisfaga la polftica de inicio. El procesador 105 puede recibir la primera instruccion de activacion activada por el procesador 105, salir del OS 103 y ejecutar la instruccion de migracion de datos de memoria del BIOS 104.
Acerca de la implementacion de la migracion de los datos de memoria para multiples veces
En una realizacion preferida de las realizaciones de la presente invencion, los datos de memoria se migran para multiples veces. En el proceso de migrar los datos de memoria, si el procesador 105 ejecuta la instruccion del BIOS 104 todo el tiempo para migrar los datos de memoria, el procesador 105 no puede ejecutar la instruccion del OS 103 para procesar un servicio en un tiempo relativamente largo, lo que afecta la ejecucion normal del ordenador, da como resultado un procesamiento de otros servicios que estan en un estado interrumpido durante un largo tiempo y afecta la experiencia del usuario; por lo tanto, el procesador 105 puede llevar a cabo multiples migraciones para los datos de memoria. Por ejemplo, despues de que complete una migracion de datos de memoria, el procesador 105
8
5
10
15
20
25
30
35
40
45
50
55
puede salir del BIOS 104 y ejecutar la instruccion del OS 103 para llevar a cabo un procesamiento normal de servicio y, hasta una proxima migracion de los datos de memoria, el procesador 105 sale del OS 103 y ejecuta la instruccion de migracion de datos de memoria del BIOS 104 otra vez para continuar migrando los datos de memoria. Esta manera de migrar los datos de memoria para multiples veces permite que el procesador ejecute las instrucciones del OS 103 y del BIOS 104 alternativamente y completa la migracion de los datos de memoria finalmente, evitando de ese modo una interrupcion prolongada de un servicio de sistema y garantizando que un sistema se ejecute con normalidad.
Para la manera de migrar los datos de memoria para multiples veces, en otra realizacion de la presente invencion, la instruccion de migracion de datos de memoria del BIOS 104 puede mejorarse adicionalmente, de modo que el procesador 105 puede adquirir una polftica de multiples migraciones cuando se ejecute la instruccion de migracion de datos de memoria del BIOS 104 e instruir, segun la polftica de multiples migraciones, el controlador de memoria 102-A de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria. La polftica de multiples migraciones puede configurarse por un usuario. Por ejemplo, el usuario puede especificar una cantidad de datos de cada migracion o una duracion de cada migracion segun un requisito y, cuando el procesador 105 ejecute la instruccion de migracion de datos de memoria del BIOS 104, el procesador 105 puede llevar a cabo las operaciones siguientes (a) a (d) segun la cantidad especificada de datos de cada migracion o la duracion especificada de cada migracion, hasta que los datos de memoria de la tarjeta de memoria de origen 101-A se migren por completo a la tarjeta de memoria de soporte 101-C. Las operaciones (a) a (d) incluyen:
(a) determinar una cantidad de datos de una migracion actual segun la cantidad especificada de datos de cada migracion e instruir el controlador de memoria 102-A de la tarjeta de memoria de origen para migrar la cantidad de datos de la migracion actual a la tarjeta de memoria de soporte 101-C; o determinar la duracion de una migracion actual segun la duracion de cada migracion e instruir el controlador de memoria 102-A de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual; o instruir, segun el estado de ejecucion del procesador, el controlador de memoria 102-A de la tarjeta de memoria de origen para migrar los datos de memoria dentro de un periodo de tiempo en donde el estado de ejecucion del procesador este inactivo. Que el estado de ejecucion del procesador sea un estado inactivo puede ser que el uso del procesador sea menor que un umbral establecido;
(b) despues de determinar que el controlador de memoria 102-A de la tarjeta de memoria de origen completa la migracion actual, salir del BIOS 104 y ejecutar la instruccion del OS 103;
(c) recibir la segunda instruccion de activacion, donde la segunda instruccion de activacion se usa para instruir el procesador para volver a para ejecutar la instruccion del BIOS 104, a fin de continuar migrando los datos de memoria; y
(d) volver a llevar a cabo la etapa (a).
El procesador 105 migra los datos de la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101- C para multiples veces llevando a cabo las operaciones (a) a (d) anteriores.
La segunda instruccion de activacion puede activarse por el procesador 105 segun la instruccion del OS 103 y puede activarse tambien segun una condicion de activacion configurada previamente de la segunda instruccion de activacion. Por ejemplo, la condicion de activacion de la segunda instruccion de activacion puede estar configurada en la polftica de migracion y la condicion de activacion de la segunda instruccion de activacion puede incluir un intervalo de cada migracion o el estado de ejecucion del procesador. El procesador 105 puede configurar un temporizador de migracion de memoria segun el intervalo de cada migracion, de modo que el temporizador de migracion de memoria activa la segunda instruccion de activacion segun el intervalo de cada migracion; por ejemplo, el temporizador de migracion de memoria puede estar configurado en un puente sur en el ordenador. Como alternativa, el procesador 105 activa la segunda instruccion de activacion segun el estado de ejecucion del procesador 105; por ejemplo, el procesador 105 activa la segunda instruccion de activacion cuando el estado de ejecucion del procesador 105 esta inactivo.
En esta realizacion de la presente invencion, el procesador 105 puede instruir, segun la polftica de multiples migraciones, el controlador de memoria 102-A de la tarjeta de memoria de origen para migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte para multiples veces, de modo que, en el proceso de migrar los datos de memoria y segun un requisito, el procesador puede salir del OS 103 y ejecutar la instruccion de migracion de datos de memoria del BIOS 104 o salir del BIOS 104 y ejecutar la instruccion del OS 103 para llevar a cabo el procesamiento de servicio. De esta forma, un servicio del ordenador puede procesarse a tiempo, se evita la interrupcion prolongada del servicio del ordenador que se causa por la migracion de una gran cantidad de datos de memoria y se garantiza la ejecucion normal del ordenador.
Acerca del establecimiento de la tarjeta de memoria de origen y de la tarjeta de memoria de soporte en un modo espejo
5
10
15
20
25
30
35
40
45
50
55
Antes de que se migren los datos de memoria, el procesador 105 puede establecer ademas la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo, de modo que el controlador de memoria 102-A de la tarjeta de memoria de origen puede escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte segun la instruccion del procesador 105 y el modo espejo.
Espedficamente, despues de que el procesador 105 ejecute la instruccion de migracion de datos de memoria del BIOS 104 y determine la tarjeta de memoria de origen 101-A y la tarjeta de memoria de soporte 101-C, el identificador de la tarjeta de memoria de soporte puede estar configurada en el controlador de memoria 102-A de la tarjeta de memoria de origen y un identificador de la tarjeta de memoria de origen esta configurado en un controlador de memoria 109 de la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de origen 101-A y la tarjeta de memoria de soporte 101-C se establecen en el modo espejo. Ciertamente, establecer el modo espejo incluye ademas una operacion, tal como establecer un canal de transmision de datos entre la tarjeta de memoria de origen 101-A y la tarjeta de memoria de soporte101-C y no se describe una implementacion espedfica de manera detallada en la presente memoria.
Cuando se ejecute la instruccion de migracion de datos de memoria del BIOS 104, el procesador 105 puede enviar adicionalmente una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen segun la instruccion del BIOS 104, donde la instruccion de lectura de datos se usa para instruir el controlador de memoria 102-A de la tarjeta de memoria de origen para leer los datos de la tarjeta de memoria de origen 101-A; despues de recibir un mensaje de respuesta que sea de la instruccion de lectura de datos y se envfe por el controlador de memoria 102-A de la tarjeta de memoria de origen, el procesador 105 puede enviar ademas una instruccion de escritura de datos al controlador de memoria 102-A de la tarjeta de memoria de origen, donde la instruccion de escritura de datos se usa para instruir el controlador de memoria 102-A de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen 101-A. Por lo tanto, el controlador de memoria 102-A de la tarjeta de memoria de origen puede leer los datos de la tarjeta de memoria de origen 101-A segun la instruccion de lectura de datos enviada por el procesador 105, escribir los datos lefdos de nuevo en la tarjeta de memoria de origen 101-A segun la instruccion de escritura de datos enviada por el procesador 105 y escribir los datos lefdos en el controlador de memoria 102-C de la tarjeta de memoria de soporte segun el identificador que sea de la tarjeta de memoria de soporte y este configurado en el controlador de memoria 102-A de la tarjeta de memoria de origen, y el controlador de memoria 102-C de la tarjeta de memoria de soporte escribe los datos recibidos en la tarjeta de memoria de soporte 101-C, a fin de implementar la migracion de los datos de la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101-C.
Por medio de la manera anterior, el procesador 105 puede migrar todos los datos de la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101-C, lo que garantiza la migracion completa de los datos de memoria. Ademas, como la tarjeta de memoria de origen y la tarjeta de memoria de soporte se establecen en el modo espejo, cuando el procesador 105 sale del BIOS y ejecuta la instruccion del OS, cualquier operacion de escritura llevada a cabo por el OS en la tarjeta de memoria de origen se escribe tambien en la tarjeta de memoria de soporte, lo que garantiza la precision de los datos de memoria que se han migrado a la tarjeta de memoria de soporte.
Acerca de la migracion de datos no erroneos
Los datos erroneos excesivos en una tarjeta de memoria pueden causar un fallo de la tarjeta de memoria o, incluso, un reinicio del ordenador; por lo tanto, solo pueden migrarse datos no erroneos en el proceso de migrar los datos de memoria.
Cuando se ejecute la instruccion de migracion de datos de memoria del BIOS 104 para migrar los datos de memoria, el procesador puede instruir ademas el controlador de memoria 102-a de la tarjeta de memoria de origen para determinar los datos no erroneos en la tarjeta de memoria de origen 101-A y hacer una marca de deteccion segun un resultado de deteccion. Por ejemplo, se adquiere informacion acerca de los datos no erroneos determinados por el controlador de memoria 102-A de la tarjeta de memoria de origen, de modo que el controlador de memoria 102-A de la tarjeta de memoria de origen puede instruirse, segun la marca de deteccion, para migrar los datos erroneos, a fin de evitar un reinicio del ordenador o la generacion de un fallo en la tarjeta de memoria de soporte 101-C que pueda causarse migrando los datos erroneos en la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101-C.
Acerca de la condicion de migracion
Para garantizar que los datos de memoria se migren con exito, antes de que se migren los datos de memoria, el procesador 105 puede comprobar si la tarjeta de memoria de soporte 101-C cumple una condicion de migracion, es decir, si la tarjeta de memoria de soporte 101-C puede usarse como un dispositivo objetivo al que se migren los datos de la tarjeta de memoria de origen 101-A, a fin de impedir un fallo de migracion de datos causado por un caso en donde la iniciacion de la tarjeta de memoria de soporte 101-C no se complete, una capacidad de memoria sea insuficiente, o similar.
5
10
15
20
25
30
35
40
45
50
Espedficamente, cuando se ejecute la instruccion de migracion de datos de memoria del BIOS 104, el procesador puede llevar a cabo ademas las operaciones siguientes: antes de instruir el controlador de memoria 1012-A de la tarjeta de memoria de origen para migrar los datos de la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101-C, determinar si la iniciacion de la tarjeta de memoria de soporte 101-C esta completa y, si la iniciacion de la tarjeta de memoria de soporte101-C esta completa, establecer la tarjeta de memoria de origen 101-A y la tarjeta de memoria de soporte 101-C en el modo espejo, a fin de migrar los datos de memoria posteriormente.
Cuando se ejecute la instruccion de migracion de datos de memoria del BIOS 104, el procesador 105 puede determinar ademas si una capacidad de memoria de la tarjeta de memoria de soporte 101-C es mayor que una capacidad de memoria de la tarjeta de memoria de origen 101-A; si la capacidad de memoria de la tarjeta de memoria de soporte 101-C es mayor que la capacidad de memoria de la tarjeta de memoria de origen 101-A, se determina que se cumple la condicion de migracion y los datos de memoria de la tarjeta de memoria de origen 101-A pueden migrarse a la tarjeta de memoria de soporte 101-C posteriormente.
Cuando se ejecute la instruccion de migracion de datos de memoria del BIOS 104, el procesador 105 puede determinar ademas si la tarjeta de memoria de origen 101-A y la tarjeta de memoria de soporte 101-C se controlan por un mismo controlador; si no, indica que los datos de la tarjeta de memoria de origen 101-A pueden migrarse a la tarjeta de memoria de soporte 101-C, a fin de establecer la tarjeta de memoria de origen 106 y la tarjeta de memoria de soporte 107 en el modo espejo y migrar los datos de memoria posteriormente.
Acerca del reemplazo de la tarjeta de memoria de soporte y la tarjeta de memoria de origen despues que se completa la migracion de los datos de memoria.
Despues de que el controlador de memoria 102-A de la tarjeta de memoria de origen migre por completo los datos de la tarjeta de memoria de origen 101-A a la tarjeta de memoria de soporte 101-C y cuando el procesador 105 ejecute la instruccion de migracion de datos de memoria del BIOS 104, puede establecerse ademas una relacion de mapeo entre una direccion de sistema de la tarjeta de memoria de origen 101-A y la tarjeta de memoria de soporte 101-C, y una tarjeta de memoria objetivo senalada por la direccion de sistema de la tarjeta de memoria de origen se cambia a la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de soporte 101-C puede reemplazar la tarjeta de memoria de origen 101-A y asume todas las operaciones de lectura/escritura llevadas a cabo por el OS 103 en la tarjeta de memoria de origen 101-A.
Despues de que la tarjeta de memoria de origen se reemplace por la tarjeta de memoria de soporte, el procesador 105 puede llevar a cabo ademas una operacion de apagado en la tarjeta de memoria de origen 101-A, de modo que la tarjeta de memoria de origen 101-A puede extraerse o reemplazarse en un caso en donde el ordenador no este apagado, resolviendo de ese modo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando este apagado todo un ordenador.
Un metodo para migrar datos de memoria
Con referencia al ordenador mostrado en la Figura 1, una realizacion de la presente invencion proporciona un metodo para migrar datos de memoria, usado para migrar datos de memoria en un ordenador, donde una instruccion de migracion de datos de memoria se almacena en un sistema basico de entrada/salida en el ordenador. Como se muestra en la Figura 2, el metodo incluye:
E201: Un procesador en el ordenador recibe una primera instruccion de activacion cuando se ejecuta una instruccion de un OS.
La primera instruccion de activacion puede activarse mediante un controlador de memoria de una tarjeta de memoria de origen segun una condicion de fallo de la tarjeta de memoria de origen. Por ejemplo, cuando un controlador de memoria de una tarjeta de memoria de origen detecta que un error se produce en la tarjeta de memoria de origen multiples veces y se alcanza un umbral preestablecido, la primera instruccion de activacion puede activarse para instruir el procesador para iniciar la migracion de datos de memoria para la tarjeta de memoria de origen en donde un error se produzca multiples veces. Puede ser tambien que el OS active, segun una instruccion de un usuario, el procesador para activar la primera instruccion de activacion. Por ejemplo, cuando el usuario tenga un requisito de migracion, el usuario puede enviar activamente una instruccion de inicio al OS y el OS instruye, segun la instruccion de inicio, el procesador para activar la primera instruccion de activacion. Para dar otro ejemplo, el usuario puede configurar previamente una polttica de inicio en el OS y, cuando la polftica de inicio se satisfaga, el procesador se activa para activar la primera instruccion de activacion.
E202: El procesador ejecuta la instruccion de migracion de datos de memoria del BIOS segun la primera instruccion de activacion.
Despues de adquirir la primera instruccion de activacion, el procesador sale del sistema operativo y ejecuta la
instruccion de migracion de datos de memoria del BIOS, donde la instruccion de migracion de datos de memoria del BIOS permite que el procesador lleve a cabo la etapa E203 a la etapa E205.
E203: El procesador determina una tarjeta de memoria de origen de datos de memoria que van a migrarse segun la instruccion de migracion de datos de memoria del BIOS.
5 E204: El procesador determina una tarjeta de memoria de soporte para la tarjeta de memoria de origen segun la
instruccion de migracion de datos de memoria del BIOS.
El procesador puede determinar una tarjeta de memoria objetivo de la tarjeta de memoria de origen y, generalmente, la tarjeta de memoria objetivo es la tarjeta de memoria de soporte. La tarjeta de memoria de soporte puede configurarse previamente.
10 E205: El procesador instruye, segun la instruccion de migracion de datos de memoria del BIOS, un controlador de
memoria de la tarjeta de memoria de origen para migrar los datos de memoria, de modo que el controlador de memoria de la tarjeta de memoria de origen migra los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte segun una instruccion del procesador.
Despues de determinar la tarjeta de memoria de origen y la tarjeta de memoria de soporte, el procesador puede 15 instruir, segun la instruccion de migracion de datos de memoria del BIOS, el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen y escribir los datos lefdos en la tarjeta de memoria de soporte, a fin de implementar la migracion de los datos de memoria de la tarjeta de origen a la tarjeta de memoria de soporte. En esta realizacion de la presente invencion, el procesador puede recibir la primera instruccion de activacion y salir del sistema operativo y ejecutar la instruccion de migracion de datos de memoria del 20 BIOS segun la primera instruccion de activacion, donde la instruccion de migracion de datos de memoria del BIOS permite que el procesador determine la tarjeta de memoria de origen de los datos de memoria que van a migrarse y la tarjeta de memoria de soporte de la tarjeta de memoria de origen, e instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte, de modo que los datos de memoria de la tarjeta de memoria de origen pueden migrarse en un caso en 25 donde el ordenador no este apagado, implementando de ese modo el mantenimiento online de una tarjeta de memoria defectuosa y resolviendo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando todo un ordenador este encendido. Ademas, el procesador ejecuta la instruccion del BIOS para completar la migracion de los datos de memoria; por lo tanto, puede implementarse la migracion de datos de una tarjeta de memoria en donde este situado el modulo kernel de un OS, evitando el 30 problema de que los datos del modulo kernel del OS no puedan migrarse.
Realizacion espedfica 1 del metodo
Con referencia al ordenador mostrado en la Figura 1, como se muestra en al Figura 3, una realizacion de la presente invencion proporciona un metodo para migrar datos de memoria, usado para migrar datos de memoria en un ordenador, donde una instruccion de migracion de datos de memoria se almacena en un BIOS en el ordenador. Por 35 ejemplo, los datos de memoria de una tarjeta de memoria de origen pueden migrarse a una tarjeta de memoria de soporte; la tarjeta de memoria de origen puede ser una tarjeta de memoria 101-A; la tarjeta de memoria de soporte puede ser una tarjeta de memoria 101-C; la tarjeta de memoria 101-C puede ser una tarjeta de memoria que se haya insertado en una ranura de hardware antes de que el ordenador este encendido y puede ser tambien una tarjeta de memoria que se anada temporalmente; antes de que se migren los datos de memoria, un identificador de 40 la tarjeta de memoria 101-C se configura en una lista ACPI y un proceso de iniciacion especial necesita completarse antes de que se lleve a cabo la migracion. El metodo para migrar datos de memoria en esta realizacion de la presente invencion puede incluir:
E301: Un procesador adquiere un identificador especificado de una tarjeta de memoria de soporte y configura el identificador en una lista ACPI segun una instruccion de la BIOS.
45 Cuando el ordenador se enciende y se inicia, el procesador ejecuta la instruccion del BIOS y puede presentar un menu de inicio del BIOS a un usuario. El usuario configura el identificador especificado de la tarjeta de memoria de soporte usando el menu de inicio del BIOS y el procesador puede obtener el identificador de la tarjeta de memoria de soporte configurado por el usuario y registrar el identificador en la lista ACPI, de modo que la informacion acerca de la tarjeta de memoria de soporte puede adquirirse posteriormente leyendo la lista ACPI. Ciertamente, el 50 procesador puede registrar tambien el identificador de la tarjeta de memoria de soporte en otra unidad de almacenamiento o lista siempre que el procesador pueda adquirir el identificador registrado de la tarjeta de memoria de soporte posteriormente, lo que no se limita en la presente memoria por esta realizacion de la presente invencion.
El identificador de la tarjeta de memoria de soporte puede ser un numero de ranura de una ranura dentro de la que 55 se inserta una tarjeta de memoria de soporte o un numero relacionado con la ranura. En esta realizacion de la presente invencion, la tarjeta de memoria de soporte puede haberse insertado en la ranura antes de que el
5
10
15
20
25
30
35
40
45
50
55
ordenador se encienda o se inicie y puede insertarse tambien en la ranura despues de que el ordenador se encienda e inicie. Si la tarjeta de memoria de soporte se ha insertado en la ranura, el identificador de la tarjeta de memoria de soporte es el numero de ranura de la ranura dentro de la que la tarjeta de memoria de soporte se inserta actualmente; si la tarjeta de memoria de soporte no se ha insertado en la ranura, el identificador de la tarjeta de memoria de soporte puede ser un numero de ranura de una ranura especificada por el usuario y la tarjeta de memoria de soporte puede insertarse directamente en la ranura especificada por el usuario posteriormente.
La etapa 301 es una etapa opcional. El usuario no proporciona necesariamente el identificador de la tarjeta de memoria de soporte para el procesador cuando el ordenador se enciende o inicia y puede proporcionar el identificador de la tarjeta de memoria de soporte para el procesador despues de que se encienda e inicie; en este caso, el procesador ejecuta una instruccion de un OS y el usuario puede proporcionar el identificador de la tarjeta de memoria de soporte para el procesador usando el OS.
E302: El procesador inicia la tarjeta de memoria de soporte segun la instruccion del BIOS, donde el proceso de iniciacion evita la asignacion de una direccion de sistema a la tarjeta de memoria de soporte.
Despues de que el procesador adquiera el identificador de la tarjeta de memoria de soporte especificado por el usuario, el ordenador puede reiniciarse y la instruccion del BIOS se ejecuta para llevar a cabo una iniciacion especial en la tarjeta de memoria de soporte. Es decir, el proceso de iniciacion evita asignar una direccion de sistema a la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de soporte esta lista pero es invisible al OS.
Espedficamente, cuando el ordenador se reinicia, el procesador ejecuta una instruccion de iniciacion del BIOS, donde la instruccion de iniciacion del BIOS puede permitir que el procesador determine si la tarjeta de memoria de soporte se ha insertado en la ranura, determine que la tarjeta de memoria de soporte existe como hardware si la tarjeta de memoria de soporte se ha insertado en la ranura y lleve a cabo la iniciacion en la tarjeta de memoria de soporte.
Ciertamente, esta etapa es una etapa opcional. En la practica, el procesador puede no reiniciar el ordenador para llevar a cabo la iniciacion en la tarjeta de memoria de soporte, sino llevar a cabo la iniciacion en la tarjeta de memoria de soporte cuando la tarjeta de memoria de soporte necesite usarse posteriormente, por ejemplo, antes de la migracion y cuando se determine que la iniciacion de la tarjeta de memoria de soporte no esta completada.
E303: Un controlador de memoria de una tarjeta de memoria de origen monitoriza datos erroneos en la tarjeta de memoria de origen, determina si una cantidad de los datos erroneos excede un umbral y, si la cantidad de los datos erroneos excede el umbral, el controlador de memoria de la tarjeta de memoria de origen activa una primera instruccion de activacion.
Cuando una cantidad de datos erroneos en una tarjeta de memoria excede un valor, puede causar un fallo en la tarjeta de memoria e incluso causar un reinicio del ordenador; por lo tanto, cuando el ordenador se encienda e inicie, el procesador puede ejecutar una instruccion del BIOS para configurar el controlador de memoria de la tarjeta de memoria de origen, de modo que el controlador de memoria de la tarjeta de memoria de origen puede monitorizar los datos erroneos en la tarjeta de memoria de origen y, cuando la cantidad de los datos erroneos en la tarjeta de memoria de origen exceda el umbral, activar la primera instruccion de activacion. La primera instruccion de activacion se usa para instruir el procesador para salir del OS y ejecutar la instruccion de migracion de datos de memoria del BIOS, a fin de reiniciar la migracion de los datos de memoria. El umbral puede configurarse por el procesador en el controlador de memoria de la tarjeta de memoria de origen cuando el ordenador se encienda e inicie, de modo que el controlador de memoria de la tarjeta de memoria de origen puede recopilar estadfsticas sobre los datos erroneos en la tarjeta de memoria de origen despues de que el ordenador se encienda e inicie y monitorizar la tarjeta de memoria de origen a tiempo real.
Si existen multiples tarjetas de memoria de origen en el ordenador, pueden monitorizarse datos erroneos en cada tarjeta de memoria de origen. Cuando se detecta que una cantidad de datos erroneos en cualquiera de las tarjetas de memoria de origen excede el umbral, la primera instruccion de activacion se activa para instruir el BIOS para iniciar la migracion de datos de memoria en la tarjeta de memoria.
Que el controlador de memoria de la tarjeta de memoria de origen active la primera instruccion de activacion puede ser espedficamente que el controlador de memoria de la tarjeta de memoria de origen active una interrupcion de gestion de sistema informatico SMI; despues de recibir la interrupcion SMI activada por el controlador de memoria de la tarjeta de memoria de origen, el procesador entra en un modo de gestion de sistema (Gestion de Sistema, SM) y, en este caso, el procesador sale del OS y ejecuta la instruccion del BIOS.
En esta realizacion de la presente invencion, puede monitorizarse la tarjeta de memoria de origen en el ordenador y el procesador puede activar la primera instruccion de activacion para una tarjeta de memoria de origen problematica para llevar a cabo la migracion de los datos de memoria, de modo que puede garantizarse que un fallo se resuelva a tiempo, y los datos de memoria se migran solo cuando se produzca un fallo en la tarjeta de memoria de origen, ahorrando de ese modo un recurso de sistema.
5
10
15
20
25
30
35
40
45
50
55
Ademas, el controlador de memoria de la tarjeta de memoria de origen puede registrar, en un registro del controlador de memoria, que una cantidad de datos erroneos en la tarjeta de memoria de origen excede el umbral, a fin de instruir posteriormente el procesador para determinar que una tarjeta de memoria problematica es la tarjeta de memoria de origen.
E304: El procesador adquiere la primera instruccion de activacion y sale de un sistema operativo y ejecuta la instruccion de migracion de datos de memoria del BIOS segun la primera instruccion de activacion.
Despues de recibir la interrupcion SMI, el procesador entra en el modo de gestion de sistema; en este caso, el procesador sale del OS y ejecuta la instruccion de migracion de datos de memoria del BIOS, donde la instruccion de migracion de datos de memoria puede permitir que el procesador lleve a cabo la etapa E305 a la etapa E312.
E305: El procesador consulta el controlador de memoria de la tarjeta de memoria de origen segun la instruccion de migracion de datos de memoria del BIOS y determina la tarjeta de memoria de origen.
Despues de iniciar la migracion de los datos de memoria, el procesador necesita determinar una tarjeta de memoria de los datos que van a migrarse, es decir, la tarjeta de memoria de origen. El procesador puede ejecutar la instruccion de migracion de datos de memoria del BIOS para determinar que una tarjeta de memoria correspondiente a un controlador de memoria de origen que activa la primera instruccion de activacion es la tarjeta de memoria de origen, por ejemplo, consultando el registro del controlador de memoria en el ordenador y determinando la tarjeta de memoria de origen usando la informacion registrada en el registro del controlador de memoria de la tarjeta de memoria de origen.
Ademas, despues de determinar la tarjeta de memoria, el procesador puede registrar adicionalmente un identificador de la tarjeta de memoria de origen en la lista ACPI, de modo que la informacion acerca de la tarjeta de memoria de origen puede adquirirse posteriormente leyendo la lista ACPI.
E306: El procesador consulta la lista ACPI segun la instruccion de migracion de datos de memoria del BIOS y determina el identificador de la tarjeta de memoria de soporte.
El procesador puede adquirir un identificador registrado de una tarjeta de memoria de soporte de la lista ACPI. Pueden existir uno o mas identificadores de la tarjeta de memoria de soporte o tarjetas de memoria de soporte; si existen multiples identificadores de las tarjetas de memoria de soporte, el procesador puede adquirir los multiples identificadores de las tarjetas de memoria de soporte de la lista ACPI y seleccionar uno de los multiples identificadores de las tarjetas de memoria de soporte como el identificador de la tarjeta de memoria de soporte segun la informacion acerca de la tarjeta de memoria de origen. Por ejemplo, el procesador selecciona, a partir de las multiples tarjetas de memoria de soporte y segun una capacidad de memoria de la tarjeta de memoria de origen, una tarjeta de memoria cuya capacidad de memoria es mayor que la capacidad de memoria de la tarjeta de memoria de origen y determina un identificador de la tarjeta de memoria como el identificador de la tarjeta de memoria de soporte. Para dar otro ejemplo, el procesador puede seleccionar, a partir de las multiples tarjetas de memoria de soporte y segun la informacion acerca de un procesador al que pertenezca la tarjeta de memoria de origen, una tarjeta de memoria que no se controle por un mismo procesador como la tarjeta de memoria de origen y determinar un identificador de la tarjeta de memoria como el identificador de la tarjeta de memoria de soporte.
E307: El procesador determina, segun la instruccion de migracion de datos de memoria del BIOS, si la tarjeta de memoria de soporte cumple con una condicion de migracion.
Antes de migrar los datos de memoria de la tarjeta de memoria de origen, el procesador necesita determinar si la tarjeta de memoria de soporte cumple con la condicion de migracion y migrar los datos de memoria de la tarjeta de memoria solo si la tarjeta de memoria de soporte cumple con la condicion de migracion. Esto garantiza que los datos de memoria se migren con exito e impide un fallo de migracion de datos causado por un problema de una capacidad de memoria insuficiente de la tarjeta de memoria de soporte o similar.
Que el procesador determine si la tarjeta de memoria de soporte cumple una condicion de migracion puede ser espedficamente: determinar si la iniciacion de la tarjeta de memoria de soporte esta completada, donde, si la iniciacion de la tarjeta de memoria de soporte esta completada, indica que la tarjeta de memoria de soporte esta lista y cumple la condicion de migracion; si la etapa E302 no se lleva a cabo antes de que se lleve a cabo esta etapa, es decir, si la iniciacion de la tarjeta de memoria de soporte no esta completada, el procesador puede ejecutar la instruccion de iniciacion del BIOS en este momento para llevar a cabo una iniciacion especial en la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de soporte esta lista y cumple la condicion de migracion.
Ademas, la determinacion de si la tarjeta de memoria de soporte cumple una condicion de migracion puede ser ademas: determinar si la capacidad de memoria de la tarjeta de memoria de soporte es mayor que la capacidad de memoria de la tarjeta de memoria de origen, donde, si la capacidad de memoria de la tarjeta de memoria de soporte es mayor que la capacidad de memoria de la tarjeta de memoria de origen, indica que los datos de memoria de la tarjeta de memoria de origen pueden migrarse a la tarjeta de memoria de soporte y que el elevador de memoria de
5
10
15
20
25
30
35
40
45
50
55
soporte cumple la condicion de migracion; o determinar si la tarjeta de memoria de origen y la tarjeta de memoria de soporte se controlan por un mismo procesador, donde, si se determina que la tarjeta de memoria de origen y la tarjeta de memoria de soporte no se controlan por un mismo procesador, indica que los datos de memoria de la tarjeta de memoria de origen pueden migrarse a la tarjeta de memoria de soporte y la tarjeta de memoria de soporte cumple la condicion de migracion.
E308: Si la tarjeta de memoria de soporte cumple la condicion de migracion, el procesador instruye, segun la instruccion de migracion de datos de memoria del BIOS, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo una operacion de patrulla de memoria para determinar datos no erroneos en la tarjeta de memoria de origen.
Antes de migrar los datos de memoria, el procesador puede instruir el controlador de memoria de la tarjeta de memoria de origen para ejecutar la operacion de patrulla de memoria para determinar los datos no erroneos en la tarjeta de memoria de origen y hacer una marca de deteccion segun un resultado de deteccion, de modo que, cuando los datos de memoria de la tarjeta de memoria de origen se migran a la tarjeta de memoria de soporte posteriormente, solo los datos no erroneos en la tarjeta de memoria de origen se migran segun la marca de deteccion, evitando de ese modo un problema tal como un reinicio del ordenador que se cause migrando los datos erroneos a la tarjeta de memoria de soporte.
El controlador de memoria de la tarjeta de memoria de origen puede iniciar la operacion de patrulla de memoria segun una instruccion del procesador, donde la operacion de patrulla de memoria puede ser espedficamente: comprobar los datos de memoria de la tarjeta de memoria de origen segun un mecanismo de deteccion establecido, para determinar que datos en la tarjeta de memoria de origen son los datos erroneos, y hacer una direccion de sistema de los datos erroneos, es decir, hacer una marca de deteccion segun un resultado de deteccion, de modo que, cuando los datos de memoria se migren posteriormente, el procesador puede migrar los datos no erroneos en la tarjeta de memoria de origen segun la direccion de sistema marcada de los datos erroneos.
Despues de completar la operacion de patrulla, el controlador de memoria de la tarjeta de memoria de origen puede configurar el registro del controlador de memoria. El procesador puede determinar, consultando el registro, si la operacion de patrulla esta completada y, despues de que la operacion de patrulla este completada, el procesador puede llevar a cabo la etapa 309, es decir, establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo, a fin de migrar los datos de memoria.
Esta etapa es una etapa opcional y el procesador no instruye necesariamente el controlador de memoria de origen para llevar a cabo la operacion de patrulla de memoria.
E309: Si la tarjeta de memoria de soporte cumple la condicion de migracion, el procesador establece la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo segun la instruccion de migracion de datos de memoria del BIOS.
Para implementar la migracion de los datos de memoria, el procesador puede establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en el modo espejo y, despues de que se establezca el modo espejo, el controlador de memoria de la tarjeta de memoria de origen puede escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte de acuerdo con la instruccion del procesador.
Espedficamente, cuando se ejecute la instruccion de migracion de datos de memoria del BIOS, el procesador puede configurar el identificador de la tarjeta de memoria de soporte en el controlador de memoria de la tarjeta de memoria de origen y configurar el identificador de la tarjeta de memoria de origen en un controlador de memoria de la tarjeta de memoria de soporte, de modo que la tarjeta de memoria de origen y la tarjeta de memoria de soporte se establecen en el modo espejo. Por lo tanto, la tarjeta de memoria de origen puede enviar los datos de memoria de la tarjeta de memoria de origen al controlador de memoria de la tarjeta de memoria de soporte segun la instruccion del procesador, de modo que el controlador de memoria de la tarjeta de memoria de soporte escribe los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte.
Ademas, que la tarjeta de memoria de origen y la tarjeta de memoria de soporte se establezcan en el modo espejo puede incluir ademas que el procesador duplique la informacion de configuracion de la direccion del controlador de memoria de la tarjeta de memoria de origen al controlador de memoria de la tarjeta de memoria de soporte, de modo que una direccion de sistema se asigna a la tarjeta de memoria de soporte segun una manera de asignacion de direccion de la tarjeta de memoria de origen.
E310: El procesador instruye, segun la instruccion de migracion de datos de memoria del BIOS, el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria.
Despues de configurar el modo espejo de la tarjeta de memoria de origen y la tarjeta de memoria de soporte, el procesador puede instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria de la tarjeta de memoria de origen.
5
10
15
20
25
30
35
40
45
50
55
Espedficamente, el procesador puede enviar una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de lectura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen y, despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la instruccion de lectura de datos, el procesador puede enviar una instruccion de escritura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de escritura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen, a fin de permitir que el controlador de memoria de la tarjeta de memoria de origen lea los datos de memoria de la tarjeta de memoria de origen segun la instruccion de lectura de datos, luego escribir los datos lefdos en la tarjeta de memoria de origen segun la instruccion de escritura de datos y enviar los datos lefdos al controlador de memoria de la tarjeta de memoria de soporte segun el modo espejo y permitir que el controlador de memoria de la tarjeta de memoria de soporte escriba los datos lefdos en la tarjeta de memoria de soporte. Esto implementa la migracion de los datos de memoria y todos los datos de memoria de la tarjeta de memoria de origen pueden migrarse a la tarjeta de memoria de soporte, en vez de migrar solo datos que se escribieron recientemente en la tarjeta de memoria de origen, despues de que se inicie la migracion de los datos de memoria.
En el proceso de migrar los datos de memoria, si el procesador ejecuta la instruccion del BIOS todo el tiempo para migrar los datos de memoria, el procesador no puede ejecutar la instruccion del OS para procesar un servicio dentro de un tiempo relativamente largo, lo que afecta la ejecucion normal del ordenador y da como resultado el procesamiento de otros servicios que esten en un estado interrumpido durante un largo tiempo; por lo tanto, el procesador puede llevar a cabo multiples migraciones para los datos de memoria. Por ejemplo, despues de que se complete una migracion de los datos de memoria, el procesador puede salir del BIOS y ejecutar la instruccion del OS para llevar a cabo el procesamiento normal de servicio y, hasta una proxima migracion de los datos de memoria, el procesador sale del Os y ejecuta la instruccion de migracion de datos de memoria del BIOS otra vez para continuar migrando los datos de memoria. Esta manera de migrar los datos de memoria para multiples veces permite que el procesador ejecute las instrucciones del OS y del BIOS alternativamente y que complete la migracion de los datos de memoria finalmente, evitando de ese modo una interrupcion prolongada de un servicio de sistema y garantizando que un sistema se ejecute con normalidad. En esta realizacion de la presente invencion, para implementar el metodo para migrar los datos de memoria para multiples veces, puede mejorarse ademas la instruccion de migracion de datos de memoria del BIOS, por ejemplo, configurando previamente una cantidad de datos de cada migracion o la duracion de cada migracion, es decir, configurando previamente una polttica de multiples migraciones, en la instruccion de migracion de datos de memoria del BIOS, de modo que, cuando se ejecute la instruccion de migracion de datos de memoria del BIOS, el procesador puede instruir, segun la polftica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria. Espedficamente, el procesador puede instruir, usando las etapas siguientes, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria:
(a) el procesador determina una cantidad de datos de una migracion actual segun la cantidad especificada de datos de cada migracion, instruye el controlador de memoria de la tarjeta de memoria de origen para migrar la cantidad de datos de la migracion actual a la tarjeta de memoria de soporte; o el procesador determina la duracion de una migracion actual segun la duracion de cada migracion e instruye el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual; o, segun un estado de ejecucion del procesador, un controlador de memoria 102-A de la tarjeta de memoria de origen se instruye para migrar los datos de memoria en un periodo de tiempo en donde el estado de ejecucion del procesador este inactivo. Que el estado de ejecucion del procesador sea un estado inactivo puede ser que el uso del procesador sea menor que un umbral establecido;
(b) despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la migracion actual, el procesador sale del BIOS y ejecuta la instruccion del OS;
(c) el procesador recibe una segunda instruccion de activacion, donde se usa la segunda instruccion de activacion para instruir el procesador para volver a ejecutar la instruccion del BIOS, a fin de continuar migrando los datos de memoria; y
(d) el procesador vuelve a llevar a cabo la etapa (a) segun la instruccion del BIOS, hasta que los datos de memoria de la tarjeta de memoria de origen se migren por completo a la tarjeta de memoria de soporte.
En la etapa (b), cuando salga del BIOS y ejecute la instruccion del OS para llevar a cabo el procesamiento de servicio, el procesador puede llevar a cabo una operacion de lectura/escritura en la memoria de origen y, a pesar de que el OS usa el procesador para llevar a cabo una operacion de escritura de datos en un bloque de datos A en la tarjeta de memoria de origen que se ha migrado, el controlador de memoria de la tarjeta de memoria de origen puede escribir todavfa los datos en los que la operacion de escritura se lleva a cabo en un bloque de datos A en la
5
10
15
20
25
30
35
40
45
50
55
tarjeta de memoria de soporte porque se establece el modo espejo. Esto evita una perdida de datos y garantiza la consistencia de los datos entre la tarjeta de memoria de soporte y la tarjeta de memoria de origen.
Ademas, el usuario puede configurar ademas una condicion de activacion de la segunda instruccion de activacion en la polttica de multiples migraciones, donde la condicion de activacion de la segunda instruccion de activacion puede ser un intervalo de cada migracion. En este caso, el procesador puede adquirir el intervalo de cada migracion a partir de la polttica de migracion y configurar un temporizador de migracion de memoria segun el intervalo de cada migracion, de modo que el temporizador de migracion de memoria activa la segunda instruccion de activacion segun el intervalo de cada migracion, es decir, instruye, segun el intervalo de cada migracion, el procesador para continuar migrando los datos de memoria; por ejemplo, el procesador puede establecer el temporizador de migracion de memoria en un puente sur en el ordenador.
La condicion de activacion de la segunda instruccion de activacion puede ser tambien el estado de ejecucion del procesador. El procesador puede activar la segunda instruccion de activacion segun el estado de ejecucion del procesador; por ejemplo, el estado de ejecucion del procesador puede ser que el procesador este en el estado inactivo o que el uso del procesador sea menor que un umbral espedfico. Cuando se ejecute la instruccion del OS, el procesador puede monitorizar la informacion de ejecucion del procesador a tiempo real y, cuando el uso del procesador sea menor que el umbral espedfico establecido, la segunda instruccion de migracion se activa, de modo que el procesador sale del OS y ejecuta la instruccion del BIOS segun la segunda instruccion de migracion activada por el procesador para continuar migrando los datos de memoria. Ciertamente, el procesador puede usar ademas un controlador de placa principal de base (Controlador de Placa Principal de Base) para monitorizar el estado de ejecucion del procesador y activar la segunda instruccion de activacion, lo que no se limita en la presente memoria por esta realizacion de la presente invencion.
Ademas, cuando se instruya el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, el procesador puede instruir, segun una direccion que sea de los datos erroneos y se registre en el controlador de memoria de la tarjeta de memoria de origen, el controlador de memoria de la tarjeta de memoria de origen para migrar los datos no erroneos en la tarjeta de memoria de origen a la tarjeta de memoria de soporte, a fin de evitar un reinicio del ordenador que pueda causarse migrando los datos erroneos en la tarjeta de memoria de origen a la tarjeta de memoria de soporte.
E311: El procesador cambia, segun la instruccion de migracion de datos de memoria del BIOS, una tarjeta de memoria senalada por una direccion de sistema de la tarjeta de memoria de origen a la tarjeta de memoria de soporte.
Despues de que se complete la migracion de los datos de memoria, el procesador puede mapear la direccion de sistema de la tarjeta de memoria de origen a la tarjeta de memoria de soporte, de modo que la tarjeta de memoria objetivo senalada por la direccion de sistema de la tarjeta de memoria de origen se cambia a la tarjeta de memoria de soporte y la tarjeta de memoria de soporte puede reemplazar la tarjeta de memoria de origen y asumir todas las operaciones de lectura/escritura en la tarjeta de memoria de origen.
E312: El procesador lleva a cabo una operacion de apagado en la tarjeta de memoria de origen segun la instruccion de migracion de datos de memoria del BIOS.
Despues de que se complete la migracion de los datos de memoria de la tarjeta de memoria de origen, el procesador puede llevar a cabo la operacion de apagado en la tarjeta de memoria de origen, de modo que la tarjeta de memoria de origen puede extraerse o reemplazarse en un caso en donde el ordenador no este apagado, resolviendo de ese modo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando este apagado todo un ordenador.
En esta realizacion de la presente invencion, el procesador puede adquirir la primera instruccion de activacion y salir del OS y ejecutar la instruccion de migracion de datos de memoria del BIOS segun la primera instruccion de activacion, donde la instruccion de migracion de datos de memoria del BIOS permite que el procesador determine la tarjeta de memoria de origen y la tarjeta de memoria de soporte, establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en el modo espejo despues de determinar que la tarjeta de memoria de soporte cumple la condicion de migracion e instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte segun el modo espejo, de modo que los datos de memoria de la tarjeta de memoria de origen pueden migrarse en un caso en donde el ordenador no este apagado, implementando asf el mantenimiento online de una tarjeta de memoria defectuosa y resolviendo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando todo un ordenador este encendido. Ademas, el procesador inicia la migracion de los datos de memoria segun la primera instruccion de activacion activada y los datos de memoria solo se migran cuando se produzca un fallo en la tarjeta de memoria de origen de los datos de memoria que necesiten migrarse, ahorrando efectivamente un recurso de sistema. Ademas, el procesador ejecuta la instruccion del BIOS para completar la migracion de los datos de memoria; por lo tanto, puede implementarse la migracion de datos de
5
10
15
20
25
30
35
40
45
50
55
una tarjeta de memoria en donde este situado un modulo kernel del OS, evitando el problema de que los datos del modulo kernel del OS no puedan migrarse.
En esta realizacion de la presente invencion, el procesador puede migrar ademas todo los datos de la tarjeta de memoria de origen a la tarjeta de memoria de soporte, en vez de migrar solo datos de memoria que se escribieron recientemente en la tarjeta de memoria de origen despues de que se inicie la migracion de los datos de memoria, lo que garantiza la migracion completa de los datos de memoria. Ademas, el procesador puede instruir ademas, segun la polttica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte para multiples veces, de modo que, en el proceso de migrar los datos de memoria y segun un requisito, el procesador puede salir del OS y ejecutar la instruccion de migracion de datos de memoria del BIOS o salir del BIOS y ejecutar la instruccion del OS para llevar a cabo el procesamiento de servicio, a fin de garantizar que un servicio del ordenador pueda procesarse a tiempo, y se evita la interrupcion prolongada del servicio del ordenador que se causa por la migracion de una gran cantidad de datos de memoria, y para garantizar que el ordenador se ejecute con normalidad. Ademas, el procesador puede instruir ademas el controlador de memoria de la tarjeta de memoria de origen para determinar los datos no erroneos en la tarjeta de memoria de origen e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos no erroneos a la tarjeta de memoria de soporte, a fin de evitar un reinicio del ordenador que pueda causarse migrando los datos erroneos en la tarjeta de memoria de origen a la tarjeta de memoria de soporte.
Ademas, en esta realizacion de la presente invencion, antes de que se migren los datos de memoria, el procesador puede determinar ademas si la tarjeta de memoria de soporte cumple la condicion de migracion y migrar los datos de memoria de la tarjeta de memoria de origen solo si la tarjeta de memoria de soporte cumple la condicion de migracion. Esto garantiza que los datos de memoria se migren con exito e impide un fallo de migracion de datos causado por un problema de que la iniciacion de la tarjeta de memoria de soporte no este completada, de que la capacidad de memoria de la tarjeta de memoria de soporte sea insuficiente o similar.
Realizacion espedfica 2
Con referencia al ordenador mostrado en la Figura 1, como se muestra en al Figura 3, una realizacion de la presente invencion proporciona un metodo para migrar datos de memoria, usado para migrar datos de memoria en un ordenador, donde una instruccion de migracion de datos de memoria se almacena en un BIOS en el ordenador. Por ejemplo, los datos de memoria de una tarjeta de memoria de origen puede migrarse a una tarjeta de memoria de soporte; la tarjeta de memoria de origen puede ser una tarjeta de memoria 101-A; la tarjeta de memoria de soporte puede ser una tarjeta de memoria 101-C; la tarjeta de memoria 101-C puede ser una tarjeta de memoria que se haya insertado en una ranura de hardware antes de que el ordenador se encienda y puede ser tambien una tarjeta de memoria que se anada temporalmente; antes de que se migren los datos de memoria, un identificador de la tarjeta de memoria 101-C se configura en una lista ACPI y un proceso de iniciacion necesita completarse antes de que se lleve a cabo la migracion. El metodo para migrar datos de memoria en esta realizacion de la presente invencion puede incluir:
E401: Un procesador configura un identificador especificado de una tarjeta de memoria de soporte en una lista ACPI segun una instruccion de un OS.
Despues de que se enciende o inicia el ordenador, el procesador ejecuta la instruccion del OS, un usuario puede proporcionar el identificador especificado de la tarjeta de memoria de soporte para el OS y el procesador puede adquirir, segun la instruccion del OS, el identificador de la tarjeta de memoria de soporte especificada por el usuario y configurar el identificador en la lista ACPI. La lista ACPI es una lista accesible al BIOS y al OS; por lo tanto, cuando se ejecute el codigo del BIOS posteriormente, el procesador puede adquirir informacion sobre la tarjeta de memoria de soporte leyendo la lista ACPI. Ciertamente, el identificador de la tarjeta de memoria de soporte puede registrarse tambien en otra unidad de almacenamiento o lista siempre que se garantice que el procesador pueda acceder a la unidad de almacenamiento o lista cuando el procesador ejecute la instruccion del Os y la instruccion del BIOS, lo que no se limita en la presente memoria por esta realizacion de la presente invencion.
Esta etapa es una etapa opcional. El usuario puede especificar tambien el identificador de la tarjeta de memoria de soporte cuando el ordenador se encienda e inicie; en este caso, el procesador ejecuta la instruccion del BIOS, el usuario puede proporcionar el identificador de la tarjeta de memoria de soporte para el BIOS y el procesador puede adquirir, segun la instruccion del BIOS, el identificador de la unidad de soporte especificada por el usuario.
El identificador de la unidad de soporte puede ser un numero de ranura de una ranura en la que se inserte una tarjeta de memoria de soporte o un numero relacionado con la ranura. En esta realizacion de la presente invencion, la tarjeta de memoria de soporte puede haberse insertado en la ranura antes de que el ordenador se encienda o se inicie y puede insertarse tambien en la ranura despues de que el ordenador se encienda e inicie. Si la tarjeta de memoria de soporte se ha insertado en la ranura, el identificador de la tarjeta de memoria de soporte es el numero de ranura de la ranura dentro de la que la tarjeta de memoria de soporte se inserta actualmente; si la tarjeta de memoria de soporte no se ha insertado en la ranura, el identificador de la tarjeta de memoria de soporte puede ser
18
5
10
15
20
25
30
35
40
45
50
55
un numero de ranura de una ranura especificada por el usuario y la tarjeta de memoria de soporte puede insertarse directamente en la ranura especificada por el usuario posteriormente.
Ademas, el procesador puede iniciar ademas la tarjeta de memoria de soporte segun una instruccion del BIOS, de modo que la tarjeta de memoria de soporte esta lista y puede usarse con normalidad, pero es invisible al OS, es decir, el procesador no puede llevar a cabo una operacion de lectura/escritura en la tarjeta de memoria de soporte cuando se ejecute la instruccion del OS. Espedficamente, cuando la tarjeta de memoria de soporte especificada se inserte en la ranura despues de que se encienda o inicie el ordenador, el procesador puede activarse usando un boton de activacion en la tarjeta de memoria de soporte cuando la tarjeta de memoria de soporte se inserte en la ranura, para ejecutar una instruccion de inicializacion del BIOS para iniciar la tarjeta de memoria de soporte y, ciertamente, el procesador puede ejecutar tambien la instruccion de iniciacion del BIOS para iniciar la tarjeta de memoria de soporte cuando la tarjeta de memoria de soporte necesite usarse posteriormente; cuando la tarjeta de memoria de soporte especificada se ha insertado en la ranura antes de que se encienda o inicie el ordenador, el procesador ejecuta la instruccion del BIOS cuando se encienda o inicie el ordenador y el usuario necesita configurar el identificador de la tarjeta de memoria de soporte usando un menu de inicio del BIOS, de modo que, cuando el procesador ejecuta la instruccion del BIOS y determina que la tarjeta de memoria de soporte existe como hardware, el procesador lleva a cabo una iniciacion especial en la tarjeta de memoria de soporte.
E402: El procesador configura un identificador especificado de una tarjeta de memoria de origen en la lista ACPI segun la instruccion del OS.
Despues de que se encienda e inicie el ordenador, cuando el procesador ejecute la instruccion del OS y cuando el usuario encuentre que una tarjeta de memoria necesita reemplazarse debido a un rendimiento inestable, un tiempo de trabajo excesivamente largo u otra condicion, el usuario puede especificar la tarjeta de memoria como una tarjeta de memoria de datos que van a migrarse, es decir, la tarjeta de memoria de origen, y proporcionar un identificador de la tarjeta de memoria de origen para el OS. El procesador puede adquirir el identificador de la tarjeta de memoria de origen especificada por el usuario y configurar el identificador de la tarjeta de memoria de origen en la lista ACPI segun la instruccion del OS, de modo que, cuando el procesador ejecute la instruccion de migracion de datos de memoria del BIOS posteriormente, el procesador puede adquirir informacion acerca de la tarjeta de memoria de origen leyendo la lista ACPI.
En esta realizacion de la presente invencion, el usuario puede proporcionar por separado el identificador de la tarjeta de memoria de origen y el identificador de la tarjeta de memoria de soporte para el OS y puede proporcionar tambien el identificador de la tarjeta de memoria de origen junto con el identificador de la tarjeta de memoria de soporte para el OS, de modo que el procesador puede configurar por separado el identificador de la tarjeta de memoria de origen y el identificador de la tarjeta de memoria de soporte en la lista ACPI. Por ejemplo, el identificador de la tarjeta de memoria de origen y el identificador de la tarjeta de memoria de soporte se configuran en la lista ACPI usando la etapa 401 y la etapa 402, y el identificador de la tarjeta de memoria de origen y el identificador de la tarjeta de memoria de soporte pueden configurarse tambien juntos en la lista ACPI, lo que no se limita en la presente memoria por esta realizacion de la presente invencion.
E403: El procesador activa una primera instruccion de activacion segun la instruccion del OS.
Cuando el procesador ejecute una instruccion del OS para llevar a cabo el procesamiento de servicio, si el usuario tiene un requisito de migracion de datos de memoria, el usuario puede enviar una instruccion de migracion de datos de memoria, es decir, una instruccion de inicio, al OS, el OS instruye, segun la instruccion de migracion de datos de memoria enviada por el usuario, el procesador para generar la primera instruccion de activacion segun una instruccion del OS, donde la primera instruccion de activacion se usa para instruir el procesador para salir del OS y ejecutar la instruccion de migracion de datos de memoria del BIOS.
La primera instruccion de activacion puede ser espedficamente una SMI. Por ejemplo, el procesador puede cambiar un nivel de pin GPIO segun la instruccion del OS, de modo que un chip de puente sur (Puente Sur) en el ordenador activa la SMI y el procesador puede recibir el SMI; para dar otro ejemplo, el procesador puede configurar un registro en el puente sur en el ordenador segun la instruccion del OS, de modo que el puente sur en el ordenador activa la SMI y el procesador puede recibir la SMI. En esta realizacion de la presente invencion, el procesador puede activar tambien la primera instruccion de activacion de otra manera, lo que no se limita en la presente memoria de la presente invencion.
E404: El procesador sale del sistema operativo y ejecuta la instruccion de migracion de los datos de memoria del BIOS segun la primera instruccion de activacion.
Despues de recibir la interrupcion SMI, el procesador entra en un modo de gestion de sistema; en este caso, el procesador sale del OS y ejecuta la instruccion de migracion de datos de memoria del BIOS, donde la instruccion de migracion de datos de memoria puede permitir que el procesador lleve a cabo la etapa E405 a la etapa E411.
5
10
15
20
25
30
35
40
45
50
E405: El procesador consulta la lista ACPI y determina la tarjeta de memoria de origen y la tarjeta de memoria de soporte.
Como el procesador registra el identificador de la tarjeta de memoria de origen y el identificador de la tarjeta de memoria de soporte en la lista ACPI con antelacion, el procesador puede consultar la lista ACPI, adquirir el identificador registrado de la tarjeta de memoria de origen y el identificador registrado de la tarjeta de memoria de soporte y determinar la tarjeta de memoria de origen y la tarjeta de memoria de soporte segun el identificador de la tarjeta de memoria de origen y el identificador de la tarjeta de memoria de soporte.
Cuando existan multiples tarjetas de memoria de soporte, el procesador puede adquirir identificadores de multiples tarjetas de memoria de soporte de la lista ACPI y seleccionar uno de los identificadores de las multiples tarjetas de memoria de soporte como el identificador de la tarjeta de memoria de soporte segun la informacion acerca de la tarjeta de memoria de origen. Por ejemplo, el procesador selecciona, de las multiples tarjetas de memoria de soporte y segun una capacidad de memoria de la tarjeta de memoria de origen, una tarjeta de memoria cuya capacidad de memoria es mayor que la capacidad de memoria de la tarjeta de memoria de origen y determina un identificador de la tarjeta de memoria como el identificador de la tarjeta de memoria de soporte. Para dar otro ejemplo, el procesador puede seleccionar, a partir de las multiples tarjetas de memoria de soporte y segun la informacion acerca de un procesador al que pertenezca la tarjeta de memoria de origen, una tarjeta de memoria que no se controle por un mismo procesador como la tarjeta de memoria de origen y determinar un identificador de la tarjeta de memoria como el identificador de la tarjeta de memoria de soporte.
E406: El procesador determina si la tarjeta de memoria de soporte cumple una condicion de migracion.
E407: Si la tarjeta de memoria de soporte cumple la condicion de migracion, el procesador instruye un controlador de memoria de la tarjeta de memoria de origen para llevar a cabo una operacion de patrulla de memoria para determinar datos no erroneos en la tarjeta de memoria de origen.
E408: Si la tarjeta de memoria de soporte cumple la condicion de migracion, el procesador establece la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo de espejo.
E409: El procesador instruye el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria.
E410: El procesador establece una relacion de mapeo entre una direccion de sistema de la tarjeta de memoria de origen y la tarjeta de memoria de soporte.
E411: El procesador lleva a cabo una operacion de apagado en la tarjeta de memoria de origen.
En esta realizacion de la presente invencion, las maneras de implementacion espedficas de la etapa E406 a la etapa E411 son similares a las de la etapa E307 a la etapa E312 y no se describen los detalles en la presente memoria otra vez.
Despues de que se complete la migracion de los datos de memoria de la tarjeta de memoria de origen, el procesador puede llevar a cabo la operacion de apagado en la tarjeta de memoria de origen, de modo que la tarjeta de memoria de origen puede extraerse o reemplazarse en un caso en donde el ordenador no este apagado, resolviendo de ese modo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando todo un ordenador este apagado.
En esta realizacion de la presente invencion, el procesador puede adquirir la primera instruccion de activacion y salir del OS y ejecutar la instruccion de migracion de datos de memoria del BIOS segun la primera instruccion de activacion, donde la instruccion de migracion de datos de memoria del BIOS permite que el procesador determine la tarjeta de memoria de origen y la tarjeta de memoria de soporte, establezca la tarjeta de memoria de origen y la tarjeta de memoria de soporte en el modo espejo despues de determinar que la tarjeta de memoria de soporte cumple la condicion de migracion e instruya el controlador de memoria de la tarjeta de memoria de origen para escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte segun el modo espejo, de modo que los datos de memoria de la tarjeta de memoria de origen pueden migrarse en un caso en donde el ordenador no este apagado, implementando de ese modo el mantenimiento online de una tarjeta de memoria defectuosa y resolviendo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa puede reemplazarse o mantenerse solo cuando todo un ordenador este apagado. Ademas, el procesador inicia la migracion de los datos de memoria segun la primera instruccion de activacion activada y los datos de memoria se migran solo cuando se produce un fallo en la tarjeta de memoria de origen o los datos de memoria necesiten migrarse, ahorrando efectivamente un recurso de sistema. Ademas, el procesador ejecuta la instruccion del BIOS para completar la migracion de los datos de memoria; por lo tanto, puede implementarse la migracion de datos de una tarjeta de memoria en donde este situado un modulo kernel del OS, evitando el problema de que los datos del modulo kernel del OS no puedan migrarse.
5
10
15
20
25
30
35
40
45
50
En esta realizacion de la presente invencion, el procesador puede migrar ademas todos los datos de la tarjeta de memoria de origen a la tarjeta de memoria de soporte en vez de migrar solo los datos de memoria que se escribieron recientemente en la tarjeta de memoria de origen despues de que se inicie la migracion de los datos de memoria, lo que garantiza la migracion completa de los datos de memoria. Ademas, el procesador puede instruir ademas, segun la polttica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte para multiples veces, de modo que, en el proceso de migrar los datos de memoria y segun un requisito, el procesador puede salir del OS y ejecutar la instruccion de migracion de datos de memoria del BIOS o salir del BIOS y ejecutar la instruccion del OS, para llevar a cabo el procesamiento de servicio, a fin de garantizar que pueda procesarse a tiempo un servicio del ordenador, y se evita la interrupcion prolongada del servicio del ordenador que se causa por la migracion de una gran cantidad de datos, y de garantizar que el ordenador se ejecute con normalidad. Ademas, el procesador puede instruir ademas el controlador de memoria de la tarjeta de memoria de origen para determinar los datos no erroneos en la tarjeta de memoria de origen e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos no erroneos a la tarjeta de memoria de soporte, a fin de evitar un reinicio del ordenador que pueda causarse migrando los datos erroneos en la tarjeta de memoria de origen a la tarjeta de memoria de soporte.
Ademas, en esta realizacion de la presente invencion, antes de que se migren los datos de memoria, el procesador puede determinar ademas si la tarjeta de memoria de soporte cumple la condicion de emigracion y migrar los datos de memoria de la tarjeta de memoria de de origen solo si la tarjeta de memoria de soporte cumple la condicion de migracion. Esto garantiza que los datos de memoria se migren con exito e impide un fallo de migracion de datos causado por un problema de que la iniciacion de la tarjeta de memoria de soporte no este completada, de que la capacidad de memoria de la tarjeta de memoria de soporte es insuficiente o similar.
Una realizacion de la presente invencion proporciona un sistema de basico de entrada/salida. Como se muestra en la Figura 5, el sistema basico de entrada/salida incluye una instruccion de ejecucion 501, el sistema basico de entrada/salida puede ser un chip de procesamiento y, cuando un procesador en un ordenador ejecuta la instruccion de ejecucion de ordenador 501, el ordenador ejecuta el metodo siguiente:
determinar una tarjeta de memoria de origen de los datos de memoria que van a migrarse;
determinar una tarjeta de memoria de soporte para la tarjeta de memoria de origen; e
instruir un controlador de memoria en la tarjeta de memoria de origen para migrar los datos de memoria, de
modo que el controlador de memoria de la tarjeta de memoria de origen migra los datos de memoria de la
tarjeta de memoria de origen a la tarjeta de memoria de soporte segun una instruccion del procesador.
Ademas, el ordenador puede ejecutar ademas el metodo siguiente segun la instruccion de ejecucion de ordenador 501:
establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo, donde:
la instruccion, mediante un procesador, de un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, de modo que el controlador de memoria de la tarjeta de memoria de origen lee los datos de memoria de la tarjeta de memoria de origen y escribe los datos de memoria lefdos de la tarjeta de memoria de origen en la tarjeta de memoria de soporte segun una instruccion del procesador incluye:
enviar, por el procesador, una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de lectura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen; y
enviar, por el procesador, una instruccion de escritura de datos al controlador de memoria de la tarjeta de memoria de origen, donde la instruccion de escritura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen, de modo que el controlador de memoria de la tarjeta de memoria de origen lee los datos de memoria de la tarjeta de memoria de origen segun la instruccion de lectura de datos del procesador y, despues de recibir la instruccion de escritura de datos, envfa los datos de memoria lefdos de la tarjeta de memoria de origen a un controlador de memoria de la tarjeta de memoria de soporte segun el modo espejo de la tarjeta de memoria de origen y la tarjeta de memoria de soporte.
Ademas, el ordenador puede ejecutar ademas el metodo siguiente segun la instruccion de ejecucion de ordenador 501:
adquirir, mediante el ordenador, una polftica de multiples migraciones; e
5
10
15
20
25
30
35
40
45
50
55
instruir, mediante el ordenador segun la polttica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria, donde, ademas, la instruccion, mediante el ordenador segun la polftica de multiples migraciones, del controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria incluye:
determinar, mediante el ordenador, una cantidad de datos de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar la cantidad de datos de la migracion actual a la tarjeta de memoria de soporte; o determinar, mediante el ordenador, la duracion de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual; y,
despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la migracion actual, salir, mediante el ordenador, del sistema basico de entrada/salida y ejecutar una instruccion de un sistema operativo.
Ademas, el ordenador puede ejecutar ademas el metodo siguiente segun la instruccion de ejecucion de ordenador
501:
determinar, mediante el ordenador, si la tarjeta de memoria de soporte cumple una condicion de migracion y, si la tarjeta de memoria de soporte cumple la condicion de migracion, llevar a cabo la etapa de instruir un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, donde la condicion de migracion incluye pero no se limita a una o a una combinacion de las condiciones siguientes: que la iniciacion de la tarjeta de memoria de soporte se complete y que una capacidad de memoria de una tarjeta de soporte sea mayor o igual que una capacidad de memoria de la tarjeta de memoria de origen.
Ademas, el ordenador puede iniciar ademas la tarjeta de memoria de soporte segun la instruccion de ejecucion de ordenador 501 cuando la iniciacion de la tarjeta de memoria de soporte no se complete, donde la iniciacion evita asignar una direccion de sistema a la tarjeta de memoria de soporte.
Ademas, cuando el procesador en el ordenador ejecute la instruccion de ejecucion de ordenador 501 y antes de que el ordenador instruya el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, el ordenador puede ejecutar ademas el metodo siguiente:
instruir, mediante el ordenador, el controlador de memoria de la tarjeta de memoria de origen para detectar datos no erroneos en la tarjeta de memoria de origen y hacer una marca; e
instruir, mediante el ordenador segun una instruccion de migracion de datos de memoria del sistema basico de entrada/salida, el controlador de memoria de la tarjeta de memoria de origen para migrar los datos no erroneos segun la marca.
Ademas, despues de determinar que los datos de memoria de la tarjeta de memoria de origen se migran por completo a la tarjeta de memoria de soporte, el ordenador puede cambiar ademas, segun la instruccion de ejecucion de ordenador 501, una tarjeta de memoria objetivo senalada por una direccion de sistema de la tarjeta de memoria de origen a la tarjeta de memoria de soporte.
En esta realizacion de la presente invencion, el sistema basico de entrada/salida incluye la instruccion de ejecucion de ordenador 501, de modo que, cuando el ordenador ejecute la instruccion de ejecucion de ordenador 501, el ordenador puede determinar la tarjeta de memoria de origen de los datos de memoria que van a migrarse, determinar la tarjeta de memoria de soporte para la tarjeta de memoria de origen, establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en el modo espejo e instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos de memoria de la tarjeta de memoria de origen en la tarjeta de memoria de soporte segun el modo espejo, de modo que los datos de memoria de la tarjeta de memoria de origen pueden migrarse en un caso en donde el ordenador no este apagado, implementando de ese modo el mantenimiento online de una tarjeta de memoria defectuosa y resolviendo el problema en la tecnica anterior de que una tarjeta de memoria defectuosa pueda reemplazarse o mantenerse solo cuando todo un ordenador este apagado. Ademas, el procesador en el ordenador ejecuta la instruccion de ejecucion de ordenador 501 del BIOS para completar la migracion de los datos de memoria; por lo tanto, puede implementarse la migracion de datos de una tarjeta de memoria en donde este situado un modulo kernel del OS, evitando el problema de que los datos del modulo kernel del OS no puedan migrarse.
En esta realizacion de la presente invencion, todos los datos en la tarjeta de memoria de origen pueden migrarse ademas a la tarjeta de memoria de soporte, en vez de migrar solo los datos de memoria que se escribieron recientemente en la tarjeta de memoria de origen despues de que se inicie la migracion de los datos de memoria, lo que garantiza la migracion completa de los datos de memoria. Ademas, cuando se ejecute la instruccion de ejecucion de ordenador 501, el procesador en el ordenador puede instruir ademas, segun la polftica de multiples
5
10
15
20
25
30
35
40
45
50
migraciones, el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte para multiples veces, de modo que, en el proceso de migrar los datos de memoria y segun un requisito, el procesador puede salir del OS y ejecutar la instruccion de ejecucion de ordenador 501 del BIOS o salir del BIOS y ejecutar la instruccion del OS, para llevar a cabo el procesamiento de servicio, a fin de garantizar que pueda procesarse a tiempo un servicio del ordenador y se evita la interrupcion prolongada del servicio del ordenador que se causa por la migracion de una gran cantidad de datos de memoria, y para garantizar que el ordenador se ejecute con normalidad. Ademas, el procesador puede instruir ademas el controlador de memoria de la tarjeta de memoria de origen para determinar los datos no erroneos en la tarjeta de memoria de origen e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos no erroneos a la tarjeta de memoria de soporte, a fin de evitar un reinicio del ordenador que pueda causarse migrando los datos erroneos en la tarjeta de memoria de origen a la tarjeta de memoria de soporte.
Ademas, en esta realizacion de la presente invencion, antes de que se migren los datos de memoria, el procesador puede determinar ademas si la tarjeta de memoria de soporte cumple la condicion de migracion cuando el procesador ejecuta la instruccion de ejecucion de ordenador 501 y migrar los datos de memoria de la tarjeta de memoria de origen solo si la tarjeta de memoria de soporte cumple la condicion de migracion. Esto garantiza que los datos de memoria se migren con exito e impide un fallo de migracion de datos causado por un problema de que la iniciacion de la tarjeta de memoria de soporte no este completada, de que la capacidad de memoria de la tarjeta de memoria de soporte sea insuficiente o similar.
Cada aspecto de la presente invencion o la manera de implementacion posible de cada aspecto puede tomar una forma de un producto de programa informatico, donde el producto de programa se refiera a un codigo de programa legible por ordenador almacenado en un medio legible por ordenador.
El medio legible por ordenador puede ser un medio de senal legible por ordenador o un medio de almacenamiento legible por ordenador. El medio de almacenamiento legible por ordenador incluye, pero no se limita a, un sistema, dispositivo o aparato electronico, magnetico, optico, electromagnetico, de infrarrojos o semiconductor, o cualquier combinacion apropiada de los mismos, tal como una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM), una memoria de solo lectura programable y borrable (EPROM o memoria flash), una fibra optica y una memoria de solo lectura de disco compacto (CD-ROM).
Un procesador en un ordenador lee el codigo de programa legible por ordenador almacenado en un medio de lectura por ordenador, de modo que el procesador puede llevar a cabo una funcion y una accion especificadas en cada etapa y una combinacion de etapas en un diagrama de flujo; un aparato se genera para implementar una funcion y una accion especificadas en cada bloque o una combinacion de bloques en un diagrama de bloques.
Todo el codigo de programa legible por ordenador puede ejecutarse en un ordenador de usuario o puede ejecutarse parte en un ordenador de usuario como un paquete de software autonomo o puede ejecutarse parte en un ordenador de un usuario mientras que se ejecuta parte en un ordenador remoto o todo el codigo puede ejecutarse en un ordenador remoto o un servidor. Cabna destacar tambien que, en algunas soluciones de implementaciones alternativas, cada etapa en los diagramas de flujo o en las funciones especificadas en cada bloque en los diagramas de bloques puede no producirse en el orden ilustrado. Por ejemplo, dos etapas consecutivas o dos bloques en la ilustracion, que sean dependientes en una funcion implicada, pueden ejecutarse de hecho sustancialmente al mismo tiempo o estos bloques pueden ejecutarse algunas veces en orden inverso.
Una persona de experiencia ordinaria en la tecnica puede ser consciente de que, en combinacion con los ejemplos descritos en las realizaciones descritas en la memoria descriptiva, pueden implementarse unidades y etapas de algoritmos mediante hardware electronico o mediante una combinacion de software informatico y hardware electronico. Si las funciones se llevan a cabo mediante hardware o software depende de las solicitudes y de las condiciones de restriccion de diseno de las soluciones tecnicas. Una persona experta en la tecnica puede usar metodos diferentes para implementar las funciones descritas para cada aplicacion particular, pero no debena considerarse que la implementacion va mas alla del alcance de la presente invencion.
Las descripciones anteriores son meramente maneras de implementacion espedficas de la presente invencion, pero estan destinadas a limitar el alcance de proteccion de la presente invencion. Cualquier variacion o reemplazo entendido facilmente por una persona experta en la tecnica dentro del alcance tecnico descrito en la presente invencion caera dentro del alcance de proteccion de la presente invencion. Por lo tanto, el alcance de proteccion de la presente invencion sera objeto del alcance de proteccion de las reivindicaciones.

Claims (20)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un ordenador, que comprende: un procesador (105);
    un sistema basico de entrada/salida (104);
    una memoria principal (101), configurada para cargar una instruccion del sistema basico de entrada/salida (104) y una instruccion de un sistema operativo (103) en el ordenador, en donde la memoria principal (101) comprende una o mas tarjetas de memoria; y
    un controlador de memoria (102), en donde un controlador de memoria (102) correspondiente se configura para cada tarjeta memoria (101);
    en donde:
    el procesador (105) esta configurado para ejecutar la instruccion del sistema operativo (103), recibir una primera instruccion de activacion cuando se ejecute la instruccion del sistema operativo (103) y ejecutar una instruccion de migracion de datos de memoria del sistema basico de entrada/salida (104) segun la primera instruccion de activacion, en donde el procesador (105) lleva a cabo las operaciones siguientes segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida (104): determinar una tarjeta de memoria de origen de datos que van a migrarse; determinar una tarjeta de memoria de soporte para la tarjeta de memoria de origen; e instruir un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria; y
    el controlador de memoria (102) de la tarjeta de memoria esta configurado para recibir una instruccion del procesador (105) y migrar los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte segun la instruccion del procesador (105);
    en donde el controlador de memoria (102) de la tarjeta de memoria de origen esta configurado ademas para monitorizar datos erroneos en la tarjeta de memoria de origen y activar la primera instruccion de activacion si una cantidad de datos erroneos excede un umbral; y
    el procesador (105) esta configurado espedficamente para recibir la primera instruccion de activacion activada por el controlador de memoria (102) de la tarjeta de memoria de origen.
  2. 2. El ordenador segun la reivindicacion 1, en donde el procesador (105) esta configurado espedficamente para:
    establecer la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo; enviar una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen, en donde la instruccion de lectura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen; y enviar una instruccion de escritura de datos al controlador de memoria de la tarjeta de memoria de origen, en donde la instruccion de escritura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen;
    el controlador de memoria de la tarjeta de memoria de origen esta configurado espedficamente para leer los datos de memoria de la tarjeta de memoria de origen segun la instruccion de lectura de datos del procesador, recibir la instruccion de escritura de datos enviada por el procesador (105) y enviar los datos de memoria de lectura de la tarjeta de memoria de origen a un controlador de memoria de la tarjeta de memoria de soporte segun el modo espejo de la tarjeta de memoria de origen y la tarjeta de memoria de soporte; y
    el controlador de memoria de la tarjeta de memoria de soporte esta configurado para escribir los datos de memoria recibidos de la tarjeta de memoria de origen en la tarjeta de memoria de soporte.
  3. 3. El ordenador segun la reivindicacion 1 o 2, en donde el procesador (105) esta configurado espedficamente para adquirir una polttica de multiples migraciones e instruir, segun la polftica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria.
  4. 4. El ordenador segun la reivindicacion 3, en donde el procesador (105) esta configurado espedficamente para llevar a cabo las operaciones siguientes (a) a (d) segun la polftica de multiples migraciones, hasta que los datos de memoria de la tarjeta de memoria de origen se migren por completo a la tarjeta de memoria de soporte, en donde las operaciones (a) a (d) comprenden:
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    (a) determinar una cantidad de datos de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar la cantidad de datos para la migracion actual a la tarjeta de memoria de soporte; o determinar la duracion de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual;
    (b) despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la migracion actual, salir del sistema basico de entrada/salida (104) y ejecutar la instruccion del sistema operativo (103);
    (c) recibir una segunda instruccion de activacion, en donde la segunda instruccion de activacion se usa para instruir el procesador (105) para volver a ejecutar la instruccion de migracion de datos de memoria del sistema basico de entrada/salida (104); y
    (d) volver a llevar a cabo la etapa (a) segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida (104).
  5. 5. El ordenador segun la reivindicacion 4, en donde la polftica de multiples migraciones comprende una cantidad espedfica de datos de cada migracion o la duracion de cada migracion, en donde:
    el procesador (105) determina la cantidad de datos de la migracion actual segun la cantidad espedfica de datos de cada migracion o determina la duracion de la migracion actual segun la duracion de cada migracion.
  6. 6. El ordenador segun la reivindicacion 5, en donde la polftica de multiples migraciones comprende ademas un
    intervalo de cada migracion o un estado de ejecucion de una unidad de procesamiento central, en donde la segunda instruccion de activacion se activa segun el intervalo de cada migracion o el estado de ejecucion de la unidad de procesamiento central.
  7. 7. El ordenador segun la reivindicacion 1, en donde:
    el controlador de memoria de la tarjeta de memoria de origen esta configurado ademas para registrar, en un registro del controlador de memoria, que la cantidad de datos erroneos en la tarjeta de memoria de origen excede el umbral; y
    el procesador (105) esta configurado espedficamente para consultar el registro del controlador de memoria de la tarjeta de memoria de origen y determinar la tarjeta de memoria de origen.
  8. 8. El ordenador segun una cualquiera de las reivindicaciones 1 a 6, en donde el sistema operativo (103) esta configurado ademas para establecer una polftica de inicio de migracion de datos de memoria o recibir una instruccion de inicio de migracion de datos de memoria enviada por un usuario, y el sistema operativo (103) instruye, segun la polftica de inicio o la instruccion de inicio, el procesador (105) para generar la primera instruccion de activacion.
  9. 9. El ordenador segun la reivindicacion 8, en donde la polftica de inicio o la instruccion de inicio comprende ademas un identificador de la tarjeta de memoria de origen, en donde:
    el sistema operativo (103) esta configurado ademas para instruir el procesador (105) para registrar el identificador de la tarjeta de memoria de origen en un modulo de almacenamiento; y
    el procesador (105) esta configurado espedficamente para consultar el modulo de almacenamiento y determinar el identificador de la tarjeta de memoria de origen segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida (104).
  10. 10. El ordenador segun una cualquiera de las reivindicaciones 8 a 9, en donde el procesador (105) esta configurado
    ademas para configurar previamente un identificador de la tarjeta de memoria de soporte en el modulo de almacenamiento segun la instruccion del sistema operativo (103) o la instruccion del sistema basico de entrada/salida (104); y
    despues de que el procesador (105) ejecuta la instruccion de migracion de datos de memoria del sistema basico de entrada/salida (104), el procesador (105) se configura espedficamente para consultar el modulo de almacenamiento y determinar el identificador configurado previamente de la tarjeta de memoria de soporte.
  11. 11. Un metodo para migrar datos de memoria, usado par migrar datos de memoria en un ordenador, en donde el metodo comprende:
    recibir (E201), por un procesador en el ordenador, una primera instruccion de activacion cuando se ejecute una instruccion de un sistema operativo;
    5
    10
    15
    20
    25
    30
    35
    40
    45
    ejecutar (E202), mediante el procesador, una instruccion de migracion de datos de memoria de un sistema basico de entrada/salida segun la primera instruccion de activacion; y
    llevar a cabo, mediante el procesador, las operaciones siguientes segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida:
    determinar (E203) una tarjeta de memoria de origen de los datos de memoria que van a migrarse;
    determinar (E204) una tarjeta de memoria de soporte para la tarjeta de memoria de origen; e
    instruir (E205) un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, de modo que el controlador de memoria de la tarjeta de memoria de origen migra los datos de memoria a la tarjeta de memoria de soporte segun una instruccion del procesador
    en donde, el metodo comprende ademas:
    monitorizar, mediante el controlador de memoria de la tarjeta de memoria de origen, datos erroneos en la tarjeta de memoria de origen y activar, mediante el controlador de memoria de la tarjeta de memoria de origen, la primera instruccion de activacion si una cantidad de datos erroneos excede un umbral; y
    recibir, por el procesador, la primera instruccion de activacion activada por el controlador de memoria de la tarjeta de memoria de origen.
  12. 12. El metodo segun la reivindicacion 11, en donde el metodo comprende ademas:
    establecer (E408), mediante el procesador, la tarjeta de memoria de origen y la tarjeta de memoria de soporte en un modo espejo, en donde:
    la etapa de instruir, mediante el procesador, un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, de modo que el controlador de memoria de la tarjeta de memoria de origen migra los datos de memoria de la tarjeta de memoria de origen a la tarjeta de memoria de soporte segun una instruccion del procesador, comprende:
    enviar, por el procesador, una instruccion de lectura de datos al controlador de memoria de la tarjeta de memoria de origen, en donde la instruccion de lectura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para leer los datos de memoria de la tarjeta de memoria de origen:
    leer, mediante el controlador de memoria de la tarjeta de memoria de origen, los datos de memoria de la tarjeta de memoria de origen segun la instruccion de lectura de datos del procesador;
    enviar, por el procesador, una instruccion de escritura de datos al controlador de memoria de la tarjeta de memoria de origen, en donde la instruccion de escritura de datos se usa para instruir el controlador de memoria de la tarjeta de memoria de origen para escribir los datos lefdos de nuevo en la tarjeta de memoria de origen; y
    recibir, por el controlador de memoria de la tarjeta de memoria de origen, la instruccion de escritura de datos enviada por el procesador y enviar los datos de memoria lefdos de la tarjeta de memoria de origen a un controlador de memoria de la tarjeta de memoria de soporte segun el modo espejo de la tarjeta de memoria de origen y de la tarjeta de memoria de soporte, de modo que el controlador de memoria de la tarjeta de memoria de soporte escribe los datos de memoria recibidos de la tarjeta de memoria de origen en la tarjeta de memoria de soporte.
  13. 13. El metodo segun la reivindicacion 11 o 12, antes de la etapa de instruir, mediante el procesador, un controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria, que comprende ademas:
    adquirir, mediante el procesador, una polttica de multiples migraciones; e
    instruir, mediante el proceso segun la polftica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples migraciones para los datos de memoria.
  14. 14. El metodo segun la reivindicacion 13, en donde:
    la etapa de instruir, mediante el procesador segun la polftica de multiples migraciones, el controlador de memoria de la tarjeta de memoria de origen para llevar a cabo multiples variaciones para los datos de memoria comprende:
    5
    10
    15
    20
    25
    30
    35
    40
    45
    (a) determinar, mediante el procesador, una cantidad de datos de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar la cantidad de datos de la migracion actual a la tarjeta de memoria de soporte; o determinar, mediante el procesador, la duracion de una migracion actual e instruir el controlador de memoria de la tarjeta de memoria de origen para migrar los datos de memoria dentro de la duracion de la migracion actual;
    (b) despues de determinar que el controlador de memoria de la tarjeta de memoria de origen completa la migracion actual, saliendo, por el procesador, del sistema basico de entrada/salida y ejecutando la instruccion del sistema operativo;
    (c) recibir, por el procesador, una segunda instruccion de activacion, en donde la segunda instruccion de activacion se usa para instruir el procesador para volver a ejecutar la instruccion de migracion de datos de memoria del sistema basico de entrada/salida; y
    (d) volver, mediante el procesador, a llevar a cabo la etapa (a) segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida, hasta que los datos de memoria de la tarjeta de memoria de origen se migren por completo a la tarjeta de memoria de soporte.
  15. 15. El metodo segun la reivindicacion 14, en donde la polttica de multiples migraciones comprende una cantidad especificada de datos de cada migracion o la duracion de cada migracion, en donde:
    el procesador determina la cantidad de datos de la migracion actual segun la cantidad especifica de datos de cada migracion o determina la duracion de la migracion actual segun la duracion de cada migracion.
  16. 16. El metodo segun la reivindicacion 15, en donde la polttica de multiples migraciones comprende ademas un intervalo de cada migracion o un estado de ejecucion de una unidad de procesamiento central, en donde la segunda instruccion de activacion se activa segun el intervalo de cada migracion o el estado de ejecucion de la unidad de procesamiento central.
  17. 17. El metodo segun la reivindicacion 11, que comprende ademas:
    registrar, mediante el controlador de memoria de la tarjeta de memoria de origen, en un registro del controlador de memoria, que la cantidad de datos erroneos en la tarjeta de memoria de origen excede el umbral, en donde:
    la etapa de determinar, mediante el procesador, una tarjeta de memoria de origen comprende:
    consultar, mediante el procesador, el registro del controlador de memoria de la tarjeta de memoria de origen y determinar la tarjeta de memoria de origen.
  18. 18. El metodo segun una cualquiera de las reivindicaciones 11 a 16, en donde, cuando el procesador en el ordenador ejecuta la instruccion del sistema operativo, el metodo comprende ademas:
    instruir, mediante el sistema operativo segun una polftica de inicio de migracion de datos de memoria configurada previamente o una instruccion de inicio de migracion de datos de memoria de un usuario, el procesador para generar la primera instruccion de activacion; y
    recibir, por el procesador, la primera instruccion de activacion generada por el procesador.
  19. 19. El metodo segun la reivindicacion 18, en donde la polftica de inicio o la instruccion de inicio comprende ademas un identificador de la tarjeta de memoria de origen; el metodo comprende ademas: escribir, mediante el procesador, el identificador de la tarjeta de memoria de origen en un modulo de almacenamiento; y la determinacion, mediante el procesador, de una tarjeta de memoria de origen comprende:
    consultar, mediante el procesador, el modulo de almacenamiento y determinar la tarjeta de memoria de origen segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida.
  20. 20. El metodo segun una cualquiera de las reivindicaciones 17 a 19, que comprende ademas:
    configurar previamente, mediante el procesador, un identificador de la tarjeta de memoria de soporte en el modulo de almacenamiento; y
    la etapa de determinar, mediante el procesador, una tarjeta de memoria de soporte comprende:
    consultar, mediante el procesador, el modulo de almacenamiento y determinar el identificador configurado previamente de la tarjeta de memoria de soporte segun la instruccion de migracion de datos de memoria del sistema basico de entrada/salida.
ES13896846.6T 2013-11-22 2013-11-22 Ordenador y método de migración de datos de memoria Active ES2612829T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/087650 WO2015074235A1 (zh) 2013-11-22 2013-11-22 一种内存数据的迁移方法、计算机和装置

Publications (1)

Publication Number Publication Date
ES2612829T3 true ES2612829T3 (es) 2017-05-18

Family

ID=50761184

Family Applications (2)

Application Number Title Priority Date Filing Date
ES13896846.6T Active ES2612829T3 (es) 2013-11-22 2013-11-22 Ordenador y método de migración de datos de memoria
ES16197467T Active ES2727818T3 (es) 2013-11-22 2013-11-22 Método, ordenador y aparato para migrar datos de memoria

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES16197467T Active ES2727818T3 (es) 2013-11-22 2013-11-22 Método, ordenador y aparato para migrar datos de memoria

Country Status (6)

Country Link
US (2) US9424146B2 (es)
EP (2) EP3206127B1 (es)
JP (1) JP6064237B2 (es)
CN (1) CN103827834B (es)
ES (2) ES2612829T3 (es)
WO (1) WO2015074235A1 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2612829T3 (es) * 2013-11-22 2017-05-18 Huawei Technologies Co., Ltd. Ordenador y método de migración de datos de memoria
WO2015074232A1 (zh) * 2013-11-22 2015-05-28 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
CN105701020B (zh) * 2014-11-28 2018-11-30 华为技术有限公司 一种内存访问的方法、相关装置和系统
CN104778098A (zh) * 2015-04-09 2015-07-15 浪潮电子信息产业股份有限公司 一种内存镜像的方法及系统、一种内存监控器
CN106610786A (zh) * 2015-10-26 2017-05-03 联车(上海)信息科技有限公司 数据存储方法
US10289337B1 (en) * 2015-11-18 2019-05-14 Western Digital Technologies, Inc. Orientation-based data transfer
CN105867847B (zh) * 2016-03-28 2018-11-30 龙芯中科技术有限公司 访存控制方法、装置及系统
CN108664362B (zh) * 2017-03-31 2021-06-15 龙芯中科技术股份有限公司 内存镜像的处理方法、内存控制器及用户设备
KR102692852B1 (ko) 2018-09-15 2024-08-06 인텔 코포레이션 메모리의 런타임 셀 행 교체
JP6679122B1 (ja) * 2019-03-19 2020-04-15 Necプラットフォームズ株式会社 メモリ障害対処システム、情報処理装置及びメモリ障害対処方法
CN114911408B (zh) * 2021-02-07 2025-08-22 腾讯科技(深圳)有限公司 一种存储设备的数据处理方法、装置及存储设备
CN116339577A (zh) * 2021-12-24 2023-06-27 龙芯中科技术股份有限公司 列表检测方法、装置、电子设备和可读存储介质
US11900150B2 (en) * 2021-12-29 2024-02-13 Quanta Computer Inc. Methods and systems for collection of system management interrupt data
KR20230161864A (ko) * 2022-05-18 2023-11-28 창신 메모리 테크놀로지즈 아이엔씨 메모리 핫 플러그 방법 및 장치, 메모리
US12399846B2 (en) * 2022-12-27 2025-08-26 Advanced Micro Devices, Inc. Physical adjustment to system memory with chipset attached memory
US12487765B2 (en) 2022-12-27 2025-12-02 Advanced Micro Devices, Inc. System memory training with chipset attached memory
US12474855B2 (en) 2023-03-22 2025-11-18 Advanced Micro Devices, Inc. Duplicating memory content with chipset attached memory
CN116909495B (zh) * 2023-09-14 2023-12-15 合肥康芯威存储技术有限公司 一种存储装置及其控制方法
TWI875332B (zh) * 2023-11-24 2025-03-01 南亞塑膠工業股份有限公司 利用庫埃特-泰勒反應器製備正極活性材料前驅物的方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990810A (en) 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US6295591B1 (en) * 1999-03-30 2001-09-25 International Business Machines Corporation Method of upgrading and/or servicing memory without interrupting the operation of the system
US6854070B2 (en) * 2000-01-25 2005-02-08 Hewlett-Packard Development Company, L.P. Hot-upgrade/hot-add memory
US6671786B2 (en) * 2001-06-07 2003-12-30 Microsoft Corporation System and method for mirroring memory with restricted access to main physical mirrored memory
JP2003208358A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd 情報処理装置
US7035953B2 (en) * 2002-05-03 2006-04-25 Hewlett-Packard Development Company, L.P. Computer system architecture with hot pluggable main memory boards
US7028215B2 (en) * 2002-05-03 2006-04-11 Hewlett-Packard Development Company, L.P. Hot mirroring in a computer system with redundant memory subsystems
US7103728B2 (en) * 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US6959370B2 (en) * 2003-01-03 2005-10-25 Hewlett-Packard Development Company, L.P. System and method for migrating data between memories
US7299331B2 (en) * 2003-01-21 2007-11-20 Hewlett-Packard Development Company, L.P. Method and apparatus for adding main memory in computer systems operating with mirrored main memory
US7685341B2 (en) 2005-05-06 2010-03-23 Fotonation Vision Limited Remote control apparatus for consumer electronic appliances
US7328380B2 (en) * 2003-09-11 2008-02-05 Hewlett-Packard Development Company, L.P. Memory scrubbing logic
CN100370759C (zh) 2005-09-06 2008-02-20 上海华为技术有限公司 一种热备份系统和方法
CN100399288C (zh) 2005-09-30 2008-07-02 联想(北京)有限公司 一种内存备份装置和方法
JP2007264976A (ja) * 2006-03-28 2007-10-11 Nec Corp コンピュータシステム、データ退避方法、及び、プログラム
US7694093B2 (en) * 2007-04-27 2010-04-06 Hewlett-Packard Development Company, L.P. Memory module and method for mirroring data by rank
US20090006793A1 (en) * 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance
US20090150721A1 (en) * 2007-12-10 2009-06-11 International Business Machines Corporation Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System
US8799586B2 (en) 2009-09-30 2014-08-05 Intel Corporation Memory mirroring and migration at home agent
US8407516B2 (en) * 2009-12-23 2013-03-26 Intel Corporation Controlling memory redundancy in a system
EP2526477B1 (en) * 2010-01-21 2015-03-11 Hewlett Packard Development Company, L.P. Memory controller
US8904226B2 (en) * 2010-08-26 2014-12-02 Cleversafe, Inc. Migrating stored copies of a file to stored encoded data slices
TW201222254A (en) * 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
WO2012106909A1 (zh) * 2011-07-20 2012-08-16 华为技术有限公司 对分布式计算机系统中内存的管理方法和装置
AU2011348835B2 (en) 2011-07-28 2016-03-24 Huawei Technologies Co., Ltd. Method and device for implementing memory migration
AU2011361420B2 (en) 2011-09-01 2015-10-29 Huawei Technologies Co., Ltd Method, device and system for migrating resources
WO2013042163A1 (en) * 2011-09-21 2013-03-28 Hitachi, Ltd. Storage system and data migration processing control method
US10061534B2 (en) * 2011-12-01 2018-08-28 Intel Corporation Hardware based memory migration and resilvering
CN103198028B (zh) * 2013-03-18 2015-12-23 华为技术有限公司 一种内存数据迁移方法、装置及系统
CN103324582A (zh) 2013-06-17 2013-09-25 华为技术有限公司 一种内存迁移方法、装置及设备
CN107219999B (zh) 2013-08-31 2020-06-26 华为技术有限公司 一种服务器中内存模块的数据迁移方法及服务器
ES2612829T3 (es) * 2013-11-22 2017-05-18 Huawei Technologies Co., Ltd. Ordenador y método de migración de datos de memoria
WO2015074232A1 (zh) * 2013-11-22 2015-05-28 华为技术有限公司 一种内存数据的迁移方法、计算机和装置

Also Published As

Publication number Publication date
EP3206127A1 (en) 2017-08-16
JP2016512912A (ja) 2016-05-09
EP2913754A4 (en) 2015-09-30
WO2015074235A1 (zh) 2015-05-28
US20160328178A1 (en) 2016-11-10
US9424146B2 (en) 2016-08-23
CN103827834A (zh) 2014-05-28
EP3206127B1 (en) 2019-03-06
US10049010B2 (en) 2018-08-14
EP2913754B1 (en) 2016-11-09
JP6064237B2 (ja) 2017-01-25
US20150242154A1 (en) 2015-08-27
ES2727818T3 (es) 2019-10-18
CN103827834B (zh) 2015-09-30
EP2913754A1 (en) 2015-09-02

Similar Documents

Publication Publication Date Title
ES2612829T3 (es) Ordenador y método de migración de datos de memoria
CN103842968B (zh) 一种内存数据的迁移方法、计算机和装置
JP6140303B2 (ja) 仮想マシンのライブマイグレーション方法、仮想マシンのメモリデータ処理方法、サーバ及び仮想マシンシステム
ES2866156T3 (es) Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés, y equipo
TWI724415B (zh) 多節點儲存系統及其韌體的更新方法
JP5637873B2 (ja) 計算機システムおよびpciカードのhba識別子引き継ぎ方式
US10949238B2 (en) Decoupling compute and storage resources in cloud-based HCI (hyper-converged infrastructure)
CN107168829B (zh) 一种确保服务器系统双bios安全可信运行的方法及系统
KR101813480B1 (ko) 하드웨어 기반 디바이스간 리소스 공유
TW201502772A (zh) 虛擬基板管理控制器
CN105353980B (zh) 一种内存数据的迁移方法、计算机和装置
CN113467698A (zh) 基于文件系统的写方法、装置、计算机设备和存储介质
US9524189B2 (en) Information processing device, information processing method, and computer program product
US20190213147A1 (en) Storage system and mapping method
CN105528199A (zh) 一种节点的处理方法及装置
US10209888B2 (en) Computer and optimization method
CN120353736A (zh) 存储装置、用于启动存储装置的方法和主机装置
CN120179180A (zh) 一种存储数据访问方法、装置、设备及可读存储介质
CN120277016A (zh) 主板接口设备的动态扩展控制方法、设备及存储介质
WO2014045453A1 (ja) 環境変数保存方法、情報処理装置およびプログラム
WO2016056061A1 (ja) ストレージ装置、計算機及び計算機システム
CN108334420A (zh) 一种基于多核网络处理器系统的数据恢复方法