WO2004107180A1 - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
WO2004107180A1
WO2004107180A1 PCT/JP2003/006868 JP0306868W WO2004107180A1 WO 2004107180 A1 WO2004107180 A1 WO 2004107180A1 JP 0306868 W JP0306868 W JP 0306868W WO 2004107180 A1 WO2004107180 A1 WO 2004107180A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processor
update
shared memory
address
Prior art date
Application number
PCT/JP2003/006868
Other languages
English (en)
French (fr)
Inventor
Takeshi Shimada
Tatsuru Nakagaki
Akihiro Kobayashi
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2003/006868 priority Critical patent/WO2004107180A1/ja
Priority to JP2005500234A priority patent/JP3764893B2/ja
Publication of WO2004107180A1 publication Critical patent/WO2004107180A1/ja
Priority to US11/285,184 priority patent/US7320056B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Definitions

  • the present invention relates to a shared memory multiprocessor system in which a plurality of processors are connected and a shared memory space shared by the processors is arranged, and in particular, a processor provided with a shared memory cache that caches data in the shared memory space.
  • the present invention relates to a system configured by a computer. Software processing is performed by each processor, and the shared memory is used as a place to store information to be managed in a system unit rather than a single processor, in which data is transferred between processors. used. Shared memory caches are introduced to speed up access to shared memory and improve system performance. Background art
  • FIG. 1 is a diagram showing a conventional example of the simplest shared memory type multiprocessor system.
  • processors and shared memory are connected by the same global bus, and each processor accesses the shared memory via this global path.
  • Each of the port processors (1a-1) to (1a-n) sends bus request signals (1c-1) to (1c-1n) to the arbiter (lb), and the arbiter uses the right to use.
  • the arbiter uses the right to use.
  • only one processor is given the right to use the global bus (1e), and bus enable signals (Id-1) to (Id-n) are sent to that processor. .
  • the processor that has received the bus permission signal accesses the shared memory (1 f) via the global bus and receives desired data. In the realization method of Fig. 1, all access to the shared memory space is via the global bus regardless of the type of read or write.
  • the former is caused by the fact that high-speed signal transmission becomes difficult due to electrical conditions such as a longer signal transmission distance in a global bus and the fact that multiple processors share the same signal line.
  • the latter means that if two or more processors access the shared memory at the same time, the second and subsequent processors will have to wait for access to the shared memory due to arbitration of the global bus usage right. Due to that. Consequently, these constraints create the following problems in accessing shared memory space:
  • Figure 2 shows a conventional example in which a shared memory cache (2h) is placed on each processor.
  • each processor can individually hold a copy of the data in the shared memory space. It must look the same for all processors. Therefore, for write processing that triggers data update, it is essential to consider coherency control that guarantees this. Although the reason will be described later, this coherency control also becomes a barrier in solving the above problem.
  • FIG. 3 is a diagram illustrating coherency control.
  • Figure 3 explains the meaning of the above requirement.
  • processor 1 writes the value 1 to the address, and then processor 2 It is assumed that the value 2 is written and the other processors 3 to n read the address.
  • requirement 1 is equivalent to eliminating the possibility of reading in the order of, for example, value 2 ⁇ value 1 on each processor (guarantee of 1 ⁇ 0)
  • requirement 2 is equivalent to For example, this is equivalent to eliminating the possibility that a processor that has already read the value 1 but subsequently reads the value 0 may occur (guarantee of t 20 ).
  • Requirement 3 also allows both the time when another processor still reads the data before the update and the time before the updated data can be read from the time of the data update. Equivalent to making it as short as possible (minimizing t 2 and t 3 ). Requirement 3 is not an essential requirement for coherency control, but is required to improve system performance.
  • An example of coherency control in Fig. 2 is that every time a processor writes to a shared memory space, it is reflected in its own shared memory cache, and at the same time, is written to the shared memory via the global bus. Is gro There is a method of monitoring a write access appearing on one global bus and replacing the data with data on a global bus when the data at the address is present in each shared memory cache.
  • FIG. 4 is a diagram illustrating an example of how to establish cache coherency.
  • FIG. 4 is an example of a processing sequence based on the above method.
  • the timings (4a) to (4f) correspond to the following events, respectively.
  • t dmw Time required for the processor Z shared memory to recognize the write access on the global bus and reflect the data to itself.
  • the expression (1) is a condition for satisfying the above requirement 1, and after the write value is reflected on the shared memory and the shared memory cache on all the processors, the gross is calculated. This guarantees that one bus is released (generally, a sequence in which a write process completion response is sent from the writer, and the bus is released with this message is often used). By satisfying the conditions, it is guaranteed that the previous write processing has been completed when the next processor starts write processing due to arbitration of the right to use the global bus.
  • requirement 1 is essentially the same as requiring data update arbitration. This is because guaranteeing the ordering of data updates is equivalent to ensuring that multiple data updates do not occur at the same time, that is, performing arbitration. Accordingly, satisfying the requirement 1 of the coherency control is similarly affected by the constraint 2 occurring in using the global bus, and is a barrier in solving the problem.
  • the equation (2) is a condition for satisfying the above requirement 2 by absorbing the fact that the timing of (4d) in FIG.
  • the timing of (4d) is that when a read access that conflicts with a write access that appears on the global bus is activated on each processor, the data before the update is returned to the processor core, or the data after the update is returned. Is the timing at which the boundary is returned. Since the updated data is returned at the timing of (4e), if the expression (2) is not satisfied, this timing may be reversed depending on the processor, which is contrary to the above requirement.
  • equation (1) indicates that the bus occupation time must be longer than a certain value, that is, it imposes restrictions on the bandwidth of the shared memory space
  • equation (2) indicates that the shared memory cache This shows that even if an attempt is made to increase the bandwidth by shortening the writing time to the shared memory, the (4d) timing must be kept above a certain level in consideration of the (4d) timing variation between processors.
  • conditions are set for various operation timings, When trying to improve performance by shortening the period, coherency control itself creates a kind of restriction.
  • Patent Document 1 discloses a conventional technique for obtaining coherency between caches.
  • the processor module has a cache memory, and issues a coherency transaction to another processor module via a bus.
  • the processor module receiving the coherency 'transaction performs a coherency check.
  • data to be used for the update is sent via a bus.
  • a signal line connecting the processor module and the main memory is used for reporting the result of the coherency check.
  • Patent Document 1 is a diagrammatic representation of Patent Document 1
  • the object of the present invention is to solve the above-mentioned problems and improve the bandwidth and latency of the shared memory space while minimizing the performance reduction factors due to the various restrictions including the coherency control as described above.
  • the aim is to provide a multiprocessor system as shown.
  • the multiprocessor system of the present invention is a multiprocessor system in which a plurality of processors each having a shared memory cache and at least one shared memory are mutually coupled.
  • Dedicated line means for transmitting / receiving data between the processor and the shared memory exclusively; and global bus means for transmitting a data update notification while arbitrating the right to transmit the update notification to each processor.
  • the processor sends the data update notification from the processor and the data to be used for updating independently, and In the processor and the shared memory, the access to the address indicated by the update notification is restricted by the reception of the update notification, and the data to be used for the update arrived at each processor and the shared memory is used in the shared memory area. After the address data is updated, access to the address is permitted.
  • the transmission and reception of the update data is speeded up by providing the dedicated line means for transmitting and receiving the update data.
  • the global bus means arbitrates and transfers only update notifications with a small amount of data, so that there is less waiting for a long time to acquire the right to use the bus.
  • each processor and the shared memory update the shared memory area with the update data according to the update notification, coherency between the shared memory cache and the shared memory is secured.
  • FIG. 1 is a diagram showing a conventional example of the simplest shared memory type multiprocessor system.
  • FIG. 2 is a diagram showing a conventional example in which a shared memory cache (2h) is arranged on each processor.
  • FIG. 3 is a diagram illustrating coherency control.
  • FIG. 4 is a diagram illustrating an example of how to establish cache coherency.
  • FIG. 5 is a configuration diagram of a system based on the embodiment of the present invention.
  • FIG. 6 is an example of a time chart based on a series of processes of the first mode in the embodiment of the present invention.
  • FIG. 7 is an example of a time chart of a process based on the second mode of the embodiment of the present invention.
  • FIG. 8 is an example of a time chart when data is updated with different data sizes.
  • FIG. 9 is an example of a time chart of the process based on the third aspect of the embodiment of the present invention.
  • FIG. 10 is an example of a time chart based on the principle of the fourth mode of the embodiment of the present invention.
  • FIG. 11 and FIG. 12 are a configuration diagram of a system according to a fifth aspect of the embodiment of the present invention and a time chart illustrating a control principle thereof.
  • FIG. 13 is a diagram illustrating a sixth aspect of the embodiment of the present invention.
  • FIG. 14 is a more specific system configuration diagram based on the embodiment of the present invention.
  • FIG. 15 is an internal configuration diagram of each of the processors (14a-1) to (14a-10) in FIG.
  • FIG. 16 is a diagram showing a signal flow at the time of write access of the first mode in the embodiment of the present invention.
  • FIG. 17 is a diagram showing a signal flow at the time of receiving update data based on the first mode of the embodiment of the present invention.
  • FIG. 18 is a diagram showing a signal flow at the time of typical read access in which data of the shared memory cache can be used in the first mode of the embodiment of the present invention.
  • FIG. 19 is a diagram showing a signal flow in the case where data in the shared memory cache cannot be used in the read access according to the first mode of the embodiment of the present invention and an update data request process is involved.
  • FIG. 20 is a diagram showing a signal flow when the master processor responds to an update data request transmitted from another processor in the first mode of the embodiment of the present invention.
  • FIG. 21 is a diagram showing a signal flow at the time of write access in the second mode of the embodiment of the present invention.
  • FIG. 22 is a diagram illustrating a second aspect of the embodiment of the present invention.
  • FIG. 7 is a diagram showing a signal flow at the time of receiving updated data.
  • FIG. 23 is a diagram showing a signal flow at the time of a write access in which the update notification is omitted in the third mode of the embodiment of the present invention.
  • FIG. 24 is a diagram showing a signal flow at the time of receiving update data without an update notification transmitted from another processor in the third mode of the embodiment of the present invention.
  • FIG. 25 is a diagram showing a signal flow when a processor added to the system issues an all data transmission request in the cache fill operation according to the second mode of the embodiment of the present invention.
  • FIG. 26 is a diagram showing a signal flow when the master processor performs all data transmission in response to the all data transmission request in the cache fill operation in the fourth mode of the embodiment of the present invention.
  • FIG. 27 is a diagram showing a signal flow when a processor added to the system performs all data reception in the cache fill operation according to the fourth mode of the embodiment of the present invention.
  • FIG. 28 is a diagram showing a signal flow at the time of write access based on the fifth aspect of the embodiment of the present invention.
  • FIG. 5 is a configuration diagram of a system based on the embodiment of the present invention.
  • FIG. 5 a portion corresponding to the global bus in the conventional example is used as an update notification bus (5e) as a path exclusively for data update notification and update data transmission request.
  • the contents of the update data are transmitted to and received from the repeater (5h) using the data channel (5g).
  • the data channel uses a known high-speed broadband transmission means (for example, Gigabit Ethernet).
  • Livita (5 h) has the function of broadcasting data appearing at each port to which the data channel is connected to all ports.
  • the shared memory may be allocated on a specific processor, or as in the example in Japanese Patent Application No. 2002-1256, the size of the shared memory space may be different. In the case where a shared memory cache equal to is provided, the shared memory itself need not be provided. In any case, the effect as the embodiment of the present invention can be obtained.
  • each processor acquires the update notification bus and sends the address to be updated to the update notification bus.
  • update data is sent to the transmission buffer of the data channel.
  • the update data mainly receives signal processing delays at the ports of the processors and repeaters, and arrives at other processors with a delay from the update notification.
  • the update notification bus is constantly monitored by all processors, and when an update notification is detected, the address is written to an update queue on the processor. Then, when update data arrives, it writes it to the shared memory cache and deletes the address from the update queue.
  • the read processing from the processor core is started for the address existing in the update queue, the read from the shared memory cache is suspended, and when the update data arrives, the read processing is performed together with the write processing to the shared memory cache. A process of returning data to the processor core is performed.
  • all the addresses stored in the update queue are to be monitored, and the address of the write destination is added to the update data.
  • each processor compares the address in the update queue with the address added to the update data, and writes the update data to an appropriate address in the shared memory cache.
  • the configuration of the shared memory is basically the same as the configuration of the processor, the shared memory has no processor core, and the shared memory cache is a shared memory chip with a larger capacity.
  • an update data transmission request is issued to the update notification bus, and the shared memory or other valid data is retained in the shared memory cache. This is done by the processor sending out updated data.
  • FIG. 6 is an example of a time chart based on a series of processes of the first mode in the embodiment of the present invention. '
  • processor 1 writes data 1 to address 1, followed by processor 2 writes data 2 to address 2, and in parallel, processor 3 shares address 1, address 0, and address 1 in that order.
  • processor 3 shares address 1, address 0, and address 1 in that order.
  • A means address
  • D means data
  • notation such as (1) -0 indicates writing of data 0 to address 1
  • notation 1- (0) indicates the address from address 0. It means the read of data 1 respectively.
  • the update queue is empty, so the read is performed from the shared memory cache, and data 0 is returned to the processor core.
  • the update notification from the processor 1 is detected, and is input to the update queue of the processor 3.
  • the update queue is not empty, but only address 1 is on the update queue, and there is no match with the read address. Processing returns data 0 to the processor core.
  • processor 1 updates the address 1 When the data arrives, data 1 is written to the shared memory cache of processor 3 and the update queue is cleared. At the same time, the data is returned to the processor core as read data of address 1.
  • the main advantages of this method are the following two points.
  • One is that the processor that updates the data can reduce the bus occupation time because it does not have to wait for the other processor to reflect it in the shared memory cache, thereby improving the bandwidth of the shared memory space. is there.
  • the other is that the average latency of read access can be reduced by eliminating unnecessary wait time for read access that does not compete with data update processing.
  • the degree of improvement over the conventional example varies depending on the hit ratio of the shared memory cache and the probability of occurrence of access contention. In particular, the higher the hit ratio and the lower the probability of contention, the superiority of this method Becomes noticeable.
  • the principle of the first mode of the embodiment of the present invention is to further increase the bandwidth of the shared memory space by blocking the data update unit in the first mode.
  • the bandwidth of the data channel or shared memory cache can be much larger than that of the update notification bus. Therefore, the bandwidth of the shared memory space is limited by the bandwidth of the update notification bus, and the bandwidth of the data channel and the shared memory cache may not be fully utilized.
  • FIG. 7 is an example of a time chart of the process based on the second mode of the embodiment of the present invention.
  • data is updated in units of four addresses.
  • the update notification sent by the processors 1 and 2 is performed by indicating the start of the address to be updated, and the update data of the corresponding address is transmitted collectively on the data channel.
  • the update data size is made variable so that only necessary and sufficient data is transmitted to the data channel.
  • FIG. 8 is an example of a time chart when data is updated with different data sizes.
  • the only difference is that the first write of processor 1 in the example of FIG. This difference reduces the occupation time of the data channel and the shared memory cache by the time required to collect data for two addresses as a whole. Also, the update data corresponding to the write processing of the processor 2 arrives earlier by that time, and the time until the contents of the update queue are cleared is shortened. Can be reduced.
  • the method according to the second embodiment not only improves the bandwidth, but also serves as a means for providing exclusive update in block units on the shared memory space. In this regard, it can be expected that the software processing will be more efficient and the processing capacity of the system will be improved. To achieve the same with software, extra processing is required to manage the start and completion of the update.
  • the principle of the third aspect of the embodiment of the present invention is to enable the processor to select the attribute of coherency control necessity for each write access, and to notify the update of the write access in which the attribute not requiring coherency control is specified. Is issued, and only the update data is sent to other processors.
  • software-to-air processing there is also a use of shared memory space where coherency guarantee is not required.For such processing, software uses this control to reduce the frequency of using the update notification bus and share it. Improves the bandwidth of the memory space, shortens the time that updated data is reflected on other processors, and reduces unnecessary access contention. It is intended to reduce the average latency of read access by minimizing the increase in latency due to the occurrence of latency.
  • FIG. 9 is an example of a time chart of the process based on the third mode of the embodiment of the present invention.
  • the access pattern of the processor in this example is based on the example in FIG. 6, and the only difference is that the first write of the processor 1 has an attribute that does not require coherency control. Since the processing on the update notification bus accompanying the first write of processor 1 is not activated, the occupation time of the update notification bus is reduced by the time required. In addition, the update notification associated with the second write access by the processor 2 is sent to the update notification bus earlier, so that the update time can be reduced. Processor 3's third read is issued after processor 1's write, but since it has not been placed in the update queue by this control, there is no queuing due to contention, and read with the same latency as normal Access has been completed.
  • the principle of the fourth aspect of the embodiment of the present invention is that when a processor is added online, the processor or the shared memory that holds all the data in the shared memory space transfers the data in the shared memory space that the processor itself has to the data channel.
  • the idle time is used to transfer data to the additional processor, and the additional processor receives the data and initializes the shared memory cache.
  • FIG. 10 is an example of a time chart based on the principle of the fourth mode of the embodiment of the present invention.
  • a to h are transfers based on normal data update processing
  • 1 to 8 are data transfers to the additional processor performed by this method.
  • the built-in processor can use other methods to indicate that it has been newly installed in the system, such as by sending a specific signal to the update notification bus or by using a dedicated signal line that indicates that it is not installed. Notify the mouth processor.
  • the processor or shared memory that sends data to the additional processor receives the notification, and sends the update data to the data channel when its own update queue is empty, as shown in Figure 10. If the update queue is no longer empty, immediately suspend data transmission and give priority to normal processing, and resume data transmission when the update queue becomes empty.
  • FIG. 11 and FIG. 12 are a configuration diagram of a system according to a fifth aspect of the embodiment of the present invention and a time chart illustrating a control principle thereof.
  • the principle of the control according to the fifth aspect is that the same method as in the past can be selectively used for write processing to a specific address with a high contention frequency. Is going to be.
  • a data bus (11i) for transferring update data is provided and the same arbitration as the update notification bus
  • the processor selects whether to use the data bus for each write access.
  • FIG. 13 is a diagram illustrating a sixth aspect of the embodiment of the present invention. 'FIG. 13 (a) is a time chart of the control in the sixth mode.
  • the control principle in the fifth mode is applied as it is to the system configuration in the first to fourth modes, and physical transfer of update data is not performed for a specific write access.
  • the data is updated first.
  • the address in the shared memory space and the data to be written are associated in advance with a specific address generated by the processor core, and when a write access to the specific address is issued, the address is updated.
  • the notification is issued, the reserved data is treated as having been transferred as updated data.
  • a write for address 1 is treated as a write for data 1 for the same address in the shared memory space.
  • FIG. 14 is a more specific system configuration diagram based on the embodiment of the present invention.
  • the system consists of 10 processors (14a-1) to (14a-10) and a bus / bitter / repeater (14b).
  • the bus arbiter and the repeater provide completely independent functions, both blocks are housed in the same unit to simplify the system configuration.
  • the update notification bus (14c) has the following bus addresses: BC 1 to BC 10, bus request signals NR 1 to NR 10, bus permission signals NG 1 to NG 10, update notification address NA (30 bits), update notification address It consists of a mask NM (4 bits), immediate update data ND (4 bits), an update notification signal NV, an update data request signal RV, and an immediate update attribute signal NI, and operates in synchronization with BC.
  • the data channels TSD1 to TSD10 and RSD1 to RSD10 use full-duplex communication channels facing serial transmission lines having a transmission band of about 3 gigabits Z seconds. At least two of the processors hold the entire contents of the shared memory space, one of which responds to the update data request as the master processor.
  • Fig. 15 shows the processor (14a-1) to (14a-10) in Fig. 14. It is a block diagram.
  • processor core (15a)
  • processor bus bridge (15b)
  • update notification bus bridge (15e)
  • data channel IF (15h)
  • update queue (15k)
  • shared memory cache (15 ⁇ ). The function of each part is outlined below.
  • the control block (15c) performs overall control, and the redirector (15d) performs bus switching between functional blocks and converts addresses and data.
  • FIG. 16 is a diagram showing a signal flow at the time of write access of the first mode in the embodiment of the present invention.
  • the processor core (16a) contains processor address PA and processor data Set the processor transfer type PT and the processor write signal PW.
  • the control logic (16c) of the processor bus bridge (16b) sets the redirector function control signal FC.
  • the redirector (16d) copies the processor address P A to the effective address EA and the cache address CA, and the processor data P D to the effective data E D and the cache data C D.
  • the transmission section (16f) of the update notification bus bridge (16e) receives NS and transmits a noss request signal NR.
  • the transmission section (16 ⁇ ) of the update notification bus bridge (16e) receives the bus permission signal ⁇ G and acquires the update notification bus.
  • ⁇ ⁇ ⁇ ⁇ is echoed to the update notification address ⁇ , and the update notification signal NV is transmitted to all processors. NA and NV are also looped back and received by the update notification bus bridge monitoring unit (16 g) of the own processor.
  • the monitoring unit (16 g) of the update notification bus bridge (16e) echoes NA as the update notification address SA and also uses NV as the update notification reception signal SV. Send to own processor.
  • the update notification is queued in the queue register (16 1) of the update queue (16 k). At this time, the same control is performed on other processors.
  • the control logic (16c) of the processor bus bridge (16b) receives the SV, transmits the update data transmission signal US, and receives the framer (16) of the data channel IF (16h). i) queues the contents of the EA / ED in the transmit buffer. After sending the US, an acknowledge signal ACK is sent to the processor core, and the access on the processor core side is completed.
  • FIG. 17 is a diagram showing a signal flow at the time of receiving update data based on the first mode of the embodiment of the present invention.
  • the framer (17i) of the data channel IF (17h) receives the RPD, extracts and expands the packets in the data, sets the update data address UA and the update data UD, and updates the data. Transmits the received signal UR. At the same time, UA is set to the queue clear address QC A of the key register (171).
  • the control logic (17c) of the processor bus bridge (17b) receives UR and sets the redirector function control signal FC.
  • the redirector (17d) responds by echoing the UA to the CA and the UD to the CD. If other processing is being performed in the control logic (17c), the system waits once and executes this processing as soon as it is completed.
  • FIG. 18 is a diagram showing a signal flow at the time of a typical read access in which data of a shared memory cache can be used in the first mode of the embodiment of the present invention. The flow is shown below. The numbers at the beginning of each line correspond to the numbers given to each signal in Fig. 18.
  • the processor core (18a) sets PA and PT, and sends a processor read signal PR.
  • the shared memory cache (18 ⁇ ) receives the CR and sends an unavailable signal NP if the data on the cache specified by the CA is not available, and sends a cache data CD if it is available I do.
  • the comparator (18 m) of the update queue (18 k) transmits the contention signal COL when the queue designated by EA is in the queue register.
  • FIG. 19 is a diagram showing common access in read access according to the first mode of the embodiment of the present invention.
  • FIG. 9 is a diagram showing a signal flow in a case where data on a memory cache having no data can be used and update data request processing is involved.
  • control logic (19c) of the processor bus bridge (19b) does not receive C ⁇ L but receives NP, it sends an update data request signal RS.
  • the transmission section (19 ⁇ ) of the update notification bus bridge (19e) receives the RS and transmits the bus request signal NR.
  • EA is echoed to the update notification address N A, and the update data request signal RV is transmitted to all processors.
  • the NA and RV are also looped back and received by the update notification bus bridge monitoring unit (19 g) of the own processor.
  • the monitoring unit (1 9 g) of the update notification bus bridge (1 9 e) echoes NA as SA, and when detecting the RV sent by its own processor, echoes it as SV in its own processor. .
  • the update queue (1 9 k) receives the SV as the queue set signal QS, and queues the contents of the SA in the queue register (1 9 1) as the queue set address QSA.
  • the master processor In response to the update data request sent in (8), the master processor updates New data is transmitted, the data channel IF (19h) sets the update data address UA, the update data UD, and sends the update data reception signal UR. At the same time, UA is set to the queue clear address QCA in the queue register (191).
  • the control logic (1 9c) of the processor bus bridge (1 9b) receives the release of COL and controls the FC to control the redirector (1 9d), UA to CA, UD To CD and PD.
  • the control logic (19c) of the processor bus bridge (19b) sends the cache write signal CW to update the desired data on the shared memory cache with the CD, and to the processor core. Send ACK and complete read access.
  • FIG. 20 is a diagram showing a signal flow when the master processor responds to an update data request transmitted from another processor in the first mode of the embodiment of the present invention.
  • the monitoring unit (19g) of the update notification bus bridge (19e) echoes NA to SA and transmits an update data request signal SR to the processor internal unit.
  • control logic (20c) of the processor bus bridge (20b) is the master processor, the control logic (20c) sets the FC in response to SR and controls the redirector (20d) to change the SA to EA. Echo to CA and connect CD and ED. If this is not the master processor, the SR is ignored. The control logic If another process is being performed in step (17c)-and the process waits, and this process is executed as soon as the process is completed.
  • control logic (20c,) of the processor bus bridge (20b) sends the CR to the shared memory cache (2011).
  • a CD is sent from the shared memory cache (20 ⁇ ) and echoed to the ED.
  • the control logic (20c) of the processor bus bridge (20b) transmits US, and the update data is transmitted to the data channel in the same manner as the update data transmission processing at the time of write access.
  • FIG. 21 is a diagram showing a signal flow at the time of write access in the second mode of the embodiment of the present invention.
  • the processor core (21a) sets the processor address PA, processor data PD, and processor transfer type PT, and transfers multiple sizes of data to the redirector by burst transfer.
  • the control logic (21c) of the processor bus bridge (21b) sets the redirector function control signal FC.
  • the redirector (21d) encodes the first address set in the processor address P A into the effective address E A. Also, it counts the data size of the burst transfer, calculates the execution address mask EM from it, and outputs it.
  • the effective address mask is a signal indicating how many lower bits of the effective address are ignored. Data of multiple sizes set in the PD is stored in the buffer inside the redirector.
  • the control logic (21c) of the processor bus bridge (21b) transmits the update notification transmission signal NS.
  • the transmitting section (21 #) of the update notification bus bridge (21e) receives the NS and transmits the bus request signal NR.
  • the transmission section (21f) of the update notification bus bridge (21e) receives the bus permission signal NG and acquires the update notification bus.
  • EA is echoed to the update notification address NA and EM to the update notification address mask NM, and the update notification signal NV is sent to all processors.
  • NA, NM, and NV are also looped back and received by the update notification bus bridge monitoring unit (21 g) of the own processor.
  • the monitoring unit (21 g) of the update notification bus bridge (21 e) receives the NV, echoes NA to the update setting address SA, and NM to the update setting address mask SM, and transmits the update notification reception signal SV.
  • the update queue (21k) receives the SV as the queue set signal QS, and queues the contents of the SA in the queue register (21 1) as the queue set address QS A and the contents of the SM as the queue set address mask QSM.
  • the control logic (21c) of the processor bus bridge (21b) transmits the update data transmission signal US when receiving the SV, and sets FC at the same time.
  • the redirector (2Id) sets the ED sequentially from the first data of the update data stored in the buffer.
  • the framer (21 i) of the data channel IF (21h) receiving this queues the contents of EAZEM / ED in the transmission buffer. After sending the US, an acknowledge signal ACK is sent to the processor core, and the access on the processor core side is completed.
  • the data queued in the transmission buffer is constructed in a bucket at any time, and when the data is completed, the data is transferred to the SERDES (21j).
  • Transmitted parallel data is transmitted as TPD.
  • SERDES responds by modulating the electrical signal carried on the data channel. Retransmit the update data as transmission serial data TSD.
  • FIG. 22 is a diagram showing a signal flow at the time of receiving update data transmitted from another processor in the second mode of the embodiment of the present invention.
  • the SERDES (22j) of the data channel IF (22h) demodulates the received serial data RSD and sends it to the framer (22i) as received parallel data RPD.
  • the framer ('22i) of the data channel IF (22h) receives the RPD, extracts and expands the packet in the data, sets the update data address UA and the update address mask UM, and updates the data. Transmits the received signal UR. At the same time, UA is set to the queue clear address QCA of the queue register (221). At the same time as the UR transmission, update data is sent to the UD sequentially from the first data to the UD.
  • the control logic (22c) of the processor bus bridge (22b) receives the UR and sets the redirector function control signal FC.
  • the UA and UD are temporarily stored in a buffer in the redirector, and the UA is set to the CA and the first data of the UD is set to the CD. If another process is being performed in the CA by the setting control logic (22c), the process waits for a while and executes this process as soon as the process is completed.
  • the control logic (22c) of the processor bus bridge (22b) sends the cache write signal CW, and the shared memory cache (22 ⁇ ) that receives this sends the desired data specified by C ⁇ to the CD. Update in. Subsequently, the next update data stored in the redirector's buffer is set in the CD, the CA value is incremented by 1, and the same cache memory update processing is performed according to the UM setting value. Repeat until there is no more update data. Then cuque After transmitting the rear signal QC, the update queue (22k) receiving this clears the QCA set in (2) from the queue register (221).
  • FIG. 23 is a diagram showing a signal flow at the time of a write access in which the update notification is omitted in the third mode of the embodiment of the present invention.
  • the processor core (23a) sets the data-only attribute to the processor transfer type PT, and sends the processor address PA, the processor data PD, and the processor write signal PW. ,
  • the control logic (23c) of the processor bus bridge (23b) sets the redirector function control signal FC.
  • the redirector (23d) echoes the processor address P A to the execution address E A and the processor data PD to the effective data ED.
  • the control logic (23c) of the processor bus bridge (23b) sets the data only attribute signal DO and transmits the update data transmission signal US. After transmission of the US, an acknowledgment signal ACK is transmitted to the processor core, and the access on the processor core side is completed.
  • the framer (23i) of the data channel IF (23h) receiving the update data transmission signal U S and the data only attribute signal D O queues the content of the EA / ED and the data only attribute in the transmission buffer.
  • FIG. 24 is a diagram showing a signal flow at the time of receiving update data in which the update notification transmitted from another processor is omitted in the third mode of the embodiment of the present invention. The flow is shown below. The numbers at the beginning of each line correspond to the numbers assigned to each signal in FIG.
  • the SERDES (24 j) of the data channel IF (24 h) demodulates the received serial data RSD and sends it to the framer (24 ⁇ ) as the received parallel data RPD.
  • the framer (24i) of the data channel IF (24h) receives the RPD, extracts and expands the packets in the data, sets the update data address UA, the update data UD, and the data-only attribute DO. Transmits the update data reception signal UR.
  • the control logic (24c) of the processor bus bridge (24b) receives the update data reception signal UR and the data only attribute signal DO, and sets the redirector function control signal FC. In response, the redirector (24d) echoes UA to the cache address CA and UD to the cache data CD. If other processing is being performed in the control logic (24c), the system waits temporarily and executes this processing as soon as it is completed.
  • the control logic (24c) of the processor bus bridge (24b) sends the cache write signal CW, and the shared memory cache (24 ⁇ ) that receives this sends the desired data specified by C ⁇ to the CD. Update in.
  • FIG. 25 is a diagram showing a signal flow when a processor added to the system issues an all data transmission request in the cache fill operation in the second mode of the embodiment of the present invention.
  • the transmitting section (25f) of the update notification bus bridge (25e) receives RS and IS, and transmits a bus request signal NR.
  • the transmission section (25f) of the update notification bus bridge (25e) receives the bus permission signal NG and acquires the update notification bus.
  • the transmitting section (25f) of the update notification bus bridge (25e) transmits RV and NI simultaneously.
  • FIG. 26 is a diagram showing a signal flow when the master processor performs all data transmission in response to an all data transmission request in the cache fill operation according to the fourth mode of the embodiment of the present invention.
  • the monitoring unit (26g) 'of the update notification bus bridge (26e) of the master processor receives NI simultaneously with RV, it transmits SR and SI simultaneously.
  • control logic (26c) of the processor bus bridge (26b) When the control logic (26c) of the processor bus bridge (26b) receives SR and SI at the same time, it interprets it as an all data transmission request signal and interprets the first address of the shared memory space as the transmission start address and next Store as the transmission address.
  • the control logic (26c) sets the redirector function control signal FC when the queue empty signal QE is valid and there is no other required processing, and the redirector (26d) Caches the stored next transmission address Set to dress CA and control logic (26c) sends cache read signal CR.
  • the shared memory cache (26 ⁇ ) receives the CR and sends the data on the cache specified by CA to the cache data CD.
  • the redirector (26d) of the processor bus bridge (26b) also sets the previously set CA to the effective address EA, and echoes the CD to the effective data ED.
  • the control logic (26c) sets the data-only attribute DO and sends the update data transmission signal US.
  • the framer (26i) of the data channel IF (26h) receiving the request queues the contents of the EA / ED and the data-only attribute in the transmission buffer.
  • the control logic (26c) of the processor bus bridge (26b) stores the address following the transmitted address as the next transmission address. When the transmitted address reaches the last address of the shared memory space, the first address of the shared memory space is stored as the next transmitted address. If the next transmission address matches the previously stored transmission start address, all data transmission ends.
  • the data queued in the transmission buffer is constructed in a bucket at any time. Is sent as SERDES receives this, modulates the electric signal that can be carried on the data channel, and sends out the data as transmission serial data TSD.
  • FIG. 27 is a diagram showing a signal flow when a processor added to the system performs all data reception in the cache fill operation according to the fourth mode of the embodiment of the present invention.
  • Control logic (27c) output during reception of all data When a processor read signal PR or a processor write signal PW is received, the control logic (27c) suspends this request. Even during the operation of receiving all data, queuing and clearing to the update queue are performed according to the flows shown in FIGS. 16 and 17, respectively.
  • the SERDES (27 j) of the data channel IF (27 h) demodulates the received serial data RSD and sends it to the framer (27 i) as received parallel data RPD.
  • the framer (27i) of the data channel IF (27h) receives the RPD, extracts and expands the packets in the data, sets the update data address UA, the update data UD, and the data-only attribute DO. Transmits the update data reception signal UR.
  • the control logic (27c) of the processor bus bridge (27b) receives UR and sets the redirector function control signal FC.
  • the redirector (27d) echoes the UA to the cache address CA and the UD to the cache data CD accordingly. If other processing is being performed in the control logic (27c), the system waits temporarily and executes this processing as soon as it is completed.
  • the control logic (27c) of the processor bus bridge (27b) transmits the cache write signal CW. Since the data-only attribute D ⁇ ⁇ has been received, the queue clear signal QC is not transmitted.
  • the shared memory cache (2711) receiving the cache write signal CW updates the desired data specified by the CA and the CD, and the data was unavailable in the state before the update. If not, send the unavailable signal NP.
  • the control logic (27c) of the processor bus bridge (27b) measures the number of times the unavailable signal NP was received during all data reception operations, and Upon recognizing that all areas of the memory cache have been filled with valid data, the operation of receiving all data is terminated.
  • FIG. 28 is a diagram showing a signal flow at the time of write access based on the fifth aspect of the embodiment of the present invention.
  • the processor core (28a) sets PA, PD, and PT and transmits PW.
  • the control logic (28c) of the processor bus bridge (28b) sets the redirector function control signal FC.
  • the redirector (28d) echoes the processor address P A to the effective address E A and the cache address C A, and echoes the processor data P D to the effective data ED and the cache data CD ⁇
  • the control logic (28c) of the processor bus bridge (28b) transmits the update notification transmission signal NS.
  • the PA is in the specified address space, it transmits the immediate update attribute transmission signal IS.
  • the transmitting section (28f) of the update notification bus bridge (28e) receives NS and transmits NR.
  • the transmission section (28f) of the update bus bridge (28e) receives the NG and acquires the update notification bus.
  • EA is assigned to the update notification address NA
  • IS is assigned to the immediate update attribute signal NI
  • ED is assigned to the immediate update data ND
  • the update notification signal NV is transmitted to all processors.
  • NA, ND, NV, and NI are also looped back to the own processor's update notification path prism monitoring unit (28 g) and received.
  • the monitoring unit (28 g) of the update notification bus bridge (28 e) When both are received, they are echoed as an immediate update signal SI in the own processor. The same operation is performed on other processors.
  • the control logic (28c) of the processor bus bridge (28b) sets the redirector function control signal FC.
  • the redirector (28d) responds by echoing SA to CA and SD to CD. The same operation is performed on other processors. At this time, if the processor bus bridge (28b) is performing another process, this process is performed with the highest priority after the completion of that process.
  • the control logic (28c) of the processor bus bridge (28b) sends the cache write signal CW, and the shared memory cache (28 ⁇ ) receiving this sends the desired signal specified by C ⁇ . Update the data on CD. The same operation is performed on other processors.
  • the write access based on the sixth aspect of the embodiment of the present invention uses reserved data at the time of writing to a specific address, and its flow is substantially similar to the light access in the fifth aspect.
  • the following points are the differences.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

共有メモリにデータを書き込む際のデータの送信を、各プロセッサと共有メモリとの間に設けられる高速の専用回線を使って行う。各プロセッサは、共有メモリの共有メモリ空間に書き込みを行う場合には、従来のグローバルバスに対応する更新通知バスに、いずれのアドレスへの更新をするかを通知する。この通知を検出した他のプロセッサは、共有メモリキャッシュ内のそのアドレスへのアクセスを禁止し、当該アドレスへの書き込みデータが専用回線を使って送られてくるのを待つ。データが送られてくると、共有メモリキャッシュの対応アドレスにデータを書き込む。このとき、共有メモリの対応するアドレスにも当該データが書き込まれ、キャッシュコヒーレンシが保たれる。また、書き込みアドレスを送信するには、バスの使用権取得が必要であるが、データの送信は専用回線を使うので、バスの使用権獲得のための時間が大きく削減される。

Description

明細書 マ/レチプロセッサシステム 技術分野
本発明は、 複数のプロセッサを結合し、 それらプロセッサに共有される共有 メモリ空間を配置する共有メモリ型マルチプロセッサシステムで、 特に共有メ モリ空間のデータをキヤッシュする共有メモリキヤッシュが具備されたプロセ ッサにより構成されるシステムに関する。 ソフトウエアの処理は各プロセッサ により分担されて行われ、 共有メモリはプロセッサ間で処理を引き継ぐ際のデ ータの受け渡しゃプロセッサ単体ではなくシステム単位で管理すベき情報を格 納する場所などとして使われる。 共有メモリキャッシュは、 共有メモリへのァ クセスを高速化してシステム性能を向上するために導入される。 背景技術
図 1は、 最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す 図である。
複数のプロセッサと共有メモリが同一のグローバ ^レバスで接続され、 各プロ セッサは、 このグローバルパスを経由して、 共有メモリにアクセスする。 各プ 口セッサ (1 a— 1 ) 〜 (1 a— n ) は、 アービタ (l b ) に対してバス要求 信号(1 c— 1 ) 〜 (1 c一 n ) を送出し、アービタにより使用権が調停され、 同時間に 1つのプロセッサのみにグローバルバス( 1 e )の使用権が与えられ、 そのプロセッサに対してバス許可信号 (I d— 1 ) 〜 (I d— n ) が送出され る。バス許可信号を受けたプロセッサは、グローバルバス経由で共有メモリ (1 f ) にアクセスし、 所望のデータ収受を行う。 図 1の実現方式においては、 共有メモリ空間へのアクセスはリード、 ライ ト の種別を問わず、 そのすべてがグローバルバスを経由することとなる。
ここに以下の 2つの制約がある。
制約 1 :信号伝送に時間を要する (物理的制約)
制約 2 : バス使用権の順番待ち時間を要する (原理的制約)
前者は、 グローバルバスにおいて信号伝送距離が長くなることや、 複数のプ 口セッサが同一の信号線を共有することなどの電気的条件により、 高速な信号 伝送が困難となることに起因する。 後者は、 2つ以上のプロセッサが共有メモ リに対して同時間にアクセスを行つた場合、 2つ目以降のプロセッサがグロ一 バルバス使用権の調停により共有メモリに対するアクセスを待たされる時間が 発生することに起因する。 結果とじて、 これらの制約は共有メモリ空間へのァ クセスに以下の問題を発生させる。
問題 1 :帯域 (システムに許容される時間あたりのアクセス回数) の不 足
問題 2 : レイテンシ (アクセス開始から完了までにかかる時間) の過大 図 2は、 各プロセッサ上に共有メモリキャッシュ (2 h ) を配置した従来例 を示す図である。
プロセッサコア (2 g ) が共有メモリ空間をリードした場合、 共有メモリキ ャッシュ上に共有メモリ空間のデータのコピーがあれば、 リ一ド処理を内部バ ス (2 i ) を通じてプロセッサの上で完結でき、 前記の制約 1を軽減できる。 また、 グローバルバス経由のアクセスとならないため、 グローバルバスの使用 権調停が不要となり、 前記の制約 2から解放される。 この点で、 共有メモリキ ャッシュの導入は前記問題に対する改善策となる。
共有メモリキャッシュの導入により各プロセッサが共有メモリ空間のデータ のコピーを個別に保持し得ることになるが、 共有メモリ空間上のデータは、 全 てのプロセッサにとって同じように見えなければならない。 したがって、 デー タ更新の契機となるライト処理に関しては、 このことを保証するコヒーレンシ 制御の考慮が必須となる。 理由は後述するが、 このコヒーレンシ制御も前記問 題を解決する上での障壁となる。
ここで、 コヒーレンシ制御上の要件を、 以下の 3点に細分する。
要件 1 :時間的な同期
要件 2 :空間的な同期
要件 3 :更新時間の短縮
図 3は、 コヒーレンシ制御について説明する図である。
図 3は、 上記の要件の意味を説明するもので、 共有メモリ空間上のあるアド レスのデータが値 0であったとき、 該ァドレスにプロセッサ 1が値 1をライ ト し、 その後プロセッサ 2が値 2をライ トし、 他のプロセッサ 3〜nが該ァドレ スをリードした場合を想定したものである。 ここで、 要件 1は、 個々のプロセ ッサ上で、 たとえば、 値 2→値 1の順にリードしてしまう可能性を排除するこ とに相当し (1^ 0の保証)、 また要件 2は、 たとえばすでに値 1をリードし たプロセッサがいるのに、 その後に値 0をリードするプロセッサが発生してし まう可能性を排除することに相当する (t 2 0の保証)。 また、 要件 3はデー タ更新があった時点から、 他のプロセッサが依然として更新前のデータをリー ドしてしまう時間と、 更新後のデータを読み出せるようになるまでの時間を、 共に可能な限り短くすることに相当する (t 2および t 3の最小化)。 要件 3は コヒ一レンシ制御上の必須要件とはならないが、 システム性能を向上するため に必要となる。
図 2におけるコヒーレンシ制御の例としては、 共有メモリ空間に対するプロ セッサのライ ト処理毎に、 それを自身の共有メモリキャッシュに反映すると同 時にグローバルバス経由で共有メモリにライ トし、 一方他のプロセッサはグロ 一バルバスに現れるライトアクセスを監視して、 該アドレスのデータが各々の 共有メモリキヤッシュ上にある場合、 そのデータをグ口ーバルバス上のデータ で置換する方法が挙げられる。
図 4は、 キャッシュコヒーレンシの確立の仕方の例を説明する図である。 図 4は、上記方法に基づいた処理シーケンスの例である。図中、 (4 a)〜(4 f ) のタイミングはそれぞれ以下の事象に対応する。
(4 a) :プロセッサコアがライ トアクセスを起動
(4 b) : ライトアクセス起動によりグローバルバス要求を送出
(4 c) :バス使用許可を受け、 グローバルバスにァドレスをデータ出力 ( 4 d ):他プロセッサ /共有メモリがグ口一バルバスの情報を受信し、 自身の 共有メモリあるいは共有メモリキャッシュにライ ト
(4 e) : メモリライ ト完了
(4 f ) : ライトアクセスを起動したプロセッサがバス開放
' この例では、 コヒーレンシ保証に必要な条件は以下の式で表される。 d s d (ma X) ヽ t d s d (m i n) + dmw (m i n) 、 ' t rc : グローバルバスへのライ ト発行からバス開放までの時間
t d s d : グローバルバスへのライト発行を他プロセッサが認識するのに必要な 時間
t dmw : プロセッサ Z共有メモリがグローバルバス上のライ トアクセスを認識 して力 ら、 そのデータを自身に反映させるのにかかる時間
である。
ここで、 (1)式は前記の要件 1を満たすための条件であり、ライ ト値が共有 メモリ及び全てのプロセッサ上の共有メモリキヤッシュに反映されてからグロ 一バルバスを開放することを保証するものである (一般にはライ ト処理の完了 応答を被ライ ト側から送出し、 その变信をもってバス開放を行うシーケンスが 採られる場合が多い)。その条件を満たすことで、グローバルバスの使用権調停 により次のプロセッサがライト処理を開始するときには前のライト処理が完了 していることが保証される。 いわば、 グローバルバスの持つ欠点によりコヒー レンシ制御の要件が満たされている格好であるが、 実は前記の要件 1は、 デー タ更新の調停を要することと本質的に差異がない。 データ更新の順序付けを保 証することは、 複数のデータ更新が同時に発生しないことを保証すること、 つ まり調停を行うことと等価だからである。 したがって、 前記のコヒーレンシ制 御の要件 1を満たすことは、 グローバルバスを使用する上で生ずる前記の制約 2を同じように受け、 前記問題を解決する上での障壁となる。
一方、 (2 ) 式は、 図 4中 (4 d ) のタイミングが各プロセッサでばらつくの を吸収して、前記の要件 2を満たすための条件である。 (4 d )のタイミングは、 グローバルバスに現れたライ トアクセスと競合するリードアクセスが各プロセ ッサ上で起動されたときに、 更新前のデータがプロセッサコアに返されるか、 更新後のデータが返されるかの境界となるタイミングである。 更新後のデータ が返送されるのは (4 e ) のタイミングであるので、 (2 ) 式を満たさないと、 このタイミングがプロセッサによっては逆転し、 前記の要件に反することにな る。
ここで、 たとえば (1 ) 式は、 バス占有時間を一定以上にしなければならな いこと、 つまり共有メモリ空間の帯域に対する制約を与えることを示している し、 ( 2 )式は共有メモリキヤッシュゃ共有メモリに対する書き込み時間を短く して帯域を増やそうとしても、 プロセッサ間で (4 d ) のタイミングがばらつ くことを考慮し、 一定以上の時間に保たなければならないことを示している。 これらの例のとおり、 各種の動作タイミングに条件が付されるために、 処理時 間の短縮を図って性能向上を図ろうとする場合に、 コヒーレンシ制御自体が一 種の制約を生むことになる。
従来のキャッシュ間のコヒーレンシをとる技術として、 特許文献 1がある。 特許文献 1では、 プロセッサモジュールは、 キャッシュメモリを有し、 他のプ 口セッサモジュールに、 バスを介して、 コヒーレンシトランザクションを発行 する。 コヒーレンシ'トランザクションを受け取ったプロセッサモジュールは、 コヒーレンシ検查を実行する。コヒーレンシを維持するために更新を行う場合、 更新に使われるべきデータは、 バスを介して送られる プロセッサモジュール とメインメモリとをつなぐ信号線は、 コヒ一レンシ検査の結果の通知に使われ る。
特許文献 1 .
特開平 7— 2 8 1 9 5 6号公報 発明の開示
本発明の課題は、 以上に述べたようなコヒーレンシ制御を含む前記の各種制 約による性能低下要因の最小化を図りながら、 前記の課題を解決して共有メモ リ空間の帯域とレイテンシの向上を図つたマルチプロセッサシステムを提供す ることである。
本発明のマルチプロセッサシステムは、 それぞれが共有メモリキャッシュを 備える複数のプロセッサと少なくとも 1つの共有メモリが相互に結合されたマ ルチプロセッサシステムにおいて、 共有メモリ領域のデータの更新において、 更新に用いるべきデータをプロセッサと共有メモリとの間で専用に送受する専 用回線手段と、 データの更新通知を、 各プロセッサに該更新通知を送信する権 利を調停しながら、 伝送するグローバルバス手段とを備え、 プロセッサからの 該データの更新通知の送信と更新に用いるべきデータの送信を独立に行い、 各 プロセッサ及び共有メモリでは、 更新通知の受信によって、 該更新通知によつ て示されるァドレスへのアクセスを制限し、 各プロセッサ及び共有メモリに到 着した更新に用いるべきデータによって、 共有メモリ領域の該ァドレスのデー タが更新された後、 該ァドレスへのアクセスを許可することを特徴とする。 本発明によれば、 更新データを送受する専用回線手段を設けたことにより、 更新データの送受信が高速化される。 また、 グロ一バルバス手段では、 データ 量の少ない更新通知のみを調停して転送すればよいので、 バスの使用権の獲得 のために長時間待たされることが少なくなる。 また、 更新通知にしたがって、 更新データによる共有メモリ領域の更新を各プロセッサぉよび共有メモリがす るので、 共有メモリキャッシュと共有メモリ とのコヒーレンシが確保される。 図面の簡単な説明
図 1は、 最も簡単な共有メモリ型マルチプロセッサシステムの従来例を示す 図である。
図 2は、 各プロセッサ上に共有メモリキャッシュ (2 h ) を配置した従来例 を示す図である。
図 3は、 コヒーレンシ制御について説明する図である。
図 4は、 キヤッシュコヒーレンシの確立の仕方の例を説明する図である。 図 5は、 本発明の実施形態に基づくシステムの構成図である。
図 6は、 本発明の実施形態における第 1の態様の一連の処理に基づくタイム チャートの例である。
図 7は、 本発明の実施形態の第 2の態様に基づく処理のタイムチャートの例 である。
図 8は、 異なるデータサイズでデータ更新を行った場合のタイムチャートの 例である。 図 9は、 本発明の実施形態の第 3の態様に基づく処理のタイムチヤートの例 である。
図 1 0は、 本発明の実施形態の第 4の態様の原理に基づいたタイムチヤ ト の例である。
図 1 1及び図 1 2は、 本発明の実施形態の第 5の態様におけるシステムの構 成図と、 その制御原理を示すタイムチャートである。
図 1 3は、 本発明の実施形態の第 6の態様を説明する図である。
図 1 4は、 本発明の実施形態に基づくより具体的なシステム構成図である。 図 1 5は、 図 1 4中の各プロセッサ (1 4 a— 1 ) 〜 (1 4 a— 1 0 ) の内 部構成図である。
図 1 6は、 本発明の実施形態における第 1の態様のライトアクセス時の信号 の流れを示す図である。
図 1 7は、 本発明の実施形態の第 1の態様に基づく更新データ受信時の信号 の流れを示す図である。
図 1 8は、 本発明の実施形態の第 1の態様において、 共有メモリキヤッシュ のデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。 図 1 9は、 本発明の実施形態の第 1の態様におけるリードアクセスにて、 共 有メモリキヤッシュ上のデータを利用できず、 更新データ要求処理を伴う場合 の信号の流れを示す図である。
図 2 0は、 本発明の実施形態の第 1の態様において、 他のプロセッサから送 信された更新データ要求に対する、 マスタプロセッサによる応答時の信号の流 れを示す図である。
図 2 1は、 本発明の実施形態の第 2の態様におけるライトアクセス時の信号 の流れを示す図である。
図 2 2は、 本発明の実施形態の第 2の態様において、 他プロセッサから送出 された更新データ受信時の信号の流れを示す図である。
図 2 3は、 本発明の実施形態の第 3の態様における更新通知を省略したライ トアクセス時の信号の流れを示す図である。
図 2 4は、 本発明の実施形態の第 3の態様において、 他プロセッサから送出 された更新通知を省略した更新データ受信時の信号の流れを示す図ある。 図 2 5は、 本発明の実施形態の第 2の態様におけるキヤッシュフィル動作に おいて、 システムに増設されたプロセッサが全データ送信要求を行うときの信 号の流れを示す図である。
図 2 6は、 本発明の実施形態の第 4の態様におけるキヤッシュフィル動作に おいて、 マスタプロセッサが全データ送信要求に応答して全データ送信を行う ときの信号の流れを示す図である。
図 2 7は、 本発明の実施形態の第 4の態様におけるキャッシュフィル動作に おいて、 システムに増設されたプロセッサが全データ受信を行うときの信号の 流れを示す図である。
図 2 8は、 本発明の実施形態の第 5の態様に基づくライ トアクセス時の信号 の流れを示す図である。 発明を実施するための最良の形態
図 5は、 本発明の実施形態に基づくシステムの構成図である。
本発明の実施形態の第 1の態様における本発明の原理を以下に示す。 図 5に おいて、 従来例のグローバルバスに相当する部分は、 更新通知バス (5 e ) と して、 データ更新の通知と、 更新データの送出要求を専従的に行うパスとして 用いられる。 更新データの内容はデータチャネル (5 g ) を使用してリピータ ( 5 h ) との間で送受される。 データチャネルは高速広帯域の既知の伝送手段 (例えば、ギガビットイーサネット等) を用いることを想定する。 リビータ (5 h ) はデータチャネルが接続された各ポートに現れたデータを、 全てのポート に同報する機能を有する。 なお、 プロセッサの数が少なく現実的なデータチヤ ネル数で収まる場合は、 リビータを設けずに全てのプロセッサと共有メモリの 間に 1対 1でデータチャネルを設け、 各プロセッサ上で同報する処理を行って もよレ、。また、共有メモリは特定のプロセッサ上に配置してしまってもよいし、 特願 2 0 0 2 - 1 2 6 2 1 2号公報にある例のように、 各プロセッサが共有メ モリ空間のサイズに等しい共有メモリキャッシュを具備する場合には、 共有メ モリ自体を設けなくてもよい。 いずれの場合でも本発明の実施形態としての効 果を得ることが可能である。
各プロセッサは、 プロセッサコアにより共有メモリ空間へのライ ト処理が発 行されると、 更新通知バスを獲得して更新対象のァドレスを更新通知バスに送 出する。 それと同時に、 データチャネルの送信バッファに更新データを投入す る。 更新データは、 主に各プロセッサとリピータのポート部における信号処理 遅延を受け、 更新通知に対して遅れて他のプロセッサに到達する。
—方、 更新通知バスは全てのプロセッサが常に監視しており、 更新通知を検 知すると、 該ア ドレスをプロセッサ上の更新キューに書き込む。 その後更新デ ータが到着すると、 それを共有メモリキャッシュにライ トし、 更新キューから 該アドレスを消去する。 また、 更新キュー上に存在するアドレスに対してプロ セッサコアからのリード処理が起動された場合、 共有メモリキャッシュからの リードを保留し、 更新データ到着時に共有メモリキャッシュへのライ ト処理と あわせてそのデータをプロセッサコアに返送する処理を行う。 ここで、 更新キ ユーに格納されているァドレスは、 全て全てのァドレスが監視対象となってお り、 更新データには、 ライ ト先のアドレスが付加されている。 したがって、 各 プロセッサでは、 更新キュー内のァドレスと更新データに付加されているァド レスを比較して、 共有メモリキャッシュの適切なアドレスに更新データを書き 込むことができる。 また、 共有メモリの構成は、 プロセッサの構成と基本的に 同一であるが、 共有メモリには、 プロセッサコアが存在せず、 共有メモリキヤ ッシュがより容量の大きい共有メモリチップとなっている。
共有メモリキャッシュ上に有効データが存在しない場合、 つまりキャッシュ ミス時のリードアクセスは、 更新通知バスに更新データ送出要求を発行し、 共 有メモリまたは他の有効なデータを共有メモリキャッシュ上に保持するプロセ ッサが更新データを送出することにより行う。
図 6は、 本発明の実施形態における第 1の態様の一連の処理に基づくタイム チャートの例である。 '
本例はプロセッサ 1がアドレス 1にデータ 1を、 それに続いてプロセッサ 2 がァドレス 2にデータ 2をライ トしており、 それと平行してプロセッサ 3がァ ドレス 1、 アドレス 0、 アドレス 1の順に共有メモリ空間をリードした場合で ある。 なお、共有メモリ空間上のデータ初期値は全て 0とする。なお、図 6中、 Aはアドレス、 Dはデータを意味し、 また、 (1 ) —0等の表記はアドレス 1 へ のデータ 0のライト、 1— ( 0 ) 等の表記はアドレス 0からのデータ 1のリー ドをそれぞれ意味する。
プロセッサ 3の 1回目のリード時には更新キュ一は空であるため、 共有メモ リキャッシュからリードが行われ、 データ 0がプロセッサコアに返送される。 ついで、 プロセッサ 1からの更新通知を検知し、 それがプロセッサ 3の更新キ ユーに投入される。 プロセッサ 3の 2回目のリード時には、 更新キューは空で はないが、 更新キュー上にあるのはアドレス 1のみであり、 リードアドレスと —致するものが存在しないで、 1回目のリードと同様の処理にてデータ 0がプ 口セッサコアに返送される。 3回目のリードでは、 更新キュー上にリードアド レスと一致するものがあるため、 共有メモリキヤッシュのリードは起動されず リードアクセスは保持される。 その後、 プロセッサ 1からアドレス 1の更新デ —タが到着すると、 プロセッサ 3の共有メモリキャッシュにデータ 1がライ ト されて更新キューがクリアされ、 同時にそのデータがァドレス 1のリードデー タとしてプロセッサコアに返送される。
本方式の主な利点は次の 2点である。 一つは、 データ更新を行う側のプロセ ッサにおいて、 他のプロセッサの共有メモリキャッシュへの反映を待たなくて もすむためにバス占有時間を削減でき、 共有メモリ空間の帯域の向上が図れる ことである。 もう一つは、 データ更新処理と競合しないリードアクセスの不要 な待ち合わせ時間を排除することで、 リードアクセスの平均レイテンシを低減 し得ることである。 このうち、 後者の従来例に対する改善度合いは、 共有メモ リキャッシュのヒッ ト率とアクセス競合の発生確率により変化するが、 特にヒ ット率が高く競合発生確率が低いほど、 本方式の優位性は顕著となる。
本発明の実施形態の第 1の態様における原理は、 第 1の態様におけるデータ 更新の単位をブロック化することで、 共有メモリ空間の帯域を更に拡大しよう とするものである。 通常考え得る実装では、 データチャネルや共有メモリキヤ ッシュの帯域は、 更新通知バスのそれに比較してはるかに大きくすることが可 能である。 したがって、 共有メモリ空間の帯域としては、 更新通知バスの帯域 により制限され、 データチヤネルや共有メモリキャッシュの帯域を活用しきれ ない可能性が生ずる。 まず、 これを解決しょうとするものである。
図 7は、 本発明の実施形態の第 2の態様に基づく処理のタイムチヤ一トの例 である。
同図においては、 データ更新を 4アドレス単位としたものである。 プロセッ サ 1及び 2の送出する更新通知は更新対象ァドレスの先頭を示すことにより行 われ、 対応するァドレスの更新データはデータチャネル上にひとまとめにして 送出される。
データ長が固定のままでは、 ソフトウェアの処理上不要なデータまで組にし てデータ更新を行わなければならなくなるケースが発生するため、 データチヤ ネルや共有メモリキヤッシュの帯域を浪費し、 実効帯域を低下させる可能性が 発生する。 そのため、 更新データサイズを可変として必要十分なデータのみが データチャネルに送出されるように構成する。
図 8は、 異なるデータサイズでデータ更新を行った場合のタイムチャートの 例である。
同図においては、 図 7の例においてプロセッサ 1の初回のライ トが更新サイ ズ 2となってる点のみが異なる。 この差により、 全体として 2アドレス分のデ ータ収受に要する時間分、 データチヤネル及び共有メモリキャッシュの占有時 間が減少する。 また、 その時間分プロセッサ 2のライ ト処理に対応する更新デ ータの到着が早くなり、 更新キューの内容がクリアされるまでの時間が短くな るので、この原理によりアクセス競合時のレイテンシも低減することができる。 また、 第 2の態様における方式は帯域の向上のみでなく、 共有メモリ空間上 にブロック単位での排他的更新を提供する手段ともなる。 この点によりソフト ウェア処理を効率化し、 システムの処理能力を向上することも期待できる。 同 等のことをソフトウエアで実現するには、 更新開始と完了を管理するために余 分な処理が必要となるからである。
本発明の実施形態の第 3の態様における原理は、 プロセッサがコヒーレンシ 制御要否の属性をライ トアクセス毎に選択することを可能として、 コヒーレン シ制御不要の属性が指定されたライトアクセスについて更新通知を発行せず、 更新データのみを他のプロセッサに送出する制御を行うものである。 ソフトゥ エアの処理内容によっては、 コヒーレンシ保証が不要な共有メモリ空間の用途 もあるので、 そのような処理に対して、 この制御をソフトウェアが利用し、 更 新通知バスの使用頻度を削減して共有メモリ空間の帯域を向上すると共に、 更 新データが他プロセッサに反映される時間を短縮し、 また不要なアクセス競合 の発生によるレイテンシ増加を必要最小限に抑制してリ一ドアクセスの平均レ ィテンシの削減を図ろうとするものである。
図 9は、 本発明の実施形態の第 3の態様に基づく処理のタイムチヤ一トの例 である。
この例におけるプロセッサのアクセスパターンは図 6の例に準じており、 プ 口セッサ 1の初回のライトがコヒーレンシ制御不要の属性が付されてる点のみ が異なる。 プロセッサ 1の初回のライ トに伴う更新通知バス上の処理が起動さ れないため、 それに要する分更新通知バスの占有時間が減少している。 また、 その分プロセッサ 2による 2回目のライ トアクセスに伴う更新通知が更新通知 バスに早く送出されるため、 更新時間の短縮を図ることもできる。 プロセッサ 3の 3回目のリードはプロセッサ 1のライ トより後に発行されているが、 本制 御により更新キューには投入されていないため、 競合による待ち合わせが発生 せず、 通常と同じレイテンシにてリードアクセスが完了している。
本発明の実施形態の第 4の態様における原理は、 プロセッサのオンライン増 設時に、 共有メモリ空間の全てのデータを保持するプロセッサもしくは共有メ モリが、 自身が持つ共有メモリ空間のデータをデータチャネルの空き時間を使 用して、 増設プロセッサに転送し、 増設プロセッサはそのデータを受けて共有 メモリキヤッシュを初期化するものである。
増設直後のプロセッサは共有メモリキヤッシュの内容が全て無効データであ り、 そのまま運用系に参加させると共有メモリ空間へのアクセスが全て共有メ モリキャッシュでミスヒットする。 これにより、 運用開始直後は増設プロセッ サの処理能力が著しく低下するだけでなく、 更新通知バスやデータチャネルが 不用意に占有されるために他のプロセッサにも影響を与え、 システム性能をか えって低下させる危険もある。 本方式により、 プロセッサ増設による運用系の 処理能力低下を防ぎ、 また増設プロセッサの処理能力も運用開始直後から最大 限に引き上げることができる。
図 1 0は、 本発明の実施形態の第 4の態様の原理に基づいたタイムチャート の例である。
図中、 a〜hは通常のデータ更新処理に基づく転送で、 1〜8までが、 本方 式により行われる増設プロセッサへのデータ転送である。 增設プロセッサは、' 自身が新たにシステムに実装されたことを、 更新通知バスに特定の信号を送出 する力、 そしくは実装未実装を示す専用の信号線を用いるなどの方法で他のプ 口セッサに通知する。 増設プロセッサ向けにデータを送出するプロセッサまた は共有メモリはその通知を受け、 図 1 0に示す通り、 自身の更新キューが空の ときに、 更新データをデータチャネルに送出する。 更新キューが空でなくなつ たら、 直ちにデータ送出を中断して通常の処理を優先し、 更新キューが空にな つたらデータ送出を再開する。 このような処理により、 システム上で行われる 通常のデータ更新処理のタイミングに影響を与えることなく、 増設プロセッサ に対して共有メモリキャッシュを満たすためのデータを送出する処理を追加す ることができる。 増設プロセッサは、 データチャネルより受け取った全てのデ ータで満たされた後、 本来の処理を開始し運用系へ参加する。 このときには共 有メモリキャッシュの内容は全て更新されており、 運用開始直後から共有メモ リキャッシュのヒット率が高く保たれ、 システムとしての処理能力を向上する ことができる。
図 1 1及び図 1 2は、 本発明の実施形態の第 5の態様におけるシステムの構 成図と、 その制御原理を示すタイムチャートである。
第 5の態様による制御の原理は、 競合頻度の高い特定のアドレスへのライ ト 処理に従来と同じ手法を選択的に使用できるようにすることで、 競合時のリ一
Figure imgf000017_0001
うとするものである。 図 1 1に示す通り、 更新データを転送するデータバス (1 1 i ) を設けて更新通知バスと同じ調停 論理経路としてデータチャネル (1 1 g ) を使用する力 \ データバスを使用す るかは、 ライトアクセス毎にプロセッサが選択する。
図 1 2は、 同時間に発行されたライ トアクセスにおいて、 更新データの転送 経路にデータチャネルを使用した場合 (P = 0 ) と、 データバスを使用した場 合 (P = l ) のタイミングの相違を示したものである。 ライ トアクセス起動か ら、 他のプロセッサが更新前のデータをリードしなくなるまでの時間は、 t d s dであり、 両者に相違はない。 し力 し、 更新後のデータをリードできるように なるまでの時間は、 (P = l ) の場合の t d u c lに対し、 (P = 0 ) の場合、 デー
Figure imgf000018_0001
0に増大する。 同一アドレスに対 するリードアクセスの競合が発生しない限り、 この差はなんら影響しないが、 競合が発生した場合に、 この時間差がリ シ増大となつ て現れるので、 競合が多発するアクセスについて (P = 0 ) を選択的に使用す る。 それにより、 リードアクセスの平均レイテンシを低減することができる。 図 1 3は、 本発明の実施形態の第 6の態様を説明する図である。 ' 図 1 3 ( a ) は、 第 6の態様における制御のタイムチャートである。
第 6の態様は、 第 5の態様における制御原理を、 第 1〜第 4の態様における システム構成にそのまま適用するもので、 特定のライ トアクセスについて、 更 新データの物理的な転送は行わずにデータ更新を行うものである。具体的には、 共有メモリ空間上のァドレスとライトされるべきデータを、 プロセッサコアが 生成する特定のアドレスにあらかじめ対応付けておき、 その特定アドレスに対 するライ トアクセスが発行された場合、 更新通知が発行された時点で、 その予 約されたデータが更新データとして転送されたものとして取り扱う。 この方法 では小さな情報量のデータしか扱えないが、 信号線数の多い従来のようなデー タバスを設置することなく、 力つ、 第 5の態様の方式と同じ効果を得ることが できる。 図 13 (a) の例では、 アドレス 1に対するライ トは、 共有メモリ空間上の 同ァドレスに対するデータ 1のライ トとして扱っている。 更新通知の認識時、 更新データが同時に伝達されたものとして扱えるため、第 5の態様において( P = 1) とした場合と同じタイミングで処理を行うことができる。 また、 データ チャネルの占有が発生しないため、 後続のアクセスがある場合は、 そのァクセ スにかかわるレイテンシを低減する効果も得られる。
例えば、 図 1 3 (a) の例において、 アドレス 2に対するライ トをアドレス 1に対するデータ 0のライ トとして扱う規約を設けて併用すれば、 アクセス競 合のオーバへッドが少なく、 他のプロセッサへの反映時間も高速な 2値のフラ グとしての機能をソフトウェアに提供することができる (図 1 3 (b))。 図 14は、 本発明の実施形態に基づくより具体的なシステム構成図である。 システムはプロセッサ 10基 (14 a— 1) 〜 (14 a— 10) と、 バスァ 一ビタ/リピータ (14 b) 力 ら構成されている。 バスアービタとリピータは まったく独立した機能を提供するものであるが、 システム構成を簡易にするた め、両ブロックを同一のュニットに収容している。更新通知バス (14 c) は、 バスク口ック BC 1〜BC 10、 バス要求信号 NR 1〜NR 10、 バス許可信 号 NG 1〜NG 10、 更新通知ァドレス NA (30ビット)、 更新通知ァドレス マスク NM ( 4ビッ ト)、即時更新データ N D ( 4ビッ ト)、更新通知信号 N V、 更新データ要求信号 RV, 即時更新属性信号 N Iからなり、 BCに同期して動 作する。 データチャネル T SD 1〜T SD 10、 R S D 1〜R S D 10は、 約 3ギガビット Z秒の伝送帯域を持つシリアル伝送線路を対向させた全二重通信 チャネルを用いている。 プロセッサのうち少なくとも 2つは共有メモリ空間の 全内容を保持しており、 うち 1つはマスタプロセッサとして更新データ要求に 応答する。
図 1 5は、 図 14中の各プロセッサ (14 a— 1) 〜 (14 a— 10) の内 部構成図である。
プロセッサ内部の機能プロックは、 プロセッサコア (1 5 a)、 プロセッサバ スブリッジ (1 5 b)、 更新通知バスブリッジ (1 5 e)、 データチャネル I F (1 5 h)、 更新キュー (1 5 k)、 共有メモリキャッシュ (15 η) に大別さ れる。 各部の機能概略を以下に示す。
(1 5 a) プロセッサコア
主処理部である。
(1 5 b) プロセッサバスブリッジ
共有メモリ空間へのアクセスの包括的制御を行う。
制御ブロック (1 5 c) は全体の制御を、 リダイレクタ (1 5 d) は、 各機 能ブロック間のバススィツチングと、 ァドレス及びデータの変換を行う。
(1 5 e) 更新通知バスブリッジ
更新通知バスの制御を行う。
( 1 5 h ) データチャネル I F
他プロセッサとの間で更新データの送受信を行う。
(1 5 k) 更新キュー .
更新キユーを収容しており、 キュ一状態を外部に出力する。
(15 η) 共有メモリキヤッシュ
共有メモリ空間のデータを保持し、 プロセッサコアに対して高速なァクセス を提供する。
図 16は、 本発明の実施形態における第 1の態様のライトアクセス時の信号 の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は、 図 16中の各信号に付した番号 に対応する。
(1) プロセッサコア (1 6 a) がプロセッサアドレス PA、 プロセッサデー タ PD、 プロセッサ転送タイプ P Tを設定し、 プロセッサライ ト信号 PWを送 信する。
(2) プロセッサバスプリッジ ( 1 6 b) の制御ロジック (1 6 c) はリダイ レクタ機能制御信号 F Cを設定する。 リダイレクタ (1 6 d) は、それに応じ、 プロセッサァドレス P Aを実効ァドレス EAとキャッシュァドレス CAに、 プ ロセッサデータ P Dを実効データ E D及ぴキャッシュデ一タ C Dにェコ一する。
(3) プロセッサバスブリッジ (1 6 b) の制御ロジック (1 6 c) は更新通 知送信信号 NSを送信する。
(4) 更新通知バスプリッジ (1 6 e ) の送信部 (1 6 f ) は N Sを受け、 ノ ス要求信号 NRを送信する。
(5) 更新通知バスプリッジ (1 6 e ) の送信部 (1 6 ί ) がバス許可信号 Ν Gを受信し、 更新通知バスを獲得する。
(6) 更新通知アドレス ΝΑに Ε Αがエコーされ、 更新通知信号 NVが全プロ セッサに送信される。 NA及び NVは自プロセッサの更新通知バスブリッジ監 視部 (1 6 g) にもループバックし受信される。
(7) 更新通知バスプリッジ (1 6 e ) の監視部 (1 6 g) は、 自身が送出し た NVを受け取ると、 NAを更新通知ァドレス S Aとしてエコーすると共に、 NVを更新通知受信信号 S Vとして自プロセッサ内に送信する。 S Vを受け、 更新キュー (1 6 k) のキューレジスタ (1 6 1 ) に該更新通知がキュ一^ f ン グされる。 このとき、 他のプロセッサ上でも同じ制御が行われる。
(8) プロセッサバスブリッジ (1 6 b) の制御ロジック (1 6 c ) は SVを 受けて更新データ送信信号 U Sを送信し、これを受けたデータチャネル I F ( 1 6 h) のフレーマ (1 6 i ) は、 EA/EDの内容を送信バッファにキューィ ングする。 USの送信後、 プロセッサコアにァクナリッジ信号 ACKが送信さ れ、 プロセッサコア側のアクセスは完了する。 (9) データチャネル I F (16 h) のフレーマ (1 6 i) では、 送信バッフ ァにキューイングされたデータが随時バケツ卜に構築されており、 完了した分 から SERDE S (16 j ) (シリアライザ 'デシリアライザの略であり、 シリ アル信号をパラレル信号に変換したり、 パラレル信号をシリアル信号に変換す る機能ブロックである) に送信パラレルデータ TPDとして送出される。 SE RDE Sはこれを受け、 データチャネルで搬送できる電気信号に変調を行い、 送信シリアルで TSDとして更新データを送出する。
図 17は、 本発明の実施形態の第 1の態様に基づく更新データ受信時の信号 の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 1 7中の各信号に付した番号に 対応する。
(1) データチャネル I F (1 7 h) の SERDES ( 17 j ) が受信シリア ルデータ RSDを復調し、 フレーマ (1 7 i ) に受信パラレルデータ R PDと して送出する。 '
(2) データチャネル I F ( 1 7 h) のフレーマ (1 7 i) は RPDを受け、 データ中のパケットの抽出及び展開を行い、 更新データアドレス UA、 更新デ ータ UDを設定し、 更新データ受信信号 URを送信する。 これにあわせて、 キ ユーレジスタ( 1 7 1 )のキュークリァァドレス QC Aに U Aがセッ トさ lる。
(3) プロセッサバスブリッジ (1 7 b) の制御ロジック (17 c) は URを 受け、 リダイレクタ機能制御信号 F Cを設定する。 リダイレクタ ( 17 d ) は それに応じ、 UAを CAに、 UDを CDにエコーする。 制御ロジック (1 7 c) にて他の処理が行われている場合、 いったん待機し、 それが完了しだい本処理 を実行する。
(4) プロセッサバスブリッジ (1 7 b) の制御ロジック (1 7 c) はキヤッ シュライト信号 CWを送信し、 これを受けた共有メモリキャッシュ (1 7 η) は CAで指定される所望のデータを CDにて更新する。また、制御ロジック(1 7 c) は、 キュークリア信号 QCを送信し、 これを受けた更新キュー (1 7 k) は、 ズ 2) でセットした QCAをキューレジスタ (1 7 1) からクリアする。 図 18は、 本発明の実施形態の第 1の態様において、 共有メモリキヤッシュ のデータを利用できる典型的なリードアクセス時の信号の流れを示す図である。 そのフローを以下に示す。 各行頭の番号は図 1 8中の各信号に付した番号に 対応する。
(1) プロセッサコア (18 a) が PA、 PTを設定し、 プロセッサリード信 号 PRを送信する。
(2) プロセッサバスブリッジ (18 b) の制御ロジック (18 c) は FCを 設定し、 リダイレクタ (18 d) は、 それに応じ、 ?入を£ と〇 にェコー する。
(3) プロセッサバスブリッジ (18 b) の制御ロジック (18 c) が CRを 送信する。
(4) 共有メモリキャッシュ (18 η) は CRを受け、 CAにて指定されたキ ャッシュ上のデータが利用できない場合は利用不能信号 N Pを送信し、 利用可 能な場合はキャッシュデータ CDを送信する。 また、 更新キュー (18 k) の 比較器(1 8 m)は、 E Aで指定されるキューがキューレジスタ上にある場合、 競合信号 CO Lを送信する。
(5) プロセッサバスブリッジ(18 b) の制御ロジック (1 8 c) は、 NP、 COLのいずれも受信しなかった場合、 CDを PDにエコーし、 ACKを送信 してアクセスは完了する。 C〇Lを受信した場合は CRを解除した後、 COL が解除されるまで待ち、 COL解除の後に (3) 以降の処理を再度行う。 ここ で、 CO Lを受信せず、 NPを受信した場合の処理は以下で説明する。
図 1 9は、 本発明の実施形態の第 1の態様におけるリ一ドアクセスにて、 共 有メモリキャッシュ上のデータを利用できず、 更新データ要求処理を伴う場合 の信号の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 1 9中の各信号に付した番号に 対応する。 なお,、 途中 (4) までは前項で述べたリードアクセス時のフローと まったく同じであるため、 省略する。
(5) プロセッサバスブリッジ (19 b) の制御ロジック (19 c) が C〇L を受信せず、 NPを受信した場合は、 更新データ要求信号 R Sを送信する。
(6) 更新通知バスブリッジ (1 9 e) の送信部 (1 9 ί) は RSを受け、 バ ス要求信号 NRを送信する。
(7) 更新通知バスプリッジ (1 9 e) の送信部 (1 9 f ) がバス許可信号 N
Gを受信し、 更新通知バスを獲得する。
(8) 更新通知アドレス N Aに E Aがエコーされ、 更新データ要求信号 RVが 全プロセッサに送信される。 NA及ぴ RVは自プロセッサの更新通知バスブリ ッジ監視部 ( 1 9 g ) にもループバックし受信される。
(9) 更新通知バスブリッジ (1 9 e) の監視部 (1 9 g) は NAを SAとし てエコーするとともに、 自プロセッサが送出した RVを検知すると、 自プロセ ッサ内に S Vとしてエコーする。 更新キュー (1 9 k) は SVをキューセット 信号 QSとして受け、 SAの内容をキューセットアドレス QSAとしてキュー レジスタ (1 9 1) にキューイングする。
(10) リードアクセス対象に一致するキューがキューイングされるため、 更 新キュー (1 9 k) より COLが必ず送信される。 COLの受信をもって、 プ 口セッサバスブリッジ (1 9 b) は COLが解除されるまで、 プロセッサコア (1 9 a) からのリードアクセスを保留したまま更新通知と更新データの受信 処理を行レヽながら待機する。
(1 1) (8)で送出された更新デ^ "タ要求を受けて、マスタプロセッサから更 新データが送出され、 データチャネル I F (1 9 h) は更新データアドレス U A、 更新データ UDを設定し、 更新データ受信信号 URを送信する。 これにあ わせて、 キューレジスタ (1 9 1 ) めキュークリアアドレス QCAに UAがセ ッ卜さ る。
(12)、更新キュー (19 k) からリードアクセス対象のキューがクリアされ るため、 CO Lが解除される。
(1 3) プロセッサバスブリッジ (1 9 b) の制御ロジック (1 9 c) は、 C OLの解除を受け、 F Cを制御してリダイレクタ (1 9 d) を制御し、 UAを CAに、 UDを CDと PDにエコーする。
(14) プロセッサバスブリッジ (1 9 b) の制御ロジック (1 9 c) はキヤ ッシュライ ト信号 CWを送信して共有メモリキヤッシュ上の所望のデータを C Dにて更新すると共に、 プロセッサコアに対して ACKを送信し、 リードァク セスを完了する。
図 20は、 本発明の実施形態の第 1の態様において、 他のプロセッサから送 信された更新データ要求に対する、 マスタプロセッサによる応答時の信号の流 れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 20中の各信号に付した番号に 対応する。
(1) 更新通知バスプリッジ (1 9 e) の監視部 (1 9 g) は RVを検知する と、 NAを S Aにエコーすると共に、 更新データ要求信号 S Rをプロセッサ内 部に送信する。
(2) プロセッサバスブリッジ (20 b) の制御ロジック (20 c) は、 自身 がマスタプロセッサである場合、 SRを受けて F Cを設定してリダイレクタ(2 0 d) を制御して S Aを EAと CAにエコーし、 CDと EDを接続する。 ここ で自身がマスタプロセッサでない場合、 SRは無視される。 なお、 制御ロジッ ク (17 c) にて他の処理が行われている場合ー且待機し、 それが完了しだい 本処理を実行する。
(3) プロセッサバスブリッジ (20 b) の制御ロジック (20 c,) は、 CR を共有メモリキャッシュ (2011) に送信する。
(4) 共有メモリキャッシュ (20 η) から CDが送出され EDにエコーされ る。
(5) プロセッサバスブリ ッジ (20 b) の制御ロジック (20 c) は USを 送信し、 ライ トアクセス時の更新データ送出処理と同様に、 データチャネルに 更新データが送出される。
. 図 21は、 本発明の実施形態の第 2の態様におけるライ トアクセス時の信号 の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 21中の各信号に付した番号に 対応する。
(1) プロセッサコア (21 a) がプロセッサアドレス PA、 プロセッサデー タ PD、 プロセッサ転送タイプ PTを設定し、 バース ト転送により複数サイズ のデータをリダイレクタに転送する。
(2) プロセッサバスブリッジ (21 b) の制御ロジック (21 c) はリダイ レクタ機能制御信号 F Cを設定する。 リダイレクタ ( 21 d ) はそれに応じ、 プロセッサァドレス P Aで設定された先頭のァドレスを実効ァドレス E Aにェ コーする。 また、 バースト転送されたデータサイズをカウントし、 そこから実 行ァドレスマスク EMを算出して出力する。 ここで、 実効ァドレスマスクは、 実効アドレスの下位何ビットを無視するかを示す信号である。 PDに設定され た複数サイズのデータはリダイレクタ内部のバッファに格納する。
(3) プロセッサバスブリッジ (21 b) の制御ロジック (21 c) は更新通 知送信信号 N Sを送信する。 (4) 更新通知バスプリッジ (21 e) の送信部 (21 ί) は NSを受け、 バ ス要求信号 NRを送信する。
(5) 更新通知バスプリッジ (21 e) の送信部 (21 f ) がバス許可信号 N Gを受信し、 更新通知バスを獲得する。
(6) 更新通知アドレス NAに E Aが、 更新通知アドレスマスク NMに EMが エコーされ、 更新通知信号 NVが全プロセッサに送信される。 NA、 NM、 N Vは自プロセッサの更新通知バスブリッジ監視部 (2 1 g) にもループバック し受信される。
(7) 更新通知バスプリッジ (21 e) の監視部 (21 g) は NVを受け、 N Aを更新設定アドレス SA、 NMを更新設定アドレスマスク SMにエコーして 更新通知受信信号 SVを送信する。 更新キュー (21 k) は SVをキューセッ ト信号 QSとして受け、 SAの内容をキューセッ トアドレス QS A、 SMの内 容をキューセッ トアドレスマスク QSMとしてキューレジスタ (21 1 ) にキ ュ一イングする。
(8) プロセッサバスブリッジ (21 b) の制御ロジック (21 c) は、 SV を受けると更新データ送信信号 USを送信し、 同時に FCを設定する。 リダイ レクタ (2 I d) はこれに応じてバッファ内に格納した更新データの先頭のデ ータから順番に EDとして設定する。 これを受けたデータチャネル I F (2 1 h) のフレーマ (21 i ) は E AZEM/EDの内容を送信バッファにキュー イングする。 USの送信後、 プロセッサコアにァクナリッジ信号 ACKが送信 され、 プロセッサコア側のアクセスは完了する。
(9) データチャネル I F (21 h) のフレーマ (2 1 i) では、 送信バッフ ァにキューイングされたデータを随時バケツ卜に構築しており、 完了した'分か ら SERDES (21 j ) に送信パラレルデータ TPDとして送出される。 S ERDESは、 これを受け、 データチャネルで搬送される電気信号に変調を行 レ、、 送信シリアルデータ T S Dとして更新データを送出する。
図 22は、 本発明の実施形態の第 2の態様において、 他プロセッサから送出 された更新データ受信時の信号の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 22中の各信号に付した番号に 対応する。
(1) データチャネル I F (22 h) の SERDES ( 22 j ) が受信シリア ルデータ RSDを復調し、 フレーマ (22 i ) に受信パラレルデータ R PDと して送出する。
(2) データチャネル I F ( 22 h ) のフレーマ ('22 i ) は R PDを受け、 データ中のパケットの抽出及び展開を行い、 更新データアドレス UA、 更新ァ ドレスマスク UMに設定し、 更新データ受信信号 URを送信する。 これに合わ せて、 キューレジスタ (22 1 ) のキュークリアアドレス QCAに UAがセッ トされる。 また、 UR送信と同時に更新データを先頭データから順番に UDに i XE ~る。
(3) プロセッサバスブリッジ (22 b) の制御ロジック (22 c) は URを 受け、 リダイレクタ機能制御信号 FCを設定する。 UAと UDは一旦リダイレ クタ内のバッファに格納し、 UAが CA、 UDの先頭データが CDに設定され る。 CAに設定制御ロジック (22 c) にて他の処理が行われている場合、 一 且待機し、 それが完了しだい本処理を実行する。
(4) プロセッサバスブリッジ (22 b) の制御ロジック (22 c) はキヤッ シュライ ト信号 CWを送信し、 これを受けた共有メモリキャッシュ (22 η) は C Αで指定される所望のデータを CDにて更新する。 続けてリダイレクタの バッファに格納された次の更新データを CDに設定し、 CAの値を 1つインク リメントして、 同様のキャッシュメモリ更新処理を、 UMの設定値にしたがつ て、 バッファ內の更新データがなくなるまで繰り返し行う。 その後、 キューク リア信号 QCを送信し、 これを受けた更新キュー (22 k) は、 (2) でセット した QCAをキューレジスタ (22 1 ) からクリアする。
図 23は、 本発明の実施形態の第 3の態様における更新通知を省略したライ トアクセス時の信号の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 23中の各信号に付した番号に 対応する。
(1) プロセッサコア (23 a) がプロセッサ転送タイプ PTにデータオンリ 属性を設定し、 プロセッサアドレス PA、 プロセッサデータ PD、 プロセッサ ライト信号 PWを送信する。 ,
(2) プロセッサバスブリッジ (23 b) の制御ロジック (23 c) は、 リダ ィレクタ機能制御信号 FCを設定する。 リダイレクタ(23 d)はそれに応じ、 プロセッサァドレス P Aを実行ァドレス E Aに、 プロセッサデータ PDを実効 データ EDにエコーする。
(3) プロセッサバスブリッジ (23 b) の制御ロジック (23 c) は、 デー タオンリ属性信号 DOを設定し、 更新データ送信信号 USを送信する。 USの 送信後プロセッサコアにァクナリツジ信号 A C Kが送信され、 プロセッサコア 側のアクセスは完了する。
( 4 ) 更新データ送信信号 U Sとデータオンリ属性信号 D Oを受信したデータ チャネル I F (23 h) のフレーマ (23 i) は E A/EDの内容及びデータ オンリ属性を送信バッファにキューイングする。
(5) データチャネル I F (23 h) のフレーマ (23 i ) では、 送信バッフ ァにキューイングされたデータおよび属性を随時バケツトに構築しており、 完 了した分から SERDES (23 j ) に送信パラレルデータ T P Dとして送出 される。 S ERDE Sはこれを受け、 データチャネルで搬送できる電気信号に 変調を行い、 送信シリアルデータ TSDとして更新データを送出する。 図 24は、 本発明の実施形態の第 3の態様において、 他プロセッサから送出 された更新通知を省略した更新データ受信時の信号の流れを示す図ある。 そのフローを以下に示す。 各行頭の番号は図 24中の各信号に付した番号に 対応する。
(1) データチャネル I F (24 h) の SERDES (24 j ) が受信シリア ルデータ RSDを復調し、 フレーマ (24 ί ) に受信パラレルデータ RPDと して送出する。
(2) データチャネル I F (24 h) のフレーマ (24 i ) は R PDを受け、 データ中のパケットの抽出および展開を行い、 更新データアドレス UA、 更新 データ UD、 データオンリ属性 DOを設定し、 更新データ受信信号 URを送信 する。
(3) プロセッサバスブリッジ (24 b) の制御ロジック (24 c) は更新デ ータ受信信号 URとデータオンリ属性信号 DOを受け、 リダイレクタ機能制御 信号 FCを設定する。 リダイレクタ (24 d) はそれに応じ、 U Aをキヤッシ ユアドレス CAに、 UDをキャッシュデータ CDにエコーする。 制御ロジック (24 c) にて他の処理が行われている場合一旦待機し、 それが完了しだい本 処理を実行する。
(4) プロセッサバスブリッジ (24 b) の制御ロジック (24 c) はキヤッ シュライト信号 CWを送信し、 これを受けた共有メモリキャッシュ (24 η) は C Αで指定される所望のデータを C Dにて更新する。
図 25は、 本発明の実施形態の第 2の態様におけるキャッシュフィル動作に おいて、 システムに増設されたプロセッサが全データ送信要求を行うときの信 号の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 25中の各信号に付した番号に 対応する。 (1) プロセッサバスブリッジ (25 b) の制御ロジック (25 c) は、 自プ 口セッサがシステムに増設されたことを検知すると、 全デ一タ送信要求信号と して RSと I Sを同時に送信する。
(2) 更新通知バスブリッジ (25 e) の送信部 (25 f ) は R Sと I Sを受 け、 バス要求信号 NRを送信する。
(3) 更新通知バスプリッジ (25 e) の送信部 (25 f ) がバス許可信号 N Gを受信し、 更新通知バスを獲得する。
(4) 更新通知バスブリッジ (25 e) の送信部 (25 f ) は RVと N Iを同 時に送信する。
図 26は、 本発明の実施形態の第 4の態様におけるキャッシュフィル動作に おいて、 マスタプロセッサが全データ送信要求に応答して全データ送信を行う ときの信号の流れを示す図である。
そのフローを以下に示す。 各行頭の番号は、 図 26中の各信号に付した番号 に対応する。
(1) マスタプロセッサの更新通知バスブリッジ (26 e) の監視部 (26 g) ' は、 RVと同時に N Iを受信すると、 SRと S Iを同時に送信する。
(2) プロセッサバスブリッジ (26 b) の制御ロジック (26 c) は SRと S Iを同時に受信すると全データ送信要求信号と解釈し、 共有メモリ空間の先 頭のアドレスを送信開始アドレス、 及び、 次送信アドレスとして記憶する。
(3) システムに別のプロセッサが増設され、 マスタプロセッサの制御ロジッ ク (26 c) 1 再び全データ要求信号を受信した場合、 制御ロジック (26 c) は先に記憶した次送信ァドレスを送信開始ァドレスとして記憶する。
(4) 制御ロジック (26 c) はキューェンプティ信号 QEが有効であり、 か つ、 他に要求されている処理がないとき、 リダイレクタ機能制御信号 FCを設 定し、 リダイレクタ (26 d) は先に記憶した次送信アドレスをキャッシュァ ドレス CAに設定し、 制御ロジック (26 c) はキャッシュリード信号 CRを 送信する。
(5) 共有メモリキャッシュ (26 η) は CRを受け、. CAにて指定されたキ ャッシュ上のデータをキヤッシュデータ CDに送信する。
(6) プロセッサバスブリッジ (26 b) のリダイレクタ (26 d) は、 先に 設定した C Aを実効ァドレス EAにも設定し、 CDを実効データ EDにエコー する。 制御ロジック (26 c) はデータオンリ属性 DOを設定し、 更新データ 送信信号 USを送信する。 これを受けたデータチャネル I F (26 h) のフレ 一マ (26 i ) は EA/EDの内容及びデータオンリ属性を送信バッファにキ ユーイングする。
(7) プロセッサバスブリッジ (26 b) の制御ロジック (26 c) は、 送信 したァドレスの次のァドレスを次送信ァドレスとして記憶する。 送信したァド レスが共有メモリ空間の最後のァドレスに達した場合は、 共有メモリ空間の先 頭のァドレスを次送信ァドレスとして記憶する。 次送信ァドレスが先に記憶し た送信開始アドレスと一致した場合、 全データ送信を終了する。
(8) (3) 〜 (7) の手順を繰り返して、 順次データを送出する。
(9) データチャネル I F (26 h) のフレーマ (26 i) では、 送信バッフ ァにキュ一されたデータを随時バケツトに構築しており、 完了した分から SE RDES (26 j ) に送信パラレルデータ TPDとして送出される。 SERD ESはこれを受け、 データチャネルで搬送できる電気信号に変調を行い、 送信 シリアルデータ T SDとしてデータを送出する。
図 27は、 本発明の実施形態の第 4の態様におけるキャッシュフィル動作に おいて、 システムに増設されたプロセッサが全データ受信を行うときの信号の 流れを示す図である。
そのフローを以下に示す。 各行頭の番号は図 27中の各信号に付した番号に 対応する。
(1) 全データ受信動作中に制御ロジック (27 c) 力 プロセッサリード信 号 PR、または、プロセッサライト信号 PWを受信した場合、制御ロジック (2 7 c) は、 この要求を保留する。 全データ受信動作中であっても、 更新キュー へのキューィング、クリァはそれぞれ図 16、図 17で示されたフローで行う。
(2) データチャネル I F (27 h) の SERDES (27 j ) が受信シリア ルデータ RSDを復調し、 フレーマ (27 i ) に受信パラレルデータ R PDと して送出する。
(3) データチャネル I F (27 h) のフレーマ (27 i ) は R PDを受け、 データ中のパケットの抽出および展開を行い、 更新データアドレス UA、 更新 データ UD、 データオンリ属性 DOを設定し、 更新データ受信信号 URを送信 する。
(4) プロセッサバスブリッジ (27 b) の制御ロジック (27 c) は URを 受け、 リダイレクタ機能制御信号 F Cを設定する。 リダイレクタ ( 27 d )は、 それに応じ、 UAをキャッシュアドレス CAに、 UDをキャッシュデータ CD にエコーする。 制御ロジック (27 c) にて他の処理が行われている場合一旦 待機し、 それが完了次第本処理を実行する。
(5) プロセッサバスブリッジ (27 b) の制御ロジック (27 c) はキヤッ シュライト信号 CWを送信する。 データオンリ属性 D〇を受信しているので、 キュークリア信号 QCは送信しない。
(6)キャッシュライト信号 CWを受けた共有メモリキャッシュ(2711)は、 C A及び CDで指定される所望のデータを更新し、 更新前の状態において該デ ータが利用不可能な状態であった場合、 利用不可能信号 NPを送信する。
(7) プロセッサバスブリッジ (27 b) の制御ロジック (27 c) は、 全デ ータ受信動作中に利用不能信号 NPを受信した回数を計測することで、 共有メ モリキャッシュの全領域が有効データでフィルされたことを認識すると、 全デ ータ受信動作を終了する。
(8) 全データ受信動作が終了したときに、 保留されているプロセッサリード 信号 PR、 または、 プロセッサライ ト信号 PWがあった場合には、 'その動作を 開始する。
図 28は、 本発明の実施形態の第 5の態様に基づくライ トアクセス時の信号 の流れを示す図である。
そのフローを以下に示す。
(1) プロセッサコア (28 a) が PA、 PD、 P Tを設定して P Wを送信。 (2) プロセッサバスブリッジ (28 b) の制御ロジック (28 c) はリダイ レクタ機能制御信号 FCを設定する。 リダイレクタ (28 d) はそれに応じ、 プロセッサァドレス P Aを実効ァドレス E Aとキヤッシュアドレス C Aに、 プ 口セッサデータ P Dを実効データ ED及びキヤッシュデータ CDにエコーする <
(3) プロセッサバスブリッジ (28 b) の制御ロジック (28 c) は更新通 知送信信号 NSを送信する。 あわせて、 PAが規定のアドレス空間にある場合 に即時更新属性送信信号 I Sを送信する。
(4) 更新通知バスブリッジ (28 e) の送信部 (28 f ) は N Sを受け、 N Rを送信する。
(5) 更新バスプリッジ (28 e) の送信部 (28 f ) が NGを受信し、 更新 通知バスを獲得する。
(6) 更新通知アドレス NAに EAが、 即時更新属性信号 N Iに I Sが、 即時 更新データ N Dに E Dがそれぞれェコ一され、 更新通知信号 N Vが全プロセッ サに送信される。 NA、 ND、 NV、 N Iは自プロセッサの更新通知パスプリ ッジ監視部 (28 g) にもループバックし受信される。
(7) 更新通知バスブリッジ (28 e) の監視部 (28 g) は、 NVを N I と 共に受信すると、 即時更新信号 S I として自プロセッサ内にエコーする。 他の プロセッサ上でも同じ動作が行われる。
(8) プロセッサバスブリッジ (2 8 b) の制御ロジック (28 c) は、 リダ ィレクタ機能制御信号 FCを設定する。 リダイレクタ (28 d)はそれに応じ、 SAを CAに、 SDを CDにエコーする。 他のプロセッサ上でも同じ動作が行 われる。 この際プロセッサバスブリッジ (2 8 b) が別の処理を行っている場 合、 その処理の完了後にこの処理を最優先で行う。
(9) プロセッサバスブリ ッジ (2 8 b) の制御ロジック (28 c) は、 キヤ ッシュライ ト信号 CWを送信し、 これを受けた共有メモリキャッシュ (28 η) は C Αで指定される所望のデータを CDにて更新する。 他のプロセッサ上でも 同じ動作が行われる。
(1 0) プロセッサコアに ACKが送信され、 プロセッサコア側のアクセスが 完了する。
本発明の実施形態の第 6の態様に基づくライ トアクセスは、 特定アドレスへ のライト時に予約データを用いるもので、 そのフローは第 5の態様におけるラ ィトアクセスにほぼ準じる。 以下の点が差分である。
(8) プロセッサバスブリッジ (28 b) のリダイレクタ (28 d) は、 SA がそのアクセスに予約データを用いる特定ァドレスと解釈される場合、 SDを 無視し、 SAに対応する予約データを生成して CDに出力する。 . 産業上の利用可能性
以上の通り、 共有メモリキャッシュを具備するプロセッサにより構成される 共有メモリ型マルチプロセッサシステムにおいて、 本発明の適用によりコヒー レンシ保証に必要な時間と、 データ転送に必要な時間が明確に分離され、 共有 メモリ空間のアクセスにおいて従来技術に存在した問題が以下の点で解決され る。
-バス占有時間の最小化と、 不要なレイテンシ増大要因の排除
-データ転送経路のレイテンシ隠蔽と、 これによる帯域拡大の容易化
これにより、 共有メモリキャッシュの高速性を最大限に活用することが可能 となり、 共有メモリ空間アクセスの帯域とレイテンシの双方が改善され、 シス テムの処理能力向上に寄与することができる。

Claims

請求の範囲
1 . それぞれが共有メモリキャッシュを備える複数のプロセッサと少なくとも 1つの共有メモリが相互に結合されたマルチプロセッサシステムにおいて、 共有メモリ領域のデータの更新において、 更新に用いるべきデータをプロセ ッサと共有メモリ との間で専用に送受する専用回線手段と、
データの更新通知を、 各プロセッサに該更新通知を送信する権利を調停しな がら、 伝送するグローバルバス手段とを備え、
プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送 信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、 該更新通知によって示されるァドレスへのアクセスを制限し、 各プロセッサ及 び共有メモリに到着した更新に用いるべきデータによって、 共有メモリ領域の 該ァドレスのデータが更新された後、 該ァドレスへのアクセスを許可すること を特徴とするマルチプロセッサシステム。
2 . 前記専用回線手段は、 前記プロセッサからの回線を前記共有メモリに接続 するリビータ手段を備えることを特徴とする請求項 1に記載のマルチプロセッ サシステム。
3 . 前記専用回線手段は、 前記複数のプロセッサのそれぞれに設けられた専用 線からなることを特徴とする請求項 2に記載のマルチプロセッサシステム。
4 . 前記更新通知に複数の更新データを対応付け、 1度の更新で複数の更新デ ータ単位の更新を行うことを特徴とする請求項 1に記載のマルチプロセッサシ ステム。
5 . 前記更新通知では、 1度の更新で更新に使うデータのサイズを可変とする ことを特徴とする請求項 4に記載のマルチプロセッサシステム。
6 . 前記共有メモリ空間上の、 キャッシュコヒーレンシの維持が必要ないデー タの更新は、 前記更新通知を送信することなく、 該キャッシュコヒーレンシの 維持が必要でないデータのァドレスに更新データを送信することによって、 行 うことを特徴とする請求項 1に記載のマルチプロセッサシステム。
7 . 前記マルチプロセッサシステムに新しいプロセッサが増設された場合、 該 プロセッサの共有メモリキヤッシュに、 他のプロセッサの共有メモリキヤッシ ュの内容を転送し、 その後に、 該新しいプロセッサを運用することを特徴とす る請求項 1に記載のマルチプロセッサシステム。
8 . 前記グローバルバス手段を用いて、 更新通知と更新に使うべきデータを転 送して、 前記共有メモリ領域の更新を行う手段を更に備えることを特徴とする 請求項 1に記載のマルチプロセッサシステム。
9 . 前記共有メモリ領域の特定のアドレスへのアクセスについては、 前記更新 通知のみを送受し、該更新通知を受け取ったプロセッサあるいは共有メモリは、 予め定められたデータを用いて、 該ァドレスの更新を行うことを特徴とする請 求項 1に記載のマルチプロセッサシステム。
1 0 . それぞれが共有メモリキャッシュを備える複数のプロセッサと共有メモ リが相互に結合されたマルチプ口セッサシステムにおけるメモリアクセスを高 速化する方法において、
共有メモリ領域のデータの更新において、 更新に用いるべきデータをプロセ ッサと共有メモリとの間で専用に送受する専用回線を設けるステップと、 データの更新通知を、 各プロセッサに該更新通知を送信する権利を調停しな がら、 伝送するグ口一バルバスを設けるステップと、
プロセッサからの該データの更新通知の送信と更新に用いるべきデータの送 信を独立に行い、各プロセッサ及び共有メモリでは、更新通知の受信によって、 該更新通知によって示されるァドレスへのアクセスを制限し、 各プロセッサ及 び共有メモリに到着した更新に用いるべきデータによって、 共有メモリ領域の 該ァドレスのデータが更新された後、 該ァドレスへのァクセスを許可するステ ップと、、
を備えることを特徴とする方法。
PCT/JP2003/006868 2003-05-30 2003-05-30 マルチプロセッサシステム WO2004107180A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2003/006868 WO2004107180A1 (ja) 2003-05-30 2003-05-30 マルチプロセッサシステム
JP2005500234A JP3764893B2 (ja) 2003-05-30 2003-05-30 マルチプロセッサシステム
US11/285,184 US7320056B2 (en) 2003-05-30 2005-11-23 Multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/006868 WO2004107180A1 (ja) 2003-05-30 2003-05-30 マルチプロセッサシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/285,184 Continuation US7320056B2 (en) 2003-05-30 2005-11-23 Multi-processor system

Publications (1)

Publication Number Publication Date
WO2004107180A1 true WO2004107180A1 (ja) 2004-12-09

Family

ID=33485807

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/006868 WO2004107180A1 (ja) 2003-05-30 2003-05-30 マルチプロセッサシステム

Country Status (3)

Country Link
US (1) US7320056B2 (ja)
JP (1) JP3764893B2 (ja)
WO (1) WO2004107180A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375067C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
JP2008250373A (ja) * 2007-03-29 2008-10-16 Toshiba Corp マルチプロセッサシステム
JP2016157462A (ja) * 2011-10-26 2016-09-01 クゥアルコム・テクノロジーズ・インコーポレイテッド キャッシュコヒーレンシを有する集積回路

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179085A (ja) * 2005-12-26 2007-07-12 Fujitsu Ltd ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム
JP4818820B2 (ja) * 2006-06-07 2011-11-16 ルネサスエレクトロニクス株式会社 バスシステムおよびバススレーブならびにバス制御方法
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
JP2009080747A (ja) * 2007-09-27 2009-04-16 Panasonic Corp マルチプロセッサ装置および情報処理装置
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US20090257263A1 (en) * 2008-04-15 2009-10-15 Vns Portfolio Llc Method and Apparatus for Computer Memory
US9471532B2 (en) * 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
US9448954B2 (en) * 2011-02-28 2016-09-20 Dsp Group Ltd. Method and an apparatus for coherency control
WO2012144012A1 (ja) * 2011-04-18 2012-10-26 富士通株式会社 スレッド処理方法、およびスレッド処理システム
JP5936152B2 (ja) 2014-05-17 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリアクセストレース方法
CN109491587B (zh) * 2017-09-11 2021-03-23 华为技术有限公司 数据访问的方法及装置
CN112100093B (zh) * 2020-08-18 2023-11-21 海光信息技术股份有限公司 保持多处理器共享内存数据一致性的方法和多处理器系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56163572A (en) * 1980-05-19 1981-12-16 Hitachi Ltd Data processing system
EP0510821A1 (en) * 1991-04-22 1992-10-28 International Business Machines Corporation Multiprocessor cache system
EP0608663A1 (en) * 1993-01-25 1994-08-03 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. A multi-processor system with shared memory
EP0669578A2 (en) * 1994-02-24 1995-08-30 Hewlett-Packard Company Improved ordered cache-coherency scheme
US5564034A (en) * 1992-09-24 1996-10-08 Matsushita Electric Industrial Co., Ltd. Cache memory with a write buffer indicating way selection
US6484220B1 (en) * 1999-08-26 2002-11-19 International Business Machines Corporation Transfer of data between processors in a multi-processor system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112287A (en) * 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
JP3100807B2 (ja) * 1992-09-24 2000-10-23 松下電器産業株式会社 キャッシュメモリ装置
US6182176B1 (en) * 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
US5754865A (en) * 1995-12-18 1998-05-19 International Business Machines Corporation Logical address bus architecture for multiple processor systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56163572A (en) * 1980-05-19 1981-12-16 Hitachi Ltd Data processing system
EP0510821A1 (en) * 1991-04-22 1992-10-28 International Business Machines Corporation Multiprocessor cache system
US5564034A (en) * 1992-09-24 1996-10-08 Matsushita Electric Industrial Co., Ltd. Cache memory with a write buffer indicating way selection
EP0608663A1 (en) * 1993-01-25 1994-08-03 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. A multi-processor system with shared memory
EP0669578A2 (en) * 1994-02-24 1995-08-30 Hewlett-Packard Company Improved ordered cache-coherency scheme
US6484220B1 (en) * 1999-08-26 2002-11-19 International Business Machines Corporation Transfer of data between processors in a multi-processor system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARCHIBALD, J, BAER, J-L; "Cache coherence protocols: Evaluation using a multiprocessor simulation model"; ACM Transaction on Computer Systems, November 1986, Vol. 4, No. 4, pages 273-298 *
UCHIBA, M, et al.: "Kyotsu memory-hoshiki no multi processor system ni okeru seino kojo shisaku", The Institute of Electronics 2003, Nen Sogo Taikai Koen Ronbunshu Tsushin 2, 19 March 2003, page 18 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375067C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
US8380933B2 (en) 2007-03-20 2013-02-19 Kabushiki Kaisha Toshiba Multiprocessor system including processor cores and a shared memory
JP2008250373A (ja) * 2007-03-29 2008-10-16 Toshiba Corp マルチプロセッサシステム
JP2016157462A (ja) * 2011-10-26 2016-09-01 クゥアルコム・テクノロジーズ・インコーポレイテッド キャッシュコヒーレンシを有する集積回路

Also Published As

Publication number Publication date
US20060075197A1 (en) 2006-04-06
JPWO2004107180A1 (ja) 2006-07-20
JP3764893B2 (ja) 2006-04-12
US7320056B2 (en) 2008-01-15

Similar Documents

Publication Publication Date Title
WO2004107180A1 (ja) マルチプロセッサシステム
JP2654369B2 (ja) プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置
US6425021B1 (en) System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
US6145016A (en) System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
US6950438B1 (en) System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US5740467A (en) Apparatus and method for controlling interrupts to a host during data transfer between the host and an adapter
CN102255794B (zh) 远程消息收发吞吐量优化和等待时间缩短用系统和方法
US7613197B2 (en) Multi-processor system and message transferring method in the same
US20020129173A1 (en) Communications system and method with non-blocking shared interface
US20100064082A1 (en) Communication module
US6938094B1 (en) Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US20050132089A1 (en) Directly connected low latency network and interface
US6888843B2 (en) Response virtual channel for handling all responses
WO2005015428A1 (en) System and method for a distributed shared memory
JPH01147647A (ja) データ処理装置
JPH04229350A (ja) 媒体アクセス制御/ホストシステムインターフェースを実施するための方法及び装置
EP1276045A2 (en) Cluster system, computer and program
KR20140084155A (ko) 네트워크 프로세서에서의 멀티-코어 상호접속
WO2015084506A1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
KR20050056934A (ko) 메모리 상호 접속에서 판독 착수 최적화를 위한 방법 및장치
EP0789302B1 (en) Communication network end station and adaptor card
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JP4104939B2 (ja) マルチプロセッサシステム
KR100766666B1 (ko) 멀티프로세서 시스템
JP2007102447A (ja) 演算処理装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR US

WWE Wipo information: entry into national phase

Ref document number: 2005500234

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 1020057010950

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020057010950

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 11285184

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 11285184

Country of ref document: US