IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

<>
  • 特許-プロセッサチップ及びその制御方法 図1
  • 特許-プロセッサチップ及びその制御方法 図2
  • 特許-プロセッサチップ及びその制御方法 図3
  • 特許-プロセッサチップ及びその制御方法 図4A
  • 特許-プロセッサチップ及びその制御方法 図4B
  • 特許-プロセッサチップ及びその制御方法 図5A
  • 特許-プロセッサチップ及びその制御方法 図5B
  • 特許-プロセッサチップ及びその制御方法 図6A
  • 特許-プロセッサチップ及びその制御方法 図6B
  • 特許-プロセッサチップ及びその制御方法 図6C
  • 特許-プロセッサチップ及びその制御方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】プロセッサチップ及びその制御方法
(51)【国際特許分類】
   G06N 3/06 20060101AFI20221025BHJP
【FI】
G06N3/06
【請求項の数】 15
(21)【出願番号】P 2020066302
(22)【出願日】2020-04-01
(65)【公開番号】P2021034008
(43)【公開日】2021-03-01
【審査請求日】2020-04-01
(31)【優先権主張番号】10-2019-0099124
(32)【優先日】2019-08-13
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】太 龍旻
(72)【発明者】
【氏名】趙 仁相
(72)【発明者】
【氏名】李 元宰
(72)【発明者】
【氏名】黄 讃榮
【審査官】金田 孝之
(56)【参考文献】
【文献】米国特許出願公開第2019/0180177(US,A1)
【文献】特表2015-530683(JP,A)
【文献】米国特許出願公開第2016/0379004(US,A1)
【文献】特表2018-523182(JP,A)
【文献】特開2019-053734(JP,A)
【文献】欧州特許出願公開第03389005(EP,A1)
【文献】米国特許出願公開第2020/0082279(US,A1)
【文献】米国特許出願公開第2014/0282508(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/12
G06F 15/76-15/82
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワーク演算を行うプロセッサチップにおいて、
メモリと、
前記メモリに保存されたデータに対する前記ニューラルネットワーク演算を行う第1プロセッサと、
第2プロセッサと、
第3プロセッサと
を含み、
前記メモリは、前記第2プロセッサによってアクセス可能でないセキュリティ領域と、前記第2プロセッサによってアクセス可能な非セキュリティ領域とを含むように構成され、
前記第2プロセッサは、
前記第1プロセッサ及び前記第3プロセッサが動作を行うように、前記第1プロセッサ及び前記第3プロセッサに制御信号を伝送するように構成され、
前記第プロセッサは、
前記第3プロセッサから前記セキュリティ領域に保存した入力コンテンツのアドレス情報を受信し、該アドレス情報と、前記非セキュリティ領域に保存した人工知能モデル情報とに基づいて、前記入力コンテンツに対する前記ニューラルネットワーク演算を行うように構成される、
プロセッサチップ。
【請求項2】
前記第2プロセッサは、
前記第3プロセッサが前記アドレス情報を前記第1プロセッサに提供するように開始信号を前記第3プロセッサに伝送し、且つ
記入力コンテンツに対する前記アドレス情報及び前記人工知能モデル情報に基づいて、前記入力コンテンツに対する前記ニューラルネットワーク演算を行うように初期化信号を前記第1プロセッサに伝送することを特徴とする請求項1に記載のプロセッサチップ。
【請求項3】
記第2プロセッサは、
前記第3プロセッサが前記セキュリティ領域にアクセスして前記入力コンテンツの前記アドレス情報を識別し、前記入力コンテンツの前記アドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送することを特徴とする請求項2に記載のプロセッサチップ。
【請求項4】
前記第2プロセッサは、
前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供し、
前記第1プロセッサは、
前記第2プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得することを特徴とする請求項3に記載のプロセッサチップ。
【請求項5】
前記第2プロセッサは、
前記第3プロセッサが、前記入力コンテンツに基づいて前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送し、
前記第1プロセッサは、
前記第3プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得することを特徴とする請求項3に記載のプロセッサチップ。
【請求項6】
通信インターフェースを更に含み、
前記入力コンテンツに含まれた複数のフレームは、
前記通信インターフェースを介して順次に受信されて前記メモリのセキュリティ領域に保存され、
前記第2プロセッサは、
前記第3プロセッサが、前記メモリに順次に保存されるフレームのアドレス情報を予め設定された時間おきに前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送することを特徴とする請求項3に記載のプロセッサチップ。
【請求項7】
前記第2プロセッサは、
第1アプリケーションが実行されると、前記第3プロセッサが前記入力コンテンツに対する情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送することを特徴とする請求項2に記載のプロセッサチップ。
【請求項8】
前記第2プロセッサは、
前記第1アプリケーションが終了すると、前記第3プロセッサが前記情報を提供する動作を中止するように前記第3プロセッサに終了信号を伝送し、
前記第3プロセッサは、
前記第1プロセッサが前記ニューラルネットワーク演算の動作を中止するように制御し、前記ニューラルネットワーク演算の動作が中止されていることを示す信号を前記第2プロセッサに提供することを特徴とする請求項7に記載のプロセッサチップ。
【請求項9】
前記第2プロセッサは、
第2アプリケーションが実行されると、前記非セキュリティ領域にアクセスし、前記第2アプリケーションに対応するデータのアドレス情報を識別し、
前記識別されたアドレス情報を前記第1プロセッサに提供し、
前記第1プロセッサが前記第2プロセッサから提供された前記データのアドレス情報及び前記非セキュリティ領域に保存された人工知能モデル情報に基づいて、前記データに対するニューラルネットワーク演算を行うように制御することを特徴とする請求項3に記載のプロセッサチップ。
【請求項10】
ディスプレイを更に含み、
前記第2プロセッサは、
前記第3プロセッサが複数の入力コンテンツのうち、前記ディスプレイを介してディスプレイされる入力コンテンツのアドレス情報を識別し、前記識別されたアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送することを特徴とする請求項3に記載のプロセッサチップ。
【請求項11】
前記第1プロセッサは、
NPUであり、
前記第2プロセッサは、
オペレーティングシステムに基づいて動作するプロセッサであり、
前記第3プロセッサは、
予め設定された動作を行うプロセッサであることを特徴とする請求項1に記載のプロセッサチップ。
【請求項12】
メモリと、前記メモリに保存されたデータに対するニューラルネットワーク演算を行う第1プロセッサと、第2プロセッサと、第3プロセッサとを含むプロセッサチップの制御方法において、
前記第3プロセッサが動作を行うように前記第2プロセッサが前記第3プロセッサに制御信号を伝送するステップと、
前記第1プロセッサが動作を行うように前記第2プロセッサが前記第1プロセッサに制御信号を伝送するステップと、
前記第1プロセッサが、前記第3プロセッサから前記メモリのセキュリティ領域に保存した入力コンテンツに対するアドレス情報を受信するステップと、
前記第1プロセッサが、前記アドレス情報と、前記メモリの非セキュリティ領域に保存した人工知能モデル情報とに基づいて、前記ニューラルネットワーク演算を行うステップと、を含み、
前記セキュリティ領域は、前記第2プロセッサによってアクセス可能でなく、
前記非セキュリティ領域は、前記第2プロセッサによってアクセス可能である、
制御方法。
【請求項13】
前記第3プロセッサに制御信号を伝送するステップは、
前記第3プロセッサが前記入力コンテンツに対する前記アドレス情報を前記第1プロセッサに提供するように開始信号を前記第3プロセッサに伝送し、
前記第1プロセッサに制御信号を伝送するステップは、
前記第1プロセッサが前記入力コンテンツに対する前記アドレス情報及び前記人工知能モデル情報に基づいて、前記入力コンテンツに対する前記ニューラルネットワーク演算を行うように初期化信号を前記第1プロセッサに伝送することを特徴とする請求項12に記載の制御方法。
【請求項14】
前記第3プロセッサに制御信号を伝送するステップは、
前記第3プロセッサが前記メモリの前記セキュリティ領域にアクセスして前記入力コンテンツの前記アドレス情報を識別し、前記入力コンテンツの前記アドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送ることを特徴とする請求項13に記載の制御方法。
【請求項15】
前記第2プロセッサが、前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供するステップと、
前記第1プロセッサが、前記第2プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得するステップと
を更に含むことを特徴とする請求項14に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサチップ及びその制御方法に関し、より詳細には、ニューラルネットワーク(Neural Network)演算を行うプロセッサチップ及びその制御方法に関する。
【背景技術】
【0002】
近来、ディープラーニング(Deep Learning)のようなニューラルネットワーク技術を用いて多様な体験を提供する電子装置が開発されている。特に、ニューラルネットワーク技術を用いて、Segmentation、Super-Resolution、HDRなどの性能が改善されている。
【0003】
電子装置でニューラルネットワーク技術を用いて画質を向上させる技術は、まず、RTL(Register-Transfer Level)のように、デジタル回路設計を通じてハードウェア的に実現されたり、NPU(Neural Processing Unit)のようなプロセッサを用いてソフトウェア的に実現されてよい。
【0004】
その中で、プロセッサを使用する方法は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、NPUなど、多様なタイプのプロセッサが用いられてよい。特に、NPUは、ニューラルネットワーク演算に特化して早く結果を出力することができ、特化した加速器によってニューラルネットワーク演算の際、他のタイプのプロセッサよりperformanceとefficiencyのほうが優れている。
【0005】
このようなNPUは、通常、CPUによる制御が必要であり、特に、CPUによって入力データ及び入力データに適用される人工知能モデル情報を受信するようになる。具体的に、図1に示すように、CPUは、NPUを初期化(initializing)し、メモリに保存されている入力データと人工知能モデル情報をNPUに提供し、NPUを動作(Trigger)させるようになる。
【0006】
ただ、電子装置が入力データとしてコンテンツを利用する場合、電子装置は、コンテンツのセキュリティのためにCPUがコンテンツの原本に直接アクセスすることができない。
【0007】
それを迂回する方法として、セキュリティ領域(Trust領域)にあるコンテンツの原本を一般領域にコピーするモジュールを使うか、ダウンスケーリングされたコンテンツにアクセスする方法がある。ただ、この場合、メモリの使い過ぎ、動作時間の遅延、コンテンツの品質低下などの問題が発生する。
【0008】
なお、電子装置内において、CPUは多様な業務を行うため、NPU制御を毎フレーム単位にすると、負荷がかかるおそれがある。即ち、CPUを用いる場合、リアルタイムの処理が困難になることもある。
【0009】
以上のように、電子装置のCPUがNPUを制御する場合、様々な問題が生じる。
【先行技術文献】
【特許文献】
【0010】
【文献】中国特許第108255773号明細書
【文献】韓国公開特許第2008-0060649号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、NPU(Neural Processing Unit)をより効率よく制御するためのプロセッサチップ及びその制御方法を提供することにある。
【課題を解決するための手段】
【0012】
以上のような目的を達成するための本発明の一実施形態によると、ニューラルネットワーク(Neural Network)演算を行うプロセッサチップは、メモリと、前記メモリに保存されたデータに対する前記ニューラルネットワーク演算を行う第1プロセッサと、第2プロセッサと、第3プロセッサとを含み、前記第2プロセッサは、前記第1プロセッサ及び前記第3プロセッサが動作を行うように、前記第1プロセッサ及び前記第3プロセッサに制御信号を伝送してよい。
【0013】
なお、前記第2プロセッサは、前記第3プロセッサが前記メモリに保存された入力コンテンツに対する情報を前記第1プロセッサに提供するように開始信号を前記第3プロセッサに伝送し、前記プロセッサが、前記第3プロセッサから提供された前記入力コンテンツに対する情報及び前記メモリに保存された人工知能モデル情報に基づいて、前記入力コンテンツに対する前記ニューラルネットワーク演算を行うように初期化信号を前記第1プロセッサに伝送してよい。
【0014】
そして、前記メモリは、前記第2プロセッサのアクセスができないセキュリティ領域及び前記第2プロセッサのアクセスができる非セキュリティ領域を含み、前記第2プロセッサは、前記第3プロセッサが前記セキュリティ領域にアクセスして前記入力コンテンツのアドレス情報を識別し、前記入力コンテンツのアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送し、前記第1プロセッサが、前記第3プロセッサから提供された前記入力コンテンツのアドレス情報及び前記非セキュリティ領域に保存された人工知能モデル情報に基づいて、前記入力コンテンツに対するニューラルネットワーク演算を行うように前記初期化信号を前記第1プロセッサに伝送してよい。
【0015】
なお、前記第2プロセッサは、前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供し、前記第1プロセッサは、前記第2プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得してよい。
【0016】
そして、前記第2プロセッサは、前記第3プロセッサが前記入力コンテンツに基づいて前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送し、前記第1プロセッサは、前記第3プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得してよい。
【0017】
なお、通信インターフェースを更に含み、前記入力コンテンツに含まれた複数のフレームは、前記通信インターフェースを介して順次に受信されて前記メモリのセキュリティ領域に保存され、前記第2プロセッサは、前記第3プロセッサが前記メモリに順次に保存されるフレームのアドレス情報を予め設定された時間おきに前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送してよい。
【0018】
そして、前記第2プロセッサは、第1アプリケーションが実行されると、前記第3プロセッサが前記入力コンテンツに対する情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送してよい。
【0019】
なお、前記第2プロセッサは、前記第1アプリケーションが終了すると、前記第3プロセッサが前記提供動作を中止するように前記第3プロセッサに終了信号を伝送し、前記第3プロセッサは、前記第1プロセッサが前記ニューラルネットワーク演算動作を中止するように制御し、前記ニューラルネットワーク演算動作が中止されていることを示す信号を前記第2プロセッサに提供してよい。
【0020】
そして、前記第2プロセッサは、第2アプリケーションが実行されると、前記非セキュリティ領域にアクセスし、前記第2アプリケーションに対応するデータのアドレス情報を識別し、前記識別されたアドレス情報を前記第1プロセッサに提供し、前記第1プロセッサが前記第2プロセッサから提供された前記データのアドレス情報及び前記非セキュリティ領域に保存された人工知能モデル情報に基づいて、前記データに対するニューラルネットワーク演算を行うように制御してよい。
【0021】
なお、ディスプレイを更に含み、前記第2プロセッサは、前記第3プロセッサが複数の入力コンテンツのうち、前記ディスプレイを介してディスプレイされる入力コンテンツのアドレス情報を識別し、前記識別されたアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送してよい。
【0022】
そして、前記第1プロセッサは、NPU(Neural Processing Unit)であり、前記第2プロセッサは、オペレーティングシステム(Operating System)に基づいて動作するプロセッサであり、前記第3プロセッサは、予め設定された動作を行うプロセッサであってよい。
【0023】
一方、本発明の一実施形態によると、メモリと、前記メモリに保存されたデータに対するニューラルネットワーク(Neural Network)演算を行う第1プロセッサと、第2プロセッサと、第3プロセッサとを含むプロセッサチップの制御方法は、前記第3プロセッサが動作を行うように前記第2プロセッサが前記第3プロセッサに制御信号を伝送するステップと、前記第1プロセッサが動作を行うように前記第2プロセッサが前記第1プロセッサに制御信号を伝送するステップとを含む。
【0024】
なお、前記第3プロセッサに制御信号を伝送するステップは、前記第3プロセッサが前記メモリに保存された入力コンテンツに対する情報を前記第1プロセッサに提供するように開始信号を前記第3プロセッサに伝送し、前記第1プロセッサに制御信号を伝送するステップは、前記第1プロセッサが前記第3プロセッサから提供された前記入力コンテンツに対する情報及び前記メモリに保存された人工知能モデル情報に基づいて、前記入力コンテンツに対する前記ニューラルネットワーク演算を行うように初期化信号を前記第1プロセッサに伝送してよい。
【0025】
そして、前記第3プロセッサに制御信号を伝送するステップは、前記第3プロセッサが前記メモリのセキュリティ領域にアクセスして前記入力コンテンツのアドレス情報を識別し、前記入力コンテンツのアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送し、前記第1プロセッサに制御信号を伝送するステップは、前記第1プロセッサが、前記第3プロセッサから提供された前記入力コンテンツのアドレス情報及び前記メモリの非セキュリティ領域に保存された人工知能モデル情報に基づいて、前記入力コンテンツに対する前記ニューラルネットワーク演算を行うように初期化信号を前記第1プロセッサに伝送してよい。
【0026】
なお、前記第2プロセッサが、前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供するステップと、前記第1プロセッサが、前記第2プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得するステップとを含んでよい。
【0027】
そして、前記第3プロセッサに制御信号を伝送するステップは、前記第3プロセッサが前記入力コンテンツに基づいて前記非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送し、前記制御方法は、前記第1プロセッサが、前記第3プロセッサから提供された前記人工知能モデルのアドレス情報に基づいて前記人工知能モデル情報を獲得するステップを更に含んでよい。
【0028】
なお、前記入力コンテンツに含まれた複数のフレームが順次に受信されて前記メモリのセキュリティ領域に保存されるステップを更に含み、前記第3プロセッサに制御信号を伝送するステップは、前記第3プロセッサが前記メモリに順次に保存されるフレームのアドレス情報を予め設定された時間おきに前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送してよい。
【0029】
そして、前記第3プロセッサに制御信号を伝送するステップは、第1アプリケーションが実行されると、前記第3プロセッサが前記入力コンテンツに対する情報を前記第1プロセッサに提供するように前記開始信号を前記第3プロセッサに伝送してよい。
【0030】
なお、前記第1アプリケーションが終了すると、前記第3プロセッサが前記提供動作を中止するように前記第2プロセッサが前記第3プロセッサに終了信号を伝送するステップと、前記第3プロセッサの制御により、前記第1プロセッサが前記ニューラルネットワーク演算動作を中止するステップと、前記第3プロセッサが前記ニューラルネットワーク演算動作が中止されていることを示す信号を前記第2プロセッサに提供するステップとを更に含んでよい。
【0031】
一方、本発明の別の実施形態によると、メモリと、第1プロセッサと、第2プロセッサと、第3プロセッサとを含むプロセッサチップの制御方法は、第1アプリケーションが実行されると、前記第2プロセッサが前記メモリに保存されたデータに対する情報を前記第1プロセッサに伝送するステップと、前記第1プロセッサが前記第2プロセッサから提供された前記データに対する情報及び前記メモリに保存された第1人工知能モデル情報に基づいて、前記データに対するニューラルネットワーク演算を行うように前記第2プロセッサが前記第1プロセッサに第1初期化信号を伝送するステップと、前記第1アプリケーションが終了して第2アプリケーションが実行されると、前記第3プロセッサが前記メモリに保存された入力コンテンツに対する情報を前記第1プロセッサに提供するように前記第2プロセッサが前記第3プロセッサに開始信号を伝送するステップと、前記第1プロセッサが前記第3プロセッサから提供された前記入力コンテンツに対する情報及び前記メモリに保存された第2人工知能モデル情報に基づいて、前記入力コンテンツに対するニューラルネットワーク演算を行うように前記第2プロセッサが前記第1プロセッサに第2初期化信号を伝送するステップとを含む。
【発明の効果】
【0032】
以上説明したように、本発明によれば、プロセッサチップは、コンテンツの原本に対するニューラルネットワーク演算を行うことで、メモリの使用を減らし、コンテンツの出力品質を改善し、リアルタイムで処理を行うことができるようになる。
【図面の簡単な説明】
【0033】
図1】従来技術によるNPU(Neural Processing Unit)の制御方法を説明するための図である。
図2】本発明の一実施形態に係るプロセッサチップの構成を示すブロック図である。
図3】本発明の一実施形態に係るメモリのセキュリティ領域及び非セキュリティ領域を説明するための図である。
図4A】本発明の一実施形態に係るニューラルネットワーク演算を説明するための図である。
図4B】本発明の一実施形態に係るニューラルネットワーク演算を説明するための図である。
図5A】本発明の別の実施形態に係るニューラルネットワーク演算を説明するための図である。
図5B】本発明の別の実施形態に係るニューラルネットワーク演算を説明するための図である。
図6A】本発明の一実施形態に係るアプリケーションによる動作を説明するための図である。
図6B】本発明の一実施形態に係るアプリケーションによる動作を説明するための図である。
図6C】本発明の一実施形態に係るアプリケーションによる動作を説明するための図である。
図7】本発明の一実施形態に係るプロセッサチップの制御方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0034】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。
【0035】
図2は、本発明の一実施形態に係るプロセッサチップ100の構成を示すブロック図である。
【0036】
同図に示すように、プロセッサ100は、メモリ110、第1プロセッサ120、第2プロセッサ130及び第3プロセッサ140を含む。
【0037】
プロセッサチップ100は、ニューラルネットワーク(Neural Network)演算を行う装置として、例えば、プロセッサチップ100は、テレビ、スマートフォン、タブレットパソコン、携帯電話、テレビ電話機、電子ブックリーダー、デスクトップ、ラップトップパソコン、ネットブックコンピュータ、ワークステーション、サーバ、PDA、PMP(portable multimedia player)、MP3プレーヤ、ウェアラブル装置であってよい。
【0038】
特に、プロセッサチップ100は、ディスプレイ(図示せず)が備えられた装置として、コンテンツに対するニューラルネットワーク演算を行い、ニューラルネットワーク演算によって映像処理されたコンテンツをディスプレイを介してディスプレイする装置であってよい。又は、プロセッサチップ100は、別途のディスプレイを備えずに、コンテンツに対するニューラルネットワーク演算を行う装置であってよい。この場合、プロセッサチップ100は、ニューラルネットワーク演算によって映像処理されたコンテンツをディスプレイ装置に提供してよい。
【0039】
メモリ110は、第1プロセッサ120、第2プロセッサ130及び第3プロセッサ140と電気的に接続され、本発明の多様な実施形態のために、必要なデータを保存することができる。例えば、メモリ110は、第1プロセッサ120、第2プロセッサ130及び第3プロセッサ140のそれぞれに含まれたROM(例えば、EEPROM(electrically erasable programmable read-only memory))、ROMなどの内部メモリで実現されたり、第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メモリ)などのような形で実現されてよい。
【0040】
メモリ110は、データに対するニューラルネットワーク演算を行うために用いられる人工知能モデルを保存することができる。例えば、人工知能モデルは、入力コンテンツの解像度を8Kアップスケーリング(Upscaling)するためのモデルとして、原本イメージ(8K)と原本イメージがダウンスケーリングされたイメージ(例えば、4K)との関係をCNN(Convolutional Neural Network、畳み込みニューラルネットワーク)学習したモデルであってよい。ここで、CNNは、音声処理、イメージ処理などのために考案された特殊な接続構造を有する多層ニューラルネットワークである。
【0041】
ただ、それは一実施形態に過ぎず、人工知能モデルは、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)など、多様なニューラルネットワーク(Neural Network)に基づいたモデルであってよい。
【0042】
そして、メモリ110は、人工知能モデルの適用されるデータを保存することができる。例えば、メモリ110は、人工知能モデルの適用されるコンテンツを保存することができる。
【0043】
メモリ110は、セキュリティ領域及び非セキュリティを含んでよい。ここで、セキュリティ領域は、セキュリティの必要なデータが保存される領域であり、非セキュリティ領域は、セキュリティとは関係のないデータが保存される領域である。例えば、人工知能モデルは、非セキュリティ領域に保存され、人工知能モデルの適用されるコンテンツは、セキュリティ領域に保存されてよい。
【0044】
ただ、それに限定されるものではなく、人工知能モデルにセキュリティが必要であれば、セキュリティ領域に保存されてよい。なお、人工知能モデルの適用されるデータがセキュリティと関係ないとしたら、非セキュリティ領域に保存されてよい。
【0045】
メモリ110のセキュリティ領域及び非セキュリティ領域は、ソフトウェア的に区分されてよい。例えば、第2プロセッサ130は、メモリ110と電気的に接続されているが、ソフトウェア的にメモリ110の30%に該当するセキュリティ領域を認識できないこともある。
【0046】
ただ、それに限定されるものではなく、メモリ110のセキュリティ領域は第1メモリで実現され、メモリ110の非セキュリティ領域は、第2メモリで実現されてよい。即ち、メモリ110のセキュリティ領域及び非セキュリティ領域は、ハードウェア的に区分されてよい。
【0047】
後述の第1プロセッサ120及び第3プロセッサ140は、メモリ110のセキュリティ領域及び非セキュリティ領域にアクセスができるが、第2プロセッサ130は、メモリ110のセキュリティ領域にはアクセスが不可能で、非セキュリティ領域のみにアクセスが可能である。
【0048】
第1プロセッサ120は、ニューラルネットワーク演算を行うプロセッサであってよい。例えば、第1プロセッサ120は、NPU(Neural Processing Unit)などのように、ニューラルネットワーク演算専用のプロセッサとして、複数の演算素子(Processing Element)を含んでよい。隣接する演算素子間では、データの片方向シフト又は双方向シフトが可能である。
【0049】
演算素子のそれぞれは、基本的に乗算器(multiplier)及び算術論理演算装置(Arithmetic Logic Unit:ALU)を含み、ALUは、少なくとも一つ以上の加算器(adder)を含んでよい。演算素子は、乗算器及びALUを用いて四則演算を行うことができる。ただ、それに限られるものではなく、四則演算及びソフトなどのような機能を行うことができれば、いくらでも他の構造で形成されることができる。なお、演算素子のそれぞれは、データを保存するためのレジスタを含んでよい。
【0050】
第1プロセッサ120は、複数の演算素子を制御する制御部を含んでよく、制御部は、複数の演算素子を制御してニューラルネットワーク演算過程で必要な演算を並行して処理することができる。
【0051】
第1プロセッサ120は、第2プロセッサ130又は第3プロセッサ140の制御によって、ニューラルネットワーク演算を行うことができる。例えば、第1プロセッサ120は、第2プロセッサ130又は第3プロセッサ140から提供されたデータに対する情報及び非セキュリティ領域に保存された人工知能モデル情報に基づいてデータに対するニューラルネットワーク演算を行うことができる。ここで、データは、セキュリティ領域に保存されたデータであってよく、非セキュリティ領域に保存されたデータであってよい。即ち、第1プロセッサ120は、セキュリティ領域にアクセスすることができる。
【0052】
第2プロセッサ130は、プロセッサチップ100の動作全般を制御し、オペレーティングシステム(Operating System)に基づいて動作するプロセッサであってよい。ただ、第2プロセッサ130は、メモリ110のセキュリティ領域にはアクセスが不可能であり、非セキュリティ領域のみにアクセスが可能である。
【0053】
一実施形態によって、第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は、汎用プロセッサであってよい。
【0054】
第2プロセッサ130は、第1プロセッサ120及び第2プロセッサ130が動作を行うように、第1プロセッサ120及び第3プロセッサ140に制御信号を伝送することができる。
【0055】
第2プロセッサ130は、第3プロセッサ140がメモリ110に保存された入力コンテンツに対する情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送してよい。例えば、第2プロセッサ130は、セキュリティ領域にアクセス可能な第3プロセッサ140がセキュリティ領域にアクセスし、入力コンテンツのアドレス(address)情報を識別し、入力コンテンツのアドレス情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送することができる。即ち、第2プロセッサ130は、セキュリティ領域にアクセスができないため、セキュリティ領域にアクセスが可能な第3プロセッサ140を制御し、セキュリティ領域に保存された入力コンテンツのアドレス情報を第1プロセッサ120に提供してよい。
【0056】
ここで、第3プロセッサ140は、第2プロセッサ130とは違って、プロセッサチップ100の動作のうちの一部のみを、必要に応じて制御するプロセッサとして、予め設定された動作のみを行うプロセッサであってよい。特に、第3プロセッサ140は、任意で動作が変更できないプロセッサであってよい。例えば、第3プロセッサ140は、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)などのような信号処理専用プロセッサであってよく、必要に応じて、入力コンテンツに対する映像処理を行うプロセッサであってよい。
【0057】
そして、第2プロセッサ130は、第1プロセッサ120が、第3プロセッサ140から提供された入力コンテンツに対する情報及びメモリに保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように初期化信号を第1プロセッサ120に伝送することができる。例えば、第2プロセッサ130は、第1プロセッサ120が、第3プロセッサ140から提供された入力コンテンツのアドレス情報及び非セキュリティ領域に保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように初期化信号を第1プロセッサ120に伝送してよい。
【0058】
一方、第2プロセッサ130は、非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を第1プロセッサ120に提供し、第1プロセッサ120は、第2プロセッサ130から提供された人工知能モデルのアドレス情報に基づいて人工知能モデル情報を獲得することができる。
【0059】
例えば、第2プロセッサ130は、入力コンテンツに対する8Kアップスケーリングを行う場合、第3プロセッサ140がセキュリティ領域にアクセスし、入力コンテンツのアドレス情報を識別し、入力コンテンツのアドレス情報を第1プロセッサ120に提供するように制御することができる。そして、第2プロセッサ130は、非セキュリティ領域にアクセスして8Kアップスケーリングを行う人工知能モデルのアドレス情報を識別し、人工知能モデルのアドレス情報を第1プロッサ120に提供することができる。そして、第1プロセッサ120は、第3プロセッサ140から提供された入力コンテンツのアドレス情報及び人工知能モデルのアドレス情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように制御することができる。
【0060】
又は、第2プロセッサ130は、第3プロセッサ140が入力コンテンツに基づいて非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送し、第1プロセッサ120は第3プロセッサ140から提供された人工知能モデルのアドレス情報に基づいて、人工知能モデル情報を獲得することもできる。
【0061】
例えば、第3プロセッサ140は、入力コンテンツを分析して入力コンテンツに必要な映像処理タイプを識別することができる。仮に、第3プロセッサ140は、入力コンテンツの解像度がディスプレイの解像度より低い場合、アップスケーリングを行う人工知能モデルのアドレス情報を識別し、入力コンテンツの解像度がディスプレイの解像度と同様であっても品質が低いと、映像のノイズを除去する人工知能モデルのアドレス情報を識別することができる。
【0062】
即ち、人工知能モデルのアドレス情報は、第2プロセッサ130が提供することもでき、第3プロセッサ140が入力コンテンツを分析した後、提供することもできる。ここで、第2プロセッサ130は、セキュリティ領域に保存された入力コンテンツを分析することができないため、第2プロセッサ130が提供する人工知能モデルはユーザの選択に対応する人工知能モデルであってよい。仮に、第2プロセッサ130は、ユーザが映画モードで入力コンテンツの再生を希望する場合、映画モードに対応する人工知能モデルのアドレス情報を識別することができる。
【0063】
ただ、それに限られるものではないく、第2プロセッサ130は、センサを用いて周辺環境情報を識別し、周辺環境情報に対応する人工知能モデルのアドレス情報を識別することもできる。
【0064】
一方、プロセッサチップ100は、通信インターフェース(図示せず)を更に含み、入力コンテンツに含まれた複数のフレームは、通信インターフェースを介して順次に受信されてメモリ110のセキュリティ領域に保存され、第2プロセッサ130は、第3プロセッサ140がメモリ110に順次に保存されるフレームのアドレス情報を予め設定された時間おきに第1プロセッサ120に提供するように開始信号を伝送することができる。
【0065】
ここで、通信インターフェースは、多様な通信方式で多様なタイプの外部装置と通信を行う構成である。通信インターフェースは、アンテナを介して受信されるRF(Radio Requency)放送信号のうち、ユーザによって選択されたチャネル又は予め保存された全てのチャネルをチューニングしてRF放送信号を受信するチューナを含んでよい。この場合、プロセッサチップ100は、チューナで変換されたデジタルIF信号(DIF)を受信して復調し、チャネル復号化などを行う復調部を更に含んでよい。なお、通信インターフェースは、Wi-Fiチップ、ブルートゥース(登録商標)チップ、無線通信チップ、NFCチップなどのように、無線通信を行う構成を含んでよい。Wi-Fiチップ、ブルートゥースチップは、それぞれWi-Fi方式、ブルートゥース方式で通信を行う。Wi-Fiチップやブルートゥースチップを用いる場合には、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は、通信インターフェースを介して外部装置からコンテンツ再生画面を受信したり、通信インターフェースを介してコンテンツ再生画面を外部装置に伝送することができる。
【0066】
一方、第2プロセッサ130は、第1アプリケーションが実行されると、第3プロセッサ140が入力コンテンツに対する情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送してよい。
【0067】
そして、第2プロセッサ130は、第1アプリケーションが終了すると、第3プロセッサ140が提供動作を中止するように第3プロセッサ140に終了信号を伝送し、第3プロセッサ140は第1プロセッサ120がニューラルネットワーク演算動作を中止するとうに制御し、ニューラルネットワーク演算動作が中止されていることを示す信号を第2プロセッサ130に提供することができる。
【0068】
一方、第2プロセッサ130は、第2アプリケーションが実行されると、非セキュリティ領域にアクセスして第2アプリケーションに対応するデータのアドレス情報を識別し、識別されたアドレス情報を第1プロセッサ120に提供し、第1プロセッサ120が第2プロセッサ130から提供されたデータのアドレス情報及び非セキュリティ領域に保存された人工知能モデル情報に基づいてデータに対するニューラルネットワーク演算を行うように制御してよい。
【0069】
ここで、第1アプリケーションは、コンテンツの映像処理に関連するアプリケーションであり、第2アプリケーションはコンテンツとは関係のないアプリケーションであってよい。
【0070】
例えば、第2プロセッサ130は、コンテンツの映像処理に関連する第1アプリケーションが実行されると、第3プロセッサ140がセキュリティ領域に保存されたコンテンツのアドレス情報を獲得するように制御し、コンテンツに関係のない第2アプリケーションが実行されると、直接非セキュリティ領域に保存されたデータのアドレス情報を獲得することができる。
【0071】
一方、プロセッサチップ100は、ディスプレイ(図示せず)を更に含み、第2プロセッサ130は第3プロセッサ140が複数の入力コンテンツのうち、ディスプレイを介してディスプレイされる入力コンテンツのアドレス情報を識別し、識別されたアドレス情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送することができる。
【0072】
例えば、プロセッサチップ100は、HDMI(High-Definition Multimedia Interface)に接続された外部装置から第1入力コンテンツを受信し、チューナを介して放送局から第2入力コンテンツを受信し、第1入力コンテンツ及び第2入力コンテンツをセキュリティ領域に保存することができる。この場合、第2プロセッサ130は、第3プロセッサ140が第1入力コンテンツ及び第2入力コンテンツのうちディスプレイを介してディスプレイされる入力コンテンツのアドレス情報を識別し、識別されたアドレス情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送してよい。
【0073】
ここで、ディスプレイは、LCD(Liquid Crystal Display Panel)、OLED(Organic Light Emitting Diodes)ディスプレイ、PDP(Plasma Display Panel)などのような多様な形態で実現されてよい。ディスプレイ内には、a-si TFT、LTPS(low temperature poly silicon)TFT、OTFT(organic TFT)などのような形態で実現される駆動回路、バックライトユニットなども一緒に含まれてよい。一方、ディスプレイは、タッチ検知部と組み合わせてタッチスクリーンで実現されてよい。
【0074】
一方、第2プロセッサ130は、第1プロセッサ120を初期化(initializing)した後、第3プロセッサ140がセキュリティ領域にアクセスして入力コンテンツのアドレス情報を識別し、識別されたアドレス情報を第1プロセッサ120に提供するように開始信号を第3プロセッサ140に伝送することができる。
【0075】
一方、以上では、第2プロセッサ130又は第3プロセッサ140がアドレス情報を第1プロセッサ120に提供するものとして説明したが、それに限られるものではない。例えば、第2プロセッサ130又は第3プロセッサ140は、データ、入力コンテンツ又は人工知能モデルを獲得して直接第1プロセッサ120に提供することもできる。
【0076】
以上のように、第2プロセッサ130がセキュリティ領域にアクセスができない問題をセキュリティ領域にアクセスが可能な第3プロセッサ140を利用する方式で解決することができる。
【0077】
以下では、図を参照し、各プロセッサの動作をより具体的に説明する。
【0078】
図3は、本発明の一実施形態に係るメモリ110のセキュリティ領域及び非セキュリティ領域を説明するための図である。特に、図3を参照し、第2プロセッサ130がメモリ110のセキュリティ領域にアクセスができなくても、入力コンテンツの保存及びディスプレイができることを説明する。
【0079】
まず、プロセッサチップ100は、入力コンテンツを受信することができる。図3では、入力コンテンツの受信をストリーミングで表示しており、それは、入力コンテンツがリアルタイムで受信されていることを意味する。なお、インターネットを通じて入力コンテンツがストリーミングされるだけでなく、外部装置から有線でコンテンツを受信することもストリーミングで表示している。
【0080】
プロセッサチップ100は、外部からエンコードされた入力コンテンツを受信し、デコーダを介して入力コンテンツをデコードすることができる。そして、デコードされたコンテンツをメモリ110のセキュリティ領域に保存されてよい。
【0081】
ここで、デコードされたコンテンツは、提供ソースに応じてセキュリティ領域内で保存される領域が異なってよい。例えば、デコードされたコンテンツがチューナを介して受信された場合、デコードされたコンテンツはセキュリティ領域の第1領域に保存され、デコードされたコンテンツがHDMIで接続された外部装置から受信された場合、デコードされたコンテンツは、セキュリティ領域の第2領域に保存されてよい。即ち、セキュリティ領域は、コンテンツの提供ソース別に区分された複数の領域に区分されてよく、第3プロセッサ140はセキュリティ領域の区分された複数の領域に対する情報を識別することができる。
【0082】
その後、セキュリティ領域に保存されたコンテンツは、映像処理を経てディスプレイされてよい。ここで、映像処理は、RTL(Register-Transfer Level)のようなデジタル回路、第1プロセッサ120又は第3プロセッサ140によって行われてよい。ここで、RTLのようなデジタル回路は変更可能性が低い場合に用いられ、第3プロセッサ140は変更可能性が高い場合に用いられてよい。例えば、複雑なアルゴリズム(FRC)であるとしても、定められた数のモードのみが存在するとしたら(例えば、30Hz、60Hz、120Hz) RTLのようなデジタル回路で実現されてよく、この場合、第3プロセッサ140を用いる場合より電力及び原価の側面から有利である。又は、ユーザによる変化要素が多いか、使用タイプ(地域)によって変化要素が複数存在するアルゴリズムの場合(例えば、Gameモード、周辺の輝度による自動画面調整)には、RTLのようなデジタル回路で実現する際、固定的に使われない可能性が高く、チップの中で面積だけを占めるようになる問題が生じるおそれがある。この場合には、第3プロセッサ140を用いることが、RLTのようなデジタル回路を用いるより有利である。そして、第1プロセッサ120は人工知能モデルを用いた映像処理を行うことができる。
【0083】
一方、以上のストリーミング、デコード、保存などの動作は、デジタル回路を介して実現されてよい。第2プロセッサ130は、各デジタル回路を制御して入力コンテンツに対する処理を行うことができるが、入力コンテンツに対する直接的なアクセスは許容されない。即ち、第2プロセッサ130がメモリ110のセキュリティ領域にアクセスができないとしても、入力コンテンツをディスプレイする動作には全く問題が発生しなくなることがある。
【0084】
図4A及び図4Bは、本発明の一実施形態に係るニューラルネットワーク演算を説明するための図である。
【0085】
図4Aに示すように、第2プロセッサ(CPU)130は、O/S(Operating System)を用いてブートを行い、非セキュリティ領域(Storage 1)内に保存された各種プログラム、コンテンツ、データなどを用いて、ユーザの各種メニュー入力を介した制御、アプリケーションの実行のような多様な動作を行うことができる。
【0086】
第2プロセッサ130は、非セキュリティ領域にアクセスが可能であるが、セキュリティ領域(Storage 2)にはアクセスが不可能である。プロセッサチップ100の外部から受信された入力コンテンツなどのように、コンテンツ著作権(DRM)や個人情報のように、セキュリティが必要なデータはセキュリティ領域に保存されてよく、第2プロセッサ130はセキュリティが必要なデータを読み出すことができない。
【0087】
第3プロセッサ140は、デジタル信号処理を独立的に行うプロセッサとして、O/Sを使用せずに、予め設定された動作を行うために、予め保存されたプログラムを使用する。それにより、第3プロセッサ140は、セキュリティが必要なデータの保存されたセキュリティ領域にアクセスが可能である。
【0088】
第1プロセッサ120は、ニューラルネットワーク演算専用のプロセッサとして、O/Sを使用しないため、セキュリティ領域にアクセスが可能である。
【0089】
第2プロセッサ130は、入力コンテンツのアドレス情報を識別することができないため、入力コンテンツに対するニューラルネットワーク演算を行うために第3プロセッサ140を制御することができる。
【0090】
まず、第2プロセッサ130は、第1プロセッサ120を初期化することができる。第2プロセッサ130が第1プロセッサ120を初期化する理由は、第2プロセッサ130でO/Sを通じてテレビシステムを制御するためである。O/Sは、各プロセッサに対して、ドライバを介してリソース(Resource)を管理しており、それは、メモリ110のようなリソース管理に効果的なシステムである。即ち、第2プロセッサ130は、ドライバを介して第1プロセッサ120を初期化してリソースを効率よく管理することができる。
【0091】
その後、第2プロセッサ130は、第3プロセッサ140がセキュリティ領域にアクセスし、入力コンテンツのアドレス情報を識別し、入力コンテンツのアドレス情報を第1プロセッサ120に提供するように制御することができる。第2プロセッサ130の第3プロセッサ140に対する制御動作は、1度の制御動作であってよい。
【0092】
第3プロセッサ140は、第1プロセッサ120が、第3プロセッサ140から提供された入力コンテンツのアドレス情報及び非セキュリティ領域に保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように制御することができる。第3プロセッサ140の第1プロセッサ120に対する制御動作は、予め設定された時間おきに繰り返される制御動作であってよい。仮に、第3プロセッサ140は、入力コンテンツが30fpsの映像である場合、33.3msおきに第1プロセッサ120に入力を提供し、ニューラルネットワーク演算を行うように制御することができる。
【0093】
即ち、第3プロセッサ140は、入力コンテンツの毎フレームどこに毎フレームのアドレス情報を第1プロセッサ120に提供し、ニューラルネットワーク演算を行うように制御(Trigger)することができる。ただ、それに限られるものではなく、第3プロセッサ140は、入力コンテンツの毎フレームを獲得し、獲得されたフレームを第1プロセッサ120に提供し、ニューラルネットワーク演算を行うように制御することもできる。
【0094】
一方、第1プロセッサ120がニューラルネットワーク演算を行う場合に用いられる人工知能モデルは第2プロセッサ130が提供することができる。ここで、人工知能モデルは、非セキュリティ領域に保存されており、第2プロセッサ130は非セキュリティ領域にアクセスして人工知能モデルのアドレス情報を第1プロセッサ120に提供することができる。
【0095】
以上のような動作を通じて、第2プロセッサ130でない第3プロセッサ140が入力コンテンツに対するアドレス情報を識別し、第1プロセッサ120のニューラルネットワーク演算動作を制御するようになる。それにより、入力コンテンツに対するセキュリティを維持し、第2プロセッサ130の演算負担を軽減させた状態で、第1プロセッサ120を用いたリアルタイムのニューラルネットワーク演算を行うことができる。
【0096】
図4Aでは、メモリ110がセキュリティ領域及び非セキュリティ領域を含むものとして説明したが、それに限られるものではない。例えば、図4Bに示すように、プロセッサチップ100は、ハードウェア的に区分された第1メモリ111及び第2メモリ112を含んでよい。ここで、第1メモリ110は、非セキュリティデータが保存されるメモリとして、第2プロセッサ130のアクセスが可能なメモリであってよい。第2メモリ112は、セキュリティデータが保存されるメモリとして、第2プロセッサ130のアクセスができないメモリであってよい。第1プロセッサ120及び第3プロセッサ140は、第1メモリ111及び第2メモリ112に対するアクセスが可能である。図4Bの動作は、メモリがハードウェア的に区分されたことの他には、図4Aの動作と同様であるため、重複する説明は省略する。
【0097】
図5及び図5Bは、本発明の別の実施形態に係るニューラルネットワーク演算を説明するための図である。
【0098】
図5Aは、図4Aの動作と略同一であるが、人工知能モデルのアドレス情報を識別し、アドレス情報を第1プロセッサ120に提供する主体が第3プロセッサ140である場合を説明するための図である。
【0099】
第2プロセッサ130とは違って、第3プロセッサ140はセキュリティ領域(Storage 2)に保存された入力コンテンツに対するアクセスが可能であるため、入力コンテンツに対する分析が可能である。それにより、第3プロセッサ140は、入力コンテンツに最適化された人工知能モデルを識別することができる。仮に、第3プロセッサ140は、入力コンテンツのノイズが問題になると判断されると、非セキュリティ領域(Storage 1)からノイズを取り除くための人工知能モデルのアドレス情報を識別し、入力コンテンツの解像度が問題になると判断されると、非セキュリティ領域(Storage 1)で解像度を拡張するための人工知能モデルのアドレス情報を識別することができる。第3プロセッサ140は、人工知能モデルのアドレス情報を第1プロセッサ120に提供することができる。
【0100】
図5Aでは、メモリ110がセキュリティ領域及び非セキュリティ領域を含むものとして説明したが、それに限られるものではない。例えば、図5Bに示すように、プロセッサチップ100は、ハードウェア的に区分された第1メモリ111及び第2メモリ112を含んでよく、図4Bと重複するため、具体的な説明は省略する。
【0101】
図6Aないし図6Cは、本発明の一実施形態に係るアプリケーションによる動作を説明するための図である。
【0102】
図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アドレス情報とに基づいて、データに対するニューラルネットワーク演算を行うように制御することができる。
【0103】
例えば、アプリケーションAは、センサを介して検知された周辺の照度値を入力され、最も適した輝度を演算するアプリケーションであってよい。ここで、周辺の照度値は、セキュリティが必要なデータではないため、非セキュリティ領域に保存されてよい。第2プロセッサ130は、周辺の照度値の第1アドレス情報及びアプリケーションAに対応する人工知能モデルの第2アドレス情報を識別し、第1アドレス情報と第2アドレス情報とを第1プロセッサ120に提供することができる。第2プロセッサ130は、第1プロセッサ120が第1アドレス情報と第2アドレス情報とに基づいて、周辺の照度値に対応する最も合った輝度を演算するように制御することができる。
【0104】
即ち、この場合、第2プロセッサ130は、第3プロセッサ140を用いる必要がない。
【0105】
その後、図6Bのように、アプリケーションAが終了し、入力コンテンツを映像処理するアプリケーションBが実行されると、第2プロセッサ130は、第3プロセッサ140がメモリ110に保存された入力コンテンツに対する情報を第1プロセッサ120に提供するように制御することができる。
【0106】
例えば、アプリケーションAが終了し、入力コンテンツを映像処理するアプリケーションBが実行されると、第2プロセッサ130は第3プロセッサ140がセキュリティ領域(Storage 2)にアクセスして入力コンテンツのアドレス情報を識別し、入力コンテンツのアドレス情報を第1プロセッサ120に提供するように制御することができる。
【0107】
第3プロセッサ140は、第1プロセッサ120が、第3プロセッサ140から提供された入力コンテンツに対する情報及び非セキュリティ領域(Storage 1)に保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように制御することができる。
【0108】
例えば、第3プロセッサ140は、第1プロセッサ120が、第3プロセッサ140から提供された入力コンテンツのアドレス情報及び非セキュリティ領域(Storage 1)に保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように制御することができる。具体的に、第3プロセッサ140は、予め設定された周期で受信される入力コンテンツをセキュリティ領域から読み出し、第1プロセッサ120を介して映像処理を行った後、再びセキュリティ領域に保存する動作を繰り返すことができる。
【0109】
即ち、この場合、第2プロセッサ130は、第1プロセッサ120を初期化した後、その後の動作は、第3プロセッサ140に委任することができる。
【0110】
特に、第2プロセッサ130は、プロセッサチップ100の動作全般を制御するプロセッサであるが、第3プロセッサ140は必要な場合にのみ用いられるプロセッサとして、第3プロセッサ140がリアルタイムの映像処理による有利であってよい。
【0111】
図6Bでは、メモリ110がセキュリティ領域及び非セキュリティ領域を含むものとして説明したが、それに限られるものではない。例えば、図6Cに示すように、プロセッサチップ100は、ハードウェア的に区分された第1メモリ111及び第2メモリ112を含むこともでき、図4Bと重複するため、具体的な説明は省略する。
【0112】
図7は、本発明の一実施形態に係るプロセッサチップの制御方法を説明するためのフローチャートである。
【0113】
メモリ、メモリに保存されたデータに対するニューラルネットワーク演算を行う第1プロセッサ、第2プロセッサ及び第3プロセッサを含むプロセッサチップの制御方法は、まず、第3プロセッサが動作を行うように、第2プロセッサが第3プロセッサに制御信号を伝送する(S710)。そして、第1プロセッサが動作を行うように、第2プロセッサが第1プロセッサに制御信号を伝送する(S720)。
【0114】
ここで、第3プロセッサに制御信号を伝送するステップ(S710)は、第3プロセッサがメモリに保存された入力コンテンツに対する情報を第1プロセッサに提供するように開始信号を第3プロセッサに伝送し、第1プロセッサに制御信号を伝送するステップ(S720)は、第1プロセッサが第3プロセッサから提供された入力コンテンツに対する情報及びメモリに保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように初期化信号を前記第1プロセッサに伝送することができる。
【0115】
そして、第3プロセッサに制御信号を伝送するステップ(S710)は、第3プロセッサがメモリのセキュリティ領域にアクセスして入力コンテンツのアドレス情報を識別し、入力コンテンツのアドレス情報を第1プロセッサに提供するように開始信号を第3プロセッサに伝送し、第1プロセッサに制御信号を伝送するステップ(S720)は、第1プロセッサが第3プロセッサから提供された入力コンテンツのアドレス情報及びメモリの非セキュリティ領域に保存された人工知能モデル情報に基づいて、入力コンテンツに対するニューラルネットワーク演算を行うように初期化信号を第1プロセッサに伝送することができる。
【0116】
ここで、第2プロセッサが非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を第1プロセッサに提供するステップと、第1プロセッサが第2プロセッサから提供された人工知能モデルのアドレス情報に基づいて、人工知能モデルを獲得するステップを更に含んでよい。
【0117】
又は、第3プロセッサに制御信号を伝送するステップ(S710)は、第3プロセッサが入力コンテンツに基づいて非セキュリティ領域に保存された複数の人工知能モデルのうちの一つに対するアドレス情報を第1プロセッサに提供するように開始信号を第3プロセッサに伝送し、制御方法は、第1プロセッサが第3プロセッサから提供された人工知能モデルのアドレス情報に基づいて人工知能モデル情報を獲得するステップを更に含んでよい。
【0118】
一方、入力コンテンツに含まれた複数のフレームが順次に受信されてメモリのセキュリティ領域に保存されるステップを更に含み、第3プロセッサに制御信号を伝送するステップ(S710)は、第3プロセッサがメモリに順次に保存されるフレームのアドレス情報を予め設定された時間おきに第1プロセッサに提供するように開始信号を第3プロセッサに伝送することができる。
【0119】
そして、第3プロセッサに制御信号を伝送するステップ(S710)は、第1アプリケーションが実行されると、第3プロセッサが入力コンテンツに対する情報を第1プロセッサに提供するように開始信号を第3プロセッサに伝送することができる。
【0120】
ここで、第1アプリケーションが終了すると、第3プロセッサが提供動作を中止するように第2プロセッサが第3プロセッサに終了信号を伝送するステップ、第3プロセッサの制御によって第1プロセッサがニューラルネットワーク演算動作を中止するステップと、第3プロセッサがニューラルネットワーク演算動作が中止されていることを示す信号を第2プロセッサに提供するステップとを更に含んでよい。
【0121】
以上のような本発明の多様な実施形態によると、プロセッサチップは、CPUでない、DSPを用いてコンテンツの原本に対するニューラルネットワーク演算を行うことでメモリの使用を減らし、コンテンツの出力品質を改善し、リアルタイムの処理を行うことができる。
【0122】
一方、以上では、説明の便宜のために、メモリ、第1プロセッサ、第2プロセッサ及び第3プロセッサが1つのプロセッサチップで実現されるものとして説明したが、それに限られるものではない。例えば、電子装置がメモリ、CPU、DSP及びNPUを別個の構成で含むように実現されてよい。
【0123】
一方、本発明の一実施形態によると、以上で説明した多様な実施形態は、機器(machine)(例:コンピュータ)で読み込める保存媒体(machine-readable storage media)に保存されたコマンドを含むソフトウェアで実現されてよい。機器は、保存媒体から保存されたコマンドを呼び出し、呼び出されたコマンドに従って動作が可能な装置として、開示された実施形態に係る映像処理装置(例:映像処理装置(A))を含んでよい。コマンドがプロセッサによって実行される場合、プロセッサが直接又はプロセッサの制御下に他の構成要素を用いてコマンドに該当する機能を行うことができる。コマンドは、コンパイラ又はインタプリタによって生成又は実行されるコードを含むことができる。機器で読み取れる保存媒体は、非一時的(non-transitory)な保存媒体の形態で提供されてよい。ここで、「非一時的」とは、保存媒体が信号(signal)を含まずに、実在(tangible)することを意味するだけで、データが保存媒体に半永久的又は一時的に保存されることを区分しない。
【0124】
なお、本発明の一実施形態によると、以上で説明された多様な実施形態に係る方法は、コンピュータプログラム製品(computer program product)に含まれて提供されてよい。コンピュータプログラム製品は、製品として販売者及び購入者の間で取り引きされてよい。コンピュータプログラム製品は、機器として読み込める保存媒体(例:compact disc read only memory(CD-ROM))の形態で、又はアプリケーションストア(例:プレイストアTM)を通じてオンラインで配布されてよい。オンライン配布の場合に、コンピュータプログラム製品の少なくとも一部は、製造元のサーバ、アプリケーションストアのサーバ、又は仲介サーバのメモリのような保存媒体に少なくとも一時保存されるか、一時的に生成されてよい。
【0125】
なお、本発明の一実施形態によると、以上で説明された多様な実施形態は、ソフトウェア(Software)又はハードウェア(Hardware)又は、その組み合わせを用いてコンピュータ又はそれと類似する装置で読み込める記録媒体内で実現されてよい。一部の場合において、本明細書で説明される実施形態がプロセッサそのもので実現されてよい。ソフトウェア的な実現によると、本明細書で説明される手続き及び機能のような実施形態は、別途のソフトウェアモジュールで実現されてよい。ソフトウェアモジュールのそれぞれは、本明細書で説明される一つ以上の機能及び動作を行うことができる。
【0126】
一方、上述の多様な実施形態に係る機器のプロセッシング動作を行うためのコンピュータ命令語(computer instructions)は、非一時的な読み取り可能な媒体(non-transitory computer readable medium)が提供されてよい。このような非一時的な読み取り可能な媒体に保存されたコンピュータ命令語は、特定機器のプロセッサによって実行される際、上述の多様な実施形態による機器における処理動作を特定機器が行うようにする。非一時的な読み取り可能な媒体とは、レジスタやキャッシュ、メモリ等のような短い間データを保存する媒体ではなく、半永久的にデータを保存し、機器によって読み取り(Reading)が可能な媒体を意味する。非一時的な読み取り可能な媒体の具体的な例としては、CDやDVD、ハードディスク、ブルーレイディスク、USB、メモリカード、ROM等であってよい。
【0127】
なお、上述の多様な実施形態による構成要素(例:モジュール又はプログラム)のそれぞれは、単数又は複数の個体で構成されてよく、上述の該当サブ構成要素のうち、一部のサブ構成要素が省略されるか、又は、別のサブ構成要素が多様な実施形態に更に含まれてよい。代替的にまたは追加的に、一部の構成要素(例:モジュール又はプログラム)は、1つの個体で統合され、統合される前のそれぞれの当該構成要素によって行われる機能を同一又は類似するように行ってよい。多様な実施形態に係るモジュール、プログラム又は他の構成要素によって行われる動作は、順次に、並行して、繰り返し、ヒューリスティックに実行されたり、少なくとも一部の動作が他の順番で実行されたり、省略又は他の動作が追加されてよい。
【0128】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
図1
図2
図3
図4A
図4B
図5A
図5B
図6A
図6B
図6C
図7