JP2014228915A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2014228915A
JP2014228915A JP2013105872A JP2013105872A JP2014228915A JP 2014228915 A JP2014228915 A JP 2014228915A JP 2013105872 A JP2013105872 A JP 2013105872A JP 2013105872 A JP2013105872 A JP 2013105872A JP 2014228915 A JP2014228915 A JP 2014228915A
Authority
JP
Japan
Prior art keywords
memory
command
data
priority
read
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.)
Granted
Application number
JP2013105872A
Other languages
English (en)
Other versions
JP6146128B2 (ja
Inventor
直俊 西岡
Naotoshi Nishioka
直俊 西岡
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2013105872A priority Critical patent/JP6146128B2/ja
Priority to US14/280,926 priority patent/US20140344512A1/en
Priority to CN201410213229.3A priority patent/CN104183267A/zh
Publication of JP2014228915A publication Critical patent/JP2014228915A/ja
Application granted granted Critical
Publication of JP6146128B2 publication Critical patent/JP6146128B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)

Abstract

【課題】高い優先順位のメモリコマンドの発行数を抑制してメモリアクセス制御を高効率化し、簡略な構成で高スループット及び短レイテンシを実現したデータ処理装置を提供する。【解決手段】データ処理装置は、複数のバスマスタ10とDRAMコントローラとを備える。複数のバスマスタ10の各々は、DRAMに対するアクセスを指定するメモリコマンドを発行する処理部11と、データバッファ12,13と、データバッファ12,13の空き容量に応じて、メモリコマンドの優先順位を示す優先順位情報を当該メモリコマンドに対応づけて生成する第1及び第2の検出回路14,15とを備える。DRAMコントローラは、複数のバスマスタ10の各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する優先順位情報に基づいて決定する。【選択図】図2

Description

本発明は、例えばDRAM(Dynamic Random Access Memory)等のメモリに対するアクセスを制御するデータ処理装置に関する。
近年、大容量且つ高速アクセス可能なメモリとして、DRAM(Dynamic Random Access Memory)がデータ処理装置に使用されることが多い。但し、DRAMは、バンクを跨ぐアクセスや、書き込みと読み出しとの切り替え等によって、そのスループットが低下してしまう。
このことを鑑み、バスマスタによって発行されたデータの書き込みや読み出しを指定するメモリコマンドの種別及びアクセス対象のメモリアドレスを参照して、メモリコマンドの処理順序を並び替え、それによってスループットの低下を抑制するデータ処理装置が知られている。しかしながら、当該並べ替えによってアクセスレイテンシが増加してしまうメモリコマンドが生じ、アクセスレイテンシのワースト値が増加するといった問題がある。
そこで、発行するメモリコマンドの処理の優先順位を、各々のバスマスタ毎に予め設定する技術が知られている。この技術によれば、予めバスマスタ毎に固定的に設定された優先順位に従って各々のメモリコマンドが並び替えられて実行される。このような技術では、バスマスタ毎に設定した優先順位に従って各バスマスタにメモリコマンドを発行させることで、短レイテンシの実現を目指している。
さらには、複数のバスマスタによって為されたメモリアクセスが競合した場合に生じるメモリアクセスレイテンシの増加を抑制する為の技術として、例えば特許文献1には次のような技術が開示されている。すなわち、特許文献1に開示されている技術では、複数のバスマスタによって発行されたメモリアクセス要求に対し、当該メモリアクセス要求の転送単位より小さい複数のコマンドを生成する。そして、それら複数のコマンドを、メモリに対して、メモリアクセス要求の要求元毎に交互に発行する。つまり、特許文献1には、複数のメモリアクセス要求を時分割並列的に実行するメモリ制御装置が開示されている。
特開2007−48274号公報
しかしながら、バスマスタ毎に設定した優先順位に従って各バスマスタにメモリコマンドを発行させた場合、優先順位は固定で変わらない為、優先順位の高いメモリコマンドが多数発行されてしまい、DRAMにとってはランダムなデータアクセスに近い状態が生じ得る。そして、このような状態はアクセスペナルティの頻発を招き得る。つまり、短レイテンシを要求するメモリコマンドが多数発行されてしまうと、データ処理装置のスループットが悪化する。なお、特許文献1に開示された技術は、複数のメモリアクセス要求を時分割並列的に実行するに過ぎず、優先順位の高いメモリコマンドが多数発行されることを抑制することができない。
本発明は、上述した事情に鑑みてなされたものであり、高い優先順位のメモリコマンドの発行数を抑制し、メモリに対するランダムなデータアクセスに近い状態が生じることを回避すると共に、高スループットで短レイテンシなデータ処理装置を簡略な構成で実現することを解決課題の一つとする。
以上の課題を解決するために本発明の第1の態様に係るデータ処理装置は、複数のバスマスタと、前記複数のバスマスタ及びデータを格納するメモリに対してデータ転送可能に接続されており前記メモリへのデータの書き込み及び前記メモリからのデータの読み出しのうち少なくともいずれか一方を制御するメモリ制御装置とを備えたデータ処理装置であって、前記複数のバスマスタの各々は、前記メモリに対するアクセスを指定するメモリコマンドを発行するコマンド発行部と、データバッファと、前記データバッファの空き容量に応じて、前記メモリコマンドの優先順位を示す第1の優先順位情報を当該メモリコマンドに対応づけて生成する優先順位情報生成部とを備え、前記メモリ制御装置は、前記複数のバスマスタの各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する前記第1の優先順位情報に基づいて決定する処理順序決定部と、前記処理順序決定部によって決定された処理順序で、前記複数のバスマスタからの各々のメモリコマンドを実行するコマンド処理部とを備えることを特徴とする。
本発明の第1の態様に係るデータ処理装置によれば、各バスマスタが備えるデータバッファの空き容量に応じた処理順序を示す第1の優先順位情報が対応付けられたメモリコマンドが、各バスマスタによって発行される。これにより、複数のバスマスタによって発行された複数のメモリコマンドが競合した場合であっても、適切な順序でそれらメモリコマンドが実行される為、当該データ処理装置全体としてのスループットが向上する。
すなわち、第1の態様に係るデータ処理装置によれば、各バスマスタが備えるデータバッファの空き容量に基づいて、メモリコマンドを発行するのに適したタイミングを検出し、当該タイミングを利用してメモリコマンドの発行を行う。これにより、データバッファが空になるまで、換言すればバスマスタの処理が待機状態となるまで、メモリコマンドの発行を行わない従来のデータ処理装置に比べて、メモリコマンドの発行数を大きく増加させることができる。従って、前記一態様は、所謂レイテンシクリティカルなバスマスタを有するデータ処理装置にも適用可能である。
つまり、第1の態様に係るデータ処理装置によれば、優先順位の高いメモリコマンドが多く発行されることを抑制できる為、メモリに対するランダムなデータアクセスに近い状態が生じることを回避すると共に、高スループットで短レイテンシなデータ処理装置を簡略な構成で実現することができる。ライトデータバッファに空き容量が無い状態、及び、リードデータバッファが全て空き容量の状態は、データ処理装置のスループット及びレイテンシを悪化させる要因の1つである。第1の態様に係るデータ処理装置では、そのような状態が生じる頻度を減少させることで、高スループット及び短レイテンシを実現する。
本発明の第2の態様に係るデータ処理装置は、第1の態様に係るデータ処理装置であって、前記メモリ制御装置は、前記メモリコマンドを優先して処理する順序を、当該メモリコマンドを発行したバスマスタごとに定める第2の優先順位情報を取得する優先順位情報取得部を備え、前記処理順序決定部は、当該メモリ制御装置の外部からの指示に従って、前記第1の優先順位情報と前記第2の優先順位情報とのうち一方の情報に基づいて、前記メモリコマンドの処理順序を決定する、ことを特徴とする。
このように構成することで、当該データ処理装置は、第1の優先順位情報に基づいてメモリコマンドの処理順序を決定するモードと、第2の優先順位情報に基づいてメモリコマンドの処理順序を決定するモードとに切り替え可能になる。これにより、メモリコマンドの処理順序を、データ処理装置全体としてのスループットを向上させるという観点以外の観点をも考慮して定めることが可能となる。すなわち、データ処理装置全体としてのスループットを向上させるような処理に加えて、特定のバスマスタによって発行されるメモリコマンドを常に所定の優先順位で処理させることが可能となる。所定の優先順位としては、例えば最高の優先順位を挙げることができる。
本発明の第3の態様に係るデータ処理装置は、第1または第2の態様に係るデータ処理装置であって、前記バスマスタにおいて、前記データバッファは、前記メモリに書き込むデータである書き込みデータを記憶するライトデータバッファであり、前記コマンド発行部は、前記書き込みデータを前記メモリに対して書き込む場合、前記メモリコマンドとしてライトコマンドを発行し、前記優先順位情報生成部は、前記空き容量が小さい場合のライトコマンドを、前記空き容量が大きい場合のライトコマンドより優先して実行するように前記第1の優先順位情報を生成することを特徴とする。
このように構成することで、ライトデータバッファの空き容量に応じて、ライトコマンドの処理順序を適切に並び替えることが可能となる。すなわち、ライトデータバッファの空き容量が少ない場合、換言すればライトコマンドを早急に処理しなければならない場合には、バスマスタは、優先順位が高い第1の優先順位情報を対応付けたライトコマンドを発行する。すなわち、ライトデータバッファに空き容量が無い状態が生じる頻度を大幅に減少させることができる。一方、ライトデータバッファの空き容量が大きい場合、換言すればライトコマンドを早急に処理する必要性がない場合には、バスマスタは、優先順位が低い第1の優先順位情報を対応付けたライトコマンドを発行する。これにより、メモリコマンドの並び替えにおける自由度が大きくなり、データ処理装置全体としてのスループットが向上する。
本発明の第4の態様に係るデータ処理装置は、第1乃至第3の態様のいずれかの態様に係るデータ処理装置であって、前記バスマスタにおいて、前記データバッファは、前記メモリから読み出すデータである読み出しデータを記憶するリードデータバッファであり、前記コマンド発行部は、前記読み出しデータを前記メモリから読み出す場合、前記メモリコマンドとしてリードコマンドを発行し、前記優先順位情報生成部は、前記空き容量が大きい場合のリードコマンドを、前記空き容量が小さい場合のリードコマンドより優先して実行するように前記第1の優先順位情報を生成することを特徴とする。
このように構成することで、バスマスタは、リードデータバッファに空き容量が生じると、当該空き容量の大きさに応じた優先順位のリードコマンドを発行する。すなわち、リードデータバッファにおいて生じた僅かな空き容量をも無駄にしないように、リードコマンドを発行する。従って、リードデータバッファが全て空き容量の状態が生じる頻度を大幅に減少させることができる。また、優先順位の低い第1の優先順位情報を対応付けしてリードコマンドを発行することが可能となる。すなわち、従来のデータ処理装置のように優先順位の高いリードコマンドを散発的に発行する代わりに、優先順位の低いリードコマンドを適切なタイミングで数多く発行することが可能となる。
本発明の一実施形態に係るデータ処理装置の一構成例を示すブロック図である。 図1に示すデータ処理装置が備えるバスマスタの一構成例を示す図である。 本発明の一実施形態に係るデータ処理装置による優先順位情報生成処理の一例を示す図である。 複数のバスマスタが備える各々のリードデータバッファの空き容量の時間変化のグラフを示す図である。 複数のリードコマンドが競合した場合に、DRAMコントローラによって行われるリードコマンドの処理順序の並べ替え処理の概念を示す図である。
以下、図面を参照して、本発明の一実施形態に係るデータ処理装置を説明する。
図1は、本発明の一実施形態に係るデータ処理装置の一構成例を示すブロック図である。データ処理装置1は、DRAM21に対してデータの書き込み及び読み出しを実行する装置であって、複数のバスマスタと、DRAMコントローラ31と、を備える。本例では、複数のバスマスタとして、第1バスマスタ10−1、第2バスマスタ10−2、及び第3バスマスタ10−3を採用するが、バスマスタの種類や数は、これに限定されるものではない。また、これら各構成部材は、例えば内部バス等の制御線及びデータ線によって相互に通信可能に接続されている。
第1バスマスタ10−1は例えばCPU(Central Processing Unit)であり、第2バスマスタ10−2は例えば画像処理を実行するモジュールであり、第3バスマスタ10−3は例えば音声処理を実行するモジュールである。以降、第1バスマスタ10−1乃至第3バスマスタ10−3に共通の事項を説明する際には、それらを「バスマスタ10」と総称する。バスマスタ10の構成については、後に図2を参照して詳述する。DRAM21は、当該データ処理装置1が備える複数のバスマスタによって発行されたメモリコマンドを受付ける。
DRAMコントローラ31は、バスマスタ10によって発行されたメモリコマンドに従って、DRAM21を制御するメモリ制御装置である。すなわち、DRAMコントローラ31は、DRAM21へのデータの書き込み、及びDRAM21からのデータの読み出しを制御する。DRAMコントローラ31は、バスマスタ10及びDRAM21に、制御線とデータ線とで接続されている。制御線はメモリコマンド等の制御信号の送受信に用いられ、データ線は書き込み/読み出し対象のデータの送受信に用いられる。すなわち、DRAMコントローラ31は、制御線を介して送受される制御信号に基づいて、データ線を介してデータの入出力を行う。
DRAMコントローラ31は、複数のバスマスタ10の各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する優先順位情報に基づいて決定する処理順序決定部として機能し、且つ、この処理順序決定部によって決定された処理順序で、前記複数のバスマスタ10からの各々のメモリコマンドを実行するコマンド処理部として機能する。
「優先順位情報」は、メモリコマンドの実行順序を決定する情報であって、バスマスタ10が生成する情報である。本実施形態に係るデータ処理装置1では、ライトデータバッファ12及びリードデータバッファ13の空き容量に応じて優先順位を設定した優先順位情報を、メモリコマンドに対応付けて生成する。これにより、ライトデータバッファ12がフル(full)状態となる頻度、及びリードデータバッファ13がエンプティ(empty)状態となる頻度を大幅に減少させることができる(図2参照)。
ライトデータバッファ12に空き容量が無い状態、及び、リードデータバッファ13が全て空き容量の状態は、データ処理装置のスループット及びレイテンシを悪化させる要因の1つである。本実施形態に係るデータ処理装置1では、そのような状態が生じる頻度を減少させることで、高スループット及び短レイテンシを実現する。
図2は、バスマスタ10の一構成例を示すブロック図である。同図に示すように、バスマスタ10は、処理部11と、ライトデータバッファ12と、第1の検出回路14と、リードデータバッファ13と、第2の検出回路15とを備える。
処理部11は、メモリコマンドとして、DRAM21への書き込みコマンド(以下、ライトコマンドと称する。)と、DRAM21からの読み出しコマンド(以下、リードコマンドと称する)とを発行する。換言すれば、処理部11は、DRAM21に対するアクセスを指定するメモリコマンドを発行するコマンド発行部として機能する。
処理部11は、DRAM21に対してデータの書き込みを実行する場合、当該書き込み対象となるライトデータと、DRAM21における書き込み先のアドレス情報を含むライトコマンドと、第1の検出回路14によって生成された優先順位情報と、を互いに対応付けて当該バスマスタ10から出力する。
また、処理部11は、DRAM21からデータの読み出しを実行する場合、当該読み込み対象のリードデータが記憶されているDRAM21上のアドレス情報を含むリードコマンドと、第2の検出回路15によって生成された優先順位情報と、を互いに対応付けて当該バスマスタ10から出力する。
なお、各バスマスタ10−1,10−2,10−3の処理部11に特有の処理は、例えば次のような処理である。第1バスマスタ10−1の処理部11は、当該データ処理装置1の各部に係る制御処理を行う。第2バスマスタ10−2の処理部11は、画像処理を行う。第3バスマスタ10−3の処理部11は、音声処理を行う。
ライトデータバッファ12は、ライトコマンドの発行に先立って処理部11から出力されたライトデータを一時的に保存し、その後DRAMコントローラ31を介してDRAM21へ出力する。リードデータバッファ13は、処理部11によって発行されたリードコマンドに応じてDRAM21から読み出されてDRAMコントローラ31から送信されてきたリードデータを一時的に保存し、その後、処理部11へ出力する。
第1の検出回路14は、ライトデータバッファ12の空き容量を検出し、この空き容量に基づいて優先順位情報を生成し、この優先順位情報を処理部11及びDRAMコントローラ31に出力する。
すなわち、第1の検出回路14は、ライトデータバッファ12の空き容量に応じて、メモリコマンドの優先順位を示す優先順位情報を、当該メモリコマンドに対応付けて生成する優先順位情報生成部として機能する。つまり、第1の検出回路14は、ライトデータバッファ12の空き容量を検出すると当該空き容量に応じた優先順位をメモリコマンドに対して付与する。
第2の検出回路15は、リードデータバッファ13の空き容量を検出し、この空き容量に基づいて優先順位情報を生成し、この優先順位情報を処理部11及びDRAMコントローラ31に出力する。
すなわち、第2の検出回路15は、リードデータバッファ13の空き容量に応じて、メモリコマンドの優先順位を示す優先順位情報を、当該メモリコマンドに対応付けて生成する優先順位情報生成部として機能する。つまり、第2の検出回路15は、リードデータバッファ13の空き容量を検出すると当該空き容量に応じた優先順位をメモリコマンドに対して付与する。
これら第1の検出回路14及び第2の検出回路15による優先順位情報の生成処理は、本実施形態に係るデータ処理装置1の主な特徴の一つである。すなわち、本実施形態に係るデータ処理装置1では、ライトデータバッファ12及びリードデータバッファ13の空き容量を監視し、空き容量が生じると当該空き容量の大きさに応じた優先順位情報をメモリコマンドに対応付けて生成する。
この点は、バスマスタのリードデータバッファ13が空の状態となるまでは当該バスマスタにメモリコマンドを発行させず、リードデータバッファ13が空の状態となると集中してメモリコマンドを発行する従来のデータ処理装置と大きく異なる点である。そして、そのような処理を行う従来のデータ処理装置に比べて、本実施形態に係るデータ処理装置1によれば、ライトデータバッファ12がフル(full)状態となる頻度、及びリードデータバッファ13がエンプティ(empty)状態となる頻度を大幅に減少させることができる。従って、図3を参照して後述するように、優先順位の低い優先順位情報をリードデータバッファ13の空き容量に対応付けしてリードコマンドを発行することが可能となる。
つまり、本実施形態に係るデータ処理装置1では、短レイテンシを要求するメモリコマンド、すなわち高い優先順位のメモリコマンドの発行数を抑制することで、メモリ制御装置であるDRAMコントローラ31によるメモリコマンドの並び替え処理における自由度が大きくなり、データ処理装置全体としてのスループットが向上する。
複数のメモリコマンドが競合している場合、DRAMコントローラ31は、他のメモリコマンドよりも高い優先順位を示す優先順位情報が対応付けられたメモリコマンドを、他のメモリコマンドに優先して実行する。
すなわち、本実施形態に係るデータ処理装置1においては、DRAMコントローラ31は、バスマスタ10によってメモリコマンドが発行されると、各々のメモリコマンドに対応付けられた優先順位情報を参照し、優先順位が高いメモリコマンドから順に処理するように、それら複数のメモリコマンドを並び替える。
図3は、本発明の一実施形態に係るデータ処理装置が備えるバスマスタによる優先順位情報生成処理の一例を示す図である。ここでは、リードコマンドに係る優先順位情報の生成処理について説明する。
図3上段に示すグラフでは、横軸に「時間」をとり、縦軸に「データバッファ(リードデータバッファ13)における使用データ量」をとっている。図3上段に示すグラフにおいて、破線Lmはリードデータバッファ13で記憶可能な最大容量を示しており、実線Ldはリードデータバッファ13における使用中のデータ量の変化を示している。図3下段に示すグラフは、横軸に「時間」をとり、縦軸に「リードコマンドに対応付けられた優先順位」をとっている。図3下段に示すグラフにおいて、実線Lpは優先順位情報に示されている優先順位の高さの変化を示している。
第2の検出回路15は、各時刻における空き容量d1,d2,d3,・・・を検出し、それら空き容量に基づいて、当該時点で発行されるリードコマンドに係る優先順位を決定して優先順位情報を生成し、処理部11及びDRAMコントローラ31へ出力する。詳細には、第2の検出回路15は、次のように優先順位情報を生成する。
図3に示す期間T1,T3,T9においては、リードデータバッファ13に空き容量が存在しない為、当該期間T1,T3,T9においてはリードデータバッファ13が空状態となってしまう可能性を考慮する必要は無いと言える。従って、当該期間T1,T3,T9において発行するリードコマンドには、最低の優先順位を示す優先順位情報である「優先順位情報P0」が対応付けられる。
期間T2,T4,T8においては、リードデータバッファ13に空き容量d1が生じている。従って、第2の検出回路15は、期間T2,T4,T8において、空き容量d1に応じた優先順位を示す優先順位情報を生成して出力する。ここでは、説明の便宜上、空き容量d1に対応する優先順位情報を「優先順位情報P1」と称する。つまり、期間T2,T4,T8に発行されるリードコマンドには、優先順位情報P1が対応付けられる。
本実施形態に係るデータ処理装置1では、バスマスタ10の処理部11は、図3に示すように、たとえ僅かな空き容量であってもリードデータバッファ13に空き容量が生じると、当該空き容量の大きさに応じた優先順位のリードコマンドを発行する。
他方、従来のデータ処理装置では、リードデータバッファ13の全容量が空きの状態となるまで、リードコマンドを発行しないので、リードコマンドのレイテインシが悪化する。従来のデータ処理装置では、優先順位の高いメモリコマンドが多く発行されることとなり、メモリ制御装置であるDRAMコントローラによるリードコマンドの処理順序の並び替えに制約が生じ、当該並び替えの自由度が小さくなり、装置全体としてのスループットが低下してしまう。
このような事情を鑑みて為された本実施形態に係るデータ処理装置1では、図3に示すように、リードデータバッファ13において生じた僅かな空き容量をも無駄にしないようにリードコマンドが発行される。従って、リードデータバッファ13がエンプティ(empty)状態となる頻度が大幅に減少し、当該データ処理装置1全体のスループットが向上する。
期間T5,T7においては、リードデータバッファ13には、空き容量d1よりも大きい空き容量である空き容量d2が生じている。従って、第2の検出回路15は、期間T5,T7において、空き容量d2に応じた優先順位を示す優先順位情報を生成して出力する。本例では、説明の便宜上、空き容量d2に対応する優先順位を「優先順位情報P2」と称する。つまり、期間T5,T7に発行されるリードコマンドには、優先順位情報P2が対応付けられる。
期間T6において、リードデータバッファ13には、空き容量d2よりも大きい空き容量である空き容量d3が生じている。従って、第2の検出回路15は、期間T6において空き容量d3に応じた優先順位を示す優先順位情報を生成して出力する。本例では、説明の便宜上、空き容量d3に対応する優先順位を「優先順位情報P3」と称する。つまり、期間T6に発行されるリードコマンドには、優先順位情報P3が対応付けられる。
ここで、優先順位情報P0〜P3は、Pの後ろに付記されている数字が大きい程、優先順位が高い優先順位情報である。また、上述したように、空き容量d1〜d3の大きさは、d1<d2<d3となっている。つまり、本実施形態に係るデータ処理装置1では、リードデータバッファ13の空き容量の大きさに応じた優先順位情報が生成され、当該優先順位情報が対応付けられたリードコマンドがバスマスタ10から出力される。
このように、本実施形態に係るデータ処理装置1では、発行されるリードコマンドの優先順位は、発行時のリードデータバッファ13の空き容量に応じた優先順位である。従って、各リードコマンドは適切な優先順位で発行され、装置全体としてのスループットも向上する。
以下、複数のバスマスタ10−1,10−2,10−3によって発行されたリードコマンドが競合した場合におけるリードコマンドの並び替え例を説明する。図4は、複数のバスマスタ10−1,10−2,10−3が備える各々のリードデータバッファの空き容量の時間変化のグラフを示す図である。同図に示すグラフは、縦軸にバスマスタ10の空き容量をとり、横軸に時間をとったグラフである。
実線L1は第1バスマスタ10−1が備えるリードデータバッファの空き容量の時間変化を示している。破線L2は第2バスマスタ10−2が備えるリードバッファの空き容量の時間変化を示している。一点鎖線L3は第3バスマスタ10−3が備えるリードバッファの空き容量の時間変化を示している。
期間T10,T13においては、第1バスマスタ10−1の空き容量はd2であり、第2バスマスタ10−2の空き容量はd3であり、第3バスマスタ10−3の空き容量はd1である。
従って、期間T10,T13においては、第1バスマスタ10−1によって発行されるリードコマンドには優先順位情報P2が対応付けられ、第2バスマスタ10−2によって発行されるリードコマンドには優先順位情報P3が対応付けられ、第3バスマスタ10−3によって発行されるリードコマンドには優先順位情報P1が対応付けられる。
つまり、期間T10,T13において発行されるリードコマンドの優先順位の高さは、高い順に第2バスマスタ10−2、第1バスマスタ10−1、第3バスマスタ10−3の順となる。
期間T11,T12においては、第1バスマスタ10−1の空き容量はd3であり、第2バスマスタ10−2の空き容量はd2であり、第3バスマスタ10−3の空き容量はd1である。
従って、期間T11,T12においては、第1バスマスタ10−1によって発行されるリードコマンドには優先順位情報P3が対応付けられ、第2バスマスタ10−2によって発行されるリードコマンドには優先順位情報P2が対応付けられ、第3バスマスタ10−3によって発行されるリードコマンドには優先順位情報P1が対応付けられる。
つまり、期間T11,T12において発行されるリードコマンドの優先順位の高さは、高い順に第1バスマスタ10−1、第2バスマスタ10−2、第3バスマスタ10−3の順となる。
以下、上述した処理によって各リードコマンドに対応付けられた優先順位情報Pに基づくリードコマンドの処理順序の並び替えについて、一例を挙げて説明する。図5は、複数のリードコマンドが競合した場合に、DRAMコントローラ31によって行われるリードコマンドの処理順序の並べ替えの概念を示す図である。
同図に示す例では、5個のリードコマンドRa,Rb,Rc,Rd,Reが競合している。リードコマンドRaには優先順位情報P3が対応付けられている。リードコマンドRbには優先順位情報P3が対応付けられている。リードコマンドRcには優先順位情報P2が対応付けられている。リードコマンドRdには優先順位情報P1が対応付けられている。リードコマンドReには優先順位情報P2が対応付けられている。
また、同図に示す例は、4個のリードコマンドRa,Rb,Rc,Rdが既にDRAMコントローラ31に入力されており、その状態のDRAMコントローラ31に新たにリードコマンドReが入力された例である。
上述したように本例において各優先順位情報Pは、Pに付記されている数字が大きい程、優先順位が高い。従って、新たにDRAMコントローラ31に入力されたリードコマンドReに対応付けられた優先順位情報P2は、既にDRAMコントローラ31に入力されている優先順位情報P1よりも優先順位が高い。
この状況において、DRAMコントローラ31は、新たに当該DRAMコントローラ31に入力されたリードコマンドReと、当該DRAMコントローラ31に先に入力されているもののリードコマンドReよりも低い優先順位の優先順位情報Pが対応付けられたリードコマンドRdとの処理順序を入れ替える。つまり、DRAMコントローラ31は、リードコマンドReとリードコマンドRdとの処理順序を、優先順位情報Pに基づいて並べ替える。
以上、メモリコマンドの並び替え処理について、リードコマンドの並び替え処理を例に挙げて説明したが、ライトコマンドの並び替え処理についても、「バスマスタが備えるライトデータバッファ12の空き容量の大きさに応じて優先順位情報を生成し、該優先順位情報に基づいて処理順序を並び替える」点については同様である。但し、優先順位情報の生成方法については、リードコマンドの場合とは次の点において相違している。
すなわち、リードコマンドについては、リードデータバッファ13の空き容量が大きいほど高い優先順位の優先順位情報が第2の検出回路15によって生成されるが、ライトコマンドについては、ライトデータバッファ12の空き容量が小さいほど高い優先順位の優先順位情報が第1の検出回路14によって生成される。従って、ライトコマンドについては、ライトデータバッファ12の空き容量が零のときに最も優先順位が高い優先順位情報が生成される。
このようにして生成された優先順位情報に基づいて、DRAMコントローラ31は、より高い優先順位のライトコマンドから順に処理するように、ライトコマンドの処理順序を並び替える。
なお、リードコマンドとライトコマンドとに共通の尺度で優先順位情報を設定することで、リードコマンドとライトコマンドとが混在するメモリコマンド群について、処理順序の並び替えをしてもよい。
以上説明したように、本発明の一実施形態によれば、各バスマスタ10−1,10−2,10−3…が備えるデータバッファの空き容量に応じて、各バスマスタ10−1,10−2,10−3…によって発行されるメモリコマンドの優先順位が決定され、更に当該優先順位に従ってDRAMコントローラ31がメモリコマンドの実行順序を並べ替えるので、高い優先順位のメモリコマンドの発行数を抑制してメモリアクセス制御を高効率化し、簡略な構成で高スループット及び短レイテンシを実現したデータ処理装置を提供することができる。
従来技術に係るデータ処理装置では、メモリコマンドの優先順位を、当該メモリコマンドを発行するバスマスタによって固定的に設定している。一方、本実施形態に係るデータ処理装置1では、ライトデータバッファ12及びリードデータバッファ13の空き容量に基づいてメモリコマンドの優先順位を設定する。これにより、優先順位の高いメモリコマンドが集中的に発行されることが抑制される。その上で、DRAMコントローラ31はメモリアドレスやリード・ライトの種別も加味してメモリコマンドを並べ替えるので、複数のバスマスタによって発行された複数のメモリコマンドが競合した場合であっても、バンクを跨ぐアクセスや、書き込みと読み出しとの切り替え等に応じて、適切な順序でそれらメモリコマンドが実行される。その結果、高スループットで短レイテンシなデータ処理装置1が実現する。
以上、一実施形態に基づいて本発明を説明したが、本発明は上述の例に限定されるものではなく、本発明の要旨の範囲内で変形及び応用が可能なことは勿論である。
[第1変形例]
例えば、図3に示す期間T1,T3,T9のようにリードデータバッファ13に空き容量が存在しない場合には、第2の検出回路15は、最低の優先順位を示す「優先順位情報P0」を発行する代わりに、「リードコマンドの発行を禁止する情報」を生成して処理部11に出力するように構成してもよい。この場合、期間T1,T3,T9において、第2の検出回路15から出力された「リードコマンドの発行を禁止する情報」を受信した処理部11はリードコマンドを発行しない。
[第2変形例]
例えば、上述したデータバッファ12,13の空き容量に応じて定めた優先順位情報(以下、第1の優先順位情報と称する)を用いる代わりに、各バスマスタが発行するメモリコマンドに係る優先順位を予めバスマスタ毎に設定した優先順位情報(以下、第2の優先順位情報と称する)を用いるモード(以下、「優先順位固定モード」と称する)を設け、上述した一実施形態に特有の処理を行うモード(以下、「優先順位変動モード」と称する)と切り替え可能に構成してもよい。優先順位固定モードにおいては、例えばDRAMコントローラ31にレジスタ(不図示)を備えさせ、該レジスタ(不図示)を用いて、バスマスタ毎に第2の優先順位情報を設定すればよい。
このように、優先順位固定モードと優先順位変動モードとを切り替え可能に構成することで、メモリコマンドの処理順序を、データ処理装置1全体としてのスループットを向上させるという観点以外の観点をも考慮して定めることが可能となる。すなわち、データ処理装置1全体としてのスループットを向上させるような処理に加えて、特定のバスマスタによって発行されるメモリコマンドを常に所定の優先順位(例えば最高の優先順位)で処理させることが可能となる。
本変形例において、DRAMコントローラ31は、メモリコマンドを優先して処理する順序を、当該メモリコマンドを発行したバスマスタごとに定める第2の優先順位情報を取得する設定情報取得部として機能する。また、DRAMコントローラ31は、当該データ処理装置の外部からの指示に従って、第1の優先順位情報と第2の優先順位情報とのうち一方の情報に基づいて、前記メモリコマンドの処理順序を決定する処理順序決定部として機能する。
なお、上述した実施形態及び変形例には種々の段階の発明が含まれており、開示した複数の構成要件の適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示す全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決できる場合には、この構成要件が削除された構成も発明として抽出され得る。
1…データ処理装置、10…バスマスタ、10−1…第1バスマスタ、10−2…第2バスマスタ、10−3…第3バスマスタ、11…処理部、12…ライトデータバッファ、13…リードデータバッファ、14…第1の検出回路、15…第2の検出回路、21…DRAM、31…DRAMコントローラ。

Claims (4)

  1. 複数のバスマスタと、前記複数のバスマスタ及びデータを格納するメモリに対してデータ転送可能に接続されており前記メモリへのデータの書き込み及び前記メモリからのデータの読み出しのうち少なくともいずれか一方を制御するメモリ制御装置とを備えたデータ処理装置であって、
    前記複数のバスマスタの各々は、
    前記メモリに対するアクセスを指定するメモリコマンドを発行するコマンド発行部と、
    データバッファと、
    前記データバッファの空き容量に応じて、前記メモリコマンドの優先順位を示す第1の優先順位情報を当該メモリコマンドに対応づけて生成する優先順位情報生成部と、を備え、
    前記メモリ制御装置は、
    前記複数のバスマスタの各々が発行したメモリコマンドの処理順序を、当該メモリコマンドに対応する前記第1の優先順位情報に基づいて決定する処理順序決定部と、
    前記処理順序決定部によって決定された処理順序で、前記複数のバスマスタからの各々のメモリコマンドを実行するコマンド処理部と、を備える、
    ことを特徴とするデータ処理装置。
  2. 前記メモリ制御装置は、前記メモリコマンドを優先して処理する順序を、当該メモリコマンドを発行したバスマスタごとに定める第2の優先順位情報を取得する優先順位情報取得部を備え、
    前記処理順序決定部は、当該メモリ制御装置の外部からの指示に従って、前記第1の優先順位情報と前記第2の優先順位情報とのうち一方の情報に基づいて、前記メモリコマンドの処理順序を決定する、
    ことを特徴とする請求項1に記載のデータ処理装置。
  3. 前記バスマスタにおいて、
    前記データバッファは、前記メモリに書き込むデータである書き込みデータを記憶するライトデータバッファであり、
    前記コマンド発行部は、前記書き込みデータを前記メモリに対して書き込む場合、前記メモリコマンドとしてライトコマンドを発行し、
    前記優先順位情報生成部は、前記空き容量が小さい場合のライトコマンドを、前記空き容量が大きい場合のライトコマンドより優先して実行するように前記第1の優先順位情報を生成する、
    ことを特徴とする請求項1又は2に記載のデータ処理装置。
  4. 前記バスマスタにおいて、
    前記データバッファは、前記メモリから読み出すデータである読み出しデータを記憶するリードデータバッファであり、
    前記コマンド発行部は、前記読み出しデータを前記メモリから読み出す場合、前記メモリコマンドとしてリードコマンドを発行し、
    前記優先順位情報生成部は、前記空き容量が大きい場合のリードコマンドを、前記空き容量が小さい場合のリードコマンドより優先して実行するように前記第1の優先順位情報を生成する、
    ことを特徴とする請求項1乃至請求項3のうちいずれか1項に記載のデータ処理装置。
JP2013105872A 2013-05-20 2013-05-20 データ処理装置 Expired - Fee Related JP6146128B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013105872A JP6146128B2 (ja) 2013-05-20 2013-05-20 データ処理装置
US14/280,926 US20140344512A1 (en) 2013-05-20 2014-05-19 Data Processing Apparatus and Memory Apparatus
CN201410213229.3A CN104183267A (zh) 2013-05-20 2014-05-20 数据处理设备和存储器设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013105872A JP6146128B2 (ja) 2013-05-20 2013-05-20 データ処理装置

Publications (2)

Publication Number Publication Date
JP2014228915A true JP2014228915A (ja) 2014-12-08
JP6146128B2 JP6146128B2 (ja) 2017-06-14

Family

ID=51896750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013105872A Expired - Fee Related JP6146128B2 (ja) 2013-05-20 2013-05-20 データ処理装置

Country Status (3)

Country Link
US (1) US20140344512A1 (ja)
JP (1) JP6146128B2 (ja)
CN (1) CN104183267A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019043822A1 (ja) * 2017-08-30 2019-03-07 オリンパス株式会社 メモリアクセス装置、画像処理装置、および撮像装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160070647A1 (en) * 2014-09-09 2016-03-10 Kabushiki Kaisha Toshiba Memory system
US20170046102A1 (en) * 2015-08-14 2017-02-16 Marvell World Trade Ltd. Flexible interface for nand flash memory
KR20170078307A (ko) * 2015-12-29 2017-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
KR20180127710A (ko) * 2017-05-22 2018-11-30 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
CN111209232B (zh) 2018-11-21 2022-04-22 昆仑芯(北京)科技有限公司 访问静态随机存取存储器的方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539509A (ja) * 1999-01-08 2002-11-19 インテル・コーポレーション 統合されたメモリ・アーキテクチャにおけるアービトレーションのための方法および装置
JP2004362567A (ja) * 2003-05-30 2004-12-24 Agilent Technol Inc 共用記憶装置の調停
JP2007199815A (ja) * 2006-01-24 2007-08-09 Megachips Lsi Solutions Inc メモリ制御装置およびメモリ制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781927A (en) * 1996-01-30 1998-07-14 United Microelectronics Corporation Main memory arbitration with priority scheduling capability including multiple priorty signal connections
US6105086A (en) * 1998-06-04 2000-08-15 Lsi Logic Corporation Data communication circuit and method for buffering data between a shared resource and multiple interfaces
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6704817B1 (en) * 2000-08-31 2004-03-09 Hewlett-Packard Development Company, L.P. Computer architecture and system for efficient management of bi-directional bus
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7617338B2 (en) * 2005-02-03 2009-11-10 International Business Machines Corporation Memory with combined line and word access
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
WO2010122607A1 (ja) * 2009-04-24 2010-10-28 富士通株式会社 記憶制御装置及びその制御方法
CN102236622A (zh) * 2010-04-30 2011-11-09 中兴通讯股份有限公司 提高动态存储器带宽利用率的动态存储器控制器及方法
US8314807B2 (en) * 2010-09-16 2012-11-20 Apple Inc. Memory controller with QoS-aware scheduling
US9405711B2 (en) * 2013-01-09 2016-08-02 International Business Machines Corporation On-chip traffic prioritization in memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539509A (ja) * 1999-01-08 2002-11-19 インテル・コーポレーション 統合されたメモリ・アーキテクチャにおけるアービトレーションのための方法および装置
JP2004362567A (ja) * 2003-05-30 2004-12-24 Agilent Technol Inc 共用記憶装置の調停
JP2007199815A (ja) * 2006-01-24 2007-08-09 Megachips Lsi Solutions Inc メモリ制御装置およびメモリ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019043822A1 (ja) * 2017-08-30 2019-03-07 オリンパス株式会社 メモリアクセス装置、画像処理装置、および撮像装置

Also Published As

Publication number Publication date
US20140344512A1 (en) 2014-11-20
CN104183267A (zh) 2014-12-03
JP6146128B2 (ja) 2017-06-14

Similar Documents

Publication Publication Date Title
JP6146128B2 (ja) データ処理装置
US8095744B2 (en) Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
JP4715801B2 (ja) メモリアクセス制御装置
JP2006268801A (ja) メモリアクセス制御回路
US8549181B2 (en) Semiconductor memory device and method of operating the semiconductor memory device
JP2014035628A (ja) 情報処理装置、メモリ制御装置およびその制御方法
JP2011060162A (ja) メモリ制御装置
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
JP5056668B2 (ja) データ転送装置、およびデータ転送方法
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US8560784B2 (en) Memory control device and method
JPWO2007099659A1 (ja) データ転送装置及びデータ転送方法
US10198301B2 (en) Semiconductor device
JP2012226491A (ja) メモリ制御装置、集積回路、情報処理装置およびメモリ制御方法
JP5932261B2 (ja) メモリ制御装置、メモリ制御方法
JP2014092813A (ja) メモリ制御装置、メモリ制御方法およびプログラム
JP2011034214A (ja) メモリ制御装置
JP4882116B2 (ja) バッファ制御装置およびバッファ制御方法
JP7493311B2 (ja) バスシステムおよびその制御方法
JP2006331008A (ja) メモリインタフェース
JP2006164099A (ja) メモリ制御装置
JP2008225894A (ja) Sdramコントローラ
JP2009266152A (ja) コントローラ、ハードディスクドライブおよびコントロール方法
JP2007334835A (ja) メモリ制御装置及びその制御方法
WO2007097002A1 (ja) データ読み書き制御装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150410

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

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: 20170418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170501

R151 Written notification of patent or utility model registration

Ref document number: 6146128

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees