(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024136506
(43)【公開日】2024-10-04
(54)【発明の名称】半導体装置およびその制御方法
(51)【国際特許分類】
G06F 13/30 20060101AFI20240927BHJP
【FI】
G06F13/30
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023047642
(22)【出願日】2023-03-24
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】大庭 徹也
(57)【要約】
【課題】性能の低下を抑制することが可能な半導体装置を提供する。
【解決手段】半導体装置LSIは、プロセッサCPUと、DMAコントローラを備えたDRプロセッサDRPと、システムメモリS-MEMと、プロセッサCPUとDRプロセッサDRPとシステムメモリS-MEMとが接続された内部バスInt-BUSと、プロセッサCPUとDRプロセッサDRPとに接続され、プロセッサCPUによるシステムメモリS-MEMへのアクセスとDMAコントローラによるシステムメモリS-MEMへのアクセスとを、所定の優先順位に従って調停するバスアービタBUS-ABと、を備える。ここで、DRプロセッサDRPは、バスアービタBUS-ABによる調停によって、DMAコントローラによるシステムメモリS-MEMへのアクセスが認められなかった頻度を求める頻度回路FPCを備えている。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサと、
DMAコントローラを備えた動的に再構成可能な動的再構成プロセッサと、
メモリと、
前記プロセッサと、前記動的再構成プロセッサと、前記メモリとが接続された内部バスと、
前記プロセッサと前記動的再構成プロセッサとに接続され、前記プロセッサによる前記メモリへのアクセスと前記動的再構成プロセッサの前記DMAコントローラによる前記メモリへのアクセスとを、所定の優先順位に従って調停するバスアービタと、
を備え、
前記動的再構成プロセッサは、前記バスアービタによる調停によって、前記DMAコントローラによる前記メモリへのアクセスが認められなかった頻度を求める頻度回路を備える、
半導体装置。
【請求項2】
請求項1に記載の半導体装置において、
前記動的再構成プロセッサは、複数のプログラム可能回路と、前記複数のプログラム可能回路のそれぞれの機能および前記複数のプログラム可能回路間の接続を制御するステート情報を格納するステートメモリとを備え、前記動的再構成プロセッサは、前記ステート情報に従った回路を実現し、
前記ステートメモリには、互いに同等の機能を実現させる複数のステート情報であって、前記メモリへのアクセス量が互いに異なる複数のステート情報が格納され、
前記頻度回路によって求められた頻度に従って、前記複数のステート情報から前記頻度に応じたステート情報が選択され、前記動的再構成プロセッサは、選択されたステート情報に従った回路を次に実現する、
半導体装置。
【請求項3】
請求項2に記載の半導体装置において、
前記半導体装置は、前記内部バスおよび前記バスアービタに接続されたバスマスタとなることが可能な画像処理回路を、さらに備え、
前記バスアービタは、前記プロセッサによる前記メモリへのアクセスと、前記DMAコントローラによる前記メモリへのアクセスと、前記バスマスタとなることが可能な画像処理回路による前記メモリへのアクセスとを、所定の優先順位に従って調停する、
半導体装置。
【請求項4】
請求項1に記載の半導体装置において、
前記動的再構成プロセッサは、複数のプログラム可能回路と、前記複数のプログラム可能回路のそれぞれの機能および前記複数のプログラム可能回路間の接続を制御する第1および第2のステート情報を格納するステートメモリとを備え、
前記動的再構成プロセッサは、前記第1のステート情報に従った回路を実現した後、前記第2のステート情報に従った回路を実現し、
前記第2のステート情報は、互いに同等の機能を実現させる複数のステート情報であって、前記メモリへのアクセス量が互いに異なる複数の回路別ステート情報を備え、
前記頻度回路は、前記動的再構成プロセッサが前記第1のステート情報に従った回路を実現しているとき、前記頻度を求め、求めた頻度に従って、前記複数の回路別ステート情報から前記頻度に応じた回路別ステート情報を選択し、前記動的再構成プロセッサは、選択された回路別ステート情報に従った回路を実現する、
半導体装置。
【請求項5】
請求項4に記載の半導体装置において、
前記複数の回路別ステート情報によって実現される回路間においては、取り扱われるデータの幅が異なる、
半導体装置。
【請求項6】
請求項4に記載の半導体装置において、
前記第1のステート情報は、互いに同等の機能を実現させる複数のステート情報であって、前記メモリへのアクセス量が互いに異なる複数の回路別ステート情報を備え、
前記プロセッサが、前記第1のステート情報における前記複数の回路別ステート情報から所定の回路別ステート情報を選択し、前記動的再構成プロセッサは、選択された回路別ステート情報に従った回路を実現する、
半導体装置。
【請求項7】
請求項6に記載の半導体装置において、
前記半導体装置は、前記内部バスおよび前記バスアービタに接続されたバスマスタとなることが可能な画像処理回路を、さらに備え、
前記バスアービタは、前記プロセッサによる前記メモリへのアクセスと、前記DMAコントローラによる前記メモリへのアクセスと、前記バスマスタとなることが可能な画像処理回路による前記メモリへのアクセスとを、所定の優先順位に従って調停する、
半導体装置。
【請求項8】
プロセッサと、DMAコントローラを備えた動的に再構成可能な動的再構成プロセッサと、システムメモリと、前記プロセッサと前記動的再構成プロセッサと前記システムメモリとが接続されたバスと、前記プロセッサと前記動的再構成プロセッサとに接続されたバスアービタと、を備えた、半導体装置の制御方法であって、
前記動的再構成プロセッサは、複数のプログラム可能回路と、前記複数のプログラム可能回路のそれぞれの機能および前記複数のプログラム可能回路間の接続を制御する第1および第2のステート情報を格納するステートメモリとを備え、
前記第2のステート情報は、互いに同等の機能を実現させる複数のステート情報であって、前記システムメモリへのアクセス量が互いに異なる複数の回路別ステート情報を備え、
前記動的再構成プロセッサは、前記第1のステート情報に従った機能を実現している期間において、前記バスアービタによる調停によって、前記動的再構成プロセッサの前記DMAコントローラによる前記システムメモリへのアクセスが認められなかった頻度を求め、
前記動的再構成プロセッサは、前記求められた頻度に従って、前記複数の回路別ステート情報から頻度に応じた回路別ステート情報を選択し、選択された回路別ステート情報に従った回路を実現する、
制御方法。
【請求項9】
請求項8に記載の制御方法において、
前記第1のステート情報は、互いに同等の機能を実現させる複数のステート情報であって、前記システムメモリへのアクセス量が互いに異なる複数の回路別ステート情報を備え、
前記頻度を求める前に、前記プロセッサが、前記第1のステート情報における前記複数の回路別ステート情報から所定の回路別ステート情報を選択し、前記動的再構成プロセッサが、前記選択された回路別ステート情報に従った回路を実現する、
制御方法。
【請求項10】
請求項8に記載の制御方法において、
前記複数の回路別ステート情報によって実現される回路間においては、取り扱われるデータの幅が異なる、
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置およびその制御方法に関し、例えば動的に再構成可能な動的再構成プロセッサ(Dynamically Reconfigurable Processor、以下、DRプロセッサとも称する)を備えた半導体装置およびその制御方法に関する。
【背景技術】
【0002】
DRプロセッサを備えた半導体装置は、例えば特許文献1に記載されている。特許文献1には、DRプロセッサとアクセラレータとを用いて、効率の良い演算処理を実現する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明者は、中央プロセッサ(以下、単にプロセッサと称する)、DRプロセッサおよび画像処理回路を用いて、画像処理とAI(Artifical Intelligence)推論とを並列的に実行することが可能な半導体装置を実現することを検討した。このような半導体装置の用途としては、例えば車載用の半導体装置がある。このような半導体装置を用いることで、車載カメラで撮像している画像をディスプレイに表示しながら、撮像している画像に人物が存在するか否かをAI推論で判断することが可能となる。
【0005】
このような半導体装置では、プロセッサ、DRプロセッサおよび画像処理回路が、例えば共通バスに接続された構成となる。AI処理および画像処理を実行する際には、共通バスに接続されたシステムメモリに対して、プロセッサ、DRプロセッサおよび画像処理回路がアクセス(メモリアクセス)を行うバスマスタとして機能することになる。
【0006】
AI処理および画像処理では、大量のメモリアクセスが発生するため、これらの処理を高速に行うためには、共通バスの帯域幅を十分に高帯域化することが必要となる。例えば、画像処理回路によって、車載カメラから画像を入力し、1秒間に30フレーム(30fps)の画像をディスプレイに表示しつつ、DRプロセッサによって、AI推論を行う場合、共通バスの帯域幅が不足していると、画像処理回路、DRプロセッサあるいはプロセッサにメモリアクセスの待ちが発生することになる。メモリアクセスの待ちが発生すると、半導体装置の性能が低下し、画像を、例えば30fpsでディスプレイに表示し続けることが困難になるという課題を、本発明者は見出した。
【0007】
特許文献1では、共通バスの帯域幅は認識されておらず、前記したような課題も、特許文献1には記載されていない。
【課題を解決するための手段】
【0008】
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】
すなわち、半導体装置は、プロセッサと、DMAコントローラを備えたDRプロセッサと、メモリと、プロセッサとDRプロセッサとメモリとが接続されたバスと、プロセッサとDRプロセッサとに接続され、プロセッサによるメモリへのアクセスとDMAコントローラによるメモリへのアクセスとを、所定の優先順位に従って調停するバスアービタと、を備える。ここで、DRプロセッサは、バスアービタによる調停によって、DMAコントローラによるメモリへのアクセスが認められなかった頻度を求める頻度回路を備えている。
【0010】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【発明の効果】
【0011】
一実施の形態によれば、性能の低下を抑制することが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施の形態1に係る半導体装置の構成を示すブロック図である。
【
図2】(A)および(B)は、実施の形態1に係るDRプロセッサの構成を示すブロック図である。
【
図3】実施の形態1に係るDRプロセッサの動作を説明するための図である。
【
図4】実施の形態1に係る3個のステート情報を説明するための図である。
【
図5】実施の形態1に係る半導体装置の動作例を示す図である。
【
図6】実施の形態1に係る半導体装置のメモリアクセスを示す図である。
【
図7】(A)および(B)は、比較例を説明するための図である。
【
図8】実施の形態1に係るステート情報の選択動作を示すフローチャートである。
【
図9】実施の形態1に係る半導体装置のメモリアクセスを示す図である。
【
図10】実施の形態2に係る半導体装置の動作例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の各実施の形態について、図面を参照しつつ説明する。なお、開示はあくまでも一例にすぎず、当業者において、発明の主旨を保っての適宜変更について容易に想到し得るものについては、当然に本発明の範囲に含有されるものである。
【0014】
また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。
【0015】
(実施の形態1)
<半導体装置の構成>
図1は、実施の形態1に係る半導体装置の構成を示すブロック図である。
図1において、破線で示した符号LSIは、半導体装置を示している。特に制限されないが、実施の形態1に係る半導体装置LSIは、周知の半導体製造技術によって、1個の半導体チップに形成されている。半導体装置LSIは、種々の回路ブロックを備えているが、
図1には説明に必要な回路ブロックのみが示されている。
【0016】
半導体装置LSIは、プロセッサCPUと、DRプロセッサDRPと、バスアービタBUS-ABと、画像処理回路IP1、IP2と、内部バス(共通バス)Int-BUSと、システムメモリS-MEMとを備えている。
図1に示すように、プロセッサCPUと、DRプロセッサDRPと、画像処理回路IP1、IP2と、システムメモリS-MEMとは、内部バスInt-BUSに共通に接続されている。プロセッサCPU、DRプロセッサDRPおよび画像処理回路IP1、IP2は、バスマスタとして機能し、内部バスInt-BUSを介してシステムメモリS-MEMにアクセス(メモリアクセス)し、システムメモリS-MEMに対してデータの書き込みまたはデータの読み出しを行う。
【0017】
例えば、プロセッサCPUは、図示しないプログラムに従って動作する。この動作において、プロセッサCPUは、内部バスInt-BUSを介してシステムメモリS-MEMにアクセスし、システムメモリS-MEMに対してデータの書き込みまたは読み出しを行う。
【0018】
画像処理回路IP1、IP2も、画像の入力、出力等の画像処理を行う際に、内部バスInt-BUSを介してシステムメモリS-MEMにアクセスし、データの書き込みまたは読み出しを行う。特に制限されないが、実施の形態1においては、画像処理回路IP1およびIP2は、IP(Intellectual Property)コアによって構成されており、画像処理回路IP1は、画像入力に係る処理を行うIPコアであり、画像処理回路IP2は、画像出力に係る処理を行うIPコアである。
【0019】
DRプロセッサDRPについては、後で図面を用いて説明するので、ここでは詳しい説明を省略するが、DRプロセッサDRPも処理を実行する際に、内部バスInt-BUSを介してシステムメモリS-MEMにアクセスし、データの書き込みまたは読み出しを行う。
【0020】
前記したように、プロセッサCPU、DRプロセッサDRPおよび画像処理回路IP1、IP2のそれぞれが、バスマスタとして機能するため、これらが、システムメモリS-MEMにアクセスする際に、調停を行うバスアービタBUS-ABが、半導体装置LSIに設けられている。バスアービタBUS-ABには、プロセッサCPU、DRプロセッサDRPおよび画像処理回路IP1、IP2のそれぞれから、バス要求信号RQ_CP、RQ_DR、RQ_IP1、RQ_IP2が供給され、バスアービタBUS-ABは、予め定められた優先順位に従って、バス許可信号AC_CP、AC_DR、AC_IP1、AC_IP2をプロセッサCPU、DRプロセッサDRPおよび画像処理回路IP1、IP2へ出力する。
【0021】
すなわち、プロセッサCPUは、システムメモリS-MEMにアクセスする際に、バス要求信号RQ_CPをバスアービタBUS-ABに出力する。このバス要求信号RQ_CPに応答して、バスアービタBUS-ABがバス許可信号AC_CPを出力する。出力されたバス許可信号AC_CPが、アクセス許可を示している場合、プロセッサCPUは、システムメモリS-MEMに対してアクセスを行う。出力されたバス許可信号AC_CPが、アクセス拒否(アクセスが許可されない)を示していた場合、プロセッサCPUは、バス許可信号AC_CPがアクセス許可を示すまで、システムメモリS-MEMに対するアクセスを待つことになる。
【0022】
DRプロセッサDRPも、プロセッサCPUと同様に、システムメモリS-MEMにアクセスする際に、バス要求信号RQ_DRをバスアービタBUS-ABに出力する。このバス要求信号RQ_DRに応答して、バスアービタBUS-ABがバス許可信号AC_DRを出力する。出力されたバス許可信号AC_DRが、アクセス許可を示している場合、DRプロセッサDRPは、システムメモリS-MEMに対してアクセスを行う。これに対して、出力されたバス許可信号AC_DRが、アクセス拒否(アクセスが許可されない)を示していた場合、DRプロセッサDRPは、バス許可信号AC_DRがアクセス許可を示すまで、システムメモリS-MEMに対するアクセスを待つことになる。
【0023】
画像処理回路IP1、IP2も、プロセッサCPUおよびDRプロセッサDRPと同様に、バス要求信号RQ_IP1、RQ_IP2によって、バスアービタBUS-ABに対してアクセスを要求し、バスアービタBUS-ABからのバス許可信号AC_IP1、AC_IP2によってアクセス許可が示されたときに、アクセスを行う。
【0024】
図1において、DRプロセッサDRP内に示されている符号FPCは、頻度回路を示している。頻度回路FPCは後で説明するので、ここでは説明を省略する。
【0025】
<RDプロセッサの構成>
次に、
図1に示したDRプロセッサDRPの構成を、図面を用いて説明する。
図2は、実施の形態1に係るDRプロセッサの構成を示すブロック図である。ここで、
図2(A)は、DRプロセッサの構成を示すブロック図であり、
図2(B)は、DRプロセッサに用いられるプログラム可能回路の構成を示すブロック図である。
【0026】
図2(A)に示されているように、DRプロセッサDRPは、アレイ状に配置された複数のプログラム可能回路PEによって構成されたプログラムアレイPE-ARRYと、ステート情報を記憶するステートメモリST-MEMと、DMA(Direct Memory Access)コントローラDMACと、制御回路CTLとを備えている。なお、
図2(A)では、図面が複雑になるのを避けるために、プログラムアレイPE-ARRYに配置された1個のプログラム可能回路についてのみ符号PEが付されている。
【0027】
プログラムアレイPE-ARRYに配置された複数のプログラム可能回路PE間は、図示しないスイッチを介して接続されている。
【0028】
複数のプログラム可能回路PEは、互いに同じ構成を備えている。すなわち、それぞれのプログラム可能回路PEは、
図2(B)に示されているように、複数の演算器ALUとレジスタREGとを備えており、演算器ALU間および演算器ALUとレジスタREG間は、図示しないスイッチによって接続されている。
【0029】
プログラムアレイPE-ARRYに配置されたプログラム可能回路PE間のスイッチと、各プログラム可能回路PEに配置されているスイッチ(演算器ALU間と演算器ALUとレジスタ間のスイッチ)は、後で説明するステート情報によって制御される。また、演算器ALUの機能も、ステート情報によって規定される。
【0030】
ステートメモリST-MEMには、複数のステート情報が格納される。この複数のステート情報から所定の順でステート情報が、制御回路CTLによって選択される。選択されたステート情報によって、プログラム可能回路PE間に接続されたスイッチと、プログラム可能回路PE内のスイッチとが制御される。また、選択されたステート情報によって、プログラム可能回路PE内に配置されている演算器ALUの機能が規定される。
【0031】
選択されたステート情報は、プログラムアレイPE-ARRYによって実現される回路のある期間における状態を表している。すなわち、選択されたステート情報は、時間に伴って変化する回路の状態(状態遷移)における一状態を表している。制御回路CTLがステートメモリST-MEMに格納されている複数のステート情報を、順次選択することにより、プログラムアレイPE-ARRYに配置された複数のプログラム可能回路PEによって、状態遷移に従った回路が構成されることになる。
【0032】
DMAコントローラDMACは、内部バスInt-BUSを介してプログラムアレイPE-ARRYとシステムメモリS-MEMとの間でデータの転送を行う。データの転送を行うために、DMAコントローラDMACが、
図1で述べたバス要求信号RQ_DRをバスアービタBUS-AB(
図1)に出力し、バスアービタBUS-ABからバス許可信号AC_DRを入力する。
【0033】
例えば、プログラムアレイPE-ARRYにおいて所定の演算処理を行う回路を実現する場合、所定の演算処理を行うためのデータが、DMAコントローラDMACによって、システムメモリS-MEMからプログラムアレイPE-ARRYに転送される。また、所定の演算処理が実行されているときに、プログラムアレイPE-ARRYで発生する中間データは、DMAコントローラDMACによって、システムメモリS-MEMとプログラムアレイPE-ARRY間で転送される。さらに、所定の演算処理が終了した際には、プログラムアレイPE-ARRYで求められた演算処理結果のデータが、DMAコントローラDMACによって、プログラムアレイPE-ARRYからシステムメモリS-MEMへ転送される。このようなデータの転送の際には、
図1で述べたように、バスアービタBUS-ABによる調停が行われる。そのため、バスアービタBUS-ABが、DRプロセッサDRP、言い換えならば、DMAコントローラDMACに対して、アクセスを許可しているときにのみ、DMACコントローラDMACが、プログラムアレイPE-ARRYとシステムメモリS-MEMとの間で、データ(中間データを含む)の転送を行う。
【0034】
特に制限されないが、ステートメモリST-MEMに格納されている複数のステート情報は、予めシステムメモリS-MEMに格納され、プロセッサCPU(
図1)が、システムメモリS-MEMから複数のステート情報を読み出して、ステートメモリST-MEMに格納する。勿論、プロセッサCPUの代わりに、DMACコントローラDMACが予めシステムメモリS-MEMに格納されている複数のステート情報を、ステートメモリST-MEMに転送して、ステートメモリST-MEMに格納するようにしてもよい。
【0035】
なお、
図2(A)には、
図1で示した頻度回路FPCは示されていない。実施の形態1では、頻度回路FPCは、選択されたステート情報によって、プログラムアレイPE-ARRYによって実現される。
【0036】
<DRプロセッサの動作>
次に、図面を用いてDRプロセッサDRPの動作を説明する。
図3は、実施の形態1に係るDRプロセッサの動作を説明するための図である。
【0037】
ここでは、互いに異なる構成の回路AAからYYを、DRプロセッサDRPで実現することができるように、システムメモリS-MEMに回路情報AA_APからYY_APが格納されている例が示されている。回路情報AA_APは、時間の経過に伴って遷移する機能Aから機能Zを実現するの複数のステート情報によって構成されている。図示されていないが、回路情報BB_APからYY_APのそれぞれについても同様であるので、回路情報AA_APを例にして説明する。
【0038】
実施の形態1においては、機能Aを実現する回路が3種類用意されている。すなわち、3種類の互いに異なる回路を実現する3個のステート情報A_L、A_M、A_Sが、1つの機能Aを実現するステート情報として用意されている。機能Bから機能Zについても、機能Aと同様に、それぞれの機能を実現するステート情報として、3個のステート情報B_L、B_M、B_SからZ_L、Z_M、Z_Sが用意されている。
【0039】
DRプロセッサDRPによって、所望の回路を実現する場合、プロセッサCPUが、システムメモリS-MEMに格納されている回路情報AA_APからYY_APの中から、所望の回路に対応する回路情報を選択し、DRプロセッサDRPのステートメモリST-MEMに転送(リロード)する。
図3では、所望の回路に対応する回路情報として、回路情報AA_APをリロードした場合が示されている。
【0040】
リロードによって、DRプロセッサDRPのステートメモリST-MEMに格納された回路情報AA_APを構成するステート情報A_L、A_M、A_SからZ_L、Z_M、Z_Sは、DRプロセッサDRPの制御回路CTLおよび頻度回路FPC(
図1)によって選択される。すなわち、機能Aから機能Zの順に、ステート情報A_L、A_M、A_SからZ_L、Z_M、Z_Sが選択され、さらにそれぞれ3個のステート情報(例えば、ステート情報A_L、A_M、A_S)から1個のステート情報が選択される。
【0041】
すなわち、先ず、機能Aに対応するステート情報A_L、A_M、A_Sが選択され、選ばれた3個のステート情報から、さらに1個のステート情報(例えば、A_L)が選択される。この選択されたステート情報A_Lに従って、プログラムアレイPE-ARRYに配置されている複数のプログラム可能回路PE間のスイッチの状態と、各プログラム可能回路PE内のスイッチの状態とが設定される。また、各プログラム可能回路PE内の演算器ALU等の機能も、ステート情報A_Lに従って規定される。これにより、ステート情報A_Lに従った回路(機能Aを実現する回路)が、プログラムアレイPE-ARRYによって実現される。次に機能Bに対応する3個のステート情報B_L、B_M、B_Sが選択され、さらに選択されたステート情報から1個のステート情報(例えば、B_L)が選択される。ステート情報B_Lが選択されると、ステート情報A_Lの場合と同様にして、ステート情報B_Lに従った回路(機能Bを実現する回路)が、プログラムアレイPE-ARRYによって実現される。以降、同様にして、順次、機能CからZに対応する1個のステート情報か選択されることで、機能CからZを実現する回路が、順次、プログラムアレイPE-ARRYによって実現される。これにより、時間の経過に伴って、その構成が、機能Aから機能Zに遷移するような回路AAが、プログラムアレイPE-ARRYによって実現されることになる。
【0042】
以下、機能Aに対応するステート情報A_L、A_M、A_Sのそれぞれを、回路別ステート情報とも称し、回路別ステート情報A_L、A_M、A_Sを纏めて第1のステート情報とも称する。また、機能Bに対応するステート情報B_L、B_M、B_Sのそれぞれを、回路別ステート情報とも称し、回路別ステート情報B_L、B_M、B_Sを纏めて第2のステート情報とも称する。
【0043】
<3個のステート情報>
次に、1つの機能に対応した3個のステート情報について説明する。
図4は、実施の形態1に係る3個のステート情報を説明するための図である。
【0044】
ここでは、機能Aを実現する3個のステート情報A_L、A_M、A_Sを例にして説明するが、残りのステート情報も同様である。
【0045】
3個のステート情報A_L、A_M、A_Sは、互いに同等の機能Aを実現する3種類の回路AC_L、AC_M、AC_Sを表すステート情報である。
【0046】
ステート情報A_Sは、対応する回路AC_Sが動作したときに、DMAコントローラDMAC(
図2)によって発生するアクセス量が最小(小)となるような回路を、プログラムアレイPE-ARRYで実現させるようなステート情報である。一方、ステート情報A_Lは、対応する回路AC_Lが動作したときに、DMAコントローラDMACによって発生するアクセス量が最大(大)となるような回路を、プログラムアレイPE-ARRYで実現させるようなステート情報である。また、ステート情報A_Mは、対応する回路AC_Mが動作したときに、DMAコントローラDMACによって発生するアクセス量が、回路AC_LとAC_Sとの間(中)となるような回路を、プログラムアレイPE-ARRYで実現させるようなステート情報である。
【0047】
回路AC_Lの場合、アクセス量が最大となるため、性能は高くなる。これに対して、回路AC_Sでは、アクセス量が最小となるため、性能は低くなる。また、回路AC_Mの場合には、アクセス量が中間のため、性能も中程度となる。
【0048】
このように、アクセス量を変える構成としては、アクセス量が最大の回路AC_Lでは、処理するデータを倍精度(64ビット/データ)で扱うようにする。これにより、回路AC_Lでは、大量のデータを使用することになるが、性能を高くすることができる。これに対して、アクセス量が最小の回路AC_Sでは、処理するデータを半精度(16ビット/データ)で扱い、圧縮された(AI推論であれば枝刈りされた)少量のデータを用いる回路にする。また、アクセス量が中程度の回路AC_Mでは、処理するデータを単精度(32ビット/データ)で扱うようにする。
【0049】
実施の形態1では、同等の機能を実現する回路として、3種類の回路を用いる例を説明したが、この数に制限されるものではない。例えば、同等の機能を実現する回路としては、2種類あるいは4種類以上であってもよい。勿論、用いる回路の種類の数に対応して、同等の機能を実現するステート情報の数も、例えば2種類あるいは4種類以上とする。
【0050】
<半導体装置の動作例>
次に、
図1に示した半導体装置LSIの動作例を、図面を用いて説明する。
図5は、実施の形態1に係る半導体装置の動作例を示す図である。また、
図6は、実施の形態1に係る半導体装置のメモリアクセスを示す図である。ここでは、車載カメラで撮像しながら、撮像した画像をディスプレイで表示しつつ、撮像された画像(入力画像)の中から人物のような物体を認知するために、AI推論をする場合を例として説明する。
【0051】
AI推論を行うための回路を実現するために、回路情報AA_AP(
図3)が、予めシステムメモリS-MEMからDRプロセッサDRPのステートメモリST-MEMにリロードされているものとする。
【0052】
また、説明を容易にするために、回路情報AA_APは、機能AからCに対応するステート情報A_L、A_M、A_SからC_L、C_M、C_Sによって構成され、性能の最も高い回路AC_L、BC_L、CC_Lに対応するステート情報A_L、B_L、C_Lが選択されているものとして説明する。
【0053】
AI推論を実施するために、半導体装置LSIは、次のステップST1からステップST9の順に処理を実行する。
【0054】
先ず、ステップST1において、プロセッサCPUが、入力画像に対して前処理(CPU処理1)を実行する。ステップST2では、プロセッサCPUによって処理された入力画像データが、プロセッサCPUによって、システムメモリS-MEMに格納される。
【0055】
ステップST3では、DRプロセッサDRPにおいて、ステート情報A_Lが選択され、プログラムアレイPE-ARRYによって回路AC_Lが実現される。ステップST3では、回路AC_LとDMAコントローラDMACとによって、システムメモリS-MEMから、AI推論のための入力画像データが、回路AC_Lに取り込まれる。この取り込みの際に回路AC_Lが生成する中間データは、ステップST4において、DMAコントローラDMACによりシステムメモリS-MEMに格納される。また、ステップST4では、回路AC_Lの処理により得られたデータも、DMAコントローラDMACによって、回路AC_LからシステムメモリS-MEMに転送され、格納される。
【0056】
ステップST5では、DRプロセッサDRPにおいて、ステート情報B_Lが選択され、プログラムアレイPE-ARRYによって回路BC_Lが実現される。ステップST5では、回路BC_LとDMAコントローラDMACとによって、システムメモリS-MEMから、ステップST4で格納されたデータが、回路BC_Lに取り込まれる。回路BC_Lは、取り込んだデータに対してAI推論のための演算等を行う。この演算の際に回路BC_Lが生成する中間データは、ステップST6において、DMAコントローラDMACによりシステムメモリS-MEMに格納される。また、ステップST6では、回路BC_Lによる演算により得られたデータも、DMAコントローラDMACによって、回路BC_LからシステムメモリS-MEMに転送され、格納される。
【0057】
ステップST7では、DRプロセッサDRPにおいて、ステート情報C_Lが選択され、プログラムアレイPE-ARRYによって回路CC_Lが実現される。ステップST7では、回路CC_LとDMAコントローラDMACとによって、システムメモリS-MEMから、ステップST6で格納されたデータが、回路CC_Lに取り込まれる。回路CC_Lは、取り込んだデータに基づいて推論結果を生成する。回路CC_Lが生成した推論結果は、ステップST8において、DMAコントローラDMACによりシステムメモリS-MEMに格納される。
【0058】
その後、ステップST9において、プロセッサCPUが、システムメモリS-MEMから推論結果を取り込んで、後処理(CPU処理2)を行い、後処理の結果が例えばディスプレイに表示される。
【0059】
このように、DMAコントローラDMACとプログラムアレイPE-ARRYとを備えたDRプロセッサDRPによって実現された回路AC_L、BC_LおよびCC_Lは、各ステップにおいて、システムメモリS-MEMとの間でデータの転送を行うアクセスが発生する。また、半導体装置LSI(
図1)が備える画像処理回路IP1、IP2も、画像を処理するために、システムメモリS-MEMとの間でデータ転送を行うためのアクセスを行うことになる。
【0060】
図6は、
図5に示したステップST1からST9が実行されたときのメモリアクセスを示している。
【0061】
図6の紙面において、上側に示されている符号CPU、回路AC_L、回路BC_L、回路CC_LおよびCPUは、動作している回路部分を示している。プロセッサCPU等の回路部分が動作することで発生するシステムメモリS-MEMに対するアクセスの期間とアクセス量が、
図6には示されている。ここで、アクセスの期間は、横方向で示され、アクセス量は、縦方向で示されている。また、
図6において、BZは、内部バスInt-BUSの帯域幅を示している。
【0062】
図6において、符号IP1_ATは、画像処理回路IP1が、画像の入力処理を行うためにシステムメモリS-MEMにアクセスしている期間とアクセス量を示している。また、符号IP2_ATは、画像処理回路IP2が、画像の出力処理を行うためにシステムメモリS-MEMにアクセスしている期間とアクセス量を示している。車載カメラからの画像を処理し、ディスプレイに表示しているため、画像処理回路IP1およびIP2がシステムメモリS-MEMにアクセスしている期間は、
図6に示すように、ほぼ1フレームの期間(1秒に30フレーム(30fps)の1フレーム)と同じになる。
【0063】
図6において、符号CP_APは、プロセッサCPUによって実行される前処理(
図5のステップST1)によって発生するシステムメモリS-MEMへのアクセス期間とアクセス量を示し、符号CP_AFは、プロセッサCPUによって実行される後処理(
図5のステップST9)によって発生するシステムメモリS-MEMへのアクセス期間とアクセス量を示している。
【0064】
また、
図6において、符号DR_ATは、プログラムアレイPE-ARRYによって実現される回路AC_Lによって発生するシステムメモリS-MEMへのアクセス期間とアクセス量を示し、符号DR_BTは、プログラムアレイPE-ARRYによって実現される回路BC_Lによって発生するシステムメモリS-MEMへのアクセス期間とアクセス量を示している。さらに、符号DR_CTは、プログラムアレイPE-ARRYによって実現される回路CC_Lによって発生するシステムメモリS-MEMへのアクセス期間とアクセス量を示している。
【0065】
図6に示されているように、画像処理回路IP1、IP2によって発生するアクセスとプログラムアレイPE-ARRYによって実現される回路によって発生するアクセスとが、同時になっても、
図6に示されているように、アクセス量がバス帯域幅BZの範囲内であれば、いずれの回路のアクセスも制限されず、性能が低下するというような課題は生じない。
【0066】
<比較例>
次に、性能が低下する一例を、比較例として説明する。
【0067】
図7は、比較例を説明するための図である。
図7(A)は、
図6と類似している。相違点は、
図7(A)では、1フレーム期間において、プロセッサCPUにより新たな処理が発生している点である。この新たな処理は、例えば、車載システムを搭乗者が操作した場合、この操作に対応した処理を実行するために、プロセッサCPUが実行する処理に該当する。
【0068】
新たな処理を実行するために、1フレーム期間において、プロセッサCPUが、システムメモリS-MEMにアクセスする。このアクセスの期間とアクセス量が、
図7(A)では、符号CP_ACとして示されている。
図7(A)に示されているように、プロセッサCPUによる新たな処理に伴って発生するアクセス期間が、画像入力処理によるアクセス期間IP1_AT、画像出力処理によるアクセス期間IP2_ATおよびプログラムアレイPE-ARRYによって実現されている回路によるアクセス期間DR_AT、DR_BT、DR_CTと重なっており、また、プロセッサCPUによる新たな処理に伴って発生するアクセス量も大きくなっている。そのため、プロセッサCPUと、画像処理回路IP1、IP2と、DRプロセッサDRPによるシステムメモリS-MEMに対するアクセス量が、バス帯域幅BZを超えることになる。
【0069】
実際的には、バスアービタBUS-AB(
図1)によって、プロセッサCPUと、画像処理回路IP1と、画像処理回路IP2と、DRプロセッサDRP間で、アクセスの調停が行われることになる。この調停によって、
図7(B)に示すように、プロセッサCPUと、画像処理回路IP1、IP2と、DRプロセッサDRPによるシステムメモリS-MEMに対するアクセス量が、バス帯域幅BZを超えないように、プロセッサCPU、画像処理回路IP1、IP2およびDRプロセッサDRPは動作することになる。例えば画像処理回路IP2によって実行される画像出力処理を例にして述べると、バスアービタBUS-ABの調停によって、システムメモリS-MEMへのアクセスが待たされることになる。他の回路も、同様に、調停によって、システムメモリS-MEMへのアクセスが待たされることになる。アクセスが待たされるため、
図7(B)に示すように、一連の処理は、1フレーム期間では終了しないという状況が発生する。例えば、画像出力処理は、
図7(B)に示すように、1フレーム期間では終了せず、ディスプレイ上で望ましい表示を行うことが困難になる。すなわち、半導体装置の性能が低下することになる。
【0070】
<ステート情報の選択>
実施の形態1においては、DRプロセッサDRPによるシステムメモリS-MEMへのアクセスに対して、バスアービタBUS-ABによってアクセス拒否される頻度(拒否頻度)に基づいて、次に選択されるステート情報が定められる。例えば、機能Aを実現している回路が動作している期間に、DRプロセッサDRPによるシステムメモリへのアクセスにおいて、拒否頻度が求められ、求められた拒否頻度に基づいて、次に実行される機能Bに対応する3個のステート情報B_L、B_M、B_Sから、先に求められた拒否頻度に対応するステート情報が選択される。これにより、機能Aに対応する回路が動作した後は、機能Aに対応した回路が動作していたときの拒否頻度に応じた構成の回路(機能Bに対応した回路)が動作することになる。言い換えるならば、先に動作していた機能Aに対応した回路のときに求められた拒否頻度が、次に動作する回路に対する拒否頻度と推定され、推定された拒否頻度に適した構成の回路が、機能Bに対応した回路として用いられることになる。
【0071】
実施の形態1において、拒否頻度は、
図1に示した頻度回路FPCによって求められる。頻度回路FPCは、DMAコントローラDMAC(
図2)が出力するバス要求信号RQ_DRとバスアービタBUS-ABから入力するバス許可信号AC_DRとに基づいて、拒否頻度を求める。すなわち、頻度回路FPCは、機能Aを実現する回路が動作している期間において、DMACコントローラDMCが出力したバス要求信号RQ_DRの回数を要求回数として求め、バス許可信号AC_DRによってアクセスが拒否され(アクセスが認められず)、待ち状態となった回数を拒否回数として求める。頻度回路FPCは、拒否回数と要求回数との比(拒否回数/要求回数)を、拒否頻度として算出し、制御回路CTL(
図2)に出力する。
【0072】
次に、ステート情報の選択の動作を、図面を用いて説明する。
図8は、実施の形態1に係るステート情報の選択動作を示すフローチャートである。
【0073】
ここでは、制御回路CTLは、例えば、拒否頻度に関する2個のしきい値と、入力された拒否頻度とを比較することで、3個のステート情報から、拒否頻度に対応したステート情報を選択する場合を例として説明する。2個のしきい値としては、拒否頻度が大きい場合の第1しきい値と、拒否頻度が小さい場合の第2しきい値である。
【0074】
図8において、ステップST10で、DRプロセッサDRPは動作を開始する。次に、ステップST11で、プロセッサCPUが、回路情報AA_APを、システムメモリS-MEMから、ステートメモリST-MEMにリロードする。
【0075】
ステップST12において、プロセッサCPUが、最初のステート情報を選択する。すなわち、機能Aに対応する3個のステート情報A_L、A_M、A_Sから1個のステート情報を選択する。
図8では、プロセッサCPUが、機能Aに対応するステート情報として、ステート情報A_Lを選択した場合が示されている。最初のステート情報として、いずれのステート情報を選択するかは、例えばプロセッサCPUによって、予め拒否頻度を求めて定めるようにしてもよいし、固定のステート情報を選択するようにしてもよい。プロセッサCPUによって選択されたステート情報A_Lは、DRプロセッサDRPの制御回路CTLに伝えられる。これにより、制御回路CTLが、ステートメモリST-MEMに格納されているステート情報A_Lを選択する。その結果、ステップST13において、DRプロセッサDRPでは、ステート情報A_Lに対応した回路AC_Lが実現され、回路AC_Lが動作する。また、ステップST13では、頻度回路FPCによって、拒否頻度が算出される。
【0076】
次に、ステップST14において、制御回路CTLは、機能Bに対応するステート情報を選択するが、この選択の際にステップST13で算出された拒否頻度を参照する。すなわち、拒否頻度が、前記第1しきい値を超えていた場合、制御回路CTLは、アクセス量の小さい回路である回路BC_Sを実現するステート情報B_Sを選択する(選択S)。これに対して、拒否頻度が、前記第2しきい値未満の場合、制御回路CTLは、アクセス量の大きい回路である回路BC_Lを実現するステート情報B_Lを選択する(選択L)。また、拒否頻度が、前記第1しきい値と前記第2しきい値との間の場合、制御回路CTLは、アクセス量が中程度の回路である回路BC_Mを実現するステート情報B_Mを選択する(選択M)。
【0077】
選択Sの場合、ステップST15において、ステート情報B_Sに対応した回路BC_Sが、DRプロセッサDRPにおけるプログラムアレイPE-ARRYによって実現され、回路BC_Sが動作する。また、ステップST15では、頻度回路FPCによって、回路BC_Sが動作している期間での拒否頻度が算出される。
【0078】
ステップST16では、制御回路CTLは、ステップST15で算出された拒否頻度と、前記第1しきい値と前記第2しきい値とを比較して、機能Cに対応する3個のステート情報C_L、C_M、C_Sから拒否頻度に応じたステート情報を選択する(選択S、選択M、選択L)。
【0079】
ステップST16において、選択が選択Sとなった場合、次にステップST17が実行される。ステップST17では、ステート情報C_Sに対応した回路CC_Sが、DRプロセッサDRPにおいて実現され、回路CC_Sが動作する。また、ステップST16において、選択が選択Mとなった場合、次にステップST20が実行される。ステップST20では、ステート情報C_Mに対応した回路CC_Mが、DRプロセッサDRPにおいて実現され、回路CC_Mが動作する。さらに、ステップST16において、選択が選択Lとなった場合、次にステップST23が実行される。ステップST23では、ステート情報C_Lに対応した回路CC_Lが、DRプロセッサDRPにおいて実現され、回路CC_Lが動作する。
【0080】
その後、ステップST24において、DRプロセッサDRPは動作を終了する。
【0081】
図8において、ステップST18およびST21は、ステップST15と類似している。相違点は、ステップST18では、ステート情報B_Mに対応した回路BC_Mが、DRプロセッサDRPにおいて実現され、ステップST21では、ステート情報B_Lに対応した回路BC_Lが、DRプロセッサDRPにおいて実現されている点である。また、ステップST19およびST22は、ステップST16と同様である。
【0082】
図8では、DRプロセッサDRPにおいてプログラムアレイPE-ARRYが、機能AからCに対応する回路を実現する例を示したが、
図3に示されているように、機能DからZに対応する回路を実現するようにしてもよい。この場合、
図8に示したステップST17は、例えばステップST15と同様に、拒否頻度の算出が行われるようにする。
【0083】
これにより、先に動作した回路(例えば回路AC_L)で拒否頻度が高い場合には、次に動作する回路(機能Bを実現する回路)として、アクセス量の少ない回路(BC_S)が用いられことになる。また、先に動作した回路で拒否頻度が小さい場合には、次に動作する回路として、アクセス量の大きい回路(BC_L)が用いられことになる。さらに、先に動作した回路で拒否頻度が中程度の場合には、次に動作する回路として、アクセス量が中程度の回路(BC_M)が用いられことになる。その結果、拒否頻度が小さいときには性能の高い回路が次に用いられ、拒否頻度が高いときにはアクセス量の小さい回路が次に用いられることになり、半導体装置の性能の低下を抑制することが可能である。
【0084】
図9は、実施の形態1に係る半導体装置のメモリアクセスを示す図である。
図9は、
図7(B)と類似している。相違点は、
図8に示したフローチャートに従って、ステート情報が選択され、機能Bを実現する回路は、アクセス量が小さい回路BC_Sによって構成され、機能Cを実現する回路も、アクセス量が小さい回路CC_Sによって構成されている点である。これにより、
図9に示されているように、機能Bおよび機能Cを実現する回路(BC_S、CC_S)でのアクセス量が減る。その結果、プロセッサCPU、DRプロセッサDRP、画像処理回路IP1、IP2が、バスアービタBUS-ABによる調停で待たされる状態を低減することが可能となり、1フレーム期間において、一連の処理を完了することが可能となる。また、推定した拒否頻度に対応した性能の回路が選択されるため、適切な性能の回路が実行されるようになる。その結果、半導体装置の性能が低下するのを抑制することができる。
【0085】
なお、実施の形態1においては、頻度回路FPCは、DRプロセッサDRPにおけるプログラムアレイPE-ARRYが、頻度回路FPCに対応したステート情報を実行することで、実現される。そのため、ステップST12で選択されたステート情報A_Lは、回路AC_Lに対応するステート情報と頻度回路FPCに対応するステート情報とが含まれている。ステップST14において選択されたステート情報も同様に、選択されたステート情報は、実現する回路に対応するステート情報と頻度回路FPCに対応するステート情報とを含んでいる。
【0086】
(実施の形態2)
図10は、実施の形態2に係る半導体装置の動作例を示す図である。
図10は、
図5に示したステップST2からST8と類似している。主な相違点は、
図10では、ステップST3、ST5、ST7がステップST3_1、ST5_1、ST7_1となっている点である。また、
図10では、ステップ間を結ぶ線が明示されている点である。
【0087】
図10において、ステップST2でシステムメモリS-MEMに格納された入力画像データは、ステップST3_1において、プロセッサCPUによって選択されたステート情報A_L、A_MまたはA_Sによって実現された回路(AC_L、AC_MまたはAC_S)に取り込まれ、処理される。ステップST5_1では、ステップST3_1で選定された回路の拒否頻度に基づいて、ステート情報B_L、B_MまたはB_Sによって実現された回路(BC_L、BC_M、BC_S)が、システムメモリS-MEMからデータを取り込む。さらに、ステップST7_1では、ステップST5_1で選定された回路の拒否頻度に基づいて、ステート情報C_L、C_MまたはC_Sによって実現された回路(CC_L、CC_M、CC_S)が、システムメモリS-MEMからデータを取り込む。
【0088】
実施の形態2では、3個のステート情報(例えばB_L、B_M、B_S)によって実現される回路BC_L、BC_M、BC_Sにおいて、扱うデータのビットサイズ(幅)が異なるように設定されている。例えば、回路BC_Lでは、1データが倍精度(64ビット/データ)で表され、回路BC_Mでは、1データが単精度(32ビット/データ)で表され、回路BC_Sでは、1データが半精度(16ビット/データ)で表される。その結果、ステップST5_1において、選択された回路の種類によって、システムメモリS-MEMを介して、ステップST7_1における回路に供給されるデータのビットサイズが異なることになる。
【0089】
実施の形態2においては、後段の回路、すなわちステップST5_1または/およびステップST7_1において実現される3種類の回路は、複数のビットサイズを処理することができるように構成されている。これにより、アクセス量が異なるようにした回路(例えば、回路BC_Sと回路CC_L)を組み合わせることが可能となる。
【0090】
図10では、回路CC_L、CC_M、CC_Sのそれぞれが、複数のビットサイズ(64ビット、32ビット、16ビット)を扱えるようにした例が示されているが、これに限定されるものではない。例えば、各ビットサイズに対応した回路を実現するステート情報を用意するようにしてもよい。この場合、9個のステート情報を用意し、制御回路CTLが、拒否頻度と前段の回路のビットサイズとを考慮して、9個のステート情報から適したステート情報を選択し、適切な回路が実現されるようにすればよい。
【0091】
実施の形態では、DRプロセッサDRPにおけるプログラムアレイPE-ARRYが、頻度回路FPCに対応したステート情報を実行することで、頻度回路FPCを実現する例を示したが、これに限定されるものではない。すなわち、論理回路等を組み合わせて、専用の頻度回路FPCを構成してもよい。
【0092】
また、頻度回路FPCとして、バス要求信号RQ_DRとバス許可信号AC_DRとに基づいて拒否頻度を求める例を説明したが、これに限定されるものではない。例えば、拒否頻度は、DMAコントローラDMACのアクセス時における待ち回数(ウエイト発生回数)をカウントして、求めるようにしてもよい。あるいは、DMAコントローラDMACのデータ転送速度の論理値と実際のデータ転送速度との間の時間差を測定して、時間差を拒否頻度としてもよい。
【0093】
勿論、頻度回路FPCで、アクセスが拒否される頻度ではなく、アクセスが許可される頻度を求めるようにしてもよい。この場合には、許可頻度が低い場合、アクセス量の小さい回路に対応するステート情報を選択し、許可頻度が高い場合、アクセス量が大きい回路に対応するステート情報を選択するようにすればよい。
【0094】
さらに、実施の形態では、ステートメモリST-MEMに、予め格納されているステート情報を、頻度回路FPCによって求めた拒否頻度に応じて選択する例を示したが、頻度回路FPCによって求めた拒否頻度をプロセッサCPUに通知するようにしてもよい。この場合、プロセッサCPUが、通知された拒否頻度に対応した回路情報を選択し、選択した回路情報を、プロセッサCPUがステートメモリST-MEMにリロードする。これにより、DRプロセッサDRPは、拒否頻度に応じた回路を実現することになり、半導体装置LSIの性能が低下するのを抑制することが可能となる。
【0095】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0096】
BUS-AB バスアービタ
CPU プロセッサ
DMAC DMAコントローラ
DRP DRプロセッサ
FPC 頻度回路
Int-BUS 内部バス
IP1、IP2 画像処理回路
LSI 半導体装置
PE プログラム可能回路
PE-ARRY プログラムアレイ
S-MEM システムメモリ
ST-MEM ステートメモリ