(57)【特許請求の範囲】
【請求項１】
複数のマスターポートの中の少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成可能な相互接続ネットワークと、
前記相互接続ネットワークをクロック制御するためにバス相互接続クロック信号を生成するように構成されたコントローラとを備え、
前記コントローラが、
前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信し、
前記少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信し、
(a)前記少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、
(b)前記少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすことと
のうちの少なくとも1つに応答して、前記バス相互接続クロック信号の周波数をスケーリングするように構成される、バス相互接続。
【請求項２】
前記コントローラが、前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすこととに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングするように構成される、請求項1に記載のバス相互接続。
【請求項３】
前記コントローラが、前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値よりも小さいという前記少なくとも1つの第1の帯域幅情報と、前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値よりも小さいという前記少なくとも1つの第2の帯域幅情報とに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングするように構成される、請求項2に記載のバス相互接続。
【請求項４】
前記コントローラが、前記複数のマスターポートのすべてに対する前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、前記少なくとも1つのスレーブポートに対する前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすこととに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングするように構成される、請求項1に記載のバス相互接続。
【請求項５】
前記コントローラが、前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たさないことか、または前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たさないことに応答して、前記バス相互接続クロック信号の前記周波数を増加させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングするように構成される、請求項1に記載のバス相互接続。
【請求項６】
前記コントローラが、前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値よりも大きいという前記少なくとも1つの第1の帯域幅情報か、または前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値よりも大きいという前記少なくとも1つの第2の帯域幅情報に応答して、前記バス相互接続クロック信号の前記周波数を増加させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングするように構成される、請求項5に記載のバス相互接続。
【請求項７】
前記少なくとも1つの第1のヘッドルーム帯域幅閾値が、個々の第1の読取りヘッドルーム帯域幅閾値と個々の第1の書込みヘッドルーム帯域幅閾値とからなる、請求項1に記載のバス相互接続。
【請求項８】
バス相互接続のためのバス相互接続クロック信号をスケーリングする方法であって、
少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成される相互接続ネットワークに接続された複数のマスターポートの中の少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信するステップと、
前記少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信するステップと、
(a)前記少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、
(b)前記少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすことと
のうちの少なくとも1つに応答して、前記相互接続ネットワークをクロック制御するバス相互接続クロック信号の周波数をスケーリングするステップとを含む、方法。
【請求項９】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップが、前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすこととに応答して、前記バス相互接続クロック信号の前記周波数を減少させるステップを含む、請求項8に記載の方法。
【請求項１０】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップが、前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値よりも小さいという前記少なくとも1つの第1の帯域幅情報と、前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値よりも小さいという前記少なくとも1つの第2の帯域幅情報とに応答して、前記バス相互接続クロック信号の前記周波数を減少させるステップと含む、請求項9に記載の方法。
【請求項１１】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップが、前記複数のマスターポートのすべてに対する前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、前記少なくとも1つのスレーブポートに対する前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすこととに応答して、前記バス相互接続クロック信号の前記周波数を減少させるステップを含む、請求項8に記載の方法。
【請求項１２】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップが、前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たさないことか、または前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たさないことに応答して、前記バス相互接続クロック信号の前記周波数を増加させるステップを含む、請求項8に記載の方法。
【請求項１３】
前記バス相互接続クロック信号の前記周波数を増加させるステップが、前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値よりも大きいという前記少なくとも1つの第1の帯域幅情報か、前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値よりも大きいという前記少なくとも1つの第2の帯域幅情報に応答して、前記バス相互接続クロック信号の前記周波数を増加させるステップを含む、請求項12に記載の方法。
【請求項１４】
前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値が、個々の第1の読取りヘッドルーム帯域幅閾値と個々の第1の書込みヘッドルーム帯域幅閾値とからなる、請求項8に記載の方法。
【請求項１５】
複数のマスターポートの中の少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成可能な相互接続ネットワークと、
前記相互接続ネットワークをクロック制御するためにバス相互接続クロック信号を生成するように構成されたコントローラとを備え、
前記コントローラが、
前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信し、
前記少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信し、
前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つのレイテンシ情報を受信し、
前記少なくとも1つのレイテンシ情報が個々のレイテンシ条件を満たすこと、および、
(a)前記少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、
(b)前記少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすことと
のうちの少なくとも1つに応答して、前記バス相互接続クロック信号の周波数をスケーリングするように構成される、バス相互接続。
【請求項１６】
前記コントローラが、前記少なくとも1つのレイテンシ情報が前記個々のレイテンシ条件を満たすことに応答して、付加的に前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングするように構成される、請求項15に記載のバス相互接続。
【請求項１７】
前記コントローラが、個々の少なくとも1つの最大レイテンシ閾値よりも小さいという前記個々の少なくとも1つのレイテンシ情報に応答して、付加的に前記バス相互接続クロック信号の前記周波数を減少させるように構成される、請求項16に記載のバス相互接続。
【請求項１８】
前記コントローラが、前記複数のマスターポートのすべてに対する前記少なくとも1つのレイテンシ情報が前記個々のレイテンシ条件を満たすことに応答して、付加的に前記バス相互接続クロック信号の前記周波数を減少させるようにさらに構成される、請求項16に記載のバス相互接続。
【請求項１９】
前記個々のレイテンシ条件が、最大読取りレイテンシ閾値と最大書込みレイテンシ閾値とからなる、請求項15に記載のバス相互接続。
【請求項２０】
バス相互接続のためのバス相互接続クロック信号をスケーリングする方法であって、
少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成される相互接続ネットワークに接続された複数のマスターポートの中の少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信するステップと、
前記少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信するステップと、
前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つのレイテンシ情報を受信するステップと、
前記少なくとも1つのレイテンシ情報が個々のレイテンシ条件を満たすこと、および、
(a)前記少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、
(b)前記少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすことと
のうちの少なくとも1つに応答して、前記相互接続ネットワークをクロック制御するバス相互接続クロック信号の周波数をスケーリングするステップとを含む、方法。
【請求項２１】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップは、前記少なくとも1つのレイテンシ情報が前記個々のレイテンシ条件を満たすことに応答して、前記バス相互接続クロック信号の前記周波数を減少させるステップを含む、請求項20に記載の方法。
【請求項２２】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップは、個々の少なくとも1つの最大レイテンシ閾値よりも小さいという前記少なくとも1つのレイテンシ情報に応答して、前記バス相互接続クロック信号の前記周波数を減少させるステップを含む、請求項21に記載の方法。
【請求項２３】
前記バス相互接続クロック信号の前記周波数をスケーリングするステップは、前記複数のマスターポートのすべてに対する前記少なくとも1つのレイテンシ情報が前記個々のレイテンシ条件を満たすことに応答して、前記バス相互接続クロック信号の前記周波数を減少させるステップを含む、請求項20に記載の方法。
【請求項２４】
前記個々のレイテンシ条件が、最大読取りレイテンシ閾値と最大書込みレイテンシ閾値とからなる、請求項20に記載の方法。
【請求項２５】
前記コントローラは、前記少なくとも1つのマスターポートを介して前記少なくとも1つのマスターポートに対して一意に構成された前記少なくとも1つの第1の帯域幅情報を受信するように構成される、請求項1に記載のバス相互接続。
【請求項２６】
前記コントローラは、前記少なくとも1つのスレーブポートを介して前記少なくとも1つのスレーブポートに対して一意に構成された前記少なくとも1つの第2の帯域幅情報を受信するように構成される、請求項1に記載のバス相互接続。
【請求項２７】
前記少なくとも1つのマスターポートをクロック制御するために少なくとも1つのマスターポートクロック信号を生成するように構成された少なくとも1つのマスターポートクロック発生器と、
前記少なくとも1つのスレーブポートをクロック制御するために少なくとも1つのスレーブポートクロック信号を生成するように構成された少なくとも1つのスレーブポートクロック発生器と
をさらに備える、請求項1に記載のバス相互接続。
【請求項２８】
前記コントローラが、前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と同期するように構成するようにさらに構成される、請求項27に記載のバス相互接続。
【請求項２９】
前記コントローラが、前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と立上がりエッジ同期するように構成するようにさらに構成される、請求項27に記載のバス相互接続。
【請求項３０】
前記コントローラが、前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と非同期となるように構成するようにさらに構成される、請求項27に記載のバス相互接続。
【請求項３１】
前記少なくとも1つのマスターポートクロック発生器および前記少なくとも1つのスレーブポートクロック発生器のうちの少なくとも1つが前記コントローラである、請求項27に記載のバス相互接続。
【請求項３２】
前記少なくとも1つのマスターポートクロック信号および前記少なくとも1つのスレーブポートクロック信号が、前記バス相互接続クロック信号から生成される、請求項27に記載のバス相互接続。
【請求項３３】
前記コントローラが、前記バス相互接続クロック信号の周波数がスケーリングされる前に再構成されるべき、前記少なくとも1つのマスターポートおよび前記少なくとも1つのスレーブポートのうちの1つまたは複数に対して、前記少なくとも1つのマスターポートクロック発生器および前記少なくとも1つのスレーブポートクロック発生器のうちの1つまたは複数を停止するようにさらに構成される、請求項27に記載のバス相互接続。
【請求項３４】
少なくとも1つの半導体ダイに組み込まれる、請求項27に記載のバス相互接続。
【請求項３５】
前記バス相互接続が一体化されるセットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、モバイル位置データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに備える、請求項27に記載のバス相互接続。
【請求項３６】
前記少なくとも1つのマスターポートをクロック制御するために少なくとも1つのマスターポートクロック信号を生成するステップと、
前記少なくとも1つのスレーブポートをクロック制御するために少なくとも1つのスレーブポートクロック信号を生成するステップと
をさらに含む、請求項8に記載の方法。
【請求項３７】
前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と同期するように構成するステップをさらに含む、請求項36に記載の方法。
【請求項３８】
前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と立上がりエッジ同期するように構成するステップをさらに含む、請求項36に記載の方法。
【請求項３９】
前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と非同期となるように構成するステップをさらに含む、請求項36に記載の方法。
【請求項４０】
前記バス相互接続クロック信号の前記周波数がスケーリングされる前に再構成されるべき、前記少なくとも1つのマスターポートおよび前記少なくとも1つのスレーブポートのうちの1つまたは複数に対して、少なくとも1つのマスターポートクロック発生器および少なくとも1つのスレーブポートクロック発生器のうちの1つまたは複数の生成を停止するステップをさらに含む、請求項36に記載の方法。
【請求項４１】
前記少なくとも1つのマスターポートをクロック制御するために少なくとも1つのマスターポートクロック信号を生成するように構成された少なくとも1つのマスターポートクロック発生器と、
前記少なくとも1つのスレーブポートをクロック制御するために少なくとも1つのスレーブポートクロック信号を生成するように構成された少なくとも1つのスレーブポートクロック発生器と
をさらに備える、請求項15に記載のバス相互接続。
【請求項４２】
前記コントローラが、前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と同期するように構成するようにさらに構成される、請求項41に記載のバス相互接続。
【請求項４３】
前記コントローラが、前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と立上がりエッジ同期するように構成するようにさらに構成される、請求項41に記載のバス相互接続。
【請求項４４】
前記コントローラが、前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と非同期となるように構成するようにさらに構成される、請求項41に記載のバス相互接続。
【請求項４５】
前記少なくとも1つのマスターポートクロック発生器および前記少なくとも1つのスレーブポートクロック発生器のうちの少なくとも1つが前記コントローラである、請求項41に記載のバス相互接続。
【請求項４６】
前記少なくとも1つのマスターポートクロック信号および前記少なくとも1つのスレーブポートクロック信号が、前記バス相互接続クロック信号から生成される、請求項41に記載のバス相互接続。
【請求項４７】
前記コントローラが、前記バス相互接続クロック信号の周波数がスケーリングされる前に再構成されるべき、前記少なくとも1つのマスターポートおよび前記少なくとも1つのスレーブポートのうちの1つまたは複数に対して、前記少なくとも1つのマスターポートクロック発生器および前記少なくとも1つのスレーブポートクロック発生器のうちの1つまたは複数を停止するようにさらに構成される、請求項41に記載のバス相互接続。
【請求項４８】
少なくとも1つの半導体ダイに組み込まれる、請求項41に記載のバス相互接続。
【請求項４９】
前記バス相互接続が一体化されるセットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、モバイル位置データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに備える、請求項41に記載のバス相互接続。
【請求項５０】
前記少なくとも1つのマスターポートをクロック制御するために少なくとも1つのマスターポートクロック信号を生成するステップと、
前記少なくとも1つのスレーブポートをクロック制御するために少なくとも1つのスレーブポートクロック信号を生成するステップと
をさらに含む、請求項20に記載の方法。
【請求項５１】
前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と同期するように構成するステップをさらに含む、請求項50に記載の方法。
【請求項５２】
前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と立上がりエッジ同期するように構成するステップをさらに含む、請求項50に記載の方法。
【請求項５３】
前記少なくとも1つのマスターポートクロック信号と前記少なくとも1つのスレーブポートクロック信号とのうちの1つまたは複数を、前記バス相互接続クロック信号と非同期となるように構成するステップをさらに含む、請求項50に記載の方法。
【請求項５４】
前記バス相互接続クロック信号の前記周波数をスケーリングする前に再構成されるべき、前記少なくとも1つのマスターポートおよび前記少なくとも1つのスレーブポートのうちの1つまたは複数に対して、少なくとも1つのマスターポートクロック発生器および少なくとも1つのスレーブポートクロック発生器のうちの1つまたは複数の生成を停止するステップをさらに含む、請求項50に記載の方法。
【請求項５５】
(a)少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報と、個々の少なくとも1つの第1のヘッドルーム帯域幅閾値との比較、および(b)少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報と、個々の少なくとも1つの第2のヘッドルーム帯域幅閾値との比較のうちの少なくとも1つの比較に基づいて、相互接続ネットワークをクロック制御するように構成された、バス相互接続クロック信号の周波数をスケーリングすることを、相互接続ネットワークを備えるバス相互接続を介して複数のマスターポートの中の少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するようにプロセッサに引き起こさせるコンピュータ実行可能命令を記録する、非一時的コンピュータ可読記録媒体。
【請求項５６】
コンピュータ実行可能命令が、さらに、前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすこととに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを、前記プロセッサに引き起こさせる、請求項55に記載の非一時的コンピュータ可読記録媒体。
【請求項５７】
コンピュータ実行可能命令がさらに、前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値よりも小さいという前記少なくとも1つの第1の帯域幅情報と、前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値よりも小さいという前記少なくとも1つの第2の帯域幅情報に応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを前記プロセッサに引き起こさせる、請求項56に記載の非一時的コンピュータ可読記録媒体。
【請求項５８】
コンピュータ実行可能命令はさらに、前記複数のマスターポートのすべてに対する前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、前記少なくとも1つのスレーブポートのすべてに対する前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすこととに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを前記プロセッサに引き起こさせる、請求項55に記載の非一時的コンピュータ可読記録媒体。
【請求項５９】
コンピュータ実行可能命令はさらに、前記少なくとも1つの第1の帯域幅情報が前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たさないことか、または前記少なくとも1つの第2の帯域幅情報が前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たさないことに応答して、前記バス相互接続クロック信号の前記周波数を増加させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを前記プロセッサに引き起こさせる、請求項55に記載の非一時的コンピュータ可読記録媒体。
【請求項６０】
コンピュータ実行可能命令は、前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値よりも大きいという前記少なくとも1つの第1の帯域幅情報か、または前記個々の少なくとも1つの第2のヘッドルーム帯域幅閾値よりも大きいという前記少なくとも1つの第2の帯域幅情報に応答して、前記バス相互接続クロック信号の前記周波数を増加させることにより、前記バス相互接続クロック信号の前記周波数を増加させることを前記プロセッサに引き起こさせる、請求項59に記載の非一時的コンピュータ可読記録媒体。
【請求項６１】
前記個々の少なくとも1つの第1のヘッドルーム帯域幅閾値が、個々の第1の読取りヘッドルーム帯域幅閾値と個々の第1の書込みヘッドルーム帯域幅閾値とからなる、請求項55に記載の非一時的コンピュータ可読記録媒体。
【請求項６２】
少なくとも1つのレイテンシ情報が個々のレイテンシ条件を満たすことと、(a)少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報と、個々の少なくとも1つの第1の帯域幅条件との比較、および(b)少なくとも1つのスレーブポートを介して通信されるトラフィックに関する、少なくとも1つの第2の帯域幅情報と、個々の少なくとも1つの第2の帯域幅条件との比較のうちの少なくとも1つの比較に応答して、相互接続ネットワークをクロック制御するように構成された、バス相互接続クロック信号の周波数をスケーリングすることを、相互接続ネットワークを備えるバス相互接続を介して複数のマスターポートの中の少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するようにプロセッサに引き起こさせるコンピュータ実行可能命令を記録する、非一時的コンピュータ可読記録媒体。
【請求項６３】
コンピュータ実行可能命令が、さらに、前記少なくとも1つのレイテンシ情報が前記個々のレイテンシ条件を満たすことに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを、前記プロセッサに引き起こさせる、請求項62に記載の非一時的コンピュータ可読記録媒体。
【請求項６４】
コンピュータ実行可能命令が、さらに、個々の前記少なくとも1つ最大レイテンシ閾値よりも小さいという前記少なくとも1つのレイテンシ情報に応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを、前記プロセッサに引き起こさせる、請求項63に記載の非一時的コンピュータ可読記録媒体。
【請求項６５】
コンピュータ実行可能命令が、さらに、前記複数のマスターポートのすべてに対する前記少なくとも1つのレイテンシ情報が前記個々のレイテンシ条件を満たすことに応答して、前記バス相互接続クロック信号の前記周波数を減少させることにより、前記バス相互接続クロック信号の前記周波数をスケーリングすることを、前記プロセッサに引き起こさせる、請求項62に記載の非一時的コンピュータ可読記録媒体。
【請求項６６】
前記個々のレイテンシ条件が、最大読取りレイテンシ閾値と最大書込みレイテンシ閾値とからなる、請求項62に記載の非一時的コンピュータ可読記録媒体。
【請求項６７】
少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成される相互接続ネットワークに接続された複数のマスターポートの中の前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信する手段と、
前記少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信する手段と、
(a)前記少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1のヘッドルーム帯域幅閾値を満たすことと、
(b)前記少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2のヘッドルーム帯域幅閾値を満たすことと
のうちの少なくとも1つに応答して、前記相互接続ネットワークをクロック制御するバス相互接続クロック信号の周波数をスケーリングする手段とを備える、バス相互接続。
【請求項６８】
少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成される相互接続ネットワークに接続された複数のマスターポートの中の前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信する手段と、
前記少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信する手段と、
前記少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つのレイテンシ情報を受信する手段と、
前記少なくとも1つのレイテンシ情報が個々のレイテンシ条件を満たすこと、および
(a)前記少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、
(b)前記少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすことと
のうちの少なくとも1つに応答して、前記相互接続ネットワークをクロック制御するバス相互接続クロック信号の周波数をスケーリングする手段とを備える、バス相互接続。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術は、多様な電子的構成要素を一緒に通信可能にインターフェースするための電子的バス相互接続に関する。一例として、そうしたバス相互接続は、システムオンチップ(SOC)設計において提供され得る。
【背景技術】
【０００２】
モバイルフォン、携帯情報端末(PDA)など、ポータブル電子デバイスは、通常、特定用途向け集積回路(ASIC)設計を使用して製造される。ハイレベルのシリコン集積の達成における発展は、複雑なASICおよびフィールドプログラマブルゲートアレイ(FPGA)設計の創出を可能にした。これらのASICおよびFPGAは、システムオンチップ(SOC)を可能にするために、シングルチップで提供され得る。SOCは、たとえばプロセッサ、マルチプライヤ、キャッシュ、および他の電子的構成要素など、単一の半導体チップ上で複数の機能を果たすサブシステムを提供する。SOCは、シングルチップで複数の特徴および用途を提供することができる複数のサブシステムの統合のために、特にポータブル電子デバイスに有用である。さらに、SOCは、通常ならばマルチチップを使用して提供されていたチップにシングルチップを使用することによって、より小さいポータブル電子デバイスを可能にする。
【０００３】
一例としてSOCであってよいチップ上に設けられた回路内で、複数の多様な構成要素またはサブシステムを一緒に通信可能にインターフェースするために、バス相互接続とも呼ばれる相互接続通信バスが提供される。バス相互接続は、例としてレジスタ、キュー(queue)、および様々なサブシステム間の通信を管理するための他の回路を含み得る、クロック制御される回路(clocked circuitry)を含む回路を使用して提供される。バス相互接続内の回路は、所望のスループットを与えるために、所望のバスクロック周波数で動作するマスタークロック信号から生成される1つまたは複数のクロック信号を用いてクロック制御される。低減された電力消費が望ましいアプリケーションでは、よく知られている、fCV2に等しい電力消費の式に従って、バスクロック周波数が引き下げられてよく、ここで「f」は周波数、「C」はキャパシタンス、「V」は電圧である。しかしながら、バスクロック周波数を引き下げることで、バス相互接続の性能が低下する。バスクロック周波数を引き下げることで、バス相互接続に結合されているサブシステムに対するレイテンシの要件または条件を超えてバスのレイテンシが増加する場合、サブシステムの性能は、劣化するかまたは全く機能しなくなる。劣化または機能不全の危険を冒すのではなく、バスクロック周波数は、レイテンシを低減し、性能余裕を与えるために、より高い周波数に設定されることがある。しかしながら、より高いバスクロック周波数をバス相互接続に与えることで、より多くの電力が消費される。
【発明の概要】
【課題を解決するための手段】
【０００４】
詳細な説明において開示する実施形態は、バス相互接続ならびに関係するデバイス、システム、方法、およびコンピュータ可読媒体に対するバスクロック周波数スケーリングを含む。バス相互接続は、バス相互接続の複数のマスターポートの中の1マスターポートに各々が接続される、1つまたは複数のマスターデバイスが、バス相互接続の1スレーブポートに各々が接続される複数のスレーブデバイスのいずれかに通信可能に接続されることを可能にするように構成可能である。ある周波数で動作しているマスターデバイスが異なる周波数で動作しているスレーブデバイスと通信する相互接続を可能にするために、マスターポートおよびスレーブポートは、異なる周波数で動作するように構成可能であってよい。バス相互接続クロック信号が、相互接続ネットワークをクロック制御するために与えられる。バス相互接続によって消費される電力を温存するために、バス相互接続クロック信号の周波数は、個々の帯域幅条件および/または個々のレイテンシ条件に基づいてスケーリング(たとえば、増加または減少)されてよい。このようにして、バス相互接続による電力消費が、バス相互接続の所望の性能条件の要件を維持しながら、最適化され得る。
【０００５】
この点について、一実施形態では、バス相互接続が提供される。バス相互接続は、複数のマスターポートの中の1つまたは複数のマスターポートを1つまたは複数のスレーブポートに接続するように構成可能な相互接続ネットワークを備える。バス相互接続はまた、相互接続ネットワークをクロック制御するためにバス相互接続クロック信号を生成するように構成されたコントローラを備える。コントローラは、少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信するように構成される。コントローラはまた、少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信するように構成される。コントローラはまた、(a)少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、(b)少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすこととのうちの少なくとも1つに応答して、バス相互接続クロック信号の周波数をスケーリングする(たとえば、増加または減少させる)ように構成される。
【０００６】
コントローラは、少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすこととに応答して、バス相互接続クロック信号の周波数を減少させるように構成され得る。コントローラはまた、少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことか、または少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすことに応答して、バス相互接続クロック信号の周波数を増加させるように構成され得る。
【０００７】
別の実施形態では、バス相互接続のためのバス相互接続クロック信号をスケーリングする方法が提供される。方法は、少なくとも1つのマスターポートを少なくとも1つのスレーブポートに接続するように構成される相互接続ネットワークに接続された複数のマスターポートの中の少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報を受信するステップを含む。方法はまた、少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報を受信するステップを含む。方法はまた、(a)少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、(b)少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすこととのうちの少なくとも1つに応答して、相互接続ネットワークをクロック制御するバス相互接続クロック信号の周波数をスケーリングするステップを含む。
【０００８】
別の実施形態では、コンピュータ可読媒体が提供される。コントローラによって生成され、(a)少なくとも1つのマスターポートを介して通信されるトラフィックに関する少なくとも1つの第1の帯域幅情報が個々の少なくとも1つの第1の帯域幅条件を満たすことと、(b)少なくとも1つのスレーブポートを介して通信されるトラフィックに関する少なくとも1つの第2の帯域幅情報が個々の少なくとも1つの第2の帯域幅条件を満たすこととのうちの少なくとも1つに応答して、相互接続ネットワークをクロック制御するように構成された、バス相互接続クロック信号の周波数をスケーリングする(たとえば、増加または減少させる)ことを、複数のマスターポートの中の1マスターポートをスレーブポートに接続するように構成可能な相互接続ネットワークを備えるバス相互接続に引き起こさせるためのコンピュータ実行可能命令を、コンピュータ可読媒体が、自体の中に記憶している。
【０００９】
他の実施形態では、コントローラはまた、マスターポートに対するレイテンシがマスターポートに対する個々のレイテンシ条件を満たす場合にのみ、付加的にバス相互接続クロック信号の周波数をスケーリングする(たとえば、増加または減少させる)ように構成され得る。たとえば、マスターポートに対するレイテンシがマスターポートに対する最大レイテンシ閾値未満であり、かつマスターポートおよびスレーブポートの帯域幅がヘッドルーム帯域幅閾値未満である場合、コントローラは、バス相互接続クロック信号の周波数を減少させるように構成され得る。別の例として、マスターポートに対するレイテンシがマスターポートに対する最大レイテンシ閾値よりも大きいか、またはマスターポートまたはスレーブポートの帯域幅がヘッドルーム帯域幅閾値よりも大きい場合、コントローラは、バス相互接続クロック信号の周波数を増加させるように構成され得る。
【００１０】
さらに、本明細書で開示する実施形態は、可能な場合、バス相互接続におけるレイテンシを低減または回避するために、バス相互接続クロック信号の変化に応答して、同期してかつ/または立上がりエッジに同期して動作するように、マスターポートおよびスレーブポートが構成される能力を提供する。マスターポートインターフェースおよびスレーブポートインターフェースはまた、バス相互接続クロック信号に対して非同期に動作するように構成され得る。
【図面の簡単な説明】
【００１１】
【図１】周波数をスケーリングされるバス相互接続クロック信号を使用してクロック制御される相互接続ネットワークを介して、複数のマスターポートを複数のスレーブポートのいずれかと接続するように構成された相互接続ネットワークを備える、例示的なバス相互接続システムのブロック図である。
【図２】マスターポートがスレーブポートに接続される間の図1のバス相互接続においてセットアップされた通信経路における例示的な回路のサブシステムのブロック図である。
【図３Ａ】マスターポートおよびスレーブポートのために構成された個々の帯域幅条件および/またはマスターポートのために構成された個々のレイテンシ条件に基づいて、図1のバス相互接続に対するバス相互接続クロック信号の周波数スケーリングを提供する例示的なフローチャートを示す図である。
【図３Ｂ】マスターポートおよびスレーブポートのために構成された個々の帯域幅条件および/またはマスターポートのために構成された個々のレイテンシ条件に基づいて、図1のバス相互接続に対するバス相互接続クロック信号の周波数スケーリングを提供する例示的なフローチャートを示す図である。
【図４】図1のバス相互接続に設けられたコントローラに含まれる例示的な構成要素のブロック図である。
【図５】バス相互接続クロック信号と同期して、立上がりエッジと同期して、および非同期で、動作するポートクロック信号を示す例示的な図である。
【図６】バス相互接続クロック信号がスケーリングされるときの、バス相互接続クロック信号に対する同期動作、立上がりエッジ同期動作、および非同期動作のポートクロック信号の例示的な構成を示すフローチャートである。
【図７】図1のバス相互接続における、ポートクロック信号および/またはバス相互接続クロック信号の周波数をスケーリングし得る例示的なクロック変更回路のブロック図である。
【図８】ポートクロック信号および/またはバス相互接続クロック信号をスケーリングする図7のクロック変更回路の例示的なタイミング図である。
【図９】ポートクロック信号および/またはバス相互接続クロック信号を停止する図7のクロック変更回路の例示的なタイミング図である。
【図１０】本明細書で説明する実施形態によるバス相互接続を使用する例示的な中央処理装置(CPU)回路および関係するシステムのブロック図である。
【発明を実施するための形態】
【００１２】
ここで図面を参照して、本開示のいくつかの例示的な実施形態を説明する。「例示的な」という言葉は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１３】
詳細な説明において開示する実施形態は、バス相互接続ならびに関係するデバイス、システム、および方法のためのバスクロック周波数スケーリングと、コンピュータ可読媒体とを含む。バス相互接続は、バス相互接続の複数のマスターポートの中のあるマスターポートに各々が接続される、1つまたは複数のマスターデバイスが、バス相互接続のスレーブポートに各々が接続される複数のスレーブデバイスのいずれかに通信可能に接続されることを可能にするように構成可能である。ある周波数で動作しているマスターデバイスが異なる周波数で動作しているスレーブデバイスと通信するために相互接続することを可能にするために、マスターポートおよびスレーブポートは、異なる周波数で動作するように構成可能であってよい。バス相互接続クロック信号が、相互接続ネットワークをクロック制御するために与えられる。バス相互接続によって消費される電力を温存するために、バス相互接続クロック信号の周波数は、個々の帯域幅条件および/または個々のレイテンシ条件に基づいてスケーリング(たとえば、増加または減少)されてよい。このようにして、バス相互接続による電力消費が、バス相互接続の所望の性能条件の要件を維持しながら、最適化され得る。
【００１４】
この点について、一実施形態では、図1は、例示的なバス相互接続システム10のブロック図である。バス相互接続システム10は、バス相互接続12からなる。例として、バス相互接続12は、ソフトウェア命令を実行することができるフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、コントローラ、マイクロコントローラもしくはマイクロプロセッサ、またはそれらの任意の組合せによって提供され得る。以下でより詳細に説明するように、バス相互接続12は、バス相互接続12によって与えられるマスターポート16(0〜M)に各々が接続された1つまたは複数のマスターデバイス14(0〜M)が、バス相互接続12によって与えられるスレーブポート20(0〜N)に各々が接続された複数のスレーブデバイス18(0〜N)のうちの1つまたは複数に通信可能に接続されることを可能にするように構成可能である。バス相互接続12は、半導体ダイ21内に設けられてよく、所望される場合、システムオンチップ(SOC)集積回路設計において設けられてよい。マスターデバイス14(0〜M)およびスレーブデバイス18(0〜N)は、任意のタイプの電子デバイスまたはサブシステムであってよく、電子デバイスまたはサブシステムの例は、限定はしないが、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、直接メモリアクセス(DMA)コントローラ、メモリコントローラ、グラフィックスプロセッサなどを含む。
【００１５】
通信は、マスターポート16(0〜M)に結合されたマスターポートバス22(0〜M)を介して、マスターデバイス14(0〜M)とバス相互接続12との間でサポートされる。同様に、通信は、スレーブポート20(0〜N)に結合されたスレーブポートバス24(0〜N)を介して、スレーブデバイス18(0〜N)とバス相互接続12との間でサポートされる。個別のマスターポートバス22(0〜M)とスレーブポートバス24(0〜N)とを設けることで、バス相互接続12が、異なるクロック周波数で動作するマスターデバイス14(0〜M)とスレーブデバイス18(0〜N)とを相互接続することが可能になる。マスターデバイス14(0〜M)と特定のスレーブデバイス18(0〜N)との間の接続を構成するために、バス相互接続12は、相互接続ネットワーク26を含む。図2に示すように、相互接続ネットワーク26は、例として、所望のマスターデバイス14(0〜M)と所望のスレーブデバイス18(0〜N)とを結合するように構成可能なゲート、ラッチ、およびレジスタなどのクロック制御された回路を含む。たとえば、図2に示すように、バス相互接続12内に設けられ、1つのマスターデバイス14(0〜M)と1つのスレーブデバイス18(0〜N)との間の相互接続ネットワーク26内に通信経路を設けるように構成可能な、例示的な構成要素を示す。
【００１６】
図2を参照すると、マスターポート16(0〜M)は各々、マスターデバイス14(0〜M)から通信を受信するためにマスターポートバス22(0〜M)に接続されたマスターポートインターフェース28(0〜M)を含む。相互接続ネットワーク26は、マスターポートバス22(0〜M)とスレーブポートバス24(0〜N)の両方と異なる周波数で動作し得るので、マスターポートキュー30(0〜M)とスレーブポートキュー34(0〜N)との間の通信をアービトレーションするためにアービタ32に提供されるバストランザクションまたはバスコマンドを記憶するために、マスターポートキュー30(0〜M)が設けられてよい。アービタ32は、スレーブポート20(0〜N)へのバストランザクションをアービトレーションするためにスレーブポート20(0〜N)に関連付けられた個別のアドレス指定アービタ36(0〜N)と、スレーブポート20(0〜N)から来るデータの読取りおよび書込み完了応答(read data and write completion responses)をアービトレーションするためにマスターポート16(0〜M)に関連付けられたデータ(読取り/書込み)アービタ38(0〜M)とを含み得る。スレーブポートキュー34(0〜N)は、スレーブポートバス24(0〜N)に接続されたスレーブポートインターフェース40(0〜N)への通信を提供する。図2は、1つのマスターデバイス14(0〜M)に結合された1つのマスターポート16(0〜M)と、1つのスレーブデバイス18(0〜N)に結合された1つのスレーブポート20(0〜N)との間の通信経路を示すが、バス相互接続12に設けられたアービタ36(0〜N)、38(0〜M)は、マスターポート16(0〜M)のいずれかとスレーブポート20(0〜N)のいずれかとの間の通信経路をアービトレーションするように構成され得ることに留意されたい。
【００１７】
図1に戻って参照すると、相互接続ネットワーク26内の通信経路は、バス相互接続12内で設けられたアービタ36(0〜N)、38(0〜M)によって、所望のマスターデバイス14(0〜M)とスレーブデバイス18(0〜N)との間で相互接続を構成するように構成可能である。相互接続ネットワーク26内でクロック制御される回路をクロック制御するために、バス相互接続クロック信号(bus_clk)46を生成するように構成されたバスクロック変更回路44を含む、クロックコントローラであってよいコントローラ42が提供される。コントローラ42は、コマンドをバスクロック変更回路44に発することによって、バス相互接続クロック信号46の周波数を制御する。バスクロック変更回路44は、クロック発生器50によって生成されるクロックソース信号(clk_src)48から、バス相互接続クロック信号46を生成する。クロック発生器50は、バス相互接続12の外部に設けられているように図1に示すが、必要な場合は代わりに、クロック発生器50は、バス相互接続12に含まれてもよい。クロック発生器50は、ソース周波数におけるクロックソース信号48を生成し、クロックソース信号48は次いで、バスクロック変更回路44に与えられ、またはバスクロック変更回路によって分割されて、相互接続ネットワーク26をクロック制御するためのバス相互接続クロック信号46をもたらす。コントローラ42は、バス相互接続12に含まれているように示されるが、必要な場合は代わりに、コントローラ42は、バス相互接続12の外部に設けられてもよいことに留意されたい。
【００１８】
バス相互接続クロック信号46の周波数を引き下げることで、fCV2に従ってバス相互接続12の電力消費が低減され得、ここで「f」は周波数、「C」はキャパシタンス、「V」は電圧である。キャパシタンス「C」は、バス相互接続12のクロックバッファリングツリー(clock buffering tree)と、クロックバッファリングツリーを駆動する回路とに基づく。バス相互接続クロック信号46の周波数を引き下げることで、バス相互接続12によって実行されるバストランザクションのレイテンシが増加し、それによりバス相互接続12の性能が低下する可能性がある。いくつかの例では、バス相互接続クロック信号46の周波数を引き下げることで、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅とレイテンシとの(たとえば、規定された条件、たとえば閾値を超えることによる)許容できない劣化が引き起こされることはない。またある時には、バス相互接続クロック信号46の周波数を引き下げることで、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅とレイテンシとの(たとえば、規定された条件、たとえば閾値を超えることによる)許容できない劣化が引き起こされる。マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成された個々の帯域幅条件と、マスターポート16(0〜M)のために構成された個々のレイテンシ条件とを維持するのに十分な周波数よりも高い周波数で、バス相互接続クロック信号46の周波数を維持し、そのことで、バス相互接続12において、追加の電力を不必要に消費する性能余裕が与えられるのではなく、本明細書で開示する実施形態は、バス相互接続クロック信号46の周波数をスケーリングする。
【００１９】
個々の帯域幅条件によって、バス相互接続クロック信号46のスケーリングを判断するために使用される帯域幅条件が、マスターポート16(0〜M)およびスレーブポート20(0〜N)の各々のために構成され得ることが意図される。非限定的な例として、これらの帯域幅条件は、マスターポート16(0〜M)の各々およびスレーブポート20(0〜N)の各々に一意に構成されてよく、マスターポート16(0〜M)のすべてに対して同一に構成されてよく、スレーブポート20(0〜N)のすべてに対して同一に構成されてよく、もしくはマスターポート16(0〜M)およびスレーブポート20(0〜N)のすべてに同一に構成されてよく、またはそれらの任意の組合せであってよい。同様に、個々のレイテンシ条件によって、バス相互接続クロック信号46のスケーリングを判断するために使用されるレイテンシ条件が、マスターポート16(0〜M)の各々のために構成され得ることが意図される。非限定的な例として、レイテンシ条件は、マスターポート16(0〜M)の各々に対して一意に構成されてよく、またはマスターポート16(0〜M)のすべてに対して同一に構成されてよい。
【００２０】
たとえば、バス相互接続12の性能が、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅のニーズを超えているものと判断される場合、バス相互接続クロック信号46の周波数は、性能に影響を与えることなく電力を温存するように引き下げられ得る。バス相互接続クロック信号46の周波数が、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅を、所望の性能より低く引き下げた場合、バス相互接続クロック信号46の周波数は、バス相互接続12の性能を向上させるために引き上げられてよい。
【００２１】
さらに、マスターデバイス14(0〜M)は、バス相互接続12を介するトランザクションを実行するために最大のレイテンシを有する可能性がある。最大レイテンシは、トランザクションのブロードキャストと応答の受信との間の最大許容レイテンシである。たとえば、読取りレイテンシは、読取り要求がマスターデバイス14(0〜M)からバス相互接続12を介してスレーブデバイス18(0〜N)に通信された時点と、読取り応答がマスターデバイス14(0〜M)において受信された時点との間の時間である。書込みレイテンシは、書込み要求がマスターデバイス14(0〜M)からバス相互接続12を介してスレーブデバイス18(0〜N)に通信された時点と、データがスレーブデバイス18(0〜N)に書き込まれ、書込み応答がマスターデバイス14(0〜M)において受信された時点との間の時間である。したがって、いくつかの実施形態では、バス相互接続12の性能がマスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅のニーズを超えることに加えて、バス相互接続12の性能が、マスターポート16(0〜M)のために構成された最大レイテンシを凌駕する(すなわち、レイテンシは最大閾値条件よりも小さい)ものと付加的に判断される場合、バス相互接続クロック信号46の周波数は、電力を温存するために引き下げられてよい。バス相互接続クロック信号46の周波数が、マスターポート16(0〜M)のために構成された個々の最大レイテンシ条件を満たさないことを、バス相互接続12に引き起こさせる場合、バス相互接続クロック信号46の周波数は、バス相互接続12の性能を向上させ、それによりアクセスレイテンシを低減させるために引き上げられてよい。
【００２２】
この点について、図1および図2に示すように、マスターポートトラフィックモニタ回路60(0〜M)およびスレーブポートトラフィックモニタ回路62(0〜N)が、それぞれ、マスターポート16(0〜M)およびスレーブポート20(0〜N)の各々に設けられる。マスターポートトラフィックモニタ回路60(0〜M)およびスレーブポートトラフィックモニタ回路62(0〜N)は、マスターポートバス22(0〜M)およびスレーブポートバス24(0〜N)のそれぞれにおける通信をモニタすることによって、マスターポート16(0〜M)およびスレーブポート20(0〜N)のそれぞれのトラフィックまたは帯域幅をモニタするように構成される。マスターポートトラフィックモニタ回路60(0〜M)はまた、マスターポート16(0〜M)のレイテンシをモニタするように構成される。この帯域幅情報は、バス相互接続クロック信号46の周波数のスケーリング(たとえば、増加または減少)に使用するために、コントローラ42に与えられる。
【００２３】
以下で同様により詳細に論じるように、バス相互接続クロック信号46の周波数がスケーリングされてよい。たとえば、マスターポートバス22(0〜M)およびスレーブポートバス24(0〜N)の周波数が変更され得る場合、バス相互接続クロック信号46の周波数は、マスターポート16(0〜M)およびスレーブポート20(0〜N)の個々の帯域幅のニーズならびにマスターポート16(0〜M)のために構成された個々のレイテンシ条件を維持しながら、電力を温存するために引き下げられてよい。図1および図2に示すように、この点について、この実施形態におけるコントローラ42はまた、クロックソース信号48をクロック変更回路52(0〜M)およびクロック変更回路54(0〜N)に与える。コントローラ42は、マスターポートバス22(0〜M)およびスレーブポートバス24(0〜N)の各々の周波数を変更するために、クロック変更回路52(0〜M)、54(0〜N)の各々にコマンドを発することができる。図2に示すように、クロック変更回路52(0〜M)およびクロック変更回路54(0〜N)は、マスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)のそれぞれをマスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)のそれぞれに与えるクロック発生器である。
【００２４】
図3Aおよび図3Bは、マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成された個々の帯域幅条件ならびにマスターポート16(0〜M)のために構成された個々のレイテンシ条件に基づいて、図1のバス相互接続12に対するバス相互接続クロック信号46の周波数スケーリングを提供する例示的なフローチャートを示す。図3Aおよび図3Bのフローチャートは、この実施形態におけるコントローラ42によって実行される。この例では、周波数スケーリングループに入る前に、コントローラ42は、ヘッドルーム帯域幅レジスタ、ならびにマスターポート16(0〜M)およびスレーブポート20(0〜N)に対する最大のレイテンシおよび間隔カウンタを構成することによって、個々の帯域幅条件およびレイテンシ条件を構成する(図3Aのブロック70)。コントローラ42はまた、バス相互接続12に対する下限周波数(frequency floor)および上限周波数(frequency ceiling)を構成する(図3Aのブロック70)。ヘッドルーム帯域幅レジスタは、帯域幅条件としてマスターポート16(0〜M)およびスレーブポート20(0〜N)上で利用可能な状態で保持される必要がある、余分な帯域幅の量を提供する。余分な帯域幅は、帯域幅の増加を検出し、それに応じて周波数を調整するためのヘッドルームが存在するように構成されてよい。
【００２５】
たとえば、任意の所与の時間において、マスターポートバス22(0〜M)のうちの1つまたは複数またはスレーブポートバス24(0〜N)のうちの1つまたは複数に対する最大帯域幅閾値の90パーセント(90%)を超える帯域幅を、読取りまたは書込みのデータトラフィックが消費すべきではないという帯域幅条件を、ヘッドルーム帯域幅レジスタが規定することができる。マスターポート16(0〜M)の各々に対する個々の最大レイテンシ条件は、マスターポート16(0〜M)とスレーブポート20(0〜N)との間のデータ通信に対してバス相互接続12によって満たされなければならない最大の閾値レイテンシ条件であってよい。マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅、ならびにマスターポート16(0〜M)のレイテンシをモニタするために、間隔カウンタが、トラフィックモニタリング回路60(0〜M)、62(0〜N)によって使用される。下限周波数および上限周波数は、マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成された個々の帯域幅条件ならびにマスターポート16(0〜M)のために構成された個々のレイテンシ条件にかかわらず守られなければならない、バス相互接続12が動作するために指定された、バス相互接続クロック信号46の最小および最大の周波数をそれぞれ規定する。
【００２６】
コントローラ42は、トラフィックモニタリング回路60(0〜M)、62(0〜N)を使用してマスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅をモニタする(図3Aのブロック72)。コントローラ42は、マスターポート16(0〜M)およびスレーブポート20(0〜N)を介して通信されるトラフィックに関する帯域幅情報を受信する。以下で論じるように、帯域幅が、マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成された個々の帯域幅条件を満たさない場合、バス相互接続クロック信号46の周波数がスケーリングされてよい。たとえば、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅が、マスターポート16(0〜M)およびスレーブポート20(0〜N)のすべてのために構成されたヘッドルーム帯域幅閾値よりも小さい場合(図3Aのブロック74)、バス相互接続クロック信号46の周波数を引き下げることが可能である。帯域幅が、マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成されたヘッドルーム帯域幅に等しいものとコントローラ42が判断する場合(図3Aのブロック74)、コントローラ42は、マスターポート16(0〜M)および/またはスレーブポート20(0〜N)のモニタリングを継続するために戻ることができる(図3Aのブロック72)。ブロック74で、帯域幅のいずれかが、マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成されたヘッドルーム帯域幅よりも大きいものとコントローラ42が判断する場合、コントローラ42は、図3Aのブロック86に関して以下で論じるように、バス相互接続クロック信号46の周波数を増加させることができる。図3Aのブロック74で、帯域幅が、マスターポート16(0〜M)およびスレーブポート20(0〜N)のために構成されたヘッドルーム帯域幅よりも小さいものとコントローラ42が判断する場合、コントローラ42は、マスターポート16(0〜M)のレイテンシが、マスターポート16(0〜M)のために構成された最大レイテンシ閾値など、個々のレイテンシ条件を満たすかどうかを判断する(図3Aのブロック76)。満たす場合、コントローラ42は、新しい、より低い周波数がバス相互接続12のために構成された下限周波数より上であるならば、バス相互接続クロック信号46の周波数を引き下げることができる。この点について、コントローラ42は、バス相互接続クロック信号46の新しい、より低い周波数が、バス相互接続12のために構成された下限周波数より上であるかどうかを判断する(図3Bのブロック78)。満たさない場合、コントローラ42は、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅、ならびにマスターポート16(0〜M)のレイテンシをモニタリングするために戻る(図3Aのブロック72、74、76)。
【００２７】
バス相互接続クロック信号46の新しい、より低い周波数が、バス相互接続12のために構成された下限周波数より上である場合(図3Bのブロック78)、コントローラ42は、構成された性能レベルを超えてマスターポート16(0〜M)およびスレーブポート20(0〜N)の性能に影響を与えることなく、電力消費を減少させるために、バス相互接続クロック信号46の周波数を引き下げることができる。本実施形態では、コントローラ42は、バス相互接続クロック信号46の周波数のスケーリングによって同期モードの再構成を必要とする、図2における必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)だけを抑制する(図3Bのブロック80)。以下で論じる図6は、バス相互接続クロック信号46の周波数のスケーリングによる、同期モードの再構成の一例を提供する。図3Bに戻って参照すると、これらのマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)は、バス相互接続クロック信号46の周波数が引き下げられ、ポートクロック信号56(0〜M)、58(0〜N)が利用可能になるまで、バストランザクションを処理しない(図3Bのブロック80)。必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)のみを抑制することで、バス相互接続クロック信号46の周波数を変更している間に、他のマスターポート16(0〜M)およびスレーブポート20(0〜N)が、バストランザクションを実行することを継続することが可能になる。次いで、コントローラ42は、バス相互接続クロック信号46の周波数が下げられる前に(図3Bのブロック82)、可能な場合、再同期の変更に先立って、必要なマスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)を停止する(図3Bのブロック81)。バス相互接続クロック信号46の周波数が減少された後、マスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)は再起動し(ブロック83)、マスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)は抑制解除される(ブロック84)。必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)は抑制されているので必要ではないが、マスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)を停止することで、再同期のための再構成の間、電力消費が低減され得る。バス相互接続クロック信号46の周波数は、コントローラ42で構成される増分で引き下げられ得る。
【００２８】
バス相互接続12において与えられる構成に従う、ブロック74または76における帯域幅条件またはレイテンシ条件が、守られない場合、バス相互接続クロック信号46の周波数は、図3Aに示すように増加される必要がある。周波数増加後の、バス相互接続クロック信号46の新しい周波数が、バス相互接続12のために構成された上限周波数より上でない場合、(図3Aのブロック86)、コントローラ42は、バス相互接続クロック信号46の周波数を増加させ得る。この例では、コントローラ42は、実行されるバス相互接続クロック信号46の周波数の増加によって再構成を必要とする、図2における必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)を抑制する(図3Aのブロック88)。この点について、これらのマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)は、バス相互接続クロック信号46の周波数が増加され、ポートクロック信号56(0〜M)、58(0〜N)が利用可能になるまで、バストランザクションを処理しない。やはり、必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)のみを抑制することで、バス相互接続クロック信号46の周波数を変更している間に、他のマスターポート16(0〜M)およびスレーブポート20(0〜N)が、バストランザクションを実行することを継続することが可能になる。次いで、コントローラ42は、バス相互接続クロック信号46の周波数が増加される前に(図3Bのブロック90)、可能な場合、再同期の変更を可能にするために、必要なマスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)を停止する(図3Bのブロック89)。
【００２９】
コントローラ42は、バス相互接続クロック信号46の周波数を新しい、より高い周波数に(逐次にまたは並列に)増加させ(図3Aのブロック90)、マスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)が再起動される(図3Aのブロック91)。コントローラ42は、通信が、新しい、より高い周波数におけるバス相互接続クロック信号46で開始することを可能にするために、図3Aのブロック88において抑制された任意のマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)を抑制解除する(図3Aのブロック92)。次いで、コントローラ42は、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅、ならびにマスターポート16(0〜M)のレイテンシをモニタするために戻る(図3Aのブロック72、74、76)。
【００３０】
図4は、バス相互接続クロック信号46の周波数のスケーリングを判断するために、図1のバス相互接続12内に設けられるコントローラ42に含まれる例示的な構成要素のブロック図である。この点について、バス相互接続クロック信号46のスケーリングを判断するためにマスターポート16(0〜M)およびスレーブポート20(0〜N)のトランザクションの帯域幅ならびにマスターポート16(0〜M)のレイテンシに関する情報を受信する、有限状態機械(FSM)93が設けられる。FSM93は、ハードウェア、ソフトウェア、または両方の組合せで実装することができる。
【００３１】
引き続き図4を参照すると、バス相互接続クロック信号46をスケーリングするために、マスターポート16(0〜M)に対して満たされるべきレイテンシ条件を構成するために、最大読取りレイテンシレジスタ94および最大書込みレイテンシレジスタ96が設けられる。たとえば、レイテンシ条件は、最大レイテンシ閾値であってよい。図4に示す一例では、バス相互接続クロック信号46をスケーリングするために、マスターポート16(0〜M)またはスレーブポート20(0〜N)に対して満たされるべき最小ヘッドルーム帯域幅を構成するために、読取りヘッドルーム帯域幅レジスタ98および書込みヘッドルーム帯域幅レジスタ100が設けられる。マスターポート16(0〜M)に対するトラフィックモニタ回路60(0〜M)またはスレーブポート20(0〜N)に対するトラフィックモニタ回路62(0〜N)から受信される読取りおよび書込みのレイテンシおよび帯域幅の情報を判断するために、読取りトラフィックモニタ102および書込みトラフィックモニタ104が、同様に設けられる。読取りレイテンシおよび書込みレイテンシが、それぞれ、最大読取りレイテンシレジスタ94および最大書込みレイテンシレジスタ96より低いかどうか、ならびに読取り帯域幅および書込み帯域幅が、それぞれ、読取りヘッドルーム帯域幅レジスタ98および書込みヘッドルーム帯域幅レジスタ100に記憶されている帯域幅のリミット内(すなわち、以下)にあるかどうか、を判断するために、読取りトラフィック比較器106および書込みトラフィック比較器108が設けられる。
【００３２】
引き続き図4を参照すると、OR論理112からの出力信号110によって与えられるとき、最大読取りレイテンシまたは最大書込みレイテンシのいずれかが満たされないか、または帯域幅に対するヘッドルームが維持されない場合、FSM93はこの条件を登録し、バス相互接続クロック信号46の周波数を引き下げることは、許可されない。例として、たとえば100ナノ秒(100ns)などの絶対時間に基づく最大レイテンシ閾値、または代わりに、一例として基準クロック信号を使用する相対的タイミングに基づく最大レイテンシ閾値が、レイテンシ条件として、最大読取りレイテンシレジスタ94および最大書込みレイテンシレジスタ96のために構成されてよい。読取りヘッドルーム帯域幅レジスタ98および/または書込みヘッドルーム帯域幅レジスタ100において構成されるヘッドルーム帯域幅の一例は、バス相互接続クロック信号46の現在の周波数において可能な最大帯域幅の90パーセント(90%)であってよい。
【００３３】
本明細書で説明する実施形態において提供され得、図5に関して以下でより詳細に説明する別の特徴は、マスターポート16(0〜M)およびスレーブポート20(0〜N)の各々が、バス相互接続クロック信号46から独立してクロック制御されることを可能にする能力である。このようにして、マスターポート16(0〜M)およびスレーブポート20(0〜N)の各々は、異なる帯域幅のニーズを有し得るマスターデバイス14(0〜M)とスレーブデバイス18(0〜N)との相互接続における柔軟性を可能にするために、共時性関係においてバス相互接続クロック信号46の周波数と異なる周波数で動作することができる。たとえば、図1に示すように、マスターポート16(0〜M)およびスレーブポート20(0〜N)の各々に対して個別のクロック変更回路52(0〜M)、54(0〜N)をそれぞれ設けることで、マスターポート16(0〜M)およびスレーブポート20(0〜N)の周波数が、バス相互接続クロック信号46の周波数と独立になることが可能になる。したがって、必要に応じて、マスターポート16(0〜M)およびスレーブポート20(0〜N)が、異なる周波数で動作することを継続することを可能にしながら、電力を温存し、性能余裕を低減または回避するために、バス相互接続クロック信号46のスケーリングが、所望の周波数において実行されてよい。マスターポート16(0〜M)と異なる周波数で動作するバス相互接続クロック信号46の一例を、図5に示す。この例では、バス相互接続クロック信号46は、100メガヘルツ(MHz)で動作している。マスターポート16(0)に対するマスターポートクロック信号56(0)は、バス相互接続クロック信号46と同期して動作しており、動作エッジ(operating edge)が、同じ周波数、すなわち本例では100MHzで移送整列されていることを意味する。したがって、マスターポートインターフェース28(0)は、バス相互接続クロック信号46と同期するように構成され得る。この点について、構成されるようなマスターポートインターフェース28(0)は、トランザクションを実行するために、バス相互接続クロック信号46と同期をとるために追加のクロック信号を導入しない。マスターポート16(0)に対するマスターポートインターフェース28(0)は、同期のためにバス相互接続クロック信号46の追加のクロックサイクルを必要とすることなく、かつ、トランザクションにレイテンシを追加することなく、バス相互接続クロック信号46と同期して(すなわち、同じ速度で)トランザクションを実行することができる。
【００３４】
図5の例では、マスターポート16(1)に対するマスターポートクロック信号56(1)は、バス相互接続クロック信号46と立上がりエッジ同期で動作する。立上がりエッジ同期は、マスターポートクロック信号56(1)の立上がりエッジが、バス相互接続クロック信号46の立上がりエッジと同期するが、バス相互接続クロック信号46と同じ動作周波数ではないことを意味する。このことは、バス相互接続クロック信号46が、マスターポートクロック信号56(1)に対して整数の倍数/整除可能(integer multiple/divisible)であるときに発生する。この例では、マスターポートクロック信号56(1)は、バス相互接続クロック信号46の速度の半分である50MHzの周波数で動作している。マスターポートインターフェース28(1)が、立上がりエッジ同期として構成される場合、非同期に比べてレイテンシは低減され得る。しかしながら、マスターポートインターフェース28(1)によるトランザクション要求の後のマスターポートクロック信号56(1)の次の立上がりエッジが、バス相互接続クロック信号46の次の立上がりエッジと同期するならば、トランザクションは、追加のレイテンシなしに、相互接続ネットワーク26内でマスターポートインターフェース28(1)に対して実行され得る。
【００３５】
図5の例では、マスターポート16(2)に対するマスターポートクロック信号56(2)は、バス相互接続クロック信号46と非同期で動作するように構成されている。非同期は、バス相互接続クロック信号46が、マスターポートクロック信号56(2)に対して整数の倍数/整除可能ではないことを意味する。したがって、マスターポートクロック信号56(2)は、バス相互接続クロック信号46と非同期である。たとえば、マスターポートクロック信号56(2)は、この例では、30MHzの周波数で動作している。非同期動作に対して、マスターポートインターフェース28(2)によるトランザクション要求は、バス相互接続クロック信号46によって二重に同期をとられる必要があり、そのことで、レイテンシは、立上がりエッジ共時性よりも大きくなる可能性がある。
【００３６】
バス相互接続クロック信号46の周波数がスケーリングされる場合、マスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)は、必要ならば、または電力および/もしくは性能の観点から有利ならば、相互接続ネットワーク26とインターフェースすることを可能にするために、バス相互接続クロック信号46の新しい周波数と適合するように再構成される。この点について、本明細書で開示する実施形態は、バス相互接続クロック信号46の周波数がスケーリングされてレイテンシが低減されると、コントローラ42が、マスターポート16(0〜M)およびスレーブポート20(0〜N)を同期または立上がりエッジ同期として構成することを可能にする。そのように構成されるとき、マスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)の周波数は、マスターポート16(0〜M)およびスレーブポート20(0〜N)の帯域幅性能に、所望の構成を超えて影響を与えることなく、そのようなことが可能であるならば、バス相互接続クロック信号46のスケーリングに比例してスケーリングされてよい。結果として、バス相互接続12内の同期サイクルは、バス相互接続クロック信号46がスケーリングされると、低減または回避され得、それによりレイテンシが低減される。マスターポート16(0〜M)およびスレーブポート20(0〜N)を同期または立上がりエッジ同期として構成することが不可能である場合、マスターポート16(0〜M)およびスレーブポート20(0〜N)は、バス相互接続クロック信号46に対して非同期として構成されてよい。
【００３７】
図6は、バス相互接続クロック信号がスケーリングされるときの、バス相互接続クロック信号に対する同期動作、立上がりエッジ同期動作、および非同期動作のポートクロック信号に対するポートクロック信号の例示的な構成を示すフローチャートである。コントローラ42は、構成に基づいてマスターポート16(0〜M)およびスレーブポート20(0〜N)の各々に対して、マスターポート16(0〜M)またはスレーブポート20(0〜N)のうちのいずれかを、バス相互接続クロック信号46の新しい周波数と同期するように構成することが可能であるかどうかを判断する(ブロック121)。可能であれば、コントローラ42はまた、そのようなマスターポート16(0〜M)およびスレーブポート20(0〜N)へのマスターポートクロック信号56(0〜M)またはスレーブポートクロック信号58(0〜N)に対して、それぞれなされる必要のある周波数変更が、そのようなマスターポート16(0〜M)およびスレーブポート20(0〜N)の任意の個々の帯域幅条件を守らないかどうかを判断することができる(ブロック122)。可能でなければ、コントローラ42は、バス相互接続クロック信号46の周波数の変更により、同期動作に対して再構成され得る、必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)を抑制する(ブロック124)。この点について、これらのマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)は、これらの必要なマスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)が最構成される(ブロック126)まで、バストランザクションを処理せず、バス相互接続クロック信号46が変更され(ブロック128)、必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)が抑制解除される(ブロック129)。
【００３８】
いずれかのマスターポート16(0〜M)およびスレーブポート20(0〜N)が同期動作に構成され得るかどうかを判断した後、コントローラ42は、マスターポート16(0〜M)またはスレーブポート20(0〜N)のうちのいずれかが、バス相互接続クロック信号46の新しい周波数と立上がりエッジ同期動作に構成され得るかどうかを判断する(ブロック131)。可能であれば、コントローラ42は、そのようなマスターポート16(0〜M)およびスレーブポート20(0〜N)へのマスターポートクロック信号56(0〜M)またはスレーブポートクロック信号58(0〜N)に対してなされる必要のある周波数変更が、そのようなマスターポート16(0〜M)およびスレーブポート20(0〜N)の任意の個々の帯域幅条件を守らないかどうかを判断する(ブロック132)。可能でなければ、コントローラ42は、バス相互接続クロック信号46の周波数の変更により、立上がりエッジ同期動作に再構成され得る、必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)を抑制する(ブロック124)。この点について、これらのマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)は、これらの必要なマスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)が最構成される(ブロック126)まで、バストランザクションを処理せず、バス相互接続クロック信号46の周波数が変更され(ブロック128)、必要なマスターポートキュー30(0〜M)およびスレーブポートキュー34(0〜N)が抑制解除される(ブロック129)。
【００３９】
いずれかのマスターポート16(0〜M)およびスレーブポート20(0〜N)が同期動作および立上がりエッジ同期動作に構成され得るかどうかを判断した後、コントローラ42は、そのようなマスターポート16(0〜M)およびスレーブポート20(0〜N)に対してブロック124〜130を実行することによって、残りのマスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)を非同期動作に構成する(ブロック133)。その後、プロセスは終了する(ブロック130)。
【００４０】
図6は、マスターポート16(0〜M)およびスレーブポート20(0〜N)が、同期動作および立上がりエッジ同期動作に構成され得るかどうかを、残りのマスターポート16(0〜M)およびスレーブポート20(0〜N)を非同期動作に構成する前に、直列方式で判断するステップを示すが、この処理の順序が要求されているわけではないことに留意されたい。たとえば、バストラフィックが、最初に、すべてのマスターポート16(0〜M)およびスレーブポート20(0〜N)に対して抑制されている場合に、すべてのマスターポート16(0〜M)およびスレーブポート20(0〜N)が、最初に、非同期動作に構成されてよい。その後、いずれかのマスターポート16(0〜M)およびスレーブポート20(0〜N)が、同期動作および立上がりエッジ同期動作に構成され得るかどうかを判断されてよい。
【００４１】
さらに、別の代替として、コントローラ42は、すべてのマスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)の構成を、非同期動作に変更し得る。バス相互接続クロック信号46の周波数の変更に応答して、同期動作および/または立上がりエッジ同期動作を与えるため、かつ/またはマスターポートクロック信号56(0〜M)およびスレーブポートクロック信号58(0〜N)の周波数を変更するために、マスターポートインターフェース28(0〜M)およびスレーブポートインターフェース40(0〜N)の中に論理回路を設けることを望まない場合、この動作は、コントローラ42によって与えられてよい。
【００４２】
図7は、たとえば、図6のブロック128で規定されるように、ポートクロック信号56(0〜M)、58(0〜N)の周波数をスケーリングするために使用され得る、例示的なクロック変更回路52(0〜M)、54(0〜N)のブロック図である。クロック変更回路52(0〜M)、54(0〜N)はまた、必要な場合、バス相互接続クロック信号46をスケーリングするために、コントローラ42の中で使用され得る。この点について、クロック変更回路52(0〜M)、54(0〜N)は、クロックソース信号48とバス相互接続クロック信号46の両方を受信するように構成される。クロック変更回路52(0〜M)、54(0〜N)は、別のクロック信号を受信することができる。マルチプレクサ134は、ポートクロック信号56(0〜M)、58(0〜N)を与えるために、クロック変更回路52(0〜M)、54(0〜N)によって使用されるこれらのクロック信号のうちの1つを選択する。本明細書の目的を論じるために、マルチプレクサ134がバス相互接続クロック信号46を選択することが仮定される。バス相互接続クロック信号46を分割し、それゆえスケーリングしてポートクロック信号56(0〜M)、58(0〜N)として与えるために、バス相互接続クロック信号46がクロックディバイダ135に与えられる。クロック変更クロックイネーブル信号(clk_chng_clk_en)136がアクティブであってブランチセル138をイネーブルにする場合、クロックディバイダ135(clk_div_src)の出力が、ポートクロック信号56(0〜M)、58(0〜N)として与えられる。
【００４３】
回路または回路とソフトウェアとの組合せで設けられ得る有限状態機械(FSM)140が、ポートクロック信号56(0〜M)、58(0〜N)の周波数をスケーリングするために、クロックディバイダ135を制御する。FSM140はまた、ポートクロック信号56(0〜M)、58(0〜N)がブランチセル138の出力として与えられることを可能にするために、クロック変更クロックイネーブル信号136を制御する。たとえば、対応するマスターポート16(0〜M)および/またはスレーブポート20(0〜N)が電力を温存するために使用されていないとき、ポートクロック信号56(0〜M)、58(0〜N)を停止することが所望されることがある。この点について、FSM140は、ポートクロック信号56(0〜M)、58(0〜N)を停止するために、クロック変更クロックイネーブル信号136を非アクティブにする。
【００４４】
クロックディバイダ135を制御してポートクロック信号56(0〜M)、58(0〜N)の周波数を選択するために、FSM140は、入力として、クロック変更要求信号(clk_chng_req)142と、ローカル状態機械クロック信号(sm_clk)144と、クロック変更コマンド信号(clk_chng_cmd)146上のコントローラ42からのクロック変更コマンドとを受信するように構成される。クロック変更コマンド要求は、ポートクロック信号56(0〜M)、58(0〜N)が、停止されるか、または周波数が増加もしくは減少されるかどうかを示す。FSM140は、クロック変更確認信号(clk_chng_ack)148上に、そのような要求の受信および完了の表示を与えることができる。ポートクロック信号56(0〜M)、58(0〜N)のステータスが、クロックオフステータス信号(clk_off_stat)150を介してFSM140によって取得され得る。
【００４５】
ポートクロック信号56(0〜M)、58(0〜N)の周波数を増加または減少させるために、FSM140が、クロック変更要求信号(clk_chng_req)142とクロック変更コマンド信号(clk_chng_cmd)146とを、図1のコントローラ42から受信すると、FSM140は、クロックディバイダ135を制御してバス相互接続クロック信号46の周波数を変更してポートクロック信号56(0〜M)、58(0〜N)を与える。新しい周波数が、上限周波数信号(div_ceiling)152および下限周波数信号(div_floor)154によってそれぞれ構成されるような上限周波数より上に、または下限周波数より下になる場合、この実施形態におけるFSM140は、ポートクロック信号56(0〜M)、58(0〜N)の周波数を変更しない。FSM140は、更新信号(div_update)156の構成によって選択される段階で、ポートクロック信号56(0〜M)、58(0〜N)の周波数を増加/減少させる。クロック変更コマンド要求がポートクロック信号56(0〜M)、58(0〜N)を停止することである場合、FSM140は、クロック変更クロックイネーブル信号136を非アクティブにする。
【００４６】
図8は、ポートクロック信号56(0〜M)、58(0〜N)および/またはバス相互接続クロック信号46をスケーリングする、図7のクロック変更回路の例示的なタイミング図である。そこに示されているように、クロック変更要求信号(clk_chng_req)142およびクロック変更コマンド信号(clk_chng_cmd)146は、コントローラ42によって、図7のクロック変更回路52(0〜M)、54(0〜N)に対してアサートされる。クロック変更コマンドは、ポートクロック信号56(0〜M)、58(0〜N)の周波数を減少させる(DOWN)ようにFSM140に要求するための符号化を与える。応答して、FSM140は、クロック変更確認信号(clk_chng_ack)148と「STEADY」状態から「SCALE」状態への遷移とをアサートする。ポートクロック信号56(0〜M)、58(0〜N)の周波数は、クロックディバイダ135を制御することによって低減される。クロック変更確認信号(clk_chng_ack)148は、周波数変更要求が完了するまでアサートされたままである。その後、クロック変更要求信号(clk_chng_req)142がアサート停止され、クロック変更コマンド信号(clk_chng_cmd)146が、FSM140に対して「DON'T CARE」(DC)になる。同様に、FSM140が「STEADY」状態に戻った後、コントローラ42は、図8に示すように、ポートクロック信号56(0〜M)、58(0〜N)の周波数を増加させる(UP)ように、クロック変更回路52(0〜M)、54(0〜N)に命令することができる。クロックオフステータス信号(clk_off_stat)150は、ポートクロック信号56(0〜M)、58(0〜N)がオンであることを示す。
【００４７】
図9は、ポートクロック信号56(0〜M)、58(0〜N)を停止する、図7のクロック変更回路の例示的なタイミング図である。ポートクロック信号56(0〜M)、58(0〜N)を停止するために、クロック変更要求信号(clk_chng_req)142およびクロック変更コマンド信号(clk_chng_cmd)146は、コントローラ42によって、図7のクロック変更回路52(0〜M)、54(0〜N)に対してアサートされる。クロック変更コマンド信号(clk_chng_cmd)146は、ポートクロック信号56(0〜M)、58(0〜N)を停止する(STOP)ようにFSM140に要求するための符号化を与える。応答して、FSM140は、クロック変更確認信号(clk_chng_ack)148をアサートし、「STEADY」状態から「STANDBY」状態へ遷移する。ポートクロック信号56(0〜M)、58(0〜N)は、FSM140によって停止され、図7のブランチセル138に対してクロック変更イネーブル信号(clk_chng_clk_en)136がアサート停止される。クロック変更確認信号(clk_chng_ack)148は、停止要求がアサート停止されるまでアサートされたままである。その後、クロック変更要求信号(clk_chng_req)142がアサートされたままであり、クロック変更コマンド信号(clk_chng_cmd)146が、FSM140に対して「DON'T CARE」(DC)になる。クロックオフステータス信号(clk_off_stat)150は、ポートクロック信号56(0〜M)、58(0〜N)が停止されていることを示す。ポートクロック信号56(0〜M)、58(0〜N)は、クロック変更要求信号(clk_chng_req)142がアサート停止された後、再起動され得、それにより、FSM140は、「WAIT」状態から遷移し、次いでクロック変更確認信号(clk_chng_ack)148をアサート停止し、新しいコマンドを待つために「STEADY」状態に遷移する。
【００４８】
本明細書で論じる、バス相互接続ならびに関係するデバイス、システムおよび方法、ならびにバス相互接続周波数スケーリングをサポートするコンピュータ可読媒体は、限定はしないが、同期デジタル回路、CPUシステム、およびメモリ回路またはメモリシステムを含めて、任意の回路またはシステムの中で使用され得る。メモリ回路またはメモリシステムは、任意のタイプのメモリであってよい。例は、限定はしないが、スタティックランダムアクセスメモリ(RAM)、(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、データダブルレート(DDR)SDRAM、データダブルレート2(DDR2)SDRAM、データダブルレート3(DDR3)SDRAM、モバイルDDR(MDDR)SDRAM、低電力(LP)DDR SDRAM、およびLP DDR2 SDRAMを含む。これらの形態のメモリはまた、本明細書で論じたように、クロック制御される記憶素子に対するモデル出力遅延を決定できるソフトウェア命令を含むコンピュータ可読媒体であってもよい。
【００４９】
本明細書において論じた、バス相互接続クロック周波数スケーリングをサポートする、バス相互接続ならびに関係するデバイス、システムおよび方法、ならびにコンピュータ可読媒体は、電子デバイスおよび/またはプロセッサベースのデバイスもしくはシステムを含めて、半導体ダイ、集積回路、および/またはデバイスに含まれるか、または一体化され得る。これらの点について、そのようなデバイスの例には、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定位置データユニット、モバイル位置データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、モニタ、コンピュータのモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、および、ポータブルデジタルビデオプレーヤが含まれる。
【００５０】
この点について、図10は、本明細書で開示するバス相互接続を含み得る電子デバイスに含まれてよいプロセッサベースのシステム160を示す。プロセッサベースのシステム160は、本明細書で提供する、タイミングモデルおよびモデル出力遅延決定の実施形態を使用してモデル化され得る、クロック制御される記憶素子を含む。また、プロセッサベースのシステム160は、他の回路に対するタイミングモデリング、およびモデル出力遅延決定を実行するソフトウェア命令を実行し得る。ソフトウェア命令は、コンピュータ可読媒体の中に設けられてよい。プロセッサベースのシステム160は、上記で以前に参照された電子デバイスのいずれかを含めて、電子デバイス162の中に含まれてよい。この例では、プロセッサベースのシステム160は、プロセッサ166および組み込まれたキャッシュシステム168を含むCPU164を含む。キャッシュシステム168は、頻繁にアクセスされるデータの一時的な記憶への高速なアクセスのために、プロセッサ166にアクセス可能なキャッシュメモリ172へのアクセスを制御する、キャッシュ管理ユニット170を含む。CPU164は、プロセッサベースのシステム160に含まれる他のデバイスを相互に接続するシステムバス174に結合される。よく知られているように、CPU164は、システムバス174を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。これらのデバイスは、任意の種類のデバイスを含み得る。図10に示すように、これらのデバイスは、例として、システムメモリ176、1つまたは複数の入力デバイス178、1つまたは複数の出力デバイス180、ネットワークインターフェースデバイス182、およびディスプレイコントローラ184を含み得る。システムメモリ176は、コンピュータ可読媒体の一例である。
【００５１】
1つまたは複数の入力デバイス178は、限定はしないが、入力キー、スイッチ、音声プロセッサ、メモリドライブ、ディスク、コンパクトディスク(CD)、デジタルビデオディスク(DVD)などを含めて、任意のタイプの入力デバイスを含み得る。これらの入力デバイス178はまた、ソフトウェア命令を含むコンピュータ可読媒体であり得る。1つまたは複数の出力デバイス180は、限定はしないが、オーディオ、ビデオ、他の視覚インジケータなどを含めて、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス182は、ワイヤード接続を介してまたはワイヤレスにアンテナ187を介して、ネットワーク186との間でデータを交換することができるように構成された任意のデバイスであってよい。ネットワーク186は、限定はしないが、ワイヤードネットワークまたはワイヤレスネットワーク、非公開ネットワークまたは公開ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、インターネット、第3世代(3G)ネットワーク、および第4世代(4G)ネットワークの例を含めて、任意の種類のネットワークであってよい。ネットワークインターフェースデバイス182は、所望の任意の種類の通信プロトコルをサポートすることができる。
【００５２】
CPU164はまた、システムバス174を介してシステムメモリ176にアクセスすることもできる。システムメモリ176は、システムメモリ176にアクセスするための、上記で前に説明した回路および方法を含み得る。システムメモリ176は、スタティックメモリおよび/またはダイナミックメモリを含み得る。システムメモリ176は、CPU164のために、プログラム記憶装置188およびデータ記憶装置190を含み得る。CPU164はまた、システムバス174を介してディスプレイコントローラ184にアクセスして、ディスプレイ192に送信される情報を制御することもできる。ディスプレイコントローラ184は、メモリコントローラ194と、CPU164との通信に応答してディスプレイ192に送信されるべきデータを記憶するためのメモリ196とを含み得る。ディスプレイコントローラ184は、ビデオプロセッサ198を介して表示されるべき情報を、ディスプレイ192に送り、ビデオプロセッサ198は、表示されるべき情報を、ディスプレイ192に適切なフォーマットとなるように処理する。ディスプレイ192は、限定はされないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意の種類のディスプレイを含み得る。
【００５３】
本明細書で開示する実施形態とともに説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに理解されよう。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明している。そのような機能がどのように実装されるかは、具体的な用途、設計の選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００５４】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理回路、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００５５】
本明細書で開示する実施形態は、ハードウェアで具現化されてよく、メモリに記憶される命令により具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICは遠隔局に存在し得る。代替的には、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。本明細書で「信号」と呼ばれる任意の要素はまた、回路の配線(line)もしくは線路(trace)または他の通信線であってよく、回路の配線もしくは線路または他の通信線の上に供給されてもよい。
【００５６】
本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および議論を提供するために説明したものであることにも、留意されたい。説明した動作は、例示した順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明する動作は、実際には、多くの異なるステップで実行され得る。加えて、例示的な実施形態において論じた1つまたは複数の動作ステップは、組み合わされてもよい。フロー図において例示する動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００５７】
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明した例および設計に限定されることを意図するものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５８】
10  バス相互接続システム
12  バス相互接続
14(0〜M)  マスターデバイス
16(0〜M)  マスターポート
18(0〜N)  スレーブデバイス
20(0〜N)  スレーブポート
21  半導体ダイ
22(0〜M)  マスターポートバス
24(0〜N)  スレーブポートバス
26  相互接続ネットワーク
28(0〜M)  マスターポートインターフェース
30(0〜M)  マスターポートキュー
32  アービタ
34(0〜N)  スレーブポートキュー
36(0〜N)  アドレス指定アービタ
38(0〜M)  データ(読取り/書込み)アービタ
40(0〜N)  スレーブポートインターフェース
42  コントローラ
44  バスクロック変更回路
46  バス相互接続クロック信号
48  クロックソース信号
50  クロック発生器
52(0〜M)  クロック変更回路
54(0〜N)  クロック変更回路
56(0〜M)  マスターポートクロック信号
58(0〜N)  スレーブポートクロック信号
60(0〜M)  マスターポートトラフィックモニタ回路
62(0〜N)  スレーブポートトラフィックモニタ回路
93  有限状態機械(FSM)
94  最大読取りレイテンシレジスタ
96  最大書込みレイテンシレジスタ
98  読取りヘッドルーム帯域幅レジスタ
100  書込みヘッドルーム帯域幅レジスタ
102  読取りトラフィックモニタ
104  書込みトラフィックモニタ
106  読取りトラフィック比較器
108  書込みトラフィック比較器
110  出力信号
112  OR論理
134  マルチプレクサ
135  クロックディバイダ
136  クロック変更クロックイネーブル信号
138  ブランチセル
140  FSM
142  クロック変更要求信号
144  ローカル状態機械クロック信号
146  クロック変更コマンド信号
148  クロック変更確認信号
150  クロックオフステータス信号
152  上限周波数信号
154  下限周波数信号
156  更新信号
160  プロセッサベースのシステム
162  電子デバイス
164  CPU
166  プロセッサ
168  キャッシュシステム
170  キャッシュ管理ユニット
172  キャッシュメモリ
174  システムバス
176  システムメモリ
178  入力デバイス
180  出力デバイス
182  ネットワークインターフェースデバイス
184  ディスプレイコントローラ
186  ネットワーク
187  アンテナ
188  プログラム記憶装置
190  データ記憶装置
192  ディスプレイ
194  メモリコントローラ
196  メモリ
198  ビデオプロセッサ
【要約】      （修正有）【課題】バス相互接続ならびに関係するデバイス、システム、および方法のためのバスクロック周波数スケーリングを提供する。【解決手段】バス相互接続は、マスターポートをスレーブポートに接続するように構成可能な相互接続ネットワークを含む。バス相互接続クロック信号が、相互接続ネットワークをクロック制御する。コントローラは、トラフィックに関する帯域幅情報を受信し、マスターポートおよび/もしくはスレーブポートの帯域幅が個々の帯域幅条件を満たす場合ならびに/またはマスターポートのレイテンシがマスターポートに対する個々のレイテンシ条件を満たす場合、バス相互接続クロック信号の周波数をスケーリングする(たとえば、増加または減少させる)。マスターポートおよび/またはスレーブポートはまた、性能を最適化し、電力を温存するためにバス相互接続クロック信号の周波数を変更することに応答して再構成されてもよい。【選択図】図１【図１】
0005985777.tif 000002
【図２】
0005985777.tif 000003
【図３Ａ】
0005985777.tif 000004
【図３Ｂ】
0005985777.tif 000005
【図４】
0005985777.tif 000006
【図５】
0005985777.tif 000007
【図６】
0005985777.tif 000008
【図７】
0005985777.tif 000009
【図８】
0005985777.tif 000010
【図９】
0005985777.tif 000011
【図１０】
0005985777.tif 000012