JP2010128604A - Memory system - Google Patents

Memory system Download PDF

Info

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
Application number
JP2008300038A
Other languages
Japanese (ja)
Inventor
Wataru Ochiai
渉 落合
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2008300038A priority Critical patent/JP2010128604A/en
Publication of JP2010128604A publication Critical patent/JP2010128604A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a memory access for efficiently processing data by switching a priority synchronized with a job, even when switching the priority in response to a processing content of a bus master and when a priority-switching grain size is fine. <P>SOLUTION: An access queue 1014 holds the plurality of received accesses, decodes an accessed descriptor, in case of the access to a descriptor area, and holds a data area indicated by the descriptor. The priority of the access to the area indicated by the descriptor is determined based on the access to the descriptor, and the determined priority is held in pairs with the data area. A data area determination circuit 1013 determines whether the access from the data master is corresponds to the held data area or not, and the access queue 1014 changes an order of the held accesses in response to the priority paired with the data area, when the access corresponds to the data area. <P>COPYRIGHT: (C)2010,JPO&INPIT

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.

特開平07−129500号公報JP 07-129500 A 特開2000−20452号公報Japanese Patent Application Laid-Open No. 2000-20442

しかしながら、バスマスタごとに優先度を持たせる場合、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, reference numeral 101 denotes a memory controller. Reference numeral 102 denotes a memory device. Reference numeral 103 denotes a bus. The bus 103 arbitrates access from a plurality of bus masters and controls access to the memory controller 101.

104、105はバスマスタである。バスマスタ104、105はバス103に接続され、メモリデバイス102へのアクセスを発行する。バスマスタ104、105はディスクリプタを参照することでアクセスするメモリ空間上のデータ領域を特定し、データフェッチを行う。   104 and 105 are bus masters. The bus masters 104 and 105 are connected to the bus 103 and issue access to the memory device 102. The bus masters 104 and 105 identify a data area on the memory space to be accessed by referring to the descriptor, and perform data fetch.

1011はディスクリプタ領域リストである。ディスクリプタ領域リスト1011はメモリデバイス102の複数ディスクリプタのアドレス、またはアドレス領域を保持する。   Reference numeral 1011 denotes a descriptor area list. The descriptor area list 1011 holds addresses or address areas of a plurality of descriptors of the memory device 102.

1012はアドレス判別回路である。アドレス判別回路1012はバスマスタ104、105からのアクセスを受信した際、アクセスのアドレスがディスクリプタ領域であるか否かを判別する。ディスクリプタ領域である場合、前記アクセスがディスクリプタ領域に対するものであることを示すフラグを付加してアクセスキュー1014に登録する。ディスクリプタ領域でない場合、前記アクセスをデータ領域判別回路1013へ送信する。   Reference numeral 1012 denotes an address discrimination circuit. When receiving an access from the bus masters 104 and 105, the address determination circuit 1012 determines whether or not the access address is a descriptor area. If it is a descriptor area, a flag indicating that the access is to the descriptor area is added and registered in the access queue 1014. If it is not a descriptor area, the access is transmitted to the data area determination circuit 1013.

1013はデータ領域判別回路である。データ領域判別回路1013はバスマスタ104、105から受信したアクセスのアドレスがディスクリプタ情報登録リスト1017に登録されているアドレスであるか否かを判別する。登録されているアドレスである場合、該当アドレス領域の優先度を前記アクセスに付加し、アクセスキュー1014に登録する。登録されていないアドレスである場合、前記アクセスに情報を付加しないで、アクセスキュー1014に登録する。   Reference numeral 1013 denotes a data area discrimination circuit. The data area determination circuit 1013 determines whether the access address received from the bus masters 104 and 105 is an address registered in the descriptor information registration list 1017. If it is a registered address, the priority of the corresponding address area is added to the access and registered in the access queue 1014. If the address is not registered, it is registered in the access queue 1014 without adding information to the access.

1014はアクセスキューである。アクセスキュー1014はバスマスタ104、105からのアクセスを複数保持することができるキューである。また、アクセスの優先度に応じてコマンド制御回路1015へ送信するアクセスの順序を変更する。   Reference numeral 1014 denotes an access queue. The access queue 1014 is a queue that can hold a plurality of accesses from the bus masters 104 and 105. Further, the order of accesses to be transmitted to the command control circuit 1015 is changed according to the access priority.

1015はコマンド制御回路である。コマンド制御回路1015はアクセスキュー1014からのアクセスを受信し、メモリアクセスのコマンドに変換し、メモリデバイス102へコマンドを発行する。また、コマンド制御回路1015はアクセスキュー1014からのアクセスにディスクリプタ領域へのアクセスであるフラグが付加されているか否かを判別する。フラグが付加されている場合は、メモリデバイス102から読み出したディスクリプタをディスクリプタデコード回路1016へ送信する。   Reference numeral 1015 denotes a command control circuit. The command control circuit 1015 receives an access from the access queue 1014, converts it into a memory access command, and issues the command to the memory device 102. Further, the command control circuit 1015 determines whether or not a flag for accessing the descriptor area is added to the access from the access queue 1014. When the flag is added, the descriptor read from the memory device 102 is transmitted to the descriptor decoding circuit 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にリードデータを送信できるタイミングで送信する。   Reference numeral 1017 denotes a descriptor information registration list. The descriptor information registration list 1017 holds a decoded descriptor data area and priority as a pair. Reference numeral 1018 denotes a return queue. The return queue 1018 holds read data and transmits the read data to the bus 103 at a timing at which the read data can be transmitted.

1021はディスクリプタである。ディスクリプタ1021はデータ領域1023を指し示す(指定する)情報と優先度の情報が設定されている。1022はディスクリプタである。ディスクリプタ1022はデータ領域1024を指し示す情報と優先度の情報が設定されている。1023はデータ領域である。データ領域1023にはディスクリプタ1021にアクセスしたバスマスタが処理すべきジョブに必要な、換言すれば使用するデータが書かれている。1024はデータ領域である。データ領域1024にはディスクリプタ1022にアクセスしたバスマスタが処理すべきジョブに必要な、換言すれば使用するデータが書かれている。   Reference numeral 1021 denotes a descriptor. In the descriptor 1021, information indicating (specifying) the data area 1023 and priority information are set. Reference numeral 1022 denotes a descriptor. In the descriptor 1022, information indicating the data area 1024 and priority information are set. Reference numeral 1023 denotes a data area. In the data area 1023, data necessary for a job to be processed by the bus master accessing the descriptor 1021, in other words, data to be used is written. Reference numeral 1024 denotes a data area. In the data area 1024, data necessary for a job to be processed by the bus master accessing the descriptor 1022, in other words, data to be used is written.

次に、本発明の第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 descriptor 1021 is “0x0000010” and the address of the descriptor 1022 is “0x0000014”. Further, it is assumed that the address area 1023 pointed to by the descriptor 1021 is “0x00000100” to “0x00000200”, and the address area 1024 pointed to by the descriptor 1022 is “0x00000200” to “0x00000300”. Further, it is assumed that the priority set for the descriptor 1021 is “L” and the priority set for the descriptor 1022 is “H”. It is assumed that the priority is “H” higher than “L”. Here, it is assumed that all accesses are performed in units of words.

メモリコントローラ101のディスクリプタ領域リスト1011には、ディスクリプタのアドレスリストとして「0x00000010」、「0x00000014」が登録されている。ディスクリプタ領域リスト1011には、「0x00000010」〜「0x00000014」というアドレス領域が登録されていても構わない。   In the descriptor area list 1011 of the memory controller 101, “0x00000010” and “0x00000014” are registered as descriptor address lists. In the descriptor area list 1011, address areas “0x00000010” to “0x00000014” may be registered.

バスマスタ104はディスクリプタ1021をリードし、ディスクリプタ1021の指し示すデータ領域1023からデータフェッチを行う。バスマスタ105はディスクリプタ1022をリードし、ディスクリプタ1022の指し示すデータ領域1024からデータフェッチを行うように設定されているものとする。   The bus master 104 reads the descriptor 1021 and fetches data from the data area 1023 indicated by the descriptor 1021. Assume that the bus master 105 is set to read the descriptor 1022 and fetch data from the data area 1024 indicated by the descriptor 1022.

まず、バスマスタ104がディスクリプタ1021をリードするアクセス(アドレス「0x00000010」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されたものか否かを判別する。アドレス「0x00000010」はディスクリプタ領域リスト1011に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタ領域に対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。   First, the bus master 104 issues an access for reading the descriptor 1021 (reading the address “0x00000010”). The address discrimination circuit 1012 discriminates whether or not the received access address is registered in the descriptor area list 1011. Since the address “0x00000010” is registered in the descriptor area list 1011, the address determination circuit 1012 adds a flag indicating that the access is to the descriptor area and registers it in the access queue 1014.

アクセスキュー1014の中は図3(A)のようになる。コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000010」に対するリードコマンドを発行し、ディスクリプタ1021をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。   The contents of the access queue 1014 are as shown in FIG. The command control circuit 1015 receives the access from the access queue 1014, issues a read command for the address “0x00000010” to the memory device 102, and reads the descriptor 1021. Since a flag indicating access to the descriptor area is added to the access, the command control circuit 1015 registers the read data in the return queue 1018 and transmits it to the descriptor decoding circuit 1016 at the same time.

ディスクリプタデコード回路1016はディスクリプタ1021をデコードし、ディスクリプタ1021が指し示すデータ領域(0x00000100〜0x00000200)と優先度("L")を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(A)のようになる。   The descriptor decode circuit 1016 decodes the descriptor 1021, reads the data area (0x00000100 to 0x00000200) and priority (“L”) indicated by the descriptor 1021, and registers them in the descriptor information registration list 1017. The descriptor information registration list 1017 is as shown in FIG.

リターンキュー1018はバスマスタ104にリードデータ(ディスクリプタ1021)を送信する。バスマスタ104はディスクリプタ1021からアクセスするデータ領域(0x00000100〜0x00000200)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。データ領域内のデータアクセス順は任意であるが、本実施形態でバスマスタ104は、0x00000100、0x00000104、0x00000108、・・・、0x000001FCの順に発行するものとする。   The return queue 1018 transmits read data (descriptor 1021) to the bus master 104. The bus master 104 reads the data area (0x00000100 to 0x00000200) to be accessed from the descriptor 1021, and issues access for reading data from the data area in order. Although the data access order in the data area is arbitrary, in this embodiment, the bus master 104 issues 0x00000100, 0x00000104, 0x00000108,..., 0x000001FC in this order.

バスマスタ104から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。   When an access for reading data from the data area is issued from the bus master 104, the address determination circuit 1012 does not register the access address in the descriptor area list 1011. Therefore, the access is transmitted to the data area discrimination circuit 1013.

データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。   The data area determination circuit 1013 determines whether or not the access is for a data area registered in the descriptor information registration list 1017. Since the address area corresponding to the access address is registered in the descriptor information registration list 1017, the priority registered in pairs with the address area is added to the access and registered in the access queue 1014.

アクセスキュー1014の中は図3(B)のようになる。バスマスタ104が前記データ領域へ複数回アクセスするとアクセスキュー1014は図3(C)のようになる。図3(C)では、最初に登録された数回のアクセスはすでに処理されている。   The contents of the access queue 1014 are as shown in FIG. When the bus master 104 accesses the data area a plurality of times, the access queue 1014 becomes as shown in FIG. In FIG. 3C, the first registered several accesses have already been processed.

次に、バスマスタ105がディスクリプタ1022をリードするアクセス(アドレス「0x00000014」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されたものか否かを判別する。アドレス「0x00000014」はディスクリプタ領域リスト1011に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタ領域に対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。アクセスキュー1014の中は図3(D)のようになる。   Next, the bus master 105 issues an access for reading the descriptor 1022 (reading the address “0x00000014”). The address discrimination circuit 1012 discriminates whether or not the received access address is registered in the descriptor area list 1011. Since the address “0x00000014” is registered in the descriptor area list 1011, the address determination circuit 1012 adds a flag indicating that the access is to the descriptor area and registers it in the access queue 1014. The contents of the access queue 1014 are as shown in FIG.

コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000014」に対するリードコマンドを発行し、ディスクリプタ1022をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。   The command control circuit 1015 receives the access from the access queue 1014, issues a read command for the address “0x00000014” to the memory device 102, and reads the descriptor 1022. Since a flag indicating access to the descriptor area is added to the access, the command control circuit 1015 registers the read data in the return queue 1018 and transmits it to the descriptor decoding circuit 1016 at the same time.

ディスクリプタデコード回路1016はディスクリプタ1022をデコードし、ディスクリプタ1022が指し示すデータ領域(0x00000200〜0x00000300)と優先度("H")を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(B)のようになる。   The descriptor decode circuit 1016 decodes the descriptor 1022, reads the data area (0x00000200 to 0x00000300) and priority (“H”) indicated by the descriptor 1022, and registers them in the descriptor information registration list 1017. The descriptor information registration list 1017 is as shown in FIG.

リターンキュー1018はバスマスタ105にリードデータ(ディスクリプタ1022)を送信する。バスマスタ105はディスクリプタ1022からアクセスするデータ領域(0x00000200〜0x00000300)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。本実施形態でバスマスタ105は、0x00000200、0x00000204、0x00000208、・・・、0x000002FCの順に発行するものとする。   The return queue 1018 transmits read data (descriptor 1022) to the bus master 105. The bus master 105 reads the data area (0x00000200 to 0x00000300) to be accessed from the descriptor 1022, and issues access for reading data from the data area in order. In this embodiment, the bus master 105 issues 0x00000200, 0x00000204, 0x00000208, ..., 0x000002FC in this order.

バスマスタ105から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。   When an access for reading data from the data area is issued from the bus master 105, the address determination circuit 1012 does not register the access address in the descriptor area list 1011. Therefore, the access is transmitted to the data area discrimination circuit 1013.

データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。アクセスキュー1014の中は図3(E)のようになる。   The data area determination circuit 1013 determines whether or not the access is for a data area registered in the descriptor information registration list 1017. Since the address area corresponding to the access address is registered in the descriptor information registration list 1017, the priority registered in pairs with the address area is added to the access and registered in the access queue 1014. The contents of the access queue 1014 are as shown in FIG.

このとき、前記アクセスは先に登録されているアクセスよりも優先度が高いので、優先的にコマンド制御回路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 command control circuit 1015 preferentially.

バスマスタ105が前記データ領域へ複数回アクセスすると、バスマスタ105の発行するアクセスがバスマスタ104の発行するアクセスよりも優先的にコマンド制御回路1015に発行されるので、アクセスキュー1014は図3(F)のようになる。   When the bus master 105 accesses the data area a plurality of times, the access issued by the bus master 105 is issued to the command control circuit 1015 preferentially over the access issued by the bus master 104, so that the access queue 1014 is shown in FIG. It becomes like this.

以上のように、ディスクリプタに優先度が設定されていることで、ディスクリプタへのアクセス時に、そのディスクリプタの指し示す領域へのアクセスの優先度を決定することができ、優先度の高い処理を優先度の低い処理よりも優先的に処理することができる。   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 bus master 104 reads the descriptor 1021, reads data from the data area 1023 indicated by the descriptor 1021, and executes the job.

次にディスクリプタ1022をリードし、ディスクリプタ1022の指し示すデータ領域1024からデータをリードしてジョブを実行する。ディスクリプタ1021とディスクリプタ1022のデコード結果から優先度が決定し、ディスクリプタ1021ディスクリプタ1022に設定されている優先度が異なれば、同じバスマスタであっても処理ごとに優先度が切り替えられる。   Next, the descriptor 1022 is read, data is read from the data area 1024 pointed to by the descriptor 1022, and the job is executed. If the priority is determined from the decoding results of the descriptor 1021 and the descriptor 1022 and the priority set in the descriptor 1021 descriptor 1022 is different, the priority is switched for each process even for the same bus master.

また、本実施形態のように同じバスインタフェースであっても処理ごとに優先度が切り替えられる。さらに、アクセスが同じデータ領域であっても異なるディスクリプタに異なる優先度が設定されており、前記異なるディスクリプタが同じデータ領域を指し示していれば、処理の優先度を切り替えることが可能である。   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 descriptor 1021 and the descriptor 1022 indicate the same data area 1023, the bus master 104 and the bus master 105 read data from the same data area 1023 and execute the job. If the priorities set in the descriptor 1021 and the descriptor 1022 are different, the priorities are switched for each process even when accessing the same data area.

<第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, reference numeral 101 denotes a memory controller. Reference numeral 102 denotes a memory device. Reference numeral 103 denotes a bus. The bus 103 arbitrates access from a plurality of bus masters and controls access to the memory controller 101.

104、105はバスマスタである。バスマスタ104、105はバス103に接続され、メモリデバイス102へのアクセスを発行する。バスマスタ104、105はディスクリプタを参照することでアクセスするデータ領域を特定し、データフェッチを行う。   104 and 105 are bus masters. The bus masters 104 and 105 are connected to the bus 103 and issue access to the memory device 102. The bus masters 104 and 105 identify the data area to be accessed by referring to the descriptor, and perform data fetch.

1011はディスクリプタアドレスリストである。ディスクリプタアドレスリスト1101はメモリデバイス102の複数ディスクリプタのアドレス、またはアドレス領域を保持する。   Reference numeral 1011 denotes a descriptor address list. The descriptor address list 1101 holds addresses or address areas of a plurality of descriptors of the memory device 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 descriptor address list 1101.

1012はアドレス判別回路である。アドレス判別回路1012はバスマスタ104、105からのアクセスを受信した際、アクセスのアドレスがディスクリプタ領域であるか否かを判別する。   Reference numeral 1012 denotes an address discrimination circuit. When receiving an access from the bus masters 104 and 105, the address determination circuit 1012 determines whether or not the access address is a descriptor area.

ディスクリプタ領域である場合、前記アクセスがディスクリプタ領域に対するものであることを示すフラグを付加してアクセスキュー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 access queue 1014. If it is not a descriptor area, the access is transmitted to the data area determination circuit 1013.

1013はデータ領域判別回路である。データ領域判別回路1013はバスマスタ104、105から受信したアクセスのアドレスがディスクリプタ情報登録リスト1017に登録されているアドレスであるか否かを判別する。登録されているアドレスである場合、該当アドレス領域の優先度を前記アクセスに付加し、アクセスキュー1014に登録する。登録されていないアドレスである場合、前記アクセスに情報を付加しないで、アクセスキュー1014に登録する。   Reference numeral 1013 denotes a data area discrimination circuit. The data area determination circuit 1013 determines whether the access address received from the bus masters 104 and 105 is an address registered in the descriptor information registration list 1017. If it is a registered address, the priority of the corresponding address area is added to the access and registered in the access queue 1014. If the address is not registered, it is registered in the access queue 1014 without adding information to the access.

1014はアクセスキューである。アクセスキュー1014はバスマスタ104、105からのアクセスを複数保持することができるキューである。また、アクセスの優先度に応じてコマンド制御回路1015へ送信するアクセスの順序を変更する。   Reference numeral 1014 denotes an access queue. The access queue 1014 is a queue that can hold a plurality of accesses from the bus masters 104 and 105. Further, the order of accesses to be transmitted to the command control circuit 1015 is changed according to the access priority.

1015はコマンド制御回路である。コマンド制御回路1015はアクセスキュー1014からのアクセスを受信し、メモリアクセスのコマンドに変換し、メモリデバイス102へコマンドを発行する。また、コマンド制御回路1015はアクセスキュー1014からのアクセスにディスクリプタ領域へのアクセスであるフラグが付加されているか否かを判別する。フラグが付加されている場合は、メモリデバイス102から読み出したディスクリプタをディスクリプタデコード回路1016へ送信する。   Reference numeral 1015 denotes a command control circuit. The command control circuit 1015 receives an access from the access queue 1014, converts it into a memory access command, and issues the command to the memory device 102. Further, the command control circuit 1015 determines whether or not a flag for accessing the descriptor area is added to the access from the access queue 1014. When the flag is added, the descriptor read from the memory device 102 is transmitted to the descriptor decoding circuit 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にリードデータを送信できるタイミングで送信する。   Reference numeral 1017 denotes a descriptor information registration list. The descriptor information registration list holds a decoded data area and priority in pairs. Reference numeral 1018 denotes a return queue. The return queue 1018 holds read data and transmits the read data to the bus 103 at a timing at which the read data can be transmitted.

1121はディスクリプタである。ディスクリプタ1121はデータ領域1023を指し示す情報が設定されている。1122はディスクリプタである。ディスクリプタ1122はデータ領域1024を指し示す情報が設定されている。1023はデータ領域である。データ領域1023にはディスクリプタ1121にアクセスしたバスマスタが処理すべきジョブに必要なデータが書かれている。1024はデータ領域である。データ領域1024にはディスクリプタ1122にアクセスしたバスマスタが処理すべきジョブに必要なデータが書かれている。   Reference numeral 1121 denotes a descriptor. In the descriptor 1121, information indicating the data area 1023 is set. 1122 is a descriptor. In the descriptor 1122, information indicating the data area 1024 is set. Reference numeral 1023 denotes a data area. In the data area 1023, data necessary for a job to be processed by the bus master accessing the descriptor 1121 is written. Reference numeral 1024 denotes a data area. In the data area 1024, data necessary for a job to be processed by the bus master accessing the descriptor 1122 is written.

次に、本発明の第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 descriptor 1121 is “0x0000010” and the address of the descriptor 1122 is “0x0000014”. Further, it is assumed that the address area 1023 pointed to by the descriptor 1121 is “0x00000100” to “0x00000200”, and the address area 1024 pointed to by the descriptor 1122 is “0x00000200” to “0x00000300”. Here, it is assumed that all accesses are performed in units of words.

メモリコントローラ101のディスクリプタアドレスリスト1101には、ディスクリプタのアドレスリストとして0x00000010、0x00000020が登録されている。ディスクリプタアドレスリスト1101には、0x00000010〜0x0000001Cと0x00000020〜0x0000002Cというアドレス領域が登録されていても構わない。また、ディスクリプタ優先度リスト1201にはアドレス「0x00000010」に対しては優先度"L"、アドレス「0x00000020」に対しては優先度"H"が登録されている。   In the descriptor address list 1101 of the memory controller 101, 0x00000010 and 0x00000020 are registered as descriptor address lists. In the descriptor address list 1101, address areas 0x00000010 to 0x0000001C and 0x00000020 to 0x0000002C may be registered. In the descriptor priority list 1201, a priority “L” is registered for the address “0x00000010”, and a priority “H” is registered for the address “0x00000020”.

バスマスタ104はディスクリプタ1121をリードし、ディスクリプタ1121の指し示すデータ領域1023からデータフェッチを行う。バスマスタ105はディスクリプタ1122をリードし、ディスクリプタ1122の指し示すデータ領域1024からデータフェッチを行うように設定されているものとする。   The bus master 104 reads the descriptor 1121 and fetches data from the data area 1023 indicated by the descriptor 1121. Assume that the bus master 105 is set to read the descriptor 1122 and fetch data from the data area 1024 indicated by the descriptor 1122.

まず、バスマスタ104がディスクリプタ1121をリードするアクセス(アドレス「0x00000010」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタアドレスリスト1101に登録されたものか否かを判別する。アドレス「0x00000010」はディスクリプタアドレスリスト1101に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタに対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。   First, the bus master 104 issues an access for reading the descriptor 1121 (reading the address “0x00000010”). The address determination circuit 1012 determines whether the received access address is registered in the descriptor address list 1101. Since the address “0x00000010” is registered in the descriptor address list 1101, the address determination circuit 1012 adds a flag indicating that the access is an access to the descriptor and registers it in the access queue 1014.

アクセスキュー1014の中は図3(A)のようになる。このとき、ディスクリプタ優先度リスト1201からアドレス「0x00000010」に該当する優先度"L"がディスクリプタ情報登録リスト1017に登録される。   The contents of the access queue 1014 are as shown in FIG. At this time, the priority “L” corresponding to the address “0x00000010” is registered in the descriptor information registration list 1017 from the descriptor priority list 1201.

コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000010」に対するリードコマンドを発行し、ディスクリプタ1121をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。   The command control circuit 1015 receives the access from the access queue 1014, issues a read command for the address “0x00000010” to the memory device 102, and reads the descriptor 1121. Since a flag indicating access to the descriptor area is added to the access, the command control circuit 1015 registers the read data in the return queue 1018 and transmits it to the descriptor decoding circuit 1016 at the same time.

ディスクリプタデコード回路1016はディスクリプタ1121をデコードし、ディスクリプタ1121が指し示すデータ領域(0x00000100〜0x00000200)を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(A)のようになる。   The descriptor decoding circuit 1016 decodes the descriptor 1121, reads the data area (0x00000100 to 0x00000200) indicated by the descriptor 1121, and registers it in the descriptor information registration list 1017. The descriptor information registration list 1017 is as shown in FIG.

リターンキュー1018はバスマスタ104にリードデータ(ディスクリプタ1121)を送信する。バスマスタ104はディスクリプタ1121からアクセスするデータ領域(0x00000100〜0x00000200)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。データ領域内のデータアクセス順は任意であるが、本実施形態でバスマスタ104は、0x00000100、0x00000104、0x00000108、・・・、0x000001FCの順に発行するものとする。   The return queue 1018 transmits read data (descriptor 1121) to the bus master 104. The bus master 104 reads the data area (0x00000100 to 0x00000200) to be accessed from the descriptor 1121, and issues access for reading data from the data area in order. Although the data access order in the data area is arbitrary, in this embodiment, the bus master 104 issues 0x00000100, 0x00000104, 0x00000108,..., 0x000001FC in this order.

バスマスタ104から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタアドレスリスト1101に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。   When an access for reading data from the data area is issued from the bus master 104, the address determination circuit 1012 does not register the access address in the descriptor address list 1101. Therefore, the access is transmitted to the data area discrimination circuit 1013.

データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。   The data area determination circuit 1013 determines whether or not the access is for a data area registered in the descriptor information registration list 1017. Since the address area corresponding to the access address is registered in the descriptor information registration list 1017, the priority registered in pairs with the address area is added to the access and registered in the access queue 1014.

アクセスキュー1014の中は図3(B)のようになる。バスマスタ104が前記データ領域へ複数回アクセスするとアクセスキュー1014は図3(C)のようになる。図3(C)では、最初に登録された数回のアクセスはすでに処理されている。   The contents of the access queue 1014 are as shown in FIG. When the bus master 104 accesses the data area a plurality of times, the access queue 1014 becomes as shown in FIG. In FIG. 3C, the first registered several accesses have already been processed.

次に、バスマスタ105がディスクリプタ1122をリードするアクセス(アドレス「0x00000020」をリード)を発行する。アドレス判別回路1012は受信した前記アクセスのアドレスがディスクリプタアドレスリスト1101に登録されたものか否かを判別する。アドレス「0x00000020」はディスクリプタアドレスリスト1101に登録されているので、アドレス判別回路1012は前記アクセスがディスクリプタ領域に対するアクセスであることを示すフラグを付加し、アクセスキュー1014に登録する。   Next, the bus master 105 issues an access for reading the descriptor 1122 (reading the address “0x00000020”). The address determination circuit 1012 determines whether the received access address is registered in the descriptor address list 1101. Since the address “0x00000020” is registered in the descriptor address list 1101, the address determination circuit 1012 adds a flag indicating that the access is an access to the descriptor area and registers it in the access queue 1014.

アクセスキュー1014の中は図3(D)のようになる。このとき、ディスクリプタ優先度リスト1201からアドレス「0x00000020」に該当する優先度"H"がディスクリプタ情報登録リスト1017に登録される。   The contents of the access queue 1014 are as shown in FIG. At this time, the priority “H” corresponding to the address “0x00000020” from the descriptor priority list 1201 is registered in the descriptor information registration list 1017.

コマンド制御回路1015はアクセスキュー1014から前記アクセスを受信し、メモリデバイス102へアドレス「0x00000020」に対するリードコマンドを発行し、ディスクリプタ1122をリードする。前記アクセスにはディスクリプタ領域へのアクセスであるフラグが付加されていたので、コマンド制御回路1015はリードデータをリターンキュー1018に登録すると同時に、ディスクリプタデコード回路1016に送信する。   The command control circuit 1015 receives the access from the access queue 1014, issues a read command for the address “0x00000020” to the memory device 102, and reads the descriptor 1122. Since a flag indicating access to the descriptor area is added to the access, the command control circuit 1015 registers the read data in the return queue 1018 and transmits it to the descriptor decoding circuit 1016 at the same time.

ディスクリプタデコード回路1016はディスクリプタ1122をデコードし、ディスクリプタ1122が指し示すデータ領域(0x00000200〜0x00000300)を読出し、ディスクリプタ情報登録リスト1017に登録する。ディスクリプタ情報登録リスト1017の中は図4(B)のようになる。   The descriptor decoding circuit 1016 decodes the descriptor 1122, reads the data area (0x00000200 to 0x00000300) pointed to by the descriptor 1122, and registers it in the descriptor information registration list 1017. The descriptor information registration list 1017 is as shown in FIG.

リターンキュー1018はバスマスタ105にリードデータ(ディスクリプタ1122)を送信する。バスマスタ105はディスクリプタ1022からアクセスするデータ領域(0x00000200〜0x00000300)を読み出し、前記データ領域からデータをリードするためのアクセスを順に発行する。本実施形態でバスマスタ105は、0x00000200、0x00000204、0x00000208、・・・、0x000002FCの順に発行するものとする。   The return queue 1018 transmits read data (descriptor 1122) to the bus master 105. The bus master 105 reads the data area (0x00000200 to 0x00000300) to be accessed from the descriptor 1022, and issues access for reading data from the data area in order. In this embodiment, the bus master 105 issues 0x00000200, 0x00000204, 0x00000208, ..., 0x000002FC in this order.

バスマスタ105から前記データ領域からデータをリードするためのアクセスが発行されると、アドレス判別回路1012は前記アクセスのアドレスがディスクリプタ領域リスト1011に登録されていない。よって、前記アクセスをデータ領域判別回路1013に送信する。   When an access for reading data from the data area is issued from the bus master 105, the address determination circuit 1012 does not register the access address in the descriptor area list 1011. Therefore, the access is transmitted to the data area discrimination circuit 1013.

データ領域判別回路1013は前記アクセスがディスクリプタ情報登録リスト1017に登録されているデータ領域に対するものか否かを判別する。ディスクリプタ情報登録リスト1017には前記アクセスのアドレスが該当するアドレス領域が登録されているので、前記アドレス領域と対で登録されている優先度を前記アクセスに付加してアクセスキュー1014に登録する。アクセスキュー1014の中は図3(E)のようになる。このとき、前記アクセスは先に登録されているアクセスよりも優先度が高いので、優先的にコマンド制御回路1015に発行されるように先に登録されているアクセスを追い越すように並び替えられる。   The data area determination circuit 1013 determines whether or not the access is for a data area registered in the descriptor information registration list 1017. Since the address area corresponding to the access address is registered in the descriptor information registration list 1017, the priority registered in pairs with the address area is added to the access and registered in the access queue 1014. The contents of the access queue 1014 are as shown in FIG. 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 command control circuit 1015 preferentially.

バスマスタ105が前記データ領域へ複数回アクセスすると、バスマスタ105の発行するアクセスがバスマスタ104の発行するアクセスよりも優先的にコマンド制御回路1015に発行されるので、アクセスキュー1014は図3(F)のようになる。   When the bus master 105 accesses the data area a plurality of times, the access issued by the bus master 105 is issued to the command control circuit 1015 preferentially over the access issued by the bus master 104, so that the access queue 1014 is shown in FIG. It becomes like this.

以上のように、ディスクリプタへのアクセス時に、そのディスクリプタの指し示す領域へのアクセスの優先度を決定することができ、優先度の高い処理を優先度の低い処理よりも優先的に処理することができる。同じバスマスタが異なるディスクリプタへアクセスし、前記異なるディスクリプタのアドレスに対して異なる優先度が設定されていれば、同じバスマスタであっても処理の優先度を切り替えることが可能である。   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 bus master 104 reads the descriptor 1121, reads data from the data area 1023 indicated by the descriptor 1121, and executes the job.

次にディスクリプタ1122をリードし、ディスクリプタ1122の指し示すデータ領域1024からデータをリードしてジョブを実行する。ディスクリプタ1121とディスクリプタ1122のアドレスから優先度が決定し、ディスクリプタ1121のアドレスとディスクリプタ1122のアドレスに対して設定されている優先度が異なれば、同じバスマスタであっても処理ごとに優先度が切り替えられる。   Next, the descriptor 1122 is read, data is read from the data area 1024 indicated by the descriptor 1122, and the job is executed. If the priority is determined from the addresses of the descriptor 1121 and the descriptor 1122, and the priority set for the address of the descriptor 1121 and the address of the descriptor 1122 is different, the priority is switched for each process even for the same bus master. .

また、本実施形態のように同じバスインタフェースであっても処理ごとに優先度が切り替えられる。さらに、アクセスが同じデータ領域であっても異なるディスクリプタのアドレスに対して異なる優先度が設定されており、前記異なるディスクリプタが同じデータ領域を指し示していれば、処理の優先度を切り替えることが可能である。   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 descriptor 1121 and the descriptor 1122 point to the same data area 1023, the bus master 104 and the bus master 105 read data from the same data area 1023 and execute the job. However, if the priority set for the address of the descriptor 1121 and the address of the descriptor 1122 are different, the priority is switched for each process even when accessing the same data area.

本発明のメモリシステムの第1の実施形態を表した構成図である。It is a block diagram showing 1st Embodiment of the memory system of this invention. 本発明のメモリシステムの第1、第2の実施形態におけるメモリデバイスのアドレスを表した図である。It is a figure showing the address of the memory device in 1st, 2nd embodiment of the memory system of this invention. 本発明のメモリシステムの第1、第2の実施形態におけるアクセスキューの内容を表した図である。It is a figure showing the content of the access queue in 1st, 2nd embodiment of the memory system of this invention. 本発明のメモリシステムの第1、第2の実施形態におけるディスクリプタ情報登録内容を表した図である。It is a figure showing the descriptor information registration content in the 1st, 2nd embodiment of the memory system of this invention. 本発明のメモリシステムの第2の実施形態を表した構成図である。It is a block diagram showing 2nd Embodiment of the memory system of this invention.

符号の説明Explanation of symbols

101 メモリコントローラ
102 メモリデバイス
103 バス
104,105 バスマスタ
1011 ディスクリプタ領域リスト
1012 アドレス判別回路
1013 データ領域判別回路
1014 アクセスキュー
1015 コマンド制御回路
1016 ディスクリプタデコード回路
1017 ディスクリプタ情報登録回路
1018 リターンキュー
1021,1022,1121,1122 ディスクリプタ
1023,1024 データ領域
1101 ディスクリプタアドレスリスト
1201 ディスクリプタ優先度リスト
101 memory controller 102 memory device 103 bus 104, 105 bus master 1011 descriptor area list 1012 address discrimination circuit 1013 data area discrimination circuit 1014 access queue 1015 command control circuit 1016 descriptor decode circuit 1017 descriptor information registration circuit 1018 return queue 1021, 1022, 1121, 1122 Descriptor 1023, 1024 Data area 1101 Descriptor address list 1201 Descriptor priority list

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.
前記メモリコントローラにおいて、ディスクリプタへのアクセスからディスクリプタの指し示す領域へのアクセスの優先度を決定する手段として、ディスクリプタに優先度が設定されており、ディスクリプタをデコードし、ディスクリプタの指し示すデータ領域へのアクセスの優先度を決定することを特徴とする請求項1に記載のメモリシステム。   In the memory controller, as a means for determining the priority of access from the access to the descriptor to the area indicated by the descriptor, the priority is set for the descriptor, the descriptor is decoded, and the access to the data area indicated by the descriptor is performed. The memory system according to claim 1, wherein the priority is determined. 前記メモリコントローラにおいて、ディスクリプタへのアクセスからディスクリプタの指し示す領域へのアクセスの優先度を決定する手段として、ディスクリプタのアドレスごとに優先度が設定されており、ディスクリプタへのアクセスのアドレスにてディスクリプタの指し示すデータ領域へのアクセスの優先度を決定することを特徴とする請求項1に記載のメモリシステム。   In the memory controller, as a means for determining the priority of access from the descriptor access to the area indicated by the descriptor, priority is set for each address of the descriptor, and the descriptor indicates by the address of access to the descriptor. 2. The memory system according to claim 1, wherein a priority of access to the data area is determined.
JP2008300038A 2008-11-25 2008-11-25 Memory system Pending JP2010128604A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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