[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2010140130A - Semiconductor device - Google Patents

Semiconductor device Download PDF

Info

Publication number
JP2010140130A
JP2010140130A JP2008313936A JP2008313936A JP2010140130A JP 2010140130 A JP2010140130 A JP 2010140130A JP 2008313936 A JP2008313936 A JP 2008313936A JP 2008313936 A JP2008313936 A JP 2008313936A JP 2010140130 A JP2010140130 A JP 2010140130A
Authority
JP
Japan
Prior art keywords
request
access
exclusive
access request
initiator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008313936A
Other languages
Japanese (ja)
Inventor
Itaru Nonomura
到 野々村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2008313936A priority Critical patent/JP2010140130A/en
Publication of JP2010140130A publication Critical patent/JP2010140130A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a semiconductor device excluding, before arbitration, an access request to be restrained upon an exclusive process, and of quickly determining an access request that should be accepted by arbitration. <P>SOLUTION: Address information or the like that is the subject of exclusive access is held in an exclusive information buffer (81) and address information that initiators (60, 61, 62) output is compared with the address information held. In this way, a pinpoint exclusive process targeting the address that is the subject of the exclusive address is achieved. Prior to an arbitration process, exclusion of an access request upon an exclusive process is carried out. Thus, the access request that should be restrained upon the exclusive process is prevented from undergoing an arbitration process, and the time from when the initiator makes an access request until the access request is accepted is reduced. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、バスインタフェースにおける、共有リソースに対するアクセスの排他処理に関し、例えば半導体集積回路化されたマイクロコンピュータ、システム・オン・チップ(SOC)化されたデータプロセッシングデバイス、チップセット、マルチチップを用いてシステム・イン・パッケージ化されたデータ処理モジュールなどの半導体装置におけるスプリットトランザクションによるパケット交換方式のバスインタフェースに適用して有効な技術に関する。   The present invention relates to exclusive processing of access to a shared resource in a bus interface, and uses, for example, a microcomputer integrated in a semiconductor integrated circuit, a data processing device in a system-on-chip (SOC), a chipset, and a multichip. The present invention relates to a technology that is effective when applied to a packet-switched bus interface by split transaction in a semiconductor device such as a system-in-package data processing module.

バスインタフェースには、バスアクセスのリクエスト中は他のリクエストを受け付けないというインターロック方式のほかに、スプリットトランザクションによるパケット交換方式がある。この方式は、アクセスを要求する回路が、アクセス要求の内容を含むリクエストパケットを、アクセス要求に応答する回路に送信し、アクセス要求に応答する回路は応答内容を含むレスポンスパケットを、アクセスを要求した回路に送信する、という処理を行なうものである。リクエストパケットとレスポンスパケットを含む一連の処理をトランザクションと称し、1つのトランザクションをパケットの転送毎に分離して、バスアクセス効率を向上させることができる。アクセスを要求する回路をイニシエータ、アクセス要求に答える回路をターゲットと呼ぶ。回路の種類によってはイニシエータとターゲットの双方の機能を備えるものもある。イニシエータとターゲットはリクエストパケットとレスポンスパケットの中継を行うパケットルータがある。パケットルータは、一つのターゲットに対して複数のイニシエータがアクセスを要求したときの調停、共有リソースなどに対する排他制御のために後のアクセス要求を無効化する制御などを行う。リソース単位で排他処理を行なう場合、排他処理中には、排他処理要求が受理されたイニシエータ以外のイニシエータによる、排他的アクセスの実行対象であるターゲットへのアクセスを抑止するという、プロトコルが従来から採用さてれている。例えば、ターゲットがメモリコントローラであれば,排他処理中はメモリに対する他イニシエータのアクセスが全て抑止される。   The bus interface includes a packet exchange method using a split transaction in addition to an interlock method in which other requests are not accepted during a bus access request. In this method, a circuit that requests access transmits a request packet including the contents of the access request to a circuit that responds to the access request, and the circuit that responds to the access request requests a response packet including the response contents. The process of transmitting to the circuit is performed. A series of processing including a request packet and a response packet is referred to as a transaction, and one transaction is separated for each packet transfer, thereby improving the bus access efficiency. A circuit that requests access is called an initiator, and a circuit that answers the access request is called a target. Some types of circuits have both initiator and target functions. The initiator and target have a packet router that relays request packets and response packets. The packet router performs arbitration when a plurality of initiators request access to one target, and performs control to invalidate subsequent access requests for exclusive control of shared resources. When exclusive processing is performed in units of resources, a protocol has been adopted in which during the exclusive processing, an initiator other than the initiator that received the exclusive processing request is prevented from accessing the target that is the exclusive access execution target. That's right. For example, if the target is a memory controller, all other initiator accesses to the memory are inhibited during the exclusion process.

特許文献1には、マルチCPUのシステムにおいて共有リソースに対するアクセスの排他処理について記載がある。これによれば、CPU単位の排他制御ではなく、CPUが排他処理を要求したとき、当該CPUのアクセス対象領域について他のCPUからのアクセス要求を排他する制御を行う。   Japanese Patent Application Laid-Open No. 2004-228561 describes an exclusive processing for access to a shared resource in a multi-CPU system. According to this, instead of exclusive control for each CPU, when the CPU requests exclusive processing, control is performed to exclude an access request from another CPU for the access target area of the CPU.

特開平5−225117号公報JP-A-5-225117

今後普及が見込まれるマルチコアSOC(一つのチップに複数のCPUを搭載するSOC)では、シングルコアSOC(一つのチップに単一のCPUを搭載するSOC)に比して排他処理が多用されることが考えられるため、ターゲット単位の排他処理では、排他処理に伴う転送性能(バスアクセス性能)の低下が大きいため、排他処理単位の縮小が必要であると考えられる。特許文献1ではその点が考慮され、アドレス領域単位の排他制御を行う。   In the multi-core SOC (SOC in which a plurality of CPUs are mounted on one chip) which is expected to spread in the future, exclusive processing is used more frequently than in the case of a single-core SOC (SOC in which a single CPU is mounted on one chip). Therefore, in the exclusive processing of the target unit, it is considered that the reduction of the exclusive processing unit is necessary because the transfer performance (bus access performance) is greatly reduced due to the exclusive processing. In Patent Document 1, this point is taken into consideration, and exclusive control is performed in units of address areas.

しかしながら、特許文献1に記載の技術ではアクセス要求に対して先に優先度やアクセス要求の競合状態に基づいてバス調停部で許可候補信号を生成し、許可候補のアクセス要求に係るアドレス情報をセレクタで選択し、選択したアドレス情報が、先に受理された排他制御対象のアドレス領域に重なるかが判別され、重なる場合には、先に許可候補としたCPUにバス使用不許可を返す、という制御を行う。要するに、アクセス要求が排他処理によって抑止されるべきものか否かが、調停処理の後に判明する。このため、特許文献1に記載の技術では、排他処理に伴って抑止されるべきアクセス要求を調停前に排除できず、調停によって受理されるべきアクセス要求を早く確定することができない。このため、アクセス要求に対する処理効率が低く、この点においてデータ処理の高速化を阻む結果となる。   However, in the technique described in Patent Document 1, a permission candidate signal is first generated in the bus arbitration unit based on the priority and the access request competition state with respect to the access request, and address information related to the access request of the permission candidate is selected. Control is performed to determine whether the selected address information overlaps the address area of the exclusive control target that has been accepted earlier, and if so, the bus use non-permission is returned to the CPU that is the first permission candidate. I do. In short, it becomes clear after the arbitration process whether the access request should be suppressed by the exclusion process. For this reason, with the technique described in Patent Document 1, the access request that should be suppressed along with the exclusion process cannot be eliminated before arbitration, and the access request that should be accepted by arbitration cannot be determined quickly. For this reason, the processing efficiency with respect to the access request is low, and this results in hindering the speeding up of data processing.

また、スプリットトランザクションによるパケット交換方式のバスインタフェースでは、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待たされるだけであるが、特許文献1に記載の技術をそれに適用する場合を想定すると、アクセス要求が受理されないCPUなどのイニシエータにはバス使用不許可の信号が返されることになり、イニシエータは単に待つだけでは済まされず、再度アクセス要求を行うなどの処理が必要になり、イニシエータの実装が通常よりも複雑になる。   In addition, in the packet-switched bus interface using split transactions, the initiator simply waits even when an access request involving an exclusive process is temporarily suppressed. However, when the technique described in Patent Document 1 is applied thereto. Assuming that, an initiator such as a CPU that does not accept an access request will be returned with a bus non-permission signal, and the initiator will not simply wait, but will need to perform a process such as making an access request again, Initiator implementation is more complicated than usual.

本発明の目的は、排他処理に伴って抑止されるべきアクセス要求を調停前に排除することができ、調停によって受理されるべきアクセス要求を早く確定することができる半導体装置を提供することにある。   An object of the present invention is to provide a semiconductor device that can eliminate an access request to be suppressed along with exclusion processing before arbitration, and can quickly determine an access request to be accepted by arbitration. .

本発明の別の目的は、アクセス要求に対する処理効率が高く、この点においてデータ処理の高速化に寄与することができる半導体装置を提供することにある。   Another object of the present invention is to provide a semiconductor device that has high processing efficiency with respect to access requests and can contribute to speeding up of data processing in this respect.

本発明の更に別の目的は、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待つだけで済まされ、イニシエータの実装が容易な半導体装置を提供することにある。   Still another object of the present invention is to provide a semiconductor device in which the initiator can simply wait and the initiator can be easily mounted even when an access request involving an exclusive process is temporarily suppressed.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   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.

本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。   The following is a brief description of an outline of typical inventions disclosed in the present application.

すなわち、排他的アクセスの対象となるアドレス情報などを保持し、イニシエータが出力するアドレス情報と前記保持されたアドレス情報を比較する。これにより、排他的アクセスの対象であるアドレスを対象とするピンポイントの排他処理を実現する。   That is, the address information to be exclusively accessed is stored, and the address information output from the initiator is compared with the stored address information. This realizes pinpoint exclusion processing for the address that is the target of exclusive access.

そして、調停処理に先立って排他処理に伴うアクセス要求の排除を行う。このため、排他処理に伴って抑止されるべきアクセス要求が調停処理されることを防止し、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短くすることが出来る。   Prior to the arbitration process, the access request associated with the exclusion process is eliminated. For this reason, it is possible to prevent an access request that should be suppressed along with the exclusion process from being arbitrated, and to shorten the time from when the initiator makes an access request until the access request is accepted.

また、本発明では,階層的インターコネクトを構成する複数のパケットルータの全てに上記排他処理のための回路を搭載する。これにより、ハングアップ(アクセス要求が処理できなくなる状態に陥ること)を発生させることなく、ピンポイントで排他処理を行うことができ、しかもこのピンポイントの排他処理に伴って排他処理によって抑止されないアクセス要求を排他的処理を必要とするアクセス要求の完了まで抑止することがない。   In the present invention, the exclusive processing circuit is mounted on all of the plurality of packet routers constituting the hierarchical interconnect. As a result, it is possible to perform exclusive processing at the pinpoint without causing a hang-up (falling into a state where the access request cannot be processed), and access that is not suppressed by the exclusive processing along with this pinpoint exclusive processing. The request is not suppressed until the completion of the access request that requires exclusive processing.

また、本発明では、排他的アクセスに対して不正なアクセスがなされたことを検出して割り込みを発生する。これにより、ソフトウエアやハードウエアのデバッグが容易になる。   Further, according to the present invention, an interrupt is generated upon detecting that an unauthorized access is made to an exclusive access. This facilitates software and hardware debugging.

本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

すなわち、排他処理に伴って抑止されるべきアクセス要求を調停前に排除することができ、調停によって受理されるべきアクセス要求を早く確定することができる。   That is, the access request that should be suppressed along with the exclusion process can be eliminated before the arbitration, and the access request that should be accepted by the arbitration can be determined quickly.

アクセス要求に対する処理効率が高く、この点においてデータ処理の高速化に寄与することができる。   The processing efficiency for the access request is high, and in this respect, it can contribute to speeding up of data processing.

排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待つだけで済まされ、イニシエータの実装が容易である。   Even when an access request involving exclusive processing is temporarily suppressed, the initiator can simply wait and the initiator can be easily implemented.

1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. First, an outline of a typical embodiment of the invention disclosed in the present application will be described. Reference numerals in the drawings referred to in parentheses in the outline description of the representative embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.

〔1〕《アドレス比較による排他制御》
本発明に係る半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有する。前記パケットルータのリクエストリソース(80)は、排他情報バッファ(81)、比較回路(90,91,92)、アクセス要求無効化回路(100,101,102)、及び調停回路(80)を有する。排他情報バッファは、排他処理要求を含むリクエストパケット(REQPCKT)を受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する。比較回路は、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する。アクセス要求無効化回路は、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する。調停回路は、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う。
[1] << Exclusive control by address comparison >>
A semiconductor device according to the present invention responds to an access request with a plurality of initiators capable of requesting access, a plurality of targets capable of responding to access, and a request packet provided from the initiator requesting access. A request resource that performs control given to the target, and a packet router that includes a response resource that performs control to return a response packet given from the target responding to the access request to the initiator of the access request source. The request resource (80) of the packet router includes an exclusive information buffer (81), comparison circuits (90, 91, 92), an access request invalidation circuit (100, 101, 102), and an arbitration circuit (80). The exclusive information buffer holds exclusive information indicating that there is an exclusive processing request from the request source and access information included in the request packet when a request packet (REQPCKT) including an exclusive processing request is received. The comparison circuit compares the information stored in the exclusive information buffer with the access information included in the request packet given from the initiator, and outputs the comparison result. The access request invalidation circuit invalidates an access request that is different from the accepted access request accompanied by the exclusive processing request by maximizing the range in which the access target addresses overlap based on the comparison result by the comparison circuit. The arbitration circuit inputs the access request validated by the access request invalidation circuit, arbitrates for the conflicting access request, accepts one access request, and requests corresponding to the accepted access request Performs control to give packets to the target.

上記によれば、排他的アクセスの対象となるアドレス情報などのアクセス情報を保持し、イニシエータが出力するアクセス情報と前記保持されたアクセス情報を比較し、アクセス対象アドレスが重なる範囲を最大限として他のアクセス要求を無効化するから、ターゲット単位よりも細かなアドレスを対象とするピンポイントの排他処理を実現することができる。   According to the above, access information such as address information subject to exclusive access is held, the access information output by the initiator is compared with the held access information, and the range where the access target addresses overlap is maximized. Since the access request is invalidated, pinpoint exclusive processing for an address finer than the target unit can be realized.

そして、調停回路の処理に先立って排他処理要求を伴うアクセス要求に対する選択的な無効化の処理を行うから、排他的な制御により抑止されるべきアクセス要求が調停回路による調停処理の対象にはされず、この点において、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短縮するのに寄与する。   Prior to the processing of the arbitration circuit, selective invalidation processing for an access request accompanied by an exclusive processing request is performed, so that an access request that should be suppressed by exclusive control is targeted for arbitration processing by the arbitration circuit. However, this point contributes to shortening the time from when the initiator makes an access request until the access request is accepted.

〔2〕《調停回路によるグラント信号の処理》
項1の半導体装置において、例えば前記調停回路は、前記イニシエータ毎にグラント信号(GNT)を出力し、前記イニシエータからアクセス要求を入力した場合、前記アクセス要求無効化回路によりそのアクセス要求が有効とされ、かつ、調停によって前記イニシエータからのアクセス要求を受理した場合に前記グラント信号をアサート状態とし、前記アクセス要求無効化回路によりそのアクセス要求が無効とされた場合や、調停によって前記イニシエータからのアクセス要求を受理しない場合には、前記グラント信号をディアサート状態とする。
[2] << Grant signal processing by arbitration circuit >>
In the semiconductor device of Item 1, for example, when the arbitration circuit outputs a grant signal (GNT) for each initiator and an access request is input from the initiator, the access request is validated by the access request invalidation circuit. And when an access request from the initiator is accepted by arbitration, the grant signal is asserted, and the access request is invalidated by the access request invalidation circuit, or an access request from the initiator by arbitration Is not asserted, the grant signal is deasserted.

調停回路は、アクセス要求の無効化に関わらず、イニシエータからのアクセス要求を受理したときにのみグラント信号をアサートするから、これを受けるイニシエータは、アクセス要求の後、これが受理されたか無効化されたかを感知することなく、グラント信号のアサートを待てばよい。   Regardless of the invalidation of the access request, the arbitration circuit asserts the grant signal only when the access request from the initiator is accepted, so that the initiator that receives this asserts whether it has been accepted or invalidated after the access request. Without waiting for the grant signal to be asserted.

したがって、スプリットトランザクションによるパケット交換方式のバスインタフェースでは、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待てばよく、再度アクセス要求を行うなどの処理は不要であり、ピンポイントの無効化を採用してもイニシエータの実装は容易である。   Therefore, in the packet-switched bus interface by split transaction, even if an access request accompanied by an exclusive process is temporarily suppressed, the initiator only has to wait, and there is no need for a process such as making an access request again. Even if the invalidation is adopted, the initiator can be easily implemented.

〔3〕《イニシエータによるグラント信号の把握》
項2の半導体装置において、前記イニシエータは、例えばアクセスを要求した場合、入力されるグラント信号がディアサート状態であることによってアクセス要求が受理されていないと判定し、入力されるグラント信号がアサート状態であることにより、アクセス要求が受理されたと判定する。
[3] << Understanding grant signal by initiator >>
In the semiconductor device according to Item 2, for example, when the initiator requests access, the initiator determines that the access request is not accepted because the input grant signal is in the deasserted state, and the input grant signal is in the asserted state. Therefore, it is determined that the access request has been accepted.

〔4〕《アドレス比較による排他制御》
項1の半導体装置において、前記排他情報バッファが保持するアクセス情報は例えばアクセス対象アドレス情報であり、この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるイニシエータからの新たなアクセス要求を無効化する(図5)。
[4] << Exclusive control by address comparison >>
In the semiconductor device according to item 1, the access information held by the exclusive information buffer is, for example, access target address information. In this case, the access request invalidation circuit is accepted by maximizing a range where the access target addresses overlap. A new access request from an initiator different from the access request accompanying the exclusive processing request is invalidated (FIG. 5).

〔5〕《プロセスIDの比較による排他制御》
項1の半導体装置において、前記排他情報バッファが保持するアクセス情報は、例えばアクセス対象アドレス情報とそのアクセス対象アドレス情報を用いるプロセスのプロセスID情報であり、この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する。同じイニシエータによる排他的アクセス要求に対してプロセスIDを考慮してアクセス要求の無効化に対処することができる。
[5] << Exclusive control by process ID comparison >>
In the semiconductor device according to Item 1, the access information held by the exclusive information buffer is, for example, access target address information and process ID information of a process using the access target address information. In this case, the access request invalidation circuit includes: An access request having a process ID different from that of an access request accompanied by an accepted exclusive processing request is invalidated by maximizing a range in which the access target addresses overlap. For exclusive access requests by the same initiator, it is possible to deal with invalidation of access requests in consideration of the process ID.

〔6〕《排他情報バッファのエントリ数》
項5の半導体装置において、前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する。要するに、前記排他情報バッファが保持するアクセス情報には例えばアクセス対象アドレス情報とそのアクセス対象アドレス情報を用いるプロセスのプロセスID情報を含む。この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する。1つのイニシエータが複数の排他処理要求を伴うアクセスを要求して並列的に受理される場合にもアクセス要求の無効化に対処することができる。
[6] << Number of entries in exclusive information buffer >>
6. The semiconductor device according to item 5, wherein the exclusive information buffer has a storage capacity capable of storing access information for each access request accompanied by an exclusive processing request that can be received in parallel by the arbitration circuit. In short, the access information held by the exclusive information buffer includes, for example, access target address information and process ID information of a process using the access target address information. In this case, the access request invalidation circuit invalidates an access request having a process ID different from that of an access request accompanied by an accepted exclusive processing request, while maximizing a range where the access target addresses overlap. Even when one initiator requests access with a plurality of exclusive processing requests and is accepted in parallel, invalidation of the access request can be dealt with.

〔7〕《アドレス情報及びバイトイネーブル比較による排他制御》
項1の半導体装置において、前記排他情報バッファが保持するアクセス情報は、例えば複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報(BE)である。このとき、前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する。これにより、アクセスアドレスを先頭アドレスとバイトイネーブルによって特定する場合にもアクセス要求の無効化に対処することができる(図6)。
[7] << Exclusive control by address information and byte enable comparison >>
In the semiconductor device according to Item 1, the access information held by the exclusive information buffer includes, for example, access target address information indicating a head of a plurality of bytes to be accessed, and a byte indicating the validity within a plurality of bytes of the access target range in bytes. This is enable information (BE). At this time, the access request invalidation circuit is accepted by maximizing the range that overlaps the valid address in the byte enable information within the access target range of multiple bytes starting from the address of the access target address information. The access request different from the access request with the exclusive processing request is invalidated. This makes it possible to cope with invalidation of the access request even when the access address is specified by the head address and byte enable (FIG. 6).

〔8〕《プロセスIDの比較による排他制御》
項1の半導体装置において、前記排他情報バッファが保持するアクセス情報は、例えば、複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報と、アクセス対象のアドレス情報を用いるプロセスのプロセスID情報である。このとき、前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する。これにより、アクセスアドレスを先頭アドレスとバイトイネーブルによって特定する場合を考慮し、且つ、同じイニシエータによる排他的アクセス要求に対してプロセスIDを考慮して、アクセス要求の無効化に対処することができる。
[8] << Exclusive control by process ID comparison >>
In the semiconductor device according to Item 1, the access information held by the exclusive information buffer includes, for example, access target address information indicating a head of a plurality of bytes to be accessed and validity within a plurality of bytes to be accessed in bytes. This is process ID information of a process using byte enable information and address information to be accessed. At this time, the access request invalidation circuit is accepted by maximizing the range that overlaps the valid address in the byte enable information within the access target range of multiple bytes starting from the address of the access target address information. An access request having a process ID different from that of the access request accompanied by the exclusive processing request is invalidated. As a result, it is possible to deal with invalidation of the access request in consideration of the case where the access address is specified by the head address and byte enable, and in consideration of the process ID for the exclusive access request by the same initiator.

〔9〕《排他情報バッファのエントリ数》
項8の半導体装置において、前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する。要するに、前記排他情報バッファが保持するアクセス情報には例えばアクセス対象先頭アドレス、バイトイネーブル情報及びそのアクセス要求に係るプロセスのプロセスID情報を含む。この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する。1つのイニシエータが複数の排他的処理のアクセスを要求して並列的に受理される場合にもアクセス要求の無効化に対処することができる。
[9] << Number of entries in exclusive information buffer >>
In the semiconductor device of Item 8, the exclusive information buffer has a storage capacity capable of storing access information for each access request accompanied by an exclusive processing request that can be received in parallel by the arbitration circuit. In short, the access information held by the exclusive information buffer includes, for example, a head address to be accessed, byte enable information, and process ID information of a process related to the access request. In this case, the access request invalidation circuit invalidates an access request having a process ID different from that of an access request accompanied by an accepted exclusive processing request, while maximizing a range where the access target addresses overlap. Even when one initiator requests access to a plurality of exclusive processes and is accepted in parallel, invalidation of the access request can be dealt with.

〔10〕《排他制御レジスタ》
項1の半導体装置において、排他制御の対象とするアクセスの属性を保持する排他制御レジスタ(27)を更に有する。前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する。アクセス要求の無効化条件を排他制御レジスタにプログラマブルに設定することが可能になる(図7)。
[10] << Exclusive control register >>
The semiconductor device according to Item 1 further includes an exclusive control register (27) that holds an attribute of access to be subjected to exclusive control. The access request invalidation circuit, based on the comparison result by the comparison circuit and the access attribute information held in the exclusive control register, accepts an exclusive processing request that has been accepted with a maximum range of overlapping addresses to be accessed. An access request different from the accompanying access request is invalidated. It becomes possible to set the access request invalidation condition in the exclusive control register in a programmable manner (FIG. 7).

〔11〕《排他制御レジスタに設定されるアクセス属性》
項10の半導体装置において、前記排他制御レジスタには、アクセス属性として、例えばアクセス方向が設定される。前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なり且つ前記排他制御レジスタに設定されたアクセス方向へのアクセス要求を無効化する。特定のアクセス方向に対してアクセス要求を無効化することができる。
[11] << Access attribute set in exclusive control register >>
In the semiconductor device of item 10, for example, an access direction is set in the exclusive control register as an access attribute. The access request invalidation circuit, based on the comparison result by the comparison circuit and the access attribute information held in the exclusive control register, accepts an exclusive processing request that has been accepted with a maximum range of overlapping addresses to be accessed. Unlike the accompanying access request, the access request in the access direction set in the exclusive control register is invalidated. An access request can be invalidated for a specific access direction.

〔12〕《排他制御レジスタに設定されるアクセス属性》
項10の半導体装置において、前記排他制御レジスタには、アクセス属性として、例えばイニシエータの識別情報が設定される。前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異り且つ前記排他制御レジスタに設定されたイニシエータからのアクセス要求を無効化する。特定のイニシエータに限ってアクセス要求を無効化することができる。
[12] << Access attribute set in exclusive control register >>
In the semiconductor device of Item 10, for example, identification information of an initiator is set in the exclusive control register as an access attribute. The access request invalidation circuit, based on the comparison result by the comparison circuit and the access attribute information held in the exclusive control register, accepts an exclusive processing request that has been accepted with a maximum range of overlapping addresses to be accessed. Different from the accompanying access request, the access request from the initiator set in the exclusive control register is invalidated. An access request can be invalidated only for a specific initiator.

〔13〕《排他処理に競合するアクセスに関するデバッグ支援》
項1の半導体装置は、前記イニシエータとして機能し得る複数のCPUと、前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備える。前記メモリは前記複数のCPUの共有メモリである。前記パケットルータは、一のCPUから前記共有メモリに対する排他的な処理の要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを、前記割り込みコントローラに通知する。CPUによる排他処理に競合するライトアクセスのあったことを割込みを通じてデバッグ支援のための装置に通知することができる。
[13] << Debugging support for accesses competing for exclusive processing >>
The semiconductor device according to Item 1 includes a plurality of CPUs that can function as the initiator, a memory that can function as the target, and an interrupt controller. The memory is a shared memory of the plurality of CPUs. When the packet router receives a request packet accompanied by an exclusive processing request for the shared memory from one CPU, the access request accompanied by the accepted exclusive processing request is within a range overlapping with the access target address. The interrupt controller is notified that there is a different write access request. It is possible to notify a device for debugging support through an interrupt that there has been a write access competing for exclusive processing by the CPU.

〔14〕《排他処理に競合するアクセスに関するデバッグ支援》
項1の半導体装置は、前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備える。前記メモリは複数のイニシエータの共有メモリである。前記パケットルータは、一のイニシエータから前記共有メモリに対する排他処理要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを前記割り込みコントローラに通知する。一のイニシエータによる排他処理に競合するライトアクセスのあったことを割込みを通じてデバッグ支援のための装置に通知することができる。
[14] << Debugging support for accesses competing for exclusive processing >>
The semiconductor device according to Item 1 includes a memory that can function as the target and an interrupt controller. The memory is a shared memory of a plurality of initiators. When the packet router receives a request packet accompanied by an exclusive processing request for the shared memory from a single initiator, the write access is different from the accepted access request accompanied by the exclusive processing request within a range overlapping with the access target address. Notify the interrupt controller that there has been a request. It is possible to notify a device for debugging support through an interrupt that there has been a write access competing for exclusive processing by one initiator.

〔15〕《ターゲット単位の排他制御の併用》
別の観点による半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行う第1のリクエストリソース(131)及び第2のリクエストリソース(132)並びにアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有する。前記第1のリクエストリソースには特定の一のターゲットを対象とするリクエストパケットだけが振り分けられる。前記第2のリクエストリソースは他の複数のターゲットを対象とするリクエストパケットが振り分けられる。前記第1及び第2のリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する。
[15] << Combination of exclusive control for each target unit >>
A semiconductor device according to another aspect responds to an access request with a plurality of initiators capable of requesting access, a plurality of targets capable of responding to access, and a request packet provided from the initiator requesting access. A first request resource (131) and a second request resource (132) for performing control given to the target, and a response resource for performing control to return a response packet given from the target responding to the access request to the initiator of the access request source A packet router. Only request packets directed to a specific target are distributed to the first request resource. Request packets for a plurality of other targets are distributed to the second request resource. The first and second request resources, when receiving a request packet including an exclusive processing request, exclusive information indicating that there is an exclusive processing request from the request source and exclusive information that holds access information included in the request packet An information buffer, a comparison circuit that compares the information stored in the exclusive information buffer with access information included in a request packet given from the initiator, and outputs the comparison result, and based on the comparison result by the comparison circuit The access request invalidation circuit for invalidating the access request different from the access request accompanied by the accepted exclusive processing request and the access request invalidation circuit is made effective by maximizing the range where the access target addresses overlap. Enter an access request and arbitrate for conflicting access requests It accepts one access request has a arbitration circuitry for controlling to provide targeting request packets corresponding to the received access request.

前記第1のリクエストリソースには特定の一のターゲットを対象とするリクエストパケットだけが振り分けられるから、ターゲット単位の排他制御にはアドレス比較を要せず、一のターゲットを対象として他のイニシエータが発行した排他処理要求が既に受理されているか否か判定すればよい。   Since only request packets targeted for a specific target are distributed to the first request resource, address comparison is not required for exclusive control in units of targets, and other initiators are issued for the target. It may be determined whether or not the exclusive processing request has already been accepted.

〔16〕《階層化ルータの排他処理》
別の観点による半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えた複数のパケットルータと、を備える。前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対するアクセス要求に伴う排他処理要求を受理する排他処理機能を備える(図10)。
[16] << Exclusive processing of layered router >>
A semiconductor device according to another aspect provides a plurality of initiators capable of requesting access, a plurality of targets capable of responding to access, and a request packet provided from the initiator to a target responding to the access request A plurality of packet routers including a request resource for performing control and a response resource for performing control to return a response packet given from a target responding to the access request to the initiator of the access request source. When the plurality of packet routers are connected in series in a plurality of layers via a relay circuit, the request resource of each packet router accepts an exclusive processing request accompanying an access request for a required target from the initiator. (FIG. 10).

階層的インターコネクトを構成する複数のパケットルータのうち、アクセス要求の上流(イニシエータに近い側)のパケットルータに排他処理機構を持たない場合、上流側パケットルータに接続された一のイニシエータからの排他処理要求を伴うアクセスに続いて同じ階層のパケットルータに接続された別のイニシエータが前記アクセス要求と同じアドレスに対してアクセス要求を送信したときに、ハングアップが発生する。これは、パケットルータ間の中継回路(キューイングバッファ)が前記一のイニシエータのリクエストパケットをパケットルータに送信したときに下位階層のパケットルータが排他処理によって前記別のイニシエータのアクセス要求を抑止するために、当該一のイニシエータが排他処理停止要求を通知するアクセス要求が中継回路を通れずに下流のパケットルータに送信できないからである。   If the packet router upstream of the access request (closer to the initiator) does not have an exclusive processing mechanism among multiple packet routers that make up the hierarchical interconnect, exclusive processing from one initiator connected to the upstream packet router A hang-up occurs when another initiator connected to the packet router at the same layer transmits an access request to the same address as the access request following the access accompanied by the request. This is because when the relay circuit (queuing buffer) between the packet routers sends the request packet of the one initiator to the packet router, the lower layer packet router suppresses the access request of the other initiator by the exclusive process. In addition, the access request for notifying the exclusive process stop request from the one initiator cannot be transmitted to the downstream packet router without passing through the relay circuit.

また、アクセス要求の下流のパケットルータに排他処理機能を持たない場合は、排他処理機能を有する上流のパケットルータに接続するイニシエータからの排他処理要求を下流のパケットルータが受理しないため、排他性を保証することができない。   If the packet router downstream of the access request does not have an exclusive processing function, the downstream packet router does not accept the exclusive processing request from the initiator connected to the upstream packet router having the exclusive processing function, thus guaranteeing the exclusivity. Can not do it.

〔17〕
項16の半導体装置において、前記排他処理機能を備えるパケットルータのリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する。
[17]
In the semiconductor device according to Item 16, when the request resource of the packet router having the exclusive processing function receives the request packet including the exclusive processing request, the exclusive information indicating that there is an exclusive processing request from the request source and the request packet An exclusive information buffer that holds the access information included in the information, a comparison circuit that compares the information stored in the exclusive information buffer with the access information included in the request packet provided from the initiator, and outputs the comparison result; An access request invalidation circuit for invalidating an access request different from an access request accompanied by an exclusive processing request accepted based on a comparison result by the comparison circuit, maximizing a range in which access target addresses overlap; and the access Access request validated by request invalidation circuit Type, performs arbitration over competing access requests, accepting a single access request, having, an arbitration circuit for performing control for providing the target a request packet that is corresponding to the received access request.

〔18〕《階層化ルータの排他処理》
別の観点による半導体装置は、アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えた複数のパケットルータと、を備える。前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対する排他的な処理要求を受理する排他処理機能を備える。排他処理要求を伴うアクセスを要求するイニシエータは、同一階層のパケットルータに集約して結合される(図11、図12)。
[18] << Exclusive processing of hierarchical routers >>
A semiconductor device according to another aspect provides a plurality of initiators capable of requesting access, a plurality of targets capable of responding to access, and a request packet provided from the initiator to a target responding to the access request A plurality of packet routers including a request resource for performing control and a response resource for performing control to return a response packet given from a target responding to the access request to the initiator of the access request source. When the plurality of packet routers are connected in series in a plurality of layers through a relay circuit, the request resource of each of the packet routers has an exclusive processing function for receiving an exclusive processing request for a required target from the initiator. . Initiators requesting access with exclusive processing requests are aggregated and coupled to packet routers in the same hierarchy (FIGS. 11 and 12).

排他処理要求を行なうイニシエータを、排他処理要求を行なわないイニシエータに混在させて上流及び下流のパケットルータに分散配置した場合、上流及び下流のイニシエータがそれと同一アドレスについて排他的なアクセスを要求したときには、上流側で排他処理を要求しないイニシエータからのアクセス要求は、それが前記排他的なアクセス要求によって抑止されるべきものか否かにかかわらず、抑止される。これは、中継回路において、先に上流側のイニシエータから下流側のパケットルータに転送されるべき排他処理要求のアクセス要求が、下流側のイニシエータの排他的アクセス終了まで、下流側への伝達が抑止されるためである。   When initiators that make exclusive processing requests are mixed with initiators that do not make exclusive processing requests and are distributed to upstream and downstream packet routers, when upstream and downstream initiators request exclusive access for the same address, An access request from an initiator that does not require exclusive processing on the upstream side is suppressed regardless of whether or not it should be suppressed by the exclusive access request. This is because in the relay circuit, the access request for the exclusive processing request to be transferred from the upstream initiator to the downstream packet router first is prevented from being transmitted to the downstream side until the exclusive access of the downstream initiator ends. It is to be done.

〔19〕
項18の半導体装置において、前記排他処理機能を備えるパケットルータのリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する。
[19]
In the semiconductor device according to Item 18, when the request resource of the packet router having the exclusive processing function receives the request packet including the exclusive processing request, the exclusive information indicating that there is an exclusive processing request from the request source and the request packet An exclusive information buffer that holds the access information included in the information, a comparison circuit that compares the information stored in the exclusive information buffer with the access information included in the request packet provided from the initiator, and outputs the comparison result; An access request invalidation circuit for invalidating an access request different from an access request accompanied by an exclusive processing request accepted based on a comparison result by the comparison circuit, maximizing a range in which access target addresses overlap; and the access Access request validated by request invalidation circuit Type, performs arbitration over competing access requests, accepting a single access request, having, an arbitration circuit for performing control for providing the target a request packet that is corresponding to the received access request.

2.実施の形態の詳細
実施の形態について更に詳述する。
2. Details of Embodiments Embodiments will be further described in detail.

《スプリットトランザクションによるパケット交換》
図2にはスプリットトランザクションによるパケット交換方式のシステムの概念が例示される。このシステムでは、マスタとしてのイニシエータ(INIT)1がアクセス要求としてのリクエストパケット(REQPCKT)をスレーブとしてのターゲット(TGET)2に送信し、ターゲットがイニシエータにアクセス応答としてのレスポンスパケット(RESPCKT)を送信することで転送が行われる。パケットルータ(PCKTRT)3は、同時に転送されるリクエストパケットやレスポンスパケットの調停を行う。パケットルータ3は、アクセスを要求するイニシエータ1から与えられるリクエストパケットをアクセス要求に応答するターゲット2に与える制御を行うリクエストリソース(REQRSC)3A及びアクセス要求に応答するターゲット2から与えられるレスポンスパケットをアクセス要求元のイニシエータ1に返す制御を行うレスポンスリソース(RESRSC)3Bを備える。実際のシステムではイニシエータ1とターゲット2は適宜の数だけ配置される。また、イニシエータ1とターゲット2は必ずしも別々の回路であることを要せず、システム動作上、ある局面ではイニシエータ1となり、別の局面ではターゲット2とされる場合もあり、例えばDMAC(ダイレクト・メモリ・アクセス・コントローラ)はCPUによってデータ転送条件が設定されるときはターゲット2、設定された転送条件に従ってDMA転送を行うときはイニシエータ1となる。
《Packet exchange by split transaction》
FIG. 2 illustrates the concept of a packet switching system using split transactions. In this system, an initiator (INIT) 1 as a master sends a request packet (REQPCKT) as an access request to a target (TGET) 2 as a slave, and the target sends a response packet (RESPCKT) as an access response to the initiator. By doing so, transfer is performed. The packet router (PCKTTR) 3 arbitrates request packets and response packets that are transferred simultaneously. The packet router 3 accesses a request resource (REQRSC) 3A for performing control to give a request packet given from the initiator 1 requesting access to the target 2 responding to the access request and a response packet given from the target 2 responding to the access request. A response resource (RESRSC) 3B for performing control to be returned to the requesting initiator 1 is provided. In an actual system, an appropriate number of initiators 1 and targets 2 are arranged. In addition, the initiator 1 and the target 2 do not necessarily need to be separate circuits, and may be the initiator 1 in one aspect and the target 2 in another aspect in system operation, for example, DMAC (direct memory) The access controller is the target 2 when data transfer conditions are set by the CPU, and the initiator 1 when DMA transfer is performed according to the set transfer conditions.

リクエストパケットREQPCKTは、例えば、リクエストREQ、グラントGNT、エンドオブパケットEOP,ロックLCK、アドレスADD、オペコードOPC、データDATA、バイトイネーブルBE、ソースSRCの各信号から成る。   The request packet REQPCKT includes, for example, signals of request REQ, grant GNT, end of packet EOP, lock LCK, address ADD, opcode OPC, data DATA, byte enable BE, and source SRC.

リクエストREQは、イニシエータがイニシエータポートのリクエストパケット転送に使用される信号のうち、LCK、ADD、OPC、DATA、BE、SRCなどに有効な値を出力していることを示す。本信号とGNTが共にアサート状態であるときに、リクエストパケットがイニシエータからパケットルータに向けて転送される。本信号が非アサート状態のとき、パケットルータは上記各信号を無視する。イニシエータはGNTの状態に関わらず本信号をアサートできるが、ひとたび本信号をアサートしたら、GNTがアサートされてリクエストパケットの最初のセルの転送が完了するまで、アサート状態に保持しなければならない。   The request REQ indicates that the initiator outputs a valid value to LCK, ADD, OPC, DATA, BE, SRC, etc., among signals used for request packet transfer of the initiator port. When both this signal and GNT are asserted, the request packet is transferred from the initiator to the packet router. When this signal is in the non-asserted state, the packet router ignores the above signals. The initiator can assert this signal regardless of the state of GNT, but once it is asserted, it must be held in the asserted state until GNT is asserted and the transfer of the first cell of the request packet is complete.

グラント信号GNTは、対応するターゲットがリクエストパケットのセルを受信可能であることを示す。REQと本信号が共にアサート状態であるときに、リクエストパケットのセルが、イニシエータからパケットルータに転送される。パケットルータはREQの状態とは無関係に本信号をアサート、ディアサートすることができる。   The grant signal GNT indicates that the corresponding target can receive the cell of the request packet. When both REQ and this signal are asserted, the cell of the request packet is transferred from the initiator to the packet router. The packet router can assert and deassert this signal regardless of the state of REQ.

エンドオブパケットEOPは、イニシエータがリクエストパケットの最終セルをイニシエータポートに出力していることを示す。ターゲットは、転送されたセルの数ではなく、本信号がアサート状態にあることを、リクエストパケット終端の検出条件としなければならない。イニシエータは、セルの転送を開始してからそのセルの転送が完了するまで、本信号を一定値に保持しなければならない。   The end-of-packet EOP indicates that the initiator is outputting the final cell of the request packet to the initiator port. The target must make the request packet end condition a detection condition that this signal is in the asserted state, not the number of transferred cells. The initiator must hold this signal at a constant value from the start of the cell transfer until the cell transfer is completed.

ロックLCKは、排他的にトランザクション(リクエストパケットの転送からレスポンスパケットを受領するまでの一連の処理)を実行するために、システムをロックすることを要求する信号である。イニシエータは、リクエストパケット送信時において、ターゲットを排他的にアクセスするときに本信号をアサート状態とし、排他的アクセス要求を解除するときは本信号を非アサート(ネゲート)状態とする。排他的トランザクション実行をサポートするパケットルータは、本信号がアサート状態であるリクエストパケットをターゲットに転送してから、同じイニシエータからの本信号が非アサート状態であるリクエストパケットを転送するまでの間は、他のイニシエータからのリクエストパケットをターゲットに転送してはならない。   The lock LCK is a signal that requests that the system be locked in order to execute a transaction exclusively (a series of processing from the transfer of a request packet to the reception of a response packet). At the time of request packet transmission, the initiator asserts this signal when accessing the target exclusively, and deasserts (negates) this signal when canceling the exclusive access request. The packet router that supports exclusive transaction execution transfers the request packet in which this signal is asserted to the target until the request packet in which this signal from the same initiator is deasserted is transferred. Do not forward request packets from other initiators to the target.

アドレス信号ADDはトランザクションのターゲットアドレスを示す。本信号によるアドレス指定の最小単位は8バイトである。   The address signal ADD indicates the target address of the transaction. The minimum unit for addressing by this signal is 8 bytes.

オペコードOPCはロード、ストア等のトランザクションの種類と転送サイズを示す信号である。イニシエータは、リクエストパケットの転送を開始してからそのリクエストパケットの転送が完了するまで、REQがアサート状態にある間は、本信号を一定値に保持する。   The opcode OPC is a signal indicating the type of transaction such as load or store and the transfer size. The initiator holds this signal at a constant value while REQ is asserted from the start of the transfer of the request packet until the transfer of the request packet is completed.

データDATAはイニシエータからターゲットに転送されるデータである。   Data DATA is data transferred from the initiator to the target.

バイトイネーブルBEはターゲットが処理を行うべきバイトを指定する8ビットのデータである。バイトイネーブルとアドレスの関係は、例えばバイトアドレス0+8n、…、7+8nに対して、バイトイネーブルビットBE_0、…、BE_7が対応される。   The byte enable BE is 8-bit data that specifies a byte to be processed by the target. As for the relationship between byte enable and address, for example, byte enable bits BE_0,..., BE_7 correspond to byte addresses 0 + 8n,.

ソースSRCはパケットルータがレスポンスパケットを中継するときに、レスポンスパケットの送信先のイニシエータを特定できるようにするために、イニシエータが出力する識別子である。ターゲットは、リクエストパケット受信時に本信号の値を保存し、対応するレスポンスパケットを送信する際に後述するR_SRCとして出力する。そして、パケットルータは、R_SRCによってレスポンスパケットの送信先を決定する。したがって、イニシエータVCは、必ずレスポンスパケットが自らに返るように、本信号を出力しなければならない。   The source SRC is an identifier output by the initiator so that the initiator of the transmission destination of the response packet can be specified when the packet router relays the response packet. The target stores the value of this signal when receiving a request packet, and outputs it as R_SRC described later when transmitting a corresponding response packet. Then, the packet router determines the transmission destination of the response packet based on R_SRC. Therefore, the initiator VC must output this signal so that the response packet is always returned to itself.

レスポンスパケットRESPCKTは、例えば、レスポンスバリッドR_VLD(レスポンスリクエストR_REQ)、レスポンスグラントR_GNT、レスポンスエンドオブパケットR_EOP、レスポンスロックR_LCK、レスポンスオペコードR_OPC、レスポンスデータR_DATA、レスポンスソースR_SRCの各信号から成る。   The response packet RESPCKT includes, for example, each signal of response valid R_VLD (response request R_REQ), response grant R_GNT, response end of packet R_EOP, response lock R_LCK, response opcode R_OPC, response data R_DATA, and response source R_SRC.

レスポンスリクエストR_REQは、ターゲットが出力するR_RCK、R_OPC、R_DATA、R_SRCなどの有効性を示す。ターゲットは、R_GNTの値に関わらず本信号をアサートできる。ただし、ひとたび本信号をアサートしたら、R_GNTがアサートされてレスポンスパケットの最初のセルの転送が完了するまでは、本信号をアサート状態に保持しなければならない。   The response request R_REQ indicates the validity of R_RCK, R_OPC, R_DATA, R_SRC, etc. output by the target. The target can assert this signal regardless of the value of R_GNT. However, once this signal is asserted, this signal must be held in an asserted state until R_GNT is asserted and transfer of the first cell of the response packet is completed.

レスポンスバリッドR_VLDは、レスポンスパケットの有効性を示す信号であり、R_EOP、R_LCK、R_OPC、R_DATAなどが有効であることをイニシエータに示すための信号である。   The response valid R_VLD is a signal indicating the validity of the response packet, and is a signal for indicating to the initiator that R_EOP, R_LCK, R_OPC, R_DATA, etc. are valid.

レスポンスエンドオブパケットR_EOPはレスポンスパケットの最終セルをイニシエータに出力していることを示す。   Response end of packet R_EOP indicates that the last cell of the response packet is output to the initiator.

レスポンスロックR_LCKは イニシエータで受信されたレスポンスパケットが排他的に送信されたものであるか否かを示す。レスポンスパケットの転送を開始してからそのレスポンスパケットの転送が完了するまで、R_VLDがアサート状態にある間は、レスポンスロックR_LCKは一定値に保持されなければならない。排他的トランザクション実行をサポートするパケットルータは、本信号がアサート状態であるレスポンスパケットを転送してから、同じターゲットからの本信号が非アサート状態であるレスポンスパケットを転送するまでの間は、他のターゲットからのレスポンスパケットをイニシエータに転送してはならない。   Response lock R_LCK indicates whether or not the response packet received by the initiator has been transmitted exclusively. The response lock R_LCK must be held at a constant value while R_VLD is in the asserted state after the transfer of the response packet is completed until the transfer of the response packet is completed. A packet router that supports exclusive transaction execution transmits another response packet in which this signal is asserted until another response packet in which this signal is deasserted from the same target. Do not forward response packets from the target to the initiator.

レスポンスオペコードR_OPCは、ロードやストア等のトランザクションの結果を示すレスポンスオペコードである。   The response opcode R_OPC is a response opcode indicating the result of a transaction such as load or store.

レスポンスデータR_DATAはイニシエータに転送されるデータである。   Response data R_DATA is data transferred to the initiator.

レスポンスソースR_SRCは対応するリクエストパケットの送信時にイニシエータが出力したソースSRCと同じ値の信号であり、レスポンスパケットの転送を開始してからそのレスポンスパケットの転送が完了するまで、R_VLDがアサート状態にある間は、一定値に保持される。本信号は、パケットルータがレスポンスパケットをルーティングする際に、レスポンスパケットの送信先(イニシエータ)を特定できるようにするための識別子である。ターゲットは、リクエストパケット受信時にSRCの値を保存し、対応するレスポンスパケットを送信する際にR_SRCとして出力する。パケットルータは、R_SRCによってレスポンスパケットの送信先を決定する。   The response source R_SRC is a signal having the same value as the source SRC output by the initiator when the corresponding request packet is transmitted, and R_VLD is in an asserted state from the start of the transfer of the response packet until the transfer of the response packet is completed. The interval is held at a constant value. This signal is an identifier for enabling the destination of the response packet (initiator) to be specified when the packet router routes the response packet. The target stores the value of SRC when receiving the request packet, and outputs it as R_SRC when transmitting the corresponding response packet. The packet router determines the transmission destination of the response packet based on R_SRC.

レスポンスググラントR_GNTはレスポンスパケットを受信可能であることを示す。   The response grant R_GNT indicates that a response packet can be received.

《マイクロコンピュータとチップセット》
図3にはスプリットトランザクションによるパケット交換を適用したマイクロコンピュータ及びその周辺機能の拡張に用いる拡張デバイスからなるチップセットのブロック図が示される。チップセットはモジュール化されていてもいし、マザーボード上に単なるマルチチップとして実装されていてもよい。
<Microcomputer and chipset>
FIG. 3 shows a block diagram of a chip set including a microcomputer to which packet switching by split transaction is applied and an expansion device used for expansion of peripheral functions. The chip set may be modularized, or may be mounted as a simple multi-chip on the motherboard.

マイクロコンピュータ10及び拡張デバイス11はそれぞれ異なる半導体チップに形成され、デュアルチップでチップセットを構成する。   The microcomputer 10 and the expansion device 11 are formed on different semiconductor chips, and constitute a chip set with dual chips.

マイクロコンピュータ10はスプリットトランザクションによるパケット交換によってデータなどの転送を行うために、階層化されたパケットルータ12、13を有し、パケットルータ12、13の間には中継回路としてキューイングバッファ(QUEBUF)14が配置される。ここでは、拡張デバイス11にもスプリットトランザクションによるパケット交換方式が採用され、パケットルータ15が設けられている。特に制限されないが、マイクロコンピュータ10と拡張デバイス11はシリアル入出力回路(SIO)30と40によって接続される。   The microcomputer 10 has hierarchized packet routers 12 and 13 for transferring data by packet exchange by split transaction, and a queuing buffer (QUEBUF) as a relay circuit between the packet routers 12 and 13. 14 is arranged. Here, the expansion device 11 also employs a packet switching method based on split transactions, and is provided with a packet router 15. Although not particularly limited, the microcomputer 10 and the expansion device 11 are connected by serial input / output circuits (SIO) 30 and 40.

パケットルータ12には中央処理装置(CPU)20〜23、割り込みコントローラ(INTC)24、ROMアクセスコントローラ(ROMC)25、周辺制御部(PRPHC)26、及びルーティングコントローラレジスタ(RCREG)27が接続される。ROMC25には例えばROM50が外付けされる。   A central processing unit (CPU) 20 to 23, an interrupt controller (INTC) 24, a ROM access controller (ROMC) 25, a peripheral control unit (PRPHC) 26, and a routing controller register (RCREG) 27 are connected to the packet router 12. . For example, a ROM 50 is externally attached to the ROMC 25.

パケットルータ13には表示制御部(DISPC)31、ハードディスク制御部(HDDC)32、ダイレクト・メモリ・アクセス・コントローラ(DMAC)33、フラッシュメモリコントローラ(FMRYC)34、シンクロナスDRAMコントローラ(DMRYC)35、周辺制御部(PRPHC)36、及びSIO30が接続される。HDDC32にはハードディスク(HDD)51が外付けされ、DISPC31にはディスプレイ(DISP)52が外付けされ、FMRYC34にはフラッシュメモリ(FMRY)51が外付けされ、DMRYC35にはシンクロナスDRAM(DMRY)54が外付けされる。   The packet router 13 includes a display control unit (DISPC) 31, a hard disk control unit (HDDC) 32, a direct memory access controller (DMAC) 33, a flash memory controller (FMRYC) 34, a synchronous DRAM controller (DMRYC) 35, A peripheral control unit (PRPHC) 36 and SIO 30 are connected. A hard disk (HDD) 51 is externally attached to the HDDC 32, a display (DISP) 52 is externally attached to the DISPC 31, a flash memory (FMRY) 51 is externally attached to the FMRYC 34, and a synchronous DRAM (DMRY) 54 is attached to the DMRYC 35. Is externally attached.

パケットルータ15には周辺制御部(PRPHC)41〜44、及びルーティングコントローラレジスタ(RCREG)45が接続される。   Peripheral control units (PRPHC) 41 to 44 and a routing controller register (RCREG) 45 are connected to the packet router 15.

ルーティングコントロールレジスタ27はパケットルータ12,13に対する制御データが例えばCPU20によってプログラマブルに設定され、設定された制御データはパケットルータ12,13に供給される。同様に、ルーティングコントロールレジスタ45はパケットルータ15に対する制御データが例えばCPU20によってプログラマブルに設定され、設定された制御データはパケットルータ45に供給される。ルーティングコントロールレジスタ27は、後述するリクエストリソースによる排他制御の対象とするアクセスの属性を保持する排他制御レジスタとして機能される。   In the routing control register 27, control data for the packet routers 12 and 13 is set in a programmable manner by the CPU 20, for example, and the set control data is supplied to the packet routers 12 and 13. Similarly, in the routing control register 45, control data for the packet router 15 is set in a programmable manner by the CPU 20, for example, and the set control data is supplied to the packet router 45. The routing control register 27 functions as an exclusive control register that holds an attribute of access to be subjected to exclusive control by a request resource described later.

キューイングバッファ14はパケットルータ12で受理されたリクエストパケットをFIFO形態一時的に保持する。キューイングバッファ14が現に最初に保持するリクエストパケットはパケットルータ13に出力され、パケットルータ13がこれを受理することによって、キューイングバッファ14は当該リクエストパケットのリードが完了されたと認識する。また、キューイングバッファ14はパケットルータ13で受理されたレスポンスパケットをFIFO形態一時的に保持する。キューイングバッファ14が現に最初に保持するレスポンスパケットはパケットルータ12に出力され、パケットルータ12がこれを受理することによって、キューイングバッファ14は当該レスポンスパケットのリードが完了されたと認識する。   The queuing buffer 14 temporarily holds the request packet received by the packet router 12 in the FIFO form. The first request packet currently held by the queuing buffer 14 is output to the packet router 13, and the packet router 13 accepts the request packet, so that the queuing buffer 14 recognizes that the request packet has been read. Further, the queuing buffer 14 temporarily holds the response packet received by the packet router 13 in the FIFO form. The response packet that is initially held by the queuing buffer 14 is output to the packet router 12, and the packet router 12 accepts the response packet, so that the queuing buffer 14 recognizes that the response packet has been read.

マイクロコンピュータ10においてパケットルータ12,13は2階層で階層化される。パケットリクエストを基点とするトランザクションに対してパケットルータ12が上位階層、パケットルータ13が下位階層をなす。チップセットにおいては、パケットルータ15はパケットルータ13のさらに下位階層をなす。   In the microcomputer 10, the packet routers 12 and 13 are hierarchized into two layers. The packet router 12 is an upper layer and the packet router 13 is a lower layer for a transaction based on a packet request. In the chip set, the packet router 15 is a lower layer of the packet router 13.

ここで、図3のチップセットを構成する各回路モジュールにおいて、どれがイニシエータで、どれがターゲットから、そのバスマスタ機能とバススレーブ機能によって決まり、例えば、前述の如くDMAC33はその動作形態によってイニシエータとなったり、ターゲットになったりし、また、RCREG27はターゲットだけとして機能される。   Here, in each circuit module constituting the chip set of FIG. 3, which is the initiator and which is determined from the target by the bus master function and the bus slave function, for example, as described above, the DMAC 33 becomes the initiator according to its operation mode. The RCREG 27 functions only as a target.

図3のチップセットにおいて、パケットルータ12,13,15は一つのターゲットに対して複数のイニシエータがアクセスを要求したときの調停、そして共有リソースなどに対する排他制御のために後のアクセス要求を無効化する制御などを行う。例えば、マイクロコンピュータ10のCPUは、TAS(Test And Set)命令実行時にセマフォに対してリード・モディファイ・ライトを行う。CPUはイニシエータとしてTAS命令によるセマフォのリードアクセスを行うときにパケットルータに排他処理を要求し、TAS命令の後半のライトアクセスを行うときにパケットルータに排他処理終了を通知する。リソース単位で排他処理を行なう場合に、排他処理要求が受理されたイニシエータ以外のイニシエータによる排他的アクセス対象へのアクセスをターゲット単位で抑止する、というプロトコルは従来から採用さてれている。マイクロコンピュータ10のような、マルチコアSOC(一つのチップに複数のCPUを搭載するSOC)では、シングルコアSOC(一つのチップに単一のCPUを搭載するSOC)に比して排他処理が多用されることが考えられる。ターゲット単位の排他処理では、排他処理に伴う転送性能(バスアクセス性能)の低下が大きいから、図3のチップセットにおいては、排他処理単位を縮小するために、少なくともアドレス領域単位の排他制御を行うようになっている。以下、排他処理を中心にパケットルータの具体例を説明する。   In the chipset of FIG. 3, the packet routers 12, 13, and 15 invalidate subsequent access requests for arbitration when a plurality of initiators request access to one target and for exclusive control over shared resources and the like. Control to perform. For example, the CPU of the microcomputer 10 performs read-modify-write on the semaphore when a TAS (Test And Set) instruction is executed. The CPU requests exclusion processing from the packet router when performing semaphore read access by the TAS command as an initiator, and notifies the packet router of completion of exclusion processing when performing write access in the latter half of the TAS command. In the case where exclusive processing is performed in units of resources, a protocol that suppresses access to an exclusive access target by an initiator other than the initiator that has received an exclusive processing request in units of targets has been conventionally employed. In a multi-core SOC (an SOC in which a plurality of CPUs are mounted on one chip) such as the microcomputer 10, exclusive processing is used more frequently than a single-core SOC (an SOC in which a single CPU is mounted on one chip). It can be considered. In the exclusive processing of the target unit, the transfer performance (bus access performance) decreases greatly due to the exclusive processing. Therefore, in the chip set of FIG. 3, exclusive control of at least the address area unit is performed in order to reduce the exclusive processing unit. It is like that. Hereinafter, a specific example of the packet router will be described focusing on exclusive processing.

《アドレス比較を行うリクエストリソース》
図1にはパケットルータ12、13、15のリクエストリソース(REQRSC)80について原理的構成が具体的に例示される。リクエストリソース80はリクエストリソース3Aの一例である。ここでは、説明を解り易くするために、リクエストリソース80には3個のイニシエータ60,61,62と3個のターゲット70、71、72が接続される例を示す。
<< Request resource for address comparison >>
FIG. 1 specifically illustrates the basic configuration of the request resource (REQRSC) 80 of the packet routers 12, 13, and 15. The request resource 80 is an example of the request resource 3A. Here, for easy understanding, an example in which three initiators 60, 61, 62 and three targets 70, 71, 72 are connected to the request resource 80 is shown.

リクエストリソース80は、排他情報バッファ(EXCLBUF)81、比較回路(COMP)90,91,92、アクセス要求無効化回路(DSABL)100,101,102、及び調停回路(ARBTR)82を有する。調停回路82は調停ロジック(ARBLGC)83とセレクタ(SLCTR)84から成る。   The request resource 80 includes an exclusive information buffer (EXCLBUF) 81, comparison circuits (COMP) 90, 91, 92, access request invalidation circuits (DSABL) 100, 101, 102, and an arbitration circuit (ARBTR) 82. The arbitration circuit 82 includes an arbitration logic (ARBLGC) 83 and a selector (SLCTR) 84.

排他情報バッファ81は、たとえば図4に例示されるように、排他処理要求としてのロックLCKがアサートされたリクエストパケットを受理したとき当該要求元としてのイニシエータ番号INITIDに対応して、排他処理要求の有無を示す排他情報EXCL、当該リクエストパケットに含まれるアドレス情報ADD、アクセスデータサイズDSZ、及びバイトイネーブルBEを保持する。図4に示される対象イニシエータ番号TGINITと、リード又はライトのようなアクセス方向R/Wの情報とは排他制御レジスタ27が保持する。アクセスデータサイズDSZは、アドレス範囲の全てをアドレス情報で指定しない場合に、先頭アドレスとアクセスデータサイズによって指定する場合に用いるデータである。対象イニシエータ番号TGINITと、アクセス方向R/Wに応ずる情報はそもそもリクエストパケットで指定される情報ではなく、CPUが排他制御レジスタ27に指定するデータである。イニシエータID#0の対象イニシエータ番号TGINITは“#1=1/0,#2=1/0”となり、1は排他処理の対象、0は排他処理の非対象を意味する。例えばイニシエータID#0の対象イニシエータ番号TGINITは“11”すなわち“#1=1,#2=1”であり、イニシエータ#0が出力する排他処理要求に対しては、イニシエータID#1、#2の何れからのアクセス要求に対しても排他処理の対象とする。イニシエータID#1の対象イニシエータ番号TGINITは“#0=1/0,#2=1/0”となり、例えばイニシエータID#1の対象イニシエータ番号TGINITは“01”すなわち“#0=0,#2=1”であり、イニシエータ#1が出力する排他処理要求に対しては、イニシエータID#0からのアクセス要求に対しては排他処理の対象とはせず、イニシエータID#2からのアクセス要求に対しては排他処理の対象とする。   For example, as illustrated in FIG. 4, the exclusive information buffer 81 receives the request packet in which the lock LCK as the exclusive processing request is asserted, and responds to the exclusive processing request corresponding to the initiator number INITID as the request source. It holds exclusive information EXCL indicating presence / absence, address information ADD included in the request packet, access data size DSZ, and byte enable BE. The exclusive control register 27 holds the target initiator number TGINIT shown in FIG. 4 and information on the access direction R / W such as read or write. The access data size DSZ is data used when the entire address range is not specified by address information and is specified by the head address and the access data size. The information corresponding to the target initiator number TGINIT and the access direction R / W is not the information specified by the request packet in the first place, but the data specified by the CPU in the exclusive control register 27. The target initiator number TGINIT of the initiator ID # 0 is “# 1 = 1/0, # 2 = 1/0”, where 1 means the exclusive process target and 0 means the exclusive process non-target. For example, the target initiator number TGINIT of the initiator ID # 0 is “11”, that is, “# 1 = 1, # 2 = 1”. In response to the exclusive processing request output by the initiator # 0, the initiator ID # 1, # 2 Any access request from any of these will be subject to exclusion processing. The target initiator number TGINIT of the initiator ID # 1 is “# 0 = 1/0, # 2 = 1/0”. For example, the target initiator number TGINIT of the initiator ID # 1 is “01”, that is, “# 0 = 0, # 2 = 1 ”and the exclusive processing request output from the initiator # 1 is not subject to the exclusive processing for the access request from the initiator ID # 0, but the access request from the initiator ID # 2 On the other hand, it is subject to exclusive processing.

例えば比較回路90、91、92は、前記排他情報バッファ81等に格納された情報と対応するイニシエータ60、61、62から与えられるリクエストパケットに含まれるアドレス情報とを比較して、その比較結果を出力する。例えば比較回路90は、前記排他情報バッファ81が保持しイニシエータIDが#1、#2のエントリデータと、イニシエータ60が出力するリクエストパケットに含まれていてそのエントリデータに対応するデータとを比較する。比較回路91は、前記排他情報バッファ81が保持しイニシエータIDが#0、#2のエントリデータと、イニシエータ60が出力するリクエストパケットに含まれていてそのエントリデータに対応するデータとを比較する。比較回路92は、前記排他情報バッファ81が保持しイニシエータIDが#0、#1のエントリデータと、イニシエータ60が出力するリクエストパケットに含まれていてそのエントリデータに対応するデータとを比較する。ここでは、夫々の比較回路90,91,92は、夫々の比較項目で排他条件に一致しなければハイレベル(“H”)を出力する。   For example, the comparison circuits 90, 91, and 92 compare the information stored in the exclusive information buffer 81 and the like with the address information included in the request packet provided from the corresponding initiators 60, 61, and 62, and the comparison result is obtained. Output. For example, the comparison circuit 90 compares the entry data held by the exclusive information buffer 81 and having the initiator IDs # 1 and # 2 with the data included in the request packet output from the initiator 60 and corresponding to the entry data. . The comparison circuit 91 compares the entry data held by the exclusive information buffer 81 and having initiator IDs # 0 and # 2 with the data included in the request packet output from the initiator 60 and corresponding to the entry data. The comparison circuit 92 compares the entry data held by the exclusive information buffer 81 with the initiator IDs # 0 and # 1 and the data included in the request packet output from the initiator 60 and corresponding to the entry data. Here, each comparison circuit 90, 91, 92 outputs a high level (“H”) unless the comparison condition matches the exclusion condition.

アクセス要求無効化回路(DSABL)100,101,102は、対応する比較回路90,91,92の出力が“L”のとき、対応するアクセス要求を無効化する。即ち、アクセス要求無効化回路100は、比較回路90の出力とイニシエータ69からのリクエストREQとの論理積を採り、当該リクエストREQのハイレベルによってアクセスが要求されているとき、比較回路90の出力が“H”でなければ対応するリクエストREQによるアクセス理要求を無効化する。アクセス要求無効化回路101は、比較回路91の出力とリクエストREQとの論理積を採り、当該リクエストREQのハイレベルによってアクセスが要求されているとき、比較回路91の出力が“H”でなければ対応するリクエストREQによるアクセス要求を無効化する。アクセス要求無効化回路102は、比較回路92の出力とリクエストREQとの論理積を採り、当該リクエストREQのハイレベルによってアクセスが要求されているとき、比較回路92の出力が“H”でなければ対応するリクエストREQによるアクセス要求を無効化する。要するに、アクセス要求無効化回路100,101,102は、アクセス対象アドレスに着目すれば、比較回路による比較結果に基づいて、既に受理されている排他処理要求とアクセス対象アドレスが重なる範囲を最大限として、既に受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するものである。アクセス対象アドレスが重なる範囲とは、同一のイニシエータ上でアクセスアドレスが重なることを意味する。   The access request invalidation circuits (DSABL) 100, 101, 102 invalidate the corresponding access request when the outputs of the corresponding comparison circuits 90, 91, 92 are "L". That is, the access request invalidation circuit 100 takes the logical product of the output of the comparison circuit 90 and the request REQ from the initiator 69, and when access is requested by the high level of the request REQ, the output of the comparison circuit 90 is If it is not “H”, the access request by the corresponding request REQ is invalidated. The access request invalidation circuit 101 takes the logical product of the output of the comparison circuit 91 and the request REQ, and when access is requested by the high level of the request REQ, the output of the comparison circuit 91 is not “H”. The access request by the corresponding request REQ is invalidated. The access request invalidation circuit 102 takes the logical product of the output of the comparison circuit 92 and the request REQ, and when access is requested by the high level of the request REQ, the output of the comparison circuit 92 is not “H”. The access request by the corresponding request REQ is invalidated. In short, if the access request invalidation circuits 100, 101, and 102 focus on the access target address, the access request invalidation circuits 100, 101, and 102 maximize the range in which the already received exclusive processing request and the access target address overlap based on the comparison result by the comparison circuit. The access request different from the access request with the exclusive processing request already accepted is invalidated. The range where the access target addresses overlap means that the access addresses overlap on the same initiator.

調停ロジック83は、前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理する。セレクタ84は、調停ロジック83が受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う。更にセレクタ84は、排他処理要求を伴って受理されたアクセス要求のリクエストパケットの情報によって排他情報バッファ81の対応するエントリの情報を更新する。   The arbitration logic 83 receives the access request validated by the access request invalidation circuit, arbitrates the conflicting access request, and accepts one access request. The selector 84 performs control for giving a request packet corresponding to the access request received by the arbitration logic 83 to the target. Further, the selector 84 updates the information of the corresponding entry in the exclusive information buffer 81 with the information of the request packet of the access request received with the exclusive processing request.

尚、図1ではリクエストパケットREQPCKTの中のリクエストREQとグラントGNTの所在を明示しているが、その他の信号はそれとは別の信号線に含まれる。   Although the location of the request REQ and the grant GNT in the request packet REQPCKT is clearly shown in FIG. 1, other signals are included in other signal lines.

上記によれば、排他的アクセスの対象となるアドレス情報などのアクセス情報を保持し、イニシエータが出力するアクセス情報と前記保持されたアクセス情報を比較し、アクセス対象アドレスが重なる範囲を最大限として他のアクセス要求を無効化するから、ターゲット単位よりも細かなアドレスを対象とするピンポイントの排他処理を実現することができる。   According to the above, access information such as address information subject to exclusive access is held, the access information output by the initiator is compared with the held access information, and the range where the access target addresses overlap is maximized. Since the access request is invalidated, pinpoint exclusive processing for an address finer than the target unit can be realized.

そして、調停回路の処理に先立って排他処理要求を伴うアクセス要求に対する選択的な無効化の処理を行うから、排他的な制御により抑止されるべきアクセス要求が調停回路による調停処理の対象にはされず、この点において、イニシエータがアクセス要求を行ってからアクセス要求が受理されるまでの時間を短縮するのに寄与する。   Prior to the processing of the arbitration circuit, selective invalidation processing for an access request accompanied by an exclusive processing request is performed, so that an access request that should be suppressed by exclusive control is targeted for arbitration processing by the arbitration circuit. However, this point contributes to shortening the time from when the initiator makes an access request until the access request is accepted.

図1において、前記調停ロジック83は、前記イニシエータ毎にグラントGNTを出力し、前記イニシエータからリクエストREQによりアクセス要求を入力した場合、前記アクセス要求無効化回路100によりそのアクセス要求が有効とされ、かつ、調停によって前記イニシエータからのアクセス要求が無効とされた場合や、調停によって前記イニシエータからのアクセス要求を受理しない場合には、グラントGNTをディアサート状態とする。調停ロジック83は、アクセス要求の無効化に関わらず、イニシエータからのアクセス要求を受理したときにのみグラントGNTをアサートするから、これを受けるイニシエータは、アクセス要求の後、これが受理されたか無効化されたかを感知することなく、グラントGNTのアサートを待てばよい。したがって、スプリットトランザクションによるパケット交換方式のバスインタフェースでは、排他処理を伴うアクセス要求が一時的に抑止される場合でもイニシエータは単に待てばよく、再度アクセス要求を行うなどの処理は不要であり、ピンポイントの無効化を採用してもイニシエータの実装は容易である。   In FIG. 1, the arbitration logic 83 outputs a grant GNT for each initiator, and when the access request is input from the initiator by a request REQ, the access request is validated by the access request invalidation circuit 100, and When the access request from the initiator is invalidated by arbitration, or when the access request from the initiator is not accepted by arbitration, the grant GNT is deasserted. Regardless of the invalidation of the access request, the arbitration logic 83 asserts the grant GNT only when the access request from the initiator is accepted, so that the initiator that receives this asserts whether it has been accepted or invalidated after the access request. It is only necessary to wait for the grant GNT to be asserted without sensing that. Therefore, in the packet-switched bus interface by split transaction, even if an access request accompanied by an exclusive process is temporarily suppressed, the initiator only has to wait, and there is no need for a process such as making an access request again. Even if the invalidation is adopted, the initiator can be easily implemented.

図1において、前記イニシエータは、例えばアクセスを要求した場合、入力されるグラントGNTのディアサート状態によってアクセス要求が受理されていないと判定し、入力されるグラントGNTがアサート状態であることにより、アクセス要求が受理されたと判定する。   In FIG. 1, for example, when the initiator requests access, the initiator determines that the access request is not accepted by the deasserted state of the input grant GNT, and the access is made when the input grant GNT is in the asserted state. Determine that the request has been accepted.

図5には比較回路(COMP#0)90の一例としてアドレス比較と排他要求比較を行なう例が示される。110は、排他情報バッファ81におけるイニシエータID#1のエントリのアドレス情報ADDと、イニシエータID#0のイニシエータ60から出力されるアドレスADDとを比較するアドレス比較器であり、比較一致によって“H”を出力する。111は、排他情報バッファ81におけるイニシエータID#2のエントリのアドレス情報ADDと、イニシエータID#0のイニシエータ60から出力されるアドレスADDとを比較するアドレス比較器であり、比較一致によって“H”を出力する。アンドゲート112は排他情報バッファ81におけるイニシエータID#1のエントリの排他情報EXCLと、アドレス比較器110の比較結果を2入力として論理積を採る。アンドゲート113は排他情報バッファ81におけるイニシエータID#2のエントリの排他情報EXCLと、アドレス比較器111の比較結果を2入力として論理積を採る。エントリの排他情報EXCLは対応するイニシエータが排他処理を要求していれば“H”とされる。負論理和ゲート(ノアゲート)114はアンドゲート112、113の出力を2入力として、負論理和を採る。アクセス要求無効化回路100はイニシエータID#0が出力するリクエストREQとナンドゲート114の出力を2入力とするアンドゲートによって構成される。したがって、イニシエータ#1が排他処理を要求しており(INT1,EXCL(EXCLBUF)=“H”)且つアドレス比較器110による比較が一致であるときアンドゲート112の出力が“H”、また、イニシエータ#2が排他処理を要求しており(INT2,EXCL(EXCLBUF)=“H”)且つアドレス比較器111による比較が一致であるときアンドゲート113の出力が“H”となるから、その何れの場合においても、イニシエータ#0からのアクセス要求は無効化される。他の比較回路の場合も上記と同様である。   FIG. 5 shows an example in which address comparison and exclusion request comparison are performed as an example of the comparison circuit (COMP # 0) 90. Reference numeral 110 denotes an address comparator that compares the address information ADD of the entry with the initiator ID # 1 in the exclusive information buffer 81 and the address ADD output from the initiator 60 with the initiator ID # 0. Output. An address comparator 111 compares the address information ADD of the entry of the initiator ID # 2 in the exclusive information buffer 81 and the address ADD output from the initiator 60 of the initiator ID # 0. Output. The AND gate 112 takes the logical product of the exclusive information EXCL of the entry of the initiator ID # 1 in the exclusive information buffer 81 and the comparison result of the address comparator 110 as two inputs. The AND gate 113 takes the logical product of the exclusive information EXCL of the entry of the initiator ID # 2 in the exclusive information buffer 81 and the comparison result of the address comparator 111 as two inputs. The exclusive information EXCL of the entry is set to “H” if the corresponding initiator requests exclusive processing. A negative OR gate (NOR gate) 114 takes the outputs of the AND gates 112 and 113 as two inputs and takes a negative OR. The access request invalidation circuit 100 is configured by an AND gate having two inputs, the request REQ output from the initiator ID # 0 and the output of the NAND gate 114. Therefore, when the initiator # 1 requests exclusive processing (INT1, EXCL (EXCLBUF) = “H”) and the comparison by the address comparator 110 is coincident, the output of the AND gate 112 is “H”. When # 2 requests exclusive processing (INT2, EXCL (EXCLBUF) = “H”) and the comparison by the address comparator 111 is coincident, the output of the AND gate 113 becomes “H”. Even in this case, the access request from the initiator # 0 is invalidated. The same applies to other comparison circuits.

このように、アドレス比較と排他要求比較を行なう比較回路を採用する場合、一つのイニシエータからアクセス要求があったとき、それによるアクセスアドレスと重なるアドレスについて既に別のイニシエータからの排他処理要求が受理されている場合に、当該一つのイニシエータからのアクセス要求を無効化する。   In this way, when a comparison circuit that performs address comparison and exclusion request comparison is adopted, when an access request is received from one initiator, an exclusion processing request from another initiator is already accepted for an address that overlaps with the access address. If so, the access request from the one initiator is invalidated.

図6には比較回路(COMP#0)90の一例としてアドレス比較、排他要求比較及びバイトイネーブル比較を行なう例が示される。120は図5の比較器110と同じであり、121は図5の比較器111と同じである。比較器125は排他情報バッファ81におけるイニシエータID#1のエントリのバイトイネーブルBEと、イニシエータID#0のイニシエータ60から出力されるバイトイネーブルBEとを比較するアドレス比較器であり、比較一致によって“H”を出力する。126は、排他情報バッファ81におけるイニシエータID#2のエントリのバイトイネーブルBEと、イニシエータID#0のイニシエータ60から出力されるバイトイネーブルBEとを比較するアドレス比較器であり、比較一致によって“H”を出力する。アンドゲート122は排他情報バッファ81におけるイニシエータID#1のエントリの排他情報EXCL、アドレス比較器120の比較結果、及びアドレス比較器125の比較結果を3入力として論理積を採る。アンドゲート123は排他情報バッファ81におけるイニシエータID#2のエントリの排他情報EXCL、アドレス比較器111の比較結果、及びアドレス比較器111の比較結果を3入力として論理積を採る。エントリの排他情報EXCLは対応するイニシエータが排他処理を要求していれば“H”とされる。負論理和ゲート(ノアゲート)124はアンドゲート122、123の出力を2入力として、負論理和を採る。アクセス要求無効化回路100はイニシエータID#0が出力するリクエストREQとナンドゲート124の出力を2入力とするアンドゲートによって構成される。したがって、イニシエータ#1が排他処理を要求しており(INT1,EXCL(EXCLBUF)=“H”)且つアドレス比較器120による比較及びアドレス比較器125による比較が夫々一致であるときアンドゲート122の出力が“H”、また、イニシエータ#2が排他処理を要求しており(INT2,EXCL(EXCLBUF)=“H”)且つアドレス比較器121による比較及びアドレス比較器126による比較が一致であるときアンドゲート123の出力が“H”となるから、その何れの場合においても、イニシエータ#0からのアクセス要求は無効化される。他の比較回路の場合も上記と同様である。   FIG. 6 shows an example in which address comparison, exclusion request comparison, and byte enable comparison are performed as an example of the comparison circuit (COMP # 0) 90. 120 is the same as the comparator 110 of FIG. 5, and 121 is the same as the comparator 111 of FIG. The comparator 125 is an address comparator that compares the byte enable BE of the entry of the initiator ID # 1 in the exclusive information buffer 81 with the byte enable BE output from the initiator 60 of the initiator ID # 0. "Is output. An address comparator 126 compares the byte enable BE of the entry of the initiator ID # 2 in the exclusive information buffer 81 with the byte enable BE output from the initiator 60 of the initiator ID # 0. Is output. The AND gate 122 takes the logical product of the exclusive information EXCL of the entry of the initiator ID # 1 in the exclusive information buffer 81, the comparison result of the address comparator 120, and the comparison result of the address comparator 125 as three inputs. The AND gate 123 takes a logical product with the exclusive information EXCL of the entry of the initiator ID # 2 in the exclusive information buffer 81, the comparison result of the address comparator 111, and the comparison result of the address comparator 111 as three inputs. The exclusive information EXCL of the entry is set to “H” if the corresponding initiator requests exclusive processing. A negative OR gate (NOR gate) 124 takes the outputs of the AND gates 122 and 123 as two inputs and takes a negative OR. The access request invalidation circuit 100 is configured by an AND gate that receives the request REQ output from the initiator ID # 0 and the output of the NAND gate 124 as two inputs. Therefore, when the initiator # 1 requests exclusive processing (INT1, EXCL (EXCLBUF) = “H”) and the comparison by the address comparator 120 and the comparison by the address comparator 125 are the same, the output of the AND gate 122 Is “H”, and when the initiator # 2 requests exclusive processing (INT2, EXCL (EXCLBUF) = “H”) and the comparison by the address comparator 121 and the comparison by the address comparator 126 are coincident, AND Since the output of the gate 123 becomes “H”, the access request from the initiator # 0 is invalidated in any case. The same applies to other comparison circuits.

このように、アドレス比較、排他要求比較及びバイトイネーブル比較を行なう比較回路を採用する場合、一つのイニシエータからアクセス要求があったとき、それによる指定アクセスアドレスと重なり、バイトイネーブルによるアクセス対象バイトが重なっている、既に別のイニシエータからの排他処理要求が受理されている場合に、当該一つのイニシエータからのアクセス要求を無効化する。   In this way, when employing a comparison circuit that performs address comparison, exclusive request comparison, and byte enable comparison, when there is an access request from one initiator, it overlaps with the designated access address, and the byte to be accessed by byte enable overlaps. If an exclusive processing request from another initiator is already accepted, the access request from the one initiator is invalidated.

図7には図6に対して更に対象イニシエータ番号TGINITも比較対象にした比較回路(COMP#0)90の一例が示される。図6との相違点は122,123のアンドゲートを4入力とし、INITID#1に関するアンドゲート132には排他情報バッファ81におけるINITID#1のエントリが保有する対象イニシエータ番号TGINITのINIT#0に対応する値を入力し、INITID#2に関するアンドゲート133には排他情報バッファ81におけるINITID#2のエントリが保有する対象イニシエータ番号TGINITのINIT#0に対応する値を入力する。図4の例に従えば、INITID#1のエントリにおいて、対象イニシエータ番号TGINITは“#0、#2”=“01”であるから、INIT#1,TGINIT(INIT#0)=0がアンドゲート132に、INITID#2のエントリにおいて、対象イニシエータ番号TGINITは“#0、#1”=“10”であるから、INIT#2,TGINIT(INIT#0)=0がアンドゲート133に供給される。これにより、イニシエータ60(INITID#0)からのアクセス要求は、イニシエータ61(INITID#1)による排他処理要求がすでに受理されていてもそれによって排除されず、イニシエータ62(INITID#2)による排他処理要求がすでに受理されていていればそれによって排除される。   FIG. 7 shows an example of a comparison circuit (COMP # 0) 90 in which the target initiator number TGINIT is also compared with FIG. The difference from FIG. 6 is that AND gates 122 and 123 have four inputs, and the AND gate 132 related to INITID # 1 corresponds to INIT # 0 of the target initiator number TGINIT held by the entry of INITID # 1 in the exclusive information buffer 81. A value corresponding to INIT # 0 of the target initiator number TGINIT held in the entry of INITID # 2 in the exclusive information buffer 81 is input to the AND gate 133 related to INITID # 2. According to the example of FIG. 4, in the entry of INITID # 1, the target initiator number TGINIT is “# 0, # 2” = “01”, so INIT # 1, TGINIT (INIT # 0) = 0 is an AND gate. In 132, since the target initiator number TGINIT is “# 0, # 1” = “10” in the entry of INITID # 2, INIT # 2, TGINIT (INIT # 0) = 0 is supplied to the AND gate 133. . As a result, the access request from the initiator 60 (INITID # 0) is not excluded even if the exclusive processing request by the initiator 61 (INITID # 1) has already been received, and the exclusive processing by the initiator 62 (INITID # 2). If the request has already been accepted, it will be rejected.

このように対象イニシエータ番号TGINITも比較対象にしてアドレス比較などを行えば、レジスタ27の設定内容で特定される一部のイニシエータからのアクセス要求に限って無効化することができるようになる。   As described above, if address comparison or the like is performed with the target initiator number TGINIT as a comparison target, it is possible to invalidate only access requests from some initiators specified by the setting contents of the register 27.

上記比較回路の具体例は図1に例示されるように3個のイニシエータ60,61,62の場合を例としており、イニシエータの数に応じてアンドゲート122,123(132,133)に係る構成を増やせばよい。   A specific example of the comparison circuit is an example of three initiators 60, 61, and 62 as illustrated in FIG. 1, and the configuration related to the AND gates 122 and 123 (132 and 133) according to the number of initiators. You can increase it.

《ターゲットを最小単位とする排他制御用のリクエストリソースの併用》
上記説明では、アクセス対象ターゲットが既に受理された排他処理の対象ターゲットと同じであるかはアドレス比較を用いた。ターゲット単位でアクセスの無効化を行う場合には、図8に例示されるように、ターゲットへの接続を変えたリクエストリソース(REQRSC)130、131を設け、リクエストリソース130,131へのリクエストパケットの振り分けを行う振り分け回路(PCKTSRT)132を用いればよい。すなわち、リクエストリソース130にはターゲットTGT70,71を接続し、リクエストリソース131には1個のターゲットTGT72を接続する。振り分け回路132はリクエストリソースに含まれるアクセスアドレスADDからアクセス対象ターゲットを判別し、ターゲット70又は71をアクセス対象とするリクエストパケットをリクエストリソース130に供給し、ターゲット72をアクセス対象とするリクエストパケットをリクエストリソース131に供給する。リクエストリソース130は接続されるターゲットが相違される点を除いて図1で説明したリクエストリソース80と同じ構成を備えるから、その詳細な説明は省略する。リクエストリソース131はターゲットを最小単位として排他処理要求に対する制御を行う点が図1のリクエストリソース80と相違される。即ち、リクエストリソース131の比較回路140は、図9に例示される。図9には比較回路(COMP#0)140の一例が示される。同図に示される比較回路140は、排他情報バッファ81におけるイニシエータID#1のエントリの排他情報EXCLと、排他情報バッファ81におけるイニシエータID#2のエントリの排他情報EXCLとが直接負論理和ゲート(ノアゲート)114に供給される。イニシエータ#1が排他処理を要求している状態(INT1,EXCL(EXCLBUF)=“H”)、又はイニシエータ#2が排他処理を要求している状態(INT2,EXCL(EXCLBUF)=“H”)の場合に、イニシエータ#0からのターゲット72へのアクセス要求は無効化される。
<< Combination of request resource for exclusive control with target as minimum unit >>
In the above description, address comparison is used to determine whether the access target is the same as the target target of the exclusion process that has already been accepted. When invalidating access in units of targets, as illustrated in FIG. 8, request resources (REQRSC) 130 and 131 with different connections to the target are provided, and request packets to the request resources 130 and 131 are sent. A distribution circuit (PCKTSRT) 132 that performs distribution may be used. That is, target TGTs 70 and 71 are connected to the request resource 130, and one target TGT 72 is connected to the request resource 131. The distribution circuit 132 determines an access target from the access address ADD included in the request resource, supplies a request packet with the target 70 or 71 as an access target to the request resource 130, and requests a request packet with the target 72 as an access target. The resource 131 is supplied. Since the request resource 130 has the same configuration as the request resource 80 described in FIG. 1 except that the connected target is different, detailed description thereof is omitted. The request resource 131 is different from the request resource 80 of FIG. 1 in that the request resource 131 controls the exclusive processing request with the target as a minimum unit. That is, the comparison circuit 140 of the request resource 131 is illustrated in FIG. FIG. 9 shows an example of the comparison circuit (COMP # 0) 140. In the comparison circuit 140 shown in the figure, the exclusive information EXCL of the entry of the initiator ID # 1 in the exclusive information buffer 81 and the exclusive information EXCL of the entry of the initiator ID # 2 in the exclusive information buffer 81 are directly negative OR gates ( NOR gate 114. State where initiator # 1 requests exclusive processing (INT1, EXCL (EXCLBUF) = “H”), or state where initiator # 2 requests exclusive processing (INT2, EXCL (EXCLBUF) = “H”) In this case, the access request from the initiator # 0 to the target 72 is invalidated.

リクエストリソース131には特定の一のターゲット70を対象とするリクエストパケットだけが振り分けられるから、ターゲット単位の排他制御にはアドレス比較を要せず、一のターゲット70を対象として他のイニシエータが発行した排他処理要求が既に受理されているか否か判定すれば、一のターゲット70に対してはこれを最小単位とする排他制御を行うことができる。   Since only request packets targeting one specific target 70 are distributed to the request resource 131, address comparison is not required for exclusive control in units of targets, and other initiators issued for one target 70 are targeted. If it is determined whether or not the exclusive processing request has already been accepted, exclusive control using this as a minimum unit can be performed on one target 70.

《イニシエータを単位とする排他制御》
排他制御を要求したイニシエータがCPUであれば、パケットルータが、排他制御期間内に別のイニシエータによる別のアドレスへのアクセスを許可しても問題はない。一方,イニシエータの中には、他のイニシエータを排除して自己のアクセス頻度を高めることを目的として、排他的アクセスを要求するものがある。例えばDMAC等である。このようなイニシエータによる排他処理要求に対しては、アドレス等によるピンポイントの排他処理ではなく、ターゲットに対する全アクセスを対象とする排他処理が有効である。このため、排他処理を要求するイニシエータを単位として、全アクセスで排他制御を行う回路と、ピンポイントで排他制御を行う回路を混在させるのがよい。
<Exclusive control in units of initiator>
If the initiator requesting exclusive control is a CPU, there is no problem even if the packet router permits access to another address by another initiator within the exclusive control period. On the other hand, some initiators require exclusive access for the purpose of eliminating other initiators and increasing their own access frequency. For example, DMAC. For such an exclusive processing request by the initiator, exclusive processing for all accesses to the target is effective, not pinpoint exclusive processing by an address or the like. For this reason, it is preferable to mix a circuit that performs exclusive control with all accesses and a circuit that performs exclusive control with pinpoints in units of initiators that request exclusive processing.

具体的には,イニシエータがCPUであれば図1で説明したように、アドレスを限定した排他処理を行い、イニシエータがCPU以外であれば、アドレスを限定しない排他処理を行う。パケットルータに直接イニシエータが接続されている場合、イニシエータがCPUであるかCPU以外であるかはSOCや半導体装置の開発段階で決まるため、イニシエータのタイプがCPUかCPU以外かを識別する回路を特別に設けることは不要である。パケットルータに、イニシエータが接続されている場合、リクエストパケットに含まれる属性の一つであるイニシエータ識別情報(シースSRC)に基づいてイニシエータタイプの判定を行えばよい。   More specifically, if the initiator is a CPU, as described with reference to FIG. 1, exclusive processing with limited addresses is performed, and if the initiator is other than a CPU, exclusive processing without limiting addresses is performed. If the initiator is directly connected to the packet router, whether the initiator is a CPU or a non-CPU is determined at the development stage of the SOC or semiconductor device, so a circuit that identifies whether the initiator type is a CPU or a non-CPU is special. It is not necessary to provide it. When an initiator is connected to the packet router, the initiator type may be determined based on initiator identification information (sheath SRC) that is one of the attributes included in the request packet.

《排他情報バッファのエントリ数》
排他情報バッファのオーバーフローにより、排他処理が正常に行われないことがあってはならない。このため,排他情報バッファ81のエントリ数は、イニシエータが同時に実行できる排他的アクセスの合計値以上とする。例えば図4の例では一つのイニシエータIDが格納するアクセス情報は一つである。階層インターコネクトのように、パケットルータにパケットルータが接続されている場合、排他情報バッファのエントリ数はパケットルータに接続された全てのイニシエータが同時に実行できる排他的アクセスの合計数となる。
<< Number of entries in exclusive information buffer >>
The exclusion process must not be performed normally due to the overflow of the exclusion information buffer. Therefore, the number of entries in the exclusive information buffer 81 is equal to or greater than the total number of exclusive accesses that can be executed simultaneously by the initiator. For example, in the example of FIG. 4, one initiator ID stores one access information. When a packet router is connected to a packet router as in a hierarchical interconnect, the number of entries in the exclusive information buffer is the total number of exclusive accesses that can be executed simultaneously by all initiators connected to the packet router.

一つのCPUが同時に実行できる排他的アクセス数が複数ある場合に、その識別をプロセスIDを用いて行ってもよい。この場合には、前記排他情報バッファが保持するアクセス情報には、アクセス対象アドレス情報と共に、そのアクセス対象アドレス情報を用いるプロセスのプロセスID情報を含める。この場合、前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する。同じイニシエータによる排他的アクセス要求に対してプロセスIDを考慮してアクセス要求の無効化に対処することができる。   When there are a plurality of exclusive accesses that can be executed simultaneously by one CPU, the identification may be performed using the process ID. In this case, the access information held in the exclusive information buffer includes the process ID information of the process using the access target address information together with the access target address information. In this case, the access request invalidation circuit invalidates an access request having a process ID different from that of an access request accompanied by an accepted exclusive processing request, while maximizing a range where the access target addresses overlap. For exclusive access requests by the same initiator, it is possible to deal with invalidation of access requests in consideration of the process ID.

《排他処理に競合するアクセスに関するデバッグ支援》
セマフォを実現するために排他処理を使う場合、通常はCPUが排他的アクセスを要求中のアドレスに対して以下の事象が発生することはなく、発生した場合、その原因はソフトウエアやハードウエアの不具合である可能性が高い。その事象とは、排他処理を要求しているイニシエータ(CPU)以外のCPUからのライトアクセス、CPU以外のイニシエータからの任意のアクセス、があることである。図3に例示されるように、パケットルータ12,13は、上記事象を検出したときに、割込みコントローラ24に割込み要求信号IRQ1,IRQ2を出力し、CPU23に割り込み信号をINT出力する。これにより、ソフトウエアやハードウエアの不具合の早期発見に資することができる。
<< Debugging support for accesses competing for exclusive processing >>
When exclusive processing is used to implement a semaphore, the following events do not usually occur for the address for which the CPU is requesting exclusive access. There is a high possibility of a malfunction. The event means that there is a write access from a CPU other than the initiator (CPU) requesting exclusive processing, and an arbitrary access from an initiator other than the CPU. As illustrated in FIG. 3, when the packet routers 12 and 13 detect the above event, the packet routers 12 and 13 output interrupt request signals IRQ1 and IRQ2 to the interrupt controller 24 and output an interrupt signal INT to the CPU 23. Thereby, it can contribute to the early detection of the malfunction of software or hardware.

《階層化ルータの排他処理》
図10には複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築した例が示される。パケットルータ150,151の間には中継回路として例えばキューイングバッファ(QUEBUF)152は配置される。パケットルータ150にはイニシエータ160,161が接続され、パケットルータ151にはイニシエータ162,163が接続される。代表的に示されたターゲット164はパケットルータ151に接続される。このように、複数のパケットルータ150,151がキューイングバッファ152を介して複数階層に直列接続されているとき、夫々のパケットルータ150,151のリクエストリソースは、イニシエータから所要のターゲットに対するアクセス要求に伴う排他処理要求を受理する排他処理機能を備える。例えばリクエストリソースは図1で説明したように構成される。この場合、パケットルータ150のセレクタ84の出力は例えばワイヤード・オアでキューイングバッファ152の上流側ポートに接続される。キューイングバッファ152の下流側ポートは、一つのイニシエータとしてパケットルータ151のリクエストリソースに接続されればよい。
<< Exclusive processing of layered router >>
FIG. 10 shows an example in which an on-chip interconnect is constructed by hierarchically combining a plurality of packet routers. For example, a queuing buffer (QUEBUF) 152 is arranged between the packet routers 150 and 151 as a relay circuit. Initiators 160 and 161 are connected to the packet router 150, and initiators 162 and 163 are connected to the packet router 151. A representatively shown target 164 is connected to the packet router 151. In this way, when a plurality of packet routers 150 and 151 are connected in series in a plurality of layers via the queuing buffer 152, the request resource of each packet router 150 and 151 is an access request from the initiator to the required target. It has an exclusive processing function that accepts an accompanying exclusive processing request. For example, the request resource is configured as described in FIG. In this case, the output of the selector 84 of the packet router 150 is connected to the upstream port of the queuing buffer 152 by, for example, wired OR. The downstream port of the queuing buffer 152 may be connected to the request resource of the packet router 151 as one initiator.

階層的インターコネクトを構成する複数のパケットルータ150,151のうち、アクセス要求の上流(イニシエータに近い側)のパケットルータ150に排他処理機構を持たない場合、上流側パケットルータ150に接続された一のイニシエータ160からの排他処理要求を伴うアクセスに続いて同じ階層のパケットルータ150に接続された別のイニシエータ161が前記アクセス要求と同じアドレスに対してアクセス要求を送信したときに、ハングアップが発生する。これは、パケットルータ間の中継回路(キューイングバッファ)152が前記一のイニシエータ160のリクエストパケットをパケットルータに送信したときに下位階層のパケットルータ151が排他処理によって前記別のイニシエータ161のアクセス要求を抑止するために、当該一のイニシエータ160が排他処理停止要求を通知するアクセス要求が中継回路152を通れずに下流のパケットルータ151に送信できないからである。   Of the plurality of packet routers 150 and 151 constituting the hierarchical interconnect, when the packet router 150 upstream of the access request (on the side close to the initiator) does not have an exclusive processing mechanism, the one connected to the upstream packet router 150 A hang-up occurs when another initiator 161 connected to the packet router 150 in the same hierarchy transmits an access request to the same address as the access request following the access accompanying the exclusive processing request from the initiator 160. . This is because when the relay circuit (queuing buffer) 152 between the packet routers transmits the request packet of the one initiator 160 to the packet router, the lower-layer packet router 151 performs an access request of the other initiator 161 by exclusive processing. This is because an access request for notifying the exclusive processing stop request from the one initiator 160 cannot be transmitted to the downstream packet router 151 without passing through the relay circuit 152.

また、アクセス要求の下流のパケットルータ151に排他処理機能を持たない場合は、排他処理機能を有する上流のパケットルータ150に接続するイニシエータ160,161からの排他処理要求を下流のパケットルータ151が受理しないため、排他性を保証することができない。   If the downstream packet router 151 of the access request does not have an exclusive processing function, the downstream packet router 151 accepts the exclusive processing request from the initiators 160 and 161 connected to the upstream packet router 150 having the exclusive processing function. Therefore, exclusivity cannot be guaranteed.

図11と図12には複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築したとき、排他処理を要求するイニシエータを同一階層のパケットルータに集約して接続した例が示される。図11及び図12においてパケットルータ150、151及びキューイングバッファ152は図10と同じであり、パケットルータ150、151は共に排他制御機能を備える。図11及び図12ではイニシエータ170,171は排他処理を要求するイニシエータとされ、イニシエータ172,173は排他処理を要求しないイニシエータとされる。このように、排他処理要求を伴うアクセスを要求するイニシエータは、同一階層のパケットルータに集約して結合される。   FIG. 11 and FIG. 12 show an example in which, when an on-chip interconnect is constructed by hierarchically combining a plurality of packet routers, initiators that request exclusive processing are aggregated and connected to packet routers in the same hierarchy. 11 and 12, the packet routers 150 and 151 and the queuing buffer 152 are the same as those in FIG. 10, and both the packet routers 150 and 151 have an exclusive control function. 11 and 12, initiators 170 and 171 are initiators that request exclusive processing, and initiators 172 and 173 are initiators that do not request exclusive processing. In this way, initiators that request access with exclusive processing requests are aggregated and coupled to packet routers in the same hierarchy.

図13に例示されるように、排他処理要求を行なうイニシエータ170,171を、排他処理要求を行なわないイニシエータ172,173に混在させて上流及び下流のパケットルータ150,151に分散配置した場合、上流及び下流のイニシエータ170,171がそれと同一アドレスについて排他的なアクセスを要求したときには、上流側で排他処理を要求しないイニシエータ172からのアクセス要求は、それが前記排他的なアクセス要求によって抑止されるべきものか否かにかかわらず、抑止される。これは、中継回路152において、先に上流側のイニシエータ170から下流側のパケットルータ151に転送されるべき排他処理要求のアクセス要求が、下流側のイニシエータ171の排他的アクセス終了まで、下流側への伝達が抑止されるためである。   As illustrated in FIG. 13, when initiators 170 and 171 that perform exclusive processing requests are mixed with initiators 172 and 173 that do not perform exclusive processing requests and are distributed in upstream and downstream packet routers 150 and 151, When the downstream initiators 170 and 171 request exclusive access for the same address, access requests from the initiator 172 that does not request exclusive processing on the upstream side should be suppressed by the exclusive access request. Regardless of whether it is a thing or not. This is because, in the relay circuit 152, the access request for the exclusive processing request to be transferred from the upstream initiator 170 to the downstream packet router 151 first is downstream until the exclusive access of the downstream initiator 171 ends. This is because the transmission of is suppressed.

以上説明した実施の形態によれば以下の作用効果がある。   The embodiment described above has the following effects.

(1)排他処理対象アドレスを対象とした、ピンポイントの排他処理ができる。このため,排他処理に伴う転送性能を向上させることができる。本発明では排他情報保持バッファに排他処理対象アドレスを保持し,アクセス要求が排他処理対象アドレスに該当するか否かを判定し,該当するアクセス要求だけを排除するからである。   (1) Pinpoint exclusive processing can be performed for the exclusive processing target address. For this reason, the transfer performance accompanying the exclusive process can be improved. This is because, in the present invention, the exclusive processing target address is held in the exclusive information holding buffer, it is determined whether or not the access request corresponds to the exclusive processing target address, and only the corresponding access request is excluded.

(2)排他処理対象アドレスに限定した排他処理と、(スループット向上を目的とした)排他処理対象アドレスを限定しない排他処理を、一つのSOC若しくはチップに混在できる。本発明ではアクセス要求先のアドレスを振り分け回路で判定してリクエストパケットを所定のリクエストリソースに簡単に振り分けることができるからである。   (2) Exclusive processing that is limited to exclusive processing target addresses and exclusive processing that does not limit exclusive processing target addresses (for the purpose of improving throughput) can be mixed in one SOC or chip. This is because in the present invention, the address of the access request destination can be determined by the distribution circuit, and the request packet can be easily distributed to a predetermined request resource.

(3)単一のイニシエータによる複数の排他的アクセスを同時に処理できる。排他情報保持バッファに、プロセス識別情報(プロセスID)を記憶させ、アクセス要求が排他処理対象プロセスIDに該当するか否かを判定し、該当するアクセス要求だけを排除するからである。   (3) A plurality of exclusive accesses by a single initiator can be processed simultaneously. This is because the process identification information (process ID) is stored in the exclusive information holding buffer, it is determined whether the access request corresponds to the exclusive process target process ID, and only the corresponding access request is excluded.

(4)排他処理に伴って抑止されるアクセス要求を調停前に排除するので、排他処理に伴って抑止されるアクセス要求が調停処理によって受理されることがない。結果として有効な(排他処理に伴って排除されない)アクセスが早く受理され、高いデータ転送性能を得る。イニシエータと調停回路の間にイニシエータ毎に比較回路を配置するから、調停前に排他処理によって抑止すべきアクセス要求を抑止し、調停回路が排他処理によって抑止されないアクセス要求だけを調停対象とするからである。   (4) Since the access request that is suppressed along with the exclusion process is eliminated before arbitration, the access request that is suppressed along with the exclusion process is not accepted by the arbitration process. As a result, an effective access (which is not excluded with the exclusion process) is accepted early, and high data transfer performance is obtained. Because a comparison circuit is arranged for each initiator between the initiator and the arbitration circuit, access requests that should be suppressed by exclusive processing before arbitration are suppressed, and only access requests that are not suppressed by exclusive processing by the arbitration circuit are subject to arbitration. is there.

(5)階層インターコネクトにおいて、排他処理によるハングアップを回避できる。複数のパケットルータを用いて階層的に構成されたインターコネクトにおいて、上流(イニシエータに近い側)のパケットルータが、排他処理によって抑止されるべきアクセス要求を抑止するためである。この抑止動作により、下流(ターゲットに近い側)のパケットルータによる排他処理によって抑止されるリクエストパケットが中継回路に滞留しないようにするためである。下流のパケットルータによる排他処理によって抑止されるアクセス要求が中継回路に滞留すると、下流のパケットルータに排他的アクセスの終了を通知するアクセス要求を転送できなくなり、これによってハングアップ状態に陥る。   (5) In the hierarchical interconnect, hang-up due to exclusive processing can be avoided. This is because, in an interconnect configured hierarchically using a plurality of packet routers, an upstream (closer to the initiator) packet router suppresses an access request that should be suppressed by the exclusion process. This is to prevent the request packet that is suppressed by the exclusive processing by the downstream (closer to the target) packet router from staying in the relay circuit. If an access request that is suppressed by the exclusive processing by the downstream packet router stays in the relay circuit, the access request for notifying the downstream packet router of the end of exclusive access cannot be transferred, and this causes a hang-up state.

(6)階層インターコネクトにおいて、排他処理に伴って、排他処理によって排除されないアクセスが排他処理完了まで抑止され続けることがない。排他制御を要求するイニシエータを異なるパケットルータに接続しないため、排他制御によって抑止されるべきアクセス要求が、排他制御によって抑止されないアクセス要求の処理を阻害しないからである。   (6) In the hierarchical interconnect, the access that is not excluded by the exclusion process is not suppressed until the exclusion process is completed along with the exclusion process. This is because an initiator requesting exclusive control is not connected to a different packet router, so that an access request that should be suppressed by exclusive control does not inhibit processing of an access request that is not suppressed by exclusive control.

(7)排他的処理の対象となっているアドレスに対する不正なアクセスを検出することにより、ソフトウエアやハードウエアの不具合の早期発見を容易にする。CPUによる排他処理の対象となるアドレスに対して、前記CPU以外のCPUがライトアクセスを実行したり、前記CPU以外の非CPUであるイニシエータがアクセスしたりすることは、通常意図的に発生しない事象であり、不具合である可能性が高い。排他処理の対象となるアドレスに対する前記CPU以外のCPUによるライトアクセスと、前記CPU以外の非CPUであるイニシエータによるアクセスを検出し、これによって割り込み信号をアサートできるからである。   (7) By detecting unauthorized access to the address that is the subject of exclusive processing, early detection of software or hardware problems is facilitated. An event that a CPU other than the CPU performs a write access to an address that is subject to exclusive processing by the CPU or an initiator that is a non-CPU other than the CPU does not normally occur intentionally Therefore, there is a high possibility of a malfunction. This is because it is possible to detect a write access by a CPU other than the CPU and an access by an initiator that is a non-CPU other than the CPU, and thereby assert an interrupt signal with respect to an address to be subjected to exclusion processing.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.

図1はパケットルータのリクエストリソースについて原理的構成を具体的に例示するブロック図である。FIG. 1 is a block diagram specifically illustrating the basic configuration of a request resource of a packet router. 図2はスプリットトランザクションによるパケット交換方式のシステムの概念を例示するブロック図である。FIG. 2 is a block diagram illustrating the concept of a packet switching system using split transactions. 図3はスプリットトランザクションによるパケット交換を適用したマイクロコンピュータ及び拡張デバイスからなるチップセットのブロック図である。FIG. 3 is a block diagram of a chip set including a microcomputer and an expansion device to which packet switching by split transaction is applied. 図4は排他情報バッファが保有する排他情報と排他制御レジスタが保有する制御情報を例示する説明図である。FIG. 4 is an explanatory diagram illustrating the exclusive information held in the exclusive information buffer and the control information held in the exclusive control register. 図5は比較回路90の一例としてアドレス比較と排他要求比較を行なう構成を例示する論理回路図である。FIG. 5 is a logic circuit diagram illustrating a configuration for performing address comparison and exclusion request comparison as an example of the comparison circuit 90. 図6は比較回路90の一例としてアドレス比較、排他要求比較及びバイトイネーブル比較を行なう構成を例示する論理回路図である。FIG. 6 is a logic circuit diagram illustrating a configuration for performing address comparison, exclusion request comparison, and byte enable comparison as an example of the comparison circuit 90. 図7は図6に対して更に対象イニシエータ番号TGINITも比較対象にした比較回路90の一例を例示する論理回路図である。FIG. 7 is a logic circuit diagram illustrating an example of the comparison circuit 90 in which the target initiator number TGINIT is also compared with that in FIG. 図8はターゲット単位でアクセスの無効化を行うために振り分け回路を採用したリクエストリソースを例示するブロック図である。FIG. 8 is a block diagram illustrating request resources that employ a distribution circuit to invalidate access on a target basis. 図9はターゲットを最小単位として排他処理要求に対する制御を行うための比較回路を例示する論理回路図である。FIG. 9 is a logic circuit diagram illustrating a comparison circuit for performing a control for an exclusive processing request with a target as a minimum unit. 図10は複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築するときのパケットルータの排他処理機能に着目した説明図である。FIG. 10 is an explanatory view focusing on the exclusive processing function of the packet router when an on-chip interconnect is constructed by hierarchically combining a plurality of packet routers. 図11は複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築するときの排他処理を要求するイニシエータの集約配置に着目した説明図である。FIG. 11 is an explanatory diagram focusing on the aggregated arrangement of initiators that request exclusive processing when an on-chip interconnect is constructed by hierarchically combining a plurality of packet routers. 図12は複数のパケットルータを階層的に組み合わせてオンチップインターコネクトを構築するときの排他処理を要求するイニシエータの別の集約配置に着目した説明図である。FIG. 12 is an explanatory diagram focusing on another aggregated arrangement of initiators that request exclusive processing when an on-chip interconnect is constructed by hierarchically combining a plurality of packet routers. 図13は排他処理を要求するイニシエータを分散配置したときの問題点に着目した説明図である。FIG. 13 is an explanatory diagram focusing on the problem when the initiators that request exclusive processing are distributedly arranged.

符号の説明Explanation of symbols

1 イニシエータ(INIT)
2 ターゲット(TGET)
3 パケットルータ(PCKTRT)
3A リクエストリソース(REQRSC)
3B レスポンスリソース(RESRSC)
REQPCKT リクエストパケット
REQ リクエスト
GNT グラント
ADD アドレス
BE バイトイネーブル
LCK ロック
RESPCKT レスポンスパケット
10 マイクロコンピュータ
11 拡張デバイス
12,13パケットルータ
14 キューイングバッファ(QUEBUF)
15 パケットルータ
20〜23 中央処理装置(CPU)
24 割り込みコントローラ(INTC)
25 ROMアクセスコントローラ(ROMC)
26 周辺制御部(PRPHC)
27 ルーティングコントローラレジスタ(RCREG)
31 表示制御部(DISPC)
32 ハードディスク制御部(HDDC)
33 ダイレクト・メモリ・アクセス・コントローラ(DMAC)
34 フラッシュメモリコントローラ(FMRYC)
35 シンクロナスDRAMコントローラ(DMRYC)
36 周辺制御部(PRPHC)
80 リクエストリソース(REQRSC)
60,61,62 イニシエータ
70、71、72 ターゲット
81 排他情報バッファ(EXCLBUF)
90,91,92 比較回路(COMP)
100,101,102 アクセス要求無効化回路(DSABL)
82 調停回路(ARBTR)
83 調停ロジック(ARBLGC)
84 セレクタ(SLCTR)
130、131 リクエストリソース(REQRSC)
150,151 パケットルータ
152 キューイングバッファ(QUEBUF)
160,161、162,163 イニシエータ
170,171,172,173 イニシエータ
1 Initiator (INIT)
2 Target (TGET)
3 Packet router (PCKTTR)
3A Request resource (REQRSC)
3B Response resource (RESRSC)
REQPCKT request packet REQ request GNT grant ADD address BE byte enable LCK lock RESPCKT response packet 10 microcomputer 11 expansion device 12, 13 packet router 14 queuing buffer (QUEBUF)
15 Packet router 20-23 Central processing unit (CPU)
24 Interrupt controller (INTC)
25 ROM access controller (ROMC)
26 Peripheral control unit (PRPHC)
27 Routing controller register (RCREG)
31 Display controller (DISPC)
32 Hard disk controller (HDDC)
33 Direct Memory Access Controller (DMAC)
34 Flash memory controller (FMRYC)
35 Synchronous DRAM controller (DMRYC)
36 Peripheral control unit (PRPHC)
80 Request resource (REQRSC)
60, 61, 62 Initiator 70, 71, 72 Target 81 Exclusive information buffer (EXCLBUF)
90, 91, 92 Comparison circuit (COMP)
100, 101, 102 Access request invalidation circuit (DSABL)
82 Arbitration circuit (ARBTR)
83 Arbitration logic (ARBLGC)
84 Selector (SLCTR)
130, 131 Request resource (REQRSC)
150, 151 Packet router 152 Queuing buffer (QUEBUF)
160, 161, 162, 163 Initiator 170, 171, 172, 173 Initiator

Claims (19)

アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有し、
前記リクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する半導体装置。
A request resource that controls a plurality of initiators that can request access, a plurality of targets that can respond to access, and a request packet given from the initiator that requests access to a target that responds to the access request And a packet router having a response resource for performing control to return a response packet given from a target responding to the access request to the initiator of the access request source,
The request resource, when receiving a request packet including an exclusive processing request, exclusive information indicating that there is an exclusive processing request from the request source, and an exclusive information buffer that holds access information included in the request packet;
A comparison circuit that compares the information stored in the exclusive information buffer with the access information included in the request packet given from the initiator, and outputs the comparison result;
An access request invalidation circuit that invalidates an access request different from an access request with an accepted exclusive processing request, based on a comparison result by the comparison circuit, maximizing a range in which access target addresses overlap;
The access request validated by the access request invalidation circuit is input, arbitration is performed for the conflicting access request, one access request is accepted, and the request packet corresponding to the accepted access request is targeted. A semiconductor device comprising: an arbitration circuit that performs control for providing the data;
前記調停回路は、前記イニシエータ毎にグラント信号を出力し、前記イニシエータからアクセス要求を入力した場合、アクセス要求元のイニシエータに対応するグラント信号を一旦アサートした後は、前記アクセス要求無効化回路によりそのアクセス要求が有効とされた場合も無効とされた場合も、前記グラント信号のアサート状態を、当該アクセス要求に伴うリクエストパケットを応答先のターゲットに転送開始するまで維持する、請求項1記載の半導体装置。   The arbitration circuit outputs a grant signal for each initiator, and when an access request is input from the initiator, once the grant signal corresponding to the initiator of the access request source is asserted, the access request invalidation circuit 2. The semiconductor according to claim 1, wherein the assertion state of the grant signal is maintained until transfer of a request packet accompanying the access request to a response destination target is started regardless of whether the access request is validated or invalidated. apparatus. 前記イニシエータは、アクセスを要求した場合、入力されるグラント信号のディアサート状態によってアクセス要求が受理されていないと判定し、入力されるグラント信号がアサート状態であることにより、アクセス要求が受理されたと判定する、請求項1記載の半導体装置。   When the initiator requests access, the initiator determines that the access request is not accepted by the deasserted state of the input grant signal, and the access request is accepted when the input grant signal is in the asserted state. The semiconductor device according to claim 1, wherein the determination is made. 前記排他情報バッファが保持するアクセス情報はアクセス対象アドレス情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるイニシエータからのアクセス要求を無効化する、請求項1記載の半導体装置。
The access information held by the exclusive information buffer is access target address information,
2. The semiconductor device according to claim 1, wherein the access request invalidation circuit invalidates an access request from an initiator different from an access request accompanied by an accepted exclusive processing request, with a maximum range of overlapping access target addresses. .
前記排他情報バッファが保持するアクセス情報は、アクセス対象アドレス情報とそのアクセス対象アドレス情報を用いるプロセスのプロセスID情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する、請求項1記載の半導体装置。
The access information held by the exclusive information buffer is access target address information and process ID information of a process using the access target address information.
2. The semiconductor device according to claim 1, wherein the access request invalidation circuit invalidates an access request having a process ID different from that of an access request accompanied by an accepted exclusive processing request, while maximizing a range in which access target addresses overlap. .
前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する、請求項5記載の半導体装置。   The semiconductor device according to claim 5, wherein the exclusive information buffer has a storage capacity capable of storing access information for each access request accompanied by an exclusive processing request that can be received in parallel by the arbitration circuit. 前記排他情報バッファが保持するアクセス情報は、複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する、請求項1記載の半導体装置。
The access information held by the exclusive information buffer is access target address information indicating the head of a plurality of bytes to be accessed, and byte enable information indicating the validity within the access target range of the plurality of bytes in bytes.
The access request invalidation circuit accepts an exclusive process that is accepted by maximizing a range that overlaps an address that is valid in the byte enable information within a plurality of bytes of the access target range starting from the address of the access target address information. The semiconductor device according to claim 1, wherein an access request different from an access request accompanying the request is invalidated.
前記排他情報バッファが保持するアクセス情報は、複数バイトのアクセス対象の先頭を示すアクセス対象アドレス情報と、複数バイトのアクセス対象範囲内の有効性をバイト単位で示すバイトイネーブル情報と、アクセス対象のアドレス情報を用いるプロセスのプロセスID情報であり、
前記アクセス要求無効化回路は、アクセス対象アドレス情報のアドレスを先頭とする複数バイトのアクセス対象範囲内においてバイトイネーブル情報で有効性とされるアドレスと重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とはプロセスIDが異なるアクセス要求を無効化する、請求項1記載の半導体装置。
The access information held by the exclusive information buffer includes access target address information indicating the start of a multi-byte access target, byte enable information indicating the validity within a multi-byte access target range in bytes, and an access target address. Process ID information of the process using the information,
The access request invalidation circuit accepts an exclusive process that is accepted by maximizing a range that overlaps an address that is valid in the byte enable information within a plurality of bytes of the access target range starting from the address of the access target address information. The semiconductor device according to claim 1, wherein an access request having a process ID different from that of the access request accompanied by the request is invalidated.
前記排他情報バッファは、前記調停回路が並列的に受理可能な排他処理要求を伴うアクセス要求毎のアクセス情報を格納可能な記憶容量を有する、請求項8記載の半導体装置。   9. The semiconductor device according to claim 8, wherein the exclusive information buffer has a storage capacity capable of storing access information for each access request accompanied by an exclusive processing request that can be received in parallel by the arbitration circuit. 排他制御の対象とするアクセスの属性を保持する排他制御レジスタを更に有し、
前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化する、請求項1記載の半導体装置。
It further has an exclusive control register that holds the attribute of access to be subject to exclusive control,
The access request invalidation circuit, based on the comparison result by the comparison circuit and the access attribute information held in the exclusive control register, accepts an exclusive processing request that has been accepted with a maximum range of overlapping addresses to be accessed. The semiconductor device according to claim 1, wherein an access request different from the accompanying access request is invalidated.
前記排他制御レジスタには、アクセス属性として、アクセス方向が設定され、
前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異り且つ前記排他制御レジスタに設定されたアクセス方向へのアクセス要求を無効化する、請求項10記載の半導体装置。
In the exclusive control register, an access direction is set as an access attribute,
The access request invalidation circuit, based on the comparison result by the comparison circuit and the access attribute information held in the exclusive control register, accepts an exclusive processing request that has been accepted with a maximum range of overlapping addresses to be accessed. 11. The semiconductor device according to claim 10, wherein the access request is different from the accompanying access request and invalidates the access request in the access direction set in the exclusive control register.
前記排他制御レジスタには、アクセス属性として、イニシエータの識別情報が設定され、
前記アクセス要求無効化回路は、前記比較回路による比較結果と前記排他制御レジスタに保持されたアクセスの属性情報と基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異り且つ前記排他制御レジスタに設定されたイニシエータからのアクセス要求を無効化する、請求項10記載の半導体装置。
In the exclusive control register, identification information of the initiator is set as an access attribute,
The access request invalidation circuit, based on the comparison result by the comparison circuit and the access attribute information held in the exclusive control register, accepts an exclusive processing request that has been accepted with a maximum range of overlapping addresses to be accessed. 11. The semiconductor device according to claim 10, wherein the access request is different from the accompanying access request and invalidates the access request from the initiator set in the exclusive control register.
前記イニシエータとして機能し得る複数のCPUと、前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備え、
前記メモリは前記複数のCPUの共有メモリであり、
前記パケットルータは、一のCPUから前記共有メモリに対する排他的な処理の要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを、前記割り込みコントローラに通知する、請求項1記載の半導体装置。
A plurality of CPUs that can function as the initiator, a memory that can function as the target, and an interrupt controller,
The memory is a shared memory of the plurality of CPUs;
When the packet router receives a request packet accompanied by an exclusive processing request for the shared memory from one CPU, the access request accompanied by the accepted exclusive processing request is within a range overlapping with the access target address. The semiconductor device according to claim 1, wherein the interrupt controller is notified of a different write access request.
前記ターゲットとして機能し得るメモリ及び割り込みコントローラを備え、
前記メモリは複数のイニシエータの共有メモリであり、
前記パケットルータは、一のイニシエータから前記共有メモリに対する排他処理要求を伴うリクエストパケットを受理した場合、そのアクセス対象アドレスと重なる範囲で、受理されている排他処理要求を伴うアクセス要求とは異なるライトアクセス要求があったことを、前記割り込みコントローラに通知する、請求項1記載の半導体装置。
A memory and an interrupt controller that can function as the target;
The memory is a shared memory of a plurality of initiators,
When the packet router receives a request packet accompanied by an exclusive processing request for the shared memory from a single initiator, the write access is different from the accepted access request accompanied by the exclusive processing request within a range overlapping with the access target address. The semiconductor device according to claim 1, wherein the interrupt controller is notified of a request.
アクセスを要求することが可能な複数のイニシエータと、アクセスに応答することが可能な複数のターゲットと、アクセスを要求するイニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行う第1のリクエストリソース及び第2のリクエストリソース並びにアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えたパケットルータとを有し、
前記第1のリクエストリソースは特定の一のターゲットを対象とするリクエストパケットに対する制御を行い、
前記第2のリクエストリソースは他の複数のターゲットを対象とするリクエストパケットに対する制御を行い、
前記第1及びs第2のリクエストリソースは、排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する半導体装置。
A first control is performed to provide a plurality of initiators capable of requesting access, a plurality of targets capable of responding to access, and a request packet provided from the initiator requesting access to a target responding to the access request. A request router, a second request resource, and a packet router provided with a response resource for performing control to return a response packet given from a target responding to the access request to the initiator of the access request source,
The first request resource controls a request packet targeting a specific target;
The second request resource performs control on a request packet targeting a plurality of other targets,
The first and s second request resources hold exclusive information indicating that there is an exclusive processing request from the request source and access information included in the request packet when a request packet including an exclusive processing request is received. An exclusive information buffer;
A comparison circuit that compares the information stored in the exclusive information buffer with the access information included in the request packet given from the initiator, and outputs the comparison result;
An access request invalidation circuit that invalidates an access request different from an access request with an accepted exclusive processing request, based on a comparison result by the comparison circuit, maximizing a range in which access target addresses overlap;
The access request validated by the access request invalidation circuit is input, arbitration is performed for the conflicting access request, one access request is accepted, and the request packet corresponding to the accepted access request is targeted. A semiconductor device comprising: an arbitration circuit that performs control for providing the data;
アクセスを要求することが可能な複数のイニシエータと、
アクセスに応答することが可能な複数のターゲットと、
前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースを備えた複数のパケットルータと、を備え、
前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対するアクセス要求に伴う排他処理要求を受理する排他処理機能を備える、半導体装置。
Multiple initiators that can request access;
Multiple targets that can respond to access,
A plurality of request resources including a request resource for performing control to give a request packet given from the initiator to a target responding to the access request and a response resource for controlling returning a response packet given from the target responding to the access request to the initiator of the access request source A packet router, and
When the plurality of packet routers are connected in series in a plurality of layers via a relay circuit, the request resource of each packet router accepts an exclusive processing request accompanying an access request for a required target from the initiator. A semiconductor device comprising:
前記排他処理機能を備えるリクエストリソースは、
排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する請求項16記載の半導体装置。
The request resource having the exclusive processing function is:
When receiving a request packet including an exclusive processing request, exclusive information indicating that there is an exclusive processing request from the request source, and an exclusive information buffer that holds access information included in the request packet;
A comparison circuit that compares the information stored in the exclusive information buffer with the access information included in the request packet given from the initiator, and outputs the comparison result;
An access request invalidation circuit that invalidates an access request different from an access request with an accepted exclusive processing request, based on a comparison result by the comparison circuit, maximizing a range in which access target addresses overlap;
The access request validated by the access request invalidation circuit is input, arbitration is performed for the conflicting access request, one access request is accepted, and the request packet corresponding to the accepted access request is targeted. The semiconductor device according to claim 16, further comprising: an arbitration circuit that performs control for giving.
アクセスを要求することが可能な複数のイニシエータと、
アクセスに応答することが可能な複数のターゲットと、
前記イニシエータから与えられるリクエストパケットをアクセス要求に応答するターゲットに与える制御を行うリクエストリソース及びアクセス要求に応答するターゲットから与えられるレスポンスパケットをアクセス要求元のイニシエータに返す制御を行うレスポンスリソースと備えた複数のパケットルータと、を備え、
前記複数のパケットルータが中継回路を介して複数階層に直列接続されているとき、前記夫々のパケットルータのリクエストリソースは、イニシエータから所要のターゲットに対する排他的な処理要求を受理する排他処理機能を備え、
排他処理要求を伴うアクセスを要求するイニシエータは、同一階層のパケットルータに集約して結合される、半導体装置。
Multiple initiators that can request access;
Multiple targets that can respond to access,
A plurality of request resources for performing control to give a request packet given from the initiator to a target responding to the access request and a response resource for controlling to return a response packet given from the target to respond to the access request to the initiator of the access request A packet router, and
When the plurality of packet routers are connected in series in a plurality of layers through a relay circuit, the request resource of each of the packet routers has an exclusive processing function for receiving an exclusive processing request for a required target from the initiator. ,
A semiconductor device in which initiators that request access with an exclusive processing request are aggregated and coupled to packet routers in the same hierarchy.
前記排他処理機能を備えるリクエストリソースは、
排他処理要求を含むリクエストパケットを受理したとき当該要求元から排他処理要求があったことを示す排他情報と当該リクエストパケットに含まれるアクセス情報を保持する排他情報バッファと、
前記排他情報バッファに格納された情報とイニシエータから与えられるリクエストパケットに含まれるアクセス情報とを比較して、その比較結果を出力する比較回路と、
前記比較回路による比較結果に基づいて、アクセス対象アドレスが重なる範囲を最大限として、受理されている排他処理要求を伴うアクセス要求とは異なるアクセス要求を無効化するアクセス要求無効化回路と、
前記アクセス要求無効化回路により有効とされたアクセス要求を入力し、競合するアクセス要求に対して調停を行って、一つのアクセス要求を受理し、受理したアクセス要求に対応されるリクエストパケットをターゲットに与えるための制御を行う調停回路と、を有する請求項18記載の半導体装置。
The request resource having the exclusive processing function is:
When receiving a request packet including an exclusive processing request, exclusive information indicating that there is an exclusive processing request from the request source, and an exclusive information buffer that holds access information included in the request packet;
A comparison circuit that compares the information stored in the exclusive information buffer with the access information included in the request packet given from the initiator, and outputs the comparison result;
An access request invalidation circuit that invalidates an access request different from an access request with an accepted exclusive processing request, based on a comparison result by the comparison circuit, maximizing a range in which access target addresses overlap;
The access request validated by the access request invalidation circuit is input, arbitration is performed for the conflicting access request, one access request is accepted, and the request packet corresponding to the accepted access request is targeted. The semiconductor device according to claim 18, further comprising: an arbitration circuit that performs control for giving.
JP2008313936A 2008-12-10 2008-12-10 Semiconductor device Withdrawn JP2010140130A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008313936A JP2010140130A (en) 2008-12-10 2008-12-10 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008313936A JP2010140130A (en) 2008-12-10 2008-12-10 Semiconductor device

Publications (1)

Publication Number Publication Date
JP2010140130A true JP2010140130A (en) 2010-06-24

Family

ID=42350240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008313936A Withdrawn JP2010140130A (en) 2008-12-10 2008-12-10 Semiconductor device

Country Status (1)

Country Link
JP (1) JP2010140130A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360143B2 (en) 2010-07-01 2019-07-23 Qualcomm Incorporated Parallel use of integrated non-volatile memory and main volatile memory within a mobile device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360143B2 (en) 2010-07-01 2019-07-23 Qualcomm Incorporated Parallel use of integrated non-volatile memory and main volatile memory within a mobile device

Similar Documents

Publication Publication Date Title
US20250045230A1 (en) Bus architecture with transaction credit system
US9176913B2 (en) Coherence switch for I/O traffic
KR100248902B1 (en) Microprocessor architecture that can support multiple heterogeneous processors
US10509740B2 (en) Mutual exclusion in a non-coherent memory hierarchy
US5613075A (en) Method and apparatus for providing deterministic read access to main memory in a computer system
US6662251B2 (en) Selective targeting of transactions to devices on a shared bus
US11803505B2 (en) Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels
US7581054B2 (en) Data processing system
JP6382446B2 (en) Method and circuit for deadlock avoidance
TWI654560B (en) Multi-core shared page miss handler
US8521920B2 (en) Data processor
JP2008033893A (en) Multiprocessor system and access right setting method in multiprocessor system
US20080022052A1 (en) Bus Coupled Multiprocessor
US6928525B1 (en) Per cache line semaphore for cache access arbitration
US7006521B2 (en) External bus arbitration technique for multicore DSP device
JPH08263312A (en) Bus arbitration method and apparatus
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
JP2010140130A (en) Semiconductor device
JP2004062910A (en) Method for realizing semaphore to multi-core processor and controlling access to common resource
US9916243B2 (en) Method and apparatus for performing a bus lock and translation lookaside buffer invalidation
JP2010092101A (en) Information processor
JP2011221931A (en) Data processor
EP1984943B1 (en) Selective transaction request processing at an interconnect during a lockout
WO1992006432A1 (en) Device for controlling bus
US20010005870A1 (en) External bus control system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120306