[go: up one dir, main page]

JP2011232917A - Semiconductor integrated circuit and request control method - Google Patents

Semiconductor integrated circuit and request control method Download PDF

Info

Publication number
JP2011232917A
JP2011232917A JP2010101863A JP2010101863A JP2011232917A JP 2011232917 A JP2011232917 A JP 2011232917A JP 2010101863 A JP2010101863 A JP 2010101863A JP 2010101863 A JP2010101863 A JP 2010101863A JP 2011232917 A JP2011232917 A JP 2011232917A
Authority
JP
Japan
Prior art keywords
request
queue
semiconductor integrated
integrated circuit
queues
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.)
Withdrawn
Application number
JP2010101863A
Other languages
Japanese (ja)
Inventor
Daisuke Kawakami
大輔 川上
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 Electronics Corp
Original Assignee
Renesas Electronics 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 Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010101863A priority Critical patent/JP2011232917A/en
Publication of JP2011232917A publication Critical patent/JP2011232917A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

PROBLEM TO BE SOLVED: To increase the number of request issues from a plurality of bus masters without increasing a logic scale.SOLUTION: A semiconductor integrated circuit 100 of the present invention comprises: a plurality of queues 330; a request distribution part 301 for distributing requests to any of a plurality of queues 330 on the basis of destination addresses for access of the requests which are issued from a plurality of bus masters 1 and 2; and a request selector 302 for issuing a request in a queue selected from the plurality of queues 330 to an external device 5.

Description

本発明は、半導体集積回路、及びリクエスト制御方法に関し、特に複数のバスマスタと外部デバイスとの間のリクエスト制御方法に関する。   The present invention relates to a semiconductor integrated circuit and a request control method, and more particularly to a request control method between a plurality of bus masters and an external device.

図1は、従来技術における半導体集積回路(LSI:Large Scale Integration)の構成の一例を示す図である。図1を参照して、LSIは、システムバス40を介して相互に接続されたCPU10、DMAコントローラ20、複数のスレーブ60−1、60−2、アドレス依存比較器70を具備する。CPU10やDMA(Direct Memory Access)コントローラ20は、システムバス40のバスマスタとして機能し、外部バスブリッジ回路に例示されるスレーブ60−1、60−2を介して、外部デバイス(例示:メモリ、入出力インタフェース(I/O)、図示なし)に対してリクエストを発行する。アドレス依存比較器70は、外部デバイスに発行されるリクエストと、それに先行するリクエストとのアドレス依存関係を確認する。アドレス依存比較器70は、バスマスタからのリクエストと同一アドレスにアクセスする先行リクエストが完了しない場合、当該バスマスタからのリクエストの発行を待機させる。   FIG. 1 is a diagram illustrating an example of a configuration of a semiconductor integrated circuit (LSI: Large Scale Integration) in the related art. Referring to FIG. 1, the LSI includes a CPU 10, a DMA controller 20, a plurality of slaves 60-1 and 60-2, and an address-dependent comparator 70 that are connected to each other via a system bus 40. The CPU 10 and the DMA (Direct Memory Access) controller 20 function as a bus master of the system bus 40, and external devices (example: memory, input / output) via slaves 60-1 and 60-2 exemplified by an external bus bridge circuit. A request is issued to an interface (I / O) (not shown). The address dependency comparator 70 confirms the address dependency relationship between the request issued to the external device and the request preceding it. If the preceding request for accessing the same address as the request from the bus master is not completed, the address-dependent comparator 70 waits for the request from the bus master to be issued.

以上のようなアドレス依存比較器70を利用したリクエスト制御を行う技術が、例えば特開2008−9763に記載されている(特許文献1参照)。   A technique for performing request control using the address-dependent comparator 70 as described above is described in, for example, Japanese Patent Application Laid-Open No. 2008-9763 (see Patent Document 1).

図2は、従来技術による半導体集積回路の構成の他の一例を示す図である。図2に示す半導体集積回路は、図1に示すスレーブ60として、外部デバイス50(例示:メモリ、I/O)に接続する外部バスブリッジ30を具備する。外部バスブリッジ30は、システムバスリクエスト受信回路31、システムバスリクエスト送信回路32、コマンドキュー33、及びレスポンスキュー32を備える。   FIG. 2 is a diagram showing another example of the configuration of the semiconductor integrated circuit according to the prior art. The semiconductor integrated circuit shown in FIG. 2 includes an external bus bridge 30 connected to an external device 50 (example: memory, I / O) as the slave 60 shown in FIG. The external bus bridge 30 includes a system bus request receiving circuit 31, a system bus request transmitting circuit 32, a command queue 33, and a response queue 32.

システムバス40のバスマスタとなるCPU10、DMAコントローラ20から発行されたリクエストは、コマンドキュー33に一旦格納される。この際、コマンドキュー33への格納制御は、システムバスリクエスト受信回路31によって制御される。コマンドキュー33にはシステムバス40からのリクエストがインオーダに格納される。コマンドキュー33に格納された(積まれた)リクエストは、格納順に外部デバイス50に対して発行されて処理される。一方、外部デバイス50からのリクエスト完了通知は、レスポンスキュー34に格納され、システムバスリクエスト送信部32による制御によってCPU10やDMA20に発行される。   Requests issued from the CPU 10 and the DMA controller 20 that are bus masters of the system bus 40 are temporarily stored in the command queue 33. At this time, the storage control to the command queue 33 is controlled by the system bus request receiving circuit 31. In the command queue 33, requests from the system bus 40 are stored in order. Requests stored (stacked) in the command queue 33 are issued to the external device 50 in the order of storage and processed. On the other hand, a request completion notification from the external device 50 is stored in the response queue 34 and issued to the CPU 10 and the DMA 20 under the control of the system bus request transmission unit 32.

外部デバイス50に対するリクエストのオーダは、スレーブ(外部バスブリッジ30)へのリクエストの到着順で守られる。例えば、本一例では、先行リクエスト(例えばライトリクエスト)の外部デバイス50への発行を待ってから、後続のリクエスト(例えばリードリクエスト)が発行されることになる。この場合、リードリクエストに対するレスポンス応答が悪くなることがある。特に、QoSが必要な処理を行わせる場合に問題が顕著化する。   The order of requests to the external device 50 is maintained in the order of arrival of requests to the slave (external bus bridge 30). For example, in this example, after a prior request (for example, a write request) is issued to the external device 50, a subsequent request (for example, a read request) is issued. In this case, the response response to the read request may be deteriorated. In particular, the problem becomes prominent when processing requiring QoS is performed.

このような問題を解決するため、図3に示す半導体集積回路のように、コマンドキューとしてリードキュー35とライトキュー36を備える構成が知られている。   In order to solve such a problem, a configuration including a read queue 35 and a write queue 36 as command queues is known as in the semiconductor integrated circuit shown in FIG.

特開2008−9763JP2008-9763

図3に示す半導体集積回路では、リードとライトのリクエストを別々に発行できるため、図2に示す一例に比べて処理性能は向上する。しかし、メモリの排他制御を行うような場合においては、リードとライトのリクエスト発行オーダを保証する必要がある。例えば、CPU10が、アドレス“0X4000”にライトリクエストを発行し、その後に当該アドレスに対してリードリクエストを発行する場合、ライトがリードよりも先に完了する必要がある。この場合、リードキュー35とライトキュー36に格納されたリクエストのどちらを先に外部デバイス50に発行するかを判定するための機構(データ依存関係の判定機構)を、リードキュー35とライトキュー36との間に設ける必要がある。   In the semiconductor integrated circuit shown in FIG. 3, since read and write requests can be issued separately, the processing performance is improved as compared with the example shown in FIG. However, in cases where exclusive memory control is performed, it is necessary to guarantee the request issue order for read and write. For example, when the CPU 10 issues a write request to the address “0X4000” and then issues a read request to the address, the write needs to be completed before the read. In this case, a mechanism (data dependency determination mechanism) for determining which of the requests stored in the read queue 35 and the write queue 36 is to be issued to the external device 50 first is referred to as a read queue 35 or a write queue 36. It is necessary to provide between.

このため、図3に示す半導体集積回路では、性能向上のためにキューの段数を増加させる場合、増加した段数に応じたエントリのデータ依存性関係を比較する必要がある。この場合、半導体集積回路の論理規模が大きくなり、動作周波数を上げることができない等の実装上の問題が顕著化する。   For this reason, in the semiconductor integrated circuit shown in FIG. 3, when the number of queue stages is increased in order to improve performance, it is necessary to compare the data dependency relationship of entries according to the increased number of stages. In this case, the logic scale of the semiconductor integrated circuit becomes large, and mounting problems such as the inability to increase the operating frequency become prominent.

上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために、[発明を実施するための形態]で使用される番号・符号が付加されている。ただし、付加された番号・符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。   In order to solve the above problems, the present invention employs the means described below. In the description of technical matters constituting the means, in order to clarify the correspondence between the description of [Claims] and the description of [Mode for Carrying Out the Invention] The number / symbol used in [Form] is added. However, the added numbers and symbols should not be used to limit the technical scope of the invention described in [Claims].

本発明による半導体集積回路(100)は、複数のキュー(330)と、複数のバスマスタ(1、2)から発行されたリクエストのアクセス先のアドレスに基づいて、リクエストを複数のキュー(330)のいずれかに振り分けるリクエスト振り分け部(301)と、複数のキュー(330)から選択したキュー内のリクエストを、外部デバイス(5)に発行するリクエストセレクタ(302)とを具備する。   The semiconductor integrated circuit (100) according to the present invention sends requests to a plurality of queues (330) based on addresses of access destinations of requests issued from a plurality of queues (330) and a plurality of bus masters (1, 2). A request distribution unit (301) that distributes to any of the above, and a request selector (302) that issues a request in the queue selected from the plurality of queues (330) to the external device (5).

本発明によるリクエスト制御方法は、複数のキュー(330)を用意するステップと、複数のバスマスタ(1、2)から発行されたリクエストのアクセス先のアドレスに基づいて、リクエストを複数のキュー(330)のいずれかに振り分けるステップと、複数のキュー(330)から選択したキュー内のリクエストを外部デバイス(5)に発行するステップとを具備する。   According to the request control method of the present invention, a request is prepared based on the steps of preparing a plurality of queues (330) and the access destination addresses of requests issued from the plurality of bus masters (1, 2). And a step of issuing a request in the queue selected from the plurality of queues (330) to the external device (5).

本発明では、リクエストアドレスに基づいてバスマスタからのリクエストを複数のキューのいずれかに振り分けているため、キューに格納された時点で、キュー間(リクエスト間)のアドレス依存関係は解消される。すなわち、本発明では、キュー間のアドレス依存関係を比較する論理を必要としない。   In the present invention, since requests from the bus master are distributed to any of a plurality of queues based on the request address, the address dependency between the queues (between requests) is canceled when the requests are stored in the queue. That is, the present invention does not require logic for comparing the address dependency between queues.

従って、本発明によれば、論理規模の増大を抑制しつつ、複数のバスマスタからのリクエスト発行数を増加させることができる。   Therefore, according to the present invention, it is possible to increase the number of requests issued from a plurality of bus masters while suppressing an increase in logical scale.

又、複数のバスマスタから発行されたリクエストのアドレス依存関係及び優先処理を保証しつつ、リクエスト発行数を増加させることができる。   It is also possible to increase the number of requests issued while guaranteeing the address dependency and priority processing of requests issued from a plurality of bus masters.

更に、複数のバスマスタから発行されたリクエストのアドレス依存関係及びQoS制御を保証しつつ、リクエスト発行数を増加させることができる。   Furthermore, it is possible to increase the number of requests issued while guaranteeing the address dependency and QoS control of requests issued from a plurality of bus masters.

図1は、従来技術による半導体集積回路の構成の一例を示す図である。FIG. 1 is a diagram showing an example of a configuration of a semiconductor integrated circuit according to the prior art. 図2は、従来技術による半導体集積回路の構成の他の一例を示す図である。FIG. 2 is a diagram showing another example of the configuration of the semiconductor integrated circuit according to the prior art. 図3は、従来技術による半導体集積回路の構成の更に他の一例を示す図である。FIG. 3 is a diagram showing still another example of the configuration of the semiconductor integrated circuit according to the prior art. 図4は、本発明による半導体集積回路の実施の形態における構成を示す図である。FIG. 4 is a diagram showing a configuration in the embodiment of the semiconductor integrated circuit according to the present invention. 図5は、本発明による外部バスブリッジの実施の形態における構成を示す図である。FIG. 5 is a diagram showing a configuration in the embodiment of the external bus bridge according to the present invention. 図6は、本発明によるリクエスト振り分け部の構成とウインドウの構造の一例を示す図である。FIG. 6 is a diagram showing an example of the configuration of the request distribution unit and the structure of the window according to the present invention. 図7は、本発明によるウインドウの構造の一例を示す図である。FIG. 7 is a diagram showing an example of the structure of a window according to the present invention. 図8は、本発明によるリクエストセレクタの構成の一例を示す図である。FIG. 8 is a diagram showing an example of the configuration of the request selector according to the present invention. 図9Aは、本発明によるリクエスト制御動作の一例を示すフロー図である。FIG. 9A is a flowchart showing an example of a request control operation according to the present invention. 図9Bは、本発明によるリクエスト制御動作の一例を示すフロー図である。FIG. 9B is a flowchart showing an example of a request control operation according to the present invention.

以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。   Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In the drawings, the same or similar reference numerals indicate the same, similar, or equivalent components.

図4から図9A、Bを参照して、本発明による半導体集積回路の実施の形態を説明する。図4は、本発明による半導体集積回路の構成の一例を示す図である。図4を参照して、本発明による半導体集積回路は、LSIに例示され、システムバス4を介して相互に接続されたCPU1、DMAコントローラ2、及び外部バスブリッジ3を具備する。   An embodiment of a semiconductor integrated circuit according to the present invention will be described with reference to FIGS. FIG. 4 is a diagram showing an example of the configuration of a semiconductor integrated circuit according to the present invention. Referring to FIG. 4, the semiconductor integrated circuit according to the present invention includes a CPU 1, a DMA controller 2, and an external bus bridge 3 which are exemplified by an LSI and are connected to each other via a system bus 4.

CPU1、DMAコントローラ2は、システムバス4のバスマスタとして機能し、外部バスブリッジ3を介して外部デバイス5(複数の外部デバイス5−1〜5−3)に対してリクエストを発行する。外部デバイス5は外部バスを介して外部バスブリッジ3に接続され、USB(Universal Serial Bus)やPCI Expressに例示されるI/Oインタフェースや、RAM(Random Access Memory)に例示されるメモリである。   The CPU 1 and the DMA controller 2 function as a bus master of the system bus 4 and issue requests to the external devices 5 (a plurality of external devices 5-1 to 5-3) via the external bus bridge 3. The external device 5 is connected to the external bus bridge 3 via an external bus, and is an I / O interface exemplified by USB (Universal Serial Bus) or PCI Express, or a memory exemplified by RAM (Random Access Memory).

外部バスブリッジ3は、システムバス4と外部デバイス5(外部バス)との間の接続を制御し、システムバス4のスレーブとして機能する。外部バスブリッジ3は、バスマスタ(CPU1、DMAコントローラ2)が外部デバイス5に対して発行するリクエスト(リクエストコマンド、リクエストアドレス(アクセス先のアドレス))やデータを、外部デバイス5に転送する。又、外部バスブリッジ3は、外部デバイス5から発行されるリクエスト(リクエストコマンド、リクエストアドレス)やデータをバスマスタ(CPU1、DMAコントローラ2)に転送する。   The external bus bridge 3 controls the connection between the system bus 4 and the external device 5 (external bus), and functions as a slave of the system bus 4. The external bus bridge 3 transfers requests (request command, request address (access destination address)) and data issued by the bus master (CPU 1, DMA controller 2) to the external device 5 to the external device 5. The external bus bridge 3 transfers requests (request command, request address) and data issued from the external device 5 to the bus master (CPU 1 and DMA controller 2).

本発明による外部バスブリッジ3は、リクエスト優先処理機構を有する。図5を参照して、本発明による外部バスブリッジ3の構成の詳細を説明する。   The external bus bridge 3 according to the present invention has a request priority processing mechanism. Details of the configuration of the external bus bridge 3 according to the present invention will be described with reference to FIG.

外部バスブリッジ3は、システムバスリクエスト受信回路として機能するリクエスト振り分け部301、送信用キュー群330、リクエストセレクタ302、受信部303、受信用キュー群320、及びシステムバスリクエスト送信回路304を具備する。   The external bus bridge 3 includes a request distribution unit 301 that functions as a system bus request reception circuit, a transmission queue group 330, a request selector 302, a reception unit 303, a reception queue group 320, and a system bus request transmission circuit 304.

リクエスト振り分け部301は、システムバス4を介してバスマスタ(例示:CPU1、以下、バスマスタとしてCPU1を例に説明する)から発行されるリクエストをデコードし、そのデコード結果(転送アドレスやコマンドタイプ)に従って当該リクエストを、後段の送信用キュー群330に振り分けて格納(エンキュー)する。   The request distribution unit 301 decodes a request issued from a bus master (e.g., CPU 1, which will be described below using the CPU 1 as an example) via the system bus 4, and executes the request according to the decoding result (transfer address and command type). The requests are distributed to the subsequent transmission queue group 330 and stored (enqueued).

送信用キュー群330は、複数のキュー331、332、333を備える。複数のキュー331、332、333にはそれぞれ異なる優先度が付与されていることが好ましい。この場合、リクエストセレクタ302は、優先度の高いキューを優先して選択し、選択したキューからリクエストを抽出して外部デバイス5に発行する。   The transmission queue group 330 includes a plurality of queues 331, 332, and 333. It is preferable that different priorities are assigned to the plurality of queues 331, 332, and 333, respectively. In this case, the request selector 302 preferentially selects a queue having a high priority, extracts a request from the selected queue, and issues the request to the external device 5.

送信用キュー群330のうち、いくつかのキューは、リクエストの完了通知を待たずに次のリクエストを発行可能なリクエストを格納する第1キュー(以下、高優先キューと称す)に設定されることが好ましい。例えば、メモリへのアクセスのためのリクエストは、リクエストの完了(例えばリードリクエストに対するリードデータ)を待たずに発行できる。このため、メモリアクセスのためのリクエストを、高優先キューに格納するようにリクエスト振り分け部301に設定することが好ましい。又、送信用キュー群330のうちの他のキューは、次のリクエストを発行するために前のリクエストの完了通知を受ける必要があるリクエストを格納する第2キュー(以下、シーケンシャルキューと称す)に設定されることが好ましい。例えば、I/Oインタフェースへのリクエストは、リクエストの完了を待ってから次のリクエストを発行する必要がある。このため、I/Oインタフェースに発行するリクエストを、シーケンシャルキューに格納するようにリクエスト振り分け部301に設定することが好ましい。   Some queues in the transmission queue group 330 are set to a first queue (hereinafter referred to as a high priority queue) that stores a request that can issue a next request without waiting for a request completion notification. Is preferred. For example, a request for accessing the memory can be issued without waiting for completion of the request (for example, read data for the read request). For this reason, it is preferable to set the request for memory access in the request distribution unit 301 so as to store the request in the high priority queue. The other queues in the transmission queue group 330 are second queues (hereinafter referred to as sequential queues) that store requests that need to be notified of the completion of previous requests in order to issue the next request. It is preferably set. For example, a request to the I / O interface needs to wait for completion of the request before issuing the next request. For this reason, it is preferable to set the request distribution unit 301 so that the request issued to the I / O interface is stored in the sequential queue.

ここで、高優先キューは、シーケンシャルキューよりも優先的に外部デバイス5に発行される。又、複数のキューが高優先キューに設定された場合、それぞれに異なる優先度が付与されることが好ましい。本実施の形態では、キュー331、332が高優先キューとして設定され、キュー331に優先度“0”が付与され、キュー332に優先度“1”が付与されるものとする。尚、優先度“0”は優先度“1”よりも高い優先度であるものとする。又、本実施の形態では、キュー333がシーケンシャルキューに設定されるものとする。   Here, the high priority queue is issued to the external device 5 with priority over the sequential queue. In addition, when a plurality of queues are set as high priority queues, it is preferable that different priorities are given to the respective queues. In this embodiment, the queues 331 and 332 are set as high priority queues, the priority “0” is given to the queue 331, and the priority “1” is given to the queue 332. It is assumed that the priority “0” is higher than the priority “1”. In this embodiment, it is assumed that the queue 333 is set as a sequential queue.

図6は、本発明によるリクエスト振り分け部301の構成とウインドウの構造の一例を示す図である。図6を参照して、リクエスト振り分け部301の構成の詳細を説明する。   FIG. 6 is a diagram showing an example of the configuration of the request distribution unit 301 and the window structure according to the present invention. Details of the configuration of the request distribution unit 301 will be described with reference to FIG.

図6(b)を参照して、リクエスト振り分け部301は、ウインドウレジスタ310と振り分け回路314を備える。   With reference to FIG. 6B, the request distribution unit 301 includes a window register 310 and a distribution circuit 314.

振り分け回路314は、システムバス4から入力されたリクエストをデコードし、デコード結果がリクエストウインドウ300にヒットする場合、ヒットしたウインドウに設定された格納先キューに当該リクエストをエンキュー(格納)する。リクエストウインドウ300は、リクエストアドレスに対応するアドレスが割り当てられた複数のウインドウを有し、それぞれにコマンド種、格納先のキューを指定する情報が設定される。   The distribution circuit 314 decodes the request input from the system bus 4, and when the decoded result hits the request window 300, enqueues (stores) the request in the storage destination queue set in the hit window. The request window 300 has a plurality of windows to which addresses corresponding to the request addresses are assigned, and information specifying a command type and a storage destination queue is set in each of the windows.

デコードされたリクエストにはリクエストアドレス(アクセス先のアドレス)やリクエストコマンドが含まれており、リクエストアドレスに一致するアドレスが設定されたウインドウが存在(ヒット)した場合や、リクエストコマンドと同じコマンド種が設定されたウインドウが存在(ヒット)する場合、ヒットしたウインドウに設定された格納先キューに当該リクエストが格納される。   The decoded request includes a request address (access destination address) and a request command. If a window with an address that matches the request address exists (hits), or the same command type as the request command When the set window exists (hits), the request is stored in the storage destination queue set in the hit window.

ウインドウレジスタ310は、ベースレジスタ311、サイズレジスタ312、リクエストレジスタ313を備え、それぞれのレジスタに設定された値によって図6(a)に示すリクエストウインドウ300を設定する。ベースレジスタ311、サイズレジスタ312、リクエストレジスタ313のそれぞれは、リクエストウインドウ300に設定する複数のウインドウに対応する数だけ用意される。例えば、複数のウインドウ#0、#1、#2を有するリクエストウインドウ300を設定する場合、それぞれ3つのベースレジスタ311、サイズレジスタ312、リクエストレジスタ313が用意される。   The window register 310 includes a base register 311, a size register 312, and a request register 313, and sets the request window 300 shown in FIG. 6A according to the values set in the respective registers. Each of the base register 311, the size register 312, and the request register 313 is prepared in a number corresponding to a plurality of windows set in the request window 300. For example, when setting a request window 300 having a plurality of windows # 0, # 1, and # 2, three base registers 311, a size register 312 and a request register 313 are prepared.

ウインドウ#0、#1、#2のアドレス範囲は、ベースレジスタ311及びサイズレジスタ312によって設定される。   The address ranges of the windows # 0, # 1, and # 2 are set by the base register 311 and the size register 312.

ベースレジスタ311には、ウインドウの先頭アドレスを指定する値が設定される。すなわち、ベースレジスタ311によって、ウインドウ#0、#1、#2のそれぞれの先頭アドレスが設定される。例えば、ウインドウ#0の先頭アドレスは“0X0000”、ウインドウ#1の先頭アドレスは“0X1000”、ウインドウ#2の先頭アドレスは“0X2000”に設定される。   The base register 311 is set with a value that specifies the start address of the window. That is, the base register 311 sets the head addresses of the windows # 0, # 1, and # 2. For example, the start address of window # 0 is set to “0X0000”, the start address of window # 1 is set to “0X1000”, and the start address of window # 2 is set to “0X2000”.

サイズレジスタ312には、ウインドウのサイズを指定する値が設定される。すなわち、サイズレジスタ312によって、ウインドウ#0、#1、#2のそれぞれのサイズが設定される。例えば、ウインドウ#0、#1、#2のそれぞれのサイズが“0X1000”に設定される。   The size register 312 is set with a value that specifies the size of the window. That is, the size registers 312 set the sizes of the windows # 0, # 1, and # 2. For example, the sizes of the windows # 0, # 1, and # 2 are set to “0X1000”.

リクエストレジスタ313には、システムバス4からのリクエストがウインドウにヒットした場合、どのキューにエンキューするかを決める情報(格納先キュー)や、ウインドウに設定するリクエストタイプ(コマンド種)が設定される。すなわち、リクエストレジスタ313によって、ウインドウ#0、#1、#2のそれぞれにヒットしたリクエストの格納先となるキューが設定されるとともに、ウインドウのリクエストタイプ(コマンド種)が設定される。   When the request from the system bus 4 hits the window, the request register 313 is set with information for determining which queue is enqueued (storage destination queue) and the request type (command type) set for the window. That is, the request register 313 sets a queue for storing a hit request in each of the windows # 0, # 1, and # 2, and sets the request type (command type) of the window.

図7は、本発明によるウインドウ#0、#1、#2の構造の一例を示す図である。図7を参照して、リクエストウインドウ300に基づいたリクエストの振り分け処理の詳細を説明する。   FIG. 7 is a diagram showing an example of the structure of windows # 0, # 1, and # 2 according to the present invention. Details of the request distribution process based on the request window 300 will be described with reference to FIG.

図7(a)に示す一例では、アドレス範囲が“0x0000”〜“0x0FFF”及び格納先キューが“キュー331”のウインドウ#0、アドレス範囲が“0x1000”〜“0x1FFF”及び格納先キューが“キュー331”のウインドウ#1、アドレス範囲が“0x2000”〜“0x2FFF”及び格納先キューが“キュー332”のウインドウ#2がリクエストウインドウ300として設定される。本一例では、ウインドウ#0、#1、#2のいずれにもコマンド種は設定されていない。   In the example shown in FIG. 7A, the address range is “0x0000” to “0x0FFF” and the storage destination queue is “queue 331”, window # 0, the address range is “0x1000” to “0x1FFF”, and the storage destination queue is “ The window # 1 of the queue 331, the window # 2 whose address range is “0x2000” to “0x2FFF”, and whose storage destination queue is “queue 332” is set as the request window 300. In this example, no command type is set in any of windows # 0, # 1, and # 2.

図7(a)のように、リクエストウインドウ300にコマンド種が設定されていない場合、振り分け回路314は、デコードしたリクエストアドレスが一致するウインドウを検索し、ヒット(一致)したウインドウに基づいてリクエストの格納先を決定する。例えば、リクエストアドレスが“0X1005である場合、リクエストはウインドウ#1にヒットする。この場合、振り分け回路314は、ウインドウ#1の格納先キューに設定されているキュー331(優先度“0”)に当該リクエストをエンキュー(格納)する。あるいは、リクエストアドレスが“0X2010である場合、リクエストはウインドウ#2にヒットする。この場合、振り分け回路314は、ウインドウ#2の格納先キューに設定されているキュー332(優先度“1”)に当該リクエストをエンキュー(格納)する。更に、リクエストアドレスがリクエストウインドウ300に設定されていないアドレスである場合(例えば“0X3000”)、リクエストにヒットするウインドウは存在しない。この場合、振り分け回路314は、リクエストをキュー333(シーケンシャルキュー)にエンキュー(格納)する。   As shown in FIG. 7A, when the command type is not set in the request window 300, the distribution circuit 314 searches for a window with a matching decoded request address, and determines the request based on the hit (match) window. Determine the storage location. For example, when the request address is “0X1005”, the request hits the window # 1. In this case, the distribution circuit 314 is placed in the queue 331 (priority “0”) set as the storage destination queue of the window # 1. The request is enqueued (stored), or if the request address is “0X2010”, the request hits window # 2. In this case, the distribution circuit 314 enqueues (stores) the request in the queue 332 (priority “1”) set as the storage destination queue of the window # 2. Further, when the request address is an address not set in the request window 300 (for example, “0X3000”), there is no window that hits the request. In this case, the distribution circuit 314 enqueues (stores) the request in the queue 333 (sequential queue).

ウインドウにヒットするか否かの判定は、ウインドウ番号の若い順から行われる。例えば、誤って、複数のウインドウ#0、#1に同じアドレスが設定されていても、アドレスが小さいウインドウ#0から順に判定されるため、リクエストが複数のウインドウに重複してヒットすることはない。すなわち、リクエストがヒットするウインドウの検索順に優先順位をつけることで、ウインドウの設定ミスによる誤動作を防止することができる。   Whether the window is hit or not is determined from the smallest window number. For example, even if the same address is set in a plurality of windows # 0 and # 1, the requests are judged in order from the window # 0 having the smallest address, so that the request does not hit multiple windows in duplicate. . In other words, by giving priority to the search order of the windows hit by the request, it is possible to prevent malfunction due to a window setting error.

図7(b)に示す一例では、コマンド種が“メモリリード”、アドレス範囲が“0x0000”〜“0x0FFF”及び格納先キューが“キュー331”のウインドウ#0、コマンド種が“I/Oアクセス”、アドレス範囲が“0x1000”〜“0x1FFF”及び及び格納先キューが“キュー332”のウインドウ#1、
アドレス範囲が“0x2000”〜“0x2FFF”及び格納先キューが“キュー333”のウインドウ#2がリクエストウインドウ300として設定される。
In the example shown in FIG. 7B, the command type is “memory read”, the address range is “0x0000” to “0x0FFF”, the storage destination queue is “queue 331”, window # 0, and the command type is “I / O access”. ”, Window # 1, whose address range is“ 0x1000 ”to“ 0x1FFF ”, and whose storage destination queue is“ queue 332 ”,
A window # 2 having an address range of “0x2000” to “0x2FFF” and a storage destination queue of “queue 333” is set as the request window 300.

図7(b)のように、振り分け回路314は、デコードしたリクエストアドレス又は/及びコマンド種と一致するウインドウを検索し、ヒット(一致)したウインドウに基づいてリクエストの格納先を決定する。例えば、リクエストアドレスが“0X0100であり、コマンド種がメモリアクセスである場合、リクエストはウインドウ#0にヒットする。この場合、振り分け回路314は、ウインドウ#0の格納先キューに設定されているキュー331(優先度“0”)に当該リクエストをエンキュー(格納)する。ウインドウ#0やウインドウ#1にヒットするためには、アドレス及びコマンド種が一致しなければならない。一方、リクエストアドレスが“0X2010である場合、コマンド種に関係なくリクエストはウインドウ#2にヒットする。この場合、振り分け回路314は、ウインドウ#2の格納先キューに設定されているキュー333(シーケンシャルキュー)に当該リクエストをエンキュー(格納)する。   As shown in FIG. 7B, the distribution circuit 314 searches for a window that matches the decoded request address or / and command type, and determines the storage location of the request based on the hit (match) window. For example, when the request address is “0X0100 and the command type is memory access, the request hits the window # 0. In this case, the distribution circuit 314 has the queue 331 set as the storage destination queue of the window # 0. Enqueue (store) the request at (priority “0”) In order to hit window # 0 or window # 1, the address and the command type must match, while the request address is “0X2010” In some cases, the request hits window # 2 regardless of the command type. In this case, the distribution circuit 314 enqueues (stores) the request in the queue 333 (sequential queue) set as the storage destination queue of the window # 2.

更に、リクエストアドレスがリクエストウインドウ300に設定されていないアドレス(例えば“0X3000”)の場合、アドレスが一致してもコマンド種がリクエストウインドウ300に設定されたコマンドと異なる場合、あるいは、コマンド種が一致してもリクエストアドレスがリクエストウインドウ300に設定されたアドレスと異なる場合は、リクエストにヒットするウインドウは存在しないと判定される。この場合、振り分け回路314は、リクエストをキュー333(シーケンシャルキュー)にエンキュー(格納)する。例えば、リクエストのアドレスが0x0100でI/Oアクセスの場合、ヒットするウインドウは存在せず、当該リクエストはキュー333に格納される。   Further, when the request address is an address not set in the request window 300 (for example, “0X3000”), even if the addresses match, the command type is different from the command set in the request window 300, or the command type is one. If the request address is different from the address set in the request window 300, it is determined that no window hits the request. In this case, the distribution circuit 314 enqueues (stores) the request in the queue 333 (sequential queue). For example, when the request address is 0x0100 and the I / O access is made, there is no hit window and the request is stored in the queue 333.

図7(c)に示す一例では、アドレス範囲が“0x0000”〜“0x0FFF”及び格納先キューが“キュー331”のウインドウ#0、コマンド種が“メモリリード”及び格納先キューが“キュー332”のウインドウ#1、コマンド種が“I/Oアクセス”及び格納先キューが“キュー333”のウインドウ#2がリクエストウインドウ300として設定される。本一例では、ウインドウ#1、#2にアドレス範囲は設定されない。   In the example shown in FIG. 7C, window # 0 having an address range of “0x0000” to “0x0FFF” and a storage destination queue of “queue 331”, a command type of “memory read”, and a storage destination queue of “queue 332”. Window # 1, window # 2 with command type "I / O access" and storage queue "queue 333" is set as request window 300. In this example, no address range is set for windows # 1 and # 2.

図7(c)のように、振り分け回路314は、デコードしたリクエストアドレス又はコマンド種と一致するウインドウを検索し、ヒット(一致)したウインドウに基づいてリクエストの格納先を決定する。例えば、リクエストアドレスが“0X0100である場合、リクエストはウインドウ#0にヒットする。この場合、振り分け回路314は、ウインドウ#0の格納先キューに設定されているキュー331(優先度“0”)に当該リクエストをエンキュー(格納)する。あるいは、リクエストアドレスが任意であり、コマンド種がメモリリードである場合、リクエストはウインドウ#1にヒットする。この場合、振り分け回路314は、ウインドウ#1の格納先キューに設定されているキュー332(優先度“1”)に当該リクエストをエンキュー(格納)する。更に、リクエストアドレスがリクエストウインドウ300に設定されていないアドレス(例えば“0X3000”)の場合、リクエストにヒットするウインドウは存在しない。この場合、振り分け回路314は、リクエストをキュー333(シーケンシャルキュー)にエンキュー(格納)する。リクエストがリクエストウインドウ300にヒットするか否かが、コマンド種(例えばメモリアクセス、I/Oアクセス)でしか判断できない場合、当該リクエストの転送先アドレスとして、システムバス4からのリクエストアドレスが割り当てられる。   As shown in FIG. 7C, the distribution circuit 314 searches for a window that matches the decoded request address or command type, and determines the storage location of the request based on the hit (match) window. For example, when the request address is “0X0100”, the request hits the window # 0. In this case, the distribution circuit 314 is placed in the queue 331 (priority “0”) set in the storage destination queue of the window # 0. The request is enqueued (stored), or if the request address is arbitrary and the command type is memory read, the request hits window # 1. In this case, the distribution circuit 314 stores the storage destination of window # 1 The request is enqueued (stored) in the queue 332 (priority level “1”) set in the queue, and if the request address is not set in the request window 300 (for example, “0X3000”), There is no window to hit. In this case, the distribution circuit 314 enqueues (stores) the request in the queue 333 (sequential queue), and determines whether or not the request hits the request window 300 only by the command type (for example, memory access, I / O access). If the request cannot be made, the request address from the system bus 4 is assigned as the transfer destination address of the request.

以上のように、ウインドウに設定するアドレスやコマンド種を、実行するプロセスに応じて設定することで、アクセス先のアドレスや実行するコマンドに応じた格納先キューを変更することができる。尚、ウインドウにヒットしないリクエストがある場合、エラーを返しても良いし、当該リクエストを破棄しても良い。   As described above, by setting the address and command type to be set in the window according to the process to be executed, the storage destination queue corresponding to the access destination address and the command to be executed can be changed. When there is a request that does not hit the window, an error may be returned or the request may be discarded.

本発明によるリクエスト振り分け部301は、リクエスト間のアドレスを比較することなく、入力されたリクエストアドレスやコマンド種に応じて格納先のキューを決定することができる。すなわち、本発明では、各キューにエンキューされた時点で、アドレス依存関係は解消されている。このため、後段のリクエストセレクタ302は、アドレス依存関係や、コマンドの発行順を気にすることなく処理対象のキューを選択することができる。   The request distribution unit 301 according to the present invention can determine the storage destination queue according to the input request address and command type without comparing addresses between requests. That is, in the present invention, the address dependency relationship is canceled when enqueued in each queue. For this reason, the request selector 302 at the subsequent stage can select the queue to be processed without worrying about the address dependency and the command issue order.

リクエストセレクタ302は、送信用キュー群330から選択したキュー内のリクエストを外部デバイス5に発行する。リクエストセレクタ302は、優先度の高いキューを優先的に選択し、選択したキュー内のリクエストを外部デバイス5に発行することが好ましい。   The request selector 302 issues a request in the queue selected from the transmission queue group 330 to the external device 5. It is preferable that the request selector 302 preferentially selects a queue having a high priority and issues a request in the selected queue to the external device 5.

リクエストセレクタ302は、高優先キュー(キュー331、332)からリクエストを抽出して発行する場合、外部デバイス5に発行したリクエストの完了通知を受けることなく、高優先キューから次のリクエストを抽出して発行することが好ましい。詳細には、リクエストセレクタ302は、高優先キュー(キュー331、332)内のリクエストを発行する際、受信部303に高優先リクエストの発行を通知する。受信部303は、高優先リクエストの発行通知に応じてACK信号(コマンドアクノリッジ)を返却する。リクエストセレクタ302は、受信部303からのACK信号に応じて次のリクエストを高優先キューから抽出して発行する。これにより、高優先キューに格納された次のリクエストは、前に発行されたリクエストの完了を待たずに発行され得る。例えば、リクエストセレクタ302は、リードコマンドに対するリードレスポンス(リードデータ)が返却される前に、高優先キュー内の次のリクエストを発行することができる。   When the request selector 302 extracts and issues a request from the high priority queue (queues 331 and 332), the request selector 302 extracts the next request from the high priority queue without receiving a completion notification of the issued request to the external device 5. It is preferable to issue it. Specifically, the request selector 302 notifies the reception unit 303 of the issuance of a high priority request when issuing a request in the high priority queue (queues 331 and 332). The receiving unit 303 returns an ACK signal (command acknowledge) in response to the issuance notification of the high priority request. The request selector 302 extracts and issues the next request from the high priority queue according to the ACK signal from the receiving unit 303. Thereby, the next request stored in the high priority queue can be issued without waiting for completion of the previously issued request. For example, the request selector 302 can issue the next request in the high priority queue before the read response (read data) to the read command is returned.

一方、リクエストセレクタ302は、シーケンシャルキュー(キュー333)からリクエストを抽出して発行する場合、発行したリクエストの受信完了通知を受けてから次ぎのリクエストを発行する。詳細には、リクエストセレクタ302は、シーケンシャルキュー(キュー333)内のリクエストを通常通り発行する。受信部303は、外部デバイス5から当該リクエストの完了通知を受け取るとリクエストセレクタ302にACK信号(コマンドアクノリッジ)を出力する。リクエストセレクタ302は、受信部303からのACK信号に応じて次のリクエストをシーケンシャルキューから抽出して発行する。これにより、シーケンシャルキューに格納された次のリクエストは、前に発行されたリクエストの完了に応じて発行されることになる。例えば、リクエストセレクタ302は、リードコマンドに対するリードレスポンス(リードデータ)が受信部303に返却されるまで、シーケンシャルキュー内の次のリクエストを発行せずに待機する。   On the other hand, when the request selector 302 extracts and issues a request from the sequential queue (queue 333), the request selector 302 issues the next request after receiving the reception completion notification of the issued request. Specifically, the request selector 302 issues requests in the sequential queue (queue 333) as usual. Upon receiving the request completion notification from the external device 5, the receiving unit 303 outputs an ACK signal (command acknowledge) to the request selector 302. The request selector 302 extracts and issues the next request from the sequential queue according to the ACK signal from the receiving unit 303. As a result, the next request stored in the sequential queue is issued upon completion of the previously issued request. For example, the request selector 302 waits without issuing the next request in the sequential queue until a read response (read data) to the read command is returned to the receiving unit 303.

図8は、本発明によるリクエストセレクタ302の構成の一例を示す図である。図8を参照して、リクエストセレクタ302は、FULL判定用フラグ321、優先処理判定回路322、セレクタ323を備える。   FIG. 8 is a diagram showing an example of the configuration of the request selector 302 according to the present invention. Referring to FIG. 8, the request selector 302 includes a FULL determination flag 321, a priority processing determination circuit 322, and a selector 323.

優先処理判定回路322は、優先処理判定回路322は、各キューにエンキュー(格納)されたリクエスト数に応じて優先処理判定を行い、処理対象となるキューを決定する。この際、優先処理判定回路322は、優先度の高いキューから順に格納状況を確認し、高い優先度のキュー331にリクエストが格納されていない場合、次に優先度の高いキューを処理対象としてセレクタ323に指定する。尚、シーケンシャルキューは最も優先度が低いものとする。又、優先処理判定回路322は、高優先キューがリクエストによって満たされた(FULLとなる)場合、当該キュー内のリクエストを全て発行した後、次に優先度の高いキューを処理対象としてセレクタ323に指定する。   The priority processing determination circuit 322 performs priority processing determination according to the number of requests enqueued (stored) in each queue, and determines a queue to be processed. At this time, the priority processing determination circuit 322 checks the storage status in order from the queue with the highest priority, and if no request is stored in the queue 331 with the highest priority, the queue with the next highest priority is selected as the processing target. 323 is specified. The sequential queue has the lowest priority. In addition, when the high-priority queue is filled with requests (becomes FULL), the priority processing determination circuit 322 issues all the requests in the queue and then sets the queue with the next highest priority to the selector 323. specify.

FULL判定用フラグ321は、高優先キューがリクエストによってFULLとなったか否かを示すフラグである。FULL判定用フラグ321は、高優先キューに設定されたキュー331、332のそれぞれに対応して設けられる。例えば、リクエストによってFULLとなったキューのFULL判定用フラグ321に“1”がセットされる。優先処理判定回路322は、FULL判定用フラグ321によってFULLとなったキューを確認できる。   The FULL determination flag 321 is a flag indicating whether or not the high priority queue has become FULL due to a request. The FULL determination flag 321 is provided corresponding to each of the queues 331 and 332 set as the high priority queue. For example, “1” is set in the FULL determination flag 321 of the queue that has become FULL due to the request. The priority processing determination circuit 322 can check the queue that has become FULL by the FULL determination flag 321.

セレクタ323は、優先処理判定回路322によって処理対象として指定されたキューからリクエストを抽出し、リクエストの内容に応じた外部デバイス5に当該リクエストを発行する。   The selector 323 extracts a request from the queue designated as a processing target by the priority processing determination circuit 322 and issues the request to the external device 5 according to the content of the request.

以上のような構成により、リクエストセレクタ302は、高優先キューがリクエストによって満たされる(FULLになる)まで当該高優先キューを処理する。本発明では、高優先のキューがFULLになったことをトリガとして、優先度の低いキューが処理される。これにより、優先度の低いキューに格納されたリクエストが発行されずに、システムがライブロックとなることを防止することができる。   With the configuration described above, the request selector 302 processes the high priority queue until the high priority queue is filled with requests (becomes FULL). In the present invention, a queue with a low priority is processed with the high priority queue set to FULL as a trigger. As a result, it is possible to prevent the system from becoming a live block without issuing a request stored in a queue having a low priority.

図9A及び図9Bを参照して、リクエストセレクタ302による優先処理制御方法の詳細を説明する。図9A及び図9Bは、本発明によるリクエスト制御動作の一例を示すフロー図である。   Details of the priority processing control method by the request selector 302 will be described with reference to FIGS. 9A and 9B. 9A and 9B are flowcharts showing an example of a request control operation according to the present invention.

リクエストセレクタ302は、先ず、用意された送信用キュー群330の中で最も優先度の高いキュー331(優先度“0”)にリクエストが積まれている(格納されている)か否かを確認する(ステップS101)。キュー331にリクエストが積まれている(格納されている)場合、リクエストセレクタ302は、キュー331のリクエストを外部デバイス5に発行する(ステップS101Yes、S102)。   The request selector 302 first checks whether or not a request is loaded (stored) in the queue 331 having the highest priority (priority “0”) in the prepared transmission queue group 330. (Step S101). When requests are loaded (stored) in the queue 331, the request selector 302 issues the request in the queue 331 to the external device 5 (Yes in steps S101 and S102).

次に、リクエストセレクタ302は、FULL判定用フラグ321を参照して、キュー331がリクエストによってFULLになったかを確認する(ステップS103)。ここで、キュー331がFULLでない場合、ステップS101に移行する(ステップS103No)。一方、キュー331がFULLとなった場合、キュー331に対応するFULL判定用フラグ321にFULLを示す“1”がセットされ、リクエストセレクタ302は、その時点でキュー331内に格納されたリクエストを全て外部デバイス5に発行するまで処理を続ける(ステップS103Yes、S104、S105No)。   Next, the request selector 302 refers to the FULL determination flag 321 and confirms whether the queue 331 has become FULL due to the request (step S103). If the queue 331 is not FULL, the process proceeds to step S101 (No in step S103). On the other hand, when the queue 331 becomes FULL, “1” indicating FULL is set in the FULL determination flag 321 corresponding to the queue 331, and the request selector 302 displays all the requests stored in the queue 331 at that time. The processing is continued until it is issued to the external device 5 (No at Steps S103, S104, S105).

優先処理キュー331にリクエストが積まれていない場合(ステップS101No)、あるいは、FULLとなったキュー331内の全てのリクエストを処理した場合(ステップS105Yes)、リクエストセレクタ302は、次に優先度の高いキュー332(優先度“1”)にリクエストが積まれている(格納されている)か否かを確認する(ステップS201)。   If no requests are stacked in the priority processing queue 331 (No in step S101), or if all requests in the queue 331 that has become FULL are processed (Yes in step S105), the request selector 302 has the next highest priority. It is checked whether or not requests are stored (stored) in the queue 332 (priority “1”) (step S201).

キュー332にリクエストが積まれている場合、リクエストセレクタ302は、キュー332のリクエストを外部デバイス5に発行する(ステップS201Yes、S202)。   When requests are accumulated in the queue 332, the request selector 302 issues a request in the queue 332 to the external device 5 (steps S201 Yes and S202).

次に、リクエストセレクタ302は、FULL判定用フラグ321を参照して、キュー332より優先度の高いキュー331のFULL判定用フラグ321にFULLを示す“1”がセットされているかを確認する(ステップS203)。ここで、キュー331のFULL判定用フラグ321にFULLを示す“1”がセットされていない場合、ステップS101に移行する(ステップS203No)。すなわち、優先度の高いキュー331にリクエストがないことをトリガとしてキュー332を処理する場合、リクエストセレクタ302は、キュー332の処理後、優先度の高いキュー331を優先的に処理するように制御される。   Next, the request selector 302 refers to the FULL determination flag 321 and confirms whether or not “1” indicating FULL is set in the FULL determination flag 321 of the queue 331 having a higher priority than the queue 332 (step). S203). When “1” indicating FULL is not set in the FULL determination flag 321 of the queue 331, the process proceeds to step S101 (No in step S203). In other words, when the queue 332 is processed with a request that there is no request in the high-priority queue 331, the request selector 302 is controlled to preferentially process the high-priority queue 331 after the processing of the queue 332. The

ステップS203において、FULLを示す“1”がセットされている場合、リクエストセレクタ302は、FULL判定用フラグ321を参照して、キュー332がFULLになったかを確認する(ステップS203Yes、S204)。   If “1” indicating FULL is set in step S203, the request selector 302 refers to the FULL determination flag 321 and confirms whether the queue 332 is FULL (steps S203 Yes, S204).

ステップS204において、キュー332がFULLでない場合、ステップS201に移行する(ステップS204No)。すなわち、優先度の高いキュー331がFULLとなったことをトリガとしてキュー332を処理する場合、リクエストセレクタ302は、キュー332の処理又はキュー332より低い優先度の処理を継続する。   If the queue 332 is not FULL in step S204, the process proceeds to step S201 (No in step S204). That is, when the queue 332 is processed with the queue 331 having a high priority set to FULL as a trigger, the request selector 302 continues the processing of the queue 332 or the processing having a lower priority than the queue 332.

一方、キュー332がFULLとなった場合、キュー332に対応するFULL判定用フラグ321にFULLを示す“1”がセットされ、リクエストセレクタ302は、その時点でキュー332内に格納されたリクエストを全て外部デバイス5に発行するまで処理を続ける(ステップS204Yes、S205、S206No)。   On the other hand, when the queue 332 becomes FULL, “1” indicating FULL is set in the FULL determination flag 321 corresponding to the queue 332, and the request selector 302 displays all requests stored in the queue 332 at that time. The process is continued until it is issued to the external device 5 (No in steps S204, S205, and S206).

優先処理キュー332にリクエストが積まれていない場合(ステップS201No)、あるいは、FULLとなったキュー332内の全てのリクエストを処理した場合(ステップS206Yes)、リクエストセレクタ302は、次に優先度の高いキュー(ここではシーケンシャルキュー(キュー333))にリクエストが積まれているか否かを確認する(ステップS301)。   If no requests are stacked in the priority processing queue 332 (No in step S201), or if all requests in the queue 332 that has become FULL are processed (Yes in step S206), the request selector 302 has the next highest priority. It is confirmed whether or not requests are queued (here, a sequential queue (queue 333)) (step S301).

キュー333にリクエストが積まれている場合、リクエストセレクタ302は、キュー333のリクエストを外部デバイス5に発行する(ステップS301Yes、S302)。一方、キュー333にリクエストが積まれていない場合、ステップS101に以降する(ステップS301No)。   If there are requests in the queue 333, the request selector 302 issues the request in the queue 333 to the external device 5 (Yes in steps S301 and S302). On the other hand, if no request is loaded in the queue 333, the process proceeds to step S101 (No in step S301).

ステップS302においてキュー333に対する処理を行ったリクエストセレクタ302は、FULL判定用フラグ321を参照して、キュー333より優先度の高いキュー331、332のFULL判定用フラグ321にFULLを示す“1”がセットされているかを確認する(ステップS303、S304)。ここで、キュー331、332のFULL判定用フラグ321にFULLを示す“1”がセットされていない場合、ステップS101に移行する(ステップS303No、S304No)。すなわち、高優先キュー(キュー331、332)にリクエストがないことをトリガとしてシーケンシャルキュー(キュー333)を処理する場合、リクエストセレクタ302は、キュー333の処理後、最も優先度の高いキュー331を優先的に処理するように制御される。   The request selector 302 that has performed processing for the queue 333 in step S302 refers to the FULL determination flag 321 and “1” indicating FULL is displayed in the FULL determination flag 321 of the queues 331 and 332 having higher priority than the queue 333. It is confirmed whether it is set (steps S303 and S304). If “1” indicating FULL is not set in the FULL determination flag 321 of the queues 331 and 332, the process proceeds to step S101 (No in steps S303 and S304). That is, when processing the sequential queue (queue 333) triggered by the absence of a request in the high priority queues (queues 331 and 332), the request selector 302 prioritizes the queue 331 having the highest priority after the processing of the queue 333. To be processed automatically.

ステップS303、S304において、キュー331、332のFULL判定用フラグ321の両方にFULLを示す“1”がセットされている場合、リクエストセレクタ302は、キュー333内にリクエストが格納されていない(empty)ことを確認する(ステップS303Yes、S304Yes、S305)。   In steps S303 and S304, when “1” indicating FULL is set in both the FULL determination flags 321 of the queues 331 and 332, the request selector 302 does not store a request in the queue 333 (empty). This is confirmed (steps S303 Yes, S304 Yes, S305).

ステップS305において、キュー332がemptyでない場合、ステップS302に移行する(ステップS305No)。すなわち、優先度の高いキュー331、332がFULLとなったことをトリガとしてキュー333を処理する場合、リクエストセレクタ302は、キュー333内の全てのリクエストを発行するまで、キュー333に対する処理を継続する。   If the queue 332 is not empty in step S305, the process proceeds to step S302 (No in step S305). That is, when processing the queue 333 triggered by the high priority queues 331 and 332 becoming FULL, the request selector 302 continues processing for the queue 333 until all the requests in the queue 333 are issued. .

一方、キュー333がemptyとなった場合、リクエストセレクタ302は、全ての高優先キュー(キュー331、332)のFULL判定用フラグ321に設定された“1”を“0”にクリアする(ステップS305Yes、S306)。FULL判定用フラグ321をクリア後、ステップS101に移行し、リクエストセレクタ302は、再度、優先度の高いキューを優先して処理を行う。   On the other hand, when the queue 333 becomes empty, the request selector 302 clears “1” set in the FULL determination flags 321 of all the high priority queues (queues 331 and 332) to “0” (step S305 Yes). , S306). After clearing the FULL determination flag 321, the process proceeds to step S <b> 101, and the request selector 302 performs the process again with priority given to the queue having a high priority.

以上のように、本発明では、複数のキューのうち、どのキューからリクエストを選択するかを、優先処理判定回路322によって決定している。このため、各キュー間のリクエストは、アウトオブオーダーで発行される。ただし、キュー内のリクエストは、リクエストに積まれた順(エンキュー順)に処理されるためインオーダで発行される。   As described above, according to the present invention, the priority processing determination circuit 322 determines which queue is selected from among a plurality of queues. For this reason, requests between the queues are issued out-of-order. However, requests in the queue are issued in-order because they are processed in the order in which they are stacked (enqueue order).

優先処理判定回路322は、FULL判定用フラグ321を利用することで、高優先キューがFULLとなったことをトリガとして、低優先キューやシーケンシャルキューを処理対象として選択する。これにより、優先度の低いキューに格納されたリクエストが発行されずに、システムがライブロックとなることを防止することができる。   The priority processing determination circuit 322 uses the FULL determination flag 321 as a trigger to select a low priority queue or a sequential queue as a processing target when the high priority queue becomes FULL. As a result, it is possible to prevent the system from becoming a live block without issuing a request stored in a queue having a low priority.

受信部303は、外部デバイス5からのリクエスト(リクエストコマンド、リクエストアドレス)を受信し、受信用キュー群320に格納する。受信用キュー群320は、ライトリクエストを格納するライトキュー341と、リードリクエストを格納するリードキュー342を備える。受信部303は、外部デバイス5からのライトリクエストをライトキュー341に格納し、外部デバイス5からのリードリクエストをリードキュー342に格納する。ライトキュー341内のリクエストは、リードキュー342に優先してシステムバスリクエスト送信回路304に出力される。これは、一般的なPCIで規定された機能であるため、詳細な説明は省略する。   The reception unit 303 receives a request (request command, request address) from the external device 5 and stores it in the reception queue group 320. The reception queue group 320 includes a write queue 341 that stores a write request and a read queue 342 that stores a read request. The reception unit 303 stores a write request from the external device 5 in the write queue 341 and stores a read request from the external device 5 in the read queue 342. Requests in the write queue 341 are output to the system bus request transmission circuit 304 in preference to the read queue 342. Since this is a function defined by general PCI, detailed description is omitted.

システムバスリクエスト送信回路304は、ライトキュー341又はリードキュー342の一方から出力されたリクエストを、システムバス4を介してバスマスタであるCPU1、又はDMAコントローラ2に発行する。   The system bus request transmission circuit 304 issues a request output from one of the write queue 341 and the read queue 342 to the CPU 1 that is a bus master or the DMA controller 2 via the system bus 4.

本発明によるリクエスト振り分け部301は、リクエスト間のアドレス依存関係をキューにエンキューする前に解決し、複数のキューに振り分けている。このため、キュー間のアドレス依存関係を比較する必要がなくなり、システムバス4からのリクエストを直ぐにエンキューすることができる。又、複数のキューにエンキューされたリクエストは、既にアドレス依存関係が解消されているため、処理対象となるキュー任意に選択しても、アクセス先が競合することなくリクエストを発行することができる。このため、実装上の問題を気にすることなくスケーラブルにキューの段数を増やすことが可能となる。   The request distribution unit 301 according to the present invention resolves the address dependency between requests before enqueuing them into a queue, and distributes them to a plurality of queues. For this reason, it is not necessary to compare the address dependency between queues, and a request from the system bus 4 can be enqueued immediately. Also, since the request enqueued in a plurality of queues has already resolved the address dependency, even if the queue to be processed is arbitrarily selected, the request can be issued without conflicting access destinations. Therefore, it is possible to increase the number of queue stages in a scalable manner without worrying about mounting problems.

更に、各キューに優先度が付与されており、リクエストセレクタ302はその優先度に従って処理対象となるキューを選択する。これにより、発行元のリクエストやコマンド種に優先順位を付与することが可能となり、優先処理させたいリクエストを外部バスブリッジ3に留めることなく、発行することが可能となる。例えば、リードリクエストを優先度の高いキューに格納し、ライトリクエストを優先度の低いキューに格納することで、先にマスタから発行されたライトリクエストよりも先に、リードリクエストを外部デバイス5に発行することできる。従って本発明によれば、従来構成で問題となっていたリードレイテンシを改善することができる。   Furthermore, a priority is assigned to each queue, and the request selector 302 selects a queue to be processed according to the priority. As a result, priority can be given to the request and command type of the issuer, and the request to be preferentially processed can be issued without being retained in the external bus bridge 3. For example, a read request is stored in a queue with a high priority, and a write request is stored in a queue with a low priority, so that a read request is issued to the external device 5 before a write request issued from the master first. Can do. Therefore, according to the present invention, it is possible to improve the read latency which has been a problem in the conventional configuration.

又、コマンド種として、特定処理(例えば、音声処理や画像処理)に阿智するリクエストを優先度の高いキューにエンキューすることで、特定処理に対する優先処理が可能となる。I/Oリクエスト等、発行オーダの保証が必要なリクエストは、シーケンシャルキュー(キュー333)に格納することで、従来と同様に発行オーダを保証することができる。   In addition, by enqueueing a request for a specific process (for example, voice process or image process) as a command type into a queue having a high priority, a priority process for the specific process can be performed. Requests that require issue order guarantees, such as I / O requests, are stored in a sequential queue (queue 333), so that issue orders can be guaranteed in the same manner as in the prior art.

本発明では、複数のキューにリクエストを格納する前にアドレス依存関係を解消しているため、従来技術のように論理規模を増大させることなく、複数のバスマスタからのリクエスト発行数を増加させることができる。   In the present invention, since the address dependency is canceled before the requests are stored in a plurality of queues, the number of requests issued from a plurality of bus masters can be increased without increasing the logical scale as in the prior art. it can.

又、複数のバスマスタから発行されたリクエストのアドレス依存関係及び優先処理を保証しつつ、リクエスト発行数を増加させることができる。   It is also possible to increase the number of requests issued while guaranteeing the address dependency and priority processing of requests issued from a plurality of bus masters.

更に、複数のバスマスタから発行されたリクエストのアドレス依存関係及びQoS制御を保証しつつ、リクエスト発行数を増加させることができる。   Furthermore, it is possible to increase the number of requests issued while guaranteeing the address dependency and QoS control of requests issued from a plurality of bus masters.

以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上述の実施の形態では、送信用キューとして3つのキュー331、332、333を備える外部バスブリッジ3を一例に説明したが、その数や優先度やシーケンシャルキューの設定はこれに限らない。   The embodiment of the present invention has been described in detail above, but the specific configuration is not limited to the above-described embodiment, and changes within a scope not departing from the gist of the present invention are included in the present invention. . In the above-described embodiment, the external bus bridge 3 including the three queues 331, 332, and 333 as the transmission queue has been described as an example. However, the number, priority, and sequential queue setting are not limited thereto.

1 :CPU
2 :DMAコントローラ
3 :外部バスブリッジ
4 :システムバス
5 :外部デバイス
100:半導体集積回路
300:リクエストウインドウ
301:リクエスト振り分け部
302:リクエストセレクタ
303:受信部
304:システムバスリクエスト送信回路
310:ウインドウレジスタ
311:ベースレジスタ
312:サイズレジスタ
313:リクエストレジスタ
314:振り分け回路
320:受信用キュー群
321:FULL判定用フラグ
322:優先処理判定回路
323:セレクタ
330:送信用キュー群
331〜333:キュー
341:ライトキュー
342:リードキュー
1: CPU
2: DMA controller 3: External bus bridge 4: System bus 5: External device 100: Semiconductor integrated circuit 300: Request window 301: Request distribution unit 302: Request selector 303: Reception unit 304: System bus request transmission circuit 310: Window register 311: Base register 312: Size register 313: Request register 314: Distribution circuit 320: Reception queue group 321: FULL determination flag 322: Priority processing determination circuit 323: Selector 330: Transmission queue group 331-333: Queue 341 Write queue 342: Read queue

Claims (21)

複数のキューと、
複数のバスマスタから発行されたリクエストのアクセス先のアドレスに基づいて、前記リクエストを前記複数のキューのいずれかに振り分けるリクエスト振り分け部と、
前記複数のキューから選択したキュー内のリクエストを、外部デバイスに発行するリクエストセレクタと
を具備する
半導体集積回路。
Multiple queues,
A request distribution unit that distributes the request to one of the plurality of queues based on an access destination address of a request issued from a plurality of bus masters;
A semiconductor integrated circuit comprising: a request selector that issues a request in a queue selected from the plurality of queues to an external device.
請求項1に記載の半導体集積回路において、
前記リクエスト振り分け部は、前記リクエストのコマンド種に基づいて、前記リクエストを前記複数のキューのいずれかに振り分ける
半導体集積回路。
The semiconductor integrated circuit according to claim 1,
The request distribution unit distributes the request to one of the plurality of queues based on a command type of the request. Semiconductor integrated circuit.
請求項1又は2に記載の半導体集積回路において、
前記振り分け部は、それぞれが、所定のアドレス範囲が設定されるともに、前記複数のキューのいずれかに対応付けられた複数のウインドウと、リクエストアドレスに一致するアドレスが設定されたウインドウを、前記複数のウインドウから検索する振り分け回路とを備え、
前記振り分け回路は、リクエストアドレスに一致するアドレスが設定されたウインドウに対応するキューに、前記リクエストを格納する
半導体集積回路。
The semiconductor integrated circuit according to claim 1 or 2,
The distribution unit includes a plurality of windows each having a predetermined address range, a plurality of windows associated with any of the plurality of queues, and a window in which an address matching a request address is set. And a sorting circuit for searching from the window of
The distribution circuit stores the request in a queue corresponding to a window in which an address that matches the request address is set.
請求項3に記載の半導体集積回路において、
前記複数のウインドウのそれぞれは、所定のコマンド種が設定され、
前記振り分け回路は、リクエストコマンドに一致するコマンド種が設定されたウインドウを、前記複数のウインドウから検索する
前記振り分け回路は、リクエストコマンドに一致するコマンド種が設定されたウインドウに対応するキューに、前記リクエストを格納する
半導体集積回路。
The semiconductor integrated circuit according to claim 3,
A predetermined command type is set for each of the plurality of windows,
The distribution circuit searches the plurality of windows for a window in which a command type that matches a request command is set.The distribution circuit includes a queue corresponding to a window in which a command type that matches a request command is set. A semiconductor integrated circuit that stores requests.
請求項3又は4に記載の半導体集積回路において、
前記振り分け回路は、複数のウインドウを所定の順で検索し、前記リクエストに最初にヒットしたウインドウに基づいて、リクエストの格納先のキューを決定する
半導体集積回路。
The semiconductor integrated circuit according to claim 3 or 4,
The distribution circuit searches a plurality of windows in a predetermined order, and determines a queue for storing a request based on a window that first hits the request. Semiconductor integrated circuit.
請求項1から5のいずれか1項に記載の半導体集積回路において、
前記複数のキューのそれぞれには、異なる優先度が付与され、
前記リクエストセレクタは、前記優先度の高いキュー内のリクエストを優先して選択して外部デバイスに発行する
半導体集積回路。
The semiconductor integrated circuit according to any one of claims 1 to 5,
Each of the plurality of queues is given a different priority.
The request selector preferentially selects and issues a request in the queue with a high priority to an external device.
請求項6に記載の半導体集積回路において、
前記リクエスト振り分け部は、トランザクションの完了を待たずに出力可能なリクエストを第1キューに格納し、トランザクションの完了を待ってから出力するリクエストを前記第1キューより優先度の低い第2キューに格納する
半導体集積回路。
The semiconductor integrated circuit according to claim 6,
The request distribution unit stores a request that can be output without waiting for completion of the transaction in the first queue, and stores a request that is output after waiting for completion of the transaction in the second queue having a lower priority than the first queue. Semiconductor integrated circuit.
請求項7に記載の半導体集積回路において、
前記リクエスト振り分け部は、メモリへのアクセスリクエストを前記第1キューに格納する
半導体集積回路。
The semiconductor integrated circuit according to claim 7,
The request distribution unit stores a memory access request in the first queue.
請求項7又は8に記載の半導体集積回路において、
前記リクエスト振り分け部は、外部インタフェースへのアクセスリクエストを前記第2キューに格納する
半導体集積回路。
The semiconductor integrated circuit according to claim 7 or 8,
The request distribution unit stores an access request for an external interface in the second queue.
請求項7から9のいずれか1項に記載の半導体集積回路において、
前記第1キューから選択されて発行されたリクエストに応じて第1応答信号を出力する受信部を更に具備し、
前記リクエストセレクタは、前記第1応答信号に応じて前記第1キューから次のリクエストを抽出して、外部デバイスに発行する
半導体集積回路。
The semiconductor integrated circuit according to any one of claims 7 to 9,
A receiver that outputs a first response signal in response to a request selected and issued from the first queue;
The request selector extracts a next request from the first queue in response to the first response signal, and issues the next request to an external device.
請求項10に記載の半導体集積回路において、
前記受信部は、前記第2キューから選択されて発行されたリクエストの完了通知を外部デバイスから受信し、前記完了通知に応じて第2応答信号を出力し、
前記リクエストセレクタは、前記第2応答信号に応じて前記第2キューから次のリクエストを抽出して、外部デバイスに発行する
半導体集積回路。
The semiconductor integrated circuit according to claim 10,
The receiving unit receives a completion notification of a request selected and issued from the second queue from an external device, and outputs a second response signal in response to the completion notification,
The request selector extracts a next request from the second queue in response to the second response signal, and issues the next request to an external device.
請求項6から11のいずれか1項に記載の半導体集積回路において、
前記リクエストセレクタは、前記優先度の高いキュー内にリクエストが格納されている場合、前記優先度の高いキュー内のリクエストがなくなるまで、前記優先度の高いキュー内のリクエストを選択して外部デバイスに発行する
半導体集積回路。
The semiconductor integrated circuit according to any one of claims 6 to 11,
When a request is stored in the high priority queue, the request selector selects a request in the high priority queue until there is no request in the high priority queue, and sends the request to an external device. Issued semiconductor integrated circuit.
請求項12に記載の半導体集積回路において、
前記リクエストセレクタは、前記優先度の高いキューの全てにリクエストが格納されている場合、前記格納されたリクエストの全てを発行した後、前記優先度の高いキューより低い優先度のキュー内のリクエストを選択して外部デバイスに発行する
半導体集積回路。
The semiconductor integrated circuit according to claim 12, wherein
When requests are stored in all of the high priority queues, the request selector issues all of the stored requests, and then requests requests in a queue with a lower priority than the high priority queues. A semiconductor integrated circuit that is selected and issued to an external device.
複数のキューを用意するステップと、
複数のバスマスタから発行されたリクエストのアクセス先のアドレスに基づいて、前記リクエストを複数のキューのいずれかに振り分けるステップと、
前記複数のキューから選択したキュー内のリクエストを外部デバイスに発行するステップと
を具備する
リクエスト制御方法。
Preparing multiple queues;
Allocating the request to one of a plurality of queues based on an access destination address of a request issued from a plurality of bus masters;
Issuing a request in a queue selected from the plurality of queues to an external device.
請求項14に記載のリクエスト制御方法において、
前記振り分けるステップは、前記リクエストのコマンド種に基づいて、前記リクエストを前記複数のキューのいずれかに振り分けるステップを備える
リクエスト制御方法。
The request control method according to claim 14,
The distribution step includes a step of distributing the request to any of the plurality of queues based on a command type of the request.
請求項14又は15に記載のリクエスト制御方法において、
前記複数のキューのそれぞれには、異なる優先度が付与され、
前記リクエストを外部デバイスに発行するステップは、前記優先度の高いキュー内のリクエストを優先して選択して外部デバイスに発行するステップを備える
リクエスト制御方法。
The request control method according to claim 14 or 15,
Each of the plurality of queues is given a different priority.
The step of issuing the request to an external device includes a step of preferentially selecting a request in the queue having a high priority and issuing the request to the external device.
請求項16に記載のリクエスト制御方法において、
前記振り分けるステップは、トランザクションの完了を待たずに出力可能なリクエストを第1キューに格納するステップと、トランザクションの完了を待ってから出力するリクエストを前記第1キューより優先度の低い第2キューに格納するステップとを備える
リクエスト制御方法。
The request control method according to claim 16, wherein
The distributing step stores a request that can be output without waiting for completion of the transaction in the first queue, and a request that is output after waiting for completion of the transaction in the second queue having a lower priority than the first queue. A request control method comprising the step of storing.
請求項17に記載のリクエスト制御方法において、
受信部が、前記第1キューから選択されて発行されたリクエストに応じて第1応答信号を出力するステップと、
前記第1応答信号に応じて前記第1キューから次のリクエストを抽出して、外部デバイスに発行するステップと
を更に具備する
リクエスト制御方法。
The request control method according to claim 17,
A receiving unit outputting a first response signal in response to a request selected from the first queue and issued;
Extracting the next request from the first queue in response to the first response signal and issuing the next request to an external device; and a request control method.
請求項18に記載のリクエスト制御方法において、
前記受信部が、前記第2キューから選択されて発行されたリクエストの完了通知を外部デバイスから受信するステップと、
前記受信部が、前記完了通知に応じて第2応答信号を出力するステップと、
前記第2応答信号に応じて前記第2キューから次のリクエストを抽出して、外部デバイスに発行するステップと
を更に具備する
リクエスト制御方法。
The request control method according to claim 18, wherein
Receiving the notification of completion of a request selected and issued from the second queue from an external device;
The receiving unit outputting a second response signal in response to the completion notification;
Extracting a next request from the second queue in response to the second response signal and issuing the next request to an external device; and a request control method.
請求項16から19のいずれか1項に記載のリクエスト制御方法において、
前記優先度の高いキュー内にリクエストが格納されている場合、前記優先度の高いキュー内のリクエストがなくなるまで、前記優先度の高いキュー内のリクエストを選択して外部デバイスに発行するステップを更に具備する
リクエスト制御方法。
The request control method according to any one of claims 16 to 19,
If a request is stored in the high priority queue, further selecting and issuing a request in the high priority queue to an external device until there are no more requests in the high priority queue. A request control method provided.
請求項20に記載のリクエスト制御方法において、
前記優先度の高いキューの全てにリクエストが格納されている場合、前記格納されたリクエストの全てを発行した後、前記優先度の高いキューより低い優先度のキュー内のリクエストを選択して外部デバイスに発行するステップを更に具備する
リクエスト制御方法。
The request control method according to claim 20, wherein
When requests are stored in all of the high priority queues, after issuing all of the stored requests, select a request in a queue with a lower priority than the high priority queue and select an external device A request control method further comprising the step of:
JP2010101863A 2010-04-27 2010-04-27 Semiconductor integrated circuit and request control method Withdrawn JP2011232917A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010101863A JP2011232917A (en) 2010-04-27 2010-04-27 Semiconductor integrated circuit and request control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010101863A JP2011232917A (en) 2010-04-27 2010-04-27 Semiconductor integrated circuit and request control method

Publications (1)

Publication Number Publication Date
JP2011232917A true JP2011232917A (en) 2011-11-17

Family

ID=45322180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010101863A Withdrawn JP2011232917A (en) 2010-04-27 2010-04-27 Semiconductor integrated circuit and request control method

Country Status (1)

Country Link
JP (1) JP2011232917A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065065A (en) * 2011-09-15 2013-04-11 Ricoh Co Ltd Access control device, image forming device, and access control method
JP2013242766A (en) * 2012-05-22 2013-12-05 Denso Corp Request processing apparatus
WO2017043140A1 (en) * 2015-09-08 2017-03-16 ソニー株式会社 Memory controller, memory system, and method for controlling memory controller
JP2017054483A (en) * 2015-09-08 2017-03-16 ソニー株式会社 Memory controller, memory system, and control method of memory controller
JP2021507361A (en) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド Memory protection device for indirect access memory controllers
JP2021083068A (en) * 2019-11-14 2021-05-27 キヤノン株式会社 Image processing apparatus, image processing system, and method for controlling image processing apparatus

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065065A (en) * 2011-09-15 2013-04-11 Ricoh Co Ltd Access control device, image forming device, and access control method
JP2013242766A (en) * 2012-05-22 2013-12-05 Denso Corp Request processing apparatus
WO2017043140A1 (en) * 2015-09-08 2017-03-16 ソニー株式会社 Memory controller, memory system, and method for controlling memory controller
JP2017054483A (en) * 2015-09-08 2017-03-16 ソニー株式会社 Memory controller, memory system, and control method of memory controller
JP2021507361A (en) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド Memory protection device for indirect access memory controllers
JP7213879B2 (en) 2017-12-15 2023-01-27 シー-スカイ マイクロシステムズ カンパニー,リミテッド Memory protection device for indirect access memory controller
US11726675B2 (en) 2017-12-15 2023-08-15 C-Sky Microsystems Co., Ltd. Memory protective apparatus for indirect access memory controller
JP2021083068A (en) * 2019-11-14 2021-05-27 キヤノン株式会社 Image processing apparatus, image processing system, and method for controlling image processing apparatus
JP7493954B2 (en) 2019-11-14 2024-06-03 キヤノン株式会社 Image processing device and method for controlling image processing device

Similar Documents

Publication Publication Date Title
US9280290B2 (en) Method for steering DMA write requests to cache memory
US8683126B2 (en) Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8656071B1 (en) System and method for routing a data message through a message network
US7865647B2 (en) Efficient resource arbitration
US20100095036A1 (en) Priority Based Bus Arbiters Avoiding Deadlock And Starvation On Buses That Support Retrying Of Transactions
KR20140048186A (en) A memory controller and method of operation of such a memory controller
JP2011232917A (en) Semiconductor integrated circuit and request control method
US9213545B2 (en) Storing data in any of a plurality of buffers in a memory controller
US8489851B2 (en) Processing of read requests in a memory controller using pre-fetch mechanism
US20180276128A1 (en) Methods for performing a memory resource retry
US9984014B2 (en) Semiconductor device
EP2447851A1 (en) Transmission device, transmission method, and transmission program
JP5057360B2 (en) Semiconductor device, data processing device, and access method to storage device
CN114003168A (en) Storage device and method for processing commands
US8458406B2 (en) Multiple critical word bypassing in a memory controller
US7000060B2 (en) Method and apparatus for ordering interconnect transactions in a computer system
US7509482B2 (en) Orderly processing ready entries from non-sequentially stored entries using arrival order matrix reordered upon removal of processed entries
US7228362B2 (en) Out-of-order servicing of read requests with minimal additional storage
US8560784B2 (en) Memory control device and method
JP2010044645A (en) Data transfer device, and data transfer method
US8996772B1 (en) Host communication device and method with data transfer scheduler
JP2011028343A (en) Processor and data transfer method
US9110856B2 (en) Interface control apparatus, data storage apparatus and method for interface control
US20140136796A1 (en) Arithmetic processing device and method for controlling the same
JP6992616B2 (en) Data transfer device, data transfer method, program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130702