(57)【特許請求の範囲】
【請求項１】
増大するカウント値を保持するように構成された少なくとも１つの要素と、
前記増大するカウント値のソースから前記増大するカウント値を受信するため、および前記増大するカウント値を、被符号化値に符号化するように構成されたエンコーダであって、前記被符号化値が、前記少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示すエンコーダと、
前記被符号化値を受信し、前記被符号化値を前記少なくとも１つの要素に送信するための相互接続回路と、
を備える回路であって、
前記少なくとも１つの要素が、前記被符号化値を復号するため、および前記指数量に基づいて前記カウント値を増やすためのデコーダを備え、
前記回路のうちの少なくともいくつかが、クロック信号によってクロックされる同期回路を備え、前記回路が様々なクロックドメインを有し、そのために、前記同期回路の少なくとも一部分が異なる周波数におけるクロック信号によって別の部分にクロックされ、前記回路が、前記異なってクロックされた部分の間の境界で前記相互接続回路上に配置されたクロック変換回路を備え、前記クロック変換回路が、第１のクロックドメインで動作している前記相互接続回路から前記被符号化値を受信し、前記被符号化値を記憶し、第２のクロックドメインにある前記相互接続回路に前記被符号化値を出力するように構成されたデータストアを備える、回路。
【請求項２】
前記相互接続回路が、前記カウント値を送信する場合に必要とされる数よりも少ない接続箇所を用いて、前記被符号化値を送信することができるように、前記被符号化値の最大値が前記カウント値の最大値よりも小さい、請求項１に記載の回路。
【請求項３】
前記デコーダが、前記受信した被符号化値によって示された前記指数量を前記保持されたカウント値に加えるように構成されている、請求項１に記載の回路。
【請求項４】
前記デコーダが、前記受信した被符号化値によって示された前記指数量の次の倍数まで前記保持されたカウント値を増分するように構成されている、請求項１に記載の回路。
【請求項５】
前記カウント値が二進値を備え、前記被符号化値が、２に適用される指数量を示し、前記デコーダは、前記被符号化値を２のべき数として適用し、前記カウント値を増やす目的で使用される復号値を決定するように構成されている、請求項１に記載の回路。
【請求項６】
前記デコーダが、前記受信した被符号化値によって示された前記指数量の次の倍数まで前記保持されたカウント値を増分するように構成されており、
前記被符号化値が前記カウント値の１ビットを示し、前記デコーダが、前記被符号化値によって示される前記ビットを設定し、すべての低位ビットをすべてクリアすることによって前記カウント値の被同期コピーを増やすように構成されている、請求項５に記載の回路。
【請求項７】
前記回路が前記増大するカウント値のソースを備える、請求項１に記載の回路。
【請求項８】
前記増大するカウント値のソースが、時間の経過を表す値を生成するためのタイムスタンプジェネレータを備え、前記少なくとも１つの要素が前記増大するカウント値のローカルコピーを保持する、請求項７に記載の回路。
【請求項９】
前記回路が、複数の要素と、前記エンコーダから受信した信号を複数の信号に分割するため、および複数の相互接続回路経由で前記複数の信号を前記複数の要素に出力するための少なくとも１つのスプリッタとをさらに備えており、前記複数の要素の各々がデコーダを備え、前記カウント値を保持する、請求項１に記載の回路。
【請求項１０】
前記回路が、前記複数の要素が、既定公差内で互いに同期されている前記カウント値のコピーを保持するように構成されている、請求項９に記載の回路。
【請求項１１】
前記相互接続回路が複数のバスを備える、請求項１に記載の回路。
【請求項１２】
前記第２のクロックドメインが、前記第１のクロックドメインよりも高速のクロック周波数で動作しているときに、前記データストアが、前記第１のクロックドメインにある前記クロック信号の各々に対する被符号化値を受信および記憶し、前記第２のクロックドメインにある前記クロック信号の下位セットを対象とする被符号化値を前記データストアから出力するように構成されている、請求項１に記載の回路。
【請求項１３】
前記クロック変換回路が前記データストアへの入力に配置された追加ストアを備え、前記第２のクロックドメインが前記第１のクロックドメインより遅いクロック周波数で動作しているときに前記データストアが満杯になると、次の受信した被符号化値が前記追加ストアに記憶され、前記回路は、前記次の受信値をその後受信した値と比較するためのコンパレータを備え、前記回路は、前記値のうちのどちらが前記カウント値のより大きな増分を生成するかを判断し、スペースを有する前記データストアに応答して前記データストアに前記値を入力し、前記値のもう一方を破棄するように構成されている、請求項１に記載の回路。
【請求項１４】
前記相互接続回路が、前記少なくとも１つの要素にカウント値を送信するために同期信号を伝えるための同期チャネルを備え、前記同期チャネルが、複数のサイクルを経て前記増大するカウント値のソースから受信した前記カウント値の現在値を前記少なくとも１つの要素に出力するように構成されており、前記デコーダが、現在のカウント値を保持していない場合には同期を開始し、前記同期チャネル上で受信した前記現在値の少なくとも一部分を記憶するように構成されている、請求項１３に記載の回路。
【請求項１５】
前記カウント値の前記現在値が最重要部分から開始して出力される、請求項１４に記載の回路。
【請求項１６】
前記デコーダが、受信した被符号化値が前記同期チャネルで受信した値と重要度が同等以上の前記カウント値におけるビットのカウント値の変化を示す時期を検出するための検出器を備え、
前記デコーダが、同期時に、前記受信した同期信号を並行して受信した被符号化値と比較し、かつ、前記受信した被符号化値が、前記カウント値に適用されるときに、前記同期信号が現在出力しているビットと等しいかそれよりも高いビットを変更するであろうと前記検出器が示すまで、前記受信した同期信号を記憶するように構成されており、そこでは前記デコーダが、前記カウント値を更新するために前記被符号化値を適用し、かつ、前記被符号化値を使用して前記カウント値の更新を継続し、前記同期を停止するように構成されている、請求項１５に記載の回路。
【請求項１７】
前記カウント値が二進値を備え、前記被符号化値が２のべき数を示し、前記コンパレータが、前記被符号化値を前記受信した同期信号のビット位置に対応する値と比較し、前記被符号化値が前記受信した同期信号の前記ビット位置に対応する値以上であることを前記コンパレータが示すことに応答して、前記少なくとも１つのデコーダが前記被符号化値を前記カウント値に適用するように構成されている、請求項１６に記載の回路。
【請求項１８】
前記エンコーダが、現在のカウント値の連続バージョンによって後続される同期開始信号を前記同期チャネル上で継続的に出力するように構成されている、請求項１４に記載の回路。
【請求項１９】
前記エンコーダが、同期リクエストに応答して、現在のカウント値の連続バージョンによって後続される同期開始信号を前記同期チャネルで出力するように構成されている、請求項１４に記載の回路。
【請求項２０】
前記エンコーダが、現在のカウント値の連続バージョンによって後続される同期開始信号を、前記被符号化値が、前記カウント値に適用されたときに、前記同期信号が現在出力しているビットと等しいかそれよりも高いビットを変更すると前記エンコーダが判断するまで前記同期チャネル上に出力するように構成されており、前記エンコーダが前記同期開始信号から前記同期信号を送信する、請求項１６に記載の回路。
【請求項２１】
回路の少なくとも１つの要素に保持された増大するカウント値を更新する方法であって、
ソースから前記増大するカウント値を受信することと、
前記増大するカウント値を被符号化値に符号化することであって、前記被符号化値が、前記少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示すことと、
前記被符号化値を相互接続回路を介して前記少なくとも１つの要素に送信することと、
前記被符号化値を復号し、前記指数量に基づいて前記カウント値を増やすことと、
を含み、
前記回路のうちの少なくともいくつかが、クロック信号によってクロックされる同期回路を備え、前記回路が様々なクロックドメインを有し、そのために、前記同期回路の少なくとも一部分が異なる周波数におけるクロック信号によって別の部分にクロックされ、前記回路が、前記異なってクロックされた部分の間の境界で前記相互接続回路上に配置されたクロック変換回路を備え、前記クロック変換回路が、第１のクロックドメインで動作している前記相互接続回路から前記被符号化値を受信し、前記被符号化値を記憶し、第２のクロックドメインにある前記相互接続回路に前記被符号化値を出力するように構成されたデータストアを備える、方法。
【請求項２２】
増大するカウント値を更新するための手段であって、
前記増大するカウント値を保持するための少なくとも１つの手段を備える回路と、
前記増大するカウント値のソースから前記増大するカウント値を受信するため、および前記増大するカウント値を、被符号化値に符号化するための符号化するための手段であって、前記被符号化値が、前記少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示す符号化手段と、
前記被符号化値を受信し、前記被符号化値を前記少なくとも１つの要素に送信するための相互接続手段と、
を備え、
前記増大するカウント値を保持するための前記少なくとも１つの手段が、前記被符号化値を復号するため、および前記指数量に基づいて前記カウント値を増やすための復号手段を備え、
前記回路のうちの少なくともいくつかが、クロック信号によってクロックされる同期回路を備え、前記回路が様々なクロックドメインを有し、そのために、前記同期回路の少なくとも一部分が異なる周波数におけるクロック信号によって別の部分にクロックされ、前記回路が、前記異なってクロックされた部分の間の境界で前記相互接続手段上に配置されたクロック変換回路を備え、前記クロック変換回路が、第１のクロックドメインで動作している前記相互接続手段から前記被符号化値を受信し、前記被符号化値を記憶し、第２のクロックドメインにある前記相互接続手段に前記被符号化値を出力するように構成されたデータストアを備える、手段。
【請求項２３】
増大するカウント値を保持するように構成された少なくとも１つの要素と、
前記増大するカウント値のソースから前記増大するカウント値を受信するため、および前記増大するカウント値を、被符号化値に符号化するように構成されたエンコーダであって、前記被符号化値が、前記少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示すエンコーダと、
前記被符号化値を受信し、前記被符号化値を前記少なくとも１つの要素に送信するための相互接続回路と、
を備える回路であって、
前記少なくとも１つの要素が、前記被符号化値を復号するため、および前記指数量に基づいて前記カウント値を増やすためのデコーダを備え、
前記カウント値が二進値を備え、前記被符号化値が、２に適用される指数量を示し、前記デコーダは、前記被符号化値を２のべき数として適用し、前記カウント値を増やす目的で使用される復号値を決定するように構成され、
前記デコーダが、前記受信した被符号化値によって示された前記指数量の次の倍数まで前記保持されたカウント値を増分するように構成されており、
前記被符号化値が前記カウント値の１ビットを示し、前記デコーダが、前記被符号化値によって示される前記ビットを設定し、すべての低位ビットをすべてクリアすることによって前記カウント値の被同期コピーを増やすように構成されている、回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カウント値の複数のコピーが既定の許容公差内で同期されるように、回路全体にわたって増分カウント値を分散させる分野に関する。
【背景技術】
【０００２】
処理システムでは、複数のコンポーネントが各種プロファイリングおよびスケジューリング目的で同期される必要がある。同様に、プロセッサのステップごとのアクティビティを監視するトレースコンポーネントは、検出されたイベントの順序を推断できるように、システム全体にわたって整合しているタイミング情報にアクセスする必要がある。
【０００３】
これまでは、タイムスタンプを使用してこれらの課題に対処してきた。英国ケンブリッジのＡＲＭ（登録商標）Ｌｔｄ．社によって設計されたプロセッサでは、使用されるタイムスタンプ値が６４ビット値である。オーバーフローのリスクを減らすために、このような大きな値が選択されている。この値は、システム内の様々な箇所で利用できる必要があることに加え、システム周辺に６４ビット値を分散させると、ルーティングの費用が高く、実装が困難である。この値は、時間を示す目的で使用されるため、値のローカルコピーは互いに整合している必要があり、そのため、送信遅延も似ている必要がある。複数のクロックおよびパワードメインを有するシステムでは、さらなる課題が生じる。タイムスタンプ信号などの増分信号を、クロックドメイン境界をまたいで送信すると、固有の問題が生じる。理論上はグレイコードを使用して実行可能であるものの、生成されるタイムスタンプは、同じ方法で第２のクロックドメイン境界を超えて渡すことができない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
かかる大きなルーティングオーバーヘッドを伴わずにかかる増分カウント値を渡すことができ、かつクロックドメイン境界をまたがることのできるシステムを提供できることが望ましい。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、前記回路内に位置し、増大するカウント値を保持するように構成された少なくとも１つの要素と、前記増大するカウント値のソースから前記増大するカウント値を受信するためのエンコーダであり、前記増大するカウント値を被符号化値に符号化するように構成されたエンコーダであって、前記被符号化値が、少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示すエンコーダと、前記被符号化値を受信し、前記被符号化値を前記少なくとも１つの要素に送信するための相互接続回路と、を備える回路であって、前記少なくとも１つの要素が、前記被符号化値を復号するため、かつ前記指数量に従って前記カウント値を増やすためのデコーダを備える回路を提供する。
【０００６】
本発明は、このカウント値がその宛先における現在のカウント値の有用な反映となる場合、増大するカウント値のコピーを回路をまたいで送信することが、潜在的な問題を有する可能性があり、値自体が相当に大きいために、大きなルーティング上の問題を招く場合に特にその傾向が強いことを認識する。本発明は、増大するカウント値は大きな値によって表される場合があるが、実際のカウント値の増大は、はるかに少ないビットで表せる可能性があることを認識する。また、この増量を表すために指数量が使用されると、送信された値を比較的少ないビットに符号化することができ、デコーダの助けを借りて、ローカルコピーを比較的容易に更新することができるということも認識する。
【０００７】
いくつかの実施形態では、前記最大被符号化値が前記最大カウント値よりも小さいため、前記相互接続回路は、前記カウント値を送信する場合に必要とされる接続箇所よりも少ない接続を用いて、前記被符号化値を送信することができる。
【０００８】
そのため、カウント値に適用される指数量として増大するカウント値を符号化することにより、最大カウント値より小さい最大被符号化値を使用することができるため、この値を送信するために必要なルーティング接続箇所が減る。
【０００９】
いくつかの実施形態では、前記デコーダが、前記受信した被符号化値によって示された前記指数値を前記保持されたカウント値に加算するように構成されている。
【００１０】
指数値を使用して増量を符号化することは、値を圧縮するための効率的な方法であり、符号化および復号は、いくつかの方法で実行することができる。１つの方法では、カウント値に対する増大を表す指数値を送ることができ、この指数値は、カウント値のコピーに単純に加算することができる。
【００１１】
他の実施形態では、前記デコーダが、前記保持されたカウント値を、前記受信した被符号化値によって示される次の倍数の前記指数値に増分するように構成されている。
【００１２】
あるいは、カウント値がその指数値の次の倍数まで増分されるように、指数値を使用することができる。これは、特に有効なデータ圧縮方法である。
【００１３】
いくつかの実施形態では、前記カウント値が二進値を備え、前記被符号化値は、２に適用される指数量を示し、前記デコーダは、前記被符号化値を２のべき数として適用し、前記カウント値を増やす目的で使用される復号値を決定するように構成されている。
【００１４】
数多くの処理装置が二進数を使用するため、カウント値が二進値であれば好都合であり、もし二進値であれば、指数量を、２に適用されるべき数とすることができる。
【００１５】
いくつかの実施形態では、前記被符号化値は１ビットの前記カウント値を示し、前記デコーダは、前記被符号化値によって示される前記ビットを設定し、低位ビットをすべてクリアすることによって前記カウント値の前記被同期コピーを増やすように構成されている。
【００１６】
増分を符号化する便利で圧縮効率の良い方法は、設定されるビットを示す被符号化値を送信することで、デコーダはこのビットを設定し、すべての下位ビットをクリアする働きをする。そのため、被符号化値が３である場合、ビット３は１に設定され、カウント値のビット２、１および０はクリアされる。ビット４、５、６などは、この更新による影響を受けない。
【００１７】
いくつかの実施形態では、前記回路が前記カウント値ソースを備える。
【００１８】
カウント値は外部の回路から受信されることもあるが、いくつかの実施形態では、カウント値ソースが回路自体の中にある。
【００１９】
いくつかの実施形態では、前記カウント値ソースが、時間の経過を表す値を生成するためのタイムスタンプジェネレータを備え、前記少なくとも１つの要素が前記タイムスタンプのローカルコピーを保持する。
【００２０】
カウント値ソースは、任意の増大するカウント値のソースとなることができるが、いくつかの実施形態では、時間の経過を表す値を生成するタイムスタンプジェネレータである。これは、実時間と関連する場合もあれば、増大する時間と関連するだけの場合もある。数多くの処理システムで、何かが起こる瞬間は、システムの一部でシステムの別の一部と関連する可能性があるということが重要であり得る。そのため、ある事柄が回路の様々な部分で起こった実際の順序を判断できるように、例えば許容誤差内で同期されたタイムスタンプのコピーが、回路の様々な部分で利用できるという点が重要であり得る。
【００２１】
いくつかの実施形態では、前記回路が、複数の要素と、前記エンコーダから受信した前記信号を複数の信号に分割するため、および複数の相互接続回路経由で前記複数の要素に出力するための少なくとも１つのスプリッタとをさらに備えており、前記複数の要素の各々がデコーダを備え、前記カウント値を保持する。
【００２２】
本発明の実施形態が、このカウント値のローカルコピーがいくつか存在する場合に特に有用である。これらのローカルコピーを回路内の様々な場所に送信し、それらを許容誤差内で同期させておくには、厳しいルーティング要件を有する可能性があり、タイミングという点から困難である可能性がある。カウント値を符号化し、より小さいビット信号を送信することは、これらの課題に対処するのに役立つ。
【００２３】
いくつかの実施形態では、前記回路が、前記複数の要素が既定公差内で互いに同期されている前記カウント値のコピーを保持するように構成されている。
【００２４】
それらのコピーを符号化し、復号し、送信するには時間がかかるため、それらのコピーは、一般に元のタイムスタンプソースと同期されないことに留意すべきである。ただし、この回路は、ローカルコピーが既定公差内で互いに同期されるように構成される。
【００２５】
いくつかの実施形態では、前記相互接続回路は複数のバスを備える。
【００２６】
相互接続回路はいくつかの形態をとるが、多くの場合、複数のバスである。
【００２７】
いくつかの実施形態で、前記回路のうちの少なくともいくつかが、クロック信号によってクロックされる同期回路を備え、前記回路は様々なクロックドメインを有し、そのために、前記同期回路の少なくとも一部分が異なる周波数でクロック信号によって別の部分にクロックされ、前記回路が、前記異なってクロックされた部分間の境界で前記相互接続回路に配置されたクロック変換回路を備え、前記クロック変換回路が、第１のクロックドメインで動作している前記相互接続回路からの前記被符号化値を受信し、前記被符号化値を記憶して、第２のクロックドメインにある前記相互接続回路に前記被符号化値を出力するように構成されたデータストアを備える。
【００２８】
システムをまたがってカウント値を送信することにおけるさらなる課題は、システムの複数部分が様々なクロックドメインで動作するという点である。カウント信号は、クロック信号に対して増分することが多いため、あるクロック信号に応答して動作している部分は、異なるクロック信号に応答して動作している部分に関連しにくい場合がある。
【００２９】
この課題は、クロック変換回路内のデータストアが、クロックドメインとストアとの間の境界で被符号化値を受信し、その後第２のクロックドメインにその値を出力する本発明の実施形態におけるクロック変換回路を使用して対処される。
【００３０】
クロックが第１または第２のドメインのうちで、より速いかどうかが、クロック変換回路が値を取り扱う方法に影響を及ぼす。
【００３１】
そのため、前記第２のクロックドメインが前記第１のクロックドメインよりも高速のクロック周波数で動作している場合には、前記データストアが、前記第１のクロックドメインにある前記クロック信号の各々について被符号化値を受信および記憶し、前記第２のクロックドメインにある前記クロック信号の下位セット用の被符号化値を前記データストアから出力するように構成されている。
【００３２】
第２のクロックドメインが第１のクロックドメインよりも速い場合には、信号の送信が比較的単純である。受信クロックドメインは、信号が送られないクロック期間を取り扱える場合、被符号化値をクロック信号の下位セットで単に受信し、適宜更新するだけである。
【００３３】
第２のクロックドメインが第１のクロックドメインより遅いクロック周波数で動作している場合の方がわずかに難易度が高い。これらの実施形態では、前記クロック変換回路が前記データストアへの入力に配置された追加ストアを備え、前記第２のクロックドメインが前記第１のクロックドメインより遅いクロック周波数で動作しているときに前記データストアが満杯になると、次の受信した被符号化値が前記追加ストアに記憶され、前記回路は、前記次の受信した値をその後受信した値と比較するためのコンパレータを備え、前記クロック変換回路は、前記値のうちのどちらが前記カウント値のより大きな増分を生成するかを判断し、スペースを有する前記データストアに応答して前記データストアに前記値を入力し、前記値のもう一方を破棄するように構成されている。
【００３４】
第２のクロックドメインが第１のクロックドメインよりも遅いクロック周波数で動作している場合には、その２つのクロックドメイン間のデータストアがすぐに満杯になる。そのため、この問題に対処できる実施形態では、追加データストアが設けられており、データストアが満杯になると、回路が次の受信した値を追加データストアに記憶するように構成されている。この記憶された値はその後、次の受信した値と比較され、２つのクロックドメイン間にあるデータストアに空間があると、２つの受信した値のうちの高い方が送信され、もう一方は破棄される。このようにして、カウント値で大きい方の増分をトリガーする値だけが送信されるため、高い方のクロックドメインと同じ解像度を有するカウント値は実現されないものの、低速クロックドメイン内ではすべてが低周波数で動作しているため、この低解像度は問題でない。カウント値は、もう一方のクロックドメインでのカウント値と一致するため、更新頻度はより少ない。
【００３５】
いくつかの実施形態では、前記相互接続回路が、前記少なくとも１つの要素にカウント値を送信するために同期信号を伝えるための同期チャネルを備え、前記同期チャネルが、複数のサイクルを経て前記カウントソースから受信した前記カウント値の現在値を前記少なくとも１つの要素に出力するように構成されており、前記デコーダが、現在のカウント値を保持していない場合には同期を開始し、前記同期チャネルで受信した前記現在の値の少なくとも一部分を記憶するように構成されている。
【００３６】
送られるカウント値信号は、すでに保持されている値に適用可能な増加を示す。そのため、送信されるのは、カウント値全体でない。回路の一部分がオフになっていること、およびこの部分がカウント値を保持していることがあり得る。かかる場合には、この部分が再びオンになっても、増加を含む被符号化値が、カウント値を再び確立するのに十分でなく、異なる方法で送られる必要がある。そのため、このことを理由に、本発明のいくつかの実施形態では、複数の要素に保持されたカウント値を同期するために同期信号を伝える同期チャネルがある。この同期チャネルは、ソースから受信したカウント値の現在値を出力するが、同期チャネルが広がり過ぎないように、複数のサイクルを経て送信する。デコーダは、現在のカウント値を保持していないと、同期を開始し、同期チャネルで受信する値を記憶するように構成されており、それによって現在のカウント値が受信され、記憶される。
【００３７】
いくつかの実施形態では、前記カウント値の前記現在値が、最重要部分から出力し始める。
【００３８】
この値は連続して送信するのが便利である場合があり、かかる場合には、最重要部分を最初に出力し、最重要部分からカウント値を更新するのが好都合である。
【００３９】
いくつかの実施形態では、前記デコーダが、受信した被符号化値が前記同期チャネルで受信値と重要度が同等以上の前記カウント値におけるビットのカウント値の変化を示す時期を検出するための検出器を備え、前記デコーダが、同期時に、前記受信した同期信号を並行して受信した被符号化値と比較するように、かつ、前記カウント値に適用されるときに、前記受信した被符号化値が前記同期信号が現在出力しているビットと同じかそれよりも高いビットを変更することを前記検出器が示すまで、前記受信した同期信号を記憶するように構成されており、前記デコーダが、前記カウント値を更新するために前記被符号化値を適用するように、かつ、前記被符号化値を使用して前記カウント値の更新を継続し、前記同期を停止するように構成されている。
【００４０】
同期信号がいくつかのサイクルを経て送られると、送られている間にカウント値が増えている。そのため、デコーダは、受信した被符号化値が前記同期チャネルから受信したビット値と重要度が同等以上の前記カウント値におけるビットのカウント値の変化を示す時期を検出する。デコーダは、この時期を検出すると同期を停止し、被符号化値を使用してカウント値を更新する。デコーダはここでは定常状態にあり、記憶されたカウント値に適用される増分を示す被符号化値を使用してカウント値の更新を続けることができる。
【００４１】
いくつかの実施形態では、前記カウント値が二進値を備え、前記被符号化値が２の乗数を示し、前記コンパレータが、前記被符号化値を前記受信した同期信号のビット位置と比較し、前記被符号化値が前記受信した同期信号の前記ビット位置に等しいかそれよりも大きいことを前記コンパレータが示すのに応答して、前記少なくとも１つのデコーダが被符号化値を前記カウント値に適用するように構成されている。
【００４２】
被符号化値が２のべき数を示す二進値である場合には、被符号化値が受信した同期信号のビット位置と同じかそれ以上である時期をコンパレータが判断する必要があり、同期がこの時点で停止することがある。
【００４３】
いくつかの実施形態では、前記エンコーダが、現在のカウント値の連続バージョンによって後続される同期開始信号を前記同期チャネルで継続的に出力するように構成されている。
【００４４】
同期信号は継続的に出力される場合があるため、デコーダは、現在のカウント値を記憶せず、同期する必要があると判断すると、同期開始信号を待機し、いくつかのサイクルを経て送信されているカウント値の記憶を開始する。
【００４５】
あるいは、いくつかの実施形態では、エンコーダが、同期リクエストに応答して、現在のカウント値の連続バージョンによって後続される同期開始信号を前記同期チャネル上に出力するように構成されている。
【００４６】
同期信号がリクエストに応答して送られる方が便利である場合がある。
【００４７】
いくつかの実施形態では、前記カウント値に適用されたときに、前記被符号化値出力が、前記同期信号が現在出力しているビットと等しいかそれよりも高いビットを変更すると判断するまで、前記エンコーダが、現在のカウント値の連続バージョンによって後続される同期開始信号を前記同期チャネル上に出力するように構成されており、その後前記エンコーダは前記開始信号から前記同期信号を送信する。
【００４８】
先述のとおり、同期信号は継続的に送ることができるが、ある時点で、同期信号によって送られているビットよりも重要性の高いビットを被符号化値が更新し、この時点で同期信号はもはや不要となる。この情報はエンコーダで判断することができ、同期信号が符号化値よりも古いと判断されると、エンコーダはその信号を送ることを終了し、最初からやり直すように判断する。こうして、デコーダが現在のタイムスタンプに同期するための平均所要時間を減らす。
【００４９】
本発明の第２の態様は、少なくとも１つの要素に保持された増大するカウント値を更新する方法であって、ソースから前記増大するカウント値を受信することと、前記増大するカウント値を被符号化値に符号化することであって、前記被符号化値が、少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示すことと、相互接続回路経由で前記被符号化値を少なくとも１つの要素に送信することと、前記被符号化値を復号することと、前記指数量に基づいてカウント値を増やすこと、を含む方法を提供する。
【００５０】
本発明の第３の態様は、前記増大するカウント値を更新するための手段であって、前記増大するカウント値を保持するための少なくとも１つの手段と、前記増大するカウント値のソースから前記増大するカウント値を受信するため、および前記増大するカウント値を被符号化値に符号化するための符号化手段であって、前記被符号化値が、前記少なくとも１つの要素に保持された前記カウント値に適用される指数量を各々示す符号化手段と、前記被符号化値を受信し、前記被符号化値を前記少なくとも１つの要素に送信するための相互接続手段と、を備え、前記増大するカウント値を保持するための前記少なくとも１つの手段が、前記被符号化値を復号するため、および前記指数量に基づいて前記カウント値を増やすための復号手段を備える手段を提供する。
【００５１】
本発明の上記および他の目的、特徴および利点は、添付の図面と併せて読まれるべき例示的実施形態に関する以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態に従ってタイムスタンプをシステムにわたって分散させるための回路である。
【図２】被符号化値がタイムスタンプを更新することができる方法である。
【図３】本発明の実施形態に従ってカウント値を低速クロックドメインから高速クロックドメインに送信するためのクロック変換回路である。
【図４】本発明の実施形態に従ってカウント値を高速クロックドメインから低速クロックドメインに送信するためのクロック変換回路である。
【図５】高速クロックドメインから低速クロックドメインに移動するタイムスタンプである。
【図６】同期信号と被符号化値とを使用した、記憶されたカウント値の更新である。
【図７】本発明の実施形態にかかる方法のステップを表すフロー図である。
【図８】本発明の実施形態にかかる、デコーダで実施される方法ステップを表すフロー図である。
【発明を実施するための形態】
【００５３】
図１は、半導体チップなどの処理システムにわたってタイムスタンプを分散させるための回路１０を示す。回路１０は、タイムスタンプデータを生成するタイムスタンプジェネレータ２０を有する。本実施形態では、このタイムスタンプデータは６４ビット幅である。この幅は、正常動作時にタイムスタンプ値がオーバーフローするのを避けるために選ばれた。前述のとおり、システムにわたって６４ビット幅のデータ値を送信することは非常に難しい。本実施形態では、この課題に対処するために、６４ビット値が、エンコーダ２５を使用して、完全なタイムスタンプ値ではなく記憶された時間値に適用される必要がある増分を示す対数値に変換される。この方法だと、タイムスタンプ内の情報を、はるかに少ないビットで送信することができる。その結果、タイムスタンプ値全体を送信するのに必要であろう幅よりもはるかに狭いバス２７を使用して値が送信される。
【００５４】
タイムスタンプ値がより狭い対数形態に変換されると、スプリッタ３０が信号を様々なチャネルに分割する。それらのチャネルの各々は、デコーダ４２によって出力されるタイムスタンプのローカルコピーを保持するそれぞれの要素４０にルーティングされる。デコーダ４２は、記憶する現在値に適用する必要がある増分を決定するために被符号化値を復号した後、この記憶されたタイムスタンプ値をその増分で更新し、要素４０に提供する。要素４０は、本実施形態ではその値を記憶せず、単に使用するだけである。この値はデコーダ４２に記憶され、タイムスタンプが必要とされるときに、リクエストに応じて要素４０に出力される。信号を符号化し、復号し、送信するにはいくつかのサイクルを経るため、タイムスタンプのローカルコピーは、一般にタイムスタンプソースと同期しないことに留意すべきである。ただし、これらのコピーは、様々なローカルコピーが少なくとも特定の既定公差内で互いに同期するように配置される。さらに、タイムスタンプがローカルコピーに到達するまでの所要時間をシステムは知るために、元の値が必要な場合には、計算することができる。
【００５５】
したがって、この場合、デコーダで２が受信されると、デコーダはタイムスタンプストアに記憶された値のビット２を設定し、ビット０と１とをクリアする。これについては、図２にさらに詳しく記載されている。
【００５６】
そのため、増分するカウント値に関する情報は、先行技術よりもはるかに狭いバスを使用してシステムにわたって分散することができ、これによって値をより速く更新することができ、ルーティングの領域要件も下がる。
【００５７】
本実施形態では、対数変換に対する二進数が以下の形態を有する。送信された値は、これから設定されるカウント値のビットを示し、このビットが設定されると、いかなる下位ビットもクリアされる。
【００５８】
図２は、かかる符号化を使用してカウント値を段階的に増加する方法の一実施例を示す。このように、対数値が０であれば、ビット０を設定すること意味する。対数値が１であれば、ビット１を設定することおよびビット０をクリアすることを意味する。対数値がｎであれば、ビットｎを設定することおよびビットｎ−１を０にクリアすることを意味する。
【００５９】
そのため、増分カウントは、はるかに狭いこれらの対数値を使用して送信することができる。このように、０から１に変更するには、ビット０を設定することを意味する対数値０が必要であり、１から２、すなわち０ｂ１０に変更するには、ビット１を設定することとビット０をクリアすることとを意味する対数値１が必要である。３、すなわち０ｂ１１に変更するには、ビット０を設定することを意味する対数値０が必要であり、４、すなわち０ｂ１００に変更するには、ビット２を設定することとビット０および１とをクリアすることを意味する対数値２が必要である。そのため、確認できるとおり、増分カウント値は、これから設定されるビットを示し、その下のビットをクリアするだけで、対数形態で送信することができる。
【００６０】
ただし、本実施形態では、対数コンバータが、設定されるビットを示し、下位ビットはクリアされる。送信されるデータの幅を減らすために、任意の指数情報を送ることができる。このように、増分は指数形態で送信されてもよく、その後加算器を使用してカウント値に加算されてもよい。
【００６１】
図１は、クロックドメイン境界に位置するクロック変換手段５０も示す。数多くの処理システムが、異なるクロック周波数でクロックされている領域を有する。これは、節電および性能上の理由によるものである場合がある。これらの境界を超えてタイムスタンプ値を送信することは、独自の困難を有する。
【００６２】
図３および図４は、本発明の実施形態で、クロック周波数を増加または減少するという課題に対処する方法を詳しく示す。
【００６３】
図３は、低周波数ドメインから高周波数ドメインへの境界上にあるクロック変換回路５０を示す。データストア５２が、境界に配置された先入れ先出しバッファＦＩＦＯの形態で存在する。遅いクロック周波数のクロックＢの各クロック信号に対して、符号化された対数値がＦＩＦＯで受信され、そこに記憶される。この記憶された値は、その後高速のクロック周波数であるクロックＡで出力される。しかし、ＦＩＦＯからの出力に利用可能な値が高速のクロック周波数の各クロック信号に存在しないため、バス２７で有効な信号が実装され、この有効な信号は、ＦＩＦＯに記憶されている新しい値に応答して有効に設定され、この有効な信号は、有効なチャネルで出力され、これに応答して、記憶された値が出力される。このようにして、クロックＡ周波数の下位セットでのみ信号が出力されるが、これは、信号が低速で変化しているのみであるために許容されるのであり、値を出力する速度を上げても、出力信号の解像度には何も加わらない。そのため、入力対数信号と出力信号とを見ると、一方が、第１の入力クロック信号用の入力信号０と、第１の出力クロック信号用の出力信号０とを有し、次の出力クロック信号は、新しい入力値が受信されていないために値を出力せず、そのために有効な信号が実現されなかった。次の出力クロック信号では、新しい入力値がＦＩＦＯで受信され、これが１であるため、１が出力され、このようにして値の出力が継続する。
【００６４】
専用の有効な信号が本実施形態で使用されているが、代替実施形態では、対数信号の予約された符号化が代わりに使用される。その結果、二進カウンタでサポートされているビットの数を、例えば６４ビットから６３という具合に１減らすことの代償として、対数カウントをルーティングするために必要があるワイヤの数が減る。
【００６５】
図４は、高周波数ドメインから低周波数ドメインへのクロック変換であるわずかに複雑な実施例を示す。この場合には、入力信号が、出力可能な速度よりも速く変化している。これは、クロック境界で再度ＦＩＦＯ  ５２を使用して処理されるが、コンパレータ５４とさらなるデータストア５６との追加によっても処理される。受信した被符号化値は、クロックＡのクロック周波数でＦＩＦＯ  ５２に記憶され、最初にクロックＢのクロック周波数でＦＩＦＯから出力される。クロックＢはクロックＡよりも遅いため、ＦＩＦＯがすぐに満杯になり、処理が継続できないことは明らかである。この時点で、次の被符号化値がさらなるデータストア５６に記憶され、次の受信値と比較される。その後、コンパレータ５４がこれら２つの値のうちの大きい方を出力し、その他の値は破棄される。そのため、ＦＩＦＯが次の値を受信する準備ができると、コンパレータ５４によって出力された値がＦＩＦＯに送信される。ストア５６はその後クリアされ、次の値が記憶されて、次の受信値と比較される。この時点でＦＩＦＯにスペースがない場合には、２つの値のうち大きい方がデータストア５６に記憶され、次の値が受信および比較される。このように、ＦＩＦＯ  ５２でスペースがあれば必ず、ＦＩＦＯが満杯だった時期に受信した最大値がその後ＦＩＦＯに出力される。これにより、図５に例示されるこの低速クロックドメイン用の許容タイムスタンプ値が生成される。
【００６６】
図５は、受信した対数被符号化値と、対応するタイムスタンプ値と、ＦＩＦＯ  ５２からクロックドメインＢに出力される値との実施例を示す。そのため、初めにＦＩＦＯが満杯であると仮定すると、ＦＩＦＯ  ５２にスペースが存在する前にまず０が受信され、続いて１が受信される。この２つの値のうち１の方が大きいので、出力されるのは１であり、したがって、再構成された０ｂ００１０のタイムスタンプがこの時点で形成される。次の受信値は０であり、続いて２が、別の出力の機会が存在する前に受信される。したがって、これら２つの値のうち、２の方が大きいため、２が出力され、再構成されたタイムスタンプは０ｂ０１００になる。次の出力の機会は、０、１、０および３が受信された後に生まれ、３が最大値であることから、３がＦＩＦＯ  ５２に出力され、このＦＩＦＯから出力されると、再構成されたタイムスタンプとして０ｂ１０００がトリガーされる。次の出力の機会は、０および１が受信された後に生まれ、ＦＩＦＯ  ５２によって１が出力されるため、再構成されたタイムスタンプは０ｂ１０１０になる。このように、確認できるとおり、低速クロックドメイン内のタイムスタンプが、様々な時点で他方のクロックドメイン内のタイムスタンプと同期される。これらのタイムスタンプはそれほど頻繁に変わらないが、低速クロックドメインは、かかる変更の速いタイムスタンプを必要としないため、この同期は許容可能であり、この再構成されたタイムスタンプの解像度は、低速クロックドメインＢにとって十分である。
【００６７】
これは、ほとんどオーバーヘッド領域を必要とせずに、許容公差内で同期されるタイムスタンプを生み出す時間ドメイン境界をまたがるタイムスタンプにとって的確な解決策である。
【００６８】
図３および図４を、異なるクロック境界を越えるための異なる回路として示したものの、これが説明しやすくするための措置であるという点に留意すべきである。数多くの実施形態では、どんなクロック境界であっても単に図４の回路を使用して対処するに過ぎず、信号が低周波数ドメインから高周波数ドメインへと移動していれば、ＦＩＦＯ  ５２は単純に決して満杯にならないため、追加データストア５６は不要であろう。高から低、あるいは低から高に変換できる回路を使用することは、これらのドメインのクロック周波数が、おそらく電力的配慮から値を変更することができ、システムは依然として正しく機能するであろう。
【００６９】
ここまでの記載内容は、符号化された対数値に対するタイムスタンプの更新方法である。しかし、タイムスタンプのローカルコピーを保持するシステムの部分が性能上の理由で電源を停止し、その後再び電源が投入された場合には、符号化された増分値が、タイムスタンプ値を回復するのに十分でないであろう。このような理由で、本発明の実施形態では、様々なデコーダに同期信号が送られ、この信号がいくつかのクロックサイクルを経てタイムスタンプ値自体を伝える。
【００７０】
そのため、図１、図３および図４では、相互接続回路２７がこの同期信号を伝えるいくつかの追加チャネルを有する。チャネルが多すぎてこの信号を送れないという事態を避けるために、同期信号は、単一チャネルでシリアルデータ信号として送られる。タイムスタンプデータは単一チャネルで送られる場合がある、追加同期マーカーを送信する他の追加同期チャネルが存在する。同期データ信号は、最重要ビットを先頭に、重要性のより低い他のビットが後続して送られる。これらのビットは、記憶されたローカルカウント値を投入する目的で受信および使用される。ある時点で、被符号化値を使用してこのタイムスタンプ値が更新され、この時点が計算される方法が図６に記載されている。
【００７１】
図６は、同期信号を使用してデコーダ４２に記憶されたカウント値を更新し、（図１の）カウント値要素４０に出力する方法を示す。このように、電源投入時に、デコーダからの０出力が存在し、このデコーダは、カウント値が最新でなく、同期チャネルでタイムスタンプソースに同期リクエストを送ると認識する。タイムスタンプソースおよびエンコーダは、同期開始信号を送り、その後同期データを送って応答する。本実施形態では、デコーダが同期信号をリクエストするのに対し、他の実施形態では、同期信号が同期データチャネルとともに継続的に送られ、デコーダは、データが送信されることになっていることを示す同期開始信号を受信するまで待機するに過ぎないことに留意すべきである。本実施形態では、この信号が同期マーカーチャネルに沿って送られる。
【００７２】
同期開始信号が検出されると、次のビットは、カウント値の最重要ビットを示し、これをデコーダに記憶し、要素４０に出力することができる。その後、次に最重要なビットが送信され、記憶されるなどする。同期信号はいくつかのクロックサイクルを経て送信されるので、タイムスタンプ自体が更新されていることに留意すべきである。ただし、同期信号によって出力されているビットは、出力されたときに、同期シーケンスが始まったときにそのタイムスタンプが有していた値から変わらないのが一般的である。対数値を使用して、同期信号によって書き込まれているタイムスタンプ値が適切な時期に更新され、その結果、以下で明らかになるように、同期シーケンス全体にわたってカウント値の最新版が使用できるようになる。
【００７３】
本実施形態では、同期データ信号のどのビットが現在送信されているかを示す同期タブもある。この値は、送信されるのではなく、エンコーダとデコーダとによって別々に維持される。
【００７４】
図６に示す実施形態では、開始信号の後に１が送られ、これがカウント値の最重要ビットとして記憶される。同時に、エンコーダがデコーダのすべてに更新値を送っており、本実施例では０が受信される。この値は、（更新されるビットを示す）同期タブ値と比較され、これが同期タブ値よりも小さいため、同期が継続する。次の受信値は０、符号化された対数値は３、同期タブ値は４なので、同期信号は、符号化された対数値であるこの０値より高いビットを依然として更新しており、したがって同期値は次の重要ビットとして記憶される。これは、符号化された対数値が同期タブのビット値以上になるまで継続する。本実施例では、０番目のビットまでこれは発生しない。この時点で対数値は２であるため、同期は終了し、符号化された対数値はデコーダによって取得され、現在記憶されている値を更新する目的で使用される。この時点で同期は停止しており、カウント値は対数値から更新される。
【００７５】
本実施形態では、同期データが同期リクエスト信号に応答して送られ、かかる信号を送るための準備が存在しない実施形態では、同期信号が、同期チャネルに沿って継続的に送られる場合があり、電源停止後に同期する必要がある場合には、複数のデコーダのいずれでも利用可能な場合がある。同期信号の形態は一般に開始フラグであり、その後はカウント値自体である。そのためデコーダは、単に開始フラグを待ってから同期データを記憶し始める必要がある。いくつかの実施形態では、エンコーダが、送られている現在の同期データが、被符号化値が更新するビット位置以下のビット位置に到達する時期を計算し、この時点で、現在の同期データを使用した同期が終了することを認識し、このデータを送るのを止め、その後開始信号を送り、最重要ビットから再開することを認識している。
【００７６】
同期信号を送信するための同期チャネルが存在する場合であって、タイムスタンプ信号がその後クロック境界をまたがる場合には、同期信号も境界をまたがる必要があることに留意すべきである。この場合、同期信号はビットを失う可能性は無く、低クロックドメインで同じ解像度を有することができないため、クロック信号周波数が減少しているクロック境界上にあるＦＩＦＯが同期シーケンスの次のビットを受け入れるスペースを確保する時期を示す目的で使用できる追加の有効な信号が実装される。このようにして、同期シーケンスは、タイムスタンプ分散システムで最も遅いクロックの速度まで遅くなる。
【００７７】
上に概説したエンコーダとデコーダとの特定の実装形態を以下に示す。
【００７８】
本発明の実施形態で含む対数カウントインタフェース２７に沿って送られる信号：
ＴＳＢＩＴＶＡＬＩＤ（マスター）
ＴＳＢＩＴ用の有効な信号。この信号は、サイクルごとに１回カウントされるため、通常は必ずタイムスタンプジェネレータによってアサートされる。タイムスタンプバスが高速クロックドメインにブリッジされた場合には、必ずアサートされるとは限らない。
ＴＳＢＩＴ［５：０］（マスター）
ＴＳＢＩＴＶＡＬＩＤがアサートされる場合に有効。
有効である場合には、このサイクルで設定されるビットを示す。この値は、タイムスタンプ内のどのビットが設定されるべきかを示し、下位ビットはすべてクリアされるべきである。このようにしてビットを設定およびクリアすることにより、二進カウンタがシミュレーションされる。
シーケンス（ＴＳＢＩＴＶＡＬＩＤがＬＯＷであるサイクルは無視）は、０、１、０、２、０、１、０、３、０、１、０、２、０、１、０、４などとなる。本実施例のシーケンスは、二進数シーケンス０〜１６に対応する。
ＴＳＳＹＮＣ［１：０］（マスター）
この信号は次のように符号化される。
０ｂ００：このサイクルで有効な同期情報がない。
０ｂ０１：同期マーク（下記参照）。
０ｂ１０：同期ビット０（下記参照）。
０ｂ１１：同期ビット１（下記参照）。
ＴＳＳＹＮＣＲＥＡＤＹ（スレーブ）
同期情報をＴＳＳＹＮＣ［１：０］でストールする。この信号がＬＯＷである場合、ＴＳＡＵＸ［１：０］の値は必ず次のどちらかで処理される。
・次のサイクルで繰り返される。
・同期マークに変更される。この処理は、現在出力されているビット位置以上のＴＳＢＩＴ［５：０］の値が出力された場合に実行される。
この信号は、ＴＳＢＩＴ［５：０］をストールしない。ＴＳＢＩＴ［５：０］に即時応答できないスレーブは、小さい方の値を破棄して大きい方の値を保持する必要がある。
同期
同期情報は、ＴＳＳＹＮＣ［１：０］を経て出力される。この情報は、コンポーネントの電源が投入され、現在のタイムスタンプを再確立する必要があるときに使用される。シーケンスは以下のとおり。
1.同期マーク。
2.最重要ビットから下方に出力された現在のタイムスタンプに対応する同期ビットのシーケンス。
3.ＴＳＢＩＴ［５：０］が、出力されているビット位置以上になると、直ちに同期ビットのシーケンスが終了する。ＴＳＢＩＴ［５：０］がこの値を有する同一サイクルで同期マークが出力される。
4.ビットを同期するシーケンスは（２）から再開する。
実装
エンコーダ
エンコーダ２５は、次のアルゴリズムに従って動作する。アルゴリズム中、ＴＳＶＡＬＵＥＢは６４ビット二進数カウントを表す。
ｓｙｎｃｈｒｏｎｉｚｅｄ  ＝  ＴＲＵＥ；
ｂｉｔ  ＝  ０；
ｌａｓｔ＿ＴＳＳＹＮＣＲＥＡＤＹ  ＝  １；
ｌａｓｔ＿ＴＳＶＡＬＵＥＢ  ＝  ０；
ｏｎ  ｅａｃｈ  ｃｙｃｌｅ
ＴＳＢＩＴＶＡＬＩＤ  ＝  ０
ｆｏｒ  ｉ  ＝  ６３  ｄｏｗｎｔｏ  ０
ｉｆ  ＴＳＶＡＬＵＥＢ［ｉ］  ！＝  ｌａｓｔ＿ＴＳＶＡＬＵＥＢ［ｉ］  ｔｈｅｎ
ＴＳＢＩＴＶＡＬＩＤ  ＝  １；
ＴＳＢＩＴ  ＝  Ｉ；
ｂｒｅａｋ；
ｉｆ  ＴＳＢＩＴ  ＞＝  ｂｉｔ  ｔｈｅｎ
ｓｙｎｃｈｒｏｎｉｚｅｄ  ＝  ＴＲＵＥ；
ｉｆ  ｌａｓｔ＿ＴＳＳＹＮＣＲＥＡＤＹ  ｔｈｅｎ
ｉｆ  ｓｙｎｃｈｒｏｎｉｚｅｄ  ｔｈｅｎ
ＴＳＳＹＮＣ  ＝  ０ｂ０１；
ｂｉｔ  ＝  ６３；
ｓｙｎｃｈｒｏｎｉｚｅｄ  ＝  ＦＡＬＳＥ；
ｅｌｓｅ
ＴＳＳＹＮＣ［１］  ＝  １；
ＴＳＳＹＮＣ［０］  ＝  ｌａｓｔ＿ＴＳＶＡＬＵＥＢ［ｂｉｔ］；
ｂｉｔ  ＝  ｂｉｔ  -  １；
ｌａｓｔ＿ＴＳＳＹＮＣＲＥＡＤＹ  ＝  ＴＳＳＹＮＣＲＥＡＤＹ；
ｌａｓｔ＿ＴＳＶＡＬＵＥＢ  ＝  ＴＳＶＡＬＵＥＢ；
ＴＳＳＹＮＣが０ｂ００になることはない。なぜならば、マスターは常に同期ストリームにおける次の時点を生成できるためである
ＴＳＶＡＬＵＥＢはいかなる速度でも増分することができるため、例えば、２のべき数で増分する必要はない。これにより、タイムスタンプの単位増分ごとに同じ時間値を維持しながら、クロック速度を変化することができる。この信号は、最大可能な解像度を提供するために、通常は各サイクルごとに一定量増分するため、タイムスタンプジェネレータが初期化されると、ＴＳＢＩＴＶＡＬＩＤは必ず大きくなる。
デコーダ
デコーダは、次のアルゴリズムに従ってタイムスタンプを再構築する。
ｓｙｎｃｈｒｏｎｉｚｉｎｇ  ＝  ＦＡＬＳＥ；
ｓｙｎｃｈｒｏｎｉｚｅｄ  ＝  ＦＡＬＳＥ；
ＴＳＶＡＬＵＥＢ  ＝  ０；
ｂｉｔ  ＝  ０；
ｏｎ  ｅａｃｈ  ｃｙｃｌｅ
ＴＳＳＹＮＣＲＥＡＤＹ  ＝  １；
ｉｆ  ｓｙｎｃｈｒｏｎｉｚｅｄ  ｔｈｅｎ
ｉｆ  ＴＳＢＩＴＶＡＬＩＤ  ｔｈｅｎ
ＴＳＶＡＬＵＥＢ［ＴＳＢＩＴ］  ＝  １；
ｉｆ  ＴＳＢＩＴ  ！＝  ０  ｔｈｅｎ
ＴＳＶＡＬＵＥＢ［ＴＳＢＩＴ−１：０］  ＝  ０；
ｅｌｓｅ
ｉｆ  ｓｙｎｃｈｒｏｎｉｚｉｎｇ  ｔｈｅｎ
ｉｆ  ＴＳＢＩＴＶＡＬＩＤ  ａｎｄ  （ＴＳＢＩＴ  ＞＝  ｂｉｔ）  ｔｈｅｎ
ｓｙｎｃｈｒｏｎｉｚｅｄ  ＝  ＴＲＵＥ；
ＴＳＶＡＬＵＥＢ［ＴＳＢＩＴ］  ＝  １；
ｉｆ  ＴＳＢＩＴ  ！＝  ０  ｔｈｅｎ
ＴＳＶＡＬＵＥＢ［ＴＳＢＩＴ−１：０］  ＝  ０；
ｅｌｓｅ
ｉｆ  ＴＳＳＹＮＣ［１］  ｔｈｅｎ
ＴＳＶＡＬＵＥＢ［ｂｉｔ］  ＝  ＴＳＳＹＮＣ［０］；
ｂｉｔ  ＝  ｂｉｔ  -  １；
ｅｌｓｅ
ｉｆ  ＴＳＳＹＮＣ  ＝＝  ０ｂ０１  ｔｈｅｎ
ｓｙｎｃｈｒｏｎｉｚｉｎｇ  ＝  ＴＲＵＥ；
ｂｉｔ  ＝  ６３；
ＴＳＳＹＮＣＲＥＡＤＹは、スレーブがＴＳＳＹＮＣ値を別のコンシューマに渡す必要がないので、必ずアサートされる。
【００７９】
図７は、本発明の実施形態にかかる、カウント値のローカルコピーを更新する方法を表すフロー図を示す。最初に、現在のカウント値が受信され、現在のカウント値と前回のカウント値との間の変化が指数量として符号化される。その後、カウント値のローカルコピーを保持する要素に送信される。この被符号化値は復号され、ローカルコピーは、指数量を適用し、記憶されたコピーを必要量単位で増やすことによって更新される。
【００８０】
図８は、電源停止後にタイムスタンプ値を更新する可能性を含むデコーダで実施される方法を表すフロー図を示す。最初に、デコーダが現在のカウント値を記憶しているかどうかが判断される。例えば電源が停止していた場合には、現在のカウント値を記憶していないかもしれない。現在値を記憶していない場合には、同期する必要がある。そのため、デコーダは、同期開始信号を検出するまで同期チャネルを監視し、次の受信値を現在のタイムスタンプの最重要ビットとして記憶する。その後、同期データの次に重要なビットが受信され、デコーダは、並行して受信される被符号化データが、受信した同期データと重要度が同等以上のビットを更新しているどうかを判断する。該当するビットを更新していない場合には、同期データのこの次に重要なビットを記憶し、後続のビットを受信する。被符号化値がより高いビットを更新している場合には、デコーダが復号する被符号化データを使用してカウント値を更新し、同期したところで、カウント値を被符号化データで引き続き更新する。
【００８１】
本発明の例示的実施形態について、添付の図面を参照して本明細書に記載してきたが、本発明はそれらの正確な実施形態に制限されず、添付の特許請求の範囲によって定義される本発明の範囲と精神から逸脱することなく、各種変更と改変が当業者によってその中で遂行可能であることを理解すべきである。
【符号の説明】
【００８２】
１０  回路
２０  ＴＳジェネレータ
２５  エンコーダ
３０  スプリッタ
４０  ＴＳユーザ
４２  デコーダ
【図１】
0005823203.tif 000002
【図２】
0005823203.tif 000003
【図３】
0005823203.tif 000004
【図４】
0005823203.tif 000005
【図５】
0005823203.tif 000006
【図６】
0005823203.tif 000007
【図７】
0005823203.tif 000008
【図８】
0005823203.tif 000009