JP2010109869A - Semiconductor device - Google Patents

Semiconductor device Download PDF

Info

Publication number
JP2010109869A
JP2010109869A JP2008281737A JP2008281737A JP2010109869A JP 2010109869 A JP2010109869 A JP 2010109869A JP 2008281737 A JP2008281737 A JP 2008281737A JP 2008281737 A JP2008281737 A JP 2008281737A JP 2010109869 A JP2010109869 A JP 2010109869A
Authority
JP
Japan
Prior art keywords
router
circuit
semiconductor device
circuits
wiring path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008281737A
Other languages
Japanese (ja)
Inventor
Yoshitaka Tsujimoto
芳孝 辻本
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008281737A priority Critical patent/JP2010109869A/en
Publication of JP2010109869A publication Critical patent/JP2010109869A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce latency on a network or to improve throughput in a semiconductor device with NoC (network on chip). <P>SOLUTION: The semiconductor device includes: a plurality of components IP0-IP7 for performing predetermined processing; a plurality of router circuits R0-R7 connected to the components, respectively; a plurality of wirings connecting the router circuits; and a router management unit SOC_NAVI for monitoring in real time whether the plurality of router circuits are enabled or not. For example, R0 holds, for each of R1-R7, single or plural route information determined on a stage of design beforehand, starting from R0 up to R1-R7. When transferring a request to a predetermined component, R0 searches for an optimal route while reflecting information from SOC_NAVI in the route information. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、半導体装置に関し、特に、ネットワークインターフェースによって多数のマスタコンポーネントとスレーブコンポーネントを接続するNoC(ネットワーク・オン・チップ)を備えたSoC(システム・オン・チップ)のような半導体装置に適用して有効な技術に関する。   The present invention relates to a semiconductor device, and more particularly to a semiconductor device such as a SoC (system on chip) having a NoC (network on chip) that connects a number of master components and slave components via a network interface. Related to effective technology.

図2に、インターネットで一般的に知られている経路探索方式と、その利点および欠点を示す。図2に示すように、インターネットでは、経路を固定したスタティック・ルーティング方式と、経路を動的に変更するダイナミック・ルーティング方式が知られている。例えば、ダイナミック・ルーティング方式では、障害等により利用不可となった経路を回避できる一方、設定ミスや機器障害により誤った経路情報がアナウンスされると、ネットワーク全体に波及し、最悪ネットワークがダウンする欠点がある。   FIG. 2 shows a route search method generally known on the Internet and its advantages and disadvantages. As shown in FIG. 2, in the Internet, a static routing method in which a route is fixed and a dynamic routing method in which a route is dynamically changed are known. For example, the dynamic routing method can avoid routes that cannot be used due to failures, etc., but if incorrect route information is announced due to a setting error or device failure, the entire network is spread and the worst network goes down. There is.

また、例えば、特許文献1には、複数のイニシエータとターゲットが接続される2個のバスの間に、各バスのトラフィック状態を監視するトラフィック監視ユニットを備えたデータ処理装置が示されている。トラフィック監視ユニットは、各イニシエータに対して送信された各バス毎のバスグラント信号の発生期間を積分することでいずれのバスが混雑しているか等を判断し、この判断結果に基づいた一方のバスを介してイニシエータからターゲットに向けたデータ転送が行われるように各種切り換えを行う。
特開2007−026284号公報
For example, Patent Document 1 discloses a data processing apparatus including a traffic monitoring unit that monitors the traffic state of each bus between two buses to which a plurality of initiators and targets are connected. The traffic monitoring unit determines which bus is congested by integrating the generation period of the bus grant signal for each bus transmitted to each initiator, and one of the buses based on the determination result. Various types of switching are performed so that data transfer from the initiator to the target is performed via.
JP 2007-026284 A

近年、SoCに搭載されるIP(インテレクチャル・プロパティ)の数の増加に伴い、それらのIPを接続するNoCの構成要素であるルータ回路の個数も増大し、ルータ回路同士の接続関係も複雑化している。ここで、問題となるのは、どのルータ回路を経由してデータのやり取りを行うかであり、経路の選択によっては、レイテンシが増大し、スループットの低下をも招く。   In recent years, with the increase in the number of IPs (intellectual properties) installed in SoCs, the number of router circuits that are constituent elements of NoC connecting these IPs also increases, and the connection relationship between router circuits is also complicated. It has become. Here, the problem lies in which router circuit is used to exchange data. Depending on the route selection, latency increases and throughput decreases.

このような問題を解決するため、例えば、特許文献1の技術を応用することが考えられる。すなわち、特許文献1の技術は、各バスにおける過去のアクセス頻度を監視し、最適なバスを選択する方式となっているが、これを応用して、ルータ回路に対する過去のアクセス頻度を監視し、これに基づいてアクセス頻度の少ないルータ回路を介する経路を選択するような方式が考えられる。しかしながら、この方式では、過去のアクセス頻度に基づいて経路選択が行われるため、SoCで行う処理内容(すなわちアプリケーション)によっては必ずしも最適経路とはならず、レイテンシが増大する虞がある。つまり、例えば、SoCを汎用的な処理装置として用いた場合、アプリケーションが変わると最適経路も異なるため、必ずしも過去のアクセス頻度が有効活用できるとは限らない。さらに、特許文献1の技術では、バス同士の接続は考慮する必要がないが、NoCを備えたSoCでは、ルータ回路同士の接続関係を考慮して最適経路を選択する必要があるため、これを効率的に実現する新たな仕組みが求められる。   In order to solve such a problem, for example, it is conceivable to apply the technique of Patent Document 1. That is, the technology of Patent Document 1 is a method of monitoring the past access frequency in each bus and selecting the optimum bus, but applying this, the past access frequency to the router circuit is monitored, Based on this, a method of selecting a route through a router circuit with low access frequency is conceivable. However, in this method, route selection is performed based on the past access frequency, so depending on the processing contents (that is, applications) performed by the SoC, the route is not necessarily the optimum route, and there is a possibility that latency is increased. In other words, for example, when the SoC is used as a general-purpose processing device, the optimum access path varies depending on the application, and thus the past access frequency cannot always be effectively utilized. Furthermore, in the technique of Patent Document 1, there is no need to consider connection between buses. However, in SoC with NoC, it is necessary to select the optimum route in consideration of the connection relationship between router circuits. A new mechanism to achieve it efficiently is required.

本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、NoCを備えた半導体装置において、ネットワーク上のレイテンシの低減、またはスループットの向上を実現することにある。なお、本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。   The present invention has been made in view of the above, and one of its purposes is to realize a reduction in latency on a network or an improvement in throughput in a semiconductor device provided with a NoC. The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。   Of the inventions disclosed in the present application, the outline of a typical embodiment will be briefly described as follows.

本実施の形態による半導体装置は、リクエストを発行するマスタコンポーネントと、このリクエストを受信するスレーブコンポーネントと、マスタコンポーネントとスレーブコンポーネント間の複数の経路上に存在する複数のルータ回路と、この複数のルータ回路の有効・無効状態をリアルタイムに監視するルータ管理ユニットとを備えている。マスタコンポーネントに接続されたルータ回路は、スレーブコンポーネントに接続されたルータ回路に向けてリクエストを送信する際に、ルータ管理ユニットから複数のルータ回路の有効・無効状態を入手し、これに基づいて複数の経路の中から1つの経路を選択する。   The semiconductor device according to the present embodiment includes a master component that issues a request, a slave component that receives the request, a plurality of router circuits that exist on a plurality of paths between the master component and the slave component, and the plurality of routers. And a router management unit that monitors the valid / invalid state of the circuit in real time. When the router circuit connected to the master component sends a request to the router circuit connected to the slave component, it obtains the valid / invalid state of the plurality of router circuits from the router management unit, and based on this, the router circuit One route is selected from among the routes.

このように、ルータ回路は、各経路上のルータ回路のリアルタイムな有効・無効情報に基づいて最適な経路探索を行えるため、各ルータ回路間を接続するネットワーク上のレイテンシの低減、またはスループットの向上が実現可能になる。ここで、各ルータ回路の有効・無効状態を示す信号には、各ルータ回路内のバッファ回路が空きか否かを示すバッファ状態信号が含まれる。また、各ルータ回路は、条件に応じて自身の動作クロック信号の供給を停止する機能を備え、各ルータ回路の有効・無効状態を示す信号には、バッファ状態信号に加えて、この動作クロック信号の供給が停止されているか否かを示すクロック状態信号が含まれる。ルータ管理ユニットは、このような各ルータ回路の有効・無効状態を示す信号を内部の記憶部に保持し、これらをリアルタイムに(各クロックサイクル毎に)更新する。   In this way, the router circuit can perform optimal route search based on the real-time validity / invalidity information of the router circuit on each route, thereby reducing the latency on the network connecting the router circuits or improving the throughput. Becomes feasible. Here, the signal indicating the valid / invalid state of each router circuit includes a buffer status signal indicating whether or not the buffer circuit in each router circuit is empty. Each router circuit has a function of stopping supply of its own operation clock signal according to the conditions. In addition to the buffer status signal, this operation clock signal is used as a signal indicating the valid / invalid state of each router circuit. A clock status signal indicating whether or not the supply is stopped. The router management unit holds a signal indicating the valid / invalid state of each router circuit in the internal storage unit, and updates them in real time (every clock cycle).

また、各ルータ回路は、内部の記憶部に、自身を起点として自身以外のルータ回路を目的地として、各目的地に到達するまでの経路情報を各目的地毎に単数または複数保持している。各ルータ回路は、この経路情報に前述した各ルータ回路の有効・無効状態を反映させて最適な経路を探索する。この経路情報は、半導体装置の設計段階で予め定めることができるため、ダイナミック・ルーティング方式を採用するものの誤った経路情報がアナウンスされるようなことはない。これによっても、ネットワーク上のレイテンシの低減、またはスループットの向上が実現可能になる。   In addition, each router circuit holds one or more route information for each destination in the internal storage unit, starting from itself as a destination other than the router circuit as a destination, and reaching each destination. . Each router circuit searches the optimum route by reflecting the above-described valid / invalid state of each router circuit in this route information. Since this route information can be determined in advance at the design stage of the semiconductor device, although the dynamic routing method is adopted, incorrect route information is never announced. This also makes it possible to reduce the latency on the network or improve the throughput.

本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、NoCを備えた半導体装置において、ネットワーク上のレイテンシの低減、またはスループットの向上が実現可能になる。   The effects obtained by the representative embodiments of the invention disclosed in this application will be briefly described. In the semiconductor device including the NoC, it is possible to reduce the latency on the network or improve the throughput.

以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。   In the following embodiment, when it is necessary for the sake of convenience, the description will be divided into a plurality of sections or embodiments. However, unless otherwise specified, they are not irrelevant, and one is the other. Some or all of the modifications, details, supplementary explanations, and the like are related. Further, in the following embodiments, when referring to the number of elements (including the number, numerical value, quantity, range, etc.), especially when clearly indicated and when clearly limited to a specific number in principle, etc. Except, it is not limited to the specific number, and may be more or less than the specific number.

さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。   Further, in the following embodiments, the constituent elements (including element steps and the like) are not necessarily indispensable unless otherwise specified and apparently essential in principle. Needless to say. Similarly, in the following embodiments, when referring to the shapes, positional relationships, etc. of the components, etc., the shapes are substantially the same unless otherwise specified, or otherwise apparent in principle. And the like are included. The same applies to the above numerical values and ranges.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.

(実施の形態1)
図1は、本発明の実施の形態1による半導体装置において、その構成の一例を示すブロック図である。図1に示す半導体装置SOCは、複数(ここでは8個)のコンポーネントIP0〜IP7と、各コンポーネントにそれぞれ対応する複数(ここでは8個)のルータ回路R0〜R7と、ルータ管理ユニット(SoCナビゲータ)SOC_NAVIを備えたものとなっている。各コンポーネントIP0〜IP7は、転送要求を行うことが可能なマスタコンポーネント、または、転送要求に応答することが可能なスレーブコンポーネント、あるいは、その両方となる。
(Embodiment 1)
FIG. 1 is a block diagram showing an example of the configuration of the semiconductor device according to the first embodiment of the present invention. The semiconductor device SOC shown in FIG. 1 includes a plurality (eight here) of components IP0 to IP7, a plurality (eight here) of router circuits R0 to R7 corresponding to the respective components, and a router management unit (SoC navigator). ) SOC_NAVI is provided. Each of the components IP0 to IP7 is a master component that can make a transfer request, a slave component that can respond to the transfer request, or both.

ルータ回路R0は、IP0に接続されると共に、他のルータ回路R1〜R7の一部または場合によっては全部に接続される。ここでは、半導体装置内部における各ルータ回路間の配線を容易に形成するため、各ルータ回路は、比較的自身の近辺に配置された一部のルータ回路のみに接続されるものとしている。例えば、R0は、その近辺に配置されたR2とR1とR4に接続される。ルータ回路R1〜R7も同様に、それぞれ、対応するコンポーネントIP1〜IP7に接続されると共に、近辺に配置された複数のルータ回路に接続される。ルータ管理ユニットSOC_NAVIは、全てのルータ回路R0〜R7に接続され、各ルータ回路の利用状況を管理する。各ルータ回路R0〜R7のそれぞれは、詳細は後述するが、SOC_NAVIとの間の通信情報を利用してリアルタイムに経路選択を行う第1機能や、各コンポーネントIP0〜IP7からの転送要求の優先順位に基づいて調停を行う第2機能などを備えている。   The router circuit R0 is connected to IP0 and is connected to some or all of the other router circuits R1 to R7. Here, in order to easily form the wiring between the router circuits in the semiconductor device, each router circuit is connected to only a part of the router circuits arranged relatively near itself. For example, R0 is connected to R2, R1, and R4 arranged in the vicinity thereof. Similarly, the router circuits R1 to R7 are connected to the corresponding components IP1 to IP7, respectively, and are connected to a plurality of router circuits arranged in the vicinity. The router management unit SOC_NAVI is connected to all the router circuits R0 to R7 and manages the usage status of each router circuit. As will be described in detail later, each of the router circuits R0 to R7 has a first function for selecting a route in real time using communication information with the SOC_NAVI, and a priority order of transfer requests from the components IP0 to IP7. A second function for performing arbitration based on the above is provided.

図3は、図1の半導体装置において、その各ルータ回路を経由するパケットデータ(インタフェース信号)の基本構造例を示す説明図である。図3に示すパケットデータ(インタフェース信号)は、それぞれ任意のビット幅を備えたヘッダ(HD)およびデータ(DAT)からなる。ヘッダ(HD)は、パケットID(PKT_ID)、転送元のソースID(SRC_ID)、前回経由したルータ回路を表すミドルID(MID_ID)、転送先のデスティネーションID(DST_ID)、ヘッダとデータの合計サイズとなるパケットサイズ(PKT_SIZE)、プライオリティ(PRI)、オペコード(OPC)、任意に拡張できる拡張ヘッダ(EXT)によって構成される。   FIG. 3 is an explanatory view showing a basic structure example of packet data (interface signal) passing through each router circuit in the semiconductor device of FIG. The packet data (interface signal) shown in FIG. 3 includes a header (HD) and data (DAT) each having an arbitrary bit width. The header (HD) is a packet ID (PKT_ID), a source ID (SRC_ID) of a transfer source, a middle ID (MID_ID) indicating a router circuit that has passed through the previous time, a destination ID (DST_ID) of a transfer destination, and the total size of the header and data Packet size (PKT_SIZE), priority (PRI), opcode (OPC), and optional extension header (EXT).

SRC_ID、DST_ID、MID_IDは、半導体装置内部にコンポーネントIPおよびルータ回路Rを幾つ設けるかに応じて所定のビット幅に定められる。また、PKT_SIZE、PRI、OPCは、半導体装置の仕様に応じて所定のビット幅に定められる。詳細は後述するが、MID_IDは、自己ループの有無を判定する際に用いられ、PRIは、あるルータ回路に対して異なるコンポーネントまたはルータ回路から同時に転送要求などが来た場合にどれを優先するかを決定するために用いられる。また、PKT_SIZEは、例えば、何サイクルに渡ってパケットデータが転送されるかを識別するために使用され、OPCは、転送先となるコンポーネントに対して発行する命令コードとなる。なお、EXTは、必ずしも設ける必要はなく、また、PRIも、予め固定的に優先順位を定めておけば、省略可能である。   SRC_ID, DST_ID, and MID_ID are determined to have a predetermined bit width depending on how many component IPs and router circuits R are provided in the semiconductor device. Further, PKT_SIZE, PRI, and OPC are set to a predetermined bit width according to the specifications of the semiconductor device. Although details will be described later, MID_ID is used to determine the presence or absence of a self-loop, and PRI gives priority to a router circuit when a transfer request or the like is simultaneously received from different components or router circuits. Used to determine Also, PKT_SIZE is used, for example, to identify how many cycles packet data is transferred, and OPC is an instruction code issued to a transfer destination component. The EXT is not necessarily provided, and the PRI can be omitted if the priority order is fixedly determined in advance.

図4は、図1の半導体装置において、マスタコンポーネントとスレーブコンポーネント間の通信方式の一例を模式的に示すものであり、(a)は転送要求の際の模式図、(b)は(a)の転送要求に対して応答を行う際の模式図である。実際には、図1に示したように、マスタコンポーネントとスレーブコンポーネントの間で複数のルータ回路を経由した通信が行われる場合があるが、ここでは、簡素化のため1個のルータ回路を経由するものとする。なお、複数のルータ回路を経由する場合は、図4(a),(b)において、ルータ回路Rの後段に更にルータ回路が挿入されることになる。ただし、この場合でも、後述するように、コンポーネントおよびルータ回路に関わらずパケットデータの構造やその送受信手順は固定であるため、後段に挿入されたルータ回路は、図4(a),(b)の各ルータ回路Rと同様の信号の流れとなる。   4 schematically shows an example of a communication method between a master component and a slave component in the semiconductor device of FIG. 1, wherein (a) is a schematic diagram when a transfer request is made, and (b) is (a). It is a schematic diagram at the time of making a response to the transfer request. In practice, as shown in FIG. 1, communication may be performed between a master component and a slave component via a plurality of router circuits. Here, for simplification, the communication is performed via one router circuit. It shall be. When passing through a plurality of router circuits, a router circuit is further inserted after the router circuit R in FIGS. 4 (a) and 4 (b). However, even in this case, as will be described later, the packet data structure and its transmission / reception procedure are fixed regardless of the component and the router circuit. Therefore, the router circuit inserted in the subsequent stage is shown in FIGS. The signal flow is the same as that of each router circuit R.

図4(a)において、マスタコンポーネントIP_Mは、ルータ回路Rに向けて、転送要求信号(REQ)と共に、パケットID(PKT_ID)、転送元のソースID(SRC_ID)、前回経由したルータ回路を表すミドルID(MID_ID)、転送先のデスティネーションID(DST_ID)、ヘッダとデータの合計サイズ(PKT_SIZE)、データ(DAT)、優先度を表すプライオリティ(PRI)、オペコード(OPC)を送信する。ルータ回路Rは、この転送要求を許可する場合、IP_Mに向けて転送許可信号(GNT)を送信し、このIP_Mから転送されたパケットデータ(PKT_ID,SRC_ID,MID_ID,DST_ID,PKT_SIZE,DAT,PRI,OPC)を内部に保持する。次いで、ルータ回路Rは、スレーブコンポーネントIP_Sに向けて、転送要求信号(REQ)と共に、前述したIP_Mからの転送に伴って保持しているパケットデータを送信する。なお、このIP_Sに向けて送信を行う際に、ルータ回路Rは、MID_IDを自身のIDに書き換えて送信を行う。そして、IP_Sは、このルータ回路Rからの転送要求を許可する場合、ルータ回路Rに向けて転送許可信号(GNT)を送信し、この転送されたパケットデータにおけるオペコード(OPC)やデータ(DAT)に応じた処理を行う。   In FIG. 4A, the master component IP_M is directed to the router circuit R together with the transfer request signal (REQ), the packet ID (PKT_ID), the source ID of the transfer source (SRC_ID), and the middle representing the router circuit that has passed through the previous time. ID (MID_ID), destination ID (DST_ID) of the transfer destination, total size of header and data (PKT_SIZE), data (DAT), priority (PRI) indicating priority, and operation code (OPC) are transmitted. When permitting this transfer request, the router circuit R transmits a transfer permission signal (GNT) to IP_M, and packet data (PKT_ID, SRC_ID, MID_ID, DST_ID, PKT_SIZE, DAT, PRI, OPC) is held inside. Next, the router circuit R transmits to the slave component IP_S, together with the transfer request signal (REQ), the packet data held by the transfer from the IP_M described above. Note that when performing transmission toward the IP_S, the router circuit R performs transmission by rewriting MID_ID with its own ID. When IP_S permits a transfer request from the router circuit R, the IP_S transmits a transfer permission signal (GNT) to the router circuit R, and an operation code (OPC) or data (DAT) in the transferred packet data. Perform processing according to.

スレーブコンポーネントIP_Sは、前述したIP_Mからの要求に応じた所定の処理を終えると、図4(b)に示すように、ルータ回路Rに向けて、転送応答信号(RES)と共に、パケットID(PKT_ID)、転送元のソースID(SRC_ID)、前回経由したルータ回路を表すミドルID(MID_ID)、転送先のデスティネーションID(DST_ID)、ヘッダとデータの合計サイズ(PKT_SIZE)、レスポンスデータ(R_DAT)、プライオリティ(PRI)、レスポンスオペコード(R_OPC)を送信する。ルータ回路Rは、この転送応答を許可する場合、IP_Sに向けて転送応答許可信号(R_GNT)を送信し、このIP_Sから転送されたパケットデータ(PKT_ID,SRC_ID,MID_ID,DST_ID,PKT_SIZE,R_DAT,R_OPC)を内部に保持する。以降も、図4(a)の場合と逆の信号の流れで、ルータ回路RとIP_Mとの間で同様の通信が行われる。   When the slave component IP_S finishes the predetermined processing according to the request from the IP_M described above, the packet ID (PKT_ID) is transmitted to the router circuit R together with the transfer response signal (RES) as shown in FIG. ), Source ID (SRC_ID) of the transfer source, middle ID (MID_ID) indicating the router circuit that passed through the previous time, destination ID (DST_ID) of the transfer destination, total size of header and data (PKT_SIZE), response data (R_DAT), A priority (PRI) and a response opcode (R_OPC) are transmitted. When permitting this transfer response, the router circuit R transmits a transfer response permission signal (R_GNT) to IP_S, and packet data (PKT_ID, SRC_ID, MID_ID, DST_ID, PKT_SIZE, R_DAT, R_OPC) transferred from this IP_S. ) Is held inside. Thereafter, the same communication is performed between the router circuit R and the IP_M with the signal flow opposite to that in the case of FIG.

図5は、図1の半導体装置において、各ルータ回路の概要構成例を示すものであり、(a)はマスタ機能とスレーブ機能を備えたコンポーネントに対応するルータ回路の概略図、(b)はスレーブ機能を備えたコンポーネントに対応するルータ回路の概略図である。図5(a)に示すルータ回路R0は、それに対応するコンポーネントIP0がマスタ機能とスレーブ機能を備えるものとして、リクエスト処理回路RTCTL_REQ0と、レスポンス処理回路RTCTL_RES0を備えている。また、図5(b)に示すルータ回路R4は、それに対応するコンポーネントIP4がスレーブ機能のみを備えるものとして、リクエスト処理回路RTCTL_REQ4と、レスポンス処理回路RTCTL_RES4を備えている。   FIG. 5 shows an example of a schematic configuration of each router circuit in the semiconductor device of FIG. 1. FIG. 5A is a schematic diagram of a router circuit corresponding to a component having a master function and a slave function, and FIG. It is the schematic of the router circuit corresponding to the component provided with the slave function. The router circuit R0 shown in FIG. 5A includes a request processing circuit RTCTL_REQ0 and a response processing circuit RTCTL_RES0, assuming that the corresponding component IP0 has a master function and a slave function. The router circuit R4 shown in FIG. 5B includes a request processing circuit RTCTL_REQ4 and a response processing circuit RTCTL_RES4, assuming that the corresponding component IP4 has only a slave function.

図5(a)において、RTCTL_REQ0は、4個の入力ポートと4個の出力ポートを備え、各入力ポートに、それぞれ、コンポーネントIP0とルータ回路R1,R2,R4が接続され、各出力ポートにも、それぞれ、IP0とR1,R2,R4が接続される。4個の入力ポートのそれぞれには、図4で説明したリクエスト系のパケットデータが入力され、RTCTL_REQ0は、その内の1個のパケットデータを選択すると共に4個の出力ポートのいずれか1個を選択し、この選択した1個のパケットデータを、選択した出力ポートから出力する。同様に、RTCTL_RES0も、4個の入力ポートと4個の出力ポートを備え、各入力ポートに、それぞれ、IP0とR1,R2,R4が接続され、各出力ポートにも、それぞれ、IP0とR1,R2,R4が接続される。4個の入力ポートのそれぞれには、図4で説明したレスポンス系のパケットデータが入力され、RTCTL_RES0は、その内の1個のパケットデータを選択すると共に4個の出力ポートのいずれか1個を選択し、この選択した1個のパケットデータを、選択した出力ポートから出力する。   In FIG. 5 (a), RTCTL_REQ0 has four input ports and four output ports. Component IP0 and router circuits R1, R2, and R4 are connected to each input port, and each output port is also connected. , IP0 and R1, R2, and R4 are connected to each other. The request type packet data described in FIG. 4 is input to each of the four input ports. RTCTL_REQ0 selects one of the packet data and selects one of the four output ports. The selected packet data is output from the selected output port. Similarly, RTCTL_RES0 includes four input ports and four output ports, and IP0 and R1, R2, and R4 are connected to each input port, and each output port also has IP0 and R1, respectively. R2 and R4 are connected. The response-related packet data described in FIG. 4 is input to each of the four input ports. RTCTL_RES0 selects one of the packet data and selects one of the four output ports. The selected packet data is output from the selected output port.

一方、図5(b)において、RTCTL_REQ4は、3個の入力ポートと4個の出力ポートを備え、各入力ポートに、それぞれ、ルータ回路R0,R3,R5が接続され、各出力ポートに、それぞれ、コンポーネントIP4とR0,R3,R5が接続される。3個の入力ポートのそれぞれには、図4で説明したリクエスト系のパケットデータが入力され、RTCTL_REQ4は、その内の1個のパケットデータを選択すると共に4個の出力ポートのいずれか1個を選択し、この選択した1個のパケットデータを、選択した出力ポートから出力する。また、RTCTL_RES4は、4個の入力ポートと3個の出力ポートを備え、各入力ポートに、それぞれ、IP4とR0,R3,R5が接続され、各出力ポートに、それぞれ、R0,R3,R5が接続される。4個の入力ポートのそれぞれには、図4で説明したレスポンス系のパケットデータが入力され、RTCTL_RES4は、その内の1個のパケットデータを選択すると共に3個の出力ポートのいずれか1個を選択し、この選択した1個のパケットデータを、選択した出力ポートから出力する。   On the other hand, in FIG. 5B, RTCTL_REQ4 includes three input ports and four output ports, and router circuits R0, R3, and R5 are connected to the input ports, respectively. , Component IP4 and R0, R3, R5 are connected. The request-type packet data described in FIG. 4 is input to each of the three input ports. RTCTL_REQ4 selects one of the packet data and selects one of the four output ports. The selected packet data is output from the selected output port. RTCTL_RES4 includes four input ports and three output ports. IP4 and R0, R3, and R5 are connected to each input port, and R0, R3, and R5 are respectively connected to each output port. Connected. The response-related packet data described in FIG. 4 is input to each of the four input ports, and RTCTL_RES4 selects one of the packet data and selects one of the three output ports. The selected packet data is output from the selected output port.

この図4および図5(a),(b)のようにリクエスト系の処理回路(RTCTL_REQ)とレスポンス系の処理回路(RTCTL_RES)を分離した構成は、スプリットトランザクションと呼ばれ、面積オーバーヘッドがあるものの、処理効率を高めることが可能となる。なお、高い処理効率が必要でなければ、リクエストとレスポンスを区別せずに(例えば、転送応答信号(RES)を転送要求信号(REQ)とみなして)、1つの処理回路で共用するルータ構成とすることも可能である。   The configuration in which the request processing circuit (RTCTL_REQ) and the response processing circuit (RTCTL_RES) are separated as shown in FIG. 4 and FIGS. 5A and 5B is called a split transaction. It becomes possible to increase the processing efficiency. If high processing efficiency is not required, a router configuration that is shared by one processing circuit without distinguishing between a request and a response (for example, regarding a transfer response signal (RES) as a transfer request signal (REQ)) It is also possible to do.

図6は、図5のルータ回路において、そのリクエスト処理回路RTCTL_REQの詳細な構成例を示すブロック図である。図6に示すリクエスト処理回路RTCTL_REQは、入力セレクタSEL_I、入力バッファBUF_I、リクエスト調停回路ARB、出力バッファBUF_O、出力セレクタSEL_O、経路情報保持・算出回路RTCAL、ローカルバッファ管理ユニットBUF_CTL、クロック制御回路CK_CTLを備えている。SEL_Iには、入力ポート610を介して、図5(a),(b)に示したように、複数のルータ回路Rからのパケットデータ(PKT_ID,SRC_ID,MID_ID,DST_ID,PKT_SIZE,DAT,PRI,OPC)や、加えてコンポーネントIPからのパケットデータが入力される。そして、この複数のパケットデータの中のいずれか1個がBUF_CTLからの指示によって選択され、それが入力バッファBUF_Iに転送される。   FIG. 6 is a block diagram showing a detailed configuration example of the request processing circuit RTCTL_REQ in the router circuit of FIG. The request processing circuit RTCTL_REQ shown in FIG. 6 includes an input selector SEL_I, an input buffer BUF_I, a request arbitration circuit ARB, an output buffer BUF_O, an output selector SEL_O, a path information holding / calculating circuit RTCAL, a local buffer management unit BUF_CTL, and a clock control circuit CK_CTL. I have. As shown in FIGS. 5A and 5B, SEL_I receives packet data (PKT_ID, SRC_ID, MID_ID, DST_ID, PKT_SIZE, DAT, PRI, OPC) and, in addition, packet data from the component IP is input. Any one of the plurality of packet data is selected by an instruction from BUF_CTL and transferred to the input buffer BUF_I.

入力バッファBUF_Iに転送されたパケットデータは、BUF_CTLの指示に基づいて出力バッファBUF_Oに転送される。出力セレクタSEL_Oは、経路情報保持・算出回路RTCALからの指示に基づいて出力ポート615の選択を行い、BUF_Oに転送されたパケットデータを、この選択された出力ポートから出力する。出力ポートには、図5(a),(b)に示したように、コンポーネントIPと複数のルータ回路Rが接続されており、この中のいずれかが選択される。   The packet data transferred to the input buffer BUF_I is transferred to the output buffer BUF_O based on the instruction of BUF_CTL. The output selector SEL_O selects the output port 615 based on an instruction from the path information holding / calculating circuit RTCAL, and outputs the packet data transferred to the BUF_O from the selected output port. As shown in FIGS. 5A and 5B, the component port and a plurality of router circuits R are connected to the output port, and one of these is selected.

ローカルバッファ管理ユニットBUF_CTLは、複数のルータ回路Rからの転送要求信号(REQ)(即ち自身以外のコンポーネントIPからのREQ)や、加えて自身に対応するコンポーネントIPからのREQを受け、その中のいずれか1個を許可する。この際には、各REQに対応するプライオリティPRIを参照し、調停回路ARBを用いて最も優先順位が高いREQを判断すると共に、BUF_IやBUF_Oの空きの有無も確認した上で、この最も優先順位が高いREQを許可する。そして、この許可したREQに対応するルータ回路RまたはコンポーネントIPに向けて転送許可信号(GNT)を送信する。   The local buffer management unit BUF_CTL receives a transfer request signal (REQ) from a plurality of router circuits R (that is, a REQ from a component IP other than itself) and a REQ from a component IP corresponding to the local buffer management unit BUF_CTL. Either one is allowed. At this time, the priority PRI corresponding to each REQ is referred to, the arbitration circuit ARB is used to determine the REQ having the highest priority, and the presence / absence of BUF_I or BUF_O is checked, and this highest priority is determined. Allow a high REQ. Then, a transfer permission signal (GNT) is transmitted to the router circuit R or component IP corresponding to the permitted REQ.

また、BUF_CTLは、例えば、自身に向けた全てのREQが発行されておらず、かつ、入力バッファBUF_Iと出力バッファBUF_Oにパケットデータが滞留していない場合に、その期間を内部に備えたカウンタでカウントする。そして、BUF_CTLは、そのカウント値を予め定めたしきい値と比較して、しきい値に達した場合にクロック制御回路CK_CTLに向けてスタンバイ指示信号613を出力する。CK_CTLは、BUF_I,BUF_O,BUF_CTLおよびRTCAL等に対して動作クロックを供給しているが(以降、この状態をクロックオンと呼ぶ)、このスタンバイ指示信号613を受けた際には、この動作クロックの供給を停止する(以降、この状態をクロックオフと呼ぶ)。これによって、当該ルータ回路は、省電力モードとなる。また、省電力モードとなった際に、CK_CTLは、SOC_NAVIに向けて、クロックオフ信号612aを用いて省電力モードとなったことを通知する。また、CK_CTLは、例えば、SOC_NAVIからクロックオン信号612bを受けた際には、動作クロックの供給を再開する。   In addition, BUF_CTL is a counter with an internal period when, for example, all REQs directed to itself are not issued and packet data does not stay in the input buffer BUF_I and the output buffer BUF_O. Count. Then, BUF_CTL compares the count value with a predetermined threshold value and outputs a standby instruction signal 613 toward the clock control circuit CK_CTL when the threshold value is reached. CK_CTL supplies an operation clock to BUF_I, BUF_O, BUF_CTL, RTCAL, and the like (hereinafter, this state is referred to as clock on). When this standby instruction signal 613 is received, Supply is stopped (hereinafter, this state is called clock-off). Thereby, the router circuit enters a power saving mode. Further, when the power saving mode is set, CK_CTL notifies the SOC_NAVI that the power saving mode is set using the clock-off signal 612a. For example, CK_CTL resumes the supply of the operation clock when receiving the clock-on signal 612b from the SOC_NAVI.

さらに、BUF_CTLは、当該ルータ回路におけるバッファの状態が「空」か「満」かを監視し、この監視結果をバッファ状態信号617を用いてSOC_NAVIに通知する。ここで、ルータ回路のバッファ状態が「空」とは、入力バッファBUF_Iがパケットデータを受け付ける状態であることを示し、例えば、BUF_Iにパケットデータが詰まっている状態でも、後段の出力バッファBUF_Oがパケットデータを受け付けることが出来る状態であれば、「空」の状態である。一方、ルータ回路のバッファ状態が「満」とは、BUF_Iがパケットデータを受け付けることができない状態である。   Further, the BUF_CTL monitors whether the buffer status in the router circuit is “empty” or “full”, and notifies the SOC_NAVI of the monitoring result using the buffer status signal 617. Here, the buffer state of the router circuit being “empty” indicates that the input buffer BUF_I is in a state of accepting packet data. For example, even if the packet data is clogged in the BUF_I, the output buffer BUF_O in the subsequent stage is not in the packet state. If the data can be received, it is “empty”. On the other hand, the buffer state of the router circuit being “full” is a state in which BUF_I cannot accept packet data.

なお、前述した動作クロックを供給または停止する機能は、必ずしも必要という訳ではないが、半導体装置SOC内に多数のIPが含まれるほど、消費電力の問題がより顕著なものとなるため、設ける方が望ましい。また、この動作クロックを供給または停止する方式は、前述したような方式に限定されるものではなく、適宜変更可能である。例えば、SOC_NAVIが、ローカルバッファ管理ユニットBUF_CTLからの617を監視し、一定の期間「空」の状態が続いた場合には、クロック制御回路CK_CTLに向けて動作クロックの供給を停止するよう指示するような方式でもよい。   Note that the above-described function of supplying or stopping the operation clock is not necessarily required, but the more the number of IPs included in the semiconductor device SOC, the more conspicuous the problem of power consumption becomes. Is desirable. The method for supplying or stopping the operation clock is not limited to the method described above, and can be changed as appropriate. For example, the SOC_NAVI monitors the 617 from the local buffer management unit BUF_CTL, and instructs the clock control circuit CK_CTL to stop supplying the operation clock when the state of “empty” continues for a certain period of time. Any method may be used.

経路情報保持・算出回路RTCALは、当該ルータ回路を起点として目的地となるコンポーネントに辿り着くまでの単数または複数の経路情報を、内部に備えた記憶部(例えばレジスタ)に保持している。RTCALは、詳細は後述するが、SOC_NAVIより、当該ルータ以外の全ルータ回路におけるルータ回路の状態(「空」または「満」)ならびに動作クロックの供給または停止状態を他ルータ監視信号616を介して受け取り、これらの情報と前述した経路情報とを見比べながら、最適となる経路を決定する。出力セレクタSEL_Oは、この決定に基づいて出力ポート615の選択を行う。   The route information holding / calculating circuit RTCAL holds one or more pieces of route information from the router circuit as a starting point until reaching the destination component in a storage unit (for example, a register) provided therein. As will be described in detail later, RTCAL indicates the status (“empty” or “full”) of the router circuit in all the router circuits other than the router and the supply or stop status of the operation clock via the other router monitoring signal 616 from SOC_NAVI. The optimum route is determined by comparing the received information with the route information described above. The output selector SEL_O selects the output port 615 based on this determination.

このように、図6においては、リクエスト処理回路RTCTL_REQの構成例を示したが、図5(a),(b)におけるレスポンス処理回路RTCTL_RESも同様な構成となる。ただし、レスポンス処理回路RTCTL_RESの場合は、そのローカルバッファ管理ユニットBUF_CTLが、転送応答信号(RES)を入力として、転送応答許可信号(R_GNT)を出力することになる。また、入力ポート610には、データ(DAT)やオペコード(OPC)の代わりに、レスポンスデータ(R_DAT)やレスポンスオペコード(R_OPC)が入力されることになる。なお、クロック制御回路CK_CTLは、RTCTL_REQとRTCTL_RESとで個別に設けるか、場合によっては共通で設けることも可能である。   As described above, FIG. 6 illustrates the configuration example of the request processing circuit RTCTL_REQ, but the response processing circuit RTCTL_RES in FIGS. 5A and 5B also has the same configuration. However, in the case of the response processing circuit RTCTL_RES, the local buffer management unit BUF_CTL receives the transfer response signal (RES) and outputs the transfer response permission signal (R_GNT). Further, response data (R_DAT) and response opcode (R_OPC) are input to the input port 610 instead of data (DAT) and opcode (OPC). Note that the clock control circuit CK_CTL can be provided separately for RTCTL_REQ and RTCTL_RES, or in some cases, can be provided in common.

図7(a),(b)は、図6のリクエスト処理回路RTCTL_REQにおいて、それぞれ異なるルータ回路内の経路情報保持・算出回路RTCALが保持している経路テーブルの構造例を示した概略図である。図7(a)は、ルータ回路R0内のリクエスト処理回路RTCTL_REQ0が備える経路テーブルであり、図7(b)は、ルータ回路R1内のリクエスト処理回路(RTCTL_REQ1)が備える経路テーブルである。なお、この経路テーブルは、図1の半導体装置SOCを例としたものである。   FIGS. 7A and 7B are schematic diagrams showing an example of the structure of the route table held in the route information holding / calculating circuit RTCAL in each different router circuit in the request processing circuit RTCTL_REQ in FIG. . FIG. 7A is a path table provided in the request processing circuit RTCTL_REQ0 in the router circuit R0, and FIG. 7B is a path table provided in the request processing circuit (RTCTL_REQ1) in the router circuit R1. This route table is an example of the semiconductor device SOC of FIG.

図7(a)に示すように、ルータ回路R0内の経路情報保持・算出回路RTCALは、ルータ回路R0を起点として、他のルータ回路R1〜R7に到達するまでの経路を各レジスタREGに備えている。例えば、レジスタREG01_xxは、R0からR1に到達する経路を保持し、同様に、レジスタREG06_xxは、R0からR6に到達する経路を保持する。また、例えば、レジスタREG06_xxにおいて、「xx」がRT1となるレジスタREG06_RT1は、1番目の候補となる経路を保持し、RT2となるレジスタREG06_RT2は、2番目の候補となる経路を保持し、RT3となるレジスタREG06_RT3は、3番目の候補となる経路を保持する。   As shown in FIG. 7A, the route information holding / calculating circuit RTCAL in the router circuit R0 has a route from each router REG0 to the other router circuits R1 to R7 in each register REG. ing. For example, the register REG01_xx holds a path from R0 to R1, and similarly, the register REG06_xx holds a path from R0 to R6. Further, for example, in the register REG06_xx, the register REG06_RT1 in which “xx” is RT1 holds the first candidate path, and the register REG06_RT2 that is RT2 holds the second candidate path, and RT3 and Register REG06_RT3 holds the third candidate path.

また、各レジスタREG06_RT1〜REG06_RT3は、目的地に到達するまでのルータ回路の経由回数(すなわち経路長)を保持している。ここでは、経路長が、1番目の経路≦2番目の経路≦3番目の経路の順で短くなっている。さらに、この経路テーブルでは、ある目的地までの経路に関して3個以下の候補を備えるものとし、少なくとも1番目の経路と2番目の経路とでは、最初に通過するルータ回路が異なるものとしている。最初に通過するルータ回路は、例えば、REG06_RT1ではR2であり、REG06_RT2ではR1である。また、図7(b)に示すように、ルータ回路R1内の経路情報保持・算出回路RTCALも、図7(a)の場合と同様に、ルータ回路R1を起点として、他のルータ回路R0,R2〜R7に到達するまでの経路を各レジスタREGに備えている。ルータ回路R2〜R7内のRTCALも、図示はしないが、同様にして自身を起点とする経路を自身の各レジスタに備えている。   Further, each of the registers REG06_RT1 to REG06_RT3 holds the number of times the router circuit passes through to the destination (that is, the path length). Here, the path length becomes shorter in the order of the first path ≦ the second path ≦ the third path. Further, in this route table, it is assumed that three or less candidates are provided for a route to a certain destination, and at least the first route and the second route have different router circuits that pass first. The router circuit that passes through first is, for example, R2 in REG06_RT1, and R1 in REG06_RT2. Further, as shown in FIG. 7B, the route information holding / calculating circuit RTCAL in the router circuit R1 is also started from the router circuit R1 as in the case of FIG. Each register REG has a path to reach R2 to R7. Although not shown, the RTCALs in the router circuits R2 to R7 are similarly provided with their own registers in their respective registers.

ここで、図7(a),(b)に示したような、経路情報保持・算出回路RTCALの記憶部(例えばレジスタ)に保持する経路情報は、半導体装置SOCを設計する際に、予め定めることができる。本実施の形態1による半導体装置は、後述するように、状況に応じて経路を切り換えるダイナミック・ルーティング方式を採用するが、確実に目的地まで辿り着く経路を予め設計段階で定めることができるため、図2に示したインターネットの場合のように、誤った経路情報がアナウンスされるようなことはない。   Here, as shown in FIGS. 7A and 7B, the path information held in the storage unit (for example, register) of the path information holding / calculating circuit RTCAL is determined in advance when the semiconductor device SOC is designed. be able to. As will be described later, the semiconductor device according to the first embodiment employs a dynamic routing method that switches a route according to a situation, but a route that reliably reaches a destination can be determined in advance at the design stage. As in the case of the Internet shown in FIG. 2, incorrect route information is never announced.

図8は、図1の半導体装置において、そのルータ管理ユニットSOC_NAVIが保持する管理テーブルの一例を示す概略図である。図8に示すように、SOC_NAVIは、例えば各ルータ回路R0〜R7にそれぞれ対応するレジスタR0_CTRL〜R7_CTRLを備え、各クロックサイクル毎(すなわちリアルタイム)に、R0〜R7のそれぞれが前述した「空」または「満」か、およびクロックオンまたはクロックオフかを監視する。これは、図6で述べたように、各ルータ回路内のローカルバッファ管理ユニットBUF_CTLおよびクロック制御回路CK_CTLからバッファ状態信号617およびクロックオフ信号612aを受けることで実現される。図8では、R4が「満」状態あり、R2がクロックオフである例を示している。ここで、特に限定はされないが、SOC−NAVIは、図8において例えば半分以上のルータ回路が「満」の状態であれば、クロックオフとなっているルータ回路に対して、図6のクロックオン信号612bを発行し、動作クロックの供給を再開するように指示を行う。   FIG. 8 is a schematic diagram showing an example of a management table held by the router management unit SOC_NAVI in the semiconductor device of FIG. As shown in FIG. 8, the SOC_NAVI includes, for example, registers R0_CTRL to R7_CTRL corresponding to the router circuits R0 to R7, and each of the R0 to R7 is “empty” or Monitor "full" and clock on or off. As described in FIG. 6, this is realized by receiving the buffer status signal 617 and the clock-off signal 612a from the local buffer management unit BUF_CTL and the clock control circuit CK_CTL in each router circuit. FIG. 8 shows an example in which R4 is in the “full” state and R2 is clock off. Here, although not particularly limited, the SOC-NAVI is the same as the clock-on state shown in FIG. 6 with respect to the router circuit in which the clock is off if, for example, more than half of the router circuits in FIG. The signal 612b is issued and an instruction is given to resume the supply of the operation clock.

また、図6で述べたように、各ルータ回路の経路情報保持・算出回路RTCALは、図8のような管理テーブルの情報を、他ルータ監視信号616を介してリアルタイムに入手することが可能となっている。RTCALは、この管理テーブルの情報を参照して、リアルタイムに、図7(a),(b)に示したような各経路が有効か無効かを逐次判断する。したがって、前述した特許文献1のように過去のアクセス頻度に基づいて経路を選択するのではなく、リアルタイムに各ルータ回路の状況を判断して経路を選択できるため、例えば実行するアプリケーション等に依存せずに、常にレイテンシが小さくスループットが高くなるような最適経路を選択することが可能となる。   Further, as described in FIG. 6, the route information holding / calculating circuit RTCAL of each router circuit can obtain the information of the management table as shown in FIG. 8 in real time via the other router monitoring signal 616. It has become. The RTCAL sequentially determines whether each route as shown in FIGS. 7A and 7B is valid or invalid in real time with reference to the information in the management table. Therefore, instead of selecting a route based on the past access frequency as in the above-mentioned Patent Document 1, it is possible to select a route by judging the status of each router circuit in real time. Therefore, it is possible to select an optimum route that always has a low latency and a high throughput.

図9は、図6のリクエスト処理回路RTCTL_REQにおいて、その経路情報保持・算出回路RTCALが行う経路探索方法の一例を示すフロー図である。経路探索が開始されると(901)、RTCALは、まず、902および903において、図7に示した経路テーブルと、転送対象となるパケットデータに含まれるデスティネーションID(DST_ID)を参照し、そのコンポーネントIPに対応するルータ回路に到達するまでの1番目の経路について判定を行う。902では、この1番目の経路のルータ経由回数をnとし、903では、この1番目の経路について、1つ先のルータ回路が有効(「空」かつクロックオン)であるかを判定する。有効であった場合、経路探索終了(910)となる。一方、無効(「満」またはクロックオフ)であった場合、904へ移行する。   FIG. 9 is a flowchart showing an example of a route search method performed by the route information holding / calculating circuit RTCAL in the request processing circuit RTCTL_REQ of FIG. When the route search is started (901), RTCAL first refers to the route table shown in FIG. 7 and the destination ID (DST_ID) included in the packet data to be transferred in 902 and 903. A determination is made for the first route until the router circuit corresponding to the component IP is reached. In 902, the number of times the first route passes through the router is set to n, and in 903, it is determined whether the next router circuit is valid (“empty” and clock-on) for this first route. If it is valid, the route search ends (910). On the other hand, if it is invalid (“full” or clock off), the process proceeds to 904.

904において、RTCALは、図7に示した経路テーブルを参照して、2番目の経路が有るかを判定する。2番目の経路が無かった場合、902に戻り、1サイクル後に再び1番目の経路について判定を行う。一方、2番目の経路が有った場合、この2番目の経路のルータ経由回数をmとし(905)、この2番目の経路について、(m−n+1)つ先までのルータ回路が全て有効であるかを判定する(906)。有効であった場合、経路探索終了(910)となる。一方、少なくともいずれか一つが無効であった場合、907へ移行する。   In 904, the RTCAL determines whether there is a second route with reference to the route table shown in FIG. If there is no second path, the process returns to 902, and the first path is determined again after one cycle. On the other hand, if there is a second route, m is the number of times the second route passes through the router (905), and all the router circuits up to (mn + 1) ahead are valid for this second route. It is determined whether or not there is (906). If it is valid, the route search ends (910). On the other hand, if at least one of them is invalid, the process proceeds to 907.

907において、RTCALは、図7に示した経路テーブルを参照して、3番目の経路が有るかを判定する。3番目の経路が無かった場合、902に戻り、1サイクル後に再び1番目の経路について判定を行う。一方、3番目の経路が有った場合、この3番目の経路のルータ経由回数をjとし(908)、この3番目の経路について、(j−n+1)つ先までのルータ回路が全て有効であるかを判定する(909)。有効であった場合、経路探索終了(910)となる。一方、少なくともいずれか一つが無効であった場合、902に戻り、1サイクル後に再び1番目の経路について判定を行う。なお、経路探索終了(910)となった場合、RTCALは、当該経路に向けてパケットデータが出力されるように出力セレクタSEL_Oに対して指示を出す。   In 907, the RTCAL determines whether there is a third route with reference to the route table shown in FIG. If there is no third route, the process returns to 902, and the first route is determined again after one cycle. On the other hand, if there is a third route, j is the number of times the third route passes through the router (908), and all the router circuits up to (j−n + 1) ahead are valid for this third route. It is determined whether or not there is (909). If it is valid, the route search ends (910). On the other hand, when at least one of them is invalid, the process returns to 902, and the first path is determined again after one cycle. When the route search ends (910), RTCAL issues an instruction to the output selector SEL_O so that the packet data is output toward the route.

図9のフローを具体例で説明すると、例えば、図1のルータ回路R0が、IP6(R6)をリクエストの転送先とするパケットデータを受けた場合、RTCALは、図7(a)のレジスタREG06_RT1の経路について判定を行い、n=2とし、1つ先のルータ回路R2が有効であるかを判定する。仮に有効の場合には、経路探索終了となる。すなわち、図10に示すように、R0→R2→R6の経路が選択され、当該サイクルにおいてR2に向けてパケットデータが出力される。   The flow in FIG. 9 will be described by way of a specific example. For example, when the router circuit R0 in FIG. 1 receives packet data with IP6 (R6) as a request transfer destination, RTCAL is registered in the register REG06_RT1 in FIG. And n = 2 and determine whether the next router circuit R2 is valid. If it is valid, the route search ends. That is, as shown in FIG. 10, a route of R0 → R2 → R6 is selected, and packet data is output toward R2 in the cycle.

一方、仮にR2が無効の場合、RTCALは、図7(a)の経路テーブルに、レジスタREG06_RT2が存在するかを判定し、存在する場合はこれについて判定を行う。図7(a)ではREG06_RT2が存在するため、RTCALは、REG06_RT2の情報からm=3とし、1つ先のルータ回路R1と2つ先のルータ回路R3が有効であるかを判定する。仮に有効の場合には、経路探索終了となる。すなわち、図11に示すように、R0→R1→R3→R6の経路が選択され、当該サイクルにおいてR1に向けてパケットデータが出力される。一方、仮にR1またはR3が無効の場合、RTCALは、同様にして、レジスタREG06_RT3について判定を行い、j=3とし、1つ先のルータ回路R4と2つ先のルータ回路R5が有効であるかを判定する。   On the other hand, if R2 is invalid, RTCAL determines whether the register REG06_RT2 exists in the route table of FIG. 7A, and if it exists, determines this. In FIG. 7A, since REG06_RT2 exists, RTCAL determines m = 3 from the information of REG06_RT2, and determines whether the first router circuit R1 and the second router circuit R3 are valid. If it is valid, the route search ends. That is, as shown in FIG. 11, a route of R0 → R1 → R3 → R6 is selected, and packet data is output toward R1 in the cycle. On the other hand, if R1 or R3 is invalid, RTCAL similarly determines the register REG06_RT3, sets j = 3, and determines whether the first router circuit R4 and the second router circuit R5 are valid. Determine.

図12は、図1の半導体装置において、その各クロックサイクル毎の動作例を示すものであり、各ルータ回路の入力バッファBUF_Iおよび出力バッファBUF_Oの状態遷移を示すものである。例えば、時刻(クロックサイクル)t=T0において、ルータ回路R0が、IP0からIP5に向けて発行された1サイクル分のデータの転送要求信号(REQ)を受け付けたものとする。この場合、R0は、入力バッファBUF_IにIP0からのパケットデータ(図12上でPD0と表示)をラッチする。さらに、このt=T0において、ルータ回路R4が、IP4からIP7に向けて発行された2サイクル分のデータの転送要求信号(REQ)を受け付けたものとする。この場合、R4は、入力バッファBUF_IでIP4からのパケットデータ(図12上でPD4と表示)をラッチする。   FIG. 12 shows an operation example for each clock cycle in the semiconductor device of FIG. 1, and shows state transitions of the input buffer BUF_I and the output buffer BUF_O of each router circuit. For example, it is assumed that at time (clock cycle) t = T0, the router circuit R0 receives a data transfer request signal (REQ) for one cycle issued from IP0 to IP5. In this case, R0 latches the packet data (shown as PD0 on FIG. 12) from IP0 in the input buffer BUF_I. Furthermore, it is assumed that at t = T0, the router circuit R4 receives a data transfer request signal (REQ) for two cycles issued from IP4 to IP7. In this case, R4 latches the packet data (shown as PD4 on FIG. 12) from IP4 in the input buffer BUF_I.

次いでt=T1において、R0は、BUF_OでパケットデータPD0をラッチすると共にこれに対する経路判定を行う。一方、R4は、BUF_Oで1サイクル目のパケットデータPD4をラッチすると共にこれに対する経路判定を行い、BUF_Iで2サイクル目のパケットデータPD4をラッチする。ここで、図16は、図6のリクエスト処理回路RTCTL_REQにおける入力バッファBUF_Iおよび出力バッファBUF_Oの遷移状態の一例を示す説明図である。   Next, at t = T1, R0 latches the packet data PD0 with BUF_O and performs route determination for this. On the other hand, R4 latches the packet data PD4 in the first cycle with BUF_O and determines the path for this, and latches the packet data PD4 in the second cycle with BUF_I. Here, FIG. 16 is an explanatory diagram showing an example of a transition state of the input buffer BUF_I and the output buffer BUF_O in the request processing circuit RTCTL_REQ of FIG.

図16において、BUF_Iは、時刻(クロックサイクル)t=T1’においてパケットデータPD[1]をラッチすると共にBUF_Oに出力し、t=T2’において次サイクルのパケットデータPD[2]をラッチすると共にBUF_Oに出力する。一方、BUF_Oは、t=T2’においてPD[1]をラッチすると共に図6の出力セレクタSEL_Oに出力し、t=T3’においてPD[2]をラッチすると共にSEL_Oに出力する。この場合、t=T1’では、次サイクルでBUF_Iのパケットデータを確実にBUF_Oに掃き出せ、BUF_Iが入力可能な状態となるため「空」となり、t=T3’では、BUF_Iが入力可能な状態であるため「空」となる。一方、t=T2’では、BUF_IとBUF_Oが埋まっており、次サイクルで必ずしもBUF_Oのパケットデータが掃き出せるとは限らないため「満」となる。したがって、図12において、t=T1では、R4が「満」となる。   In FIG. 16, BUF_I latches packet data PD [1] at time (clock cycle) t = T1 ′ and outputs it to BUF_O, and latches packet data PD [2] of the next cycle at t = T2 ′. Output to BUF_O. On the other hand, BUF_O latches PD [1] at t = T2 ′ and outputs it to the output selector SEL_O in FIG. 6, and latches PD [2] at t = T3 ′ and outputs it to SEL_O. In this case, at t = T1 ′, the packet data of BUF_I can be surely swept out to BUF_O in the next cycle, and since BUF_I can be input, it becomes “empty”. At t = T3 ′, BUF_I can be input Therefore, it is “empty”. On the other hand, at t = T2 ', BUF_I and BUF_O are buried, and the packet data of BUF_O is not necessarily swept out in the next cycle, and is “full”. Accordingly, in FIG. 12, R4 becomes “full” at t = T1.

図13は、図12のt=T1における図1の半導体装置の状況を示す説明図である。図13においては、前述したようにルータ回路R4が「満」であることに加えて、ルータ回路R2がクロックオフであるものとする。この場合、R0は、前述した経路探索に際して、1番目の経路(最短経路)となるR4を通過する経路も、2番目の経路となるR2を通過する経路も選択できないため、3番目の経路となるR1→R3→R6→R5の経路を選択し、R1に向けてパケットデータPD0を出力する。一方、R4は、前述した経路探索に際して、1番目の経路となるR5→R7の経路を選択し、R5に向けて1サイクル目のパケットデータPD4を出力する。   FIG. 13 is an explanatory diagram showing a state of the semiconductor device of FIG. 1 at t = T1 of FIG. In FIG. 13, in addition to the router circuit R4 being “full” as described above, the router circuit R2 is assumed to be clocked off. In this case, R0 cannot select the route that passes through R4 that is the first route (shortest route) nor the route that passes through R2 that is the second route in the above-described route search. The route R1 → R3 → R6 → R5 is selected, and the packet data PD0 is output to R1. On the other hand, R4 selects the route of R5 → R7 which is the first route in the route search described above, and outputs the packet data PD4 of the first cycle toward R5.

次いでt=T2において、R1は、BUF_IでパケットデータPD0をラッチする。R4は、BUF_Oで2サイクル目のパケットデータPD4をラッチすると共にR5に向けて2サイクル目のPD4を出力する。R5は、BUF_Iで1サイクル目のパケットデータPD4をラッチする。続いてt=T3において、R1は、BUF_OでパケットデータPD0をラッチすると共にこれに対する経路判定を行う。R5は、BUF_Oで1サイクル目のパケットデータPD4をラッチすると共にこれに対する経路判定を行い、BUF_Iで2サイクル目のパケットデータPD4をラッチする。これに伴い、R5は「満」となる。   Next, at t = T2, R1 latches the packet data PD0 with BUF_I. R4 latches packet data PD4 in the second cycle with BUF_O and outputs PD4 in the second cycle toward R5. R5 latches the packet data PD4 in the first cycle with BUF_I. Subsequently, at t = T3, R1 latches the packet data PD0 with BUF_O and determines the path for this. R5 latches the packet data PD4 in the first cycle with BUF_O, determines the path for this, and latches the packet data PD4 in the second cycle with BUF_I. Accordingly, R5 becomes “full”.

図14は、図12のt=T3における図1の半導体装置の状況を示す説明図である。図14においては、前述したようにR5が「満」であり、R2がクロックオフである。ここで、R1の経路テーブルにおいて、IP5(R5)に向けた1番目の経路(最短経路)がR3→R4→R5であるものとし、R1は、前述した経路探索に際してこの1番目の経路を選択できるため、R3に向けてパケットデータPD0を出力する。一方、R5は、前述した経路判定に際して1番目の経路となるR7の経路を選択し、R7に向けて1サイクル目のパケットデータPD4を出力する。   FIG. 14 is an explanatory diagram showing a state of the semiconductor device of FIG. 1 at t = T3 of FIG. In FIG. 14, R5 is “full” and R2 is clock-off as described above. Here, in the route table of R1, it is assumed that the first route (shortest route) toward IP5 (R5) is R3 → R4 → R5, and R1 selects this first route for the route search described above. Therefore, the packet data PD0 is output to R3. On the other hand, R5 selects the route of R7 which becomes the first route in the above route determination, and outputs the packet data PD4 of the first cycle toward R7.

続いてt=T4において、R3は、BUF_IでパケットデータPD0をラッチする。R5は、BUF_Oで2サイクル目のパケットデータPD4をラッチすると共にR7に向けて2サイクル目のPD4を出力する。R7は、BUF_Iで1サイクル目のパケットデータPD4をラッチする。次いで、t=T5において、R3は、BUF_OでパケットデータPD0をラッチすると共にこれに対する経路判定を行う。R7は、BUF_Oで1サイクル目のパケットデータPD4をラッチすると共に、BUF_Iで2サイクル目のパケットデータPD4をラッチする。これに伴い、R7は「満」となる。   Subsequently, at t = T4, R3 latches the packet data PD0 with BUF_I. R5 latches the packet data PD4 of the second cycle with BUF_O and outputs the PD4 of the second cycle toward R7. R7 latches the packet data PD4 in the first cycle with BUF_I. Next, at t = T5, R3 latches the packet data PD0 with BUF_O and determines the path for this. R7 latches packet data PD4 in the first cycle with BUF_O, and latches packet data PD4 in the second cycle with BUF_I. Accordingly, R7 becomes “full”.

図15は、図12のt=T5における図1の半導体装置の状況を示す説明図である。図15においては、前述したようにR7が「満」であり、R2がクロックオフである。ここで、R3の経路テーブルにおいて、IP5(R5)に向けた1番目の経路(最短経路)がR4→R5であるものとし、R3は、前述した経路探索に際してこの1番目の経路を選択できるため、R4に向けてパケットデータPD0を出力する。一方、R7は、BUF_Oでラッチした1サイクル目のパケットデータPD4をIP7に出力する。以降、詳細な説明は省略するが、図12に示すように、順次パケットデータの転送が行われ、IP0からIP5に向けたリクエストと、IP4からIP7に向けたリクエストが完了する。   FIG. 15 is an explanatory diagram showing a state of the semiconductor device of FIG. 1 at t = T5 of FIG. In FIG. 15, R7 is “full” and R2 is clock-off as described above. Here, in the route table of R3, it is assumed that the first route (shortest route) toward IP5 (R5) is R4 → R5, and R3 can select this first route in the route search described above. , R4, packet data PD0 is output. On the other hand, R7 outputs the packet data PD4 in the first cycle latched by BUF_O to IP7. Hereinafter, although detailed description is omitted, as shown in FIG. 12, the packet data is sequentially transferred, and the request from IP0 to IP5 and the request from IP4 to IP7 are completed.

なお、図12においては、説明を容易にするため、図6に示すローカルバッファ管理ユニットBUF_CTLが「満」を検出してからバッファ状態信号617を介してSOC_NAVIに通知し、SOC_NAVIから他ルータ監視信号616を介して他ルータ回路に通知するまでのクロックレイテンシを省略している。仮に、これに複数サイクル要する場合、実際には既に「満」となっているルータ回路([1]とする)に対して他のルータ回路([2]とする)がパケットデータを出力してしまうような状況が懸念される。ただし、この場合、ルータ回路[2]は、ルータ回路[1]から転送許可信号(GNT)を得られずに待つこととなるため、これによる時間的な損失は生じてしまうが、このルータ回路[2]のパケットデータを失うような事態とはならない。また、1つのルータ回路に対して複数のルータ回路等からの転送要求信号(REQ)が競合した場合も同様なことが言える。   In FIG. 12, for ease of explanation, after the local buffer management unit BUF_CTL shown in FIG. 6 detects “full”, the SOC_NAVI is notified via the buffer status signal 617, and the other router monitoring signal is sent from the SOC_NAVI. The clock latency until notification to another router circuit via 616 is omitted. If multiple cycles are required for this, the router circuit (referred to as [1]) actually outputs packet data to the router circuit (referred to as [1]) that is already “full”. I am concerned about such a situation. However, in this case, since the router circuit [2] waits without obtaining the transfer permission signal (GNT) from the router circuit [1], this causes a time loss. It does not happen that the packet data of [2] is lost. The same applies to a case where transfer request signals (REQ) from a plurality of router circuits compete with one router circuit.

以上、本実施の形態1によるネットワーク・オン・チップ(NoC)を備えた半導体装置を用いることで、代表的には、リアルタイムにルータ回路を経由する最適経路を決定できるようになるため、ネットワーク上のレイテンシの低減、またはスループットの向上が実現可能になる。なお、前述した図7〜図16の説明においては、リクエスト側の信号経路を想定して各種説明を行ったが、図5で説明したように、加えてレスポンス側の信号経路が独立に設けられている構成においては、リクエスト側とは独立にレスポンス側の信号経路においても図7〜図16で説明したような動作等が並行して行われることになる。   As described above, by using the semiconductor device provided with the network on chip (NoC) according to the first embodiment, it is possible to typically determine the optimum route via the router circuit in real time. It is possible to reduce the latency or improve the throughput. In the description of FIGS. 7 to 16 described above, various explanations have been made assuming the signal path on the request side. However, as described in FIG. 5, the signal path on the response side is additionally provided independently. In the configuration, the operations described with reference to FIGS. 7 to 16 are performed in parallel in the signal path on the response side independently of the request side.

(実施の形態2)
本実施の形態2では、実施の形態1で述べた半導体装置を用い、さらに、パケットデータ(インタフェース信号)に含まれるプライオリティ(PRI)を利用してパケットデータの転送を行う動作例について説明する。プライオリティ(PRI)とは、例えば、マスタコンポーネントがある限られたレイテンシ内で転送を行いたい場合、ルータ回路に対して緊急であることを通知する信号である。
(Embodiment 2)
In the second embodiment, an operation example in which the semiconductor device described in the first embodiment is used and packet data is transferred using priority (PRI) included in the packet data (interface signal) will be described. The priority (PRI) is, for example, a signal that notifies the router circuit that it is urgent when it is desired to perform transfer within a certain limited latency.

図17は、本発明の実施の形態2による半導体装置において、図1の半導体装置の一部を抜粋した概略図である。図17においては、以前のサイクルにおいてマスタコンポーネントIP0からの転送要求信号(REQ)を受け付けたルータ回路R0と、マスタコンポーネントIP1とが、あるサイクルにおいて同時にルータ回路R1に対して転送要求信号(REQ)を発行した場合の例を示している。IP0からのパケットデータPD0に含まれるPRIは「7」であり、IP1からのパケットデータPD1に含まれるPRIは「5」である。ここでは、PRIの数字が大きい方が優先度が高いものとする。   FIG. 17 is a schematic diagram of a portion of the semiconductor device of FIG. 1 extracted from the semiconductor device according to the second embodiment of the present invention. In FIG. 17, the router circuit R0 that has received the transfer request signal (REQ) from the master component IP0 in the previous cycle and the master component IP1 simultaneously transfer the transfer request signal (REQ) to the router circuit R1 in a certain cycle. An example of issuing is shown. The PRI included in the packet data PD0 from IP0 is “7”, and the PRI included in the packet data PD1 from IP1 is “5”. Here, it is assumed that the higher the PRI number, the higher the priority.

この場合、R1は、この2つの転送要求信号(REQ)を同時に受け付けることはできないため、図6に示したローカルバッファ管理ユニットBUF_CTLが、双方のPRIの大きさを調停回路ARBを用いて比較し、その結果、PD0の方を採用して、R0に向けて転送許可信号(GNT)を送信する。また、同時に、入力セレクタSEL_Iに指示を出し、PD0を入力バッファBUF_Iに転送する。一方、IP1は、転送許可信号(GNT)が得られなかったため、それが得られるまで何サイクルか待つことになる。   In this case, since R1 cannot accept these two transfer request signals (REQ) at the same time, the local buffer management unit BUF_CTL shown in FIG. 6 compares the sizes of both PRIs using the arbitration circuit ARB. As a result, the transfer permission signal (GNT) is transmitted to R0 by adopting PD0. At the same time, it instructs the input selector SEL_I to transfer PD0 to the input buffer BUF_I. On the other hand, since the transfer permission signal (GNT) is not obtained, IP1 waits for several cycles until it is obtained.

なお、仮にIP1が、あるコンポーネントからの転送要求を受け付けたルータ回路([3]とする)であり、更に複数の経路が存在するような場合、このルータ回路[3]に、あるサイクルにおいて転送許可信号(GNT)が得られなかった際には次サイクルにおいて再び図9に示したような経路探索を行うような機能を持たせるとよい。これによって、図17において、例えばPD0の転送に伴いルータ回路R1が「満」状態を当分維持するような状況になれば、この経路を回避することができ、また、仮にルータ回路[3]にとってR1を介する経路が1番目の経路(最短経路)でなかった場合に、最短経路に変更できる可能性がある。すなわち、レイテンシの低減やスループットの向上が期待できる。   If IP1 is a router circuit ([3]) that receives a transfer request from a certain component, and there are a plurality of paths, transfer to this router circuit [3] in a certain cycle. When the permission signal (GNT) is not obtained, it is preferable to provide a function for performing a route search again as shown in FIG. 9 in the next cycle. Accordingly, in FIG. 17, for example, if the router circuit R1 maintains the “full” state for the time being with the transfer of PD0, this route can be avoided, and for the router circuit [3], When the route via R1 is not the first route (shortest route), there is a possibility that the route can be changed to the shortest route. That is, a reduction in latency and an improvement in throughput can be expected.

以上、本実施の形態2の半導体装置を用いることで、実施の形態1で述べた各種効果に加えて、代表的には、緊急の情報をいち早く転送することができ、半導体装置の全体としての処理効率を高めることができる。   As described above, by using the semiconductor device of the second embodiment, in addition to the various effects described in the first embodiment, typically, urgent information can be transferred quickly, and the semiconductor device as a whole can be transferred. Processing efficiency can be increased.

(実施の形態3)
本実施の形態3では、実施の形態1で説明した図9とは異なる経路探索方法の一例について説明する。図9の経路探索方法は、判定対象となっている経路を選択するか否かを、その経路の経路長と1番目の経路(最短経路)の経路長との間の差分値に基づいて判定を行い、原則的に1番目の経路よりも先に進める観点で判定を行った。すなわち、例えば、1番目の経路の経路長が3で、2番目の経路の経路長が4であった場合、1番目の経路が通れなくとも2番目の経路でルータ回路を2つ進めれば残りの経路長が2となる。一方、本実施の形態3では、図9の場合と同様に経路長の差分値に基づいて判定を行い、原則的に1番目の経路と同等に進める観点で判定を行う。すなわち、例えば、1番目の経路の経路長が3で、2番目の経路の経路長が4であった場合、1番目の経路が通れなくとも2番目の経路でルータ回路を1つ進めれば残りの経路長が3となる。
(Embodiment 3)
In the third embodiment, an example of a route search method different from that in FIG. 9 described in the first embodiment will be described. The route search method in FIG. 9 determines whether or not to select a route to be determined based on the difference value between the route length of the route and the route length of the first route (shortest route). In principle, the determination was made from the viewpoint of proceeding ahead of the first route. That is, for example, if the route length of the first route is 3 and the route length of the second route is 4, even if the first route cannot pass, if the router circuit is advanced by 2 in the second route, The remaining path length is 2. On the other hand, in the third embodiment, the determination is made based on the difference value of the path length as in the case of FIG. 9, and the determination is made from the viewpoint of proceeding in the same way as the first path in principle. That is, for example, if the route length of the first route is 3 and the route length of the second route is 4, even if the first route cannot pass, the router circuit can be advanced by one on the second route. The remaining path length is 3.

図18は、本発明の実施の形態3による半導体装置において、図6のリクエスト処理回路RTCTL_REQの経路情報保持・算出回路RTCALが行う経路探索方法の一例を示すフロー図である。経路探索が開始されると(1801)、RTCALは、まず、1802、1803、1810aにおいて、図7に示した経路テーブルと、転送対象となるパケットデータに含まれるデスティネーションID(DST_ID)を参照し、そのコンポーネントIPに対応するルータ回路に到達するまでの1番目の経路について判定を行う。1802では、この1番目の経路のルータ経由回数をnとし、1803では、この1番目の経路について、1つ先のルータ回路が有効(「空」かつクロックオン)であるかを判定する。有効であった場合、1810aの自己ループ判定(詳細は図19で後述)へ移行し、これを合格した場合は、経路探索終了(1811)となる。一方、無効(「満」またはクロックオフ)であった場合、または1810aの自己ループ判定が不合格であった場合は、1804へ移行する。   FIG. 18 is a flowchart showing an example of a route search method performed by the route information holding / calculating circuit RTCAL of the request processing circuit RTCTL_REQ in FIG. 6 in the semiconductor device according to the third embodiment of the present invention. When the route search is started (1801), RTCAL first refers to the route table shown in FIG. 7 and the destination ID (DST_ID) included in the packet data to be transferred in 1802, 1803, and 1810a. Then, a determination is made for the first route until the router circuit corresponding to the component IP is reached. In 1802, the number of times that the first route passes through the router is n, and in 1803, it is determined whether the next router circuit is valid (“empty” and clock-on) for this first route. If it is valid, the process proceeds to 1810a self-loop determination (details will be described later with reference to FIG. 19). If this is passed, the route search ends (1811). On the other hand, if it is invalid (“full” or clock off), or if the self-loop determination of 1810a fails, the process proceeds to 1804.

1804において、RTCALは、図7に示した経路テーブルを参照して、2番目の経路が有るかを判定する。2番目の経路が無かった場合、1802に戻り、1サイクル後に再び1番目の経路について判定を行う。一方、2番目の経路が有った場合、この2番目の経路のルータ経由回数をmとし(1805)、この2番目の経路について、m=nの場合には1つ先までのルータ回路が有効であるかを判定し、m>nの場合には(m−n)つ先までのルータ回路が全て有効であるかを判定する(1806)。有効であった場合、1810bの自己ループ判定へ移行し、これを合格した場合は、経路探索終了(1811)となる。一方、いずれか一つが無効であった場合、または1810bの自己ループ判定が不合格であった場合は、1807へ移行する。   In step 1804, the RTCAL determines whether there is a second route with reference to the route table shown in FIG. If there is no second path, the process returns to 1802, and the first path is determined again after one cycle. On the other hand, if there is a second route, the number of times that the second route passes through the router is set to m (1805). It is determined whether it is valid. If m> n, it is determined whether all router circuits up to (mn) are valid (1806). If it is valid, the process shifts to the self-loop determination of 1810b. If this is passed, the route search ends (1811). On the other hand, if any one of them is invalid, or if the self-loop determination of 1810b fails, the process proceeds to 1807.

1807において、RTCALは、図7に示した経路テーブルを参照して、3番目の経路が有るかを判定する。3番目の経路が無かった場合、1802に戻り、1サイクル後に再び1番目の経路について判定を行う。一方、3番目の経路が有った場合、この3番目の経路のルータ経由回数をjとし(1808)、この3番目の経路について、j=nの場合には1つ先までのルータ回路が有効であるかを判定し、j>nの場合には(j−n)つ先までのルータ回路が全て有効であるかを判定する(1809)。有効であった場合、1810cの自己ループ判定へ移行し、これを合格した場合は、経路探索終了(1811)となる。一方、いずれか一つが無効であった場合、または1810cの自己ループ判定が不合格であった場合は、1802に戻り、1サイクル後に再び1番目の経路について判定を行う。なお、経路探索終了(1811)となった場合、RTCALは、当該経路に向けてパケットデータが出力されるように出力セレクタSEL_Oに対して指示を出す。   In 1807, the RTCAL determines whether there is a third route with reference to the route table shown in FIG. If there is no third route, the process returns to 1802, and the first route is determined again after one cycle. On the other hand, if there is a third route, j is the number of times the third route passes through the router (1808). It is determined whether it is valid. If j> n, it is determined whether all the router circuits up to (jn) ahead are valid (1809). If it is valid, the process shifts to the self-loop determination of 1810c, and when this is passed, the route search ends (1811). On the other hand, if any one of them is invalid, or if the self-loop determination of 1810c is unsuccessful, the process returns to 1802, and the determination for the first path is performed again after one cycle. When the route search ends (1811), RTCAL issues an instruction to the output selector SEL_O so that the packet data is output toward the route.

図18のフローを具体例で説明すると、例えば、図20に示すように、ルータ回路R0が、IP4(R4)をリクエストの転送先とするパケットデータを受けた場合、まず、経路長が1となる最短経路(R0→R4)について判定を行い、n=1とし、1つ先のルータ回路R4が有効であるかを判定する。仮に有効かつ自己ループ判定も合格の場合には、経路探索終了となり、当該サイクルにおいてR4に向けてパケットデータが出力される。一方、仮にR4が無効か自己ループ判定が不合格の場合、例えば、図21に示すように、RTCALは、2番目の経路について判定を行う。ここでは、2番目の経路は、経路長が3であるR0→R1→R3→R4の経路であるものとし、m=3として、1つ先のルータ回路R1と2つ先のルータ回路R3が有効であるかを判定する。仮に有効かつ自己ループ判定も合格の場合には、経路探索終了となり、当該サイクルにおいてR1に向けてパケットデータが出力される。   The flow of FIG. 18 will be described using a specific example. For example, as shown in FIG. 20, when the router circuit R0 receives packet data having IP4 (R4) as a request transfer destination, first, the path length is set to 1. The shortest path (R0 → R4) is determined, n = 1 is set, and it is determined whether the next router circuit R4 is valid. If it is valid and the self-loop determination is also passed, the route search ends, and packet data is output toward R4 in this cycle. On the other hand, if R4 is invalid or the self-loop determination is unsuccessful, for example, as shown in FIG. 21, RTCAL determines the second route. Here, it is assumed that the second route is a route of R0 → R1 → R3 → R4 having a route length of 3, and if m = 3, the first router circuit R1 and the second router circuit R3 are Determine if it is valid. If it is valid and the self-loop determination is also passed, the route search ends, and packet data is output toward R1 in the cycle.

図19は、図18のフローにおいて、その自己ループ判定処理1810a〜1810cの一例を示すフロー図である。図19において、自己ループ判定が開始されると(1901)、RTCALは、まず、1902において、転送対象となるパケットデータに含まれるソースID(SRC_ID)を参照し、図18で評価対象となっている経路上に、そのSRC_IDを持つコンポーネントIPに対応するルータ回路が含まれていないかを判定する。含まれていれば、自己ループが行われることになるため自己ループ判定不合格となり(1905)、含まれていなければ、1903へ移行する。1903においては、転送対象となるパケットデータに含まれるミドルID(MID_ID)を参照し、図18で評価対象となっている経路上に、このMID_IDを持つルータ回路が含まれていないかを判定する。含まれていれば、通過した経路を戻ることになるため自己ループ判定不合格となり(1905)、含まれていなければ、自己ループ判定合格となる(1904)。   FIG. 19 is a flowchart showing an example of the self-loop determination processing 1810a to 1810c in the flow of FIG. In FIG. 19, when the self-loop determination is started (1901), the RTCAL first refers to the source ID (SRC_ID) included in the packet data to be transferred in 1902 and becomes the evaluation target in FIG. It is determined whether a router circuit corresponding to the component IP having the SRC_ID is not included on the existing route. If it is included, a self-loop is performed, so that the self-loop determination fails (1905), and if it is not included, the process proceeds to 1903. In 1903, the middle ID (MID_ID) included in the packet data to be transferred is referred to, and it is determined whether or not a router circuit having this MID_ID is included in the path to be evaluated in FIG. . If it is included, the route that has passed is returned, so the self-loop determination fails (1905), and if it is not included, the self-loop determination passes (1904).

前述した図18の経路探索フローは、図9の経路探索フローと比較して、実際に採り得る経路の選択肢が広がるものの、自己ループに入る可能性が高くなる。すなわち、例えば、図21に示したように、パケットデータをR1に転送したサイクルでは、一時的に残りの経路長が長くなる(経路が遠ざかる)ため、仮にR1において、同様に遠ざかる経路が選択されると、遠回りした後に、再び同じ経路に戻ってくる可能性を否定できない。特に、半導体装置SOC内に多数のコンポーネントIPが存在し、それらの接続経路も複雑化した場合などでは、この自己ループの可能性が高くなる。そこで、図18のフローでは、図19に示すように自己ループ判定を行うことで、自己ループの可能性を低減し、前述した図9のフローでは、アルゴリズムの面から自己ループの可能性を低減している。更に、前述した図7の経路テーブルでは、各目的地毎の経路の選択肢数を経路長が短い順で3個以下とすることで、この選択肢数の点からも自己ループの可能性を低減している。   Compared with the route search flow of FIG. 9, the route search flow of FIG. 18 described above is more likely to enter a self-loop, although the choices of routes that can be actually taken are widened. That is, for example, as shown in FIG. 21, in the cycle in which the packet data is transferred to R1, the remaining path length is temporarily increased (the path is moved away). Then, after making a detour, the possibility of returning to the same route again cannot be denied. In particular, when there are a large number of component IPs in the semiconductor device SOC and their connection paths are complicated, the possibility of this self-loop increases. Therefore, in the flow of FIG. 18, the possibility of self-loop is reduced by performing self-loop determination as shown in FIG. 19, and in the flow of FIG. 9 described above, the possibility of self-loop is reduced in terms of the algorithm. is doing. Furthermore, in the route table of FIG. 7 described above, the number of route options for each destination is set to 3 or less in the order of shorter route length, thereby reducing the possibility of self-looping in terms of the number of options. ing.

以上、本実施の形態3の半導体装置を用いることで、実施の形態1で述べた各種効果に加えて、代表的には、実用上選択できる経路の幅を広げることが可能となる。   As described above, by using the semiconductor device according to the third embodiment, in addition to the various effects described in the first embodiment, typically, the width of a path that can be practically selected can be increased.

(実施の形態4)
本実施の形態4では、実施の形態1〜実施の形態3に示した半導体装置を、3次元積層して構成した半導体装置の一例について説明する。図22は、本発明の実施の形態3による半導体装置において、その構成の一例を示す概略図である。図22に示す半導体装置は、実施の形態1や実施の形態2で示した半導体装置SOCが3層積層して構成されている。最下位層は、ロジック機能を備えた半導体装置SOC1であり、中層層は、第1のメモリ機能(例えばDRAM)を備えた半導体装置SOC2であり、最上位層は、第2のメモリ機能(例えばSRAM)を備えた半導体装置SOC3となっている。
(Embodiment 4)
In this fourth embodiment, an example of a semiconductor device in which the semiconductor devices described in the first to third embodiments are three-dimensionally stacked will be described. FIG. 22 is a schematic diagram showing an example of the configuration of the semiconductor device according to the third embodiment of the present invention. The semiconductor device shown in FIG. 22 is configured by stacking three layers of the semiconductor device SOC shown in the first embodiment or the second embodiment. The lowest layer is a semiconductor device SOC1 having a logic function, the middle layer is a semiconductor device SOC2 having a first memory function (for example, DRAM), and the uppermost layer is a second memory function (for example, DRAM). The semiconductor device SOC3 is provided with an SRAM.

図23は、図22のより詳細な構成例を示した図である。ここでは、最下位層の半導体装置SOC1から中層層の半導体装置SOC2に転送を行う例を示している。SOC1は、複数のコンポーネント(例えば演算ユニット)およびそれに対応するルータ回路を備え、同様に、SOC2も、複数のコンポーネント(メモリユニット)およびそれに対応するルータ回路を備える。そして、SOC1内の複数のルータ回路の中の一部(ここでは3個)のルータ回路R10,R11,R12が、それぞれ、SOC2内の複数のルータ回路の中の一部(ここでは3個)のルータ回路R20,R21,R22に3次元接続されているものとする。   FIG. 23 is a diagram showing a more detailed configuration example of FIG. Here, an example is shown in which transfer is performed from the semiconductor device SOC1 in the lowest layer to the semiconductor device SOC2 in the middle layer. The SOC 1 includes a plurality of components (for example, arithmetic units) and router circuits corresponding thereto, and similarly, the SOC 2 includes a plurality of components (memory units) and router circuits corresponding thereto. A part (three in this case) of router circuits R10, R11, and R12 in the plurality of router circuits in the SOC1 is a part (three in this case) in the plurality of router circuits in the SOC2, respectively. Are three-dimensionally connected to the router circuits R20, R21, and R22.

また、SOC1、SOC2およびSOC3は、それぞれ、ルータ管理ユニットSOC_NAVI1、SOC_NAVI2およびSOC_NAVI3を備え、これらは互いに3次元接続されている。例えば、SOC_NAVI1は、図8に示したようにSOC1内の各ルータ回路の状況を監視し、同様に、SOC_NAVI2は、SOC2内の各ルータ回路の状況を監視する。さらに、例えば、SOC_NAVI1は、SOC_NAVI2との通信を行うことによって、SOC2内のR20,R21,R22の状況も監視することができる。加えて、SOC1内の各ルータ回路は、図7に示したような自身の経路テーブルに、目的地としてR20,R21,R22を含んでいる。   The SOC1, SOC2 and SOC3 are respectively provided with router management units SOC_NAVI1, SOC_NAVI2 and SOC_NAVI3, which are three-dimensionally connected to each other. For example, SOC_NAVI1 monitors the status of each router circuit in the SOC1 as shown in FIG. 8, and similarly, SOC_NAVI2 monitors the status of each router circuit in the SOC2. Furthermore, for example, SOC_NAVI1 can also monitor the status of R20, R21, and R22 in SOC2 by communicating with SOC_NAVI2. In addition, each router circuit in the SOC 1 includes R20, R21, and R22 as destinations in its route table as shown in FIG.

したがって、図23に示すように、例えば、SOC1内のルータ回路R13からSOC2にパケットデータPDを転送したい場合、R13は、自身の経路テーブルを参照すると共に、SOC_NAVI1からの各ルータ回路の状況を加味して、最適な経路を選択することができる。すなわち、SOC1内の各ルータ回路に加えてR20,R21,R22の状況も加味して、R10からR20にパケットデータPD13aを転送することや、R11からR21にパケットデータPD13bを転送することや、R12からR22にパケットデータPD13cを転送することができる。これによって、各層間で全てのルータ回路同士を接続する場合と比べてコストを低減でき、また、いずれか1箇所を接続する場合と比べて経路長を短くできると共にその出入り口も広がるため、積層された半導体チップ間の通信におけるレイテンシの低減やスループットの向上を低コストで図れる。   Therefore, as shown in FIG. 23, for example, when it is desired to transfer the packet data PD from the router circuit R13 in the SOC1 to the SOC2, the R13 refers to its own route table and considers the status of each router circuit from the SOC_NAVI1. Thus, the optimum route can be selected. In other words, in addition to the router circuits in the SOC1, the status of R20, R21, and R22 is also taken into consideration, the packet data PD13a is transferred from R10 to R20, the packet data PD13b is transferred from R11 to R21, and R12 The packet data PD13c can be transferred from R to R22. As a result, the cost can be reduced compared to the case where all router circuits are connected between the respective layers, and the path length can be shortened and the doorway can be expanded as compared with the case where any one of the circuits is connected. In addition, it is possible to reduce latency and improve throughput in communication between semiconductor chips at a low cost.

以上、本実施の形態4の半導体装置を用いることで、実施の形態1〜3で述べた各種効果に加えて、代表的には、低コストで高性能な半導体装置を実現可能となる。   As described above, by using the semiconductor device of the fourth embodiment, in addition to the various effects described in the first to third embodiments, typically, a high-performance semiconductor device can be realized at low cost.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。   As mentioned above, although the invention made by the present inventor has been specifically described based on the embodiments, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention.

本実施の形態による半導体装置は、NoC(ネットワーク・オン・チップ)を備えた半導体装置に適用して有益なものであり、1つの半導体チップに限らず複数の半導体チップからなる半導体装置に対しても適用可能である。   The semiconductor device according to the present embodiment is useful when applied to a semiconductor device provided with a NoC (network on chip), and is not limited to a single semiconductor chip but a semiconductor device including a plurality of semiconductor chips. Is also applicable.

本発明の実施の形態1による半導体装置において、その構成の一例を示すブロック図である。1 is a block diagram showing an example of the configuration of a semiconductor device according to a first embodiment of the present invention. 従来技術となるインターネットで一般的に知られている経路探索方式と、その利点および欠点を示した図である、It is a diagram showing a route search method generally known in the Internet as a prior art and its advantages and disadvantages. 図1の半導体装置において、その各ルータ回路を経由するパケットデータ(インタフェース信号)の基本構造例を示す説明図である。FIG. 2 is an explanatory diagram illustrating an example of a basic structure of packet data (interface signal) passing through each router circuit in the semiconductor device of FIG. 1. 図1の半導体装置において、マスタコンポーネントとスレーブコンポーネント間の通信方式の一例を模式的に示すものであり、(a)は転送要求の際の模式図、(b)は(a)の転送要求に対して応答を行う際の模式図である。FIG. 1 schematically shows an example of a communication method between a master component and a slave component in the semiconductor device of FIG. 1, wherein (a) is a schematic diagram when a transfer request is made, and (b) is a transfer request of (a). It is a schematic diagram at the time of responding with respect to it. 図1の半導体装置において、各ルータ回路の概要構成例を示すものであり、(a)はマスタ機能とスレーブ機能を備えたコンポーネントに対応するルータ回路の概略図、(b)はスレーブ機能を備えたコンポーネントに対応するルータ回路の概略図である。FIG. 1 shows a schematic configuration example of each router circuit in the semiconductor device of FIG. 1, (a) is a schematic diagram of a router circuit corresponding to a component having a master function and a slave function, and (b) is provided with a slave function. FIG. 6 is a schematic diagram of a router circuit corresponding to the components. 図5のルータ回路において、そのリクエスト処理回路の詳細な構成例を示すブロック図である。FIG. 6 is a block diagram illustrating a detailed configuration example of the request processing circuit in the router circuit of FIG. 5. (a),(b)は、図6のリクエスト処理回路において、それぞれ異なるルータ回路内の経路情報保持・算出回路が保持している経路テーブルの構造例を示した概略図である。(A), (b) is the schematic which showed the structural example of the path | route table which the path | route information holding | maintenance / calculation circuit in a different router circuit respectively hold | maintains in the request processing circuit of FIG. 図1の半導体装置において、そのルータ管理ユニットが保持する管理テーブルの一例を示す概略図である。FIG. 2 is a schematic diagram illustrating an example of a management table held by the router management unit in the semiconductor device of FIG. 1. 図6のリクエスト処理回路において、その経路情報保持・算出回路が行う経路探索方法の一例を示すフロー図である。FIG. 7 is a flowchart showing an example of a route search method performed by the route information holding / calculating circuit in the request processing circuit of FIG. 6. 図9の補足図である。FIG. 10 is a supplementary diagram of FIG. 9. 図9の他の補足図である。FIG. 10 is another supplementary diagram of FIG. 9. 図1の半導体装置において、その各クロックサイクル毎の動作例を示すものであり、各ルータ回路の入力バッファおよび出力バッファの状態遷移を示すものである。In the semiconductor device of FIG. 1, an operation example for each clock cycle is shown, and state transitions of the input buffer and the output buffer of each router circuit are shown. 図12のT1における図1の半導体装置の状況を示す説明図である。FIG. 13 is an explanatory diagram showing a state of the semiconductor device of FIG. 1 at T1 of FIG. 図12のT3における図1の半導体装置の状況を示す説明図である。It is explanatory drawing which shows the condition of the semiconductor device of FIG. 1 in T3 of FIG. 図12のT5における図1の半導体装置の状況を示す説明図である。It is explanatory drawing which shows the condition of the semiconductor device of FIG. 1 in T5 of FIG. 図6のリクエスト処理回路における入力バッファおよび出力バッファの遷移状態の一例を示す説明図である。FIG. 7 is an explanatory diagram illustrating an example of transition states of an input buffer and an output buffer in the request processing circuit of FIG. 6. 本発明の実施の形態2による半導体装置において、図1の半導体装置の一部を抜粋した概略図である。FIG. 5 is a schematic diagram illustrating a part of the semiconductor device of FIG. 1 in the semiconductor device according to the second embodiment of the present invention. 本発明の実施の形態3による半導体装置において、図6のリクエスト処理回路の経路情報保持・算出回路が行う経路探索方法の一例を示すフロー図である。FIG. 7 is a flowchart showing an example of a route search method performed by the route information holding / calculating circuit of the request processing circuit of FIG. 6 in the semiconductor device according to the third embodiment of the present invention. 図18のフローにおいて、その自己ループ判定処理の一例を示すフロー図である。FIG. 19 is a flowchart showing an example of the self-loop determination process in the flow of FIG. 18. 図18の補足図である。It is a supplementary figure of FIG. 図18の他の補足図である。FIG. 19 is another supplementary diagram of FIG. 18. 本発明の実施の形態4による半導体装置において、その構成の一例を示す概略図である。FIG. 10 is a schematic diagram showing an example of the configuration of a semiconductor device according to a fourth embodiment of the present invention. 図22のより詳細な構成例を示した図である。It is the figure which showed the more detailed structural example of FIG.

符号の説明Explanation of symbols

610 入力ポート
612a クロックオフ信号
612b クロックオン信号
613 スタンバイ指示信号
615 出力ポート
616 他ルータ監視信号
617 バッファ状態信号
ARB 調停回路
BUF バッファ
BUF_CTL ローカルバッファ管理ユニット
CK_CTL クロック制御回路
DAT データ
DST_ID デスティネーションID
EXT 拡張ヘッダ
GNT 転送許可信号
HD ヘッダ
IP コンポーネント
MID_ID ミドルID
OPC オペコード
PD パケットデータ
PKT_ID パケットID
PKT_SIZE パケットサイズ
PRI プライオリティ
R ルータ回路
R_DAT レスポンスデータ
R_GNT 転送応答許可信号
R_OPC レスポンスオペコード
REQ 転送要求信号
RES 転送応答信号
RTCAL 経路情報保持・算出回路
RTCTL_REQ リクエスト処理回路
RTCTL_RES レスポンス処理回路
SEL セレクタ
SOC 半導体装置
SOC_NAVI ルータ管理ユニット
SRC_ID ソースID
610 Input port 612a Clock off signal 612b Clock on signal 613 Standby instruction signal 615 Output port 616 Other router monitoring signal 617 Buffer status signal ARB Arbitration circuit BUF buffer BUF_CTL Local buffer management unit CK_CTL Clock control circuit DAT data DST_ID Destination ID
EXT extension header GNT transfer permission signal HD header IP component MID_ID Middle ID
OPC opcode PD packet data PKT_ID Packet ID
PKT_SIZE packet size PRI priority R router circuit R_DAT response data R_GNT transfer response permission signal R_OPC response opcode REQ transfer request signal RES transfer response signal RTCAL path information holding / calculating circuit RTCTL_REQ request processing circuit RTCTL_RES response processing circuit SEL selector SOC semiconductor control SOC selector Unit SRC_ID Source ID

Claims (13)

1つの半導体チップで実現され、
第1ルータ回路および第2ルータ回路を含む複数のルータ回路と、
前記第1ルータ回路に接続され、所定の処理を行う第1コンポーネントと、
前記第2ルータ回路に接続され、所定の処理を行う第2コンポーネントと、
前記第1ルータ回路と前記第2ルータ回路の間を前記複数のルータ回路の一部を介して接続する第1配線経路と、
前記第1ルータ回路と前記第2ルータ回路の間を前記複数のルータ回路の他の一部を介して接続する第2配線経路と、
前記複数のルータ回路に接続され、前記複数のルータ回路の有効・無効状態を命令サイクル毎に監視するルータ管理ユニットとを具備してなり、
前記第1ルータ回路は、前記第1コンポーネントから前記第2コンポーネントに向けた命令を受け付けた際に、前記ルータ管理ユニットから前記複数のルータ回路の有効・無効状態を入手し、これに基づいて前記第1配線経路か前記第2配線経路かを選択し、この選択した配線経路に前記命令に伴う信号群を転送することを特徴とする半導体装置。
Realized with one semiconductor chip,
A plurality of router circuits including a first router circuit and a second router circuit;
A first component connected to the first router circuit for performing predetermined processing;
A second component connected to the second router circuit for performing predetermined processing;
A first wiring path connecting between the first router circuit and the second router circuit via a part of the plurality of router circuits;
A second wiring path connecting the first router circuit and the second router circuit via another part of the plurality of router circuits;
A router management unit connected to the plurality of router circuits, and monitoring a valid / invalid state of the plurality of router circuits for each instruction cycle;
The first router circuit obtains valid / invalid states of the plurality of router circuits from the router management unit when receiving an instruction from the first component to the second component, and based on the obtained status, A semiconductor device comprising: selecting a first wiring path or the second wiring path, and transferring a signal group accompanying the command to the selected wiring path.
請求項1記載の半導体装置において、
前記複数のルータ回路のそれぞれは、前記命令に伴う信号群を一時的に保持するためのバッファ回路を備え、
前記ルータ管理ユニットは、前記複数のルータ回路の有効・無効状態として、前記複数のルータ回路内の前記バッファ回路におけるそれぞれの空きの有無を示すバッファ状態信号を第1記憶部に保持していることを特徴とする半導体装置。
The semiconductor device according to claim 1,
Each of the plurality of router circuits includes a buffer circuit for temporarily holding a signal group accompanying the instruction,
The router management unit holds a buffer status signal indicating whether each of the buffer circuits in the plurality of router circuits is available or not in the first storage unit as the valid / invalid status of the plurality of router circuits. A semiconductor device characterized by the above.
請求項2記載の半導体装置において、
前記複数のルータ回路のそれぞれは、更に、前記命令サイクル毎に前記バッファ回路に対してクロック信号を供給するクロック制御部を備え、
前記クロック制御部は、所定の条件を満たした際に前記クロック信号の供給を停止する第1機能を備え、
前記ルータ管理ユニットは、前記複数のルータ回路の有効・無効状態として、更に、前記複数のルータ回路内の前記第1機能で前記クロック信号の供給が停止しているか否かを示すクロック状態信号を前記第1記憶部に保持していることを特徴とする半導体装置。
The semiconductor device according to claim 2,
Each of the plurality of router circuits further includes a clock control unit that supplies a clock signal to the buffer circuit for each instruction cycle,
The clock control unit includes a first function for stopping the supply of the clock signal when a predetermined condition is satisfied,
The router management unit, as a valid / invalid state of the plurality of router circuits, further includes a clock status signal indicating whether or not the supply of the clock signal is stopped by the first function in the plurality of router circuits. The semiconductor device is held in the first storage unit.
請求項3記載の半導体装置において、
前記ルータ管理ユニットは、前記バッファ状態信号により前記複数のルータ回路内の前記バッファ回路の空きの割合を判断し、これに応じて前記複数のルータ回路内の前記第1機能に向けて前記クロック信号の供給を再開させるための出力を生成する第2機能を備えることを特徴とする半導体装置。
The semiconductor device according to claim 3.
The router management unit determines an empty ratio of the buffer circuit in the plurality of router circuits based on the buffer status signal, and accordingly, the clock signal toward the first function in the plurality of router circuits. A semiconductor device comprising a second function of generating an output for resuming the supply of.
請求項1記載の半導体装置において、
前記複数のルータ回路のそれぞれは、自身を起点として自身以外のルータ回路を目的地として、予め設計段階で定められる前記目的地に到達するまでの前記目的地毎の単数または複数の配線経路を第2記憶部に保持していることを特徴とする半導体装置。
The semiconductor device according to claim 1,
Each of the plurality of router circuits starts with a router circuit other than itself as a destination and sets a single or a plurality of wiring routes for each destination until reaching the destination determined in advance in the design stage. 2. A semiconductor device which is held in a storage unit.
請求項5記載の半導体装置において、
前記第2記憶部には、前記目的地毎の単数または複数の配線経路と共に、この配線経路毎の経路長として、前記目的地に到達するまでに経由するルータ回路の個数が保持されていることを特徴とする半導体装置。
The semiconductor device according to claim 5.
The second storage unit holds the number of router circuits through which the route reaches the destination as a route length for each wiring route along with one or a plurality of wiring routes for each destination. A semiconductor device characterized by the above.
請求項6記載の半導体装置において、
前記第1配線経路の前記経路長が前記第2配線経路の前記経路長よりも短い場合、
前記第1ルータ回路は、前記第1配線経路上で1番目に通過するルータ回路が有効である際には前記第1配線経路を選択し、前記第1配線経路上で1番目に通過するルータ回路が無効である際には、前記第2配線経路上で順に通過する、前記第1配線経路の前記経路長と前記第2配線経路の前記経路長との差分値を反映した数のルータ回路が全て有効である場合に前記第2配線経路を選択することを特徴とする半導体装置。
The semiconductor device according to claim 6.
When the path length of the first wiring path is shorter than the path length of the second wiring path,
The first router circuit selects the first wiring path when the router circuit that passes first on the first wiring path is valid, and the router that passes first on the first wiring path. When the circuit is invalid, a number of router circuits that sequentially pass on the second wiring path and reflect the difference value between the path length of the first wiring path and the path length of the second wiring path The semiconductor device is characterized in that the second wiring path is selected when all of the above are valid.
請求項6記載の半導体装置において、
前記第2記憶部には、予め定めた最大値以下となる数の経路が前記目的地毎に保持されており、前記最大値以下となる数の経路は、前記経路長が短い順で定められていることを特徴とする半導体装置。
The semiconductor device according to claim 6.
The second storage unit holds, for each destination, a number of routes that are equal to or less than a predetermined maximum value, and the number of routes that are equal to or less than the maximum value is determined in the order of shorter route length. A semiconductor device characterized by that.
請求項1記載の半導体装置において、
前記複数のルータ回路のそれぞれは、同一命令サイクルにおいて自身以外の2つ以上のルータ回路から前記命令を受けた際に、いずれを優先して受け付けるかを判定する調停回路を有することを特徴とする半導体装置。
The semiconductor device according to claim 1,
Each of the plurality of router circuits includes an arbitration circuit that determines which is preferentially received when the command is received from two or more router circuits other than itself in the same command cycle. Semiconductor device.
請求項1記載の半導体装置において、
前記半導体チップからなる第1半導体チップと、
前記半導体チップからなり、前記第1半導体チップに積層搭載された第2半導体チップを備え、
前記第1半導体チップ内に含まれる前記複数のルータ回路の少なくとも一つは、前記第2半導体チップ内に含まれる前記複数のルータ回路の少なくとも一つと接続され、
前記第1半導体チップ内に含まれる前記ルータ管理ユニットとなる第1ルータ管理ユニットは、前記第2半導体チップ内に含まれる前記ルータ管理ユニットとなる第2ルータ管理ユニットと接続され、前記第2ルータ管理ユニットを介して、前記第2半導体チップ内に含まれる前記複数のルータ回路の少なくとも一つの有効・無効状態を監視することを特徴とする半導体装置。
The semiconductor device according to claim 1,
A first semiconductor chip comprising the semiconductor chip;
A second semiconductor chip comprising the semiconductor chip and stacked and mounted on the first semiconductor chip;
At least one of the plurality of router circuits included in the first semiconductor chip is connected to at least one of the plurality of router circuits included in the second semiconductor chip;
The first router management unit serving as the router management unit included in the first semiconductor chip is connected to the second router management unit serving as the router management unit included in the second semiconductor chip, and the second router A semiconductor device, wherein a valid / invalid state of at least one of the plurality of router circuits included in the second semiconductor chip is monitored via a management unit.
第1ルータ回路および第2ルータ回路と、
前記第1ルータ回路と前記第2ルータ回路とを接続する第1配線経路上に設けられたn(n≧1)個のルータ回路と、
前記第1ルータ回路と前記第2ルータ回路とを接続する第2配線経路上に設けられたm(m≧n)個のルータ回路とを具備してなり、
前記第1ルータ回路から前記第2ルータ回路に向けてデータ転送を行う際に、前記第1ルータ回路は、前記第1配線経路上で1番目に通過するルータ回路が有効である場合は、前記第1配線経路を選択し、前記第1配線経路上で最初に通過するルータ回路が無効である場合は、前記第2配線経路上で順に通過する、(m−n)の値を反映した数のルータ回路が全て有効である場合に前記第2配線経路を選択することを特徴とする半導体装置。
A first router circuit and a second router circuit;
N (n ≧ 1) router circuits provided on a first wiring path connecting the first router circuit and the second router circuit;
M (m ≧ n) router circuits provided on a second wiring path connecting the first router circuit and the second router circuit,
When transferring data from the first router circuit to the second router circuit, the first router circuit is effective when the router circuit that passes first on the first wiring path is effective. When the first wiring path is selected and the router circuit that first passes on the first wiring path is invalid, the number reflecting the value of (mn) that sequentially passes on the second wiring path The second wiring path is selected when all of the router circuits are effective.
請求項11記載の半導体装置において、
前記第1ルータ回路は、前記第1配線経路上で最初に通過するルータ回路が無効である場合は、前記第2配線経路上で(m−n+1)番目までに通過するルータ回路が全て有効である場合に前記第2配線経路を選択することを特徴とする半導体装置。
The semiconductor device according to claim 11.
When the first router circuit that passes through the first wiring path is invalid, all the router circuits that pass through the (m−n + 1) th path on the second wiring path are valid. In some cases, the second wiring path is selected.
請求項11記載の半導体装置において、
前記第1ルータ回路は、前記第1配線経路上で最初に通過するルータ回路が無効である場合は、(m−n)=1の際には前記第2配線経路上で1番目に通過するルータ回路が有効である場合に前記第2配線経路を選択し、(m−n)>1の際には前記第2配線経路上で(m−n)番目までに通過するルータ回路が全て有効である場合に前記第2配線経路を選択することを特徴とする半導体装置。
The semiconductor device according to claim 11.
The first router circuit passes first on the second wiring path when (mn) = 1 when the first router circuit passing on the first wiring path is invalid. When the router circuit is valid, the second wiring path is selected. When (mn)> 1, all the router circuits passing through the second wiring path up to (mn) are valid. In this case, the second wiring path is selected.
JP2008281737A 2008-10-31 2008-10-31 Semiconductor device Pending JP2010109869A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008281737A JP2010109869A (en) 2008-10-31 2008-10-31 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008281737A JP2010109869A (en) 2008-10-31 2008-10-31 Semiconductor device

Publications (1)

Publication Number Publication Date
JP2010109869A true JP2010109869A (en) 2010-05-13

Family

ID=42298831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008281737A Pending JP2010109869A (en) 2008-10-31 2008-10-31 Semiconductor device

Country Status (1)

Country Link
JP (1) JP2010109869A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011082964A (en) * 2009-09-08 2011-04-21 Nec Corp Integrated circuit, and data transfer method
JP2011182393A (en) * 2010-03-02 2011-09-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Chip, and integrated circuit comprising such chip
JP5024493B1 (en) * 2012-03-01 2012-09-12 富士ゼロックス株式会社 Integrated circuit and electronic equipment
JP2014526859A (en) * 2011-09-29 2014-10-06 インテル コーポレイション Packet transmission using extension header

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011082964A (en) * 2009-09-08 2011-04-21 Nec Corp Integrated circuit, and data transfer method
JP2011182393A (en) * 2010-03-02 2011-09-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Chip, and integrated circuit comprising such chip
JP2014526859A (en) * 2011-09-29 2014-10-06 インテル コーポレイション Packet transmission using extension header
JP2015109679A (en) * 2011-09-29 2015-06-11 インテル コーポレイション Sending packets with expanded headers
JP5024493B1 (en) * 2012-03-01 2012-09-12 富士ゼロックス株式会社 Integrated circuit and electronic equipment

Similar Documents

Publication Publication Date Title
US9829962B2 (en) Hardware and software enabled implementation of power profile management instructions in system on chip
US8601423B1 (en) Asymmetric mesh NoC topologies
US10074053B2 (en) Clock gating for system-on-chip elements
US10324509B2 (en) Automatic generation of power management sequence in a SoC or NoC
US7472299B2 (en) Low power arbiters in interconnection routers
US9529400B1 (en) Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
TWI423036B (en) Method for selecting a direction on a bidirectional ring interconnect to transport packets, and machine readable medium having stored thereon a plurality of executable instructions
CN100472494C (en) System and method for implementing memory mediation of supporting multi-bus multi-type memory device
US10735335B2 (en) Interface virtualization and fast path for network on chip
US10218580B2 (en) Generating physically aware network-on-chip design from a physical system-on-chip specification
WO2014113646A1 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification
CN102035723A (en) On-chip network router and realization method
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
JP2010109869A (en) Semiconductor device
WO2005088912A1 (en) Integrated circuit and method for packet switching control
US20180183672A1 (en) System and method for grouping of network on chip (noc) elements
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
JP2006195948A (en) Bus adapter device
WO2004025478A1 (en) Data processor and processing method utilizing latency difference between memory blocks
US8127108B2 (en) Apparatus, system and method for prefetching data in bus system
US8164973B2 (en) Storage apparatus and method of controlling storage apparatus
US9928204B2 (en) Transaction expansion for NoC simulation and NoC design
JP2010050772A (en) Communicating system and transferring apparatus