説明

クロックの異なるバス間におけるデータ転送

【課題】バスネットワークアーキテクチャにおける周辺機器にアクセスするレジスタの遅延を低減する。
【解決手段】低速バスから高速バスへデータを非同期に転送する方法は、上記高速バスのクロック周波数のサイクルにおける第1の所定時点でデータをラッチすることと、上記高速バスのクロック周波数の同一のサイクルにおける第2の所定時点でデータをラッチすることを備え、上記第2および第1の所定時点の間の時間周期は上記データの周期よりも短く、上記第1および第2の所定時点でラッチされたデータの値が等しい場合、上記ラッチされたデータが第3の所定時点で上記高速バスの上へ転送され、または上記第1および第2の所定時点でサンプリングされた値が異なる場合、現在存在するデータの値が上記第3の所定時点で上記高速バスへ転送される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なるクロック速度で動作するバス間におけるデータ転送に関する。本発明は、限定はしないが、特に、各バスが異なるクロック速度で動作するバスネットワークアーキテクチャを有し、且つこれらのバス間で効果的にデータの転送を行うことができる集積回路への応用に関し、前記集積回路は携帯電話等に応用して用いられるものである。
【背景技術】
【0002】
米国特許明細書6,064,626(譲受人はARM Limited)には、集積回路用の周辺バス配列が開示されている。この明細書の序文には既知のバスアーキテクチャが開示されており、このバスアーキテクチャにおいては、高性能システムモジュールに対してはシステムバスを使用し、低電力装置に対しては周辺バスを使用している。これらのシステムおよび周辺バスは同一の速度で動作し、周辺ユニットの特定の動作速度のために必要とされるクロックの再同期化がその周辺ユニットで行われる。システムバスから処理要求信号を受信するために、および周辺バスを経由して周辺ユニットの動作を制御するのに必要なクロック信号と共に処理要求信号を適切な周辺ユニットに供給するためにブリッジが設けられている。集積回路においてこのアーキテクチャを実施する場合、電力消費量がシステムおよび周辺バスの動作速度と関係している、即ち動作速度が速くなるほど電力消費量が大きくなり、周辺バスの静電容量、即ち周辺バスに接続される周辺ユニットの数が多くなるほど電力消費量が大きくなるという欠点がある。
【0003】
電力消費量を低減するため、明細書6,064,626が開示するバスアーキテクチャには、システムバスと、1つの高速周辺バスと、少なくとも1つの低速周辺バスと、前記システムバスと前記各周辺バスとの間のブリッジ回路構成とが存在する。周辺ユニットは、動作上の必要性に基づいて高速および低速バスと結合し、可能な限り低速バスを優先する。その結果、高速周辺バスに結合する周辺機器の数を最小限とすることによって、既知のバスアーキテクチャと比較して電力消費量が低減される。
【0004】
フィリップスセミコンダクターズ社が設計した他のバスアーキテクチャには、78MHzの高クロック速度(HCLK)で動作するAHB(Advanced High−performance Bus)と呼ばれるシステムバスと、13MHzの低クロック速度(PCLK)で動作するVPBバスと呼ばれる周辺バスとが存在する。このようなアーキテクチャは、上記の従来技術から明らかなように、省電力を達成する一方で、少なくとも2つではなく1つの周辺バスを有している。HDLi(Hardware Descriptive Language Integrator)のAHB・VPB間ブリッジを使用すると、AHBに結合されたプロセッサ内のレジスタによってAHBから、VPBバスに結合された周辺機器へアクセスするには最大5PCLKサイクルかかる可能性がある。これは最悪の場合、転送では(PCLKサイクル当たりHCLKの6サイクル)×(5サイクルアクセス)=30HCLKサイクルとなる。これはAHBを駆動しているマイクロコンピュータにとっては長時間の遅延であり、このような遅延は望ましくない。
【発明の開示】
【0005】
本発明の目的は、バスネットワークアーキテクチャにおける周辺機器にアクセスするレジスタの遅延を低減することである。
【0006】
本発明の第1の側面によれば、第1のクロック周波数を有する第1の装置から前記第1のクロック周波数よりも高い第2のクロック周波数を有する第2の装置へデータを転送する方法であって、前記第2のクロック周波数のサイクルにおける第1の所定時点でデータをラッチし、前記第2のクロック周波数の前記サイクルにおける第2の所定時点でデータをラッチし、前記第2および第1の所定時点の間の時間周期は第1のクロック周波数の周期よりも短く、前記第1および第2の所定時点でラッチされたデータの値が等しい場合、ラッチされたデータを第2の装置が結合されているバス上へ第3の所定時点で転送し、または、前記第1および第2の所定時点でサンプリングされた値が異なる場合、現在存在するデータを前記第3の所定時点で前記バス上へ転送する、方法が提供される。
【0007】
本発明の第2の側面によれば、
第2のクロック周波数で動作する第2の装置から前記第2のクロック周波数よりも低い第1のクロック周波数で動作する第1の装置へデータを転送する方法であって、前記第2のクロック周波数でデータを前記第2の装置から中間レジスタに格納し、前記第1のクロック周波数で前記データを前記中間レジスタから前記第1の装置へ転送する、方法が提供される。
【0008】
本発明の第3の側面によれば、高速バスを低速バスに結合するデータ転送ブリッジであって、第1の所定時点で前記低速バス上の第1の低速データサンプルをラッチする第1のラッチ手段と、第2の所定時点で前記低速バス上の第2の低速データサンプルをラッチする第2のラッチ手段と、記低速データの前記第1および第2サンプルを比較する比較手段とを備え、前記第1および第2の所定時点の間の時間間隔は、前記低速データの周期よりも短く、前記比較手段は、同一の値の前記第1および第2サンプルに応答し、前記ラッチされたデータを前記高速バス上へ第3の所定時点で転送する第1の手段と、異なる前記第1および第2サンプルに応答し、現在存在する前記低速データのサンプルを第3の所定時点で前記高速バスへ転送する第2の手段と、を含む、データ転送ブリッジが提供される。
【0009】
本発明の第4の側面によれば、高速データを、前記高速データのクロック速度よりも低い低クロック速度でクロックされる格納装置へ転送する装置であって、前記格納装置は、高速データがクロックされる中間レジスタと、前記中間レジスタに格納されたデータを前記低クロック速度で他のレジスタへ転送する手段とを備える、装置が提供される。
【0010】
本発明の第1の側面による方法は、AHBバスと低電力高速アクセスバス(LPFAB)との間の完全な透過性を達成することによって、単一のHCLKサイクルを使用してLPFABバス上でレジスタがアクセスすることを可能にする。さらに、LPFABバス上でのクロックイベントを制限することによって消費電力を削減し、2つのクロックドメイン間におけるデータの正確な受け渡しを保証する。
【発明を実施するための最良の形態】
【0011】
本発明を添付された図面を参照して以下に一例として説明する。
図面においては、一致する特徴を示すため、同一の参照番号を使用した。
【0012】
図1を参照すると、図示されたシステムは、例えば78MHzの最高システム速度HCLKで動作する高度高性能バス(AHB)20へ各双方向リンクを経由して結合された複数の装置を備えているが、前記速度は使用されるプロセッサに応じて他の速度とすることもできる。これらの装置は、プロセッサ10と、バスに結合された様々な装置によるAHB20へのアクセスを制御するアービタ12と、アドレスデコーダ14と、一括して16で示されたオンチップ内部および外部メモリ制御器とを含む。プロセッサ10がHCLKよりも高い周波数で動作する場合、バスブリッジ18がプロセッサ10とAHB20へのリンクとの間に結合される。
【0013】
UART(汎用非同期送受信機)22、GPIO(多目的入出力)24およびタイマ26等の低帯域幅非バスマスタ装置は、双方向リンクによってLPFAB(低電力高速アクセスバス)インタフェース28へ結合され、それによってそれらのバスインタフェースを単純化し、AHB20の負荷を軽減している。LPFABインタフェース28は、AHB20のインタフェース速度またはそれよりも遅い速度、例えば13MHzで作動することができる。AHB・LPFABバス間ブリッジ30によってこれらの装置22、24および26をAHB20に接続している。バスブリッジ30は、LPFABインタフェースのスレーブデバイスである。
【0014】
図2を参照すると、バスブリッジ30はいくつかの動作特徴を含んでおり、説明の都合上、使用される様々な略語を確認しておく。
【0015】
クロック:
PCLK 例えば13MHzの周辺装置のクロック。しかし、周辺装置によってはさらに遅いPCLKを使用し、各周辺装置はHCLKよりも遅い範囲内で独自のPCLK速度を有することができる。
WRITE_CLK 書き込み用の単一パルス(HCLKのゲートパルス)。
READ_CLK リードクリアレジスタのみに使用される読み出し用の単一パルス(HCLKのゲートパルス)。
アドレスバスおよび周辺機器選択ライン
HADDR アドレスバス(このバスはREADデータの検証にのみ使用される)。
PA アドレスバス
PSEL PAを使用した周辺機器の選択。
EARLY−PSEL HADDRバスを使用した周辺機器の選択(この信号はREADデータの検証にのみ使用される)。
【0016】
データバス:
PDI 周辺データインバス。
PDO (PAアドレスに基づく)周辺データアウトバス。
EARLY−PDO (HADDRアドレスに基づき、読み出し検証のみに使用される)周辺データアウト。
【0017】
レディライン:
SHADOW_READY 選択アドレスのシャドウレジスタがさらなるデータを受信する準備が整っていること(シャドウレジスタがそのアドレスに使用されていない場合、デフォルトは”1”となる)。
【0018】
バスブリッジ30内の様々な機能ブロックにはデータ検証ブロック32が含まれ、これにデータバスPDOおよびEARLY−PDOが接続されている。PDOバス上の有効データはブロック32によってデータ案内ブロック34に供給され、データ案内ブロック34は出力HRDATAを供給する。AHBアドレスおよび制御ライン36は、HADDR出力38と、アドレスデコードブロック40と、制御信号が1HCLKサイクル遅延されるブロック42とに結合されている。ブロック42は、PAに結合された出力44、ブロック34に結合された出力46、および読み出し(R)/書き込み(W)クロックイネーブルおよびHREADY発生器を示すブロック50の入力に遅延制御信号を供給する出力48の3つの出力を有している。
【0019】
アドレスデコードブロック40は1HCLKサイクル遅延ブロック52に結合され、このブロック52は出力PSELをブロック50およびEARLY−PSEL出力54に供給する。ブロック50は、SHADOW_READY入力56および2つの出力58、60を有している。出力58はHREADYおよびHRESP信号をAHB20へ供給し、出力60はクロックイネーブルをクロック発生器ブロック(図示せず)へ供給する。
【0020】
本発明の第1の側面による方法は、同期の必要がないレジスタのアクセスに関し、特にAHBバスを通過するあらゆるデータが少なくとも半HCLKサイクルの間安定し、その結果信頼されて有効データとなることを確実にすることに関する。
【0021】
AHBおよびLPFABクロックに関連性がなく、その結果データがAHB20(図1)に読み出される際にLPFABレジスタ内で変化する可能性がある場合、一種の読み出し検証が必要とされる。信頼されるためにはデータは安定する必要があるが、その理由は少なくとも半HCLKサイクルの間安定していなかったデータは遷移の途中にある可能性があるからである。
【0022】
図3を参照すると、読み出し検証は、AHBアドレスラインおよびLPFABアドレスラインの両方にLPFABバス28(図1)通して伝搬させることによって行われる。各LPFAB周辺機器PDEVは5つのレジスタREG1乃至REG5を備えている。各レジスタはそれぞれマルチプレクサMUX1およびMUX2の入力に結合された2つの出力を有しており、それによって現在のHADDRアドレスおよびPAアドレスからの同時の読み出しが可能となるため、読み出し検証が可能となる。より詳細には、MUX1はHADDRアドレスを用いてクロックが合わせられ、MUX2はPAアドレスを用いてクロックが合わせられ、HADDRアドレスはPAアドレスよりも少なくとも1HCLKサイクル進んでいる。この例においては、HADDRアドレスは実際の読み出しのおよそ2サイクル前にAHBバス上に乗せられる。より詳細には、図5Aおよび6Aの時間T1であるHCLKの立ち上がり後にアドレスが乗せられ、図5Aおよび6Aの時間T2である次の立ち上がり時にAHB周辺機器によってアドレスがラッチされ、図5Aおよび6Aの時間T3である次のHCLKの立ち上がり時に実際にデータ転送が行われる。
【0023】
図2、5A乃至5Cおよび6A乃至6Cを参照すると、読み出し検証スキームにおいて、(1)データ検証ブロック32は、時間T1、即ちHCLKの立ち上がり時にEARLY_PDO(HADDRに基づくデータアウト)の値でラッチし、(2)データ検証ブロック32は、時間T2、即ち時間T1直後のHCLKの立ち下り時にPDO(PAに基づくデータアウト)の値でラッチし、(3)データ検証ブロック32は、時間T1およびT2に行った読み出しを比較する。これらが同一、即ち図5Bに示されているようである場合、時間T3におけるPDO値がいかなるものであっても、このデータ“A”は時間T3、即ち時間T1の次の立ち上がりでAHBバス20(図1)へ転送される。これは、時間T2とT3との間でデータが変化しないという保証がないためである。しかし、時間T1およびT2における読み出しが異なっている場合、即ち図6Bに示されているような場合、PCLKの立ち上がりが時間T1とT2との間に発生したということを意味しており、PCLKは必ずHCLKよりも遅いため、時間T2とT3との間では新たな立ち上がりはない、即ち図6Bに示されているようであることが保証できる。即ち、時間T3ではデータは安定するため、データ検証ブロック32はPDO値“B”(図6C)を直接AHBバス上に乗せることを許可する。
【0024】
このデータ検証スキームでは、安定したデータが保証される一方で、データ転送での遅延が発生することがない。時間T1およびT2においてラッチされた読み出しの比較を行うロジックは、半HCLKサイクルで比較を行う。
【0025】
読み出し検証プロセスを、図7に示されたフローチャートで纏める。ブロック62において、時間T1でPDO_EARLYの値をラッチする。ブロック64において、時間T2でPDOの値をラッチする。ブロック66において、時間T1およびT2でラッチされた値を比較する。ブロック68において、ラッチされた値が等しいかを確認し、これらが等しい場合(Y)、ブロック70において、時間T3でデータをAHBバスに転送する。これらが等しくない場合(N)、ブロック72において、時間T3でデータをAHBバスに転送する。
【0026】
PAバスがLPFAB上で有効なレジスタであるアドレスを含んでいる場合は、必ずレジスタ読み出しが行われる。読み出しの時間を示すためにクロックが使用されることはない。データは常にPDOバスを介して各周辺機器から多重送信され、ワイヤードOR PDO_MUXブロックにおいて結合される。指示されたアドレスを含んでいない周辺機器はゼロを出力する。
【0027】
(レジスタの内容を読み出し時に変更する必要がある)リードクリアアクセスの場合、READ_CLKを用いてレジスタが読み出されたことをブロックに伝える。
【0028】
書き込みを行う場合、レジスタの性質が使用されているプロシージャに影響を与える。図4を参照すると、制御レジスタ74(周辺機器ではなくプロセッサによって書き込みのみが可能なレジスタ)が、PAアドレスPSELを設定することによってデータライン76を介してPDIから書き込みをされ、WRITE_CLKの立ち上がり時に書き込みが行われる。
【0029】
プロセッサおよび周辺機器の両方によって書き込み可能なレジスタ78は、プロセッサからデータを受信した際にシャドウレジスタ80を使用する。このような場合、プロセッサはシャドウレジスタ80に対して書き込みを行い、その後データはMUX84を経由して実際のレジスタ78に転送される。シャドウレジスタ制御器82はシャドウレジスタと実際のレジスタ78との間のデータ転送を制御し、実際のレジスタ78はPCLKにクロックが合わせられる。周辺装置がPCLKでクロックされることから書き込みを行う場合、PDOからのデータは、実際のレジスタ78に書き込みを行うためのMUX84に直接印加される。
【0030】
より詳細には、HCLKドメイン、即ちAHBからPCLKドメインへのデータの正確な受け渡しを保証するためには、データをPCLKに同期させる必要がある。同期させるにはおよそ1PCLKサイクルの時間を要し、これは比較的長い時間となるため、プロセッサを遅延させることは理想的ではない。その代わり、プロセッサはWRITE_CLKを制御レジスタのように用いてシャドウレジスタ80に対して書き込みを行い、その後実際のレジスタ78へ進んでデータを転送する。
【0031】
この書き込み方法では、1HCLKサイクルでシャドウレジスタに書き込みを行い、先へ進むことをプロセッサに許容する。しかし、SHADOW_READYが低い限り、プロセッサはシャドウレジスタ80に対してさらなる書き込みを行うことまたは読み出しを行うことを禁止される。このシャドウレジスタ80に対する書き込み/読み出しの禁止によって、古いデータが実際のレジスタ78に転送される前に新たなデータがシャドウレジスタ80に書き込まれることを回避すると共に、プロセッサが再度シャドウレジスタ80から古いデータを読み出すことを回避する。シャドウレジスタ制御器82の作動中にプロセッサがそのアドレスへのレジスタアクセスを試みた場合、ブリッジ30はHREADYが低いことおよびHRESP=RETRYであることを主張し、プロセッサは読み出し/書き込みを再試行するように命じられ、これはSHADOW_READYラインが高状態に戻るまで継続する。
【0032】
図8は、シャドウレジスタ制御器82(図4)の実施の形態を示している。制御器82はT型フリップフロップ84を備え、その出力は第1のD型フリップフロップ86のD入力に結合され、このD型フリップフロップ86の出力は第2のD型フリップフロップ88のD入力に結合されている。フリップフロップ84および88の出力は第1の排他的オアゲート90の各入力に結合されている。D型フリップフロップ86、88の出力は第2の排他的オアゲート92の各入力に結合されている。排他的オアゲート90の出力はインバータ94を経由してフリップフロップ84のT入力に結合されている。WRITE_CLOCK信号がフリップフロップ84のクロック入力に印加され、PCLK信号がフリップフロップ86、88のクロック入力に印加される。排他的オアゲート90はNotSHADOW_READY出力を供給し、排他的オアゲート92はMUX_CTRL出力を供給する。
【0033】
動作時においては、書き込みが行われると、WRITE_CLKによってT型フリップフロップ84の出力がトグルし、状態が変化して直ちにSHADOW_READYラインを低下させる。これが発生すると同時に、シャドウレジスタ80に対する書き込みも行われる。SHADOW_READYラインをT型フリップフロップ84に入力することによって、さらなる書き込みがSHADOW_READYラインをトグルすることはない。PCLKの次の立ち上がり時にMUX_CTRLが”1”となり、次の立ち上がり時にデータがMUX84(図4)を介してシャドウレジスタ80(図4)から実際のレジスタ78(図4)に転送される。この転送が行われると同時に、MUX_CTRLは”0”に下がり、SHADOW_READYは”1”へ戻る。
【0034】
WRITE_CLKによって書き込まれたシャドウレジスタ80の出力がPCLKによってクロックされたレジスタの値を決定する際に使用される場合、同期の問題が生じる。この問題は2つの方法のうちのいずれかによって解決することができる。第1の方法においては、PCLKをWRITE_CLKと同期させ、PCLKがWRITE_CLKより遥かに遅くても、PCLKはHCLKの立ち上がりと同時に立ち上がるだけである。第2の方法においては、フリップフロップは、PCLKを生成するクロック発生器ブロックの間に配置され、LPFABに到達するPCLK信号はPCLKの立ち上がりの到来を早期に警告する。次に、これをAHBバス20(図1)の非レディラインとして使用することができる。これによって、プロセッサがLPFABバス28(図1)に対して書き込みを行うことを防止することができる。2つ以上のフリップフロップを用いることによってより長い警告時間を得ることが可能である。
【0035】
上述したバス間におけるデータ転送方法は、高速CPUバスと低速周辺バスとの間のインタフェースに対して低電力で高速の解決手段を提供する。この方法は、周辺バスの速度がCPUバスよりも速くない様々なバスアーキテクチャに適用可能である。
【0036】
本明細書および請求の範囲において、要素の前に置かれた”a”または”an”(1つの)という語は上記要素が複数存在することを除外するものではない。さらに、”comprising”(備える)という語は、示された以外の要素またはステップが存在することを除外するものではない。
【0037】
本開示内容を読むことにより、当業者には他の変形例が明らかとなるであろう。このような変形例には、バスアーキテクチャおよびそのための構成部分の設計、製造および使用法において既に知られ、且つここに既に説明した特徴の代わり、またはそれに加えて使用してもよい他の特徴が含まれる。
【産業上の利用可能性】
【0038】
バスを使用してデータを転送する電子回路。
【図面の簡単な説明】
【0039】
【図1】AHB・LPFABバス間ブリッジを有するシステムのブロック概略図である。
【図2】AHB・LPFABバス間ブリッジのブロック概略図である。
【図3】周辺機器のデータアウト回路のブロック概略図である。
【図4】周辺機器のデータイン回路のブロック概略図である。
【図5A】本発明の第1の側面による方法の実施に関連する第1組のタイミング図である。
【図5B】本発明の第1の側面による方法の実施に関連する第1組のタイミング図である。
【図5C】本発明の第1の側面による方法の実施に関連する第1組のタイミング図である。
【図6A】本発明の第1の側面による方法の実施に関連する第2組のタイミング図である。
【図6B】本発明の第1の側面による方法の実施に関連する第2組のタイミング図である。
【図6C】本発明の第1の側面による方法の実施に関連する第2組のタイミング図である。
【図7】本発明の第1の側面による方法に関連するフローチャートである。
【図8】図4に示されたシャドウレジスタ制御器のブロック概略図である。

【特許請求の範囲】
【請求項1】
第2のクロック周波数で動作する第2の装置から前記第2のクロック周波数よりも低い第1のクロック周波数で動作する第1の装置へデータを転送する方法であって、前記第2のクロック周波数でデータを前記第2の装置から中間レジスタに格納し、前記第1のクロック周波数で前記データを前記中間レジスタから前記第1の装置へ転送する、方法。
【請求項2】
前記中間レジスタにデータが書き込まれた後、前記中間レジスタへのさらなるデータの格納を禁止することを特徴とする、請求項1に記載の方法。
【請求項3】
高速データを、前記高速データのクロック速度よりも低い低クロック速度でクロックされる格納装置へ転送する装置であって、前記格納装置は、高速データがクロックされる中間レジスタと、前記中間レジスタに格納されたデータを前記低クロック速度で他のレジスタへ転送する手段とを備える、装置。
【請求項4】
前記中間レジスタにデータが書き込まれた後、前記中間レジスタへの高速データのさらなる格納を禁止する手段により特徴づけられる、請求項3に記載の装置。
【請求項5】
前記他のレジスタへ格納されるべきデータを転送する前記手段は前記中間レジスタの出力に結合されたデータ入力を有するマルチプレクサを備え、中間レジスタ制御器が設けられ、前記中間レジスタ制御器は、前記中間レジスタの制御入力に結合され、前記マルチプレクサによるデータの転送を制御する出力を有する、ことを特徴とする、請求項4に記載の装置。
【請求項6】
前記中間レジスタ制御器は、前記中間レジスタにデータが書き込まれた後、前記中間レジスタへのデータのさらなる格納を禁止する手段を含むことを特徴とする、請求項5に記載の装置。
【請求項7】
前記中間レジスタ制御器は、
第2のD型フリップフロップに結合された出力を有する第1のD型フリップフロップに結合された出力を有するT型フリップフロップと、
前記T型フリップフロップの出力と前記第2のD型フリップフロップの出力とにそれぞれ結合された入力、および出力を有する第1の排他的オアゲートと、
前記第1の排他的オアゲートの出力を前記T型フリップフロップの入力に結合する信号インバータと、
前記第1および第2のD型フリップフロップにそれぞれ結合された入力を有する第2の排他的オアゲートと、を含み、
前記第1の排他的オアゲートの出力は、前記中間レジスタにデータが書き込まれた後、前記中間レジスタへのデータの格納を禁止するために使用されることを特徴とする、請求項5または6に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−163758(P2009−163758A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2009−55004(P2009−55004)
【出願日】平成21年3月9日(2009.3.9)
【分割の表示】特願2003−570232(P2003−570232)の分割
【原出願日】平成15年1月28日(2003.1.28)
【出願人】(306043703)エヌエックスピー ビー ヴィ (125)
【氏名又は名称原語表記】NXP B.V.
【Fターム(参考)】