JP2000267934A - キャッシュ・ミスのベンチマーク・テスト - Google Patents

キャッシュ・ミスのベンチマーク・テスト

Info

Publication number
JP2000267934A
JP2000267934A JP2000063092A JP2000063092A JP2000267934A JP 2000267934 A JP2000267934 A JP 2000267934A JP 2000063092 A JP2000063092 A JP 2000063092A JP 2000063092 A JP2000063092 A JP 2000063092A JP 2000267934 A JP2000267934 A JP 2000267934A
Authority
JP
Japan
Prior art keywords
cache
instruction
circuit
memory
address
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.)
Pending
Application number
JP2000063092A
Other languages
English (en)
Inventor
Gilbert Laurenti
ラウレンティ ジルベルト
Mark Buser
ブセル マーク
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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
Priority claimed from EP99400553A external-priority patent/EP0992905A3/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2000267934A publication Critical patent/JP2000267934A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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

  • Test And Diagnosis Of Digital Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】無線電話用や制御専用のプログラマブルDSP
の電力消費を低くしDSPアルゴリズムの実行の効率を
高める方法および装置を提供する。 【解決手段】ディジタル信号プロセッサは、可変命令長
で、コード密度が高く、プログラミングが容易であり、
構造および命令集合は、DSPアルゴリズムを低い電力
消費および高い効率で実行するように最適化される。単
一集積回路800上のメガセル内にキャッシュ814を
設けて命令アクセス時間を短縮する。メガセル内に性能
監視回路852を含み、選択された信号を監視してベン
チマーク事象を収集する。性能監視回路にはJTAGイ
ンターフェース850を介して問い合わせることができ
る。キャッシュから性能監視回路にキャッシュ・ミス信
号816を送って内部キャッシュの性能を決定する。メ
ガセル内のウインドウ回路824により、選択された実
行のウインドウの間にベンチマーク事象を収集する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本出願は、S.N.9940
0553.6、欧州において1999年3月8日出願、
およびS.N.98402455.4、欧州において1
998年10月6日出願(TI−28433EU)に対
して先順位をクレームする。
【0002】本発明は、ディジタル・マイクロプロセッ
サに関し、特に、ディジタル・マイクロプロセッサの性
能を監視することに関する。
【0003】
【従来の技術】マイクロプロセッサは、ソフトウエアを
実行するために大きい命令処理量を必要とするとともに
含まれる特定のソフトウエア・アプリケーションに従っ
て広範囲の処理要求を有することができる汎用プロセッ
サである。マイクロプロセッサ内部のキャッシュは、命
令アクセス時間を短縮させる。既知のマイクロプロセッ
サ・デバッグ環境は、特定のルーチンまたはコードを実
行するのに必要なサイクルまたは命令の量を決定するこ
とができるコード・プロファイリング機能を持つ。しか
し、マイクロプロセッサ内部のキャッシュを直接見るこ
とはできない。したがって、一般に、キャッシュ性能を
決めることはできない。
【0004】
【発明が解決しようとする課題】プロセッサには多くの
異なる種類があり、マイクロプロセッサはその1つに過
ぎない。例えば、ディジタル信号プロセッサ(DSP)
は、広く、特に移動体処理応用のような特定のアプリケ
ーションに用いられている。一般に、DSPは、関係す
るアプリケーションの性能を最適にするように構成され
ており、これを達成するために、専用の実行ユニットお
よび命令集合を用いる。特に、これに限定されるわけで
はないが、移動体電気通信のようなアプリケーションで
は、電力消費をできるだけ小さく保ちながらDSP性能
を向上させることが望まれる。
【0005】
【課題を解決するための手段】本発明の特定の好ましい
態様は、添付の独立および従属クレームに示されてい
る。従属クレームからの機能の組合せを独立クレームの
機能に適宜組み合わせてあり、必ずしもクレームに明示
的に示してはいない。本発明は、これに限定されるわけ
ではないが例えばディジタル信号プロセッサのようなプ
ロセッサの性能を向上させることに向けられている。
【0006】本発明の第1の態様によれば、高いコード
密度およびプログラミングの容易さを兼ね備えたマイク
ロプロセッサすなわちプログラマブル・ディジタル信号
プロセッサ(DSP)を提供する。構成(アーキテクチ
ャ)および命令集合は、電力消費を低くし、かつ、無線
電話や専用の制御タスク用のようなDSPアルゴリズム
の実行の効率を高めるように、最適化されている。マイ
クロプロセッサは、命令のシーケンスの第1の命令を復
号する命令バッファ・ユニットと、命令バッファ・ユニ
ットによって復号されるべき命令のシーケンスの第1の
命令を識別する第1の命令アドレスを与えるプログラム
・カウンタ回路とを有する。第1の命令のコピーを記憶
するキャッシュ回路は、プログラム・カウンタ回路に接
続され、また、命令バスにも接続されている。キャッシ
ュ回路は、プログラム・カウンタ回路からの第1の命令
アドレスに応じて第1の命令を命令バッファに与える
か、第1の命令がキャッシュに記憶されていない場合に
はミス信号を表明する。計数回路は、ミス信号が表明さ
れる度にベンチマーク事象をカウントする。監視点回路
は、計数回路に接続されて、計数回路を使用可能(イネ
ーブル)および使用禁止(ディスエーブル)にする。
【0007】本発明の別の態様によれば、計数回路は、
ベンチマーク事象としてカウントするために複数の性能
指標信号から選択する制御回路を含み、ここで、ミス信
号は複数の性能指標信号の1つである。本発明の別の態
様によれば、監視点回路は、プログラム・カウンタ回路
に接続されて、プログラム・カウンタ回路によって与え
られる第2の命令アドレスに応じて計数回路を使用可能
にする。
【0008】本発明の別の態様によれば、ディジタル装
置を操作する方法が提供される。マイクロプロセッサ
は、命令バッファ・ユニットによって復号されるべき命
令のシーケンスの第1の命令を識別する命令アドレスを
与え、第1の命令がキャッシュ回路にある場合にはキャ
ッシュ回路から第1の命令をアクセスし、第1の命令が
キャッシュ回路にない場合にはキャッシュ・ミス事象が
起こったことを示して別のメモリ回路から第1の命令を
アクセスし、命令バッファ・ユニットの命令のシーケン
スの第1の命令を復号することによって、命令のシーケ
ンスを実行する。命令アドレスを与えるステップ,アク
セスするステップおよび復号するステップが繰り返され
てキャッシュ・ミス事象のシーケンスを生成する。ベン
チマーク事象の選択された集合がカウントされてディジ
タル装置の性能の測度を決定するが、ここで、ベンチマ
ーク事象はキャッシュ・ミス事象である。
【0009】本発明の別の態様によれば、カウントする
ステップは、第1のデータ値に応じてカウントするステ
ップを開始するステップと、第2のデータ値に応じてカ
ウントするステップを停止するステップとを備え、ベン
チマーク事象の選択された集合が第1のデータ値の発生
と第2のデータ値の発生との間に起こるようにする。
【0010】本発明による特定の実施の形態について、
単なる例として添付の図面を参照して説明する。同じ参
照符号は同じ部品を指し、別に指定のない限り、各図面
は図1のプロセッサに関係する。
【0011】
【発明の実施の形態】本発明は、例えば特殊用途向け集
積回路(ASIC)内に実現されるディジタル信号プロ
セッサ(DSP)に特に用いられるが、他の種類のプロ
セッサにも用いられる。本発明によるプロセッサの一例
の基本的構成について以下に説明する。プロセッサ10
0は、可変命令長(8ビットから48ビット)のプログ
ラマブル固定小数点DSPコアであって、コード密度が
高くプログラミングが容易である。構成および命令集合
は、電力消費を低くし、かつ、無線電話や専用の制御タ
スク用のようなDSPアルゴリズムの実行の効率を高め
るように、最適化されている。プロセッサ100は、エ
ミュレーションおよびコード・デバッグの機能を含む。
【0012】図1は、本発明の一実施の形態によるディ
ジタル装置10の概略図である。ディジタル装置は、プ
ロセッサ100とプロセッサ・バックプレーン20とを
含む。本発明の特定の例では、ディジタル装置は、特殊
用途向け集積回路(ASIC)で実現されたディジタル
信号プロセッサ装置10である。簡単のために、図1
は、本発明の実施の形態を理解するのに必要なマイクロ
プロセッサ100のそれらの部分だけを示す。DSPの
一般的な構造の詳細は良く知られているので、別の文献
を参照していただきたい。例えば、Frederick Boutaud
らに発行された米国特許第5,072,418号はDS
Pについて詳細に説明しているので、ここに援用する。
Gary Swoboda らに発行された米国特許第5,329,
471号はDSPを試験しエミュレートする方法につい
て詳細に説明しているので、ここに援用する。マイクロ
プロセッサ技術の当業者が本発明を製作し使用すること
ができるように、本発明の一実施の形態に関するマイク
ロプロセッサ100の一部の詳細について以下に説明す
る。
【0013】本発明の態様の恩恵を被ることのできるい
くつかの例示の装置は、ここに援用した米国特許第5,
072,418号に、特に米国特許第5,072,41
8号の図2から図18を参照して述べられている。性能
を向上させコストを削減する本発明の態様を組み込んだ
マイクロプロセッサを用いれば、米国特許第5,07
2,418号に述べられた装置を更に改善することがで
きる。かかる装置は、これらに限定されるわけではない
が、工業的プロセス制御,自動車システム,モータ制
御,ロボット制御装置,衛星通信システム,エコー消去
装置,モデム,ビデオ映像装置,音声認識装置,暗号化
されたボコーダ・モデム装置などを含む。図1のマイク
ロプロセッサの種々の構造の特徴の説明および命令の完
全な集合の説明は、本出願人に譲渡された出願番号第0
9/410,977号(TI−28433)に述べられ
ているので、これをここに援用する。
【0014】図1に示すように、プロセッサ100は、
プロセッサ・コア102と、プロセッサ・コア102を
プロセッサ・コア102の外部にあるメモリ・ユニット
とインターフェースするメモリ・インターフェース・ユ
ニット104とを有する中央処理装置(CPU)を形成
する。プロセッサ・バックプレーン20は、プロセッサ
のメモリ管理ユニット104が接続されたバックプレー
ン・バス22を含む。バックプレーン・バス22には、
命令メモリ24,周辺装置26および外部インターフェ
ース28も接続されている。理解されるように、他の例
では、異なる構成および/または異なる技術を用いて本
発明を実現することができる。例えば、プロセッサ10
0は、プロセッサ・バックプレーン20をそこから分離
して、第1の集積回路を形成してもよい。例えば、プロ
セッサ100は、バックプレーン・バス22と周辺およ
び外部インターフェースとを支援するバックプレーン2
0から離してその上に取り付けたDSPであってもよ
い。例えば、プロセッサ100は、DSPではなくマイ
クロプロセッサでもよいし、また、ASIC技術以外の
技術で実現してもよい。このプロセッサまたはこのプロ
セッサを含むプロセッサを1つ以上の集積回路に実現し
てもよい。
【0015】図2は、プロセッサ・コア102の一実施
の形態の基本構造を示す。図示するように、プロセッサ
・コア102のこの実施の形態は、4つの要素、すなわ
ち、命令バッファ・ユニット(Iユニット)106と3
つの実行ユニットとを含む。実行ユニットは、プログラ
ム・フロー・ユニット(Pユニット)108と、アドレ
ス・データ・フロー・ユニット(Aユニット)110
と、命令バッファ・ユニット(Iユニット)106から
復号された命令を実行するとともにプログラム・フロー
を制御し監視するデータ計算ユニット(Dユニット)1
12とである。
【0016】図3は、プロセッサ・コア102のPユニ
ット108,Aユニット110およびDユニット112
をもっと詳細に示す図であり、また、プロセッサ・コア
102の種々の要素を接続するバス構造を示す。Pユニ
ット108は、例えば、ループ制御回路と、GoTo/
分岐制御回路と、反復カウンタ・レジスタや割込みマス
ク,フラグまたはベクトル・レジスタのようなプログラ
ム・フローを制御し監視する種々のレジスタとを含む。
Pユニット108は、汎用データ書込みバス(EB,F
B)130,132と、データ読取りバス(CB,D
B)134,136と、アドレス定数バス(KAB)1
42とに結合されている。また、Pユニット108は、
CSR,ACBおよびRGDとラベルされた種々のバス
を介してAユニット110およびDユニット112内の
サブユニットに結合されている。
【0017】図3に示すように、この実施の形態では、
Aユニット110はレジスタ・ファイル30とデータ・
アドレス生成サブユニット(DAGEN)32と算術・
論理演算ユニット(ALU)34とを含む。Aユニット
・レジスタ・ファイル30は種々のレジスタを含む。例
えば、16ビット・ポインタ・レジスタ(AR0〜AR
7)と、データ・フローおよびアドレス生成にも用いら
れるデータ・レジスタ(DR0〜DR3)とである。ま
た、レジスタ・ファイルは、16ビット循環バッファ・
レジスタと7ビットのデータ・ページ・レジスタとを含
む。汎用バス(EB,FB,CB,DB)130,13
2,134,136の他に、データ定数バス140およ
びアドレス定数バス142もAユニット・レジスタ・フ
ァイル30に結合されている。Aユニット・レジスタ・
ファイル30は、それぞれ逆方向に動作する一方向バス
144,146を介してAユニットDAGENユニット
32に結合されている。DAGENユニット32は、例
えば処理エンジン100内のアドレス生成を制御し監視
する16ビット・X/Yレジスタと係数/スタック・ポ
インタ・レジスタとを含む。
【0018】Aユニット110は、加算,減算およびA
ND,OR,XOR論理演算子のようなALUに一般に
関連する機能とともにシフタ機能を含むALU34も含
む。ALU34は、汎用バス(EB,DB)130,1
36および命令定数データ・バス(KDB)140にも
結合されている。AユニットALUは、PDAバスを介
してPユニット108に結合されて、Pユニット108
レジスタ・ファイルからレジスタ定数を受ける。ALU
34は、バスRGA,RGBを介してAユニット・レジ
スタ・ファイル30にも結合されて、アドレスおよびデ
ータ・レジスタの内容を受けるとともに、バスRGDを
介してレジスタ・ファイル30のアドレスおよびデータ
・レジスタの内容を転送する。
【0019】本発明の例示の実施の形態によれば、Dユ
ニット112は、Dユニット・レジスタ・ファイル36
と、DユニットALU38と、Dユニット・シフタ40
と、2つの乗算および累算ユニット(MAC1,MAC
2)42,44とを含む。Dユニット・レジスタ・ファ
イル36とDユニットALU38とDユニット・シフタ
40とはバス(EB,FB,CB,DB,KDB)13
0,132,134,136,140に結合され、ま
た、MACユニット42,44はバス(CB,DB,K
DB)134,136,140とデータ読取りバス(B
B)144とに結合されている。Dユニット・レジスタ
・ファイル36は、40ビット累算器(AC0〜AC
3)と16ビット遷移レジスタとを含む。Dユニット1
12は、40ビット累算器の他に、発信元レジスタまた
は宛先レジスタとしてAユニット110の16ビット・
ポインタおよびデータ・レジスタも用いる。Dユニット
・レジスタ・ファイル36は、累積器書込みバス(AC
W0,ACW1)146,148を介してDユニットA
LU38とMAC1 42とMAC2 44とからデー
タを受け、また、累積器書込みバス(ACW1)148
を介してDユニット・シフタ40からデータを受ける。
データは、Dユニット・レジスタ・ファイル累積器から
累積器読取りバス(ACR0,ACR1)150,15
2を介してDユニットALU38,Dユニット・シフタ
40,MAC1 42およびMAC2 44に読み取ら
れる。DユニットALU38およびDユニット・シフタ
40は、EFC,DRB,DR2およびACBとラベル
された種々のバスを介してAユニット108のサブユニ
ットにも結合されている。
【0020】図4を参照すると、32語の命令バッファ
待ち行列(IBQ)502を含む本発明による命令バッ
ファ・ユニット106が示されている。IBQ502
は、8ビット・バイト506に論理的に分割された32
×16ビットのレジスタ504を含む。命令は、32ビ
ットのプログラム・バス(PB)122を介してIBQ
502に到着する。命令は、ローカル書込みプログラム
・カウンタ(LWPC)532によって指し示される位
置に32ビット・サイクルで取り出される。LWPC5
32は、Pユニット108にあるレジスタに含まれてい
る。Pユニット108も、ローカル読取りプログラム・
カウンタ(LRPC)536レジスタと、書込みプログ
ラム・カウンタ(WPC)530レジスタと、読取りプ
ログラム・カウンタ(RPC)534レジスタとを含
む。LRPC536は、命令デコーダ512,514に
ロードされるべき次の命令のIBQ502内の位置を指
し示す。すなわち、LRPC536は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指し示す。WPCは、プログラム・メ
モリにおけるパイプライン用の次の4バイトの命令コー
ドの開始アドレスを指し示す。IBQに取り出す度に、
プログラム・メモリからの次の4バイトが命令境界に関
わらず取り出される。RPC534は、デコーダ512
/514に現在ディスパッチされている命令のプログラ
ム・メモリのアドレスを指し示す。
【0021】この実施の形態では、命令は、48ビット
語で形成され、マルチプレクサ520,521を介して
48ビットのバス516により命令デコーダ512,5
14にロードされる。当業者には明らかなように、命令
は48ビット以外で構成された語に形成されてもよく、
本発明は上述した特定の実施の形態に限定されるもので
はない。
【0022】現在好ましいとされる48ビット語サイズ
に対して、バス516は、並列に実行される任意の1命
令サイクル中に最大2命令(デコーダ当たり1命令)を
ロードすることができる。命令の組合せは、48ビット
のバスに適合する任意の書式(8,16,24,32,
40および48ビット)の組合せでよい。1サイクル中
に1命令だけをロードする場合は、デコーダ2 514
よりデコーダ1 512の方を優先してロードする。次
に、各命令が、それらを実行するとともに、命令または
操作が実行されるべきデータをアクセスするために、各
機能ユニットに送られる。命令デコーダに渡される前
に、命令はバイト境界上で整列される。整列は、その復
号中に前の命令に対して得られた書式に基づいて行われ
る。バイト境界との命令の整列に関連する多重化はマル
チプレクサ520,521で行われる。
【0023】2つの命令の一方が並列イネーブル・ビッ
トを持つ場合は、2つの命令を並列に入れることができ
る。かかる種類の並列方式を支援するハードウエアを並
列イネーブル機構と呼ぶ。同様に、2つの命令が両方と
も間接モードで単一データ・メモリ・アクセス(Sme
mまたはdbl(lmem))を行う場合は、2つの命
令を並列に入れることができる。かかる種類の並列方式
を支援するハードウエアをソフト二重機構と呼ぶ。
【0024】プロセッサ・コア102は7段階のパイプ
ラインにより命令を実行する。その各段階について、表
1と図5を参照して以下に説明する。どこ(Aユニット
かDユニット)で実行するかに関わらず、7段階のパイ
プラインによりプロセッサ命令を実行する。本発明の一
態様によれば、プログラム・コード・サイズを小さくす
るために、CコンパイラはAユニットでの実行のために
できるだけ多くの命令をディスパッチするので、Dユニ
ットは、電力を節約するために電源を切られてもよい。
このため、Aユニットは、メモリ・オペランドで実行さ
れる基本的動作を支援する必要がある。
【0025】
【表1】
【0026】パイプラインの第1段階は、事前取出し
(P0)段階202であり、この段階中では、メモリ・
インターフェース104のアドレス・バス(PAB)1
18上にアドレスを表明することによって、次のプログ
ラム・メモリ位置がアドレスされる。次の段階の取出し
(P1)段階204では、プログラム・メモリが読み取
られ、メモリ・インターフェース・ユニット104から
PBバス122を介してIユニット106が満たされ
る。事前取出しおよび取出し段階は、他のパイプライン
段階から切り離されており、事前取出しおよび取出し段
階中はパイプラインに割り込んで、連続したプログラム
・フローを中断するとともに、プログラム・メモリ内の
別の命令(例えば、分岐命令)を指し示すことができ
る。
【0027】次に、第3段階の復号(P2)段階206
では、命令バッファ内の次の命令がデコーダ512/5
14にディスパッチされ、命令が復号されるとともにそ
の命令を実行する実行ユニット(例えば、Pユニット1
08,Aユニット110またはDユニット112)にデ
ィスパッチされる。復号段階206は、命令の種類を示
す第1の部分と命令の書式を示す第2の部分と命令用の
アドレス指定モードを示す第3の部分とを含む命令の少
なくとも一部を復号することを含む。次の段階はアドレ
ス(P3)段階208であり、そこでは、命令で用いら
れるべきデータのアドレスが計算されるか、命令がプロ
グラムの分岐またはジャンプを必要とする場合は新しい
プログラム・アドレスが計算される。各計算はAユニッ
ト110またはPユニット108でそれぞれ行う。
【0028】アクセス(P4)段階210では、読取り
オペランドのアドレスが生成され、また、そのアドレス
がYmem間接アドレス指定モードでDAGEN Yオ
ペレータで生成されているメモリ・オペランドが、間接
的にアドレスされたYメモリ(Ymem)から読み取ら
れる。パイプラインの次の段階は、そのアドレスがXm
em間接アドレス指定モードでDAGEN X内でまた
は係数アドレス・モードでDAGEN Cオペレータで
生成されているメモリ・オペランドが読み取られる読取
り(P5)段階212である。命令の結果が書き込まれ
るべきメモリ位置のアドレスが生成される。
【0029】最後は、Aユニット110またはDユニッ
ト112のいずれかで命令が実行される実行(P6)段
階214である。次に、その結果がデータ・レジスタす
なわち累算器に記憶されるか、読取り/変更/書込み命
令用のメモリに書き込まれる。更に、シフト操作が、実
行段階中に累算器でデータについて行われる。プロセッ
サ100のパイプラインは保護されている。これによ
り、NOP命令が待ち時間の要求を満たすために挿入さ
れる必要がなくなるので、Cコンパイラ性能が大幅に向
上する。また、これにより、前の生成プロセッサから後
の生成プロセッサへのコード変換が非常に容易になる。
【0030】プロセッサ100で用いられるパイプライ
ン保護の基本的規則は、次の通りである。実行中の読取
りアクセスが終了する前に書込みアクセスが開始され、
かつ、両方のアクセスが同じ資源を共用する場合は、追
加のサイクルが挿入されて、書込みを完了させ、更新さ
れたオペランドで次の命令を実行することができるよう
にするが、エミュレーションについては、単一ステップ
・コード実行がフリーランニング・コード実行と全く同
様に行われなければならない。
【0031】パイプライン・プロセッサの動作の基本的
原理について、図5を参照して以下に説明する。図5か
ら分かるように、第1の命令302では、連続するパイ
プライン段階が時間T1〜T7の間に実行される。各時間
は、プロセッサ・マシン・クロックの1クロック・サイ
クルである。第2の命令304は、時間T2にパイプラ
インに入ることができる。なぜなら、前の命令はすでに
次のパイプライン段階に移っているからである。命令3
(306)では、事前取出し段階202が時間T3に起
こる。図5から分かるように、第7段階のパイプライン
では、7命令全部を同時に処理することができる。7つ
の命令302〜314全部に対して、図5は、時間T7
で処理中であるそれらすべてを示す。このような構造
は、命令の処理に並列形式を付加する。
【0032】図6に示すように、本発明のこの実施の形
態は、24ビットのアドレス・バス118および32ビ
ットの双方向データ・バス120を介して外部プログラ
ム記憶ユニット150に結合されているメモリ・インタ
ーフェース・ユニット104を含む。また、メモリ・イ
ンターフェース・ユニット104は、24ビットのアド
レス・バス114および双方向の16ビットのデータ・
バス116を介してデータ記憶ユニット151に結合さ
れている。メモリ・インターフェース・ユニット104
は、32ビットのプログラム読取りバス(PB)122
を介してマシン・プロセッサ・コア102のIユニット
106にも結合されている。Pユニット108,Aユニ
ット110およびDユニット112は、データ読取りお
よびデータ書込みバスとこれに対応するアドレスバスと
を介してメモリ・インターフェース・ユニット104に
結合されている。Pユニット108はプログラム・アド
レス・バス128に更に結合されている。
【0033】より詳しく述べると、Pユニット108
は、24ビットのプログラム・アドレス・バス128と
2つの16ビットのデータ書込みバス(EB,FB)1
30,132と2つの16ビットのデータ読取りバス
(CB,DB)134,136とを介してメモリ・イン
ターフェース・ユニット104に結合されている。Aユ
ニット110は、2つの24ビットのデータ書込みアド
レス・バス(EAB,FAB)160,162と2つの
16ビットのデータ書込みバス(EB,FB)130,
132と3つのデータ読取りアドレス・バス(BAB,
CAB,DAB)164,166,168と2つの16
ビットのデータ読取りバス(CB,DB)134,13
6とを介してメモリ・インターフェース・ユニット10
4に結合されている。Dユニット112は、2つのデー
タ書込みバス(EB,FB)130,132と3つのデ
ータ読取りバス(BB,CB,DB)144,134,
136とを介してメモリ・インターフェース・ユニット
104に結合されている。
【0034】図6は、124でIユニット106からP
ユニット108への命令の受け渡し、例えば分岐命令を
送ることを表す。また、図6は、126および128で
Iユニット106からAユニット110およびDユニッ
ト112へのデータの受け渡しを表す。
【0035】図7に示すように、プロセッサ100は統
一プログラム/データ空間の周りに組織化されている。
プログラム・ポインタは、内部では24ビットであっ
て、バイトアドレス指定機能を持つが、プログラムの取
出しが常に32ビット境界で行われるので22ビットの
アドレスだけがメモリに送られる。しかし、例えばソフ
トウエア開発のためのエミュレーション中は、ハードウ
エア区切り点を実現するために全24ビットのアドレス
が与えられる。データ・ポインタは7ビットの主データ
・ページで拡張された16ビットであり、語アドレス指
定機能を有する。
【0036】ソフトウエアは最大3主データ・ページを
次のように定義する。 ・MDP 直接アクセス 間接アクセス CDP ・MDP05 − 間接アクセス AR[0〜5] ・MDP67 − 間接アクセス AR[6〜7] スタックは、維持されて、主データ・ページ0に常駐す
る。CPUメモリ・マップ・レジスタは全てのページか
ら見える。プロセッサ100の種々の態様を表2に要約
する。
【0037】
【表2】
【0038】図8は、本発明の種々の態様による、プロ
セッサ100を有するとともにベンチマーク回路852
に関連するディジタル装置を示すブロック図である。こ
の実施の形態では、いくつかの個々のASIC構成要素
セルが組み合わされて単一集積回路上にメガセル800
を形成する。プロセッサ100はメモリ・インターフェ
ース810に接続されている。命令は、キャッシュ81
4から、内部メモリ812から、または、外部メモリ・
インターフェース802を介して外部メモリ830から
得られる。プログラム取出しアドレス・バス820は、
RPC534(図4参照)に応じてキャッシュ814ま
たはメモリ812,830にプログラム・カウンタ・ア
ドレスを与える。キャッシュ・ミスが起こると、キャッ
シュはバス815を介して外部メモリ830にプログラ
ム取出しを要求する。この場合、命令データはバス80
8を介してプロセッサ・コア102に与えられ、また、
キャッシュはバス809を介して更新される。
【0039】本発明の一態様によれば、キャッシュ・ミ
ス信号816がベンチマーク回路852に与えられるの
で、選択された時間内の各キャッシュ・ミスはベンチマ
ーク事象としてカウントされる。ハードウエア区切り点
/ウインドウ点回路824は、アドレス・バス820を
監視し、予め選択されたアドレスまたはアドレス範囲が
検出されるとウインドウ信号825をベンチマーク回路
852に送る。エミュレーション回路851は、JTA
G試験ポート850を介してメガセル800内の種々の
構成要素にアクセスすることができる。メモリ読取りお
よび書込み要求は、プロセッサ・コア102に要求を送
ることによってエミュレーション・バス853を介して
エミュレーション回路により行われる。
【0040】エミュレーション回路851は、デバッグ
および試験直接メモリ・アクセス(DT−DMA)機構
を介して、直接CPUから介入を受けずに共通デバッグ
・アクセス(メモリおよびレジスタの読取りおよび書込
み)を行う。これらのアクセスはCPU時間に侵入する
ので、状態/制御レジスタ1(ST1)内のあるビット
をセットすることによってデバッグ・モード(DBG
M)を動作禁止にしてオプション的に妨げることができ
る。これは、後で説明するように、デバッガ・ソフトウ
エアを用いてオーバーライドされる。通常のデバッガ動
作の下では、DT−DMAアクセスが用いるCPU時間
は極くわずかである。例えば、デバッガ・スクリーンは
アクセスする1,000メモリ語を含み、スクリーンは
毎秒10回更新されるとする。デバッガは毎秒10,0
00DT−DMAアクセスを行う。各DT−DMAアク
セスはCPU時間の1サイクルかかるものとし(これは
非常に単純化した推定である)、CPUは100MIP
(サイクルあたり10ns)で実行しているとする。デ
バッグ・オーバーヘッドは0.01%であろう(DT−
DMAアクセスが数サイクルかかる場合は、その数に
0.01%を掛ければオーバーヘッド速度が得られ
る)。
【0041】理解されるように、デバッガ・スクリーン
上に示される情報はターゲットから異なる時間に集めら
れるので、ターゲット状態のスナップショットではなく
複合を表す。また、データを処理して表示するにはホス
ト時間かかるので、表示は、現在のターゲット状態では
なく、数ミリ秒前のターゲット状態に対応する。
【0042】試験ホストからメモリ・マップ周辺レジス
タへのアクセスもDT−DMA機構を介して行われる。
DT−DMA機構はCPUと同じメモリ・アクセス機構
を用いるので、CPUが単一動作で行うことができる任
意の読取りまたは書込みアクセスは、DT−DMAメモ
リ・アクセスを介して行うことができる。DT−DMA
機構は、バス853を介したCPUへのアドレス(書込
みの場合はデータ)を与え、オープン・バス・サイクル
・スロット中にその動作を行うであろう。CPUが所望
のデータを得ると、これはDT−DMA機構に戻され
る。
【0043】DT−DMA機構は、優先モードまたは非
優先モードのいずれかで動作する。非優先モードでは、
DT−DMA機構は、所望のメモリ・バスが未使用にな
るのを1サイクル間待ち(ホールと呼ぶ)、その後で、
DT−DMAはこれを用いて読取りまたは書込み動作を
行う。もちろん、これらのメモリ・ホールは、CPUが
実行中に(例えば、新しく取り出されたデータを待って
いるときか、パイプライン保護サイクル中に)起こる。
プログラム・メモリ・ホールは、取出し待ち行列が一杯
のときに分岐のない命令がいくつか連続すると起こる。
優先モードでは、空白がパイプラインの10進段階(de
cade stage)内に押し込まれて、本質的にホールを作
る。待ちゼロ状態のメモリへの非優先的アクセスはCP
Uのサイクルを奪わない。待ち状態のメモリにアクセス
する場合は、各待ち状態の間はパイプラインは機能を停
止する。これは、通常のメモリ・アクセスを行うと機能
停止CPUレジスタに常に優先的にアクセスしなければ
ならないのと同様である。また、デバッグ・ソフトウエ
アがDT−DMA機構を用いていくつかの命令をパイプ
ラインに押し込むこともできる。これは優先的に行われ
なければならない。
【0044】JTAGインターフェース850は、IE
EE1149.1,1990,「標準試験アクセス・ポ
ートおよび境界走査構造」の構造を改善したものであ
る。ここに用いられているIEEE1149.1に関す
る用語および概念は、このIEEE標準で詳しく説明さ
れている。
【0045】IEEE1149.1標準は、システム内
に埋め込まれた1つ以上の装置を選択することのできる
通信プロトコルを提供する。このプロトコルは、オンチ
ップ・デバッグおよび試験機能を制御するのに必要なプ
リミティブを実現する。本発明のJTAGデバッグ・イ
ンターフェース850は、標準IEEEインターフェー
スの5つの端末バージョン(nTRST,TCK,TM
S,TDI,TDO)に2つの付加端末(nET1,n
ET0)を追加する。nTRSTをデバッグ・インター
フェース定義に含めると、システム設計が簡単になる。
その理由は、ローに保持されたとき、この端末はシステ
ム内の各デバイスの試験およびデバッグ論理に対して非
同期リセットを生成するからである。これにより、通常
のシステム動作が保証される。また、これにより、シス
テムは連続的に実行するTCKを持つ必要がなくなる。
【0046】エミュレーション回路851は、標準IE
EEインターフェースを拡張したハードウエアを含み、
より高度のデバッグおよび製造テスト機能を有する。I
EEE標準はボードまたは装置レベルの相互接続を試験
することを目的としているが、その機能性を拡張する
と、更に多くのことを行うことができる。基本的なIE
EE機能に、次の4つの大きな拡張を加える。すなわ
ち、デバッグ機能と、多重走査技術と、2つの追加端末
によるトリガ・チャンネルと、拡張された動作モード
(EOM)とである。以下の各節に、これら4つの拡張
をそれぞれ簡単に説明する。
【0047】デバッグ機能 開発ツールは、デバッグ・
インターフェースを用いてアプリケーション・プログラ
ムの実行フローを制御し、また、CPUレジスタ,周辺
レジスタおよびシステム・メモリを見て修正する。組込
みデバッグ機能は、停止モードおよび実時間デバッグ環
境の両方を提供する。IEEEインターフェース・プリ
ミティブズで管理される専用ハードウエアは、これらの
デバッグ・モードの両方の実行を制御する。停止モード
・デバッグ機能は、プログラムの任意の点の任意の命令
の後でプログラム実行を停止させることができる。これ
により、すべてのプログラムの実行を正確に制御し、ま
た、開発ツールによるシステム資源の使用を最小にする
ことができる。実時間デバッグ機能は、時間的に厳しい
(割込みによる)部分をデバッグ活動から分離する。ア
プリケーションのこれらの部分は常に実行されるが、ア
プリケーションの残りの(時間的に余り厳しくない)部
分は従来の方法でデバッグされる。実時間および停止モ
ード・デバッグでは、プログラムの実行は次の場合に停
止する。すなわち、単一命令が実行されたのち、区切り
点として識別される命令を実行する前に、特定のデータ
・アクセス(読取りまたは書込み)ののち、または、非
同期外部要求によってである。
【0048】他の走査技術へのアクセス 種々のシステ
ム設計は、IEEEや専有の走査構造のような多重走査
技術を含んでもよい。なぜなら、それぞれが異なる技術
的利点を持つからである。標準のIEEE命令走査,デ
ータ走査および2つ以上の技術のランテストである。I
EEEと他の走査技術との間の橋渡しのために、ハード
ウエアが装置に追加される。
【0049】可視性とトリガ IEEE標準は、内部チ
ップ活動の並列観測、または、ある試験およびエミュレ
ーション機能性に必要なチップ活動の並列シミュレーシ
ョンを支援しない。この欠点に対処するため、デバッグ
・インターフェースに2つの追加端末(nET1および
nET0)を加える。これらの端末は、内部デバイス事
象をエクスポートし、外部デバッグおよび試験事象をイ
ンポートする1つの方法である。
【0050】拡張された動作モード 製造テスト,歩留
り分析,デバイス構成要素とターゲットシステム・ハー
ドウエアおよびソフトウエア・デバッグの特徴決定に
は、種々のデバイス動作モードを実現する必要がある。
試験モード選択は、間接(走査シーケンス)および直接
(並列のデバイス端末移行)いう2つの方法の一方を含
む。メモリ試験モードは、一般に、直接選択法を用い
る。これらの試験は、メモリ・アレイまたはメモリに直
接アクセスし、走査を支援しないメモリ・テスタを用い
てもよい。CPUコア試験は間接法を用いる。テスタ
は、走査してCPUコア試験をロードし、それらを実行
するのに必要な試験モードを指定する。デバイス上の多
重走査可能なメガ・モジュール(すなわち、2つのプロ
セッサ)を試験するには、一度に1つのメガ・モジュー
ルを選択して試験する必要がある。この要求は、すべて
のモジュール試験環境においてモジュール試験パターン
の集合を変更せずに用いる必要から生じた。
【0051】XDS−524エミュレーション装置(テ
キサス・インスツルメンツ社製)のような外部の試験ホ
スト装置870は、7ピンのJTAGインターフェース
850に接続されて、エミュレーション制御851を制
御することができる。また、図8のブリッジ860は、
データ・バス861に接続され、データ・バスRbus
862をバッファする。周辺装置863,864は、R
bus862に接続される種々の周辺装置を表す。Rb
us862は、その中のレジスタにメモリ・マップ・ア
クセスを与えるためにエミュレーション回路851およ
びキャッシュ回路814にも接続される。表3は、本発
明のこの実施の形態を理解するのに適した、プロセッサ
・コア102内のメモリ・マップ・レジスタのリストで
ある。これらのレジスタについては次の節で詳細に説明
する。プロセッサ・コア102は、種々の制御,状態お
よび操作タスクに用いられる多数の他のメモリ・マップ
・レジスタも有する。
【0052】
【表3】
【0053】表4は、状態/制御レジスタST3のビッ
ト割付けの概要である。
【0054】
【表4】
【0055】図9は、図8のベンチマーク回路852を
示すブロック図である。ベンチマーク・カウンタ910
は、多数のエミュレーション事象(ベンチマーク事象と
も呼ぶ)をカウントする機能を持つ。セレクタ920
は、キャッシュ・ミス信号816を含むいつかの事象信
号921a〜921nの中からカウントすべき特定の種
類の事象を選択する。入力選択レジスタ930は、どの
事象信号が選択されるかを制御する。ベンチマーク・カ
ウンタ入力は、CPUクロックに同期し、発生毎に1サ
イクル間活動状態にある。ベンチマーク・カウンタは、
エミュレーション・サイクルを含みまたは含まないCP
Uクロック・サイクル(または、他の入力)をカウント
するように設計される。ベンチマーク・カウンタは、エ
ミュレーション事象(例えば、ハードウエア区切り点H
WBPおよびハードウエア監視点HWWP)をカウント
するように設計される。表5は、ベンチマーク・カウン
タ910によってカウントされることのできる種々のベ
ンチマーク事象をリストする。このリストはすべてを網
羅したものではなく、他の実施の形態は本発明の種々の
態様内で他のベンチマーク事象を含んでもよい。
【0056】
【表5】
【0057】ベンチマーク・カウンタは設計可能であ
り、その動作は制御レジスタ940によって制御され
る。各レジスタは、メモリ・マップ・レジスタとして、
Rbus862を介してアクセスされ得る。プロセッサ
・コア102でのソフトウエアの実行を監視することに
より、ベンチマーク回路を設計して、その結果を直接監
視することができる。または、外部の試験装置からJT
AGインターフェース850を介してDT−DMA読取
りおよび書込み要求をプロセッサ・コア102に送り、
ベンチマーク回路を設計して、その結果を遠隔で監視す
ることができる。ベンチマーク・カウンタ910は、4
0ビットのベンチマーク・カウンタ、32ビットのベン
チマーク・カウンタ、または、2つの16ビットのベン
チマーク・カウンタとして設計されてもよい。各カウン
タ構成は互いに排他的である。すなわち、32ビット・
カウンタおよび16ビット・カウンタを同時に用いるこ
とはできない。例えば、40ビットのサイクル・カウン
トと16ビットのキャッシュ・ミス・カウントを行うに
は、2度に分けて行うようにカウンタを構成して評価す
るコードを実行する必要がある。キャッシュ・ミス信号
816は、キャッシュ・ミス事象毎にキャッシュ814
によって表明される。ベンチマーク・カウンタは、キャ
ッシュ・ミス発生をカウントするように設計される。こ
れは、キャッシュ・ミスの期間(サイクル)ではなく、
キャッシュ・ミス事象の数である。
【0058】図10は、区切り点/ウインドウ回路82
4を示すブロック図である。このブロックは、2つの同
時の区切り点、2つの同時の監視点、または、1つの区
切り点および1つの監視点を支援するのに十分な論理を
含む。基準レジスタ1020は、第1の命令アドレスに
対応する第1のデータ値でロードされる。マスク・レジ
スタ1021は、レジスタ1021の一部を任意に無視
するマスク値でロードされる。得られた値はプログラム
・アドレス・バス820の値と比較器1022によって
比較されて、一致信号1023を生成する。同様に、基
準レジスタ1030は、第2の命令アドレスに対応する
第2のデータ値でロードされる。マスク・レジスタ10
31は、レジスタ1031の一部を任意に無視するマス
ク値でロードされる。得られた値はプログラム・アドレ
ス・バス820の値と比較器1032によって比較され
て、一致信号1033を生成する。2つの監視点として
設計したときは、2つのトランザクションが同時に一致
するか、シーケンスで(他のものが続く最初のもの)一
致するか、独立に動作する(それぞれが自分の一致指示
を出す)場合にのみ一致する一致出力信号825を出す
ように、制御回路1010を設計することができる。
【0059】図8を再び参照して、キャッシュ814に
ついて以下に詳細に説明する。本明細書では次の定義を
用いる。 ・キャッシュ語 − プロセッサは1語を16ビット・
エンティティとして定義する。 ・キャッシュ・ライン − キャッシュ・メモリは32
ビット幅として編成される。したがって、これらの32
ビット・エンティティは、2語を含み、キャッシュ・ラ
インと呼ばれる。 ・キャッシュ・ブロック − キャッシュ・ブロックは
メモリの4*32ビット領域(すなわち、4ライン)で
あって、これに関連する1つのタグおよび4つの妥当性
ビット(キャッシュ・ライン当たり1妥当性ビット)を
有する。
【0060】DSPプロセッサによって必要とされる高
い性能は、高度に最適化されたデータと、高いデータお
よび命令処理量用のプログラム・フローとを必要とす
る。この基礎となるのはメモリ階層である。DSP処理
装置の能力を十分活用するために、メモリ階層は、関連
するCPU装置をいつも忙しく働かせるのに十分な高速
でデータを読み取ったり書き込み、また、命令を読み取
らなければならない。
【0061】アプリケーション要求を満足するには、D
SPプロセッサ・メモリ階層は、低コスト,適応性およ
び高性能という相反する目標を満足させなければならな
い。プロセッサの最も重要な機能の1つは、外部メモリ
830(例えば、フラッシュ・メモリ)のような遅いプ
ログラム・メモリとインターフェースすることができる
ことである。しかし、DSP実行は、命令の取出しに高
い帯域幅を必要とする。内部メモリ812からのDSP
コードを実行することはできるが、これはその実行前に
全ソフトウエアのダウンロードを必要とする。したがっ
て、キャッシュ・メモリは、プロセッサとその主メモリ
との間の高速補助メモリであって、DSPプログラム・
バス上にあり、最後に用いられた命令(および/または
データ)のコピーが書き込まれていて高速で(再)アク
セスすることができるが、プログラム・アクセスおよび
補充管理の速度のトレードオフにはキャッシュ・メモリ
が最も優れている。
【0062】キャッシュは、プログラム局所性または参
照の局所性の原理から、システムの全体性能を向上させ
る。プログラムがメモリを完全にランダムにアクセスす
る場合には、キャッシュは使えない。キャッシュの構造
を評価するには、統計的最適化を行う必要がある。キャ
ッシュ構造は、あるプログラムには非常によいが、別の
プログラムには非常に悪い。したがって、実際の原型に
ついてシミュレーションを行い性能を調べることが非常
に大切である。
【0063】キャッシュは、一般に、非常に効率的な典
型的なメモリアクセス時間を与えるが、最大メモリ・ア
クセス時間は増える。これは実時間動作では問題にな
る。したがって、メモリ・アクセス・ミスに関するクロ
ック期間のロスの回数を最適にすることが重要であろ
う。一般的なキャッシュ構造の性能は次の要因で決ま
る。 ・キャッシュ・メモリ速度 ・主メモリ速度 ・キャッシュ・サイズ ・キャッシュ・ブロック・サイズ ・キャッシュ編成 ・キャッシュ置換アルゴリズム ・キャッシュ取出し方式 ・キャッシュ読取り方式 ・キャッシュ書込み方式 ・キャッシュ一貫性方式。
【0064】この実施の形態のキャッシュ814は「読
取り専用」命令キャッシュであるので、最後の2項目は
無視してもよい。しかし、他の実施の形態では、別の種
類のキャッシュを用いてもよい。無線電話応用用のDS
Pソフトウエアの一部についていくつかの分析を行った
結果、キャッシュ・サイズが比較的小さくて構造が簡単
なものが効率的であることが分かった。したがって、こ
の実施の形態では、特性を次のように定義する。 キャッシュ・サイズ:16ビットの2K語 ブロック当たり8語(8×16ビット) ブロック当たり4妥当性ビット(キャッシュ・ライン当
たり1つ) キャッシュの種類:直接マップ型 ルックスルー読取り方式。
【0065】図11は、キャッシュのブロック図であ
る。キャッシュ814は、メモリ・コア1110とコン
トローラ1120とからなる。プログラム空間はプロセ
ッサにおいて4バイト境界に整列された4バイト(2
語)としてアドレスすることができ、また、サイクル毎
に4バイト(2語)を取り出すので、すべての読取りお
よび書込みアクセスについてプログラム・メモリ・コア
を32ビット語のバンクとして編成することができる。
キャッシュは、CPUからの命令の任意の要求がキャッ
シュによって処理され得るかどうか、または、命令の新
しいブロックが外部メモリから補充される必要があるか
どうかを調べる。これを行うため、キャッシュ・コント
ローラは、フラグに関連するアドレス・タグのバッファ
・メモリ1130を管理して、キャッシュ内容が有効か
どうかを示す。
【0066】前に説明したように、プロセッサは、キャ
ッシュ設計に関係する最初の4段階(事前取出し,取出
し,復号およびアドレス段階)を有する6段階のパイプ
ラインを持つ。事前取出しサイクルでは、IBUはアド
レスと要求信号とを生成する。アドレスはMIFブロッ
クで復号され、関連するモジュール要求が得られて各モ
ジュールに送られる。キャッシュは、MIFブロックか
ら要求を受けると、CPUによって生成されたアドレス
(プログラム・カウンタの値)をラッチする。次に、そ
れは、アドレスのlsbsをそれのデータRAMおよび
それのアドレスRAMへのアドレス(タグ値および妥当
性ビットを含む)として並列に用いる。CPUから受け
取ったアドレスのmsbsがアドレスRAM内の関係位
置から読み取ったmsbsと一致し、かつ、妥当性ビッ
トがセットされている場合は、データRAMから読み取
った該当するデータとともに取出しサイクルでのレディ
信号を返すことによって、プロセッサにヒットを知らせ
る。
【0067】IBUから受け取ったアドレスのmsbs
がアドレスRAM内の関係位置から読み取ったmsbs
と一致しないか、妥当性ビットがセットされていない場
合には、取出しサイクルでレディを非活動状態に保って
プロセッサにミスの発生を知らせ、また、外部要求と要
求されたアドレスとが外部プログラム・メモリを読み取
るためにMMIインターフェースに送られる。本発明の
一態様によれば、ミス信号816も表明されてベンチマ
ーク回路851に送られるので、ミス事象をベンチマー
ク事象としてカウントすることができる。要求されたデ
ータとともにレディをMMIが返すと、データはキャッ
シュ・データ・メモリにラッチされ、要求されたアドレ
スのmsbsは同じメモリ領域内の関係する妥当性ビッ
トの設定とともにアドレス・メモリにラッチされる。同
じサイクル内で、データをレディとともにCPUに送り
返すこともできる。
【0068】図12は、語を順に取り出す方式を用いて
キャッシュの中の命令フローを強調する直接マップ・キ
ャッシュの詳細なブロック図を示すが、試験および制御
インターフェース・ポートは示していない。前の節の初
めに述べたように、キャッシュ構造にはキャッシュの性
能を決定するいくつかの要因がある。これについてこの
節でもう少し深く検討する。対処すべき主な問題はシス
テム性能であって、プロセッサへの命令フローはできる
だけ高レベルに保持して、できるだけ頻繁に(すなわ
ち、機能停止を最小にして)自由に実行できるようにし
なければならない。このため、冗長なデータをキャッシ
ュにできるだけ取り込まないようにし、また、外部取出
し用のペナルティも最小に止めるべきである。
【0069】フラッシュ・メモリのコストは今のところ
かなり高く、セルラ電話などに用いるDSPプロセッサ
を選択するときはコード・サイズが最も重要な評価基準
の1つになることを正当付ける。したがって、プロセッ
サはコード・サイズに関して最適化され、また、多くの
構造は、一般のアプリケーション用のコード・サイズが
業界の標準プロセッサより小さくなるように決定されて
いた。このため、可変長命令が用いられ、また、コード
はコンパクトであり、その結果、命令の位置合わせは行
われない。コードがどの境界にも合っていない呼出しや
分岐にも、位置合わせは行われない。しかし、x86プ
ロセッサでは呼出し/分岐コードをキャッシュ・ブロッ
ク境界に合わせている。これは、呼出し/分岐が発生す
ると、プロセッサはキャッシュ・ブロックの中央からコ
ードをアクセスすることを意味する。これらの条件は、
主として、キャッシュの取出し方式に影響を与える。一
般的なセルラ電話応用からDSPコードを分析した結
果、ほとんどのコード・ルーチンが1K語のプログラム
・メモリ内に収まることが分かったので、キャッシュ・
サイズを2K語に定めた。
【0070】制御コードでは、4命令毎に分岐が発生す
る(一般的な業界の数字)ことが多く、また、DSPア
ルゴリズム・コードでは、8サイクル毎に呼出しまたは
分岐が発生することが多い(注:これは「C」コンパイ
ラで作成されたコードの場合である。アセンブラ・コー
ドの場合は、分岐/呼出しの発生はこれより少ない)。
このことから、また、最初の分析から、キャッシュ内の
ブロックのサイズは8キャッシュ語(16バイト)にセ
ットされた。これは、フラッシュのような外部インター
フェースへのアクセスと、かかる装置に外部インターフ
ェースでアクセスする調停と、コード内の呼出しおよび
分岐により使われない命令を無駄に取り出す回数を減ら
したいという希望との妥協の数字である。
【0071】キャッシュはユーザに透明になるように設
計される。したがって、キャッシュ内の項目の位置を知
るには、主メモリ・アドレスをキャッシュ位置にマップ
するいくつかの関数を持つことが必要である。参照を統
一するために、キャッシュおよび主メモリの両方が、ブ
ロックと呼ばれる同じサイズの単位に分割される。配置
方式は、主メモリ・アドレスからキャッシュ位置へのマ
ップ関数を決定する。
【0072】図13は、直接マップ・メモリ用のメモリ
構造を示すキャッシュ・メモリ構造を示す図である。各
キャッシュ・ラインは4バイト(32ビット)からな
る。各キャッシュ・ブロックは4ライン(16バイト,
8語)を含む。ブロック内の各ラインはそれ自体の妥当
性ビットを持つので、ブロック当たり4つの妥当性ビッ
トがあり、また、各ブロックはタグ(アドレス・フィー
ルドのmsbsからなる)を有する。
【0073】キャッシュ814は直接マッピングを用
い、これはすべてのキャッシュ編成の中で最も簡単なも
のである。この方式では、主メモリのブロックi(ブロ
ック・アドレス)がキャッシュのブロックiモジュロ2
56(キャッシュ内のブロックの番号)にマップする。
メモリ・アドレスは、4フィールド、すなわち、タグ・
フィールドとブロック・フィールドと語フィールドとバ
イト・フィールドとからなる。各ブロックは、それに関
連する特定のタグを有する。キャッシュ・ブロックに1
ブロックのメモリがあるとき、そのブロックに関連する
タグはそのブロックの主メモリ・アドレスの高位12ビ
ットを含む。メモリ参照のために物理メモリ・アドレス
を生成するときは、8ビットのブロック・アドレス・フ
ィールドを用いて、対応するキャッシュ・ブロックをア
ドレスする。12ビットのタグ・アドレス・フィールド
がキャッシュ・ブロック内のタグと比較される。一致す
れば、2ビット語のアドレス・フィールドを用いてキャ
ッシュ・ブロック内の命令がアクセスされる。
【0074】図14は、1ブロックの主メモリを直接マ
ップ・キャッシュ編成のキャッシュ・メモリにマップす
る方法を示す流れ図である。プロセッサに関連して直接
マップ・キャッシュを用いる方式の欠点は、交互に用い
る2つ以上のブロックがたまたまキャッシュ内の同じブ
ロックにマップすると、キャッシュ・ヒット率が急に下
がることである。このため、「スラッシング」として知
られている現象が起こり、これは、2つ(以上)のブロ
ックがキャッシュ内で継続して互いに置換すると性能が
低下する現象である。単一プロセッサ装置でかかるブロ
ックがプロセッサ・アドレス空間内で比較的離れいる場
合は、この現象が起こる可能性は比較的小さい。アセン
ブラ・コーディングを人手で行う場合は、この問題は、
通常、プロセッサの設計で比較的容易に回避することが
できる。
【0075】キャッシュ・コントローラの構造は、処理
量を大きくするために、並列アクセス方式である。これ
は、データRAMへの使用許可としてアドレス・タグを
用いるというよりも、アドレス・タグとデータとが同時
にアクセスされたのちにアドレス・タグがメモリに記憶
されているものと一致しかつ妥当性ビットが確認された
ときだけにバス上で使用可能にされることを意味する。
優れている点は、本発明によるキャッシュ・ミス事象の
ベンチマーク・テストを用いていつスラッシングが起こ
ったかを判定するので、性能が向上するようにソフトウ
エア・コードの対応する部分を最適化することができる
ことである。
【0076】直接マップ・キャッシュは、置換規則に関
連する記録保持のオーバーヘッドをなくすことにより置
換アルゴリズムが簡単になるという利点を有する。キャ
ッシュ・ブロックにマップすることのできるすべてのブ
ロックの中で、ある時点にキャッシュにいることができ
るのは1つだけである。したがって、あるブロックがミ
スの原因である場合は、コントローラは、単に、このブ
ロックがマップするキャッシュ・ブロックを決定して、
そのキャッシュ・ブロック内のブロックを置換すればよ
い。これは、キャッシュが一杯でないときでも起こる。
【0077】この実施の形態では、外部メモリ830は
キャッシュ・メモリにマップされる。しかし、内部SA
RAM812は、外部メモリ上にマップされ、キャッシ
ュ化はされない。例えば割込みルーチンなどのコードは
外部メモリから内部SARAMにDMAされてベクトル
表を再び作成することができるので、一貫性の問題はな
い。この実施の形態のキャッシュは命令キャッシュだけ
であって自己変更コードはないので、キャッシュ内のデ
ータと外部メモリ内のデータとの一貫性に問題はない。
【0078】この実施の形態では、外部メモリのデータ
も内部メモリのデータもキャッシュ化することはでき
ず、また、自己変更命令もない。したがって、キャッシ
ュに再び書き込む必要がないので、書込み方式は必要な
い。しかし、この実施の形態は、ソフトウエア区切り点
命令(SWBP)をプログラム・メモリ内に挿入した場
合は、エミュレーションを支援しない。この場合、エミ
ュレーション回路851がSWPB命令を挿入しまたは
除去したときにヒットが起こった場合は、キャッシュ・
ラインは無効になる。
【0079】CPU状態レジスタ(ST3)は、キャッ
シュを制御する3ビット、すなわち、gl_cache
enable(キャッシュ・イネーブル),gl_ca
chefreeze(キャッシュ・フリーズ)およびg
l_cacheclr(キャッシュ・クリア)を含む。
これについて次に説明する。キャッシュ・イネーブル
(gl_cacheenabe)ビット: キャッシュ
・イネーブル信号1210aは、キャッシュ・ブロック
には送られず、内部メモリ・インターフェース(MI
F)モジュールにのみ送られる。そこでは、それはキャ
ッシュ用のスイッチ・オフ機構として用いられる。それ
が活動状態のときは、MIFブロックで実行されるプロ
グラム・アドレス復号に依存して、プログラム取出し
は、キャッシュから、内部メモリ装置から、または、M
MIを介して外部メモリへの直接経路から起こる。それ
が非活動状態のときは、キャッシュ・コントローラはプ
ログラム要求を受け付けないので、アドレス復号に依存
して、すべてのプログラム要求は、内部メモリ装置によ
って、または、MMIを介した外部メモリによって処理
される。
【0080】キャッシュ・フラッシングはgl_cac
heenableビットによって制御される。その挙動
が主プロセッサとアトミックである必要があるので、そ
れはそこでセットされる。その理由は、キャッシュが使
用禁止/使用可能のとき、CPU内の事前取出し待ち行
列の内容をフラッシュして、フェッチ・アドバンスがな
いように、すなわち、命令(キャッシュ・イネーブル命
令)を復号した後にパイプラインに命令がないようにし
なければならないからである。さもないと、プロセッサ
が正しく動作することを保証することはできない。キャ
ッシュ・イネーブル機能性はエミュレーション・ハード
ウエアにとって重要である。キャッシュが使用禁止のと
き、重ね書きすべき外部メモリの項目がキャッシュ内に
ある場合は、関係するキャッシュ・ラインはフラッシュ
されない。
【0081】キャッシュ・クリア(gl_cachec
lr)ビット,信号1210b:外部命令でキャッシュ
をクリアすることができる(すべてのブロックが無効に
なる)。キャッシュ・フリーズ(gl_cachefr
eeze)ビット,信号1210c: キャッシュ・フ
リーズ信号は、それによってキャッシュがロックされる
機構を提供し、その結果、キャッシュ・ミスでその内容
は更新されないが、その内容はキャッシュ・ヒットに対
しては引き続き利用可能である。これは、「凍結され
た」キャッシュ内のブロックは置換アルゴリズムによっ
て決して置換されないことを意味する。すなわち、その
内容は、gl_cachefreeze状態が変わるま
では変化しない。
【0082】これは、キャッシュが「凍結された」とき
にキャッシュの外にあったコード・ループはすべてその
ままキャッシュの外にあるので、コードを呼び出す度
に、キャッシュ・ミスに関連するサイクル・ロスがある
ことを意味する。したがって、この機能を用いるとき
は、プロセッサの性能に影響しないように注意しなけれ
ばならない。優れている点は、本発明によるキャッシュ
・ミス事象のベンチマーク・テストを用いて、凍結に起
因するサイクル・ロスがいつ起こったかを判定して、性
能が良くなるようにソフトウエアの対応する部分を最適
化することができることである。キャッシュ・フリーズ
機能性はエミュレーション・ハードウエアにとって重要
である。キャッシュが凍結されたとき、重ね書きすべき
外部メモリの項目がキャッシュにある場合は、関連する
キャッシュ・ラインはフラッシュされない。
【0083】表6は、キャッシュ・レジスタ・メモリ・
マップをリストする。構成レジスタはすべて16ビット
である。これらのレジスタはRbus862を介してア
クセスされる。キャッシュ外部バス・レジスタは語単位
でマップされ外部バスからは語アクセスだけでアクセス
されるので、下記のキャッシュ・コントローラ・メモリ
・マップは各キャッシュ・レジスタ毎にキャッシュ・ベ
ース・アドレスからの語オフセットを示す。
【0084】
【表6】
【0085】キャッシュ・エミュレーション・レジスタ
により、エミュレーション・ハードウエアは、キャッシ
ュ・ハードウエアに問い合わせて、キャッシュのサイズ
および編成を知ることができる。これにより、エミュレ
ーション機能は一般的になる。キャッシュ・エミュレー
ション・レジスタを表7に示す。
【0086】
【表7】
【0087】図15は、本発明の種々の態様による、D
SP100を持つディジタル装置の別の実施の形態を示
すブロック図である。ディジタル装置1500は、前に
説明したプロセッサ100と、ホスト・プロセッサ15
10で示す第2のプロセッサとを含む。DSPコア10
0はディジタル信号処理に関するタスクを実行し、ホス
ト・プロセッサ1510は他のアプリケーション・タス
クを実行する。DSP100は、内部プログラム・メモ
リ回路812に、また、バス1530を介して二重ポー
ト通信メモリ回路1502に接続されている。ブリッジ
1503もバス1530に接続されており、バス153
1を介して周辺装置1520,1521へのアクセスを
可能にする。また、バス1531を介して専用ハードウ
エア1522にもアクセスすることができる。ハードウ
エア1522は、タイマと電力制御とデバッグおよびエ
ミュレーション回路とのような種々のデバイスや回路を
含む。割込み要求信号1540は、デバイス1520〜
1522からDSP100への割込み要求である。内部
キャッシュ814により、プロセッサ100への命令ア
クセス時間が速くなる。JTAGインターフェース85
0およびベンチマーク回路852を有するエミュレーシ
ョン回路851についてはすでに説明した。キャッシュ
・ミス信号816は、ベンチマーク回路852によって
記録されるベンチマーク事象を生成する。ウインドウ回
路824は、すでに説明したように、ウインドウ・イネ
ーブル信号825を生成する。
【0088】ホスト・プロセッサ1510は、バス15
33を介してホスト・プロセッサ・インターフェース回
路(HPI)1511に接続されている。HPI151
1はバッファリングおよびタイミング制御を行って、ホ
スト・プロセッサ1510がバス1532を介して通信
メモリ回路1502にアクセスすることができるように
する。このようにして、ホスト・プロセッサ1510
は、DSP100によっても記憶されアクセスされ得る
通信メモリ1502内のデータ値を記憶しアクセスする
ことができる。バス1532はバス1530から分離さ
れており、また、通信メモリ1502は、メモリ回路8
12の動作に影響を与えないようにホスト・プロセッサ
1510が二重ポート・メモリ回路1502内のデータ
値をアクセスできるように配置されている。割込み要求
信号1541は、ホスト・プロセッサ1510からDS
P100への割込み要求を与える。ホスト・ポート・イ
ンターフェース1511は、2つのレジスタ、すなわ
ち、割込み要求を表明する割込みレジスタ1512とH
PI動作モード用の状態レジスタ1513とを有する。
両方のレジスタは、バス1533を介してホスト151
0によってアクセスされ得る。割込みレジスタ1512
は、ホスト1510からの書込みトランザクションに応
じてプロセッサ100にホスト割込み要求を表明する。
装置1500のような多重処理装置では、キャッシュ・
ミス率は監視の重要なベンチマーク測度である。埋込み
回路850〜852を用いてベンチマーク監視を行いな
がら装置の運転を続ける点が優れている。取出し(フェ
ッチ)帯域幅の制限,メモリ・コンフリクトおよびパイ
プライン保護コンフリクトのような性能低下の他の要因
も、ベンチマーク回路852を用いて監視することがで
きる。
【0089】図9を再び参照すると、ベンチマーク・カ
ウンタ910は40ビットのカウンタである。前に説明
したように、それは単一の32ビット若しくは40ビッ
トのカウンタまたは2つの16ビットのカウンタとして
設計することができる。表8は、本実施の形態の16ビ
ットのデータ・バスを介してカウンタにアクセスする方
法を説明する。このレジスタの内容は、ACUカウンタ
論理モード・ビット(ACNT_CNTL:CM)の設
定に従って変わる。このレジスタを読み取って現在の値
を判定しまたは書き込んでそれを初期化する。それは、
(ACNT0,ACNT1,ACNT2およびACNT
3でそれぞれ示されている)4つの異なるメモリ・マッ
プ・アドレスからアクセスされる。表8は、エミュレー
ション目的でこの実施の形態で用いられるベンチマーク
・レジスタに関連する種々の他のレジスタも示す。CP
U内にないエミュレーション・レジスタはメモリ・マッ
プ・レジスタ(MMR)である。表8のすべてのエミュ
レーション・レジスタはI/O空間内にある。
【0090】
【表8】
【0091】ベンチマーク・カウンタ制御レジスタ(A
CNT_CNTL)940はベンチマーク・カウンタの
構成を制御する。制御の主な点は、カウンタの数と、カ
ウンタ・イネーブルの構成と、カウンタが基準値と一致
したときに実行する動作(もしあれば)とである。ある
機能のレジスタをアクセスするには、まず制御レジスタ
に資源の請求を書き込まなければならない。所有権は、
その機能のIDレジスタを読み取ることによって確認さ
れる。所有されていない資源を読み取った場合は、値0
が戻る。所有されていない資源に書き込んでも無視され
る。同様に、まず制御レジスタに書き込まないと、ある
レジスタの読取りまたは書込みは成功しない。機能の使
用が終われば、制御レジスタの所有権を解放しなければ
ならない。表9は、このレジスタのビット割付けの概要
を示す。
【0092】
【表9】
【0093】ベンチマーク・カウンタ制御レジスタ・ビ
ットの定義を表10に示す。
【0094】
【表10】
【0095】ベンチマーク・カウンタ外部入力選択レジ
スタ(ACNT_ESEL)930は、EXT_CNT
[0,1]信号922a,922bにどの外部入力を選
択するか、また、これらの信号を外部修飾子によりゲー
トすべきかどうかを指定する。表11は、このレジスタ
のビット割付けの概要を示す。
【0096】
【表11】
【0097】ACUベンチマーク・カウンタ外部入力選
択レジスタ・ビットの定義を表12に示す。
【0098】
【表12】
【0099】ベンチマーク・カウンタIDレジスタ(A
CNT_ID)はACUカウンタ機能の「所有者」識別
を指定する。カウンタ論理の所有者は、デバッガ,アプ
リケーションまたは現在所有者なしのどれかである。表
13に、このレジスタのビット割付けの概要を示す。
【0100】
【表13】
【0101】アドレス・ベンチマーク・カウンタIDレ
ジスタ・ビットの定義を表14に示す。
【0102】
【表14】
【0103】図16は、プロセッサ100を内蔵する集
積回路の概要を示す。図示するように、集積回路は表面
取付け用の複数の接点を含む。しかし、集積回路は他の
形状でもよい。例えば、ゼロ・インサーション・フォー
ス・ソケットに取り付けるため回路の下面に複数のピン
を備えるものや、任意の他の適当な形状でよい。図17
は、統合キーボード12およびディスプレイ14を備え
た移動電話のような移動通信装置でかかる集積回路を実
現する例を示す。図17に示すように、プロセッサ10
0を備えるディジタル装置10は、必要に応じてキーボ
ード・アダプタ(不図示)を介してキーボード12に、
必要に応じてディスプレイ・アダプタ(不図示)を介し
てディスプレイ14に、また、無線周波数(RF)回路
16に接続されている。無線周波数(RF)回路16は
アンテナ18に接続されている。データ処理デバイス1
00の製造は、種々の量の不純物を半導体基板に注入す
るステップと不純物を基板内の選択された深さに拡散さ
せてトランジスタ・デバイスを形成するステップとの多
重ステップを含む。マスクは、不純物の位置を制御する
ために形成される。導電材料および絶縁材料の多重層が
堆積されエッチングされて種々のデバイスを相互に接続
する。これらのステップはクリーン・ルーム環境で行わ
れる。データ処理デバイスの製造コストのかなりの部分
は試験関係である。ウエハ状態で、個々のデバイスをあ
る動作状態にバイアスして、基本的な動作機能性を試験
する。次に、ウエハを個々のダイに分割して、ダイのま
までまたはパッケージ化して販売する。パッケージ化し
た後、完成品を動作状態までバイアスして、動作機能性
を試験する。
【0104】本発明の別の実施の形態は、組合せ機能の
ゲート総数を削減するために、ここに開示された回路を
組み合わせた別の回路を含む。ゲート最小化のための技
術は当業者には既知であるので、かかる実施の形態につ
いてはここで説明しない。別の実施の形態は、2つ以上
のベンチマーク・カウンタまたは異なるサイズのベンチ
マーク・カウンタを備え得る。種々のベンチマーク事象
をカウントすることができる。また別の実施の形態は、
例えばデータ・バスのような命令アドレス・バス以外の
バスを監視するために接続された監視点回路を備え、例
えば、データ値に基づいてベンチマーク・テストを開始
または停止することができる。更に別の実施の形態は、
例えばデータを命令とともにキャッシュ化する構成のよ
うな異なる構成のキャッシュを有し得る。または、別の
キャッシュを追加し、各キャッシュからミス信号を与え
てベンチマーク・テストを行ってもよい。このように、
高コード密度および容易なプログラミングを与えるプロ
グラマブル・ディジタル信号プロセッサ(DSP)であ
るプロセッサについて説明してきた。構造および命令集
合は、無線電話用や制御専用として、電力消費を低く
し、DSPアルゴリズムの実行の効率を高めるよう最適
化されている。プロセッサは、命令バッファ・ユニット
と、命令バッファ・ユニットによって復号された命令を
実行するデータ計算ユニットとを含む。命令は、暗黙の
並列方式かユーザが定義した並列方式に従って、並列で
実行され得る。また、他の性能に関連するパラメータの
他に、マイクロプロセッサは、内部キャッシュのキャッ
シュ・ミス性能をベンチマークする手段を有する。した
がって、定量的分析およびベンチマーク・データの詳細
な分類から、性能ロスの理解を高めることができる。大
域統計およびウインドウ化を用いると、問題領域が正確
に分かる。このことは、システムのボトルネックを確認
することができるようにする。コード・スケジュールを
変更し、並列方式を再検討し、コードのマッピングを変
えることにより、命令取出し帯域幅を改善することがで
きる。コードの実行を停止せずに監視を行うことができ
るので、システム環境,メモリ・アクセスの衝突および
優先度は変わらない。ここで用いた「印加する」,「接
続する」および「接続」という用語は電気的に接続する
ことを意味し、別の要素が電気接続経路内にあってもよ
い。本発明について例示の実施の形態を参照して説明し
たが、この説明を限定的に解釈してはならない。この説
明を参照すれば、本発明の他の種々の実施の形態は当業
者に明らかである。したがって、添付の特許請求の範囲
は、ここに述べた実施の形態の任意の変更を本発明の範
囲および精神内に含まれるものとしてカバーする。
【0105】以上の説明に関して更に以下の項を開示す
る。 (1)命令バスから得られた命令のシーケンスを実行す
るマイクロプロセッサを含むディジタル装置であって、
前記マイクロプロセッサが、前記命令のシーケンスの第
1の命令を復号する命令バッファ・ユニットと、該命令
バッファ・ユニットによって復号されるべき前記命令の
シーケンス内の前記第1の命令を識別する第1の命令ア
ドレスを与えるプログラム・カウンタ回路と、前記第1
の命令のコピーを記憶するキャッシュ回路であって、前
記プログラム・カウンタ回路に接続され、命令バスにさ
らに接続され、前記プログラム・カウンタ回路からの前
記第1の命令アドレスに応じて前記第1の命令を前記命
令バッファに与えるか、前記第1の命令が前記キャッシ
ュに記憶されていない場合にはミス信号を表明する、キ
ャッシュ回路と、前記ミス信号が表明される度にベンチ
マーク事象をカウントする計数回路と、該計数回路に接
続され、該計数回路を使用可能または使用禁止にする監
視点回路と、を含む、ディジタル装置。 (2)前記計数回路が、複数の性能指標信号からベンチ
マーク事象としてカウントするために選択する制御回路
であって、前記ミス信号が該複数の性能指標信号の1つ
である、制御回路を含む、第1項記載のディジタル装
置。 (3)前記監視点回路が、前記プログラム・カウンタ回
路に接続され、該プログラム・カウンタ回路から与えら
れる第2の命令アドレスに応じて前記計数回路を使用可
能にする、第2項記載のディジタル装置。 (4)前記監視点回路が、前記プログラム・カウンタ回
路によって与えられる第3の命令アドレスに応じて前記
計数回路を使用禁止にする、第3項記載のディジタル装
置。 (5) 前記ディジタル装置が、セルラ電話であり、ま
た、キーボード・アダプタを介して前記プロセッサに接
続された統合キーボード(12)と、ディスプレイ・ア
ダプタを介して前記プロセッサに接続されたディスプレ
イ(14)と、前記プロセッサに接続された無線周波数
(RF)回路(16)と、前記RF回路に接続されたア
ンテナ(18)とを更に含む、第1項記載のディジタル
装置。
【0106】(6)命令のシーケンスを実行するマイク
ロプロセッサを含むディジタル装置を操作する方法であ
って、命令バッファ・ユニットによって復号されるべき
前記命令のシーケンス内の第1の命令を識別する第1の
命令アドレスを与えるステップと、前記第1の命令がキ
ャッシュ回路にある場合には、該キャッシュ回路の第1
の命令をアクセスし、一方、前記第1の命令が前記キャ
ッシュ回路にない場合には、キャッシュ・ミス事象が起
こったことを示して別のメモリ回路の第1の命令をアク
セスするステップと、前記命令バッファ・ユニット内の
前記命令のシーケンスの前記第1の命令を復号するステ
ップと、前記与えるステップ,前記アクセスするステッ
プおよび前記復号するステップを繰り返してキャッシュ
・ミス事象のシーケンスを生成するステップと、キャッ
シュ・ミス事象であるベンチマーク事象の選択された集
合をカウントして、前記ディジタル装置の性能の測度を
決定するステップと、を含む、方法。 (7)前記カウントするステップが、第1のデータ値に
応じてカウントするステップを開始し、第2のデータ値
に応じてカウントするステップを停止し、ベンチマーク
事象の選択された集合が前記第1のデータ値の発生と前
記第2のデータ値の発生との間に起こるようにすること
を含む、第6項記載の方法。 (8)前記第1のデータ値が第1の選択された命令アド
レスであり、前記第2のデータ値が第2の選択された命
令アドレスである、第7項記載の方法。 (9)前記第1のデータ値が命令アドレスでない、第8
項記載の方法。 (10)キャッシュ・ミス事象以外の事象がベンチマー
ク事象として選択される、第9項記載の方法。
【0107】(11)可変命令長でコード密度が高くか
つプログラミングが容易なプログラマブル・ディジタル
信号プロセッサ(DSP)を提供する。構造および命令
集合は、無線電話用や制御専用のDSPアルゴリズムを
低い電力消費および高い効率で実行するように最適化さ
れる。単一集積回路(800)上のメガセル内にキャッ
シュ(814)を設けて、命令アクセス時間を短縮す
る。メガセル内に性能監視回路(852)を含み、選択
された信号を監視してベンチマーク事象を収集する。性
能監視回路にはJTAGインターフェース(850)を
介して問い合わせることができる。キャッシュから性能
監視回路にキャッシュ・ミス信号(816)を送って、
内部キャッシュの性能を決定する。メガセル内のウイン
ドウ回路(824)により、選択された実行のウインド
ウの間にベンチマーク事象を収集することができる。
【図面の簡単な説明】
【図1】本発明のある実施の形態による、マイクロプロ
セッサを含むディジタル装置の略ブロック図である。
【図2】図1のプロセッサ・コアの略図である。
【図3】プロセッサ・コアの種々の実行ユニットの詳細
な略ブロック図である。
【図4】プロセッサの命令バッファ待ち行列および命令
デコーダの略図である。
【図5】プロセッサのパイプラインの動作を説明するた
めのプロセッサ・コアの表現である。
【図6】メモリ管理ユニットを相互接続したメモリを示
すプロセッサのブロック図である。
【図7】プロセッサのプログラム・メモリ空間とデータ
・メモリ空間の統一構造である。
【図8】本発明の種々の態様による、図1のプロセッサ
およびその関連するベンチマーク・テスト回路を有する
ディジタル装置を示すブロック図である。
【図9】図8のベンチマーク回路を示すブロック図であ
る。
【図10】図8の区切り点/ウインドウ回路を示すブロ
ック図である。
【図11】図8のキャッシュのブロック図である。
【図12】図8のキャッシュの詳細なブロック図であ
る。
【図13】図8のキャッシュのメモリ構造である。
【図14】直接マップされたキャッシュ編成である。
【図15】本発明の種々の態様による、図1のプログラ
ムを持つディジタル装置の別の実施の形態を示すブロッ
ク図である。
【図16】プロセッサを組み込んだ集積回路の略図であ
る。
【図17】図1のプロセッサを組み込んだ電気通信装置
の略図である。
【符号の説明】
800 集積回路 814 キャッシュ 816 キャッシュ・ミス信号 824 ウインドウ回路 850 JTAGインターフェース回路 852 性能監視回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令バスから得られた命令のシーケンス
    を実行するマイクロプロセッサを含むディジタル装置で
    あって、 前記マイクロプロセッサが、 前記命令のシーケンスの第1の命令を復号する命令バッ
    ファ・ユニットと、 該命令バッファ・ユニットによって復号されるべき前記
    命令のシーケンス内の前記第1の命令を識別する第1の
    命令アドレスを与えるプログラム・カウンタ回路と、 前記第1の命令のコピーを記憶するキャッシュ回路であ
    って、前記プログラム・カウンタ回路に接続され、命令
    バスにさらに接続され、前記プログラム・カウンタ回路
    からの前記第1の命令アドレスに応じて前記第1の命令
    を前記命令バッファに与えるか、前記第1の命令が前記
    キャッシュに記憶されていない場合にはミス信号を表明
    する、キャッシュ回路と、 前記ミス信号が表明される度にベンチマーク事象をカウ
    ントする計数回路と、 該計数回路に接続され、該計数回路を使用可能または使
    用禁止にする監視点回路と、を含む、 ディジタル装置。
  2. 【請求項2】 命令のシーケンスを実行するマイクロプ
    ロセッサを含むディジタル装置を操作する方法であっ
    て、 命令バッファ・ユニットによって復号されるべき前記命
    令のシーケンス内の第1の命令を識別する第1の命令ア
    ドレスを与えるステップと、 前記第1の命令がキャッシュ回路にある場合には、該キ
    ャッシュ回路の第1の命令をアクセスし、一方、前記第
    1の命令が前記キャッシュ回路にない場合には、キャッ
    シュ・ミス事象が起こったことを示して別のメモリ回路
    の第1の命令をアクセスするステップと、 前記命令バッファ・ユニット内の前記命令のシーケンス
    の前記第1の命令を復号するステップと、 前記与えるステップ,前記アクセスするステップおよび
    前記復号するステップを繰り返してキャッシュ・ミス事
    象のシーケンスを生成するステップと、 キャッシュ・ミス事象であるベンチマーク事象の選択さ
    れた集合をカウントして、前記ディジタル装置の性能の
    測度を決定するステップと、 を含む、方法。
JP2000063092A 1999-03-08 2000-03-08 キャッシュ・ミスのベンチマーク・テスト Pending JP2000267934A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99400553A EP0992905A3 (en) 1998-10-06 1999-03-08 Cache miss benchmarking
EP99400553.6 1999-03-08

Publications (1)

Publication Number Publication Date
JP2000267934A true JP2000267934A (ja) 2000-09-29

Family

ID=8241905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000063092A Pending JP2000267934A (ja) 1999-03-08 2000-03-08 キャッシュ・ミスのベンチマーク・テスト

Country Status (1)

Country Link
JP (1) JP2000267934A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129301A (ja) * 2007-11-27 2009-06-11 Nec Electronics Corp 自己診断回路及び自己診断方法
JP2013539887A (ja) * 2010-10-16 2013-10-28 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. デバイスハードウェアエージェント

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129301A (ja) * 2007-11-27 2009-06-11 Nec Electronics Corp 自己診断回路及び自己診断方法
JP2013539887A (ja) * 2010-10-16 2013-10-28 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. デバイスハードウェアエージェント
US9208047B2 (en) 2010-10-16 2015-12-08 Hewlett-Packard Development Company, L.P. Device hardware agent

Similar Documents

Publication Publication Date Title
EP0992907B1 (en) Trace fifo management
US11507520B2 (en) Tracking streaming engine vector predicates to control processor execution
US7500085B2 (en) Identifying code for compilation
JP3544214B2 (ja) プロセッサの状態を監視する方法及び監視システム
US6643803B1 (en) Emulation suspend mode with instruction jamming
DE69927456T2 (de) Verwaltung eines FIFO zur Abalufverfolgung
JP5133476B2 (ja) マイクロプロセッサ
US20050273559A1 (en) Microprocessor architecture including unified cache debug unit
US6810475B1 (en) Processor with pipeline conflict resolution using distributed arbitration and shadow registers
EP0992906B1 (en) Apparatus and method for software breakpoint in a delay slot
US7340564B2 (en) Tracing instruction flow in an integrated processor
US11042468B2 (en) Tracking debug events from an autonomous module through a data pipeline
US20090006036A1 (en) Shared, Low Cost and Featureable Performance Monitor Unit
EP2097809A1 (en) Methods and apparatus for low-complexity instruction prefetch system
US6502152B1 (en) Dual interrupt vector mapping
US6449736B1 (en) Method and apparatus for providing chained breakpoints in a microprocessor
EP0992905A2 (en) Cache miss benchmarking
EP0992904B1 (en) Cache coherence during emulation
JP2000267934A (ja) キャッシュ・ミスのベンチマーク・テスト
JP2000267933A (ja) キャッシュ一貫性回路および方法
US11500784B2 (en) Pseudo-first in, first out (FIFO) tag line replacement
EP0992902A2 (en) Dual interrupt vector mapping
US12019561B2 (en) Pseudo-first in, first out (FIFO) tag line replacement
JP2000267884A (ja) 追跡fifo管理
JP2000276352A (ja) パイプライン保護