JP2010134628A - Memory controller and data processor - Google Patents

Memory controller and data processor Download PDF

Info

Publication number
JP2010134628A
JP2010134628A JP2008308795A JP2008308795A JP2010134628A JP 2010134628 A JP2010134628 A JP 2010134628A JP 2008308795 A JP2008308795 A JP 2008308795A JP 2008308795 A JP2008308795 A JP 2008308795A JP 2010134628 A JP2010134628 A JP 2010134628A
Authority
JP
Japan
Prior art keywords
request
memory
status
unit
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008308795A
Other languages
Japanese (ja)
Inventor
Masayuki Koyama
雅行 小山
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2008308795A priority Critical patent/JP2010134628A/en
Publication of JP2010134628A publication Critical patent/JP2010134628A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a memory controller and a data processor for grouping requests from a plurality of memory access requesters in order to increase the use efficiency of a bus. <P>SOLUTION: A request queue 22 stores requests received from a plurality of memory access requesters. A merge section 31 merges requests accessible in one read cycle or write cycle in a DDR2-SDRAM among requests in the request queue 22. A memory interface part 27 accesses the DDR2-SDRAM according to the requests, and accesses the DDR2-SDRAM in response to the merged requests in a batch. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、メモリコントローラおよびデータ処理装置に関し、特に、複数のメモリアクセスリクエスタからのリクエストを処理するメモリコントローラ、およびそのようなメモリコントローラを備えたデータ処理装置に関する。   The present invention relates to a memory controller and a data processing device, and more particularly to a memory controller that processes requests from a plurality of memory access requesters and a data processing device including such a memory controller.

従来から、バスに接続された複数のメモリアクセスリクエスタ(バスマスタ)と、そのバスにメモリコントローラを介して接続されたメモリとを備えたデータ処理装置において、バスマスタのレイテンシを低減することを目的とした方法が開示、提案されている。   Conventionally, in a data processing device including a plurality of memory access requesters (bus masters) connected to a bus and a memory connected to the bus via a memory controller, the object is to reduce the latency of the bus master. A method is disclosed and proposed.

たとえば、特許文献1には、インタフェース部が、メモリアクセスリクエスタ(バスマスタ)からバスの所定のバス帯域分を使用した共有リソースへのアクセスの要求を受信した際に、全てのバスマスタにより現在使用されているバスのバス帯域から共有リソースへのアクセスの要求が最新に許可されたバスマスタが現在使用しているバスのバス帯域を減算した第1の減算結果と、バスの最大のバス帯域から最新に許可されたバスマスタにおけるバスの予約分のバス帯域を減算した第2の減算結果とを比較して、第1の減算結果が第2の減算結果よりも大きい場合には、インタフェース部が受信した共有リソースへのアクセスの要求に対して許可を与えないようにする調停装置が開示されている。   For example, in Patent Document 1, when the interface unit receives a request for access to a shared resource using a predetermined bus bandwidth of a bus from a memory access requester (bus master), it is currently used by all bus masters. The first subtraction result obtained by subtracting the bus bandwidth of the bus currently used by the bus master to which the access request to the shared resource has been granted latest from the bus bandwidth of the existing bus and the latest grant from the maximum bus bandwidth of the bus When the first subtraction result is larger than the second subtraction result by comparing the second subtraction result obtained by subtracting the bus bandwidth for the reserved bus in the bus master, the shared resource received by the interface unit An arbitration device is disclosed that does not grant permission to a request for access to a network.

この調停装置によれば、メモリアクセスリクエスタ(バスマスタ)のレイテンシは低減できるものの、各バスマスタからのアクセスは、多数の細切れのものとなるため、バス帯域を効率的に使用することができない。   According to this arbitration device, although the latency of the memory access requester (bus master) can be reduced, the access from each bus master is divided into many pieces, so that the bus bandwidth cannot be used efficiently.

これに対して、たとえば、特許文献2には、特定のメモリアクセスリクエスタ(バスマスタ)は、メモリのアクセス箇所のロウアドレス(行アドレス)が一致するリクエストをグループ化して、メモリコントローラに出力し、メモリコントローラは、グループ化されたリクエストを連続して処理する方法が記載されている。この方法によれば、メモリにおいて、メモリコントーラからメモリへのコマンドおよびアドレスの転送回数を削減することができ、バスの使用効率を高めることができる。
特開2007−102509号公報 特開2007−328585号公報
On the other hand, for example, in Patent Document 2, a specific memory access requester (bus master) groups requests having matching row addresses (row addresses) of memory access locations, and outputs the requests to a memory controller. The controller describes a method of processing grouped requests continuously. According to this method, in the memory, the number of times of transfer of commands and addresses from the memory controller to the memory can be reduced, and the use efficiency of the bus can be increased.
JP 2007-102509 A JP 2007-328585 A

ところで、特許文献2に記載されたリクエストのグループ化は、メモリアクセスリクエスタ(マスタ)が自身で行ない、複数のメモリアクセスリクエスタからのリクエストはグループ化されない。   By the way, the grouping of requests described in Patent Document 2 is performed by the memory access requester (master) itself, and requests from a plurality of memory access requesters are not grouped.

しかしながら、複数のメモリアクセスリクエスタがメモリ内の同一のロウに同時にアクセス要求を行なう場合もある。たとえば、符号化などの画像処理を行なうデータ処理装置では、各メモリアクセスリクエスタが、特定の画像処理機能を担当し、メモリは、各画素のデータを記憶する。このような装置では、複数のメモリアクセスリクエスタが、画像の同一の行に対して、並行して処理するようなことがある。したがって、バスの使用効率を高めるために、複数のメモリアクセスリクエスタからのリクエストであってもグループ化する必要がある。   However, a plurality of memory access requesters may simultaneously request access to the same row in the memory. For example, in a data processing apparatus that performs image processing such as encoding, each memory access requester takes charge of a specific image processing function, and the memory stores data of each pixel. In such an apparatus, a plurality of memory access requesters may process the same row of an image in parallel. Therefore, in order to increase the use efficiency of the bus, it is necessary to group even requests from a plurality of memory access requesters.

それゆえに、本発明の目的は、複数のメモリアクセスリクエスタからのリクエストでも、バスの使用効率を高めるためのグループ化が可能なメモリコントローラおよびデータ処理装置を提供することである。   SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a memory controller and a data processing device that can be grouped to increase the bus use efficiency even for requests from a plurality of memory access requesters.

本発明の一実施例のメモリコントローラによれば、複数のメモリアクセスリクエスタから受信したリクエストを格納するキューと、キュー内のリクエストのうち、メモリにおける1回の読出しサイクルまたは書込みサイクルでアクセス可能なリクエストを併合する併合部と、リクエストに従って、メモリに対してアクセスを行なうインタフェース部とを備え、インタフェース部は、併合された複数のリクエストに対するメモリへのアクセスを一括して行なう。   According to the memory controller of an embodiment of the present invention, a queue that stores requests received from a plurality of memory access requesters, and a request that can be accessed in one read cycle or write cycle in the memory among the requests in the queue. And an interface unit that accesses the memory in accordance with the request, and the interface unit collectively accesses the memory for a plurality of merged requests.

本発明によれば、複数のメモリアクセスリクエスタからのリクエストでも、バスの使用効率を高めるためのグループ化を行なうことができる。   According to the present invention, even requests from a plurality of memory access requesters can be grouped to increase the bus use efficiency.

以下、本発明の実施の形態について、図面を参照して説明する。
図1は、本発明の実施形態のデータ処理装置の構成を表わす図である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram showing a configuration of a data processing apparatus according to an embodiment of the present invention.

図1を参照して、このデータ処理装置1は、複数個のイニシエータ1〜4と、バスアービタ7と、メモリコントローラ6と、DDR(Double Data Rate)2−SDRAM(Synchronous Dynamic Random Access memory)8とを備える。   Referring to FIG. 1, a data processing apparatus 1 includes a plurality of initiators 1 to 4, a bus arbiter 7, a memory controller 6, a DDR (Double Data Rate) 2-SDRAM (Synchronous Dynamic Random Access memory) 8, Is provided.

このデータ処理装置100は、たとえば、符号化などの画像処理を行なう装置であり、各イニシエータ1〜4が、特定の画像処理機能を担当し、DDR2−SDRAM8は、各画素のデータを記憶し、複数のイニシエータ1〜4のうちイニシエータ1は、CPU(Central Processing Unit)であるものとする。   The data processing apparatus 100 is an apparatus that performs image processing such as encoding, for example. Each initiator 1 to 4 is responsible for a specific image processing function, and the DDR2-SDRAM 8 stores data of each pixel. It is assumed that the initiator 1 among the plurality of initiators 1 to 4 is a CPU (Central Processing Unit).

バスアービタ7は、イニシエータ1〜4から出力されるリクエスト(トランザクション)と、DDR2−SDRAM8から出力されるレスポンスとの競合を調停するルータとして機能する。   The bus arbiter 7 functions as a router that arbitrates contention between requests (transactions) output from the initiators 1 to 4 and responses output from the DDR2-SDRAM 8.

各イニシエータ1〜4は、メモリアクセスリクエスタであって、リクエスト生成部10と、ポインタ管理部11とを備える。   Each initiator 1 to 4 is a memory access requester, and includes a request generation unit 10 and a pointer management unit 11.

リクエスト生成部10は、リクエストを生成し、生成したリクエストをバス5を通じてメモリコントローラ6へ出力する。   The request generation unit 10 generates a request and outputs the generated request to the memory controller 6 through the bus 5.

図2(a)および(b)は、リクエストのデータ構造を表わす図である。
図2(a)に示すように、リクエストがリードの場合には、リクエストは、リード要求と、リクエスト特性情報と、割込通知要求フラグとからなる。また、図2(b)に示すように、リクエストがライトの場合には、リクエストは、ライト要求と、ライトデータと、リクエスト特性情報と、割込通知要求フラグとからなる。
2A and 2B are diagrams showing the data structure of the request.
As shown in FIG. 2A, when the request is a read, the request includes a read request, request characteristic information, and an interrupt notification request flag. As shown in FIG. 2B, when the request is a write, the request includes a write request, write data, request characteristic information, and an interrupt notification request flag.

割込通知要求フラグは、このリクエストが終了した場合に、イニシエータ1(CPU)に割込みを通知する場合に付加される。この割込通知要求フラグは、たとえば、画像処理装置において、画像処理の最終段の処理を行なう画像処理モジュール(イニシエータ)が、1画面の最後のデータに対するアクセスを要求するようなリクエストに含まれる。割込みを通知されたイニシエータ1(CPU)は、1画面の処理が終了したことが分かるので、1画面の表示処理を行なうようにすることができる。   The interrupt notification request flag is added when notifying the initiator 1 (CPU) of an interrupt when this request is completed. This interrupt notification request flag is included in a request in which, for example, an image processing module (initiator) that performs the final stage of image processing in the image processing apparatus requests access to the last data of one screen. Since the initiator 1 (CPU) notified of the interruption knows that the processing for one screen has been completed, the display processing for one screen can be performed.

図2(c)は、リクエスト情報の例を表わす図である。
TIDは、リクエストを識別する番号である。
FIG. 2C illustrates an example of request information.
TID is a number for identifying a request.

キューイング可否は、リクエストキュー22に格納可能か否かの識別情報である。
併合可否は、他のリクエストと併合されて一括処理が可能か否かの識別情報である。これは、他のリクエストと併合されると不都合が生じるようなリクエストを考慮したものである。
The queuing permission / inhibition is identification information indicating whether or not the request queue 22 can be stored.
The mergeability is identification information indicating whether or not batch processing is possible by merging with other requests. This takes into account a request that causes inconvenience when it is merged with another request.

発行元イニシエータ番号は、リクエストを発行したイニシエータを識別する情報である。   The issuer initiator number is information for identifying the initiator that issued the request.

許容待ち時間情報は、リクエストによるDDR2−SDRAM8へのアクセス開始の許容できる待ち時間を表わす。これは、リクエストが、イニシエータから発行されてから、実際に処理が行われるまでに時間的な制限が課されている場合が多いことを考慮したものである。   The allowable waiting time information represents an allowable waiting time for the start of access to the DDR2-SDRAM 8 by a request. This is because a time limit is often imposed from when the request is issued from the initiator until it is actually processed.

優先度情報は、処理の優先度を表わす。
想定平均処理レートは、リクエストが属するグループの平均処理レート、つまり1バイト当りの処理時間の想定される平均値である。処理時間とは、DDR2−SDRAM8へのアクセスが開始されるまでの時間である。
The priority information represents the priority of processing.
The assumed average processing rate is an average processing rate of a group to which the request belongs, that is, an assumed average value of processing time per byte. The processing time is the time until access to the DDR2-SDRAM 8 is started.

メモリアドレスは、DDR2−SDRAM8内のアクセス対象のメモリセルのアドレスである。   The memory address is an address of a memory cell to be accessed in the DDR2-SDRAM 8.

転送バイト数は、イニシエータとDDR2−SDRAM8間のデータの転送バイト数である。   The number of transfer bytes is the number of transfer bytes of data between the initiator and the DDR2-SDRAM 8.

転送方向は、データを転送する方向が、イニシエータからDDR2−SDRAM8(ライト)か、DDR2−SDRAM8からイニシエータ(リード)かの識別情報である。   The transfer direction is identification information indicating whether the data transfer direction is from the initiator to DDR2-SDRAM 8 (write) or from the DDR2-SDRAM 8 to initiator (read).

アクセスレベルは、特権アクセスか、あるいはユーザアクセスかの識別情報である。
スプリット可否は、アクセスが、途中でスプリット(中断)可能か否かの識別情報である。
The access level is identification information indicating whether the access is privileged access or user access.
Split availability is identification information indicating whether or not access can be split (interrupted).

ロック転送フラグは、ロック転送か否かを識別する情報である。
アウトオブオーダ可否フラグは、アウトオブオーダ可能なリクエストか否かの識別情報である。リクエストがアウトオブオーダが不可能な場合には、そのリクエストは、それまでに受信したリクエストのすべてが処理された後、かつそれ以降に受信したリクエストが処理されるまでの間に処理する。
The lock transfer flag is information for identifying whether or not the lock transfer is performed.
The out-of-order availability flag is identification information indicating whether the request is out-of-order. If the request cannot be out-of-order, the request is processed after all the requests received so far have been processed and before the subsequent received requests are processed.

再び、図1を参照して、ポインタ管理部11は、出力したリクエストごとに、DDR2−SDRAM8内のアクセス位置を表わすアドレスを表わすポインタと、ポインタについてのアクセス状態を表わすポインタフラグを管理する。   Referring again to FIG. 1, pointer management unit 11 manages a pointer indicating an address indicating an access position in DDR2-SDRAM 8 and a pointer flag indicating an access state of the pointer for each output request.

図3(a)は、ポインタのフラグを表わす図である。
図3(a)を参照して、DDR2−SDRAM8のデータの更新中の場合には、ポインタフラグはD(Dirty)となる。DDR2−SDRAM8のデータの参照中の場合には、ポインタフラグはR(Reference)となる。DDR2−SDRAM8へのアクセスが行なわれていない場合には、ポインタフラグはV(Valid)となる。
FIG. 3A shows a pointer flag.
Referring to FIG. 3A, when data in DDR2-SDRAM 8 is being updated, the pointer flag is D (Dirty). When data in the DDR2-SDRAM 8 is being referred to, the pointer flag is R (Reference). When the DDR2-SDRAM 8 is not accessed, the pointer flag is V (Valid).

ポインタ管理部11は、リードのリクエストを出力後、ステータス管理部25から実行中(EXE)のステータスの通知を受けたときには、ポインタフラグをRに設定する。また、ポインタ管理部11は、ライトのリクエストを出力後、ステータス管理部25から実行中(EXE)のステータスの通知を受けたときには、ポインタフラグをDに設定する。また、ポインタ管理部11は、リクエストの出力後、ステータス管理部25から終了状態(DONE)のステータスの通知を受けたときには、ポインタフラグをVに設定する。   The pointer management unit 11 sets the pointer flag to R when receiving a notification of the status being executed (EXE) from the status management unit 25 after outputting the read request. The pointer management unit 11 sets the pointer flag to D when the status management unit 25 receives a status of execution (EXE) after outputting the write request. Further, the pointer management unit 11 sets the pointer flag to V when receiving a notification of the end state (DONE) status from the status management unit 25 after outputting the request.

図3(b)は、イニシエータ1で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。図3(c)は、イニシエータ2で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。図3(d)は、イニシエータ3で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。図3(e)は、イニシエータ4で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。   FIG. 3B is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 1. FIG. 3C is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 2. FIG. 3D is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 3. FIG. 3E is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 4.

このように、各イニシエータ1〜4が自身のリクエストに対するポインタフラグを管理し、イニシエータ1〜4どうしで、互いに他のイニシエータ1〜4のポインタフラグを参照することによって、たとえば、イニシエータ2が、DDR2−SDRAM8内のADD(10)のアドレスのデータを参照中であるので、他のイニシエータ1、3および4からは、DDR2−SDRAM8内のADD(10)のアドレスと同一のロー(行)へアクセスすることを控えるようにすることができ、DDR2−SDRAM8内のデータのコヒーレンシを保つことができる。   In this way, each initiator 1 to 4 manages a pointer flag for its own request, and the initiators 1 to 4 refer to the pointer flags of the other initiators 1 to 4 with each other, so that, for example, the initiator 2 -Since the address data of the ADD (10) in the SDRAM 8 is being referred to, the other initiators 1, 3 and 4 access the same row (row) as the address of the ADD (10) in the DDR2-SDRAM 8 It is possible to refrain from doing so, and the coherency of data in the DDR2-SDRAM 8 can be maintained.

再び、図1を参照して、DDR2−SDRAM8は、メモリセルアレイ51と、ロウデコーダ53と、カラムデコーダ52と、アドレスバッファ55と、コマンドデコーダ57と、I/Oバッファ54とを備える。   Referring again to FIG. 1, DDR2-SDRAM 8 includes a memory cell array 51, a row decoder 53, a column decoder 52, an address buffer 55, a command decoder 57, and an I / O buffer 54.

メモリセルアレイ51は、行列上に配置された複数のメモリセルを備える。メモリセル内には、行方向にm本のワード線WL1〜WLmが配置され、列方向にn本のビット線BL1〜BLnが配置される。   The memory cell array 51 includes a plurality of memory cells arranged on a matrix. In the memory cell, m word lines WL1 to WLm are arranged in the row direction, and n bit lines BL1 to BLn are arranged in the column direction.

アドレスバッファ55は、メモリインタフェース部27から出力されたロウアドレスおよびカラムアドレスを受けて、ロウアドレスをロウデコーダ53に供給し、カラムアドレスをカラムデコーダ52に供給する。   The address buffer 55 receives the row address and column address output from the memory interface unit 27, supplies the row address to the row decoder 53, and supplies the column address to the column decoder 52.

コマンドデコーダ57は、メモリインタフェース部27から出力されたコマンドを受けて、コマンドに基づいて、メモリセルアレイ51に対するアクセスを制御する。   The command decoder 57 receives the command output from the memory interface unit 27 and controls access to the memory cell array 51 based on the command.

I/Oバッファ54は、カラムアドレスで選択された列のビット線対から伝送されるリードデータを保持し、リードデータをメモリコントローラ6へ出力する。また、I/Oバッファ54は、メモリコントローラ6から送られたライトデータを保持し、カラムアドレスで選択された列のビット線対へ出力する。   The I / O buffer 54 holds read data transmitted from the bit line pair in the column selected by the column address, and outputs the read data to the memory controller 6. The I / O buffer 54 holds the write data sent from the memory controller 6 and outputs it to the bit line pair in the column selected by the column address.

ロウデコーダ53は、アドレスバッファ55から送られるロウアドレスに従って、1本のワード線を選択して、選択したワード線を活性化する。   The row decoder 53 selects one word line according to the row address sent from the address buffer 55 and activates the selected word line.

カラムデコーダ52は、アドレスバッファ55から送られるカラムアドレスに従って、I/Oバッファ54と接続する列を選択する。   The column decoder 52 selects a column connected to the I / O buffer 54 in accordance with the column address sent from the address buffer 55.

図4は、メモリコントローラ6の構成を表わす図である。
図4を参照して、メモリコントローラ6は、キューイング可否判定部20と、リクエストキュー22と、キュー情報記憶部23と、併合部31と、併合情報記憶部24と、イニシエータグループ情報記憶部30と、優先制御部21と、メモリインタフェース部27と、ステータス情報記憶部26と、ステータス管理部25と、メモリインタフェース部27と、出力制御部29とを備える。優先制御部21は、待ち時間計測部28と、処理時間計測部32と、平均処理レート算出部33と、選択部34とを備える。
FIG. 4 is a diagram showing the configuration of the memory controller 6.
Referring to FIG. 4, the memory controller 6 includes a queuing permission determination unit 20, a request queue 22, a queue information storage unit 23, a merge unit 31, a merge information storage unit 24, and an initiator group information storage unit 30. A priority control unit 21, a memory interface unit 27, a status information storage unit 26, a status management unit 25, a memory interface unit 27, and an output control unit 29. The priority control unit 21 includes a waiting time measurement unit 28, a processing time measurement unit 32, an average processing rate calculation unit 33, and a selection unit 34.

キューイング可否判定部20は、受信したリクエストのリクエスト情報のキューイング可否を参照して、キューイング可否が可に設定されているかどうかを調べる。キューイング可否判定部20は、キューイング可否が可に設定されている場合には、受信したリクエストをリクエストキュー22の空いているキー位置の番号が最も小さい位置に出力し、受信したリクエストが格納された状態を表わすようにキュー情報記憶部23内のキュー情報を更新する。また、キューイング可否判定部20は、キューイング可否が不可に設定されている場合には、受信したリクエストを直接選択部34に出力する。このように、キューイングの可否を判定することによって、迅速に処理すべきリクエスト(特にイニシエータ1(CPU)から出力されるリクエストなど)がリクエストキュー22に格納されることによって、処理が後回しになるのを防止することができる。   The queuing propriety determination unit 20 refers to the queuing propriety of the request information of the received request to check whether the queuing propriety is set to be possible. If the queuing permission / inhibition determination unit 20 is set to enable / disable, the queuing permission / inhibition determination unit 20 outputs the received request to the position where the number of the empty key position in the request queue 22 is the smallest, and the received request is stored. The queue information in the queue information storage unit 23 is updated so as to indicate the state that has been set. In addition, the queuing propriety determination unit 20 outputs the received request directly to the selection unit 34 when the queuing propriety is set to be impossible. In this way, by determining whether or not queuing is possible, a request to be processed quickly (especially, a request output from the initiator 1 (CPU)) is stored in the request queue 22 and the processing is postponed. Can be prevented.

リクエストキュー22は、キューイング可否判定部20から出力されたリクエストを格納する。リクエストは、リクエストキュー22内のキュー位置の番号が小さい方から順番に格納される。また、リクエストキュー22は、格納しているリクエストがメモリインタフェース部27へ出力された場合には、残りのリクエストをキュー位置の番号が小さくなるように詰めることによって、リクエストを再配置する。   The request queue 22 stores the request output from the queuing availability determination unit 20. The requests are stored in order from the smallest queue position number in the request queue 22. Further, when the stored request is output to the memory interface unit 27, the request queue 22 rearranges the request by closing the remaining requests so that the number of the queue position becomes smaller.

図5(a)および(b)は、リクエストキュー22の状態の例を表わす図である。
図5(a)を参照して、キュー位置が「1」にTIDが「0001」のリクエストが格納され、キュー位置が「2」にTIDが「0002」のリクエストが格納され、キュー位置が「3」にTIDが「0003」のリクエストが格納され、キュー位置が「4」にTIDが「0004」のリクエストが格納され、キュー位置が「5」にTIDが「0005」のリクエストが格納され、キュー位置が「6」にTIDが「0009」のリクエストが格納され、キュー位置が「7」にTIDが「0010」のリクエストが格納され、キュー位置が「8」にTIDが「0011」のリクエストが格納され、キュー位置が「9」にTIDが「0012」のリクエストが格納されている。
FIGS. 5A and 5B are diagrams illustrating examples of the state of the request queue 22.
Referring to FIG. 5A, a request with a queue position “1” and a TID “0001” is stored, a request with a queue position “2” and a TID “0002” is stored, and a queue position “ A request with TID “0003” is stored in “3”, a request with TID “0004” is stored in “4”, a request with TID “0005” is stored in “5”, A request with a queue position “6” and a TID “0009” is stored, a request with a queue position “7” and a TID “0010” is stored, a request with a queue position “8” and a TID “0011” , A request with a queue position of “9” and a TID of “0012” is stored.

図5(b)は、図5(a)の状態から、TIDが「0001」、「0003」、「0005」、「0009」、「0010」、「0011」、「0012」のリクエストが出力されたときのリクエストキュー22の状態を表わす。   In FIG. 5B, requests with TIDs “0001”, “0003”, “0005”, “0009”, “0010”, “0011”, and “0012” are output from the state of FIG. Represents the state of the request queue 22 at that time.

キュー情報記憶部23は、キューの位置と、そこに格納されているリクエストの識別番号(TID)との対応を定めたキュー情報を記憶する。   The queue information storage unit 23 stores queue information that defines a correspondence between a queue position and a request identification number (TID) stored therein.

図6(a)は、図5(a)に示すリクエストキュー22の状態でのキュー情報の例を表わす図である。図6(b)は、図6(b)に示すリクエストキュー22の状態でのキュー情報の例を表わす図である。   FIG. 6A is a diagram illustrating an example of queue information in the state of the request queue 22 illustrated in FIG. FIG. 6B is a diagram illustrating an example of queue information in the state of the request queue 22 illustrated in FIG.

再び、図1を参照して、併合部31は、リクエストキュー22内のリクエストのうち、DDR2−SDRAM8における1回の読出しサイクルまたは書込みサイクルでアクセス可能なリクエストを併合する。併合処理の詳細は後述する。   Referring to FIG. 1 again, merging unit 31 merges requests that can be accessed in one read cycle or write cycle in DDR2-SDRAM 8 among requests in request queue 22. Details of the merge process will be described later.

イニシエータグループ情報記憶部30は、イニシエータグループ情報を記憶する。イニシエータグループ情報は、他の条件を満たせば、リクエストを併合することができるイニシエータの組合せを表わす。言い換えると、イニシエータグループ情報で定められていないイニシエータ間では、リクエストの併合ができないことになる。これは、併合になじまないイニシエータどうしのリクエストを併合すると不都合が生じる場合があることを考慮したものである。   The initiator group information storage unit 30 stores initiator group information. The initiator group information represents a combination of initiators that can merge requests if other conditions are satisfied. In other words, requests cannot be merged between initiators that are not defined in the initiator group information. This takes into consideration that there may be inconveniences when merging requests between initiators that are not compatible with merging.

併合情報記憶部24は、併合されたリクエストについて、グループ識別番号(GID)と、そのグループに属するリクエストの識別番号(TID)との対応を表わす情報を記憶する。   The merge information storage unit 24 stores information indicating the correspondence between the group identification number (GID) and the identification number (TID) of the request belonging to the group for the merged request.

図7は、併合情報の例を表わす図である。
図7を参照して、グループ識別番号(GID)が「0001」には、TIDが「0001」、「0005」、「0009」、「0010」のリクエストが併合されている。また、グループ識別番号(GID)が「0002」には、TIDが「0003」、「0011」、「0012」のリクエストが併合されている。
FIG. 7 is a diagram illustrating an example of merge information.
Referring to FIG. 7, requests having a TID of “0001”, “0005”, “0009”, and “0010” are merged into a group identification number (GID) “0001”. In addition, requests with TIDs “0003”, “0011”, and “0012” are merged into the group identification number (GID) “0002”.

ステータス情報記憶部26は、受信したリクエストのステータス情報を記憶する。DDR2−SDRAM8へのアクセスが未実行のリクエストのステータスは、アイドル(IDLE)である。DDR2−SDRAM8へのアクセスが実行中のリクエストのステータスは実行中(EXE)である。DDR2−SDRAM8へのアクセスが終了したリクエストのステータスは終了状態(DONE)である。   The status information storage unit 26 stores the status information of the received request. The status of a request that has not yet been accessed to the DDR2-SDRAM 8 is idle (IDLE). The status of the request that is executing the access to the DDR2-SDRAM 8 is executing (EXE). The status of the request that has finished accessing the DDR2-SDRAM 8 is the end state (DONE).

図8は、ステータス情報の例を表わす図である。
図8を参照して、グループ識別番号(GID)が「0001」に属するTIDが「0001」、「0005」、「0009」、「0010」のリクエストのステータスは、いずれも「END」である。
FIG. 8 is a diagram illustrating an example of status information.
Referring to FIG. 8, the statuses of the requests with TID “0001”, “0005”, “0009”, and “0010” belonging to the group identification number (GID) “0001” are all “END”.

また、TIDが「0002」のリクエストのステータスは、「IDLE」である。
グループ識別番号(GID)が「0002」に属するTIDが「0003」、「0011」のリクエストのステータスは、いずれも「END」であり、TIDが「0012」のリクエストのスタータスは「EXE」である。このように、同一のグループに属するリクエストのステータスが相違するのは、たとえば、リードのアクセスの場合に、指定したカラムアドレスおよび指定した転送バイト数などによって、DDR2−SDRAM8から転送されてきたリードデータが、どのリクエストに対応するものかを識別することができるからである。
The status of the request with TID “0002” is “IDLE”.
The status of requests with TID “0003” and “0011” belonging to the group identification number (GID) “0002” is “END”, and the status of the request with TID “0012” is “EXE”. . As described above, the statuses of requests belonging to the same group are different because, for example, in the case of read access, read data transferred from the DDR2-SDRAM 8 depending on a specified column address and a specified number of transfer bytes. This is because it is possible to identify which request corresponds to the request.

また、TIDが「0004」のリクエストのステータスは、「IDLE」である。
ステータス管理部25は、イニシエータ1〜4からのリクエストの受信に応じて、リクエストのステータスをIDLEに設定する。ステータス管理部25は、メモリインタフェース部27がリクエストに従ってDDR2−SDRAM8へのアクセスを開始した(つまり、コマンドやアドレスを出力した)ことに応じて、リクエストのステータスをEXEに設定する。また、ステータス管理部25は、リクエストがリードの場合に、リクエストに応答してDDR2−SDRAM8からリードデータを受信したことに応じて、リクエストのステータスをDONEに設定する。また、ステータス管理部25は、リクエストがライトの場合には、リクエストに従ってDDR2−SDRAM8へのアクセスを開始してから所定の時間が経過したことに応じて、リクエストのステータスをDONEに設定する。
The status of a request with a TID “0004” is “IDLE”.
The status management unit 25 sets the request status to IDLE in response to receiving requests from the initiators 1 to 4. The status management unit 25 sets the status of the request to EXE in response to the memory interface unit 27 starting access to the DDR2-SDRAM 8 according to the request (that is, outputting a command or an address). In addition, when the request is a read, the status management unit 25 sets the status of the request to DONE in response to receiving read data from the DDR2-SDRAM 8 in response to the request. Further, when the request is a write, the status management unit 25 sets the status of the request to DONE when a predetermined time has elapsed since the start of access to the DDR2-SDRAM 8 according to the request.

ステータス管理部25は、リクエストのステータスが変化したことに応じて、リクエストを出力したイニシエータに対して、ステータス情報を送る。このようにリクエストのステータスをイニシエータ側に送るのは、イニシエータ側は、発行したリクエストがリクエストキュー22に格納されることによって、すぐに実行されるとは限らず、発行したリクエストのステータスが把握できないことを考慮したものである。   The status management unit 25 sends status information to the initiator that has output the request in response to a change in the status of the request. Sending the request status to the initiator side in this manner is that the initiator side is not always executed immediately after the issued request is stored in the request queue 22, and the status of the issued request cannot be grasped. Is taken into account.

また、ステータス管理部25は、ステータスが(DONE)に変化したリクエストが、割込通知要求フラグがオンのリクエストの場合には、特定のイニシエータ1(CPU)に割込みを表わす割込情報を送る。   If the request whose status has changed to (DONE) is a request whose interrupt notification request flag is on, the status management unit 25 sends interrupt information indicating an interrupt to a specific initiator 1 (CPU).

待ち時間計測部28は、ステータス情報記憶部26を参照して、リクエストがリクエストキュー22に格納されることによってそのリクエストのステータスがIDLEが設定された時に、そのリクエスト用のタイマを起動し、待ち時間を計測する。   The waiting time measuring unit 28 refers to the status information storage unit 26, and when a request is stored in the request queue 22 and the status of the request is set to IDLE, starts the timer for the request and waits for it. Measure time.

処理時間計測部32は、ステータス情報記憶部26を参照して、リクエストがリクエストキュー22に格納されることによってそのリクエストのステータスがIDLEに設定された時に、そのリクエスト用のタイマを起動し、そのリクエストのステータスがEXEに設定される(すなわちアクセスが開始される)までの時間を計測して、処理時間記憶部61に記憶する。   The processing time measuring unit 32 refers to the status information storage unit 26, and when the request is stored in the request queue 22 and the status of the request is set to IDLE, starts the timer for the request, The time until the status of the request is set to EXE (that is, access is started) is measured and stored in the processing time storage unit 61.

平均処理レート算出部33は、各リクエストの計測された処理時間と転送バイト数とを用いて、グループごとの平均処理レート、つまり1バイトごとの処理時間の平均値を算出して、平均処理レート記憶部62に記憶する。ここでは、1つのグループに属するリクエストは、たとえば、キューイング可否、併合可否、および転送方向が同一であるとする。   The average processing rate calculation unit 33 calculates the average processing rate for each group, that is, the average processing time for each byte, using the measured processing time and the number of transfer bytes of each request, and calculates the average processing rate. Store in the storage unit 62. Here, it is assumed that requests belonging to one group have the same queuing permission / inhibition, merge permission / inhibition, and transfer direction, for example.

選択部34は、第1優先度制御、第2優先度制御に基づいて、リクエストキュー22に格納されたリクエストおよびキューイング可否判定部20から直接送られてきたリクエストのうち、次に処理すべきリクエストを選択し、選択したリクエストをメモリインタフェース部27に出力する。第1優先度制御は、できるだけ迅速に処理すべきリクエストを選択するための制御である。第2優先度制御は、第1優先度制御だけでは、いつまでも選択されずに残ってしまうリクエストを選択するための制御である。第1優先度制御および第2優先度制御の詳細は、後述する。   Based on the first priority control and the second priority control, the selection unit 34 should process next among the requests stored in the request queue 22 and the requests sent directly from the queuing availability determination unit 20. A request is selected, and the selected request is output to the memory interface unit 27. The first priority control is control for selecting a request to be processed as quickly as possible. The second priority control is a control for selecting a request that remains without being selected indefinitely only by the first priority control. Details of the first priority control and the second priority control will be described later.

メモリインタフェース部27は、選択部34から出力されたリクエストに基づいて、DDR2−SDRAM8に対して、バス12を通じてアクセスを行なう。すなわち、メモリインタフェース部27は、アクセス要求がリードの場合には、リクエスト情報中のメモリアドレスおよび転送バイト数に基づいて、プリチャージコマンドを出力し、その後アクティブコマンドとロウアドレスを発行し、その後リードコマンドとカラムアドレスを発行する。また、メモリインタフェース部27は、アクセス要求がライトの場合には、リクエスト情報中のメモリアドレスおよび転送バイト数に基づいて、プリチャージコマンドを発行し、その後アクティブコマンドとロウアドレスを発行し、その後ライトコマンドとカラムアドレスを発行する。   The memory interface unit 27 accesses the DDR2-SDRAM 8 through the bus 12 based on the request output from the selection unit 34. That is, when the access request is a read, the memory interface unit 27 outputs a precharge command based on the memory address and the number of transfer bytes in the request information, thereafter issues an active command and a row address, and then reads. Issue command and column address. Further, when the access request is a write, the memory interface unit 27 issues a precharge command based on the memory address and the number of transfer bytes in the request information, thereafter issues an active command and a row address, and then writes Issue command and column address.

メモリインタフェース部27は、併合された複数のリクエストに対するDDR2−SDRAM8へのアクセスを一括して行なう。すなわち、メモリインタフェース部27は、併合された複数のリクエストについては、ロウアドレスが同一であるので、先頭のリクエストについてのみ、プリチャージコマンド、アクティブコマンドおよびロウアドレスをDDR2−SDRAM8へ出力する。このように、コマンドおよびアドレスの転送回数を減らすことによって、メモリコントローラ6とDDR2−SDRAM8の間のバス12の使用効率を高めることができる。   The memory interface unit 27 collectively accesses the DDR2-SDRAM 8 for the merged requests. That is, the memory interface unit 27 outputs the precharge command, the active command, and the row address to the DDR2-SDRAM 8 only for the first request because the row address is the same for the plurality of merged requests. As described above, the use efficiency of the bus 12 between the memory controller 6 and the DDR2-SDRAM 8 can be increased by reducing the number of command and address transfers.

また、メモリインタフェース部27は、アクセス要求がリードの場合には、バス12を通じてDDR2−SDRAM8から送られるリードデータを受信する。   In addition, when the access request is a read, the memory interface unit 27 receives read data sent from the DDR2-SDRAM 8 through the bus 12.

出力制御部29は、リクエスト情報に基づいて、受信したリードデータをどのイニシエータに出力するかを特定し、特定したイニシエータにリードデータを出力する。   Based on the request information, the output control unit 29 identifies to which initiator the received read data is to be output, and outputs the read data to the identified initiator.

(キューイングと併合処理の動作)
図9は、キューイングと併合処理の動作手順を表わす図である。
(Operation of queuing and merge processing)
FIG. 9 is a diagram illustrating an operation procedure of queuing and merging processing.

図9を参照して、キューイング可否判定部20は、受信したリクエストのリクエスト情報のキューイング可否を参照して、キューイング可否が可に設定されているかどうかを調べる。キューイング可否判定部20は、キューイング可否が可に設定されている場合には(ステップS101でYES)、受信したリクエストをリクエストキュー22の空いているキー位置の番号が最も小さい位置に出力する(ステップS102)。また、キューイング可否判定部20は、受信したリクエストが格納された状態を表わすようにキュー情報記憶部23内のキュー情報を更新する(ステップS104)。   Referring to FIG. 9, queuing propriety determination unit 20 refers to the queuing propriety of the request information of the received request to check whether queuing propriety is set to be permitted. When the queuing permission / inhibition determination unit 20 is set to enable / disable (YES in step S101), the queuing permission / inhibition determination unit 20 outputs the received request to the position where the number of the empty key position in the request queue 22 is the smallest. (Step S102). Further, the queuing permission / inhibition determination unit 20 updates the queue information in the queue information storage unit 23 so as to indicate the state in which the received request is stored (step S104).

一方、キューイング可否判定部20は、キューイング可否が不可に設定されている場合には(ステップS101でNO)、受信したリクエストを直接選択部34に出力する(ステップS103)。   On the other hand, when the queuing permission / inhibition setting is set to be impossible (NO in step S101), the queuing permission / inhibition determination unit 20 directly outputs the received request to the selection unit 34 (step S103).

次に、併合部31は、受信したリクエストのリクエスト情報の併合可否を参照して、併合可否が可に設定されているかどうかを調べる。併合部31は、併合可否が不可に設定されている場合には(ステップS105でNO)、受信したリクエストと他のリクエストとの併合を行なわないこととし、ステップS111に進む。   Next, the merging unit 31 refers to whether or not the request information of the received request is merged, and checks whether or not the merge is permitted. If merging / non-merging is set to be impossible (NO in step S105), merging unit 31 determines that the received request is not merged with another request, and proceeds to step S111.

次に、併合部31は、併合可否が可に設定されている場合には(ステップS105でYES)、受信したリクエストのリクエスト情報の発行元イニシエータ識別番号と、リクエストキュー22に格納されているリクエストのリクエスト情報の発行元イニシエータ識別番号と、イニシエータグループ情報記憶部30内のイニシエータグループ情報を参照して、受信したリクエストの発行元イニシエータが属するイニシエータグループと同一のグループに属するイニシエータの1個以上のリクエスト(A)が、リクエストキュー22に格納されているかどうかを調べる。併合部31は、1個以上のリクエスト(A)が格納されていない場合には(ステップS106でNO)、受信したリクエストと他のリクエストとの併合を行なわないこととし、ステップS111に進む。   Next, the merging unit 31 determines whether or not merging is permitted (YES in step S105), and issues the initiator identification number of the request information of the received request and the request stored in the request queue 22. One or more of the initiators belonging to the same group as the initiator group to which the issued initiator of the received request belongs is referred to by referring to the initiator identification number of the request information of the request and the initiator group information in the initiator group information storage unit 30. It is checked whether or not the request (A) is stored in the request queue 22. If one or more requests (A) are not stored (NO in step S106), the merging unit 31 does not merge the received request with another request, and proceeds to step S111.

次に、併合部31は、1個以上のリクエスト(A)が格納されている場合には(ステップS106でYES)、受信したリクエストのリクエスト情報の転送方向と、リクエストキュー22に格納されている1個以上のリクエスト(A)のリクエスト情報の転送方向を参照して、リクエストキュー22に格納されている1個以上のリクエスト(A)のうち、受信したリクエストと転送方向が同一である1個以上のリクエスト(B)があるかどうかを調べる。併合部31は、1個以上のリクエスト(B)がない場合には(ステップS107でNO)、受信したリクエストと他のリクエストとの併合を行なわないこととし、ステップS111に進む。   Next, when one or more requests (A) are stored (YES in step S106), the merging unit 31 stores the request information transfer direction of the received request and the request queue 22. One of the one or more requests (A) stored in the request queue 22 with the same transfer direction as the received request with reference to the transfer direction of the request information of one or more requests (A) It is checked whether or not there is the above request (B). If there is no one or more requests (B) (NO in step S107), the merging unit 31 decides not to merge the received request with other requests, and proceeds to step S111.

次に、併合部31は、1個以上のリクエスト(B)がある場合には(ステップS107でYES)、受信したリクエストのリクエスト情報のメモリアドレスと、リクエストキュー22に格納されている1個以上のリクエスト(B)のリクエスト情報のメモリアドレスを参照して、リクエストキュー22に格納されている1個以上のリクエスト(B)のうち、受信したリクエストと、メモリアドレスのうちのロウアドレスが同一の1個以上のリクエスト(C)があるかどうかを調べる。併合部31は、1個以上のリクエスト(C)がない場合には(ステップS108でNO)、受信したリクエストと他のリクエストとの併合を行なわないこととし、ステップS111に進む。   Next, when there are one or more requests (B) (YES in step S107), the merging unit 31 stores the memory address of the request information of the received request and one or more stored in the request queue 22. Referring to the memory address of the request information of request (B), the received request and the row address of the memory address of the one or more requests (B) stored in the request queue 22 are the same. Check if there are one or more requests (C). If there is no one or more requests (C) (NO in step S108), the merging unit 31 decides not to merge the received request with another request and proceeds to step S111.

次に、併合部31は、1個以上のリクエスト(C)がある場合には(ステップS108でYES)、受信したリクエストのリクエスト情報の転送バイト数と、リクエストキュー22に格納されている1個以上のリクエスト(C)のリクエスト情報の転送バイト数とを参照して、リクエストキュー22に格納されている1個以上のリクエスト(C)のうち、併合したときの転送バイト数が、メモリセルアレイ51のビット線の数(つまり、1回にアクセスできるサイズ)以下となるような、1個以上のリクエスト(D)があるかどうかを調べる。ここで、たとえば、リクエストCには、c1、c2があり、c1とc2が既に併合されている場合には、併合部31は、併合情報を参照して、c1とc2の転送バイト数の合計と、受信したリクエストの転送バイト数の総和が、1回にアクセスできるサイズ以下であるかどうかを調べることになる。併合部31は、1個以上のリクエスト(D)がない場合には(ステップS109でNO)、受信したリクエストと他のリクエストとの併合を行なわないこととし、ステップS111に進む。   Next, when there are one or more requests (C) (YES in step S108), the merging unit 31 transfers the number of transfer bytes of the request information of the received request and one stored in the request queue 22. With reference to the transfer byte count of the request information of the request (C), the transfer byte count at the time of merging among one or more requests (C) stored in the request queue 22 is the memory cell array 51. It is checked whether or not there is one or more requests (D) that are equal to or less than the number of bit lines (that is, the size that can be accessed at one time). Here, for example, in the request C, there are c1 and c2, and when c1 and c2 are already merged, the merging unit 31 refers to the merge information and adds up the total number of transfer bytes of c1 and c2. Then, it is checked whether the total number of transfer bytes of the received request is less than the size that can be accessed at one time. If there is no one or more requests (D) (NO in step S109), the merging unit 31 decides not to merge the received request with another request, and proceeds to step S111.

次に、併合部31は、1個以上のリクエスト(D)がある場合には(ステップS109でYES)、併合情報記憶部24内の併合情報を更新する。すなわち、併合部31は、併合相手のリクエストが既に別のリクエストと併合されている場合には、併合されているグループに属するリクエストのTIDに、受信したリクエストのTIDを追記する。併合する相手のリクエストが今回初めて併合される場合には、新規にグループを作成し、そのグループに属するリクエストのTIDに、受信したリクエストのTIDと、併合する相手のリクエストのTIDを書込む(ステップS110)。   Next, when there is one or more requests (D) (YES in step S109), the merging unit 31 updates the merge information in the merge information storage unit 24. That is, the merging unit 31 adds the TID of the received request to the TID of the request belonging to the group that has been merged when the request of the merge partner has already been merged with another request. When the request of the other party to be merged is merged for the first time, a new group is created, and the TID of the received request and the TID of the other party request to be merged are written in the TID of the request belonging to the group (step S110).

次に、ステータス管理部25は、ステータス情報記憶部26内のステータス情報に受信したリクエストのステータス(IDLE)を設定する(ステップS111)。   Next, the status management unit 25 sets the status (IDLE) of the received request in the status information in the status information storage unit 26 (step S111).

(第1の優先度制御の動作)
図10は、第1の優先度制御の動作手順を表わす図である。
(First priority control operation)
FIG. 10 is a diagram illustrating an operation procedure of the first priority control.

図10を参照して、待ち時間計測部28は、1つのリクエストがリクエストキュー22に格納されるごとに、そのリクエスト用のタイマを起動して、待ち時間T1を計測する。すなわち、待ち時間計測部28は、リクエストがリクエストキュー22に格納されることによってステータス情報にそのリクエストのステータスがIDLEが設定された時に、そのリクエスト用のタイマを起動し、待ち時間T1を計測する(ステップS201)。   Referring to FIG. 10, each time a request is stored in the request queue 22, the waiting time measuring unit 28 starts a timer for the request and measures the waiting time T <b> 1. That is, when the request is stored in the request queue 22 and the status of the request is set to IDLE in the status information, the waiting time measuring unit 28 starts the timer for the request and measures the waiting time T1. (Step S201).

次に、選択部34は、キューイング可否判定部20から直接出力されたリクエスト(このリクエストをリクエストAとする)があるかどうかを調べる。   Next, the selection unit 34 checks whether there is a request directly output from the queuing permission determination unit 20 (this request is referred to as a request A).

選択部34は、リクエストAが1個以上存在する場合には(ステップS202でYES)、1個のリクエストAをメモリインタフェース部27へ送る(ステップS203)。   When there are one or more requests A (YES in step S202), the selection unit 34 sends one request A to the memory interface unit 27 (step S203).

次に、選択部34は、リクエストAが存在しない場合には(ステップS202でNO)、リクエストキュー22に格納されているリクエストのリクエスト情報の許容間待ち時間情報を参照して、リクエストキュー22に格納された複数のリクエストについて、許容可能待ち時間T2と、待ち時間計測部28で計測された待ち時間T1との時間差を算出し、この時間差ΔTが閾値TR1以下となるリクエスト(このリクエストをリクエストBとする)があるかどうかを調べる。ここで、TR1は、転送バイト数、メモリコントローラ6からDDR2−SDRAM8までの転送レートを考慮した値である。   Next, when the request A does not exist (NO in step S202), the selection unit 34 refers to the allowable waiting time information in the request information of the request stored in the request queue 22 and stores it in the request queue 22. For a plurality of stored requests, a time difference between the allowable waiting time T2 and the waiting time T1 measured by the waiting time measuring unit 28 is calculated, and a request (this request is requested as a request B) with the time difference ΔT being equal to or less than a threshold value TR1. )). Here, TR1 is a value considering the number of transfer bytes and the transfer rate from the memory controller 6 to the DDR2-SDRAM 8.

選択部34は、リクエストBが1個以上存在する場合には(ステップS204でYES)、1個のリクエストBをメモリインタフェース部27へ送る。ただし、この1個のリクエストBが併合されている場合には、選択部34は、併合されている他のリクエストもメモリインタフェース部27へ送る(ステップS205)。   The selection unit 34 sends one request B to the memory interface unit 27 when there is one or more request B (YES in step S204). However, when the one request B is merged, the selection unit 34 also sends other merged requests to the memory interface unit 27 (step S205).

次に、選択部34は、リクエストBが存在しない場合には(ステップS204でNO)、リクエストキュー22に格納されているリクエストのリクエスト情報の優先度情報を参照して、優先度が他のリクエストよりも高く、かつ最大であるリクエスト(このリクエストをリクエストCとする)があるかどうかを調べる。   Next, when the request B does not exist (NO in step S204), the selection unit 34 refers to the priority information of the request information of the request stored in the request queue 22, and the priority is other requests. It is checked whether there is a request that is higher and the maximum (this request is referred to as request C).

選択部34は、リクエストCが1個以上存在する場合には(ステップS206でYES)、1個のリクエストCをメモリインタフェース部27へ送る。ただし、この1個のリクエストCが併合されている場合には、選択部34は、併合されている他のリクエストもメモリインタフェース部27へ送る(ステップS207)。   If there are one or more requests C (YES in step S206), the selection unit 34 sends one request C to the memory interface unit 27. However, when the one request C is merged, the selection unit 34 also sends other merged requests to the memory interface unit 27 (step S207).

選択部34は、リクエストCが存在しない場合には(ステップS206でNO)、リクエストキュー22のキュー位置が「1」の1個のリクエスト(このリクエストをリクエストDとする)をメモリインタフェース部27へ送る。ただし、この1個のリクエストDが併合されている場合には、選択部34は、併合されている他のリクエストもメモリインタフェース部27へ送る(ステップS208)。   If the request C does not exist (NO in step S206), the selection unit 34 sends one request whose request queue 22 has the queue position “1” (this request is referred to as request D) to the memory interface unit 27. send. However, when the one request D is merged, the selection unit 34 also sends other merged requests to the memory interface unit 27 (step S208).

リクエストキュー22は、格納しているリクエストがメモリインタフェース部27へ出力された場合には、残りのリクエストをキュー位置の番号が小さくなるように詰めることによって、リクエストを再配置する(ステップS209)。   When the stored request is output to the memory interface unit 27, the request queue 22 rearranges the request by closing the remaining requests so that the number of the queue position becomes smaller (step S209).

次に、選択部34は、リクエストキュー22内のリクエストがメモリインタフェース部27へ出力された場合には、再配置したリクエストキュー22の格納状態を表わすようにキュー情報記憶部23内のキュー情報を更新する(ステップS210)。   Next, when the request in the request queue 22 is output to the memory interface unit 27, the selection unit 34 displays the queue information in the queue information storage unit 23 so as to indicate the storage state of the rearranged request queue 22. Update (step S210).

次に、メモリインタフェース部27は、選択部34から出力されたリクエストに基づいて、DDR2−SDRAM8に対して、コマンド、ロウアドレス、およびカラムアドレスを発行して、アクセスを行なう(ステップS211)。   Next, the memory interface unit 27 accesses the DDR2-SDRAM 8 by issuing a command, a row address, and a column address based on the request output from the selection unit 34 (step S211).

次に、ステータス管理部25は、メモリインタフェース部27がリクエストに従ってDDR2−SDRAM8へのアクセスを開始した(つまり、コマンドやアドレスを出力した)ことに応じて、リクエストのステータスをEXEに設定し、そのリクエストを発行したイニシエータにステータス(EXE)を表わすステータス情報を送る(ステップS212)。   Next, the status management unit 25 sets the status of the request to EXE in response to the memory interface unit 27 starting access to the DDR2-SDRAM 8 in accordance with the request (that is, outputting a command or an address). Status information indicating the status (EXE) is sent to the initiator that issued the request (step S212).

(第2の優先度制御の動作)
図11は、第2の優先度制御の動作手順を表わす図である。
(Second priority control operation)
FIG. 11 is a diagram illustrating an operation procedure of the second priority control.

図11を参照して、処理時間計測部32は、1つのリクエストがリクエストキュー22に格納されるごとに、そのリクエスト用のタイマを起動して、処理時間T3を計測する。すなわち、処理時間計測部32は、リクエストがリクエストキュー22に格納されることによってステータス情報にそのリクエストのステータスがIDLEに設定された時に、そのリクエスト用のタイマを起動し、そのリクエストのステータスがEXEに設定されるまでの時間を処理時間T3として計測して、処理時間記憶部61に記憶する(ステップS301)。   Referring to FIG. 11, each time a request is stored in the request queue 22, the processing time measuring unit 32 starts a timer for the request and measures the processing time T <b> 3. That is, when the request is stored in the request queue 22 and the status of the request is set to IDLE in the status information, the processing time measuring unit 32 starts the timer for the request, and the status of the request is EXE. Is measured as a processing time T3 and stored in the processing time storage unit 61 (step S301).

平均処理レート算出部33は、各リクエストの処理時間T3および転送バイト数を用いて、グループごとの平均処理レートR1、つまり1バイトごとの処理時間の平均値を算出して、平均処理レート記憶部62に記憶する。ここでは、1つのグループに属する1個以上のリクエストは、キューイング可否、併合可否、および転送方向が同一であるとする。   The average processing rate calculation unit 33 calculates the average processing rate R1 for each group, that is, the average processing time for each byte, using the processing time T3 and the number of transfer bytes of each request, and calculates the average processing rate storage unit. 62. Here, it is assumed that one or more requests belonging to one group have the same queuing availability, merging availability, and transfer direction.

選択部34は、所定の時間間隔ごとに(ステップS303でYES)、以下のステップの処理を行なう。これは、優先度の制御は、第1の優先度制御を基本としつつ、第1の優先度制御では、いつまでも選択されないリクエストを救済するために第2の優先度制御を行なうためである。   The selection unit 34 performs the following steps at predetermined time intervals (YES in step S303). This is because the priority control is based on the first priority control, and in the first priority control, the second priority control is performed to relieve a request that is not selected indefinitely.

選択部34は、リクエストキュー22に格納されているリクエストのリクエスト情報の想定処理レートR2を参照して、リクエストキュー22に格納されている複数のリクエストについて、そのリクエストが属するグループの平均処理レートR1と、そのリクエストの想定処理レートR2とのレート差ΔRを算出して、このレート差ΔRが閾値TR2以上となるリクエスト(このリクエストをリクエストAとする)があるかどうかを調べる。   The selection unit 34 refers to the assumed processing rate R2 of the request information of the request stored in the request queue 22, and for a plurality of requests stored in the request queue 22, the average processing rate R1 of the group to which the request belongs. Then, a rate difference ΔR with respect to the assumed processing rate R2 of the request is calculated, and it is checked whether or not there is a request (this request is referred to as request A) whose rate difference ΔR is equal to or greater than the threshold value TR2.

選択部34は、そのようなリクエストAが1個以上存在する場合には(ステップS304でYES)、1個のリクエストAをメモリインタフェース部27へ送る。ただし、この1個のリクエストAが併合されている場合には、選択部34は、併合されている他のリクエストもメモリインタフェース部27へ送る(ステップS305)。   If there are one or more such requests A (YES in step S304), the selection unit 34 sends one request A to the memory interface unit 27. However, when the one request A is merged, the selection unit 34 also sends other merged requests to the memory interface unit 27 (step S305).

次に、リクエストキュー22は、格納しているリクエストがメモリインタフェース部27へ出力された場合には、残りのリクエストをキュー位置の番号が小さくなるように詰めることによって、リクエストを再配置する(ステップS306)。   Next, when the stored request is output to the memory interface unit 27, the request queue 22 rearranges the request by closing the remaining requests so that the number of the queue position becomes smaller (step S22). S306).

次に、選択部34は、再配置したリクエストキュー22の格納状態を表わすようにキュー情報記憶部23内のキュー情報を更新する(ステップS307)。   Next, the selection unit 34 updates the queue information in the queue information storage unit 23 to represent the storage state of the rearranged request queue 22 (step S307).

次に、メモリインタフェース部27は、選択部34から出力されたリクエストに基づいて、DDR2−SDRAM8に対して、コマンド、ロウアドレス、およびカラムアドレスを発行して、アクセスを行なう(ステップS308)。   Next, the memory interface unit 27 accesses the DDR2-SDRAM 8 by issuing a command, a row address, and a column address based on the request output from the selection unit 34 (step S308).

次に、ステータス管理部25は、メモリインタフェース部27がリクエストに従ってDDR2−SDRAM8へのアクセスを開始した(つまり、コマンドやアドレスを出力した)ことに応じて、リクエストのステータスをEXEに設定し、そのリクエストを発行したイニシエータにステータス(EXE)を表わすステータス情報を送る(ステップS309)。   Next, the status management unit 25 sets the status of the request to EXE in response to the memory interface unit 27 starting access to the DDR2-SDRAM 8 in accordance with the request (that is, outputting a command or an address). Status information indicating status (EXE) is sent to the initiator that issued the request (step S309).

(イニシエータへの応答処理の動作)
図12は、イニシエータへの応答処理の動作手順を表わす図である。
(Operation of response processing to the initiator)
FIG. 12 is a diagram illustrating an operation procedure of response processing to the initiator.

図12を参照して、メモリインタフェース部27が、転送方向がDDR2−SDRAM8からイニシエータに設定されたリクエストに従ってリードコマンドを出力した場合に(ステップS401でYES)、メモリインタフェース部27は、DDR2−SDRAM8からリードデータを受信する(ステップS402)。   Referring to FIG. 12, when memory interface unit 27 outputs a read command in accordance with a request whose transfer direction is set to the initiator from DDR2-SDRAM 8 (YES in step S401), memory interface unit 27 performs DDR2-SDRAM 8 Read data is received from (step S402).

出力制御部29は、リクエスト情報に基づいて、受信したリードデータをどのイニシエータに出力するかを特定し、特定したイニシエータにリードデータを出力する(ステップS403)。   Based on the request information, the output control unit 29 specifies to which initiator the received read data is to be output, and outputs the read data to the specified initiator (step S403).

ステータス管理部25は、イニシエータへ出力したリードデータに対応するリクエスト、つまり、そのリードデータの転送を指定したリクエストのステータス情報をDONEに設定し、そのリードデータの転送を指定したリクエストを発行したイニシエータにステータス(DONE)を表わすステータス情報を送る(ステップS404)。   The status management unit 25 sets the status information of the request corresponding to the read data output to the initiator, that is, the request designating the transfer of the read data in DONE, and the initiator issuing the request designating the transfer of the read data Status information indicating the status (DONE) is sent to (step S404).

一方、メモリインタフェース部27が、転送方向がイニシエータからDDR2−SDRAM8に設定されたリクエストに従ってライトコマンドを出力した場合に(ステップS401でNO)、ステータス管理部25は、所定の時間が経過した後(ステップS405でYES)、そのリクエストのステータス情報をDONEに設定し、そのリクエストを発行したイニシエータにステータス(DONE)を表わすステータス情報を送る(ステップS406)。   On the other hand, when the memory interface unit 27 outputs a write command in accordance with a request whose transfer direction is set from the initiator to the DDR2-SDRAM 8 (NO in step S401), the status management unit 25 performs a predetermined time ( In step S405, YES), the status information of the request is set to DONE, and status information indicating the status (DONE) is sent to the initiator that issued the request (step S406).

次に、出力制御部29は、そのリクエストが、割込通知要求フラグがオンのリクエストの場合には(ステップS407でYES)、イニシエータ1(CPU)に割込みを表わす割込情報を送る(ステップS408)。   Next, when the request is a request whose interrupt notification request flag is on (YES in step S407), the output control unit 29 sends interrupt information indicating an interrupt to the initiator 1 (CPU) (step S408). ).

以上のように、本発明の実施形態のデータ処理装置によれば、複数のイニシエータからのリクエストでも、同一の行に対するものは併合して一括して処理するので、バススの使用効率を高めることができる。   As described above, according to the data processing apparatus of the embodiment of the present invention, even requests from a plurality of initiators are processed in a lump for the same row, thereby improving the bus use efficiency. it can.

[変形例]
本発明は、上記の実施形態に限定されるものではなく、たとえば、以下のような変形例も含まれる。
[Modification]
The present invention is not limited to the above embodiment, and includes, for example, the following modifications.

(1) 平均処理レート
本発明の実施形態では、DDR2−SDRAMへのアクセスが開始されるまでのレートを想定処理レートとしたが、これに限定するものではない、たとえば、DDR2−SDRAMへのアクセスが終了するまでのレートを想定処理レートとしてもよい。そして、処理時間計測部32は、リクエストがリクエストキュー22に格納されることによってステータス情報にそのリクエストのステータスがIDLEが設定された時に、そのリクエスト用のタイマを起動し、そのリクエストのステータスがDONEに設定される(すなわち、アクセスが終了)までの時間を処理時間T3として計測することとしてもよい。
(1) Average processing rate In the embodiment of the present invention, the rate until the access to the DDR2-SDRAM is started is the assumed processing rate. However, the present invention is not limited to this. It is good also considering the rate until this is completed as an assumed processing rate. Then, when the request is stored in the request queue 22 and the status of the request is set to IDLE in the status information, the processing time measuring unit 32 starts the timer for the request, and the status of the request is DONE. It is good also as measuring the time until it is set to (namely, access is complete | finished) as processing time T3.

(2) ポインタ管理部
本発明の実施形態では、ポインタ管理部が、ポインタとポインタフラグを管理するものとしたが、これに限定するものではない。たとえば、ポインタ管理部が、ポインタとポインタフラグに加えて、アクセス対象のメモリセルのアドレス、ポインタを始点としたアクセス対象のメモリセルの数などを管理することとしてもよい。
(2) Pointer management unit In the embodiment of the present invention, the pointer management unit manages the pointer and the pointer flag. However, the present invention is not limited to this. For example, in addition to the pointer and the pointer flag, the pointer management unit may manage the address of the memory cell to be accessed, the number of memory cells to be accessed starting from the pointer, and the like.

(3) 割り込み
本発明の実施形態では、割込通知要求フラグは、たとえば、画像処理装置において、画像処理の最終段の処理を行なう画像処理モジュール(イニシエータ)が、1画面の最後のデータに対するアクセスを要求するようなリクエストに含まれるとしたが、これに限定するものではない。特定のイニエータが、1画面の最初のデータに対するアクセスを要求するようなリクエストに含まれるものとしてもよい。この場合、ステータス管理部25は、ステータスが(EXE)に変化したリクエストが、割込通知要求フラグがオンのリクエストの場合には、特定のイニシエータ1(CPU)に割込みを表わす割込情報を送るものとしてもよい。
(3) Interruption In the embodiment of the present invention, the interrupt notification request flag is, for example, accessed by the image processing module (initiator) that performs the final stage of image processing in the image processing apparatus to the last data of one screen It is included in a request that requests, but is not limited to this. A specific initiator may be included in a request for requesting access to the first data of one screen. In this case, when the request whose status has changed to (EXE) is a request whose interrupt notification request flag is ON, the status management unit 25 sends interrupt information indicating an interrupt to a specific initiator 1 (CPU). It may be a thing.

(4) ライト要求
本発明の実施形態では、メモリインタフェース部27が転送方向がイニシエータ側に設定されたリクエストに従ってライトコマンドを出力した場合に、ステータス管理部25は、所定の時間が経過した後、そのリクエストのステータスをDONEに設定したが、これに限定するものではない。たとえば、DDR2−SDRAMから書込みを終了したことを表わす情報を受信した後、または、リクエストの転送が終了したことを表わす情報を受信したときに、リクエストのステータスをDONEに設定するものとしてもよい。
(4) Write request In the embodiment of the present invention, when the memory interface unit 27 outputs a write command in accordance with a request in which the transfer direction is set to the initiator side, the status management unit 25 Although the status of the request is set to DONE, the present invention is not limited to this. For example, the status of the request may be set to DONE after receiving information indicating completion of writing from the DDR2-SDRAM or when receiving information indicating completion of transfer of the request.

(5) 割込みの判断
本発明の実施形態では、割込通知要求フラグを用いて、割込情報を送るか否かを判断するものとしたが、これに限定するものではない。たとえば、リクエスト情報に含まれるアクセスされるメモリアドレスに基づいて、割込みを送るか否かを判断してもよい。
(5) Determination of interrupt In the embodiment of the present invention, the interrupt notification request flag is used to determine whether or not to send interrupt information. However, the present invention is not limited to this. For example, it may be determined whether to send an interrupt based on the accessed memory address included in the request information.

またリクエストの併合や実行において、データの整合性や排他処理を考慮することは当然に行うことである。例えば、メモリインタフェース部27でDDR2−SDRAMへのリードリクエスト、ライトリクエスト、再度のリードリクエストが順次受付けられ、2つのリードリクエストが併合可能な属性であったとしても、ライトリクエストにより最初のリードリクエストまたは再度のリードリクエストでのデータに整合性の問題を生じるのであれば、これら2つのリードリクエストの併合は当然に行われず、ライトリクエストの実行時点を挟んで、前後のリードリクエストがかかる順序で実行される。   In addition, it is a matter of course to consider data consistency and exclusive processing when merging and executing requests. For example, even if the memory interface unit 27 sequentially receives a read request, a write request, and a second read request to the DDR2-SDRAM and the two read requests can be merged, the first read request or the If there is a problem of consistency in the data in the second read request, these two read requests are not naturally merged, and the preceding and succeeding read requests are executed in the order in which the write request is executed. The

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。特にメモリインタフェース部に接続されるメモリはDDR2−SDRAMを含むSDRAM(揮発性メモリ)だけでなくNAND型Flashメモリ(不揮発性メモリ)等を含み、アクセスアドレスにより選択される1のワード線に接続されるメモリセルの数が比較的多く1回のワード線アクセスに対して複数回のデータ入出力が対応するようなメモリ、又は複数個のメモリを有する外面的に同様の動作と捉えられる記憶媒体(メモリカード)のインタフェース部において本発明を同様に実施することが可能である。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. In particular, the memory connected to the memory interface section includes not only SDRAM (volatile memory) including DDR2-SDRAM but also NAND flash memory (nonvolatile memory), etc., and is connected to one word line selected by an access address. A memory that has a relatively large number of memory cells and that can handle a plurality of times of data input / output for one word line access, or a storage medium that has a plurality of memories and is regarded as an externally similar operation ( The present invention can be similarly implemented in the interface section of the memory card). The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

本発明の実施形態のデータ処理装置の構成を表わす図である。It is a figure showing the structure of the data processor of embodiment of this invention. リクエストのデータ構造を表わす図である。It is a figure showing the data structure of a request. (a)は、ポインタフラグを表わす図である。(b)は、イニシエータ1で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。(c)は、イニシエータ2で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。(d)は、イニシエータ3で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。(e)は、イニシエータ4で発行されたリクエストのポインタフラグと、ポインタ値の例を表わす図である。(A) is a figure showing a pointer flag. (B) is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 1. (C) is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 2. (D) is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 3. (E) is a diagram illustrating an example of a pointer flag and a pointer value of a request issued by the initiator 4. メモリコントローラの構成を表わす図である。It is a figure showing the structure of a memory controller. (a)および(b)は、リクエストキューの状態の例を表わす図である。(A) And (b) is a figure showing the example of the state of a request queue. キュー情報の例を表わす図である。It is a figure showing the example of queue information. 併合情報の例を表わす図である。It is a figure showing the example of merge information. ステータス情報の例を表わす図である。It is a figure showing the example of status information. キューイングと併合処理の動作手順を表わす図である。It is a figure showing the operation | movement procedure of queuing and a merge process. 第1の優先度制御の動作手順を表わす図である。It is a figure showing the operation | movement procedure of 1st priority control. 第2の優先度制御の動作手順を表わす図である。It is a figure showing the operation | movement procedure of 2nd priority control. イニシエータへの応答処理の動作手順を表わす図である。It is a figure showing the operation | movement procedure of the response process to an initiator.

符号の説明Explanation of symbols

1〜4 イニシエータ、5,12 バス、6 メモリコントローラ、7 バスアービタ、8 DDR2−SDRAM、10 リクエスト生成部、11 ポインタ管理部、20 キューイング可否判定部、21 優先制御部、22 リクエストキュー、23 キュー情報記憶部、24 併合情報記憶部、25 ステータス管理部、26 ステータス情報記憶部、27 メモリインタフェース部、28 待ち時間計測部、29 出力制御部、30 イニシエータグループ情報記憶部、31 併合部、32 処理時間計測部、33 平均処理レート算出部、34 選択部、51 メモリセルアレイ、52 カラムデコーダ、53 ロウデコーダ、54 I/Oバッファ、55 アドレスバッファ、57 コマンドデコーダ、61 処理時間記憶部、62 平均処理レート記憶部。   1-4 initiator, 5, 12 bus, 6 memory controller, 7 bus arbiter, 8 DDR2-SDRAM, 10 request generation unit, 11 pointer management unit, 20 queuing availability determination unit, 21 priority control unit, 22 request queue, 23 queue Information storage unit, 24 merged information storage unit, 25 status management unit, 26 status information storage unit, 27 memory interface unit, 28 waiting time measurement unit, 29 output control unit, 30 initiator group information storage unit, 31 merged unit, 32 processing Time measurement unit, 33 average processing rate calculation unit, 34 selection unit, 51 memory cell array, 52 column decoder, 53 row decoder, 54 I / O buffer, 55 address buffer, 57 command decoder, 61 processing time storage unit, 62 average processing rate憶部.

Claims (15)

複数のメモリアクセスリクエスタからのリクエストを受けて、バスを介してメモリへのアクセスをコントロールするメモリコントローラであって、
複数のメモリアクセスリクエスタから受信したリクエストを格納するキューと、
前記キュー内のリクエストのうち、前記メモリにおける1回の読出しサイクルまたは書込みサイクルでアクセス可能なリクエストを併合する併合部と、
前記リクエストに従って、前記メモリに対してアクセスを行なうインタフェース部とを備え、
前記インタフェース部は、併合された複数のリクエストに対する前記メモリへのアクセスを一括して行なう、メモリコントローラ。
A memory controller that receives requests from a plurality of memory access requesters and controls access to a memory via a bus.
A queue for storing requests received from multiple memory access requesters;
A merging unit for merging requests that are accessible in one read cycle or write cycle in the memory among requests in the queue;
An interface unit for accessing the memory according to the request,
The interface unit is a memory controller that collectively accesses the memory for a plurality of merged requests.
前記メモリは、SDRAMであって、
前記インタフェース部は、併合された複数のリクエストについては、先頭のリクエストについてのみ、プリチャージコマンド、アクティブコマンドおよびロウアドレスを前記SDRAMへ出力する、請求項1記載のメモリコントローラ。
The memory is an SDRAM,
2. The memory controller according to claim 1, wherein the interface unit outputs a precharge command, an active command, and a row address to the SDRAM only for the first request for a plurality of merged requests.
前記メモリコントローラは、さらに、
複数のメモリアクセスリクエスタのうちの併合可能なメモリアクセスリクエスタのグループを表わす第1の情報を記憶する記憶部を備え、
前記併合部は、さらに、前記第1の情報を参照して、併合可能なメモリアクセスリクエスタからのリクエストのみを併合する、請求項1または2記載のメモリコントローラ。
The memory controller further includes:
A storage unit storing first information representing a group of memory access requesters that can be merged among the plurality of memory access requesters;
3. The memory controller according to claim 1, wherein the merging unit further merges only a request from a memory access requestor that can be merged with reference to the first information. 4.
前記リクエストは、他のリクエストとの併合の可否を表わす第2の情報を含み、
前記併合部は、さらに、前記第2の情報を参照して、併合が可能なリクエストのみを併合する、請求項1〜3のいずれか1項に記載のメモリコントローラ。
The request includes second information indicating whether or not to merge with another request,
The memory controller according to claim 1, wherein the merging unit further merges only requests that can be merged with reference to the second information.
前記リクエストは、前記キューへの格納の可否を表わす第3の情報を含み、
前記メモリコントローラは、さらに、
受信したリクエストに含まれる前記第3の情報を参照して、前記キューへの格納が可能なものだけを前記キューに格納するキューイング判定部を備えた、請求項1〜4のいずれか1項に記載のメモリコントローラ。
The request includes third information indicating whether storage in the queue is possible,
The memory controller further includes:
5. The queuing determination unit according to claim 1, further comprising: a queuing determination unit that refers to the third information included in the received request and stores in the queue only those that can be stored in the queue. Memory controller as described in.
前記リクエストは、前記メモリへのアクセスの開始までの許容可能な待ち時間を表わす第4の情報を含み、
前記メモリコントローラは、さらに、
受信したリクエストの前記キューに格納されてからの待ち時間を計測する計測部と、
前記キューに格納された複数のリクエストについて、前記第4の情報で示される許容可能な待ち時間と前記計測部で計測される前記待ち時間との時間差を算出し、前記算出した時間差に基づいて、次に処理すべきリクエストを選択し前記インタフェース部に出力する選択部とを備え、
前記選択部は、前記選択したリクエストが他のリクエストと併合されている場合には、前記併合されている他のリクエストも選択して、前記インタフェース部に出力する、請求項5記載のメモリコントローラ。
The request includes fourth information representing an acceptable waiting time until the start of access to the memory;
The memory controller further includes:
A measuring unit for measuring a waiting time after the received request is stored in the queue;
For a plurality of requests stored in the queue, calculate a time difference between an allowable waiting time indicated by the fourth information and the waiting time measured by the measuring unit, and based on the calculated time difference, A selection unit that selects a request to be processed next and outputs the request to the interface unit;
The memory controller according to claim 5, wherein, when the selected request is merged with another request, the selection unit also selects the other merged request and outputs the selected request to the interface unit.
前記リクエストは、処理の優先度を表わす第5の情報を含み、
前記メモリコントーラは、さらに、
前記キューに格納された複数のリクエストについて、前記第5の情報で示される優先度に基づいて、次に処理すべきリクエストを選択し前記インタフェース部に出力する選択部を備え、
前記選択部は、前記選択したリクエストが他のリクエストと併合されている場合には、前記併合されている他のリクエストも選択して、前記インタフェース部に出力する、請求項5記載のメモリコントローラ。
The request includes fifth information indicating processing priority,
The memory controller further includes:
For a plurality of requests stored in the queue, a selection unit that selects a request to be processed next based on the priority indicated by the fifth information and outputs the request to the interface unit;
The memory controller according to claim 5, wherein, when the selected request is merged with another request, the selection unit also selects the other merged request and outputs the selected request to the interface unit.
前記リクエストは、前記メモリへのアクセスが開始されるまで、または前記メモリへのアクセスが終了するまでの想定処理レートを表わす第6の情報を含み、
前記メモリコントローラは、さらに、
受信したリクエストの前記キューに格納されてからメモリへのアクセスが開始されるまでの処理時間、または前記メモリへのアクセスが終了するまでの処理時間を計測する第2の計測部と、
前記複数のメモリアクセスリクエスタから出力される複数のリクエストを分類したグループごとに、前記計測した処理時間に基づいて平均処理レートを算出する平均処理レート算出部と、
所定の時間ごとに、前記キューに格納された複数のリクエストについて、前記リクエストが属するグループの平均処理レートと、前記リクエストの前記第6の情報で示される想定処理レートとの時間差に基づいて、次に処理すべきリクエストを選択して、前記インタフェース部に出力する選択部とを備え、
前記選択部は、前記選択したリクエストが他のリクエストと併合されている場合には、前記併合されている他のリクエストも選択して、前記インタフェース部に出力する、請求項5記載のメモリコントローラ。
The request includes sixth information indicating an assumed processing rate until access to the memory is started or until access to the memory is ended,
The memory controller further includes:
A second measuring unit for measuring a processing time from when the received request is stored in the queue until the access to the memory is started, or a processing time until the access to the memory is terminated;
An average processing rate calculation unit that calculates an average processing rate based on the measured processing time for each group that classifies a plurality of requests output from the plurality of memory access requesters;
Based on the time difference between the average processing rate of the group to which the request belongs and the assumed processing rate indicated by the sixth information of the request for a plurality of requests stored in the queue at predetermined time intervals, And selecting a request to be processed and outputting to the interface unit,
The memory controller according to claim 5, wherein, when the selected request is merged with another request, the selection unit also selects the other merged request and outputs the selected request to the interface unit.
前記メモリコントローラは、
前記受信したリクエストのステータスを管理するステータス管理部を備え、
前記ステータス管理部は、前記メモリへのアクセスが未実行のリクエストのステータスをアイドルに設定し、前記メモリへのアクセスが実行中のリクエストのステータスを実行中に設定し、前記メモリへのアクセスが終了したリクエストのステータスを終了状態に設定し、
前記ステータス管理部は、前記リクエストを出力したメモリアクセスリクエスタに対して、前記ステータスを通知する、請求項1〜8のいずれか1項に記載のメモリコントローラ。
The memory controller is
A status management unit for managing the status of the received request;
The status management unit sets the status of an unexecuted request for access to the memory to idle, sets the status of a request for which access to the memory is being executed, and completes access to the memory. Set the status of the completed request to finished,
The memory controller according to claim 1, wherein the status management unit notifies the status to a memory access requester that has output the request.
前記ステータス管理部は、前記メモリアクセスリクエスタからのリクエストの受信に応じて、受信したリクエストのステータスをアイドル状態に設定する、請求項9記載のメモリコントローラ。   The memory controller according to claim 9, wherein the status management unit sets a status of the received request to an idle state in response to reception of a request from the memory access requester. 前記ステータス管理部は、前記インタフェース部が、リクエストに従って前記メモリへのアクセスを開始したことに応じて、前記リクエストのステータスを実行状態に設定する、請求項9記載のメモリコントローラ。   The memory controller according to claim 9, wherein the status management unit sets the status of the request to an execution state in response to the interface unit starting access to the memory according to the request. 前記ステータス管理部は、リクエストが読出し要求の場合には、前記リクエストに応答して前記メモリから読出されたデータの受信に応じて、前記リクエストのステータスを終了状態に設定する、請求項9記載のメモリコントローラ。   10. The status management unit according to claim 9, wherein when the request is a read request, the status management unit sets the status of the request to an end state in response to reception of data read from the memory in response to the request. Memory controller. 前記ステータス管理部は、特定のリクエストのステータスが実行中になったことに応じて、所定のメモリアクセスリクエスタに割込みを通知する、請求項9記載のメモリコントローラ。   The memory controller according to claim 9, wherein the status management unit notifies an interrupt to a predetermined memory access requester in response to a status of a specific request being executed. 前記ステータス管理部は、特定のリクエストのステータスが終了状態になったことに応じて、所定のメモリアクセスリクエスタに割込みを通知する、請求項9記載のメモリコントローラ。   The memory controller according to claim 9, wherein the status management unit notifies an interrupt to a predetermined memory access requester in response to a status of a specific request being in an end state. 前記複数のメモリアクセスリクエスタと、
請求項9〜14のいずれか1項に記載のメモリコントローラと、
前記メモリとを備え、
各メモリアクセスリクエスタは、
出力したリクエストごとに、前記メモリ内のアクセス位置のアドレスを表わすポインタを管理するポインタ管理部を備え、
前記ポインタ管理部は、さらに、前記ポインタについて、アクセス状態を表わすポインタフラグを管理し、
前記ポインタ管理部は、読出しのリクエストを出力後、前記ステータス管理部から実行中のステータスの通知を受けたときには、前記ポインタフラグを前記メモリのデータの参照中を表わすように設定し、
書込みのリクエストを出力後、前記ステータス管理部から実行中のステータスの通知を受けたときには、前記ポインタフラグを前記メモリのデータの更新中を表わすように設定し、
リクエストの出力後、前記ステータス管理部から終了状態のステータスの通知を受けたときには、前記ポインタフラグを前記メモリへのアクセスが行なわれていないことを表わすように設定する、データ処理装置。
The plurality of memory access requesters;
The memory controller according to any one of claims 9 to 14,
Said memory,
Each memory access requester
A pointer management unit for managing a pointer representing an address of an access position in the memory for each output request;
The pointer management unit further manages a pointer flag indicating an access state for the pointer,
When the pointer management unit receives a notification of the status being executed from the status management unit after outputting the read request, the pointer management unit sets the pointer flag to indicate that the data in the memory is being referred to,
After outputting the write request, when receiving a notification of the status being executed from the status management unit, the pointer flag is set to indicate that the data in the memory is being updated,
A data processing device that sets the pointer flag to indicate that access to the memory is not performed when receiving a status notification of an end state from the status management unit after outputting a request.
JP2008308795A 2008-12-03 2008-12-03 Memory controller and data processor Pending JP2010134628A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008308795A JP2010134628A (en) 2008-12-03 2008-12-03 Memory controller and data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008308795A JP2010134628A (en) 2008-12-03 2008-12-03 Memory controller and data processor

Publications (1)

Publication Number Publication Date
JP2010134628A true JP2010134628A (en) 2010-06-17

Family

ID=42345881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008308795A Pending JP2010134628A (en) 2008-12-03 2008-12-03 Memory controller and data processor

Country Status (1)

Country Link
JP (1) JP2010134628A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198621A (en) * 2011-03-18 2012-10-18 Nec Corp Memory access control device, processor, and memory access control method
JP2014035678A (en) * 2012-08-09 2014-02-24 Fujitsu Ltd Arithmetic processing unit, information processing unit, and control method for information processing unit
JP2014063385A (en) * 2012-09-21 2014-04-10 Fujitsu Ltd Arithmetic processing unit and method for controlling arithmetic processing unit
WO2015018290A1 (en) * 2013-08-06 2015-02-12 华为技术有限公司 Memory access processing method, apparatus, and system
JP5857273B2 (en) * 2011-05-17 2016-02-10 パナソニックIpマネジメント株式会社 Stream processing device
US9904609B2 (en) 2015-11-04 2018-02-27 Toshiba Memory Corporation Memory controller and memory device
US10579318B1 (en) 2018-12-31 2020-03-03 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10614001B1 (en) 2018-12-31 2020-04-07 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10764455B2 (en) 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
CN111684430A (en) * 2017-12-28 2020-09-18 超威半导体公司 Supporting response to memory types of non-uniform latency on the same channel
US10922038B2 (en) 2018-12-31 2021-02-16 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US11010114B2 (en) 2018-12-31 2021-05-18 Kyocera Document Solutions Inc. Read/write direction-based memory bank control for imaging

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0496841A (en) * 1990-08-14 1992-03-30 Hitachi Ltd Storage control system
JPH0581042A (en) * 1991-09-24 1993-04-02 Fujitsu Ltd Priority control circuit
JPH06162066A (en) * 1992-11-25 1994-06-10 Hitachi Ltd Storage control system
JPH06195313A (en) * 1992-12-25 1994-07-15 Hitachi Ltd Computer system, and integrated circuit and request selecting circuit being suitable therefor
JPH07253923A (en) * 1994-03-15 1995-10-03 Hitachi Ltd Memory control circuit
JP2002328837A (en) * 2001-04-27 2002-11-15 Fujitsu Ltd Memory controller
JP2005339348A (en) * 2004-05-28 2005-12-08 Renesas Technology Corp Semiconductor device
JP2006260472A (en) * 2005-03-18 2006-09-28 Matsushita Electric Ind Co Ltd Memory access device
JP2007249837A (en) * 2006-03-17 2007-09-27 Nec Electronics Corp Memory controller, memory control method, and portable device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0496841A (en) * 1990-08-14 1992-03-30 Hitachi Ltd Storage control system
JPH0581042A (en) * 1991-09-24 1993-04-02 Fujitsu Ltd Priority control circuit
JPH06162066A (en) * 1992-11-25 1994-06-10 Hitachi Ltd Storage control system
JPH06195313A (en) * 1992-12-25 1994-07-15 Hitachi Ltd Computer system, and integrated circuit and request selecting circuit being suitable therefor
JPH07253923A (en) * 1994-03-15 1995-10-03 Hitachi Ltd Memory control circuit
JP2002328837A (en) * 2001-04-27 2002-11-15 Fujitsu Ltd Memory controller
JP2005339348A (en) * 2004-05-28 2005-12-08 Renesas Technology Corp Semiconductor device
JP2006260472A (en) * 2005-03-18 2006-09-28 Matsushita Electric Ind Co Ltd Memory access device
JP2007249837A (en) * 2006-03-17 2007-09-27 Nec Electronics Corp Memory controller, memory control method, and portable device

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198621A (en) * 2011-03-18 2012-10-18 Nec Corp Memory access control device, processor, and memory access control method
JP5857273B2 (en) * 2011-05-17 2016-02-10 パナソニックIpマネジメント株式会社 Stream processing device
JP2014035678A (en) * 2012-08-09 2014-02-24 Fujitsu Ltd Arithmetic processing unit, information processing unit, and control method for information processing unit
JP2014063385A (en) * 2012-09-21 2014-04-10 Fujitsu Ltd Arithmetic processing unit and method for controlling arithmetic processing unit
WO2015018290A1 (en) * 2013-08-06 2015-02-12 华为技术有限公司 Memory access processing method, apparatus, and system
US9898206B2 (en) 2013-08-06 2018-02-20 Huawei Technologies Co., Ltd. Memory access processing method, apparatus, and system
US9904609B2 (en) 2015-11-04 2018-02-27 Toshiba Memory Corporation Memory controller and memory device
CN111684430A (en) * 2017-12-28 2020-09-18 超威半导体公司 Supporting response to memory types of non-uniform latency on the same channel
JP2021509745A (en) * 2017-12-28 2021-04-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated Response support for memory types with non-uniform latency on the same channel
US10579318B1 (en) 2018-12-31 2020-03-03 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10614001B1 (en) 2018-12-31 2020-04-07 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10764455B2 (en) 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10922038B2 (en) 2018-12-31 2021-02-16 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US11010114B2 (en) 2018-12-31 2021-05-18 Kyocera Document Solutions Inc. Read/write direction-based memory bank control for imaging

Similar Documents

Publication Publication Date Title
JP2010134628A (en) Memory controller and data processor
US8949547B2 (en) Coherency controller and method for data hazard handling for copending data access requests
TWI416322B (en) Optimizing concurrent accesses in a directory-based coherency protocol
TWI463318B (en) Cache coherent processing system,cache memory and method for the same
US9158597B2 (en) Controlling access to shared resource by issuing tickets to plurality of execution units
US8447905B2 (en) Dynamic multi-level cache including resource access fairness scheme
US8396996B2 (en) Querying a device for information
US20050188121A1 (en) System and controller with reduced bus utilization time
US8560767B2 (en) Optimizing EDRAM refresh rates in a high performance cache architecture
JP2014508361A (en) Memory interface
JP4834362B2 (en) Memory controller.
US20200285420A1 (en) System, apparatus and method for persistently handling memory requests in a system
US8566532B2 (en) Management of multipurpose command queues in a multilevel cache hierarchy
US9606923B2 (en) Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program
WO2023005352A1 (en) Data processing apparatus and method, computer device, and storage medium
US6928525B1 (en) Per cache line semaphore for cache access arbitration
US9372795B2 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
US11003495B2 (en) Dynamic access of task queues in a parallel processing system
JP2006215621A (en) Dma controller
US8452920B1 (en) System and method for controlling a dynamic random access memory
JP2019509557A (en) Provide scalable DRAM cache management using a dynamic random access memory (DRAM) cache indicator cache
TW201721447A (en) Controller and control method for shared computer resource
CN102087637B (en) Utilization-enhanced shared bus system and bus arbitration method
JPH0844661A (en) Information processor
JP6565729B2 (en) Arithmetic processing device, control device, information processing device, and control method for information processing device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111014

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130820