KR102738225B1 - Triple module control apparatus with reliability verification function - Google Patents
Triple module control apparatus with reliability verification function Download PDFInfo
- Publication number
- KR102738225B1 KR102738225B1 KR1020240137609A KR20240137609A KR102738225B1 KR 102738225 B1 KR102738225 B1 KR 102738225B1 KR 1020240137609 A KR1020240137609 A KR 1020240137609A KR 20240137609 A KR20240137609 A KR 20240137609A KR 102738225 B1 KR102738225 B1 KR 102738225B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- block
- unit
- processor
- processor unit
- Prior art date
Links
- 238000012795 verification Methods 0.000 title claims abstract description 128
- 238000001514 detection method Methods 0.000 claims abstract description 101
- 230000006870 function Effects 0.000 claims description 51
- 238000000034 method Methods 0.000 claims description 17
- 238000011084 recovery Methods 0.000 claims description 16
- 238000012937 correction Methods 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 3
- 230000005855 radiation Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/1052—Bypassing or disabling error detection or correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
본 발명은 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치에 관한 것으로서, 더욱 상세히는 RISC-V 기반의 세 개의 프로세서를 포함하여 구성되고, 상기 세 개의 프로세서 중 오류가 발생한 프로세서의 파이프라인 구조에서 오류가 발생한 스테이지 블록을 검출하고, 오류 발생 블록의 기능을 eFPGA를 통해 복원하여 동작 안정성 및 신뢰성을 보장하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치에 관한 것이다. 본 발명은 세 개의 RISC-V 기반 프로세서부를 포함하는 삼중 모듈 제어 장치에서 명령어 실행 결과가 나머지 프로세서부와 불일치하는 확인 대상 프로세서부의 파이프라인 구조에 따른 스테이지별 오류 발생 여부를 신속하고 정확하게 검출할 수 있도록 지원함과 아울러 확인 대상 프로세서부의 오류 발생 여부에 대한 검증시 나머지 프로세서부의 동작을 유지하여 삼중 모듈 제어 장치의 연속성 및 안정성을 보장할 수 있을 뿐만 아니라 확인 대상 프로세서부에 오류가 검출되지 않은 경우 나머지 프로세서부를 대상으로 스테이지별 오류 발생 여부를 신속하고 정확하게 검출하여 세 개의 프로세서부 중 오류가 발생한 프로세서부를 정확하고 신속하게 특정함으로써 오류 발생 프로세서부의 사용을 중단시키고 정상 프로세서부만을 동작시켜 해당 삼중 모듈 제어 장치가 적용된 기기나 시스템에서 오류의 전파를 방지하고 안정성 및 신뢰성을 보장함과 아울러 해당 기기나 시스템의 안정적인 동작 연속성을 보장할 수 있는 효과가 있다.The present invention relates to a triple module control device having a reliability verification function, and more particularly, to a triple module control device including three RISC-V-based processors, and having a reliability verification function for detecting a stage block in which an error has occurred in a pipeline structure of a processor in which an error has occurred among the three processors, and restoring the function of the block in which the error has occurred through an eFPGA to ensure operational stability and reliability. The present invention supports, in a triple-module control device including three RISC-V-based processor units, the detection of whether an error has occurred at each stage according to a pipeline structure of a verification target processor unit whose instruction execution result is inconsistent with the remaining processor units, and, at the same time, ensuring the continuity and stability of the triple-module control device by maintaining the operation of the remaining processor units when verifying whether an error has occurred in the verification target processor unit, and, if no error is detected in the verification target processor unit, the detection of whether an error has occurred at each stage for the remaining processor units is performed, thereby accurately and quickly specifying the processor unit in which an error has occurred among the three processor units, thereby stopping the use of the processor unit in which the error has occurred and operating only the normal processor unit, thereby preventing the propagation of an error in a device or system to which the triple-module control device is applied, ensuring stability and reliability, and ensuring stable operation continuity of the device or system.
Description
본 발명은 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치에 관한 것으로서, 더욱 상세히는 RISC-V 기반의 세 개의 프로세서를 포함하여 구성되고, 상기 세 개의 프로세서 중 오류가 발생한 프로세서의 파이프라인 구조에서 오류가 발생한 스테이지 블록을 검출하고, 오류 발생 블록의 기능을 eFPGA를 통해 복원하여 동작 안정성 및 신뢰성을 보장하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치에 관한 것이다.The present invention relates to a triple module control device having a reliability verification function, and more particularly, to a triple module control device including three RISC-V-based processors, and having a reliability verification function for detecting a stage block in which an error has occurred in a pipeline structure of a processor in which an error has occurred among the three processors, and restoring the function of the block in which the error has occurred through an eFPGA to ensure operational stability and reliability.
RISC-V 연산 장치는 RISC(Reduced Instruction Set Computer) 방식을 이용하는 오프소스 명령어 셋 아키텍쳐(Instruction Set Architecture:ISA)를 가진 것으로, 유사한 다른 상용 중앙처리장치(CPU)와 달리 무료로 사용할 수 있도록 개방된 것이다.The RISC-V processor is an open-source instruction set architecture (ISA) that uses the RISC (Reduced Instruction Set Computer) method, and unlike other similar commercial central processing units (CPUs), it is open for free use.
최근 이러한 연산 장치가 자동차나 우주항공기와 같은 고성능 기기를 위한 반도체로서 사용되고 있으며, 이러한 고성능 기기는 연산 장치의 동작이 중지되거나 오류가 발생하는 경우 치명적인 문제를 발생시킬 수 있어, 연산 장치의 안정적인 동작 및 신뢰성이 무엇보다도 중요한 이슈가 되고 있다.Recently, these computing devices are being used as semiconductors for high-performance devices such as automobiles and aerospace aircraft. These high-performance devices may experience fatal problems if the operation of the computing devices stops or errors occur, so the stable operation and reliability of the computing devices are becoming more important issues than ever.
특히, 우주 항공기에 사용되는 연산 장치는, 우주 방사선과 같은 열악한 상황에 노출될 수 있으며, 중입자와 같은 우주 방사선은 연산 장치의 프로세서를 파손시킬 수 있다. 최근에 연구에 따르면 자동차용 제어기능 반도체에서는 확률은 매우 낮으나 우주방사선으로 인한 피해가능성이 보고되고 있으며, 이러한 상황을 개선하고자 글로벌 반도체 제조사를 중심으로 자동차용 프로세서 기반의 DMR(Dual Modula Redundancy), TMR(Triple Modula Redundancy) 구조를 채택하고 있다. 이렇듯 연산 장치의 안정성을 확보하기 위한 연구가 활발히 진행되고 있다.In particular, the computing devices used in spacecraft can be exposed to harsh conditions such as cosmic radiation, and cosmic radiation such as heavy particles can damage the processors of the computing devices. According to recent studies, the possibility of damage from cosmic radiation has been reported, although the probability is very low, in automotive control function semiconductors, and in order to improve this situation, global semiconductor manufacturers are adopting DMR (Dual Modula Redundancy) and TMR (Triple Modula Redundancy) structures based on automotive processors. Research is actively being conducted to secure the stability of computing devices in this way.
현재 이러한 연산 장치의 안정성 및 신뢰성 확보를 위해, 연산 장치는 복수의 프로세서를 포함하여, 하나의 프로세서에 오류가 발생한 경우 나머지 프로세서를 통해 연산 장치의 기능을 유지하는 구조를 가지고 있다.Currently, in order to secure the stability and reliability of these computing devices, the computing devices have a structure that includes multiple processors, and in the event of an error in one processor, the functions of the computing device are maintained through the remaining processors.
일례로, 도 1에 도시된 바와 같이, 기존의 연산 장치는 세 개의 프로세서를 포함할 수 있고, 하나의 프로세서에 오류가 발생한 경우 나머지 두 개의 프로세서를 통해 연산 장치의 기능을 유지하는 구조를 가지고 있다. 이러한 삼중 모듈 구조에서는 내부에 비교부를 구성하여 세 개의 프로세서 각각에서 동일한 명령어에 대한 실행 결과를 상호 비교할 수 있다. 이에 따라, 세 개의 프로세서 중 하나의 실행 결과가 나머지와 불일치하는 경우, 해당 프로세서에서 오류가 발생한 것으로 판단하여 실행 결과가 나머지와 불일치하는 특정 프로세서의 사용을 중단시키고, 나머지 두개의 프로세서를 통해 연산 장치의 기능을 유지할 수 있다.For example, as illustrated in FIG. 1, a conventional computing device may include three processors, and has a structure in which the function of the computing device is maintained through the remaining two processors when an error occurs in one processor. In this triple module structure, a comparison unit is configured internally so that the execution results for the same instruction in each of the three processors can be compared with each other. Accordingly, when the execution result of one of the three processors does not match the rest, it is determined that an error has occurred in the processor, and the use of the specific processor whose execution result does not match the rest is stopped, and the function of the computing device can be maintained through the remaining two processors.
그러나, 단순 실행 결과 불일치만으로 복수의 프로세서 중 어느 프로세서에서 오류가 발생한 것인지를 정확하게 특정할 수 없는 문제가 있다.However, there is a problem in that it is impossible to accurately identify which processor among multiple processors has the error based on simple execution result inconsistencies.
즉, 실행 결과가 나머지 프로세서와 불일치하는 특정 프로세서가 정상이고, 나머지 프로세서가 비정상인 경우가 발생할 수도 있는데, 기존 연산 장치는 이를 간과하고 특정 프로세서의 사용을 중단시켜 연산 장치가 지속적으로 오동작하는 문제가 발생할 수 있다.That is, there may be cases where a specific processor whose execution result is inconsistent with the rest of the processors is normal and the rest of the processors are abnormal. However, the existing computing device may overlook this and stop using the specific processor, which may cause the computing device to continuously malfunction.
또한, 기존의 신뢰성 프로세서 모듈 구조는 상술한 바와 같이 복수의 프로세서 동작에서 특정 프로세서 오류 여부를 검출할 수 있는 외부의 로직을 추가하여, 오류 만을 검출할 수 있을 뿐 해당 오류를 복원하기 위한 수단이 없다. 이로 인해 프로세서의 오류 복원을 위한 별도의 하드웨어 구성을 추가해야 하는 문제가 있으며, 이러한 하드웨어 구성은 연산 장치의 소형화가 요구되는 최근 추세에 부합하지 않는 문제가 있다.In addition, the existing reliability processor module structure can only detect errors by adding external logic that can detect whether a specific processor error occurs in multiple processor operations as described above, and there is no means to restore the error. This causes a problem that a separate hardware configuration for error restoration of the processor must be added, and this hardware configuration has a problem that it does not conform to the recent trend of requiring miniaturization of the computing device.
이에 따라, 연산 장치를 구성하는 복수의 프로세서의 실행 결과를 비교하여 실행 결과가 불일치하는 어느 하나의 프로세서를 제외한 나머지 프로세서만을 동작시키는 것만으로는, 연산 장치의 안정성 및 신뢰성을 보장하기 어려우며, 이로 인해 연산 장치를 사용하는 기기의 안정성 및 신뢰성을 저해시키는 문제가 발생한다.Accordingly, it is difficult to ensure the stability and reliability of the computing device by only comparing the execution results of multiple processors constituting the computing device and operating only the remaining processors, excluding one processor whose execution results do not match, and this causes a problem of lowering the stability and reliability of the device using the computing device.
본 발명은 세 개의 RISC-V 기반 프로세서를 포함하는 삼중 모듈 제어 장치에서 각 프로세서의 파이프라인 구조에서 오류가 발생한 블록을 정확히 식별하고 이를 기반으로 복수의 프로세서 중 오류가 발생한 프로세서를 정확하게 특정할 수 있도록 지원함과 아울러, 오류가 발생한 블록의 기능을 eFPGA를 통해 복원하여 시스템의 동작 안정성 및 신뢰성을 보장할 수 있도록 지원하는데 그 목적이 있다.The purpose of the present invention is to support accurately identifying a block in which an error has occurred in the pipeline structure of each processor in a triple-module control device including three RISC-V-based processors, and accurately specifying a processor in which an error has occurred among a plurality of processors based on the identification, and to support restoring the function of the block in which an error has occurred through an eFPGA to ensure the operational stability and reliability of the system.
또한, 본 발명은 프로세서의 오류 발생 시 오류가 발생한 특정 파이프라인 스테이지만을 신속하게 복원하는 것을 통해 프로세서를 복원할 수 있도록 지원하여, 장치의 가용성을 극대화하고, 우주 항공기나 고성능 자동차 등 오류에 민감한 분야에서 안정적으로 사용될 수 있는 신뢰성 높은 제어 장치를 제공하는데에 그 목적이 있다.In addition, the present invention aims to provide a highly reliable control device that can be stably used in error-sensitive fields such as space aircraft and high-performance automobiles, by supporting restoration of a processor by quickly restoring only a specific pipeline stage in which an error has occurred when an error occurs in the processor, thereby maximizing the availability of the device.
본 발명의 실시예에 따른 패치 블록, 디코드 블록, 실행 블록, 메모리 블록, 재기록 블록을 포함하는 복수의 스테이지 블록으로 구성된 파이프라인 구조의 RISC-V 기반 프로세서부를 세 개 포함하고, 상기 프로세서부의 오류 검증을 위한 다중화 관리부를 포함하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치는, 상기 패치 블록, 디코드 블록 및 메모리 블록은 명령어 수행을 위한 메모리 정보의 무결성을 유지하기 위해 각각 오류 정정 코드(Error Correcting Code, ECC) 기반으로 메모리 정보의 오류 검출 및 오류 정정을 수행하는 ECC 메모리 유닛을 구비하고, 상기 다중화 관리부는, 상기 세 개의 프로세서부의 명령어 실행에 따른 실행 결과를 상호 비교하여 실행 결과의 일치 여부에 따라 오류 발생 여부를 검증하는 검증부와, 상기 검증부의 검증 결과 오류 발생시 상기 세 개의 프로세서부 중 명령어 실행 결과가 나머지 프로세서부들과 일치하지 않는 확인 대상 프로세서부에 대해 미리 설정된 명령어 세트에 따른 명령어를 실행시키는 검증 연산 수행부 및 상기 확인 대상 프로세서부에 포함된 복수의 스테이지 블록 각각이 상기 명령어 세트에 따른 명령어 실행에 따라 제공하는 출력 정보 및 상기 복수의 스테이지 블록에 의한 명령어 실행에 따른 명령어 실행 결과 정보를 미리 설정된 진단 오류 검출 테이블과 비교하여, 오류가 발생한 스테이지 블록인 오류 발생 블록을 검출하고, 상기 오류 발생 블록 검출시 상기 확인 대상 프로세서부를 오류 발생 프로세서부로 특정하여 해당 오류 발생 프로세서부의 사용을 중단시키는 오류 검출부를 포함하는 것을 특징으로 할 수 있다.According to an embodiment of the present invention, a triple module control device having a reliability verification function, which comprises three RISC-V-based processor units having a pipeline structure composed of a plurality of stage blocks including a patch block, a decode block, an execution block, a memory block, and a rewrite block, and a multiplexing management unit for error verification of the processor units, wherein the patch block, the decode block, and the memory block each have an ECC memory unit that performs error detection and error correction of memory information based on an Error Correcting Code (ECC) to maintain the integrity of memory information for instruction execution, and the multiplexing management unit comprises a verification unit that compares execution results according to instruction execution of the three processor units with each other and verifies whether an error has occurred based on whether the execution results match, a verification operation performing unit that executes an instruction according to a preset instruction set for a verification target processor unit whose instruction execution results among the three processor units do not match those of the remaining processor units when an error has occurred as a result of the verification by the verification unit, and a diagnostic error detection table that is preset to store output information provided by each of the plurality of stage blocks included in the verification target processor unit according to the instruction execution according to the instruction set and instruction execution result information according to the instruction execution by the plurality of stage blocks. By comparison, it can be characterized by including an error detection unit that detects an error occurrence block, which is a stage block in which an error has occurred, and, when the error occurrence block is detected, specifies the processor unit to be verified as the error occurrence processor unit and stops use of the error occurrence processor unit.
본 발명과 관련된 일 예로서, 상기 검증부는, 상기 확인 대상 프로세서부로서 확인된 프로세서부의 동작을 정지시키고, 상기 확인 대상 프로세서부가 아닌 나머지 프로세서부들의 동작을 유지시키는 것을 특징으로 할 수 있다.As an example related to the present invention, the verification unit may be characterized by stopping the operation of the processor unit identified as the verification target processor unit and maintaining the operation of the remaining processor units other than the verification target processor unit.
본 발명과 관련된 일 예로서, 상기 진단 오류 검출 테이블은, 상기 복수의 스테이지 블록 각각에 대해 상기 명령어 세트에 포함된 명령어별로 정상 동작 시의 기대 출력 정보가 미리 설정되고, 상기 오류 검출부는, 상기 검증 연산 수행부와 연동하여 특정 스테이지 블록에서 특정 명령어에 대해 특정 출력 정보 출력시 상기 진단 오류 검출 테이블에서 상기 특정 스테이지 블록의 특정 명령어에 대해 미리 설정된 기대 출력 정보를 식별하고, 상기 식별된 기대 출력 정보와 상기 특정 출력 정보를 비교하여 일치 여부에 따라 상기 특정 스테이지 블록의 오류 발생 여부를 검출하거나, 상기 진단 오류 검출 테이블에서 상기 특정 명령어에 대응하는 기대 실행 결과 정보를 식별한 후 상기 식별된 기대 실행 결과 정보와 상기 특정 명령어에 대응하는 상기 명령어 실행 결과 정보를 상호 비교하여 일치 여부에 따라 상기 확인 대상 프로세서부의 오류 발생 여부를 검출하는 것을 특징으로 할 수 있다.As an example related to the present invention, the diagnostic error detection table may be characterized in that, for each of the plurality of stage blocks, expected output information in the case of normal operation is preset for each instruction included in the instruction set, and the error detection unit may be linked to the verification operation performing unit to identify, in the diagnostic error detection table, expected output information preset for a specific instruction of the specific stage block when specific output information is output for a specific instruction in a specific stage block, and compare the identified expected output information with the specific output information to detect whether an error has occurred in the specific stage block based on whether they match, or identify expected execution result information corresponding to the specific instruction in the diagnostic error detection table, and then compare the identified expected execution result information with the instruction execution result information corresponding to the specific instruction to detect whether an error has occurred in the verification target processor based on whether they match.
본 발명과 관련된 일 예로서, 상기 오류 검출부는, 상기 복수의 스테이지 블록에 의한 상기 특정 명령어 실행에 따라 레지스터에 저장된 명령어 실행 결과 정보를 상기 기대 실행 결과 정보과 비교하여 일치 여부에 따라 상기 확인 대상 프로세서부의 오류 발생 여부를 검출하는 것을 특징으로 할 수 있다.As an example related to the present invention, the error detection unit may be characterized by comparing the instruction execution result information stored in the register according to the execution of the specific instruction by the plurality of stage blocks with the expected execution result information, and detecting whether an error has occurred in the processor unit to be verified based on whether they match.
본 발명과 관련된 일 예로서, 상기 검증 연산 수행부는, 상기 명령어 세트에 포함된 제 1 명령어 그룹에 따른 산술 연산, 논리 연산 및 비교 연산 중 적어도 하나로 상기 확인 대상 프로세서부를 실행시키며, 상기 오류 검출부와 연동하여 상기 제 1 명령어 그룹에 속한 모든 명령어의 실행이 완료될 때까지 상기 오류 발생 블록이 검출되지 않는 경우 상기 명령어 세트에 포함된 제 2 명령어 그룹에 속한 분기 연산, 메모리 읽기 연산, 메모리 저장 연산 및 쉬프트 연산 중 적어도 하나로 상기 확인 대상 프로세서부를 실행시키는 것을 특징으로 할 수 있다.As an example related to the present invention, the verification operation execution unit may be characterized in that it causes the verification target processor unit to execute at least one of an arithmetic operation, a logical operation, and a comparison operation according to a first instruction group included in the instruction set, and, in conjunction with the error detection unit, causes the verification target processor unit to execute at least one of a branch operation, a memory read operation, a memory store operation, and a shift operation belonging to a second instruction group included in the instruction set when the error occurrence block is not detected until execution of all instructions belonging to the first instruction group is completed.
본 발명과 관련된 일 예로서, 상기 산술 연산은 ADD이고, 상기 논리 연산은, XOR이며, 상기 비교 연산은 SLT이고, 상기 분기 연산은 BEQ이며, 상기 메모리 읽기 연산은 LD이고, 상기 메모리 저장 연산은 SB이며, 상기 쉬프트 연산은 SLL인 것을 특징으로 할 수 있다.As an example related to the present invention, it may be characterized in that the arithmetic operation is ADD, the logical operation is XOR, the comparison operation is SLT, the branch operation is BEQ, the memory read operation is LD, the memory store operation is SB, and the shift operation is SLL.
본 발명과 관련된 일 예로서, 상기 세 개의 프로세서부 및 다중화 관리부와 연동하는 메모리부를 더 포함하고, 상기 확인 대상 프로세서부는, 상기 검증 연산 수행부의 제어에 따라 상기 메모리부에 미리 저장된 명령어 세트에 포함된 복수의 명령어를 순차 실행하는 것을 특징으로 할 수 있다.As an example related to the present invention, the method may further include a memory unit interlocked with the three processor units and the multiplexing management unit, and the verification target processor unit may be characterized by sequentially executing a plurality of instructions included in a set of instructions previously stored in the memory unit under the control of the verification operation performing unit.
본 발명과 관련된 일 예로서, 상기 오류 검출부는, 상기 확인 대상 프로세서부의 출력 정보 및 명령어 실행 결과 정보를 상기 진단 오류 검출 테이블과 비교한 결과 오류 발생 블록이 검출되지 않는 경우 상기 나머지 프로세서부들에서 오류가 발생한 것으로 판단하고, 상기 검증부와 연동하여 상기 확인 대상 프로세서부의 동작을 활성화시키면서 상기 나머지 프로세서부들의 동작을 정지시키며, 상기 검증 연산 수행부와 연동하여, 상기 나머지 프로세서부들 각각에 대해 상기 명령어 세트에 따른 명령어를 실행시켜 상기 확인 대상 프로세서부에 대한 오류 발생 블록의 검출 과정과 동일하게 오류 발생 블록을 검출하고, 상기 나머지 프로세서부들 중 오류 발생 블록이 검출된 프로세서부를 오류 발생 프로세서부로 확인하여 사용을 중단시키는 것을 특징으로 할 수 있다.As an example related to the present invention, the error detection unit may be characterized in that, if an error occurrence block is not detected as a result of comparing the output information and the instruction execution result information of the processor unit to be verified with the diagnostic error detection table, the error detection unit determines that an error has occurred in the remaining processor units, and in conjunction with the verification unit, activates the operation of the processor unit to be verified while stopping the operation of the remaining processor units, and in conjunction with the verification operation performing unit, executes an instruction according to the instruction set for each of the remaining processor units to detect an error occurrence block in the same manner as the error occurrence block detection process for the processor unit to be verified, and identifies a processor unit in which an error occurrence block is detected among the remaining processor units as an error occurrence processor unit and stops using it.
본 발명과 관련된 일 예로서, 상기 삼중 모듈 제어 장치는, 상기 오류 발생 프로세서부에서 오류가 발생한 블록의 복원을 위한 eFPGA부를 더 포함하고, 상기 다중화 관리부는, 상기 오류 발생 블록의 기능을 수행하기 위한 복원 블록을 상기 eFPGA부에 생성하고, 상기 복수의 스테이지 블록 중 상기 오류 발생 블록으로 출력 정보를 전달하는 스테이지 블록의 출력 정보를 상기 복원 블록으로 전달하고, 상기 오류 발생 블록의 출력 정보를 수신하는 스테이지 블록으로 상기 복원 블록의 출력 정보를 전달하는 바이패스 기능을 수행하는 복원부를 더 포함하는 것을 특징으로 할 수 있다.As an example related to the present invention, the triple module control device may further include an eFPGA unit for restoring a block in which an error has occurred in the error occurrence processor unit, and the multiplexing management unit may further include a restoration unit for generating a restoration block for performing a function of the error occurrence block in the eFPGA unit, transmitting output information of a stage block that transmits output information to the error occurrence block among the plurality of stage blocks to the restoration block, and performing a bypass function for transmitting output information of the restoration block to a stage block that receives output information of the error occurrence block.
본 발명과 관련된 일 예로서, 상기 복원부는, 상기 오류 검출부와 연동하여, 상기 명령어 세트에 포함된 명령어 실행 중 오류 발생 블록이 검출된 경우, 상기 명령어 세트의 후속되는 명령어를 실행하지 않고 상기 오류 발생 블록에 대응하는 오류 발생 프로세서부의 사용을 중단시키고, 상기 오류 발생 블록에 대응하는 복원 블록을 생성하여 상기 오류 발생 블록이 속한 오류 발생 프로세서부에 대한 복원을 수행하는 것을 특징으로 할 수 있다.As an example related to the present invention, the restoration unit may be characterized in that, when an error occurrence block is detected during execution of an instruction included in the instruction set, the restoration unit, in conjunction with the error detection unit, does not execute subsequent instructions of the instruction set, stops use of an error occurrence processor unit corresponding to the error occurrence block, generates a restoration block corresponding to the error occurrence block, and performs restoration of the error occurrence processor unit to which the error occurrence block belongs.
본 발명과 관련된 일 예로서, 상기 오류 검출부에 대한 동작 조건의 설정을 위한 인터페이스부를 포함하고, 상기 오류 검출부는, 상기 인터페이스부를 통한 입력 정보를 기초로 제 1 동작 조건으로 동작하는 상태에서, 상기 복원 블록 생성시 상기 복원 블록과 연결된 프로세서부를 제외한 나머지 프로세서부들 각각의 동작 클럭을 상기 복원 블록과 연결된 프로세서부의 동작 클럭과 일치시키고, 상기 입력 정보를 기초로 제 2 동작 조건으로 동작하는 상태에서, 상기 복원 블록 생성시 상기 복원 블록과 연결된 프로세서부를 예비용 프로세서부로 설정한 후 상기 예비용 프로세서부를 제외한 나머지 프로세서부들만을 동작시키며 상기 나머지 프로세서부들 중 적어도 하나에서 오류 발생 블록 검출시 상기 예비용 프로세서부를 활성화하면서 상기 나머지 프로세서부들 및 상기 예비용 프로세서부의 동작 클럭을 상호 일치시키는 것을 특징으로 할 수 있다.As an example related to the present invention, the error detection unit may include an interface unit for setting an operating condition for the error detection unit, wherein the error detection unit, when operating under a first operating condition based on input information through the interface unit, causes each of the operating clocks of the remaining processor units excluding the processor unit connected to the recovery block when generating the recovery block to coincide with the operating clock of the processor unit connected to the recovery block, and, when operating under a second operating condition based on the input information, sets the processor unit connected to the recovery block as a spare processor unit when generating the recovery block, and then operates only the remaining processor units excluding the spare processor unit, and when an error occurrence block is detected in at least one of the remaining processor units, activates the spare processor unit and causes the operating clocks of the remaining processor units and the spare processor unit to coincide with each other.
본 발명은 세 개의 RISC-V 기반 프로세서부를 포함하는 삼중 모듈 제어 장치에서 명령어 실행 결과가 나머지 프로세서부와 불일치하는 확인 대상 프로세서부의 파이프라인 구조에 따른 스테이지별 오류 발생 여부를 신속하고 정확하게 검출할 수 있도록 지원함과 아울러 확인 대상 프로세서부의 오류 발생 여부에 대한 검증시 나머지 프로세서부의 동작을 유지하여 삼중 모듈 제어 장치의 연속성 및 안정성을 보장할 수 있을 뿐만 아니라 확인 대상 프로세서부에 오류가 검출되지 않은 경우 나머지 프로세서부를 대상으로 스테이지별 오류 발생 여부를 신속하고 정확하게 검출하여 세 개의 프로세서부 중 오류가 발생한 프로세서부를 정확하고 신속하게 특정함으로써 오류 발생 프로세서부의 사용을 중단시키고 정상 프로세서부만을 동작시켜 해당 삼중 모듈 제어 장치가 적용된 기기나 시스템에서 오류의 전파를 방지하고 안정성 및 신뢰성을 보장함과 아울러 해당 기기나 시스템의 안정적인 동작 연속성을 보장할 수 있는 효과가 있다.The present invention supports, in a triple-module control device including three RISC-V-based processor units, the detection of whether an error has occurred at each stage according to a pipeline structure of a verification target processor unit whose instruction execution result is inconsistent with the remaining processor units, and, at the same time, ensuring the continuity and stability of the triple-module control device by maintaining the operation of the remaining processor units when verifying whether an error has occurred in the verification target processor unit, and, if no error is detected in the verification target processor unit, the detection of whether an error has occurred at each stage for the remaining processor units is performed, thereby accurately and quickly specifying the processor unit in which an error has occurred among the three processor units, thereby stopping the use of the processor unit in which the error has occurred and operating only the normal processor unit, thereby preventing the propagation of an error in a device or system to which the triple-module control device is applied, ensuring stability and reliability, and ensuring stable operation continuity of the device or system.
또한, 본 발명은 eFPGA부를 이용하여 오류가 발생한 프로세서부에 포함된 오류 발생 블록의 기능을 eFPGA부에 프로그래밍하여 복원 블록을 생성함으로써 오류가 발생한 프로세서부를 다시 정상 상태로 복원할 수 있어, 오류가 발생한 기능만을 신속하게 대체할 수 있는 동적 복원 기능을 통해 해당 삼중 모듈 제어 장치의 가용성을 크게 향상시킬 수 있으며, 이를 통해 우주 항공기, 고성능 자동차 등 오류에 민감한 분야에서 사용될 수 있는 신뢰성 높은 제어 장치를 제공할 수 있는 효과가 있다.In addition, the present invention can restore the processor unit in which an error occurred to a normal state by programming the function of an error occurrence block included in a processor unit in which an error occurred into the eFPGA unit and generating a restoration block, thereby greatly improving the availability of the triple module control device through a dynamic restoration function that can quickly replace only the function in which an error occurred, thereby providing a highly reliable control device that can be used in error-sensitive fields such as aerospace aircraft and high-performance automobiles.
도 1은 종래 기술에 따른 RISC-V 기반 프로세서를 포함하는 연산 장치의 구성도.
도 2는 본 발명의 실시예에 따른 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치의 구성도.
도 3은 본 발명의 실시예에 따른 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치의 파이프라인 오류 검출에 대한 동작 예시도.
도 4는 본 발명의 실시예에 따른 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치의 오류 검증 방법에 대한 순서도.
도 5는 본 발명의 실시예에 따른 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치의 복원 방법에 대한 순서도.Figure 1 is a block diagram of a computational device including a RISC-V-based processor according to prior art.
FIG. 2 is a configuration diagram of a triple module control device equipped with a reliability verification function according to an embodiment of the present invention.
FIG. 3 is an exemplary operation diagram for pipeline error detection of a triple module control device having a reliability verification function according to an embodiment of the present invention.
FIG. 4 is a flowchart of an error verification method of a triple module control device having a reliability verification function according to an embodiment of the present invention.
FIG. 5 is a flowchart of a restoration method of a triple module control device having a reliability verification function according to an embodiment of the present invention.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are only used to describe specific embodiments and are not intended to limit the present invention. In addition, the technical terms used in the present invention should be interpreted as having a meaning generally understood by a person having ordinary skill in the technical field to which the present invention belongs, unless specifically defined to have a different meaning in the present invention, and should not be interpreted in an excessively comprehensive or excessively narrow meaning. In addition, when the technical terms used in the present invention are incorrect technical terms that do not accurately express the idea of the present invention, they should be replaced with technical terms that can be correctly understood by a person skilled in the art and understood. In addition, the general terms used in the present invention should be interpreted as defined in the dictionary or according to the context, and should not be interpreted in an excessively narrow meaning.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서, "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.In addition, the singular expressions used in the present invention include plural expressions unless the context clearly indicates otherwise. In the present invention, the terms "consisting of" or "comprising" should not be construed as necessarily including all of the various components or various steps described in the invention, and should be construed as not including some of the components or some of the steps, or may further include additional components or steps.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.Also, terms including ordinal numbers such as first, second, etc. used in the present invention may be used to describe components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. Regardless of the drawing symbols, identical or similar components are given the same reference numerals and redundant descriptions thereof will be omitted.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, when describing the present invention, if it is judged that a detailed description of a related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, it should be noted that the attached drawings are only intended to facilitate easy understanding of the idea of the present invention, and should not be construed as limiting the idea of the present invention by the attached drawings.
이하, 도면을 참고하여 본 발명의 상세 실시예를 설명한다.Hereinafter, detailed embodiments of the present invention will be described with reference to the drawings.
도 2는 본 발명의 실시예에 따른 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치(100)(이하, 삼중 모듈 제어 장치(100))의 구성도이다.FIG. 2 is a configuration diagram of a triple module control device (100) (hereinafter, triple module control device (100)) equipped with a reliability verification function according to an embodiment of the present invention.
도시된 바와 같이, 본 발명의 실시예에 따른 삼중 모듈 제어 장치(100)는, 복수의 프로세서부(120), 다중화 관리부(130), 메모리부(110), eFPGA(Embedded FPGA(Field Programmable Gate Array))부 등을 포함하여 구성될 수 있다.As described above, a triple module control device (100) according to an embodiment of the present invention may be configured to include a plurality of processor units (120), a multiplexing management unit (130), a memory unit (110), an eFPGA (Embedded FPGA (Field Programmable Gate Array)) unit, etc.
이때, 상기 복수의 프로세서부(120)는, 세 개의 프로세서부(120)로 구성될 수 있으며, 예를 들어 제 1 프로세서부(120a), 제 2 프로세서부(120b) 및 제 3 프로세서부(120c)가 상기 세 개의 프로세서부(120)를 구성할 수 있다. 여기서, 제 1 프로세서부(120a), 제 2 프로세서부(120b) 및 제 3 프로세서부(120c)는 상호 간 동일한 내부 구성요소를 가진 동일한 프로세서로 구성될 수 있다.At this time, the plurality of processor units (120) may be composed of three processor units (120), and for example, a first processor unit (120a), a second processor unit (120b), and a third processor unit (120c) may compose the three processor units (120). Here, the first processor unit (120a), the second processor unit (120b), and the third processor unit (120c) may be composed of the same processor having the same internal components.
이하에서는, 상기 세 개의 프로세서부(120)를 복수의 프로세서부(120)로 지칭하기로 한다.Hereinafter, the three processor units (120) are referred to as multiple processor units (120).
우선, 상기 복수의 프로세서부(120)는 각각은, 상기 메모리부(110)에 저장된 정보를 기초로 연산을 수행할 수 있다.First, each of the plurality of processor units (120) can perform operations based on information stored in the memory unit (110).
이때, 상기 복수의 프로세서부(120) 각각은, 파이프라인(pipeline) 구조를 가진 복수의 스테이지(stage) 블록을 포함하는 RISC(Reduced Instruction Set Computer)-V 기반의 프로세서로 구성될 수 있다.At this time, each of the plurality of processor units (120) may be configured as a RISC (Reduced Instruction Set Computer)-V based processor including a plurality of stage blocks having a pipeline structure.
또한, 상기 복수의 스테이지 블록은, 패치(fetch) 블록, 디코드(decode) 블록, 실행(execute) 블록, 메모리(memory) 블록, 재기록(write-back) 블록 등을 포함하여 구성될 수 있다.Additionally, the plurality of stage blocks may be configured to include a fetch block, a decode block, an execute block, a memory block, a write-back block, etc.
또한, 상기 메모리부(110)는, 상기 프로세서부(120)에 처리될 데이터가 저장될 수 있으며, 상기 복수의 프로세서부(120)의 오류 검출을 위한 하나 이상의 명령어를 포함하는 명령어 세트(진단용 명령어 세트)가 저장될 수도 있다.In addition, the memory unit (110) may store data to be processed by the processor unit (120), and may also store a command set (diagnostic command set) including one or more commands for error detection of the plurality of processor units (120).
또한, 상기 다중화 관리부(130)는, 상기 복수의 프로세스부에 대해 명령어 실행 결과를 근거로 오류 발생 여부를 판단하고, 오류 발생시 상기 복수의 프로세서부(120) 중 명령어 실행 결과가 나머지 프로세서부들(120)(다른 프로세서부들(120))과 일치하지 않는 오류 확인 대상인 확인 대상 프로세서부(120)에 대해 미리 설정된 명령어 세트에 따른 명령어 실행을 제어하여 상기 확인 대상 프로세서부(120)에서 파이프라인 구조를 형성하는 상기 복수의 스테이지 블록 중 오류가 발생한 스테이지 블록의 검출 여부를 확인하고, 상기 확인 대상 프로세서부(120)에서 오류 발생 스테이지 블록의 검출이 확인되면 상기 확인 대상 프로세서부(120)를 오류가 발생한 오류 발생 프로세서부(120)로 특정하여 해당 오류 발생 프로세서부(120)의 사용을 중단시킬 수 있다.In addition, the multiplexing management unit (130) determines whether an error has occurred based on the instruction execution results for the plurality of processor units, and when an error has occurred, the execution of instructions according to a preset instruction set is controlled for a confirmation target processor unit (120) whose instruction execution results among the plurality of processor units (120) do not match the remaining processor units (120) (other processor units (120)), thereby confirming whether a stage block in which an error has occurred among the plurality of stage blocks forming a pipeline structure in the confirmation target processor unit (120) has been detected, and when detection of an error-occurring stage block in the confirmation target processor unit (120) is confirmed, the confirmation target processor unit (120) is specified as the error-occurring processor unit (120) in which an error has occurred, and the use of the corresponding error-occurring processor unit (120) can be stopped.
이때, 상기 다중화 관리부(130)는, 상기 확인 대상 프로세서부(120)의 동작을 정지시킨 후 상기 명령어 세트에 따른 명령어를 이용하여 오류가 발생한 스테이지 블록의 검출을 위한 검증 연산을 수행할 수 있으며, 상기 확인 대상 프로세서부(120)를 제외한 나머지 프로세서부들(120)은 동작 상태를 유지시켜 상기 삼중 모듈 제어 장치(100)의 안정성 및 연속성을 유지할 수 있다.At this time, the multiplexing management unit (130) can stop the operation of the processor unit (120) to be verified and then perform a verification operation to detect a stage block in which an error has occurred using a command according to the command set, and the remaining processor units (120) except for the processor unit (120) to be verified can maintain the operating state to maintain the stability and continuity of the triple module control device (100).
또한, 상기 다중화 관리부(130)는, 상기 확인 대상 프로세서부(120)에서 오류가 발생한 스테이지 블록이 검출되지 않는 경우 상기 확인 대상 프로세서부(120)를 제외한 나머지 프로세서부들(120)에서 오류가 발생한 것으로 확인(판단)하여, 상기 확인 대상 프로세서부(120)를 다시 동작시키고 상기 나머지 프로세서부들(120)의 동작을 정지시킬 수 있다.In addition, if a stage block in which an error has occurred in the processor unit (120) to be verified is not detected, the multiplexing management unit (130) can determine (judge) that an error has occurred in the remaining processor units (120) excluding the processor unit (120) to be verified, and can operate the processor unit (120) to be verified again and stop the operation of the remaining processor units (120).
또한, 상기 다중화 관리부(130)는, 상기 나머지 프로세서부들(120) 각각에 대해 미리 설정된 명령어 세트에 따른 명령어 실행을 제어하여 각 프로세서부(120)에서 파이프라인 구조를 형성하는 상기 복수의 스테이지 블록 중 오류가 발생한 스테이지 블록을 검출할 수 있다.In addition, the multiplexing management unit (130) can control the execution of instructions according to a preset instruction set for each of the remaining processor units (120) to detect an error-incurred stage block among the plurality of stage blocks forming a pipeline structure in each processor unit (120).
또한, 상기 다중화 관리부(130)는, 상기 나머지 프로세서부들(120) 중 상기 오류가 발생한 스테이지 블록인 오류 발생 블록이 검출된 프로세서부(120)를 오류 발생 프로세서부(120)로 확인하고, 상기 오류 발생 프로세서부(120)의 사용을 중단시킬 수 있다.In addition, the multiplexing management unit (130) can identify the processor unit (120) in which the error occurrence block, which is the stage block in which the error occurred, among the remaining processor units (120) is detected as the error occurrence processor unit (120) and stop the use of the error occurrence processor unit (120).
즉, 상기 다중화 관리부(130)는, 상기 오류 발생 프로세서부(120)의 사용 중단에 따라 상기 오류 발생 프로세서부(120)의 동작을 정지(중지)시킬 수 있다.That is, the multiplexing management unit (130) can stop (suspend) the operation of the error occurrence processor unit (120) according to the suspension of use of the error occurrence processor unit (120).
이때, 상기 다중화 관리부(130)는, 상기 나머지 프로세서부들(120) 모두가 오류 발생 프로세서부(120)로 확인된 경우 상기 나머지 프로세서부들(120) 모두에 대해 사용을 중단시킬 수 있다.At this time, the multiplexing management unit (130) can stop the use of all of the remaining processor units (120) if all of the remaining processor units (120) are identified as processor units (120) that have generated an error.
또한, 상기 eFPGA부(140)는, 상기 오류가 발생한 스테이지 블록을 복원하는데 사용될 수 있다.Additionally, the eFPGA unit (140) can be used to restore the stage block in which the error occurred.
상술한 바와 같이, 본 발명의 실시예에 따른 삼중 모듈 제어 장치(100)는, 상기 복수의 프로세서부(120)에 대한 명령어 실행 결과에 따른 오류 발생 여부를 판단하고, 오류 발생시 상기 복수의 프로세서부(120) 중 명령어 실행 결과가 나머지 프로세서부들(120)과 일치하지 않는 확인 대상 프로세서부(120)에 대해 우선적으로 스테이지 블록의 오류 검출을 수행하고, 오류가 검출되지 않는 경우 나머지 프로세서부들(120)을 대상으로 미리 설정된 명령어 세트를 이용한 스테이지 블록의 오류 여부를 검출하여 오류가 검출된 스테이지 블록을 포함하는 오류 발생 프로세서부(120)를 정확하게 특정하여 동작을 정지시키고, 이러한 오류 검출 과정에서 적어도 하나의 프로세서부(120)는 동작이 유지되도록 하여 삼중 모듈 제어 장치(100)의 안정성 및 신뢰성과 더불어 동작의 연속성을 보장함과 아울러, 오류가 발생된 스테이지 블록인 오류 발생 블록의 기능을 상기 eFPGA부(140)에 프로그래밍하여 복원 블록을 생성한 후 상기 복원 블록을 통해 상기 오류 발생 블록의 기능을 대체함으로써, 상기 오류 발생 프로세서에 대한 복원 기능 역시 제공할 수 있는데, 이를 상술한 구성을 토대로 도 2에 따른 삼중 모듈 제어 장치(100)의 구성도 및 도 3에 따른 삼중 모듈 제어 장치(100)의 파이프라인 오류 검출에 대한 동작 예시도를 참고하여 상세히 설명한다.As described above, the triple module control device (100) according to the embodiment of the present invention determines whether an error has occurred according to the command execution results for the plurality of processor units (120), and when an error has occurred, priority is given to error detection of the stage block for the processor unit (120) among the plurality of processor units (120) whose command execution results do not match those of the remaining processor units (120), and when no error is detected, the device detects whether an error has occurred in the stage block using a preset command set for the remaining processor units (120), accurately identifies the error-occurring processor unit (120) including the stage block in which the error has been detected, and stops the operation, and during this error detection process, at least one processor unit (120) is allowed to maintain operation, thereby ensuring the stability and reliability of the triple module control device (100) as well as the continuity of operation, and also provides a recovery function for the error-occurring processor by programming the function of the error-occurring block, which is the stage block in which the error has occurred, into the eFPGA unit (140) to generate a recovery block, and then replacing the function of the error-occurring block through the recovery block. Hereinafter, based on the configuration described above, the configuration diagram of the triple module control device (100) according to Fig. 2 and the operation example diagram for pipeline error detection of the triple module control device (100) according to Fig. 3 will be described in detail.
도시된 바와 같이, 상기 복수의 프로세서부(120) 각각은 복수의 스테이지 블록을 포함할 수 있다.As illustrated, each of the plurality of processor units (120) may include a plurality of stage blocks.
상기 복수의 스테이지 블록은, 패치 블록, 디코드 블록, 실행 블록, 메모리 블록, 재기록 블록을 포함할 수 있다.The above multiple stage blocks may include a patch block, a decode block, an execution block, a memory block, and a rewrite block.
상기 복수의 스테이지 블록의 기능을 설명하면, 우선, 패치 블록은 PC(Program Counter)를 포함하고, 명령어 메모리 유닛 및 ECC(Error Correction Code)를 포함하는 ECC 메모리 유닛을 포함하여 구성될 수 있다.When explaining the functions of the above multiple stage blocks, first, the patch block can be configured to include a PC (Program Counter) and an ECC memory unit including a command memory unit and an ECC (Error Correction Code).
상기 패치 블록은 PC(Program Counter)를 이용하여 메모리부(110)에서 실행할 명령어의 주소를 결정하고, 이 주소를 바탕으로 패치 블록은 해당 명령어를 읽어올 수 있다. 또한, 상기 패치 블록은 읽어온 명령어를 포함하는 메모리 정보를 자신의 ECC 메모리 유닛으로 전달하여 상기 ECC 메모리 유닛을 통해 오류 검사와 오류 정정 과정을 수행할 수 있으며, 해당 메모리 정보에 대한 무결성을 유지할 수 있다.The above patch block determines the address of a command to be executed in the memory unit (110) using a PC (Program Counter), and the patch block can read the corresponding command based on this address. In addition, the patch block can transfer memory information including the read command to its own ECC memory unit, perform error checking and error correction processes through the ECC memory unit, and maintain the integrity of the corresponding memory information.
상기 패치 블록은, 상기 메모리 정보에 포함된 명령어 정보를 포함하는 출력 정보를 생성하여 디코드 블록으로 전달할 수 있다.The above patch block can generate output information including command information included in the above memory information and transmit it to the decode block.
또한, 상기 디코드 블록은 패치 블록으로부터 받은 명령어 정보를 디코딩 유닛을 통해 해석하여 명령어의 종류, 사용할 레지스터, 수행할 연산 등을 식별하고, 식별된 정보를 기초로 내부제어정보, 메모리주소정보, 레지스터기록정보, 생성정보 등을 포함하는 출력 정보를 생성하여 실행 블록에 전달할 수 있다.In addition, the decode block can interpret the command information received from the patch block through the decoding unit to identify the type of the command, the register to be used, the operation to be performed, etc., and generate output information including internal control information, memory address information, register record information, generation information, etc. based on the identified information and transmit it to the execution block.
이때, 상기 디코드 블록은, 상기 출력 정보의 생성 과정에서 생성된 메모리 정보에 대해 상기 디코드 블록에 포함된 ECC 메모리 유닛을 통해 상기 메모리 정보의 오류를 검출하고, 필요시 오류를 정정하여 상기 메모리 정보에 대한 무결성을 유지할 수 있다.At this time, the decode block can detect errors in the memory information generated in the process of generating the output information through the ECC memory unit included in the decode block, and correct errors when necessary to maintain the integrity of the memory information.
또한, 상기 실행 블록은 디코드 블록으로부터 전달받은 출력 정보를 이용하여 ALU(Arithmetic Logic Unit)를 통해 연산을 수행하고, 상기 ALU의 연산 결과를 기초로 제어 정보, 연산결과 정보 등을 포함하는 출력 정보를 생성하여 메모리 블록에 전달할 수 있다.In addition, the execution block can perform an operation through an ALU (Arithmetic Logic Unit) using output information received from the decode block, and generate output information including control information, operation result information, etc. based on the operation result of the ALU, and transmit the output information to the memory block.
또한, 상기 메모리 블록은 실행 블록으로부터 전달받은 출력 정보를 바탕으로 메모리부(110)와 상호작용할 수 있다.Additionally, the memory block can interact with the memory unit (110) based on output information received from the execution block.
일례로, 상기 메모리 블록은, 실행 블록으로부터 전달받은 출력 정보를 기초로 메모리부(110)에서 값을 읽어오거나, 데이터를 메모리부(110)의 특정 주소에 기록할 수 있다.For example, the memory block can read a value from the memory unit (110) or write data to a specific address of the memory unit (110) based on output information received from the execution block.
또한, 상기 메모리 블록은, 상기 메모리부(110)와 상호작용하는 과정에서 생성된 메모리 정보에 대해 상기 메모리 블록에 구성된 ECC 메모리 유닛을 이용하여 오류를 검출하고 오류를 정정할 수 있으며, 이를 통해 메모리 정보에 대한 무결성을 유지할 수 있다.In addition, the memory block can detect and correct errors using the ECC memory unit configured in the memory block for memory information generated in the process of interacting with the memory unit (110), thereby maintaining the integrity of the memory information.
이때, 상기 ECC 메모리 유닛은, 메모리부(110)에 데이터를 기록하는 데이터 메모리 유닛 및 ECC를 포함하여 구성될 수 있다.At this time, the ECC memory unit may be configured to include a data memory unit that records data in the memory section (110) and an ECC.
또한, 상기 메모리 블록은 이러한 메모리부(110)에 대한 접근 결과를 기초로 제어 정보, 이전 스테이지 결과 정보, 판독 정보, 기록 정보 등을 포함하는 출력 정보를 생성하여 상기 재기록 블록에 제공할 수 있다.In addition, the memory block can generate output information including control information, previous stage result information, read information, write information, etc. based on the access result to the memory section (110) and provide the information to the rewrite block.
상기 재기록 블록은 상기 메모리 블록으로부터 전달된 출력 정보를 기초로 이전 스테이지 블록들을 거쳐 생성된 명령어의 실행 결과에 대한 명령어 실행 결과 정보를 생성할 수 있으며, 상기 명령어 실행 결과 정보를 상기 재기록 블록에 포함된 재기록 유닛을 통해 프로세서부(120)의 상태에 반영하기 위해 상기 재기록 유닛을 통해 상기 명령어 실행 결과 정보를 포함하는 기록 정보를 생성한 후 상기 기록 정보를 상기 디코드 블록에 포함된 레지스터에 기록할 수 있다.The above-described rewrite block can generate instruction execution result information on the execution result of an instruction generated through previous stage blocks based on the output information transmitted from the memory block, and can generate record information including the instruction execution result information through the rewrite unit included in the above-described block to reflect the instruction execution result information to the state of the processor unit (120), and then record the record information in a register included in the above-described block.
이때, 상기 레지스터는 상기 디코드 블록의 레지스터 파일 유닛에 포함되어 구성될 수 있다.At this time, the register may be configured to be included in the register file unit of the decode block.
예를 들어, 상기 재기록 블록은, 산술 연산의 결과나 메모리부(110)에서 로드한 데이터를 포함하는 기록 정보를 목적 레지스터에 저장할 수 있다.For example, the above-mentioned rewrite block can store record information including the result of an arithmetic operation or data loaded from the memory unit (110) in the destination register.
또한, 상기 재기록 블록은 이러한 재기록 과정이 완료된 후, 상기 기록 정보를 포함하는 출력 정보를 생성하여 상기 다중화 관리부(130)에 전달할 수 있다.In addition, the rewrite block can generate output information including the recording information and transmit it to the multiplexing management unit (130) after the rewrite process is completed.
한편, 다중화 관리부(130)는, 상기 복수의 프로세서부(120)로부터 각각으로부터 수신된 출력 정보에 포함되는 명령어 실행 결과 정보를 상호 비교하여 상기 복수의 프로세서부(120)와 각각 대응하는 복수의 명령어 실행 결과 정보 상호 간 일치 여부를 확인할 수 있다.Meanwhile, the multiplexing management unit (130) can compare the command execution result information included in the output information received from each of the plurality of processor units (120) to each other to check whether the plurality of processor units (120) and the plurality of command execution result information corresponding to each other are consistent.
또한, 상기 다중화 관리부(130)는, 상기 복수의 명령어 실행 결과 정보가 상호 간 불일치하는 경우 상기 복수의 프로세서부(120) 중 적어도 하나에서 오류가 발생한 것으로 판단할 수 있으며, 오류 발생으로 판단시 상기 복수의 프로세서부(120) 중 오류가 발생한 프로세서부(120)에 포함된 복수의 스테이지 블록 중 오류가 발생한 스테이지 블록인 오류 발생 블록을 검출하기 위해 미리 설정된 명령어 세트를 이용한 검증(오류 검증 또는 오류 발생 검증)을 수행할 수 있는데, 이를 상술한 구성을 토대로 도 4에 따른 삼중 모듈 제어 장치(100)의 동작 순서도를 참고하여 상세히 설명한다.In addition, the multiplexing management unit (130) can determine that an error has occurred in at least one of the plurality of processor units (120) when the execution result information of the plurality of instructions is inconsistent with each other, and when it is determined that an error has occurred, the multiplexing management unit (130) can perform verification (error verification or error occurrence verification) using a preset command set to detect an error occurrence block, which is a stage block in which an error has occurred, among the plurality of stage blocks included in the processor unit (120) in which an error has occurred among the plurality of processor units (120). This will be described in detail with reference to the operation flowchart of the triple module control device (100) according to FIG. 4 based on the above-described configuration.
우선, 상기 다중화 관리부(130)는, 상기 복수의 명령어 실행 결과 정보가 상호 간 불일치하는 경우 오류 발생으로 판단하고, 상기 복수의 프로세서부(120)별 명령어 실행 결과 정보가 다른 명령어 실행 결과 정보와 불일치하는 특정 프로세서부(120)를 확인 대상 프로세서부(120)로 결정하고, 상기 확인 대상 프로세서부(120)에서 미리 설정된 명령어 세트에 따른 명령어가 실행되도록 제어할 수 있으며, 상기 명령어 세트에 따른 명령어 실행에 따라 확인 대상 프로세서부(120)에 대해 오류 발생 블록의 검출 여부를 검증(확인)하는 동작을 수행할 수 있다.First, the multiplexing management unit (130) determines that an error has occurred if the execution result information of the plurality of instructions is inconsistent with each other, determines a specific processor unit (120) in which the execution result information of the plurality of processor units (120) is inconsistent with the execution result information of other instructions as a processor unit (120) to be verified, and controls the execution of instructions according to a preset instruction set in the processor unit (120) to be verified, and performs an operation of verifying (verifying) whether an error occurrence block has been detected in the processor unit (120) to be verified according to the execution of instructions according to the instruction set.
이를 위해, 상기 다중화 관리부(130)는, 검증부(131), 검증 연산 수행부(132), 오류 검출부(133), 복원부(134) 등을 포함하여 구성될 수 있다.To this end, the multiplexing management unit (130) may be configured to include a verification unit (131), a verification operation performing unit (132), an error detection unit (133), a restoration unit (134), etc.
우선, 상기 검증부(131)는, 상기 복수의 프로세서부(120) 각각의 명령어 수행에 따른 실행 결과(명령어 실행 결과 정보)를 상호 비교하여(S1), 상기 복수의 프로세서부(120) 각각에서 제공한 실행 결과 상호 간 일치 여부에 따라 상기 복수의 프로세서부(120) 중 적어도 하나에서의 오류 발생 여부를 검증(확인)할 수 있다(S2).First, the verification unit (131) can compare the execution results (instruction execution result information) according to the execution of the commands of each of the plurality of processor units (120) with each other (S1), and verify (confirm) whether an error has occurred in at least one of the plurality of processor units (120) based on whether the execution results provided by each of the plurality of processor units (120) match each other (S2).
일례로, 상기 검증부(131)는, 상기 복수의 프로세서부(120) 상호 간 실행 결과가 불일치하는 경우 실행 결과가 다른 프로세서부들(120)과 불일치하는 어느 하나의 프로세서부(120)를 오류 발생 여부의 확인(검증) 대상인 확인 대상 프로세서부(120)(또는 검증 대상 프로세서부(120))로서 확인하고, 상기 확인 대상 프로세서부(120)의 동작을 정지시킬 수 있다.For example, if the execution results between the plurality of processor units (120) are inconsistent, the verification unit (131) can identify one processor unit (120) whose execution results are inconsistent with those of the other processor units (120) as a verification target processor unit (120) (or verification target processor unit (120)) that is a target of verification (verification) for the occurrence of an error, and can stop the operation of the verification target processor unit (120).
이때, 상기 검증부(131)는, 상기 복수의 프로세서부(120) 중 상기 확인 대상 프로세서부(120)를 제외한 나머지 프로세서부들(120)(나머지 한 쌍의 프로세서부(120))에 대해서는 동작을 유지시킬 수 있으며, 이를 통해 삼중 모듈 제어 장치(100)의 동작 연속성을 보장할 수 있다(S3).At this time, the verification unit (131) can maintain operation for the remaining processor units (120) (the remaining pair of processor units (120)) excluding the processor unit (120) to be verified among the plurality of processor units (120), thereby ensuring the continuity of operation of the triple module control device (100) (S3).
예를 들어, 상기 복수의 프로세서부(120) 중 제 1 프로세서부(120a)의 명령어 실행 결과가 상기 복수의 프로세서부(120) 중 제 2 프로세서부(120b) 및 제 3 프로세서부(120c)의 명령어 실행 결과와 상호 일치하지 않는 경우, 상기 제 1 프로세서부(120a)를 확인 대상 프로세서부로서 확인(식별)하여 동작을 정지시키고, 상기 나머지 프로세서부들(제 2 프로세서부(120b) 및 제 3 프로세서부(120c))의 동작을 유지시킬 수 있다.For example, if the command execution result of the first processor unit (120a) among the plurality of processor units (120) does not match the command execution results of the second processor unit (120b) and the third processor unit (120c) among the plurality of processor units (120), the first processor unit (120a) can be confirmed (identified) as the processor unit to be confirmed and the operation can be stopped, and the operation of the remaining processor units (the second processor unit (120b) and the third processor unit (120c)) can be maintained.
또한, 상기 검증부(131)는, 상기 확인 대상 프로세서부(120)의 오류 검출 실행(오류 검증)을 위한(오류 검출 실행을 요청하기 위한) 이벤트 정보를 상기 검증 연산 수행부(132)로 제공할 수 있다.In addition, the verification unit (131) can provide event information for error detection execution (error verification) of the verification target processor unit (120) (for requesting error detection execution) to the verification operation execution unit (132).
또한, 상기 검증 연산 수행부(132)는, 상기 검증부(131)로부터 수신된 이벤트 정보를 기초로 상기 확인 대상 프로세서부(120)를 확인(식별)하고, 상기 확인 대상 프로세서부(120)를 다시 활성화한 후(동작시킨 후) 상기 확인 대상 프로세서부(120)에 대해 미리 설정된 명령어 세트에 따른 명령어를 실행시킬 수 있다(S4).In addition, the verification operation execution unit (132) can verify (identify) the verification target processor unit (120) based on the event information received from the verification unit (131), reactivate (operate) the verification target processor unit (120), and then execute a command according to a preset command set for the verification target processor unit (120) (S4).
일례로, 상기 검증 연산 수행부(132)는, 상기 확인 대상 프로세서부(120)의 패치 블록에서 상기 메모리부(110)에 미리 저장된 오류 검출을 위한 상기 명령어 세트에 따른 명령어를 실행시키도록 제어 신호를 상기 확인 대상 프로세서부(120)의 패치 블록에 전달할 수 있다.For example, the verification operation execution unit (132) may transmit a control signal to the patch block of the verification target processor unit (120) to execute a command according to the command set for error detection pre-stored in the memory unit (110) in the patch block of the verification target processor unit (120).
이에 따라, 상기 확인 대상 프로세서부(120)는, 상기 제어 신호를 기초로 상기 명령어 세트에 따른 명령어를 상기 복수의 스테이지 블록을 통해 실행시킬 수 있으며, 상기 명령어 세트에 따른 명령어 실행에 따라 상기 복수의 스테이지 블록 각각에서 출력되는 출력 정보를 상기 다중화 관리부(130)에 제공할 수 있다.Accordingly, the processor unit (120) to be verified can execute a command according to the command set through the plurality of stage blocks based on the control signal, and can provide output information output from each of the plurality of stage blocks according to the execution of the command according to the command set to the multiplexing management unit (130).
또한, 상기 다중화 관리부(130)의 상기 오류 검출부(133)는, 상기 명령어 세트에 따른 명령어 실행에 따라 상기 확인 대상 프로세서부(120)의 각 스테이지 블록이 제공하는 출력 정보를 수신할 수 있다.In addition, the error detection unit (133) of the multiplexing management unit (130) can receive output information provided by each stage block of the verification target processor unit (120) according to the execution of a command according to the command set.
또한, 상기 오류 검출부(133)는, 상기 확인 대상 프로세서부(120)에 포함된 복수의 스테이지 블록 각각이 상기 명령어 세트에 따른 명령어 실행에 따라 제공하는 출력 정보를 미리 설정된 진단 오류 검출 테이블(DEDT: Diagnostic Error Detection Table)과 비교할 수 있다. 한편, 오류 검출부(133)는, 진단 오류 검출 테이블 자체에서 발생 가능한 오류 가능성을 최소화하기 위하여 상기 진단 오류 검출 테이블에 에러 검출 및 복원(ECC) 기능을 적용할 수 있다.In addition, the error detection unit (133) can compare output information provided by each of the plurality of stage blocks included in the verification target processor unit (120) according to the execution of instructions according to the instruction set with a preset diagnostic error detection table (DEDT: Diagnostic Error Detection Table). Meanwhile, the error detection unit (133) can apply an error detection and recovery (ECC) function to the diagnostic error detection table in order to minimize the possibility of errors occurring in the diagnostic error detection table itself.
또한, 상기 오류 검출부(133)는, 상기 확인 대상 프로세서부(120)의 재기록 블록에 의해 상기 디코드 블록의 레지스터에 기록된 명령어 실행 결과 정보를 확인할 수 있으며, 상기 명령어 실행 결과 정보를 상기 진단 오류 검출 테이블과 비교할 수 있다.In addition, the error detection unit (133) can check the instruction execution result information recorded in the register of the decode block by the rewrite block of the verification target processor unit (120), and compare the instruction execution result information with the diagnostic error detection table.
또는, 상기 오류 검출부(133)는, 상기 재기록 블록에서 제공하는 출력 정보로부터 상기 명령어 실행 결과 정보를 확인하고, 상기 확인된 명령어 실행 결과 정보를 상기 진단 오류 검출 테이블과 비교할 수도 있다.Alternatively, the error detection unit (133) may check the command execution result information from the output information provided by the rewrite block and compare the checked command execution result information with the diagnostic error detection table.
또한, 상기 오류 검출부(133)는, 상기 명령어 세트에 따른 특정 명령어를 상기 확인 대상 프로세서부(120)를 통해 실행한 결과로서 상기 확인 대상 프로세서부(120)에 포함된 복수의 스테이지 블록이 각각 출력한 출력 정보 및 상기 레지스터에 기록된 상기 복수의 스테이지 블록에 의한 명령어 실행 결과 정보를 미리 설정된 진단 오류 검출 테이블과 비교하여 오류가 발생한 스테이지 블록인 오류 발생 블록의 검출을 수행할 수 있으며, 오류 발생 블록의 검출 수행에 따른 오류 발생 블록의 검출 여부를 확인할 수 있다(S5).In addition, the error detection unit (133) can detect an error occurrence block, which is a stage block in which an error has occurred, by comparing output information output by each of a plurality of stage blocks included in the verification target processor unit (120) as a result of executing a specific instruction according to the instruction set through the verification target processor unit (120) and instruction execution result information by the plurality of stage blocks recorded in the register with a preset diagnostic error detection table, and can check whether an error occurrence block has been detected according to the detection of the error occurrence block (S5).
이때, 상기 진단 오류 검출 테이블은, 상기 복수의 스테이지 블록 각각에 대해 상기 명령어 세트에 포함된 명령어별로 정상 동작 시의 기대 출력 정보가 미리 설정될 수 있다.At this time, the diagnostic error detection table may preset expected output information for normal operation for each command included in the command set for each of the plurality of stage blocks.
또한, 상기 진단 오류 검출 테이블은, 상기 명령어 세트에 포함된 명령어별로 상기 복수의 스테이지 블록의 정상 동작시의 상기 복수의 스테이지 블록에 의한 명령어 처리에 따른 명령어 실행 결과에 대한 기대 실행 결과 정보가 미리 설정될 수 있다.In addition, the diagnostic error detection table may be configured to preset expected execution result information regarding command execution results according to command processing by the plurality of stage blocks when the plurality of stage blocks are operating normally, for each command included in the command set.
이에 따라, 상기 오류 검출부(133)는, 상기 검증 연산 수행부(132)와 연동하여 특정 스테이지 블록에서 특정 명령어에 대한 특정 출력 정보 출력시 상기 진단 오류 검출 테이블에서 상기 특정 스테이지 블록의 특정 명령어에 대해 미리 설정된 기대 출력 정보를 식별하고, 상기 식별된 기대 출력 정보와 상기 특정 출력 정보를 상호 비교하여 상기 식별된 기대 출력 정보와 상기 특정 출력 정보의 일치 여부에 따라 상기 특정 스테이지 블록의 오류 여부(오류 발생 여부)를 검출하는 방식으로, 상기 복수의 스테이지 블록 각각에 대해 오류 여부를 검출할 수 있다.Accordingly, the error detection unit (133) identifies, in the diagnostic error detection table, preset expected output information for a specific instruction of a specific stage block when specific output information for a specific instruction is output in a specific stage block in conjunction with the verification operation performing unit (132), and compares the identified expected output information with the specific output information to detect whether an error occurs (whether an error occurs) in the specific stage block based on whether the identified expected output information matches the specific output information, thereby detecting whether an error occurs for each of the plurality of stage blocks.
일례로, 상기 오류 검출부(133)는, 상기 명령어 세트에 포함된 제 1 명령어의 실행에 따라 상기 실행 블록에서 출력한 출력 정보와 상기 진단 오류 검출 테이블에서 식별된 상기 제 1 명령어에 대응하는 실행 블록의 기대 출력 정보를 상호 비교하여, 상기 출력 정보와 기대 출력 정보가 상호 일치하지 않는 경우 상기 실행 블록에서 오류가 발생한 것으로 판단하여 상기 실행 블록을 오류 발생 블록으로 검출할 수 있다.For example, the error detection unit (133) may compare output information output from the execution block according to the execution of the first instruction included in the instruction set with expected output information of the execution block corresponding to the first instruction identified in the diagnostic error detection table, and if the output information and expected output information do not match, determine that an error has occurred in the execution block and detect the execution block as an error occurrence block.
이때, 상기 오류 검출부(133)는, 상기 패치 블록에서 상기 디코드 블록으로 제공하는 출력 정보(패치 블록의 출력 정보)를 수신할 수 있으며, 상기 패치 블록의 출력 정보 및 상기 패치 블록에 대해 진단 오류 검출 테이블에 저장된 기대 출력 정보를 기초로 상기 패치 블록의 정지(또는 스톨(stall)) 여부를 판단할 수 있다.At this time, the error detection unit (133) can receive output information (output information of the patch block) provided from the patch block to the decode block, and can determine whether the patch block is stopped (or stalled) based on the output information of the patch block and the expected output information stored in the diagnostic error detection table for the patch block.
이에 따라, 상기 오류 검출부(133)는, 상기 패치 블록의 출력 정보를 기초로 정지 상태가 발생한 경우 상기 패치 블록에서 오류가 발생한 것으로 검출할 수 있다.Accordingly, the error detection unit (133) can detect that an error has occurred in the patch block when a stop state occurs based on the output information of the patch block.
또한, 상기 오류 검출부(133)는, 상기 진단 오류 검출 테이블에서 상기 특정 명령어에 대응하는 기대 실행 결과 정보를 식별한 후 상기 식별된 기대 실행 결과 정보와 상기 특정 명령어에 대응하는 상기 명령어 실행 결과 정보를 상호 비교하여 일치 여부에 따라 상기 확인 대상 프로세서부(120)의 오류 발생 여부를 검출할 수 있다.In addition, the error detection unit (133) can identify expected execution result information corresponding to the specific instruction in the diagnostic error detection table, and then compare the identified expected execution result information with the instruction execution result information corresponding to the specific instruction to detect whether an error has occurred in the processor unit (120) to be verified based on whether they match.
상술한 구성에서, 상기 명령어 세트는 복수의 명령어를 포함할 수 있고, 상기 확인 대상 프로세서부(120)는, 상기 검증 연산 수행부(132)의 제어에 따라 상기 명령어 세트에 포함된 복수의 명령어를 순차적으로 실행할 수 있으며, 상기 명령어 세트에 포함된 복수의 명령어를 미리 설정된 명령어별 실행 순서에 따라 순차적으로 실행할 수도 있다.In the above-described configuration, the instruction set may include a plurality of instructions, and the verification target processor unit (120) may sequentially execute a plurality of instructions included in the instruction set according to the control of the verification operation performing unit (132), and may also sequentially execute a plurality of instructions included in the instruction set according to a preset execution order for each instruction.
이때, 상기 명령어별 실행 순서는, 상기 명령어 세트에 미리 설정되거나 상기 검증 연산 수행부(132)에 미리 설정될 수도 있다.At this time, the execution order for each command may be preset in the command set or preset in the verification operation execution unit (132).
일례로, 상기 검증 연산 수행부(132)는, 상기 명령어 세트에 포함된 제 1 명령어 그룹에 따른 산술 연산(산술 연산 명령어), 논리 연산(논리 연산 명령어) 및 비교 연산(비교 연산 명령어) 중 적어도 하나로 상기 복수의 프로세서부(120)를 각각 실행시키며, 상기 오류 검출부(133)와 연동하여 상기 제 1 명령어 그룹에 속한 모든 명령어의 실행이 완료될 때까지 상기 오류 발생 블록이 검출되지 않는 경우, 상기 명령어 세트에 포함된 제 2 명령어 그룹에 속한 분기 연산(분기 연산 명령어), 메모리 읽기 연산(메모리 읽기 연산 명령어), 메모리 저장 연산(메모리 저장 연산 명령어) 및 쉬프트 연산(쉬프트 연산 명령어) 중 적어도 하나로 상기 확인 대상 프로세서부(120)를 각각 실행시킬 수 있다.For example, the verification operation execution unit (132) causes each of the plurality of processor units (120) to execute at least one of an arithmetic operation (arithmetic operation instruction), a logical operation (logical operation instruction), and a comparison operation (comparison operation instruction) according to a first instruction group included in the instruction set, and, in conjunction with the error detection unit (133), causes each of the verification target processor units (120) to execute at least one of a branch operation (branch operation instruction), a memory read operation (memory read operation instruction), a memory store operation (memory store operation instruction), and a shift operation (shift operation instruction) according to a second instruction group included in the instruction set, if the error occurrence block is not detected until execution of all instructions included in the first instruction group is completed.
이때, 상기 명령어 세트에 포함된 복수의 명령어는, 상기 산술 연산인 ADD와, 상기 논리 연산인 XOR과, 상기 비교 연산인 SLT와, 상기 분기 연산인 BEQ와, 상기 메모리 읽기 연산인 LD와, 상기 메모리 저장 연산인 SB와, 상기 쉬프트 연산인 SLL 등을 포함할 수 있다.At this time, the plurality of instructions included in the instruction set may include ADD, which is the arithmetic operation, XOR, which is the logical operation, SLT, which is the comparison operation, BEQ, which is the branch operation, LD, which is the memory read operation, SB, which is the memory store operation, and SLL, which is the shift operation.
여기서, 상기 검증 연산 수행부(132)는, 상기 명령어 세트에 포함된 산술 연산, 논리 연산 및 비교 연산을 포함하는 제 1 명령어 그룹에 따른 상기 복수의 스테이지 블록 모두를 동작시킬 수 있는 명령어를 우선 실행시켜, 신속한 오류 검출이 가능하다.Here, the verification operation execution unit (132) first executes a command capable of operating all of the plurality of stage blocks according to the first command group including arithmetic operations, logical operations, and comparison operations included in the command set, thereby enabling rapid error detection.
또한, 상기 오류 검출부(133)는, 명령어 세트에 포함된 명령어 실행시마다 복수의 스테이지 블록 각각에서 출력되는 출력 정보 및 명령어 실행에 따라 레지스터에 기록된 명령어 실행 결과 정보를 상기 진단 오류 검출 테이블과 비교하여 오류 발생 블록을 검출할 수 있다.In addition, the error detection unit (133) can detect an error occurrence block by comparing output information output from each of a plurality of stage blocks and instruction execution result information recorded in a register according to instruction execution with the diagnostic error detection table whenever an instruction included in the instruction set is executed.
또한, 상기 오류 검출부(133)는, 오류 발생 블록 검출시(S6) 상기 복수의 프로세서부(120) 중에서 상기 확인 대상 프로세서부(120)를 오류 발생 프로세서부(120)로서 식별(확인)하고, 상기 오류 발생 프로세서부(120)의 사용을 중단시킬 수 있다(S7).In addition, when detecting an error occurrence block (S6), the error detection unit (133) can identify (confirm) the confirmation target processor unit (120) among the plurality of processor units (120) as the error occurrence processor unit (120) and stop the use of the error occurrence processor unit (120) (S7).
즉, 상기 오류 검출부(133)는, 상기 확인 대상 프로세서부(120)에 대해 오류 발생 블록이 검출된 경우 해당 오류 발생 블록이 속한 확인 대상 프로세서부(120)를 오류가 발생한 오류 발생 프로세서부(120)로 특정하여 상기 오류 발생 프로세서부(120)의 동작을 중지(정지)시킬 수 있다.That is, when an error occurrence block is detected for the verification target processor unit (120), the error detection unit (133) can specify the verification target processor unit (120) to which the error occurrence block belongs as the error occurrence processor unit (120) where the error occurred and stop (suspend) the operation of the error occurrence processor unit (120).
또한, 이를 통해 오류가 발생하지 않은 나머지 프로세서부들(120)에서만 지속적으로 명령어 실행에 따른 정상 데이터가 출력되도록 함으로써, 오류 발생 프로세서부(120)에 의한 오류 데이터가 지속적으로 출력되는 것을 방지할 수 있다.In addition, by continuously outputting normal data according to instruction execution only from the remaining processor units (120) where no error occurred, it is possible to prevent error data from being continuously output by the processor unit (120) where an error occurred.
이때, 상기 오류 검출부(133)는, 오류 발생 블록 검출시 상기 검증 연산 수행부(132)와 연동하여 상기 명령어 세트에서 상기 오류 발생 블록을 검출하는데 사용된 명령어에 후속되는 상기 명령어 세트에 포함된 다른 명령어를 실행하지 않도록 상기 확인 대상 프로세서부(120)를 제어할 수 있다.At this time, the error detection unit (133) can control the verification target processor unit (120) to not execute other commands included in the command set subsequent to the command used to detect the error occurrence block in the command set when an error occurrence block is detected, in conjunction with the verification operation execution unit (132).
한편, 상술한 구성에서, 상기 검증부(131)는, 상기 명령어 세트에 포함된 명령어가 아닌 명령어(이하, 실행 대상 명령어)를 실행한 상기 복수의 프로세서부(120) 상호 간 실행 결과가 일치하지 않아 오류가 발생한 경우 상기 확인 대상 프로세서부(120)에 구성된 상기 패치 블록의 출력 정보를 확인하거나 상기 패치 블록의 명령어 메모리 유닛을 확인하여 상기 실행 대상 명령어를 포함하는 이벤트 정보를 상기 검증 연산 수행부(132)에 제공할 수 있다.Meanwhile, in the above-described configuration, if an error occurs due to a mismatch in execution results between the plurality of processor units (120) that executed a command (hereinafter, execution target command) that is not a command included in the command set, the verification unit (131) can check the output information of the patch block configured in the verification target processor unit (120) or check the command memory unit of the patch block to provide event information including the execution target command to the verification operation performing unit (132).
또한, 상기 검증 연산 수행부(132)는, 상기 이벤트 정보에 포함된 실행 대상 명령어를 확인하고, 상기 명령어 세트에 포함된 명령어 중에서 상기 실행 대상 명령어와 연산 종류(산술 연산, 논리 연산, 비교 연산, 분기 연산, 메모리 읽기 연산, 메모리 저장 연산, 쉬프트 연산)가 일치하는(실행 대상 명령어가 속한 연산 종류에 속하는) 명령어를 확인하고, 상기 확인된 명령어로 상기 확인 대상 프로세서부(120)의 상기 복수의 스테이지 블록을 실행시킬 수 있다.In addition, the verification operation execution unit (132) verifies the execution target instruction included in the event information, verifies an instruction among the instructions included in the instruction set whose operation type (arithmetic operation, logical operation, comparison operation, branch operation, memory read operation, memory store operation, shift operation) matches the execution target instruction (belongs to the operation type to which the execution target instruction belongs), and can execute the plurality of stage blocks of the verification target processor unit (120) with the verified instruction.
이에 따라, 상기 오류 검출부(133)는, 상기 복수의 프로세서부(120)에 오류를 발생시킨 명령어인 상기 실행 대상 명령어와 연산 종류가 일치하는 상기 명령어 세트에 포함된 상기 확인된 명령어로 상기 확인 대상 프로세서부(120)를 우선 실행시켜 오류 발생 블록을 신속하게 검출할 수 있으며, 이를 통해 상기 오류 발생 블록이 포함된 오류 발생 프로세서부(120)를 신속하게 검출할 수 있다.Accordingly, the error detection unit (133) can quickly detect an error occurrence block by first executing the confirmation target processor unit (120) with the confirmed instruction included in the instruction set whose operation type matches the execution target instruction, which is the instruction that caused an error in the plurality of processor units (120), and thereby quickly detect the error occurrence processor unit (120) including the error occurrence block.
또한, 상술한 구성에서, 상기 오류 검출부(133)는, 상기 확인 대상 프로세서부(120)의 출력 정보 및 명령어 실행 결과 정보를 상기 진단 오류 검출 테이블과 비교한 결과 오류 발생 블록이 검출되지 않는 경우 나머지 프로세서부들(120)에서 오류가 발생한 것으로 판단하고, 이에 대한 판단 결과 정보를 상기 검증부(131)에 제공할 수 있다(S6).In addition, in the above-described configuration, the error detection unit (133) compares the output information and command execution result information of the processor unit (120) to be verified with the diagnostic error detection table, and if an error occurrence block is not detected, it determines that an error has occurred in the remaining processor units (120), and can provide the determination result information thereon to the verification unit (131) (S6).
또한, 상기 검증부(131)는, 상기 오류 검출부(133)로부터 제공된 판단 결과 정보를 기초로 상기 확인 대상 프로세서부(120)가 오류 발생 프로세서부(120)가 아닌 경우 상기 확인 대상 프로세서부(120)의 동작을 활성화시킬 수 있으며(재개시킬 수 있으며), 상기 나머지 프로세서부들(120)의 동작을 정지시킬 수 있다(S8).In addition, the verification unit (131) can activate (restart) the operation of the verification target processor unit (120) if the verification target processor unit (120) is not an error-generating processor unit (120) based on the judgment result information provided from the error detection unit (133), and can stop the operation of the remaining processor units (120) (S8).
또한, 상기 검증부(131)는, 상기 나머지 프로세서부들(120) 각각에 대해 상기 확인 대상 프로세서부(120)와 마찬가지로 오류 검증을 요청하기 위한 이벤트 정보를 상기 검증 연산 수행부(132)로 제공할 수 있다.In addition, the verification unit (131) can provide event information for requesting error verification for each of the remaining processor units (120) to the verification operation performing unit (132), similar to the verification target processor unit (120).
또한, 상기 검증 연산 수행부(132)는, 상기 이벤트 정보 수신시 상기 나머지 프로세서부들(120) 각각에 대해 상술한 상기 확인 대상 프로세서부(120)에 대해 명령어 세트에 따른 명령어를 실행하는 과정과 동일하게 상기 명령어 세트에 따른 명령어를 실행하도록 제어할 수 있다(S9).In addition, the verification operation execution unit (132) can control each of the remaining processor units (120) to execute a command according to the command set in the same manner as the process of executing a command according to the command set for the verification target processor unit (120) described above when receiving the event information (S9).
또한, 상기 오류 검출부(133)는, 상술한 상기 확인 대상 프로세서부(120)의 명령어 세트에 포함된 명령어 실행에 따라 오류 발생 블록을 검출하는 과정과 동일하게 상기 명령어 세트에 따른 명령어를 실행한 상기 나머지 프로세서부들(120) 각각에 대해 오류 발생 블록을 검출하는 과정을 수행할 수 있다(S5).In addition, the error detection unit (133) can perform a process of detecting an error occurrence block for each of the remaining processor units (120) that executed a command according to the command set, similar to the process of detecting an error occurrence block according to the execution of a command included in the command set of the processor unit (120) to be verified described above (S5).
또한, 상기 오류 검출부(133)는, 상기 나머지 프로세서부들(120) 중 오류 발생 블록이 검출된 프로세서부(120)를 오류 발생 프로세서부(120)로 확인할 수 있다(S6).In addition, the error detection unit (133) can identify the processor unit (120) in which an error occurrence block is detected among the remaining processor units (120) as the error occurrence processor unit (120) (S6).
이때, 상기 오류 검출부(133)는, 상기 나머지 프로세서부들(120) 모두에서 오류 발생 블록이 검출된 경우 상기 나머지 프로세서부들(120) 각각을 오류 발생 프로세서부(120)로 확인할 수 있다.At this time, the error detection unit (133) can identify each of the remaining processor units (120) as an error-occurring processor unit (120) if an error-occurring block is detected in all of the remaining processor units (120).
또한, 상기 오류 검출부(133)는, 상기 오류 발생 프로세서부(120)로 확인된 하나 이상의 프로세서부(120)의 사용을 중단시킬 수 있으며, 사용 중단에 따라 오류 발생 프로세서부(120)의 동작을 정지시킬 수 있다(S7).In addition, the error detection unit (133) can stop the use of one or more processor units (120) identified as the error-occurring processor unit (120), and can stop the operation of the error-occurring processor unit (120) according to the stoppage of use (S7).
이때, 상기 오류 검출부(133)는, 상기 검증부(131) 및 검증 연산 수행부(132)와 연동하여 상기 나머지 프로세서부들(120) 각각에 대해서도 오류를 발생시킨 명령어인 상기 실행 대상 명령어와 연산 종류가 일치하는 상기 명령어 세트에 포함된 상기 확인된 명령어로 상기 나머지 프로세서부들(120) 각각을 우선 실행시켜 오류 발생 블록을 신속하게 검출할 수 있으며, 이를 통해 상기 오류 발생 블록이 포함된 오류 발생 프로세서부(120)를 신속하게 검출할 수 있다.At this time, the error detection unit (133) can quickly detect an error occurrence block by first executing each of the remaining processor units (120) with the confirmed instruction included in the instruction set whose operation type matches the execution target instruction that has caused an error in each of the remaining processor units (120) in conjunction with the verification unit (131) and the verification operation execution unit (132), thereby quickly detecting the error occurrence processor unit (120) including the error occurrence block.
이에 따라, 상기 오류 검출부(133)는, 상기 나머지 프로세서부들(120) 모두에서 오류가 검출되어 동작을 정지시킨 경우라도 상기 확인 대상 프로세서부(120)의 동작을 유지시켜 상기 삼중 모듈 제어 장치(100)의 연속성을 보장할 수 있다.Accordingly, the error detection unit (133) can maintain the operation of the processor unit (120) to be verified even when an error is detected in all of the remaining processor units (120) and operation is halted, thereby ensuring the continuity of the triple module control device (100).
한편, 상기 다중화 관리부(130)는, 오류 발생 블록이 검출된 경우 해당 오류 발생 블록의 기능을 eFPGA부(140)를 통해 복원하고, 해당 eFPGA부(140)를 통해 상기 오류 발생 프로세서부(120)의 오류 발생 블록의 기능을 대체함으로써, 상기 오류 발생 프로세서부(120) 역시 정상 프로세서부(120)로 복원(복구)할 수 있는데, 이를 도 5에 따른 삼중 모듈 제어 장치(100)의 복원 동작에 대한 순서도를 참고하여 상세히 설명한다.Meanwhile, the multiplexing management unit (130) can restore the function of the error-occurring block through the eFPGA unit (140) when an error-occurring block is detected, and replace the function of the error-occurring block of the error-occurring processor unit (120) through the eFPGA unit (140), thereby restoring (recovering) the error-occurring processor unit (120) to a normal processor unit (120). This will be described in detail with reference to the flowchart for the restoration operation of the triple module control device (100) according to FIG. 5.
앞서 설명한 바와 같이, 상기 삼중 모듈 제어 장치(100)는, 상기 프로세서부(120)의 오류 발생시 오류가 발생한 블록의 복원을 위한 eFPGA부(140)를 포함하여 구성될 수 있다.As described above, the triple module control device (100) may be configured to include an eFPGA unit (140) for restoring a block in which an error has occurred when an error occurs in the processor unit (120).
또한, 상기 다중화 관리부(130)는, 상기 오류 발생 블록의 복원을 위한 복원부(134)를 포함하여 구성될 수 있다.In addition, the multiplexing management unit (130) may be configured to include a restoration unit (134) for restoring the error-occurring block.
상술한 구성에 따라, 상기 복원부(134)는, 상기 오류 검출부(133)와 연동하여 특정 프로세서부(120)(오류 발생 프로세서부(120))에서 오류 발생 블록 검출시(S11) 상기 오류 발생 블록의 기능을 수행하는 복원 블록을 상기 eFPGA부(140)에 생성할 수 있다(S12).According to the above-described configuration, the restoration unit (134) can, in conjunction with the error detection unit (133), generate a restoration block that performs the function of the error occurrence block in the eFPGA unit (140) when an error occurrence block is detected in a specific processor unit (120) (error occurrence processor unit (120)) (S11) (S12).
이때, 상기 복원부(134)는, 상기 오류 검출부(133)와 연동하여 상기 오류 발생 프로세서부(120) 및 상기 오류 발생 프로세서부(120)에 속한 오류 발생 블록을 식별할 수 있다.At this time, the restoration unit (134) can identify the error occurrence processor unit (120) and the error occurrence block belonging to the error occurrence processor unit (120) in conjunction with the error detection unit (133).
즉, 상기 복원부(134)는, 상기 오류 발생 블록에 대응하는 오류가 없는 특정 스테이지 블록의 기능을 복원하기 위해 상기 eFPGA부(140)에 상기 특정 스테이지 블록의 기능을 프로그래밍하여 상기 복원 블록을 상기 eFPGA부(140)에 생성할 수 있다.That is, the restoration unit (134) can program the function of a specific stage block without an error corresponding to the error occurrence block into the eFPGA unit (140) to create the restoration block in the eFPGA unit (140).
또한, 상기 복원부(134)는, 상기 특정 프로세서부(120)에서 상기 오류 발생 블록으로 출력 정보를 전달하는 스테이지 블록의 출력 정보를 상기 복원 블록으로 전달하고, 상기 오류 발생 블록의 출력 정보를 수신하는 스테이지 블록으로 상기 복원 블록의 출력 정보를 전달하는 바이패스(bypass) 기능(또는 리다이렉션(redirection) 기능)을 수행할 수 있다(S13).In addition, the restoration unit (134) can perform a bypass function (or redirection function) of transmitting output information of a stage block that transmits output information from the specific processor unit (120) to the error occurrence block to the restoration block and transmitting output information of the restoration block to a stage block that receives output information of the error occurrence block (S13).
즉, 상기 복원부(134)는, 상기 오류 발생 블록의 입출력이 상기 복원 블록의 입출력으로 바이패스 되도록 제어할 수 있다.That is, the restoration unit (134) can control the input/output of the error occurrence block to be bypassed to the input/output of the restoration block.
이에 따라, 상기 복원부(134)는, 상기 복원 블록의 생성이 완료되면, 상기 오류 발생 프로세서부(120)를 다시 동작시킬 수 있으며, 상기 복원 블록을 통해 상기 오류 발생 프로세서부(120)를 정상 상태로 복원할 수 있다(S14).Accordingly, when the creation of the restoration block is completed, the restoration unit (134) can re-operate the error-occurring processor unit (120) and restore the error-occurring processor unit (120) to a normal state through the restoration block (S14).
이때, 상기 복원부(134)는, 상기 복원 블록의 생성이 완성되면, 상기 검증 연산 수행부(132) 및 오류 검출부(133)와 연동하여 상기 복원 블록과 연결된 오류 발생 프로세서부(120)를 통해 상기 명령어 세트에 따른 명령어를 실행시킬 수 있으며, 명령어 실행에 따라 상기 오류 발생 프로세서부(120)에 대해 오류 발생 블록의 검출 여부를 재확인할 수 있다.At this time, when the creation of the restoration block is completed, the restoration unit (134) can execute a command according to the command set through the error occurrence processor unit (120) connected to the restoration block in conjunction with the verification operation execution unit (132) and the error detection unit (133), and can re-confirm whether an error occurrence block has been detected for the error occurrence processor unit (120) according to the command execution.
또한, 상기 복원부(134)는, 상기 복원 블록과 연결된 오류 발생 프로세서부(120)에서 다른 오류 발생 블록이 다시 검출되면, 상기 검출된 다른 오류 발생 블록의 기능(상기 검출된 다른 오류 발생 블록에 대응하는 정상 상태의 스테이지 블록의 기능)을 수행하는 추가 복원 블록을 생성하여 상기 eFPGA부(140)에 프로그래밍하여 생성할 수 있으며, 상기 오류 발생 프로세서부(120)에서 발생한 상기 다른 오류 발생 블록에 대해서도 상술한 바와 같이 상기 추가 복원 블록을 이용한 바이패스 기능을 수행할 수 있다.In addition, the restoration unit (134) can generate an additional restoration block that performs the function of the other detected error occurrence block (the function of the normal state stage block corresponding to the other detected error occurrence block) when another error occurrence block is detected again in the error occurrence processor unit (120) connected to the restoration block, and can be programmed into the eFPGA unit (140) to generate the additional restoration block, and can perform a bypass function using the additional restoration block for the other error occurrence block generated in the error occurrence processor unit (120) as described above.
또한, 상기 복원부(134)는, 상기 추가 복원 블록 생성 완료 이후에도 상기 복원 블록 및 추가 복원 블록과 연결된 상기 오류 발생 프로세서부(120)에 대해서 상술한 바와 같이 상기 명령어 세트를 이용한 오류 발생 블록의 검출을 수행할 수 있으며, 새로운 오류 발생 블록이 검출된 경우 상술한 바와 같은 과정을 반복하여 새로운 복원 블록을 상기 eFPGA부(140)에 추가 생성할 수 있다.In addition, the restoration unit (134) can perform detection of an error occurrence block using the command set as described above for the restoration block and the error occurrence processor unit (120) connected to the additional restoration block even after the creation of the additional restoration block is completed, and when a new error occurrence block is detected, the process as described above can be repeated to additionally create a new restoration block in the eFPGA unit (140).
또는, 상기 복원부(134)는, 하나 이상의 복원 블록과 연결된 상기 오류 발생 프로세서부(120)에 대해 상기 명령어 세트에 따른 명령어를 실행하여 오류 발생 블록의 검출 여부를 확인한 결과 오류 발생 블록이 검출되지 않는 경우 상기 오류 발생 프로세서부(120)를 정상 프로세서부(120)로서 활성화하여 다른 프로세서부(120)와 동일하게 명령어를 처리하는데 사용되도록 동작시킬 수 있다.Alternatively, the restoration unit (134) may execute a command according to the command set for the error occurrence processor unit (120) connected to one or more restoration blocks to check whether an error occurrence block is detected, and if an error occurrence block is not detected, activate the error occurrence processor unit (120) as a normal processor unit (120) and operate it to process commands in the same manner as other processor units (120).
이와 같이, 상기 복원부(134)는, 프로세서부(120)의 파이프라인 단계에서 오류가 검출된 단계의 기능을 eFPGA부(140)에 구현할 수 있어, 장치 동작 중에도 특정 부분만 프로그래밍이 가능하고, 이를 통해 오류 복원 시 전체 장치의 중단 없이 오류가 발생한 기능만 신속하게 대체할 수 있다. 한편, eFPGA 기반의 상기 eFPGA부(140)에 구성된 파이프라인 특정 스테이지 구성 블록인 상기 복원 블록은 ASIC(Application Specific Integrated Circuit) 구성에 비하여 동작 클럭 속도가 낮은 경우가 일반적이며, 상기 복원부(134)는, 이러한 클럭 동작 속도 차이로 인하여 전체 시스템 클럭(전체 장치 클럭)을 재조정할 수 있다.In this way, the restoration unit (134) can implement the function of the stage where an error is detected in the pipeline stage of the processor unit (120) in the eFPGA unit (140), so that only a specific part can be programmed even during device operation, and through this, only the function where an error occurred can be quickly replaced without stopping the entire device when an error is restored. Meanwhile, the restoration block, which is a pipeline-specific stage configuration block configured in the eFPGA unit (140) based on the eFPGA, generally has a lower operating clock speed than an ASIC (Application Specific Integrated Circuit) configuration, and the restoration unit (134) can readjust the entire system clock (entire device clock) due to this clock operation speed difference.
한편 3중화된 프로세서 구조에 따라, eFPGA부(140)로 복원된 프로세서부(120)는 클럭 동작속도가 낮은 경우가 일반적이므로 두개의 고속 클럭 동작 프로세서와 저속 클럭 동작 프로세서 구성이 발생함에 따라, 시스템 사용 요구에 맞게 프로세서 구성을 다양하게 진행할 수 있다.Meanwhile, according to the triple processor structure, the processor unit (120) restored to the eFPGA unit (140) generally has a low clock operation speed, so as two high-speed clock operation processors and a low-speed clock operation processor are configured, the processor configuration can be diversely performed according to the system usage requirements.
예를 들어, 우주항공용과 같이 미션 크리티컬 용도에서는 상대적으로 낮은 동일한 속도로 구성된 3중화된 프로세서부(120) 구성을 수행할 수 있다. 한편 상대적으로 중요도가 낮은 경우, 2중화된 구성으로 충분한 용도가 가능한 조건에는 eFPGA부(140)로 복구된 낮은 동작속도의 프로세서부(120)는 예비용으로 구성할 수 있다. 이러한 구성의 경우, 정상 클럭으로 동작가능한 2중화된 프로세서부의 구성에서 오류가 발생할 경우, eFPGA부(140)로 복구된 낮은 동작속도로 동작하는 3중화된 프로세서부(120) 구성으로 기존과 동일하게 오류를 검출하고 복원하는 절차를 수행하게 된다.For example, in mission-critical applications such as aerospace applications, a triple-processor unit (120) configuration configured at a relatively low identical speed can be performed. On the other hand, in cases of relatively low importance, where a dual-processor configuration is sufficient for the purpose, a low-speed processor unit (120) recovered by the eFPGA unit (140) can be configured as a spare. In the case of this configuration, if an error occurs in the dual-processor unit configuration capable of operating at a normal clock, the triple-processor unit (120) configuration operating at a low speed recovered by the eFPGA unit (140) performs the same error detection and recovery procedure as before.
이를 위해, 상기 삼중 모듈 제어 장치(100)는, 상기 다중화 관리부(130) 또는 상기 오류 검출부(133)에 대한 동작 조건의 설정을 위한 인터페이스부를 포함하거나 상기 삼중 모듈 제어 장치(100)의 외부에 구성되는 인터페이스부와 연동하도록 구성될 수 있으며, 상기 다중화 관리부(130)에 구성된 오류 검출부(133)는, 상기 인터페이스부를 통해 상기 동작 조건(동작 모드)에 대한 입력 정보(외부 입력에 따른 입력 정보)를 수신할 수 있다.To this end, the triple module control device (100) may include an interface unit for setting operating conditions for the multiplexing management unit (130) or the error detection unit (133), or may be configured to be linked with an interface unit configured externally to the triple module control device (100), and the error detection unit (133) configured in the multiplexing management unit (130) may receive input information (input information according to external input) regarding the operating conditions (operation mode) through the interface unit.
이때, 상기 인터페이스부는, 상기 다중화 관리부(130)에 포함되어 구성될 수도 있다.At this time, the interface unit may be configured to be included in the multiplexing management unit (130).
또한, 상기 복원부(134)와 연동하는 상기 오류 검출부(133)는, 상기 입력 정보를 기초로 제 1 동작 조건(또는 제 1 동작 모드)으로 동작하는(동작하도록 설정된) 상태에서, 상기 복원부(134)와 연동하여 상기 복원 블록 생성시(상기 복원 블록의 생성이 확인되면) 미리 설정된 상기 제 1 동작 조건에 따라 상기 복원 블록과 연결된 프로세서부(120)를 제외한 나머지 프로세서부들(120) 각각의 동작 클럭을 상기 복원 블록과 연결된 프로세서부(120)의 동작 클럭과 일치시고, 상기 입력 정보를 기초로 제 2 동작 조건(또는 제 2 동작 모드)으로 동작하는(동작하도록 설정된) 상태에서, 상기 복원 블록 생성시(상기 복원 블록의 생성이 확인되면) 미리 설정된 상기 제 2 동작 조건에 따라 상기 복원 블록과 연결된 프로세서부(120)를 예비용 프로세서부(120)로 설정하고 상기 예비용 프로세서부(120)를 제외한 나머지 프로세서부들(120)만을 동작시키며 상기 나머지 프로세서부들(120) 중 적어도 하나에서 오류 발생 블록 검출시 상기 예비용 프로세서부(120)를 활성화하면서 상기 나머지 프로세서부들(120) 및 상기 예비용 프로세서부(120)의 동작 클럭을 상호 일치시킬 수 있다.In addition, the error detection unit (133) linked with the restoration unit (134), in a state in which the first operation condition (or the first operation mode) is operated (or set to operate) based on the input information, in conjunction with the restoration unit (134), when the restoration block is generated (when the generation of the restoration block is confirmed), the operation clocks of each of the remaining processor units (120) excluding the processor unit (120) connected to the restoration block are matched with the operation clock of the processor unit (120) connected to the restoration block according to the first operation condition that is set in advance, and in a state in which the second operation condition (or the second operation mode) is operated (or set to operate) based on the input information, when the restoration block is generated (when the generation of the restoration block is confirmed), the processor unit (120) connected to the restoration block is set as a spare processor unit (120) according to the second operation condition that is set in advance, and only the remaining processor units (120) excluding the spare processor unit (120) are operated, and the remaining When an error occurrence block is detected in at least one of the processor units (120), the spare processor unit (120) can be activated while the operation clocks of the remaining processor units (120) and the spare processor unit (120) can be synchronized with each other.
이때, 상기 오류 검출부(133)는, 상기 복원 블록과 연결된 프로세서부(예비용 프로세서부)(120)의 동작 클럭을 기준으로 나머지 프로세서부들(120)의 동작 클럭을 일치시키거나, 미리 설정된 동작 클럭으로 상기 복원 블록과 연결된 프로세서부(120) 및 상기 나머지 프로세서부들(120)을 설정할 수 있다.At this time, the error detection unit (133) can match the operation clocks of the remaining processor units (120) based on the operation clock of the processor unit (spare processor unit) (120) connected to the recovery block, or set the processor unit (120) connected to the recovery block and the remaining processor units (120) to a preset operation clock.
한편, 상술한 구성에서, 상기 복원부(134)는, 상기 명령어 세트에 포함된 명령어 실행 중 오류 발생 블록이 검출된 경우, 오류 발생 블록이 검출된 때에 실행된 특정 명령어에 후속되는 상기 명령어 세트의 다른 명령어를 실행하지 않고 상기 오류 발생 블록에 대응하는 오류 발생 프로세서부(120)의 사용을 중단시킬 수 있으며, 상기 오류 발생 블록에 대응하는 복원 블록을 생성하여 상기 오류 발생 블록이 속한 오류 발생 프로세서부(120)에 대한 복원(복구)을 수행할 수 있다.Meanwhile, in the above-described configuration, when an error occurrence block is detected during execution of an instruction included in the instruction set, the restoration unit (134) can stop use of the error occurrence processor unit (120) corresponding to the error occurrence block without executing other instructions of the instruction set subsequent to a specific instruction executed when the error occurrence block was detected, and can perform restoration (recovery) on the error occurrence processor unit (120) to which the error occurrence block belongs by generating a restoration block corresponding to the error occurrence block.
또한, 상기 복원부(134)는, 상기 오류 발생 블록의 기능을 수행하는 복원 블록을 생성할 때, 외부에 구성되며 복수의 스테이지 블록 각각의 블록 구성 정보가 저장된 스테이지 블록 저장부(200)에서 상기 오류 발생 블록에 대응하는 블록 구성 정보를 추출할 수 있다.In addition, when the restoration unit (134) generates a restoration block that performs the function of the error occurrence block, it can extract block configuration information corresponding to the error occurrence block from a stage block storage unit (200) configured externally and in which block configuration information of each of a plurality of stage blocks is stored.
이때, 상기 스테이지 블록 저장부(200)는, 상기 삼중 모듈 제어 장치(100)의 외부에 구성되는 외부 플래시 메모리일 수 있다.At this time, the stage block storage unit (200) may be an external flash memory configured outside the triple module control device (100).
또한, 상기 복원부(134)는, 상기 추출된 블록 구성 정보를 이용하여 상기 eFPGA부(140)에 복원 블록을 프로그래밍하여 생성할 수 있다.In addition, the restoration unit (134) can generate a restoration block by programming it into the eFPGA unit (140) using the extracted block configuration information.
상술한 바와 같이, 본 발명은 세 개의 RISC-V 기반 프로세서부를 포함하는 삼중 모듈 제어 장치에서 명령어 실행 결과가 나머지 프로세서부와 불일치하는 확인 대상 프로세서부의 파이프라인 구조에 따른 스테이지별 오류 발생 여부를 신속하고 정확하게 검출할 수 있도록 지원함과 아울러 확인 대상 프로세서부의 오류 발생 여부에 대한 검증시 나머지 프로세서부의 동작을 유지하여 삼중 모듈 제어 장치의 연속성 및 안정성을 보장할 수 있을 뿐만 아니라 확인 대상 프로세서부에 오류가 검출되지 않은 경우 나머지 프로세서부를 대상으로 스테이지별 오류 발생 여부를 신속하고 정확하게 검출하여 세 개의 프로세서부 중 오류가 발생한 프로세서부를 정확하고 신속하게 특정함으로써 오류 발생 프로세서부의 사용을 중단시키고 정상 프로세서부만을 동작시켜 해당 삼중 모듈 제어 장치가 적용된 기기나 시스템에서 오류의 전파를 방지하고 안정성 및 신뢰성을 보장함과 아울러 해당 기기나 시스템의 안정적인 동작 연속성을 보장할 수 있다.As described above, the present invention supports, in a triple-module control device including three RISC-V-based processor units, the detection of whether an error has occurred at each stage according to the pipeline structure of a verification target processor unit whose instruction execution result is inconsistent with the remaining processor units, and, at the same time, the operation of the remaining processor units is maintained when verifying whether an error has occurred at the verification target processor unit, thereby ensuring the continuity and stability of the triple-module control device. In addition, if an error is not detected at the verification target processor unit, the detection of whether an error has occurred at each stage for the remaining processor units is performed, thereby accurately and quickly specifying the processor unit in which an error has occurred among the three processor units, thereby stopping the use of the processor unit in which the error has occurred and operating only the normal processor unit, thereby preventing the propagation of an error in a device or system to which the triple-module control device is applied, ensuring stability and reliability, and ensuring stable operation continuity of the device or system.
또한, 본 발명은 eFPGA부를 이용하여 오류가 발생한 프로세서부에 포함된 오류 발생 블록의 기능을 eFPGA부에 프로그래밍하여 복원 블록을 생성함으로써 오류가 발생한 프로세서부를 다시 정상 상태로 복원할 수 있어, 오류가 발생한 기능만을 신속하게 대체할 수 있는 동적 복원 기능을 통해 해당 삼중 모듈 제어 장치의 가용성을 크게 향상시킬 수 있으며, 이를 통해 우주 항공기, 고성능 자동차 등 오류에 민감한 분야에서 사용될 수 있는 신뢰성 높은 제어 장치를 제공할 수 있다.In addition, the present invention can restore the processor unit in which an error occurred to a normal state by programming the function of an error occurrence block included in a processor unit in which an error occurred into the eFPGA unit and generating a restoration block, thereby enabling a dynamic restoration function that can quickly replace only the function in which an error occurred to significantly improve the availability of the triple module control device, thereby providing a highly reliable control device that can be used in error-sensitive fields such as aerospace aircraft and high-performance automobiles.
본 발명의 실시예들에서 설명된 구성요소는, 예를 들어, 메모리, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(programmable logic unit), 마이크로프로세서, 논리게이트(Logic gate) 등의 하드웨어, 명령어 세트를 포함하는 소프트웨어 내지 이들의 조합 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.The components described in the embodiments of the present invention may be implemented using one or more general-purpose computers or special-purpose computers, such as, for example, hardware such as a memory, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, a logic gate, software including an instruction set, or a combination thereof, or any other device capable of executing and responding to instructions.
본 명세서에 기술된 다양한 장치 및 구성부는 하드웨어 회로(예를 들어, CMOS 기반 로직 회로), 펌웨어, 소프트웨어 또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 전기적 구조의 형태로 트랜지스터, 로직게이트 및 전자회로를 활용하여 구현될 수 있다.The various devices and components described herein may be implemented by hardware circuits (e.g., CMOS-based logic circuits), firmware, software, or a combination thereof. For example, they may be implemented by utilizing transistors, logic gates, and electronic circuits in the form of various electrical structures.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above-described contents can be modified and changed by those skilled in the art to which the present invention pertains, without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain it, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the rights of the present invention.
100: 삼중 모듈 제어 장치 110: 메모리부
120: 프로세서부 130: 다중화 관리부
131: 검증부 132: 검증 연산 수행부
133: 오류 검출부 134: 복원부
140: eFPGA부 200: 스테이지 블록 저장부100: Triple module control unit 110: Memory unit
120: Processor section 130: Multiplexing management section
131: Verification unit 132: Verification operation execution unit
133: Error detection unit 134: Recovery unit
140: eFPGA section 200: Stage block storage section
Claims (10)
상기 패치 블록, 디코드 블록 및 메모리 블록은 명령어 수행을 위한 메모리 정보의 무결성을 유지하기 위해 각각 오류 정정 코드(Error Correcting Code, ECC) 기반으로 메모리 정보의 오류 검출 및 오류 정정을 수행하는 ECC 메모리 유닛을 구비하고,
상기 다중화 관리부는,
상기 세 개의 프로세서부의 명령어 실행에 따른 실행 결과를 상호 비교하여 실행 결과의 일치 여부에 따라 오류 발생 여부를 검증하는 검증부;
상기 검증부의 검증 결과 오류 발생시 상기 세 개의 프로세서부 중 명령어 실행 결과가 나머지 프로세서부들과 일치하지 않는 확인 대상 프로세서부에 대해 미리 설정된 명령어 세트에 따른 명령어를 실행시키는 검증 연산 수행부; 및
상기 확인 대상 프로세서부에 포함된 복수의 스테이지 블록 각각이 상기 명령어 세트에 따른 명령어 실행에 따라 제공하는 출력 정보 및 상기 복수의 스테이지 블록에 의한 명령어 실행에 따른 명령어 실행 결과 정보를 미리 설정된 진단 오류 검출 테이블과 비교하여, 오류가 발생한 스테이지 블록인 오류 발생 블록을 검출하고, 상기 오류 발생 블록 검출시 상기 확인 대상 프로세서부를 오류 발생 프로세서부로 특정하여 해당 오류 발생 프로세서부의 사용을 중단시키는 오류 검출부
를 포함하는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.A triple module control device comprising three RISC-V based processor units having a pipeline structure composed of multiple stage blocks including a patch block, a decode block, an execution block, a memory block, and a rewrite block, and including a multiplexing management unit for error verification of the processor units,
The above patch block, decode block and memory block each have an ECC memory unit that performs error detection and error correction of memory information based on an Error Correcting Code (ECC) to maintain the integrity of memory information for command execution.
The above multiplexing management unit,
A verification unit that compares the execution results of the instructions executed by the three processor units above and verifies whether an error has occurred based on whether the execution results match;
A verification operation execution unit that executes a command according to a preset command set for a processor unit subject to verification whose command execution results among the three processor units do not match the remaining processor units when an error occurs in the verification result of the above verification unit; and
An error detection unit that compares output information provided by each of a plurality of stage blocks included in the processor unit to execute instructions according to the instruction set and instruction execution result information according to instruction execution by the plurality of stage blocks with a preset diagnostic error detection table to detect an error occurrence block, which is a stage block in which an error has occurred, and, when the error occurrence block is detected, specifies the processor unit to be verified as the processor unit in which an error has occurred and suspends the use of the processor unit in which the error has occurred.
A triple module control device having a reliability verification function characterized by including:
상기 검증부는, 상기 확인 대상 프로세서부로서 확인된 프로세서부의 동작을 정지시키고, 상기 확인 대상 프로세서부가 아닌 나머지 프로세서부들의 동작을 유지시키는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 1,
A triple module control device having a reliability verification function, characterized in that the verification unit stops the operation of the processor unit identified as the verification target processor unit and maintains the operation of the remaining processor units other than the verification target processor unit.
상기 진단 오류 검출 테이블은, 상기 복수의 스테이지 블록 각각에 대해 상기 명령어 세트에 포함된 명령어별로 정상 동작 시의 기대 출력 정보가 미리 설정되고,
상기 오류 검출부는, 상기 검증 연산 수행부와 연동하여 특정 스테이지 블록에서 특정 명령어에 대해 특정 출력 정보 출력시 상기 진단 오류 검출 테이블에서 상기 특정 스테이지 블록의 특정 명령어에 대해 미리 설정된 기대 출력 정보를 식별하고, 상기 식별된 기대 출력 정보와 상기 특정 출력 정보를 비교하여 일치 여부에 따라 상기 특정 스테이지 블록의 오류 발생 여부를 검출하거나, 상기 진단 오류 검출 테이블에서 상기 특정 명령어에 대응하는 기대 실행 결과 정보를 식별한 후 상기 식별된 기대 실행 결과 정보와 상기 특정 명령어에 대응하는 상기 명령어 실행 결과 정보를 상호 비교하여 일치 여부에 따라 상기 확인 대상 프로세서부의 오류 발생 여부를 검출하는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 1,
The above diagnostic error detection table is configured such that expected output information for normal operation is preset for each command included in the command set for each of the plurality of stage blocks.
The error detection unit, in conjunction with the verification operation performing unit, identifies expected output information preset for a specific instruction of the specific stage block in the diagnostic error detection table when specific output information is output for a specific instruction in the specific stage block, compares the identified expected output information with the specific output information, and detects whether an error has occurred in the specific stage block based on whether they match, or identifies expected execution result information corresponding to the specific instruction in the diagnostic error detection table, and then compares the identified expected execution result information with the instruction execution result information corresponding to the specific instruction to detect whether an error has occurred in the verification target processor based on whether they match. A triple module control device having a reliability verification function.
상기 오류 검출부는,
상기 복수의 스테이지 블록에 의한 상기 특정 명령어 실행에 따라 레지스터에 저장된 명령어 실행 결과 정보를 상기 기대 실행 결과 정보과 비교하여 일치 여부에 따라 상기 확인 대상 프로세서부의 오류 발생 여부를 검출하는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 3,
The above error detection unit,
A triple module control device having a reliability verification function characterized in that the occurrence of an error in the processor unit to be verified is detected based on whether the instruction execution result information stored in the register according to the execution of the specific instruction by the plurality of stage blocks is compared with the expected execution result information and whether they match.
상기 검증 연산 수행부는, 상기 명령어 세트에 포함된 제 1 명령어 그룹에 따른 산술 연산, 논리 연산 및 비교 연산 중 적어도 하나로 상기 확인 대상 프로세서부를 실행시키며, 상기 오류 검출부와 연동하여 상기 제 1 명령어 그룹에 속한 모든 명령어의 실행이 완료될 때까지 상기 오류 발생 블록이 검출되지 않는 경우 상기 명령어 세트에 포함된 제 2 명령어 그룹에 속한 분기 연산, 메모리 읽기 연산, 메모리 저장 연산 및 쉬프트 연산 중 적어도 하나로 상기 확인 대상 프로세서부를 실행시키는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 1,
A triple module control device having a reliability verification function, characterized in that the verification operation execution unit executes the verification target processor unit with at least one of an arithmetic operation, a logical operation, and a comparison operation according to a first instruction group included in the instruction set, and, in conjunction with the error detection unit, executes the verification target processor unit with at least one of a branch operation, a memory read operation, a memory store operation, and a shift operation belonging to a second instruction group included in the instruction set when the error occurrence block is not detected until execution of all instructions belonging to the first instruction group is completed.
상기 산술 연산은 ADD이고, 상기 논리 연산은, XOR이며, 상기 비교 연산은 SLT이고, 상기 분기 연산은 BEQ이며, 상기 메모리 읽기 연산은 LD이고, 상기 메모리 저장 연산은 SB이며, 상기 쉬프트 연산은 SLL인 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 5,
A triple module control device having a reliability verification function, characterized in that the arithmetic operation is ADD, the logical operation is XOR, the comparison operation is SLT, the branch operation is BEQ, the memory read operation is LD, the memory store operation is SB, and the shift operation is SLL.
상기 오류 검출부는,
상기 확인 대상 프로세서부의 출력 정보 및 명령어 실행 결과 정보를 상기 진단 오류 검출 테이블과 비교한 결과 오류 발생 블록이 검출되지 않는 경우 상기 나머지 프로세서부들에서 오류가 발생한 것으로 판단하고, 상기 검증부와 연동하여 상기 확인 대상 프로세서부의 동작을 활성화시키면서 상기 나머지 프로세서부들의 동작을 정지시키며, 상기 검증 연산 수행부와 연동하여, 상기 나머지 프로세서부들 각각에 대해 상기 명령어 세트에 따른 명령어를 실행시켜 상기 확인 대상 프로세서부에 대한 오류 발생 블록의 검출 과정과 동일하게 오류 발생 블록을 검출하고, 상기 나머지 프로세서부들 중 오류 발생 블록이 검출된 프로세서부를 오류 발생 프로세서부로 확인하여 사용을 중단시키는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 1,
The above error detection unit,
A triple module control device having a reliability verification function, characterized in that when an error occurrence block is not detected as a result of comparing the output information and the instruction execution result information of the processor unit to be verified with the diagnostic error detection table, it is determined that an error has occurred in the remaining processor units, and the operation of the processor unit to be verified is activated in conjunction with the verification unit while the operation of the remaining processor units is stopped, and in conjunction with the verification operation execution unit, a command according to the instruction set is executed for each of the remaining processor units to detect an error occurrence block in the same manner as the error occurrence block detection process for the processor unit to be verified, and the processor unit in which the error occurrence block is detected among the remaining processor units is confirmed as the error occurrence processor unit and use is suspended.
상기 오류 발생 프로세서부에서 오류가 발생한 블록의 복원을 위한 eFPGA부를 더 포함하고,
상기 다중화 관리부는,
상기 오류 발생 블록의 기능을 수행하기 위한 복원 블록을 상기 eFPGA부에 생성하고, 상기 복수의 스테이지 블록 중 상기 오류 발생 블록으로 출력 정보를 전달하는 스테이지 블록의 출력 정보를 상기 복원 블록으로 전달하고, 상기 오류 발생 블록의 출력 정보를 수신하는 스테이지 블록으로 상기 복원 블록의 출력 정보를 전달하는 바이패스 기능을 수행하는 복원부를 더 포함하는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 1,
The above error generating processor unit further includes an eFPGA unit for restoring a block in which an error occurred,
The above multiplexing management department,
A triple module control device with a reliability verification function, characterized in that it further includes a restoration unit that generates a restoration block for performing the function of the above error occurrence block in the eFPGA unit, transmits output information of a stage block that transmits output information to the above error occurrence block among the plurality of stage blocks to the restoration block, and performs a bypass function of transmitting output information of the restoration block to a stage block that receives output information of the above error occurrence block.
상기 복원부는,
상기 오류 검출부와 연동하여, 상기 명령어 세트에 포함된 명령어 실행 중 오류 발생 블록이 검출된 경우, 상기 명령어 세트의 후속되는 명령어를 실행하지 않고 상기 오류 발생 블록에 대응하는 오류 발생 프로세서부의 사용을 중단시키고, 상기 오류 발생 블록에 대응하는 복원 블록을 생성하여 상기 오류 발생 블록이 속한 오류 발생 프로세서부에 대한 복원을 수행하는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 8,
The above restoration part,
A triple module control device having a reliability verification function, characterized in that, when an error occurrence block is detected during execution of a command included in the command set in conjunction with the error detection unit, subsequent commands of the command set are not executed, use of the error occurrence processor unit corresponding to the error occurrence block is stopped, a recovery block corresponding to the error occurrence block is generated, and recovery is performed for the error occurrence processor unit to which the error occurrence block belongs.
상기 오류 검출부에 대한 동작 조건의 설정을 위한 인터페이스부를 포함하고,
상기 오류 검출부는, 상기 인터페이스부를 통한 입력 정보를 기초로 제 1 동작 조건으로 동작하는 상태에서, 상기 복원 블록 생성시 상기 복원 블록과 연결된 프로세서부를 제외한 나머지 프로세서부들 각각의 동작 클럭을 상기 복원 블록과 연결된 프로세서부의 동작 클럭과 일치시키고, 상기 입력 정보를 기초로 제 2 동작 조건으로 동작하는 상태에서, 상기 복원 블록 생성시 상기 복원 블록과 연결된 프로세서부를 예비용 프로세서부로 설정한 후 상기 예비용 프로세서부를 제외한 나머지 프로세서부들만을 동작시키며 상기 나머지 프로세서부들 중 적어도 하나에서 오류 발생 블록 검출시 상기 예비용 프로세서부를 활성화하면서 상기 나머지 프로세서부들 및 상기 예비용 프로세서부의 동작 클럭을 상호 일치시키는 것을 특징으로 하는 신뢰성 검증 기능을 구비한 삼중 모듈 제어 장치.In claim 8,
Includes an interface section for setting operating conditions for the above error detection section,
A triple module control device having a reliability verification function, characterized in that the error detection unit, when operating under a first operating condition based on input information through the interface unit, causes each of the operating clocks of the remaining processor units excluding the processor unit connected to the restoration block when generating the restoration block to match the operating clock of the processor unit connected to the restoration block, and when operating under a second operating condition based on the input information, sets the processor unit connected to the restoration block as a spare processor unit when generating the restoration block, and then operates only the remaining processor units excluding the spare processor unit, and when an error occurrence block is detected in at least one of the remaining processor units, activates the spare processor unit and mutually matches the operating clocks of the remaining processor units and the spare processor unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020240137609A KR102738225B1 (en) | 2024-10-10 | 2024-10-10 | Triple module control apparatus with reliability verification function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020240137609A KR102738225B1 (en) | 2024-10-10 | 2024-10-10 | Triple module control apparatus with reliability verification function |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102738225B1 true KR102738225B1 (en) | 2024-12-05 |
Family
ID=93843124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020240137609A KR102738225B1 (en) | 2024-10-10 | 2024-10-10 | Triple module control apparatus with reliability verification function |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102738225B1 (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244244A1 (en) * | 2007-03-30 | 2008-10-02 | Advanced Micro Devices, Inc. | Parallel instruction processing and operand integrity verification |
KR20100075116A (en) * | 2008-12-24 | 2010-07-02 | 주식회사 코아로직 | Method and apparatus for executing command to multitasking a plurality of process |
JP2016194839A (en) * | 2015-04-01 | 2016-11-17 | 富士電機株式会社 | Control device and communication interface circuit |
KR20190069781A (en) * | 2017-12-12 | 2019-06-20 | 연세대학교 산학협력단 | Error Recovery Module of Pipelined Structure Using Dual Modular Redundancy and Method Thereof |
KR101996842B1 (en) * | 2018-12-26 | 2019-07-08 | (주)자람테크놀로지 | RISC-V implemented processor with hardware acceleration supporting user defined instruction set and method therof |
US20210133027A1 (en) * | 2019-10-31 | 2021-05-06 | Arm Limited | Non-volatile memory on chip |
US20230401311A1 (en) * | 2022-06-13 | 2023-12-14 | Rambus Inc. | Determining integrity-driven error types in memory buffer devices |
-
2024
- 2024-10-10 KR KR1020240137609A patent/KR102738225B1/en active IP Right Grant
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244244A1 (en) * | 2007-03-30 | 2008-10-02 | Advanced Micro Devices, Inc. | Parallel instruction processing and operand integrity verification |
KR20100075116A (en) * | 2008-12-24 | 2010-07-02 | 주식회사 코아로직 | Method and apparatus for executing command to multitasking a plurality of process |
JP2016194839A (en) * | 2015-04-01 | 2016-11-17 | 富士電機株式会社 | Control device and communication interface circuit |
KR20190069781A (en) * | 2017-12-12 | 2019-06-20 | 연세대학교 산학협력단 | Error Recovery Module of Pipelined Structure Using Dual Modular Redundancy and Method Thereof |
KR102022482B1 (en) | 2017-12-12 | 2019-09-18 | 연세대학교 산학협력단 | Error Recovery Module of Pipelined Structure Using Dual Modular Redundancy and Method Thereof |
KR101996842B1 (en) * | 2018-12-26 | 2019-07-08 | (주)자람테크놀로지 | RISC-V implemented processor with hardware acceleration supporting user defined instruction set and method therof |
US20210133027A1 (en) * | 2019-10-31 | 2021-05-06 | Arm Limited | Non-volatile memory on chip |
US20230401311A1 (en) * | 2022-06-13 | 2023-12-14 | Rambus Inc. | Determining integrity-driven error types in memory buffer devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9891917B2 (en) | System and method to increase lockstep core availability | |
US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
US9164854B2 (en) | Thread sparing between cores in a multi-threaded processor | |
US20090217092A1 (en) | Method and Device for Controlling a Computer System Having At Least Two Execution Units and One Comparator Unit | |
US8650437B2 (en) | Computer system and method of protection for the system's marking store | |
US9348681B2 (en) | Apparatus and method for detecting fault of processor | |
US7966536B2 (en) | Method and apparatus for automatic scan completion in the event of a system checkstop | |
US20210124655A1 (en) | Dynamic Configurable Microcontroller Recovery | |
US10360115B2 (en) | Monitoring device, fault-tolerant system, and control method | |
US11392385B2 (en) | System and method for auto-recovery in lockstep processors | |
US10108469B2 (en) | Microcomputer and microcomputer system | |
CN113454724A (en) | Runtime post package repair for memory | |
US9298554B2 (en) | Method and apparatus for booting processor | |
US20070067677A1 (en) | Program-controlled unit and method | |
US6799285B2 (en) | Self-checking multi-threaded processor | |
KR102738225B1 (en) | Triple module control apparatus with reliability verification function | |
CN117136355A (en) | Error checking data for use in offloading operations | |
US8176406B2 (en) | Hard error detection | |
CN117112318A (en) | Dual-core fault-tolerant system based on RISC-V architecture | |
KR101844095B1 (en) | Method and apparatus for executing bootloader | |
CN107423029B (en) | Calculation unit | |
WO2010109631A1 (en) | Information processing device, information processing method and information processing program | |
US20240243755A1 (en) | Data Validation and Correction using Hybrid Parity and Error Correcting Codes | |
US11831337B2 (en) | Semiconductor device and error detection methods | |
US20240134743A1 (en) | Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20241010 |
|
PA0201 | Request for examination |
Patent event code: PA02011R01I Patent event date: 20241010 Comment text: Patent Application |
|
A302 | Request for accelerated examination | ||
PA0302 | Request for accelerated examination |
Patent event date: 20241021 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20241125 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20241129 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20241202 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration |