KR20170105343A - 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법 - Google Patents

코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법 Download PDF

Info

Publication number
KR20170105343A
KR20170105343A KR1020160028445A KR20160028445A KR20170105343A KR 20170105343 A KR20170105343 A KR 20170105343A KR 1020160028445 A KR1020160028445 A KR 1020160028445A KR 20160028445 A KR20160028445 A KR 20160028445A KR 20170105343 A KR20170105343 A KR 20170105343A
Authority
KR
South Korea
Prior art keywords
cluster
core
cpu cores
task
information
Prior art date
Application number
KR1020160028445A
Other languages
English (en)
Other versions
KR102018541B1 (ko
Inventor
양정민
변경진
엄낙웅
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160028445A priority Critical patent/KR102018541B1/ko
Publication of KR20170105343A publication Critical patent/KR20170105343A/ko
Application granted granted Critical
Publication of KR102018541B1 publication Critical patent/KR102018541B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Abstract

본 발명의 실시 예에 따른 시스템 온 칩은 코어 어레이 및 코어 컨트롤러를 포함할 수 있다. 코어 어레이는 복수의 CPU 코어를 포함하고, 할당된 테스크에 대한 복수의 CPU 코어 각각의 실행 결과를 생성할 수 있다. 코어 컨트롤러는 실행 결과를 기초로 복수의 CPU 코어의 결함 여부를 판단하고, 결함 있는 CPU 코어들을 포함하지 않도록 복수의 클러스터 각각을 재구성할 수 있다.

Description

코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법{SYSTEM ON CHIP COMPRISING CORE CONTROLLER AND CORE MANAGEMENT METHOD THEREOF}
본 발명은 시스템 온 칩에 관한 것으로, 보다 상세하게는 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법에 관한 것이다.
차량 시스템, 항공 시스템 등과 융합되는 IT 기술이 다양화됨에 따라, 이러한 시스템에 탑재되는 시스템 온 칩의 기능 및 종류도 다양화되고 있다. 또한, ADAS (Advanced Driver Assistance System)와 같은 고도의 지능과 정밀성을 보유한 운전자 보조 시스템의 개발이 차량 시스템, 항공 시스템 분야에서 활발히 이루어지고 있다. 이에 따라, 전장시스템의 중요성이 높아지고 있다.
전장 시스템은 외부환경의 인식 및 인식된 영상, 음성 또는 센서의 입력을 분석하여 차량, 항공 등의 운행에 직간접적으로 관여한다. 따라서 전장 시스템은 대량의 데이터를 실시간으로 분석하여 보행자를 인식하는 등의 결과를 추출하기 위한 다양한 기능을 필요로 한다. 결과적으로, 전장 시스템은 다양한 기능을 수행하는 시스템 온 칩을 요구한다.
항공 시스템, 자동차 시스템에 사용되는 시스템 온 칩은 고온의 환경에 노출되는 시간이 길다. 예를 들어, 엔진룸 근처에 설치되는 시스템 온 칩은 극심한 온도 변화를 겪게 되고, 이는 시스템 온 칩의 오작동의 가능성을 증가시킨다. 또한, 장기간 고온에 노출된 시스템 온 칩은 가속화된 NBTI(Negative-bias temperature instability) 현상에 의해 수명이 단축된다. 이러한 시스템 온 칩은 영구 고장이 발생할 가능성이 크다. 하지만, 항공 시스템, 차량 시스템 등은 사용자의 안전을 위해 이러한 환경에서도 높은 기능안정성을 갖는 시스템 온 칩을 필요로 한다.
본 발명의 목적은 CPU 코어들의 결함을 감지하고 결함을 수정하기 위한 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법를 제공하는데에 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 코어 어레이 및 코어 컨트롤러를 포함할 수 있다. 코어 어레이는 복수의 CPU 코어를 포함하고, 할당된 테스크에 대한 복수의 CPU 코어 각각의 실행 결과를 생성할 수 있다. 코어 컨트롤러는 실행 결과를 기초로 복수의 CPU 코어의 결함 여부를 판단하고, 결함 있는 CPU 코어들을 포함하지 않도록 복수의 클러스터 각각을 재구성할 수 있다.
본 발명의 실시 예에 따른 복수의 CPU 코어를 포함하는 코어 어레이와 공유 메모리를 포함하는 코어 컨트롤러를 포함하는 시스템 온 칩을 이용한 코어 관리 방법은 테스크 할당 단계, 재구성 단계, 데이터 읽기 단계, 수행 및 투표 단계, 결함 발견 단계, 데이터 쓰기 단계, 그리고 테스크 재시작 단계를 포함할 수 있다. 테스크 할당 단계는 코어 컨트롤러에 의해, 복수의 CPU 코어 중 적어도 하나를 포함하는 클러스터에 테스크를 할당할 수 있다. 재구성 단계는 코어 컨트롤러에 의해, 테스크를 할당받은 클러스터를 재구성할 수 있다. 데이터 읽기 단계는 테스크를 할당받은 클러스터에 의해, 테스크에 대한 프로그램 실행 정보 및 프로그램 진행 데이터를 공유 메모리로부터 읽을 수 있다. 수행 및 투표 단계는 테스크를 할당받은 클러스터에 의해 프로그램을 수행하고, 테스크를 할당받은 클러스터에 포함된 CPU 코어들에 의해 프로그램에 대한 실행 결과들을 생성하고, 코어 컨트롤러에 의해 실행 결과들이 일치하는지를 투표할 수 있다. 결함 발견 단계는 코어 컨트롤러에 의해, 실행 결과들이 다른 경우, 다른 실행 결과를 생성한 CPU 코어를 찾을 수 있다. 데이터 쓰기 단계는 코어 컨트롤러에 의해 결함 발견 단계의 결과에 따라 복수의 CPU 코어 각각에 대한 결함 카운트를 업데이트하고, 테스크를 할당받은 클러스터에 의해 공유 메모리에 할당받은 테스크에 대한 프로그램 실행 정보 및 진행 데이터를 쓸 수 있다. 테스크 재시작 단계는 코어 컨트롤러에 의해, 할당된 테스크를 복수의 CPU 코어 중 적어도 하나를 포함하는 클러스터에 다시 할당할 수 있다.
본 발명의 실시 예에 따르면, CPU 코어들의 결함을 감지하고 결함을 수정하는 시스템 온 칩 및 그것의 코어 관리 방법을 제공할 수 있다. 따라서, 복수의 CPU 코어가 집적되는 시스템 온 칩의 고장 감지 및 기능안정성을 향상시킬 수 있다.
본 발명의 실시 예들은 제한적인 방법으로서가 아니라 예로서 도시되었으며, 첨부 도면에서 유사한 참조 번호는 유사한 요소를 참조한다.
도 1은 본 발명의 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 2는 시스템 온 칩의 동작을 보여주는 순서도이다.
도 3은 도 1에 도시된 코어 컨트롤러를 예시적으로 보여주는 블록도이다.
도 4 내지 도 6은 본 발명의 다른 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 시스템 온 칩이 본 발명의 특징 및 기능을 설명하기 위한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다. 도 1을 참조하면, 시스템 온 칩(100)은 코어 어레이(110) 및 코어 컨트롤러(120)를 포함할 수 있다. 시스템 온 칩(100)은 코어 컨트롤러(120)에 의해 제 1 내지 제 4 클러스터(111~114)를 재구성할 수 있다.
코어 어레이(110)는 제 1 내지 제 4 클러스터(111~114)를 포함할 수 있다. 제 1 클러스터(111)는 제 1, 2, 6 CPU 코어(C01, C02, C06)를 포함할 수 있다. 제 2 클러스터(112)는 제 4, 5, 9 CPU 코어(C04, C05, C09)를 포함할 수 있다. 제 3 클러스터(113)는 제 3, 7, 8 CPU 코어(C03, C07, C08)를 포함할 수 있다. 제 4 클러스터(114)는 제 10 내지 제 12 CPU 코어(C10~C12)를 포함할 수 있다. 제 1 내지 제 4 클러스터(111~114)는 코어 컨트롤러(120)와 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT), 제어 신호(CTR), 그리고 공유 메모리 데이터(MDAT)를 교환한다. 제 1 내지 제 4 클러스터(111~114)는 코어 컨트롤러(120)로부터 테스크를 할당 받는다. 제 1 내지 제 4 클러스터(111~114)는 테스크 수행을 위한 프로그램을 실행하고, 제 1 내지 제 4 클러스터 실행 결과(CLT_01~CLT_04)를 코어 컨트롤러(120)에 제공한다. 제 1 내지 제 4 클러스터(111~114)는 제어 신호(CTR)에 의해 재구성된다.
프로그램 실행 정보(PC)는 코어 컨트롤러(120)가 제 1 내지 제 4 클러스터(111~114)에 테스크를 할당하는 경우에 테스크 수행에 필요한 프로그램들에 대한 정보이다. 예를 들어, 프로그램 실행 정보(PC)는 실행 프로그램 종류, 프로그램 실행 순서 등을 포함할 수 있다. 프로그램 진행 데이터(DAT)는 제 1 내지 제 4 클러스터(111~114)가 프로그램을 실행하기 위해 필요한 데이터들이다. 예를 들어, 프로그램 진행 데이터(DAT)는 입력 데이터, 프로그램을 구성하는 개별 단계들의 출력 데이터, 프로그램 환경 정보 등을 포함할 수 있다. 제어 신호(CTR)는 제 1 내지 제 4 클러스터(111~114)를 재구성하기 위한 신호이다. 예를 들어, 제어 신호(CTR)는 재구성에 의해 제 1 내지 제 4 클러스터(111~114) 각각에 포함될 CPU 코어들의 정보를 포함할 수 있다. 공유 메모리 데이터(MDAT)는 제 1 내지 제 4 클러스터(111~114)가 할당받은 테스크를 중단하는 경우, 재구성된 클러스터가 다시 테스크를 수행하기 위한 정보이다. 예를 들어, 메모리 데이터(MDAT)는 중단된 테스크에 대한 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT)등을 포함할 수 있다.
제 1 내지 제 4 클러스터(111~114)의 수, 제 1 내지 제 4 클러스터(111~114) 각각에 포함된 CPU 코어들의 수, 시스템 온 칩(100)을 구성하는 제 1 내지 제 12 CPU 코어(C01~C12)의 수는 예시적인 것이며, 도 1에 도시된 것에 한정되지 않는다. 예를 들어, 시스템 온 칩(100)은 4개 이상의 복수의 클러스터와 12개 이상의 복수의 CPU 코어들을 포함할 수 있다. 복수의 클러스터 각각은 3개 이상의 복수의 CPU 코어들을 포함할 수 있다.
제 1 내지 제 12 CPU 코어(C01~C12)는 테스크와 관련된 프로그램을 실행한다. 동일한 클러스트를 구성하는 CPU 코어들은 동일한 프로그램을 수행한다. 예를 들어, 제 1 클러스터(111)가 코어 컨트롤러(120)로부터 테스크를 할당받는 경우를 가정한다. 이 경우, 제 1 클러스터(111)를 구성하는 제 1, 2, 6 CPU 코어(C01, C02, C06) 각각은 할당된 테스크에 대한 동일한 프로그램을 실행하고, 실행 결과를 생성한다. 제 1 클러스터 실행 결과(CLT_O1)는 제 1, 2, 6 CPU 코어(C01, C02, C06)의 실행 결과를 포함한다. 이어, 제 1 클러스터 실행 결과(CLT_O1)는 코어 컨트롤러(120)에 제공된다.
코어 컨트롤러(120)는 공유 메모리(121)를 포함할 수 있다. 코어 컨트롤러(120)는 제 1 내지 제 4 클러스터(111~114)와 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT), 제어 신호(CTR), 그리고 공유 메모리 데이터(MDAT)를 교환한다. 코어 컨트롤러(120)는 테스크를 제 1 내지 제 4 클러스터(111~114)에 할당한다. 코어 컨트롤러(120)는 제 1 내지 제 4 클러스터(111~114)로부터 제 1 내지 제 4 클러스터 실행 결과(CLT_O1~CLT_O4)를 제공받는다. 코어 컨트롤러(120)는 제 1 내지 제 4 클러스터 실행 결과(CLT_O1~CLTO4)를 기초로 제 1 내지 제 4 클러스터(111~114) 각각을 구성하는 제 1 내지 제 12 CPU 코어(C01~C12) 중에 결함(Fault)이 있는지 판단한다. 코어 컨트롤러(120)는 제 1 내지 제 12 CPU 코어(C01~C12) 각각에 대한 결함 빈도를 카운트한다. 코어 컨트롤러(120)는 카운트 값을 기초로 하여 단기 결함 정보, 영구 결함 정보, 그리고 우선 순위 정보를 생성한다. 이어, 코어 컨트롤러(120)는 단기 결함 정보, 영구 결함 정보, 그리고 우선 순위 정보를 기초로 하여 제어 신호(CTR)를 생성한다. 코어 컨트롤러(120)는 제어 신호(CTR)를 통하여 제 1 내지 제 4 클러스터(111~114)를 재구성한다.
단기 결함 정보는 기준 시간 동안 제 1 내지 제 12 CPU 코어(C01~C12) 각각이 수행한 테스크에 대해 결함이 있는 결과를 생성하였는지 여부를 포함한다. 영구 결함 정보는 제 1 내지 제 12 CPU 코어(C01~C12) 각각의 카운트 값이 특정 값을 초과하였는지 여부를 포함한다. 코어 컨트롤러(120)는 특정 CPU 코어의 카운트 값이 기준 시간 내에 특정 값을 초과한 경우, 해당 CPU 코어를 영구 결함 CPU 코어로 판단하고 영구 결함 정보를 업데이트한다. 코어 컨트롤러(120)는 해당 CPU 코어에 일정 시간 동안 테스크를 할당하지 않는다. 우선 순위 정보는 카운트 정보를 기초로 생성된다. 제 1 내지 제 12 CPU 코어(C01~C12)의 우선 순위는 제 1 내지 제 12 CPU 코어(C01~C12) 각각의 결함 카운트의 역순에 의해 결정된다. 코어 컨트롤러(120)는 우선 순위가 높은 CPU 코어들을 먼저 포함하도록 제 1 내지 제 4 클러스터(111~114)를 재구성한다. 예를 들어, 코어 컨트롤러(120)는 제 1 내지 12 CPU 코어(C01~C12) 각각의 결함 빈도를 카운트하기 위한 복수의 카운터와 카운트 정보를 저장하기 위한 복수의 레지스터를 포함할 수 있다.
공유 메모리(121)는 테스크에 대한 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT), 제어 신호(CTR), 그리고 공유 메모리 데이터(MDAT)를 저장한다. 공유 메모리(121)는 제 1 내지 제 4 클러스터(111~114)에 의해 공유된다. 공유 메모리(121)는 상술한 정보들(PC, DAT, CTR, MDAT)을 공유하여 재구성된 제 1 내지 제 4 클러스터(111~114)가 프로그램을 중복으로 수행하는 것을 방지한다. 예를 들어, 공유 메모리(121)는 코어 컨트롤러(120) 외부에 개별 메모리 장치로 구현될 수 있다.
공유 메모리(121)는 동적 랜덤 접근 메모리(Dynamic random access memory, DRAM) 및 정적 랜덤 접근 메모리(Static random access memory, SRAM)를 포함하는 휘발성 메모리나, 불휘발성 메모리를 포함할 수 있다.
휘발성 메모리는 DRAM(Dynamic random access memory), SRAM(Static random access memory), TRAM(Thyristor RAM), Z-RAM(Zero capacitor RAM), 또는 TTRAM(Twin transistor RAM), MRAM을 포함할 수 있다.
불휘발성 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(Flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory:NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)일 수 있다. 불휘발성 메모리의 단위 셀에는 1비트 또는 그 이상의 비트들이 저장될 수 있다.
도 2는 시스템 온 칩의 동작을 보여주는 순서도이다. 도 2는 도 1을 참조하여 설명될 것이다. 도 2를 참조하면, 시스템 온 칩(100)은 제 1 내지 제 12 CPU 코어(C01~C12)의 단기 결함 및 영구 결함을 감지하고, 이를 기초로 하여 제 1 내지 제 4 클러스터(111~114)를 재구성할 수 있다.
S110 단계에서, 코어 컨트롤러(120)는 제 1 내지 제 4 클러스터(111~114)에 테스크를 할당한다. 상술한 테스크는 이전의 프로세싱 단계에서 발견된 결함에 의하여 재실행되는 테스크일 수 있다. 혹은, 상술한 테스크는 새롭게 할당된 테스크일 수 있다. 이하에서는 코어 컨트롤러(120)가 제 1 클러스터(111)에 새로운 테스크를 할당한다고 가정한다.
S120 단계에서, 코어 컨트롤러(120)는 단기 결함 정보, 영구 결함 정보, 그리고 우선 순위 정보를 기초로 제 1 클러스터(111)를 재구성한다. 코어 컨트롤러(120)는 단기 결함 정보를 기초로 기준 시간 내에 결함이 발견된 CPU 코어를 제 1 클러스터(111)의 재구성시에 제외한다. 또한, 코어 컨트롤러(120)는 영구 결함 정보를 기초로 영구 결함이 있는 CPU 코어를 제 1 클러스터(111)의 재구성시에 제외한다. 이어, 코어 컨트롤러(120)는 우선 순위 정보를 기초로 하여 제 1 클러스터(111)가 우선 순위가 높은 CPU 코어들을 포함하도록 재구성 정보를 생성한다. 코어 컨트롤러(120)는 재구성 정보에 따라 제 1 클러스터(111)를 재구성하기 위한 제어 신호(CTR)를 생성한다. 코어 컨트롤러(120)는 제어 신호(CTR)를 통하여 제 1 클러스터(111)를 재구성한다.
S130 단계에서, 제 1 클러스터(111)는 공유 메모리(121)로부터 할당받은 테스크에 대한 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT), 그리고 공유 메모리 데이터(MDAT)를 읽어 온다. 해당 테스크가 재실행되는 테스크인 경우, 공유 메모리(121)는 이전의 프로세싱 단계에서 실행된 프로그램에 대한 정보들(PC, DAT, MDAT) 저장하고 있다. 제 1 클러스터(111)는 공유 메모리(121)에 저장된 해당 테스크에 대한 정보들(PC, DAT, MDAT)을 참조하여 중복된 프로그램의 실행을 생략한다.
S140 단계에서, 제 1 클러스터(111)는 프로그램을 수행하고, 코어 컨트롤러(120)는 수행 결과들을 투표한다. 제 1 클러스터(111)는 수행한 프로그램에 대한 제 1, 2, 6 CPU 코어(C01, C02, C06)의 제 1 클러스터 실행 결과(CLT_O1)를 코어 컨트롤러(120)에 제공한다. 코어 컨트롤러(120)는 클러스터 실행 결과(CLT_O1) 중에 결함이 있는지를 판단하기 위해 클러스터 실행 결과(CLT_O1)를 투표한다.
S150 단계에서, 코어 컨트롤러(120)는 제 1, 2, 6 CPU 코어(C01, C02, C06) 중 결함이 있는 CPU 코어를 찾는다. 예를 들어, 동일한 프로그램에 대해 제 1, 2 CPU 코어(C01, C02)는 로직 '1'을 출력하고, 제 6 CPU 코어(C06)는 로직 '0'을 출력한 경우를 가정한다. 이 경우, 코어 컨트롤러(120)는 제 6 CPU 코어(C06)에 결함이 있다고 판단한다. 코어 컨트롤러(120)가 결함을 발견한 경우(Yes 방향), 코어 컨트롤러(120)의 절차는 S160 단계로 진행한다. 예를 들어, 이 경우에 코어 컨트롤러(120)는 결함이 발견된 제 6 CPU 코어(C06)의 전원을 차단할 수 있다. 반면에 코어 컨트롤러(120)가 결함을 발견하지 못한 경우(No 방향), 코어 컨트롤러(120)의 절차는 S180 단계로 진행한다.
S160 단계에서, 코어 컨트롤러(120)는 결함 카운트를 업데이트한다. 상술한 예에서, 코어 컨트롤러(120)는 제 6 CPU 코어(C06)의 결함 카운트를 업데이트한다. 코어 컨트롤러(120)는 업데이트된 카운트 정보에 의해 새로운 단기 결함 정보, 영구 결함 정보, 그리고 우선순위 정보를 생성한다.
S170 단계에서, 제 1 클러스터(111)는 S150 단계까지 수행한 프로그램의 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT), 그리고 공유 메모리 데이터(MDAT)를 공유 메모리(121)에 저장한다. 이후, 코어 컨트롤러(120)는 제 1 클러스터(111)를 다시 재구성한다(S120).
S180 단계에서, 코어 컨트롤러(120)는 제 1 클러스터(111)가 할당된 테스크의 수행을 완료하였는지 여부를 판단한다. 제 1 클러스터(111)가 할당된 테스크를 완료하지 못한 경우(No 방향), 제 1 클러스터(111)는 테스크에 대한 다음 프로그램을 수행한다(S140). 반면에 제 1 클러스터(111)가 할당된 테스크를 완료한 경우(Yes 방향), 제 1 클러스터(111)는 프로그램의 수행을 종료한다.
이상의 실시 예에 의해, 시스템 온 칩(100)은 제 1 내지 제 12 CPU 코어(C01~C12)의 단기 결함 또는 영구 결함을 감지할 수 있다. 또한, 시스템 온 칩(100)은 결함을 발견한 경우, 해당 테스크의 동적 할당을 통하여 시스템 온 칩(100)의 기능 안정성을 향상시킬 수 있다. 예를 들어, 시스템 온 칩(100)이 고온으로 인한 제 1 내지 제 12 CPU 코어(C01~C12)의 영구 결함 및 일시 결함을 감지한 경우, 시스템 온 칩(100)은 해당 CPU 코어에서 실행 중인 테스크를 다른 잉여 CPU 코어에 할당한다. 시스템 온 칩(100)은 결함이 발생한 CPU 코어의 전원을 차단하여 온도가 떨어지도록 유도한다. 이후, 해당 CPU 코어는 일정 시간이 경과한 후에 다시 테스크를 할당받는다. 이러한 과정에 의해, 시스템 온 칩(100)은 다중 CPU 코어 시스템이 안정적으로 동작하도록 관리할 수 있다.
도 3은 도 1에 도시된 코어 컨트롤러를 예시적으로 보여주는 블록도이다. 도 3은 도 1을 참조하여 설명될 것이다. 도 3을 참조하면, 코어 컨트롤러(120)는 공유 메모리(121), 글로벌 보터(122)(Global Voter), 결함 코어 매니저(123), 그리고 클러스터 컨트롤러(124)를 포함할 수 있다.
공유 메모리(121)는 프로그램 실행 정보(PC), 프로그램 진행 데이터(DAT), 제어 신호(CTR), 그리고 공유 메모리 데이터(MDAT)를 저장하고 제 1 내지 제 4 클러스터(111~114)에 제공한다.
글로벌 보터(122)는 제 1 내지 제 4 클러스터(111~114) 및 결함 코어 매니저(123)와 연결된다. 글로벌 보터(122)는 제 1 내지 제 4 클러스터(111~114)로부터 제 1 내지 제 4 클러스터 실행 결과(CLT_O1~CLT_O4)를 제공받는다. 글로벌 보터(122)는 제 1 내지 제 4 클러스터 실행 결과(CLT_01~CLT_O4) 각각을 투표한다. 글로벌 보터(122)는 투표를 통해 제 1 내지 제 4 클러스터(111~114) 각각에 결함이 있는지 여부를 판단하고 결함이 있는 CPU 코어들을 찾는다. 글로벌 보터(122)는 판단 결과를 기초로 제 1 내지 제 4 투표 결과(OUT1~OUT4)를 생성한다. 글로벌 보터(122)는 생성된 제 1 내지 제 4 투표 결과(OUT1~OUT4)를 결함 코어 매니저(123)에 제공한다. 예를 들어, 글로벌 보터(122)는 제 1 내지 제 4 클러스터(111~114)에 대해 복수의 투표기(Voter)를 포함할 수 있다. 예를 들어, 각각의 투표기는 XOR 게이트로 구성될 수 있다.
결함 코어 매니저(123)는 글로벌 보터(122) 및 클러스터 컨트롤러(124)와 연결된다. 글로벌 보터(122)는 제 1 내지 제 4 투표 결과(OUT1~OUT4)를 기초로 결함이 발견된 CPU 코어들에 대한 단기 결함 정보를 생성한다. 결함 코어 매니저(123)는 제 1 내지 제 4 투표 결과를 기초로 제 1 내지 제 12 CPU 코어(C01~C12) 각각에 대한 결함 빈도를 카운트한다. 결함 코어 매니저(123)는 상술한 카운트 값을 기초로 영구 결함 정보와 우선 순위 정보를 생성한다. 결함 코어 매니저(123)는 생성한 단기 결함 정보, 영구 결함 정보, 그리고 우선 순위 정보를 클러스터 컨트롤러(124)에 제공한다. 예를 들어, 결함 코어 매니저(123)는 제 1 내지 제 12 CPU 코어(C01~C12) 각각의 결함 빈도를 카운트하기 위한 복수의 카운터와 카운트 정보를 저장하기 위한 복수의 레지스터를 포함할 수 있다.
클러스터 컨트롤러(124)는 제공받은 단기 결함 정보, 영구 결함 정보, 그리고 우선 순위 정보를 바탕으로 제 1 내지 제 4 클러스터(111~114)를 재구성하기 위한 제어 신호(CTR)를 생성한다. 생성된 제어 신호(CTR)는 제 1 내지 제 4 클러스터(111~114)에 제공되어 제 1 내지 제 4 클러스터(111~114)를 재구성한다.
도 4 내지 도 6은 본 발명의 다른 실시 예에 따른 시스템 온 칩을 보여주는 블록도이다.
도 4를 참조하면, 시스템 온 칩(200)은 코어 어레이(210) 및 코어 컨트롤러(220)를 포함할 수 있다. 코어 어레이(210)는 제 1 내지 제 3 스페어 코어(SC1~SC3)를 포함할 수 있다. 제 1 내지 제 3 스페어 코어(SC1~SC3)를 제외하고, 도 4의 시스템 온 칩(200)은 도 1의 시스템 온 칩(200)과 구성 및 동작이 동일하다. 따라서 이에 대한 설명은 생략한다.
제 1 내지 제 3 스페어 코어(SC1~SC3)는 제 1 내지 제 12 CPU 코어(C01~C12)와 동일한 구성을 포함할 수 있다. 제 1 내지 제 3 스페어 코어(SC1~SC3)는 처음 제 1 내지 제 4 클러스터(211~214)의 구성시에 낮은 우선 순위를 갖는다. 이후, 제 1 내지 제 3 스페어 코어(SC1~SC3)는 코어 컨트롤러(220)가 결함이 있는 CPU 코어를 발견한 경우에 사용 여부가 결정된다. 예를 들어, 코어 컨트롤러(220)가 테스크가 할당된 제 1 클러스터(211)의 제 1 CPU 코어(C01)의 결함을 발견한 경우를 가정한다. 이 경우, 제 2 내지 제 12 CPU 코어(C02~C12)는 테스크를 할당받아 프로그램을 수행 중일 수 있다. 이후, 코어 컨트롤러(220)는 결함이 발견된 제 1 CPU 코어(C01) 대신에 제 1 내지 제 3 스페어 코어(SC1~SC3) 중 하나를 포함하도록 제 1 클러스터(211)를 재구성한다.
시스템 온 칩(200)은 제 1 내지 제 12 CPU 코어(C01~C12) 외에 여유분의 제 1 내지 제 3 스페어 코어(SC1~SC3)를 포함한다. 상술한 바와 같이, 제 1 내지 제 3 스페어 코어(SC1~SC3)는 코어 컨트롤러(220)가 결함을 발견하는 경우에 우선적으로 사용된다. 따라서, 시스템 온 칩(200)은 제 1 내지 제 4 클러스터(211~214)의 재구성에 필요한 연산을 줄일 수 있다. 또한, 시스템 온 칩(200)은 제 1 내지 제 12 CPU 코어(C01~C12)의 사용 빈도를 조절할 수 있다. 결과적으로 시스템 온 칩(200)은 CPU 코어들을 효율적으로 관리할 수 있다.
도 5를 참조하면, 시스템 온 칩(300)은 코어 어레이(310) 및 코어 컨트롤러(320)를 포함할 수 있다. 도 5의 시스템 온 칩(300)은 도 1의 시스템 온 칩(100)과 동일한 구성을 포함한다. 도 5의 시스템 온 칩(300)은 테스크의 중요도에 따라 제 1 내지 제 4 클러스터(311~314)가 포함하는 CPU 코어들의 수를 유동적으로 제어할 수 있다.
시스템 온 칩(300)의 동작은 다음과 같다. 먼저, 코어 컨트롤러(320)는 테스크 각각에 대한 중요도 정보를 생성한다. 코어 컨트롤러(320)는 중요도 정보에 따라 테스크를 할당한 제 1 내지 제 4 클러스터(311~314)가 포함하는 CPU 코어의 수를 제어한다. 예를 들어, 코어 컨트롤러(320)가 중요도가 높은 테스크 1개, 중요도가 중간인 테스크 2개, 중요도가 낮은 테스크 1개를 제 1 내지 제 4 클러스터(311~314)에 할당한다고 가정한다. 코어 컨트롤러(320)는 중요도가 높은 테스크를 제 1 클러스터(311)에 할당할 수 있다. 이 경우, 제 1 클러스터(311)는 제 1 내지 제 3, 6, 9 CPU 코어(C01~C03, C06, C09)를 포함할 수 있다. 이는 다수의 CPU 코어들에 의해 중요도가 높은 테스크를 수행하도록 하여 연산의 정확도를 높이기 위함이다.
이어, 코어 컨트롤러(320)는 중요도가 낮은 테스크를 제 2 클러스터(312)에 할당할 수 있다. 이 경우, 제 2 클러스터(312)는 제 4 CPU 코어(C04)를 포함할 수 있다. 이는 중요도가 낮은 테스크를 단일의 CPU 코어에 의해 수행하여 CPU 코어 사용 효율을 향상시키기 위함이다. 또한, 코어 컨트롤러(320)는 중간의 중요도를 갖는 테스크를 제 3 및 제 4 클러스터(313, 314) 각각에 할당할 수 있다. 이 경우, 제 3 클러스터(313)는 제 5, 7, 8 CPU 코어(C05, C07, C08)를 포함할 수 있다. 또한, 제 4 클러스터(314)는 제 10 내지 제 12 CPU 코어(C10~C12)를 포함할 수 있다. 즉, 도 5의 시스템 온 칩(300)은 테스크의 중요도에 따라 제 1 내지 제 4 클러스터(311~314)가 포함하는 CPU 코어의 수를 제어하여 연산의 정확도 및 CPU 코어의 사용 효율을 향상시킬 수 있다. 예를 들어, 시스템 온 칩(300)은 도 4의 제 1 내지 제 3 스페어 코어(SC01~SC03)의 구성을 더 포함할 수 있다.
할당된 테스크의 중요도에 따라 제 1 내지 제 4 클러스터(311~314)가 포함하는 CPU 코어들의 수는 도 5에 한정되지 않는다. 상술한 바를 제외하고, 도 5의 시스템 온 칩(300)은 도 1의 시스템 온 칩(100)과 구성 및 동작이 동일하다. 따라서, 이에 대한 자세한 설명은 생략한다.
도 6을 참조하면, 시스템 온 칩(400)은 코어 어레이(410), 코어 컨트롤러(420), 그리고 환경 감지 회로(430)를 포함할 수 있다. 환경 감지 회로(430)를 제외하고, 도 6의 시스템 온 칩(400)은 도 1의 시스템 온 칩(100)과 구성 및 동작이 동일하다. 따라서, 이에 대한 자세한 설명은 생략한다. 도 6의 시스템 온 칩(400)은 환경 감지 회로(430)의 감지 결과에 따라 제 1 내지 제 4 클러스터(411~414)가 포함하는 CPU 코어들의 수를 유동적으로 제어할 수 있다.
환경 감지 회로(430)는 코어 컨트롤러(420)와 연결된다. 환경 감지 회로(430)는 시스템 온 칩(400)의 동작 환경을 감지한다. 예를 들면, 동작 환경은 시스템 온 칩(400) 외부의 온도, 습도, 진동 등을 포함할 수 있다. 예를 들면, 환경 감지 회로(430)는 온도 감지 센서, 진동 감지 센서, 수분 감지 센서 등을 포함할 수 있다.
코어 컨트롤러(420)는 환경 감지 회로(430)의 감지 결과에 따라 제 1 내지 제 4 클러스터(411~414)가 포함하는 CPU 코어들의 수를 유동적으로 제어한다. 예를 들어, 시스템 온 칩(400)이 외부의 높은 온도의 환경에서 동작하는 경우를 가정한다. 예를 들어, 시스템 온 칩(400)이 엔진 룸 주변에서 동작할 수 있다. 이 경우, 시스템 온 칩(400)의 동작 오류가 발생할 확률이 높아진다. 따라서, 코어 컨트롤러(420)는 제 1 내지 제 4 클러스터(411~414)가 포함하는 CPU 코어의 수를 증가시킨다. 혹은, 시스템 온 칩(400)은 건조하고 외부의 진동이 적은 환경에서 동작할 수 있다. 이 경우, 코어 컨트롤러(420)는 제 1 내지 제 4 클러스터(411~414)가 포함하는 CPU 코어의 수를 감소시킨다. 즉, 도 6의 시스템 온 칩(400)은 동작 환경을 감지하여 제 1 내지 제 4 클러스터(411~414)의 연산의 정확도 및 CPU 코어의 사용 효율을 향상시킬 수 있다. 예를 들어, 시스템 온 칩(400)은 도 4의 제 1 내지 제 3 스페어 코어(SC01~SC03)의 구성을 더 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100, 200, 300, 400 : 시스템 온 칩
110, 210, 310, 410 : 코어 어레이
111, 211, 311, 411 : 제 1 클러스터
112, 212, 312, 412 : 제 2 클러스터
113, 213, 313, 413 : 제 3 클러스터
114, 214, 314, 414 : 제 4 클러스터
120, 220, 320, 420 : 코어 컨트롤러
121, 221, 321, 421 : 공유 메모리
122 : 글로벌 보터
123 : 결함 코어 매니저
124 : 클러스터 컨트롤러
430 : 환경 감지 회로

Claims (17)

  1. 할당된 테스크에 대한 각각의 실행 결과를 생성하는 복수의 CPU 코어를 포함하는 코어 어레이; 그리고
    상기 실행 결과를 기초로 상기 복수의 CPU 코어 각각의 결함 여부를 판단하고, 상기 판단 결과를 참조하여 클러스터를 재구성하는 코어 컨트롤러를 포함하는 시스템 온 칩.
  2. 제 1 항에 있어,
    상기 코어 컨트롤러는 상기 복수의 CPU 코어 각각의 결함 빈도를 카운트하여 카운트 정보를 생성하고, 상기 카운트 정보를 기초로 하여 상기 복수의 CPU 코어 각각의 재구성 우선순위를 결정하고, 상기 재구성 우선순위 정보를 기초로 하여 상기 클러스터를 재구성하는 시스템 온 칩.
  3. 제 2 항에 있어,
    상기 코어 컨트롤러는 상기 복수의 CPU 코어 각각의 상기 카운트 정보가 특정 값을 초과하였는지 여부를 판단하여 영구 결함 정보를 생성하고, 상기 영구 결함 정보 및 상기 재구성 우선순위 정보를 기초로 하여 상기 클러스터를 재구성하는 시스템 온 칩.
  4. 제 3 항에 있어,
    상기 코어 컨트롤러는,
    프로그램 실행 정보 및 프로그램 진행 데이터를 저장하고, 상기 저장된 정보 및 데이터가 상기 클러스터에 의해 공유되는 공유 메모리;
    상기 실행 결과를 분석하여 상기 복수의 CPU 코어의 결함 여부를 판단하는 글로벌 보터;
    상기 복수의 CPU 코어 각각의 결함 빈도를 카운트하여 상기 카운트 정보를 생성하는 카운터와 상기 카운트 정보를 저장하는 레지스터를 포함하고, 상기 카운트 정보를 기초로 하여 상기 재구성 우선순위 및 상기 영구 결함 정보를 생성하는 결함 코어 매니저; 그리고
    상기 재구성 우선순위 및 상기 영구 결함 정보를 기초로 하여 결함 있는 CPU 코어들을 포함하지 않도록 상기 클러스터를 재구성하는 클러스터 컨트롤러를 포함하는 시스템 온 칩.
  5. 제 1 항에 있어,
    상기 코어 어레이는 복수의 스페어 CPU 코어를 더 포함하고,
    상기 코어 컨트롤러는 상기 클러스터의 재구성시, 결함 있는 CPU 코어를 상기 복수의 스페어 CPU 중 어느 하나로 대체하는 시스템 온 칩.
  6. 제 1 항에 있어,
    상기 코어 컨트롤러는 상기 클러스터에 테스크를 할당하고, 상기 할당한 테스크의 중요도에 따라 상기 클러스터에 포함되는 CPU 코어의 수를 제어하는 시스템 온 칩.
  7. 제 6 항에 있어,
    상기 코어 어레이는 복수의 스페어 CPU 코어를 더 포함하고,
    상기 코어 컨트롤러는 상기 클러스터의 재구성시, 결함 있는 CPU 코어를 상기 복수의 스페어 CPU 중 어느 하나로 대체하는 시스템 온 칩.
  8. 제 1 항에 있어,
    상기 시스템 온 칩의 동작 환경을 감지하는 환경 감지 회로를 더 포함하되,
    상기 코어 컨트롤러는 상기 환경 감지 회로의 결과에 따라, 상기 클러스터에 포함되는 CPU 코어의 수를 제어하는 시스템 온 칩.
  9. 제 8 항에 있어,
    상기 환경 감지 회로는 온도 감지 센서, 진동 감지 센서, 수분 감지 센서 중 적어도 하나를 포함하는 시스템 온 칩.
  10. 제 9 항에 있어,
    상기 코어 어레이는 복수의 스페어 CPU 코어를 더 포함하고,
    상기 코어 컨트롤러는 상기 클러스터의 재구성시, 결함 있는 CPU 코어를 상기 복수의 스페어 CPU 중 어느 하나로 대체하는 시스템 온 칩.
  11. 제 1 항에 있어,
    상기 시스템 온 칩은 차량용 반도체인 시스템 온 칩.
  12. 복수의 CPU 코어를 포함하는 코어 어레이와 공유 메모리를 포함하는 코어 컨트롤러를 포함하는 시스템 온 칩을 이용한 코어 관리 방법에 있어서,
    상기 코어 컨트롤러에 의해, 상기 복수의 CPU 코어 중 적어도 하나를 포함하는 클러스터에 테스크를 할당하는 테스크 할당 단계;
    상기 코어 컨트롤러에 의해, 상기 테스크를 할당받은 클러스터를 재구성하는 재구성 단계;
    상기 테스크를 할당받은 클러스터에 의해, 상기 테스크에 대한 프로그램 실행 정보 및 프로그램 진행 데이터를 상기 공유 메모리로부터 읽는 데이터 읽기 단계;
    상기 테스크를 할당받은 클러스터에 의해 상기 테스크에 대한 프로그램을 수행하고, 상기 테스크를 할당받은 클러스터에 포함된 CPU 코어들에 의해 상기 프로그램에 대한 실행 결과들을 생성하고, 상기 코어 컨트롤러에 의해 상기 실행 결과들이 일치하는지를 투표하는 수행 및 투표 단계;
    상기 코어 컨트롤러에 의해, 상기 실행 결과들이 다른 경우에 다른 실행 결과를 생성한 CPU 코어를 찾는 결함 검출 단계;
    상기 코어 컨트롤러에 의해 상기 결함 검출 단계의 결과에 따라 상기 복수의 CPU 코어 각각에 대한 결함 카운트를 업데이트하고, 상기 테스크를 할당받은 클러스터에 의해 상기 공유 메모리에 상기 할당받은 테스크에 대한 프로그램 실행 정보 및 진행 데이터를 쓰는 데이터 쓰기 단계; 그리고
    상기 코어 컨트롤러에 의해, 상기 할당된 테스크를 상기 복수의 CPU 코어 중 적어도 하나를 포함하는 클러스터에 다시 할당하는 테스크 재시작 단계를 포함하는 코어 관리 방법.
  13. 제 12 항에 있어,
    상기 재구성 단계에서 단기 결함 정보, 재구성 우선순위 정보, 그리고 영구 결함 정보를 기초로 하여 상기 테스크를 할당받은 클러스터가 재구성되는 코어 관리 방법.
  14. 제 13 항에 있어,
    상기 단기 결함 정보, 상기 재구성 우선순위 정보, 그리고 상기 영구 결함 정보는 상기 코어 컨트롤러에 의해 생성되는 코어 관리 방법.
  15. 제 13 항에 있어,
    상기 단기 결함 정보는 상기 결함 검출 단계에 의해 상기 테스크를 할당받은 클러스터에 포함된 CPU 코어들에 결함이 있는지 여부를 포함하는 코어 관리 방법.
  16. 제 13 항에 있어,
    상기 재구성 우선순위 정보는 상기 복수의 CPU 코어 각각의 상기 결함 카운트를 순서대로 나열한 정보를 포함하는 코어 관리 방법.
  17. 제 13 항에 있어,
    상기 영구 결함 정보는 상기 복수의 CPU 코어 각각의 상기 결함 카운트가 특정 값을 초과하였는지 여부를 포함하는 코어 관리 방법.
KR1020160028445A 2016-03-09 2016-03-09 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법 KR102018541B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160028445A KR102018541B1 (ko) 2016-03-09 2016-03-09 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160028445A KR102018541B1 (ko) 2016-03-09 2016-03-09 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법

Publications (2)

Publication Number Publication Date
KR20170105343A true KR20170105343A (ko) 2017-09-19
KR102018541B1 KR102018541B1 (ko) 2019-09-06

Family

ID=60033350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160028445A KR102018541B1 (ko) 2016-03-09 2016-03-09 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법

Country Status (1)

Country Link
KR (1) KR102018541B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021206374A1 (ko) * 2020-04-06 2021-10-14 삼성전자 주식회사 전자 장치 및 이를 이용한 태스크 스케쥴링 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3908020B2 (ja) * 2001-11-30 2007-04-25 株式会社デンソー 車両用電子制御装置
JP2010020743A (ja) * 2008-07-10 2010-01-28 Internatl Business Mach Corp <Ibm> 複数のコアを含むプロセッサを有するコンピュータ・システムの制御
KR101177059B1 (ko) * 2011-01-17 2012-08-28 전자부품연구원 병렬 제어 모듈을 동적으로 할당하는 방법
JP5631848B2 (ja) * 2003-07-11 2014-11-26 ヨジテック・ソシエタ・ペル・アチオニYOGITECH Spa 信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム
KR101594453B1 (ko) * 2015-09-21 2016-02-26 국방과학연구소 채널 고장 진단 장치 및 그 진단 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3908020B2 (ja) * 2001-11-30 2007-04-25 株式会社デンソー 車両用電子制御装置
JP5631848B2 (ja) * 2003-07-11 2014-11-26 ヨジテック・ソシエタ・ペル・アチオニYOGITECH Spa 信頼性のあるマイクロコントローラ並びにその設計方法及びそのためのコンピュータプログラム
JP2010020743A (ja) * 2008-07-10 2010-01-28 Internatl Business Mach Corp <Ibm> 複数のコアを含むプロセッサを有するコンピュータ・システムの制御
KR101177059B1 (ko) * 2011-01-17 2012-08-28 전자부품연구원 병렬 제어 모듈을 동적으로 할당하는 방법
KR101594453B1 (ko) * 2015-09-21 2016-02-26 국방과학연구소 채널 고장 진단 장치 및 그 진단 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021206374A1 (ko) * 2020-04-06 2021-10-14 삼성전자 주식회사 전자 장치 및 이를 이용한 태스크 스케쥴링 방법

Also Published As

Publication number Publication date
KR102018541B1 (ko) 2019-09-06

Similar Documents

Publication Publication Date Title
Emmert et al. Dynamic fault tolerance in FPGAs via partial reconfiguration
JP7433029B2 (ja) 作業負荷の繰り返し冗長化
US9372750B2 (en) Method and apparatus for non-volatile RAM error re-mapping
US7774590B2 (en) Resiliently retaining state information of a many-core processor
EP4350520A2 (en) Buffer checker
US20060212677A1 (en) Multicore processor having active and inactive execution cores
US9513911B2 (en) Method of detecting stack overflows and processor for implementing such a method
US11157374B2 (en) Technologies for efficient reliable compute operations for mission critical applications
US9443613B2 (en) Advanced memory test diagnostics
US11386973B2 (en) Method and apparatus for built in redundancy analysis with dynamic fault reconfiguration
US20210124655A1 (en) Dynamic Configurable Microcontroller Recovery
WO2018212870A1 (en) High-volume, low-latency data processing in flexibly configured local heterogeneous computing environments
KR102018541B1 (ko) 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법
US10049037B2 (en) Data management in a storage system
Oh et al. BIRA with optimal repair rate using fault-free memory region for area reduction
US11907070B2 (en) Methods and apparatus for managing register free lists
JP6993472B2 (ja) 深層学習チップを検出する方法、装置、電子機器、およびコンピュータ記憶媒体
US20100011183A1 (en) Method and device for establishing an initial state for a computer system having at least two execution units by marking registers
TWI620191B (zh) 依記憶體模組之物理位址範圍測試記憶體之系統及方法
CN112133360A (zh) 存储器管理设备、系统和方法
CN114780283B (zh) 一种故障处理的方法及装置
WO2022089505A1 (zh) 一种错误检测方法及相关装置
CN114356808A (zh) 微控制器的外部存储器中数据的访问方法
US20170249083A1 (en) Electronic apparatus and control method thereof
JP2018013988A (ja) 制御装置、制御方法および制御プログラム、ならびに、組込み機器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right