JP2008502974A - 共働する1つまたは複数のマスタと1つまたは複数のスレーブとを有するコンピュータ・システムをデバッグおよび/またはトレースするためのインターフェイス装置 - Google Patents
共働する1つまたは複数のマスタと1つまたは複数のスレーブとを有するコンピュータ・システムをデバッグおよび/またはトレースするためのインターフェイス装置 Download PDFInfo
- Publication number
- JP2008502974A JP2008502974A JP2007516099A JP2007516099A JP2008502974A JP 2008502974 A JP2008502974 A JP 2008502974A JP 2007516099 A JP2007516099 A JP 2007516099A JP 2007516099 A JP2007516099 A JP 2007516099A JP 2008502974 A JP2008502974 A JP 2008502974A
- Authority
- JP
- Japan
- Prior art keywords
- master
- interface device
- fifo
- masters
- fifo memory
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 claims abstract description 124
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 230000000630 rising effect Effects 0.000 claims description 5
- 230000003068 static effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Bus Control (AREA)
Abstract
選択されたアドレスで読取り可能にかつ書込み可能に適応された、少なくとも1つのスレーブ(SLj)と共働する少なくとも1つのマスタ(M1、M2、M3)を有するコンピュータ・システム(CS)内に、デバッグおよび/またはトレース専用のためにインターフェイス装置(D)が設けられ、各マスタはタクスを実行し、読取りおよび/または書込みの目的でスレーブ・アドレスを配信するように適応される。このインターフェイス装置(D)は、i)1つのマスタが実行するタスクを表すデータを記憶するために各メモリが該マスタに割り当てられる第1のFIFOメモリ(SMi)のグループと、ii)、相互におよび第1のFIFOメモリ(SFi)にリンク可能である、動的に割振り可能な第2のFIFOメモリ(DFk)のグループと、iii)マスタが実行しているタスクを考慮し、所与の時間に、各マスタによって必要とされるFIFOメモリのサイズを動的に計算し、対応する計算されたFIFOメモリのサイズに従って選択された、いくつかの第2のFIFOメモリ(DFk)を各マスタに動的に割り振るように構成された処理手段(PM)を有する。
Description
本発明は、共働する少なくとも1つのマスタと少なくとも1つのスレーブとを有するコンピュータ・システム(すなわち装置)、より正確には、そのようなコンピュータ・システム内でのトレースおよび/またはデバッグに関する。
「スレーブ」は、ここでは、1つまたは複数のアドレスを有し、データを記憶するように、かつ読取り可能に適応されたコンピュータ・コンポーネントとして理解されることを意図されている。そのようなコンポーネントは、例えば、複数のレジスタの集まり、入力ポートと出力ポートとを有するインターフェイス、UART、SPI、I2Cまたはタイマーであってもよい。さらに、「マスタ」はここでは、タスクを実行し、読取りおよび/または書込みの目的でスレーブ・アドレスを配信するように適応されたコンピュータ・コンポーネントとして理解されることを意図されている。そのようなコンポーネントは、例えば、マイクロプロセッサ、ダイレクト・メモリ・アクセス・コントローラ(またはDMA)、ホスト・インターフェイス、またはLCDドライバであってよい。
当業者により知られているように、新しいコンピュータ・システムが設計される場合、一般にコンピュータ・システムは除去される必要のあるデフォルトおよび/またはバグを有する。(例えば、マイクロプロセッサなどの)単一のマスタを有するコンピュータ・システムでは、アーム社(ARM ltd.)によって製造されているETM(「エムベッディド・トレース・モジュール(Embedded Trace Module)」)などの専用ツールを用いてバグまたはエラーの発生源または原因を見つけることは、現在「容易な」タスクである。実際に、マスタとスレーブとがメイン・バスに接続されている場合、この専用ツールをシステム・コア・ピン(system core pins)に接続することにより、FIFO(先入れ先出し―First In First Out―)メモリを介して、このメイン・バス上のすべての種類の転送を観測し、制御することが可能である。
「多層ahbアーキテクチャ(multilayer ahb architecture)」または「並列アーキテクチャ」などの複数のマスタを有するコンピュータ・システムでは、観測し、制御するマスタとスレーブとの数の増加、および/または複数のマスタが独立して動作することがあり、その結果、他のマスタに対して1つのマスタが何を実行しているのかを知ることが困難になるという事実により、デバッグおよびトレースははるかに困難である。さらに、ある種の状況では、システム・コアの内部速度が非常に高くなり、複数のマスタのうちの1つに割り当てられたFIFOメモリ内でオーバーフローが生じることがある。
この欠点を解決するために、各マスタに大きいサイズを有するFIFOメモリを割り当てることが可能であるかもしれないが、これはボード上にほとんど利用不可能な非常に広い面積を必要とすることになる。
したがって、本発明の目的はこの状況を改善することである。
このために、本発明は、選択されたアドレスで読取り可能にかつ書込み可能に適応された、少なくとも1つのスレーブと共働する少なくとも1つのマスタを有するコンピュータ・システムにインターフェイス装置(すなわち専用ツール)を提供し、各マスタはタスクを実行し、読取りおよび/または書込みの目的で少なくともスレーブ・アドレスを配信するように構成される。
このインターフェイス装置は、
−複数のマスタがそれぞれ実行するタスクを表すデータを記憶するために、各メモリがこれらマスタのうちの1つに割り当てられた第1のFIFOメモリのグループと、
−相互におよび複数の第1のFIFOメモリにリンク可能である、動的に割振り可能な第2のFIFOメモリのグループと、
−各マスタが実行するタスクを考慮して、所与の時間に、各マスタによって必要とされるFIFOメモリのサイズを動的に計算し、対応する計算されたFIFOメモリのサイズに従って選択された、いくつかの第2のFIFOメモリを各マスタに動的に割り振るように構成された処理手段と
を有することを特徴とする。
−複数のマスタがそれぞれ実行するタスクを表すデータを記憶するために、各メモリがこれらマスタのうちの1つに割り当てられた第1のFIFOメモリのグループと、
−相互におよび複数の第1のFIFOメモリにリンク可能である、動的に割振り可能な第2のFIFOメモリのグループと、
−各マスタが実行するタスクを考慮して、所与の時間に、各マスタによって必要とされるFIFOメモリのサイズを動的に計算し、対応する計算されたFIFOメモリのサイズに従って選択された、いくつかの第2のFIFOメモリを各マスタに動的に割り振るように構成された処理手段と
を有することを特徴とする。
本発明によるインターフェイス装置(すなわち専用ツール)は個別にまたは組み合わせて考慮される追加特性を含んでよく、特に、
−インターフェイス装置の処理手段は、各々必要とされるFIFOメモリのサイズを動的に計算するために、各マスタに割り当てられたおよび/または割り振られた第1および第2のFIFOメモリ各々の占有率を分析するように構成されてもよい。この場合、処理手段は占有率の各々を選択された閾値と比較することにより占有率を分析するよう構成されることが好ましく、対応する占有率が該閾値よりも大きい場合、少なくとも1つの選択された第2のFIFOメモリを1つの選択されたマスタに割り振ることが決定される、
−複数の第2のFIFOメモリが異なるサイズを有する場合、処理手段は、該メモリのそれぞれのサイズに応じて、および処理速度を表す動作パラメータに応じて、動的に割り振る第2のFIFOメモリを決定するように構成されてもよい、
−少なくとも2つのマスタに対する第2のFIFOメモリ割振りの必要性が、まだ割り振られていない(残りの)複数の第2のFIFOメモリの数より大きい場合、処理手段は、選択された優先順位メカニズム(priority mechanism)に従って、これらの残りの(1つまたは複数の)第2のFIFOメモリを割り振るように構成されてもよい、
−処理手段は、第1および第2のFIFOメモリ内でマスタ制御信号(およびオプションでスレーブが共働するマスタを介したスレーブ応答)を表すデータを記憶するために「トレース・モード」で動作し、これら記憶されたデータが第1および第2のFIFOメモリ内に占有している場所を解放するために、これらの記憶されたデータを出力時に提供するよう構成されてもよい、
−処理手段は、マスタ動作を比較する目的で、第1および第2のFIFOメモリ内に記憶されたマスタ制御信号(およびオプションで、スレーブ応答)を表すデータを提供するために「デバッグ・モード」で動作するよう構成されてもよい、
処理手段は、内部クロックの立ち上がり毎および/または立ち下がり毎にデータを提供するように構成されてもよい。
−インターフェイス装置の処理手段は、各々必要とされるFIFOメモリのサイズを動的に計算するために、各マスタに割り当てられたおよび/または割り振られた第1および第2のFIFOメモリ各々の占有率を分析するように構成されてもよい。この場合、処理手段は占有率の各々を選択された閾値と比較することにより占有率を分析するよう構成されることが好ましく、対応する占有率が該閾値よりも大きい場合、少なくとも1つの選択された第2のFIFOメモリを1つの選択されたマスタに割り振ることが決定される、
−複数の第2のFIFOメモリが異なるサイズを有する場合、処理手段は、該メモリのそれぞれのサイズに応じて、および処理速度を表す動作パラメータに応じて、動的に割り振る第2のFIFOメモリを決定するように構成されてもよい、
−少なくとも2つのマスタに対する第2のFIFOメモリ割振りの必要性が、まだ割り振られていない(残りの)複数の第2のFIFOメモリの数より大きい場合、処理手段は、選択された優先順位メカニズム(priority mechanism)に従って、これらの残りの(1つまたは複数の)第2のFIFOメモリを割り振るように構成されてもよい、
−処理手段は、第1および第2のFIFOメモリ内でマスタ制御信号(およびオプションでスレーブが共働するマスタを介したスレーブ応答)を表すデータを記憶するために「トレース・モード」で動作し、これら記憶されたデータが第1および第2のFIFOメモリ内に占有している場所を解放するために、これらの記憶されたデータを出力時に提供するよう構成されてもよい、
−処理手段は、マスタ動作を比較する目的で、第1および第2のFIFOメモリ内に記憶されたマスタ制御信号(およびオプションで、スレーブ応答)を表すデータを提供するために「デバッグ・モード」で動作するよう構成されてもよい、
処理手段は、内部クロックの立ち上がり毎および/または立ち下がり毎にデータを提供するように構成されてもよい。
本発明はまた、選択されたアドレスで読取り可能にかつ書込み可能に適応された少なくとも1つのスレーブと共働する少なくとも1つのマスタを有し、各マスタはタスクを実行し、読取りおよび/または書込みの目的でスレーブ・アドレスを配信するよう構成されたコンピュータ・システム(すなわち回路)と、上に紹介されたインターフェイス装置などのインターフェイス装置とを提供する。
本発明の他の特徴および利点は、以下の詳細な明細書と添付の図面とを考察することにより明らかになるであろう。
添付の図面は本発明を完成させるために役立つことがあるだけでなく、必要な場合、その定義をもたらすためにも役立つかもしれない。
初めに図1を参照して、非限定的な実施形態で、本発明によるインターフェイス装置Dが設けられたコンピュータ・システムCSの実施例を説明する。
以降の説明では、例示されたコンピュータ・システムCSは、アーム社のインターネット・サイト上、インターネット・アドレスwww.arm.comで説明されているものなどの多層ahbアーキテクチャを有することが考慮される。説明を再開すると、例示されるように、多層ahbはメイン・バスに接続された少なくとも1つのマスタMi(ここでは、i=1〜3であるが、1以上でなければならない)と、やはりメイン・バスに接続された少なくとも1つのahbスレーブSLj(ここでは、j=1〜5であるが、1以上でなければならない)とを有するコア・システムである。この多層ahbは、その時の必要性に応じて(1つまたは複数の)マスタと(1つまたは複数の)スレーブとのバス接続を切り換えることが可能な、ある種のスイッチ・ボックスとして機能するように構成される。
以下の説明では、例えばマスタMiはマイクロプロセッサであることが考慮される。しかしマスタは、例えばホスト・インターフェイスまたはLCDドライバであってもよい。ahbスレーブSLjは、例えば、UART、SPI、I2C、(1つまたは複数の)レジスタ(の集まり)、またはタイマーであってよい。
本発明は多層ahbアーキテクチャを有するコンピュータ・システムに限定されないことに注目することが重要である。実際に本発明は独立した方法で複数(少なくとも2つ)のマスタがそれぞれ異なるバスに接続される並列アーキテクチャを有する任意のコンピュータ・システムに適用されてもよい。
本発明は、デバッグおよび/またはトレースの目的でメイン・バスを介して送信され、ahbマスタMiによって出力された、ahbスレーブSLjに関連するデータを観測して、制御するためのインターフェイス装置(すなわち専用ツール)Dを提供する。
このため、インターフェイス装置Dは多層ahb(すなわちコア・システム)の選択された複数のピンに接続されたピンのグループを有する。このインターフェイス装置Dは、多層ahbが有するのと同じボード上に設置されてよく、それらのそれぞれのピンはプリント回路の伝導ストリップを介して接続される。
インターフェイス装置Dは、また、「スタティック」FIFOメモリSFiのグループと、「ダイナミック」FIFOメモリDFk(ここでは、k=1〜6であるが、1以上でなければならない)のグループと、スタティックSFiおよびダイナミックDFkの複数のFIFOメモリに結合された処理モジュールPMとを有する。
複数のスタティックFIFOメモリSFiは各々、複数のahbマスタMiのうち1つが出力する、該マスタの動作(すなわち、該マスタが実行するタスク)を表すデータを記憶するために、ahbマスタMiのうちの1つにそれぞれ割り当てられる。
複数のダイナミックFIFOメモリDFkは、要求に応じて、対応するahbマスタMiに割り振られるために、相互におよび/またはスタティックFIFOメモリSFiに動的にリンクされるように適応される。
スタティックSFiおよびダイナミックDFkの複数のFIFOメモリは、該ahbマスタMiによって出力されたデータの検索を可能とするために提供される。
所与の時間に、1つのahbマスタMiの動作は、1つまたは複数のその他のahbマスタMi’の動作よりもはるかに重要であることがある。したがって、該ahbマスタ動作を表すデータを記憶するために事実上必要とされるFIFOメモリのサイズは、所与の時間に、ahbマスタによってそれぞれ異なってよい。このため、処理モジュールPMはahbマスタMiの動作(すなわちahbマスタMiが実行するタスク)を考慮して、所与の時間に、各ahbマスタMiに必要とされるFIFOメモリのサイズの動的計算を担当する。処理モジュールPMはまた、処理モジュールPMが各ahbマスタMiに関して計算したばかりのFIFOメモリのサイズに従って選択された、いくつかのダイナミックFIFOメモリDFkを各ahbマスタMiに動的に割り振ることも担当する。
FIFOメモリのサイズを計算するために、処理モジュールPMは、各ahbマスタMiに割り当てられた各スタティックFIFOメモリSFiと、最終的に各マスタMiに割り振られた各ダイナミックFIFOメモリDFkとの占有率をリアルタイムで分析する。例えば、処理モジュールPMは、各占有率を選択された閾値とリアルタイムで比較する。この閾値は、例えば、90%と同等であってよい。選択された閾値は各マスタに関して同じであってよいが、マスタによって異なってもよい。さらに、(1つまたは複数の)閾値は調整可能であってもよい。ahbマスタMiに割り当てられたまたは割り振られたスタティックSFiまたはダイナミックDFkのFIFOメモリの占有率が関連する閾値より大きくなる場合、処理モジュールPMはこのahbマスタMiの動作がより多いFIFOメモリを必要とするものとみなす。したがって、メモリのオーバーフローを避けるため、処理モジュールPMは少なくとも1つの(別の)選択されたダイナミックFIFOメモリDFkを該ahbマスタMiに割り振る。
割り振られることになるダイナミックFIFOメモリDFkの数は、必要とされるFIFOメモリ・サイズによって決まる。しかし、この数は処理速度を表す動作パラメータによって決まってもよい。
ダイナミックFIFOメモリDFkのサイズは同じであることが好ましい。しかし、これは必須ではない。
FIFOメモリのサイズ(すなわち深度)は、各ahbマスタMiに割り振られることが可能な最低粒度を定義することになる。粒度が高い場合、より少ない多重化が実施されることが可能であり、高周波に達することが期待できる。しかし、毎回、ahbマスタMiに割り振られるFIFOサイズを増加する目的で膨大な(すなわち大規模の)ダイナミックFIFOメモリDFkが用いられる場合、ダイナミックFIFOメモリDFkの(小規模の)部分のみを用いてもよく、または全く用いなくてもよい。他方、用いられるダイナミックFIFOメモリDFkが小規模のサイズ(すなわち深度)を有する場合、他のahbマスタMiに割り振られる可能性のあるFIFOメモリ空間を割り振ることなしに、必要とされるFIFOメモリのサイズをリアルタイムで非常に正確に適用することが可能になる。しかし、この場合、最高処理速度は低下することになる。
複数のダイナミックFIFOメモリDFkが異なるサイズを有する場合、まず選択された速度パラメータに従ってダイナミックFIFOメモリのサイズ(すなわち深度)を選択し、次いで、計算されたダイナミックFIFOメモリのサイズに適応されたダイナミックFIFOメモリDFkの数を選択することが好ましい。
さらに、割り振られることになるダイナミックFIFOメモリDFkの数は、まだ割り振られていないダイナミックFIFOメモリによって決まってもよい。実際に、処理モジュールPMによって計算されたダイナミックFIFOメモリ割振りの(サイズに関する)必要性は利用可能なダイナミックFIFOメモリのサイズよりも大きくなることがある。この場合、処理モジュールPMは、選択された優先順位メカニズムに従って残りの(1つまたは複数の)ダイナミックFIFOメモリDFkを割り振ってよい。
例えば、優先順位メカニズムは、最後のバス観察ウィンドウの間に閾値の超過が検出された第1のマスタMiに残りのダイナミックFIFOメモリDFiを割り振るものであってよい。第1の代替的な優先順位メカニズムは、最高の優先順位を有するマスタMiに残りのダイナミックFIFOメモリDFiを割り振るものであってよい。第2の代替的な優先順位メカニズムは、最後のバス観察ウィンドウの間に最大の帯域幅を用いたマスタMiに残りのダイナミックFIFOメモリDFiを割り振るものであってよい(これはバス・プロファイリングを必要とする)。また、前述の優先順位メカニズムのうち少なくとも2つを組み合わせることも可能である。
優先順位メカニズムは、同じバス観察ウィンドウの間に異なる複数のマスタに割り振られたFIFOメモリ間で矛盾が生じた場合に用いられる点に注目することが重要である。「矛盾」は、ほぼ同じ値(または割合)を有する閾値超過を意味する。
処理モジュールPMが、ダイナミックFIFOメモリDFkは空であり、もはやマスタのデータ記憶に役立たないことを検出する場合、処理モジュールPMはその時点の必要性に従って、速やかに該メモリを他のマスタに再割振りすることが可能である点に注目することが重要である。
FIFOメモリSFiおよびDFkからデータを検索するために、インターフェイス装置Dの1つの出力チャンネルIiが各ahbマスタMiに割り当てられてよい。「出力チャンネルIi」はここでは、選択されたピンのグループ(すなわち集まり)を意味する。しかし、ピンの数を減らすためには、特にデータ転送速度が高すぎない場合、FIFOメモリSFiおよびDFkからのデータを時間的に多重化する(time-multiplex)ことも可能である。しかし、この場合、時間的に多重化されたデータを回復するために外部デマルチプレクサ(demultiplexer)を用いることが必須である。
前述のように、インターフェイス装置Dはデバッグ・モードおよび/またはトレース・モードで動作してよい。
デバッグ・モードは(1つまたは複数の)ahbマスタMiと、ことによると(1つまたは複数の)ahbスレーブSLjとによってステップ毎に(またはサイクル毎に)実行されている動作を検査することを目的とすることが想起される。したがって、インターフェイス装置DはそのFIFOメモリ内にマスタ制御データと、ことによるとスレーブ応答とを記憶し、各ステップ(またはサイクル)の終わりに、これらデータをインターフェイス装置Dの出力チャンネルIi上に出力する。スレーブ応答は該スレーブが共働するマスタを介して検索されてもよいことが想起される。
このモードでは、処理モジュールPMは、処理速度に応じて、記憶されたデータを内部クロックの立ち上がり毎および/または立ち下がり毎に出力する。一般に、処理速度が高い場合、内部クロック周期は短く、記憶されたデータを内部クロックの立ち上がり毎に出力することのみが可能である。
トレース・モードは、選択された時間間隔の間、1つまたは複数のバス上で生じている画像を提供することを目的とする。したがって、各時間間隔の間、(1つまたは複数の)バス上を流れるすべてのデータを記憶することは不可能であるため、これらのデータはFIFOメモリ内に一瞬記憶され、オンザフライ検索される。さらに、マスタ動作のみが関係するため、ahbマスタMiの書込みおよび/または読取りのみがFIFOメモリ内に記憶されることが好ましい。さらに、データは出力チャンネルIi上に出力される速度よりも速い速度で記憶される。したがって、インターフェイス装置Dは、FIFOメモリからのデータ検索を制御するために、さらに当然FIFOメモリ・クリアランス(memory clearance)のために低周波数で動作する内部クロックを有する。
読取り時および書込み時に空間的位置(spatial location)が除去されるため、このトレース・モードはサイクル的に正確(cycle-accurate)ではない。これをより正確に示す事例は、コンピュータ・システムが並列アーキテクチャを有する場合である。実際に、この場合、トレースは並列かつリアルタイムで観察される必要がある。したがって、異なる並列トレース間に同期化は存在しない。
このトレース・モードでは、FIFOメモリが十分大きく、クロック周期が十分低い場合、各出力チャンネルIi上で帯域幅の増加を可能とするために、処理モジュールPMは記憶されたデータをクロックの立ち上がり毎および立ち下がり毎に出力してよい。
インターフェイス装置D、および特にインターフェイス装置Dの処理モジュールPMは典型的にはハードウェア・モジュールの組合せで実現される。
本発明によるFIFOメモリのダイナミック割振りおよび再割振りの実施例が、次に図2と図3とを参照して説明される。
この実施例では、図1の実施例における事例のように、コンピュータ・システムCSは3つのahbマスタM1、M2およびM3、各メモリが複数のahbマスタMiのうちの1つに割り当てられた3つのスタティックFIFOメモリSF1、SF2およびSF3、ならびに動的に割振り可能であり、その時点の必要性に応じて、相互におよび、スタティックFIFOメモリSFiにリンク可能な6つのダイナミックFIFOメモリDF1〜DF6を有する。さらに、複数のスタティックFIFOメモリSFiは同じサイズを有さず(ahbマスタM2は2つのその他のahbマスタM1およびM3よりも大きな動作を有すると想定されるため、SF2はSF2およびSF3よりも大きい)、複数のダイナミックFIFOメモリDFkは同じ大きさを有する。さらに、出力チャンネルI1、I2およびI3は、データ出力の目的で、それぞれマスタM1、M2およびM3に割り当てられた複数のFIFOに割り当てられる。
図2に例示されているように、所与の時間に、インターフェイス装置Dの処理モジュールPMは、
−ahbマスタM1に割り当てられているスタティックFIFOメモリSF1を満たすために、ダイナミックFIFOメモリDF3とDF5とをahbマスタM1に、
−ahbマスタM2に割り当てられているスタティックFIFOメモリSF2を満たすために、ダイナミックFIFOメモリDF1、DF4およびDF6をahbマスタM2に、
−ahbマスタM3に割り当てられているスタティックFIFOメモリSF3を満たすために、ダイナミックFIFOメモリDF2をahbマスタM3に、
割り振ることを決定している。
−ahbマスタM1に割り当てられているスタティックFIFOメモリSF1を満たすために、ダイナミックFIFOメモリDF3とDF5とをahbマスタM1に、
−ahbマスタM2に割り当てられているスタティックFIFOメモリSF2を満たすために、ダイナミックFIFOメモリDF1、DF4およびDF6をahbマスタM2に、
−ahbマスタM3に割り当てられているスタティックFIFOメモリSF3を満たすために、ダイナミックFIFOメモリDF2をahbマスタM3に、
割り振ることを決定している。
この実施例は、所与の時間に、ahbマスタM2が2つの他のahbマスタM1およびM3よりもはるかに重要な動作を有する状況を表す。
しかし、この状況は漸進的に変化することがあり、したがって、処理モジュールPMをコンパイルして新しいFIFOメモリ・サイズを計算して、次いで異なるダイナミックFIFOメモリDFkを再割振りする。そのような再割振りの実施例は図3に例示されている。より正確には、この実施例では、インターフェイス装置Dの処理モジュールPMは、
−ahbマスタM1に割り当てられているスタティックFIFOメモリSF1を満たすために、ダイナミックFIFOメモリDF1、DF2およびDF5をahbマスタM1に、
−ahbマスタM2に割り当てられているスタティックFIFOメモリSF2を満たすために、ダイナミックFIFOメモリDF4をahbマスタM2に、
−ahbマスタM3に割り当てられているスタティックFIFOメモリSF3を満たすために、ダイナミックFIFOメモリDF3とDF6とをahbマスタM3に、
割り振ることを決定している。
−ahbマスタM1に割り当てられているスタティックFIFOメモリSF1を満たすために、ダイナミックFIFOメモリDF1、DF2およびDF5をahbマスタM1に、
−ahbマスタM2に割り当てられているスタティックFIFOメモリSF2を満たすために、ダイナミックFIFOメモリDF4をahbマスタM2に、
−ahbマスタM3に割り当てられているスタティックFIFOメモリSF3を満たすために、ダイナミックFIFOメモリDF3とDF6とをahbマスタM3に、
割り振ることを決定している。
これら2つの実施例では、すべてのダイナミックFIFOメモリDFkは割り振られているが、異なる必要性が存在するその他の状況ではこの状態は異なることがある。
不十分なダイナミックFIFOメモリのサイズ割振りが原因で、オーバーフローが検出されるたびにオーバーフロー・フラグを生じさせるためのステータス・レジスタを設けることが可能である。実際に、このオーバーフロー・フラグは対応するマスタのすべての動作が記憶されていない旨を通知することを可能とする。
また、ユーザに自分が複数のFIFOメモリ内に収集することを望む(1つまたは複数の)信号を信号リストから選択させることも可能である。いくつかの収集された信号が必須である場合、該リストに属する信号はオプションの信号であってよい。
本発明は、実施例としてのみ上で説明されたインターフェイス装置およびコンピュータ・システムの実施形態に限定されず、当業者により特許請求の範囲内にあると考慮されるかもしれないすべての代替的な実施形態を包括する。
したがって、先の説明では、共働する複数のマスタと複数のスレーブとを有するコンピュータ・システムの一実施例が説明されている。しかし、本発明は、少なくとも1つのマスタと少なくとも1つのスレーブとを有するコンピュータ・システムに適用する。それにもかかわらず、マスタおよびスレーブの数がより大きい場合、本発明によるインターフェイス装置はより有用である。
Claims (10)
- 選択されたアドレスで読取り可能にかつ書込み可能に適応された、少なくとも1つのスレーブと共働する少なくとも1つのマスタを有するコンピュータ・システムのためのインターフェイス装置であって、各マスタはタスクを実行し、かつ読取りおよび/または書込みの目的でスレーブ・アドレスを配信するように適応され、複数のマスタの実行したタスクを表すデータを記憶するために各メモリが前記マスタのうちの1つに割り当てられる第1のFIFOメモリのグループと、相互におよび前記第1のFIFOメモリにリンク可能である、動的に割振り可能な第2のFIFOメモリのグループと、マスタが実行しているタスクを考慮して、所与の時間に、前記複数のマスタの各々によって必要とされるFIFOメモリのサイズを動的に計算し、対応する計算されたFIFOメモリのサイズに従って選択された、いくつかの第2のFIFOメモリを前記複数のマスタの各々に動的に割り振るように構成された処理手段とを有することを特徴とするインターフェイス装置。
- 前記処理手段は、各々必要とされるFIFOメモリのサイズを動的に計算するために、前記複数のマスタの各々に割り当てられた、および/または割り振られた第1および第2のFIFOメモリの各々の占有率を分析するように構成されることを特徴とする、請求項1に記載のインターフェイス装置。
- 前記処理手段は前記占有率の各々を選択された閾値と比較することにより前記占有率を分析するよう構成され、対応する占有率が前記閾値より大きい場合、前記複数の第2のFIFOメモリのうち少なくとも選択されたメモリを前記複数のマスタのうちの選択されたマスタに割り振ることが決定されることを特徴とする、請求項2に記載のインターフェイス装置。
- 前記複数の第2のFIFOメモリは同じサイズを有し、前記処理手段は、処理速度を表す動作パラメータに応じて動的に割り振るべき前記複数の第2のFIFOメモリを決定するように構成されることを特徴とする、請求項1から3のいずれか一項に記載のインターフェイス装置。
- 少なくとも2つのマスタに対する第2のFIFOメモリ割振りの必要性がまだ割り振られていない残りの第2のFIFOメモリの数より大きい場合、前記処理手段は選択された優先順位メカニズムに従って前記残りの第2のFIFOメモリを割り振るように構成されることを特徴とする、請求項1から4の一項に記載のインターフェイス装置。
- 前記処理手段は、前記第1および第2のFIFOメモリ内でマスタ制御信号を表すデータを記憶するために「トレース・モード」で動作し、これらの記憶されたデータが前記第1および第2のFIFOメモリ内に占有している場所を解放するために、これらのデータを出力時に提供するよう構成されることを特徴とする、請求項1から5の一項に記載のインターフェイス装置。
- 前記処理手段は、マスタ動作を比較する目的で、前記第1および第2のFIFOメモリ内に記憶されたマスタ制御信号とスレーブ応答とを表すデータを提供するために「デバッグ・モード」で動作するよう構成されることを特徴とする、請求項1から6の一項に記載のインターフェイス装置。
- 前記処理手段は、内部クロックの立ち上がり毎にデータを提供するよう構成されることを特徴とする、請求項6または7の一項に記載のインターフェイス装置。
- 前記処理手段は、前記内部クロックの立ち下がり毎にデータを提供するよう構成されることを特徴とする、請求項8に記載のインターフェイス装置。
- 選択されたアドレスで読取り可能にかつ書込み可能に適応された、少なくとも1つのスレーブと共働する少なくとも1つのマスタを有するコンピュータ・システムであって、各マスタはタスクを実行し、読取りおよび/または書込みの目的でスレーブ・アドレスを配信するように適応され、前記請求項1ないし9の一項に記載のインターフェイス装置を有することを特徴とするコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04300375 | 2004-06-14 | ||
PCT/IB2005/051873 WO2005124556A2 (en) | 2004-06-14 | 2005-06-08 | Interface device for debugging and/or tracing a computer system comprising one or multiple masters and one or multiple slaves working together. |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008502974A true JP2008502974A (ja) | 2008-01-31 |
Family
ID=35427562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007516099A Withdrawn JP2008502974A (ja) | 2004-06-14 | 2005-06-08 | 共働する1つまたは複数のマスタと1つまたは複数のスレーブとを有するコンピュータ・システムをデバッグおよび/またはトレースするためのインターフェイス装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7660963B2 (ja) |
EP (1) | EP1761851B1 (ja) |
JP (1) | JP2008502974A (ja) |
CN (1) | CN100437512C (ja) |
AT (1) | ATE445186T1 (ja) |
DE (1) | DE602005017038D1 (ja) |
WO (1) | WO2005124556A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014035694A (ja) * | 2012-08-09 | 2014-02-24 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
JP2014203111A (ja) * | 2013-04-01 | 2014-10-27 | 三菱電機株式会社 | 先入れ先出し(fifo)メモリ再構成装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1947569A1 (en) * | 2007-01-22 | 2008-07-23 | ZealCore Embedded Solutions AB | A method and system for allocating memory spaces for trace data during debugging of a computer program |
GB2477936B (en) | 2010-02-17 | 2016-02-10 | Advanced Risc Mach Ltd | Trace data priority selection |
US9184987B2 (en) * | 2011-02-23 | 2015-11-10 | Tyco Fire & Security Gmbh | System and method for automatic configuration of master/slave devices on a network |
CN104915288A (zh) * | 2014-03-13 | 2015-09-16 | 阿里巴巴集团控股有限公司 | 测试方法及装置 |
US9568547B2 (en) * | 2015-03-17 | 2017-02-14 | Intel Corporation | Method, apparatus and system for dynamic bandwidth management in systems |
WO2017015222A1 (en) | 2015-07-20 | 2017-01-26 | Lattice Semiconductor Corporation | Low-speed bus time stamp methods and circuitry |
US10795750B2 (en) * | 2017-06-04 | 2020-10-06 | Apple Inc. | Auto bug capture |
CN111831330B (zh) * | 2020-07-10 | 2022-02-01 | 深圳致星科技有限公司 | 用于联邦学习的异构计算系统设备交互方案 |
CN113556294A (zh) * | 2021-06-01 | 2021-10-26 | 水发兴业能源(珠海)有限公司 | 数据收发方法、数据收发装置、服务器及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4603382A (en) * | 1984-02-27 | 1986-07-29 | International Business Machines Corporation | Dynamic buffer reallocation |
AU591702B2 (en) | 1985-09-17 | 1989-12-14 | Motorola, Inc. | Network data flow control technique |
JPH02117243A (ja) * | 1988-10-27 | 1990-05-01 | Toshiba Corp | パケット通信装置 |
US5642478A (en) * | 1994-12-29 | 1997-06-24 | International Business Machines Corporation | Distributed trace data acquisition system |
US5848264A (en) | 1996-10-25 | 1998-12-08 | S3 Incorporated | Debug and video queue for multi-processor chip |
KR100216368B1 (ko) * | 1997-06-11 | 1999-08-16 | 윤종용 | Atm 스위치에서 셀 손실율 개선을 위한 역방향압력 신호를 이용한 입력 버퍼 제어기 장치 및 논리버퍼 크기 결정알고리즘 |
US6618775B1 (en) * | 1997-08-15 | 2003-09-09 | Micron Technology, Inc. | DSP bus monitoring apparatus and method |
KR100311619B1 (ko) * | 1998-09-07 | 2001-12-17 | 서평원 | 분산처리 시스템에서 프로세서간 메시지 송수신 방법 |
US6408433B1 (en) | 1999-04-23 | 2002-06-18 | Sun Microsystems, Inc. | Method and apparatus for building calling convention prolog and epilog code using a register allocator |
US6678813B1 (en) * | 1999-10-28 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Dynamically adaptive buffer mechanism |
KR100436365B1 (ko) * | 2001-06-23 | 2004-06-18 | 삼성전자주식회사 | 비동기전송모드 기반의 트래픽 유형에 따른 지연적응적스케줄링 장치 및 방법 |
US6795360B2 (en) * | 2001-08-23 | 2004-09-21 | Integrated Device Technology, Inc. | Fifo memory devices that support all four combinations of DDR or SDR write modes with DDR or SDR read modes |
GB2379586A (en) * | 2001-09-06 | 2003-03-12 | Zarlink Semiconductor Ltd | Processing requests for service using FIFO queues |
KR100724438B1 (ko) | 2001-12-26 | 2007-06-04 | 엘지전자 주식회사 | 기지국 모뎀의 메모리 제어장치 |
JP2003258805A (ja) * | 2002-02-28 | 2003-09-12 | Toshiba Corp | バッファ制御装置及びバッファ制御方法 |
-
2005
- 2005-06-08 EP EP05749080A patent/EP1761851B1/en active Active
- 2005-06-08 CN CNB2005800194241A patent/CN100437512C/zh not_active Expired - Fee Related
- 2005-06-08 US US11/629,897 patent/US7660963B2/en not_active Expired - Fee Related
- 2005-06-08 WO PCT/IB2005/051873 patent/WO2005124556A2/en not_active Application Discontinuation
- 2005-06-08 AT AT05749080T patent/ATE445186T1/de not_active IP Right Cessation
- 2005-06-08 JP JP2007516099A patent/JP2008502974A/ja not_active Withdrawn
- 2005-06-08 DE DE602005017038T patent/DE602005017038D1/de active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014035694A (ja) * | 2012-08-09 | 2014-02-24 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
JP2014203111A (ja) * | 2013-04-01 | 2014-10-27 | 三菱電機株式会社 | 先入れ先出し(fifo)メモリ再構成装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2005124556A2 (en) | 2005-12-29 |
ATE445186T1 (de) | 2009-10-15 |
EP1761851A2 (en) | 2007-03-14 |
DE602005017038D1 (de) | 2009-11-19 |
EP1761851B1 (en) | 2009-10-07 |
WO2005124556A3 (en) | 2006-11-30 |
US7660963B2 (en) | 2010-02-09 |
CN100437512C (zh) | 2008-11-26 |
CN1969262A (zh) | 2007-05-23 |
US20080046674A1 (en) | 2008-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008502974A (ja) | 共働する1つまたは複数のマスタと1つまたは複数のスレーブとを有するコンピュータ・システムをデバッグおよび/またはトレースするためのインターフェイス装置 | |
EP2417528B1 (en) | Command and interrupt grouping for a data storage device | |
US8275579B2 (en) | Communication of a diagnostic signal and a functional signal by an integrated circuit | |
KR20150091663A (ko) | 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법 | |
US20090119460A1 (en) | Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space | |
JP2003006003A (ja) | Dmaコントローラおよび半導体集積回路 | |
JP2007164793A (ja) | データ処理システムの中に分散された分配型ダイレクトメモリアクセス手段 | |
JP2005353070A5 (ja) | ||
US8499106B2 (en) | Buffering of a data stream | |
US20150193358A1 (en) | Prioritized Memory Reads | |
CN109977037B (zh) | 一种dma数据传输方法及系统 | |
TW201447563A (zh) | Cpu的總線測試裝置及其方法 | |
US20140095846A1 (en) | Trace based measurement architecture | |
JP2009087282A (ja) | 並列計算システムおよび並列計算方法 | |
US9652370B2 (en) | Address range decomposition | |
CN110618872B (zh) | 混合内存动态调度方法及系统 | |
JP4594889B2 (ja) | 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム | |
JP2004310749A (ja) | 分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置 | |
WO2007039933A1 (ja) | 演算処理装置 | |
JP2007514214A (ja) | 使用率を計測するための計測ユニットを備える集積回路 | |
JP2003015968A (ja) | バスシミュレータ | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
JP5245617B2 (ja) | レジスタ制御回路およびレジスタ制御方法 | |
Medardoni et al. | Capturing the interaction of the communication, memory and I/O subsystems in memory-centric industrial MPSoC platforms | |
JP2014109938A (ja) | プログラム起動装置、プログラム起動方法、及びプログラム起動プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080606 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080605 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20091021 |