WO2011114477A1 - 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム - Google Patents
階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム Download PDFInfo
- Publication number
- WO2011114477A1 WO2011114477A1 PCT/JP2010/054607 JP2010054607W WO2011114477A1 WO 2011114477 A1 WO2011114477 A1 WO 2011114477A1 JP 2010054607 W JP2010054607 W JP 2010054607W WO 2011114477 A1 WO2011114477 A1 WO 2011114477A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- layer
- cluster
- cpu
- group
- core processor
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17393—Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
Definitions
- the present invention relates to a hierarchical multi-core processor, a multi-core processor system, and a control program that execute processing related to a communication function.
- An object of the present invention is to provide a hierarchical multi-core processor that can suppress an increase in the scale of a system by reducing the number of connections between CPUs in order to solve the problems caused by the above-described conventional technology.
- a core group is provided for each layer of a layer group that constitutes a series of communication functions divided according to a communication protocol, and the core group of one layer among the layer groups includes the one group.
- a hierarchical multi-core processor connected to a core group of another hierarchy that constitutes a communication function executed following the communication function of a hierarchy.
- This hierarchical multi-core processor has the effect of reducing the scale of the system by reducing the number of connections between CPUs.
- FIG. 2 is a three-dimensional image diagram of a hierarchical multi-core processor 102 and a main CPU 101.
- FIG. It is explanatory drawing which shows the detailed example of A shown in FIG. It is explanatory drawing which shows an example of the hierarchy group used by this Embodiment.
- FIG. 11 is an explanatory diagram illustrating an example of a program stored in a memory 105.
- 5 is an explanatory diagram illustrating an example of a library group.
- FIG. 1 is a block diagram illustrating an example of a hardware configuration of a multi-core processor system.
- the multi-core processor system 100 includes a main CPU 101 (Central Processing Unit), a hierarchical multi-core processor 102, a communication CPU 103, an RF 104, a memory 105, a memory 106, and an antenna 110.
- the main CPU 101 and the memory 105 are connected by a bus 107.
- the communication CPU 103 and the memory 106 are connected by a bus 108.
- the bus 107 and the bus 108 are connected via a bridge 109.
- the main CPU 101 is a processor that controls the entire processing related to application software, and has a built-in primary cache.
- the communication CPU 103 is a processor that controls the overall processing related to communication. A configuration having a communication CPU 103 for communication and a main CPU 101 for applications separately is well known.
- RF 104 is a high-frequency processing unit that receives data from a network such as the Internet via the antenna 110 and transmits data to the network.
- the RF 104 is provided with an A (Analog) / D (Digital) converter, a D (Digital) / A (Analog) converter, or the like, and converts data from the network into a digital signal, or from the communication CPU 103. Or convert the data to analog signals.
- the hierarchical multi-core processor 102 converts data from the communication CPU 103 into a state usable by the main CPU 101, or converts data from the main CPU 101 into a state usable by the communication CPU 103.
- the hierarchical multi-core processor 102 includes a CPU group ( ⁇ in the figure), a crossbar network 301 to a crossbar network 312, and a local memory 201 to a local memory 203.
- the local memory 203 is connected to the main CPU 101, and the crossbar network 301 and the bus 107 are connected.
- the main CPU 101 and the CPU of the hierarchical multi-core processor 102 are not directly connected.
- the main CPU 101 passes some information to the CPU of the hierarchical multicore processor 102 or receives some information from the CPU of the hierarchical multicore processor 102 via the local memory 203 or the memory 105.
- the hierarchical multi-core processor 102 and the main CPU 101 (enclosed by dotted lines) will be described in detail.
- FIG. 2 is a three-dimensional image diagram of the hierarchical multi-core processor 102 and the main CPU 101.
- the z direction represents a hierarchy. In the z direction, it is shown that a CPU group is provided for each layer of layers that constitute a series of communication functions divided according to the communication protocol.
- a communication protocol is a rule in communication.
- the layer group constituting the series of communication functions is, for example, a layer realized by a program in the OSI reference model described later.
- a CPU group in one hierarchy among the hierarchy groups is connected to a CPU group in another hierarchy that constitutes a communication function executed following the communication function in the one hierarchy, and the CPU group in the first hierarchy is connected to the one hierarchy CPU group. It is not connected to a CPU group in another layer that constitutes a communication function that is not executed following the communication function in the other layer.
- Each CPU of the hierarchical multi-core processor 102 is composed of four arithmetic operation circuits and bit operation circuits (cores), and is suitable for packet bit data processing.
- cores bit operation circuits
- FIG. 3 is an explanatory diagram showing a detailed example of A shown in FIG.
- the CPU group in each hierarchy is divided into a plurality of clusters.
- a plurality of clusters are represented by the y direction.
- the CPU group in each hierarchy is divided into four clusters, cluster # 0 to cluster # 3.
- the CPU group in each hierarchy can be referred to as a cluster group in each hierarchy.
- Each cluster has a plurality of CPUs.
- a plurality of CPUs included in the cluster are represented in the x direction.
- each cluster has four CPUs, CPU # 0 to CPU # 3.
- the CPU # 0 of each cluster is a control processor (hereinafter referred to as “CP (Control Processor)”), and executes dispatch to CPUs in the cluster.
- CP Control Processor
- the CPU group of each cluster is connected by a crossbar switch.
- CPUs # 0 to CPU # 3 of cluster # 0 are connected to the crossbar network 301, and CPUs # 0 to CPU # 3 of cluster # 1 are connected to the crossbar network 302, respectively.
- CPU # 0 to CPU # 3 of cluster # 2 are connected to the crossbar network 303, and CPU # 0 to CPU # 3 of cluster # 3 are connected to the crossbar network 304, respectively.
- the crossbar network 301 to the crossbar network 304 are connected to the local memory 201, respectively.
- control is performed so that the main CPU 101 assigns a different communication function to each cluster.
- CPU # 0 to CPU # 3 of cluster # 0 are connected to the crossbar network 305, and CPU # 0 to CPU # 3 of cluster # 1 are connected to the crossbar network 306, respectively.
- CPU # 0 to CPU # 3 of cluster # 2 are connected to the crossbar network 307, and CPU # 0 to CPU # 3 of cluster # 3 are connected to the crossbar network 308, respectively.
- the crossbar network 305 to the crossbar network 308 are connected to the local memory 201 and the local memory 202, respectively.
- the crossbar network 309 to the crossbar network 312 are connected to the local memory 202 and the local memory 203, respectively.
- the CP of each cluster controls the processing related to the protocol assigned to each cluster to be executed in parallel by a plurality of CPUs in each cluster. Since there is an iteration depending on the process related to the history function, the throughput can be improved by causing the CPU of the cluster to which the process related to the communication function is assigned to execute the iteration in parallel.
- a hierarchy group used in the present embodiment will be described.
- FIG. 4 is an explanatory diagram showing an example of a hierarchy group used in the present embodiment.
- the OSI reference model is described as an example of the hierarchical group as described above.
- the OSI reference model is a model in which the communication function is divided into a hierarchical structure as is well known, and is composed of a total of seven layers from the first layer to the seventh layer.
- the first layer of the OSI reference model is the physical layer
- the second layer is the data link layer
- the third layer is the network layer
- the fourth layer is the transport layer
- the fifth layer is the session layer
- the sixth layer is a presentation layer
- the seventh layer is an application layer.
- a UI User Interface (user interface)
- UI / application an application program
- Part of physical layer and data link layer is infrastructure, part of data link layer, part of network layer, transport layer and part of session layer are realized in hardwire, part of session layer, part of presentation layer and application layer
- the layer and UI / application are realized by a program, and the COU loads and executes the program.
- the CPU that executes the process related to the session layer protocol, the process related to the presentation layer protocol, the process related to the application layer protocol, and the process related to the UI / application is determined in advance.
- Processing related to the UI / application is executed by the main CPU 101.
- Examples of the session layer protocol include SSL (Secure Socket Layer) / TLS (Transport Layer Security) and RPC (Remote Procedure Call).
- HTML Hyper Text Markup Language
- XML Extensible Markup Language
- AFP Apple Filing Protocol
- SNMP Simple NetworkM
- HTTP Hypertext Transfer Protocol
- EHRP Endpoint Handolent Information Redundant Protocol
- 9P IMAP4 (Internet Message Access Protocol, NTP).
- IRC Internet Relay Chat
- Gopher DHCP (Dynamic Host Configuration Protocol)
- FTP File Transfer Protocol
- GTP GTP (GPRS (General Packet Radio Service) Tunneling Protocol), like DNS (Domain Name System) is.
- UI / applications include mobile phones, browsers, VoIP (Voice over Internet Protocol), virtual reality, telephony, downloaders, games, communications, net links, dial-ups, mailers, SNSs (Social Networking Service). ), P2P (Peer to Peer).
- the UI is started immediately after the power is turned on.
- the application is activated by an activation instruction from the user or is activated by an external factor. External factors include receiving mail and incoming calls. Therefore, the mailer and dial-up are applications that are in an execution waiting state immediately after the power is turned on. The mailer is activated immediately upon receipt of the mail, and dial-up is activated immediately upon receipt of the incoming call.
- a mailer reception process will be described as an example of a process that is in an execution waiting state immediately after power-on, and a browser-related process will be described as an example of a process executed in response to a start instruction from a user.
- IMAP4 in the application layer for example, IMAP4 in the application layer, SNMP in the presentation layer, and SSL in the session layer are used.
- processing related to the browser for example, HTTP or FTP in the application layer, HTML or XML in the presentation layer, and TLS in the session layer are used.
- the z direction indicates a hierarchy
- the y direction indicates a cluster
- the x direction indicates a CPU in the cluster.
- the z direction indicates a hierarchy
- the y direction indicates a protocol
- the x direction indicates parallel processing related to the protocol.
- FIGS. 2 and 4 show that a protocol corresponding to the hierarchy is assigned to the cluster of each hierarchy, that each cluster is assigned a process relating to a different protocol, and a plurality of processes relating to the protocol are performed in each cluster. It is shown to run in parallel on the core. Since each cluster of the hierarchical multiprocessor 102 has four CPUs, for example, when processing related to FTP is composed of four tasks as shown in FIG. 4, the CPU of the cluster to which processing related to FTP is assigned. Each task can be assigned to each.
- the memory 106 stores various information and is used as a work area for the communication CPU 103.
- the memory 105 stores various information and is used as a work area for the main CPU 101.
- the memory 105 and the memory 106 are storage devices such as a ROM (Read Only Memory), a RAM (Random Access Memory), a flash memory, and a hard disk drive.
- FIG. 5 is an explanatory diagram showing an example of a program stored in the memory 105.
- the memory 105 stores an OS 501, an application program 504, a linker 503, and a process table 700.
- the OS 501 has a library group 502, controls to assign a process related to each layer protocol to a cluster group corresponding to the hierarchy, and uses the process table 700 to determine which cluster among the cluster groups corresponding to the hierarchy. Have a function to control.
- the library group 502 is a set of libraries.
- a library is a program in which a plurality of highly versatile program parts are filed, and operates as a part of other programs that operate on the OS 501 such as the application program 504. It cannot be executed by the library alone.
- the application program 504 and the OS 501 are loaded on the main CPU 101 to cause the main CPU 101 to execute a coded process. That is, the main CPU 101 executes a process for controlling to which cluster of the CPU cluster group corresponding to the hierarchy the process related to the protocol of each hierarchy is assigned using the process table 700.
- a program having a function for controlling a plurality of CPUs in each cluster to execute processes related to protocols assigned to each cluster in parallel is stored in the memory 105. Then, the program is loaded into the CP of each cluster of the hierarchical multi-core processor 101, so that the coded processing is executed by the CP of each cluster of the hierarchical multi-core processor 101.
- FIG. 6 is an explanatory diagram showing an example of the library group 502.
- the library group 502 includes a protocol library group and another library group 604 that is not a protocol library, and is stored in the memory 105.
- the protocol library group is classified into three library groups for each layer of the session layer library group 601, the presentation layer library group 602, and the application layer library group 603. Therefore, the main CPU 101 can specify which level of protocol the library of each protocol is.
- the session layer library group 601 includes, for example, an SSL library, a TLS library, and a driver library
- the presentation layer library group 602 includes, for example, an HTML library and an XML library, and an application layer library.
- an IMAP4 library and an FTP library belong to the group 603.
- the linker 503 is a program for linking the application program 504 and a library used by the application program 504.
- the application program 504 is a program that runs on the OS 501 and executes processing by calling a library as necessary. Taking the browser as an example, the linker 503 links an HTTP library, an FTP library, an HTML library, an XML library, and a TLS library from the library group. A library specified by linking by the linker 503 is called an execution object.
- FIG. 7 is an explanatory diagram showing an example of the process table 700.
- the process table 700 shows the allocation state and the allocation schedule immediately after the power is turned on. It is classified into “Application_Layer:”, “Presentation_Layer:”, and “Session_Layer:”. “Application_Layer:” indicates the allocation state or allocation schedule to the CPU group corresponding to the application layer. “Presentation_Layer:” indicates an allocation state or allocation schedule to the CPU group corresponding to the presentation layer. “Session_Layer:” indicates an assignment state or assignment schedule to the CPU group corresponding to the session layer. Therefore, the z direction shown in FIG. 2 is shown by the name of each layer.
- the total number of clusters indicates the number of clusters, and indicates the y direction shown in FIG.
- the hierarchical multi-core processor 102 has two modes, a normal mode and a low power consumption mode.
- the low power consumption mode indicates, for example, a state where the frequency of a clock supplied to the CPU is lowered.
- control processing procedure and control processing procedure of the multi-core processor immediately after power-on are shown, and then the control processing procedure and control processing procedure of the multi-core processor when an application activation instruction is received from the user during operation is shown.
- FIG. 8 is a flowchart showing a control processing procedure by the main CPU 101 immediately after power-on.
- the main CPU 101 determines whether there is an unselected application among the applications that need to be prepared for activation (step S801). Examples of applications that need to be started immediately after power-on include mailers and dial-up as described above.
- step S801 When it is determined that there is an unselected application among the applications that need to be prepared for activation (step S801: Yes), an arbitrary application is selected from the unselected applications (step S802). Next, the main CPU 101 specifies an execution object by linking a library related to the selected application with a linker (step S803).
- the main CPU 101 reads the process table (step S804), and determines a cluster to which the execution object is assigned from the cluster group of the hierarchy corresponding to the execution object hierarchy (step S805).
- the assignment of the code processing described in the execution object (library) is omitted, and the execution object (library) is assigned.
- the main CPU 101 determines a cluster to be allocated by collecting the load amount of each cluster.
- the main CPU 101 determines that there is an unselected execution object among the execution objects in the i-th layer (step S808: Yes)
- an arbitrary execution object is selected from the unselected execution objects (step S809).
- the main CPU 101 notifies an activation preparation instruction to the CP of the cluster to which the execution object is assigned (step S810), and determines whether an activation preparation completion notification has been received (step S811).
- step S812 Yes
- step S812 Yes
- step S801 the main CPU 101 determines that there is no unselected application among the applications that need to be activated
- step S801: No the operation is started (step S814), and the series of processing ends.
- FIG. 9 is a flowchart showing a control processing procedure by the CP immediately after the power is turned on.
- CP the CP of the cluster to which the execution object has been assigned
- execution object activation preparation instruction from the main CPU (step S901). ).
- Execution preparation of an execution object means that a process coded in the execution object (library) (hereinafter referred to as “process related to execution object” or “process related to library”) is immediately ready to be executed.
- process related to execution object or “process related to library”
- process related to library are used in the same meaning.
- step S901: No When the CP determines that it has not received an execution object activation preparation instruction from the main CPU (step S901: No), the process returns to step S901.
- step S901: Yes when the CP determines that the execution object activation preparation instruction has been received (step S901: Yes), the execution object is mapped on the local memory, and the execution object context information is generated (step S902).
- the context information indicates the internal state of the program and where the program is arranged on the memory.
- the processing related to the execution object is mapped on the local memory accessible by the cluster to which the execution object is assigned, and information indicating where the cluster is mapped on the local memory is generated as the context information.
- the ready queue is a data structure for managing tasks that can be executed as is well known.
- the CP can immediately execute the process related to the execution object by extracting the context information of the execution object registered in the ready queue. That is, an application that needs to be prepared for startup immediately after power-on is in a standby state.
- FIG. 10 is a flowchart showing a control processing procedure by the CP that has received a start instruction for an execution object in a start preparation state.
- CP a CP of a cluster to which an execution object that is in a start preparation state is assigned
- the execution instruction for the execution object refers to a start instruction for processing related to the execution object.
- step S1001: No the process returns to step S1001.
- step S1002 determines that the execution instruction for the execution object has been received from the lower layer (step S1001: Yes)
- the effective rate of the process related to the execution object for which the activation instruction has been received is acquired (step S1002).
- the effective rate is a band, and the CP can be acquired by a “Ping” command.
- the CP calculates the number of CPUs from the execution rate [bps (bit per second)] of the process related to the execution object and the processing capacity [bps] of the CPU (step S1003), and registers the calculated CPU number in the process table (step S1004). ).
- registration in the process table will be described.
- the memory 105 is accessed and directly registered in the process table 700.
- the CP stops the unnecessary CPU (step S1005), acquires the execution object context information from the ready queue (step S1006), and executes the process related to the execution object (step S1007).
- the unnecessary CPU refers to, for example, a remaining CPU excluding three CPUs from the four CPUs when three of the four CPUs in the cluster are used to execute a protocol-related process.
- the CP establishes a socket (step S1008) and ends a series of processing.
- FIG. 11 is a flowchart showing a control processing procedure by the CP when an execution object of an application that needs to be prepared for activation ends. Whether or not the CP of the cluster to which the execution object of the application that needs to be prepared for preparation (hereinafter referred to as “CP” is omitted in FIG. 11) has ended Is determined (step S1101). First, when the CP determines that the execution object of the application that needs to be activated is not finished (step S1101: No), the process returns to step S1101.
- step S1101 when the CP determines that the execution object of the application that needs to be started is finished (step S1101: Yes), the context information of the finished execution object is saved in the ready queue (step S1102). Then, the CP stops unnecessary CPUs (step S1103), resets the number of CPUs of the cluster to which the execution object finished from the process table is assigned (step S1104), and ends a series of processing.
- FIG. 12 is an explanatory diagram (part 1) of the first specific example.
- mailer and dial-up are examples of applications that need to be activated.
- mailer reception processing will be described as an example.
- the main CPU 101 specifies an execution object necessary for mailer reception processing from the library group by the linker.
- an execution object an SSL library, an SNMP library, and an IMAP4 library are specified.
- the SSL library is omitted to be SSL
- the SNMP library is omitted to SNMP
- the IMAP4 library is omitted to IMAP4.
- the main CPU 101 reads the process table 700, determines a cluster to which the execution object is allocated, and registers the determination result in the process table 700. For example, when the main CPU 101 refers to the process table 700 and nothing is assigned, the execution object may be assigned to any cluster. When the cluster to which the execution object is assigned is in the off state, the main CPU 101 switches the cluster to the low power consumption mode in the on state.
- the SNMP library is scheduled to be assigned to cluster # 0 of “Presentation_Layer:”. Since SSL is a session layer protocol, in the process table 1300, the SSL library is scheduled to be assigned to the cluster # 0 of “Session_Layer:”.
- the ready queue 1201 is stored in the local memory 201, for example.
- FIG. 14 is an explanatory diagram (part 2) of the first specific example.
- FIG. 14 illustrates an example when an SSL activation instruction is received following FIG. 13.
- FIG. 15 is an explanatory diagram showing an example in which the calculation result is registered in the specific example 1.
- FIG. 16 is a flowchart illustrating a control processing procedure performed by the main CPU 101 when starting an application.
- a control processing procedure when the main CPU 101 receives an application activation instruction from a user will be described.
- the main CPU 101 receives an application program activation instruction (step S1601).
- steps S1602 to S1608 are the same processes as steps S803 to S809, respectively, and steps S1611 and S1612 are the same processes as steps S812 and S813, respectively, and thus description thereof is omitted.
- step S1609, step S1610, and steps S1613 to S1615 will be described.
- the main CPU 101 notifies the activation instruction to the CP of the cluster to which the execution object is assigned (step S1609), and determines whether the activation completion notification is received (step S1610). If the main CPU 101 determines that the activation completion notification has not been received (step S1610: No), the process returns to step S1610. On the other hand, if it is determined that a notification of activation completion has been received (step S1610: Yes), the process returns to step S1607.
- step S1613 the main CPU 101 generates application context information (step S1613), establishes a socket between communication layers (step S1614), starts application software (step S1615), and ends a series of processing. To do.
- FIG. 17 is a flowchart showing a control processing procedure by the CP that has received the activation instruction.
- CP the CP of the cluster to which the execution object is assigned
- step S1701 it is determined whether or not the CP of the cluster to which the execution object is assigned. If the CP determines that it has not received an execution object activation instruction from the main CPU (step S1701: NO), the process returns to step S1701.
- step S1701 when the CP determines that an execution object activation instruction has been received from the main CPU (step S1701: Yes), it generates context information of the execution object that has received the activation instruction (step S1702), and stores the context information in the ready queue. Registration is performed (step S1703).
- steps S1704 to S1710 are the same processes as steps S1002 to S1008, respectively, and thus description thereof will be omitted.
- step S1710 the main CPU is notified of the completion of the execution of the execution object (step S1711), and the series of processes is terminated.
- FIG. 18 is a flowchart showing a control processing procedure by the CP when an application activated by a user's activation instruction is terminated.
- a CP (abbreviated as CP in FIG. 18) of a cluster to which an execution object of an application that has been activated in response to a user's activation instruction and is not required to be activated immediately after power-on is assigned. It is determined whether or not the execution object of the application activated by the activation instruction has ended (step S1801).
- step S1801: No When the CP determines that the execution object of the application activated by the activation instruction of the user has not ended (step S1801: No), the process returns to step S1801. On the other hand, when the CP determines that the execution object of the application activated by the activation instruction of the user has ended (step S1801: Yes), the context information of the ended execution object is deleted (step S1802).
- the CP stops the unnecessary CPU (step S1803), deletes the description related to the execution object that has ended from the process table (step S1804), and ends the series of processing.
- the main CPU 101 performs the deletion process from the process table as well as the registration process to the process table.
- the main CPU 101 or the CPU of cluster # 0 with z 0 executes the deletion process.
- FIG. 19 is an explanatory diagram (part 1) of a specific example 2.
- the main CPU 101 receives a browser activation instruction and links the library group 502 with the linker to specify an execution object.
- an HTTP library and an FTP library in the application layer an HTTP library and an FTP library in the application layer, an HTML library in the presentation layer, and a TLS library in the session layer are specified.
- the main CPU 101 reads the process table 1300, determines which cluster to assign each identified execution object from the cluster group corresponding to the hierarchy of the execution object, and registers it in the process table 1300.
- the main CPU 101 performs control so that a different communication function is assigned to each cluster in the cluster group of each hierarchy.
- the process table 1300 indicates that an SSL library is assigned to cluster # 0 in “Session_Layer:” and nothing is assigned to clusters # 1 to # 3.
- the main CPU 101 determines to allocate the TLS library to cluster # 1.
- FIG. 20 is an explanatory diagram showing an example in which the determination result is registered in the specific example 2.
- the process table 2000 is an example in which the determination result is registered. Since TLS is a session layer protocol, “Session_Layer:” in the process table 2000 indicates that TLS is assigned to cluster # 1. Since HTML is a presentation layer protocol, “Presentation_Layer:” in the process table 2000 indicates that HTML is assigned to cluster # 1. Since HTTP and FTP are protocol in the application layer, “Application_Layer:” in the process table 2000 indicates that HTTP is assigned to cluster # 1, and that FTP is assigned to cluster # 2. ing.
- the main CPU 101 after registering the determination result in the process table 2000, the main CPU 101 notifies the activation instruction to the CP of the cluster to which the processing related to each protocol is assigned.
- the main CPU 101 notifies the CP of the cluster to which the process related to the upper layer protocol is assigned in order from the CP of the cluster to which the process related to the lower layer protocol is assigned.
- An instruction to start processing related to HTML is sent to the # 1 CP.
- FIG. 22 is an explanatory diagram showing an example in which the calculation result is registered in the specific example 2.
- the process table 2200 is an example in which calculation results are registered.
- the CP of the cluster to which the browser execution object is assigned deletes the context information of the execution object. Then, the description relating to the execution object that has ended is deleted from the process table 2200. The deletion result is the same as the process table 1300.
- the hierarchical multi-core processor has a CPU group for each of the hierarchical groups constituting a series of communication functions. Then, a CPU group in one layer of the layer group is connected to a CPU group in another layer that constitutes a communication function executed subsequent to the communication function in the one layer, thereby connecting the CPUs. It is possible to reduce the size of the system and prevent the system from becoming large.
- the core group of each layer is divided into a plurality of clusters, it is possible to cause the core group of one cluster to execute processing related to one communication function.
- each cluster has a plurality of cores, one communication function can be executed in parallel, and throughput can be improved.
- each process can be efficiently executed by assigning it to different CPUs even if the processes related to the communication protocol of the same layer are executed simultaneously.
- each cluster has a plurality of CPUs
- throughput can be improved by causing a plurality of cores in each cluster to execute processes related to the communication function assigned to each cluster in parallel.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
Description
図1は、マルチコアプロセッサシステムのハードウェア構成の一例を示すブロック図である。図1において、マルチコアプロセッサシステム100は、メインCPU101(Central Processing Unit)と、階層型マルチコアプロセッサ102と、通信CPU103と、RF104と、メモリ105と、メモリ106と、アンテナ110と、を有する。メインCPU101とメモリ105は、バス107により接続されている。そして、通信CPU103とメモリ106はバス108により接続されている。バス107とバス108はブリッジ109を介して接続されている。
図8は、電源投入直後におけるメインCPU101による制御処理手順を示すフローチャートである。まず、メインCPU101が、起動準備が必要なアプリケーションのうち未選択のアプリケーションがあるか否かを判断する(ステップS801)。電源投入直後に起動準備が必要なアプリケーションとは、上述のようにメーラやダイヤルアップが挙げられる。
ここで、電源投入直後におけるマルチコアプロセッサシステム100の制御処理の具体例を説明する。
図16は、アプリケーション起動時のメインCPU101による制御処理手順を示すフローチャートである。ここでは、メインCPU101が利用者からのアプリケーションの起動指示を受け付けた場合の制御処理手順について説明する。まず、メインCPU101が、アプリケーションプログラムの起動指示を受け付ける(ステップS1601)。
ここで、利用者からのアプリケーションの起動指示を受け付けた場合のマルチコアプロセッサシステムの制御処理の具体例を説明する。
102 階層型マルチコアプロセッサ
Claims (7)
- 通信プロトコルに従って分割された一連の通信機能を構成する階層群の階層ごとにコア群を有し、
前記階層群のうち一の階層のコア群が、当該一の階層の通信機能に続いて実行される通信機能を構成する他の階層のコア群に接続されることを特徴とする階層型マルチコアプロセッサ。 - 前記各階層のコア群は、複数のクラスタに分割されていることを特徴とする請求項1に記載の階層型マルチコアプロセッサ。
- 前記各クラスタは、複数のコアを有することを特徴とする請求項2に記載の階層型マルチコアプロセッサ。
- 通信プロトコルに従って分割された一連の通信機能を構成する階層群の階層ごとにコア群を有し、前記階層群のうち一の階層のコア群が、当該一の階層の通信機能に続いて実行される通信機能を構成する他の階層のコア群に接続されている階層型マルチコアプロセッサと、
前記各階層のコア群に、当該階層に応じた通信機能を割り当てるように制御する制御手段と、
を備えることを特徴とするマルチコアプロセッサシステム。 - 前記階層型マルチコアプロセッサでは、前記各階層のコア群が複数のクラスタに分割されており、
前記制御手段では、前記各階層のコア群において分割された前記各クラスタに異なる通信機能を割り当てるように制御することを特徴とする請求項4に記載のマルチコアプロセッサシステム。 - 前記階層型マルチコアプロセッサでは、前記各クラスタが複数のコアを有しており、
前記制御手段では、前記各クラスタに割り当てられた通信機能に関する処理を、前記各クラスタ内の複数のコアに並列実行させることを特徴とする請求項5に記載のマルチコアプロセッサシステム。 - 通信プロトコルに従って分割された一連の通信機能を構成する階層群の階層ごとにコア群を有し、前記階層群のうち一の階層のコア群が、当該一の階層の通信機能に続いて実行される通信機能を構成する他の階層のコア群に接続されている階層型マルチコアプロセッサを制御するコアに、
前記各階層のコア群に、当該階層に応じた通信機能を割り当てるように制御する制御工程、
を実行させることを特徴とする制御プログラム。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012505384A JPWO2011114477A1 (ja) | 2010-03-17 | 2010-03-17 | 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム |
| CN2010800654212A CN102812445A (zh) | 2010-03-17 | 2010-03-17 | 分层型多核处理器、多核处理器系统、以及控制程序 |
| PCT/JP2010/054607 WO2011114477A1 (ja) | 2010-03-17 | 2010-03-17 | 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム |
| US13/614,330 US20130013892A1 (en) | 2010-03-17 | 2012-09-13 | Hierarchical multi-core processor, multi-core processor system, and computer product |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2010/054607 WO2011114477A1 (ja) | 2010-03-17 | 2010-03-17 | 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/614,330 Continuation US20130013892A1 (en) | 2010-03-17 | 2012-09-13 | Hierarchical multi-core processor, multi-core processor system, and computer product |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011114477A1 true WO2011114477A1 (ja) | 2011-09-22 |
Family
ID=44648606
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2010/054607 Ceased WO2011114477A1 (ja) | 2010-03-17 | 2010-03-17 | 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20130013892A1 (ja) |
| JP (1) | JPWO2011114477A1 (ja) |
| CN (1) | CN102812445A (ja) |
| WO (1) | WO2011114477A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013114236A1 (en) * | 2012-01-30 | 2013-08-08 | International Business Machines Corporation | Full exploitation of parallel processors for data processing |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9405340B2 (en) * | 2013-06-27 | 2016-08-02 | Intel Corporation | Apparatus and method to implement power management of a processor |
| US9977699B2 (en) | 2014-11-17 | 2018-05-22 | Mediatek, Inc. | Energy efficient multi-cluster system and its operations |
| US10031573B2 (en) | 2014-11-17 | 2018-07-24 | Mediatek, Inc. | Energy efficiency strategy for interrupt handling in a multi-cluster system |
| CN105849670A (zh) * | 2014-11-17 | 2016-08-10 | 联发科技股份有限公司 | 能源效率的多重群集系统及其操作 |
| CN119003001A (zh) * | 2023-05-22 | 2024-11-22 | 昆仑芯(北京)科技有限公司 | 数据处理器核、数据处理器、电子设备和存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06350670A (ja) * | 1993-06-07 | 1994-12-22 | Nippon Telegr & Teleph Corp <Ntt> | データ受信並列処理方法 |
| JPH0888666A (ja) * | 1994-09-19 | 1996-04-02 | Kokusai Denshin Denwa Co Ltd <Kdd> | 通信プロトコルの並列処理のためのバッファ制御方法 |
| JP2008512950A (ja) * | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | パケットのキューイング、スケジューリングおよび順序づけ |
| JP2008523729A (ja) * | 2004-12-13 | 2008-07-03 | インテル・コーポレーション | フロー割当て |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07105823B2 (ja) * | 1987-09-09 | 1995-11-13 | 松下電器産業株式会社 | 通信プロトコル制御装置 |
| SE514328C2 (sv) * | 1998-12-18 | 2001-02-12 | Ericsson Telefon Ab L M | Förfarande och arrangemang i ett radiokommunikationssystem för utförande av meddelandeöverföring |
| US7360067B2 (en) * | 2002-12-12 | 2008-04-15 | International Business Machines Corporation | Method and data processing system for microprocessor communication in a cluster-based multi-processor wireless network |
| JP4279588B2 (ja) * | 2003-04-21 | 2009-06-17 | エヌ・ティ・ティ・データ・ジェトロニクス株式会社 | データ変換装置及び方法 |
| JP4086304B2 (ja) * | 2004-04-23 | 2008-05-14 | 株式会社東芝 | 通信装置、通信システム、および通信制御プログラム |
| KR100530856B1 (ko) * | 2005-05-11 | 2005-11-23 | (주) 위즈네트 | 임베디드 시스템을 위한 고속 데이터 처리 기능을 가지는통신방법 및 그 장치 |
| CN101535956A (zh) * | 2006-11-02 | 2009-09-16 | 日本电气株式会社 | 多处理器系统、多处理器系统中的系统构成方法及其程序 |
| CN101546276B (zh) * | 2008-03-26 | 2012-12-19 | 国际商业机器公司 | 多核环境下实现中断调度的方法及多核处理器 |
-
2010
- 2010-03-17 CN CN2010800654212A patent/CN102812445A/zh active Pending
- 2010-03-17 WO PCT/JP2010/054607 patent/WO2011114477A1/ja not_active Ceased
- 2010-03-17 JP JP2012505384A patent/JPWO2011114477A1/ja active Pending
-
2012
- 2012-09-13 US US13/614,330 patent/US20130013892A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06350670A (ja) * | 1993-06-07 | 1994-12-22 | Nippon Telegr & Teleph Corp <Ntt> | データ受信並列処理方法 |
| JPH0888666A (ja) * | 1994-09-19 | 1996-04-02 | Kokusai Denshin Denwa Co Ltd <Kdd> | 通信プロトコルの並列処理のためのバッファ制御方法 |
| JP2008512950A (ja) * | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | パケットのキューイング、スケジューリングおよび順序づけ |
| JP2008523729A (ja) * | 2004-12-13 | 2008-07-03 | インテル・コーポレーション | フロー割当て |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013114236A1 (en) * | 2012-01-30 | 2013-08-08 | International Business Machines Corporation | Full exploitation of parallel processors for data processing |
| US8959522B2 (en) | 2012-01-30 | 2015-02-17 | International Business Machines Corporation | Full exploitation of parallel processors for data processing |
| US8959524B2 (en) | 2012-01-30 | 2015-02-17 | International Business Machines Corporation | Full exploitation of parallel processors for data processing |
| US9436511B2 (en) | 2012-01-30 | 2016-09-06 | International Business Machines Corporation | Full exploitation of parallel processors for data processing |
| US9448854B2 (en) | 2012-01-30 | 2016-09-20 | International Business Machines Corporation | Full exploitation of parallel processors for data processing |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2011114477A1 (ja) | 2013-06-27 |
| US20130013892A1 (en) | 2013-01-10 |
| CN102812445A (zh) | 2012-12-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108270676B (zh) | 一种基于Intel DPDK的网络数据处理方法及装置 | |
| WO2019179453A1 (zh) | 虚拟机创建方法及装置 | |
| CN111176761B (zh) | 微服务调用方法和装置 | |
| CN111090699A (zh) | 业务数据的同步方法和装置、存储介质、电子装置 | |
| WO2011114477A1 (ja) | 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム | |
| WO2016112701A9 (zh) | 异构多核可重构计算平台上任务调度的方法和装置 | |
| JP4171910B2 (ja) | 並列処理システム及び並列処理プログラム | |
| CN106161537A (zh) | 远程过程调用的处理方法、装置、系统及电子设备 | |
| CN107666493B (zh) | 一种数据库配置方法及其设备 | |
| CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
| CN118606079B (zh) | 一种基于socket接口的通信方法和系统 | |
| CN116841952A (zh) | 核间通信系统、方法、装置、设备、芯片及可读存储介质 | |
| WO2026077055A1 (zh) | 处理事件的方法、装置、设备、存储介质及程序产品 | |
| CN120856413A (zh) | 一种数据处理方法及相关装置 | |
| WO2013101093A1 (en) | Initialization of multi-core processing system | |
| TWI767427B (zh) | 監控伺服器及其設備資源監控方法 | |
| WO2023093065A1 (zh) | 数据传输方法、计算设备及计算系统 | |
| CN116149872A (zh) | 数据处理系统和数据处理方法 | |
| CN114816796A (zh) | 一种异构多核处理器的核间通信方法和相关装置 | |
| CN117389927B (zh) | 用于汽车开放系统架构的数据处理方法、装置、设备和介质 | |
| CN117632393B (zh) | 资源管控方法、电子设备、存储介质及程序产品 | |
| CN108989586B (zh) | Ivr实现的方法、系统、设备及存储介质 | |
| CN111090503B (zh) | 一种基于fpga芯片的高性价比云计算服务系统 | |
| CN118113448A (zh) | 管理节点、计算节点、任务处理方法和服务器集群 | |
| HK40094528A (zh) | 程序升级方法、装置、计算机设备和存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 201080065421.2 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10847892 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2012505384 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10847892 Country of ref document: EP Kind code of ref document: A1 |