JP2010128604A - Memory system - Google Patents
Memory system Download PDFInfo
- Publication number
- JP2010128604A JP2010128604A JP2008300038A JP2008300038A JP2010128604A JP 2010128604 A JP2010128604 A JP 2010128604A JP 2008300038 A JP2008300038 A JP 2008300038A JP 2008300038 A JP2008300038 A JP 2008300038A JP 2010128604 A JP2010128604 A JP 2010128604A
- Authority
- JP
- Japan
- Prior art keywords
- descriptor
- access
- priority
- data area
- address
- 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
Links
Images
Abstract
Description
本発明は、メモリシステムに関する。 The present invention relates to a memory system.
従来、メモリシステムでは、メモリコントローラを介してメモリアクセスを行うバスマスタ、バスインタフェース、アドレス領域によって優先度が決定されている。 Conventionally, in a memory system, a priority is determined by a bus master that performs memory access via a memory controller, a bus interface, and an address area.
以下、バスマスタによって優先度を決定する例を示す。
メモリコントローラは各バスマスタに対する優先度情報を保持し、バスマスタからのアクセスにはマスタ識別子が付加される。バスマスタがメモリコントローラにアクセスした際、メモリコントローラはアクセスに付加されたマスタ識別子よりバスマスタを特定し、前記アクセスの優先度を決定し、前記アクセスをアクセスキューに登録する。メモリコントローラはアクセスの優先度に応じてアクセスキュー内のアクセスの順番を入れ替え、メモリデバイスへのアクセス発行順序を変更する。
Hereinafter, an example in which the priority is determined by the bus master will be described.
The memory controller holds priority information for each bus master, and a master identifier is added to access from the bus master. When the bus master accesses the memory controller, the memory controller identifies the bus master from the master identifier added to the access, determines the priority of the access, and registers the access in the access queue. The memory controller changes the access order in the access queue according to the access priority, and changes the access issue order to the memory device.
次に、バスインタフェースによって優先度が決定する例を示す。
メモリコントローラは各バスインタフェースの優先度情報を保持し、バスインタフェースからのアクセスの際、メモリコントローラはどのバスインタフェースからのアクセスかにより前記アクセスの優先度を決定し、前記アクセスをアクセスキューに登録する。メモリコントローラはアクセスの優先度に応じてアクセスキュー内のアクセスの順番を入れ替え、メモリデバイスへのアクセス発行順序を変更する。
Next, an example in which the priority is determined by the bus interface will be described.
The memory controller holds priority information of each bus interface, and when accessing from the bus interface, the memory controller determines the priority of the access depending on which bus interface is accessed, and registers the access in an access queue. . The memory controller changes the access order in the access queue according to the access priority, and changes the access issue order to the memory device.
次に、アドレス領域によって優先度が決定する例を示す。
メモリコントローラは指定されたアドレス領域ごとにそのアドレス領域に対するアクセスの優先度情報を保持する。バスマスタまたはバスインタフェースからのアクセスの際、アクセスされたアドレス領域より前記アクセスの優先度を決定し、前記アクセスをアクセスキューに登録する。メモリコントローラはアクセスの優先度に応じてアクセスキュー内のアクセスの順番を入れ替え、メモリデバイスへのアクセス発行順序を変更する。
Next, an example in which the priority is determined by the address area is shown.
The memory controller holds priority information for access to each address area specified. When accessing from the bus master or the bus interface, the access priority is determined from the accessed address area, and the access is registered in the access queue. The memory controller changes the access order in the access queue according to the access priority, and changes the access issue order to the memory device.
しかしながら、バスマスタごとに優先度を持たせる場合、1つのバスマスタが複数のジョブを処理することもある。そのバスマスタが優先度の高いジョブと優先度の低いジョブを処理する場合、そのバスマスタの優先度を高くすると優先度の低いジョブも優先的に処理されてしまう。 However, when giving priority to each bus master, one bus master may process a plurality of jobs. When the bus master processes a job with a high priority and a job with a low priority, if the priority of the bus master is increased, a job with a lower priority is also processed with priority.
また、そのバスマスタの優先度を低くすると優先度の高いジョブが優先的に処理されないといった問題がある。バスインタフェースごとに優先度を持たせる場合、1つのバスインタフェースに複数のバスマスタからのアクセスがあり、そのアクセスの優先度が異なることもある。そのバスインタフェースの優先度を高くすると、そのバスインタフェースにアクセスする優先度の低いジョブも優先的に処理されてしまう。そのバスインタフェースの優先度を低くすると、そのバスインタフェースにアクセスする優先度の高いジョブが優先的に処理されないといった問題がある。 Also, if the priority of the bus master is lowered, there is a problem that jobs with higher priority are not processed preferentially. When a priority is given to each bus interface, one bus interface is accessed from a plurality of bus masters, and the priority of the access may be different. When the priority of the bus interface is increased, a job with a low priority for accessing the bus interface is also processed with priority. When the priority of the bus interface is lowered, there is a problem that a job having a high priority for accessing the bus interface is not preferentially processed.
また、アドレス領域ごとに優先度を持たせる場合、優先度の異なるジョブが同じアドレス領域を参照することもある。そのアドレス領域の優先度を高くすると優先度の低いジョブも優先的に処理されてしまい、そのアドレス領域の優先度を低くすると優先度の高いジョブが優先的に処理されないといった問題がある。 In addition, when giving priority to each address area, jobs having different priorities may refer to the same address area. If the priority of the address area is increased, a job with a lower priority is also processed preferentially. If the priority of the address area is decreased, a job with a higher priority is not processed preferentially.
また、ソフトウェアでジョブごとに優先度を変更することは可能であるが、優先度の切り替えの粒度が細かい場合には、設定時のオーバーヘッドが生じる。そのため、ジョブに同期した優先度の切り替えが困難であり、効率的にデータ処理を行うためのメモリアクセスを実現できないといった問題がある。 In addition, although it is possible to change the priority for each job by software, when the granularity of priority switching is fine, overhead at the time of setting occurs. Therefore, it is difficult to switch the priority in synchronization with the job, and there is a problem that memory access for efficiently performing data processing cannot be realized.
本発明のメモリシステムは、データフェッチを行うバスマスタと、メモリコントローラと、メモリコントローラに接続されるメモリデバイスとにより構成され、メモリ空間上にバスマスタが使用するデータと、メモリ空間上のデータ領域を指定するディスクリプタとを保持するメモリシステムにおいて、受信した複数のアクセスを保持する手段と、バスマスタからのディスクリプタ領域へのアクセスを判別する手段と、ディスクリプタ領域へのアクセスであった場合、アクセスされたディスクリプタをデコードし、そのディスクリプタが示すデータ領域を保持する手段と、ディスクリプタへのアクセスからディスクリプタが示す領域へのアクセスの優先度を決定する手段と、決定した優先度をデータ領域と対で保持する手段と、バスマスタからのアクセスが、保持しているデータ領域に該当するかを判別する手段と、前記アクセスがデータ領域に該当した場合には、前記データ領域と対の優先度に応じて保持しているアクセスの順序を変更する手段とを有することを特徴とする。 The memory system according to the present invention includes a bus master for fetching data, a memory controller, and a memory device connected to the memory controller, and specifies data used by the bus master and a data area on the memory space on the memory space. In the memory system that holds the descriptor to be accessed, the means for holding the received plurality of accesses, the means for determining access to the descriptor area from the bus master, and the access to the descriptor area if the access is to the descriptor area Means for decoding and holding the data area indicated by the descriptor; means for determining the priority of access from the access to the descriptor to the area indicated by the descriptor; and means for holding the determined priority in pairs with the data area Or bus master Means for determining whether or not the access corresponds to the data area held, and if the access corresponds to the data area, the order of the access held according to the priority of the data area and the pair And means for changing.
本発明によれば、バスマスタの処理内容に応じて優先度を切り替えることが可能となり、優先度の切り替え粒度が細かい場合であっても、ジョブに同期した優先度の切り替えを行うことで、効率的にデータ処理を行うためのメモリアクセスを実現することができる。 According to the present invention, the priority can be switched according to the processing contents of the bus master, and even when the priority switching granularity is fine, switching the priority synchronized with the job is efficient. In addition, memory access for data processing can be realized.
<第1の実施の形態>
図1は、本発明のメモリシステムにおける第1の実施形態を表した構成図である。図1において、101はメモリコントローラである。102はメモリデバイスである。103はバスである。バス103は複数バスマスタからのアクセスを調停し、メモリコントローラ101へアクセスを制御する。
<First Embodiment>
FIG. 1 is a configuration diagram illustrating a first embodiment of a memory system according to the present invention. In FIG. 1,
104、105はバスマスタである。バスマスタ104、105はバス103に接続され、メモリデバイス102へのアクセスを発行する。バスマスタ104、105はディスクリプタを参照することでアクセスするメモリ空間上のデータ領域を特定し、データフェッチを行う。
104 and 105 are bus masters. The
1011はディスクリプタ領域リストである。ディスクリプタ領域リスト1011はメモリデバイス102の複数ディスクリプタのアドレス、またはアドレス領域を保持する。
1012はアドレス判別回路である。アドレス判別回路1012はバスマスタ104、105からのアクセスを受信した際、アクセスのアドレスがディスクリプタ領域であるか否かを判別する。ディスクリプタ領域である場合、前記アクセスがディスクリプタ領域に対するものであることを示すフラグを付加してアクセスキュー1014に登録する。ディスクリプタ領域でない場合、前記アクセスをデータ領域判別回路1013へ送信する。
1013はデータ領域判別回路である。データ領域判別回路1013はバスマスタ104、105から受信したアクセスのアドレスがディスクリプタ情報登録リスト1017に登録されているアドレスであるか否かを判別する。登録されているアドレスである場合、該当アドレス領域の優先度を前記アクセスに付加し、アクセスキュー1014に登録する。登録されていないアドレスである場合、前記アクセスに情報を付加しないで、アクセスキュー1014に登録する。
1014はアクセスキューである。アクセスキュー1014はバスマスタ104、105からのアクセスを複数保持することができるキューである。また、アクセスの優先度に応じてコマンド制御回路1015へ送信するアクセスの順序を変更する。
1015はコマンド制御回路である。コマンド制御回路1015はアクセスキュー1014からのアクセスを受信し、メモリアクセスのコマンドに変換し、メモリデバイス102へコマンドを発行する。また、コマンド制御回路1015はアクセスキュー1014からのアクセスにディスクリプタ領域へのアクセスであるフラグが付加されているか否かを判別する。フラグが付加されている場合は、メモリデバイス102から読み出したディスクリプタをディスクリプタデコード回路1016へ送信する。
1016はディスクリプタデコード回路である。ディスクリプタデコード回路1016はディスクリプタをデコードし、ディスクリプタの指し示すデータ領域と優先度を読み出し、ディスクリプタ情報登録リストに送信する。 Reference numeral 1016 denotes a descriptor decoding circuit. The descriptor decoding circuit 1016 decodes the descriptor, reads the data area and priority indicated by the descriptor, and transmits them to the descriptor information registration list.
1017はディスクリプタ情報登録リストである。ディスクリプタ情報登録リスト1017はデコードされたディスクリプタのデータ領域と優先度を対で保持する。1018はリターンキューである。リターンキュー1018はリードデータを保持しバス103にリードデータを送信できるタイミングで送信する。
1021はディスクリプタである。ディスクリプタ1021はデータ領域1023を指し示す(指定する)情報と優先度の情報が設定されている。1022はディスクリプタである。ディスクリプタ1022はデータ領域1024を指し示す情報と優先度の情報が設定されている。1023はデータ領域である。データ領域1023にはディスクリプタ1021にアクセスしたバスマスタが処理すべきジョブに必要な、換言すれば使用するデータが書かれている。1024はデータ領域である。データ領域1024にはディスクリプタ1022にアクセスしたバスマスタが処理すべきジョブに必要な、換言すれば使用するデータが書かれている。
次に、本発明の第1の実施形態におけるメモリシステムの動作を以下に説明する。図2に示すように、ディスクリプタ1021のアドレスは「0x0000010」、ディスクリプタ1022のアドレスは「0x0000014」であるものとする。また、ディスクリプタ1021の指し示すアドレス領域1023は「0x00000100」から「0x00000200」、ディスクリプタ1022の指し示すアドレス領域1024は「0x00000200」から「0x00000300」であるものとする。さらに、ディスクリプタ1021に設定されている優先度は"L"、ディスクリプタ1022に設定されている優先度は"H"であるとする。優先度は"H"が"L"よりも高いものとする。ここでは、すべてのアクセスはワード単位で行われるものとする。
Next, the operation of the memory system in the first embodiment of the present invention will be described below. As shown in FIG. 2, it is assumed that the address of the
メモリコントローラ101のディスクリプタ領域リスト1011には、ディスクリプタのアドレスリストとして「0x00000010」、「0x00000014」が登録されている。ディスクリプタ領域リスト1011には、「0x00000010」〜「0x00000014」というアドレス領域が登録されていても構わない。
In the
バスマスタ104はディスクリプタ1021をリードし、ディスクリプタ1021の指し示すデータ領域1023からデータフェッチを行う。バスマスタ105はディスクリプタ1022をリードし、ディスクリプタ1022の指し示すデータ領域1024からデータフェッチを行うように設定されているものとする。
The
まず、バスマスタ104がディスクリプタ1021をリードするアクセス(アドレス「0x00000010」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されたものか否かを判別する。アドレス「0x00000010」はディスクリプタ領域リスト1011に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタ領域に対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。
First, the
アクセスキュー1014の中は図3(A)のようになる。コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000010」に対するリードコマンドを発行し、ディスクリプタ1021をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。
The contents of the
ディスクリプタデコード回路1016はディスクリプタ1021をデコードし、ディスクリプタ1021が指し示すデータ領域(0x00000100〜0x00000200)と優先度("L")を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(A)のようになる。
The descriptor decode circuit 1016 decodes the
リターンキュー1018はバスマスタ104にリードデータ(ディスクリプタ1021)を送信する。バスマスタ104はディスクリプタ1021からアクセスするデータ領域(0x00000100〜0x00000200)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。データ領域内のデータアクセス順は任意であるが、本実施形態でバスマスタ104は、0x00000100、0x00000104、0x00000108、・・・、0x000001FCの順に発行するものとする。
The
バスマスタ104から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。
When an access for reading data from the data area is issued from the
データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。
The data
アクセスキュー1014の中は図3(B)のようになる。バスマスタ104が前記データ領域へ複数回アクセスするとアクセスキュー1014は図3(C)のようになる。図3(C)では、最初に登録された数回のアクセスはすでに処理されている。
The contents of the
次に、バスマスタ105がディスクリプタ1022をリードするアクセス(アドレス「0x00000014」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されたものか否かを判別する。アドレス「0x00000014」はディスクリプタ領域リスト1011に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタ領域に対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。アクセスキュー1014の中は図3(D)のようになる。
Next, the
コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000014」に対するリードコマンドを発行し、ディスクリプタ1022をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。
The
ディスクリプタデコード回路1016はディスクリプタ1022をデコードし、ディスクリプタ1022が指し示すデータ領域(0x00000200〜0x00000300)と優先度("H")を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(B)のようになる。
The descriptor decode circuit 1016 decodes the
リターンキュー1018はバスマスタ105にリードデータ(ディスクリプタ1022)を送信する。バスマスタ105はディスクリプタ1022からアクセスするデータ領域(0x00000200〜0x00000300)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。本実施形態でバスマスタ105は、0x00000200、0x00000204、0x00000208、・・・、0x000002FCの順に発行するものとする。
The
バスマスタ105から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。
When an access for reading data from the data area is issued from the
データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。アクセスキュー1014の中は図3(E)のようになる。
The data
このとき、前記アクセスは先に登録されているアクセスよりも優先度が高いので、優先的にコマンド制御回路1015に発行されるように先に登録されているアクセスを追い越すように並び替えられる。
At this time, since the access has a higher priority than the previously registered access, it is rearranged so as to overtake the previously registered access so as to be issued to the
バスマスタ105が前記データ領域へ複数回アクセスすると、バスマスタ105の発行するアクセスがバスマスタ104の発行するアクセスよりも優先的にコマンド制御回路1015に発行されるので、アクセスキュー1014は図3(F)のようになる。
When the
以上のように、ディスクリプタに優先度が設定されていることで、ディスクリプタへのアクセス時に、そのディスクリプタの指し示す領域へのアクセスの優先度を決定することができ、優先度の高い処理を優先度の低い処理よりも優先的に処理することができる。 As described above, since the priority is set for the descriptor, the priority of the access to the area indicated by the descriptor can be determined when the descriptor is accessed, and the processing with the higher priority can be performed. Processing can be performed with priority over low processing.
また、同じバスマスタが異なるディスクリプタへアクセスし、前記異なるディスクリプタに異なる優先度が設定されていれば、同じバスマスタであっても処理の優先度を切り替えることが可能である。例えば、バスマスタ104がディスクリプタ1021をリードし、ディスクリプタ1021の指し示すデータ領域1023からデータをリードしてジョブを実行する。
Further, if the same bus master accesses different descriptors and different priorities are set for the different descriptors, it is possible to switch the processing priorities even for the same bus master. For example, the
次にディスクリプタ1022をリードし、ディスクリプタ1022の指し示すデータ領域1024からデータをリードしてジョブを実行する。ディスクリプタ1021とディスクリプタ1022のデコード結果から優先度が決定し、ディスクリプタ1021ディスクリプタ1022に設定されている優先度が異なれば、同じバスマスタであっても処理ごとに優先度が切り替えられる。
Next, the
また、本実施形態のように同じバスインタフェースであっても処理ごとに優先度が切り替えられる。さらに、アクセスが同じデータ領域であっても異なるディスクリプタに異なる優先度が設定されており、前記異なるディスクリプタが同じデータ領域を指し示していれば、処理の優先度を切り替えることが可能である。 Moreover, the priority is switched for each process even in the same bus interface as in the present embodiment. Furthermore, even if the access is in the same data area, different priorities are set for different descriptors, and if the different descriptors point to the same data area, the processing priorities can be switched.
例えば、ディスクリプタ1021とディスクリプタ1022が同じデータ領域1023を指し示していたとすると、バスマスタ104とバスマスタ105は同じデータ領域1023からデータをリードしてジョブを実行する。ディスクリプタ1021とディスクリプタ1022に設定されている優先度が異なれば、同じデータ領域へのアクセスであっても処理ごとに優先度が切り替えられる。
For example, if the
<第2の実施の形態>
図5は、本発明のメモリシステムにおける第2の実施形態を表した構成図である。図5において、101はメモリコントローラである。102はメモリデバイスである。103はバスである。バス103は複数バスマスタからのアクセスを調停し、メモリコントローラ101へアクセスを制御する。
<Second Embodiment>
FIG. 5 is a block diagram showing a second embodiment of the memory system of the present invention. In FIG. 5,
104、105はバスマスタである。バスマスタ104、105はバス103に接続され、メモリデバイス102へのアクセスを発行する。バスマスタ104、105はディスクリプタを参照することでアクセスするデータ領域を特定し、データフェッチを行う。
104 and 105 are bus masters. The
1011はディスクリプタアドレスリストである。ディスクリプタアドレスリスト1101はメモリデバイス102の複数ディスクリプタのアドレス、またはアドレス領域を保持する。
1102はディスクリプタ優先度リストである。ディスクリプタ優先度リスト1201はディスクリプタアドレスリスト1101の各アドレスに対して優先度を保持する。
Reference numeral 1102 denotes a descriptor priority list. The descriptor priority list 1201 holds the priority for each address in the
1012はアドレス判別回路である。アドレス判別回路1012はバスマスタ104、105からのアクセスを受信した際、アクセスのアドレスがディスクリプタ領域であるか否かを判別する。
ディスクリプタ領域である場合、前記アクセスがディスクリプタ領域に対するものであることを示すフラグを付加してアクセスキュー1014に登録する。ディスクリプタ領域でない場合、前記アクセスをデータ領域判別回路1013へ送信する。
If it is a descriptor area, a flag indicating that the access is to the descriptor area is added and registered in the
1013はデータ領域判別回路である。データ領域判別回路1013はバスマスタ104、105から受信したアクセスのアドレスがディスクリプタ情報登録リスト1017に登録されているアドレスであるか否かを判別する。登録されているアドレスである場合、該当アドレス領域の優先度を前記アクセスに付加し、アクセスキュー1014に登録する。登録されていないアドレスである場合、前記アクセスに情報を付加しないで、アクセスキュー1014に登録する。
1014はアクセスキューである。アクセスキュー1014はバスマスタ104、105からのアクセスを複数保持することができるキューである。また、アクセスの優先度に応じてコマンド制御回路1015へ送信するアクセスの順序を変更する。
1015はコマンド制御回路である。コマンド制御回路1015はアクセスキュー1014からのアクセスを受信し、メモリアクセスのコマンドに変換し、メモリデバイス102へコマンドを発行する。また、コマンド制御回路1015はアクセスキュー1014からのアクセスにディスクリプタ領域へのアクセスであるフラグが付加されているか否かを判別する。フラグが付加されている場合は、メモリデバイス102から読み出したディスクリプタをディスクリプタデコード回路1016へ送信する。
1016はディスクリプタデコード回路である。ディスクリプタデコード回路1016はディスクリプタをデコードし、ディスクリプタの指し示すデータ領域と優先度を読み出し、ディスクリプタ情報登録リストに送信する。 Reference numeral 1016 denotes a descriptor decoding circuit. The descriptor decoding circuit 1016 decodes the descriptor, reads the data area and priority indicated by the descriptor, and transmits them to the descriptor information registration list.
1017はディスクリプタ情報登録リストである。ディスクリプタ情報登録リストはデコードされたディスクリプタのデータ領域と優先度を対で保持する。1018はリターンキューである。リターンキュー1018はリードデータを保持しバス103にリードデータを送信できるタイミングで送信する。
1121はディスクリプタである。ディスクリプタ1121はデータ領域1023を指し示す情報が設定されている。1122はディスクリプタである。ディスクリプタ1122はデータ領域1024を指し示す情報が設定されている。1023はデータ領域である。データ領域1023にはディスクリプタ1121にアクセスしたバスマスタが処理すべきジョブに必要なデータが書かれている。1024はデータ領域である。データ領域1024にはディスクリプタ1122にアクセスしたバスマスタが処理すべきジョブに必要なデータが書かれている。
次に、本発明の第2の実施形態におけるメモリシステムの動作を以下に説明する。図2に示すように、ディスクリプタ1121のアドレスは「0x0000010」、ディスクリプタ1122のアドレスは「0x0000014」であるものとする。また、ディスクリプタ1121の指し示すアドレス領域1023は「0x00000100」から「0x00000200」、ディスクリプタ1122の指し示すアドレス領域1024は「0x00000200」から「0x00000300」であるものとする。ここでは、すべてのアクセスはワード単位で行われるものとする。
Next, the operation of the memory system according to the second embodiment of the present invention will be described below. As shown in FIG. 2, it is assumed that the address of the
メモリコントローラ101のディスクリプタアドレスリスト1101には、ディスクリプタのアドレスリストとして0x00000010、0x00000020が登録されている。ディスクリプタアドレスリスト1101には、0x00000010〜0x0000001Cと0x00000020〜0x0000002Cというアドレス領域が登録されていても構わない。また、ディスクリプタ優先度リスト1201にはアドレス「0x00000010」に対しては優先度"L"、アドレス「0x00000020」に対しては優先度"H"が登録されている。
In the
バスマスタ104はディスクリプタ1121をリードし、ディスクリプタ1121の指し示すデータ領域1023からデータフェッチを行う。バスマスタ105はディスクリプタ1122をリードし、ディスクリプタ1122の指し示すデータ領域1024からデータフェッチを行うように設定されているものとする。
The
まず、バスマスタ104がディスクリプタ1121をリードするアクセス(アドレス「0x00000010」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタアドレスリスト1101に登録されたものか否かを判別する。アドレス「0x00000010」はディスクリプタアドレスリスト1101に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタに対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。
First, the
アクセスキュー1014の中は図3(A)のようになる。このとき、ディスクリプタ優先度リスト1201からアドレス「0x00000010」に該当する優先度"L"がディスクリプタ情報登録リスト1017に登録される。
The contents of the
コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000010」に対するリードコマンドを発行し、ディスクリプタ1121をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。
The
ディスクリプタデコード回路1016はディスクリプタ1121をデコードし、ディスクリプタ1121が指し示すデータ領域(0x00000100〜0x00000200)を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(A)のようになる。
The descriptor decoding circuit 1016 decodes the
リターンキュー1018はバスマスタ104にリードデータ(ディスクリプタ1121)を送信する。バスマスタ104はディスクリプタ1121からアクセスするデータ領域(0x00000100〜0x00000200)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。データ領域内のデータアクセス順は任意であるが、本実施形態でバスマスタ104は、0x00000100、0x00000104、0x00000108、・・・、0x000001FCの順に発行するものとする。
The
バスマスタ104から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタアドレスリスト1101に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。
When an access for reading data from the data area is issued from the
データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。
The data
アクセスキュー1014の中は図3(B)のようになる。バスマスタ104が前記データ領域へ複数回アクセスするとアクセスキュー1014は図3(C)のようになる。図3(C)では、最初に登録された数回のアクセスはすでに処理されている。
The contents of the
次に、バスマスタ105がディスクリプタ1122をリードするアクセス(アドレス「0x00000020」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタアドレスリスト1101に登録されたものか否かを判別する。アドレス「0x00000020」はディスクリプタアドレスリスト1101に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタ領域に対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。
Next, the
アクセスキュー1014の中は図3(D)のようになる。このとき、ディスクリプタ優先度リスト1201からアドレス「0x00000020」に該当する優先度"H"がディスクリプタ情報登録リスト1017に登録される。
The contents of the
コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000020」に対するリードコマンドを発行し、ディスクリプタ1122をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。
The
ディスクリプタデコード回路1016はディスクリプタ1122をデコードし、ディスクリプタ1122が指し示すデータ領域(0x00000200〜0x00000300)を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(B)のようになる。
The descriptor decoding circuit 1016 decodes the
リターンキュー1018はバスマスタ105にリードデータ(ディスクリプタ1122)を送信する。バスマスタ105はディスクリプタ1022からアクセスするデータ領域(0x00000200〜0x00000300)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。本実施形態でバスマスタ105は、0x00000200、0x00000204、0x00000208、・・・、0x000002FCの順に発行するものとする。
The
バスマスタ105から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。
When an access for reading data from the data area is issued from the
データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。アクセスキュー1014の中は図3(E)のようになる。このとき、前記アクセスは先に登録されているアクセスよりも優先度が高いので、優先的にコマンド制御回路1015に発行されるように先に登録されているアクセスを追い越すように並び替えられる。
The data
バスマスタ105が前記データ領域へ複数回アクセスすると、バスマスタ105の発行するアクセスがバスマスタ104の発行するアクセスよりも優先的にコマンド制御回路1015に発行されるので、アクセスキュー1014は図3(F)のようになる。
When the
以上のように、ディスクリプタへのアクセス時に、そのディスクリプタの指し示す領域へのアクセスの優先度を決定することができ、優先度の高い処理を優先度の低い処理よりも優先的に処理することができる。同じバスマスタが異なるディスクリプタへアクセスし、前記異なるディスクリプタのアドレスに対して異なる優先度が設定されていれば、同じバスマスタであっても処理の優先度を切り替えることが可能である。 As described above, when a descriptor is accessed, the priority of access to the area indicated by the descriptor can be determined, and processing with higher priority can be processed with priority over processing with lower priority. . If the same bus master accesses different descriptors and different priorities are set for the addresses of the different descriptors, it is possible to switch processing priorities even for the same bus master.
例えば、バスマスタ104がディスクリプタ1121をリードし、ディスクリプタ1121の指し示すデータ領域1023からデータをリードしてジョブを実行する。
For example, the
次にディスクリプタ1122をリードし、ディスクリプタ1122の指し示すデータ領域1024からデータをリードしてジョブを実行する。ディスクリプタ1121とディスクリプタ1122のアドレスから優先度が決定し、ディスクリプタ1121のアドレスとディスクリプタ1122のアドレスに対して設定されている優先度が異なれば、同じバスマスタであっても処理ごとに優先度が切り替えられる。
Next, the
また、本実施形態のように同じバスインタフェースであっても処理ごとに優先度が切り替えられる。さらに、アクセスが同じデータ領域であっても異なるディスクリプタのアドレスに対して異なる優先度が設定されており、前記異なるディスクリプタが同じデータ領域を指し示していれば、処理の優先度を切り替えることが可能である。 Moreover, the priority is switched for each process even in the same bus interface as in the present embodiment. Furthermore, even if the access is in the same data area, different priorities are set for the addresses of different descriptors. If the different descriptors point to the same data area, it is possible to switch the processing priority. is there.
例えば、ディスクリプタ1121とディスクリプタ1122が同じデータ領域1023を指し示していたとすると、バスマスタ104とバスマスタ105は同じデータ領域1023からデータをリードしてジョブを実行する。しかし、ディスクリプタ1121のアドレスとディスクリプタ1122のアドレスに対して設定されている優先度が異なれば、同じデータ領域へのアクセスであっても処理ごとに優先度が切り替えられる。
For example, if the
101 メモリコントローラ
102 メモリデバイス
103 バス
104,105 バスマスタ
1011 ディスクリプタ領域リスト
1012 アドレス判別回路
1013 データ領域判別回路
1014 アクセスキュー
1015 コマンド制御回路
1016 ディスクリプタデコード回路
1017 ディスクリプタ情報登録回路
1018 リターンキュー
1021,1022,1121,1122 ディスクリプタ
1023,1024 データ領域
1101 ディスクリプタアドレスリスト
1201 ディスクリプタ優先度リスト
101
Claims (3)
受信した複数のアクセスを保持する手段と、
バスマスタからのディスクリプタ領域へのアクセスを判別する手段と、
ディスクリプタ領域へのアクセスであった場合、アクセスされたディスクリプタをデコードし、そのディスクリプタが示すデータ領域を保持する手段と、
ディスクリプタへのアクセスからディスクリプタが示す領域へのアクセスの優先度を決定する手段と、
決定した優先度をデータ領域と対で保持する手段と、
バスマスタからのアクセスが、保持しているデータ領域に該当するかを判別する手段と、
前記アクセスがデータ領域に該当した場合には、前記データ領域と対の優先度に応じて保持しているアクセスの順序を変更する手段とを有することを特徴とするメモリシステム。 A memory that includes a bus master that performs data fetch, a memory controller, and a memory device that is connected to the memory controller, and that holds data used by the bus master in the memory space and a descriptor that specifies a data area in the memory space In the system,
Means for holding multiple received accesses;
Means for determining access to the descriptor area from the bus master;
If the access is to the descriptor area, means for decoding the accessed descriptor and holding the data area indicated by the descriptor;
Means for determining the priority of access to the area indicated by the descriptor from access to the descriptor;
Means for holding the determined priority in pairs with the data area;
Means for determining whether the access from the bus master corresponds to the held data area;
A memory system comprising: means for changing the order of accesses held in accordance with the priority of a pair with the data area when the access corresponds to a data area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008300038A JP2010128604A (en) | 2008-11-25 | 2008-11-25 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008300038A JP2010128604A (en) | 2008-11-25 | 2008-11-25 | Memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010128604A true JP2010128604A (en) | 2010-06-10 |
Family
ID=42328977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008300038A Pending JP2010128604A (en) | 2008-11-25 | 2008-11-25 | Memory system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010128604A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977833B2 (en) | 2011-04-28 | 2015-03-10 | Kabushiki Kaisha Toshiba | Memory system |
US10959134B2 (en) | 2013-02-12 | 2021-03-23 | Altiostar Networks, Inc. | Long term evolution radio access network |
US11510223B2 (en) | 2016-04-08 | 2022-11-22 | Altiostar Networks, Inc. | Wireless data priority services |
US11523346B2 (en) | 2016-12-13 | 2022-12-06 | Altiostar Networks, Inc. | Power control in wireless communications |
-
2008
- 2008-11-25 JP JP2008300038A patent/JP2010128604A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977833B2 (en) | 2011-04-28 | 2015-03-10 | Kabushiki Kaisha Toshiba | Memory system |
US10959134B2 (en) | 2013-02-12 | 2021-03-23 | Altiostar Networks, Inc. | Long term evolution radio access network |
US11910250B2 (en) | 2013-02-12 | 2024-02-20 | Altiostar Networks, Inc. | Long term evolution radio access network |
US11510223B2 (en) | 2016-04-08 | 2022-11-22 | Altiostar Networks, Inc. | Wireless data priority services |
US11523346B2 (en) | 2016-12-13 | 2022-12-06 | Altiostar Networks, Inc. | Power control in wireless communications |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2972787B1 (en) | Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US20140149722A1 (en) | Fusing Immediate Value, Write-Based Instructions in Instruction Processing Circuits, and Related Processor Systems, Methods, and Computer-Readable Media | |
US8176221B2 (en) | DMA controller | |
US10824467B2 (en) | Data processing system with protected mode of operation for processing protected content | |
US9152587B2 (en) | Virtualized interrupt delay mechanism | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2010128604A (en) | Memory system | |
JP4642531B2 (en) | Arbitration of data requests | |
US9552313B2 (en) | Delivering real time interrupts with an advanced programmable interrupt controller | |
EP2856304B1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
JP6106986B2 (en) | Arithmetic processing device, information processing device and interrupt control method | |
JP2005258509A (en) | Storage device | |
US20050135402A1 (en) | Data transfer apparatus | |
JP2005303718A (en) | Matrix bus connection system | |
US8966149B2 (en) | Emulation of an input/output advanced programmable interrupt controller | |
JP2008108126A (en) | Data transfer control device and bus access arbitration system therefor | |
KR101574406B1 (en) | Drawing control device | |
US9740660B2 (en) | CPU control method, electronic system control method and electronic system for improved CPU utilization in executing functions | |
JP2003308289A (en) | Data processor | |
JP4198016B2 (en) | Information processing apparatus and interrupt control method thereof | |
JP6940283B2 (en) | DMA transfer control device, DMA transfer control method, and DMA transfer control program | |
JP2006268734A (en) | Memory access controller | |
JP6138482B2 (en) | Embedded system | |
JP2010140440A (en) | Bus arbitration device | |
JP2007122234A (en) | Bus request arbitration device |