JP4296996B2 - マルチコアプロセサ制御方式 - Google Patents

マルチコアプロセサ制御方式 Download PDF

Info

Publication number
JP4296996B2
JP4296996B2 JP2004176619A JP2004176619A JP4296996B2 JP 4296996 B2 JP4296996 B2 JP 4296996B2 JP 2004176619 A JP2004176619 A JP 2004176619A JP 2004176619 A JP2004176619 A JP 2004176619A JP 4296996 B2 JP4296996 B2 JP 4296996B2
Authority
JP
Japan
Prior art keywords
core
fuse
register
core selection
setting
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.)
Expired - Fee Related
Application number
JP2004176619A
Other languages
English (en)
Other versions
JP2006003949A (ja
Inventor
昭彦 大和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004176619A priority Critical patent/JP4296996B2/ja
Priority to US11/012,349 priority patent/US20050289286A1/en
Publication of JP2006003949A publication Critical patent/JP2006003949A/ja
Priority to US11/976,516 priority patent/US7676669B2/en
Application granted granted Critical
Publication of JP4296996B2 publication Critical patent/JP4296996B2/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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Description

本発明は、複数の実行処理部(以下、単に「コア」若しくは「CORE」という)を有するCPU(Central Processing Unit:中央演算処理装置)、MPU(Micro Processing Unit:マイクロプロセサ)、DSP(Digital Signal Processor:デジタル信号プロセサ)、GPU(Graphics Processing Unit:グラフィクスプロセサ、若しくは、画像処理LSI、若しくは、ジオメトリ・エンジン)等のプロセサ及び当該プロセサの制御方法に関するものである。
従来、企業の基幹業務処理など特に高い処理能力を要求されるサーバ等のコンピュータシステムは、クラスタ構成による疎結合、または、SMP(Symmetrical Multi-Processor:対称型マルチプロセサ)構成による密結合などの構成をとることにより、複数のプロセサを接続して処理能力の向上を図っていた。
しかし、クラスタ構成による疎結合においては、サーバノード間の通信オーバヘッドが問題となり、SMPによる蜜結合ではサーバハードウェアの複雑さが問題となり、いずれの場合においても、従来のアーキテクチャでは単一コンピュータシステムにおける性能向上に限界があった。
そこで、ハイエンドプロセサの分野では、1つのプロセサ内に複数のコアを実装するマルチコア構成を採用することにより、性能向上を図ることが可能なCMP(Chip Multi-Processor:チップマルチプロセサ)等のマルチコア・プロセサが現在主流になりつつある。
しかし、CMP等のマルチコア構成の場合、コア数増加による処理性能の向上と引き換えに、複数のコアを実装することによる制御の複雑化、ダイサイズの増大による半導体製造時の歩留まり低下等の問題が発生していた。特にダイサイズの増大による半導体製造時の歩留まり低下は、マルチコアを有するCMP等のマルチコア・プロセサにとって重要問題である。
図1に従来のシングルコア・プロセサの基本ハードウェア構成を示す。
プロセサ101は、ローカルインタコネクト・インタフェース111、2次共有キャッシュ111から構成される共有ブロック102と、1次命令キャッシュ112、1次データキャッシュ113、命令分岐ユニット114、命令発行ユニット115、ロードストアユニット116、汎用レジスタファイル117、整数演算ユニット118、整数演算用ユニット119、浮動小数点レジスタファイル120、浮動小数点演算ユニット121、浮動小数点演算完了ユニット122から構成されるコアブロック103とから構成される。プロセサ101はローカルインタコネクト・インタフェース110により、他のプロセサおよびメインメモリと接続され、メインメモリからインストラクションおよびデータが供給される。
ローカルインタコネクト・インタフェース110から供給されたインストラクションは、2次共有キャッシュ111、1次命令キャッシュ112、命令分岐ユニット114を介して汎用レジスタファイル117若しくは浮動小数点レジスタファイル120に供給され、整数演算ユニット118若しくは浮動小数点演算ユニット120にインストラクションを与える。
ローカルインタコネクト・インタフェース110から供給されたデータは、2次共有キャッシュ111、1次データキャッシュ113、ロードストアユニット116を介して、汎用レジスタファイル117若しくは浮動小数点レジスタファイル120に供給されることにより、整数演算ユニット118若しくは浮動小数点演算ユニット121にデータを与える。
前記整数演算ユニット118における演算の対象となるデータおよび整数演算ユニット118における演算結果は、整数演算完了ユニット119により、汎用レジスタファイル117に書き戻され、保持される。浮動小数点演算ユニット120における演算の対象となるデータおよび浮動小数点演算ユニット120における演算結果は、浮動小数点演算完了ユニット122により、浮動小数点レジスタファイル121に書き戻され、保持される。
したがって、サーバ等のコンピュータシステムの処理性能を向上させるためには、コンピュータシステム内に含まれる演算部の数を増やす方法がある。
また、図2に従来の対称型マルチプロセサを使用したサーバ構成を示す。プロセサ201は、単一のCOREブロック211及び2次キャッシュブロック212から構成される。
また、サーバシステムは、プロセサ・ローカルインタコネクトにより接続される前記複数のプロセサ201、プロセサ・ローカルインタコネクト・アービタ202及びIEEE1149。1で規定されるJTAGインタフェースにより接続されるサービスプロセサ203、さらに、システムバックプレーン・クロスバにより接続されるシステムバックプレーン・クロスバ・コントローラ206により構成される。プロセサ・ローカルインタコネクト・アービタ202は、プロセサ・ローカルインタコネクトに接続される各プロセサ間の調停制御を行う。また、システムバックプレーン・クロスバ・コントローラ206は、システムバックプレーン・クロスバに接続される各システムボード間のインタフェース制御を行う。
前記複数のプロセサ201内のCOREブロック211に対しては、サービスプロセサ・プログラム204及びサービスプロセサ・ターミナル205により、サービスプロセサ203を制御することにより、JTAGインタフェースを介してスキャンを行うことにより、各CPU内部のレジスタやスキャンFF等の設定がなされる。
次に、図3にマルチコア・プロセサの適用の一例として、コアを2つ有する2CMPのマルチコア・プロセサを使用したサーバシステムの構成を示す。プロセサ301は、CORE−0ブロック311、CORE−1ブロック312、CMP共有ブロック310から構成される。また、サーバシステムは、プロセサ・ローカルインタコネクトにより接続される前記複数のプロセサ301及びプロセサ・ローカルインタコネクト・アービタ202並びにJTAGインタフェースにより接続されるサービスプロセサ203、さらに、システムバックプレーン・クロスバにより接続されるシステムバックプレーン・クロスバ・コントローラ206により構成される。前記複数のプロセサ301内のCORE−0ブロック311及びCORE−1ブロック312に対しては、サービスプロセサ・プログラム204及びサービスプロセサ・ターミナル205により、サービスプロセサ203を制御することにより、JTAGインタフェースを介してスキャンを行うことにより、各CPU内部のレジスタやスキャンFF等の設定がなされる。
また、図4にマルチコア・プロセサの従来構成その1を示す。プロセサ401は、CORE−0ブロック411、CORE−1ブロック412、CMP共有ブロック410から構成される2コアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、デコーダ415、ロードコントローラ416、ロードレジスタ417、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ418、CORE−0セットアップレジスタ419、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ420、CORE−1セットアップレジスタ421を含む。
TAPコントローラ413は、ロードレジスタ417に対してスキャン制御により、コアに対するロードデータ(scan data)の設定を行う。そして、TAPコントローラ413から発行されたJTAGコマンド414は、デコーダ415でデコードされ、そのデコード結果により、ロードコントローラ416はロードレジスタ417にスキャン設定されたロードデータ(load data)をロード制御信号(load valid)を用いて、CORE−0レジスタコントローラ418及びCORE−1レジスタコントローラ419を制御することにより、CORE−0セットアップレジスタ419、および、CORE−1セットアップレジスタ420に対して、同一のロードデータ(load data)の設定を同時に行う。
本従来構成その1では、CORE−0セットアップレジスタ419およびCORE−1セットアップレジスタ420に対して、同一のロードデータしか設定できないため、コア毎の個別設定ができないという問題があった。
次に、図5にマルチコア・プロセサの従来構成その2を示す。プロセサ501は、CORE−0ブロック411、CORE−1ブロック412、CMP共有ブロック410から構成される2コアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、CORE−0用デコーダ515、CORE−0用ロードコントローラ516、CORE−0用ロードレジスタ517、CORE−1用デコーダ519、CORE−1用ロードコントローラ520、CORE−1用ロードレジスタ521、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ418、CORE−0セットアップレジスタ419、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ420、CORE−1セットアップレジスタ421を含む。
TAPコントローラ413は、CORE−0用ロードレジスタ517及びCORE−1用ロードレジスタに対してスキャン制御により、コアに対するロードデータ(load data)の設定を行う。
まず、TAPコントローラ413から発行されたJTAGコマンド−0 514は、CORE−0用デコーダ515でデコードされ、そのデコード結果により、CORE−0用ロードコントローラ516はCORE−0用ロードレジスタ517にスキャン設定されたロードデータ(load data)をロード制御信号(load valid)信号を用いて、CORE−0レジスタコントローラ418を制御することにより、CORE−0セットアップレジスタ419に対して、前記ロードデータ(load data)の設定を行う。
次に、TAPコントローラ413から発行されたJTAGコマンド−1 518は、CORE−1用デコーダ519でデコードされ、そのデコード結果により、CORE−1用ロードコントローラ520はCORE−1用ロードレジスタ521にスキャン設定されたロードデータ(load data)をロード制御信号(load valid)信号を用いて、CORE−1レジスタコントローラ420を制御することにより、CORE−1セットアップレジスタ421に対して、前記ロードデータ(load data)の設定を行う。
本従来構成その2では、CORE−0用デコーダ515、CORE−0用ロードコントローラ516、CORE−0用ロードレジスタ517、CORE−1用デコーダ519、CORE−1用ロードコントローラ520、CORE−1用ロードレジスタ521のように、コア制御用のハードウェアをコアの数だけ持たなければならない。そのため、今後主流となりうる大規模マルチコア・プロセサに対しては、マルチコア制御論理が大規模になることにより、適用が難しいという問題があった。
また、図6にマルチコア・プロセサの従来構成その3を示す。プロセサ601は、CORE−0ブロック411、CORE−1ブロック412、CMP共有ブロック410から構成される2コアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、デコーダ616、ロードコントローラ617、ロードレジスタ618、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ418、CORE−0セットアップレジスタ419、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ420、CORE−1セットアップレジスタ421を含む。
まず、TAPコントローラ413は、ロードレジスタ618に対してスキャン制御により、CORE−0に対するロードデータ(load data)の設定を行う。TAPコントローラ413から発行されたJTAGコマンド−0 614は、デコーダ616でデコードされ、そのデコード結果により、ロードコントローラ617はロードレジスタ618にスキャン設定されたロードデータ(load data)をCORE−0用ロード制御信号(load valid−0)信号を用いて、CORE−0レジスタコントローラ418を制御することにより、CORE−0セットアップレジスタ419に対して、前記ロードデータ(load data)の設定を行う。
次に、TAPコントローラ413は、ロードレジスタ618に対してスキャン制御により、CORE−1に対するロードデータ(load data)の設定を行う。TAPコントローラ413から発行されたJTAGコマンド−1 615は、デコーダ616でデコードされ、そのデコード結果により、ロードコントローラ617はロードレジスタ618にスキャン設定されたロードデータ(load data)をCORE−1用ロード制御信号(load valid−1)信号を用いて、CORE−1レジスタコントローラ420を制御することにより、CORE−1セットアップレジスタ421に対して、前記ロードデータ(load data)の設定を行う。
本従来構成その3では、JTAGコマンド−0 614およびJTAGコマンド−1 615のように、コアの数だけJTAGコマンドを用意しなければならない。そのため、今後主流となりうる大規模マルチコア・プロセサに対しては、デコード論理が大規模になってしまうため、適用が難しいという問題があった。
他にもチップマルチプロセサの特許文献としては、以下のようなものがある。
特開2001−51957号公報
以上で述べたように従来の技術では、CMP等によるマルチコア構成のプロセサにおいては、複数のコアに対する制御の複雑化、および、ダイサイズの増大による歩留まり低下が問題となっていた。
本発明は、マルチコア構成を有するCMP等のプロセサにおいて、各コアの状態を保持するコア選択フラグレジスタを具備し、そのコア選択フラグレジスタの状態によりプロセサ共有ブロックからコアブロックへの出力を制御し、柔軟なコアの設定方法を提供することにより、マルチコア動作時のシステムブート時間の短縮、柔軟なデバッグ方法、または、半導体製造時の部分コア良品チップの救済による歩留まりの向上を実現することを目的とする。
上記課題を解決するために本発明は、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部を含む論理ブロック手段を有するプロセサにおいて、
前記第1乃至第nの実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段への、前記データレジスタ手段が保持する設定情報のロード制御を行うロード制御手段と、
前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報を設定するコア選択ヒューズ手段と、
前記コア選択ヒューズ手段の出力に接続されるとともに、スキャン制御を行うTAPコントローラから第2のコア選択情報がスキャン設定されることにより、前記コア選択ヒューズ手段の内容を上書きするヒューズ上書きスキャンラッチ手段と、
前記コア選択ヒューズ手段の出力と前記ヒューズ上書きスキャンラッチ手段の出力を入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力するセレクタ手段と、
前記セレクタ手段が出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、前記ロード制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段のうち、前記データレジスタ手段が保持する前記設定情報の設定を行わない設定レジスタ手段へのロード制御信号を遮断する手段とを有することを特徴とする。
また、本発明は、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部を含む論理ブロック手段を有するプロセサにおいて、
前記第1乃至第nの実行処理部の設定レジスタ手段からセンスする設定情報を保持するデータレジスタ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段から、前記設定レジスタ手段が保持する設定情報のセンス制御を行うセンス制御手段と、
前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報を設定するコア選択ヒューズ手段と、
前記コア選択ヒューズ手段の出力に接続されるとともに、スキャン制御を行うTAPコントローラから第2のコア選択情報がスキャン設定されることにより、前記コア選択ヒューズ手段の内容を上書きするヒューズ上書きスキャンラッチ手段と、
前記コア選択ヒューズ手段の出力と前記ヒューズ上書きスキャンラッチ手段の出力を入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力するセレクタ手段と、
前記セレクタ手段が出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、前記センス制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段のうち、前記データレジスタ手段が保持する設定情報のセンスを行わない設定レジスタ手段へのセンス制御信号を遮断する手段とを有することを特徴とする。
また、本発明の前記プロセサが有する前記セレクタ手段は、前記プロセサの外部から入力される外部信号に基づいて、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力することを特徴とする。
また、本発明の前記プロセサはさらに、前記ヒューズ上書きスキャンラッチ手段にシステムクロックを供給するシステムクロック制御手段を有し、
前記システムクロック制御手段は、前記TAPコントローラから前記ヒューズ上書きスキャンラッチ手段に、前記第2のコア選択情報をスキャン設定する場合には、前記ヒューズ上書きスキャンラッチ手段に対する前記システムクロックの供給を停止することを特徴とする。
また、本発明の前記第1のコア選択情報と前記第2のコア選択情報は、異なることを特徴とする。
また、本発明は、それぞれ独立に動作し内部に設定レジスタを有する第1乃至第nの実行処理部を含む論理ブロックを有するプロセサの制御方法において、
コア選択ヒューズの切断を行うことにより、前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報の設定を行い、前記第1乃至第nの実行処理部のうち、1乃至複数の実行処理部を選択するステップと、
データレジスタに、前記選択された任意の実行処理部への設定情報を設定するステップと、
前記コア選択ヒューズの出力に接続されたヒューズ上書きスキャンラッチに、スキャン制御を行うTAPコントローラから第2のコア選択情報をスキャン設定し、前記コア選択ヒューズの内容を上書きするステップと、
前記コア選択ヒューズの出力と前記ヒューズ上書きスキャンラッチの出力をセレクタに入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを前記セレクタが出力するステップと、
前記セレクタが出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、前記データレジスタに設定された設定情報を、前記選択された任意の実行処理部の設定レジスタへロードするステップとを有することを特徴とする。
また、本発明は、それぞれ独立に動作し内部に設定レジスタを有する第1乃至第nの実行処理部を含む論理ブロックを有するプロセサの制御方法において、
コア選択ヒューズの切断を行うことにより、前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報の設定を行い、前記第1乃至第nの実行処理部のうち、1乃至複数の実行処理部を選択するステップと、
前記コア選択ヒューズの出力に接続されたヒューズ上書きスキャンラッチに、スキャン制御を行うTAPコントローラから第2のコア選択情報をスキャン設定し、前記コア選択ヒューズの内容を上書きするステップと、
前記コア選択ヒューズの出力と前記ヒューズ上書きスキャンラッチの出力をセレクタに入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを前記セレクタが出力するステップと、
前記セレクタが出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、データレジスタに、前記選択された1つの実行処理部から設定情報をセンスするステップとを有することを特徴とする。
また、本発明の前記セレクタは、前記プロセサの外部から入力される外部信号に基づいて、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力することを特徴とする。
また、本発明の前記プロセサはさらに、前記ヒューズ上書きスキャンラッチにシステムクロックを供給するシステムクロック制御部を有し、
前記プロセサの制御方法はさらに、
前記TAPコントローラから前記ヒューズ上書きスキャンラッチに、前記第2のコア選択情報をスキャン設定する場合には、前記システムクロック制御部が、前記ヒューズ上書きスキャンラッチに対する前記システムクロックの供給を停止するステップとを有することを特徴とする。
また、本発明の前記第1のコア選択情報と前記第2のコア選択情報は、異なることを特徴とする。
以上説明したように、本発明によれば、複数のプロセサコアを有するCMP等のマルチコア・プロセサにおいて、柔軟なコアの設定方法を提供することにより、マルチコア動作時のシステムブート時間の短縮、柔軟なデバッグ方法、または、半導体製造時の部分コア良品チップの救済による歩留まりの向上を実現することができる。
以下、図面を参照しつつ本発明にかかる第1乃至第8の実施の形態について、詳細に説明する。
(第1の実施の形態)
図7は、コア部を2つ有する2CMPのマルチコア・プロセサにおける本発明の第1の実施の形態を示す図である。
プロセサ701は、CORE−0ブロック411、CORE−1ブロック412、CMP共有ブロック410から構成される2コアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、ロードコントローラ用デコーダ715、ロードコントローラ716、ロードレジスタ717、フラグコントローラ用デコーダ719、フラグコントローラ720、CORE−0フラグレジスタ722及びCORE−1フラグレジスタ723から構成されるコア選択フラグレジスタ721、CORE−0AND論理ゲート724、CORE−1AND論理ゲート725、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ418、CORE−0セットアップレジスタ419、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ420、CORE−1セットアップレジスタ421を含む。
まず、TAPコントローラ413から発行されたJTAGコマンド−0 718は、フラグコントローラ用デコーダ719でデコードされ、そのデコード結果により、フラグコントローラ720はコア選択フラグレジスタ721に対して、CORE−0フラグレジスタ722及びCORE−1フラグレジスタ723にデータを設定し、ロードデータ(load data)を設定する対象となるコアの選択を行う。例えば、CORE−0のみに設定を行う場合には、CORE−0フラグレジスタ722に“1”を設定し、CORE−1フラグレジスタ723には“0”の設定を行う。つまり、選択対象となるコアのフラグレジスタには“1”を設定し、非選択対象のコアのフラグレジスタには“0”を設定する。
次に、TAPコントローラ413は、ロードレジスタ717に対してスキャン制御により、前記選択対象のコアに対するロードデータ(load data)の設定を行う。そして、TAPコントローラ413から発行されたJTAGコマンド−1 714は、ロードコントローラ用デコーダ715でデコードされ、そのデコード結果により、ロードコントローラ716はロード制御信号(load valid)をCORE−0AND論理ゲート724及びCORE−1AND論理ゲート725に対して出力する。
ここで、前記CORE−0AND論理ゲート724及びCORE−1AND論理ゲート725のもう一方の入力はそれぞれ、CORE−0フラグレジスタ722及びCORE−1フラグレジスタ723の出力に接続されているため、結果として前記選択対象のコアのみに対してロード制御信号(load valid)の出力がなされる。例えば、それぞれ、CORE−0フラグレジスタ722に“1”、CORE−1フラグレジスタ723に“0”が設定されている場合には、CORE−0レジスタコントローラ418のみに前記ロード制御信号(load valid)が出力され、CORE−1フラグレジスタ420にはCORE−1AND論理ゲート725による抑止のため、前記ロード制御信号(load valid)は出力されない。
CORE−0レジスタコントローラ418は、前記ロード制御信号(load valid)を受信すると、CORE−0セットアップレジスタ419に対してロードレジスタ717の出力であるロードデータ(load data)の設定を行う。
以上により、本発明の第1の実施の形態であるコア部を2つ有する2CMPのマルチコア・プロセサにおいて、CORE−0のみに対する設定若しくはCORE−1のみに対する設定又はCORE−0/1両方に対する同時設定が可能であることがわかる。
(第2の実施の形態)
図8は、コア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおける本発明の第2の実施の形態を示す図である。
プロセサ801は、CORE−0ブロック811、CORE−1ブロック812、・・・、CORE−nブロック813、CMP共有ブロック410から構成されるnコアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、ロードコントローラ用デコーダ715、ロードコントローラ716、ロードレジスタ717、フラグコントローラ用デコーダ719、フラグコントローラ720、CORE−0フラグレジスタ822及びCORE−1フラグレジスタ823及び・・・CORE−nフラグレジスタ824から構成されるコア選択フラグレジスタ821、CORE−0AND論理ゲート825、CORE−1AND論理ゲート826、・・・、CORE−nAND論理ゲート827、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ814、CORE−0セットアップレジスタ815、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ816、CORE−1セットアップレジスタ817、・・・、CORE−nブロック側にそれぞれ、CORE−nレジスタコントローラ818、CORE−nセットアップレジスタ819を含む。
まず、TAPコントローラ413から発行されたJTAGコマンド−0 718は、フラグコントローラ用デコーダ719でデコードされ、そのデコード結果により、フラグコントローラ720はコア選択フラグレジスタ821に対して、CORE−0フラグレジスタ822及びCORE−1フラグレジスタ823及び・・・CORE−nフラグレジスタ824にデータを設定し、ロードデータ(load data)を設定する対象となるコアの選択を行う。例えば、CORE−0のみに設定を行う場合には、CORE−0フラグレジスタ822に“1”を設定し、CORE−1フラグレジスタ823、・・・、CORE−nフラグレジスタ824には“0”の設定を行う。つまり、選択対象となるコアのフラグレジスタには“1”を設定し、非選択対象のコアのフラグレジスタには“0”を設定する。
次に、TAPコントローラ413は、ロードレジスタ717に対してスキャン制御により、前記選択対象のコアに対するロードデータの設定を行う。そして、TAPコントローラ413から発行されたJTAGコマンド−1 714は、ロードコントローラ用デコーダ715でデコードされ、そのデコード結果により、ロードコントローラ716はロード制御信号(load valid)をCORE−0AND論理ゲート825及びCORE−1AND論理ゲート826及び・・・CORE−nAND論理ゲート827に対して出力する。
ここで、CORE−0AND論理ゲート825及びCORE−1AND論理ゲート826及び・・・CORE−nAND論理ゲート827のもう一方の入力はそれぞれ、CORE−0フラグレジスタ822及びCORE−1フラグレジスタ823及び・・・CORE−nフラグレジスタ824の出力に接続されているため、結果として前記選択対象のコアのみに対してロード制御信号(load valid)の出力がなされる。例えば、それぞれ、CORE−0フラグレジスタ822に“1”、CORE−1フラグレジスタ823・・・CORE−nフラグレジスタ824に“0”が設定されている場合には、CORE−0レジスタコントローラ814のみに前記ロード制御信号(load valid)が出力され、CORE−1フラグレジスタ816・・・CORE−nフラグレジスタ818にはCORE−1AND論理ゲート826・・・CORE−nAND論理ゲート827による抑止のため、前記ロード制御信号(load valid)は出力されない。
CORE−0レジスタコントローラ814は、前記ロード制御信号(load valid)を受信すると、CORE−0セットアップレジスタ815に対してロードレジスタ717の出力であるロードデータ(load data)の設定を行う。
以上により、本発明の第1の実施の形態であるコア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおいて、n個のコア部のうち任意に選択したコア部に対する同時設定が可能であることがわかる。
(第3の実施の形態)
図9は、コア部を2つ有する2CMPのマルチコア・プロセサにおける本発明の第3の実施の形態を示す図である。図7で示した第1の実施の形態との相違点は、2つのコア部のセットアップレジスタに対するロード制御だけでなく、センス制御をも可能にした点である。従って、ロード制御に関しては、図7で示した第1の実施の形態と同様であるため省略し、センス制御についてのみ説明を行う。
プロセサ901は、CORE−0ブロック411、CORE−1ブロック412、CMP共有ブロック410から構成される2コアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、ロード/センスコントローラ用デコーダ915、ロード/センスコントローラ916、ロード/センスレジスタ917、フラグコントローラ用デコーダ719、フラグコントローラ720、CORE−0フラグレジスタ722及びCORE−1フラグレジスタ723から構成されるコア選択フラグレジスタ721、CORE−0ロード制御用AND論理ゲート924、CORE−0センス制御用AND論理ゲート925、CORE−1ロード制御用AND論理ゲート926、CORE−1センス制御用AND論理ゲート927、CORE−0センスデータ用AND論理ゲート928、CORE−1センスデータ用AND論理ゲート929、センスデータ用OR論理ゲート930、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ418、CORE−0セットアップレジスタ419、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ420、CORE−1セットアップレジスタ421を含む。
まず、TAPコントローラ413から発行されたJTAGコマンド−0 718は、フラグコントローラ用デコーダ719でデコードされ、そのデコード結果により、フラグコントローラ720はコア選択フラグレジスタ721に対して、CORE−0フラグレジスタ722及びCORE−1フラグレジスタ723にデータを設定し、センスデータ(sense data)の読み出し対象となるコアの選択を行う。例えば、CORE−0のみの読み出しを行う場合には、CORE−0フラグレジスタ722に“1”を設定し、CORE−1フラグレジスタ723には“0”の設定を行う。つまり、選択対象となるコアのフラグレジスタには“1”を設定し、非選択対象のコアのフラグレジスタには“0”を設定する。
次に、TAPコントローラ413から発行されたJTAGコマンド−1 714は、ロード/センスコントローラ用デコーダ915でデコードされ、そのデコード結果により、ロード/センスコントローラ916はセンス制御信号(sense valid)をCORE−0センス制御用AND論理ゲート925及びCORE−1センス制御用AND論理ゲート927に対して出力する。
ここで、前記CORE−0センス制御用AND論理ゲート925及びCORE−1センス制御用AND論理ゲート927のもう一方の入力はそれぞれ、CORE−0フラグレジスタ722及びCORE−1フラグレジスタ723の出力に接続されているため、結果として前記選択対象のコアのみに対してセンス制御信号(sense valid)の出力がなされる。例えば、それぞれ、CORE−0フラグレジスタ722に“1”、CORE−1フラグレジスタ723に“0”が設定されている場合には、CORE−0レジスタコントローラ418のみに前記センス制御信号(sense valid)が出力され、CORE−1レジスタコントローラ420にはCORE−1センス制御用AND論理ゲート725による抑止のため、前記センス制御信号(sense valid)は出力されない。
CORE−0レジスタコントローラ418は、前記センス制御信号(sense valid)を受信すると、CORE−0セットアップレジスタ419に対して設定されているデータをセンスデータ(sense data)として出力させる。前記CORE−0セットアップレジスタ419から出力されたセンスデータ(sense data)は、CORE−0センスデータ用AND論理ゲート928に入力されるが、前記センスデータ用AND論理ゲート928のもう一方の入力は、CORE−0フラグレジスタ722の出力に接続されているため、結果としてセンスデータ用OR論理ゲートに入力される。一方、CORE−1セットアップレジスタ421からの出力は、CORE−1センスデータ用AND論理ゲート929に入力されるが、前記CORE−1センスデータ用AND論理ゲート929のもう一方の入力は、CORE−1フラグレジスタ723の出力に接続されているため、出力は抑止される。従って、センスデータ用OR論理ゲート930の出力は、CORE−0セットアップレジスタ419に設定されているデータが、センスデータ(sense data)としてロード/センスレジスタ917へ出力される。次に、TAPコントローラ413は、ロード/センスレジスタ917に対するスキャン制御により、前記選択対象のコアからのセンスデータの読み出しを行う。
以上により、本発明の第3の実施の形態であるコア部を2つ有する2CMPのマルチコア・プロセサにおいて、CORE−0からのセンスデータの読み出し若しくはCORE−1からのセンスデータの読み出しが可能であることがわかる。
(第4の実施の形態)
図10は、コア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおける本発明の第4の実施の形態を示す図である。図8で示した第2の実施の形態との相違点は、n個のコア部のセットアップレジスタに対するロード制御だけでなく、センス制御をも可能にした点である。従って、ロード制御に関しては、図8で示した第2の実施の形態と同様であるため省略し、センス制御についてのみ説明を行う。
プロセサ1001は、CORE−0ブロック811、CORE−1ブロック812、・・・、CORE−nブロック813、CMP共有ブロック410から構成されるnコアのマルチコア・プロセサである。また、JTAG制御部は、CMP共有ブロック側にそれぞれ、TAPコントローラ413、ロード/センスコントローラ用デコーダ915、ロード/センスコントローラ916、ロード/センスレジスタ917、フラグコントローラ用デコーダ719、フラグコントローラ720、CORE−0フラグレジスタ822及びCORE−1フラグレジスタ823及び・・・CORE−nフラグレジスタ823から構成されるコア選択フラグレジスタ821、CORE−0ロード制御用AND論理ゲート1025、CORE−1ロード制御用AND論理ゲート1027、・・・、CORE−nロード制御用AND論理ゲート1029、CORE−0センス制御用AND論理ゲート1026、CORE−1センス制御用AND論理ゲート1028、・・・、CORE−nセンス制御用AND論理ゲート1030、CORE−0センスデータ用AND論理ゲート1031、CORE−1センスデータ用AND論理ゲート1032、CORE−nセンスデータ用AND論理ゲート1033、センスデータ用OR論理ゲート1034、CORE−0ブロック側にそれぞれ、CORE−0レジスタコントローラ814、CORE−0セットアップレジスタ815、CORE−1ブロック側にそれぞれ、CORE−1レジスタコントローラ816、CORE−1セットアップレジスタ817、・・・、CORE−nブロック側にそれぞれ、CORE−nレジスタコントローラ818、CORE−nセットアップレジスタ819を含む。
まず、TAPコントローラ413から発行されたJTAGコマンド−0 718は、フラグコントローラ用デコーダ719でデコードされ、そのデコード結果により、フラグコントローラ720はコア選択フラグレジスタ821に対して、CORE−0フラグレジスタ822及びCORE−1フラグレジスタ823及び・・・CORE−nフラグレジスタ824にデータを設定し、センスデータ(sense data)の読み出し対象となるコアの選択を行う。例えば、CORE−0のみに設定を行う場合には、CORE−0フラグレジスタ822に“1”を設定し、CORE−1フラグレジスタ823、・・・、CORE−nフラグレジスタ824には“0”の設定を行う。つまり、選択対象となるコアのフラグレジスタには“1”を設定し、非選択対象のコアのフラグレジスタには“0”を設定する。
次に、TAPコントローラ413から発行されたJTAGコマンド−1 714は、ロード/センスコントローラ用デコーダ915でデコードされ、そのデコード結果により、ロード/センスコントローラ916はセンス制御信号(sense valid)をCORE−0センス制御用AND論理ゲート1025及びCORE−1センス制御用AND論理ゲート1027及び・・・CORE−nセンス制御用AND論理ゲート1029に対して出力する。
ここで、前記CORE−0センス制御用AND論理ゲート1026及びCORE−1センス制御用AND論理ゲート1028及び・・・CORE−nセンス制御用AND論理ゲート1030のもう一方の入力はそれぞれ、CORE−0フラグレジスタ822及びCORE−1フラグレジスタ823及び・・・CORE−nフラグレジスタ824の出力に接続されているため、結果として前記選択対象のコアのみに対してセンス制御信号(sense valid)の出力がなされる。例えば、それぞれ、CORE−0フラグレジスタ822に“1”、CORE−1フラグレジスタ823に“0”、・・・、CORE−nフラグレジスタ824に“0”が設定されている場合には、CORE−0レジスタコントローラ814のみに前記センス制御信号(sense valid)が出力され、CORE−1レジスタコントローラ816、・・・、CORE−nレジスタコントローラ818にはCORE−1センス制御用AND論理ゲート1028、・・・、CORE−nセンス制御用AND論理ゲート1030による抑止のため、前記センス制御信号(sense valid)は出力されない。
CORE−0レジスタコントローラ814は、前記センス制御信号(sense valid)を受信すると、CORE−0セットアップレジスタ815に対して設定されているデータをセンスデータ(sense data)として出力させる。前記CORE−0セットアップレジスタ815から出力されたセンスデータ(sense data)は、CORE−0センスデータ用AND論理ゲート1031に入力されるが、前記センスデータ用AND論理ゲート1031のもう一方の入力は、CORE−0フラグレジスタ822の出力に接続されているため、結果としてセンスデータ用OR論理ゲートに入力される。一方、それぞれCORE−1セットアップレジスタ817、・・・、CORE−nセットアップレジスタ819からの出力は、それぞれCORE−1センスデータ用AND論理ゲート1032、・・・、CORE−nセンスデータ用AND論理ゲート1033に入力されるが、それぞれ前記CORE−1センスデータ用AND論理ゲート1032、・・・、CORE−nセンスデータ用AND論理ゲート1033のもう一方の入力は、それぞれCORE−1フラグレジスタ823、・・・、CORE−nフラグレジスタ824の出力に接続されているため、出力は抑止される。従って、センスデータ用OR論理ゲート930の出力は、CORE−0セットアップレジスタ815に設定されているデータが、センスデータ(sense data)としてロード/センスレジスタ917へ出力される。次に、TAPコントローラ413は、ロード/センスレジスタ917に対するスキャン制御により、前記選択対象のコアからのセンスデータの読み出しを行う。
以上により、本発明の第4の実施の形態であるコア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおいて、n個のコア部のうち任意に選択したコア部からのセンスデータの読み出しが可能であることがわかる。
(第5の実施の形態)
図11は、コア部を2つ有する2CMPのマルチコア・プロセサにおける本発明の第5の実施の形態を示す図である。図9で示した第3の実施の形態との相違点は、コア選択フラグレジスタの代わりにヒューズによるコア選択を行う点である。従って、ロード/センス制御に関しては、図9で示した第3の実施の形態と同様であるため省略し、ヒューズ設定についてのみ説明を行う。
プロセサ1101は、コア選択フラグレジスタの代わりにヒューズエリア1121を有し、前記ヒューズエリア1121はCORE−0用プルアップ抵抗1122、CORE−1用プルアップ抵抗1123、CORE−0用ヒューズ1124、CORE−1用ヒューズ1125から構成される。前記CORE−0用ヒューズ1124及びCORE−1用ヒューズ1125は、半導体製造時におけるレーザー切断による設定を行うことにより、コア選択レジスタに固定値を設定した場合と同じ効果を有する。
以上により、本発明の第5の実施の形態であるコア部を2つ有する2CMPのマルチコア・プロセサにおいて、半導体製造時のウェハーテストにて部分コア良品であると判定されたチップの不良コア側のヒューズを切断することにより、良品コア側に対するロード/センス制御を安定して行うことが可能であることがわかる。
(第6の実施の形態)
図12は、コア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおける本発明の第6の実施の形態を示す図である。図10で示した第4の実施の形態との相違点は、コア選択フラグレジスタの代わりにヒューズによるコア選択を行う点である。従って、ロード/センス制御に関しては、図10で示した第4の実施の形態と同様であるため省略し、ヒューズ設定についてのみ説明を行う。
プロセサ1201は、コア選択フラグレジスタの代わりにヒューズエリア1221を有し、前記ヒューズエリア1221はCORE−0用プルアップ抵抗1222、CORE−1用プルアップ抵抗1223、・・・、CORE−n用プルアップ抵抗1224、CORE−0用ヒューズ1225、CORE−1用ヒューズ1226、・・・、CORE−n用ヒューズ1227から構成される。前記CORE−0用ヒューズ1225及びCORE−1用ヒューズ1226及び・・・CORE−n用ヒューズ1227は、半導体製造時におけるレーザー切断による設定を行うことにより、コア選択レジスタに固定値を設定した場合と同じ効果を有する。
以上により、本発明の第6の実施の形態であるコア部をn個(n≧3)有する2CMPのマルチコア・プロセサにおいて、半導体製造時のウェハーテストにて部分コア良品であると判定されたチップの不良コア側のヒューズを切断することにより、良品コア側に対するロード/センス制御を安定して行うことが可能であることがわかる。
(第7の実施の形態)
図13は、コア部を2つ有する2CMPのマルチコア・プロセサにおける本発明の第7の実施の形態を示す図である。図11で示した第5の実施の形態との相違点は、ヒューズを切断した後においても、ヒューズ上書きスキャンレジスタにコア選択データを設定することによりコア部の選択を自由に行うことができる点である。従って、ロード/センス制御及びヒューズ設定に関しては、図11で示した第5の実施の形態と同様であるため省略し、ヒューズ上書きスキャンレジスタの設定についてのみ説明を行う。
プロセサ1301は、コア選択フラグレジスタの代わりにヒューズエリア1321を有し、前記ヒューズエリア1321はCORE−0用プルアップ抵抗1322、CORE−1用プルアップ抵抗1323、CORE−0用ヒューズ1324、CORE−1用ヒューズ1325、CORE−0用ヒューズ上書きスキャンレジスタ1326、CORE−1用ヒューズ上書きスキャンレジスタ1327、CORE−0用セレクタ1328、CORE−1用セレクタ1329から構成される。
前記CORE−0用ヒューズ1324及びCORE−1用ヒューズ1325は、半導体製造時におけるレーザー切断による設定を行うことにより、コア選択レジスタに固定値を設定した場合と同じ効果を有する。
また、前記CORE−0用ヒューズ1324及びCORE−1用ヒューズ1325に対して、TAPコントローラ413によるコア選択データをスキャン制御による設定を行い、それぞれCORE−0用セレクタ1328、CORE−1用セレクタ1329のセレクト信号として、TM(TestMode)信号などにより外部ピンから選択制御を行うことにより、ヒューズ切断後においてもコア部の選択を自由に行うことが出来る。
以上により、本発明の第7の実施の形態であるコア部を2つ有する2CMPのマルチコア・プロセサにおいて、半導体製造時のウェハーテストにて部分コア良品であると判定されたチップの不良コア側のヒューズを切断した後においても、ロード/センス制御の対象となるコア部の選択を自由に行うことが可能であることがわかる。
(第8の実施の形態)
図14は、コア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおける本発明の第8の実施の形態を示す図である。図12で示した第6の実施の形態との相違点は、ヒューズを切断した後においても、ヒューズ上書きスキャンレジスタにコア選択データを設定することによりコア部の選択を自由に行うことができる点である。従って、ロード/センス制御及びヒューズ設定に関しては、図12で示した第6の実施の形態と同様であるため省略し、ヒューズ上書きスキャンレジスタの設定についてのみ説明を行う。
プロセサ1401は、コア選択フラグレジスタの代わりにヒューズエリア1421を有し、前記ヒューズエリア1421はCORE−0用プルアップ抵抗1422、CORE−1用プルアップ抵抗1423、・・・、CORE−n用プルアップ抵抗1424、CORE−0用ヒューズ1425、CORE−1用ヒューズ1426、・・・、CORE−n用ヒューズ1427、CORE−0用ヒューズ上書きスキャンレジスタ1428、CORE−1用ヒューズ上書きスキャンレジスタ1429、・・・、CORE−n用ヒューズ上書きスキャンレジスタ1430、CORE−0用セレクタ1431、CORE−1用セレクタ1432、・・・、CORE−n用セレクタ1433から構成される。
前記CORE−0用ヒューズ1425及びCORE−1用ヒューズ1426及び・・・CORE−n用ヒューズ1427は、半導体製造時におけるレーザー切断による設定を行うことにより、コア選択レジスタに固定値を設定した場合と同じ効果を有する。
また、前記CORE−0用ヒューズ1425及びCORE−1用ヒューズ1426及び・・・CORE−n用ヒューズ1427に対して、TAPコントローラ413によるコア選択データをスキャン制御による設定を行い、それぞれCORE−0用セレクタ1431、CORE−1用セレクタ1432、・・・、CORE−n用セレクタ1433のセレクト信号として、TM(TestMode)信号などにより外部ピンから選択制御を行うことにより、ヒューズ切断後においてもコア部の選択を自由に行うことが出来る。
さらに、図15に前記ヒューズエリア1421と前記TAPコントローラ413との接続の詳細を示す。クロックチョッパ1501は、CORE−0用ヒューズ上書きスキャンレジスタ1428、CORE−1用ヒューズ上書きスキャンレジスタ1429、・・・、CORE−n用ヒューズ上書きスキャンレジスタ1430に対して、通常動作時にはシステムクロックを供給し、スキャン動作時にはシステムクロックを停止させる制御を行う。
以上により、本発明の第8の実施の形態であるコア部をn個(n≧3)有するnCMPのマルチコア・プロセサにおいて、半導体製造時のウェハーテストにて部分コア良品であると判定されたチップの不良コア側のヒューズを切断した後においても、ロード/センス制御の対象となるコア部の選択を自由に行うことが可能であることがわかる。
以上、本発明にかかる実施の形態1〜8について図面を参照して説明して詳述してきたが、具体的な構成例はこれら実施の形態1〜8に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
(付記1)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1の実行処理部及び第2の実行処理部、並びに前記第1の実行処理部及び前記第2の実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対して、前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1の実行処理部及び前記第2の実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記ロード制御手段から前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有することを特徴とするプロセサ。
(付記2)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部、並びに前記第1乃至第nの実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1乃至第nの実行処理部の設定レジスタ手段に対して、前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1乃至第nの実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記ロード制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有することを特徴とするプロセサ。
(付記3)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1の実行処理部及び第2の実行処理部、並びに前記第1の実行処理部及び前記第2の実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段からセンスする設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対して、前記設定レジスタ手段が保持するデータのセンス制御を行うセンス制御手段と、
前記第1の実行処理部及び前記第2の実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記センス制御手段から前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段へのセンス制御信号を遮断する手段とを有することを特徴とするプロセサ。
(付記4)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部、並びに前記第1乃至第nの実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段からセンスする設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1乃至第nの実行処理部の設定レジスタ手段に対して、前記設定レジスタ手段が保持するデータのセンス制御を行うセンス制御手段と、
前記第1乃至第nの実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記センス制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段へのセンス制御信号を遮断する手段とを有することを特徴とするプロセサ。
(付記5)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1の実行処理部及び第2の実行処理部、並びに前記第1の実行処理部及び前記第2の実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対して前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1の実行処理部及び前記第2の実行処理部の選択情報を実行処理部毎に設定を行うコア選択ヒューズ手段と、
前記コア選択ヒューズ手段の値により、前記ロード制御手段から前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有することを特徴とするプロセサ。
(付記6)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部、並びに前記第1乃至第nの実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1乃至第nの実行処理部の設定レジスタ手段に対して、前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1乃至第nの実行処理部の選択情報を実行処理部毎に設定を行うコア選択ヒューズ手段と、
前記コア選択ヒューズ手段の値により、前記ロード制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有することを特徴とするプロセサ。
(付記7)
前記プロセサが、
前記コア選択ヒューズ手段の出力に接続され、前記TAPコントローラによるスキャン設定によりコア選択情報が設定され、前記コア選択ヒューズ手段の出力を上書きするヒューズ上書きスキャンラッチ手段と、
前記コア選択ヒューズ手段の出力及び前記ヒューズ上書きスキャンラッチ手段の出力を入力とするセレクタ手段を有することを特徴とする請求項5又は請求項6に記載のプロセサ。
(付記8)
複数の論理ブロック手段を有するプロセサの制御方法であって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1の実行処理部及び第2の実行処理部、並びに前記第1の実行処理部及び前記第2の実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサの制御方法において、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対する前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1の実行処理部及び前記第2の実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記ロード制御手段から各実行処理部へのロード制御信号を遮断する手段とを有し、
前記TAPコントローラ手段から前記フラグ制御手段に対して、第1のJTAGコマンドを発行することによりコア選択情報の設定を行い、第1の実行処理部又は第2の実行処理部を選択するステップと、
前記TAPコントローラ手段から前記データレジスタ手段に対して、スキャン設定により第1の実行処理部又は第2の実行処理部に対する設定情報を設定するステップと、
前記TAPコントローラ手段から前記ロード制御手段に対して、第2のJTAGコマンドを発行することにより、前記データレジスタの内容を該選択した実行処理部の設定レジスタへロードするステップとを有することを特徴とするプロセサの制御方法。
(付記9)
複数の論理ブロック手段を有するプロセサの制御方法であって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部、並びに前記第1乃至第nの実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサの制御方法において、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1乃至第nの実行処理部の設定レジスタ手段に対する前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1乃至第nの実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記ロード制御手段から各実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有し、
前記TAPコントローラ手段から前記フラグ制御手段に対して、第1のJTAGコマンドを発行することによりコア選択情報の設定を行い、第1乃至第nの実行処理部を選択するステップと、
前記TAPコントローラ手段から前記データレジスタ手段に対して、スキャン設定により第1乃至第nの実行処理部に対する設定情報を設定するステップと、
前記TAPコントローラ手段から前記ロード制御手段に対して、第2のJTAGコマンドを発行することにより、前記データレジスタの内容を該選択した実行処理部の設定レジスタへロードするステップとを有することを特徴とするプロセサの制御方法。
(付記10)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1の実行処理部及び第2の実行処理部、並びに前記第1の実行処理部及び前記第2の実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段からセンスする設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対して、前記設定レジスタ手段が保持するデータのセンス制御を行うセンス制御手段と、
前記第1の実行処理部及び前記第2の実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記センス制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段へのセンス制御信号を遮断する手段とを有し、
前記TAPコントローラ手段から前記フラグ制御手段に対して、第1のJTAGコマンドを発行することによりコア選択情報の設定を行い、第1乃至第nの実行処理部を選択するステップと、
前記TAPコントローラ手段から前記センス制御手段に対して、第2のJTAGコマンドを発行することにより、該選択した実行処理部の設定レジスタの内容を前記データレジスタへセンスするステップとを有することを特徴とするプロセサの制御方法。
(付記11)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部、並びに前記第1乃至第nの実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段からセンスする設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1乃至第nの実行処理部の設定レジスタ手段に対して、前記設定レジスタ手段が保持するデータのセンス制御を行うセンス制御手段と、
前記第1乃至第nの実行処理部の選択情報を実行処理部毎に保持するコア選択フラグレジスタ手段と、
前記コア選択フラグレジスタ手段に接続され、前記コア選択フラグレジスタ手段への設定制御を行うフラグレジスタ制御手段と、
前記コア選択フラグレジスタ手段の値により、前記センス制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段へのセンス制御信号を遮断する手段とを有し、
前記TAPコントローラ手段から前記フラグ制御手段に対して、第1のJTAGコマンドを発行することによりコア選択情報の設定を行い、第1乃至第nの実行処理部を選択するステップと、
前記TAPコントローラ手段から前記センス制御手段に対して、第2のJTAGコマンドを発行することにより、該選択した実行処理部の設定レジスタの内容を前記データレジスタへセンスするステップとを有することを特徴とするプロセサの制御方法。
(付記12)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1の実行処理部及び第2の実行処理部、並びに前記第1の実行処理部及び前記第2の実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段に対して前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1の実行処理部及び前記第2の実行処理部の選択情報を実行処理部毎に設定を行うコア選択ヒューズ手段と、
前記コア選択ヒューズ手段の値により、前記ロード制御手段から前記第1の実行処理部及び前記第2の実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有し、
前記コア選択ヒューズ手段を切断することによりコア選択情報の設定を行い、第1又は第2の実行処理部を選択するステップと、
前記TAPコントローラ手段から前記データレジスタ手段に対して、スキャン設定により第1の実行処理部又は第2の実行処理部に対する設定情報を設定するステップと、
前記TAPコントローラ手段から前記ロード制御手段に対して、JTAGコマンドを発行することにより、前記データレジスタの内容を該選択した実行処理部の設定レジスタへロードするステップとを有することを特徴とするプロセサの制御方法。
(付記13)
複数の論理ブロック手段を有するプロセサであって、
前記複数の論理ブロック手段は少なくとも、それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部、並びに前記第1乃至第nの実行処理部によって共有されるキャッシュ手段を有する共有ブロック部を含むものであるプロセサにおいて、
JTAGコマンドの発行を行うことによりプロセサの制御を行うTAPコントローラ手段と、
前記第1乃至第nの実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
前記データレジスタ手段に接続され、前記第1乃至第nの実行処理部の設定レジスタ手段に対して前記データレジスタ手段が保持するデータのロード制御を行うロード制御手段と、
前記第1乃至第nの実行処理部の選択情報を実行処理部毎に設定を行うコア選択ヒューズ手段と、
前記コア選択ヒューズ手段の値により、前記ロード制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段へのロード制御信号を遮断する手段とを有し、
前記コア選択ヒューズ手段を切断することによりコア選択情報の設定を行い、第1乃至第nの実行処理部を選択するステップと、
前記TAPコントローラ手段から前記データレジスタ手段に対して、スキャン設定により第1乃至第nの実行処理部に対する設定情報を設定するステップと、
前記TAPコントローラ手段から前記ロード制御手段に対して、JTAGコマンドを発行することにより、前記データレジスタの内容を該選択した実行処理部の設定レジスタへロードするステップとを有することを特徴とするプロセサの制御方法。
(付記14)
前記プロセサが、
前記コア選択ヒューズ手段の出力に接続され、前記TAPコントローラによるスキャン設定によりコア選択情報が設定され、前記コア選択ヒューズ手段の出力を上書きするヒューズ上書きスキャンラッチ手段と、
前記コア選択ヒューズ手段の出力及び前記ヒューズ上書きスキャンラッチ手段の出力を入力とするセレクタ手段を有し、
前記コア選択ヒューズ手段を切断することによりコア選択情報の設定を行い、第1乃至第nの実行処理部を選択するステップの後に、
必要である場合には、
前記ヒューズ上書きスキャンラッチ手段にコア選択情報をスキャン設定するステップと、
前記セレクタ手段において、前記ヒューズ上書きスキャンラッチ手段の出力を選択して出力するステップとを有することを特徴とする請求項12又は請求項13に記載のプロセサ。
本発明によれば、複数のプロセサコアを有するCMP等のマルチコア・プロセサにおいて、各コアの内部設定レジスタに対する設定値制御を柔軟に行うことにより、システムブート時におけるプロセサ構成設定の容易化、システム動作時に発生した特定のプロセサコアの縮退機能、プロセサコアの増加に伴う回路規模の増加の最小化、さらに、製造時の部分コア良品の製品化を実現することにより、プロセサの歩留まり向
上や低消費電力化に寄与するマルチコア・プロセサを実現することができる。
図1はプロセサの基本ハードウェア構成を示す図である。 図2は従来の対称型マルチプロセサを使用したサーバシステムの構成を示す図である。 図3はマルチコア・プロセサを使用したサーバシステムの構成を示す図である。 図4はマルチコア・プロセサの従来構成その1を示す図である。 図5はマルチコア・プロセサの従来構成その2を示す図である。 図6はマルチコア・プロセサの従来構成その3を示す図である。 図7は第1の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図8は第2の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図9は第3の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図10は第4の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図11は第5の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図12は第6の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図13は第7の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図14は第8の実施の形態におけるマルチコア・プロセサの構成を示す図である。 図15は第8の実施の形態におけるマルチコア・プロセサのヒューズ部の構成を示す図である。
符号の説明
701 プロセサ
714 JTAGコマンド−1
715 ロードコントローラ用デコーダ
716 ロードコントローラ
717 ロードレジスタ
718 JTAGコマンド−0
719 フラグコントローラ用デコーダ
720 フラグコントローラ
721 コア選択フラグレジスタ
722 CORE−0フラグレジスタ
723 CORE−1フラグレジスタ
724 CORE−0AND論理ゲート
725 CORE−1AND論理ゲート
901 プロセサ
915 ロード/センスコントローラ用デコーダ
916 ロード/センスコントローラ
917 ロード/センスレジスタ
924 CORE−0ロード制御用AND論理ゲート
925 CORE−0センス制御用AND論理ゲート
926 CORE−0センスデータ用AND論理ゲート
927 CORE−1ロード制御用AND論理ゲート
928 CORE−1センス制御用AND論理ゲート
929 CORE−1センスデータ用AND論理ゲート
930 センスデータ用OR論理ゲート
1101 プロセサ
1121 ヒューズエリア
1122 CORE−0用プルアップ抵抗
1123 CORE−1用プルアップ抵抗
1124 CORE−0用ヒューズ
1125 CORE−1用ヒューズ
1301 プロセサ
1321 ヒューズエリア
1322 CORE−0用プルアップ抵抗
1323 CORE−1用プルアップ抵抗
1324 CORE−0用ヒューズ
1325 CORE−1用ヒューズ
1326 CORE−0用ヒューズ上書きスキャンレジスタ
1327 CORE−1用ヒューズ上書きスキャンレジスタ
1328 CORE−0用セレクタ
1329 CORE−1用セレクタ
1501 クロックチョッパ

Claims (10)

  1. それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部を含む論理ブロック手段を有するプロセサにおいて、
    前記第1乃至第nの実行処理部の設定レジスタ手段に対する設定情報を保持するデータレジスタ手段と、
    前記第1乃至第nの実行処理部の設定レジスタ手段への、前記データレジスタ手段が保持する設定情報のロード制御を行うロード制御手段と、
    前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報を設定するコア選択ヒューズ手段と、
    前記コア選択ヒューズ手段の出力に接続されるとともに、スキャン制御を行うTAPコントローラから第2のコア選択情報がスキャン設定されることにより、前記コア選択ヒューズ手段の内容を上書きするヒューズ上書きスキャンラッチ手段と、
    前記コア選択ヒューズ手段の出力と前記ヒューズ上書きスキャンラッチ手段の出力を入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力するセレクタ手段と、
    前記セレクタ手段が出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、前記ロード制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段のうち、前記データレジスタ手段が保持する前記設定情報の設定を行わない設定レジスタ手段へのロード制御信号を遮断する手段とを有することを特徴とするプロセサ。
  2. それぞれ独立に動作し内部に設定レジスタ手段を有する第1乃至第nの実行処理部を含む論理ブロック手段を有するプロセサにおいて、
    前記第1乃至第nの実行処理部の設定レジスタ手段からセンスする設定情報を保持するデータレジスタ手段と、
    前記第1乃至第nの実行処理部の設定レジスタ手段から、前記設定レジスタ手段が保持する設定情報のセンス制御を行うセンス制御手段と、
    前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報を設定するコア選択ヒューズ手段と、
    前記コア選択ヒューズ手段の出力に接続されるとともに、スキャン制御を行うTAPコントローラから第2のコア選択情報がスキャン設定されることにより、前記コア選択ヒューズ手段の内容を上書きするヒューズ上書きスキャンラッチ手段と、
    前記コア選択ヒューズ手段の出力と前記ヒューズ上書きスキャンラッチ手段の出力を入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力するセレクタ手段と、
    前記セレクタ手段が出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、前記センス制御手段から前記第1乃至第nの実行処理部の設定レジスタ手段のうち、前記データレジスタ手段が保持する設定情報のセンスを行わない設定レジスタ手段へのセンス制御信号を遮断する手段とを有することを特徴とするプロセサ。
  3. 前記セレクタ手段は、前記プロセサの外部から入力される外部信号に基づいて、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力することを特徴とする請求項1又は2記載のプロセサ。
  4. 前記プロセサはさらに、前記ヒューズ上書きスキャンラッチ手段にシステムクロックを供給するシステムクロック制御手段を有し、
    前記システムクロック制御手段は、前記TAPコントローラから前記ヒューズ上書きスキャンラッチ手段に、前記第2のコア選択情報をスキャン設定する場合には、前記ヒューズ上書きスキャンラッチ手段に対する前記システムクロックの供給を停止することを特徴とする請求項1乃至3のいずれか1項に記載のプロセサ。
  5. 前記第1のコア選択情報と前記第2のコア選択情報は、異なることを特徴とする請求項1乃至4のいずれか1項に記載のプロセサ。
  6. それぞれ独立に動作し内部に設定レジスタを有する第1乃至第nの実行処理部を含む論理ブロックを有するプロセサの制御方法において、
    コア選択ヒューズの切断を行うことにより、前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報の設定を行い、前記第1乃至第nの実行処理部のうち、1乃至複数の実行処理部を選択するステップと、
    データレジスタに、前記選択された任意の実行処理部への設定情報を設定するステップと、
    前記コア選択ヒューズの出力に接続されたヒューズ上書きスキャンラッチに、スキャン制御を行うTAPコントローラから第2のコア選択情報をスキャン設定し、前記コア選択ヒューズの内容を上書きするステップと、
    前記コア選択ヒューズの出力と前記ヒューズ上書きスキャンラッチの出力をセレクタに入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを前記セレクタが出力するステップと、
    前記セレクタが出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、前記データレジスタに設定された設定情報を、前記選択された任意の実行処理部の設定レジスタへロードするステップとを有することを特徴とするプロセサの制御方法。
  7. それぞれ独立に動作し内部に設定レジスタを有する第1乃至第nの実行処理部を含む論理ブロックを有するプロセサの制御方法において、
    コア選択ヒューズの切断を行うことにより、前記第1乃至第nの実行処理部の選択についての情報である第1のコア選択情報の設定を行い、前記第1乃至第nの実行処理部のうち、1乃至複数の実行処理部を選択するステップと、
    前記コア選択ヒューズの出力に接続されたヒューズ上書きスキャンラッチに、スキャン制御を行うTAPコントローラから第2のコア選択情報をスキャン設定し、前記コア選択ヒューズの内容を上書きするステップと、
    前記コア選択ヒューズの出力と前記ヒューズ上書きスキャンラッチの出力をセレクタに入力し、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを前記セレクタが出力するステップと、
    前記セレクタが出力する前記第1のコア選択情報又は前記第2のコア選択情報に基づいて、データレジスタに、前記選択された1つの実行処理部から設定情報をセンスするステップとを有することを特徴とするプロセサの制御方法。
  8. 前記セレクタは、前記プロセサの外部から入力される外部信号に基づいて、前記第1のコア選択情報又は前記第2のコア選択情報のいずれかを出力することを特徴とする請求項6又は7記載のプロセサの制御方法。
  9. 前記プロセサはさらに、前記ヒューズ上書きスキャンラッチにシステムクロックを供給するシステムクロック制御部を有し、
    前記プロセサの制御方法はさらに、
    前記TAPコントローラから前記ヒューズ上書きスキャンラッチに、前記第2のコア選択情報をスキャン設定する場合には、前記システムクロック制御部が、前記ヒューズ上書きスキャンラッチに対する前記システムクロックの供給を停止するステップを有することを特徴とする請求項6乃至8のいずれか1項に記載のプロセサの制御方法。
  10. 前記第1のコア選択情報と前記第2のコア選択情報は、異なることを特徴とする請求項6乃至9のいずれか1項に記載のプロセサの制御方法。
JP2004176619A 2004-06-15 2004-06-15 マルチコアプロセサ制御方式 Expired - Fee Related JP4296996B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004176619A JP4296996B2 (ja) 2004-06-15 2004-06-15 マルチコアプロセサ制御方式
US11/012,349 US20050289286A1 (en) 2004-06-15 2004-12-16 Multi-core processor control method
US11/976,516 US7676669B2 (en) 2004-06-15 2007-10-25 Multi-core processor control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004176619A JP4296996B2 (ja) 2004-06-15 2004-06-15 マルチコアプロセサ制御方式

Publications (2)

Publication Number Publication Date
JP2006003949A JP2006003949A (ja) 2006-01-05
JP4296996B2 true JP4296996B2 (ja) 2009-07-15

Family

ID=35507424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004176619A Expired - Fee Related JP4296996B2 (ja) 2004-06-15 2004-06-15 マルチコアプロセサ制御方式

Country Status (2)

Country Link
US (2) US20050289286A1 (ja)
JP (1) JP4296996B2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500056B2 (en) * 2004-07-21 2009-03-03 Hewlett-Packard Development Company, L.P. System and method to facilitate reset in a computer system
US9633213B2 (en) * 2005-05-16 2017-04-25 Texas Instruments Incorporated Secure emulation logic between page attribute table and test interface
US20060259828A1 (en) 2005-05-16 2006-11-16 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8108844B2 (en) 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US8146066B2 (en) * 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8261270B2 (en) * 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US8136102B2 (en) * 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US8024708B2 (en) 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US8136104B2 (en) * 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8443348B2 (en) 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
US8140902B2 (en) * 2008-11-12 2012-03-20 International Business Machines Corporation Internally controlling and enhancing advanced test and characterization in a multiple core microprocessor
US8122312B2 (en) * 2009-04-14 2012-02-21 International Business Machines Corporation Internally controlling and enhancing logic built-in self test in a multiple core microprocessor
US10698859B2 (en) 2009-09-18 2020-06-30 The Board Of Regents Of The University Of Texas System Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture
KR101553651B1 (ko) * 2009-10-13 2015-09-17 삼성전자 주식회사 다중 뱅크 메모리 액세스 장치
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
TWI412999B (zh) 2010-03-31 2013-10-21 Wistron Corp 平行化快速啟動方法及具有多處理單元之電子裝置
CN102214105B (zh) * 2010-04-08 2017-05-31 纬创资通股份有限公司 平行化快速启动方法及具有多处理单元的电子装置
KR101731742B1 (ko) 2010-06-18 2017-04-28 보드 오브 리전츠 더 유니버시티 오브 텍사스 시스템 결합된 분기 타깃 및 프레디킷 예측
US8751720B2 (en) 2010-11-08 2014-06-10 Moon J. Kim Computationally-networked unified data bus
KR101834195B1 (ko) 2012-03-15 2018-04-13 삼성전자주식회사 다중코어 시스템 및 로드 밸런싱 방법
US9575120B2 (en) 2013-03-29 2017-02-21 International Business Machines Corporation Scan chain processing in a partially functional chip
KR20150019457A (ko) 2013-08-14 2015-02-25 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템
EP3080668B1 (de) * 2013-12-09 2017-06-14 dSPACE digital signal processing and control engineering GmbH Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
US10871967B2 (en) 2015-09-19 2020-12-22 Microsoft Technology Licensing, Llc Register read/write ordering
US10180840B2 (en) 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings
US10776115B2 (en) 2015-09-19 2020-09-15 Microsoft Technology Licensing, Llc Debug support for block-based processor
US10198263B2 (en) 2015-09-19 2019-02-05 Microsoft Technology Licensing, Llc Write nullification
US10678544B2 (en) 2015-09-19 2020-06-09 Microsoft Technology Licensing, Llc Initiating instruction block execution using a register access instruction
US10719321B2 (en) 2015-09-19 2020-07-21 Microsoft Technology Licensing, Llc Prefetching instruction blocks
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10936316B2 (en) 2015-09-19 2021-03-02 Microsoft Technology Licensing, Llc Dense read encoding for dataflow ISA
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11977891B2 (en) 2015-09-19 2024-05-07 Microsoft Technology Licensing, Llc Implicit program order
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
CN116340188B (zh) * 2023-05-26 2023-08-04 深流微智能科技(深圳)有限公司 Gpu芯片渲染任务的调试方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260104B1 (en) * 1998-06-30 2001-07-10 Micron Technology, Inc. Multiplexing of trim outputs on a trim bus to reduce die size
JP2001051957A (ja) * 1999-08-04 2001-02-23 Hitachi Ltd オンチップマルチプロセッサ
US20040006729A1 (en) * 2002-07-03 2004-01-08 Pendurkar Rajesh Y. Hierarchical test methodology for multi-core chips

Also Published As

Publication number Publication date
US20080065867A1 (en) 2008-03-13
JP2006003949A (ja) 2006-01-05
US7676669B2 (en) 2010-03-09
US20050289286A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
JP4296996B2 (ja) マルチコアプロセサ制御方式
TWI525537B (zh) 具有為向量衝突指令與置換指令所共享的全連接互連的處理器
US9323714B2 (en) Processing system with synchronization instruction
US20110072249A1 (en) Unanimous branch instructions in a parallel thread processor
US11749369B2 (en) Memory device architecture coupled to a system-on-chip
US8825922B2 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
JP2005309867A (ja) マルチコア・プロセサ試験方法
US8713262B2 (en) Managing a spinlock indicative of exclusive access to a system resource
US20090106533A1 (en) Data processing apparatus
US8645588B2 (en) Pipelined serial ring bus
US20140025930A1 (en) Multi-core processor sharing li cache and method of operating same
GB2394581A (en) Multi-port register file
JP2007148754A (ja) 半導体集積回路装置
KR20080096484A (ko) 데이터 통신
US20040236929A1 (en) Logic circuit and program for executing thereon
US8135960B2 (en) Multiprocessor electronic circuit including a plurality of processors and electronic data processing system
US20230011446A1 (en) Writeback Hazard Elimination
WO2019061227A1 (en) FIRST PRIMING WITH A MEMORY CHANNEL
US20100325389A1 (en) Microprocessor communications system
JP3861898B2 (ja) データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
KR19980058221A (ko) 파이프라인 정지회로를 구비한 프로세서
JP6602278B2 (ja) 半導体装置
KR102199342B1 (ko) 스토어 리플레이 정책
JP2010272066A (ja) ヘテロジニアスマルチコアプロセッサ
US10310012B2 (en) Lightweight, low overhead debug bus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080416

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: 20090324

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090406

R150 Certificate of patent or registration of utility model

Ref document number: 4296996

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees