JP2012119006A - 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置 - Google Patents

周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置 Download PDF

Info

Publication number
JP2012119006A
JP2012119006A JP2012010216A JP2012010216A JP2012119006A JP 2012119006 A JP2012119006 A JP 2012119006A JP 2012010216 A JP2012010216 A JP 2012010216A JP 2012010216 A JP2012010216 A JP 2012010216A JP 2012119006 A JP2012119006 A JP 2012119006A
Authority
JP
Japan
Prior art keywords
tag
processor
comparator
cam
attribute
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.)
Granted
Application number
JP2012010216A
Other languages
English (en)
Other versions
JP5680574B2 (ja
Inventor
Jeffrey Todd Bridges
ジェフリー・トッド・ブリッジス
Norris Diefenderfer James
ジェームズ・ノリス・ディーフェンダーファー
Scott Mcilvain Michael
マイケル・スコット・マクイルバイン
Andrew Sartorius Thomas
トマス・アンドリュー・サートリウス
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012119006A publication Critical patent/JP2012119006A/ja
Application granted granted Critical
Publication of JP5680574B2 publication Critical patent/JP5680574B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Logic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】リネーミングレジスタファイルの電力を節約する。
【解決手段】マッピングユニットは、インストラクションレジスタナンバー(IRN)を論理レジスタナンバー(LRN)に変換する。リネーミングレジスタファイルは、LRNを物理レジスタナンバー(PRN)にマップする。IRNの直接の使用によりアドレス可能なものよりより多い数の物理レジスタがある。リネーミングレジスタファイルはコンテンツアドレッサブルメモリ(CAM)を使用してマッピング機能を提供する。リネーミングレジスタファイルCAMはさらに現在のプロセッサー状態情報を用いてタグコンパレーターを選択的にイネーブルにしレジスタをアクセスする際の電力を最小にする。タグコンパレーターがイネーブルにならないとき、それは低電力状態になる。低電力特徴を有したリネーミングレジスタファイルを用いてプロセッサーも記載される。
【選択図】図3A

Description

この発明は一般にプロセッサー内の電力を低減するための技術に関し、特に、周知のプロセッサーステートに基いてコンテンツアドレッサブルメモリ(CAM)リネーミング(renaming)レジスタファイルにおいてコンパレーターを選択的にイネーブルにするための有利な技術に関する。
高性能プログラム実行を達成するために、プロセッサーインプリメンテーションは、短い期間のパイプラインステージを用いて高クロックレートで動作するパイプラインを使用してもよい。このタイプのプロセッサーのためのインストラクションセットアーキテクチャーは、データのソースとしておよび結果のためのデスティネーションとして実行ユニットにより使用される汎用レジスタのセットを指定してもよい。各インストラクションは、インストラクションエンコーディングの一部として、ソースオペランドまたはデスティネーションオペランドとして使用されるレジスタのアドレスを指定するビットフィールドを含む。これらのレジスタ指示子は、インストラクションレジスタナンバー(IRNs)と呼ばれる。実行ユニットによる使用のために利用可能な汎用レジスタのセットは、プロセッサーのオペレーティングステートに応じて変化してもよい。例えば、特定のオペレーティングモードで実行しているプログラムは、汎用レジスタの合計セットのサブセットのみをアクセスすることができる命令を使用することに制限されてもよい。プロセッサーはまた、プログラムの順番において命令を完了する前にパイプライン実行の期間中にアウトオブオーダー(out-of-order)の命令を実行することをサポートしてもよい。アウトオブオーダー実行を有した深いパイプラインをサポートするために、プロセッサーは、プロセッサーのインストラクションセットアーキテクチャーによりサポートすることができる多数の物理レジスタを実施してもよい。レジスタファイル内で実施される物理レジスタは、物理レジスタナンバー(PRN)アドレスの使用により典型的にアクセスされるであろう。けれども、PRNアドレスを直接使用する命令の場合困難性がある。例えば、16のレジスタのIRNアドレス空間を有したインストラクションセットアーキテクチャーをサポートするプロセッサーは、64の物理レジスタのPRNアドレス空間を用いて実施してもよい。IRNアドレス空間とPRNアドレス空間との間の差を解決するために、プロセッサーは、命令に含まれるIRNアドレスを物理レジスタナンバー(PRN)アドレスにマップするためにリネーミング(renaming)ハードウエアを使用してもよい。そのようなマッピングは、タグ、タグコンパレーター、およびデータアレイを有するコンテンツアドレッサブルメモリ(CAM)の使用により成就することができる。リネーミングハードウエアは、CAMデータアレイ内に記憶された物理レジスタのためのタグとしてIRNアドレスを使用してもよい。
CAMsをそのような目的に使用する場合の問題点は、ジェネリックCAMインプリメンテーション内のCAMタグコンパレーターは、レジスタファイルアクセス毎に評価されるということである。高性能インプリメンテーションの場合、CAMコンパレーターはダイナミックなデザインであり、プリチャージおよびディスチャージするときに電力を消費する。さらに、レジスタファイルは典型的にマルチポート構造であるので、各ポートに複数のコンパレーターがありさらにパワードレインを増加させる。
いくつかの観点の中で、この発明は、低電力コンテンツアドレッサブルメモリ(CAM)制御レジスタファイルを提供する技術の必要性が存在することを認識する。第1の観点において、制御技術はCAMに記憶されたタグを使用する。タグは、CAMのエレメントのアドレスである。タグは、プロセッサーのオペレーティングステートを記載するタグ内に属性を有する。タグコンパレーターは、タグをプロセッサーにより発生されたアドレスと比較する。オペレーティングステートコンパレーターは、タグコンパレーターをイネーブルにするかディスエーブルにするかを決定するために、その属性をプロセッサーの現在のオペレーティングステート(状態)と比較する。他の観点は、コンテンツアドレッサブルメモリ(CAM)ベースレジスタファイル内でディスエーブルされるレジスタアドレスコンパレーターを選択するための方法を扱う。この方法において、所定のアクセスに関して、一致する可能性がないレジスタアドレスコンパレーターは、CAMベースレジスタファイルと共同して利用されるプロセッサーのステートの知識に基いて識別される。識別されたレジスタアドレスコンパレーターは、それらが低電力状態に入るように制御される。この発明の他の観点は、以下にさらに詳細に記載されるように扱われる。
図1は、この発明の一実施形態が有利に採用される例示無線通信システムの説明図である。 図2は、この発明に従うプロセッサー複合体のブロック図である。 図3Aはこの発明に従う、リネーミングレジスタファイル、マッピングユニット、現在のプロセッサーステータスレジスタ(CPSR)、および実行ユニットを有するリネーミングレジスタファイル複合体内の物理レジスタナンバー(PRN)にインストラクションレジスタナンバーをマッピングするための例示装置の説明図である。 図3Bは、この発明に従う、リネーミングレジスタファイル、複数のマッピングユニット、CSPR、および実行ユニットを有する複数のポートアドレスを有したリネーミングレジスタファイル複合体内のPRNにIRNをマッピングするための例示装置の図式図である。 図4は、この発明に従うリネーミングレジスタファイル内のコンテンツアドレッサブルメモリ(CAM)タグコンパレーターを選択的にイネーブルにするためのプロセスの図式図である。 図5は、この発明に従う、タグ内の有効なビットおよび最も最近に使用されたビットを有するリネーミングレジスタファイル、マッピングユニット、CPSR、および実行ユニットを有するリネーミングレジスタファイル複合体内の物理レジスタナンバー(PRN)にインストラクションレジスタナンバー(IRN)をマッピングするための他の例示装置の図式図である。
この発明のより完全な理解、並びにこの発明のさらなる特徴と利点は、添付された図面とともに以下の詳細な記載から明らかになるであろう。
この発明は、この発明のいくつかの実施形態が示される添付図面を参照してより完全に記載されるであろう。しかしながら、この発明は種々の形態で具現化してもよく、ここに記載された実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、この開示が詳細で完全であり、この発明の範囲が当業者に完全に伝達されるように提供される。
コンピュータープログラムコードまたはこの発明の教示に基いて動作されるまたはこの発明の教示に従う動作を実行するための「プログラムコード」は、最初は、C、 C++、 JAVA(r)(登録商標)、JavaScript(登録商標)(r)、Visual Basic(r)、TSQL、Perlまたは種々の他のプログラミング言語で書かれてもよい。これらの言語の1つで書かれたプログラムは、ターゲットプロセッサーアーキテクチャーにコンパイルされる。また、ターゲットプロセッサーアーキテクチャーのためのプログラムは、ネイティブアセンブラー言語で書かれてもよい。ネイティブアセンブラープログラムは、マシンレベルバイナリインストラクションのインストラクションニーモニック表現を使用する。ここで使用されるプログラムコードまたはコンピューター読み取り可能媒体は、フォーマットがプロセッサーにより理解可能なオブジェクトコードのような機械言語コードを指す。
図1は、この発明の一実施形態が有利に採用される例示無線通信システムを示す。説明のために、図1は、3つの遠隔ユニット120、130、150と2つの基地局140を示す。典型的な無線通信システムは、より多くの遠隔ユニットおよび基地局を有してもよいことを認識するであろう。遠隔ユニット120、130、150は、それぞれハードウエアコンピューター125A、125B、125Cを含む。これらはこの発明に従ってプログラムコードを実行する。図1は、基地局140からのフォワードリンク信号180と遠隔ユニット120、130、150へのフォワードリンク信号と、遠隔ユニット120、130、150および基地局140へのリバースリンク信号190を示す。
図1において、遠隔ユニット120は携帯電話として示される。遠隔ユニット130はポータブルコンピューターとして示される。遠隔ユニット150は、無線ローカルループシステムにおける固定ロケーション遠隔ユニットとして示される。例えば、遠隔ユニットは、ハンドヘルドパーソナルコミュニケーションシステム(PCS)ユニット、パーソナルデータアシスタンツのようなポータブルデータユニット、またはメーター読み取り機器のような固定ロケーションデータユニットであってよい。図1はこの発明の教示に従って遠隔ユニットを図解するけれども、この発明はこれらの例示図解されたユニットに限定されない。この発明は、CAMベースリネーミングレジスタファイルと、プロセッサーの動作モードに応じてオペランドアドレス空間を制限するインストラクションセットアーキテクチャーを有するパイプラインプロセッサーを用いて任意のハードウエアコンピューターに適切に採用されてもよい。
図2は、この発明の一実施形態が採用されてもよいプロセッサー複合体200のブロック図を示す。プロセッサー複合体200は、プログラムコードを実行するためにハードウエアコンポーネント125A−Cにおいて適切に採用されてもよい。プロセッサー複合体200は、パイプラインプロセッサー210、レベル1(L1)データキャッシュ212、L1インストラクションキャッシュ(Icache)、レベル2インストラクションおよびデータキャッシュ(L2 cache)、およびシステムメモリインターフェースを含む。プロセッサー複合体に接続されてもよい周辺装置は、この発明の議論の明瞭さのために示されない。プロセッサー210はL1データキャッシュ212およびL1 Icache214に直接接続され、それぞれそこから、階層メモリ構成からのデータとインストラクションを検索する。
プロセッサーのインストラクションセットアーキテクチャーは、各4ビットIRNに対して16のレジスタまでを識別する、ここでは、インストラクションレジスタナンバー(IRN)フィールドと呼ばれる4ビットレジスタオペランドアドレスフィールドを有する32ビットインストラクションフォーマットを有していてもよい。インストラクションセットアーキテクチャーは、さらに、インストラクションの4ビットIRNが異なるレジスタを指す動作モードを定義してもよい。例えば、IRNs8−14はプロセッサーの動作モードに応じて異なるレジスタを指してもよい。インストラクション内のIRNsの解釈におけるそのような変化の結果として、4ビットIRNが示すように思われるよりも多数のレジスタがプロセッサー内で必要である。例えば、プロセッサーの種々の動作モードにおいてインストラクションの4ビットIRNフィールドによりアドレスすることができるすべてのレジスタをサポートするためにレジスタファイル内の32のレジスタが必要になるかもしれない。また、同じプロセッサーは、例えば16ビットインストラクションフォーマットにおいて3ビットIRNsを使用するインストラクションフォーマットをサポートしてもよい。3ビットおよび4ビットIRNsは、例示プロセッサー210により提供されるすべての利用可能な32レジスタを指定するために不十分であるので、プロセッサーの動作モードのエンコーディング220は、マッピング機能222において使用されIRNを5ビットロジカルレジスタナンバー(LRN)に変換する。5ビットLRNはレジスタファイル内のアーキテクチャーの定義されたレジスタセットをアドレッシングすることを可能にする。一般に、IRN空間のサブセットは、異なるレジスタにマップしてもよいので、マッピング機能222は、IRNを有した動作モードビットの単純な連結ではない。
例えば、プロセッサーのアーキテクチャーは、オペレーティングモードに応じて、複数の異なるレジスタにマップするためにIRN R14を指定してもよい。
典型的な使用において、プロセッサー210は一般的なユーザーモードにおいてユーザーのアプリケーションコードを主に実行することを期待することができる。それほど多くはないが、プロセッサー210は、例えばインタラプトまたはイクセプション(exceptions)を処理するために、スーパーバイザーモードまたは他のモードのような異なる動作モードでコードを実行する。頻繁に使用されるユーザーモードに対して効率的なサポートを提供することは、低減された電力動作に対して有利である。効率的な理由により、プロセッサー210の使用モードは、0−15のレンジ内のLRNにマップするIRNを有するレジスタに、レジスタ空間の制限された使用を指定する。他の動作モード、言い換えれば、否ユーザーモードは、0−31のLRNレンジ内のレジスタを使用する。従って、プロセッサー210は、ユーザーモードにあるとき、16−31のLRNレンジ内のレジスタにアクセスしない。LRNに対するIRNの一般的なマッピングは、プロセッサーのオペレーティングモードの知識を必要とする。これは、現在のプロセッサーステータスレジスタ(CPSR)230のビットフィールドエンコーディングにより定義されてもよい。例えば、オペランドアドレス信号224上に供給される4ビットIRNは、リードポートアドレス出力226として、CPSR230の使用により5ビットLRNに適切に変換される。この発明は、特定のコンテキストで記載されているけれども、この発明が他の動作モードに適用できるおよび具体的に記載したものとは異なるレジスタアロケーションに適用できることが認識されるであろう。
プロセッサー210のようなパイプラインプロセッサーにおいて、インストラクションセットアーキテクチャーによりサポートされるよりもより多くの物理レジスタが実施される。プロセッサー210内に多数の物理レジスタを有することによる1つの結果は、インストラクションで指定された同じレジスタの複数の値は、ユニークな複数の物理レジスタに同時に保持することができる。このアプローチを用いて、複数のインストラクション間の多数のデータ依存性を解決することができ、パイプラインをストールさせることなくシーケンシャル実行バリアを分割し、それにより性能を改善する。
プロセッサー210は、インストラクションアライメントユニット232、デコードユニット234、リネーミングレジスタファイル238、現在のプロセッサーステートレジスタ(CPSR)230、複数の実行ユニットから構成される。複数の実行ユニットのうちで単一の実効ユニット244のみが図の明瞭さのために示される。インストラクションはインターフェース240を介してメモリ階層からインストラクションアライメントユニット232に受信される。インストラクションが適切に割り当てられた後で、これらのインストラクションはデコーダユニット234でデコードされる。デコード動作は、制御信号242を利用して、制御情報を実行ユニット244に供給する。オペランドアドレス信号224を使用して、ソースおよびターゲットオペランドIRNアドレスをマッピングユニット222に供給する。マッピングユニット222は、現在のプロセッサーステートに基いて各オペランドIRNをLRNにマップする。例えば、32ビットインストラクションの場合、4ビットA3−A0オペランドソースIRNアドレスは、5ビットA4−A0LRNに変換される。同様に、16ビットインストラクションの場合、3ビットIRNsは、プロセッサーのインストラクションセットアーキテクチャーにより定義されるように、現在のプロセッサーステートにより決定される5ビットLRNsに変換される。また、リネーミングレジスタファイル238は、CPSR230のCPSR出力246から現在のプロセッサーステートビットまたはビット群を受信する。
リネーミングレジスタファイル238は、LRNを物理レジスタナンバー(PRN)にマップする。PRNは適切なレジスタ値をアクセスするために使用され、PRNレジスタに記憶された値はリード出力ポート250に出力される。また、命令が発行されると、結果レジスタは、リネーミングレジスタファイル238においてタグが付けられる。多数の実行パイプラインステージの後であってもよい、インストラクションの実行の終わりにおいて、実行ユニット244により発生された結果は、出力バス258を介してリネーミングレジスタファイル238に送信される。結果は、リネーミングレジスタファイル238において、以前にタグが付けられた結果PRNアドレスに記憶される。
図3Aは、リネーミングレジスタファイル238、マッピングユニット301、CPSR240、および実行ユニット244を有するリネーミングレジスタファイル複合体300においてインストラクションレジスタナンバー(IRN)を物理レジスタナンバー(PRN)にマッピングするための例示実施形態を図解する。リネーミングレジスタファイル238は、CAM物理レジスタファイル(PRF)302、およびレジスタファイルのシングルポートのためのCAMタグアレイ304を含む。マッピングユニットは、CPSRステート307に基いて、ポートAIRN入力305に供給されたIRNをLRN出力306にマップする。CAM PRF 302は、プロセッサーのアーキテクチャーにより指定されるよりも多数のレジスタ、例えば64のレジスタを保持し、各々はPRN308によりアドレス可能である。CAMタグアレイは、タグ310のような64のタグを保持し、ORゲート312および比較ロジック314のような、各タグに関連するロジックを比較する。タグおよびタグ比較ロジックは一緒にタグ機能316として参照される。
タグ310のような各タグは、5ビットLRN、A4−A0をCAMタグアレイ304に記憶する。タグは、CAM PRF302内のレジスタi318のようなレジスタと関連する。典型的なCAMにおいて、全てのタグの比較ロジックは、入力アドレスをすべてのタグと比較するように動作可能であり、入力アドレスと記憶されたタグとの間に一致があるか否かを決定する。この発明の有利なCAMタグアレイ304において、比較ロジックは、プロセッサーのオペレーティングステートに基いた比較のために選択的にイネーブルになる。タグ比較ロジックがイネーブルにならないなら、それは低電力状態にある。
図2のデコードステージにより実行されるように、デコードの後で、発生されたLRN出力306はCAMタグアレイ304に入力される。CPSR240は、否ユーザーモード
Figure 2012119006
信号322を出力し、この信号はまたCAMタグアレイ304に入力される。否ユーザーモード
Figure 2012119006
信号322および5ビットオペランドLRN出力306は、タグ機能316のような各タグ機能に入力される。各タグ機能において、
Figure 2012119006
信号322は、タグに記憶された5ビットLRNの最上位ビットの逆数とORされる。例えば、タグ機能316において、
Figure 2012119006
信号322および否
Figure 2012119006
324はORゲート312に入力される。A3−A0ビットは、タグ310の4ビットアドレスセクション330に記憶される。ORゲート312のようなORゲートの目的は、各タグ機能において比較ロジックをイネーブルにするための信号を発生することである。この例のプロセッサー210の場合、各タグ機能内のすべての比較ロジックは、プロセッサーがユーザーモードにないなら動作している。
タグ機能316において、プロセッサーがユーザーモードにないとき、否ユーザーモード
Figure 2012119006
信号322は1であり、ORゲート312の出力はコンパレーター314をイネーブルにする1である。プロセッサーがユーザーモードにあるなら、
Figure 2012119006
信号322は0であろう。タグアドレスA4の最上位ビットが0なら、否A4信号334は1であろう。そしてORゲート312は1であるイネーブル信号332を出力し、0に等しいA4を有するLRNs0−15のための比較ロジック314をイネーブルにする。あるいは、プロセッサーがユーザーモードにあるなら、
Figure 2012119006
信号322は0であり、LRNs16−31に対してLRNタグアドレスA4の最上位ビットが1なら、否A4信号334は0であり、ORゲート312は0としてイネーブル信号332を出力し、比較ロジック314を低電力状態に維持する。イネーブル信号332ロジック機能は以下の方程式により与えられる。
Figure 2012119006
ただし、シンボル
Figure 2012119006
は論理OR動作を表す。
Figure 2012119006
機能は方程式
Figure 2012119006
を使用してNANDインプリメンテーションと等価である。但し、
Figure 2012119006
は、丸括弧内の値を反転する論理NOT演算を表し、シンボル
Figure 2012119006
は、論理AND演算を表す。
比較ロジックインプリメンテーションに依存して、ディスエーブル信号は、上記イネーブル信号332に対する代替物として使用されてもよい。以下の方程式により与えられるように、ディスエーブル信号は、ORゲート312をANDゲートと交換し、第1の入力としてA4信号を供給し、第2の入力としてユーザーモードU信号を供給することにより得ることができる。
Figure 2012119006
この場合、プロセッサーがユーザーモードにあり、タグLRNが16−31との間にある場合にのみディスエーブル信号はアクティブであろう。
タグ比較ロジックがイネーブルとなり、5ビットオペランドLRNアドレス306と記憶されたLRNタグA4324A3−A0330との間に一致があるなら、ヒットが生じたと言われる。ヒット信号340により論理的に示される、ヒットシチュエーションは、一致されたタグに関連するPRNレジスタ318がCAM PRF302からアクセスさせ実行ユニット244への入力としてリードポート344に出力させる。
図3Bは、リネーミングレジスタファイル358、複数のマッピングユニット301、360、CPSR240、および実行ユニット244を有する複数のポートアドレス305および355を有するリネーミングレジスタファイル複合体350内でPRNにIRNをマッピングすることを図解する。たとえ、リネーミングレジスタファイル358への2つのオペランドリードポートのみが図3Bに示されているとしても、リネーミングレジスタファイル複合体350は、例えば、プロセッサー内の6つの同時リードポートのようなさらなるオペランドリードポートをサポートするように拡張することができる。
各リードポートに対して、ポートAのIRNを出力306のLRNにマップするためのマッピングユニット301と、ポートBのIRN355を出力364のLRNにマップするためのマッピングユニット360のような別個のマッピングユニットが設けられる。リードポートA(RPA)368およびリードポートB(RPB)370は、リードポートが使用されていないなら、それぞれコンパレーター314および376をディスーブルするためにタグ機能イネーブルロジックANDゲート372および374において使用されるイネーブル信号である。
タグ310は、アドレスビットA4 324およびA3−A0 330を両方のコンパレーター314および376に供給する。リードポートが使用されることを示すイネーブル信号RPA368およびRPB370がアクティブであるなら、図3Aのレジスタファイルリネーミング複合体300に関して以前に記載された両方のコンパレーターに対して同じ電力節約特徴を供給することを用いて最上位ビットA4およびCPSR動作モードUに依存して両方のコンパレーターがイネーブルになる。各タグに対して複数のコンパレーターを用いて、ヒット信号340および380のような複数のヒットは、R72を得るためにR7*7を乗算するとき生じるような多数の算術演算において生じてもよい。複数のヒットを用いて、レジスタi318のような同じレジスタは、リードポートA 344およびリードポートB 384のような複数のポートに出力される。
図4は、この発明に従って、リネーミングレジスタファイル内のコンテンツアドレッサブルメモリ(CAM)タグコンパレーターを選択的にイネーブルにするためのプロセス400を図解する。インストラクションが発行され、インストラクションがリネーミングレジスタファイル358のようなリネーミングレジスタファイルから読まれるソースオペランドIRNを指定するとき、第1のステップ405が生じる。次のステップ410において、CPSR240のような現在のプロセッサーステートレジスタ(CPSR)により供給されるように、プロセッサーの動作モードに依存して、マッピングユニット301のようなマッピングユニット内でLRNにIRNがマップされる。ステップ415において、タグ機能316のような適切なリードポートCAMタグ機能は、CAMタグアレイ304のようなCAMタグアレイ内のリードポートイネーブル信号を使用することにより選択される。すべての選択されたリードポートタグ機能に対して並列に生じるステップ420において、タグの最上位ビット(msb)およびCPSRからのユーザーモード(U)は、両方ともアクティブになるようにテストされ、両方とも1である。タグ機能においてタグmsbとユーザーモードが両方ともアクティブなら、タグ機能はステップ425においてCAMタグコンパレーターをディスエーブルにする。ステップ430において、タグ機能は、各ディスエーブルされたCAMタグコンパレーターに対して停止し、ディスエーブルされたコンパレーターは低電力状態に留まる。
ステップ420において、タグmsbとユーザーモードがタグ機能においてアクティブでないなら、タグ機能はステップ435においてCAMタグコンパレーターをイネーブルにする。すべてのイネーブルされたCAMタグコンパレーターに対して並列に生じるステップ440において、LRNは、コンパレーター314のようなコンパレーターによりタグ310のようなタグと比較される。LRNがタグと一致しないなら、タグ機能はステップ445において停止する。LRNがタグと一致するなら、ヒット信号340により示されるようにヒットが生じ、ステップ450においてタグに関連する物理レジスタは、CAM PRF 302のような物理レジスタファイル(PRF)から読み出される。読み出されたレジスタ値は、リードポート344のようなリードポートを介して実行ユニット244のような適切な実行ユニットに供給される。
図5は、有効ビット502と、タグ510のようなタグ内の最も最近に使用された(MR)ビット504を有したリネーミングレジスタファイル538と、マッピングユニット301、CPSR240、および実行ユニット244を有したリネーミングレジスタファイル複合体500において物理レジスタナンバー(PRN)にインストラクションレジスタナンバー(IRN)をマッピングする他の観点を図解する。有効ビット502は、有効ビットが0であるとき、タグに関連するPRNレジスタは有効ではない。有効ビットが0であるとき、比較ロジックは、イネーブルにならず、低電力状態に留まる。MRビット504は、タグに関連するPRNレジスタが最も最近に発生された値を保持するか否かを示す。インストラクションが結果LRNを指定することを発行すると、物理レジスタエントリはデータ値を受信するように割り当てられ、タグがLRNで書かれる。さらにパイプラインにおいて、結果データがいくつかのサイクルの後に書かれると、そのエントリのためにMRビットを設定することにより、タグは最も最近のものとしてマークされる。また、その特定のLRNアドレスに対して最も最近のデータ値を以前に含んだエントリのためのMRビット504がリセットされる。MRビット504が特定のエントリのための0であるなら、そのエントリのための比較ロジックはイネーブルにならず低電力状態に維持される。
リネーミングレジスタファイル複合体500は、図3のリネーミングレジスタファイル300と類似するが、さらに有効ビット502、MRビット504および比較ロジックをイネーブルにするための新しいロジックを有する。新しいロジックは、ORゲート312と比較ロジック314との間に3入力ANDゲート520を採用する。ANDゲート520への第1の入力はMRビット504であり、第2の入力は有効ビット502であり、第3の入力はORゲート出力332である。ANDゲート520への3つの入力の少なくとも1つが0であるとき、比較ロジックは、低電力状態に維持される。比較ロジックをイネーブルにするために、データ値318は有効、すなわちV=1でなければならず、最も最近のデータはMR=1でなければならない。ORゲート312出力は、ANDゲート出力524が1となり、比較ロジック314をイネーブルにするように1でなければならない。
平均して、ユーザーモードは最も高度に使用される動作モードであり、ユーザーモードは、レジスタアドレス空間を0−15に制限し、各リードポートのためのCAMタグアレイ304内の64の比較ロジック機能のうちの48が典型的にイネーブルにならず低電力状態に維持される。これは、プロセッサーの動作モードにもかかわらず、各アクセスに対してすべての64の比較ロジック機能が利用される設計に比べてCAMタグアレイ電力における重要な節約を表す。
ORゲート312を用いることに対する代替アプローチは、タグ機能316のように、各タグ機能においてモード選択された(MS)ラッチを実施することである。MSラッチは、プロセッサーにより実行される各モード変更においてセット又はリセットすることができる。これは、相対的にまれなイベントであり、従ってMSラッチの状態を変更することは1サイクルまたは2サイクルかかる可能性があり、小さなモード変更待ち時間を観察する必要がある。あたらしいプロセッサーモードに入ると、各タグエントリは新しいモードを評価し、適切にMSラッチをセットまたはリセットするであろう。現在のプロセッサーモード以外のモードからのみエントリがアクセス可能であるのでエントリが一致することができないならMSラッチ出力を用いて比較ロジックを低電力状態に維持することができる。
この発明は現在好ましいコンテキストで開示されているけれども、この教示は、この開示およびそれに続くクレームに一致するさまざまなコンテキストに適用されてもよいことが認識されるであろう。
例えば、レジスタファイルの使用を動作モードに依存してレジスタの排他的セットに分割する代替アーキテクチャーにおいて、複数のリネーミングレジスタファイルを使用してもよい。異常がある実行の深くパイプライン化されたプロセッサーは2つの相異なる動作モードで定義されてもよい。例えば、システム、インタラプト、イクセプションを処理するためのユーザーモードおよびスーパーバイザーモードのような2つの動作モードを採用してもよい。プロセッサーインプリメンテーションにおいて、1つのリネーミングレジスタファイルはユーザーモードのために使用されてもよく、1つのリネーミングレジスタファイルはスーパーバイザーモードのために使用されてもよい。この代替アーキテクチャーの場合、ユーザーモードはインストラクションセットにより指定される16のレジスタをサポートする。ユーザーモードリネーミングレジスタファイルは、異常実行および深いパイプラインによりインフライト(in-flight)インストラクションをサポートするために、さらなるレジスタ、例えば16のさらなるレジスタを必要とするであろう。スーパーバイザーモードにおいて、スーパーバイザーモードリネーミングレジスタファイルは、異常な実行と深いパイプラインにより、16の設計されたレジスタの別個のセットをサポートし、16のインフライト(in-flight)レジスタを有するであろう。合計32のユーザーモード物理レジスタがユーザーモードリネーミングレジスタファイル内で使用されるであろう。合計32のスーパーバイザーモード物理レジスタがスーパーバイザーモードリネーミングレジスタファイルにおいて使用されるであろう。動作において、動作モードに応じて、1つのリネーミングレジスタファイルのみがアクティブになり、他のリネーミングレジスタファイルは低電力状態にあるであろう。特定の設計アプリケーションに適応させるための他のそのような変更および改作は、当業者にとって明白であろう。
例えば、レジスタファイルの使用を動作モードに依存してレジスタの排他的セットに分割する代替アーキテクチャーにおいて、複数のリネーミングレジスタファイルを使用してもよい。異常がある実行の深くパイプライン化されたプロセッサーは2つの相異なる動作モードで定義されてもよい。例えば、システム、インタラプト、イクセプションを処理するためのユーザーモードおよびスーパーバイザーモードのような2つの動作モードを採用してもよい。プロセッサーインプリメンテーションにおいて、1つのリネーミングレジスタファイルはユーザーモードのために使用されてもよく、1つのリネーミングレジスタファイルはスーパーバイザーモードのために使用されてもよい。この代替アーキテクチャーの場合、ユーザーモードはインストラクションセットにより指定される16のレジスタをサポートする。ユーザーモードリネーミングレジスタファイルは、異常実行および深いパイプラインによりインフライト(in-flight)インストラクションをサポートするために、さらなるレジスタ、例えば16のさらなるレジスタを必要とするであろう。スーパーバイザーモードにおいて、スーパーバイザーモードリネーミングレジスタファイルは、異常な実行と深いパイプラインにより、16の設計されたレジスタの別個のセットをサポートし、16のインフライト(in-flight)レジスタを有するであろう。合計32のユーザーモード物理レジスタがユーザーモードリネーミングレジスタファイル内で使用されるであろう。合計32のスーパーバイザーモード物理レジスタがスーパーバイザーモードリネーミングレジスタファイルにおいて使用されるであろう。動作において、動作モードに応じて、1つのリネーミングレジスタファイルのみがアクティブになり、他のリネーミングレジスタファイルは低電力状態にあるであろう。特定の設計アプリケーションに適応させるための他のそのような変更および改作は、当業者にとって明白であろう。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
[1] コンテンツアドレッサブルメモリ(CAM)制御装置において、
前記CAMに記憶されるタグであって、前記タグは、前記CAMのエレメントのアドレスと、プロセッサーの動作状態を記載する前記タグ内の属性とを有する、
前記タグを前記プロセッサーにより発生されたアドレスと比較するタグコンパレーターと、
前記属性を前記プロセッサーの現在の動作状態と比較する動作状態コンパレーターであって、それにより前記属性と前記プロセッサーの現在の動作状態との比較の結果に依存して前記タグコンパレーターがイネーブルになるかまたはディスエーブルになる、動作状態コンパレーターと、
を備えたCAM制御装置。
[2] 前記属性が前記プロセッサーの現在の動作状態と一致するなら、前記タグコンパレーターはディスエーブルされる、前記[1]のCAM制御装置
[3] 前記タグコンパレーターはディスエーブルされると低電力状態になる、前記[1]のCAM制御装置。
[4] 前記属性が前記プロセッサーの現在の動作状態と一致しないなら前記タグコンパレーターはイネーブルになる、前記[1]のCAM制御装置。
[5] 前記タグが前記プロセッサーにより発生された前記アドレスと一致するとき、前記タグコンパレーターは、イネーブルになるとヒット表示を発生する、前記[1]のCAM制御装置。
[6] ヒット表示に際して前記一致したタグに関連する物理レジスタが選択されるように動作する複数の物理レジスタを保持するCAM物理レジスタファイルをさらに備えた、前記[5]のCAM制御装置。
[7] 前記属性は前記タグの最上位ビットである、前記[1]のCAM制御装置。
[8] 前記プロセッサーの現在の動作状態は、現在のプロセッサー状態レジスタに記憶されたビットにより表示される、前記[1]のCAM制御装置。
[9] 前記プロセッサーにより発生されたアドレスは論理レジスタナンバー(LRN)である、前記[1]のCAM制御装置。
[10] 前記プロセッサーの現在の動作状態に依存して、前記LRNにインストラクションレジスタナンバー(IRN)をマッピングすることにより前記LRNが得られる、前記[9]のCAM制御装置。
[11] 前記CAMに記憶された複数のタグであって、各タグは、前記プロセッサーの動作状態を記載する属性を有する複数のタグと、
各タグに関連するタグコンパレーターと、
各タグに関連する動作状態コンパレーターであって、前記動作状態コンパレーターは各タグ内の属性を前記プロセッサーの現在の動作状態と比較し、それにより前記タグ内の属性と前記プロセッサーの現在の動作状態の比較結果に依存して各タグに関連する前記タグコンパレーターがイネーブルになるかまたはディスエーブルになる、動作状態コンパレーターと、
をさらに備えた、前記[1]のCAM制御装置。
[12] 複数のアクセスポートと、
前記CAMに記憶された複数のタグであって、各タグは、前記プロセッサーの動作状態を記載する属性を有する複数のタグと、
各アクセスポートのための各タグに関連するタグコンパレーターと、
各タグに関連する動作状態コンパレーターであって、前記動作状態コンパレーターは、各タグ内の属性を前記プロセッサーの現在の動作状態と比較し、それにより、前記タグ内の属性と前記プロセッサーの現在の動作状態との比較結果に依存して各アクセスのための各タグに関連する複数のタグコンパレーターがイネーブルになるかディスエーブルになる、動作状態コンパレーターと、
をさらに備えた、前記[1]のCAM制御装置。
[13] レジスタファイルからレジスタを読むとき電力を節約するための装置において、
インストラクション実行を指示してオペランドを読むためのプロセッサーと、
前記プロセッサーによって読まれるオペランドを有する物理レジスタファイル(PRF)と、
タグのアレイであって、タグは前記PRF内のオペランドに関連するアドレスを有し、前記タグは、前記プロセッサーの動作状態を記載する属性を有するタグのアレイと、
タグコンパレーターのアレイであって、各タグコンパレーターは、前記プロセッサーにより発生されたオペランドアドレスをタグと比較するように動作し、前記PRFからオペランドを読むためにタグ比較一致が要求される、タグのアレイと、
動作状態コンパレーターのアレイであって、各動作状態コンパレーターはタグに関連し、前記属性を前記プロセッサーの現在の動作状態と比較し、前記関連するタグコンパレーターをイネーブルまたはディスエーブルにするように動作し、それにより前記属性と前記プロセッサーの前記現在の動作状態の比較に基いて比較するために、すべてよりは少ないタグコンパレーターがイネーブルになる、動作状態コンパレーターのアレイと、を備えた装置。
[14] 前記属性は前記タグの最上位ビットである、前記[13]の装置。
[15] 前記タグは最も最近のビットを備え、タグ内の最も最近のビットは、前記PRF内の関連するオペランドの状態を示し、タグコンパレーターはさらに比較される前記タグ内の最も最近のビットに依存してイネーブルまたはディスエーブルされる、前記[13]の装置。
[16] 複数のアクセスポートと、
各アクセスポートのためのタグコンパレーターのアレイと、
動作状態コンパレーターのアレイであって、各動作状態コンパレーターはタグに関連し、前記属性を前記プロセッサーの現在の動作状態と比較し、各アクセスポートのための前記関連するタグコンパレーターをイネーブルまたはディスエーブルするように動作し、それにより前記属性と前記プロセッサーの現在の動作状態との比較に基いて比較するために各アクセスポートのためのすべてよりは少ないタグコンパレーターがイネーブルになる、動作状態コンパレーターのアレイと、
をさらに備えた、前記[13]の装置。
[17] コンテンツアドレッサブルメモリ(CAM)ベースレジスタファイルにおいてディスエーブルされるレジスタアドレスコンパレーターを選択するための方法において、
前記CAMベースレジスタファイルと共に利用されるプロセッサーの状態に基いて、所定のアクセスに関して、どのレジスタアドレスコンパレーターの現在の動作状態とが一致する可能性がないかを識別することと、
一致する可能性がないとして識別されたレジスタアドレスコンパレーターが低電力状態に入るように制御すること、
とを備えた方法。
[18] 前記CAMのタグの属性をプロセッサーの現在の動作状態と比較することと、
所定のアクセスに関して、一致する可能性がないレジスタアドレスコンパレーターを、タグの属性が前記プロセッサーの現在の動作状態と一致するレジスタアドレスコンパレーターと識別することと、
をさらに備えた、前記[17]の方法。
[19] 前記一致する可能性がないとして識別されたレジスタアドレスコンパレーターを制御するステップは、
前記CAMのタグの属性とプロセッサーの現在の動作状態とを比較することと、
前記CAMのタグの属性と前記プロセッサーの現在の動作状態との比較に依存して前記レジスタアドレスコンパレーターをディスエーブルにするように制御することと、
をさらに備えた、前記[17]の方法。
[20] プロセッサーにおいて論理レジスタナンバーを発生することと、
前記論理レジスタナンバーを前記CAMのタグと比較される前記レジスタアドレスコンパレーターに供給することと、
をさらに備えた、前記[17]の方法。

Claims (20)

  1. コンテンツアドレッサブルメモリ(CAM)制御装置において、
    前記CAMに記憶されるタグであって、前記タグは、前記CAMのエレメントのアドレスと、プロセッサーの動作状態を記載する前記タグ内の属性とを有する、
    前記タグを前記プロセッサーにより発生されたアドレスと比較するタグコンパレーターと、
    前記属性を前記プロセッサーの現在の動作状態と比較する動作状態コンパレーターであって、それにより前記属性と前記プロセッサーの現在の動作状態との比較の結果に依存して前記タグコンパレーターがイネーブルになるかまたはディスエーブルになる、動作状態コンパレーターと、
    を備えたCAM制御装置。
  2. 前記属性が前記プロセッサーの現在の動作状態と一致するなら、前記タグコンパレーターはディスエーブルされる、請求項1のCAM制御装置
  3. 前記タグコンパレーターはディスエーブルされると低電力状態になる、請求項1のCAM制御装置。
  4. 前記属性が前記プロセッサーの現在の動作状態と一致しないなら前記タグコンパレーターはイネーブルになる、請求項1のCAM制御装置。
  5. 前記タグが前記プロセッサーにより発生された前記アドレスと一致するとき、前記タグコンパレーターは、イネーブルになるとヒット表示を発生する、請求項1のCAM制御装置。
  6. ヒット表示に際して前記一致したタグに関連する物理レジスタが選択されるように動作する複数の物理レジスタを保持するCAM物理レジスタファイルをさらに備えた、請求項5のCAM制御装置。
  7. 前記属性は前記タグの最上位ビットである、請求項1のCAM制御装置。
  8. 前記プロセッサーの現在の動作状態は、現在のプロセッサー状態レジスタに記憶されたビットにより表示される、請求項1のCAM制御装置。
  9. 前記プロセッサーにより発生されたアドレスは論理レジスタナンバー(LRN)である、請求項1のCAM制御装置。
  10. 前記プロセッサーの現在の動作状態に依存して、前記LRNにインストラクションレジスタナンバー(IRN)をマッピングすることにより前記LRNが得られる、請求項9のCAM制御装置。
  11. 前記CAMに記憶された複数のタグであって、各タグは、前記プロセッサーの動作状態を記載する属性を有する複数のタグと、
    各タグに関連するタグコンパレーターと、
    各タグに関連する動作状態コンパレーターであって、前記動作状態コンパレーターは各タグ内の属性を前記プロセッサーの現在の動作状態と比較し、それにより前記タグ内の属性と前記プロセッサーの現在の動作状態の比較結果に依存して各タグに関連する前記タグコンパレーターがイネーブルになるかまたはディスエーブルになる、動作状態コンパレーターと、
    をさらに備えた、請求項1のCAM制御装置。
  12. 複数のアクセスポートと、
    前記CAMに記憶された複数のタグであって、各タグは、前記プロセッサーの動作状態を記載する属性を有する複数のタグと、
    各アクセスポートのための各タグに関連するタグコンパレーターと、
    各タグに関連する動作状態コンパレーターであって、前記動作状態コンパレーターは、各タグ内の属性を前記プロセッサーの現在の動作状態と比較し、それにより、前記タグ内の属性と前記プロセッサーの現在の動作状態との比較結果に依存して各アクセスのための各タグに関連する複数のタグコンパレーターがイネーブルになるかディスエーブルになる、動作状態コンパレーターと、
    をさらに備えた、請求項1のCAM制御装置。
  13. レジスタファイルからレジスタを読むとき電力を節約するための装置において、
    インストラクション実行を指示してオペランドを読むためのプロセッサーと、
    前記プロセッサーによって読まれるオペランドを有する物理レジスタファイル(PRF)と、
    タグのアレイであって、タグは前記PRF内のオペランドに関連するアドレスを有し、前記タグは、前記プロセッサーの動作状態を記載する属性を有するタグのアレイと、
    タグコンパレーターのアレイであって、各タグコンパレーターは、前記プロセッサーにより発生されたオペランドアドレスをタグと比較するように動作し、前記PRFからオペランドを読むためにタグ比較一致が要求される、タグのアレイと、
    動作状態コンパレーターのアレイであって、各動作状態コンパレーターはタグに関連し、前記属性を前記プロセッサーの現在の動作状態と比較し、前記関連するタグコンパレーターをイネーブルまたはディスエーブルにするように動作し、それにより前記属性と前記プロセッサーの前記現在の動作状態の比較に基いて比較するために、すべてよりは少ないタグコンパレーターがイネーブルになる、動作状態コンパレーターのアレイと、を備えた装置。
  14. 前記属性は前記タグの最上位ビットである、請求項13の装置。
  15. 前記タグは最も最近のビットを備え、タグ内の最も最近のビットは、前記PRF内の関連するオペランドの状態を示し、タグコンパレーターはさらに比較される前記タグ内の最も最近のビットに依存してイネーブルまたはディスエーブルされる、請求項13の装置。
  16. 複数のアクセスポートと、
    各アクセスポートのためのタグコンパレーターのアレイと、
    動作状態コンパレーターのアレイであって、各動作状態コンパレーターはタグに関連し、前記属性を前記プロセッサーの現在の動作状態と比較し、各アクセスポートのための前記関連するタグコンパレーターをイネーブルまたはディスエーブルするように動作し、それにより前記属性と前記プロセッサーの現在の動作状態との比較に基いて比較するために各アクセスポートのためのすべてよりは少ないタグコンパレーターがイネーブルになる、動作状態コンパレーターのアレイと、
    をさらに備えた、請求項13の装置。
  17. コンテンツアドレッサブルメモリ(CAM)ベースレジスタファイルにおいてディスエーブルされるレジスタアドレスコンパレーターを選択するための方法において、
    前記CAMベースレジスタファイルと共に利用されるプロセッサーの状態に基いて、所定のアクセスに関して、どのレジスタアドレスコンパレーターの現在の動作状態とが一致する可能性がないかを識別することと、
    一致する可能性がないとして識別されたレジスタアドレスコンパレーターが低電力状態に入るように制御すること、
    とを備えた方法。
  18. 前記CAMのタグの属性をプロセッサーの現在の動作状態と比較することと、
    所定のアクセスに関して、一致する可能性がないレジスタアドレスコンパレーターを、タグの属性が前記プロセッサーの現在の動作状態と一致するレジスタアドレスコンパレーターと識別することと、
    をさらに備えた、請求項17の方法。
  19. 前記一致する可能性がないとして識別されたレジスタアドレスコンパレーターを制御するステップは、
    前記CAMのタグの属性とプロセッサーの現在の動作状態とを比較することと、
    前記CAMのタグの属性と前記プロセッサーの現在の動作状態との比較に依存して前記レジスタアドレスコンパレーターをディスエーブルにするように制御することと、
    をさらに備えた、請求項17の方法。
  20. プロセッサーにおいて論理レジスタナンバーを発生することと、
    前記論理レジスタナンバーを前記CAMのタグと比較される前記レジスタアドレスコンパレーターに供給することと、
    をさらに備えた、請求項17の方法。
JP2012010216A 2005-03-03 2012-01-20 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置 Expired - Fee Related JP5680574B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/072,849 US7263577B2 (en) 2005-03-03 2005-03-03 Power saving methods and apparatus to selectively enable comparators in a CAM renaming register file based on known processor state
US11/072,849 2005-03-03

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007558271A Division JP2008533569A (ja) 2005-03-03 2006-03-03 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置

Publications (2)

Publication Number Publication Date
JP2012119006A true JP2012119006A (ja) 2012-06-21
JP5680574B2 JP5680574B2 (ja) 2015-03-04

Family

ID=36648662

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007558271A Withdrawn JP2008533569A (ja) 2005-03-03 2006-03-03 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置
JP2012010216A Expired - Fee Related JP5680574B2 (ja) 2005-03-03 2012-01-20 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007558271A Withdrawn JP2008533569A (ja) 2005-03-03 2006-03-03 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置

Country Status (10)

Country Link
US (1) US7263577B2 (ja)
EP (1) EP1861765B1 (ja)
JP (2) JP2008533569A (ja)
KR (2) KR101200737B1 (ja)
CN (1) CN101164035B (ja)
CA (1) CA2599623C (ja)
IL (1) IL185591A0 (ja)
RU (1) RU2389059C2 (ja)
TW (1) TWI390393B (ja)
WO (1) WO2006094197A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047357A1 (en) * 2009-08-19 2011-02-24 Qualcomm Incorporated Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions
KR101139207B1 (ko) * 2010-09-06 2012-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US9170638B2 (en) * 2010-12-16 2015-10-27 Advanced Micro Devices, Inc. Method and apparatus for providing early bypass detection to reduce power consumption while reading register files of a processor
US8914616B2 (en) * 2011-12-02 2014-12-16 Arm Limited Exchanging physical to logical register mapping for obfuscation purpose when instruction of no operational impact is executed
US9542194B2 (en) 2014-09-10 2017-01-10 Arm Limited Speculative register file read suppression
US10331449B2 (en) * 2016-01-22 2019-06-25 Arm Limited Encoding instructions identifying first and second architectural register numbers

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259253A (ja) * 1993-03-03 1994-09-16 Motorola Inc データプロセッサおよびその動作方法
JPH11134256A (ja) * 1997-10-31 1999-05-21 Nec Corp アドレス変換回路
JP2000200217A (ja) * 1999-01-06 2000-07-18 Toshiba Corp 命令キャッシュメモリ
JP2000267932A (ja) * 1999-03-17 2000-09-29 Matsushita Electric Ind Co Ltd タグアドレス比較装置
JP2002197873A (ja) * 2000-12-27 2002-07-12 Kawasaki Microelectronics Kk 連想メモリ
JP2004164395A (ja) * 2002-11-14 2004-06-10 Renesas Technology Corp アドレス変換装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317819B1 (en) 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
JP3058123B2 (ja) * 1997-06-10 2000-07-04 日本電気株式会社 アドレス比較回路
US6212619B1 (en) * 1998-05-11 2001-04-03 International Business Machines Corporation System and method for high-speed register renaming by counting
US6571332B1 (en) * 2000-04-11 2003-05-27 Advanced Micro Devices, Inc. Method and apparatus for combined transaction reordering and buffer management
US6918071B2 (en) * 2001-04-20 2005-07-12 Sun Microsystems, Inc. Yield improvement through probe-based cache size reduction
US7114026B1 (en) * 2002-06-17 2006-09-26 Sandeep Khanna CAM device having multiple index generators
US6944714B2 (en) * 2002-07-30 2005-09-13 Hewlett-Packard Development Company, L.P. Method and apparatus for saving microprocessor power when sequentially accessing the microprocessor's instruction cache
US7051221B2 (en) 2003-04-28 2006-05-23 International Business Machines Corporation Performance throttling for temperature reduction in a microprocessor
KR100813370B1 (ko) * 2003-11-12 2008-03-12 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 및 그 제어방법
US7353347B2 (en) * 2004-09-23 2008-04-01 Mathstar, Inc. Reconfigurable state machine

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259253A (ja) * 1993-03-03 1994-09-16 Motorola Inc データプロセッサおよびその動作方法
JPH11134256A (ja) * 1997-10-31 1999-05-21 Nec Corp アドレス変換回路
JP2000200217A (ja) * 1999-01-06 2000-07-18 Toshiba Corp 命令キャッシュメモリ
JP2000267932A (ja) * 1999-03-17 2000-09-29 Matsushita Electric Ind Co Ltd タグアドレス比較装置
JP2002197873A (ja) * 2000-12-27 2002-07-12 Kawasaki Microelectronics Kk 連想メモリ
JP2004164395A (ja) * 2002-11-14 2004-06-10 Renesas Technology Corp アドレス変換装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013048191; Diana MARCULESCU: '"Power Efficient Processors Using Multiple Supply Voltages"' Workshop on Compilers and Operating Systems for Low Power, in conjunction with PACT 2000 , 2000, pages:1-6, Carnegie Mellon University *

Also Published As

Publication number Publication date
CN101164035A (zh) 2008-04-16
KR100977687B1 (ko) 2010-08-24
KR20070116059A (ko) 2007-12-06
RU2389059C2 (ru) 2010-05-10
RU2007136486A (ru) 2009-04-10
JP5680574B2 (ja) 2015-03-04
CN101164035B (zh) 2014-04-16
WO2006094197A2 (en) 2006-09-08
KR101200737B1 (ko) 2012-11-13
IL185591A0 (en) 2008-01-06
EP1861765B1 (en) 2019-05-22
KR20100038239A (ko) 2010-04-13
US7263577B2 (en) 2007-08-28
CA2599623C (en) 2011-09-06
JP2008533569A (ja) 2008-08-21
WO2006094197A3 (en) 2007-01-04
EP1861765A2 (en) 2007-12-05
TWI390393B (zh) 2013-03-21
CA2599623A1 (en) 2006-09-08
US20060206688A1 (en) 2006-09-14
TW200707179A (en) 2007-02-16

Similar Documents

Publication Publication Date Title
US8015391B2 (en) Simultaneous multiple thread processor increasing number of instructions issued for thread detected to be processing loop
US6185671B1 (en) Checking data type of operands specified by an instruction using attributes in a tagged array architecture
US6178482B1 (en) Virtual register sets
US6105129A (en) Converting register data from a first format type to a second format type if a second type instruction consumes data produced by a first type instruction
JP5680574B2 (ja) 周知のプロセッサーステートに基いてcamリネーミングレジスタファイルにおいてコンパレーターを選択的にイネーブルにするための電力節約方法および装置
US20050273559A1 (en) Microprocessor architecture including unified cache debug unit
US20180365022A1 (en) Dynamic offlining and onlining of processor cores
US9367314B2 (en) Converting conditional short forward branches to computationally equivalent predicated instructions
US6779103B1 (en) Control word register renaming
US11132201B2 (en) System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
CN113535236A (zh) 基于指令集体系结构的和自动的加载跟踪的方法和装置
CN112241288A (zh) 在硬件中检测条件分支的动态控制流重汇聚点
US10877765B2 (en) Apparatuses and methods to assign a logical thread to a physical thread
US11907712B2 (en) Methods, systems, and apparatuses for out-of-order access to a shared microcode sequencer by a clustered decode pipeline
US7185181B2 (en) Apparatus and method for maintaining a floating point data segment selector
WO2018182445A1 (en) Method and apparatus for converting scatter control elements to gather control elements used to sort vector data elements
CN111813447B (zh) 一种数据拼接指令的处理方法和处理装置
US20190370108A1 (en) Accelerating memory fault resolution by performing fast re-fetching
US9952864B2 (en) System, apparatus, and method for supporting condition codes
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
US20080244242A1 (en) Using a Register File as Either a Rename Buffer or an Architected Register File

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131212

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140303

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140820

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150107

R150 Certificate of patent or registration of utility model

Ref document number: 5680574

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees