JP2006059068A - プロセッサ装置 - Google Patents

プロセッサ装置 Download PDF

Info

Publication number
JP2006059068A
JP2006059068A JP2004239397A JP2004239397A JP2006059068A JP 2006059068 A JP2006059068 A JP 2006059068A JP 2004239397 A JP2004239397 A JP 2004239397A JP 2004239397 A JP2004239397 A JP 2004239397A JP 2006059068 A JP2006059068 A JP 2006059068A
Authority
JP
Japan
Prior art keywords
processor device
instruction
execution
power consumption
word
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
JP2004239397A
Other languages
English (en)
Inventor
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 JP2004239397A priority Critical patent/JP2006059068A/ja
Priority to US11/200,193 priority patent/US7594131B2/en
Priority to EP05017572A priority patent/EP1628210A3/en
Publication of JP2006059068A publication Critical patent/JP2006059068A/ja
Priority to US12/139,059 priority patent/US20080276044A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)

Abstract

【課題】プログラムが本当に必要としている性能を満足しつつ、不要な電力消費を抑えることが可能なプロセッサを提供する。
【解決手段】プロセッサの特定の回路部分(命令の並列発行機能やキャッシュメモリ)はプロセッサの平均性能と消費電力の異なる複数の動作モードを有し、プロセッサが発揮する性能を計測して動作中のプログラムが必要とする目標性能と比較し、比較結果に応じて、その目標性能を実現ながら消費電力を削減した状態で動作する様に動作モードの切り替え制御を行う。
【選択図】 図1

Description

本発明はマイクロプロセッサ等のLSIに用いられるプロセッサ装置に関する。
近年、マイクロプロセッサやデジタルシグナルプロセッサ(DSP)等のプロセッサ装置は年々その性能が向上している。特に高性能マイクロプロセッサにおいては、大容量のキャッシュメモリ、スーパースカラー構成や投機的な命令実行機構といった付加的な回路要素および機能を加えることによってその処理能力の向上を実現させているが、一方そういった付加的な回路要素を加えたことによる消費電力の増大がLSIやLSIを搭載したシステムにおいて問題となってきている。したがって、マイクロプロセッサの開発においては、必要な性能を実現しつつ消費電力を抑制することが課題となっている。
このような課題に対して、従来のマイクロプロセッサでは、例えば、特許文献1のような技術が用いられてきた。すなわち、プロセッサ内部に置かれ非常に高速に命令を供給する命令キャッシュと、予測される分岐ターゲットアドレスおよびヒストリビットのようなデータを保持する分岐ターゲットバッファと、命令キャッシュから供給される命令を命令デコーダでデコードするために保持するプリフェッチバッファを備える。このマイクロプロセッサにおいては、分岐命令を実行した場合に命令キャッシュへの不必要なプリフェッチ・アクセスを減らすことによりプロセッサによって消費される電力を減少させる方法を備える。すなわち、実行される各分岐命令に対して、予測される分岐ターゲットアドレスの命令がプリフェッチバッファ内にあった場合には、プリフェッチバッファのロック制御とプリフェッチの禁止制御を行い、分岐ターゲットアドレスの命令を命令キャッシュではなくプリフェッチバッファから供給することにより、命令キャッシュへのアクセスを省き電力の消費を減少する構成となっている。
特開平8−77000号公報(第2−4頁、第4図)
上記のように構成された従来のプロセッサ回路においては、不必要な命令キャッシュへのプリフェッチを禁止することによってプロセッサの消費電力を削減することを実現している。しかしながら、プロセッサが実際に使用される状況においては、そのプロセッサに対して必要とされる処理内容すなわちプロセッサの処理性能と、プロセッサの動作時に許される電力消費量の上限が定められる。そのような使用状況においては、従来の不必要なプリフェッチを禁止する方法によっては、必要な処理性能については十分に発揮することが可能であるが、消費電力については十分な削減効果が得られず許される電力消費量を下回ることが出来ない場合がある。
さらに消費電力を削減する方法として、プロセッサ(CPU)に供給されるCPUクロックのサイクル時間を延ばす方法があるが、プロセッサの実行するプログラムの内容および実行される状況によっては必要な処理性能が得られない場合が生じる。
本発明の目的は、そのプロセッサに対して必要とされるプロセッサの処理性能が定められた場合に、必要な処理性能を発揮しつつ最大限消費電力を削減することが可能なプロセッサ回路を提供することである。
また、本発明の目的は、そのプロセッサに対して許される消費電力が定められた場合に、消費電力を限度内に抑えつつ最大限処理性能を発揮することが可能なプロセッサ回路を提供することである。
さらに、本発明の目的は、必要な処理性能を発揮しつつ最大限消費電力を削減することが可能なプロセッサであって、さらに回路面積を削減したプロセッサ回路を提供することである。
上記目的を達成するために、本発明に係るプロセッサ装置は、プログラムを実行して処理を行うプロセッサ装置であって、前記プロセッサ装置の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、前記プロセッサ装置の処理実行性能と実行消費電力の少なくとも一方を計測する計測手段と、前記計測手段の計測結果と目標値とを比較し比較結果に応じて動作モードを切り替える制御部とを備える。この構成によれば、
プロセッサに対して許される消費電力が定められた場合に、消費電力を限度内に抑えつつ最大限処理性能を発揮することができる。また、必要な処理性能を発揮しつつ最大限消費電力を削減することができる。
上記目的を達成するために、本発明に係るプロセッサ回路は、命令を実行する命令実行パイプラインを複数備えて、同時に複数の命令を命令実行パイプラインに発行することが可能なプロセッサ装置であって、命令実行パイプラインに対して同時に発行することが出来る命令の最大数の異なる複数の動作モードを備えた命令発行部を有し、プロセッサ装置の処理性能を計測して処理実行性能として示す計測手段を有し、計測手段が示す処理実行性能が目標処理性能を満たす場合には、命令発行部を同時に発行することが出来る命令の最大数のより少ない動作モードに切り替え、計測手段が示す処理実行性能が目標処理性能に不足する場合には、命令発行部を同時に発行することが出来る命令の最大数のより多い動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎に命令実行パイプラインにおいて実行を完了する命令数を計測し、その数を処理実行性能として示す。また、このプロセッサ回路は、目標処理性能が設定される書き換え可能なレジスタを持つ。また、このプロセッサ回路は、命令発行部はさらに命令実行パイプラインに対して投機的に命令を発行することが出来る動作モードを備えた命令発行部を有し、計測手段が示す処理実行性能が目標処理性能に不足する場合には、命令発行部を投機的に命令を発行することが出来る動作モードにまで切り替えて動作する。
さらに本発明に係るプロセッサ回路は、命令を実行する命令実行パイプラインを複数備えて、同時に複数の命令を命令実行パイプラインに発行することが可能なプロセッサ装置において、命令実行パイプラインに対して同時に発行することが出来る命令の最大数の異なる複数の動作モードを備えた命令発行部を有し、プロセッサ装置の消費電力を計測して実行消費電力として示す計測手段を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、命令発行部を同時に発行することが出来る命令の最大数のより多い動作モードに切り替え、また実行消費電力が目標消費電力を上回る場合には、命令発行部を同時に発行することが出来る命令の最大数のより少ない動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎に命令実行パイプラインに対して発行される命令数を計測し、その数を実行消費電力として示す。また、このプロセッサ回路は、目標消費電力が設定される書き換え可能なレジスタを持つ。また、このプロセッサ回路は、命令発行部はさらに命令実行パイプラインに対して投機的に命令を発行することが出来る動作モードを備えた命令発行部を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、命令発行部を投機的に命令を発行することが出来る動作モードにまで切り替えて動作する。
さらに本発明に係るプロセッサ回路は、N個のウェイを有するNウェイセットアソシアティブ構成で1ラインが複数ワードからなるキャッシュメモリを備えたプロセッサ装置において、キャッシュメモリを構成するデータメモリアレイが複数のワード幅で同時に読み出される構成であり、データメモリアレイには、異ウェイの同ラインの同ワードが異なるワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数のワードも異なるワード位置で同時に読み出し可能な配置に格納される構成であり、キャッシュメモリのアクセス時には、データメモリアレイから複数のウェイの同ラインの同ワードを読み出して、ヒットしたウェイのワードを選択して出力する第1の動作モードと、ヒットが予測されるウェイの同ラインの複数のワードを読み出して、同ウェイがヒットした場合にはそのワードを順次選択して出力し、予測したウェイと異なるウェイがヒットした場合にはヒットしたウェイの同ラインの複数のワードを読み出して順次選択して出力する第2の動作モードを備え、さらに、プロセッサ装置の処理性能を計測して処理実行性能として示す計測手段を有し、計測手段が示す処理実行性能が目標処理性能を満たす場合には、第2の動作モードに切り替え、計測手段が示す処理実行性能が目標処理性能に不足する場合には、第1の動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎に命令実行パイプラインにおいて実行を完了する命令数を計測し、その数を処理実行性能として示す。また、このプロセッサ回路は、目標処理性能が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。また、このプロセッサ回路は、データメモリアレイがワード幅で読み出し可能な複数のSRAMメモリにより構成される。また、このプロセッサ回路は、データメモリアレイが複数のワード幅で読み出し可能な1または複数のSRAMメモリにより構成され、SRAMメモリは複数コラム構成であって、さらにSRAMメモリはコラムの選択を制御する信号をワード毎に独立して入力する。
さらに本発明に係るプロセッサ回路は、N個のウェイを有するNウェイセットアソシアティブ構成で1ラインが複数ワードからなるキャッシュメモリを備えたプロセッサ装置において、キャッシュメモリを構成するデータメモリアレイが複数のワード幅で同時に読み出される構成であり、データメモリアレイには、異ウェイの同ラインの同ワードが異なるワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数のワードも異なるワード位置で同時に読み出し可能な配置に格納される構成であり、キャッシュメモリのアクセス時には、データメモリアレイから複数のウェイの同ラインの同ワードを読み出して、ヒットしたウェイのワードを選択して出力する第1の動作モードと、ヒットが予測されるウェイの同ラインの複数のワードを読み出して、同ウェイがヒットした場合にはそのワードを順次選択して出力し、予測したウェイと異なるウェイがヒットした場合にはヒットしたウェイの同ラインの複数のワードを読み出して順次選択して出力する第2の動作モードを備え、さらにプロセッサ装置の消費電力を計測して実行消費電力として示す計測手段を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、第1の動作モードに切り替え、また実行消費電力が目標消費電力を上回る場合には、第2の動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎にキャッシュメモリのデータメモリアレイの読み出しが行われた回数を計測し、その数を実行消費電力として示す。また、このプロセッサ回路は、目標消費電力が設定される書き換え可能なレジスタを持つ。また、このプロセッサ回路は、データメモリアレイがワード幅で読み出し可能な複数のSRAMメモリにより構成される。また、このプロセッサ回路は、データメモリアレイが複数のワード幅で読み出し可能な1または複数のSRAMメモリにより構成され、SRAMメモリは複数コラム構成であって、さらにSRAMメモリはコラムの選択を制御する信号をワード毎に独立して入力する。
さらに本発明に係るプロセッサ回路は、プログラムを実行して処理を行うプロセッサ装置において、プロセッサ装置の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、プロセッサ装置の処理性能を計測して処理実行性能として示す計測手段を有し、計測手段が示す処理実行性能が目標処理性能を満たす場合には、実行回路を処理性能のより高い動作モードに切り替えて動作し、また処理実行性能が目標処理性能に不足する場合には、実行回路を処理性能のより低い動作モードに切り替えて動作する。
さらに本発明に係るプロセッサ回路は、プログラムを実行して処理を行うプロセッサ装置において、プロセッサ装置全体の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、プロセッサ装置の消費電力を計測して実行消費電力として示す計測手段を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、実行回路を処理性能のより高い動作モードに切り替えて動作し、また消費電力が目標消費電力を上回る場合には、実行回路を処理性能のより低い動作モードに切り替えて動作する。
さらに本発明に係るプロセッサ回路は、キャッシュメモリを有する複数のCPUを備え、前記キャッシュメモリはN個のウェイを有するNウェイセットアソシアティブ構成で1ラインが複数ワードからなる構成であり、前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、前記データメモリアレイには、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出してヒットした前記ウェイの前記ワードを選択して出力する第1の読み出しモードと、前記ウェイの同ラインの複数の前記ワードを読み出して出力する第2の読み出しモードを備え、前記キャッシュメモリのアクセスを行う場合には第1の読み出しモードで動作し、複数の前記CPUの前記キャッシュメモリ間でデータを転送する場合には第2の読み出しモードで動作する。また、このプロセッサ装置では、前記データメモリアレイが前記ワード幅で読み出し可能な複数のSRAMメモリにより構成される。また、このプロセッサ装置では、前記データメモリアレイが複数の前記ワード幅で読み出し可能な1または複数のSRAMメモリにより構成され、前記SRAMメモリは複数コラム構成であって、さらに前記SRAMメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力する。
本発明のプロセッサ回路によれば、プログラムが必要とする処理性能とCPUが発揮する刻々の処理性能の状況に応じて、動機的命令発行の有無もしくは同時に発行可能な命令数もしくはキャッシュのデータアレイのアクセス方法と切り替えることによって、プログラムが必要とする目標性能を発揮しながら、消費電力を最大限抑えたCPU動作を行うことが実現される。
また、本発明のプロセッサ回路によれば、プログラムに許される消費電力とCPUが消費する刻々の消費電力の状況に応じて、動機的命令発行の有無もしくは同時に発行可能な命令数もしくはキャッシュのデータアレイのアクセス方法と切り替えることによって、プログラムに許される消費電力を維持しつながら、最大限の処理性能を発揮する動作を行うことが実現される。
また、本発明のプロセッサ回路によれば、キャッシュのデータアレイを読み出しワード毎にコラム選択を制御可能なSRAMを使用して複数のウェイをまとめた構成とすることにより、目標性能を発揮しながら消費電力を最大限抑えたCPU動作を実現したプロセッサ回路において、回路面積を削減することが可能となる。
また、本発明のプロセッサ回路によれば、各CPUにキャッシュメモリを備えたマルチプロセッサ構成において、キャッシュメモリのウェイのラインを構成するワードを、データメモリアレイの異なったワードに格納して同時に読み出し可能な構成とすることによって、キャッシュメモリ間でラインに記憶された命令もしくはデータの転送を行う場合のデータメモリアレイの読み出しアクセス回数を最小に抑えることができ、通常のキャッシュメモリアクセスを阻害する要因を減らすことが可能となる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1に、本発明の第1の実施の形態のプロセッサ回路の構成図を示す。このプロセッサ回路は、大容量のキャッシュ、分岐ターゲットバッファおよび投機的実行機構を備えたスーパースカラ構成の高性能プロセッサである。
図1において、101はCPUで命令キャッシュ102から命令バス104を通じて供給される命令を実行し処理を行う。CPU101は、また、命令の実行においてデータバス105を通してデータキャッシュ103をアクセスし、その内容に対して読出しおよび書き込みを行う。また、111はクロック生成回路でありCPU101、キャッシュ102、103をはじめプロセッサ回路の各部に高速クロック(400MHz)を供給し、プロセッサ回路はこのクロックに同期して動作する。
命令キャッシュ102およびデータキャッシュ103は、BCU106を通して接続された外部メモリ(ROM112およびSDRAM113)の内容の一部を保持する高速なメモリであり、命令/データキャッシュ102/103に保持された内容に対してはCPU101は高速にアクセスすることが可能である。
CPU101の必要な命令もしくはデータがそれぞれ命令キャッシュ102およびデータキャッシュ103に保持されていない場合(キャッシュミス)には、必要な命令/データをキャッシュバス107、BCU106およびシステムバスインタフェース107、SDRAMインタフェース108を通して、ROM109もしくはSDRAM110から各キャッシュへ転送する。CPU101の必要な命令もしくはデータがそれぞれ命令キャッシュ102およびデータキャッシュ103に保持されている場合(キャッシュヒット)には、CPUの命令キャッシュ102およびデータキャッシュ103へのアクセスは1クロックサイクルで実行を完了するが、キャッシュミスの場合には低速なメモリ(ROM109、SDRAM110)へのアクセスを伴うためにそのアクセスに数十から数百クロックサイクルを必要とする。
図2にCPU101の内部の詳細な構成を示す。201は命令フェッチ手段であり、命令バス104を通じて命令キャッシュ102に対してフェッチアドレスを出力し、命令フェッチの要求を行う。命令キャッシュ102はフェッチアドレスに対応する命令を命令バス104を通じてプリフェッチ命令レジスタ202に供給する。命令キャッシュ102は、通常一回の命令フェッチにおいて4命令分の命令を供給することが可能な構成となっており、プリフェッチ命令レジスタ202はこれを受けて同時に4命令を保持する構成となっている。プリフェッチ命令レジスタ202に保持された命令は、命令発行手段203に入力し、命令実行パイプライン1〜4(204〜207)に対して発行される。命令発行手段203は、命令をデコードすることで判別される命令の種類、その実行に必要とされる演算資源およびデータなどの要因を判断し、実行可能な命令をその処理が可能なものを命令処理パイプラン1〜4から選択して発行する。特に、命令処理パイプラン1はデータバス105を通してデータキャッシュ103と接続されておりデータアクセスの処理を実行することが可能なことから、データアクセスを伴う命令を優先的に発行する。命令発行手段203は、各命令実行パイプラインに1命令ずつ、したがって1クロックサイクルに最大4命令を発行することが可能である。また、各命令実行パイプライン1〜4(204〜207)は、命令発行手段203から発行された命令を1クロックサイクル毎に1命令で連続的に処理することが可能ある。ただし、データアクセスの処理を実行中にデータキャッシュ103がキャッシュミスが発生した場合には、低速なメモリ(ROM109、SDRAM110)へアクセスを行う期間(数十〜数百クロックサイクル)処理が滞ることとなる、CPU101の処理が停止することとなる。
208は分岐ターゲットバッファであり、命令フェッチ手段201から入力するプログラムカウンタ209の値から分岐ターゲットのアドレス210と命令211をそれぞれ命令フェッチ手段201および分岐命令レジスタ212に供給する。分岐ターゲットバッファ208は、内部に過去実行した分岐命令のアドレスとそれに対応する分岐ターゲットアドレスと分岐ターゲットの命令(4命令分)および過去の分岐履歴(ヒストリビット)を64エントリ分保持する構成を持ち、命令フェッチ手段201から入力するプログラムカウンタ209の値といずれかのエントリの分岐命令アドレスとの一致が検出されると、そのエントリの分岐ターゲットアドレスおよび分岐ターゲット命令をそれぞれ分岐ターゲットアドレス210と分岐ターゲット命令211に出力する。また、そのエントリのヒストリビットを用いて、その分岐命令の分岐条件が成立するか否かの予測(分岐予測)を行う。
分岐ターゲットアドレス210は命令フェッチ手段201に入力し、分岐ターゲットバッファ208が分岐成立を予測した場合には、そのアドレスを用いて命令キャッシュへのアクセスを行う。分岐ターゲットバッファ208が分岐不成立を予測した場合には、分岐条件が確定するまでそのアドレスを保留し、分岐成立が確定した場合には分岐ターゲットアドレス210への命令フェッチを実行する。分岐ターゲット命令211には、分岐ターゲットバッファ208のエントリから4命令が供給され、分岐命令レジスタ212に入力し保持される。したがって、分岐命令レジスタ212に保持された命令は、命令発行手段203に入力し、1クロックサイクルに最大4命令を命令実行パイプライン1〜4(204〜207)に対して発行することが可能である。
上記の様に、このプロセッサ回路は命令発行手段203に対して、プリフェッチ命令レジスタ202から4命令と分岐命令レジスタ212から4命令を入力し、それらの内最大4命令を命令実行パイプライン1〜4(204〜207)に対して同サイクルに発行することが可能なスーパースカラ構成となっている。また、分岐ターゲットバッファ208からは分岐条件が確定する以前の段階で分岐ターゲットの命令が分岐命令レジスタ212に供給されることから、命令発行手段203は分岐確定前に分岐先命令を命令実行パイプライン1〜4(204〜207)に対して投機的に発行することが可能な構成となっている。すなわち、分岐ターゲットバッファ201で分岐命令が検出された場合、その分岐条件が確定する以前に、分岐不成立の場合に引き続き実行される命令をプリフェッチ命令レジスタ202から発行することに加えて、分岐成立の場合の分岐ターゲット命令を分岐命令レジスタ212から命令実行パイプライン1〜4(204〜207)に発行する。この場合、分岐条件が確定した後実行されない命令については、各命令が命令実行パイプライン1〜4(204〜207)で実行中に中断されるが、同サイクルに発行された分岐成立・不成立のいずれかの側の命令については最後まで実行される。一般に1クロックサイクルに4命令を発行可能なスーパースカラ構成であっても、プロセッサが実際のプログラムを実行する上では、1クロックサイクルに2命令以上の命令を実行することは難しいが、上記のような分岐ターゲットバッファおよび投機的命令実行機構を設けて発行可能な命令数を増すことにより、平均的に1クロックサイクルに2命令以上の命令の実行を可能としている。
このように命令発行手段203は、プリフェッチ命令レジスタ202と分岐命令レジスタ212から1クロックサイクルに最大で4命令を命令実行パイプライン1〜4(204〜207)に発行できる構成となっているが、いずれの命令を最高何命令まで発行するかは、電力制御手段213の制御にしたがって決められる。すなわち、命令発行手段203における命令発行の方式には3つのモード(モードA、モードB、モードC) があり、モードAにおいては、投機的命令実行機構を用いて最大限の命令発行を行う。モードBにおいては、投機的命令実行機構を用いず、分岐命令が検出された場合には分岐ターゲットバッファ208において分岐予測された側の命令のみを発行する。モードCにおいては、投機的命令実行機構を用いず、かつ1クロックサイクルに最大1命令のみ発行を行う。したがって、モードAにおいては平均的に1クロックサイクル当り2命令の以上の実行が期待され、モードCにおいては平均的に1クロックサイクル当り1命令の未満の以上の実行が期待される。モードBにおいて平均的に1クロックサイクル当りに実行される命令数は、プログラム実行時の分岐予測の精度などによって変化し、1〜2命令の中間の値となる。そして、このいずれの動作を行うかが電力制御手段213の制御によって決定される構成となっている。
モードA、B、Cは上記に様なその動作の違いによって、命令発行手段203が平均的に命令実行パイプライン1〜4(204〜207)に発行できる命令数に違いが生じるわけであるが、同時にプロセッサ回路が消費する電力にも差が生じる。すなわち、命令実行パイプライン1〜4(204〜207)は発行される命令がない場合にはその消費電力がほぼ0となるように構成されていることから、モードAでは、分岐命令の実行に際しては分岐条件の確定により中断される命令についても一旦命令実行パイプライン1〜4(204〜207)に対して発行され電力を消費するのに対して、モードBでは、分岐予測された命令のみが発行され、空いた命令実行パイプラインでは電力消費を抑制することが可能となる。分岐予測が外れた場合には、後のクロックサイクルに命令の再発行が必要となるため、性能的・電力的な無駄が生じるが、一般のプログラムにおいては分岐ターゲットバッファ208のヒストリビットを用いた分岐予測の精度が高いことも合わせて平均的な消費電力は抑制される。モードCにおいては、常時命令実行パイプライン1〜4(204〜207)のいずれかに1つにのみ命令を発行されることから消費電力が大きく削減されることは明らかである。
電力制御手段213は命令発行手段203の命令発行の3つのモードのいずれかを選択するために、目標性能レジスタ214の出力する目標性能値215と、計測手段216の出力する実行性能値217を入力する。目標性能値215および実行性能値217は、いずれも2の14乗クロックサイクルの当りに実行される命令数で表わされる。
図3Aは処理性能計測手段216の詳細な内部構成を示している。図3Bはそのタイムチャートを示している。300はクロックをカウントするクロックカウンタであり、14ビットの2進カウンダにより構成されている。クロックカウンタ300によるクロックのカウントが、1×(2の12乗)、2×(2の12乗)、3×(2の12乗)に達したサイクルおよび14ビットカウンタがオーバーフローしたサイクルに、それぞれカウンタリセット信号301〜304を出力する。
305〜308は命令実行パイプライン1〜4(204〜207)で実行された命令数をカウントする命令カウンタ1〜4である。このために、処理性能計測手段216は、命令実行パイプライン1〜4(204〜207)から命令の実行を完了したことを示す命令完了信号218を入力する。各命令実行パイプラインから入力した命令完了信号218は加算回路309に入力し、その出力を命令カウンタ1〜4(305〜308)においてカウントする。ここで、命令カウンタ1〜4(305〜308)においてカウントされる命令には、命令実行パイプライン1〜4(204〜207)に対して投機的に発行された後、分岐条件の確定により実行が中断された命令は含まれない。命令実行パイプライン1〜4(204〜207)は1クロックサイクルに1命令を実行する可能性があるため、命令カウンタ1〜4(305〜308)は1クロックサイクルに最大4命令を加算できる16ビットカウンタで構成されている。命令カウンタ1〜4(305〜308)はそれぞれカウンタリセット信号301〜304を接続し、この信号を入力する時点のカウントの値を実行性能レジスタ310に設定すると同時にカウンタを0にリセットする。この構成により、実行性能レジスタ310には、2の12乗クロックサイクル毎に過去2の14乗クロックサイクル期間に実行された命令数で更新され、実行性能値217に出力されることとなる。
目標性能レジスタ214はCPU101が実行するプログラムにより書き換え可能なレジスタであり、プログラムがその処理を実行するために必要とする性能を2の14乗クロックサイクルの当りに実行される命令数として設定する。
電力制御手段213は、上記の目標性能レジスタ214の出力する目標性能値215と処理性能計測手段216の出力する実行性能値217から、CPU101の処理性能がほぼ目標性能値と一致するように命令発行手段203のモードの選択を制御する。すなわち、目標性能値215と2の12乗クロックサイクル毎に更新される実行性能値217を比較して、実行性能値217が目標性能値215を下回っている場合には、1クロックサイクル当りにより多くの命令が実行できる命令発行手段203のモードへの切り替え(モードCからモードBへ、もしくはモードBからモードAへ)を行い、逆に実行性能値217が目標性能値215を上回っている場合には、1クロックサイクル当りにより少ない命令が実行できる命令発行手段203のモードへの切り替え(モードAからモードBへ、もしくはモードBからモードCへ)を行うよう制御を行う構成となっている。
上記のように構成されたプロセッサ回路において、その動作を説明する。
プログラムは目標性能レジスタ214にプログラムが必要とする性能を設定してプログラムの処理を開始する。電力制御手段213は、プログラムを実行している期間中、CPU101の実行性能値217と設定された目標性能値215を比較し、実行性能値217と設定された目標性能値215が近づくようにCPU101の命令発行手段203に対する制御を継続して行う。その結果、命令発行手段203は、プログラムが必要とする目標性能を実現しつながら、消費電力が抑えられるモードでの動作が選択される。
プログラムによっては、その部分毎の処理内容により必要とされる性能が異なる場合があるが、目標性能レジスタ214をその実行に必要な性能値に書き換えることにより、プロセッサ回路は処理内容に応じた処理性能で動作することができ、消費電力を抑えることができる。また、プログラム実行時には、分岐予測の確度の低下や、キャッシュメモリのヒット率の低下などのためにCPU101の実行性能値217が一時的に低下することがあるが、そのことを電力制御手段213が検出した時点で、命令発行手段203の動作を1クロックサイクル当りに最大数の命令を発行できるモード(モードA)へ切り替りかえることにより、性能の低下は抑えられる。
以上の様に、上記構成のプロセッサ回路においては、プログラムが必要とする処理性能とCPU101の動作状況に応じて、命令発行手段203の命令発行のモードを切り替えることによって、プログラムが必要とする目標性能を実現しつながら、消費電力を最大限抑えた動作を行うことが実現される。
(実施の形態2)
本発明の第2の実施の形態のプロセッサ回路の主要な構成は、第1の実施の形態の図1と同様であり、このプロセッサ回路も、大容量のキャッシュ、分岐ターゲットバッファおよび投機的実行機構を備えたスーパースカラ構成の高性能プロセッサである。
図4に第2の実施の形態のCPU101の内部の詳細な構成を示す。
ここで、命令フェッチ手段201、プリフェッチ命令レジスタ202、分岐ターゲットバッファ208、分岐命令レジスタ212および各命令実行パイプライン1〜4(204〜207)は第1の実施の形態のそれと同様である。また、命令発行手段203についても、プリフェッチ命令レジスタ202と分岐命令レジスタ212から1クロックサイクルに最大で4命令を命令実行パイプライン1〜4(204〜207)に発行できる構成となっているおり、いずれの命令を最高何命令まで発行するかについて3つのモード(モードA、モードB、モードC)を持つことは第1の実施の形態と同様である。命令発行手段203がいずれのモードで命令発行を行うかは、電力制御手段401の制御にしたがって決められる。
電力制御手段401は命令発行手段203の命令発行の3つのモードのいずれかを選択するために、目標電力レジスタ402の出力する目標電力値403と、消費電力計測手段404の出力する実行電力値405を入力する。目標電力値403および実行電力値405は、いずれも2の14乗クロックサイクルの当りに各命令実行パイプライン1〜4(204〜207)が活性化される回数で表わされる。
図5は消費電力計測手段404の詳細な内部構成を示している。
500はクロックをカウントするクロックカウンタであり、14ビットの2進カウンダにより構成されている。クロックカウンタ300によるクロックのカウントが、1×(2の12乗)、2×(2の12乗)、3×(2の12乗)に達したサイクルおよび14ビットカウンタがオーバーフローしたサイクルに、それぞれカウンタリセット信号501〜504を出力する。
505〜508は命令実行パイプライン1〜4(204〜207)で対して発行された命令数をカウントする電力カウンタ1〜4である。このために、消費電力計測手段404は、命令発行手段203から命令実行パイプライン1〜4(204〜207)に対して命令が発行されたことを示す命令発行信号406を入力する。各命令実行パイプライン1〜4(204〜207)から入力した命令発行信号406は加算回路509に入力し、その出力を電力カウンタ1〜4(505〜508)においてカウントする。ここで、電力カウンタ1〜4(505〜508)においてカウントされる命令には、命令実行パイプライン1〜4(204〜207)に対して投機的に発行された後、分岐条件の確定により実行が中断された命令も含まれる。
命令実行パイプライン1〜4(204〜207)は1クロックサイクルに1命令を実行する可能性があるため、電力カウンタ1〜4(505〜508)は1クロックサイクルに最大4命令を加算できる16ビットカウンタで構成されている。電力カウンタ1〜4(505〜508)はそれぞれカウンタリセット信号501〜504を接続し、この信号を入力する時点のカウントの値を実行電力レジスタ510に設定すると同時にカウンタを0にリセットする。この構成により、実行電力レジスタ510には、2の12乗クロックサイクル毎に過去2の14乗クロックサイクル期間に発行された命令数で更新され、実行電力値405に出力されることとなる。
目標電力レジスタ402はCPU101が実行するプログラムにより書き換え可能なレジスタであり、プログラムがその処理を実行する際に許される消費電力を2の14乗クロックサイクルの当りに命令実行パイプライン1〜4(204〜207)が活性化される回数、すなわち、各命令実行パイプラインに発行される命令数として設定する。
電力制御手段401は、上記の目標性能レジスタ402の出力する目標電力値403と消費電力計測手段404の出力する実行電力値405から、CPU101の消費電力がほぼ目標電力値と一致するように命令発行手段203のモードの選択を制御する。すなわち、目標電力値403と2の12乗クロックサイクル毎に更新される実行電力値405を比較して、実行電力値405が目標電力値403を上回っている場合には、1クロックサイクル当りにより少ない命令が実行できる命令発行手段203のモードへの切り替え(モードAからモードBへ、もしくはモードBからモードCへ)を行い、逆に実行電力値405が目標電力値403を下回っている場合には、1クロックサイクル当りにより多くの命令が実行できる命令発行手段203のモードへの切り替え(モードCからモードBへ、もしくはモードBからモードAへ)を行うよう制御を行う構成となっている。
上記のように構成されたプロセッサ回路において、その動作を説明する。
プログラムは目標性能レジスタ214にそのプログラムの処理を実行する際に許される消費電力を設定する。一般にプロセッサ回路の消費電力は命令実行パイプライン1〜4(204〜207)の消費する部分と、それ以外の回路要素が消費する部分の合計と考えることができるが、本構成のプロセッサ回路においては、命令実行パイプライン1〜4(204〜207)の消費電力がその大部分を占め、かつ各命令実行パイプライン1〜4(204〜207)の消費する電力は命令発行の有無により大きく変動することから、プロセッサ回路の消費する電力を2の14乗クロックサイクルの当りに命令実行パイプライン1〜4(204〜207)に発行される命令数として設定することは適当である。
電力制御手段401は、プログラムを実行している期間中、CPU101の実行電力値405と設定された目標電力値403を比較し、実行電力値405と設定された目標電力値403が近づくようにCPU101の命令発行手段203に対する制御を継続して行う。その結果、命令発行手段203は、プログラムの実行に許される目標電力を維持しながら、最大限の処理性能が得られるモードでの動作が選択される。
プログラムによっては、その部分毎の処理内容により許される電力が異なる場合があるが、目標電力レジスタ214をその実行に許される電力値に書き換えることにより、プロセッサ回路は処理内容に応じた消費電力で動作することができ、消費電力を抑えることができる。また、プログラム実行時には、分岐命令の連続した場合など実行電力値405が一時的に向上することがあるが、そのことを電力制御手段401が検出した時点で、命令発行手段203の動作を1クロックサイクル当りに最大1命令のみ発行できるモード(モードC)へ切り替りかえることにより、電力の過大な消費は抑えられる。
また、プログラム実行時には、キャッシュメモリのヒット率の低下などのためにCPU101の各命令実行パイプライン1〜4(204〜207)への命令発行数が減り処理性能が一時的に低下する場合があるが、この場合、実行電力値405も同時に低下し、そのことを電力制御手段213が検出した時点で、命令発行手段203の動作を1クロックサイクル当りに最大数の命令を発行できるモード(モードA)へ切り替りかえることにより、許される消費電力の範囲で最大限性能の回復が図られる。
以上の様に、上記構成のプロセッサ回路においては、プログラムに許される消費電力とCPU101の動作状況に応じて、命令発行手段203の命令発行のモードを切り替えることによって、プログラムに許される消費電力を維持しつながら、最大限の処理性能を発揮する動作を行うことが実現される。
なお、上記構成では命令実行パイプライン1〜4(204〜207)に命令が発行され動作する際に消費する電力はすべて等しいものとして取り扱われているが、命令実行パイプライン1〜4(204〜207)および発行される命令の種類などに応じて、消費電力計測手段404で加算を行う際に重みをつけることで消費電力値405の精度が向上することは明らかである。
(実施の形態3)
本発明の第3の実施の形態のプロセッサ回路の主要な構成は、第1の実施の形態の図1と同様であり、このプロセッサ回路も、大容量のキャッシュ、分岐ターゲットバッファおよび投機的実行機構を備えたスーパースカラ構成の高性能プロセッサである。
図6に第3の実施の形態のCPU101の内部の詳細な構成を示す。
ここで、命令フェッチ手段201、プリフェッチ命令レジスタ202、分岐ターゲットバッファ208、分岐命令レジスタ212および各命令実行パイプライン1〜4(204〜207)は第1の実施の形態のそれと同様である。命令発行手段601については、プリフェッチ命令レジスタ202と分岐命令レジスタ212から1クロックサイクルに最大で4命令を命令実行パイプライン1〜4(204〜207)に発行できる構成は同じで、発行可能な最高数の命令をマイクロックサイクル各命令実行パイプライン1〜4(204〜207)に対して発行する構成となっている。
また、目標性能レジスタ214と処理性能計測手段216の構成も第1の実施の形態のそれと同様であり、電力制御手段601がそれらから目標性能値215と実行性能値217を入力するも同様であるが、本実施の形態では電力制御手段601は命令発行手段601ではなく、命令キャッシュ102に対して制御を行う点が異なっている。
図7に第3の実施の形態の命令キャッシュ102の内部の詳細な構成を示す。
この命令キャッシュ102は、2ウェイセットアソシアティブ構成のキャッシュメモリで、各ウェイは512ラインから構成されている。また、命令キャッシュの1回のアクセスでの読み出し単位(4命令)を1ワードとして、1ラインは2ワードからなる構成となっている。したがって、この命令キャッシュの容量は、1ウェイあたり1K(1024)ワードであり、全体では2K(2048)ワードである。
701と702は命令キャッシュのタグを構成するSRAMのタグメモリアレイAとBであり、それぞれウェイ0とウェイ1のタグアドレスを格納する構成となっている。命令フェッチにより命令キャッシュがアクセスされるときには、タグメモリアレイA701、B702に対して命令フェッチアドレスの第9〜1ビットをSRAMのアドレスとして入力することで対応するラインのタグアドレスを読み出し、それぞれアドレス比較回路A703、B704に入力する。アドレス比較回路A703、B704においては、命令フェッチアドレスの上位(第10ビット以上)とタグアドレスの比較(ヒット判定)が行われ、各ウェイについてのヒット信号A705、B706が生成されるが、このタグメモリアレイおよびアドレス比較回路の構成は一般的なキャッシュメモリの構成と同様である。
一方、707と708は命令キャッシュに登録された命令を保持するためのSRAMのデータメモリアレイAとBである。本実施の形態においては、データメモリアレイA707とB708に対してそれぞれウェイ0およびウェイ1のデータが記憶されるのではなく、データメモリアレイA707に対しては、ウェイ0のワード0のデータが偶数番のアドレスに、ウェイ1のワード1のデータが奇数版のアドレスに記憶され、データメモリアレイB708に対しては、ウェイ1のワード0のデータが偶数番のアドレスに、ウェイ0のワード1のデータが奇数番のアドレスに記憶される構成となっている。
命令フェッチにより命令キャッシュがアクセスされるときには、データメモリアレイA707とB708に対して、命令フェッチアドレスの第9〜1ビットに加えて、アドレス生成回路710が出力するアドレスA711およびアドレスB712をSRAMのアドレスの最下位ビットとしてデータメモリアレイA707とB708に入力する。データメモリアレイA707とB708ではこのアドレスを使用して対応するワードを読み出してデータ選択回路709に入力し、データ選択回路709は、そのいずれか選択してCPU101に対して命令を供給る構成となっている。
データメモリアレイA707とB708の読み出しアクセスについては、アドレス生成回路710の出力するアドレスA711、B712の値、およびデータ選択回路709の選択動作によって2つのアクセスモード(モードA、モードB)が可能である。モードAにおいては、アドレス生成回路710はアドレスA711、B712に対して命令フェッチアドレスの第0ビットの値を出力し、その結果、データメモリアレイA707とB708は命令フェッチアドレスの第9〜0ビットを用いて読み出される。その結果、命令フェッチアドレスが偶数の場合にはデータメモリアレイA707にウエイ0、データメモリアレイB708にウエイ1の命令が読み出され、命令フェッチアドレスが奇数の場合にはデータメモリアレイA707にウエイ1、データメモリアレイB708にウエイ0の命令が読み出される。そして、データ選択回路709では、ヒット信号A705、B706と命令フェッチアドレスの第0ビットの値に基づいてデータの選択が行われ、命令フェッチアドレスが偶数かつヒット信号A705がヒット判定、もしくは命令フェッチアドレスが奇数かつヒット信号B706がヒット判定の場合にはデータメモリアレイA707の出力が、命令フェッチアドレスが奇数かつヒット信号A705がヒット判定、もしくは命令フェッチアドレスが偶数かつヒット信号B706がヒット判定の場合にはデータメモリアレイB708の出力が選択される動作を行う。その結果、モードAの動作においては、データメモリアレイおよびデータ選択回路709の内部構成は異なるが、データメモリアレイもしくは命令キャッシュとしての読み出し動作は一般的なキャッシュメモリと同様のアクセスが実現される。
一方、モードBにおいては、一般的なキャッシュメモリの読み出しアクセスとは異なり、特定のウェイの2ワード分の読み出しを1回のアクセスで行う動作となる。すなわち、ヒット予測手段713が予測したウェイに対して、アドレス生成回路710は、アドレスA711に対してはその予測したウェイの番号を、アドレスB712に対してはその予測したウェイ番号に1を加えた値(この場合はアドレスB712は1ビットのアドレスであるので反転した値となる)を出力し、命令フェッチアドレスの第9〜1ビットと合わせてデータメモリアレイA707とB708の読み出しが行われる。その結果、ヒット予測手段713が予測したウェイの番号が偶数の場合にはデータメモリアレイA707にそのウエイのワード0、データメモリアレイB708にワード1の命令が読み出され、ウェイの番号が奇数の場合にはデータメモリアレイA707にそのウエイのワード1、データメモリアレイB708にワード0の命令が読み出される。
そして、データ選択回路709では、命令フェッチアドレスの第0ビットの値とヒット予測手段713が予測したウェイの番号に基づいてデータの選択が行われ、命令フェッチアドレスが偶数かつヒット予測手段713が予測したウェイの番号が偶数、もしくは命令フェッチアドレスが奇数かつ予測したウェイの番号が奇数の場合にはデータメモリアレイA707の出力が選択され、命令フェッチアドレスが偶数かつヒット予測手段713が予測したウェイの番号が奇数、もしくは命令フェッチアドレスが奇数かつ予測したウェイの番号が偶数の場合にはデータメモリアレイB708の出力が選択される動作を行う。
モードBの動作においても、タグメモリアレイA701、B702に対してはモードAの場合と同様のアクセスが行われ、ヒット信号A705、B706が生成される。ここで、ヒット予測手段713がヒットを予測したウェイとヒット信号A705、B706の結果が一致した場合には、上記のデータメモリアレイA707、B708へのアクセスにおいて、データ選択回路709で選択した命令をCPU101に対して出力することで命令フェッチアクセスを完了するが、ヒット予測手段713のヒット予測とタグメモリアレイA701、B702に対するアクセスの結果が一致しなかった場合には、ヒット予測手段713においてヒット予測を訂正して再度データメモリアレイA707、B708へのアクセスを行い、データ選択回路709で選択した命令をCPU101に対して出力する制御が行われる。この場合、データメモリアレイへのアクセスを再実行するため、CPU101への命令の供給に遅れ(1クロックサイクル)が生じることとなる。
さらに、モードBの動作においては、引き続く命令フェッチアクセスが、上記アクセスの同ライン内の隣接するワードであった場合には、データメモリアレイA707、B708へのアクセスを行うことなくCPU101に命令を供給する。すなわち、モードBの動作においては、同ラインの2ワード分の命令がデータメモリアレイA707、B708から同時に読み出される。そして、連続した命令フェッチアクセスによってこの2ワードの命令が要求される場合には、データ選択回路709における選択を切り替えることによってデータメモリアレイA707、B708を再度アクセスすることなく命令を供給する。
このように、モードAの動作においては、命令フェッチアクセス毎にタグメモリアレイA701、B702およびデータメモリアレイA707、B708のアクセスを行いCPU101に命令を供給するのに対して、モードBの動作においては連続する命令フェッチアクセスに同ライン内のワードが要求された場合には、そのアクセスにおいては命令フェッチアクセス毎にタグメモリアレイA701、B702とデータメモリアレイA707、B708のいずれのアクセスも行うことなくCPU101に命令を供給する。ここで、プロセッサ回路の特に命令フェッチアクセスにおいては連続アドレスに対するアクセスの割合が高いこと、また、タグメモリアレイA701、B702およびデータメモリアレイA707、B708の読み出しアクセスには命令キャッシュの電力の大部分を消費されることから、モードB動作において命令キャッシュが消費する電力は、モードA動作で消費する電力の最大半分程度まで削減される。ただし、モードBでの動作においては、上記のようにヒット予測手段713においてヒット予測(ウェイ)が誤った場合にはCPU101に対する命令の供給に遅延が生じ、これがCPU101の性能の低下要因となる。
電力制御手段602は命令キャッシュ102の2つの動作モードのいずれかを選択するために、目標性能レジスタ214の出力する目標性能値215と、処理性能計測手段216の出力する実行性能値217を入力する。目標性能値215および実行性能値217は、いずれも2の14乗クロックサイクルの当りに実行される命令数で表わされる。ここで、目標性能レジスタ214と処理性能計測手段216の構成は第1の実施の形態と同様である。
電力制御手段602は、上記の目標性能レジスタ214の出力する目標性能値215と処理性能計測手段216の出力する実行性能値217から、CPU101の処理性能がほぼ目標性能値と一致するように命令キャッシュ102のモードの選択を制御する。すなわち、目標性能値215と2の12乗クロックサイクル毎に更新される実行性能値217を比較して、実行性能値217が目標性能値215を下回っている場合には、CPU101に対して遅延なく命令が供給されるように命令キャッシュ102の動作をモードAへ切り替え、逆に実行性能値217が目標性能値215を上回っている場合には、CPU101に対する命令の供給に遅延が生じる場合があっても命令キャッシュ102の消費電力が削減される動作モードBへの切り替えを行うよう制御を行う構成となっている。
上記のように構成されたプロセッサ回路において、その動作を説明する。
プログラムは目標性能レジスタ214にプログラムが必要とする性能を設定してプログラムの処理を開始する。電力制御手段602は、プログラムを実行している期間中、CPU101の実行性能値217と設定された目標性能値215を比較し、実行性能値217と設定された目標性能値215が近づくように命令キャッシュ102に対する制御を継続して行う。その結果、CPU101はプログラムが必要とする目標性能を実現しつながら、消費電力が抑えられるモードでの動作が選択される。
以上の様に、上記構成のプロセッサ回路においては、プログラムが必要とする処理性能とCPU101の動作状況に応じて、命令キャッシュ102の動作モードを切り替えることによって、プログラムが必要とする目標性能を実現しつながら、消費電力を最大限抑えた動作を行うことが実現される。
なお、上記構成における処理性能計測手段216を目標性能レジスタに換えて、命令キャッシュのタグメモリアレイおよびデータメモリアレイの動作状況から消費電力値を推定する消費電力計測手段と電力目標レジスタを備えた構成とし、第2の実施の形態と同様に、プログラムに許される消費電力と命令キャッシュ102の動作状況に応じて、命令キャッシュの102の動作モードを切り替えることによって、プログラムに許される消費電力を維持しつながら、最大限の処理性能を発揮する動作を行うことが可能なことは明らかである。
また、上記では電力制御手段602が命令キャッシュの動作モードを制御する構成としているが、データキャッシュについても同様に動作モードを持った構成とし、さらに電力制御手段602がデータキャッシュの動作モードを制御する構成としても同様の効果が実現できることは明らかである。
(実施の形態4)
本発明の第4の実施の形態のプロセッサ回路の主要な構成およびCPU101の内部の構成は、第1の実施の形態の図1および第3の実施の形態の第6図と同様である。
図8に第4の実施の形態の命令キャッシュ102の内部の詳細な構成を示す。この命令キャッシュの構成は、第3の実施の形態と同じく、2ウェイセットアソシアティブ構成のキャッシュメモリで、各ウェイは512ラインから構成されている。第3の実施の形態と異なっているのは、命令キャッシュに登録された命令を保持するためのSRAMのデータメモリアレイ801の構成であり、第3の実施の形態においてはデータメモリアレイA707とB708の2つのSRAMアレイにより構成されていたものが、ここでは、2ワードの読み出しを同時に行うことが可能な1つのSRAMアレイにより構成されている。また、データメモリアレイ801を構成するSRAMは内部的に2コラム(2組のビットラインから選択してセンスアンプに接続する回路構成)のメモリとなっている。
図9にデータメモリアレイ801の内部の回路構成を示す。この図では、中央のアドレスでコード回路901を挟んで両側に内部の読み出し回路の各ワードの1ビットずつを模式的に示している。実際にはこの読み出し回路がワードを構成するビット数分並んでいる。ここでアドレスデコード回路901は命令フェッチアドレスの第9〜1ビットをデコードしてワードライン902を生成する。ワードライン902は両ワードに対して共通に生成される構成となっている。
ワードライン902は、メモリセルとビットライン903〜906を繋ぐNチャンネルトランジスタのゲートに接続する。ビットライン903〜906は、それぞれ、偶数ウェイのワード0、奇数ウェイのワード1、奇数ウェイのワード0、偶数ウェイのワード1のメモリセルが接続される。ビットライン903、ビットライン904は、コラム選択回路A907に入力して、アドレス生成回路710が出力するアドレスA711により制御されるNチャンネルトランジスタからなる選択回路によって選択される。ここでは、アドレスA711が0の時にはビットライン903すなわち偶数ウェイのワード0が、1の時にはビットライン904すなわち奇数ウェイのワード1が選択され、その値がセンスアンプで増幅された出力される。一方、ビットライン905、ビットライン906は、コラム選択回路B908に入力して、アドレス生成回路710が出力するアドレスB712により制御されるNチャンネルトランジスタからなる選択回路によって選択される。ここでは、アドレスB712が0の時にはビットライン905すなわち奇数ウェイのワード0が、1の時にはビットライン906すなわち偶数ウェイのワード1が選択され出力される構成となっている。
したがって、データメモリアレイ801は、第3の実施の形態におけるデータメモリアレイA707とB708と同じ動作を行うことが可能である。このことから命令キャッシュとして2つの動作モード(モードA、モードB)を行う構成となっており、またこの構成のプロセッサ回路においては、プログラムが必要とする処理性能とCPU101の動作状況に応じて、命令キャッシュ102の動作モードを切り替えることによって、プログラムが必要とする目標性能を実現しつながら、消費電力を最大限抑えた動作を行うことが実現される。
さらに、この構成においては、データメモリアレイ801をワード毎に独立に制御することが可能なコラム選択回路をもったひとつのSRAM メモリの構成とすることでアドレスデコード回路901を共通とした構成をとることが可能となり、命令キャッシュに必要な回路面積の削減が実現される。
(実施の形態5)
図10に、本発明の第10の実施の形態のプロセッサ回路の構成図を示す。このプロセッサ回路は、2CPUの共有メモリ方式のマルチプロセッサ構成の高性能プロセッサである。
図10において、CPU101、命令キャッシュ102、データキャッシュ103、BCU106、システムバスインタフェース107、SDRAMインタフェース108、ROM109およびSDRAM110は第1の実施の形態におけるそれと同様である。また、第1の実施の形態の構成に加えて、CPU111、命令キャッシュ112、データキャッシュ113を備えるが、それらはそれぞれCPU101、命令キャッシュ102、データキャッシュ103と同様のである。また、CPU101およびCPU111とBCU106を接続するキャッシュバス107、117は2ワード幅を有する構成となっている。
また、命令キャッシュ102、データキャッシュ103、命令キャッシュ112、データキャッシュ113の内部の構成については、図7に示した第3の実施の形態の命令キャッシュと同様の構成となっており、データメモリアレイA707に対しては、ウェイ0のワード0のデータが偶数番のアドレスに、ウェイ1のワード1のデータが奇数版のアドレスに記憶され、データメモリアレイB708に対しては、ウェイ1のワード0のデータが偶数番のアドレスに、ウェイ0のワード1のデータが奇数番のアドレスに記憶される構成となっている。
上記のように構成されたプロセッサ回路において、CPU101とCPU111はメモリを共有して動作する構成であり、それぞれのキャッシュメモリの内容の一貫性を保障するために各CPUのキャッシュメモリの特定のウェイのラインに記憶された命令もしくはデータをBCU106を通じて転送する動作がある。この場合、転送元となるキャッシュメモリにおいては、アドレス生成回路710は、アドレスA711に対しては転送するウェイの番号を、アドレスB712に対してはその予測したウェイ番号に1を加えた値(この場合はアドレスB712は1ビットのアドレスであるので反転した値となる)を出力し、転送するラインの番号と合わせてデータメモリアレイA707とB708の読み出しが行われる。その結果、転送するウェイの番号が偶数の場合にはデータメモリアレイA707にそのウエイのワード0、データメモリアレイB708にワード1の命令が読み出され、ウェイの番号が奇数の場合にはデータメモリアレイA707にそのウエイのワード1、データメモリアレイB708にワード0の命令が読み出される。すなわち、この1回のアクセスによって転送を行う特定のウェイのラインの2ワードの読み出しが実行される。読み出された命令もしくはデータはキャッシュバス107、117に出力され、BCU106を通じて転送先のキャッシュメモリに転送される。
以上の様に、上記構成のプロセッサ回路においては、キャッシュメモリのウェイのラインを構成する2ワードを、データメモリアレイの異なったワードに格納して同時に読み出し可能な構成とすることによって、キャッシュメモリ間でラインに記憶された命令もしくはデータの転送を行う場合のデータメモリアレイの読み出しアクセス回数を最小に抑えることができ、通常のキャッシュメモリアクセスを阻害する要因を減らすことが可能となる。
本発明のプロセッサ装置は、プログラムが必要とする処理性能とCPUが発揮する刻々の処理性能の状況に応じて、動機的命令発行の有無もしくは同時に発行可能な命令数もしくはキャッシュのデータアレイのアクセス方法と切り替えることによって、プログラムが必要とする目標性能を発揮しながら、消費電力を最大限抑えたCPU動作を行うことが実現できるという効果を有し、マイクロプロセッサ等のLSIに用いられるプロセッサ装置として有用である。
本発明の第1の実施の形態のプロセッサ回路の構成図 同実施の形態におけるCPUの内部構成図 同実施の形態における処理性能計測手段の内部構成図 同実施の形態における処理性能計測手段のタイムチャート図 本発明の第2の実施の形態におけるCPUの内部構成図 同実施の形態における消費電力計測手段の内部構成図 本発明の第2の実施の形態におけるCPUの内部構成図 同実施の形態における命令キャッシュの内部構成図 本発明の第4の実施の形態における命令キャッシュの内部構成図 同実施の形態におけるデータメモリアレイの内部構成図 本発明の第5の実施の形態のプロセッサ回路の構成図
符号の説明
101 CPU
102 命令キャッシュ
201 命令フェッチ手段
208 分岐ターゲットバッファ
203 命令発行手段
204 命令処理パイプラン1
205 命令処理パイプラン2
206 命令処理パイプラン3
207 命令処理パイプラン4
213 電力制御手段
214 目標性能レジスタ
216 処理性能計測手段

Claims (25)

  1. プログラムを実行して処理を行うプロセッサ装置であって、
    前記プロセッサ装置の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、
    前記プロセッサ装置の処理実行性能と実行消費電力の少なくとも一方を計測する計測手段と、
    前記計測手段の計測結果と目標値とを比較し比較結果に応じて動作モードを切り替える制御部とを備えることを特徴とするプロセッサ装置。
  2. 請求項1記載のプロセッサ装置であって、
    前記実行回路は、命令を実行する複数の命令実行パイプライン部と、同時に複数の命令を複数の命令実行パイプライン部に発行する命令発行部とを備え、
    前記計測手段は、前記複数の命令実行パイプラインで処理される一定時間当たりの命令数に基づいて、処理実行性能と実行消費電力の少なくとも一方を計測する
    ことを特徴とするプロセッサ装置。
  3. 請求項2記載のプロセッサ装置であって、
    前記命令発行部は、前記命令実行パイプライン部に対して同時に発行することが許可される命令の最大許可数の異なる複数の動作モードを有し、
    前記計測手段は、前記プロセッサ装置の処理実行性能として前記命令数を計測し、
    前記制御手段は、前記計測手段に計測された処理実行性能が目標処理性能を満たす場合には、命令発行部を最大許可数のより少ない動作モードに切り替え、前記計測手段に計測された処理実行性能が前記目標処理性能に不足する場合には、命令発行部を最大許可数のより多い動作モードに切り替える
    ことを特徴とするプロセッサ装置。
  4. 請求項3記載のプロセッサ装置であって、
    前記計測手段は一定期間毎に前記命令実行パイプライン部において実行を完了した命令数を計測し、その数を前記処理実行性能として示すことを特徴とするプロセッサ装置。
  5. 請求項3記載のプロセッサ装置であって、
    前記目標処理性能が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
  6. 請求項3記載のプロセッサ装置であって、
    前記命令発行部はさらに前記命令実行パイプライン部に対して投機的に前記命令を発行することが出来る動作モードを有し、
    前記制御手段は、前記計測手段が示す前記処理実行性能が前記目標処理性能に不足する場合には、前記命令発行部を投機的に前記命令を発行することが出来る前記動作モードにまで切り替えることを特徴とするプロセッサ装置。
  7. 請求項2記載のプロセッサ装置であって、
    前記命令発行部は、前記命令実行パイプライン部に対して同時に発行することが許可される命令の最大許可数の異なる複数の動作モードを有し、
    前記計測手段は、前記プロセッサ装置の実行消費電力として前記命令数を計測し、
    前記制御手段は、前記計測手段が示す前記実行消費電力が目標消費電力を下回る場合には、前記命令発行部を同時に発行することが出来る前記命令の最大許可数のより多い前記動作モードに切り替え、前記実行消費電力が目標消費電力を上回る場合には、前記命令発行部を同時に発行することが出来る前記命令の最大許可数のより少ない前記動作モードに切り替えて動作することを特徴とするプロセッサ装置。
  8. 請求項7記載のプロセッサ装置であって、
    前記計測手段は一定期間毎に前記命令実行パイプライン部に対して発行される命令数を計測し、その数を前記実行消費電力として示すことを特徴とするプロセッサ装置。
  9. 請求項7記載のプロセッサ装置であって、
    前記目標消費電力が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
  10. 請求項7記載のプロセッサ装置であって、
    前記命令発行部はさらに前記命令実行パイプライン部に対して投機的に前記命令を発行することが出来る動作モードを有し、
    前記制御手段は、前記計測手段が示す前記実行消費電力が前記目標消費電力を下回る場合には、前記命令発行部を投機的に前記命令を発行することが出来る前記動作モードにまで切り替えて動作することを特徴とするプロセッサ装置。
  11. 請求項2記載のプロセッサ装置は、N個のウェイを有するNウェイセットアソシアティブ構成で1ラインが複数ワードからなるキャッシュメモリを備え、
    前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、
    前記データメモリアレイは、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、
    前記キャッシュメモリは、前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出して、ヒットした前記ウェイの前記ワードを選択して出力する第1の動作モードと、前記ヒットが予測される前記ウェイの同ラインの複数の前記ワードを読み出して、同ウェイが前記ヒットした場合にはその前記ワードを順次選択して出力し、予測した前記ウェイと異なる前記ウェイが前記ヒットした場合には前記ヒットした前記ウェイの同ラインの複数の前記ワードを読み出して順次選択して出力する第2の動作モードを有し、
    前記計測手段は、前記プロセッサ装置の処理実行性能として前記命令数を計測し、
    前記制御手段は、前記計測手段が示す前記処理実行性能が目標処理性能を満たす場合には、前記第2の動作モードに切り替え、前記計測手段が示す前記処理実行性能が前記目標処理性能に不足する場合には、前記第1の動作モードに切り替えることを特徴とするプロセッサ装置。
  12. 請求項11記載のプロセッサ装置であって、
    前記計測手段は、一定期間毎に前記命令実行パイプライン部において実行を完了する命令数を計測し、その数を前記処理実行性能として示すことを特徴とするプロセッサ装置。
  13. 請求項11記載のプロセッサ装置であって、
    前記目標処理性能が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
  14. 請求項11記載のプロセッサ装置であって、
    前記データメモリアレイは、前記ワード幅で読み出し可能な複数のSRAMメモリにより構成されることを特徴とするプロセッサ装置。
  15. 請求項11記載のプロセッサ装置であって、
    前記データメモリアレイは、複数の前記ワード幅で読み出し可能な1または複数のSRAMメモリにより構成され、
    前記SRAMメモリは複数コラム構成であって、
    さらに前記SRAMメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力することを特徴とするプロセッサ装置。
  16. 請求項2記載のプロセッサ装置は、N個のウェイを有するNウェイセットアソシアティブ構成で1ラインが複数ワードからなるキャッシュメモリを備え、
    前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、
    前記データメモリアレイには、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、
    前記キャッシュメモリのアクセス時には、前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出して、ヒットした前記ウェイの前記ワードを選択して出力する第1の動作モードと、前記ヒットが予測される前記ウェイの同ラインの複数の前記ワードを読み出して、同ウェイが前記ヒットした場合にはその前記ワードを順次選択して出力し、予測した前記ウェイと異なる前記ウェイが前記ヒットした場合には前記ヒットした前記ウェイの同ラインの複数の前記ワードを読み出して順次選択して出力する第2の動作モードを備え、
    前記計測手段は、前記プロセッサ装置の実行消費電力として前記命令数を計測し、
    前記制御手段は、前記計測手段が示す前記実行消費電力が目標消費電力を下回る場合には、前記第1の動作モードに切り替え、ま記実行消費電力が目標消費電力を上回る場合には、前記第2の動作モードに切り替えることを特徴とするプロセッサ装置。
  17. 請求項16記載のプロセッサ装置であって、
    前記計測手段は一定期間毎に前記データメモリアレイの読み出しを行わせたメモリアクセス命令の個数を計測し、その数を前記実行消費電力として示すことを特徴とするプロセッサ装置。
  18. 請求項16記載のプロセッサ装置であって、
    前記目標消費電力が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
  19. 請求項16記載のプロセッサ装置であって、
    前記データメモリアレイが前記ワード幅で読み出し可能な複数のSRAMメモリにより構成されることを特徴とするプロセッサ装置。
  20. 請求項16記載のプロセッサ装置であって、
    前記データメモリアレイが複数の前記ワード幅で読み出し可能な1または複数のSRAMメモリにより構成され、
    前記SRAMメモリは複数コラム構成であって、
    さらに前記SRAMメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力することを特徴とするプロセッサ装置。
  21. 請求項1記載のプロセッサ装置であって、
    前記計測手段は、前記プロセッサ装置の前記処理性能を計測して処理実行性能として示し、
    前記制御手段は、前記計測手段が示す前記処理実行性能が目標処理性能を満たす場合には、前記実行回路を前記処理性能のより高い前記動作モードに切り替え、また前記処理実行性能が前記目標処理性能に不足する場合には、前記実行回路を前記処理性能のより低い前記動作モードに切り替えることを特徴とするプロセッサ装置。
  22. 請求項1記載のプロセッサ装置であって、
    前記計測手段は、前記プロセッサ装置の前記消費電力を計測して実行消費電力として示し、
    前記計測手段が示す前記実行消費電力が目標消費電力を下回る場合には、前記実行回路を前記処理性能のより高い前記動作モードに切り替え、また前記消費電力が目標消費電力を上回る場合には、前記実行回路を前記処理性能のより低い前記動作モードに切り替えることを特徴とするプロセッサ装置。
  23. 請求項1記載のプロセッサ装置であって、
    前記実行回路は、キャッシュメモリを有する複数のCPUを備え、
    前記キャッシュメモリはN個のウェイを有するNウェイセットアソシアティブ構成で1ラインが複数ワードからなる構成であり、
    前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、
    前記データメモリアレイには、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、
    前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出してヒットした前記ウェイの前記ワードを選択して出力する第1の読み出しモードと、前記ウェイの同ラインの複数の前記ワードを読み出して出力する第2の読み出しモードを備え、
    前記キャッシュメモリのアクセスを行う場合には第1の読み出しモードで動作し、
    複数の前記CPUの前記キャッシュメモリの間でデータを転送する場合には第2の読み出しモードで動作することを特徴とするプロセッサ装置。
  24. 請求項23記載のプロセッサ装置であって、
    前記データメモリアレイが前記ワード幅で読み出し可能な複数のSRAMメモリにより構成されることを特徴とするプロセッサ装置。
  25. 請求項24記載のプロセッサ装置であって、
    前記データメモリアレイが複数の前記ワード幅で読み出し可能な1または複数のSRAMメモリにより構成され、
    前記SRAMメモリは複数コラム構成であって、
    さらに前記SRAMメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力することを特徴とするプロセッサ装置。

JP2004239397A 2004-08-19 2004-08-19 プロセッサ装置 Withdrawn JP2006059068A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004239397A JP2006059068A (ja) 2004-08-19 2004-08-19 プロセッサ装置
US11/200,193 US7594131B2 (en) 2004-08-19 2005-08-10 Processing apparatus
EP05017572A EP1628210A3 (en) 2004-08-19 2005-08-12 Processing apparatus
US12/139,059 US20080276044A1 (en) 2004-08-19 2008-06-13 Processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004239397A JP2006059068A (ja) 2004-08-19 2004-08-19 プロセッサ装置

Publications (1)

Publication Number Publication Date
JP2006059068A true JP2006059068A (ja) 2006-03-02

Family

ID=35385635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004239397A Withdrawn JP2006059068A (ja) 2004-08-19 2004-08-19 プロセッサ装置

Country Status (3)

Country Link
US (2) US7594131B2 (ja)
EP (1) EP1628210A3 (ja)
JP (1) JP2006059068A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310791A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd 計算機システムの消費電力低減方法、及びそのプログラム
WO2008012874A1 (fr) * 2006-07-25 2008-01-31 National University Corporation Nagoya University Dispositif de traitement d'opération
JP2008102927A (ja) * 2006-10-19 2008-05-01 Internatl Business Mach Corp <Ibm> コンピュータ・プロセッサ・システムのための消費電力管理方法及びシステム
WO2008120274A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 演算能力を制御する処理装置
JP2009003807A (ja) * 2007-06-22 2009-01-08 Fujitsu Ltd マイクロプロセッサ
JP2009110385A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd データ処理システム
JP2009151778A (ja) * 2007-12-19 2009-07-09 Internatl Business Mach Corp <Ibm> ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム
JP4811879B2 (ja) * 2005-08-19 2011-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法
WO2015019476A1 (ja) * 2013-08-08 2015-02-12 富士通株式会社 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
GB2574722A (en) * 2018-06-14 2019-12-18 Lenovo Singapore Pte Ltd Information processing apparatus, control method of information processing apparatus, and program

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101361039A (zh) * 2006-01-20 2009-02-04 松下电器产业株式会社 处理器
US8566568B2 (en) * 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
EP2159691B1 (en) * 2007-06-20 2013-08-28 Fujitsu Limited Simultaneous multithreaded instruction completion controller
US8078890B2 (en) * 2007-09-11 2011-12-13 Dell Products L.L.P. System and method for providing memory performance states in a computing system
JP2009110209A (ja) * 2007-10-29 2009-05-21 Panasonic Corp 演算処理装置、プロセッサ、プログラム変換装置およびプログラム
US7934108B2 (en) * 2007-12-18 2011-04-26 Dell Products, Lp System and method to identify power savings
US9141392B2 (en) * 2010-04-20 2015-09-22 Texas Instruments Incorporated Different clock frequencies and stalls for unbalanced pipeline execution logics
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
US8612801B2 (en) 2011-01-25 2013-12-17 Dell Products, Lp System and method for extending system uptime while running on backup power
JP2014048972A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 処理装置、情報処理装置、及び消費電力管理方法
US10423421B2 (en) * 2012-12-28 2019-09-24 Intel Corporation Opportunistic utilization of redundant ALU
KR20140134421A (ko) * 2013-05-14 2014-11-24 한국전자통신연구원 이중 명령어 페치 장치 및 방법
US9529727B2 (en) * 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline
US11533272B1 (en) * 2018-02-06 2022-12-20 Amesite Inc. Computer based education methods and apparatus
US10969858B2 (en) * 2019-01-03 2021-04-06 Apple Inc. Operation processing controlled according to difference in current consumption

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5623615A (en) 1994-08-04 1997-04-22 International Business Machines Corporation Circuit and method for reducing prefetch cycles on microprocessors
US5944829A (en) * 1996-09-30 1999-08-31 Intel Corporation Adjusting software characteristics by user interface based upon battery level and the amount of time the user wants the battery to last
US6564332B1 (en) * 1998-12-23 2003-05-13 Intel Corporation Method and apparatus for managing power consumption in a computer system responsive to the power delivery specifications of a power outlet
US6317840B1 (en) * 1999-03-24 2001-11-13 International Business Machines Corporation Control of multiple equivalent functional units for power reduction
US6651176B1 (en) * 1999-12-08 2003-11-18 Hewlett-Packard Development Company, L.P. Systems and methods for variable control of power dissipation in a pipelined processor
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
DE10141626B4 (de) * 2000-09-06 2007-08-09 International Business Machines Corp. Dynamische Angleichung von Leistungsvermögen und Strombedarf
US6826704B1 (en) * 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
JP4139579B2 (ja) * 2001-06-19 2008-08-27 株式会社ルネサステクノロジ 半導体装置および半導体装置の動作モード制御方法
US6775787B2 (en) * 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US6996728B2 (en) * 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
US7243243B2 (en) * 2002-08-29 2007-07-10 Intel Corporatio Apparatus and method for measuring and controlling power consumption of a computer system
US7290089B2 (en) * 2002-10-15 2007-10-30 Stmicroelectronics, Inc. Executing cache instructions in an increased latency mode
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US20040268159A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Power profiling
US7200763B2 (en) * 2003-10-09 2007-04-03 Sun Microsystems, Inc. Method and apparatus for controlling the power consumption of a semiconductor device
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US20070008887A1 (en) * 2005-06-24 2007-01-11 Eugene Gorbatov Platform power management of a computing device using quality of service requirements of software tasks

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4811879B2 (ja) * 2005-08-19 2011-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法
JP2007310791A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd 計算機システムの消費電力低減方法、及びそのプログラム
WO2008012874A1 (fr) * 2006-07-25 2008-01-31 National University Corporation Nagoya University Dispositif de traitement d'opération
US7836326B2 (en) 2006-07-25 2010-11-16 National University Corporation Nagoya University Apparatus with variable pipeline stages via unification processing and cancellation
JP2008102927A (ja) * 2006-10-19 2008-05-01 Internatl Business Mach Corp <Ibm> コンピュータ・プロセッサ・システムのための消費電力管理方法及びシステム
WO2008120274A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 演算能力を制御する処理装置
JP2009003807A (ja) * 2007-06-22 2009-01-08 Fujitsu Ltd マイクロプロセッサ
JP2009110385A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd データ処理システム
JP2009151778A (ja) * 2007-12-19 2009-07-09 Internatl Business Mach Corp <Ibm> ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム
WO2015019476A1 (ja) * 2013-08-08 2015-02-12 富士通株式会社 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
JP6024828B2 (ja) * 2013-08-08 2016-11-16 富士通株式会社 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
US9846480B2 (en) 2013-08-08 2017-12-19 Fujitsu Limited Selecting method, computer product, selecting apparatus, and recording medium
GB2574722A (en) * 2018-06-14 2019-12-18 Lenovo Singapore Pte Ltd Information processing apparatus, control method of information processing apparatus, and program
US11073892B2 (en) 2018-06-14 2021-07-27 Lenovo (Singapore) Pte. Ltd. Processing capacity and heat management of an information processing device
GB2574722B (en) * 2018-06-14 2022-11-02 Lenovo Singapore Pte Ltd Information processing apparatus, control method of information processing apparatus, and program

Also Published As

Publication number Publication date
US20080276044A1 (en) 2008-11-06
EP1628210A3 (en) 2008-04-23
US7594131B2 (en) 2009-09-22
EP1628210A2 (en) 2006-02-22
US20060064679A1 (en) 2006-03-23

Similar Documents

Publication Publication Date Title
JP2006059068A (ja) プロセッサ装置
US8583894B2 (en) Hybrid prefetch method and apparatus
US7562191B2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US6247094B1 (en) Cache memory architecture with on-chip tag array and off-chip data array
JP4195006B2 (ja) ジャンプターゲットのための命令キャッシュウェイ予測
KR101614867B1 (ko) 데이터 스트림에 대한 저장 인식 프리페치
US5941981A (en) System for using a data history table to select among multiple data prefetch algorithms
US8156287B2 (en) Adaptive data prefetch
KR101402560B1 (ko) 연산 처리 장치
US7073026B2 (en) Microprocessor including cache memory supporting multiple accesses per cycle
US8250307B2 (en) Sourcing differing amounts of prefetch data in response to data prefetch requests
CN101495962A (zh) 用于预取不连续指令地址的方法和设备
JP2008217353A (ja) データ処理装置、およびメモリのリードアクティブ制御方法。
JP2004038345A (ja) プリフェッチ制御装置、情報処理装置及びプリフェッチ制御方法
KR19980063475A (ko) 다중-포트 인터리브 캐쉬 메모리
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
WO2013098919A1 (ja) データ処理装置
US6560676B1 (en) Cache memory system having a replace way limitation circuit and a processor
US5900012A (en) Storage device having varying access times and a superscalar microprocessor employing the same
KR101099417B1 (ko) 캐시 메모리 디바이스
JPH1055310A (ja) キャッシュ・サブアレイ・アービトレーションの改良
CN104106046B (zh) 数据处理装置
US11256622B2 (en) Dynamic adaptive drain for write combining buffer
US7124236B1 (en) Microprocessor including bank-pipelined cache with asynchronous data blocks
TW202347112A (zh) 效能感知的部分快取記憶體收縮

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090902

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091023