KR100922409B1 - Information processing device and memory anomaly monitoring method - Google Patents

Information processing device and memory anomaly monitoring method Download PDF

Info

Publication number
KR100922409B1
KR100922409B1 KR1020077021685A KR20077021685A KR100922409B1 KR 100922409 B1 KR100922409 B1 KR 100922409B1 KR 1020077021685 A KR1020077021685 A KR 1020077021685A KR 20077021685 A KR20077021685 A KR 20077021685A KR 100922409 B1 KR100922409 B1 KR 100922409B1
Authority
KR
South Korea
Prior art keywords
error
memory
area
memory controller
monitoring
Prior art date
Application number
KR1020077021685A
Other languages
Korean (ko)
Other versions
KR20070110095A (en
Inventor
신 엔도우
Original Assignee
후지쯔 가부시끼가이샤
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 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Priority to KR1020077021685A priority Critical patent/KR100922409B1/en
Publication of KR20070110095A publication Critical patent/KR20070110095A/en
Application granted granted Critical
Publication of KR100922409B1 publication Critical patent/KR100922409B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices

Abstract

본 발명은 OS와 펌웨어를 실행하는 CPU와, CPU에 접속되고, 복수의 메모리로의 기록과 독출의 제어와, 에러의 감시를 행하는 복수의 메모리 컨트롤러와, 복수의 메모리 컨트롤러의 각각에 접속되는 복수의 메모리를 갖는 정보 처리 장치를 제공하는 것을 목적으로 한다. 메모리 컨트롤러는 이 메모리 컨트롤러에 접속되는 복수의 메모리의 메모리 영역을 순차적으로 독입하여 에러 영역의 감시를 행하고, 펌웨어는 에러 영역에 대응하는 메모리 컨트롤러가 파악하는 어드레스를 OS가 파악하는 논리 어드레스로 변환하여 OS에 공급하는 것을 특징으로 한다.The present invention relates to a CPU executing an OS and firmware, a plurality of memory controllers connected to the CPU, a plurality of memory controllers for controlling the writing and reading into a plurality of memories, monitoring of errors, and a plurality of memory controllers, respectively. It is an object of the present invention to provide an information processing apparatus having a memory. The memory controller sequentially reads memory regions of a plurality of memories connected to the memory controller and monitors the error regions. The firmware converts the address identified by the memory controller corresponding to the error region into a logical address determined by the OS. It is characterized by supplying to the OS.

Description

정보 처리 장치 및 메모리 이상 감시 방법{INFORMATION PROCESSING DEVICE AND MEMORY ANOMALY MONITORING METHOD}Information processing device and memory error monitoring method {INFORMATION PROCESSING DEVICE AND MEMORY ANOMALY MONITORING METHOD}

본 발명은 메모리 컨트롤러를 이용한 정보 처리 장치에 관한 것으로서, 특히, 메모리의 실장 용량에 상관없이 메모리의 이상 감시를 행하는 정보 처리 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus using a memory controller, and more particularly, to an information processing apparatus that performs abnormal monitoring of a memory regardless of a mounting capacity of the memory.

최근, 시스템의 대규모화에 따라 실장되는 메모리의 양은 증가하고, 높은 신뢰성이 요구되고 있다. 메모리의 고장 지점을 신속히 검출하는 것은 대용량 메모리로 높은 신뢰성을 유지하기 위해서는 필수로 되어 있다. 그 때문에, 메모리의 진단이나 감시는 불가결하다.In recent years, as the size of a system increases, the amount of memory to be mounted increases, and high reliability is required. Detecting a memory failure point quickly is essential for maintaining high reliability with a large memory capacity. Therefore, diagnosis and monitoring of the memory are indispensable.

도 1은 종래의 메모리 감시를 설명한 도면이다. CPU(3)에서는 운영 체계(이하 OS)가 동작하고 있다. 또한, CPU(3)에는 메모리(2i-2l)가 접속되어 있다.1 is a diagram illustrating a conventional memory monitoring. The operating system (hereinafter OS) is operating in the CPU 3. In addition, the memory 2i-2l is connected to the CPU 3.

종래의 메모리의 이상 감시에서는, OS로부터의 지시에 의해 CPU가 메모리(2i-2l) 내의 전 메모리 영역을 감시하고 있었다. 이 경우, OS는 실장된 메모리(2i-2l) 내의 전 영역에 대하여, CPU(3)를 통해 독출 처리를 행한다. 독출이 불가능하였던 영역은 에러 영역으로 진단되어 사용 가능 영역에서 제외하는 축퇴(縮退) 처리가 행해진다.In the conventional abnormal monitoring of the memory, the CPU monitors all the memory areas in the memory 2i-2l by an instruction from the OS. In this case, the OS performs read processing through the CPU 3 for all the regions in the mounted memory 2i-2l. The area where the read was impossible was diagnosed as an error area, and a degenerate process for excluding from the usable area is performed.

OS는 OS 자신이 축퇴한 영역의 정보를 유지하여 논리 어드레스의 연속성을 자신으로 확보한다. 또한, OS는 메모리의 실장량이나 하드웨어 구성을 미리 파악하고 있다.The OS maintains information of the area in which the OS itself degenerates, thereby ensuring continuity of logical addresses. In addition, the OS knows in advance the amount of memory mounted and the hardware configuration.

이러한, OS로부터의 지시에 의해 CPU가 전 메모리 영역을 감시하는 수법에서는, 메모리 용량이 방대한 대규모 시스템에 있어서는 운용시의 부하가 지나치게 크다. 또한, 감시 처리에 지나치게 시간이 걸린다고 하는 문제점도 안고 있었다. CPU의 부하를 경감시키기 위해서 메모리 영역의 독출을 CPU 이외의 하드웨어가 행하는 메모리 감시를 생각할 수 있다. 메모리 영역의 독출과, 독출된 데이터에 있어서의 에러 유무의 확인을 CPU 이외의 하드웨어가 행함으로써, CPU의 부하를 경감시킬 수 있다.In such a technique in which the CPU monitors the entire memory area by the instruction from the OS, the load at the time of operation is too large in a large-scale system with a large memory capacity. Moreover, there also existed a problem that monitoring process took too much time. In order to reduce the load on the CPU, a memory monitoring in which hardware other than the CPU reads the memory area can be considered. The CPU load can be reduced by reading out the memory area and confirming whether there is an error in the read data by hardware other than the CPU.

도 2는 메모리 영역으로의 액세스를 CPU 이외의 하드웨어가 행하는 메모리 감시의 예이다. CPU(3)에서는 OS가 동작하고 있다. 그리고, CPU(3)에는 메모리의 제어 및 감시를 행하는 하드웨어인 컨트롤러(C1∼C3)가 접속되어 있다. 또한, 컨트롤러(C1)에는 메모리(2m과 2n), 컨트롤러(C2)에는 메모리(2o와 2p), 컨트롤러(C3)에는 메모리(2q와 2r)가 각각 접속되어 있다.2 is an example of memory monitoring in which hardware other than the CPU performs access to a memory area. The OS is operating in the CPU 3. The CPU 3 is connected to controllers C1 to C3 which are hardware for controlling and monitoring the memory. In addition, memories 2m and 2n are connected to the controller C1, memories 2o and 2p to the controller C2, and memories 2q and 2r are respectively connected to the controller C3.

컨트롤러(C1∼C3)는 통상 액세스시에는 OS로부터의 요구에 따라 접속되어 있는 메모리에 대한 액세스를 제어하고 있지만, 메모리 감시시에는 메모리로부터의 데이터의 독입을 행하고, 에러를 검지한 경우에는 보유한 레지스터의 특정 비트를 변화시켜 OS에 알린다.The controllers C1 to C3 control access to the connected memory in response to a request from the OS during normal access. However, the controller C1 to C3 reads data from the memory during memory monitoring, and retains the registers when an error is detected. Notify the OS by changing a specific bit of.

이 경우도, OS는 메모리의 실장량이나 하드웨어 구성을 미리 파악하고 있다. 또한, OS 자신이 이전에 축퇴한 영역의 정보를 유지하고, 논리 어드레스의 연속성을 스스로 확보한다.Also in this case, the OS knows in advance the amount of mounting of the memory and the hardware configuration. In addition, the OS itself retains the information of the previously degenerate area, and secures the continuity of logical addresses by itself.

여기서, CPU의 부담을 경감시키는 하드웨어 감시 시스템으로서는 특허 문헌 1에 기재한 기술이 있다. 이 기술은 에러의 처리를 펌웨어에 행함으로써, 에러에 의한 애플리케이션의 빈번한 중단을 억제하여 CPU의 부담을 줄이는 것이다. 그러나, 특허 문헌 1에 기재한 기술은 하드웨어 전반에 관한 것으로서, 메모리의 감시를 행하는 것은 아니다.Here, as the hardware monitoring system for reducing the burden on the CPU, there is a technique described in Patent Document 1. This technique is to reduce the burden on the CPU by suppressing frequent interruption of the application due to the error by performing the error handling in the firmware. However, the technique described in Patent Document 1 relates to overall hardware and does not monitor the memory.

특허 문헌 1: 일본 특허 공개 제2000-57016호 공보Patent Document 1: Japanese Patent Application Laid-Open No. 2000-57016

발명이 해결하고자 하는 과제Problems to be Solved by the Invention

도 2에 도시된 바와 같이, CPU 이외의 하드웨어에 의해 메모리의 이상 감시를 행하는 경우에 있어서도, 메모리의 확장에 의해 메모리의 어드레스가 종래의 아키텍쳐에 의한 어드레스로부터 변경될 가능성이 있다. 메모리의 확장에 대응하기 위해서는 아키텍쳐마다 대응하는 논리 어드레스로의 변환이 행해져야만 하지만, 그것을 OS에 행하게 하면 공통 OS로 모든 아키텍쳐에 대응할 수 없게 된다. 또한, 하드웨어에 의해 아키텍쳐의 변경에 대응하면, 아키텍쳐마다 추가의 하드웨어를 실장할 필요가 생기게 되어 비용 증가나 개발 공정수 증가를 초래하게 된다.As shown in Fig. 2, even when abnormality monitoring of the memory is performed by hardware other than the CPU, there is a possibility that the address of the memory is changed from the address of the conventional architecture due to the expansion of the memory. In order to cope with the expansion of the memory, translation to a corresponding logical address must be performed for each architecture. However, if the OS is executed, the common OS cannot cope with all the architectures. In addition, in response to the change of the architecture by hardware, it is necessary to mount additional hardware for each architecture, resulting in an increase in cost and an increase in the number of development processes.

그래서, 본 발명의 목적은 CPU가 직접적으로 메모리의 감시를 행하지 않고, 다른 아키텍쳐에의 대응을 OS나 하드웨어 이외의 수단으로 행하는 메모리 감시가 가능한 정보 처리 장치를 제공하는 것에 있다.It is therefore an object of the present invention to provide an information processing apparatus capable of monitoring a memory in which the CPU does not directly monitor the memory, but performs a response to another architecture by means other than the OS or hardware.

과제를 해결하기 위한 수단Means to solve the problem

상기 과제를 해결하기 위해서, 본 발명의 제1 측면에 따르면, OS와 펌웨어를 실행하는 CPU와, 상기 CPU에 접속되어 복수의 메모리로의 기록과 독출의 제어와, 에러의 감시를 행하는 복수의 메모리 컨트롤러와, 상기 복수의 메모리 컨트롤러의 각각에 접속되는 상기 복수의 메모리를 갖는 정보 처리 장치로서, 상기 메모리 컨트롤러는 이 메모리 컨트롤러에 접속되는 상기 복수의 메모리의 메모리 영역을 순차적으로 독입하고, 에러 영역의 감시를 행하며, 상기 펌웨어는 상기 에러 영역에 대응하는 상기 메모리 컨트롤러가 파악하는 어드레스를 상기 OS가 파악하는 논리 어드레스로 변환하여 상기 OS에 공급하는 것을 특징으로 한다.In order to solve the above problems, according to a first aspect of the present invention, a CPU for executing an OS and firmware, and a plurality of memories connected to the CPU to control writing and reading to a plurality of memories, and to monitor errors An information processing apparatus having a controller and the plurality of memories connected to each of the plurality of memory controllers, the memory controller sequentially reading memory regions of the plurality of memories connected to the memory controller, The monitoring is performed, and the firmware converts an address grasped by the memory controller corresponding to the error area into a logical address grasped by the OS, and supplies the same to the OS.

상기 발명의 제1 측면에 있어서, 바람직한 실시예에서는, 상기 펌웨어는 상기 메모리 컨트롤러에 의해 검지된 상기 에러 영역이, 이전의 독입에 의해 에러 영역이라고 검지되어 사용 가능 영역에서 제외된 영역인지 여부를 판단하고, 이전에 제외되어 있으면 메모리 영역의 독입을 재개하는 것을 특징으로 한다.In a first aspect of the invention, in a preferred embodiment, the firmware determines whether the error area detected by the memory controller is an area detected as an error area by a previous read and excluded from the usable area. And, if previously excluded, resuming reading of the memory area is resumed.

상기 발명의 제1 측면에 있어서, 보다 바람직한 실시예에서는, 상기 펌웨어는 상기 에러 영역의 데이터가 복원 가능한지 여부의 판단을 행하고, 상기 에러 영역의 데이터가 복원 가능하면, 상기 에러 영역을 검지한 상기 메모리 컨트롤러는 상기 에러 영역에 재기록을 행하는 것을 특징으로 한다.In a first preferred aspect of the invention, in a more preferred embodiment, the firmware determines whether data in the error area can be restored, and if the data in the error area is recoverable, the memory that detected the error area. The controller is characterized in that rewriting is performed in the error area.

상기 발명의 제1 측면에 있어서, 보다 바람직한 실시예에서는, 상기 복수의 메모리 컨트롤러는 각각 독립적으로 상기 메모리의 에러 감시를 행하는 것을 특징으로 한다.In a first aspect of the invention, in a more preferred embodiment, the plurality of memory controllers each independently perform error monitoring of the memory.

또한, 상기 발명의 제2 측면에 있어서, 바람직한 실시예에서는, OS와 펌웨어를 실행하는 CPU와, 상기 CPU에 접속되고, 복수의 메모리로의 기록과 독출의 제어와, 에러의 감시를 행하는 복수의 메모리 컨트롤러와, 상기 복수의 메모리 컨트롤러의 각각에 접속되는 상기 복수의 메모리를 갖는 정보 처리 장치에 있어서의 메모리 이상 감시 방법으로서, 상기 메모리 컨트롤러에 의해 이 메모리 컨트롤러에 접속되는 상기 복수의 메모리의 메모리 영역을 순차적으로 독입하고, 에러 영역의 감시를 행하는 독입 공정과, 상기 펌웨어에 의해 상기 에러 영역에 대응하는 상기 메모리 컨트롤러가 파악하는 어드레스를 상기 OS가 파악하는 논리 어드레스로 변환하여 상기 OS에 공급하는 변환 공정을 포함하는 것을 특징으로 한다.Further, in the second aspect of the present invention, in a preferred embodiment, a plurality of CPUs executing an OS and firmware, a plurality of CPUs connected to the CPU, control of writing and reading to a plurality of memories, and monitoring of errors A memory abnormality monitoring method in an information processing apparatus having a memory controller and the plurality of memories connected to each of the plurality of memory controllers, the method comprising: a memory region of the plurality of memories connected to the memory controller by the memory controller Reading step sequentially and monitoring the error area, and converting the address grasped by the memory controller corresponding to the error area by the firmware into a logical address grasped by the OS and supplying the address to the OS. It characterized by including a process.

상기 발명의 제2 측면에 있어서, 바람직한 실시예에서는, 상기 펌웨어에 의해, 상기 메모리 컨트롤러에 의해 검지된 상기 에러 영역이 이전의 독입에 의해 에러 영역이라고 검지되어 사용 가능 영역에서 제외된 영역인지 여부를 판단하고, 이전에 제외되어 있으면 메모리 영역의 독입을 재개하는 축퇴 판단 공정을 포함하는 것을 특징으로 한다.In a second aspect of the invention, in a preferred embodiment, it is determined whether the error area detected by the memory controller by the firmware is an area detected by the previous read as an error area and excluded from the usable area. And a degeneracy determination step of resuming reading of the memory area if it has been previously excluded.

상기 발명의 제2 측면에 있어서, 바람직한 실시예에서는, 상기 펌웨어에 의해, 상기 에러 영역의 데이터가 복원 가능한지 여부의 판단을 행하고, 상기 에러 영역의 데이터가 복원 가능하면, 상기 에러 영역을 검지한 상기 메모리 컨트롤러는 상기 에러 영역에 재기록을 행하는 복원 판단 공정을 포함하는 것을 특징으로 한다.In the second aspect of the present invention, in a preferred embodiment, the firmware determines whether the data in the error area can be restored, and if the data in the error area is recoverable, the error area detected. The memory controller includes a restoration determination step of rewriting the error area.

효과effect

본 발명의 정보 처리 장치는 아키텍쳐의 변경에 따른 논리 어드레스의 변경을 펌웨어에 의해 행함으로써, 추가의 하드웨어를 도입하여 비용 증가나 개발 공정수 증가를 초래하지 않고, 공통 OS를 모든 아키텍쳐에 적용할 수 있게 된다.In the information processing apparatus of the present invention, by changing the logical address according to the architecture change by firmware, a common OS can be applied to all architectures without introducing additional hardware and causing an increase in cost or an increase in the number of development processes. Will be.

도 1은 종래의 메모리 감시를 설명한 도면.1 is a diagram illustrating a conventional memory monitoring.

도 2는 메모리 영역으로의 액세스를 CPU 이외의 하드웨어가 행하는 메모리 감시의 예를 도시한 도면.2 is a diagram showing an example of memory monitoring in which hardware other than the CPU performs access to a memory area.

도 3은 본 발명의 실시 형태에 있어서의 정보 처리 장치의 구성도.3 is a configuration diagram of an information processing device according to an embodiment of the present invention.

도 4는 메모리 컨트롤러의 구성과 통상 액세스시의 동작을 도시한 도면.Fig. 4 is a diagram showing the configuration of the memory controller and the operation during normal access.

도 5는 메모리 컨트롤러의 구성과 메모리 감시시의 동작을 도시한 도면.Fig. 5 is a diagram showing the configuration of the memory controller and the operation during memory monitoring.

도 6은 본 발명의 실시 형태에 있어서의 메모리 감시의 간단한 동작 흐름을 도시한 도면.Fig. 6 is a diagram showing a simple operation flow of memory monitoring in the embodiment of the present invention.

도 7은 본 발명의 실시 형태에 있어서의 메모리 감시의 상세한 동작 흐름을 도시한 도면.Fig. 7 is a diagram showing a detailed operation flow of memory monitoring in the embodiment of the present invention.

도 8은 본 발명의 실시 형태에 있어서의 메모리 감시 정지의 동작 흐름을 도시한 도면.Fig. 8 is a diagram showing an operation flow of memory monitoring stop in the embodiment of the present invention.

도 9는 본 발명의 실시 형태에 있어서의 메모리 감시에 있어서의 OS의 에러 감시의 동작 흐름을 도시한 도면.Fig. 9 is a diagram showing the operation flow of error monitoring of the OS in memory monitoring in the embodiment of the present invention.

이하, 도면에 따라 본 발명의 실시 형태에 대해서 설명한다. 단, 본 발명의 기술적 범위는 이들 실시 형태에 한정되지 않고, 특허청구범위에 기재된 사항과 그 균등물까지 미치는 것이다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment of this invention is described according to drawing. However, the technical scope of the present invention is not limited to these embodiments and extends to the matters described in the claims and their equivalents.

도 3은 본 발명의 실시 형태에 있어서의 정보 처리 장치의 구성도이다. 본 실시 형태의 정보 처리 장치는 CPU(3)를 가지며, OS 및 펌웨어(도면 중에서는 Firm)의 명령을 실행하고 있다. CPU(3)는 시스템 컨트롤러(4)를 통해 복수의 메모리 컨트롤러(도면 중에서는 MAC)(1a∼1d)에 접속되어 있다. 시스템 컨트롤러(4)는 통상의 메모리 액세스시에 있어서, CPU(3)로부터 수취한 논리 어드레스를 각각의 메모리 컨트롤러(1a∼1d) 내에서 사용되는 메모리 컨트롤러 어드레스로 변환한다. 메모리 컨트롤러(1a∼1d)는 메모리(2a∼2h)에 대한 기록이나 독출의 관리 및 메모리 감시를 행하는 하드웨어이다.3 is a configuration diagram of an information processing apparatus according to the embodiment of the present invention. The information processing apparatus of this embodiment has a CPU 3 and executes instructions of the OS and firmware (Firm in the drawing). The CPU 3 is connected to a plurality of memory controllers (MA in the drawing) 1a to 1d via the system controller 4. In the normal memory access, the system controller 4 converts the logical address received from the CPU 3 into memory controller addresses used in the respective memory controllers 1a to 1d. The memory controllers 1a to 1d are hardware for performing recording and reading management of the memory 2a to 2h, and memory monitoring.

도 4는 메모리 컨트롤러의 구성과 통상 액세스시의 동작을 도시한 도면이다. 메모리 컨트롤러(1)는 주로 메모리 감시 제어부(11), 레지스터(12), 에러 진단부(13), 에러 정정부(14), 메모리 관리부(15)로 구성되어 있다. 통상 액세스시에 있어서, OS가 CPU(3)를 통해 메모리(2)에 대하여 액세스를 행하는 경우, 우선, CPU(3)로부터 시스템 컨트롤러(4)에 대하여 액세스하는 영역의 논리 어드레스가 공급된다. 시스템 컨트롤러(4)는 논리 어드레스를 수신하여 대응하는 메모리 컨트롤러(1) 상의 메모리 컨트롤러 어드레스(도면 중에서는 MAC 어드레스)로 변환한다. 메모리 컨트롤러 어드레스의 공급을 받은 메모리 컨트롤러(1) 내의 메모리 관리부(15)는 메모리(2) 상의 대응하는 영역의 데이터에 액세스한다. 메모리(2)는 대응하는 영역의 데이터를 메모리 컨트롤러(1) 내의 에러 진단부(13)와 에러 정정 부(14)에 공급한다.Fig. 4 is a diagram showing the configuration of the memory controller and the operation during normal access. The memory controller 1 mainly consists of the memory monitoring control unit 11, the register 12, the error diagnosis unit 13, the error correction unit 14, and the memory management unit 15. In the normal access, when the OS accesses the memory 2 via the CPU 3, first, a logical address of an area to be accessed from the CPU 3 to the system controller 4 is supplied. The system controller 4 receives the logical address and converts it into a memory controller address (MAC address in the figure) on the corresponding memory controller 1. The memory manager 15 in the memory controller 1, which has been supplied with the memory controller address, accesses data of the corresponding area on the memory 2. The memory 2 supplies the data of the corresponding area to the error diagnosis unit 13 and the error correction unit 14 in the memory controller 1.

메모리(2)로부터 공급된 데이터에 에러가 존재하지 않는 경우, 그 데이터는 메모리 컨트롤러(1)로부터 출력되고, CPU(3)를 통해 OS가 수신한다.If no error exists in the data supplied from the memory 2, the data is output from the memory controller 1 and received by the OS via the CPU 3.

메모리(2)로부터 공급된 데이터에 에러가 존재하는 경우, 에러 진단부(13)는 에러를 검출하고, 그 에러가 정정 가능한지 여부를 판단한다. 검출된 에러가 정정 불능인 경우, 에러 정정부(14)는 정정 불능인 에러를 포함하는 데이터라고 하는 정보를 부가하여 데이터를 OS에 송신한다. 그 때, 에러 진단부(13)는 에러 수정의 가부, 에러 영역의 어드레스 정보, 통상 액세스시의 에러인지 메모리 진단시의 에러인지 등의 정보를 레지스터(12)에 기록한다.If an error exists in the data supplied from the memory 2, the error diagnosis unit 13 detects the error and determines whether the error can be corrected. If the detected error is incapable of correcting, the error correction unit 14 adds information called data containing an uncorrectable error and transmits the data to the OS. At that time, the error diagnosing unit 13 records in the register 12 information such as whether to correct an error, address information of an error area, and whether the error is a normal access or an error in memory diagnosis.

에러 정정부(14)는 공급된 데이터의 에러가 정정 가능하면, 정정한 데이터를 메모리 컨트롤러(1)로부터 출력하고, CPU(3)를 통하여 OS에 공급한다. 그 때, 에러 진단부(13)는 에러 수정의 가부, 에러 영역의 어드레스 정보, 통상 액세스시의 에러인지 메모리 감시시의 에러인지 등의 정보를 레지스터(12)에 기록한다.If the error of the supplied data is correctable, the error correction unit 14 outputs the corrected data from the memory controller 1 and supplies it to the OS via the CPU 3. At that time, the error diagnosing unit 13 records in the register 12 information such as whether to correct an error, address information of an error area, and whether an error occurs during normal access or an error during memory monitoring.

또한, 통상시의 동작에 있어서 메모리 감시 제어부(11)는 사용되지 않는다.In addition, the memory monitoring control part 11 is not used in normal operation.

도 5는 메모리 컨트롤러의 구성과 메모리 감시시의 동작을 도시한 도면이다. OS는 CPU(3)를 통해 펌웨어에 대하여 메모리 감시의 개시를 지시한다. 펌웨어는 CPU(3)를 통해 메모리 컨트롤러(1) 내의 레지스터(12)에 기록을 행하고, 메모리 감시를 시작하게 한다. 펌웨어로부터의 레지스터(12)에 대한 기록을 확인한 메모리 감시 제어부(11)는 메모리(2)에 대한 데이터의 독출을 순차적으로 행한다. 메모리(2)는 메모리 감시 제어부(11)로부터 공급되는 메모리 컨트롤러 어드레스에 대응 하는 데이터를, 메모리 컨트롤러(1) 내의 에러 진단부(13)와 에러 정정부(14)에 대하여 공급한다.5 is a diagram illustrating the configuration of a memory controller and an operation during memory monitoring. The OS instructs the firmware 3 to start memory monitoring via the CPU 3. The firmware writes to the register 12 in the memory controller 1 via the CPU 3 and starts memory monitoring. The memory monitoring control unit 11, which has confirmed the recording of the register 12 from the firmware, reads out data to the memory 2 sequentially. The memory 2 supplies data corresponding to the memory controller address supplied from the memory monitoring control unit 11 to the error diagnosis unit 13 and the error correction unit 14 in the memory controller 1.

에러 진단부(13)에 대하여 공급된 데이터에 에러가 존재하지 않는 경우, 에러 진단부(13)는 메모리 감시 제어부(11)에 대하여 에러가 존재하지 않는 것을 통지한다. 이것을 수신하여 메모리 감시 제어부(11)는 다음 영역을 독출하기 위해서 메모리(2)에 대하여 액세스를 행한다.When no error exists in the data supplied to the error diagnosis unit 13, the error diagnosis unit 13 notifies the memory monitoring control unit 11 that no error exists. Upon receiving this, the memory monitoring control unit 11 accesses the memory 2 to read the next area.

에러 진단부(13)에 대하여 공급된 데이터에 에러가 존재한 경우, 에러 진단부(13)는 그 에러가 수정 가능한지를 판단한다. 그리고, 에러 진단부(13)는 에러가 존재한 것 및 에러 수정의 가부, 에러 영역의 어드레스 정보, 통상 액세스시의 에러인지 메모리 감시시의 에러인지 등의 정보를 메모리 감시 제어부(11)에 통지한다. 그것을 수신하여 메모리 감시 제어부(11)는 메모리 감시를 일시 중단한다. 그리고, 메모리 감시 제어부(11)는 에러 진단부(13)로부터 얻은 정보를 레지스터(12)에 기록한다.If an error exists in the data supplied to the error diagnosis unit 13, the error diagnosis unit 13 determines whether the error can be corrected. The error diagnosis unit 13 then notifies the memory monitoring control unit 11 of information such as whether an error exists, whether or not the error is corrected, address information of the error area, and whether the error is a normal access or an error in memory monitoring. do. Upon receiving it, the memory monitoring control unit 11 temporarily suspends the memory monitoring. The memory monitoring control unit 11 then records the information obtained from the error diagnosis unit 13 in the register 12.

메모리 컨트롤러(1)는 펌웨어나 OS와의 정보 교환을 위해 레지스터(12)를 갖고 있다. 감시의 스타트나 스톱 등의 제어를 행하는 컨트롤 레지스터에는 감시 제어 레지스터(RG1), 리스타트 어드레스 레지스터(RG2), 리라이트 어드레스 레지스터(RG3)의 3종류가 존재한다.The memory controller 1 has a register 12 for exchanging information with firmware or OS. There are three types of control registers for controlling the start and stop of monitoring, such as monitoring control register RG1, restart address register RG2, and rewrite address register RG3.

감시 제어 레지스터(RG1)에는 감시 개시 비트(B1), 리스타트 어드레스 비트(B2), 감시 정지 비트(B3), 감시 상태 비트(B4), 리라이트 비트(B5), 리라이트 리셋 비트(B6), 수정 가능 에러 비트(B7), 수정 불능 에러 비트(B8), 비교 에러 비 트(B9) 등의 각 비트가 존재한다.The supervisory control register RG1 includes a supervisory start bit B1, a restart address bit B2, a supervisory stop bit B3, a supervisory status bit B4, a rewrite bit B5, and a rewrite reset bit B6. , Bits such as a correctable error bit B7, an uncorrectable error bit B8, a comparison error bit B9, and the like.

또한, 메모리 컨트롤러(1) 내의 레지스터(12)에는 에러 정보 등을 유지하는 로그 레지스터가 존재한다. 로그 레지스터는 주로 에러 어드레스 레지스터(RG4), 에러 로그 레지스터(RG5), 고정 장해 어드레스 레지스터(RG6), 고정 장해 로그 레지스터(RG7)의 4종류이다.In the register 12 in the memory controller 1, a log register for holding error information and the like exists. There are four types of log registers: an error address register RG4, an error log register RG5, a fixed fault address register RG6, and a fixed fault log register RG7.

도 6은 본 발명의 실시 형태에 있어서의 메모리 감시의 간단한 동작 흐름이다. 이 도면에서는, 위에서 아래로 시계열로 단계가 설명되어 있고, 파선으로 구획된 칼럼은 동일한 하드웨어 또는 소프트웨어로 행해지는 단계를 표시하고 있다. OS로부터의 지시를 받아 펌웨어는 모든 메모리 컨트롤러(1a∼1d)의 레지스터(12)에 기록을 행하고, 메모리 감시의 개시를 지시한다(단계 W1). 메모리 감시의 개시 지시를 받은 메모리 컨트롤러(1a∼1d)는 자신에게 접속되어 있는 메모리(2)의 영역의 독입을 시작한다(단계 W2a∼W2d). 메모리 컨트롤러(1b)에 있어서 에러가 검지되면(단계 W3b), 에러 수정의 가부, 에러 영역의 어드레스 정보, 통상 액세스시의 에러인지 메모리 감시시의 에러인지 등의 정보가 메모리 컨트롤러(1b) 내의 레지스터(12)에 메모리 감시 제어부(11)에 의해 기록된다(단계 W4b). 레지스터(12)에 기록된 정보는 펌웨어가 액세스하여, 축퇴 정보의 체크, 재기록 지시 등의 에러 처리(단계 W5b)가 행해진 후, 메모리 감시가 재개된다(단계 W6b).6 is a simple operation flow of memory monitoring in the embodiment of the present invention. In this figure, steps are described in time series from top to bottom, and the columns delimited by dashed lines indicate steps performed in the same hardware or software. Upon receiving the instruction from the OS, the firmware writes to the registers 12 of all the memory controllers 1a to 1d, and instructs the start of memory monitoring (step W1). The memory controllers 1a to 1d which have been instructed to start the memory monitoring start reading the area of the memory 2 connected to them (steps W2a to W2d). If an error is detected in the memory controller 1b (step W3b), information such as whether or not to correct the error, address information of the error area, and whether an error during normal access or an error during memory monitoring is stored in the register in the memory controller 1b. It is recorded by the memory monitoring control unit 11 in step 12 (step W4b). After the firmware accesses the information recorded in the register 12 and performs error processing (step W5b) such as checking degenerate information and rewriting instruction, memory monitoring is resumed (step W6b).

다른 메모리 컨트롤러에 에러가 검출된(단계 W3c) 경우에도, 마찬가지로, 에러 수정의 가부, 에러 영역의 어드레스 정보, 통상 액세스시의 에러인지 메모리 감시시의 에러인지 등의 정보가 메모리 컨트롤러(1c) 내의 레지스터(12)에 메모리 감 시 제어부(11)에 의해 기록된다(단계 W4c). 레지스터(12)에 기록된 정보는 펌웨어가 액세스하여, 축퇴 정보의 체크, 재기록의 지시 등의 에러 처리(단계 W5c)가 행해진 후, 메모리 감시가 재개된다(단계 W6c).Even when an error is detected in the other memory controller (step W3c), similarly, information such as whether or not the error is corrected, address information of the error area, and whether it is an error in normal access or an error in memory monitoring is stored in the memory controller 1c. In the register 12, the memory monitoring control unit 11 writes the data (step W4c). After the firmware accesses the information recorded in the register 12 and performs error processing (step W5c) such as checking degenerate information and instructing rewriting, memory monitoring is resumed (step W6c).

OS는 일정 시간 간격으로 모든 메모리 컨트롤러(1a∼1d)의 레지스터(12)에 대하여 액세스하여, 에러가 발생하지 않는지 여부를 확인한다(단계 W7). 메모리 컨트롤러(1b와 1c)에 있어서 에러의 발생을 확인하면, 이들 에러에 관한 정보를 펌웨어에 대하여 요구한다(단계 W8). 에러에 관한 정보가 요구된 펌웨어는 에러가 발생한 메모리 컨트롤러(1b와 1c)에 액세스하여, 에러에 관한 정보를 OS에 대하여 제공한다(단계 W9). OS는 이 정보를 수신하여 축퇴시키는 등의 처리를 행한다(단계 W10).The OS accesses the registers 12 of all the memory controllers 1a to 1d at regular time intervals to check whether or not an error occurs (step W7). When the occurrence of errors is confirmed in the memory controllers 1b and 1c, the firmware requests information about these errors (step W8). The firmware for which information about the error is requested accesses the memory controllers 1b and 1c in which the error has occurred, and provides information about the error to the OS (step W9). The OS receives this information and degenerates it (step W10).

여기서, 드문 경우이기는 하지만, 동일한 메모리 컨트롤러에 있어서 2개의 에러가 검출된 경우에 대해서 설명한다. 단계 W7에 있어서 OS가 에러 정보에 액세스하기 전에 또 하나의 에러가 메모리 컨트롤러(1b)에 의해 검지된 경우, 단계 W4b에서 레지스터(11)에 기록된 정보는 덮어쓰기되어 OS는 나중에 발생한 에러의 정보만을 얻는다.Here, a rare case will be described in which two errors are detected in the same memory controller. If another error is detected by the memory controller 1b before the OS accesses the error information in step W7, the information recorded in the register 11 in step W4b is overwritten and the OS information of the error that occurred later. Get only.

도 7은 본 발명의 실시 형태에 있어서의 메모리 감시의 상세한 동작 흐름이다. 처음에, OS가 메모리 감시의 개시를 결정한다(단계 S1). 이때, OS는 CPU를 통하여 펌웨어에 대하여 메모리 감시 개시 지시(I1)를 보낸다. 메모리 감시 개시 지시(I1)를 수취한 펌웨어는 메모리 컨트롤러(1) 내의 감시 제어 레지스터(RG1)의 감시 스타트 비트(B1)를 1로 한다(단계 S2).7 is a detailed operation flow of memory monitoring in the embodiment of the present invention. Initially, the OS determines to start memory monitoring (step S1). At this time, the OS sends a memory monitoring start instruction I1 to the firmware via the CPU. The firmware which has received the memory monitoring start instruction I1 sets the monitoring start bit B1 of the monitoring control register RG1 in the memory controller 1 to 1 (step S2).

OS는 메모리 감시의 개시를 결정한 후, 에러 상태 확인의 개시(단계 U1), 메모리 감시의 종료(단계 T1)를 행하지만, 이들 처리에 관해서는 뒤에 도 8, 도 9를 이용하여 설명한다.After determining the start of memory monitoring, the OS starts error state checking (step U1) and ends memory monitoring (step T1). However, these processes will be described later with reference to FIGS. 8 and 9.

메모리 컨트롤러(1)는 감시 제어 레지스터(RG1)의 감시 스타트 비트(B1)가 1이 된 것을 수신하여 메모리 감시를 시작한다(단계 S3). 시작된 메모리 감시는 OS가 메모리 감시 정지 지시(I2)를 펌웨어에 보낼 때까지 계속할 수 있고, 그동안, 메모리 컨트롤러(1)는 메모리의 영역을 독입하고(단계 S4), 전 영역이 종료되면 일정 시간의 간격을 두고 다시 독입을 시작한다(단계 S3).The memory controller 1 receives that the monitoring start bit B1 of the monitoring control register RG1 becomes 1 and starts memory monitoring (step S3). The started memory monitoring can continue until the OS sends a memory monitoring stop instruction I2 to the firmware, during which the memory controller 1 reads the area of the memory (step S4), and when the entire area ends, Reading is started again at intervals (step S3).

그 때에, 메모리 컨트롤러(1) 내의 에러 진단부(13)는 메모리(2) 내에서 에러가 발생하지 않는지를 체크하고(단계 S5), 에러가 발생한 시점에서 메모리 감시 제어부(11)는 메모리 감시를 정지한다(단계 S6). 그 후, 메모리 감시 제어부(11)는 에러의 종류에 따라 감시 제어 레지스터(RG1)의 수정 가능 에러 비트(B7) 또는 수정 불능 에러 비트(B8)를 1로 한다(단계 S7). 또한, 에러 위치의 정보는 에러 어드레스 레지스터(RG4)나 에러 로그 레지스터(RG5) 등에 기록된다.At that time, the error diagnosis unit 13 in the memory controller 1 checks whether no error occurs in the memory 2 (step S5), and the memory monitoring control unit 11 performs memory monitoring at the time when the error occurs. It stops (step S6). Thereafter, the memory monitoring control unit 11 sets the correctable error bit B7 or the uncorrectable error bit B8 of the monitoring control register RG1 to 1 according to the type of error (step S7). The error position information is also recorded in the error address register RG4, the error log register RG5, and the like.

다음에, 펌웨어는 감시 제어 레지스터의 수정 가능 에러 비트(B7) 또는 수정 불능 에러 비트(B8)가 1이 된 것을 수신하여 축퇴의 확인을 행한다. 축퇴라고 하는 것은 메모리(2) 내의 에러 영역을 사용 가능 영역에서 제외한 것이다. 펌웨어는 메모리 컨트롤러(1)의 감시 제어 레지스터(RG1)에 기록된 정보 등으로부터, 이미 축퇴된 영역인지 여부를 판단한다(단계 S8).Next, the firmware receives that the correctable error bit B7 or the uncorrectable error bit B8 of the monitoring control register has become 1 to confirm degeneracy. The degeneracy is to exclude the error area in the memory 2 from the usable area. The firmware determines whether or not the area is already degenerate from the information recorded in the monitoring control register RG1 of the memory controller 1 or the like (step S8).

에러 영역이 축퇴된 영역인 경우, 펌웨어는 그 영역을 피하여 메모리 감시를 재개한다(단계 S9). 그 때, 메모리 컨트롤러(1)의 리스타트 어드레스 레지스터(RG2)에는 재개하는 영역의 어드레스 정보가 설정되고, 감시 제어 레지스터(RG1)의 리스타트 어드레스 비트(B2)에 1이 설정된다. 이들 레지스터의 정보를 수신하여 메모리 감시 제어부(11)는 메모리 감시를 재개한다.If the error area is a degenerate area, the firmware avoids the area and resumes memory monitoring (step S9). At that time, the address information of the resuming area is set in the restart address register RG2 of the memory controller 1, and 1 is set in the restart address bit B2 of the monitoring control register RG1. Receiving the information of these registers, the memory monitoring control unit 11 resumes memory monitoring.

에러 영역이 축퇴되어 있지 않은 영역인 경우, 그 에러가 복원 가능한지 여부의 확인이 레지스터(11)를 통해서 행해진다(단계 S10). 여기서 복원 가능한 에러라고 하는 것은 어떠한 에러인지를 설명한다. 본 실시 형태에서는, 에러 검출을 실현하기 위해서 ECC(Error Check and Correct memory) 메모리를 이용한다. 복원 가능한 에러라고 하는 것은 메모리에 저장된 데이터가 변화됨으로써 부정기적으로 발생하는 소프트 에러를 말한다. 소프트 에러라고 하는 것은 회로의 문제로 발생하는 것이 아니라, 에러의 복원 기능에 의해 데이터를 수정하면 재발생하지 않는 데이터 에러를 말한다. 에러의 복원 기능에서는, 검출한 수정 가능한 에러에 대하여 정정 코드에 기초하여 에러의 수정이 행해진다. 정정 코드는 MAC와 메모리 사이에서 데이터를 처리할 때에 MAC 내부에서 생성되는 코드이다.In the case where the error area is not degenerate, whether or not the error can be restored is checked through the register 11 (step S10). Here, what is called a recoverable error describes what kind of error it is. In the present embodiment, an ECC (Error Check and Correct Memory) memory is used to realize error detection. The recoverable error refers to a soft error that occurs randomly due to a change in data stored in the memory. The soft error does not occur due to a circuit problem, but refers to a data error that does not occur again when data is modified by the error recovery function. In the error recovery function, an error is corrected based on a correction code for the detected correctable error. The correction code is a code generated inside the MAC when processing data between the MAC and the memory.

복원 가능한 에러라면, 원래 기록되어 있어야 할 데이터를 특정하는 것이 가능해지기 때문에, 그 데이터를 한번 더 기록하도록 펌웨어가 메모리 컨트롤러(1)에 대하여 지시를 보낸다(단계 S11). 이 때, 리라이트 어드레스 레지스터(RG3)에는 리라이트해야 할 영역의 어드레스가 설정되고, 감시 제어 레지스터(RG1)의 리라이트 비트에는 1이 설정된다. 이들 레지스터(11)로의 기록은 메모리 컨트롤러(1) 내의 메모리 감시 제어부(11)에 의해 처리되고, 메모리 감시 제어부(11)는 원래 기록되 어 있어야 할 데이터의 리라이트를 시작한다. 그 때, 다시 에러가 발생하는지 여부를 감시하고(단계 13), 에러가 발생하면 하드웨어에 기인한 고정 장해라고 판단되어(단계 S14), 그 정보는 고정 장해 어드레스 레지스터(RG6)나 고정 장해 로그 레지스터(RG7)에 기록된다(단계 S15). 또한, 단계 S13에 있어서 에러가 발생하지 않는 경우는, 소프트 에러라고 판단된다. 이 정보는 에러 어드레스 레지스터(RG4)나 에러 로그 레지스터(RG5)에 기록된다(단계 S15). 단계 S15에 있어서 레지스터(11)에 기록된 후, 펌웨어는 메모리 컨트롤러(1)에 대하여 메모리 감시의 재개를 지시한다(단계 S16).If it is a recoverable error, since it becomes possible to specify the data to be originally recorded, the firmware sends an instruction to the memory controller 1 to record the data once more (step S11). At this time, the address of the area to be rewritten is set in the rewrite address register RG3, and 1 is set in the rewrite bit of the monitoring control register RG1. Writing to these registers 11 is processed by the memory monitoring control unit 11 in the memory controller 1, and the memory monitoring control unit 11 starts to rewrite data to be originally recorded. At that time, it is again monitored whether an error occurs (step 13), and if an error occurs, it is determined that it is a fixed failure due to hardware (step S14), and the information is stored in a fixed failure address register RG6 or a fixed failure log register. It is recorded at RG7 (step S15). If an error does not occur in step S13, it is determined as a soft error. This information is recorded in the error address register RG4 or the error log register RG5 (step S15). After writing to the register 11 in step S15, the firmware instructs the memory controller 1 to resume memory monitoring (step S16).

또한, 단계 S10에 있어서 복원 불능한 에러라고 판단된 경우에는, 에러 영역에 리라이트는 행해지지 않고, 펌웨어는 메모리 컨트롤러(1)에 대하여 메모리 감시의 재개를 지시한다(단계 S16).If it is determined in step S10 that the error cannot be restored, rewriting is not performed in the error area, and the firmware instructs the memory controller 1 to resume memory monitoring (step S16).

메모리 컨트롤러(1)는 메모리 감시를 재개하고(단계 S17), 에러의 발생의 검출(단계 S5)로 되돌아간다. 이 메모리 감시의 동작 흐름은 메모리 감시의 정지 처리가 행해질 때까지 반복된다.The memory controller 1 resumes memory monitoring (step S17) and returns to the detection of the occurrence of an error (step S5). The operation flow of this memory monitoring is repeated until the stop processing of the memory monitoring is performed.

도 8은 본 발명의 실시 형태에 있어서의 메모리 감시 정지의 동작 흐름이다. 처음에, OS가 메모리 감시의 정지를 결정한다(단계 T1). 이때, OS는 CPU를 통하여 펌웨어에 대하여 메모리 감시 정지 지시(I2)를 보낸다. 메모리 감시 개시 지시(I2)를 수취한 펌웨어는 메모리 컨트롤러(1) 내의 감시 제어 레지스터(RG1)의 감시 정지 비트(B3)를 1로 한다(단계 T2). 메모리 컨트롤러(1) 내의 메모리 감시부(11)는 감시 제어 레지스터(RG1)의 감시 정지 비트(B3)가 1이 된 것을 수신하여 메모리 감 시를 정지한다(단계 T3).8 is an operation flow of memory monitoring stop in the embodiment of the present invention. Initially, the OS determines to stop the memory monitoring (step T1). At this time, the OS sends a memory monitoring stop instruction I2 to the firmware via the CPU. The firmware which has received the memory monitoring start instruction I2 sets the monitoring stop bit B3 of the monitoring control register RG1 in the memory controller 1 to 1 (step T2). The memory monitoring unit 11 in the memory controller 1 receives that the monitoring stop bit B3 of the monitoring control register RG1 has become 1 and stops the memory monitoring (step T3).

도 9는 본 발명의 실시 형태에 있어서의 메모리 감시에 있어서의 OS의 에러 감시의 동작 흐름이다. OS는 메모리 감시를 개시한 후, 에러의 검출 상태의 감시를 시작한다(단계 U1). 이때, OS는 CPU를 통하여 펌웨어에 대하여 메모리 감시 확인 지시(I3)를 보낸다. 메모리 감시 확인 지시(I3)를 수취한 펌웨어는 메모리 컨트롤러(1) 내의 감시 제어 레지스터(RG1)의 각 비트를 감시한다(단계 U2). 이 때, 에러가 검출되어 있지 않으면 단계 U1로 되돌아가서 일정 시간을 두고 다시 에러의 검출 상태의 확인을 시작한다.Fig. 9 is an operational flow of error monitoring of the OS in memory monitoring in the embodiment of the present invention. After starting the memory monitoring, the OS starts monitoring the detection state of the error (step U1). At this time, the OS sends a memory monitoring confirmation instruction I3 to the firmware via the CPU. The firmware which has received the memory monitoring confirmation instruction I3 monitors each bit of the monitoring control register RG1 in the memory controller 1 (step U2). At this time, if no error is detected, the process returns to step U1, and the confirmation of the error detection state is started again after a certain time.

메모리 컨트롤러(1)에 있어서 에러가 검출되어 있으면, OS는 펌웨어에 대하여 에러 정보를 요구한다(단계 U3). 이것을 수신하여 펌웨어는 메모리 컨트롤러(1)의 레지스터(12)에 저장된 정보로부터 OS에 통지해야 할 에러 정보를 작성하여 통지한다(단계 U4). 여기서의 에러 정보라고 하는 것은, OS가 파악할 수 있는 논리 어드레스와, 상기 에러가 고정 장해인가 또는 소프트 에러인가 하는 등의 정보이다. 펌웨어로부터 OS에 에러 정보가 통지되고, OS는 이것을 바탕으로 논리 어드레스의 처리 등을 행한다(단계 U5). 단계 U5의후, 단계 U1로 되돌아가 일정 시간을 두고 다시 에러의 검출 상태의 확인이 시작된다.If an error is detected in the memory controller 1, the OS requests error information from the firmware (step U3). Upon receiving this, the firmware creates and notifies the error information to be notified to the OS from the information stored in the register 12 of the memory controller 1 (step U4). Here, the error information is a logical address that can be grasped by the OS, and information such as whether the error is a fixed error or a soft error. Error information is notified to the OS from the firmware, and the OS performs logical address processing and the like based on this (step U5). After step U5, the process returns to step U1, and the confirmation of the detection state of the error is started again for a certain time.

펌웨어는 모든 메모리 컨트롤러(1)로부터의 정보를 통합하여 논리 어드레스로 변환하여 OS에 에러 정보를 전달하기 때문에, OS는 논리 어드레스로의 변환을 행할 필요가 없다. 또한, 펌웨어는 아키텍쳐에 따라 메모리 컨트롤러(1)가 검출한 에러 위치의 어드레스 변환을 행하여 처리 후의 논리 어드레스를 OS에 제공한다. OS는 펌웨어로부터 수취한 논리 어드레스에 기초하여 에러 처리를 실행한다.Since the firmware integrates the information from all the memory controllers 1, converts the information into logical addresses, and transmits error information to the OS, the OS does not need to convert to logical addresses. The firmware also performs address translation of the error location detected by the memory controller 1 in accordance with the architecture, and provides the OS with the logical address after processing. The OS executes error processing based on the logical address received from the firmware.

이와 같이 하여, 아키텍쳐의 변경에 따른 논리 어드레스의 변경을 펌웨어에 의해 행함으로써, 추가의 하드웨어를 도입하여 비용 증가나 개발 공정수 증가를 초래하지 않고, 공통 OS를 모든 아키텍쳐에 적용하는 것이 가능해진다.In this way, by changing the logical address according to the architecture change by firmware, it is possible to apply additional hardware to apply the common OS to all architectures without causing an increase in cost or an increase in the number of development processes.

대규모 시스템에서는, 메모리 실장량이 많은 데다가 높은 신뢰성이 요구된다. 메모리의 고장 지점을 신속히 검출하는 것은 대용량 메모리로 높은 신뢰성을 유지하기 위해서는 필수이며, 메모리의 진단이나 감시는 그 때문에 불가결하다. 본 발명은 하드웨어의 구성의 차이에 상관없이 공통 OS를 이용하여 메모리의 감시를 행하는 것을 가능하게 한다.In large systems, a large amount of memory is required and high reliability is required. Detecting the point of failure of a memory quickly is essential for maintaining high reliability with a large memory, and diagnosis and monitoring of the memory are therefore indispensable. The present invention makes it possible to monitor the memory using a common OS regardless of the difference in hardware configuration.

Claims (7)

OS와 펌웨어를 실행하는 CPU와,CPU running OS and firmware, 상기 CPU에 접속되고, 각각 복수의 메모리로의 기록과 독출의 제어와, 에러의 감시를 행하는 복수의 메모리 컨트롤러와,A plurality of memory controllers connected to the CPU, each of which controls writing and reading into a plurality of memories and monitors errors; 상기 복수의 메모리 컨트롤러의 각각에 접속되는 상기 복수의 메모리를 가지며,The plurality of memories connected to each of the plurality of memory controllers, 상기 메모리 컨트롤러는, 상기 메모리 컨트롤러에 접속되는 상기 복수의 메모리의 메모리 영역을 순차적으로 독입하고, 상기 메모리의 에러를 검출하는 에러 진단부와, 상기 검출한 에러 중 정정 가능한 에러를 정정하는 에러 정정부와, 상기 검출한 에러에 관한 에러 정보를 보존하는 레지스터와, 상기 메모리에 대한 감시를 제어하는 메모리 감시 제어부를 구비하고,The memory controller sequentially reads memory areas of the plurality of memories connected to the memory controller, and includes an error diagnosis unit for detecting an error of the memory and an error correction unit for correcting a correctable error among the detected errors. And a register for storing error information relating to the detected error, and a memory monitoring control unit for controlling monitoring of the memory. 상기 펌웨어는, 상기 에러가 발생한 상기 메모리 상의 에러 영역에 대응하는 상기 메모리 컨트롤러가 파악하는 어드레스를, 상기 OS가 파악하는 논리 어드레스로 변환하여 상기 OS에 공급하는 것을 특징으로 하는 정보 처리 장치.And said firmware converts the address grasped by said memory controller corresponding to the error area on said memory where said error occurs into a logical address grasped by said OS and supplies it to said OS. 제1항에 있어서, 상기 펌웨어는 상기 메모리 컨트롤러에 의해 검지된 상기 에러 영역이, 이전의 독입에 의해 에러 영역이라고 검지되어 사용 가능 영역으로부터 제외된 영역인지 여부를 판단하고, 이전에 제외되어 있으면 메모리 영역의 독입을 재개하는 것을 특징으로 하는 정보 처리 장치.The memory device of claim 1, wherein the firmware determines whether the error area detected by the memory controller is an area that is detected as an error area by a previous read and is excluded from the usable area. The information processing apparatus which resumes reading of an area | region. 제1항에 있어서, 상기 펌웨어는 상기 에러 영역의 데이터가 복원 가능(restorable)한지 여부의 판단을 행하고, 상기 에러 영역의 데이터가 복원 가능 하면, 상기 에러 영역을 검지한 상기 메모리 컨트롤러는 상기 에러 영역에 재기록을 행하는 것을 특징으로 하는 정보 처리 장치.The memory controller of claim 1, wherein the firmware determines whether the data of the error area is restorable, and if the data of the error area is recoverable, the memory controller that detects the error area is the error area. An information processing apparatus characterized by rewriting to. 제1항에 있어서, 상기 복수의 메모리 컨트롤러는 각각 독립적으로 상기 메모리의 에러 감시를 행하는 것을 특징으로 하는 정보 처리 장치.The information processing apparatus according to claim 1, wherein the plurality of memory controllers independently monitor error of the memory. OS와 펌웨어를 실행하는 CPU와,CPU running OS and firmware, 상기 CPU에 접속되고, 복수의 메모리로의 기록과 독출의 제어와, 에러의 감시를 행하는 복수의 메모리 컨트롤러와,A plurality of memory controllers connected to the CPU and configured to control writing and reading to a plurality of memories and to monitor errors; 상기 복수의 메모리 컨트롤러의 각각에 접속되는 상기 복수의 메모리를 가지며, The plurality of memories connected to each of the plurality of memory controllers, 상기 메모리 컨트롤러는, 에러 진단부와, 에러 정정부와, 레지스터와, 메모리 감시 제어부를 가지는 정보 처리 장치에 있어서,The memory controller includes an error diagnosis unit, an error correction unit, a register, and a memory monitoring control unit. 상기 메모리 컨트롤러의 메모리 감시 제어부에 의해, 상기 메모리 컨트롤러에 접속되는 상기 복수의 메모리의 메모리 영역을 순차적으로 독입하는 독입 단계와,A reading step of sequentially reading memory regions of the plurality of memories connected to the memory controller by a memory monitoring control section of the memory controller; 상기 메모리 컨트롤러의 에러 진단부에 의해, 상기 메모리의 에러를 검출하는 에러 검출 단계와,An error detecting step of detecting an error of the memory by an error diagnosis unit of the memory controller; 상기 메모리 컨트롤러의 에러 정정부에 의해, 상기 검출한 에러 중 정정 가능한 에러를 정정하는 에러 정정 단계와,An error correction step of correcting, by the error correction unit of the memory controller, a correctable error among the detected errors; 상기 메모리 컨트롤러의 레지스터에 의해, 상기 검출한 에러에 관한 에러 정보를 보존하는 에러 보존 단계와,An error storing step of storing error information relating to the detected error by a register of the memory controller; 상기 펌웨어에 의해, 상기 에러가 발생한 메모리 상의 에러 영역에 대응하는 상기 메모리 컨트롤러가 파악하는 어드레스를, 상기 OS가 파악하는 논리 어드레스로 변환하여, 상기 OS에 공급하는 변환 단계를 포함하는 것을 특징으로 하는 메모리 이상 감시 방법.And converting, by the firmware, the address grasped by the memory controller corresponding to the error area on the memory where the error occurs into a logical address grasped by the OS, and supplying the address to the OS. How to monitor memory abnormalities. 제5항에 있어서, 상기 펌웨어에 의해, 상기 메모리 컨트롤러에 의해 검지된 상기 에러 영역이 이전의 독입에 의해 에러 영역이라고 검지되어 사용 가능 영역으 로부터 제외된 영역인지 여부를 판단하고, 이전에 제외되어 있으면 메모리 영역의 독입을 재개하는 축퇴(縮退) 판단 단계를 포함하는 것을 특징으로 하는 메모리 이상 감시 방법.6. The method according to claim 5, wherein the firmware determines whether the error area detected by the memory controller is an area that is detected as an error area by a previous read and excluded from the usable area, and previously excluded. And a degeneracy determination step of resuming reading of the memory area, if any. 제5항에 있어서, 상기 펌웨어에 의해, 상기 에러 영역의 데이터가 복원 가능한지 여부의 판단을 행하고, 상기 에러 영역의 데이터가 복원 가능하면, 상기 에러 영역을 검지한 상기 메모리 컨트롤러는 상기 에러 영역에 재기록을 행하는 복원 판단 단계를 포함하는 것을 특징으로 하는 메모리 이상 감시 방법.The memory controller of claim 5, wherein the firmware determines whether the data in the error area is recoverable, and if the data in the error area is recoverable, the memory controller that detects the error area rewrites the error area. And a restoration judgment step of performing a memory abnormality monitoring method.
KR1020077021685A 2005-03-24 2005-03-24 Information processing device and memory anomaly monitoring method KR100922409B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077021685A KR100922409B1 (en) 2005-03-24 2005-03-24 Information processing device and memory anomaly monitoring method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077021685A KR100922409B1 (en) 2005-03-24 2005-03-24 Information processing device and memory anomaly monitoring method

Publications (2)

Publication Number Publication Date
KR20070110095A KR20070110095A (en) 2007-11-15
KR100922409B1 true KR100922409B1 (en) 2009-10-16

Family

ID=39064291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077021685A KR100922409B1 (en) 2005-03-24 2005-03-24 Information processing device and memory anomaly monitoring method

Country Status (1)

Country Link
KR (1) KR100922409B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5293062B2 (en) * 2008-10-03 2013-09-18 富士通株式会社 Computer apparatus, memory diagnosis method, and memory diagnosis control program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5462735A (en) 1977-10-28 1979-05-21 Toshiba Corp Memory control system
JPH0883218A (en) * 1994-09-14 1996-03-26 Toshiba Corp Computer system
JP2000057016A (en) 1998-08-13 2000-02-25 Nec Corp Light fault processing system
US6158025A (en) * 1997-07-28 2000-12-05 Intergraph Corporation Apparatus and method for memory error detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5462735A (en) 1977-10-28 1979-05-21 Toshiba Corp Memory control system
JPH0883218A (en) * 1994-09-14 1996-03-26 Toshiba Corp Computer system
US6158025A (en) * 1997-07-28 2000-12-05 Intergraph Corporation Apparatus and method for memory error detection
JP2000057016A (en) 1998-08-13 2000-02-25 Nec Corp Light fault processing system

Also Published As

Publication number Publication date
KR20070110095A (en) 2007-11-15

Similar Documents

Publication Publication Date Title
JP4523639B2 (en) Memory error address management by firmware
JP2548480B2 (en) Disk device diagnostic method for array disk device
JPH0950424A (en) Dump sampling device and dump sampling method
KR100922409B1 (en) Information processing device and memory anomaly monitoring method
EP1589427B1 (en) Boot control system
JPH11154099A (en) Data processor
JP4853083B2 (en) Computer system, data normality confirmation method, and program
JP2005092695A (en) Duplication controller, and method for determining equalization mode thereof
JP3191282B2 (en) Failure information data collection method
JP2010061258A (en) Duplex processor system and processor duplex method
JP2904117B2 (en) Device storage unit redundancy method and device
JP4209866B2 (en) Monitoring device, monitoring method, and information processing device
JP2002044693A (en) Controller of electronic exchange
JPS6356751A (en) Memory patrol control system
JP4494263B2 (en) Service system redundancy method
JPS6077252A (en) Input/output control device
JPH10187202A (en) Microprocessor controller
JPH05265876A (en) Error report processing system
JPH0423120A (en) Method and device for automatic allocation of alternate block in array disk device
JPH0365743A (en) Fault finding method for main storage device
JPH0135369B2 (en)
JPH07244613A (en) Dual-memory control method
JPH08305637A (en) Storage
JPH11167498A (en) Data processor
JPS6121539A (en) Generation management system of data file

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120924

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee