JP2019091175A - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents
情報処理装置、情報処理装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2019091175A JP2019091175A JP2017218477A JP2017218477A JP2019091175A JP 2019091175 A JP2019091175 A JP 2019091175A JP 2017218477 A JP2017218477 A JP 2017218477A JP 2017218477 A JP2017218477 A JP 2017218477A JP 2019091175 A JP2019091175 A JP 2019091175A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- memory
- sram
- unit
- image processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System (AREA)
Abstract
【課題】メモリにアクセスがあるタイミングのみ、メモリを通常動作状態にすることで、メモリの消費電力を最適に低減させる。【解決手段】本発明の画像処理装置は、消費電力の異なる複数の動作電力モードで動作可能なメモリと、メモリの動作電力モードを制御する制御手段とを有する機能モジュールと、少なくとも機能モジュールを含む複数のモジュールにより共用される共用メモリと、複数のモジュールと、共用メモリとを接続するバスと、バスを調停するバス調停手段とを備え、制御手段は、機能モジュールが共用メモリにアクセスする際に、機能モジュールとバス調停手段との通信を監視し、バスの使用可否に基づいて、メモリの動作電力モードを制御することを特徴とする。【選択図】図2
Description
本発明は、消費電力を低減するために、メモリモジュールの電力を制御する情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
従来、半導体集積回路の微細化が進んでおり、より多くの論理回路とメモリが1つのチップに集積されるようになってきている。また、これに関係して、チップ内のメモリ(例えば、SRAM(Static Random Access Memory))の容量が増大し、動作中のチップ全体の消費電力のうち、SRAMの消費電力の占める割合が増加する傾向にある。そのため、SRAMの消費電力を可能な限り低減させることが求められている。
但し、従来開発されてきたチップ内電源分離による電源遮断を、上述のチップに、同様に適用すると、電源遮断時にデータを保持し続けることができず、電源を遮断することができなかった。また、仮に電源を遮断した場合、電源を遮断してから復帰させた後に、SRAMに格納されていたデータを再び、SRAMに復元するために、多くの時間を要してしまうという課題があった。
そこで、このような課題に対応するため、SRAMに格納されたデータを保持した状態で、SRAMを低消費電力モードに遷移させる装置(即ち、SRAMの消費電力を低減させる装置)が開示されている(特許文献1)。この特許文献1の装置では、SRAMに動作電力モードを切り替えるための制御信号を入力するための入力ノードを具備させ、その制御信号に従って、低消費電力状態又は通常動作状態(以下、通常モード)に動作電力モードを切り替えている。なお、このような装置において、動作電力モードを切り替えるための制御信号は、一般にCPUから制御されるように構成される。
また、上述のチップはデジタル複合機等の画像処理装置に搭載される場合があり、チップにはスキャンやプリント等の各種画像処理回路が具備され、さらに、その画像処理回路の各々はシステムバスに接続される。この画像処理回路では、内部に実装されるSRAMに各種画像処理係数用のテーブルや中間画像保持用のバッファを構成させ、アクセス可能な共用メモリからシステムバスを介してSRAMに画像データを読み込むことで、画像処理を実行している。
即ち、画像処理回路内部に実装されるSRAMにおいては、画像処理回路に画像データが入力されてからアクセス(ライト又はリード)が開始され、画像処理回路が画像データの出力を完了するとアクセスが停止される。そのため、画像処理回路において画像データを入出力している間だけ、SRAMを通常モードで動作させることができれば、SRAMの消費電力を最適に低減させることができる。
但し、システムバスを複数の画像処理回路で共有する場合、システムバスを使用することができる画像処理回路を、調停回路等により時分割で切り替える必要がある。そのため、場合によっては、画像処理回路が画像データを要求するタイミングと、実際に画像データが共用メモリから読み出され画像処理回路に供給されるタイミングにタイムラグ(時間差)が発生する。
ここで、SRAMの消費電力を考慮すると、画像データが共用メモリから読み出される直前まで低消費電力状態にしておき、画像データを共用メモリから読み出すときに通常モードにすることが好ましい。しかしながら、従来の技術では、画像処理回路に画像データが供給されるタイミングを検知することができなかった。そのため、データが供給されるタイミングに合わせてSRAMの電力状態を制御することができず、適切な電力制御を行うことができなかった。即ち、SRAMの消費電力を最適に低減させることができなかった。加えて、上述の特許文献1のような装置、即ち、動作電力モードを切り替えるための制御信号をCPUにより制御する装置では、画像処理回路が動作しない期間に合わせたSRAMの電力制御を行うことができなかった。
本発明は、前記従来の問題に鑑みてなされたものであって、メモリにアクセスがあるタイミングのみ、メモリを通常動作状態にすることで、メモリの消費電力を最適に低減させることを目的とする。
上記目的を達成するために、本発明の画像処理装置は、消費電力の異なる複数の動作電力モードで動作可能なメモリと、前記メモリの動作電力モードを制御する制御手段とを有する機能モジュールと、少なくとも前記機能モジュールを含む複数のモジュールにより共用される共用メモリと、前記複数のモジュールと、前記共用メモリとを接続するバスと、前記バスを調停するバス調停手段とを備え、前記制御手段は、前記機能モジュールが前記共用メモリにアクセスする際に、前記機能モジュールと前記バス調停手段との通信を監視し、前記バスの使用可否に基づいて、前記メモリの動作電力モードを制御することを特徴とする。
本発明によれば、メモリにアクセスがあるタイミングのみ、メモリを通常動作状態にすることで、メモリの消費電力を最適に低減させることができる。
[第1実施形態]
以下、本発明の好適な実施の形態に関して、添付図面を参照しながら、詳細に説明する。なお、以下の実施形態は、本発明を限定するものではなく、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。また、以下では、本実施形態に係る画像処理装置を備えるものとして、スキャン、プリンタ、コピー等の複数の機能を有するMFP(Multi Function Printer)を例に説明する。
以下、本発明の好適な実施の形態に関して、添付図面を参照しながら、詳細に説明する。なお、以下の実施形態は、本発明を限定するものではなく、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。また、以下では、本実施形態に係る画像処理装置を備えるものとして、スキャン、プリンタ、コピー等の複数の機能を有するMFP(Multi Function Printer)を例に説明する。
図1は、本実施形態に係る画像処理装置100のブロック図である。CPU101(Central Processing Unit)は、画像処理装置100の制御部である。CPU101は、画像処理部における設定、スキャナ部108から入力される画像データやプリンタ部106に出力する画像データの制御等を行う。また、CPU101は、後述のDRAM112に展開されたOS(Operating System)やアプリケーションプログラムを実行する。
画像処理部(画像処理部A102、画像処理部B103、画像処理部C104)は、各種画像処理を実行する回路を備え、CPU101により設定、制御され、各種画像処理を実行する。画像処理部は、例えば、画像データの回転、変倍、色処理、トリミング、マスキング、2値変換、多値変換、白紙判定等の各種画像処理を個別に、又は組み合わせて実行する。
例えば、スキャナ部108によりスキャンされ、スキャナIF部107により画像処理装置100に読み込まれた画像データに対して、画像処理部は、補正、加工、編集等の画像処理を実行する。また、画像処理部は、プリンタ部106によりプリント出力(印刷)する上で、プリンタ部106に応じた画像処理、画像補正等の画像処理を実行する。
なお、画像処理部は、通常、MFPの有する機能毎に実装される。即ち、例えば、画像処理部A102はスキャナ用画像処理部として、画像処理部B103はプリント用画像処理部として、また、画像処理部C104はその他の画像処理を実行する画像処理部として実装される。
プリンタIF部105は画像出力デバイスであるプリンタ部106と接続するためのインタフェースであり、スキャナIF部107は画像入力デバイスであるスキャナ部108と接続するためのインタフェースである。画像処理装置100は、これらのデバイスを制御することで、画像データの読み取り処理やプリント出力処理を実行する。
ROMIF部109は、ブートROM(Read Only Memory)110にアクセスするためのインタフェースである。画像処理装置100の電源が投入されると、CPU101は、ROMIF部109によりブートROM110にアクセスすることで、ブートROM110のブートプログラムを実行する。
DRAM IF部111は、DRAM(Dynamic Random Access Memory)112にアクセスするためのインタフェースである。DRAM IF部111は、共用メモリであるDRAM112の設定や制御を行うためのレジスタを備えている。なお、このレジスタには、CPU101からアクセスすることができる。
ネットワークIF部113は、例えばLAN(Local Area Network)カード等で実現され、不図示のLAN等のネットワークに接続して外部装置との間でデバイス情報や画像データの入出力を行うインタフェースである。操作部IF部114は、ユーザにより操作部115において操作された操作指示の受付、及び操作結果の表示の制御等を行うインタフェースである。
バス調停部116は、システムバス117を介して行われるマスタとスレーブの通信を管理する。なお、バス調停部116は、バスブリッジとして実装されたり、DRAM IF部111に内蔵されたりもするが、本実施形態では、システムバスに接続される1モジュールとして取り扱い、図面(例えば、図1、図2等)に図示する。
バス調停部116は、複数のマスタがアクセスを要求している場合に、例えば、ラウンドロビン等の調停に関する所定のアルゴリズムに従って、時分割でバスを使用するマスタとスレーブの接続関係を切り替える。
ここで、例えば、DRAM112に対して、画像処理部A102、画像処理部B103、画像処理部C104の順に、アクセス要求が発行されるとする。この場合、バス調停部116は、所定のアルゴリズムに従って、先ず、画像処理部A102にバスの使用が可能であることを通知し、画像処理部A102をマスタ、DRAM112をスレーブとして接続する。画像処理部A102のアクセス処理が完了すると、バス調停部116は、所定のアルゴリズムに従って、次に、画像処理部B103にバスの使用が可能であることを通知し、画像処理部B103をマスタ、DRAM112をスレーブとして接続する。そして、画像処理部B103のアクセス処理が完了すると、バス調停部116は、所定のアルゴリズムに従って、画像処理部C104にバスの使用が可能であることを通知し、画像処理部C104をマスタ、DRAM112をスレーブとして接続する。
なお、画像処理部C104とDRAM112との通信中において、画像処理部A102及び画像処理部B103は、DRAM112に対して、新たなアクセス要求を発行することができる。また、その場合、バス調停部116は、画像処理部C104とDRAM112の通信が終了すると、所定のアルゴリズムに従って、次に、例えば、画像処理部A102をマスタ、DRAM112をスレーブとして通信を許可することを決定する(即ち、接続する)。このように、バス調停部116により、マスタとスレーブの関係が時分割で制御されることで、複数の機能モジュールが、1つのバスを共有できるように設計される。
なお、画像処理装置100において、各モジュールは、システムバス117により通信可能なように接続される。また、本実施形態では、システムバス117として、一般的に用いられるAXI(Advanced eXtensible Interface)バスを例に説明する。
次に、図2を用いて、画像処理部に実装されるSRAMに関するRSモードへの遷移や通常モードへの復帰を制御する構成について、詳細に説明する。図2は、本実施形態に係る画像処理装置100の画像処理部(画像処理部A102)のブロック図である。なお、RS(Resume Standby)モードとは低消費電力モードのことであり、また、本実施形態において、特に断りがない限り、SRAMに関するRSモードと通常モードを纏めて、「動作電力モード」という。
画像処理部A102は、図2に示されるように、ReadDMAC200、画像処理回路A201、WriteDMAC202、RS制御部210を備える。なお、read system bus230とwrite system bus231は、システムバス117として構成される。
ReadDMAC200は、画像処理部A102において画像処理の適用対象とする画像データを、read system bus230とDRAM IF部111を介することにより、DRAM112から読み込む。即ち、ReadDMAC200は、read address busの信号に基づいて、バス調停部116により調停された結果、バスの使用権を取得すると、データ転送開始のリクエストをread data busを介して送信し、画像データを取得する。なお、バス調停部116は、上述のように所定のプロトコルを用いることにより調停する。その他、read address busとread data busを纏めてread system bus230として図示する。また、read address busは、arvalid213、arready214、araddr(不図示)を含む。
また、システムバス(read system bus230)における通信は、例えば、1回のバス使用権を取得する毎に、16回分のデータを連続して転送するバースト転送により、所定の纏まった単位で行われる。そのため、ReadDMAC200は、少なくとも1度に転送されるデータを保持するために、一時画像バッファとしてSRAM203を実装している。
画像処理回路A201は、画像処理パイプラインを構成する。なお、本実施形態では、図2に示されるように、画像処理を実行するモジュールを1つの画像処理回路A201で構成させているが、複数の画像処理回路で構成させることもできる。また、画像処理回路A201は、その回路内部に、画像処理に用いる画像処理係数のテーブルを保持するため、また、一時画像バッファとして用いるため、SRAM204を備える。
WriteDMAC202は、write system bus231とDRAM IF部111を介して、DRAM112に画像処理部A102で実行された画像処理の結果を書き込む。即ち、WriteDMAC202は、write address busの信号に基づいて、バス調停部116が調停した結果、バスの使用権を取得すると、データ転送開始のリクエストをwrite data busを介して送信し、画像データを転送する。なお、ここでの画像データは、画像処理が実行された画像データであり、また、バス調停部116は、上述のように所定のプロトコルを用いることにより調停する。その他、write address busとwrite data busを纏めてwrite system bus231として図示する。また、write address busは、awvalid216、awready217、awraddr(不図示)を含む。
また、システムバス(write system bus231)における通信は、画像データの読み込みにおける通信と同様に、バースト転送により、所定の纏まった単位で行われる。そのため、WriteDMAC202は、少なくとも1度に転送するデータを保持するために、一時画像バッファとしてSRAM205を実装している。
RS制御部210は、P_RS_in206として出力するRS信号を制御することで、画像処理部A102に実装されるSRAM(SRAM203、SRAM204、SRAM205)の電力状態を制御する。RS制御部210は、システムバス117の使用権の有無と、画像処理部A102を構成する各回路の動作状態に基づいて、RS信号(P_RS_in 206)の制御タイミングを決定する。
なお、RS信号は、P_RS_in206として出力されると、P_RS_a207、P_RS_b208とデイジーチェーン接続された信号線により伝送され、さらにP_RS_out209として出力され、RS制御部210に入力される。即ち、RS制御部210と各SRAM(SRAM203、SRAM204、SRAM205)は、1つのRS信号によりリング状に接続される。そして、このようにリング状に構成させることにより、RS信号を各SRAMに入力するタイミングをSRAM間で遅延させ、複数のSRAMの電源(電力)が同時に立ち上がることによるラッシュカレントのピークを抑えることができる。なお、RS制御部210の内部構成、また、RS制御部210におけるRS信号の制御については、図4を用いて後述する。
その他、ReadDMAC200と画像処理回路A201とWriteDMAC202は、内部画像バスで接続される。内部画像バスは、有効データを示すvalid信号と、画像データを転送するdata信号と、画像データの転送先のモジュールがデータを受けれるか否かを示すbusy信号とで構成される。
なお、図2では、valid信号とdata信号を纏めて一つのバス(Imdata_in、Imdata_out)として図示し、busy信号(Imbus_busy_a220、Imbus_busy_wd222)のみ独立して示している。busy信号がアサートされると、busy信号の受信側のモジュールは、データの転送ができなくなる。即ち、場合によっては、画像処理部A102において画像処理を実行することができなくなる。
例えば、WriteDMAC202がバスの使用権を取得できない状態で、一時バッファとして備えられるSRAM205がフル状態になると、WriteDMAC202はimbus_busy_wd222をアサートする。そして、画像処理回路A201は、アサートされたimbus_busy_wd222を受信すると、WriteDMAC202へのデータの転送が可能な状態にあっても、データの転送を中断する。なお、画像処理回路A201は、この場合(即ち、アサートされたimbus_busy_wd222を受信した場合)において、直ちに画像処理を停止し、imbus_busy_a220をアサートするように制御することができる。また、この場合において、画像処理回路A201は、画像処理を可能な限り実行し、これ以上、実行することができなくなったタイミングで、imbus_busy_a220をアサートするように制御することもできる。
加えて、図2では、画像処理部A102を構成する画像処理回路(ReadDMAC200、画像処理回路A201、WriteDMAC202)の各々において、SRAM(SRAM203、204、205)を実装させる構成として説明した。しかしながら、ReadDMAC200、画像処理回路A201、WriteDMAC202を含むパイプラインの構成要素のうちの少なくとも一つにSRAMが実装されていれば、本発明を適用することができる。
次に、図3を用いて、SRAM(SRAM203)の構成について説明する。図3は、SRAMのブロック図である。図3に示されるように、SRAMにおいて、入力信号としてCS(Chip Select)261、WE(Write Enable)262、addr263、data_in264、AM_CLK266、及びP_RS_in206が入力される。また、出力信号としてdata_out265、及びP_RS_a207が出力される。
制御部251は、CS261やWE262からメモリ動作のタイミング信号を生成するタイミング制御回路を備える。また、制御部251は、ワードドライバ部252とカラム部253の電源をP_RS_in206に従って制御し、P_RS_in206がアサートされている場合に、ワードドライバ部252とカラム部253の電力を遮断する回路を備える。さらに、制御部251のRS制御以外の部分についても、P_RS_in206がアサートされている場合に、電源を遮断することが可能である。上述したように、P_RS_in206は、制御部251やバッファセル(遅延素子)で遅延させてP_RS_a207として出力される。
ワードドライバ部252はaddr信号をデコードして、メモリアレイ部254のどこの列(ロウ)を活性化させるかを決定するブロックである。ワードドライバ部252は、RSモードにおいて、制御部251により電力が遮断される。また、カラム部253はaddr263をデコードして、メモリアレイ部254のどこの行(カラム)を活性化させるかを決定するブロックである。カラム部253は、RSモードにおいて、制御部251により電力が遮断される。なお、本実施形態では、RSモードへの移行時に、ワードドライバ部252やカラム部253の電力遮断とクロック信号の発振とが重ならないようにすることで、メモリアレイ部254における電圧揺れを抑えている。
メモリアレイ部254は、スタティック型のメモリセルがマトリクス状に配置され、ワードドライバ部252とカラム部253で決定されるメモリセルにデータを保持する。なお、メモリアレイ部254は、RSモードにおいても、通電された状態が維持される。そのため、メモリアレイ部254は、RSモードにおいても、データを保持することができる。
図4は、RS制御部210の内部構成を示すブロック図である。RS制御部210は、図4に示されるように、内部処理状態判定部300とバス使用権判定部301を備える。以下、RS制御部210を構成する各ブロック(内部処理状態判定部300及びバス使用権判定部301)に関して、詳細に説明する。
内部処理状態判定部300は、ReadDMAC200、画像処理回路A201、WriteDMAC202の動作状態(内部処理ステータス)を判定する動作状態判定手段である。内部処理状態判定部300は、入力される種々の信号と、自身で管理するステータス情報に基づいて、RS信号(P_RS_in206)を制御することで、SRAM(SRAM203、SRAM204、SRAM205)の動作電力モードを制御する。
なお、内部処理状態判定部300は、動作電力モードを制御する上で、画像処理部A102がどのような処理状態にあるか、画像処理部A102の内部処理ステータスを管理(判定)する。ここで、画像処理部A102は、内部処理ステータスとして、少なくとも(1)データが無い状態、(2)処理状態、(3)ビジー状態を有しており、内部処理状態判定部300は、(1)乃至(3)のいずれかの内部処理ステータスで判定する。
以下、内部処理状態判定部300におけるRS信号(P_RS_in206)の制御、即ち、SRAMを通常モードに復帰させる制御とSRAMをRSモードに遷移させる制御について説明する。
先ず、SRAMを通常モードに復帰させる制御について説明する。内部処理状態判定部300は、バス使用権判定部301からread system bus condition signal302を受信すると、画像処理部A102の内部処理ステータスに応じて、SRAMを通常モードに復帰させるように制御する。具体的には、内部処理状態判定部300は、(1)データが無い状態で、read system bus condition signal302を受信すると、画像処理を開始するため、RS信号をデアサートし、SRAMを通常モードに遷移させる。
また、内部処理状態判定部300は、バス使用権判定部301からwrite system bus condition signal303を受信すると、内部処理ステータスに応じて、SRAMを通常モードに復帰させるように制御する。具体的には、内部処理状態判定部300は、(3)ビジー状態でwrite system bus condition signal303を受信すると、データの書き込みを開始するため、RS信号をデアサートし、SRAMを通常モードに遷移させる。
次に、SRAMをRSモードに遷移させる制御について、(3)ビジー状態においてRSモードに遷移させる制御と、DRAM112に対する画像データの書き込み処理が終了した場合においてRSモードに遷移させる制御を例に取り、順に説明する。
内部処理状態判定部300は、busy信号がアサートされている場合、(3)ビジー状態であり、画像処理が行われていないと判定する。なお、ここでのbusy信号とは、imbus_busy_a220とimbus_busy_wd222であり、いずれのbusy信号もアサートされている状態は、全ての画像処理回路において処理を実行することができない状態を示す。即ち、画像処理が実行されていない状態を示す。
この場合、内部処理状態判定部300は、画像処理部A102の内部処理ステータスに応じて、SRAMをRSモードに遷移させるように制御する。具体的には、内部処理状態判定部300は、(3)ビジー状態であり、画像処理が実行されていない状態と判定すると、P_RS_in206をアサートし、SRAMをRSモードに遷移させる。
続いて、DRAM112に対する画像データの書き込み処理が終了した場合に、SRAMをRSモードに遷移させる制御について説明する。内部処理状態判定部300は、画像処理回路A201からWriteDMAC202に接続される画像バスImdata_outのvalid信号であるImg_valid_out223を参照する。そして、ReadDMAC200により読み込まれた画像データの全てが、WriteDMAC202に入力されたか否かを判定する。
なお、判定にあたり、内部処理状態判定部300は、ReadDMAC200により読み込まれた画像データが、WriteDMAC202に入力されるときに、どの程度のデータ数になるかをリファレンスデータとして保持可能なように構成される。リファレンスデータは、設計時において固定値として設定することもできるが、画像サイズの変更処理等でデータ数が変動することを考慮し、内部処理状態判定部300に所定のレジスタを実装することで、可変値として設定することもできる。
この場合、内部処理状態判定部300は、WriteDMAC202に入力されるデータの数をカウントし、そのカウントした値(カウント値)とリファレンスデータを比較する。そして、内部処理状態判定部300は、カウント値がリファレンスデータと同一の値になると(一致すると)、ReadDMAC200により読み込まれたデータの全てがWriteDMAC202に入力されたと判定する。
さらに、内部処理状態判定部300は、その後において、WriteDMAC202から送信されるdmac condition signal224により、SRAM205の状態を判定する。即ち、SRAM205に画像データが格納されていないか否かを判定する。そして、内部処理状態判定部300は、SRAM205に画像データが格納されておらず、画像処理が行われないと判定すると、P_RS_in206をアサートして、SRAMをRSモードに遷移させる。
なお、内部処理状態判定部300は、ReadDMAC200により読み込まれた画像データの全てがWriteDMAC202に入力されたと判定しても、新規にReadDMAC200がバス使用権を取得した場合に、画像処理が継続されると判定する。
そして、このように判定すると、内部処理状態判定部300は、RS信号(P_RS_in206)をアサートしないように制御する。即ち、SRAMをRSモードに遷移させないように制御する。
また、この場合、内部処理状態判定部300は、新規に画像データが追加されることをデータとして保持する。具体的には、リファレンスデータに新規に追加される画像データの数を加算してもよい。或いは、カウント値がリファレンスデータと同一の値になった後、新規にカウントを開始し、読み込んだ回数分、繰り返しカウントすると、ReadDMAC200により読み込まれたデータの全てが、WriteDMAC202に入力されたと判定してもよい。
その他、補足として、内部処理状態判定部300は、ReadDMAC200がバスの使用権を取得できたか否かを、read system bus condition signal302がアサートされることで判定することができる。そのため、内部処理状態判定部300は、カウント値とリファレンスデータが同一の値になる以前に、ReadDMAC200がバスの使用権を取得できたか否かを判定することができる。
ここで、バス使用権判定部301における判定処理について説明を補足する。バス使用権判定部301は、上述のように、システムバス(read system bus230、write system bus231)を参照し、ReadDMAC200又はWriteDMAC202にバス使用権が割り当てられたことを判定する。即ち、バスの使用可否を判定する。
また、本実施形態では、システムバスとしてAXIバスを用いるが、ここで、AXIバスのバスプロトコルで、バス使用権がどのように割り当てられるのかについて、その概要を説明する。なお、Read用のバスプロトコルとWrite用のバスプロトコルは、アクセス要求開始からデータ転送開始までは同様であることから、ここではRead用のプロトコルで説明する。
read system bus230のread address busは、上述のように、arvalid213、arready214、及びaraddrを含む。AXIバスプロトコルにおいて、マスタ(ReadDMAC200)は、スレーブ(DRAM112)に対して、arvalid213と併せて、アクセスするスレーブのアドレス情報をaraddrで送信する。バス調停部116は、その情報を受信し、アクセス権を割り当てることが可能であれば、該当するマスタ(ReadDMAC200)のarready214をアサートする。
バス使用権判定部301は、read address busを構成するarvalid213とarready214を参照(監視)し、両方の信号のアサート状態を検知する。そして、バス使用権判定部301は、両方の信号がアサート状態にあることを検知すると、ReadDMAC200にバス使用権が割り当てられたと判定する。
即ち、スレーブへのアドレス転送が完了し、バス使用権判定部301がarvalid213とarready214の両方の信号に関してアサートされていることを検知すると、ReadDMAC200においてデータ転送開始のリクエストが発行可能になる。
なお、Writeについても同様に、バス使用権判定部301は、write address busを構成するawvalid216とawready217を参照(監視)し、両方の信号のアサート状態を検知する。そして、バス使用権判定部301は、両方の信号がアサート状態にあることを検知すると、WriteDMAC202にバス使用権が割り当てられたと判定する。
そして、バス使用権判定部301は、バス使用権が割り当てられたと判定すると、Readの場合は、read system bus condition signal302をアサートする。また、Writeの場合は、write system bus condition signal303をアサートする。これにより、内部処理状態判定部300にバスの使用権が割り当てられたことが通知され、内部処理状態判定部300は、画像処理部A102において、画像データのRead及び画像処理、又はWriteが開始されると判定する。
また、図4では、内部処理状態判定部300がRS信号を制御する仕様として説明したが、RS信号を制御する部分のみ分離し、内部処理状態判定部300が処理中と判定しているときのみ、RS信号をデアサートするように構成させてもよい。
次に、図5を用いて、画像処理装置100が1ページの画像を処理する場合の画像処理部A102の内部処理ステータスと、SRAMの動作電力モードとの関係を説明する。図5において、横軸は時間を示している。また、図5(a)は1ページ分の画像処理期間を、図5(b)は1ページ分の画像処理期間の一部分の期間における画像処理部A102の内部処理ステータスを示す。さらに、図5(c)は、図5(b)の画像処理部A102の内部処理ステータスに対応するSRAMの動作電力モードを示す。
ここで、図5(a)及び図5(b)に示されるように、1ページ分の画像処理を実行する上で、画像処理部A102は、常に動作(処理)しているわけではない。実際、図5(b)を局所的にみると、DRAM112と通信を繰り返しながら、その都度、画像処理を実行している。
これは、ReadDMAC200において一度に読み込めるデータ量が制限されているからであり、そのため、画像処理部A102は、画像データを部分的にReadし、そのReadした画像データに対する画像処理を実行し、さらに、それをWriteする。そして、この一連の動作を繰り返し実行することで、1ページ分の画像データに対する画像処理を実行する。
但し、図2において上述したように、本実施形態において、システムバスを時分割で共有させることから、ReadDMAC200やWriteDMAC202がバスアクセスを要求してから、データを転送するまでに待ち時間が発生する。
例えば、図5のタイミングA以前のような、ReadDMAC200が画像処理の対象とする画像データをDRAM112から読み出せず、画像処理部A102のSRAMに画像データが無いために、画像処理が動作していない状態がある。また、タイミングBからタイミングCに示されるビジー状態のような、WriteDMAC202がDRAM112にデータを書き込めないために、画像処理部A102内部にデータが溜まることになり、画像処理を進められない(動作できない)状態がある。さらに、画像処理部A102は、画像処理部A102に読み込んだ画像データの全てを処理し、DRAM112に書き出すと、タイミングDに示されるような、処理中からデータ無しの状態、即ち、画像処理を動作できない状態になる。
このように、画像処理部A102は、(1)データが無い状態、(2)処理状態、(3)ビジー状態の3つの内部処理ステータスを遷移させつつ、処理を実行する。また、その動作状態は、図4において上述したように、内部処理状態判定部300により判定される。なお、図5のタイミングAについては図6、タイミングBについては図7、タイミングCについては図8、タイミングDについては図9を用いて後述する。
次に、図5(b)と図5(c)に関して、簡単に内容を補足する。画像処理部A102において、内部処理ステータスが処理中(処理状態)以外の状態では、画像処理回路が動作していないことから、SRAMへのアクセスが発生しない。そのため、画像処理部A102が処理中以外の状態にある場合、画像処理部A102は、図5(c)に示されるように、SRAMの動作電力モードをRSモードに遷移させることで、省電力化を図ることとしている。
なお、SRAMの動作電力モードをRSモードから復帰させる場合、電力の供給やクロックの動作周波数を上昇させ、SRAMが使用可能な状態になるまでに、通常、所定の遅延時間が発生する。そのため、図5(c)に示されるように、RSモードからの復帰、即ち、RSモードと通常モードの間に、遷移時間を設定(挿入)している。
続いて、図6、図7、図8、図9のタイミングチャートを用いて、図5に示す各タイミング(タイミングA−D)で、画像処理部A102において実行される制御を、各タイミングの順序に従って説明する。なお、図6、図7、図8、図9のタイミングチャートでは、その一例として、上述したバースト転送により、8回分のデータを連続して転送する場合について説明するが、連続して転送するデータの回数分は、8回分に限定されることはない。また、図6、図7、図8、図9のタイミングチャートの各々において、その最下段に、SRAMの動作電力モードを図示しており、これにより、SRAMの動作電力モードの遷移状況の把握を容易にしている。
図6は、図5のタイミングAで、画像処理部A102において実行される制御を示す図である。より詳細には、SRAMの動作モードがRSモードである場合に、ReadDMAC200がDRAM112から画像データを取得し、画像処理を開始するために、SRAMの動作電力モードを通常モードに復帰(遷移)させる場合のタイミングチャートである。なお、図6に示す各信号の一部に関して、その仕様(詳細)を図2において説明していることから、ここでは、その重複している内容(信号)に関して、説明を省略する。
以下、図6において、所定の時間(タイミング(t0、t1、t2、t3、t4、t5、t6))に従って説明する。時間t0において、ReadDMAC200は、所望のデータが格納されているアドレスをアドレス情報としてaraddrにアサートすると同時に、arvalid213をアサートする。これにより、ReadDMAC200は、バス使用権のリクエストを行う。なお、このタイミングでは、SRAMの動作電力モードはRSモードである。また、ReadDMAC200によりaraddrにアサートされるアドレス情報は、CPU101により予め設定されたスタートアドレスに基づいて、ReadDMAC200により決定され、DRAM112へのアクセスが終了するまで自動で更新される。
時間t1は、画像処理部A102にバス使用権が割り当てられる場合の最短時間として示される。但し、時間t1では、arready214がアサートされておらず、システムバスが他のモジュールにより使用されていることから、バス使用権は割り当てられていない状態である。そのため、ReadDMAC200は、読み出し動作を行うことができず、SRAMの動作電力モードに関して、RSモードが維持される。
その後、時間t2において、バス使用権判定部301は、arvalid213とarready214が同時にアサートされていることを検知する。バス使用権判定部301は、read system bus condition signal302をアサートすることで、内部処理状態判定部300に、Readに関するバス使用権が割り当てられたことを通知する。なお、この時間t2において、SRAMの動作電力モードは、未だRSモードが維持された状態である。
時間t2でアサートされたread system bus condition signal302を受けると、時間t3において、内部処理状態判定部300で保持するレジスタ(不図示)において、処理中(処理状態)に変更する。さらに、内部処理状態判定部300は、RS信号(P_RS_in206)をデアサートする。RS信号(P_RS_in206)はデアサートされると、直ちにSRAM203に入力され、SRAM(SRAM203、SRAM204、SRAM205)において、動作電力モードの遷移が開始される。
なお、上述のように、SRAMの動作電力モードを遷移(復帰)させるにあたり、電力の供給やクロックの動作周波数を上昇させた場合、それらの状態変化が回路動作に及ぼす影響が小さくなるまで、所定時間、経過させる必要がある。即ち、SRAMが使用可能な状態になるまで、所定の遅延時間が発生する。また、この遅延時間(即ち、SRAMが使用可能な状態になるまでの時間)は、SRAMの設計仕様により異なるが、本実施形態では、その遅延時間を30nsecとして説明する。
そして、遅延時間が経過すると、時間t4において、デアサートしたRS信号が、P_RS_in206、P_RS_a207、P_RS_B208、P_RS_out209と伝達され、所定のレイテンシを持って戻ってくることを検知する。
なお、本実施形態において、RS制御部210にRS信号が入力されるタイミングで、デイジーチェーンを構成する全てのSRAM(SRAM203、SRAM204、SRAM205)が通常モードになっているように構成される。即ち、タイミングt4において、SRAMは、RSモードから通常モードに遷移されるように構成される。
また、内部処理状態判定部300は、デアサートした信号を受信すると、rd_start211により、ReadDMAC200にrready信号の出力が可能であることを通知し、データの読み出しが開始されるように制御する。
時間t5において、ReadDMAC200は、rd_start211信号による通知を受けて、rready信号を出力する。ここで、rready信号は、マスタがデータを受けられる状態になったことを示す信号であり、この信号をスレーブが受けると、有効データの出力を開始する。なお、rready信号は、read system bus230を構成するread data bus信号の一つである。
そして、時間t6より、ReadDMAC200は、DRAM112からDRAM IF部111とread system bus230を介して転送される有効データ(画像データ)を受信する。ReadDMAC200は、rvalid信号がアサートされている間に、rdata信号にアサートされるデータを画像データとして取り込む。ReadDMAC200は、画像データを取り込むとrlast信号を参照し、その後に、rlast信号がバースト転送の最後のデータと共にアサートされると、画像データの受信を終了する。即ち、ReadDMAC200は、rready信号をデアサートする。なお、rvalid信号、rdata信号、rlast信号は、rready信号と同様に、read system bus230を構成するread data bus信号の一つである。
以上のように、RS制御部210(内部処理状態判定部300)は、ReadDMAC200がDRAM112からデータを取得する場合に、システムバスの使用状況に基づいてRS信号を制御することで、SRAMの動作電力モードを制御することができる。したがって、例えば、バスの使用権が割り当てられず、バスアクセスまでの待ち時間が発生した場合でも、データの転送を依頼する直前までSRAMをRSモードに制御し、バスの使用権が割り当てられると、通常モードに遷移させるように制御することもできる。
図7は、図5のタイミングBで、画像処理部A102において実行される制御を示す図である。より詳細には、WriteDMAC202にバス使用権が割り当てられず、SRAM205がフル状態となり、さらに、パイプラインを構成する全てのモジュールがビジー状態となった場合に、SRAMをRSモードに遷移させる場合のタイミングチャートである。
以下、図7において、所定の時間(タイミング(t0、t1、t2、t3))に従って説明する。時間t0において、WriteDMAC202は、awaddrに所望のデータを格納するためのアドレス情報をアサートすると同時に、awvalid216をアサートする。これにより、WriteDMAC202は、バス使用権のリクエストを行う。
但し、時間t1において、awready217がアサートされず、バス使用権が割り当てられていない。また、時間t0から時間t1の間では、WriteDMAC202に画像処理回路A201から画像データが供給され続けている。即ち、WriteDMAC202は、SRAM205に画像処理回路A201から供給されたデータを書き込み続け、また、それらをDRAM112に出力できない状態となっている。
そして、DRAM112にデータを書き込むことができないことにより、SRAM205がフル状態となると、WriteDMAC202は、imbus_busy_wd222をアサートし、これ以上データを受け入れることができないことを通知する。即ち、ビジー状態であることを通知する。
時間t2において、imbus_busy_a220及びimbus_busy_wd222より、内部処理状態判定部300は、ReadDMAC200、画像処理回路A201、及びWriteDMAC202の全てがビジー状態となったことを検知する。内部処理状態判定部300は、全てのモジュールがビジー状態となったことを検知すると、内部処理ステータスを処理中(処理状態)からビジー状態に遷移させる。
これは、WriteDMAC202がDRAM112にデータを書き込めず、データがパイプラインに詰まった状態となり、DRAM112への書き込みが開始されない限り、画像処理を進めることができない状態を示す。また、時間t2において、内部処理状態判定部300は、RS信号(P_RS_in206)をアサートし、RSモードへの遷移を開始するように制御する。
その後、時間t3において、内部処理状態判定部300は、時間t2でアサートしたRS信号がP_RS_out209まで到達したことを検知する。なお、アサートされたRS信号がP_RS_out209まで到達すると、SRAM(SRAM203、SRAM204、SRAM205)の動作電力モードは、全てRSモードとなっている。
以上のように、RS制御部210は、WriteDMAC202にバスの使用権が割り当てられず、SRAM205がフル状態となり、その後パイプラインを構成する全てのモジュールがビジー状態になると、SRAMをRSモードに遷移させることができる。
図8は、図5のタイミングCで、画像処理部A102において実行される制御を示す図である。より詳細には、SRAMの動作電力モードがRSモードである場合に、WriteDMAC202がDRAM112にデータの書き込みを開始するために、SRAMの動作電力モードを通常モードに復帰(遷移)させる場合のタイミングチャートである。WriteDMAC202がデータの書き込みを開始する場合、SRAMの動作モードがRSモードであるとき、画像処理部A102のパイプライン全体はビジー状態にあるので、内部処理ステータスもビジー状態となっている。
以下、図8において、所定の時間(タイミング(t0、t1、t2、t3、t4、t5))に従って説明する。時間t0において、WriteDMAC202にはバスの使用権が割り当てられておらず、awvalid216はアサートされた状態になっている。なお、内部処理状態判定部の内部処理ステータスはビジー状態となっており、また、SRAMの動作電力モードはRSモードとなっている。
そして、時間t1において、バス使用権判定部301は、awvalid216とawready217が同時にアサートされていることを検知すると、write system bus condition signal303をアサートする。これにより、バス使用権判定部301は、内部処理状態判定部300にバス使用権が割り当てられたことを通知する。
時間t1でアサートされたwrite system bus condition signal303を受けると、時間t2において、内部処理状態判定部300で保持するレジスタ(不図示)において、処理中(処理状態)に変更する。さらに、内部処理状態判定部300は、RS信号(P_RS_in206)をデアサートする。RS信号(P_RS_in206)はデアサートされると、直ちにSRAM203に入力され、SRAM(SRAM203、SRAM204、SRAM205)において、動作電力モードの遷移が開始される。なお、上述のように、SRAMの動作電力モードを遷移(復帰)させるにあたり、所定の遅延時間が発生し、ここでは、その遅延時間を30nsecとして説明する。
そして、遅延時間が経過すると、時間t3において、デアサートしたRS信号が、P_RS_in206、P_RS_a207、P_RS_B208、P_RS_out209と伝達され、所定のレイテンシを持って戻ってくることを検知する。
なお、本実施形態において、RS制御部210にRS信号が入力されるタイミングで、デイジーチェーンを構成する全てのSRAM(SRAM203、SRAM204、SRAM205)が通常モードになっているように構成される。即ち、タイミングt3において、SRAMは、RSモードから通常モードに遷移されるように構成される。
また、内部処理状態判定部300は、デアサートした信号を受信すると、wr_start212により、WriteDMAC202にwready信号の出力が可能であることを通知し、データの書き込みが開始されるように制御する。
時間t4において、WriteDMAC202は、wr_start212信号による通知を受けて、wvalid信号を出力する。ここで、wvalid信号は、マスタがデータを出力できる状態になったことを示す信号であり、この信号の出力に合わせて、データをwdataにアサートする。なお、wvalid信号は、write system bus231を構成するwrite data bus信号の一つである。
さらに、時間t5において、WriteDMAC202は、wready信号を受信し、1つ目のデータの転送を完了すると、次に転送(送信)するデータをwdataにアサートする。そして、バースト転送の最後のデータと同時に、wlast信号をアサートすることで、データ転送を終了する。
以上のように、RS制御部210(内部処理状態判定部300)は、WriteDMAC202がDRAM112にデータを書き込む場合に、システムバスの使用状況に基づいてRS信号を制御することで、SRAMの動作電力モードを制御することができる。
図9は、図5のタイミングDで、画像処理部A102において実行される制御を示す図である。より詳細には、ReadDMAC200により読み込まれたデータの全てが処理され、さらに、WriteDMAC202によりDRAM112への出力が完了した場合に、SRAMをRSモードに遷移させる場合のタイミングチャートである。即ち、画像処理部A102の内部において、処理の対象とするデータが無くなった場合に、SRAMをRSモードに遷移させる場合のタイミングチャートである。
以下、図9において、所定の時間(タイミング(t0、t1、t2、t3、t4、t5))に従って説明する。時間t0において、WriteDMAC202は、DRAM112にデータを出力するために、awvalid216をアサートし、また、データの書き込む場所(即ち、DRAM112のアドレス)をawaddrにアサートする。なお、ここで、内部処理状態判定部300の内部処理ステータスは処理中となっており、また、SRAMの動作電力モードは通常モードとなっている。
時間t1において、バス使用権判定部301は、awvalid216とawready217が同時にアサートされていることを検知する。また、時間t1において、WriteDMAC202は、直ちに書き込み要求を開始するため、wvalidをアサートすると共に、DRAM112に書き込むデータをwdataにアサートする。
その後、時間t2において、WriteDMAC202は、wreadyを受信すると、転送した有効データ(画像データ)が書き込まれたことを認識(検知)し、次の有効データをwdataにアサートする。WriteDMAC202は、このように、画像データのアサートを、書き込み終了タイミングとなる時間t3まで継続して実行する。
そして、時間t3になると、WriteDMAC202は、最後の画像データをwdataにアサートすると共に、最後の画像データであることを示すwlast信号をアサートする。スレーブ(DRAM112)は、画像データと併せて、wlast信号を受信すると、画像処理部A102からのバースト転送が終了したものと認識(検知)する。
最後の画像データの転送が完了すると(即ち、時間t4において)、WriteDMAC202は、write data busの各々の信号をデアサートする。このように、wreadyとwvalidとwlastが同時にアサート状態にある場合に、最後の画像データが転送されたと判定する。
また、内部処理状態判定部300は、時間t3においてアサートされたdmac condition signal224を検知すると、時間t4においてRS信号(P_RS_in206)をアサートする。これにより、SRAMの動作電力モードに関して、RSモードへの遷移が開始される。
その後、時間t5において、内部処理状態判定部300は、時間t4でアサートしたRS信号がP_RS_out209まで到達したことを検知する。なお、アサートされたRS信号がP_RS_out209まで到達すると、SRAM(SRAM203、SRAM204、SRAM205)の動作電力モードは、全てRSモードとなっている。
以上のように、RS制御部210は、ReadDMAC200により読み込まれたデータの全てが処理され、さらに、WriteDMAC202により出力が完了すると、SRAMをRSモードに遷移させることができる。
図10は、バス使用権判定部301における制御の手順を示すフローチャートである。バス使用権判定部301は、arvalid213とarready214がアサート状態となっているか否かを判定する(S901)。
そして、上述の図6の時間t2の状態に示されるように、アサート状態となっていると判定すると(S901 Yes)、バス使用権判定部301は、処理をステップS903に移行する。また、アサート状態となっていないと判定すると(S901 No)、バス使用権判定部301は、処理をステップS902に移行する。
ステップS902において、バス使用権判定部301は、awvalid216とawready217がアサート状態となっているか否かを判定する。そして、上述の図8、図9の時間t1の状態で示されるように、アサート状態となっていると判定すると(S902 Yes)、バス使用権判定部301は、処理をステップS904に移行する。また、アサート状態となっていないと判定すると(S902 No)、バス使用権判定部301は、処理をステップS901に返す。
ステップS903において、バス使用権判定部301は、read system bus condition signal302をアサートし、内部処理状態判定部300にreadに関するバス使用権が割り当てられたことを通知する。なお、このステップS903における処理は、上述の図6の時間t2において実行される処理である。
また、ステップS904において、バス使用権判定部301は、write system bus condition signal303をアサートし、内部処理状態判定部300にwriteに関するバス使用権が割り当てられたことを通知する。なお、このステップS904における処理は、上述の図8の時間t1において実行される処理である。
図11は、内部処理状態判定部300における制御の手順を示すフローチャートである。内部処理状態判定部300は、その内部で管理する内部処理ステータスに関して、(1)データが無い状態を示しているか否かを判定する(S1001)。そして、内部処理状態判定部300は、(1)データが無い状態であると判定すると処理をステップS1002に移行し、(1)データが無い状態ではないと判定すると処理をステップS1004に移行する。なお、ここで、(1)データが無い状態とは、上述の図6のt3までの状態として示される。
ステップS1002において、内部処理状態判定部300は、read system bus condition signal302を確認する。そして、ステップS1003において、内部処理状態判定部300は、read system bus condition signal302がアサートされていると判定すると(S1003 Yes)、処理をステップS1007に移行させる。また、内部処理状態判定部300は、アサートされていないと判定すると(S1003 No)、処理をステップS1002に返す。なお、read system bus condition signal302がアサートされている場合は、上述の図6の時間t3の状態として示され、アサートされていない場合は、上述の図6の時間t3までの状態として示される。
また、ステップS1004において、内部処理状態判定部300は、内部処理ステータスが(3)ビジー状態であるか否かを判定する。なお、(3)ビジー状態とは、上述のように、画像処理部A102を構成する全てのモジュールがビジー状態であることを示す。内部処理状態判定部300は、(3)ビジー状態であると判定すると(S1004 Yes)、処理をステップS1005に移行させる。また、内部処理状態判定部300は、(3)ビジー状態ではないと判定すると(S1004 No)、(2)処理状態と判定し、処理をステップS1013に移行させる。なお、ここでの処理は、上述の図7の時間t2の状態として示される。
ステップS1005において、内部処理状態判定部300は、write system bus condition signal303を確認する。そして、ステップS1006において、内部処理状態判定部300は、write system bus condition signal303アサートされていると判定すると(S1006 Yes)、処理をステップS1007に移行させる。また、内部処理状態判定部300は、アサートされていないと判定すると(S1006 No)、処理をステップS1005に返す。なお、write system bus condition signal303がアサートされている場合は、上述の図8の時間t2の状態として示される。
ステップS1007において、内部処理状態判定部300は、内部処理ステータスを(2)処理状態(処理中)に変更する。なお、ここでの処理は、例えば、上述の図6の時間t3において実行される。次に、read system bus condition signal302、又はwrite system bus condition signal303がアサートされたことを受けて、RS信号をデアサートする(S1008)。即ち、内部処理状態判定部300は、P_RS_in206をデアサートする。また、ここでの処理は、上述の図6の時間t3、また、上述の図8の時間t2で実行される。
次に、内部処理状態判定部300は、RS信号(P_RS_out209)のデアサートを検知(受信)する(S1009)。なお、ここでの処理は、上述の図6の時間t4で実行される。
内部処理状態判定部300は、P_RS_out209のデアサートを検知すると、ステップS1010の処理を実行する。即ち、内部処理状態判定部300は、read system bus condition signal302、又はwrite system bus condition signal303のいずれによりRS信号がデアサートされたのか判定する。
内部処理状態判定部300は、read system bus condition signal302により、RS信号がデアサートされたと判定すると、処理をステップS1011に移行させる。また、内部処理状態判定部300は、write system bus condition signal303によりRS信号がデアサートされたと判定すると、処理をステップS1012に移行させる。
内部処理状態判定部300は、ステップS1009におけるRS信号(P_RS_out209)のデアサートを受けて、ReadDMAC200にrreadyの出力を許可するために、rd_start211をアサートする(S1011)。なお、この処理は、上述の図6の時間t4において実行され、また、この処理が実行されると、内部処理状態判定部300は、処理をステップS1013に移行させる。
また、内部処理状態判定部300は、ステップS1009におけるRS信号(P_RS_out209)のデアサートを受けて、WriteDMAC202にwvalidの出力を許可するために、wr_start212をアサートする(S1012)。なお、この処理は、上述の図8の時間t3において実行され、また、この処理が実行されると、内部処理状態判定部300は、処理をステップS1013に移行させる。
ステップS1013では、内部処理ステータスが(2)処理状態であることから、内部処理状態判定部300は、全てのデータがWriteDMAC202に格納されたか否かを判定する。なお、ステップS1001、ステップS1004において判定された結果として、又は、ステップS1011、若しくはステップS1012を実行した結果として、実行される。また、ステップS1013では、図4において上述した判定方法により判定する。
内部処理状態判定部300は、全てのデータがWriteDMAC202に格納されたと判定すると(S1013 Yes)、処理をステップS1014に移行させる。また、内部処理状態判定部300は、全てのデータがWriteDMAC202に格納されていないと判定すると(S1013 No)、処理をステップS1016に移行させる。なお、この処理は、上述の図9の時間t3以前に実行させる。
次に、内部処理状態判定部300は、WriteDMAC202に格納されたデータが全て出力されたか否かを判定する(S1014)。内部処理状態判定部300は、データが全て出力されたと判定すると(S1014 Yes)、処理をステップS1015に移行させる。また、内部処理状態判定部300は、データが全て出力されていないと判定すると(S1014 No)、処理をステップS1014に返し、ステップS1014における処理を繰り返し、実行する。なお、この処理(より正確には、WriteDMAC202に格納されたデータが全て出力されたと判定される処理)は、上述の図9の時間t4で示される。
そして、内部処理状態判定部300は、データが全て出力されたと判定すると、バス使用権判定部301により、read system bus condition signal302がアサートされているか否かを判定する(S1015)。内部処理状態判定部300は、read system bus condition signal302がアサートされていると判定すると、新規にデータが読み込まれ、(2)処理状態を継続させるため、処理をステップS1013に返す。また、read system bus condition signal302がアサートされていないと判定すると、処理をステップS1017に移行する。
ステップS1017において、内部処理状態判定部300は、全てのデータがWriteDMAC202に格納され、さらに出力されたという検知結果を受けて、内部処理ステータスを(1)データが無い状態に変更する。なお、この処理は、上述の図9の時間t4で実行される。
また、上述のステップS1013において、全てのデータがWriteDMAC202に格納されていないと判定すると(S1013 No)、内部処理状態判定部300は、busy信号の全てがアサートされているか否かを判定する(S1016)。即ち、内部処理状態判定部300は、画像処理が実行できない状態になっているか否かを判定する。
内部処理状態判定部300は、busy信号の全てがアサートされていると判定すると(S1016 Yes)、即ち、画像処理を実行できないと判定すると、処理をステップS1018に移行する。また、busy信号の全てがアサートされていないと判定すると(S1016 No)、即ち、画像処理を実行できると判定すると、処理をステップS1013に返す。なお、画像処理を実行できない状態になっているという判定は、例えば、上述の図7の時間t2で実行される。
内部処理状態判定部300は、busy信号の全てがアサートされていることを受けて、内部処理ステータスを(3)ビジー状態に変更する(S1018)。なお、この処理は、上述の図7の時間t2で実行される。
そして、ステップS1017、又はステップS1018を実行すると、即ち、内部処理ステータスが(1)データが無い状態、又は(3)ビジー状態に変更されると、内部処理状態判定部300は、RS信号をデアサートする(S1019)。これにより、内部処理状態判定部300は、画像処理部A102のSRAMをRSモードに遷移させる。なお、この処理は、上述の図7の時間t2、図9の時間t4で実行される。
内部処理状態判定部300は、RS信号(P_RS_in206)をデアサートすると、RS信号(P_RS_out209)のデアサートを検知する(S1020)。なお、この処理は、上述の図7の時間t3、図9の時間t5で実行される。また、このステップS1020における処理で、図11に示す処理は終了する。
以上のように、システムバスの使用状況を判定し、バスアクセスの直前に、SRAMの動作電力モードを低消費電力モードであるRSモードから通常モードに遷移(復帰)させるように制御することができる。また、画像処理中において、画像処理回路の停止期間(即ち、画像処理回路が動作せず、SRAMへのアクセスが発生しない期間)を判定し、その停止期間に動作電力モードをRSモードに遷移させるように制御することができる。このように動作させることで、より低消費電力な画像処理装置を実現することができる。
[第2実施形態]
第1実施形態では、画像処理部の内部に、内部処理状態判定部300とバス使用権判定部301を実装し、バスのアクセス時に通常モードに復帰させ、かつ必要なタイミングでRSモードに遷移させることで、低消費電力で画像処理を実行できることを示した。
第1実施形態では、画像処理部の内部に、内部処理状態判定部300とバス使用権判定部301を実装し、バスのアクセス時に通常モードに復帰させ、かつ必要なタイミングでRSモードに遷移させることで、低消費電力で画像処理を実行できることを示した。
そこで、第2実施形態では、SRAMを備える機能モジュールに関して、全体として動作電力モードの遷移を制御することで、動作電力モードの遷移時に発生する電源の揺らぎや、ラッシュカレントの影響を受けないようにする。
図12は、第2実施形態に係る画像処理装置100のブロック図である。第2実施形態に係る画像処理装置100は、第1実施形態とは異なり、SRAM電力状態制御部1100、及びSRAM電力状態制御部1100と画像処理装置100を構成する各機能モジュールとを接続するSRAM制御バス1101をさらに備える。
SRAM電力状態制御部1100は、SRAM制御バス1101を介して、SRAMを備えた各機能モジュールから、SRAMの動作電力モードを遷移させるためのリクエスト(即ち、遷移開始要求)を受けられるように構成される。SRAM電力状態制御部1100は、そのリクエストを受けると、動作電力モードが遷移中のSRAMの有無を確認(判定)し、動作電力モードの遷移が発生していない場合に、動作電力モードの遷移の許可をその該当する機能モジュールに発行する。即ち、SRAM電力状態制御部1100は、ある機能モジュールからリクエストを受けると、その機能モジュール(SRAM)における動作電力モードの遷移を、複数の機能モジュール間で調整することで、外部より制御する外部制御手段として機能する。
なお、図12において、画像処理部A102、画像処理部B103、画像処理部C104は、その内部に画像処理用のSRAMを、また、プリンタIF部105、スキャナIF部107、操作部IF部114も、一時バッファ用のSRAMを備える。また、SRAMを備える各機能モジュールは、SRAM電力状態制御部1100とSRAM制御バス1101(後述のsram stat change req、及びsram stat change ack)で接続される。
次に、図13を用いて、SRAM制御バス1101を構成する信号について説明する。図13は、RS制御部210の内部構成を示すブロック図であり、ここでは、図4との差分について説明する。
上述のように、SRAM電力状態制御部1100は、画像処理部に備えられるSRAMを制御することができるように、SRAM制御バス1101により、画像処理部の内部処理状態判定部と接続される。即ち、SRAM電力状態制御部1100は、SRAM制御バス1101を構成するsram stat change A req1200と、sram stat change A ack1201により、内部処理状態判定部A1204と接続される。また、SRAM電力状態制御部1100は、SRAM制御バス1101を構成するsram stat change B req1202と、sram stat change B ack1203により、内部処理状態判定部B1205と接続される。
このように、第2実施形態では、第1実施形態の内部処理状態判定部300にSRAM制御バス1101(sram stat change req、及びsram stat change ack)を付加し、SRAMの動作電力モードを制御する。具体的な制御として、先ず、内部処理状態判定部は、RS信号を制御する前に、sram stat change reqを介して、SRAM電力状態制御部1100に、動作電力モードを遷移させる上で、その許可を取得するためのリクエストを送信する。次に、内部処理状態判定部は、SRAM電力状態制御部1100から、sram stat change ackを介して、動作電力モードの遷移させる上での許可を取得すると、RS信号(P_RS_in206)を制御する。
図14は、内部処理状態判定部A1204における制御の手順を示すフローチャートである。なお、内部処理状態判定部A1204に関して、第1実施形態の内部処理状態判定部300にSRAM制御バス1101が付加されること以外、同様であることから、図14では、図11のフローチャートに、本実施形態に関連する処理を追加した。
具体的には、図11のフローチャートにおいて、内部ステータス情報を変更し、RS信号(P_RS_in206)を制御する直前に、SRAM電力状態制御部1100にリクエストを送信する制御が処理として追加されている。即ち、図14において、ステップS1004、S1017、S1018の前に、処理B(図14(b))を実行している。また、図14に示す処理は、内部処理状態判定部B1205においても同様である。
続いて、処理Bについて説明する。内部処理状態判定部A1204は、read system bus condition signal302がアサートされていると判定すると、sram stat change A req1200をアサートする(S1301)。即ち、内部処理状態判定部A1204は、sram stat change A req1200をアサートすることで、SRAM電力状態制御部1100に、動作電力モードを遷移させる上で、その許可を取得するためのリクエストを送信する。なお、内部処理状態判定部A1204は、write system bus condition signal303がアサートされていると判定した場合も、同様に、SRAM電力状態制御部1100にリクエストを送信する。
内部処理状態判定部A1204は、sram stat change A req1200をアサートすると、SRAM電力状態制御部1100によりsram stat changeA ack1201がアサートされたか否かを判定する(S1302)。内部処理状態判定部A1204は、sram stat changeA ack1201がアサートされていれば、処理Bを終了させ、次の処理に移行し、アサートされていなければ、ステップS1302をアサートされるまで繰り返し実行する。なお、処理Bを終了すると、内部処理ステータスの変更と、各々の状態に応じて、RS信号(P_RS_in206)の制御が実行され、SRAMの動作電力モードの遷移が実行される。
次に、図15のフローチャートを用いて、SRAM電力状態制御部1100における制御の手順を説明する。SRAM電力状態制御部1100は、sram stat change A req1200がアサートされているか否かを判定する(S1401)。SRAM電力状態制御部1100は、sram stat change A req1200がアサートされている場合、処理をステップS1402に移行させ、また、アサートされていない場合、処理をステップS1404に移行させる。
ステップS1402において、SRAM電力状態制御部1100は、動作電力モードの変更をリクエストした画像処理部A102以外の機能モジュールで、動作電力モードの遷移が行われているか否かを判定する。このように判定することで、同時に、動作電力モードを遷移するSRAMの量を制御することが可能となり、ラッシュカレント等による回路の誤動作を防止することができる。
なお、ステップS1402において、動作電力モードの遷移が行われているSRAMがある場合、そのSRAMの動作電力モードの遷移が終了するまで、動作電力モードの遷移が行われている機能モジュール(SRAM)があるか否か判定する。そして、SRAM電力状態制御部1100は、動作電力モードの遷移が行われているSRAMがないと判定すると(S1402 No)、処理をステップS1403に移行させる。
ステップS1403において、SRAM電力状態制御部1100は、リクエストを送信した画像処理部A102に対して、動作電力モードの遷移が可能と判定し、sram stat changeA ack1201をアサートする。
SRAM電力状態制御部1100は、sram stat changeA ack1201がアサートされると、SRAMの動作電力モードの遷移を開始し、その後、動作電力モードの遷移が終了するか否かを判定する(S1407)。なお、各機能モジュールのSRAMに関して、動作電力モードの遷移が終了するまでに必要とされる時間は、各機能モジュールに搭載されるSRAMのサイズによって異なるため、設計時において予め設定することができる。また、SRAM電力状態制御部1100は、SRAMの動作電力モードの遷移が終了するまで、ステップS1407の処理を繰り返し実行する。
また、sram stat change A req1200がアサートされていないと、ステップS1404において、SRAM電力状態制御部1100は、sram stat change B req1202がアサートされたか否かを判定する。SRAM電力状態制御部1100は、sram stat change B req1202がアサートされている場合、処理をステップS1405に移行させ、また、アサートされていなければ、図15に示す処理を終了させる。
ステップS1405において、SRAM電力状態制御部1100は、ステップS1402と同様に、動作電力モードの遷移をリクエストした画像処理部B103以外の機能モジュールで、動作電力モードの遷移が行われているか否かを判定する。
なお、ステップS1405において、動作電力モードの遷移が行われているSRAMがある場合、そのSRAMの動作電力モードの遷移が終了するまで、動作電力モードの遷移が行われている機能モジュール(SRAM)があるか否か判定する。そして、SRAM電力状態制御部1100は、動作電力モードの遷移が行われているSRAMがないと判定すると(S1405 No)、処理をステップS1406に移行させる。
ステップS1406において、SRAM電力状態制御部1100は、リクエストを送信した画像処理部B103に対して、動作電力モードの遷移が可能と判定し、sram stat change B ack1203をアサートする。
SRAM電力状態制御部1100は、sram stat change B ack1203がアサートされると、SRAMの動作電力モードの遷移を開始し、その後、動作電力モードの遷移が終了するか否かを判定する(S1407)。SRAM電力状態制御部1100は、SRAMの動作電力モードの遷移が終了するまで、ステップS1407の処理を繰り返し実行し、SRAMの動作電力モードの遷移が終了すると、図15に示す処理を終了する。
以上のように、画像処理装置100全体の動作電力モードを参照しながらRS信号を制御することで、動作電力モードの遷移時に発生する電源の揺らぎや、ラッシュカレントの影響を受けずに、SRAMの動作電力モードを適切に制御することができる。
なお、本実施形態では、動作モードが遷移することのみをトリガーとして制御する仕様として示したが、動作モードが通常モードへの遷移なのか、RSモードへの遷移なのかを判定した上で、制御する仕様としてもよい。また、動作電力モードの遷移対象とする機能モジュールを、画像処理装置100全体で1つになるように制御したが、電源の揺らぎや、ラッシュカレントの影響が発生しない範囲で、2つ以上の機能モジュールを遷移させるように制御してもよい。例えば、動作電力モードを遷移させることが可能なSRAMの数(即ち、メモリサイズ)を予め保持しておき、そのメモリサイズを超えないことを条件に、SRAMの動作電力モードの遷移を許可するように制御してもよい。
[その他の実施形態]
なお、本発明の目的は、以下の処理を実行することによっても達成することができる。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。また、この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
なお、本発明の目的は、以下の処理を実行することによっても達成することができる。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。また、この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、上述の実施形態では、情報処理装置が画像処理装置である場合を、その一例として説明した。しかしながら、消費電力の異なる複数の動作電力モードで動作可能なメモリを有する機能モジュール、共用メモリ、及びバス調停部がバスに接続される構成を備えた装置であれば、同様に制御することで、本発明を適用することができる。
102 画像処理部A
112 DRAM
116 バス調停部
117 システムバス
203 SRAM
210 RS制御部
112 DRAM
116 バス調停部
117 システムバス
203 SRAM
210 RS制御部
Claims (14)
- 消費電力の異なる複数の動作電力モードで動作可能なメモリと、前記メモリの動作電力モードを制御する制御手段とを有する機能モジュールと、
少なくとも前記機能モジュールを含む複数のモジュールにより共用される共用メモリと、
前記複数のモジュールと、前記共用メモリとを接続するバスと、
前記バスを調停するバス調停手段と
を備え、
前記制御手段は、前記機能モジュールが前記共用メモリにアクセスする際に、前記機能モジュールと前記バス調停手段との通信を監視し、前記バスの使用可否に基づいて、前記メモリの動作電力モードを制御することを特徴とする情報処理装置。 - 前記制御手段は、前記バスの使用が可能であると判定した場合に、前記メモリの動作電力モードを低消費電力モードから通常モードに遷移させるように制御することを特徴とする請求項1に記載の情報処理装置。
- 前記機能モジュールは、
前記共用メモリからデータの読み込みを制御する読み込み制御手段と、
前記共用メモリへのデータの書き込みを制御する書き込み制御手段と
をさらに有し、
前記制御手段は、前記読み込み制御手段と前記バス調停手段との通信及び前記書き込み制御手段と前記バス調停手段との通信を監視し、前記読み込み制御手段又は前記書き込み制御手段が前記バス調停手段からのバスの使用を許可する信号を受信したことを検知することで、前記バスの使用が可能であると判定することを特徴とする請求項2に記載の情報処理装置。 - 前記機能モジュールは前記機能モジュールの所定の機能を実行する論理回路をさらに備え、
前記制御手段は前記論理回路の動作状態を判定する動作状態判定手段をさらに有し、
前記制御手段は、前記動作状態判定手段により前記論理回路が動作していないと判定されると、前記メモリの動作電力モードを前記通常モードから前記低消費電力モードに遷移させるように制御することを特徴とする請求項2又は3に記載の情報処理装置。 - 前記動作状態判定手段は、前記読み込み制御手段により読み込まれたデータの全てが前記書き込み制御手段により前記共用メモリに書き込まれたと判定した場合、又は前記機能モジュールがビジー状態に遷移したと判定した場合に、前記論理回路が動作していないと判定することを特徴とする請求項4に記載の情報処理装置。
- 前記論理回路は、画像処理を実行する画像処理回路であることを特徴とする請求項4又は5に記載の情報処理装置。
- 前記動作状態判定手段は、前記バスの使用が可能であると判定した場合に、前記論理回路の動作が開始されると判定することを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
- 前記機能モジュールのメモリにおける動作電力モードの遷移を、前記バスに接続された複数の機能モジュール間で制御する外部制御手段をさらに備え、
前記外部制御手段は、前記機能モジュールの1つから前記メモリの動作電力モードの遷移開始要求を受けると、前記バスに接続された複数の機能モジュールのうち、前記メモリの動作電力モードが遷移中である機能モジュールがないことを条件に、前記メモリの動作電力モードの遷移を許可するように制御することを特徴とする請求項2から7のいずれか1項に記載の情報処理装置。 - 前記機能モジュールのメモリにおける動作電力モードの遷移を、前記バスに接続された複数の機能モジュール間で制御する外部制御手段をさらに備え、
前記外部制御手段は、
同時に前記動作電力モードの遷移が可能なメモリサイズを保持する保持手段を有し、
前記機能モジュールの1つから前記メモリの動作電力モードの遷移開始要求を受けると、前記メモリサイズを超えないことを条件に、前記遷移開始要求をした機能モジュールのメモリの動作電力モードの遷移を許可するように制御することを特徴とする請求項2から7のいずれか1項に記載の情報処理装置。 - 前記読み込み制御手段は、前記メモリが前記通常モードに遷移したことを確認した後に、前記共用メモリに、データが受けられる状態になったことを示す信号を送信することを特徴とする請求項2から9のいずれか1項に記載の情報処理装置。
- 前記機能モジュールにおいて、前記メモリが複数、実装されている場合に、前記制御手段と前記複数のメモリの各々とが、デイジーチェーン接続されていることを特徴とする請求項1から10のいずれか1項に記載の情報処理装置。
- 前記デイジーチェーン接続されたメモリとメモリの間に、遅延素子が挿入されることを特徴とする請求項11に記載の情報処理装置。
- 消費電力の異なる複数の動作電力モードで動作可能なメモリと、前記メモリの動作電力モードを制御する制御手段とを有する機能モジュールと、少なくとも前記機能モジュールを含む複数のモジュールにより共用される共用メモリと、前記複数のモジュールと、前記共用メモリとを接続するバスと、前記バスを調停するバス調停手段とを備えた情報処理装置の制御方法であって、
前記制御手段により、前記機能モジュールが前記共用メモリにアクセスする際に、前記機能モジュールと前記バス調停手段との通信を監視し、前記バスの使用可否に基づいて、前記メモリの動作電力モードを制御するステップを含むことを特徴とする情報処理装置の制御方法。 - コンピュータを、請求項1から12のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017218477A JP2019091175A (ja) | 2017-11-13 | 2017-11-13 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017218477A JP2019091175A (ja) | 2017-11-13 | 2017-11-13 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019091175A true JP2019091175A (ja) | 2019-06-13 |
Family
ID=66836408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017218477A Pending JP2019091175A (ja) | 2017-11-13 | 2017-11-13 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019091175A (ja) |
-
2017
- 2017-11-13 JP JP2017218477A patent/JP2019091175A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4408263B2 (ja) | データ転送システムおよびデータ転送方法 | |
JP6886301B2 (ja) | メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 | |
JP3954011B2 (ja) | サブシステム間で通信するための方法およびコンピュータ・システム | |
EP2423824B1 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
JP5678784B2 (ja) | 回路、電子機器、及び印刷装置 | |
JP2008310798A (ja) | 画像処理コントローラ及び画像形成装置 | |
US8982398B2 (en) | Image forming apparatus that allows for a multi-operation | |
JP2019091175A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP4716167B2 (ja) | データ処理方法およびデータ処理装置並びに画像形成装置 | |
US20160154603A1 (en) | Data transfer control device, apparatus including the same, and data transfer control method | |
US11036668B2 (en) | Electronic apparatus including device configured to be shifted to power saving state and connected to PCI device, and control method thereof | |
JP6274774B2 (ja) | メモリインターフェース装置及びその制御方法 | |
JPH1125036A (ja) | 調停システム、およびアクセスを調停する方法 | |
US10474215B2 (en) | Control apparatus for controlling memory and control method for power saving of memory | |
JP5623150B2 (ja) | 電子機器及びその制御方法 | |
CN101196859B (zh) | 直接访问存储装置及直接访问存储操作方法 | |
JP2007052685A (ja) | マイクロコントローラ | |
JP4316845B2 (ja) | 印刷装置 | |
JP2006277363A (ja) | 情報転送方式,画像形成装置 | |
JP2004118546A (ja) | バス調停方式及びデータ転送装置 | |
US20230297535A1 (en) | Controller, image forming apparatus, and access arbitration method | |
JP2007108858A (ja) | ピン共有装置およびピン共有方法 | |
JP2008165463A (ja) | バス制御装置 | |
JP2000099391A (ja) | プリンタ装置およびプリンタ制御方法、並びに記録媒体 | |
CN115017093A (zh) | 一种片上外部总线通信的方法以及装置 |