WO2012124431A1 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
WO2012124431A1
WO2012124431A1 PCT/JP2012/053761 JP2012053761W WO2012124431A1 WO 2012124431 A1 WO2012124431 A1 WO 2012124431A1 JP 2012053761 W JP2012053761 W JP 2012053761W WO 2012124431 A1 WO2012124431 A1 WO 2012124431A1
Authority
WO
WIPO (PCT)
Prior art keywords
control unit
pcie
serial interface
semiconductor device
bus control
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.)
Ceased
Application number
PCT/JP2012/053761
Other languages
English (en)
French (fr)
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to US13/984,428 priority Critical patent/US20130326097A1/en
Priority to JP2013504621A priority patent/JPWO2012124431A1/ja
Publication of WO2012124431A1 publication Critical patent/WO2012124431A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4063Device-to-bus coupling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0026PCI express

Definitions

  • the present invention relates to a technology for controlling an I / O (Input / Output) serial interface, and can realize, for example, a system configuration corresponding to various PCI (Peripheral Component Interconnect) Express (hereinafter referred to as PCIe) topologies.
  • PCIe Peripheral Component Interconnect Express
  • the present invention relates to a semiconductor device.
  • PCIe PCIe
  • PCIe is a serial interface developed as a next-generation interface for solving the shortage of transfer speed that the conventional PCI bus has, and realizes complete compatibility with the PCI bus at the software level. Accordingly, PCIe can operate on an OS (Operating System) capable of operating a conventional PCI bus, even if it is not newly supported.
  • OS Operating System
  • Patent Document 1 discloses a PCI bridge device that reduces the circuit amount.
  • the PCI bridge device artificially realizes a configuration space of a device connected to the secondary side pseudo PCI bus. Therefore, the secondary-side pseudo PCI interface unit acquires the device information (function number shown on the primary-side PCI bus) immediately after resetting.
  • the decoding unit associates the device information with the IDSEL output to the secondary pseudo PCI bus.
  • the primary side PCI interface unit detects the configuration cycle, the primary side PCI interface unit relays the cycle together with the secondary side pseudo PCI interface unit, and the decoding unit replaces some bits of the device information.
  • Patent Document 2 In Japanese Patent Laid-Open No. 11-238030 (Patent Document 2), it is reliably supported by the existing BIOS (Basic Input / Output System), and the DMA (Direct Memory Access) controller and the LSI (Large Scale Integrated circuit) core are the same.
  • a customized PCI-PCI bridge provided on a chip is disclosed.
  • a customized PCI-PCI bridge uses a type “00” header to identify and configure a secondary PCI device using a function number.
  • the PCI-PCI bridge switches the memory map between startup and after startup in order to support the VGA device together with the computing core and the PCI agent.
  • the PCI-PCI bridge arbitrates bus driving so that two PCI buses are not driven simultaneously.
  • the PCI agent integrated circuit includes one PCI bus control unit commonly used for a plurality of PCI agents, a function control unit of each PCI agent, and an internal connected between them for the purpose of common use. It consists of a common bus. This facilitates a change in the configuration of the PCI agent or a design change when newly added.
  • JP-A-11-288400 Japanese Patent Laid-Open No. 11-238030 Japanese Patent Laid-Open No. 2002-024161
  • a semiconductor device that realizes a device constituting a PCIe topology.
  • the RAM stores a configuration register that defines function information of the PCIe device.
  • the link control unit decodes the request received from the PCIe host and outputs the decoding result to a CPU (Central Processing Unit).
  • the CPU reads a corresponding configuration register from the RAM according to the decoding result received from the link control unit, generates a response to the request, and transmits the response to the link control unit.
  • the CPU reads the corresponding configuration register from the RAM according to the decoding result received from the link control unit, generates a response to the request, and transmits it to the link control unit.
  • the link control unit reads the corresponding configuration register from the RAM according to the decoding result received from the link control unit, generates a response to the request, and transmits it to the link control unit.
  • FIG. 1 is a block diagram illustrating a configuration example of a semiconductor device according to a first embodiment. It is a flowchart for demonstrating operation
  • 3 is a block diagram for explaining a more detailed configuration of the semiconductor device according to the first embodiment;
  • FIG. 3 is a diagram illustrating an example in which a configuration of a PCIe-PCI bridge is realized by the semiconductor device according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example in which a configuration of a PCIe switch and a PCIe-PCI bridge is realized by the semiconductor device according to the first embodiment.
  • FIG. FIG. 7 is a diagram for explaining a read operation of the configuration register when the topology shown in FIGS. 5 and 6 is realized by the semiconductor device in the first embodiment shown in FIG. 4.
  • FIG. 7 is a diagram for explaining a configuration register reading operation of a device connected to the PCI bus when the topology shown in FIGS. 5 and 6 is realized by the semiconductor device in the first embodiment shown in FIG. 4; is there.
  • FIG. 7 is a diagram for explaining a memory read operation of a device connected to the PCI bus when the topology shown in FIGS.
  • FIG. 5 and 6 is realized by the semiconductor device in the first embodiment shown in FIG. 4.
  • FIG. 15 is a diagram for explaining a configuration register writing operation when the topologies shown in FIGS. 11 to 14 are realized by the semiconductor device according to the second embodiment.
  • FIG. 15 is a diagram for explaining a memory write operation of a device connected to a general-purpose bus when the topologies shown in FIGS. 11 to 14 are realized by the semiconductor device according to the second embodiment.
  • FIG. 1 is a diagram illustrating an example of configuring a topology in which a PCIe-PCI bridge and a PCIe end point are arranged on the downstream side of a PCIe switch.
  • a PCIe bridge 102 and a PCIe end point 103 are connected to the downstream side of the PCIe switch 101 via a PCIe I / F (Interface).
  • a PCI end point is connected to the downstream side of the PCIe-PCI bridge 102 via a PCI I / F.
  • a PCI I / F When such a topology is configured, it is necessary to use at least three types of LSIs and IPs, which causes problems such as an increase in development cost as described above.
  • FIG. 2 is a block diagram illustrating a configuration example of the semiconductor device according to the first embodiment.
  • the semiconductor device 1 includes a PCIe device hardware 11 and a software sequencer 12.
  • the software sequencer 12 includes a CPU 13, a work RAM (Random Access Memory) 14, and a code RAM / ROM (Read Only Memory) 15.
  • the semiconductor device 1 communicates with a PCIe host via a PCIe I / F.
  • the PCIe device hardware 11 is connected to the PCIe I / F and mainly controls the physical layer and the data link layer.
  • the CPU 13 mainly controls the transaction layer by executing a program stored in the code RAM / ROM 15.
  • the work RAM 14 stores a configuration register, details of which will be described later.
  • the transaction layer mainly generates and decrypts transaction layer packets (TLPs).
  • TLP includes commands such as read and write, addresses, data, and the like.
  • the transaction layer also performs flow control with the connection partner.
  • PCIe flow control is performed on a credit basis.
  • the credit base is a method of notifying the partner of the size of a buffer that can be received in advance and notifying the buffer whenever there is a free space.
  • the transmission side adds up the size of the packet received by itself, and subtracts the amount when the buffer is notified from the transmission partner. As a result, the packet can be transferred without exceeding the buffer size of the transmission partner.
  • the transaction layer supports three address spaces: memory space, I / O space, and configuration space.
  • PCIe PCIe
  • PCI bus PCIe bus
  • FIG. 3 is a flowchart for explaining operations of the PCIe device hardware 11 and the software sequencer 12 when the PCIe device hardware 11 receives a request packet.
  • the PCIe device hardware 11 receives a request packet (Req TLP) from the PCIe host via the PCIe I / F, it determines the request by decoding the TLP and responds to the request.
  • An interrupt request is output to the CPU 13 of the software sequencer 12 (S11).
  • the request packet includes a memory request that is a read / write request to the memory, an I / O request that is a read / write request to I / O, a configuration request that is a read / write request to the configuration space, and the like.
  • the CPU 13 in the software sequencer 12 Upon receiving an interrupt request from the PCIe device hardware 11, the CPU 13 in the software sequencer 12 checks the TLP header and data (S12), generates a response to the request packet, and sets that the response has been generated in the control register. (S13). At this time, the value of the configuration register stored in the work RAM 14 is referred to as appropriate.
  • the PCIe device hardware 11 When the PCIe device hardware 11 receives the response generated from the software sequencer 12, the PCIe device hardware 11 transmits a response (Cpl TLP: completion) via the PCIe I / F (S14). At this time, in the case of reading, data is also included in the response.
  • FIG. 4 is a block diagram for explaining a more detailed configuration of the semiconductor device according to the first embodiment.
  • the semiconductor device 1 includes a CPU 13, RAMs 14 and 15, a PCIe-Phys unit 21, a PCIe-Link unit 22, a link control unit 23, a control register 24, a data buffer 25, a PCI bus control unit 26, A general-purpose bus control unit 27 and a bus selection unit 28 are included.
  • the PCIe-Phy unit 21 is connected to the PCIe host 2 via the PCIe I / F and has a function of the physical layer of PCIe.
  • the PCIe-Link unit 22 has a function of a PCIe data link layer.
  • the link control unit 23 decodes the received TLP (request packet) output from the PCIe-Link unit 22, determines what kind of request it is, and outputs an interrupt request to the CPU 13. Further, the link control unit 23 transmits a response (completion) corresponding to the request packet to the PCIe host 2 via the PCIe-Link unit 22 and the PCIe-Phys unit 21.
  • the control register 24 is a group of registers provided for controlling the semiconductor device 1 itself, and is distinguished from the configuration register.
  • the data buffer 25 transmits data to the device A (3) or the device B (4) via the PCI bus or general-purpose bus, and from the device A (3) or the device B (4) via the PCI bus or general-purpose bus. Store received data temporarily.
  • the PCI bus control unit 26 transmits / receives data to / from the device A (3) when the request packet is a memory read or a memory write to the device A (3) connected to the PCI bus.
  • the general-purpose bus control unit 27 transmits / receives data to / from the device B (4) when the request packet is a memory read or memory write to the device B (4) connected to the general-purpose bus.
  • the bus selection unit 28 is connected to the downloader 5, the CPU 13, the RAMs 14 and 15, and the control register 24, and switches the bus. For example, when the downloader 5 downloads the program executed by the CPU 13 to the RAM 15, the bus selection unit 28 switches the bus so that the processing code output from the downloader 5 is written to the RAM 15.
  • the bus selection unit 28 switches the bus so that the CPU 13 can fetch the processing code stored in the RAM 15.
  • the bus selection unit 28 switches the bus so that the CPU 13 can read / write data from / to the control register 24.
  • FIG. 5 to 6 are diagrams showing examples of the topology realized by the semiconductor device according to the first embodiment.
  • FIG. 5 is a diagram illustrating an example in which the configuration of the PCIe-PCI bridge is realized by the semiconductor device 1 according to the first embodiment.
  • This PCIe-PCI bridge 30 has three device functions (Func. 1 to Func. 3) 31 to 33, and three configuration registers corresponding to each of them are stored in the RAM 14 shown in FIGS. Be placed.
  • the functions of the device functions 31 to 33 are realized by the CPU 13 executing the program stored in the RAM 15.
  • FIG. 6 is a diagram illustrating an example in which the configuration of the PCIe switch and the PCIe-PCI bridge is realized by the semiconductor device 1 according to the first embodiment.
  • the PCIe switch 41 has an upstream port (Upstream) and two downstream ports (Downstream), and three configuration registers corresponding to the upstream port (Upstream) are arranged in the RAM 14 shown in FIGS. 2 and 4.
  • the PCIe-PCI bridge 42 has one configuration register and is arranged in the RAM 14 shown in FIGS.
  • the PCIe host 2 searches the PCIe topology by reading the configuration register corresponding to each device function when the system is started. When the device function number in each device function hits the device function number of the configuration register defined in the RAM 14, the Link control unit 23 returns a completion meaning that the device function exists in accordance with an instruction from the CPU 13. Then, the PCIe host 2 is made to recognize the device function.
  • FIG. 7 is a diagram for explaining the read operation of the configuration register when the topology shown in FIGS. 5 and 6 is realized by the semiconductor device 1 in the first embodiment shown in FIG.
  • the link control unit 23 when the link control unit 23 receives a request packet from the PCIe host 2 via the PCIe-Phys unit 21 and the PCIe-Link unit 22 ((1) in FIG. 7), it decodes the TPL. When detecting that the TPL is a configuration read, the link control unit 23 notifies the CPU 13 that the configuration read has been received ((2) in FIG. 7).
  • This notification may be made to output an interrupt request to the CPU 13 as described above, or the fact that the link control unit 23 has received the configuration read is written in the control register 24 and the CPU 13 polls it. You may make it notify by.
  • the CPU 13 Upon receiving the notification from the link control unit 23, the CPU 13 reads the contents of the corresponding configuration register from the RAM 14 ((3) in FIG. 7) and sets the data in the link control unit 23 ((4) in FIG. 7). ). Then, the link control unit 23 transmits the completion to the PCIe host 2 via the PCIe-Link unit 22 and the PCIe-Phy unit 21 and transmits the contents of the configuration register.
  • the configuration registers corresponding to the device functions 31 to 33 are stored in the RAM 14.
  • the CPU 13 reads the contents of the configuration register corresponding to the device function requested from the PCIe host 2 from the RAM 14 and sets it in the link control unit 23.
  • the RAM 14 has three configuration registers including the upstream port (Upstream) and the two downstream ports (Downstream) of the PCIe switch 41. And one configuration register of the PCIe-PCI bridge 42 is stored.
  • the CPU 13 reads the contents of the configuration register corresponding to the device requested from the PCIe host 2 from the RAM 14 and sets the contents in the link control unit 23.
  • FIG. 8 illustrates a read operation of the configuration register of the device connected to the PCI bus when the topology shown in FIGS. 5 and 6 is realized by the semiconductor device 1 in the first embodiment shown in FIG. FIG.
  • the link control unit 23 when the link control unit 23 receives a request packet from the PCIe host 2 via the PCIe-Phy unit 21 and the PCIe-Link unit 22 ((1) in FIG. 8), it decodes the TPL. Then, when detecting that the TPL is the configuration read of the device A (3), the Link control unit 23 notifies the CPU 13 that the configuration read has been received ((2) in FIG. 8).
  • the CPU 13 When the CPU 13 receives the notification from the link control unit 23, it requests the PCI bus control unit 26 for a PCI configuration read cycle ((3) in FIG. 8). Then, the PCI bus control unit 26 issues a configuration read to the device A (3) ((4) in FIG. 8).
  • the device A (3) Upon receiving a configuration read from the PCI bus control unit 26, the device A (3) transmits the contents of the configuration register to the PCI bus control unit 26. Then, the PCI bus control unit 26 notifies the CPU 13 of the read data received from the device A (3) ((5) in FIG. 8).
  • the CPU 13 sets the contents of the configuration register received from the PCI bus control unit 26 in the Link control unit 23 ((6) in FIG. 8). Then, the link control unit 23 transmits the completion to the PCIe host 2 via the PCIe-Link unit 22 and the PCIe-Phy unit 21 and transmits the contents of the configuration register.
  • FIG. 9 is a diagram for explaining the operation of the memory read of the device connected to the PCI bus when the topology shown in FIGS. 5 and 6 is realized by the semiconductor device 1 in the first embodiment shown in FIG. It is.
  • the link control unit 23 when the link control unit 23 receives a request packet from the PCIe host 2 via the PCIe-Phy unit 21 and the PCIe-Link unit 22 ((1) in FIG. 9), it decodes the TPL. Then, when detecting that the TPL is a memory read of the device A (3), the Link control unit 23 notifies the PCI bus control unit 26 that the memory read has been received ((2) in FIG. 9). ).
  • the PCI bus control unit 26 Upon receiving the notification from the Link control unit 23, the PCI bus control unit 26 issues a memory read to the device A (3) ((3) in FIG. 9). When the PCI bus control unit 26 receives the read data from the device A (3), it sequentially stores it in the data buffer 25 ((4) in FIG. 9).
  • the PCI bus control unit 26 completes the reception of the read data
  • the PCI bus control unit 26 notifies the link control unit 23 of the completion of the read data ((5) in FIG. 9).
  • the link control unit 23 receives a notification from the PCI bus control unit 26
  • the completion data is transmitted to the PCIe host 2 via the PCIe-Link unit 22 and the PCIe-Phys unit 21 and read data stored in the data buffer 25. Are sent sequentially.
  • memory write to the device A (3) is performed by the same operation as that shown in FIG. 16 described later, except that data is written to the device A (3) via the PCI bus control unit 26.
  • the semiconductor device stores the configuration register of the PCIe device constituting the PCIe topology in the RAM 14 and the configuration stored in the RAM 14 when a request is received from the PCIe host 2.
  • the response is transmitted to the PCIe host 2 with reference to the register.
  • a topology in which a plurality of PCIe devices such as a PCIe-PCI bridge, a PCIe switch, and an endpoint are arbitrarily combined is configured by the semiconductor device in the present embodiment, a physical layer, a data link layer, etc. between the PCIe devices
  • the hardware for controlling can be reduced. Therefore, it is possible to reduce the board area and component cost, and to reduce the number of gates and the package size.
  • the memory read operation of the device connected to the PCI bus is performed without using the CPU 13.
  • the memory transfer time is shortened, but the memory transfer is not limited to this method, and the memory transfer may be performed via the CPU 13.
  • the semiconductor device stores a configuration register corresponding to a general-purpose device connected to a general-purpose bus in the RAM 14, and uses the configuration register to make the general-purpose device pseudo PCIe topology. It is controlled as a connected device.
  • the configuration of the semiconductor device in the second embodiment is the same as the configuration of the semiconductor device in the first embodiment shown in FIG. Therefore, detailed description of overlapping configurations and functions will not be repeated.
  • FIG. 10 is a block diagram illustrating a configuration example of the semiconductor device according to the second embodiment.
  • the PCIe device hardware 11 is connected to the general-purpose devices 6 and 7 via the general-purpose bus. Therefore, detailed description of overlapping configurations and functions will not be repeated.
  • the general-purpose bus refers to a bus other than the above-described PCIe bus and PCI bus.
  • FIG. 11 to FIG. 14 are diagrams showing examples of the topology realized by the semiconductor device according to the second embodiment.
  • FIG. 11 is a diagram illustrating an example in which the configuration of the PCIe end point (general-purpose device) 51 is realized by the semiconductor device 1 according to the second embodiment.
  • This endpoint has only one device function (Func. 1), and a corresponding configuration register is arranged in the RAM 14 shown in FIGS.
  • FIG. 12 is a diagram illustrating an example in which the configuration of the PCIe end point (general-purpose device) 60 is realized by the semiconductor device 1 according to the second embodiment.
  • This end point has three device functions (Func. 1 to Func. 3) 61 to 63, and configuration registers corresponding to the three device functions 61 to 63 are shown in FIGS.
  • FIG. 13 is a diagram illustrating an example of realizing the configuration of the topology 70 having the PCIe switch 71 and the two PCIe end points 72 and 73 by the semiconductor device 1 according to the second embodiment.
  • Configuration switches corresponding to the PCIe switch 71 and the two PCIe endpoints 72 and 73 are arranged in the RAM 14 shown in FIGS. 2 and 4. In this case, the total number of configuration registers is 5.
  • FIG. 14 is a diagram illustrating an example of realizing the configuration of the topology 80 having three PCIe switches and five PCIe end points by the semiconductor device 1 according to the second embodiment.
  • Configuration registers corresponding to the three PCIe switches 1 to 3 (81 to 83) and the five PCIe end points 84 to 88 are arranged in the RAM 14 shown in FIGS. In this case, the total number of configuration registers is 14.
  • FIG. 15 is a diagram for explaining the write operation of the configuration register when the topologies shown in FIGS. 11 to 14 are realized by the semiconductor device 1 according to the second embodiment.
  • the link control unit 23 when the link control unit 23 receives a request packet from the PCIe host 2 via the PCIe-Phy unit 21 and the PCIe-Link unit 22 ((1) in FIG. 15), it decodes the TPL. Then, when detecting that the TPL is a configuration light, the link control unit 23 notifies the CPU 13 that the configuration light has been received ((2) in FIG. 15). At this time, the link control unit 23 also receives write data from the PCIe host 2 and transfers it to the CPU 13.
  • the CPU 13 Upon receiving the notification from the link control unit 23, the CPU 13 writes the contents of the configuration register received from the link control unit 23 into the RAM 14 ((3) in FIG. 15), and the CPU 13 loads the general-purpose bus control unit 27 as necessary.
  • the change of the operation setting is notified to the device B (4) via (4) of FIG.
  • the CPU 13 sets the response status in the link control unit 23 ((5) in FIG. 15). Then, the link control unit 23 transmits a completion to the PCIe host 2 via the PCIe-Link unit 22 and the PCIe-Phy unit 21 ((6) in FIG. 15).
  • FIG. 16 is a diagram for explaining a memory write operation of a device connected to the general-purpose bus when the topologies shown in FIGS. 11 to 14 are realized by the semiconductor device 1 according to the second embodiment.
  • the link control unit 23 when the link control unit 23 receives a request packet from the PCIe host 2 via the PCIe-Phys unit 21 and the PCIe-Link unit 22 ((1) in FIG. 16), it decodes the TPL. Then, when detecting that the TPL is a memory write of the device B (4), the Link control unit 23 stores the write data received from the PCIe host 2 in the data buffer 25 ((2) in FIG. 16).
  • the Link control unit 23 notifies the general-purpose bus control unit 27 that the memory write has been received ((3) in FIG. 16).
  • the general-purpose bus control unit 27 issues a memory write to the device B (4), and sequentially transmits the write data stored in the data buffer 25 to the device B (4) ((4) in FIG. 16). .
  • memory read from the device B (4) connected to the general-purpose bus is performed by the same operation as in FIG. 9 described above, and only data is read from the device B (4) via the general-purpose bus control unit 27. Is different.
  • the semiconductor device stores the configuration register of the general-purpose device connected to the general-purpose bus in the RAM 14 and the contents of the configuration register with respect to the configuration read from the PCIe host 2. return it. Therefore, in addition to the effects described in the first embodiment, the semiconductor device in this embodiment can pseudo-connect a general-purpose register to the PCIe topology.

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)
  • Information Transfer Systems (AREA)

Abstract

 種々のPCIeトポロジに対応したシステム構成を実現することが可能な半導体装置が提供される。RAM(14)は、PCIeデバイスのファンクション情報を定義するコンフィグレーションレジスタを記憶する。Link制御部(23)は、PCIeホスト(2)から受信したリクエストをデコードし、デコード結果をCPU(13)に出力する。CPU(13)は、Link制御部(23)から受けたデコード結果に応じて対応するコンフィグレーションレジスタをRAM(14)から読み出し、リクエストに対するレスポンスを生成してLink制御部(23)に送信させる。したがって、種々のPCIeトポロジに対応したシステム構成を実現することが可能となる。

Description

半導体装置
 本発明は、I/O(Input/Output)シリアルインタフェースを制御するための技術に関し、例えば、種々のPCI(Peripheral Component Interconnect)Express(以下、PCIeと呼ぶ。)トポロジに対応したシステム構成を実現可能な半導体装置に関する。
 近年、パーソナルコンピュータなどのデータ処理装置の高機能化、多機能化が進んでおり、様々な種類のインタフェース回路が搭載されるようになってきている。そのようなインタフェースの1つとして、PCIeを挙げることができる。
 PCIeは、従来のPCIバスが有していた転送速度不足を解消するための次世代インタフェースとして開発されたシリアルインタフェースであり、ソフトウェアレベルでPCIバスとの完全互換を実現したものである。したがって、PCIeは、従来のPCIバスが動作できるOS(Operating System)であれば、特に新しくサポートしなくてもそのOS上で動作することが可能である。
 PCIeのシステムを構成する要素として、ルートコンプレックス、エンドポイント、スイッチ、ブリッジなどがあり、これらの要素を接続することによって様々なトポロジを実現可能である。これに関連する技術として、以下のようなものが開示されている。
 特開平11-288400号公報(特許文献1)には、回路量を低減するPCIブリッジデバイスが開示されている。PCIブリッジデバイスは、2次側疑似PCIバスに接続されるデバイスのコンフィグレーション空間を疑似的に実現する。そのため、2次側疑似PCIインタフェース部は、リセット直後に、上記デバイスの情報(1次側PCIバスに見せる機能番号)を取得する。デコード部は、デバイスの情報と、2次側疑似PCIバスに出力するIDSELとを対応づける。そして、1次側PCIインタフェース部は、コンフィグレーションサイクルを検知すると、2次側疑似PCIインタフェース部とともに、サイクルの中継を行うとともに、デコード部はデバイスの情報の一部ビットの置き換えを行なう。
 特開平11-238030号公報(特許文献2)には、既存のBIOS(Basic Input/Output System)により確実にサポートされ、DMA(Direct Memory Access)コントローラとLSI(Large Scale Integrated circuit)コアとを同一チップ上に設けたカスタム化PCI-PCIブリッジが開示されている。カスタム化されたPCI-PCIブリッジはタイプ「00」ヘッダを用い、ファンクション番号を用いて2次PCIデバイスを識別しコンフィギュレーションを可能にする。PCI-PCIブリッジは、演算コア、PCIエージェントとともにVGAデバイスをサポートするために、起動時と起動後とでメモリマップを切換える。また、PCI-PCIブリッジは、2つのPCIバスが同時に駆動されないようにバス駆動を調停する。
 特開2002-024161号公報(特許文献3)には、内蔵されるPCIエージェントの数量に制限がなく、後から追加及び置き換えが容易で、全体の回路規模を小さくすることができ、しかも信号線の伝播遅延を小さくするようにレイアウト設計することが容易なPCIエージェント集積回路及びその通信方法が開示されている。PCIエージェント集積回路は、複数のPCIエージェントに共通的に使用される1つのPCIバス制御部と、各々のPCIエージェントの機能制御部と、共通的な使用を目的としてこれらの間に接続される内部共通バスとから構成される。これによりPCIエージェントの構成の変更、もしくは新規に追加する際の設計変更が容易となる。
特開平11-288400号公報 特開平11-238030号公報 特開2002-024161号公報
 PCIe-PCIブリッジを有するシステム設計において、PCIeデバイスファンクションを増やす場合、製品基板上に複数のLSIを並べるか、またはLSIに内蔵されるIP(Intellectual Property)数を増やす必要がある。
 たとえば、PCIeスイッチの下流側にPCIe-PCIブリッジとPCIeエンドポイントとを並べたトポロジを構成する場合、最低でも3種類のLSIまたはIPが必要になる。
 そのため、そのようなトポロジを複数のLSIで実現する場合、基板面積や部品コストが増大するといった問題点があった。また、LSIに内蔵される複数のIPで実現する場合、ゲート数やパッケージサイズが増大するといった問題点があった。これらは、いずれの場合にも開発コストの増大にもつながる。
 その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
 一実施の形態によれば、PCIeのトポロジを構成するデバイスを実現する半導体装置が提供される。RAMは、PCIeデバイスのファンクション情報を定義するコンフィグレーションレジスタを記憶する。Link制御部は、PCIeホストから受信したリクエストをデコードし、デコード結果をCPU(Central Processing Unit)に出力する。CPUは、Link制御部から受けたデコード結果に応じて対応するコンフィグレーションレジスタをRAMから読み出し、リクエストに対するレスポンスを生成してLink制御部に送信させる。
 上記一実施の形態によれば、CPUが、Link制御部から受けたデコード結果に応じて対応するコンフィグレーションレジスタをRAMから読み出し、リクエストに対するレスポンスを生成してLink制御部に送信させる。これにより、種々のPCIeトポロジに対応したシステム構成を実現することが可能となる。
PCIeスイッチの下流側にPCIe-PCIブリッジとPCIeエンドポイントとを並べたトポロジを構成する一例を示す図である。 第1の実施の形態における半導体装置の構成例を示すブロック図である。 PCIeデバイスハードウェアがリクエストパケットを受け取ったときの、PCIeデバイスハードウェアおよびソフトウェアシーケンサの動作を説明するためのフローチャートである。 第1の実施の形態における半導体装置のさらに詳細な構成を説明するためのブロック図である。 第1の実施の形態における半導体装置によってPCIe-PCIブリッジの構成が実現される一例を示す図である。 第1の実施の形態における半導体装置によってPCIeスイッチおよびPCIe-PCIブリッジの構成が実現される一例を示す図である。 図4に示す第1の実施の形態における半導体装置によって図5および図6に示すトポロジを実現したときのコンフィグレーションレジスタの読み出しの動作を説明するための図である。 図4に示す第1の実施の形態における半導体装置によって図5および図6に示すトポロジを実現したときのPCIバスに接続されるデバイスの、コンフィグレーションレジスタの読み出しの動作を説明するための図である。 図4に示す第1の実施の形態における半導体装置によって図5および図6に示すトポロジを実現したときのPCIバスに接続されるデバイスの、メモリリードの動作を説明するための図である。 第2の実施の形態における半導体装置の構成例を示すブロック図である。 第2の実施の形態における半導体装置によってPCIeエンドポイント(汎用デバイス)の構成を実現する一例を示す図である。 第2の実施の形態における半導体装置によってPCIeエンドポイント(汎用デバイス)の構成を実現する他の一例を示す図である。 第2の実施の形態における半導体装置によってPCIeスイッチと、2つのPCIeエンドポイントとを有するトポロジの構成を実現する一例を示す図である。 第2の実施の形態における半導体装置によって3つのPCIeスイッチと、5つのPCIeエンドポイントとを有するトポロジの構成を実現する一例を示す図である。 第2の実施の形態における半導体装置によって図11~図14に示すトポロジを実現したときのコンフィグレーションレジスタの書き込みの動作を説明するための図である。 第2の実施の形態における半導体装置によって図11~図14に示すトポロジを実現したときの汎用バスに接続されるデバイスのメモリライトの動作を説明するための図である。
 図1は、PCIeスイッチの下流側にPCIe-PCIブリッジとPCIeエンドポイントとを並べたトポロジを構成する一例を示す図である。図1に示すように、PCIeスイッチ101の下流側には、PCIe I/F(Interface)を介してPCIeブリッジ102とPCIeエンドポイント103とが接続される。
 また、PCIe-PCIブリッジ102の下流側には、PCI I/Fを介してPCIエンドポイントなどが接続される。このようなトポロジを構成する場合、最低でも3種類のLSIやIPを用いる必要があり、上述のように開発コストが増大するなどの問題が発生する。
 (第1の実施の形態)
 図2は、第1の実施の形態における半導体装置の構成例を示すブロック図である。この半導体装置1は、PCIeデバイスハードウェア11と、ソフトウェアシーケンサ12とを含む。また、ソフトウェアシーケンサ12は、CPU13と、ワークRAM(Random Access Memory)14と、コードRAM/ROM(Read Only Memory)15とを含む。半導体装置1は、PCIe I/Fを介して、PCIeホストとの通信を行なう。
 PCIeデバイスハードウェア11は、PCIe I/Fに接続され、主に物理レイヤおよびデータリンクレイヤの制御を行なう。また、CPU13は、コードRAM/ROM15に記憶されるプログラムを実行することにより、主にトランザクションレイヤの制御を行なう。なお、ワークRAM14は、コンフィグレーションレジスタを格納するが、その詳細は後述する。
 トランザクションレイヤは、主にトランザクションレイヤパケット(TLP:Transaction Layer Packet)の生成と、復号とを行なう。TLPは、リードやライトといったコマンド、アドレス、データなどで構成される。また、トランザクションレイヤは、接続相手とのフロー制御も行なう。
 PCIeのフロー制御はクレジットベースで行なわれる。クレジットベースとは、予め自分が受信できるバッファのサイズを相手に通知しておき、バッファに空きができるたびにその旨を伝える方式である。送信側は、自身が受信したパケットのサイズを積算してゆき、また送信相手からバッファの空きが伝えられるとその分を減算する。これによって、送信相手のバッファサイズを超えることなく、パケットの転送が可能となる。
 トランザクションレイヤは、メモリ空間、I/O空間およびコンフィグレーション空間の3つのアドレス空間をサポートする。
 PCIe(PCI)デバイスを制御する場合、PCIeバス(PCIバス)のコンフィグレーションレジスタの操作によって当該制御が行なわれる。詳細は、PCIの仕様書などを参照されたい。
 図3は、PCIeデバイスハードウェア11がリクエストパケットを受け取ったときの、PCIeデバイスハードウェア11およびソフトウェアシーケンサ12の動作を説明するためのフローチャートである。
 まず、PCIeデバイスハードウェア11が、PCIe I/Fを介してPCIeホストからリクエストパケット(Req TLP)を受けると、そのTLPをデコードしてどのような要求であるかを判断し、要求に応じた割り込み要求をソフトウェアシーケンサ12のCPU13に出力する(S11)。なお、リクエストパケットは、メモリに対する読み出し/書き込み要求であるメモリリクエスト、I/Oに対する読み出し/書き込み要求であるI/Oリクエスト、コンフィグレーション空間に対する読み出し/書き込み要求であるコンフィグレーションリクエストなどを含む。
 ソフトウェアシーケンサ12内のCPU13は、PCIeデバイスハードウェア11から割り込み要求を受けると、TLPのヘッダおよびデータをチェックし(S12)、リクエストパケットに対するレスポンスを生成し、レスポンスを生成したことを制御レジスタに設定して通知する(S13)。このとき、ワークRAM14に格納されるコンフィグレーションレジスタの値が適宜参照される。
 PCIeデバイスハードウェア11は、ソフトウェアシーケンサ12からレスポンスを生成したことを受けると、PCIe I/Fを介してレスポンス(Cpl TLP:コンプリーション)を送信する(S14)。このとき、読み出しの場合には、レスポンスにデータも含まれる。
 図4は、第1の実施の形態における半導体装置のさらに詳細な構成を説明するためのブロック図である。半導体装置1は、CPU13と、RAM14,15と、PCIe-Phy部21と、PCIe-Link部22と、Link制御部23と、制御レジスタ24と、データバッファ25と、PCIバス制御部26と、汎用バス制御部27と、バス選択部28とを含む。
 PCIe-Phy部21は、PCIe I/Fを介してPCIeホスト2と接続されており、PCIeの物理レイヤの機能を有している。PCIe-Link部22は、PCIeのデータリンクレイヤの機能を有している。
 Link制御部23は、PCIe-Link部22から出力される受信TLP(リクエストパケット)をデコードし、どのようなリクエストであるかを判断してCPU13に割り込み要求を出力する。また、Link制御部23は、PCIe-Link部22およびPCIe-Phy部21を介して、リクエストパケットに対応したレスポンス(コンプリーション)をPCIeホスト2に送信する。
 制御レジスタ24は、半導体装置1自身の制御のために設けられたレジスタ群であり、コンフィグレーションレジスタとは区別される。
 データバッファ25は、PCIバスまたは汎用バスを介してデバイスA(3)またはデバイスB(4)に送信するデータ、およびPCIバスまたは汎用バスを介してデバイスA(3)またはデバイスB(4)から受信したデータを一時的に格納する。
 PCIバス制御部26は、リクエストパケットがPCIバスに接続されるデバイスA(3)に対するメモリリード、メモリライトなどの場合に、デバイスA(3)との間でデータの送受信を行なう。
 汎用バス制御部27は、リクエストパケットが汎用バスに接続されるデバイスB(4)に対するメモリリード、メモリライトなどの場合に、デバイスB(4)との間でデータの送受信を行なう。
 バス選択部28は、ダウンローダ5、CPU13、RAM14,15および制御レジスタ24に接続されており、バスの切り替えを行なう。たとえば、CPU13で実行されるプログラムをダウンローダ5が、RAM15にダウンロードする場合、バス選択部28は、ダウンローダ5から出力される処理コードがRAM15に書き込まれるようにバスを切り替える。
 また、CPU13がRAM15に格納されるプログラムを実行する場合、バス選択部28は、CPU13がRAM15に格納される処理コードをフェッチできるようにバスを切り替える。また、CPU13が制御レジスタ24にアクセスする場合、バス選択部28は、CPU13が制御レジスタ24に対して読み出し/書き込みが行なえるようにバスを切り替える。
 図5~図6は、第1の実施の形態における半導体装置によって実現されるトポロジの例を示す図である。図5は、第1の実施の形態における半導体装置1によってPCIe-PCIブリッジの構成が実現される一例を示す図である。このPCIe-PCIブリッジ30は、3つのデバイスファンクション(Func.1~Func.3)31~33を有しており、それぞれに対応する3つのコンフィグレーションレジスタが、図2および図4に示すRAM14に配置される。CPU13がRAM15に記憶されるプログラムを実行することによって、デバイスファンクション31~33の機能が実現される。
 図6は、第1の実施の形態における半導体装置1によってPCIeスイッチおよびPCIe-PCIブリッジの構成が実現される一例を示す図である。PCIeスイッチ41は、上流側ポート(Upstream)および2つの下流側ポート(Downstream)を有しており、それぞれに対応する3つのコンフィグレーションレジスタが、図2および図4に示すRAM14に配置される。また、PCIe-PCIブリッジ42は、1つのコンフィグレーションレジスタを有しており、図2および図4に示すRAM14に配置される。
 PCIeホスト2は、システム起動時に各デバイスファンクションに対応するコンフィグレーションレジスタを読み出すことでPCIeのトポロジを検索する。RAM14に定義されたコンフィグレーションレジスタのデバイスファンクション番号に当該各デバイスファンクションにおけるデバイスファンクション番号がヒットしたときに、CPU13の指示によりLink制御部23が、そのデバイスファンクションの存在を意味するコンプリーションを返すことでPCIeホスト2にデバイスファンクションを認識させる。
 図7は、図4に示す第1の実施の形態における半導体装置1によって図5および図6に示すトポロジを実現したときのコンフィグレーションレジスタの読み出しの動作を説明するための図である。
 まず、Link制御部23が、PCIe-Phy部21およびPCIe-Link部22を介してPCIeホスト2からリクエストパケットを受けると(図7の(1))、そのTPLをデコードする。そして、そのTPLがコンフィグレーションリードであることを検出すると、Link制御部23は、CPU13に対してコンフィグレーションリードを受信したことを通知する(図7の(2))。
 この通知は、上述のようにCPU13に対して割り込み要求を出力するようにしてもよいし、Link制御部23がコンフィグレーションリードを受信したことを制御レジスタ24に書き込み、CPU13がそれをポーリングすることによって通知するようにしてもよい。
 CPU13は、Link制御部23から通知を受けると、RAM14から対応するコンフィグレーションレジスタの内容を読み出し(図7の(3))、そのデータをLink制御部23に設定する(図7の(4))。そして、Link制御部23は、PCIe-Link部22およびPCIe-Phy部21を介してPCIeホスト2にコンプリーションを送信すると共に、コンフィグレーションレジスタの内容を送信する。
 たとえば、本実施の形態における半導体装置1によって図5に示すトポロジが構成された場合、RAM14にデバイスファンクション31~33に対応するコンフィグレーションレジスタが格納されている。CPU13は、PCIeホスト2から要求があったデバイスファンクションに対応するコンフィグレーションレジスタの内容をRAM14から読み出し、Link制御部23に設定する。
 また、本実施の形態における半導体装置1によって図6に示すトポロジが構成された場合、RAM14に、PCIeスイッチ41の上流側ポート(Upstream)および2つの下流側ポート(Downstream)の3つのコンフィグレーションレジスタと、PCIe-PCIブリッジ42の1つのコンフィグレーションレジスタとが格納されている。CPU13は、PCIeホスト2から要求があったデバイスに対応するコンフィグレーションレジスタの内容をRAM14から読み出し、Link制御部23に設定する。
 図8は、図4に示す第1の実施の形態における半導体装置1によって図5および図6に示すトポロジを実現したときのPCIバスに接続されるデバイスのコンフィグレーションレジスタの読み出しの動作を説明するための図である。
 まず、Link制御部23が、PCIe-Phy部21およびPCIe-Link部22を介してPCIeホスト2からリクエストパケットを受けると(図8の(1))、そのTPLをデコードする。そして、そのTPLがデバイスA(3)のコンフィグレーションリードであることを検出すると、Link制御部23は、CPU13に対してコンフィグレーションリードを受信したことを通知する(図8の(2))。
 CPU13は、Link制御部23から通知を受けると、PCIバス制御部26に対してPCIのコンフィグレーションリードサイクルを要求する(図8の(3))。そして、PCIバス制御部26がデバイスA(3)に対してコンフィグレーションリードを発行する(図8の(4))。
 デバイスA(3)は、PCIバス制御部26からコンフィグレーションリードを受けると、コンフィグレーションレジスタの内容をPCIバス制御部26に送信する。そして、PCIバス制御部26は、デバイスA(3)から受信したリードデータをCPU13に通知する(図8の(5))。
 次に、CPU13がPCIバス制御部26から受けたコンフィグレーションレジスタの内容をLink制御部23に設定する(図8の(6))。そして、Link制御部23は、PCIe-Link部22およびPCIe-Phy部21を介してPCIeホスト2にコンプリーションを送信すると共に、コンフィグレーションレジスタの内容を送信する。
 図9は、図4に示す第1の実施の形態における半導体装置1によって図5および図6に示すトポロジを実現したときのPCIバスに接続されるデバイスのメモリリードの動作を説明するための図である。
 まず、Link制御部23が、PCIe-Phy部21およびPCIe-Link部22を介してPCIeホスト2からリクエストパケットを受けると(図9の(1))、そのTPLをデコードする。そして、そのTPLがデバイスA(3)のメモリリードであることを検出すると、Link制御部23は、PCIバス制御部26に対してメモリリードを受信したことを通知する(図9の(2))。
 PCIバス制御部26は、Link制御部23から通知を受けると、デバイスA(3)に対してメモリリードを発行する(図9の(3))。そして、PCIバス制御部26がデバイスA(3)からリードデータを受けると、それをデータバッファ25に順次格納する(図9の(4))。
 そして、PCIバス制御部26は、リードデータの受信を完了すると、Link制御部23に対してリードデータの完了を通知する(図9の(5))。Link制御部23がPCIバス制御部26から通知を受けると、PCIe-Link部22およびPCIe-Phy部21を介してPCIeホスト2にコンプリーションを送信すると共に、データバッファ25に格納されるリードデータを順次送信する。
 なお、デバイスA(3)に対するメモリライトは、後述の図16と同様の動作によって行なわれ、PCIバス制御部26を介してデバイスA(3)にデータを書き込む点のみが異なる。
 以上説明したように、本実施の形態における半導体装置は、PCIeトポロジを構成するPCIeデバイスのコンフィグレーションレジスタをRAM14に格納し、PCIeホスト2からリクエストを受けたときに、RAM14に格納されるコンフィグレーションレジスタを参照してレスポンスをPCIeホスト2に送信する。これによって、種々のPCIeトポロジに対応したシステム構成を実現することが可能となった。
 また、本実施の形態における半導体装置によって、PCIe-PCIブリッジ、PCIeスイッチ、エンドポイントなどの複数のPCIeデバイスを任意に組み合わせたトポロジを構成する場合、そのPCIeデバイス間の物理レイヤやデータリンクレイヤなどを制御するためのハードウェアを削減することができる。したがって、基板面積や部品コストを削減したり、ゲート数やパッケージサイズを削減したりすることが可能となった。
 また、半導体装置を出荷した後でも、PCIeトポロジやデバイスファンクションを変更することができるため、デバッグ時に判明した不具合の修正や、顧客からの要求仕様の変更などにも対応することが可能となった。
 また、本実施の形態における半導体装置においては、所望のトポロジを実現したときはPCIバスに接続されるデバイスのメモリリードの動作はCPU13を介さないで実施している。これによってメモリ転送時間の短縮を図っているが、メモリ転送はこの方法に限定されずCPU13を介してメモリ転送を行わせてもよい。
 (第2の実施の形態)
 第2の実施の形態における半導体装置は、汎用バスに接続される汎用デバイスに対応するコンフィグレーションレジスタをRAM14に記憶し、そのコンフィグレーションレジスタを用いることによって、汎用デバイスを擬似的にPCIeのトポロジに接続されたデバイスとして制御するものである。なお、第2の実施の形態における半導体装置の構成は、図4に示す第1の実施の形態における半導体装置の構成と同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
 図10は、第2の実施の形態における半導体装置の構成例を示すブロック図である。図2に示す第1の実施の形態における半導体装置の構成例と比較して、PCIeデバイスハードウェア11が汎用バスを介して汎用デバイス6および7に接続される点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。ここで、汎用バスとは、上述のPCIeバスおよびPCIバス以外のバスを指すものとする。
 図11~図14は、第2の実施の形態における半導体装置によって実現されるトポロジの例を示す図である。図11は、第2の実施の形態における半導体装置1によってPCIeエンドポイント(汎用デバイス)51の構成を実現する一例を示す図である。このエンドポイントは、1つのデバイスファンクション(Func.1)のみを有しており、対応するコンフィグレーションレジスタが、図2および図4に示すRAM14に配置される。
 図12は、第2の実施の形態における半導体装置1によってPCIeエンドポイント(汎用デバイス)60の構成を実現する一例を示す図である。このエンドポイントは、3つのデバイスファンクション(Func.1~Func.3)61~63を有しており、3つのデバイスファンクション61~63のそれぞれに対応するコンフィグレーションレジスタが、図2および図4に示すRAM14に配置される。
 図13は、第2の実施の形態における半導体装置1によってPCIeスイッチ71と、2つのPCIeエンドポイント72および73とを有するトポロジ70の構成を実現する一例を示す図である。PCIeスイッチ71と、2つのPCIeエンドポイント72および73のそれぞれに対応するコンフィグレーションレジスタが、図2および図4に示すRAM14に配置される。この場合、コンフィグレーションレジスタの総数は5となる。
 図14は、第2の実施の形態における半導体装置1によって3つのPCIeスイッチと、5つのPCIeエンドポイントとを有するトポロジ80の構成を実現する一例を示す図である。3つのPCIeスイッチ1~3(81~83)と、5つのPCIeエンドポイント84~88のそれぞれに対応するコンフィグレーションレジスタが、図2および図4に示すRAM14に配置される。この場合、コンフィグレーションレジスタの総数は14となる。
 図15は、第2の実施の形態における半導体装置1によって図11~図14に示すトポロジを実現したときのコンフィグレーションレジスタの書き込みの動作を説明するための図である。
 まず、Link制御部23が、PCIe-Phy部21およびPCIe-Link部22を介してPCIeホスト2からリクエストパケットを受けると(図15の(1))、そのTPLをデコードする。そして、そのTPLがコンフィグレーションライトであることを検出すると、Link制御部23は、CPU13に対してコンフィグレーションライトを受信したことを通知する(図15の(2))。このとき、Link制御部23は、PCIeホスト2からライトデータも受信して、CPU13に転送する。
 CPU13は、Link制御部23から通知を受けると、RAM14にLink制御部23から受けたコンフィグレーションレジスタの内容を書き込み(図15の(3))、必要に応じてCPU13が汎用バス制御部27を介してデバイスB(4)に動作設定の変更を通知する(図15の(4))。
 また、CPU13は、そのレスポンスステータスをLink制御部23に設定する(図15の(5))。そして、Link制御部23は、PCIe-Link部22およびPCIe-Phy部21を介してPCIeホスト2にコンプリーションを送信する(図15の(6))。
 なお、汎用デバイスB(4)に対するコンフィグレーションリードの動作は、図7に示すコンフィグレーションレジスタの読み出しの動作と同様であるので、詳細な説明は繰り返さない。
 図16は、第2の実施の形態における半導体装置1によって図11~図14に示すトポロジを実現したときの汎用バスに接続されるデバイスのメモリライトの動作を説明するための図である。
 まず、Link制御部23が、PCIe-Phy部21およびPCIe-Link部22を介してPCIeホスト2からリクエストパケットを受けると(図16の(1))、そのTPLをデコードする。そして、そのTPLがデバイスB(4)のメモリライトであることを検出すると、Link制御部23は、PCIeホスト2から受けたライトデータをデータバッファ25に格納する(図16の(2))。
 次に、Link制御部23は、汎用バス制御部27に対してメモリライトを受信したことを通知する(図16の(3))。そして、汎用バス制御部27は、デバイスB(4)に対してメモリライトを発行し、データバッファ25に格納されるライトデータを順次デバイスB(4)に送信する(図16の(4))。
 なお、汎用バスに接続されるデバイスB(4)からのメモリリードは、上述の図9と同様の動作によって行なわれ、汎用バス制御部27を介してデバイスB(4)からデータを読み出す点のみが異なる。
 以上説明したように、本実施の形態における半導体装置は、汎用バスに接続される汎用デバイスのコンフィグレーションレジスタをRAM14に記憶し、PCIeホスト2からのコンフィグレーションリードに対してこのコンフィグレーションレジスタの内容を返す。したがって、本実施の形態における半導体装置は、第1の実施の形態において説明した効果に加えて、PCIeのトポロジに汎用レジスタを擬似的に接続することが可能である。
 以上、本発明者等によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
 1 半導体装置、2 PCIeホスト、3,4 デバイス、5 ダウンローダ、6,7
 汎用デバイス、11 PCIeデバイスハードウェア、12 ソフトウェアシーケンサ、13 CPU、14 ワークRAM、15 コードRAM/ROM、21 PCIe-Phy部、22 PCIe-Link部、23 Link制御部、24 制御レジスタ、25 データバッファ、26 PCIバス制御部、27 汎用バス制御部、28 バス選択部。

Claims (8)

  1.  シリアルインタフェースバスのトポロジを構成するデバイスを実現する半導体装置であって、
     プロセッサと、
     前記プロセッサによって参照されるデータを記憶する記憶部と、
     前記シリアルインタフェースバスの物理レイヤおよびデータリンクレイヤを制御するシリアルインタフェースバス制御部とを含み、
     前記記憶部は、前記デバイスのファンクション情報を定義するコンフィグレーションレジスタを記憶し、
     前記シリアルインタフェースバス制御部は、ホストから受信したリクエストをデコードし、デコード結果を前記プロセッサに出力し、
     前記プロセッサは、前記シリアルインタフェースバス制御部から受けたデコード結果に応じて対応するコンフィグレーションレジスタを前記記憶部から読み出し、前記リクエストに対するレスポンスを生成して前記シリアルインタフェースバス制御部に送信させる、半導体装置。
  2.  前記シリアルインタフェースバスは、PCIeバスである、請求項1記載の半導体装置。
  3.  前記プロセッサは、前記記憶部に記憶されるコンフィグレーションレジスタの総数および各コンフィグレーションレジスタごとの機能を変更することで、前記半導体装置によって実現されるデバイスを変更する、請求項1または2記載の半導体装置。
  4.  前記半導体装置はさらに、PCIバスに接続されるデバイスとの間のデータの送受信を制御するPCIバス制御部を含み、
     前記シリアルインタフェースバス制御部によるデコード結果が前記PCIバスに接続されるデバイスの制御に関するリクエストである場合、前記PCIバス制御部は、前記PCIバスに接続されるデバイスとの間でデータの送受信を行なうことにより、ブリッジの機能を実現する、請求項1または2に記載の半導体装置。
  5.  前記記憶部は、上流側ポートおよび下流側ポートのそれぞれのコンフィグレーションレジスタを記憶し、
     前記シリアルインタフェースバス制御部によるデコード結果が前記上流側ポートまたは下流側ポートのコンフィグレーションリードの場合、前記プロセッサは対応するコンフィグレーションレジスタを前記記憶部から読み出して前記シリアルインタフェースバス制御部に送信させることにより、前記ブリッジおよびスイッチの機能を実現する、請求項4記載の半導体装置。
  6.  前記半導体装置はさらに、汎用バスに接続される汎用デバイスとの間のデータの送受信を制御する汎用バス制御部を含み、
     前記記憶部は、前記汎用デバイスに対応するコンフィグレーションレジスタを記憶し、
     前記シリアルインタフェースバス制御部によるデコード結果が前記汎用デバイスのコンフィグレーションリードの場合、前記プロセッサは前記汎用デバイスに対応するコンフィグレーションレジスタを前記記憶部から読み出して前記シリアルインタフェースバス制御部に送信させ、前記シリアルインタフェースバス制御部によるデコード結果が前記汎用デバイスの制御に関するリクエストである場合、前記汎用バス制御部は、前記汎用デバイスとの間でデータの送受信を行なうことにより、前記汎用デバイスを擬似的に前記シリアルインタフェースバスのトポロジに接続されたデバイスとして制御する、請求項1または2に記載の半導体装置。
  7.  前記シリアルインタフェースバス制御部は、前記ホストから受信したリクエストのデコード結果に対応する割込み要求を前記プロセッサに出力し、
     前記プロセッサは、前記シリアルインタフェースバス制御部から受けた割込み要求に応じて対応するコンフィグレーションレジスタを参照する、請求項1記載の半導体装置。
  8.  前記シリアルインタフェースバス制御部は、前記ホストから受信したリクエストのデコード結果をレジスタに書き込み、
     前記プロセッサは、前記レジスタに書き込まれたデコード結果をポーリングすることによって、前記シリアルインタフェースバス制御部から受けたリクエストを判断し、対応するコンフィグレーションレジスタを参照する、請求項1記載の半導体装置。
PCT/JP2012/053761 2011-03-17 2012-02-17 半導体装置 Ceased WO2012124431A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/984,428 US20130326097A1 (en) 2011-03-17 2012-02-17 Semiconductor device
JP2013504621A JPWO2012124431A1 (ja) 2011-03-17 2012-02-17 半導体装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-059318 2011-03-17
JP2011059318 2011-03-17

Publications (1)

Publication Number Publication Date
WO2012124431A1 true WO2012124431A1 (ja) 2012-09-20

Family

ID=46830508

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/053761 Ceased WO2012124431A1 (ja) 2011-03-17 2012-02-17 半導体装置

Country Status (3)

Country Link
US (1) US20130326097A1 (ja)
JP (1) JPWO2012124431A1 (ja)
WO (1) WO2012124431A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289444A1 (en) * 2013-03-19 2014-09-25 Fujitsu Limited Information processing apparatus and method of controlling
KR20160106486A (ko) * 2015-03-02 2016-09-12 삼성전자주식회사 불휘발성 메모리 모듈 어레이 시스템
CN107992438A (zh) * 2017-11-24 2018-05-04 郑州云海信息技术有限公司 一种服务器及在服务器内灵活配置PCIe拓扑的方法
US20220086101A1 (en) * 2020-09-17 2022-03-17 Honda Motor Co., Ltd. Communication control apparatus, communication system, communication control method, and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195870A (ja) * 2005-01-17 2006-07-27 Ricoh Co Ltd データ転送システム及び電子機器
JP2009169842A (ja) * 2008-01-18 2009-07-30 Hitachi Ltd 複合型計算機システムの管理方法及び複合型計算機システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076160A (en) * 1997-11-20 2000-06-13 Advanced Micro Devices, Inc. Hardware-based system for enabling data transfers between a CPU and chip set logic of a computer system on both edges of bus clock signal
JPH11238030A (ja) * 1998-02-20 1999-08-31 Mitsubishi Electric Corp Pci−pciブリッジおよびそのための先入れ先出しメモリ
JPH11288400A (ja) * 1998-04-03 1999-10-19 Nec Shizuoka Ltd Pciブリッジデバイス
JP2009037674A (ja) * 2007-07-31 2009-02-19 Ntn Corp ハードディスクドライブの評価方法
US8234458B2 (en) * 2008-12-09 2012-07-31 Nvidia Corporation System and method for maintaining cache coherency across a serial interface bus using a snoop request and complete message

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195870A (ja) * 2005-01-17 2006-07-27 Ricoh Co Ltd データ転送システム及び電子機器
JP2009169842A (ja) * 2008-01-18 2009-07-30 Hitachi Ltd 複合型計算機システムの管理方法及び複合型計算機システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289444A1 (en) * 2013-03-19 2014-09-25 Fujitsu Limited Information processing apparatus and method of controlling
JP2014182604A (ja) * 2013-03-19 2014-09-29 Fujitsu Ltd 情報処理装置及び制御方法
KR20160106486A (ko) * 2015-03-02 2016-09-12 삼성전자주식회사 불휘발성 메모리 모듈 어레이 시스템
KR102262807B1 (ko) 2015-03-02 2021-06-09 삼성전자주식회사 불휘발성 메모리 모듈 어레이 시스템
CN107992438A (zh) * 2017-11-24 2018-05-04 郑州云海信息技术有限公司 一种服务器及在服务器内灵活配置PCIe拓扑的方法
US20220086101A1 (en) * 2020-09-17 2022-03-17 Honda Motor Co., Ltd. Communication control apparatus, communication system, communication control method, and storage medium
US12231348B2 (en) * 2020-09-17 2025-02-18 Honda Motor Co., Ltd. Communication control apparatus, communication system, communication control method, and storage medium for determining whether to permit data transmission

Also Published As

Publication number Publication date
US20130326097A1 (en) 2013-12-05
JPWO2012124431A1 (ja) 2014-07-17

Similar Documents

Publication Publication Date Title
CN113434446B (zh) 灵活总线协议协商和启用序列
CN102511039B (zh) 将不可预取存储单元映射到存储器映射输入/输出空间中
US10210120B2 (en) Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
CN112631959B (zh) 用于一致性消息的高带宽链路层
JP4589384B2 (ja) 高速メモリモジュール
US20150347345A1 (en) Gen3 pci-express riser
JP7391154B2 (ja) デイジーチェーンspi集積回路およびその動作方法
JP5824488B2 (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
EP3213220B1 (en) Methods and circuits for deadlock avoidance
JPH11238030A (ja) Pci−pciブリッジおよびそのための先入れ先出しメモリ
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
CN110659221A (zh) 主机管理的相干设备存储器
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
US20160380747A1 (en) Flexible interconnect architecture
US20080250186A1 (en) Bus connecting device for connecting host with external device
WO2012124431A1 (ja) 半導体装置
US7096290B2 (en) On-chip high speed data interface
US9563586B2 (en) Shims for processor interface
US8996772B1 (en) Host communication device and method with data transfer scheduler
CN105068962A (zh) I2c控制器访问方法及系统
KR100684553B1 (ko) 듀얼 포트 메모리와 결합되는 마이크로 프로세서
TW201916644A (zh) 匯流排系統
CN110399322B (zh) 一种数据传输方法及乒乓dma架构
CN101676894B (zh) 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法
TWI526842B (zh) 應用於x86系統之訊號寫入之控制與切換模組

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12758181

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013504621

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13984428

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12758181

Country of ref document: EP

Kind code of ref document: A1