JP2023056289A - 演算処理装置および演算処理方法 - Google Patents

演算処理装置および演算処理方法 Download PDF

Info

Publication number
JP2023056289A
JP2023056289A JP2021165561A JP2021165561A JP2023056289A JP 2023056289 A JP2023056289 A JP 2023056289A JP 2021165561 A JP2021165561 A JP 2021165561A JP 2021165561 A JP2021165561 A JP 2021165561A JP 2023056289 A JP2023056289 A JP 2023056289A
Authority
JP
Japan
Prior art keywords
tag
address
unit
cache
determination unit
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.)
Pending
Application number
JP2021165561A
Other languages
English (en)
Inventor
毅 葛
Ge Yi
正裕 五島
Masahiro Goshima
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
Research Organization of Information and Systems
Original Assignee
Fujitsu Ltd
Research Organization of Information and Systems
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, Research Organization of Information and Systems filed Critical Fujitsu Ltd
Priority to JP2021165561A priority Critical patent/JP2023056289A/ja
Priority to US17/893,333 priority patent/US11829293B2/en
Priority to CN202211084268.9A priority patent/CN115952112A/zh
Publication of JP2023056289A publication Critical patent/JP2023056289A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement

Abstract

【課題】複数のバンクを含むキャッシュのキャッシュヒットを判定する判定部のサイズのキャッシュのサイズに対する比率を低減する。【解決手段】演算処理装置は、記憶装置から読み出されるデータを分割して保持する複数のバンクを含むデータアレイと、第2判定部と、第2判定部の判定結果に基づいてキャッシュまたは記憶装置にアクセスするキャッシュ制御部とを有する。第2判定部は、タグアドレスに含まれる第1タグアドレスを識別する識別情報とタグアドレスに含まれる第2タグアドレスとをインデックスアドレスの値毎に保持する第2保持部を有し、アクセスアドレスに含まれる第1タグアドレスに対応する識別情報およびアクセスアドレスに含まれる第2タグアドレスが、インデックスアドレスに対応して第2保持部に保持される識別情報および第2タグアドレスと一致する場合にキャッシュヒットを判定する。【選択図】図1

Description

本発明は、演算処理装置および演算処理方法に関する。
CPU(Central Processing Unit)等の演算処理装置に搭載されるキャッシュは、メインメモリに記憶されたデータの一部を保持する。そして、キャッシュは、演算部から発行されるメモリアクセス要求の対象データを保持している場合(キャッシュヒット)、メインメモリにメモリアクセス要求を発行することなく、キャッシュに保持しているデータを演算部に転送する。これにより、データのアクセス効率が向上し、CPUの処理性能が向上する。
キャッシュは、データを保持するデータアレイと、アクセス対象のデータがデータアレイに保持されているか否かを判定するタグアレイとを含む(例えば、特許文献1参照)。例えば、高性能なプロセッサは、複数のウェイをそれぞれ含む階層化されたキャッシュを有する(例えば、特許文献2参照)。また、プロセッサは、キャッシュのスループットを向上させるために、複数のバンクを有する場合がある(例えば、特許文献3参照)。
特表2007-504552号公報 特表2020-536308号公報 特開平08-320829号公報
例えば、キャッシュにおける管理の単位である1キャッシュラインのデータが、複数に分割されてキャッシュの複数のバンクに保持される場合、バンクの数が増えるほど、タグアレイの数は増え、1キャッシュラインのデータに対するタグアレイのビット数の比率が増える。また、SIMD(Single Instruction Multiple Data)演算命令を実行可能な演算処理装置では、キャッシュのバンク数も増える傾向にある。
1つの側面では、本発明は、複数のバンクを含むキャッシュのキャッシュヒットを判定する判定部のサイズのキャッシュのサイズに対する比率を低減することを目的とする。
一つの観点によれば、演算処理装置は、記憶装置にメモリアクセス要求を発行する複数の要求発行部と、前記メモリアクセス要求に基づいて前記記憶装置から読み出されるデータを分割したサブデータをそれぞれ保持可能な複数のバンクを含むデータアレイと、前記メモリアクセス要求を前記複数のバンクのいずれかに転送するスイッチ部と、前記メモリアクセス要求に含まれるアクセスアドレス中のインデックスアドレスの値毎に、前記アクセスアドレスに含まれるタグアドレスを保持する第1保持部を有し、前記アクセスアドレスに含まれるタグアドレスが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第1保持部に保持されるタグアドレスと一致する場合にキャッシュヒットを判定する少なくとも1つの第1判定部と、タグアドレスに含まれる第1タグアドレスを識別する識別情報とタグアドレスに含まれる第2タグアドレスとを、インデックスアドレスの値毎に保持する第2保持部を有し、前記アクセスアドレスに含まれる第1タグアドレスに対応する識別情報および前記アクセスアドレスに含まれる第2タグアドレスが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第2保持部に保持される識別情報および第2タグアドレスと一致する場合にキャッシュヒットを判定する少なくとも1つの第2判定部と、前記第1判定部または前記第2判定部の判定結果に基づいて、前記キャッシュまたは前記記憶装置にアクセスするキャッシュ制御部と、を有する。
複数のバンクを含むキャッシュのキャッシュヒットを判定する判定部のサイズのキャッシュのサイズに対する比率を低減することができる。
一実施形態における演算処理装置の一例を示すブロック図である。 図1のキャッシュに保持されるデータの一例を示す説明図である。 図1のキャッシュに保持されるデータの別の例を示す説明図である。 図1の演算処理装置のメモリアクセス動作の一例を示すフロー図である。 別の実施形態における演算処理装置の一例を示すブロック図である。 図5のサブタグ部の一例を示すブロック図である。 図5の演算処理装置のメモリアクセス動作の一例を示すフロー図である。 別の実施形態の演算処理装置におけるサブタグ部の一例を示すブロック図である。 別の実施形態における演算処理装置の一例を示すブロック図である。 図9のロードストアユニットでのアドレス計算の一例を示す説明図である。 別の実施形態におけるメインタグ部とサブタグ部の構成例を示すブロック図である。 別の実施形態におけるメインタグ部とサブタグ部の構成例を示すブロック図である。 さらなる別の実施形態におけるメインタグ部とサブタグ部の構成例を示すブロック図である。 図12の構成例4における演算処理装置の一例を示すブロック図である。 別の実施形態の演算処理装置におけるメインタグ部とサブタグ部の一例を示すブロック図である。 キャッシュの構造毎のタグアレイ/データアレイ比の例を示す説明図である。 タグアレイキャッシュを設ける場合のタグアレイ/データアレイ比の向上効果の一例を示す説明図である。
以下、図面を参照して、実施形態が説明される。
図1は、一実施形態における演算処理装置の一例を示す。図1に示す演算処理装置100は、例えば、SIMD(Single Instruction Multiple Data)演算命令を使用して演算を実行するCPU等のプロセッサである。演算処理装置100は、SIMD演算命令を使用することで、複数の積和演算等を並列に実行することができる。
演算処理装置100は、m+1個(mは1以上の整数)のロードストアユニットLDST(LDST#0-LDST#m)と、メインメモリ50に接続されるキャッシュ60とを有する。ロードストアユニットLDSTは、メインメモリ50にメモリアクセス要求を発行する要求発行部の一例である。メインメモリ50は、記憶装置の一例である。キャッシュ60は、ロードストアユニットLDSTに対して、メインメモリ50に記憶されるデータの一部を保持するL1(Level 1)データキャッシュとして動作する。
キャッシュ60は、調停部10、スイッチ部20、1個のメインタグ部MTAG、n個(nは1以上の整数)のサブタグ部STAG(STAG#0-STAG#n)、データアレイ30およびキャッシュ制御部40を有する。キャッシュ制御部40は、キャッシュ60の全体の動作を制御する。なお、キャッシュ制御部40は、キャッシュ60の外に配置されてもよい。メインタグ部MTAGは、第1判定部の一例であり、サブタグ部STAGは、第2判定部の一例である。
データアレイ30は、メインタグ部MTAGおよびサブタグ部STAGのそれぞれに対応するn+1個のバンクBK(BK#0-BK#n)を有する。データアレイ30を複数のバンクBKに分けることで、いわゆるギャザー/スキャッター性能を向上することができる。
また、キャッシュ60は、L2(Level 2)キャッシュ等の下位のキャッシュを介してメインメモリ50に接続されてもよい。キャッシュ60は、最小で2個のバンクBK#0、BK#1を有してもよい。この場合、キャッシュ60は、1個のメインタグ部MTAGと1個のサブタグ部STAGとを有する。
演算処理装置100は、図示しない命令フェッチ部、命令デコード部、リザベーションステーション、各種演算器を含む演算ユニットおよびレジスタファイル等を有する。図1では、主にメモリアクセスに関係するブロックが示される。例えば、命令フェッチ部、命令デコード部、リザベーションステーション、各種演算器を含む演算ユニット、レジスタファイルおよびロードストアユニットLDSTは、図示しないCPUコアに含まれる。
ロードストアユニットLDSTは、ロード命令を実行する場合、スイッチ部20を介してアドレスADで示されるバンクBKに向けてメモリアクセス要求を出力し、スイッチ部20を介してバンクBKから読み出しデータを受ける。アドレスADは、タグアドレスTAG、インデックスアドレスIDX、オフセットアドレスおよびバンクアドレスBAを含む。アドレスADは、メモリアクセス要求に含まれるアクセスアドレスの一例である。ロード命令に対応して発行されるメモリアクセス要求は、アクセス対象のアドレスADと読み出し要求を示す読み出し制御情報とを含む。
ロードストアユニットLDSTは、ストア命令を実行する場合、スイッチ部20を介してアドレスADで示されるバンクBKに向けてメモリアクセス要求を出力する。ストア命令に対応して発行されるメモリアクセス要求は、アクセス対象のアドレスADと書き込みデータと書き込み要求を示す書き込み制御情報とを含む。
m+1個のロードストアユニットLDSTは、互いに独立にロード命令またはストア命令を受け、互いに独立にメモリアクセス要求を出力する。このため、1個のバンクBKに対するメモリアクセス要求が競合する場合がある。調停部10は、メモリアクセス要求が競合する場合、メモリアクセス要求の1つを選択する。以下、この実施形態および後述する実施形態では、ロード命令を実行するロードストアユニットLDSTがメモリアクセス要求(読み出し要求)を発行する例が説明される。
スイッチ部20は、メモリアクセス要求に含まれるバンクアドレスBAが示すバンクBKにメモリアクセス要求を出力する。スイッチ部20は、ロード命令に対するメモリアクセス要求を出力したバンクBKから読み出しデータDTを受け、受けた読み出しデータDTをメモリアクセス要求の発行元のロードストアユニットLDSTに出力する。
メインタグ部MTAGは、タグアレイTGAおよびコンパレータCMP1を有する。タグアレイTGAは、第1保持部の一例である。タグアレイTGAは、インデックスアドレスIDXの値毎にタグアドレスTAGを保持する複数のエントリを有する。例えば、インデックスアドレスIDXが10ビットの場合、タグアレイTGAは、1024個のエントリを有する。タグアレイTGAは、スイッチ部20から受けるインデックスアドレスIDXに対応するエントリに保持されたタグアドレスTAGをコンパレータCMP1に出力する。
コンパレータCMP1は、タグアレイTGAから出力されるタグアドレスTAGと、スイッチ部20から出力されるタグアドレスTAGとを比較する。コンパレータCMP1は、タグアドレスTAGが互いに一致する場合、アクティブレベルのヒット信号HITを出力する(キャッシュヒット)。コンパレータCMP1は、タグアドレスTAGが互いに一致しない場合、インアクティブレベルのヒット信号HITを出力する(キャッシュミス)。
キャッシュヒットは、メモリアクセス要求のアクセス対象のデータがデータアレイ30のアクセス対象のバンクBKに保持されていることを示す。キャッシュミスは、メモリアクセス要求のアクセス対象のデータがデータアレイ30のアクセス対象のバンクBKに保持されていないことを示す。この場合、キャッシュ60は、アクセス対象のデータをメインメモリ50から読み出す。
サブタグ部STAGは、タグ変換部TCNV、タグアレイキャッシュTGACおよびコンパレータCMP2を有する。タグ変換部TCNVは、第3保持部の一例であり、タグアレイキャッシュTGACは、第2保持部の一例である。タグ変換部TCNVは、識別情報IDにより識別可能な複数のエントリを有する。例えば、識別情報IDが2ビットの場合、タグ変換部TCNVは、4個のエントリを有する。タグ変換部TCNVのエントリの数は、タグアレイキャッシュTGACのエントリの数より少ない。
タグ変換部TCNVの各エントリには、タグアドレスTAGのビットの一部である第1タグアドレスTAG1が格納される。タグ変換部TCNVは、エントリのいずれかにメモリアクセス要求に含まれる第1タグアドレスTAG1を保持している場合、エントリの識別情報IDをコンパレータCMP2に出力する。このように、タグ変換部TCNVは、受けた第1タグアドレスTAG1を保持するエントリを示す識別情報IDを出力するCAM(Content Addressable Memory)として機能する。なお、第1タグアドレスTAG1と、第1タグアドレスTAG1を識別する識別情報IDとの対応付けができれば、タグ変換部TCNV以外の要素がサブタグ部STAGに設けられてもよい。
タグアレイキャッシュTGACは、インデックスアドレスIDXの値毎に、識別情報IDと第2タグアドレスTAG2とを保持する複数のエントリを有する。第2タグアドレスTAG2は、タグアドレスTAGのうち、第1タグアドレスTAG1のビットと異なるビットで示される。例えば、タグアドレスTAGは、第1タグアドレスTAG1のビットと第2タグアドレスTAG2のビットを連結したものである。タグアレイキャッシュTGACは、スイッチ部20から出力されるインデックスアドレスIDXに対応するエントリに保持された識別情報IDおよび第2タグアドレスTAG2をコンパレータCMP2に出力する。
コンパレータCMP2は、タグ変換部TCNVから出力される識別情報IDとタグアレイキャッシュTGACから出力される識別情報IDとを比較する。また、コンパレータCMP2は、スイッチ部20から出力される第2タグアドレスTAG2とタグアレイキャッシュTGACから出力される第2タグアドレスTAG2とを比較する。
コンパレータCMP2は、識別情報ID同士が一致し、かつ、第2タグアドレスTAG2同士が一致する場合、アクティブレベルのヒット信号HITを出力する(キャッシュヒット)。コンパレータCMP2は、識別情報ID同士または第2タグアドレスTAG2同士の少なくとも一方が一致しない場合、インアクティブレベルのヒット信号HITを出力する(キャッシュミス)。
サブタグ部STAGのキャッシュヒットは、メインタグ部MTAGのキャッシュヒットと同様に、メモリアクセス要求のアクセス対象のデータがデータアレイ30のアクセス対象のバンクBKに保持されていることを示す。サブタグ部STAGのキャッシュミスは、メインタグ部MTAGのキャッシュヒットと同様に、メモリアクセス要求のアクセス対象のデータがアクセス対象のデータアレイ30のバンクBKに保持されていないことを示す。
例えば、タグアドレスTAGが36ビット、第1タグアドレスTAG1が28ビット、第2タグアドレスTAG2が8ビット、識別情報IDが2ビット、インデックスアドレスIDXが10ビットであるとする。この場合、タグアレイキャッシュTGACの記憶領域を、タグアレイTGAの記憶領域に比べて約26キロビット少なくすることができる((28-2)*1024;符号*は乗算を示す)。タグ変換部TCNVの記憶領域は、120ビットである((28+2)*4)。
また、コンパレータCMP1は、36ビットのタグアドレスTAGを比較するのに対して、コンパレータCMP2は、10ビット(2ビットの識別情報IDおよび8ビットの第2タグアドレスTAG2)を比較する。このため、サブタグ部STAGの回路規模は、メインタグ部MTAGの回路規模より小さくなる。したがって、演算処理装置100は、メインタグ部MTAGをバンクBK毎に設ける場合に比べて、キャッシュヒットを判定する判定回路の規模を小さくできる。この結果、メインタグ部MTAGをバンクBK毎に設ける演算処理装置に比べて、演算処理装置100の製造コスト等を削減することができる。
各バンクBKは、インデックスアドレスIDXの値毎にサブデータSDTを保持する複数のエントリを有する。ここで、サブデータSDTは、キャッシュラインサイズをバンクBKの数で除したサイズを有する。サブデータSDTのサイズについては、図2および図3で説明される。
各バンクBKは、キャッシュヒット時に、キャッシュ制御部40による制御に基づいて、メモリアクセス要求に含まれるインデックスアドレスIDXに対応するエントリに保持しているサブデータSDTをスイッチ部20に出力する。各バンクBKは、キャッシュミス時に、キャッシュ制御部40による制御に基づいて、メインメモリ50から読み出される1キャッシュライン分のデータDTのうちの対応するサブデータSDTをインデックスアドレスIDXに対応するエントリに保持する。
キャッシュ制御部40は、メインタグ部MTAGおよびサブタグ部STAGからヒット信号HITを受け、上述したようにキャッシュ60を制御する。キャッシュ制御部40は、バンクBKとメインメモリ50との間のデータ転送を実行する。また、キャッシュ制御部40は、各バンクBKに保持されたサブデータが更新されている場合、キャッシュミス時に、サブデータをメインメモリ50に書き戻す。
なお、図1では、ダイレクトマップ方式のキャッシュ60が示されるが、複数のウェイを有するセットアソシアティブ方式のキャッシュが適用されてもよい。この場合、タグアレイTGAおよびタグアレイキャッシュTGACもウェイ数に対応する数に区画される。以下に示す実施形態においてもダイレクトマップ方式のキャッシュ60が示されるが、セットアソシアティブ方式のキャッシュが適用されてもよい。
図2および図3は、図1のキャッシュ60に保持されるデータの一例を示す。図2および図3では、演算処理装置100は、4個のバンクBK#0-BK#3を有する。各バンクBK#0-BK#3は、インデックスアドレスIDXで識別されるエントリ毎に64ビットのサブデータSDTを保持する。
図2は、バンクBK#0-BK#3において、インデックスアドレスIDXで示される1個のエントリに含まれる4個のサブデータSDTが1個のキャッシュラインCLに対応する。図2に示す例では、キャッシュラインCLのデータサイズは、256ビットである。この場合、図1のキャッシュ制御部40は、メインメモリ50からキャッシュ60にデータを転送するキャッシュフィルを実行する。キャッシュフィルでは、キャッシュラインCLに含まれるサブデータSDTが、各バンクBK#0-BK#3においてインデックスアドレスIDXが共通のエントリにアドレスAD順に格納される。また、キャッシュ制御部40は、キャッシュ60からメインメモリ50にデータを転送するライトバックを実行する。ライトバックでは、各バンクBK#0-BK#3においてインデックスアドレスIDXが共通のエントリに保持された4個のサブデータSDTが、メインメモリ50にアドレス順に格納される。
図3は、4個のバンクBK#0-BK#3において、連続する2個のインデックスアドレスIDXで示される2個のエントリに含まれる8個のサブデータSDTが1個のキャッシュラインCLに対応する。図3に示す例では、キャッシュラインCLのデータサイズは、512ビットである。この場合、キャッシュ制御部40は、キャッシュフィルを実行する。キャッシュフィルでは、2個のキャッシュラインCLに含まれるサブデータSDTを、各バンクBK#0-BK#3において、連続する2個のインデックスアドレスIDXで示される2個のエントリにアドレスAD順に格納する。また、キャッシュ制御部40は、ライトバックにおいて、各バンクBK#0-BK#3において、連続する2個のインデックスアドレスIDXで示される2個のエントリに保持された8個のサブデータSDTを、メインメモリ50にアドレス順に格納する。
なお、例えば、キャッシュ60が64ビット幅の4個のバンクBKを有し、キャッシュラインCLのサイズが1024ビットの場合、キャッシュ制御部40は、バンクBK毎に4個のエントリに対して、キャッシュフィルおよびライトバックを実行する。キャッシュ60が64ビット幅の8個のバンクBKを有し、キャッシュラインCLのサイズが1024ビットの場合、キャッシュ制御部40は、バンクBK毎に2個のエントリに対して、キャッシュフィルおよびライトバックを実行する。
図4は、図1の演算処理装置100のメモリアクセス動作の一例を示す。すなわち、図4は、演算処理装置100の演算処理方法の一例を示す。図4に示す動作は、複数のロードストアユニットLDSTの少なくともいずれかからロード命令に対応するメモリアクセス要求が発行されたことに基づいて、キャッシュ制御部40により実行される。
なお、複数のロードストアユニットLDSTから互いに異なるバンクBKに対するメモリアクセス要求がキャッシュヒットした場合、図4に示す動作は、アクセス対象のバンクBKのそれぞれで実行される。複数のロードストアユニットLDSTから互いに異なるバンクBKに対するメモリアクセス要求のいずれかがキャッシュミスした場合、キャッシュミスに伴うライトバックおよびライトバック後のキャッシュフィルは、全てのバンクBKで共通に実行される。
まず、ステップS10において、キャッシュ制御部40は、メモリアクセス要求がメインタグ部MTAGに対応するバンクBK(この例では、BK#0)を示すか否かをバンクアドレスBAを使用して判定する。キャッシュ制御部40は、メモリアクセス要求がメインタグ部MTAGに対応するバンクBKを示す場合、動作をステップS20に移行する。そして、キャッシュ制御部40は、ステップS20に含まれるステップS22、S24、S26、S28により、メインタグ部MTAGを使用したアクセス処理を実行する。
キャッシュ制御部40は、メモリアクセス要求がメインタグ部MTAGに対応するバンクBKを示さない場合、動作をステップS30に移行する。そして、キャッシュ制御部40は、ステップS30に含まれるステップS32、S34、S36、S38により、サブタグ部STAGを使用したアクセス処理を実行する。
ステップS22において、キャッシュ制御部40は、メモリアクセス要求に含まれるインデックスアドレスIDXに基づいてメインタグ部MTAGにアクセスし、タグアドレスTAGを読み出す。また、キャッシュ制御部40は、コンパレータCMP1にメモリアクセス要求に含まれるタグアドレスTAGとメインタグ部MTAGから読み出されたタグアドレスTAGとを比較させ、ヒット信号HITを出力させる。
次に、ステップS24において、キャッシュ制御部40は、コンパレータCMP1から出力されるヒット信号HITに基づいてメインタグ部MTAGにヒットしたか否かを判定する。キャッシュ制御部40は、メインタグ部MTAGにヒットした場合、動作をステップS26に移行し、メインタグ部MTAGにミスした場合、動作をステップS28に移行する。
ステップS26において、キャッシュ制御部40は、通常のキャッシュヒット処理を実行し、キャッシュヒットしたバンクBKから読み出したデータを、スイッチ部20を介して、メモリアクセス要求の発行元のロードストアユニットLDSTに出力する。そして、キャッシュ制御部40は、図4に示す動作を終了する。
ステップS28において、キャッシュ制御部40は、通常のキャッシュミス処理を実行する。すなわち、キャッシュ制御部40は、例えば、図2または図3に示したキャッシュフィル動作を実行し、各バンクBKに保持するデータを更新する。また、キャッシュ制御部40は、各バンクBKのデータの更新に応じて、メインタグ部MTAG、タグ変換部TCNVおよびタグアレイキャッシュTGACを更新する。なお、キャッシュ制御部40は、バンクBKのデータが更新されている場合、ライトバック動作を実行する。そして、キャッシュ制御部40は、図4に示す動作を終了する。
一方、ステップS32において、キャッシュ制御部40は、メモリアクセス要求に含まれるバンクアドレスBAが示すバンクBKに対応するサブタグ部STAGにアクセスする。キャッシュ制御部40は、メモリアクセス要求に含まれるタグアドレスTAG1に基づいてタグ変換部TCNVにアクセスし、識別情報IDを読み出す。また、キャッシュ制御部40は、メモリアクセス要求に含まれるインデックスアドレスIDXに基づいてタグアレイキャッシュTGACにアクセスし、識別情報IDおよびタグアドレスTAG2を読み出す。
そして、キャッシュ制御部40は、コンパレータCMP2にメモリアクセス要求に含まれるタグアドレスTAG2とタグアレイキャッシュTGACから読み出されたタグアドレスTAG2とを比較させる。また、キャッシュ制御部40は、コンパレータCMP2にタグ変換部TCNVから読み出された識別情報IDとタグアレイキャッシュTGACから読み出された識別情報IDとを比較させる。そして、キャッシュ制御部40は、コンパレータCMP2に比較結果に基づいてヒット信号HITを出力させる。
次に、ステップS34において、キャッシュ制御部40は、コンパレータCMP2から出力されるヒット信号HITに基づいてサブタグ部STAGにヒットしたか否かを判定する。キャッシュ制御部40は、サブタグ部STAGにヒットした場合、動作をステップS36に移行し、サブタグ部STAGにミスした場合、動作をステップS38に移行する。
ステップS36において、キャッシュ制御部40は、ステップS26と同様に通常のキャッシュヒット処理を実行し、図4に示す動作を終了する。ステップS38において、キャッシュ制御部40は、ステップS28と同様に通常のキャッシュミス処理を実行し、図4に示す動作を終了する。
以上、この実施形態では、演算処理装置100は、第1タグアドレスTAG1を識別する識別情報IDと第2タグアドレスTAG2とを保持するタグアレイキャッシュTGACによりバンクBKのキャッシュヒットを判定することができる。タグアレイキャッシュTGACのエントリのビット幅は、タグアレイTGAのエントリのビット幅より小さい。上述したように、タグ変換部TCNVとタグアレイキャッシュTGACとを有するサブタグ部STAGの回路規模は、タグアレイTGAを有するメインタグ部MTAGの回路規模より小さい。
このため、演算処理装置100は、メインタグ部MTAGより回路規模が小さいサブタグ部STAGを使用して、バンクBK#1-BK#nのキャッシュヒットを判定できる。換言すれば、演算処理装置100は、メインタグ部MTAGをバンクBK毎に設ける場合に比べて、キャッシュヒットを判定する判定回路の規模を小さくできる。この結果、メインタグ部MTAGをバンクBK毎に設ける演算処理装置に比べて、演算処理装置100の製造コスト等を削減することができる。
この実施形態では、スイッチ部20のバンクBK側に、各バンクBKに対応してメインタグ部MTAGまたはサブタグ部STAGが設けられる。スイッチ部20は、ロードストアユニットLDSTから出力されるアクセスアドレスに基づいて、アクセス対象のバンクBKを判定し、判定したバンクBKに対応するメインタグ部MTAGまたはサブタグ部STAGにアクセスアドレスを出力する。このため、メインタグ部MTAGまたはサブタグ部STAGから出力されるヒット信号HITは、バンクBKの情報を含んでいる。したがって、キャッシュ制御部40は、バンクアドレスBAを使用することなく、メインタグ部MTAGおよびサブタグ部STAGからのヒット信号HITに応じて、バンクBKの制御を実行することができる。
図5は、別の実施形態における演算処理装置の一例を示す。上述した実施形態と同様の要素については、同じ符号を付し、詳細な説明は省略する。図5に示す演算処理装置100Aは、例えば、SIMD演算命令を使用して、複数の積和演算等を並列に実行する機能を有するCPU等のプロセッサである。
演算処理装置100Aは、マルチプレクサMUX1を有すること、および図1のキャッシュ制御部40の代わりにキャッシュ制御部40Aを有することを除き、図1に示した演算処理装置100と同様の構成を有する。説明を簡単にするために、演算処理装置100Aは、4個のロードストアユニットLDST(LDST#0-LDST#3)と、3個のサブタグ部STAG(STAG#1-STAG#3)と、4個のバンクBK(BK#0-BK#3)を有するとする。この実施形態においても、ロードストアユニットLDSTからロード命令が発行される場合の例が説明される。
メインタグ部MTAGは、バンクBK#0に対応して設けられる。サブタグ部STAG#1-STAG#3は、バンクBK#1-BK#3にそれぞれ対応して設けられる。マルチプレクサMUX1は、スイッチ部20から出力されるメインタグ部MTAG用およびサブタグ部STAG用のアドレスADを受け、受けたアドレスADのいずれかをメインタグ部MTAGに出力する。
サブタグ部STAGは、タグ変換部TCNVがヒット信号HTI1を出力すること、およびマルチプレクサMUX2を有することを除き、図1のサブタグ部STAGと同様の構成である。各サブタグ部STAGのマルチプレクサMUX2は、コンパレータCMP2から出力されるヒット信号HIT2およびメインタグ部MTAGのコンパレータCMP1から出力されるヒット信号HITのいずれかを出力する。マルチプレクサMUX1、MUX2の動作は、キャッシュ制御部40Aにより制御される。
キャッシュ制御部40Aは、インアクティブレベルのヒット信号HIT1をタグ変換部TCNVのいずれかから受けた場合、仮のキャッシュミスを判定する。仮のキャッシュミスは、サブタグ部STAGのタグ変換部TCNVが判定したキャッシュミスであり、キャッシュヒットの可能性もある。
そして、キャッシュ制御部40Aは、マルチプレクサMUX1を制御し、仮のキャッシュミスを発生したサブタグ部STAGに供給されたアドレスADをメインタグ部MTAGに出力させる。これにより、キャッシュ制御部40Aは、仮のキャッシュミスを発生したサブタグ部STAGに対応するバンクBKのキャッシュヒット/キャッシュミスを、メインタグ部MTAGのタグアレイTGAを使用して判定することができる。
キャッシュ制御部40Aは、仮のキャッシュミスを発生したサブタグ部STAGのマルチプレクサMUX2に、タグ変換部TCNVのタグアレイTGAから出力されるヒット信号HITを選択させ、ヒット信号HIT2として出力させる。これにより、キャッシュ制御部40Aは、タグアレイTGAによる判定結果を利用して、仮のキャッシュミスを発生したサブタグ部STAGに対応するバンクBKの真のキャッシュヒット/キャッシュミスを判定できる。そして、キャッシュ制御部40Aは、判定結果に応じてキャッシュ60の動作を制御できる。なお、タグ変換部TCNVがインアクティブレベルのヒット信号HIT1を出力する場合、コンパレータCMP2が出力するヒット信号HITは常にインアクティブレベルを示す。
図6は、図5のサブタグ部STAGの一例を示す。図5のスイッチ部20が出力するアドレスADは、第1タグアドレスTAG1および第2タグアドレスTAG2を含むタグアドレスTAGとインデックスアドレスIDXとオフセットアドレスOFSと含む。オフセットアドレスOFSは、バンクBKを識別するバンクアドレスBA(例えば、2ビット)を含む。第1タグアドレスTAG1および第2タグアドレスTAG2には、動作説明のために符号aから符号fのいずれかが付加される。
例えば、タグ変換部TCNVは、識別情報IDで識別される4個のエントリENT1と、各エントリENT1に対応するコンパレータCMP3と、オア回路ORと、エンコーダENCとを有する。各エントリENT1には、キャッシュミスを判定したキャッシュ制御部40Aにより第1タグアドレスTAG1が格納される。
各コンパレータCMP3は、対応するエントリENT1に保持された第1タグアドレスTAG1と、メモリアクセス要求に含まれる第1タグアドレスTAG1とを比較し、比較結果をオア回路ORおよびエンコーダENCに出力する。例えば、各コンパレータCMP3は、比較結果が一致するときに論理1を出力する。
オア回路ORは、コンパレータCMP3のいずれかの出力が論理1のとき、ヒット信号HIT1をアクティブレベルに設定し、全てのコンパレータCMP3の出力が論理0のとき、ヒット信号HIT1をインアクティブレベルに設定する。
エンコーダENCは、論理1を出力するコンパレータCMP3に対応するエントリENT1の識別情報IDを出力する。換言すれば、エンコーダENCは、メモリアクセス要求に含まれる第1タグアドレスTAG1を保持するエントリENT1の識別情報IDを出力する。このように、タグ変換部TCNVは、CAMとして動作する。エンコーダENCが出力する識別情報IDおよびメモリアクセス要求に含まれる第2タグアドレスTAG2は、第1タグアドレスTAG1を符号化した縮小タグとしてコンパレータCMP2に出力される。
タグアレイキャッシュTGACは、インデックスアドレスIDXの値毎に第2タグアドレスTAG2と識別情報IDとを保持する複数のエントリENT2と、各エントリENT2に対応するコンパレータCMP4およびフラグFLGとを有する。各フラグFLGは、初期状態において、対応するエントリENT2の無効を示す論理0にリセットされている。各フラグFLGは、キャッシュ制御部40Aによりセットまたはリセットされる。各フラグFLGのセット状態(論理1)は、対応するエントリENT2が有効な第2タグアドレスTAG2および有効な識別情報IDを保持していることを示す。各フラグFLGのリセット状態(論理0)は、対応するエントリENT2が無効な第2タグアドレスTAG2または無効な識別情報IDを保持していることを示す。
各コンパレータCMP4は、エントリENT2に保持された識別情報IDが、セット信号SETとともにキャッシュ制御部40から出力される識別情報IDと一致する場合、対応するフラグFLGを論理1にセットする。各コンパレータCMP4は、エントリENT2に保持された識別情報IDが、リセット信号RESETとともにキャッシュ制御部40Aから出力される識別情報IDと一致する場合、対応するフラグFLGを論理0にリセットする。
タグアレイキャッシュTGACの各エントリENT2にフラグFLGを設けることで、キャッシュ制御部40Aは、第2タグアドレスTAG2または識別情報IDを書き換えることなく、フラグFLGのリセットのみでエントリENT2を無効にすることができる。これにより、誤ったヒット信号HIT2がキャッシュ制御部40Aに出力されることを簡易な制御で抑制することができる。
キャッシュ制御部40Aは、キャッシュミスに基づいて、図5のメインメモリ50から読み出されるサブデータSDT(キャッシュライン)で各バンクBK#0-BK#3を更新する。キャッシュ制御部40Aは、各バンクBK#0-BK#3の更新に対応して、図5のメインタグ部MTAGのタグアレイTGAを更新し、タグ変換部TCNVおよびタグアレイキャッシュTGACを更新する。キャッシュミス時のタグアレイTGAの動作は、通常のキャシュミス処理と同様のため、以下では、サブタグ部STAGの更新処理が説明される。
更新処理において、キャッシュ制御部40Aは、メモリアクセス要求に含まれる第1タグアドレスTAG1をエントリENT1のいずれかに格納する。キャッシュ制御部40Aは、第1タグアドレスTAG1を格納したエントリENT1の識別情報IDとリセット信号RESET信号とをコンパレータCMP4に出力する。キャッシュ制御部40Aは、コンパレータCMP4に出力した識別情報IDを保持するエントリENT2に対応するフラグFLGをリセットする。
キャッシュ制御部40Aは、メモリアクセス要求に含まれるインデックスアドレスIDXに対応するエントリENT2に、メモリアクセス要求に含まれる第2タグアドレスTAG2を格納する。また、キャッシュ制御部40Aは、第2タグアドレスTAG2を格納したエントリENT2に、第1タグアドレスTAG1を格納したエントリENT1の識別情報IDを格納する。そして、キャッシュ制御部40Aは、第1タグアドレスTAG1を格納したエントリENT1の識別情報IDとセット信号SETとをコンパレータCMP4に出力する。キャッシュ制御部40Aは、コンパレータCMP4に出力した識別情報IDを保持するエントリENT2に対応するフラグFLGをセットする。
図6に示すように、サブタグ部STAGのいずれかのタグ変換部TCNVの4個のエントリENT1に第1タグアドレスTAG1a、TAG1b、TAG1c、TAG1dが保持されているとする。また、タグアレイキャッシュTGACのエントリENT2に第2タグアドレスTAG2d、TAG2f、TAG2b、TAG2e、...、TAG2aが保持されているとする。
この状態で、サブタグ部STAGは、例えば、第1タグアドレスTAG1bおよび第2タグアドレスTAG2bを含むメモリアクセス要求を受ける。メモリアクセス要求に含まれるインデックスアドレスIDXに対応するエントリENT2には、第2タグアドレスTAG2bおよび識別情報ID="01"が保持されており、対応するフラグFLGは論理1であるとする。
タグ変換部TCNVは、メモリアクセス要求に含まれる第1タグアドレスTAG1bを保持しているエントリENT1の識別情報IDが"01"のため、ヒット信号HIT1をアクティブレベルに設定し、エンコーダENCから識別情報ID="01"を出力する。コンパレータCMP2がタグ変換部TCNVから受ける縮小タグは、識別情報ID="01"と第2タグアドレスTAG2bとを含む。
タグアレイキャッシュTGACは、メモリアクセス要求に含まれるインデックスアドレスIDXに対応するエントリENT2に保持された第2タグアドレスTAG2bと識別情報ID="01"とを、縮小タグとして出力する。また、タグアレイキャッシュTGACは、メモリアクセス要求に含まれるインデックスアドレスIDXに対応するフラグFLGに保持された論理1を出力する。
コンパレータCMP2は、縮小タグ同士が一致するため、論理1をアンド回路ANDに出力する。アンド回路ANDは、コンパレータCMP2からの論理1とフラグFLGからの論理1を受け、ヒット信号HITをアクティブレベルに設定する。キャッシュ制御部40Aは、メモリアクセス要求が発行されたとき、マルチプレクサMUX2にアンド回路ANDの出力を選択させる。このため、マルチプレクサMUX2は、アクティブレベルのヒット信号HITをヒット信号HIT2としてキャッシュ制御部40Aに出力する。キャッシュ制御部40Aは、アクティブレベルのヒット信号HIT2に基づいてサブタグ部STAGに対応するバンクBKのキャッシュヒットを検出し、バンクBKに保持されたサブデータSDTをロードストアユニットLDSTに向けて出力する。
一方、メモリアクセス要求に含まれる第1タグアドレスTAG1がエントリENT1に保持されているが、タグ変換部TCNVに対応する縮小タグが、エントリENT2から出力される縮小タグと一致しない場合がある。あるいは、縮小タグ同士が一致するが、フラグFLGが論理0にリセットされている場合がある。これらの場合、キャッシュ制御部40Aは、インアクティブレベルのヒット信号HIT2を受け、キャッシュミスの処理を実行する。そして、キャッシュ制御部40Aは、各バンクBKの更新処理と、タグアレイキャッシュTGACおよびタグ変換部TCNVの更新処理とを実行する。
また、メモリアクセス要求に含まれる第1タグアドレスTAG1がエントリENT1に保持されていない場合、上述したように、タグ変換部TCNVは、ヒット信号HIT1をインアクティブレベル(論理0)に設定する。キャッシュ制御部40Aは、インアクティブレベルのヒット信号HIT1を受けた場合、仮のキャッシュミスを検出し、図5のマルチプレクサMUX1にサブタグ部STAGに供給されるアドレスADを選択させる。また、キャッシュ制御部40Aは、マルチプレクサMUX2にメインタグ部MTAGからのヒット信号HITを選択させる。
メインタグ部MTAGは、マルチプレクサMUX1を介して仮のキャッシュミスを発生させたアドレスADを受け、タグアレイTGAを使用してキャッシュヒット/キャッシュミスを判定し、ヒット信号HITを出力する。キャッシュ制御部40Aは、メインタグ部MTAGから出力されるヒット信号HITを、マルチプレクサMUX2を介してヒット信号HIT2として受け、ヒット信号HIT2に応じてキャッシュヒット処理またはキャッシュミス処理を実行する。
キャッシュ制御部40Aは、キャッシュヒット処理において、バンクBKに保持されたサブデータSDTをロードストアユニットLDSTに向けて出力する。キャッシュ制御部40Aは、キャッシュミス処理において、上述したように、各バンクBKのデータの更新処理と、タグアレイTGA、タグ変換部TCNVおよびタグアレイキャッシュTGACの更新処理を実行する。
図7は、図5の演算処理装置100Aのメモリアクセス動作の一例を示す。すなわち、図7は、演算処理装置100Aの演算処理方法の一例を示す。図4および図6で説明した動作と同様の動作については、詳細な説明は省略する。図7に示す動作は、複数のロードストアユニットLDSTの少なくともいずれかからロード命令に対応するメモリアクセス要求が発行されたことに基づいて、キャッシュ制御部40Aにより実行される。
まず、ステップS40において、キャッシュ制御部40は、メモリアクセス要求がメインタグ部MTAGに対応するバンクBK(この例では、BK#0)を示すか否かをバンクアドレスBAを使用して判定する。キャッシュ制御部40Aは、メモリアクセス要求がメインタグ部MTAGに対応するバンクBKを示す場合、動作をステップS42に移行する。キャッシュ制御部40Aは、メモリアクセス要求がメインタグ部MTAGに対応するバンクBKを示さない場合、動作をステップS44に移行する。
ステップS42による処理は、図4のステップS20に示したメインタグ部MTAGを使用したアクセス処理と同様である。キャッシュ制御部40Aは、ステップS42の動作を実行後、図7に示す動作を終了する。
ステップS44において、キャッシュ制御部40Aは、図4のステップS32と同様に、メモリアクセス要求に含まれるバンクアドレスBAが示すバンクBKに対応するサブタグ部STAGにアクセスする。そして、キャッシュ制御部40Aは、サブタグ部STAGにタグ変換部TCNVのヒット/ミスおよびタグアレイキャッシュTGACのヒット/ミスを判定させる。
次に、ステップS46において、キャッシュ制御部40Aは、タグ変換部TCNVから出力されるヒット信号HIT1に基づいてタグ変換部TCNVにヒットしたか否かを判定する。キャッシュ制御部40Aは、タグ変換部TCNVにヒットした場合、動作をステップS50に移行し、タグ変換部TCNVにミスした場合、動作をステップS48に移行する。ステップS48による処理は、図4のステップS20に示したメインタグ部MTAGを使用したアクセス処理と同様である。キャッシュ制御部40Aは、ステップS48の動作を実行後、動作をステップS56に移行する。
ステップS50において、キャッシュ制御部40Aは、タグアレイキャッシュTGACにヒットしたか否かを判定する。タグアレイキャッシュTGACにヒットした場合、タグ変換部TCNVおよびタグアレイキャッシュTGACの両方にヒットしたため、キャッシュ制御部40Aは、動作をステップS52に移行し、通常のキャッシュヒット処理を実行する。ステップS52による処理は、図4のステップS36による処理と同様である。
一方、タグアレイキャッシュTGACにミスした場合、キャッシュ制御部40Aは、動作をステップS54に移行する。ステップS54による処理は、タグ変換部TCNVおよびタグアレイキャッシュTGACの更新処理が含まれないことを除き、図4のステップS38による処理と同様である。キャッシュ制御部40Aは、ステップS54の処理の後、ステップS56を実行する。ステップS56において、キャッシュ制御部40Aは、タグ変換部TCNVおよびタグアレイキャッシュTGACの更新処理を実行し、図7に示す動作を終了する。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。例えば、演算処理装置100Aは、メインタグ部MTAGをバンクBK毎に設ける場合に比べて、キャッシュヒットを判定する判定回路の規模を小さくできる。この結果、メインタグ部MTAGをバンクBK毎に設ける演算処理装置に比べて、演算処理装置100Aの製造コスト等を削減することができる。
さらに、この実施形態では、タグ変換部TCNVにより仮のキャッシュミスが判定された場合、キャッシュ制御部40Aは、マルチプレクサMUX1を介してアクセスアドレスをメインタグ部MTAGに供給する。これにより、仮のキャッシュミスに対応するバンクBKのキャッシュヒット/キャッシュミスを、メインタグ部MTAGのタグアレイTGAを使用して判定することができる。
タグアレイキャッシュTGACの各エントリENT2にフラグFLGを設けることで、キャッシュ制御部40Aは、第2タグアドレスTAG2または識別情報IDを書き換えることなく、フラグFLGのリセットのみでエントリENT2を無効にすることができる。これにより、誤ったヒット信号HIT2がキャッシュ制御部40Aに出力されることを簡易な制御で抑制することができる。
図8は、別の実施形態の演算処理装置におけるサブタグ部の一例を示す。図6と同様の要素については、同じ符号を付し、詳細な説明は省略する。図8に示す演算処理装置100Bは、例えば、SIMD演算命令を使用して、複数の積和演算等を並列に実行する機能を有するCPU等のプロセッサである。演算処理装置100Bは、図5に示すサブタグ部STAGおよびキャッシュ制御部40Aの代わりにサブタグ部STAG2およびキャッシュ制御部40Bを有する。演算処理装置100Bにおいて、サブタグ部STAG2およびキャッシュ制御部40Bを除く構成は、図5および図6と同様である。
サブタグ部STAG2は、タグ変換部TCNV2、タグアレイキャッシュTGAC2、コンパレータCMP2、アンド回路ANDおよびマルチプレクサMUX2を有する。タグ変換部TCNV2は、1個のエントリENT1と、エントリENT1に対応するコンパレータCMP3とを有し、図6のエンコーダENCおよびオア回路ORを持たない。コンパレータCMP3は、エントリENT1に保持された第1タグアドレスTAG1と、メモリアクセス要求に含まれる第1タグアドレスTAG1とが一致する場合、ヒット信号HIT1をアクティブレベルに設定する。コンパレータCMP3は、エントリENT1に保持された第1タグアドレスTAG1と、メモリアクセス要求に含まれる第1タグアドレスTAG1とが一致しない場合、ヒット信号HIT1をインアクティブレベルに設定する。ヒット信号HIT1は、キャッシュ制御部40Bに出力される。
タグアレイキャッシュTGAC2は、コンパレータCMP4を持たず、エントリENT2が識別情報IDを保持しないことを除き、図6のタグアレイキャッシュTGACと同様の構成である。キャッシュ制御部40Bは、インデックスアドレスIDXとセット信号SETをタグアレイキャッシュTGAC2に出力することで、対応するフラグFLGを論理1にセットする。キャッシュ制御部40Bは、インデックスアドレスIDXとリセット信号RESETをタグアレイキャッシュTGAC2に出力することで、対応するフラグFLGを論理0にリセットする。
コンパレータCMP2は、メモリアクセス要求に含まれる第2タグアドレスTAG2と、メモリアクセス要求に含まれるインデックスアドレスIDXに対応するエントリENT2から出力される第2タグアドレスTAG2とが一致する場合、論理1を出力する。コンパレータCMP2は、メモリアクセス要求に含まれる第2タグアドレスTAG2と、メモリアクセス要求に含まれるインデックスアドレスIDXに対応するエントリENT2から出力される第2タグアドレスTAG2とが一致しない場合、論理0を出力する。アンド回路ANDは、コンパレータCMP2およびフラグFLGから論理1をそれぞれ受けた場合、ヒット信号HITをアクティブレベルに設定する。マルチプレクサMUX2の動作は、図6のマルチプレクサMUX2の動作と同様である。キャッシュ制御部40Bは、メモリアクセス要求が発行されたとき、マルチプレクサMUX2にアンド回路ANDの出力を選択させる。
この実施形態の演算処理装置100Bの動作は、図7と同様である。但し、タグ変換部TCNV2のエントリENT1の数は、図6のエントリENT1の数に比べて少ない。タグアレイキャッシュTGAC2は、コンパレータCMP4を持たず、エントリENT2は識別情報IDを保持しない。このため、サブタグ部STAG2の回路規模を、図6のサブタグ部STAGに比べて小さくすることができる。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、サブタグ部STAG2の回路規模をサブタグ部STAGの回路規模より小さくできるため、演算処理装置100Bの回路規模を演算処理装置100Aの回路規模より小さくできる。この結果、演算処理装置100Bの製造コスト等を削減することができる。
図9は、別の実施形態における演算処理装置の一例を示す。上述した実施形態と同様の要素については、同じ符号を付し、詳細な説明は省略する。図9に示す演算処理装置100Cは、例えば、SIMD演算命令を使用して、複数の積和演算等を並列に実行する機能を有するCPU等のプロセッサである。演算処理装置100Cは、3個のサブタグ部STAG3#1-STAG3#3に共通のタグ変換部TCNVを有する。演算処理装置100Cのその他の構成は、図5の演算処理装置100Aの構成と同様である。タグ変換部TCNVの構成は、図6のタグ変換部TCNVの構成と同様である。また、図9には示していないが、キャッシュ60は、図9に示す要素からロードストアユニットLDSTおよびメインメモリ50を除く構成である。
図10は、図9のロードストアユニットLDSTでのアドレス計算の一例を示す。例えば、各ロードストアユニットLDSTは、スカラレジスタに保持される値とSIMDレジスタに保持される値とを加算することで、メモリアクセス要求のアドレスADを算出する。例えば、スカラレジスタには、64ビットのベースアドレスBASE_ADが保持され、SIMDレジスタには、32ビットのインデックスアドレスINDEX_AD(下位ビット)が保持される。
この場合、各ロードストアユニットLDSTが生成するアドレスADの上位ビット側のタグアドレスTAGは、加算により桁上がりが発生した場合を除き、互いに同じになる。したがって、図9のタグ変換部TCNVに保持される情報を、4個のロードストアユニットLDSTで共通にすることができる。この結果、タグ変換部TCNVを複数のサブタグ部STAG3に共通にすることができる。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、タグ変換部TCNVを複数のサブタグ部STAG3に共通に設けることで、サブタグ部STAG3の回路規模をサブタグ部STAG2の回路規模より小さくできる。この結果、演算処理装置100Cの回路規模を演算処理装置100Aの回路規模よりさらに小さくでき、演算処理装置100Cの製造コスト等を削減することができる。
図11から図13は、別の実施形態におけるメインタグ部MTAGとサブタグ部STAGの構成例を示す。構成例1では、複数のメインタグ部MTAGの各々が所定数のバンクBKに対応して設けられる。例えば、図7に示したように、ステップS22でタグ変換部TCNVのエントリENT1にミスした場合、メインタグ部MTAGのタグアレイTGAを使用してキャッシュヒット/キャッシュミスの判定が実行される。このため、複数のサブタグ部STAGのタグ変換部TCNVのエントリENT1にミスした場合、タグアレイTGAが競合し、キャッシュヒット/キャッシュミスの判定が遅れてしまう。
また、バンクBK#0に対するメインタグ部MTAGの判定中、タグ変換部TCNVのエントリENT1の仮のキャッシュミスに基づくメインタグ部MTAGよるキャッシュヒット/キャッシュミスの判定は待たされる。構成例1では、複数のメインタグ部MTAGを設けることにより、タグ変換部TCNVのエントリENT1の仮のキャッシュミスによるメインタグ部MTAGの競合を抑制することができる。また、バンクBK#0のキャッシュヒット/キャッシュミスの判定と、タグ変換部TCNVのエントリENT1のミスによるキャッシュヒット/キャッシュミスの判定とが競合する可能性を低くすることができる。
構成例2では、サブタグ部STAGがバンクBKのそれぞれに対応して設けられ、メインタグ部MTAGは、複数のバンクBKと独立に設けられる。これにより、サブタグ部STAGとバンクBKとのペアを繰り返し配置することが可能になり、回路配置の対称性を考慮した設計が可能になる。この結果、例えば、演算処理装置のレイアウト設計を容易にすることができ、あるいは、演算処理装置の周波数特性等の電気的特性を向上することができる。
図12および図13に示す構成例3から構成例6では、メインタグ部MTAGとサブタグ部STAGとは、スイッチ部のロードストアユニットLDST側に配置される。すなわち、メインタグ部MTAGおよびサブタグ部STAGは、複数のロードストアユニットLDSTからのメモリアクセス要求をスイッチ部に供給される前に受ける。なお、図12および図13において、バンクBK#0以外のバンクBK#1-BK#nに供給されるヒット信号HITは、ヒット信号HIT1、HIT2を示す。
例えば、ロードストアユニットLDSTの数m+1がバンクBKの数n+1より少ない場合、構成例3から構成例6では、構成例1および構成例2に比べてメインタグ部MTAGおよびサブタグ部STAGの総数を少なくすることができる。これにより、演算処理装置の回路規模を構成例1および構成例2に比べてさらに削減することが可能になる。
図12の構成例3では、ロードストアユニットLDSTにそれぞれ対応してメインタグ部MTAGが設けられる。図12の構成例4では、ロードストアユニットLDST#0に対応してメインタグ部MTAGが設けられ、ロードストアユニットLDST#1-LDST#mのそれぞれに対応してサブタグ部STAGが設けられる。
図13の構成例5では、複数のメインタグ部MTAGが設けられる。これにより、図12の構成例と同様に、メインタグ部MTAGが複数のメモリアクセス要求により競合する可能性を低くすることができる。図13の構成例6では、サブタグ部STAGがロードストアユニットLDSTのそれぞれに対応して設けられ、メインタグ部MTAGは、複数のロードストアユニットLDSTに独立に設けられる。これにより、サブタグ部STAGとロードストアユニットLDSTとのペアを繰り返し配置することが可能になり、回路配置の対称性を考慮した設計が可能になる。この結果、例えば、演算処理装置のレイアウト設計を容易にすることができ、あるいは、演算処理装置の周波数特性等の電気的特性を向上することができる。
なお、構成例1、構成例2、構成例4から構成例6のサブタグ部STAGは、図1または図5のサブタグ部STAGが使用されてもよく、図8のサブタグ部STAG2または図9のサブタグ部STAG3が使用されてもよい。図9のサブタグ部STAG3が使用される場合、タグ変換部TCNVは、サブタグ部STAG3と独立して設けられる。
図14は、図12の構成例4における演算処理装置の一例を示す。上述した実施形態と同様の要素については同じ符号を付し、詳細な説明は省略する。図14に示す演算処理装置100Dでは、メインタグ部MTAG、サブタグ部STAGおよびマルチプレクサMUX1は、ロードストアユニットLDSTとスイッチ部20Dとの間に配置される。なお、説明を簡単にするために、演算処理装置100Dは、3個のロードストアユニットLDST#1-LDST#3、3個のサブタグ部STAG#1-STAG#3および4個のバンクBK#0-BK#3を有するとする。また、図14には示していないが、キャッシュ60は、図14に示す要素からロードストアユニットLDSTおよびメインメモリ50を除く構成である。
図12の構成例4に示したように、メインタグ部MTAGは、ロードストアユニットLDST#0に対応して設けられる。サブタグ部STAG#1-STAG#3は、ロードストアユニットLDST#1-LDST#3にそれぞれ対応して設けられる。演算処理装置100Dのメモリアクセス動作は、図7と同様である。
スイッチ部20Dは、ロードストアユニットLDSTからのアドレスADおよび調停部10からのバンクアドレスBA以外に、メインタグ部MTAGおよびサブタグ部STAGからインデックスアドレスIDXおよび、ヒット信号HIT、HIT1、HIT2を受ける。スイッチ部20Dは、受けたインデックスアドレスIDXおよび、ヒット信号HIT、HIT1、HIT2を、バンクアドレスBAに応じて、キャッシュ60の対応するバンクBKに出力する。また、スイッチ部20Dは、キャッシュ制御部40が生成するメインタグ部MTAGおよびサブタグ部STAG用の制御信号を、メインタグ部MTAGおよびサブタグ部STAGに出力する。
図15は、別の実施形態の演算処理装置におけるメインタグ部MTAGとサブタグ部STAGの一例を示す。メインタグ部MTAGおよびサブタグ部STAGは複数のバンクBK間で共有してよい。この実施形態の演算処理装置100Eは、互いに隣接する一対のバンクBKに共有されるメインタグ部MTAG4と、メインタグ部MTAG4で共有される一対のバンクBK以外の他の一対の隣接するバンクBKに共有されるサブタグ部STAG4とを有する。演算処理装置100Eにおいて、メインタグ部MTAG4およびサブタグ部STAG4を除く構成は、図5の演算処理装置100Aの構成と同様である。図15では、互いに隣接する一対のバンクBK間でメインタグ部MTAGおよびサブタグ部STAGをそれぞれ共有する例を示したが、任意の複数バンクBK間で共有してよい。
例えば、メインタグ部MTAG4は、バンクBK#0、BK#1に対するヒット信号HITを出力する。サブタグ部STAG4は、バンクBK#2、BK#3に対するヒット信号HIT1、HIT(HIT2)を出力する。なお、演算処理装置100Eが8個のバンクBK#0-BK#7を有する場合、バンクBK#4、BK#5に対応するサブタグ部STAG4と、バンクBK#6、BK#7に対応するサブタグ部STAG4とが設けられてもよい。
例えば、メインタグ部MTAG4は、マルチポートタイプであり、2個のロードストアユニットLDSTから出力されるタグアドレスTAGおよびインデックスアドレスIDXを同時に受けることができる。そして、メインタグ部MTAG4は、2個のロードストアユニットLDSTに対応するヒット信号HITを互いに独立に出力可能である。
サブタグ部STAG4は、マルチポートタイプであり、2個のロードストアユニットLDSTから出力されるタグアドレスTAG(TAG1、TAG2)およびインデックスアドレスIDXを同時に受けることができる。そして、サブタグ部STAG4は、2個のロードストアユニットLDSTに対応するヒット信号HIT1、HIT(HIT2)を互いに独立に出力可能である。
この実施形態では、マルチポートタイプのメインタグ部MTAG4およびサブタグ部STAG4が設けられる。このため、メインタグ部MTAG4およびサブタグ部STAG4の総数を図5のメインタグ部MTAGおよびサブタグ部STAGの総数に比べて削減することができる。これにより、メインタグ部MTAG4およびサブタグ部STAG4の回路規模を削減することができ、演算処理装置100Eの回路規模を削減することができる。
なお、演算処理装置100Eは、図15のメインタグ部MTAG4と図5のサブタグ部STAGを有してもよい。また、演算処理装置100Eは、図5のメインタグ部MTAGと図15のサブタグ部STAG4を有してもよい。さらに、メインタグ部MTAG4は、上述した実施形態の他のメインタグ部MTAGの代わりに配置されてもよい。サブタグ部STAG4は、上述した実施形態の他のサブタグ部STAG、STAG2、STAG3の代わりに配置されてもよい。
また、図15のメインタグ部MTAG4は、図11の構成例1、図12の構成例3、構成例4および図13の構成例5のメインタグ部MTAGの代わりに設けられてもよい。また、図15のサブタグ部STAG4は、図11から図13の構成例1から構成例6のサブタグ部STAGの代わりに設けられてもよい。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、マルチポートタイプのメインタグ部MTAG4およびサブタグ部STAG4の少なくともいずれかを設けることで、演算処理装置100Eの回路規模を削減することができる。
図16は、キャッシュの構造毎のタグアレイ/データアレイ比の例を示す。なお、図16では、タグアレイTGAのみが使用され、図1等に示したタグアレイキャッシュTGACは使用されない例が示される。キャッシュラインサイズに示す符号(A)は、図17の説明で使用される。
タグアレイTGAが各バンクBKに対応して設けられる場合、バンクBK毎のデータアレイDTAに対するタグアレイTGAの比率は、バンクBKの数が多いほど高くなり、キャッシュラインサイズが小さいほど高くなる。データアレイDTAに対するタグアレイTGAの比率は、ウェイ数が多いほど高くなり、物理アドレスのビット数Fが多いほど高くなる。ここで、タグアレイTGAのビット数(a)は、式(1)により示される。
(a)=F+log(ウェイ数)-log(キャッシュサイズ) ‥(1)
また、データアレイDTAに対するタグアレイTGAの比率は、キャッシュサイズが小さいほど高くなる。
図17は、タグアレイキャッシュを設ける場合のタグアレイ/データアレイ比の向上効果の一例を示す。図16の(A)に示すキャッシュ構造では、タグアレイ/データアレイ比は、56.3%である。これに対して、タグアレイキャッシュTGACを使用する図1のキャッシュ構造では、タグアレイ/データアレイ比を、図16(A)の約1/3の16.9%にすることができる。さらに、タグアレイキャッシュTGACを使用する図12の構成例4のキャッシュ構造では、タグアレイ/データアレイ比を、図16(A)の約1/6の9.1%にすることができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
10 調停部
20 スイッチ部
30 データアレイ
40、40A、40B キャッシュ制御部
50 メインメモリ
60 キャッシュ
100、100A、100B 演算処理装置
100C、100D、110E 演算処理装置
AD アドレス
BA バンクアドレス
BK バンク
CL キャッシュライン
CMP1、CMP2、CMP3 コンパレータ
DT データ
DTA データアレイ
ENT1、ENT2 エントリ
FLG フラグ
HIT、HIT1、HIT2 ヒット信号
ID 識別情報
IDX インデックスアドレス
LDST ロードストアユニット
MTAG、MTAG4 メインタグ部
MUX1、MUX2 マルチプレクサ
OFS オフセットアドレス
SDT サブデータ
STAG、STAG2、STAG3、STAG4 サブタグ部
TAG タグアドレス
TAG1 第1タグアドレス
TAG2 第2タグアドレス
TCNV、TCNV2 タグ変換部
TGAC、TGAC2 タグアレイキャッシュTGAC

Claims (16)

  1. 記憶装置にメモリアクセス要求を発行する複数の要求発行部と、
    前記メモリアクセス要求に基づいて前記記憶装置から読み出されるデータを分割したサブデータをそれぞれ保持可能な複数のバンクを含むデータアレイと、
    前記メモリアクセス要求を前記複数のバンクのいずれかに転送するスイッチ部と、
    前記メモリアクセス要求に含まれるアクセスアドレス中のインデックスアドレスの値毎に、前記アクセスアドレスに含まれるタグアドレスを保持する第1保持部を有し、前記アクセスアドレスに含まれるタグアドレスが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第1保持部に保持されるタグアドレスと一致する場合に、アクセス対象のデータが前記データアレイに保持されていることを示すキャッシュヒットを判定する少なくとも1つの第1判定部と、
    タグアドレスに含まれる第1タグアドレスを識別する識別情報とタグアドレスに含まれる第2タグアドレスとを、インデックスアドレスの値毎に保持する第2保持部を有し、前記アクセスアドレスに含まれる第1タグアドレスに対応する識別情報および前記アクセスアドレスに含まれる第2タグアドレスが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第2保持部に保持される識別情報および第2タグアドレスと一致する場合にキャッシュヒットを判定する少なくとも1つの第2判定部と、
    前記第1判定部または前記第2判定部の判定結果に基づいて、前記データアレイまたは前記記憶装置にアクセスするキャッシュ制御部と、
    を有する演算処理装置。
  2. 前記第2判定部は、
    第1タグアドレスを保持する複数のエントリを含む第3保持部を有し、
    第1タグアドレスを識別する識別情報は、前記第3保持部の前記エントリを識別する識別情報であり、
    前記アクセスアドレスに含まれる第1タグアドレスを保持する前記第3保持部の前記エントリを識別する識別情報と前記アクセスアドレスに含まれる第2タグアドレスとが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第2保持部に保持される場合にキャッシュヒットを判定する
    請求項1に記載の演算処理装置。
  3. 前記第3保持部は、複数の第2判定部に共通に設けられる
    請求項2に記載の演算処理装置。
  4. 前記キャッシュ制御部は、前記アクセスアドレスに含まれる第1タグアドレスが前記第3保持部に保持されていない場合、前記アクセスアドレスに基づいて前記第1判定部にキャッシュヒットを判定させる
    請求項2または請求項3に記載の演算処理装置。
  5. 前記第2保持部は、保持している識別情報が有効であることを示すフラグをインデックスアドレスの値毎に有する
    請求項1ないし請求項4のいずれか1項に記載の演算処理装置。
  6. 前記第1判定部および前記第2判定部は、前記スイッチ部を介して前記複数の要求発行部からの前記メモリアクセス要求を受ける
    請求項1ないし請求項5のいずれか1項に記載の演算処理装置。
  7. 前記第1判定部は、2以上の前記バンクのそれぞれに対応して設けられ、
    前記第2判定部は、前記第1判定部に対応しないバンクに対応して設けられる
    請求項6に記載の演算処理装置。
  8. 前記第1判定部は、前記複数のバンクと独立に設けられ、
    前記第2判定部は、前記複数のバンクにそれぞれ対応して設けられる
    請求項6に記載の演算処理装置。
  9. 前記第2判定部は、複数の前記バンクで共有され、
    前記第1判定部は、前記第2判定部で共有される複数の前記バンク以外のバンクの少なくともいずれかに対応して設けられる
    請求項6に記載の演算処理装置。
  10. 前記第1判定部は、複数の前記バンクで共有され、
    前記第2判定部は、前記第1判定部で共有される複数の前記バンク以外のバンクの少なくともいずれかに対応して設けられる
    請求項6または請求項9に記載の演算処理装置。
  11. 前記第1判定部および前記第2判定部は、前記複数の要求発行部からの前記メモリアクセス要求を前記スイッチ部に供給される前に受ける
    請求項1ないし請求項5のいずれか1項に記載の演算処理装置。
  12. 前記第1判定部は、2以上の前記要求発行部に対応して設けられ、
    前記第2判定部は、前記第1判定部に対応しない要求発行部に対応して設けられる
    請求項11に記載の演算処理装置。
  13. 前記第1判定部は、前記複数の要求発行部と独立に設けられ、
    前記第2判定部は、前記複数の要求発行部にそれぞれ対応して設けられる
    請求項11に記載の演算処理装置。
  14. 前記第2判定部は、互いに隣接する一対の前記要求発行部で共有され、
    前記第1判定部は、前記第2判定部で共有される一対の前記要求発行部以外の要求発行部の少なくともいずれかに対応して設けられる
    請求項11に記載の演算処理装置。
  15. 前記第1判定部は、互いに隣接する一対の前記要求発行部で共有され、
    前記第2判定部は、前記第1判定部で共有される一対の前記要求発行部以外の要求発行部の少なくともいずれかに対応して設けられる
    請求項11または請求項14に記載の演算処理装置。
  16. 記憶装置にメモリアクセス要求を発行する複数の要求発行部と、前記メモリアクセス要求に基づいて前記記憶装置から読み出されるデータを分割したサブデータをそれぞれ保持可能な複数のバンクを含むデータアレイと、前記メモリアクセス要求を前記複数のバンクのいずれかに転送するスイッチ部と、を有する演算処理装置の演算処理方法であって、
    前記演算処理装置に含まれ、前記メモリアクセス要求に含まれるアクセスアドレス中のインデックスアドレスの値毎に、前記アクセスアドレスに含まれるタグアドレスを保持する第1保持部を有する少なくとも1つの第1判定部が、前記アクセスアドレスに含まれるタグアドレスが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第1保持部に保持されるタグアドレスと一致する場合に、アクセス対象のデータが前記データアレイに保持されていることを示すキャッシュヒットを判定し、
    前記演算処理装置に含まれ、タグアドレスに含まれる第1タグアドレスを識別する識別情報とタグアドレスに含まれる第2タグアドレスとを、インデックスアドレスの値毎に保持する第2保持部を有する少なくとも1つの第2判定部が、前記アクセスアドレスに含まれる第1タグアドレスに対応する識別情報および前記アクセスアドレスに含まれる第2タグアドレスが、前記アクセスアドレスに含まれるインデックスアドレスに対応して前記第2保持部に保持される識別情報および第2タグアドレスと一致する場合にキャッシュヒットを判定し、
    前記演算処理装置に含まれるキャッシュ制御部が、前記第1判定部または前記第2判定部の判定結果に基づいて、前記データアレイまたは前記記憶装置にアクセスする
    演算処理方法。
JP2021165561A 2021-10-07 2021-10-07 演算処理装置および演算処理方法 Pending JP2023056289A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021165561A JP2023056289A (ja) 2021-10-07 2021-10-07 演算処理装置および演算処理方法
US17/893,333 US11829293B2 (en) 2021-10-07 2022-08-23 Processor and arithmetic processing method
CN202211084268.9A CN115952112A (zh) 2021-10-07 2022-09-06 处理器和运算处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021165561A JP2023056289A (ja) 2021-10-07 2021-10-07 演算処理装置および演算処理方法

Publications (1)

Publication Number Publication Date
JP2023056289A true JP2023056289A (ja) 2023-04-19

Family

ID=85798687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021165561A Pending JP2023056289A (ja) 2021-10-07 2021-10-07 演算処理装置および演算処理方法

Country Status (3)

Country Link
US (1) US11829293B2 (ja)
JP (1) JP2023056289A (ja)
CN (1) CN115952112A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3713312B2 (ja) 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
US7117290B2 (en) 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
JP2014186397A (ja) * 2013-03-21 2014-10-02 Fujitsu Ltd キャッシュメモリ装置、情報処理装置及びキャッシュメモリ制御方法
GB2579757B (en) 2017-10-06 2020-11-18 Ibm Handling effective address synonyms in a load-store unit that operates without address translation
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation

Also Published As

Publication number Publication date
CN115952112A (zh) 2023-04-11
US20230110696A1 (en) 2023-04-13
US11829293B2 (en) 2023-11-28

Similar Documents

Publication Publication Date Title
KR102244191B1 (ko) 캐시 및 변환 색인 버퍼를 갖는 데이터 처리장치
US6219760B1 (en) Cache including a prefetch way for storing cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US7793048B2 (en) System bus structure for large L2 cache array topology with different latency domains
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US7490200B2 (en) L2 cache controller with slice directory and unified cache structure
US7516275B2 (en) Pseudo-LRU virtual counter for a locking cache
US7783834B2 (en) L2 cache array topology for large cache with different latency domains
JP4006436B2 (ja) 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ
US8527708B2 (en) Detecting address conflicts in a cache memory system
US8595443B2 (en) Varying a data prefetch size based upon data usage
US7308537B2 (en) Half-good mode for large L2 cache array topology with different latency domains
US8250307B2 (en) Sourcing differing amounts of prefetch data in response to data prefetch requests
WO2011077549A1 (ja) 演算処理装置
US8589627B2 (en) Partially sectored cache
US7039762B2 (en) Parallel cache interleave accesses with address-sliced directories
US8266381B2 (en) Varying an amount of data retrieved from memory based upon an instruction hint
US20140089587A1 (en) Processor, information processing apparatus and control method of processor
US7293141B1 (en) Cache word of interest latency organization
JP2007058349A (ja) キャッシュシステム
US5905999A (en) Cache sub-array arbitration
JP2023056289A (ja) 演算処理装置および演算処理方法
JP5245349B2 (ja) 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
US11720498B2 (en) Arithmetic processing device and arithmetic processing method
JP2009151457A (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法
JP3755661B2 (ja) Vliwプロセッサにおける命令キャッシュ制御システム及び命令キャッシュ制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20211020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211020