説明

スプリットバス及びタイムスロットインターフェースバス調停を用いる共有デバイス並びにメモリ

【課題】拡張されたデジタルシステムにおける調停方法及び装置を提供する。
【解決手段】調停装置は、共通のデータバスを分離するアイソレーションデバイス199と、プロセッサまたは他のバスマスターを含む共通のデータバスの内部部分へのアクセスを制御するプライオリティ−ベースのアービタ142、134と、複数のバスマスター295、297、外部メモリインターフェース124等を含む共通のデータバスの外部部分へのアクセスを制御するタイムスロットアービタとを含み、共通のデータバスへの効率的なアクセス制御を可能にする。共通の外部メモリ107は、アイソレートされた共通のデータバスの両部分を使用して、多数のデバイスによる排他的なまたは非排他的な使用のために割り当てられる。外部メモリにアクセスする外部デバイス112は、共通のデータバスの内部部分上で、1つまたはそれ以上のバスマスターと直接通信することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、時分割多重(TDM)デジタルシステムに関し、特に、拡張されたデジタルシステムにおける調停方法及び装置に関する。
【0002】
[従来の技術及び発明が解決しようとする課題]
多くのデジタルデバイスが、世界中で消費者により使用されている。これらのデバイスの各々においては、しばしば、構成要素間のシリアル及び/またはパラレルバスによる時分割多重(TDM)技術を用いて、個々の構成要素間でデジタルサンプルが送られる。これらのデジタルサンプルを送るシステムバスの使用に関する調停は、典型的に、システムバスに対して責を負うアービタで制御される。
【0003】
TDMデータストリームは、典型的に、反復データサイクルまたはフレームを含み、各データフレームは、複数のタイムスロットに分割されている。データフレームは、何度も繰り返すが、典型的には、データの各々の次のサイクルまたはフレームの関連タイムスロット中に次のデータサンプルを伴う。データフレームは、従来通り、フレーム同期信号または同様な信号と同期される。
【0004】
より一般的な意味では、タイムスロットは、システムバス、たとえば32ビットパラレルシステムバスの時間共有使用法に関連づけることができる。割り当てられたタイムスロットの間、特定のデバイスは、予め決められた形態で許される時間長までシステムの排他的な使用を行なうことができる。
【0005】
タイムスロットは、どんな特定の長さにもすることができ、特定のデータフレーム中の別々のタイムスロットは、異なる長さを持つことができる。
【0006】
特定のアプリケーションの要求に依存して、TDMシステムの従来の入力及び出力チャンネルは、典型的に、システムの主コントローラまたはプロセッサで割り当てられたデータフレーム内に決まった位置を有する。
【0007】
複数のデバイスのいずれかが使用できるタイムスロットを用いて、かなりの程度のフレキシビリティを提供することができる。たとえば、システムバス上のある特定のデバイスは、特定の作業を実行するのにかなりの時間(したがって、長いタイムスロット)を必要とする場合、従来通り、主コントローラからのバスアクセスを要求する。従来の主コントローラは、調停ルールの所定セット、たとえば、連続割り当て、または、先入れ先保存割り当てになる断続駆動されるアクセス要求にしたがって、TDMシステムバスの使用を割り当てる。
【0008】
TDMシステムバスの使用におけるフレキシビリティが良くなればなるほど、市場アプリケーションが広がる。従来のシステムでは、設計者は、典型的に、システムの主コントローラのプログラムコード内でこのフレキシビリティを実行する。このようなシステムでは、主コントローラまたはプロセッサは、その確立された調停ルールにしたがってTDMシステムバスへのアクセスを許す。このような従来のデバイスでは、フレキシビリティは、どんな特定の要求するデバイスのためにも望み通りにアクセスの長さを変えるのをコントローラに許すことによって提供される。
【0009】
従来のシステムバス調停は、主コントローラのかなりのリソースまたはオーバーヘッドを必要とし、これは、システムの複雑さがより大きくなるにつれて、増加するばかりである。このことは、特に、多プロセッサベースのシステムでは本当であり、この場合、プロセッサ間の通信データトラフィックは、調停されたシステムバスへのアクセスの要求が増加するにつれて増加する。また、システムのサイズが増大するにつれて、また、特定のシステムバス上のエージェント数が増すにつれて、調停処理は大変になる。このようにオーバーヘッドが増大すると、他の仕事に利用できる処理量が減少する結果となる。
【0010】
従来のシステムアービタはあるが、典型的に、スーパーコアまたはマイクロコントローラ内部のプライオリティ−ベースのスーパーアービタである。
【0011】
したがって、さもなければ従来通りに主コントローラにおいて要求されるかなりのオーバーヘッドを必要とすることなく、TDMシステムの使用を許すよりフレキシブルな調停アーキテクチャの必要性がある。
【発明の開示】
【課題を解決するための手段】
【0012】
本発明の原理にしたがって、データバスへのアクセスを調停する装置は、データバスの第1の部分と関連するプライオリティ−ベースのアービタを含む。タイムスロットアービタは、データバスの第2の部分と関連している。アイソレーションデバイスは、データバスの第1の部分をデータバスの第2の部分からアイソレートして、アイソレートされた場合に、プライオリティ−ベースのアービタが、データの第1の部分へのアクセスを制御し、かつタイムスロットアービタがデータバスの第2の部分へのアクセスを制御するのを可能にする。
【0013】
本発明の他の態様にしたがって複数のバスマスターから共通データバスへのアクセスを調停する方法は、共通データバスを2つのアイソレートされた部分に分離することを含む。共通データバスの第1の部分は、共通データバスの第1のアイソレートされた部分上で複数のそれぞれ要求するバスマスターに基づいて調停される。共通データバスの第2の部分は、共通データバスの第2のアイソレートされた部分上で各バスマスターのタイムスロット割り当てに基づいて調停される。
【0014】
本発明の特徴及び利点は、図面に関する以下の説明から当業者に明らかになるだろう。
【発明を実施するための最良の形態】
【0015】
本発明は、典型的なシステムのコントローラと関連するスーパーアービタから独立しているプログラム可能なタイムスロットインターフェース(PTSI)バスアービタ及びモニターを提供する。PTSIアービタは、特に、システムバス上のデバイス数が増えるにしたがって、コントローラシステムから調停オーバーヘッドを除去すると共に、固定連続または断続プライオリティベースの割り当て等の既存の方法のプログラム可能な代替方法を提供する。
【0016】
タイムスロットの使用のために単一アービタから調停する従来のデジタルシステムにおいて、主コントローラは、典型的に、調停及びバス割り当ての仕事を処理する。好適な実施例では、独立したアービタ(すなわち、PTSIアービタ及びバスモニター)が、主コントローラ(たとえば、マイクロコントローラ、マイクロプロセッサまたはデジタルシグナルプロセッサ(DSP))の外部に接続され、それにより、調停及びバス管理の負担を除去し、したがって、主コントローラの貴重な処理能力を開放する。2つのアービタの使用に関連する態様は、アービタによるタイムスロットの割り当てを適応するように調整するための履歴バッファの使用に関連する適応方法及び装置として、本発明において開示される。
【0017】
プログラム可能なタイムスロットインターフェース(PTSI)バス調停方式は、複数のプロセッサシステムを伴う、特に、複数のバスマスター及び共有の通信バスを含む“プラットフォーム”システムオンチップデバイスを伴う特定のアプリケーションを有する。これらの“プラットフォーム”チップは、典型的に、多数の市場アプリケーションに役立つようにもくろまれている。その結果、これらは、フレキシブルで拡張できるものである必要がある。これらのデバイスにおいては、バスを支配できるIPブロックを追加したり削除したりする能力が重要であり、これは、共有のバス帯域幅を分割して、システム性能必要条件に適合させる必要性によって、さらに複雑な状態になる。
【0018】
また、共通システムバス上の2つ(またはそれ以上)のアービタの使用は、キャッシュドコントローラ/プロセッサ、バスマスター可能な周辺装置(DMA及び外部ネットワークインターフェース)及び/または副周辺装置(メモリ、タイマ)の混合からなるシステムにとって特に魅力的である。
【0019】
本発明の原理にしたがって、第2のアービタ(すなわち、PTSIアービタ)は、システム内の1つのコントローラまたは複数のコントローラから独立したオンチップバス調停システムを提供する。このシステムは、1個のチップでも良いし、または、印刷配線基板(PCB)上の複数の集積回路でも良い。PTSIアービタは、多数のバスマスター(たとえば、プロセッサまたはエージェント)の間で共有のTDMパラレルバスに対してタイムスロットをプログラム可能に割り当てる。
【0020】
特定のエージェントが、割り当てられたタイムスロットの制御を目下必要としない場合は、PTSIアービタは、他のバスマスターによる使用に適切なタイムスロットを適応するように再割り当てすることができる。これは、共有のバス使用を、リアルタイムでシステムのデータフロー要求に適応可能にする。また、これは、外部メモリインターフェースを内部エージェントと共有するように外部バス支配デバイス(すなわち、共通プロセッサ)を斟酌している。
【0021】
PTSIアービタは、利用可能なタイムスロットの割り当てが“元の場所に”変更されるのを可能にするための複数のPTSI形成レジスタ群(たとえば、レジスタA&B)を含む。
【0022】
好適には、バスサイクル階層を使用して、統計を集めることができるシステムサイクルを作ることができ、また、動的形成レジスタ群交換を達成することができる。
【0023】
図1は、本発明の原理にしたがって、共通バスが、PTSIアービタの制御の下で、たとえば3状態バッファデバイスを用いて分離可能である、共通バス上での2つの異なるアービタの使用を示す。
【0024】
2つのアービタは、必ずしも互いに通信し合わない。たとえば、monarcアービタは、iASBからスプリットシステムバス、たとえばeASBの2つの部分を電気的に分離するために3状態バッファを“動かなくする”。次いで、プロセッサは、eASBメモリスペースへのアクセスを必要とする場合、そのアクセスを試みるが、エラー状態になり、断続サービスルーチンを始動させることによりそのエラー状態に作用するだろう。断続サービスルーチンは、monarcアービタが、その状態を固定して、3状態バッファを“動かす”ように要求する。
【0025】
特に、図1において、スーパーアービタ142は、コントローラ140のシステムバスと関連している。このコントローラとそのシステムバス(たとえば、内部iASBバスと呼ばれる)は、周辺装置と関連させることができる。本発明は、コントローラ140のシステムバスに接続された3状態メカニズム197を含む。開示された実施例では、3状態メカニズムは、外部バスを接続することができる外部ソケット(EICソケット)と関連づけられている。
【0026】
第2のアービタ(モニターアービタ回路MONARC)134は、外部eASBバスと呼ばれる共通システムバスの追加された部分つまり第2の部分に接続される。MONARCは、MONARCが調停責任を有する、eASBに接続された複数のデバイスまたはエージェントを持つことができる。他のバス及び通信パスは、アービタと周辺装置(図7に示される)間に存在するが、説明を簡単にするため図1には示されていない。
【0027】
図2及び図3は、本発明の原理にしたがって、一般に、スプリットバス構成及びタイムスロット割り当てを用いた、外部デバイス及び/または共有のメモリの処理を示す。
【0028】
常に出現する新たな技術と、縮小する特徴サイズにより、莫大な量の機能を1個の集積回路に集積し、それにより、システムオンチップ解決法を提供することが可能になった。このような解決法と関連しているのは、共有バス帯域幅、多数のバスマスター間のバス調停、縮尺可能な構成の開発、及び単一印刷配線基板上における多数のチップ間でメモリを共有しかつオーバーラップさせる手段の提供という問題である。提案される構成により、チップ上の主マイクロコントローラは、データフロー及びバス調停の維持に関連する仕事をせずに、効率的に機能することができる。
【0029】
マイクロコントローラ/DSPベースのチップ構成は、典型的に、バストラフィックを制御し、主マイクロコントローラ/DSPを介してシステムを通るデータフローを処理するという負担がかかる。その結果、主コントローラは、周辺装置からの個々の断続要求に応答する際及び/またはデータをあちこちに移す際に貴重なMIPSを失うことがある。断続駆動アーキテクチャは、インターフェース必要条件の変化に起因して新たなブロックを追加したり既存のブロックを置き換えたりすることに関してあまりフレキシビリティがない。複数のバスマスターを処理する複雑なバス調停方式は、最終的に主コントローラまたはバスから離れている他のバスマスターのいくつかをロックすることになり、したがって、全システムの故障を引き起こす。
【0030】
図2は、本発明の原理にしたがって、ハードウェアとソフトウェア機能を結合してプログラム可能なタイムスロット調停を提供する模範的なスプリットバス構成を示す。
【0031】
特に、図2に示されるように、アービタ1(すなわち、スーパーアービタ)142)は、プライオリティ−ベースのアービタであり、アービタ2(すなわち、MONARCアービタ)134は、プログラマブル タイムスロット アービタであり、共に、本発明の原理にしたがって機能する。
【0032】
各エージェント(すなわち、各バスマスター295,297)は、その間にコントローラ140を中断することなくオフチップ/オンボードメモリ107へまたはそれからデータを転送することができるタイムスロットが割り当てられている。しかしながら、コントローラ140は、常に、バスにアクセスする必要がある時はいつでも、データ転送を中断する能力を持っている。
【0033】
外部デバイス112は、外部メモリ107のオフチップ、共有のメモリバス、及び共有オーバーラッピング領域へのアクセスを要求することができる。
【0034】
ソケット197は、マイクロコントローラ140がオフチップメモリ107にアクセスする必要がある時、内部バスを外部バスに接続する。マイクロコントローラ140が、内部周辺装置291及び内部メモリ293にアクセスしている間は、ソケット197は、内部バスと外部バスを切り離している。次いで、アービタ2 134は、外部バスの制御を行ない、他のバスマスター295,297の各々に外部バスを許可するためにタイムスロットを割り当てることができる。
【0035】
また、アービタ2 134は、メモリバスへのアクセスのための外部デバイス112からの要求を受け入れることができる。各外部デバイス112は、全調停方式においてタイムスロットが割り当てられる。外部デバイス112は、オフチップメモリ107へのアクセスを必要とする場合、アービタ2 134へ供給される要求を発生する。外部デバイスのタイムスロットの間、アービタ2 134は、外部デバイス112へのバス許可と、メモリインターフェース124のピンを3状態にする制御信号とを発生して、外部デバイス112が、共有の外部メモリ107にアクセスできるようにする。
【0036】
マイクロコントローラ140は、バスマスター295,297、データ記憶、符号記憶及び外部デバイス112用に外部メモリ107の領域を割り当てるために、メモリマップを設定しなければならない。外部デバイス112は、共通メモリバスを利用する何か適当なデバイス、たとえばハードウェアアクセラレータ、共通プロセッサ、デジタルシグナルプロセッサ(DSP)または他のプロセッサデバイス(たとえば、マイクロプロセッサやマイクロコントローラ)とすることができる。
【0037】
バス許可の受信により、外部デバイス112は、その割り当てられたメモリスペースにアクセスし、必要なデータ処理を終わり、そして終了時そのバス要求の主張を解除することができる。
【0038】
また、外部デバイスは、たとえば、マイクロコントローラ140への中断をトリガするのに使用できる帰還信号299を、マイクロコントローラ140へ送ることができる。帰還信号299は、特定の作業の終了を示しているので、その後、マイクロコントローラ140は、たとえば、外部メモリ107の割り当てられた関連部分からの結果にアクセスすることができる。これは、インテリジェントデバイスのために、共通メモリバスを共存、共有させる効率的な方法を提供する。
【0039】
共有のメモリは、回路基板上の種々のデバイス間で符号及び/またはデータを共有するため及び/または種々のデバイス間の通信を促進するのに役立つ多くの効用を有する。同じ概念を拡張して、アービタ2 134は、メモリバスに関する多数の外部デバイス112からの要求を処理することができる。これは、外部デバイス112に、オフチップ外部メモリ107へのアクセスを提供する。
【0040】
図3は、オンボード外部メモリ107が、オーバーラップ部分を伴うまたは伴わずに、未共有のメモリ部分と共有のメモリに分割される、メモリ共有及びオーバーラップを示す。
【0041】
詳細には、図3に示されるように、外部デバイス112,114は、メモリバスを介して制御を必要とする場合、アービタ2 134への要求を発生し、その予めプログラムされたタイムスロットの間バスが許可される。この割り当てられたタイムスロットの間、アービタ2 134よりバスの制御が現在与えられている全てのデバイスと、共通メモリバスを共有する他の外部デバイス112,114は、新たに要求する外部デバイスが排他的に共有のつまりオーバーラップされたメモリ領域にアクセスすることができるように、それらのメモリバスピンを好適に3状態にする。
【0042】
本発明の原理にしたがって、新たなハードウェアモジュールは、製作された集積回路チップにおいて永久的に実行される前に、共有の外部メモリを用いて検査回路基板上で検査することができる。
【0043】
図4は、本発明の原理にしたがって、3状態バッファが、バスの2つの部分を接続してスーパーアービタに戻る調停制御を提供する特定のタイムスロットの間を除いて、バスのその部分における調停の責を負う監視アービタ回路(MONARC)134のより詳細なブロック図である。
【0044】
詳細には、図4において、模範的なMONARCアービタ134は、2つの主要な小ブロック、すなわち、eASBアービタ200及びeASBバスモニター202を含む。
【0045】
eASBアービタ200は、そのサービスされる周辺装置からの要求入力と、また(カウンタを駆動する)形成レジスタに記憶されている調停パラメータとを受け入れ、それに応じてeASBの所有権を許可する。
【0046】
eASBバスモニター202は、eASBバス上の処理を監視し、追加されるMONARCアービタ134の調停パラメータを適応するように再調整するためにコントローラ140で用いられる履歴情報及び/またはバス使用統計を収集する。MONARCアービタ134の調停パラメータの変更は、システムバスの3状態化された部分が、全共通バスシステムバス(すなわち、iASB及びeASB)の調停制御をスーパーアービタ142に許す特定のタイムスロットの間再接続される場合に許される。
【0047】
主コントローラ140(たとえば、ARM940T)は、この実行時MONARCアービタ134としっかり接続され、ここでは、コントローラスーパーコアは、MONARCアービタ134のプログラマブル タイムスロット性質でぴったり適合される内部スーパーアービタ142を含む。MONARCの調停形成レジスタは、別のバス通信メカニズムを介して、たとえば、ARM940Tデバイスにおいて利用可能なAPBインターフェースを介してコントローラ140によってアクセスされる。
【0048】
eASBバスモニター202は、図4に示されるように、eASBアービタ200に付属している。eASBバスモニター202は、タイムスロット履歴バッファ208を含むことができる。
【0049】
タイムスロット履歴バッファ208は、いくつかのまたは全部のタイムスロットの間に終わったバス処理に関する情報を記憶する。たとえば、最後の3つまたは最後の10個の処理に関する情報を、タイムスロット履歴バッファ208に保存することができる。したがって、eASBバスモニター202で得られる情報を使用して、追加のレジスタ群を含めて、1つまたはいくつかまたは全部のタイムスロットの間の共有のバス使用の統計を集めることができる。
【0050】
詳細には、開示されているタイムスロット履歴バッファ208は、たとえば、デバイス中に設計されているハードウェアバッファのサイズに基づいて選択できる、終わったeASB処理に関するアドレス、データ、制御信号及びアービタ状態を記憶することができるレジスタ群である。この履歴情報は、eASBバス作業に基づいて(eASBもしくはiASBに接続されているか、または全体システムの外部にあるかのどちらかの)周辺装置のためのトリガ信号を発生するのに使用することができる。
【0051】
また、タイムスロット履歴バッファ208は、多くの(数千の)システムサイクルにわたってMONARCアービタ134より得られる統計に関するレジスタも含むことができる。この情報は、MONARCアービタ134を制御するのに使用される調停及びタイムスロットパラメータを最適化するために、コントローラ140(またはシステムユーザー)によって使用される。
【0052】
開示された実施例では、MONARCアービタ134は、タイムスロット形成レジスタの冗長セットを含む。このタイムスロット形成レジスタの冗長セット(A&B)により、レジスタの1セットはMONARCアービタ134で使用され、他のセットはコントローラ140で書き込まれる。したがって、たとえば、タイムスロットパラメータの新たなセットを、形成レジスタセットB224に書き込み、MONARCアービタ134を、形成レジスタセットA220に前に記憶されているパラメータに基づいて機能させることができる。能動形成レジスタセットへのアクセスを防ぐために、ハードウェア連動デバイスが備えられる。他の実施例では、前の値が使用されている間に、1つのセットを書き込んで予めローディングすることができるように、二重バッファ方式を使用することができる。
【0053】
履歴情報は、システム性能と多分電力消費とを改善するためにシステムの主コントローラ140で適応可能な様式で使用される。また、履歴バッファは、システムデバッギングに役立つ。この場合には、ユーザーは、MONARCアービタ134より得られる統計/履歴情報を処理し、MONARCアービタ134で使用される調停ルールに関するPTSI調停または他のシステムパラメータ(たとえば、クロックイネーブルやメモリ割り当て)を修正して性能を改善する内在コントローラ140の利点を得ることができる。
【0054】
トリガ条件をタイムスロット履歴バッファ208に追加して、内部eASBバス処理に、外部デバイスで使用される外部事象フラグ(または、ビットI/O信号)をセットさせることができる。
【0055】
プログラマブルアドレスフィルタ210は、eASBバスとタイムスロット履歴バッファ208間のタイムスロット履歴バッファ208の前端で任意に使用され、獲得したバス処理のアドレス範囲を制限する能力を許す。
【0056】
開示された実施例では、ユーザーは、MONARCアービタ134の形成レジスタをプログラムすることができる。これは、開示された実施例において、第1の形成レジスタセット(たとえば、レジスタセットA)と第2の形成レジスタセット(たとえば、レジスタセットB)を含む交互ペアで行なわれる。レジスタセットの一方が使用中の間、他方は、主コントローラまたは他のシステムデバイスでアクセスされて、システムの関連TDMシステムバスにアクセスするためのタイムスロットが調節される。このように、まず、レジスタの非能動セットがプログラムされ、次いで、レジスタの能動セットがコントローラ140からの命令によって切り換えられる。少なくともeASBに関する調停パラメータの再プログラミングにより、システムのユーザーは、eASBの割り当てをより効率的に動的に調整することができる。タイムスロット形成レジスタセット220,224の一方が、能動に変えられるかまたは能動になると、他方の形成レジスタセットは、修正及び将来の使用に利用できるようになる。このように、共通システムバスのeASB部分の調停に関するタイムスロットパラメータは、システムサイクルあたり1回毎に、望むように再形成することができる。
【0057】
たとえば、開示された実施例では、ユーザーは、どのシステムバスサイクルの終わりでも、タイムスロット形成レジスタセット220,224を交換することができる。各システムサイクルを再形成することができるが、システムバス及びエージェントバスサイクルの構成を動的に変更するこの能力は、多くのシステムバスサイクル(すなわち、追加されるオーバーヘッドのため、好適にはシステムサイクル当たりに基づかない)後に使用されるものである。
【0058】
ユーザーは、システムバスサイクルを変更して、全体システムにおける異なるリアルタイム処理に合わせることができる。ユーザーは、ソフトウェアフローの優先認識に基づいて、またはモニターで集められる統計のいくつかを使用するより適応可能な処理により、これを行なうことができる。
【0059】
プログラマブル タイムスロット形成レジスタセットA&B220,224の模範的な内容は、表1に示される。表1において、PTSIシステムパラメータは、システムサイクルを構成するのに使用される模範的な高レベルパラメータを指し、表2において、PTSIエージェント タイムスロットパラメータは、各タイムスロットの長さを限定するのに使用される模範的な低レベルパラメータを指している。
【表1】

【0060】
決定型モードでは、各タイムスロットは自動的に与えられ、これらは最大の予めプログラムされた長さだけ持続する。各エージェントタイムスロットに戻るためにシステムサイクルに割り当てられる時間と待ち時間は、予め決定される。
【0061】
適応型モードでは、タイムスロットは、要求された場合のみエージェントに許可され、エージェントは、最大時間前にその割り当てられた時間サイクルの使用を終了することができる。この場合には、システムサイクルは、データポートを介するデータフローの要求で命令されたアコーディオンのようにふるまう。
【0062】
エージェント タイムスロット数は、各システムサイクルにおけるタイムスロットのプログラム可能な数を指す。eASBバスの各エージェントは、所定のシステムサイクル内で0,1またはそれ以上のタイムスロットにプログラムされ得る。
【0063】
エージェント数は、データポートの数、すなわち、eASBバスに取り付けられ、MONARCアービタで管理されるユニバーサルシリアルバス(USB)、イーサネット(登録商標)メディアアクセスコントローラ(MAC)、周辺機器インターフェース(PCI)、高速シリアル入力/出力(HSIO)及び他のバスマスター可能デバイスの数を指す。
【0064】
タイムスロットシーケンス(エージェントID)は、エージェントタイムスロットが生じるプログラム可能な順番を指す。
【0065】
システム当たりの単位サイクルの数は、最も低レベルのバスクロックサイクルを指す。多くの単位サイクルが、エージェントタイムスロットを作るために選択される。
【0066】
他のレジスタ値、たとえばPTSIエージェントタイムスロットは、表2に示されるようなものとすることができる。
【表2】

【0067】
各エージェントタイムスロットのための完全単位サイクル数は、アービタが次のタイムスロットに移動中であるので、バスを譲る前にバス処理を終了するようにエージェントを斟酌するために各エージェントサイクルの終わりにプログラムされる。
【0068】
図4に示されるeASBバスモニターは、さらに、統計レジスタ204を含む。バスモニターで集められる統計は、主コントローラ140で読み出し可能な統計レジスタ204に更新される。この統計は、(MONARC更新タイムスロットにおける)あらゆるシステムバスサイクルの終わりに有効になる。統計レジスタ204で維持される統計は、あらゆるシステムバスサイクルの終わりにリセットまたは初期化される。統計情報は、形成レジスタで使用されるタイムスロット関連パラメータと共に、所定のアプリケーションのために使用されたプログラムされたPTSI値の効率を特徴づけるために使用される。
【0069】
表3は、eASBバスモニター202によって統計レジスタ204に維持されるいくつかの模範的な統計を含む。
【表3】

【0070】
調停及び/または内部バスモニターに関する本発明の原理は、多くのタイプのシステムに、特に共有のバスアーキテクチャを使用する“システム−オンチップ”デバイスに適用可能である。TDMシステムバスシステムにおけるタイムスロットの共有の使用に関して説明されたが、この概念は、多くの他のタイプのアプリケーションへの適用可能性を有する。
【0071】
図5は、本発明の原理にしたがって、階層的なバスサイクル定義の使用に基づいたPTSIバス調停概念を使用する、一連のシステムサイクルの各々における模範的なタイムスロットを示すタイミング図である。
【0072】
詳細には、図5において、最低レベルにあるバスは、単位サイクル速度でトグルされる。単位サイクル速度は、バスマスターのうちの1つのバスマスターのクロック速度に頼っても良いし頼らなくても良い。これは、バス信号を切り換えることができる最も速い速度である。シミュレーションと特別なレイアウト考察は、ローディング、寄生及びノイズ特性が選択された単位サイクル速度をサポートできるのを保証するように行なわれなければならない。
【0073】
第2レベルバスサイクルは、エージェントタイムスロットと呼ばれる。これは、所定のバスマスターに割り当てられたバス所有権の時間である。これはプログラム可能であり、所定数の単位サイクルに基づいている。所有権は、あるバスマスターエージェントから他のバスマスターエージェントへ渡されるので、バスが複数のマスターで同時に駆動されないことを保証するためのプロトコルが確立される。
【0074】
最高レベルにおいて、PTSIは、あるシステムサイクル速度を有する。システムサイクルは、プログラム可能な数のエージェントサイクルで構成される。1つのシステムサイクル(または、多くのシステムサイクル)の終了は、タイムスロット形成レジスタ220,224に記憶されているPTSI調停パラメータを変更するために、及び/または、バス使用統計を集める/更新するために使用される。同じエージェントは、システムサイクルの多くの異なる時間(変化するエージェントサイクル長を伴う)に出現することができる。
【0075】
タイムスロット形成レジスタ220,224におけるタイムスロット形成パラメータは、バス所有権を管理すると共にエージェントタイムスロット及びシステムサイクル属性を定義する状態マシン230を確立する。リセットにより、このシステムは、システムセットアップに適する初期化状態になるだろう(たとえば、主コントローラ140は、別のAPBバスの所有権を持つだろう)。コントローラ140は、このAPBバスを用いて、タイムスロット形成レジスタ220,224のパラメータを設定する。
【0076】
この初期化中、iASB及びeASBバス要求は連結され、スーパーアービタは、全メモリマッピングされたアドレススペースへのアクセスを有する。
【0077】
主コントローラ140は、望ましい値をタイムスロット形成レジスタ220,224に設定した後、MONARC PSI形成が呼び出されるのを許すイネーブルビットを設定する。このポイントオンから、PTSI値の選択されたセットが使用され、指定されたエージェントは、プログラムされた順番にバス所有権が与えられる。最初のPTSI形成が“Aセット”220に記憶されている値に基づいてランしている間に、形成レジスタの非能動セット(たとえば、最初に“Bセット”224)を用いて、他のPTSI形成を設定することができる。形成レジスタの非能動セットは、いずれかのシステムサイクルの終わりに呼び出すことができる。
【0078】
開示された実施例では、PTSI状態マシン230の2つの動作モードが設定されている。
【0079】
たとえば、eASBアービタ200は、決定型モード(モード0)か適応型モード(モード1)のどちらかで動作することができる。
【0080】
モード0は、時間領域で完全に決定型になっている。このモードでは、各エージェントサイクルは、能動的タイムスロット形成レジスタ220または224で示される完全なプログラムされた持続期間続く。この決定型モードでは、各バスマスターは、固定時間の間バス所有権を持っているばかりでなく、そのタイムスロットの間バスを横切るデータを転送する必要があるか否かにかかわらず、そのバス所有権タイムスロット間に決まった時間も持っている。
【0081】
一方、モード1は、受け取ったバス要求信号に基づいてラウンドロビン−割り当てができる適応型モードである。この適応型モードは、eASB上の種々のエージェント及び他の周辺装置からのバス要求入力信号を使用して、次の割り当てられたバスマスターが、近づいてくるエージェントサイクルが割り当てられる必要性を持っているかどうかを判定する。もしそうでなければ、状態マシン230は、プログラムされたシステムサイクルシーケンスの全部を終えて、どのバスマスターが次にバス所有権を与えられるかを判定する。
【0082】
エージェントサイクルは、バスマスターまたはエージェントに割り当てられると、バスマスターまたはエージェントが(エージェントサイクルが終わる前に)そのバス要求信号を除去するまで、あるいは、形成レジスタでそれに割り当てられた完全なタイムスロット持続期間の間、所有権を持つ。
【0083】
エージェントサイクルが、(バス要求の除去によって)早めに終わった場合は、 状態マシン230は、PTSIプログラムされたシーケンスで持続する。
【0084】
このように、適応型調停モードは、タイムスロットのプログラムされたシーケンスと、最大時間量としてプログラムされたタイムスロット持続期間とを使用して、“必要に応じて”を基本としてバス所有権を割り当て、割り当てられたタイムスロットのさもなければ未使用となる部分の間の再割り当てと改善された効率とを可能にする。
【0085】
適応型調停モードでは、システムサイクルの持続期間は、eASBバスのための命令に基づいて変わる。このモードでは、エージェントタイムスロット限界が、特定のエージェントにeASB帯域幅の最小部分が保証されるのを確実にするために設定される。
【0086】
一般的にPTSI方式と、特にMONARCアービタ134は、提案されたチップアーキテクチャに関してそれらの機能を述べることによりさらに説明される。このために、図6は、本発明の原理にしたがって、ADSL可能デバイスのアプリケーション例に含む、多くのアプリケーションに役立つプラットフォーム回路のブロック図である。図7は、図6に示されるプラットフォーム回路のより詳細なブロック図である。
【0087】
図6及び図7において、以下の定義及び説明が適用される。
主コントローラ140は、何か適当なプロセッサまたは汎用コントローラ、たとえばマイクロプロセッサ、マイクロコントローラまたはデジタルシグナルプロセッサ(DSP)とすることができる。開示された実施例では、主コントローラ140は、ARM940Tコントローラであり、ARMと呼ばれる英国会社からの32ビットマイクロコントローラである(しかし、汎用プロセッサまたはコントローラでも良い)。ARM940Tは、4kバイトのデータキャッシュと4kバイトの命令キャッシュを含む。もちろん、何か適当な多目的マイクロコントローラまたは他のプロセッサを使用することもできる。
【0088】
MONARCは、モニターアービタ回路を表わす頭字語である。
MONARC PTSI方式は、eASBバスの所有権のためにMONARCアービタ134で実行される処理を指す。
【0089】
ARMスーパーコアは、ARM940Tコントローラのスーパーセットと、それに含まれる機能ブロックを指す。図6及び図7に示される開示された実施例では、周辺装置が追加され(たとえば、プログラマブル中断コントローラなど)留と共に、ソケットが、スーパーコアを構成するためにARM940Tのバスに追加されている。
【0090】
外部インターフェース回路(EIC)は、共通システムバスを、ARMコントローラ140及びスーパーアービタ142と関連する第1の部分と、追加されるMONARCアービタ134と調停責任を有する関連周辺装置とに関連する第2の部分に分離する3状態機能を含む。したがって、EICは、ARMコントローラ140の既存のASBバスを、追加される回路に関連するバスの第1の部分から電気的に分離するための3状態バッファを含み、共通システムバスの第1の部分、すなわちスーパーコアの内部的なもの(iASB)と、共通システムバスの第2の部分、すなわちスーパーコアの外部的なもの(eASB)とを含むスプリットバスを作る。外部インターフェース回路により、ARMスーパーコアの外部のブロックをARMコントローラ140のiASBバスに追加することができる。
【0091】
スーパーコアiASBバスがeASBに接続されると、ARMスーパーコアは、その全メモリマップスペースへの(すなわち、共通システムバスの両部分iASB,eASBに接続された周辺装置への)直接アクセス能力を持つ。
【0092】
ARMスーパーコア140は、ARMからAMBAバスプロトコルを使用する2つのバスを発生する。APBはARM周辺バスであり、遅いほうの周辺装置で使用されるものである。ASBはARM高速バスであり、高速周辺装置で使用されるものである。これは、eASBエージェントのための“遅い裏口”アクセスを提供する。また、これは、遅いほうの周辺装置のいくつかへの直接的なインターフェースにも使用される。APBバスは、iASBの離れるAPBブリッジで発生する。
【0093】
内部ダイレクトメモリアクセス(IDMA)126は、eASBデータポートの各々に接続された小ブロックを指す。この小ブロックにより、データポート先入れ先出し(FIFO)デバイス(DIBとも呼ばれる)は、着信&発信データをバッファして、外部メモリへ/外部メモリからバッファされたデータを転送することができる。
【0094】
スーパーアービタ142は、スーパーコアの内部にある。スーパーアービタ142は、プライオリティ−ベースのアービタである。スーパーアービタ142は、リセットに基づいて全共通システムバスを管理しており、従属するMONARCアービタ134は、この時不作動にされている。ARMコントローラ140は、形成レジスタセット220,224のうちの1つ(または初期化により両方)におけるタイムスロットパラメータを形成することができる。MONARCがプログラムされ&機能付与された後、MONARCアービタ134は、3状態バッファ197で提供される適切な電気的分離で、スーパーアービタ142と共存することができる。共通システムバスは、MONARCアービタ134がARMスーパーコア140にeASBバス上のタイムスロットを許可した時に電気的に再接続状態になる。
【0095】
MONARCアービタタイムスロットは、一般にプログラム可能であるが、ARM140(たとえば、エージェント#0)は、好適に、システムサイクルを定義するタイムスロットシーケンスにおいて少なくとも1つの予め割り当てられたタイムスロットを有する。
【0096】
図6及び図7において、外部のまたは追加されたバス(eASB)は、所定のエージェントと外部の共有のメモリの間の高速データトラフィックのために設定される。(ARMコントローラ140を除いて)これらのエージェントは各々、読み出し及び書き込みデータバッファと、IDMA126への入力である関連状態信号とを有する。IDMA126は、MONARCアービタ134に付属している。
【0097】
開示されたシステムは、ASBバス調停階層の2レベルを有する。スーパーアービタ142は、調停の最高レベルである。これは、ASB所有権をEICソケット(すなわち、eASB周辺装置)に割り当てるように構成されている。システム初期化の後(ARMがABSバス全体(iASB及びeASBの両方)を所有した場合)、ARM140は、MONARCアービタ134に機能付与し、スーパーアービタ142は、システムバス3状態分離により、eASBアービタ200に対する共通システムバスの拡張された部分eASBの制御を止める。この時点で、ARM140は、eASBバス上のエージェントの1つになる。
【0098】
ARM140は、好適に、MONARCアービタ134を無力にすることができる唯一のエージェントである。また、ARM140は、MONARCアービタ134による調停を無力にして停止させることによって、そのeASBタイムスロットを(事実上)拡張させる先買い能力も有する。ARM140は、終了した時、MONARCアービタ134に再び機能付与することができ、システム調停サイクルは、それが止めた場合に継続する。
【0099】
eASBバス上の緊急状態時、MONARCアービタ134を無力にすることができ、ARM140は、MONARCアービタ134に再び機能付与しかつeASBバスの制御を再び止めるべき時を決定する責任が与えられる。
【0100】
MONARCアービタ134は、内部インターフェースデバイスと2つの外部バスマスター可能周辺装置の間でeASBバスの所有権を分配する。外部バスマスターの場合には、これらは、eASBバスへのアクセスが実際提供されないが、むしろ外部メモリバスへのアクセスが(争いなしに)許可される。したがって、MONARCアービタ134は、外部デバイスが外部メモリインターフェースを使用できるように、eASBバスから離れている内部エージェントの全部を維持する。
【0101】
本発明は、もくろんだアプリケーションに関係なく、どんな関連集積回路(IC)のアーキテクチャにも適用可能である。
【0102】
本発明は、その模範的な実施例に関して説明されたが、当業者は、本発明の真の精神及び範囲から逸脱することなく、本発明の説明された実施例に対する種々の修正を行なうことができる。
【図面の簡単な説明】
【0103】
【図1】本発明の原理にしたがって、共通バスが、PTSIアービタの制御の下で、たとえば3状態バッファデバイスを用いて分離可能である、共通バス上での2つの異なるアービタの使用を示す図である。
【図2】本発明の原理にしたがって、ハードウェアとソフトウェア機能を結合してプログラム可能なタイムスロット調停を提供する模範的なスプリットバス構成を示す図である。
【図3】搭載メモリが、オーバーラップ部分を伴ってまたは伴わずに、共有されないメモリと共有されるメモリに分割される、メモリ共有及びオーバーラップを示す図である。
【図4】本発明の原理にしたがって、3状態バッファが、バスの2つの部分を接続して、スーパーアービタに調停制御を戻す、特定のタイムスロットの間を除いてバスのその部分における調停の責を負うモニター用アービタ回路(MONARC)のより詳細なブロック図である。
【図5】本発明にしたがって、階層バスサイクル定義の使用に基づく、プログラム可能なタイムスロットインターフェース(PTSI)バス調停概念を用いた一連のシステムサイクルの各々における模範的なタイムスロットを示すタイミング図である。
【図6】本発明の原理にしたがって、非同期デジタル加入者ループ(ADSL)可能デバイスのアプリケーション例を含む、多くのアプリケーションに役立つプラットフォーム回路のブロック図である。
【図7】図6に示されるプラットフォーム回路のより詳細なブロック図である。

【特許請求の範囲】
【請求項1】
データバスへのアクセスを調停する装置であって、
データバスの第1の部分と関連するプライオリティ−ベースのアービタと、
該データバスの第2の部分と関連するタイムスロットアービタと、
該データバスの該第2の部分から該データバスの該第1の部分をアイソレートすることができるアイソレーションデバイスとを含み、アイソレートされた場合に、該プライオリティ−ベースのアービタが、該データバスの該第1の部分へのアクセスを制御することを可能とすると共に、該タイムスロットアービタが、該データバスの該第2の部分へのアクセスを制御することを可能とすることを特徴とする装置。
【請求項2】
請求項1記載の装置において、前記データバスの前記第2の部分のタイムスロットの割り当ては、前記タイムスロットアービタでプログラム可能である、装置。
【請求項3】
請求項1記載の装置において、さらに、前記データバスの前記第1の部分と通信する第1のデバイスと前記データバスの前記第2の部分と通信する第2のデバイスに共通の外部メモリにアクセスするのを許す、前記データバスの前記第2の部分上のメモリインターフェースを含む、装置。
【請求項4】
請求項3記載の装置において、
前記共通の外部メモリは、複数の部分に割り当てられ、
前記共通の外部メモリの該複数の部分のうちの第1の部分は、前記第1のデバイスによるアクセスのために割り当てられ、
前記共通の外部メモリの該複数の部分のうちの第2の部分は、前記第2のデバイスによるアクセスのために割り当てられる、装置。
【請求項5】
請求項4記載の装置において、前記第1のデバイスによる前記アクセスは、前記データバスと通信する他の複数のデバイスを排除するものである、装置。
【請求項6】
請求項5記載の装置において、前記第2のデバイスによる前記アクセスは、前記他の複数のデバイスを排除するものである、装置。
【請求項7】
請求項5記載の装置において、
前記データバスの前記第1の部分は、前記プライオリティ−ベースのアービタとプロセッサを含む集積回路の内部にあり、そして
前記データバスの前記第2の部分は、前記集積回路の外部にあるように構成されている、装置。
【請求項8】
複数のバスマスターからの共通のデータバスへのアクセスを調停する方法であって、
該共通のデータバスを2つのアイソレートされた部分に分離するステップと、
該共通のデータバスの第1のアイソレートされた部分上で各々要求するバスマスターのプライオリティに基づいて、該共通のデータバスの該第1のアイソレートされた部分を調停するステップと、
該共通のデータバスの第2のアイソレートされた部分上で各々要求するバスマスターのプライオリティに基づいて、該共通のデータバスの該第2のアイソレートされた部分を調停するステップ、を含むことを特徴とする方法。
【請求項9】
請求項8記載の方法において、前記共通のデータバスを分離するステップの後で、前記共通のデータバスの前記第2のアイソレートされた部分から外部メモリをインターフェースするステップを、さらに含む、方法。
【請求項10】
請求項9記載の方法において、前記外部メモリをインターフェースするステップの後で、前記外部メモリと通信する外部デバイスから前記共通のデータバスの前記第1のアイソレートされた部分と通信するバスマスターに対して直接帰還信号を供給するステップを、さらに含む、方法。
【請求項11】
請求項8記載の方法において、前記共通のデータバスの前記第1のアイソレートされた部分と、前記第2のアイソレートされた部分との間の通信を許可するために、前記共通のデータバスを分離するステップの後で、前記共通のデータバスの前記第2のアイソレートされた部分のアクセスタイムのうちの少なくとも1つのタイムスロットを割り当てるステップを、さらに含む、方法。
【請求項12】
複数のバスマスターからの共通のデータバスへのアクセスを調停する装置であって、
該共通のデータバスを2つのアイソレートされた部分に分離する手段と、
該共通のデータバスの第1のアイソレートされた部分上で各々要求するバスマスターのプライオリティに基づいて、該共通のデータバスの該第1のアイソレートされた部分を調停する手段と、
該共通のデータバスの第2のアイソレートされた部分上で各々要求するバスマスターのプライオリティに基づいて、該共通のデータバスの該第2のアイソレートされた部分を調停する手段と、を含むことを特徴とする装置。
【請求項13】
請求項12記載の装置において、さらに、前記共通のデータバスの前記第2のアイソレートされた部分から外部メモリをインターフェースする手段を含む、装置。
【請求項14】
請求項12記載の装置において、さらに、前記外部メモリと通信する外部デバイスから前記共通のデータバスの前記第1のアイソレートされた部分と通信するバスマスターへ直接帰還信号を供給する手段を含む、装置。
【請求項15】
請求項12記載の装置において、さらに、前記共通のデータバスの前記第1のアイソレートされた部分と前記第2のアイソレートされた部分間の通信を許すために、前記共通のデータバスの前記第2のアイソレートされた部分のアクセスタイムのうちの少なくとも1つのタイムスロットを割り当てることを含む、装置。
【請求項16】
請求項15記載の装置において、前記共通のデータバスを2つのアイソレートされた部分に分離する前記手段は、アクセスタイムのうちの前記少なくとも1つのタイムスロットの間前記共通のデータバスをアイソレートしない、装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−135068(P2008−135068A)
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2008−32749(P2008−32749)
【出願日】平成20年2月14日(2008.2.14)
【分割の表示】特願2001−259323(P2001−259323)の分割
【原出願日】平成13年8月29日(2001.8.29)
【出願人】(301030605)アギア システムズ ガーディアン コーポレーション (15)
【氏名又は名称原語表記】Agere Systems Guardian Corporation 
【Fターム(参考)】