以下、図面を参照し実施例について説明する。
まず、メモリ回路の例としてSRAMについて説明する。図1は、SRAMセルの回路図である。図1を参照し、メモリセル68は、P型FET(Field Effect Transistor)60および61並びにN型FET62から65を備えている。インバータ66はFET60および62を備え、インバータ67はFET61および63を備える。インバータ66および67とには電源電圧Vddとグランド電位GNDが供給される。FET60および61が形成されたウエルには基板バイアス電圧Vbpが供給される。FET62から65が形成されたウエルには基板バイアス電圧Vbnが供給される。インバータ66および67は双安定回路を形成する。双安定回路の2つのノードQおよび/Qは、それぞれFET64および65を介しビット線BLおよび/BLに接続される。FET64および65のゲートはワード線WLに接続される。
次に、メモリセル68にデータを書き込む期間(これをライト期間という)、およびデータを読み出す期間(これをリード期間という)の電源電圧と基板バイアス電圧について説明する。図2は、ライト期間とリード期間において電源電圧を変更するタイミングチャートである。図2を参照し、期間T1およびT2は、電圧の変更期間である。ライト動作およびリード動作の両方が可能なライト・リード期間における電源電圧VddをVdd1、基板バイアス電圧VbpおよびVbnをそれぞれVbp1およびVbn1とする。リード期間では、電源電圧VddはVdd1である。期間T1において、電源電圧VddをVdd1からVdd1より低いVdd2に変更する。ライト期間では電源電圧VddはVdd2である。期間T2において、電源電圧VddをVdd2からVdd1に変更する。
P型トランジスタの基板バイアス電圧Vbpは、全期間において一定の値Vbp1である。N型トランジスタの基板バイアス電圧Vbnは、全期間において一定の値Vbn1である。ライト動作が可能な電源電圧Vddは、リード動作が可能な電源電圧より低い。そこで、図2のように、ライト期間には、電源電圧Vddをリード期間より低くする。このとき、ライト期間においては、ライト動作は保障されるがリード動作は保障されない。一方、リード期間においては、リード動作は保障される。この例では、リード期間の電源電圧はライト動作とリード動作の両方が保障されるライト・リード期間と同じである。そこで、リード動作が生じない期間をライト期間とする。これにより、消費電力を削減できる。例えば、Vdd1およびVdd2を、それぞれ1.0Vおよび0.8Vとし、Vbp1およびVbn1を、それぞれ1.0Vおよび0Vとする。この場合、ライト期間の消費電力を、ライト・リード期間の(Vdd2/Vdd1)2×100%=(0.8/1.0)2×100%=64%にできる。
図3は、ライト期間とリード期間において基板バイアス電圧を変更するタイミングチャートである。図3を参照し、各期間は、図2と同じであり説明を省略する。リード期間では、基板バイアス電圧VbpおよびVbnは、それぞれVbp2およびVbn2である。ライト期間では、基板バイアス電圧VbpおよびVbnは、それぞれVbp3およびVbn3である。Vbp3およびVbn3は、それぞれVbp2およびVbn2より高い電圧である。電源電圧Vddは、全期間において一定の値Vdd2である。
MOS(Metal Oxide Semiconductor)FETにおいては、基板バイアス電圧をフォワード方向に印加することにより、閾値電圧を下げることができる。また基板バイアス電圧をバックワード方向に印加することにより、閾値電圧を上げることができる。一方、インバータ66および67において、P型FET60および61の閾値電圧を上げ、N型FET62から65の閾値電圧を下げることにより、低い電源電圧でライト動作が可能となる。P型FET60および61の閾値電圧を下げ、N型FET62から65の閾値電圧を上げることにより、低い電源電圧でリード動作が可能となる。
そこで、リード期間においては、基板バイアス電圧VbpおよびVbnを、それぞれライト・リード期間のVbp1およびVbn1より低いVbp2およびVbn2とする。これにより、電源電圧Vddをライト・リード期間のVdd1より低いVdd2とすることができる。ライト期間においては、基板バイアス電圧VbpおよびVbnを、それぞれライト・リード期間のVbp1およびVbn1より高いVbp3およびVbn3とする。ライト期間においては、ライト動作は保障されるがリード動作は保障されない。リード期間においては、リード動作は保障されるがライト動作は保障されない。そこで、リード動作が生じない期間をライト期間とし、ライト動作が生じない期間をリード期間とする。これにより、ライト期間およびリード期間の電源電圧Vddをライト・リード期間のVdd1より低いVdd2とすることができる。例えば、Vdd2を、0.8Vとし、Vbp2、Vbp3、Vbn2およびVbn3をそれぞれ0.8V、1.2V、−0.2Vおよび0.2Vとする。この場合、ライト期間およびリード期間の消費電力を、ライト・リード期間の64%にできる。
図2および図3のように、リード期間にメモリセル68に印加される電源電圧Vddおよび基板バイアス電圧VbpおよびVbnをリード電圧という。また、ライト期間にメモリセル68に印加される電源電圧Vddおよび基板バイアス電圧VbpおよびVbnをライト電圧という。
図4は、実施例1に係る電子回路のブロック図である。図4を参照し、電子回路100は、第1メモリ50、第2メモリ52、処理回路54および電圧制御回路56を備えている。第1メモリ50および第2メモリ52は、SRAMである。処理回路54は、CPU(Central Processing Unit)等のプロセッサまたは特定の処理を行なうために専用設計された電子回路であり、第1メモリ50および第2メモリ52からデータを読み出す、また、第1メモリ50および第2メモリ52にデータを書き込む。電圧制御回路56は、処理回路54の指示に基づき、第1メモリ50および第2メモリ52の電源電圧および/または基板バイアス電圧を変更する。
図5は、実施例1に係る電子回路の処理回路が行なう処理を示すフローチャートである。図5を参照し、処理回路54は電圧制御回路56に指示し、第1メモリ50にリード電圧を印加させる(ステップS10)。例えば、電圧制御回路56は第1メモリ50に図2または図3のリード期間の電圧を生成し印加する。処理回路54は、電圧制御回路56に指示し、第2メモリ52にライト電圧を印加させる(ステップS12)。例えば、電圧制御回路56は第2メモリ52に図2または図3のライト期間の電圧を印加する。ステップS10とS12とは順番が逆でもよい。処理回路54は、第1メモリ50からデータを読み出す(ステップS14)。処理回路54は、第2メモリ52にデータを書き込む(ステップS16)。ステップS14とS16とは順番が逆でもよい。また、ステップS14がステップS10とS12との間でもよい。
処理回路54は、電圧制御回路56に指示し、第2メモリ52にリード電圧を印加させる(ステップS18)。処理回路54は、電圧制御回路56に指示し、第1メモリ50にライト電圧を印加させる(ステップS20)。ステップS18とS20とは順番が逆でもよい。処理回路54は、第2メモリ52からデータを読み出す(ステップS22)。処理回路54は、第1メモリ50にデータを書き込む(ステップS24)。ステップS22とS24とは順番が逆でもよい。また、ステップS22がステップS18とS20との間でもよい。処理回路54は、終了か判定する(ステップS26)。例えば、処理すべきデータの処理がすべて終了した場合、Yesと判定する。Yesの場合終了する。Noの場合ステップS10に戻る。
実施例1によれば、図5のように、処理回路54は、第1期間(ステップS22およびS24を行なう期間)と第2期間(ステップS14およびS16を行なう期間)とを交互に実行する。処理回路54は、第1期間において第1メモリ50にデータを書き込み(ステップS24)、第2メモリ52からデータを読み出す(ステップS22)。処理回路54は、第2期間において第2メモリ52にデータを書き込み(ステップS16)、第1メモリ50からデータを読み出す(ステップS14)。
このような処理を行なう場合に、電圧制御回路56は、第1メモリ50の書き込み(ステップS24)後かつ第1メモリ50の読み出し(ステップS14)前に、第1メモリ50をリード電圧(第1電圧)に設定する(ステップS10)。電圧制御回路56は、第2メモリ52の書き込み(ステップS16)後かつ第2メモリ52の読み出し(ステップS22)前に、第2メモリ52をリード電圧(第1電圧)に設定する(ステップS18)。電圧制御回路56は、第1メモリ50の読み出し(ステップS14)後かつ第1メモリ50の書き込み(ステップS24)前に第1メモリ50をライト電圧(第2電圧)に設定する(ステップS20)。電圧制御回路56は、第2メモリ52の読み出し(ステップS22)後かつ第2メモリ52の書き込み(ステップS16)前に第1メモリ50をライト電圧(第2電圧)に設定する(ステップS12)。
これにより、クロックサイクルによらず、電源電圧および/または基板バイアス電圧を変更できる。これにより、第1メモリ50と第2メモリ52のデータの書き込みおよび読み出しに対し電源電圧を低くできる。よって、電子回路100の消費電力を削減できる。
図2のように、電源電圧Vddのライト電圧Vdd2をリード電圧Vdd1より低くすることができる。また、図3のように、基板バイアス電圧VbpおよびVbnのリード電圧Vbp2およびVbn2とあわせて制御することで電源電圧Vddのリード電圧Vdd2をVdd1より低くすることができる。
実施例2は、カメラセンサーが符号化前の画像データをSRAMに出力し、CPUがSRAM内のデータを符号化したデータをメモリカードに書き込む例である。
図6は、実施例2に係る電子装置のブロック図である。図6を参照し、電子回路102は、SRAM21から26、CPU10、電圧制御回路12、カメラインターフェース(IF)14、メモリカードIF16、CPU用SRAM18およびバス28を備えている。SRAM21から26は、符号化する前のデータおよび符号化した後のデータを格納する。SRAM21から26が実施例1の第1メモリ50または第2メモリ52に対応する。CPU10は、実施例1の処理回路54に対応し、画像データの符号化および電圧制御回路12への指示を行なう。電圧制御回路12は、実施例1の電圧制御回路56に対応し、電源電圧Vddおよび基板バイアス電圧VbpおよびVbnを生成し、SRAM21から26に印加する。
カメラIF14は、外部機器であるカメラセンサー30と電子回路102とのインターフェースである。カメラIF14は、カメラセンサー30が撮像した画像データを1フレームごとにSRAM21または22に書き込む。また、カメラIF14は、画像データ内の1フレーム分のSRAM21または22への書き込みが終了するとCPU10に割り込み信号を出力する。メモリカードIF16は、メモリカード32と電子回路102とのインターフェースである。メモリカードIF16は、SRAM25または26に格納されている符号化後の画像データを1フレームごとにメモリカード32に書き込む。CPU用SRAM18は、CPU10が実行するプログラムの処理コードおよび処理中のデータを一時保持する。バス28は、SRAM21から26、CPU10、電圧制御回路12、カメラインターフェース(IF)14およびメモリカードIF16を接続する。
図7は、実施例2において主にCPUが行なう処理を示すフローチャートである。図8は、図7のステップS100における主にCPUの処理を示すフローチャートである。図9は、図7のステップS104における主にCPUの処理を示すフローチャートである。図10は、図7のステップS108における主にCPUの処理を示すフローチャートである。図11は、実施例2におけるシーケンス図である。
図7を参照し、CPU10は、図8に示す初期化処理を行なう(ステップS100)。CPU10は、カメラIF14から割り込み信号を受信したか判定する(ステップS102)。Noの場合、ステップS102に戻る。Yesの場合、CPU10は、図9に示す処理を行なう(ステップS104)。CPU10は、カメラIF14から割り込み信号を受信したか判定する(ステップS106)。Noの場合、ステップS106に戻る。Yesの場合、CPU10は、図10に示す処理を行なう(ステップS108)。CPU10は、終了か判定する(ステップS109)。例えば画像データの全てのフレームの処理が終了していればYesと判定する。Yesの場合、終了する。Noの場合、ステップS102に戻る。
図8を参照し、ステップS100において、CPU10は、電圧制御回路12に、SRAM22、24および26に供給する電圧(電源電圧および/または基板バイアス電圧)をライト電圧に変更する(ステップS110)。CPU10は、カメラIF14を起動する(ステップS112)。例えば、CPU10は、カメラIF14に、SRAM21および22のアドレスを設定する。カメラIF14は、カメラセンサー30が撮像した画像のデータを1フレームごとに、SRAM21とSRAM22に交互に書き込む。フレームレートは例えば30フレーム/秒または60フレーム/秒である。図8および図11を参照し、カメラIF14は、SRAM22に最初のフレームデータを書き込む(ステップS139)。カメラIF14は、最初のフレームデータのSRAM22への書き込みが終了すると、CPU10に割り込み信号を送信する。
図9および図11を参照し、図7のステップS102において、CPU10は、カメラIF14からの割り込み信号を受信する。CPU10は電圧制御回路12に電圧の変更を指示する(ステップS120)。電圧制御回路12はSRAM21、23および25に供給する電圧をライト電圧に変更する(ステップS121)。SRAM21、23および25はライト状態となる(ステップS140)。CPU10は電圧制御回路12に電圧の変更を指示する(ステップS122)。電圧制御回路12はSRAM22、24および26に供給する電圧をリード電圧への変更する(ステップS123)。SRAM22、24および26はリード状態となる(ステップS142)。CPU10は、メモリカードIF16にフレームデータの読み出しを指示する(ステップS124)メモリカードIF16は、SRAM26に格納されている符号化後のフレームデータを読み出し、メモリカード32に書き込む(ステップS125)。なお、最初にステップS125を実行するときはまだ符号化されたフレームがないので、SRAM26に符号化後のフレームデータが格納されておらず、ステップS125をスキップする。
CPU10は、SRAM22に格納された符号化前のフレームデータを逐次読み出し、符号化する(ステップS126)。符号化処理は、例えば動画圧縮規格を用い符号化する処理である。動画圧縮規格としては、例えば、MPEG(Moving Picture Experts Group)2、MPEG4、H.264またはHEVC(High Efficiency Video Coding)を用いる。
ステップS126において、CPU10は、SRAM22およびSRAM24からフレームデータを逐次読み出す(ステップS127)。CPU10は、符号化したフレームデータをSRAM25に逐次書き込み、生成した再構成フレームをSRAM23に逐次書き込む(ステップS128)。SRAM23に書き込まれた再構成フレームは次のフレームの符号化で参照フレームとして使用する。ステップS127において、CPU10はSRAM24に格納されている前回のフレームデータを符号化処理に用いる参照画像として読み出す。SRAM24に参照画像が格納されていない場合、CPU10はイントラフレームを用い符号化することができる。イントラフレームは、SRAM22に格納されたフレームデータを用い参照画像を用いず符号化を完成するフレームである。また、参照画像を用いない圧縮規格の場合はSRAM24を用いない。カメラIF14は、SRAM22に次のフレームデータを書き込む(ステップS129)。カメラIF14はフレームレートから定まるタイミングで次のフレームデータのSRAM21への書き込みが終了すると、CPU10に割り込み信号を送信する。
図10および図11を参照し、図7のステップS106において、CPU10は、カメラIF14からの割り込み信号を受信する。CPU10は電圧制御回路12に電圧の変更を指示する(ステップS130)。電圧制御回路12はSRAM22、24および26に供給する電圧をライト電圧に変更する(ステップS131)。SRAM22、24および26はライト状態となる(ステップS144)。CPU10は電圧制御回路12に電圧の変更を指示する(ステップS132)電圧制御回路12はSRAM21、23および25に供給する電圧をリード電圧への変更する(ステップS133)。SRAM21、23および25はリード状態となる(ステップS146)。CPU10はメモリカードIF16にフレームデータの読み出しを指示する(ステップS134)メモリカードIF16は、SRAM25に格納されている符号化後のフレームデータを読み出し、メモリカード32に書き込む(ステップS135)。
CPU10は、SRAM21に格納された符号化前のフレームデータを逐次読み出し、符号化する(ステップS136)。符号化処理は、ステップS126と同様である。ステップS136において、CPU10は、SRAM21およびSRAM23からフレームデータを逐次読み出す(ステップS137)。CPU10は、符号化したフレームデータをSRAM26に逐次書き込み、生成した再構成フレームをSRAM24に逐次書き込む(ステップS138)。SRAM24に書き込まれた再構成フレームは次のフレームの符号化で参照フレームとして使用する。カメラIF14は、フレームレートから定まるタイミングでSRAM22に次のフレームデータを書き込む(ステップS139)。カメラIF14は、次のフレームデータのSRAM22への書き込みが終了すると、CPU10に割り込み信号を送信する。
図12は、実施例2におけるタイミングチャートである。図11および図12を参照し、時間t00からt10の期間TJ0と、時間t10からt00の期間TJ1がそれぞれ1フレーム時間に対応する。まず、SRAM21、23および25はリード状態の期間TH1であり、SRAM22、24および26はライト状態の期間TG1である。時間t00からt01の期間TA0において、カメラIF14は、SRAM22にフレームデータを書き込む(ステップS139)。時間t01においてカメラIF14はCPU10に割り込み信号を送信する(ステップS102)。時間t02から時間t03の期間TB0において、CPU10は、SRAM21、23および25の電圧をライト電圧に変更する(ステップS120)。時間t03以降の期間TG0において、SRAM21、23および25はライト状態(ステップS140)である。時間t03から時間t04の期間TC0において、CPU10は、SRAM22、24および26の電圧をリード電圧に変更する(ステップS122)。時間t04以降の期間TH0において、SRAM22、24および26はリード状態(ステップS142)である。
時間t04とt05との間の期間TD0において、CPU10は、メモリカードIF16にSRAM26からメモリカード32への符号化後のフレームデータの書き込みを指示する(ステップS124)。時間t05から時間t06の間の期間TF0において、メモリカードIF16は、SRAM26に格納された符号化後のフレームデータをメモリカード32に書き込む(ステップS125)。時間t05から時間t07の間の期間TE0において、CPU10は、SRAM22に格納されたフレームデータを符号化処理し、SRAM25に格納する(ステップS126からS128)。期間TE0において、CPUは、SRAM22およびSRAM24からフレームデータを逐次読み出す(ステップS127)。CPU10は、符号化したフレームデータをSRAM25に逐次書き込む(ステップS128)。
時間t10からt11の期間TA1において、カメラIF14は、SRAM21にフレームデータを書き込む(ステップS129)。時間t11においてカメラIF14はCPU10に割り込み信号を送信する(ステップS106)。時間t12から時間t13の期間TB1において、CPU10は、SRAM22、24および26の電圧をライト電圧に変更する(ステップS130)。時間t03以降の期間TG1において、SRAM22、24および26はライト状態(ステップS144)である。時間t13から時間t14の期間TC1において、CPU10は、SRAM21、23および25の電圧をリード電圧に変更する(ステップS132)。時間t14以降の期間TH1において、SRAM21、23および25はリード状態(ステップS146)である。
時間t14とt15との間の期間TD1において、CPU10は、メモリカードIF16にSRAM25からメモリカード32への符号化後のフレームデータの書き込みを指示する(ステップS134)。時間t15から時間t16の間の期間TF1において、メモリカードIF16は、SRAM25に格納された符号化後のフレームデータをメモリカード32に書き込む(ステップS135)。時間t15から時間t17の間の期間TE1において、CPU10は、SRAM21に格納されたフレームデータを符号化処理し、SRAM26に格納する(ステップS136からS138)。期間TE1において、CPU10は、SRAM21およびSRAM23からフレームデータを逐次読み出す(ステップS137)。CPU10は、符号化したフレームデータをSRAM26に逐次書き込む(ステップS138)。以後時間t00から繰り返す。
実施例2によれば、CPU10は、ステップS126のようにSRAM22(第2メモリ)に格納されているデータを符号化し、符号化の過程で得られた再構成画像と符号化後データをSRAM23およびSRAM25(第1メモリ)に格納しステップS136のようにSRAM21(第1メモリ)に格納されているデータを符号化し、符号化の過程で得られた再構成画像と符号化後データをSRAM24およびSRAM26(第2メモリ)に格納する。このように、画像データを符号化する際には、SRAM21およびSRAM22、SRAM23およびSRAM24、SRAM25およびSRAM26に供給される電圧を交互にライト電圧およびリード電圧として用いる。これにより、電気回路102の消費電力を抑制できる。
また、ステップS106およびS130のように、CPU10は、SRAM21へのデータの書き込みが終了したことを示す割り込み信号をトリガとしてSRAM21、23および25の電圧をリード電圧とする。ステップS102およびS122のように、CPU10は、割り込み信号をトリガとしてSRAM22、24および26の電圧をライト電圧とする。これにより、SRAM21から26の電圧の変更を1フレームに1回とすることができる。1フレームの期間は、電圧を変更する時間より十分長い、よって、電圧変更のための待機時間を抑制できる。また、電圧変更にともなう消費電力も抑制できる。
実施例3に係る電子回路のブロック図は実施例2と同じであり説明を省略する。図13は、実施例3において主にCPUが行なう処理を示すフローチャートである。図14は、図13のステップS162における主にCPUの処理を示すフローチャートである。図15は、図13のステップS166における主にCPUの処理を示すフローチャートである。図16は、実施例3におけるシーケンス図である。
図13を参照し、CPU10は、図8と同じ初期化処理を行なう(ステップS100)。CPU10は、符号化処理が終了したか判定する(ステップS160)。例えば、ステップS136において開始した符号化処理が終了した場合、Yesと判定する。なお、最初のフレームデータの場合等、符号化処理を行なっていない場合、Yesと判断する。Noの場合、ステップS160に戻る。Yesの場合、CPU10は、図14に示す処理を行なう(ステップS162)。CPU10は、符号化処理が終了したか判定する(ステップS164)。例えば、ステップS126において開始した符号化処理が終了した場合、Yesと判定する。Noの場合、ステップS164に戻る。Yesの場合、CPU10は、図15に示す処理を行なう(ステップS166)。CPU10は、終了か判定する(ステップS168)。Yesの場合、終了する。Noの場合、ステップS160に戻る。
図14および図16を参照し、ステップS122において、CPU10は、電圧制御回路12に、SRAM24および26に供給する電圧をリード電圧に変更させる。次に、CPU10は、カメラIF14から割り込み信号を受信したか判定する(ステップS102)。例えば、ステップS139において開始したカメラIF14のSRAM22へのフレームデータの書き込みが終了すれば、カメラIF14は、割り込み信号をCPU10に送信する。Noの場合、ステップS102に戻る。Yesの場合、CPU10は、電圧制御回路12に、SRAM22に供給する電圧をリード電圧に変更させる(ステップS150)。その他のステップは、実施例2の図9と同じであり説明を省略する。
図15および図16を参照し、ステップS132において、CPU10は、電圧制御回路12に、SRAM23および25に供給する電圧をリード電圧に変更させる。次に、CPU10は、カメラIF14から割り込み信号を受信したか判定する(ステップS106)。例えば、ステップS129において開始したカメラIF14のSRAM21へのフレームデータの書き込みが終了すれば、カメラIF14は、割り込み信号をCPU10に送信する。Noの場合、ステップS106に戻る。Yesの場合、CPU10は、電圧制御回路12に、SRAM21に供給する電圧をリード電圧に変更させる(ステップS152)。その他のステップは、実施例2の図10と同じであり説明を省略する。
図17は、実施例3におけるタイミングチャートである。図16および図17を参照し、CPU10は、ステップS136において開始した符号化処理を行なっている。期間TA0において、カメラIF14は、SRAM22にフレームデータを書き込む(ステップS139)。期間TA0内の時間t02において、CPU10は符号化処理が完了する。時間t02から時間t03の期間TB0において、CPU10は、SRAM21、23および25の電圧をライト電圧に変更する(ステップS120)。時間t03から時間t04の期間TC0において、CPU10は、SRAM24および26の電圧をリード電圧に変更する(ステップS122)。
時間t05において、カメラIF14がSRAM22へのフレームデータの書き込みが終了すると、CPU10は割り込み信号を受信する(ステップ102)。
時間t05とt06との間の期間TK0において、CPU10は、SRAM22の電圧をリード電圧に変更する(ステップS150)。時間t05とt06との間の期間TK0において、CPU10は、メモリカードIF16にSRAM26からメモリカード32への符号化後のフレームデータの書き込みを指示する(ステップS124)。時間t06とt07との間の期間TF0において、メモリカードIF16は、SRAM26に格納された符号化後のフレームデータをメモリカード32に書き込む(ステップS125)。
時間t12において、CPU10は符号化処理が完了する。時間t12から時間t13の期間TB1において、CPU10は、SRAM22、24および26の電圧をライト電圧に変更する(ステップS130)。時間t13から時間t14の期間TC1において、CPU10は、SRAM23および25の電圧をリード電圧に変更する(ステップS132)。
時間t15において、カメラIF14がSRAM21へのフレームデータの書き込みが終了すると、CPU10は割り込み信号を受信する(ステップS106)。時間t15とt16との間の期間TK1において、CPU10は、SRAM21の電圧をリード電圧に変更する(ステップS152)。時間t15とt16との間の期間TK1において、CPU10は、メモリカードIF16にSRAM25からメモリカード32への符号化後のフレームデータの書き込みを指示する(ステップS134)。時間t16とt17との間の期間TF1において、メモリカードIF16は、SRAM25に格納された符号化後のフレームデータをメモリカード32に書き込む(ステップS135)。以後時間t00から繰り返す。その他の処理は実施例2と同じであり、説明を省略する。
実施例3によれば、ステップS106およびS152のように、CPU10は、SRAM21へのデータの書き込みが終了したことを示す割り込み信号をトリガとして、SRAM21の電圧をリード電圧とする。また、ステップS130のように、SRAM22に格納されたデータの符号化が終了した後に、SRAM22の電圧をライト電圧とする。これにより、実施例2と同様に、消費電力を削減することができる。
実施例2および3においては、カメラセンサー30により撮像した画像データを符号化する処理について説明したが、符号化処理は行なわなくてもよい。CPU10が、画像データ等のデータに対し何らかの処理を行ない出力する装置に適用できる。例えば、連続するフレーム間で変化する部分を抽出することで、撮影領域内に人物等が不正侵入していないかを検知する装置に適用できる。このように、フレーム間で差のある部分を計算し、フレーム内での差のある座標を出力する装置に実施例2および3を適用できる。例えば、外部機器はカメラセンサ以外でもよい。また、CPU10は、フレームデータ以外のデータを処理してもよい。
実施例4は、メモリカードの画像データをSRAMに書き込み、CPUがSRAM内のデータを復号し、ディスプレイが復号したデータを表示す例である。
図18は、実施例4に係る電子装置のブロック図である。図18を参照し、電子回路104は、SRAM21、22および25、CPU10、電圧制御回路12、ディスプレイIF15、メモリカードIF16、CPU用SRAM18およびバス28を備えている。SRAM25は復号する前のデータ、SRAM21および22は復号した後のデータを格納する。SRAM21および22がそれぞれ実施例1の第1メモリ50および第2メモリ52に対応する。CPU10は、実施例1の処理回路54に対応し、画像データの復号および電圧制御回路12への指示を行なう。電圧制御回路12は、実施例1の電圧制御回路56に対応し、電源電圧Vddおよび基板バイアス電圧VbpおよびVbnを生成し、SRAM21、22および25に印加する。
ディスプレイIF15は、ディスプレイ34と電子回路104とのインターフェースである。ディスプレイIF15は、SRAM21または22から復号した画像データを1フレームごとに読み出し、ディスプレイ34に出力する。また、ディスプレイIF15は、SRAM21または22内の1フレーム分の出力を終了すると、CPU10に割り込み信号を出力する。メモリカードIF16は、メモリカード32に格納されている復号前の画像データをSRAM25に書き込む。バス28は、SRAM21、22および25、CPU10、電圧制御回路12、ディスプレイIF15およびメモリカードIF16を接続する。
図19は、実施例4において主にCPUが行なう処理を示すフローチャートである。図20は、図19のステップS200における主にCPUの処理を示すフローチャートである。図21は、図19のステップS206における主にCPUの処理を示すフローチャートである。図22は、図19のステップS210における主にCPUの処理を示すフローチャートである。図23は、実施例4におけるシーケンス図である。
図19を参照し、CPU10は、図20に示す初期化処理を行なう(ステップS200)。CPU10は、ディスプレイIF15から割り込み信号を受信したか判定する(ステップS204)。Noの場合、ステップS204に戻る。Yesの場合、CPU10は、図21に示す処理を行なう(ステップS206)。CPU10は、ディスプレイIF15から割り込み信号を受信したか判定する(ステップS208)。Noの場合、ステップS208に戻る。Yesの場合、CPU10は、図22に示す処理を行なう(ステップS210)。CPU10は、終了か判定する(ステップS212)。例えば画像データの全てのフレームの処理が終了していればYesと判定する。Yesの場合、終了する。Noの場合、ステップS204に戻る。
図20を参照し、ステップS200において、CPU10は、電圧制御回路12に、SRAM21および22およびに供給する電圧をライト電圧とさせる(ステップS220)。CPU10は、電圧制御回路12に、SRAM25に供給する電圧をライト・リード電圧とさせる(ステップS222)。CPU10は、メモリカードIF16を起動する(ステップS224)。例えば、CPU10は、メモリカードIF16に、SRAM25のアドレスを設定させる。
CPU10は、メモリカードIF16に、復号対象のフレームデータをSRAM25に書き込ませる(ステップS226)。CPU10は、SRAM25のフレームデータを復号しSRAM21に書き込む(ステップS228)。CPU10は、電圧制御回路12に、SRAM21に供給する電圧をリード電圧に変更させる(ステップS230)。CPU10は、ディスプレイIF16を起動する。例えば、CPU10は、ディスプレイIF15に、SRAM21および22のアドレスを設定させる。ディスプレイIF15は、SRAM21および22が格納する画像のデータを1フレームごとに、ディスプレイ34に表示させる。フレームレートは例えば30フレーム/秒または60フレーム/秒である。CPU10は、ディスプレイIF15に、SRAM21に格納された復号後のフレームデータを読み出させディスプレイ34に出力させる(ステップS232)。
CPU10は、SRAM25のフレームデータを復号しSRAM22に書き込む(ステップS234)。CPU10は、電圧制御回路12に、SRAM22に供給する電圧をリード電圧に変更させる(ステップS236)。CPU10は、ディスプレイIF15に、SRAM22に格納された復号後のフレームデータを読み出させディスプレイ34に出力させる(ステップS266)。
図21および図23を参照し、図19のステップS204において、CPU10はディスプレイIF15からSRAM22に格納された復号後のフレームデータの表示が終了したとの割り込み信号を受信する。CPU10は電圧制御回路12にSRAM22の電圧の変更を指示する(ステップS240)。電圧制御回路12はSRAM22に供給する電圧をライト電圧に変更する(ステップS241)。SRAM21はライト状態となる(ステップS254)。
CPU10は、SRAM25に格納された復号前のフレームデータを逐次読み出し、復号する(ステップS242)。復号処理は、例えば動画圧縮規格を用いて符号化されたデータを復号してフレームデータを生成する処理である。動画圧縮規格としては、例えば、MPEG2、MPEG4、H.264またはHEVCを用いる。ステップS242において、CPU10は、SRAM25から符号化されているフレームデータを逐次読み出す(ステップS243)。CPU10は、復号したフレームデータをSRAM22に逐次書き込む(ステップS244)。CPU10は、SRAM21に格納されている前回のフレームデータを復号の際の参照画像として読み出してもよい。
CPU10は、ディスプレイIF15に、SRAM21に格納された復号後のフレームデータを読み出させディスプレイ34に出力させる(ステップS246)。CPU10は、ステップS242において開始した復号が終了したか判定する(ステップS248)。Noの場合、S248に戻る。Yesの場合、CPU10は電圧制御回路12に電圧の変更を指示する(ステップS250)。電圧制御回路12はSRAM22に供給する電圧をリード電圧に変更する(ステップS251)。SRAM21はリード状態となる(ステップS256)。CPU10はメモリカードIFに符号化されたフレームデータの書き込みを指示する(ステップS252)。メモリカードIF16は符号化されたフレームデータをSRAM25に書き込む(ステップS253)。終了し、図19のステップS208に進む。
図22および図23を参照し、図19のステップS208において、CPU10はディスプレイIF15からSRAM21に格納された復号後のフレームデータの表示が終了したとの割り込み信号を受信する。CPU10は電圧制御回路12にSRAM21の電圧の変更を指示する(ステップS260)。電圧制御回路12はSRAM21に供給する電圧をライト電圧に変更する(ステップS261)。SRAM21はライト状態となる(ステップS274)。
CPU10は、SRAM25に格納された復号前のフレームデータを逐次読み出し、復号する(ステップS262)。ステップS262において、CPU10は、SRAM25からフレームデータを逐次読み出す(ステップS263)。CPU10は、復号したフレームデータをSRAM21に逐次書き込む(ステップS264)。CPU10は、SRAM22に格納されている前回のフレームデータを復号の際の参照画像として読み出してもよい。
CPU10は、ディスプレイIF15に、SRAM22に格納された復号後のフレームデータを読み出させディスプレイ34に出力させる(ステップS266)。CPU10は、ステップS262において開始した復号が終了したか判定する(ステップS268)。Noの場合、S268に戻る。Yesの場合、CPU10は電圧制御回路12に電圧の変更を指示する(ステップS270)。電圧制御回路12はSRAM21に供給する電圧をリード電圧に変更する(ステップS271)。SRAM21はリード状態となる(ステップS276)。CPU10はメモリカードIF16にフレームデータの書き込みを指示する(ステップS272)。メモリカードIF16はフレームデータをSRAM25に書き込む(ステップS273)。終了し、図19のステップS212に進む。
図24は、実施例4におけるタイミングチャートである。図23および図24を参照し、時間t20からt30の期間TM2と、時間t30からt20の期間TM3がそれぞれ1フレームに対応する。まず、SRAM21はリード状態の期間TW2であり、SRAM22はライト状態の期間TX2である。SRAM25は、ライト・リード状態の期間TY2およびTY3である。時間t35に開始した復号が継続している(ステップS242)。時間t20からt24の間の期間TP2において、ディスプレイIF15は、SRAM21に格納されたフレームデータをディスプレイに出力する(ステップS246)。時間t21において、復号が終了すると、時間t21からt22の間の期間TS2において、CPU10は、SRAM22の電圧をリード電圧に変更する(ステップS250)。時間t22以降の期間TW3において、SRAM22はリード状態(ステップS256)である。
時間t21からt23の間の期間TZ2において、CPU10は、メモリカード32に格納された次のフレームデータをSRAM25に書き込む(ステップS252)。時間t24において、ディスプレイIF15はCPU10に割り込み信号を送信する(ステップS208)。時間t24から時間t25の期間TQ2において、CPU10は、SRAM21の電圧をライト電圧に変更する(ステップS260)。時間t25以降の期間TX3において、SRAM21はライト状態(ステップS274)である。時間t25からt31の期間TR3において、CPU10は、SRAM25のフレームデータを復号しSRAM21に書き込む(ステップS262)。
時間t30からt34の間の期間TP3において、ディスプレイIF15は、SRAM22に格納されたフレームデータをディスプレイに出力する(ステップS266)。時間t31において、復号が終了すると、時間t31からt32の間の期間TS3において、CPU10は、SRAM21の電圧をリード電圧に変更する(ステップS270)。時間t32以降の期間TW2において、SRAM21はリード状態(ステップS276)である。
時間t31からt33の間の期間TZ3において、CPU10は、メモリカード32に格納された次のフレームデータをSRAM25に書き込む(ステップS272)。時間t34において、ディスプレイIF15はCPU10に割り込み信号を送信する(ステップS204)。時間t34からt35の期間TQ3において、CPU10は、SRAM22の電圧をライト電圧に変更する(ステップS240)。時間t35以降の期間TX2において、SRAM22はライト状態(ステップS254)である。時間t35からt21の期間TR2において、CPU10は、SRAM25に格納されたフレームデータを復号しSRAM22に書き込む(ステップS242)。以後時間t20から繰り返す。
実施例4によれば、CPU10は、ステップS242のように、SRAM21に書き込むためのフレームデータを復号する。ステップS262のように、SRAM22に書き込むためのフレームデータを復号する。このように、画像データを復号するときに、SRAM21およびSRAM22に供給する電圧をフレームごとにライト電圧およびリード電圧に交互に変更する。これにより、電気回路104の消費電力を抑制できる。
また、ステップS208およびS260のように、CPU10は、ディスプレイ(外部機器)がSRAM21からデータの取得が終了したことを示す割り込み信号をトリガとしてSRAM21の電圧をライト電圧とする。ステップS248およびS250のように、CPU10は、SRAM22に書き込むためのデータの復号が終了した後に、SRAM22の電圧をリード電圧とする。これにより、SRAM21および21の電圧の変更を1フレームに1回とすることができる。1フレームの期間は、電圧を変更する時間より十分長い、よって、電圧変更のための待機時間を抑制できる。また、電圧変更にともなう消費電力を抑制できる。
実施例5に係る電子回路のブロック図およびフローチャートのうち図19および図20は実施例4と同じであり説明を省略する。図25は、図19のステップS206における主にCPUの処理を示すフローチャートである。図26は、図19のステップS210における主にCPUの処理を示すフローチャートである。図27は、実施例5におけるシーケンス図である。
図25および図27を参照し、図19のステップS204において、CPU10が割り込み信号を受信する(ステップS204)。CPU10はSRAM22に供給する電圧をライト電圧に変更する(ステップS240)。CPU10はSRAM21に供給する電圧をリード電圧に変更する(ステップS250)。CPU10は、SRAM25に格納された復号前のフレームデータを復号する(ステップS242)。CPU10は、SRAM21に格納された復号後のフレームデータを読み出させディスプレイ34に出力させる(ステップS246)。CPU10は、メモリカードIF16内のフレームデータをSRAM25に書き込む(ステップS252)。終了し、図19のステップS208に進む。その他のステップは、実施例4の図21と同じであり説明を省略する。
図26および図27を参照し、図19のステップS208において、CPU10が割り込み信号を受信する(ステップS208)。CPU10はSRAM21に供給する電圧をライト電圧に変更する(ステップS260)。CPU10はSRAM22に供給する電圧をリード電圧に変更する(ステップS270)。CPU10は、SRAM25に格納された復号前のフレームデータを復号する(ステップS262)。CPU10は、SRAM22に格納された復号後のフレームデータをディスプレイ34に出力する(ステップS266)。CPU10は、メモリカードIF16に格納されたフレームデータをSRAM25に書き込む(ステップS272)。終了し、図19のステップS212に進む。その他のステップは、実施例4の図22と同じであり説明を省略する。
図28は、実施例5におけるタイミングチャートである。図27および図28を参照し、時間t20からt24の間の期間TP2において、ディスプレイIF15は、SRAM21に格納されたフレームデータをディスプレイに出力する(ステップS246)。時間t21において、復号が終了すると、時間t21からt23の間の期間TZ2において、CPU10は、メモリカード32に格納された復号対象のデータの続きをSRAM25に書き込む(ステップS252)。
時間t24において、ディスプレイIF15はCPU10に割り込み信号を送信する(ステップS208)。時間t24から時間t25の期間TQ2において、CPU10は、SRAM21の電圧をライト電圧に変更する(ステップS260)。時間t25以降の期間TX3において、SRAM21はライト状態(ステップS274)である。時間t25から時間t26の期間TS2において、CPU10は、SRAM22の電圧をリード電圧に変更する(ステップS270)。時間t26以降の期間TW3において、SRAM22はリード状態(ステップS256)である。時間t26からt31の期間TR3において、CPU10は、SRAM25に格納されたフレームデータを復号しSRAM21に書き込む(ステップS262)。
時間t30からt34の間の期間TP3において、ディスプレイIF15は、SRAM22に格納されたフレームデータをディスプレイに出力する(ステップS266)。時間t31において、復号が終了すると、時間t31からt33の間の期間TZ3において、メモリカードIF16は、メモリカード32に格納された復号対象のデータの続きをSRAM25に書き込む(ステップS272)。時間t34において、CPU10が割り込み信号を受信する(ステップS204)。時間t34から時間t35の期間TQ3において、CPU10は、SRAM22の電圧をライト電圧に変更する(ステップS240)。時間t35以降の期間TX2において、SRAM22はライト状態(ステップS254)である。時間t35から時間t36の期間TS3において、CPU10は、SRAM21の電圧をリード電圧に変更する(ステップS250)。時間t36以降の期間TX2において、SRAM21はリード状態(ステップS276)である。時間t36からt21の期間TR2において、CPU10は、SRAM25に格納されたフレームデータを復号しSRAM22に書き込む(ステップS242)。以後時間t20から繰り返す。その他の処理は実施例4と同じであり、説明を省略する。
実施例5によれば、ステップS208およびS260のように、CPU10は、ディスプレイ(外部機器)がSRAM21からデータの取得が終了したことを示す割り込み信号をトリガとしてSRAM21の電圧をライト電圧とする。ステップS204およびS250のように、CPU10は、割り込み信号をトリガとしてSRAM22の電圧をリード電圧とする。これにより、実施例4と同様に消費電力を削減することができる。
実施例4および5においては、復号した画像データをディスプレイ34に出力する例を説明したが、CPU10は、復号処理ではなく、データに何らかの処理を行なえばよい。例えば、外部機器はディスプレイ以外でもよい。このように、処理回路は、第2メモリからデータを読み出し、読み出したデータを処理する。第1メモリから別のデータを読み出し、読み出した別のデータを処理化してもよい。また、CPU10は、フレームデータ以外のデータを処理してもよい。
実施例2から5においては、メモリとしてSRAMを例に説明したが、実施例2から5をリード動作とライト動作とで供給される電圧を変更できるメモリに適用できることは言うまでもない。
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)第1メモリにデータを書き込み第2メモリからデータを読み出す第1期間と、第2メモリにデータを書き込み前記第1メモリからデータを読み出す第2期間とを交互に実行する処理回路と、前記第1メモリおよび前記第2メモリのいずれか一方のメモリの書き込み後かつ前記一方のメモリの読み出し前に、前記一方のメモリの電源電圧および基板バイアス電圧の少なくとも一方の電圧を第1電圧に設定し、前記一方のメモリの読み出し後かつ前記一方のデータの書き込み前に前記一方のメモリの前記少なくとも一方の電圧を前記第1電圧と異なる第2電圧に設定する制御回路と、を具備することを特徴とする電子回路。
(付記2)前記少なくとも一方の電圧は電源電圧であり、前記第2電圧は前記第1電圧より低いことを特徴とする付記1記載の電子回路。
(付記3)前記少なくとも一方の電圧は基板バイアス電圧であり、前記第2電圧は前記第1電圧より高いことを特徴とする付記1記載の電子回路。
(付記4)前記処理回路は、前記第1期間において、前記第2メモリからデータを読み出し、読み出したデータを処理、前記第2期間において、前記第1メモリから別のデータを読み出し、読み出した別のデータを処理することを特徴とする付記1から3のいずれか一項記載の電子回路。
(付記5)前記処理回路は、前記第1期間において、データを処理し、処理したデータを前記第1メモリに書き込み、前記第2期間において、別のデータを処理し、処理した別のデータを前記第2メモリに書き込むことを特徴とする付記1から3のいずれか一項記載の電子回路。
(付記6)前記処理回路は、前記第1期間において、前記第2メモリから画像データのフレームデータを読み出し、読み出したフレームデータを符号化し、前記第2期間において、前記第1メモリから前記画像データの別のフレームデータを読み出し、読み出した別のフレームデータを符号化することを特徴とする付記1から3のいずれか一項記載の電子回路。
(付記7)前記処理回路は、前記第1期間において、画像データのフレームデータを復号化し、復号したフレームデータを前記第1メモリに書き込み、前記第2期間において、前記画像データの別のフレームデータを復号し、復号した別のフレームデータを前記第2メモリに書き込むことを特徴とする付記1から3のいずれか一項記載の電子回路。
(付記8)前記処理回路は、前記一方のメモリへのデータの書き込みが終了したことを示す割り込み信号をトリガとして前記一方のメモリの前記少なくとも一方の電圧を前記第1電圧に設定することを特徴とする付記6記載の電子回路。
(付記9)前記処理回路は、前記割り込み信号をトリガとして前記第1メモリおよび第2メモリの他方のメモリの前記少なくとも一方の電圧を前記第2電圧に設定することを特徴とする付記8記載の電子回路。
(付記10)前記処理回路は、前記第1メモリおよび前記第2メモリの他方のメモリに格納されたデータの符号化が終了した後に前記他方のメモリの前記少なくとも一方の電圧を前記第2電圧に設定することを特徴とする付記8記載の電子回路。
(付記11)前記第1メモリに格納されたデータを符号化したデータが書き込まれ、前記第2メモリに格納するデータを符号化する際に読み出される第3メモリと、前記第2メモリに格納されたデータを符号化したデータが書き込まれ、前記第1メモリに格納するデータを符号化する際に読み出される第4メモリと、を具備し、前記一方のメモリへのデータの書き込みが終了したことを示す割り込み信号をトリガとして前記第3メモリおよび前記第4メモリのいずれか一方のメモリの電圧を前記第1電圧に設定し、前記第3メモリおよび前記第4メモリの他方のメモリの電圧を前記第2電圧に設定することを特徴とする付記9または10記載の電子回路。
(付記12)前記処理回路は、外部機器が前記一方のメモリからデータの取得が終了したことを示す割り込み信号をトリガとして前記一方のメモリの前記少なくとも一方の電圧を前記第2電圧に設定することを特徴とする付記7記載の電子回路。
(付記13)前記処理回路は、前記割り込み信号をトリガとして前記第1メモリおよび前記第2メモリの他方のメモリの前記少なくとも一方の電圧を前記第1電圧に設定することを特徴とする付記12記載の電子回路。
(付記14)前記処理回路は、前記第1メモリおよび前記第2メモリの他方のメモリに書き込むためのデータの復号が終了した後に他方のメモリの前記少なくとも一方の電圧を第1電圧に設定することを特徴とする付記12記載の電子回路。
(付記15)前記第1メモリおよび前記第2メモリはSRAMメモリを含むことを特徴とする付記1から14のいずれか一項記載の電子回路。