JP6416488B2 - Semiconductor device - Google Patents

Semiconductor device Download PDF

Info

Publication number
JP6416488B2
JP6416488B2 JP2014072334A JP2014072334A JP6416488B2 JP 6416488 B2 JP6416488 B2 JP 6416488B2 JP 2014072334 A JP2014072334 A JP 2014072334A JP 2014072334 A JP2014072334 A JP 2014072334A JP 6416488 B2 JP6416488 B2 JP 6416488B2
Authority
JP
Japan
Prior art keywords
bus
response
write
dummy
control circuit
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.)
Active
Application number
JP2014072334A
Other languages
Japanese (ja)
Other versions
JP2015194900A (en
Inventor
和憲 山下
和憲 山下
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.)
MegaChips Corp
Original Assignee
MegaChips 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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2014072334A priority Critical patent/JP6416488B2/en
Publication of JP2015194900A publication Critical patent/JP2015194900A/en
Application granted granted Critical
Publication of JP6416488B2 publication Critical patent/JP6416488B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、半導体装置に関し、特に、バスを介したDMA転送を実行可能な半導体装置に関する。   The present invention relates to a semiconductor device, and more particularly to a semiconductor device capable of executing DMA transfer via a bus.

DMA(Direct Memory Access)は、コンピュータシステムにおいて、プロセッサを介さずにコンポーネント間でバスを介したデータ転送を行う技術である。かかるDMAによるデータ転送(以下、「DMA転送」という。)では、プロセッサにおいてデータ転送要求が発生した場合、プロセッサは、DMAコントローラに対してデータ転送命令を与え、DMAコントローラは、該データ転送命令に基づいて、プロセッサの処理とは独立に、データの転送処理を行う。DMAコントローラは、該転送処理が完了すると、CPUに対して割り込みをかけ、該転送処理完了したことを通知する。一般に、プロセッサやDMAコントローラは、バス乃至はバスIPを制御してメモリ等にアクセスすることから、「バスマスタ」又は「イニシエータ」と呼ばれ、該アクセスされるメモリ等は「バススレーブ」又は「ターゲット」と呼ばれる。   DMA (Direct Memory Access) is a technique for transferring data between components via a bus without using a processor in a computer system. In such data transfer by DMA (hereinafter referred to as “DMA transfer”), when a data transfer request is generated in the processor, the processor gives a data transfer instruction to the DMA controller, and the DMA controller receives the data transfer instruction. Based on this, data transfer processing is performed independently of the processing of the processor. When the transfer process is completed, the DMA controller interrupts the CPU to notify the completion of the transfer process. Generally, a processor or a DMA controller controls a bus or a bus IP to access a memory or the like, and is therefore referred to as a “bus master” or “initiator”. Called.

例えば、下記特許文献1は、バスを介してデータ転送を行うデータ転送装置であって、データをターゲットデバイスへ書き込むデバイスコントローラと、前記バスを介して前記デバイスコントローラへ前記データをDMA転送すると共に、前記デバイスコントローラへ転送完了通知要求信号を出力するイニシエータコア11と、を備える該データ転送装置を開示する。そして、前記デバイスコントローラは、前記転送完了通知要求信号を受信した場合、前記ターゲットデバイスへの前記データの全てのすべての書き込みに伴い転送完了通知信号を出力する。   For example, the following Patent Document 1 is a data transfer device that performs data transfer via a bus, and DMA-transfers the data to a device controller that writes data to a target device and the device controller via the bus, Disclosed is a data transfer device including an initiator core 11 that outputs a transfer completion notification request signal to the device controller. When the device controller receives the transfer completion notification request signal, the device controller outputs a transfer completion notification signal with all writing of the data to the target device.

特開2009−277004号公報JP 2009-277004 A

バスマスタとして動作するプロセッサ又はDMAコントローラが、例えば、バスIPを介して、SRAM等のメモリにアクセスする場合、バスIPの競合が発生し得る。すなわち、プロセッサのアクセス(例えば、リード/ライト)は、典型的には、DMAコントローラのそれよりも優先度が高く、プロセッサのアクセス中に発生したDMAコントローラのアクセスは、プロセッサのアクセスの終了後に実行される。また、データの整合性を保証するため、DMAコントローラによるメモリへのライトアクセス制御が発生する場合、プロセッサは、該ライトアクセス制御が終了し、割り込みがかかるまで、ウェイト状態になる必要がある。DMAコントローラは、メモリへのデータ転送終了の通知をバスIPから受け取ると、プロセッサに対して割り込みをかけ、プロセッサは、これを受けて、実行を再開する。   When a processor or a DMA controller that operates as a bus master accesses a memory such as an SRAM via the bus IP, for example, a conflict of the bus IP may occur. That is, processor accesses (eg, read / write) typically have a higher priority than those of the DMA controller, and DMA controller accesses that occur during processor access are executed after the processor access is completed. Is done. In order to guarantee data consistency, when write access control to the memory by the DMA controller occurs, the processor needs to be in a wait state until the write access control ends and an interrupt is generated. When the DMA controller receives a notification of the end of data transfer to the memory from the bus IP, the DMA controller interrupts the processor, and the processor resumes execution upon receiving the interrupt.

しかしながら、DMAコントローラが、メモリに対するデータのライトアクセス制御を行ってから、バスIPからデータ転送終了の通知を受け取るまで、典型的には、数クロックを要する場合があり、プロセッサへの割り込みや次のライトアクセス制御に対してレイテンシーが発生するのが実情である。   However, it may take several clocks from the time when the DMA controller performs the write access control of the data to the memory until the notification of the end of the data transfer is received from the bus IP. Actually, latency occurs with respect to write access control.

また、DMAコントローラが、プロセッサとの間で競合せず、所定の時間内にアクセスが終了することがわかっている場合であっても、DMAコントローラは、バスIPからのデータ転送終了の通知に基づいて割り込みをかけていたため、同様に、望ましくないレイテンシーが発生していた。   Further, even when the DMA controller does not compete with the processor and it is known that the access is completed within a predetermined time, the DMA controller is based on the data transfer completion notification from the bus IP. Similarly, an undesirable latency occurred as well.

そこで、本発明は、DMA転送におけるレイテンシーの改善を図ることのできる半導体装置を提供することを目的とする。   Therefore, an object of the present invention is to provide a semiconductor device capable of improving the latency in DMA transfer.

より具体的には、本発明は、バスIPを介して接続されるDMAコントローラとメモリとの間のDMA転送によるライトアクセス制御において、データ転送終了の通知を早期に送ることで、レイテンシーの改善を図ることのできる半導体装置を提供することを目的とする。   More specifically, the present invention improves the latency by sending a notification of the end of data transfer early in write access control by DMA transfer between the DMA controller and the memory connected via the bus IP. An object of the present invention is to provide a semiconductor device that can be realized.

上記課題を解決するための本発明は、以下に示す発明特定事項乃至は技術的特徴を含んで構成される。   The present invention for solving the above-described problems is configured to include the following invention specific items or technical features.

ある観点に従う本発明は、バスIPを介してリクエスト/レスポンスに基づく所定のバスプロトコルに従いデータ転送可能に接続された、バスマスタとして動作する少なくとも1つのプロセッサと、バススレーブとして動作する少なくとも1つのメモリと、前記バスマスタとして動作するDMAコントローラとを含む半導体装置である。前記半導体装置は、前記少なくとも1つのプロセッサ及び前記DMAコントローラに接続され、前記バスIPと同じ挙動をするように構成されたダミーバスIPと、前記ダミーバスIPに接続され、前記メモリと同じ挙動をするように構成されたダミーメモリと、前記DMAコントローラと、前記バスIP及び前記ダミーバスIPとの間に設けられたバス制御回路とを備える。前記ダミーバスIPは、前記DMAコントローラにより発行されたリクエストに基づく先行レスポンスを前記バス制御回路に送出する。また、前記バス制御回路は、前記ダミーバスIPから送出された前記先行レスポンスに基づいて、前記リクエストに対するレスポンスを前記DMAコントローラに送出する。   The present invention according to an aspect includes at least one processor operating as a bus master and at least one memory operating as a bus slave, connected to be able to transfer data according to a predetermined bus protocol based on a request / response via a bus IP. And a DMA controller that operates as the bus master. The semiconductor device is connected to the at least one processor and the DMA controller and configured to behave the same as the bus IP, and is connected to the dummy bus IP and behaves the same as the memory. A dummy memory configured as described above, the DMA controller, and a bus control circuit provided between the bus IP and the dummy bus IP. The dummy bus IP sends a preceding response based on the request issued by the DMA controller to the bus control circuit. The bus control circuit sends a response to the request to the DMA controller based on the preceding response sent from the dummy bus IP.

とりわけ、前記ダミーバスIPは、前記バスマスタにより発行されたライトリクエストに基づいて前記先行レスポンスを前記バス制御回路に送出し、前記バス制御回路は、前記ダミーバスIPから送出された前記先行レスポンスに基づいて、前記ライトリクエストに対するライトレスポンスを前記DMAコントローラに送出し得る。   In particular, the dummy bus IP sends the preceding response to the bus control circuit based on a write request issued by the bus master, and the bus control circuit based on the preceding response sent from the dummy bus IP, A write response to the write request can be sent to the DMA controller.

これにより、前記半導体装置では、前記DMAコントローラから前記メモリに対してライトアクセスが発行された場合に、前記メモリからのライトレスポンスを待つことなく、擬似的なライトレスポンスを前記DMAコントローラに返すことができるようになる。したがって、前記DMAコントローラは、前記メモリに対するライトアクセスを直ちに終了させることができ、レイテンシーが改善されることになる。   Thereby, in the semiconductor device, when a write access is issued from the DMA controller to the memory, a pseudo write response can be returned to the DMA controller without waiting for a write response from the memory. become able to. Therefore, the DMA controller can immediately terminate the write access to the memory, and the latency is improved.

前記DMAコントローラは、前記ライトリクエストに対する前記ライトレスポンスを受け取った場合に、前記プロセッサに対して割り込みをかけ得る。   The DMA controller may interrupt the processor when receiving the write response to the write request.

前記ダミーバスIPは、前記バスIPが前記バスマスタにより発行されたリクエストに基づいて前記メモリに対して該リクエストを発行するタイミングと同一のタイミングで、前記先行レスポンスを前記バス制御回路に送出し得る。   The dummy bus IP may send the preceding response to the bus control circuit at the same timing as when the bus IP issues the request to the memory based on a request issued by the bus master.

前記ダミーバスIPは、前記バスマスタにより発行されたリクエストに従うデータ本体を無視するように構成され得る。また、これに伴い、前記ダミーメモリは、前記バスマスタにより発行されたリクエストに従うデータ本体を記憶する記憶セルを有しないように構成される一方で、該リクエストに対するレスポンスを前記ダミーバスIPに発行するように構成され得る。   The dummy bus IP may be configured to ignore a data body according to a request issued by the bus master. Accordingly, the dummy memory is configured not to have a memory cell that stores a data body according to the request issued by the bus master, while issuing a response to the request to the dummy bus IP. Can be configured.

前記半導体装置は、前記少なくとも1つのプロセッサ及び前記DMAコントローラと前記ダミーバスIPとの間に設けられた第1のタイミング調整回路をさらに備え得る。   The semiconductor device may further include a first timing adjustment circuit provided between the at least one processor and the DMA controller and the dummy bus IP.

また、前記バス制御回路は、前記先行レスポンスに基づく前記ライトレスポンスを前記DMAコントローラに送出した後、前記バスIPを介して、前記メモリにより発行された前記リクエストに対する真のライトレスポンスを受け取った場合、該真のライトレスポンスが前記DMAコントローラに送出されないように制御し得る。   When the bus control circuit receives a true write response to the request issued by the memory via the bus IP after sending the write response based on the preceding response to the DMA controller, Control may be performed so that the true write response is not sent to the DMA controller.

さらに、前記バス制御回路は、前記ダミーバスIPから送出される前記先行レスポンスを受け取った場合に、前記ライトリクエストに先行する、前記バスマスタにより発行された他のリクエストが存在すると判断する場合には、前記先行レスポンスに基づく前記ライトリクエストに対するライトレスポンスに代えて、前記バスIPを介して受け取った、前記メモリにより発行された前記ライトリクエストに対する真のライトレスポンスを前記DMAコントローラに送出し得る。   Further, when the bus control circuit determines that there is another request issued by the bus master that precedes the write request when the preceding response sent from the dummy bus IP is received, Instead of a write response to the write request based on the preceding response, a true write response to the write request issued by the memory received via the bus IP may be sent to the DMA controller.

さらにまた、バス制御回路は、前記他のリクエストに対するレスポンスを前記バスマスタに送出した後、前記真のライトレスポンスを前記DMAコントローラに送出し得る。   Furthermore, the bus control circuit may send the true write response to the DMA controller after sending a response to the other request to the bus master.

また、前記バス制御回路は、前記バスマスタにより発行されたリクエストを一時的に格納するバッファと、前記メモリにより発行され前記バスIPを介して受け取ったレスポンスと前記バッファに格納された前記リクエストとの対応関係に従って、前記バスマスタにより発行された前記リクエストに対する所定のレスポンスを前記バスマスタに送出するように制御するレスポンス制御部とを備え得る。   The bus control circuit also includes a buffer for temporarily storing a request issued by the bus master, a response issued by the memory and received via the bus IP, and a correspondence between the request stored in the buffer. According to the relationship, a response control unit may be provided that controls to send a predetermined response to the request issued by the bus master to the bus master.

また、前記バス制御回路は、前記バスマスタにより発行されたリクエストを前記バッファに格納するためのタイミングを調整する第2のタイミング調整回路をさらに備え得る。   The bus control circuit may further include a second timing adjustment circuit that adjusts a timing for storing a request issued by the bus master in the buffer.

また、前記半導体装置は、前記少なくとも1つのプロセッサにより発行されるライトリクエストの数と、前記ダミーバスIPを介して受け取った前記ダミーメモリにより発行されたライトレスポンスの数とを監視する少なくとも1つのバス監視回路をさらに備え得る。前記バス制御回路は、前記バス監視回路により前記少なくとも1つのプロセッサから前記メモリに対する現在処理中のライトリクエストが存在しないと判断される場合に、前記DMAコントローラにより一のライトリクエストが発行された時点で、該一のライトリクエストに対するライトレスポンスを前記DMAコントローラに送出し得る。   Further, the semiconductor device monitors at least one bus monitor that monitors the number of write requests issued by the at least one processor and the number of write responses issued by the dummy memory received via the dummy bus IP. A circuit may further be provided. When the bus monitoring circuit determines that there is no write request currently being processed from the at least one processor to the memory by the bus monitoring circuit, at the time when one write request is issued by the DMA controller. A write response to the one write request can be sent to the DMA controller.

また、前記半導体装置に複数のバス監視回路が設けられた場合、前記複数のバス監視回路のそれぞれは、複数の前記プロセッサのうちの対応する一のプロセッサにより発行されるライトリクエストの数を監視し得る。   In the case where a plurality of bus monitoring circuits are provided in the semiconductor device, each of the plurality of bus monitoring circuits monitors the number of write requests issued by a corresponding one of the plurality of processors. obtain.

また、前記半導体装置は、複数の前記メモリと、該複数のメモリのそれぞれに対応する複数のダミーメモリとを備え得る。前記ダミーバスIPは、前記バスマスタにより発行された前記複数のダミーメモリのそれぞれに対するライトアクセスに基づいて、前記先行レスポンスを前記バス制御回路にそれぞれ送出し得る。   The semiconductor device may include a plurality of the memories and a plurality of dummy memories corresponding to the plurality of memories. The dummy bus IP can send the preceding response to the bus control circuit based on a write access to each of the plurality of dummy memories issued by the bus master.

また、別の観点に従う本発明は、方法の発明としても把握することができる。   Further, the present invention according to another aspect can be grasped as a method invention.

なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されても良い。   In this specification and the like, the means does not simply mean a physical means, but includes a case where the functions of the means are realized by software. Further, the function of one means may be realized by two or more physical means, or the functions of two or more means may be realized by one physical means.

本発明によれば、DMA転送におけるレイテンシーの改善を図ることのできる半導体装置が実現される。   According to the present invention, a semiconductor device capable of improving the latency in DMA transfer is realized.

より具体的には、本発明によれば、DMAコントローラからメモリに対してライトリクエストが発行された場合に、該メモリからのライトレスポンスを待つことなく、擬似的なライトレスポンスを該DMAコントローラに返すため、該DMAコントローラは、該メモリに対するライトアクセスを直ちに終了させることができ、したがって、半導体装置におけるレイテンシーを改善することができるようになる。   More specifically, according to the present invention, when a write request is issued from the DMA controller to the memory, a pseudo write response is returned to the DMA controller without waiting for the write response from the memory. Therefore, the DMA controller can immediately terminate the write access to the memory, and hence the latency in the semiconductor device can be improved.

また、本発明によれば、レイテンシー改善のために導入したダミーバスIP及びダミーメモリは、本来のバスIP及びメモリの回路構成を全て再現する必要はなく、したがって、回路規模の増大を回避しつつ、レイテンシーの改善を図ることのできる半導体装置が実現される。   Further, according to the present invention, the dummy bus IP and the dummy memory introduced for improving the latency do not need to reproduce all the circuit configurations of the original bus IP and the memory, and therefore, while avoiding an increase in circuit scale, A semiconductor device capable of improving the latency is realized.

本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。   Other technical features, objects, effects, and advantages of the present invention will become apparent from the following embodiments described with reference to the accompanying drawings.

本発明の一実施形態に係る半導体装置の概略構成の一例を説明するブロックダイアグラムである。It is a block diagram explaining an example of schematic structure of the semiconductor device concerning one embodiment of the present invention. 本発明の一実施形態に係る半導体装置のバスIPの概略構成の一例を示すブロックダイアグラムである。It is a block diagram which shows an example of schematic structure of bus | bath IP of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置のダミーバスIPの概略構成の一例を示すブロックダイアグラムである。It is a block diagram which shows an example of schematic structure of the dummy bus IP of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置の概略的動作の一例を説明するためのタイミングチャートである。6 is a timing chart for explaining an example of a schematic operation of the semiconductor device according to the embodiment of the present invention. 本発明の一実施形態に係る半導体装置の概略的動作の他の例を説明するためのタイミングチャートである。It is a timing chart for demonstrating other examples of schematic operation | movement of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の一例を示すブロックダイアグラムである。1 is a block diagram illustrating an example of a schematic configuration of a bus control circuit of a semiconductor device according to an embodiment of the present invention. 本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。4 is a flowchart for explaining response processing in a bus control circuit of a semiconductor device according to an embodiment of the present invention. 本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。4 is a flowchart for explaining response processing in a bus control circuit of a semiconductor device according to an embodiment of the present invention; 本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。4 is a flowchart for explaining response processing in a bus control circuit of a semiconductor device according to an embodiment of the present invention; 本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の他の例を示すブロックダイアグラムである。It is a block diagram which shows the other example of schematic structure of the bus control circuit of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置のバス制御回路の動作の一例を説明するためのタイミングチャートである。5 is a timing chart for explaining an example of the operation of the bus control circuit of the semiconductor device according to the embodiment of the present invention. 本発明の一実施形態に係る半導体装置のバス制御回路の動作の他の例を説明するためのタイミングチャートである。6 is a timing chart for explaining another example of the operation of the bus control circuit of the semiconductor device according to the embodiment of the present invention. 本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。It is a block diagram which shows an example of schematic structure of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の他の例を示すブロックダイアグラムである。It is a block diagram which shows the other example of schematic structure of the bus control circuit of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。It is a block diagram which shows an example of schematic structure of the semiconductor device which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。It is a block diagram which shows an example of schematic structure of the semiconductor device which concerns on one Embodiment of this invention.

以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本発明は、その趣旨を逸脱しない範囲で種々変形(例えば各実施形態を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。   Embodiments of the present invention will be described below with reference to the drawings. However, the embodiment described below is merely an example, and there is no intention to exclude various modifications and technical applications that are not explicitly described below. The present invention can be implemented with various modifications (for example, by combining the embodiments) without departing from the spirit of the present invention. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals. The drawings are schematic and do not necessarily match actual dimensions and ratios. In some cases, the dimensional relationships and ratios may be different between the drawings.

本発明は、バスIPを介してリクエスト/レスポンスに基づくバスプロトコルに従いデータ転送可能に接続された、プロセッサと、メモリと、DMAコントローラ(DMAC)とを含む半導体装置である。該半導体装置は、該バスIPと同じ挙動をするように構成されたダミーバスIPと、該ダミーバスIPに接続され、該メモリと同じ挙動をするように構成されたダミーメモリと、該DMACと該バスIP及び該ダミーバスIPとの間に設けられたバス制御回路とをさらに備える。該ダミーバスIPは、該DMACにより発行されたライトリクエストに基づく先行レスポンスを該バス制御回路に送出し、該バス制御回路は、該先行レスポンスに基づいて、該ライトリクエストに対するライトレスポンスを該DMAコントローラに送出する。   The present invention is a semiconductor device including a processor, a memory, and a DMA controller (DMAC), which are connected so as to be able to transfer data according to a bus protocol based on a request / response via a bus IP. The semiconductor device includes a dummy bus IP configured to behave the same as the bus IP, a dummy memory connected to the dummy bus IP and configured to behave the same as the memory, the DMAC, and the bus And a bus control circuit provided between the IP and the dummy bus IP. The dummy bus IP sends a preceding response based on the write request issued by the DMAC to the bus control circuit, and the bus control circuit sends a write response to the write request to the DMA controller based on the preceding response. Send it out.

[第1の実施形態]
図1は、本発明の一実施形態に係る半導体装置の概略構成の一例を説明するブロックダイアグラムである。同図に示すように、半導体装置100は、例えば、プロセッサ110と、メモリ120と、バスIP130と、DMAコントローラ(以下、「DMAC」という。)140とを含んで構成される。すなわち、プロセッサ110、メモリ120、及びDMAC140との間は、いわゆるバスが形成されている。本実施形態ではさらに、半導体装置100は、例えば、ダミーバスIP150と、ダミーメモリ160と、タイミング調整回路170と、バス制御回路180とを含む。すなわち、ダミーパスIP、ダミーメモリ、及びタイミング調整回路によりダミーブロックが形成されている。
[First Embodiment]
FIG. 1 is a block diagram illustrating an example of a schematic configuration of a semiconductor device according to an embodiment of the present invention. As shown in the figure, the semiconductor device 100 includes, for example, a processor 110, a memory 120, a bus IP 130, and a DMA controller (hereinafter referred to as “DMAC”) 140. That is, a so-called bus is formed between the processor 110, the memory 120, and the DMAC 140. In the present embodiment, the semiconductor device 100 further includes, for example, a dummy bus IP150, a dummy memory 160, a timing adjustment circuit 170, and a bus control circuit 180. That is, a dummy block is formed by the dummy path IP, the dummy memory, and the timing adjustment circuit.

プロセッサ110は、プログラムとして記述された命令コードを解釈することにより所定の処理を実行するコンポーネントである。ここでは、「プロセッサ」という語は、CPUやMPU、コプロセッサ、マイクロコントローラ等と同義のものとして扱われ、また、マルチコアプロセッサを意味するものであっても良い。プロセッサ110は、図示されていないが、例えば、演算回路と、デコーダと、各種のレジスタと、プログラムカウンタとを含んで構成される。プロセッサ110はまた、キャッシュメモリを含んで良い。プロセッサ110は、例えば、バスIP130を介して、メモリ120と接続される。プロセッサ110は、例えば、バスマスタとして、バススレーブであるメモリ120にアクセスするため、所定のリクエスト(例えばライトリクエストやリードリクエスト)を発行する。リクエストは、半導体装置100において例えば固有のアクセスIDによって一意に識別される。   The processor 110 is a component that executes a predetermined process by interpreting an instruction code described as a program. Here, the term “processor” is treated as synonymous with a CPU, MPU, coprocessor, microcontroller, or the like, and may mean a multi-core processor. Although not shown, the processor 110 includes, for example, an arithmetic circuit, a decoder, various registers, and a program counter. The processor 110 may also include a cache memory. The processor 110 is connected to the memory 120 via the bus IP130, for example. For example, the processor 110 issues a predetermined request (for example, a write request or a read request) in order to access the memory 120 as a bus slave as a bus master. The request is uniquely identified in the semiconductor device 100 by, for example, a unique access ID.

メモリ120は、例えば、揮発性メモリ及び/又は書き換え可能な不揮発性メモリを含んで構成されるコンポーネントである。揮発性メモリの例としては、DRAMやSRAMが挙げられ、また、書き換え可能な不揮発性メモリの例としては、フラッシュメモリが挙げられるが、これらに限られるものではない。図中、1つのメモリ120のみが示されているが、複数のメモリ120が設けられていても良い。   The memory 120 is a component configured to include, for example, a volatile memory and / or a rewritable nonvolatile memory. Examples of volatile memory include DRAM and SRAM, and examples of rewritable nonvolatile memory include flash memory, but are not limited thereto. Although only one memory 120 is shown in the figure, a plurality of memories 120 may be provided.

バスIP130は、所定のバスプロトコルに従って、バスマスタとバススレーブとの間のデータ転送(バス通信)を実現するためのインターフェース回路である。バスプロトコルでは、例えば、リクエスト及びレスポンスというアクセスがそれぞれ定義される。リクエストは、バスマスタからバススレーブに対して送られるデータユニットであり、リクエストには、例えば、リードコマンドやライトコマンド等がある。レスポンスは、バススレーブからバスマスタに対して送られるデータユニットであり、リクエストには、例えば、リードデータやライト終了メッセージ等がある。本実施形態では、プロセッサ110及びDMAC140のそれぞれがバスマスタとして動作し、メモリ120がバススレーブとして動作する例を示している。したがって、本例では、バスIP130は、バスマスタと通信するための2つのイニシエータエージェント(IA)131と、メモリ120と通信するための1つのターゲットエージェント(TA)132とを含んで構成されている。   The bus IP 130 is an interface circuit for realizing data transfer (bus communication) between a bus master and a bus slave according to a predetermined bus protocol. In the bus protocol, for example, access of request and response is defined. The request is a data unit sent from the bus master to the bus slave, and the request includes, for example, a read command and a write command. The response is a data unit sent from the bus slave to the bus master, and the request includes, for example, read data and a write end message. In this embodiment, each of the processor 110 and the DMAC 140 operates as a bus master, and the memory 120 operates as a bus slave. Accordingly, in this example, the bus IP 130 is configured to include two initiator agents (IA) 131 for communicating with the bus master and one target agent (TA) 132 for communicating with the memory 120.

図2は、本発明の一実施形態に係る半導体装置のバスIPの概略構成の一例を示すブロックダイアグラムである。同図では、2つのイニシエータエージェント131A及び131Bと、1つのターゲットエージェント132とを含むバスIP130の概略構成が示されている。また、同図に示すように、バスIP130の内部では、バスプロトコルのリクエストとレスポンスとを別々に管理するように、それぞれ異なる経路が形成されている。   FIG. 2 is a block diagram showing an example of a schematic configuration of the bus IP of the semiconductor device according to the embodiment of the present invention. In the figure, a schematic configuration of a bus IP 130 including two initiator agents 131A and 131B and one target agent 132 is shown. Also, as shown in the figure, different paths are formed in the bus IP 130 so as to separately manage bus protocol requests and responses.

イニシエータエージェント131A及び131Bのそれぞれは、プロトコル変換部1311と、各種のバッファ1312a〜1312dと、アドレスデコーダ1313とを含んで構成される。プロトコル変換部1311は、外部から受け取ったデータを、所定のバスプロトコルに従って、順次に、内部データに変換し、対応するバッファ1312a又は1312bに送出する一方、対応するバッファ1312c又は1312dから受け取った内部データを、所定のバスプロトコルに従って、外部のデータに変換する。リクエストバッファ1312aは、データユニットとしてのリクエストを格納するFIFO形式のバッファ回路であり、ライトデータバッファ1312bは、ライトリクエストに従うライトデータを格納するFIFO形式のバッファ回路である。リクエストバッファ1312aから送出されるリクエストは、アドレスデコーダ1313に入力される。また、レスポンスバッファ1312cは、ターゲットエージェント132から受け取ったレスポンスを格納するFIFO形式のバッファ回路であり、リードデータバッファ1312dは、ターゲットエージェント132から受け取ったリードデータを格納するFIFO形式のバッファ回路である。アドレスデコーダ1313は、リクエストバッファ1312aから受け取ったリクエストが示すアドレスに基づいて、アクセス先のバススレーブ及びそのアドレスを特定する。   Each of the initiator agents 131A and 131B includes a protocol conversion unit 1311, various buffers 1312a to 1312d, and an address decoder 1313. The protocol conversion unit 1311 sequentially converts data received from the outside into internal data according to a predetermined bus protocol, and sends the internal data to the corresponding buffer 1312a or 1312b, while the internal data received from the corresponding buffer 1312c or 1312d. Are converted into external data according to a predetermined bus protocol. The request buffer 1312a is a FIFO buffer circuit that stores a request as a data unit, and the write data buffer 1312b is a FIFO buffer circuit that stores write data according to the write request. The request transmitted from the request buffer 1312a is input to the address decoder 1313. The response buffer 1312c is a FIFO buffer circuit that stores a response received from the target agent 132, and the read data buffer 1312d is a FIFO buffer circuit that stores read data received from the target agent 132. The address decoder 1313 identifies an access destination bus slave and its address based on the address indicated by the request received from the request buffer 1312a.

また、プロトコル変換部1311は、バスマスタから受け取ったリクエストが互いに識別可能なように、該受け取ったリクエストに対してバスマスタに固有のアクセスIDを付与し得る。アクセスIDは、リクエストに対するレスポンスに引き継がれ、これによって、バスIP130は、バススレーブから受け取ったレスポンスがどのリクエストに対応するかを認識することができる。   In addition, the protocol conversion unit 1311 can assign a unique access ID to the bus master for the received requests so that the requests received from the bus master can be distinguished from each other. The access ID is carried over to the response to the request, and thereby the bus IP 130 can recognize which request corresponds to the response received from the bus slave.

ターゲットエージェント132は、プロトコル変換部1321と、各種のバッファ1322a〜1322dとを含んで構成される。ターゲットエージェント132は、アドレスレコーダを含まない点でイニシエータエージェント131と異なりが、その他は同じであるため、説明を省略する。   The target agent 132 includes a protocol conversion unit 1321 and various buffers 1322a to 1322d. The target agent 132 is different from the initiator agent 131 in that it does not include an address recorder, but the others are the same and will not be described.

図1に戻り、DMAC140は、指定されたコンポーネント間で、直接的にデータを転送するためのコンポーネントである。例えば、DMAC140は、自身がバスマスタとして、バススレーブであるメモリ120に対してアクセスするため、リクエスト(例えばライトリクエストやリードリクエスト)を発行する。例えば、DMAC140は、プロセッサ110によって、内部のレジスタ(図示せず)に、転送元のアドレス、転送先のアドレス、及び転送すべきデータの長さを示すパラメータを含むデータ転送命令がセットされると、該命令に従ってデータ転送を実行する。プロセッサ110からデータ転送命令を受けたバスマスタであるDMAC140は、バススレーブからデータ転送終了の通知を受けると、プロセッサ110に割り込みをかける。   Returning to FIG. 1, the DMAC 140 is a component for directly transferring data between designated components. For example, the DMAC 140 issues a request (for example, a write request or a read request) in order to access the memory 120 that is a bus slave as a bus master. For example, in the DMAC 140, when a processor 110 sets a data transfer instruction including an internal register (not shown) including a transfer source address, a transfer destination address, and a parameter indicating the length of data to be transferred. The data transfer is executed according to the instruction. The DMAC 140, which is a bus master that has received a data transfer command from the processor 110, interrupts the processor 110 when it receives a data transfer end notification from the bus slave.

ダミーバスIP150は、バスIP130と同じ挙動を示すように構成されたダミー回路である。すなわち、ダミーバスIP150は、バスIP130と同一の回路構成であっても良いが、リクエスト/レスポンスに関する機能を再現するために必要な最小限の回路構成によって実現され得る。したがって、ダミーバスIP150は、必要最小限の回路のみ実装しているため、バスIP130と比較して回路規模は非常に小さくかつシンプルなものになる。ダミーバスIP150は、メモリ120に対してライトアクセスが可能になったタイミングで、先行レスポンス(先行レスポンス状態信号)PRを先行レスポンス信号線Lを介して、バス制御回路180に送出する。先行レスポンスPRは、DMAC140がライトアクセスを行った場合に有効なレスポンスである。例えば、ダミーバスIP150は、例えばバス上に現れるマスタIDに基づいて、どのバスマスタ(例えばプロセッサ110又はDMAC140のいずれか)がライトアクセスを行ったかを判断し、DMAC140からのライトアクセスであると判断する場合に、先行レスポンスPRを送出する。   The dummy bus IP150 is a dummy circuit configured to exhibit the same behavior as the bus IP130. In other words, the dummy bus IP150 may have the same circuit configuration as that of the bus IP130, but can be realized by a minimum circuit configuration necessary for reproducing the function related to the request / response. Therefore, since the dummy bus IP150 is mounted with only the minimum necessary circuits, the circuit scale is very small and simple compared to the bus IP130. The dummy bus IP 150 sends a preceding response (preceding response state signal) PR to the bus control circuit 180 via the preceding response signal line L at a timing when write access to the memory 120 becomes possible. The preceding response PR is a response that is effective when the DMAC 140 performs a write access. For example, the dummy bus IP150 determines which bus master (for example, either the processor 110 or the DMAC 140) has performed a write access based on a master ID that appears on the bus, for example, and determines that it is a write access from the DMAC 140. To the preceding response PR.

ダミーメモリ160は、メモリ120と同じ挙動を示すように構成されたダミー回路である。ダミーメモリ160もまた、ダミーバスIP150からのリクエストに対してレスポンスを返すという機能を再現するために必要な最小限の回路によって構成され得る。すなわち、ダミーメモリは、個々のデータセグメントを記憶する記憶セル及び該記憶セルにアクセスするための構成を有していない。したがって、メモリ120と比較して回路規模は非常に小さくかつシンプルなものになる。   The dummy memory 160 is a dummy circuit configured to exhibit the same behavior as the memory 120. The dummy memory 160 can also be configured by a minimum circuit necessary for reproducing a function of returning a response to a request from the dummy bus IP150. That is, the dummy memory does not have a memory cell for storing individual data segments and a configuration for accessing the memory cell. Therefore, the circuit scale is very small and simple compared to the memory 120.

図3は、本発明の一実施形態に係る半導体装置のダミーバスIPの概略構成の一例を示すブロックダイアグラムである。   FIG. 3 is a block diagram showing an example of a schematic configuration of the dummy bus IP of the semiconductor device according to the embodiment of the present invention.

ダミーバスIP150は、上述した通り、バスIP130のリクエスト/レスポンス機能を再現する可能に構成された回路であり、イニシエータエージェント151A及び151B並びにターゲットエージェント152を含んで構成される。   As described above, the dummy bus IP150 is a circuit configured to reproduce the request / response function of the bus IP130 and includes the initiator agents 151A and 151B and the target agent 152.

より具体的には、ダミーバスIP150は、プロトコル変換部1511と、リクエストバッファ1512a及びレスポンスバッファ1512cと、アドレスデコーダ1513とを含んで構成される。すなわち、ダミーバスIP150では、リクエスト及びレスポンスに従うデータ本体を無視することができるため、それらを格納するバッファが省略され得るとともに、アクセス先バススレーブ内のアドレスを特定する必要がないため、アドレスを特定するための回路が省略され得る。したがって、プロトコル変換部1511及びアドレスデコーダ1513もまた、データ本体及びアドレスに関する回路が省略されて構成され得る。これにより、ダミーバスIP150もまた、必要最小限の回路のみ実装しているため、バスIP130と比較して回路規模は非常に小さくかつシンプルなものになる。   More specifically, the dummy bus IP150 includes a protocol conversion unit 1511, a request buffer 1512a and a response buffer 1512c, and an address decoder 1513. That is, in the dummy bus IP150, since the data body according to the request and response can be ignored, the buffer for storing them can be omitted, and it is not necessary to specify the address in the access destination bus slave, so the address is specified. The circuit for this can be omitted. Therefore, the protocol conversion unit 1511 and the address decoder 1513 can also be configured by omitting circuits relating to the data body and the address. As a result, since the dummy bus IP150 is also mounted with only the minimum necessary circuits, the circuit scale is very small and simple compared to the bus IP130.

図1に戻り、タイミング調整回路170は、バスマスタとバススレーブとの間のバス配線を分岐したことによる、設計上のタイミング収束(タイミングクロージャ)の問題を保証するための回路であり、例えば、フリップフロップを含んで構成される。図示されていないが、タイミング調整回路170は、バスプロトコルを遵守する制御回路を含む。例えば、プロセッサ110とダミーバスIP150との間のアクセスは、FF1を介して行われ、また、DMAC140とダミーバスIP150との間のアクセスは、FF2を介して行われる。なお、タイミング調整回路170は、タイミング収束の問題を考慮する必要がない場合、省略され得る。   Returning to FIG. 1, the timing adjustment circuit 170 is a circuit for guaranteeing a problem of timing convergence in design (timing closure) due to branching of the bus wiring between the bus master and the bus slave. It is configured to include. Although not shown, the timing adjustment circuit 170 includes a control circuit that complies with the bus protocol. For example, access between the processor 110 and the dummy bus IP150 is performed through the FF1, and access between the DMAC 140 and the dummy bus IP150 is performed through the FF2. Note that the timing adjustment circuit 170 may be omitted when it is not necessary to consider the timing convergence problem.

バス制御回路180は、バススレーブ側から送られてくるレスポンスに基づく制御を行う回路である。具体的には、バス制御回路180は、バスマスタにより発行されたリクエストをバッファに一時的に格納するとともに、メモリ120により発行され、バスIP130を介して受け取ったレスポンスの内容と該バッファに格納されたリクエストの内容との対応関係が維持されるように管理することによって、バスマスタに対してリクエストに対する適切なレスポンスを送出するように制御する。また、バス制御回路180は、複数のバスマスタによるそれぞれのアクセス(すなわち、リクエスト/レスポンス)を例えばマスタIDによって一意に管理する。   The bus control circuit 180 is a circuit that performs control based on a response sent from the bus slave side. Specifically, the bus control circuit 180 temporarily stores the request issued by the bus master in a buffer, and also stores the content of the response issued by the memory 120 and received via the bus IP 130 and the buffer. By managing so that the correspondence with the contents of the request is maintained, control is performed so that an appropriate response to the request is transmitted to the bus master. In addition, the bus control circuit 180 uniquely manages each access (that is, request / response) by a plurality of bus masters by, for example, a master ID.

なお、本例では、バス制御回路180は、ダミーメモリ160によるレスポンスを直接的に受けるように、レスポンス信号線Lによりダミーメモリ160と接続されている。なお、実装においては、ダミーバスIP150及びダミーメモリ160の回路規模は小さいため、レスポンス信号線Lの配線長も短くなり、したがって、この点でタイミング収束を考慮する必要はない。   In this example, the bus control circuit 180 is connected to the dummy memory 160 via the response signal line L so that the response from the dummy memory 160 is directly received. In mounting, since the circuit scales of the dummy bus IP150 and the dummy memory 160 are small, the wiring length of the response signal line L is also shortened. Therefore, it is not necessary to consider timing convergence in this respect.

図4は、本発明の一実施形態に係る半導体装置の概略的動作の一例を説明するためのタイミングチャートである。   FIG. 4 is a timing chart for explaining an example of a schematic operation of the semiconductor device according to the embodiment of the present invention.

半導体装置100において、DMAC140がメモリ120に対してライトアクセスするためにライトリクエストを発行すると、該ライトアクセスは、バスIP130のイニシエータエージェント131B及びダミーバスIP150のイニシエータエージェント151Bに伝えられる。バスIP130とダミーバスIP150とは、同じ挙動をするため、それぞれのターゲットエージェント132及び152にも、同じタイミングでライトアクセスが現れる。そこで、バス制御回路180は、ダミーバスIP150のターゲットエージェント152に該ライトアクセスが現れたタイミングで直ちに、該ライトリクエストに対するライトレスポンスをDMAC140に返戻する。   In the semiconductor device 100, when the DMAC 140 issues a write request for write access to the memory 120, the write access is transmitted to the initiator agent 131B of the bus IP 130 and the initiator agent 151B of the dummy bus IP 150. Since the bus IP 130 and the dummy bus IP 150 behave in the same manner, the write access appears in the respective target agents 132 and 152 at the same timing. Therefore, the bus control circuit 180 immediately returns a write response to the write request to the DMAC 140 at the timing when the write access appears in the target agent 152 of the dummy bus IP150.

すなわち、同図に示すように、例えば、DMAC140が、nクロック目で、ライトリクエストを発行したとする。該ライトリクエストは、バスIP130(及びダミーバスIP150)のレイテンシーによりn+4クロック目に、ターゲットエージェント132及び152に現れるとする。メモリ120は、したがって、次のクロックタイミング(n+5クロック目)で、該ライトリクエストに対するライトレスポンス(ライト終了ステータス)を返戻し、これが、バスIP130を介して、その3クロック後(n+8クロック目)に現れることになる。   That is, as shown in the figure, for example, it is assumed that the DMAC 140 issues a write request at the nth clock. It is assumed that the write request appears in the target agents 132 and 152 at the (n + 4) th clock due to the latency of the bus IP 130 (and the dummy bus IP 150). Therefore, the memory 120 returns a write response (write end status) to the write request at the next clock timing (n + 5th clock), and this is three clocks later (n + 8th clock) via the bus IP130. Will appear.

本実施形態では、ターゲットエージェント152にライトリクエストが現れたタイミングで、先行レスポンスPRがバス制御回路180に発行される。バス制御回路180は、後述するように、該先行レスポンスPRを受けて、所定の条件の下、DMAC140に対して、該ライトリクエストに対するライトレスポンスを送出する。なお、リクエストとレスポンスとは、シングルリクエストによるバーストアクセスがない限り、通常は、1対1に対応する。したがって、バス制御回路180は、先行レスポンスに従ってライトレスポンスを送出した場合には、メモリ120からバスIP130を介して真のライトレスポンスを受け取ったとしても、これを無視することで、リクエストとレスポンスとの間の整合性を保つようにしている。   In this embodiment, the preceding response PR is issued to the bus control circuit 180 at the timing when the write request appears in the target agent 152. As will be described later, the bus control circuit 180 receives the preceding response PR and sends a write response to the write request to the DMAC 140 under a predetermined condition. Requests and responses usually correspond one-to-one unless there is a burst access by a single request. Therefore, when the bus control circuit 180 sends a write response according to the preceding response, even if a true write response is received from the memory 120 via the bus IP 130, the bus control circuit 180 ignores the request and the response. I try to keep consistency between them.

なお、図5に示すように、バス制御回路180がライトリクエストに対する先行レスポンスPRを受け取った場合であっても、該ライトリクエストに対して先行する他のリクエストが既に存在する場合には、バス制御回路180は、先行レスポンスPRに基づくライトレスポンスを発行せず、該他のリクエストに対するレスポンスをバスマスタに送出した後、メモリ120から送られる該ライトリクエストに対するライトレスポンスをバスマスタに送出する。   As shown in FIG. 5, even when the bus control circuit 180 receives a preceding response PR for a write request, if another request preceding the write request already exists, the bus control circuit 180 The circuit 180 does not issue a write response based on the preceding response PR, sends a response to the other request to the bus master, and then sends a write response to the write request sent from the memory 120 to the bus master.

以上のように、半導体装置100は、DMAC140からメモリ120に対してライトアクセスが発行された場合に、メモリ120からのライトレスポンスを待つことなく、擬似的なライトレスポンスをDMAC140に返戻するため、DMAC140は、メモリ120に対するライトアクセスを直ちに終了させることができ、したがって、レイテンシーを改善することができるようになる。   As described above, when a write access is issued from the DMAC 140 to the memory 120, the semiconductor device 100 returns a pseudo write response to the DMAC 140 without waiting for a write response from the memory 120. Can immediately terminate the write access to the memory 120, thus improving the latency.

次に、バス制御回路180の詳細について説明する。図6は、本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の一例を示すブロックダイアグラムである。同図に示すように、バス制御回路180は、例えば、バッファ181と、ORゲート182と、レスポンス制御回路183とを含んで構成される。   Next, details of the bus control circuit 180 will be described. FIG. 6 is a block diagram showing an example of a schematic configuration of the bus control circuit of the semiconductor device according to the embodiment of the present invention. As shown in the figure, the bus control circuit 180 includes, for example, a buffer 181, an OR gate 182, and a response control circuit 183.

バッファ181は、FIFO形式のバッファ回路であり、バスマスタ(すなわち、DMAC140)から送られてくるリクエストを一時的に格納する。バッファ181に格納されているリクエストの数は、図示しないカウンタによってカウントされている。バッファ181は、バススレーブ側からORゲート182を介して何らかのレスポンスを受けるごとに、FIFO取り出しブロック181aから順次にリクエストがレスポンス制御回路183によって取り出されるように動作する。   The buffer 181 is a FIFO buffer circuit, and temporarily stores a request sent from the bus master (that is, the DMAC 140). The number of requests stored in the buffer 181 is counted by a counter (not shown). The buffer 181 operates so that requests are sequentially fetched from the FIFO fetch block 181a by the response control circuit 183 every time a response is received from the bus slave side via the OR gate 182.

レスポンス制御回路183は、バススレーブ側から受け取った先行レスポンスに関する2つの値をそれぞれカウントするカウンタ183aを含み、カウンタ183aによるカウント値のそれぞれに従って、バススレーブ側から受け取ったレスポンスに応じた処理を行う。カウンタ183aは、例えば、バススレーブ側から受け取った先行レスポンスPRに対してバスマスタにライトレスポンスを返した回数(以下、「レスポンス返戻回数」という。)、及びバススレーブ側から受け取った先行レスポンスPRの数に対してバスマスタにライトレスポンスを未だ返していない数(以下、「レスポンス残数」という。)をそれぞれカウントする。   The response control circuit 183 includes a counter 183a that counts two values related to the preceding response received from the bus slave side, and performs processing according to the response received from the bus slave side according to each count value by the counter 183a. The counter 183a, for example, the number of times that a write response is returned to the bus master with respect to the preceding response PR received from the bus slave side (hereinafter referred to as “response returning number”), and the number of preceding responses PR received from the bus slave side. In response to this, the number of write responses not yet returned to the bus master (hereinafter referred to as “response remaining number”) is counted.

具体的には、レスポンス制御回路183は、先行レスポンス信号線Lを介して先行レスポンスPRを受け取った場合、バッファ181を参照し、取り出されるべきリクエストがライトリクエストである場合に、バッファ181からリクエストを1つ取り出して、バスIP130からのレスポンスとは無関係に、バスマスタに対してライトリクエストに対するレスポンスを送出し、これに伴って、カウンタ183aのカウンタ値をそれぞれ更新する。その後、レスポンス制御回路183は、バスIP130からライトリクエストに対する真のレスポンスを受け取った場合、レスポンス残数のカウント値が0でなければ、これをデクリメントし、バスIP130から送られてきた該レスポンスを無視する(つまり、バスマスタ側に転送しない)。すなわち、一例では、レスポンス制御回路183は、バスIP130からレスポンスを受け取っても、先行レスポンスPRを受け取ってバスマスタにライトレスポンスを返した回数だけ、無視するようになっている。一方、レスポンス制御回路183は、該レスポンス残数のカウント値が0であれば、バスIP130から送られてきたレスポンスをそのままバスマスタに渡す。   Specifically, the response control circuit 183 refers to the buffer 181 when receiving the preceding response PR via the preceding response signal line L. When the request to be extracted is a write request, the response control circuit 183 receives the request from the buffer 181. One is taken out and a response to the write request is sent to the bus master regardless of the response from the bus IP 130, and the counter value of the counter 183a is updated accordingly. Thereafter, when the response control circuit 183 receives a true response to the write request from the bus IP130, if the count value of the remaining response number is not 0, the response control circuit 183 decrements it and ignores the response sent from the bus IP130. (That is, do not transfer to the bus master). That is, in one example, even if the response control circuit 183 receives a response from the bus IP 130, the response control circuit 183 ignores the number of times the preceding response PR is received and the write response is returned to the bus master. On the other hand, if the count value of the remaining response number is 0, the response control circuit 183 passes the response sent from the bus IP 130 as it is to the bus master.

図7A乃至図7Cは、本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。なお、バス制御回路180は、かかるレスポンス処理とは別に、バスマスタ(すなわち、DMAC140)からリクエストを受け取るごとに、これをバッファ181に格納している。   7A to 7C are flowcharts for explaining response processing in the bus control circuit of the semiconductor device according to the embodiment of the present invention. In addition to the response processing, the bus control circuit 180 stores a request in the buffer 181 every time it receives a request from the bus master (that is, the DMAC 140).

同図に示すように、バス制御回路180は、バススレーブ側からレスポンスがあったか否かを監視している(S701)。バス制御回路180は、バススレーブ側からレスポンスを受けると(S701のYes)、該レスポンスが先行レスポンスPRであるか否かを判断するとともに(S702)、先行レスポンスPRに関するレスポンス残数が0でない(≠0)か否かを判断する(S703及びS704)。すなわち、バス制御回路180は、レスポンスが先行レスポンスPRでなく(S702のNo)、レスポンス残数が0であると判断する場合(S703のNo)、通常レスポンスに関する処理を行う(S705)。通常レスポンスに関する処理は、図7Bを参照して説明される。   As shown in the figure, the bus control circuit 180 monitors whether or not there is a response from the bus slave side (S701). When receiving a response from the bus slave side (Yes in S701), the bus control circuit 180 determines whether or not the response is the preceding response PR (S702), and the remaining number of responses related to the preceding response PR is not 0 ( It is determined whether or not (≠ 0) (S703 and S704). That is, when the bus control circuit 180 determines that the response is not the preceding response PR (No in S702) and the remaining number of responses is 0 (No in S703), the bus control circuit 180 performs processing related to the normal response (S705). The process related to the normal response will be described with reference to FIG. 7B.

また、バス制御回路180は、レスポンスが先行レスポンスPRでなく(S702のNo)、レスポンス残数が0でないと判断する場合(S703のYes)、又はレスポンスが先行レスポンスPRであり(S702のYes)、レスポンス残数が0であると判断する場合(S704のNo)、先行レスポンスに関する処理を行う(S706)。つまり、バス制御回路180は、レスポンスが先行レスポンスPRであるか、又は先行レスポンスPRに関するレスポンス残数が0でなければ、通常レスポンスに関する処理に代えて、先行レスポンスPRに関する処理を行うことになる。先行レスポンスに関する処理は、図7Cを参照して説明される。   The bus control circuit 180 determines that the response is not the preceding response PR (No in S702) and the remaining number of responses is not 0 (Yes in S703), or the response is the preceding response PR (Yes in S702). If it is determined that the remaining number of responses is 0 (No in S704), processing related to the preceding response is performed (S706). That is, if the response is the preceding response PR or the remaining number of responses related to the preceding response PR is not 0, the bus control circuit 180 performs processing related to the preceding response PR instead of processing related to the normal response. Processing related to the preceding response will be described with reference to FIG. 7C.

さらに、バス制御回路180は、レスポンスが先行レスポンスPRであり(S702のYes)、先行レスポンスPRに対するレスポンス数が0でないと判断する場合(S704のYes)、先行レスポンスに関する処理を行った後(S707)、通常レスポンスに関する処理を行う(S708)。   Furthermore, if the response is the preceding response PR (Yes in S702) and the bus control circuit 180 determines that the number of responses to the preceding response PR is not 0 (Yes in S704), the bus control circuit 180 performs processing related to the preceding response (S707). ), A process related to a normal response is performed (S708).

図7Bを参照し、通常レスポンスに関する処理では、バス制御回路180は、バッファ181を参照し、FIFO取り出しブロック181aに格納されているリクエストがライトリクエストであるか否かを判断する(S7051)。バス制御回路180は、FIFO取り出しブロック181aにあるデータがライトレスポンスでないと判断する場合には(S7051のNo)、FIFO取り出しブロック181aに格納されているリクエスト(例えばリードリクエスト)を取り出して破棄する(S7052)。続いて、バス制御回路180は、バススレーブ側から受け取ったレスポンス(例えばリードレスポンス)をバスマスタに送出し(S7053)、通常レスポンスに関する処理を終了する。これにより、バス制御回路180は、バススレーブ側からのレスポンスの監視に戻る。   Referring to FIG. 7B, in the process related to the normal response, the bus control circuit 180 refers to the buffer 181 and determines whether or not the request stored in the FIFO fetch block 181a is a write request (S7051). If the bus control circuit 180 determines that the data in the FIFO fetch block 181a is not a write response (No in S7051), the bus control circuit 180 fetches and discards the request (for example, a read request) stored in the FIFO fetch block 181a ( S7052). Subsequently, the bus control circuit 180 sends a response (for example, a read response) received from the bus slave side to the bus master (S7053), and ends the process related to the normal response. As a result, the bus control circuit 180 returns to monitoring the response from the bus slave side.

これに対して、バス制御回路180は、FIFO取り出しブロック181aにあるデータがライトレスポンスであると判断する場合(S7051のYes)、続いて、先行レスポンスPRに関するレスポンス返戻数が0であるか否かを判断する(S7054)。バス制御回路180は、レスポンス返戻数が0でないと判断する場合(S7054のYes)、カウンタ値の値を1つデクリメントし(S7055)、通常レスポンスに関する処理を終了する。これにより、バス制御回路180は、バススレーブ側からのレスポンスの監視に戻る。   On the other hand, if the bus control circuit 180 determines that the data in the FIFO fetch block 181a is a write response (Yes in S7051), then whether or not the response return number related to the preceding response PR is zero. Is determined (S7054). If the bus control circuit 180 determines that the response return number is not 0 (Yes in S7054), the bus control circuit 180 decrements the counter value by 1 (S7055), and ends the processing related to the normal response. As a result, the bus control circuit 180 returns to monitoring the response from the bus slave side.

次に、図7Cを参照し、先行レスポンスに関する処理では、バス制御回路180は、まず、先行レスポンスに関するレスポンス残数を1つインクリメントする(S7061)。続いて、バス制御回路180は、バッファ181を参照し、FIFO取り出しブロック181aに格納されているリクエストがライトリクエストであるか否かを判断する(S7062)。バス制御回路180は、FIFO取り出しブロック181aに格納されているリクエストがライトリクエストでないと判断する場合には(S7062のNo)、先行レスポンスに関する処理を終了する。   Next, referring to FIG. 7C, in the process related to the preceding response, the bus control circuit 180 first increments the remaining response number related to the preceding response by one (S7061). Subsequently, the bus control circuit 180 refers to the buffer 181 and determines whether or not the request stored in the FIFO fetch block 181a is a write request (S7062). When the bus control circuit 180 determines that the request stored in the FIFO fetch block 181a is not a write request (No in S7062), the bus control circuit 180 ends the process related to the preceding response.

一方、バス制御回路180は、FIFO取り出しブロック181aに格納されているリクエストがライトリクエストであると判断する場合には(S7062のYes)、FIFO取り出しブロック181aに格納されている該ライトリクエストを取り出して(S7063)、該取り出したライトリクエストをバスマスタに送出する(S7064)。続いて、バス制御回路180は、レスポンス返戻数を1つインクリメントし(S7065)、さらに、レスポンス残数を1つデクリメントし(S7066)、先行レスポンスに関する処理を終了する。これにより、バス制御回路180は、バススレーブ側からのレスポンスの監視に戻る。   On the other hand, when the bus control circuit 180 determines that the request stored in the FIFO fetch block 181a is a write request (Yes in S7062), the bus control circuit 180 fetches the write request stored in the FIFO fetch block 181a. (S7063), the extracted write request is sent to the bus master (S7064). Subsequently, the bus control circuit 180 increments the response return number by 1 (S7065), further decrements the remaining response number by 1 (S7066), and ends the processing related to the preceding response. As a result, the bus control circuit 180 returns to monitoring the response from the bus slave side.

また、バス制御回路180は、レスポンスが先行レスポンスPRであり(S702のYes)、レスポンス残数が0でないと判断する場合(S704のYes)、上述した先行レスポンスに関する処理を行い(S707)、さらに、上述した通常レスポンスに関する処理を行う(S708)。   When the bus control circuit 180 determines that the response is the preceding response PR (Yes in S702) and the remaining number of responses is not 0 (Yes in S704), the bus control circuit 180 performs the above-described processing related to the preceding response (S707), and Then, the process related to the normal response described above is performed (S708).

即ち、かかる処理は、バス制御回路180が先行レスポンスPRを受けるとともに、バスIP130からレスポンスを受け取る場合に実行される。例えば、バス制御回路180が先行レスポンスPR及びこれと全く独立したレスポンスを受け取る場合と、先行レスポンスPR及びこれに対応する真のライトレスポンスを受け取る場合が、想定されうる。   That is, this processing is executed when the bus control circuit 180 receives the preceding response PR and also receives a response from the bus IP 130. For example, it can be assumed that the bus control circuit 180 receives a preceding response PR and a response completely independent of the preceding response PR and a case where the bus control circuit 180 receives a preceding response PR and a corresponding true write response.

前者の場合、バス制御回路180は、先行レスポンスに関する処理(S707)においては、所定の条件に合致すればライトレスポンスを返戻し、合致しなければレスポンスを返戻することはない。バス制御回路180は、次の通常レスポンスに関する処理においては、レスポンス返戻数が0であれば、レスポンスを返戻する。また、後者の場合、バス制御回路180は、先行レスポンスに関する処理(S707)においては、所定の条件に合致すればライトレスポンスを返戻し、合致しなければレスポンスを返戻することはない。バス制御回路180は、次の通常レスポンスに関する処理においては、先行レスポンスに関する処理(S707)によりライトレスポンスを返戻することでレスポンス返戻数が0以上になっているので、レスポンスを返戻することはない。つまり、バス制御回路180は、先行レスポンスに関する処理において所定の条件に合致しない場合には、何もレスポンスを返戻せず、次の通常レスポンスに関する処理においてレスポンスを返戻することになる。   In the former case, the bus control circuit 180 returns a write response if the predetermined condition is met in the process related to the preceding response (S707), and does not return a response if the condition is not met. In the process related to the next normal response, the bus control circuit 180 returns a response if the response return number is zero. In the latter case, in the process related to the preceding response (S707), the bus control circuit 180 returns a write response if it matches a predetermined condition, and does not return a response if it does not match. In the process related to the next normal response, the bus control circuit 180 returns the write response in the process related to the preceding response (S707), so that the response return number becomes 0 or more, and therefore does not return a response. That is, the bus control circuit 180 returns no response when the predetermined condition is not met in the process related to the preceding response, and returns a response in the process related to the next normal response.

図8は、本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の他の例を示すブロックダイアグラムである。同図に示すバス制御回路180は、タイミング調整回路184をさらに含む。タイミング調整回路184は、バス制御回路180を設けたことによる設計上のタイミング収束の問題を保証するための回路である。すなわち、バス制御回路180自体は、レスポンス信号線Lを介した先行レスポンスに基づいて、バスマスタ側に所定のレスポンスを返戻する機能を有すれば良く、通常は、タイミング収束の問題は考慮する必要がないと考えられる。しかしながら、タイミング収束の問題を考慮したい場合には、同図に示すように、例えば、バッファ181の前段にタイミング調整回路184を配置しても良い。タイミング調整回路184は、例えば、フリップフロップを含んで構成される。   FIG. 8 is a block diagram showing another example of the schematic configuration of the bus control circuit of the semiconductor device according to the embodiment of the present invention. The bus control circuit 180 shown in the figure further includes a timing adjustment circuit 184. The timing adjustment circuit 184 is a circuit for assuring a timing convergence problem in design due to the provision of the bus control circuit 180. In other words, the bus control circuit 180 itself has only to have a function of returning a predetermined response to the bus master side based on the preceding response via the response signal line L, and usually the timing convergence problem needs to be considered. It is not considered. However, when considering the problem of timing convergence, for example, a timing adjustment circuit 184 may be disposed in front of the buffer 181 as shown in FIG. The timing adjustment circuit 184 includes a flip-flop, for example.

次に、バス制御回路180の動作の一例について説明する。図9乃至図10は、本発明の一実施形態に係る半導体装置のバス制御回路の動作の一例を説明するためのタイミングチャートである。   Next, an example of the operation of the bus control circuit 180 will be described. 9 to 10 are timing charts for explaining an example of the operation of the bus control circuit of the semiconductor device according to the embodiment of the present invention.

図9に示すように、クロックCLKに従って、バスマスタ(すなわち、DMAC140)からバス制御回路180に送られたリクエストは、順次に、バッファ181に格納される。このとき、バッファ181内の格納されたリクエストの数はカウントされている。同図は、nクロック目でライトリクエストが送られ、続いて、リードリクエスト及びリードリクエストが送られ、その2クロック後(n+5クロック目)に、ライトリクエストが送られてきたことを示している。また、FIFO取り出しブロック181aには、次に取り出されるべきリクエストがセットされている。   As shown in FIG. 9, requests sent from the bus master (that is, the DMAC 140) to the bus control circuit 180 according to the clock CLK are sequentially stored in the buffer 181. At this time, the number of requests stored in the buffer 181 is counted. The figure shows that a write request is sent at the nth clock, followed by a read request and a read request, and a write request is sent two clocks later (n + 5th clock). A request to be fetched next is set in the FIFO fetch block 181a.

ここでは、バス制御回路180は、バスマスタからリクエストを受け取ってから、該リクエストに対応する真のレスポンスをバススレーブ(すなわち、メモリ120)から受け取るまで、8クロック要するものとする。また、ダミーバスIP150は、ライトリクエストに対して、5クロック後に先行レスポンスPRをバス制御回路180に送出することができるものとする。   Here, it is assumed that the bus control circuit 180 requires 8 clocks from receiving a request from the bus master to receiving a true response corresponding to the request from the bus slave (that is, the memory 120). Further, it is assumed that the dummy bus IP150 can send a preceding response PR to the bus control circuit 180 after 5 clocks with respect to the write request.

したがって、バス制御回路180は、n+5クロック目で、先行レスポンスPRを受け取ると、次のクロックタイミング(n+6クロック目)でライトレスポンスをバスマスタに送出する。このとき、カウンタ183aによるカウンタ値は“1”となる。したがって、図から明らかなように、本例では、バス制御回路180は、3クロック先行してレスポンスをバスマスタに返戻することができることになる。   Therefore, when receiving the preceding response PR at the (n + 5) th clock, the bus control circuit 180 sends a write response to the bus master at the next clock timing (n + 6th clock). At this time, the counter value by the counter 183a is “1”. Therefore, as is apparent from the figure, in this example, the bus control circuit 180 can return the response to the bus master three clocks ahead.

バス制御回路180は、例えば、最初のライトリクエストを受け取った後、n+8クロック目で、それに対応する真のレスポンスを受け取ることになる。しかしながら、バス制御回路180は、該最初のライトリクエストに対するレスポンスを、先行レスポンスPRに基づいて、バスマスタに送出していることから、該真のレスポンスを無視し、したがって、カウンタ183aによるカウンタ値は“0”となる。バス制御回路180は、続いて受け取ったリードリクエストについては、次のクロックタイミングでそのままバスマスタに送出する。   For example, after receiving the first write request, the bus control circuit 180 receives a true response corresponding to the n + 8th clock. However, since the bus control circuit 180 sends a response to the first write request to the bus master based on the preceding response PR, the bus control circuit 180 ignores the true response, and therefore the counter value by the counter 183a is “ 0 ”. The bus control circuit 180 sends the received read request to the bus master as it is at the next clock timing.

なお、n+10クロック目において、バス制御回路180は、先行レスポンスPRを受け取ったとすると、次のクロックタイミングでは、リードレスポンスとライトレスポンスとが競合することになるが、本例では、バス制御回路180は、リードレスポンスを先に送出するものとしている。   If the bus control circuit 180 receives the preceding response PR at the (n + 10) th clock, the read response and the write response compete at the next clock timing. In this example, the bus control circuit 180 The read response is sent first.

また、別の例として、図10に示すような順番で、バス制御回路180は、リードリクエスト及びライトリクエストを受け取ったとする。n+4クロック目で受け取ったライトリクエストに対して、バス制御回路180は、n+9クロック目で、先行レスポンスPRを受け取ると、次のクロックタイミングでライトレスポンスを送出するのではなく、バッファ181に先に格納されたリードリクエストが取り出された後に、ライトレスポンスを送出する。すなわち、バス制御回路180は、n+13クロック目で、n+4クロック目で受け取ったライトリクエストに対するライトリクエストを受け取るため、これをバスマスタに送出する。   As another example, assume that the bus control circuit 180 receives a read request and a write request in the order shown in FIG. In response to the write request received at the (n + 4) th clock, when the bus control circuit 180 receives the preceding response PR at the (n + 9) th clock, it does not send the write response at the next clock timing but stores it in the buffer 181 first. After the read request is taken out, a write response is sent out. That is, the bus control circuit 180 receives a write request for the write request received at the (n + 13) th clock at the (n + 13) th clock, and sends it to the bus master.

[第2の実施形態]
本実施形態は、メモリ120に対するライトリクエストの数と、ダミーバスIP150を介して受け取ったダミーメモリにより発行されたライトレスポンス(ライト終了ステータス)の数とに基づいて、DMAC140以外のバスマスタ(すなわち、プロセッサ110)からメモリ120に対する現在処理中のライトリクエストが存在するか否かを判断し、現在処理中のライトリクエストが存在しない場合には、DMAC140からのライトリクエストが発行された時点で、直ちに、該ライトリクエストに対するライトレスポンスを返すことのできる半導体装置を開示する。
[Second Embodiment]
In the present embodiment, a bus master other than the DMAC 140 (that is, the processor 110) is based on the number of write requests to the memory 120 and the number of write responses (write end status) issued by the dummy memory received via the dummy bus IP150. ) To determine whether there is a write request currently being processed for the memory 120. If there is no write request currently being processed, the write request is immediately issued when the write request from the DMAC 140 is issued. A semiconductor device capable of returning a write response to a request is disclosed.

図11は、本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。同図に示すように、半導体装置1100は、バスIP130に入力されるライトリクエストを監視するバス監視回路1110をさらに備える。また、半導体装置1100では、バス制御回路180に代えて、バス制御回路1120が設けられている。なお、以下では、図1に示した半導体装置100と同じコンポーネントについては、説明を省略する。   FIG. 11 is a block diagram showing an example of a schematic configuration of a semiconductor device according to an embodiment of the present invention. As shown in the figure, the semiconductor device 1100 further includes a bus monitoring circuit 1110 that monitors a write request input to the bus IP130. In the semiconductor device 1100, a bus control circuit 1120 is provided instead of the bus control circuit 180. Hereinafter, description of the same components as those of the semiconductor device 100 illustrated in FIG. 1 will be omitted.

バス監視回路1110は、プロセッサ110からメモリ120に対するライトアクセスが入力されると、カウント値を1つインクリメントし、また、ダミーバスIP150から該ライトアクセスに対するライトレスポンスが入力されると、カウント値を1つデクリメントするカウンタ1111を含む。該カウンタ1111は、カウント値が0になった場合に、ongoing信号の値を“H”にし、カウント値が0以外の場合に、ongoing信号の値を“L”にして送出する。   When a write access to the memory 120 is input from the processor 110, the bus monitoring circuit 1110 increments the count value by one. When a write response to the write access is input from the dummy bus IP150, the bus monitoring circuit 1110 increases the count value by one. It includes a counter 1111 that decrements. The counter 1111 sets the value of the ongoing signal to “H” when the count value becomes 0, and sends the value of the ongoing signal to “L” when the count value is other than 0.

図12は、本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の一例を示すブロックダイアグラムである。   FIG. 12 is a block diagram showing an example of a schematic configuration of a bus control circuit of a semiconductor device according to an embodiment of the present invention.

同図に示すように、本実施形態のバス制御回路1120は、先行レスポンス制御回路1121をさらに備える。先行レスポンス制御回路1121には、バスマスタからのリクエストが入力されるとともに、バス監視回路1110から送出されるongoing信号及び先行レスポンスPRが入力される。   As shown in the figure, the bus control circuit 1120 of this embodiment further includes a preceding response control circuit 1121. The preceding response control circuit 1121 receives a request from the bus master and an oning signal and a preceding response PR sent from the bus monitoring circuit 1110.

先行レスポンス制御回路1121は、バスマスタからのリクエストがライトリクエストである場合に、該ライトリクエストに対してダミーバスIP150から受け取った先行レスポンスの送出制御を行う。先行レスポンス制御回路1121は、図示しないカウンタを有し、該カウンタによって、先行レスポンスPRを送出した回数をカウントする。   When the request from the bus master is a write request, the preceding response control circuit 1121 performs transmission control of the preceding response received from the dummy bus IP 150 for the write request. The preceding response control circuit 1121 has a counter (not shown), and counts the number of times the preceding response PR is transmitted by the counter.

すなわち、先行レスポンス制御回路1121は、バスマスタからのリクエストがライトリクエストである場合に、まず、ongoing信号の値が“H”であるか否かを判断する。先行レスポンス制御回路1121は、ongoing信号の値が“H”であると判断する場合、次に、カウント値が0であるか否かを判断し、該カウント値が0であると判断する場合に、受け取った先行レスポンスPRをORゲート182及びレスポンス制御回路183に送出する。先行レスポンスPRを受けたレスポンス制御回路183は、上述した処理を行うことになる。一方、先行レスポンス制御回路1121は、ongoing信号の値が“H”であると判断する場合であっても、カウント値が0でないと判断する場合には、カウンタのカウント値を1つデクリメントさせ、先行レスポンスPRに対する処理を何も行わない。これにより、先行レスポンス制御回路1121は、現在処理中のライトアクセスがない場合に限り、先行レスポンスを通過させることができるようになる。   That is, when the request from the bus master is a write request, the preceding response control circuit 1121 first determines whether or not the value of the ongoing signal is “H”. When the preceding response control circuit 1121 determines that the value of the ongoing signal is “H”, it next determines whether or not the count value is 0, and determines that the count value is 0. The received preceding response PR is sent to the OR gate 182 and the response control circuit 183. The response control circuit 183 that has received the preceding response PR performs the above-described processing. On the other hand, even if the preceding response control circuit 1121 determines that the value of the ongoing signal is “H”, if it determines that the count value is not 0, it decrements the count value of the counter by one, No processing is performed for the preceding response PR. As a result, the preceding response control circuit 1121 can pass the preceding response only when there is no write access currently being processed.

[第3の実施形態]
本実施形態は、第2の実施形態の変形であり、バススレーブとして動作するメモリ120にアクセス可能なバスマスタがDAMC140に加え2つ以上存在する場合に適応された半導体装置を開示する。
[Third Embodiment]
The present embodiment is a modification of the second embodiment, and discloses a semiconductor device adapted when there are two or more bus masters in addition to the DAMC 140 that can access the memory 120 operating as a bus slave.

図13は、本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。同図に示すように、本実施形態の半導体装置1300は、バスマスタとして、プロセッサ110A及び110Bと、DMAC140とを備える。また、プロセッサ110Bが追加されたことに伴い、3つのフリップフロップを含むタイミング調整回路170’と、2つのバス監視回路1110A及び1110Bが設けられている。バス監視回路1110A及び1110Bの構成は、第2の実施形態に示されたものと同様である。   FIG. 13 is a block diagram showing an example of a schematic configuration of a semiconductor device according to an embodiment of the present invention. As shown in the figure, the semiconductor device 1300 of this embodiment includes processors 110A and 110B and a DMAC 140 as a bus master. Further, with the addition of the processor 110B, a timing adjustment circuit 170 'including three flip-flops and two bus monitoring circuits 1110A and 1110B are provided. The configuration of the bus monitoring circuits 1110A and 1110B is the same as that shown in the second embodiment.

バス制御回路1120’もまた、これらの変更に適応するように変更されている。すなわち、バス制御回路1120’は、バス監視回路1110A及び1110Bがそれぞれ送出するongoing信号の値が、ともに“H”の場合のみ、先行レスポンスPRを送出するように制御される。   The bus control circuit 1120 'has also been modified to accommodate these changes. That is, the bus control circuit 1120 ′ is controlled so as to send the preceding response PR only when the values of the ongoing signal sent by the bus monitoring circuits 1110 A and 1110 B are both “H”.

このように、バススレーブであるメモリ120にアクセス可能なバスマスタがDAMC140に加え2つ以上存在する場合であっても、メモリ120に対するそれぞれのバスマスタからのライトアクセスを監視することによって、適切な先行レスポンスPRに基づくライトレスポンスを発行することができるようになる。   Thus, even when there are two or more bus masters that can access the memory 120 as the bus slave, in addition to the DAMC 140, an appropriate preceding response can be obtained by monitoring the write access from each bus master to the memory 120. A write response based on PR can be issued.

[第4の実施形態]
本実施形態は、第2の実施形態の変形であり、複数のメモリ120が存在する場合に適応された半導体装置を開示する。
[Fourth Embodiment]
The present embodiment is a modification of the second embodiment, and discloses a semiconductor device adapted to a case where a plurality of memories 120 are present.

図14は、本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。同図に示すように、本実施形態の半導体装置1400は、バススレーブとして動作する複数のメモリ120A及び120Bに、バスIP130を介してアクセス可能に構成されている。したがって、半導体装置1400は、かかる構成に対応するように、ダミーバスIP150及び複数のダミーメモリ160A及び160Bを備えている。   FIG. 14 is a block diagram illustrating an example of a schematic configuration of a semiconductor device according to an embodiment of the present invention. As shown in the figure, the semiconductor device 1400 of this embodiment is configured to be accessible via a bus IP 130 to a plurality of memories 120A and 120B that operate as bus slaves. Accordingly, the semiconductor device 1400 includes a dummy bus IP150 and a plurality of dummy memories 160A and 160B so as to correspond to such a configuration.

バス制御回路1120’は、ダミーバスIP150のターゲットエージェント152A及び152Bのいずれかにより発行される先行レスポンスを監視する。また、バス監視回路1110’は、バスマスタのアクセス先ごとに、発行されたライトアクセスの数及び該ライトアクセスに対するライトレスポンス(ライト終了ステータス)の数をそれぞれ管理するように構成される。   The bus control circuit 1120 ′ monitors a preceding response issued by one of the target agents 152 </ b> A and 152 </ b> B of the dummy bus IP <b> 150. The bus monitoring circuit 1110 'is configured to manage the number of issued write accesses and the number of write responses (write end status) for the write accesses, for each access destination of the bus master.

このように、半導体装置100が複数のメモリ120を備える場合であっても、それぞれのメモリ120に対するアクセスのレイテンシーを改善することができるようになる。   As described above, even when the semiconductor device 100 includes a plurality of memories 120, the latency of access to each of the memories 120 can be improved.

上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。   Each of the above embodiments is an example for explaining the present invention, and is not intended to limit the present invention only to these embodiments. The present invention can be implemented in various forms without departing from the gist thereof.

例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで1つのものとしても良く、また、他のステップ、動作又は機能を追加しても良い。   For example, in the method disclosed herein, steps, operations, or functions may be performed in parallel or in a different order, as long as the results do not conflict. The steps, operations and functions described are provided as examples only, and some of the steps, operations and functions may be omitted without departing from the spirit of the invention and may be combined with one another. There may be one, and other steps, operations or functions may be added.

また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。   Further, although various embodiments are disclosed in this specification, specific features (technical matters) in one embodiment are added to other embodiments while appropriately improving the other features, or other Specific features in the embodiments can be replaced, and such forms are also included in the gist of the present invention.

本発明は、バスを備えた半導体装置の分野に広く利用することができる。   The present invention can be widely used in the field of semiconductor devices having a bus.

100,1100,1300,1400…半導体装置
110…プロセッサ
120…メモリ
130…バスIP
131…イニシエータエージェント
1311…プロトコル変換部
1312a〜1312d…バッファ
1313…アドレスデコーダ
132…ターゲットエージェント
1321…プロトコル変換部
1322a〜1312d…バッファ
140…DMAコントローラ(DMAC)
150…ダミーバスIP
151…イニシエータエージェント
1511…プロトコル変換部
1512a,1512c…バッファ
1313…アドレスデコーダ
152…ターゲットエージェント
1521…プロトコル変換部
1522a,1522c…バッファ
160…ダミーメモリ
170…タイミング調整回路
180…バス制御回路
181…バッファ
182…ORゲート
183…レスポンス制御回路
1110,1110’…バス監視回路
1111…カウンタ
1120,1120’…バス制御回路
1121…先行レスポンス制御回路


100, 1100, 1300, 1400 ... Semiconductor device 110 ... Processor 120 ... Memory 130 ... Bus IP
131 ... Initiator agent 1311 ... Protocol converter 1312a-1312d ... Buffer 1313 ... Address decoder 132 ... Target agent 1321 ... Protocol converter 1322a-1312d ... Buffer 140 ... DMA controller (DMAC)
150 ... Dummy bus IP
DESCRIPTION OF SYMBOLS 151 ... Initiator agent 1511 ... Protocol conversion part 1512a, 1512c ... Buffer 1313 ... Address decoder 152 ... Target agent 1521 ... Protocol conversion part 1522a, 1522c ... Buffer 160 ... Dummy memory 170 ... Timing adjustment circuit 180 ... Bus control circuit 181 ... Buffer 182 ... OR gate 183 ... Response control circuit 1110, 1110 '... Bus monitoring circuit 1111 ... Counter 1120, 1120' ... Bus control circuit 1121 ... Preceding response control circuit


Claims (14)

バスIPを介してリクエスト/レスポンスに基づく所定のバスプロトコルに従いデータ転送可能に接続された、バスマスタとして動作する少なくとも1つのプロセッサと、バススレーブとして動作する少なくとも1つのメモリと、前記バスマスタとして動作するDMAコントローラとを含む半導体装置であって、
前記少なくとも1つのプロセッサ及び前記DMAコントローラに接続され、前記バスIPと同じ挙動をするように構成されたダミーバスIPと、
前記ダミーバスIPに接続され、前記メモリと同じ挙動をするように構成されたダミーメモリと、
前記DMAコントローラと、前記バスIP及び前記ダミーバスIPとの間に設けられたバス制御回路と、を備え、
前記ダミーバスIPは、前記DMAコントローラにより発行されたリクエストがライトリクエストである場合に、前記メモリがライトレスポンスを送出するタイミングよりも前に、先行レスポンスを前記バス制御回路に送出し、
前記バス制御回路は、前記ダミーバスIPから送出された前記先行レスポンスに基づいて、前記ライトリクエストに対するライトレスポンスを前記DMAコントローラに送出する、
半導体装置。
At least one processor operating as a bus master, at least one memory operating as a bus slave, and a DMA operating as the bus master, connected so as to be able to transfer data according to a predetermined bus protocol based on a request / response via the bus IP A semiconductor device including a controller,
A dummy bus IP connected to the at least one processor and the DMA controller and configured to behave the same as the bus IP;
A dummy memory connected to the dummy bus IP and configured to behave the same as the memory;
The DMA controller, and a bus control circuit provided between the bus IP and the dummy bus IP,
When the request issued by the DMA controller is a write request, the dummy bus IP sends a preceding response to the bus control circuit before the timing at which the memory sends a write response,
The bus control circuit sends a write response to the write request to the DMA controller based on the preceding response sent from the dummy bus IP.
Semiconductor device.
前記DMAコントローラは、前記ライトリクエストに対する前記ライトレスポンスを受け取った場合に、前記プロセッサに対して割り込みをかける、請求項記載の半導体装置。 The DMA controller, when receiving the write response to the write request, an interrupt to the processor, the semiconductor device according to claim 1, wherein. 前記ダミーバスIPは、前記バスIPが前記バスマスタにより発行された前記ライトリクエストに基づいて前記メモリに対して該ライトリクエストを発行するタイミングと同一のタイミングで、前記先行レスポンスを前記バス制御回路に送出する、請求項1記載の半導体装置。   The dummy bus IP sends the preceding response to the bus control circuit at the same timing as when the bus IP issues the write request to the memory based on the write request issued by the bus master. The semiconductor device according to claim 1. 前記ダミーバスIPは、前記バスマスタにより発行された前記ライトリクエストに従うデータ本体を無視するように構成される、請求項1記載の半導体装置。   The semiconductor device according to claim 1, wherein the dummy bus IP is configured to ignore a data body according to the write request issued by the bus master. 前記ダミーメモリは、前記バスマスタにより発行された前記ライトリクエストに従うデータ本体を記憶する記憶セルを有しないように構成される一方で、該ライトリクエストに対するレスポンスを前記ダミーバスIPに発行するように構成される、請求項記載の半導体装置。 The dummy memory is configured not to have a storage cell that stores a data body according to the write request issued by the bus master, and configured to issue a response to the write request to the dummy bus IP. The semiconductor device according to claim 4 . 前記少なくとも1つのプロセッサ及び前記DMAコントローラと前記ダミーバスIPとの間に設けられた第1のタイミング調整回路をさらに備える、請求項1記載の半導体装置。   The semiconductor device according to claim 1, further comprising a first timing adjustment circuit provided between the at least one processor and the DMA controller and the dummy bus IP. 前記バス制御回路は、前記先行レスポンスに基づく前記ライトレスポンスを前記DMAコントローラに送出した後、前記バスIPを介して、前記メモリにより発行された前記ライトリクエストに対する真のライトレスポンスを受け取った場合、該真のライトレスポンスが前記DMAコントローラに送出されないように制御する、請求項記載の半導体装置。 When the bus control circuit receives the true write response to the write request issued by the memory via the bus IP after sending the write response based on the preceding response to the DMA controller, The semiconductor device according to claim 1 , wherein control is performed so that a true write response is not sent to the DMA controller. 前記バス制御回路は、前記ダミーバスIPから送出される前記先行レスポンスを受け取った場合に、前記ライトリクエストに先行する、前記バスマスタにより発行された他のリクエストが存在すると判断する場合には、前記先行レスポンスに基づく前記ライトリクエストに対するライトレスポンスに代えて、前記バスIPを介して受け取った、前記メモリにより発行された前記ライトリクエストに対する前記真のライトレスポンスを前記DMAコントローラに送出する、請求項記載の半導体装置。 When the bus control circuit determines that there is another request issued by the bus master that precedes the write request when the preceding response sent from the dummy bus IP is received, 8. The semiconductor according to claim 7 , wherein the true write response to the write request issued by the memory, received via the bus IP, is sent to the DMA controller instead of a write response to the write request based on apparatus. 前記バス制御回路は、前記他のリクエストに対するレスポンスを前記バスマスタに送出した後、前記真のライトレスポンスを前記DMAコントローラに送出する、請求項記載の半導体装置。 9. The semiconductor device according to claim 8 , wherein the bus control circuit sends the true write response to the DMA controller after sending a response to the other request to the bus master. バス制御回路は、
前記バスマスタにより発行された前記リクエストを一時的に格納するバッファと、
前記バッファから取り出されるべき前記リクエストが前記ライトリクエストである場合に、前記メモリにより発行され前記バスIPを介して受け取ったレスポンスと前記バッファから取り出されるべき前記ライトリクエストとの対応関係に従って、前記バスマスタにより発行された前記ライトリクエストに対する所定のレスポンスを前記バスマスタに送出するように制御するレスポンス制御部と、
を備える、請求項1記載の半導体装置。
The bus control circuit
A buffer for temporarily storing the request issued by the bus master;
When the request to be extracted from the buffer is the write request, the bus master performs the correspondence between the response issued by the memory and received via the bus IP and the write request to be extracted from the buffer. A response control unit that controls to send a predetermined response to the issued write request to the bus master;
The semiconductor device according to claim 1, comprising:
前記バス制御回路は、前記バスマスタにより発行されたリクエストを前記バッファに格納するためのタイミングを調整する第2のタイミング調整回路をさらに備える、請求項10記載の半導体装置。 The semiconductor device according to claim 10 , wherein the bus control circuit further includes a second timing adjustment circuit that adjusts a timing for storing a request issued by the bus master in the buffer. バスIPを介してリクエスト/レスポンスに基づく所定のバスプロトコルに従いデータ転送可能に接続された、バスマスタとして動作する少なくとも1つのプロセッサと、バススレーブとして動作する少なくとも1つのメモリと、前記バスマスタとして動作するDMAコントローラとを含む半導体装置であって、
前記少なくとも1つのプロセッサ及び前記DMAコントローラに接続され、前記バスIPと同じ挙動をするように構成されたダミーバスIPと、
前記ダミーバスIPに接続され、前記メモリと同じ挙動をするように構成されたダミーメモリと、
前記DMAコントローラと、前記バスIP及び前記ダミーバスIPとの間に設けられたバス制御回路と、
前記少なくとも1つのプロセッサにより発行されるライトリクエストの数と、前記ダミーバスIPを介して受け取った前記ダミーメモリにより発行されたライトレスポンスの数とを監視する少なくとも1つのバス監視回路とを備え、
前記ダミーバスIPは、前記DMAコントローラにより発行されたリクエストがライトリクエストである場合に、前記メモリが前記ライトレスポンスを送出するタイミングよりも前に、先行レスポンスを前記バス制御回路に送出し、
前記バス制御回路は、前記バス監視回路により前記少なくとも1つのプロセッサから前記メモリに対する現在処理中のライトリクエストが存在しないと判断される場合に、前記先行レスポンスに基づいて、前記DMAコントローラにより発行された前記ライトリクエストに対するライトレスポンスを前記DMAコントローラに送出する、半導体装置。
At least one processor operating as a bus master, at least one memory operating as a bus slave, and a DMA operating as the bus master, connected so as to be able to transfer data according to a predetermined bus protocol based on a request / response via the bus IP A semiconductor device including a controller,
A dummy bus IP connected to the at least one processor and the DMA controller and configured to behave the same as the bus IP;
A dummy memory connected to the dummy bus IP and configured to behave the same as the memory;
A bus control circuit provided between the DMA controller and the bus IP and the dummy bus IP;
At least one bus monitoring circuit for monitoring the number of write requests issued by the at least one processor and the number of write responses issued by the dummy memory received via the dummy bus IP;
When the request issued by the DMA controller is a write request, the dummy bus IP sends a preceding response to the bus control circuit before the timing at which the memory sends the write response.
The bus control circuit is issued by the DMA controller based on the preceding response when the bus monitoring circuit determines that there is no write request currently being processed from the at least one processor to the memory. A semiconductor device that sends a write response to the write request to the DMA controller.
複数の前記バス監視回路のそれぞれは、複数の前記プロセッサのうちの対応する一のプロセッサにより発行されるライトリクエストの数を監視する、請求項12記載の半導体装置。 The semiconductor device according to claim 12 , wherein each of the plurality of bus monitoring circuits monitors the number of write requests issued by a corresponding one of the plurality of processors. 複数の前記メモリと、該複数のメモリのそれぞれに対応する複数のダミーメモリとを備え、
前記ダミーバスIPは、前記バスマスタにより発行された前記複数のダミーメモリのそれぞれに対するライトアクセスに基づいて、前記先行レスポンスを前記バス制御回路にそれぞれ送出する、
請求項13記載の半導体装置。
A plurality of the memories, and a plurality of dummy memories corresponding to each of the plurality of memories,
The dummy bus IP sends the preceding response to the bus control circuit based on a write access to each of the plurality of dummy memories issued by the bus master,
The semiconductor device according to claim 13 .
JP2014072334A 2014-03-31 2014-03-31 Semiconductor device Active JP6416488B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014072334A JP6416488B2 (en) 2014-03-31 2014-03-31 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014072334A JP6416488B2 (en) 2014-03-31 2014-03-31 Semiconductor device

Publications (2)

Publication Number Publication Date
JP2015194900A JP2015194900A (en) 2015-11-05
JP6416488B2 true JP6416488B2 (en) 2018-10-31

Family

ID=54433847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014072334A Active JP6416488B2 (en) 2014-03-31 2014-03-31 Semiconductor device

Country Status (1)

Country Link
JP (1) JP6416488B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220188251A1 (en) * 2020-12-16 2022-06-16 Samsung Electronics Co., Ltd. Operating method of transaction accelerator, operating method of computing device including transaction accelerator, and computing device including transaction accelerator

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981500A (en) * 1995-09-18 1997-03-28 Yaskawa Electric Corp Virtual dma transfer method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220188251A1 (en) * 2020-12-16 2022-06-16 Samsung Electronics Co., Ltd. Operating method of transaction accelerator, operating method of computing device including transaction accelerator, and computing device including transaction accelerator

Also Published As

Publication number Publication date
JP2015194900A (en) 2015-11-05

Similar Documents

Publication Publication Date Title
JP5787629B2 (en) Multi-processor system on chip for machine vision
JP5498505B2 (en) Resolving contention between data bursts
US11803505B2 (en) Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels
JP2012038293A5 (en)
JP4874165B2 (en) Multiprocessor system and access right setting method in multiprocessor system
JP2006338538A (en) Stream processor
US9170963B2 (en) Apparatus and method for generating interrupt signal that supports multi-processor
JP2007058716A (en) Data transfer bus system
JP2006113689A (en) Bus bridge device and data transfer method
US7913013B2 (en) Semiconductor integrated circuit
JP6416488B2 (en) Semiconductor device
JP2005293596A (en) Arbitration of data request
JP2018128845A (en) Processor system
US10503471B2 (en) Electronic devices and operation methods of the same
JP5715670B2 (en) Communication device
US9411758B2 (en) Semiconductor device
JP2007102447A (en) Arithmetic processor
JP2006215621A (en) Dma controller
CN105786744B (en) Interconnection device and interconnection operation method
JP2009163531A (en) Interruption management mechanism and microcomputer
JP6430710B2 (en) Data transfer control device and data transfer control method
US20100153610A1 (en) Bus arbiter and bus system
JP2015014962A (en) Arithmetic device, arithmetic method, and program
JP2009032085A (en) Data processing system
JP2009015783A (en) Interface controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180328

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180419

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180419

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180719

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180918

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181004

R150 Certificate of patent or registration of utility model

Ref document number: 6416488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250