US20190012102A1 - Information processing system, information processing apparatus, and method for controlling information processing system - Google Patents
Information processing system, information processing apparatus, and method for controlling information processing system Download PDFInfo
- Publication number
- US20190012102A1 US20190012102A1 US16/003,164 US201816003164A US2019012102A1 US 20190012102 A1 US20190012102 A1 US 20190012102A1 US 201816003164 A US201816003164 A US 201816003164A US 2019012102 A1 US2019012102 A1 US 2019012102A1
- Authority
- US
- United States
- Prior art keywords
- request
- information processing
- processing apparatus
- memory
- verification
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims description 14
- 230000015654 memory Effects 0.000 claims abstract description 129
- 238000012795 verification Methods 0.000 claims abstract description 90
- 230000004044 response Effects 0.000 claims abstract description 26
- 230000005540 biological transmission Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/17375—One dimensional, e.g. linear array, ring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Definitions
- the embodiments discussed herein are related to an information processing system, an information processing apparatus, and a method for controlling an information processing system.
- a request (write request) to write to a memory is issued.
- an information processing system includes: a processor disposed in one information processing apparatus among a plurality of information processing apparatuses coupled with each other via a ring bus corresponding to a closed-loop bus; and a first memory, wherein the processor: generate a verification request that is used for verification of completion of a write request after issuing the write request to a second memory included in the plurality of information processing apparatuses; transmit the verification request to a subsequent information processing apparatus included in the plurality of information processing apparatuses and subsequent to the one information processing apparatus; transmit, when a request from a preceding information processing apparatus included in the plurality of information processing apparatuses and preceding the one information processing apparatus is not a verification request, the request to the subsequent information processing apparatus; transmit, when the request is a verification request to another information processing apparatus included in the plurality of information processing apparatuses, the verification request and a request to the first memory to the subsequent information processing apparatus in order of receiving; and execute, when the request is a verification request to the one information processing apparatus, processing
- FIG. 1 illustrates an example of an information processing system
- FIG. 2 illustrates an example of a crossbar unit
- FIGS. 3A to 3D illustrate examples of packets
- FIG. 4 illustrates an example of a method for verifying completion of memory write processing
- FIG. 5 illustrates an example of memory write operations
- FIGS. 6A and 6B illustrate an example of operations of an information processing system
- FIG. 7 illustrates an example of processing in the case where it is not ensured that a write request to write to a memory is complete
- FIG. 8 illustrates an example of an information processing system to which a ring bus is applied.
- FIG. 9 illustrates an example of memory write operations in an information processing system.
- FIG. 7 illustrates the case where a central processing unit (CPU) A 701 reads data in a memory 704 that has been written by a CPU B 702 .
- CPU central processing unit
- the CPU B 702 issues, to a memory controller 703 , a write request to write to the memory 704 ( 711 ), and the CPU B 702 writes “memory updated” to its register (REG B). Then, the CPU A 701 issues, to the CPU B 702 , a read request to read the register (REG B) of the CPU B 702 ( 712 ). Having received the read request, the CPU B 702 , upon completion of reading, returns, to the CPU A 701 , the content “memory updated” of the register (REG B) as the read data ( 713 ).
- the CPU A 701 determines that data in the memory 704 has already been updated, and issues, to the memory controller 703 , a read request to read the memory 704 ( 714 ). For example, the read request ( 714 ) from the CPU A 701 arrives at the memory controller 703 before the write request ( 711 ) from the CPU B 702 does.
- the memory controller 703 returns the read data to the CPU A 701 ( 715 )
- the write request from the CPU B 702 has not reached the memory controller 703 , and therefore data in the memory 704 is not updated.
- data that has not been updated in the memory 704 is returned to the CPU A 701 , such that the CPU A 701 is unable to read updated data, which is to be written to the memory 704 by the CPU B 702 .
- FIG. 8 illustrates an information processing system in which a plurality of nodes (information processing apparatuses) 810 are coupled via a ring bus that couples a plurality of nodes in a closed-loop arrangement.
- Each node 810 includes a CPU 811 , a memory 812 , a memory controller 813 , and a crossbar (XB) unit 814 .
- the CPU 811 performs arithmetic processing and issues a request.
- the memory controller 813 writes data (performs data writing) and reads data (performs data reading) to and from the memory 812 in accordance with a received request.
- the crossbar unit (XB) 814 determines the destination of a packet of a request or the like transmitted via the ring bus and controls transmission of the packet.
- the CPU 811 in each node 810 passes through the crossbar unit (XB) 814 when accessing the memory 812 of this node or the CPU 811 or the memory 812 of another node.
- the crossbar units (XB) 814 are coupled together in a ring, and a request issued from some node 810 propagates only in one direction. For example, the request propagates in the direction of nodes A, B, C, D, E, F, G, H, A, . . .
- a request issued from the node A 810 -A passes through all of the crossbar units (XB) 814 -A to 814 -H of nodes A, B, C, D, E, F, G, and H to arrive at the node H 810 -H.
- Requests issued from the same source are transferred in the order in which the requests were issued.
- step S 901 the CPU 811 -A of node A issues a non-posted memory write request to a memory to which data is to be written.
- Step S 901 is repeated until, in step S 902 , the CPU 811 -A of node A determines that the CPU 811 -A of node A has issued the requests to all of the memories to which data is to be written. For example, the CPU 811 -A of node A issues seven non-posted memory write requests 821 to 827 to the memories 812 -B to 812 -H of nodes B to H.
- the non-posted memory write request is a request for which the memory controller 813 that has received the request returns a write completion response to the source from which the request has been issued.
- step S 903 the CPU 811 -A of node A verifies write completion responses to the issued non-posted memory write requests.
- the CPU 811 -A of node A keeps waiting for write completion responses, and if, in step S 904 , it is determined that write completion responses from all of the target memories (seven write completion responses 831 to 837 in this case) have been verified, the CPU 811 -A verifies that memory write processing of memory write requests issued by the CPU 811 -A is complete, and the process then ends.
- the order of requests is guaranteed by making use of the longest time for some request to travel around the ring bus.
- the source from which memory write requests have been issued is to await write completion responses from all of the units to which the memory write requests have been issued.
- the number of write completion responses increases with an increasing number of nodes, and these write completion responses return to the same destination (the source from which requests have been issued), occupying the transmission path to the source.
- the larger the system the longer the time taken to verify completion of memory write processing, which might hinder the transmission of other requests and the like.
- an information processing system may be provided that rapidly ensures that memory write requests are complete and that includes a plurality of information processing apparatuses coupled via a ring bus that is a closed-loop bus.
- FIG. 1 illustrates an example of an information processing system.
- the information processing system includes nodes 10 as a plurality of information processing apparatuses coupled via a ring bus, which couples a plurality of nodes in a closed-loop arrangement.
- FIG. 1 illustrates a configuration in which eight nodes 10 -A to 10 -H are coupled via a ring bus; however, the configuration is not limited to this and the number of nodes coupled via the ring bus is any number more than one.
- Each node 10 includes a CPU 11 , a memory 12 , a memory controller 13 , and a crossbar unit (XB) 14 .
- the CPU 11 , the memory 12 , the memory controller 13 , and the crossbar unit (XB) 14 are illustrated as functional units included in each node 10 for the sake of convenience; however, other functional units may be included.
- the CPU 11 performs arithmetic processing and issues a request.
- the CPU 11 includes a verification register 15 used to verify completion of memory write processing in accordance with a memory write request issued by the CPU 11 itself.
- the memory controller 13 writes data (performs data writing) and reads data (performs data reading) to and from the memory 12 in accordance with a received request.
- the crossbar unit (XB) 14 determines the destination of a packet of a request or the like to be transmitted via the ring bus and controls transmission of the packet.
- the CPU 11 in each node 10 passes through the crossbar unit (XB) 14 when accessing the memory 12 of this node or the CPU 11 or the memory 12 of another node.
- the crossbar units (XB) 14 are coupled together in a ring arrangement, and a request issued from some node 10 propagates in a single direction (only in one direction). For example, the request is assumed to propagate in the direction of nodes A, B, C, D, E, F, G, H, A, . . . but may propagate in a direction opposite to this direction.
- requests issued by the same source are transferred in the order in which the requests were issued, and overtaking of requests will not occur inside the system.
- the CPU 11 is able to issue a request to the verification register 15 of this node in addition to a request to the memory 12 of this node and requests to the CPU 11 and the memory 12 of another node.
- the request to the verification register 15 travels around the ring bus without being ahead of a preceding request to a memory issued by the CPU 11 itself, and returns to this node.
- the CPU 11 issues one request to the verification register 15 , and verifies completion of memory write processing of the memory write requests issued by this CPU 11 itself by using a response of completion of access to the verification register 15 in accordance with the request to the verification register 15 that has traveled around the ring bus.
- FIG. 2 illustrates an example of a configuration of the crossbar unit (XB) 14 .
- the crossbar unit (XB) 14 includes four transfer units 101 , 102 , 103 , and 104 and four arbitrating units 111 , 112 , 113 , and 114 .
- the transfer units 101 to 104 each transfer a packet of a request or the like, based on destination (to which the packet has been issued) information in the packet.
- the transfer units 101 to 104 each transfer a single packet to a single transfer destination but will not transfer the packet to a plurality of transfer destinations.
- the arbitrating units 111 to 114 arbitrate between packets to deliver the packets to the determined delivery destinations.
- the arbitrating units 111 to 114 output packets according to the order in which the packets are stored in their buffers (queues).
- the first transfer unit 101 is a circuit for transferring a packet from the CPU 11 of this node to the memory controller 13 of this node or to another node that is subsequent (next) to the node.
- the first transfer unit 101 transfers a packet to the second arbitrating unit 112 when the packet destination is the memory controller 13 of this node or the verification register 15 of this node, and the first transfer unit 101 transfers a packet to the third arbitrating unit 113 when the destination of the packet is another node.
- the second transfer unit 102 is a circuit for transferring a packet from another node that precedes (immediately precedes) this node to any one of the CPU 11 of this node, the memory controller 13 of this node, and another node that is subsequent to this node.
- the second transfer unit 102 transfers a packet to the first arbitrating unit 111 when the destination of the packet is the CPU 11 of this node or the verification register 15 of this node, the second transfer unit 102 transfers a packet to the second arbitrating unit 112 when the destination of the packet is the memory controller 13 of this node or the verification register 15 of another node, and the second transfer unit 102 transfers a packet to the third arbitrating unit 113 when the destination of the packet is another node.
- the third transfer unit 103 is a circuit for transferring a packet from the memory controller 13 of this node to the CPU 11 of this node or another node that is subsequent to this node.
- the third transfer unit 103 transfers a packet to the first arbitrating unit 111 when the destination of the packet is the CPU 11 of this node, and the third transfer unit 103 transfers a packet to the third arbitrating unit 113 when the destination of the packet is another node.
- the fourth transfer unit 104 is a circuit for transferring a packet from the second arbitrating unit 112 to the memory controller 13 of this node or another node that is subsequent to this node.
- the fourth transfer unit 104 transfers a packet to the memory controller 13 of this node when the destination of the packet is the memory controller 13 of this node, and the fourth transfer unit 104 transfers a packet to the fourth arbitrating unit 114 when the destination of the packet is the verification register 15 of this node or is another node.
- the first arbitrating unit 111 arbitrates between a packet from the memory controller 13 of this node and a packet from another node that precedes this node, these packets being stored in a buffer (queue) of the first arbitrating unit 111 itself, and thus the first arbitrating unit 11 delivers the packets to the CPU 11 of this node.
- the second arbitrating unit 112 arbitrates between a packet from the CPU 11 of this node and a packet from another node that precedes this node, these packets being stored in a buffer (queue) of the second arbitrating unit 112 itself, and thus the second arbitrating unit 112 delivers the packets to the fourth transfer unit 104 .
- the third arbitrating unit 113 arbitrates among a packet from the CPU 11 of this node, a packet from the memory controller 13 of the node, and a packet from another node that precedes the node, these packets being stored in a buffer (queue) of the third arbitrating unit 113 itself, and thus the third arbitrating unit 113 delivers the packets to the fourth arbitrating unit 114 .
- the fourth arbitrating unit 114 arbitrates between a packet from the fourth transfer unit 114 and a packet from the third arbitrating unit 113 , these packets being stored in a buffer (queue) of the fourth arbitrating unit 114 itself, and thus the fourth arbitrating unit 114 delivers the packets to another node that is subsequent to the node.
- FIGS. 3A to 3D illustrate examples of packets that are transmitted.
- Data illustrated in FIG. 3A is transmitted in a first cycle and data illustrated in FIG. 3B is transmitted in a second cycle.
- data illustrated in FIG. 3C is transmitted in the first cycle and data illustrated in FIG. 3D is transmitted in the second cycle.
- a tag field information indicating a packet type is stored. Information in the tag field enables it to be determined whether the header is a write packet header or a read packet header and what number of cycle the information is transmitted in.
- a node-ID field information indicating a node that is the destination of the packet is stored.
- a module-ID field information indicating whether the destination of the packet is a CPU, a memory controller, or a crossbar unit in the node is stored, and in a sub-ID field, information indicating whether the destination of the packet is a verification register or not is stored.
- the transfer units 101 to 104 of the crossbar unit (XB) 14 determine, by using, for example, information in the tag field, that a write packet in the first cycle is provided, determine the destination of the packet from information in the node-ID field, the module-ID field, and the sub-ID field, and transfer the packet.
- information in the data length field information indicating a data length is stored.
- information indicating the address of the access destination is stored, and, in the data field, data related to access is stored.
- FIG. 4 operations of the case where a CPU 11 -A of node A issues a request (write request) to write data to the memories 12 -B to 12 -H of nodes B to H and verifies completion of the memory write processing will be described by way of example.
- FIG. 5 illustrates an example of memory write operations in the information processing system.
- step S 501 the CPU 11 -A of node A issues a posted memory write request to a memory to which data is to be written.
- the processing of step S 501 is repeated until, in step S 502 , the CPU 11 -A of node A determines that requests have been issued for all of the memories to which data is to be written.
- the posted memory write request is a request for which the memory controller 13 that has received the request does not return a write completion response to the source from which the request has been issued.
- step S 503 the CPU 11 -A of node A issues a non-posted register write request to its verification register 15 .
- This register write request which makes a request to access a register in node A, is issued to the outside of node A.
- a register write request to the verification register 15 issued from the CPU 11 -A of node A travels around the ring bus by passing through the second arbitrating unit 112 , which arbitrates between packets (requests) addressed to the memory controller 13 , in the crossbar unit (XB) 14 of each of the nodes B to H, and then the register write request returns to the CPU 11 -A of node A.
- Write access to the verification register 15 is performed in accordance with the register write request that has traveled around the ring bus and has returned to the CPU 11 -A of node A, and, in step S 504 , upon verifying a write completion response from the verification register 15 , the CPU 11 -A of node A completes the operations.
- node A since requests issued from the same source are transferred in order, and overtaking of requests will not occur inside the system, when a register write request to write to the verification register 15 travels around the ring bus and arrives at the original node (node A in this example), all of the memory write requests issued before this register write request have been complete. Accordingly, the CPU 11 -A of node A is able to verify completion of memory write processing of memory write requests issued by the CPU 11 -A itself by verifying a write completion response for a non-posted register write request to write to the verification register 15 , which may rapidly ensure that memory write requests are complete. With light traffic, it may be achieved to rapidly ensure that memory write requests are complete. This may reduce the traffic of transmission paths and may improve the performance of the information processing system.
- step S 601 the CPU 11 of some node is to generate a request.
- this CPU 11 determines, in step S 602 , whether the request to be generated is a request for verifying completion of the memory write access of a request that was issued in the past by the CPU 11 itself.
- step S 603 the CPU 11 generates a non-posted register write request in which the verification register 15 in this CPU 11 is set as the destination, and issues the generated non-posted register write request to the crossbar unit (XB) 14 of this node. If the request to be generated is not a request for verifying completion of the memory write access, in step S 604 , the CPU 11 generates a request whose destination is a unit to which the request is to be issued, and issues the request to the crossbar unit (XB) 14 of this node.
- step S 605 the first transfer unit 101 in the crossbar unit (XB) 14 of this node determines the destination of the packet (request) issued by the CPU 11 of this node. At this point, the first transfer unit 101 in the crossbar unit (XB) 14 determines, in step S 606 , whether the destination of the packet is the verification register 15 of this node.
- step S 606 If the determination result in step S 606 is that the packet destination is not the verification register 15 of this node, in step S 607 , the crossbar unit (XB) 14 of each node is controlled so that a packet is delivered to the designated destination, and thus the packet is delivered to the designated destination. Otherwise, if it is determined that the packet destination is the verification register 15 of this node, in step S 608 , the first transfer unit 101 in the crossbar unit (XB) 14 transfers the packet to the second arbitrating unit 112 .
- step S 609 the second arbitrating unit 112 in the crossbar unit (XB) 14 determines whether the packet transferred in step S 608 is able to be delivered to the fourth transfer unit 104 . As a result, the processing of step S 609 continues until it is determined that the packet is able to be delivered to the fourth transfer unit 104 , and if it is determined that the packet is able to be delivered to the fourth transfer unit 104 , the packet is delivered to the fourth transfer unit 104 .
- step S 610 the fourth transfer unit 104 determines that the destination of a packet (request) is the verification register 15 , in step S 611 , the fourth transfer unit 104 transfers the packet to the fourth arbitrating unit 114 .
- step S 612 the fourth arbitrating unit 114 arbitrates between packets and delivers the packets to the crossbar unit (XB) 14 of the subsequent (next) node.
- the second transfer unit 102 that has received a packet (request) from another node that precedes (immediately precedes) this node determines, in step S 613 , whether the destination of the request is this node. As a result, if the destination is not this node (No in S 614 ), the process returns to step S 606 , and repeats the processing described above.
- step S 614 determines whether the destination of the request is this node, for example, if the request has traveled around the ring bus and has returned to this node.
- the process proceeds to step S 615 , where the second transfer unit 102 transfers the packet to the first arbitrating unit 111 of this node.
- step S 616 the first arbitrating unit 111 arbitrates between packets and delivers the request to the CPU 11 of this node. Then, a response of completion of write access to the verification register 15 is returned to the CPU 11 of this node, and thus the CPU 11 of this node is able to verify completion of the memory write access processing.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
Description
- This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2017-131270, filed on Jul. 4, 2017, the entire contents of which are incorporated herein by reference.
- The embodiments discussed herein are related to an information processing system, an information processing apparatus, and a method for controlling an information processing system.
- In an information processing system including a plurality of information processing apparatuses, a request (write request) to write to a memory is issued.
- Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication No. 2011-128989.
- According to an aspect of the invention, an information processing system includes: a processor disposed in one information processing apparatus among a plurality of information processing apparatuses coupled with each other via a ring bus corresponding to a closed-loop bus; and a first memory, wherein the processor: generate a verification request that is used for verification of completion of a write request after issuing the write request to a second memory included in the plurality of information processing apparatuses; transmit the verification request to a subsequent information processing apparatus included in the plurality of information processing apparatuses and subsequent to the one information processing apparatus; transmit, when a request from a preceding information processing apparatus included in the plurality of information processing apparatuses and preceding the one information processing apparatus is not a verification request, the request to the subsequent information processing apparatus; transmit, when the request is a verification request to another information processing apparatus included in the plurality of information processing apparatuses, the verification request and a request to the first memory to the subsequent information processing apparatus in order of receiving; and execute, when the request is a verification request to the one information processing apparatus, processing in accordance with the verification request and generate a response of completion of the processing.
- The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
- It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
-
FIG. 1 illustrates an example of an information processing system; -
FIG. 2 illustrates an example of a crossbar unit; -
FIGS. 3A to 3D illustrate examples of packets; -
FIG. 4 illustrates an example of a method for verifying completion of memory write processing; -
FIG. 5 illustrates an example of memory write operations; -
FIGS. 6A and 6B illustrate an example of operations of an information processing system; -
FIG. 7 illustrates an example of processing in the case where it is not ensured that a write request to write to a memory is complete; -
FIG. 8 illustrates an example of an information processing system to which a ring bus is applied; and -
FIG. 9 illustrates an example of memory write operations in an information processing system. - For example, in an information processing system including a plurality of information processing apparatuses, in the case where it is not ensured that a request (write request) to write to a memory is complete, as illustrated in
FIG. 7 , access of data before the data is updated by the write request could occur.FIG. 7 illustrates the case where a central processing unit (CPU) A701 reads data in amemory 704 that has been written by a CPU B702. - The CPU B702 issues, to a
memory controller 703, a write request to write to the memory 704 (711), and the CPU B702 writes “memory updated” to its register (REG B). Then, the CPU A701 issues, to the CPU B702, a read request to read the register (REG B) of the CPU B702 (712). Having received the read request, the CPU B702, upon completion of reading, returns, to the CPU A701, the content “memory updated” of the register (REG B) as the read data (713). - Having received the response “memory updated” from the CPU B702, the CPU A701 determines that data in the
memory 704 has already been updated, and issues, to thememory controller 703, a read request to read the memory 704 (714). For example, the read request (714) from the CPU A701 arrives at thememory controller 703 before the write request (711) from the CPU B702 does. - In this case, although, upon completion of reading, the
memory controller 703 returns the read data to the CPU A701 (715), the write request from the CPU B702 has not reached thememory controller 703, and therefore data in thememory 704 is not updated. This results in that, upon completion of reading, data that has not been updated in thememory 704 is returned to the CPU A701, such that the CPU A701 is unable to read updated data, which is to be written to thememory 704 by the CPU B702. - If, in such a way, it is not ensured that a write request to write to a memory is complete, access of data before the data is updated might occur, causing a problem of data integrity. To ensure that a write request to write to a memory is complete, it is sufficient that, for example, completion of memory write processing be verified. For example, in an information processing system illustrated in
FIG. 8 , a method for verifying completion of memory write processing may be provided. -
FIG. 8 illustrates an information processing system in which a plurality of nodes (information processing apparatuses) 810 are coupled via a ring bus that couples a plurality of nodes in a closed-loop arrangement. Eachnode 810 includes aCPU 811, amemory 812, amemory controller 813, and a crossbar (XB)unit 814. TheCPU 811 performs arithmetic processing and issues a request. Thememory controller 813 writes data (performs data writing) and reads data (performs data reading) to and from thememory 812 in accordance with a received request. The crossbar unit (XB) 814 determines the destination of a packet of a request or the like transmitted via the ring bus and controls transmission of the packet. - In the information processing system illustrated in
FIG. 8 , theCPU 811 in eachnode 810 passes through the crossbar unit (XB) 814 when accessing thememory 812 of this node or theCPU 811 or thememory 812 of another node. The crossbar units (XB) 814 are coupled together in a ring, and a request issued from somenode 810 propagates only in one direction. For example, the request propagates in the direction of nodes A, B, C, D, E, F, G, H, A, . . . Accordingly, in the case of issuing a request, for example, from the node A 810-A to the node H 810-H, a request issued from the node A 810-A passes through all of the crossbar units (XB) 814-A to 814-H of nodes A, B, C, D, E, F, G, and H to arrive at the node H 810-H. Requests issued from the same source are transferred in the order in which the requests were issued. - For example, operations executed when the CPU 811-A of node A issues requests (write requests) to write data to the memories 812-B to 812-H of nodes B to H and verifies completion of memory write processing are illustrated in
FIG. 9 . In step S901, the CPU 811-A of node A issues a non-posted memory write request to a memory to which data is to be written. - Step S901 is repeated until, in step S902, the CPU 811-A of node A determines that the CPU 811-A of node A has issued the requests to all of the memories to which data is to be written. For example, the CPU 811-A of node A issues seven non-posted
memory write requests 821 to 827 to the memories 812-B to 812-H of nodes B to H. The non-posted memory write request is a request for which thememory controller 813 that has received the request returns a write completion response to the source from which the request has been issued. - In step S903, the CPU 811-A of node A verifies write completion responses to the issued non-posted memory write requests. The CPU 811-A of node A keeps waiting for write completion responses, and if, in step S904, it is determined that write completion responses from all of the target memories (seven write completion responses 831 to 837 in this case) have been verified, the CPU 811-A verifies that memory write processing of memory write requests issued by the CPU 811-A is complete, and the process then ends.
- For example, in a system in which a plurality of modules are coupled by a ring bus, the order of requests is guaranteed by making use of the longest time for some request to travel around the ring bus.
- In the foregoing method for verifying completion of memory write processing, in order to verify completion of memory write processing, the source from which memory write requests have been issued is to await write completion responses from all of the units to which the memory write requests have been issued. The number of write completion responses increases with an increasing number of nodes, and these write completion responses return to the same destination (the source from which requests have been issued), occupying the transmission path to the source. For example, the larger the system, the longer the time taken to verify completion of memory write processing, which might hinder the transmission of other requests and the like. For example, an information processing system may be provided that rapidly ensures that memory write requests are complete and that includes a plurality of information processing apparatuses coupled via a ring bus that is a closed-loop bus.
-
FIG. 1 illustrates an example of an information processing system. The information processing system includesnodes 10 as a plurality of information processing apparatuses coupled via a ring bus, which couples a plurality of nodes in a closed-loop arrangement.FIG. 1 illustrates a configuration in which eight nodes 10-A to 10-H are coupled via a ring bus; however, the configuration is not limited to this and the number of nodes coupled via the ring bus is any number more than one. - Each
node 10 includes aCPU 11, amemory 12, amemory controller 13, and a crossbar unit (XB) 14. Note that, inFIG. 1 , theCPU 11, thememory 12, thememory controller 13, and the crossbar unit (XB) 14 are illustrated as functional units included in eachnode 10 for the sake of convenience; however, other functional units may be included. - The
CPU 11 performs arithmetic processing and issues a request. TheCPU 11 includes averification register 15 used to verify completion of memory write processing in accordance with a memory write request issued by theCPU 11 itself. Thememory controller 13 writes data (performs data writing) and reads data (performs data reading) to and from thememory 12 in accordance with a received request. The crossbar unit (XB) 14 determines the destination of a packet of a request or the like to be transmitted via the ring bus and controls transmission of the packet. - In the information processing system, the
CPU 11 in eachnode 10 passes through the crossbar unit (XB) 14 when accessing thememory 12 of this node or theCPU 11 or thememory 12 of another node. In addition, the crossbar units (XB) 14 are coupled together in a ring arrangement, and a request issued from somenode 10 propagates in a single direction (only in one direction). For example, the request is assumed to propagate in the direction of nodes A, B, C, D, E, F, G, H, A, . . . but may propagate in a direction opposite to this direction. In addition, requests issued by the same source are transferred in the order in which the requests were issued, and overtaking of requests will not occur inside the system. - The
CPU 11 is able to issue a request to theverification register 15 of this node in addition to a request to thememory 12 of this node and requests to theCPU 11 and thememory 12 of another node. The request to theverification register 15 travels around the ring bus without being ahead of a preceding request to a memory issued by theCPU 11 itself, and returns to this node. After issuing one or more memory write requests, theCPU 11 issues one request to theverification register 15, and verifies completion of memory write processing of the memory write requests issued by thisCPU 11 itself by using a response of completion of access to theverification register 15 in accordance with the request to theverification register 15 that has traveled around the ring bus. -
FIG. 2 illustrates an example of a configuration of the crossbar unit (XB) 14. The crossbar unit (XB) 14 includes fourtransfer units units units 111 to 114 arbitrate between packets to deliver the packets to the determined delivery destinations. The arbitratingunits 111 to 114 output packets according to the order in which the packets are stored in their buffers (queues). - The first transfer unit 101 is a circuit for transferring a packet from the
CPU 11 of this node to thememory controller 13 of this node or to another node that is subsequent (next) to the node. The first transfer unit 101 transfers a packet to thesecond arbitrating unit 112 when the packet destination is thememory controller 13 of this node or theverification register 15 of this node, and the first transfer unit 101 transfers a packet to thethird arbitrating unit 113 when the destination of the packet is another node. - The
second transfer unit 102 is a circuit for transferring a packet from another node that precedes (immediately precedes) this node to any one of theCPU 11 of this node, thememory controller 13 of this node, and another node that is subsequent to this node. Thesecond transfer unit 102 transfers a packet to thefirst arbitrating unit 111 when the destination of the packet is theCPU 11 of this node or theverification register 15 of this node, thesecond transfer unit 102 transfers a packet to thesecond arbitrating unit 112 when the destination of the packet is thememory controller 13 of this node or theverification register 15 of another node, and thesecond transfer unit 102 transfers a packet to thethird arbitrating unit 113 when the destination of the packet is another node. - The
third transfer unit 103 is a circuit for transferring a packet from thememory controller 13 of this node to theCPU 11 of this node or another node that is subsequent to this node. Thethird transfer unit 103 transfers a packet to thefirst arbitrating unit 111 when the destination of the packet is theCPU 11 of this node, and thethird transfer unit 103 transfers a packet to thethird arbitrating unit 113 when the destination of the packet is another node. - The
fourth transfer unit 104 is a circuit for transferring a packet from thesecond arbitrating unit 112 to thememory controller 13 of this node or another node that is subsequent to this node. Thefourth transfer unit 104 transfers a packet to thememory controller 13 of this node when the destination of the packet is thememory controller 13 of this node, and thefourth transfer unit 104 transfers a packet to thefourth arbitrating unit 114 when the destination of the packet is theverification register 15 of this node or is another node. - The
first arbitrating unit 111 arbitrates between a packet from thememory controller 13 of this node and a packet from another node that precedes this node, these packets being stored in a buffer (queue) of thefirst arbitrating unit 111 itself, and thus thefirst arbitrating unit 11 delivers the packets to theCPU 11 of this node. Thesecond arbitrating unit 112 arbitrates between a packet from theCPU 11 of this node and a packet from another node that precedes this node, these packets being stored in a buffer (queue) of thesecond arbitrating unit 112 itself, and thus thesecond arbitrating unit 112 delivers the packets to thefourth transfer unit 104. - The
third arbitrating unit 113 arbitrates among a packet from theCPU 11 of this node, a packet from thememory controller 13 of the node, and a packet from another node that precedes the node, these packets being stored in a buffer (queue) of thethird arbitrating unit 113 itself, and thus thethird arbitrating unit 113 delivers the packets to thefourth arbitrating unit 114. Thefourth arbitrating unit 114 arbitrates between a packet from thefourth transfer unit 114 and a packet from thethird arbitrating unit 113, these packets being stored in a buffer (queue) of thefourth arbitrating unit 114 itself, and thus thefourth arbitrating unit 114 delivers the packets to another node that is subsequent to the node. -
FIGS. 3A to 3D illustrate examples of packets that are transmitted. Data illustrated inFIG. 3A is transmitted in a first cycle and data illustrated inFIG. 3B is transmitted in a second cycle. In addition, data illustrated inFIG. 3C is transmitted in the first cycle and data illustrated inFIG. 3D is transmitted in the second cycle. - In a tag field, information indicating a packet type is stored. Information in the tag field enables it to be determined whether the header is a write packet header or a read packet header and what number of cycle the information is transmitted in. In a node-ID field, information indicating a node that is the destination of the packet is stored. In a module-ID field, information indicating whether the destination of the packet is a CPU, a memory controller, or a crossbar unit in the node is stored, and in a sub-ID field, information indicating whether the destination of the packet is a verification register or not is stored.
- The transfer units 101 to 104 of the crossbar unit (XB) 14 determine, by using, for example, information in the tag field, that a write packet in the first cycle is provided, determine the destination of the packet from information in the node-ID field, the module-ID field, and the sub-ID field, and transfer the packet. In the data length field, information indicating a data length is stored. In the address field, information indicating the address of the access destination is stored, and, in the data field, data related to access is stored.
- Hereinafter, as illustrated in
FIG. 4 , operations of the case where a CPU 11-A of node A issues a request (write request) to write data to the memories 12-B to 12-H of nodes B to H and verifies completion of the memory write processing will be described by way of example.FIG. 5 illustrates an example of memory write operations in the information processing system. - In step S501, the CPU 11-A of node A issues a posted memory write request to a memory to which data is to be written. The processing of step S501 is repeated until, in step S502, the CPU 11-A of node A determines that requests have been issued for all of the memories to which data is to be written.
- For example, seven posted memory write requests (401 to 407 illustrated in
FIG. 4 ) to write to the memories 12-B to 12-H of nodes B to H are issued. Note that the posted memory write request is a request for which thememory controller 13 that has received the request does not return a write completion response to the source from which the request has been issued. - After issuing memory write requests to all of the target memories, in step S503, the CPU 11-A of node A issues a non-posted register write request to its
verification register 15. This register write request, which makes a request to access a register in node A, is issued to the outside of node A. - A register write request to the
verification register 15 issued from the CPU 11-A of node A travels around the ring bus by passing through thesecond arbitrating unit 112, which arbitrates between packets (requests) addressed to thememory controller 13, in the crossbar unit (XB) 14 of each of the nodes B to H, and then the register write request returns to the CPU 11-A of node A. Write access to theverification register 15 is performed in accordance with the register write request that has traveled around the ring bus and has returned to the CPU 11-A of node A, and, in step S504, upon verifying a write completion response from theverification register 15, the CPU 11-A of node A completes the operations. - For example, since requests issued from the same source are transferred in order, and overtaking of requests will not occur inside the system, when a register write request to write to the
verification register 15 travels around the ring bus and arrives at the original node (node A in this example), all of the memory write requests issued before this register write request have been complete. Accordingly, the CPU 11-A of node A is able to verify completion of memory write processing of memory write requests issued by the CPU 11-A itself by verifying a write completion response for a non-posted register write request to write to theverification register 15, which may rapidly ensure that memory write requests are complete. With light traffic, it may be achieved to rapidly ensure that memory write requests are complete. This may reduce the traffic of transmission paths and may improve the performance of the information processing system. - With reference to
FIGS. 6A and 6B , operations of the crossbar unit (XB) 14 and the like in the information processing system will be described. In step S601, theCPU 11 of some node is to generate a request. At this point, thisCPU 11 determines, in step S602, whether the request to be generated is a request for verifying completion of the memory write access of a request that was issued in the past by theCPU 11 itself. - If the determination result is that the request to be generated is a request for verifying completion of the memory write access, in step S603, the
CPU 11 generates a non-posted register write request in which theverification register 15 in thisCPU 11 is set as the destination, and issues the generated non-posted register write request to the crossbar unit (XB) 14 of this node. If the request to be generated is not a request for verifying completion of the memory write access, in step S604, theCPU 11 generates a request whose destination is a unit to which the request is to be issued, and issues the request to the crossbar unit (XB) 14 of this node. - In step S605, the first transfer unit 101 in the crossbar unit (XB) 14 of this node determines the destination of the packet (request) issued by the
CPU 11 of this node. At this point, the first transfer unit 101 in the crossbar unit (XB) 14 determines, in step S606, whether the destination of the packet is theverification register 15 of this node. - If the determination result in step S606 is that the packet destination is not the
verification register 15 of this node, in step S607, the crossbar unit (XB) 14 of each node is controlled so that a packet is delivered to the designated destination, and thus the packet is delivered to the designated destination. Otherwise, if it is determined that the packet destination is theverification register 15 of this node, in step S608, the first transfer unit 101 in the crossbar unit (XB) 14 transfers the packet to thesecond arbitrating unit 112. - In step S609, the
second arbitrating unit 112 in the crossbar unit (XB) 14 determines whether the packet transferred in step S608 is able to be delivered to thefourth transfer unit 104. As a result, the processing of step S609 continues until it is determined that the packet is able to be delivered to thefourth transfer unit 104, and if it is determined that the packet is able to be delivered to thefourth transfer unit 104, the packet is delivered to thefourth transfer unit 104. - If, in step S610, the
fourth transfer unit 104 determines that the destination of a packet (request) is theverification register 15, in step S611, thefourth transfer unit 104 transfers the packet to thefourth arbitrating unit 114. In step S612, thefourth arbitrating unit 114 arbitrates between packets and delivers the packets to the crossbar unit (XB) 14 of the subsequent (next) node. - The
second transfer unit 102 that has received a packet (request) from another node that precedes (immediately precedes) this node determines, in step S613, whether the destination of the request is this node. As a result, if the destination is not this node (No in S614), the process returns to step S606, and repeats the processing described above. - Otherwise, if the determination result in step S614 is that the destination of the request is this node, for example, if the request has traveled around the ring bus and has returned to this node, the process proceeds to step S615, where the
second transfer unit 102 transfers the packet to thefirst arbitrating unit 111 of this node. In this node, in step S616, thefirst arbitrating unit 111 arbitrates between packets and delivers the request to theCPU 11 of this node. Then, a response of completion of write access to theverification register 15 is returned to theCPU 11 of this node, and thus theCPU 11 of this node is able to verify completion of the memory write access processing. - In the example described above, by using a response of completion of a register write request to write to the
verification register 15 included in theCPU 11, completion of memory access processing the requests for which have been issued ahead of the register write request is verified. However, the present disclosure is not limited to this and it is sufficient that a completion response from theverification register 15 be provided, and therefore a non-posted register read request to read theverification register 15 may be issued and, by using its completion response, completion of memory access processing may be verified. Similar effects may be obtained by, instead of using completion of access to theverification register 15, issuing a request to access a memory for verifying a notification of a completion response after issuing a memory write request to write data. - All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Claims (15)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-131270 | 2017-07-04 | ||
JP2017131270A JP6853479B2 (en) | 2017-07-04 | 2017-07-04 | Information processing system, information processing device, and control method of information processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190012102A1 true US20190012102A1 (en) | 2019-01-10 |
US10599347B2 US10599347B2 (en) | 2020-03-24 |
Family
ID=64903208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/003,164 Active 2038-08-10 US10599347B2 (en) | 2017-07-04 | 2018-06-08 | Information processing system, information processing apparatus, and method for controlling information processing system |
Country Status (2)
Country | Link |
---|---|
US (1) | US10599347B2 (en) |
JP (1) | JP6853479B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2596102A (en) * | 2020-06-17 | 2021-12-22 | Graphcore Ltd | Processing device comprising control bus |
US11520941B2 (en) | 2020-06-17 | 2022-12-06 | Graphcore Limited | Dual level management |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7358878B2 (en) * | 2019-09-25 | 2023-10-11 | 日本電気株式会社 | Data transfer system, data transfer method, and data transfer program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155858A (en) * | 1988-10-27 | 1992-10-13 | At&T Bell Laboratories | Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold |
US7206922B1 (en) * | 2003-12-30 | 2007-04-17 | Cisco Systems, Inc. | Instruction memory hierarchy for an embedded processor |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3740483B2 (en) * | 2002-10-18 | 2006-02-01 | キヤノン株式会社 | Electronic device and method for diagnosing abnormality thereof |
JP2007148753A (en) * | 2005-11-28 | 2007-06-14 | Seiko Epson Corp | Multiprocessor system |
JP4469010B2 (en) * | 2006-03-10 | 2010-05-26 | ソニー株式会社 | Bridge, information processing system, and access control method |
JP2008066971A (en) * | 2006-09-06 | 2008-03-21 | Olympus Corp | Data processor |
JP5414506B2 (en) | 2009-12-18 | 2014-02-12 | キヤノン株式会社 | Data processing apparatus, data processing method, and program |
JP6471021B2 (en) * | 2015-03-30 | 2019-02-13 | 本田技研工業株式会社 | Communications system |
-
2017
- 2017-07-04 JP JP2017131270A patent/JP6853479B2/en active Active
-
2018
- 2018-06-08 US US16/003,164 patent/US10599347B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155858A (en) * | 1988-10-27 | 1992-10-13 | At&T Bell Laboratories | Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold |
US7206922B1 (en) * | 2003-12-30 | 2007-04-17 | Cisco Systems, Inc. | Instruction memory hierarchy for an embedded processor |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2596102A (en) * | 2020-06-17 | 2021-12-22 | Graphcore Ltd | Processing device comprising control bus |
GB2596102B (en) * | 2020-06-17 | 2022-06-29 | Graphcore Ltd | Processing device comprising control bus |
US11520941B2 (en) | 2020-06-17 | 2022-12-06 | Graphcore Limited | Dual level management |
US11681642B2 (en) | 2020-06-17 | 2023-06-20 | Graphcore Limited | Processing device comprising control bus |
Also Published As
Publication number | Publication date |
---|---|
JP2019016054A (en) | 2019-01-31 |
JP6853479B2 (en) | 2021-03-31 |
US10599347B2 (en) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102167058B1 (en) | Sending Data Off-Chip | |
US8718065B2 (en) | Transmission using multiple physical interface | |
US20060047849A1 (en) | Apparatus and method for packet coalescing within interconnection network routers | |
US20020013868A1 (en) | Load/store micropacket handling system | |
US10409746B2 (en) | Memory access control device and control method of memory access | |
US10599347B2 (en) | Information processing system, information processing apparatus, and method for controlling information processing system | |
US9755997B2 (en) | Efficient peer-to-peer communication support in SoC fabrics | |
WO2017084331A1 (en) | Data processing apparatus and method for interconnection circuit | |
US20190146935A1 (en) | Data transfer device, arithmetic processing device, and data transfer method | |
US20130007378A1 (en) | Mechanisms for efficient intra-die/intra-chip collective messaging | |
US20140359195A1 (en) | Crossbar switch, information processing apparatus, and information processing apparatus control method | |
US6754751B1 (en) | Method and apparatus for handling ordered transactions | |
CN106021141A (en) | Semiconductor device | |
CN111917815B (en) | Devices that support both in-order and out-of-order transaction classes | |
CN108768778B (en) | Network delay calculation method, device, equipment and storage medium | |
JP4687925B2 (en) | Priority arbitration system and priority arbitration method | |
JP6290761B2 (en) | Data transfer control system, data transfer control method, and data transfer control program | |
WO2010110289A1 (en) | Router apparatus, semiconductor integrated circuit device, routing method, and program | |
JP2010103648A (en) | Gateway device and gateway method | |
JP2004086798A (en) | Multiprocessor system | |
JP3925105B2 (en) | Multiprocessor system | |
WO2020087248A1 (en) | Multi-core chip data bus wiring structure and method for transmitting data | |
US7363412B1 (en) | Interrupting a microprocessor after a data transmission is complete | |
US20240143891A1 (en) | Multi-path routing in a network on chip | |
US12093754B2 (en) | Processor, information processing apparatus, and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KAWAHARA, JUN;HIGETA, MASANORI;SIGNING DATES FROM 20180523 TO 20180528;REEL/FRAME:046025/0934 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: FSAS TECHNOLOGIES INC., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU LIMITED;REEL/FRAME:069272/0546 Effective date: 20240904 |