Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7746056B2 - 電子機器および制御方法 - Google Patents
[go: Go Back, main page]

JP7746056B2 - 電子機器および制御方法 - Google Patents

電子機器および制御方法

Info

Publication number
JP7746056B2
JP7746056B2 JP2021121626A JP2021121626A JP7746056B2 JP 7746056 B2 JP7746056 B2 JP 7746056B2 JP 2021121626 A JP2021121626 A JP 2021121626A JP 2021121626 A JP2021121626 A JP 2021121626A JP 7746056 B2 JP7746056 B2 JP 7746056B2
Authority
JP
Japan
Prior art keywords
write
read
memory
transaction
bus master
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.)
Active
Application number
JP2021121626A
Other languages
English (en)
Other versions
JP2023017380A (ja
JP2023017380A5 (ja
Inventor
央章 新妻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2021121626A priority Critical patent/JP7746056B2/ja
Publication of JP2023017380A publication Critical patent/JP2023017380A/ja
Publication of JP2023017380A5 publication Critical patent/JP2023017380A5/ja
Application granted granted Critical
Publication of JP7746056B2 publication Critical patent/JP7746056B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)
  • Memory System (AREA)

Description

本発明は、電子機器およびその制御方法に関する。
SRAM(static random acccess memory)として、デュアルポートSRAM(2ポートSRAM)とシングルポートSRAM(1ポートSRAM)が知られている。デュアルポートSRAMは、書き込みポートと読み出しポートとを有するため、書き込みアクセスと読み出しアクセスとを同時に行うことができる。シングルポートSRAMは、書き込みアクセスと読み出しアクセスとを排他的に行う。シングルポートSRAMは、デュアルポートSRAMに比べて回路規模が小さいというメリットがあるが、同一サイクル内において書き込みアクセスと読み出しアクセスとを同時に行えないという制限がある。そのため、シングルポートSRAMのメモリ制御部は、書き込みアクセスと読み出しアクセスとが同時に発生する場合、書き込みアクセスと読み出しアクセスとを調停する。
特許文献1には、シングルポートRAM(Random Access Memory)に対する2つのアクセス元のメモリアクセスを調停する調停回路が記載されている。特許文献1に記載の調停回路は、第1のアクセス元のメモリアクセスが終了した後に第2のアクセス元のメモリアクセスが行われるようにするために、第2のアクセス元のメモリアクセスを遅延させる。
特開2009-104486号公報
しかしながら、特許文献1に記載の調停回路は、第2のアクセス元のメモリアクセスを遅延させるため、第2のアクセス元のメモリアクセスを効率的に処理することはできない。例えば、第1のアクセス元が書き込みアクセスを行っている期間に第2のアクセス元が読み出しアクセスを行いたい場合、第2のアクセス元の読み出しアクセスは長く待たされることになる。そのため、特許文献1に記載の調停回路では、第2のアクセス元の読み出しアクセスを効率的に処理することができない。
そこで、本発明は、書き込みアクセスと読み出しアクセスとが競合する場合に、読み出しアクセスを効率的に処理できるようにすることを目的とする。
本発明に係る電子機器は、メモリと、前記メモリに対して、書き込みバースト転送長を含む書き込みトランザクションを発行する第1のバスマスタと、前記メモリに対して、読み出しバースト転送長を含む読み出しトランザクションを発行する第2のバスマスタと、前記第1のバスマスタが発行した書き込みトランザクションと、前記第2のバスマスタが発行した読み出しトランザクションとが競合しない場合、前記第1のバスマスタが発行した前記書き込みトランザクションに応じて、前記書き込みバースト転送長に対応した長さの書き込みデータをバースト転送により前記メモリに書き込む書き込み処理を行い、前記第1のバスマスタが発行した書き込みトランザクションと、前記第2のバスマスタが発行した読み出しトランザクションとが競合しない場合、前記第2のバスマスタからの前記読み出しトランザクションに応じて、前記読み出しバースト転送長に対応した長さの読み出しデータをバースト転送により前記メモリから読み出す読み出し処理を行う調停部とを有し、前記調停部は、前記第1のバスマスタが発行した書き込みトランザクションによる第1の長さの書き込みバースト転送長のデータの書き込み処理と、前記第2のバスマスタが発行した読み出しトランザクションによる、前記第1の長さとは異なる第2の長さの読み出しバースト転送長のデータの読み出し処理とが競合する場合、クロックサイクルごとに、前記書き込みトランザクションに基づく前記メモリへのデータ書き込み処理と、前記読み出しトランザクションに基づく前記メモリからデータ読み出し処理とが交互に繰り返されるように制御する。
本発明によれば、書き込みアクセスと読み出しアクセスとが競合する場合に、読み出しアクセスを効率的に処理することができる。
電子機器100の構成要素を説明するためのブロック図である。 メモリ制御部105の構成要素を説明するためのブロック図である。 メモリ制御部105の制御方法を説明するためのタイミングチャートである。 メモリ制御部105の制御方法を説明するためのフローチャートである。 メモリ制御部105の制御方法を説明するためのタイミングチャートである。 電子機器600の構成要素を説明するためのブロック図である。 メモリ制御部605の構成要素を説明するためのブロック図である。 メモリ制御部605の制御方法を説明するためのフローチャートである。 メモリ制御部605の制御方法を説明するためのタイミングチャートである。 メモリ制御部105の制御方法を説明するためのフローチャートである。 メモリ制御部105の制御方法を説明するためのタイミングチャートである。
以下、図面を参照して本発明の実施形態を説明する。ただし、本発明は以下の実施形態に限定されるものではない。
[実施形態1]
図1は、実施形態1における電子機器100の構成要素を説明するためのブロック図である。
図1に示すように、電子機器100は、CPU(central processing unit)101、画像処理部102、画像処理部103、データバス104、メモリ制御部105、メモリ106を有する。電子機器100の各構成要素は、後述する機能を実現するための電子回路を有する。
CPU101、画像処理部102および画像処理部103は、それぞれ、バスマスタである。メモリ制御部105は、バススレーブである。データバス104は、CPU101、画像処理部102、画像処理部103およびメモリ制御部105を相互に接続する。
CPU101は、電子機器100の構成要素および電子機器100の動作を制御する制御部として動作する。CPU101は、データバス104に接続される。CPU101は、データバス104およびメモリ制御部105を介して、メモリ106にデータを書き込んだり、メモリ106からデータを読み出したりする。
画像処理部102および画像処理部103は、それぞれ、データバス104に接続され、画像処理を行う。画像処理部102は、データバス104およびメモリ制御部105を介して、メモリ106にデータを書き込んだり、メモリ106からデータを読み出したりする。画像処理部103も、データバス104およびメモリ制御部105を介して、メモリ106にデータを書き込んだり、メモリ106からデータを読み出したりする。
メモリ106は、例えばSRAM(Static Random Access Memory)である。メモリ106は、CPU101、画像処理部102または画像処理部103が使用するデータを記憶するメモリである。また、メモリ106は、データの書き込みとデータの読み出しとが排他的に行われるシングルポートSRAM(1ポートSRAM)である。
メモリ制御部105は、CPU101、画像処理部102または画像処理部103が発行する書き込みトランザクションまたは読み出しトランザクションに基づいて、メモリ106に対するメモリアクセスを制御する。また、メモリ制御部105は、書き込みトランザクションと読み出しトランザクションとを並行して処理する場合には、複数のメモリアクセスの競合を調停し、データの書き込みおよびデータの読み出しを行う。
図2は、メモリ制御部105の構成要素を説明するためのブロック図である。
図2に示すように、メモリ制御部105は、書き込みアドレスインタフェース部201、書き込みデータインタフェース部202、読み出しアドレスインタフェース部203、読み出しデータインタフェース部204、調停部205を有する。メモリ制御部105の各構成要素は、後述する機能を実現するための電子回路を有する。
書き込みアドレスインタフェース部201は、データバス104と調停部205との間に接続される。書き込みアドレスインタフェース部201は、書き込みアドレス情報を入力可能なことを示すレディ信号WArをデータバス104に出力する。また、書き込みアドレスインタフェース部201は、メモリ106の書き込みアドレスWAと、書き込みバースト転送長WLと、バリッド信号WAvとをデータバス104から入力する。バリッド信号WAvは、書き込みアドレスWAおよび書き込みバースト転送長WLが有効な情報であることを示す。
書き込みデータインタフェース部202は、データバス104と調停部205との間に接続される。書き込みデータインタフェース部202は、書き込みデータ情報を入力可能なことを示すレディ信号WDrをデータバス104に出力する。また、書き込みデータインタフェース部202は、メモリ106に対する書き込みデータWDと、書き込みデータWDが有効な情報であることを示すバリッド信号WDvとをデータバス104から入力する。
読み出しアドレスインタフェース部203は、データバス104と調停部205との間に接続される。読み出しアドレスインタフェース部203は、読み出しアドレス情報を入力可能なことを示すレディ信号RArをデータバス104に出力する。また、読み出しアドレスインタフェース部203は、メモリ106の読み出しアドレスRAと、読み出しバースト転送長RLと、バリッド信号RAvとをデータバス104から入力する。バリッド信号RAvは、読み出しアドレスRAおよび読み出しバースト転送長RLが有効な情報であることを示す。
読み出しデータインタフェース部204は、データバス104と調停部205との間に接続される。読み出しデータインタフェース部204は、調停部205がメモリ106から読み出した読み出しデータRDと読み出しデータRDが有効な情報であることを示すバリッド信号RDvとをデータバス104に出力する。また、読み出しデータインタフェース部204は、データバス104がデータを入力可能なことを示すレディ信号RDrを入力する。
調停部205は、メモリ106へデータの書き込む処理を書き込みアドレス情報に基づいて制御し、メモリ106からデータ読み出す処理を読み出しアドレス情報に基づいて制御する。調停部205は、複数のメモリアクセスの競合が発生したときに、書き込みトランザクションの方を優先するか否かを判定するための優先フラグを有する。調停部205は、チップイネーブル信号CEと、ライトイネーブル信号WEと、メモリアドレスMAと、書き込みデータMWDとをメモリ106に出力し、読み出しデータMRDをメモリ106から入力する。チップイネーブル信号CEは、書き込みまたは読み出しを有効化する信号である。ライトイネーブル信号WEは、データの書き込みを示す信号である。メモリアドレスMAは、メモリ106上の書き込みアドレスまたは読み出しアドレスを示す。
図3(A)および図3(B)は、メモリ制御部105の制御方法を説明するためのタイミングチャートである。メモリ制御部105は、同期クロック信号CKの立ち上がりエッジで動作する同期回路である。
図3(A)は、メモリ制御部105が書き込みアドレス情報および書き込みデータ情報を入力したときのメモリ制御部105の制御方法を説明するためのタイミングチャートである。例えば、メモリ制御部105は、データバス104を介して、画像処理部102が発行した書き込みトランザクションを入力する。
時刻T301では、書き込みアドレスインタフェース部201は、レディ信号WArおよびバリッド信号WAvが1のとき、書き込みアドレスWAおよび書き込みバースト転送長WLを画像処理部102から入力する。例えば、書き込みバースト転送長WLは128である。書き込みアドレスインタフェース部201は、書き込みアドレスWAおよび書き込みバースト転送長WLを調停部205に出力する。
書き込みデータインタフェース部202は、レディ信号WDrおよびバリッド信号WDvが1のとき、メモリ106に対する書き込みデータWDを画像処理部102から入力する。そして、書き込みデータインタフェース部202は、書き込みデータWDを調停部205に出力する。
時刻T302では、調停部205は、書き込みアドレスWA、書き込みバースト転送長WLおよび書き込みデータWDに基づいて、チップイネーブル信号CE、ライトイネーブル信号WE、メモリアドレスMAおよび書き込みデータMWDの出力を開始する。メモリアドレスMAは、書き込みアドレスWAが示す開始アドレスから、書き込みバースト転送長WLに対応する終了アドレスまで順にインクリメントされる。書き込みデータMWDは、書き込みデータWDに対応する。メモリ106は、チップイネーブル信号CEおよびライトイネーブル信号WEが1のとき、メモリ106上のメモリアドレスMAに書き込みデータMWDを書き込む。
時刻T303では、書き込みデータインタフェース部202は、書き込みアドレスインタフェース部201が時刻T301において入力開始した書き込みバースト転送長WLに対応する長さの最後の書き込みデータWAの入力を終了する。そして、次のクロックサイクルにおいて、書き込みデータインタフェース部202は、バースト転送の最後の書き込みデータMWDの書き込みを行う。
図3(B)は、メモリ制御部105が読み出しアドレス情報および読み出しデータ情報を入力したときのメモリ制御部105の制御方法を説明するためのタイミングチャートである。例えば、メモリ制御部105は、データバス104を介して、画像処理部103が発行した読み出しトランザクションを入力する。
時刻T311では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力する。例えば、読み出しバースト転送長RLは4である。読み出しアドレスインタフェース部203は、読み出しアドレスRAおよび読み出しバースト転送長RLを調停部205に出力する。
時刻T312では、調停部205は、読み出しアドレスRAおよび読み出しバースト転送長RLに基づいて、1のチップイネーブル信号CEおよび0のライトイネーブル信号WEの出力を開始する。メモリ106は、チップイネーブル信号CEが1であり、ライトイネーブル信号WEが0のとき、メモリ106上のメモリアドレスMAに記憶されているデータを読み出し、その読み出したデータを読み出しデータMRDとして調停部205に出力する。メモリアドレスMAは、読み出しアドレスRAが示す開始アドレスから、読み出しバースト転送長RLに対応する終了アドレスまで順にインクリメントされる。調停部205は、読み出しデータMRDを読み出しデータインタフェース部204に出力する。
次のクロックサイクルでは、読み出しデータインタフェース部204は、読み出しデータMRDを基に、読み出しデータRDおよび1のバリッド信号RDvを、データバス104を介して画像処理部103に出力する。1のバリッド信号RDvは、読み出しデータMRDが有効な情報であることを示す。読み出しデータRDは、読み出しデータMRDに対応する。
時刻T313では、読み出しデータインタフェース部204は、読み出しバースト転送長RLに対応する長さの読み出しデータRDを画像処理部103に出力する処理を終了する。
図4は、クロック単位に行われるメモリ制御部105の制御方法を説明するためのフローチャートである。以下、図4を参照して、メモリ制御部105が複数のメモリアクセスの競合を調停する方法について説明する。メモリ制御部105は、書き込みトランザクションまたは読み出しトランザクションが入力されると、メモリ106にデータを書き込む書き込み処理とメモリ106からデータを読み出す読み出し処理とを制御する。
調停部205の優先フラグは、書き込みトランザクションを優先するか否かを示すフラグであり、一例として初期状態では「1」である。優先フラグの「1」は、書き込みトランザクションを優先することを意味する。優先フラグの「0」は、読み出しトランザクションを優先することを意味する。
メモリ制御部105は、レディ信号WArを1にして、バスマスタから書き込みトランザクションを入力するために待機し、レディ信号RArを1にして、読み出しトランザクションを入力するために待機する。バスマスタは、CPU101、画像処理部102または画像処理部103である。書き込みトランザクションの入力は、例えば、図3(A)の時刻T301におけるバリッド信号WAv、書き込みアドレスWAおよび書き込みバースト転送長WLの入力である。読み出しトランザクションの入力は、例えば、図3(B)の時刻T311におけるバリッド信号RAv、読み出しアドレスRAおよび読み出しバースト転送長RWLの入力である。メモリ制御部105は、書き込みトランザクションまたは読み出しトランザクションが入力されると、書き込みトランザクションまたは読み出しトランザクションを開始する。
ステップS401では、メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションの少なくとも一つが処理中であるか否かを判定する。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションのいずれも処理中でない場合には、ステップS401を繰り返す(S401でNO)。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションの少なくとも一つが処理中である場合には、ステップS402に進む(S401でYES)。
ステップS402では、メモリ制御部105は、書き込みトランザクションが処理中であるか否かを判定する。メモリ制御部105は、書き込みトランザクションが処理中であると判定した場合には、ステップS403に進む(S402でYES)。メモリ制御部105は、書き込みトランザクションが処理中でないと判定した場合には、ステップS408に進む(S402でNO)。
ステップS403では、メモリ制御部105は、読み出しトランザクションが処理中であるか否かを判定する。メモリ制御部105は、読み出しトランザクションが処理中であると判定した場合には、ステップS404に進む(S403でYES)。メモリ制御部105は、読み出しトランザクションが処理中でないと判定した場合には、ステップS407に進む(S403でNO)。
ステップS404は、書き込みトランザクションと読み出しトランザクションとが競合する場合に行われる処理である。ステップS404では、調停部205は、優先フラグが1であるか否かを判定する。調停部205は、優先フラグが1であると判定した場合には、ステップS405に進み(S404でYES)、優先フラグが0であると判定した場合には、ステップS406に進む(S404でNO)。
ステップS405では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。さらに、調停部205は、書き込みデータMWDをメモリ106に書き込む処理を制御する。そして、調停部205は、優先フラグを0にし、図4のフローチャートが終了する。
ステップS406では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。さらに、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。そして、調停部205は、優先フラグを1にし、図4のフローチャートが終了する。
ステップS407では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。さらに、調停部205は、書き込みデータMWDをメモリ106に書き込む処理を制御する。この処理は、図3(A)の処理に対応する。そして、調停部205は、優先フラグを0にし、図4のフローチャートが終了する。
ステップS408では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。さらに、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。この処理は、図3(B)の処理に対応する。そして、調停部205は、優先フラグを1にし、図4のフローチャートが終了する。
図5は、書き込みトランザクションと読み出しトランザクションとが競合した場合のメモリ制御部105の制御方法を説明するためのタイミングチャートである。メモリ制御部105は、画像処理部102が発行した書き込みトランザクションと画像処理部103が発行した読み出しトランザクションを入力し、図4のフローチャートに基づく制御を行う。
時刻T501では、書き込みアドレスインタフェース部201は、レディ信号WArおよびバリッド信号WAvが1のとき、書き込みアドレスWAおよび書き込みバースト転送長WLを画像処理部102から入力する。例えば、書き込みバースト転送長WLは128である。書き込みアドレスインタフェース部201は、書き込みアドレスWAおよび書き込みバースト転送長WLを調停部205に出力する。書き込みデータインタフェース部202は、レディ信号WDrの1を維持し、書き込みデータWDの入力を開始する。メモリ制御部105は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS407に進む(S403でNO)。
時刻T502では、調停部205は、ステップS407の処理を行う。ステップS407では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。さらに、調停部205は、メモリ106のメモリアドレスMAに書き込みデータMWDを書き込む処理を制御する。そして、調停部205は、優先フラグを0にする。
時刻T503は、バースト転送による書き込み処理の途中の時刻である。時刻T503では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力し、レディ信号RArを0にする。例えば、読み出しバースト転送長RLは4である。読み出しアドレスインタフェース部203は、読み出しアドレスRAおよび読み出しバースト転送長RLを調停部205に出力する。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS404に進む(S403でYES)。ステップS404では、調停部205は、優先フラグが0であるので、ステップS406に進む(S404でNO)。
時刻T504では、調停部205は、ステップS406の処理を行う。ステップS406では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。さらに、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。そして、調停部205は、優先フラグを1にする。
時刻T505では、メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS404に進む(S403でYES)。ステップS404では、調停部205は、優先フラグが1であるので、ステップS405に進む(S404でYES)。ステップS405では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDの入力を再開する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1に。さらに、調停部205は、書き込みデータMWDをメモリ106に書き込む処理を制御する。そして、調停部205は、優先フラグを0にする。
以下、同様に、調停部205は、クロック信号CKのサイクル毎に、メモリ106にデータを書き込む書き込み処理とメモリ106からデータを読み出す読み出し処理とが交互に繰り返されるように制御する。
時刻T506では、調停部205は、読み出しトランザクションを完了し、レディ信号RArを1にする。メモリ制御部105は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS407に進む(S403でNO)。ステップS407では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にすることにより、書き込みデータMWDをメモリ106に書き込む処理を再開する。そして、調停部205は、優先フラグを0にする。
時刻T507は、バースト転送による書き込み処理の途中の時刻である。時刻T507では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力し、レディ信号RArを0にする。例えば、読み出しバースト転送長RLは4である。読み出しアドレスインタフェース部203は、読み出しアドレスRAおよび読み出しバースト転送長RLを調停部205に出力する。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS404に進む(S403でYES)。ステップS404では、調停部205は、優先フラグが0であるので、ステップS406に進む(S404でNO)。
ステップS406では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。さらに、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。そして、調停部205は、優先フラグを1にする。以下、時刻T503以降と同様に、調停部205は、クロック信号CKのサイクル毎に、メモリ106にデータを書き込む書き込み処理とメモリ106からデータを読み出す読み出し処理とが交互に繰り返されるように制御する。
例えば、画像処理部102は、書き込みトランザクションを発行するバスマスタである。画像処理部103は、読み出しトランザクションを発行するバスマスタである。
メモリ制御部105は、画像処理部102が発行する書き込みトランザクションと、画像処理部103が発行する読み出しトランザクションとが競合する場合、ステップS404に進む(S403でYES)。その場合、調停部205は、クロックサイクルごとに、メモリ106にデータを書き込む書き込み処理と、メモリ106からデータを読み出す読み出し処理とが交互に繰り返されるように制御する。
調停部205は、上記の競合の場合において、前回の処理が書き込み処理である場合には、読み出し処理を行うように制御し、前回の処理が読み出し処理である場合には、書き込み処理を行うように制御する。また、調停部205は、上記の競合の場合、優先フラグに応じて、書き込み処理または読み出し処理を行うように制御する。
以上説明したように、実施形態1によれば、調停部205は、書き込み処理を行った後に優先フラグを0にし、読み出し処理を行った後に優先フラグを1にする。これにより、調停部205は、書き込み処理と読み出し処理とが競合する場合であっても、読み出し処理を効率的に処理することができる。
なお、実施形態1では、バスマスタは、CPU101、画像処理部102および画像処理部103であり、データバス104に接続される構成を説明したが、バスマスタの数は限定されない。より多くのバスマスタがデータバス104に接続され、それぞれのバスマスタがメモリ106に対するメモリアクセスを行う構成であってもよい。図2で説明したデータバス104およびメモリ制御部105の間で入力または出力される信号の機能および信号数は一例であり、上述した例に限定されない。
さらに、一例として示した図3(A)、図3(B)および図5で示した信号の波形は、メモリ制御部105およびメモリ106の回路構成によって、バッファによるクロックサイクルのずれがあってもよい。また、信号の論理の極性の意味が異なるものでもよく、信号の波形は限定されない。
[実施形態2]
図6は、実施形態2における電子機器600の構成要素を説明するためのブロック図である。実施形態2における電子機器600の構成要素のうち、実施形態1における電子機器100の構成要素と同様の構成要素については、同じ符号を付してそれらの説明を省略する。
図6に示すように、電子機器600は、CPU101、画像処理部102、画像処理部103、データバス104、メモリ制御部605、メモリ606を有する。電子機器600の各構成要素は、後述する機能を実現するための電子回路を有する。
CPU101、画像処理部102および画像処理部103は、それぞれ、バスマスタである。メモリ制御部605は、バススレーブである。データバス104は、CPU101、画像処理部102、画像処理部103およびメモリ制御部605を相互に接続する。
メモリ606は、複数のシングルポートSRAM(1ポートSRAM)を有する。複数のシングルポートSRAMはいずれも、データの書き込みとデータの読み出しとが排他的に行われる。また、メモリ606は、メモリ606上のアドレス領域を分割して、複数のシングルポートSRAMに連続するアドレス領域を設定する。
メモリ制御部605は、データバス104に接続され、バスマスタが発行する書き込みトランザクションまたは読み出しトランザクションに基づいて、メモリ606に対するメモリアクセスを制御する。メモリ制御部605は、書き込みトランザクションと読み出しトランザクションとが競合する場合、複数のメモリアクセスの競合を調停し、メモリ606にデータを書き込む書き込み処理とメモリ606からデータを読み出す読み出し処理とを制御する。
図7は、メモリ制御部605の構成要素を説明するためのブロック図である。
メモリ制御部605は、書き込みアドレスインタフェース部201、書き込みデータインタフェース部202、読み出しアドレスインタフェース部203、読み出しデータインタフェース部204、調停部701、セレクタ702を有する。メモリ制御部605の各構成要素は、後述する機能を実現するための電子回路を有する。
メモリ606は、複数のメモリバンク711~714を有する。複数のメモリバンク711~714はいずれも、データの書き込みとデータの読み出しとが排他的に行われるシングルポートSRAMである。メモリ606は、一例として、メモリ606上のアドレスを4分割して、メモリバンク711、メモリバンク712、メモリバンク713およびメモリバンク714の4個のシングルポートSRAM上のアドレスに連続アドレスを設定する。
メモリバンク711は、チップイネーブル信号CE1と、ライトイネーブル信号WE1と、メモリアドレスMA1と、書き込みデータMWD1とをセレクタ702から入力し、読み出しデータMRD1をセレクタ702に出力する。
メモリバンク712は、チップイネーブル信号CE2と、ライトイネーブル信号WE2と、メモリアドレスMA2と、書き込みデータMWD2とをセレクタ702から入力し、読み出しデータMRD2をセレクタ702に出力する。
メモリバンク713は、チップイネーブル信号CE3と、ライトイネーブル信号WE3と、メモリアドレスMA3と、書き込みデータMWD3とをセレクタ702から入力し、読み出しデータMRD3をセレクタ702に出力する。
メモリバンク714は、チップイネーブル信号CE4と、ライトイネーブル信号WE4と、メモリアドレスMA4と、書き込みデータMWD4とをセレクタ702から入力し、読み出しデータMRD4をセレクタ702に出力する。
チップイネーブル信号CE1~CE4は、図2のチップイネーブル信号CEと同様である。ライトイネーブル信号WE1~WE4は、図2のライトイネーブル信号WEと同様である。メモリアドレスMA1~MA4は、図2のメモリアドレスMAと同様である。書き込みデータMWD1~MWD4は、図2の書き込みデータMWDと同様である。読み出しデータMRD1~MRD4は、図2の読み出しデータMRDと同様である。
メモリ制御部605は、図2のメモリ制御部105に対して、調停部701の構成が異なり、セレクタ702が追加される。調停部701は、メモリ606にデータを書き込む書き込み処理とメモリ106からデータを読み出す読み出し処理とが競合した場合、書き込みアドレス情報および読み出しアドレス情報に基づいて、メモリバンク711~714のいずれに対する書き込みおよび読み出しかを判別し、メモリバンクを決定する。セレクタ702は、調停部701の判別結果に基づいて、メモリバンク711~714のそれぞれに対応するデータの書き込みおよび読み取り制御を、実施形態1におけるメモリ106に対する制御と同様に行う。
調停部701は、書き込みトランザクションと読み出しトランザクションとが競合した場合、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一であるか否かを判定する。調停部701は、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一である場合には実施形態1と同様に調停する。調停部701は、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一でない場合には、書き込みおよび読み出しをそれぞれ独立に並列に制御する。メモリ制御部605は、より短期間に、多くのトランザクションを処理することができ、データの書き込みおよびデータの読み出し性能が向上する。
図8は、クロック単位に行われるメモリ制御部605の制御方法を説明するためのフローチャートである。以下、図8を参照して、メモリ制御部605が複数のメモリアクセスの競合を調停する方法について説明する。メモリ制御部605は、書き込みトランザクションまたは読み出しトランザクションが入力されると、メモリバンク711~714にデータを書き込む書き込み処理とメモリバンク711~714からデータを読み出す読み出し処理とを制御する。
調停部701の優先フラグは、書き込みトランザクションを優先するか否かを示すフラグであり、一例として初期状態では「1」である。優先フラグの「1」は、書き込みトランザクションを優先することを意味する。優先フラグの「0」は、読み出しトランザクションを優先することを意味する。
メモリ制御部605は、レディ信号WArを1にして、書き込みトランザクションを入力するために待機し、レディ信号RArを1にして、読み出しトランザクションを入力するために待機する。
ステップS801では、メモリ制御部605は、書き込みトランザクションおよび読み出しトランザクションの少なくとも一つが処理中であるか否かを判定する。メモリ制御部605は、書き込みトランザクションおよび読み出しトランザクションのいずれも処理中でない場合には、ステップS801を繰り返す(S801でNO)。メモリ制御部605は、書き込みトランザクションおよび読み出しトランザクションの少なくとも一つが処理中である場合には、ステップS802に進む(S801でYES)。
ステップS802では、調停部701は、入力した書き込みアドレスWAまたは読み出しアドレスRAに基づいて、書き込み対象または読み出し対象が4つのメモリバンク711~714のうちのいずれであるのかを決定する。
ステップS803では、メモリ制御部605は、書き込みトランザクションが処理中であるか否かを判定する。メモリ制御部605は、書き込みトランザクションが処理中であると判定した場合には、ステップS804に進む(S803でYES)。メモリ制御部605は、書き込みトランザクションが処理中でないと判定した場合には、ステップS811に進む(S803でNO)。
ステップS804では、メモリ制御部605は、読み出しトランザクションが処理中であるか否かを判定する。メモリ制御部605は、読み出しトランザクションが処理中であると判定した場合には、ステップS805に進む(S804でYES)。メモリ制御部605は、読み出しトランザクションが処理中でないと判定した場合には、ステップS810に進む(S804でNO)。
ステップS805は、書き込みトランザクションと読み出しトランザクションとが競合する場合に行われる処理である。ステップS805では、調停部701は、ステップS802で決定した書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一であるか否かを判定する。調停部701は、同一であると判定した場合には、書き込みトランザクションと読み出しトランザクションとが競合するので、ステップS806に進む(S805でYES)。調停部701は、同一でないと判定した場合には、書き込みトランザクションと読み出しトランザクションとが競合しないので、ステップS809に進む(S805でNO)。
ステップS806では、調停部701は、優先フラグが1であるか否かを判定する。調停部701は、優先フラグが1であると判定した場合には、ステップS807に進み(S806でYES)、優先フラグが0であると判定した場合には、ステップS808に進む(S806でNO)。
ステップS807では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部701は、ステップS802で決定した書き込み対象のメモリバンクのチップイネーブル信号CE1~CE4を1にし、書き込み対象のメモリバンクのライトイネーブル信号WE1~WE4を1にする。さらに、調停部701は、ステップS802で決定した書き込み対象のメモリバンクに書き込みデータを書き込む処理を制御する。そして、調停部701は、優先フラグを0にし、図8のフローチャートが終了する。
ステップS808では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部701は、ステップS802で決定した読み出し対象のメモリバンクのチップイネーブル信号CE1~CE4を1にし、読み出し対象のメモリバンクのライトイネーブル信号WE1~WE4を0にする。さらに、調停部701は、ステップS802で決定した読み出し対象のメモリバンクから読み出しデータMRD1~MRD4を読み出す処理を制御する。そして、調停部701は、優先フラグを1にし、図8のフローチャートが終了する。
ステップS809では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部701は、ステップS802で決定した書き込み対象のメモリバンクのチップイネーブル信号CE1~CE4を1にし、書き込み対象のメモリバンクのライトイネーブル信号WE1~WE4を1にする。さらに、調停部701は、ステップS802で決定した書き込み対象のメモリバンクに書き込みデータを書き込む処理を制御する。
また、調停部701は、ステップS802で決定した読み出し対象のメモリバンクのチップイネーブル信号CE1~CE4を1にし、読み出し対象のメモリバンクのライトイネーブル信号WE1~WE4を0にする。さらに、調停部701は、ステップS802で決定した読み出し対象のメモリバンクから読み出しデータMRD1~MRD4を読み出す処理を制御する。そして、図8のフローチャートが終了する。
ステップS810では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部701は、ステップS802で決定した書き込み対象のメモリバンクのチップイネーブル信号CE1~CE4を1にし、書き込み対象のメモリバンクのライトイネーブル信号WE1~WE4を1にする。さらに、調停部701は、ステップS802で決定した書き込み対象のメモリバンクに書き込みデータを書き込む処理を制御する。そして、調停部701は、優先フラグを0にし、図8のフローチャートが終了する。
ステップS811では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部701は、ステップS802で決定した読み出し対象のメモリバンクのチップイネーブル信号CE1~CE4を1にし、読み出し対象のメモリバンクのライトイネーブル信号WE1~WE4を0にする。さらに、調停部701は、ステップS802で決定した読み出し対象のメモリバンクから読み出しデータMRD1~MRD4を読み出す処理を制御する。そして、調停部701は、優先フラグを1にし、図8のフローチャートが終了する。
図9は、書き込みトランザクションと読み出しトランザクションとが競合した場合のメモリ制御部605の制御方法を説明するためのタイミングチャートである。メモリ制御部605は、画像処理部102が発行した書き込みトランザクションと画像処理部103が発行した読み出しトランザクションを入力し、図9のフローチャートに基づく制御を行う。
時刻T901では、書き込みアドレスインタフェース部201は、レディ信号WArおよびバリッド信号WAvが1のとき、書き込みアドレスWAおよび書き込みバースト転送長WLを画像処理部102から入力する。例えば、書き込みバースト転送長WLは128である。書き込みデータインタフェース部202は、レディ信号WDrの1を維持し、書き込みデータWDの入力を開始する。ステップS802では、調停部701は、入力した書き込みアドレスWAに基づいて、例えば、書き込み対象のメモリバンクがメモリバンク711であることを決定する。メモリ制御部605は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS810に進む(S804でNO)。
時刻T902では、調停部701は、ステップS810の処理を行う。ステップS810では、調停部701は、書き込み対象のメモリバンク711のチップイネーブル信号CE1を1にし、ライトイネーブル信号WE1を1にする。さらに、調停部701は、書き込みデータMWD1をメモリバンク711のメモリアドレスMA1に書き込み処理を制御する。そして、調停部701は、優先フラグを0にする。
時刻T903は、バースト転送による書き込み処理の途中の時刻である。時刻T903では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力し、レディ信号RArを0にする。例えば、読み出しバースト転送長RLは4である。ステップS802では、調停部701は、入力した読み出しアドレスRAに基づいて、例えば、読み出し対象のメモリバンクがメモリバンク712であることを決定する。メモリ制御部605は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS805に進む(S804でYES)。ステップS805では、調停部701は、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一でないので、ステップS809に進む(S805でNO)。
時刻T904では、調停部701は、ステップS809の処理を行う。ステップS809では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部701は、書き込み対象のメモリバンク711のチップイネーブル信号CE1を1にし、ライトイネーブル信号WE1を1にし、メモリバンク711に書き込みデータMWD1を書き込む処理を継続する。
また、調停部701は、読み出し対象のメモリバンク712のチップイネーブル信号CE2を1にし、ライトイネーブル信号WE2を0にする。これにより、調停部701は、メモリバンク712から読み出しデータMRD2を読み出す。調停部701は、メモリバンク712から読み出しデータMRD2を読み出す処理を開始する。以上のように、調停部701は、メモリバンク711に対する書き込み処理と並列に、メモリバンク712に対する読み取り処理を行う。
時刻T905は、バースト転送による読み出し処理の終了後の時刻であり、バースト転送による書き込み処理の途中の時刻である。時刻T905では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力し、レディ信号RArを0にする。例えば、読み出しバースト転送長RLは4である。ステップS802では、調停部701は、入力した読み出しアドレスRAに基づいて、例えば、読み出し対象のメモリバンクがメモリバンク711であることを決定する。メモリ制御部605は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS805に進む(S804でYES)。ステップS805では、調停部701は、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一であるので、ステップS806に進む(S805でYES)。ステップS806では、調停部701は、優先フラグが0であるので、ステップS808に進む(S806でNO)。
時刻T906では、調停部701は、ステップS808の処理を行う。ステップS808では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部701は、読み出し対象のメモリバンク711のチップイネーブル信号CE1を1にし、ライトイネーブル信号WE1を0にする。さらに、調停部701は、読み出し対象のメモリバンク711から読み出しデータMRD1を読み出す処理を制御する。そして、調停部701は、優先フラグを1にする。調停部701は、メモリバンク711から読み出しデータMRD1を読み出す処理を開始する。
時刻T907では、メモリ制御部605は、書き込みトランザクションおよび読み出しトランザクションが処理中であり、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一であるので、ステップS806に進む(S805でYES)。ステップS806では、調停部701は、優先フラグが1であるので、ステップS807に進む(S806でYES)。
時刻T908では、調停部701は、ステップS807の処理を行う。ステップS807では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDの入力を再開する。調停部701は、書き込み対象のメモリバンク711のチップイネーブル信号CE1を1にし、ライトイネーブル信号WE1を1にする。さらに、調停部701は、書き込み対象のメモリバンク711に書き込みデータを書き込む処理を制御する。そして、調停部701は、優先フラグを0にする。
以下、同様に、調停部701は、クロック信号CKのサイクル毎に、メモリバンク711にデータを書き込む書き込み処理とメモリバンク711からデータを読み出す読み出し処理とが交互に繰り返されるように制御する。
時刻T908では、調停部701は、読み出しトランザクションを完了し、レディ信号RArを1にする。メモリ制御部605は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS810に進む(S804でNO)。ステップS810では、調停部701は、メモリバンク711のチップイネーブル信号CE1を1にし、ライトイネーブル信号WE1を1にする。これにより、調停部701は、メモリバンク711に書き込みデータMWD1を書き込む処理を再開する。そして、調停部701は、優先フラグを0にする。
メモリ制御部605は、画像処理部102が発行する書き込みトランザクションと、画像処理部103が発行する読み出しトランザクションとが競合する場合、ステップS805に進む(S804でNO)。メモリ制御部605は、画像処理部102が発行する書き込みトランザクションの対象であるメモリバンクと、画像処理部103が発行する読み出しトランザクションの対象であるメモリバンクとが同じ場合、ステップS806に進む。その場合、調停部701は、クロックサイクルごとに、メモリバンクにデータを書き込む書き込み処理と、メモリバンクからデータを読み出す読み出し処理とが交互に繰り返されるように制御する。
メモリ制御部605は、画像処理部102が発行する書き込みトランザクションの対象であるメモリバンクと、画像処理部103が発行する読み出しトランザクションの対象であるメモリバンクが異なる場合、ステップS809に進む。ステップS809では、調停部701は、上記の異なるメモリバンクに対して書き込みと読み出しを並列に行うように制御する。
以上説明したように、実施形態2によれば、調停部701は、書き込みトランザクションおよび読み出しトランザクションが処理中である場合、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一であるか否かを判定する。調停部701は、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一である場合には、実施形態1と同様の調停を行うことができる。調停部701は、書き込み対象のメモリバンクと読み出し対象のメモリバンクとが同一でない場合には、書き込みおよび読み出しをそれぞれ独立に並列に行うことができる。これにより、調停部205は、書き込み処理と読み出し処理とが競合する場合であっても、読み出し処理を効率的に処理することができる。
[実施形態3]
実施形態3における電子機器100の構成は、実施形態1における電子機器100の構成と同様である。実施形態3が実施形態1と異なる点を説明する。実施形態3では、メモリ制御部105は、書き込みトランザクションまたは読み出しトランザクションが継続する場合には、継続するトランザクションを優先して調停を行う。従って、メモリ制御部105は、トランザクションを発行したバスマスタのメモリアクセス完了までのレイテンシを効率よく短くし、データ転送性能を向上することができる。特に、書き込みトランザクションおよび読み出しトランザクションが混み合っていないときや、短いバースト転送長のトランザクションが多い状況において、その効果が期待できる。
図10は、クロック単位に行われるメモリ制御部105の制御方法を説明するためのフローチャートである。以下、図10を参照して、複数のメモリアクセスの競合を調停する方法について説明する。メモリ制御部105は、書き込みトランザクションまたは読み出しトランザクションが入力されると、メモリ106にデータを書き込む書き込み処理とメモリ106からデータを読み出す読み出し処理とを制御する。実施形態3では、調停部205の優先フラグの設定条件が実施形態1と異なる。
調停部205の優先フラグは、一例として初期状態では「1」である。メモリ制御部105は、レディ信号WArを1にして、書き込みトランザクションを入力するために待機し、レディ信号RArを1にして、読み出しトランザクションを入力するために待機する。
ステップS1001では、メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションの少なくとも一つが処理中であるか否かを判定する。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションのいずれも処理中でない場合には、ステップS1001を繰り返す(S1001でNO)。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションの少なくとも一つが処理中である場合には、ステップS1002に進む(S1001でYES)。
ステップS1002では、メモリ制御部105は、書き込みトランザクションが処理中であるか否かを判定する。メモリ制御部105は、書き込みトランザクションが処理中であると判定した場合には、ステップS1003に進む(S1002でYES)。メモリ制御部105は、書き込みトランザクションが処理中でないと判定した場合には、ステップS1008に進む(S1002でNO)。
ステップS1003では、メモリ制御部105は、読み出しトランザクションが処理中であるか否かを判定する。メモリ制御部105は、読み出しトランザクションが処理中であると判定した場合には、ステップS1004に進む(S1003でYES)。メモリ制御部105は、読み出しトランザクションが処理中でないと判定した場合には、ステップS1007に進む(S1003でNO)。
ステップS1004は、書き込みトランザクションと読み出しトランザクションとが競合する場合に行われる処理である。ステップS1004では、調停部205は、優先フラグが1であるか否かを判定する。調停部205は、優先フラグが1であると判定した場合には、ステップS1005に進み(S1004でYES)、優先フラグが0であると判定した場合には、ステップS1006に進む(S1004でNO)。
ステップS1005では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。さらに、調停部205は、書き込みデータMWDをメモリ106に書き込む処理を制御する。
ステップS1006では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。さらに、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。
ステップS1007では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力可能な状態にする。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。そして、調停部205は、書き込みデータMWDをメモリ106に書き込む処理を制御する。
ステップS1008では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。さらに、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。
ステップS1009では、調停部205は、書き込みトランザクションが次のクロック信号CKのサイクルにおいても継続するか否かを判定する。調停部205は、書き込みトランザクションが継続すると判定した場合には、ステップS1011に進む(S1009でYES)。調停部205は、書き込みトランザクションが完了したと判定した場合には、ステップS1012に進む(S1009でNO)。
ステップS1010では、調停部205は、読み出しトランザクションが次のクロック信号CKのサイクルにおいても継続するか否かを判定する。調停部205は、読み出しトランザクションが継続すると判定した場合には、ステップS1013に進む(S1010でYES)。調停部205は、読み出しトランザクションが完了したと判定した場合には、ステップS1014に進む(S1010でNO)。
ステップS1011では、調停部205は、優先フラグを1にし、図10のフローチャートが終了する。
ステップS1012では、調停部205は、優先フラグを0にし、図10のフローチャートが終了する。
ステップS1013では、調停部205は、優先フラグを0にし、図10のフローチャートが終了する。
ステップS1014では、調停部205は、優先フラグを1にし、図10のフローチャートが終了する。
図11は、書き込みトランザクションと読み出しトランザクションとが競合した場合のメモリ制御部105の制御方法を説明するためのタイミングチャートである。メモリ制御部105は、画像処理部102が発行した書き込みトランザクションと画像処理部103が発行した読み出しトランザクションを入力し、図10のフローチャートに基づく制御を行う。
時刻T1101では、書き込みアドレスインタフェース部201は、レディ信号WArおよびバリッド信号WAvが1のとき、書き込みアドレスWAおよび書き込みバースト転送長WLを画像処理部102から入力する。例えば、書き込みバースト転送長WLは4である。書き込みデータインタフェース部202は、レディ信号WDrの1を維持し、書き込みデータWDの入力を開始する。メモリ制御部105は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS1007に進む(S1003でNO)。
時刻T1102では、調停部205は、ステップS1007の処理を行う。ステップS1007では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。そして、調停部205は、メモリ106のメモリアドレスMAに書き込みデータMWDを書き込む処理を制御する。ステップS1009では、調停部205は、書き込みトランザクションが継続すると判定し、ステップS1011に進む。ステップS1011では、調停部205は、優先フラグを1にし、クロック信号CKのサイクルの処理を終える。調停部205は、同様の処理を繰り返し、4サイクルで、4つの書き込みデータWDをメモリ106に書き込む。
時刻T1103では、調停部205は、ステップS1007の処理を行う(S1003でNO)。ステップS1007では、調停部205は、メモリ106のメモリアドレスMAに書き込みデータMWDを書き込む処理を制御する。ステップS1009では、調停部205は、書き込みトランザクションが完了したと判定し、ステップS1012に進む。ステップS1012では、調停部205は、優先フラグを0にし、クロック信号CKのサイクルの処理を終える。
時刻T1104では、書き込みアドレスインタフェース部201は、レディ信号WArおよびバリッド信号WAvが1のとき、書き込みアドレスWAおよび書き込みバースト転送長WLを画像処理部102から入力する。例えば、書き込みバースト転送長WLは4である。書き込みデータインタフェース部202は、レディ信号WDrの1を維持し、書き込みデータWDの入力を開始する。メモリ制御部105は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS1007に進む(S1003でNO)。
時刻T1105では、調停部205は、ステップS1007の処理を行う。ステップS1007では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。そして、調停部205は、メモリ106のメモリアドレスMAに書き込みデータMWDを書き込む処理を制御する。ステップS1009では、調停部205は、書き込みトランザクションが継続すると判定し、ステップS1011に進む。ステップS1011では、調停部205は、優先フラグを1にし、クロック信号CKのサイクルの処理を終える。
時刻T1106は、バースト転送による書き込み処理の途中の時刻である。時刻T1106では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力し、レディ信号RArを0にする。例えば、読み出しバースト転送長RLは4である。読み出しアドレスインタフェース部203は、読み出しアドレスRAおよび読み出しバースト転送長RLを調停部205に出力する。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS1004に進む(S1003でYES)。ステップS1004では、調停部205は、優先フラグが1であるので、ステップS1005に進む(S1004でNO)。
ステップS1005では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDを入力する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。そして、調停部205は、書き込みデータMWDをメモリ106に書き込む処理を制御する。ステップS1009では、調停部205は、書き込みトランザクションが継続すると判定し、ステップS1011に進む。ステップS1011では、調停部205は、優先フラグを1にし、クロック信号CKのサイクルの処理を終える。調停部205は、同様の処理を繰り返し、4サイクルで、4つの書き込みデータWDをメモリ106に書き込む。
時刻T1107では、メモリ制御部105は、書き込みトランザクションが処理中でなく、読み出しトランザクションが処理中であるので、ステップS1008に進む(S1002でNO)。ステップS1008では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。そして、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。ステップS1010では、調停部205は、読み出しトランザクションが継続すると判定し、ステップS1013に進む。ステップS1013では、調停部205は、優先フラグを0にし、クロック信号CKのサイクルの処理を終える。調停部205は、同様の処理を繰り返し、4サイクルで、4つの読み出しデータMRDをメモリ106から読み出す。
時刻T1108では、メモリ制御部105は、書き込みトランザクションが処理中でなく、読み出しトランザクションが処理中であるので、ステップS1008に進む(S1002でNO)。ステップS1008では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。そして、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。ステップS1010では、調停部205は、読み出しトランザクションが完了したと判定し、ステップS1014に進む。ステップS1014では、調停部205は、優先フラグを1にし、クロック信号CKのサイクルの処理を終える。
時刻T1109では、調停部205は、読み出しトランザクションを完了し、レディ信号RArを1にする。
時刻T1110では、読み出しアドレスインタフェース部203は、レディ信号RArおよびバリッド信号RAvが1のとき、読み出しアドレスRAおよび読み出しバースト転送長RLを画像処理部103から入力し、レディ信号RArを0にする。例えば、読み出しバースト転送長RLは4である。読み出しアドレスインタフェース部203は、読み出しアドレスRAおよび読み出しバースト転送長RLを調停部205に出力する。メモリ制御部105は、書き込みトランザクションが処理中でなく、読み出しトランザクションが処理中であるので、ステップS1008に進む(S1002でNO)。
時刻T1111では、調停部205は、ステップS1008の処理を行う。ステップS1008では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。そして、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。ステップS1010では、調停部205は、読み出しトランザクションが継続すると判定し、ステップS1013に進む。ステップS1013では、調停部205は、優先フラグを0にし、クロック信号CKのサイクルの処理を終える。
時刻T1112は、バースト転送による読み出し処理の途中の時刻である。時刻T1112では、書き込みアドレスインタフェース部201は、レディ信号WArおよびバリッド信号WAvが1のとき、書き込みアドレスWAおよび書き込みバースト転送長WLを画像処理部102から入力する。例えば、書き込みバースト転送長WLは4である。書き込みデータインタフェース部202は、レディ信号WDrの1を維持し、書き込みデータWDの入力を開始する。メモリ制御部105は、書き込みトランザクションおよび読み出しトランザクションが処理中であるので、ステップS1004に進む(S1003でYES)。ステップS1004では、調停部205は、優先フラグが0であるので、ステップS1006に進む(S1004でNO)。
ステップS1006では、書き込みデータインタフェース部202は、レディ信号WDrを0にすることにより、書き込みデータWDの入力を停止する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを0にする。そして、調停部205は、メモリ106から読み出しデータMRDを読み出す処理を制御する。ステップS1010では、調停部205は、読み出しトランザクションが継続すると判定し、ステップS1013に進む。ステップS1013では、調停部205は、優先フラグを0にし、クロック信号CKのサイクルの処理を終える。
調停部205は、同様の処理を繰り返し、4サイクルで、4つの読み出しデータMRDをメモリ106から読み出す。ステップS1010では、調停部205は、読み出しトランザクションが完了したと判定し、ステップS1014に進む。ステップS1014では、調停部205は、優先フラグを1にする。メモリ制御部105は、書き込みトランザクションが処理中であり、読み出しトランザクションが処理中でないので、ステップS1007に進む(S1003でNO)。
時刻T1113では、調停部205は、ステップS1007の処理を行う。ステップS1007では、書き込みデータインタフェース部202は、レディ信号WDrを1にすることにより、書き込みデータWDの入力を再開する。調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。そして、調停部205は、書き込みデータMWDをメモリ106のメモリアドレスMAに書き込む処理を制御する。ステップS1009では、調停部205は、書き込みトランザクションが継続すると判定し、ステップS1011に進む。ステップS1011では、調停部205は、優先フラグを1にし、クロック信号CKのサイクルの処理を終える。調停部205は、同様の処理を繰り返し、4サイクルで、4つの書き込みデータWDをメモリ106に書き込む。
時刻T1114では、書き込みデータインタフェース部202は、書き込みデータWDの入力を完了する。メモリ制御部105は、レディ信号WArを1にして、書き込みトランザクションを入力するために待機する。ステップS1007では、調停部205は、チップイネーブル信号CEを1にし、ライトイネーブル信号WEを1にする。そして、調停部205は、書き込みデータMWDをメモリ106のメモリアドレスMAに書き込む処理を制御する。ステップS1009では、調停部205は、書き込みトランザクションが完了したと判定し、ステップS1012に進む。ステップS1012では、調停部205は、優先フラグを0にし、クロック信号CKのサイクルの処理を終える。
メモリ制御部105は、画像処理部102が発行する書き込みトランザクションと、画像処理部103が発行する読み出しトランザクションとが競合する場合、ステップS1004に進む(S1003でYES)。
時刻T1104~T1109は、上記の競合の場合において、メモリ制御部105が読み出しトランザクションよりも書き込みトランザクションを先に入力した場合である。その場合、調停部205は、書き込みトランザクションに基づく書き込みの制御を完了した後、読み出しトランザクションに基づく読み出しを行うように制御する。
時刻T1110~T1114は、上記の競合の場合において、メモリ制御部105が書き込みトランザクションよりも読み出しトランザクションを先に入力した場合である。その場合、調停部205は、読み出しトランザクションに基づく読み出しの制御を完了した後、書き込みトランザクションに基づく書き込みを行うように制御する。
以上説明したように、実施形態3によれば、調停部205は、書き込みトランザクションが継続する場合には、優先フラグを1にし、読み出しトランザクションが継続する場合には、優先フラグを1にする。これにより、調停部205は、書き込み処理と読み出し処理とが競合する場合であっても、読み出し処理を効率的に処理することができる。なお、メモリ制御部105は、電子機器100の動作状況によって、図4のフローチャートに基づく制御方法と図10のフローチャートに基づく制御方法とを選択的に行うこともできる。
100 電子機器、101 CPU、102 画像処理部、103 画像処理部、104 データバス、105 メモリ制御部、106 メモリ、201 書き込みアドレスインタフェース部、202 書き込みデータインタフェース部、203 読み出しアドレスインタフェース部、204 読み出しデータインタフェース部、205 調停部

Claims (12)

  1. メモリと、
    前記メモリに対して、書き込みバースト転送長を含む書き込みトランザクションを発行する第1のバスマスタと、
    前記メモリに対して、読み出しバースト転送長を含む読み出しトランザクションを発行する第2のバスマスタと、
    前記第1のバスマスタが発行した書き込みトランザクションと、前記第2のバスマスタが発行した読み出しトランザクションとが競合しない場合、前記第1のバスマスタが発行した前記書き込みトランザクションに応じて、前記書き込みバースト転送長に対応した長さの書き込みデータをバースト転送により前記メモリに書き込む書き込み処理を行い、
    前記第1のバスマスタが発行した書き込みトランザクションと、前記第2のバスマスタが発行した読み出しトランザクションとが競合しない場合、前記第2のバスマスタからの前記読み出しトランザクションに応じて、前記読み出しバースト転送長に対応した長さの読み出しデータをバースト転送により前記メモリから読み出す読み出し処理を行う調停部とを有し、
    前記調停部は、前記第1のバスマスタが発行した書き込みトランザクションによる第1の長さの書き込みバースト転送長のデータの書き込み処理と、前記第2のバスマスタが発行した読み出しトランザクションによる、前記第1の長さとは異なる第2の長さの読み出しバースト転送長のデータの読み出し処理とが競合する場合、クロックサイクルごとに、前記書き込みトランザクションに基づく前記メモリへのデータ書き込み処理と、前記読み出しトランザクションに基づく前記メモリからデータ読み出し処理とが交互に繰り返されるように制御することを特徴とする電子機器。
  2. 前記調停部は、前記第1のバスマスタが発行する書き込みトランザクションと、前記第2のバスマスタが発行する読み出しトランザクションとが競合する場合において、前回の処理が書き込み処理である場合には、読み出し処理を行うように制御し、前回の処理が読み出し処理である場合には、書き込み処理を行うように制御することを特徴とする請求項1に記載の電子機器。
  3. 前記調停部は、前記第1のバスマスタが発行する書き込みトランザクションと、前記第2のバスマスタが発行する読み出しトランザクションとが競合する場合、フラグに応じて、書き込み処理または読み出し処理を行うように制御することを特徴とする請求項1または2に記載の電子機器。
  4. 前記メモリは、シングルポートSRAMであることを特徴とする請求項1から3のいずれか1項に記載の電子機器。
  5. 前記調停部はクロック信号に同期して動作し、
    前記クロックサイクルは、前記クロック信号のクロックサイクルであることを特徴とする請求項1から4のいずれか1項に記載の電子機器。
  6. 前記第1のバスマスタは画像処理を行う第1の画像処理部であり、前記第2のバスマスタは画像処理を行う第2の画像処理部であり、
    前記第1の画像処理部は前記調停部を介してデータの書き込みとデータの読み出しとを行い、前記第2の画像処理部は前記調停部を介してデータの書き込みとデータの読み出しとを行うことを特徴とする請求項1から5のいずれか1項に記載の電子機器。
  7. 前記メモリは、複数のメモリバンクを有し、
    前記調停部は、前記第1のバスマスタが発行する書き込みトランザクションと、前記第2のバスマスタが発行する読み出しトランザクションとが競合する場合において、前記第1のバスマスタが発行する書き込みトランザクションの対象であるメモリバンクと、前記第2のバスマスタが発行する読み出しトランザクションの対象であるメモリバンクとが同じ場合には、クロックサイクルごとに、前記メモリバンクにデータを書き込む書き込み処理と、前記メモリバンクからデータを読み出す読み出し処理とが交互に繰り返されるように制御することを特徴とする請求項1または2に記載の電子機器。
  8. 前記調停部は、前記第1のバスマスタが発行する書き込みトランザクションと、前記第2のバスマスタが発行する読み出しトランザクションとが競合する場合において、前記第1のバスマスタが発行する書き込みトランザクションの対象であるメモリバンクと、前記第2のバスマスタが発行する読み出しトランザクションの対象であるメモリバンクとが異なる場合には、前記異なるメモリバンクに対して書き込みと読み出しを並列に行うように制御することを特徴とする請求項7に記載の電子機器。
  9. 前記複数のメモリバンクは、それぞれ、シングルポートSRAMであることを特徴とする請求項7または8に記載の電子機器。
  10. 前記調停部は、前記第1のバスマスタが発行する書き込みトランザクションと、前記第2のバスマスタが発行する読み出しトランザクションとが競合する場合、前記クロックサイクルごとに、前記メモリにデータを書き込む書き込み処理と、前記メモリからデータを読み出す読み出し処理とが交互に繰り返されるように制御する第1の制御と
    前記第1のバスマスタが発行する書き込みトランザクションと、前記第2のバスマスタが発行する読み出しトランザクションとが競合する場合において、前記読み出しトランザクションよりも前記書き込みトランザクションが先に入力された場合には、前記書き込みトランザクションに基づく書き込みが完了した後に、前記読み出しトランザクションに基づく読み出しが行われるように制御し、前記書き込みトランザクションよりも前記読み出しトランザクションが先に入力された場合には、前記読み出しトランザクションに基づく読み出しが完了した後に、前記書き込みトランザクションに基づく書き込みが行われるように制御する第2の制御の一方を行うことができるように構成されることを特徴とする請求項1から6のいずれか1項に記載の電子機器。
  11. 前記調停部は、前記競合していた前記書き込みトランザクションと前記読み出しトランザクションのいずれかが先に完了すると、前記競合していた前記書き込みトランザクションと前記読み出しトランザクションのうちの完了していない方による前記書き込みバースト転送長に対応したデータの書き込み処理または前記読み出しバースト転送長に対応したデータの読み出し処理が行われるように制御することを特徴とする請求項1から10のいずれか1項に記載の電子機器。
  12. メモリと、前記メモリに対して、書き込みバースト転送長を含む書き込みトランザクションを発行する第1のバスマスタと、前記メモリに対して、読み出しバースト転送長を含む読み出しトランザクションを発行する第2のバスマスタとを有する電子機器の制御方法であって、
    前記第1のバスマスタが発行した書き込みトランザクションと、前記第2のバスマスタが発行した読み出しトランザクションとが競合しない場合、前記第1のバスマスタが発行した前記書き込みトランザクションに応じて、前記書き込みバースト転送長に対応した長さの書き込みデータをバースト転送により前記メモリに書き込む書き込み処理を行い、
    前記第1のバスマスタが発行した書き込みトランザクションと、前記第2のバスマスタが発行した読み出しトランザクションとが競合しない場合、前記第2のバスマスタからの前記読み出しトランザクションに応じて、前記読み出しバースト転送長に対応した長さの読み出しデータをバースト転送により前記メモリから読み出す読み出し処理を行う調停ステップを有し、
    前記調停ステップは、前記第1のバスマスタが発行した書き込みトランザクションによる第1の長さの書き込みバースト転送長のデータの書き込み処理と、前記第2のバスマスタが発行した読み出しトランザクションによる、前記第1の長さとは異なる第2の長さの読み出しバースト転送長のデータの読み出し処理とが競合する場合、クロックサイクルごとに、前記書き込みトランザクションに基づく前記メモリへのデータ書き込み処理と、前記読み出しトランザクションに基づく前記メモリからデータ読み出し処理とが交互に繰り返されるように制御することを特徴とする制御方法。
JP2021121626A 2021-07-26 2021-07-26 電子機器および制御方法 Active JP7746056B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021121626A JP7746056B2 (ja) 2021-07-26 2021-07-26 電子機器および制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021121626A JP7746056B2 (ja) 2021-07-26 2021-07-26 電子機器および制御方法

Publications (3)

Publication Number Publication Date
JP2023017380A JP2023017380A (ja) 2023-02-07
JP2023017380A5 JP2023017380A5 (ja) 2024-07-19
JP7746056B2 true JP7746056B2 (ja) 2025-09-30

Family

ID=85157878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021121626A Active JP7746056B2 (ja) 2021-07-26 2021-07-26 電子機器および制御方法

Country Status (1)

Country Link
JP (1) JP7746056B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067328A (ja) 1999-08-30 2001-03-16 Mitsubishi Electric Corp 情報処理装置およびそのアクセス制御方法
JP2002304368A (ja) 2001-04-05 2002-10-18 Olympus Optical Co Ltd データ処理装置及びその装置におけるアクセス調停方法
JP2005346637A (ja) 2004-06-07 2005-12-15 Ricoh Co Ltd 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
JP2014179677A (ja) 2013-03-13 2014-09-25 Ricoh Co Ltd メモリアクセス制御装置、画像形成装置及びメモリアクセス制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60245063A (ja) * 1984-05-21 1985-12-04 Fujitsu Ltd 共用メモリアクセス方式
JPS63236153A (ja) * 1987-03-24 1988-10-03 Nec Corp 記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067328A (ja) 1999-08-30 2001-03-16 Mitsubishi Electric Corp 情報処理装置およびそのアクセス制御方法
JP2002304368A (ja) 2001-04-05 2002-10-18 Olympus Optical Co Ltd データ処理装置及びその装置におけるアクセス調停方法
JP2005346637A (ja) 2004-06-07 2005-12-15 Ricoh Co Ltd 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
JP2014179677A (ja) 2013-03-13 2014-09-25 Ricoh Co Ltd メモリアクセス制御装置、画像形成装置及びメモリアクセス制御方法

Also Published As

Publication number Publication date
JP2023017380A (ja) 2023-02-07

Similar Documents

Publication Publication Date Title
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
JPH0962563A (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
MX2012005183A (es) Linea de espera de comandos para componente periferico.
JP3636672B2 (ja) 表示処理装置
JP5241384B2 (ja) 分散共有メモリ型マルチプロセッサ及びデータ処理方法
TWI326031B (en) Arbitration for memory device with commands
JP7746056B2 (ja) 電子機器および制御方法
US10061737B2 (en) Signal processing device, method of signal processing, storage medium, and electronic musical instrument
CN1707694B (zh) 用于多线程流水线总线系统的存储控制器
JPH08221319A (ja) 半導体記憶装置
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
JP4388005B2 (ja) コンテキスト切替え装置
JP4112813B2 (ja) バスシステム及びそのコマンドの伝達方法
CN114564423A (zh) 基于镜像存储的dram访问系统
JP2003015968A (ja) バスシミュレータ
JP2012043083A (ja) 競合試験装置
CN114721978B (zh) 一种加快Nand Flash控制命令执行速度的方法及系统
US8099562B2 (en) Scalable interface for a memory array
JPH07146814A (ja) メモリ装置
JP2013120587A (ja) シリアル転送装置及びシリアル転送方法
JP2022185463A (ja) 半導体装置
JP2005092225A (ja) 表示処理装置
JP6519343B2 (ja) データ処理装置
TW202407702A (zh) 虛擬靜態隨機存取記憶體
JP5448595B2 (ja) 制御装置及び制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240710

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250724

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250917

R150 Certificate of patent or registration of utility model

Ref document number: 7746056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150