WO2011030498A1 - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法 Download PDF

Info

Publication number
WO2011030498A1
WO2011030498A1 PCT/JP2010/004700 JP2010004700W WO2011030498A1 WO 2011030498 A1 WO2011030498 A1 WO 2011030498A1 JP 2010004700 W JP2010004700 W JP 2010004700W WO 2011030498 A1 WO2011030498 A1 WO 2011030498A1
Authority
WO
WIPO (PCT)
Prior art keywords
cluster
address
transfer destination
transfer
circuit
Prior art date
Application number
PCT/JP2010/004700
Other languages
English (en)
French (fr)
Inventor
兒玉征之
佐圓真
伊藤潔人
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2011030498A1 publication Critical patent/WO2011030498A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Definitions

  • the present invention relates to a data processing apparatus and a data processing method, and more particularly to a technique effective when applied to a data processing apparatus composed of a plurality of clusters.
  • a system such as a PC cluster has been used as a method for performing a large-scale calculation using a large number of CPUs (central processing units). This is done on a large scale by running an OS on an LSI with about 1 to 8 CPUs on a single PC, connecting with a communication network such as Ethernet (registered trademark), and performing mutual communication while performing packet communication. Perform simple calculations.
  • a virtual space uniquely corresponding to a process is configured, each cluster includes an instruction execution circuit and a transmission / reception circuit, and data is transmitted via a network to a virtual space designated for an instruction executed in another cluster. Is disclosed.
  • the number of CPUs that can be mounted on a single LSI or a single stacked LSI is expected to increase dramatically due to recent advances in semiconductor integration technology and three-dimensional mounting technology.
  • a method for coordinating the CPUs is required as in the PC cluster.
  • a method of mounting a packet communication mechanism such as Ethernet in the LSI as in the PC cluster can be analogized.
  • a packet In packet communication, a packet can be transferred through an arbitrary route regardless of the connection form of the CPU in the chip.
  • a physical address space may be expanded from 32 bits to 64 bits, and addresses may be allocated to resources such as storage elements such as all CPUs and memories and peripheral circuits.
  • the method of implementing the packet communication mechanism in the LSI has a penalty in both hardware and software.
  • transfer efficiency degradation due to addition of a packet header and response performance degradation due to increased latency are large.
  • packet analysis processing is required, so a small transfer size results in a large overhead, and the system performance deteriorates. Therefore, when trying to realize a certain process, it is necessary to transfer between clusters with as much granularity as possible.
  • the transfer route is uniquely determined by the address, so communication overhead should be reduced, but not only hardware such as CPU, A large-scale modification of the OS or the like is necessary, and a large cost is required. Also, since the communication path is uniquely determined by the address, the transfer destination can be changed by having a plurality of address maps, but the communication path cannot be changed.
  • a main problem of the present invention is that in a data processing apparatus in which a large number of logic circuits such as CPU or IP are mounted on a single LSI or a stacked LSI configured by a single three-dimensional mounting technology, the CPU or IP and OS It is an object of the present invention to provide a system and method for realizing a data transfer mechanism for sharing and linking resources of all data processing apparatuses with a minimum of overhead and with minimal overhead.
  • Another object of the present invention is to provide a system and method for realizing a data transfer mechanism capable of changing a data transfer path without redesigning and remanufacturing hardware constituting a data processing apparatus. There is to do.
  • a data processing apparatus of the present invention is a data processing apparatus comprising a plurality of clusters having different address spaces and a network connecting the clusters, for uniquely identifying each of the plurality of clusters.
  • a cluster ID number is held as information and a resource included in the address space of another cluster is accessed from one cluster among the plurality of clusters, the ID number of the other cluster is added to the address of the resource.
  • the transfer destination is uniquely specified in the system by adding.
  • a data processing device capable of transfer can be provided.
  • FIG. 1 is a block diagram showing a system configuration example in which a data processing apparatus according to an embodiment of the present invention is mounted on a semiconductor integrated circuit. It is an example of the address map which the system of FIG. 1 has. 1 shows an example of a request and response transfer mechanism of one cluster in a system LSI including a transfer destination cluster number and a transfer destination cluster address adding circuit (TCNAU), which is an example of a unit cluster realized by the semiconductor integrated circuit according to the present invention. It is a block diagram.
  • FIG. 4 is a block diagram illustrating a configuration example of a transfer destination cluster number and transfer destination cluster address addition circuit (TCNAU) included in the system LSI illustrated in FIG. 3.
  • TCNAU transfer destination cluster address addition circuit
  • FIG. 4 is a diagram showing a configuration example of a transfer destination cluster number and transfer destination cluster address designation register (TCNACR) in a transfer destination cluster number and transfer destination cluster address adding circuit (TCNAU) included in the system LSI shown in FIG. 3.
  • FIG. 4 is a timing chart showing an operation example of a transfer destination cluster number and transfer destination cluster address adding circuit (TCNAU) included in the system LSI shown in FIG. 3.
  • FIG. 4 is a block diagram illustrating a configuration example of a request transfer circuit (REQTU) included in the system LSI illustrated in FIG. 3.
  • REQTU request transfer circuit
  • REQTU request transfer circuit
  • REQTU request transfer circuit
  • REQTU request transfer circuit
  • REQTU request transfer circuit
  • REQTU response transfer circuit
  • RESTU response transfer circuit
  • FIG. 5 is a flowchart showing an outline of program processing when the transfer destination cluster number and transfer destination cluster address addition circuit (TCNAU) shown in FIG. 4 is used.
  • FIG. 5 is a flowchart showing an outline of program processing when the transfer destination cluster number and transfer destination cluster address addition circuit (TCNAU) shown in FIG. 4 is used in a system that generates an interrupt.
  • It is a block diagram which shows the system structural example which mounted the data processor which becomes the other Example of this invention with the semiconductor integrated circuit.
  • one cluster path variable request and response transfer in a system LSI including a transfer destination cluster number and transfer destination cluster address adding circuit (TCNAU) and a routing register (Path Reg).
  • FIG. 12 is a setting example diagram of a routing register (Path Reg) included in the system LSI shown in FIG.
  • FIG. 13 is a block diagram illustrating a configuration example of a variable path request transfer circuit (VREQTU) included in the system LSI illustrated in FIG. 12.
  • VREQTU variable path request transfer circuit
  • VRESTU variable path response transfer circuit
  • the elements constituting the system have a register that holds a cluster ID number for uniquely identifying a plurality of unit clusters.
  • the resource is uniquely determined on the unit cluster, but has a duplicate resource having a duplicate physical address in the entire system, and a non-overlap resource in which the physical address is not duplicated in the entire data processing apparatus.
  • a cluster ID number is given in addition to an address to uniquely specify a transaction destination in the system.
  • Cluster including initiator IP module, target IP module, transfer destination cluster number and transfer destination cluster address addition circuit, request transfer circuit, response transfer circuit, initiator bridge circuit, target bridge circuit, and own cluster number register 2 or more, If the request from the initiator IP module is an access to a specific address, the transfer destination cluster number and information required for transfer to another cluster are assigned by the transfer destination cluster address addition circuit, and the information is Configure the data processing device to determine whether the transfer destination is the local cluster or another cluster and transfer the data, An initiator IP module that accesses another cluster from its own cluster may access another cluster after setting the transfer destination cluster number and transfer destination cluster address addition circuit before accessing the other cluster. Build a system that uses a program to access another cluster.
  • the cluster includes an initiator IP module, a target IP module, a transfer destination cluster number and transfer destination cluster address addition circuit, a routing register, a path variable request transfer circuit, a path variable response transfer circuit, an initiator bridge circuit, , Change to have 4 or more clusters including target bridge circuit and own cluster number register, If the request from the initiator IP module is an access to a specific address, the transfer destination cluster number and information required for transfer to another cluster are assigned by the transfer destination cluster address addition circuit, and the information is Determine whether the transfer destination is the local cluster or another cluster, configure the data processing device to transfer data according to the setting of the routing register, An initiator IP module that accesses another cluster from its own cluster may access another cluster after setting the transfer destination cluster number and transfer destination cluster address addition circuit before accessing the other cluster. Build a system that uses a program to access another cluster.
  • an initiator IP module represented by a CPU or the like and data transfer between all overlapping resources in a data processing apparatus composed of a plurality of clusters without modification of the OS and with minimal overhead. It is possible to provide a data processing device capable of performing
  • a data processing apparatus capable of bypassing a cluster where data cannot be transferred due to power interruption, manufacturing failure, cluster configuration change, or the like during data transfer. can do.
  • FIG. 1 is a conceptual diagram showing an example of a physical system configuration of a data processing apparatus according to an embodiment of the present invention.
  • the data processing apparatus 0001 of the present embodiment is preferably configured by mounting a number of logic circuits such as a CPU and IP (Intellectual Property Core) in a single semiconductor integrated circuit (LSI) or a single stacked LSI. Is done.
  • LSI semiconductor integrated circuit
  • IP Intelligent Property Core
  • the present invention can be applied to a plurality of semiconductor integrated circuits (LSIs) having a common OS or a data processing device mounted on a plurality of stacked LSIs.
  • the data processing device 0001 is composed of a combination of unit clusters, which are the minimum structural units of the system.
  • the data processing apparatus includes a unit cluster A (0010), a unit cluster B (0011), a unit cluster C (0012), and a unit cluster D (0013).
  • the number of unit clusters to be configured may be two or more, and FIG. 1 shows a configuration example including four unit clusters.
  • Each unit cluster has a network connected to an arbitrary cluster by a bus.
  • the unit cluster is a cluster in which an arbitrary number of CPUs and an arbitrary number of IP and DMA (Direct Memory Access), etc. are connected by a bus, and a physical address on which an existing OS, for example, 32 bits can operate. It has a space (unit address map).
  • the unit cluster A (0010) includes an initiator module including CPU0, CPU1, CPU2, and DMA0, and a target module including SRAM0, DRAM, 3DRAM (three-dimensional DRAM) 0, and IP0.
  • the unit cluster B (0011) includes an initiator module including CPU3, CPU4, DMA1, and IP1, and a target module including SRAM1 and 3DRAM1, and a unit cluster C (0012) includes an initiator module including CPU5, DMA2, and SRAM2,
  • the unit cluster D (0013) is composed of an initiator module composed of CPU6, CPU7 and DMA3, and a target module composed of SRAM3 and 3DRAM3.
  • the DRAM exists only in the unit cluster A, and a program for performing data processing is held in this DRAM. Accordingly, in the other unit clusters, predetermined data processing is performed by calling a program held in the DRAM of the unit cluster A and executing it by the CPU.
  • the network connecting these unit clusters is a ring network as an example, unit cluster A (0010) and unit cluster B (0011), unit cluster B (0011) and unit cluster D (0013), unit Cluster D (0013) and unit cluster C (0012), unit cluster C (0012) and unit cluster A (0010) are connected via buses 0020, 0021, 0022, and 0023, respectively.
  • a specific resource existing in one unit cluster can be referred to from another unit cluster.
  • such an access not only within the unit cluster but also across the unit clusters is realized by a normal memory allocation access.
  • the resource of another unit cluster can be handled as if it were an IP belonging to the unit cluster.
  • FIG. 2 shows a unit address map of each unit cluster in the system configuration example shown in FIG. That is, an example of a physical address space used by the OS or the like corresponding to the cluster that is the physical component shown in FIG. 2A is a unit address map A indicating the address map of the unit cluster A, FIG. 2B is a unit address map B indicating the address map of the unit cluster B, and FIG. 2C is a unit indicating the address map of the unit cluster C.
  • Address maps C and (d) are unit address maps D indicating the address map of the unit cluster D.
  • the DRAMs shown in FIGS. 2B to 2D are DRAMs that physically exist only in the unit cluster A.
  • the target module assigned to each unit address map has duplicate resources shown in white, non-duplicate resources shown in gray, and unused addresses shown in black.
  • Duplicate resource is an address area where the target module mapped for each unit address map is different
  • non-duplicate resource is an address area where the same target module is mapped in each unit address map.
  • the address indicates an address area where the target module is not mapped among the overlapping resources.
  • the duplicate resource is uniquely determined on the unit cluster (it becomes a non-overlapping resource in the unit cluster), but the data processing apparatus as a whole has the same address and multiple resources belonging to different unit clusters. .
  • Non-overlapping resources have unique addresses that do not overlap as a whole data processing apparatus.
  • the target module SRAM0 included in the unit cluster A is a duplicate resource.
  • the program executed in the unit cluster A wants to access the SRAM 1 which is a duplicate resource included in the unit address map B. Since the address map where the program is operating is the unit address map A, even if an address (x0000 — 0000) for accessing the SRAM 1 is simply issued, the SRAM 0 is accessed.
  • data is exchanged between the unit clusters A to D, that is, when a duplicate resource is accessed, a cluster number is given in addition to an address, so that a destination of a transfer process (transaction) made up of commands, data, etc. (Target) is uniquely specified in the system.
  • the data processing apparatus includes a register that holds information for uniquely identifying a plurality of unit clusters, and a physical address space including duplicate resources and non-duplicate resources (hereinafter, unless otherwise distinguished, simply Address space). It should be noted that the arrangement of each resource in FIGS. 1 and 2 shows an example, and it goes without saying that various changes can be made according to the application.
  • FIG. 3 is a diagram illustrating a specific configuration example of a unit cluster in the data processing apparatus according to the first embodiment.
  • 3 is a block diagram showing an example of a request and response transfer mechanism for one cluster in a system LSI including a transfer destination cluster number and a transfer destination cluster address adding circuit (TCNAU).
  • TCNAU transfer destination cluster address adding circuit
  • Reference numeral 0101 denotes a unit cluster which is the minimum configuration unit of the system.
  • the transfer destination cluster number and transfer destination cluster address addition circuit indicated by 0102, the request transfer circuit (REQTU) indicated by 0103, and the response transfer circuit indicated by 0201 (RESTU), an initiator bridge circuit 0 (BIn0) indicated by 0104, a target bridge circuit 0 (BTn0) indicated by 0105, an own cluster number register (MyClusterID Reg) indicated by 0106 that holds its own cluster number, and 0192 And an initiator IP module X (IP X) indicated by, and a target IP module Y (IP Y) indicated by 0193.
  • the initiator bridge circuit 0 receives a request from another cluster J indicated by 0190, transfers it to the REQTU, or receives a response from the RESTU and returns it to the other cluster J.
  • the target bridge circuit 0 receives a request from the REQTU, transfers it to another cluster K indicated by 0191, or receives a response from the other cluster K and returns it to the RESTU.
  • a data processing apparatus is configured by connecting two or more unit clusters using BIn0 or BTn0.
  • the request includes store data (data), a request command (cmd), an address (addr), a request issuing initiator identification number (src), a transfer destination cluster number (cluster #), and a response includes load data (r_data).
  • a response command (r_cmd) and a response transmission destination initiator identification number (r_src) but other control signals may exist.
  • FIG. 4 is a configuration example of the IP X included in the system LSI shown in FIG. 3 and the TCNAU 0102 inserted between REQTU and RESTU.
  • the TCNAU includes a TCNAU control circuit (TCNAU CTRL) indicated by 0301, a hook address value 1 (HookADDR1) indicated by 0302, a hook address value 2 (HookADDR2) indicated by 0303, a comparator (CMP) indicated by 0304, and 0305.
  • TCNAU CTRL TCNAU control circuit
  • HookADDR1 hook address value 1
  • HookADDR2 hook address value 2
  • CMP comparator
  • Transfer destination cluster number holding circuit 1 (ClusterID1) indicated by 0, transfer destination cluster number holding circuit 2 (ClusterID2) indicated by 0306, transfer destination cluster number selection circuit (IDMUX) indicated by 0307, and transfer destination cluster address indicated by 0308
  • a holding circuit 1 (ClusterADDR1), a transfer destination cluster address holding circuit 2 (ClusterADDR2) indicated by 0309, and a transfer destination cluster address selection circuit (ADDRMUX) indicated by 0310 are included.
  • the number of inputs to the transfer destination cluster number selection circuit (IDMUX) and the transfer destination cluster address selection circuit (ADDRMUX) is the hook address value, the comparator, the transfer destination cluster number holding circuit, and the transfer destination cluster address holding circuit. Change and configure according to the number of sets.
  • TCNAU0102 has a function of adding a cluster number and changing an address for a request issued from IP X0192.
  • the address range in which this function is valid is determined in advance.
  • HookADDR1 (0302) and HookADDR2 (0303) hold the address range.
  • HookADDR has an address range that is more limited than the address range of the cluster. For example, in a cluster having a 32-bit address space, when specifying an address range such as addresses 0xFC00_0000 to 0xFC00_FFFF, specify 0xFC00 for HookADDR. It becomes. It is assumed that the value of HookADDR is fixed in advance, is determined by an external pin or the like at the time of activation, or is switched in synchronization with the cluster address map setting.
  • HookADDR1 has a 16-bit value of 0xFC00
  • the upper 16 bits of the address (addr) included in the request from IP X are compared by CMP 0304, and if they match, CMP outputs 1. If CMP outputs 1, IDMUX 0307 outputs ClusterID1 as cluster #. Similarly, when CMP0304 outputs 1, ADDRMUX0310 outputs ClusterADDR1.
  • the cluster ID 1 stores the number of the cluster to which IP X wants to transfer, and Cluster ADDR 1 stores the upper 16 bits of the address in the transfer destination cluster. Therefore, TCNAU generates a 48-bit request having ClusterID1 as cluster #, upper address 16 bits as addr, the value of ClusterADDR1 and lower 16 bits as an address issued from IP X, and transfers to REQTU.
  • IDMUX outputs MyClusterID, which is the own cluster number held in the own cluster number register (MyClusterID Reg), as cluster #.
  • ADDRMUX outputs the upper 16 bits of addr transmitted by IP X. Therefore, a request transmitted by IP X is transferred to REQTU as a 48-bit request having MyClusterID in the cluster number and the upper 16 bits and lower 16 bits being addresses issued from IP X.
  • TCNAU CTRL when writing to ClusterID1, ClusterID2, or ClusterADDR1 or ClusterADDR2, TCNAU CTRL observes the request from IP X and performs operations such as writing and reading when the addresses match, and transferring cmd etc. to REQTU Do not do. In particular, when reading is performed, TCNAU CTRL transmits r_cmd, r_src, and r_data. TCNAU CTRL also has a function to relay response transmission from RESTU to IP X.
  • each signal from IP X is directly connected to REQTU or each signal from RESTU is directly connected to IP X.
  • the system clock cycle may be divided using a flip-flop or the like.
  • TCNAU is also inserted for each initiator. At this time, the hookADDR of each TCNAU may be the same.
  • FIG. 5 shows a configuration example of the transfer destination cluster number and transfer destination cluster address designation register (TCNACR) (0401) for storing the above-mentioned ClusterID and ClusterADDR.
  • the TCNACR includes a transfer destination cluster number designation field (ClusterID Field) (0402) and a transfer destination cluster address designation field (ClusterADDR Field) (0403).
  • ClusterID Field a transfer destination cluster number designation field
  • ClusterADDR Field a transfer destination cluster address designation field
  • FIG. 6 is a timing chart showing an operation example of the transfer destination cluster number and transfer destination cluster address adding circuit (TCNAU) 0102 included in the unit cluster 0101 shown in FIG. That is, FIG. 6 is a time chart seen at point X on the IP X side of TCNAU0102 shown in FIG. 3 and point T on the REQTU side.
  • Clock indicates the clock cycle of the system.
  • a request command cmd (X), an address addr (X), a request issuing initiator identification number src (X), and data data (X) are input to the TCNAU 0102 from the IP X side in synchronization with the Clock.
  • cmd (T), cluster # (T), addr (T), src (T), and data (T) are output from TCNAU0102 to the REQTU side in synchronization with Clock.
  • FIG. 7 shows a configuration example of the request transfer circuit (REQTU) 0103 included in the unit cluster 0101 in FIG.
  • REQTU includes a request decode circuit (REQDEC) indicated by 0601 and a request select circuit (REQMUX) indicated by 0602.
  • REQTU receives a request transferred from TCNAU connected to BIn0 and IPX, it first compares MyClusterID and cluster # by REQDEC. If they do not match, it outputs cmd to BTn0 and simultaneously sends REQMUX to BTn0 side. Switch and forward the request.
  • cmdDEC has a target module such as IP Y.
  • REQMUX is switched to the target module side such as IP Y and the request is transferred. If the target module does not exist, that is, it is connected to another cluster K and shared by all clusters. If it is an addr of the target module, cmd is output to BTn0, and at the same time, REQMUX is switched to the BTn0 side to transfer the request.
  • the number of TCNAU and IP Y is set to one for simplification, but there is no limit.
  • FIG. 8 shows a configuration example of the response transfer circuit (RESTU) 0201 included in the unit cluster 0101 of FIG.
  • the RESTU includes a response decode circuit (RESDEC) indicated by 0701 and a response select circuit (RESMUX) indicated by 0702.
  • RESDEC response decode circuit
  • RESMUX response select circuit
  • FIG. 9 is a flowchart showing an outline of program processing when the transfer destination cluster number and transfer destination cluster address addition circuit (TCNAU) 0102 shown in FIG. 4 is used.
  • TCNAU transfer destination cluster address addition circuit
  • the module accesses to the same cluster or accesses between clusters, in other words, to an area designated by HookADDR, that is, an address area where addr is changed by TCNAU. It is confirmed whether to access (S801).
  • the area specified by the hook ADDR is not accessed, in other words, when accessing within the cluster, the access is executed as it is within the cluster (S803).
  • the TCNACR is set (S802), and the access is executed within the designated cluster (S803).
  • an access end determination is made (S804), and when the access ends, the program ends.
  • the TCNACR When accessing, the TCNACR is also stored in the stack (S907), and the interrupt program is started (S908). If not accessed, the interrupt program is started as it is. Thus, whenever an interrupt is received during program execution, information necessary for resuming the suspended program is stored in the stack. If the program ends without accepting an interrupt, it is checked whether there is information in the stack (S904). If resumption information remains in the stack, information necessary for resuming the interrupted program is extracted from the stack (S909). ), The interrupted program is resumed (S910). Thereafter, the process is repeated until the interruption program due to the interruption disappears, that is, until there is no information in the stack, and the process ends.
  • the address space of the present invention is a physical address space formed for each unit cluster, and an access across the clusters is realized by a normal memory allocation access, so that an increase in communication overhead can be minimized. .
  • the system is constructed so that the transfer destination cluster number and transfer destination cluster address addition when accessing from the own cluster to another cluster are performed using the driver software, the CPU or IP and the OS are greatly increased. No need for correction.
  • the plurality of address spaces of the data processing device are configured by memories of a plurality of unit clusters, but the configuration of the address space to which the present invention can be applied is not limited to this, For example, other means such as a system composed of a plurality of computers configured as a physical address space managed by one OS or a multi-core system may be used.
  • the above-described data processing apparatus and the program can be used to minimize and minimize an overload without a large-scale modification of the initiator IP module represented by a CPU (Central Processing Unit) and the OS.
  • a data processing device capable of transferring data among all resources in the data processing device configured by a plurality of clusters.
  • FIG. 11 is a diagram showing a system configuration example of another embodiment of the data processing apparatus realized by the semiconductor integrated device according to the present invention.
  • the data processing device 0101 is composed of a combination of unit clusters which are the minimum configuration unit of the system.
  • unit cluster A (0110), unit cluster B (0111), unit cluster C (0112), and unit cluster D (0113) are included.
  • the number of unit clusters to be configured may be four or more, and FIG. 11 shows a configuration example including four unit clusters.
  • Each unit cluster has a network connected to an arbitrary cluster. In other words, the network of data processing apparatuses is connected to each other via a bus so that the four unit clusters can be directly accessed.
  • the unit cluster A (0110) is composed of CPU0, CPU1, CPU2, DMA0 initiator module, SRAM0, DRAM, 3DRAM0, and IP0 target modules
  • unit cluster B (0111) is CPU3, CPU4, DMA1, IP1 initiator module, SRAM1, 3DRAM1 target module
  • unit cluster C (0112) is CPU5, DMA2 initiator module, SRAM2, 3DRAM2IP2 target module
  • unit cluster D (0113) is In this example, the CPU 6, the CPU 7, the initiator module DMA ⁇ b> 3, and the target modules SRAM ⁇ b> 3 and 3 DRAM ⁇ b> 3 are shown.
  • a network connecting these unit clusters is unit cluster A (0110) and unit cluster B (0111), unit cluster B (0111) and unit cluster D (0113), unit cluster D (0113) and unit cluster C ( 0112), unit cluster C (0112) and unit cluster A (0110), unit cluster A (0110) and unit cluster D (0113), unit cluster B (0111) and unit cluster C (0112) are respectively connected to bus 0020, For example, a network connected through 0021, 0022, 0023, 0024, and 0025 is used.
  • the difference between the second embodiment and the first embodiment is that the access path to the overlapping resource between the unit cluster A and the unit cluster D is not limited to the access path via the unit cluster B that existed in the first embodiment, but directly.
  • the number of networks (bus 0024) that can be accessed between unit clusters A to D is increased, the number of networks that can be directly accessed between unit clusters BD (bus 0025) is increased, and the paths can be selected. It is. Needless to say, such a network is effective in an information processing apparatus having four or more unit clusters.
  • FIG. 12 is an example of a unit cluster included in the data processing device 0101 of FIG.
  • Reference numeral 1001 denotes a cluster which is a minimum configuration unit.
  • TCNAU transfer destination cluster number and transfer destination cluster address adding circuit
  • VREQTU path variable request transfer circuit
  • VRESTU path variable response transfer indicated by 1101 Circuit
  • the initiator bridge circuit 1 (BIn1) 1004 receives a request from another cluster P indicated by 1090, transfers it to VREQTU, or receives a response from VRESTU and returns it to another cluster P.
  • the target bridge circuit 1 (BTn1) 1005 receives a request from VREQTU and transfers it to another cluster Q indicated by 1091 or receives a response from another cluster Q and returns it to VRESTU.
  • the initiator bridge circuit 2 (BIn2) 1006 receives a request from another cluster R indicated by 1092 and transfers it to VREQTU or receives a response from VRESTU and returns it to another cluster R.
  • the target bridge circuit 2 (BTn2) 1007 receives a request from VREQTU, transfers it to another cluster S indicated by 1093, or receives a response from another cluster S and returns it to VRESTU.
  • each circuit and register constituting the unit cluster are omitted for simplicity, but TCNAU (0) to TCNAU (n), IP X (0) to IP X (n), IP There may be a plurality of Y (0) to IP Y (m), and there is no restriction on changing the number.
  • a data processing apparatus is configured by connecting four or more clusters using an initiator bridge circuit or a target bridge circuit.
  • a VREQTU 1003 and a VRESTU 1101 that can change the transfer path by adding a Path Reg 1002 and setting the Path Reg are provided.
  • a data processing apparatus that connects four or more clusters, depending on the connection form, there is not one path for transferring a request from a certain initiator module to a target module.
  • IP X transmits a request to a module in another cluster, it is assumed that the request can be transferred via another cluster Q or another cluster S. In such a case, it is possible to control from the software by making it possible to specify the transfer path of the VREQTU 1003 and the VRESTU 1101 by setting the Path Reg1002.
  • FIG. 13 shows an example of setting and definition of the Path Reg 1002 in this embodiment.
  • the request transfer path when accessing via another cluster such as HookADDR1, DRAM, SRAM, etc., which target bridge circuit (Btu1 or Btu2) is transferred from the own cluster, or A, B of Path Reg Value ,-,-, And Z are defined.
  • the response transfer path (Response), with respect to A, B,-,-, and Z of Path Reg Value, to each initiator bridge circuit (BIn1 or BIn2) from its own cluster for each of r_src values 0, 1, and- Define whether to transfer. Note that it is not necessary to define requests and responses whose end point is the local cluster. By preparing a plurality of such definition sets as A, B,-,-, Z, and setting a value in Path Reg, the transfer destination of the request and response can be changed.
  • the data processing apparatus shown in the second embodiment may include a cluster as shown in the first embodiment as another component.
  • FIG. 14 shows a configuration example of the path variable request transfer circuit (VREQTU) 1003 included in the cluster shown in FIG.
  • VREQTU includes a variable request decode circuit (VREQDEC) indicated by 1301 and a variable request select circuit (VREQMUX) indicated by 1302.
  • VREQDEC variable request decode circuit
  • VREQMUX variable request select circuit
  • VREQTU When VREQTU receives a request transferred from BIn1 (1004) and BIn2 (1006) and TCNAU0102 connected to IP X, VREQDEC 1301 first compares MyClusterID and cluster #, and if both do not match, the Path Reg According to the contents (path_sel), cmd is output to either BTn1 (1005) or BTn2 (1007), and at the same time, the VREQMUX 1302 is switched to either the BTn1 side or the BTn2 side to transfer the request.
  • Path Reg According to the contents (path_sel)
  • cmd is output to either BTn1 (1005) or BTn2 (1007)
  • the VREQMUX 1302 is switched to either the BTn1 side or the BTn2 side to transfer the request.
  • FIG. 15 shows a configuration example of the VRESTU 1101 included in the cluster shown in FIG.
  • VRESTU includes a variable response decode circuit (VRESDEC) 1401 and a variable response select circuit (VRESMUX) 1402.
  • VRESDUEC variable response decode circuit
  • VRESMUX variable response select circuit
  • BIn1 (1004) or BIn2 (1006) is selected according to the contents of Path Reg (path_sel).
  • Path Reg Path Reg
  • VRESMUX is switched to either the BIn1 side or the BIn2 side and the response is transferred.
  • the number of BIn1, BIn2, TCNAU, and IP Y is set to one for simplification, but there is no limit.
  • TBNAU transfer destination cluster number and transfer destination cluster address adding circuit
  • the program described in the flowcharts of FIGS. 9 and 10 is used to represent the CPU (Central Processing Unit). Data transfer between the initiator IP module and all the resources in the data processing apparatus composed of a plurality of clusters without significant modification of the OS, as well as the power supply for data transfer. It is possible to provide a data processing apparatus capable of transferring data bypassing a cluster where data transfer cannot be performed due to interruption, manufacturing failure, or change in cluster configuration.
  • CPU Central Processing Unit
  • the network configuration of the information processing apparatus having four or more unit clusters is not limited to the one that can be directly accessed between all unit clusters, and it is preferable that the information can be directly accessed between at least four unit clusters.
  • specific unit clusters may be connected to each other via a bus.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

 本発明は、イニシエータIPモジュールと、リクエスト転送回路と、レスポンス転送回路と、自クラスタ番号レジスタ等を含むクラスタを2つ以上具備し、イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するようにデータ処理装置を構成する。自クラスタから別クラスタへのアクセスを行う場合、別クラスタへのアクセスを行う前に、転送先のクラスタ番号およびアドレスを設定してからアクセスを行うようにする。

Description

データ処理装置及びデータ処理方法
 本発明は、データ処理装置及びデータ処理方法に係り、例えば複数クラスタからなるデータ処理装置に適用して有効な技術に関する。
 従来、大量のCPU(中央演算処理装置)を使用して大規模な計算をする方法として、PCクラスタのようなシステムが利用されている。これは、1つのPCに1から8個程度のCPUを搭載したLSI上でOSを動かし,Ethernet(登録商標)のような通信網で接続し、パケット通信を行いながら相互連携することで大規模な計算を行う。特許文献1には、プロセスに一意に対応する仮想空間が構成され、各クラスタが命令実行回路及び送受信回路を備え、他のクラスタで実行される命令に関して指定された仮想空間にネットワークを介してデータを転送するプロセッサ間通信方法が開示されている。
 これに対し、近年の半導体集積技術の進化や、三次元実装技術の進化により、単一LSIもしくは単一の積層LSI上に搭載可能なCPUの数は飛躍的に増加すると考えられる。このような多数のCPUを搭載したLSIでは,PCクラスタと同様に各CPU同士の連携を行うための方法が必要である。
 その1つの方法として,PCクラスタと同じくEthernetのようなパケット通信の機構をLSI内で実装する方法が類推できる。パケット通信では、チップ内でのCPUの接続形態によらず任意の経路を通じてパケットを転送することができる。
 また、別なる方法として、物理的アドレス空間をたとえば32bitから64bitへ拡張するなどし、すべてのCPUおよびメモリなどの記憶素子や周辺回路といったリソースにアドレスを割り付ける方法が考えられる。
特開平04-291660号公報
 しかしながら、パケット通信の機構をLSI内で実装する方法は、ハードウェア面、ソフトウェア面両方にペナルティがある。ハードウェア面では、パケットのヘッダ付加による転送効率劣化、レイテンシ増大による応答性能低下が大きいと考えられる。またソフトウェア面では、パケットの解析処理が必要であるため、小さな転送サイズではオーバーヘッドが大きく、システムとしての性能が劣化してしまう。そのため、ある処理を実現しようとした場合、できる限りクラスタ間の転送を大きな粒度で行う必要があるが、処理データに相互依存がある場合(データ並列性が低い場合)大規模なPCクラスタであっても処理性能を伸ばすことは難しい。
 また、物理的アドレス空間を拡張しリソースにアドレスを割り付ける方法では、パケット通信と異なり、アドレスにより転送経路が一意に決まるため、通信のオーバーヘッドが小さくできるはずだが、CPUなどのハードウェアだけでなく、OSなどの大規模な修正が必要となり、大きなコストがかかってしまう。また、通信経路はアドレスにより一意に決まるため、アドレスマップを複数持つことによる転送先の変更は可能であるが、通信経路を変更することはできない。
 このように、高い通信の自由度と既存資産の流用を選ぶ方法では、転送の粒度に対する制約やパケット解析などのソフトウェアのオーバーヘッドが大きく、また転送の粒度を小さく、かつオーバーヘッドを減らそうとすると、CPUやOSへの修正が必要になり大きなコストがかかる上、通信の自由度も低下してしまう。
 よって、本発明の主たる課題は、単一LSIもしくは単一の三次元実装技術により構成された積層LSI上に多数のCPUもしくはIPなどの論理回路を実装したデータ処理装置において、CPUもしくはIPとOSの大幅な修正をなしに、かつ最小限のオーバーヘッドでデータ処理装置すべてのリソースを共有し連携するためのデータ転送機構を実現するシステム及び方法を提供することにある。
 また、本発明の他の課題は、データ処理装置を構成するハードウェアに対して、再設計、再製造を行うことなく、データ転送経路を変更可能なデータ転送機構を実現するシステム及び方法を提供することにある。
 本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。本発明のデータ処理装置は、互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置であって、前記複数のクラスタの各々をユニークに識別するための情報としてクラスタID番号を保持し、前記複数のクラスタの中の1つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする際に、該リソースのアドレスに前記他のクラスタのID番号を付加することにより転送先をシステム内でユニークに指定することを特徴とする。
 本発明によれば、CPUなどに代表されるイニシエータIPモジュールとOSの大幅な修正なしに、かつ最小限のオーバーヘッドで、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間でデータ転送が可能なデータ処理装置を提供することができる。
本発明の一実施例になるデータ処理装置を半導体集積回路で実装したシステム構成例を示すブロック図である。 図1のシステムが持つアドレスマップの一例である。 本発明にかかる半導体集積回路で実現される単位クラスタの一例である、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を含むシステムLSIにおける1クラスタの、リクエストおよびレスポンス転送機構の一例を示すブロック図である。 図3に示されるシステムLSIに含まれる、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)の構成例ブロック図である。 図3に示されるシステムLSIに含まれる、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)における、転送先クラスタ番号および転送先クラスタアドレス指定レジスタ(TCNACR)の構成例の図である。 図3に示されるシステムLSIに含まれる、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)の動作例を示すタイミングチャート図である。 図3に示されるシステムLSIに含まれる、リクエスト転送回路(REQTU)の構成例ブロック図である。 図3に示されるシステムLSIに含まれる、レスポンス転送回路(RESTU)の構成例ブロック図である。 図4に示される転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を利用する際の、プログラム処理概要を示すフローチャートである。 図4に示される転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を割り込みの発生するシステムで利用する際の、プログラム処理概要を示すフローチャートである。 本発明の他の実施例になるデータ処理装置を、半導体集積回路で実装したシステム構成例を示すブロック図である。 図11の実施例になる半導体集積回路において、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と、経路指定レジスタ(Path Reg)を含むシステムLSIにおける、1クラスタの経路可変リクエストおよびレスポンス転送機構の一例を示すブロック図である。 12に示されるシステムLSIに含まれる、経路指定レジスタ(Path Reg)の設定例図である。 図12に示されるシステムLSIに含まれる、経路可変リクエスト転送回路(VREQTU)の構成例ブロック図である。 図12に示されるシステムLSIに含まれる、経路可変レスポンス転送回路(VRESTU)の構成例ブロック図である。
 本発明では、単一LSIもしくは三次元実装技術により構成された積層LSI上に多数のCPUもしくはIPなどの論理回路を実装したデータ処理装置において、データ処理装置すべてのリソースを共有し連携するためのデータ転送を実現するシステム及び方法を提供する。
 本発明のデータ処理装置では、システムを構成する要素は、複数ある単位クラスタを、ユニークに識別するためのクラスタID番号を保持するレジスタを有する。また、リソースは、単位クラスタ上では一意にリソースが決まるがシステム全体では重複した物理アドレスを持つ重複リソースと、データ処理装置全体としては物理アドレスが重複しない非重複リソースとを持つ。各クラスタ同士でデータのやり取りをする場合、重複リソースへのアクセス時には、アドレス以外にクラスタID番号を付与することで、トランザクションの行き先をシステム内でユニークに指定する。
 本発明のより具体的な構成例を挙げると、
 イニシエータIPモジュールと、ターゲットIPモジュールと、転送先クラスタ番号および転送先クラスタアドレス付加回路と、リクエスト転送回路と、レスポンス転送回路と、イニシエータブリッジ回路と、ターゲットブリッジ回路と、自クラスタ番号レジスタを含むクラスタを2つ以上具備し、
 イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するようにデータ処理装置を構成し、
 自クラスタから別クラスタへのアクセスを行うイニシエータIPモジュールは、別クラスタへのアクセスを行う前に、転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行うようなプログラムを使用して、別クラスタへのアクセス行うようにするシステムを構築する。
 また、本発明の他のより具体的な構成例を挙げると、
 前記クラスタを、イニシエータIPモジュールと、ターゲットIPモジュールと、転送先クラスタ番号および転送先クラスタアドレス付加回路と、経路指定レジスタと、経路可変リクエスト転送回路と、経路可変レスポンス転送回路と、イニシエータブリッジ回路と、ターゲットブリッジ回路と、自クラスタ番号レジスタを含むクラスタを4つ以上具備するように変更し、
 イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定し、経路指定レジスタの設定に従ってデータを転送するようにデータ処理装置を構成し、
 自クラスタから別クラスタへのアクセスを行うイニシエータIPモジュールは、別クラスタへのアクセスを行う前に、転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行うようなプログラムを使用して、別クラスタへのアクセス行うようにするシステムを構築する。
 本発明によれば、CPUなどに代表されるイニシエータIPモジュールとOSの修正なしに、かつ最小限のオーバーヘッドで、複数のクラスタで構成されるデータ処理装置内の全ての重複リソースの間でデータ転送が可能なデータ処理装置を提供することができる。
 また、本発明の他の特徴によれば、データ転送の際に、電源遮断や製造不良、クラスタ構成の変更などによりデータ転送が行えないクラスタを迂回したデータ転送が可能な、データ処理装置を提供することができる。
 以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
 図1は、本発明の一実施例になるデータ処理装置の物理的なシステム構成例を示した概念図である。本実施例のデータ処理装置0001は、好ましくは、単一の半導体集積回路(LSI)もしくは単一の積層LSI内に、多数のCPUやIP(Intellectual Property Core)などの論理回路を実装して構成される。もちろん、OSを共通とする複数の半導体集積回路(LSI)、もしくは複数の積層LSIに実装されるデータ処理装置にも適用できることは言うまでも無い。
 図1において、データ処理装置0001は、システムの最小構成単位である単位クラスタの組み合わせで構成される。図1の例では、データ処理装置が、単位クラスタA(0010)、単位クラスタB(0011)、単位クラスタC(0012)、単位クラスタD(0013)からなる。構成する単位クラスタの数は2つ以上であればよく、図1では4つの単位クラスタからなる構成例である。各単位クラスタは、任意のクラスタとバスで接続したネットワークを持つ。
 ここで、単位クラスタは、任意の数のCPUと任意の数のIP及びDMA(Direct Memory Access)等がバスで接続されたクラスタであり、既存の、例えば32bitの、OSが動作可能な物理アドレス空間(単位アドレスマップ)を有している。図1の例では、単位クラスタA(0010)はCPU0、CPU1、CPU2、DMA0からなるイニシエータモジュール、及びSRAM0、DRAM、3DRAM(3次元DRAM)0、IP0からなるターゲットモジュールで構成されている。単位クラスタB(0011)は、CPU3、CPU4、DMA1、IP1なるイニシエータモジュール、及びSRAM1、3DRAM1からなるターゲットモジュールで構成され、単位クラスタC(0012)は、CPU5、DMA2からなるイニシエータモジュール、及びSRAM2、3DRAM2IP2なるターゲットモジュールで構成され、単位クラスタD(0013)は、CPU6、CPU7、DMA3からなるイニシエータモジュール、及びSRAM3、3DRAM3なるターゲットモジュールで構成されている。本実施例では、DRAMは単位クラスタAにのみ存在し、データ処理を行うプログラムはこのDRAMに保持される。従って、他の単位クラスタでは、単位クラスタAのDRAMに保持されたプログラムを呼び出して、CPUで実行することにより、所定のデータ処理を行う。
 また、これら単位クラスタを接続するネットワークは、ここでは、リング型ネットワークを例とし、単位クラスタA(0010)と単位クラスタB(0011)、単位クラスタB(0011)と単位クラスタD(0013)、単位クラスタD(0013)と単位クラスタC(0012)、単位クラスタC(0012)と単位クラスタA(0010)が、それぞれバス0020、0021、0022、0023を介して接続されている。
 本発明では、以下に述べるように、ある単位クラスタに存在する特定のリソースを、別の単位クラスタから参照可能とする。また、このような、単位クラスタ内のみならず単位クラスタ間をまたいだアクセスを、通常のメモリ割付アクセスにより実現する。これにより、ある単位クラスタから、別の単位クラスタのリソースが、あたかも当該単位クラスタに属するIPであるかのように扱えるようにする。
 図2は、図1で示したシステム構成例における各単位クラスタの持つ単位アドレスマップを示している。すなわち、図1に示した物理的な構成要素であるクラスタに対応する、OSなどにより用いられる物理アドレス空間の例を示している。図2の(a)は単位クラスタAのアドレスマップを示す単位アドレスマップA、(b)は単位クラスタBのアドレスマップを示す単位アドレスマップB、(c)は単位クラスタCのアドレスマップを示す単位アドレスマップC、及び(d)は単位クラスタDのアドレスマップを示す単位アドレスマップDである。図2の(b)~(d)のDRAMは物理的には単位クラスタAにのみ存在するDRAMである。
 各単位アドレスマップに割り当てられたターゲットモジュールには、白で示した重複リソース、グレーで示した非重複リソース、黒で示した未使用アドレスが存在する。重複リソースとは、単位アドレスマップごとにマッピングされているターゲットモジュールが異なるアドレスエリアであり、非重複リソースとは、各単位アドレスマップで同一のターゲットモジュールがマッピングされているアドレスエリアであり、未使用アドレスは重複リソースの中で特にターゲットモジュールがマッピングされていないアドレスエリアを指す。換言すると、重複リソースは、単位クラスタ上では一意にリソースが決まる(単位クラスタ内では非重複リソースとなる)が、データ処理装置全体としては同じアドレスを持ち別の単位クラスタに属するリソースが複数存在する。非重複リソースは、データ処理装置全体としては重複しないユニークなアドレスを持つ。
 例えば、図2の(a)に示した単位アドレスマップAによれば、単位クラスタAに含まれるターゲットモジュールSRAM0は重複リソースである。ここで、単位クラスタAで実行されているプログラムから、単位アドレスマップBに含まれる重複リソースであるSRAM1に対するアクセスを行いたいとする。プログラムが動作しているアドレスマップは、単位アドレスマップAであるので、単純にSRAM1へアクセスするためのアドレス(x0000_0000)を発行しても、SRAM0へのアクセスとなってしまう。本発明では、単位クラスタA~D間でデータのやり取りをする、すなわち重複リソースへのアクセス時には、アドレス以外に、クラスタ番号を付与することで、コマンドやデータなどからなる転送処理(トランザクション)の行き先(ターゲット)をシステム内でユニークに指定する。
 このように、本発明のデータ処理装置は、複数の単位クラスタをユニークに識別するための情報を保持するレジスタ、及び重複リソース及び非重複リソースを含む物理アドレス空間(以下、特に区別しないときは単に、アドレス空間)を備えている。なお、図1、図2における各リソースの配置は一例を示すものであり、用途に応じて種々変更できることは言うまでも無い。
 このような単位クラスタ、単位アドレスマップをまたいだアクセスを、パケット通信ではなく、通常のメモリ割り付けアクセスにより実現するハードウェアとソフトウェアの実現方式を、図3以降で説明する。
 図3は、第1の実施例になるデータ処理装置における単位クラスタの具体的な構成例を示す図である。すなわち、図3は、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を含むシステムLSIにおける、1クラスタのリクエストおよびレスポンス転送機構の一例を示すブロック図である。0101はシステムの最小構成単位である単位クラスタであり、0102で示す転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と、0103で示すリクエスト転送回路(REQTU)と、0201で示すレスポンス転送回路(RESTU)と、0104で示すイニシエータブリッジ回路0(BIn0)と、0105で示すターゲットブリッジ回路0(BTn0)と、自身のクラスタ番号を保持する0106で示す自クラスタ番号レジスタ(MyClusterID Reg)と、0192で示すイニシエータIPモジュールX(IP X)と、0193で示すターゲットIPモジュールY(IP Y)から構成される。イニシエータブリッジ回路0(BIn0)は、0190で示す別クラスタJからリクエストを受け取りREQTUに転送、もしくはレスポンスをRESTUから受け取り、別クラスタJに返す。ターゲットブリッジ回路0(BTn0)は、REQTUからリクエストを受け取り0191で示す別クラスタKに転送、もしくは別クラスタKからレスポンスを受け取りRESTUに返す。
 なお、単位クラスタ0101を構成する各回路、レジスタは説明の簡単のために、それぞれ省略して記載しているが、TCNAU(0)~TCNAU(n)やIP X(0)~IP X(n)、IP Y(0)~IP Y(m)のように複数存在しても良く、数の変更に対して制限はない。また、この単位クラスタを2つ以上BIn0やBTn0を用いて接続することで、データ処理装置を構成する。また、リクエストは、ストアデータ(data)およびリクエストコマンド(cmd)、アドレス(addr)、リクエスト発行イニシエータ識別番号(src)、転送先クラスタ番号(cluster#)を含み、レスポンスは、ロードデータ(r_data)および、レスポンスコマンド(r_cmd)、レスポンス送信先イニシエータ識別番号(r_src)からなるが、これ以外の制御信号が存在してもよい。
 図4は、図3に示されるシステムLSIに含まれるIP Xと、REQTUおよびRESTUの間に挿入されるTCNAU0102の構成例である。TCNAUは、0301で示すTCNAU制御回路(TCNAU CTRL)と、0302で示すフックアドレス値1(HookADDR1)と、0303で示すフックアドレス値2(HookADDR2)と、0304で示す比較器(CMP)と、0305で示す転送先クラスタ番号保持回路1(ClusterID1)と、0306で示す転送先クラスタ番号保持回路2(ClusterID2)と、0307で示す転送先クラスタ番号選択回路(IDMUX)と、0308で示す転送先クラスタアドレス保持回路1(ClusterADDR1)と、0309で示す転送先クラスタアドレス保持回路2(ClusterADDR2)と、0310で示す転送先クラスタアドレス選択回路(ADDRMUX)から構成される。
 なお、本構成例ではフックアドレス値と、比較器、転送先クラスタ番号保持回路、転送先クラスタアドレス保持回路が2組ずつとしているが、数の変更に対して制限はない。また同様に、転送先クラスタ番号選択回路(IDMUX)および転送先クラスタアドレス選択回路(ADDRMUX)の入力数は、フックアドレス値と、比較器、転送先クラスタ番号保持回路、転送先クラスタアドレス保持回路の組数に従って変更して構成する。
 続いて、TCNAU0102の機能について説明する。TCNAUはIP X0192から発行されたリクエストに対してクラスタ番号の付加とアドレスを変更する機能を有するが、本機能が有効になるアドレス範囲を事前に決定しておく。本構成例では、HookADDR1(0302)およびHookADDR2(0303)がアドレス範囲を保持する。通常HookADDRはクラスタの持つアドレス範囲よりも限定されたアドレス範囲を持ち、例えば32bitのアドレス空間を持つクラスタにおいて、アドレス0xFC00_0000から0xFC00_FFFFのようなアドレス範囲を指定する場合は、HookADDRに0xFC00を指定することとなる。このHookADDRの値はあらかじめ固定しておく、もしくは起動時に外部ピンなどで決定する、もしくはクラスタのアドレスマップ設定と同期して切り替えることを想定する。
 次に、本構成例での実際の動作について例示する。HookADDR1が0xFC00なる16bitの値を持つとき、IP Xからのリクエストに含まれるアドレス(addr)の上位16bitがCMP0304により比較され、一致した場合CMPは1を出力する。CMPが1を出力した場合、IDMUX0307はClusterID1をcluster#として出力する。また同様に、CMP0304が1を出力した場合、ADDRMUX0310はClusterADDR1を出力する。このとき、ClusterID1にはIP Xが転送を行いたいクラスタの番号が、ClusterADDR1には転送先クラスタ内でのアドレスの上位16bitが格納されている。よって、TCNAUはcluster#としてClusterID1を持ち、addrとして上位アドレス16bitがClusterADDR1の値、下位16bitがIP Xから発行されたアドレスとなる、48bitのリクエストを生成し、REQTUに転送を行う。
 逆に、CMPが0を出力した場合は、IDMUXは自クラスタ番号レジスタ(MyClusterID Reg)に保持された自クラスタ番号であるMyClusterIDをcluster#として出力する。また同様に、CMPが0を出力した場合、ADDRMUXはIP Xの送信したaddrの上位16bitを出力する。よって、IP Xの送信したリクエストは、クラスタ番号にMyClusterIDを持ち、上位16bit及び下位16bitがIP Xから発行されたアドレスとなる、48bitのリクエストとしてREQTUに転送される。
 また、ClusterID1、ClusterID2や、ClusterADDR1やClusterADDR2への書き込みは、TCNAU CTRLが、IP Xからのリクエストを観測し、アドレスが合致した場合に書き込みや読み出しなどの動作を行い、REQTUにはcmdなどの転送を行わない。特に読み出しが行われた場合は、TCNAU CTRLがr_cmd、r_src、r_dataの送信を行う。またTCNAU CTRLは、RESTUからのレスポンス送信をIP Xへ中継する機能を有する。
 なお、本構成例ではIP Xからの各信号がREQTUに直接、もしくはRESTUからの各信号がIP Xに直接接続されているが、フリップフロップなどを用いてシステムのクロックサイクルを分割してもよい。また、クラスタ内にIP Xのようなイニシエータモジュールが複数存在する場合は、TCNAUについてもイニシエータごとに挿入するが、その際各TCNAUのHookADDRが同一であっても良い。
 図5に、上記のClusterIDおよび、ClusterADDRを格納するための、転送先クラスタ番号および転送先クラスタアドレス指定レジスタ(TCNACR)(0401)の構成例を示す。TCNACRには、転送先クラスタ番号指定フィールド(ClusterID Field)(0402)と、転送先クラスタアドレス指定フィールド(ClusterADDR Field)(0403)を含む。また、TCNACRを構成するClusterID Fieldの実体は、ClusterID1(0305)、ClusterADDR Fieldの実体は、ClusterADDR1(0308)として分割して保存されることを想定し、図4の構成例ではTCNACRは2本存在することを意味する。
 図6は、図3に示される単位クラスタ0101に含まれる、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)0102の動作例を示す、タイミングチャート図である。すなわち、図6は、図3に示すTCNAU0102のIP X側にあるX点と、REQTU側にあるT点で見られるタイムチャートである。Clockは、システムのクロックサイクルを示している。IP X側からTCNAU0102に、Clockに同期して、リクエストコマンドcmd(X)、アドレスaddr(X)、リクエスト発行イニシエータ識別番号src(X)、及び、データdata(X)が入力される。一方、TCNAU0102からREQTU側には、Clockに同期して、cmd(T)、cluster#(T)、addr(T)、src(T)、及び、data(T)が出力される。
 IP Xから、クラスタN(cluster#=N)へリードアクセスを行う際、IP Xは、まずClock1において、ClusterID1およびClusterADDR1から構成されるTCNACR1に対して設定を書き込む。続いてClock2でIP Xから発行されたリードリクエストは、TCNAUによりcluster#の付加および上位アドレスの切り替えが行われ、REQTUへ転送される。すなわち、リードアクセスとして、TCNAUでcluster#としてClusterIDN、addrとして上位アドレス16bitがClusterADDRNの値が第1のレジスタにより設定され、下位16bitのIP Xから発行されたアドレスと共にREQTUへ転送される。換言すると、最初のサイクルでレジスタにクラスタ番号Nを設定し、次のサイクルでクラスタNへアクセスアドレスを出力しリードを行う、2サイクルアクセスとなる。
 同様に、IP Xから、クラスタM(cluster#=M)へライトアクセスを行う際、IP Xは、まずClock3において、ClusterID2およびClusterADDR2から構成されるTCNACR2に対して設定を書き込む。続いてClock4で、IP Xから発行されたライトリクエストは、TCNAUによりcluster#(=M)の付加および上位アドレスの切り替えが行われ、REQTUへ転送される。すなわち、ライトアクセスとして、TCNAUでcluster#としてClusterIDM、addrとして上位アドレス16bitがClusterADDRMの値が第2のレジスタにより設定され、下位16bitのIP Xから発行されたアドレスと共にREQTUへ転送される。
 なお、Clock5およびClock6のように、HookADDRに一致しないアクセスは、cluster#として自クラスタ番号が付加されるのみで、アドレスの切り替えは行わない。
 また、一旦TCNACR1を設定した後は、同一クラスタへ、同一のアドレス切り替えで転送を行う際には、Clock5~Clock7に示すように、Clock3で第2のレジスタへ行った設定を再度行うことなくアクセスすることができる。換言すると、既に設定された同一クラスタへ転送を行う際は、レジスタの設定、書き換えが不要なため、1サイクルアクセスとなる。レジスタの数を増やすことにより、このような1サイクルアクセスを増やすことができる。
 図7に、図3の単位クラスタ0101に含まれるリクエスト転送回路(REQTU)0103の構成例を示す。REQTUは、0601で示すリクエストデコード回路(REQDEC)と、0602で示すリクエストセレクト回路(REQMUX)からなる。REQTUは、BIn0とIP Xに接続されたTCNAUから転送されるリクエストを受信すると、まずREQDECによりMyClusterIDとcluster#を比較し、両者が一致しない場合はBTn0にcmdを出力すると同時にREQMUXをBTn0側に切り替えてリクエストを転送する。一方、REQDECによる比較結果により両者が一致した場合、REQDECはaddrをデコードし、自クラスタ内においてaddrに該当するIP Yのようなターゲットモジュールが存在する場合は、IP Yのようなターゲットモジュールにcmdを出力すると同時にREQMUXをIP Yのようなターゲットモジュール側に切り替えてリクエストを転送し、該当するターゲットモジュールが存在しない場合、すなわち別クラスタKに接続されていて、全クラスタで共有しているようなターゲットモジュールのaddrであった場合は、BTn0にcmdを出力すると同時にREQMUXをBTn0側に切り替えてリクエストを転送する。なお、本構成例では、単純化のためTCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
 図8に、図3の単位クラスタ0101に含まれるレスポンス転送回路(RESTU)0201の構成例を示す。RESTUは、0701に示すレスポンスデコード回路(RESDEC)と、0702で示すレスポンスセレクト回路(RESMUX)からなる。RESTUは、BTn0とIP Yから転送されるレスポンスを受信すると、RESDECによりr_srcをデコードし、TCNAUに接続されているIP Xと一致していれば、IP Xの接続されているTCNAUにcmdを出力すると同時に、RESMUXをTCNAU側に切り替えてレスポンスを転送し、そうでなければBIn0にcmdを出力すると同時にRESMUXをBIn0側に切り替えてレスポンスを転送する。なお、本構成例では、単純化のためにTCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
 以上のようなブロックで構成されたデータ処理装置において、ソフトウェアを用いて実行される任意の単位クラスタにおけるデータ処理の手順を、図9のフローチャートを用いて説明する。図9は、図4に示される転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)0102を利用する際のプログラム処理の概要を示すフローチャートである。
 まず、あるプログラムが特定のモジュールへアクセスを行う場合、そのモジュールが当該クラスタ内のアクセスか、クラスタ間をまたいだアクセス、換言するとHookADDRで指定された領域すなわちTCNAUによるaddrの変更を行うアドレス領域へアクセスするか、を確認する(S801)。HookADDRで指定された領域へアクセスしない場合、換言すると当該クラスタ内のアクセスの場合はそのまま当該クラスタ内でアクセスを実行(S803)する。HookADDRで指定された領域へアクセスする場合、換言するとクラスタ間をまたいだアクセスの場合は、TCNACRの設定を行ってから(S802)、指定されたクラスタ内でアクセスを実行する(S803)。次に、アクセス終了の判定を行い(S804)、アクセスが終了した場合はプログラムの終了となる。終了しなかった場合は、再度HookADDRで指定された領域へアクセスするかを判定し(S805)、HookADDRで指定された領域へアクセスする場合、既にTCNACRの設定が終了している場合はそのままアクセスをし、未設定の場合は、TCNACRを再設定してからアクセスを実行する(S806)。
 本実施例では、他のクラスタへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与する。本実施例では、設定用のレジスタを用いた擬似アドレス拡張を行ったアドレス空間を採用しているため、OSからは、自身が動作する特定の単位クラスタ以外のアドレス空間は、IPの一部として見えることになる。これにより、ある単位クラスタから、別の単位クラスタのリソースが、あたかも当該単位クラスタに属するIPであるかのように扱える。ある単位クラスタに属するCPUは、メモリを介さずに、他の単位クラスタの重複リソースを参照することができる。
 図9で説明したような基本的なアクセス方法を、割り込みによるコンテクストスイッチが発生するシステムで適用する場合のソフトウェアからの使用方法を、図10のフローチャートを用いて説明する。図9で説明したようなアクセス方法を含むプログラムをCPUで実行している際(S901)、割り込み受け付けの有無をチェックし(S902)、割り込みを受け付けなかった場合は、プログラムが終了するまでプログラムを実行する(S903)。割り込みを受け付けた場合、従来から行われている割り込みにより中断されたプログラムの再開に必要な情報をスタックへ格納する(S905)。この後、割り込み処理プログラムがHookADDRで指定された領域へアクセスするか判定し(S906)、アクセスする場合は、TCNACRもスタックへ格納し(S907)、割り込みプログラムを開始する(S908)。アクセスしない場合は、そのまま割り込みプログラムを開始する。このように、プログラム実行中に、割り込みを受け付けるたびに、スタックへ中断されたプログラムの再開に必要な情報を格納する。割り込みを受け付けずにプログラムが終了した場合、スタックに情報があるかをチェックし(S904)、スタックに再開情報が残っている場合は、スタックから被割り込みプログラムの再開に必要な情報を取り出し(S909)、中断されたプログラムを再開する(S910)。以下、割り込みによる中断プログラムが無くなるまで、すなわちスタックに情報が無くなるまで処理を繰り返し、終了する。
 本発明のアドレス空間は、単位クラスタ毎に形成された物理アドレス空間であり、クラスタ間をまたいだアクセスを通常のメモリ割付アクセスにより実現するので、通信のオーバーヘッドの増大を最小限に抑えることができる。また、自クラスタから別クラスタへのアクセスを行う際の転送先クラスタ番号および転送先クラスタアドレス付加などは、ドライバソフトウェアを使用して行うようにシステムを構築するので、CPUもしくはIPと,OSの大幅な修正は必要ない。
 なお、本実施例では、データ処理装置の複数のアドレス空間を、複数の単位クラスタのメモリで構成しているが、本発明の適用可能なアドレス空間の構成はこれに限定されるものではなく、例えば、1つのOSが管理する物理アドレス空間として構成された複数のコンピュータからなるシステムあるいはマルチコアシステムなど、他の手段を用いても良い。
 本実施例によれば、以上のようなデータ処理装置と、プログラムにより、CPU(中央演算処理装置)などに代表されるイニシエータIPモジュール及びOSの大規模な修正なしに、かつ最小限のオーバーベッドで、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間で、データ転送が可能なデータ処理装置を提供することができる。
 また、プログラムにより、リソースにアクセスする順序関係は保障されており、リソースに対して安全なアクセスを実現できる。
 図11は、本発明にかかる半導体集積装置で実現されるデータ処理装置の他の実施例のシステム構成例を示す図である。データ処理装置0101は、システムの最小構成単位である単位クラスタの組み合わせで構成される。図11の例では、単位クラスタA(0110)、単位クラスタB(0111)、単位クラスタC(0112)、単位クラスタD(0113)からなる。構成する単位クラスタの数は4つ以上であればよく、図11では4つの単位クラスタからなる構成例である。各単位クラスタは、任意のクラスタと接続したネットワークを持つ。すなわち、このデータ処理装置のネットワークは、4つの単位クラスタ間で直接アクセスできるように相互にバスを介して接続されている。
 ここで図11では、単位クラスタA(0110)はCPU0、CPU1、CPU2、DMA0なるイニシエータモジュール、SRAM0、DRAM、3DRAM0、IP0なるターゲットモジュールで構成され、単位クラスタB(0111)は、CPU3、CPU4、DMA1、IP1なるイニシエータモジュール、SRAM1、3DRAM1なるターゲットモジュールで構成され、単位クラスタC(0112)は、CPU5、DMA2なるイニシエータモジュール、SRAM2、3DRAM2IP2なるターゲットモジュールで構成され、単位クラスタD(0113)は、CPU6、CPU7、DMA3なるイニシエータモジュール、SRAM3、3DRAM3なるターゲットモジュールで構成される例を示している。
 また、これら単位クラスタを接続するネットワークは、単位クラスタA(0110)と単位クラスタB(0111)、単位クラスタB(0111)と単位クラスタD(0113)、単位クラスタD(0113)と単位クラスタC(0112)、単位クラスタC(0112)と単位クラスタA(0110)、単位クラスタA(0110)と単位クラスタD(0113)、単位クラスタB(0111)と単位クラスタC(0112)がそれぞれ、バス0020、0021、0022、0023、0024、0025を介して接続されている襷がけのネットワークを例とする。
 本実施例2が、実施例1と最も異なる部分は、単位クラスタAと単位クラスタD間の重複リソースへのアクセス経路に、実施例1でも存在した単位クラスタB経由のアクセス経路だけではなく、直接単位クラスタA-D間でアクセスできるネットワーク(バス0024)が増え、また、直接単位クラスタB-D間でアクセスできるネットワーク(バス0025)が増え、かつ、それらの経路が選択可能となっている点である。このようなネットワークは、単位クラスタが4つ以上ある情報処理装置において有効であることは言うまでも無い。
 図12は、図11のデータ処理装置0101に含まれる単位クラスタの例である。1001は最小構成単位であるクラスタであり、0102で示す転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と、1003で示す経路可変リクエスト転送回路(VREQTU)と、1101で示す経路可変レスポンス転送回路(VRESTU)と、1002で示すVREQTUおよびVRESTUにおける経路を指定することができる経路指定レジスタ(Path Reg)と、1004で示すイニシエータブリッジ回路1(BIn1)と、1005で示すターゲットブリッジ回路1(BTn1)と、1006で示すイニシエータブリッジ回路2(BIn2)と、1007で示すターゲットブリッジ回路2(BTn2)と、自身のクラスタ番号を保持する0106で示す自クラスタ番号レジスタ(MyClusterID Reg)と、0192で示すイニシエータIPモジュールX(IP X)と、0193で示すターゲットIPモジュールY(IP Y)から構成される。
 イニシエータブリッジ回路1(BIn1)1004は、1090で示す別クラスタPからリクエストを受け取りVREQTUに転送、もしくはレスポンスをVRESTUから受け取り、別クラスタPに返す。ターゲットブリッジ回路1(BTn1)1005は、VREQTUからリクエストを受け取り1091で示す別クラスタQに転送、もしくは別クラスタQからレスポンスを受け取りVRESTUに返す。イニシエータブリッジ回路2(BIn2)1006は、1092で示す別クラスタRからリクエストを受け取りVREQTUに転送、もしくはレスポンスをVRESTUから受け取り、別クラスタRに返す。ターゲットブリッジ回路2(BTn2)1007は、VREQTUからリクエストを受け取り1093で示す別クラスタSに転送、もしくは別クラスタSからレスポンスを受け取りVRESTUに返す。なお、単位クラスタを構成する各回路、レジスタは簡単のために、それぞれ省略して記載しているが、TCNAU(0)~TCNAU(n)やIP X(0)~IP X(n)、IP Y(0)~IP Y(m)のように複数存在しても良く、数の変更に対して制限はない。また、このクラスタを4つ以上、イニシエータブリッジ回路やターゲットブリッジ回路を用いて接続することで、データ処理装置を構成する。
 本実施例2が、実施例1と最も異なっている部分を実現するために、Path Reg1002の追加と、Path Regの設定により転送経路を変更可能なVREQTU1003および、VRESTU1101を設けている。以下、両実施例の違いについて説明する。4つ以上のクラスタを接続するデータ処理装置においては、接続形態によっては、あるイニシエータモジュールから、ターゲットモジュールへリクエストを転送する経路が1つではない。同様に、あるターゲットモジュールから、イニシエータモジュールへレスポンスを転送する経路が1つではない。例えば、IP Xが別クラスタのモジュールへリクエストを送信する場合、別クラスタQ経由でも別クラスタS経由でもリクエスト転送が可能な場合を想定している。このような場合において、Path Reg1002の設定によりVREQTU1003およびVRESTU1101の転送経路を指定可能とすることで、ソフトウェアからの制御を可能としている。
 図13に、本実施例におけるPath Reg1002の設定および定義の例を示す。リクエスト転送経路(Request)については、HookADDR1、DRAM、SRAMなど、別クラスタ経由のアクセスを行う際、自クラスタからどのターゲットブリッジ回路(BTu1もしくはBTu2)に転送を行うか、Path Reg ValueのA, B,―,―,Z毎に、定義する。また、レスポンス転送経路(Response)については、Path Reg ValueのA, B,―,―,Zに関して、r_srcの値0,1,―,ごとに自クラスタからどのイニシエータブリッジ回路(BIn1もしくはBIn2)に転送を行うか、定義する。なお、自クラスタが終点となるようなリクエスト、レスポンスについては定義が不要である。このような定義の組をA, B,―,―,Zのようにして複数用意しておき、Path Regに値を設定することで、リクエスト、レスポンスの転送先を変更可能とする。
 なお、Path Regの設定変更は、変更前後でリクエストおよびレスポンスが正しく転送されなければならない。よって、各イニシエータが自由に設定変更せず、変更の際は全イニシエータのリクエストに対して、ターゲットからのレスポンスが送信され終わっていることを確認してから行わなければならない。具体的な方法は規定しないが、例えばデータ処理装置内の1つのCPU(中央演算処理装置)以外は、スリープ状態に遷移しておき、Path Regの設定変更が終わった後、割り込みによって処理を再開する、などの方法が考えられる。
 なお、実施例2で示されるデータ処理装置には、実施例1で示すようなクラスタが他の構成要素として入っていてもよい。
 図14に、図12に示されるクラスタに含まれる経路可変リクエスト転送回路(VREQTU)1003の構成例を示す。VREQTUは、1301で示す可変リクエストデコード回路(VREQDEC)と、1302で示す可変リクエストセレクト回路(VREQMUX)からなる。VREQTUは、BIn1(1004)およびBIn2(1006)とIP Xに接続されたTCNAU0102とから転送されるリクエストを受信すると、まずVREQDEC1301によりMyClusterIDとcluster#を比較し、両者が一致しない場合はPath Regの内容(path_sel)に従って、BTn1(1005)もしくはBTn2(1007)のどちらかにcmdを出力すると同時にVREQMUX1302をBTn1側もしくはBTn2側のどちらかに切り替えてリクエストを転送する。
 一方、VREQDECによる比較結果により両者が一致した場合、VREQDECはaddrをデコードし、自クラスタ内においてaddrに該当するIP Y(0193)のようなターゲットモジュールが存在する場合は、IP Yのようなターゲットモジュールにcmdを出力すると同時にREQMUXをIP Yのようなターゲットモジュール側に切り替えてリクエストを転送し、該当するターゲットモジュールが存在しない場合、すなわち自クラスタ以外に接続されていて、全クラスタで共有しているようなターゲットモジュールのaddrであった場合は、Path Regの内容(path_sel)に従って、BTn1もしくはBTn2のどちらかにcmdを出力すると同時にVREQMUXをBTn1側もしくはBTn2側のどちらかに切り替えてリクエストを転送する。なお、本構成例では、単純化のためBIn1、BIn2、TCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
 図15に、図12に示されるクラスタに含まれるVRESTU1101の構成例を示す。VRESTUは、1401に示す可変レスポンスデコード回路(VRESDEC)と、1402で示す可変レスポンスセレクト回路(VRESMUX)からなる。VRESTUは、BTn1(1005)、BTn2(1007)とIP Y(0193)から転送されるレスポンスを受信すると、VRESDEC1401によりr_srcをデコードし、TCNAU0102に接続されているIP Xと一致していれば、IP Xの接続されているTCNAUにcmdを出力すると同時に、VRESMUX1402をTCNAU側に切り替えてレスポンスを転送し、そうでなければPath Regの内容(path_sel)に従って、BIn1(1004)もしくはBIn2(1006)のどちらかにcmdを出力すると同時にVRESMUXをBIn1側もしくはBIn2側のどちらかに切り替えてレスポンスを転送する。なお、本構成例では、単純化のためBIn1、BIn2、TCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
 なお、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)0102の動作は、図6で説明したタイミングチャートと同様である。
 以上のようなブロックで構成されたデータ処理装置を用いれば、Path Regの設定後は、図9および図10のフローチャートで説明したプログラムを使用することで、CPU(中央演算処理装置)などに代表されるイニシエータIPモジュールと、OSの大幅な修正なしに、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間でデータ転送が可能になるだけでなく、データ転送の際に、電源遮断や製造不良、クラスタ構成の変更などによりデータ転送が行えないクラスタを迂回したデータ転送が可能なデータ処理装置を提供することができる。
 なお、単位クラスタが4つ以上ある情報処理装置におけるネットワークの構成は、全ての単位クラスタ間で直接アクセスできるものに限られることは無く、少なくとも4つの単位クラスタ間において直接アクセスできれは良い。用途に応じて、特定の単位クラスタ間で相互にバスを介して接続されるようにすれば良い。
 0001 4つの単位クラスタにより構成したリング型ネットワークシステムの例
 0010 単位クラスタA
 0011 単位クラスタB
 0012 単位クラスタC
 0013 単位クラスタD
 0020 バス
 0021 バス
 0022 バス
 0023 バス
 0020 バス
 0101 転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を搭載したクラスタ
 0102 転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)
 0103 リクエスト転送回路(REQTU)
 0104 イニシエータブリッジ回路0(BIn0)
 0105 ターゲットブリッジ回路0(BTn0)
 0106 自クラスタ番号レジスタ(MyClusterID Reg)
 0190 別クラスタJ(リクエスト送信元)
 0191 別クラスタK(リクエスト送信先)
 0192 イニシエータIPモジュールX(IP X)
 0193 ターゲットIPモジュールY(IP Y)
 0201 レスポンス転送回路(RESTU)
 0301 TCNAU制御回路(TCNAU CTRL)
 0302 フックアドレス値1(HookADDR1)
 0303 フックアドレス値2(HookADDR2)
 0304 比較器(CMP)
 0305 転送先クラスタ番号保持回路1(ClusterID1)
 0306 転送先クラスタ番号保持回路2(ClusterID2)
 0307 転送先クラスタ番号選択回路(IDMUX)
 0308 転送先クラスタアドレス保持回路1(ClusterADDR1)
 0309 転送先クラスタアドレス保持回路2(ClusterADDR2)
 0310 転送先クラスタアドレス選択回路(ADDRMUX)
 0401 転送先クラスタ番号および転送先クラスタアドレス指定レジスタ(TCNACR)
 0402 転送先クラスタ番号指定フィールド(ClusterID Field)
 0403 転送先クラスタアドレス指定フィールド(ClusterADDR Field)
 0601 リクエストデコード回路(REQDEC)
 0602 リクエストセレクト回路(REQMUX)
 0701 レスポンスデコード回路(RESDEC)
 0702 レスポンスセレクト回路(RESMUX)
 0101 4つの単位クラスタにより構成したシステムの例
 0110 単位クラスタA
 0111 単位クラスタB
 0112 単位クラスタC
 0113 単位クラスタD
 1001 転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と経路指定レジスタ(Path Reg)を搭載したクラスタ
 1002 経路指定レジスタ(Path Reg)
 1003 経路可変リクエスト転送回路(VREQTU)
 1004 イニシエータブリッジ回路1(BIn1)
 1005 ターゲットブリッジ回路1(BTn1)
 1006 イニシエータブリッジ回路2(BIn2)
 1007 ターゲットブリッジ回路2(BTn2)
 1090 別クラスタP(リクエスト送信元)
 1091 別クラスタQ(リクエスト送信先)
 1092 別クラスタR(リクエスト送信元)
 1093 別クラスタS(リクエスト送信先)
 1101 経路可変レスポンス転送回路(VRESTU)
 1301 可変リクエストデコード回路(VREQDEC)
 1302 可変リクエストセレクト回路(VREQMUX)
 1401 可変レスポンスデコード回路(VRESDEC)
 1402 可変レスポンスセレクト回路(VRESMUX)。

Claims (20)

  1.  互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置であって、
     前記複数のクラスタの各々をユニークに識別するための情報としてクラスタID番号を保持し、
     前記複数のクラスタの中の1つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする場合に、該リソースのアドレスに前記他のクラスタのID番号を付加することにより転送先をシステム内でユニークに指定する
    ことを特徴とするデータ処理装置。
  2.  請求項1において、
     前記リソースとして、システム全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、システム全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
     前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのID番号を付与することによりトランザクションの行き先をシステム内でユニークに指定する
    ことを特徴とするデータ処理装置。
  3.  請求項2において、
     前記重複リソースは、単位アドレスマップごとにマッピングされているターゲットモジュールが異なるアドレスエリアであり、
     前記非重複リソースは、各単位アドレスマップで同一のターゲットモジュールがマッピングされているアドレスエリアである
    ことを特徴とするデータ処理装置。
  4.  請求項1において、
     前記各クラスタは、任意の数のCPUと、任意の数のIPとがバスで接続されて構成されており、32bitのOSが動作可能な論理アドレス空間を有している
    ことを特徴とするデータ処理装置。
  5.  請求項4において、
     単一の半導体集積回路もしくは単一の積層LSIに、前記複数のクラスタの前記CPUや前記IPなどの論理回路が実装されている
    ことを特徴とするデータ処理装置。
  6.  請求項5において、
     前記各クラスタは、
     自クラスタから転送先のクラスタへのアクセスリクエストに対して転送先クラスタのID番号および転送先クラスタ内のアドレスを付加する、転送先クラスタ番号および転送先クラスタアドレス付加回路を備えている
    ことを特徴とするデータ処理装置。
  7.  請求項1において、
     前記各クラスタを接続するネットワークは、リング型ネットワークであり、前記各クラスタがバスを介してリング状に接続されている
    ことを特徴とするデータ処理装置。
  8.  請求項1において、
     4つ以上の前記クラスタを備え、
     前記各クラスタを接続するネットワークは、4つの前記クラスタ間で直接アクセスできるように相互にバスを介して接続されている
    ことを特徴とするデータ処理装置。
  9.  請求項1において、
     前記各クラスタは、
     前記クラスタID番号を設定するレジスタを備え、
     前記リクエストを前記レジスタに設定してから、前記アクセスを実行する
    ことを特徴とするデータ処理装置。
  10.  請求項9において、
     前記各クラスタは、システムクロックの1つのサイクルで前記リクエストを前記レジスタに設定し、次のサイクルで前記バスアクセスを実行する
    ことを特徴とするデータ処理装置。
  11.  請求項10において、
     前記各クラスタは、転送先のクラスタが既に前記レジスタに設定されている場合、システムクロックの1つのサイクルで前記バスアクセスを実行する
    ことを特徴とするデータ処理装置。
  12.  請求項1において、
     前記各クラスタは、
     CPUやDMAからなるイニシエータIPモジュールと、
     SRAM、DRAM、IP等からなるターゲットIPモジュールと、
     転送先クラスタ番号および転送先クラスタアドレス付加回路と、
     リクエスト転送回路と、
     レスポンス転送回路と、
     イニシエータブリッジ回路と、
     ターゲットブリッジ回路と、
     自クラスタ番号レジスタとを具備し、
     前記転送先クラスタ番号および転送先クラスタアドレス付加回路は、前記イニシエータIPモジュールの送信するリクエストに対して、要求された別のクラスタへの転送に要する情報を付与する機能を有し、
     前記リクエスト転送回路は、前記転送先クラスタ番号および転送先クラスタアドレス付加回路により付与された別のクラスタへの転送に要する情報により転送先を判定し、自クラスタ宛でない場合は転送先を変更する機能を有する
    ことを特徴とするデータ処理装置。
  13.  請求項12において、
     前記転送先クラスタ番号および転送先クラスタアドレス付加回路は、
     前記イニシエータIPモジュールからの事前の設定を行うためのアクセスを行った直後に、該イニシエータIPモジュールから別クラスタへの転送を行う機能を備えている
    ことを特徴とするデータ処理装置。
  14.  請求項12において、
     前記クラスタを4つ以上具備し、
     前記各クラスタは、前記データを転送する経路を指定する経路指定レジスタを備え、
     前記リクエスト転送回路は、前記経路指定レジスタの設定に従って前記データを転送する
    ことを特徴とするデータ処理装置。
  15.  請求項12において、
     前記クラスタを4つ以上具備し、
     前記各クラスタは、前記データを転送する経路を指定する経路指定レジスタを備え、
     前記レスポンス転送回路は、前記経路指定レジスタの設定に従ってデータを転送する
    ことを特徴とするデータ処理装置。
  16.  互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタをバスを介して接続するネットワークとを備えたデータ処理装置であって、
     前記複数のクラスタは、単一の半導体集積回路もしくは単一の積層LSIに、CPUやIPなどの論理回路が実装されて構成されており、
     前記各クラスタは、リソースとして、システム全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、システム全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
     前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのID番号を付与することにより転送先をシステム内でユニークに指定する
    ことを特徴とするデータ処理装置。
  17.  請求項16において、
     前記各クラスタは、
     イニシエータIPモジュールと、
     ターゲットIPモジュールと、
     前記イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与するための、転送先クラスタ番号および転送先クラスタアドレス付加回路と、
     該転送に要する情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するリクエスト転送回路と、
     レスポンス転送回路と、
     前記リクエスト転送回路若しくは前記レスポンス転送回路からのリクエスト又はレスポンスに応答するイニシエータブリッジ回路及びターゲットブリッジ回路と、
     前記自クラスタのID番号を保持する自クラスタ番号レジスタとを含み、
     前記イニシエータIPモジュールが、自クラスタから別クラスタへのアクセスを行う際に、前記転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行う
    ことを特徴とするデータ処理装置。
  18.  請求項16において、
     前記クラスタを4つ以上具備し、
     前記各クラスタは、
     イニシエータIPモジュールと、
     ターゲットIPモジュールと、
     前記イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与するための、転送先クラスタ番号および転送先クラスタアドレス付加回路と、
     経路指定レジスタと、
     経路可変リクエスト転送回路と、
     該情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するリクエスト転送回路と、
     前記リクエスト転送回路若しくは前記レスポンス転送回路からのリクエスト又はレスポンスに応答する、イニシエータブリッジ回路及びターゲットブリッジ回路と、
     前記自クラスタのID番号を保持する自クラスタ番号レジスタとを含み、
     前記イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、前記転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定し、前記経路指定レジスタの設定に従って前記データを転送し、
     前記イニシエータIPモジュールは、別クラスタへのアクセスを行う前に、前記転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行う
    ことを特徴とするデータ処理装置。
  19.  互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置によるデータ処理方法であって、
     前記データ処理装置は、前記複数のクラスタの各々をユニークに識別するための情報としてクラスタID番号を保持しており、
     前記複数のクラスタの中の1つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする際に、該リソースのアドレスに前記他のクラスタのID番号を付加することにより転送先をシステム内でユニークに指定する
    ことを特徴とするデータ処理方法。
  20.  請求項19において、
     前記データ処理装置は、前記リソースとして、前記データ処理装置全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、前記データ処理装置全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
     前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのID番号を付与することによりトランザクションの行き先をシステム内でユニークに指定する
    ことを特徴とするデータ処理方法。
PCT/JP2010/004700 2009-09-10 2010-07-22 データ処理装置及びデータ処理方法 WO2011030498A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-209644 2009-09-10
JP2009209644A JP2012256087A (ja) 2009-09-10 2009-09-10 データ処理装置及びデータ処理方法

Publications (1)

Publication Number Publication Date
WO2011030498A1 true WO2011030498A1 (ja) 2011-03-17

Family

ID=43732180

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/004700 WO2011030498A1 (ja) 2009-09-10 2010-07-22 データ処理装置及びデータ処理方法

Country Status (2)

Country Link
JP (1) JP2012256087A (ja)
WO (1) WO2011030498A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114374644A (zh) * 2021-12-22 2022-04-19 烟台东方瑞创达电子科技有限公司 基于基础设施逻辑架构的工业互联网标识解析方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675883A (ja) * 1992-08-25 1994-03-18 Fujitsu Ltd メッセージ通信装置
JPH08235143A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk クラスタ構成の並列計算機
JPH08305677A (ja) * 1995-05-08 1996-11-22 Kofu Nippon Denki Kk 情報処理装置
JP2007526540A (ja) * 2003-06-27 2007-09-13 ニューイシス・インコーポレーテッド 動的マルチクラスタシステムリコンフィギュレーション

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675883A (ja) * 1992-08-25 1994-03-18 Fujitsu Ltd メッセージ通信装置
JPH08235143A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk クラスタ構成の並列計算機
JPH08305677A (ja) * 1995-05-08 1996-11-22 Kofu Nippon Denki Kk 情報処理装置
JP2007526540A (ja) * 2003-06-27 2007-09-13 ニューイシス・インコーポレーテッド 動的マルチクラスタシステムリコンフィギュレーション

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114374644A (zh) * 2021-12-22 2022-04-19 烟台东方瑞创达电子科技有限公司 基于基础设施逻辑架构的工业互联网标识解析方法及系统
CN114374644B (zh) * 2021-12-22 2023-09-19 烟台东方瑞创达电子科技有限公司 基于基础设施逻辑架构的工业互联网标识解析方法及系统

Also Published As

Publication number Publication date
JP2012256087A (ja) 2012-12-27

Similar Documents

Publication Publication Date Title
CN111506534B (zh) 具有非阻塞高性能事务信用系统的多核总线架构
US6526462B1 (en) Programmable multi-tasking memory management system
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
EP1307818B1 (en) Implementing locks in a distributed processing system
JP2001142842A (ja) Dmaハンドシェークプロトコル
JP6005392B2 (ja) ルーティングのための方法及び装置
US8583845B2 (en) Multi-processor system and controlling method thereof
JPS62206658A (ja) 記憶管理装置
WO2019126722A1 (en) A centralized-distributed mixed organization of shared memory for neural network processing
JP5856434B2 (ja) バス接続回路、半導体装置及びバス接続回路の動作方法
JP2003296267A (ja) バスシステム及びバスシステムを含む情報処理システム
JP5439808B2 (ja) 複数バスを有するシステムlsi
JP4642531B2 (ja) データ要求のアービトレーション
JP2003271574A (ja) 共有メモリ型マルチプロセッサシステムにおけるデータ通信方法
CN116483259A (zh) 一种数据处理方法以及相关装置
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
US20080295120A1 (en) Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
KR20030083572A (ko) 상위버스와 하위버스를 가지며, 네트워크에서의 데이터액세스의 제어를 행하는 마이크로 컴퓨터 시스템
JP3861898B2 (ja) データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
JP2006285872A (ja) マルチcpuシステム
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
WO2012127534A1 (ja) バリア同期方法、バリア同期装置及び演算処理装置
JP2020140380A (ja) 半導体装置及びデバッグシステム
JP2007506174A (ja) 複数の通信用デジタル信号プロセッサを有する集積回路

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: 10815100

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10815100

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP