JPWO2012172683A1 - Arithmetic processing device, information processing device, and control method of arithmetic processing device - Google Patents

Arithmetic processing device, information processing device, and control method of arithmetic processing device Download PDF

Info

Publication number
JPWO2012172683A1
JPWO2012172683A1 JP2013520387A JP2013520387A JPWO2012172683A1 JP WO2012172683 A1 JPWO2012172683 A1 JP WO2012172683A1 JP 2013520387 A JP2013520387 A JP 2013520387A JP 2013520387 A JP2013520387 A JP 2013520387A JP WO2012172683 A1 JPWO2012172683 A1 JP WO2012172683A1
Authority
JP
Japan
Prior art keywords
request
memory access
unit
cache
bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2013520387A
Other languages
Japanese (ja)
Inventor
徹 引地
徹 引地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Ltd filed Critical Fujitsu Ltd
Priority to JP2013520387A priority Critical patent/JPWO2012172683A1/en
Publication of JPWO2012172683A1 publication Critical patent/JPWO2012172683A1/en
Ceased legal-status Critical Current

Links

Images

Abstract

L2キャッシュ制御部は、CPUコア部を介して要求格納部0から投入されたメモリアクセス要求に基づき、キャッシュメモリを検索し、キャッシュミスが発生したメモリアクセス要求を要求格納部1と要求格納部2に保持する。バンクアボート生成部は、要求格納部1と2に保持されたメモリアクセス要求に基づき、主記憶装置に対するメモリアクセス要求の数をバンク毎に計数するとともに、計数したバンク毎のメモリアクセス要求の数のいずれかが所定値を超えた場合、L2キャッシュ制御部にバンクアボート通知を通知してアクセス中断を指示する。L2キャッシュ制御部は、この指示に基づいて要求格納部0に保持されたメモリアクセス要求の処理を中断する。主記憶制御部は、要求格納部2に保持されたメモリアクセス要求を主記憶装置に発行する。  The L2 cache control unit searches the cache memory based on the memory access request input from the request storage unit 0 via the CPU core unit, and requests the memory access request in which a cache miss has occurred to the request storage unit 1 and the request storage unit 2. Hold on. The bank abort generation unit counts the number of memory access requests to the main storage device for each bank based on the memory access requests held in the request storage units 1 and 2, and also counts the number of memory access requests for each bank. If any of the values exceeds a predetermined value, the L2 cache control unit is notified of a bank abort notification to instruct access interruption. Based on this instruction, the L2 cache control unit suspends processing of the memory access request held in the request storage unit 0. The main storage control unit issues a memory access request held in the request storage unit 2 to the main storage device.

Description

本願発明は、演算処理装置、情報処理装置および演算処理装置の制御方法に関する。   The present invention relates to an arithmetic processing device, an information processing device, and a control method for the arithmetic processing device.

主記憶装置にキャッシュメモリが接続され、キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する演算処理装置としてのCPU(Central Processing Unit)が知られている。このような演算処理装置は具体的には例えば、L2(Level-2:2次)キャッシュシステムとして情報処理装置としてのコンピュータシステムに実装されている。   A CPU (Central Processing Unit) is known as an arithmetic processing unit having a mechanism in which a cache memory is connected to a main storage device, and a memory access request to the cache memory and the main storage device is pipelined. Specifically, such an arithmetic processing device is implemented in a computer system as an information processing device, for example, as an L2 (Level-2: secondary) cache system.

命令を処理する命令処理部であるCPUコアが例えばロード命令をミスし、CPUコアにおけるL1(Level-1:1次)キャッシュメモリへのアクセスがミスすると、L2キャッシュ制御部に新規メモリアクセス要求が発行され、新規要求格納部に受信する。新規要求格納部からL2キャッシュメモリのパイプラインにメモリアクセス要求が投入される。パイプラインに投入されたメモリアクセス要求がL2キャッシュメモリでキャッシュミスを起こすと、キャッシュミスしたメモリアクセス要求は、要求格納部1とさらに主記憶制御機能を有するシステムコントローラ内の要求格納部2に格納される。要求格納部2からメモリアクセス要求が選択されてDRAM(Dynamic Random Access Memory)アクセス処理部へ発行されるとともに、要求格納部2からそのメモリアクセス要求が開放される。DRAMアクセス処理部では、パイプライン処理によりDRAMへアクセスが行われる。DRAMからシステムコントローラを経由してL2キャッシュ制御部に対して、データ応答が行われる。データ応答を受信したL2キャッシュ制御部は、要求応答パイプラインを起動する。 要求応答パイプラインの処理が完了すると、キャッシュタグ部の更新、キャッシュデータ部へのデータ格納、メモリアクセス要求を発行したCPUコアへのデータ応答(ロード要求でプリフェッチ要求でない場合)等が行われる。最後に要求格納部1が開放される。   If the CPU core that is an instruction processing unit that processes an instruction misses a load instruction, for example, and the CPU core misses access to the L1 (Level-1: primary) cache memory, a new memory access request is issued to the L2 cache control unit. Issued and received by the new request storage unit. A memory access request is input from the new request storage unit to the pipeline of the L2 cache memory. When a memory access request input to the pipeline causes a cache miss in the L2 cache memory, the memory access request having the cache miss is stored in the request storage unit 1 and the request storage unit 2 in the system controller having a main memory control function. Is done. A memory access request is selected from the request storage unit 2 and issued to a DRAM (Dynamic Random Access Memory) access processing unit, and the memory access request is released from the request storage unit 2. The DRAM access processing unit accesses the DRAM by pipeline processing. A data response is made from the DRAM via the system controller to the L2 cache control unit. The L2 cache control unit that has received the data response activates the request response pipeline. When the processing of the request response pipeline is completed, the cache tag portion is updated, the data is stored in the cache data portion, the data response to the CPU core that issued the memory access request (when the load request is not a prefetch request), and the like are performed. Finally, the request storage unit 1 is released.

一般にDRAMで構成される主記憶装置は、所定数のメモリバンク(以下、「バンク」という)に分割された構成がとられている。そして、1つのバンクに対するメモリアクセス要求の処理が開始されると、その同一バンクではある一定時間、次のメモリアクセス要求に対する処理ができないという特性を持っている。このため、上記構成において、あるメモリアクセス要求が要求格納部2から DRAMアクセス処理部に投入されると、そのメモリアクセス要求と同一のバンクは一定時間要求格納部2からの取り出しの選択対象から除外される。そして、処理可能なバンクのメモリアクセス要求のうち古いものから順次選択して処理が行われる。   Generally, a main storage device composed of a DRAM is divided into a predetermined number of memory banks (hereinafter referred to as “banks”). When processing of a memory access request for one bank is started, the same bank has a characteristic that processing for the next memory access request cannot be performed for a certain period of time. Therefore, in the above configuration, when a memory access request is input from the request storage unit 2 to the DRAM access processing unit, the same bank as the memory access request is excluded from selection targets for extraction from the request storage unit 2 for a certain period of time. Is done. Then, processing is performed by sequentially selecting the oldest memory access requests of banks that can be processed.

従って例えば、複数のCPUコアを実装したシステムにおいて、複数のCPUコアから同一バンクに対するデータのロード要求が連続して発生するケースが考えられる。このような場合に、L2キャッシュシステムがキャッシュミスを起こすと、主記憶装置上の同一バンクへのメモリアクセス要求が集中し、主記憶装置からL2キャッシュメモリおよびCPUコアへのデータ転送効率が悪化する状況が発生し得る。   Therefore, for example, in a system in which a plurality of CPU cores are mounted, a case where data load requests for the same bank are continuously generated from a plurality of CPU cores can be considered. In such a case, when the L2 cache system causes a cache miss, memory access requests to the same bank on the main storage device are concentrated, and the data transfer efficiency from the main storage device to the L2 cache memory and the CPU core deteriorates. A situation can arise.

この課題に対して、複数のプロセッサが共用し独立にアクセス可能な複数のバンクに分割された主記憶装置に対するアクセス要求先のバンクに偏りが生じた場合にも、メモリアクセス待ちを短縮して、メモリアクセス性能を向上させることのできる技術が知られている。この従来技術では、 記憶制御装置内に、優先判定回路に対応し、かつ、アクセス要求スタック回路に対応する優先判定待ちスタック回路を記憶バンク対応の優先判定回路とアクセス要求スタック回路との間に設けて構成される。これにより、アクセス要求先の記憶バンクに偏りが生じた場合にも、後続の他記憶バンクへのアクセス要求を待たせることなく処理することを可能としている。また、優先判定待ちスタック回路は、内部にスタックされていないアクセス要求がある場合、入力されるアクセス要求を直接優先判定回路を介して記憶装置へ送ることができるように構成されている。   In response to this problem, even when the access request destination bank for the main storage device divided into a plurality of banks that can be shared and accessed independently by a plurality of processors is biased, the memory access wait time is shortened, A technique capable of improving the memory access performance is known. In this prior art, a priority determination waiting stack circuit corresponding to the priority determination circuit and corresponding to the access request stack circuit is provided in the storage controller between the priority determination circuit corresponding to the storage bank and the access request stack circuit. Configured. As a result, even when an access request destination storage bank is biased, subsequent access requests to other storage banks can be processed without waiting. The priority determination waiting stack circuit is configured to be able to send an input access request directly to the storage device via the priority determination circuit when there is an access request not stacked inside.

しかし、この従来技術は、L2キャッシュ制御部を含めたシステム全体としては最適なアクセス制御は実現できていないという問題点を有している。   However, this conventional technique has a problem that optimum access control cannot be realized for the entire system including the L2 cache control unit.

特開平成11−85605号公報Japanese Patent Laid-Open No. 11-85605

本発明は、キャッシュメモリと複数のメモリバンクを有する主記憶装置を含むシステムでメモリバンクへのアクセスを均等化することを目的とする。   An object of the present invention is to equalize access to a memory bank in a system including a cache memory and a main storage device having a plurality of memory banks.

態様の一例では、複数のバンクを有する記憶装置に接続される演算処理装置において、メモリアクセス要求を発行する命令処理部と、データを保持するキャッシュラインを複数有するキャッシュメモリと、前記命令処理部が発行したメモリアクセス要求を投入する第1の要求保持部と、キャッシュミスが発生したメモリアクセス要求を保持する第2の要求保持部と、前記第1の要求保持部から投入されたメモリアクセス要求に基づき前記キャッシュメモリを検索し、キャッシュミスが発生したメモリアクセス要求を前記第2の要求保持部に保持するキャッシュ制御部と、前記第2の要求保持部に保持されたメモリアクセス要求のうち、処理が中断されなかったメモリアクセス要求を保持する第3の要求保持部と、前記第2の要求保持部と前記第3の要求保持部とに保持されたメモリアクセス要求に基づき前記記憶装置に対するメモリアクセス要求の数をバンク毎に計数し、計数したいずれかのバンクのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持された、メモリアクセス要求の数が所定値を超えたバンクに対するメモリアクセス要求の処理の中断を指示するアクセス計数部と、前記第3の要求保持部に保持されたメモリアクセス要求を前記記憶装置に発行する主記憶制御部とを有するように構成する。   In one example, in an arithmetic processing unit connected to a storage device having a plurality of banks, an instruction processing unit that issues a memory access request, a cache memory that has a plurality of cache lines that hold data, and the instruction processing unit A first request holding unit that inputs an issued memory access request, a second request holding unit that holds a memory access request in which a cache miss has occurred, and a memory access request input from the first request holding unit. The cache memory is searched based on the cache control unit that holds the memory access request in which the cache miss has occurred in the second request holding unit, and the processing among the memory access requests held in the second request holding unit A third request holding unit that holds a memory access request that has not been interrupted, the second request holding unit, When the number of memory access requests to the storage device is counted for each bank based on the memory access requests held in the three request holding units, and the counted number of memory access requests in any bank exceeds a predetermined value An access counting unit that instructs the cache control unit to interrupt processing of a memory access request for a bank in which the number of memory access requests exceeds a predetermined value, which is held in the first request holding unit; And a main storage control unit that issues a memory access request held in the request holding unit to the storage device.

キャッシュ制御部と複数のメモリバンクを有する主記憶装置が接続された構成において、キャッシュ制御部と主記憶装置に対する要求バンクが均等化され、バンクアクセスの偏りが発生しかかっても、同じバンクのメモリアクセス要求が過剰に発行されないように食い止めることが可能となる。これにより、メモリアクセス要求の発行状態が、常時多様な種類のバンクのメモリアクセス要求がキャッシュ制御部と主記憶制御部のパイプラインに格納される状態にすることができ、メモリバンク毎にバンクアクセスの均等化を図ることが可能となる。   In a configuration in which a cache control unit and a main storage device having a plurality of memory banks are connected, even if the bank demands for the cache control unit and the main storage device are equalized and a bank access bias occurs, the memory access of the same bank It is possible to stop requests from being issued excessively. As a result, the memory access request issuance state can be changed so that memory access requests of various types of banks are always stored in the pipelines of the cache control unit and the main memory control unit. Can be equalized.

L2キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する情報処理装置の一般的な構成を示す図(その1)である。FIG. 2 is a diagram (No. 1) illustrating a general configuration of an information processing apparatus having a mechanism that pipelines a memory access request to an L2 cache memory and a main storage device. L2キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する情報処理装置の一般的な構成を示す図(その2)である。FIG. 3 is a diagram (No. 2) illustrating a general configuration of an information processing apparatus having a mechanism that pipelines a memory access request to an L2 cache memory and a main storage device. L2キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する情報処理装置の一般的な構成を示す図(その3)である。FIG. 11 is a diagram (No. 3) illustrating a general configuration of an information processing apparatus having a mechanism for performing pipeline processing on a memory access request to the L2 cache memory and the main storage device; L2キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する情報処理装置の一般的な構成を示す図(その4)である。FIG. 14 is a diagram (No. 4) illustrating a general configuration of an information processing apparatus having a mechanism for pipeline processing of memory access requests to the L2 cache memory and the main storage device; 図1Aおよび図1Bの構成を有するL2キャッシュシステムのパイプライン処理を示す動作シーケンス図である。It is an operation | movement sequence diagram which shows the pipeline process of the L2 cache system which has a structure of FIG. 1A and FIG. 1B. 図1A、図1BのL2キャッシュシステムのパイプライン処理のイメージを示した図である。It is the figure which showed the image of the pipeline process of the L2 cache system of FIG. 1A and FIG. 1B. 第1の実施形態の構成図(その1)である。It is a block diagram (the 1) of 1st Embodiment. 第1の実施形態の構成図(その2)である。It is a block diagram (the 2) of 1st Embodiment. 図4Aの新規要求格納部102(要求格納部0)とバンクアドレス均等制御部(バンク待機制御部)402の詳細な回路構成図である。4B is a detailed circuit configuration diagram of a new request storage unit 102 (request storage unit 0) and a bank address equalization control unit (bank standby control unit) 402 of FIG. 4A. 図4Aのパイプライン制御部103とその周辺回路の詳細な回路構成図である。4B is a detailed circuit configuration diagram of the pipeline control unit 103 and its peripheral circuits in FIG. 4A. FIG. 図4Aの要求格納部1 104の詳細な回路構成図である。FIG. 4B is a detailed circuit configuration diagram of the request storage unit 1 104 in FIG. 4A. 図4Aのバンクアドレス均等制御部(バンクアボート生成部)401の詳細な回路構成図である。4B is a detailed circuit configuration diagram of a bank address equalization control unit (bank abort generation unit) 401 in FIG. 4A. FIG. 第1の実施形態の処理過程を示すフローチャートである。It is a flowchart which shows the process of 1st Embodiment. 第2の実施形態の構成図(その1)である。It is a block diagram (the 1) of 2nd Embodiment. 第2の実施形態の構成図(その2)である。It is a block diagram (the 2) of 2nd Embodiment.

以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1Aおよび図1Bは、主記憶装置にL2キャッシュメモリが接続され、L2キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する情報処理装置の一般的な構成を示す図である。この構成は、CPUコアの部分と主記憶アクセスを行う部分が、主記憶アクセス機能外付けマルチコアCPUチップ1とシステムコントローラチップ107に分かれている構成である。
Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
1A and 1B are diagrams showing a general configuration of an information processing apparatus having an L2 cache memory connected to a main storage device and having a mechanism for pipeline processing of memory access requests to the L2 cache memory and the main storage device. is there. In this configuration, a CPU core portion and a portion that performs main memory access are divided into a multi-core CPU chip 1 with an external main memory access function and a system controller chip 107.

図1AのCPUコア部100は、演算処理を実行する演算処理プロセッサであり、1つ以上実装され得る。CPUコア部100は命令処理部の一例である。   The CPU core unit 100 in FIG. 1A is an arithmetic processing processor that executes arithmetic processing, and one or more CPU core units 100 may be mounted. The CPU core unit 100 is an example of an instruction processing unit.

図1Aの新規要求格納部102(「要求格納部0」とも呼ぶ)、パイプライン制御部103、および要求格納部104(以下単に「要求格納部1」と記載する)は、L2キャッシュ制御部101を構成する。   The new request storage unit 102 (also referred to as “request storage unit 0”), the pipeline control unit 103, and the request storage unit 104 (hereinafter simply referred to as “request storage unit 1”) in FIG. Configure.

新規要求格納部102は、各CPUコア部100に対応して1つ以上のエントリが実装される。新規要求格納部102は、CPUコア部100内のL1(1次)キャッシュがキャッシュミスしたときに、メモリアクセス要求を、L2(2次)キャッシュメモリでのパイプライン処理のために、そのCPUコア部100に対応するエントリに保持する。   The new request storage unit 102 is provided with one or more entries corresponding to each CPU core unit 100. When the L1 (primary) cache in the CPU core unit 100 has a cache miss, the new request storage unit 102 sends a memory access request to the CPU core for pipeline processing in the L2 (secondary) cache memory. Held in the entry corresponding to the section 100.

パイプライン制御部103は、新規要求格納部102に格納されたメモリアクセス要求のキャッシュアクセスおよび主記憶アクセスをパイプライン処理するための制御を実行する。   The pipeline control unit 103 executes control for pipeline processing of cache access and main memory access of a memory access request stored in the new request storage unit 102.

図1Aのキャッシュタグ部105とキャッシュデータ部106は、L2キャッシュメモリを構成する。キャッシュタグ部105は、キャッシュライン毎にタグを記憶する。キャッシュデータ部106は、キャッシュライン毎に、そのキャッシュラインに対応するインデックスとそのキャッシュラインに対応するキャッシュタグ部105上のタグとで定まる、主記憶装置としてのDIMM(Dual Inline Memory Module)110(図1B)上のアドレスのデータを保持する。パイプライン制御部103からキャッシュタグ部105へは、タグ読み出しコマンドが発行されてタグが読み出され、または、タグ更新コマンドが発行されてタグが更新される。また、パイプライン制御部103からキャッシュデータ部106へは、データのリードまたはライト指示(R/W指示)が発行され、データのリード動作またはライト動作が行われる。   The cache tag unit 105 and the cache data unit 106 in FIG. 1A constitute an L2 cache memory. The cache tag unit 105 stores a tag for each cache line. For each cache line, the cache data unit 106 is a DIMM (Dual Inline Memory Module) 110 (main memory device) 110 (determined by an index corresponding to the cache line and a tag on the cache tag unit 105 corresponding to the cache line. 1B) holds the data at the upper address. From the pipeline control unit 103 to the cache tag unit 105, a tag read command is issued to read the tag, or a tag update command is issued to update the tag. Also, a data read or write instruction (R / W instruction) is issued from the pipeline control unit 103 to the cache data unit 106, and a data read or write operation is performed.

図1Aの要求格納部1 104(以下単に「要求格納部1」と呼ぶ)は、パイプライン制御部103によるキャッシュタグ部105へのキャッシュアクセスがキャッシュミスした場合に、そのキャッシュミスしたメモリアクセス要求を保持する。要求格納部1は、DIMM110(図1B)へのアクセスが完了し、キャッシュタグ部105、キャッシュデータ部106が更新され、またはCPUコア部100へのデータ転送が完了するまで、各メモリアクセス要求を保持する。   The request storage unit 1 104 (hereinafter, simply referred to as “request storage unit 1”) in FIG. 1A is a memory access request that causes a cache miss when a cache access to the cache tag unit 105 by the pipeline control unit 103 is a cache miss. Hold. The request storage unit 1 receives each memory access request until the access to the DIMM 110 (FIG. 1B) is completed, the cache tag unit 105 and the cache data unit 106 are updated, or data transfer to the CPU core unit 100 is completed. Hold.

図1AのCPU側バスインタフェース部111は、主記憶アクセス機能外付けマルチコアCPUチップ1とシステムコントローラチップ107を接続するシステムバスの、主記憶アクセス機能外付けマルチコアCPUチップ1側インタフェース回路である。   The CPU side bus interface unit 111 in FIG. 1A is a main memory access function external multicore CPU chip 1 side interface circuit of a system bus connecting the main memory access function external multicore CPU chip 1 and the system controller chip 107.

図1Bのシステムコントローラチップ107内のシステムコントローラ側バスインタフェース部112は、上記システムバスのシステムコントローラチップ107側インタフェース回路である。   A system controller side bus interface unit 112 in the system controller chip 107 of FIG. 1B is an interface circuit on the system controller chip 107 side of the system bus.

図1Bのシステムコントローラチップ107内の要求格納部2 108(以下単に「要求格納部2」と呼ぶ)は、図1AのL2キャッシュ制御部101においてキャッシュミスしたメモリアクセス要求を保持する。要求格納部2は、システムコントローラチップ107内のDIMMアクセス制御部109にメモリアクセス要求が読み出されて主記憶アクセスのパイプラインに投入されるまで、各メモリアクセス要求を保持する。   A request storage unit 2 108 (hereinafter simply referred to as “request storage unit 2”) in the system controller chip 107 of FIG. 1B holds a memory access request that has been missed by the L2 cache control unit 101 of FIG. 1A. The request storage unit 2 holds each memory access request until the memory access request is read to the DIMM access control unit 109 in the system controller chip 107 and is input to the main memory access pipeline.

要求格納部1および2へのメモリアクセス要求の格納時には、パイプライン制御部103から要求格納部1および2に要求格納指示が発行され、要求格納部1および2はこの指示に基づいてメモリアクセス要求の格納動作を実行する。   When storing a memory access request in the request storage units 1 and 2, a request storage instruction is issued from the pipeline control unit 103 to the request storage units 1 and 2, and the request storage units 1 and 2 receive a memory access request based on this instruction. Execute the storing operation.

図1Bのシステムコントローラチップ107内のDIMMアクセス制御部109は、要求格納部2から投入可能なバンクのメモリアクセス要求を選択し、DIMM110に対して、メモリアクセスのコマンドとアドレスを発行する。要求格納部2からDIMMアクセス制御部109に読み出されたときに、要求格納部2からシステムコントローラ側バスインタフェース部112と図1AのCPU側バスインタフェース部111を介して図1Aの要求格納部1に対し、要求開放通知が通知される。   The DIMM access control unit 109 in the system controller chip 107 in FIG. 1B selects a memory access request for a bank that can be entered from the request storage unit 2 and issues a memory access command and address to the DIMM 110. When read from the request storage unit 2 to the DIMM access control unit 109, the request storage unit 1 in FIG. 1A from the request storage unit 2 through the system controller side bus interface unit 112 and the CPU side bus interface unit 111 in FIG. 1A. In response to this, a request release notification is notified.

図1BのDIMM110は、複数のDRAMチップをプリント基板上に搭載したメモリモジュールであり、主記憶装置として使用される。   The DIMM 110 in FIG. 1B is a memory module in which a plurality of DRAM chips are mounted on a printed circuit board, and is used as a main storage device.

DIMM110へのアクセスにより取得された主記憶装置からのデータ応答は、図1Aの、キャッシュデータ部106、要求格納部1、メモリアクセス要求の要求元のCPUコア部100に応答される。   The data response from the main storage device acquired by accessing the DIMM 110 is returned to the cache data unit 106, the request storage unit 1, and the CPU core unit 100 that requested the memory access request in FIG. 1A.

図1Aのパイプライン制御部103は、上記データ応答に対応して、キャッシュデータ部106に対してライトコマンドを発行する。これにより、パイプライン制御部103は、主記憶部から応答されたデータを、キャッシュデータ部106上の、上記応答データのアドレスに対応するキャッシュラインのうち書き込み可能なキャッシュウェイに書き込む。また、パイプライン制御部103は、上記データ応答に対応して、キャッシュタグ部105に対してタグ更新コマンドを発行する。これにより、パイプライン制御部103は、キャッシュタグ部105上の、上記キャッシュラインおよびキャッシュウェイに対応する部分のタグを、上記応答データのアドレスに対応するタグで更新する。   The pipeline control unit 103 in FIG. 1A issues a write command to the cache data unit 106 in response to the data response. As a result, the pipeline control unit 103 writes the data returned from the main storage unit to a writable cache way in the cache line corresponding to the address of the response data on the cache data unit 106. Also, the pipeline control unit 103 issues a tag update command to the cache tag unit 105 in response to the data response. As a result, the pipeline control unit 103 updates the tag corresponding to the cache line and the cache way on the cache tag unit 105 with the tag corresponding to the address of the response data.

図1Cおよび図1Dは、図1Aおよび図1Bと同様に、主記憶装置にL2キャッシュメモリが接続され、L2キャッシュメモリおよび主記憶装置へのメモリアクセス要求をパイプライン処理する機構を有する情報処理装置の一般的な構成を示す図である。この構成は、主記憶アクセスを行う部分が、主記憶アクセス機能外付けマルチコアCPUチップ1内に1チップとして実装されている構成である。   1C and 1D, similarly to FIGS. 1A and 1B, an L2 cache memory is connected to a main storage device, and an information processing apparatus having a mechanism for pipeline processing memory access requests to the L2 cache memory and the main storage device It is a figure which shows the general structure of. In this configuration, a portion that performs main memory access is mounted as a single chip in the external multi-core CPU chip 1 having a main memory access function.

この構成では、図1AのCPU側バスインタフェース部111、図1Bのシステムコントローラ側バスインタフェース部112が省略され、さらに、図1Bの要求格納部2の機能も省略されて、要求格納部1に統合されている。要求格納部1が要求格納部2の機能を担っており、要求格納部1と要求格納部2の間の通信制御が省略される以外は、図1Aおよび図1Bの場合と同様の制御である。   In this configuration, the CPU side bus interface unit 111 in FIG. 1A and the system controller side bus interface unit 112 in FIG. 1B are omitted, and the function of the request storage unit 2 in FIG. Has been. The control is the same as in the case of FIG. 1A and FIG. 1B except that the request storage unit 1 is responsible for the function of the request storage unit 2 and communication control between the request storage unit 1 and the request storage unit 2 is omitted. .

図2は、図1Aおよび図1Bの構成を有するL2キャッシュシステムのパイプライン処理を示す動作シーケンス図である。   FIG. 2 is an operation sequence diagram showing pipeline processing of the L2 cache system having the configuration of FIGS. 1A and 1B.

まず、CPUコア部100が例えばロード命令をミスし、CPUコアにおけるL1(1次)キャッシュメモリへのアクセスがミスすると、L2キャッシュ制御部101に新規メモリアクセス要求が発行される。これにより、メモリアクセス要求が、L2キャッシュ制御部101内の新規要求格納部102に受信される(シーケンスS1)。   First, when the CPU core unit 100 misses, for example, a load instruction and the CPU core misses access to the L1 (primary) cache memory, a new memory access request is issued to the L2 cache control unit 101. Thereby, the memory access request is received by the new request storage unit 102 in the L2 cache control unit 101 (sequence S1).

新規要求格納部102からL2キャッシュメモリのパイプライン(図2中「L2−PIPE」と記載)にメモリアクセス要求が投入される(シーケンスS2)。なお、L2−PIPEは、物理的な回路を示すものではなく、時間経過に沿ったパイプライン処理の状況を示す図である。   A memory access request is input from the new request storage unit 102 to the pipeline of the L2 cache memory (described as “L2-PIPE” in FIG. 2) (sequence S2). Note that L2-PIPE is not a physical circuit, but a diagram showing the status of pipeline processing over time.

L2−PIPEに投入されたメモリアクセス要求がL2キャッシュメモリでキャッシュミスを起こすと(シーケンスS3)、キャッシュミスしたメモリアクセス要求は、要求格納部1に格納される(シーケンスS4)。さらに、そのメモリアクセス要求は、図1Bのシステムコントローラチップ107内の要求格納部2に格納される(シーケンスS5)。要求格納部1から要求格納部2へのメモリアクセス要求の転送は、図1AのCPU側バスインタフェース部111からシステムバスを経由して図1Bのシステムコントローラ側バスインタフェース部112を介して実行される。また、パイプライン制御部103から新規要求格納部102には、上記メモリアクセス要求に対応するエントリの開放通知が通知される(シーケンスS6)。これにより、新規要求格納部102は、上記メモリアクセス要求に対応するエントリを開放し、次のメモリアクセス要求を受け付け可能な状態になる。   When a memory access request input to the L2-PIPE causes a cache miss in the L2 cache memory (sequence S3), the memory access request having the cache miss is stored in the request storage unit 1 (sequence S4). Further, the memory access request is stored in the request storage unit 2 in the system controller chip 107 of FIG. 1B (sequence S5). Transfer of the memory access request from the request storage unit 1 to the request storage unit 2 is executed from the CPU side bus interface unit 111 in FIG. 1A via the system bus via the system controller side bus interface unit 112 in FIG. 1B. . Further, the pipeline control unit 103 notifies the new request storage unit 102 of an entry release notification corresponding to the memory access request (sequence S6). As a result, the new request storage unit 102 releases the entry corresponding to the memory access request and becomes ready to accept the next memory access request.

要求格納部1および要求格納部2は、メモリアクセス要求を保持するエントリをそれぞれ複数備える。パイプライン制御部103は、新規要求格納部102内の1つのエントリから1つのメモリアクセス要求を取り出してキャッシュアクセスを実行する。この結果、キャッシュヒットとなってCPUコア部100へのデータ応答が完了する、またはキャッシュミスによりメモリアクセス要求が要求格納部1および2に格納される。   Each of the request storage unit 1 and the request storage unit 2 includes a plurality of entries that hold memory access requests. The pipeline control unit 103 retrieves one memory access request from one entry in the new request storage unit 102 and executes cache access. As a result, a cache hit occurs and the data response to the CPU core unit 100 is completed, or a memory access request is stored in the request storage units 1 and 2 due to a cache miss.

システムコントローラチップ107内の要求格納部2に保持されたメモリアクセス要求は、処理可能なバンクアドレスを有するメモリアクセス要求から順にDIMM110のアクセス用のパイプライン(図2中「主記憶アクセスパイプ」と表記)に投入される。なお、主記憶アクセスパイプは、L2−PIPEと同様に、物理的な回路を示すものではなく、時間経過に沿った主記憶アクセスのパイプライン処理の状況を示す図である。DIMMアクセス制御部109は、要求格納部2からメモリアクセス要求を取り出すとともに(シーケンスS7)、要求格納部2のエントリを開放してその旨を要求格納部1に通知する(シーケンスS8)。要求格納部2から要求格納部1への通知は、図1Bのシステムコントローラ側バスインタフェース部112からシステムバスを経由して図1AのCPU側バスインタフェース部111を介して実行される。これにより、要求格納部2は、開放されたエントリに、新たなメモリアクセス要求を受け付け可能な状態になる。DIMMアクセス制御部109は、取り出したメモリアクセス要求に対応するコマンドとアドレスを生成し、DIMM110に対してメモリアクセスを実行する(シーケンスS9)。   The memory access requests held in the request storage unit 2 in the system controller chip 107 are expressed in order from the memory access request having a bank address that can be processed to the DIMM 110 access pipeline (referred to as “main memory access pipe” in FIG. 2). ). The main memory access pipe is not a physical circuit, as in the case of L2-PIPE, but is a diagram illustrating the status of pipeline processing for main memory access over time. The DIMM access control unit 109 extracts the memory access request from the request storage unit 2 (sequence S7), releases the entry in the request storage unit 2, and notifies the request storage unit 1 to that effect (sequence S8). The notification from the request storage unit 2 to the request storage unit 1 is executed from the system controller side bus interface unit 112 of FIG. 1B via the system bus via the CPU side bus interface unit 111 of FIG. 1A. As a result, the request storage unit 2 becomes ready to accept a new memory access request for the released entry. The DIMM access control unit 109 generates a command and an address corresponding to the fetched memory access request, and executes memory access to the DIMM 110 (sequence S9).

DIMM110におけるメモリアクセスが完了すると、DIMM110から要求格納部1に対してデータ応答が送信される(シーケンスS10)。要求格納部2から要求格納部1へのデータ応答は、図1Bのシステムコントローラ側バスインタフェース部112からシステムバスを経由して図1AのCPU側バスインタフェース部111を介して実行される。この結果、要求格納部1からパイプライン制御部103を介して、L2−PIPE上で要求応答パイプが起動される(シーケンスS11)。要求応答パイプにおいて、パイプライン制御部103は、キャッシュデータ部106への応答データの書き込みとキャッシュタグ部105のタグの更新を実行する(シーケンスS12)。さらに、パイプライン制御部103は、CPUコア部100へのデータ応答を行う(シーケンスS13)。なお、CPUコア部100へのデータ応答は、メモリアクセス要求が、ロード要求であって、かつ予めキャッシュメモリに必要なデータを読み込むプリフェッチ要求でない場合に実行される。最後に、要求格納部1に、該当するメモリアクセス要求のエントリの開放を通知する(シーケンスS14)。これにより、要求格納部1の該当するエントリが開放される。   When the memory access in the DIMM 110 is completed, a data response is transmitted from the DIMM 110 to the request storage unit 1 (sequence S10). A data response from the request storage unit 2 to the request storage unit 1 is executed from the system controller side bus interface unit 112 of FIG. 1B via the system bus via the CPU side bus interface unit 111 of FIG. 1A. As a result, a request response pipe is activated on the L2-PIPE from the request storage unit 1 via the pipeline control unit 103 (sequence S11). In the request response pipe, the pipeline control unit 103 writes the response data to the cache data unit 106 and updates the tag of the cache tag unit 105 (sequence S12). Further, the pipeline control unit 103 makes a data response to the CPU core unit 100 (sequence S13). The data response to the CPU core unit 100 is executed when the memory access request is a load request and is not a prefetch request for reading data necessary for the cache memory in advance. Finally, the request storage unit 1 is notified of the release of the corresponding memory access request entry (sequence S14). As a result, the corresponding entry in the request storage unit 1 is released.

以上の制御動作において、パイプライン制御部103は、新規要求格納部102の複数のエントリのうちから1つのメモリアクセス要求を取り出してキャッシュアクセスを実行し、新規要求格納部102のそのエントリを開放する。その後、パイプライン制御部103は、1つのメモリアクセス要求においてキャッシュミスが起こって主記憶アクセスが必要になった場合には、そのメモリアクセス要求を要求格納部1および2に引き渡す。これにより、パイプライン制御部103は、L2−PIPE上で、いったんそのメモリアクセス要求に対応する処理を開放して、他のメモリアクセス要求を新規要求格納部102の新たなエントリから読み込むことができる。この結果、DIMMアクセス制御部109は、新規要求格納部102からメモリアクセス要求を次々に読み込んで、各メモリアクセス要求に対応するキャッシュアクセスを連続的にパイプライン処理することができる。   In the above control operation, the pipeline control unit 103 extracts one memory access request from a plurality of entries in the new request storage unit 102, executes cache access, and releases the entry in the new request storage unit 102. . Thereafter, when a cache miss occurs in one memory access request and the main memory access is necessary, the pipeline control unit 103 delivers the memory access request to the request storage units 1 and 2. As a result, the pipeline control unit 103 can once release the process corresponding to the memory access request on the L2-PIPE and read another memory access request from the new entry in the new request storage unit 102. . As a result, the DIMM access control unit 109 can sequentially read memory access requests from the new request storage unit 102 and continuously pipeline the cache access corresponding to each memory access request.

また、システムコントローラチップ107内のDIMMアクセス制御部109は、要求格納部2から1つのメモリアクセス要求を取り出した後、要求格納部2の該当するエントリを開放して、そのエントリで次のメモリアクセス要求を受け付け可能な状態にする。そして、DIMMアクセス制御部109は、同一バンクアドレスでなければ、要求格納部2から次のメモリアクセス要求を取り出して、連続的に処理することができる。このようにして、システムコントローラチップ107においても、主記憶アクセスパイプによるパイプライン処理によって、効率的な主記憶アクセスが実現される。   Also, the DIMM access control unit 109 in the system controller chip 107 extracts one memory access request from the request storage unit 2, then releases the corresponding entry in the request storage unit 2, and uses that entry as the next memory access. Make the request ready. Then, if the bank address is not the same, the DIMM access control unit 109 can retrieve the next memory access request from the request storage unit 2 and process it continuously. In this manner, also in the system controller chip 107, efficient main memory access is realized by pipeline processing using the main memory access pipe.

パイプライン制御部103は、要求格納部1の使用エントリ数をカウントするカウンタを備えている。そして、パイプライン制御部103は、新規要求格納部102からメモリアクセス要求を読み出してキャッシュアクセスした結果、キャッシュミスが発生した場合に、要求格納部1に空きがないときには、新規要求格納部102に対して差し戻し指示を通知する。この結果、新規要求格納部102の該当するエントリは開放されず、待機状態となる。   The pipeline control unit 103 includes a counter that counts the number of entries used in the request storage unit 1. Then, the pipeline control unit 103 reads the memory access request from the new request storage unit 102 and performs cache access. As a result, when a cache miss occurs and the request storage unit 1 has no free space, the pipeline control unit 103 stores the new request storage unit 102. Inform the user of the return instruction. As a result, the corresponding entry in the new request storage unit 102 is not released and enters a standby state.

また、パイプライン制御部103から要求格納部1には、パイプライン制御部103が現在パイプライン処理しているパイプアドレス(メモリアクセス要求が要求するアドレス)が通知されている。この結果、要求格納部1は、自身のエントリ内のメモリアクセス要求が要求するアドレスとパイプアドレスとの一致を検出すると、アドレスマッチ通知をパイプライン制御部103に通知する。この場合には、パイプライン制御部103がパイプライン処理を開始しようとするメモリアクセス要求のアドレスのデータは、現在、要求格納部1のエントリに格納されていてそのエントリを占有している状態(仕掛り中)であるため、再度主記憶アクセスを行う必要はない。このため、パイプライン制御部103は、アドレスマッチ通知を受信した場合には、新規要求格納部102に対して差し戻し指示を通知する。この結果、新規要求格納部102の該当するエントリは開放されず、待機状態となる。要求格納部1中の該当するメモリアクセス要求が実行されてキャッシュタグ部105とキャッシュデータ部106が更新された後に、上記新規要求格納部102中の同じアドレスを要求するメモリアクセス要求がパイプライン処理される。これにより、当該メモリアクセス要求がキャッシュヒットし、キャッシュデータ部106から該当するデータが要求元のCPUコア部100にロードされる。   Further, the pipeline control unit 103 is notified to the request storage unit 1 of the pipe address (the address requested by the memory access request) that the pipeline control unit 103 is currently pipeline processing. As a result, when the request storage unit 1 detects a match between the address requested by the memory access request in its entry and the pipe address, the request storage unit 1 notifies the pipeline control unit 103 of an address match notification. In this case, the memory access request address data for which the pipeline control unit 103 is to start pipeline processing is currently stored in the entry of the request storage unit 1 and occupies that entry ( Since it is in progress), it is not necessary to perform main memory access again. Therefore, when the pipeline control unit 103 receives an address match notification, the pipeline control unit 103 notifies the new request storage unit 102 of a return instruction. As a result, the corresponding entry in the new request storage unit 102 is not released and enters a standby state. After the corresponding memory access request in the request storage unit 1 is executed and the cache tag unit 105 and the cache data unit 106 are updated, the memory access request for requesting the same address in the new request storage unit 102 is processed by pipeline processing. Is done. As a result, the memory access request hits the cache, and the corresponding data is loaded from the cache data unit 106 to the CPU core unit 100 that is the request source.

その他、パイプライン制御部103においてパイプラインのアボート条件が成立した場合に、パイプライン制御部103から新規要求格納部102や要求格納部1に対して差し戻し指示を通知する。この結果、新規要求格納部102や要求格納部1の該当するエントリは開放されず、待機状態となる。   In addition, when the pipeline abort condition is satisfied in the pipeline control unit 103, the pipeline control unit 103 notifies the new request storage unit 102 and the request storage unit 1 of a return instruction. As a result, the corresponding entry in the new request storage unit 102 and the request storage unit 1 is not released and enters a standby state.

図1A、図1BのL2キャッシュシステムの構成において、DRAMの一種であるDIMM110で構成される主記憶装置は、ある数のバンクに分割された構成がとられている。そして、あるバンクに対するメモリアクセス要求の処理が仕掛かると、その同一バンクではある一定時間、次のメモリアクセス要求に対する処理ができないという特性を持っている。このため、メモリアクセス要求が要求格納部2からDIMMアクセス制御部109に投入されると、その要求と同一のバンクアドレスを有するメモリアクセス要求は、一定時間要求格納部2からの取り出しの選択対象から除外される。そして、要求格納部2のエントリ内の処理可能なバンクアドレスを有するメモリアクセス要求のうち、古いものから順次選択して処理が行われる。   In the configuration of the L2 cache system shown in FIGS. 1A and 1B, the main storage device including the DIMM 110, which is a kind of DRAM, is divided into a certain number of banks. When a memory access request for a certain bank is processed, the same bank has a characteristic that it cannot process the next memory access request for a certain period of time. For this reason, when a memory access request is input from the request storage unit 2 to the DIMM access control unit 109, a memory access request having the same bank address as the request is selected from a selection target to be extracted from the request storage unit 2 for a certain period of time. Excluded. Then, among the memory access requests having processable bank addresses in the entry of the request storage unit 2, the oldest ones are sequentially selected and processed.

図3は、図1A、図1BのL2キャッシュシステムのパイプライン処理のイメージを示した図である。   FIG. 3 is a diagram showing an image of pipeline processing of the L2 cache system of FIGS. 1A and 1B.

いま、図1AのCPUコア部100として、Core0、Core1、Core2、Core3の4つのプロセッサが実装されている場合を考える。また図3で、BANK:0、BANK:1、BANK:2、BANK:3、BANK:4、BANK:5、BANK:6、BANK:7は、要求パイプ上では、各ラベルで示されるバンクアドレスのメモリアクセス要求がパイプライン処理されていることを示す。また、これらのラベルは、要求応答パイプ上では、各ラベルで示されるバンクアドレスのデータ応答がパイプライン処理されていることを示す。なお、以下の説明では、「BANK:0」を単に「0」、「BANK:1」を単に「1」というように、ラベル「BANK:」を省略して説明する。   Now, consider a case where four processors Core 0, Core 1, Core 2, and Core 3 are mounted as the CPU core unit 100 in FIG. 1A. In FIG. 3, BANK: 0, BANK: 1, BANK: 2, BANK: 3, BANK: 4, BANK: 5, BANK: 6, and BANK: 7 are bank addresses indicated by respective labels on the request pipe. Indicates that the memory access request is being pipelined. These labels indicate that the data response of the bank address indicated by each label is pipeline processed on the request response pipe. In the following description, “BANK: 0” is simply “0”, “BANK: 1” is simply “1”, and the label “BANK:” is omitted.

まず、Core0〜3の4つのCPUコア部100を実装したシステムにおいて、オンライン映像配信などのストリーミングデータを扱うサービスが実行されている場合を考える。この場合に、同じストリーミングデータの再生に対して、ほぼ同時に複数のCPUコア部100から要求されるケースを考える。このようなケースでは、図3(a)の301として示されるように、Core0〜3の各CPUコア部100から、例えば0→0→0→0→1→1→1→1というように、同一バンクのメモリアクセス要求が連続して要求パイプ上で発行される可能性がある。この場合、L2キャッシュメモリでキャッシュミスが発生すると、DIMMアクセス制御部109が要求格納部2から最初のBANK:0のメモリアクセス要求を読み出してDIMM110へのメモリアクセスを実行する。そしてその後、一定時間は、DIMMアクセス制御部109は、同じBANK:0のメモリアクセス要求は、要求格納部2から読み出せない。すなわち、図3(a)の301の例では、最初のBANK:0のメモリアクセス要求が実行された後、一定時間、同じBANK:0を有する続く3つのメモリアクセス要求は要求格納部2に滞留したままとなる。そして、図3(a)の302として示されるように、要求格納部2からDIMMアクセス制御部109へは、その他のBANK:1やBANK:2のメモリアクセス要求が読み出されてDIMM110へのメモリアクセスが実行される。この結果、要求応答パイプ上のデータ応答は、図3(a)の302に示されるように、最初のBANK:0のデータ応答の後に、間隔が空いてBANK:1、BANK:2などのデータ応答が続く。そして、最初のBANK:0のデータ応答の後一定時間が経ってからやっと、次のBANK:0のデータ応答が現れる。   First, consider a case where a service that handles streaming data such as online video distribution is executed in a system in which the four CPU cores 100 of Core 0 to 3 are mounted. In this case, consider a case where a plurality of CPU core units 100 are requested almost simultaneously for reproduction of the same streaming data. In such a case, as indicated by 301 in FIG. 3A, from each of the CPU cores 100 of Core 0 to 3, for example, 0 → 0 → 0 → 0 → 1 → 1 → 1 → 1 There is a possibility that memory access requests of the same bank are issued continuously on the request pipe. In this case, when a cache miss occurs in the L2 cache memory, the DIMM access control unit 109 reads the first BANK: 0 memory access request from the request storage unit 2 and executes memory access to the DIMM 110. After that, for a certain period of time, the DIMM access control unit 109 cannot read out the same BANK: 0 memory access request from the request storage unit 2. That is, in the example 301 in FIG. 3A, after the first BANK: 0 memory access request is executed, the subsequent three memory access requests having the same BANK: 0 remain in the request storage unit 2 for a certain period of time. Will remain. Then, as indicated by 302 in FIG. 3A, the memory access request for other BANK: 1 or BANK: 2 is read from the request storage unit 2 to the DIMM access control unit 109, and the memory to the DIMM 110 is read out. Access is performed. As a result, as shown by 302 in FIG. 3A, the data response on the request response pipe is the data of BANK: 1, BANK: 2, etc. with an interval after the first BANK: 0 data response. The response continues. Then, only after a certain time has passed after the first BANK: 0 data response, the next BANK: 0 data response appears.

図3(a)に示されるような状況では、同一のバンクに対するデータ応答が大きく遅れるだけでなく、要求格納部1や2上で同一のバンクに対するメモリアクセス要求が多く滞留するようになる。この結果、要求格納部1や2に新たなメモリアクセス要求を格納することができなくなり、要求格納部1および2の使用可能なエントリが枯渇してしまう。すなわち、要求格納部1や2のエントリを無駄に占有し実質的にエントリ数 を縮小させているものといえ、L2キャッシュ制御部101の性能が理論性能から大幅に低下してしまうという問題が発生する。   In the situation shown in FIG. 3A, not only the data response to the same bank is greatly delayed, but also many memory access requests for the same bank stay on the request storage units 1 and 2. As a result, a new memory access request cannot be stored in the request storage units 1 and 2, and usable entries in the request storage units 1 and 2 are exhausted. In other words, it can be said that the entries of the request storage units 1 and 2 are wasted and the number of entries is substantially reduced, and the performance of the L2 cache control unit 101 is greatly reduced from the theoretical performance. To do.

これを解決する手段としてまず考えられるのは、要求格納部1および2のエントリ数を増大させることである。例えば全ストリームに対してDIMM110上へのメモリアクセス要求を格納できるだけの多数のエントリ数を用意すれば、局所的な偏りの影響を軽減することが期待できる。しかし、この手段は集積回路上に占める物理面積の増大を招くという問題がある。   A possible solution to this problem is to increase the number of entries in the request storage units 1 and 2. For example, if a large number of entries sufficient to store memory access requests on the DIMM 110 are prepared for all streams, it can be expected to reduce the influence of local bias. However, this means has a problem that the physical area occupied on the integrated circuit is increased.

従って、物理面積の増大を招くことなく、要求格納部1や2のバンクが常時均等である状態 を保つことが重要である。すなわち、キャッシュミス時の主記憶アクセスのパイプライン上で、メモリアクセス要求が要求する主記憶部上のバンクが特定のバンクに偏ることなく均等に分散するようなアクセス制御を行うことが、キャッシュ制御上重要となる。以下に説明する実施形態では、このようなアクセス制御を、キャッシュ制御部から主記憶装置へのパイプラインアクセスにおけるバンクの均等化と呼ぶ。   Therefore, it is important to keep the banks of the request storage units 1 and 2 always uniform without increasing the physical area. In other words, on the main memory access pipeline at the time of a cache miss, it is possible to perform access control so that the banks on the main memory requested by the memory access request are evenly distributed without being biased to specific banks. Top important. In the embodiment described below, such access control is referred to as bank equalization in pipeline access from the cache control unit to the main storage device.

図3(b)の303として示されるように、1つのCPUコア部100からは、0→1→2→3→4というように連続したバンクアクセスのストリーミングデータに対するメモリアクセス要求が出力される。しかし、Core0〜3の各CPUコア部100を合わせた全体でみると、例えば0→4→2→6→1→5→3→7というように、多様な種類のバンクのメモリアクセス要求が順次要求パイプ上で発行される場合を考える。この場合、L2キャッシュメモリでたとえキャッシュミスが発生しても、要求格納部2からDIMMアクセス制御部109には、各バンクアドレスのメモリアクセス要求を次々と読み出すことができる。この結果、図3(b)の304として示されるように、図2のシーケンス12として実行される要求応答パイプ上では、要求パイプ上の順と同じ順で、各バンクアドレスに対応するデータ応答を、間断なく処理することができる。この場合には、主記憶部からL2キャッシュ制御部101およびCPUコア部100へのデータ転送性能は、最大となる。しかしながら、常時図3(b)に示すように、多様な種類のバンクへのメモリアクセス要求が生じるわけではない。したがって、メモリキャッシュ制御部から主記憶部へのパイプラインアクセスにおけるバンクの均等化がより的確に行われるようにすることが望まれる。   As indicated by reference numeral 303 in FIG. 3B, one CPU core unit 100 outputs a memory access request for streaming data for continuous bank access such as 0 → 1 → 2 → 3 → 4. However, when looking at the CPU core units 100 of Core 0 to 3 as a whole, for example, memory access requests of various types of banks are sequentially made, such as 0 → 4 → 2 → 6 → 1 → 5 → 3 → 7. Consider a case where it is issued on a request pipe. In this case, even if a cache miss occurs in the L2 cache memory, the memory access requests for each bank address can be successively read from the request storage unit 2 to the DIMM access control unit 109. As a result, as shown as 304 in FIG. 3B, on the request response pipe executed as the sequence 12 in FIG. 2, the data response corresponding to each bank address is sent in the same order as on the request pipe. , Can be processed without interruption. In this case, the data transfer performance from the main storage unit to the L2 cache control unit 101 and the CPU core unit 100 is maximized. However, as shown in FIG. 3B, memory access requests to various types of banks are not always generated. Therefore, it is desired that bank equalization in pipeline access from the memory cache control unit to the main storage unit be performed more accurately.

以下に説明する第1の実施形態は、バンクに分割された構成を有する主記憶装置、前記主記憶装置を制御する主記憶制御装置、主記憶装置に対するキャッシュメモリ、および前記キャッシュメモリを制御するキャッシュ制御装置を有する。新規のメモリアクセス要求に対して、キャッシュ制御装置において、新規要求格納部からパイプライン投入部を経て、前記キャッシュメモリの状態を保持するタグをパイプライン処理によって検索する。その結果キャッシュミスが発生したら、要求格納部1にキャッシュライン単位で主記憶装置に対する仕掛り中のメモリアクセス要求として格納するとともに主記憶制御装置に該メモリアクセス要求を発行する。要求格納部1は主記憶装置からのデータ応答を受信後、パイプライン処理により前記キャッシュメモリのタグ部およびデータ格納部を更新するとともに、要求格納部1のエントリを開放する。要求格納部1は後続のメモリアクセス要求に対してパイプラインでアドレスマッチを行い、同じアドレスに対する処理を中断させる。そしてキャッシュ制御装置からのメモリアクセス要求を一時的に主記憶制御装置内の各バンク共有の要求格納部2に格納し、当該要求格納部2から処理中でないバンクの要求を選択して主記憶装置に対する処理を行うこの情報処理装置において、パイプライン処理中の新規のメモリアクセス要求に対応する主記憶装置のバンクについて、当該バンクと一致するメモリアクセス要求が要求格納部1にいくつ格納されているかを計数し、当該計数値があらかじめ定められた閾値を超える場合は処理を中断させ、当該閾値を超えない場合は処理を続行させ、主記憶制御装置の要求格納部2へメモリアクセス要求を発行するものである。そして、計数する要求格納部1内のメモリアクセス要求は、要求格納部1に格納されたメモリアクセス要求のうち要求格納部2の開放通知を未受信であるメモリアクセス要求である。その結果、主記憶制御装置における要求格納部2に格納された要求のバンクが均等になるように導かれ、理論性能に近い主記憶転送性能を得ることを可能にする。   A first embodiment described below includes a main storage device having a configuration divided into banks, a main storage control device that controls the main storage device, a cache memory for the main storage device, and a cache that controls the cache memory It has a control device. In response to a new memory access request, the cache controller searches for a tag holding the state of the cache memory through pipeline processing from the new request storage unit through the pipeline input unit. As a result, if a cache miss occurs, it is stored in the request storage unit 1 as an in-process memory access request for the main storage device in units of cache lines and the memory access request is issued to the main storage control device. After receiving the data response from the main storage device, the request storage unit 1 updates the tag unit and the data storage unit of the cache memory by pipeline processing and releases the entry of the request storage unit 1. The request storage unit 1 performs an address match on the subsequent memory access request in a pipeline, and interrupts the processing for the same address. Then, a memory access request from the cache control device is temporarily stored in the request storage unit 2 shared by each bank in the main storage control device, and a request for a bank not being processed is selected from the request storage unit 2 to select the main storage device. In the information processing apparatus that performs processing for the number of memory access requests that match the bank, how many memory access requests corresponding to the new memory access request during pipeline processing are stored in the request storage unit 1. Counting, if the count value exceeds a predetermined threshold value, the process is interrupted. If the count value is not exceeded, the process is continued and a memory access request is issued to the request storage unit 2 of the main storage control device It is. The memory access request in the request storage unit 1 to be counted is a memory access request that has not received the release notification of the request storage unit 2 among the memory access requests stored in the request storage unit 1. As a result, the request banks stored in the request storage unit 2 in the main storage control device are guided to be equal, and the main memory transfer performance close to the theoretical performance can be obtained.

第1の実施形態は、図1A、図1Bのシステム構成を基本として、これを改良した図4Aおよび図4Bに示されるシステム構成を有する。図4A、図4Bにおいて、図1A、図1Bと同様の動作をする部分には同じ番号を付してある。この実施形態の構成は、図1A、図1Bの場合と同様に、CPUコアの部分と主記憶アクセスを行う部分が、主記憶アクセス機能外付けマルチコアCPUチップ1とシステムコントローラチップ107に分かれている構成である。   The first embodiment has a system configuration shown in FIGS. 4A and 4B, which is an improvement of the system configuration shown in FIGS. 1A and 1B. 4A and 4B, the same reference numerals are given to portions that perform the same operations as those in FIGS. 1A and 1B. In the configuration of this embodiment, as in the case of FIGS. 1A and 1B, the CPU core part and the part that performs main memory access are divided into a multi-core CPU chip 1 with an external main memory access function and a system controller chip 107. It is a configuration.

図4Bのシステムコントローラチップ107の構成は、図1Bの構成と同様である。
図4Aでは、L2キャッシュ制御部101が、バンクアドレス均等制御部(バンクアボート生成部)401と、バンクアドレス均等制御部(バンク待機制御部)402を備える。
The configuration of the system controller chip 107 in FIG. 4B is the same as the configuration in FIG. 1B.
4A, the L2 cache control unit 101 includes a bank address equalization control unit (bank abort generation unit) 401 and a bank address equalization control unit (bank standby control unit) 402.

バンクアボート生成部401は、要求格納部1と要求格納部2に保持されたメモリアクセス要求に基づき、主記憶部のDIMM110に対するメモリアクセス要求の数をバンク毎に計数する。これとともに、計数したバンク毎のメモリアクセス要求の数のいずれかが所定値を超えた場合に、パイプライン制御部103に主記憶アクセスの中断を指示するバンクアボート通知を通知する。これにより、パイプライン制御部103は、新規要求格納部102に対して差し戻し指示を通知する。この結果、新規要求格納部102の該当するエントリは開放されず、待機状態となって、該当するメモリアクセス要求の実行が遅らされる。   The bank abort generation unit 401 counts the number of memory access requests to the DIMM 110 of the main storage unit for each bank based on the memory access requests held in the request storage unit 1 and the request storage unit 2. At the same time, when any of the counted number of memory access requests for each bank exceeds a predetermined value, the bank abort notification is issued to instruct the pipeline control unit 103 to interrupt the main memory access. As a result, the pipeline control unit 103 notifies the new request storage unit 102 of a return instruction. As a result, the corresponding entry in the new request storage unit 102 is not released and enters a standby state, and execution of the corresponding memory access request is delayed.

また、バンクアボート生成部401は、計数したバンク毎のDIMM110に対するメモリアクセス要求の数のうち所定値を超えたバンク毎に、要求待機通知を、バンク待機制御部402に通知する。   In addition, the bank abort generation unit 401 notifies the bank standby control unit 402 of a request standby notification for each bank that exceeds a predetermined value among the counted number of memory access requests to the DIMM 110 for each bank.

バンク待機制御部402は、新規要求格納部102のエントリから出力されるメモリアクセス要求のうち、バンクアボート生成部401が出力した要求待機通知に対応するバンクアドレスを要求する待機中のメモリアクセス要求の出力を抑止する。この結果、DIMM110に対する該当するバンクのメモリアクセス要求の計数値が所定値を下回るまで、該当するメモリアクセス要求のL2キャッシュ制御部101のパイプラインへの投入が抑止される。   Of the memory access requests output from the entry in the new request storage unit 102, the bank standby control unit 402 determines the memory access request that is on standby for requesting the bank address corresponding to the request standby notification output from the bank abort generation unit 401. Suppress output. As a result, until the count value of the memory access request of the corresponding bank for the DIMM 110 falls below a predetermined value, the corresponding memory access request is prevented from being input to the pipeline of the L2 cache control unit 101.

要求格納部2からDIMMアクセス制御部109にメモリアクセス要求が読み出されて実行される毎に、そのメモリアクセス要求に対応するバンクの計数値を−1する。   Each time a memory access request is read from the request storage unit 2 to the DIMM access control unit 109 and executed, the count value of the bank corresponding to the memory access request is decremented by one.

以上のバンクアボート生成部401とバンク待機制御部402とからなるバンクアドレス均等制御部により、同じバンクのメモリアクセス要求が過剰に発行されないように食い止めることができる。さらに、他のバンクと比較して発行の頻度が少ないバンクのメモリアクセス要求を優先的に、DIMM110に発行させることができる。これにより、メモリアクセス要求の発行状態が、自然に図3(b)に例示したように、常時多様な種類のバンクのメモリアクセス要求が要求格納部1や2に格納される状態にすることができ、バンクアクセスの均等化を図ることが可能となる。   The bank address equalization control unit including the bank abort generation unit 401 and the bank standby control unit 402 can prevent the memory access requests of the same bank from being issued excessively. Furthermore, it is possible to cause the DIMM 110 to issue a memory access request of a bank that is issued less frequently than other banks with priority. As a result, the memory access request issuance state naturally becomes a state where memory access requests of various types of banks are always stored in the request storage units 1 and 2 as illustrated in FIG. This makes it possible to equalize bank access.

図5Aは、図4Aの新規要求格納部102(要求格納部0)とバンクアドレス均等制御部(バンク待機制御部)402の詳細な回路構成図である。   FIG. 5A is a detailed circuit configuration diagram of the new request storage unit 102 (request storage unit 0) and the bank address equalization control unit (bank standby control unit) 402 of FIG. 4A.

新規要求格納部102は、エントリ部501、エントリ出力ゲート502、パイプ投入エントリ選択部503、リセット用オアゲート504を備える。   The new request storage unit 102 includes an entry unit 501, an entry output gate 502, a pipe entry entry selection unit 503, and a reset OR gate 504.

エントリ部501は、1つ以上のCPUコア部100のそれぞれに対応して実装される。エントリ部501は、CPUコア部100内のL1キャッシュがキャッシュミスしたときに、メモリアクセス要求を、L2キャッシュメモリでのパイプライン処理のために保持する。このとき、CPUコア部100からのメモリアクセス要求によって、VALフラグがセット(set)され、PA(Physical Address)データとして、アクセスを要求する物理アドレスデータが書き込まれる。VALフラグは、そのエントリ部501に設定されているメモリアクセス要求が有効であるか否かを示すフラグである。物理アドレスデータは例えば、40ビットで構成され、39ビット目から19ビット目までの21ビットがタグを表す。また、18ビット目から7ビット目までの12ビットがインデックス(=キャッシュライン数)を表す。すなわち、第1の実施形態におけるL2キャッシュメモリのキャッシュライン数は、2の12乗=4096ラインである。インデックス内の9ビット目から7ビット目までの3ビットがバンクアドレスを表す。すなわち、第1の実施形態におけるDIMM110のバンク数は2の3乗=8バンクである。さらに、6ビット目から0ビット目までの7ビットが、同一ライン内のオフセットアドレスを表す。エントリ部501において、HLDフラグおよびWAITフラグは、電源投入時にはリセットされる。HLDフラグは、そのエントリ部501のメモリアクセス要求がL2キャッシュ制御部において要求格納部1のエントリを占有している状態であることを示すフラグである。WAITフラグは、L2キャッシュ制御部101においてそのメモリアクセス要求がいったんアボートされ、L2キャッシュ制御部101に対して再発行待ちの状態であることを示すフラグである。   The entry unit 501 is mounted corresponding to each of the one or more CPU core units 100. The entry unit 501 holds a memory access request for pipeline processing in the L2 cache memory when the L1 cache in the CPU core unit 100 has a cache miss. At this time, a VAL flag is set by a memory access request from the CPU core unit 100, and physical address data for requesting access is written as PA (Physical Address) data. The VAL flag is a flag indicating whether or not the memory access request set in the entry unit 501 is valid. The physical address data is composed of 40 bits, for example, and 21 bits from the 39th bit to the 19th bit represent a tag. Also, 12 bits from the 18th bit to the 7th bit represent an index (= number of cache lines). That is, the number of cache lines of the L2 cache memory in the first embodiment is 2 12 = 4096 lines. Three bits from the ninth bit to the seventh bit in the index represent the bank address. That is, the number of banks of the DIMM 110 in the first embodiment is 2 to the third power = 8 banks. Further, 7 bits from the 6th bit to the 0th bit represent an offset address in the same line. In the entry unit 501, the HLD flag and the WAIT flag are reset when the power is turned on. The HLD flag is a flag indicating that the memory access request of the entry unit 501 is in a state of occupying the entry of the request storage unit 1 in the L2 cache control unit. The WAIT flag is a flag indicating that the memory access request is once aborted in the L2 cache control unit 101 and is waiting to be reissued to the L2 cache control unit 101.

エントリ出力ゲート502は、1つ以上のエントリ部501に対応して設けられ、各エントリ部501の出力を有効にするか否かを決定する。エントリ出力ゲート502は、エントリ部501のVALフラグがオンで、HLDフラグがオフで、バンク待機制御部402の出力がオフのときにオンとなる。CPUコア部100からエントリ部501に最初にメモリアクセス要求がセットされたときは、HLDフラグがオフである。また、WAITフラグもオフであるため、バンク待機制御部402内のそのエントリ部501に対応するアンドゲート群511とアンドゲート513が全てオフとなってオアゲート512の出力がオフとなる。このようにして、メモリアクセス要求が最初にエントリ部501にセットされたときは、そのエントリ部501に対応するエントリ出力ゲート502は必ずオンとなって、そのメモリアクセス要求をパイプ投入エントリ選択部503に出力する。すなわち、新規のメモリアクセス要求は必ず一度は無条件にパイプ処理を行わせる。キャッシュヒットするメモリアクセス要求であれば新規要求格納部102おいて待機の必要はないからである。   The entry output gate 502 is provided corresponding to one or more entry units 501 and determines whether or not to enable the output of each entry unit 501. The entry output gate 502 is turned on when the VAL flag of the entry unit 501 is on, the HLD flag is off, and the output of the bank standby control unit 402 is off. When a memory access request is first set from the CPU core unit 100 to the entry unit 501, the HLD flag is off. Since the WAIT flag is also off, the AND gate group 511 and the AND gate 513 corresponding to the entry unit 501 in the bank standby control unit 402 are all turned off, and the output of the OR gate 512 is turned off. Thus, when a memory access request is first set in the entry unit 501, the entry output gate 502 corresponding to the entry unit 501 is always turned on, and the memory access request is sent to the pipe entry entry selection unit 503. Output to. That is, a new memory access request is always unconditionally piped once. This is because there is no need to wait in the new request storage unit 102 if the memory access request causes a cache hit.

パイプ投入エントリ選択部503は、出力がオンとなっているエントリ出力ゲート502に対応するエントリ部501に保持されているメモリアクセス要求のうちから、所定の規則に従って(例えば古い順に)メモリアクセス要求を選択する。そして、その選択したメモリアクセス要求を、図4Aのパイプライン制御部103に投入する。このとき、パイプ投入エントリ選択部503の出力に従って、該当するエントリ部501のHLDフラグがリセット(rst)される。この結果、そのエントリ部501に対応するエントリ出力ゲート502はオフとなる。そして、パイプライン制御部103からのパイプライン差し戻し通知528がオンとなってリセット用オアゲート504を介してHLDフラグがリセットされない限り、そのエントリ部501のメモリアクセス要求は再びパイプライン制御部103に投入されることはない。つまり、そのエントリ部501では、そのメモリアクセス要求がパイプライン制御部103へ投入されてからその実行結果が待たれることになる。   The pipe entry entry selection unit 503 issues a memory access request according to a predetermined rule (for example, in the oldest order) from among the memory access requests held in the entry unit 501 corresponding to the entry output gate 502 whose output is turned on. select. Then, the selected memory access request is input to the pipeline control unit 103 in FIG. 4A. At this time, the HLD flag of the corresponding entry unit 501 is reset (rst) according to the output of the pipe entry entry selection unit 503. As a result, the entry output gate 502 corresponding to the entry unit 501 is turned off. Then, unless the pipeline return notification 528 from the pipeline control unit 103 is turned on and the HLD flag is reset through the reset OR gate 504, the memory access request of the entry unit 501 is input to the pipeline control unit 103 again. It will never be done. That is, the entry unit 501 waits for the execution result after the memory access request is input to the pipeline control unit 103.

パイプライン制御部103において、L2−PIPE(図2参照)に投入されたメモリアクセス要求のアボート条件が成立すると、パイプライン制御部103から新規要求格納部102に、パイプライン差し戻し通知528が通知される。この結果、リセット用オアゲート504を介してHLDフラグがオフされるとともに、WAITフラグがセットされる。これにより、エントリ部501内のメモリアクセス要求は待機状態となる。この状態においては、エントリ部501に対応するエントリ出力ゲート502において、VALフラグはオン、HLDフラグはオフとなっている。従って、エントリ出力ゲート502の出力の有無は、バンク待機制御部402の出力に依存して決定されることになる。   When the pipeline control unit 103 satisfies the abort condition of the memory access request input to the L2-PIPE (see FIG. 2), the pipeline control unit 103 notifies the new request storage unit 102 of the pipeline return notification 528. The As a result, the HLD flag is turned off through the reset OR gate 504 and the WAIT flag is set. As a result, the memory access request in the entry unit 501 enters a standby state. In this state, in the entry output gate 502 corresponding to the entry unit 501, the VAL flag is on and the HLD flag is off. Accordingly, whether or not the entry output gate 502 outputs is determined depending on the output of the bank standby control unit 402.

アンドゲート513と、バンク待機制御部402は、各エントリ部501に対応してそれぞれ設けられている。アンドゲート513には、エントリ部501のWAITフラグと、図4Aのパイプライン制御部103から出力される要求格納部1資源カウンタ値515が入力している。要求格納部1資源カウンタ値515は、図4Aの要求格納部1で現在使用中のエントリ数をカウントしている。そして、要求格納部1のエントリ数に空きがあるときには要求格納部1資源カウンタ値515は0、空きがないときには要求格納部1資源カウンタ値515は1となる。従って、エントリ部501のメモリアクセス要求がパイプライン制御部103から差し戻されて待機状態となっており、かつ要求格納部1のエントリ数に空きがないときには、次のような制御動作が実行される。アンドゲート513の出力がオン(1)となり、オアゲート512を介してエントリ出力ゲート502がオフ(0)となることにより、待機状態となっているメモリアクセス要求のパイプライン制御部103への投入が抑止される。   An AND gate 513 and a bank standby control unit 402 are provided corresponding to each entry unit 501. The AND gate 513 receives the WAIT flag of the entry unit 501 and the request storage unit 1 resource counter value 515 output from the pipeline control unit 103 in FIG. 4A. The request storage unit 1 resource counter value 515 counts the number of entries currently in use in the request storage unit 1 of FIG. 4A. The request storage unit 1 resource counter value 515 is 0 when the number of entries in the request storage unit 1 is empty, and the request storage unit 1 resource counter value 515 is 1 when there is no space. Therefore, when the memory access request of the entry unit 501 is returned from the pipeline control unit 103 and is in a standby state, and the number of entries in the request storage unit 1 is not empty, the following control operation is executed. The When the output of the AND gate 513 is turned on (1) and the entry output gate 502 is turned off (0) through the OR gate 512, the memory access request in the standby state is input to the pipeline control unit 103. Deterred.

一方、エントリ部501のメモリアクセス要求がパイプライン制御部103から差し戻されて待機状態となっており、かつ要求格納部1のエントリ数に空きがあるときには、アンドゲート513の出力はオフとなる。この場合にはさらに、アンドゲート群511の出力が判定される。アンドゲート群511は、例えばバンク(bank)0から7までの8バンクに対応して8つのアンドゲートから構成されている。アンドゲート群511の各アンドゲートには、対応するエントリ部501のPAデータ中のバンクアドレス(例えば9〜7ビット目)をバンクアドレスデコーダ510でデコードした結果が入力される。すなわち、バンクアドレスデコーダ510は、上記バンクアドレスをデコードすることによって、バンク0〜7に対応する8本のうちのいずれか1本の出力がオンになるような複数の出力線を有する。これらの出力線のそれぞれが、アンドゲート群511の各アンドゲートに入力している。また、アンドゲート群511の各アンドゲートには、対応するエントリ部501のWAITフラグが入力する。さらに、アンドゲート群511の各アンドゲートには、バンクアボート生成部401が生成した各バンク毎の要求待機通知514が入力する。例えば、アンドゲート群511中のバンク0に対応するアンドゲートには、WAITフラグと、PAデータのバンクアドレスがバンク0に等しいときにオンとなりそれ以外のときにオフとなる信号と、バンク0に対応する要求待機通知514が入力する。   On the other hand, when the memory access request of the entry unit 501 is returned from the pipeline control unit 103 and is in a standby state, and the number of entries in the request storage unit 1 is empty, the output of the AND gate 513 is turned off. . In this case, the output of the AND gate group 511 is further determined. The AND gate group 511 includes eight AND gates corresponding to, for example, eight banks from bank 0 to 7. Each AND gate of the AND gate group 511 receives the result of decoding the bank address (for example, the 9th to 7th bits) in the PA data of the corresponding entry unit 501 by the bank address decoder 510. That is, the bank address decoder 510 has a plurality of output lines such that any one of the eight outputs corresponding to the banks 0 to 7 is turned on by decoding the bank address. Each of these output lines is input to each AND gate of the AND gate group 511. Further, the WAIT flag of the corresponding entry unit 501 is input to each AND gate of the AND gate group 511. Further, a request waiting notification 514 for each bank generated by the bank abort generation unit 401 is input to each AND gate of the AND gate group 511. For example, the AND gate corresponding to bank 0 in the AND gate group 511 includes a WAIT flag, a signal that is turned on when the bank address of the PA data is equal to bank 0, and a signal that is turned off at other times. A corresponding request waiting notification 514 is input.

例えば、バンク0に対応する要求待機通知514は、バンクアボート生成部401によって、現在DIMM110に対して要求されているバンク0に対応するメモリアクセス要求の数が所定値を超えたときに、オンとなる。従って、アンドゲート群511中のバンク0に対応するアンドゲートは、対応するエントリ部501のメモリアクセス要求が待機中で、その要求のバンクアドレスがバンク0で、バンク0への現在の主記憶アクセスが所定数を超えているときにオンとなる。この結果、オアゲート512を介して上記エントリ部501に対応するエントリ出力ゲート502がオフとなり、上記エントリ部501で待機中のバンク0を要求するメモリアクセス要求のパイプライン制御部103への投入が抑止される。これにより、現在主記憶アクセスが他のバンク1〜バンク7よりも多くなっているバンク0へのメモリアクセス要求の集中が回避される。   For example, the request waiting notification 514 corresponding to the bank 0 is turned on when the number of memory access requests corresponding to the bank 0 requested to the DIMM 110 by the bank abort generation unit 401 exceeds a predetermined value. Become. Therefore, the AND gate corresponding to the bank 0 in the AND gate group 511 is waiting for the memory access request of the corresponding entry unit 501, the bank address of the request is the bank 0, and the current main memory access to the bank 0. Turns on when exceeds a predetermined number. As a result, the entry output gate 502 corresponding to the entry unit 501 is turned off through the OR gate 512, and the entry of the memory access request for requesting the bank 0 waiting in the entry unit 501 to the pipeline control unit 103 is suppressed. Is done. This avoids the concentration of memory access requests to bank 0, which currently has more main memory accesses than other banks 1-7.

バンク1〜7についても、バンク0の場合と同様の制御動作が実行される。
以上のようにして、バンク待機制御部402の機能により、エントリ部501において待機中のメモリアクセス要求について、一部のバンクへのメモリアクセス要求が集中することを回避して、各バンクへのメモリアクセス要求の投入を均等化することが可能となる。
The same control operation as in the case of bank 0 is executed for banks 1 to 7 as well.
As described above, the function of the bank standby control unit 402 avoids the concentration of memory access requests to some banks with respect to the memory access requests that are waiting in the entry unit 501, and the memory to each bank. It is possible to equalize the input of access requests.

図5Bは、図4Aのパイプライン制御部103とその周辺回路の詳細な回路構成図である。
図5Aの新規要求格納部102内のパイプ投入エントリ選択部503から出力されたメモリアクセス要求は、図5Bのパイプ投入制御部520を介してパイプライン制御部103が制御するL2−PIPEパイプライン(図2参照)に投入される。
FIG. 5B is a detailed circuit configuration diagram of the pipeline control unit 103 and its peripheral circuits in FIG. 4A.
The memory access request output from the pipe entry entry selection unit 503 in the new request storage unit 102 in FIG. 5A is sent to the L2-PIPE pipeline (which is controlled by the pipeline control unit 103 via the pipe entry control unit 520 in FIG. 5B). 2).

パイプライン制御部103は、タグ読み出し制御部521、その他各種パイプアボート条件生成部522と、要求格納部1資源カウンタ523と、アボート用オアゲート524と、パイプラインコマンド生成部525を備える。   The pipeline control unit 103 includes a tag read control unit 521, various other pipe abort condition generation units 522, a request storage unit 1 resource counter 523, an abort OR gate 524, and a pipeline command generation unit 525.

タグ読み出し制御部521は、パイプ投入制御部520からL2−PIPEのパイプラインに投入されたメモリアクセス要求について、次の処理を実行する。まず、メモリアクセス要求中のアドレスデータをパイプアドレス530として、その例えば18ビット目から7ビット目を取り出してインデックスであるタグ読み出しアドレス533を生成する。次に、タグ読み出し制御部521は、上記パイプアドレス530の例えば39ビット目から19ビット目を取り出して要求タグを生成する。そして、タグ読み出し制御部521は、キャッシュタグ部105にタグ読み出し通知532を出力すると共に、タグ読み出しアドレス533を出力する。この結果、キャッシュタグ部105において、タグ読み出しアドレス533に対応するキャッシュラインが指定され、そのキャッシュラインに対応する各キャッシュウェイに記憶されている各タグデータが読み出される。そして、キャッシュタグ部105において、各タグデータのいずれかが、タグ読み出し制御部521で生成されている要求タグに一致するか否かが比較される。   The tag read control unit 521 executes the following processing for the memory access request input from the pipe input control unit 520 to the L2-PIPE pipeline. First, the address data in the memory access request is set as a pipe address 530, for example, the 18th to 7th bits are taken out to generate a tag read address 533 as an index. Next, the tag reading control unit 521 generates a request tag by taking out, for example, the 39th to 19th bits of the pipe address 530. Then, the tag read control unit 521 outputs a tag read notification 532 to the cache tag unit 105 and also outputs a tag read address 533. As a result, the cache tag unit 105 designates a cache line corresponding to the tag read address 533, and reads each tag data stored in each cache way corresponding to the cache line. Then, the cache tag unit 105 compares whether any of the tag data matches the request tag generated by the tag read control unit 521.

いずれかのタグデータが要求タグに一致すると、タグ読み出し制御部521においてキャッシュヒットが判定され、一致したタグがタグ読み出し出力としてキャッシュタグ部105からキャッシュデータ部106に出力される。この結果、キャッシュデータ部106上で、タグ読み出しアドレス533に対応するキャッシュラインの、一致が検出されたタグ読み出し出力に対応するキャッシュウェイから、キャッシュデータが読み出される。そして、このキャッシュデータが、キャッシュデータ部読み出し出力データ535として、後述する図5Cのデータ応答562と連結することにより、CPUデータ応答563として、図5AのCPUコア部100に応答される。このとき、パイプラインコマンド生成部525からパイプライン処理成功通知(エントリ開放通知)529が図5Aの新規要求格納部102に出力される。この結果、前述した図5Aの該当するエントリ部501において、該当するエントリ部501のVALフラグとHLDフラグとWAITフラグがリセットされて、新規要求格納部102の該当するエントリが開放される。   When any tag data matches the request tag, the tag read control unit 521 determines a cache hit, and the matched tag is output from the cache tag unit 105 to the cache data unit 106 as a tag read output. As a result, on the cache data unit 106, cache data is read from the cache way corresponding to the tag read output for which a match is detected in the cache line corresponding to the tag read address 533. Then, this cache data is connected as a cache data portion read output data 535 to a data response 562 of FIG. 5C described later, thereby being returned to the CPU core portion 100 of FIG. At this time, a pipeline processing success notification (entry release notification) 529 is output from the pipeline command generation unit 525 to the new request storage unit 102 in FIG. 5A. As a result, in the corresponding entry unit 501 in FIG. 5A described above, the VAL flag, HLD flag, and WAIT flag of the corresponding entry unit 501 are reset, and the corresponding entry in the new request storage unit 102 is released.

いずれのタグデータも要求タグに一致せず、タグ読み出し制御部521でキャッシュミスが判定されると、アボート用オアゲート524で、要求格納部1へのメモリアクセス要求の発行が可能か否かについて判定される。まず、アボート用オアゲート524は、その他各種パイプアボート条件生成部522からアボート条件がオンになっているか否かを判定する。また、アボート用オアゲート524は、要求格納部1資源カウンタ523がカウントフル(FULL)を示す値1の要求格納部1資源カウンタ値515を出力しているか否かを判定する。また、アボート用オアゲート524は、図4Aの要求格納部1から、すでに同一アドレスのメモリアクセス要求を投入済みであることを示すアドレスマッチ通知558を通知されているか否かを判定する。さらに、アボート用オアゲート524は、図4Aのバンクアボート生成部401から、バンクアボート通知539を通知されているか否かを判定する。   If none of the tag data matches the request tag and the tag read control unit 521 determines a cache miss, the abort OR 524 determines whether or not a memory access request to the request storage unit 1 can be issued. Is done. First, the abort or gate 524 determines whether the abort condition is turned on from the other various pipe abort condition generation units 522. Further, the abort OR gate 524 determines whether or not the request storage unit 1 resource counter 523 outputs a request storage unit 1 resource counter value 515 having a value of 1 indicating a count full (FULL). Further, the abort OR gate 524 determines whether or not an address match notification 558 indicating that a memory access request with the same address has already been input has been received from the request storage unit 1 in FIG. 4A. Further, the abort or gate 524 determines whether or not the bank abort notification 539 is notified from the bank abort generation unit 401 of FIG. 4A.

アボート用オアゲート524は、上記いずれの判定も成立しないときに、パイプラインコマンド生成部525に対するアボート出力をオフとする。この結果、パイプラインコマンド生成部525は、図4Aの要求格納部1上の空きエントリを検索し、キャッシュミスを発生させたメモリアクセス要求とともに、要求格納部1エントリ獲得通知527を、要求格納部1に通知する。これ以降、要求格納部1および要求格納部2を介して、主記憶アクセスが実行されキャッシュミスしたデータが取得される。上述のキャッシュミスに対するパイプライン処理が成功すると、パイプラインコマンド生成部525からパイプライン処理成功通知(エントリ開放通知)529が図5Aの新規要求格納部102に出力される。この結果、前述した図5Aの該当するエントリ部501において、該当するエントリ部501のVALフラグとHLDフラグとWAITフラグがリセットされて、その新規要求格納部102の該当するエントリが開放される。   The abort OR gate 524 turns off the abort output to the pipeline command generation unit 525 when none of the above determinations are satisfied. As a result, the pipeline command generation unit 525 searches for a free entry in the request storage unit 1 in FIG. 4A and sends a request storage unit 1 entry acquisition notification 527 to the request storage unit together with the memory access request that caused the cache miss. 1 is notified. Thereafter, the main memory access is executed through the request storage unit 1 and the request storage unit 2, and the cache missed data is acquired. When the pipeline processing for the cache miss is successful, the pipeline command generation unit 525 outputs a pipeline processing success notification (entry release notification) 529 to the new request storage unit 102 in FIG. 5A. As a result, in the corresponding entry unit 501 of FIG. 5A described above, the VAL flag, HLD flag, and WAIT flag of the corresponding entry unit 501 are reset, and the corresponding entry in the new request storage unit 102 is released.

パイプライン制御部103内の要求格納部1資源カウンタ値515は、パイプラインコマンド生成部525から要求格納部1エントリ獲得通知527が発行され要求格納部1にメモリアクセス要求が登録されたときにプラス1(インクリメント)される。また、パイプラインコマンド生成部525からパイプライン処理成功通知(エントリ開放通知)529が発行され要求格納部1のエントリが開放されたときにマイナス1(デクリメント)される。すなわち、要求格納部1資源カウンタ523は、要求格納部1で現在使用中のエントリ数をカウントしている。そして、要求格納部1のエントリ数に空きがあるときには要求格納部1資源カウンタ値515は0、空きがないときには要求格納部1資源カウンタ値515は1となる。要求格納部1資源カウンタ523がカウントフル(FULL)を示す値1の要求格納部1資源カウンタ値515を出力しており、アボート用オアゲート524の出力がオンになると、パイプラインコマンド生成部525に対してアボートが設定される。この結果、パイプラインコマンド生成部525は、図4Aおよび図5Aの新規要求格納部102に、パイプライン差し戻し通知528を出力する。この結果、図5Aのリセット用オアゲート504を介してHLDフラグがリセットされるとともに、WAITフラグがセットされる。これにより、エントリ部501内のメモリアクセス要求は待機状態となる。さらに、値1の要求格納部1資源カウンタ値515が新規要求格納部102に出力される。この結果、前述したようにして、図5Aにおいて、アンドゲート513の出力がオンとなり、オアゲート512を介してエントリ出力ゲート502がオフとなる。これにより、待機状態となっているメモリアクセス要求のパイプライン制御部103への投入が抑止される。以上のようにして、要求格納部1に過剰なメモリアクセス要求の発行が抑止される。   The request storage unit 1 resource counter value 515 in the pipeline control unit 103 is added when the request storage unit 1 entry acquisition notification 527 is issued from the pipeline command generation unit 525 and a memory access request is registered in the request storage unit 1. 1 (incremented). Also, when a pipeline processing success notification (entry release notification) 529 is issued from the pipeline command generation unit 525 and the entry in the request storage unit 1 is released, it is decremented by 1 (decrement). That is, the request storage unit 1 resource counter 523 counts the number of entries currently used in the request storage unit 1. The request storage unit 1 resource counter value 515 is 0 when the number of entries in the request storage unit 1 is empty, and the request storage unit 1 resource counter value 515 is 1 when there is no space. When the request storage unit 1 resource counter 523 outputs a request storage unit 1 resource counter value 515 having a value of 1 indicating a full count (FULL), and the output of the abort or gate 524 is turned on, the pipeline command generation unit 525 On the other hand, an abort is set. As a result, the pipeline command generation unit 525 outputs a pipeline return notification 528 to the new request storage unit 102 in FIGS. 4A and 5A. As a result, the HLD flag is reset and the WAIT flag is set through the reset OR gate 504 in FIG. 5A. As a result, the memory access request in the entry unit 501 enters a standby state. Further, the request storage unit 1 resource counter value 515 of value 1 is output to the new request storage unit 102. As a result, as described above, in FIG. 5A, the output of the AND gate 513 is turned on, and the entry output gate 502 is turned off via the OR gate 512. Thereby, the memory access request that is in the standby state is prevented from being input to the pipeline control unit 103. As described above, issuance of excessive memory access requests to the request storage unit 1 is suppressed.

また、図4Aの要求格納部1から、すでに同一アドレスのメモリアクセス要求を投入済みであることを示すアドレスマッチ通知558を通知されると、アボート用オアゲート524がオンとなる。この結果、パイプラインコマンド生成部525に対して、アボートが設定される。このような場合には、パイプライン制御部103が要求格納部1に対して発行しようとするメモリアクセス要求のアドレスのデータは、現在、要求格納部1のエントリに格納されていてそのエントリを占有している状態であるため、再度主記憶アクセスを行う必要はない。このため、パイプラインコマンド生成部525は、アドレスマッチ通知558を受信した場合には、新規要求格納部102に対してパイプライン差し戻し通知528を通知する。この結果、図5Aのリセット用オアゲート504を介してHLDフラグがリセットされるとともに、WAITフラグがセットされる。これにより、エントリ部501内のメモリアクセス要求は待機状態となる。要求格納部1中の該当するメモリアクセス要求が実行されてキャッシュタグ部105とキャッシュデータ部106が更新された後に、新規要求格納部102中の同じアドレスを要求する待機状態のメモリアクセス要求がパイプラインに再度投入される。これにより、当該メモリアクセス要求がキャッシュヒットし、キャッシュデータ部106からキャッシュデータ部読み出し出力データ535が要求元のCPUコア部100にロードされる。   When the address storage notification 558 indicating that the memory access request with the same address has already been input is notified from the request storage unit 1 in FIG. 4A, the abort OR gate 524 is turned on. As a result, abort is set for the pipeline command generation unit 525. In such a case, the memory access request address data that the pipeline control unit 103 intends to issue to the request storage unit 1 is currently stored in the entry of the request storage unit 1 and occupies that entry. Therefore, it is not necessary to perform main memory access again. Therefore, when the pipeline command generation unit 525 receives the address match notification 558, the pipeline command generation unit 525 notifies the new request storage unit 102 of the pipeline return notification 528. As a result, the HLD flag is reset and the WAIT flag is set through the reset OR gate 504 in FIG. 5A. As a result, the memory access request in the entry unit 501 enters a standby state. After the corresponding memory access request in the request storage unit 1 is executed and the cache tag unit 105 and the cache data unit 106 are updated, a standby memory access request for requesting the same address in the new request storage unit 102 is piped. Re-enter the line. As a result, the memory access request has a cache hit, and the cache data portion read output data 535 is loaded from the cache data portion 106 to the CPU core portion 100 that is the request source.

さらに、図4Aのバンクアボート生成部401からバンクアボート通知539が通知されると、アボート用オアゲート524がオンとなって、パイプラインコマンド生成部525にアボートが設定される。バンクアボート生成部401は、要求格納部1と要求格納部2に保持されたメモリアクセス要求に基づき、主記憶部のDIMM110に対するメモリアクセス要求の数をバンク毎に計数する。これとともに、計数したバンク毎のメモリアクセス要求の数のいずれかが所定値を超えた場合に、パイプライン制御部103に主記憶アクセスの中断を指示するバンクアボート通知539を通知する。これにより、パイプラインコマンド生成部525は、新規要求格納部102に対してパイプライン差し戻し通知528を出力する。この結果、新規要求格納部102の該当するエントリ部501は開放されず、待機状態となって、該当するメモリアクセス要求の実行が遅らされる。前述した図5Aのバンク待機制御部402の動作と併せて、上述のバンクアボート生成部401からのバンクアボート通知539を使った制御動作により、同じバンクのメモリアクセス要求が過剰に発行されないように食い止めることができる。さらに、他のバンクと比較して発行の頻度が少ないバンクのメモリアクセス要求を優先的に、DIMM110に発行させることができる。これにより、メモリアクセス要求の発行状態が、自然に図3(b)に例示したように、常時多様な種類のバンクのメモリアクセス要求が要求格納部1や2に格納される状態にすることができ、バンクアクセスの均等化を図ることが可能となる。   Further, when the bank abort notification 539 is notified from the bank abort generation unit 401 in FIG. 4A, the abort OR gate 524 is turned on, and the pipeline command generation unit 525 is set to abort. The bank abort generation unit 401 counts the number of memory access requests to the DIMM 110 of the main storage unit for each bank based on the memory access requests held in the request storage unit 1 and the request storage unit 2. At the same time, when any of the counted number of memory access requests for each bank exceeds a predetermined value, a bank abort notification 539 is issued to instruct the pipeline control unit 103 to interrupt the main memory access. As a result, the pipeline command generation unit 525 outputs a pipeline return notification 528 to the new request storage unit 102. As a result, the corresponding entry unit 501 of the new request storage unit 102 is not released and enters a standby state, and execution of the corresponding memory access request is delayed. In addition to the operation of the bank standby control unit 402 in FIG. 5A described above, the control operation using the bank abort notification 539 from the bank abort generation unit 401 described above prevents the memory access request of the same bank from being issued excessively. be able to. Furthermore, it is possible to cause the DIMM 110 to issue a memory access request of a bank that is issued less frequently than other banks with priority. As a result, the memory access request issuance state naturally becomes a state where memory access requests of various types of banks are always stored in the request storage units 1 and 2 as illustrated in FIG. This makes it possible to equalize bank access.

アボート用オアゲート524では、その他各種パイプアボート条件生成部522から様々なアボート条件がオンになっているか否かを判定し、その判定結果に応じて、パイプラインコマンド生成部525に対してアボートを設定する。   The abort or gate 524 determines whether or not various abort conditions are turned on from various other pipe abort condition generation units 522, and sets abort to the pipeline command generation unit 525 according to the determination result. To do.

図5Cは、図4Aの要求格納部1 104の詳細な回路構成図である。
要求格納部1は、エントリ部550、エントリ出力ゲート551、パイプ投入エントリ選択部552、リセット用オアゲート553を備える。エントリ部550は、複数のメモリアクセス要求をパイプライン処理可能なように、複数実装される。エントリ出力ゲート551およびリセット用オアゲート553も、各エントリ部550に対応して複数実装される。また、要求格納部1は、各エントリ部550に対応して、次の構成を有する。まず、対応するエントリ部550のPAデータとパイプライン制御部103から与えられるパイプアドレス530との一致を検出するための比較(一致検出)回路554を備える。また、対応するエントリ部550のVALフラグと、パイプライン制御部103から与えられるパイプアドレスマッチ検出指示531のオンを条件に、比較(一致検出)回路554の出力を出力するアンドゲート555を備える。さらに、各エントリ部550ごとのアンドゲート555の出力のオアを演算して、アドレスマッチ通知558として図5Bのパイプライン制御部103内のアボート用オアゲート524に与えるアドレスマッチ用オアゲート556を備える。さらに、要求格納部1は、主記憶部であるDIMM110からの主記憶データ応答561を一時保持する。その後、主記憶データ応答561は、図5Bのキャッシュデータ部106にキャッシュデータ部書き込みデータ538として、または図5AのCPUコア部100にCPUデータ応答563として転送される。
FIG. 5C is a detailed circuit configuration diagram of the request storage unit 1104 of FIG. 4A.
The request storage unit 1 includes an entry unit 550, an entry output gate 551, a pipe entry entry selection unit 552, and a reset OR gate 553. A plurality of entry units 550 are mounted so that a plurality of memory access requests can be pipelined. A plurality of entry output gates 551 and reset OR gates 553 are also mounted corresponding to each entry unit 550. Further, the request storage unit 1 has the following configuration corresponding to each entry unit 550. First, a comparison (match detection) circuit 554 for detecting a match between the PA data of the corresponding entry unit 550 and the pipe address 530 given from the pipeline control unit 103 is provided. Furthermore, an AND gate 555 that outputs the output of the comparison (match detection) circuit 554 is provided on condition that the VAL flag of the corresponding entry unit 550 and the pipe address match detection instruction 531 supplied from the pipeline control unit 103 are turned on. Further, an OR for the output of the AND gate 555 for each entry unit 550 is calculated and provided to the abort OR gate 524 in the pipeline control unit 103 of FIG. 5B as an address match notification 558. Furthermore, the request storage unit 1 temporarily holds a main memory data response 561 from the DIMM 110 that is the main memory unit. Thereafter, the main memory data response 561 is transferred as the cache data portion write data 538 to the cache data portion 106 of FIG. 5B or as the CPU data response 563 to the CPU core portion 100 of FIG. 5A.

図5Bのパイプラインコマンド生成部525から、要求格納部1エントリ獲得通知527と主記憶アクセスのためのメモリアクセス要求が通知されると、次の動作が実行される。要求格納部1の該当するエントリ部550において、要求格納部1エントリ獲得通知527によって、VALフラグがセット(set)され、PAデータとしてアクセスを要求する物理アドレスデータが書き込まれる。VALフラグは、そのエントリ部550に設定されているメモリアクセス要求が有効であるか否かを示すフラグである。物理アドレスデータは、前述した図5Aのエントリ部501のPAデータと同様の形式を有し、例えば40ビットで構成される。RDYフラグおよびHLDフラグは、最初はリセットされる。RDYフラグは、要求応答パイプ(図2のシーケンスS12参照)への投入準備が完了したことを示すフラグである。HLDフラグは、そのエントリ部550のメモリアクセス要求がL2キャッシュ制御部101の要求応答パイプにおいて処理中であることを示すフラグである。   When the pipeline command generation unit 525 in FIG. 5B notifies the request storage unit 1 entry acquisition notification 527 and the memory access request for main memory access, the following operations are executed. In the corresponding entry unit 550 of the request storage unit 1, the request storage unit 1 entry acquisition notification 527 sets the VAL flag, and the physical address data requesting access is written as PA data. The VAL flag is a flag indicating whether or not the memory access request set in the entry unit 550 is valid. The physical address data has the same format as the PA data of the entry unit 501 in FIG. 5A described above, and is composed of, for example, 40 bits. The RDY flag and the HLD flag are initially reset. The RDY flag is a flag indicating that preparation for input to the request response pipe (see sequence S12 in FIG. 2) has been completed. The HLD flag is a flag indicating that the memory access request of the entry unit 550 is being processed in the request response pipe of the L2 cache control unit 101.

上述の要求格納部1のエントリ部550への登録と並行して、図5Bのパイプラインコマンド生成部525から要求格納部1エントリ獲得通知527とともに通知された主記憶アクセスのためのメモリアクセス要求が、要求格納部2にも登録される。要求格納部1から要求格納部2へのメモリアクセス要求の転送は、図4AのCPU側バスインタフェース部111からシステムバスを経由して図4Bのシステムコントローラ側バスインタフェース部112を介して実行される。要求格納部1と要求格納部2が連携して動作するための制御は、図2で前述した動作シーケンスと同様である。すなわち、システムコントローラチップ107内の要求格納部2に保持されたメモリアクセス要求は、処理可能なバンクアドレスを有するものから順にDIMMアクセス制御部109によって読み出され、DIMM110のアクセス用の主記憶アクセスパイプに投入される。DIMMアクセス制御部109は、要求格納部2から処理可能なバンクアドレスメモリアクセス要求に対応するコマンドとアドレスを生成し、DIMM110に対してメモリアクセスを実行する。DIMM110におけるメモリアクセスが完了すると、DIMM110から要求格納部1内のデータバッファ557に対して、主記憶データ応答561が送信される。要求格納部2からデータバッファ557へのデータ応答は、図4Bのシステムコントローラ側バスインタフェース部112からシステムバスを経由して図4AのCPU側バスインタフェース部111を介して実行される。   In parallel with the registration of the request storage unit 1 in the entry unit 550, a memory access request for main memory access notified together with the request storage unit 1 entry acquisition notification 527 from the pipeline command generation unit 525 of FIG. The request storage unit 2 is also registered. Transfer of the memory access request from the request storage unit 1 to the request storage unit 2 is executed from the CPU side bus interface unit 111 in FIG. 4A via the system bus via the system controller side bus interface unit 112 in FIG. 4B. . Control for operating the request storage unit 1 and the request storage unit 2 in cooperation is the same as the operation sequence described above with reference to FIG. That is, the memory access requests held in the request storage unit 2 in the system controller chip 107 are read by the DIMM access control unit 109 in order from those having a processable bank address, and the main memory access pipe for accessing the DIMM 110 is read. It is thrown into. The DIMM access control unit 109 generates a command and address corresponding to a bank address memory access request that can be processed from the request storage unit 2, and executes memory access to the DIMM 110. When the memory access in the DIMM 110 is completed, the main memory data response 561 is transmitted from the DIMM 110 to the data buffer 557 in the request storage unit 1. A data response from the request storage unit 2 to the data buffer 557 is executed from the system controller side bus interface unit 112 in FIG. 4B via the system bus via the CPU side bus interface unit 111 in FIG. 4A.

上記主記憶データ応答561の送信に基づいて、図5Cの該当するエントリ部550において、RDYフラグがセットされる。ここで、エントリ出力ゲート551は、各エントリ部550に対応して設けられ、各エントリ部550の出力を有効にするか否かを決定する。エントリ出力ゲート551は、エントリ部550のVALフラグがオンで、HLDフラグがオフで、RDYフラグがオンのときにオンとなる。上述したように、エントリ部550のメモリアクセス要求に対応する主記憶データ応答561がDIMM110から返されたときにRDYフラグがオンとなる。これにより、そのエントリ部550に対応するエントリ出力ゲート551がオンとなって、そのメモリアクセス要求をパイプ投入エントリ選択部552に出力する。   Based on the transmission of the main memory data response 561, the RDY flag is set in the corresponding entry unit 550 of FIG. 5C. Here, the entry output gate 551 is provided corresponding to each entry unit 550 and determines whether or not to enable the output of each entry unit 550. The entry output gate 551 is turned on when the VAL flag of the entry unit 550 is on, the HLD flag is off, and the RDY flag is on. As described above, the RDY flag is turned on when the main memory data response 561 corresponding to the memory access request of the entry unit 550 is returned from the DIMM 110. As a result, the entry output gate 551 corresponding to the entry unit 550 is turned on, and the memory access request is output to the pipe entry entry selection unit 552.

パイプ投入エントリ選択部552は、出力がオンとなっているエントリ出力ゲート551に対応するエントリ部550に保持されているメモリアクセス要求のうちから、所定の規則に従って(例えば古い順に)メモリアクセス要求を選択する。そして、その選択したメモリアクセス要求を、図5Bのパイプ投入制御部520に投入する。このとき、パイプ投入エントリ選択部552の出力に従って、該当するエントリ部550のHLDフラグがセットされる。この結果、そのエントリ部550に対応するエントリ出力ゲート551は必ずオフとなる。そして、パイプライン制御部103からのパイプライン差し戻し通知528がオンとなってリセット用オアゲート553を介してHLDフラグがリセットされない限り、そのエントリ部550のメモリアクセス要求は再びパイプ投入制御部520に投入されることはない。つまり、そのエントリ部550では、そのメモリアクセス要求がパイプライン制御部103へ投入されてからその実行結果が待たれることになる。この結果、パイプライン制御部103上で、要求応答パイプが起動される(図2のシーケンスS11参照)。   The pipe entry entry selection unit 552 sends memory access requests according to a predetermined rule (for example, in the oldest order) from among the memory access requests held in the entry unit 550 corresponding to the entry output gate 551 whose output is turned on. select. Then, the selected memory access request is input to the pipe input control unit 520 in FIG. 5B. At this time, the HLD flag of the corresponding entry unit 550 is set according to the output of the pipe entry entry selection unit 552. As a result, the entry output gate 551 corresponding to the entry portion 550 is always turned off. Then, unless the pipeline return notification 528 from the pipeline control unit 103 is turned on and the HLD flag is reset via the reset OR gate 553, the memory access request of the entry unit 550 is again input to the pipe input control unit 520. It will never be done. That is, the entry unit 550 waits for the execution result after the memory access request is input to the pipeline control unit 103. As a result, the request response pipe is activated on the pipeline control unit 103 (see sequence S11 in FIG. 2).

要求応答パイプにおいてアボート(中止)条件が発生しない場合には、パイプライン制御部103は、キャッシュデータ部106への主記憶データ応答561の書き込みとキャッシュタグ部105のタグの更新を実行する(図2のシーケンスS12)。より具体的には、図5Bのパイプラインコマンド生成部525は、図5Cのパイプ投入エントリ選択部552から図5Bのパイプ投入制御部520に投入されたメモリアクセス要求に従って、次の動作を実行する。まず、このメモリアクセス要求中のアドレスデータの、例えば18ビット目から7ビット目を取り出してインデックスであるタグ更新アドレス537を生成する。次に、パイプラインコマンド生成部525は、上記アドレスデータの例えば39ビット目から19ビット目を取り出して要求タグを生成する。そして、パイプラインコマンド生成部525は、キャッシュタグ部105にタグ更新通知536を出力すると共に、タグ更新アドレス537を出力する。この結果、キャッシュタグ部105において、タグ更新アドレス537に対応するキャッシュラインが指定され、そのキャッシュラインに対応する各キャッシュウェイのうちの1つのキャッシュブロックが追い出される。そして、そのキャッシュブロックに、要求タグが新たに上書きされる。これと共に、キャッシュデータ部106上の上記キャッシュブロックに対応する領域に、図5Cのデータバッファ557に一時保持されたデータ応答562が、キャッシュデータ部書き込みデータ538として書き込まれる。上記動作と共に、上記データ応答562は、CPUデータ応答563として、図5AのCPUコア部100へ転送される(図2のシーケンスS13参照)。なお、CPUコア部100へのデータ応答は、メモリアクセス要求が、ロード要求であって、かつプリフェッチ要求でない場合に実行される。   When an abort condition is not generated in the request response pipe, the pipeline control unit 103 writes the main storage data response 561 to the cache data unit 106 and updates the tag of the cache tag unit 105 (FIG. 2 sequence S12). More specifically, the pipeline command generation unit 525 in FIG. 5B executes the following operation in accordance with the memory access request input from the pipe input entry selection unit 552 in FIG. 5C to the pipe input control unit 520 in FIG. 5B. . First, for example, the 18th to 7th bits of the address data in the memory access request are extracted to generate a tag update address 537 as an index. Next, the pipeline command generation unit 525 extracts the 39th to 19th bits of the address data, for example, and generates a request tag. Then, the pipeline command generation unit 525 outputs a tag update notification 536 to the cache tag unit 105 and also outputs a tag update address 537. As a result, the cache tag unit 105 designates a cache line corresponding to the tag update address 537, and one cache block of each cache way corresponding to the cache line is evicted. Then, the request tag is newly overwritten in the cache block. At the same time, the data response 562 temporarily stored in the data buffer 557 of FIG. 5C is written as cache data portion write data 538 in the area corresponding to the cache block on the cache data portion 106. Along with the above operation, the data response 562 is transferred to the CPU core unit 100 in FIG. 5A as a CPU data response 563 (see sequence S13 in FIG. 2). The data response to the CPU core unit 100 is executed when the memory access request is a load request and not a prefetch request.

以上の要求応答パイプの動作の後、図5Bのパイプラインコマンド生成部525は、要求格納部1に、該当するメモリアクセス要求のエントリの開放を、パイプライン処理成功通知(エントリ開放通知)529として通知する(図2のシーケンスS14参照)。この通知に基づいて、図5Cにおいて、該当するエントリ部550のVALフラグとRDYフラグとHLDフラグがリセットされ、要求格納部1の該当するエントリ部550が開放される。   After the above operation of the request response pipe, the pipeline command generation unit 525 in FIG. 5B informs the request storage unit 1 to release the entry of the corresponding memory access request as a pipeline processing success notification (entry release notification) 529. Notification is made (see sequence S14 in FIG. 2). Based on this notification, in FIG. 5C, the VAL flag, RDY flag, and HLD flag of the corresponding entry unit 550 are reset, and the corresponding entry unit 550 of the request storage unit 1 is released.

パイプライン制御部103における要求応答パイプラインが何らかの要因によりアボートした場合、図5Bのパイプラインコマンド生成部525から図5Cの要求格納部1に、パイプライン差し戻し通知528が通知される。この結果、図5Cのリセット用オアゲート553を介して該当するエントリ部550のHLDフラグがリセットされる。この結果、そのエントリ部550に対応するエントリ出力ゲート551が再度そのエントリのメモリアクセス要求を選択可能となり、パイプ投入エントリ選択部552を介して図5Bのパイプ投入制御部520への再度の投入が試行される。   When the request response pipeline in the pipeline control unit 103 is aborted due to some factor, a pipeline return notification 528 is notified from the pipeline command generation unit 525 in FIG. 5B to the request storage unit 1 in FIG. 5C. As a result, the HLD flag of the corresponding entry unit 550 is reset via the reset OR gate 553 in FIG. 5C. As a result, the entry output gate 551 corresponding to the entry unit 550 can select the memory access request for the entry again, and the entry to the pipe entry control unit 520 in FIG. Will be tried.

パイプライン制御部103から要求格納部1にメモリアクセス要求が登録されたとき、各エントリ部550毎に、比較(一致検出)回路554が、各エントリ部550に登録されているPAアドレスとパイプライン制御部103から通知されているパイプアドレス530との一致を検出する。そして、各アンドゲート555が、各エントリ部550のVALフラグと、パイプライン制御部103から与えられるパイプアドレスマッチ検出指示531のオンを条件に、各比較(一致検出)回路554の検出結果を出力する。この結果、いずれかの有効なエントリ部550のPAアドレスとパイプアドレス530が一致した場合、オアゲート556を介して出力されるアドレスマッチ通知558がオンとなる。前述したように、図5Bにおいて、要求格納部1からアドレスマッチ通知558を通知されると、アボート用オアゲート524がオンとなって、パイプラインコマンド生成部525に対して、アボートが設定される。このようにして、重複する無駄な主記憶アクセスの発生が抑止される。   When a memory access request is registered in the request storage unit 1 from the pipeline control unit 103, the comparison (match detection) circuit 554 for each entry unit 550 has a PA address and pipeline registered in each entry unit 550. A match with the pipe address 530 notified from the control unit 103 is detected. Each AND gate 555 outputs the detection result of each comparison (match detection) circuit 554 on condition that the VAL flag of each entry unit 550 and the pipe address match detection instruction 531 given from the pipeline control unit 103 are turned on. To do. As a result, when the PA address of any valid entry unit 550 matches the pipe address 530, the address match notification 558 output via the OR gate 556 is turned on. As described above, in FIG. 5B, when the address match notification 558 is notified from the request storage unit 1, the abort OR gate 524 is turned on, and the abort is set for the pipeline command generation unit 525. In this way, the occurrence of redundant useless main memory access is suppressed.

図5Dは、図4Aのバンクアドレス均等制御部(バンクアボート生成部)401の詳細な回路構成図である。
バンクアボート生成部401は、バンクアドレスデコーダ540、カウントアップ用アンドゲート群541、カウンタ群542、大小比較回路群544、バンクアドレスデコーダ548、カウントダウン用アンドゲート群549を備える。また、バンクアボート生成部401は、バンクアドレスデコーダ545と、バンクアボート通知用アンドゲート群546と、バンクアボート通知用オアゲート547を備える。
FIG. 5D is a detailed circuit configuration diagram of the bank address equalization control unit (bank abort generation unit) 401 of FIG. 4A.
The bank abort generation unit 401 includes a bank address decoder 540, a count-up AND gate group 541, a counter group 542, a size comparison circuit group 544, a bank address decoder 548, and a count-down AND gate group 549. The bank abort generation unit 401 includes a bank address decoder 545, a bank abort notification AND gate group 546, and a bank abort notification OR gate 547.

カウンタ群542は、要求格納部1と要求格納部2に保持されたメモリアクセス要求に基づき、主記憶部のDIMM110に対するメモリアクセス要求の数を、バンク(bank)0〜7の各バンク毎に計数する。   The counter group 542 counts the number of memory access requests to the DIMM 110 of the main storage unit for each bank 0 to 7 based on the memory access requests held in the request storage unit 1 and the request storage unit 2. To do.

この計数を実現するために、カウントアップ用アンドゲート群541は、例えばバンク(bank)0から7までの8バンクに対応して8つのアンドゲートから構成されている。カウントアップ用アンドゲート群541の各アンドゲートには、図5Bのパイプラインコマンド生成部525から入力するパイプバンクアドレス526をバンクアドレスデコーダ540でデコードした結果が入力される。デコード部540は、パイプバンクアドレス526をデコードすることによって、バンク0〜7に対応する8本のうちのいずれか1本の出力がオンになるような複数の出力線を有する。これらの出力線のそれぞれが、カウントアップ用アンドゲート群541の各アンドゲートに入力している。そして、パイプバンクアドレス526がバンク0を示していればバンクアドレスデコーダ540の出力のうちbank0のみがオンとなり、他のbank1〜7はオフとなる。パイプバンクアドレス526がバンク1を示していればバンクアドレスデコーダ540の出力のうちbank1のみがオンとなり、他の出力はオフとなる。バンク2〜7についても同様である。また、カウントアップ用アンドゲート群541の各アンドゲートには、図5Bのパイプラインコマンド生成部525から入力する要求格納部1エントリ獲得通知527が入力する。この結果、パイプラインコマンド生成部525から要求格納部1エントリ獲得通知527が発行されたメモリアクセス要求が要求格納部1および2に登録されるタイミングで、次の制御が実行される。上記メモリアクセス要求に対応するパイプバンクアドレス526が示すバンクに対応するカウントアップ用アンドゲート群541内のアンドゲートの出力がオンとなり、そのバンクに対応するカウンタ群542内のカウンタがカウントアップされる。   In order to realize this counting, the count-up AND gate group 541 is composed of eight AND gates corresponding to, for example, eight banks from banks 0 to 7. The result of decoding the pipe bank address 526 input from the pipeline command generation unit 525 of FIG. 5B by the bank address decoder 540 is input to each AND gate of the count-up AND gate group 541. The decoding unit 540 has a plurality of output lines such that any one of the eight outputs corresponding to the banks 0 to 7 is turned on by decoding the pipe bank address 526. Each of these output lines is input to each AND gate of the count-up AND gate group 541. If the pipe bank address 526 indicates the bank 0, only the bank 0 of the outputs of the bank address decoder 540 is turned on, and the other banks 1 to 7 are turned off. If the pipe bank address 526 indicates bank 1, only bank 1 of the outputs of the bank address decoder 540 is turned on, and the other outputs are turned off. The same applies to banks 2-7. Further, the request storage unit 1 entry acquisition notification 527 input from the pipeline command generation unit 525 of FIG. 5B is input to each AND gate of the count-up AND gate group 541. As a result, the following control is executed at the timing when the memory access request for which the request storage unit 1 entry acquisition notification 527 is issued from the pipeline command generation unit 525 is registered in the request storage units 1 and 2. The output of the AND gate in the count-up AND gate group 541 corresponding to the bank indicated by the pipe bank address 526 corresponding to the memory access request is turned on, and the counter in the counter group 542 corresponding to the bank is counted up. .

一方、図5Cの要求格納部2からDIMMアクセス制御部109にメモリアクセス要求が読み出されるタイミングで、要求格納部2の開放を示す要求格納部2エントリ開放通知559が、図5Cの要求格納部2から出力される。また、要求格納部2から、読み出されたメモリアクセス要求のバンクを示す要求格納部2開放バンクアドレス560が出力される。これらの、要求格納部2エントリ開放通知559と要求格納部2開放バンクアドレス560は、図5Dのバンクアボート生成部401に入力する。要求格納部2からバンクアボート生成部401への上記2つのデータの転送は、図4Bのシステムコントローラ側バスインタフェース部112からシステムバスを経由して図4AのCPU側バスインタフェース部111を介して実行される。ここで、カウントダウン用アンドゲート群549は、例えばバンク0から7までの8バンクに対応して8つのアンドゲートから構成されている。カウントダウン用アンドゲート群549の各アンドゲートには、図5Cの要求格納部2から入力する要求格納部2開放バンクアドレス560をバンクアドレスデコーダ548でデコードした結果が入力される。すなわち、バンクアドレスデコーダ548は、要求格納部2開放バンクアドレス560をデコードすることによって、bank0〜7に対応する8本のうちのいずれか1本の出力がオンになるような複数の出力線を有する。これらの出力線のそれぞれが、カウントダウン用アンドゲート群549の各アンドゲートに入力している。そして、要求格納部2開放バンクアドレス560がバンク0を示していればバンクアドレスデコーダ548の出力のうちbank0のみがオンとなり、他のbank1〜7はオフとなる。バンク1〜7についても同様である。また、カウントダウン用アンドゲート群549の各アンドゲートには、図5Cの要求格納部2から要求格納部2エントリ開放通知559が入力する。この結果、要求格納部2からメモリアクセス要求が読み出されて主記憶アクセスされたタイミングで、次の制御が実行される。上記メモリアクセス要求に対応する要求格納部2開放バンクアドレス560が示すバンクに対応するカウントダウン用アンドゲート群549内のアンドゲートの出力がオンとなり、そのバンクに対応するカウンタ群542内のカウンタがカウントダウンされる。   On the other hand, at the timing when the memory access request is read from the request storage unit 2 in FIG. 5C to the DIMM access control unit 109, the request storage unit 2 entry release notification 559 indicating the release of the request storage unit 2 is sent to the request storage unit 2 in FIG. Is output from. Also, the request storage unit 2 outputs a request storage unit 2 open bank address 560 indicating the bank of the read memory access request. The request storage unit 2 entry release notification 559 and the request storage unit 2 release bank address 560 are input to the bank abort generation unit 401 in FIG. 5D. Transfer of the above two data from the request storage unit 2 to the bank abort generation unit 401 is executed from the system controller side bus interface unit 112 in FIG. 4B via the system bus via the CPU side bus interface unit 111 in FIG. 4A. Is done. Here, the countdown AND gate group 549 is composed of eight AND gates corresponding to, for example, eight banks from banks 0 to 7. Each AND gate of the countdown AND gate group 549 receives a result obtained by decoding the bank address decoder 548 of the request storage unit 2 open bank address 560 input from the request storage unit 2 of FIG. 5C. In other words, the bank address decoder 548 decodes the request storage unit 2 open bank address 560 so as to set a plurality of output lines such that any one of the eight outputs corresponding to the banks 0 to 7 is turned on. Have. Each of these output lines is input to each AND gate of the countdown AND gate group 549. If the request storage unit 2 open bank address 560 indicates bank 0, only bank 0 of the outputs of the bank address decoder 548 is turned on, and the other banks 1 to 7 are turned off. The same applies to banks 1-7. Further, a request storage unit 2 entry release notification 559 is input from the request storage unit 2 of FIG. 5C to each AND gate of the countdown AND gate group 549. As a result, the next control is executed at the timing when the memory access request is read from the request storage unit 2 and the main memory is accessed. The output of the AND gate in the count down AND gate group 549 corresponding to the bank indicated by the request bank 2 corresponding to the memory access request is turned on, and the counter in the counter group 542 corresponding to the bank counts down. Is done.

以上のようにして、カウンタ群542は、図4AのL2キャッシュ制御部101から図4BのDIMM110に対して現在仕掛かっているメモリアクセス要求の数を、バンク毎に計数することができる。   As described above, the counter group 542 can count, for each bank, the number of memory access requests currently being processed from the L2 cache control unit 101 in FIG. 4A to the DIMM 110 in FIG. 4B.

次に、大小比較回路群544内の各大小比較回路は、カウンタ群542内のバンク毎の各カウンタ値と、閾値設定レジスタ543に設定されている閾値とで、それぞれ大小比較を行う。各大小比較回路の比較結果は各バンク毎の要求待機通知514として出力され、図5Aのバンク待機制御部402に出力される。前述したように、図4Aまたは図5Aのバンク待機制御部402は、新規要求格納部102のエントリ部550で待機中のメモリアクセス要求のうち、上記要求待機通知514に対応するバンクアドレスを要求するメモリアクセス要求の出力を抑止する。この結果、カウンタ群542における該当するバンクに対応するメモリアクセス要求の計数値が所定値を下回るまで、該当するメモリアクセス要求のL2キャッシュ制御部101のパイプラインへの投入が抑止される。   Next, each size comparison circuit in the size comparison circuit group 544 performs size comparison between each counter value for each bank in the counter group 542 and the threshold value set in the threshold setting register 543. The comparison result of each size comparison circuit is output as a request standby notification 514 for each bank, and is output to the bank standby control unit 402 in FIG. 5A. As described above, the bank standby control unit 402 in FIG. 4A or 5A requests a bank address corresponding to the request standby notification 514 among the memory access requests that are waiting in the entry unit 550 of the new request storage unit 102. Suppresses output of memory access requests. As a result, until the count value of the memory access request corresponding to the corresponding bank in the counter group 542 falls below a predetermined value, the corresponding memory access request is prevented from being input to the pipeline of the L2 cache control unit 101.

バンクアボート通知用アンドゲート群546は、例えばバンク(bank)0から7までの8バンクに対応して8つのアンドゲートから構成されている。バンクアボート通知用アンドゲート群546の各アンドゲートには、図5Bのパイプラインコマンド生成部525から入力するパイプアドレス530のうちパイプバンクアドレス部分をバンクアドレスデコーダ545でデコードした結果が入力される。すなわち、バンクアドレスデコーダ545は、パイプアドレス530のうちパイプバンクアドレス部分をデコードすることによって、バンク0〜7に対応する8本のうちのいずれか1本の出力がオンになるような複数の出力線を有する。これらの出力線のそれぞれが、アンドゲート群546の各アンドゲートに入力している。そして、パイプバンクアドレスがバンク0を示していればバンクアドレスデコーダ545の出力のうちbank0のみがオンとなり、他のbank1〜7はオフとなる。バンク1〜7についても同様である。また、バンクアボート通知用アンドゲート群546の各アンドゲートには、図5Bのパイプライン制御部103から入力するパイプアドレスマッチ検出指示531が入力する。さらに、バンクアボート通知用アンドゲート群546の各アンドゲートには、大小比較回路群544の各大小比較回路の比較結果出力が入力する。この結果、パイプライン制御部103からパイプアドレス530が入力したときに、そのバンクに対応するメモリアクセス要求の計数値が所定値を超えているなら、バンクアボート通知用アンドゲート群546の該当するアンドゲートの出力がオンとなる。これにより、バンクアボート通知用オアゲート547から出力されるバンクアボート通知539がオンとなって、図5Bのパイプライン制御部103内のアボート用オアゲート524がオンとなる。これにより、パイプラインコマンド生成部525は、アボート状態となり、新規要求格納部102に対してパイプライン差し戻し通知528を出力する。この結果、前述したように、新規要求格納部102の該当するエントリ部501は開放されず、待機状態となって、該当するメモリアクセス要求の実行が遅らされる。前述した図5Aのバンク待機制御部402の動作と併せて、上述のバンクアボート生成部401からのバンクアボート通知539を使った制御動作により、同じバンクのメモリアクセス要求が過剰に発行されないように食い止めることができる。さらに、他のバンクと比較して発行の頻度が少ないバンクのメモリアクセス要求を優先的に、DIMM110に発行させることができる。これにより、メモリアクセス要求の発行状態が、自然に図3(b)に例示したように、常時多様な種類のバンクのメモリアクセス要求が要求格納部1や2に格納される状態にすることができ、バンクアクセスの均等化を図ることが可能となる。   The bank abort notification AND gate group 546 includes, for example, eight AND gates corresponding to eight banks from bank 0 to 7. The result of decoding the pipe bank address portion of the pipe address 530 input from the pipeline command generation unit 525 of FIG. 5B by the bank address decoder 545 is input to each AND gate of the bank abort notification AND gate group 546. In other words, the bank address decoder 545 decodes the pipe bank address portion of the pipe address 530, so that any one of the eight outputs corresponding to the banks 0 to 7 is turned on. With lines. Each of these output lines is input to each AND gate of the AND gate group 546. If the pipe bank address indicates bank 0, only bank 0 of the outputs of the bank address decoder 545 is turned on, and the other banks 1 to 7 are turned off. The same applies to banks 1-7. Further, a pipe address match detection instruction 531 input from the pipeline control unit 103 in FIG. 5B is input to each AND gate of the bank abort notification AND gate group 546. Further, the comparison result output of each size comparison circuit of the size comparison circuit group 544 is input to each AND gate of the bank abort notification AND gate group 546. As a result, when the pipe address 530 is input from the pipeline control unit 103 and the count value of the memory access request corresponding to the bank exceeds a predetermined value, the corresponding AND of the bank abort notification AND gate group 546 is displayed. The gate output is turned on. As a result, the bank abort notification 539 output from the bank abort notification or gate 547 is turned on, and the abort or gate 524 in the pipeline control unit 103 in FIG. 5B is turned on. As a result, the pipeline command generation unit 525 enters an abort state and outputs a pipeline return notification 528 to the new request storage unit 102. As a result, as described above, the corresponding entry unit 501 of the new request storage unit 102 is not released and enters a standby state, and execution of the corresponding memory access request is delayed. In addition to the operation of the bank standby control unit 402 in FIG. 5A described above, the control operation using the bank abort notification 539 from the bank abort generation unit 401 described above prevents the memory access request of the same bank from being issued excessively. be able to. Furthermore, it is possible to cause the DIMM 110 to issue a memory access request of a bank that is issued less frequently than other banks with priority. As a result, the memory access request issuance state naturally becomes a state where memory access requests of various types of banks are always stored in the request storage units 1 and 2 as illustrated in FIG. This makes it possible to equalize bank access.

このバンクアクセスの均等化について、前述した図3(b)を例にとってより詳細に説明する。Core0〜3の各CPUコア部100から、同一バンクのメモリアクセス要求が連続して発行されるとする。この場合、図5Aの要求格納部0では、パイプ投入エントリ選択部503が、各CPUコア部100に対応するエントリ部501からメモリアクセス要求が選択してL2キャッシュメモリのパイプラインに投入する。このとき、図4Aのバンク待機制御部401、402が、同じバンクアドレスを有するメモリアクセス要求は一定数以上連続的には投入されないように制御する。例えば、図5Dのカウンタ群542の各バンクアドレスに対応するカウンタの計数の閾値が1であれば、同じバンクアドレスのメモリアクセス要求が2個以上パイプラインに投入されないように、バンク待機制御部401、402が制御する。この結果、要求格納部0では、異なるバンクアドレスを有するメモリアクセス要求が格納されているエントリ部501が優先的に選択されて、そのメモリアクセス要求がL2キャッシュのパイプラインに投入される。例えば、Core0,1,2,3に対応する4つのエントリ部501にほぼ同時に同じバンクアドレスの要求が格納された場合を考える。この場合、まずCore0のエントリ部501のバンクアドレス=0を有するメモリアクセス要求が選択されて、パイプラインに投入される。その直後、Core1,2,3の各エントリ部501には、同じバンクアドレス=0を有するメモリアクセス要求が格納されているなら、それらからの出力が全部抑止される。そして図3(b)に示すように、Core0のエントリ部501では、バンクアドレス=0のメモリアクセス要求がDIMM110に向けて出力された後にすぐに、Core1のCPUコア部100から次のバンクアドレス=4のメモリアクセス要求がDIMM110に向けて出力される。すなわち、バンクアドレス=0のメモリアクセス要求が格納されていたCore0のエントリ部501の次に選択されるエントリ部501は、バンクアドレス=4のメモリアクセス要求が格納されたCore1のエントリ部501ということになる。このようにして、バンクアドレス=0であるメモリアクセス要求の直ぐ後にバンクアドレス=4であるメモリアクセス要求が出力され、バンクのアクセス制御が均等化されるとともに、L2キャッシュのパイプラインは、ほぼ間断なく処理を続行できることになる。したがって本実施形態によれば図3(b)に示すようにバンク,0,4,2,6,1,5,3,7が均等にアクセスされ、Core0,1,2,3が均等にアクセスされる。そして、CPUコア部100が図3(b)の304に示すように間断なくDIMM110に対してアクセスできる。   The bank access equalization will be described in more detail with reference to FIG. 3B described above. It is assumed that memory access requests for the same bank are issued continuously from the CPU core units 100 of Core 0 to 3. In this case, in the request storage unit 0 of FIG. 5A, the pipe entry entry selection unit 503 selects a memory access request from the entry unit 501 corresponding to each CPU core unit 100 and inputs it to the pipeline of the L2 cache memory. At this time, the bank standby control units 401 and 402 in FIG. 4A perform control so that memory access requests having the same bank address are not continuously input over a certain number. For example, if the count threshold value of the counter corresponding to each bank address in the counter group 542 in FIG. 5D is 1, the bank standby control unit 401 prevents the memory access requests having the same bank address from being input into the pipeline more than once. , 402 controls. As a result, in the request storage unit 0, the entry unit 501 in which memory access requests having different bank addresses are stored is preferentially selected, and the memory access request is input to the L2 cache pipeline. For example, consider a case where requests for the same bank address are stored almost simultaneously in the four entry sections 501 corresponding to Core 0, 1, 2, and 3. In this case, a memory access request having the bank address = 0 of the entry unit 501 of Core 0 is first selected and put into the pipeline. Immediately after that, if memory access requests having the same bank address = 0 are stored in the entry sections 501 of Cores 1, 2, and 3, all the outputs from them are suppressed. Then, as shown in FIG. 3B, in the entry unit 501 of Core0, immediately after the memory access request with bank address = 0 is output to the DIMM 110, the next bank address = 4 memory access requests are output to the DIMM 110. That is, the entry unit 501 selected next to the entry unit 501 of the Core 0 in which the memory access request with the bank address = 0 is stored is the entry unit 501 of the Core 1 in which the memory access request with the bank address = 4 is stored. become. In this way, the memory access request with the bank address = 4 is output immediately after the memory access request with the bank address = 0, the bank access control is equalized, and the pipeline of the L2 cache is almost interrupted. Will be able to continue. Therefore, according to the present embodiment, as shown in FIG. 3B, the banks 0, 4, 2, 6, 1, 5, 3, and 7 are equally accessed, and the Cores 0, 1, 2, and 3 are equally accessed. Is done. Then, the CPU core unit 100 can access the DIMM 110 without interruption as indicated by 304 in FIG.

従来は、L2キャッシュのパイプラインに、連続処理できない同じバンクアドレスを有するメモリアクセス要求が多く滞留してしまい、主記憶部へのメモリアクセス要求の発行およびそれに対応するデータ応答も間欠的になってしまって、パイプラインの処理性能が大きく落ちるという結果を招いていた。これに対して本実施形態では、L2キャッシュのパイプラインは、ほぼ間断なく処理を行うことができるため、L2キャッシュ制御部101のスループットを向上させることが可能となる。   Conventionally, many memory access requests having the same bank address that cannot be processed continuously remain in the pipeline of the L2 cache, and issuance of memory access requests to the main storage unit and corresponding data responses are intermittent. This has resulted in a significant drop in pipeline processing performance. On the other hand, in the present embodiment, the L2 cache pipeline can perform processing almost without interruption, so that the throughput of the L2 cache control unit 101 can be improved.

ここで、Core1,2,3のメモリアクセス要求は、バンクアドレス=0が出力できるようになるまで待たされることになる。しかし、バンクアドレス=0の出力が可能な期間が経過した後は、次のCore1のバンクアドレス=0が優先的に選択された後、今度はそのCore1のメモリアクセス要求が連続して選択されるように制御すればよい。このようなアルゴリズムを図5Aのパイプ投入エントリ選択部552に持たせておけば、特定のCPUコア部100に処理が偏ることはない。   Here, the memory access requests for Cores 1, 2, and 3 are waited until the bank address = 0 can be output. However, after the period during which the bank address = 0 can be output, the bank address = 0 of the next Core 1 is preferentially selected, and then the memory access request of the Core 1 is continuously selected. Control may be performed as follows. If such an algorithm is provided to the pipe entry entry selection unit 552 in FIG. 5A, the processing is not biased toward a specific CPU core unit 100.

図6は、上述した第1の実施形態の動作の処理過程を示すフローチャートである。
CPUコア1602がL2キャッシュ制御部101へ新規のメモリアクセス要求を発行し、この結果、要求格納部0(新規要求格納部102。以下同じ)のエントリ部501(図5A参照)にメモリアクセス要求が格納される(ステップS601)。
FIG. 6 is a flowchart showing the process of the operation of the first embodiment described above.
The CPU core 1602 issues a new memory access request to the L2 cache control unit 101. As a result, the memory access request is sent to the entry unit 501 (see FIG. 5A) of the request storage unit 0 (new request storage unit 102; the same applies hereinafter). Stored (step S601).

その後、図5Aにおいて、要求格納部0のエントリ部501からエントリ出力ゲート551、パイプ投入エントリ選択部552を介して、図5Bのパイプ投入制御部520に要求パイプが投入される(ステップS602)。   Thereafter, in FIG. 5A, the request pipe is input from the entry unit 501 of the request storage unit 0 to the pipe input control unit 520 of FIG. 5B via the entry output gate 551 and the pipe input entry selection unit 552 (step S602).

パイプライン制御部103のタグ読み出し制御部521(図5B参照)では、キャッシュタグ部105を検索した結果、キャッシュミスが発生したか否かが判定される(ステップS603)。   The tag read control unit 521 (see FIG. 5B) of the pipeline control unit 103 determines whether or not a cache miss has occurred as a result of searching the cache tag unit 105 (step S603).

キャッシュヒットとなってステップS603の判定がNOの場合、図5Bのパイプラインコマンド生成部525において、要求パイプのパイプ処理が成功したか否かが判定される(ステップS604)。   When the cache hit occurs and the determination in step S603 is NO, the pipeline command generation unit 525 in FIG. 5B determines whether the pipe processing of the request pipe has succeeded (step S604).

パイプ処理が成功しステップS604の判定がYESの場合、図5Bのパイプラインコマンド生成部525から図5Aの要求格納部0にパイプライン処理成功通知(エントリ開放通知)529が通知される。この結果、要求格納部0の該当するエントリ部501において、VALフラグ、HLDフラグ、WAITフラグがリセットされ、そのエントリ部501が開放される(ステップS605)。   If the pipe process is successful and the determination in step S604 is YES, a pipeline process success notification (entry release notification) 529 is sent from the pipeline command generation unit 525 in FIG. 5B to the request storage unit 0 in FIG. 5A. As a result, the VAL flag, HLD flag, and WAIT flag are reset in the corresponding entry unit 501 of the request storage unit 0, and the entry unit 501 is released (step S605).

パイプ処理が成功せずステップS604の判定がNOの場合、図5Bのパイプラインコマンド生成部525から図5Aの要求格納部0にパイプライン差し戻し通知528が通知される。この結果、該当するエントリ部501において、HLDフラグがリセット、WAITフラグがセットされ、そのエントリ部501のメモリアクセス要求は待機状態となる。これにより、要求格納部0からパイプライン制御部103への要求パイプの投入が繰り返し試行される(ステップS604→S602)。   If the pipe process is not successful and the determination in step S604 is NO, the pipeline return notification 528 is notified from the pipeline command generation unit 525 in FIG. 5B to the request storage unit 0 in FIG. 5A. As a result, in the corresponding entry unit 501, the HLD flag is reset and the WAIT flag is set, and the memory access request of the entry unit 501 enters a standby state. As a result, a request pipe is repeatedly tried from the request storage unit 0 to the pipeline control unit 103 (steps S604 to S602).

パイプライン制御部103においてキャッシュミスとなってステップS603の判定がYESの場合、要求格納部1に空エントリがあるか否かが判定される(ステップS606)。この判定機能は、要求格納部1資源カウンタ523とアボート用オアゲート524により実現される。すなわち、要求格納部1資源カウンタ523のカウント値がフルとなって要求格納部1資源カウンタ値515が1を示せば、要求格納部1に空エントリがないと判定される。要求格納部1資源カウンタ値515が0を示していれば、要求格納部1に空エントリがあると判定される。   If the pipeline control unit 103 results in a cache miss and the determination in step S603 is YES, it is determined whether there is an empty entry in the request storage unit 1 (step S606). This determination function is realized by the request storage unit 1 resource counter 523 and the abort OR gate 524. That is, if the count value of the request storage unit 1 resource counter 523 is full and the request storage unit 1 resource counter value 515 indicates 1, it is determined that there is no empty entry in the request storage unit 1. If the request storage unit 1 resource counter value 515 indicates 0, it is determined that there is an empty entry in the request storage unit 1.

要求格納部1に空エントリがありステップS606の判定がYESの場合、要求格納部1が保持するメモリアクセス要求の数が所定の閾値より小さいか否かが判定される(ステップS607)。具体的には、図5Dのバンクアボート生成部401の大小比較回路群544の要求バンクに対応する大小比較回路で、カウンタ群542の要求バンクに対応するカウンタ値が閾値設定レジスタ543に記憶された所定の閾値より小さいか否かが判定される。   If there is an empty entry in the request storage unit 1 and the determination in step S606 is YES, it is determined whether or not the number of memory access requests held in the request storage unit 1 is smaller than a predetermined threshold (step S607). Specifically, in the magnitude comparison circuit corresponding to the request bank of the magnitude comparison circuit group 544 of the bank abort generation unit 401 in FIG. 5D, the counter value corresponding to the request bank of the counter group 542 is stored in the threshold setting register 543. It is determined whether it is smaller than a predetermined threshold.

ステップS607の判定がYESならば、図5Dのバンクアボート生成部401から図5Bのアボート用オアゲート524には、バンクアボート通知539は発行されない。この結果、図5Bのパイプラインコマンド生成部525から図5Aの要求格納部0へ、要求開放指示としてパイプライン処理成功通知(エントリ開放通知)529が通知される。これにより、図5の要求格納部0の該当するエントリ部501において、VALフラグ、HLDフラグ、WAITフラグがリセットされて、そのエントリ部501が開放される。また、図5Bのパイプラインコマンド生成部525から図5Cの要求格納部1のエントリ部550と要求格納部2に、メモリアクセス要求とともに要求格納部1エントリ獲得通知527が発行される。パイプラインコマンド生成部525から要求格納部2への上記通知は、図4Bのシステムコントローラ側バスインタフェース部112からシステムバスを経由して図4AのCPU側バスインタフェース部111を介して実行される。この結果、パイプライン制御部103から要求格納部1、要求格納部2へメモリアクセス要求が発行される。また、要求格納部1エントリ獲得通知527により、図5Dのバンクアボート生成部401では、カウンタ群542において要求バンクのカウンタのカウント値(バンク格納数)がプラス1(インクリメント)される。この機能は、図5Dの、バンクアドレスデコーダ540とカウントアップ用アンドゲート群541により実現される(以上、ステップS608)。   If the determination in step S607 is YES, the bank abort notification 539 is not issued from the bank abort generation unit 401 in FIG. 5D to the abort OR gate 524 in FIG. 5B. As a result, a pipeline processing success notification (entry release notification) 529 is sent as a request release instruction from the pipeline command generation unit 525 of FIG. 5B to the request storage unit 0 of FIG. 5A. As a result, the VAL flag, HLD flag, and WAIT flag are reset in the corresponding entry unit 501 of the request storage unit 0 in FIG. 5, and the entry unit 501 is released. Also, a request storage unit 1 entry acquisition notification 527 is issued together with a memory access request from the pipeline command generation unit 525 of FIG. 5B to the entry unit 550 and the request storage unit 2 of the request storage unit 1 of FIG. 5C. The above notification from the pipeline command generation unit 525 to the request storage unit 2 is executed from the system controller side bus interface unit 112 in FIG. 4B via the system bus via the CPU side bus interface unit 111 in FIG. 4A. As a result, a memory access request is issued from the pipeline control unit 103 to the request storage unit 1 and the request storage unit 2. Further, in response to the request storage unit 1 entry acquisition notification 527, in the bank abort generation unit 401 in FIG. 5D, the count value (bank storage number) of the request bank in the counter group 542 is incremented by 1 (increment). This function is realized by the bank address decoder 540 and the count-up AND gate group 541 shown in FIG. 5D (step S608).

次に、要求格納部1、要求格納部2へのメモリアクセス要求の発行時点で、図5Dのバンクアボート生成部401からはバンクアボート通知539は出力されていないため、要求バンクが処理可能となっている。このため、DIMMアクセス制御部109が要求格納部2からメモリアクセス要求を選択することができ、DIMM110へのアクセスが実行される。これと同時に、図5Cの要求格納部2から図5Dのバンクアボート生成部401へ要求格納部2エントリ開放通知559が通知される。この結果、図5Dのバンクアボート生成部401では、カウンタ群542において要求バンクのカウンタのカウント値(バンク格納数)がマイナス1(デクリメント)される。この機能は、図5Dの、バンクアドレスデコーダ548とカウントダウン用アンドゲート群549により実現される(以上、ステップS609)。   Next, when the memory access request to the request storage unit 1 and the request storage unit 2 is issued, the bank abort notification 539 is not output from the bank abort generation unit 401 in FIG. 5D, so that the request bank can be processed. ing. Therefore, the DIMM access control unit 109 can select a memory access request from the request storage unit 2, and access to the DIMM 110 is executed. At the same time, the request storage unit 2 entry release notification 559 is notified from the request storage unit 2 in FIG. 5C to the bank abort generation unit 401 in FIG. 5D. As a result, in the bank abort generation unit 401 shown in FIG. This function is realized by the bank address decoder 548 and the count-down AND gate group 549 shown in FIG. 5D (step S609).

上記DIMM110へのアクセスの結果、主記憶部であるDIMM110から要求格納部1のデータバッファ557に対して主記憶データ応答561が転送される(ステップS610)。   As a result of the access to the DIMM 110, the main memory data response 561 is transferred from the DIMM 110 as the main memory unit to the data buffer 557 of the request storage unit 1 (step S610).

続いて、主記憶データ応答561の転送を受けて、要求格納部1から要求応答パイプが投入される(ステップS611)。この機能は、図5Cの要求格納部1の該当するエントリ部550においてRDYフラグがセットされた後、該当するエントリ出力ゲート551がオンとなり、パイプ投入エントリ選択部552によってそのエントリが選択される動作として実現される。   Subsequently, in response to the transfer of the main memory data response 561, a request response pipe is inserted from the request storage unit 1 (step S611). This function is an operation in which, after the RDY flag is set in the corresponding entry unit 550 of the request storage unit 1 in FIG. 5C, the corresponding entry output gate 551 is turned on and the entry is selected by the pipe entry entry selection unit 552. As realized.

この結果、図5Bのパイプラインコマンド生成部525において、パイプ処理が成功したか否かが判定される(ステップS612)。   As a result, the pipeline command generation unit 525 in FIG. 5B determines whether or not the pipe processing is successful (step S612).

パイプ処理が成功せずステップS612の判定がNOならば、パイプライン制御部103から要求格納部1にパイプライン差し戻し通知528が発行される。この結果、図5Cの要求格納部1の該当するエントリ部550において、HLDフラグがリセットされることにより、該当するエントリ出力ゲート551がオンになる。この結果、要求格納部1のパイプ投入エントリ選択部552は、該当するエントリ部550のメモリアクセス要求について要求応答パイプへの投入を繰り返し実行する(ステップS612→S611)。   If the pipe processing is not successful and the determination in step S612 is NO, the pipeline control unit 103 issues a pipeline return notification 528 to the request storage unit 1. As a result, the corresponding entry output gate 551 is turned on by resetting the HLD flag in the corresponding entry unit 550 of the request storage unit 1 in FIG. 5C. As a result, the pipe entry entry selection unit 552 of the request storage unit 1 repeatedly executes the entry to the request response pipe for the memory access request of the corresponding entry unit 550 (steps S612 → S611).

パイプ処理が成功しステップS612の判定がYESならば、パイプライン制御部103がキャシュ(キャッシュタグ部105、キャッシュデータ部106)にデータを登録する。その後、パイプライン制御部103から要求格納部1にパイプライン処理成功通知(エントリ開放通知)529が発行される。この結果、図5Cの要求格納部1の該当するエントリ部550において、VALフラグ、RDYフラグ、HLDフラグがリセットされ、そのエントリ部550が開放される(ステップS613)。   If the pipe process is successful and the determination in step S612 is YES, the pipeline control unit 103 registers data in the cache (cache tag unit 105, cache data unit 106). Thereafter, a pipeline processing success notification (entry release notification) 529 is issued from the pipeline control unit 103 to the request storage unit 1. As a result, in the corresponding entry unit 550 of the request storage unit 1 in FIG. 5C, the VAL flag, RDY flag, and HLD flag are reset, and the entry unit 550 is released (step S613).

そして、CPUコア1602からのメモリアクセス要求が、ロード要求であってかつプリフェッチ要求でない場合に、図5Cの要求格納部1内のデータバッファ557からメモリアクセス要求を要求した図5AのCPUコア1602(要求コア)へ、CPUデータ応答563が転送される(ステップS614)。以上により、1つのメモリアクセス要求に対する処理が終了する。   When the memory access request from the CPU core 1602 is a load request and not a prefetch request, the CPU core 1602 of FIG. 5A (requested from the data buffer 557 in the request storage unit 1 of FIG. 5C) The CPU data response 563 is transferred to the requesting core) (step S614). Thus, the process for one memory access request is completed.

前述したステップS606またはS607の判定がNOの場合には、以下の制御処理が実行される。ステップS606の判定がNOの場合とは、図5Bの要求格納部1資源カウンタ523のカウント値がフルとなって要求格納部1資源カウンタ値515が1を示し、要求格納部1に空エントリがないと判定された場合である。ステップS607の判定がNOの場合とは、次の場合である。図5Dのバンクアボート生成部401の大小比較回路群544の要求バンクに対応する大小比較回路で、カウンタ群542の要求バンクに対応するカウンタ値が閾値設定レジスタ543に記憶された所定の閾値以上になっていると判定された場合である。   When the determination in step S606 or S607 described above is NO, the following control process is executed. If the determination in step S606 is NO, the count value of the request storage unit 1 resource counter 523 in FIG. This is the case when it is determined that there is no. The case where the determination in step S607 is NO is the following case. In the magnitude comparison circuit corresponding to the request bank of the magnitude comparison circuit group 544 of the bank abort generation unit 401 of FIG. This is a case where it is determined that

まず、パイプライン制御部103から要求格納部0に、パイプライン差し戻し通知528が通知される(ステップS615)。この結果、図5Aの要求格納部0において、該当するエントリ部501のWAITフラグがセットされ、そのエントリ部501のメモリアクセス要求が待機状態となる(ステップS616)。   First, a pipeline return notification 528 is notified from the pipeline control unit 103 to the request storage unit 0 (step S615). As a result, in the request storage unit 0 of FIG. 5A, the WAIT flag of the corresponding entry unit 501 is set, and the memory access request of the entry unit 501 enters a standby state (step S616).

次に、上記待機状態において、図5Bの要求格納部1資源カウンタ523のカウント値がフルとならずに要求格納部1資源カウンタ値515が0を示して、要求格納部1に空エントリが生じたか否かが判定される(ステップS617)。この機能は、図5Aのアンドゲート513によって実現される。   Next, in the standby state, the count value of the request storage unit 1 resource counter 523 in FIG. 5B does not become full, the request storage unit 1 resource counter value 515 indicates 0, and an empty entry occurs in the request storage unit 1 It is determined whether or not (step S617). This function is realized by the AND gate 513 in FIG. 5A.

上記待機状態において、要求格納部1にまだ空エントリが生じておらずステップS617の判定がNOならば、ステップS616の待機状態が繰り返される(ステップS617→S616)。この場合には、図5Aにおいて、要求格納部1資源カウンタ値515が1を示し該当するエントリ部501のWAITフラグも1であるため、アンドゲート513の出力がオンとなり、オアゲート512の出力がオンとなる。この結果、エントリ出力ゲート502がオフとなって、該当するエントリ部501からのメモリアクセス要求の出力が抑止され、待機状態が維持される。   In the standby state, if no empty entry has yet occurred in the request storage unit 1 and the determination in step S617 is NO, the standby state in step S616 is repeated (steps S617 → S616). In this case, in FIG. 5A, since the request storage unit 1 resource counter value 515 is 1 and the WAIT flag of the corresponding entry unit 501 is 1, the output of the AND gate 513 is turned on and the output of the OR gate 512 is turned on. It becomes. As a result, the entry output gate 502 is turned off, the output of the memory access request from the corresponding entry unit 501 is suppressed, and the standby state is maintained.

上記待機状態において、要求格納部1に空エントリが生じステップS617の判定がYESになると、要求バンクについて、要求格納部1が保持するメモリアクセス要求の数が所定の閾値より小さくなったか否かが判定される(ステップS618)。具体的には、図5Aにおいて、まず要求格納部1資源カウンタ値515が0となることによりアンドゲート513の出力がオフとなる。この結果、アンドゲート群511の機能が有効になる。アンドゲート群511の各バンクに対応するアンドゲートには、図5Dの大小比較回路群544の各大小比較回路から、各バンクに対応する要求待機通知514が入力している。図5Dのバンクアボート生成部401の大小比較回路群544の各大小比較回路で、カウンタ群542の対応するカウンタ値が閾値設定レジスタ543に記憶された所定の閾値以上になると、その大小比較回路が出力する要求待機通知514がオンになる。また、各アンドゲート群511は、各エントリ部501に対応して実装されており、各エントリ部501に登録されているPAアドレスのバンクアドレス部分をバンクアドレスデコーダ510でデコードした結果によって、アンドゲート群511において、エントリ部501のPAアドレスのバンクアドレスに対応するアンドゲートのみがオンになる。この結果、現在処理対象となっているエントリ部501の要求バンクに対応するアンドゲート群511内のアンドゲートにおいて、それに入力している要求待機通知514がオフであるかオンであるかが判定される。これにより、要求バンクについて、要求格納部1が保持するメモリアクセス要求の数が所定の閾値より小さくなったか否かが判定される。   In the standby state, when an empty entry occurs in the request storage unit 1 and the determination in step S617 is YES, whether or not the number of memory access requests held by the request storage unit 1 for the request bank has become smaller than a predetermined threshold value. Determination is made (step S618). Specifically, in FIG. 5A, first, the output of the AND gate 513 is turned off when the request storage unit 1 resource counter value 515 becomes 0. As a result, the function of the AND gate group 511 becomes effective. The AND gate corresponding to each bank of the AND gate group 511 receives a request standby notification 514 corresponding to each bank from each size comparison circuit of the size comparison circuit group 544 of FIG. 5D. In each of the magnitude comparison circuits of the magnitude comparison circuit group 544 of the bank abort generation unit 401 in FIG. 5D, when the corresponding counter value of the counter group 542 is equal to or greater than a predetermined threshold stored in the threshold setting register 543, the magnitude comparison circuit is The request waiting notification 514 to be output is turned on. Each AND gate group 511 is mounted corresponding to each entry unit 501, and the AND gate group 511 is AND gate depending on the result of decoding the bank address part of the PA address registered in each entry unit 501 by the bank address decoder 510. In the group 511, only the AND gate corresponding to the bank address of the PA address of the entry unit 501 is turned on. As a result, in the AND gate in the AND gate group 511 corresponding to the request bank of the entry unit 501 that is currently processed, it is determined whether the request waiting notification 514 input thereto is OFF or ON. The Thereby, it is determined whether or not the number of memory access requests held by the request storage unit 1 is smaller than a predetermined threshold for the request bank.

要求格納部1が保持する数が閾値設定レジスタ543に記憶された所定の閾値より小さくなっておらずステップS618の判定がNOならば、ステップS616の待機状態、ステップS617の判定、ステップS618の判定が繰り返される。具体的には、現在処理対象となっているエントリ部501の要求バンクに対応するアンドゲート群511内のアンドゲートにおいて、それに入力している要求待機通知514がオンになっていれば、そのアンドゲートがオンになって、オアゲート512の出力がオンになる。この結果、該当するエントリ部501に対応するエントリ出力ゲート502がオフになって、そのエントリ部501のメモリアクセス要求の出力が抑止され、待機状態が維持される。   If the number stored in the request storage unit 1 is not smaller than the predetermined threshold stored in the threshold setting register 543 and the determination in step S618 is NO, the standby state in step S616, the determination in step S617, the determination in step S618 Is repeated. Specifically, if the request waiting notification 514 input to the AND gate in the AND gate group 511 corresponding to the request bank of the entry unit 501 currently processed is turned on, the AND gate The gate is turned on and the output of the OR gate 512 is turned on. As a result, the entry output gate 502 corresponding to the corresponding entry unit 501 is turned off, the output of the memory access request of the entry unit 501 is suppressed, and the standby state is maintained.

要求格納部1が保持する数が閾値設定レジスタ543に記憶された所定の閾値より小さくなりステップS618の判定がYESになると、ステップS602の処理に移動する。これにより、要求格納部0からパイプライン制御部103に要求パイプが投入されL2キャッシュ制御が実行される(ステップS618→S602)。具体的には、現在処理対象となっているエントリ部501の要求バンクに対応するアンドゲート群511内のアンドゲートにおいて、それに入力している要求待機通知514がオフになれば、そのアンドゲートがオフになる。また、アンドゲート群511内の他の全てのアンドゲートとアンドゲート513もオフになる。この結果、オアゲート512の出力がオフになり、該当するエントリ部501に対応するエントリ出力ゲート502がオンになって、そのエントリ部501のメモリアクセス要求が出力可能な状態になる。これにより、パイプ投入エントリ選択部552が、該当するエントリ部501のメモリアクセス要求を選択して、図5Bのパイプ投入制御部520に投入することにより、L2キャッシュ制御が実行される。   When the number stored in the request storage unit 1 is smaller than the predetermined threshold stored in the threshold setting register 543 and the determination in step S618 is YES, the process proceeds to step S602. As a result, a request pipe is input from the request storage unit 0 to the pipeline control unit 103, and L2 cache control is executed (steps S618 → S602). Specifically, in the AND gate in the AND gate group 511 corresponding to the request bank of the entry unit 501 currently being processed, if the request waiting notification 514 input thereto is turned off, the AND gate Turn off. In addition, all other AND gates in the AND gate group 511 and the AND gate 513 are also turned off. As a result, the output of the OR gate 512 is turned off, the entry output gate 502 corresponding to the corresponding entry unit 501 is turned on, and the memory access request of the entry unit 501 can be output. As a result, the pipe entry entry selection unit 552 selects the memory access request of the corresponding entry unit 501, and inputs it to the pipe entry control unit 520 of FIG. 5B, whereby the L2 cache control is executed.

図7Aおよび図7Bは、図4Aおよび図4Bの第1の実施形態の構成を基本として、主記憶アクセスを行う部分が、主記憶アクセス機能外付けマルチコアCPUチップ1内に1チップとして実装されている第2の実施形態の構成図である。   FIGS. 7A and 7B are based on the configuration of the first embodiment of FIGS. 4A and 4B, and the main memory access part is mounted as a single chip in the main memory access function external multi-core CPU chip 1. It is a block diagram of 2nd Embodiment.

この構成では、図4AのCPU側バスインタフェース部111、図4Bのシステムコントローラ側バスインタフェース部112が省略され、さらに、図4Bの要求格納部2の機能も省略されて、要求格納部1に統合されている。要求格納部1が要求格納部2の機能を担っており、要求格納部1と要求格納部2の間の通信制御が省略される以外は、図4Aおよび図4Bの場合と同じ制御である。図7Aの新規要求格納部102、バンク待機制御部402、パイプライン制御部103、要求格納部1、およびバンクアボート生成部401の詳細な回路構成図は、第1の実施形態の図5A、図5B、図5C、図5Dと同様である。   In this configuration, the CPU side bus interface unit 111 in FIG. 4A and the system controller side bus interface unit 112 in FIG. 4B are omitted, and the function of the request storage unit 2 in FIG. Has been. The request storage unit 1 is responsible for the function of the request storage unit 2 and is the same control as in FIGS. 4A and 4B except that communication control between the request storage unit 1 and the request storage unit 2 is omitted. 7A is a detailed circuit configuration diagram of the new request storage unit 102, the bank standby control unit 402, the pipeline control unit 103, the request storage unit 1, and the bank abort generation unit 401 in FIG. 5A of the first embodiment. It is the same as 5B, FIG. 5C, and FIG. 5D.

第2の実施形態では、第1の実施形態の要求格納部2エントリ開放通知559および要求格納部2開放バンクアドレス560相当の情報が、要求格納部1から図7Aおよび図5Dのバンクアボート生成部401に出力される。これらの情報は、図7BのDIMMアクセス制御部109が図7Aの要求格納部1からメモリアクセス要求を読み出してDIMM110へのアクセスを実行する時点で出力される。   In the second embodiment, the request storage unit 2 entry release notification 559 and the information corresponding to the request storage unit 2 release bank address 560 of the first embodiment are transferred from the request storage unit 1 to the bank abort generation unit of FIGS. 7A and 5D. 401 is output. These pieces of information are output when the DIMM access control unit 109 in FIG. 7B reads a memory access request from the request storage unit 1 in FIG. 7A and executes access to the DIMM 110.

以上説明した第1および第2の実施形態により、主記憶に対する要求バンクが均等化され、何かのきっかけでバンクの偏りが発生しかかっても、同じバンクのメモリアクセス要求が過剰に発行されないように食い止めることができる。さらに、他のバンクと比較して発行の頻度が少ないバンクのメモリアクセス要求を優先的に、主記憶部に発行させることができる。これらの機能は、図5Dのバンクアボート生成部401と図5Aのバンク待機制御部402とからなる図4Aまたは図7Aのバンクアドレス均等制御部401、402により、実現される。これにより、メモリアクセス要求の発行状態が、自然に図3(b)に例示したように、常時多様な種類のバンクのメモリアクセス要求が要求格納部1や2に格納される高性能状態にすることができ、バンクアクセスの均等化を図ることが可能となる。いったん高性能時の状態に落ち着けば、ストリームアクセスなどにおいて、CPUコア部100間でもバンクのフェーズがずれた状態を維持しながら均等に処理される。   According to the first and second embodiments described above, the request banks for the main memory are equalized so that even if the bank is biased for some reason, the memory access requests for the same bank are not issued excessively. I can stop. Furthermore, it is possible to preferentially issue a memory access request of a bank that is issued less frequently than other banks to the main storage unit. These functions are realized by the bank address equalization control units 401 and 402 of FIG. 4A or FIG. 7A that includes the bank abort generation unit 401 of FIG. 5D and the bank standby control unit 402 of FIG. 5A. As a result, the memory access request issuance state naturally becomes a high performance state in which memory access requests of various types of banks are always stored in the request storage units 1 and 2 as illustrated in FIG. This makes it possible to equalize bank access. Once the state of high performance is settled, even in the case of stream access, the CPU core units 100 are processed equally while maintaining the state in which the bank phases are shifted.

上述の各実施形態の説明では、主記憶部に対するフェッチアクセス動作を中心に説明した。ライトバック制御を導入したキャッシュ制御においては、主記憶部に対するストア要求は、ソフトウエアでストアが発生し書き換えられたブロックが、新規要求によってリプレースされた場合に発生する。つまり要求格納部1にフェッチ要求が格納されると、そのフェッチ要求が確保したキャッシュのインデックス、ウエイに対してリプレース処理が行われる。リプレースされるブロックのバンクは要求格納部1の要求と同一のバンクである。すなわち、主記憶部のフェッチ要求に対するバンクの均等化が実現されると必然的に同時にストア要求に対するバンクの均等化も同時に実現されるので、ストア要求に対するバンクの均等化処理を明示的に導入する必要はない。つまり、上記各実施形態の構成により、十分な性能のバンク均等化処理を実現することが可能になる。   In the above description of each embodiment, the description has focused on the fetch access operation for the main storage unit. In cache control using write-back control, a store request to the main storage unit occurs when a block that has been stored and rewritten by software is replaced by a new request. That is, when a fetch request is stored in the request storage unit 1, a replacement process is performed on the cache index and way secured by the fetch request. The bank of the block to be replaced is the same bank as the request in the request storage unit 1. That is, when the bank equalization for the fetch request of the main storage unit is realized, the bank equalization for the store request is necessarily realized at the same time, so the bank equalization processing for the store request is explicitly introduced. There is no need. That is, the configuration of each of the above embodiments makes it possible to realize bank equalization processing with sufficient performance.

Claims (12)

複数のバンクを有する記憶装置に接続される演算処理装置において、
メモリアクセス要求を発行する命令処理部と、
データを保持するキャッシュラインを複数有するキャッシュメモリと、
前記命令処理部が発行したメモリアクセス要求を投入する第1の要求保持部と、
キャッシュミスが発生したメモリアクセス要求を保持する第2の要求保持部と、
前記第1の要求保持部から投入されたメモリアクセス要求に基づき前記キャッシュメモリを検索し、キャッシュミスが発生したメモリアクセス要求を前記第2の要求保持部に保持するキャッシュ制御部と、
前記第2の要求保持部に保持されたメモリアクセス要求のうち、処理が中断されなかったメモリアクセス要求を保持する第3の要求保持部と、
前記第2の要求保持部と前記第3の要求保持部とに保持されたメモリアクセス要求に基づき前記記憶装置に対するメモリアクセス要求の数をバンク毎に計数し、計数したいずれかのバンクのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持された、メモリアクセス要求の数が所定値を超えたバンクに対するメモリアクセス要求の処理の中断を指示するアクセス計数部と、
前記第3の要求保持部に保持されたメモリアクセス要求を前記記憶装置に発行する主記憶制御部と、
を有することを特徴とする演算処理装置。
In an arithmetic processing unit connected to a storage device having a plurality of banks,
An instruction processing unit for issuing a memory access request;
A cache memory having a plurality of cache lines for holding data;
A first request holding unit that inputs a memory access request issued by the instruction processing unit;
A second request holding unit for holding a memory access request in which a cache miss has occurred;
A cache control unit that searches the cache memory based on a memory access request input from the first request holding unit and holds a memory access request in which a cache miss has occurred in the second request holding unit;
Of the memory access requests held in the second request holding unit, a third request holding unit holding a memory access request whose processing has not been interrupted;
Based on the memory access requests held in the second request holding unit and the third request holding unit, the number of memory access requests to the storage device is counted for each bank, and the memory access of any bank that has been counted When the number of requests exceeds a predetermined value, the cache control unit is instructed to interrupt the processing of the memory access request for the bank held in the first request holding unit and the number of memory access requests exceeds the predetermined value. An access counting unit,
A main storage control unit that issues a memory access request held in the third request holding unit to the storage device;
An arithmetic processing apparatus comprising:
前記アクセス計数部は、さらに、
計数したメモリアクセス要求の数が所定値を超えたバンクに対するメモリアクセス要求の待機通知を前記第1の要求保持部に出力し、
前記第1の要求保持部は、
前記アクセス計数部が出力したメモリアクセス要求の待機通知に基づき、対応するバンクへのメモリアクセス要求の前記キャッシュ制御部への投入を抑止する、
ことを特徴とする請求項1記載の演算処理装置。
The access counting unit further includes:
Outputting a standby notification of a memory access request for a bank in which the number of counted memory access requests exceeds a predetermined value to the first request holding unit;
The first request holding unit includes:
Based on the standby notification of the memory access request output by the access counter, the memory access request to the corresponding bank is inhibited from being input to the cache controller.
The arithmetic processing apparatus according to claim 1.
前記アクセス計数部は、
前記キャッシュ制御部が、前記第2の要求保持部に前記メモリアクセス要求を保持した場合、前記メモリアクセス要求に対応するバンクの計数値を増分し、
前記主記憶制御部が、前記第3の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行した場合、前記メモリアクセス要求に対応するバンクの計数値を減分する、
ことを特徴とする請求項1記載の演算処理装置。
The access counter is
When the cache control unit holds the memory access request in the second request holding unit, it increments the count value of the bank corresponding to the memory access request,
When the main storage control unit issues a memory access request held in the third request holding unit to the main storage device, the count value of the bank corresponding to the memory access request is decremented;
The arithmetic processing apparatus according to claim 1.
複数のバンクを有する主記憶装置に接続される演算処理装置において、
メモリアクセス要求を発行する命令処理部と、
データを保持するキャッシュラインを複数有するキャッシュメモリと、
前記命令処理部が発行したメモリアクセス要求を投入する第1の要求保持部と、
キャッシュミスが発生したメモリアクセス要求を保持する第2の要求保持部と、
前記第1の要求保持部から投入されたメモリアクセス要求に基づき前記キャッシュメモリを検索し、キャッシュミスが発生したメモリアクセス要求を前記第2の要求保持部に保持するキャッシュ制御部と、
前記第2の要求保持部に保持されたメモリアクセス要求に基づき前記主記憶装置に対するメモリアクセス要求の数をバンク毎に計数するとともに、計数したいずれかのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持されたメモリアクセス要求の処理を中断させるアクセス計数部と、
前記第2の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行する主記憶制御部と、
を有することを特徴とする演算処理装置。
In an arithmetic processing unit connected to a main storage device having a plurality of banks,
An instruction processing unit for issuing a memory access request;
A cache memory having a plurality of cache lines for holding data;
A first request holding unit that inputs a memory access request issued by the instruction processing unit;
A second request holding unit for holding a memory access request in which a cache miss has occurred;
A cache control unit that searches the cache memory based on a memory access request input from the first request holding unit and holds a memory access request in which a cache miss has occurred in the second request holding unit;
Based on the memory access requests held in the second request holding unit, the number of memory access requests to the main storage device is counted for each bank, and the number of any memory access requests counted exceeds a predetermined value. An access counting unit that causes the cache control unit to suspend processing of a memory access request held in the first request holding unit;
A main storage control unit that issues a memory access request held in the second request holding unit to the main storage device;
An arithmetic processing apparatus comprising:
前記アクセス計数部は、さらに、
計数したメモリアクセス要求の数が所定値を超えたバンクに対するメモリアクセス要求の待機通知を前記第1の要求保持部に出力し、
前記第1の要求保持部は、
前記アクセス計数部が出力したメモリアクセス要求の待機通知に基づき、対応するバンクへのメモリアクセス要求の前記キャッシュ制御部への投入を抑止する、
ことを特徴とする請求項4記載の演算処理装置。
The access counting unit further includes:
Outputting a standby notification of a memory access request for a bank in which the number of counted memory access requests exceeds a predetermined value to the first request holding unit;
The first request holding unit includes:
Based on the standby notification of the memory access request output by the access counter, the memory access request to the corresponding bank is inhibited from being input to the cache controller.
The arithmetic processing apparatus according to claim 4, wherein:
前記アクセス計数部は、
前記キャッシュ制御部が、前記第2の要求保持部に前記メモリアクセス要求を保持した場合、前記メモリアクセス要求に対応するバンクの計数値をプラス1し、
前記主記憶制御部が、前記第2の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行した場合、前記メモリアクセス要求に対応するバンクの計数値を減分する、
ことを特徴とする請求項4記載の演算処理装置。
The access counter is
When the cache control unit holds the memory access request in the second request holding unit, the count value of the bank corresponding to the memory access request is incremented by 1,
When the main storage control unit issues a memory access request held in the second request holding unit to the main storage device, the count value of the bank corresponding to the memory access request is decremented;
The arithmetic processing apparatus according to claim 4, wherein:
複数のバンクを有する主記憶装置と、前記主記憶装置に接続される演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
メモリアクセス要求を発行する命令処理部と、
データを保持するキャッシュラインを複数有するキャッシュメモリと、
前記命令処理部が発行したメモリアクセス要求を投入する第1の要求保持部と、
キャッシュミスが発生したメモリアクセス要求を保持する第2の要求保持部と、
前記第1の要求保持部から投入されたメモリアクセス要求に基づき前記キャッシュメモリを検索し、キャッシュミスが発生したメモリアクセス要求を前記第2の要求保持部に保持するキャッシュ制御部と、
前記第2の要求保持部に保持されたメモリアクセス要求のうち、処理が中断されなかったメモリアクセス要求を保持する第3の要求保持部と、
前記第2の要求保持部と前記第3の要求保持部に保持されたメモリアクセス要求に基づき、前記主記憶装置に対するメモリアクセス要求の数をバンク毎に計数し、計数したいずれかのバンクのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持されたメモリアクセス要求の処理を中断させるアクセス計数部と、
前記第3の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行する主記憶制御部と、
を有することを特徴とする情報処理装置。
In an information processing apparatus having a main storage device having a plurality of banks and an arithmetic processing device connected to the main storage device,
The arithmetic processing unit includes:
An instruction processing unit for issuing a memory access request;
A cache memory having a plurality of cache lines for holding data;
A first request holding unit that inputs a memory access request issued by the instruction processing unit;
A second request holding unit for holding a memory access request in which a cache miss has occurred;
A cache control unit that searches the cache memory based on a memory access request input from the first request holding unit and holds a memory access request in which a cache miss has occurred in the second request holding unit;
Of the memory access requests held in the second request holding unit, a third request holding unit holding a memory access request whose processing has not been interrupted;
Based on the memory access requests held in the second request holding unit and the third request holding unit, the number of memory access requests to the main storage device is counted for each bank, and the memory in any of the counted banks An access counter that interrupts the processing of the memory access request held in the first request holding unit when the number of access requests exceeds a predetermined value;
A main storage control unit that issues a memory access request held in the third request holding unit to the main storage device;
An information processing apparatus comprising:
複数のバンクを有する主記憶装置と、前記主記憶装置に接続される演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
メモリアクセス要求を発行する命令処理部と、
データを保持するキャッシュラインを複数有するキャッシュメモリと、
前記命令処理部が発行したメモリアクセス要求を投入する第1の要求保持部と、
キャッシュミスが発生したメモリアクセス要求を保持する第2の要求保持部と、
前記第1の要求保持部から投入されたメモリアクセス要求に基づき前記キャッシュメモリを検索し、キャッシュミスが発生したメモリアクセス要求を前記第2の要求保持部に保持するキャッシュ制御部と、
前記第2の要求保持部に保持されたメモリアクセス要求に基づき前記主記憶装置に対するメモリアクセス要求の数をバンク毎に計数するとともに、計数したいずれかのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持されたメモリアクセス要求の処理を中断させるアクセス計数部(401)と、
前記第2の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行する主記憶制御部と、
を有することを特徴とする情報処理装置。
In an information processing apparatus having a main storage device having a plurality of banks and an arithmetic processing device connected to the main storage device,
The arithmetic processing unit includes:
An instruction processing unit for issuing a memory access request;
A cache memory having a plurality of cache lines for holding data;
A first request holding unit that inputs a memory access request issued by the instruction processing unit;
A second request holding unit for holding a memory access request in which a cache miss has occurred;
A cache control unit that searches the cache memory based on a memory access request input from the first request holding unit and holds a memory access request in which a cache miss has occurred in the second request holding unit;
Based on the memory access requests held in the second request holding unit, the number of memory access requests to the main storage device is counted for each bank, and the number of any memory access requests counted exceeds a predetermined value. An access counting unit (401) for causing the cache control unit to interrupt the processing of the memory access request held in the first request holding unit;
A main storage control unit that issues a memory access request held in the second request holding unit to the main storage device;
An information processing apparatus comprising:
複数のバンクを有する主記憶装置に接続されるとともに、データを保持するキャッシュラインを複数有するキャッシュメモリを有する演算処理装置の制御方法において、
前記演算処理装置が有する命令処理部が、メモリアクセス要求を発行し、
前記演算処理装置が有するキャッシュ制御部が、前記命令処理部が発行したメモリアクセス要求を、前記演算処理装置が有する第1の要求保持部に保持し、
前記キャッシュ制御部が、前記第1の要求保持部から投入されたメモリアクセス要求に基づき前記キャッシュメモリを検索し、
前記キャッシュ制御部が、キャッシュミスが発生したメモリアクセス要求を、前記演算処理装置が有する第2の要求保持部に保持し、
前記キャッシュ制御部が、前記第2の要求保持部に保持されたメモリアクセス要求を、前記演算処理装置が有する第3の要求保持部に保持し、
前記演算処理装置が有するアクセス計数部が、前記第2の要求保持部と前記第3の要求保持部に保持されたメモリアクセス要求に基づき前記主記憶装置に対するメモリアクセス要求の数をバンク毎に計数するとともに、計数したいずれかのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持されたメモリアクセス要求の処理を中断させ、
前記キャッシュ制御部が、前記第3の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行する、
ことを特徴とする演算処理装置の制御方法。
In a control method of an arithmetic processing unit having a cache memory connected to a main storage device having a plurality of banks and having a plurality of cache lines for holding data,
The instruction processing unit included in the arithmetic processing unit issues a memory access request,
A cache control unit included in the arithmetic processing unit holds a memory access request issued by the instruction processing unit in a first request holding unit included in the arithmetic processing unit;
The cache control unit searches the cache memory based on a memory access request input from the first request holding unit;
The cache control unit holds a memory access request in which a cache miss has occurred in a second request holding unit of the arithmetic processing unit;
The cache control unit holds the memory access request held in the second request holding unit in a third request holding unit included in the arithmetic processing unit;
The access counting unit included in the arithmetic processing unit counts the number of memory access requests to the main storage device for each bank based on the memory access requests held in the second request holding unit and the third request holding unit. And if the number of memory access requests counted exceeds a predetermined value, the cache control unit is suspended from processing the memory access request held in the first request holding unit,
The cache control unit issues a memory access request held in the third request holding unit to the main storage device;
A control method for an arithmetic processing unit.
前記演算処理装置の制御方法において、
前記アクセス計数部は、
計数したメモリアクセス要求の数が所定値を超えたバンクに対するメモリアクセス要求の待機通知を前記第1の要求保持部に出力し、
前記第1の要求保持部は、前記アクセス計数部が出力したメモリアクセス要求の待機通知に基づき、対応するバンクへのメモリアクセス要求の前記キャッシュ制御部への投入を抑止する、
ことを特徴とする請求項9記載の演算処理装置の制御方法。
In the control method of the arithmetic processing unit,
The access counter is
Outputting a standby notification of a memory access request for a bank in which the number of counted memory access requests exceeds a predetermined value to the first request holding unit;
The first request holding unit suppresses the memory access request to the corresponding bank from being input to the cache control unit based on the standby notification of the memory access request output by the access counting unit.
The method of controlling an arithmetic processing unit according to claim 9.
前記演算処理装置の制御方法において、
前記アクセス計数部は、
前記キャッシュ制御部が、前記第2の要求保持部に前記メモリアクセス要求を保持した場合に、前記メモリアクセス要求に対応するバンクの計数値を増分し、
前記主記憶制御部が、前記第3の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行した場合に、前記メモリアクセス要求に対応するバンクの計数値を減分する、
ことを特徴とする請求項9記載の演算処理装置の制御方法。
In the control method of the arithmetic processing unit,
The access counter is
When the cache control unit holds the memory access request in the second request holding unit, it increments the count value of the bank corresponding to the memory access request,
When the main storage control unit issues a memory access request held in the third request holding unit to the main storage device, the count value of the bank corresponding to the memory access request is decremented;
The method of controlling an arithmetic processing unit according to claim 9.
複数のバンクを有する主記憶装置と、前記主記憶装置に接続される演算処理装置とを有する情報処理装置の制御方法において、
前記演算処理装置が有する命令処理部が、メモリアクセス要求を発行し、
前記演算処理装置が有するキャッシュ制御部が、前記命令処理部が発行したメモリアクセス要求を前記演算処理装置が有する第1の要求保持部に保持し、
前記キャッシュ制御部が、前記第1の要求保持部から投入されたメモリアクセス要求に基づき、前記キャッシュメモリを検索し、
前記キャッシュ制御部が、キャッシュミスが発生したメモリアクセス要求を、前記演算処理装置が有する第2の要求保持部に保持し、
前記演算処理装置が有するアクセス計数部が、前記第2の要求保持部と保持されたメモリアクセス要求に基づき前記主記憶装置に対するメモリアクセス要求の数をバンク毎に計数するとともに、計数したいずれかのメモリアクセス要求の数が所定値を超えた場合、前記キャッシュ制御部に前記第1の要求保持部に保持されたメモリアクセス要求の処理を中断させ、
前記キャッシュ制御部が、前記アクセス中断指示に基づき、前記第1の要求保持部に保持されたメモリアクセス要求の処理を中断し、
前記キャッシュ制御部が、前記第2の要求保持部に保持されたメモリアクセス要求を前記主記憶装置に発行する、
ことを特徴とする情報処理装置の制御方法。
In a control method of an information processing apparatus having a main storage device having a plurality of banks and an arithmetic processing device connected to the main storage device,
The instruction processing unit included in the arithmetic processing unit issues a memory access request,
A cache control unit included in the arithmetic processing unit holds a memory access request issued by the instruction processing unit in a first request holding unit included in the arithmetic processing unit;
The cache control unit searches the cache memory based on a memory access request input from the first request holding unit;
The cache control unit holds a memory access request in which a cache miss has occurred in a second request holding unit of the arithmetic processing unit;
The access counting unit included in the arithmetic processing unit counts the number of memory access requests to the main storage device for each bank based on the memory access request held with the second request holding unit, and When the number of memory access requests exceeds a predetermined value, the cache control unit is interrupted to process the memory access requests held in the first request holding unit,
The cache control unit interrupts processing of the memory access request held in the first request holding unit based on the access interruption instruction;
The cache control unit issues a memory access request held in the second request holding unit to the main storage device;
A method for controlling an information processing apparatus.
JP2013520387A 2011-06-17 2011-06-17 Arithmetic processing device, information processing device, and control method of arithmetic processing device Ceased JPWO2012172683A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013520387A JPWO2012172683A1 (en) 2011-06-17 2011-06-17 Arithmetic processing device, information processing device, and control method of arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013520387A JPWO2012172683A1 (en) 2011-06-17 2011-06-17 Arithmetic processing device, information processing device, and control method of arithmetic processing device

Publications (1)

Publication Number Publication Date
JPWO2012172683A1 true JPWO2012172683A1 (en) 2015-02-23

Family

ID=52687719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013520387A Ceased JPWO2012172683A1 (en) 2011-06-17 2011-06-17 Arithmetic processing device, information processing device, and control method of arithmetic processing device

Country Status (1)

Country Link
JP (1) JPWO2012172683A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02259944A (en) * 1988-12-23 1990-10-22 Internatl Business Mach Corp <Ibm> Memory load dispersion
US20030051108A1 (en) * 1999-06-02 2003-03-13 Chen Jason Chung-Shih Method and apparatus for load distribution across memory banks with constrained access
US20060026342A1 (en) * 2004-07-27 2006-02-02 International Business Machines Corporation DRAM access command queuing structure
JP2009205573A (en) * 2008-02-29 2009-09-10 Nec Computertechno Ltd Buffer controller and buffer control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02259944A (en) * 1988-12-23 1990-10-22 Internatl Business Mach Corp <Ibm> Memory load dispersion
US20030051108A1 (en) * 1999-06-02 2003-03-13 Chen Jason Chung-Shih Method and apparatus for load distribution across memory banks with constrained access
US20060026342A1 (en) * 2004-07-27 2006-02-02 International Business Machines Corporation DRAM access command queuing structure
JP2009205573A (en) * 2008-02-29 2009-09-10 Nec Computertechno Ltd Buffer controller and buffer control method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6011049561; 近藤正章 外2名: 'トラクションコントロール実行: CMP向け実行制御方式の検討' 情報処理学会研究報告 Vol. 2007, No. 79 (2007-ARC-174), 20070803, p. 79-84, 社団法人情報処理学会 *
JPN6011049562; Kyle J. Nesbit 外3名: 'Fair Queuing Memory Systems' Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture IEEE Computer Society, 20061213, p. 208-222, IEEE Computer so *

Similar Documents

Publication Publication Date Title
US10248570B2 (en) Methods, systems and apparatus for predicting the way of a set associative cache
US8667225B2 (en) Store aware prefetching for a datastream
US6230260B1 (en) Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
US8082420B2 (en) Method and apparatus for executing instructions
US20060143390A1 (en) Fair sharing of a cache in a multi-core/multi-threaded processor by dynamically partitioning of the cache
US20120260056A1 (en) Processor
US20070143581A1 (en) Superscalar data processing apparatus and method
US9213640B2 (en) Promoting transactions hitting critical beat of cache line load requests
US6963962B2 (en) Memory system for supporting multiple parallel accesses at very high frequencies
US8639889B2 (en) Address-based hazard resolution for managing read/write operations in a memory cache
US6321328B1 (en) Processor having data buffer for speculative loads
US8190825B2 (en) Arithmetic processing apparatus and method of controlling the same
EP2905707B1 (en) Arithmetic processing apparatus and control method therefor
US6237064B1 (en) Cache memory with reduced latency
WO2005088454A2 (en) Processing pipeline with progressive cache
JP2007207248A (en) Method for command list ordering after multiple cache misses
US20040186960A1 (en) Computer processor data prefetch unit
JP2011013864A (en) Instruction controller, instruction control method and arithmetic circuit
WO2012172683A1 (en) Arithmetic processing unit, information processing device, and arithmetic processing unit control method
US7461211B2 (en) System, apparatus and method for generating nonsequential predictions to access a memory
JP5630568B2 (en) Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
JPH06202951A (en) Cash memory system
JPWO2012172683A1 (en) Arithmetic processing device, information processing device, and control method of arithmetic processing device
US20050015552A1 (en) System for supporting unlimited consecutive data stores into a cache memory

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141118

A045 Written measure of dismissal of application

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20150324