(57)【要約】      （修正有）【課題】高い優先順位のメモリコマンドの発行数を抑制してメモリアクセス制御を高効率化し、簡略な構成で高スループット及び短レイテンシを実現したデータ処理装置を提供する。【解決手段】データ処理装置は、複数のバスマスタ10とDRAMコントローラとを備える。複数のバスマスタ10の各々は、DRAMに対するアクセスを指定するメモリコマンドを発行する処理部11と、データバッファ12,13と、データバッファ12,13の空き容量に応じて、メモリコマンドの優先順位を示す優先順位情報を当該メモリコマンドに対応づけて生成する第１及び第２の検出回路14,15とを備える。DRAMコントローラは、複数のバスマスタ10の各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する優先順位情報に基づいて決定する。【選択図】図２
2014228915.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタと、前記複数のバスマスタ及びデータを格納するメモリに対してデータ転送可能に接続されており前記メモリへのデータの書き込み及び前記メモリからのデータの読み出しのうち少なくともいずれか一方を制御するメモリ制御装置とを備えたデータ処理装置であって、
前記複数のバスマスタの各々は、
前記メモリに対するアクセスを指定するメモリコマンドを発行するコマンド発行部と、
データバッファと、
前記データバッファの空き容量に応じて、前記メモリコマンドの優先順位を示す第1の優先順位情報を当該メモリコマンドに対応づけて生成する優先順位情報生成部と、を備え、
前記メモリ制御装置は、
前記複数のバスマスタの各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する前記第１の優先順位情報に基づいて決定する処理順序決定部と、
前記処理順序決定部によって決定された処理順序で、前記複数のバスマスタからの各々のメモリコマンドを実行するコマンド処理部と、を備える、
ことを特徴とするデータ処理装置。
【請求項２】
前記メモリ制御装置は、前記メモリコマンドを優先して処理する順序を、当該メモリコマンドを発行したバスマスタごとに定める第２の優先順位情報を取得する優先順位情報取得部を備え、
前記処理順序決定部は、当該メモリ制御装置の外部からの指示に従って、前記第1の優先順位情報と前記第２の優先順位情報とのうち一方の情報に基づいて、前記メモリコマンドの処理順序を決定する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記バスマスタにおいて、
前記データバッファは、前記メモリに書き込むデータである書き込みデータを記憶するライトデータバッファであり、
前記コマンド発行部は、前記書き込みデータを前記メモリに対して書き込む場合、前記メモリコマンドとしてライトコマンドを発行し、
前記優先順位情報生成部は、前記空き容量が小さい場合のライトコマンドを、前記空き容量が大きい場合のライトコマンドより優先して実行するように前記第１の優先順位情報を生成する、
ことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記バスマスタにおいて、
前記データバッファは、前記メモリから読み出すデータである読み出しデータを記憶するリードデータバッファであり、
前記コマンド発行部は、前記読み出しデータを前記メモリから読み出す場合、前記メモリコマンドとしてリードコマンドを発行し、
前記優先順位情報生成部は、前記空き容量が大きい場合のリードコマンドを、前記空き容量が小さい場合のリードコマンドより優先して実行するように前記第１の優先順位情報を生成する、
ことを特徴とする請求項１乃至請求項３のうちいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＤＲＡＭ（Dynamic Random Access Memory）等のメモリに対するアクセスを制御するデータ処理装置に関する。
【背景技術】
【０００２】
近年、大容量且つ高速アクセス可能なメモリとして、ＤＲＡＭ（Dynamic Random Access Memory）がデータ処理装置に使用されることが多い。但し、ＤＲＡＭは、バンクを跨ぐアクセスや、書き込みと読み出しとの切り替え等によって、そのスループットが低下してしまう。
このことを鑑み、バスマスタによって発行されたデータの書き込みや読み出しを指定するメモリコマンドの種別及びアクセス対象のメモリアドレスを参照して、メモリコマンドの処理順序を並び替え、それによってスループットの低下を抑制するデータ処理装置が知られている。しかしながら、当該並べ替えによってアクセスレイテンシが増加してしまうメモリコマンドが生じ、アクセスレイテンシのワースト値が増加するといった問題がある。
【０００３】
そこで、発行するメモリコマンドの処理の優先順位を、各々のバスマスタ毎に予め設定する技術が知られている。この技術によれば、予めバスマスタ毎に固定的に設定された優先順位に従って各々のメモリコマンドが並び替えられて実行される。このような技術では、バスマスタ毎に設定した優先順位に従って各バスマスタにメモリコマンドを発行させることで、短レイテンシの実現を目指している。
【０００４】
さらには、複数のバスマスタによって為されたメモリアクセスが競合した場合に生じるメモリアクセスレイテンシの増加を抑制する為の技術として、例えば特許文献１には次のような技術が開示されている。すなわち、特許文献１に開示されている技術では、複数のバスマスタによって発行されたメモリアクセス要求に対し、当該メモリアクセス要求の転送単位より小さい複数のコマンドを生成する。そして、それら複数のコマンドを、メモリに対して、メモリアクセス要求の要求元毎に交互に発行する。つまり、特許文献１には、複数のメモリアクセス要求を時分割並列的に実行するメモリ制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−４８２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、バスマスタ毎に設定した優先順位に従って各バスマスタにメモリコマンドを発行させた場合、優先順位は固定で変わらない為、優先順位の高いメモリコマンドが多数発行されてしまい、ＤＲＡＭにとってはランダムなデータアクセスに近い状態が生じ得る。そして、このような状態はアクセスペナルティの頻発を招き得る。つまり、短レイテンシを要求するメモリコマンドが多数発行されてしまうと、データ処理装置のスループットが悪化する。なお、特許文献１に開示された技術は、複数のメモリアクセス要求を時分割並列的に実行するに過ぎず、優先順位の高いメモリコマンドが多数発行されることを抑制することができない。
【０００７】
本発明は、上述した事情に鑑みてなされたものであり、高い優先順位のメモリコマンドの発行数を抑制し、メモリに対するランダムなデータアクセスに近い状態が生じることを回避すると共に、高スループットで短レイテンシなデータ処理装置を簡略な構成で実現することを解決課題の一つとする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するために本発明の第１の態様に係るデータ処理装置は、複数のバスマスタと、前記複数のバスマスタ及びデータを格納するメモリに対してデータ転送可能に接続されており前記メモリへのデータの書き込み及び前記メモリからのデータの読み出しのうち少なくともいずれか一方を制御するメモリ制御装置とを備えたデータ処理装置であって、前記複数のバスマスタの各々は、前記メモリに対するアクセスを指定するメモリコマンドを発行するコマンド発行部と、データバッファと、前記データバッファの空き容量に応じて、前記メモリコマンドの優先順位を示す第１の優先順位情報を当該メモリコマンドに対応づけて生成する優先順位情報生成部とを備え、前記メモリ制御装置は、前記複数のバスマスタの各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する前記第１の優先順位情報に基づいて決定する処理順序決定部と、前記処理順序決定部によって決定された処理順序で、前記複数のバスマスタからの各々のメモリコマンドを実行するコマンド処理部とを備えることを特徴とする。
【０００９】
本発明の第１の態様に係るデータ処理装置によれば、各バスマスタが備えるデータバッファの空き容量に応じた処理順序を示す第１の優先順位情報が対応付けられたメモリコマンドが、各バスマスタによって発行される。これにより、複数のバスマスタによって発行された複数のメモリコマンドが競合した場合であっても、適切な順序でそれらメモリコマンドが実行される為、当該データ処理装置全体としてのスループットが向上する。
すなわち、第１の態様に係るデータ処理装置によれば、各バスマスタが備えるデータバッファの空き容量に基づいて、メモリコマンドを発行するのに適したタイミングを検出し、当該タイミングを利用してメモリコマンドの発行を行う。これにより、データバッファが空になるまで、換言すればバスマスタの処理が待機状態となるまで、メモリコマンドの発行を行わない従来のデータ処理装置に比べて、メモリコマンドの発行数を大きく増加させることができる。従って、前記一態様は、所謂レイテンシクリティカルなバスマスタを有するデータ処理装置にも適用可能である。
つまり、第１の態様に係るデータ処理装置によれば、優先順位の高いメモリコマンドが多く発行されることを抑制できる為、メモリに対するランダムなデータアクセスに近い状態が生じることを回避すると共に、高スループットで短レイテンシなデータ処理装置を簡略な構成で実現することができる。ライトデータバッファに空き容量が無い状態、及び、リードデータバッファが全て空き容量の状態は、データ処理装置のスループット及びレイテンシを悪化させる要因の１つである。第１の態様に係るデータ処理装置では、そのような状態が生じる頻度を減少させることで、高スループット及び短レイテンシを実現する。
【００１０】
本発明の第２の態様に係るデータ処理装置は、第１の態様に係るデータ処理装置であって、前記メモリ制御装置は、前記メモリコマンドを優先して処理する順序を、当該メモリコマンドを発行したバスマスタごとに定める第２の優先順位情報を取得する優先順位情報取得部を備え、前記処理順序決定部は、当該メモリ制御装置の外部からの指示に従って、前記第1の優先順位情報と前記第２の優先順位情報とのうち一方の情報に基づいて、前記メモリコマンドの処理順序を決定する、ことを特徴とする。
このように構成することで、当該データ処理装置は、第１の優先順位情報に基づいてメモリコマンドの処理順序を決定するモードと、第２の優先順位情報に基づいてメモリコマンドの処理順序を決定するモードとに切り替え可能になる。これにより、メモリコマンドの処理順序を、データ処理装置全体としてのスループットを向上させるという観点以外の観点をも考慮して定めることが可能となる。すなわち、データ処理装置全体としてのスループットを向上させるような処理に加えて、特定のバスマスタによって発行されるメモリコマンドを常に所定の優先順位で処理させることが可能となる。所定の優先順位としては、例えば最高の優先順位を挙げることができる。
【００１１】
本発明の第３の態様に係るデータ処理装置は、第１または第２の態様に係るデータ処理装置であって、前記バスマスタにおいて、前記データバッファは、前記メモリに書き込むデータである書き込みデータを記憶するライトデータバッファであり、前記コマンド発行部は、前記書き込みデータを前記メモリに対して書き込む場合、前記メモリコマンドとしてライトコマンドを発行し、前記優先順位情報生成部は、前記空き容量が小さい場合のライトコマンドを、前記空き容量が大きい場合のライトコマンドより優先して実行するように前記第１の優先順位情報を生成することを特徴とする。
このように構成することで、ライトデータバッファの空き容量に応じて、ライトコマンドの処理順序を適切に並び替えることが可能となる。すなわち、ライトデータバッファの空き容量が少ない場合、換言すればライトコマンドを早急に処理しなければならない場合には、バスマスタは、優先順位が高い第１の優先順位情報を対応付けたライトコマンドを発行する。すなわち、ライトデータバッファに空き容量が無い状態が生じる頻度を大幅に減少させることができる。一方、ライトデータバッファの空き容量が大きい場合、換言すればライトコマンドを早急に処理する必要性がない場合には、バスマスタは、優先順位が低い第１の優先順位情報を対応付けたライトコマンドを発行する。これにより、メモリコマンドの並び替えにおける自由度が大きくなり、データ処理装置全体としてのスループットが向上する。
【００１２】
本発明の第４の態様に係るデータ処理装置は、第１乃至第３の態様のいずれかの態様に係るデータ処理装置であって、前記バスマスタにおいて、前記データバッファは、前記メモリから読み出すデータである読み出しデータを記憶するリードデータバッファであり、前記コマンド発行部は、前記読み出しデータを前記メモリから読み出す場合、前記メモリコマンドとしてリードコマンドを発行し、前記優先順位情報生成部は、前記空き容量が大きい場合のリードコマンドを、前記空き容量が小さい場合のリードコマンドより優先して実行するように前記第１の優先順位情報を生成することを特徴とする。
このように構成することで、バスマスタは、リードデータバッファに空き容量が生じると、当該空き容量の大きさに応じた優先順位のリードコマンドを発行する。すなわち、リードデータバッファにおいて生じた僅かな空き容量をも無駄にしないように、リードコマンドを発行する。従って、リードデータバッファが全て空き容量の状態が生じる頻度を大幅に減少させることができる。また、優先順位の低い第１の優先順位情報を対応付けしてリードコマンドを発行することが可能となる。すなわち、従来のデータ処理装置のように優先順位の高いリードコマンドを散発的に発行する代わりに、優先順位の低いリードコマンドを適切なタイミングで数多く発行することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るデータ処理装置の一構成例を示すブロック図である。
【図２】図１に示すデータ処理装置が備えるバスマスタの一構成例を示す図である。
【図３】本発明の一実施形態に係るデータ処理装置による優先順位情報生成処理の一例を示す図である。
【図４】複数のバスマスタが備える各々のリードデータバッファの空き容量の時間変化のグラフを示す図である。
【図５】複数のリードコマンドが競合した場合に、ＤＲＡＭコントローラによって行われるリードコマンドの処理順序の並べ替え処理の概念を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の一実施形態に係るデータ処理装置を説明する。
図１は、本発明の一実施形態に係るデータ処理装置の一構成例を示すブロック図である。データ処理装置１は、ＤＲＡＭ２１に対してデータの書き込み及び読み出しを実行する装置であって、複数のバスマスタと、ＤＲＡＭコントローラ３１と、を備える。本例では、複数のバスマスタとして、第１バスマスタ１０−１、第２バスマスタ１０−２、及び第３バスマスタ１０−３を採用するが、バスマスタの種類や数は、これに限定されるものではない。また、これら各構成部材は、例えば内部バス等の制御線及びデータ線によって相互に通信可能に接続されている。
【００１５】
第１バスマスタ１０−１は例えばＣＰＵ(Central Processing Unit)であり、第２バスマスタ１０−２は例えば画像処理を実行するモジュールであり、第３バスマスタ１０−３は例えば音声処理を実行するモジュールである。以降、第１バスマスタ１０−１乃至第３バスマスタ１０−３に共通の事項を説明する際には、それらを「バスマスタ１０」と総称する。バスマスタ１０の構成については、後に図２を参照して詳述する。ＤＲＡＭ２１は、当該データ処理装置１が備える複数のバスマスタによって発行されたメモリコマンドを受付ける。
【００１６】
ＤＲＡＭコントローラ３１は、バスマスタ１０によって発行されたメモリコマンドに従って、ＤＲＡＭ２１を制御するメモリ制御装置である。すなわち、ＤＲＡＭコントローラ３１は、ＤＲＡＭ２１へのデータの書き込み、及びＤＲＡＭ２１からのデータの読み出しを制御する。ＤＲＡＭコントローラ３１は、バスマスタ１０及びＤＲＡＭ２１に、制御線とデータ線とで接続されている。制御線はメモリコマンド等の制御信号の送受信に用いられ、データ線は書き込み／読み出し対象のデータの送受信に用いられる。すなわち、ＤＲＡＭコントローラ３１は、制御線を介して送受される制御信号に基づいて、データ線を介してデータの入出力を行う。
【００１７】
ＤＲＡＭコントローラ３１は、複数のバスマスタ１０の各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する優先順位情報に基づいて決定する処理順序決定部として機能し、且つ、この処理順序決定部によって決定された処理順序で、前記複数のバスマスタ１０からの各々のメモリコマンドを実行するコマンド処理部として機能する。
「優先順位情報」は、メモリコマンドの実行順序を決定する情報であって、バスマスタ１０が生成する情報である。本実施形態に係るデータ処理装置１では、ライトデータバッファ１２及びリードデータバッファ１３の空き容量に応じて優先順位を設定した優先順位情報を、メモリコマンドに対応付けて生成する。これにより、ライトデータバッファ１２がフル（full）状態となる頻度、及びリードデータバッファ１３がエンプティ（empty）状態となる頻度を大幅に減少させることができる（図２参照）。
ライトデータバッファ１２に空き容量が無い状態、及び、リードデータバッファ１３が全て空き容量の状態は、データ処理装置のスループット及びレイテンシを悪化させる要因の１つである。本実施形態に係るデータ処理装置１では、そのような状態が生じる頻度を減少させることで、高スループット及び短レイテンシを実現する。
【００１８】
図２は、バスマスタ１０の一構成例を示すブロック図である。同図に示すように、バスマスタ１０は、処理部１１と、ライトデータバッファ１２と、第１の検出回路１４と、リードデータバッファ１３と、第２の検出回路１５とを備える。
処理部１１は、メモリコマンドとして、ＤＲＡＭ２１への書き込みコマンド（以下、ライトコマンドと称する。）と、ＤＲＡＭ２１からの読み出しコマンド（以下、リードコマンドと称する）とを発行する。換言すれば、処理部１１は、ＤＲＡＭ２１に対するアクセスを指定するメモリコマンドを発行するコマンド発行部として機能する。
【００１９】
処理部１１は、ＤＲＡＭ２１に対してデータの書き込みを実行する場合、当該書き込み対象となるライトデータと、ＤＲＡＭ２１における書き込み先のアドレス情報を含むライトコマンドと、第１の検出回路１４によって生成された優先順位情報と、を互いに対応付けて当該バスマスタ１０から出力する。
また、処理部１１は、ＤＲＡＭ２１からデータの読み出しを実行する場合、当該読み込み対象のリードデータが記憶されているＤＲＡＭ２１上のアドレス情報を含むリードコマンドと、第２の検出回路１５によって生成された優先順位情報と、を互いに対応付けて当該バスマスタ１０から出力する。
なお、各バスマスタ１０−１，１０−２，１０−３の処理部１１に特有の処理は、例えば次のような処理である。第１バスマスタ１０−１の処理部１１は、当該データ処理装置１の各部に係る制御処理を行う。第２バスマスタ１０−２の処理部１１は、画像処理を行う。第３バスマスタ１０−３の処理部１１は、音声処理を行う。
【００２０】
ライトデータバッファ１２は、ライトコマンドの発行に先立って処理部１１から出力されたライトデータを一時的に保存し、その後ＤＲＡＭコントローラ３１を介してＤＲＡＭ２１へ出力する。リードデータバッファ１３は、処理部１１によって発行されたリードコマンドに応じてＤＲＡＭ２１から読み出されてＤＲＡＭコントローラ３１から送信されてきたリードデータを一時的に保存し、その後、処理部１１へ出力する。
【００２１】
第１の検出回路１４は、ライトデータバッファ１２の空き容量を検出し、この空き容量に基づいて優先順位情報を生成し、この優先順位情報を処理部１１及びＤＲＡＭコントローラ３１に出力する。
すなわち、第１の検出回路１４は、ライトデータバッファ１２の空き容量に応じて、メモリコマンドの優先順位を示す優先順位情報を、当該メモリコマンドに対応付けて生成する優先順位情報生成部として機能する。つまり、第１の検出回路１４は、ライトデータバッファ１２の空き容量を検出すると当該空き容量に応じた優先順位をメモリコマンドに対して付与する。
【００２２】
第２の検出回路１５は、リードデータバッファ１３の空き容量を検出し、この空き容量に基づいて優先順位情報を生成し、この優先順位情報を処理部１１及びＤＲＡＭコントローラ３１に出力する。
すなわち、第２の検出回路１５は、リードデータバッファ１３の空き容量に応じて、メモリコマンドの優先順位を示す優先順位情報を、当該メモリコマンドに対応付けて生成する優先順位情報生成部として機能する。つまり、第２の検出回路１５は、リードデータバッファ１３の空き容量を検出すると当該空き容量に応じた優先順位をメモリコマンドに対して付与する。
【００２３】
これら第１の検出回路１４及び第２の検出回路１５による優先順位情報の生成処理は、本実施形態に係るデータ処理装置１の主な特徴の一つである。すなわち、本実施形態に係るデータ処理装置１では、ライトデータバッファ１２及びリードデータバッファ１３の空き容量を監視し、空き容量が生じると当該空き容量の大きさに応じた優先順位情報をメモリコマンドに対応付けて生成する。
この点は、バスマスタのリードデータバッファ１３が空の状態となるまでは当該バスマスタにメモリコマンドを発行させず、リードデータバッファ１３が空の状態となると集中してメモリコマンドを発行する従来のデータ処理装置と大きく異なる点である。そして、そのような処理を行う従来のデータ処理装置に比べて、本実施形態に係るデータ処理装置１によれば、ライトデータバッファ１２がフル（full）状態となる頻度、及びリードデータバッファ１３がエンプティ（empty）状態となる頻度を大幅に減少させることができる。従って、図３を参照して後述するように、優先順位の低い優先順位情報をリードデータバッファ１３の空き容量に対応付けしてリードコマンドを発行することが可能となる。
【００２４】
つまり、本実施形態に係るデータ処理装置１では、短レイテンシを要求するメモリコマンド、すなわち高い優先順位のメモリコマンドの発行数を抑制することで、メモリ制御装置であるＤＲＡＭコントローラ３１によるメモリコマンドの並び替え処理における自由度が大きくなり、データ処理装置全体としてのスループットが向上する。
【００２５】
複数のメモリコマンドが競合している場合、ＤＲＡＭコントローラ３１は、他のメモリコマンドよりも高い優先順位を示す優先順位情報が対応付けられたメモリコマンドを、他のメモリコマンドに優先して実行する。
すなわち、本実施形態に係るデータ処理装置１においては、ＤＲＡＭコントローラ３１は、バスマスタ１０によってメモリコマンドが発行されると、各々のメモリコマンドに対応付けられた優先順位情報を参照し、優先順位が高いメモリコマンドから順に処理するように、それら複数のメモリコマンドを並び替える。
【００２６】
図３は、本発明の一実施形態に係るデータ処理装置が備えるバスマスタによる優先順位情報生成処理の一例を示す図である。ここでは、リードコマンドに係る優先順位情報の生成処理について説明する。
図３上段に示すグラフでは、横軸に「時間」をとり、縦軸に「データバッファ（リードデータバッファ１３）における使用データ量」をとっている。図３上段に示すグラフにおいて、破線Ｌｍはリードデータバッファ１３で記憶可能な最大容量を示しており、実線Ｌｄはリードデータバッファ１３における使用中のデータ量の変化を示している。図３下段に示すグラフは、横軸に「時間」をとり、縦軸に「リードコマンドに対応付けられた優先順位」をとっている。図３下段に示すグラフにおいて、実線Ｌｐは優先順位情報に示されている優先順位の高さの変化を示している。
【００２７】
第２の検出回路１５は、各時刻における空き容量ｄ１，ｄ２，ｄ３，・・・を検出し、それら空き容量に基づいて、当該時点で発行されるリードコマンドに係る優先順位を決定して優先順位情報を生成し、処理部１１及びＤＲＡＭコントローラ３１へ出力する。詳細には、第２の検出回路１５は、次のように優先順位情報を生成する。
【００２８】
図３に示す期間Ｔ１，Ｔ３，Ｔ９においては、リードデータバッファ１３に空き容量が存在しない為、当該期間Ｔ１，Ｔ３，Ｔ９においてはリードデータバッファ１３が空状態となってしまう可能性を考慮する必要は無いと言える。従って、当該期間Ｔ１，Ｔ３，Ｔ９において発行するリードコマンドには、最低の優先順位を示す優先順位情報である「優先順位情報Ｐ０」が対応付けられる。
【００２９】
期間Ｔ２，Ｔ４，Ｔ８においては、リードデータバッファ１３に空き容量ｄ１が生じている。従って、第２の検出回路１５は、期間Ｔ２，Ｔ４，Ｔ８において、空き容量ｄ１に応じた優先順位を示す優先順位情報を生成して出力する。ここでは、説明の便宜上、空き容量ｄ１に対応する優先順位情報を「優先順位情報Ｐ１」と称する。つまり、期間Ｔ２，Ｔ４，Ｔ８に発行されるリードコマンドには、優先順位情報Ｐ１が対応付けられる。
【００３０】
本実施形態に係るデータ処理装置１では、バスマスタ１０の処理部１１は、図３に示すように、たとえ僅かな空き容量であってもリードデータバッファ１３に空き容量が生じると、当該空き容量の大きさに応じた優先順位のリードコマンドを発行する。
他方、従来のデータ処理装置では、リードデータバッファ１３の全容量が空きの状態となるまで、リードコマンドを発行しないので、リードコマンドのレイテインシが悪化する。従来のデータ処理装置では、優先順位の高いメモリコマンドが多く発行されることとなり、メモリ制御装置であるＤＲＡＭコントローラによるリードコマンドの処理順序の並び替えに制約が生じ、当該並び替えの自由度が小さくなり、装置全体としてのスループットが低下してしまう。
【００３１】
このような事情を鑑みて為された本実施形態に係るデータ処理装置１では、図３に示すように、リードデータバッファ１３において生じた僅かな空き容量をも無駄にしないようにリードコマンドが発行される。従って、リードデータバッファ１３がエンプティ（empty）状態となる頻度が大幅に減少し、当該データ処理装置１全体のスループットが向上する。
【００３２】
期間Ｔ５，Ｔ７においては、リードデータバッファ１３には、空き容量ｄ１よりも大きい空き容量である空き容量ｄ２が生じている。従って、第２の検出回路１５は、期間Ｔ５，Ｔ７において、空き容量ｄ２に応じた優先順位を示す優先順位情報を生成して出力する。本例では、説明の便宜上、空き容量ｄ２に対応する優先順位を「優先順位情報Ｐ２」と称する。つまり、期間Ｔ５，Ｔ７に発行されるリードコマンドには、優先順位情報Ｐ２が対応付けられる。
【００３３】
期間Ｔ６において、リードデータバッファ１３には、空き容量ｄ２よりも大きい空き容量である空き容量ｄ３が生じている。従って、第２の検出回路１５は、期間Ｔ６において空き容量ｄ３に応じた優先順位を示す優先順位情報を生成して出力する。本例では、説明の便宜上、空き容量ｄ３に対応する優先順位を「優先順位情報Ｐ３」と称する。つまり、期間Ｔ６に発行されるリードコマンドには、優先順位情報Ｐ３が対応付けられる。
【００３４】
ここで、優先順位情報Ｐ０〜Ｐ３は、Ｐの後ろに付記されている数字が大きい程、優先順位が高い優先順位情報である。また、上述したように、空き容量ｄ１〜ｄ３の大きさは、ｄ１＜ｄ２＜ｄ３となっている。つまり、本実施形態に係るデータ処理装置１では、リードデータバッファ１３の空き容量の大きさに応じた優先順位情報が生成され、当該優先順位情報が対応付けられたリードコマンドがバスマスタ１０から出力される。
このように、本実施形態に係るデータ処理装置１では、発行されるリードコマンドの優先順位は、発行時のリードデータバッファ１３の空き容量に応じた優先順位である。従って、各リードコマンドは適切な優先順位で発行され、装置全体としてのスループットも向上する。
【００３５】
以下、複数のバスマスタ１０−１，１０−２，１０−３によって発行されたリードコマンドが競合した場合におけるリードコマンドの並び替え例を説明する。図４は、複数のバスマスタ１０−１，１０−２，１０−３が備える各々のリードデータバッファの空き容量の時間変化のグラフを示す図である。同図に示すグラフは、縦軸にバスマスタ１０の空き容量をとり、横軸に時間をとったグラフである。
【００３６】
実線Ｌ１は第１バスマスタ１０−１が備えるリードデータバッファの空き容量の時間変化を示している。破線Ｌ２は第２バスマスタ１０−２が備えるリードバッファの空き容量の時間変化を示している。一点鎖線Ｌ３は第３バスマスタ１０−３が備えるリードバッファの空き容量の時間変化を示している。
【００３７】
期間Ｔ１０，Ｔ１３においては、第１バスマスタ１０−１の空き容量はｄ２であり、第２バスマスタ１０−２の空き容量はｄ３であり、第３バスマスタ１０−３の空き容量はｄ１である。
従って、期間Ｔ１０，Ｔ１３においては、第１バスマスタ１０−１によって発行されるリードコマンドには優先順位情報Ｐ２が対応付けられ、第２バスマスタ１０−２によって発行されるリードコマンドには優先順位情報Ｐ３が対応付けられ、第３バスマスタ１０−３によって発行されるリードコマンドには優先順位情報Ｐ１が対応付けられる。
つまり、期間Ｔ１０，Ｔ１３において発行されるリードコマンドの優先順位の高さは、高い順に第２バスマスタ１０−２、第１バスマスタ１０−１、第３バスマスタ１０−３の順となる。
【００３８】
期間Ｔ１１，Ｔ１２においては、第１バスマスタ１０−１の空き容量はｄ３であり、第２バスマスタ１０−２の空き容量はｄ２であり、第３バスマスタ１０−３の空き容量はｄ１である。
従って、期間Ｔ１１，Ｔ１２においては、第１バスマスタ１０−１によって発行されるリードコマンドには優先順位情報Ｐ３が対応付けられ、第２バスマスタ１０−２によって発行されるリードコマンドには優先順位情報Ｐ２が対応付けられ、第３バスマスタ１０−３によって発行されるリードコマンドには優先順位情報Ｐ１が対応付けられる。
つまり、期間Ｔ１１，Ｔ１２において発行されるリードコマンドの優先順位の高さは、高い順に第１バスマスタ１０−１、第２バスマスタ１０−２、第３バスマスタ１０−３の順となる。
【００３９】
以下、上述した処理によって各リードコマンドに対応付けられた優先順位情報Ｐに基づくリードコマンドの処理順序の並び替えについて、一例を挙げて説明する。図５は、複数のリードコマンドが競合した場合に、ＤＲＡＭコントローラ３１によって行われるリードコマンドの処理順序の並べ替えの概念を示す図である。
同図に示す例では、５個のリードコマンドＲａ，Ｒｂ，Ｒｃ，Ｒｄ，Ｒｅが競合している。リードコマンドＲａには優先順位情報Ｐ３が対応付けられている。リードコマンドＲｂには優先順位情報Ｐ３が対応付けられている。リードコマンドＲｃには優先順位情報Ｐ２が対応付けられている。リードコマンドＲｄには優先順位情報Ｐ１が対応付けられている。リードコマンドＲｅには優先順位情報Ｐ２が対応付けられている。
【００４０】
また、同図に示す例は、４個のリードコマンドＲａ，Ｒｂ，Ｒｃ，Ｒｄが既にＤＲＡＭコントローラ３１に入力されており、その状態のＤＲＡＭコントローラ３１に新たにリードコマンドＲｅが入力された例である。
上述したように本例において各優先順位情報Ｐは、Ｐに付記されている数字が大きい程、優先順位が高い。従って、新たにＤＲＡＭコントローラ３１に入力されたリードコマンドＲｅに対応付けられた優先順位情報Ｐ２は、既にＤＲＡＭコントローラ３１に入力されている優先順位情報Ｐ１よりも優先順位が高い。
【００４１】
この状況において、ＤＲＡＭコントローラ３１は、新たに当該ＤＲＡＭコントローラ３１に入力されたリードコマンドＲｅと、当該ＤＲＡＭコントローラ３１に先に入力されているもののリードコマンドＲｅよりも低い優先順位の優先順位情報Ｐが対応付けられたリードコマンドＲｄとの処理順序を入れ替える。つまり、ＤＲＡＭコントローラ３１は、リードコマンドＲｅとリードコマンドＲｄとの処理順序を、優先順位情報Ｐに基づいて並べ替える。
以上、メモリコマンドの並び替え処理について、リードコマンドの並び替え処理を例に挙げて説明したが、ライトコマンドの並び替え処理についても、「バスマスタが備えるライトデータバッファ１２の空き容量の大きさに応じて優先順位情報を生成し、該優先順位情報に基づいて処理順序を並び替える」点については同様である。但し、優先順位情報の生成方法については、リードコマンドの場合とは次の点において相違している。
【００４２】
すなわち、リードコマンドについては、リードデータバッファ１３の空き容量が大きいほど高い優先順位の優先順位情報が第２の検出回路１５によって生成されるが、ライトコマンドについては、ライトデータバッファ１２の空き容量が小さいほど高い優先順位の優先順位情報が第１の検出回路１４によって生成される。従って、ライトコマンドについては、ライトデータバッファ１２の空き容量が零のときに最も優先順位が高い優先順位情報が生成される。
このようにして生成された優先順位情報に基づいて、ＤＲＡＭコントローラ３１は、より高い優先順位のライトコマンドから順に処理するように、ライトコマンドの処理順序を並び替える。
【００４３】
なお、リードコマンドとライトコマンドとに共通の尺度で優先順位情報を設定することで、リードコマンドとライトコマンドとが混在するメモリコマンド群について、処理順序の並び替えをしてもよい。
以上説明したように、本発明の一実施形態によれば、各バスマスタ１０−１，１０−２，１０−３…が備えるデータバッファの空き容量に応じて、各バスマスタ１０−１，１０−２，１０−３…によって発行されるメモリコマンドの優先順位が決定され、更に当該優先順位に従ってＤＲＡＭコントローラ３１がメモリコマンドの実行順序を並べ替えるので、高い優先順位のメモリコマンドの発行数を抑制してメモリアクセス制御を高効率化し、簡略な構成で高スループット及び短レイテンシを実現したデータ処理装置を提供することができる。
従来技術に係るデータ処理装置では、メモリコマンドの優先順位を、当該メモリコマンドを発行するバスマスタによって固定的に設定している。一方、本実施形態に係るデータ処理装置１では、ライトデータバッファ１２及びリードデータバッファ１３の空き容量に基づいてメモリコマンドの優先順位を設定する。これにより、優先順位の高いメモリコマンドが集中的に発行されることが抑制される。その上で、ＤＲＡＭコントローラ３１はメモリアドレスやリード・ライトの種別も加味してメモリコマンドを並べ替えるので、複数のバスマスタによって発行された複数のメモリコマンドが競合した場合であっても、バンクを跨ぐアクセスや、書き込みと読み出しとの切り替え等に応じて、適切な順序でそれらメモリコマンドが実行される。その結果、高スループットで短レイテンシなデータ処理装置１が実現する。
【００４４】
以上、一実施形態に基づいて本発明を説明したが、本発明は上述の例に限定されるものではなく、本発明の要旨の範囲内で変形及び応用が可能なことは勿論である。
［第１変形例］
例えば、図３に示す期間Ｔ１，Ｔ３，Ｔ９のようにリードデータバッファ１３に空き容量が存在しない場合には、第２の検出回路１５は、最低の優先順位を示す「優先順位情報Ｐ０」を発行する代わりに、「リードコマンドの発行を禁止する情報」を生成して処理部１１に出力するように構成してもよい。この場合、期間Ｔ１，Ｔ３，Ｔ９において、第２の検出回路１５から出力された「リードコマンドの発行を禁止する情報」を受信した処理部１１はリードコマンドを発行しない。
［第２変形例］
例えば、上述したデータバッファ１２，１３の空き容量に応じて定めた優先順位情報（以下、第1の優先順位情報と称する）を用いる代わりに、各バスマスタが発行するメモリコマンドに係る優先順位を予めバスマスタ毎に設定した優先順位情報（以下、第２の優先順位情報と称する）を用いるモード（以下、「優先順位固定モード」と称する）を設け、上述した一実施形態に特有の処理を行うモード（以下、「優先順位変動モード」と称する）と切り替え可能に構成してもよい。優先順位固定モードにおいては、例えばＤＲＡＭコントローラ３１にレジスタ（不図示）を備えさせ、該レジスタ（不図示）を用いて、バスマスタ毎に第２の優先順位情報を設定すればよい。
【００４５】
このように、優先順位固定モードと優先順位変動モードとを切り替え可能に構成することで、メモリコマンドの処理順序を、データ処理装置１全体としてのスループットを向上させるという観点以外の観点をも考慮して定めることが可能となる。すなわち、データ処理装置１全体としてのスループットを向上させるような処理に加えて、特定のバスマスタによって発行されるメモリコマンドを常に所定の優先順位（例えば最高の優先順位）で処理させることが可能となる。
【００４６】
本変形例において、ＤＲＡＭコントローラ３１は、メモリコマンドを優先して処理する順序を、当該メモリコマンドを発行したバスマスタごとに定める第２の優先順位情報を取得する設定情報取得部として機能する。また、ＤＲＡＭコントローラ３１は、当該データ処理装置の外部からの指示に従って、第１の優先順位情報と第２の優先順位情報とのうち一方の情報に基づいて、前記メモリコマンドの処理順序を決定する処理順序決定部として機能する。
なお、上述した実施形態及び変形例には種々の段階の発明が含まれており、開示した複数の構成要件の適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示す全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決できる場合には、この構成要件が削除された構成も発明として抽出され得る。
【符号の説明】
【００４７】
１…データ処理装置、１０…バスマスタ、１０−１…第１バスマスタ、１０−２…第２バスマスタ、１０−３…第３バスマスタ、１１…処理部、１２…ライトデータバッファ、１３…リードデータバッファ、１４…第１の検出回路、１５…第２の検出回路、２１…ＤＲＡＭ、３１…ＤＲＡＭコントローラ。
【図１】
2014228915.tif 000003
【図２】
2014228915.tif 000004
【図３】
2014228915.tif 000005
【図４】
2014228915.tif 000006
【図５】
2014228915.tif 000007