[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2011100273A - Memory control circuit - Google Patents

Memory control circuit Download PDF

Info

Publication number
JP2011100273A
JP2011100273A JP2009254166A JP2009254166A JP2011100273A JP 2011100273 A JP2011100273 A JP 2011100273A JP 2009254166 A JP2009254166 A JP 2009254166A JP 2009254166 A JP2009254166 A JP 2009254166A JP 2011100273 A JP2011100273 A JP 2011100273A
Authority
JP
Japan
Prior art keywords
bank
memory
prefetch
memory access
command
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
JP2009254166A
Other languages
Japanese (ja)
Inventor
Kohei Murayama
公平 村山
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009254166A priority Critical patent/JP2011100273A/en
Publication of JP2011100273A publication Critical patent/JP2011100273A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently perform memory access. <P>SOLUTION: The page error of a memory access request received from one or a plurality of bus masters is detected. When the page error is detected, a bank which has no dependency relationship with the memory access request with the page error occurring therein is determined. When a prefetch address is designated with respect to a page activated by the determined bank, the prefetch address is designated in the period of processing concerning the page error, thereby to issue a prefetch command. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、メモリ制御回路に関する。   The present invention relates to a memory control circuit.

DRAMの内部は、複数のバンクで構成され、各バンクは、ページと称される複数の領域に分割されている。図5に、DRAMへのメモリアクセス時の処理に係るフローチャートを示す。DRAMに対するメモリアクセスでは、バンク及び行アドレスを指定し、ページを活性化させるコマンド(アクティブコマンド)を発行することによりページの選択が行われる(以下、ページオープンと称する。)。その後に、列アドレスを指定し、リードコマンド又はライトコマンドといった列コマンド(メモリアクセスコマンド)を発行することでDRAMに対するメモリアクセスが実現される。継続して同一のページ内のアドレスに対してメモリアクセスする場合には、再度ページオープン処理を行う必要は無く、列アドレスを指定し、メモリアクセスコマンドを発行することによりアクセス可能である。
しかしながら、同一バンク内で活性化されているページ以外の別のページへメモリアクセスする場合には、一旦バンク内の活性化されているページを非活性化するコマンド(プリチャージコマンド)を発行する。その後に、アクセス対象のページオープンに係る処理を行った後に、メモリアクセスコマンドを発行する必要がある。このように、活性化されているページ以外の別のページへメモリアクセスすることは、ページミスと称され、それに要するプリチャージコマンドの発行とページオープンに係る処理とに要する期間は、ページミスペナルティと称される。
The inside of the DRAM is composed of a plurality of banks, and each bank is divided into a plurality of areas called pages. FIG. 5 shows a flowchart relating to processing at the time of memory access to the DRAM. In memory access to a DRAM, a page is selected by designating a bank and a row address and issuing a command (active command) for activating the page (hereinafter referred to as page open). Thereafter, by specifying a column address and issuing a column command (memory access command) such as a read command or a write command, memory access to the DRAM is realized. When memory access is continuously performed on addresses in the same page, there is no need to perform page open processing again, and access is possible by designating a column address and issuing a memory access command.
However, when memory access is made to another page other than the activated page in the same bank, a command (precharge command) for deactivating the activated page in the bank is issued. After that, it is necessary to issue a memory access command after performing processing related to opening the page to be accessed. As described above, memory access to another page other than the activated page is referred to as a page miss, and the period required for issuing the precharge command required for the page and the processing related to the page open is the page miss penalty. It is called.

一般にLSIを用いて構築されるシステムは、内部にCPUやハードウエア処理モジュールを搭載すると共に、外部記憶デバイスを主記憶としてDRAMを搭載し、システムとしての機能を実現している。半導体に関する技術の向上に伴い、LSI内部の動作周波数が高速化しており、LSI内部の処理を高速に行うことが可能になっている。しかしながら、LSI内部の処理において高速化が進む一方、DRAMといった外部記憶デバイスへのアクセス時間の向上は少ない。
近年、主流となっているDDR(Double Data Rate)と称されるクロックの立ち上がりと立ち下がりとの双方に同期してデータ転送するメモリデバイスでは、メモリアクセス帯域が大幅に改善されている。しかしながら、メモリデバイスへのアクセス応答時間は、改善されていない。LSI内部の動作周波数の向上に対し、メモリデバイスへのアクセス時間が変わらない場合、特に読み出し(リード)を中心に行う処理においては、その応答に要するクロック数が増加する傾向にあり、周波数向上分の性能改善が困難となっている。
このようなリード時の応答時間の性能への影響を回避する手法としてプリフェッチと称される手法が一般的に用いられている。プリフェッチとは、データが必要となるサイクルに先立って必要となるデータを保持し、データを必要となったタイミングで、保持されたデータを使用する手法である。プリフェッチを用いることによりメモリデバイスへのアクセス応答時間を隠蔽し、バスマスタは見かけ上、短時間でリードに係る処理を終了することが可能となるため、プリフェッチは、システムでの処理性能の向上に寄与し得る。
In general, a system constructed using an LSI incorporates a CPU and a hardware processing module therein, and also incorporates a DRAM with an external storage device as a main memory, thereby realizing a system function. Along with improvements in technology related to semiconductors, the operating frequency inside the LSI has been increased, and the processing inside the LSI can be performed at high speed. However, while the processing speed inside the LSI advances, the access time to an external storage device such as a DRAM is little improved.
2. Description of the Related Art In recent years, memory access bandwidth has been greatly improved in memory devices that transfer data in synchronization with both rising and falling of a clock called DDR (Double Data Rate), which has become the mainstream in recent years. However, the access response time to the memory device has not been improved. If the access time to the memory device does not change with respect to the improvement of the operating frequency inside the LSI, the number of clocks required for the response tends to increase, especially in the processing performed mainly for reading (reading). It has become difficult to improve performance.
A technique called prefetch is generally used as a technique for avoiding such an influence on the response time performance at the time of reading. Prefetch is a technique of holding necessary data prior to a cycle in which data is required, and using the held data at a timing when the data is required. By using prefetch, the access response time to the memory device is concealed, and the bus master can apparently finish the processing related to reading in a short time, so prefetch contributes to the improvement of processing performance in the system. Can do.

そこで、メモリデバイスに対するアクセス履歴やアクセス特性情報を参照して、連続領域アクセスの傾向がある場合は、バスマスタからのリード要求(メモリアクセスコマンドの発行)に先立ちプリフェッチを行う技術が開示されている(特許文献1参照。)。また、過去のアクセス履歴と過去のアクセスのアドレス差分とを保持して参照し、過去のアドレス差分と同一であった場合に、そのアドレス差分を持つメモリ領域についてプリフェッチする技術が開示されている(特許文献2参照。)。これらの先行技術では、バスマスタからのメモリアクセスに先立ちプリフェッチコマンドを発行してデータを保持することで、短期間でリードに係る処理を終了することが可能となる。   Therefore, a technique is disclosed in which prefetch is performed prior to a read request (issue of a memory access command) from a bus master when there is a tendency for continuous area access by referring to access history and access characteristic information for a memory device ( (See Patent Document 1). Also, a technique is disclosed in which a past access history and a past access address difference are stored and referenced, and when the past address difference is the same, the memory area having the address difference is prefetched ( (See Patent Document 2). In these prior arts, by issuing a prefetch command prior to memory access from the bus master and holding the data, it is possible to complete the read processing in a short period of time.

特開平09−198300号公報JP 09-198300 A 特開平11−167520号公報JP-A-11-167520

しかしながら、従来のプリフェッチの手法においては、プリフェッチのためのプリフェッチコマンドが特定の事象やタイミングにて発行される。このため、複数のバスマスタや複数のプロセスからのメモリアクセスがプリフェッチアクセスと競合した場合、メモリアクセスのアクセス時間を増加させるといった問題が生じていた。例えば、特許文献1に示されるようなプリフェッチの事象が発生すると同時に、あるバスマスタからのメモリアクセスが競合した場合は、バスマスタからのメモリアクセスが行われる以前にプリフェッチアクセス(リード処理)が行われることになる。よって、バスマスタからの明示的なメモリアクセスの応答時間が長くなりバスマスタの処理性能を低下させてしまう。
また、特許文献2に記載の技術おいては、あるアドレス差分をもったメモリ領域のプリフェッチアクセスと他のバスマスタからのメモリアクセスとでページミスが発生すると、ページミスペナルティが印加されて処理性能を低下させるおそれがある。図6に、バスマスタからのメモリアクセスとプリフェッチアクセスとの競合に関する影響を表す波形図を示す。ここでは、a及びbのメモリアクセスがバスマスタからのアクセスであり、a及びbともに、ページヒットのアクセスであると仮定する。
図6(a)では、プリフェッチコマンドが発行されていない場合を示し、図6(b)では、aとbとの転送間でcというプリフェッチアクセスが挿入された場合を示している。このときcは、a及びbのページに対してページミスとなるアドレス空間へのアクセスとする。図6(a)では、3サイクルでメモリアクセスコマンドの発行が行われているのに対して、図6(b)では、aとbとの間にcのプリフェッチコマンドを発行するために、ページミスペナルティが発生した上でリードコマンドが発行される。更にbへのアクセス発行時には再度ページミスペナルティが加えられるために、本来バスマスタが必要とするアクセスに対して余分なメモリアクセスの応答時間が加算されてしまう。
このように、プリフェッチアクセスが現在必要とされるメモリアクセスを阻害してしまい、ある処理モジュールの性能の向上を引き出すためのプリフェッチが他の処理の性能を低下させる問題がある。
However, in the conventional prefetch method, a prefetch command for prefetch is issued at a specific event or timing. For this reason, when memory access from a plurality of bus masters or a plurality of processes competes with prefetch access, there has been a problem that the access time of memory access is increased. For example, when a memory access from a certain bus master conflicts with the occurrence of a prefetch event as disclosed in Patent Document 1, prefetch access (read processing) is performed before memory access from the bus master is performed. become. Therefore, the response time of the explicit memory access from the bus master becomes long and the processing performance of the bus master is lowered.
In the technique described in Patent Document 2, when a page miss occurs between a prefetch access of a memory area having a certain address difference and a memory access from another bus master, a page mispenalty is applied to improve processing performance. May decrease. FIG. 6 is a waveform diagram showing the influence on the competition between the memory access from the bus master and the prefetch access. Here, it is assumed that the memory accesses a and b are accesses from the bus master, and both a and b are page hit accesses.
FIG. 6A shows a case where a prefetch command has not been issued, and FIG. 6B shows a case where a prefetch access c is inserted between transfers of a and b. At this time, c is an access to the address space that causes a page miss for pages a and b. In FIG. 6A, a memory access command is issued in three cycles, whereas in FIG. 6B, a page prefetch command is issued between a and b. A read command is issued after a miss penalty has occurred. Further, since a page miss penalty is added again when an access to b is issued, an extra memory access response time is added to the access originally required by the bus master.
As described above, the prefetch access hinders the memory access that is currently required, and there is a problem that the prefetch for extracting the performance improvement of a certain processing module lowers the performance of other processing.

本発明はこのような問題点に鑑みなされたもので、メモリアクセスをより効率的にすることを目的とする。   The present invention has been made in view of such problems, and an object thereof is to make memory access more efficient.

そこで、本発明は、バンクを有する1つ又は複数のバスマスタからのメモリアクセス要求を受けてメモリデバイスへのコマンドを発行するメモリ制御回路であって、前記メモリデバイスに対するプリフェッチのアドレスを指定する指定手段と、前記1つ又は複数のバスマスタより受けたメモリアクセス要求のページミスを検出する検出手段と、前記検出手段によりページミスが検出されると、前記ページミスが発生したメモリアクセス要求と依存関係がないバンクを決定する決定手段と、前記指定手段により、前記決定手段により決定されたバンクで活性化されているページに対するプリフェッチのアドレスが指定されると、前記ページミスに係る処理の期間に前記プリフェッチのアドレスを指定してプリフェッチコマンドを発行する発行手段とを有することを特徴とする。   Accordingly, the present invention provides a memory control circuit for issuing a command to a memory device in response to a memory access request from one or a plurality of bus masters having a bank, and designating means for designating a prefetch address for the memory device Detecting means for detecting a page miss in a memory access request received from the one or more bus masters; and when a page miss is detected by the detecting means, the memory access request in which the page miss has occurred has a dependency relationship. When a prefetch address for a page activated in the bank determined by the determination unit is specified by a determination unit that determines a bank that does not exist, the prefetch is performed during the processing related to the page miss. Issuer that issues a prefetch command with the specified address Characterized in that it has and.

本発明によれば、メモリアクセスをより効率的にすることができる。   According to the present invention, memory access can be made more efficient.

メモリ制御回路を含むシステムに係る構成の例を示す図である。It is a figure which shows the example of a structure concerning the system containing a memory control circuit. メモリバンク管理機構で管理されるバンク管理情報の例を示す図である。It is a figure which shows the example of the bank management information managed by a memory bank management mechanism. メモリ制御回路の処理に係るフローチャートを示す図である。It is a figure which shows the flowchart which concerns on the process of a memory control circuit. メモリバンク管理機構で管理されるバンク管理情報の例を示す図である。It is a figure which shows the example of the bank management information managed by a memory bank management mechanism. メモリアクセス制御の処理に係るフローチャートを示す図である。It is a figure which shows the flowchart concerning the process of memory access control. メモリアクセス波形の例を示す図である。It is a figure which shows the example of a memory access waveform.

以下、本発明の実施形態について図面に基づいて説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1に、本実施形態に係るメモリ制御回路を含むシステムに係る構成の例を示す。本システムは、1つ又は複数のバスマスタ103を含んで構成される。バスマスタ103は、バス102を介してメモリコントローラ100(メモリ制御回路)に接続され、メモリコントローラ100を介して外部に接続されるメモリデバイス101へのメモリアクセス要求(コマンド等)を発行する。本実施形態では、メモリデバイス101として、行コマンド及び列コマンドに分割してアクセスされるダイナミックランダムアクセスメモリ(DRAM)を想定する。メモリコントローラ100は、バスマスタ103のメモリアクセス要求を受信するバスインターフェース109を有し、メモリアクセス要求は、コマンドバッファ108を介してメモリアクセス制御部104に順次転送される。
プリフェッチアドレスリスト106は、プリフェッチの候補となるアドレス(プリフェッチアドレス)を保持する。本実施形態では、バスマスタ103からのメモリアクセス要求(リードアクセス)を履歴情報として保持し、履歴情報からバンク毎にプリフェッチアドレスを算出する。例えば、バンク0の0番地へのリードアクセスが発行されると、プリフェッチアドレスリスト106には、バンク0の20番地をプリフェッチアドレスとして保持する。プリフェッチアドレスリスト106には、少なくともバンク毎のプリフェッチアドレスがリストとして保持されるものとする。例えば、4バンクのメモリデバイスが4チップセレクト(デバイス)分接続されるシステムにおいては、プリフェッチアドレスリスト106には、少なくとも16アドレスが保持される。本実施形態においては、プリフェッチアドレスをリードアクセス受信時に、その近傍のアドレス(近傍アドレス)として採用したが、本主旨を逸脱しない限り種々の変更が可能である。
FIG. 1 shows an example of a configuration relating to a system including a memory control circuit according to the present embodiment. This system includes one or more bus masters 103. The bus master 103 is connected to the memory controller 100 (memory control circuit) via the bus 102 and issues a memory access request (command or the like) to the memory device 101 connected to the outside via the memory controller 100. In the present embodiment, it is assumed that the memory device 101 is a dynamic random access memory (DRAM) that is accessed by being divided into row commands and column commands. The memory controller 100 includes a bus interface 109 that receives a memory access request from the bus master 103, and the memory access request is sequentially transferred to the memory access control unit 104 via the command buffer 108.
The prefetch address list 106 holds addresses (prefetch addresses) that are candidates for prefetch. In this embodiment, a memory access request (read access) from the bus master 103 is held as history information, and a prefetch address is calculated for each bank from the history information. For example, when a read access to the 0 address of the bank 0 is issued, the prefetch address list 106 holds the 20 address of the bank 0 as a prefetch address. The prefetch address list 106 holds at least prefetch addresses for each bank as a list. For example, in a system in which memory devices of 4 banks are connected for 4 chip selections (devices), the prefetch address list 106 holds at least 16 addresses. In the present embodiment, the prefetch address is adopted as a neighboring address (neighboring address) at the time of read access reception, but various changes can be made without departing from the gist of the present invention.

プリフェッチ制御部107は、後述するメモリアクセス制御部104からのバンク及び行アドレスの指定に従い、指定されたバンクと行アドレスとが合致するプリフェッチアドレスをプリフェッチアドレスリスト106から選択する。そして、選択されたプリフェッチアドレスは、メモリアクセス制御部104に伝達され、プリフェッチコマンドがメモリデバイス101に対して発行される。アドレス指定を行うメモリアクセス制御部104によってプリフェッチされたデータ(リードデータ)は、プリフェッチアドレスと関連付けられてプリフェッチバッファ110に保持される。
バスマスタ103より発行されたメモリアクセス要求は、バスインターフェース109を介してコマンドバッファ108へ伝達される。コマンドバッファ108は、リード(読み出しアクセス)又はライト(書き込みアクセス)のアクセス方向を検出する。また、コマンドバッファ108は、アクセス対象のアドレスと、アクセス方向と、プリフェッチバッファ110に保持されているプリフェッチされたアドレスとに係る比較を行う。
例えば、メモリアクセスが読み出し方向であり、アクセス対象のアドレスがプリフェッチバッファ110に保持されているアドレスと同一である場合、コマンドバッファ108は、バスインターフェース109を介してバスマスタ103にリードデータを送信する。そして、コマンドバッファ108は、該当メモリアクセス要求をコマンドバッファ108から削除する。
メモリアクセスが書き込み方向であり、アクセス対象のアドレスがプリフェッチバッファ110に保持されているアドレスと同一である場合は、コマンドバッファ108は、プリフェッチバッファ110に保持されている該当エントリーを廃棄又は無効化を行う。このとき、該当メモリアクセス要求は、コマンドバッファ108に一旦保持され、あるタイミングでメモリアクセス制御部104に伝達される。上記2つの場合に該当しないときは、該当メモリアクセス要求は、コマンドバッファ108に一旦保持され、あるタイミングでメモリアクセス制御部104に伝達される。
The prefetch control unit 107 selects from the prefetch address list 106 a prefetch address that matches the designated bank and row address in accordance with the bank and row address designation from the memory access control unit 104 described later. The selected prefetch address is transmitted to the memory access control unit 104, and a prefetch command is issued to the memory device 101. Data (read data) prefetched by the memory access control unit 104 that performs address designation is stored in the prefetch buffer 110 in association with the prefetch address.
A memory access request issued from the bus master 103 is transmitted to the command buffer 108 via the bus interface 109. The command buffer 108 detects the access direction of read (read access) or write (write access). In addition, the command buffer 108 performs a comparison related to the access target address, the access direction, and the prefetched address held in the prefetch buffer 110.
For example, when the memory access is in the read direction and the access target address is the same as the address held in the prefetch buffer 110, the command buffer 108 transmits read data to the bus master 103 via the bus interface 109. Then, the command buffer 108 deletes the corresponding memory access request from the command buffer 108.
When the memory access is in the writing direction and the access target address is the same as the address held in the prefetch buffer 110, the command buffer 108 discards or invalidates the corresponding entry held in the prefetch buffer 110. Do. At this time, the corresponding memory access request is temporarily held in the command buffer 108 and transmitted to the memory access control unit 104 at a certain timing. When the above two cases do not apply, the corresponding memory access request is temporarily held in the command buffer 108 and transmitted to the memory access control unit 104 at a certain timing.

メモリアクセス制御部104は、メモリバンク管理機構105を有している。メモリバンク管理機構105は、発行されたメモリアクセス要求のアドレスよりメモリデバイス101のバンクアドレス、行アドレス、及び列アドレスを算出すると共に、メモリデバイス101の各バンクの活性化状態を参照する。そして、メモリバンク管理機構105は、接続されるメモリデバイス101の各バンクについて、現在活性化されている行アドレス情報(バンク管理情報)を保持している。
図2に、メモリバンク管理機構105におけるバンク管理情報の例を示す。図2では、2つのデバイスで各デバイスが4バンクの構成のメモリデバイス101に関するバンク管理情報を示している。デバイス(Device)とバンク(Bank)との組み合わせに対して、ページがオープン状態であるか否かを示すOpenFlag(Open Flag)とオープンとなる行アドレス(Row Address)とをテーブルとして保持している。
例えば、デバイス0のバンク0の組は、ページがクローズされた状態であり、デバイス0のバンク1の組は、行アドレス(0x1234)がオープン状態であることを示している。
The memory access control unit 104 has a memory bank management mechanism 105. The memory bank management mechanism 105 calculates the bank address, row address, and column address of the memory device 101 from the issued memory access request address, and refers to the activation state of each bank of the memory device 101. The memory bank management mechanism 105 holds currently activated row address information (bank management information) for each bank of the connected memory device 101.
FIG. 2 shows an example of bank management information in the memory bank management mechanism 105. FIG. 2 shows bank management information related to the memory device 101 having two devices, each device having a 4-bank configuration. For a combination of a device (Device) and a bank (Bank), an Open Flag (Open Flag) indicating whether or not the page is open and a row address (Row Address) to be opened are held as a table. .
For example, the set of bank 0 of device 0 is in a state in which the page is closed, and the set of bank 1 in device 0 indicates that the row address (0x1234) is in an open state.

また、メモリアクセス制御部104は、バスマスタ103からのメモリアクセス要求について、外部のメモリデバイス101との通信のためのアクセスプロトコルに適した変換を行い、メモリアクセスコマンドの発行処理を実施する。図3に、メモリアクセス制御部104の処理に係るフローチャートを示す。
メモリアクセス制御部104は、メモリアクセス要求より算出されたバンクアドレス及び行アドレスと、メモリバンク管理機構105に保持されているアクセス対象のバンクに対応する活性化されている行アドレスとに係る比較を行う。当該デバイスとバンクの組について、ページオープンの状態で保持されている行アドレスと、発行されたメモリアクセス要求の行アドレスとが同一であれば、メモリアクセス制御部104は、ページヒットとして列コマンドを発行してメモリアクセスを行う。
他方、異なる行アドレスである場合は、メモリアクセス制御部104は、ページミスの処理として以下の処理を実施する。メモリアクセス制御部104は、ページミスが発生すると判別すると、該当活性化されているバンクについてのプリチャージコマンドを発行する。そして、メモリアクセス制御部104は、該当バンクと依存関係がない、かつ活性化されているバンクと行アドレスとの組み合わせをプリフェッチ制御部107に対して通知を行う。その後、メモリアクセス制御部104は、プリフェッチ制御部107よりプリフェッチアドレスの通知を受ける。ここでいう、該当バンクと依存関係がないバンクとは、該当バンクのプリチャージ中に列コマンドが発行可能なバンクのことである。依存関係がないバンクが複数存在した場合、バンク選択の方法は任意である。本実施形態では、依存関係がないバンクのうち最近アクセスされたバンクを選択(決定)するものとする。
In addition, the memory access control unit 104 performs a conversion suitable for an access protocol for communication with the external memory device 101 for a memory access request from the bus master 103, and performs a memory access command issue process. FIG. 3 shows a flowchart relating to the processing of the memory access control unit 104.
The memory access control unit 104 compares the bank address and row address calculated from the memory access request with the activated row address corresponding to the access target bank held in the memory bank management mechanism 105. Do. If the row address held in the page open state for the device and bank pair is the same as the row address of the issued memory access request, the memory access control unit 104 issues a column command as a page hit. Issue memory access.
On the other hand, if the row address is different, the memory access control unit 104 performs the following process as a page miss process. When determining that a page miss occurs, the memory access control unit 104 issues a precharge command for the corresponding activated bank. Then, the memory access control unit 104 notifies the prefetch control unit 107 of a combination of an activated bank and a row address that is not dependent on the corresponding bank. Thereafter, the memory access control unit 104 receives a prefetch address notification from the prefetch control unit 107. The bank having no dependency relationship with the corresponding bank is a bank that can issue a column command during the precharge of the corresponding bank. When there are a plurality of banks having no dependency, the bank selection method is arbitrary. In the present embodiment, it is assumed that a bank that has been accessed recently is selected (determined) from banks having no dependency relationship.

図4に、本実施形態におけるメモリバンク管理機構105で保持されるバンク管理情報の例を示す。バンク管理情報には、デバイス(Device)、バンク(Bank)、OpenFlag(Open Flag)、行アドレス(Row Address)に加え、最近アクセスされた順番を示すアクセス履歴(History)が含まれる。図4(a)の例では、最近アクセスされたデバイス及びバンクの組は(0、1)であり、その次が(1、0)であることを示している。
図4(b)では、図4の(a)の状態からデバイス0のバンク2に対して行アドレス(0x0400)へのページミスに係るメモリアクセス要求が発行された場合のバンク管理情報の例を示す。デバイス及びバンクの組(0、2)が最新のアクセスとして示され、その他のデバイス及びバンクの組の履歴情報をそれぞれ更新することで最新の状態を保持している。
本実施形態では、同一のデバイスであっても、依存関係がないバンクである場合、本デバイスを含めたデバイスを対象として最近アクセスされた組み合わせが選択され、プリフェッチ制御部107に対して本組み合わせが通知される。この例では、組み合わせとして、デバイス0、バンク1、行アドレス(0x1234)が選択される。なお、上記場合において、依存関係があるバンクを有するデバイスであるときは、他のデバイスを対象として最近アクセスされた組み合わせ(例えば、デバイス1、バンク0、行アドレス(0x0040))が選択される構成を採用してもよい。
FIG. 4 shows an example of bank management information held by the memory bank management mechanism 105 in this embodiment. The bank management information includes an access history (History) indicating a recently accessed order in addition to a device (Bank), a bank (Bank), an Open Flag (Open Flag), and a row address (Row Address). In the example of FIG. 4A, the recently accessed device and bank pair is (0, 1), and the next is (1, 0).
4B shows an example of bank management information when a memory access request related to a page miss to the row address (0x0400) is issued to the bank 2 of the device 0 from the state of FIG. Show. The device and bank group (0, 2) is shown as the latest access, and the latest state is maintained by updating the history information of the other device and bank groups.
In the present embodiment, even if the same device is a bank having no dependency, a combination that has been accessed recently for the device including this device is selected, and this combination is selected for the prefetch control unit 107. Be notified. In this example, device 0, bank 1, and row address (0x1234) are selected as a combination. In the above case, when the device has a bank having a dependency relationship, a combination (for example, device 1, bank 0, row address (0x0040)) that has been accessed recently for another device is selected. May be adopted.

メモリアクセス制御部104は、プリフェッチ制御部107より受信したプリフェッチアドレスに対するプリフェッチリード(プリフェッチコマンド)を発行し、メモリデバイス101からの読み出し結果(リードデータ)をプリフェッチバッファ110に伝達する。メモリアクセス制御部104は、プリフェッチコマンドを発行後、ページミスに係る処理のプリチャージ期間の終了を待って行アドレスの活性化を行い、バスマスタ103から要求されたメモリアクセス(列コマンド)をメモリデバイス101に対して発行する。なお、バスマスタ103より発行されたデバイスとバンクの組のページがオープンされていない場合は、メモリアクセス制御部104は、該当バンクの活性化を行う。
ここで、メモリアクセス制御部104は、活性化コマンド(アクティブコマンド)の発行と列コマンドの発行との間にプリフェッチリード(プリフェッチコマンド)を発行できるか否かの判定を行う。より具体的には、メモリアクセス制御部104に別途動作パラメータとして設定されるRAS−CASディレイ値(tRAS)を参照する。RAS−CASディレイ後に発行される列コマンドによるメモリデバイス101に対するデータ転送とプリフェッチコマンドによるデータ転送の衝突の有無を判定する。衝突しないと判定した場合は、メモリアクセス制御部104は、活性化コマンド(アクティブコマンド)の発行に引き続き、プリフェッチコマンドを発行し、列コマンドを発行する。その際、プリフェッチコマンドの発行先のアドレス(プリフェッチアドレス)の選択については、上記に示す内容と同様である。
The memory access control unit 104 issues a prefetch read (prefetch command) for the prefetch address received from the prefetch control unit 107, and transmits a read result (read data) from the memory device 101 to the prefetch buffer 110. After issuing the prefetch command, the memory access control unit 104 activates the row address after waiting for the end of the precharge period of the processing related to page miss, and sends the memory access (column command) requested from the bus master 103 to the memory device. Issue to 101. If the page of the device and bank set issued by the bus master 103 is not opened, the memory access control unit 104 activates the corresponding bank.
Here, the memory access control unit 104 determines whether or not a prefetch read (prefetch command) can be issued between the issue of the activation command (active command) and the issue of the column command. More specifically, the RAS-CAS delay value (tRAS) separately set as an operation parameter in the memory access control unit 104 is referred to. It is determined whether or not there is a collision between data transfer to the memory device 101 by the column command issued after the RAS-CAS delay and data transfer by the prefetch command. If it is determined that there is no collision, the memory access control unit 104 issues a prefetch command and issues a column command following the issue of the activation command (active command). At this time, the selection of the address (prefetch address) to which the prefetch command is issued is the same as that described above.

本実施形態では、プリチャージコマンドの発行、プリフェッチ、ページミスに係る処理のバンク活性化、メモリアクセスコマンドの発行というシーケンスを示している。しかしながら、本主旨は、ページミスペナルティ時にプリフェッチコマンドを発行することであり、上記シーケンスに限られるものではない。また、ページミスペナルティのサイクル如何によっては、プリフェッチコマンドを複数回発行することも可能である。
上述した構成によれば、プリフェッチコマンドの発行時に生じていたバスマスタ103へのメモリアクセスの応答時間の増加を低減すると共に、プリフェッチによる性能の向上の効果を得ることができる。また、メモリバス効率を低下させる要因となるページミスペナルティにおいてプリフェッチコマンドを発行することにより、システムが使用するメモリバス効率が改善され、システムの性能の向上を可能とする。
In this embodiment, a sequence of issuing a precharge command, prefetching, activating a bank related to a page miss, and issuing a memory access command is shown. However, the main point is that a prefetch command is issued at the time of a page miss penalty, and the present invention is not limited to the above sequence. Further, depending on the page miss penalty cycle, the prefetch command can be issued a plurality of times.
According to the above-described configuration, it is possible to reduce the increase in the response time of the memory access to the bus master 103 that has occurred at the time of issuing the prefetch command, and to obtain the effect of improving the performance by the prefetch. In addition, by issuing a prefetch command at a page miss penalty that causes a decrease in memory bus efficiency, the memory bus efficiency used by the system is improved, and the performance of the system can be improved.

<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
<Other embodiments>
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   The preferred embodiments of the present invention have been described in detail above, but the present invention is not limited to such specific embodiments, and various modifications can be made within the scope of the gist of the present invention described in the claims.・ Change is possible.

100 メモリ制御回路、104 メモリアクセス制御部、105 メモリバンク管理機構、106 プリフェッチアドレスリスト、107 プリフェッチ制御部、108 コマンドバッファ、109 バスインターフェース、110 プリフェッチバッファ   DESCRIPTION OF SYMBOLS 100 Memory control circuit, 104 Memory access control part, 105 Memory bank management mechanism, 106 Prefetch address list, 107 Prefetch control part, 108 Command buffer, 109 Bus interface, 110 Prefetch buffer

Claims (3)

バンクを有する1つ又は複数のバスマスタからのメモリアクセス要求を受けてメモリデバイスへのコマンドを発行するメモリ制御回路であって、
前記メモリデバイスに対するプリフェッチのアドレスを指定する指定手段と、
前記1つ又は複数のバスマスタより受けたメモリアクセス要求のページミスを検出する検出手段と、
前記検出手段によりページミスが検出されると、前記ページミスが発生したメモリアクセス要求と依存関係がないバンクを決定する決定手段と、
前記指定手段により、前記決定手段により決定されたバンクで活性化されているページに対するプリフェッチのアドレスが指定されると、前記ページミスに係る処理の期間に前記プリフェッチのアドレスを指定してプリフェッチコマンドを発行する発行手段と
を有することを特徴とするメモリ制御回路。
A memory control circuit that issues a command to a memory device in response to a memory access request from one or more bus masters having a bank,
Designating means for designating a prefetch address for the memory device;
Detecting means for detecting a page miss of a memory access request received from the one or more bus masters;
When a page miss is detected by the detecting unit, a determining unit that determines a bank that has no dependency relationship with the memory access request in which the page miss has occurred;
When the prefetch address for the page activated in the bank determined by the determining means is specified by the specifying means, the prefetch command is specified by specifying the prefetch address during the processing related to the page miss. A memory control circuit comprising issuing means for issuing.
前記指定手段は、前記1つ又は複数のバスマスタより受けたメモリアクセス要求についてのアクセス履歴より、前記メモリアクセス要求に係る近傍アドレスを指定することを特徴とする請求項1記載のメモリ制御回路。   2. The memory control circuit according to claim 1, wherein the specifying unit specifies a neighborhood address related to the memory access request from an access history of the memory access request received from the one or more bus masters. 前記決定手段は、依存関係がないバンクが複数存在した場合、前記複数のバンクのうち最近アクセスされたバンクを選択することを特徴とする請求項1又は2記載のメモリ制御回路。   3. The memory control circuit according to claim 1, wherein, when there are a plurality of banks having no dependency relationship, the determining unit selects a bank accessed recently among the plurality of banks.
JP2009254166A 2009-11-05 2009-11-05 Memory control circuit Pending JP2011100273A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009254166A JP2011100273A (en) 2009-11-05 2009-11-05 Memory control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009254166A JP2011100273A (en) 2009-11-05 2009-11-05 Memory control circuit

Publications (1)

Publication Number Publication Date
JP2011100273A true JP2011100273A (en) 2011-05-19

Family

ID=44191402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009254166A Pending JP2011100273A (en) 2009-11-05 2009-11-05 Memory control circuit

Country Status (1)

Country Link
JP (1) JP2011100273A (en)

Similar Documents

Publication Publication Date Title
KR100610730B1 (en) Method and apparatus for memory access scheduling to reduce memory access latency
KR100724557B1 (en) Out of order dram sequencer
US9343127B1 (en) Memory device having an adaptable number of open rows
JP2002530731A (en) Method and apparatus for detecting data collision on a data bus during abnormal memory access or performing memory access at different times
KR20150017526A (en) Memory command schedular and method for memory command scheduling
JP2002530743A (en) Use the page tag register to track the state of a physical page in a memory device
WO2017206000A1 (en) Memory access method and memory controller
JP5428687B2 (en) Memory control device
JP2010134627A (en) Bus relay device
US20080098176A1 (en) Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
JP4370063B2 (en) Semiconductor memory device control device and semiconductor memory device control method
JP2014154119A (en) Memory controller and semiconductor storage device
JP3922487B2 (en) Memory control apparatus and method
JP4791714B2 (en) Method, circuit, and system for using pause time of dynamic frequency scaling cache memory
US9620215B2 (en) Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode
JP4250989B2 (en) Memory access control device
JP2002351741A (en) Semiconductor integrated circuit device
US8484411B1 (en) System and method for improving access efficiency to a dynamic random access memory
JP2011100273A (en) Memory control circuit
JP5393405B2 (en) Memory control circuit
JP2006107245A (en) Memory controller
JP2015022437A (en) Control apparatus, computer system, control method, and program
JP5565864B2 (en) Cache memory control apparatus and method
JP2008117242A (en) Data transfer control device and data transfer control method
JP2000242544A (en) Memory controller and direct memory access controller