[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2007114890A - 演算処理装置およびキャッシュ動作方法 - Google Patents

演算処理装置およびキャッシュ動作方法 Download PDF

Info

Publication number
JP2007114890A
JP2007114890A JP2005303540A JP2005303540A JP2007114890A JP 2007114890 A JP2007114890 A JP 2007114890A JP 2005303540 A JP2005303540 A JP 2005303540A JP 2005303540 A JP2005303540 A JP 2005303540A JP 2007114890 A JP2007114890 A JP 2007114890A
Authority
JP
Japan
Prior art keywords
cache
access address
access
input means
local
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.)
Withdrawn
Application number
JP2005303540A
Other languages
English (en)
Inventor
Masahide Kaketa
雅英 掛田
Masaichi Nakajima
雅逸 中島
Takao Yamamoto
崇夫 山本
Shinji Ozaki
伸治 尾崎
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005303540A priority Critical patent/JP2007114890A/ja
Priority to EP06118646A priority patent/EP1835408A3/en
Priority to US11/510,670 priority patent/US20070088896A1/en
Priority to CNA2006101599082A priority patent/CN1952912A/zh
Publication of JP2007114890A publication Critical patent/JP2007114890A/ja
Withdrawn 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/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

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

Abstract

【課題】マルチプロセッサ構成の演算処理装置において、シングルプロセッサとして利用した場合に、キャッシュヒット率の低下を回避する。
【解決手段】キャッシュアクセス伝達手段132はCPU110からローカルキャッシュアクセスアドレス入力手段161を介して取得したアクセスアドレスを、リモートキャッシュアクセスアドレス出力手段164を介して共有アドレスバス81に出力する。キャッシュアクセス制御手段231は共有アドレスバス81からリモートキャッシュアクセスアドレス入力手段265を介して取得したアクセスアドレスを用いて、キャッシュメモリ221へのアクセスを行う。すなわち、プロセッサ100のCPU110から出力されたアクセスアドレスは、キャッシュアクセス伝達手段132から出力され、キャッシュアクセス制御手段231によって取得されて、プロセッサ200のキャッシュメモリ221へのアクセスに利用可能となる。
【選択図】図1

Description

本発明は、マルチプロセッサ構成の演算処理装置に関し、特に、プロセッサからローカルキャッシュを効率的に使用するために有効な技術に関する。
従来、製造プロセス技術の進歩やスーパーパイプライン技術による動作周波数の向上や、スーパスケーラやその効率を上げるレジスタ・リネーム、OUT OF ORDER実行、分岐予測、投機実行技術によるCPI(CLOCK CYCLES PER INSTRUCTION)の減少による、並列処理技術によるプロセッサの性能向上が行われてきた。さらに、昨今では、上述したような高速実装技術に加えて、マルチプロセッサ技術による処理性能の向上も多く取り入れられている。
特開昭63−240649号公報(第一図) 特開平5−197622号公報(第一図) John L. Hennessy & David A. Patterson "Computer Architecture A Quantitative Approach Third Edition" Chapter Six Multiprocessors and Thread-Level Parallelism Snooping Protocols [P.551]
しかしながら、マルチプロセッサを使用する場合は、従来から使用しているソフトウェアをそのまま流用することはできない。たとえば、LinuxOSを採用している組み込みソフトウェアでは、マルチプロセッサに対応したLinuxなどのOSとPOSIXマルチスレッドライブラリ対応などにより、ソフトウェアの改変を最小限にした上でマルチプロセッサを使用することは可能である。しかしながら、OSをもたない組み込みソフト、μITRONのようにマルチプロセッサ対応が少し遅れていたOSなどを採用している場合、ソフトウェア開発工数を考慮する必要がある。
また、将来的にはマルチプロセッサ対応が考えられる場合であっても、ソフトウェア開発工数を鑑み、シングルプロセッサでソフトウェア開発を行った後、そのプラットフォームで継続的にマルチプロセッサ対応を行っていくなどの開発方法がとられることもあり得る。さらに、ハードウェアの不良箇所によっては、すべてのキャッシュは使用可能であるが使用できないプロセッサがある場合もあり、このような場合にも、マルチプロセッサをシングルプロセッサとして利用することが考えられる。
以上のように、マルチプロセッサ技術によって性能向上されたチップにおいても、マルチプロセッサを搭載した演算処理装置をシングルプロセッサとして利用する場合について、考慮する必要がある。
ところが、マルチプロセッサ構成の演算処理装置において、シングルプロセッサのみを使用する場合、キャッシュの容量がローカルキャッシュ分しかないため、キャッシュ容量が低下し、キャッシュヒット率が低下する、という問題が生じる。
前記の問題に鑑み、本発明は、マルチプロセッサの構成をもった演算処理装置において、シングルプロセッサとして利用した場合に、マルチプロセッサが有しているキャッシュ容量を有効に活用し、キャッシュヒット率の低下を回避することを課題とする。
本発明では、マルチプロセッサをシングルプロセッサとして利用する場合、利用しないプロセッサに接続されたローカルキャッシュを、スヌープキャッシュ機能の資源を有効に用いることによって、動作させるプロセッサのローカルキャッシュとして活用する。
すなわち、本発明は、CPUとローカルキャッシュとをそれぞれ有する複数のプロセッサを備えた演算処理装置として、前記各プロセッサは共有バスとその制御を行う制御部とを有する共有バス制御手段に共通に接続されており、前記各プロセッサが有するローカルキャッシュは、キャッシュメモリと、キャッシュ制御手段とを備え、前記キャッシュ制御手段は、それぞれ、前記CPUからのアクセスアドレスを受けるローカルキャッシュアクセスアドレス入力手段と、前記共有バスからのアクセスアドレスを受けるリモートキャッシュアクセスアドレス入力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段または前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行うキャッシュアクセス制御手段と、前記ローカルキャッシュアクセスアドレス入力手段と、前記共有バスにアクセスアドレスを出力するリモートキャッシュアクセスアドレス出力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する機能を有するキャッシュアクセス伝達手段と、シングルキャッシュ動作モードとして動作するかまたはスヌープキャッシュ動作モードとして動作するかを設定可能に構成されたキャッシュ動作モード選択手段とを備えたものである。
本発明によると、ローカルキャッシュのキャッシュ制御手段において、キャッシュアクセス伝達手段は、CPUからローカルキャッシュアクセスアドレス入力手段を介して取得したアクセスアドレスを、リモートキャッシュアクセスアドレス出力手段を介して、共有バスに出力することができる。また、キャッシュアクセス制御手段は、CPUからローカルキャッシュアクセスアドレス入力手段を介して取得したアクセスアドレスを用いて、キャッシュメモリへのアクセスを行うことができるとともに、共有バスからリモートキャッシュアクセスアドレス入力手段を介して取得したアクセスアドレスを用いて、キャッシュメモリへのアクセスを行うことができる。すなわち、あるプロセッサのCPUから出力されたアクセスアドレスは、そのプロセッサのキャッシュアクセス伝達手段から共有バスに出力され、他のプロセッサのキャッシュアクセス制御手段によって共有バスから取得されて、他のプロセッサのキャッシュメモリへのアクセスに利用可能となる。したがって、あるプロセッサが単独で動作する場合に、他のプロセッサのキャッシュメモリを、当該プロセッサのローカルキャッシュとして利用することができる。
そして、本発明に係る演算処理装置において、前記キャッシュ動作モード選択手段が、シングルキャッシュ動作モードを設定している場合において、前記複数のプロセッサのうち動作する第1のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段は有効化されるとともに、前記リモートキャッシュアクセスアドレス入力手段は無効化され、前記キャッシュアクセス制御手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力し、前記複数のプロセッサのうち前記第1のプロセッサ以外のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段は無効化されるとともに前記リモートキャッシュアクセスアドレス入力手段は有効化され、前記キャッシュアクセス制御手段は、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段は前記共有バスにアクセスアドレスを出力しないものとする。
また、本発明は、前記本発明に係る演算処理装置において、キャッシュ動作を行う方法として、前記キャッシュ動作モード選択手段にシングルキャッシュ動作モードまたはスヌープキャッシュ動作モードを設定する第1の工程と、前記第1の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち動作する第1のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段を有効化するとともに前記リモートキャッシュアクセスアドレス入力手段を無効化し、前記キャッシュアクセス制御手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する第2の工程と、前記第1の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち前記第1のプロセッサ以外のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段を無効化するとともに前記リモートキャッシュアクセスアドレス入力手段を有効化し、前記キャッシュアクセス制御手段が、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段が、前記共有バスにアクセスアドレスを出力しない第3の工程とを備えたものである。
本発明によると、マルチプロセッサ構成の演算処理装置をシングルプロセッサとして利用する場合、動作しない他のプロセッサのキャッシュメモリを、動作するプロセッサのローカルキャッシュとして利用することができる。これにより、キャッシュ容量低下によるキャッシュヒット率の低下を回避することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は本実施形態に係る演算処理装置としてのマルチプロセッサ10の機能ブロック構成図である。マルチプロセッサ10は、2つのプロセッサ100,200と、共有バスとしての共有アドレスバス81,共有データバス82およびその制御を行う制御部83を有する共有バス制御手段80を備えており、プロセッサ100,200はそれぞれ共有バス制御手段80に共通に接続されている。
プロセッサ100(200)は、CPU110(210)とローカルキャッシュ111(211)とを備えており、ローカルキャッシュ111(211)は、命令ローカルキャッシュ120(220)とデータローカルキャッシュ140(240)から構成されている。命令ローカルキャッシュ120(220)は、キャッシュメモリ121(221)とキャッシュ制御手段122(222)からなり、データローカルキャッシュ140(240)は、キャッシュメモリ141(241)とキャッシュ制御手段142(242)からなる。なお、本実施形態では、プロセッサ200の各構成要素について、プロセッサ100と同様である場合には、その符号を括弧書きで示すものとする。
キャッシュ制御手段122,142(222、242)は、CPU110(210)からキャッシュメモリ121,141(221,241)へのアクセス要求を伝達するキャッシュアクセス制御手段131,151(231,251)と、他ローカルキャッシュにアクセス内容を伝達するキャッシュアクセス伝達手段132,152(232,252)と、他ローカルキャッシュがアクセスした内容を監視するキャッシュアクセス監視手段133,153(233,253)と、CPU110(210)と外部メモリとのデータ転送およびそのデータ整合性の管理を行い、かつ、各キャッシュ間のデータ転送およびそのデータ整合性の管理を行うデータ整合性管理手段134,154(234,254)と、マルチプロセッサ10のそれぞれのローカルキャッシュ111(211)がスヌープキャッシュとして動作するか、シングルキャッシュとして動作するかを示すキャッシュ動作モードを記憶するキャッシュ動作モード選択手段135,155(235,255)を備えている。
キャッシュ動作モード選択手段135,155,235,255は、例えばレジスタによって構成されるものであり、スヌープキャッシュ動作モード、または、シングルキャッシュ動作モードのいずれかを、外部からの設定信号によって、共通に、設定可能に構成されている。
命令ローカルキャッシュ120(220)は、CPU110(210)と共有バス制御手段80とに接続されている。命令ローカルキャッシュ120(220)とCPU110(210)との間には、CPU110(210)からのフェッチアドレスを伝達するローカルキャッシュアクセスアドレス入力手段161(261)と、CPU110(210)からのフェッチアドレスに対応する命令を伝達するローカルキャッシュアクセスデータ出力手段162(262)とが設けられている。
また、命令ローカルキャッシュ120(220)と共有バス制御手段80との間には、命令ローカルキャッシュ120(220)からのフェッチアドレスを伝達するリモートキャッシュアクセスアドレス出力手段164(264)と、命令ローカルキャッシュ120(220)からのフェッチアドレスに対応する命令や、他ローカルキャッシュ140,220,240(120,140,240)からの共有データを伝達するリモートキャッシュアクセスデータ入力手段167(267)とが、設けられている。リモートキャッシュアクセスアドレス出力手段164(264)は共有バス制御手段80の共有アドレスバス81と接続されており、リモートキャッシュアクセスデータ入力手段167(267)は共有バス制御手段80の共有データバス82に接続されている。さらに、他ローカルキャッシュ140,220,240(120,140,240)とのデータ転送のために、他ローカルキャッシュ140,220,240(120,140,240)のアクセス内容を伝達するリモートキャッシュアクセスアドレス入力手段165(265)と、命令ローカルキャッシュ120(220)から共有バス制御手段80にデータを転送するリモートキャッシュアクセスデータ出力手段166(266)とが、設けられている。リモートキャッシュアクセスアドレス入力手段165(265)は共有バス制御手段80の共有アドレスバス81に接続されており、リモートキャッシュアクセスデータ出力手段166(266)は共有バス制御手段80の共有データバス82に接続されている。
データローカルキャッシュ140(240)は、CPU110(210)と共有バス制御手段80とに接続されている。データローカルキャッシュ140(240)とCPU110(210)との間には、CPU110(210)からの読み出しおよび書き込みアドレスを伝達するローカルキャッシュアクセスアドレス入力手段171(271)と、CPU110(210)からの読み出しアドレスに対応するデータを伝達するローカルキャッシュアクセスデータ出力手段172(272)と、CPU110(210)からの書き込みアドレスに対応するデータを伝達するローカルキャッシュアクセスデータ入力手段173(273)とが設けられている。
また、データローカルキャッシュ140(240)と共有バス制御手段80との間では、データローカルキャッシュ140(240)からのデータ読み出しおよび書き込みアドレスを伝達するリモートキャッシュアクセスアドレス出力手段174(274)と、データローカルキャッシュ140(240)からの読み出しアドレスに対応するデータや、他ローカルキャッシュ120,220,240(120,140,220)からの共有データを伝達するリモートキャッシュアクセスデータ入力手段177(277)とが設けられている。リモートキャッシュアクセスアドレス出力手段174(274)は共有バス制御手段80の共有アドレスバス81に接続されており、リモートキャッシュアクセスデータ入力手段177(277)は共有バス制御手段80の共有データバス82に接続されている。さらに、他ローカルキャッシュ120,220,240(120,140,220)とのデータ転送のために、他ローカルキャッシュ120,220,240(120,140,220)のアクセス内容を伝達するリモートキャッシュアクセスアドレス入力手段175(275)と、データローカルキャッシュ140(240)から外部メモリ等へデータを転送するリモートキャッシュアクセスデータ出力手段176(276)とが設けられている。リモートキャッシュアクセスアドレス入力手段175(275)は共有バス制御手段80の共有アドレスバス81に接続されており、リモートキャッシュアクセスデータ出力手段176(276)は共有バス制御手段80の共有データバス82に接続されている。
キャッシュアクセス制御手段131,151(231,251)は、CPU110(210)からのアクセスアドレスを受けるローカルキャッシュアクセスアドレス入力手段161,171(261,271)と、共有アドレスバス81からのアクセスアドレスを受けるリモートキャッシュアクセスアドレス入力手段165,175(265,275)とに接続されている。そして、ローカルキャッシュアクセスアドレス入力手段161,171(261,271)、またはリモートキャッシュアクセスアドレス入力手段165,175(265,275)から取得したアクセスアドレスを用いて、キャッシュメモリ121,141(221,241)へのアクセスを行う。
キャッシュアクセス伝達手段132,152(232,252)は、ローカルキャッシュアクセスアドレス入力手段161,171(261,271)と、共有アドレスバス81にアクセスアドレスを出力するリモートキャッシュアクセスアドレス出力手段164,174(264,274)とに接続されている。そして、ローカルキャッシュアクセスアドレス入力手段161,171(261,271)からアクセスアドレスを取得したとき、このアクセスアドレスをリモートキャッシュアクセスアドレス出力手段164,174(264,274)により、共有アドレスバス81に出力可能に構成されている。
キャッシュアクセス監視手段133,153(233,253)は、リモートキャッシュアクセスアドレス入力手段165,175(265,275)と接続されている。
データ整合性管理手段134,154(234,254)は、リモートキャッシュアクセスアドレス入力手段165,175(265,275)と接続されている。
そして、キャッシュ動作モード選択手段135,155(235,255)は、キャッシュアクセス制御手段131,151(231,251)、キャッシュアクセス伝達手段132,152(232,252)、キャッシュアクセス監視手段133,153(233,253)、およびデータ整合性管理手段134,154(234,254)と接続されている。すなわち、キャッシュアクセス制御手段131,151(231,251)、キャッシュアクセス伝達手段132,152(232,252)、キャッシュアクセス監視手段133,153(233,253)、およびデータ整合性管理手段134,154(234,254)は、キャッシュ動作モード選択手段135,155(235,255)に設定された動作モードに応じて、動作を行う。
なお、本実施形態では、共有バス制御手段80に設けられた共有アドレスバス81および共有データバス82は、外部メモリへのアクセスとキャッシュ間のアクセスとで兼用されているが、バス競合状態をできるだけ回避するために、外部メモリ用のバスとキャッシュ間アクセス用のバスを個別に備えるなどの方法もあり、この限りではない。
また、図1において実線または破線の矢印で示した各入力手段および出力手段は、信号を伝達するバスと、その制御機構とによって、実現される。
以下、図1の演算処理装置の動作について、動作モード毎に、説明を行う。
まず、キャッシュ動作モード選択手段135,155(235,255)において、スヌープキャッシュ動作モードが設定されている場合について説明する。
CPU110(210)から命令ローカルキャッシュ120(220)およびデータローカルキャッシュ140(240)へのメモリアクセスにおいて、キャッシュアクセス制御手段131,151(231,251)は、自CPU110(210)のローカルキャッシュアクセスを行うために、ローカルキャッシュアクセスアドレス入力手段161,171(261,271)により、キャッシュメモリ121,141(221,241)へのアクセスアドレスを取得し、キャッシュメモリアドレス出力手段136,156(236,256)を介してキャッシュメモリ121,141(221,241)へのアクセスを行う。
またこのとき、キャッシュアクセス伝達手段132,152(232,252)は、キャッシュを使用しない(非キャッシュ)読み出しアクセスの場合、キャッシュを使用しない(非キャッシュ)書き込みアクセスの場合、キャッシュを使用する(キャッシュ)書き込みアクセスの場合、および、キャッシュを使用する(キャッシュ)読み出しアクセスのキャッシュミスアクセスの場合に、ローカルキャッシュアクセスアドレス入力手段161,171(261,271)により取得したアクセスアドレスを、伝達信号として、リモートキャッシュアクセスアドレス出力手段164,174(264,274)を介して共有バス制御手段80に伝達する。この伝達信号によって、他のローカルキャッシュは、データ整合性を維持するための処理が必要か否かを判定することができる。
キャッシュアクセス監視手段133,153(233,253)は、他のローカルキャッシュ220(120)のキャッシュアクセス伝達手段232,252(132,152)から伝達信号が伝達されたとき、自ローカルキャッシュ120(220)のキャッシュメモリ121,141(221,241)を検索する。
そして、伝達信号が、非キャッシュ読み出しアクセス、または、キャッシュ読み出しのキャッシュミスアクセスによるものであるとき、データ整合性管理手段134,154(234,254)は、次のように動作する。すなわち、自ローカルキャッシュ120(220)が他ローカルキャッシュ220(120)のアクセス対象データを記憶している場合に、自ローカルキャッシュ120(220)が共有バス制御手段80に、対象データ、または、対象エントリのデータを出力するよう制御する。
伝達信号が、キャッシュ書き込みのキャッシュヒットアクセスによるものであるとき、データ整合性管理手段134,154(234,254)は次のように動作する。すなわち、自ローカルキャッシュ120(220)が他ローカルキャッシュ220(120)のアクセス対象データを記憶している場合に、自ローカルキャッシュ120(220)が、共有バス制御手段80に他ローカルキャッシュ220(120)から出力されている対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化するよう制御する。
伝達信号が、キャッシュ書き込みのキャッシュミスアクセスによるものであるとき、データ整合性管理手段134,154(234,254)は次のように動作する。すなわち、自ローカルキャッシュ120(220)が他ローカルキャッシュ220(120)のアクセス対象データを記憶している場合に、自ローカルキャッシュ120(220)が、共有バス制御手段80に他ローカルキャッシュ220(120)から出力されている対象データを記憶情報として更新し、対象エントリのデータを共有バス制御手段80に出力するよう制御する。そして、他ローカルキャッシュ220(120)のデータ整合性管理手段234,254(134,154)は、共有バス制御手段80に出力された対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化する。
伝達信号が、非キャッシュ書き込みアクセスによるものであるとき、データ整合性管理手段134,154(234,254)は次のように動作する。すなわち、自ローカルキャッシュ120(220)が他ローカルキャッシュ220(120)のアクセス対象データを記憶している場合、自ローカルキャッシュ120(220)が、共有バス制御手段80に他ローカルキャッシュ220(120)から出力されている対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化するよう制御する。
また、データ整合性管理手段134,154(234,254)は、外部メモリとのデータ転送および、そのデータ整合性の管理についても行う。なお、本実施形態では、非キャッシュアクセスにおいてもデータ整合性管理手段による対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化する制御を行うように記載したが、非キャッシュアクセスは、データ整合性管理を行わないと考えることも可能であり、この限りではない。
次に、キャッシュ動作モード選択手段135,155(235,255)において、シングルキャッシュ動作モードが設定されている場合について説明する。なお、ここでは、第1のプロセッサとしてのプロセッサ100がシングルプロセッサとして動作するものとする。動作するプロセッサの選択は、例えばレジスタ設定によって行えばよく、動作させるプロセッサを切り替えることも可能である。
プロセッサ100のローカルキャッシュ111において、ローカルキャッシュアクセスアドレス入力手段161,171は有効化されるとともに、リモートキャッシュアクセスアドレス入力手段165,175は無効化される。一方、プロセッサ200のローカルキャッシュ211において、ローカルキャッシュアクセスアドレス入力手段261,271は無効化されるとともに、リモートキャッシュアクセスアドレス入力手段265,275は有効化される。
プロセッサ100において、キャッシュアクセス制御手段131,151は、CPU110のローカルキャッシュアクセスを行うために、ローカルキャッシュアクセスアドレス入力手段161,171によりキャッシュメモリ121,141へのアクセスアドレスを取得し、取得したアクセスアドレスを、キャッシュメモリアドレス出力手段136,156を介してキャッシュメモリ121,141に出力する。また、キャッシュアクセス伝達手段132,152は、ローカルキャッシュアクセスアドレス入力手段161,171により取得したアクセスアドレスを、伝達信号として、常に、リモートキャッシュアクセスアドレス出力手段164,174を介して共有バス制御手段80の共有アドレスバス81に伝達する。この伝達信号によって、プロセッサ100以外のプロセッサすなわちプロセッサ200におけるローカルキャッシュ220は、CPU110のローカルキャッシュとして動作することができる。
一方、プロセッサ200において、キャッシュアクセス制御手段231,251は、CPU110のローカルキャッシュアクセスを行うために、リモートキャッシュアクセスアドレス入力手段265,275によりキャッシュメモリ221,241へのアクセスアドレスを取得し、取得したアクセスアドレスを、キャッシュメモリアドレス出力手段236,256を介してキャッシュメモリ221,241に出力する。また、キャッシュアクセス伝達手段232,252は、常に、取得したアクセスアドレスを、リモートキャッシュアクセスアドレス出力手段264,274を介して共有バス制御手段80の共有アドレスバス81に、伝達しない。
また、シングルキャッシュ動作モードにおいて、キャッシュアクセス監視手段133,153(233、253)は、動作しない。また、データ整合性管理手段134,154(234、254)は、各キャッシュ間のデータ転送およびデータ整合性の管理に関しては動作せず、外部メモリとのデータ転送およびデータ整合性の管理に関してのみ、動作する。
以上説明したように、キャッシュ動作モード選択手段135,155,235,255がスヌープキャッシュ動作モードを選択している場合は、プロセッサ100におけるローカルキャッシュ111とプロセッサ200におけるローカルキャッシュ211は、それぞれのCPU110,210のローカルキャッシュとして動作するとともに、他CPU210,110のリモートキャッシュとして、スヌープ動作をすることができる。
また、キャッシュ動作モード選択手段135,155,235,255がシングルキャッシュ動作モードを選択している場合は、プロセッサ100におけるローカルキャッシュ111とプロセッサ200におけるローカルキャッシュ211がともに、CPU110からローカルキャッシュアクセスアドレス入力手段161、171を介して取得されたアクセスアドレスによって、キャッシュメモリアドレス出力手段136、156、236、256を介してアクセスされる。すなわち、ローカルキャッシュ111、211がともに、CPU110のローカルキャッシュとして動作できる。これにより、キャッシュ容量低下によるキャッシュヒット率の低下を回避することができる。
なお、本実施形態では、2つのプロセッサを備えたマルチプロセッサを例にとって説明を行ったが、本発明はこれに限られるものではなく、3つ以上のプロセッサを備えたマルチプロセッサの場合であっても、本実施形態と同様に実現可能である。この場合、シングルキャッシュ動作モードにおいて、全てのキャッシュメモリを、動作するCPUのシングルキャッシュとして利用することができ、本実施形態と同様の効果が得られる。
なお、本実施形態では、説明を容易にするため、一部、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではなく、命令ローカルキャッシュ間のキャッシュ間転送についても、同様にして実現できる。
本発明では、マルチプロセッサ構成の演算処理装置をシングルプロセッサとして利用する場合に、キャッシュヒット率の低下を回避することができるので、例えば、シングルプロセッサとしての利用時における演算処理装置の性能向上に有効である。
本発明の一実施形態に係る演算処理装置としてのマルチプロセッサの構成を示す図である。
符号の説明
10 マルチプロセッサ(演算処理装置)
80 共有バス制御手段
81 共有アドレスバス(共有バス)
82 共有データバス(共有バス)
100 プロセッサ(第1のプロセッサ)
200 プロセッサ
110,210 CPU
111,211 ローカルキャッシュ
121,141,221,241 キャッシュメモリ
122,142,222,242 キャッシュ制御手段
131,151,231,251 キャッシュアクセス制御手段
132,152,232,252 キャッシュアクセス伝達手段
135,155,235,255 キャッシュ動作モード選択手段
161,171,261,271 ローカルキャッシュアクセスアドレス入力手段
164,174,264,274 リモートキャッシュアクセスアドレス出力手段
165,175,265,275 リモートキャッシュアクセスアドレス入力手段

Claims (3)

  1. CPUとローカルキャッシュとをそれぞれ有する複数のプロセッサを備えた演算処理装置であって、
    前記各プロセッサは、共有バスとその制御を行う制御部とを有する共有バス制御手段に、共通に接続されており、
    前記各プロセッサが有するローカルキャッシュは、キャッシュメモリと、キャッシュ制御手段とを備え、
    前記キャッシュ制御手段は、それぞれ、
    前記CPUからのアクセスアドレスを受けるローカルキャッシュアクセスアドレス入力手段と、前記共有バスからのアクセスアドレスを受けるリモートキャッシュアクセスアドレス入力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段または前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行うキャッシュアクセス制御手段と、
    前記ローカルキャッシュアクセスアドレス入力手段と、前記共有バスにアクセスアドレスを出力するリモートキャッシュアクセスアドレス出力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する機能を有するキャッシュアクセス伝達手段と、
    シングルキャッシュ動作モードとして動作するか、または、スヌープキャッシュ動作モードとして動作するかを、設定可能に構成されたキャッシュ動作モード選択手段とを備えている
    ことを特徴とする演算処理装置。
  2. 請求項1において、
    前記キャッシュ動作モード選択手段が、シングルキャッシュ動作モードを設定している場合において、
    前記複数のプロセッサのうち、動作する第1のプロセッサにおいて、
    前記ローカルキャッシュアクセスアドレス入力手段は有効化されるとともに、前記リモートキャッシュアクセスアドレス入力手段は無効化され、
    前記キャッシュアクセス制御手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
    前記キャッシュアクセス伝達手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力し、
    前記複数のプロセッサのうち、前記第1のプロセッサ以外のプロセッサにおいて、
    前記ローカルキャッシュアクセスアドレス入力手段は無効化されるとともに、前記リモートキャッシュアクセスアドレス入力手段は有効化され、
    前記キャッシュアクセス制御手段は、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
    前記キャッシュアクセス伝達手段は、前記共有バスにアクセスアドレスを出力しない
    ことを特徴とする演算処理装置。
  3. 請求項1記載の演算処理装置において、キャッシュ動作を行う方法であって、
    前記キャッシュ動作モード選択手段に、シングルキャッシュ動作モード、または、スヌープキャッシュ動作モードを設定する第1の工程と、
    前記第1の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち、動作する第1のプロセッサにおいて、
    前記ローカルキャッシュアクセスアドレス入力手段を有効化するとともに、前記リモートキャッシュアクセスアドレス入力手段を無効化し、
    前記キャッシュアクセス制御手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
    前記キャッシュアクセス伝達手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する第2の工程と、
    前記第1の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち、前記第1のプロセッサ以外のプロセッサにおいて、
    前記ローカルキャッシュアクセスアドレス入力手段を無効化するとともに、前記リモートキャッシュアクセスアドレス入力手段を有効化し、
    前記キャッシュアクセス制御手段が、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
    前記キャッシュアクセス伝達手段が、前記共有バスにアクセスアドレスを出力しない第3の工程とを備えた
    ことを特徴とするキャッシュ動作方法。
JP2005303540A 2005-10-18 2005-10-18 演算処理装置およびキャッシュ動作方法 Withdrawn JP2007114890A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005303540A JP2007114890A (ja) 2005-10-18 2005-10-18 演算処理装置およびキャッシュ動作方法
EP06118646A EP1835408A3 (en) 2005-10-18 2006-08-09 Arithmetic processing unit and method for operating cache
US11/510,670 US20070088896A1 (en) 2005-10-18 2006-08-28 Arithmetic processing unit and method for operating cache
CNA2006101599082A CN1952912A (zh) 2005-10-18 2006-09-27 运算处理装置和高速缓存操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005303540A JP2007114890A (ja) 2005-10-18 2005-10-18 演算処理装置およびキャッシュ動作方法

Publications (1)

Publication Number Publication Date
JP2007114890A true JP2007114890A (ja) 2007-05-10

Family

ID=37663240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005303540A Withdrawn JP2007114890A (ja) 2005-10-18 2005-10-18 演算処理装置およびキャッシュ動作方法

Country Status (4)

Country Link
US (1) US20070088896A1 (ja)
EP (1) EP1835408A3 (ja)
JP (1) JP2007114890A (ja)
CN (1) CN1952912A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155439A (ja) * 2011-01-25 2012-08-16 Nec Corp プロセッサ、情報処理装置、情報処理方法及びシステム起動プログラム
JP2012522290A (ja) * 2009-03-27 2012-09-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュにおけるウエイ割り当て及びウエイロックのための方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014108743A1 (en) * 2013-01-09 2014-07-17 Freescale Semiconductor, Inc. A method and apparatus for using a cpu cache memory for non-cpu related tasks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US5634043A (en) * 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
KR100391727B1 (ko) * 1994-11-09 2003-11-01 소니 일렉트로닉스 인코포레이티드 메모리시스템및메모리억세싱방법
US6047316A (en) * 1997-12-12 2000-04-04 Intel Corporation Multiprocessor computing apparatus having spin lock fairness
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012522290A (ja) * 2009-03-27 2012-09-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュにおけるウエイ割り当て及びウエイロックのための方法
JP2012155439A (ja) * 2011-01-25 2012-08-16 Nec Corp プロセッサ、情報処理装置、情報処理方法及びシステム起動プログラム

Also Published As

Publication number Publication date
EP1835408A2 (en) 2007-09-19
CN1952912A (zh) 2007-04-25
EP1835408A3 (en) 2009-06-03
US20070088896A1 (en) 2007-04-19

Similar Documents

Publication Publication Date Title
US9471494B2 (en) Method and apparatus for cache line write back operation
US20030126365A1 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US8301843B2 (en) Data cache block zero implementation
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US8521944B2 (en) Performing memory accesses using memory context information
US9092346B2 (en) Speculative cache modification
US20170185515A1 (en) Cpu remote snoop filtering mechanism for field programmable gate array
US20200104259A1 (en) System, method, and apparatus for snapshot prefetching to improve performance of snapshot operations
US20080086594A1 (en) Uncacheable load merging
US10970077B2 (en) Processor with multiple load queues including a queue to manage ordering and a queue to manage replay
US20170286301A1 (en) Method, system, and apparatus for a coherency task list to minimize cache snooping between cpu and fpga
US20140201446A1 (en) High bandwidth full-block write commands
US20180121353A1 (en) System, method, and apparatus for reducing redundant writes to memory by early detection and roi-based throttling
US9405545B2 (en) Method and apparatus for cutting senior store latency using store prefetching
US8856478B2 (en) Arithmetic processing unit, information processing device, and cache memory control method
US20110161585A1 (en) Processing non-ownership load requests hitting modified line in cache of a different processor
US20070088896A1 (en) Arithmetic processing unit and method for operating cache
US20070073977A1 (en) Early global observation point for a uniprocessor system
US10261909B2 (en) Speculative cache modification
US7159077B2 (en) Direct processor cache access within a system having a coherent multi-processor protocol
US7650483B2 (en) Execution of instructions within a data processing apparatus having a plurality of processing units
WO1999032976A1 (en) Risc processor with concurrent snooping and instruction execution
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
US20230099256A1 (en) Storing an indication of a specific data pattern in spare directory entries
JP4948141B2 (ja) バス制御装置

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090518