JP2004206425A - Tracing device - Google Patents

Tracing device Download PDF

Info

Publication number
JP2004206425A
JP2004206425A JP2002374876A JP2002374876A JP2004206425A JP 2004206425 A JP2004206425 A JP 2004206425A JP 2002374876 A JP2002374876 A JP 2002374876A JP 2002374876 A JP2002374876 A JP 2002374876A JP 2004206425 A JP2004206425 A JP 2004206425A
Authority
JP
Japan
Prior art keywords
data
memory
trace
program
storage device
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
JP2002374876A
Other languages
Japanese (ja)
Inventor
Keiji Nakamura
圭治 中村
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002374876A priority Critical patent/JP2004206425A/en
Publication of JP2004206425A publication Critical patent/JP2004206425A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide technique capable of decreasing the repeated number of times for setting and performance to acquire tracing data to a plurality of memories and of improving debug efficiency of a program developer. <P>SOLUTION: When there are parallel accesses to a program memory 402 and a data memory 403, and any data cannot be recovered at this time, only the data of buses 410 and 411 in the program memory are traced and the data in buses 420 and 421 in the data memory are stored in storage devices 407 and 408 at the current stage. At the next stage, as it is a single access, the recoverable data are not traced but the data stored in the storage devices 407 and 408 are traced instead. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、プログラム開発支援装置に有用となるトレース装置に関する。
【0002】
【従来の技術】
プログラム開発においては、プログラム開発支援装置およびデバッガを用いて、プログラムの実行履歴(トレース)を元にデバッグを行うことが一般的なデバッグ手法となっている。トレース情報としては、プログラムアドレスやプログラムデータ、プロセッサステータス、その他内部バス情報等を取得しており、その情報量が多くなるとデバッグ効率が上がることになる。
【0003】
そこで多くのデータを取得するための従来例を以下に示す。なお、ここではプログラムメモリ、データメモリ、プロセッサステータスのデータ取得をトレース対象とする。
【0004】
図1は、半導体装置100の内部にトレースメモリ170を備えた従来例を示す。プロセッサ101は、プログラムメモリ制御信号112およびデータメモリ制御信号122により、プログラムメモリ102およびデータメモリ103が制御され、プログラムメモリ102のアドレスバス110及びデータバス111、データメモリ103のアドレスバス120及びデータバス121、プロセッサステータス信号ライン130の各データ110D,111D,120D,121D,130Dを、内蔵のトレースメモリ170に格納しておき、その格納したバス情報をプログラム開発支援装置180に転送し、そのプログラム開発支援装置180にてリアルタイムにトレース結果を取得している。
【0005】
この技術では、半導体装置100内のトレースメモリ170に、プログラムメモリ用、データメモリ用、プロセッサステータス用の記憶領域を備えることで、取得したい全てのデータを1回の実行でトレースメモリ170に格納することが可能となっている。さらに、トレースデータ取得終了後に低速で外部のプログラム開発支援装置にトレースデータをシリアルデータ等で転送することが可能となり、半導体装置が高速に動作する場合であってもリアルタイムでのトレースか保証される。
【0006】
図2は、半導体装置200の外部のプログラム開発支援装置280側に、トレースメモリ270を備えた従来例を示す。この図2の半導体装置200内のプロセッサ201、プログラムメモリ202、…は、図1の半導体装置100内のプロセッサ101、プログラムメモリ102、…にそれぞれ対応し、以下の図面においても同様に参照番号を付している。
【0007】
図2の例では、プログラムメモリ202のアドレスバス210、データバス211、データメモリ203のアドレスバス220、データバス221、プロセッサステータス信号ライン230の各バス上のデータ210D,211D,220D,221D,230Dを半導体装置200から出力して外部のプログラム開発支援装置280側のトレースメモリ270へ格納し、そのプログラム開発支援装置280にてリアルタイムにトレース結果を取得する。
【0008】
この図2では、半導体装置200からプログラムメモリ202のデータ、データメモリ203のデータ、プロセッサステータス信号を出力し、外部のプログラム開発支援装置280に搭載されるトレースメモリ270に格納することで、取得したい全てのデータを1回の実行でトレースメモリ270に格納することができ、さらに、トレースメモリ270を半導体装置200の外部に配置していることから、半導体装置200のコストを抑えることが可能となる。
【0009】
しかしながら、図1、図2で示した技術ではそれぞれ問題がある。図1の技術では、取得したいデータごとにトレースメモリ170に記憶領域を備えているため、大容量のものが必要となり、チップサイズの増加によるコスト増となる。
【0010】
図2の技術では、トレースしたいデータを信号として外部に出力していることから、端子数の増加によるパッケージコストの増加や、半導体装置200内のプロセッサ201が高速で動作する場合、外部のプログラム支援装置280のトレースメモリ270に対して、リアルタイムにデータを転送することが困難になり、リアルタイムのトレースできない可能性がある。
【0011】
そこで、この様な問題点を解決するものとして以下の技術がある。
【0012】
トレースメモリに格納すべきトレースデータを時分割に選択的に出力するセレクタを設け、選択されたデータをトレースメモリに格納している(例えば特許文献1参照)。
【0013】
内部バス情報を選択的に出力するセレクタを設け、選択されたデータをトレースメモリに格納している(例えば特許文献2)。
【0014】
複数種の内部バス情報を選択的に出力するセレクタを設け、選択したデータを同一の端子から外部へ出力する(例えば特許文献3参照)。
【0015】
【特許文献1】
特開平11-306040「エミュレータのトレース装置」(請求項1、図1)
【特許文献2】
特開2000-332205「プロセッサ内蔵の半導体装置」(段落[0049]、図3)
【特許文献3】
特開2002-149442「データプロセッサ」(段落[0032]、図1)
【0016】
図3にそれらの技術を適用した半導体装置300を示す。この例では、プログラムメモリ302のアドレスバス310とデータメモリ303のアドレスバス320、プログラムメモリ302のデータバス311とデータメモリ303のデータバス321を、選択信号340に従ってそれぞれ選択器350、351で選択している。その選択したデータ361,362と、プロセッサステータ信号ライン330のデータ330Dとを、半導体装置300の内蔵のトレースメモリ370へ格納し、外部のプログラム開発支援装置380にその格納データを転送し、プログラム開発支援装置380にてリアルタイムのトレース結果を取得している。
【0017】
この技術では選択するデータを増やすことで、内蔵するトレースメモリ370のサイズを極力抑えることが可能となり、従来技術の問題点であったトレースメモリによるコスト増を回避することができる。
【0018】
また、選択信号340には、所望のデータを選択するために設定値を供給する技術や、イベント制御によりプログラム以外のデータを優先させる様な、時系列に沿った動的な切り替え技術を持たせることができる。
【0019】
また、図3では示していないが、特許文献3によれば、同様なトレースデータ選択技術で、トレースメモリを半導体装置外部に配置している場合でも、外部に出力させる信号を選択して出力させることにより、トレース用端子の数を抑えることが可能となっている。
【0020】
【発明が解決しようとする課題】
しかしながら、図3で示した技術でもやはり問題が残る。プロセッサ301において、DSP(Digital Signal Processor)などの、同期バスによる異なるメモリ(例えばプログラムメモリ302とデータメモリ303)に対してデータアクセスを並列に実行すること及び、演算実行とメモリアクセス(データメモリ)を並列に実行することが可能となっているプロセッサを使用している場合、メモリに対しての並列データアクセスでのプログラムメモリアクセス履歴と、データメモリアクセス履歴をトレースデータとして取得するためには、実行が同一サイクルであることから、図3の技術では設定と実行を少なくとも2回行う必要がある。
【0021】
この様に同一サイクルで並列に実行されるメモリアクセスのトレースデータを取得するためには、設定と実行を繰り返し行う必要があり、このことは、プログラム開発者にとってデバッグ効率を逆に下げる要因となった。
【0022】
本発明は、上述した課題を解決するためになされたものであり、複数のメモリに対するトレースデータ取得のための設定と実行の繰り返し回数を軽減し、プログラム開発者のデバッグ効率を向上させることが可能となる技術を提供することを目的とする。
【0023】
【課題を解決するための手段】
本発明では同一サイクルで並列に実行されるメモリアクセスのトレースデータを、サイクルを分けてトレースデータとし、プログラム開発支援装置上で、トレースデータおよび実行プログラムから本来のサイクルに再配置したリアルタイムトレースデータとして復元させることを特徴とする。
【0024】
さらに、演算実行とデータメモリアクセスが並列に実行させる場合、トレースメモリに格納されるデータをデータメモリバスのデータとし、プログラム開発支援装置上で、トレースデータおよび実行プログラムから消失したフェッチデータを復元することを特徴とする。
【0025】
請求項1の発明は、半導体装置として構成された2つの同期バスを備えたパイプライン処理を行うプロセッサの実行履歴取得(トレース)において、
同一チップの半導体装置上に第1および第2の2つの記憶装置を備え、
2つのバスの内、一方が動作する場合は、第1の記憶装置へトレースデータを転送し、
2つのバスの内、双方が動作する場合は、一方を第1の記憶装置へ、他方を第2の記憶装置に転送し、第2の記憶装置に格納されたデータは、定められた規則に従い、以降の別サイクルで第1の記憶装置へと転送され、第1の記憶装置に格納された双方のバスのトレースデータは、前述の半導体装置の外部のプログラム開発支援装置に導かれ、上記定められた規則に従い第2の記憶装置を経由したデータのために消失したデータの復元を行い、それぞれのバスのトレースデータとしてデバッグに供されることを特徴とする。
【0026】
請求項2の発明は、請求項1に記載の2つの同期バスが、プログラムメモリバス、データメモリバスであり、そのアクセスとして、
プログラムフェッチのみのサイクルでは、第1の記憶装置に格納するトレースデータをプログラムメモリバスのデータおよびプロセッサステータスデータとし、
プログラムフェッチでかつデータメモリへのデータアクセスのサイクルでは、第1の記憶装置に格納するデータをデータメモリバスのデータおよびプロセッサステータスデータとし、
プログラムメモリへのデータアクセスでかつデータメモリへのデータアクセスのサイクルでは、第1の記憶装置に格納するトレースデータを、プログラムメモリバスデータおよびプロセッサステータスデータとし、
第2の記憶装置に格納するデータを、データメモリバスデータおよびプロセッサステータスデータとし、第2の記憶装置に格納されたデータは、次のサイクルで優先的にトレースデータとすることを特徴とする。
【0027】
また、請求項1に記載のプロセッサ開発支援装置に導かれた第1の記憶装置に格納されていない消失データの復元は、
導かれた第1の記憶装置に格納されたデータおよび実行プログラムからのメモリアドレス、プロセッサステータスにより、パイプライン処理で想定されるプログラムフェッチアドレスからの連続性、異なるメモリへの連続したデータアクセス検出から、プログラム開発支援装置でのソフトウエアによる復元処理を用い、消失したプログラムフェッチアドレスおよびデータ、ステータスの復元、異なるサイクルに格納されたデータの適正サイクルへの復元を行い、リアルタイムトレース結果とすることを特徴とする。
【0028】
請求項3の発明は、請求項2に記載のアクセスの状況判別は、プロセッサから出力されるプログラムフェッチ信号、プログラムメモリデータアクセス信号、データメモリデータアクセス信号とし、
プログラムフェッチのみ、プログラムフェッチでかつデータメモリへのデータアクセス、プログラムメモリへのデータアクセスでかつデータメモリへのデータアクセスの判別は、これらの信号による判別装置により生成される判別信号を使用することを特徴とし、
請求項2に記載の、第1の記憶装置への格納データは、プログラムメモリバスデータ、データメモリバスデータ、第2の記憶装置に格納されたデータメモリバスデータを入力データとする選択装置からの選択データとし、その選択装置の選択制御信号は、先述の判別装置により生成される判別信号および、判別信号を毎サイクル記憶する記憶装置から出力される判別記憶信号を使用することを特徴とする。
【0029】
請求項4の発明は、請求項1〜3のいずれかに記載の第1の記憶装置を半導体装置の外部に持つ半導体装置において、
請求項1〜3のいずれかに記載のトレースデータを、前記第1の記憶装置に格納する手段を有し、前記第1の記憶装置に格納されたデータは、請求項1〜3のいずれかに記載の復元処理により、リアルタイムトレース結果の取得を可能とすることを特徴とする。
【0030】
【発明の実施の形態】
本発明の半導体装置では、プログラムメモリのバスおよびデータメモリのバスの2つの同期バスを備えたパイプライン処理を行うものを想定しているため、図1の半導体装置100をパイプライン処理の面から更に述べる。
【0031】
プロセッサ101は、プログラムメモリ102に対してアドレスバス110を通じてプログラムアドレスを出力し、プログラムメモリ102に格納されているプログラムコードをデータバス111を介してプログラムフェッチ動作を行う。フェッチされたプログラムコードは、デコード、実行、ライトバックのパイプライン処理動作により命令を処理する。
【0032】
また、プログラムメモリ102に対してデータアクセスを行う場合は、データアクセス命令(例えばデータリード)をフェッチし、デコードし、実行フェーズでアドレスを生成し、アドレスバス110を通じてメモリアドレスを出力し、プログラムメモリ102からのデータリード動作を行う。リードデータは、データバス111を介して行われ、ライトバックフェーズでリードしたデータを例えばプロセッサ内のレジスタに書き込む。
【0033】
また、データメモリ103に対してデータアクセスを行う場合は、データアクセス命令(例えばデータリード)をフェッチし、デコードし、実行フェーズでアドレスを生成し、アドレスバス120でアドレスを送出し、データメモリ103からのデータリード動作を行う。リードデータは、データバス121を介して行われ、ライトバックフェーズで、リードしたデータを例えばプロセッサ内のレジスタに書き込む。
【0034】
またプロセッサ101が出力するプログラムメモリ102へのアドレスが、プログラムフェッチのためのアドレスか、データアクセスのためのアドレスかは、プロセッサ101のプロセッサステータス信号ライン130から把握できる。
【0035】
また、データメモリ103へのアクセスについてもプロセッサ101から出力されるプロセッサステータス信号ライン130から把握できる。
【0036】
以上のことから、図1の技術では、プログラムメモリ102のアドレスバス110及びデータバス111、データメモリ103のアドレスバス120及びデータバス121、プロセッサステータス信号ライン130よりの各データ110D,111D,120D,121D,130Dをトレースデータを並列にアクセスした場合でも、1回の実行でプログラムメモリ102とデータメモリ103とプロセッサステータスの実行履歴を一度に取得が可能であった。但し既述したように内蔵のトレースメモリ170に大容量を必要とした。
【0037】
次に図3の半導体装置300についてもパイプライン処理の面から更に述べる。
プロセッサ301は、プログラムメモリ302に対してアドレスバス310にアドレスを出力し、プログラムメモリ302に格納されているプログラムコードをデータバス311を介してプログラムフェッチ動作を行う。フェッチされたプログラムコードは、デコード、実行、ライトバックのパイプライン処理動作により命令を処理する。
【0038】
また、プログラムメモリ302に対してデータアクセスを行う場合は、データアクセス命令(例えばデータリード)をフェッチし、デコードし、実行フェーズでアドレスを生成し、アドレスバス310でアドレスを出力し、プログラムメモリ302からのデータリード動作を行う。リードデータは、データバス311を介して行われ、ライトバックフェーズで、リードしたデータを例えばプロセッサ内のレジスタに書き込む。
【0039】
また、データメモリ303に対してデータアクセスを行う場合は、データアクセス命令(例えばデータリード)をフェッチし、デコードし、実行フェーズでアドレスを生成し、アドレスバス320でアドレスを出力し、データメモリ303からのデータリード動作を行う。リードデータは、データメモリ303のデータバス321を介して行われ、ライトバックフェーズで、リードしたデータを例えばプロセッサ内のレジスタに書き込む。
【0040】
またプロセッサ301が出力するプログラムメモリ302へのアドレスが、プログラムフェッチのためのアドレスか、データアクセスのためのアドレスかは、プロセッサ301より出力されるプロセッサステータス信号ライン330のデータ(トレースデータ)360により把握できる。また、データメモリ303へのアクセスについてもプロセッサ301から出力されるプロセッサステータス信号ライン330のデータ360から把握できる。
【0041】
各メモリのバスデータは、選択器350でアドレスを、選択器351でデータを選択出力させ、その選択信号を340とし、選択信号340の状態にもとづき、メモリに関するトレースデータとして出力させ、トレースデータ(アドレス)361、トレースデータ(データ)362とすることができる。
【0042】
しかし図3の技術では、先にも述べたように、同一サイクルで並列にメモリアクセス(データアクセス)を行った場合の両メモリのトレースデータを取得するには、選択器350の設定をプログラムメモリ側とデータメモリ側の2回の設定と実行が必要となった。
【0043】
以下、本発明を実施の形態に基づいて説明する。図4に本実施の形態による半導体装置400を示す。この半導体装置400において、401,402,403,…480の各デバイスは、図3の半導体装置300における301,302,303,…380の各デバイスに対応する。
【0044】
図3に対し新たに追加されたデバイスとしては、プロセッサステータス信号ライン430のデータを記憶する記憶装置406と、データメモリ403のアドレスバス420のアドレスを記憶する記憶装置407と、データメモリ403のデータバス421のデータを記憶する記憶装置408と、プロセッサステータス信号ライン430よりのデータか記憶装置406よりの記憶データ450かを選択してトレースデータ(プロセッサステータス)460を出力する選択器489と、プロセッサステータス信号ライン430から選択信号440、判別信号442を生成する判別装置404と、判別装置404からの判別信号442を記憶して選択信号441を生成する判別記憶装置405とがある。
【0045】
また、選択器490は、プログラムメモリ402のアドレスバス410のアドレス、データメモリ403のアドレスバス420のアドレス、記憶装置407よりの記憶データ451のいずれかを選択してトレースデータ(メモリアドレス)461を出力し、選択器491は、プログラムメモリ402のデータバス411のデータ、データメモリ403のデータバス421のデータ、記憶装置408よりの記憶データ452のいずれかを選択してトレースデータ(メモリデータ)462を出力する。
【0046】
次に図4の半導体装置400におけるパイプライン処理のプロセッサ動作およびトレースデータ取得について以下説明する。
【0047】
プロセッサ401は、プログラムメモリ402に対してアドレスバス410を通じてアドレスを出力し、プログラムメモリ402に格納されているプログラムコードをデータバス411を介して取り込み、プログラムフェッチ動作を行う。フェッチされたプログラムコードは、デコード、実行、ライトバックのパイプライン処理動作により命令を処理する。
【0048】
また、プログラムメモリ402に対してデータアクセスを行う場合は、データアクセス命令(例えばデータリード)をフェッチし、デコードし、実行フェーズでアドレスを生成し、プログラムメモリ402のアドレスバス410にアドレスを出力し、プログラムメモリ402からデータリード動作を行う。リードデータは、プログラムメモリ402のデータバス411を介して行われ、ライトバックフェーズで、リードしたデータを例えばプロセッサ内のレジスタに書き込む。
【0049】
また、データメモリ403に対してデータアクセスを行う場合は、データアクセス命令(例えばデータリード)をフェッチし、デコードし、実行フェーズでアドレスを生成し、アドレスバス420を介してアドレスを送出し、データメモリ403からのデータリード動作を行う。リードデータは、データバス421を介して行われ、ライトバックフェーズで、リードしたデータを例えばプロセッサ内のレジスタに書き込む。
【0050】
またプロセッサ401が出力するプログラムメモリ402へのアドレスがプログラムフェッチのためのアドレスか、データアクセスのためのアドレスかは、プロセッサ401のプロセッサステータス信号ライン430から把握できる。また、データメモリ403へのアクセスについてもプロセッサステータス信号ライン430から把握できる。
【0051】
トレースデータについては、判別装置404はプロセッサステータス信号ライン430から選択信号440を生成し、判別記憶装置405は判別装置404からの判別信号442を記憶し、選択信号441を生成する。この選択信号440、441の状態により、選択器489では、プロセッサステータス信号ライン430からのデータか、記憶装置406で記憶されたプロセッサステータスデータ450かを選択してトレースメモリ470への格納データ460を出力する。
【0052】
選択器490では、プログラムメモリ402のアドレスバス410のデータか、データメモリ403のアドレスバス420のデータか、記憶装置407で記憶されたアドレス451のいずれかを選択してトレースメモリ470に格納データ461を供給する。
【0053】
選択器491では、プログラムメモリ402のデータバス411のデータか、データメモリ403のデータバス421のデータか、記憶装置408で記憶されたデータ452かを選択出力し、トレースメモリ470への格納データ462を供給する。トレースメモリ470に格納されたデータはプログラム開発支援装置480に転送され、実行プログラムとのソフトウエア処理で、リアルタイムでトレースデータを生成する。
【0054】
図6、図7、図8のタイムチャートは、図1、図3の従来技術と図4の本発明に対し、以下の様なプログラムを実行した場合のトレースデータの取得の様子を示している。
命令 G(メモリアクセスを含まない命令)
命令 H(メモリアクセスを含まない命令)
命令 A(メモリアクセスを含まない命令)
命令 B(プログラムメモリリード命令)
命令 C(データメモリリード命令)
命令 D(プログラムメモリリード/データメモリリードの並列命令)
命令 E(メモリアクセスを含まない/データメモリリード命令)
命令 F(メモリアクセスを含まない命令)
命令 G(メモリアクセスを含まない命令)
命令 H(メモリアクセスを含まない命令)
【0055】
左欄ある番号は、図1、3、4で示した信号線やバスラインの番号に対応する。また、図6〜8中の
b は命令Bからのプログラムメモリアクセスアドレス、
c’は命令Cからのデータメモリアクセスアドレス、
d は命令Dからのプログラムメモリアクセスアドレス、
d’は命令Dからのデータメモリアクセスアドレス、
e’は命令Eからのデータメモリアクセスアドレスを表す。
【0056】
図6において、プロセッサステータス信号ライン130の状態として、プログラムフェッチ(プログラムメモリへのプログラム取得)、プログラムメモリデータアクセス(プログラムメモリへのデータアクセスのこと)、データメモリアクセス(データメモリへのアクセスのこと)の3つの信号を示し、これらについては“H”/“L”と“1”/“0”とでそれぞれ示した(“H”,“1”がアクティブ)。そして、プロセッサステータス信号ライン130を、それらの3つの信号順に3ビットにして示している。図7、図8でも同様である。
【0057】
図6では、取得すべきすべてのデータを格納できるトレースメモリ570を備えていることから、ステージ番号8でプログラムメモリ302へのプログラムフェッチおよびデータメモリ303へのデータアクセスが並列にあった場合、トレースデータ(110D,111D)、トレースデータ(120D,121D)、トレースデータ(130D)として、それぞれ、[E]、[c']、[101]のごとく消失することなく、かつサイクルのずれ無く取得できている。並列アクセスがあったステージ番号9および11においても同様である。
【0058】
図7では、データメモリへのアクセスを優先して取得する様に、図3の選択信号340を動的に変える設定を行った時の動作を示している。トレースデータを調べると、ステージ番号8でプロセッサステータス信号ライン330により、プログラムメモリ302へのプログラムフェッチと、データメモリ303へのアクセスが並列にあったために、データメモリへのアクセスを優先して取得している場合には、フェッチデータの命令Eがトレースされずに消失していることになる。
【0059】
この時のプロセッサステータス(トレースデータ)はプログラムフェッチとデータメモリアクセスのステートであり、その前後のサイクルで命令Dと命令Fがあることから、プログラム開発支援装置380においてステージ番号8で消失したデータが、フェッチデータで命令Eであることが図7からも推測できる。同様に、ステージ番号11でも、フェッチデータで命令Gが消失している。
【0060】
ステージ番号9についてもプロセッサステータス信号ライン330より、プログラムメモリ302およびデータメモリ303への並列アクセスがあり、このときも何らかのデータが消失していることが推察される。この時のプロセッサステータス(トレースデータ)はプログラムメモリへのデータアクセスと、データメモリへのアクセスのステートであることから、消失したデータはプログラムメモリアクセスデータであることがわかる。
【0061】
しかし、この消失データはプログラムの前後からは必ずしも推測できるとは限らない。例えばロード命令であった場合、取得したトレース結果以前に推測が困難な演算結果がプログラムメモリに格納されているならば、そのデータを推測することは困難となり、図3のようにトレースデータを選択する半導体装置300では、消失データの復元はできないことになる。
【0062】
次に図8のタイムチャートに基づき本発明の動作を詳しく述べる。プロセッサ401から出力されるプロセッサステータスデータ430は、本実施例では簡略してプログラムフェッチ、プログラムメモリデータアクセス、データメモリデータアクセス(図8ではいずれも“(430)”にて示す)を示す3ビットの信号としている。これらの信号は、判別装置404を用いて2ビット化した判別信号442として出力する。
【0063】
表1はプロセッサステータス信号ライン430が示す上記3つの信号と2ビットの判別信号442との関係を示している。2ビットが示す意味は表1で示している通り、上位ビットはプログラムメモリとデータメモリヘの並列アクセスの場合を「1」とし、それ以外の場合を「0」で示し、下位ビットはデータメモリアクセスのみの場合を「1」とし、それ以外の場合を「0」で示すように回路化している。
【0064】
【表1】

Figure 2004206425
【0065】
この判別信号442は判別記憶装置405でプロセッサの毎サイクルごとに記憶、更新され、その下位ビットは選択信号440として出力される。信号441は判別信号4421の上位ビットを示している。図8中の選択信号(441,440)は、選択信号(441)と選択信号(440)をマージしたものを表しており、この選択信号が供給される選択器409,410,411の動作を説明する。
【0066】
選択信号(441,440)=(0,0)の場合、選択器489は、プロセッサステータス信号ライン430からトレースデータ460を出力し、選択器490はプログラムメモリ402のアドレスバス410からトレースデータ461を選択出力し、選択器491はプログラムメモリ402のデータバス411からトレースデータ462を選択出力する。
【0067】
選択信号(441,440)=(0,1)の場合、選択器489は、プロセッサステータ信号ライン430からトレースデータ460を出力し、選択器490はデータメモリ403のアドレスバス420からトレースデータ461を選択出力し、選択器491はデータメモリ403のデータバス421からトレースデータ462として選択出力する。
【0068】
選択信号(441,440)=(1,0)の場合、選択器489は、プロセッサステータス信号ライン430から記憶装置406で記憶したデータ450をトレースデータ460として選択出力し、選択器490は、データメモリ403のアドレスバス420から記憶装置407で記憶したアドレス451をトレースデータ461として選択出力し、選択器491は、データメモリ403のデータバス421から記憶装置408で記憶したデータ452をトレースデータ462として選択出力する。
【0069】
選択信号(441,440)が(0,0)、(0,1)、(1,0)の場合に選択される信号の流れを図9、図10、図11にそれぞれ示した。
【0070】
ここから、例として挙げているプログラムの処理を元に説明する。ステージ番号1〜7(選択信号=0,0)までは、プログラムメモリ402のバス410、411のみ使用していることから、そのバス上のデータのみをトレースデータとして用い、プロセッサステータスについては、そのステージに対応するステータスデータをトレースデータとすることにより、アドレス、データ、ステータスの各トレースデータが取得でき、この時の選択器489,490,491への選択信号(441,440)が(0,0)であることから、これらのデータが出力される。
【0071】
ステージ番号8においては、プログラムメモリ402へのプログラムフェッチおよびデータメモリ403へのデータアクセスの並列アクセスが発生している。プログラムメモリ402のバスは命令Eのフェッチデータで、データメモリ403のバスは、命令Cによるデータメモリアクセスデータc'でそれぞれ使用されている。
【0072】
この場合では、先の図7の説明で示したとおり、トレースデータ上で消失しても再現できるデータである命令Eのフェッチデータはトレースデータとせず、データメモリアクセスc'のデータをトレースデータとし、プロセッサステータについては、そのステージに対応するステータスデータをトレースデータとすることにより、データメモリ403に対するアドレス及びデータと、ステータスの各トレースデータが取得でき、この時の選択器489,490,491への選択信号(441,440)が(0,1)であることから、これらのデータが出力される。
【0073】
なお、この時のプロセッサステータスのトレースデータは、プログラムフェッチ/データメモリアクセスを示すことから、プログラム開発支援装置480により、このサイクルではプログラムフェッチも同時に行なわれ、命令Dまでフェッチされていることから、消失したデータは命令Eのフェッチデータであると推測できる。
【0074】
ステージ番号9においては、プログラムメモリ402のバス410、411は、命令Dによるプログラムメモリアクセスデータdで、データメモリ403のバス420、421は命令Dによるデータメモリアクセスデータd'でそれぞれ使用されている。この場合、どちらのバスデータもトレースデータ上で消失すると再現できないデータである。
【0075】
本発明では、両方のデータを消失すること無くトレースデータ上に載せることをその目的としており、その実現のために本実施形態では、次のステージ(ステージ番号10)では、続いて並列アクセスは発生せず、そして単発のアクセスにより、プログラムメモリバス上には、復元可能な命令Fよるプログラムフェッチデータが必ず載ることに着目し以下のようにしている。
【0076】
ステージ番号9ではプログラムメモリアクセスデータdのみをトレースする。そして、ステージ番号10では、プログラムメモリバス上には、推測可能なデータFが載っているため、それをトレースせずに、ステージ番号9で出力された、データメモリアクセスデータd'をトレースするために、ステージ番号9にて記憶装置407、408でそれぞれ記憶したアドレス451およびデータ452(図8では、一時記憶データメモリバス(451,452)にあるd')を取り込んでいる。
【0077】
このように、ステージ番号9では選択信号(441,440)は(O,O)であることから、プログラムメモリバスデータがトレースデータとなり、プロセッサステータスはそのステージに対応するステータスデータをトレースデータしている。そして次のステージ番号10では、ステージ番号9でのデータメモリへのアクセスデータを記憶したデータメモリアクセスデータを選択してトレースデータとしている、この時の選択信号(441,440)の内441は選択信号442を判別記憶装置405により1サイクル遅らせた信号を用いていることで、選択信号(441,440)は(1,0)となり、ステージ番号9のデータメモリ403のバスデータを記憶している記憶装置407,408のデータメモリ403のバスデータを選択している。
【0078】
またプロセッサステータスについても同様に、記憶装置406で記憶したステージ番号9でのステータスデータをステージ番号10でのトレースデータとすることで、今トレースデータとしている内容を把握することができるので、サイクルのずれているトレースデータに対しても、プロセッサステータスとトレースデータの相関から、その前後のサイクルの動作を把握できる。
【0079】
整理すると、ステージ番号9のトレースデータは、プログラムメモリ403のバスデータとプロセッサステータスとしては、プログラムメモリのデータアクセス/データメモリのデータアクセスを示すことになる。またステージ番号10のトレースデータは、データメモリ403のバスデータとプロセッサステータスとしては、プログラムメモリのデータアクセス/データメモリのデータアクセスを示すことになる。このことから連続した並列メモリアクセスを示すステータスデータを元に、プログラム開発支援装置により、消失したトレースデータ(この場合ではステージ番号10の命令Fのフェッチデータ)を推測することが可能である。
【0080】
ステージ番号11ではステージ番号8と同様であり、ステージ番号12ではステージ番号1〜7と同様の処理により、トレースデータを取得できる。以上のことから図1の技術と同様のリアルタイムトレース結果を、本発明では少ないトレースメモリ容量で取得することが可能であり、図3の技術では復元できないリアルタイムトレースデータを、本発明では同等のトレースメモリ容量でも復元することを可能としている。
【0081】
また、図5に示した様なトレースメモリを半導体装置の外部に配置している場合においても、図8の説明と同じく、リアルタイムトレースデータの復元が可能である。
【0082】
【発明の効果】
請求項1の発明は、2つのバスの内、一方が動作する時は、第1の記憶装置へトレースデータを転送し、双方が動作する時は、一方のデータを第1の記憶装置へ、他方のデータを第2の記憶装置に転送し、第2の記憶装置に格納したデータは、別サイクルで第1の記憶装置に転送し、第1の記憶装置に格納した双方のバスに対するデータをトレースデータとしたので、そのトレースデータを格納するトレースメモリのサイズを低減でき、トレース用の端子数も最小限にでき、かつ、並列アクセスがあった場合にも、デバッグのための実行回数を増やすことなく行え、プログラム開発にかかる時間を抑えることができる。
【0083】
請求項2の発明は、 2つの同期バスが、プログラムメモリバスとデータメモリバスであり、これらのバスへのアクセスとして、プログラムフェッチのみのサイクルでは、第1の記憶装置に格納するトレースデータを、プログラムメモリバスのデータおよびプロセッサステータスデータとし、プログラムフェッチでかつデータメモリへのデータアクセスのサイクルでは、第1の記憶装置に格納するデータを、データメモリバスのデータおよびプロセッサステータスデータとし、プログラムメモリへのデータアクセスでかつデータメモリへのデータアクセスのサイクルでは、第1の記憶装に格納するトレースデータを、プログラムメモリバスデータおよびプロセッサステータスデータとし、第2の記憶装置に格納するデータを、データメモリバスデータおよびプロセッサステータスデータとし、第2の記憶装置に格納されたデータは、次のサイクルで優先的にトレースデータとし、かつ、プロセッサ開発支援装置に導かれた第1の記憶装置に格納されていない消失データの復元は、導かれた第1の記憶装置に格納されたデータおよび実行プログラムからのメモリアドレス、プロセッサステータスにより、パイプライン処理で想定されるプログラムフェッチアドレスからの連続性、異なるメモリへの連続したデータアクセス検出から、プログラム開発支援装置でのソフトウエアによる復元処理を用い、消失したプログラムフェッチアドレスおよびデータ、ステータスの復元、異なるサイクルに格納されたデータの適正サイクルへの復元を行い、リアルタイムトレース結果としたので、対象となるアクセスバスと同数のトレースメモリを必要とせず、トレースメモリの本数を抑えたみとによるリアルタイム性を失ったトレースメモリの結果においても、プログラム開発支援装置により正確なリアルタイムトレース結果を取得できる。
【0084】
請求項3の発明は、請求項2でのアクセスの状況判別は、プロセッサから出力されるプログラムフェッチ信号、プログラムメモリデータアクセス信号、データメモリデータアクセス信号とし、プログラムフェッチのみ、プログラムフェッチでかつデータメモリへのデータアクセス、プログラムメモリへのデータアクセスでかつデータメモリへのデータアクセスの判別は、これらの信号による判別装置により生成される判別信号を用い、請求項2に記載の第1の記憶装置への格納データは、プログラムメモリバスデータ、データメモリバスデータ、第2の記憶装置に格納されたデータメモリバスデータを入力データとする選択装置からの選択データとし、その選択装置の選択制御信号は、先述の判別装置により生成される判別信号および、判別信号を毎サイクル記憶する記憶装置から出力される判別記憶信号を使用していることから、消失したトレースデータやサイクルがずれているトレースデータに対しても、プロセッサステータスとトレースデータの相関から、その前後のサイクルの動作状況を把握することが可能となる。
【0085】
請求項4の発明は、請求項1〜3のいずれかに記載の第1の記憶装置を半導体装置の外部に持つ半導体装置において、請求項1〜3のいずれかに記載のトレースデータを、前記第1の記憶装置に格納する手段を有し、前記第1の記憶装置に格納されたデータは、請求項1〜3のいずれかに記載の復元処理により、リアルタイムトレース結果の取得を可能としたものであり、トレースメモリ内蔵によるコスト増加を無くし、必要とされるトレース用端子数の増加を抑えることが可能となる。また、所望のトレース結果の取得に当たり、デバッグのための実行回数を減らせ、プログラム開発にかかる時間を抑えることが可能となる。
【図面の簡単な説明】
【図1】トレースメモリを内蔵した半導体装置の概略構成図
【図2】外部にトレースメモリを接続するタイプの半導体装置の概略構成図
【図3】公報に開示された半導体装置の概略構成図
【図4】トレースメモリを内蔵した本発明に係わる半導体装置の概略構成図
【図5】本発明に係わる別の半導体装置の概略構成図
【図6】図1の半導体装置でのデータトレースを示したタイムチャート
【図7】図3の半導体装置でのデータトレースを示したタイムチャート
【図8】図4の半導体装置でのデータトレースを示したタイムチャート
【図9】図4における選択信号が(0,0)の場合に選択される信号の流れを示した図
【図10】図4における選択信号が(0,1)の場合に選択される信号の流れを示した図
【図11】図4における選択信号が(1,0)の場合に選択される信号の流れを示した図
【符号の説明】
400 半導体装置
401 プロセッサ
402 プログラムメモリ
403 データメモリ
404 判別装置
405 判別記憶装置
406 記憶装置
407 記憶装置
408 記憶装置
489 選択器
490 選択器
491 選択器
470 トレースメモリ
480 プログラム開発支援装置[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a trace device useful for a program development support device.
[0002]
[Prior art]
In program development, it is a general debugging method to perform debugging based on the execution history (trace) of a program using a program development support device and a debugger. As trace information, a program address, program data, a processor status, other internal bus information, and the like are acquired. As the information amount increases, debugging efficiency increases.
[0003]
Therefore, a conventional example for acquiring a large amount of data is described below. Here, the acquisition of data of the program memory, the data memory, and the processor status is a trace target.
[0004]
FIG. 1 shows a conventional example in which a trace memory 170 is provided inside a semiconductor device 100. The processor 101 controls the program memory 102 and the data memory 103 by the program memory control signal 112 and the data memory control signal 122, and controls the address bus 110 and the data bus 111 of the program memory 102, the address bus 120 and the data bus of the data memory 103. 121, each data 110D, 111D, 120D, 121D, 130D of the processor status signal line 130 is stored in the built-in trace memory 170, and the stored bus information is transferred to the program development support device 180, and the program development is performed. The trace result is obtained by the support device 180 in real time.
[0005]
In this technique, the trace memory 170 in the semiconductor device 100 is provided with storage areas for program memory, data memory, and processor status, so that all data to be acquired is stored in the trace memory 170 by one execution. It is possible. Furthermore, it is possible to transfer the trace data as serial data to an external program development support device at a low speed after completing the acquisition of the trace data, so that even if the semiconductor device operates at a high speed, the trace is guaranteed in real time. .
[0006]
FIG. 2 shows a conventional example in which a trace memory 270 is provided on the program development support device 280 outside the semiconductor device 200. The processor 201, program memory 202,... In the semiconductor device 200 in FIG. 2 correspond to the processor 101, program memory 102,... In the semiconductor device 100 in FIG. It is attached.
[0007]
In the example of FIG. 2, the data 210D, 211D, 220D, 221D, 230D on each of the address bus 210, the data bus 211 of the program memory 202, the address bus 220, the data bus 221 of the data memory 203, and the processor status signal line 230 are shown. Is output from the semiconductor device 200 and stored in the trace memory 270 of the external program development support device 280, and the program development support device 280 acquires a trace result in real time.
[0008]
In FIG. 2, the data of the program memory 202, the data of the data memory 203, and the processor status signal are output from the semiconductor device 200 and are to be obtained by storing them in the trace memory 270 mounted on the external program development support device 280. All data can be stored in the trace memory 270 in one execution, and since the trace memory 270 is arranged outside the semiconductor device 200, the cost of the semiconductor device 200 can be reduced. .
[0009]
However, the techniques shown in FIGS. 1 and 2 have respective problems. In the technique shown in FIG. 1, since a storage area is provided in the trace memory 170 for each piece of data to be acquired, a large-capacity memory is required, and the cost increases due to an increase in chip size.
[0010]
In the technique shown in FIG. 2, since the data to be traced is output to the outside as a signal, an increase in the package cost due to an increase in the number of terminals or an external program support when the processor 201 in the semiconductor device 200 operates at a high speed. It becomes difficult to transfer data to the trace memory 270 of the device 280 in real time, and real-time tracing may not be possible.
[0011]
Then, there is the following technology to solve such a problem.
[0012]
A selector for selectively outputting the trace data to be stored in the trace memory in a time-division manner is provided, and the selected data is stored in the trace memory (for example, see Patent Document 1).
[0013]
A selector for selectively outputting internal bus information is provided, and selected data is stored in a trace memory (for example, Patent Document 2).
[0014]
A selector for selectively outputting a plurality of types of internal bus information is provided, and the selected data is output from the same terminal to the outside (for example, see Patent Document 3).
[0015]
[Patent Document 1]
JP-A-11-306040, "Emulator tracing device" (Claim 1, FIG. 1)
[Patent Document 2]
JP-A-2000-332205, "Semiconductor device with built-in processor" (paragraph [0049], FIG. 3)
[Patent Document 3]
JP 2002-149442 "Data processor" (paragraph [0032], FIG. 1)
[0016]
FIG. 3 shows a semiconductor device 300 to which those techniques are applied. In this example, the address bus 310 of the program memory 302 and the address bus 320 of the data memory 303, the data bus 311 of the program memory 302 and the data bus 321 of the data memory 303 are selected by selectors 350 and 351 according to a selection signal 340, respectively. ing. The selected data 361 and 362 and the data 330D of the processor stator signal line 330 are stored in the built-in trace memory 370 of the semiconductor device 300, and the stored data is transferred to the external program development support device 380. A real-time trace result is obtained at 380.
[0017]
In this technique, by increasing the number of data to be selected, the size of the built-in trace memory 370 can be suppressed as much as possible, and it is possible to avoid an increase in cost due to the trace memory, which is a problem of the related art.
[0018]
In addition, the selection signal 340 is provided with a technology for supplying a set value for selecting desired data and a technology for dynamically switching over time, such as giving priority to data other than a program by event control. be able to.
[0019]
Although not shown in FIG. 3, according to Patent Document 3, even when the trace memory is disposed outside the semiconductor device, a signal to be output to the outside is selected and output by a similar trace data selection technique. This makes it possible to reduce the number of trace terminals.
[0020]
[Problems to be solved by the invention]
However, the technique shown in FIG. 3 still has a problem. In the processor 301, data access to different memories (for example, the program memory 302 and the data memory 303) using a synchronous bus, such as a DSP (Digital Signal Processor), is performed in parallel, and arithmetic execution and memory access (data memory) are performed. When using a processor capable of executing in parallel, in order to acquire the program memory access history and the data memory access history in parallel data access to the memory as trace data, Since the execution is in the same cycle, the technique of FIG. 3 requires setting and execution at least twice.
[0021]
In order to acquire trace data of memory access executed in parallel in the same cycle, it is necessary to repeatedly perform setting and execution, which is a factor that lowers debugging efficiency for program developers. Was.
[0022]
The present invention has been made to solve the above-described problem, and can reduce the number of times of setting and execution for acquiring trace data for a plurality of memories, and improve the debugging efficiency of a program developer. The purpose is to provide the technology that will be.
[0023]
[Means for Solving the Problems]
In the present invention, trace data of memory access executed in parallel in the same cycle is converted into trace data by dividing the cycle into real-time trace data rearranged in the original cycle from the trace data and the execution program on the program development support device. It is characterized by restoring.
[0024]
Further, when the arithmetic execution and the data memory access are performed in parallel, the data stored in the trace memory is used as the data of the data memory bus, and the fetch data lost from the trace data and the execution program is restored on the program development support device. It is characterized by the following.
[0025]
According to the first aspect of the present invention, there is provided an execution history acquisition (trace) of a processor performing pipeline processing having two synchronous buses configured as semiconductor devices,
A first storage device and a second storage device on the same chip semiconductor device;
When one of the two buses operates, the trace data is transferred to the first storage device;
When both of the two buses operate, one is transferred to the first storage device and the other is transferred to the second storage device, and the data stored in the second storage device is transferred according to a predetermined rule. The trace data of both buses transferred to the first storage device in another cycle thereafter and stored in the first storage device is led to the program development support device external to the semiconductor device described above, and The data lost through the second storage device is restored according to the set rules, and the data is used as debug data as trace data of each bus.
[0026]
According to a second aspect of the present invention, the two synchronous buses according to the first aspect are a program memory bus and a data memory bus.
In the cycle of only the program fetch, the trace data stored in the first storage device is used as the data of the program memory bus and the processor status data,
In the program fetch and data access cycle to the data memory, the data stored in the first storage device is the data of the data memory bus and the processor status data,
In a cycle of data access to the program memory and data access to the data memory, trace data stored in the first storage device is used as program memory bus data and processor status data,
Data stored in the second storage device is data memory bus data and processor status data, and data stored in the second storage device is preferentially used as trace data in the next cycle.
[0027]
Further, the restoration of lost data not stored in the first storage device guided to the processor development support device according to claim 1 is performed by:
Based on the derived data stored in the first storage device, the memory address from the execution program, and the processor status, the continuity from the program fetch address assumed in the pipeline processing and the detection of continuous data access to different memories Using the restoration process by software in the program development support device, restore the lost program fetch address and data and status, restore the data stored in different cycles to the proper cycle, and obtain the real-time trace results Features.
[0028]
According to a third aspect of the present invention, in the access status determination according to the second aspect, the program fetch signal, the program memory data access signal, and the data memory data access signal output from the processor are provided.
Only the program fetch, the program fetch and the data access to the data memory, and the data access to the program memory and the data access to the data memory are determined by using a determination signal generated by a determination device based on these signals. Features and
The data stored in the first storage device according to claim 2 is a program memory bus data, a data memory bus data, and a data storage bus data stored in the second storage device from a selection device that has input data. As the selection data, the selection control signal of the selection device uses a determination signal generated by the above-described determination device and a determination storage signal output from a storage device that stores the determination signal every cycle.
[0029]
According to a fourth aspect of the present invention, in a semiconductor device having the first storage device according to any one of the first to third aspects outside a semiconductor device,
4. A storage device for storing the trace data according to claim 1 in the first storage device, wherein the data stored in the first storage device is a storage device. The real-time trace result can be obtained by the restoration processing described in (1).
[0030]
BEST MODE FOR CARRYING OUT THE INVENTION
In the semiconductor device of the present invention, it is assumed that a pipeline process having two synchronous buses, a program memory bus and a data memory bus, is performed. Therefore, the semiconductor device 100 of FIG. Further description.
[0031]
The processor 101 outputs a program address to the program memory 102 via an address bus 110, and performs a program fetch operation of a program code stored in the program memory 102 via a data bus 111. The fetched program code processes instructions by pipeline operations of decoding, execution, and write-back.
[0032]
When performing data access to the program memory 102, a data access instruction (for example, data read) is fetched and decoded, an address is generated in an execution phase, and a memory address is output through an address bus 110. The data read operation from 102 is performed. The read data is performed via the data bus 111, and the data read in the write-back phase is written into, for example, a register in the processor.
[0033]
Further, when performing data access to the data memory 103, a data access instruction (for example, data read) is fetched and decoded, an address is generated in an execution phase, an address is sent out on the address bus 120, and the data memory 103 is transmitted. From the data read operation. Read data is performed via the data bus 121, and in the write-back phase, the read data is written to, for example, a register in the processor.
[0034]
Whether the address to the program memory 102 output by the processor 101 is an address for program fetch or an address for data access can be grasped from the processor status signal line 130 of the processor 101.
[0035]
Access to the data memory 103 can also be grasped from the processor status signal line 130 output from the processor 101.
[0036]
As described above, in the technique of FIG. 1, the data bus 110 and the data bus 111 of the program memory 102, the address bus 120 and the data bus 121 of the data memory 103, and the data 110D, 111D, 120D, Even when the trace data of 121D and 130D are accessed in parallel, the execution history of the program memory 102, the data memory 103, and the processor status can be obtained at one time by one execution. However, as described above, the built-in trace memory 170 requires a large capacity.
[0037]
Next, the semiconductor device 300 of FIG. 3 will be further described from the viewpoint of pipeline processing.
The processor 301 outputs an address to the address bus 310 to the program memory 302, and performs a program fetch operation of the program code stored in the program memory 302 via the data bus 311. The fetched program code processes instructions by pipeline operations of decoding, execution, and write-back.
[0038]
When performing data access to the program memory 302, a data access instruction (for example, data read) is fetched and decoded, an address is generated in an execution phase, an address is output on an address bus 310, and the program memory 302 is accessed. From the data read operation. The read data is performed via the data bus 311. In the write-back phase, the read data is written to, for example, a register in the processor.
[0039]
When performing data access to the data memory 303, a data access instruction (for example, data read) is fetched and decoded, an address is generated in an execution phase, an address is output on an address bus 320, and the data memory From the data read operation. Read data is performed via the data bus 321 of the data memory 303, and in the write-back phase, the read data is written to, for example, a register in the processor.
[0040]
Whether an address to the program memory 302 output by the processor 301 is an address for program fetch or an address for data access is determined by data (trace data) 360 of the processor status signal line 330 output from the processor 301. I can understand. Access to the data memory 303 can also be grasped from the data 360 of the processor status signal line 330 output from the processor 301.
[0041]
For the bus data of each memory, the address is selected by the selector 350 and the data is selected and output by the selector 351. The selection signal is set to 340, and based on the state of the selection signal 340, is output as the trace data related to the memory. Address) 361 and trace data (data) 362.
[0042]
However, in the technique of FIG. 3, as described above, in order to acquire trace data of both memories when memory access (data access) is performed in parallel in the same cycle, the setting of the selector 350 must be set in the program memory. It is necessary to set and execute twice on the data memory side and the data memory side.
[0043]
Hereinafter, the present invention will be described based on embodiments. FIG. 4 shows a semiconductor device 400 according to the present embodiment. In the semiconductor device 400, the devices 401, 402, 403,... 480 correspond to the devices 301, 302, 303,.
[0044]
The devices newly added to FIG. 3 include a storage device 406 for storing data of the processor status signal line 430, a storage device 407 for storing the address of the address bus 420 of the data memory 403, and a data device of the data memory 403. A storage device 408 for storing data on the bus 421, a selector 489 for selecting the data from the processor status signal line 430 or the storage data 450 from the storage device 406 and outputting trace data (processor status) 460, There is a discrimination device 404 that generates a selection signal 440 and a discrimination signal 442 from the status signal line 430, and a discrimination storage device 405 that stores the discrimination signal 442 from the discrimination device 404 and generates the selection signal 441.
[0045]
The selector 490 selects one of the address of the address bus 410 of the program memory 402, the address of the address bus 420 of the data memory 403, and the storage data 451 from the storage device 407 to generate the trace data (memory address) 461. The selector 491 selects one of the data on the data bus 411 of the program memory 402, the data on the data bus 421 of the data memory 403, and the storage data 452 from the storage device 408, and traces (memory data) 462 Is output.
[0046]
Next, the processor operation of pipeline processing and acquisition of trace data in the semiconductor device 400 of FIG. 4 will be described below.
[0047]
The processor 401 outputs an address to the program memory 402 via the address bus 410, takes in the program code stored in the program memory 402 via the data bus 411, and performs a program fetch operation. The fetched program code processes instructions by pipeline operations of decoding, execution, and write-back.
[0048]
When performing data access to the program memory 402, a data access instruction (eg, data read) is fetched and decoded, an address is generated in an execution phase, and the address is output to an address bus 410 of the program memory 402. Then, a data read operation from the program memory 402 is performed. The read data is performed via the data bus 411 of the program memory 402, and in the write-back phase, the read data is written to, for example, a register in the processor.
[0049]
When performing data access to the data memory 403, a data access instruction (for example, data read) is fetched and decoded, an address is generated in an execution phase, and an address is transmitted via an address bus 420. A data read operation from the memory 403 is performed. Read data is performed via the data bus 421, and in the write-back phase, the read data is written to, for example, a register in the processor.
[0050]
Whether the address to the program memory 402 output by the processor 401 is an address for program fetch or an address for data access can be grasped from the processor status signal line 430 of the processor 401. Access to the data memory 403 can also be grasped from the processor status signal line 430.
[0051]
For the trace data, the discriminator 404 generates a selection signal 440 from the processor status signal line 430, and the discriminator storage 405 stores the discrimination signal 442 from the discriminator 404 and generates the selection signal 441. According to the states of the selection signals 440 and 441, the selector 489 selects either the data from the processor status signal line 430 or the processor status data 450 stored in the storage device 406, and stores the data 460 stored in the trace memory 470. Output.
[0052]
The selector 490 selects one of the data on the address bus 410 of the program memory 402, the data on the address bus 420 of the data memory 403, and the address 451 stored in the storage device 407, and stores the data 461 in the trace memory 470. Supply.
[0053]
The selector 491 selectively outputs data on the data bus 411 of the program memory 402, data on the data bus 421 of the data memory 403, or data 452 stored in the storage device 408, and stores data 462 in the trace memory 470. Supply. The data stored in the trace memory 470 is transferred to the program development support device 480, and generates trace data in real time by software processing with an execution program.
[0054]
The timing charts of FIGS. 6, 7, and 8 show how trace data is obtained when the following program is executed with respect to the prior art of FIGS. 1 and 3 and the present invention of FIG. .
Instruction G (Instruction not including memory access)
Instruction H (Instruction not including memory access)
Instruction A (Instruction not including memory access)
Instruction B (Program memory read instruction)
Instruction C (Data memory read instruction)
Instruction D (parallel instruction for program memory read / data memory read)
Instruction E (not including memory access / data memory read instruction)
Instruction F (Instruction not including memory access)
Instruction G (Instruction not including memory access)
Instruction H (Instruction not including memory access)
[0055]
The numbers in the left column correspond to the numbers of the signal lines and bus lines shown in FIGS. Also, in FIGS.
b is the program memory access address from instruction B,
c 'is the data memory access address from instruction C,
d is the program memory access address from instruction D,
d 'is the data memory access address from instruction D,
e ′ represents the data memory access address from the instruction E.
[0056]
In FIG. 6, the states of the processor status signal line 130 include program fetch (program acquisition to program memory), program memory data access (data access to program memory), and data memory access (data memory access). ) Are shown as "H" / "L" and "1" / "0"("H" and "1" are active). The processor status signal line 130 is shown as three bits in the order of these three signals. The same applies to FIGS. 7 and 8.
[0057]
In FIG. 6, since a trace memory 570 capable of storing all data to be acquired is provided, when the program fetch to the program memory 302 and the data access to the data memory 303 are performed in parallel at the stage number 8, the trace The data (110D, 111D), the trace data (120D, 121D), and the trace data (130D) can be acquired without loss as in [E], [c '], and [101], respectively, and without any cycle shift. ing. The same applies to stage numbers 9 and 11, which have been accessed in parallel.
[0058]
FIG. 7 shows an operation when a setting for dynamically changing the selection signal 340 in FIG. 3 is performed so that access to the data memory is acquired with priority. When the trace data is examined, the program fetch to the program memory 302 and the access to the data memory 303 are performed in parallel by the processor status signal line 330 at the stage number 8, so that the access to the data memory is acquired with priority. In this case, the instruction E of the fetch data is lost without being traced.
[0059]
The processor status (trace data) at this time is a state of program fetch and data memory access. Since there are instructions D and F in the cycles before and after that, data lost at stage number 8 in the program development support device 380 is obtained. It can be inferred from FIG. 7 that the fetch data is the instruction E. Similarly, at stage number 11, the instruction G is lost in the fetch data.
[0060]
As for the stage number 9, the processor status signal line 330 has a parallel access to the program memory 302 and the data memory 303, and it is presumed that some data has been lost at this time. Since the processor status (trace data) at this time is the state of data access to the program memory and the state of access to the data memory, it can be seen that the lost data is the program memory access data.
[0061]
However, this lost data cannot always be estimated from before and after the program. For example, in the case of a load instruction, if an operation result that is difficult to guess is stored in the program memory before the acquired trace result, it becomes difficult to guess the data, and the trace data is selected as shown in FIG. In such a semiconductor device 300, lost data cannot be restored.
[0062]
Next, the operation of the present invention will be described in detail with reference to the time chart of FIG. In this embodiment, the processor status data 430 output from the processor 401 is three bits indicating program fetch, program memory data access, and data memory data access (all indicated by “(430)” in FIG. 8). Signal. These signals are output as a two-bit discrimination signal 442 using the discrimination device 404.
[0063]
Table 1 shows the relationship between the above three signals indicated by the processor status signal line 430 and the 2-bit determination signal 442. As shown in Table 1, the meaning of the two bits is as shown in Table 1, where the upper bits are "1" for parallel access to the program memory and the data memory, and "0" otherwise, and the lower bits are the data memory. Circuits are shown as "1" for access only and "0" for other cases.
[0064]
[Table 1]
Figure 2004206425
[0065]
The discrimination signal 442 is stored and updated in the discrimination storage device 405 every cycle of the processor, and its lower bits are output as the selection signal 440. A signal 441 indicates upper bits of the determination signal 4421. The selection signals (441, 440) in FIG. 8 represent a merge of the selection signal (441) and the selection signal (440), and the operation of the selectors 409, 410, 411 to which the selection signal is supplied will be described.
[0066]
When the selection signal (441,440) = (0,0), the selector 489 outputs the trace data 460 from the processor status signal line 430, and the selector 490 selects and outputs the trace data 461 from the address bus 410 of the program memory 402. Then, the selector 491 selects and outputs the trace data 462 from the data bus 411 of the program memory 402.
[0067]
When the selection signal (441,440) = (0,1), the selector 489 outputs the trace data 460 from the processor stator signal line 430, and the selector 490 selects and outputs the trace data 461 from the address bus 420 of the data memory 403. The selector 491 selects and outputs trace data 462 from the data bus 421 of the data memory 403.
[0068]
When the selection signal (441,440) = (1,0), the selector 489 selectively outputs the data 450 stored in the storage device 406 as trace data 460 from the processor status signal line 430, and the selector 490 outputs the data memory 403 The address 451 stored in the storage device 407 is selectively output from the address bus 420 as trace data 461, and the selector 491 selects and outputs the data 452 stored in the storage device 408 from the data bus 421 of the data memory 403 as trace data 462. I do.
[0069]
The flow of signals selected when the selection signals (441, 440) are (0, 0), (0, 1), and (1, 0) are shown in FIGS. 9, 10, and 11, respectively.
[0070]
Hereafter, description will be made based on the processing of the program given as an example. Since only buses 410 and 411 of the program memory 402 are used for the stage numbers 1 to 7 (selection signal = 0, 0), only data on the bus is used as trace data, and the processor status is By using the status data corresponding to the stage as trace data, it is possible to obtain address, data, and status trace data.Because the selection signal (441,440) to the selectors 489,490,491 at this time is (0,0) , These data are output.
[0071]
At stage number 8, parallel access of program fetch to program memory 402 and data access to data memory 403 occurs. The bus of the program memory 402 is used for fetch data of the instruction E, and the bus of the data memory 403 is used for data memory access data c ′ by the instruction C.
[0072]
In this case, as described in the description of FIG. 7, the fetch data of the instruction E, which is data that can be reproduced even if it disappears on the trace data, is not used as the trace data, and the data of the data memory access c ′ is used as the trace data. For the processor status, by using the status data corresponding to the stage as trace data, it is possible to acquire the address and data for the data memory 403 and the respective trace data of the status, and at this time the selection signal (selection signal to the selector 489, 490, 491) Since (441,440) is (0,1), these data are output.
[0073]
Since the trace data of the processor status at this time indicates program fetch / data memory access, the program fetch is simultaneously performed in this cycle by the program development support device 480, and the instruction D is fetched. It can be assumed that the lost data is fetch data of the instruction E.
[0074]
In stage number 9, the buses 410 and 411 of the program memory 402 are used for program memory access data d by the instruction D, and the buses 420 and 421 of the data memory 403 are used for data memory access data d 'by the instruction D. . In this case, both bus data cannot be reproduced if they disappear on the trace data.
[0075]
The purpose of the present invention is to put both data on the trace data without losing it. In order to realize this, in the present embodiment, in the next stage (stage number 10), a parallel access Noting that the program fetch data by the recoverable instruction F is always loaded on the program memory bus by one-time access, the following is performed.
[0076]
At stage number 9, only the program memory access data d is traced. In the stage number 10, since the data F that can be inferred is on the program memory bus, the data F is not traced, and the data memory access data d ′ output in the stage number 9 is traced. At the stage number 9, the address 451 and the data 452 (d 'in the temporary storage data memory bus (451, 452) in FIG. 8) respectively stored in the storage devices 407 and 408 are fetched.
[0077]
As described above, since the selection signal (441, 440) is (O, O) at the stage number 9, the program memory bus data becomes the trace data, and the processor status traces the status data corresponding to the stage. Then, in the next stage number 10, the data memory access data storing the access data to the data memory in the stage number 9 is selected and used as trace data. Of the selection signals (441, 440) at this time, the selection signal 441 is the selection signal 442. Is used, the selection signal (441, 440) becomes (1, 0), and the storage device 407, 408 storing the bus data of the data memory 403 of the stage number 9 is used. The bus data of the data memory 403 has been selected.
[0078]
Similarly, regarding the processor status, by using the status data at the stage number 9 stored in the storage device 406 as the trace data at the stage number 10, the contents of the trace data can be grasped. Even for trace data that is deviated, the operation of the preceding and following cycles can be grasped from the correlation between the processor status and the trace data.
[0079]
In summary, the trace data of the stage number 9 indicates the data access of the program memory / the data access of the data memory as the bus data of the program memory 403 and the processor status. The trace data of stage number 10 indicates the data access of the program memory / data access of the data memory as the bus data of the data memory 403 and the processor status. From this, the lost trace data (in this case, the fetch data of the instruction F of the stage number 10) can be estimated by the program development support device based on the status data indicating the continuous parallel memory access.
[0080]
The stage number 11 is the same as the stage number 8, and the stage number 12 can acquire the trace data by the same processing as the stage numbers 1 to 7. From the above, a real-time trace result similar to the technique of FIG. 1 can be acquired with a small trace memory capacity in the present invention, and real-time trace data that cannot be restored by the technique of FIG. It is possible to restore even with the memory capacity.
[0081]
Further, even when the trace memory as shown in FIG. 5 is arranged outside the semiconductor device, the real-time trace data can be restored as in the description of FIG.
[0082]
【The invention's effect】
According to the first aspect of the invention, when one of the two buses operates, the trace data is transferred to the first storage device, and when both operate, one of the data is transferred to the first storage device. The other data is transferred to the second storage device, and the data stored in the second storage device is transferred to the first storage device in another cycle, and the data for both buses stored in the first storage device is transferred. Since the trace data is used, the size of the trace memory for storing the trace data can be reduced, the number of trace terminals can be minimized, and the number of executions for debugging is increased even when there is parallel access. It can be performed without any problem, and the time required for program development can be reduced.
[0083]
According to a second aspect of the present invention, the two synchronous buses are a program memory bus and a data memory bus, and as access to these buses, in a cycle of program fetch only, trace data stored in the first storage device is In the program fetch and data access cycle to the data memory, the data stored in the first storage device is used as the data of the data memory bus and the processor status data. In the data access cycle of the data access to the data memory, the trace data stored in the first storage device is used as program memory bus data and processor status data, and the data stored in the second storage device is stored in the data memory. bus Data stored in the second storage device as data and processor status data is preferentially used as trace data in the next cycle, and is not stored in the first storage device guided to the processor development support device. Restoration of lost data is performed based on the data stored in the first storage device and the memory address from the execution program, the continuity from the program fetch address assumed in the pipeline processing, and From continuous data access detection, using software restoration processing in the program development support device, restoration of lost program fetch addresses and data, status, restoration of data stored in different cycles to proper cycles, real-time Since the result was traced, Without requiring access bus as many trace memory composed, even in the results of the trace memory which has lost real-time by Mito with reduced number of trace memory, you can obtain an accurate real-time trace result by the program development support apparatus.
[0084]
According to a third aspect of the present invention, the determination of the access status in the second aspect is performed by using a program fetch signal, a program memory data access signal, and a data memory data access signal output from the processor. 3. The first memory device according to claim 2, wherein the determination of the data access to the data memory, the data access to the program memory, and the data access to the data memory is performed using a determination signal generated by a determination device based on these signals. Is program memory bus data, data memory bus data, and selection data from a selection device having data memory bus data stored in the second storage device as input data, and the selection control signal of the selection device is A discrimination signal generated by the discrimination device described above; Since the discrimination storage signal output from the storage device that stores the signal every cycle is used, even for lost trace data or trace data whose cycle is shifted, the correlation between the processor status and the trace data indicates It is possible to grasp the operation status of the previous and subsequent cycles.
[0085]
According to a fourth aspect of the present invention, in the semiconductor device having the first storage device according to any one of the first to third aspects outside the semiconductor device, the trace data according to any one of the first to third aspects is stored in the semiconductor device. Means for storing the data in the first storage device, wherein the data stored in the first storage device is capable of acquiring a real-time trace result by the restoration processing according to any one of claims 1 to 3 Therefore, it is possible to eliminate the increase in cost due to the built-in trace memory and to suppress the required increase in the number of trace terminals. Further, in obtaining a desired trace result, the number of times of execution for debugging can be reduced, and the time required for program development can be suppressed.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of a semiconductor device having a built-in trace memory;
FIG. 2 is a schematic configuration diagram of a semiconductor device in which a trace memory is externally connected;
FIG. 3 is a schematic configuration diagram of a semiconductor device disclosed in the official gazette;
FIG. 4 is a schematic configuration diagram of a semiconductor device according to the present invention having a built-in trace memory;
FIG. 5 is a schematic configuration diagram of another semiconductor device according to the present invention.
FIG. 6 is a time chart showing a data trace in the semiconductor device of FIG. 1;
FIG. 7 is a time chart showing a data trace in the semiconductor device of FIG. 3;
FIG. 8 is a time chart showing a data trace in the semiconductor device of FIG. 4;
FIG. 9 is a diagram showing a flow of a signal selected when the selection signal in FIG. 4 is (0, 0).
10 is a diagram showing a flow of a signal selected when the selection signal in FIG. 4 is (0, 1).
FIG. 11 is a diagram showing a flow of a signal selected when the selection signal in FIG. 4 is (1, 0).
[Explanation of symbols]
400 semiconductor device
401 processor
402 Program memory
403 data memory
404 discriminator
405 discrimination storage device
406 storage device
407 Storage device
408 storage device
489 selector
490 Selector
491 Selector
470 trace memory
480 Program Development Support Device

Claims (4)

半導体装置として構成された2つの同期バスを備えたパイプライン処理を行うプロセッサのトレース装置において、
同一チップの半導体装置上に第1及び第2の記憶装置を備え、
2つのバスの内、一方が動作する時は、第1の記憶装置へトレースデータを転送し、
双方のバスが動作する時は、一方のトレースデータを第1の記憶装置へ、他方のトレースデータを第2の記憶装置に転送し、
第2の記憶装置に格納されたデータは、定められた規則に従い、以降の別サイクルで第1の記憶装置に転送され、
第1の記憶装置に格納された双方のバスに対するトレースデータは、当該半導体装置の外部のプログラム開発支援装置に導かれ、
前述の定められた規則に従い、第2の記憶装置を経由したデータのために消失したデータの復元を行い、それぞれのバスのトレースデータとしてデバッグに供されることを特徴とするトレース装置。
In a trace device of a processor performing pipeline processing having two synchronous buses configured as a semiconductor device,
First and second storage devices on the same chip semiconductor device,
When one of the two buses operates, the trace data is transferred to the first storage device,
When both buses operate, transfer one trace data to the first storage device and the other trace data to the second storage device;
The data stored in the second storage device is transferred to the first storage device in another subsequent cycle according to a predetermined rule,
Trace data for both buses stored in the first storage device is led to a program development support device outside the semiconductor device,
A trace device for restoring data lost due to data passing through a second storage device in accordance with the above-mentioned prescribed rules, and being used for debugging as trace data of each bus.
上記2つの同期バスは、プログラムメモリバスとデータメモリバスであり、これらのバスへのアクセスとして、
プログラムフェッチのみのサイクルでは、第1の記憶装置に格納するトレースデータを、プログラムメモリバスのデータおよびプロセッサステータスデータとし、
プログラムフェッチでかつデータメモリへのデータアクセスのサイクルでは、第1の記憶装置に格納するデータを、データメモリバスのデータおよびプロセッサステータスデータとし、
プログラムメモリへのデータアクセスでかつデータメモリへのデータアクセスのサイクルでは、第1の記憶装置に格納するトレースデータを、プログラムメモリバスデータおよびプロセッサステータスデータとし、第2の記憶装置に格納するデータを、データメモリバスデータおよびプロセッサステータスデータとし、
第2の記憶装置に格納されたデータは、次のサイクルで優先的にトレースデータとすることを特徴とし、
かつ、プロセッサ開発支援装置に導かれた第1の記憶装置に格納されていない消失データの復元は、導かれた第1の記憶装置に格納されたデータおよび実行プログラムからのメモリアドレス、プロセッサステータスにより、パイプライン処理で想定されるプログラムフェッチアドレスからの連続性、異なるメモリへの連続したデータアクセス検出から、プログラム開発支援装置でのソフトウエアによる復元処理を用い、消失したプログラムフェッチアドレスおよびデータ、ステータスの復元、異なるサイクルに格納されたデータの適正サイクルへの復元を行い、リアルタイムトレース結果とすることを特徴とする請求項1記載のトレース装置。
The two synchronous buses are a program memory bus and a data memory bus.
In the cycle of only the program fetch, the trace data stored in the first storage device is used as the data of the program memory bus and the processor status data,
In the cycle of the program fetch and the data access to the data memory, the data stored in the first storage device is the data of the data memory bus and the processor status data,
In a cycle of data access to the program memory and data access to the data memory, trace data stored in the first storage device is used as program memory bus data and processor status data, and data stored in the second storage device is stored. , Data memory bus data and processor status data,
The data stored in the second storage device is preferentially used as trace data in the next cycle,
The restoration of lost data not stored in the first storage device guided to the processor development support device is performed based on the data stored in the guided first storage device, the memory address from the execution program, and the processor status. From the continuity from the program fetch address assumed in the pipeline processing, the detection of continuous data access to different memories, and using the restoration processing by software in the program development support device, the lost program fetch address and data, status 2. The tracing apparatus according to claim 1, wherein restoration of data stored in different cycles and restoration of data stored in different cycles to an appropriate cycle are performed to obtain a real-time trace result.
上記アクセスでの状況判別は、プロセッサから出力されるプログラムフェッチ信号、プログラムメモリデータアクセス信号、データメモリデータアクセス信号とし、プログラムフェッチのみ、プログラムフェッチでかつデータメモリへのデータアクセス、プログラムメモリへのデータアクセスでかつデータメモリへのデータアクセスの判別は、これらの信号による判別装置により生成される判別信号を用い、かつ、上記第1の記憶装置への格納データは、プログラムメモリバスデータ、データメモリバスデータ、第2の記憶装置に格納されたデータメモリバスデータを入力データとする選択装置からの選択データとし、その選択装置の選択制御信号は、前記判別装置により生成される判別信号および、判別信号を毎サイクル記憶する記憶装置から出力される判別記憶信号を用いることを特徴とするトレース装置。The situation determination in the above access is performed by using a program fetch signal, a program memory data access signal, and a data memory data access signal output from the processor, and only program fetch, program fetch and data access to data memory, and data to program memory The discrimination between the access and the data access to the data memory uses a discrimination signal generated by a discrimination device based on these signals, and the data stored in the first storage device is a program memory bus data, a data memory bus data. Data, data memory bus data stored in the second storage device as input data, as selection data from a selection device, and a selection control signal of the selection device includes a determination signal generated by the determination device and a determination signal Storage device that stores data every cycle Tracer which comprises using a determination storage signal et output. 請求項1〜3のいずれかに記載の第1の記憶装置を半導体装置の外部に持つ半導体装置において、
請求項1〜3のいずれかに記載のトレースデータを、前記第1の記憶装置に格納する手段を有し、前記第1の記憶装置に格納されたデータは、請求項1〜3のいずれかに記載の復元処理により、リアルタイムトレース結果の取得を可能とすることを特徴とする半導体装置。
A semiconductor device having the first storage device according to claim 1 outside a semiconductor device,
4. A storage device for storing the trace data according to claim 1 in the first storage device, wherein the data stored in the first storage device is a storage device. A semiconductor device capable of acquiring a real-time trace result by the restoration processing described in (1).
JP2002374876A 2002-12-25 2002-12-25 Tracing device Pending JP2004206425A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002374876A JP2004206425A (en) 2002-12-25 2002-12-25 Tracing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002374876A JP2004206425A (en) 2002-12-25 2002-12-25 Tracing device

Publications (1)

Publication Number Publication Date
JP2004206425A true JP2004206425A (en) 2004-07-22

Family

ID=32812764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002374876A Pending JP2004206425A (en) 2002-12-25 2002-12-25 Tracing device

Country Status (1)

Country Link
JP (1) JP2004206425A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133567A (en) * 2018-02-02 2019-08-08 富士通株式会社 Data receiver, data sending/receiving system, and method for controlling data sending/receiving system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133567A (en) * 2018-02-02 2019-08-08 富士通株式会社 Data receiver, data sending/receiving system, and method for controlling data sending/receiving system
US10459857B2 (en) 2018-02-02 2019-10-29 Fujitsu Limited Data receiving apparatus, data transmission and reception system, and control method of data transmission and reception system
JP7087419B2 (en) 2018-02-02 2022-06-21 富士通株式会社 Data receiving device, data transmission / reception system, and control method of data transmission / reception system

Similar Documents

Publication Publication Date Title
JP4996654B2 (en) Processor
JP2011118743A (en) Vector computer and instruction control method therefor
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JP2986104B2 (en) Information processing equipment self-test circuit
TW201823972A (en) Vector generating instruction
JP4465081B2 (en) Efficient sub-instruction emulation in VLIW processor
JP2004206425A (en) Tracing device
JPH11232211A (en) Dma control device and its method
JP5469106B2 (en) Computer system, test apparatus, test method, and test program
JP2006146757A (en) Register for debugging and data transfer method
JP2885197B2 (en) Arithmetic processing device and arithmetic processing method
JP5266651B2 (en) Branch prediction apparatus and branch prediction method using local branch history
KR100246465B1 (en) Apparatus and method for reducing cycle of microprocessor stack order
Groote et al. An elementary processor
JP3825709B2 (en) Pipeline processing method and processor device
JP6127883B2 (en) Semiconductor device and semiconductor device operation control method
JPH08129487A (en) Program sequence control circuit
JPH0559450B2 (en)
JPH0652013A (en) Tracing circuit
JPS6030977B2 (en) pattern generator
CN117453289A (en) Microprocessor, integrated circuit and electronic equipment without pipeline cavitation
JP2000057012A (en) Trace device
JP2006318172A (en) Microcomputer
JPS62259145A (en) Generating device for algorithmic pattern
JPH05181642A (en) Arithmetic unit