(57)【要約】【課題】ＣＰＵによるＨ／Ｗ＿ＩＰの制御タイミングの制約を低減する半導体装置を提供することにある。【解決手段】半導体装置は中央処理装置と処理装置とを１つの半導体基板に備える。処理装置はレジスタ設定リストを格納するバッファを備え、レジスタ設定リストの読み込みの終了を示すアクセス終了信号を中央処理装置に通知する。中央処理装置はアクセス終了信号に基づいてメモリ内のレジスタ設定リストを変更し、更新要求信号を処理装置に通知する。処理装置は、中央処理装置によって変更されたレジスタ設定リストを前記更新要求情報に基づいてバッファに読み込む。【選択図】図９
2017037505.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置は中央処理装置と処理装置とを１つの半導体基板に備え、
前記処理装置はレジスタ設定リストを格納するバッファを備え、前記レジスタ設定リストの読み込みの終了を示すアクセス終了信号を前記中央処理装置に通知し、
前記中央処理装置は前記アクセス終了信号に基づいてメモリ内のレジスタ設定リストを変更し、更新要求信号を前記処理装置に通知し、
前記処理装置は、前記中央処理装置によって変更されたレジスタ設定リストを前記更新要求情報に基づいて前記バッファに読み込む。
【請求項２】
請求項１の半導体装置において、
前記処理装置は所定時間内の処理を周期的に連続して行う。
【請求項３】
請求項１の半導体装置において
前記メモリからレジスタ設定リストを読み込むメモリインタフェースと、
前記レジスタ設定リストに基づいてデータの処理を行う処理部と、
前記開始信号および前記終了信号を生成する制御部と、
を備える。
【請求項４】
請求項１の半導体装置において、
前記処理装置は映像データを前記メモリから読み出して処理し、処理した映像データをメモリに書き込む。
【請求項５】
請求項１の半導体装置において、
前記処理装置は音声データを前記メモリから読み出して処理し、処理した音声データをメモリに書き込む。
【請求項６】
請求項１の半導体装置において、
前記メモリは前記半導体基板とは異なる半導体基板に形成される。
【請求項７】
半導体装置は中央処理装置と処理装置とを１つの半導体基板に備え、
前記処理装置は複数のレジスタ設定リストのそれぞれを格納する複数のバッファを備え、前記複数のレジスタ設定リストのそれぞれの読み込みの開始信号および終了信号を生成し、前記開始信号または終了信号に基づいたアクセス終了信号を前記中央処理装置に通知し、
前記中央処理装置は前記アクセス終了信号に基づいて前記メモリ内のレジスタ設定リストを変更し、変更要求信号を前記処理装置に通知し、
前記処理装置は、前記中央処理装置によって変更されたレジスタ設定リストを前記変更要求情報に基づいて読み込み、該レジスタ設定リストを前記終了信号に基づいて前記複数のバッファのいずれに格納するかを決定する。
【請求項８】
請求項７の半導体装置において、
前記処理装置は所定時間内の処理を周期的に連続して行う。
【請求項９】
請求項７の半導体装置において
前記メモリからレジスタ設定リストを読み込むメモリインタフェースと、
前記レジスタ設定リストに基づいてデータの処理を行う処理部と、
前記開始信号および前記終了信号を生成する制御部と、
を備える。
【請求項１０】
請求項７の半導体装置において、
前記処理装置は映像データを前記メモリから読み出して処理し、処理した映像データをメモリに書き込む。
【請求項１１】
請求項７の半導体装置において、
前記処理装置は音声データを前記メモリから読み出して処理し、処理した音声データをメモリに書き込む。
【請求項１２】
請求項７の半導体装置において、
前記メモリは前記半導体基板とは異なる半導体基板に形成される。
【請求項１３】
半導体装置は中央処理装置と処理装置とを１つの半導体基板に備え、
前記処理装置は複数のレジスタ設定リストのそれぞれを格納する複数のバッファを備え、前記複数のレジスタ設定リストのそれぞれの読み込みの開始信号および終了信号を生成し、
前記複数のレジスタ設定リストのそれぞれは次に実行するリストが格納されるメモリのアドレス情報を含み、
前記中央処理装置は前記メモリ内のレジスタ設定リストを変更し、
前記処理装置は、前記中央処理装置によって変更されたレジスタ設定リストを前記アドレス情報に基づいて読み込み、当該レジスタ設定リストを前記終了信号に基づいて前記複数のバッファのいずれに格納するかを決定する。
【請求項１４】
請求項１３の半導体装置において、
前記処理装置は所定時間内の処理を周期的に連続して行う。
【請求項１５】
請求項１３の半導体装置において
前記メモリからレジスタ設定リストを読み込むメモリインタフェースと、
前記レジスタ設定リストに基づいてデータの処理を行う処理部と、
前記開始信号および前記終了信号を生成する制御部と、
を備える。
【請求項１６】
請求項１３の半導体装置において、
前記処理装置は映像データを前記メモリから読み出して処理し、処理した映像データをメモリに書き込む。
【請求項１７】
請求項１３の半導体装置において、
前記処理装置は音声データを前記メモリから読み出して処理し、処理した音声データをメモリに書き込む。
【請求項１８】
請求項１３の半導体装置において、
前記メモリは前記半導体基板とは異なる半導体基板に形成される。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は半導体装置に関し、例えばレジスタ設定リストに基づいて動作するハードウェアＩＰ（intellectual Property）を備える半導体装置に適用可能である。
【背景技術】
【０００２】
半導体分野ではＣＰＵ（Central Processing Unit）やメモリ、信号処理回路などＬＳＩ(Large-Scale Integration)を構成する機能ブロックを「ＩＰ」（設計資産）と呼ぶ。ＩＰにはその機能ブロックのハードウェア（論理回路図、ＬＳＩレイアウト図など）およびソフトウェア（ドライバソフトウェア、ファームウェア、ミドルウェアなど）がある。また、ＳｏＣ（System-on-a-Chip）は、ある装置やシステムの動作に必要な機能のすべてを、一つの半導体チップに実装する方式であり、ＣＰＵを核に各種のコントローラ回路やメモリなどのハードウェアＩＰ（以下、Ｈ／Ｗ＿ＩＰという。）を備える。
本開示に関連する先行技術文献には、例えば米国特許出願公開第２０１０／０３０９５１１号明細書がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１０／０３０９５１１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳｏＣに搭載されるＨ／Ｗ＿ＩＰ数の増加、各Ｈ／Ｗ＿ＩＰからの割り込み頻度増加により、ＣＰＵの割り込み処理時間は増加傾向にある。また、ＣＰＵによるＨ／Ｗ＿ＩＰの制御タイミングの制約は、高レート化に伴い、厳しくなってきている。
【０００５】
その他の課題と新規な特徴は、本発明書の記述および添付図面か明らかになるであろう。
【課題を解決するための手段】
【０００６】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、ＣＰＵとＨ／Ｗ＿ＩＰが、時分割でレジスタ設定リストを共有し、Ｈ／Ｗ＿ＩＰがレジスタ設定リストを参照していない間に、ＣＰＵがレジスタ設定リストを書き換え可能とする。
【発明の効果】
【０００７】
上記によれば、ＣＰＵによるＨ／Ｗ＿ＩＰの制御タイミングの制約を低減することができる。
【図面の簡単な説明】
【０００８】
【図１】ＳｏＣを説明するためのブロック図。
【図２】比較例１に係るＳｏＣの構成を説明するためのブロック図。
【図３】図２のＳｏＣの制御タイミングを説明するための図。
【図４】図２の係るＳｏＣの制御タイミングの遅延による問題を説明するための図。
【図５】比較例２に係るＳｏＣの構成を説明するためのブロック図。
【図６】図５のＳｏＣのレジスタ設定リストのアクセス情報を説明するための図。
【図７】図５のＳｏＣの制御タイミングを説明するための図。
【図８】図５のＳｏＣのレジスタ設定リストを変更する制御タイミングを説明するための図。
【図９】実施例１に係るシステムの構成を説明するためのブロック図。
【図１０】図９のＳｏＣの制御タイミングを説明するための図。
【図１１】実施例２に係るシステムの構成を説明するためのブロック図。
【図１２】図１１のＳｏＣの制御タイミングを説明するための図。
【図１３】図１１のＳｏＣのバッファ管理機能を説明するための図。
【図１４】実施例３に係るシステムの構成を説明するためのブロック図。
【図１５】図１４のＳｏＣの制御タイミングを説明するための図。
【図１６】図１４のＳｏＣのバッファ管理機能を説明するための図。
【発明を実施するための形態】
【０００９】
以下、実施例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【００１０】
まず、本開示に先立って本願発明者らが検討した技術（以下、比較例という。）について説明する。
図１はＳｏＣを説明するためのブロック図である。ＳｏＣは、ＣＰＵ（中央処理装置）の他に、Ｈ／Ｗ＿ＩＰを搭載しているため、ＣＰＵは、ソフト処理だけでなく、Ｈ／Ｗ＿ＩＰのためのＨ／Ｗ＿ＩＰ制御も実施する必要がある。ソフト処理には、通常処理と優先処理とがある。通常処理としては、ＯＳ（Operating System）におけるプロセスやスレッド処理が該当する。これに対して、優先処理は割り込み処理である。例えば、映像や音声を処理するＳｏＣでは、通常処理時間は、高画質化、高音質化に伴い、増加傾向にある。優先処理時間は、ＳｏＣに搭載されるＨ／Ｗ＿ＩＰ数の増加、各Ｈ／Ｗ＿ＩＰからの割り込み頻度増加により、増加傾向にある。また、Ｈ／Ｗ＿ＩＰの制御タイミングの制約は、高レート化に伴い、厳しくなってきている。例えば、６０ｆｐｓ（frame per second）の映像の場合、１フレームは１６．６ｍｓ（＝１ｓｅｃ／６０ｆｒａｍｅ）となる。
【００１１】
＜比較例１＞
図２は比較例１に係るＳｏＣの構成を示すブロック図である。比較例１に係るＳｏＣ１０ＲはＣＰＵ１１ＲとＨ／Ｗ＿ＩＰ１２Ｒとメモリ（ＭＥＭＯＲＹ）１４Ｒとバス１５Ｒとを備える。Ｈ／Ｗ＿ＩＰ１２ＲはＣＰＵインタフェース（ＣＰＵ＿Ｉ／Ｆ）１２１Ｒと制御回路１２２Ｒと処理回路１２３Ｒとメモリインタフェース（ＭＥＭＯＲＹ＿Ｉ／Ｆ）１２４Ｒとを備える。破線矢印ＲＲ、ＷＲに示すように、ＣＰＵ１１Ｒはメモリ１４からバス１５Ｒを介してレジスタ設定リストを読出し、Ｈ／Ｗ＿ＩＰ１２Ｒの制御回路１２２Ｒ内のバッファ１２２１Ｒにレジスタ設定リストを書き込む。これがＨ／Ｗ＿ＩＰ制御１２２Ｒである。処理回路１２３Ｒはバッファ１２２１Ｒ内のレジスタ設定リストに従ってデータを処理し、メモリインタフェース１２４Ｒおよびバス１５Ｒを介してメモリ１４Ｒとデータを授受する。
【００１２】
図３は比較例１に係るＳｏＣの制御タイミングを示す図である。１フレームの間に、ＣＰＵ１１Ｒはソフトウェアによる処理（ソフト処理）１１１Ｒを１フレームの始めからｔ１の間に行い、Ｈ／Ｗ＿ＩＰ１２Ｒを制御するための処理（Ｈ／Ｗ＿ＩＰ制御）１１２Ｒをｔ１からｔ２の間に行い、Ｈ／Ｗ＿ＩＰ１２ＲはＨ／Ｗ＿ＩＰ制御に基づく処理（Ｈ／Ｗ＿ＩＰ処理）２２３Ｒをｔ２から１フレームの終わりの間に行う。
【００１３】
図４は比較例１に係るＳｏＣの制御タイミングの遅延による問題を示す図である。ソフト処理１１１Ｒの処理時間が増加し、Ｈ／Ｗ＿ＩＰ制御１１２Ｒの開始タイミング（ｔ３）が遅延する（ｔ３＞ｔ１）と、Ｈ／Ｗ＿ＩＰ処理の開始タイミング（ｔ４）が遅延し（ｔ４＞ｔ２）、Ｈ／Ｗ＿ＩＰ処理２２３Ｒが１フレームの終了までに終わらず、問題が発生する。例えば、映像や音声を処理するＳｏＣにおいてＨ／Ｗ＿ＩＰ制御１１２Ｒの開始タイミング（ｔ３）が遅延すると、映像や音声が乱れる。
【００１４】
上記問題の解決方法として、ソフト処理の時間の削減をすることが考えられるが、ソフトウェア規模が拡大し、ＯＳやＳｏｃのユーザである顧客開発部分等の半導体デバイスメーカの開発以外のソフトウェア規模が大きなっている。このため、それらの処理時間の増加制約をかけるのは困難であり、実現できる解決方法とはならない。したがって、ソフト処理の時間の削減以外で、問題の解決方法を検討した結果を以下に説明する。
【００１５】
＜比較例２＞
図５は比較例２に係るＳｏＣの構成を示すブロック図である。図６は比較例２に係るＳｏＣのレジスタ設定リストのアクセス情報を示す図である。比較例２に係るＳｏＣのＨ／Ｗ＿ＩＰは、ＣＰＵによって制御されるのでなく、自分自身を制御するものである。
比較例２に係るＳｏＣ１０ＳはＣＰＵ１１ＳとＨ／Ｗ＿ＩＰ１２ＳとＳＲＡＭ（Static Random Access Memory）等のメモリ（ＭＥＭＯＲＹ）１４Ｓとバス１５Ｓとを備える。Ｈ／Ｗ＿ＩＰ１２ＳはＣＰＵインタフェース（ＣＰＵ＿Ｉ／Ｆ）１２１Ｓと制御回路１２２Ｓと処理回路１２３Ｓとメモリインタフェース（ＭＥＭＯＲＹ＿Ｉ／Ｆ）１２４Ｓとを備える。破線矢印Ｗ１Ｓに示すように、ＣＰＵ１１Ｓはバス１５Ｓを介してメモリ１４Ｓにレジスタ設定リストを書き込む。破線矢印Ｗ２Ｓに示すように、ＣＰＵ１１Ｓはバス１５Ｓを介してＨ／Ｗ＿ＩＰ１２Ｓのバッファ１２２１Ｓにメモリ１４Ｓ内のレジスタ設定リストのアクセス情報を書き込む。図６に示すように、アクセス情報はＨ／Ｗ＿ＩＰ制御対象バッファ（レジスタ設定リスト）の先頭アドレスおよびＨ／Ｗ＿ＩＰ制御対象バッファ（レジスタ設定リスト）のサイズである。破線矢印ＲＳに示すように、Ｈ／Ｗ＿ＩＰ１２Ｓはメモリインタフェース１２４Ｓおよびバス１５Ｓを介してメモリ１４Ｓからレジスタ設定リストをバッファ１２２１Ｓ内に読む。これがＨ／Ｗ＿ＩＰ制御２２２Ｓである。制御回路１２２Ｓはバッファ１２２１Ｓ内のレジスタ設定リストに従ってＨ／Ｗ＿ＩＰ１２Ｓを制御する。処理回路１２３Ｓはバッファ１２２１Ｓ内のレジスタ設定リストに従ってデータを処理し、例えばメモリインタフェース１２４Ｓがバス１５Ｓを介して読み込んだメモリ１４Ｓ内のデータを演算処理する。メモリインタフェース１２４Ｓはバス１５Ｓを介してメモリ１４Ｓにその演算したデータを書き込む。レジスタ設定リストの内容は処理に依存するが、例えば画像処理における画像拡大を行う場合のレジスタ設定リストの内容は
入力画像のアドレス、サイズ
出力画像のアドレス、サイズ
拡大率
拡大時の補間方法
等である。
【００１６】
図７は比較例２に係るＳｏＣの制御タイミングを示す図である。比較例２では、Ｈ／Ｗ＿ＩＰ１２Ｓが自分自身を制御するために、予めＣＰＵ１１Ｓでメモリ１４Ｓに作成されたレジスタ設定リスト１４１Ｓを参照する。これにより、ＣＰＵ１１ＳによるＨ／Ｗ＿ＩＰ制御を必要とせず、Ｈ／Ｗ＿ＩＰ制御２２２ＳがＣＰＵ１１Ｓのソフト処理１１１Ｓのタイミング、処理時間増加に依存せず、決まったタイミングで開始することができる。しかし、予めレジスタ設定リストをＣＰＵ１１Ｓで作成する必要あるため、Ｈ／Ｗ＿ＩＰ１２Ｓは決まった処理を繰り返すことが前提となる。
【００１７】
図８は比較例２に係るＳｏＣのレジスタ設定リストを変更する制御タイミングを示す図である。Ｈ／Ｗ＿ＩＰ１２Ｓは、１フレーム期間中、レジスタ設定リストをメモリ１４Ｓから読み込み、それに対応する処理を実行する。Ｈ／Ｗ＿ＩＰ１２Ｓのレジスタ設定リストのアクセスが終了する前に書き換えられないようにするため、その処理完了を知らせる処理完了信号（ＰＣ）を受けた後、ＣＰＵ１１Ｓはレジスタ設定リストを変更してメモリ１４Ｓに書き込む。そのため、レジスタ設定リストの変更は１フレーム期間内に変更することができず、Ｈ／Ｗ＿ＩＰ１２Ｓの処理は連続して実行することができない。したがって、処理途中でＨ／Ｗ＿ＩＰ１２Ｓのレジスタ設定リスト変更する際には、Ｈ／Ｗ＿ＩＰ１２Ｓの処理を一旦停止しなければならない。これにより、例えば、映像や音声の再生内容（映像サイズ、音声周波数）の変更時において、映像乱れや音切れが発生する。
【００１８】
＜実施形態＞
ＣＰＵとＨ／Ｗ＿ＩＰが、時分割でレジスタ設定リストを共有できるようにする。Ｈ／Ｗ＿ＩＰがレジスタ設定リストを参照していない間に、ＣＰＵがレジスタ設定リストを書き換え可能とする。これにより、Ｈ／Ｗ＿ＩＰは、処理を継続したまま、ＣＰＵは、Ｈ／Ｗ＿ＩＰ処理内容を変更可能となり、ＣＰＵによるＨ／Ｗ＿ＩＰの制御タイミングの制約を低減することができる。例えば、映像処理のＨ／Ｗ＿ＩＰや音声処理のＨ／Ｗ＿ＩＰの再生内容変更時において、映像乱れや音切れを発生させず、ＣＰＵは、Ｈ／Ｗ＿ＩＰ処理内容を変更可能となる。
【実施例１】
【００１９】
図９は実施例１に係るシステムの構成を示すブロック図である。システム１ＡはＳｏＣ１０ＡとＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等のメモリ（ＭＥＭＯＲＹ）２０Ａとを備える。ＳｏＣ１０Ａは１つの半導体基板上に形成される半導体装置である。メモリ２０Ａは１つの半導体基板上に形成される半導体装置である。メモリ２０Ａは複数の半導体チップで構成してもよい。システム１ＡはＳｏＣ１０Ａとメモリ２０Ａとを１つのパッケージに封止して構成されるＳｉＰ（System in Package）であってもよいし、別々のパッケージに封止して１つの基板上に実装したものであってもよい。システム１Ａも半導体装置という。メモリ２０Ａは比較例２と同様にＳｏＣ１０Ａ内に内蔵されるＳＲＡＭ等のメモリであっていてもよい。
【００２０】
ＳｏＣ１０ＡはＣＰＵ１１ＡとＨ／Ｗ＿ＩＰ１２Ａとメモリコントローラ（ＭＥＭＣ）１６Ａとバス１５Ａとを備える。Ｈ／Ｗ＿ＩＰ１２Ａは所定期間（例えば、１フレーム期間で、１６．６ｍｓ）内に所定の処理（例えば、映像処理や音声処理）を行い、所定の処理は周期的に連続して実行される。Ｈ／Ｗ＿ＩＰ１２ＡはＣＰＵインタフェース（ＣＰＵ＿Ｉ／Ｆ）１２１Ａと制御回路１２２Ａと処理回路１２３Ａとメモリインタフェース（ＭＥＭＯＲＹ＿Ｉ／Ｆ）１２４Ａとを備える。破線矢印Ｗ１Ａに示すように、ＣＰＵ１１Ａはバス１５Ａおよびメモリコントローラ１６Ａを介してメモリ２０Ａにレジスタ設定リストを書き込む。破線矢印Ｗ２Ａに示すように、ＣＰＵ１１Ａはバス１５Ａおよびメモリコントローラ１６Ａを介してＨ／Ｗ＿ＩＰ１２Ａの制御回路１２２Ａに比較例２（図６）と同様なメモリ１４Ａ内のレジスタ設定リストのアクセス情報を書き込む。Ｈ／Ｗ＿ＩＰ１２Ａはメモリインタフェース１２４Ａ、バス１５Ａおよびメモリコントローラ１６Ａを介してメモリ２０Ａからレジスタ設定リストを制御回路１２２Ａ内のバッファ１２２１Ａに読む。これがＨ／Ｗ＿ＩＰ制御１１２Ａである。なお、バッファ１２２１Ａは制御回路１２２Ａ内になくてもよく、例えばＣＰＵインタフェース１２１Ａと制御回路１２２Ａの間にあってもよい。制御回路１２２Ａはバッファ１２２１Ａ内のレジスタ設定リストに従ってＨ／Ｗ＿ＩＰ１２Ａを制御する。処理回路１２３Ａはバッファ１２２１Ａ内のレジスタ設定リストに従って、メモリインタフェース１２４Ａがバス１５Ａおよびメモリコントローラ１６Ａを介して読み込んだメモリ１４Ａ内のデータ（例えば、映像データ、音声データ）を演算処理する。メモリインタフェース１２４Ａはバス１５Ａおよびメモリコントローラ１６Ａを介してメモリ１４Ａにその演算したデータを書き込む。制御回路１２２Ａはメモリ２０Ａ内のレジスタ設定リストへのアクセス開始（Read開始）およびアクセス終了（Read終了）を知らせる情報を生成し、ＣＰＵインタフェース１２１Ａはそれらの情報の全部または一部に基づいた信号、例えばアクセス終了信号（ＡＣ）を生成し、ＣＰＵ１１Ａに伝えることが可能とされる。アクセス終了信号等の専用信号ではなく、割り込み要求信号であってもよい。レジスタ設定リストの内容は処理に依存するが、画像処理における画像拡大の場合のレジスタ設定リストは、比較例２と同様である。
【００２１】
図１０は実施例１に係るＳｏＣのレジスタ設定リストを変更する制御タイミングを示す図である。Ｈ／Ｗ＿ＩＰ１２Ａは、１フレームの前半に、リストRead開始情報をＣＰＵ１１Ａに知らせて、レジスタ設定リストをメモリ２０Ａから読み込み（リストRead中）、読み込み終了の際にリストRead終了情報をＣＰＵ１１Ａに知らせ、１フレームの後半にそれに対応する処理を実行する（リスト処理中）。ＣＰＵ１１Ａは、アクセス終了信号（ＡＣ）を受けた後、メモリ２０Ａ内のレジスタ設定リストを変更し、図９の破線矢印Ｗ３Ａに示すように、Ｈ／Ｗ＿ＩＰ１２Ａに更新要求を知らせる。破線１００Ａの部分は比較例２に対し追加したＣＰＵ機能（Ｓ／Ｗ＿ＩＰ機能）であり、破線２００Ａの部分は比較例２に対し追加したＨ／Ｗ＿ＩＰ機能である。
【００２２】
実施例１によれば、Ｈ／Ｗ＿ＩＰ１２Ａの処理を継続したまま、ＣＰＵ１１ＡによるＨ／Ｗ＿ＩＰ１２Ａの処理リスト変更を可能にする。これにより、例えば、映像や音声の再生内容の変更時において、映像乱れや音切れの発生を低減することができる。しかし、ＣＰＵ１１Ａは、Ｈ／Ｗ＿ＩＰ１２Ａのリスト未使用期間（リストRead終了）まで待つ必要がある。この結果、アプリケーションのＣＰＵ使用期間が減る。また、リスト更新毎にＣＰＵ１１Ａはリスト更新要求をＨ／Ｗ＿ＩＰ１２Ａへ発行する必要がある。このため、リストが更新されていても、高負荷時にＣＰＵ１１Ａの更新要求発行が遅れると、Ｈ／Ｗ＿ＩＰ１２Ａのリスト更新タイミングは遅れる。この結果、例えば、高負荷時に映像乱れや音切れが発生することがある。
【実施例２】
【００２３】
図１１は実施例２に係るシステムの構成を示すブロック図である。システム１ＢはＳｏＣ１０ＢとＳＤＲＡＭ等のメモリ（ＭＥＭＯＲＹ）２０Ｂとを備える。ＳｏＣ１０Ｂは１つの半導体基板上に形成される半導体装置である。メモリ２０Ｂは１つの半導体基板上に形成される半導体装置である。メモリ２０Ｂは複数の半導体チップで構成してもよい。システム１ＢはＳｏＣ１０Ｂとメモリ２０Ｂとを１つのパッケージに封止して構成されるＳｉＰであってもよいし、別々のパッケージに封止して１つの基板上に実装したものであってもよい。システム１Ｂは半導体装置ともいう。メモリ２０Ｂは比較例２と同様にＳｏＣ１０Ｂ内に内蔵されるＳＲＡＭ等のメモリであってもよい。
【００２４】
ＳｏＣ１０ＢはＣＰＵ１１ＢとＨ／Ｗ＿ＩＰ１２Ｂとメモリコントローラ（ＭＥＭＣ）１６Ｂとバス１５Ｂとを備える。Ｈ／Ｗ＿ＩＰ１２ＢはＨ／Ｗ＿ＩＰ１２Ａと同様に所定期間（例えば、１６．６ｍｓ）内に所定の処理（例えば、映像処理や音声処理）を行い、所定の処理は周期的に連続して実行される。Ｈ／Ｗ＿ＩＰ１２ＢはＣＰＵインタフェース（ＣＰＵ＿Ｉ／Ｆ）１２１Ｂと制御回路１２２Ｂと処理回路１２３Ｂとメモリインタフェース（ＭＥＭＯＲＹ＿Ｉ／Ｆ）１２４Ｂとを備える。破線矢印Ｗ１Ｂに示すように、ＣＰＵ１１Ｂはバス１５Ｂおよびメモリコントローラ１６Ｂを介してメモリ２０Ｂにレジスタ設定リストを書き込む。破線矢印Ｗ２Ｂに示すように、ＣＰＵ１１Ｂはバス１５Ｂおよびメモリコントローラ１６Ｂを介してＨ／Ｗ＿ＩＰ１２Ｂの制御回路１２Ｂに比較例２（図６）と同様なメモリ１４Ｂ内のレジスタ設定リストのアクセス情報を書き込む。破線矢印ＲＢに示すように、Ｈ／Ｗ＿ＩＰ１２Ｂはメモリインタフェース１２４Ｂ、バス１５Ｂおよびメモリコントローラ１６Ｂを介してメモリ２０Ｂからレジスタ設定リストを制御回路１２２Ｂ内のバッファ１２２１Ｂ、１２２２Ｂに読む。これがＨ／Ｗ＿ＩＰ制御１１２Ｂである。なお、バッファ１２２１Ｂ、１２２２Ｂは制御回路１２２Ｂ内になくてもよく、例えばＣＰＵインタフェース１２１Ｂと制御回路１２２Ｂの間にあってもよい。制御回路１２２Ｂはバッファ１２２１Ｂ、１２２２Ｂ内のレジスタ設定リストに従ってＨ／Ｗ＿ＩＰ１２Ｂを制御する。処理回路１２３Ｂはバッファ１２２１Ｂ、１２２２Ｂ内のレジスタ設定リストに従って、メモリインタフェース１２４Ｂがバス１５Ｂおよびメモリコントローラ１６Ｂを介して読み込んだメモリ１４Ｂ内のデータ（例えば、映像データ、音声データ）を演算処理する。メモリインタフェース１２４Ｂはバス１５Ｂおよびメモリコントローラ１６Ｂを介してメモリ１４Ｂにその演算したデータを書き込む。制御回路１２２Ｂはメモリ２０Ｂ内のレジスタ設定リストへのアクセス開始（Read開始）およびアクセス終了（Read終了）を知らせる情報を生成し、ＣＰＵインタフェース１２１Ｂはそれらの情報の全部または一部に基づいた信号、例えばアクセス終了信号（ＡＣ）を生成してＣＰＵ１１Ｂに伝えることが可能とされる。アクセス終了信号等の専用信号ではなく、割り込み要求信号であってもよい。レジスタ設定リストの内容は処理に依存するが、画像処理における画像拡大の場合のレジスタ設定リストは、比較例２と同様である。Ｈ／Ｗ＿ＩＰ１２Ｂは複数種類のレジスタ設定リストを使用可能とするため、例えば、リストＡを格納するバッファ１２２１ＢおよびリストＢを格納するバッファ１２２２Ｂを備える。
【００２５】
図１２は実施例２に係るＳｏＣのレジスタ設定リストを変更する制御タイミングを示す図である。Ｈ／Ｗ＿ＩＰ１２Ｂは、１フレームの前半にレジスタ設定リストをメモリ２０Ｂから読み込み（リストＡRead中）、１フレームの後半にそれに対応する処理を実行する（リストＡ処理中）。ＣＰＵ１１Ｂは、アクセス終了信号（ＡＣ）を受けた後、レジスタ設定リストを変更する。破線１００Ｂの部分は比較例２に対し追加したＣＰＵ機能（Ｓ／Ｗ＿ＩＰ機能）である。破線２００Ｂの部分は比較例２に対し追加したＨ／Ｗ＿ＩＰ機能であり実施例１の破線２００Ａと同様である。破線３００Ｂの部分は実施例１に対し追加したバッファ管理機能である。破線１００Ｂの部分は実施例１で追加したリスト変更に加えて、バッファ管理機能（空きリスト割り当て機能）への変更要求発行が追加される。
【００２６】
図１３は実施例２に係るＳｏＣのバッファ管理機能を説明するための図である。空きリスト割り当て機能（バッファ管理機能）とは、Ｈ／Ｗ＿ＩＰ１２Ｂ内のRead開始またはRead終了を知らせる情報、ＣＰＵ１１Ｂからの変更要求に基づき、リストを管理する機能である。例えば、リストＡのRead終了が通知されると、リストＢのRead終了が通知されるまで、リストＢを使用中と判断する。Ｈ／Ｗ＿ＩＰ１２Ｂは、リストＡのRead終了の通知からリストＢのRead終了の通知までの間に、図１１の破線矢印Ｗ３Ｂに示すように、ＣＰＵ１１Ｂから変更要求があった場合、ＣＰＵ１１Ｂがメモリ２０Ｂ内のレジスタ設定リストを変更した内容をバッファ１２２１Ｂ内のリストＡに書込み、リストＢのRead終了の通知後、制御部１２２Ｂの制御に用いるレジスタ設定リストをリストＡからリストＢに切り替える。また、リストＢのRead終了が通知されると、リストＡのRead終了が通知されるまで、リストＡを使用中と判断する。Ｈ／Ｗ＿ＩＰ１２Ｂは、リストＢのRead終了の通知からリストＡのRead終了の通知までの間に、ＣＰＵ１１Ｂから変更要求があった場合、ＣＰＵ１１Ｂがメモリ２０Ｂ内のレジスタ設定リストを変更した内容をバッファ１２２１Ｂ内のリストＢに書込み、リストＡのRead終了の通知後、制御部１２２Ｂの制御に用いるレジスタ設定リストをリストＢからリストＡに切り替える。
【００２７】
複数のバッファを設けて、リスト数を１面から複数面（リストＡ、Ｂ）に拡張することにより、Ｈ／Ｗ＿ＩＰ１２Ｂがあるリストを参照中に、ＣＰＵ１１Ｂが別のリストを変更することが可能となる。これにより、Ｈ／Ｗ＿ＩＰ１２Ｂの処理を継続したまま、Ｈ／Ｗ＿ＩＰ１２Ｂの処理内容を変更可能となる。これにより、例えば、映像や音声の再生内容の変更時において、映像乱れや音切れの発生を抑制することができる。さらに、空きリスト割り当て機能により、ＣＰＵ１１Ｂは、Ｈ／Ｗ＿ＩＰ１２Ｂのリスト未使用期間を待つ必要がなくなる。この結果、実施例１のＣＰＵ１１Ａによるアプリケーション使用期間減少を改善できる。しかし、リスト変更毎に、リス変更要求をＨ／Ｗ＿ＩＰ１２Ｂへ発行しなければならない点は改善しない。
【実施例３】
【００２８】
図１４は実施例３に係るシステムの構成を示すブロック図である。システム１ＣはＳｏＣ１０ＣとＳＤＲＡＭ等のメモリ（ＭＥＭＯＲＹ）２０Ｃとを備える。ＳｏＣ１０Ｃは１つの半導体基板上に形成される半導体装置である。メモリ２０Ｃは１つの半導体基板上に形成される半導体装置である。メモリ２０Ｃは複数の半導体チップで構成してもよい。システム１ＣはＳｏＣ１０Ｃとメモリ２０Ｃとを１つのパッケージに封止して構成されるＳｉＰであってもよいし、別々のパッケージに封止して１つの基板上に実装したものであってもよい。システム１Ｃは半導体装置ともいう。メモリ２０Ｃは比較例２と同様にＳｏＣ１０Ｃ内に内蔵されるＳＲＡＭ等のメモリであってもよい。
【００２９】
ＳｏＣ１０ＣはＣＰＵ１１ＣとＨ／Ｗ＿ＩＰ１２Ｃとメモリコントローラ（ＭＥＭＣ）１６Ｃとバス１５Ｃとを備える。Ｈ／Ｗ＿ＩＰ１２ＣはＨ／Ｗ＿ＩＰ１２Ａと同様に所定期間（例えば、１６．６ｍｓ）内に所定の処理（例えば、映像処理や音声処理）を行い、所定の処理は周期的に連続して実行される。Ｈ／Ｗ＿ＩＰ１２ＣはＣＰＵインタフェース（ＣＰＵ＿Ｉ／Ｆ）１２１Ｃと制御回路１２２Ｃと処理回路１２３Ｃとメモリインタフェース（ＭＥＭＯＲＹ＿Ｉ／Ｆ）１２４Ｃとを備える。破線矢印Ｗ１Ｃに示すように、ＣＰＵ１１Ｃはバス１５Ｃおよびメモリコントローラ１６Ｃを介してメモリ２０Ｃにレジスタ設定リストを書き込む。破線矢印Ｗ２Ｃに示すように、ＣＰＵ１１Ｃはバス１５Ｃを介してＨ／Ｗ＿ＩＰ１２Ｃの制御回路１２２Ｃに比較例２（図６）と同様なメモリ２０Ｃ内のレジスタ設定リストのアクセス情報を書き込んで初期設定する。破線矢印ＲＣに示すように、Ｈ／Ｗ＿ＩＰ１２Ｃはメモリインタフェース１２４Ｃ、バス１５Ｃおよびメモリコントローラ１６Ｃを介してメモリ２０Ｃからレジスタ設定リストを制御回路１２２Ｃ内のバッファ１２２１Ｃ、１２２２Ｃに読む。これがＨ／Ｗ＿ＩＰ制御１１２Ｃである。なお、バッファ１２２１Ｃ、１２２２Ｃは制御回路１２２Ｃ内になくてもよく、例えばＣＰＵインタフェース１２１Ｃと制御回路１２２Ｃの間にあってもよい。制御回路１２２Ｃはバッファ１２２１Ｃ、１２２２Ｃ内のレジスタ設定リストに従ってＨ／Ｗ＿ＩＰ１２Ｃを制御する。処理回路１２３Ｃはバッファ１２２１Ｃ、１２２２Ｃ内のレジスタ設定リストに従って、メモリインタフェース１２４Ｃがバス１５Ｃおよびメモリコントローラ１６Ｃを介して読み込んだメモリ１４Ｃ内のデータ（例えば、映像データ、音声データ）を演算処理する。メモリインタフェース１２４Ｃはバス１５Ｃおよびメモリコントローラ１６Ｃを介してメモリ１４Ｃにその演算したデータを書き込む。制御回路１２２Ｃはメモリ２０Ｃ内のレジスタ設定リストへのアクセス開始（Read開始）およびアクセス終了（Read終了）を知らせる情報を生成するが、実施例１、２と異なりＣＰＵインタフェース１２１Ｃはアクセス終了信号を生成せずＣＰＵ１１Ｃに伝えることはない。Ｈ／Ｗ＿ＩＰ１２Ｃは複数種類のレジスタ設定リストを使用可能とするため、例えば、リストＡを格納するバッファ１２２１ＣおよびリストＢを格納するバッファ１２２２Ｃを備える。レジスタ設定リストの内容は処理に依存するが、画像処理における画像拡大の場合のレジスタ設定リストは、比較例２と同様であるが、さらに、次のリストを実行するため、
リスト処理完了後の継続有無
継続方法（同じリストリピート、または別リスト使用）
別リストの場合、別リストの格納場所のアドレス
等を追加している。
【００３０】
図１５は実施例３に係るＳｏＣのレジスタ設定リストを変更する制御タイミングを示す図である。Ｈ／Ｗ＿ＩＰ１２Ｃは、１フレームの前半にレジスタ設定リストをメモリ２０Ｃから読み込み（リストＡRead中）、１フレームの後半にそれに対応する処理を実行する（リストＡ処理中）。破線１００Ｃの部分は比較例２に対し追加したＣＰＵ機能（Ｓ／Ｗ＿ＩＰ機能）である。破線２００Ｃの部分は比較例２に対し追加したＨ／Ｗ＿ＩＰ機能であり実施例１の破線２００Ａと同様である。破線３００Ｃの部分は実施例１に対し追加したバッファ管理機能である。破線１００Ｃの部分は実施例１で追加したリスト変更に加えて、バッファ管理機能（空きリスト割り当て機能）への変更要求発行が追加されている。ＣＰＵ１１Ｃは、Ｈ／Ｗ＿ＩＰ１２Ｃとは非同期に、レジスタ設定リストを変更する。
【００３１】
図１６は実施例３に係るＳｏＣのバッファ管理機能を説明するための図である。実施例３に係る空きリスト割り当て機能（バッファ管理機能）とは、Ｈ／Ｗ＿ＩＰ１２Ｃ内のRead開始またはRead終了を知らせる情報、レジスタ設定リストのアクセス情報に基づき、リストを管理する機能である。例えば、リストＡのRead終了が通知されると、リストＢのRead終了が通知されるまで、リストＢを使用中と判断する。Ｈ／Ｗ＿ＩＰ１２Ｃは、リストＡのRead終了の通知からリストＢのRead終了の通知までの間に、レジスタ設定リストからアクセス要求があった場合、ＣＰＵ１１Ｃがメモリ２０Ｃ内のレジスタ設定リストを変更した内容をバッファ１２２１Ｃ内のリストＡに書込み、リストＢのRead終了の通知後、制御部１２２Ｃの制御に用いるレジスタ設定リストをリストＡからリストＢに切り替える。また、リストＢのRead終了が通知されると、リストＡのRead終了が通知されるまで、リストＡを使用中と判断する。Ｈ／Ｗ＿ＩＰ１２Ｃは、リストＢのRead終了の通知からリストＡのRead終了の通知までの間に、レジスタ設定リストからアクセス要求があった場合、ＣＰＵ１１Ｃがメモリ２０Ｃ内のレジスタ設定リストを変更した内容をバッファ１２２２Ｃ内のリストＢに書込み、リストＡのRead終了の通知後、制御部１２２Ｃの制御に用いるレジスタ設定リストをリストＢからリストＡに切り替える。
【００３２】
実施例２では、ＣＰＵ１１Ｂが、Ｈ／Ｗ＿ＩＰ１２Ｂに対してリスト更新要求を発行する必要があり、Ｈ／Ｗ＿ＩＰ１２Ｂのバッファ管理機能が処理中は、ＣＰＵ１２ＢはＨ／Ｗ＿ＩＰ１２Ｂの処理を待つ必要がある。しかし、実施例３は、Ｈ／Ｗ＿ＩＰ１２ＣがＣＰＵ１１Ｃからの要求でなく、リスト記載内容でリストを更新することにより、リスト更新タイミングは、ＣＰＵ１１ＣとＨ／Ｗ＿ＩＰ１２Ｃで完全に非同期となる。これにより、ＣＰＵ１１Ｃは待つ必要なく、Ｈ／Ｗ＿ＩＰ１２Ｃも遅れなくリストを更新できる。また、Ｈ／Ｗ＿ＩＰ１２Ｃに追加した空きリスト割り当て機能により、ＣＰＵ１１Ｃは、Ｈ／Ｗ＿ＩＰ１２Ｃのリスト未使用期間を待つ必要がなくなる。これにより、実施例２同様に、アプリケーションの使用時間削減は改善する。さらに、ＣＰＵ１１Ｃは、リスト更新毎に、リスト更新要求をＨ／Ｗ＿ＩＰ１２Ｃに発行する必要がなくなる。これにより、リスト要求がＨ／Ｗ＿ＩＰで受け付けされるまで、ＣＰＵは、要求処理完了を待たなければならない点も改善することができる。
【００３３】
以上、本発明者らによってなされた発明を実施例に基づき具体的に説明したが、本発明は、実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
【符号の説明】
【００３４】
１Ａ・・・システム
１０Ａ・・・ＳｏＣ
１１Ａ・・・ＣＰＵ
１２Ａ・・・Ｈ／Ｗ＿ＩＰ
１２１Ａ・・・ＣＰＵインタフェース
１２２Ａ・・・制御部
１２２１Ａ・・・バッファ
１２３Ａ・・・処理部
１２４Ａ・・・メモリインタフェース
１５Ａ・・・バス
１６Ａ・・・メモリコントローラ
２０Ａ・・・メモリ
【図１】
2017037505.tif 000003
【図２】
2017037505.tif 000004
【図３】
2017037505.tif 000005
【図４】
2017037505.tif 000006
【図５】
2017037505.tif 000007
【図６】
2017037505.tif 000008
【図７】
2017037505.tif 000009
【図８】
2017037505.tif 000010
【図９】
2017037505.tif 000011
【図１０】
2017037505.tif 000012
【図１１】
2017037505.tif 000013
【図１２】
2017037505.tif 000014
【図１３】
2017037505.tif 000015
【図１４】
2017037505.tif 000016
【図１５】
2017037505.tif 000017
【図１６】
2017037505.tif 000018