JP3698902B2 - Memory access device and access method thereof - Google Patents
Memory access device and access method thereof Download PDFInfo
- Publication number
- JP3698902B2 JP3698902B2 JP35098498A JP35098498A JP3698902B2 JP 3698902 B2 JP3698902 B2 JP 3698902B2 JP 35098498 A JP35098498 A JP 35098498A JP 35098498 A JP35098498 A JP 35098498A JP 3698902 B2 JP3698902 B2 JP 3698902B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- request
- bank
- address
- busy
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 23
- 239000012536 storage buffer Substances 0.000 claims description 45
- 230000001174 ascending effect Effects 0.000 claims description 14
- 239000000872 buffer Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Description
【0001】
【発明の属する技術分野】
本発明は、複数のバンク構成を有するDRAM又はSDRAMに対するメモリアクセス装置及びそのアクセス方法に関する。
【0002】
【従来の技術】
従来のメモリアクセス装置として、たとえば図3に示すものが知られている。
【0003】
図3のメモリアクセス装置は、リクエスト格納バッファ3−1、バンクビジーカウンタ3−2、リフレッシュチェック回路3−3、バンクチェック回路3−4、セレクタ3−5を備えている。
【0004】
リクエスト格納バッファ3−1は、バンクビジー時又はリフレッシュビジー時にリクエスト発行元から受信したメモリリクエストを格納する。バンクビジーカウンタ3−2は、メモリ制御部に送出されたメモリリクエストのバンクアドレスからバンクビジー時間をカウントしてバンクビジーを生成する。
【0005】
リフレッシュチェック回路3−3は、一定間隔にリフレッシュリクエストを生成する。バンクチェック回路3−4は、バンクビジー、リフレッシュリクエスト、リクエスト格納バッファ3−1に格納されているリクエストのアクセス先のバンクアドレスからリクエストセレクトを生成する。セレクタ3−5は、リクエストセレクトによりメモリリクエストを選択してメモリ制御部に出力する。
【0006】
【発明が解決しようとする課題】
ところで、上述した従来のメモリアクセス装置においては、たとえばバンクビジーにより、リクエスト格納バッファ3−1にリードのメモリリクエストとライトのメモリリクエストが格納されているとき、リード及びライトのメモリリクエストに対し順番を保証する必要がある。このため、リクエスト格納バッファ3−1の出力順はFIFO(FARST IN FARST OUT)動作となる。つまり、後続のリクエスのアクセス先バンクがビジーでない場合でも、先行リクエストを追い越すことができないため、メモリスループットが低下するという問題がある。
【0007】
また、SDRAMを使用した場合において、同一SDRAM内のバンク間サイクル管理を行っていないため、SDRAM内のバンクの有効利用が図られていないという問題もある。
【0008】
本発明は、このような状況に鑑みてなされたものであり、メモリ素子の使用効率を上げることで、メモリスループットを向上させることができるメモリアクセス装置及びそのアクセス方法を提供することができるようにするものである。
【0009】
【課題を解決するための手段】
請求項1に記載のメモリアクセス装置は、DRAM又は複数のバンクを内蔵しているSDRAMであるメモリ素子のメモリアクセス装置であって、受信したメモリリクエストをワード番号の若い順番から格納するリクエスト格納バッファと、前記リクエスト格納バッファ内に滞留しているメモリリクエストと受信したメモリリクエスト各々のアドレス情報を比較し、同一アドレスにアクセスするメモリリクエストが前記リクエスト格納バッファ内に存在しているかどうかをチェックし、アドレス比較結果を全てのメモリリクエストに対して出力するアドレス比較回路と、バンクビジー情報を生成するバンクビジーカウンタと、一定間隔にリフレッシュリクエストを生成し、リフレッシュリクエストを出力するリフレッシュチェック回路と、前記メモリ素子を制御するメモリ制御部に出力するためのメモリリクエストを選択するためのリクエストセレクト信号を生成するリクエスト選択回路と、前記生成されたリクエストセレクト信号によりメモリリクエストを選択して前記メモリ制御部に出力するセレクタとを備え、前記アドレス比較回路のチェックの結果により前記同一アドレスにアクセスするメモリリクエストの順序を保証することを特徴とする。
また、リクエスト格納バッファは、受信したメモリリクエストがバンクビジー又はリフレッシュビジーでないとき、メモリリクエストをメモリ制御部に出力し、バンクビジーのときには、メモリリクエストを最大n個(nワード分)まで格納するようにすることができる。
また、リクエスト格納バッファは、メモリリクエストを最大n(nワード分、ワード“0”からワード“n−1”まで)個まで格納可能とし、ワード番号の若い順番でメモリリクエストを格納するものであり、ワード番号“m”(0≦m≦n−1)を出力するとき、“m−1”以下のワード番号のメモリリクエストはそのままのワード番号でメモリリクエストを保持しておき、“n−1”から“m+1”のメモリリクエストは各々“−1”したワード番号にシフトしてメモリリクエストを格納するようにすることができる。
また、アドレス比較回路は、メモリリクエストがリクエスト格納バッファ内に存在しているかどうかをチェックした後、nワードのリクエスト各々に対して先行メモリリクエストのアドレス比較結果を出力するようにすることができる。
また、アドレス比較回路は、部分的な比較であるバンクアドレスの比較を行うようにすることができる。
また、バンクビジーカウンタは、メモリ制御部に送出するメモリリクエストのバンクアドレス及びコマンドからバンクビジー時間をセットし、クロックサイクル毎に−1カウントダウンし、カウンタ値が“0”以外のときはバンクビジーであることを通知するためのバンクビジーカウンタを各々バンク単位に有しているようにすることができる。
また、リクエスト選択回路は、バンクビジーカウンタからのバンクビジー情報、リフレッシュチェック回路からのリフレッシュリクエスト、リクエスト格納バッファのメモリリクエストのアクセス先バンクアドレス、アドレス比較回路からのアドレス比較結果に基づいてメモリリクエストを選択するようにすることができる。
また、リクエスト選択回路は、リクエスト選択としての優先順位を、リフレッシュリクエスト、リクエスト格納バッファに格納されているワード番号の若い順、リクエスト発行元から送信されたメモリリクエストの順とするようにすることができる。
また、リクエスト選択回路は、アクセス先のバンクがバンクビジーでないとき、及び優先度の高いメモリリクエストのアクセス先アドレスが一致していないときにリクエストセレクト信号を生成するようにすることができる。
また、バンクビジーカウンタは、SDRAMに対して同一SDRAM内の異なるバンクにアクセスが生じた際のバンク間サイクルタイムをカウントするカウンタをバンク毎に設けているようにすることができる。
請求項11に記載のメモリアクセス方法は、DRAM又は複数のバンクを内蔵しているSDRAMであるメモリ素子のメモリアクセス方法であって、受信したメモリリクエストをワード番号の若い順番からリクエスト格納バッファに格納する第1の工程と、前記リク エスト格納バッファ内に滞留しているメモリリクエストと受信したメモリリクエスト各々のアドレス情報を比較し、同一アドレスにアクセスするメモリリクエストが前記リクエスト格納バッファ内に存在しているかどうかをチェックし、アドレス比較結果を全てのメモリリクエストに対して出力する第2の工程と、バンクビジー情報を生成する第3の工程と、一定間隔にリフレッシュリクエストを生成し、リフレッシュリクエストを出力する第4の工程と、前記メモリ素子を制御するメモリ制御部に出力するためのメモリリクエストを選択するためのリクエストセレクト信号を生成する第5の工程と、前記生成されたリクエストセレクト信号によりメモリリクエストを選択して前記メモリ制御部に出力する第6の工程とを備え、前記チェックの結果により前記同一アドレスにアクセスするメモリリクエストの順序を保証することを特徴とする。
また、第1の工程には、受信したメモリリクエストがバンクビジー又はリフレッシュビジーでないとき、メモリリクエストをメモリ制御部に出力し、バンクビジーのときには、メモリリクエストを最大n個(nワード分)まで格納する工程が含まれるようにすることができる。
また、第1の工程には、メモリリクエストを最大n(nワード分、ワード“0”からワード“n−1”まで)個まで格納可能とし、ワード番号の若い順番でメモリリクエストを格納するとともに、ワード番号“m”(0≦m≦n−1)を出力するとき、“m−1”以下のワード番号のメモリリクエストはそのままのワード番号でメモリリクエストを保持しておき、“n−1”から“m+1”のメモリリクエストは各々“−1”したワード番号にシフトしてメモリリクエストを格納する工程が含まれるようにすることができる。
また、第2の工程には、メモリリクエストが格納されているか否かをチェックした後、nワードのリクエスト各々に対して先行メモリリクエストのアドレス比較結果を出力する工程が含まれるようにすることができる。
また、第2の工程には、部分的な比較であるバンクアドレスの比較を行う工程が含まれるようにすることができる。
また、第3の工程には、メモリ制御部に送出するメモリリクエストのバンクアドレス及びコマンドからバンクビジー時間をセットし、クロックサイクル毎に−1カウントダウンし、カウンタ値が“0”以外のときはバンクビジーであることを通知する工程が含まれるようにすることができる。
また、第5の工程には、バンクビジー情報、リフレッシュリクエスト、格納されているメモリリクエストのアクセス先バンクアドレス、アドレス比較結果に基づいてメモリリクエストを選択する工程が含まれるようにすることができる。
また、第5の工程には、リクエスト選択としての優先順位を、リフレッシュリクエスト、格納されているワード番号の若い順、リクエスト発行元から送信されたメモリリクエストの順とする工程が含まれるようにすることができる。
また、第5の工程には、アクセス先のバンクがバンクビジーでないとき、及び優先度の高いメモリリクエストのアクセス先アドレスが一致していないときにリクエストセレクト信号を生成する工程が含まれるようにすることができる。
また、第3の工程には、SDRAMに対して同一SDRAM内の異なるバンクにアクセスが生じた際のバンク間サイクルタイムをバンク毎にカウントする工程が含まれるようにすることができる。
本発明に係るメモリアクセス装置及びそのアクセス方法においては、バンクビジーにより、リクエスト格納バッファにメモリリクエストが格納されているとき、リクエスト格納バッファ内のメモリリクエストのアドレスを比較して、アクセス先アドレスが一致しているか否かチェックし、メモリリクエストの順番の保証を不要とし、バンクビジーが解除されたメモリリクエストを発行するようにする。また、メモリ素子としてSDRAMを使用したとき、同一SDRAM内のバンク間サイクル管理を行い、SDRAM内のバンクの有効利用を行うようにする。
【0010】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。
【0011】
図1は、本発明のメモリアクセス装置の一実施の形態を示す図、図2は、図1のメモリアクセス装置のアクセス方法を説明するためのフローチャートである。
【0012】
図1に示すメモリアクセス装置は、リクエスト格納バッファ1−1、アドレス比較回路1−2、バンクビジーカウンタ1−3、リフレッシュチェック回路1−4、リクエスト選択回路1−5及びセレクタ1−6を備えている。
【0013】
リクエスト格納バッファ1−1は、バンクビジー時のリクエスト待避用バッファである。リクエスト格納バッファ1−1は、メモリリクエストを最大n(nワード分、ワード“0”からワード“n−1”まで)個まで格納可能とし、ワード番号の若い順番でメモリリクエストを格納する。
【0014】
たとえば、ワード番号“m” (0≦m≦n−1)を出力するケースでは、“m−1”以下のワード番号のメモリリクエストはそのままのワード番号にメモリリクエストを保持しておく。“n−1”から“m+1”のメモリリクエストは、各々“−1”したワードにシフトしてメモリリクエストを格納する。したがって、メモリリクエストが格納されるときには、最若番から格納されるため、格納されたリクエストが歯抜き状態に格納されることはない。
【0015】
アドレス比較回路1−2は、リクエスト格納バッファ1−1内に滞留しているメモリリクエストのアドレス情報を比較する。すなわち、先行しているメモリリクエストで同一アドレスにアクセスするメモリリクエストがリクエスト格納バッファ1−1内に存在しているか否かをチェックし、nワードのリクエストと入力リクエストの各々に対してアドレス比較結果を出力する。
【0016】
一例として、ワード“X”番のアドレス比較結果のチェック方法を示す。すなわち、ワード“X”番のアクセス番地を“Y”番地としたとき、ワード“X−1”からワード“0”までの全てのアクセス番地と比較する。このとき、一致しない場合には、アドレス比較結果をパスする。一カ所でもアドレスが一致した場合は、先行するメモリリクエストがアクセスする番地と一致していることが判る。
【0017】
このとき、ワード“X”のメモリリクエストは出力条件を満たさないことになる。リクエスト発行元から受信したリクエストについては、リクエスト格納バッファ1−1内に滞留している全てのメモリリクエストのアクセス番地と比較する必要がある。
【0018】
なお、アドレス比較回路1−2によるアドレス比較は、全アドレスの比較を行うことに限らず、たとえばバンクアドレスに対する部分的な比較だけでも有効である。
【0019】
バンクビジーカウンタ1−3は、図示しないメモリ素子を制御するメモリ制御部に送出するためのメモリリクエストのバンクアドレス及びコマンドからバンクサイクル分の所定のバンクビジー時間をセットする。また、クロックサイクル毎に−1カウントダウンし、カウンタ値が“0”以外のときはバンクビジーであることを通知するバンクビジーカウンタを各々バンク単位に有し、バンクビジー情報を生成する。
【0020】
また、同一メモリ素子に複数のバンクを内蔵しているSDRAMの場合は、バンク間ビジーカウンタを有する。この場合、SDRAMのバンク間サイクル分の所定バンクビジー時間をセットし、クロックサイクル毎に−1カウントダウンしてカウンタ値が“0”以外のときはバンク間ビジーであることを通知する。
【0021】
リフレッシュチェック回路1−4は、一定間隔でリフレッシュリクエストを生成し、優先度が最も高いリフレッシュリクエストを生成する。
【0022】
リクエスト選択回路1−5は、メモリ制御部に出力するメモリリクエストを選択するためのリクエストセレクト信号を生成する。この場合、リクエスト選択回路1−5は、バンクビジーカウンタ1−3からのバンクビジー情報と、リフレッシュチェック回路1−4からのリフレッシュリクエストと、リクエスト格納バッファ1−1に格納されているメモリリクエストのアクセス先バンクアドレスと、アドレス比較回路1−2からのアドレス比較結果とを入力とする。
【0023】
このときのリクエスト選択としての優先順位は、リフレッシュリクエスト、リクエスト格納バッファ1−1に格納されているワード番号の若い順、リクエスト発行元から送信されたメモリリクエストとなる。
【0024】
また、リクエストセレクト信号生成に必要な条件は、アクセス先のバンクがバンクビジーでないことである。また、優先度の高い、つまり、ワード番号が小さいメモリリクエストのアクセス先アドレスが一致していないことである。上記の条件を満たし、優先順位の一番高いリクエストを選択する。
【0025】
セレクタ1−6は、リクエストセレクト信号によりメモリリクエストを選択し、メモリ制御部にメモリリクエストを送信する。
【0026】
次に、このような構成のメモリアクセス装置によるアクセス方法を、図2を用いて説明する。
【0027】
まず、リクエスト発行元から受信したメモリリクエストのアクセス先バンクがバンクビジーでなく、先行リクエストがリクエスト格納バッファ1−1に格納されていないとき、受信したメモリリクエストをメモリ制御部に出力する。
【0028】
また、先行リクエストがリクエスト格納バッファ1−1に格納されているとき、格納されているリクエストと受信したリクエストのアクセス先バンクがビジーであるか否かをバンクビジーカウンタ1−3のバンクビジー情報からチェック(ステップ2−1)する。
【0029】
次に、リクエスト格納バッファ1−1内に滞留しているメモリリクエストと受信したメモリリクエスト各々のアドレス情報を比較する。この場合、同一アドレスにアクセスするメモリリクエストがリクエスト格納バッファ1−1内に存在しているかどうかをアドレス比較回路1−2にてチェック(ステップ2−2)し、アドレス比較結果を全てのメモリリクエストに対して出力する。
【0030】
上記のチェック結果がパスしたリクエストのうち、一番優先順位の高いリクエストを選択(ステップ2−3)して、リクエストセレクトを生成(ステップ2−4)する。
【0031】
生成されたリクエストセレクトにより、リクエスト格納バッファ1−1では、バッファ内のメモリリクエストの入替えを行う(ステップ2−5)。また、生成されたリクエストセレクトにより、セレクタ1−6を介して出力されるメモリリクエストのアクセス先バンクアドレス及びコマンドから対応するバンクビジーカウンタにバンクサイクル分だけの値をセット(ステップ2−6)する。
【0032】
このように、本実施の形態では、バンクビジーにより、リクエスト格納バッファ1−1にメモリリクエストが格納されているとき、リクエスト格納バッファ1−1内のメモリリクエストのアドレスを比較して、アクセス先アドレスが一致しているか否かをチェックするようにしたので、リクエストの順番を保証する必要がなくなり、バンクビジーが解除されたメモリリクエストを発行できるため、スループットを向上させることが可能となる。
【0033】
また、メモリ素子としてSDRAMを使用したとき、同一SDRAM内のバンク間サイクル管理を行い、SDRAM内のバンクの有効利用を行うようにしたので、さらにスループットを向上させることが可能となる。
【0034】
【発明の効果】
以上の如く本発明に係るメモリアクセス装置及びそのアクセス方法によれば、バンクビジーにより、リクエスト格納バッファにメモリリクエストが格納されているとき、リクエスト格納バッファ内のメモリリクエストのアドレスを比較して、アクセス先アドレスが一致しているか否かチェックし、メモリリクエストの順番の保証を不要とし、バンクビジーが解除されたメモリリクエストを発行するようにし、また、メモリ素子としてSDRAMを使用したとき、同一SDRAM内のバンク間サイクル管理を行い、SDRAM内のバンクの有効利用を行うようにしたので、メモリ素子の使用効率を上げることができ、メモリスループットを向上させることができる。
【図面の簡単な説明】
【図1】本発明のメモリアクセス装置の一実施の形態を示す図である。
【図2】図1のメモリアクセス装置によるアクセス方法を説明するためのフローチャートである。
【図3】従来のメモリアクセス装置を示す図である。
【符号の説明】
1−1 リクエスト格納バッファ
1−2 アドレス比較回路
1−3 バンクビジーカウンタ
1−4 リフレッシュチェック回路
1−5 リクエスト選択回路
1−6 セレクタ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a memory access device and a method for accessing a DRAM or SDRAM having a plurality of bank configurations.
[0002]
[Prior art]
As a conventional memory access device, for example, the one shown in FIG. 3 is known.
[0003]
3 includes a request storage buffer 3-1, a bank busy counter 3-2, a refresh check circuit 3-3, a bank check circuit 3-4, and a selector 3-5.
[0004]
The request storage buffer 3-1 stores a memory request received from the request issuer when bank busy or refresh busy. The bank busy counter 3-2 counts the bank busy time from the bank address of the memory request sent to the memory control unit and generates bank busy.
[0005]
The refresh check circuit 3-3 generates refresh requests at regular intervals. The bank check circuit 3-4 generates a request select from the bank busy, refresh request, and the bank address of the access destination of the request stored in the request storage buffer 3-1. The selector 3-5 selects a memory request by request selection and outputs it to the memory control unit.
[0006]
[Problems to be solved by the invention]
In the conventional memory access device described above, when a read memory request and a write memory request are stored in the request storage buffer 3-1, for example, due to bank busy, the read and write memory requests are ordered. There is a need to guarantee. Therefore, the output order of the request storage buffer 3-1 is a FIFO (FARST IN FARST OUT) operation. In other words, even if the access destination bank of the subsequent request is not busy, the preceding request cannot be overtaken, resulting in a problem that the memory throughput is reduced.
[0007]
In addition, when the SDRAM is used, there is a problem that the bank in the SDRAM is not effectively used because the inter-bank cycle management in the same SDRAM is not performed.
[0008]
The present invention has been made in view of such circumstances, and can provide a memory access device and an access method thereof that can improve memory throughput by increasing the use efficiency of memory elements. To do.
[0009]
[Means for Solving the Problems]
2. The memory access device according to claim 1, wherein the memory access device is a memory device that is a DRAM or an SDRAM incorporating a plurality of banks, and stores received memory requests in ascending order of word numbers. And comparing the address information of each of the received memory requests with the memory request staying in the request storage buffer, and checking whether a memory request accessing the same address exists in the request storage buffer , generating an address comparator circuit for outputting an address comparison results for all memory requests, a bank busy counter for generating bank busy information, a refresh request at predetermined intervals, and the refresh check circuit for outputting a refresh request, before A request selection circuit that generates a request select signal for selecting a memory request to be output to a memory control unit that controls the memory element, and a memory request is selected by the generated request select signal to the memory control unit A selector for outputting, and guaranteeing the order of memory requests for accessing the same address according to a result of checking by the address comparison circuit.
The request storage buffer outputs a memory request to the memory control unit when the received memory request is not bank busy or refresh busy, and stores up to n memory requests (for n words) when the bank request is busy. Can be.
The request storage buffer can store up to n memory requests (n words, from word “0” to word “n−1”) and stores memory requests in ascending order of word numbers. When a word number “m” (0 ≦ m ≦ n−1) is output, a memory request with a word number equal to or less than “m−1” is retained as the word number, and “n−1” Memory requests from “m” to “m + 1” can be shifted to “−1” word numbers, respectively, to store the memory requests.
The address comparison circuit can output the address comparison result of the preceding memory request for each n word request after checking whether the memory request exists in the request storage buffer.
Further, the address comparison circuit can perform comparison of bank addresses, which is a partial comparison.
The bank busy counter sets the bank busy time from the bank address and command of the memory request sent to the memory control unit, counts down by −1 every clock cycle, and is bank busy when the counter value is other than “0”. A bank busy counter for notifying that there is a bank can be provided for each bank.
The request selection circuit also issues a memory request based on the bank busy information from the bank busy counter, the refresh request from the refresh check circuit, the access destination bank address of the memory request in the request storage buffer, and the address comparison result from the address comparison circuit. Can be selected.
Further, the request selection circuit may prioritize the request selection in the order of the refresh request, the word number stored in the request storage buffer in ascending order, and the memory request transmitted from the request issuer. it can.
In addition, the request selection circuit can generate a request select signal when the bank to be accessed is not bank busy and when the access destination addresses of the memory requests having high priority do not match.
The bank busy counter may be provided with a counter for each bank, which counts the cycle time between banks when an access is made to a different bank in the same SDRAM.
The memory access method according to claim 11 is a memory access method of a memory element which is a DRAM or an SDRAM incorporating a plurality of banks, and stores received memory requests in a request storage buffer in ascending order of word numbers. a first step of, comparing the requests stored memory request each address information received with the memory request staying in the buffer memory request to access the same address is present in the request storage buffer A second step of outputting address comparison results for all memory requests, a third step of generating bank busy information, generating refresh requests at regular intervals, and outputting refresh requests And controlling the memory element. And a fifth step of generating a request select signal for selecting a memory request to be output to the memory control unit, and selecting a memory request by the generated request select signal and outputting the request to the memory control unit. And a step of guaranteeing the order of memory requests for accessing the same address according to the result of the check.
In the first step, when the received memory request is not bank busy or refresh busy, the memory request is output to the memory control unit, and when the received memory request is bank busy, a maximum of n memory requests (for n words) are stored. The process to perform can be included.
In the first step, a maximum of n memory requests (n words, from word “0” to word “n−1”) can be stored, and memory requests are stored in ascending order of word numbers. When a word number “m” (0 ≦ m ≦ n−1) is output, a memory request with a word number equal to or less than “m−1” is retained as the word number, and “n−1” Each of the memory requests from “m + 1” to “m + 1” can be shifted to the word number incremented by “−1” to include a step of storing the memory request.
The second step may include a step of checking whether a memory request is stored and then outputting an address comparison result of a preceding memory request for each n-word request. it can.
The second step may include a step of comparing bank addresses, which is a partial comparison.
In the third step, the bank busy time is set from the bank address and command of the memory request to be sent to the memory control unit, the count is decremented by −1 every clock cycle, and when the counter value is other than “0”, the bank A step of notifying that it is busy may be included.
Further, the fifth step can include a step of selecting a memory request based on bank busy information, a refresh request, an access destination bank address of a stored memory request, and an address comparison result.
Further, the fifth step includes a step in which the priority order as the request selection is the order of the refresh request, the stored word number in ascending order, and the memory request transmitted from the request issuer. be able to.
Further, the fifth step includes a step of generating a request select signal when the bank to be accessed is not bank busy and when the access destination addresses of the high priority memory requests do not match. be able to.
Further, the third step can include a step of counting, for each bank, an inter-bank cycle time when an access is made to a different bank in the same SDRAM with respect to the SDRAM.
In the memory access device and the access method thereof according to the present invention, when a memory request is stored in the request storage buffer due to bank busy, the addresses of the memory requests in the request storage buffer are compared, and the access destination address is one. It is checked whether or not the request is made, and the guarantee of the order of the memory requests is not required, and the memory request with the bank busy released is issued. Further, when an SDRAM is used as a memory element, cycle management between banks in the same SDRAM is performed so that banks in the SDRAM are effectively used.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below.
[0011]
FIG. 1 is a diagram showing an embodiment of a memory access device of the present invention, and FIG. 2 is a flowchart for explaining an access method of the memory access device of FIG.
[0012]
The memory access device shown in FIG. 1 includes a request storage buffer 1-1, an address comparison circuit 1-2, a bank busy counter 1-3, a refresh check circuit 1-4, a request selection circuit 1-5, and a selector 1-6. ing.
[0013]
The request storage buffer 1-1 is a buffer for saving a request when the bank is busy. The request storage buffer 1-1 can store up to n memory requests (n words, from word “0” to word “n−1”), and stores the memory requests in ascending order of word numbers.
[0014]
For example, in the case where the word number “m” (0 ≦ m ≦ n−1) is output, the memory request with the word number equal to or less than “m−1” is held in the same word number. Each memory request from “n−1” to “m + 1” is shifted to the word “−1” and the memory request is stored. Therefore, when a memory request is stored, the stored request is stored from the lowest number, so that the stored request is not stored in the toothless state.
[0015]
The address comparison circuit 1-2 compares the address information of the memory request staying in the request storage buffer 1-1. That is, it is checked whether or not a memory request for accessing the same address in the preceding memory request exists in the request storage buffer 1-1, and the address comparison result for each of the n word request and the input request Is output.
[0016]
As an example, a method of checking the address comparison result of the word “X” is shown. That is, when the access address of the word “X” is “Y”, it is compared with all the access addresses from the word “X−1” to the word “0”. At this time, if they do not match, the address comparison result is passed. If the addresses match even at one location, it can be seen that the preceding memory request matches the address to be accessed.
[0017]
At this time, the memory request of the word “X” does not satisfy the output condition. Requests received from the request issuer need to be compared with the access addresses of all memory requests staying in the request storage buffer 1-1.
[0018]
Note that the address comparison by the address comparison circuit 1-2 is not limited to comparison of all addresses, but is effective only by partial comparison with respect to, for example, a bank address.
[0019]
The bank busy counter 1-3 sets a predetermined bank busy time for a bank cycle from the bank address and command of a memory request to be sent to a memory control unit that controls a memory element (not shown). Each bank cycle includes a bank busy counter that counts down by −1 for each clock cycle and notifies that the bank is busy when the counter value is other than “0”, and generates bank busy information.
[0020]
In the case of an SDRAM in which a plurality of banks are built in the same memory element, an interbank busy counter is provided. In this case, a predetermined bank busy time corresponding to the inter-bank cycle of the SDRAM is set, -1 is counted down every clock cycle, and when the counter value is other than “0”, it is notified that the bank is busy.
[0021]
The refresh check circuit 1-4 generates a refresh request at regular intervals, and generates a refresh request with the highest priority.
[0022]
The request selection circuit 1-5 generates a request select signal for selecting a memory request to be output to the memory control unit. In this case, the request selection circuit 1-5 receives the bank busy information from the bank busy counter 1-3, the refresh request from the refresh check circuit 1-4, and the memory request stored in the request storage buffer 1-1. The access destination bank address and the address comparison result from the address comparison circuit 1-2 are input.
[0023]
The priority as the request selection at this time is the refresh request, the word number stored in the request storage buffer 1-1 in ascending order, and the memory request transmitted from the request issuer.
[0024]
A condition necessary for generating the request select signal is that the bank to be accessed is not bank busy. In addition, the access destination addresses of the memory requests having a high priority, that is, a small word number do not match. Select the request that satisfies the above conditions and has the highest priority.
[0025]
The selector 1-6 selects a memory request based on the request select signal, and transmits the memory request to the memory control unit.
[0026]
Next, an access method by the memory access device having such a configuration will be described with reference to FIG.
[0027]
First, when the access destination bank of the memory request received from the request issuer is not bank busy and the preceding request is not stored in the request storage buffer 1-1, the received memory request is output to the memory control unit.
[0028]
When the preceding request is stored in the request storage buffer 1-1, whether the stored request and the access destination bank of the received request are busy is determined from the bank busy information of the bank busy counter 1-3. Check (step 2-1).
[0029]
Next, the memory request staying in the request storage buffer 1-1 and the address information of each received memory request are compared. In this case, the address comparison circuit 1-2 checks whether or not a memory request for accessing the same address exists in the request storage buffer 1-1 (step 2-2), and the address comparison result is sent to all memory requests. Output for.
[0030]
Among the requests that pass the above check result, the request with the highest priority is selected (step 2-3), and a request select is generated (step 2-4).
[0031]
In response to the generated request select, the request storage buffer 1-1 replaces the memory request in the buffer (step 2-5). Further, by the generated request select, a value corresponding to the bank cycle is set to the corresponding bank busy counter from the access destination bank address and command of the memory request output via the selector 1-6 (step 2-6). .
[0032]
Thus, in this embodiment, when a memory request is stored in the request storage buffer 1-1 due to bank busy, the address of the memory request in the request storage buffer 1-1 is compared, and the access destination address Therefore, it is not necessary to guarantee the order of requests, and a memory request in which bank busy is released can be issued, so that throughput can be improved.
[0033]
Further, when an SDRAM is used as a memory element, cycle management between banks in the same SDRAM is performed and banks in the SDRAM are effectively used, so that the throughput can be further improved.
[0034]
【The invention's effect】
As described above, according to the memory access device and the access method thereof according to the present invention, when a memory request is stored in the request storage buffer due to bank busy, the addresses of the memory requests in the request storage buffer are compared and accessed. Check whether the destination addresses match, make it unnecessary to guarantee the order of memory requests, issue a memory request with the bank busy canceled, and use SDRAM as a memory element, in the same SDRAM Since the inter-bank cycle management is performed and the banks in the SDRAM are effectively used, the use efficiency of the memory elements can be increased and the memory throughput can be improved.
[Brief description of the drawings]
FIG. 1 is a diagram showing an embodiment of a memory access device of the present invention.
FIG. 2 is a flowchart for explaining an access method by the memory access device of FIG. 1;
FIG. 3 is a diagram illustrating a conventional memory access device.
[Explanation of symbols]
1-1 Request storage buffer 1-2 Address comparison circuit 1-3 Bank busy counter 1-4 Refresh check circuit 1-5 Request selection circuit 1-6 Selector
Claims (20)
受信したメモリリクエストをワード番号の若い順番から格納するリクエスト格納バッファと、
前記リクエスト格納バッファ内に滞留しているメモリリクエストと受信したメモリリクエスト各々のアドレス情報を比較し、同一アドレスにアクセスするメモリリクエストが前記リクエスト格納バッファ内に存在しているかどうかをチェックし、アドレス比較結果を全てのメモリリクエストに対して出力するアドレス比較回路と、
バンクビジー情報を生成するバンクビジーカウンタと、
一定間隔にリフレッシュリクエストを生成し、リフレッシュリクエストを出力するリフレッシュチェック回路と、
前記メモリ素子を制御するメモリ制御部に出力するためのメモリリクエストを選択するためのリクエストセレクト信号を生成するリクエスト選択回路と、
前記生成されたリクエストセレクト信号によりメモリリクエストを選択して前記メモリ制御部に出力するセレクタと
を備え、
前記アドレス比較回路のチェックの結果により前記同一アドレスにアクセスするメモリリクエストの順序を保証することを特徴とするメモリアクセス装置。A memory access device for a memory device, which is a DRAM or an SDRAM incorporating a plurality of banks,
A request storage buffer that stores received memory requests in ascending order of word number;
Compares the address information of each memory request that stays in the request storage buffer and the received memory request , checks whether a memory request that accesses the same address exists in the request storage buffer, and compares the addresses An address comparison circuit that outputs the results for all memory requests ;
A bank busy counter that generates bank busy information;
A refresh check circuit that generates refresh requests at regular intervals and outputs refresh requests;
A request selection circuit that generates a request select signal for selecting a memory request to be output to a memory control unit that controls the memory element;
A selector that selects a memory request based on the generated request select signal and outputs the selected memory request to the memory control unit,
A memory access device for guaranteeing an order of memory requests for accessing the same address according to a check result of the address comparison circuit.
受信したメモリリクエストをワード番号の若い順番からリクエスト格納バッファに格納する第1の工程と、
前記リクエスト格納バッファ内に滞留しているメモリリクエストと受信したメモリリクエスト各々のアドレス情報を比較し、同一アドレスにアクセスするメモリリクエストが前記リクエスト格納バッファ内に存在しているかどうかをチェックし、アドレス比較結果を全てのメモリリクエストに対して出力する第2の工程と、
バンクビジー情報を生成する第3の工程と、
一定間隔にリフレッシュリクエストを生成し、リフレッシュリクエストを出力する第4の工程と、
前記メモリ素子を制御するメモリ制御部に出力するためのメモリリクエストを選択するためのリクエストセレクト信号を生成する第5の工程と、
前記生成されたリクエストセレクト信号によりメモリリクエストを選択して前記メモリ制御部に出力する第6の工程と
を備え、
前記チェックの結果により前記同一アドレスにアクセスするメモリリクエストの順序を保証することを特徴とするメモリアクセス方法。A memory access method for a memory device, which is a DRAM or an SDRAM incorporating a plurality of banks,
A first step of storing received memory requests in a request storage buffer in ascending order of word numbers;
Compares the address information of each memory request that stays in the request storage buffer and the received memory request , checks whether a memory request that accesses the same address exists in the request storage buffer, and compares the addresses A second step of outputting results for all memory requests ;
A third step of generating bank busy information;
A fourth step of generating a refresh request at regular intervals and outputting the refresh request;
A fifth step of generating a request select signal for selecting a memory request to be output to a memory control unit that controls the memory element;
A sixth step of selecting a memory request based on the generated request select signal and outputting the selected memory request to the memory control unit,
A memory access method characterized by guaranteeing the order of memory requests for accessing the same address according to the result of the check.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP35098498A JP3698902B2 (en) | 1998-12-10 | 1998-12-10 | Memory access device and access method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP35098498A JP3698902B2 (en) | 1998-12-10 | 1998-12-10 | Memory access device and access method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000172552A JP2000172552A (en) | 2000-06-23 |
| JP3698902B2 true JP3698902B2 (en) | 2005-09-21 |
Family
ID=18414254
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP35098498A Expired - Fee Related JP3698902B2 (en) | 1998-12-10 | 1998-12-10 | Memory access device and access method thereof |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3698902B2 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4934857B2 (en) * | 2007-10-10 | 2012-05-23 | エヌイーシーコンピュータテクノ株式会社 | Memory access control device, computer, memory access control method, and memory access control program |
| KR20130065957A (en) | 2011-12-12 | 2013-06-20 | 숭실대학교산학협력단 | Control apparatus of memory and control method thereof, and recording medium storing program for executing method of the same in computer |
| KR101414453B1 (en) | 2014-03-14 | 2014-07-03 | 숭실대학교산학협력단 | Control apparatus of memory and control method thereof, and recording medium storing program for executing method of the same in computer |
| CN118036098B (en) * | 2024-04-11 | 2024-07-09 | 北京智芯微电子科技有限公司 | Buffer memory, chip, cache access control method, device and equipment |
-
1998
- 1998-12-10 JP JP35098498A patent/JP3698902B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000172552A (en) | 2000-06-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2703668B2 (en) | Data transfer control device and magnetic disk control device | |
| CN100354796C (en) | Methods and appts. for detecting data collision on data bus for different times of memory access execution | |
| US20150046642A1 (en) | Memory command scheduler and memory command scheduling method | |
| US11694735B2 (en) | Memory controller and method of controlling the memory controller | |
| JP5034551B2 (en) | Memory controller, semiconductor memory access control method and system | |
| JP2011060162A (en) | Memory control device | |
| WO2022127874A1 (en) | Multi-port shared memory management system and method based on random address | |
| US7093067B2 (en) | DRAM architecture enabling refresh and access operations in the same bank | |
| US6823426B2 (en) | System and method of data replacement in cache ways | |
| US6859857B2 (en) | Memory interface circuit | |
| JP2014154119A (en) | Memory controller and semiconductor storage device | |
| US10157123B1 (en) | Methods and apparatus for a scheduler for memory access | |
| JP3698902B2 (en) | Memory access device and access method thereof | |
| US9116814B1 (en) | Use of cache to reduce memory bandwidth pressure with processing pipeline | |
| JP6004463B2 (en) | Storage device and control method thereof | |
| US8484411B1 (en) | System and method for improving access efficiency to a dynamic random access memory | |
| US6643718B1 (en) | Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure | |
| JP3265226B2 (en) | Bank access control method | |
| JP2001109659A (en) | Memory control system | |
| US20240347095A1 (en) | Memory control apparatus and memory control method | |
| JP7719826B2 (en) | MEMORY CONTROLLER, METHOD FOR CONTROLLING MEMORY CONTROLLER, AND PROGRAM - Patent application | |
| US20250199722A1 (en) | Memory controller, control method and memory device | |
| EP4386754A1 (en) | System for refreshing dynamic random access memory | |
| JPH02192096A (en) | Selective refresh control device | |
| JP2026056893A (en) | Memory controller and method for controlling the memory controller |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050314 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050706 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090715 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100715 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110715 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110715 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120715 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120715 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130715 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |