JP5074697B2 - Bridge, information processing apparatus and access control method - Google Patents

Bridge, information processing apparatus and access control method Download PDF

Info

Publication number
JP5074697B2
JP5074697B2 JP2006066789A JP2006066789A JP5074697B2 JP 5074697 B2 JP5074697 B2 JP 5074697B2 JP 2006066789 A JP2006066789 A JP 2006066789A JP 2006066789 A JP2006066789 A JP 2006066789A JP 5074697 B2 JP5074697 B2 JP 5074697B2
Authority
JP
Japan
Prior art keywords
peripheral device
identifier
internal
internal bus
assigned
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.)
Expired - Fee Related
Application number
JP2006066789A
Other languages
Japanese (ja)
Other versions
JP2007241904A (en
Inventor
剛 山崎
英幸 斎藤
祐治 高橋
秀樹 三林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Sony Corp
Original Assignee
Sony Interactive Entertainment Inc
Sony Corp
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc, Sony Corp, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2006066789A priority Critical patent/JP5074697B2/en
Priority to US12/282,393 priority patent/US8095718B2/en
Priority to PCT/JP2006/323948 priority patent/WO2007105343A1/en
Publication of JP2007241904A publication Critical patent/JP2007241904A/en
Application granted granted Critical
Publication of JP5074697B2 publication Critical patent/JP5074697B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Description

本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットへのアクセス技術に関する。   The present invention relates to a technology for accessing a processor unit from a peripheral device connected to the processor unit.

パーソナルコンピュータやサーバには、IOIF(IO インターフェイス)や、バスたとえばPCI(Peripheral Component Interconnect)バスを介して各種の周辺デバイスが接続され、情報処理システムが構成される。   Various peripheral devices are connected to the personal computer and the server via an IOIF (IO interface) or a bus such as a PCI (Peripheral Component Interconnect) bus to constitute an information processing system.

周辺デバイスからプロセッサのメモリへアクセスする際に、プロセッサの負担を減らすために、DMA(ダイレクト・メモリ・アクセス)アーキテクチャを用いることが考えられる。こうすることによって、周辺デバイスは、プロセッサのメモリに直接アクセスすることができる。   In order to reduce the burden on the processor when accessing the memory of the processor from the peripheral device, it is conceivable to use a DMA (Direct Memory Access) architecture. This allows peripheral devices to directly access the processor's memory.

しかし、周辺デバイスの種類によって、要求されるアクセス速度が異なる。たとえば、グラフィックカードは他の周辺デバイスより高速なアクセスが要求される。効率の良いアクセスを実現するためには、周辺デバイスから、プロセッサのメモリへのアクセスの制御に工夫が要求される。   However, the required access speed differs depending on the type of peripheral device. For example, a graphics card is required to be accessed faster than other peripheral devices. In order to realize efficient access, a device is required to control access from the peripheral device to the memory of the processor.

本発明は、上記事情に鑑みてなされたものであり、その目的は、周辺デバイスからプロセッサのメモリへのアクセスにおいて、良い効率を図ることができる技術を提供することにある。   The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technique capable of achieving good efficiency in accessing a memory of a processor from a peripheral device.

本発明のある態様は、ブリッジである。このブリッジは、プロセッサユニットと周辺デバイスを接続するブリッジであって、下流ポートと中継部を有する。   One embodiment of the present invention is a bridge. This bridge connects a processor unit and peripheral devices, and has a downstream port and a relay unit.

下流ポートは、周辺デバイスと接続し、周辺デバイスとの間に提供されるバーチャルチャネルであって、周辺デバイスがそのいずれかを利用してプロセッサユニットのメモリへのアクセスを行うための複数の下流チャネルをサポートする。   The downstream port is a virtual channel that is connected to the peripheral device and provided to the peripheral device, and the peripheral device uses any of the downstream channels to access the memory of the processor unit. Support.

中継部は、周辺デバイスが下流ポートを介してプロセッサユニットのメモリへのアクセスを、プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについてメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する。   The relay unit is a plurality of virtual channels that are supported by the processor unit by the peripheral device to access the memory of the processor unit via the downstream port, and the memory bandwidth that can be used when accessing the memory for each channel is Relay to each assigned upstream channel.

この中継部は、下流チャネルの識別子と上流チャネルの識別子とを対応付けて記憶したテーブルを有し、該テーブルを参照して、周辺デバイスからのアクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを該周辺デバイスに割り当てる。   The relay unit has a table that stores the identifier of the downstream channel and the identifier of the upstream channel in association with each other, and refers to the table to determine the downstream channel used by the peripheral device according to the access from the peripheral device. Assign a corresponding upstream channel to the peripheral device.

また、中継部が複数の内部バスを有する場合において、テーブルを、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第1のテーブルと、内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第2のテーブルとを用いて構成するようにしてもよい。この場合、中継部は、周辺デバイスからのアクセスに応じて、第1のテーブルを参照して、該周辺デバイスが用いる下流チャネルに対応する内部バスを周辺デバイスに割り当て、第2のテーブルを参照して、周辺デバイスに割り当てられた内部バスに対応する上流チャネルを周辺デバイスに割り当てる。   When the relay unit has a plurality of internal buses, the table includes a first table in which identifiers of downstream channels and internal buses are stored in association with each other, and identifiers of internal buses and upstream channels. You may make it comprise using the 2nd table memorize | stored by matching. In this case, the relay unit refers to the first table according to the access from the peripheral device, allocates an internal bus corresponding to the downstream channel used by the peripheral device to the peripheral device, and refers to the second table. Thus, an upstream channel corresponding to the internal bus assigned to the peripheral device is assigned to the peripheral device.

さらに、第2のテーブルは、各内部バスにそれぞれ割り当てられた、ブリッジ内部におけるリソース帯域を、内部バスの識別子に対応付けて記憶しており、中継部は、該第2のテーブルを参照して、アクセスを行う周辺デバイスが使用するリソース帯域をさらに割り当てるようにしてもよい。   Further, the second table stores the resource bandwidth inside the bridge, which is assigned to each internal bus, in association with the identifier of the internal bus, and the relay unit refers to the second table. The resource band used by the peripheral device that performs access may be further allocated.

本発明の別の態様は、情報処理装置である。この情報処理装置は、プロセッサユニット、周辺デバイス、プロセッサユニットと周辺デバイスを接続するブリッジを備える。   Another aspect of the present invention is an information processing apparatus. The information processing apparatus includes a processor unit, a peripheral device, and a bridge that connects the processor unit and the peripheral device.

ブリッジとしては、上述した態様のブリッジを適用することができる。プロセッサユニットは、ブリッジにより、いずれかの上流チャネルが割り当てられたアクセスを、該上流チャネルに対して割り当てられたメモリ帯域でプロセッサユニットのメモリに中継するアクセス制御部を有する。   As the bridge, the bridge of the above-described aspect can be applied. The processor unit has an access control unit that relays an access to which any of the upstream channels is allocated by the bridge to the memory of the processor unit in a memory band allocated to the upstream channel.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記憶した記憶媒体などの間で相互に置換したものもまた、本発明の態様として有効である。   Note that any combination of the above-described constituent elements and the expression of the present invention replaced with each other between a method, an apparatus, a system, a computer program, a storage medium storing the computer program, etc. are also effective as an aspect of the present invention It is.

本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットのメモリへのアクセスにおいて、効率の向上を図ることができる。   The present invention can improve efficiency in accessing the memory of the processor unit from a peripheral device connected to the processor unit.

本発明の実施の形態の詳細を説明する前に、まず、本発明者が提案する技術の概要を説明する。   Before describing the details of the embodiment of the present invention, first, the outline of the technique proposed by the present inventor will be described.

図1に示す情報処理システムについて考える。この情報処理システムは、プロセッサユニット10と、複数ここでは例として2つの周辺デバイス30を有し、プロセッサユニット10と周辺デバイス30は、ブリッジ20により接続される。プロセッサユニット10は、単一のプロセッサを有するシングルプロセッサシステムであってもよいし、複数のプロセッサを含むマルチプロセッサシステムであってもよい。なお、プロセッサユニット10は、図示しないメモリを備え、マルチプロセッサシステムの場合においては、このメモリは、各プロセッサからアクセス可能な共有メモリである。   Consider the information processing system shown in FIG. This information processing system has a processor unit 10 and a plurality of peripheral devices 30 as an example here, and the processor unit 10 and the peripheral devices 30 are connected by a bridge 20. The processor unit 10 may be a single processor system having a single processor or a multiprocessor system including a plurality of processors. The processor unit 10 includes a memory (not shown). In the case of a multiprocessor system, this memory is a shared memory accessible from each processor.

図2は、ブリッジ20を示す。ブリッジ20は、周辺デバイス30と接続する下流ポート22と、プロセッサユニット10と接続する上流ポート28と、中継部24を備える。 下流ポート22は、周辺デバイス30が、プロセッサユニット10のメモリへアクセスするための複数のバーチャルチャネル(以下下流VCという)21をサポートし、周辺デバイス30は、いずれか1つまたは複数の下流VC21を用いてアクセスを行う。   FIG. 2 shows the bridge 20. The bridge 20 includes a downstream port 22 connected to the peripheral device 30, an upstream port 28 connected to the processor unit 10, and a relay unit 24. The downstream port 22 supports a plurality of virtual channels (hereinafter referred to as downstream VCs) 21 for the peripheral device 30 to access the memory of the processor unit 10, and the peripheral device 30 supports any one or a plurality of downstream VCs 21. Use to access.

周辺デバイス30は、プロセッサユニット10のメモリにアクセスするのに当たり、アクセス要求パケットを発行する。このアクセス要求パケットは、周辺デバイス30のアクセス先のメモリ領域のアドレスを指定可能なものであり、この周辺デバイス30が使用する下流VC21の識別子を含む。図3の上部は、周辺デバイス30が発行したアクセス要求パケット(以下入力パケットという)の例を示す。図中の下流VCIDは、該アクセスを行う周辺デバイス30が使用する下流VCの識別子であり、アドレスは、アクセス先のメモリ領域内の所定の位置を示しうるものである。   The peripheral device 30 issues an access request packet when accessing the memory of the processor unit 10. This access request packet can specify the address of the memory area to be accessed by the peripheral device 30 and includes the identifier of the downstream VC 21 used by the peripheral device 30. The upper part of FIG. 3 shows an example of an access request packet (hereinafter referred to as an input packet) issued by the peripheral device 30. The downstream VCID in the figure is an identifier of the downstream VC used by the peripheral device 30 that performs the access, and the address can indicate a predetermined position in the memory area of the access destination.

中継部24は、下流ポート22が受信した入力パケットを、図3の下部に示す出力パケットに変換し、この出力パケットは、上流ポート28によりプロセッサユニット10に出力される。   The relay unit 24 converts the input packet received by the downstream port 22 into an output packet shown in the lower part of FIG. 3, and this output packet is output to the processor unit 10 by the upstream port 28.

図3の下部に示すように、出力パケットは、上流VCIDとアドレスを有する。ここで、上流VCIDを説明する。   As shown in the lower part of FIG. 3, the output packet has an upstream VCID and an address. Here, the upstream VCID will be described.

上流ポート28は、プロセッサユニット10のメモリへアクセス可能な複数のバーチャルチャネル(以下、上流VCという)29をサポートし、これらの上流VC29はまた、プロセッサユニット10によりサポートされている。上流VCIDは、上流VC29の識別子である。   The upstream port 28 supports a plurality of virtual channels (hereinafter referred to as upstream VCs) 29 that can access the memory of the processor unit 10, and these upstream VCs 29 are also supported by the processor unit 10. The upstream VCID is an identifier of the upstream VC 29.

各上流VC29は、プロセッサユニット10のメモリへアクセスする際に使用するメモリ帯域をそれぞれ割り当てられている。すなわち、上流ポート28から出力された出力パケットは、それに含まれる上流VCIDによっていずれの上流VC29を指定し、これによりメモリ帯域を指定することができる。   Each upstream VC 29 is assigned a memory band to be used when accessing the memory of the processor unit 10. That is, the output packet output from the upstream port 28 can specify any upstream VC 29 by the upstream VCID included in the output packet, thereby specifying the memory bandwidth.

なお、「上流VC29がメモリ帯域を割り当てられている」とは、上流VC29とメモリ帯域が所定の対応関係を決められていればよく、直接に割り当てられているのはもちろん、間接に割り当てられているのもよい。たとえば、プロセッサユニット10の、上流ポート28と接続するIOIFが、メモリ帯域がそれぞれ割り当てられた複数のバーチャルチャネルをサポートし、上流VC29は、IOIFがサポートするバーチャルチャネルに割り当てられている場合において、上流VC29は、間接にメモリ帯域を割り当てられていると言える。   Note that “the upstream VC 29 is assigned a memory bandwidth” means that the upstream VC 29 and the memory bandwidth need only have a predetermined correspondence relationship, and are assigned directly or indirectly. It is good to be. For example, when the IOIF connected to the upstream port 28 of the processor unit 10 supports a plurality of virtual channels to which memory bandwidths are respectively allocated, and the upstream VC 29 is allocated to a virtual channel supported by the IOIF, It can be said that the VC 29 is indirectly assigned a memory band.

ブリッジ20の中継部24は、下流VC21を指定した入力パケットを、上流VC29を指定する出力パケットに変換する際に、たとえば図4に示すテーブルを用いる。このテーブルは、下流VC21の識別子(下流VCID)と、上流VC29の識別子(上流VCID)とを対応付けて記憶している。中継部24は、このテーブルを参照して、入力パケットに含まれる下流VCIDを、この下流VCIDに対応する上流VCIDに変換して出力パケットを得る。   The relay unit 24 of the bridge 20 uses, for example, a table shown in FIG. 4 when converting an input packet specifying the downstream VC 21 into an output packet specifying the upstream VC 29. This table stores the identifier of the downstream VC 21 (downstream VCID) and the identifier of the upstream VC 29 (upstream VCID) in association with each other. The relay unit 24 refers to this table, converts the downstream VCID included in the input packet into an upstream VCID corresponding to the downstream VCID, and obtains an output packet.

プロセッサユニット10は、図示しないアクセス制御部を有する。このアクセス制御部は、出力パケットに含まれる上流VCIDを読み出し、それによって指定された上流VCに対応するメモリ帯域を割り当てアクセスを中継することによって、このアクセスのためのメモリ帯域の予約を実現する。   The processor unit 10 has an access control unit (not shown). The access control unit reads the upstream VCID included in the output packet, allocates a memory band corresponding to the designated upstream VC, and relays the access, thereby realizing reservation of the memory band for this access.

このように、本発明者が提案したこの技術によれば、周辺デバイス30毎に、プロセッサユニット10のメモリへアクセスする際に使用可能なメモリ帯域を制御することができる。これによって、周辺デバイスの種類に応じてメモリ帯域を予約することができ、たとえばリアルタイムデータなどのためのメモリ帯域を保証することができる。   Thus, according to this technique proposed by the present inventor, it is possible to control the memory bandwidth that can be used when accessing the memory of the processor unit 10 for each peripheral device 30. As a result, a memory band can be reserved according to the type of the peripheral device, and for example, a memory band for real-time data can be guaranteed.

また、メモリ帯域の予約は、プロセッサユニット10のCPUを介さずに、ブリッジ20とプロセッサユニット10のアクセス制御部との協働によって直接行われるので、オーバーヘッドを防ぐことができる。   Further, the reservation of the memory bandwidth is directly performed by the cooperation of the bridge 20 and the access control unit of the processor unit 10 without using the CPU of the processor unit 10, so that overhead can be prevented.

次いで、ブリッジ20内において、下流ポート22から上流ポート28へのデータ転送を担う内部バス(図示せず)が複数ある場合について考える。この場合において、ブリッジ20の中継部24は、図5に示すテーブルを用いることができる。   Next, consider the case where there are a plurality of internal buses (not shown) that carry data transfer from the downstream port 22 to the upstream port 28 in the bridge 20. In this case, the relay unit 24 of the bridge 20 can use the table shown in FIG.

図5に示すテーブルは、第1のテーブルと第2のテーブルを有する。第1のテーブルは、下流VCIDと、内部バスの識別子とを対応付けて記憶している。第2のテーブルは、内部バスの識別子と、上流VCIDとを対応付けて記憶している。なお、第2のテーブルは、内部バスの識別子と、上流VCIDに対応して、リソース割合も記憶しており、その詳細については後述する。   The table shown in FIG. 5 has a first table and a second table. The first table stores the downstream VCID and the internal bus identifier in association with each other. The second table stores an internal bus identifier and an upstream VCID in association with each other. The second table also stores resource ratios corresponding to internal bus identifiers and upstream VCIDs, details of which will be described later.

ブリッジ20の中継部24は、まず、第1のテーブルを参照して、周辺デバイス30から受信した入力パケットに含まれる下流VCIDに対応する内部バスの識別子を得、この識別子により示される内部バスを、このアクセスに割り当てる。この際、入力パケットに含まれる下流VCIDを、割り当てられた内部バスの識別子に変換する。以下、この変換されたパケットを内部パケットといい、図6はそれを示している。なお、図6において、内部バスIDは、内部バスの識別子である。   The relay unit 24 of the bridge 20 first refers to the first table, obtains the identifier of the internal bus corresponding to the downstream VCID included in the input packet received from the peripheral device 30, and determines the internal bus indicated by this identifier. Assign to this access. At this time, the downstream VCID included in the input packet is converted into the identifier of the allocated internal bus. Hereinafter, this converted packet is referred to as an internal packet, and FIG. 6 shows it. In FIG. 6, the internal bus ID is an identifier of the internal bus.

図6に示す内部パケットは、それに割り当てられた内部バス、すなわちこの内部パケットに含まれる内部バスIDにより示される内部バスによって上流ポート28へ転送される。中継部24は、内部パケットが上流ポート28により出力される前に、さらに内部パケットを出力パケットに変換する。具体的には、図5に示す第2のテーブルを参照し、内部パケットに含まれる内部バスIDを、この内部バスIDに対応する上流VCIDに変換する。   The internal packet shown in FIG. 6 is transferred to the upstream port 28 by the internal bus assigned thereto, that is, the internal bus indicated by the internal bus ID included in the internal packet. The relay unit 24 further converts the internal packet into an output packet before the internal packet is output from the upstream port 28. Specifically, referring to the second table shown in FIG. 5, the internal bus ID included in the internal packet is converted into an upstream VCID corresponding to the internal bus ID.

このように、下流VC21に応じて内部バスを割り当て、内部バスに応じて上流VC29を割り当てる。2つのテーブルを用いてパケットの変換すなわち割当を行い、テーブルの組み合わせによって柔軟な設定が可能となる。   In this way, an internal bus is assigned according to the downstream VC 21 and an upstream VC 29 is assigned according to the internal bus. Packet conversion or assignment is performed using two tables, and flexible setting is possible by combining the tables.

さらに、本発明者は、ブリッジ20内部において、コマンドやデータなどを一時的に記憶するバッファなどのリソース(図示せず)を内部バス毎に設定可能にすることを提案する。具体的には、たとえば図5の第2のテーブルに示すように、内部バス毎に、この内部バスに割り当てられたリソースの割合が設定されている。なお、ここでリソースの割合を内部バス毎に設定しているが、エントリ数などを設定してもよい。   Furthermore, the present inventor proposes that resources (not shown) such as buffers for temporarily storing commands, data, and the like can be set for each internal bus inside the bridge 20. Specifically, for example, as shown in the second table of FIG. 5, the ratio of resources allocated to the internal bus is set for each internal bus. Although the resource ratio is set for each internal bus here, the number of entries may be set.

中継部24は、第2のテーブルを参照して内部パケットを出力パケットに変換する際に、内部パケットに含まれる内部バスIDに対応するリソースの割合も取得する。これによって、内部バス毎に使用可能なリソースを制御することができ、結果的には内部バス毎に出力可能な出力パケット数も制御することができる。   When the relay unit 24 converts the internal packet into the output packet with reference to the second table, the relay unit 24 also acquires the resource ratio corresponding to the internal bus ID included in the internal packet. As a result, the resources that can be used for each internal bus can be controlled, and as a result, the number of output packets that can be output for each internal bus can also be controlled.

以下、本発明の実施の形態について、以上の概要を具現化してシステムを説明する。   In the following, a system will be described by embodying the above outline of an embodiment of the present invention.

図7は、本発明にかかる実施の形態による情報処理システムの構成を示す。この情報処理システムは、複数の周辺デバイス、マルチコアプロセッサ120、メインメモリ180、PCIデバイス100とマルチコアプロセッサ120とを接続するブリッジ110を有する。マルチコアプロセッサ120とメインメモリ180は、1つのプロセッサユニットを構成する。複数の周辺デバイスは、IOIF104を介して接続するデバイスや、PCIデバイス100などを含む。   FIG. 7 shows a configuration of an information processing system according to the embodiment of the present invention. The information processing system includes a plurality of peripheral devices, a multi-core processor 120, a main memory 180, and a bridge 110 that connects the PCI device 100 and the multi-core processor 120. The multi-core processor 120 and the main memory 180 constitute one processor unit. The plurality of peripheral devices include devices connected via the IOIF 104, the PCI device 100, and the like.

PCIデバイス100の接続インターフェイスとして、PCIバスを用いる。ここで、PCIバスは、PCI、PCIX、PCI Express(登録商標)のいずれの仕様によるものでもよい。   A PCI bus is used as a connection interface of the PCI device 100. Here, the PCI bus may be based on any specification of PCI, PCIX, and PCI Express (registered trademark).

ブリッジ110は、周辺デバイスとの間において複数のバーチャルチャネルすなわち下流VCを提供する。周辺デバイスは、いずれか1つまたは複数の下流VCを用いてアクセス要求パケットすなわち入力パケットをブリッジ110に発行する。   The bridge 110 provides a plurality of virtual channels or downstream VCs with peripheral devices. The peripheral device issues an access request packet, that is, an input packet to the bridge 110 using any one or more downstream VCs.

また、マルチコアプロセッサ120のIOIF160は、ブリッジ110との間において複数のバーチャルチャネルすなわち上流VCを提供する。ブリッジ110は、周辺デバイスからの入力パケットを変換してからいずれかの上流VCに中継する。入力パケットの変換については後述する。   In addition, the IOIF 160 of the multi-core processor 120 provides a plurality of virtual channels, that is, upstream VCs, with the bridge 110. The bridge 110 converts the input packet from the peripheral device and then relays it to any upstream VC. The conversion of the input packet will be described later.

さらに、マルチコアプロセッサ120のメモリコントローラ170は、IOIF160との間において複数のバーチャルチャネル(以下内部VCという)を提供する。各内部VCについて、メインメモリ180へアクセスするメモリ帯域が割り当てられている。   Furthermore, the memory controller 170 of the multi-core processor 120 provides a plurality of virtual channels (hereinafter referred to as internal VCs) with the IOIF 160. A memory bandwidth for accessing the main memory 180 is assigned to each internal VC.

マルチコアプロセッサ120は、ワンチップで形成されており、主処理ユニットPPE(Power Processing Element)140と、複数、図示の例では8つのサブ処理ユニットSPE(Synergistic Processing Element)130と、IOIF160と、メモリコントローラ170とを有し、これらは、リングバス150によって接続される。   The multi-core processor 120 is formed as a single chip, and includes a main processing unit PPE (Power Processing Element) 140, a plurality of, in the illustrated example, eight sub processing units SPE (Synergic Processing Element) 130, an IOIF 160, a memory controller, and the like. 170, which are connected by a ring bus 150.

メインメモリ180は、マルチコアプロセッサ120の各処理ユニットの共有メモリであり、メモリコントローラ170と接続されている。   The main memory 180 is a shared memory for each processing unit of the multi-core processor 120 and is connected to the memory controller 170.

メモリコントローラ170は、メインメモリ180へのアクセスを制御する。なお、図7に示す例では、メインメモリ180はマルチコアプロセッサ120の外部に設けられているが、マルチコアプロセッサ120内に含まれるように設けられてもよい。   The memory controller 170 controls access to the main memory 180. In the example shown in FIG. 7, the main memory 180 is provided outside the multi-core processor 120, but may be provided so as to be included in the multi-core processor 120.

IOIF160は、図示しないIOEFバスによってブリッジ110と接続され、ブリッジ110と協働して、周辺デバイスからメインメモリ180へのアクセスを可能にする。IOIF160には、IOコントローラ164が含まれている。   The IOIF 160 is connected to the bridge 110 via an IOEF bus (not shown), and allows the peripheral device to access the main memory 180 in cooperation with the bridge 110. The IOIF 160 includes an IO controller 164.

SPE130は、コア132と、ローカルメモリ134と、メモリフローコントローラ(以下MFCという)136とを備え、MFC136には、DMAC(ダイレクトメモリアクセスコントローラ)138が含まれている。なお、ローカルメモリ134は、従来のハードウェアキャッシュメモリではないことが望ましく、それには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に置かれたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無い。   The SPE 130 includes a core 132, a local memory 134, and a memory flow controller (hereinafter referred to as MFC) 136, and the MFC 136 includes a DMAC (Direct Memory Access Controller) 138. Note that the local memory 134 is preferably not a conventional hardware cache memory, and includes a hardware cache circuit, a cash register, a built-in chip or a chip outside the chip for realizing a hardware cache memory function. There is no cache memory controller.

PPE140は、コア142と、L1キャッシュ144と、L2キャッシュ145と、MFC146とを備え、MFC146には、DMAC148が含まれている。   The PPE 140 includes a core 142, an L1 cache 144, an L2 cache 145, and an MFC 146. The MFC 146 includes a DMAC 148.

通常、マルチコアプロセッサ120のオペレーティングシステム(以下OSともいう)は、PPE140において動作し、OSの基本処理に基づいて、各SPE130で動作するプログラムが決定される。また、SPE130で動作するプログラムは、OSの機能の一部をなすようなプログラム(たとえばデバイスドライバや、システムプログラムの一部など)であってもよい。なお、PPE140とSPE130の命令セットアーキテクチャは、異なる命令セットを有する。   Normally, the operating system (hereinafter also referred to as OS) of the multi-core processor 120 operates in the PPE 140, and a program that operates in each SPE 130 is determined based on the basic processing of the OS. The program operating on the SPE 130 may be a program (for example, a device driver or a part of a system program) that forms a part of the OS function. Note that the instruction set architectures of the PPE 140 and the SPE 130 have different instruction sets.

図7に示す情報処理システムの初期化時において、マルチコアプロセッサ120のPPE140は、IOIF160内の変換テーブル(図示せず)を設定する。図8は、この変換テーブルの例を示す。図中上流VCIDは、IOIF160とブリッジ110の間に提供されるバーチャルチャネル(上流VC)の識別子であり、内部VCIDは、メモリコントローラ170が提供するバーチャルチャネル(内部VC)の識別子である。メモリコントローラ170は、内部VCを用いてメインメモリ180へのアクセスを中継する。なお、初期化時において、各内部VCに対して、メモリ帯域の割当も行われる。   When the information processing system shown in FIG. 7 is initialized, the PPE 140 of the multi-core processor 120 sets a conversion table (not shown) in the IOIF 160. FIG. 8 shows an example of this conversion table. In the figure, the upstream VCID is an identifier of a virtual channel (upstream VC) provided between the IOIF 160 and the bridge 110, and the internal VCID is an identifier of a virtual channel (internal VC) provided by the memory controller 170. The memory controller 170 relays access to the main memory 180 using the internal VC. At initialization, a memory band is also assigned to each internal VC.

周辺デバイスは、メインメモリ180にアクセスするのにあたり、アクセス要求パケットを発行する。ここで、このアクセス要求パケットとして、図3に示す入力パケットを用いる。本実施例において、入力パケットに含まれるアドレスは、実効アドレスである。   The peripheral device issues an access request packet when accessing the main memory 180. Here, the input packet shown in FIG. 3 is used as the access request packet. In this embodiment, the address included in the input packet is an effective address.

実効アドレスはメインメモリ180の実効アドレス空間内の所定の位置を示すアドレスである。また、実効アドレス空間は、メインメモリ180から部分的に切り取られたメモリ空間の一部同士を集合させ、結合したものである。マルチコアプロセッサ120は、実効メモリ空間をワークメモリとして使用する。実効メモリ空間の内部構成を最適化することにより、マルチコアプロセッサ120は最大パフォーマンスで動作できる。   The effective address is an address indicating a predetermined position in the effective address space of the main memory 180. The effective address space is a combination of a part of memory spaces partially cut out from the main memory 180. The multi-core processor 120 uses the effective memory space as work memory. By optimizing the internal structure of the effective memory space, the multi-core processor 120 can operate at maximum performance.

図9は、ブリッジ110の構成を示す。ブリッジ110は、第1の入出力部112、ブリッジコントローラ114、複数(図示の例では4つ)の内部バス115、バッファ116、第2の入出力部118を有する。   FIG. 9 shows the configuration of the bridge 110. The bridge 110 includes a first input / output unit 112, a bridge controller 114, a plurality of (four in the illustrated example) internal bus 115, a buffer 116, and a second input / output unit 118.

第1の入出力部112は、周辺デバイスにより発行された入力パケットを、該入力パケットに含まれる下流VCを介して受け取る。ブリッジコントローラ114は、この入力パケットを、内部バス115上を転送される内部パケットに変換するとともに、内部バス115により転送された内部パケットを、第2の入出力部118に渡す出力パケットに変換する。ここで、内部パケットと出力パケットのフォーマットとして、図6と図3に示すものをそれぞれ使用する。   The first input / output unit 112 receives an input packet issued by a peripheral device via a downstream VC included in the input packet. The bridge controller 114 converts the input packet into an internal packet transferred on the internal bus 115, and converts the internal packet transferred through the internal bus 115 into an output packet passed to the second input / output unit 118. . Here, the formats shown in FIGS. 6 and 3 are used as the formats of the internal packet and the output packet, respectively.

なお、内部パケットは、第2の入出力部118により出力される前にバッファ116に一時記憶されるようにすることができる。第2の入出力部118は、内部バス115により転送され、ブリッジコントローラ114により変換されたパケットを、このパケットに含まれる上流VCIDに対応する上流VCを介して、マルチコアプロセッサ120のIOIF160に出力する。   Note that the internal packet can be temporarily stored in the buffer 116 before being output by the second input / output unit 118. The second input / output unit 118 outputs the packet transferred by the internal bus 115 and converted by the bridge controller 114 to the IOIF 160 of the multi-core processor 120 via the upstream VC corresponding to the upstream VCID included in the packet. .

ブリッジコントローラ114は、図示しない2つの変換テーブルを有し、この2つの変換テーブルを用いて、入力パケットを内部パケットへの変換、および内部パケットを出力パケットへの変換を行う。ここで、入力パケットと出力パケット変換テーブルとして、図5に示すテーブルを用いる。なお、図5に示す第2のテーブルにおける「リソース割合」は、ここではバッファ116の割合に相当する。   The bridge controller 114 has two conversion tables (not shown), and uses these two conversion tables to convert input packets into internal packets and internal packets into output packets. Here, the table shown in FIG. 5 is used as the input packet and output packet conversion table. The “resource ratio” in the second table shown in FIG. 5 corresponds to the ratio of the buffer 116 here.

IOIF160のIOコントローラ164は、ブリッジ110から渡された出力パケットをさらにメモリコントローラ170へ出力する。出力に際して、2つの変換を行う。1つは、図8に示すテーブルを参照して、出力パケットに含まれる上流VCIDを、対応する内部VCIDへの変換である。もう1つは、出力パケットに含まれる実効アドレスを、メインメモリ180における物理アドレスへの変換である。この変換によって得られたパケットを、以下IOIFコマンドという。図10には、IOIFコマンドを示している。   The IO controller 164 of the IOIF 160 further outputs the output packet passed from the bridge 110 to the memory controller 170. Two conversions are performed on output. One is conversion of the upstream VCID included in the output packet into the corresponding internal VCID with reference to the table shown in FIG. The other is conversion of an effective address included in the output packet into a physical address in the main memory 180. A packet obtained by this conversion is hereinafter referred to as an IOIF command. FIG. 10 shows an IOIF command.

メモリコントローラ170、渡されたIOIFコマンドにしたがってメインメモリ180へのアクセスを中継する。ここで、メモリコントローラ170は、システムの初期化時において設定された、図11に示すテーブルを用いる。図11に示すテーブルは、内部VCの識別子(内部VCID)と、該内部VCIDにより示される内部VCに割り当てられたメモリ帯域とを対応付けて記憶している。メモリコントローラ170は、このテーブルを参照して、IOIFコマンドに含まれる内部VCIDに対応するメモリ帯域でアクセスを中継し、アクセス先として、メインメモリ180における、このIOIFコマンドに含まれる物理アドレスにより示される位置である。   The memory controller 170 relays access to the main memory 180 according to the passed IOIF command. Here, the memory controller 170 uses the table shown in FIG. 11 set at the time of system initialization. The table shown in FIG. 11 stores the identifier of the internal VC (internal VCID) and the memory bandwidth allocated to the internal VC indicated by the internal VCID in association with each other. The memory controller 170 refers to this table, relays access in the memory bandwidth corresponding to the internal VCID included in the IOIF command, and is indicated by the physical address included in this IOIF command in the main memory 180 as the access destination. Position.

以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   The present invention has been described based on the embodiments. The embodiments are exemplifications, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are within the scope of the present invention. .

たとえば、図7に示す情報処理システムにおいて、周辺デバイスとなるPCIデバイス100について、PCI規格以外の周辺デバイスを用いてもよい。   For example, in the information processing system shown in FIG. 7, a peripheral device other than the PCI standard may be used for the PCI device 100 that is a peripheral device.

本発明の概要の説明に用いた情報処理システムを示す図である。It is a figure which shows the information processing system used for description of the outline | summary of this invention. 図1に示す情報処理システムにおけるブリッジを示す図である。It is a figure which shows the bridge | bridging in the information processing system shown in FIG. 入力パケットと出力パケットを示す図である。It is a figure which shows an input packet and an output packet. 入力パケットを出力パケットに変換するためのテーブルの例(その1)を示す図である。It is a figure which shows the example (the 1) of the table for converting an input packet into an output packet. 入力パケットを出力パケットに変換するためのテーブルの例(その2)を示す図である。It is a figure which shows the example (the 2) of the table for converting an input packet into an output packet. ブリッジ20の内部バス上を転送される内部パケットを示す図である。FIG. 3 is a diagram showing an internal packet transferred on an internal bus of a bridge 20 本発明にかかる実施の形態による情報処理システムの構成を示す図である。It is a figure which shows the structure of the information processing system by embodiment concerning this invention. 上流VCIDを内部VCIDに変換するためのテーブルの例を示す図である。It is a figure which shows the example of the table for converting upstream VCID into internal VCID. 図7に示す情報処理システムにおけるブリッジの構成例を示す図である。It is a figure which shows the structural example of the bridge | bridging in the information processing system shown in FIG. IOIFコマンドの例を示す図である。It is a figure which shows the example of an IOIF command. 内部VCIDとメモリ帯域を対応づけたテーブルである。It is the table which matched internal VCID and memory bandwidth.

符号の説明Explanation of symbols

10 プロセッサユニット、 20 ブリッジ、 21 下流VC、 22 下流ポート、 24 中継部、 28 上流ポート、 29 上流VC、 30 周辺デバイス、 100 PCIデバイス、 102 IOIF、 110 ブリッジ、 112 第1の入出力部、 114 ブリッジコントローラ、 115 内部バス、 116 バッファ、 118 第2の入出力部、 120 マルチコアプロセッサ、 130 SPE、 132 コア、 134 ローカルメモリ、 136 MFC、 138 DMAC、 140 PPE、 142 コア、 144 L1キャッシュ、 145 L2キャッシュ、 146 MFC、 148 DMAC、 150 リングバス、 160 IOIF、 164 IOコントローラ、 170 メモリコントローラ、 180 メインメモリ。   10 processor units, 20 bridges, 21 downstream VCs, 22 downstream ports, 24 relay units, 28 upstream ports, 29 upstream VCs, 30 peripheral devices, 100 PCI devices, 102 IOIFs, 110 bridges, 112 first input / output units, 114 Bridge controller, 115 internal bus, 116 buffer, 118 second input / output unit, 120 multi-core processor, 130 SPE, 132 core, 134 local memory, 136 MFC, 138 DMAC, 140 PPE, 142 core, 144 L1 cache, 145 L2 Cache, 146 MFC, 148 DMAC, 150 ring bus, 160 IOIF, 164 IO controller, 170 memory controller, 18 Main memory.

Claims (3)

プロセッサユニットと周辺デバイスを接続するブリッジであって、
前記周辺デバイスと接続する下流ポートと、
前記周辺デバイスが前記下流ポートを介して前記プロセッサユニットのメモリへのアクセスを、前記プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについて前記プロセッサユニットのメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する中継部とを備え、
前記下流ポートは、前記周辺デバイスとの間に提供されるバーチャルチャネルであって、前記周辺デバイスがそのいずれかを利用して前記アクセスを行うための複数の下流チャネルをサポートし、
前記中継部は、前記下流チャネルの識別子と前記上流チャネルの識別子とを対応付けて記憶したテーブルを有し、
該テーブルを参照して、前記周辺デバイスからの前記アクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを前記周辺デバイスに割り当て、
前記中継部は、複数の内部バスを有し、
前記テーブルは、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第1のテーブルと、
内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第2のテーブルとを有し、
前記中継部は、前記周辺デバイスからの前記アクセスに応じて、前記第1のテーブルを参照して、該周辺デバイスが用いる下流チャネルの識別子に対応する内部バスの識別子を取得し、その取得された内部バスを前記周辺デバイスに割り当て、前記周辺デバイスから受信した入力パケットに含まれる下流チャネルの識別子を、その割り当てられた内部バスの識別子に変換した内部パケットを生成し、
前記第2のテーブルを参照して、前記周辺デバイスに割り当てられた前記内部バスの識別子に対応する上流チャネルの識別子を取得し、その取得された上流チャネルを前記周辺デバイスに割り当て、前記内部パケットに含まれる内部バスの識別子を、その割り当てられた上流チャネルの識別子に変換した出力パケットを生成し、
前記第2のテーブルは、さらに、各内部バスにそれぞれ割り当てられた、ブリッジ内部において前記内部パケットを一時的に記憶するためのバッファの使用可能割合を、前記内部バスの識別子に対応付けて記憶しており、
前記中継部は、該第2のテーブルを参照して、前記周辺デバイスに割り当てられた内部バスの識別子に対応するバッファの使用可能割合を取得し、その取得された使用可能割合に応じて前記アクセスを行う周辺デバイスが使用する前記内部パケットを一時記憶するためのバッファをさらに割り当てることを特徴とするブリッジ。
A bridge that connects a processor unit and peripheral devices,
A downstream port connected to the peripheral device;
The peripheral device can access the memory of the processor unit via the downstream port as a plurality of virtual channels supported by the processor unit, each channel being usable when accessing the memory of the processor unit A relay unit that relays to the upstream channel to which each memory bandwidth is allocated,
The downstream port is a virtual channel provided between the peripheral device and the peripheral device supports a plurality of downstream channels for performing the access using any of the peripheral ports,
The relay unit has a table storing the identifier of the downstream channel and the identifier of the upstream channel in association with each other,
Referring to the table, in response to the access from the peripheral device, an upstream channel corresponding to a downstream channel used by the peripheral device is assigned to the peripheral device;
The relay unit has a plurality of internal buses,
The table includes a first table storing downstream channel identifiers and internal bus identifiers in association with each other;
A second table storing the identifier of the internal bus and the identifier of the upstream channel in association with each other;
The relay unit refers to the first table according to the access from the peripheral device , acquires an identifier of the internal bus corresponding to the identifier of the downstream channel used by the peripheral device, and the acquired An internal bus is allocated to the peripheral device, and an internal packet is generated by converting the identifier of the downstream channel included in the input packet received from the peripheral device into the identifier of the allocated internal bus,
Referring to the second table, an identifier of the upstream channel corresponding to the identifier of the internal bus assigned to the peripheral device is obtained, the obtained upstream channel is assigned to the peripheral device, and the internal packet is assigned to the internal packet. Generate an output packet by converting the included internal bus identifier to the assigned upstream channel identifier,
The second table is further assigned to each internal bus, the available percentage of buffers for temporarily storing Oite the internal packet to the internal bridge, in association with the identifier of the internal bus Remember,
The relay unit refers to the second table , acquires a usable rate of a buffer corresponding to an identifier of an internal bus allocated to the peripheral device, and accesses the access according to the acquired usable rate And a buffer for temporarily storing the internal packet used by the peripheral device performing the processing .
プロセッサユニットと、
周辺デバイスと、
前記プロセッサユニットと前記周辺デバイスを接続するブリッジとを備える情報処理装置であって、
前記ブリッジは、前記周辺デバイスと接続する下流ポートと、
前記周辺デバイスが前記下流ポートを介して前記プロセッサユニットのメモリへのアクセスを、前記プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについて前記プロセッサユニットのメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する中継部とを備え、
前記下流ポートは、前記周辺デバイスとの間に提供されるバーチャルチャネルであって、前記周辺デバイスがそのいずれかを利用して前記アクセスを行うための複数の下流チャネルをサポートし、
前記中継部は、前記下流チャネルの識別子と前記上流チャネルの識別子とを対応付けて記憶したテーブルを有し、
該テーブルを参照して、前記周辺デバイスからの前記アクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを前記周辺デバイスに割り当て、
前記プロセッサユニットは、いずれかの前記上流チャネルが割り当てられた前記アクセスを、該上流チャネルに対して割り当てられたメモリ帯域で前記メモリに中継するアクセス制御部を有し、
前記中継部は、複数の内部バスを有し、
前記テーブルは、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第1のテーブルと、
内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第2のテーブルとを有し、
前記中継部は、前記周辺デバイスからの前記アクセスに応じて、前記第1のテーブルを参照して、該周辺デバイスが用いる下流チャネルの識別子に対応する内部バスの識別子を取得し、その取得された内部バスを前記周辺デバイスに割り当て、前記周辺デバイスから受信した入力パケットに含まれる下流チャネルの識別子を、その割り当てられた内部バスの識別子に変換した内部パケットを生成し、
前記第2のテーブルを参照して、前記周辺デバイスに割り当てられた前記内部バスの識別子に対応する上流チャネルの識別子を取得し、その取得された上流チャネルを前記周辺デバイスに割り当て、前記内部パケットに含まれる内部バスの識別子を、その割り当てられた上流チャネルの識別子に変換した出力パケットを生成し、
前記第2のテーブルは、さらに、各内部バスにそれぞれ割り当てられた、ブリッジ内部において前記内部パケットを一時的に記憶するためのバッファの使用可能割合を、前記内部バスの識別子に対応付けて記憶しており、
前記中継部は、該第2のテーブルを参照して、前記周辺デバイスに割り当てられた内部バスの識別子に対応するバッファの使用可能割合を取得し、その取得された使用可能割合に応じて前記アクセスを行う周辺デバイスが使用する前記内部パケットを一時記憶するためのバッファをさらに割り当てることを特徴とする情報処理装置。
A processor unit;
Peripheral devices,
An information processing apparatus comprising the processor unit and a bridge connecting the peripheral devices,
The bridge includes a downstream port connected to the peripheral device;
The peripheral device can access the memory of the processor unit via the downstream port as a plurality of virtual channels supported by the processor unit, each channel being usable when accessing the memory of the processor unit A relay unit that relays to the upstream channel to which each memory bandwidth is allocated,
The downstream port is a virtual channel provided between the peripheral device and the peripheral device supports a plurality of downstream channels for performing the access using any of the peripheral ports,
The relay unit has a table storing the identifier of the downstream channel and the identifier of the upstream channel in association with each other,
Referring to the table, in response to the access from the peripheral device, an upstream channel corresponding to a downstream channel used by the peripheral device is assigned to the peripheral device;
The processor unit has an access control unit that relays the access to which any one of the upstream channels is allocated to the memory in a memory band allocated to the upstream channel,
The relay unit has a plurality of internal buses,
The table includes a first table storing downstream channel identifiers and internal bus identifiers in association with each other;
A second table storing the identifier of the internal bus and the identifier of the upstream channel in association with each other;
The relay unit refers to the first table according to the access from the peripheral device , acquires an identifier of the internal bus corresponding to the identifier of the downstream channel used by the peripheral device, and the acquired An internal bus is allocated to the peripheral device, and an internal packet is generated by converting the identifier of the downstream channel included in the input packet received from the peripheral device into the identifier of the allocated internal bus,
Referring to the second table, an identifier of the upstream channel corresponding to the identifier of the internal bus assigned to the peripheral device is obtained, the obtained upstream channel is assigned to the peripheral device, and the internal packet is assigned to the internal packet. Generate an output packet by converting the included internal bus identifier to the assigned upstream channel identifier,
The second table is further assigned to each internal bus, the available percentage of buffers for temporarily storing Oite the internal packet to the internal bridge, in association with the identifier of the internal bus Remember,
The relay unit refers to the second table , acquires a usable rate of a buffer corresponding to an identifier of an internal bus allocated to the peripheral device, and accesses the access according to the acquired usable rate An information processing apparatus further comprising a buffer for temporarily storing the internal packet used by a peripheral device that performs the processing.
プロセッサユニットと周辺デバイスとを接続するブリッジを用いたアクセス制御方法であって、
前記ブリッジと前記周辺デバイスとの間に提供されるバーチャルチャネルであって、前記周辺デバイスがそれを利用して前記プロセッサユニットのメモリにアクセスするための複数の下流チャネルのいずれかを介して、前記周辺デバイスからの前記アクセスを受け付けるステップと、
該アクセスを、前記プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについて前記プロセッサユニットのメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継するステップとを有し、
前記中継をするステップは、前記下流チャネルの識別子と前記上流チャネルの識別子とを対応付けて記憶したテーブルを参照して、前記周辺デバイスからの前記アクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを前記周辺デバイスに割り当てるステップを有し、
前記ブリッジは、複数の内部バスを有し、
前記テーブルは、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第1のテーブルと、
内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第2のテーブルとを有し、
前記中継をするステップは、前記周辺デバイスからの前記アクセスに応じて、前記第1のテーブルを参照して、該周辺デバイスが用いる下流チャネルの識別子に対応する内部バスの識別子を取得し、その取得された内部バスを前記周辺デバイスに割り当て、前記周辺デバイスから受信した入力パケットに含まれる下流チャネルの識別子を、その割り当てられた内部バスの識別子に変換した内部パケットを生成し、
前記第2のテーブルを参照して、前記周辺デバイスに割り当てられた前記内部バスの識別子に対応する上流チャネルの識別子を取得し、その取得された上流チャネルを前記周辺デバイスに割り当て、前記内部パケットに含まれる内部バスの識別子を、その割り当てられた上流チャネルの識別子に変換した出力パケットを生成し、
前記第2のテーブルは、さらに、各内部バスにそれぞれ割り当てられた、ブリッジ内部において前記内部パケットを一時的に記憶するためのバッファの使用可能割合を、前記内部バスの識別子に対応付けて記憶しており、
前記中継をするステップは、該第2のテーブルを参照して、前記周辺デバイスに割り当てられた内部バスの識別子に対応するバッファの使用可能割合を取得し、その取得された使用可能割合に応じて前記アクセスを行う周辺デバイスが使用する前記内部パケットを一時記憶するためのバッファをさらに割り当てることを特徴とするアクセス制御方法。
An access control method using a bridge for connecting a processor unit and a peripheral device,
A virtual channel provided between the bridge and the peripheral device, via any of a plurality of downstream channels for utilizing the peripheral device to access the memory of the processor unit. Receiving the access from a peripheral device;
Relaying the access to an upstream channel, which is a plurality of virtual channels supported by the processor unit, each of which is assigned a memory bandwidth usable when accessing the memory of the processor unit. Have
The relaying step refers to a table in which the identifier of the downstream channel and the identifier of the upstream channel are associated with each other and stores the downstream channel used by the peripheral device according to the access from the peripheral device. Assigning a corresponding upstream channel to the peripheral device,
The bridge has a plurality of internal buses,
The table includes a first table storing downstream channel identifiers and internal bus identifiers in association with each other;
A second table storing the identifier of the internal bus and the identifier of the upstream channel in association with each other;
The relaying step refers to the first table according to the access from the peripheral device , acquires an internal bus identifier corresponding to an identifier of a downstream channel used by the peripheral device, and acquires the internal bus identifier. Assigning the assigned internal bus to the peripheral device, and generating an internal packet in which the identifier of the downstream channel included in the input packet received from the peripheral device is converted into the identifier of the assigned internal bus,
Referring to the second table, an identifier of the upstream channel corresponding to the identifier of the internal bus assigned to the peripheral device is obtained, the obtained upstream channel is assigned to the peripheral device, and the internal packet is assigned to the internal packet. Generate an output packet by converting the included internal bus identifier to the assigned upstream channel identifier,
The second table is further assigned to each internal bus, the available percentage of buffers for temporarily storing Oite the internal packet to the internal bridge, in association with the identifier of the internal bus Remember,
The relaying step refers to the second table , obtains an available rate of the buffer corresponding to the identifier of the internal bus assigned to the peripheral device, and according to the obtained available rate An access control method, further comprising allocating a buffer for temporarily storing the internal packet used by the peripheral device performing the access.
JP2006066789A 2006-03-10 2006-03-10 Bridge, information processing apparatus and access control method Expired - Fee Related JP5074697B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006066789A JP5074697B2 (en) 2006-03-10 2006-03-10 Bridge, information processing apparatus and access control method
US12/282,393 US8095718B2 (en) 2006-03-10 2006-11-30 Bridge, information processor, and access control method
PCT/JP2006/323948 WO2007105343A1 (en) 2006-03-10 2006-11-30 Bridge, information processing device, and access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006066789A JP5074697B2 (en) 2006-03-10 2006-03-10 Bridge, information processing apparatus and access control method

Publications (2)

Publication Number Publication Date
JP2007241904A JP2007241904A (en) 2007-09-20
JP5074697B2 true JP5074697B2 (en) 2012-11-14

Family

ID=38509187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006066789A Expired - Fee Related JP5074697B2 (en) 2006-03-10 2006-03-10 Bridge, information processing apparatus and access control method

Country Status (3)

Country Link
US (1) US8095718B2 (en)
JP (1) JP5074697B2 (en)
WO (1) WO2007105343A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782289B2 (en) * 2008-06-10 2014-07-15 Hewlett-Packard Development Company, L.P. Presenting multi-function devices behind a switch hierarchy as a single function device
JP5687959B2 (en) * 2011-06-20 2015-03-25 株式会社日立製作所 I / O device sharing method and apparatus
US10164835B2 (en) * 2016-06-17 2018-12-25 Vmware, Inc. Accessing peripheral devices from a container within virtual machines running on different host computing systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742602A (en) * 1995-07-12 1998-04-21 Compaq Computer Corporation Adaptive repeater system
JPH09162918A (en) * 1995-12-12 1997-06-20 Hitachi Cable Ltd Repeating hub
JPH1131118A (en) * 1997-07-10 1999-02-02 Nec Eng Ltd System reconstitution circuit of information processor, system reconstitution method and storage medium storing system reconstitution control program
JP2001156822A (en) * 1999-11-25 2001-06-08 Nec Corp Hub device
US20020073431A1 (en) * 2000-12-11 2002-06-13 Adc Telecommunications, Inc. Supporting multiple data channels in a cable modem termination system
US7426744B2 (en) * 2001-09-27 2008-09-16 Broadcom Corporation Method and system for flexible channel association
US7380018B2 (en) * 2003-05-15 2008-05-27 Broadcom Corporation Peripheral bus transaction routing using primary and node ID routing information
US7155553B2 (en) * 2003-08-14 2006-12-26 Texas Instruments Incorporated PCI express to PCI translation bridge
US7096308B2 (en) * 2003-08-29 2006-08-22 Texas Instruments Incorporated LPC transaction bridging across a PCI—express docking connection
JP2005332372A (en) * 2004-04-23 2005-12-02 Ricoh Co Ltd Image processing apparatus and image forming apparatus
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7966402B2 (en) * 2005-06-28 2011-06-21 Hewlett-Packard Development Company, L.P. Switch to selectively couple any of a plurality of video modules to any of a plurality of blades
US7903558B1 (en) * 2007-09-28 2011-03-08 Qlogic, Corporation Method and system for monitoring a network link in network systems

Also Published As

Publication number Publication date
JP2007241904A (en) 2007-09-20
WO2007105343A1 (en) 2007-09-20
US8095718B2 (en) 2012-01-10
US20090222610A1 (en) 2009-09-03

Similar Documents

Publication Publication Date Title
JP4219964B2 (en) Bridge, processor unit, information processing apparatus, and access control method
JP4469010B2 (en) Bridge, information processing system, and access control method
JP4805314B2 (en) Offload input / output (I / O) virtualization operations to the processor
US7603508B2 (en) Scalable distributed memory and I/O multiprocessor systems and associated methods
JP2005309553A (en) Computer
JP5660053B2 (en) NETWORK DEVICE, NETWORK CONFIGURATION METHOD, AND PROGRAM RECORDING MEDIUM CONTAINING NETWORK DEVICE PROGRAM
KR101003102B1 (en) Memory assignmen method for multi-processing unit, and memory controller using the same
US20110153875A1 (en) Opportunistic dma header insertion
CN115357416B (en) Method and device for performing data processing across systems
US20140344485A1 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
JP5477168B2 (en) Multi-host system
JP5074697B2 (en) Bridge, information processing apparatus and access control method
WO2007080718A1 (en) Bridge, information processor, information processing system, and method of managing global address
CN101178697B (en) PCIE apparatus satellite communication method and system
JP5133540B2 (en) Information processing apparatus, data transfer method, and program
US20190286606A1 (en) Network-on-chip and computer system including the same
JP6294732B2 (en) Data transfer control device and memory built-in device
JP2008009926A (en) Information processing device, information processing system, and address conversion method
WO2023112646A1 (en) Information processing device, and method for controlling information processing device
JPH0744489A (en) Data transfer system
US10853287B2 (en) Information processing system, semiconductor integrated circuit, and information processing method
JP2006323579A (en) Dma controller
KR20050119798A (en) System on chip bus architecture providing multiple channel
JPS608971A (en) Central processing unit
JPH0926946A (en) Multiprocessor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090305

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101214

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120406

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120824

R150 Certificate of patent or registration of utility model

Ref document number: 5074697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees