JP2009193107A - メモリアクセス装置 - Google Patents

メモリアクセス装置 Download PDF

Info

Publication number
JP2009193107A
JP2009193107A JP2008030108A JP2008030108A JP2009193107A JP 2009193107 A JP2009193107 A JP 2009193107A JP 2008030108 A JP2008030108 A JP 2008030108A JP 2008030108 A JP2008030108 A JP 2008030108A JP 2009193107 A JP2009193107 A JP 2009193107A
Authority
JP
Japan
Prior art keywords
master
command
microcommand
memory
access
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.)
Withdrawn
Application number
JP2008030108A
Other languages
English (en)
Inventor
Isao Kawamoto
功 河本
Yoshiharu Watanabe
義治 渡邉
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008030108A priority Critical patent/JP2009193107A/ja
Priority to US12/267,014 priority patent/US8095744B2/en
Publication of JP2009193107A publication Critical patent/JP2009193107A/ja
Withdrawn legal-status Critical Current

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/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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】複数のバンクで構成されるメモリへのアクセスに対する複数マスタのアクセスを調停し、優先度の高いアクセスのレイテンシ増加を抑えつつ効率的な転送を行うことができるメモリアクセス装置を提供すること。
【解決手段】本発明のメモリアクセス装置は、マスタからメモリに対するアクセスコマンドを各バンクに対するアクセスコマンドであるマイクロコマンドに分割するコマンド分割部と、マスタ毎に存在するコマンド分割部により分割されたマイクロコマンドの中で同一バンクに対するマイクロコマンドのいずれか一つを選択するマスタ間調停部と、マスタ間調停部によりバンク毎に選択された複数のマイクロコマンドのいずれか一つを選択してメモリアクセスを行うメモリ制御部とを備え、ページミスヒットなどによる効率低下の少ないマイクロコマンドを選択してアクセスすることにより、効率的なアクセスを実現する。
【選択図】図1

Description

本発明は、各バンクが複数ページを持つ複数バンクで構成される共通のメモリへの複数のマスタによるアクセスを制御するメモリアクセス装置に関し、特にデータ転送の高効率化技術に関するものである。
システムLSIでは、プロセッサやハードウェアエンジンなどの複数のマスタが共通のメモリにアクセスするユニファイドメモリ技術と呼ばれる構成を取る場合が知られている。このとき使用されるメモリとして、SDRAM(Synchronous Dynamic Random Access Memory)等が用いられる。SDRAMは複数のバンクで構成されており、さらに各バンクは複数のページで構成されている。SDRAMをアクセスするには、ページをアクティブ化した後に、一定期間を空けてアクセスコマンドを発行する必要がある。また、同じバンクの異なるページにアクセスする場合には、アクセスするバンクにプリチャージという処理を行った後に、改めてアクセスするバンクをアクティブ化する必要がある。このようにSDRAMアクセスでは、同じバンクで異なるページへのアクセスを連続で行うとページミスヒットが発生し、アクセス効率が低下することになる。一方、あるバンクに対するプリチャージやアクティブ化の処理中でも他のバンクへのアクセスは可能であるため、異なるバンクへのアクセスが連続するようアクセスすることができればSDRAMのアクセス効率を高くすることができる。また、SDRAMでは、リードアクセスとライトアクセスの切り替え時や、一定期間毎に必要となるリフレッシュ処理を行う場合にもアクセス効率が低下する。
このような性質を考慮してSDRAMの効率を高める方法として例えば次のような技術が開示されている。
特許文献1では、複数のマスタから送られてくるコマンドのアクセスするバンクやリードかライトかの情報を調べ、マスタ間で調停する際にSDRAMの状態を考慮し、ページミスヒットやリードとライトの切り替えが少なくなるようにアクセスを選択するという手法が開示されている。
ただし、この手法では1つのマスタから送られてくるコマンドは1つのバンクへのアクセスに限定されるため、マスタが複数バンク領域に跨る転送を行いたい場合でも、コマンドの発行順序はマスタ動作に依存して決定されるため、必ずしもメモリアクセスが効率的に行える発行順序で行われるとは限らない。
これを解決する手法として、特許文献2では、マスタから送られてきたコマンドをバンク別に受け付け、ページミスヒットが少なくなるようにバンク間の調停を行うという手法が開示されている。
また、特許文献3では、マスタが複数バンクに跨るコマンドを発行する場合に、マスタ間での調停を行ったあと、各バンクに対するアクセス毎のマイクロコマンドに分割し、バンク毎のキューに入れて管理するという手法が開示されている。
また、特許文献4では、マスタが発行した複数バンクに跨るコマンドをバンク毎のコマンドに分割しページミスヒットが少なくなる順序に並び替えることによりメモリアクセス効率を向上する手法が開示されている。
なお、特許文献3および特許文献4では、マスタが発行するコマンドが複数バンクに跨るように、小さなメモリ単位毎にバンクが切り替わる、インターリーブと呼ばれるアドレスマッピングの使用方法についても言及されている。
また、動画処理などのリアルタイム性の高い処理を行う場合やレイテンシが性能に直接影響を与えるプロセッサ等の処理では、緊急度に応じて高速なレスポンスが求められるため、メモリアクセス効率を高めると同時に緊急度の高いアクセスについてはレイテンシが短いことも求められる。
特開2001-356961号公報 特開2004-310394号公報 特開2002-268942号公報 特開2006-260472号公報
特許文献2に開示されている手法では、マスタ間での調停において同一バンクを使用するコマンドが連続して選択され、効率が低下する場合がある。
また、バンク毎の受付個数を多くすることにより、効率を向上させることができるが、その後に優先度の高いアクセスが発生した場合に、マスタ間の調停での優先順位を高くしても、既に受け付けられた多数のコマンドの処理を待つことになり、レイテンシが大きくなってしまう。
また、特許文献3および特許文献4に開示されている手法では、各マスタのコマンドが常に複数のバンクを跨ぐ場合には効率良くアクセスできるが、マスタによってはプロセッサのように小さなサイズでのランダムアクセスを行う場合もあるため、常に複数のバンクを跨ぐアクセスにすることができるわけではない。
特許文献4に開示されている手法では、複数のマスタによるアクセスを調停した結果、このようなアクセスが連続し、しかも同一のバンクを用いる場合にはページミスヒットの発生が避けられなくなる。
また、特許文献3に示す手法では、バンク毎のキューの段数を多くすることにより、ページミスヒットしないコマンドを受け付ける可能性を高くすることができるが、この場合特許文献2の場合と同様に優先順位の高いコマンドのレイテンシが大きくなるという問題がある。
また、バンクの切り替わり単位を極端に小さくすることにより複数のバンクを跨ぐように構成したとしても、小さなアクセス単位ではページミスヒットによるアクセス間隔を他のバンクのアクセスで隠蔽することができないため効果はない。
以上、多様な性能要求とメモリアクセスサイズをもつシステムにおいて、緊急度の高い処理に対するレスポンス性能とメモリアクセスの効率化を達成するためには、従来の手法ではそれぞれに課題がある。
本発明は、上記課題に鑑みてなされたもので、複数のマスタがメモリに対して多様なアクセスを行うシステムにおいて、緊急度の高いアクセスに対するレイテンシを抑えながら効率の高いアクセスを行うメモリアクセス装置を提供することにある。
上記目的を達成するために、請求項1記載の発明に係るメモリアクセス装置は、プロセッサやDMA(Direct Memory Access)装置など複数マスタのアクセスを調停し、SDRAMなどのそれぞれが複数ページを持つ複数バンクで構成されるメモリへのアクセスを制御するメモリアクセス装置であって、前記マスタから前記メモリに対するアクセスコマンドであって前記メモリの複数バンク領域に跨るアクセスコマンドを前記メモリの各バンクのいずれか一つのバンクに対するアクセスコマンドであるマイクロコマンドに分割するコマンド分割部と、前記マスタ毎に存在する前記コマンド分割部により分割された前記マイクロコマンドの中で同一バンクに対する前記マイクロコマンドを調停していずれか一つを選択するマスタ間調停部と、前記複数のマスタ間調停部により前記複数のバンクの各々に対応して1つずつ選択された複数のマイクロコマンドのいずれか一つを選択してメモリアクセスを行うメモリ制御部を備えており、マスタ間調停部で同一バンク同一ページへのアクセスが連続することにより発生するアクセス発行遅延が少なくなるマイクロコマンドを優先して選択することにより、効率の良いメモリアクセスが可能となる。
また、請求項2記載の発明に係るメモリアクセス装置は、請求項1記載の発明に係るメモリアクセス装置の構成に加え、各マスタ同士のアクセス優先度情報を保持する優先度指定部をさらに備え、前記優先度指定部が前記マスタ間調停部の全てに同じ優先度情報を通知し、前記マスタ間調停部が前記マイクロコマンドを調停する際に前記優先度指定部により指示される優先度情報に従い調停を行うことにより、マスタ毎の優先順位を指定することができ、効率的なメモリアクセスを行いながら、優先度の高いマスタのレイテンシを抑えることができる。
また、請求項3記載の発明に係るメモリアクセス装置は、請求項1記載のメモリアクセス装置の構成に加え、前記メモリ制御部にリフレッシュ要求コマンドを発行するリフレッシュ要求発生部を備え、前記メモリ制御部が前記マイクロコマンドを調停する際に、前記リフレッシュ要求コマンドと前記マイクロコマンドとを調停することにより、メモリアクセスを効率的に行いながら、リフレッシュを適切に挿入することができる。
また、請求項4記載の発明に係るメモリアクセス装置は、請求項1記載の発明に係るメモリアクセス装置の構成に加え、マスタ毎に優先度管理部を備え、前記マスタ間調停部が前記マイクロコマンドを調停する際に、マスタ毎の前記優先度管理部により与えられる優先レベルを参照して選択するマイクロコマンドを決定する。
この構成によれば、待ち時間が長くなるほどマスタ毎の優先度管理部が出力する優先レベルを高くするなど、優先度管理部が与える優先度を制御することにより、各マスタの待ち時間を制御することができる。
また、請求項5記載の発明に係るメモリアクセス装置は、請求項4記載の発明に係るメモリアクセス装置の構成に加え、前記マスタ間調停部にリフレッシュ要求コマンドを発行するリフレッシュ要求発生部およびリフレッシュ要求の優先度管理部を備え、前記マスタ間調停部が前記マイクロコマンドを調停する際に、マスタ毎の前記優先度管理部により与えられる優先レベルと、リフレッシュ要求の前記優先度管理部により与えられる優先レベルを参照し、前記マイクロコマンドと前記リフレッシュ要求コマンドを調停することにより、リフレッシュの緊急度が低い場合には、より優先度の高いアクセスを優先することができ、優先度の高いアクセスのレイテンシを抑えることができる。
また、請求項6記載の発明に係るメモリアクセス装置は、請求項4記載の発明に係るメモリアクセス装置の構成に加え、前記マスタ間調停部は、選択したマイクロコマンドを発行するマスタの前記優先度管理部により与えられる優先レベルを前記メモリ制御部に通知し、前記メモリ制御部はマイクロコマンドを調停する際に前記優先レベルを参照し、優先レベルが既定のレベルより高いマイクロコマンドを優先して調停することにより、メモリ使用効率の向上よりも優先される緊急度の高いコマンドを優先処理することができる。
また、請求項7記載の発明に係るメモリアクセス装置は、請求項1記載の発明に係るメモリアクセス装置の構成に加え、選択したマイクロコマンドがリードかライトかというアクセス方向を判定して前記マスタ間調停部に前記アクセス方向の情報を送り、前記マスタ間調停部は前記アクセス方向の情報を参照し、前記マイクロコマンドの調停を行う際に、前記バンク毎のアクセス方向と同じアクセス方向のマイクロコマンドを優先して選択することにより、ページミスヒットによるメモリ使用効率低下だけではなく、リードとライト切り替えによるメモリ使用効率の低下も抑えることができる。
また、請求項8記載の発明に係るメモリアクセス装置は、請求項1記載の発明に係るメモリアクセス装置の構成に加え、前記コマンド分割部は複数のコマンドを保持し、先に受け付けたコマンドが使用しないバンクまたは既に前記メモリ制御部に受け付けられたバンクに対し、後に受け付けたコマンドがアクセスする場合には、後に受け付けたコマンドを分割して生成したマイクロコマンドを当該バンクのマスタ間調停部に発行することにより、一つのマスタが発行した複数のコマンド間でもメモリアクセスの効率化が可能となり、よりメモリ使用効率が向上できる。
また、請求項9記載の発明に係るメモリアクセス装置は、請求項3または請求項5記載の発明に係るメモリアクセス装置の構成に加え、それぞれが複数ページを持つ複数バンクで構成されており1つまたは複数バンク単位で個別にリフレッシュ可能なメモリへのアクセスを制御するメモリアクセス装置であって、前記リフレッシュ要求発生部が前記メモリの個別にリフレッシュ可能な1つまたは複数バンク毎にリフレッシュ要求コマンドを発行することにより、メモリアクセスが行われていないバンクに対してリフレッシュが行えるようになり、リフレッシュによるメモリアクセス効率の低下を抑えることができる。
また、請求項10記載の発明に係るシステムは、複数のマスタと請求項1〜請求項9記載のメモリアクセス装置とを含むシステムLSIと、それぞれが複数ページを持つ複数バンクで構成されるメモリが接続されており、前記マスタが前記メモリにアクセスする際に、前記メモリアクセス装置を用いて前記メモリのバンク毎のアクセスを調停し、前記メモリにアクセスを行うことにより、メモリアクセス効率が高いシステムを構成することができる。
本発明のメモリアクセス装置によれば、マスタが発行するメモリアクセスコマンドが複数バンクに跨る場合でも、ページミスヒットやリードとライトの切り替えやリフレッシュによる効率低下を抑え、メモリアクセス効率を高めることができる。
また、マスタアクセスの緊急度やマスタの待ち時間に応じて優先度を設定することができ、マスタ間の調停後に各バンクに対するコマンドをキューに溜める必要がないため、優先度の高いマスタに対するレイテンシが大きくなることがない。
また、転送効率の高いメモリアクセス装置を使用することで単位時間あたりの有効データ転送量を増加することができ、システムの単位時間あたりの処理量を向上することができ、処理量が同等の場合には処理時間や動作周波数を抑えることができ低消費電力化にも貢献できる。
また、プロセッサ等のレイテンシを抑えることにより、キー入力時などのレスポンス性能の向上などにも貢献することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図面において実質的に同一の構成要素には同じ参照符号を付けてその説明は繰り返さない。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るメモリアクセス装置の構成を示すブロック図である。このメモリアクセス装置100は、複数のコマンド分割部(102〜104),リフレッシュ生成部105,複数のマスタ間調停部(106〜109),メモリ制御部110,優先度指定部115,ライトデータバッファ116,リードデータバッファ117を備えており、SDRAM118および複数のマスタ(図示せず)に接続されている。
複数のコマンド分割部(102〜104)は複数のマスタ(ここではマスタ0,1,2とする)に対応して設けられている。コマンド分割部102はマスタ0に対応し、コマンド分割部103はマスタ1に対応し、コマンド分割部104はマスタ2に対応しているものとする。
SDRAM118は複数のバンク(ここではバンク0,1,2,3とする)を有する。各バンクは複数のページを有する。
複数のマスタ間調停部(106〜109)はSDRAM118の複数のバンク(0〜3)に対応して設けられている。マスタ間調停部106はバンク0に対応し、マスタ間調停部107はバンク1に対応し、マスタ間調停部108はバンク2に対応し、マスタ間調停部109はバンク3に対応しているものとする。
コマンド分割部(102〜104)は、対応するマスタ(0〜2)が発行するコマンドを受け付け、そのコマンドを、マスタ間調停部(106〜109)のうち当該コマンドのアクセス領域を含むバンクに対応するマスタ間調停部に伝える。このとき、コマンドアクセス領域がSDRAM118内の複数バンクの領域に跨る場合には、コマンド分割部(102〜104)は、受け付けたコマンドをいずれか1つのバンクにのみアクセスするマイクロコマンドに分割し、各マイクロコマンドを、当該マイクロコマンドのアクセス領域を含むバンクに対応するマスタ間調停部(106〜109)に伝える。たとえば、バンク0をアクセス領域とするマイクロコマンドはマスタ間調停部0(106)に伝えられ、バンク1をアクセス領域とするマイクロコマンドはマスタ間調停部1(107)に伝えられる。また、分割したマイクロコマンド全てがメモリ制御部110に受け付けられると、マスタから新たなコマンドを受け付ける。図1では、メモリ制御部110がマイクロコマンドを受け付けたことを示す情報はマスタ間調停部(106〜109)を介してコマンド分割部(102〜104)に送られることになるが、メモリ制御部110からコマンド分割部(102〜104)に直接通知する構成としても良い。
リフレッシュ生成部105は、SDRAM118に対するリフレッシュ要求コマンドを生成し、特殊なマイクロコマンドとしてメモリ制御部110に伝える。
マスタ間調停部(106〜109)は、マスタ毎のコマンド分割部(102〜104)から伝えられたマイクロコマンドを調停し、優先度指定部115により与えられる優先順位情報に従い、最も優先順位の高いマイクロコマンドを選択し、メモリ制御部110に伝える。
なお、マスタ間調停部(106〜109)は、一度マイクロコマンドを調停しても、そのマイクロコマンドがメモリ制御部110により受け付けられる前に、更に優先度の高いマイクロコマンドが送られてきた場合には、メモリ制御部110に伝えるマイクロコマンドを変更する。
メモリ制御部110は、バンク間調停部111と、コマンド履歴管理部113と、マイクロコマンドキュー112と、SDRAMアクセス部114とを備えており、マスタ間調停部(106〜109)およびリフレッシュ生成部105から送られたマイクロコマンドを調停し、SDRAM118へのアクセスを行う。
バンク間調停部111は、マイクロコマンドキュー112の状態を判定し、空きがある場合には、マスタ間調停部(106〜109)およびリフレッシュ生成部105から送られたコマンドを調停していずれか1つを選択し、マイクロコマンドキュー112に入れる。このとき、コマンドの調停は、リフレッシュ要求コマンドがある場合にはリフレッシュ要求コマンドを選択し、リフレッシュ要求コマンドがない場合には、コマンド履歴管理部113を参照し、最近選択されたバンクのコマンドの優先順位を低くすることにより同じバンクのコマンドが離れるように選択する。
マイクロコマンドキュー112は、バンク間調停部111から送られたマイクロコマンドを保持し、保持しているマイクロコマンドの情報をSDRAMアクセス部114に伝える。
SDRAMアクセス部114は、マイクロコマンドキュー112を参照し、SDRAM118のタイミング規約に従いSDRAM118へのコマンドを発行する。特にマイクロコマンドキュー112の先頭のコマンドに対応するアクセスコマンドまたはリフレッシュコマンドが発行可能である場合にはSDRAM118に対するアクセスコマンドまたはリフレッシュコマンドを発行する。アクセスコマンドまたはリフレッシュコマンドが発行できない場合には、マイクロコマンドキュー112に保持されているコマンドを参照し、先行してアクティブコマンドが発行可能である場合にはアクティブコマンドを発行する。このとき、アクティブコマンドが発行可能である場合とは、コマンドキュー112内の該コマンドに先行するコマンドの中に同一バンクにアクセスするコマンドまたはリフレッシュ要求が存在せず、該コマンドに対応するバンクがまだアクティブになっておらず、タイミング規約で禁止されていない場合を意味する。また、同時にアクティブ可能なバンクが複数存在する場合には、最も先頭に近いコマンドの使用するバンクに対してアクティブコマンドを発行する。
コマンド履歴管理部113は、バンク間調停部112で選択されたコマンドを観測し、バンクアクセス順序を管理し、バンク間調停部111に伝える。
優先度指定部115は、各マスタアクセスの優先順序情報を保持しており、マスタ間調停部(106〜109)に優先順序情報を与える。このとき、各マスタ間調停部(106〜109)には共通の優先順序情報を与える。なお、優先度指定部115に保持される優先順序情報は、マスタ毎に固定されていても良いし、プロセッサ等により設定可能なレジスタにより構成し、ソフトウェアにより設定可能な構成としても良い。
ライトデータバッファ116は、ライトアクセス時にマスタから送られるライトデータ及び、当該ライトデータとマイクロコマンドの対応情報を保持し、SDRAMアクセス部114がSDRAM118にライトアクセスするタイミングにあわせて、アクセスするマイクロコマンドに対応するデータを出力する。
リードデータバッファ117は、各マスタの発行したコマンドと、SDRAMアクセス部114がSDRAM118に発行したリードアクセスコマンドの順序と、SDRAMアクセス部114がSDRAM118にリードアクセスした際にSDRAM118から出力されるリードデータを保持し、保持されたリードデータを各マスタのコマンド発行順序に並び替えて各マスタに出力する。
次に、図2を用いて実際の動作について説明する。
図2において、サイクル行は、クロックに同期したサイクルの経過を表している。マスタ0,マスタ1,マスタ2の行は各マスタが発行したコマンドのタイミングとコマンドの内容を示している。ここでは、三角印(△)でコマンドを発行したタイミングを示し、三角印(△)の右にコマンドの内容として順にリードまたはライト,アドレス(16進数),アクセスサイズ(byte単位)を表示している。
また、アクセスするメモリであるSDRAM118は、16 byte毎に4つのバンクが0,1,2,3の順に切り替わるインターリーブ型のマッピングとなっており、各バンクのページサイズは1024 byteであり、結果として4096 byte(16進数で1000)毎にページが切り替わるものとする。
リフレッシュの行は、リフレッシュ生成部105がリフレッシュコマンドを発行するタイミングを示しており、三角印(△)でリフレッシュリクエストを発行したタイミングを示している。
マスタ間調停部の行は、各マスタのコマンドが分割されて各マスタ間調停部(106〜109)に送られたマイクロコマンドを調停した結果を示しており、選択したマイクロコマンドのマスタ番号を表示している。
ここで、優先度指定部115にはマスタ0,マスタ1,マスタ2の順に高い優先度を割当られているものとする。
例えば、サイクル1のマスタ間調停部0(106)では、マスタ0,マスタ1,マスタ2のそれぞれのコマンドがバンク0へのアクセスを含んでいるため、各マスタのコマンド分割部(102〜104)から送られるマイクロコマンドを調停しているが、その中で最も優先度の高いマスタ0のマイクロコマンドを選択し、次のサイクル2で出力している。
その後、サイクル4でマスタ間調停部0(106)のマイクロコマンドが選択されると、マスタ0のマイクロコマンドの受付がコマンド分割部102に通知され、コマンド分割部102にバンク0を用いるマイクロコマンドがなくなるため、次のサイクル5では次に優先度の高いマスタ1のコマンドが調停されて出力されるようになっている。
バンク間調停部の行は、各マスタ間調停部(106〜109)またはリフレッシュ生成部105から送られるマイクロコマンドを調停した結果を表示しており、(X)によりリフレッシュコマンドを表し、数字によりマスタ間調停部の番号、すなわちマイクロコマンドがアクセスするバンクを表している。
なお、図2に示した例では、初期状態ではコマンド履歴管理部113で管理されている履歴として、最も近くにアクセスされたバンクが3であり、順に2,1としてバンク0のアクセス履歴が最も古くなっているとしている。
これにより、サイクル2では最も優先度の高いリフレッシュを選択した後、履歴の古いバンク0(サイクル4,22)、バンク1(サイクル6,26)、バンク2(サイクル14,30)、バンク3(サイクル18)の順にマイクロコマンドを選択している。なお、サイクル34では最も履歴の古いバンクは3であるが、バンク3のマイクロコマンドが存在しないため、次に優先順位の高いバンク0のマイクロコマンドを選択している。
また、図2に示した例ではバンク間調停部111は、調停を行った次のサイクルは調停を行わない構成としているため、サイクル3,5,7等では調停結果を示していない。
また、コマンドキュー112の段数を2段としているため、サイクル8のようにコマンドキュー112にマイクロコマンドが2個入っている状態では次の調停を行っておらず、リードアクセスコマンドが発行されて空きができるサイクル14まで次の調停は待たされることになる。
最後の、コマンド,バンク,ページの行は、SDRAMアクセス部114がSDRAM118にアクセスするコマンドの内容を表しており、(X)はリフレッシュコマンドを、(A)はアクティブコマンドを、(R)はリードコマンドを表している。
図2の動作例では、SDRAM118として、リフレッシュコマンドからアクティブコマンドまでの間隔を7サイクル、アクティブコマンドから別バンクのアクティブコマンドまでの間隔を2サイクル、アクティブコマンドからリードコマンドまでの間隔を3サイクル、リードコマンドから次のアクティブコマンドまでの間隔を9サイクルという規約を持つ場合を例としている。
また、SDRAMではリードアクセスから次のアクティブを行う場合にはプリチャージという処理が必要となるが、ここではリードアクセス後に自動的にプリチャージが行われるオートプリチャージという機能を利用しており、プリチャージコマンドは発行していない。
また、SDRAM118のデータバス幅は4 byteとしており、各バンク16 byteのアクセスに4サイクルかかるため、異なるバンク間のリードアクセス間隔は4サイクル必要となっている。
この結果、SDRAM118にアクセスするコマンドの並びを見ると、マスタ0,マスタ1,マスタ2のコマンドがマイクロコマンド単位で切り替わりながらバンクを変えて効率よくアクセスできていることがわかる。
なお、本実施の形態で使用したメモリ(SDRAM118)の種類やタイミング規約やアドレスに対するバンクやページのマッピングなどは説明のための一例であり本発明の適用範囲を制限するものではない。
また、本実施の形態での、マスタ間調停部(106〜109)の出力、バンク間調停部111の出力、SDRAM118へのコマンドの出力をそれぞれ1サイクルずらす、バンク間調停部111での調停を1サイクルあけるという構成は、クロック周波数などの回路設計要件から決めることができ、本発明の範囲を制限するものではない。
また、本実施の形態では、マスタのアクセスコマンドとして単純な一次元領域のアクセスを扱っているが、2次元の矩形領域アクセスコマンドの場合でも、同一バンクの同一ページに対するアクセスをまとめて1つのマイクロコマンドとして扱うことにより、同様に扱うことができる。
また、2次元の矩形領域アクセスコマンドを分割して複数の同一バンク同一ページのマイクロコマンドを作成する場合も、マイクロコマンドに同一ページアクセスが継続することを表す情報を付加しておき、マスタ間調停部(106〜109)およびバンク間調停部111で、同一ページアクセスに対しては同じバンクで同じマスタのコマンドを連続して処理するようにでき、1つのマイクロコマンドとする場合と同様に扱うことができる。
また、本実施形態におけるメモリ制御部110の構成は単なる一例であり、バンク間調停部111での選択ルールやメモリ(SDRAM118)へのコマンドの決定方法は本発明の範囲を限定されるものではない。例えば、本実施形態ではアクセス履歴として、各バンクのアクセス順序を記憶しているが、単に直前のバンクだけを記憶する単純なラウンドロビン調停にしても良い。
以上、第1の実施形態によると、マスタが発行するコマンドに複数のバンクに跨るコマンドが含まれる場合、マスタ内でのマイクロコマンドとマスタ間のコマンドの順序を並べ替えることにより、効率の良いSDRAMアクセスを行うことができる。
また、マスタ間調停部111以後のバッファ量を少なく抑えられるため、優先順位の高いマスタのアクセスのレイテンシを短く抑えることができる。
(第2の実施形態)
図3は第2の実施形態に係るメモリアクセス装置の構成を表すブロック図である。このメモリアクセス装置300は、複数のコマンド分割部(302〜304),リフレッシュ生成部305,複数のマスタ間調停部(306〜309),メモリ制御部310,ライトデータバッファ316,リードデータバッファ317,複数の優先度管理部(320〜323)を備えており、SDRAM318および複数のマスタ(図示せず)に接続されている。
複数のコマンド分割部(302〜304)は複数のマスタ(ここではマスタ0,1,2とする)に対応して設けられている。コマンド分割部302はマスタ0に対応し、コマンド分割部303はマスタ1に対応し、コマンド分割部304はマスタ2に対応しているものとする。
SDRAM318は複数のバンク(ここではバンク0,1,2,3とする)を有する。各バンクは複数のページを有する。
複数のマスタ間調停部(306〜309)はSDRAM318の複数のバンク(0〜3)に対応して設けられている。マスタ間調停部306はバンク0に対応し、マスタ間調停部307はバンク1に対応し、マスタ間調停部308はバンク2に対応し、マスタ間調停部309はバンク3に対応しているものとする。
優先度管理部(320〜322)は複数のマスタ(ここではマスタ0,1,2とする)に対応して設けられている。優先度管理部320はマスタ0に対応し、優先度管理部321はマスタ1に対応し、優先度管理部322はマスタ2に対応しているものとする。また、優先度管理部323はリフレッシュ生成部305に対応して設けられている。
コマンド分割部(302〜304)は、対応するマスタ(0〜2)が発行するコマンドを受け付け、そのコマンドを、マスタ間調停部(106〜109)のうち当該コマンドのアクセス領域を含むバンクに対応するマスタ間調停部に伝える。このとき、コマンドアクセス領域がSDRAM318内の複数バンクの領域に跨る場合には、コマンド分割部(302〜304)は、受け付けたコマンドをいずれか1つのバンクにのみアクセスするマイクロコマンドに分割し、各マイクロコマンドを、当該マイクロコマンドのアクセス領域を含むバンクに対応するマスタ間調停部(306〜309)に伝える。
リフレッシュ生成部305は、SDRAM318に対するリフレッシュ要求コマンドを生成し、特殊なマイクロコマンドとして全てのマスタ間調停部(306〜309)に伝える。
優先度管理部(320〜322)は、カウンタレジスタで構成されており、対応するマスタからのリクエストを受けると、分割して生成されたマイクロコマンド全てがメモリ制御部310に受け付けられるまで、サイクル毎にカウンタのカウントダウンを行い、カウンタ値が小さいほど優先度が高いことを示し、待ち時間が長くなるほど優先順位が高くなる。マイクロコマンド全てがメモリ制御部310に受け付けられた場合の処理としては、カウンタレジスタの値を初期値にリセットしても良いし、設定した値を加算してマスタからの要求がない場合にも初期値までカウントダウンする構成としても良い。前者の場合、要求毎のレイテンシを常に同程度に保つことができ、後者の場合には、設定した加算値により制御される間隔より短い間隔で要求されるコマンドに対しては優先順位を下げて、他のマスタのアクセスを優先することができる。カウンタレジスタの値は、コマンド分割部(302〜304)から送るマイクロコマンドと同時にマスタ間調停部(306〜309)に伝える。
リフレッシュ用の優先度管理部323は、マスタ用の優先度管理部(320〜322)と同様であるが、マスタからのコマンドを受け付ける代わりにリフレッシュ生成部305がリフレッシュ要求を生成したときにカウントダウンを開始する点が異なる。
マスタ間調停部(306〜309)は、マスタ毎のコマンド分割部(302から304)から伝えられたマイクロコマンドおよびリフレッシュ生成部305から伝えられたリフレッシュコマンドを調停し、メモリ制御部310に伝える。
マスタ間調停部(306〜309)は、マイクロコマンドを調停する際に、マイクロコマンドと同時に伝えられる優先度管理部(320〜323)のカウンタレジスタの値を参照し、値が最も小さいマイクロコマンドを選択する。また、選択したマイクロコマンドをメモリ制御部310に伝える際に、選択したマイクロコマンドと同時に伝えられたカウンタレジスタの値も同時に伝える。
なお、マスタ間調停部(306〜309)は、一度マイクロコマンドを調停しても、メモリ制御部310により受け付けられる前に、更に優先度の高いマイクロコマンドが送られてきた場合には、メモリ制御部310に伝えるマイクロコマンドを変更する。
また、優先度管理部(320〜323)のカウンタレジスタの値は毎サイクル更新されるため、メモリ制御部310に伝えるカウンタレジスタの値も毎サイクル更新する。
メモリ制御部310は、バンク間調停部311と、マイクロコマンドキュー312と、SDRAMアクセス部313とを備えており、マスタ間調停部(306〜309)から送られたマイクロコマンドを調停し、SDRAM318へのアクセスを行う。
バンク間調停部311は、マイクロコマンドキュー312の状態とSDRAMアクセス部313から送られるメモリ状態情報を用いて、マスタ間調停部(306〜309)から送られたコマンドの調停を行う。このとき、バンク間調停部311にはアクセス効率化より優先すべき優先度カウンタの値が予め設定してあり、調停を行う際には各コマンドの優先度カウンタの値と設定値とを参照する。
図4に、バンク間調停部311が行う調停処理の1サイクルの動作フローを示す。
バンク間調停部311は、まずステップ401でマイクロコマンドキュー312の空き状態を確認し、空きがある場合にはステップ402に進み、空きがない場合には処理を完了する。
次にステップ402で、マスタ間調停部(306〜309)から送られたマイクロコマンドを確認し、全てがリフレッシュ要求になっており、リフレッシュコマンドが発行可能である場合にはステップ403に進み、全てのマスタ間調停部(306〜309)のリフレッシュ要求を受け付け、SDRAMアクセス部313にリフレッシュコマンド発行要求を送る。
リフレッシュ要求以外が存在する場合またはリフレッシュコマンドが発行不可能である場合には、ステップ404に進み、リフレッシュ要求以外のマイクロコマンドの中に優先度カウンタの値が設定値以下のものがあるか否かを判定する。
優先度カウンタの値が設定値以下のマイクロコマンドが存在する場合には、ステップ405に進み、最も優先度カウンタの値が小さいマイクロコマンドが使用するバンクに対するアクティブコマンドが発行可能か否かを判定し、発行可能である場合にはステップ406に進み、該マイクロコマンドを受け付け、マイクロコマンドキュー312に入れ、SDRAMアクセス部313にアクティブコマンド発行要求を行う。
ステップ405において、最も優先度カウンタの値が小さいマイクロコマンドが複数存在する場合には、使用するバンクに対するアクティブコマンドが発行可能であるマイクロコマンドを優先的に選択する。
ステップ405において、アクティブコマンドが発行可能でない場合には処理を完了する。
また、優先度カウンタの値が設定値以下のマイクロコマンドが存在しない場合には、ステップ407に進み、使用するメモリバンクに対するアクティブコマンドが発行可能なマイクロコマンドが存在するか否かを判定し、存在する場合にはステップ408に進み、該マイクロコマンドを受け付け、マイクロコマンドキュー312に入れ、SDRAMアクセス部313にアクティブコマンド発行要求を行う。
ステップ407において、アクティブコマンドが発行可能なマイクロコマンドが存在しない場合には処理を完了する。
なお、ステップ406,408において該当するマイクロコマンドが複数存在する場合には、ラウンドロビン調停論理に従って選択し、特定のバンクにアクセスするマイクロコマンドが偏って選択されないようにする。
なお、ステップ404における設定値は、固定値でも良いし、あるいはプロセッサにより設定可能なレジスタであっても良い。
マイクロコマンドキュー312は、バンク間調停部311から送られたマイクロコマンドを保持し、保持しているマイクロコマンドの情報をSDRAMアクセス部313に伝える。
SDRAMアクセス部313は、マイクロコマンドキュー312を参照し、SDRAM318のタイミング規約に従いSDRAM318へのアクセスコマンドを発行する。
また、SDRAMアクセス部313は、発行可能なアクセスコマンドが存在しない場合には、バンク間調停部311にリフレッシュコマンドが発行可能か否かとアクティブコマンドを発行可能なバンクの情報を通知し、バンク間調停部311からリフレッシュコマンド発行要求を受けた場合にはSDRAM318に対してリフレッシュコマンドを発行し、アクティブコマンド発行要求を受けた場合にはSDRAM318に対して該バンクに対するアクティブコマンドを発行する。このとき、アクティブコマンドを発行可能なバンクとは、マイクロコマンドキュー312内のコマンドがアクセスするバンクを除き、SDRAM318のタイミング規約に従いアクティブコマンドが発行可能なバンクを意味する。
ライトデータバッファ316は、ライトアクセス時にマスタから送られるライトデータ及び、当該ライトデータとマイクロコマンドの対応情報を保持し、SDRAMアクセス部313がSDRAM318にライトアクセスするタイミングにあわせて、アクセスするマイクロコマンドに対応するライトデータを出力する。
リードデータバッファ317は、各マスタのコマンドと、SDRAMアクセス部313がSDRAM318に発行したリードアクセスコマンドの順序と、SDRAMアクセス部313がSDRAM318にリードアクセスした際にSDRAM318から出力されるリードデータを保持し、リードデータを各マスタのコマンド順序に並び替えて各マスタに出力する。
以上、第2の実施形態によれば、各マスタおよびリフレッシュ毎に優先度管理部(320〜323)を持つことにより、優先度の低いマスタが極端に長く待たされることを防ぎつつ、リフレッシュを含むSDRAMアクセスを効率よく行うことができる。
また、優先度管理部(320〜323)から出される優先度情報を、マスタ間調停部(306〜309)を介してメモリ制御部310にまで伝えることにより、緊急度の高いアクセスを優先することができ、SDRAMアクセスの効率化を行いながらリアルタイム性の高い処理の保証を行うことができる。
なお、メモリ制御部310の構成は多様な構成が考えられ、本実施形態でのメモリ制御部310の構成は本発明の適用範囲を制限するものではない。
例えば、本実施の形態では、メモリ制御部310はアクティブを発行したマイクロコマンドをメモリ制御部310内のキュー312に受け付ける構成としたが、アクティブを発行したマイクロコマンドを送っているマスタ間調停部(306〜309)に信号を送り、メモリアクセスが可能になるまでマスタ間調停部(306〜309)に同一マイクロコマンドを送り続けるように指示し、メモリアクセスが可能になった時点でマイクロコマンドを受け付けると同時にメモリアクセスを行うという構成にすることも可能であるし、第1の実施形態と同様な構成をとることもできる。
また、本実施形態では全てのマスタおよびリフレッシュに優先度管理部(320〜323)を備え、優先レベルを示すカウンタを備えたが、一部のマスタに対しては固定した優先レベルを与える構成としても良いことは言うまでもない。
(第3の実施形態)
図5は、第3の実施形態に係るメモリアクセス装置を表すブロック図である。このメモリアクセス装置500は、複数のコマンド分割部(102〜104),リフレッシュ生成部105,複数のマスタ間調停部(506〜509),メモリ制御部510,優先度指定部115,ライトデータバッファ116,リードデータバッファ117を備えており、SDRAM118および複数のマスタ(図示せず)に接続されている。同図において、コマンド分割部(102〜104),リフレッシュ生成部105,優先度指定部115,ライトデータバッファ116,リードデータバッファ117については第1の実施形態(図1)における対応する構成要素と同等の機能を有するため説明を省略する。
また、メモリ制御部510は、バンク間調停部511,マイクロコマンドキュー112,コマンド履歴管理部113,SDRAMアクセス部114を備えている。マイクロコマンドキュー112,コマンド履歴管理部113,SDRAMアクセス部114については第1の実施形態(図1)における対応する構成要素と同等の機能を有するため説明を省略する。
第3の実施形態において、バンク間調停部511は、第1の実施形態(図1)におけるバンク間調停部111と同様にマイクロコマンドを選択することに加えてさらに、選択したマイクロコマンドがリードであるかライトであるかリフレッシュであるかという情報を、信号線524を介してマスタ間調停部(506〜509)に伝える。
マスタ間調停部(506〜509)は、信号線524を介して得られるリード・ライト情報を参照し、バンク間調停部511で前回受け付けられたマイクロコマンドがリードの場合にはリードの中で最も優先レベルの高いマイクロコマンドを選択し、ライトの場合にはライトの中で最も優先レベルの高いマイクロコマンドを優先して選択する。また、該当するマイクロコマンドがない場合や、前回受け付けられたマイクロコマンドがリフレッシュの場合には、全てのマイクロコマンドの中で最も優先レベルの高いマイクロコマンドを選択する。
以上、第3の実施形態によると、メモリ制御部510で受け付けたマイクロコマンドのリード・ライト情報をマスタ間調停部(506〜509)に伝えることにより、リードとライトの切り替え頻度を少なくすることができ、より効率の良いメモリアクセスが可能となる。
なお、本実施の形態では、単純に同一アクセス方向が一致するコマンドを優先しているが、一定レベル以上の優先レベルのコマンドに対しては、アクセス方向が異なっても優先レベルの高いコマンドを選択することにしても良い。
(第4の実施形態)
図6は第4の実施形態に係るメモリアクセス装置を表すブロック図である。このメモリアクセス装置600は、複数のコマンド分割部(602〜604),リフレッシュ生成部105,複数のマスタ間調停部(106〜109),メモリ制御部110,優先度指定部115,ライトデータバッファ116,リードデータバッファ117を備えており、SDRAM118および複数のマスタ(図示せず)に接続されている。同図において、リフレッシュ生成部105,マスタ間調停部(106〜109),優先度指定部115,ライトデータバッファ116,リードデータバッファ117については第1の実施形態(図1)における対応する構成要素と同等の機能を有するため説明を省略する。
コマンド分割部(602〜604)は、対応するマスタ(0〜2)が発行するコマンドを受け付け、そのコマンドを、マスタ間調停部(106〜109)のうち当該コマンドのアクセス領域を含むバンクに対応するマスタ間調停部に伝える。このとき、コマンドアクセス領域がSDRAM118内の複数バンクの領域に跨る場合には、コマンド分割部(602〜604)は、受け付けたコマンドをいずれか1つのバンクにのみアクセスするマイクロコマンドに分割し、各マイクロコマンドを、当該マイクロコマンドのアクセス領域を含むバンクに対応するマスタ間調停部(106〜109)に伝える。
また、コマンド分割部(602〜604)は、内部に2段のコマンドキュー(625〜627)を備えており、対応するマスタから送られるアクセスコマンドを2コマンド受け付けることができる。
コマンド分割部(602〜604)において、先に受け付けたコマンドがアクセスしないバンクがある場合や、分割したマイクロコマンドの一部がメモリ制御部110に受け付けられた場合には、マスタ間調停部(106〜109)の一部に対してマイクロコマンドを伝えていない状態となる。
このとき、コマンドキュー(625〜627)に受け付けられている2番目のコマンドが当該バンクにアクセスする場合には、2番目のコマンドを分割して作成されるマイクロコマンドを当該バンクに対応するマスタ間調停部に伝える。
これにより、最初のコマンドを分割して作成されたマイクロコマンドと第2のコマンドを分割して作成されたマイクロコマンドを同時に伝えることになり、後者のマイクロコマンドが先にメモリ制御部110に受け付けられる場合もある。ただし、同一アドレスに対するアクセスは同一バンクになるため、同一アドレスに対するアクセスの順序が入れ替わることはない。
そして、コマンドキュー(625〜627)に受け付けられている各コマンドは、そのコマンドを分割して作成された全てのマイクロコマンドがメモリ制御部110に受け付けられた時点でコマンドキュー(625〜627)から抜き、マスタから新たなコマンドを受け付ける。
以上、第4の実施形態によれば、コマンド分割部(602〜604)で複数のコマンドを受け付けることにより、同一マスタからのコマンドの処理順序をマイクロコマンド単位で入れ替えることができ、さらに効率の良いSDRAMアクセスを行うことができる。
なお、本実施形態では、コマンド分割部(602〜604)ではマスタから送られるコマンド単位でキューに溜める構成としたが、マイクロコマンドに分割した後で使用バンク毎のキューに溜める構成とすることもできる。
また、本実施形態では、コマンド分割部(602〜604)で受け付け可能なコマンド数を2つとしたが、3つ以上を受け付ける構成とすることもできることはいうまでもない。
なお、本実施形態では、メモリアクセス装置600内のコマンド分割部(602〜604)によりマイクロコマンドへの分割を行っているが、マスタ内でマイクロコマンドへの分割を行い、メモリアクセス装置600内でのコマンド分割部(602〜604)では分割を行わず、マイクロコマンドのキューを持ちマスタ間調停部(106〜109)へマイクロコマンドを伝える処理だけを行う構成とすることもできる。
(第5の実施形態)
図7は第5の実施形態に係るメモリアクセス装置の構成を示すブロック図である。このメモリアクセス装置700は、複数のコマンド分割部(302〜304),リフレッシュ生成部705,複数のマスタ間調停部(706〜709),メモリ制御部710,ライトデータバッファ316、リードデータバッファ317、複数の優先度管理部(320〜323)を備えており、SDRAM718および複数のマスタ(図示せず)に接続されている。
図7における各構成要素は、第2の実施形態(図3)における対応する構成要素とほぼ同等の機能を有するため詳細な説明を省略し、動作と構成の異なる部分のみを説明する。
SDRAM718は、2つのバンクにより構成される2つのSDRAM(728,729)により構成されおり、メモリ制御部710からアクセスする場合には、コマンド出力時に各SDRAMに対してコマンドが有効か無効かを示す信号を付加することにより区別し、その他のコマンド情報およびデータを入出力する信号線は共用する。また、SDRAM728、729のそれぞれに含まれる2つのバンクは別々にリフレッシュすることはできないが、SDRAM728とSDRAM729を別々にリフレッシュすることは可能となっている。
マスタ間調停部(706〜709)は、各SDRAMの各バンクに対応して存在しており、マスタ間調停部706,707はSDRAM728のバンク0,1に対応し、マスタ間調停部708,709はSDRAM729のバンク0,1に対応している。
リフレッシュ生成部705は、リフレッシュ要求をSDRAM728に対するリフレッシュ要求コマンドとSDRAM729に対するリフレッシュ要求コマンドに分割し、SDRAM728に対するリフレッシュ要求コマンドはマスタ間調停部706と707に伝え、SDRAM729に対するリフレッシュ要求コマンドはマスタ間調停部708と709に伝える。
バンク間調停部711は、第2の実施形態と同様に、図4に示すフローチャートに従うが、ステップ402の処理のみ異なる。
第5の実施形態において、ステップ402では、SDRAM728またはSDRAM729に対応する2つのマスタ間調停部の双方がリフレッシュコマンドを選択しており、かつそのSDRAMへのリフレッシュが可能である場合にステップ403に進み、SDRAMアクセス部313に対し、当該SDRAMに対するリフレッシュコマンド発行を要求する。
なお、SDRAM728とSDRAM729の双方が条件を満たす場合には、双方に対して同時にリフレッシュコマンド発行を要求する。
なお、本実施形態では、2バンク構成のSDRAM2つの場合を示したが、バンク構成やSDRAMの数に限定されることはなく、また各バンクが独立にリフレッシュ可能であるメモリでも同様に適用可能であることは明らかである。
以上、第5の実施形態によれば、メモリアクセスとリフレッシュを効率的に調停することができ、メモリアクセス効率を高めることができる。
(第6の実施形態)
図8は第6の実施形態に係るシステムを表した図である。図8に示したシステムは、DVDドライブなどの入力装置802,LCDなどの表示装置803,SDRAM804,システムLSI801を備えている。
また、システムLSI801は、入力装置インタフェース回路808,出力装置インタフェース回路807,マイコン回路805,動画像復号回路806,および,第1〜第5の実施形態で示したいずれかのメモリアクセス装置回路809を含み、入力装置インタフェース回路808,出力装置インタフェース回路807,マイコン回路805,動画像復号回路806がメモリアクセス装置回路809に接続されている。
また、図示していないが、マイコン回路805は、入力装置インタフェース回路808,出力装置インタフェース回路807,動画像復号化回路806に接続されており、各回路の制御を行うことができる。
入力装置インタフェース回路808は入力装置802に、出力装置インタフェース回路807は表示装置803に、メモリアクセス装置回路809はSDRAM804に接続されている。
図8に示したシステムは、マイコン805がSDRAM804に格納されたプログラムを読み込みながら実行することにより、入力装置インタフェース回路808,表示装置インタフェース回路807,動画像復号回路806を制御することにより、入力装置インタフェース回路808が入力装置802から動画ストリームデータをSDRAM804に読み込み、SDRAM804に読み込まれた動画ストリームデータを動画像復号回路806によりデコードして画像データを作成してSDRAM804に書き込み、SDRAM804に書き込まれた画像データを出力装置インタフェース回路807が読み出し表示装置803に表示する。
このとき、入力装置インタフェース回路808,出力装置インタフェース回路807,マイコン805,動画像復号回路806がそれぞれメモリアクセス装置809を用いてSDRAM804にアクセスするため、効率の良いSDRAMアクセスを行うことができる。
以上、第6の実施形態によると、複数マスタが効率よくSDRAMにアクセスすることができ、システム性能を高めることができる。
なお、第1の実施形態から第6の実施形態においてメモリとしてSDRAMを用いているが、ダブルデータレートSDRAMやランバスDRAMなど同様の性質を持つメモリに対しても適用できることは言うまでもない。
本発明に係るメモリアクセス装置は、転送効率の高いメモリアクセスを行うことで単位時間あたりの有効データ転送量を増加することができ、システムの単位時間あたりの処理量を向上することに有用であり、処理量が同等の場合には処理時間や動作周波数を抑えることができ低消費電力化にも有用である。
また、プロセッサ等のレイテンシを抑えることにより、キー入力時などのレスポンス性能の向上などにも有用である。
第1の実施形態におけるメモリアクセス装置のブロック図 第1の実施形態において行われる調停の動作例 第2の実施形態におけるメモリアクセス装置のブロック図 第2の実施形態におけるバンク間調停部の動作フロー 第3の実施形態におけるメモリアクセス装置のブロック図 第4の実施形態におけるメモリアクセス装置のブロック図 第5の実施形態におけるメモリアクセス装置のブロック図 第6の実施形態におけるシステム構成図
符号の説明
100,300,500,600,700,809 メモリアクセス装置
102〜104,302〜304,602〜604 コマンド分割部
105,305,705 リフレッシュ生成部
106〜109,306〜309,506〜509,706〜709 マスタ間調停部
110,310,510,710 メモリ制御部
115 優先度指定部
320〜322 マスタ毎の優先度管理部
323 リフレッシュ要求の優先度管理部
524 メモリ制御部で選択したコマンドのアクセス情報を伝える信号線

Claims (10)

  1. 複数のマスタによる共通のメモリへのアクセスを制御するメモリアクセス装置であって、
    前記メモリは複数のバンクを有し、
    前記複数のバンクの各々は複数のページを有し、
    前記メモリアクセス装置は、
    前記複数のマスタに対応して設けられた複数のコマンド分割部と、
    前記複数のバンクに対応して設けられた複数のマスタ間調停部と、
    メモリ制御部とを備え、
    前記複数のコマンド分割部の各々は、
    対応するマスタにより発行されるコマンドのアクセス領域が前記複数のバンクのうちの2つ以上のバンクに跨るとき、当該コマンドを、各々が前記2つ以上のバンクのいずれか1つにのみアクセスするコマンドである複数のマイクロコマンドに分割し、各マイクロコマンドを、そのマイクロコマンドのアクセス領域を含むバンクに対応するマスタ間調停部に与え、
    前記複数のマスタ間調停部の各々は、
    前記複数のコマンド分割部から与えられるマイクロコマンドを調停していずれか1つを選択し、
    前記メモリ制御部は、
    前記複数のマスタ間調停部により選択された複数のマイクロコマンドのいずれか1つを選択してメモリアクセスを行う、
    ことを特徴とするメモリアクセス装置。
  2. 請求項1において、
    前記複数のマスタ間のアクセス優先度情報を保持する優先度指定部をさらに備え、
    前記優先度指定部は、
    前記複数のマスタ間調停部の全てに同じ優先度情報を通知し、
    前記複数のマスタ間調停部の各々は、
    前記優先度情報に従って前記マイクロコマンドを調停する、
    ことを特徴とするメモリアクセス装置。
  3. 請求項1において、
    前記メモリ制御部に対しリフレッシュ要求コマンドを発行するリフレッシュ生成部をさらに備え、
    前記メモリ制御部は、
    前記マイクロコマンドを調停する際に、前記リフレッシュ要求コマンドと前記マイクロコマンドとを調停する、
    ことを特徴とするメモリアクセス装置。
  4. 請求項1において、
    前記複数のマスタに対応して設けられた複数のマスタ用優先度管理部をさらに備え、
    前記複数のマスタ間調停部の各々は、
    前記マイクロコマンドを調停する際に、前記複数のマスタ用優先度管理部により与えられる優先レベルを参照してマイクロコマンドを選択する、
    ことを特徴とするメモリアクセス装置。
  5. 請求項4において、
    前記複数のマスタ間調停部に対しリフレッシュ要求コマンドを発行するリフレッシュ生成部と、
    リフレッシュ用優先度管理部とをさらに備え、
    前記複数のマスタ間調停部の各々は、
    前記マイクロコマンドを調停する際に、前記複数のマスタ用優先度管理部により与えられる優先レベルおよび前記リフレッシュ用優先度管理部により与えられる優先レベルを参照し、前記マイクロコマンドおよび前記リフレッシュ要求コマンドを調停する、
    ことを特徴とするメモリアクセス装置。
  6. 請求項4において、
    前記複数のマスタ間調停部の各々は、
    選択したマイクロコマンドを発行しているマスタに対応するマスタ用優先度管理部により与えられる優先レベルを前記メモリ制御部に通知し、
    前記メモリ制御部は、
    マイクロコマンドを調停する際に前記優先レベルを参照し、優先レベルが既定のレベルより高いマイクロコマンドを優先して調停する、
    ことを特徴とするメモリアクセス装置
  7. 請求項1において、
    前記メモリ制御部は、
    選択したマイクロコマンドがリードかライトかを示すアクセス方向の情報を前記複数のマスタ間調停部に送り、
    前記複数のマスタ間調停部の各々は、
    前記マイクロコマンドの調停を行う際に、前記アクセス方向の情報と同じアクセス方向のマイクロコマンドを優先して選択する、
    ことを特徴とするメモリアクセス装置。
  8. 請求項1において、
    前記複数のコマンド分割部の各々は、
    複数のアクセスコマンドを保持し、
    受け付けたアクセスコマンドから生成したマイクロコマンドを、前記受け付けたアクセスコマンドより先に受け付けたアクセスコマンドが使用しないバンクまたは既に前記メモリ制御部に受け付けられたバンクに対応するマスタ間調停部に発行する、
    ことを特徴とするメモリアクセス装置。
  9. 請求項3または5において、
    前記メモリは、1以上のバンク単位で個別にリフレッシュ可能であり、
    前記リフレッシュ生成部は、
    個別にリフレッシュ可能な前記バンク単位でリフレッシュ要求コマンドを発行する、
    ことを特徴とするメモリアクセス装置。
  10. 複数のマスタと請求項1〜9のいずれか1項に記載のメモリアクセス装置とを含むシステムLSIと、
    複数のバンクで構成され、前記システムLSIに接続されたメモリとを有し、
    前記メモリアクセス装置は、前記マスタから前記メモリのバンク毎へのアクセスを調停する、
    ことを特徴とするシステム。
JP2008030108A 2008-02-12 2008-02-12 メモリアクセス装置 Withdrawn JP2009193107A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008030108A JP2009193107A (ja) 2008-02-12 2008-02-12 メモリアクセス装置
US12/267,014 US8095744B2 (en) 2008-02-12 2008-11-07 Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008030108A JP2009193107A (ja) 2008-02-12 2008-02-12 メモリアクセス装置

Publications (1)

Publication Number Publication Date
JP2009193107A true JP2009193107A (ja) 2009-08-27

Family

ID=40939872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008030108A Withdrawn JP2009193107A (ja) 2008-02-12 2008-02-12 メモリアクセス装置

Country Status (2)

Country Link
US (1) US8095744B2 (ja)
JP (1) JP2009193107A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003067A (ja) * 2008-06-19 2010-01-07 Sony Corp メモリシステムおよびそのアクセス制御方法、並びにプログラム
WO2011078386A1 (en) * 2009-12-22 2011-06-30 Canon Kabushiki Kaisha Information processing apparatus capable of setting processing priority of access, method of controlling the information processing apparatus, program, and storage medium
CN102834816A (zh) * 2010-04-14 2012-12-19 高通股份有限公司 用以减少存取等待时间的总线仲裁技术
JP2013089226A (ja) * 2011-10-13 2013-05-13 Nuvoton Technology Corp メモリ制御装置
JP2014154119A (ja) * 2013-02-14 2014-08-25 Ricoh Co Ltd メモリ制御装置及び半導体記憶装置
JP2016085684A (ja) * 2014-10-28 2016-05-19 京セラドキュメントソリューションズ株式会社 メモリーアクセス装置
JP2016114997A (ja) * 2014-12-11 2016-06-23 京セラドキュメントソリューションズ株式会社 メモリーアクセス装置、画像処理装置
US20170017412A1 (en) 2015-07-13 2017-01-19 Futurewei Technologies, Inc. Shared Memory Controller And Method Of Using Same
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365336B2 (ja) * 2009-05-01 2013-12-11 ソニー株式会社 メモリ制御装置およびメモリ制御方法
US20120005507A1 (en) * 2010-07-01 2012-01-05 Himax Technologies Limited Display Devices and Control Methods
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9721641B2 (en) * 2012-11-30 2017-08-01 Intel Corporation Apparatus, method and system for memory device access with a multi-cycle command
CN109446125B (zh) * 2018-10-09 2024-04-02 武汉正维电子技术有限公司 Ddr读写仲裁器及方法
KR20210112557A (ko) * 2020-03-05 2021-09-15 에스케이하이닉스 주식회사 메모리 장치에서 연속으로 수행되는 다수의 커맨드 동작에 필요한 파워값을 정확하게 예측할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
JP2001356961A (ja) 2000-06-13 2001-12-26 Nec Corp 調停装置
US6477598B1 (en) 2000-07-20 2002-11-05 Lsi Logic Corporation Memory controller arbitrating RAS, CAS and bank precharge signals
US7406554B1 (en) * 2000-07-20 2008-07-29 Silicon Graphics, Inc. Queue circuit and method for memory arbitration employing same
US7752400B1 (en) * 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
JP3999943B2 (ja) 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
US7107386B1 (en) * 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US6892289B2 (en) * 2002-07-02 2005-05-10 Lsi Logic Corporation Methods and structure for using a memory model for efficient arbitration
JP2004310394A (ja) 2003-04-07 2004-11-04 Sharp Corp Sdramアクセス制御装置
US7213084B2 (en) * 2003-10-10 2007-05-01 International Business Machines Corporation System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
TWI256555B (en) * 2003-12-12 2006-06-11 Via Tech Inc An apparatus and a method of request priority queue arbitration
US7421559B1 (en) * 2003-12-18 2008-09-02 Cypress Semiconductor Corporation Apparatus and method for a synchronous multi-port memory
US7725633B2 (en) * 2004-06-24 2010-05-25 Panasonic Corporation Arbitration device for arbitrating among a plurality of master devices, arbitration method, and video processing device including the arbitration device
JP4786209B2 (ja) 2005-03-18 2011-10-05 パナソニック株式会社 メモリアクセス装置
KR101153712B1 (ko) * 2005-09-27 2012-07-03 삼성전자주식회사 멀티-포트 sdram 엑세스 제어장치와 제어방법
KR100640722B1 (ko) 2005-10-05 2006-11-01 삼성전자주식회사 반도체 제어장치, 반도체 장치, 및 이들을 구비하는 시스템
US7617368B2 (en) * 2006-06-14 2009-11-10 Nvidia Corporation Memory interface with independent arbitration of precharge, activate, and read/write
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003067A (ja) * 2008-06-19 2010-01-07 Sony Corp メモリシステムおよびそのアクセス制御方法、並びにプログラム
US8739168B2 (en) 2009-12-22 2014-05-27 Canon Kabushiki Kaisha Information processing apparatus capable of setting processing priority of access, method of controlling the information processing apparatus, program, and storage medium
WO2011078386A1 (en) * 2009-12-22 2011-06-30 Canon Kabushiki Kaisha Information processing apparatus capable of setting processing priority of access, method of controlling the information processing apparatus, program, and storage medium
JP2011133981A (ja) * 2009-12-22 2011-07-07 Canon Inc 情報処理装置、情報処理装置の制御方法及び処理プログラム
CN102834816A (zh) * 2010-04-14 2012-12-19 高通股份有限公司 用以减少存取等待时间的总线仲裁技术
JP2013524388A (ja) * 2010-04-14 2013-06-17 クアルコム,インコーポレイテッド アクセスレイテンシを低減するバスアービトレーション技法
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
JP2013089226A (ja) * 2011-10-13 2013-05-13 Nuvoton Technology Corp メモリ制御装置
JP2014154119A (ja) * 2013-02-14 2014-08-25 Ricoh Co Ltd メモリ制御装置及び半導体記憶装置
JP2016085684A (ja) * 2014-10-28 2016-05-19 京セラドキュメントソリューションズ株式会社 メモリーアクセス装置
JP2016114997A (ja) * 2014-12-11 2016-06-23 京セラドキュメントソリューションズ株式会社 メモリーアクセス装置、画像処理装置
US20170017412A1 (en) 2015-07-13 2017-01-19 Futurewei Technologies, Inc. Shared Memory Controller And Method Of Using Same
JP2018521419A (ja) * 2015-07-13 2018-08-02 華為技術有限公司Huawei Technologies Co.,Ltd. 共有メモリコントローラおよびそれを使用する方法
US10353747B2 (en) 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same

Also Published As

Publication number Publication date
US8095744B2 (en) 2012-01-10
US20090204771A1 (en) 2009-08-13

Similar Documents

Publication Publication Date Title
JP2009193107A (ja) メモリアクセス装置
JP4786209B2 (ja) メモリアクセス装置
EP2430554B1 (en) Hierarchical memory arbitration technique for disparate sources
US6792516B2 (en) Memory arbiter with intelligent page gathering logic
EP2807567B1 (en) Systems and methods for dynamic priority control
US7093094B2 (en) Random access memory controller with out of order execution
KR101622311B1 (ko) 적응가능한 수의 오픈 로우들을 갖는 메모리 디바이스
US20210073152A1 (en) Dynamic page state aware scheduling of read/write burst transactions
JP4715801B2 (ja) メモリアクセス制御装置
US20060218315A1 (en) Memory access control circuit
JP2010003067A (ja) メモリシステムおよびそのアクセス制御方法、並びにプログラム
US8271746B1 (en) Tiering of linear clients
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP5382113B2 (ja) 記憶制御装置及びその制御方法
JP2007018222A (ja) メモリアクセス制御回路
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
US20030126380A1 (en) Memory arbiter with grace and ceiling periods and intelligent page gathering logic
JP4112813B2 (ja) バスシステム及びそのコマンドの伝達方法
JP2011034214A (ja) メモリ制御装置
JP4843216B2 (ja) メモリ制御装置
JP2006048691A (ja) ストリーミングidメソッドによるdmac発行メカニズム
JP3820831B2 (ja) メモリ制御方法及び装置
JP2006268734A (ja) メモリアクセス制御装置
JP2009266152A (ja) コントローラ、ハードディスクドライブおよびコントロール方法
JP2005301739A (ja) メモリコントローラ及び半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120131

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120509