WO2007105256A1 - マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法 - Google Patents

マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法 Download PDF

Info

Publication number
WO2007105256A1
WO2007105256A1 PCT/JP2006/303439 JP2006303439W WO2007105256A1 WO 2007105256 A1 WO2007105256 A1 WO 2007105256A1 JP 2006303439 W JP2006303439 W JP 2006303439W WO 2007105256 A1 WO2007105256 A1 WO 2007105256A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
cache
request
comparison
read
Prior art date
Application number
PCT/JP2006/303439
Other languages
English (en)
French (fr)
Inventor
Naohiro Kiyota
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/JP2006/303439 priority Critical patent/WO2007105256A1/ja
Priority to EP06714578A priority patent/EP1988465B1/en
Priority to JP2008504910A priority patent/JP4335300B2/ja
Publication of WO2007105256A1 publication Critical patent/WO2007105256A1/ja
Priority to US12/230,019 priority patent/US7945754B2/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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Definitions

  • Multiprocessor system processor, and cache control method
  • the present invention relates to a multiprocessor system and a cache control method having a plurality of processors each including a primary cache and a secondary cache shared by the plurality of processors, and in particular, data by a plurality of caches.
  • the present invention relates to a multiprocessor system, a processor, and a cache control method capable of preventing data transfer and suppressing delay in data transfer between caches.
  • frequently used data is stored in a cache memory different from the main memory. Since the cache memory is smaller in capacity than the main memory, but can be accessed at high speed, it is possible to increase the processing speed by storing frequently used data in the cache memory while replacing it frequently. it can.
  • L1 cache the fastest primary cache
  • L2 cache the next high-speed secondary cache
  • a plurality of processors may be mounted on one information processing apparatus.
  • an on-chip multiprocessor system in which a plurality of processors are mounted on one chip can be realized as a kind of such a multiprocessor system.
  • an L2 cache shared by each processor may be provided in addition to the L1 cache in each processor (see, for example, Patent Document 1).
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2002-373115
  • L1 cache # 1 and L1 cache # 2 both store data A, so a cache miss occurs and L2 cache control controls L2 cache.
  • Ml requests that request data A to move in (Move In: abbreviated as “MI”) are made simultaneously.
  • the data A is also transferred to the L1 cache # 1 in the L2 cache control unit.
  • the M1 request for data A is also sent from the L1 cache # 2 to the L2 cache control unit, the data A is transferred from the L1 cache # 1 to the L1 cache # 1, and at the same time, the data A is muted from the L1 cache # 1.
  • a MO command is issued to move out (hereinafter abbreviated as “MO”).
  • the data A store processing has not been completed.
  • the MO request for requesting the MO of data A is made as shown in Figure 43.
  • the L2 cache control unit transfers data A to L1 cache # 2.
  • L1 cache # 2 the store processing of data A has not been completed. However, according to the MO instruction from the L2 cache control unit, as shown in Figure 45, the MO requesting the MO of data A Make a request and transfer data A to the L2 cache controller. At the same time, the L2 cache control unit transfers data A to L1 cache # 1.
  • An Ml request is made from the L1 cache # 2 to the L2 cache control unit, and an MO instruction is issued from the L2 cache control unit to the L1 cache # 1.
  • the present invention has been made in view of the strong point, and can prevent data from being shared by a plurality of caches and suppress delays in data transfer between caches. It is an object to provide a multiprocessor system, a processor, and a cache control method.
  • the present invention provides a multi-processor system having a plurality of processors each including a primary cache and a secondary cache shared by the plurality of processors.
  • the processor has a reading means for reading data from a primary cache in its own processor, and data to be read is stored in the primary cache, and in this case, the data is written to the primary cache.
  • Request means for requesting externally, measurement means for measuring an elapsed time after a write request by the request means, accepting means for accepting a read command for reading data in the primary cache from the outside, and the accepting means Specific information for specifying the data for which the read command is accepted by and the data requested to be written by the request means
  • the reading means Control means for stopping the reading of data according to the read command.
  • control unit may read data according to the read command to the reading unit when the specific information is not the same as a result of the comparison by the comparing unit. It includes generation means for generating a requested read request.
  • the generation unit may determine that the elapsed time measured by the measurement unit is equal to or longer than a predetermined time even if the specific information is the same as a result of the comparison by the comparison unit. And generating a data read request according to the read command.
  • control unit may read the data that has been read out when the elapsed time measured by the measurement unit has reached a predetermined time. It is made to carry out.
  • the comparing means is provided in a data main memory.
  • the address is compared as specific information.
  • the present invention is characterized in that in the above invention, a part of an address corresponding to data and a way in the primary cache are compared as specific information.
  • the present invention is characterized in that, in the above-mentioned invention, the measuring means measures the elapsed time of the force by writing data in response to a write request by the writing means.
  • the present invention is a processor including a cache for storing data, the writing means for writing data to the cache, and after the data is written to the cache by the writing means.
  • a measuring means for measuring the elapsed time of the data, a receiving means for receiving a read command for reading the cache data, external information for specifying the data for which the read command has been received by the receiving means, and the writing means.
  • Comparison means for comparing written information specifying specific information and comparison information by the comparison means, the specific information is the same, and the elapsed time measured by the measuring means is less than a predetermined time
  • a reading control means for stopping reading of data according to the reading command.
  • the present invention is also a cache control method in a multiprocessor system having a plurality of processors each including a primary cache and a secondary cache shared by the plurality of processors.
  • a request process that externally requests writing of the data to the primary cache, and measurement of elapsed time is started after a write request in the request process.
  • Process an accepting step for accepting a read command for reading the data in the primary cache, and data for which the read command is accepted in the accepting step.
  • the external to write the data to the primary cache measure the elapsed time after the write request, accept a read command to read the primary cache data from the outside, and accept the read command Compares the specific information specifying the data with the specific information specifying the data requested to be written, and if the comparison shows that the specific information is the same and the measured elapsed time is less than the predetermined time, the read command Stops reading data according to. For this reason, it is possible to secure time for processing this data without reading the powerful data written in the primary cache, preventing data from being shared by multiple caches and writing the data. Data other than cigarette force data can be read as usual to suppress data transfer delays between caches.
  • the read request for requesting the data read according to the read command is generated, so the data that does not match the data just written Can read the primary cache power immediately after the read command is accepted.
  • the data read request corresponding to the read command is generated when the measured elapsed time is equal to or longer than the predetermined time. Therefore, even for the most recently written data, if the time required for processing is exceeded after writing, the primary cache power is read immediately after the read command is accepted, and data transfer The delay can be further suppressed.
  • the reading from the primary cache is stopped once in order to cause the reading of the data to be stopped to be performed. For data, delay of data transfer can be minimized.
  • the address of the data in the main memory is compared as the specific information, it is possible to reliably determine whether the data matches or does not match.
  • data is written to the cache, the elapsed time since the data is written to the cache is measured, and a read command for reading the cache data is also accepted by the external force.
  • the specific information that identifies the received data is compared with the specific information that identifies the written data, and the comparison shows that the specific information is the same and the measured elapsed time is less than the specified time Stop reading data according to the read command. For this reason, it is possible to secure time for processing this data so that it is not possible to read the powerful data written in the cache.
  • Data other than force data can be read as usual to suppress data transfer delays between caches.
  • FIG. 1 is a block diagram showing a main configuration of a multiprocessor system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing an internal configuration of an L1 cache control unit according to one embodiment.
  • FIG. 3 is a flowchart showing an operation of the L1 cache control unit according to the embodiment.
  • Fig. 41 shows the state of the cache during the store process.
  • Fig. 4 2 is a diagram following Fig. 41.
  • Fig. 4-3 is a diagram following Fig. 4-2.
  • Figure 4 4 is a diagram subsequent to FIG 3.
  • FIG. 4-5 follows Fig. 4-4.
  • Fig. 46 is a diagram following Fig. 45.
  • FIG. 5 is a diagram showing an example of a processing cycle of pipeline processing.
  • the present invention will be described in detail with reference to the drawings.
  • the power described by taking as an example the case where the information processing apparatus includes two CPUs as processors.
  • the present invention can also be applied to a case where three or more processors are provided.
  • FIG. 1 is a block diagram showing a main configuration of a multiprocessor system according to an embodiment of the present invention.
  • the multiprocessor system shown in the figure includes two CPUs, and each CPU includes an L1 cache control unit 100, an L1 cache 200, an instruction control unit 300, and an arithmetic processing unit 400. Further, an L2 cache control unit 500 is connected to the L1 cache control unit 100 of each CPU, the L2 cache control unit 500 is connected to the L2 cache 600, and the L2 cache 600 is connected to the main memory 700.
  • the LI cache control unit 100 controls data move-in (Ml) and data move-out (MO) in the L1 cache in response to a request 'command from the instruction control unit 300 and the L2 cache control unit 500.
  • Ml data move-in
  • MO data move-out
  • the L1 cache control unit 100 holds the address of the data requested by Ml, and when the MO instruction is issued from the L2 cache control unit 500, the L1 cache control unit 100 holds the address of the data to be MO. The MO is stopped if the addresses match within a certain period from the Ml request.
  • the specific configuration / operation of the L1 cache control unit 100 will be described in detail later.
  • the L1 cache 200 is a high-speed cache memory, stores data to be mixed in accordance with the control of the L1 cache control unit 100, and outputs data to be MO.
  • the instruction control unit 300 issues instructions related to data writing and reading according to the arithmetic processing in the arithmetic processing unit 400, and acquires necessary data from the L1 cache 200, the L2 cache 600, or the main memory 700.
  • the arithmetic processing unit 400 performs arithmetic processing on the data acquired by the instruction control unit 300.
  • the L2 cache control unit 500 stores the data and controls the L2 cache 600 or the L1 cache 200 of another CPU. Issues a data MO instruction to the cache controller 100.
  • the L2 cache 600 is a cache memory having a larger capacity and a lower speed than the L1 cache 200, and is shared by two CPUs.
  • the main memory 700 is a main storage device, and is a storage device having a larger capacity and a lower speed than the L2 cache 600.
  • FIG. 2 is a block diagram showing an internal configuration of the L1 cache control unit 100 according to the present embodiment.
  • the L1 cache control unit 100 includes a write Z read unit 101, an Ml request generation unit 102, a connection unit 103, an Ml data transmission unit 104, an Ml request address holding unit 105, a power counter 106, an MO It has a request generation unit 107, an MO request address acquisition unit 108, a comparison unit 109, and an MO data transmission unit 110.
  • the write Z reading unit 101 searches the L1 cache 200 when an instruction such as a data store request is issued from the instruction control unit 300, and if the target data is stored in the L1 cache 200 ( Cache hit), this data is read out and output to the instruction control unit 300. If the target data is not stored in the L1 cache 200 (cache miss), The MI request generation unit 102 is notified of this. Then, the writing Z reading unit 101 writes the Ml data to be Ml sent from the Ml data sending unit 104 to the L1 cache 200. When the MO request for data is output from the MO request generation unit 107, the write Z reading unit 101 reads out the target data from the L1 cache 200 and outputs it to the MO data transmission unit 110.
  • the Ml request generation unit 102 When notified that the cache miss has occurred from the write Z reading unit 101, the Ml request generation unit 102 generates an Ml request including the address of the data in order to Ml this data L1 cache 200. And output to the connection unit 103 and the Ml request address holding unit 105.
  • connection unit 103 connects the L1 cache control unit 100 and the L2 cache control unit 500, and transfers the Ml request output from the Ml request generation unit 102 to the L2 cache control unit 500.
  • Ml data is transferred from the cache control unit 500 according to the request, this Ml data is output to the Ml data sending unit 104.
  • the connection unit 103 notifies the MO request generation unit 107 of the fact and sends it from the MO data transmission unit 110.
  • the MO data that has been MO is transferred to the L2 cache control unit 500.
  • the Ml data sending unit 104 sends the Ml data together with the MI request in order to Ml the Ml data transferred from the L2 cache 600 or the L1 cache 200 of another CPU to the L1 cache 200. Write Send to Z reading unit 101.
  • the Ml request address holding unit 105 sets the address (MI request address) of data included in the generated Ml request.
  • the counter 106 is instructed to start. That is, the Ml request address holding unit 105 holds the address of the data to be Ml to the L1 cache 200 and starts the counter 106 to count up.
  • the counter 106 When the start is instructed from the Ml request address holding unit 105, the counter 106 starts counting up and resets the counter value to 0 when the counter value reaches a predetermined threshold value. The counter 106 notifies the comparison unit 109 of the start timing and the reset timing.
  • the MO request generation unit 107 When the MO instruction reaches the connection unit 103, the MO request generation unit 107 outputs the address of the data for which the MO is requested (MO request address) to the MO request address acquisition unit 108. .
  • MO request generating section 107 When MO execution is instructed from comparing section 109, MO request generating section 107 generates an MO request including the MO request address and outputs the MO request to write Z reading section 101.
  • the MO request address is temporarily stored. When a certain period of time passes and the execution of the MO is permitted by the comparison unit 109, the held MO request is retained. An MO request including an address is generated and output to the write Z reading unit 101.
  • the MO request address acquisition unit 108 acquires and holds the MO request address included in the MO instruction from the MO request generation unit 107 when the MO instruction is issued by the L2 cache control unit 500.
  • the comparison unit 109 compares the MO request address with the Ml request address held by the Ml request address holding unit 105. Then, the comparison unit 109 determines that the MO request address and the Ml request address do not match, and that the MO is requested and the store processing for the data is scheduled! Instructs the generation unit 107 to execute the MO.
  • the comparison unit 109 determines whether the counter 106 is not reset and is operating. Then, if the counter 106 is in operation, the comparison unit 109 determines that the store process for the data at this address is scheduled because the elapsed time since the Ml request is issued is short, and the MO request Instructs the generation unit 107 to cancel the MO. If the counter 106 is reset and the power counter value ⁇ , the comparing unit 109 has passed a sufficient time since the Ml request was issued, and the store processing for the data at this address has been completed. The MO request generator 107 is instructed to execute MO.
  • the comparison unit 109 instructs the MO request generation unit 107 to cancel the MO
  • the comparison unit 109 permits the execution of the canceled MO.
  • the MO data sending unit 110 sends the MO data read from the L1 cache 200 in response to the MO request to the connection unit 103 in order to output it to the L2 cache control unit 500.
  • a store request for requesting data rewrite is issued by the instruction control unit 300 (step S101).
  • the issued store request is received by the write Z read unit 101 of the L1 cache control unit 100, and the write Z read unit 101 retrieves data to be stored from the L1 cache 200 (step S102).
  • step S102 No if data is stored in the L1 cache 200 and a cache hit occurs (step S102 No), this data is read from the L1 cache 200, output to the instruction control unit 300, and is output by the arithmetic processing unit 400.
  • Store processing is executed (step S107).
  • step S102 if no data is stored in the L1 cache 200 and a cache miss occurs (step S102 Yes), the writing Z reading unit 101 notifies the Ml request generation unit 102 to that effect, and Ml The request generation unit 102 generates an Ml request including the address of data to be stored (step S103). The generated MI request is output to the Ml request address holding unit 105.
  • the Ml request address holding unit 105 holds the Ml request address (that is, the address of the data to be stored) and instructs the start of the counter 106. (Step S 104).
  • the Ml request generated by the Ml request generation unit 102 is transmitted to the L2 cache control unit 500 via the connection unit 103, and is transmitted from the L2 cache control unit 500 force cache 600 or the L1 cache 200 of another CPU. Acquires the Ml request address data and transfers it to the L1 cache control unit 100. This data is output as Ml data to be Ml to the L1 cache 200 from the Ml data sending unit 104 to the writing Z reading unit 101 together with the Ml request, and written to the L1 cache 200 by the writing Z reading unit 101 (step S1). S105).
  • the MO instruction from the L2 cache control unit 500 is accepted at any time (step S106), and when the MO instruction does not reach the connection unit 103 (step S106 No), the L1 The stored data is stored in response to a cache miss in the cache 200 (step S107).
  • the MO request generation unit 107 outputs the MO request address included in the MO command to the MO request address acquisition unit 108.
  • the MO request address and the Ml request address storage unit 105 store the MO request address. It is compared whether the MI request address matches (step S108). Here, if the compared addresses match, it means that an MO is requested for the data Ml stored in the L1 cache 200 for the current store process. Also, the fact that the compared addresses do not match means that an MO is requested for data other than the data that has been stored in the L1 cache 200 for the current store process.
  • the comparison unit 109 instructs the MO request generation unit 107 to execute the MO, and the MO request generation unit 107 includes the MO request address.
  • a request is generated and output to the write Z reading unit 101.
  • the data of the MO request address is read from the L1 cache 200 by the write Z reading unit 101, and output to the L2 cache control unit 500 through the MO data sending unit 110 and the connection unit 103, and the data MO Is executed (step S112).
  • the comparison unit 109 determines whether or not the counter 106 is operating, in other words, whether or not the counter value is 0. Determination is made (step S109). Here, if the counter 106 is not operating and the counter value is 0 (step S109 Yes), sufficient time has passed since the data was MId to the L1 cache 200 for the current store processing. Therefore, it is determined that the store process has been completed, and the comparison unit 109 instructs the MO request generation unit 107 to execute MO.
  • step S109 No if the counter 106 is running and the counter value is not 0 (step S109 No), there is still a sufficient amount of time after the data is stored in the L1 cache 200 for the store process.
  • the comparison unit 109 instructs the MO request generation unit 107 to cancel the MO. Then, the MO request generation unit 107 cancels the MO without generating the MO request address force MO request (step S110). At this time, the MO request address is temporarily held by the MO request generation unit 107.
  • step S111 the data that has just been Ml stored in the L1 cache 200 is not MOed, and during this time, store processing is executed in accordance with the store request from the instruction control unit 300 (step S111). ). Thereafter, when the counter 106 counts up the counter value to a predetermined threshold value and resets it to 0, the comparison unit 109 is notified of this. And The comparison unit 109 instructs the MO request generation unit 107 to execute the canceled MO because the counter value has reached 0 (step S109 Yes).
  • the MO request generation unit 107 instructed to execute the MO generates an MO request from the held MO request address and outputs the MO request to the write Z read unit 101, and the data is read from the L1 cache 200.
  • the MO is executed (step S 112).
  • the MO of data when the MO of data is requested after Ml to the L1 cache is requested, the MO is requested! Ml is compared with the address of the requested data, and if the addresses match and a certain period has not passed since Ml was requested, the MO of the data is stopped. For this reason, data that is stored in the cache is not MOed, and other data is MOed, preventing data from being shared by multiple caches and suppressing data transfer delays between caches. can do.
  • the cache when configured by, for example, a set associative method, the Ml request address and the MO request address are compared, and at the same time, the data way and the MO to be performed are compared. May be compared with the way of the required data.
  • the MO of the data is stopped.
  • the set-associative method it is sufficient to compare the addresses only with respect to the index portion which is a part of the addresses, so that the circuit size can be reduced as compared with the case where the entire addresses are compared. .
  • the counter starts when the Ml request address is held.
  • the timing of starting the counter may be the timing when the data is Ml in response to the Ml request. . By doing this, it is possible to ensure the time required for the store process even if data Ml is not performed immediately after Ml request.
  • the present invention can be applied to a case where data exchange between a plurality of caches is prevented and a delay in data transfer between the caches is suppressed.

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)

Abstract

 複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制すること。MI要求アドレス保持部(105)は、L1キャッシュ(200)へMIされるデータのMI要求アドレスを保持する。カウンタ(106)は、MI要求アドレスが保持されると、カウンタ値が所定のしきい値に到達するまでカウントアップする。比較部(109)は、L2キャッシュ制御部(500)からMO要求アドレスが取得されると、このMO要求アドレスをMI要求アドレスと比較する。MO要求アドレスとMI要求アドレスとが一致する場合、比較部(109)は、カウンタ(106)が稼働中であれば、MO要求生成部(107)へMOの中止を指示する。

Description

明 細 書
マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法 技術分野
[0001] 本発明は、各々 1次キャッシュを備える複数のプロセッサと、複数のプロセッサによ つて共有される 2次キャッシュとを有するマルチプロセッサシステムおよびキャッシュ制 御方法に関し、特に、複数のキャッシュによるデータの取り合いを防止するとともに、 キャッシュ間のデータ転送の遅延を抑制することができるマルチプロセッサシステム、 プロセッサ、およびキャッシュ制御方法に関する。
背景技術
[0002] 一般に、情報処理装置においては、処理速度を向上させるため、使用頻度が高い データをメインメモリとは別のキャッシュメモリに記憶することが行われる。キャッシュメ モリは、メインメモリよりも容量は小さいが高速アクセスが可能であるため、使用頻度が 高いデータを随時置き換えながらキャッシュメモリに記憶させておくことで、処理の高 速ィ匕を図ることができる。
[0003] また、より処理の高速ィ匕を図るためには、階層的にキャッシュメモリを設け、処理が 行われる際には、まず最も高速な 1次キャッシュ(以下「L1キャッシュ」という)にァクセ スし、 L1キャッシュに所望のデータがなければ次に高速な 2次キャッシュ(以下「L2キ ャッシュ」 t 、う)にアクセスすると!/、うようにすれば良!、。
[0004] 一方、情報処理装置の処理性能を向上させるため、 1つの情報処理装置に複数の プロセッサが搭載されることがある。近年では、このようなマルチプロセッサシステムの 一種として、 1チップ上に複数のプロセッサを実装するオンチップマルチプロセッサシ ステムが実現可能となって 、る。
[0005] マルチプロセッサシステムが採用される場合、各プロセッサ内の L1キャッシュとは別 に、各プロセッサが共有する L2キャッシュが設けられることがある(例えば特許文献 1 参照)。
[0006] 特許文献 1 :特開 2002— 373115号公報
発明の開示 発明が解決しょうとする課題
[0007] 上述のようなマルチプロセッサシステムにおいて、各プロセッサ内の L1キャッシュに おいて同一データに関するキャッシュミスが同時に生じると、複数のプロセッサが共 有する L2キャッシュに同時にアクセスし、データの取り合いが発生することがある。
[0008] 以下、図 4 1〜4 6を参照して、 L1キャッシュ # 1および L2キャッシュ # 2がデー タ Aを取り合う状態について説明する。ここでは、各プロセッサ内の図示しない命令 制御部など力 L1キャッシュ # 1および L1キャッシュ # 2のそれぞれへ、データ Aの 書き換えを行う旨のストア要求が発行されたものとする。
[0009] 図 4 1に示すように、 L1キャッシュ # 1および L1キャッシュ # 2には、いずれもデ ータ Aが記憶されて ヽな 、ためキャッシュミスとなり、 L2キャッシュを制御する L2キヤ ッシュ制御部に対してデータ Aのムーブイン (Move In:以下「MI」と略記する)を要求 する Ml要求が同時に行われる。
[0010] このとき、例えば L1キャッシュ # 1の優先度が高ければ、図 4 2に示すように、デ ータ Aは L2キャッシュ制御部力も L1キャッシュ # 1へ転送される。また、 L1キャッシュ # 2から L2キャッシュ制御部へもデータ Aの Ml要求が行われていることから、データ Aが L1キャッシュ # 1へ転送されると同時に、このデータ Aを L1キャッシュ # 1からム ーブアウト (Move Out:以下「MO」と略記する)させるための MO命令が発行される。
[0011] L1キャッシュ # 1では、データ Aのストア処理が完了していないが、 L2キャッシュ制 御部からの MO命令に従って、図 4 3に示すように、データ Aの MOを要求する MO 要求を行い、 L2キャッシュ制御部へデータ Aを転送する。同時に、 L2キャッシュ制御 部は、 L1キャッシュ # 2へデータ Aを転送する。
[0012] そして、データ Aが転送されていたはずの L1キャッシュ # 1では、データ Aのストア 要求が再び発行される力 データ Aは既に L1キャッシュ # 2へ転送されているため、 L1キャッシュ # 1では再度キャッシュミスが発生する。このため、図 4—4に示すように 、 L1キャッシュ # 1から L2キャッシュ制御部へ Ml要求が行われ、 L2キャッシュ制御 部から L1キャッシュ # 2へ MO命令が発行される。
[0013] L1キャッシュ # 2では、データ Aのストア処理が完了していないが、 L2キャッシュ制 御部からの MO命令に従って、図 4 5に示すように、データ Aの MOを要求する MO 要求を行い、 L2キャッシュ制御部へデータ Aを転送する。同時に、 L2キャッシュ制御 部は、 L1キャッシュ # 1へデータ Aを転送する。
[0014] そして、データ Aが転送されていたはずの L1キャッシュ # 2では、データ Aのストア 要求が再び発行される力 データ Aは既に L1キャッシュ # 1へ転送されているため、
L1キャッシュ # 2では再度キャッシュミスが発生する。このため、図 4— 6に示すように
、 L1キャッシュ # 2から L2キャッシュ制御部へ Ml要求が行われ、 L2キャッシュ制御 部から L1キャッシュ # 1へ MO命令が発行される。
[0015] 以後、再び図 4 3の状態に戻り、 L1キャッシュ # 1を有するプロセッサおよび L1キ ャッシュ # 2を有するプロセッサの!/、ずれもデータ Aのストア処理を完了させることが できない。
[0016] このような状態を防ぐため、一度 Ml要求されて L1キャッシュにデータが転送された 後は、しばらく L1キャッシュにおける MOを禁止するという方法が考えられる。すなわ ち、例えば図 5に示すように、 Ml要求がパイプライン処理の優先権を獲得し、所定の Pサイクルの処理が完了すると、カウンタが所定サイクル(図 5では 31サイクル)のカウ ントアップを開始する。その後、 Ml要求に関しては、所定の Tサイクルの処理、 Mサイ クルの処理、 Bサイクルの処理、および Rサイクルの処理が行われ、 L1キャッシュにデ ータが記憶される。
[0017] このとき、 Ml要求の直後に MO要求がパイプライン処理の優先権を獲得した場合、 MO要求に関しては、カウンタがカウントアップを実行している最中であるため、 Bサイ クルで処理が中止される。したがって、カウンタがカウントアップを実行している間は、 L1キャッシュ力 データが転送されることはなぐこの間にデータのストア処理を行うこ とが可能となる。
[0018] しかしながら、この方法においては、カウンタがカウントアップを実行している間の L 1キャッシュからのデータの転送が禁止されているため、ストア処理とは無関係のデー タについても MOが実行されず、キャッシュ間のデータ転送の遅延が発生するという 問題がある。
[0019] 本発明は力かる点に鑑みてなされたものであり、複数のキャッシュによるデータの取 り合いを防止するとともに、キャッシュ間のデータ転送の遅延を抑制することができる マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法を提供することを 目的とする。
課題を解決するための手段
[0020] 上記課題を解決するために、本発明は、各々 1次キャッシュを備える複数のプロセ ッサと、前記複数のプロセッサによって共有される 2次キャッシュとを有するマルチプ 口セッサシステムであって、前記プロセッサは、自プロセッサ内の 1次キャッシュからデ ータを読み出す読出手段と、前記 1次キャッシュに読み出し対象のデータが記憶され て 、な 、場合に前記 1次キャッシュへの当該データの書き込みを外部に要求する要 求手段と、前記要求手段による書き込み要求後の経過時間を計測する計測手段と、 前記 1次キャッシュのデータを読み出す旨の読出命令を外部から受け付ける受付手 段と、前記受付手段によって読出命令が受け付けられたデータを特定する特定情報 と前記要求手段によって書き込みが要求されたデータを特定する特定情報とを比較 する比較手段と、前記比較手段による比較の結果、特定情報が同一であり、かつ、 前記計測手段によって計測される経過時間が所定時間未満の場合に、前記読出手 段による前記読出命令に応じたデータの読み出しを中止させる制御手段とを有する ことを特徴とする。
[0021] また、本発明は、上記発明において、前記制御手段は、前記比較手段による比較 の結果、特定情報が同一でない場合に、前記読出命令に応じたデータの読み出し を前記読出手段に対して要求する読出要求を生成する生成手段を含むことを特徴と する。
[0022] また、本発明は、上記発明において、前記生成手段は、前記比較手段による比較 の結果、特定情報が同一であっても、前記計測手段によって計測される経過時間が 所定時間以上の場合に、前記読出命令に応じたデータの読出要求を生成することを 特徴とする。
[0023] また、本発明は、上記発明において、前記制御手段は、前記計測手段によって計 測される経過時間が所定時間に達した場合に、読み出しを中止させたデータの読み 出しを前記読出手段に行わせることを特徴とする。
[0024] また、本発明は、上記発明において、前記比較手段は、データのメインメモリにおけ るアドレスを特定情報として比較することを特徴とする。
[0025] また、本発明は、上記発明において、データに対応するアドレスの一部および前記 1次キャッシュにおけるウェイを特定情報として比較することを特徴とする。
[0026] また、本発明は、上記発明において、前記計測手段は、前記書込手段による書き 込み要求に応じてデータが書き込まれて力 の経過時間を計測することを特徴とす る。
[0027] また、本発明は、データを記憶するキャッシュを備えたプロセッサであって、前記キ ャッシュにデータを書き込む書込手段と、前記書込手段によって前記キャッシュにデ ータが書き込まれてからの経過時間を計測する計測手段と、前記キャッシュのデータ を読み出す旨の読出命令を外部力 受け付ける受付手段と、前記受付手段によって 読出命令が受け付けられたデータを特定する特定情報と前記書込手段によって書き 込まれたデータを特定する特定情報とを比較する比較手段と、前記比較手段による 比較の結果、特定情報が同一であり、かつ、前記計測手段によって計測される経過 時間が所定時間未満の場合に、前記読出命令に応じたデータの読み出しを中止す る読出制御手段とを有することを特徴とする。
[0028] また、本発明は、各々 1次キャッシュを備える複数のプロセッサと、前記複数のプロ セッサによって共有される 2次キャッシュとを有するマルチプロセッサシステムにおけ るキャッシュ制御方法であって、前記 1次キャッシュに読み出し対象のデータが記憶 されていない場合に前記 1次キャッシュへの当該データの書き込みを外部に要求す る要求工程と、前記要求工程における書き込み要求後、経過時間の計測を開始する 計測工程と、前記 1次キャッシュのデータを読み出す旨の読出命令を外部力 受け 付ける受付工程と、前記受付工程にて読出命令が受け付けられたデータを特定する 特定情報と前記要求工程にて書き込みが要求されたデータを特定する特定情報とを 比較する比較工程と、前記比較工程における比較の結果、特定情報が同一であり、 かつ、前記計測工程力 の経過時間が所定時間未満の場合に、前記読出命令に応 じたデータの読み出しを中止させる制御工程とを有することを特徴とする。 発明の効果
[0029] 本発明によれば、 1次キャッシュに読み出し対象のデータが記憶されていない場合 に 1次キャッシュへの当該データの書き込みを外部に要求し、書き込み要求後の経 過時間を計測し、 1次キャッシュのデータを読み出す旨の読出命令を外部から受け 付け、読出命令が受け付けられたデータを特定する特定情報と書き込みを要求した データを特定する特定情報とを比較し、比較の結果、特定情報が同一であり、かつ、 計測される経過時間が所定時間未満の場合に、読出命令に応じたデータの読み出 しを中止させる。このため、 1次キャッシュに書き込まれたば力りのデータが読み出さ れることがなぐこのデータに対する処理のための時間を確保することができ、複数の キャッシュによるデータの取り合いを防止するとともに、書き込まれたば力りのデータ 以外のデータは通常通り読み出して、キャッシュ間のデータ転送の遅延を抑制するこ とがでさる。
[0030] また、本発明によれば、比較の結果、特定情報が同一でない場合に、読出命令に 応じたデータの読み出しを要求する読出要求を生成するため、書き込まれたばかり のデータと一致しないデータは、読出命令が受け付けられた後すぐに 1次キャッシュ 力 読み出すことができる。
[0031] また、本発明によれば、比較の結果、特定情報が同一であっても、計測される経過 時間が所定時間以上の場合に、読出命令に応じたデータの読出要求を生成するた め、直近に書き込まれたデータであっても、書き込まれて力も処理に要する時間が経 過していれば、読出命令が受け付けられた後すぐに 1次キャッシュ力も読み出すこと になり、データ転送の遅延をさらに抑制することができる。
[0032] また、本発明によれば、計測される経過時間が所定時間に達した場合に、読み出し を中止させたデータの読み出しを行わせるため、 1次キャッシュからの読み出しがー 度中止されたデータについても、データ転送の遅延を最低限に抑制することができる
[0033] また、本発明によれば、データのメインメモリにおけるアドレスを特定情報として比較 するため、データの一致 ·不一致を確実に判定することができる。
[0034] また、本発明によれば、データに対応するアドレスの一部および前記 1次キャッシュ におけるウェイを特定情報として比較するため、キャッシュがセットァソシァティブ方式 で構成される場合にも、データの一致 ·不一致を確実に判定することができる。 [0035] また、本発明によれば、書き込み要求に応じてデータが書き込まれて力 の経過時 間を計測するため、 1次キャッシュに確実にデータが書き込まれて力 処理に要する 時間を確保することができる。
[0036] また、本発明によれば、キャッシュにデータを書き込み、キャッシュにデータが書き 込まれてからの経過時間を計測し、キャッシュのデータを読み出す旨の読出命令を 外部力も受け付け、読出命令が受け付けられたデータを特定する特定情報と書き込 まれたデータを特定する特定情報とを比較し、比較の結果、特定情報が同一であり、 かつ、計測される経過時間が所定時間未満の場合に、読出命令に応じたデータの 読み出しを中止する。このため、キャッシュに書き込まれたば力りのデータが読み出さ れることがなぐこのデータに対する処理のための時間を確保することができ、複数の キャッシュによるデータの取り合いを防止するとともに、書き込まれたば力りのデータ 以外のデータは通常通り読み出して、キャッシュ間のデータ転送の遅延を抑制するこ とがでさる。
図面の簡単な説明
[0037] [図 1]図 1は、本発明の一実施の形態に係るマルチプロセッサシステムの要部構成を 示すブロック図である。
[図 2]図 2は、一実施の形態に係る L1キャッシュ制御部の内部構成を示すブロック図 である。
[図 3]図 3は、一実施の形態に係る L1キャッシュ制御部の動作を示すフロー図である
[図 4-1]図 4 1は、ストア処理時のキャッシュの状態を示す図である。
[図 4-2]図 4 2は、図 4 1に続く図である。
[図 4-3]図 4— 3は、図 4— 2に続く図である。
[図 4-4]図 4 4は、図 4 3に続く図である。
[図 4-5]図 4— 5は、図 4— 4に続く図である。
[図 4-6]図 4 6は、図 4 5に続く図である。
[図 5]図 5は、パイプライン処理の処理サイクルの一例を示す図である。
符号の説明 [0038] 100 LIキャッシュ制御部
101 書込 Z読出部
102 Ml要求生成部
103 接続部
104 Mlデータ送出部
105 Ml要求アドレス保持部
106 カウンタ
107 MO要求生成部
108 MO要求アドレス取得部
109 比較部
110 MOデータ送出部
200 L1キャッシュ
300 命令制御部
400 演算処理部
500 L2キャッシュ制御部
600 L2キャッシュ
700 メインメモリ
発明を実施するための最良の形態
[0039] 以下、本発明の一実施の形態について、図面を参照して詳細に説明する。なお、 以下においては、情報処理装置がプロセッサとして CPUを 2つ備えている場合を例 に挙げて説明する力 本発明は、プロセッサを 3つ以上備えている場合にも適用する ことができる。
[0040] 図 1は、本発明の一実施の形態に係るマルチプロセッサシステムの要部構成を示 すブロック図である。同図に示すマルチプロセッサシステムは CPUを 2つ備え、各 CP Uは、 L1キャッシュ制御部 100、 L1キャッシュ 200、命令制御部 300、および演算処 理部 400を有している。また、各 CPUの L1キャッシュ制御部 100には、 L2キャッシュ 制御部 500が接続されており、 L2キャッシュ制御部 500は L2キャッシュ 600に、 L2 キャッシュ 600はメインメモリ 700にそれぞれ接続されて 、る。 [0041] LIキャッシュ制御部 100は、命令制御部 300および L2キャッシュ制御部 500から の要求'命令に応じて、 L1キャッシュにおけるデータのムーブイン(Ml)およびムーブ アウト(MO)を制御する。また、本実施の形態においては、 L1キャッシュ制御部 100 は、 Ml要求するデータのアドレスを保持しておき、 L2キャッシュ制御部 500から MO 命令が発行された場合、 MOするデータのアドレスと保持されたアドレスとを比較し、 Ml要求から一定期間内はアドレスが一致する場合の MOを中止する。 L1キャッシュ 制御部 100の具体的な構成 ·動作については、後に詳述する。
[0042] L1キャッシュ 200は、高速なキャッシュメモリであって、 L1キャッシュ制御部 100の 制御に従って、 Mlされるデータを記憶し、 MOされるデータを出力する。命令制御部 300は、演算処理部 400における演算処理に応じてデータの書き込みおよび読み出 しに関する命令を出し、必要なデータを L1キャッシュ 200、 L2キャッシュ 600、または メインメモリ 700から取得する。演算処理部 400は、命令制御部 300によって取得さ れたデータに対する演算処理を行う。
[0043] L2キャッシュ制御部 500は、 L1キャッシュ制御部 100からデータの Ml要求が発行 された場合、このデータが記憶されて 、る L2キャッシュ 600または他の CPUの L1キ ャッシュ 200を制御する L1キャッシュ制御部 100へデータの MO命令を発行する。 L 2キャッシュ 600は、 L1キャッシュ 200よりも大容量かつ低速なキャッシュメモリであり 、 2つの CPUによって共有されている。メインメモリ 700は、主記憶装置であって、 L2 キャッシュ 600よりも大容量かつ低速な記憶装置である。
[0044] 図 2は、本実施の形態に係る L1キャッシュ制御部 100の内部構成を示すブロック図 である。同図に示すように、 L1キャッシュ制御部 100は、書込 Z読出部 101、 Ml要 求生成部 102、接続部 103、 Mlデータ送出部 104、 Ml要求アドレス保持部 105、力 ゥンタ 106、 MO要求生成部 107、 MO要求アドレス取得部 108、比較部 109、およ び MOデータ送出部 110を有して!/、る。
[0045] 書込 Z読出部 101は、命令制御部 300から例えばデータのストア要求などの命令 が出されると L1キャッシュ 200を検索し、対象のデータが L1キャッシュ 200内に記憶 されていれば (キャッシュヒット)、このデータを読み出して命令制御部 300へ出力し、 対象のデータが L1キャッシュ 200内に記憶されていなければ(キャッシュミス)、その 旨を MI要求生成部 102へ通知する。そして、書込 Z読出部 101は、 Mlデータ送出 部 104から送出される Mlすべき Mlデータを L1キャッシュ 200へ書き込む。また、書 込 Z読出部 101は、 MO要求生成部 107からデータの MO要求が出力されると、 L1 キャッシュ 200から対象のデータを読み出し、 MOデータ送出部 110へ出力する。
[0046] Ml要求生成部 102は、書込 Z読出部 101からキャッシュミスが生じた旨が通知され ると、このデータ L1キャッシュ 200に Mlするために、データのアドレスを含む Ml要求 を生成し、接続部 103および Ml要求アドレス保持部 105へ出力する。
[0047] 接続部 103は、 L1キャッシュ制御部 100と L2キャッシュ制御部 500とを接続してお り、 Ml要求生成部 102から出力される Ml要求を L2キャッシュ制御部 500へ転送し、 この Ml要求に応じて Mlすべき Mlデータ力 キャッシュ制御部 500から転送される と、この Mlデータを Mlデータ送出部 104へ出力する。また、接続部 103は、 L2キヤ ッシュ制御部 500によって L1キャッシュ 200からのデータの MO命令が発行されると 、その旨を MO要求生成部 107へ通知し、 MOデータ送出部 110から送出される M Oされた MOデータを L2キャッシュ制御部 500へ転送する。
[0048] Mlデータ送出部 104は、 Ml要求に応じて L2キャッシュ 600また他の CPUの L1キ ャッシュ 200などから転送された Mlデータを L1キャッシュ 200へ Mlするために、 Ml データを MI要求とともに書込 Z読出部 101へ送出する。
[0049] Ml要求アドレス保持部 105は、キャッシュミスが生じた場合に、 Ml要求生成部 102 によって Ml要求が生成されると、生成された Ml要求に含まれるデータのアドレス(M I要求アドレス)を保持し、 Ml要求アドレスが保持されるとカウンタ 106へ始動を指示 する。すなわち、 Ml要求アドレス保持部 105は、 L1キャッシュ 200へ Mlされるデータ のアドレスを保持するとともに、カウンタ 106のカウントアップを開始させる。
[0050] カウンタ 106は、 Ml要求アドレス保持部 105から始動を指示されると、カウントアツ プを開始し、カウンタ値が所定のしきい値に到達するとカウンタ値を 0にリセットする。 また、カウンタ 106は、始動のタイミングとリセットのタイミングとを比較部 109へ通知す る。
[0051] MO要求生成部 107は、接続部 103に MO命令が到達すると、 MOを要求されて いるデータのアドレス(MO要求アドレス)を MO要求アドレス取得部 108へ出力する 。そして、 MO要求生成部 107は、比較部 109から MOの実行が指示された場合は、 MO要求アドレスを含む MO要求を生成し、書込 Z読出部 101へ出力する。一方、 比較部 109から MOの中止が指示された場合は、 MO要求アドレスを一時的に保持 し、一定時間が経過して比較部 109から MOの実行が許可されると、保持された MO 要求アドレスを含む MO要求を生成し、書込 Z読出部 101へ出力する。
[0052] MO要求アドレス取得部 108は、 L2キャッシュ制御部 500によって MO命令が発行 された場合に、 MO要求生成部 107から MO命令に含まれている MO要求アドレスを 取得して保持する。
[0053] 比較部 109は、 MO要求アドレス取得部 108によって MO要求アドレスが取得され ると、この MO要求アドレスを Ml要求アドレス保持部 105によって保持されている Ml 要求アドレスと比較する。そして、比較部 109は、 MO要求アドレスと Ml要求アドレス とが一致しな 、場合は、 MOが要求されて 、るデータに対するストア処理などが予定 されて!/ヽな ヽと判断し、 MO要求生成部 107へ MOの実行を指示する。
[0054] 一方、 MO要求アドレスと Ml要求アドレスとが一致する場合、比較部 109は、さらに カウンタ 106がリセットされておらず稼働中である力否力判定する。そして、比較部 10 9は、カウンタ 106が稼働中であれば、 Ml要求が発行されてからの経過時間が短い ため、このアドレスのデータに対するストア処理などが予定されていると判断し、 MO 要求生成部 107へ MOの中止を指示する。また、カウンタ 106がリセットされており力 ゥンタ値力^であれば、比較部 109は、 Ml要求が発行されてから十分時間が経過し ており、このアドレスのデータに対するストア処理などが完了していると判断し、 MO 要求生成部 107へ MOの実行を指示する。
[0055] また、比較部 109は、 MO要求生成部 107へ MOの中止を指示した場合、カウンタ 106からカウンタ値のリセットのタイミングが通知されると、中止していた MOの実行を 許可する。
[0056] MOデータ送出部 110は、 MO要求に応じて L1キャッシュ 200から読み出された M Oデータを L2キャッシュ制御部 500へ出力するために、接続部 103へ送出する。
[0057] 次 、で、ストア要求が発行された場合の、上記のように構成された L1キャッシュ制 御部 100の動作について、図 3に示すフロー図を参照しながら説明する。 [0058] まず、命令制御部 300によってデータの書き換えを要求するストア要求が発行され る (ステップ S101)。発行されたストア要求は、 L1キャッシュ制御部 100の書込 Z読 出部 101によって受け取られ、書込 Z読出部 101によって、ストア対象のデータが L 1キャッシュ 200から検索される(ステップ S102)。検索の結果、 L1キャッシュ 200に データが記憶されておりキャッシュヒットすれば (ステップ S102No)、このデータが L1 キャッシュ 200から読み出され、命令制御部 300へ出力されて、演算処理部 400によ るストア処理が実行される (ステップ S 107)。
[0059] 一方、検索の結果、 L1キャッシュ 200にデータが記憶されておらずキャッシュミスす れば (ステップ S102Yes)、書込 Z読出部 101から Ml要求生成部 102へその旨が 通知され、 Ml要求生成部 102によってストア対象のデータのアドレスを含む Ml要求 が生成される(ステップ S103)。生成された MI要求は、 Ml要求アドレス保持部 105 へ出力され、 Ml要求アドレス保持部 105によって、 Ml要求アドレス(すなわち、ストア 対象のデータのアドレス)が保持されるとともに、カウンタ 106の始動が指示される (ス テツプ S 104)。
[0060] また、 Ml要求生成部 102によって生成された Ml要求は、接続部 103経由で L2キ ャッシュ制御部 500へ伝達され、 L2キャッシュ制御部 500力 キャッシュ 600または 他の CPUの L1キャッシュ 200から Ml要求アドレスのデータを取得し、 L1キャッシュ 制御部 100へ転送する。このデータは、 L1キャッシュ 200に Mlすべき Mlデータとし て、 Mlデータ送出部 104から Ml要求とともに書込 Z読出部 101へ出力され、書込 Z読出部 101によって L1キャッシュ 200に書き込まれる(ステップ S105)。
[0061] その後、 L1キャッシュ制御部 100では、 L2キャッシュ制御部 500からの MO命令が 随時受け付けられており(ステップ S 106)、接続部 103に MO命令が到達しない場合 は(ステップ S106No)、 L1キャッシュ 200におけるキャッシュミスに応じて Mlされた データのストア処理が行われる(ステップ S 107)。また、接続部 103に MO命令が到 達した場合は (ステップ S106Yes)、 MO要求生成部 107によって、 MO命令に含ま れる MO要求アドレスが MO要求アドレス取得部 108へ出力される。
[0062] そして、 MO要求アドレス取得部 108によって MO要求アドレスが取得されると、比 較部 109によって、 MO要求アドレスと Ml要求アドレス保持部 105によって保持され ている MI要求アドレスとが一致するか否か比較される(ステップ S 108)。ここで、比較 されたアドレスが一致するということは、今回ストア処理のために L1キャッシュ 200に Mlされたデータに対する MOが要求されていることを意味している。また、比較され たアドレスが一致しないということは、今回ストア処理のために L1キャッシュ 200に Ml されたデータ以外のデータに対する MOが要求されていることを意味している。
[0063] そこで、 MO要求アドレスと Ml要求アドレスとがー致していなければ、比較部 109に よって MOの実行が MO要求生成部 107へ指示され、 MO要求生成部 107によって MO要求アドレスを含む MO要求が生成され、書込 Z読出部 101へ出力される。そし て、書込 Z読出部 101によって MO要求アドレスのデータが L1キャッシュ 200から読 み出され、 MOデータ送出部 110および接続部 103を介して L2キャッシュ制御部 50 0へ出力され、データの MOが実行される(ステップ S112)。
[0064] また、 MO要求アドレスと Ml要求アドレスとがー致していれば、比較部 109によって 、カウンタ 106が稼働中であるか否力、換言すれば、カウンタ値が 0であるか否かが 判定される(ステップ S109)。ここで、カウンタ 106が稼働中ではなくカウンタ値が 0で あれば (ステップ S109Yes)、今回ストア処理のために L1キャッシュ 200に MIされた データについて、 Mlされてから十分な時間が経過しているためストア処理が完了し ていると判断され、比較部 109によって MOの実行が MO要求生成部 107へ指示さ れる。
[0065] 反対に、カウンタ 106が稼働中でカウンタ値が 0でなければ (ステップ S109No)、 今回ストア処理のために L1キャッシュ 200に Mlされたデータについて、 Mlされてか らまだ十分な時間が経過していないと判断され、比較部 109によって MOの中止が MO要求生成部 107へ指示される。そして、 MO要求生成部 107によって、 MO要求 アドレス力 MO要求が生成されることなぐ MOは中止される(ステップ S 110)。また 、このとき、 MO要求アドレスは、 MO要求生成部 107によって一時的に保持される。
[0066] そして、 MOが中止されるため、 L1キャッシュ 200に Mlされたばかりのデータが M Oされることはなぐこの間に命令制御部 300からのストア要求に従ったストア処理が 実行される (ステップ S111)。その後、カウンタ 106がカウンタ値を所定のしきい値ま でカウントアップして 0にリセットすると、その旨が比較部 109へ通知される。そして、 比較部 109は、カウンタ値が 0になったことから(ステップ S109Yes)、 MO要求生成 部 107へ中止した MOの実行を指示する。
[0067] MOの実行を指示された MO要求生成部 107は、保持していた MO要求アドレスか ら MO要求を生成して書込 Z読出部 101へ出力し、 L1キャッシュ 200からデータが 読み出されて MOが実行される (ステップ S 112)。
[0068] 以上のように、本実施の形態によれば、 L1キャッシュへの Mlが要求された後にデ ータの MOが要求された場合、 MOが要求されて!、るデータのアドレスと直近に Mlが 要求されたデータのアドレスとを比較し、アドレスが一致しており、かつ、 Mlが要求さ れてから一定期間が経過していなければ、データの MOを中止する。このため、キヤ ッシュに Mlされたば力りのデータは MOすることなぐその他のデータは MOすること になり、複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ間の データ転送の遅延を抑制することができる。
[0069] なお、上記一実施の形態において、キャッシュが例えばセットァソシァティブ方式で 構成される場合には、 Ml要求アドレスと MO要求アドレスの比較と同時に、 Mlするデ ータのウェイと MOが要求されるデータのウェイとを比較するようにしても良い。ウェイ についての比較を行う場合、アドレスおよびウェイが一致し、かつ、 Mlが要求されて 力も一定期間が経過していなければ、データの MOを中止する。このとき、セットァソ シァティブ方式であれば、アドレスの比較は、アドレスの一部であるインデックス部分 のみについて行えば十分であるため、アドレス全体を比較する場合に比べて回路規 模を縮小することができる。
[0070] また、上記一実施の形態においては、 Ml要求アドレスが保持されるとカウンタが始 動するものとした力 カウンタ始動のタイミングは、 Ml要求に応じてデータが Mlされ たタイミングとしても良い。こうすることにより、 Ml要求後、すぐにデータの Mlが行わ れな ヽ場合でも、確実にストア処理に要する時間を確保することができる。
産業上の利用可能性
[0071] 本発明は、複数のキャッシュによるデータの取り合いを防止するとともに、キャッシュ 間のデータ転送の遅延を抑制する場合に適用することができる。

Claims

請求の範囲
[1] 各々 1次キャッシュを備える複数のプロセッサと、前記複数のプロセッサによって共 有される 2次キャッシュとを有するマルチプロセッサシステムであって、
前記プロセッサは、
自プロセッサ内の 1次キャッシュ力 データを読み出す読出手段と、
前記 1次キャッシュに読み出し対象のデータが記憶されていない場合に前記 1次キ ャッシュへの当該データの書き込みを外部に要求する要求手段と、
前記要求手段による書き込み要求後の経過時間を計測する計測手段と、 前記 1次キャッシュのデータを読み出す旨の読出命令を外部力 受け付ける受付 手段と、
前記受付手段によって読出命令が受け付けられたデータを特定する特定情報と前 記要求手段によって書き込みが要求されたデータを特定する特定情報とを比較する 比較手段と、
前記比較手段による比較の結果、特定情報が同一であり、かつ、前記計測手段に よって計測される経過時間が所定時間未満の場合に、前記読出手段による前記読 出命令に応じたデータの読み出しを中止させる制御手段と
を有することを特徴とするマルチプロセッサシステム。
[2] 前記制御手段は、
前記比較手段による比較の結果、特定情報が同一でない場合に、前記読出命令 に応じたデータの読み出しを前記読出手段に対して要求する読出要求を生成する 生成手段を含むことを特徴とする請求項 1記載のマルチプロセッサシステム。
[3] 前記生成手段は、
前記比較手段による比較の結果、特定情報が同一であっても、前記計測手段によ つて計測される経過時間が所定時間以上の場合に、前記読出命令に応じたデータ の読出要求を生成することを特徴とする請求項 2記載のマルチプロセッサシステム。
[4] 前記制御手段は、
前記計測手段によって計測される経過時間が所定時間に達した場合に、読み出し を中止させたデータの読み出しを前記読出手段に行わせることを特徴とする請求項 1記載のマルチプロセッサシステム。
[5] 前記比較手段は、
データのメインメモリにおけるアドレスを特定情報として比較することを特徴とする請 求項 1記載のマルチプロセッサシステム。
[6] 前記比較手段は、
データに対応するアドレスの一部および前記 1次キャッシュにおけるウェイを特定情 報として比較することを特徴とする請求項 1記載のマルチプロセッサシステム。
[7] 前記計測手段は、
前記書込手段による書き込み要求に応じてデータが書き込まれてからの経過時間 を計測することを特徴とする請求項 1記載のマルチプロセッサシステム。
[8] データを記憶するキャッシュを備えたプロセッサであって、
前記キャッシュにデータを書き込む書込手段と、
前記書込手段によって前記キャッシュにデータが書き込まれてからの経過時間を計 測する計測手段と、
前記キャッシュのデータを読み出す旨の読出命令を外部力 受け付ける受付手段 と、
前記受付手段によって読出命令が受け付けられたデータを特定する特定情報と前 記書込手段によって書き込まれたデータを特定する特定情報とを比較する比較手段 と、
前記比較手段による比較の結果、特定情報が同一であり、かつ、前記計測手段に よって計測される経過時間が所定時間未満の場合に、前記読出命令に応じたデー タの読み出しを中止する読出制御手段と
を有することを特徴とするプロセッサ。
[9] 各々 1次キャッシュを備える複数のプロセッサと、前記複数のプロセッサによって共 有される 2次キャッシュとを有するマルチプロセッサシステムにおけるキャッシュ制御 方法であって、
前記 1次キャッシュに読み出し対象のデータが記憶されていない場合に前記 1次キ ャッシュへの当該データの書き込みを外部に要求する要求工程と、 前記要求工程における書き込み要求後、経過時間の計測を開始する計測工程と、 前記 1次キャッシュのデータを読み出す旨の読出命令を外部力 受け付ける受付 工程と、
前記受付工程にて読出命令が受け付けられたデータを特定する特定情報と前記 要求工程にて書き込みが要求されたデータを特定する特定情報とを比較する比較 工程と、
前記比較工程における比較の結果、特定情報が同一であり、かつ、前記計測工程 からの経過時間が所定時間未満の場合に、前記読出命令に応じたデータの読み出 しを中止させる制御工程と
を有することを特徴とするキャッシュ制御方法。
PCT/JP2006/303439 2006-02-24 2006-02-24 マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法 WO2007105256A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2006/303439 WO2007105256A1 (ja) 2006-02-24 2006-02-24 マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
EP06714578A EP1988465B1 (en) 2006-02-24 2006-02-24 Processor, and cache control method
JP2008504910A JP4335300B2 (ja) 2006-02-24 2006-02-24 マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
US12/230,019 US7945754B2 (en) 2006-02-24 2008-08-21 Multiprocessor system, processor, and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303439 WO2007105256A1 (ja) 2006-02-24 2006-02-24 マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/230,019 Continuation US7945754B2 (en) 2006-02-24 2008-08-21 Multiprocessor system, processor, and cache control method

Publications (1)

Publication Number Publication Date
WO2007105256A1 true WO2007105256A1 (ja) 2007-09-20

Family

ID=38509106

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/303439 WO2007105256A1 (ja) 2006-02-24 2006-02-24 マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法

Country Status (4)

Country Link
US (1) US7945754B2 (ja)
EP (1) EP1988465B1 (ja)
JP (1) JP4335300B2 (ja)
WO (1) WO2007105256A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258189A (ja) * 2010-06-09 2011-12-22 Micron Technology Inc プロセッサ・メインメモリのための持続性メモリ
US8397031B2 (en) 2008-01-28 2013-03-12 Nec Computertechno, Ltd. Apparatus, processor and method of cache coherency control
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334641A (ja) * 2006-06-15 2007-12-27 Sony Corp 情報処理装置および方法、並びにプログラム
US9015429B2 (en) * 2013-04-18 2015-04-21 Xerox Corporation Method and apparatus for an efficient hardware implementation of dictionary based lossless compression

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426681A (en) 1980-01-22 1984-01-17 Cii Honeywell Bull Process and device for managing the conflicts raised by multiple access to same cache memory of a digital data processing system having plural processors, each having a cache memory
JPH04260146A (ja) * 1990-10-31 1992-09-16 Internatl Business Mach Corp <Ibm> データ・アクセス管理装置および方法
JPH07191946A (ja) * 1993-11-09 1995-07-28 Hewlett Packard Co <Hp> コンピュータ・システムのメモリ共用方法
JPH10154102A (ja) * 1996-10-21 1998-06-09 Internatl Business Mach Corp <Ibm> 多重階層のキャッシュ・メモリを有する情報処理システムにおけるデータ・コヒーレンシを強化する装置および方法
JPH11316712A (ja) * 1998-03-06 1999-11-16 Sharp Corp キャッシュ装置、コンシステンシ制御装置、プロトコル変換装置およびそれらと複数のプロセッサとを接続したマルチプロセッサ装置
US6047316A (en) 1997-12-12 2000-04-04 Intel Corporation Multiprocessor computing apparatus having spin lock fairness
JP2002055966A (ja) * 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法
JP2002373115A (ja) 2001-06-14 2002-12-26 Nec Corp 共有キャッシュメモリのリプレイスメント制御方法及びその装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS584470A (ja) * 1981-07-01 1983-01-11 Hitachi Ltd メモリ制御装置
JPH0325541A (ja) 1989-06-23 1991-02-04 Hitachi Ltd キャッシュ記憶制御方法および装置
US5893160A (en) 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US6289419B1 (en) 1998-03-06 2001-09-11 Sharp Kabushiki Kaisha Consistency control device merging updated memory blocks
US6360298B1 (en) * 2000-02-10 2002-03-19 Kabushiki Kaisha Toshiba Load/store instruction control circuit of microprocessor and load/store instruction control method
JP2002007371A (ja) 2000-06-23 2002-01-11 Hitachi Ltd L1キャッシュフォールスシェア緩和制御方式
JP2002149489A (ja) 2000-11-09 2002-05-24 Fujitsu Ltd キャッシュコントローラおよびマルチプロセッサシステム
JP3714235B2 (ja) 2001-11-12 2005-11-09 株式会社日立製作所 マルチプロセッサシステム
DE102004043805B3 (de) 2004-09-08 2006-03-30 Otto Bock Healthcare Ip Gmbh & Co. Kg Klemmfreilauf und Verwendung für ein Prothetikteil

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426681A (en) 1980-01-22 1984-01-17 Cii Honeywell Bull Process and device for managing the conflicts raised by multiple access to same cache memory of a digital data processing system having plural processors, each having a cache memory
JPH04260146A (ja) * 1990-10-31 1992-09-16 Internatl Business Mach Corp <Ibm> データ・アクセス管理装置および方法
JPH07191946A (ja) * 1993-11-09 1995-07-28 Hewlett Packard Co <Hp> コンピュータ・システムのメモリ共用方法
JPH10154102A (ja) * 1996-10-21 1998-06-09 Internatl Business Mach Corp <Ibm> 多重階層のキャッシュ・メモリを有する情報処理システムにおけるデータ・コヒーレンシを強化する装置および方法
US6047316A (en) 1997-12-12 2000-04-04 Intel Corporation Multiprocessor computing apparatus having spin lock fairness
JPH11316712A (ja) * 1998-03-06 1999-11-16 Sharp Corp キャッシュ装置、コンシステンシ制御装置、プロトコル変換装置およびそれらと複数のプロセッサとを接続したマルチプロセッサ装置
JP2002055966A (ja) * 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法
JP2002373115A (ja) 2001-06-14 2002-12-26 Nec Corp 共有キャッシュメモリのリプレイスメント制御方法及びその装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1988465A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397031B2 (en) 2008-01-28 2013-03-12 Nec Computertechno, Ltd. Apparatus, processor and method of cache coherency control
JP2011258189A (ja) * 2010-06-09 2011-12-22 Micron Technology Inc プロセッサ・メインメモリのための持続性メモリ
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9075725B2 (en) 2010-06-09 2015-07-07 Micron Technology, Inc. Persistent memory for processor main memory
US9384134B2 (en) 2010-06-09 2016-07-05 Micron Technology, Inc. Persistent memory for processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
US9317450B2 (en) 2010-09-30 2016-04-19 Micron Technology, Inc. Security protection for memory content of processor main memory

Also Published As

Publication number Publication date
EP1988465B1 (en) 2011-11-23
US20080320224A1 (en) 2008-12-25
US7945754B2 (en) 2011-05-17
EP1988465A4 (en) 2010-08-25
JPWO2007105256A1 (ja) 2009-07-23
JP4335300B2 (ja) 2009-09-30
EP1988465A1 (en) 2008-11-05

Similar Documents

Publication Publication Date Title
US10795844B2 (en) Multicore bus architecture with non-blocking high performance transaction credit system
TW591384B (en) Method and system for speculatively invalidating lines in a cache
JP7340326B2 (ja) メンテナンス動作の実行
US20220261373A1 (en) Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels
TWI514262B (zh) 於處理器電路內識別及排定關鍵指令的優先次序之方法及系統
JP2010191638A (ja) キャッシュ装置
US6968400B2 (en) Local memory with indicator bits to support concurrent DMA and CPU access
US12001351B2 (en) Multiple-requestor memory access pipeline and arbiter
WO2007105256A1 (ja) マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
US9740636B2 (en) Information processing apparatus
TWI787129B (zh) 記憶體請求之快取串流
TWI722438B (zh) 用於進行中操作的指令排序的裝置及方法
JP7097371B2 (ja) メモリシステムへの加速されたアクセスを提供するための方法及び機器
JP5499987B2 (ja) 共有キャッシュメモリ装置
US8850159B2 (en) Method and system for latency optimized ATS usage
JP5625329B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP2005128963A (ja) 記憶制御装置及びdma転送が可能な制御システム
JP2011154528A (ja) データ処理装置
KR20190059220A (ko) 복수의 데이터 유형을 위한 데이터 스토리지
JP2010140130A (ja) 半導体装置
JP2008123389A (ja) 半導体集積回路装置
JPH09212420A (ja) データ処理装置及びキャッシュメモリ制御方法

Legal Events

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

Ref document number: 06714578

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2008504910

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2006714578

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE