JP2005011029A - Memory access control device - Google Patents

Memory access control device Download PDF

Info

Publication number
JP2005011029A
JP2005011029A JP2003173795A JP2003173795A JP2005011029A JP 2005011029 A JP2005011029 A JP 2005011029A JP 2003173795 A JP2003173795 A JP 2003173795A JP 2003173795 A JP2003173795 A JP 2003173795A JP 2005011029 A JP2005011029 A JP 2005011029A
Authority
JP
Japan
Prior art keywords
access
data
memory
read
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003173795A
Other languages
Japanese (ja)
Inventor
Yusuke Takemoto
裕介 竹本
Shuichi Takada
周一 高田
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 Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003173795A priority Critical patent/JP2005011029A/en
Publication of JP2005011029A publication Critical patent/JP2005011029A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To increase the bus bandwidth and the read latency of a memory device and to reduce the number of access to the memory device. <P>SOLUTION: When an access request adjusted by an access distribution device 111 is a write access request, a buffering device 113 writes corresponding data into a data table 132. When the data written are selected for transfer to the memory device 103, the write access request is entered into an FIFO memory 131. When the access request adjusted is a read access request and when the data requested to be read exist in the data table 132, the buffering device 113 sends the data to the access distribution device 111 as read data. When the relevant data do not exist, the read access request is entered into the FIFO memory 131. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、メモリアクセス制御装置に関する。
【0002】
【従来の技術】
高集積化可能なメモリ装置として汎用DRAMと基本構成が同一であるSDRAM(Synchronous DRAM:同期型DRAM)がある。SDRAMは、バーストアクセスの際にコマンド方式を用いたパイプラインアーキテクチャを採用しており、高速なデータアクセスメモリ装置として注目されている。
【0003】
SDRAMは、同一バンク・同一行のメモリセルアクセスに対しては高速データアクセスが可能である。しかし、それぞれのアクセスにはレイテンシが発生するので、その低減方法として、メモリアクセス内容をコマンドとして受け付ける方法が採用され、そのコマンド制御に工夫がなされている。
【0004】
このSDRAMの制御方法としては、例えば特許文献1,2に開示されたものが知られている。以下、その概要を図6を参照して説明する。なお、図6は、従来のSDRAM制御方法を説明する制御系統図である。
【0005】
図6に示すように、従来のSDRAM制御方法では、複数のバスマスタ(バスマスタ0〜バスマスタ3)601がアービタ602を仲介してメモリコントローラ603にアクセスし、メモリコントローラ603がSDRAM605にアクセスする方法が採用されている。
【0006】
具体的には、複数のバスマスタ601がSDRAM605にアクセスする際には、そのアクセス要求がアービタ602にて受け付けられた後、メモリコントローラ603内のFIFOメモリ604にバスマスタのアクセス内容がキューイングされる。メモリコントローラ603は、FIFOメモリ604にキューイングされているバスマスタのアクセス内容を参照してSDRAM605へのコマンド発行を行うが、そのバースト長、アドレスを参照してどのバンクにアクセスするかを決定する。
【0007】
【特許文献1】
特開2001−125826号公報
【特許文献2】
特開平11−345165号公報
【0008】
【発明が解決しようとする課題】
しかしながら、従来のSDRAM制御方法では、最大バスバンド幅を達成することは、FIFOメモリ内のコマンド順序を入れ替えることにて可能であるが、リードデータのレイテンシを向上することには寄与することができない。
【0009】
また、SDRAMは、アクセスした回数が多いほど消費電力の増加を招くため、そのアクセス回数を削減することが必要となる。
【0010】
本発明は、かかる点に鑑みてなされたものであり、複数のバスマスタが共有するメモリ装置をアクセスする場合に、メモリ装置のバスバンド幅を向上させるとともに、リードレイテンシを向上させ、かつメモリ装置へのアクセス回数を抑えることができるメモリアクセス制御装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明に係るメモリアクセス制御装置は、複数のバスマスタが共有するメモリ装置へのアクセスを制御するメモリアクセス制御装置であって、前記複数のバスマスタからのアクセス要求を調停し、受け付けた1のバスマスタに対して受付通知を発行するとともに、前記アクセス要求がライトアクセス要求であるときはライト登録要求を発行した後に前記1のバスマスタに対して完了通知を発行する一方、前記アクセス要求がリードアクセス要求であるときはリード登録要求を発行し、その発行したリード登録要求に従って送られてくるリードデータを前記1のバスマスタに対して中継転送するアクセス分配装置と、前記アクセス分配装置からの前記ライト登録要求を受けて該当データを予め用意した記憶領域に書き込むとともにメモリ装置上のアドレスを登録し、書き込まれたデータが前記メモリ装置に転送する対象になった場合にライト要求を発行する一方、前記アクセス分配装置からの前記リード登録要求を受けてそのリード要求先のメモリ装置上のアドレスと予め登録されたメモリ装置上のアドレスとを比較して該当データの存在有無を検索し、該当データが存在する場合は、そのデータを前記リードデータとして前記アクセス分配装置を対して送出し、一方、該当データが存在しない場合はアドレスを登録した上でリード要求を発行し、その発行したリード要求に従って送られてくるリードデータをすでに登録済みのアドレスと対にして登録するとともに当該リードデータを前記アクセス分配装置に対して送出するバッファリング装置と、前記バッファリング装置からの前記ライト要求を受けて前記メモリ装置をアクセスする信号を生成し前記バッファリング装置から送られてくるライトデータを前記メモリ装置に転送する一方、前記バッファリング装置からの前記リード要求を受けて前記メモリ装置をアクセスする信号を生成し前記メモリ装置からのリードデータ及びアドレスを前記バッファリング装置に転送するスケジューリング装置と、を具備する構成を採る。
【0012】
この構成によれば、複数のバスマスタがメモリ装置上のデータにアクセスする際に、メモリ装置へのメモリアクセスを実施しなくても良い場合があるので、バスマスタのメモリオペレーションを高速化することが可能となる。また、メモリアクセス回数を低減することできるので、省電力化を図ることが可能となる。
【0013】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記バッファリング装置は、前記アクセス分配装置からのアクセス登録要求に基づき前記メモリ装置にアクセスする内容をアクセス要求ジョブとして管理するFIFOメモリと、前記メモリ装置上のアドレスと前記FIFOメモリが管理するアクセス要求ジョブに従いメモリ装置に書き込むデータ及び読み出すデータとそのアドレスを管理するデータテーブルと、を具備する構成を採る。
【0014】
この構成によれば、FIFOメモリ内のアクセス要求ジョブの順序を変更して、メモリアクセス制御装置とメモリ装置との間でのデータ転送が実現できる。
【0015】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記FIFOメモリは、前記アクセス要求ジョブ毎に、前記アクセス要求ジョブの動作内容が読み出しと書き込みのいずれであるかを示すリード/ライト識別子の記憶領域と、前記データテーブルのテーブルアドレスのうち前記アクセス要求ジョブで用いるテーブルアドレスの記憶領域と、前記メモリ装置にアクセスするデータに再利用性があるか否かを示す再利用識別子の記憶領域と、を具備する構成を採る。
【0016】
この構成によれば、データテーブル内の情報と相俟って、複数のバスマスタがアクセスする内容を受け付けて、バスマスタの代わりにメモリアクセスが可能となるので、アクセス要求と実際のアクセスとを分離せることができ、それぞれの動作を高効率化することができる。
【0017】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記データテーブルは、当該データテーブルのアドレスであるテーブルアドレスのアドレス毎に、前記メモリ装置の物理アドレスを記憶する領域と、前記物理アドレスに対応づけられたデータを記憶する領域と、前記データ記憶領域に格納されているデータの前記メモリ装置へのアクセス状況を示すアクセス識別子の記憶領域と、前記格納されているデータが前記メモリ装置内のデータと一貫性が保たれているか否かを示す一貫性識別子の記憶領域と、前記メモリ装置にアクセスするバスマスタを識別するためのIDを記憶する領域と、バースト長及び、ラップアラウンドのアドレス発行を伴うバーストアクセスであるか、インクリメントのアドレス発行を伴うバーストアクセスであるかを示す情報の記憶領域と、を具備する構成を採る。
【0018】
この構成によれば、メモリアクセス制御装置内に保持されているデータとメモリ装置内のデータとの一貫性と有効性を損なうことなく、メモリアクセス制御装置とメモリ装置との間でのデータ転送が実現できる。
【0019】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記バッファリング装置は、前記データテーブルにおける前記アクセス識別子及び前記一貫性識別子に基づきデータテーブルの占有ライン数である追記可能データ数を算出する手段と、前記追記可能データ数が閾値以下になったことを報知する手段と、前記報知情報に基づき前記データテーブルの格納データを前記メモリ装置に書き込むためのアクセス要求ジョブを前記FIFOメモリに発生させる手段と、具備する構成を採る。
【0020】
この構成によれば、メモリアクセス制御装置内に追記できるデータ量がゼロになるのを前もって避けることが可能となり、メモリアクセスの効率化を図ることが可能となる。
【0021】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記バッファリング装置は、前記バスマスタの種別や前記バスマスタがアクセスするメモリ装置のアドレスに基づき、アクセス要求ジョブが実行するデータが再利用性のあるデータであるか否かを判別し、その判別結果を前記FIFOメモリにおける前記再利用識別子に設定する手段と、前記再利用識別子の設定内容が再利用性無しであるとき前記メモリ装置へのアクセス終了後に前記データテーブルから該当データを削除する手段と、を具備する構成を採る。
【0022】
この構成によれば、メモリアクセス制御装置内に不要なデータが蓄積されるのを避けることでき、メモリアクセスの効率化を図ることが可能となる。
【0023】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記バッファリング装置は、前記FIFOメモリにアクセス要求ジョブが存在しないことを報知する手段と、前記報知があったとき、前記データテーブルに格納されているデータのうち前記メモリ装置内データと一致していないデータを選出し、その選出したデータを前記データテーブルからメモリ装置に転送するためのアクセス要求ジョブを前記FIFOメモリに発生させる手段と、を具備する構成を採る。
【0024】
この構成によれば、メモリアクセスが行われなくなった時にメモリ装置と一貫性が保たれていないバッファリング装置内のデータをメモリ装置に転送することが可能となり、バッファリング装置にて即座に利用できる領域を増やすことが可能となる。
【0025】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記バッファリング装置は、メモリ装置へのリードアクセス及びライトアクセスの種別に優先順位を付加する手段と、前記FIFOメモリにおける前記リード/ライト識別子に基づきメモリ装置へのリードアクセス及びライトアクセスの種別を判別し、前記優先順位に基づいて前記FIFOメモリでのアクセス要求ジョブの実行順序を制御する手段と、を具備する構成を採る。
【0026】
この構成によれば、リードアクセスを優先的に行うことが可能となり、バスマスタによるリードアクセス時のデータ受け取り時間を短縮することが可能となる。
【0027】
本発明に係るメモリアクセス制御装置は、上記の発明において、前記スケジューリング装置は、前記バッファリング装置からのアクセス要求に対して優先順位を付加する手段と、前記優先順位に基づいてメモリ装置へのアクセスを生じさせる信号を生成する手段と、を具備する構成を採る。
【0028】
この構成によれば、FIFOメモリに管理されているアクセス要求ジョブを受け付ける順序を工夫することが可能となり、メモリアクセス制御装置とメモリ装置との間でのデータ転送効率が上がるような制御を行うことが可能となる。
【0029】
本発明に係るメモリアクセス制御装置は、複数のバスマスタとのインタフェースをなす上記発明によるアクセス分配装置と、複数のバンクを持つメモリ装置とのインタフェースをなす上記発明によるスケジューリング装置と、前記アクセス分配装置と前記スケジューリング装置との間に介在する上記発明によるバッファリング装置の複数個とで構成され、前記バッファリング装置の個数がmで、前記メモリ装置がn個のバンク構成であるとすれば、mとnの関係は、任意のpを用いるとm=p×n、あるいはn=p×mが成り立ち、各バッファリング装置は、メモリ装置のアドレス空間をm等分したアドレス空間に対するデータを取り扱い、複数のバッファリング装置の相互間では重複したアドレス空間を扱わない構成になっている。
【0030】
この構成によれば、コヒーレンシを保ったうえで、アクセス分配装置からのアクセス登録要求を処理する順序を考慮することでメモリ装置とバッファリング装置との間での高効率な転送制御を行うことが可能となる。
【0031】
【発明の実施の形態】
本発明の骨子は、DSPを含む複数のプロセッサやDMAコントローラが共有するメモリ装置として比較的大きなレイテンシを伴うメモリ装置、例えば、SDRAMにアクセスする場合に、プロセッサやDMAコントローラの性能を損なわずにメモリバンド幅を向上させ、効率的かつ省電力のメモリアクセスを実現することである。なお、本発明のメモリアクセス制御装置は、内蔵SRAMなどアクセス時に大きなレイテンシを伴わないメモリ装置の制御部とも組み合わせて使用することも可能である。
【0032】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【0033】
(実施の形態1)
図1は、本発明の実施の形態1に係るメモリアクセス制御装置の構成を示すブロック図である。図2は、図1に示すバッファリング装置の具体的な構成例を示すブロック図である。
【0034】
図1において、実施の形態1に係るメモリアクセス制御装置101は、複数のバスマスタ(バスマスタ0〜バスマスタ4)102とのインタフェースをなす、アクセス分配装置111と、複数のバスマスタ102が共有するメモリ装置103とのインタフェースをなすスケジューリング装置112と、アクセス分配装置111とスケジューリング装置112との間に介在するバッファリング装置113と、から構成されている。
【0035】
バッファリング装置113は、アクセス分配装置111からのアクセス要求に基づきメモリ装置103にアクセスする内容をアクセス要求ジョブとして管理するFIFOメモリ131と、メモリ装置103上のアドレスとFIFOメモリ131が管理するアクセス要求ジョブに従いメモリ装置103に書き込むデータ及び読み出すデータとを管理するデータテーブル132とを備えている。
【0036】
バッファリング装置113は、具体的には、例えば図2に示すように構成されている。図2に示すように、FIFOメモリ131とデータテーブル132には、各種のパラメータを記憶する領域が設けられている。また、バッファリング装置113には、FIFOメモリ131とデータテーブル132の他に、各種の周辺装置が設けられている。
【0037】
バッファリング装置113の具体的な構成(図2)と詳細動作(図3、図4)は、後述するとして、全体的な動作を説明する。
【0038】
以上の構成において、アクセス分配装置111は、複数のバスマスタ102からのアクセス要求(リードアクセス要求、ライトアクセス要求)を調停し、一つのバスマスタ102からのアクセス要求を受け付けると、受け付けたバスマスタ102に対して受け付けたことを通知する。
【0039】
そして、アクセス分配装置111は、調停したアクセス要求がライトアクセス要求である場合は、バッファリング装置113に対してライト登録要求を発行した後にアクセス要求を受け付けたバスマスタ102にライト終了を通知する。一方、アクセス分配装置111は、調停したアクセス要求がリードアクセス要求である場合は、バッファリング装置113に対してリード登録要求を発行し、その発行したリード登録要求に従ってバッファリング装置113から送られてくるリードデータを受け付けたバスマスタ102に中継転送する。
【0040】
バッファリング装置113では、アクセス分配装置111からライト登録要求を受けて、データテーブル132にライトデータを書き込む領域があれば該当データを書き込むとともに、メモリ装置103上のアドレスを登録する。そして、バッファリング装置113では、データテーブル132に書き込まれたデータがメモリ装置103に転送するために選択された場合に、FIFOメモリ131にメモリ装置103へのライトアクセス要求をアクセス要求ジョブとしてエントリーする。これによって、スケジューリング装置112では、そのアクセス要求ジョブを選択し、ライトアクセス要求はメモリ装置103のアクセス信号に変換されデータの書き込みが行われる。
【0041】
また、バッファリング装置113では、アクセス分配装置111からリード登録要求を受けて、そのリード要求先のメモリ装置上のアドレスとデータテーブル132に登録されたメモリ装置上のアドレスとを比較して該当データの存在有無を検索し、該当データが存在する場合は、そのデータを前記リードデータとしてアクセス分配装置111に対して送出する。
【0042】
一方、バッファリング装置113では、前記検索の結果、該当データが存在しない場合は、FIFOメモリ131にメモリ装置103へのリードアクセス要求をアクセス要求ジョブとしてエントリーする。これによって、スケジューリング装置112では、そのアクセス要求ジョブが選択され、メモリ装置103のアクセス信号に変換され、読み出しが行われる。バッファリング装置113では、スケジューリング装置112から送られてくるリードデータ及びアドレスをデータテーブル132の該当記憶領域に登録するとともに、当該リードデータをアクセス分配装置111に対して送出する。
【0043】
次に、バッファリング装置113の具体的な構成について説明する。図2において、FIFOメモリ131は、アクセス要求ジョブを格納する実行順序管理装置252を備えている。そして、アクセス要求ジョブ毎に、リード/ライト(read/write)識別子200、再利用識別子201及びテーブルアドレス202の記憶領域をそれぞれ設けて管理している。
【0044】
read/write識別子200は、アクセス要求ジョブの動作がread属性(メモリ装置103からの読み出し)であるか、write属性(メモリ装置103への書き込み)であるかを示す。read/write識別子200は、read属性及びwrite属性を持つアクセス要求ジョブの動作順序を入れ替える制御に用いられる。
【0045】
即ち、read/write入れ替え制御レジスタ251には、バスマスタ102から、read/write識別子200が表示しているread属性及びwrite属性を持つアクセス要求ジョブの動作順序の入れ替え制御を有効とするか無効とするかが設定されるようになっている。
【0046】
read/write識別装置250は、read/write識別子200を参照してread属性及びwrite属性を持つアクセス要求ジョブの位置を識別し、read/write入れ替え制御レジスタ251の設定が「入れ替え制御が有効」であるとき、実行順序管理装置252に対してreadが優先的に処理されるように実行順序を変更させる。
【0047】
次の再利用識別子201は、アクセス要求ジョブで取り扱うデータをメモリ装置103にアクセスした後に再参照する(yes)か否(not)かを示す。この再利用識別子201は、再利用識別装置231によって設定される。
【0048】
即ち、再利用識別装置231は、FIFOメモリ131の発生するアクセス要求ジョブが、特定領域レジスタ232に設定されている特定領域へのアクセスであるか否かを判断する。また、再利用識別装置231は、FIFOメモリ131の発生するアクセス要求ジョブが、特定マスタレジスタ233に設定されているバスマスタからのアクセスであるか否かをデータテーブル132内のバスマスタID208と比較して判断する。
【0049】
その結果、再利用識別装置231は、FIFOメモリ131の発生するアクセス要求ジョブが、特定領域レジスタ232に設定されている特定領域へのアクセスであるとき、または、特定マスタレジスタ233に設定されているバスマスタからのアクセスであるとき、再利用識別子201に有効(yes)を表示し、いずれでもないとき無効(not)を表示する。なお、特定領域レジスタ232と特定マスタレジスタ233には、バスマスタ102から任意に設定できるようになっている。
【0050】
次のテーブルアドレス202には、データテーブル132内のテーブルアドレス203が格納される。すなわち、テーブルアドレス202には、アクセス分配装置111からアクセス要求があったとき、アクセスジョブの実行において実際にメモリ装置103と間での転送に用いるデータテーブル132内のテーブルアドレス203が格納される。
【0051】
また、IDLE観測装置241は、FIFOメモリ131に発生するアクセス要求ジョブが存在するか否かを識別し、IDLE(アイドル)であるとき、つまり存在しないとき、その旨を退出選択装置224に通知するようになっている。
【0052】
次に、データテーブル132は、当該データテーブル132のアドレスであるテーブルアドレス203のアドレス毎に、モディファイ(modify)識別子204、アクセス識別子205、メモリ装置103上の物理アドレス206、物理アドレス206に対応づけられたデータ207、メモリ装置103にアクセスするバスマスタを識別するバスマスタID208及びバースト種別209をそれぞれ記憶する領域を設けて管理している。
【0053】
modify識別子204は、データテーブル132内のデータ207がアドレス206に対応するメモリ装置103上のデータと一致しない場合には当該データ207をメモリ装置103への転送データとして用いるので有効(Yes)となり、一致する場合には当該データ207はメモリ装置103への転送データとして用いないので無効(not)となる。
【0054】
アクセス識別子205は、データ207のメモリ装置103へのアクセス状況を示す情報であり、アクセス終了「finished」、アクセス無しの初期状態「no access」、アクセス中「access」を表示する。具体的には、ライトアクセス時では、テーブルアドレス203に存在するアドレスに対するライトアクセスの受け付けによって、データ207がメモリ装置103に書き込まれるまでアクセス中「access」が表示される。また、リードアクセス時では、テーブルアドレス203に存在するアドレスに対応するリードアクセスの受け付けによって、メモリ装置103からのデータの読み出しが行われるとアクセス中「access」が表示され、終了するとアクセス終了「finished」が表示される。
【0055】
バースト種別209には、バースト長と、ラップアラウンド(wrap around)のアドレス発行を伴うバーストアクセスであるか、インクリメント(increment)のアドレス発行を伴うバーストアクセスであるかを示すフラグとが格納されている。
【0056】
次に、有効ライン算出装置223では、modify識別子204の有効フラグとアクセス識別子205の有効フラグとを参照してデータテーブル132の占有ライン数である追記可能データ数を算出する。具体的には、アクセス識別子205が「no access」のテーブル内のライン数と、アクセス識別子205が「finished」かつ、modify識別子204が「not」のテーブル内のライン数との合計を、データテーブル内の全ライン数から減算したライン数が追記可能なデータライン数となる。そして、有効ライン算出装置223での算出結果と閾値レジスタ221に設定されている閾値とが比較器222にて比較され、比較結果が退出選択装置224に与えられる。
【0057】
比較器222の比較結果が、占有ライン数が閾値レジスタ221に設定されている閾値よりも小さいときは、modify識別子204には無効フラグが多い(つまり追記可能である)ことを示し、逆の場合は、modify識別子204には有効フラグが多い(つまり追記可能でない)ことを示す。
【0058】
退出選択装置224では、比較器222での比較結果からmodify識別子204のフラグ状況を判断し、modify識別子204が無効であれば上書きが可能(つまり追記可能)であるので何もしない。一方、modify識別子204が有効であればメモリ装置103に転送するために、退出選択装置224は、メモリ装置103内のデータ207と一貫性が保たれていないラインを選択し、メモリ装置103へのwrite属性を持ったアクセス要求ジョブをFIFOメモリ131に発生させる。そして、IDLE観測装置241からの上記アイドル通知を受けた後に、選択したデータテーブルのラインを無効にする。また、退出選択装置224は、メモリ装置103にデータの書き込みが行われると、modify識別子204を更新するようになっている。
【0059】
次に、図3、図4を参照して、以上のように構成されるバッファリング装置113の動作について説明する。なお、図3は、図1に示すバッファリング装置113におけるライトアクセス要求発生時の動作を説明するフロー図である。図4は、図1に示すバッファリング装置113におけるリードアクセス要求発生時の動作を説明するフロー図である。
【0060】
図3において、アクセス分配装置111からライトアクセス要求が入力すると(ステップST301)、ライト先アドレスがデータテーブル132内に存在するか否かを検索する(ステップST302)。その結果、ライト先アドレスがデータテーブル132内に存在する場合は(ステップST303:Yes)、データテーブル132内の該当するデータ領域にデータ207を格納し(ステップST304)、ステップST308に進む。
【0061】
一方、ライト先アドレスがデータテーブル132内に存在しない場合は(ステップST303:No)、データテーブル132に追記できるか否かを判断する(ステップST305)。その結果、追記可能でない場合は(ステップST305:No)、退出選択装置224によるデータの退出処理を行って書き込み領域を確保し(ステップST306)、その確保した領域にアドレスとデータを登録し(ステップST307)、ステップST308に進む。また、データテーブル132に追記できる場合は(ステップST305:Yes)、その追記可能な領域にアドレスとデータを登録し(ステップST307)、ステップST308に進む。
【0062】
ステップST308では、書き込んだデータが再利用されるか否かを再利用識別子201を参照して判断する。その判断結果、再利用するデータであれば(ステップST308:Yes)、本処理は終了するが、再利用されないデータであれば(ステップST308:No)、FIFOメモリ131にライトアクセスとして登録し、そのアクセスに対するメモリ装置103へのデータ書込み後に、データテーブル132の対象データ領域を空き領域として開放し(ステップST309)、その後本処理を終了する。
【0063】
次に、図4において、アクセス分配装置111からリードアクセス要求が入力すると(ステップST401)、リード先アドレスがデータテーブル132内に存在するか否かを検索する(ステップST402)。その結果、リード先アドレスがデータテーブル132内に存在する場合は(ステップST403:Yes)、物理アドレス206に対応づけられたデータ207が有効であるか否かを判断する(ステップST404)。そして、対応するデータ207が有効であれば(ステップST404:Yes)、直接ステップST408に進む。
【0064】
一方、リード先アドレスがデータテーブル132内に存在しない場合(ステップST403:No)や、対応するデータ207が有効でない場合は(ステップST404:No)、データテーブル132に追記できるか否かを判断する(ステップST405)。その結果、追記可能でない場合は(ステップST405:No)、退出選択装置224によるデータの退出処理を行って書き込み領域を確保し(ステップST406)、その確保した領域にメモリ装置103から読み出したデータとアドレスを登録し(ステップST407)、ステップST408に進む。
【0065】
また、リード先アドレスがデータテーブル132内に存在しない場合(ステップST403:No)や、対応するデータ207が有効でない場合でも(ステップST404:No)、データテーブル132に追記できる場合は(ステップST405:Yes)、直接ステップST408に進む。
【0066】
ステップST408では、データテーブル132のデータ207がリードアクセスを要求したバスマスタ102によって読み出される。並行して、書き込んだデータが再利用されるか否かを再利用識別子201を参照して判断する(ステップST409)。その判断結果、再利用するデータであれば(ステップST409:Yes)、本処理は終了するが、再利用されないデータであれば(ステップST409:No)、データテーブル132の対象データ領域を空き領域として開放し(ステップST410)、その後本処理を終了する。
【0067】
このように、本実施の形態1によれば、複数のバスマスタがメモリ装置上のデータにアクセスする場合に、メモリ装置へのアクセスを実施しなくても良い場合があるので、バスマスタのメモリオペレーションを高速化することが可能となり、またメモリアクセス回数の低減によって省電力化を図ることが可能となる。
【0068】
ここで、バッファリング装置113は、アクセス分配装置111からのアクセス要求に基づきメモリ装置103にアクセスする内容をアクセス要求ジョブとして管理するFIFOメモリ131と、メモリ装置103上のアドレスとFIFOメモリ131が管理するアクセス要求ジョブに従いメモリ装置103に書き込むデータ及び読み出すデータとを管理するデータテーブル132とを備えるので、FIFOメモリ131内のアクセス要求ジョブの順序を変更して、メモリアクセス制御装置101とメモリ装置103との間のデータ転送を実現することが可能となる。
【0069】
また、FIFOメモリ131は、実行順序管理装置252が管理するアクセス要求ジョブ毎に、アクセス要求ジョブの動作内容が読み出しと書き込みのいずれであるかを示すリード/ライト識別子200と、データテーブル132のテーブルアドレス203のうちアクセス要求ジョブで用いるテーブルアドレス202と、メモリ装置103にアクセスするデータに再利用性があるか否かを示す再利用識別子201とを、それぞれ記憶して管理するようにしたので、データテーブル132の情報と相俟って、複数のバスマスタ102の代わりにメモリアクセスが可能となる。したがって、アクセス要求と実際のアクセスとが分離でき、それぞれでの動作を高効率化することができる。
【0070】
また、データテーブル132は、当該データテーブルのアドレスであるテーブルアドレス203のアドレス毎に、メモリ装置103の物理アドレス206と、物理アドレス206に対応づけられたデータ207と、格納されているデータ207のメモリ装置103へのアクセス状況を示すアクセス識別子05と、格納されているデータ207がメモリ装置103内のデータと一貫性が保たれているか否かを示す一貫性識別子であるmodify識別子204と、アクセスしてきたバスマスタ102を識別するためのバスマスタID208と、バースト長及び、ラップアラウンドのアドレス発行を伴うバーストアクセスであるか、インクリメントのアドレス発行を伴うバーストアクセスであるかを示す情報であるバースト種別209とを、それぞれ記憶して管理するようにしたので、データテーブル132内に保持されているデータ207とメモリ装置103内のデータの一貫性と有効性を損なうことなく、メモリアクセス制御装置101とメモリ装置103との間でのデータ転送が実現できる。
【0071】
また、バッファリング装置113は、データテーブル132におけるアクセス識別子205及びmodify識別子204に基づきデータテーブル132の占有ライン数である追記可能データ数を算出する手段である有効ライン算出装置223と、前記追記可能データ数が閾値以下になったことを報知する手段である閾値レジスタ221及び比較器222と、比較器222から前記報知情報に基づきデータテーブル132の格納データ207をメモリ装置103に書き込むためのアクセス要求ジョブをFIFOメモリ131に発生させる手段である退出選択装置224とを備えたので、メモリアクセス制御装置101内に追記できるデータ量がゼロになることを前もって避けることが可能となり、メモリアクセスの効率化を図ることが可能となる。
【0072】
また、バッファリング装置113は、バスマスタ102の種別(特定マスタレジスタ233)やバスマスタ102がアクセスするメモリ装置103のアドレス(特定領域レジスタ232)に基づき、アクセス要求ジョブが実行するデータが再利用性のあるデータであるか否かを判別し、その判別結果をFIFOメモリ131における再利用識別子201に設定する手段である再利用識別装置231と、再利用識別子201の設定内容が再利用性無しであるときメモリ装置103へのアクセス終了後にデータテーブル132から該当データを削除する手段である退出選択装置224とを備えたので、メモリアクセス制御装置101内に不要なデータが蓄積されるのを避けることができ、メモリアクセスの効率化を図ることが可能となる。
【0073】
また、バッファリング装置113は、FIFOメモリ131にアクセス要求ジョブが存在しない(つまりアイドルである)ことを報知する手段であるIDLE観測装置241と、IDLE観測装置241から前記アイドルの報知があったとき、データテーブル132に格納されているデータ207のうちメモリ装置内データと一致していないデータ207を選出し、その選出したデータ207をデータテーブル132からメモリ装置103に転送するためのアクセス要求ジョブをFIFOメモリ131に発生させる手段である退出選択装置224とを備えたので、メモリアクセスがアイドルの時にバッファリング装置113内に存在するメモリ装置103と一貫性が保たれていないデータ207をメモリ装置103に転送することが可能となり、バッファリング装置113にて即座に利用できる領域を増やすことが可能となる。
【0074】
また、バッファリング装置113は、メモリ装置103へのリードアクセス及びライトアクセスの種別に優先順位を付加する手段であるread/write入れ替え制御レジスタ252と、FIFOメモリ131におけるリード/ライト識別子200に基づきメモリ装置103へのリードアクセス及びライトアクセスの種別を判別し、前記優先順位に基づいてFIFOメモリ131でのアクセス要求ジョブの実行順序を制御する手段であるread/write識別装置250とを備えたので、リードアクセスを優先的に行うことが可能となり、バスマスタ102によるリードアクセス時のデータ受け取り時間を短縮することが可能となる。
【0075】
加えて、スケジューリング装置112は、バッファリング装置113からのアクセス要求に対して優先順位を付加する手段と、優先順位に基づいてメモリ装置103へのアクセスを生じさせる信号を生成する手段とを備えるようにすることができる。これによれば、FIFOメモリ131にて管理されているアクセス要求ジョブを受け付ける順序を工夫することが可能となり、メモリアクセス制御装置101とメモリ装置103との間でのデータ転送の効率が上がるような制御を行うことが可能となる。
【0076】
(実施の形態2)
図5は、本発明の実施形態2に係るメモリアクセス制御装置の構成を示すブロック図である。図5に示すように、実施形態2に係るメモリアクセス制御装置301は、複数のバスマスタ(バスマスタ0〜バスマスタ4)102がアクセスするメモリ装置302が複数のバンク321を持つ場合を制御対象としている。
【0077】
図5において、メモリアクセス制御装置301は、複数のバスマスタ(バスマスタ0〜バスマスタ4)102とのインタフェースをなすアクセス分配装置311と、複数のバスマスタ102が共有するメモリ装置302とのインタフェースをなすスケジューリング装置312と、アクセス分配装置311とスケジューリング装置312との間に介在する複数のバッファリング装置313とで構成されている。
【0078】
アクセス分配装置311は、複数のバッファリング装置313が実装されているので、バスマスタ102のアクセス調停後にアクセス登録要求を複数のバッファリング装置313に振り分けることを行う。この振り分け基準は、特定のアドレス領域に基づき行うようになっている。
【0079】
また、アクセス分配装置311は、それぞれのバッファリング装置313に振り分けたリードアクセス登録要求に対しバッファリング装置313から送られてきたリードデータをバスマスタ102が要求した順序でバスマスタ102に送出する機能を有している。
【0080】
複数のバッファリング装置313は、それぞれ実施の形態1にて説明したバッファリング装置113と同一の構成であって、同様構成のデータテーブル331とFIFOメモリ332を備えている。
【0081】
スケジューリング装置312は、複数のバッファリング装置313におけるFIFOメモリ332において先頭のアクセス要求ジョブが選択し、メモリ装置302へのアクセス信号に変換し、バッファリング装置313とメモリ装置302との間でのデータ転送を行う。
【0082】
このとき、メモリ装置302が、同一バンク321ヘのアクセスやリード/ライトのアクセスが交互に発生するSDRAMである場合は、バンド幅が低下する。そのため、スケジューリング装置312では、その点を最大限に回避する方策を行った上で、高効率なメモリアクセスを実現するようにしている。
【0083】
ここで、バッファリング装置313の個数がmで、メモリ装置302がn個のバンク構成であるとすれば、mとnの関係は、任意のpを用いるとm=p×n、あるいはn=p×mが成り立ち、各バッファリング装置313は、メモリ装置302のアドレス空間をm等分したアドレス空間に対するデータを取り扱い、複数のバッファリング装置313の相互間では重複したアドレス空間を扱わないようになっている。
【0084】
この構成により、コヒーレンシを保ったうえで、アクセス分配装置311からのアクセス登録要求を処理する順序を考慮することでメモリ装置302とバッファリング装置313との間の高効率な転送制御を行うことが可能となる。
【0085】
なお、各実施の形態では、メモリ装置としてSDRAMを念頭において説明したが、本発明はそれに限定されるものではなく、その他の高速アクセスメモリにも適応可能であり、メモリ装置内で構成されるバンク数についても制限はないことは言うまでもない。
【0086】
【発明の効果】
以上説明したように、本発明によれば、複数のバスマスタが共有するメモリ装置をアクセスする場合に、メモリ装置のバスバンド幅を向上させるとともに、リードレイテンシを向上させ、かつメモリ装置へのアクセス回数を抑えることができる。
【図面の簡単な説明】
【図1】本発明の実施形態1に係るメモリアクセス制御装置の構成を示すブロック図
【図2】図1に示すバッファリング装置の具体的な構成例を示すブロック図
【図3】図1に示すバッファリング装置におけるライトアクセス要求発生時の動作を説明するフロー図
【図4】図1に示すバッファリング装置におけるリードアクセス要求発生時の動作を説明するフロー図
【図5】本発明の実施形態2に係るメモリアクセス制御装置の構成を示すブロック図
【図6】従来のSDRAM制御方法を説明する制御系統図
【符号の説明】
101,301 メモリアクセス制御装置
102 バスマスタ
103,302 メモリ装置
111,311 アクセス分配装置
112,312 スケジューリング装置
113,313 バッファリング装置
131,332 FIFOメモリ
132,331 データテーブル
200 リード/ライト(read/write)識別子
201 再利用識別子
202,203 テーブルアドレス
204 モディファイ(modify)識別子
205 アクセス識別子
206 物理アドレス
207 データ
208 バスマスタID
221 閾値レジスタ
222 比較器
223 有効ライン算出装置
224 退出選択装置
231 再利用識別装置
232 特定領域レジスタ
233 特定マスタレジスタ
241 アイドル(IDLE)観測装置
250 read/write識別装置
251 read/write入れ替え制御レジスタ
252 実行順序管理装置
321 バンク
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a memory access control device.
[0002]
[Prior art]
As a memory device that can be highly integrated, there is an SDRAM (Synchronous DRAM) having the same basic configuration as a general-purpose DRAM. SDRAM employs a pipeline architecture that uses a command system for burst access, and is attracting attention as a high-speed data access memory device.
[0003]
The SDRAM allows high-speed data access for accessing memory cells in the same bank and the same row. However, since latency occurs in each access, a method of accepting memory access contents as a command is adopted as a reduction method, and the command control is devised.
[0004]
As an SDRAM control method, for example, those disclosed in Patent Documents 1 and 2 are known. The outline will be described below with reference to FIG. FIG. 6 is a control system diagram for explaining a conventional SDRAM control method.
[0005]
As shown in FIG. 6, the conventional SDRAM control method employs a method in which a plurality of bus masters (bus master 0 to bus master 3) 601 access the memory controller 603 via the arbiter 602, and the memory controller 603 accesses the SDRAM 605. Has been.
[0006]
Specifically, when a plurality of bus masters 601 access the SDRAM 605, the access request is received by the arbiter 602, and then the access contents of the bus master are queued in the FIFO memory 604 in the memory controller 603. The memory controller 603 issues a command to the SDRAM 605 with reference to the access contents of the bus master queued in the FIFO memory 604, and determines which bank is to be accessed with reference to the burst length and address.
[0007]
[Patent Document 1]
JP 2001-125826 A
[Patent Document 2]
JP 11-345165 A
[0008]
[Problems to be solved by the invention]
However, in the conventional SDRAM control method, it is possible to achieve the maximum bus bandwidth by switching the command order in the FIFO memory, but it cannot contribute to improving the read data latency. .
[0009]
In addition, since SDRAM increases the power consumption as the number of accesses increases, it is necessary to reduce the number of accesses.
[0010]
The present invention has been made in view of such a point, and when accessing a memory device shared by a plurality of bus masters, the memory device is improved in bus bandwidth, read latency, and memory device. An object of the present invention is to provide a memory access control device that can suppress the number of accesses.
[0011]
[Means for Solving the Problems]
A memory access control device according to the present invention is a memory access control device that controls access to a memory device shared by a plurality of bus masters, arbitrates an access request from the plurality of bus masters, and receives one bus master. When the access request is a write access request, a completion notification is issued to the one bus master after issuing a write registration request, while the access request is a read access request. When issuing a read registration request, the access distribution device relays and transfers the read data sent in accordance with the issued read registration request to the one bus master, and receives the write registration request from the access distribution device. Write the corresponding data to the storage area prepared in advance and An address is registered, and a write request is issued when the written data is to be transferred to the memory device. On the other hand, when the read registration request is received from the access distribution device, the read request is received on the memory device. And the address on the memory device registered in advance is searched for the presence or absence of the corresponding data. If the corresponding data exists, the data is sent to the access distribution device as the read data. On the other hand, if the corresponding data does not exist, the address is registered and a read request is issued, and the read data sent in accordance with the issued read request is registered with the already registered address as well as the read data. A buffering device for sending to the access distribution device, and a buffering device from the buffering device In response to a write request, the memory device generates a signal for accessing the memory device and transfers write data sent from the buffering device to the memory device, while receiving the read request from the buffering device, the memory device And a scheduling device that generates a signal for accessing the data and transfers read data and an address from the memory device to the buffering device.
[0012]
According to this configuration, when a plurality of bus masters access data on the memory device, it may not be necessary to perform memory access to the memory device, so it is possible to speed up the memory operation of the bus master. It becomes. In addition, since the number of memory accesses can be reduced, it is possible to save power.
[0013]
In the memory access control device according to the present invention, in the above invention, the buffering device manages a content to access the memory device based on an access registration request from the access distribution device as an access request job, According to the present invention, the memory device includes an address on the memory device, data to be written to and read from the memory device according to an access request job managed by the FIFO memory, and a data table for managing the address.
[0014]
According to this configuration, data transfer between the memory access control device and the memory device can be realized by changing the order of the access request jobs in the FIFO memory.
[0015]
In the memory access control device according to the present invention, in the above invention, the FIFO memory has a read / write identifier indicating whether the operation content of the access request job is read or write for each access request job. A storage area, a storage area of a table address used in the access request job among the table addresses of the data table, and a storage area of a reuse identifier indicating whether or not data accessing the memory device has reusability The structure which comprises is taken.
[0016]
According to this configuration, in combination with the information in the data table, the contents accessed by a plurality of bus masters are accepted, and memory access can be performed instead of the bus master, so that the access request and the actual access can be separated. Therefore, each operation can be made highly efficient.
[0017]
In the memory access control device according to the present invention, in the above invention, the data table includes an area for storing a physical address of the memory device for each address of a table address that is an address of the data table, and the physical address. An area for storing associated data, a storage area for an access identifier indicating an access status of the data stored in the data storage area to the memory device, and the stored data in the memory device A storage area for a consistency identifier indicating whether consistency with data is maintained, an area for storing an ID for identifying a bus master accessing the memory device, a burst length, and a wraparound address issuance Burst access that accompanies burst access or increment address issuance A configuration that includes a storage area for information that indicates whether it is a.
[0018]
According to this configuration, data transfer between the memory access control device and the memory device can be performed without impairing the consistency and validity of the data held in the memory access control device and the data in the memory device. realizable.
[0019]
In the memory access control device according to the present invention, in the above invention, the buffering device calculates the number of additionally recordable data, which is the number of occupied lines in the data table, based on the access identifier and the consistency identifier in the data table. Means for notifying that the number of additionally recordable data is less than or equal to a threshold value, and generating an access request job for writing the data stored in the data table in the memory device based on the notification information in the FIFO memory The means and the structure to comprise are taken.
[0020]
According to this configuration, the amount of data that can be additionally recorded in the memory access control device can be avoided in advance, and the efficiency of memory access can be improved.
[0021]
In the memory access control device according to the present invention, in the above invention, the buffering device is configured such that the data executed by the access request job is reusable based on the type of the bus master and the address of the memory device accessed by the bus master. Means for determining whether or not the data is the data, and setting the determination result in the reuse identifier in the FIFO memory; and access to the memory device when the setting content of the reuse identifier is not reusable And a means for deleting the corresponding data from the data table after completion.
[0022]
According to this configuration, it is possible to avoid unnecessary data from being stored in the memory access control device, and to improve the efficiency of memory access.
[0023]
The memory access control device according to the present invention is the memory access control device according to the above invention, wherein the buffering device stores means for notifying that there is no access request job in the FIFO memory, and stores in the data table when there is the notification. Means for selecting data that does not match the data in the memory device among the data being generated, and generating an access request job in the FIFO memory for transferring the selected data from the data table to the memory device; The structure which comprises is taken.
[0024]
According to this configuration, it becomes possible to transfer the data in the buffering device that is not consistent with the memory device to the memory device when the memory access is stopped, and can be used immediately in the buffering device. The area can be increased.
[0025]
The memory access control device according to the present invention is the memory access control device according to the above invention, wherein the buffering device adds a priority to the type of read access and write access to the memory device, and the read / write identifier in the FIFO memory. And a means for determining the type of read access and write access to the memory device and controlling the execution order of the access request job in the FIFO memory based on the priority.
[0026]
According to this configuration, read access can be preferentially performed, and the data reception time at the time of read access by the bus master can be shortened.
[0027]
In the memory access control device according to the present invention, in the above invention, the scheduling device adds a priority to an access request from the buffering device, and accesses the memory device based on the priority. And a means for generating a signal that generates the above.
[0028]
According to this configuration, it is possible to devise the order of accepting access request jobs managed in the FIFO memory, and to perform control that increases the data transfer efficiency between the memory access control device and the memory device. Is possible.
[0029]
A memory access control device according to the present invention comprises: an access distribution device according to the invention that interfaces with a plurality of bus masters; a scheduling device according to the invention that interfaces with a memory device having a plurality of banks; and the access distribution device; If the number of buffering devices is m and the number of the memory devices is n, the buffering device according to the invention is interposed between the scheduling device and m. As for the relationship of n, if an arbitrary p is used, m = p × n or n = p × m holds, and each buffering device handles data for an address space obtained by dividing the address space of the memory device into m equal parts. The buffering devices are configured not to handle overlapping address spaces.
[0030]
According to this configuration, high-efficiency transfer control between the memory device and the buffering device can be performed by considering the order of processing access registration requests from the access distribution device while maintaining coherency. It becomes possible.
[0031]
DETAILED DESCRIPTION OF THE INVENTION
The essence of the present invention is that a memory device having a relatively large latency as a memory device shared by a plurality of processors including the DSP and the DMA controller, for example, a memory without accessing the performance of the processor or the DMA controller when accessing the SDRAM. It is to improve the bandwidth and realize efficient and power-saving memory access. The memory access control device of the present invention can also be used in combination with a control unit of a memory device such as a built-in SRAM that does not have a large latency during access.
[0032]
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0033]
(Embodiment 1)
FIG. 1 is a block diagram showing a configuration of a memory access control apparatus according to Embodiment 1 of the present invention. FIG. 2 is a block diagram showing a specific configuration example of the buffering apparatus shown in FIG.
[0034]
1, a memory access control device 101 according to the first embodiment includes an access distribution device 111 that interfaces with a plurality of bus masters (bus master 0 to bus master 4) 102, and a memory device 103 that is shared by the plurality of bus masters 102. And a buffering device 113 interposed between the access distribution device 111 and the scheduling device 112.
[0035]
The buffering device 113 is a FIFO memory 131 that manages the contents of access to the memory device 103 based on an access request from the access distribution device 111 as an access request job, and an address on the memory device 103 and an access request managed by the FIFO memory 131. A data table 132 that manages data to be written to and read from the memory device 103 according to the job is provided.
[0036]
Specifically, the buffering device 113 is configured as shown in FIG. 2, for example. As shown in FIG. 2, the FIFO memory 131 and the data table 132 are provided with areas for storing various parameters. The buffering device 113 is provided with various peripheral devices in addition to the FIFO memory 131 and the data table 132.
[0037]
The specific configuration (FIG. 2) and detailed operation (FIGS. 3 and 4) of the buffering device 113 will be described later, and the overall operation will be described.
[0038]
In the above configuration, the access distribution device 111 arbitrates access requests (read access requests, write access requests) from a plurality of bus masters 102, and receives an access request from one bus master 102, the received bus master 102 To notify that it has been accepted.
[0039]
If the arbitrated access request is a write access request, the access distribution device 111 issues a write registration request to the buffering device 113 and then notifies the bus master 102 that has received the access request of the end of the write. On the other hand, when the arbitrated access request is a read access request, the access distribution device 111 issues a read registration request to the buffering device 113 and is sent from the buffering device 113 according to the issued read registration request. The incoming read data is relayed to the bus master 102 that has received it.
[0040]
The buffering device 113 receives a write registration request from the access distribution device 111, writes the corresponding data if there is an area for writing the write data in the data table 132, and registers the address on the memory device 103. When the data written in the data table 132 is selected to be transferred to the memory device 103, the buffering device 113 enters a write access request to the memory device 103 in the FIFO memory 131 as an access request job. . As a result, the scheduling device 112 selects the access request job, the write access request is converted into an access signal of the memory device 103, and data is written.
[0041]
Also, the buffering device 113 receives a read registration request from the access distribution device 111, compares the address on the memory device that is the read request destination with the address on the memory device registered in the data table 132, and the corresponding data. If the corresponding data exists, the data is sent to the access distribution device 111 as the read data.
[0042]
On the other hand, if the corresponding data does not exist as a result of the search, the buffering device 113 enters a read access request to the memory device 103 in the FIFO memory 131 as an access request job. As a result, the scheduling device 112 selects the access request job, converts it into an access signal for the memory device 103, and performs reading. The buffering device 113 registers the read data and address sent from the scheduling device 112 in the corresponding storage area of the data table 132 and sends the read data to the access distribution device 111.
[0043]
Next, a specific configuration of the buffering device 113 will be described. In FIG. 2, the FIFO memory 131 includes an execution order management device 252 that stores an access request job. For each access request job, storage areas of a read / write identifier 200, a reuse identifier 201, and a table address 202 are provided and managed.
[0044]
The read / write identifier 200 indicates whether the operation of the access request job has a read attribute (reading from the memory device 103) or a write attribute (writing to the memory device 103). The read / write identifier 200 is used for control to change the operation order of an access request job having a read attribute and a write attribute.
[0045]
That is, the read / write switching control register 251 enables or disables the switching control of the operation order of the access request job having the read attribute and the write attribute displayed by the read / write identifier 200 from the bus master 102. Is set.
[0046]
The read / write identifying device 250 refers to the read / write identifier 200 to identify the position of the access request job having the read attribute and the write attribute, and the setting of the read / write switching control register 251 is “the switching control is valid”. At some point, the execution order management device 252 is made to change the execution order so that read is processed preferentially.
[0047]
The next reuse identifier 201 indicates whether the data handled in the access request job is re-referenced (yes) after accessing the memory device 103 (not). This reuse identifier 201 is set by the reuse identification device 231.
[0048]
That is, the reuse identification device 231 determines whether or not the access request job generated by the FIFO memory 131 is an access to a specific area set in the specific area register 232. Further, the reuse identification device 231 compares the access request job generated in the FIFO memory 131 with the bus master ID 208 in the data table 132 as to whether or not the access request job is an access from the bus master set in the specific master register 233. to decide.
[0049]
As a result, the reuse identifying device 231 is set in the specific master register 233 when the access request job generated in the FIFO memory 131 is an access to a specific area set in the specific area register 232. When the access is from the bus master, valid (yes) is displayed in the reuse identifier 201, and invalid (not) is displayed when it is neither. The specific area register 232 and the specific master register 233 can be arbitrarily set from the bus master 102.
[0050]
The next table address 202 stores the table address 203 in the data table 132. That is, the table address 203 stores the table address 203 in the data table 132 that is actually used for transfer to and from the memory device 103 when executing an access job when an access request is received from the access distribution device 111.
[0051]
Further, the IDLE observation device 241 identifies whether or not there is an access request job generated in the FIFO memory 131, and when it is IDLE (idle), that is, when it does not exist, notifies the exit selection device 224 to that effect. It is like that.
[0052]
Next, the data table 132 is associated with the modify identifier 204, the access identifier 205, the physical address 206 on the memory device 103, and the physical address 206 for each address of the table address 203 that is the address of the data table 132. An area for storing the received data 207, a bus master ID 208 for identifying a bus master accessing the memory device 103, and a burst type 209 is provided and managed.
[0053]
The modify identifier 204 is valid (Yes) because the data 207 in the data table 132 does not match the data on the memory device 103 corresponding to the address 206, because the data 207 is used as transfer data to the memory device 103. If they match, the data 207 is not used because it is not used as transfer data to the memory device 103, and thus becomes invalid.
[0054]
The access identifier 205 is information indicating the access status of the data 207 to the memory device 103, and displays an access end “finished”, an initial state of no access “no access”, and an access “access”. Specifically, at the time of write access, “access” being accessed is displayed until the data 207 is written in the memory device 103 by accepting the write access to the address existing in the table address 203. Further, at the time of read access, when data is read from the memory device 103 by accepting the read access corresponding to the address existing in the table address 203, “access” is displayed during access, and when the access is completed, the access is terminated “finished” Is displayed.
[0055]
The burst type 209 stores a burst length and a flag indicating whether the access is a burst access with a wrap around address issuance or a burst access with an increment address issuance. .
[0056]
Next, the valid line calculation device 223 calculates the number of additionally recordable data that is the number of occupied lines in the data table 132 with reference to the valid flag of the modify identifier 204 and the valid flag of the access identifier 205. Specifically, the sum of the number of lines in the table with the access identifier 205 “no access” and the number of lines in the table with the access identifier 205 “finished” and the modify identifier 204 “not” is stored in the data table. The number of lines subtracted from the total number of lines is the number of data lines that can be additionally written. Then, the calculation result in the effective line calculation device 223 and the threshold value set in the threshold value register 221 are compared by the comparator 222, and the comparison result is given to the exit selection device 224.
[0057]
When the comparison result of the comparator 222 indicates that the number of occupied lines is smaller than the threshold set in the threshold register 221, it indicates that the modify identifier 204 has many invalid flags (that is, additional writing is possible), and vice versa. Indicates that the modify identifier 204 has many valid flags (that is, additional writing is not possible).
[0058]
The exit selection device 224 determines the flag status of the modify identifier 204 from the comparison result in the comparator 222. If the modify identifier 204 is invalid, overwriting is possible (that is, additional writing is possible), and nothing is done. On the other hand, in order to transfer to the memory device 103 if the modify identifier 204 is valid, the leaving selection device 224 selects a line that is not consistent with the data 207 in the memory device 103, and sends it to the memory device 103. An access request job having a write attribute is generated in the FIFO memory 131. Then, after receiving the idle notification from the IDLE observation device 241, the line of the selected data table is invalidated. Further, the exit selection device 224 updates the modify identifier 204 when data is written to the memory device 103.
[0059]
Next, the operation of the buffering device 113 configured as described above will be described with reference to FIGS. FIG. 3 is a flowchart for explaining the operation when a write access request is generated in the buffering device 113 shown in FIG. FIG. 4 is a flowchart for explaining the operation when a read access request is generated in the buffering device 113 shown in FIG.
[0060]
In FIG. 3, when a write access request is input from the access distribution device 111 (step ST301), it is searched whether or not the write destination address exists in the data table 132 (step ST302). As a result, when the write destination address exists in the data table 132 (step ST303: Yes), the data 207 is stored in the corresponding data area in the data table 132 (step ST304), and the process proceeds to step ST308.
[0061]
On the other hand, when the write destination address does not exist in the data table 132 (step ST303: No), it is determined whether or not the data table 132 can be additionally written (step ST305). As a result, if additional writing is not possible (step ST305: No), the data selection process is performed by the data selection unit 224 to secure a write area (step ST306), and an address and data are registered in the secured area (step ST306). ST307), the process proceeds to step ST308. If the data table 132 can be additionally recorded (step ST305: Yes), the address and data are registered in the additionally recordable area (step ST307), and the process proceeds to step ST308.
[0062]
In step ST308, it is determined with reference to the reuse identifier 201 whether the written data is reused. As a result of the determination, if the data is to be reused (step ST308: Yes), this processing ends, but if the data is not to be reused (step ST308: No), it is registered as write access in the FIFO memory 131, After writing data to the memory device 103 for access, the target data area of the data table 132 is released as an empty area (step ST309), and then this process is terminated.
[0063]
Next, in FIG. 4, when a read access request is input from the access distribution device 111 (step ST401), it is searched whether or not the read destination address exists in the data table 132 (step ST402). As a result, when the read destination address exists in the data table 132 (step ST403: Yes), it is determined whether or not the data 207 associated with the physical address 206 is valid (step ST404). If the corresponding data 207 is valid (step ST404: Yes), the process directly proceeds to step ST408.
[0064]
On the other hand, when the read destination address does not exist in the data table 132 (step ST403: No) or when the corresponding data 207 is not valid (step ST404: No), it is determined whether or not the data table 132 can be additionally written. (Step ST405). As a result, if additional writing is not possible (step ST405: No), the data selection process is performed by the data selection unit 224 to secure a write area (step ST406), and the data read from the memory device 103 in the secured area The address is registered (step ST407), and the process proceeds to step ST408.
[0065]
Further, even when the read destination address does not exist in the data table 132 (step ST403: No), or even when the corresponding data 207 is not valid (step ST404: No), the data table 132 can be additionally written (step ST405: Yes), the process proceeds directly to step ST408.
[0066]
In step ST408, the data 207 in the data table 132 is read by the bus master 102 that has requested read access. In parallel, it is determined with reference to the reuse identifier 201 whether the written data is reused (step ST409). As a result of the determination, if the data is to be reused (step ST409: Yes), this processing ends, but if the data is not to be reused (step ST409: No), the target data area of the data table 132 is set as an empty area. It is opened (step ST410), and then this process is terminated.
[0067]
As described above, according to the first embodiment, when a plurality of bus masters access data on a memory device, it may not be necessary to access the memory device. It is possible to increase the speed, and it is possible to save power by reducing the number of memory accesses.
[0068]
Here, the buffering device 113 manages the contents of accessing the memory device 103 based on the access request from the access distribution device 111 as an access request job, and manages the address on the memory device 103 and the FIFO memory 131. And the data table 132 for managing the data to be written to and read from the memory device 103 in accordance with the access request job to be executed, the order of the access request jobs in the FIFO memory 131 is changed, and the memory access control device 101 and the memory device 103 are changed. It is possible to realize data transfer between the two.
[0069]
The FIFO memory 131 also includes a read / write identifier 200 indicating whether the operation content of the access request job is read or write for each access request job managed by the execution order management device 252, and a table of the data table 132. Since the table address 202 used in the access request job in the address 203 and the reuse identifier 201 indicating whether or not the data accessing the memory device 103 has reusability are stored and managed, respectively. In combination with the information in the data table 132, memory access is possible instead of the plurality of bus masters 102. Therefore, the access request and the actual access can be separated, and the operation in each can be made highly efficient.
[0070]
The data table 132 includes a physical address 206 of the memory device 103, data 207 associated with the physical address 206, and stored data 207 for each address of the table address 203 that is the address of the data table. An access identifier 05 indicating an access status to the memory device 103, a modify identifier 204 which is a consistency identifier indicating whether or not the stored data 207 is consistent with the data in the memory device 103, and access A bus master ID 208 for identifying the received bus master 102, and a burst type and a burst type 209 which is information indicating whether the burst access is a burst access accompanied by a wraparound address issue or a burst access accompanied by an increment address issue It Since the data 207 held in the data table 132 and the data in the memory device 103 are not lost, the memory access control device 101, the memory device 103, and Data transfer between the two can be realized.
[0071]
In addition, the buffering device 113 includes the effective line calculation device 223 that is a means for calculating the number of additionally recordable data that is the number of occupied lines in the data table 132 based on the access identifier 205 and the modify identifier 204 in the data table 132, and the additional writing is possible A threshold register 221 and a comparator 222 that are means for notifying that the number of data is equal to or less than a threshold, and an access request for writing the stored data 207 of the data table 132 to the memory device 103 based on the notification information from the comparator 222. Since the exit selection device 224, which is a means for generating a job in the FIFO memory 131, is provided, it is possible to avoid in advance that the amount of data that can be additionally recorded in the memory access control device 101 becomes zero, and to improve the efficiency of memory access And can That.
[0072]
In addition, the buffering device 113 uses the type of the bus master 102 (specific master register 233) and the address of the memory device 103 accessed by the bus master 102 (specific region register 232) to make the data executed by the access request job reusable. It is determined whether or not the data is certain, and the determination result is set to the reuse identifier 201 in the FIFO memory 131, and the setting contents of the reuse identifier 201 are not reusable. Since there is an exit selection device 224 that is means for deleting the corresponding data from the data table 132 after the access to the memory device 103 is completed, it is possible to avoid storing unnecessary data in the memory access control device 101. This makes it possible to improve the efficiency of memory access.
[0073]
In addition, the buffering device 113 receives an IDLE observation device 241 as a means for notifying that an access request job does not exist (that is, idle) in the FIFO memory 131, and when the IDLE observation device 241 notifies the idle. An access request job for selecting the data 207 that does not match the data in the memory device from the data 207 stored in the data table 132 and transferring the selected data 207 from the data table 132 to the memory device 103. Since the egress selection device 224 that is a means for generating the FIFO memory 131 is provided, the memory device 103 stores data 207 that is not consistent with the memory device 103 existing in the buffering device 113 when the memory access is idle. Can be transferred to , It is possible to increase the space available immediately at the buffering device 113.
[0074]
Further, the buffering device 113 is a memory based on the read / write switching control register 252 which is a means for adding priority to the types of read access and write access to the memory device 103 and the read / write identifier 200 in the FIFO memory 131. A read / write identifying device 250 that is a means for determining the type of read access and write access to the device 103 and controlling the execution order of the access request job in the FIFO memory 131 based on the priority. Read access can be preferentially performed, and data reception time at the time of read access by the bus master 102 can be shortened.
[0075]
In addition, the scheduling device 112 includes means for adding a priority to an access request from the buffering device 113 and means for generating a signal that causes access to the memory device 103 based on the priority. Can be. According to this, it becomes possible to devise the order in which the access request jobs managed in the FIFO memory 131 are received, and the efficiency of data transfer between the memory access control device 101 and the memory device 103 is improved. Control can be performed.
[0076]
(Embodiment 2)
FIG. 5 is a block diagram showing the configuration of the memory access control apparatus according to the second embodiment of the present invention. As illustrated in FIG. 5, the memory access control device 301 according to the second embodiment has a case where a memory device 302 accessed by a plurality of bus masters (bus master 0 to bus master 4) 102 has a plurality of banks 321.
[0077]
In FIG. 5, a memory access control device 301 is a scheduling device that interfaces with an access distribution device 311 that interfaces with a plurality of bus masters (bus master 0 to bus master 4) 102 and a memory device 302 that is shared by the plurality of bus masters 102. 312, and a plurality of buffering devices 313 interposed between the access distribution device 311 and the scheduling device 312.
[0078]
Since the plurality of buffering devices 313 are mounted, the access distribution device 311 distributes the access registration request to the plurality of buffering devices 313 after the access arbitration of the bus master 102. This distribution criterion is based on a specific address area.
[0079]
The access distribution device 311 has a function of sending the read data sent from the buffering device 313 to the bus master 102 in the order requested by the bus master 102 in response to the read access registration request distributed to each buffering device 313. is doing.
[0080]
Each of the plurality of buffering devices 313 has the same configuration as the buffering device 113 described in the first embodiment, and includes a data table 331 and a FIFO memory 332 having the same configuration.
[0081]
The scheduling device 312 selects the head access request job in the FIFO memory 332 in the plurality of buffering devices 313, converts it into an access signal to the memory device 302, and transmits data between the buffering device 313 and the memory device 302. Perform the transfer.
[0082]
At this time, if the memory device 302 is an SDRAM in which accesses to the same bank 321 and read / write accesses occur alternately, the bandwidth decreases. For this reason, the scheduling apparatus 312 implements a measure for avoiding this point to the maximum, and realizes highly efficient memory access.
[0083]
Here, if the number of buffering devices 313 is m and the memory device 302 has a bank configuration of n, the relationship between m and n is m = p × n or n = Since p × m holds, each buffering device 313 handles data for an address space obtained by equally dividing the address space of the memory device 302 into m, and does not handle an overlapping address space among a plurality of buffering devices 313. It has become.
[0084]
With this configuration, it is possible to perform highly efficient transfer control between the memory device 302 and the buffering device 313 by considering the order of processing access registration requests from the access distribution device 311 while maintaining coherency. It becomes possible.
[0085]
In each embodiment, the SDRAM has been described as a memory device. However, the present invention is not limited to this, and can be applied to other high-speed access memories. Needless to say, there is no limit to the number.
[0086]
【The invention's effect】
As described above, according to the present invention, when a memory device shared by a plurality of bus masters is accessed, the bus bandwidth of the memory device is improved, the read latency is improved, and the number of accesses to the memory device is increased. Can be suppressed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a memory access control apparatus according to a first embodiment of the present invention.
FIG. 2 is a block diagram showing a specific configuration example of the buffering device shown in FIG.
FIG. 3 is a flowchart for explaining the operation when a write access request is generated in the buffering device shown in FIG. 1;
4 is a flowchart for explaining the operation when a read access request is generated in the buffering device shown in FIG.
FIG. 5 is a block diagram showing a configuration of a memory access control apparatus according to a second embodiment of the present invention.
FIG. 6 is a control system diagram for explaining a conventional SDRAM control method;
[Explanation of symbols]
101, 301 Memory access control device
102 Bus master
103,302 memory device
111,311 access distribution device
112, 312 scheduling device
113,313 Buffering device
131,332 FIFO memory
132,331 data table
200 Read / write identifier
201 Reuse identifier
202, 203 Table address
204 modify identifier
205 Access identifier
206 Physical address
207 data
208 Bus master ID
221 Threshold register
222 Comparator
223 Effective line calculation device
224 Exit selection device
231 Reuse identification device
232 Specific area register
233 Specific master register
241 IDLE observation device
250 read / write identification device
251 read / write exchange control register
252 Execution order management device
321 Bank

Claims (10)

複数のバスマスタが共有するメモリ装置へのアクセスを制御するメモリアクセス制御装置であって、
前記複数のバスマスタからのアクセス要求を調停し、受け付けた1のバスマスタに対して受付通知を発行するとともに、前記アクセス要求がライトアクセス要求であるときはライト登録要求を発行した後に前記1のバスマスタに対して完了通知を発行する一方、前記アクセス要求がリードアクセス要求であるときはリード登録要求を発行し、その発行したリード登録要求に従って送られてくるリードデータを前記1のバスマスタに対して中継転送するアクセス分配装置と、
前記アクセス分配装置からの前記ライト登録要求を受けて該当データを予め用意した記憶領域に書き込むとともにメモリ装置上のアドレスを登録し、書き込まれたデータが前記メモリ装置に転送する対象になった場合にライト要求を発行する一方、前記アクセス分配装置からの前記リード登録要求を受けてそのリード要求先のメモリ装置上のアドレスと予め登録されたメモリ装置上のアドレスとを比較して該当データの存在有無を検索し、該当データが存在する場合は、そのデータを前記リードデータとして前記アクセス分配装置に対して送出し、一方、該当データが存在しない場合はアドレスを登録した上でリード要求を発行し、その発行したリード要求に従って送られてくるリードデータをすでに登録済みのアドレスと対にして登録するとともに当該リードデータを前記アクセス分配装置に対して送出するバッファリング装置と、
前記バッファリング装置からの前記ライト要求を受けて前記メモリ装置をアクセスする信号を生成し前記バッファリング装置から送られてくるライトデータを前記メモリ装置に転送する一方、前記バッファリング装置からの前記リード要求を受けて前記メモリ装置をアクセスする信号を生成し前記メモリ装置からのリードデータ及びアドレスを前記バッファリング装置に転送するスケジューリング装置と、
を具備することを特徴とするメモリアクセス制御装置。
A memory access control device for controlling access to a memory device shared by a plurality of bus masters,
Arbitrates access requests from the plurality of bus masters, issues an acceptance notification to the accepted one bus master, and if the access request is a write access request, issues a write registration request to the one bus master. When the access request is a read access request, it issues a read registration request and relays the read data sent in accordance with the issued read registration request to the one bus master. An access distribution device,
When the write registration request from the access distribution device is received and the corresponding data is written in a storage area prepared in advance and the address on the memory device is registered, and the written data is to be transferred to the memory device. While issuing the write request, the presence or absence of the corresponding data by comparing the address on the memory device of the read request destination with the address on the pre-registered memory device in response to the read registration request from the access distribution device If the corresponding data exists, the data is sent as the read data to the access distribution device. On the other hand, if the corresponding data does not exist, an address is registered and a read request is issued. Register the read data sent according to the issued read request with the already registered address. Buffering device for both sending the read data to the access distribution device,
In response to the write request from the buffering device, generates a signal for accessing the memory device and transfers write data sent from the buffering device to the memory device, while reading from the buffering device. A scheduling device for receiving a request and generating a signal for accessing the memory device and transferring read data and an address from the memory device to the buffering device;
A memory access control device comprising:
前記バッファリング装置は、前記アクセス分配装置からのアクセス登録要求に基づき前記メモリ装置にアクセスする内容をアクセス要求ジョブとして管理するFIFOメモリと、前記メモリ装置上のアドレスと前記FIFOメモリが管理するアクセス要求ジョブに従いメモリ装置に書き込むデータ及び読み出すデータとそのアドレスを管理するデータテーブルと、を具備することを特徴とする請求項1記載のメモリアクセス制御装置。The buffering device includes a FIFO memory that manages, as an access request job, contents to access the memory device based on an access registration request from the access distribution device, an address on the memory device, and an access request managed by the FIFO memory. 2. The memory access control device according to claim 1, further comprising: a data table for managing data to be written to and read from the memory device according to a job, and data addresses thereof. 前記FIFOメモリは、前記アクセス要求ジョブ毎に、前記アクセス要求ジョブの動作内容が読み出しと書き込みのいずれであるかを示すリード/ライト識別子の記憶領域と、前記データテーブルのテーブルアドレスのうち前記アクセス要求ジョブで用いるテーブルアドレスの記憶領域と、前記メモリ装置にアクセスするデータに再利用性があるか否かを示す再利用識別子の記憶領域と、を具備することを特徴とする請求項2記載のメモリアクセス制御装置。The FIFO memory includes, for each access request job, a storage area of a read / write identifier indicating whether the operation content of the access request job is read or write, and the access request among the table addresses of the data table 3. The memory according to claim 2, further comprising: a storage area for a table address used in a job; and a storage area for a reuse identifier indicating whether or not data accessing the memory device has reusability. Access control device. 前記データテーブルは、当該データテーブルのアドレスであるテーブルアドレスのアドレス毎に、前記メモリ装置の物理アドレスを記憶する領域と、前記物理アドレスに対応づけられたデータを記憶する領域と、前記データ記憶領域に格納されているデータの前記メモリ装置へのアクセス状況を示すアクセス識別子の記憶領域と、前記格納されているデータが前記メモリ装置内のデータと一貫性が保たれているか否かを示す一貫性識別子の記憶領域と、前記メモリ装置にアクセスするバスマスタを識別するためのIDを記憶する領域と、バースト長及び、ラップアラウンドのアドレス発行を伴うバーストアクセスであるか、インクリメントのアドレス発行を伴うバーストアクセスであるかを示す情報の記憶領域と、を具備することを特徴とする請求項2記載のメモリアクセス制御装置。The data table includes an area for storing a physical address of the memory device, an area for storing data associated with the physical address, and a data storage area for each address of a table address that is an address of the data table. The storage area of the access identifier indicating the access status of the data stored in the memory device and the consistency indicating whether the stored data is consistent with the data in the memory device An identifier storage area, an area for storing an ID for identifying a bus master accessing the memory device, burst access with burst length and wraparound address issuance, or burst access with increment address issuance A storage area for information indicating whether or not Memory access control device according to claim 2, wherein. 前記バッファリング装置は、前記データテーブルにおける前記アクセス識別子及び前記一貫性識別子に基づきデータテーブルの占有ライン数である追記可能データ数を算出する手段と、前記追記可能データ数が閾値以下になったことを報知する手段と、前記報知情報に基づき前記データテーブルの格納データを前記メモリ装置に書き込むためのアクセス要求ジョブを前記FIFOメモリに発生させる手段と、を具備することを特徴とする請求項2記載のメモリアクセス制御装置。The buffering device calculates a number of additionally recordable data that is the number of occupied lines in the data table based on the access identifier and the consistency identifier in the data table, and the number of additionally recordable data is equal to or less than a threshold value. And a means for causing the FIFO memory to generate an access request job for writing data stored in the data table to the memory device based on the notification information. Memory access control device. 前記バッファリング装置は、前記バスマスタの種別や前記バスマスタがアクセスするメモリ装置のアドレスに基づき、アクセス要求ジョブが実行するデータが再利用性のあるデータであるか否かを判別し、その判別結果を前記FIFOメモリにおける前記再利用識別子に設定する手段と、前記再利用識別子の設定内容が再利用性無しであるとき前記メモリ装置へのアクセス終了後に前記データテーブルから該当データを削除する手段と、を具備することを特徴とする請求項2記載のメモリアクセス制御装置。The buffering device determines whether the data executed by the access request job is reusable data based on the type of the bus master or the address of the memory device accessed by the bus master, and the determination result Means for setting the reuse identifier in the FIFO memory, and means for deleting the relevant data from the data table after the access to the memory device is completed when the setting content of the reuse identifier is not reusable. 3. The memory access control device according to claim 2, further comprising: 前記バッファリング装置は、前記FIFOメモリにアクセス要求ジョブが存在しないことを報知する手段と、前記報知があったとき、前記データテーブルに格納されているデータのうち前記メモリ装置内データと一致していないデータを選出し、その選出したデータを前記データテーブルからメモリ装置に転送するためのアクセス要求ジョブを前記FIFOメモリに発生させる手段と、を具備することを特徴とする請求項2記載のメモリアクセス制御装置。The buffering device is configured to notify that there is no access request job in the FIFO memory, and when the notification is received, the buffering device matches the data in the memory device among the data stored in the data table. 3. A memory access according to claim 2, further comprising: means for generating, in the FIFO memory, an access request job for selecting non-existing data and transferring the selected data from the data table to the memory device. Control device. 前記バッファリング装置は、メモリ装置へのリードアクセス及びライトアクセスの種別に優先順位を付加する手段と、前記FIFOメモリにおける前記リード/ライト識別子に基づきメモリ装置へのリードアクセス及びライトアクセスの種別を判別し、前記優先順位に基づいて前記FIFOメモリでのアクセス要求ジョブの実行順序を制御する手段と、を具備することを特徴とする請求項2記載のメモリアクセス制御装置。The buffering device discriminates the type of read access and write access to the memory device based on the means for adding priority to the type of read access and write access to the memory device and the read / write identifier in the FIFO memory 3. The memory access control apparatus according to claim 2, further comprising means for controlling an execution order of access request jobs in the FIFO memory based on the priority. 前記スケジューリング装置は、前記バッファリング装置からのアクセス要求に対して優先順位を付加する手段と、前記優先順位に基づいてメモリ装置へのアクセスを生じさせる信号を生成する手段と、を具備することを特徴とする請求項1記載のメモリアクセス制御装置。The scheduling device comprises means for adding a priority to an access request from the buffering device, and means for generating a signal for causing access to a memory device based on the priority. The memory access control device according to claim 1, wherein: 複数のバスマスタとのインタフェースをなす請求項1から請求項9のいずれかに記載のアクセス分配装置と、複数のバンクを持つメモリ装置とのインタフェースをなす請求項1から請求項9のいずれかに記載のスケジューリング装置と、前記アクセス分配装置と前記スケジューリング装置との間に介在する請求項1から請求項9のいずれかに記載のバッファリング装置の複数個とで構成され、前記バッファリング装置の個数がmで、前記メモリ装置がn個のバンク構成であるとすれば、mとnの関係は、任意のpを用いるとm=p×n、あるいはn=p×mが成り立ち、各バッファリング装置は、メモリ装置のアドレス空間をm等分したアドレス空間に対するデータを取り扱い、複数のバッファリング装置の相互間では重複したアドレス空間を扱わないようになっていることを特徴とするメモリアクセス制御装置。10. The access distribution device according to claim 1, which interfaces with a plurality of bus masters, and a memory device with a plurality of banks. And a plurality of buffering devices according to any one of claims 1 to 9 interposed between the access distribution device and the scheduling device. Assuming that the memory device has a configuration of n banks, the relationship between m and n is m = p × n or n = p × m when an arbitrary p is used, and each buffering device Handles data for an address space obtained by dividing the address space of the memory device into m equal parts. A memory access control device characterized by not being handled.
JP2003173795A 2003-06-18 2003-06-18 Memory access control device Pending JP2005011029A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003173795A JP2005011029A (en) 2003-06-18 2003-06-18 Memory access control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003173795A JP2005011029A (en) 2003-06-18 2003-06-18 Memory access control device

Publications (1)

Publication Number Publication Date
JP2005011029A true JP2005011029A (en) 2005-01-13

Family

ID=34097519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003173795A Pending JP2005011029A (en) 2003-06-18 2003-06-18 Memory access control device

Country Status (1)

Country Link
JP (1) JP2005011029A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005339348A (en) * 2004-05-28 2005-12-08 Renesas Technology Corp Semiconductor device
JP2009140324A (en) * 2007-12-07 2009-06-25 Fujitsu Ltd Memory access controller and memory access control method
JP2010186403A (en) * 2009-02-13 2010-08-26 Renesas Electronics Corp Data processing apparatus
JP2012177965A (en) * 2011-02-25 2012-09-13 Shuichi Takada Memory control device
JP2012190232A (en) * 2011-03-10 2012-10-04 Ricoh Co Ltd Memory access controller
JP2014035678A (en) * 2012-08-09 2014-02-24 Fujitsu Ltd Arithmetic processing unit, information processing unit, and control method for information processing unit
US8703350B2 (en) 2005-10-27 2014-04-22 Kyocera Corporation Heat-resistant alloy member, alloy member for fuel cell, collector member for fuel cell, cell stack, and fuel cell apparatus
JP2014238768A (en) * 2013-06-10 2014-12-18 オリンパス株式会社 Data processing apparatus and data transfer controller
JP2014238769A (en) * 2013-06-10 2014-12-18 オリンパス株式会社 Data processing apparatus and data transfer controller
CN108984177A (en) * 2018-06-21 2018-12-11 中国铁塔股份有限公司 A kind of data processing method and system
CN117707994A (en) * 2024-02-02 2024-03-15 北京象帝先计算技术有限公司 Request buffer, system, component, device and transmission method

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4656862B2 (en) * 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 Semiconductor device
US8032715B2 (en) 2004-05-28 2011-10-04 Renesas Electronics Corporation Data processor
JP2005339348A (en) * 2004-05-28 2005-12-08 Renesas Technology Corp Semiconductor device
US8703350B2 (en) 2005-10-27 2014-04-22 Kyocera Corporation Heat-resistant alloy member, alloy member for fuel cell, collector member for fuel cell, cell stack, and fuel cell apparatus
JP2009140324A (en) * 2007-12-07 2009-06-25 Fujitsu Ltd Memory access controller and memory access control method
JP2010186403A (en) * 2009-02-13 2010-08-26 Renesas Electronics Corp Data processing apparatus
JP2012177965A (en) * 2011-02-25 2012-09-13 Shuichi Takada Memory control device
JP2012190232A (en) * 2011-03-10 2012-10-04 Ricoh Co Ltd Memory access controller
JP2014035678A (en) * 2012-08-09 2014-02-24 Fujitsu Ltd Arithmetic processing unit, information processing unit, and control method for information processing unit
JP2014238768A (en) * 2013-06-10 2014-12-18 オリンパス株式会社 Data processing apparatus and data transfer controller
JP2014238769A (en) * 2013-06-10 2014-12-18 オリンパス株式会社 Data processing apparatus and data transfer controller
US9645957B2 (en) 2013-06-10 2017-05-09 Olympus Corporation Data processing device and data transfer control device
US9672174B2 (en) 2013-06-10 2017-06-06 Olympus Corporation Data-processing apparatus and data transfer control device
CN108984177A (en) * 2018-06-21 2018-12-11 中国铁塔股份有限公司 A kind of data processing method and system
CN117707994A (en) * 2024-02-02 2024-03-15 北京象帝先计算技术有限公司 Request buffer, system, component, device and transmission method

Similar Documents

Publication Publication Date Title
KR100610730B1 (en) Method and apparatus for memory access scheduling to reduce memory access latency
JP5417879B2 (en) Cache device
JP3323212B2 (en) Data prefetching method and apparatus
JP5666722B2 (en) Memory interface
JP2002530742A (en) Method and apparatus for prioritizing access to external devices
JP4656862B2 (en) Semiconductor device
JP2003535380A (en) Memory controller improves bus utilization by reordering memory requests
JP2002530743A (en) Use the page tag register to track the state of a physical page in a memory device
JPH09510308A (en) Advanced pipelined bus architecture
TW201234188A (en) Memory access device for memory sharing among multiple processors and access method for the same
US8583873B2 (en) Multiport data cache apparatus and method of controlling the same
JP2001117859A (en) Bus controller
US20050253858A1 (en) Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams
JP2005011029A (en) Memory access control device
JP2019096309A (en) Execution of maintenance operation
US6247101B1 (en) Tagged access synchronous bus architecture
US6751704B2 (en) Dual-L2 processor subsystem architecture for networking system
WO2000038077A1 (en) Cache device and control method
US20140244939A1 (en) Texture cache memory system of non-blocking for texture mapping pipeline and operation method of texture cache memory
TW200410133A (en) A method to reduce memory latencies by performing two levels of speculation
US8296525B1 (en) Method and apparatus for data-less bus query
US20080320176A1 (en) Prd (physical region descriptor) pre-fetch methods for dma (direct memory access) units
JP2005508549A (en) Improved bandwidth for uncached devices
JP2003345648A5 (en)
TW526424B (en) Symmetric multiprocessor address bus protocol with intra-cache line access information