[go: up one dir, main page]

JP5583893B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP5583893B2
JP5583893B2 JP2008139986A JP2008139986A JP5583893B2 JP 5583893 B2 JP5583893 B2 JP 5583893B2 JP 2008139986 A JP2008139986 A JP 2008139986A JP 2008139986 A JP2008139986 A JP 2008139986A JP 5583893 B2 JP5583893 B2 JP 5583893B2
Authority
JP
Japan
Prior art keywords
data
memory
cache
arithmetic processing
main storage
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.)
Active
Application number
JP2008139986A
Other languages
English (en)
Other versions
JP2009288977A (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 JP2008139986A priority Critical patent/JP5583893B2/ja
Priority to EP09152023.9A priority patent/EP2128771B1/en
Priority to US12/320,941 priority patent/US8200900B2/en
Priority to KR1020090016447A priority patent/KR100983299B1/ko
Priority to CN2009101184641A priority patent/CN101593158B/zh
Publication of JP2009288977A publication Critical patent/JP2009288977A/ja
Application granted granted Critical
Publication of JP5583893B2 publication Critical patent/JP5583893B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1024Latency reduction

Landscapes

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

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。本発明は、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる演算処理装置及び演算処理装置の制御方法を含む。
通常、CPU(Central Processing Unit)などのプロセッサコアを備えた情報処理装置には、処理の高速化を図るために、キャッシュメモリが設けられる。キャッシュメモリは、メインメモリなどの主記憶部よりも高速にアクセス可能なメモリであり、主記憶部に記憶されたデータのうちCPUが頻繁に使用するデータのみを記憶している。このため、CPUは、様々な演算処理を実行する際、最初にキャッシュメモリにアクセスし、必要なデータを要求する。このとき、必要なデータがキャッシュメモリに記憶されていなければ、キャッシュミスが発生したこととなり、必要なデータは主記憶部からキャッシュメモリへ転送される。すなわち、キャッシュメモリに対するリード(READ)が実行された結果、キャッシュミスが発生すると、ムーブイン(MOVE-IN)により主記憶部からキャッシュメモリへデータが転送される。
このように、キャッシュミスが発生する場合には、ムーブインによって必要なデータがキャッシュメモリに格納されるため、CPUは、再度リードを実行して、キャッシュメモリからデータを読み出すことになる。このため、CPUがデータを取得するまでには、2つのリードと1つのムーブインとが実行されることとなり、遅延時間(以下「レイテンシ」という)が長くなる。そこで、データ取得までの遅延を低減して情報処理装置の性能を向上するために、主記憶部からキャッシュメモリへデータが転送されるのと同時に、データをCPUへも転送することが検討されている(例えば特許文献1参照)。
図7は、特許文献1に記載された情報処理装置の構成を示す図である。図7に示す情報処理装置は、主記憶部1、命令制御部2、および記憶制御部3を有している。命令制御部2がデータを要求すると、記憶制御部3においてデータのリードが実行される。すなわち、命令制御部2からのデータ要求が記憶制御部3内のセレクタ7を介してキャッシュ4へ送られ、要求されたデータがキャッシュ4に記憶されている場合は(キャッシュヒット)、該当するデータがセレクタ5を介して命令制御部2内のバッファ8へ読み出される。この場合は、図8の上段に示すように、命令制御部2がデータを記憶制御部3から取得することができ、データ取得までは1つのリード(図中「RD」と示す)が実行されるのみである。したがって、命令制御部2がデータを取得するまでのレイテンシはほとんどない。
一方、命令制御部2によって要求されたデータがキャッシュ4に記憶されていない場合は(キャッシュミス)、主記憶部1に記憶されたデータをキャッシュ4へ転送するムーブインが実行される。すなわち、命令制御部2からのデータ要求がセレクタ7を介して主記憶部1へ送られ、要求されたデータがセレクタ6を介してキャッシュ4へ転送される。通常であれば、以後、再び命令制御部2がデータを要求し、記憶制御部3においてリードが実行され、要求されたデータがキャッシュ4からセレクタ5を介してバッファ8へ読み出されることになる。この場合は、図8の中段に示すように、命令制御部2がデータを取得するまでに、2つのリード(RD)と1つのムーブイン(図中「MI」と示す)が実行される。したがって、命令制御部2がデータを取得するまでのレイテンシが長くなる。
しかし、特許文献1においては、主記憶部1からセレクタ5を介して命令制御部2のバッファ8へ直接接続するラインLが設けられており、データが主記憶部1からセレクタ6を介してキャッシュ4へ転送されるのと同時に、ラインLを経由してバッファ8へ読み出される。このため、図8の下段に示すように、命令制御部2は、キャッシュ4へのムーブイン(MI)と同時にデータを取得することができ、レイテンシを短縮することができる。
特開平10−111798号公報
ところで、近年、1つのプロセッサコア(以下、単に「コア」という)を備えるシングルコアの半導体集積回路においては、消費電力の増大などの問題が無視できないものとなっており、性能向上の限界が近づいている。そこで、1つの基板上に複数のコアを備えるマルチコア化によって、半導体集積回路のさらなる性能向上が図られることがある。また、マルチコア化と同時に、キャッシュメモリや主記憶部を複数のバンクに分割することにより、各コアとキャッシュメモリや主記憶部との間のスループットの向上が図られることがある。
このようにマルチコア化およびバンク分けされた半導体集積回路においては、複数のコア、キャッシュメモリ、および主記憶部に接続する主記憶制御部が基板の外縁に配置され、基板の中央には、全体のデータの転送を制御する制御部が配置される。そして、バンク分けされたそれぞれの主記憶部は、アドレスが異なるデータを記憶しているため、各コアは、基板上のすべての主記憶制御部に対してデータを要求することがある。したがって、上述した特許文献1のように、主記憶部とコアを直接接続する場合には、すべてのコアと主記憶制御部を互いに接続する必要があり、基板上の配線が複雑になってしまうという問題がある。
すなわち、各主記憶制御部は、基板の中央に配置された制御部を挟んで対向するコアからもデータを要求される可能性があるため、コアによるデータ取得までのレイテンシを短縮するためには、基板上で遠く離れた主記憶制御部とコアについても直接接続する必要がある。結果として、基板上の配線を大幅に変更・増設する必要が生じ、半導体集積回路の大型化を招いてしまう。最近では、半導体集積回路を搭載する装置は、小型化の一途をたどっており、コアのデータ取得におけるレイテンシを短縮するために半導体集積回路が大型化するのは現実的ではない。
本発明はかかる点に鑑みてなされたものであり、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる演算処理装置及び演算処理装置の制御方法を提供することを目的とする。
上記課題を解決するために、演算処理装置は、データを記憶する主記憶装置に接続する演算処理装置において、メモリアクセス命令をそれぞれ実行する複数の演算処理と、前記主記憶装置から読みだしたデータを保持するキャッシュメモリと、前記主記憶装置から読みだしたデータ又は前記キャッシュメモリから読みだしたデータのいずれかを選択する選択部と、前記選択部が選択したデータを前記複数の演算処理部のいずれかに転送する転送部と、前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを前記キャッシュメモリに保持させるとともに、前記主記憶装置から読みだしたデータを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させる制御部を有する構成を採る。
また、演算処理装置の制御方法は、データを記憶する主記憶装置に接続するとともに、前記主記憶装置から読みだしたデータを保持するキャッシュメモリを有する演算処理装置の制御方法において、前記演算処理装置が有する複数の演算処理部が、メモリアクセス命令をそれぞれ実行し、前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記演算処理装置が有する制御部が、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを前記キャッシュメモリに保持させ、前記制御部が、前記主記憶装置から読みだしたデータを前記選択部に選択させ、前記制御部が、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させるようにした。
本明細書に開示された演算処理装置及び演算処理装置の制御方法によれば、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる。
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下においては、1つの基板上にコア、キャッシュメモリ、および主記憶制御部がそれぞれ複数配置される半導体集積回路について説明する。ただし、1つの基板上にコア、キャッシュメモリ、または主記憶制御部が1つのみ配置される半導体集積回路にも本発明を同様に適用することができる。
図1は、本実施の形態に係る半導体集積回路100の概略構成を示す図である。図1に示す半導体集積回路100は、8つのコア#0〜#7を有している。また、半導体集積回路100においては、図示しない4つにバンク分けされた主記憶部に対応して、キャッシュメモリおよび主記憶制御部が4つのデータメモリ#0〜#3および4つのMAC(Memory Access Controller)#0〜#3に分割されている。そして、コア#0〜#7、データメモリ#0〜#3、およびMAC#0〜#3は、基板の外縁に配置されており、基板の中央には、制御部が配置されている。また、図1に示す半導体集積回路100は、各MAC#0〜#3から各データメモリ#0〜#3へのデータ転送や、各データメモリ#0〜#3から各コア#0〜#7へのデータ転送を制御するキャッシュメモリ制御装置を含んでいる。
コア#0〜#7は、制御部におけるリード(READ)の実行によって、データメモリ#0〜#3に一時的に保持されたデータを取得し、様々な演算処理を実行する。また、コア#0〜#7は、データメモリ#0〜#3に必要なデータが保持されていない場合(キャッシュミス)、該当するデータを記憶している主記憶部のバンクに対応するMAC#0〜#3に対してデータを要求する。そして、コア#0〜#7は、制御部におけるムーブイン(MOVE-IN)の実行によって、MAC#0〜#3からデータメモリ#0〜#3へデータが転送される際、データメモリ#0〜#3へ入力されるデータと同一のデータを取得する。すなわち、コア#0〜#7は、データメモリ#0〜#3への入力部分から、データメモリ#0〜#3に書き込まれるデータと同一のデータを取得する。
データメモリ#0〜#3は、それぞれキャッシュメモリの一部を構成しており、コア#0〜#7が使用するデータを一時的に保持する。具体的には、データメモリ#0〜#3は、制御部においてリードが実行されると、コア#0〜#7が要求するデータを出力する。また、データメモリ#0〜#3は、制御部においてムーブインが実行されると、コア#0〜#7が要求したデータをMAC#0〜#3から取得して記憶する。
MAC#0〜#3は、それぞれアドレスが異なるデータを記憶する図示しない主記憶部の4つのバンクに対応している。そして、MAC#0〜#3は、キャッシュミスが生じた場合に、コア#0〜#7が要求するデータを図示しない主記憶部から取得してデータメモリ#0〜#3へ転送する。
制御部は、パイプライン処理によってリードやムーブインなどを実行する。すなわち、制御部は、コア#0〜#7がデータを要求した場合、パイプラインにリード要求を投入し、図示しないタグメモリを検索して、要求されたデータがデータメモリ#0〜#3に記憶されているか否かを判断する。そして、要求されたデータがデータメモリ#0〜#3に記憶されていれば(キャッシュヒット)、制御部は、該当するデータをデータメモリ#0〜#3からコア#0〜#7へ出力させる。一方、要求されたデータがデータメモリ#0〜#3に記憶されていなければ(キャッシュミス)、制御部は、パイプラインにムーブイン要求を投入し、該当するデータをMAC#0〜#3からデータメモリ#0〜#3へ転送させる。
なお、制御部は、リードおよびムーブイン以外にも、コア#0〜#7によって演算処理されたデータをデータメモリ#0〜#3に書き戻すライトバック(WRITE-BACK)や、データをデータメモリ#0〜#3から図示しない主記憶部へ排出するムーブアウト(MOVE-OUT)などを実行する。また、制御部は、リード要求やムーブイン要求などの命令をパイプラインに投入する際、複数の命令が同時にデータメモリ#0〜#3などの資源を使用する干渉が生じないように、適切な間隔をあけて命令をパイプラインに投入する。
図2は、本実施の形態に係る半導体集積回路100の要部構成を示す図である。図2においては、特に、図1に示した半導体集積回路100のコア#0〜#3、データメモリ#0、#1、およびMAC#0、#1に対応する部分を拡大して示している。図2に示す半導体集積回路100は、コア101−0、101−1、制御部102、ライトバックデータキュー(以下「WBDQ」と略記する)103、ムーブインデータキュー(以下「MIDQ」と略記する)104、セレクタ105、データメモリ106、セレクタ107、108、データバス109、およびMAC115を備えている。なお、図2に示す半導体集積回路100は、左右対称に構成されているため、左半分についてのみ符号を付している。また、図2においては、主にデータメモリ106付近におけるデータの移動を矢印で示している。
コア101−0、101−1は、データメモリ106または図示しない主記憶部に記憶されたデータを使用して様々な演算処理を実行する。このとき、コア101−0、101−1は、演算処理に必要なデータを制御部102に対して要求し、該当するデータがデータメモリ106に記憶されていれば(キャッシュヒット)、リードの実行によりデータメモリ106から読み出されたデータを取得する。また、コア101−0、101−1は、必要なデータがデータメモリ106に記憶されていなければ(キャッシュミス)、ムーブインの実行により主記憶部からMAC115を介してデータメモリ106へ転送されるデータを取得する。より具体的には、コア101−0、101−1は、ムーブインの実行によりデータメモリ106の入力部分に設けられたMIDQ104へ転送されたデータを、データメモリ106への書き込み終了後に取得する。
制御部102は、パイプライン処理によりコア101−0、101−1が要求するデータのリードやムーブインを実行する。すなわち、制御部102は、コア101−0、101−1がデータを要求すると、パイプラインにリード要求を投入し、キャッシュヒットの場合には、データメモリ106からコア101−0、101−1へデータを転送させる。また、制御部102は、キャッシュミスの場合には、要求されたデータを記憶する主記憶部に対応するMAC115からMIDQ104へデータを転送させた後、パイプラインにムーブイン要求を投入し、要求されたデータをMIDQ104からデータメモリ106へ転送させる。
WBDQ103は、ライトバックの実行時に、コア101−0、101−1からデータメモリ106へ書き戻されるデータを一時的に保持するキューである。すなわち、WBDQ103は、コア101−0、101−1によって加工されたデータを一時的に保持し、セレクタ105を介してデータメモリ106へ出力する。
MIDQ104は、データメモリ106の入力部分に設けられ、キャッシュミスが生じた場合のムーブインの実行時に、MAC115からデータメモリ106へ転送されるデータを一時的に保持するキューである。すなわち、MIDQ104は、コア101−0、101−1によって要求されたMAC115からのデータを一時的に保持し、セレクタ105を介してデータメモリ106へ出力する。また、MIDQ104は、データがデータメモリ106に書き込まれた後、同一のデータをセレクタ107へも出力する。
セレクタ105は、WBDQ103およびMIDQ104に保持されたデータのいずれか一方を選択してデータメモリ106へ出力する。具体的には、セレクタ105は、制御部102のパイプラインによってライトバックが実行されている場合は、WBDQ103に保持されたデータを選択する。また、セレクタ105は、制御部102のパイプラインによってムーブインが実行されている場合は、MIDQ104に保持されたデータを選択する。
さらに、セレクタ105は、ムーブインが実行されている場合は、MIDQ104に保持されたデータがデータメモリ106に書き込まれた後、同一のデータをラインL0を介してセレクタ107へも出力する。つまり、セレクタ105は、ムーブインの実行によりデータメモリ106に書き込まれたデータと同一のデータをラインL0へ出力し、セレクタ107からコア101−0、101−1へ転送させる。
ここで、ラインL0は、MIDQ104およびデータメモリ106の中間とセレクタ107とを接続する配線であり、データメモリ106の入力部分と出力部分を結んでいる。したがって、ラインL0は、データメモリ106の周囲にのみ設けられる非常に短いラインであり、新規にラインL0を設けても、周辺の配線に与える影響はほとんどない。そして、ラインL0は、データメモリ106へ入力するデータと同一のデータを、リードが実行された場合にデータメモリ106から出力するデータが経由するデータメモリ106の出力部分へ転送する。
データメモリ106は、キャッシュメモリの一部を構成するメモリであり、コア101−0、101−1によって頻繁に使用されるデータを一時的に記憶する。本実施の形態においては、キャッシュメモリは、バンク分けされたデータメモリとタグメモリとを備えており、それぞれのメモリとしては、例えばRAM(Random Access Memory)などを使用することが可能である。
セレクタ107は、データメモリ106の出力部分に設けられ、MIDQ104から出力されたデータとデータメモリ106から出力されたデータとのいずれか一方を選択して、セレクタ108およびコア101−0、101-1以外のコアへ出力する。具体的には、セレクタ107は、制御部102のパイプラインによってムーブインが実行されている場合は、MIDQ104から出力されたデータを選択する。また、セレクタ107は、制御部102のパイプラインによってリードが実行されている場合は、データメモリ106から出力されたデータを選択する。
換言すれば、セレクタ107は、キャッシュヒット時にリードされるデータおよびキャッシュミス時にムーブインされるデータのいずれか一方をコア101−0、101−1へ転送するデータとして選択する。そして、キャッシュミス時には、セレクタ107は、ムーブインの実行によりデータがデータメモリ106に書き込まれたとき、同一のデータをラインL0から取得して、コア101−0、101−1へ転送する。このように、セレクタ107は、ムーブインの実行時にデータメモリ106へ入力するデータと同一のデータを、リードの実行時にデータメモリ106から出力するデータと同等に扱ってコア101−0、101−1へ転送する。これにより、ムーブインの実行によってデータメモリ106に入力したデータを、リードの実行により改めてデータメモリ106から出力しなくても、要求されたデータを迅速にコア101−0、101−1へ転送することが可能となる。
なお、セレクタ107は、リードが実行されている場合であってもムーブインが実行されている場合であっても、パイプライン処理の同じサイクルでデータを出力する。すなわち、ムーブイン時には、データメモリ106に対するデータ書き込みアクセス後に、データメモリ106に書き込まれたのと同一のデータがMIDQ104からセレクタ107へ出力される。また、リード時には、データメモリ106に対するデータ読み出しアクセス後に、データメモリ106から読み出されたデータがデータメモリ106からセレクタ107へ出力される。したがって、ムーブイン時でもリード時でも、セレクタ107にデータが到達するパイプライン処理のサイクルが同じになり、セレクタ107からコア101−0、101−1へのデータ転送は、まったく同じ処理となる。
セレクタ108は、セレクタ107から出力されたデータとデータメモリ106以外のデータメモリから出力されたデータとのいずれか1つを選択して、コア101−0、101−1へ出力する。具体的には、セレクタ108は、コア101−0、101−1がデータメモリ106に記憶されたデータを要求した場合は、セレクタ107から出力されたデータを選択する。また、セレクタ108は、コア101−0、101−1がデータメモリ106以外のデータメモリに記憶されたデータを要求した場合は、データ要求先のデータメモリから出力されたデータを選択する。
データバス109は、セレクタ108とコア101−0、101−1とを接続し、データメモリ106またはMIDQ104から出力されてセレクタ107およびセレクタ108を経由したデータをコア101−0、101−1へ転送する。つまり、データバス109は、制御部102のパイプラインによってリードが実行される場合にもムーブインが実行される場合にも共通して使用されるため、それぞれの命令の実行期間中において所定サイクルの間占有されることになる。
MAC115は、コア101−0、101−1が使用し得るすべてのデータを記憶する図示しない主記憶部に接続しており、キャッシュミスが生じた場合、キャッシュミスしたデータを主記憶部から取得し、MIDQ104へ転送する。MIDQ104へ転送されたデータは、ムーブインの実行により、MIDQ104からデータメモリ106へ転送される。
次いで、本実施の形態に係るコア、キャッシュメモリ、およびMACの接続関係について、図3を参照しながらより詳細に説明する。図3は、コア101、データメモリ106とタグメモリ112を備えるキャッシュメモリ、およびMAC115の接続関係を模式的に示す図である。同図において、図2と同じ部分には同じ符号を付している。図3においては、図2に示した構成に加えてムーブインポート(以下「MIポート」と略記する)110、セレクタ111、タグメモリ112、ムーブインバッファ(以下「MIバッファ」と略記する)113、およびムーブアウトデータキュー(以下「MODQ」と略記する)114を図示している。
MIポート110は、コア101からデータの要求を受信し、制御部102に対してリードの実行を要求する。セレクタ111は、リードの実行またはムーブインの実行を制御部102に要求する。すなわち、セレクタ111は、MIポート110からリードの実行が要求された場合は、制御部102に対してリードの実行を要求し、MIバッファ113からムーブインの実行が要求された場合は、制御部102に対してムーブインの実行を要求する。
タグメモリ112は、データメモリ106に記憶されたデータのアドレスを保持しており、制御部102のパイプラインにリード要求が投入されると、コア101が要求したデータがデータメモリ106に記憶されているか否かを判断する。つまり、要求されたデータのアドレスをタグメモリ112が保持していればキャッシュヒットとなり、要求されたデータのアドレスをタグメモリ112が保持していなければキャッシュミスとなる。
MIバッファ113は、キャッシュミスが生じた場合、キャッシュミスしたデータをMIDQ104へ転送するようにMAC115に対して指示する。そして、MIバッファ113は、キャッシュミスしたデータがMIDQ104へ転送された後、制御部102に対してムーブインの実行を要求する。
MODQ114は、キャッシュリプレース時に、データメモリ106からMAC115を介して図示しない主記憶部へ書き戻されるデータを一時的に保持する。
以上のような構成において、コア101がデータを要求する際、データの要求は、MIポート110によって受信され、リード実行の要求がセレクタ111を介して制御部102へ入力する。そして、制御部102においては、パイプラインにリード要求が投入され、タグメモリ112の検索により、要求されたデータがデータメモリ106に記憶されているか否かが判断される。判断の結果、要求されたデータがデータメモリ106に記憶されており、キャッシュヒットした場合は、該当するデータがデータメモリ106から出力され、セレクタ107、108、およびデータバス109を介してコア101へ転送される。これにより、リードのパイプライン処理が完了する。
一方、コア101が要求したデータのアドレスがタグメモリ112に保持されておらず、キャッシュミスした場合は、キャッシュミスしたデータのアドレスがタグメモリ112からMIバッファ113へ通知される。そして、MIバッファ113からMAC115に対して、キャッシュミスしたデータをMIDQ104へ転送するように指示される。すなわち、コア101が要求したデータのアドレスがタグメモリ112に保持されていない場合、MIバッファ113は、コア101が要求したデータをMIDQ104へ転送するようにMAC115へ指示する。
MAC115は、MIバッファ113からの指示を受け、コア101が要求したデータを主記憶部から取得してMIDQ104へ転送する。コア101が要求したデータがMIDQ104へ転送された後、MIバッファ113によって、ムーブイン実行の要求がセレクタ111を介して制御部112へ入力される。制御部102においては、パイプラインにムーブイン要求が投入され、ムーブイン要求のパイプライン処理に応じて、MIDQ104に一時的に保持されたデータがセレクタ105を介してデータメモリ106へ出力され、データメモリ106に書き込まれる。MIDQ104から出力されたデータがデータメモリ106に書き込まれた後、同一のデータがMIDQ104からラインL0を介してセレクタ107へ出力される。
ここで、ラインL0を介してMIDQ104からセレクタ107へデータが出力されるサイクルは、リード実行時にデータメモリ106からデータが出力されるのと同じサイクルである。つまり、本実施の形態においては、MIDQ104から出力されたデータがデータメモリ106に書き込まれるのと同時にラインL0を介してセレクタ107へ出力されるのではなく、データの書き込み終了後にセレクタ107へデータが出力される。これにより、リード実行時およびムーブイン実行時でセレクタ107にデータが到達するパイプライン処理のサイクルが同じになり、セレクタ107からコア101へのデータ転送を共通の制御で実現することができる。
MIDQ104からのデータがラインL0を介してセレクタ107に到達すると、データは、リード実行時と同様に、セレクタ107、108、およびデータバス109を介してコア101へ転送される。これにより、ムーブインのパイプライン処理が完了する。つまり、本実施の形態においては、キャッシュミスが生じた場合でも、ムーブインの完了と同時に、要求されたデータがコア101によって取得される。換言すれば、ムーブインによってデータメモリ106に書き込まれたデータを、再度リードによって読み出してコア101へ転送する必要がない。結果として、キャッシュミス時にコア101がデータを取得するまでのレイテンシを1つのリード実行に相当する時間だけ短縮することができる。
次に、キャッシュミス時のレイテンシの短縮について、図4および図5を参照しながら説明する。図4は、本実施の形態に係るキャッシュミス時の動作を示すシーケンス図である。
コア101による演算などのためにデータが必要となると、MIポート110およびセレクタ111を介してコア101から制御部102に対してリードの実行が要求される(ステップS101)。制御部102においては、パイプラインにリード要求が投入され、リード要求が処理されるとタグメモリ112の検索などが行われる。図4の例では、コア101によって要求されたデータがデータメモリ106に記憶されておらず、データのアドレスがタグメモリ112に保持されていない。すなわち、キャッシュミスが生じるため、制御部102からMIバッファ113を介してMAC115へデータの転送が指示される(ステップS102)。そして、コア101によって要求されたデータは、MAC115によって図示しない主記憶部から取得され、MIDQ104へ転送され(ステップS103)、MIDQ104に一時的に保持される。
また、制御部102においては、リード要求が投入された後、所定サイクルの間隔をあけて、MIバッファ113からパイプラインにムーブイン要求が投入される。パイプラインへのリード要求の投入後、ムーブイン要求の投入までに所定サイクルの間隔をあけるのは、データメモリ106やデータバス109などの資源が複数の命令によって同時に使用されることを防ぐためである。
なお、実際にキャッシュミスが生じた場合には、上述したように、MIバッファ113からMAC115に対してキャッシュミスしたデータをMIDQ104へ転送するように指示され、該当するデータがMAC115によってMIDQ104へ転送された後に、ムーブイン要求が投入される。したがって、パイプラインへムーブイン要求が投入される前に、MIDQ104へのムーブイン対象のデータの転送を完了する必要がある。このため、パイプラインへのリード要求の投入からムーブイン要求の投入までの間隔は、データメモリ106やデータバス109などの資源が複数の命令によって同時に使用されることを防ぐために必要な間隔よりも長く(例えば100サイクル以上)なる。
キャッシュミスしたデータがMIDQ104に保持され、制御部102のパイプラインにムーブイン要求が投入されると、MIDQ104に保持されたデータは、セレクタ105を介してデータメモリ106へ出力され(ステップS104)、データメモリ106に書き込まれる。データがデータメモリ106に書き込まれると、同一のデータがMIDQ104からラインL0を介してセレクタ107へ出力され、セレクタ107、108、およびデータバス109を介してコア101へ転送される(ステップS105)。これにより、コア101は、ムーブインの完了と同時に要求したデータを取得することができる。ここで、もし、ラインL0およびセレクタ107が配設されていなければ、ステップS105の工程は実行不可能であり、コア101がデータを取得するまでには、ムーブインの完了後、さらに図4に破線で示した工程が必要となる。
すなわち、ステップS105の処理が実行されることなく、MIバッファ113から制御部102に対して、再度リードの実行が要求される。制御部102においては、パイプラインにリード要求が投入され、リード要求が処理されるとタグメモリ112の検索などが行われる。ここでは、既に完了したムーブインにより、コア101によって要求されたデータがデータメモリ106に記憶されている。すなわち、キャッシュヒットするため、データメモリ106に対して、要求されたデータを出力するように指示される(ステップS201)。そして、データメモリ106からコア101へ要求されたデータが転送されることになる(ステップS202)。
以上のステップS201〜S202の工程は、ラインL0およびセレクタ107を設けることにより、省略することが可能となり、制御部102のパイプラインにおいてリード1つを実行する時間だけレイテンシを短縮することができる。つまり、ラインL0およびセレクタ107がない場合には、図5の上段に示すように、コア101がデータを取得するまでに、パイプラインにおいて2つのリード(RD)と1つのムーブイン(MI)が実行される。これに対して、本実施の形態に係るラインL0およびセレクタ107がある場合には、図5の下段に示すように、コア101は、1つのリード(RD)と1つのムーブイン(MI)の実行のみで、要求したデータを取得することができる。
したがって、本実施の形態においては、リード1つ分の時間だけレイテンシを短縮することができると同時に、パイプラインに投入されるリード要求の数が削減されるため、結果として、パイプラインの使用回数を削減することができる。
次に、制御部102におけるパイプライン処理の具体例について、図6を参照しながら説明する。図6は、リード要求、ムーブイン要求、リード要求の順で制御部102のパイプラインに命令が投入される場合のパイプライン処理の一例を示す図である。図6において、上部の数字は、サイクル数を示している。また、各サイクルを横切る太線は、それぞれのサイクルにおいて、データメモリ106およびデータバス109などの資源を使用した処理が実行されることを示している。ただし、図6に示すサイクル数は、説明の便宜上用いる数字であるため、実際のパイプライン処理におけるサイクル数は、図6と異なっていても良い。また、以下においては、データの書き込みおよび読み出し時のデータメモリ106に対するアクセスには4サイクルが必要であるものとする。同様に、データバス109によるコア101へのデータの転送にも4サイクルが必要であるものとする。
第0サイクルで制御部102のパイプラインにリード要求が投入されると、データメモリ106およびデータバス109などの資源に関して、投入されたリード要求と次の命令とが干渉しないように、第0サイクルから第3サイクルの4サイクルの間パイプラインへの命令の投入が禁止される。すなわち、上述したように、リードの実行中におけるデータメモリ106からのデータの読み出しには4サイクルが必要であるため、リードの実行によって4サイクルの間はデータメモリ106が占有される。同様に、リードの実行に伴うデータの転送によって、4サイクルの間はデータバス109が占有される。したがって、次に投入される命令との干渉が生じないように、第0サイクルから第3サイクルの4サイクルの間は、パイプラインによる新たな命令の実行開始が待機される。
また、第0サイクルでリード要求が投入されると、第1サイクルから第4サイクルにおいて、タグメモリ112におけるアドレスの検索などが実行され、第5サイクルから第8サイクルの4サイクルにおいて、データメモリ106からのデータの読み出しが実行される。そして、第9サイクルでは、データがデータメモリ106からセレクタ107へ出力される。以後、第10サイクルから第11サイクルでデータがセレクタ107からセレクタ108へ転送され、第12サイクルから第15サイクルの4サイクルにおいて、データバス109によってデータがコア101へ転送される。これにより、最初のリードが完了する。
ところで、第0サイクルにおけるリード要求の投入により、第0サイクルから第3サイクルではパイプラインへの命令の投入が禁止されているが、第4サイクルになると、パイプラインに新たなムーブイン要求が投入される。ここでも、リード要求投入時と同様に、4サイクルの間パイプラインへの命令の投入が禁止される。すなわち、上述したように、ムーブインの実行中におけるデータメモリ106へのデータの書き込みには、4サイクルが必要であるため、ムーブインの実行によって、4サイクルの間はデータメモリ106が占有される。同様に、ムーブインの実行に伴うデータの転送によって、4サイクルの間はデータバス109が占有される。したがって、次に投入される命令のとの干渉が生じないように、第4サイクルから第7サイクルの4サイクルの間は、パイプラインによる新たな命令の実行開始が待機される。
また、第4サイクルでムーブイン要求が投入されると、第5サイクルから第7サイクルにおいて、タグメモリ112におけるアドレスの新規登録などが実行され、第8サイクルにおいて、MIDQ104に保持されたデータがセレクタ105を介してデータメモリ106へ出力される。そして、第9サイクルから第12サイクルの4サイクルにおいて、データメモリ106へのデータの書き込みが実行される。また、第13サイクルでは、データメモリ106に書き込まれたデータと同一のデータが、MIDQ104からラインL0を介してセレクタ107へ出力される。以後、第14サイクルから第15サイクルでデータがセレクタ107からセレクタ108へ転送され、第16サイクルから第19サイクルの4サイクルにおいて、データバス109によってデータがコア101へ転送される。これにより、ムーブインが完了する。
ここで注目すべきなのは、最初のリード実行時およびムーブイン実行時の両方において、命令が投入されてから9サイクル目でセレクタ107へデータが出力されていることである。つまり、リード実行時には第0サイクルでリード要求が投入され、第9サイクルでデータがセレクタ107へ出力されている。一方、ムーブイン実行時には第4サイクルでムーブイン要求が投入され、第13サイクルでデータがセレクタ107へ出力されている。したがって、セレクタ107からコア101までのデータ転送に関しては、リード実行時およびムーブイン実行時の両方に共通した制御を実行すれば良い。
このように、データメモリ106の入力部分と出力部分とを接続するラインL0を設けることにより、MIDQ104から出力されたデータをデータメモリ106から出力されたデータと同等に扱うことが可能となる。すなわち、データメモリ106の入力部分からラインL0経由で出力部分へデータを転送するタイミングを、リード実行時にデータメモリ106から実際にデータが出力されるタイミングと一致させることができる。そして、結果として、リード実行時およびムーブイン実行時のセレクタ107からコア101までのデータ転送に関する制御を共通化することができる。
ところで、第4サイクルにおけるムーブイン要求の投入により、第4サイクルから第7サイクルではパイプラインへの命令の投入が禁止されているが、第8サイクルになると、パイプラインに新たなリード要求が投入される。以降、最初のリードと同様に、第13サイクルから第16サイクルにおいて、データメモリ106からデータが読み出され、リード要求の投入から9サイクル目に当たる第17サイクルでは、データメモリ106から読み出されたデータがセレクタ107へ出力される。そして、第20サイクルから第23サイクルにおいて、データバス109によってデータがコア101へ転送される。これにより、2つ目のリードが完了する。
以上の2つのリードおよび1つのムーブインは、互いに4サイクルの間隔があけられてパイプラインに投入されている。このため、図6に示すように、データメモリ106およびデータバス109は、3つの命令によって途切れることなく連続して使用されることになる。すなわち、データメモリ106は、最初のリードによって第5サイクルから第8サイクルにアクセスされており、ムーブインによって第9サイクルから第12サイクルでアクセスされており、2つ目のリードによって第13サイクルから第16サイクルにアクセスされている。また、データバス109は、最初のリードによって第12サイクルから第15サイクルにデータを転送し、ムーブインによって第16サイクルから第19サイクルでデータを転送し、2つ目のリードによって第20サイクルから第23サイクルでデータを転送している。
このように、本実施の形態においては、データメモリ106およびデータバス109などの資源における命令間の干渉がなく、かつ、資源が途切れることなく連続して使用されており、資源利用の効率化を図ることができる。なお、図6に示した例では、リードおよびムーブインの双方がデータメモリ106およびデータバス109を4サイクルずつ占有するものとしたが、占有するサイクル数は、4サイクルに限定されない。また、必ずしもデータメモリ106およびデータバス109が占有されるサイクル数が等しくなくても良い。これらの場合には、連続する2つの命令間で資源の使用に関する干渉が発生しないように、最も長い資源の占有サイクル数をパイプラインへの命令投入禁止期間とすれば良い。
以上のように、本実施の形態によれば、キャッシュメモリの一部を構成するデータメモリの入力部分と出力部分とを接続し、ムーブイン実行時に入力部分からデータメモリへ入力されるデータと同一のデータをデータメモリの出力部分にも転送する。このため、ムーブインによってデータメモリに書き込まれたデータをリード実行時にデータメモリから読み出されたデータと同等に扱うことができる。すなわち、ムーブインによってデータメモリに書き込まれたデータを改めてリードによって読み出す必要がなく、リードの実行を省略することができる。結果として、回路規模を増大させることなく、キャッシュミス時にコアがデータを取得するまでのレイテンシを短縮することができる。
以上の実施の形態に関して、さらに以下の付記を開示する。
(付記1)データを使用した演算処理を実行する演算処理手段と、
主記憶部によって記憶されるデータのうち前記演算処理手段によって使用されるデータを記憶するキャッシュメモリと、
前記キャッシュメモリの入力部分と出力部分とを接続する接続手段と、
主記憶部のデータが前記キャッシュメモリの入力部分から前記キャッシュメモリに入力される場合に、当該データを前記接続手段経由で前記キャッシュメモリの出力部分へ転送させる制御手段と、
前記制御手段の制御により前記キャッシュメモリの出力部分へ転送されたデータを前記演算処理手段へ転送する転送手段と
を有することを特徴とするキャッシュメモリ制御装置。
(付記2)前記キャッシュメモリの入力部分に設けられ、主記憶部のデータを前記キャッシュメモリに書き込む際に一時的に保持するキュー手段をさらに有し、
前記制御手段は、
前記キュー手段から出力されるデータを前記接続手段経由で前記キャッシュメモリの出力部分へ転送させることを特徴とする付記1記載のキャッシュメモリ制御装置。
(付記3)前記キャッシュメモリの出力部分に設けられ、前記キャッシュメモリから実際に出力されるデータおよび前記接続手段経由で転送されたデータのいずれか一方を選択する選択手段をさらに有し、
前記転送手段は、
前記選択手段によって選択されたデータを前記演算処理手段へ転送することを特徴とする付記1記載のキャッシュメモリ制御装置。
(付記4)前記選択手段は、
前記演算処理手段によって要求されるデータが前記キャッシュメモリに記憶されておらず、当該データが主記憶部から前記キャッシュメモリへ転送される場合に、前記接続手段経由で転送されたデータを選択することを特徴とする付記3記載のキャッシュメモリ制御装置。
(付記5)前記制御手段は、
前記キャッシュメモリに入力されたデータが前記キャッシュメモリに書き込まれた後に、当該データと同一のデータを前記接続手段経由で前記キャッシュメモリの出力部分へ転送させることを特徴とする付記1記載のキャッシュメモリ制御装置。
(付記6)前記制御手段は、
データの転送に関する命令をパイプライン処理するパイプライン処理手段を含み、
前記パイプライン処理手段のパイプライン処理において、前記キャッシュメモリから実際にデータが出力されるサイクルと、前記接続手段経由で前記キャッシュメモリの出力部分へデータが転送されるサイクルとを一致させることを特徴とする付記1記載のキャッシュメモリ制御装置。
(付記7)前記パイプライン処理手段は、
1つの命令の実行が開始された後、前記キャッシュメモリに対するアクセスが継続するサイクル数だけ次の命令の実行開始を待機することを特徴とする付記6記載のキャッシュメモリ制御装置。
(付記8)前記パイプライン処理手段は、
1つの命令の実行が開始された後、前記転送手段によるデータ転送に必要なサイクル数だけ次の命令の実行開始を待機することを特徴とする付記6記載のキャッシュメモリ制御装置。
(付記9)データを使用した演算処理を実行するプロセッサコアと、
メインメモリに記憶されるデータを記憶するキャッシュメモリと、
前記キャッシュメモリの入力部分と出力部分とを接続する接続ラインと、
前記メインメモリのデータを前記キャッシュメモリに入力する場合に、当該データを前記接続ライン経由で前記キャッシュメモリの出力部分へ転送させる制御手段と、
前記制御手段の制御により前記キャッシュメモリの出力部分へ転送されたデータを前記プロセッサコアへ転送するデータバスと
を有することを特徴とする半導体集積回路。
(付記10)前記プロセッサコアを複数有し、
前記キャッシュメモリは、
それぞれ記憶するデータのアドレスが異なる前記メインメモリの複数のバンクに対応して分割されることを特徴とする付記9記載の半導体集積回路。
(付記11)データを使用した演算処理を実行する演算処理手段と、主記憶部によって記憶されるデータのうち前記演算処理手段によって使用されるデータを記憶するキャッシュメモリとを備えるキャッシュメモリ制御装置におけるキャッシュメモリ制御方法であって、
主記憶部のデータを前記キャッシュメモリの入力部分から入力して前記キャッシュメモリに書き込む書込ステップと、
前記書込ステップにて前記キャッシュメモリに書き込まれたデータを前記キャッシュメモリの入力部分から前記キャッシュメモリの出力部分へ転送する第1転送ステップと、
前記第1転送ステップにて転送されたデータを前記キャッシュメモリの出力部分から前記演算処理手段へ転送する第2転送ステップと
を有することを特徴とするキャッシュメモリ制御方法。
一実施の形態に係る半導体集積回路の概略構成を示す図である。 一実施の形態に係る半導体集積回路の要部構成を示す図である。 一実施の形態に係るキャッシュメモリ制御装置における接続関係を示す図である。 一実施の形態に係るキャッシュミス時の動作を示すシーケンス図である。 一実施の形態に係るレイテンシの短縮を説明する図である。 一実施の形態に係るパイプライン処理の一例を示す図である。 情報処理装置の構成の一例を示す図である。 情報処理装置におけるレイテンシを説明する図である。
符号の説明
100 半導体集積回路
101、101−0、101−1 コア
102 制御部
103 WBDQ
104 MIDQ
105、107、108、111 セレクタ
106 データメモリ
109 データバス
110 MIポート
112 タグメモリ
113 MIバッファ
114 MODQ
115 MAC
L0 ライン

Claims (4)

  1. データを記憶する主記憶装置に接続する演算処理装置において、
    メモリアクセス命令をそれぞれ実行する複数の演算処理部と、
    前記主記憶装置から読みだしたデータを複数のバンクに分割された前記主記憶装置に対応してそれぞれ保持する複数のキャッシュメモリと、
    前記主記憶装置から読みだしたデータ又は前記キャッシュメモリから読みだしたデータのいずれかを選択する選択部と、
    前記選択部が選択したデータを前記複数の演算処理部のいずれかに転送する転送部と、
    前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記複数のキャッシュメモリのいずれかに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置の複数のバンクのいずれかから読みだしたデータを前記複数のキャッシュメモリのうち前記主記憶装置の複数のバンクのいずれかに対応するキャッシュメモリに保持させるとともに、前記主記憶装置の複数のバンクのいずれかから読みだした前記データを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に対して転送させる制御部と、を有し、
    前記制御部は、
    前記メモリアクセス命令を複数のステージを有するパイプラインで処理するとともに、前記キャッシュメモリからデータを読み出す場合の前記パイプラインにおける前記キャッシュメモリからデータを読み出すタイミングと、前記複数の演算処理部のいずれかが前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合の前記パイプラインにおける前記主記憶装置から読みだしたデータを前記選択部に出力させるタイミングとを一致させるとともに、メモリアクセスの実行を開始した後、前記キャッシュメモリに対するアクセスに必要な期間、または前記転送部によるデータ転送に必要な期間、だけ後続のメモリアクセス命令の実行を待機させる
    ことを特徴とする演算処理装置。
  2. 前記演算処理装置はさらに、
    前記主記憶装置から読みだしたデータを保持して前記キャッシュメモリに出力するキューを有し、
    前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを、前記キューを介して前記キャッシュメモリに保持させるとともに、前記キューから読みだしたデータを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させる制御部を有することを特徴とする請求項1記載の演算処理装置。
  3. 前記制御部は、
    前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合、前記キャッシュミスの発生に応じて前記主記憶装置から読みだしたデータを前記キャッシュメモリに保持させた後に、前記主記憶装置から読みだしたデータを前記選択部に選択させ、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に転送させることを特徴とする請求項1または2に記載の演算処理装置。
  4. データを記憶する主記憶装置に接続するとともに、前記主記憶装置から読みだしたデータを複数のバンクに分割された前記主記憶装置に対応してそれぞれ保持する複数のキャッシュメモリを有する演算処理装置の制御方法において、
    前記演算処理装置が有する複数の演算処理部が、メモリアクセス命令をそれぞれ実行し、
    前記演算処理装置が有する選択部が、前記主記憶装置から読みだしたデータ又は前記キャッシュメモリから読みだしたデータのいずれかを選択し、
    前記演算処理装置が有する転送部が、前記選択部が選択したデータを前記複数の演算処理部のいずれかに転送し、
    前記複数の演算処理部のいずれかが、前記メモリアクセス命令の実行に応じて前記複数のキャッシュメモリのいずれかに対して要求したデータがキャッシュミスを発生させた場合、前記演算処理装置が有する制御部が、前記キャッシュミスの発生に応じて前記主記憶装置の複数のバンクのいずれかから読みだしたデータを前記複数のキャッシュメモリのうち前記主記憶装置の複数のバンクのいずれかに対応するキャッシュメモリに保持させ、
    前記制御部が、前記主記憶装置の複数のバンクのいずれかから読みだした前記データを前記選択部に選択させ、
    前記制御部が、前記選択部に選択させたデータを前記転送部に前記複数の演算処理部のうち前記キャッシュミスを発生させたデータを要求した演算処理部に対して転送させ、
    前記制御部が、前記メモリアクセス命令を複数のステージを有するパイプラインで処理するとともに、前記キャッシュメモリからデータを読み出す場合の前記パイプラインにおける前記キャッシュメモリからデータを読み出すタイミングと、前記複数の演算処理部のいずれかが前記キャッシュメモリに対して要求したデータがキャッシュミスを発生させた場合の前記パイプラインにおける前記主記憶装置から読みだしたデータを前記選択部に出力させるタイミングとを一致させ、
    前記制御部が、メモリアクセスの実行を開始した後、前記キャッシュメモリに対するアクセスに必要な期間、または前記転送部によるデータ転送に必要な期間、だけ後続のメモリアクセス命令の実行を待機させる
    ことを特徴とする演算処理装置の制御方法。
JP2008139986A 2008-05-28 2008-05-28 演算処理装置及び演算処理装置の制御方法 Active JP5583893B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008139986A JP5583893B2 (ja) 2008-05-28 2008-05-28 演算処理装置及び演算処理装置の制御方法
EP09152023.9A EP2128771B1 (en) 2008-05-28 2009-02-04 Method and apparatus for controlling cache memory
US12/320,941 US8200900B2 (en) 2008-05-28 2009-02-09 Method and apparatus for controlling cache memory
KR1020090016447A KR100983299B1 (ko) 2008-05-28 2009-02-26 캐쉬 메모리 제어 장치, 반도체 집적 회로 및 캐쉬 메모리 제어방법
CN2009101184641A CN101593158B (zh) 2008-05-28 2009-03-09 控制高速缓冲存储器的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008139986A JP5583893B2 (ja) 2008-05-28 2008-05-28 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2009288977A JP2009288977A (ja) 2009-12-10
JP5583893B2 true JP5583893B2 (ja) 2014-09-03

Family

ID=41037719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008139986A Active JP5583893B2 (ja) 2008-05-28 2008-05-28 演算処理装置及び演算処理装置の制御方法

Country Status (5)

Country Link
US (1) US8200900B2 (ja)
EP (1) EP2128771B1 (ja)
JP (1) JP5583893B2 (ja)
KR (1) KR100983299B1 (ja)
CN (1) CN101593158B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028343A (ja) * 2009-07-22 2011-02-10 Fujitsu Ltd 演算処理装置、およびデータ転送方法
CN101901191A (zh) * 2010-05-31 2010-12-01 深圳市茁壮网络股份有限公司 嵌入式系统多类内存管理方法及装置
KR101975528B1 (ko) 2012-07-17 2019-05-07 삼성전자주식회사 패스트 어레이 영역을 갖는 반도체 메모리 셀 어레이 및 그것을 포함하는 반도체 메모리
CN102902631B (zh) * 2012-09-18 2015-04-15 杭州中天微系统有限公司 一种避免读缺失时数据回写的多处理器核间传输方法
CN106502810B (zh) * 2016-09-09 2019-05-24 华为技术有限公司 一种高速缓冲存储器的故障检测方法及装置
US10884957B2 (en) * 2018-10-15 2021-01-05 Intel Corporation Pipeline circuit architecture to provide in-memory computation functionality

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6272041A (ja) * 1985-09-25 1987-04-02 Nec Corp キヤツシユメモリ制御装置
US4851993A (en) * 1987-04-20 1989-07-25 Amdahl Corporation Cache move-in bypass
JPS6429953A (en) * 1987-07-25 1989-01-31 Fujitsu Ltd Controller for buffer move-in of buffer storage system
JPH02133842A (ja) * 1988-11-15 1990-05-23 Fujitsu Ltd 中間バッファプリフェッチ制御方式
US4998221A (en) * 1989-10-31 1991-03-05 International Business Machines Corporation Memory by-pass for write through read operations
JP2673041B2 (ja) * 1990-10-19 1997-11-05 富士通株式会社 命令実行制御方式
US5454093A (en) 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
JPH10111798A (ja) 1996-10-07 1998-04-28 Fujitsu Ltd 情報処理装置
JPH11184695A (ja) 1997-12-19 1999-07-09 Nec Corp キャッシュメモリ及びキャッシュメモリへのアクセス方法
US6901450B1 (en) * 2000-09-22 2005-05-31 Hitachi, Ltd. Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
US6865665B2 (en) * 2000-12-29 2005-03-08 Stmicroelectronics, Inc. Processor pipeline cache miss apparatus and method for operation
US7248585B2 (en) 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
JP4092112B2 (ja) * 2002-02-26 2008-05-28 富士通株式会社 演算処理装置
JP4180569B2 (ja) * 2003-01-27 2008-11-12 富士通株式会社 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法
JP4904796B2 (ja) * 2005-12-07 2012-03-28 セイコーエプソン株式会社 キャッシュメモリ及びマルチプロセッサシステム
JP2008107983A (ja) * 2006-10-24 2008-05-08 Nec Electronics Corp キャッシュメモリ
US20080140934A1 (en) * 2006-12-11 2008-06-12 Luick David A Store-Through L2 Cache Mode

Also Published As

Publication number Publication date
CN101593158A (zh) 2009-12-02
JP2009288977A (ja) 2009-12-10
EP2128771A1 (en) 2009-12-02
KR100983299B1 (ko) 2010-09-24
EP2128771B1 (en) 2018-07-25
KR20090123771A (ko) 2009-12-02
US20090300287A1 (en) 2009-12-03
US8200900B2 (en) 2012-06-12
CN101593158B (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
EP2372530A1 (en) Data processing method and device
JP5583893B2 (ja) 演算処理装置及び演算処理装置の制御方法
US6101589A (en) High performance shared cache
TWI553483B (zh) 處理器及存取記憶體的方法
JP5499987B2 (ja) 共有キャッシュメモリ装置
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
KR20010014592A (ko) 파이프라인 메모리 시스템의 다중 목적에 대한 다중 요구지원
JP4750889B2 (ja) キャッシュメモリ制御装置、およびパイプライン制御方法
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
US8713216B2 (en) Processor and data transfer method
JP2011154528A (ja) データ処理装置
JP2012014436A (ja) ダイレクトメモリアクセス制御装置及び方法
JP2012008747A (ja) 集積装置、メモリ割り当て方法、および、プログラム
CN102405466A (zh) 存储控制装置及其控制方法
US6349370B1 (en) Multiple bus shared memory parallel processor and processing method
JP7567133B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
CN100449514C (zh) 电气装置和用于控制存储访问的方法
JP4918535B2 (ja) キャッシュメモリ、キャッシュメモリ装置及び割当て方法
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP2008257508A (ja) キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ
JP5091548B2 (ja) メモリシステム
JP5968693B2 (ja) 半導体装置
JP5270605B2 (ja) マイクロコントローラ
JP2011118744A (ja) 情報処理装置
JP6477185B2 (ja) 演算処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130524

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140717

R150 Certificate of patent or registration of utility model

Ref document number: 5583893

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150