JPH11338734A - コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法 - Google Patents

コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法

Info

Publication number
JPH11338734A
JPH11338734A JP11069257A JP6925799A JPH11338734A JP H11338734 A JPH11338734 A JP H11338734A JP 11069257 A JP11069257 A JP 11069257A JP 6925799 A JP6925799 A JP 6925799A JP H11338734 A JPH11338734 A JP H11338734A
Authority
JP
Japan
Prior art keywords
instruction
cpu
code
computer system
filter
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
JP11069257A
Other languages
English (en)
Inventor
David Alan Edwards
デイビット、アラン、エドワーズ
Glenn Ashley Farral
グレン、アシュレー、ファラル
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.)
SGS THOMSON MICROELECTRONICS
STMicroelectronics Ltd Great Britain
Original Assignee
SGS THOMSON MICROELECTRONICS
STMicroelectronics Ltd Great Britain
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 SGS THOMSON MICROELECTRONICS, STMicroelectronics Ltd Great Britain filed Critical SGS THOMSON MICROELECTRONICS
Publication of JPH11338734A publication Critical patent/JPH11338734A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware

Abstract

(57)【要約】 【課題】 デバッギングにおいて、命令の実行中にプロ
グラムの流れを監視することができるコンピュータシス
テムおよびこれを動作させる方法を提供する。 【解決手段】 コンピュータシステムは、オンチップC
PUを備えている単一の集積回路チップ上にマイクロプ
ロセッサを含み、命令を実行するデータ処理部と、前記
データ処理部とメモリとの間に接続され、前記命令を前
記データ処理部に渡すデータリンクと、命令比較コード
を記憶する監視レジスタと、前記データリンクで渡され
た前記命令と前記命令比較コードとを比較して、前記比
較の結果に応じて比較出力信号を生成する前記データリ
ンクに接続された監視比較器と、を含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロコンピュータお
よびこのマイクロコンピュータを動作させる方法に関す
る。
【0002】
【従来の技術と発明が解決しようとする課題】ルーチン
をデバッグする際に使用される上位マイクロコンピュー
タへの接続などチップがネットワークに接続できるよう
に外部通信ポートを備えた単一チップマイクロコンピュ
ータは周知である。相互接続マイクロコンピュータチッ
プがぞれぞれ局所メモリを備えているようなシステムも
知られている。チップ上の通信速度に関しては、普通、
ビットパケットはビット並列形式でチップ上の複数のモ
ジュール間で送信される。しかし、チップ上で使用され
るものと同じ並列ビット形式での外部のチップ外の通信
を備える際には電力消費と利用可能なピン空間について
問題が発生する。こうしたマイクロコンピュータには命
令またはコード列へのアクセスが必要であり、動作を効
率化するためには、CPUのアドレス空間内の複数の位
置から命令を取り出せるのが望ましい。共同継続欧州特
許出願第97308517.8号に記載の方法は、CPUのメモリ
アドレス空間の一部を形成する外部通信ポートをチップ
上に備えて、CPUから命令が取り出されて、CPUが
チップ上の並列形式からチップ外の通信用の並列レベル
の低い形式に変換するものである。
【0003】デバッギングにおいては、ある命令が実行
されているときに、プログラムの流れを監視し対応する
ことができると便利な場合が多い。しかしながら、従来
のマイクロプロセッサでは、この機能を備えることが困
難であった。一つの解決法として試験対象であるCPU
により実行されるソフトウェアにこの監視機能を設ける
方法がある。この方法では、CPUのスピードが低下
し、デバッギングの手順を無効にすることになりかねな
い。他の解決法として、あるメモリ内で命令が記憶され
ている位置へのアクセスを監視する方法がある。しかし
ながら、この方法では、あるタイプの命令ではどの位置
に記憶されていても、必ずしもすべての命令を監視する
ことができなかった。
【0004】
【課題を解決するための手段】本発明の第1の態様によ
れば、オンチップCPUを備えている単一の集積回路チ
ップ上にマイクロプロセッサを含み、命令を実行するデ
ータ処理部と、前記データ処理部とメモリとの間に接続
され、前記命令を前記データ処理部に渡すデータリンク
と、命令比較コードを記憶する監視レジスタと、前記デ
ータリンクで渡された前記命令と前記命令比較コードと
を比較して、前記比較の結果に応じて比較出力信号を生
成する前記データリンクに接続された監視比較器と、を
含むコンピュータシステムが提供される。
【0005】本発明の第2の態様によれば、オンチップ
CPUを有する単一の集積回路チップ上のマイクロプロ
セッサを含み、命令を実行するデータ処理部と、前記デ
ータ処理部とメモリとの間に接続され、前記データ処理
部に前記命令を渡すデータリンクと、命令比較コードを
記憶する監視レジスタと、を含むコンピュータシステム
を動作させる方法であって、前記データリンク上で渡さ
れた前記命令と前記命令比較コードとを比較し、前記比
較の結果に応じて比較出力信号を生成する手順を含むこ
とを特徴とする方法が提供される。
【0006】前記CPUは、前記命令の部分を定義する
命令フィルタコードと、比較すべき命令比較コードとを
記憶するフィルタレジスタを含むことが好ましい。
【0007】前記監視比較器は、前記命令比較コードと
比較すべき前記命令の部分を定めるために前記命令フィ
ルタコードで前記データリンク上で渡される前記命令を
フィルタリングする第1命令フィルタを含むことが好ま
しい。前記第1命令フィルタは、前記命令と前記命令フ
ィルタコードに基づいてビット毎にAND演算を実行す
ると好適である。
【0008】前記監視比較器は、前記命令と比較すべき
前記命令比較コードの部分を定めるために前記命令フィ
ルタコードで前記命令比較コードをフィルタリングする
第2命令フィルタを含むと良い。前記第2命令フィルタ
は、前記命令比較コードと前記命令フィルタコードに基
づいてビット毎にAND演算を実行すると良い。
【0009】前記命令フィルタコードにより定義された
前記命令の前記部分は、前記データ処理部により実行さ
れる動作を指定すると良い。前記命令フィルタコードに
より定義された前記命令比較コードの前記部分はメモリ
読取り動作を指定すると良い。前記命令フィルタコード
により定義された前記命令比較コードの前記部分がメモ
リ書込み動作を指定しても良い。前記命令フィルタコー
ドにより定義された前記命令比較コードの部分は前記デ
ータ処理部により処理されるデータを指定しても良い。
前記命令フィルタコードにより定義された前記命令比較
コードの部分は前記データ処理部により処理されるデー
タを指定しても良い。
【0010】前記メモリは、前記データ処理部により実
行されるように2列以上の命令を記憶できることが好ま
しい。前記CPUは、前記命令列のどれが前記データ処
理部により実行中であるかを示すデータを記憶する順序
レジスタを含むと好適である。
【0011】上述したコンピュータシステムを動作させ
る方法は、前記命令比較コードと比較すべき前記命令の
前記部分を判定するために、前記命令フィルタコードで
前記データリンクで渡された前記命令をフィルタリング
する第1フィルタリング手順を含むと好適である。
【0012】前記第1フィルタリング手順は、前記命令
と前記命令フィルタコードに基づいてビット毎のAND
演算の実行を含む。前記命令と比較すべき前記命令比較
コードの前記部分を判定するために、前記命令フィルタ
コードで前記命令比較コードをフィルタリングする第2
フィルタリング手順を含むことが好ましい。前記第2フ
ィルタリング手順は、前記命令比較コードと前記命令フ
ィルタコードに基づいてビット毎のAND演算の実行を
含むと良い。
【0013】
【発明の実施の形態】以下、添付図面を参照しながら本
発明の実施の形態のいくつかについて説明する。
【0014】図1に示す好適な実施形態は、2つのCP
U回路12と13ならびに複数のモジュール14が備え
られている単一の集積回路チップ11を含む。CPU1
2と13ならびに各モジュール14は、各モジュールに
双方向で接続されるバスネットワーク15により相互接
続されている。本実施形態では、バスネットワークはP
リンクと呼ばれ、Pリンクは図2に示す並列データバス
20と、各モジュールに備えられモジュールをPリンク
制御部22に連結する専用制御線21から成る。各モジ
ュールはPリンクインターフェース23を備えており、
Pリンクインターフェース23は各Pリンク制御線21
とインターフェース23との間で制御信号を交換するた
めに状態マシンを統合するとともにデータバス20とイ
ンターフェース23との間で2つの相対する方向にデー
タを転送する。
【0015】図1に示す実施形態では、様々なモジュー
ル14が、外部接続26を備える映像表示インターフェ
ース25と、映像復号支援回路27と、外部接続29を
備える音声出力インターフェース28と、外部接続31
を備えるデバッグポート30と、外部メモリに至る外部
バス接続31を備えた外部メモリインターフェース32
と、クロック回路34と、複数のバスと複数の直列ワイ
ヤ出力接続36を備えた様々な周辺インターフェース3
5と、外部接続8を備えたネットワークインターフェー
ス37と、Pリンク制御部22とを含む。この実施形態
の2つのCPU部12と13は全体的に構成が同様であ
り、各CPU部は複数の命令実行部40と、複数のレジ
スタ41と、命令キャッシュ42と、データキャッシュ
43とを含む。この実施形態では、各CPUは実行部4
0に接続された事象論理回路44も備えている。
【0016】CPUはチップ上の命令キャッシュ42か
ら命令を受信しチップ上のデータキャッシュ43で読取
りまたは書込み動作を実行する従来の方式で動作可能で
ある。追加的に、読取りまたは書込み動作への外部メモ
リアクセスが外部メモリインターフェース32とバス接
続33により実行可能である。この実施形態における重
要な設備は、図2ないし図5により詳細に説明されるデ
バッグポート30である。図2に示すように、この回路
は、ハードリセットピン46に接続されたハードリセッ
ト制御部45を備えている。制御部45は図1に示すチ
ップ上のモジュールすべてに接続されているので、ハー
ドリセット信号がピン46で能動化(アサート)される
と、チップ上の全回路がリセットされる。
【0017】以下に説明されるように、このポート30
はデバッグ処理手順で使用される重要な外部通信を備え
ている。チップ上のCPU12と13はポート30を介
して通信する外部ソースから実行用の命令コードを確保
可能である。Pリンクシステム15の通信はビット並列
形式で実行される。Pリンク15のデータ経路20での
送信は多バイトパケット、たとえば、各パケット当り3
5バイトで実行されるので、一つのパケットが、Pリン
クに沿って5つの連続8バイト転送で送信される。各転
送はビット並列形式である。ポート30は、Pリンク1
5から獲得されるパケットの並列レベルを低下させるよ
うに構成されているので、これらのパケットは、出力3
1を介してビット直列形式で、または代わりにPリンク
15で使用された形式と比べて並列レベルが一層低下し
た形式で出力されて、外部接続31を実施するのに必要
な外部接続ピンの数が減らされる。
【0018】ポート30の構造は図2ないし図5を参照
して以下に説明される。
【0019】本実施形態では、ポート30は、Pリンク
インターフェース23に接続された出口パケット化バッ
ファ50ならびにインターフェース23に接続された到
来パケット化バッファ51を備えている。出力側では、
外部接続31は、本実施形態では、出力ピン52と入力
ピン53により形成されている。この実施形態のポート
はデータバス20からの並列形式と入力ピン52および
出力ピン53用のビット直列形式への完全変換を実行す
る。ピン52と53は、出力リンクエンジン55の一部
として接続されている。出力リンクエンジン55は、そ
れぞれ出口パケット化バッファ50と到来パケット化バ
ッファ51に接続された直列化器56と直列化解除器5
7も組み込んでいる。バッファ50と51との間に双方
向接続によりレジスタバンク58とデバッグポート状態
マシン59が接続されている。ポート30の機能は、内
部オンチップ並列形式と外部ビット直列形式との間でビ
ットパケットを変換することである。さらに、ピン53
を通して入力されるパケットがPリンクシステム15を
使用することなくポートのレジスタ58にアクセス可能
である。同様に、Pリンクシステム15上のパケット
は、外部ピン52または53を使用することなくポート
のレジスタ58にアクセスできる。
【0020】マイクロコンピュータシステムで使用され
る多ビットパケットの形式は図6、7および8に例示さ
れている。パケットがPリンク15に接続されたモジュ
ール14の一つからポート30から出力されると、モジ
ュールはデータバス20に沿ってパケットの並列表示を
送信する。パケットは、すでに説明されたように複数の
8バイト転送を含む。各モジュール14(ポート30を
含む)は同様のPリンクインターフェース23を備え、
バス20からデータを取り出したりバス20にデータを
入力する動作は各モジュールで同様である。モジュール
が他のモジュール、たとえば、ポート30に送るパケッ
トを備えていると、最初に、中心制御部22にそのモジ
ュールを接続する専用リンク21に線60上の要求信号
を能動化することで、モジュールはこのことを合図す
る。このモジュールは宛先バス61で8ビット信号を出
力して送信を希望されるパケットの予想宛先を調整する
ように支持する。Pリンク21自体がバスである。ポー
ト30などのモジュールは、バス20からパケットを受
信することができ、パケットがその宛先に供給可能であ
ってもそうでなくても、専用経路21を介して中央制御
部22に供給される線62上の信号「受信許可」を能動
化することになる。中央制御部22は、モジュールがパ
ケットを宛先に送ることを希望しており、独立して宛先
がバス20からパケットを受信可能であると線22上の
信号により指示したことを判定すると、制御部22は転
送が実行されるよう調整する。制御部22は専用線21
を介して適切なインターフェース23に「送信許可」信
号63を能動化して、送信モジュールがデータバス20
とのインターフェース23と相互接続するバス64を介
してPリンクデータ経路20にパケットを入力する。次
いで、制御部22は、Pリンクデータ経路20で現在転
送を受け入れられることを合図する受信器の「送信」信
号65を能動化する。パケット送信が終了するのは、送
信側がバス20上のパケットデータの最後の転送と同時
にその「パケット送信の終端」線66を能動化するとき
である。この信号は専用経路21で中央制御部22に供
給され、次いで、制御部は受信モジュールへの「受信パ
ケットの終端」信号67を能動化する。この受信モジュ
ールにより、現転送が受信されるとPリンクデータバス
20での受諾データが終了されることになる。
【0021】ポート30で実行される並列対直列変換
は、一方のパケット形式で含まれるデータ全てが他の形
式に含まれるように並列および直列パケット間の1対1
等価で実行されて、Pリンクで使用されるプロトコルは
直列パケット化に保持される。したがって、変換にはパ
ケットの種類の識別と、その種類により判定された方式
でパケットのフィールドのコピーとが含まれている。パ
ケットがデータバス20から出口パケット化バッファ5
0に入力されると、バッファは最長のパケットを保持で
きるように35バイト長なので、パケットは全体的に保
持される。図4に示すように、バッファ50はポート状
態マシン59に接続され、転送バス71によりシフトレ
ジスタ70に接続される。シフトレジスタ70は直列化
器56に接続される。状態マシン59はバッファ50に
入力信号72を供給して、状態マシンの制御下でPリン
クパケットから転送バス71に特定のバイトをコピーす
る。第1に、パケットの最上位バイト(宛先ヘッダ73
を保持する)がバイト幅転送バス71に入力される。状
態マシン59はこの値と、パケットがシフトレジスタと
出力直列リンクに向けられることを示す値とを比較す
る。パケットが出力直列リンクに向けられていると、状
態マシンによりパケットの次のバイト74(パケットの
種類を示す命令コードに相当する)が転送バス71に入
力される。転送バス71で状態マシン59に送られる命
令コード74から、状態マシンはデータバス20から誘
導されたパケットの長さと形式を判定するので、合成し
なければならない直列パケットの長さと形式を判定す
る。状態マシン59は直列長さパケットを示すバイトを
転送バス71に出力し、シフトレジスタ70の第1バイ
ト位置にシフトされる。次いで、状態マシン59により
バイトがバッファ50からバス71にコピーされる。バ
ス71では、これらのバイトがシフトレジスタ70の次
のバイト位置にシフトされる。バッファ50からのバイ
トすべてがコピーされるまで上記の動作は継続する。バ
ッファ50からのバイト抽出の順序は、これにより直列
形式の再形式化が判定されるので、状態マシン59に保
持されている。次いで、直列パケットは、ピン52を介
して外部の回路に接続される出力エンジン55により出
力される。これは以下に図11ないし図14で説明され
ることになる。
【0022】直列パケットがピン53を介してポート3
0に入力されるときには、変換は以下のように処理され
る。各バイトはパケット化バッファを形成するシフトレ
ジスタ80に渡される。こうした直列パケットは図8に
示してある。図8には、第1バイト81がパケットのサ
イズを示している。これによりパケットの最後のバイト
の位置が識別されることになる。図3に戻ると、レジス
タ80は、単純な順序で、すなわち、状態マシン59の
制御に基づいてシフトレジスタから転送バス83に移送
される順序でバイトをコピーする。状態マシン59はパ
ケットの宛先バイト84とパケットがPリンクシステム
15に向けられていることを示す値とを比較する。状態
マシン59によりパケットの次のバイト85が転送バス
に入力されてパケットの種類(動作コードとしても知ら
れている)を示し、これから、状態マシンは直列リンク
パケットの長さと形式を検査し、さらに、状態マシンに
より合成されることになるPリンクパケットの長さと形
式を検査する。状態マシン59によりバイトがレジスタ
80からバス83に移送され、バス83を介して、Pリ
ンクパケットバッファ51にコピーされる。すべての直
列リンクバイトがコピーされ、バイトがシフトレジスタ
80からバッファ86にコピーされる位置が状態マシン
59の設定により判定されるまでこれが継続する。パケ
ットがバス20に入力される準備状態になり、前述のよ
うにインターフェースが中央制御部22により専用通信
経路21を介して通信することが、上記によりインター
フェース23に示される。Pリンクシステム15がパケ
ットを受け取る準備状態になっているときに、インター
フェースは、(クロック34により制御される)その後
のクロックサイクルパケットの第1の8バイトをデータ
経路20にコピーすることで応答する。すべてのパケッ
トバイトの送信が終了するまでインターフェースはその
後のクロックサイクルでパケットの連続8バイト部分を
バス20にコピーする。最後の8バイトは、線66上の
インターフェースにより能動化されているパケット送信
信号の終端と一致する。
【0023】すでに記載したように、ポート23への到
来パケット(並列でも直列でも)はポートレジスタ58
にアクセスするよう予定されている。ピン53からの到
来直列ビットパケットの宛先バイト84がパケットがレ
ジスタ58へのアクセスが予定付けられていることを示
しているときには、ビット直列パケットは、すでに述べ
たようにバッファ51のPリンクパケットに変えられ
る。しかし、Pリンクインターフェース23に送られる
よりも、レジスタバンク58へのアクセスが使用され
る。パケットの1バイト(動作コード)は、レジスタア
クセスが読取りアクセスかまたは書込みアクセスである
かを示す。アクセスが読取りの場合、状態マシン59は
図5に示す線90に読取り信号を出力する。これと同時
に、パケットアドレスフィールドの最下位の4ビットが
線91に入力される。数サイクル後で、制御ブロック9
2の制御下にあるレジスタバンク58は、アドレス指定
されたレジスタの値を一時に1バイトづつ、連続するク
ロックサイクル上の各バイトで、データバス93にコピ
ーされる。データ線93上の各バイトは出口バッファ5
0にラッチされ、状態マシン59の制御下で、レジスタ
から読み出されたデータはバッファ50のPリンクパケ
ットに合成され、「負荷応答」として指定される。この
応答パケットの宛先フィールドは要求ビット直列パケッ
トの「ソース」フィールドからコピーされる。各パケッ
トにも備えられているトランザクション識別子(TI
D)もコピーされる。応答パケットの種別バイトは要求
パケットの種別バイトから形成され、その後、外部ソー
スからピン53に入力された要求パケットに応答して、
応答Pリンクパケットは出口バッファ50で形成され
る。
【0024】レジスタ58へのアクセスの種別が書込み
アクセスである場合、書込み線95はアドレス線91と
共に状態マシン59により能動化される。数サイクル後
で、データの最下位バイトはバッファ51のパケットの
オペランドフィールドからデータバス93にコピーされ
る。以後の7サイクルで、8バイトすべてのコピーが完
了するまでにその後の重要なバイトがレジスタ58にコ
ピーされる。次いで、応答パケットがレジスタ50で合
成される、ただし「記憶応答」パケットに関連するデー
タがない場合を除く。応答パケットは宛先バイトと、種
別バイトと、トランザクション識別子バイトしか含んで
いない。前述のように、応答パケットはビット直列応答
パケットに変換されて、シフトレジスタ70にロードさ
れ、ピン52を介して、記憶が実行されたことを書込み
要求のソースに指示するよう出力される。
【0025】同様に、ポート30によりPリンクシステ
ム15から受信したパケットの宛先バイトが検査され
て、パケットがポート30でレジスタ58にアクセスす
るようになっていることを示している場合には、同様の
動作が実行される。ビット直列レジスタ70に送られる
よりも、パケットのフィールドの種別は、アクセスが読
取りアクセスかまたは書込みアクセスかを判定するのに
使用される。アクセスが読取りの場合、図5の読取り線
90は状態マシン59により能動化され、パケットアド
レスフィールドの最下位の4ビットがアドレス線91に
入力される。2サイクル後に、レジスタバンクは、連続
する各サイクルで一時に1バイトづつデータ線93にア
ドレス指定されているレジスタに保持されている値をコ
ピーする。これはバッファ51にラッチされ、状態マシ
ンは「読取り応答」パケットとして指定されるPリンク
パケットを合成する。この応答パケットの宛先フィール
ドは要求ビット直列パケットのソースフィールドからコ
ピーされる。トランザクション識別子もコピーされる。
応答パケットの種別バイトは要求パケットの種別バイト
から形成される。
【0026】必要なアクセスの種別が書込みアクセスの
場合、状態マシン59はアドレス線91と共に書込み線
95を能動化する。数サイクル後に、データの最下位バ
イトはバッファ50のパケットのオペランドフィールド
からデータ線93にコピーされる。その後の7サイクル
で、その後の重要なバイトがデータ線93にコピーさ
れ、すべてのバイトのコピーが完了するまでレジスタに
コピーされる。次いで、応答パケットは前述のように合
成される、ただし「記憶応答」パケットに関連するデー
タがない場合を除く。応答パケットには宛先バイトと、
種別バイトと、トランザクション識別子バイトしか含ま
れていない。次いで、この応答パケットはPリンクイン
ターフェース23に送られる。このインターフェース2
3では、ポートレジスタ58にアクセスするために、応
答パケットはPリンクインターフェース93を介して入
力された要求パケットの発行元に戻される。
【0027】上記の説明から、図6、図7および図8に
示すパケット形式には、読取りまたは書込み動作への要
求または応答を形成するパケットが含まれることが理解
されるであろう。パケットの宛先指標を含む各パケット
に加えて(図6と図7の番号73または図8の番号8
4)、パケットは、(TID)トランザクション識別子
98とソース99の指標を含む。パケットは宛先で一層
特定のアドレスを識別しなければならない。この理由
で、アドレス指標100が備えられている。ポート30
でのレジスタアクセスに関連してすでに記載されたよう
に、宛先はポートを識別する、ただしアドレス100は
ポート内の特定のレジスタを指示するために使用され
る。宛先フィールドは、Pリンク15に接続された目標
サブシステムまたはモジュールにパケットを経路設定す
るために使用された1バイトフィールドである。要求パ
ケットでは、宛先フィールドはアクセスするアドレスの
最上位バイトである。ソースフィールドは1バイトフィ
ールドである。この1バイトフィールドは応答パケット
の戻りアドレスとして使用される。アドレスフィールド
は要求アドレスの最下位3バイトにより付与される。T
IDフィールドは要求元により応答と要求を関連づける
のに使用される。
【0028】理解されるように、ビット直列ポートを使
用することで、低価格アクセスがチップに提供され、ア
クセス当りわずかな数のピンしか不必要となり、外部ホ
ストを使用することでCPUをデバッグするのに特に有
用となる。
【0029】本実施形態では、各CPU12と13は従
来の方式で命令列を実行するように構成されている。命
令集合には、マイクロコンピュータに対する複数の従来
命令が含まれているが、本実施形態は「事象」を送る命
令も含んでいる。「事象」は連続する命令の外部環境に
より通常引き起こされる例外的な出現である。事象は
「割込み」または「同期トラップ」と同様の効果をもた
らし得る。事象はCPUが実行する優先レベルでの変更
を引き起こすという点から優先順位がつけられる。事象
は、事象命令を実行することで送られる、ただし事象論
理部44の形のハードウェアはサービスまたはハンドラ
ルーチンの命令を実行することなくいくつかの事象の機
能を実行可能である。
【0030】CPUにより命令を実行することで起動さ
れる事象は事象命令の実行により引き起こされる。これ
は、同一チップ上のCPU12または13の一方または
他方のCPUに「事象」を送ったり、外部接続を介して
異なるチップ上のCPUに事象を送るのに使用できる。
事象命令を実行するCPUは、Pリンクシステム15に
接続された別のモジュールに事象を送る場合もある。事
象命令は2つの64ビットオペランドと、事象番号と、
事象オペランドとをもつ。事象番号0ないし63に関し
て、ビット15は事象が「特殊事象」であるかどうかを
判定するために使用される。ビット15が1に設定され
ると、ビット0ないし14は特殊事象の種別を定義する
のに使用される。事象番号のビット16ないし63は、
CPUまたはモジュールの宛先アドレスを識別しまたは
特殊事象を受け取るのに使用される。特殊事象の種別は
以下に詳述される。 事象名 事象コード 事象オペランド 機 能 EVENT.RUN 1 無視 受信CPUの中断状態から実行 を再開する。 EVENT.RESET 3 無視 受信CPUでリセット事象を生 成する。 EVENT.SUSPEND 5 無視 受信CPUの実行を中断する。 EVENT.SET 7 立上げアドレス RESET.HANDLER <- RESET. RESET.HANDLER 影 ハンドラ RESET.HANDLER <- 立上げアドレス これらの特殊事象はCPU12または13から他のCP
Uに送られるか、または代わりにそれらはデバッグポー
ト30を介して外部ホストからチップ上のCPU12ま
たは13の一方に送られる。「事象」は前述の種別のビ
ットパケットとして送られることになる。
【0031】特殊事象に応答して、CPU12または1
3は、命令の取出しと発行を終了させ中断状態に入るよ
う作られている。
【0032】EVENT.SUSPENDがCPUにより受信される
と、中断フラグが設定される。このフラグは中断ピンの
状態と論理和が取られ、CPUの実行段階が判定され
る。
【0033】以下の動作により中断状態に入る。
【0034】SUSPEND PIN.の能動化。これはチップ上の
CPUすべてを停止する。
【0035】EVENT.SUSPENDをCPUに送る。これは受
信したCPUだけを中断する。
【0036】以下の動作のどちらかにより中断状態を脱
する。
【0037】外部SUSPEND PINを能動化段階から無効段
階に変える。これにより中断フラグの設定されてないC
PUすべてが実行を再開する。
【0038】CPUにEVENT.RUN特殊事象を送る。これ
により中断フラグを除去する。SUSPEND PINが無効にな
ると、受信CPUが実行を再開する。
【0039】中断状態に入ると、CPUは実行パイプラ
インを排出する。これは実施に一定の時間がかかる。C
PUが中断されている間に、その実行状況は以下の任意
の方式で変えられる。
【0040】リセットアドレス制御レジスタRESET.HAND
LERが変えられる。
【0041】CPUがリセットされる。
【0042】外部メモリはDMAにより、たとえば、デ
バッグリンク30を用いて変えられる。
【0043】ハードリセットでは(すなわち、チップ上
の全状態のリセット)、SUSPEND PINがハードリセット
の活動端部で能動化される場合、CPUの状態は初期化
されるが立ち上がらない。CPUは、実行状態に入ると
きにリセット事象の前に設定されたRESET.HANDLERに含
まれたアドレスから立ち上がる。
【0044】EVENT.RESETにより受信CPUがソフトリ
セットを実行する。リセットが発生するときにCPUの
状態をデバッグソフトが判定できるように専用影レジス
タの古い値をセーブしながら、この種のリセットにより
主要内部状態が周知の値に初期化される。
【0045】CPU12または13の命令実行システム
と特殊事象論理部44とそのシステムの関連を図9を参
照しながら説明する。通常の動作では、CPU取出しお
よび実行命令サイクルは以下の通りである。事前取出し
部101は命令キャッシュ42から命令を検索して、そ
れらの命令は整列されて復号部102による復号のため
にバッファに入力される。復号部102は実行に適切な
命令の形式を標準化する。ディスパッチャ回路103
は、どの命令が実行可能であるかを制御し判定し、実行
部104またはロード/記憶部105へのオペランドに
沿って命令を発行する。本実施形態のマイクロコンピュ
ータチップはさらに特殊事象論理部44を備えている。
この論理部44はインターフェース23を介してPリン
クシステム15上のパケットから起動するコマンドを受
け取り、通常の命令取出し列に重なる。「事象中断」パ
ケットを受信すると、特殊事象論理部44により事前取
出し部101は命令の取出しを終了し、ディスパッチャ
103は命令の発送を終了する。命令の実行パイプライ
ンが流れ出す。「事象実行」パケットにより特殊事象論
理部44は、中断ピンが能動化されない場合には事前取
出し部に命令取出しを再開させる。通常の実行命令の停
止または起動に加えて、特殊事象論理部44により「命
令流」状態はソフトリセットにより初期化される。ソフ
トリセットは、チップがすでに走行状態でチップ上の状
態の一部だけをリセットするときにソフトウェアにより
起動される。さらに、パケットは、リセット動作の後で
コードが取り出されるアドレスを保持するレジスタに重
ね書きできる。
【0046】特殊事象論理部44は図10を参照しなが
ら一層詳細に説明される。
【0047】図10はリンクインターフェース23を介
してPリンクシステム15に接続された特殊事象論理部
44を示す。図10に一層詳細に示してあるように、イ
ンターフェース23はバス110を介して特殊事象論理
部44に接続されている。特殊事象論理部44はより詳
細には以下の構成要素から成る。事象ハンドラ回路11
1は線112により命令取出し回路101に接続され、
線113により命令ディスパッチャ103に接続されて
いる。バス110も事象論理回路114に接続されてい
る。事象論理回路114は線115に沿って事象ハンド
ラ回路111と双方向通信を行う。事象論理回路114
はカウンタおよび警告回路116ならびに中断フラグ1
17と双方向接続されている。中断ピン118は事象論
理回路114に接続されている。リセットハンドラレジ
スタ119は線120に沿って事象論理114と双方向
通信を行う。レジスタ119はさらに影リセットハンド
ラレジスタ121にも接続されている。
【0048】図10の回路の動作は以下の通りである。
命令はチップ上で実行されたり、外部チップ上の回路の
動作から誘導できる。この回路の動作によりパケットは
図10に示すモジュールを識別する宛先指標となるPリ
ンクシステム15に送信される。この場合、パケットは
インターフェース23を介してバス110に沿って事象
ハンドラ111と事象論理部115に至る。事象論理部
は、特殊事象が「事象実行中」または「事象リセット」
または「事象中断」又は「事象設定リセットハンドラ」
かを判定する。
【0049】「事象中断」を受信すると、事象論理11
4により中断フラグ117が設定される。事象論理11
4は中断フラグ117の状態と中断ピン118の状態の
論理輪を形成する。その結果は中断状態と呼ばれる。
「事象中断」が到着しても中断状態が変わらない場合、
他に何も実行されない。「事象中断」が到着して縦断状
態が変わる場合、事象論理部114はキャッシュ42か
らの命令のアクセスを阻止する。この事象論理部114
は、取出し部101により命令の取出を制御しディスパ
ッチャ103により命令の送付を制御する事象ハンドラ
111に信号を送ることでこの動作を実行する。「事象
中断」を受信する前に取り出された命令は完了される
が、事象論理部114に接続したCPUは最終的にはい
かなる命令も取り出されたり実行されたりしない状態に
入る。
【0050】「事象実行」を受信すると、事象論理部1
14により中断フラグ117が除去される。事象論理部
114は中断フラグ117と中断ピン118の状態の論
理和を実行する。その結果は中断状態と呼ばれる。「事
象実行」が到着しても中断状態が変わらない場合、他に
何も実行されない。「事象実行」が到着して中断状態が
変わる場合、事象論理部114はキャッシュ42からの
命令のアクセスの阻止を終了する。事象ハンドラ111
を通過する信号は、CPUが中断される時点でその取出
し実行サイクルが再開されることを取出し部101に示
す。
【0051】「事象設定リセットハンドラ」を受信する
場合には、事象論理部114によりパケット中の特殊事
象を付随するオペランドがリセットハンドラレジスタ1
19にコピーされ、レジスタ119に保持された前の値
が影リセットハンドラレジスタ121に入力される。
【0052】「事象リセット」を受信すると、事象論理
部114により事象ハンドラ111が新しい命令ポイン
トを線112で取出し部101に送ることで現命令列を
終了し、それにより新しい命令列の実行を開始する。そ
の実行列の第1命令はリセットハンドラレジスタ199
で与えられたアドレスから取り出される。その新しいア
ドレスは、取出し部101に供給される前に、事象論理
部114から事象ハンドラ111に線120を介して確
保される。
【0053】したがって、Pリンクシステム15上のパ
ケットに示される特殊事象を用いることで、チップ上ま
たはチップ外のソースを使用してCPUによる命令の取
出しと実行を中断したり、中断状態のCPUの実行を再
開するのに使用されるのが理解されるであろう。CPU
を初期状態にリセットしたり、CPUによりアクセス可
能なネットワークを介して物理アドレス空間の一部を形
成するようにPリンクシステム上の任意の場所または外
部ポート30を使用して相互接続ネットワークの任意の
場所からCPUに新しい立上りコードを送ったりするの
にも、前記ソースを使用することもできる。
【0054】特殊事象論理部44を示すより詳細な図面
は図15、図16および図17に示されている。図15
は、インターフェース23に隣接した受信バッファ14
0と送信バッファ141を含むPリンクシステム15を
示す。特殊事象を含むパケットがバッファ140で受信
されると、入力が線142、143および144を介し
て特殊事象復号論理部145に送られる。事象番号のビ
ット15が1にリセットされて、特殊事象を示すと、P
有効信号が線142を介して復号論理部145に送られ
る。同時に、パケットの事象コードフィールドが線14
3を介して復号論理部145に供給され、事象オペラン
ドフィールドは線144を介して復号論理部145に供
給される。線142上のP有効信号の有効化に応じて、
復号論理部145は以下の表に示すような事象コードフ
ィールドを復号する。 復号の後の動作のサイクルでは、復号論理部145は線
146を介してP_Event_Done信号を出力してバッファ1
40の内容を消去する。線143上の信号の復号結果に
応じて、復号論理部は線147でEvent Run信号または
線148を介してEvent Suspend信号を出力して線15
0により中断ピンに接続された論理部149を中断す
る。代わりに、線143上の信号を復号することで、復
号論理部145は線151を介してEvent Reset信号を
CPUパイプライン回路152に出力する。代わりに、
復号論理部145は線153でEvent Set Reset Handle
r信号をバス156上のオペランド値と共にリセットハ
ンドラ論理部154に出力する。
【0055】図16は中断論理部149を示す。線14
7と148はSRラッチ157への入力を形成する。S
Rラッチ157は、他の入力150を備えている中断ピ
ンをもつORゲート159に第2入力158を送る。こ
の方法で、線147上の信号は中断ピンと論理的和が取
られて、線160上の取出し不能信号を生成する。この
信号は中断フラグを備えているラッチ161を含む。線
160の信号は命令キャッシュ42からの命令の取出し
を阻止するよう作用する。このため最終的にCPUには
命令が不足し、CPUの実行が中断される。線148上
の信号の能動化によりSRラッチ157の通常の動作で
線147上の以前に能動化された信号が除去されること
になる。
【0056】図17はリセットハンドラ論理部154を
示す。線153上のEvent Setが能動化されると、リセ
ットハンドラレジスタ119、影リセットハンドラレジ
スタ121と命令ポインタバス112を相互接続するレ
ジスタバス163に接続されたリセットハンドラ状態マ
シン162に送られる。信号の能動化への応答は以下の
通りである。
【0057】1. 状態マシン162は、リセットハン
ドラレジスタの値がレジスタバス163に読み出される
リセットハンドラレジスタ119の読取り線164を能
動化する。 2. 状態マシン162は、レジスタバスの値を影リセ
ットハンドラレジスタに書き込む影リセットハンドラレ
ジスタ121の書込み線165を能動化する。 3. 状態マシン162はEv_ハンドルバス上の値をレ
ジスタバスに入力させる。 4. 状態マシン162は、レジスタバス156上の値
をリセットハンドラレジスタ119にコピーするリセッ
トハンドラレジスタ119の書込み線164を能動化す
る。
【0058】代わりに、get_iptr_sigがCPUパイプラ
イン152から線166で能動化される場合には、以下
のことが発生する。状態マシン162はリセットハンド
ラレジスタの読取り線(R/W)を能動化して、リセッ
トハンドラレジスタの値がレジスタバス上に読み込まれ
る。この値はIPTRとラベルが付けられた線に沿って
転送される。
【0059】図11は、チップ11の「デバッグ」また
は「目標」CPU12をデバッグのために「ホスト」外
部コンピュータ123に接続するのにデバッグポートが
使用される方法を示す。(同じことがCPU13に当て
はまる。)ホストはアダプタ装置170を介してCPU
に接続される。アダプタとポート30との間に、上記の
直列プロトコルを使用する双方向ビット直列リンク17
1がある。アダプタは、そのプロトコルと、アダプタと
ホスト123との間の双方向リンク172を介して使用
される標準ネットワークまたはパーソナルコンピュータ
バスプロトコル(イーサネットまたはPCIバスなど)
との間で変換する処理手段を含む。
【0060】図18はアダプタを詳細に示す。アダプタ
は、直列リンク171とのインターフェースを取るイン
ターフェース173と、ネットワークプロトコルリンク
172とのインターフェースを取るインターフェース1
74を含む。インターフェース173と174との間に
はアダプタの動作を制御するCPU175がある。この
動作にはインタフェース間でのメッセージの送付が含ま
れている。これらのインターフェースは直接接続可能で
あるが、制御部がたとえばより柔軟になれば、他のプロ
トコルを使用するインターフェースにインターフェース
174を切り替えるのが容易になる。メモリ176はC
PU175に接続される。説明を容易にするためには、
メモリ176は3つの区分176a、bおよびcに分割
された示してある。区分176aはCPU175の命令
を記憶する。CPUはインターフェース173と174
の一方とメモリ176との間でデータの経路設定を実行
できる。以下に説明されるように、これによりCPU1
75はホスト123からプログラムされ、チップ11上
のCPU12に対する命令が直列リンク171を介して
メモリ176から送られる。直列リンク171は本実施
形態では電気的に脆いので、その長さが1.5mを越え
ると通信の信頼性が低下する。対照的に、本実施形態で
は、ネットワークプロトコルリンク172は電気的には
頑強なので、一層長い距離に渡って信頼できる通信を維
持できる。これにより、ホストコンピュータのユーザが
チップ上のCPU12に接続するのが一層便利になる。
【0061】以下の方法は、図11に示す構成と同様の
ポート30を介してチップが外部マイクロコンピュータ
に接続されるときには図1のCPU12または13の一
方または他方を立上げるために使用される。2つのCP
U12と13は共通の中断ピン118に接続可能であ
る。ピン118が能動化され、ハードリセットピン46
が能動化されると、どちらのCPUも命令を取り出さな
くなる。次に、外部リンク30と外部マイクロコンピュ
ータ123が、チップ11上のレジスタを直接制御する
よう書き込んで、チップ11のバス33に接続されたD
RAMメモリに必要な立上げコードを記憶することで最
少のオンチップ状態を構成するのに使用できる。この動
作では、アダプタのCPU175はインターフェース1
73と174との間でデータを受動的にリレーするよう
動作する。中断ピンの状態が変わると、CPUの一方が
チップ11に対して現在DRAMに保持されているコー
ドから立ち上がる。これを達成するためには、ハードリ
セットが能動化されると中断ピン118が能動状態に変
わる。外部マイクロコンピュータ123はポート30を
介してパケットを送り、立上げコードを図11に示すメ
モリ120に書き込む。次いで、ホスト123は命令を
実行して、特殊事象EVENT SET RESET HANDLERをCPU
12と13の一方に送る。本実施形態では、CPU13
となる。これによりCPU13用のリセットハンドラレ
ジスタ119に新しい目標アドレスが供給される。次い
で、ホスト113が命令を実行して、ポート30を介し
て他のCPU12に特殊事象EVENT SUSPENDを送る。こ
れによりCPU12の中断フラグ117が設定されるこ
とになる。その後、CPU13がリセットハンドラレジ
スタ119に保持された目標立上げアドレスから、メモ
リ120から誘導されたコードの実行を開始するように
中断ピン118の能動信号が取り除かれる。CPU12
はその中断フラグ117が始まることにより中断状態に
なる。CPU12を動作させる必要があるときには、そ
れはCPU13により起動されて、CPU12に特殊命
令EVENT SET RESET HANDLERを送る命令を実行する。こ
れによりCPU12のリセットハンドラレジスタ119
に保持された省略時立上げアドレスが変わることにな
る。次いで、CPU13は命令を実行して、特殊事象EV
ENT RUNをCPU12に送り、上記のように、CPU1
2は、CPU12のリセットハンドラレジスタ119の
アドレスから誘導されたコードと共にCPU12の実行
を始める。
【0062】この方法では、図1のマイクロコンピュー
タはROMに有効コードを記憶される必要なく立ち上げ
ることができる。
【0063】上記の立上げ処理手順はチップ11の局所
メモリ120にロードされた立上げコードを使用した
が、外部マイクロコンピュータ123内のメモリ125
に記憶されたコードを用いても同様の処理手順を実行で
きる。これを達成するためには、上記の同じ処理手順が
実行される、ただしCPU13のリセットハンドラレジ
スタ119にロードすためにポート30を介して送られ
る特殊事象がポート30のアドレス空間にある立上げコ
ードの目標アドレスを提供する場合を除く。この様にし
て、能動化信号が中断ピン118から取り除かれると、
CPU13は、外部コンピュータと外部メモリからコー
ドを直接取り出し始める。CPU12が必要なら、CP
U12は、前述のようにCPU13により起動される。
【0064】図11の実施形態では、チップ11には単
純化のためにCPU12のみが示してある。というのは
CPU13は図11を参照して説明される動作には無関
係のためである。チップは、外部メモリインターフェー
スおよびバス33を介してCPU12の中のメモリチッ
プ120に接続され、CPU12の局所アドレス空間の
一部を形成する。ポート30は、リンクを形成する2つ
の直列ワイヤ121と122によりアダプタ170に接
続される。アダプタはリンク172により他のマイクロ
プロセッサチップ123に接続される。このチップ12
3は、この場合には、チップ11と共に使用するために
デバッギングホストを形成する。線121はチップ11
への単方向入力経路を提供し、線122はホスト123
への単方向出力経路を提供する。9ワイヤ直列リンクな
ど他の形式も使用することができ、本実施形態では、ワ
イヤの1本または複数本がポート30のピンに、たとえ
ば、中断ピン118に直接接続できる。ホスト123
は、バス124を介してホストマイクロコンピュータ1
23の内部のメモリチップ125に接続されるので、ホ
ストマイクロコンピュータ123のアドレス空間の一部
を形成する。CPU12でデバッグ動作を実行するため
には、ホストマイクロコンピュータ123により前述の
特殊事象がPリンクシステム15にポート30を介して
直列線121に沿ってパケット形式で発行されるように
マイクロコンピュータ123が、そのチップ上で誘導さ
れたり内部メモリ125から誘導されたソフトウェアを
動作させる。図10を参照しながらすでに説明したよう
に処理されるようにこうした特殊事象はCPU12を指
示する宛先アドレスを備えている。この宛先アドレス
は、任意の時点でCPU12を中断して、そのリセット
ハンドラレジスタの値を置換し、CPU12をその前の
状態またはレジスタ119の値により指示された新しい
状態からリセットするのに使用できる。CPU12はホ
スト123の内部のメモリ125のアドレスのアドレス
空間の一部を含む。ポート30はCPU12の局所アド
レス空間の一部を形成し、その結果、ポート30に割り
当てられたアドレス空間にメモリアクセスが行われ、本
実施形態では、応答がホストマイクロコンピュータ12
3で実行中のソフトウェアと合成可能である。したがっ
て、リセットハンドラレジスタ119をCPU12の内
部よりもホストの内部のアドレスに設定することができ
る。この様にして、CPU12の動作から独立して、ホ
ストはそれ自体をCPU12により使用される命令およ
び/またはデータのソースとして確立することができ
る。この機構は、ホスト123からのデバッギングを起
動するのに使用できる。チップ11が2つのCPU12
と13をもつ場合、CPU13で実行中のソフトウェア
がCPU12で実行中のデバッグ動作により影響を及ぼ
されることのないように、すでに説明されたようにCP
U12で実行中のソフトウェアをデバッグすることがで
きる。これは図12に示す位置である。ここでは、第2
のCPU13が破線で示され、ホスト123に接続した
CPU12で動作するデバッグルーチンから完全に独立
して、その命令キャッシュまたはメモリ120から命令
を獲得する際には通常に動作している。
【0065】ポート30に割り当てられたメモリアドレ
スにアクセスすることによりCPU12はホストのメモ
リ125からコードを取り出しながら、アダプタのCP
U175はインターフェース173と174との間でデ
ータをただ受動的にリレーするように動作する。他の解
決法は、コードをアダプタのメモリ176bに記憶し
て、CPU175がメモリ176bからインターフェー
ス173にデータをリレーさせることである。後者の解
法では、ホストのメモリ125からアダプタのメモリ1
76bにデータを転送することによりコードをメモリ1
76bに最初に記憶するのが好ましい。リンク172は
通常はリンク171よりレイテンシーが高いので、CP
U12によるコードの取出しが速くなる。しかし、CP
U175がより能動的であれば重要な利点が確保でき
る。
【0066】CPU175はデータをインターフェース
171に能動的に経路設定するよう動作するのが好まし
い。メモリ176cはメモリ176のどれかのメモリア
ドレスを定義するポインタデータを記憶し、メモリ12
5はチップ11上でポート30に指定されているメモリ
アドレスに対応する。言い換えれば、メモリ176cの
データはポート30に指定されたメモリアドレスからメ
モリ125と176の目標メモリアドレスへのポインタ
として作用する。CPU175はポート30に指定され
たメモリアドレスを指定するCPU12から取出し要求
を受け取ると、CPU175はメモリ176または12
5のどのメモリアドレスがそのポートアドレスに対応す
るかを判定し、その目標アドレスからデータを取り出
し、それをリンク171を介してCPU12に送る。図
19はこの方式を示す。図19では3つのメモリがコラ
ムとして示されている。コラム177はポート30に割
り当てられたメモリアドレスを表す。コラム178はメ
モリ176を表す。コラム179はメモリ125を表
す。メモリアドレス177の3つのスライスがメモリ1
76に定義されて、メモリ125と176のメモリアド
レスのスライス上にマップされる。スライス0(18
0)はメモリ125のスライス181上にマップされ
る。スライス1(182)はメモリ176のスライス1
83上にマップされる。スライス2(184)はメモリ
125のスライス185にマップされる。CPU12が
スライス0でメモリアドレスからデータを取り出すと、
アダプタのCPU175は取出しを解釈して、ホストの
メモリのスライス181から対応するアドレスからのデ
ータを取り出して、そのデータをリンク171を介して
CPU12に送る。スライス1のデータはアダプタ内の
メモリ176にキャッシュされるので、CPU12がス
ライス1のメモリアドレスからデータを取り出すと、C
PU175は取出しを解釈し、適切な局所アドレスから
データを供給する。この分割メモリ方法は多くの利点を
備えている。
【0067】1. ホスト123はメモリ176に書込
み可能なので、CPU12がメモリ125からコードの
ブロックを実行しているときには特に、分割メモリ法に
より性能が改良される。コードを記憶したメモリ125
のスライスからのデータをメモリ176bのスライスに
コピーできる。次いで、スライスの位置のメモリ176
cの定義はメモリ176bのスライスを指定するように
設定可能である。コードは現在アダプタ内でアクセス可
能なので、CPU12からの取出しに応答して比較的高
いレイテンシーリンク172を介してデータを渡す必要
なしに、CPU12によりコードを一層迅速に取り出す
ことができる。 2. アダプタで利用可能なメモリは比較的小さく保持
できる。具体的には、アダプタはポート30に割り当て
られたメモリ位置すべてを備える必要はない。したがっ
て、アダプタは低価格に保持できる。 3. メモリ176cのポインタを変えさえすれば、メ
モリアドレス177のスライスは、目標メモリ位置の内
容を変えることなく新しい目標メモリ位置でデータにマ
ップされることができる。
【0068】アダプタの動作は、ポート30を介してデ
ータを読み取るためにCPU12からの命令の取出しを
参照しながら上記されている。アナログ動作はデータの
書込みまたは交換に適用される。
【0069】アダプタがパケットを受信し、たとえば、
メモリへのアクセスを要求すると、ホストのアダプタは
パケットのソース識別子99を使用して、パケットのソ
ースを判定することができる。これが有益なのは、共通
メモリ系にマップされた複数のCPU核を含むチップを
監視するときである。したがって、メモリ系は複数のオ
ンチップCPU核を支援するよう調節可能である。
【0070】図19から明らかなように、ポート30に
指定されたメモリアドレスのすべてがメモリ125また
は176の目標アドレスにマップされる必要はない。対
応する目標が記憶されてないメモリアドレスは集合的に
省略時スライスと呼ばれる。CPU175がCPU12
から要求を受け取り省略時スライスでアドレスにアクセ
スする場合、CPU175によりインターフェース17
4が要求をホスト123に渡す。リンク171から低レ
ベルプロトコル情報を含む、要求をフレーム化する形式
で、要求が渡されるので、要求はホスト123で、デバ
ッグなどのために、完全に分析可能である。代わりに、
省略時スライスにアクセスするときには、アダプタはエ
ラー信号をホスト123に送るだけでよい。
【0071】CPU175はメモリ176aに記憶され
たソフトウェアにより制御される。ソフトウェアはCP
U175がメモリ176cに記憶されたポインタデータ
を解釈する方法だけでなくCPU175が他のいくつか
の機能を実行する方法を定義する。これらには目標CP
U12と13の状態の監視が含まれる。CPU175は
中断ピン118と、(目標CPUとホスト123のソフ
トウェア上のリンクを可能にする)ロック状態と、動作
コード監視(以下を参照)とを制御する。CPU175
はホスト123からの要求を連続的に探索して(たとえ
ば)データを目標CPUに送り、目標CPUをリセット
して、チップ11のオンボードメモリを読み取ったり書
き込んだり、またはメモリ176を読み取ったり書き込
んだりする。アダプタが容易に立ち上がるように、少な
くともメモリ176aの一部は非揮発性メモリとして形
成されている。
【0072】中断ピン118から能動化信号を取り除く
前に特殊命令EVENT SUSPENDをCPU12に送るように
ホスト113を形成することにより、ポート30を介し
て取り出す命令の量を減らすことができる、というの
は、CPU12と13の両方をポート30を介して外部
マイクロコンピュータから立上げようとするよりも、C
PU13だけが立ち上がり、その後、CPU13が、C
PU12を立上げるように構成できるからである。
【0073】各スライスは一つのメモリアドレスまたは
多数の連続または非連続メモリアドレスを備えている。
しかし、ポインタが記憶されているメモリ176cの記
憶内容の使用を容易にし効率化するために、すべての定
義スライス(すなわち、未定義の省略時スライスとは別
のすべてのスライス)は多数の連続メモリアドレスを含
んでいるのが好ましい。各スライスはメモリ176cに
アドレス177の範囲の頂部アドレスと底部アドレスと
して定義され、データはスライスがメモリ125または
176にモデル化されているかどうかを示し、スライス
の読取りおよび書込み許可を与える(たとえば、CPU
12と13は通常はそれらが実行すべきメモリ176b
のコードに書込みアクセスを与えることはなくなる)。
メモリ176のアドレスについては、メモリ176cは
スライスの最下位アドレスを定義するデータも記憶して
いる。メモリ125のアドレスでは、同様のマッピング
がメモリ125に記憶され、ホスト123が範囲177
のアドレスとメモリ125のアドレスとの間で変換を実
行する。読取り/書込みデータを使用するためには、C
PU12または13が任意のスライスのデータへのアク
セスを要求すると、CPU175は、最初に、そのデー
タへのその種のアクセスが認められるかどうかを検査す
る。スライスの最下位アドレスのデータに対するメモリ
125または176のアドレスは、アドレスがメモリ1
76ではなくメモリ125にあることを示すフラグと共
にホスト123内のアドレスとして記憶可能である。代
わりに、メモリ125と176のメモリアドレスが重な
らないように定義されるので、これらのアドレスは概念
上は同じメモリ空間を形成している。
【0074】スライスの目標位置をメモリ125と17
6に制限する必要はない。アダプタは、メモリにアクセ
ス可能になる他のホストとのインターフェースを備える
ことができる。または、追加ホストをインターフェース
174またはホスト123に接続することもできる。こ
うすれば追加ホストのメモリへのアクセスが容易にな
る。
【0075】CPU以外の他のオンチップモジュールも
上記の方法でメモリ125と176にアクセス可能であ
る。こうしたモジュールとはインターフェースなどであ
る。
【0076】監視点レジスタを使用してプログラムの実
行を監視することができる。これらのレジスタを使用し
て、特定のメモリ記憶がアドレス指定されるとき、また
は代わりに特定の位置からの命令が実行されると、デバ
ッグルーチンを起動することができる。
【0077】複数の相互接続チップをもつネットワーク
においてチップ11を使用する様々な実施形態が図11
ないし図14に示してある。
【0078】図13は、ネットワークが図11と図12
を参照しながら説明されたネットワークとほぼ同様であ
る他の構成を示す。しかし、この場合には、CPU12
はデータ監視点レジスタ130とコード監視点レジスタ
131を備えており、これらのレジスタでは、これらの
監視点に到達するとデータ値または命令位置の各アドレ
スがデバッグルーチンを起動するように保持される。こ
の実施形態では、ホストマイクロコンピュータ123
は、CPU12によるプログラムの実行中の任意の位置
で、容易にCPU12の実行を停止させて、レジスタ1
30または131の監視点の状態が修正され、制御をC
PU12の元のプログラムに戻す。CPU12がレジス
タ130または131の一方に設定されるように監視点
をトリガする命令を実行すると、CPU12はその通常
の列での命令の取出しを停止して、デバッグハンドラレ
ジスタ132の内容により指定された命令から始まる命
令の取出しと実行を開始する。デバッグハンドラレジス
タ132は、CPU12内よりもホスト123内のアド
レスを含む場合、CPU12はホスト123からの命令
の取出しを開始することになる。この様にして、CPU
12の内部のメモリの任意の部分を使用することなく、
さらにCPU12のプログラムをデバッギングホスト1
23のプログラムと共同するように設計する必要もな
く、ホストはすでに実行中のプログラムの監視点デバッ
ギングを確立できる。チップ11上のCPUのオペレー
ティングシステムとアプリケーションソフトウェアは、
デバッギングホストコンピュータ123が動作する方法
またはどのオペレーティングシステムまたはソフトウェ
アがホスト123に統合されているかについての知識を
もつ必要はない。
【0079】アダプタ170とホスト123の他の使用
法は、CPU12と13および図1のインターフェース
25、28および35などのハードウェアインターフェ
ースとの間の相互関係のデバッギングである。これらの
インターフェースの任意のものをデバッグするために
は、Pリンクを再構成して、問題になっているインター
フェースの代わりに、目標CPUからポート30にその
インターフェースへの通信を方向づける。ポート30か
ら、通信がアダプタ170と(オプションとして)ホス
ト123に渡される。ホストおよび/またはアダプタは
通信を記録して、実際のインターフェースの応答をシミ
ュレート可能である。これは、インターフェースへの通
信を感知するためにチップ上に追加装置管理ハードウェ
アが不必要になるために、Pリンクのパケット化特性
と、ポート30の機能と、関連するオフチップハードウ
ェアとを利用する。
【0080】Pリンクは、ポート30に割り当てられた
いくつかのアドレスがデバッグ中のハードウェアインタ
ーフェースに対応するよう指定するように容易に再構成
できる。これは、メモリマッピングにより、明示的また
は目標CPUのTLBを使用して真のハードウェア装置
のアドレスを変換することで、または、そのポート30
に割り当てられるアドレスへのインターフェースにより
実行される。次いで、メモリ176aまたはメモリ12
5のソフトウェアによりアダプタ170またはホスト1
23の各プロセッサが真のハードウェアと対応するイン
ターフェースの性能をモデル化し、真のインターフェー
スと同じ方法でポート30を介してCPUに応答する。
たとえば、ビデオインターフェース25との相互関係が
デバッグ中の場合、ホスト123は、真ビデオメモリに
対応するスライスとしてホストのメモリの一部を定義す
ることでインターフェースのビデオメモリの動作をモデ
ル化し、書込みおよび読取りビデオデータを送受信す
る。モデル化はチップ外で処理されるので、CPUのハ
ードウェア相互関係を観察しデバッグするのは比較的簡
単である。一層複雑なハードウェア相互関係では、真の
ハードウェアが読取りまたは書込み命令をメモリの外の
動作を実行する命令として解釈する場合に、ホスト12
3が命令を読み取ったり書き込んだりする動作はそれほ
ど受動的ではない。たとえば、キーボード入力をシミュ
レートするためにデータ流を生成しなければならない場
合がある。
【0081】この方法の他の利点は、真のハードウェア
のインターフェースがホスト123またはアダプタ17
0によりシミュレート可能になるように指定されていれ
ば、CPUのハードウェア相互関係が、真のハードウェ
アが構築される前でさえデバッグ可能なことである。さ
らに、UARTやイーサネットインターフェースなどの
多数の共通ハードウェア装置には、書き込まれるが読み
取られない多数の状態が含まれており、こうした装置を
用いてCPUの相互影響をデバッグすることは困難であ
る。上記のシステムでは、ハードウェアのソフトウェア
モデルの内部状態はホスト123を使用して容易に検査
可能であり、このデバッグ処理は一層容易になる。
【0082】従来のコンピュータアーキテクチャでは、
監視点トリガがオペレーティングシステムにより管理さ
れるトラップまたは事象に共通のベクトルを用いて処理
される。これらのトラップと事象は、ハンドラルーチン
のアドレスを供給する従来のレジスタマーク集合134
を使用している。上記の実施形態では、デバッグハンド
ラレジスタ132とリセットハンドラレジスタ136を
含む予備のレジスタ集合135が備えられている。この
方式では、オペレーティングシステムからの独立は、監
視点処理ルーチン用のハンドラルーチンのアドレスが発
見された予備レジスタを備えることで確立される。
【0083】図20に示す回路は他の拡張構成を提供す
る。この回路はCPU12で動作コード監視を実施す
る。図20に示す回路は連続的にCPU12の実行部へ
の命令線INSTR80を監視し、論理ゲートを使用すれ
ば、命令監視点レジスタ181とマスクレジスタ182
に記憶されているデータと命令線がビット毎に比較され
て、監視点をトリガすべきかどうかが判定される。命令
線は(図9と図10の188)命令ディスパッチャの出
力端で監視される。命令レジスタ181は目標命令コー
ドWATCH.VALUEを記憶する。マスクレジスタ182はマ
スクWATCH.MASKを記憶する。このマスクのビットは、WA
TCH.VALUEにより定義されるコードの対応ビットが監視
される場合には値1となり、そのビットが監視に値しな
い場合には値0となる。レジスタ182と182は目標
CPUで利用可能な最も広い命令(本実施形態では32
ビット)と同幅である。ANDゲート183はWATCH.VA
LUEとWATCH.MASKについてビット毎にAND演算を実行
して、WATCH.MASKでWATCH.VALUEをマスクする。このA
ND演算は、WATCH.VALUEとWATCH.MASKの1対に対して
1度実行すればよい。その結果は一時レジスタに記憶す
ることができる。同時に、ANDゲート184はINSTR
とWATCH.MASKについてビット毎にAND演算を実行し
て、WATCH.MASKで各連続INSTRをマスクする。次いで、
ゲート183と184の出力はゲート185で比較され
て、1ビット出力が生成される。2つの出力が同じ場合
には、真(1)信号がゲート185から出力される。次
いで、ゲート186がゲート185からの出力と(レジ
スタ187から誘導された)1ビットWATCH.ENABLE/GRO
UP信号の論理積を取る。これは、本実施形態では、WATC
H.VALUEとWATCH.MASKの結合により定義された命令の監
視が可能になるかどうかを示す。ゲート185からの出
力とWATCH.ENABLE/GROUP信号が高レベルの場合、トリガ
信号が回路から出力される。トリガ信号は事象論理部
(図10の114)に送られ、上記の他の監視点システ
ムからの出力と同じように処理される。たとえば、トリ
ガ信号は、デバッグトラップハンドラを起動させてた
り、カウンタを増分させたり(カウンタがゼロのときデ
バッグトラップハンドラが起動される)、トリガ命令が
アダプタ170に対して発生したときにCPU命令ポイ
ンタの現値の圧縮形式を含むデータグラムを発すること
が可能である。後者の動作によりホスト(データグラム
を受信した場合)は圧縮ポインタ値を読み取り、その情
報をデバッギングツールに送ることができる。データグ
ラムは、ソフトウェアの最適化を支援するために、トリ
ガ命令の発生時の指示も含むこともできる。
【0084】特定のメモリ位置で実行される動作を監視
するよりも、この監視方式では特定の動作と動作の種類
が動作コード命令データ自体を使用するために監視され
る。WATCH.MASK全ビットが1に設定されると、この方式
はWATCH.VALUEにより定義された命令と同一の命令の実
行を監視する。CPUの命令集合が標準形式で定義され
ている場合にはこの動作は特に強力である。たとえば、
16ビット命令が3フィールドで構成され、実行される
動作を定義する最初の4ビットと、命令によって使用さ
れる第1レジスタを定義する次の6ビットと、命令によ
り使用される第2レジスタを定義する最後の6ビットで
ある。WATCH.VALUEの最初の4ビットフィールドを除く
すべてをマスクするためにWATCH.MASKを1111 0000 0000
0000に設定することで、この監視方式は、WATCH.VALUE
により定義された命令と同じ動作を行う命令すべてを監
視するのに使用される。WATCH.VALUEのビット5ないし
10を除く全てをマスクするためにWATCH.MASKを0000 1
111 1100 0000に設定することで、この監視方式は、WAT
CH.VALUEにより定義された命令と同じ第1レジスタを用
いてすべての命令を監視するために使用できる。読取り
および書込み命令が同じ形式の場合には、選択されたレ
ジスタにアクセスするときにはこうした命令のどちらも
検出可能である。他の実施形態は、2つのフィールドお
よび/またはフィールドのマスク部分以外のすべてのマ
スク化を含む。
【0085】図22は、0ないし9により示された標準
命令形式の例を示す。上記の形式は図22では数1であ
る。図22の略語の意味は以下の通りである。 略語 意味 長さ(ビット) OP 動作コード 4 Fa, Fb, Fc 動作コード拡張 2, 6または10 Ra, Rb, Rc, ra, rb, rc レジスタ番号 2, 3または6 RB レジスタブロック番号 4 c レジスタ定義ビット 1 Ca, Cb, Cc, Cd 定数 10, 12, 16, 26 リアルタイムオペレーティングシステム(RTOS)で
実行するCPUでは他の利点も利用できる。前記のオペ
レーティングシステムでは、CPU上で時分割多重同時
スレッドによりマルチタスクが可能になる。通常は、単
一のスレッドに特定の命令を監視することは不可能であ
る、これは従来の監視点/命令追跡機能がRTOSと相
互関係のないハードウェアで実施されるので監視点機能
は目標CPU全体に広がっているからである。本システ
ムでは、あるスレッドの検査が実行され、その結果がゲ
ート186に(187のWATCH.GROUP値を介して)入力
される。
【0086】様々の異なる動作コード監視が同時に実行
できるように、CPU12にはWATCH.VALUE, WATCH.MAS
KおよびWATCH.ENABLE/GROUPレジスタや、並列に動作す
る図20に示すいくつかの回路が含まれる。2つの監視
を使用する特に有益な動作は、いつブランチ(たとえ
ば、ジャンプまたはリターン)命令が実行されても命令
ポインタの値をホスト部に報告することである。これに
よりプログラム流を監視する効率的な方法である。同様
の回路がCPU13に備えられている。
【0087】図14は、図12を参照しながら前述され
たのと同じネットワークを示す。この場合には、ポート
30を介して特殊な事象のデバッグと送信の際に使用す
るよう前述のように動作するようにホスト123が備え
られポート30に接続されている。しかし、リアルタイ
ムコードをデバッグする際にできるだけ迅速にCPU1
2または13の一方のデバッグを監視する必要がある場
合には、この実施形態は、ホスト123の代わりにCP
U12または13の一方を使用してCPU12または1
3の他方のデバッグを実行するのに使用できる。チップ
上のPリンク15に沿ったパケットの転送は、ポート3
0を介した外部通信より迅速に実行できる。この場合に
は、CPU12と13の一方が、同じチップ上の他のC
PUに特殊事象を送り、それによりホスト123の使用
を参照して前述されたデバッグ動作を実行する命令を実
行可能である、ただし、この場合では、制御が、同じチ
ップ上の他のCPUのデバッグ動作を実行させる際にチ
ップ上のCPUの一つにより実行される。
【0088】上記の実施形態では、外部ホスト123
は、チップ上のCPUの一方のオペレーティングシステ
ムまたはアプリケーションソフトウェアに制限を加える
ことなくチップ上のCPU12と13の一方のデバッグ
を実行するのに使用できる。監視点デバッギングは、チ
ップ上のCPU内のメモリを使用しなくても実行可能で
ある。チップ上のCPU11と12の両方と外部に接続
されたホスト123はポート30によるパケット通信に
より互いの状態にアクセスする。チップ上のCPU12
と13は、ホスト123のCPUのいかなる動作からも
独立して、外部メモリ125にアクセスできる。このた
め、チップ上のCPUは外部接続マクロコンピュータ内
のメモリからのコードにアクセス可能になる。
【0089】上述のように、本マイクロコンピュータに
おける割込みはメモリと同じ構成で実施される。割込み
はPリンク上のパケットとして処理される。アダプタが
デバッグポートに接続されると、アダプタはパケットを
Pリンクに挿入可能になる。したがって、アダプタ(お
そらくはCPU123の制御下にある)は、CPU12
と13と、割込みを受信可能な他の装置への割込みを表
すパケットをPリンクに挿入可能である。
【0090】割込み事象が送られる各CPUまたは他の
装置には32個の仮想割込みピンがあり、事象とカウン
タからのデータが割り当てられる。各割込み事象は、仮
想割込みピンの一つの状態からエッジトリガ(上昇端ま
たは下降端)としてまたはレベルトリガ(高レベルであ
れ低レベルであれ)として指定できる。こうした細部を
指定するために、割込み事象命令の偶数番号オペランド
の6ビットを使用する。ビット9ないし4は仮想割込み
ピンの数を指定し、ビット5と6はトリガの種別を指定
する。
【0091】割込み事象を示すパケットを生成するため
に、割込み事象命令の2つの64ビットオペランドが、
3つのバイトと共にアダプタによりパケットバッファ5
1にコピーされる。3つのバイトとは、動作コードバイ
ト(上記のように、パケットが偶数要求であることを示
す)、TIDバイトと、ソースバイトである。ソースバ
イトは、割込みの起点を識別する。ソースバイトはアダ
プタにより目標値に設定されて、任意のソースからの割
込みをシミュレートする。割込みの宛先部はこうした
「偽割込み」と、指示されたソースによってのみ生成さ
れた割込みとを区分することができない。したがって、
割込みは、デバッグのためにハードウェアからの割込み
をシミュレートできる。
【0092】割込みパケットのタイミングはCPU12
3と175によっても制御されている。たとえば、時間
に関連したデバッグの問題を調査できるように、パケッ
トは望ましい時点でPリンクに挿入可能である。アダプ
タのメモリ176におけるソフトウェアにより、Pリン
ク上への割込みパケットの挿入が半自動化可能になる。
たとえば、そのソフトウェアにより所定の時間間隔で
(たとえば、「毎Nミリ秒」)でパケットを挿入可能で
ある。
【0093】割込み構成は、CPU12と13で実行中
の割込み駆動コードのデバッグにおいて極めて有益であ
る。目標コンピュータ上のデバッギングシステムと割込
みピンとの間の直接リンクに依存しているシステムにあ
るように、割込み専用に物理的な接続をする必要はな
い。他のシステムにより、たとえば、リアルタイムクロ
ックから、または目標システムの一つのCPUから他の
CPUに割込みが目標システムの内部装置により与えら
れる。目標システムがデバッグされるまで、これらの装
置は正確に動作するものと信頼することができない。従
来技術のシステムに関する他の問題は、検査されること
になるすべての相対タイミングを予想シミュレートする
ようにハードウェア装置(リアルタイムクロックなど)
を操作するのは困難なことである。
【0094】外部ホストは、標準パーソナルコンピュー
タやワークステーションなどのコンピュータ、またはプ
ログラム式論理アレイなどのコンピュータ装置を含む場
合がある。
【0095】本発明は、暗示的または明示的に本明細書
に開示されている任意の特色または特色の組合せまたは
請求されている発明とは無関係に一般化された特色を含
むことができる。上記の説明から、当業者には明らかな
ことだが、様々な修正が本発明の範囲内でなしえる。
【図面の簡単な説明】
【図1】本発明によるマイクロコンピュータチップの構
成図である。
【図2】図1のマイクロコンピュータのデバッグポート
を一層詳細に示す図である。
【図3】図2のポートを介したデジタル信号パケットの
入力を示す図である。
【図4】図2のポートへのデジタル信号パケットの出力
を示す図である。
【図5】図2のポートにおけるレジスタのアクセスを示
す図である。
【図6】図1のマイクロコンピュータで使用可能なデジ
タル信号要求パケットの形式を示す図である。
【図7】図1のマイクロコンピュータで使用可能なデジ
タル信号応答パケットの形式を示す図である。
【図8】図2のポートを介して入出力可能な直列要求パ
ケットの一例を示す図である。
【図9】特殊事象論理を含む図1のマイクロコンピュー
タの一つのCPUのより細部を示す図である。
【図10】図9の特殊事象論理をより細部を示す図であ
る。
【図11】ホストによりCPUをデバッグする際に使用
されるホストコンピュータに接続される図1に示す種類
のマイクロコンピュータを示す図である。
【図12】第2CPUが同じチップ上に備えられて、他
のCPUがホストによりデバッグされている間に通常に
動作する図11と同様の構成を示す図である。
【図13】監視点デバッギングで使用されるホストコン
ピュータに接続されるときに図1に示すマイクロコンピ
ュータの一部を形成する一つのCPUを示す図である。
【図14】マイクロコンピュータ上のCPUが同じチッ
プ上の他のCPUによりデバッグされるホストコンピュ
ータに接続された図1に示す種類のマイクロコンピュー
タを示す図である。
【図15】図10の論理回路の一部のより細部を示す図
である。
【図16】図15の論理回路の一部のより細部を示す図
である。
【図17】図15の論理回路の他の部分のより細部を示
す図である。
【図18】ホストコンピュータをCPUに接続するアダ
プタのアーキテクチャを一層詳細に示す図である。
【図19】メモリスライスの構成を示す図である。
【図20】CPUで実行された命令を監視するアーキテ
クチャを示す図である。
【符号の説明】
12,13,175 CPU 14 映像表示インターフェース 20 Pリンクデータ経路(バス) 22 Pリンク制御部 27 映像復号支援部 28 音声出力インターフェース 31 デバッグポート 35 周辺インターフェース 40 実行部 41 レジスタ 42 命令キャッシュ 44 事象論理部 50 出口パケット化バッファ 51 到来パケット化バッファ 52,53 ピン 56 直列化器 57 直列化解除器 58 レジスタバンク 59 デバッグポート状態マシン 70,80 シフトレジスタ 117 中断フラグ 118 中断ピン 119 リセットハンドラレジスタ 121 影リセットハンドラレジスタ 123 ホスト 130 データ監視点レジスタ 131 コード監視点レジスタ 132 デバッグハンドラレジスタ 135 予備レジスタセット 136 リセットハンドラレジスタ 140 受信バッファ 141 送信バッファ 145 特殊事象復号論理部 149 中断論理部 152 CPUパイプライン 154 リセットハンドラ論理部 171 直列リンク 172 ネットワークプロトコルリンク 173,174 インターフェース 176,125 メモリ

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】オンチップCPUを備えている単一の集積
    回路チップ上にマイクロプロセッサを含み、 命令を実行するデータ処理部と、 前記データ処理部とメモリとの間に接続され、前記命令
    を前記データ処理部に渡すデータリンクと、 命令比較コードを記憶する監視レジスタと、 前記データリンクで渡された前記命令と前記命令比較コ
    ードとを比較して、前記比較の結果に応じて比較出力信
    号を生成する前記データリンクに接続された監視比較器
    と、を含むことを特徴とするコンピュータシステム。
  2. 【請求項2】前記CPUは、前記命令の部分を定義する
    命令フィルタコードと、比較すべき命令比較コードとを
    記憶するフィルタレジスタを含む請求項1に記載のコン
    ピュータシステム。
  3. 【請求項3】前記監視比較器は、前記命令比較コードと
    比較すべき前記命令の部分を定めるために前記命令フィ
    ルタコードで前記データリンク上で渡される前記命令を
    フィルタリングする第1命令フィルタを含む請求項2に
    記載のコンピュータシステム。
  4. 【請求項4】前記第1命令フィルタは、前記命令と前記
    命令フィルタコードに基づいてビット毎にAND演算を
    実行する請求項3に記載のコンピュータシステム。
  5. 【請求項5】前記監視比較器は、前記命令と比較すべき
    前記命令比較コードの部分を定めるために前記命令フィ
    ルタコードで前記命令比較コードをフィルタリングする
    第2命令フィルタを含む請求項2ないし4のいずれかに
    記載のコンピュータシステム。
  6. 【請求項6】前記第2命令フィルタは、前記命令比較コ
    ードと前記命令フィルタコードに基づいてビット毎にA
    ND演算を実行する請求項5に記載のコンピュータシス
    テム。
  7. 【請求項7】前記命令フィルタコードにより定義された
    前記命令の前記部分は、前記データ処理部により実行さ
    れる動作を指定する請求項2ないし6のいずれかに記載
    のコンピュータシステム。
  8. 【請求項8】前記命令フィルタコードにより定義された
    前記命令比較コードの前記部分はメモリ読取り動作を指
    定する請求項7に記載のコンピュータシステム。
  9. 【請求項9】前記命令フィルタコードにより定義された
    前記命令比較コードの前記部分がメモリ書込み動作を指
    定する請求項7に記載のコンピュータシステム。
  10. 【請求項10】前記命令フィルタコードにより定義され
    た前記命令比較コードの部分は前記データ処理部により
    処理されるデータを指定する請求項2ないし9のいずれ
    かに記載のコンピュータシステム。
  11. 【請求項11】前記命令フィルタコードにより定義され
    た前記命令比較コードの部分は前記データ処理部により
    処理されるデータを指定する請求項2ないし10のいず
    れかに記載のコンピュータシステム。
  12. 【請求項12】前記メモリは、前記データ処理部により
    実行されるように2列以上の命令を記憶することがで
    き、前記CPUは、前記命令列のどれが前記データ処理
    部により実行中であるかを示すデータを記憶する順序レ
    ジスタを含む請求項1ないし11のいずれかに記載のコ
    ンピュータシステム。
  13. 【請求項13】前記CPUは、前記命令列の一つを定義
    する順列フィルタレジスタを含み、前記監視比較器は、
    前記順序フィルタレジスタにより定義された順序が前記
    順序レジスタにより指示された順序と同じではない場合
    に、比較出力信号を抑制する順序フィルタを含む請求項
    12に記載のコンピュータシステム。
  14. 【請求項14】オンチップCPUを有する単一の集積回
    路チップ上のマイクロプロセッサを含み、 命令を実行するデータ処理部と、 前記データ処理部とメモリとの間に接続され、前記デー
    タ処理部に前記命令を渡すデータリンクと、 命令比較コードを記憶する監視レジスタと、を含むコン
    ピュータシステムを動作させる方法であって、 前記データリンク上で渡された前記命令と前記命令比較
    コードとを比較し、前記比較の結果に応じて比較出力信
    号を生成する手順を含むことを特徴とするコンピュータ
    システムを動作させる方法。
  15. 【請求項15】前記CPUは、前記命令の前記部分を定
    義する命令フィルタコードと、比較すべき前記命令比較
    コードとを記憶するフィルタレジスタを含む請求項14
    に記載のコンピュータシステムを動作させるコンピュー
    タシステムを動作させる方法。
  16. 【請求項16】前記命令比較コードと比較すべき前記命
    令の前記部分を判定するために、前記命令フィルタコー
    ドで前記データリンクで渡された前記命令をフィルタリ
    ングする第1フィルタリング手順を含む請求項15に記
    載のコンピュータシステムを動作させる方法。
  17. 【請求項17】前記第1フィルタリング手順は、前記命
    令と前記命令フィルタコードに基づいてビット毎のAN
    D演算の実行を含む請求項16に記載のコンピュータシ
    ステムを動作させる方法。
  18. 【請求項18】前記命令と比較すべき前記命令比較コー
    ドの前記部分を判定するために、前記命令フィルタコー
    ドで前記命令比較コードをフィルタリングする第2フィ
    ルタリング手順を含む請求項15ないし17のいずれか
    に記載のコンピュータシステムを動作させる方法。
  19. 【請求項19】前記第2フィルタリング手順は、前記命
    令比較コードと前記命令フィルタコードに基づいてビッ
    ト毎のAND演算の実行を含む請求項18に記載のコン
    ピュータシステムを動作させる方法。
  20. 【請求項20】前記命令フィルタコードにより定義され
    た前記前記命令の前記部分が前記データ処理部により実
    行される動作を指定する請求項15ないし20のいずれ
    かに記載のコンピュータシステムを動作させる方法。
  21. 【請求項21】前記命令フィルタコードにより定義され
    た前記命令比較コードの前記部分がメモリ読取り動作を
    指定する請求項20に記載のコンピュータシステムを動
    作させる方法。
  22. 【請求項22】前記命令フィルタコードにより定義され
    た前記命令比較コードの前記部分はメモリ書込み動作を
    指定する請求項20に記載のコンピュータシステムを動
    作させる方法。
  23. 【請求項23】前記命令フィルタコードにより定義され
    た前記命令比較コードの前記部分は前記データ処理部に
    より処理されるデータを指定する請求項15ないし22
    のいずれかに記載のコンピュータシステムを動作させる
    方法。
  24. 【請求項24】前記命令フィルタコードにより定義され
    た前記命令比較コードの前記部分は前記CPUによりア
    クセスされる前記メモリ位置を指定する請求項15ない
    し23のいずれかに記載のコンピュータシステムを動作
    させる方法。
  25. 【請求項25】前記メモリは、前記データ処理部により
    実行される2列以上の命令を記憶することができ、前記
    CPUは、前記命令列のどの列が前記データ処理部によ
    り実行中であるかを示すデータを記憶する順序レジスタ
    を含む請求項14ないし24のいずれかに記載のコンピ
    ュータシステムを動作させる方法。
  26. 【請求項26】前記CPUは、前記命令列の一つを定義
    する順序フィルタレジスタを含み、前記順序フィルタレ
    ジスタにより定義された順序が前記順序レジスタにより
    指示された列と同じでない場合に、トリガ信号を抑制す
    る手順を含む請求項25に記載のコンピュータシステム
    を動作させるコンピュータシステムを動作させる方法。
JP11069257A 1998-03-13 1999-03-15 コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法 Pending JPH11338734A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9805485.1 1998-03-13
GBGB9805485.1A GB9805485D0 (en) 1998-03-13 1998-03-13 Microcomputer

Publications (1)

Publication Number Publication Date
JPH11338734A true JPH11338734A (ja) 1999-12-10

Family

ID=10828574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11069257A Pending JPH11338734A (ja) 1998-03-13 1999-03-15 コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法

Country Status (5)

Country Link
US (1) US6378064B1 (ja)
EP (1) EP0942372B1 (ja)
JP (1) JPH11338734A (ja)
DE (1) DE69907787D1 (ja)
GB (1) GB9805485D0 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005351891A (ja) * 2004-05-26 2005-12-22 Temento Systems デバッグ装置、デバッグ方法、及びデバッグ装置の使用方法
KR101454017B1 (ko) * 2012-07-03 2014-10-22 아텐인터내셔널컴퍼니리미티드 원격관리방법 및 상기 방법을 사용하는 원격관리장치

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9805479D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
AU763141B2 (en) * 1999-04-19 2003-07-17 Motorola Australia Pty Ltd A method of detecting illegal sequences of code execution
US6539502B1 (en) * 1999-11-08 2003-03-25 International Business Machines Corporation Method and apparatus for identifying instructions for performance monitoring in a microprocessor
JP3796111B2 (ja) * 2000-11-10 2006-07-12 株式会社ルネサステクノロジ データプロセッサ
US7395527B2 (en) * 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US20050071608A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for selectively counting instructions and data accesses
US20050071610A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for debug support for individual instructions and memory locations
US7373637B2 (en) * 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US20050071611A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for counting data accesses and instruction executions that exceed a threshold
US20050071821A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically select instructions for selective counting
US7937691B2 (en) * 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US20050071612A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for generating interrupts upon execution of marked instructions and upon access to marked memory locations
US20050071816A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically count instruction execution for applications
US20050071609A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically take an exception on specified instructions
US20050071516A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically profile applications
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US20050086455A1 (en) * 2003-10-16 2005-04-21 International Business Machines Corporation Method and apparatus for generating interrupts for specific types of instructions
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7082486B2 (en) * 2004-01-14 2006-07-25 International Business Machines Corporation Method and apparatus for counting interrupts by type
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7421684B2 (en) 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
US20060277435A1 (en) * 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
JP2006352706A (ja) * 2005-06-17 2006-12-28 Hitachi Ltd マイクロプロセッサ、ネットワークシステム及び通信方法
US7904887B2 (en) * 2006-02-16 2011-03-08 International Business Machines Corporation Learning and cache management in software defined contexts
US20110167496A1 (en) * 2009-07-07 2011-07-07 Kuity Corp. Enhanced hardware command filter matrix integrated circuit
US8032791B2 (en) * 2009-07-07 2011-10-04 International Business Machines Corporation Diagnosis of and response to failure at reset in a data processing system
US20110010773A1 (en) * 2009-07-07 2011-01-13 Kuity Corp. Hardware command filter matrix integrated circuit with restriced command enforcement capability

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54100634A (en) * 1978-01-26 1979-08-08 Toshiba Corp Computer
JPH0695875A (ja) * 1991-01-09 1994-04-08 Mitsubishi Electric Corp マイクロコンピュータのメモリアクセス方法
JP2773471B2 (ja) * 1991-07-24 1998-07-09 日本電気株式会社 情報処理装置
US5353419A (en) * 1992-01-09 1994-10-04 Trustees Of The University Of Pennsylvania Memory-side driven anticipatory instruction transfer interface with processor-side instruction selection
JP3203401B2 (ja) * 1993-05-21 2001-08-27 三菱電機株式会社 データ処理装置
US5717909A (en) * 1995-05-26 1998-02-10 National Semiconductor Corporation Code breakpoint decoder
WO1996038789A2 (en) * 1995-06-01 1996-12-05 Hal Computer Systems, Inc. Programmable instruction trap system and method
EP0840223B1 (en) 1996-10-31 2002-05-15 STMicroelectronics Limited Microcomputer capable of accessing an external memory
US6175814B1 (en) * 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005351891A (ja) * 2004-05-26 2005-12-22 Temento Systems デバッグ装置、デバッグ方法、及びデバッグ装置の使用方法
KR101454017B1 (ko) * 2012-07-03 2014-10-22 아텐인터내셔널컴퍼니리미티드 원격관리방법 및 상기 방법을 사용하는 원격관리장치

Also Published As

Publication number Publication date
GB9805485D0 (en) 1998-05-13
EP0942372A1 (en) 1999-09-15
EP0942372B1 (en) 2003-05-14
DE69907787D1 (de) 2003-06-18
US6378064B1 (en) 2002-04-23

Similar Documents

Publication Publication Date Title
JPH11338734A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US6356960B1 (en) Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
US6301657B1 (en) System and method for booting a computer
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US6415344B1 (en) System and method for on-chip communication
JP2000010818A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US6526501B2 (en) Adapter for a microprocessor
JP2000207247A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US6401191B1 (en) System and method for remotely executing code
JP2000020488A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US6549965B1 (en) Microcomputer with interrupt packets
US6757759B1 (en) Microcomputer chips with interconnected address and data paths
US6697931B1 (en) System and method for communicating information to and from a single chip computer system through an external communication port with translation circuitry
US6449670B1 (en) Microcomputer with bit packets for interrupts, control and memory access
US6397325B1 (en) Microcomputer with packet translation for event packets and memory access packets
EP0840221B1 (en) Microcomputer with packet bus
EP0840222B1 (en) Microcomputer with debugging system
JP4732554B2 (ja) マイクロコンピュータ
US6658514B1 (en) Interrupt and control packets for a microcomputer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070131

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080404