KR20200066124A - 기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법 - Google Patents

기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20200066124A
KR20200066124A KR1020190020775A KR20190020775A KR20200066124A KR 20200066124 A KR20200066124 A KR 20200066124A KR 1020190020775 A KR1020190020775 A KR 1020190020775A KR 20190020775 A KR20190020775 A KR 20190020775A KR 20200066124 A KR20200066124 A KR 20200066124A
Authority
KR
South Korea
Prior art keywords
recognition result
recognition
nanocores
processor
processor core
Prior art date
Application number
KR1020190020775A
Other languages
English (en)
Other versions
KR102408936B1 (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 US16/694,899 priority Critical patent/US11176395B2/en
Publication of KR20200066124A publication Critical patent/KR20200066124A/ko
Application granted granted Critical
Publication of KR102408936B1 publication Critical patent/KR102408936B1/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Processing (AREA)

Abstract

본 발명에 따른 영상 인식 프로세서는, 각각 명령어에 응답하여 입력 피처를 커널 계수를 사용하여 패턴 인식 연산을 수행하는 행과 열로 배열되는 복수의 나노 코어들, 상기 복수의 나노 코어들 각각에 상기 명령어를 제공하는 명령어 메모리, 상기 복수의 나노 코어들 각각에 상기 입력 피처를 제공하는 피처 메모리, 상기 복수의 나노 코어들에 상기 커널 계수를 제공하는 커널 메모리, 그리고 상기 복수의 나노 코어들로부터 출력되는 패턴 인식 연산의 결과를 수신하여 인식 오류의 존재 여부를 검출하고, 검출된 인식 오류에 대해 오류 허용 기능을 수행하는 기능 안전 프로세서 코어를 포함하되, 상기 기능 안전 프로세서 코어는, 제 1 구동 전압 및 제 1 구동 클록에 의해서 구동되는 제 1 프로세서, 제 2 구동 전압 및 제 2 구동 클록에 의해서 구동되며, 상기 제 1 프로세서와 동일한 작업을 수행하는 제 2 프로세서를 포함하고, 상기 제 1 구동 전압과 상기 제 2 구동 전압 각각은 상호 독립적인 전압 레귤레이터로부터 공급되고, 상기 제 1 구동 클록과 상기 제 2 구동 클록 각각은 상호 독립적인 클록 발생기들로부터 제공된다.

Description

기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법{IMAGE RECOGNITION PROCESSOR INCLUDING FUNCTIONAL SAFETY PROCESSOR CORE AND OPERATION METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 좀더 상세하게는 인식된 패턴에 대한 오류 검출 및 오류 방지 기능을 수행하는 기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법에 관한 것이다.
최근에는 자동차나 다양한 운송 시스템 등에서는 ADAS(Advanced Driver Assistance System)이나 자율 주행을 위한 고도의 지능과 정밀성을 요구하는 시스템의 개발이 활발히 이루어지고 있다. 특히, 외부 환경의 인식 및 인식된 영상, 음성 또는 센서들의 입력을 분석하여 자동차를 제어하기 위해서는 대량의 데이터를 실시간으로 분석하고 처리하기 위한 성능이 요구된다. 이러한 시스템에서는 사소한 인식 오류도 대형 사고를 유발할 수 있기 때문에 센서 데이터의 인식을 수행하는 프로세서 시스템의 신뢰성(Reliability)은 특히 중요하다.
이와 같이, 센서 데이터를 처리하여 그 패턴을 인식하는 장치는 자동차, 비행기 등 가혹한 환경에서 동작하기 위해 결함 허용(Fault tolerance) 기능을 포함하도록 설계되어야 한다. 심층 신경망(Deep Neural Network) 시스템과 같은 패턴 인식 시스템에서는 많은 수의 CPU 코어들을 사용하는 분산 컴퓨팅 기법을 사용하고 있다. 특히, 다양한 오류나 결함에 기인한 인식 오류를 검출하고, 검출된 인식 오류를 복구할 수 있는 기술은 여전히 많은 연구가 필요한 실정이다.
본 발명은 반도체 내에 센서 데이터를 처리하여 패턴을 인식하는 프로세서의 동작 오류를 검출하고, 센서 데이터 처리 결과의 특성을 이용하여 검출된 오류를 감내할 수 있는 기능을 갖는 영상 인식 프로세서를 제공하기 위한 것이다.
본 발명의 일 실시 예에 따른 영상 인식 프로세서는, 각각 명령어에 응답하여 입력 피처를 커널 계수를 사용하여 패턴 인식 연산을 수행하는 행과 열로 배열되는 복수의 나노 코어들, 상기 복수의 나노 코어들 각각에 상기 명령어를 제공하는 명령어 메모리, 상기 복수의 나노 코어들 각각에 상기 입력 피처를 제공하는 피처 메모리, 상기 복수의 나노 코어들에 상기 커널 계수를 제공하는 커널 메모리, 그리고 상기 복수의 나노 코어들로부터 출력되는 패턴 인식 연산의 결과를 수신하여 인식 오류의 존재 여부를 검출하고, 검출된 인식 오류에 대해 오류 허용 기능을 수행하는 기능 안전 프로세서 코어를 포함하되, 상기 기능 안전 프로세서 코어는, 제 1 구동 전압 및 제 1 구동 클록에 의해서 구동되는 제 1 프로세서, 제 2 구동 전압 및 제 2 구동 클록에 의해서 구동되며, 상기 제 1 프로세서와 동일한 작업을 수행하는 제 2 프로세서를 포함하고, 상기 제 1 구동 전압과 상기 제 2 구동 전압 각각은 상호 독립적인 전압 레귤레이터로부터 공급되고, 상기 제 1 구동 클록과 상기 제 2 구동 클록 각각은 상호 독립적인 클록 발생기들로부터 제공된다.
상술한 본 발명의 실시 예에 따른 영상 인식 프로세서는 센서 장치나 센서 데이터를 처리하는 과정에서 발생하는 일시적 오류나 영구적 오류로 인한 오동작 가능성을 낮출 수 있다. 따라서, 영상 인식 프로세서에서 센서 데이터의 인식률 한계에 따른 반도체 오동작을 방지할 수 있을 것으로 기대된다.
도 1은 본 발명의 실시 예에 따른 영상 인식 프로세서를 간략히 보여주는 블록도이다.
도 2는 본 발명의 코어 어레이에서 수행되는 영상 인식 과정을 간략히 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 영상 인식 프로세서의 구조를 구체적으로 보여주는 블록도이다.
도 4는 본 발명의 나노 코어들에서의 데이터 이동을 간략히 보여주는 도면이다.
도 5는 도 3의 기능 안전 프로세서 코어의 구성을 예시적으로 보여주는 블록도이다.
도 6은 인식 오류를 검출하기 위한 나노 코어들의 그룹화 방식을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 인식 오류 검출 및 오류 허용 방법을 보여주는 순서도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 영상 인식 프로세서의 구조를 간략히 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 영상 인식 프로세서(100)는 코어 어레이(110), 커널 메모리(120), 명령어 메모리(130), 지연 체인(140), 피처 메모리(150), 기능 안전 프로세서 코어(160), 그리고 버스(170)를 포함할 수 있다.
코어 어레이(110)는 피처 메모리(150)로부터 제공되는 입력 데이터(Fm)를 명령어 메모리(130) 및 커널 메모리(120)가 제공하는 명령어 및 커널 정보를 사용하여 처리한다. 코어 어레이(110)는 예를 들면 센싱된 영상이 수신되는 경우, 센싱된 영상의 패턴을 식별하기 위한 명령어(Instruction)와 커널(Kernel)을 사용하여 처리한다. 예를 들면, 코어 어레이(110)는 컨볼루션(Convolution) 연산이나 풀링(Pooling)과 같은 다운-샘플링 연산을 수행할 수 있다.
특히, 코어 어레이(110)는 컨볼루션(Convolution) 연산이나 풀링(Pooling) 연산을 처리하기 위한 행과 열로 배열되는 복수의 나노 코어(Nano Core: 이하, NC)들을 포함할 수 있다. 나노 코어들은 제공되는 피처(Feature)들을 병렬 처리 방식이나 순차 처리 방식으로 처리할 수 있다. 본 발명에서는 복수의 나노 코어들이 특정 지연 시간을 가지고 동일한 연산을 처리하도록 제어될 수 있다. 그리고 일정한 시간 간격으로 복수의 나노 코어들에서 처리된 패턴 인식 연산의 결과는 피처 메모리(150)를 경유하여 기능 안전 프로세서 코어(160)에 제공될 수 있다. 코어 어레이(110)에 포함되는 복수의 나노 코어들(NCs)은 그룹 단위로 구분될 수 있다. 그리고 각각의 그룹 단위의 나노 코어들은 동일한 영상 또는 서로 다른 영상에 대한 패턴 인식 연산을 수행할 수 있다.
커널 메모리(120)는 코어 어레이(110)에 제공되는 명령어에 동기하여 복수의 커널(Kernel) 정보를 코어 어레이(110)에 제공한다. 커널 메모리(120)는 코어 어레이(110)에서 수행되는 컨볼루션 연산을 위해 커널 정보나 계수, 바이어스(Bias) 가산, 활성화, 풀링 등에 필요한 다양한 파라미터들을 제공할 수 있다. 커널 메모리(120)는 예를 들면, 코어 어레이(110)의 나노 코어들에게 열 단위로 커널 계수를 제공할 수 있을 것이다. 그러면, 나노 코어들 각각은 수신된 커널 계수를 사용하여 패턴 인식 연산을 수행하는 동시에, 아래 행에 위치하는 나노 코어에 수신된 커널 계수를 전달할 수 있을 것이다.
명령어 메모리(130)는 코어 어레이(110)에 포함되는 복수의 나노 코어(NC)들이 각각 수행할 명령어를 저장한다. 그리고 입력되는 피처들에 동기하여 명령어 메모리(130)는 저장된 명령어를 지연 체인(140)에 전달할 것이다. 그러면, 지연 체인(140)에서는 하나의 명령어가 특정 지연 단위로 지연된다. 지연 체인(140)에 의해서 생성된 특정 지연 시간을 갖는 명령어들은 서로 다른 나노 코어들에게 제공될 수 있다. 명령어 메모리(130)에서 제공되는 어느 하나의 명령어(INS)는 복수의 나노 코어들에 특정 지연 시간을 가지고 순차적으로 제공될 수 있다. 지연된 명령어가 제공되는 단위는 나노 코어의 행 단위일 수 있다.
피처 메모리(150)는 영상 인식 프로세서(100)에서 처리할 입력 영상이나 데이터가 저장된다. 인식될 입력 영상은 피처 메모리(150)에 저장되고 코어 어레이(110)에 전달된다. 예를 들면, 피처 메모리(150)에는 이미지 센서(Image sensor)로부터 제공되는 이미지 데이터가 저장될 수 있다. 더불어, 피처 메모리(150)에는 하나의 계층에서 처리된 피처 맵(Feature map)이 저장될 수 있다.
기능 안전 프로세서 코어(160)는 코어 어레이(110)에서 수행된 연산의 결과를 수신하여 인식 오류의 발생 여부를 검출할 수 있다. 예를 들면, 기능 안전 프로세서 코어(160)는 동일한 입력 피처, 동일한 명령어, 그리고 동일한 커널 계수(Coefficient)를 사용한 복수의 나노 코어들(NC)의 출력을 비교할 수 있다. 예를 들면, 나노 코어들(NC)이 서로 다른 그룹으로 구분되고, 각각의 그룹이 동일한 패턴 인식 연산을 수행하도록 제어될 수 있다. 그리고 각각의 그룹에서 출력되는 인식 결과가 기능 안전 프로세서 코어(160)에 의해서 비교될 수 있다. 동일한 연산을 수행한 그룹들 각각의 패턴 인식 결과값에 차이가 존재하는 것으로 검출되면, 기능 안전 프로세서 코어(160)는 인식 오류가 존재하는 것으로 판단할 것이다. 하지만, 동일한 연산을 수행한 나노 코어 그룹들 각각의 출력이 동일한 것으로 검출되면, 기능 안전 프로세서 코어(160)는 인식 오류가 존재하지 않는 것으로 판단할 것이다. 더불어, 기능 안전 프로세서 코어(160)는 인식 오류가 존재하더라도 정도가 크지 않은 경우에는 인식 오류가 존재하더라도 오류 허용(Fault tolerance) 기능을 적용할 수 있다.
특히, 기능 안전 프로세서 코어(160)는 동일한 연산을 수행하는 복수의 프로세서들을 포함할 수 있다. 복수의 프로세서들은 각각 독립된 클록 신호 및 구동 전압을 제공받을 수 있다. 독립된 클록 신호와 구동 전압을 사용하는 기능 안전 프로세서 코어(160)는 전원 소스 또는 클록 소스와 같은 공통 원인에 의한 오류(Common cause fault)로부터 자유로울 수 있다. 이러한 구성을 통해서 기능 안전 프로세서 코어(160)는 높은 신뢰성의 오류 검출 및 오류 허용 기능을 제공할 수 있다.
버스(170)는 기능 안전 프로세서 코어(160)와 커널 메모리(120), 명령어 메모리(130), 그리고 피처 메모리(150) 사이에서 데이터 전달 경로를 제공한다.
이상에서는 본 발명의 영상 인식 프로세서의 구조가 간략히 설명되었다. 본 발명의 기능 안전 프로세서 코어(160)에 의해서 복수의 나노 코어(NC)들이 수행한 연산의 결과가 비교될 수 있고, 인식 오류의 식별이 가능하다. 그리고 식별된 인식 오류의 정도에 따라 특정 마진을 적용하여 오류 허용 기능을 적용하면, 본 발명의 영상 인식 프로세서의 신뢰도를 높일 수 있다.
도 2는 본 발명의 실시 예에 따른 나노 코어들이 수행하는 컨볼루션 연산의 예를 간략히 보여주는 도면이다. 도 2를 참조하면, 입력 피처(152)는 컨볼루션 연산에 의해서 피처 맵(154)으로 생성된다. 그리고 피처 맵(154)은 풀링 연산에 의해서 피처 맵들(156)로 출력될 수 있다.
입력 피처(152)는 커널(121)과의 컨볼루션 연산들에 의해서 어레이 형태의 피처 맵(154)으로 변환된다. 입력 피처(152)와 커널(121)과 중첩되는 위치의 컨볼루션을 통해서 생성된 요소들의 값들을 가산하면 피처 맵(154)의 한 포인트에 대응하는 피처 값이 생성된다. 커널(121)을 모든 입력 피처(152)의 위치에 대해서 시프트하면서 컨볼루션 연산을 수행하면, 하나의 피처 어레이가 생성될 수 있다. 이러한 컨볼루션 연산을 복수의 커널들(122, M 개)을 사용하여 수행하면, 복수(M 개)의 피처 맵(154)이 생성될 수 있을 것이다.
여기서, 컨볼루션 연산을 통해서 처리되는 입력 피처(152)는 실질적으로 다양한 성분들로 분화될 수 있다. 예를 들면, 하나의 입력 피처(152)는 RGB 성분들 각각에 대한 색과 명암을 표현한 이미지 데이터들로 구분될 수 있다. 더불어, 사이즈를 가변한 데이터로도 입력 피처(152)가 분화될 수 있다. 이러한 다양한 이미지 데이터들을 모든 커널들(122, M 개)을 사용하여 컨볼루션 연산을 수행하는 처리 단위를 이하에서는 컨볼루션 루프(Convolution loop)라 칭하기로 한다. 이러한 컨볼루션 루프들은 입력 피처(152)의 복수의 깊이(Depth)만큼 실행될 것이다.
더불어, 피처 맵(154)에 대해서 다른 커널(124)을 사용하는 컨볼루션 연산이 후속될 수 있다. 어느 하나의 입력 피처(152)에 대한 이러한 컨볼루션 연산을 통해서 피처 맵(154)이 생성될 수 있을 것이다.
본 발명의 코어 어레이(110)에 포함되는 나노 코어들(NC)은 이러한 연산들을 병렬 처리 방식으로 처리할 수 있다. 또는, 나노 코어들(NC)은 어느 하나의 입력 이미지를 서로 다른 커널들을 적용하여 병렬로 처리하는 방식으로 구동될 수도 있을 것이다. 또는, 나노 코어(NC)들이 그룹 단위로도 구분될 수 있고, 각각의 그룹이 동일 입력 피처(프레임 데이터)나 서로 다른 입력 피처에 대한 패턴 인식 연산을 처리할 수도 있을 것이다. 각각의 경우에서, 기능 안전 프로세서 코어(160)는 연산 결과를 비교하고 인식 오류의 존재를 검출하거나 미리 정해진 마진(Margin)의 오류 허용 기능을 수행할 수도 있다.
도 3은 본 발명의 영상 인식 프로세서의 구성을 구체적으로 보여주는 블록도이다. 도 3을 참조하면, 코어 어레이(110), 커널 메모리(120), 지연 체인(140), 피처 메모리(150)는 각각 복수의 서브-엘리먼트들을 포함할 수 있다.
코어 어레이(110)는 예시적으로 행과 열로 배열되는 복수의 나노 코어들(NC_xy, 0 ≤ x, y ≤ 3)을 포함할 수 있다. 나노 코어들(NC_xy)은 각각 입력되는 명령어와 데이터, 그리고 커널 계수를 사용하여 패턴 인식을 위한 컨볼루션 연산을 수행할 수 있다. 나노 코어들(NC_xy)은 제공되는 입력 피처들에 대한 처리를 병렬 처리 방식이나 순차 처리 방식으로 수행할 수 있다.
어느 하나의 나노 코어(NC_xy)는 명령어 메모리(130)로부터 제공되거나 왼쪽 방향으로 인접한 나노 코어(NC_x(y-1))로부터 명령어를 전달받을 수 있다. 그리고 나노 코어(NC_xy)는 피처 메모리들(152, 154, 156, 158) 중 어느 하나 또는 왼쪽 방향으로 인접한 나노 코어(NC_x(y-1))로부터 입력 피처를 제공받을 수 있다. 또한, 나노 코어(NC_xy)는 커널 메모리들(122, 124, 126, 128) 중 어느 하나 또는 위쪽 방향으로 인접한 나노 코어(NC_(x-1)y)로부터 연산을 위한 커널 계수(Coefficient)를 제공받을 수 있다.
또한, 나노 코어(NC_xy)는 수신된 입력 피처와 커널 계수를 사용하여 제공된 명령어에 대응하는 연산을 수행할 수 있다. 명령어에 따른 연산을 수행하는 동시에, 나노 코어(NC_xy)는 입력 피처를 오른쪽의 나노 코어(NC_x(y+1))로 전달하고, 위쪽에서 전달받은 커널 계수(Coefficient)를 아래 쪽에 인접한 나노 코어(NC_(x+1)y)로 전달한다.
더불어, 나노 코어(NC_xy)는 연산의 수행 결과를 왼쪽 방향으로 인접한 나노 코어(NC_x(y-1))나 피처 메모리들(152, 154, 156, 158) 중 어느 하나로 전달한다. 예를 들면, 나노 코어(NC_01)는 입력 피처와 커널 계수를 사용한 연산의 결과를 동일한 행의 나노 코어(NC_00)로 전달한다. 더불어, 나노 코어(NC_01)는 나노 코어(NC_02)의 연산 결과를 제공받아 나노 코어(NC_00)로 전달할 수 있다. 이러한 방식으로 나노 코어(NC_00)는 자신의 연산 결과 및 동일한 행에 포함되는 나노 코어들(NC_01, NC_02, NC_03)의 연산 결과를 각각 피처 메모리(152)로 전달할 것이다.
상술한 방식에 따라 하나의 행에 포함되는 복수의 나노 코어(NC_xy)들은 상이한 커널에 대응하는 계수를 사용하여 하나의 입력 피처에 대한 컨볼루션 연산을 수행할 수 있다. 즉, 복수의 나노 코어(NC_xy)는 하나의 입력 피처를 서로 다른 복수의 커널들을 사용하여 복수의 컨볼루션 연산을 처리할 수 있다. 그리고 나노 코어(NC_xy)들 각각의 연산 결과는 피처 메모리들(152, 154, 156, 158) 중 어느 하나 또는 기능 안전 프로세서 코어(160)에 의해서 비교되거나 평가될 수 있다.
상술한 방식으로 나노 코어들(NC_1y, 0≤y≤3)은 지연 회로(144)로부터의 명령어에 응답하여 위쪽 나노 코어들(NC_0y, 0≤y≤3)을 경유하여 제공되는 커널 계수를 사용하여 피처 메모리(154)로부터 제공되는 입력 피처를 처리한다. 즉, 나노 코어들(NC_1y, 0≤y≤3)은 피처 메모리(154)로부터 제공되는 입력 피처에 대한 연산을 수행하여 피처 메모리(154)로 전달할 것이다.
코어 어레이(110)에서 하나의 행을 구성하는 나노 코어들(NC_2y, 0≤y≤3)은 연산 결과를 피처 메모리(156)로 전달한다. 마찬가지로, 나노 코어들(NC_3y, 0≤y≤3)도 피처 메모리(158)로부터의 입력 피처와 커널 계수를 사용하여 연산을 수행하여 피처 메모리(158)로 전달할 것이다.
피처 메모리들(152, 154, 156, 158) 각각은 나노 코어들(NC_xy)로부터 전달되는 패턴 인식 연산 결과를 수신하여 버스(170)를 경유하여 기능 안전 프로세서 코어(160)에 전달할 수 있다. 더불어, 피처 메모리들(152, 154, 156, 158)은 기능 안전 프로세서 코어(160)가 제공하는 입력 피처를 나노 코어들(NC_xy)에 제공할 수도 있을 것이다.
기능 안전 프로세서 코어(160)는 하나의 행에 포함되는 복수의 나노 코어(NC_xy)들 각각의 연산 결과를 비교하여 인식 오류의 존재 여부를 판단할 수 있다. 또는, 기능 안전 프로세서 코어(160)는 각 행 단위로 복수의 나노 코어(NC_xy)들의 연산 결과를 비교하여 인식 오류의 존재 여부를 판단할 수 있다. 더불어, 기능 안전 프로세서 코어(160)는 패턴 인식 연산의 결과에 오류가 존재하더라도 미리 정의된 기준값 이하의 오류인 경우에는 오류 허용(Fault tolerance) 기능을 적용할 수 있다.
특히, 본 발명의 기능 안전 프로세서 코어(160)는 동일한 연산을 수행할 수 있는 복수의 프로세서를 포함할 수 있다. 복수의 프로세서들은 각각 독립된 클록 신호 및 구동 전압을 제공받을 수 있다. 독립된 클록 신호와 구동 전압을 사용하는 기능 안전 프로세서 코어(160)는 전원 소스 또는 클록 소스와 같은 공통 원인에 의한 오류(Common cause fault)로부터 자유로울 수 있다.
도 4는 본 발명의 실시 예에 따른 하나의 행 단위의 나노 코어들의 동작을 간략히 보여주는 도면이다. 도 4를 참조하면, 피처 메모리(152)로부터 입력 피처를 제공받는 나노 코어들(NC_0y, 0≤y≤3)의 세부 동작이 간략히 설명될 것이다.
나노 코어(NC_00)가 지연 회로(142)에서 출력되는 명령어(INS)를 수신할 것이다. 그러면, 나노 코어(NC_00)는 명령어(INS)의 수신과 함께 피처 메모리(152)로부터 입력 피처(F_IN_0)를 수신하고, 커널 메모리(122)로부터 커널 계수(Coff_0)를 수신한다. 나노 코어(NC_00)는 명령어(INS)에 응답하여 입력 피처(F_IN_0)와 커널 계수(Coff_0)를 사용하는 연산을 수행한다. 예를 들면, 나노 코어(NC_00)는 입력 피처(F_IN_0)를 커널 계수(Coff_0)에 대응하는 커널을 사용하여 컨볼루션 연산을 수행할 수 있다. 동시에, 나노 코어(NC_00)는 커널 메모리(122)로부터 전달되는 커널 계수(Coff_0)를 동일한 열에 위치하는 나노 코어(NC_10)로 전달할 것이다. 더불어, 나노 코어(NC_00)는 피처 메모리(152)로부터 전달되는 입력 피처(F_IN_0)를 행 방향으로 인접한 나노 코어(NC_01)로 전달할 것이다.
나노 코어(NC_01)는 나노 코어(NC_00)를 경유하여 전달되는 입력 피처(F_IN_0)와 명령어(INS)를 수신한다. 그리고 나노 코어(NC_01)는 커널 메모리(124)로부터 커널 계수(Coff_1)를 수신한다. 나노 코어(NC_01)는 명령어(INS)에 응답하여 입력 피처(F_IN_0)와 커널 계수(Coff_1)를 사용하는 컨볼루션 연산을 수행할 수 있다. 또한, 나노 코어(NC_01)는 커널 메모리(124)로부터 전달되는 커널 계수(Coff_1)를 동일한 열에 위치하는 나노 코어(NC_11)로 전달할 것이다. 더불어, 나노 코어(NC_01)는 나노 코어(NC_00)를 경유하여 전달되는 입력 피처(F_IN_0)와 명령어(INS)를 각각 행 방향으로 인접한 나노 코어(NC_02)로 전달한다.
나노 코어(NC_02)는 나노 코어(NC_01)를 경유하여 전달되는 입력 피처(F_IN_0)와 명령어(INS)를 수신한다. 나노 코어(NC_02)는 커널 메모리(126)로부터 계수(Coff_2)를 수신한다. 나노 코어(NC_02)는 명령어(INS)에 응답하여 입력 피처(F_IN_0)와 커널 계수(Coff_2)를 사용하는 컨볼루션 연산을 수행할 수 있다. 또한, 나노 코어(NC_02)는 커널 메모리(126)로부터 전달되는 커널 계수(Coff_2)를 동일한 열에 위치하는 나노 코어(NC_12)로 전달할 것이다. 더불어, 나노 코어(NC_02)는 나노 코어(NC_01)를 경유하여 전달되는 입력 피처(F_IN_0)와 명령어(INS)를 각각 행방향으로 인접한 나노 코어(NC_03)로 전달한다.
나노 코어(NC_03)는 나노 코어(NC_02)를 경유하여 전달되는 입력 피처(F_IN_0)와 명령어(INS)를 수신한다. 나노 코어(NC_03)는 커널 메모리(128)로부터 커널 계수(Coff_3)를 수신한다. 나노 코어(NC_03)는 명령어(INS)에 응답하여 입력 피처(F_IN_0)와 커널 계수(Coff_3)를 사용하는 컨볼루션 연산을 수행할 수 있다. 또한, 나노 코어(NC_03)는 커널 메모리(128)로부터 전달되는 커널 계수(Coff_3)를 동일한 열에 위치하는 나노 코어(NC_13)로 전달할 것이다. 나노 코어(NC_03)는 행의 우측 마지막 코어이기 때문에, 명령어(INS)나 입력 피처(F_IN_0)의 전달 동작은 수행하지 않을 수 있다.
나노 코어(NC_03)는 연산 결과(F_OUT_03)를 좌측의 나노 코어(NC_02)로 전달할 것이다. 나노 코어(NC_02)는 자신의 연산 결과(F_OUT_02)와 우측 나노 코어(NC_03)로부터 제공되는 연산 결과(F_OUT_03)를 좌측의 나노 코어(NC_01)로 전달한다. 나노 코어(NC_01)는 자신의 연산 결과(F_OUT_01)와 우측 나노 코어들(NC_02, NC_03)로부터 제공되는 연산 결과들(F_OUT_02, F_OUT_03)을 좌측의 나노 코어(NC_00)로 전달한다. 결국, 나노 코어(NC_00)는 자신의 연산 결과(F_OUT_00)와 우측 나노 코어들(NC_01, NC_02, NC_03)로부터 제공되는 연산 결과들(F_OUT_01, F_OUT_02, F_OUT_03)를 피처 메모리(152)로 전달할 것이다. 피처 메모리(152)에 전달된 연산 결과들(F_OUT_00, F_OUT_01, F_OUT_02, F_OUT_03)은 기능 안전 프로세서 코어(160)로 전달할 것이다.
이상에서는 피처 메모리(152)로부터 입력 피처(F_IN_0)를 제공받는 복수의 나노 코어들(NC_00, NC_01, NC_02, NC_03)의 명령어, 입력 피처, 계수, 그리고 연산 결과의 입출력 관계가 간략히 설명되었다. 코어 어레이(110)의 첫 번째 행을 구성하는 나노 코어들(NC_00, NC_01, NC_02, NC_03)과 마찬가지로 나노 코어들(NC_10, NC_11, NC_12, NC_13)도 입력 피처만 다른 것을 제외하면 동일한 방식으로 구동될 수 있다. 하나의 행을 구성하는 나노 코어들(NC_20, NC_21, NC_22, NC_23)과 나노 코어들(NC_30, NC_31, NC_32, NC_33)도 입력 피처를 제공받는 피처 메모리만 다를뿐 나노 코어들(NC_00, NC_01, NC_02, NC_03)과 동일한 방식으로 동작하는 것으로 간주할 수 있다. 물론, 지연 회로들(142, 144, 146, 148)에 의한 명령어 전달 시점이나 각 코어들에서 발생하는 명령어, 입력 피처, 그리고 계수들의 전달 시점은 다를 수 있음은 잘 이해될 것이다.
도 5는 도 3의 기능 안전 프로세서 코어의 세부적인 구성을 예시적으로 보여주는 블록도이다. 도 5를 참조하면, 기능 안전 프로세서 코어(160)는 멀티-코어 구조로 제공될 수 있다. 즉, 기능 안전 프로세서 코어(160)는 제 1 프로세서(162), 제 2 프로세서(164), 외부 결함 매니저(166), 그리고 복구 컨트롤러(168)를 포함할 수 있다. 더불어, 기능 안전 프로세서 코어(160)는 제 1 위상 고정 루프(161), 제 2 위상 고정 루프(165), 제 1 LDO(163, Low Dropout) 및 제 2 LDO(167)를 포함할 수 있다.
제 1 위상 고정 루프(161)와 제 2 위상 고정 루프(165)는 상호 분리된 클록 생성 회로(Clock Generation Circuit)로 제공된다. 제 1 위상 고정 루프(161)는 제 1 프로세서(162)에 제 1 구동 클록(CLK1)을 제공할 수 있다. 제 2 위상 고정 루프(165)는 제 2 프로세서(164)에 제 2 구동 클록(CLK2)을 제공할 수 있다. 제 1 및 제 2 구동 클록들(CLK1, CLK2) 각각은 상호 간섭이나 영향이 차단된 독립된 소스로부터 제공되는 클록 신호들이다. 따라서, 제 1 구동 클록(CLK1)이 노이즈나 간섭에 노출되더라도 제 2 구동 클록(CLK2)은 정상적인 주파수 또는 위상을 유지할 수 있을 것이다. 제 1 위상 고정 루프(161)와 제 2 위상 고정 루프(165)는 위상 고정 루프(PLL) 방식인 아닌 클록을 생성하는 다양한 회로들로 구현될 수 있음은 잘 이해될 것이다.
제 1 LDO(163) 및 제 2 LDO(167)는 상호 독립적인 전원 공급 회로로 제공될 수 있다. 제 1 LDO(163)는 제 1 구동 전압(VDD1)을 생성하여 제 1 프로세서(162)에 제공한다. 제 2 LDO(167)는 제 2 구동 전압(VDD2)을 생성하여 제 2 프로세서(164)에 제공한다. 따라서, 제 1 및 제 2 구동 전압들(VDD1, VDD2)은 상호 간섭이나 영향이 차단된 독립된 전원 전압이다. 예를 들면, 제 1 LDO(163) 및 제 2 LDO(167) 각각은 서로 독립적으로 동작하는 전압 레귤레이터(Voltage regulator)들로 제공될 수 있다. 또는, 제 1 LDO(163) 및 제 2 LDO(167) 각각은 서로 독립적으로 동작하는 전력관리 집적회로(PMIC)로 제공될 수도 있을 것이다. 따라서, 제 1 구동 전압(VDD1)이 노이즈나 간섭에 의해서 변동하더라도 제 2 구동 전압(VDD2)은 정상적인 레벨을 유지할 수 있다. 여기서, 제 1 및 제 2 구동 전압들(VDD1, VDD2) 각각은 동일한 레벨이거나 다른 레벨의 전압으로 제공될 수 있음은 잘 이해될 것이다.
서로 독립적인 클록 신호와 구동 전압을 사용하는 제 1 프로세서(162) 및 제 2 프로세서(164)에 따르면, 구동 전압이나 클록 신호와 같은 공통 원인에 의한 오류(Common cause fault)로부터 자유로울 수 있다.
제 1 프로세서(162) 및 제 2 프로세서(164)는 각각 동일한 테스크를 처리할 수 있다. 제 1 프로세서(162) 및 제 2 프로세서(164)는 각각 피처 메모리(150)를 통해서 전달되는 코어 어레이(110, 도 1 참조)에서 수행된 연산의 결과를 비교한다. 피처 메모리(150)를 통해서 전달되는 연산 결과는 제 1 프로세서(162)와 제 2 프로세서(164)에 동일하게 전달된다. 그러면, 제 1 프로세서(162)와 제 2 프로세서(164)는 각각 독립적으로 전달된 연산 결과들을 비교하여 코어 어레이(110)에서의 오류가 존재하는지 판단할 수 있다.
더불어, 외부 결함 매니저(166)는 제 1 프로세서(162) 및 제 2 프로세서(164)의 오류 검출 결과를 서로 비교하여 결함이나 오류가 존재하는지 판단할 수 있다. 제 1 프로세서(162) 및 제 2 프로세서(164)는 동일한 테스크를 수행하면서 그 결과를 외부 결함 매니저(166)에 전달할 것이다. 그러면, 외부 결함 매니저(166)는 특정 체크 포인트마다 제 1 프로세서(162) 및 제 2 프로세서(164)의 처리 결과를 비교하여 일시적 오류(Transient fault)나 영구적 오류(Permanent fault)를 검출할 수 있다.
복구 컨트롤러(168)는 내부 결함 매니저들(162_7, 162_9, 164_7, 164_9) 또는 외부 결함 매니저(166)의 검출 결과를 참조하여 검출된 오류를 복구하기 위한 제반 제어 동작을 수행한다. 복구 컨트롤러(168)는 예를 들면, 내부 결함 매니저들(162_7, 162_9, 164_7, 164_9) 중 적어도 하나로부터의 오류 트랩 정보를 바탕으로 검출된 오류를 정정하거나 복구할 수 있다. 복구 컨트롤러(168)는 외부 결함 매니저(166)로부터 제공되는 오류 트랩 정보를 바탕으로 오류나 결함의 복구 동작을 수행할 수 있다.
제 1 프로세서(162)는 제 1 프로세서 코어(162_1), 제 1 명령어 캐시(162_3), 제 1 데이터 캐시(162_5), 제 1 내부 결함 매니저(162_7), 그리고 제 2 내부 결함 매니저(162_9)를 포함할 수 있다. 제 1 프로세서 코어(162_1)는 제 1 프로세서(162) 내부에서 제 1 명령어 캐시(162_3) 및 제 1 데이터 캐시(162_5)를 통해서 제공되는 명령어와 데이터를 기반으로 다양한 연산들을 수행한다. 특히, 제 1 내부 결함 매니저(162_7)는 제 1 명령어 캐시(162_3) 내에서 발생하는 오류나 결함을 검출 및 복구할 수 있다. 제 2 내부 결함 매니저(162_9)는 제 1 데이터 캐시(162_5) 내에서 발생하는 오류나 결함을 검출하거나 복구할 수 있다.
제 2 프로세서(164)는 제 2 프로세서 코어(164_1), 제 4 명령어 캐시(164_3), 제 2 데이터 캐시(164_5), 제 3 내부 결함 매니저(164_7), 그리고 제 4 내부 결함 매니저(164_9)를 포함할 수 있다. 제 2 프로세서 코어(164_1)는 제 2 프로세서(164) 내부에서 제 2 명령어 캐시(164_3) 및 제 2 데이터 캐시(164_5)를 통해서 제공되는 명령어와 데이터를 기반으로 다양한 연산들을 수행한다. 특히, 제 3 내부 결함 매니저(164_7)는 제 2 명령어 캐시(164_3) 내에서 발생하는 오류나 결함을 검출 및 복구할 수 있다. 제 4 내부 결함 매니저(164_9)는 제 2 데이터 캐시(164_5) 내에서 발생하는 오류나 결함을 검출하거나 복구할 수 있다.
상술한 구성 및 기능을 갖는 기능 안전 프로세서 코어(160)에 의해서 복수의 나노 코어들에 의해서 처리된 연산의 결과를 수신하여 인식 오류의 발생 여부를 검출할 수 있다. 특히, 제 1 프로세서(162)와 제 2 프로세서(164)는 각각 독립적인 클록 신호(CLK1, CLK2)와 구동 전압들(VDD1, VDD2)에 의해서 구동된다. 따라서, 제 1 프로세서(162)와 제 2 프로세서(164)는 각각 구동 전압이나 클록 신호에서 비롯되는 공통 원인 오류(Common cause fault)로부터 자유로울 수 있다. 따라서, 기능 안전 프로세서 코어(160)의 동작 신뢰성이 제공될 수 있다.
도 6은 도 5의 기능 안전 프로세서 코어에 의해서 수행되는 오류 검출의 단위를 예시적으로 보여주는 블록도이다. 도 6을 참조하면, 나노 코어들이 복수의 그룹으로 구분될 수 있다. 각각의 그룹은 동일한 프레임을 처리하도록 제어될 수 있다. 또는, 각각의 그룹은 서로 다른 프레임을 처리하도록 제어될 수 있다.
예컨대, 코어 어레이(110)의 제 1 행에 위치하는 나노 코어들(NC_00, NC_01, NC_02, NC_03)은 제 1 그룹으로 분류되고, 제 2 행에 위치하는 나노 코어들(NC_10, NC_11, NC_12, NC_13)은 제 2 그룹으로 분류될 수 있다. 그리고 제 3 행 및 제 4 행에 위치하는 나노 코어들(NC_20, NC_21, NC_22, NC_23, NC_30, NC_31, NC_32, NC_33)은 제 3 그룹으로 분류될 수 있다.
상술한 그룹 분류에 기초하여, 제 1 그룹 및 제 2 그룹의 나노 코어들에게는 제 1 프레임(Frame_N)에 대한 패턴 인식 연산이 할당될 수 있다. 즉, 제 1 그룹의 나노 코어들(NC_00, NC_01, NC_02, NC_03)에는 제 1 프레임(Frame_Na)의 입력 피처가 피처 메모리(152)를 통해서 전달될 수 있다. 더불어, 제 2 그룹의 나노 코어들(NC_10, NC_11, NC_12, NC_13)에도 제 1 프레임(Frame_Nb)의 입력 피처가 피처 메모리(154)를 통해서 전달될 수 있다. 여기서, 프레임들(Frame_Na, Frame_Nb)은 동일한 프레임 데이터이지만 서로 다른 나노 코어 그룹에 할당되었음을 의미한다.
그리고 코어 어레이(110)의 제 3 및 제 4 행에 위치하는 제 3 그룹의 나노 코어들에게는 제 2 프레임(Frame_N+1)에 대한 패턴 인식 연산이 할당될 수 있다. 즉, 제 3 그룹의 나노 코어들(NC_20, NC_21, NC_22, NC_23, NC_30, NC_31, NC_32, NC_33)에는 제 1 프레임(Frame_Na 또는 Frame_Nb)과는 다른 제 2 프레임(Frame_N+1)의 입력 피처가 피처 메모리들(156, 158)을 통해서 각각 전달될 수 있다.
기능 안전 프로세서 코어(160)는 제 1 그룹 및 제 2 그룹의 나노 코어들이 출력하는 연산 결과를 비교하여 패턴 인식 연산의 오류 여부를 결정할 수 있다. 그리고 오류가 발생하는 경우, 이전 프레임(Frame_N-1)과의 차이값을 계산하여 제 1 프레임들(Frame_Na 또는 Frame_Nb) 각각의 연산 결과 중 어느 하나를 패턴 인식의 결과로 선택할 수 있다.
도 7은 본 발명의 실시 예에 따른 기능 안전 프로세서 코어의 동작을 간략히 보여주는 순서도이다. 도 7을 참조하면, 기능 안전 프로세서 코어(160)가 하나의 프레임(Frame_N)을 처리하는 방법이 도시되어 있다. 기능 안전 프로세서 코어(160)는 현재 프레임 영상(Frame_N)의 패턴 인식을 제 1 그룹 및 제 2 그룹의 나노 코어들에게 각각 할당한다. 그리고 기능 안전 프로세서 코어(160)는 패턴 인식의 처리 결과값을 비교하여 오류의 존재 여부의 판단 및 최적의 결과를 선택할 수 있다.
S110 단계에서, 기능 안전 프로세서 코어(160)는 현재 프레임 영상(Frame_N)을 복수의 나노 코어 그룹에 동일하게 할당한다. 예를 들면, 기능 안전 프로세서 코어(160)는 2개의 나노 코어 그룹에 현재 프레임 영상(Frame_N)을 동시에 할당할 수 있다. 그리고 기능 안전 프로세서 코어(160)는 두 개의 나노 코어 그룹으로부터 할당된 프레임 영상(Frame_N)에 대한 처리 결과를 수신할 것이다.
S120 단계에서, 기능 안전 프로세서 코어(160)는 두 개의 나노 코어 그룹들 각각으로부터 전달되는 처리 결과들을 비교한다. 즉, 기능 안전 프로세서 코어(160)는 제 1 그룹의 나노 코어들의 프레임 영상(Frame_N)에 대한 처리 결과 R(Frame_Na)와 제 2 그룹의 나노 코어들의 프레임 영상(Frame_N)에 대한 처리 결과 R(Frame_Nb)를 비교할 것이다. 만일, 처리 결과들이 동일한 경우(예 방향), 절차는 S140 단계로 이동한다. 반면, 처리 결과가 다른 경우(아니오 방향), 절차는 S130 단계로 이동한다.
S130 단계에서, 기능 안전 프로세서 코어(160)는 현재 프레임 영상(Frame_N)에 대한 제 1 그룹의 처리 결과 R(Frame_Na)와 이전 프레임에 대한 처리 결과 R(Frame_N-1)와의 차이값[R(Frame_Na)-R(Frame_N-1)]을 계산한다. 그리고 기능 안전 프로세서 코어(160)는 계산된 차이값과 기준값(Ref)을 비교한다. 만일, 차이값[R(Frame_Na)-R(Frame_N-1)]이 기준값(Ref)보다 작지 않은 경우(아니오 방향), 절차는 S150 단계로 이동한다. 반면, 차이값[R(Frame_Na)-R(Frame_N-1)]이 기준값(Ref)보다 작지 않은 경우(예 방향), 절차는 S140 단계로 이동한다.
S140 단계에서, 기능 안전 프로세서 코어(160)는 제 1 그룹의 처리 결과 R(Frame_Na)를 영상 인식 연산의 결과로 선택한다. 이어서, 절차는 S170 단계로 이동하여 다음 프레임(Frame_N+1)을 처리하기 위한 프로세스를 진행할 것이다.
S150 단계에서, 기능 안전 프로세서 코어(160)는 제 2 그룹의 처리 결과 R(Frame_Nb)와 이전 프레임에 대한 처리 결과 R(Frame_N-1)와의 차이값[R(Frame_Nb)-R(Frame_N-1)]을 계산한다. 그리고 기능 안전 프로세서 코어(160)는 계산된 차이값과 기준값(Ref)을 비교한다. 만일, 차이값[R(Frame_Nb)-R(Frame_N-1)]이 기준값(Ref)보다 작지 않은 경우(아니오 방향), 절차는 S180 단계로 이동한다. 반면, 차이값[R(Frame_Nb)-R(Frame_N-1)]이 기준값(Ref)보다 작지 않은 경우(예 방향), 절차는 S160 단계로 이동한다.
S160 단계에서, 기능 안전 프로세서 코어(160)는 제 2 그룹의 처리 결과 R(Frame_Nb)를 영상 인식 연산의 결과로 선택한다. 이어서, 절차는 S170 단계로 이동하여 다음 프레임(Frame_N+1)을 처리하기 위한 프로세스를 진행할 것이다.
S180 단계에서, 기능 안전 프로세서 코어(160)는 현재 프레임(Frame_N)에 대한 영상 인식 연산에서 오류가 발생한 것으로 판단한다. 그리고 기능 안전 프로세서 코어(160)는 판단 결과에 따라 추가적인 오류 복구 동작을 수행할 수도 있을 것이다.
이상에서는 본 발명의 기능 안전 프로세서 코어(160)에 의한 오류 검출 동작이 간략히 설명되었다. 하지만, 상술한 예들은 본 발명의 이점을 설명하기 위한 하나의 예시에 지나지 않으며 본 발명의 사상을 벗어나지 않는 범위 내에서 다양한 변경이 가능함은 잘 이해될 것이다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.

Claims (15)

  1. 각각 명령어에 응답하여 입력 피처를 커널 계수를 사용하여 패턴 인식 연산을 수행하는 행과 열로 배열되는 복수의 나노 코어들;
    상기 복수의 나노 코어들 각각에 상기 명령어를 제공하는 명령어 메모리;
    상기 복수의 나노 코어들 각각에 상기 입력 피처를 제공하는 피처 메모리;
    상기 복수의 나노 코어들에 상기 커널 계수를 제공하는 커널 메모리; 그리고
    상기 복수의 나노 코어들로부터 출력되는 패턴 인식 연산의 결과를 수신하여 인식 오류의 존재 여부를 검출하고, 검출된 인식 오류에 대해 오류 허용 기능을 수행하는 기능 안전 프로세서 코어를 포함하되,
    상기 기능 안전 프로세서 코어는:
    제 1 구동 전압 및 제 1 구동 클록에 의해서 구동되는 제 1 프로세서; 그리고
    제 2 구동 전압 및 제 2 구동 클록에 의해서 구동되며, 상기 제 1 프로세서와 동일한 작업을 수행하는 제 2 프로세서를 포함하고,
    상기 제 1 구동 전압과 상기 제 2 구동 전압 각각은 상호 독립적인 전압 레귤레이터로부터 공급되고, 상기 제 1 구동 클록과 상기 제 2 구동 클록 각각은 상호 독립적인 클록 발생기들로부터 제공되는 영상 인식 프로세서.
  2. 제 1 항에 있어서,
    상기 기능 안전 프로세서 코어는:
    상기 제 1 구동 전압을 제공하는 제 1 LDO; 그리고
    상기 제 2 구동 전압을 제공하는 제 2 LDO를 포함하는 영상 인식 프로세서.
  3. 제 1 항에 있어서,
    상기 기능 안전 프로세서 코어는:
    상기 제 1 구동 클록을 제공하는 제 1 위상 고정 루프; 그리고
    상기 제 2 구동 클록을 제공하는 제 2 위상 고정 루프를 포함하는 영상 인식 프로세서.
  4. 제 1 항에 있어서,
    상기 기능 안전 프로세서 코어는:
    상기 제 1 프로세서와 상기 제 2 프로세서의 처리 결과를 비교하여 오류 또는 결함의 존재 여부를 검출하는 외부 결함 매니저; 그리고
    상기 검출된 오류 또는 결함을 복구하기 위한 복구 컨트롤러를 더 포함하는 영상 인식 프로세서.
  5. 제 1 항에 있어서,
    상기 제 1 프로세서는:
    요청된 연산을 수행하는 제 1 프로세서 코어;
    상기 제 1 프로세서 코어에 입력되는 명령어를 제공하는 제 1 명령어 캐시;
    상기 제 1 프로세서 코어에 캐시 데이터를 제공하는 제 1 데이터 캐시;
    상기 제 1 명령어 캐시의 오류를 관리하는 제 1 내부 결함 매니저; 그리고
    상기 제 1 데이터 캐시의 오류를 관리하는 제 2 내부 결함 매니저를 포함하는 영상 인식 프로세서.
  6. 제 1 항에 있어서,
    상기 제 2 프로세서는:
    요청된 연산을 수행하는 제 2 프로세서 코어;
    상기 제 2 프로세서 코어에 입력되는 명령어를 제공하는 제 2 명령어 캐시;
    상기 제 2 프로세서 코어에 캐시 데이터를 제공하는 제 2 데이터 캐시;
    상기 제 2 명령어 캐시의 오류를 관리하는 제 3 내부 결함 매니저; 그리고
    상기 제 2 데이터 캐시의 오류를 관리하는 제 4 내부 결함 매니저를 포함하는 영상 인식 프로세서.
  7. 제 1 항에 있어서,
    상기 기능 안전 프로세서 코어는, 상기 복수의 나노 코어들 중 제 1 그룹 및 제 2 그룹 각각의 나노 코어들에게 현재 프레임에 대응하는 입력 피처를 할당하고, 상기 제 1 그룹 및 상기 제 2 그룹 각각의 연산 결과를 비교하는 영상 인식 프로세서.
  8. 제 7 항에 있어서,
    상기 기능 안전 프로세서 코어는, 상기 제 1 그룹에서 출력되는 제 1 인식 결과와 상기 제 2 그룹에서 출력되는 제 2 인식 결과가 동일하면 제 1 인식 결과 또는 제 2 인식 결과 중 어느 하나를 출력값으로 선택하는 영상 인식 프로세서.
  9. 제 8 항에 있어서,
    상기 기능 안전 프로세서 코어는, 상기 제 1 인식 결과와 상기 제 2 인식 결과가 다른 경우, 이전 프레임에 대한 인식 연산의 결과에 대응하는 제 3 인식 결과를 참조하여 상기 제 1 인식 결과 또는 제 2 인식 결과 중 어느 하나를 출력값으로 선택하는 영상 인식 프로세서.
  10. 제 9 항에 있어서,
    상기 기능 안전 프로세서 코어는, 상기 제 1 인식 결과와 상기 제 2 인식 결과 중에서 상기 제 3 인식 결과와의 차이가 더 작은 어느 하나를 선택하는 영상 인식 프로세서.
  11. 제 10 항에 있어서,
    상기 기능 안전 프로세서 코어는 상기 제 1 인식 결과와 상기 제 3 인식 결과의 차이값 그리고 상기 제 2 인식 결과와 상기 제 3 인식 결과와의 차이값이 각각 기준값보다 작지 않은 경우에는 인식 오류로 판단하는 영상 인식 프로세서.
  12. 복수의 나노 코어들을 포함하는 영상 인식 프로세서의 동작 방법에 있어서:
    현재 프레임 영상을 상기 복수의 나노 코어들 중에서 제 1 그룹의 나노 코어와 제 2 그룹의 나노 코어에 할당하는 단계;
    상기 제 1 그룹의 나노 코어들이 출력하는 제 1 인식 결과와 상기 제 2 그룹의 나노 코어들이 출력하는 제 2 인식 결과를 비교하는 단계;
    상기 제 1 인식 결과가 상기 제 2 인식 결과와 동일한 경우, 상기 제 1 인식 결과를 상기 현재 프레임 영상의 인식 결과로 선택하는 단계; 그리고
    상기 제 1 인식 결과와 상기 제 2 인식 결과가 다른 경우, 이전 프레임에 대한 인식 결과값에 대응하는 제 3 인식 결과와 상기 제 1 인식 결과 및 상기 제 2 인식 결과 각각의 차이값을 참조하여 오류 허용 또는 인식 오류로 판단하는 단계를 포함하는 동작 방법.
  13. 제 12 항에 있어서,
    상기 오류 허용 또는 상기 인식 오류로 판단하는 단계는:
    상기 제 1 인식 결과와 상기 제 3 인식 결과 사이의 제 1 차이값과, 상기 제 2 인식 결과와 상기 제 3 인식 결과 사이의 제 2 차이값을 기준값과 비교하는 단계를 더 포함하는 동작 방법.
  14. 제 13 항에 있어서,
    상기 제 1 차이값과 상기 제 2 차이값이 각각 상기 기준값보다 작은 경우, 상기 제 1 인식 결과와 상기 제 2 인식 결과 중 상기 기준값과의 차이가 더 적은 어느 하나를 오류 허용 값으로 선택하는 동작 방법.
  15. 제 13 항에 있어서,
    상기 제 1 차이값과 상기 제 2 차이값이 각각 상기 기준값보다 작지 않은 경우, 인식 오류로 판단하는 동작 방법.
KR1020190020775A 2018-11-30 2019-02-21 기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법 KR102408936B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/694,899 US11176395B2 (en) 2018-11-30 2019-11-25 Image recognition processor including functional safety processor core and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180153135 2018-11-30
KR1020180153135 2018-11-30

Publications (2)

Publication Number Publication Date
KR20200066124A true KR20200066124A (ko) 2020-06-09
KR102408936B1 KR102408936B1 (ko) 2022-06-15

Family

ID=71082070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190020775A KR102408936B1 (ko) 2018-11-30 2019-02-21 기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102408936B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150281742A1 (en) * 2014-03-25 2015-10-01 Freescale Semiconductor, Inc. Circuit arrangement and method for processing a digital video stream and for detecting a fault in a digital video stream, digital video system and computer readable program product
US20160117557A1 (en) * 2014-10-28 2016-04-28 Texas Instruments Incorporated Apparatus for detecting faults in video frames of video sequence
KR20170106820A (ko) * 2016-03-14 2017-09-22 한국전자통신연구원 프로세서 시스템 및 그것의 고장 검출 방법
KR20180065882A (ko) * 2016-12-08 2018-06-18 한국전자통신연구원 멀티 코어 프로세서 및 그것의 동작 방법
KR20180085545A (ko) * 2017-01-19 2018-07-27 주식회사 만도 Adas를 위한 카메라 시스템과, 차량 제어 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150281742A1 (en) * 2014-03-25 2015-10-01 Freescale Semiconductor, Inc. Circuit arrangement and method for processing a digital video stream and for detecting a fault in a digital video stream, digital video system and computer readable program product
US20160117557A1 (en) * 2014-10-28 2016-04-28 Texas Instruments Incorporated Apparatus for detecting faults in video frames of video sequence
KR20170106820A (ko) * 2016-03-14 2017-09-22 한국전자통신연구원 프로세서 시스템 및 그것의 고장 검출 방법
KR20180065882A (ko) * 2016-12-08 2018-06-18 한국전자통신연구원 멀티 코어 프로세서 및 그것의 동작 방법
KR20180085545A (ko) * 2017-01-19 2018-07-27 주식회사 만도 Adas를 위한 카메라 시스템과, 차량 제어 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문1(2017.11.08) *
비특허문헌1(2017.12.31) *

Also Published As

Publication number Publication date
KR102408936B1 (ko) 2022-06-15

Similar Documents

Publication Publication Date Title
US11507429B2 (en) Neural network accelerator including bidirectional processing element array
US20180096243A1 (en) Deep learning for data driven feature representation and anomaly detection
US11500382B2 (en) Configuration of a control system for an at least partially autonomous transportation vehicle
KR102162321B1 (ko) 프로세서 시스템 및 그것의 고장 검출 방법
JP7089026B2 (ja) 車両モジュールを制御する装置および方法
CN113412506A (zh) 车辆控制装置及电子控制系统
US20210148725A1 (en) Recommended lane determination device
US11126190B2 (en) Learning systems and methods
US11176395B2 (en) Image recognition processor including functional safety processor core and operation method thereof
US10983878B2 (en) Processor for detecting and preventing recognition error
US11341780B2 (en) Maintenance of an aircraft via similarity detection and modeling
KR102408936B1 (ko) 기능 안전 프로세서 코어를 포함하는 영상 인식 프로세서 및 그것의 동작 방법
US20170031792A1 (en) Transferring failure samples using conditional models for machine condition monitoring
KR101988482B1 (ko) 전술 데이터 링크 시스템, 전술 데이터 링크 시스템의 데이터 처리 장치
US10782697B2 (en) Method and apparatus for monitoring a state of an electronic circuit unit of a vehicle
KR20070068405A (ko) 가변 클록 속도를 갖는 데이터 처리 시스템
US9122603B2 (en) Failure detection in high-performance clusters and computers using chaotic map computations
KR20200063011A (ko) 인식 오류를 검출 및 방지하는 프로세서
EP3869485B1 (en) Lane link generation device, lane link generation program, and lane link generation method
CN113722207A (zh) 用于检查技术系统的方法和装置
US11112818B2 (en) Reception apparatus with clock failure recovery and transmission system including the same
US20200370893A1 (en) Device and method for compensating for route of autonomous vehicle
Liu A study of flight-critical computer system recovery from space radiation-induced error
US11656366B2 (en) Apparatus, system and method for generalized multi-mode state machine based localization engine and application of same
Kim et al. Quadruple adaptive redundancy with fault detection estimator

Legal Events

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