KR102147912B1 - 프로세서 칩 및 그 제어 방법들 - Google Patents

프로세서 칩 및 그 제어 방법들 Download PDF

Info

Publication number
KR102147912B1
KR102147912B1 KR1020190099124A KR20190099124A KR102147912B1 KR 102147912 B1 KR102147912 B1 KR 102147912B1 KR 1020190099124 A KR1020190099124 A KR 1020190099124A KR 20190099124 A KR20190099124 A KR 20190099124A KR 102147912 B1 KR102147912 B1 KR 102147912B1
Authority
KR
South Korea
Prior art keywords
processor
address information
memory
input content
artificial intelligence
Prior art date
Application number
KR1020190099124A
Other languages
English (en)
Inventor
태용민
조인상
이원재
황찬영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190099124A priority Critical patent/KR102147912B1/ko
Priority to US16/747,989 priority patent/US11681904B2/en
Priority to PCT/KR2020/001010 priority patent/WO2021029504A1/en
Priority to EP20154613.2A priority patent/EP3779761A1/en
Priority to CN202010081495.0A priority patent/CN112396168A/zh
Priority to JP2020066302A priority patent/JP7164561B2/ja
Priority to US16/906,130 priority patent/US11842265B2/en
Application granted granted Critical
Publication of KR102147912B1 publication Critical patent/KR102147912B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

신경망(Neural Network) 연산을 수행하는 프로세서 칩이 개시된다. 본 프로세서 칩은 메모리, 메모리에 저장된 데이터에 대한 신경망 연산을 수행하는 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하며, 제2 프로세서는 제1 프로세서 및 제3 프로세서가 동작을 수행하도록 제1 프로세서 및 제3 프로세서로 제어 신호를 전송할 수 있다.

Description

프로세서 칩 및 그 제어 방법들 { PROCESSOR CHIP AND CONTROL METHODS THEREOF }
본 개시는 프로세서 칩 및 그 제어 방법들에 대한 것으로, 더욱 상세하게는 신경망(Neural Network) 연산을 수행하는 프로세서 칩 및 그 제어 방법들에 대한 것이다.
최근 딥 러닝(Deep Learning)과 같은 신경망(Neural Network) 기술을 이용하여 다양한 경험을 제공하는 전자 장치가 개발되고 있다. 특히, 신경망 기술을 이용하여 Segmentation, Super-Resolution, HDR 등의 성능이 개선되고 있다.
전자 장치에서 신경망 기술을 이용하여 화질을 향상시키는 기술들은 먼저, RTL(Register-Transfer Level)과 같이 디지털 회로 설계를 통해 하드웨어적으로 구현되거나 NPU(Neural Processing Unit)와 같은 프로세서를 사용하여 소프트웨어적으로 구현될 수 있다.
이중, 프로세서를 사용하는 방법은 CPU(Central Processing Unit), DSP(Digital Signal Processor), GPU(Graphics Processing Unit), NPU 등 다양한 타입의 프로세서가 이용될 수 있다. 특히, NPU는 신경망 연산에 특화되어 빠르게 결과를 출력할 수 있으며, 특화된 가속기로 인해 신경망 연산 시 다른 타입의 프로세서보다 performance와 efficiency가 뛰어나다.
이러한 NPU는 일반적으로 CPU에 의한 제어가 필요하며, 특히 CPU에 의해 입력 데이터 및 입력 데이터에 적용될 인공 지능 모델 정보를 수신하게 된다. 구체적으로, 도 1에 도시된 바와 같이, CPU는 NPU를 초기화(initializing)하고, 메모리에 저장되어 있는 입력 데이터와 인공 지능 모델 정보를 NPU로 제공하며, NPU를 동작(Trigger)시키게 된다.
다만, 전자 장치가 입력 데이터로서 컨텐츠를 이용하는 경우, 전자 장치는 컨텐츠의 보안을 위해 CPU가 컨텐츠의 원본에 직접적으로 접근할 수가 없다.
이를 우회하는 방법으로, 보안 영역(Trust 영역)에 있는 컨텐츠의 원본을 일반 영역으로 복사하는 모듈을 사용하거나, 다운스케링일링된 컨텐츠에 접근하는 방법이 있다. 다만, 이 경우 메모리의 과다 사용, 동작 시간 지연, 컨텐츠의 품질 저하 등의 문제가 발생한다.
또한, 전자 장치 내에서 CPU는 다양한 업무를 수행하기 때문에 NPU 제어를 매 프레임 단위로 하게 되면 부하가 걸릴 수도 있다. 즉, CPU를 이용하는 경우, 실시간 처리가 어려울 수도 있다.
이상과 같이 전자 장치의 CPU가 NPU를 제어하는 경우, 다양한 문제가 발행할 수 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 NPU(Neural Processing Unit)를 좀더 효율적으로 제어하기 위한 프로세서 칩 및 그 제어 방법들을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 신경망(Neural Network) 연산을 수행하는 프로세서 칩은, 메모리, 상기 메모리에 저장된 데이터에 대한 상기 신경망 연산을 수행하는 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하며, 상기 제2 프로세서는 상기 제1 프로세서 및 상기 제3 프로세서가 동작을 수행하도록 상기 제1 프로세서 및 상기 제3 프로세서로 제어 신호를 전송할 수 있다.
또한, 상기 제2 프로세서는 상기 제3 프로세서가 상기 메모리에 저장된 입력 컨텐츠에 대한 정보를 상기 제1 프로세서로 제공하도록 시작 신호를 상기 제3 프로세서로 전송하며, 상기 제1 프로세서가, 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠에 대한 정보 및 상기 메모리에 저장된 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 상기 신경망 연산을 수행하도록 초기화 신호를 상기 제1 프로세서로 전송할 수 있다.
그리고, 상기 메모리는 상기 제2 프로세서의 액세스가 불가능한 보안 영역 및 상기 제2 프로세서의 액세스가 가능한 비보안 영역을 포함하며, 상기 제2 프로세서는 상기 제3 프로세서가 상기 보안 영역에 액세스하여 상기 입력 컨텐츠의 어드레스 정보를 식별하고, 상기 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하며, 상기 제1 프로세서가, 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠의 어드레스 정보 및 상기 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 신경망 연산을 수행하도록 상기 초기화 신호를 상기 제1 프로세서 전송할 수 있다.
또한, 상기 제2 프로세서는 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하며, 상기 제1 프로세서는 상기 제2 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득 할 수 있다.
그리고, 상기 제2 프로세서는 상기 제3 프로세서가, 상기 입력 컨텐츠에 기초하여 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하며, 상기 제1 프로세서는 상기 제3 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득 할 수 있다.
또한, 통신 인터페이스를 더 포함하며, 상기 입력 컨텐츠에 포함된 복수의 프레임은 상기 통신 인터페이스를 통해 순차적으로 수신되어 상기 메모리의 보안 영역에 저장되고, 상기 제2 프로세서는 상기 제3 프로세서가, 상기 메모리에 순차적으로 저장되는 프레임의 어드레스 정보를 기설정된 시간 간격으로 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송할 수 있다.
그리고, 상기 제2 프로세서는 제1 어플리케이션이 실행되면, 상기 제3 프로세서가 상기 입력 컨텐츠에 대한 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송할 수 있다.
또한, 상기 제2 프로세서는 상기 제1 어플리케이션이 종료되면, 상기 제3 프로세서가 상기 제공 동작을 중지하도록 상기 제3 프로세서로 종료 신호를 전송하고, 상기 제3 프로세서는 상기 제1 프로세서가 상기 신경망 연산 동작을 중지하도록 제어하며, 상기 신경망 연산 동작이 중지되었음을 나타내는 신호를 상기 제2 프로세서로 제공할 수 있다.
그리고, 상기 제2 프로세서는 제2 어플리케이션이 실행되면, 상기 비보안 영역에 액세스하여 상기 제2 어플리케이션에 대응되는 데이터의 어드레스 정보를 식별하며, 상기 식별된 어드레스 정보를 상기 제1 프로세서로 제공하고, 상기 제1 프로세서가 상기 제2 프로세서로부터 제공된 상기 데이터의 어드레스 정보 및 상기 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 상기 데이터에 대한 신경망 연산을 수행하도록 제어할 수 있다.
또한, 디스플레이를 더 포함하고, 상기 제2 프로세서는 상기 제3 프로세서가 복수의 입력 컨텐츠 중 상기 디스플레이를 통해 디스플레이되는 입력 컨텐츠의 어드레스 정보를 식별하고, 상기 식별된 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송할 수 있다.
그리고, 상기 제1 프로세서는 NPU(Neural Processing Unit)이고, 상기 제2 프로세서는 운영 체제(Operating System)에 기초하여 동작하는 프로세서이며, 상기 제3 프로세서는 기 설정된 동작을 수행하는 프로세서일 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 메모리, 상기 메모리에 저장된 데이터에 대한 신경망(Neural Network) 연산을 수행하는 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하는 프로세서 칩의 제어 방법은 상기 제3 프로세서가 동작을 수행하도록 상기 제2 프로세서가 상기 제3 프로세서로 제어 신호를 전송하는 단계 및 상기 제1 프로세서가 동작을 수행하도록 상기 제2 프로세서가 상기 제1 프로세서로 제어 신호를 전송하는 단계를 포함한다.
또한, 상기 제3 프로세서로 제어 신호를 전송하는 단계는 상기 제3 프로세서가 상기 메모리에 저장된 입력 컨텐츠에 대한 정보를 상기 제1 프로세서로 제공하도록 시작 신호를 상기 제3 프로세서로 전송하고, 상기 제1 프로세서로 제어 신호를 전송하는 단계는 상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠에 대한 정보 및 상기 메모리에 저장된 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 상기 신경망 연산을 수행하도록 초기화 신호를 상기 제1 프로세서로 전송할 수 있다.
그리고, 상기 제3 프로세서로 제어 신호를 전송하는 단계는 상기 제3 프로세서가 상기 메모리의 보안 영역에 액세스하여 상기 입력 컨텐츠의 어드레스 정보를 식별하고, 상기 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하고, 상기 제1 프로세서로 제어 신호를 전송하는 단계는 상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠의 어드레스 정보 및 상기 메모리의 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 상기 신경망 연산을 수행하도록 초기화 신호를 상기 제1 프로세서로 전송할 수 있다.
또한, 상기 제2 프로세서가 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하는 단계 및 상기 제1 프로세서가 상기 제2 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득하는 단계를 더 포함할 수 있다.
그리고, 상기 제3 프로세서로 제어 신호를 전송하는 단계는 상기 제3 프로세서가 상기 입력 컨텐츠에 기초하여 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하며, 상기 제어 방법은 상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득하는 단계를 더 포함할 수 있다.
또한, 상기 입력 컨텐츠에 포함된 복수의 프레임이 순차적으로 수신되어 상기 메모리의 보안 영역에 저장되는 단계를 더 포함하고, 상기 제3 프로세서로 제어 신호를 전송하는 단계는 상기 제3 프로세서가 상기 메모리에 순차적으로 저장되는 프레임의 어드레스 정보를 기설정된 시간 간격으로 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송할 수 있다.
그리고, 상기 제3 프로세서로 제어 신호를 전송하는 단계는 제1 어플리케이션이 실행되면, 상기 제3 프로세서가 상기 입력 컨텐츠에 대한 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송할 수 있다.
또한, 상기 제1 어플리케이션이 종료되면, 상기 제3 프로세서가 상기 제공 동작을 중지하도록 상기 제2 프로세서가 상기 제3 프로세서로 종료 신호를 전송하는 단계, 상기 제3 프로세서의 제어에 의해 상기 제1 프로세서가 상기 신경망 연산 동작을 중지하는 단계 및 상기 제3 프로세서가 상기 신경망 연산 동작이 중지되었음을 나타내는 신호를 상기 제2 프로세서로 제공하는 단계를 더 포함할 수 있다.
한편, 본 개시의 다른 실시 예에 따르면, 메모리, 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하는 프로세서 칩의 제어 방법은 제1 어플리케이션이 실행되면, 상기 제2 프로세서가 상기 메모리에 저장된 데이터에 대한 정보를 상기 제1 프로세서로 전송하는 단계, 상기 제1 프로세서가 상기 제2 프로세서로부터 제공된 상기 데이터에 대한 정보 및 상기 메모리에 저장된 제1 인공 지능 모델 정보에 기초하여 상기 데이터에 대한 신경망(Neural Network) 연산을 수행하도록 상기 제2 프로세서가 상기 제1 프로세서로 제1 초기화 신호를 전송하는 단계, 상기 제1 어플리케이션이 종료되고 제2 어플리케이션이 실행되면, 상기 제3 프로세서가 상기 메모리에 저장된 입력 컨텐츠에 대한 정보를 상기 제1 프로세서로 제공하도록 상기 제2 프로세서가 상기 제3 프로세서로 시작 신호를 전송하는 단계 및 상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠에 대한 정보 및 상기 메모리에 저장된 제2 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 신경망 연산을 수행하도록 상기 제2 프로세서가 상기 제1 프로세서로 제2 초기화 신호를 전송하는 단계를 포함한다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 프로세서 칩은 컨텐츠의 원본에 대한 신경망(Neural Network) 연산을 수행함에 따라 메모리 사용을 줄이고, 컨텐츠의 출력 품질을 개선하며, 실시간 처리를 수행할 수 있다.
도 1은 종래 기술에 따른 NPU(Neural Processing Unit)의 제어 방법을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 프로세서 칩의 구성을 나타내는 블럭도이다.
도 3은 본 개시의 일 실시 예에 따른 메모리의 보안 영역 및 비보안 영역을 설명하기 위한 도면이다.
도 4a 및 도 4b는 본 개시의 일 실시 예에 따른 신경망 연산을 설명하기 위한 도면들이다.
도 5a 및 도 5b는 본 개시의 다른 실시 예에 따른 신경망 연산을 설명하기 위한 도면들이다.
도 6a 내지 도 6c는 본 개시의 일 실시 예에 따른 어플리케이션에 따른 동작을 설명하기 위한 도면들이다.
도 7은 본 개시의 일 실시 예에 따른 프로세서 칩의 제어 방법을 설명하기 위한 흐름도이다.
이하에서, 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 2는 본 개시의 일 실시 예에 따른 프로세서 칩(100)의 구성을 나타내는 블럭도이다.
도 2a에 도시된 바와 같이, 프로세서 칩(100)은 메모리(110), 제1 프로세서(120), 제2 프로세서(130) 및 제3 프로세서(140)를 포함한다.
프로세서 칩(100)은 신경망(Neural Network) 연산을 수행하는 장치로서, 예를 들어 프로세서 칩(100)은 TV, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 웨어러블 장치일 수 있다.
특히, 프로세서 칩(100)은 디스플레이(미도시)가 구비된 장치로서, 컨텐츠에 대한 신경망 연산을 수행하고, 신경망 연산에 따라 영상 처리된 컨텐츠를 디스플레이를 통해 디스플레이하는 장치일 수 있다. 또는, 프로세서 칩(100)은 별도의 디스플레이를 구비하지 않고, 컨텐츠에 대한 신경망 연산을 수행하는 장치일 수도 있다. 이 경우, 프로세서 칩(100)은 신경망 연산에 따라 영상 처리된 컨텐츠를 디스플레이 장치로 제공할 수 있다.
메모리(110)는 제1 프로세서(120), 제2 프로세서(130) 및 제3 프로세서(140)와 전기적으로 연결되며, 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리(110)는 제1 프로세서(120), 제2 프로세서(130) 및 제3 프로세서(140) 각각에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 제1 프로세서(120), 제2 프로세서(130) 및 제3 프로세서(140)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(110)는 데이터 저장 용도에 따라 프로세서 칩(100)에 임베디드된 메모리 형태로 구현되거나, 프로세서 칩(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 프로세서 칩(100)의 구동을 위한 데이터의 경우 프로세서 칩(100)에 임베디드된 메모리에 저장되고, 프로세서 칩(100)의 확장 기능을 위한 데이터의 경우 프로세서 칩(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 프로세서 칩(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 프로세서 칩(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
메모리(110)는 데이터에 대한 신경망 연산을 수행하기 위해 이용되는 인공 지능 모델을 저장할 수 있다. 예를 들어, 인공 지능 모델은 입력 컨텐츠의 해상도를 8K 업스케일링(Upscaling)하기 위한 모델로서, 원본 이미지(8K)와 원본 이미지가 다운스케일링된 이미지(ex : 4K)의 관계를 CNN(Convolution Neural Network, 컨벌루션 신경망) 학습한 모델일 수 있다. 여기서, CNN은 음성 처리, 이미지 처리 등을 위해 고안된 특수한 연결 구조를 가진 다층 신경망이다.
다만, 이는 일 실시 예에 불과하고, 인공 지능 모델은 RNN(Recurrent Neural Network), DNN(Deep Neural Network) 등 다양한 신경망(Neural Network)에 기반한 모델일 수도 있다.
그리고, 메모리(110)는 인공 지능 모델이 적용될 데이터를 저장할 수 있다. 예를 들어, 메모리(110)는 인공 지능 모델이 적용될 컨텐츠를 저장할 수 있다.
메모리(110)는 보안 영역 및 비보안 영역을 포함할 수 있다. 여기서, 보안 영역은 보안이 필요한 데이터가 저장되는 영역이고, 비보안 영역은 보안과는 무관한 데이터가 저장되는 영역이다. 예를 들어, 인공 지능 모델은 비보안 영역에 저장되고, 인공 지능 모델이 적용될 컨텐츠는 보안 영역에 저장될 수 있다.
다만, 이에 한정되는 것은 아니며, 인공 지능 모델이 보안이 필요하면 보안 영역에 저장될 수도 있다. 또한, 인공 지능 모델이 적용될 데이터가 보안과 무관하다면 비보안 영역에 저장될 수도 있다.
메모리(110)의 보안 영역 및 비보안 영역은 소프트웨어적으로 구분될 수 있다. 예를 들어, 제2 프로세서(130)는 메모리(110)와 전기적으로 연결되어 있으나, 소프트웨어적으로 메모리(110)의 30%에 해당하는 보안 영역을 인식하지 못할 수 있다.
다만, 이에 한정되는 것은 아니며, 메모리(110)의 보안 영역은 제1 메모리로 구현되고, 메모리(110)의 비보안 영역은 제2 메모리로 구현될 수도 있다. 즉, 메모리(110)의 보안 영역 및 비보안 영역은 하드웨어적으로 구분될 수도 있다.
후술할 제1 프로세서(120) 및 제3 프로세서(140)는 메모리(110)의 보안 영역 및 비보안 영역에 액세스가 가능하나, 제2 프로세서(130)는 메모리(110)의 보안 영역에는 액세스가 불가능하고, 비보안 영역에만 액세스가 가능하다.
제1 프로세서(120)는 신경망 연산을 수행하는 프로세서일 수 있다. 예를 들어, 제1 프로세서(120)는 NPU(Neural Processing Unit) 등과 같이 신경망 연산 전용 프로세서로서, 복수의 연산 소자(Processing Element)를 포함할 수 있다. 인접한 연산 소자 간에는 데이터의 일방향 시프트 또는 양방향 시프트가 가능하다.
연산 소자 각각은 기본적으로 곱셈기(multiplier) 및 산술 논리 연산 장치(Arithmetic Logic Unit, ALU)를 포함하며, ALU는 적어도 하나 이상의 가산기(adder)를 포함할 수 있다. 연산 소자는 곱셈기 및 ALU를 이용하여 사칙 연산을 수행할 수 있다. 다만, 이에 한정되는 것은 아니며, 사칙 연산 및 시프트 등과 같은 기능을 수행할 수 있다면 얼마든지 다른 구조로 형성될 수도 있다. 또한, 연산 소자 각각은 데이터를 저장하기 위한 레지스터를 포함할 수 있다.
제1 프로세서(120)는 복수의 연산 소자를 제어하는 제어부를 포함할 수 있으며, 제어부는 복수의 연산 소자를 제어하여 신경망 연산 과정에서 필요한 연산을 병렬적으로 처리할 수 있다.
제1 프로세서(120)는 제2 프로세서(130) 또는 제3 프로세서(140)의 제어에 따라, 신경망 연산을 수행할 수 있다. 예를 들어, 제1 프로세서(120)는 제2 프로세서(130) 또는 제3 프로세서(140)로부터 제공된 데이터에 대한 정보 및 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 데이터에 대한 신경망 연산을 수행할 수 있다. 여기서, 데이터는 보안 영역에 저장된 데이터일 수도 있고, 비보안 영역에 저장된 데이터일 수도 있다. 즉, 제1 프로세서(120)는 보안 영역에 액세스할 수 있다.
제2 프로세서(130)는 프로세서 칩(100)의 동작을 전반적으로 제어하며, 운영 체제(Operating System)에 기초하여 동작하는 프로세서일 수 있다. 다만, 제2 프로세서(130)는 메모리(110)의 보안 영역에는 액세스가 불가능하고, 비보안 영역에만 액세스가 가능하다.
일 실시 예에 따라 제2 프로세서(130)는 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 제2 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 즉, 제2 프로세서(130)는 범용 프로세서일 수 있다.
제2 프로세서(130)는 제1 프로세서(120) 및 제3 프로세서(140)가 동작을 수행하도록 제1 프로세서(120) 및 제3 프로세서(140)로 제어 신호를 전송할 수 있다.
제2 프로세서(130)는 제3 프로세서(140)가 메모리(110)에 저장된 입력 컨텐츠에 대한 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송할 수 있다. 예를 들어, 제2 프로세서(130)는 보안 영역에 액세스가 가능한 제3 프로세서(140)가 보안 영역에 액세스하여 입력 컨텐츠의 어드레스(address) 정보를 식별하고, 입력 컨텐츠의 어드레스 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송할 수 있다. 즉, 제2 프로세서(130)는 보안 영역에 액세스가 불가능하기 때문에 보안 영역에 액세스가 가능한 제3 프로세서(140)를 제어하여 보안 영역에 저장된 입력 컨텐츠의 어드레스 정보를 제1 프로세서(120)로 제공할 수 있다.
여기서, 제3 프로세서(140)는 제2 프로세서(130)와는 달리 프로세서 칩(100)의 동작 중 일부만을 필요에 따라 제어하는 프로세서로서, 기 설정된 동작만을 수행하는 프로세서일 수 있다. 특히, 제3 프로세서(140)는 임의로 동작이 변경될 수 없는 프로세서일 수 있다. 예를 들어, 제3 프로세서(140)는 DSP(Digital Signal Processor), GPU(Graphics Processing Unit) 등과 같은 신호 처리 전용 프로세서일 수 있으며, 필요에 따라 입력 컨텐츠에 대한 영상 처리를 수행하는 프로세서일 수 있다.
그리고, 제2 프로세서(130)는 제1 프로세서(120)가, 제3 프로세서(140)로부터 제공된 입력 컨텐츠에 대한 정보 및 메모리에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 초기화 신호를 제1 프로세서(120)로 전송할 수 있다. 예를 들어, 제2 프로세서(130)는 제1 프로세서(120)가, 제3 프로세서(140)로부터 제공된 입력 컨텐츠의 어드레스 정보 및 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 초기화 신호를 제1 프로세서(120)로 전송할 수 있다.
한편, 제2 프로세서(130)는 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 제1 프로세서(120)로 제공하며, 제1 프로세서(120)는 제2 프로세서(130)로부터 제공된 인공 지능 모델의 어드레스 정보에 기초하여 인공 지능 모델 정보를 획득할 수 있다.
예를 들어, 제2 프로세서(130)는 입력 컨텐츠에 대한 8K 업스케일링을 수행하는 경우, 제3 프로세서(140)가 보안 영역에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 입력 컨텐츠의 어드레스 정보를 제1 프로세서(120)로 제공하도록 제어할 수 있다. 그리고, 제2 프로세서(130)는 비보안 영역에 액세스하여 8K 업스케일링을 수행하는 인공 지능 모델의 어드레스 정보를 식별하고, 인공 지능 모델의 어드레스 정보를 제1 프로세서(120)로 제공할 수 있다. 그리고, 제1 프로세서(120)는 제3 프로세서(140)로부터 제공된 입력 컨텐츠의 어드레스 정보 및 인공 지능 모델의 어드레스 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 제어할 수 있다.
또는, 제2 프로세서(130)는 제3 프로세서(140)가 입력 컨텐츠에 기초하여 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송하며, 제1 프로세서(120)는 제3 프로세서(140)로부터 제공된 인공 지능 모델의 어드레스 정보에 기초하여 인공 지능 모델 정보를 획득할 수도 있다.
예를 들어, 제3 프로세서(140)는 입력 컨텐츠를 분석하여 입력 컨텐츠에 필요한 영상 처리 타입을 식별할 수 있다. 가령, 제3 프로세서(140)는 입력 컨텐츠의 해상도가 디스플레이의 해상도보다 낮다면 업스케일링을 수행하는 인공 지능 모델의 어드레스 정보를 식별하고, 입력 컨텐츠의 해상도가 디스플레이의 해상도와 동일하더라도 품질이 낮다면 영상의 노이즈를 제거하는 인공 지능 모델의 어드레스 정보를 식별할 수 있다.
즉, 인공 지능 모델의 어드레스 정보는 제2 프로세서(130)가 제공할 수도 있고, 제3 프로세서(140)가 입력 컨텐츠를 분석한 후 제공할 수도 있다. 여기서, 제2 프로세서(130)는 보안 영역에 저장된 입력 컨텐츠를 분석할 수 없으므로, 제2 프로세서(130)가 제공하는 인공 지능 모델은 사용자의 선택에 대응되는 인공 지능 모델일 수 있다. 가령, 제2 프로세서(130)는 사용자가 영화 모드로 입력 컨텐츠의 재생을 원하는 경우, 영화 모드에 대응되는 인공 지능 모델의 어드레스 정보를 식별할 수 있다.
다만, 이에 한정되는 것은 아니며, 제2 프로세서(130)는 센서를 이용하여 주변 환경 정보를 식별하고, 주변 환경 정보에 대응되는 인공 지능 모델의 어드레스 정보를 식별할 수도 있다.
한편, 프로세서 칩(100)은 통신 인터페이스(미도시)를 더 포함하며, 입력 컨텐츠에 포함된 복수의 프레임은 통신 인터페이스를 통해 순차적으로 수신되어 메모리(110)의 보안 영역에 저장되고, 제2 프로세서(130)는 제3 프로세서(140)가 메모리(110)에 순차적으로 저장되는 프레임의 어드레스 정보를 기설정된 시간 간격으로 제1 프로세서(120)로 제공하도록 시작 신호를 전송할 수 있다.
여기서, 통신 인터페이스는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신 인터페이스는 안테나를 통해 수신되는 RF(Radio Frequency) 방송 신호 중 사용자에 의해 선택된 채널 또는 기 저장된 모든 채널을 튜닝하여 RF 방송 신호를 수신하는 튜너를 포함할 수 있다. 이 경우, 프로세서 칩(100)은 튜너에서 변환된 디지털 IF 신호(DIF)를 수신하여 복조하고, 채널 복호화 등을 수행하는 복조부를 더 포함할 수 있다. 또한, 통신 인터페이스는 와이파이 칩, 블루투스 칩, 무선 통신 칩, NFC 칩 등과 같이 무선 통신을 수행하는 구성을 포함할 수 있다. 와이파이 칩, 블루투스 칩은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. 또한, 통신 인터페이스는 HDMI, MHL, USB, DP, 썬더볼트, RGB, D-SUB, DVI 등과 같이 유선 통신을 수행하는 구성을 포함할 수도 있다. 즉, 프로세서 칩(100)은 통신 인터페이스를 통해 외부 장치로부터 컨텐츠 재생 화면을 수신하거나, 통신 인터페이스를 통해 컨텐츠 재생 화면을 외부 장치로 전송할 수 있다.
한편, 제2 프로세서(130)는 제1 어플리케이션이 실행되면, 제3 프로세서(140)가 입력 컨텐츠에 대한 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송할 수 있다.
그리고, 제2 프로세서(130)는 제1 어플리케이션이 종료되면, 제3 프로세서(140)가 제공 동작을 중지하도록 제3 프로세서(140)로 종료 신호를 전송하고, 제3 프로세서(140)는 제1 프로세서(120)가 신경망 연산 동작을 중지하도록 제어하며, 신경망 연산 동작이 중지되었음을 나타내는 신호를 제2 프로세서(130)로 제공할 수 있다.
한편, 제2 프로세서(130)는 제2 어플리케이션이 실행되면, 비보안 영역에 액세스하여 제2 어플리케이션에 대응되는 데이터의 어드레스 정보를 식별하며, 식별된 어드레스 정보를 제1 프로세서(120)로 제공하고, 제1 프로세서(120)가 제2 프로세서(130)로부터 제공된 데이터의 어드레스 정보 및 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 데이터에 대한 신경망 연산을 수행하도록 제어할 수 있다.
여기서, 제1 어플리케이션은 컨텐츠의 영상 처리와 관련된 어플리케이션이고, 제2 어플리케이션은 컨텐츠와는 무관한 어플리케이션일 수 있다.
예를 들어, 제2 프로세서(130)는 컨텐츠의 영상 처리와 관련된 제1 어플리케이션이 실행되면, 제3 프로세서(140)가 보안 영역에 저장된 컨텐츠의 어드레스 정보를 획득하도록 제어하고, 컨텐츠와 무관한 제2 어플리케이션이 실행되면, 직접 비보안 영역에 저장된 데이터의 어드레스 정보를 획득할 수 있다.
한편, 프로세서 칩(100)은 디스플레이(미도시)를 더 포함하고, 제2 프로세서(130)는 제3 프로세서(140)가 복수의 입력 컨텐츠 중 디스플레이를 통해 디스플레이되는 입력 컨텐츠의 어드레스 정보를 식별하고, 식별된 어드레스 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송할 수 있다.
예를 들어, 프로세서 칩(100)은 HDMI(High-Definition Multimedia Interface)로 연결된 외부 장치로부터 제1 입력 컨텐츠를 수신하고, 튜너를 통해 방송국으로부터 제2 입력 컨텐츠를 수신하며, 제1 입력 컨텐츠 및 제2 입력 컨텐츠를 보안 영역에 저장할 수 있다. 이 경우, 제2 프로세서(130)는 제3 프로세서(140)가 제1 입력 컨텐츠 및 제2 입력 컨텐츠 중 디스플레이를 통해 디스플레이되는 입력 컨텐츠의 어드레스 정보를 식별하고, 식별된 어드레스 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송할 수 있다.
여기서, 디스플레이는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이는 터치 감지부와 결합하여 터치 스크린으로 구현될 수 있다.
한편, 제2 프로세서(130)는 제1 프로세서(110)를 초기화(initializing)한 후, 제3 프로세서(140)가 보안 영역에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 식별된 어드레스 정보를 제1 프로세서(120)로 제공하도록 시작 신호를 제3 프로세서(140)로 전송할 수 있다.
한편, 이상에서는 제2 프로세서(130) 또는 제3 프로세서(140)가 어드레스 정보를 제1 프로세서(120)로 제공하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 제2 프로세서(130) 또는 제3 프로세서(140)는 데이터, 입력 컨텐츠 또는 인공 지능 모델을 획득하여 직접 제1 프로세서(120)로 제공할 수도 있다.
이상과 같이 제2 프로세서(130)가 보안 영역에 액세스가 불가능한 문제점을 보안 영역에 액세스가 가능한 제3 프로세서(140)를 이용하는 방식으로 해결할 수 있다.
이하에서는 도면을 통해 각 프로세서의 동작을 좀더 구체적으로 설명한다.
도 3은 본 개시의 일 실시 예에 따른 메모리(110)의 보안 영역 및 비보안 영역을 설명하기 위한 도면이다. 특히, 도 3을 통해 제2 프로세서(130)가 메모리(110)의 보안 영역에 액세스가 불가능하더라도 입력 컨텐츠의 저장 및 디스플레이가 가능함을 설명한다.
먼저, 프로세서 칩(100)은 입력 컨텐츠를 수신할 수 있다. 도 3에서는 입력 컨텐츠의 수신을 스트리밍으로 표시했으며, 이는 입력 컨텐츠가 실시간으로 수신되고 있음을 의미한다. 또한, 인터넷을 통해 입력 컨텐츠가 스트리밍되는 것뿐만 아니라 외부 장치로부터 유선으로 컨텐츠를 수신하는 것도 스트리밍으로 표시하였다.
프로세서 칩(100)은 외부로부터 인코딩된 입력 컨텐츠를 수신하고, 디코더를 통해 입력 컨텐츠를 디코딩할 수 있다. 그리고, 디코딩된 컨텐츠를 메모리(110)의 보안 영역에 저장될 수 있다.
여기서, 디코딩된 컨텐츠는 제공 소스에 따라 보안 영역 내에서 저장되는 영역이 달라질 수 있다. 예를 들어, 디코딩된 컨텐츠가 튜너를 통해 수신된 경우 디코딩된 컨텐츠는 보안 영역의 제1 영역에 저장되고, 디코딩된 컨텐츠가 HDMI로 연결된 외부 장치로부터 수신된 경우 디코딩된 컨텐츠는 보안 영역의 제2 영역에 저장될 수 있다. 즉, 보안 영역은 컨텐츠의 제공 소스 별로 구분된 복수의 영역으로 구분될 수 있고, 제3 프로세서(140)는 보안 영역의 구분된 복수의 영역에 대한 정보를 식별할 수 있다.
이후, 보안 영역에 저장된 컨텐츠는 영상 처리를 거쳐 디스플레이될 수 있다. 여기서, 영상 처리는 RTL(Register-Transfer Level)과 같은 디지털 회로, 제1 프로세서(120) 또는 제3 프로세서(140)에 의해 수행될 수 있다. 여기서, RTL(Register-Transfer Level)과 같은 디지털 회로는 변경 가능성이 낮은 경우에 이용되고, 제3 프로세서(140)는 변경 가능성이 높은 경우에 이용될 수 있다. 예를 들어, 복잡한 알고리즘(FRC)이라도, 정해진 개수의 모드만 존재한다면(ex : 30Hz, 60Hz, 120Hz) RTL과 같은 디지털 회로로 구현될 수 있으며, 이 경우 제3 프로세서(140)를 이용하는 경우보다 전력 및 원가 측면에서 유리하다. 또는, 사용자에 의한 변화 요소가 많거나, 사용 타입(지역)에 의해 변화 요소가 다수 존재하는 알고리즘의 경우(ex : Game 모드, 주변 밝기에 따른 자동 화면 조정)에는 RTL과 같은 디지털 회로로 구현 시 고정적으로 사용되지 않을 가능성이 높으며, 칩 안에서 면적만 차지하게 되는 문제가 있을 수 있다. 이 경우에는 제3 프로세서(140)를 이용하는 것이 RTL과 같은 디지털 회로를 이용하는 것보다 유리하다. 그리고, 제1 프로세서(120)는 인공 지능 모델을 이용한 영상 처리를 수행할 수 있다.
한편, 이상의 스트리밍, 디코딩, 저장 등의 동작은 디지털 회로를 통해 구현될 수 있다. 제2 프로세서(130)는 각 디지털 회로를 제어하여 입력 컨텐츠에 대한 처리를 수행할 수 있으나, 입력 컨텐츠에 대한 직접적인 액세스는 허용되지 않는다. 즉, 제2 프로세서(130)가 메모리(110)의 보안 영역에 액세스가 불가능하더라도 입력 컨텐츠를 디스플레이하는 동작에는 전혀 문제가 발생하지 않을 수 있다.
도 4a 및 도 4b는 본 개시의 일 실시 예에 따른 신경망 연산을 설명하기 위한 도면들이다.
도 4a에 도시된 바와 같이, 제2 프로세서(CPU, 130)는 O/S(Operating System)를 이용하여 부팅을 수행하고, 비보안 영역(Storage 1) 내에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 사용자의 각종 메뉴 입력을 통한 제어, 어플리케이션 수행 등과 같은 다양한 동작을 수행할 수 있다.
제2 프로세서(130)는 비보안 영역에 액세스가 가능하나, 보안 영역(Storage 2)에는 액세스가 불가능하다. 프로세서 칩(100) 외부로부터 수신된 입력 컨텐츠 등과 같이 컨텐츠 저작권(DRM)이나 개인 정보와 같이 보안이 필요한 데이터는 보안 영역에 저장될 수 있으며, 제2 프로세서(130)는 보안이 필요한 데이터를 독출할 수 없다.
제3 프로세서(140)는 디지털 신호 처리를 독립적으로 수행하는 프로세서로서 O/S를 사용하지 않고, 기설정된 동작을 수행하기 위해 미리 저장된 프로그램을 사용한다. 그에 따라, 제3 프로세서(140)는 보안이 필요한 데이터가 저장된 보안 영역에 액세스가 가능하다.
제1 프로세서(120)는 신경망 연산 전용의 프로세서로서 O/S를 사용하지 않기 때문에 보안 영역에 액세스가 가능하다.
제2 프로세서(130)는 입력 컨텐츠의 어드레스 정보를 식별할 수 없기 때문에 입력 컨텐츠에 대한 신경망 연산을 수행하기 위해서 제3 프로세서(140)를 제어할 수 있다.
먼저, 제2 프로세서(130)는 제1 프로세서(120)를 초기화할 수 있다. 제2 프로세서(130)가 제1 프로세서(120)를 초기화하는 이유는 제2 프로세서(130)에서 O/S를 통해 TV 시스템을 제어하기 때문이다. O/S는 각 프로세서들에 대해 드라이버를 통해 자원(Resource)을 관리하고 있고, 이는 메모리(110)와 같은 자원 관리에 효과적인 시스템이다. 즉, 제2 프로세서(130)는 드라이버를 통해 제1 프로세서(120)를 초기화하여 자원을 효율적으로 관리할 수 있다.
이후, 제2 프로세서(130)는 제3 프로세서(140)가 보안 영역에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 입력 컨텐츠의 어드레스 정보를 제1 프로세서(120)로 제공하도록 제어할 수 있다. 제2 프로세서(130)의 제3 프로세서(140)에 대한 제어 동작은 1회의 제어 동작일 수 있다.
제3 프로세서(140)는 제1 프로세서(120)가, 제3 프로세서(140)로부터 제공된 입력 컨텐츠의 어드레스 정보 및 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 제어할 수 있다. 제3 프로세서(140)의 제1 프로세서(120)에 대한 제어 동작은 기설정된 시간 간격으로 반복되는 제어 동작일 수 있다. 가령, 제3 프로세서(140)는 입력 컨텐츠가 30fps의 영상인 경우, 33.3ms 간격으로 제1 프로세서(120)로 입력을 제공하며, 신경망 연산을 수행하도록 제어할 수 있다.
즉, 제3 프로세서(140)는 입력 컨텐츠의 매 프레임마다 매 프레임의 어드레스 정보를 제1 프로세서(120)로 제공하며, 신경망 연산을 수행하도록 제어(Trigger)할 수 있다. 다만, 이에 한정되는 것은 아니며, 제3 프로세서(140)는 입력 컨텐츠의 매 프레임을 획득하고, 획득된 프레임을 제1 프로세서(120)로 제공하며, 신경망 연산을 수행하도록 제어할 수도 있다.
한편, 제1 프로세서(120)가 신경망 연산을 수행하는 경우에 이용되는 인공 지능 모델은 제2 프로세서(130)가 제공할 수 있다. 여기서, 인공 지능 모델은 비보안 영역에 저장되어 있으며, 제2 프로세서(130)는 비보안 영역에 액세스하여 인공 지능 모델의 어드레스 정보를 제1 프로세서(120)로 제공할 수 있다.
이상과 같은 동작을 통해 제2 프로세서(130)가 아닌 제3 프로세서(140)가 입력 컨텐츠에 대한 어드레스 정보를 식별하고, 제1 프로세서(120)의 신경망 연산 동작을 제어하게 된다. 그에 따라, 입력 컨텐츠에 대한 보안을 유지하며, 제2 프로세서(130)의 연산 부담을 줄인 상태로 제1 프로세서(120)를 이용한 실시간 신경망 연산을 수행할 수 있다.
도 4a에서는 메모리(110)가 보안 영역 및 비보안 영역을 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 도 4b에 도시된 바와 같이, 프로세서 칩(100)은 하드웨어적으로 구분된 제1 메모리(111) 및 제2 메모리(112)를 포함할 수도 있다. 여기서, 제1 메모리(111)는 비보안 데이터가 저장되는 메모리로서, 제2 프로세서(130)의 액세스가 가능한 메모리일 수 있다. 제2 메모리(112)는 보안 데이터가 저장되는 메모리로서, 제2 프로세서(130)의 액세스가 불가능한 메모리일 수 있다. 제1 프로세서(120) 및 제3 프로세서(140)는 제1 메모리(111) 및 제2 메모리(112)에 대한 액세스가 가능하다. 도 4b의 동작은 메모리가 하드웨어적으로 구분된 점 외에는 도 4a의 동작과 동일하므로 중복되는 설명은 생략한다.
도 5a 및 도 5b는 본 개시의 다른 실시 예에 따른 신경망 연산을 설명하기 위한 도면들이다.
도 5a는 도 4a의 동작과 거의 동일하나, 인공 지능 모델의 어드레스 정보를 식별하고, 어드레스 정보를 제1 프로세서(120)로 제공하는 주체가 제3 프로세서(140)인 경우를 설명하기 위한 도면이다.
제2 프로세서(130)와는 달리 제3 프로세서(140)는 보안 영역(Storage 2)에 저장된 입력 컨텐츠에 대한 액세스가 가능하므로, 입력 컨텐츠에 대한 분석이 가능하다. 그에 따라, 제3 프로세서(140)는 입력 컨텐츠에 최적화된 인공 지능 모델을 식별할 수 있다. 가령, 제3 프로세서(140)는 입력 컨텐츠의 노이즈가 문제된다고 판단되면 비보안 영역(Storage 1)에서 노이즈를 제거하기 위한 인공 지능 모델의 어드레스 정보를 식별하고, 입력 컨텐츠의 해상도가 문제된다고 판단되면 비보안 영역(Storage 1)에서 해상도를 확장하기 위한 인공 지능 모델의 어드레스 정보를 식별할 수 있다. 제3 프로세서(140)는 인공 지능 모델의 어드레스 정보를 제1 프로세서(120)로 제공할 수 있다.
도 5a에서는 메모리(110)가 보안 영역 및 비보안 영역을 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 도 5b에 도시된 바와 같이, 프로세서 칩(100)은 하드웨어적으로 구분된 제1 메모리(111) 및 제2 메모리(112)를 포함할 수도 있으며, 도 4b와 중복되므로 구체적인 설명은 생략한다.
도 6a 내지 도 6c는 본 개시의 일 실시 예에 따른 어플리케이션에 따른 동작을 설명하기 위한 도면들이다.
도 6a에 도시된 바와 같이, 입력 컨텐츠와 무관한 어플리케이션 A가 실행된 경우, 제2 프로세서(130)는 메모리(110)에 저장된 데이터에 대한 정보 및 인공 지능 모델에 대한 정보를 제1 프로세서(120)로 제공할 수 있다. 제2 프로세서(130)는 제1 프로세서(120)가 제공된 정보에 기초하여 데이터에 대한 신경망 연산을 수행하도록 제어할 수 있다. 좀더 구체적으로, 입력 컨텐츠와 무관한 어플리케이션 A가 실행된 경우, 제2 프로세서(130)는 비보안 영역에 저장된 데이터의 제1 어드레스 정보 및 인공 지능 모델의 제2 어드레스 정보를 식별하고, 제1 어드레스 정보와 제2 어드레스 정보를 제1 프로세서(120)로 제공할 수 있다. 제2 프로세서(130)는 제1 프로세서(120)가 제1 어드레스 정보와 제2 어드레스 정보에 기초하여 데이터에 대한 신경망 연산을 수행하도록 제어할 수 있다.
예를 들어, 어플리케이션 A는 센서를 통해 감지된 주변 조도값을 입력으로 받아 가장 알맞은 밝기를 연산하는 어플리케이션일 수 있다. 여기서, 주변 조도값은 보안이 필요한 데이터가 아니므로 비보안 영역에 저장될 수 있다. 제2 프로세서(130)는 주변 조도값의 제1 어드레스 정보 및 어플리케이션 A에 대응되는 인공 지능 모델의 제2 어드레스 정보를 식별하고, 제1 어드레스 정보와 제2 어드레스 정보를 제1 프로세서(120)로 제공할 수 있다. 제2 프로세서(130)는 제1 프로세서(120)가 제1 어드레스 정보와 제2 어드레스 정보에 기초하여 주변 조도값에 대응되는 가장 알맞은 밝기를 연산하도록 제어할 수 있다.
즉, 이 경우 제2 프로세서(130)는 제3 프로세서(140)를 이용할 필요가 없다.
이후, 도 6b와 같이 어플리케이션 A가 종료되고 입력 컨텐츠를 영상 처리하는 어플리케이션 B가 실행되면, 제2 프로세서(130)는 제3 프로세서(140)가 메모리(110)에 저장된 입력 컨텐츠에 대한 정보를 제1 프로세서(120)로 제공하도록 제어할 수 있다.
예를 들어, 어플리케이션 A가 종료되고 입력 컨텐츠를 영상 처리하는 어플리케이션 B가 실행되면, 제2 프로세서(130)는 제3 프로세서(140)가 보안 영역(Storage 2)에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 입력 컨텐츠의 어드레스 정보를 제1 프로세서(120)로 제공하도록 제어할 수 있다.
제3 프로세서(140)는 제1 프로세서(120)가, 제3 프로세서(140)로부터 제공된 입력 컨텐츠에 대한 정보 및 비보안 영역(Storage 1)에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 제어할 수 있다.
예를 들어, 제3 프로세서(140)는 제1 프로세서(120)가, 제3 프로세서(140)로부터 제공된 입력 컨텐츠의 어드레스 정보 및 비보안 영역(Storage 1)에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 제어할 수 있다. 구체적으로, 제3 프로세서(140)는 기설정된 주기로 수신되는 입력 컨텐츠를 보안 영역에서 독출하여 제1 프로세서(120)를 통해 영상 처리를 수행한 후, 다시 보안 영역에 저장하는 동작을 반복할 수 있다.
즉, 이 경우 제2 프로세서(130)는 제1 프로세서(120)를 초기화한 후, 이후의 동작은 제3 프로세서(140)에게 위임할 수 있다.
특히, 제2 프로세서(130)는 프로세서 칩(100)의 전반적인 동작을 제어하는 프로세서이나, 제3 프로세서(140)는 필요한 경우에만 이용되는 프로세서로서, 제3 프로세서(140)가 실시간 영상 처리에 좀더 유리할 수 있다.
도 6b에서는 메모리(110)가 보안 영역 및 비보안 영역을 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 도 6c에 도시된 바와 같이, 프로세서 칩(100)은 하드웨어적으로 구분된 제1 메모리(111) 및 제2 메모리(112)를 포함할 수도 있으며, 도 4b와 중복되므로 구체적인 설명은 생략한다.
도 7은 본 개시의 일 실시 예에 따른 프로세서 칩의 제어 방법을 설명하기 위한 흐름도이다.
메모리, 메모리에 저장된 데이터에 대한 신경망(Neural Network) 연산을 수행하는 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하는 프로세서 칩의 제어 방법은 먼저, 제3 프로세서가 동작을 수행하도록 제2 프로세서가 제3 프로세서로 제어 신호를 전송한다(S710). 그리고, 제1 프로세서가 동작을 수행하도록 제2 프로세서가 제1 프로세서로 제어 신호를 전송한다(S720).
여기서, 제3 프로세서로 제어 신호를 전송하는 단계(S710)는 제3 프로세서가 메모리에 저장된 입력 컨텐츠에 대한 정보를 제1 프로세서로 제공하도록 시작 신호를 제3 프로세서로 전송하고, 제1 프로세서로 제어 신호를 전송하는 단계(S720)는 제1 프로세서가 제3 프로세서로부터 제공된 입력 컨텐츠에 대한 정보 및 메모리에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 초기화 신호를 상기 제1 프로세서로 전송할 수 있다.
그리고, 제3 프로세서로 제어 신호를 전송하는 단계(S710)는 제3 프로세서가 메모리의 보안 영역에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 입력 컨텐츠의 어드레스 정보를 제1 프로세서로 제공하도록 시작 신호를 제3 프로세서로 전송하고, 제1 프로세서로 제어 신호를 전송하는 단계(S720)는 제1 프로세서가 제3 프로세서로부터 제공된 입력 컨텐츠의 어드레스 정보 및 메모리의 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 입력 컨텐츠에 대한 신경망 연산을 수행하도록 초기화 신호를 제1 프로세서로 전송할 수 있다.
여기서, 제2 프로세서가 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 제1 프로세서로 제공하는 단계 및 제1 프로세서가 제2 프로세서로부터 제공된 인공 지능 모델의 어드레스 정보에 기초하여 인공 지능 모델 정보를 획득하는 단계를 더 포함할 수 있다.
또는, 제3 프로세서로 제어 신호를 전송하는 단계(S710) 제3 프로세서가 입력 컨텐츠에 기초하여 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 제1 프로세서로 제공하도록 시작 신호를 제3 프로세서로 전송하며, 제어 방법은 제1 프로세서가 제3 프로세서로부터 제공된 인공 지능 모델의 어드레스 정보에 기초하여 인공 지능 모델 정보를 획득하는 단계를 더 포함할 수 있다.
한편, 입력 컨텐츠에 포함된 복수의 프레임이 순차적으로 수신되어 메모리의 보안 영역에 저장되는 단계를 더 포함하고, 제3 프로세서로 제어 신호를 전송하는 단계(S710)는 제3 프로세서가 메모리에 순차적으로 저장되는 프레임의 어드레스 정보를 기설정된 시간 간격으로 제1 프로세서로 제공하도록 시작 신호를 제3 프로세서로 전송할 수 있다.
그리고, 제3 프로세서로 제어 신호를 전송하는 단계(S710)는 제1 어플리케이션이 실행되면, 제3 프로세서가 입력 컨텐츠에 대한 정보를 제1 프로세서로 제공하도록 시작 신호를 제3 프로세서로 전송할 수 있다.
여기서, 제1 어플리케이션이 종료되면, 제3 프로세서가 제공 동작을 중지하도록 제2 프로세서가 제3 프로세서로 종료 신호를 전송하는 단계, 제3 프로세서의 제어에 의해 제1 프로세서가 신경망 연산 동작을 중지하는 단계 및 제3 프로세서가 신경망 연산 동작이 중지되었음을 나타내는 신호를 제2 프로세서로 제공하는 단계를 더 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 프로세서 칩은 CPU가 아닌 DSP를 이용하여 컨텐츠의 원본에 대한 신경망(Neural Network) 연산을 수행함에 따라 메모리 사용을 줄이고, 컨텐츠의 출력 품질을 개선하며, 실시간 처리를 수행할 수 있다.
한편, 이상에서는 설명의 편의를 위하여, 메모리, 제1 프로세서, 제2 프로세서 및 제3 프로세서가 하나의 프로세서 칩으로 구현된 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 전자 장치가 메모리, CPU, DSP 및 NPU를 별개의 구성으로 포함하도록 구현될 수도 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 프로세서 칩 110 : 메모리
120 : 제1 프로세서 130 : 제2 프로세서
140 : 제3 프로세서

Claims (20)

  1. 신경망(Neural Network) 연산을 수행하는 프로세서 칩에 있어서,
    메모리;
    상기 메모리에 저장된 데이터에 대한 상기 신경망 연산을 수행하는 제1 프로세서;
    제2 프로세서; 및
    제3 프로세서;를 포함하며,
    상기 메모리는, 상기 제2 프로세서의 액세스가 불가능한 보안 영역 및 상기 제2 프로세서의 액세스가 가능한 비보안 영역을 포함하며,
    상기 제2 프로세서는,
    상기 제3 프로세서가 상기 보안 영역에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 상기 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록 시작 신호를 상기 제3 프로세서로 전송하며,
    상기 제1 프로세서가, 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠의 어드레스 정보 및 상기 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 신경망 연산을 수행하도록 초기화 신호를 상기 제1 프로세서로 전송하는, 프로세서 칩.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 제2 프로세서는,
    상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하며,
    상기 제1 프로세서는,
    상기 제2 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득하는, 프로세서 칩.
  5. 제1항에 있어서,
    상기 제2 프로세서는,
    상기 제3 프로세서가, 상기 입력 컨텐츠에 기초하여 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하며,
    상기 제1 프로세서는,
    상기 제3 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득하는, 프로세서 칩.
  6. 제1항에 있어서,
    통신 인터페이스;를 더 포함하며,
    상기 입력 컨텐츠에 포함된 복수의 프레임은,
    상기 통신 인터페이스를 통해 순차적으로 수신되어 상기 메모리의 보안 영역에 저장되고,
    상기 제2 프로세서는,
    상기 제3 프로세서가, 상기 메모리에 순차적으로 저장되는 프레임의 어드레스 정보를 기설정된 시간 간격으로 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하는, 프로세서 칩.
  7. 제1항에 있어서,
    상기 제2 프로세서는,
    제1 어플리케이션이 실행되면, 상기 제3 프로세서가 상기 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하는, 프로세서 칩.
  8. 제7항에 있어서,
    상기 제2 프로세서는,
    상기 제1 어플리케이션이 종료되면, 상기 제3 프로세서가 상기 제공 동작을 중지하도록 상기 제3 프로세서로 종료 신호를 전송하고,
    상기 제3 프로세서는,
    상기 제1 프로세서가 상기 신경망 연산 동작을 중지하도록 제어하며, 상기 신경망 연산 동작이 중지되었음을 나타내는 신호를 상기 제2 프로세서로 제공하는, 프로세서 칩.
  9. 제1항에 있어서,
    상기 제2 프로세서는,
    제2 어플리케이션이 실행되면, 상기 비보안 영역에 액세스하여 상기 제2 어플리케이션에 대응되는 데이터의 어드레스 정보를 식별하며,
    상기 식별된 어드레스 정보를 상기 제1 프로세서로 제공하고,
    상기 제1 프로세서가 상기 제2 프로세서로부터 제공된 상기 데이터의 어드레스 정보 및 상기 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 상기 데이터에 대한 신경망 연산을 수행하도록 제어하는, 프로세서 칩.
  10. 제1항에 있어서,
    디스플레이;를 더 포함하고,
    상기 제2 프로세서는,
    상기 제3 프로세서가 복수의 입력 컨텐츠 중 상기 디스플레이를 통해 디스플레이되는 입력 컨텐츠의 어드레스 정보를 식별하고, 상기 식별된 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하는, 프로세서 칩.
  11. 제1항에 있어서,
    상기 제1 프로세서는,
    NPU(Neural Processing Unit)이고,
    상기 제2 프로세서는,
    운영 체제(Operating System)에 기초하여 동작하는 프로세서이며,
    상기 제3 프로세서는,
    기 설정된 동작을 수행하는 프로세서인, 프로세서 칩.
  12. 메모리, 상기 메모리에 저장된 데이터에 대한 신경망(Neural Network) 연산을 수행하는 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하는 프로세서 칩의 제어 방법에 있어서,
    상기 제3 프로세서가 상기 메모리의 보안 영역에 액세스하여 입력 컨텐츠의 어드레스 정보를 식별하고, 상기 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록, 상기 제2 프로세서가 상기 제3 프로세서로 시작 신호를 전송하는 단계; 및
    상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠의 어드레스 정보 및 상기 메모리의 비보안 영역에 저장된 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 상기 신경망 연산을 수행하도록, 상기 제2 프로세서가 상기 제1 프로세서로 초기화 신호를 전송하는 단계;를 포함하며,
    상기 보안 영역은, 상기 제2 프로세서의 액세스가 불가능한 영역이고,
    상기 비보안 영역은, 상기 제2 프로세서의 액세스가 가능한 영역인, 제어 방법.
  13. 삭제
  14. 삭제
  15. 제12항에 있어서,
    상기 제2 프로세서가 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하는 단계; 및
    상기 제1 프로세서가 상기 제2 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득하는 단계;를 더 포함하는, 제어 방법.
  16. 제12항에 있어서,
    상기 제3 프로세서로 상기 시작 신호를 전송하는 단계는,
    상기 제3 프로세서가 상기 입력 컨텐츠에 기초하여 상기 비보안 영역에 저장된 복수의 인공 지능 모델 중 하나에 대한 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하며,
    상기 제어 방법은,
    상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 인공 지능 모델의 어드레스 정보에 기초하여 상기 인공 지능 모델 정보를 획득하는 단계;를 더 포함하는, 제어 방법.
  17. 제12항에 있어서,
    상기 입력 컨텐츠에 포함된 복수의 프레임이 순차적으로 수신되어 상기 메모리의 보안 영역에 저장되는 단계;를 더 포함하고,
    상기 제3 프로세서로 상기 시작 신호를 전송하는 단계는,
    상기 제3 프로세서가 상기 메모리에 순차적으로 저장되는 프레임의 어드레스 정보를 기설정된 시간 간격으로 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하는, 제어 방법.
  18. 제12항에 있어서,
    상기 제3 프로세서로 상기 시작 신호를 전송하는 단계는,
    제1 어플리케이션이 실행되면, 상기 제3 프로세서가 상기 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 시작 신호를 상기 제3 프로세서로 전송하는, 제어 방법.
  19. 제18항에 있어서,
    상기 제1 어플리케이션이 종료되면, 상기 제3 프로세서가 상기 제공 동작을 중지하도록 상기 제2 프로세서가 상기 제3 프로세서로 종료 신호를 전송하는 단계;
    상기 제3 프로세서의 제어에 의해 상기 제1 프로세서가 상기 신경망 연산 동작을 중지하는 단계; 및
    상기 제3 프로세서가 상기 신경망 연산 동작이 중지되었음을 나타내는 신호를 상기 제2 프로세서로 제공하는 단계;를 더 포함하는, 제어 방법.
  20. 메모리, 제1 프로세서, 제2 프로세서 및 제3 프로세서를 포함하는 프로세서 칩의 제어 방법에 있어서,
    제1 어플리케이션이 실행되면, 상기 제2 프로세서가 상기 메모리에 저장된 데이터에 대한 정보를 상기 제1 프로세서로 전송하는 단계;
    상기 제1 프로세서가 상기 제2 프로세서로부터 제공된 상기 데이터에 대한 정보 및 상기 메모리에 저장된 제1 인공 지능 모델 정보에 기초하여 상기 데이터에 대한 신경망(Neural Network) 연산을 수행하도록 상기 제2 프로세서가 상기 제1 프로세서로 제1 초기화 신호를 전송하는 단계;
    상기 제1 어플리케이션이 종료되고 제2 어플리케이션이 실행되면, 상기 제3 프로세서가 상기 메모리의 보안 영역에 저장된 입력 컨텐츠의 어드레스 정보를 상기 제1 프로세서로 제공하도록 상기 제2 프로세서가 상기 제3 프로세서로 시작 신호를 전송하는 단계; 및
    상기 제1 프로세서가 상기 제3 프로세서로부터 제공된 상기 입력 컨텐츠의 어드레스 정보 및 상기 메모리의 비보안 영역에 저장된 제2 인공 지능 모델 정보에 기초하여 상기 입력 컨텐츠에 대한 신경망 연산을 수행하도록 상기 제2 프로세서가 상기 제1 프로세서로 제2 초기화 신호를 전송하는 단계;를 포함하며,
    상기 보안 영역은, 상기 제2 프로세서의 액세스가 불가능한 영역이고,
    상기 비보안 영역은, 상기 제2 프로세서의 액세스가 가능한 영역인, 제어 방법.
KR1020190099124A 2019-08-13 2019-08-13 프로세서 칩 및 그 제어 방법들 KR102147912B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020190099124A KR102147912B1 (ko) 2019-08-13 2019-08-13 프로세서 칩 및 그 제어 방법들
US16/747,989 US11681904B2 (en) 2019-08-13 2020-01-21 Processor chip and control methods thereof
PCT/KR2020/001010 WO2021029504A1 (en) 2019-08-13 2020-01-21 Processor chip and control methods thereof
EP20154613.2A EP3779761A1 (en) 2019-08-13 2020-01-30 Processor chip and control methods thereof
CN202010081495.0A CN112396168A (zh) 2019-08-13 2020-02-06 处理器芯片及其控制方法
JP2020066302A JP7164561B2 (ja) 2019-08-13 2020-04-01 プロセッサチップ及びその制御方法
US16/906,130 US11842265B2 (en) 2019-08-13 2020-06-19 Processor chip and control methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190099124A KR102147912B1 (ko) 2019-08-13 2019-08-13 프로세서 칩 및 그 제어 방법들

Publications (1)

Publication Number Publication Date
KR102147912B1 true KR102147912B1 (ko) 2020-08-25

Family

ID=69411327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190099124A KR102147912B1 (ko) 2019-08-13 2019-08-13 프로세서 칩 및 그 제어 방법들

Country Status (6)

Country Link
US (2) US11681904B2 (ko)
EP (1) EP3779761A1 (ko)
JP (1) JP7164561B2 (ko)
KR (1) KR102147912B1 (ko)
CN (1) CN112396168A (ko)
WO (1) WO2021029504A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085866A1 (ko) * 2021-11-12 2023-05-19 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021079257A (ja) * 2021-03-04 2021-05-27 株式会社三洋物産 遊技機
CN116091293B (zh) * 2022-09-13 2023-10-31 北京理工大学 一种微小型智能弹载计算机架构

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050056124A (ko) * 2003-12-09 2005-06-14 마이크로소프트 코포레이션 그래픽 처리 유닛을 사용해 기계 학습 기술들의 처리를가속화하고 최적화하는 시스템 및 방법
KR20190043419A (ko) * 2017-10-18 2019-04-26 삼성전자주식회사 조기 중단에 기반한 심층 신경망의 연산 제어 방법 및 시스템

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07118160B2 (ja) * 1983-06-18 1995-12-18 ソニー株式会社 ディジタル情報信号の記録方法
JP2001188767A (ja) 1999-12-28 2001-07-10 Fuji Xerox Co Ltd ニューラルネットワーク演算装置及びニューラルネットワークの演算方法
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
US7502928B2 (en) 2004-11-12 2009-03-10 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
KR20080060649A (ko) 2006-12-27 2008-07-02 엘지전자 주식회사 데이터 처리 장치 및 방법
US9076001B1 (en) * 2012-02-06 2015-07-07 Marvell International Ltd. Method and apparatus for implementing a secure content pipeline
US9304730B2 (en) * 2012-08-23 2016-04-05 Microsoft Technology Licensing, Llc Direct communication between GPU and FPGA components
US20140101405A1 (en) 2012-10-05 2014-04-10 Advanced Micro Devices, Inc. Reducing cold tlb misses in a heterogeneous computing system
US9606818B2 (en) * 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
US10223635B2 (en) 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
US9786036B2 (en) 2015-04-28 2017-10-10 Qualcomm Incorporated Reducing image resolution in deep convolutional networks
US10657274B2 (en) * 2015-06-29 2020-05-19 Samsng Electronics Co., Ltd. Semiconductor device including memory protector
JP6629678B2 (ja) 2016-06-16 2020-01-15 株式会社日立製作所 機械学習装置
KR102631381B1 (ko) * 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180075913A (ko) * 2016-12-27 2018-07-05 삼성전자주식회사 신경망 연산을 이용한 입력 처리 방법 및 이를 위한 장치
EP3563304B1 (en) * 2016-12-30 2022-03-09 Intel Corporation Deep learning hardware
US20180253636A1 (en) * 2017-03-06 2018-09-06 Samsung Electronics Co., Ltd. Neural network apparatus, neural network processor, and method of operating neural network processor
JP2018152639A (ja) 2017-03-10 2018-09-27 株式会社半導体エネルギー研究所 半導体装置、及び表示システム
KR102415508B1 (ko) * 2017-03-28 2022-07-01 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
EP3607488A4 (en) * 2017-04-07 2020-11-25 INTEL Corporation METHODS AND SYSTEMS WITH IMPROVED NEURAL FOLDING NETWORKS FOR IMAGE PROCESSING
US10489887B2 (en) 2017-04-10 2019-11-26 Samsung Electronics Co., Ltd. System and method for deep learning image super resolution
US11023803B2 (en) * 2017-04-10 2021-06-01 Intel Corporation Abstraction library to enable scalable distributed machine learning
WO2018225133A1 (ja) * 2017-06-05 2018-12-13 楽天株式会社 画像処理装置、画像処理方法、および画像処理プログラム
KR102606825B1 (ko) * 2017-09-13 2023-11-27 삼성전자주식회사 뉴럴 네트워크 모델을 변형하는 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
CN107885509A (zh) * 2017-10-26 2018-04-06 杭州国芯科技股份有限公司 一种基于安全的神经网络加速器芯片架构
KR20190051697A (ko) * 2017-11-07 2019-05-15 삼성전자주식회사 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
JP7346401B2 (ja) * 2017-11-10 2023-09-19 エヌビディア コーポレーション 安全で信頼できる自動運転車両のためのシステム及び方法
KR102569086B1 (ko) * 2017-11-20 2023-08-22 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 태스크 병렬 처리 방법, 장치, 시스템, 기억 매체 및 컴퓨터 기기
US10936942B2 (en) * 2017-11-21 2021-03-02 Google Llc Apparatus and mechanism for processing neural network tasks using a single chip package with multiple identical dies
CN108255773A (zh) 2017-12-07 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 一种智能计算异构多核处理方法与平台
KR20190068255A (ko) * 2017-12-08 2019-06-18 삼성전자주식회사 고정 소수점 뉴럴 네트워크를 생성하는 방법 및 장치
US10937245B2 (en) 2017-12-20 2021-03-02 Signify Holding B.V. Lighting and internet of things design using augmented reality
US10783611B2 (en) * 2018-01-02 2020-09-22 Google Llc Frame-recurrent video super-resolution
CN111712815A (zh) * 2018-08-14 2020-09-25 华为技术有限公司 人工智能ai处理方法和ai处理装置
US20200082279A1 (en) 2018-09-11 2020-03-12 Synaptics Incorporated Neural network inferencing on protected data
CN109657788A (zh) 2018-12-18 2019-04-19 北京中科寒武纪科技有限公司 数据处理方法、装置及相关产品
KR102555374B1 (ko) 2018-12-27 2023-07-14 삼성전자주식회사 전자 장치 및 그 제어 방법
US11372780B2 (en) * 2019-05-30 2022-06-28 Synaptics Incorporated Granular access control for secure memory
US10713143B1 (en) * 2019-06-24 2020-07-14 Accenture Global Solutions Limited Calibratable log projection and error remediation system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050056124A (ko) * 2003-12-09 2005-06-14 마이크로소프트 코포레이션 그래픽 처리 유닛을 사용해 기계 학습 기술들의 처리를가속화하고 최적화하는 시스템 및 방법
KR20190043419A (ko) * 2017-10-18 2019-04-26 삼성전자주식회사 조기 중단에 기반한 심층 신경망의 연산 제어 방법 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085866A1 (ko) * 2021-11-12 2023-05-19 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
EP3779761A1 (en) 2021-02-17
JP7164561B2 (ja) 2022-11-01
JP2021034008A (ja) 2021-03-01
WO2021029504A1 (en) 2021-02-18
US11681904B2 (en) 2023-06-20
US20210049449A1 (en) 2021-02-18
CN112396168A (zh) 2021-02-23
US11842265B2 (en) 2023-12-12
US20210049450A1 (en) 2021-02-18

Similar Documents

Publication Publication Date Title
KR102147912B1 (ko) 프로세서 칩 및 그 제어 방법들
US10430918B2 (en) Display driver, display system, and method of operating the display driver
EP3040804B1 (en) Electronic device for controlling power and method therefor
KR102143618B1 (ko) 프레임률 제어 방법 및 그 전자 장치
US20190246172A1 (en) Display device and control method therefor
EP3779862B1 (en) Electronic apparatus and control method thereof
US20110145730A1 (en) Utilization of Browser Space
US11262962B2 (en) Home appliance and control method thereof
US10733694B2 (en) Semiconductor device for processing image data in layers for display by a display device
US10008182B2 (en) System-on-chip (SoC) devices, display drivers and SoC systems including the same
CN109597595B (zh) 液晶显示屏的控制方法、装置、计算机设备和存储介质
CN112887788A (zh) 电子装置及其控制方法
WO2018006192A1 (en) A mechanism for providing multiple screen regions on a high resolution display
US10522108B2 (en) Optimized histogram reads for efficient display post processing and improved power gains
US20160094849A1 (en) THERMAL THROTTLING OF WiDi VIDEO STREAM RESOLUTION
WO2021102772A1 (en) Methods and apparatus to smooth edge portions of an irregularly-shaped display
US11798252B2 (en) Electronic device and control method therefor
US10540748B2 (en) Method and apparatus for changing images of content displayed on a display
US11423600B2 (en) Methods and apparatus for configuring a texture filter pipeline for deep learning operation
US10755666B2 (en) Content refresh on a display with hybrid refresh mode
US10600151B2 (en) Automatic determination of a region of influence
US20160048364A1 (en) Content visibility management
CN114595017A (zh) 数据显示方法和装置、电子设备及计算机可读存储介质
CN111930219A (zh) 用于移动设备的可缩放显示方法、移动设备及存储介质
CN117496866A (zh) 薄膜晶体管tft屏驱动***、方法和显示设备

Legal Events

Date Code Title Description
GRNT Written decision to grant