IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧 ▶ エーティーアイ・テクノロジーズ・ユーエルシーの特許一覧

特表2024-540852メモリの動的セットアップ及びホールド時間調整
<>
  • 特表-メモリの動的セットアップ及びホールド時間調整 図1
  • 特表-メモリの動的セットアップ及びホールド時間調整 図2
  • 特表-メモリの動的セットアップ及びホールド時間調整 図3
  • 特表-メモリの動的セットアップ及びホールド時間調整 図4
  • 特表-メモリの動的セットアップ及びホールド時間調整 図5
  • 特表-メモリの動的セットアップ及びホールド時間調整 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-06
(54)【発明の名称】メモリの動的セットアップ及びホールド時間調整
(51)【国際特許分類】
   G06F 1/10 20060101AFI20241029BHJP
   G06F 12/00 20060101ALI20241029BHJP
   G11C 7/22 20060101ALI20241029BHJP
   G11C 7/04 20060101ALI20241029BHJP
【FI】
G06F1/10 520
G06F12/00 564D
G11C7/22 100
G11C7/04
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024521282
(86)(22)【出願日】2022-10-10
(85)【翻訳文提出日】2024-05-21
(86)【国際出願番号】 US2022077850
(87)【国際公開番号】W WO2023064729
(87)【国際公開日】2023-04-20
(31)【優先権主張番号】63/254,873
(32)【優先日】2021-10-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/564,747
(32)【優先日】2021-12-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(71)【出願人】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ジョン ジェイ. ウー
(72)【発明者】
【氏名】ヤロスワフ クシュチャク
(72)【発明者】
【氏名】ゴウラヴ シングラ
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CC01
(57)【要約】
複数の動作条件にわたって順序回路によってデータを効率的に取り込むためのシステム及び方法が説明される。様々な実施形態では、集積回路は、そのI/O境界において及びそのダイにわたって複数の信号到着調整器を含む。信号到着調整器は、各々がそれぞれの待ち時間を伴う2つの内部タイミング経路を含む。信号到着調整器は、入力信号を受信し、第1のタイミング経路及び第2のタイミング経路のうち選択された何れかから出力信号を生成する。信号到着調整器は、出力信号を順序回路に送る。順序回路は、出力信号を入力データ信号及び入力クロック信号のうち何れかとして使用する。信号到着調整器内の2つのタイミング経路間の選択は、順序回路のセットアップ及びホールド時間要件を満足することを支援する。
【選択図】図2
【特許請求の範囲】
【請求項1】
装置であって、
順序回路と、
信号到着調整器と、を備え、
前記信号到着調整器は、
入力クロック信号及び入力データ信号のうち何れかである第1の信号を受信することと、
前記順序回路に伝達するために前記第1の信号の第1のバージョン又は前記第1の信号の第2のバージョンのうち何れかを選択するための制御信号を受信することと、
を行うように構成されており、
前記第1の信号の第2のバージョンは、前記第1の信号の第1のバージョンに対して遅延する、
装置。
【請求項2】
前記制御信号は、比較的低い動作電圧に応じて、前記第1のバージョンを伝達のために選択するように構成されている、
請求項1の装置。
【請求項3】
前記制御信号は、比較的高い動作電圧に応じて、前記第2のバージョンを伝達のために選択するように構成されている、
請求項1の装置。
【請求項4】
第2のタイミング経路は、信号の伝送を遅延させるように構成された複数の回路要素を備える、
請求項2の装置。
【請求項5】
前記複数の回路要素は、2つ以上のインバータを備える、
請求項4の装置。
【請求項6】
前記複数の回路要素は、偶数のインバータを備える、
請求項5の装置。
【請求項7】
前記制御信号は、動作温度に依存して、前記第1の信号の第1のバージョン及び前記第1の信号の第2のバージョンのうち何れかを選択する、
請求項1の装置。
【請求項8】
方法であって、
信号到着調整器が、入力クロック信号及び入力データ信号のうち何れかである第1の信号を受信することと、
順序回路に伝達するために前記第1の信号の第1のバージョン又は前記第1の信号の第2のバージョンのうち何れかを選択するための制御信号を受信することと、を含み、
前記第1の信号の第2のバージョンは、前記第1の信号の第1のバージョンに対して遅延する、
方法。
【請求項9】
前記制御信号は、比較的低い動作電圧に応じて、前記第1のバージョンを伝達のために選択するように構成されている、
請求項8の方法。
【請求項10】
前記制御信号は、比較的高い動作電圧に応じて、前記第2のバージョンを伝達のために選択するように構成されている、
請求項8の方法。
【請求項11】
第2のタイミング経路は、信号の伝送を遅延させるように構成された複数の回路要素を備える、
請求項9の方法。
【請求項12】
前記複数の回路要素は、2つ以上のインバータを備える、
請求項11の方法。
【請求項13】
前記複数の回路要素は、偶数のインバータを備える、
請求項12の方法。
【請求項14】
前記方法は、動作温度に依存して、前記第1の信号の第1のバージョン及び前記第1の信号の第2のバージョンのうち何れかを伝達のために選択することを含む、
請求項8の方法。
【請求項15】
コンピューティングシステムであって、
1つ以上のタスクの命令と、前記1つ以上のタスクによって処理されるソースデータと、を記憶するように構成されたメモリと、
前記ソースデータを使用して前記命令を実行するように構成された集積回路と、を備え、
前記集積回路は、
順序回路と、
信号到着調整器と、を備え、
前記信号到着調整器は、
入力クロック信号及び入力データ信号のうち何れかである第1の信号を受信することと、
制御信号を受信することと、
前記制御信号によって部分的に決定された待ち時間を伴う第2の信号を前記順序回路に達することと、
を行うように構成されている、
コンピューティングシステム。
【請求項16】
前記信号到着調整器は、比較的高い動作温度に応じて、前記第1の信号が複数のタイミング経路のうち第1のタイミング経路を通過することに基づいて、前記第2の信号を生成するように構成されている、
請求項15のコンピューティングシステム。
【請求項17】
前記信号到着調整器は、比較的低い動作電圧に応じて、前記第1の信号が複数のタイミング経路のうち第2のタイミング経路を通過することに基づいて、前記第2の信号を生成するように構成されている、
請求項15のコンピューティングシステム。
【請求項18】
前記第1のタイミング経路は、前記第2のタイミング経路の第2の待ち時間よりも長い第1の待ち時間を有する、
請求項16のコンピューティングシステム。
【請求項19】
前記第1の信号は、前記入力データ信号であり、
前記制御信号は、前記順序回路がホールド時間制限されていることを示す、
請求項15のコンピューティングシステム。
【請求項20】
前記第1の信号は、前記入力クロック信号であり、
前記制御信号は、前記順序回路がセットアップ時間制限されていることを示す、
請求項15のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2021年10月12日に出願された「DYNAMIC SETUP AND HOLD TIMES ADJUSTMENT FOR MEMORIES」と題する米国仮特許出願第63/254,873号の優先権を主張し、その全体は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
(関連技術の説明)
様々なタイプの順序回路が、入力クロック信号を受け取り、追加的にデータ信号を受け取る。これらのタイプの順序回路は、データ信号の処理をパイプライン方式で同期させる。これらの順序回路の例としては、ラッチ、フリップフロップ、ワード線ドライバ、ビット線ドライバ及びランダムアクセスメモリにおけるデータ記憶メモリセル等が挙げられる。一般に、順序回路は、セットアップ時間及びホールド時間を含む関連付けられたオーバーヘッドを有する。セットアップ時間又はホールド時間の何れかに違反すると、順序回路内の信号及び関連付けられた出力値が不安定になるか又は予測不能になる。出力値が正しくない値に落ち着くと、データ破損が発生する。しかしながら、出力値が正しい値に落ち着いたとしても、電力消費が増加してしまう。追加的に、出力値を受け取る後続の組み合わせ論理の回路の待ち時間が増加する。
【0003】
加えて、システム管理ユニットは、集積回路を異なる動作モード又は状態間で遷移させながら、集積回路の電力性能状態のための電源電圧の値及び動作クロック周波数を判定する。動作モードの例としては、アウェイク状態、アイドル状態及びスリープ状態が挙げられる。各動作モードは、1つ以上の電力性能状態に関連付けられる。異なる電源電圧及び動作クロック周波数を使用することは、集積回路の性能、電力消費及び安定性の間のトレードオフのバランスをとるのに役立つ。多くの集積回路に対してクロック速度を増加させる要求があるので、異なる動作条件に対して順序回路のセットアップ及びホールド時間要件のバランスをとることが課題となっている。
【0004】
上記を考慮して、複数の動作条件にわたって順序回路によってデータを効率的に取り込むための方法及びシステムが望まれている。
【図面の簡単な説明】
【0005】
図1】複数の動作条件にわたって順序回路によってデータを効率的に取り込むためのタイミング経路の一般化された図である。
図2】複数の動作条件にわたって順序回路によってデータを効率的に取り込むためのタイミング経路の一般化された図である。
図3】複数の動作条件にわたって順序回路によってデータを取り込むためのタイミング経路の一般化された図である。
図4】複数の動作条件にわたって順序回路によってデータを効率的に取り込むための方法の一実施形態の一般化された図である。
図5】複数の動作条件にわたって順序回路によってデータを効率的に取り込むための方法の一実施形態の一般化された図である。
図6】複数の動作条件にわたって順序回路によってデータを取り込むためのタイミング経路を有するコンピューティングシステムの一般化された図である。
【発明を実施するための形態】
【0006】
本発明は、様々な修正及び代替形態の余地があるが、具体的な実施形態が例として図面に示されており、本明細書で詳細に説明される。しかしながら、図面及びその詳細な説明は、開示された特定の形態に本発明を限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義される本発明の範囲に含まれる全ての修正、均等物及び代替物を包含するものであることを理解されたい。
【0007】
以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者は、これらの具体的な詳細なしに本発明が実施され得ることを認識すべきである。いくつかの例では、本発明を不明瞭にすることを避けるために、周知の回路、構造及び技術が詳細に示されていない。更に、説明の簡略性及び明確性のために、図に示される要素は、必ずしも縮尺どおりに描画されていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
【0008】
複数の動作条件にわたって順序回路によってデータを効率的に取り込むためのシステム及び方法が企図される。様々な実施形態では、集積回路は、そのI/O境界において及びそのダイにわたって複数の信号到着調整器(signal arrival adjusters)を含む。信号到着調整器は、各々がそれぞれの待ち時間を伴う2つの内部タイミング経路を含む。信号到着調整器は、入力信号を受け取り、第1のタイミング経路及び第2のタイミング経路のうち選択された何れかから出力信号を生成する。信号到着調整器は、出力信号を順序回路に送る。いくつかの実施形態では、入力信号及び出力信号は、順序回路によって記憶されるデータ値に対応する。他の実施形態では、入力信号及び出力信号は、順序回路によって使用されるクロック信号に対応する。
【0009】
また、信号到着調整器は、セットアップ/ホールドセレクタ制御信号(又は制御信号)を受け取る。様々な実施形態では、制御ユニットは、様々な動作条件に基づいて制御信号を生成する。信号到着調整器(又は調整器)は、制御信号が第1の状態又は値を有することを調整器が判定した場合に、第1の待ち時間を伴う第1のタイミング経路を選択する。調整器は、制御信号が第1の状態とは異なる第2の状態に関連付けられていることを調整器が判定した場合に、第1の待ち時間よりも大きい第2の待ち時間を伴う第2のタイミング経路を選択する。様々な実施形態では、第2のタイミング経路は、第1のタイミング経路と比較した場合、経路を通る信号の待ち時間を増加させる1つ以上の遅延要素を含む。様々な実施形態では、第1のタイミング経路及び第2のタイミング経路のタイミングは、単一クロックサイクル以下である。調整器は、特定の動作条件に対するセットアップ時間要件及びホールド時間要件の両方を満足するために、順序回路のデータ信号又はクロック信号の信号経路内に配置され、順序回路における対応する到着時間を調整する。
【0010】
動作条件の例としては、動作温度、複数の電力性能状態(P状態)、動作電源電圧、及び、監視されるアクティビティレベル等が挙げられる。これらの条件のうち1つ以上の現在の値は、ダイ上の信号の待ち時間を変化させる。例えば、動作条件は、信号ルートの抵抗性及び容量性(resistive and capacitive、RC)寄生効果並びにトランジスタ閾値電圧に影響を及ぼす可能性がある。更に、特定の信号の待ち時間の変化は、その信号経路が、トランジスタよりも長い信号ルート(例えば、長い配線)を多く含むか、又は、長い信号ルートよりも、複数のレベルの組み合わせ論理を提供するトランジスタを多く含むか否かに基づく。したがって、順序回路に到着するデータ信号の待ち時間の変化は、順序回路に到着するクロック信号の待ち時間の変化とは異なり得る。
【0011】
設計者は、セットアップ時間要件及びホールド時間要件の両方が、特定の動作条件下で順序回路に対して満足されることを保証するように、データ信号経路及びクロック信号経路の各々を既にチューニングしている。しかしながら、データ信号及びクロック信号の待ち時間の結果として生じる変化が他の動作条件に対して互いに著しく異なるために、セットアップ及びホールド時間要件の一方又は両方が満足されなくなる。したがって、これらの他の動作条件に対するセットアップ時間要件及びホールド時間要件の両方を満足するために、データ信号又はクロック信号の信号経路上に調整器が配置され、順序回路における到着時間を調整する。特定の条件下で、クロック信号が順序回路におけるデータ信号よりも順序回路に遅く到着すると、順序回路においてホールド時間違反が発生する。例えば、入力クロック信号の順序回路における到着時間と入力データ信号の順序回路における到着時間との間の差が閾値よりも大きい場合、ホールド時間違反が発生する。これらの場合、信号到着調整器は、ホールド時間制限を除去するために、データ信号の経路上で使用される。特定の条件下で、データ信号が順序回路にクロック信号よりも著しく遅く到着すると、順序回路においてセットアップ時間違反が発生する。これらの場合、信号到着調整器は、セットアップ時間制限を除去するために、クロック信号の経路上で使用される。信号到着調整器内の2つのタイミング経路間の選択は、順序回路のセットアップ及びホールド時間要件を満足することを支援する。
【0012】
図1を参照すると、タイミング経路100の一般化されたブロック図が示されている。集積回路は、信号到着調整器120等の複数の信号到着調整器を含む。集積回路は、その入力/出力(input/output、I/O)境界において及びそのダイにわたって、信号到着調整器(又は「信号到着調整ユニット」)120を使用することができる。様々な実施形態では、信号到着調整器120(又は調整器120)は、入力データ102及びセットアップ/ホールドセレクタ制御信号104を受け取る。調整器120は、中間データ128を生成し、それを順序回路140に送る。順序回路140は、中間データ128及び中間クロック132を受け取る。クロックツリー130は、入力クロック106を受け取り、中間クロック132を生成する。また、順序回路は、「VDD」142として示される電源電圧レベル、及び、「VSS」144として示される接地基準電圧レベルを使用する。様々な実施形態では、VDD142及びVSS144の値は、現在使用されている電力性能状態(P状態)によって設定される。いくつかの実施形態では、調整器120は、VDD142及びVSS144の同じ値を使用する。加えて、入力クロック106及び中間クロック132のうち1つ以上の動作周波数は、P状態に基づく。順序回路140は、出力データ150を生成する。
【0013】
順序回路140は、様々な順序データ記憶要素を表す。順序回路140の例としては、ラッチ、フリップフロップ、ワード線ドライバ、ビット線ドライバ、及び、ランダムアクセスメモリにおけるデータ記憶メモリビットセル等が挙げられる。概して、順序回路140は、セットアップ時間及びホールド時間要件を含む関連付けられたオーバーヘッドを有する。一実施形態では、調整器120は、各々がそれぞれの待ち時間を伴う2つのタイミング経路を含む。例えば、調整器120は、データ生成器122及び124を含む。第1のタイミング経路は、入力データ102を受け取り、データ生成器122及びマルチプレクサ(mux)126を使用して、中間データ128を生成する。第2のタイミング経路は、入力データ102を受け取り、データ生成器124及びマルチプレクサ(mux)126を使用して、中間データ128を生成する。マルチプレクサ126の選択線は、セットアップ/ホールドセレクタ104を受け取る。データ生成器122及び124を使用する2つのタイミング経路が示されているが、他の実施形態では、調整器120は、別の数のデータ生成器を使用する別の数のタイミング経路を含む。そのような実施形態では、マルチプレクサの数及び制御信号の数が増加する。
【0014】
一実施形態では、データ生成器122は、第2のデータ生成器124の待ち時間よりも小さい待ち時間を有する。一例では、データ生成器122は、配線遅延を使用し、論理ゲート遅延を使用しないが、データ生成器124は、直列に接続された偶数(すなわち、2、4、6等)のインバータを使用して、入力データ102の遅延された非反転値をマルチプレクサ126に送る。他の実施形態では、データ生成器は、反転された値をマルチプレクサ126に提供し、マルチプレクサ126の出力に、追加のインバータが使用される。マルチプレクサ126は、マルチプレクサ126の「0」入力が選択されることをセットアップ/ホールドセレクタ104が示す場合に、データ生成器122を使用する第1のタイミング経路を選択する。制御ユニット(装置の外部にあってもよい)が、セットアップ/ホールドセレクタ104を設定する。制御ユニットは、現在の動作条件が入力データ102の順序回路における到着時間と中間クロック132の順序回路における到着時間との間の差を時間閾値未満にさせることを制御ユニットが決定した場合に、セットアップ/ホールドセレクタ104を、データ生成器122が選択されることを示す値に設定する。したがって、順序回路140のセットアップ及びホールド時間要件は、設計サイクル中の前のチューニングによるこれらの到着時間によって満たされ得る。
【0015】
マルチプレクサ126は、セットアップ/ホールドセレクタ104がマルチプレクサ126の「1」入力が選択されることを示す場合に、データ生成器124の待ち時間よりも大きい待ち時間を有するデータ生成器122を使用する第2のタイミング経路を選択する。制御ユニットは、現在の特定の動作条件が中間クロック132の到着時間を入力データ102の到着時間から少なくとも時間閾値だけ遅滞させることを制御ユニットが決定した場合に、セットアップ/ホールドセレクタ104を、データ生成器124が選択されることを示す値に設定する。したがって、順序回路140のホールド時間要件は、これらの特定の動作条件の間に満たされることができない。データ生成器124は、これらの特定の条件下で順序回路140のホールド時間要件を満足することを支援する。データ生成器124の待ち時間は、中間データ128及び中間クロック132の到着時間の差を時間閾値よりも小さくさせる。したがって、順序回路140のホールド時間要件が満たされる。
【0016】
制御ユニットによって監視される動作条件の例としては、動作温度、複数の電力性能状態(P状態)、動作電圧、及び、監視される活動(アクティビティ)レベル等が挙げられる。これらの条件のうち1つ以上の現在の値は、入力データ102及び中間クロック132の到着時間等のような、ダイ上の信号の待ち時間を変化させる。例えば、動作条件は、信号ルートの抵抗性及び容量性(RC)寄生効果並びにトランジスタ閾値電圧に影響を及ぼす可能性がある。中間クロック132の到着時間を入力データ102の到着時間から少なくとも時間閾値だけ遅滞させる、特定の動作条件の組み合わせが知られている。既知の組み合わせが集積回路によって使用される場合、制御ユニットは、セットアップ/ホールドセレクタ104を、データ生成器124を選択するようにマルチプレクサ126に指示する値に設定する。
【0017】
いくつかの実施形態では、制御ユニットは、回路等のハードウェアを含み、回路は、動作条件の指標を受け取り、順序回路140に対してホールド時間違反を引き起こす1つ以上の組み合わせがいつ発生するかを判定する。例えば、電力マネージャ又は他の管理ユニットが、選択されたP状態を提供する。様々なタイプの温度センサのうち1つ以上が、動作温度の指標を提供する。順序回路140のためのセットアップ/ホールドセレクタ104を生成する制御ユニットのハードウェアは、この順序回路140に特有である。しかしながら、順序回路140の近くの他の順序回路が同様の信号タイミングを有する場合、これらの他の順序回路とともに使用される他の信号到着調整器は、セットアップ/ホールドセレクタ104を共有することができる。他の実施形態では、制御ユニットは、順序回路140に対してホールド時間違反を引き起こす1つ以上の動作条件の組み合わせを識別する構成可能テーブルを、ハードウェア又はファームウェア内に保持する。制御ユニットは、セットアップ/ホールドセレクタ104を、このテーブルの出力として、調整器120等の1つ以上の信号到着調整器に送る。
【0018】
信号到着調整器120の配置は、入力データ102の順序回路140における到着時間と中間クロック132の順序回路140における到着時間との間の差が時間閾値以上である場合に、何れの信号(例えば、入力データ信号102及び中間クロック信号132)が順序回路140に遅れて到着するかに基づく。図示した実施形態では、特定の動作条件下では、中間クロック132の到着時間が入力データ102の到着時間から少なくとも時間閾値だけ遅滞するので、調整器120は入力データ102の信号経路内に配置される。しかしながら、他の実施形態では、入力データ102の到着時間が特定の動作条件下で中間クロック132の到着時間から少なくとも時間閾値だけ遅滞する場合に、調整器120は、中間クロック132の信号経路内に配置される。このような場合、順序回路140は、セットアップ時間要件を満足することができない。したがって、制御ユニットは、セットアップ/ホールドセレクタ104を、データ生成器124を選択するように設定し、これは、中間クロック132の到着時間を更に遅延させる。したがって、これらの場合、入力データ102及び中間クロック132の到着時間の差が時間閾値よりも小さいので、セットアップ時間要件がここで満足される。
【0019】
図2を参照すると、タイミング経路200の一般化されたブロック図が示されている。タイミング経路200は、(図1の)タイミング経路100に関して示されているのと同様の構成要素を含む。例えば、クロック生成器210は、入力クロック信号入力クロック206を受け取り、クロック信号216を生成し、クロック信号216は、ローカルクロックバッファリング回路218(又は回路218)によって受け取られる。回路218の出力は、中間クロック信号232であり、中間クロック信号232は、順序回路240によって受け取られる。クロック生成器210は、1つ以上のブール組み合わせ論理ゲート及び複合ゲートを含む、クロックバッファリング回路212(又は回路212)を使用する。回路212によって使用される他の制御信号は、説明を容易にするために示されていない。インバータ214は、クロック信号216を様々な種類の回路に送るグローバルクロックバッファである。
【0020】
先に説明したように、信号到着調整器220(又は調整器220)の配置は、入力データ202及び中間クロック232の到着時間の差が時間閾値以上である場合に、何れの信号(例えば、入力データ信号202及び中間クロック信号232)が順序回路140に遅れて到着するかに基づく。図示した実施形態では、特定の動作条件下では、中間クロック232の到着時間が入力データ202の到着時間よりも少なくとも時間閾値だけ遅滞するので、調整器220は入力データ信号202と順序回路240との間の信号経路内に配置される。したがって、これらの特定の動作条件下では、順序回路240のホールド時間要件は、調整器220を使用しなければ満たされることができない。調整器220は、中間データ信号230を生成し、中間データ信号230は、順序回路240によって受け取られる。調整器220は、2つのタイミング経路を含む。第1のタイミング経路は、論理ゲート追加遅延を伴わない配線遅延を含み、一方、第2のタイミング経路は、入力データ信号をバッファリングして遅延させる一連のインバータを含む。
【0021】
先に説明したように、制御ユニット250は、中間クロック232の到着時間を入力データ202の到着時間から少なくとも時間閾値だけ遅滞させる、動作条件の特定の組み合わせがいつ発生するかを判定することに基づいて、セットアップ/ホールドセレクタ204信号をアサートする。様々な実施形態では、制御ユニット250は、電力管理回路の一部であってもよく、電力管理回路から情報を受け取ってもよく、又は、その他であってもよい。それ以外の場合、制御ユニットは、セットアップ/ホールドセレクタ204信号をネゲートする。セットアップ/ホールドセレクタ204信号がネゲートされると、調整器220のマルチプレクサ226は、配線遅延のみを使用する第1のタイミング経路を選択する。第1のタイミング経路の配線遅延は、順序回路240のセットアップ時間要件を満足することを支援する。セットアップ/ホールドセレクタ204信号がアサートされると、調整器220のマルチプレクサ226は、インバータ222及びデータ生成器224を使用する第2のタイミング経路を選択する。データ生成器224は、遅延を加えるために一連のインバータを使用する。一連のインバータは、順序回路240のホールド時間要件を満足することを支援する。2つのタイミング経路が示されているが、他の実施形態では、調整器220は、別の数のデータ生成器を使用する別の数のタイミング経路を含む。そのような実施形態では、マルチプレクサの数及び制御信号の数が調整器220のために増加する。
【0022】
タイミング経路200のために示された回路は、書込みデータを記憶するレジスタ等の同期ランダムアクセスメモリ(synchronous random access memory、SRAM)の周辺回路に対して異なるモードを選択するための、典型的な既存のインフラストラクチャを活用する。異なる動作電源電圧範囲及び異なる動作温度範囲等によって、順序回路のセットアップ要件及びホールド要件を動的に満足することが困難になる。例えば、調整器220を使用せずに信号が順序回路内のホールド時間要件を満足することを可能にする方法は、ある動作条件下でセットアップペナルティを被ることになる。同様に、調整器220を使用せずに信号が順序回路内のセットアップ要件を満足することを可能にする方法は、ある動作条件下でホールドタイムペナルティを被ることになる。調整器220は、これらの矛盾する要件を切り離し、ホールド時間要件及びセットアップ時間要件の両方が広範囲の動作条件の間に満たされることを可能にする。
【0023】
次に図3を参照すると、タイミング経路300の一般化されたブロック図が示されている。タイミング経路300は、(図2の)タイミング経路200に関して示されているのと同様の構成要素を含む。先に説明した信号及び回路には、同様の符号が付されている。ここで、信号到着調整器320は、信号到着調整器220に代わるものである。タイミング経路の選択は行われない。したがって、順序回路240のセットアップ及びホールド時間要件を満足することは、動作モードが変化するにつれて動作パラメータが変化するので、困難になる。
【0024】
次に図4を参照すると、複数の動作条件にわたって順序回路によってデータを効率的に取り込むための方法400の一実施形態が示されている。説明のために、この実施形態におけるステップは、順番に示されている。しかしながら、他の実施形態では、いくつかのステップは、図示した順序とは異なる順序で起こり、いくつかのステップは、同時に実行され、いくつかのステップは、他のステップと組み合わされ、いくつかのステップは、存在しない。
【0025】
集積回路は、そのI/O境界において及びそのダイ内に複数の信号到着調整器を含む。様々な実施形態では、信号到着調整器のうちの1つ以上は、(図1の)信号到着調整器120及び(図2の)信号到着調整器220の構成要素を利用する。順序回路は、入力クロック信号を受け取る(ブロック402)。順序回路の例としては、ラッチ、フリップフロップ、ワード線ドライバ、ビット線ドライバ、及び、ランダムアクセスメモリにおけるデータ記憶メモリセル等が挙げられる。一般に、順序回路は、セットアップ時間及びホールド時間要件を含む関連付けられたオーバーヘッドを有する。順序回路は、電源電圧を受け取る(ブロック404)。
【0026】
信号到着調整器は、入力データ信号を受け取る(ブロック406)。信号到着調整器は、セットアップ/ホールドセレクタ制御信号の指標を受け取る(ブロック408)。様々な実施形態では、制御ユニットが、順序回路に対してホールド時間違反を引き起こす1つ以上の動作条件の組み合わせを識別する。例えば、入力クロック信号の順序回路における到着時間と入力データ信号の順序回路における到着時間との間の差は、時間閾値よりも大きい。そのような場合、順序回路は、「ホールド時間制限」される。順序回路がホールド時間制限されていることを制御信号の状態が示す場合(条件ブロック410:「ホールド時間制限」)、信号到着調整器は、第2の待ち時間よりも大きい第1の待ち時間を伴う第1のタイミング経路を通る入力信号に基づいて、出力データ信号を生成する(ブロック412)。例えば、信号到着調整器内の第1のタイミング経路の第1の待ち時間は、信号到着調整器を伴う第2のタイミング経路の第2の待ち時間よりも大きい。
【0027】
様々な実施形態では、制御ユニットは、順序回路に対してセットアップ時間違反を引き起こす1つ以上の動作条件の組み合わせを識別する。例えば、入力データ信号の順序回路における到着時間と入力クロック信号の順序回路における到着時間との間の差は、時間閾値よりも大きい。このような場合、順序回路は「セットアップ時間が制限される」。順序回路がセットアップ時間制限されていることを制御信号の状態が示す場合(条件ブロック410:「セットアップ時間制限」)、信号到着調整器は、信号到着調整器の第1のタイミング経路の第1の待ち時間よりも小さい第2の待ち時間を伴う第2のタイミング経路を通る入力信号に基づいて、出力データ信号を生成する(ブロック414)。信号到着調整器(又は調整器)は、出力データ信号を順序回路に伝達する(ブロック416)。例えば、順序回路は、出力データ信号を入力データ信号として受け取る。制御信号の受け取られた状態に起因して、調整器は、出力データ信号の順序回路における到着時間とクロック信号の順序回路における到着時間との間の差を時間閾値よりも小さくなるようにする。したがって、順序回路のセットアップ時間要件及びホールド時間要件の両方が満たされる。
【0028】
次に図5を参照すると、複数の動作条件にわたって順序回路によってデータを効率的に取り込むための方法500の一実施形態が示されている。説明のために、この実施形態におけるステップは、順番に示されている。しかしながら、他の実施形態では、いくつかのステップは、図示した順序とは異なる順序で起こり、いくつかのステップは、同時に実行され、いくつかのステップは、他のステップと組み合わされ、いくつかのステップは、存在しない。
【0029】
集積回路は、そのI/O境界において及びそのダイ内に複数の信号到着調整器を含む。様々な実施形態では、信号到着調整器のうち1つ以上は、(図1の)信号到着調整器120及び(図2の)信号到着調整器220の構成要素を利用する。順序回路は、入力データ信号を受け取る(ブロック502)。順序回路の例としては、ラッチ、フリップフロップ、ワード線ドライバ、ビット線ドライバ、及び、ランダムアクセスメモリにおけるデータ記憶メモリセル等が挙げられる。概して、順序回路は、セットアップ時間及びホールド時間要件を含む関連付けられたオーバーヘッドを有する。順序回路は、電源電圧を受け取る(ブロック504)。
【0030】
信号到着調整器は、入力クロック信号を受け取る(ブロック506)。信号到着調整器は、セットアップ/ホールドセレクタ制御信号の指標を受け取る(ブロック508)。様々な実施形態では、制御ユニットが、順序回路に対してセットアップ時間違反を引き起こす1つ以上の動作条件の組み合わせを識別する。順序回路がセットアップ時間制限されていることを制御信号の状態が示す場合(条件ブロック510:「セットアップ時間制限」)、信号到着調整器は、第2の待ち時間よりも大きい第1の待ち時間を伴う第1のタイミング経路を通る入力信号に基づいて、出力クロック信号を生成する(ブロック512)。例えば、信号到着調整器内の第1のタイミング経路の第1の待ち時間は、信号到着調整器を伴う第2のタイミング経路の第2の待ち時間よりも大きい。
【0031】
そうではなく、順序回路がホールド時間制限されていることを制御信号の状態が示す場合(条件ブロック510:「ホールド時間制限」)、信号到着調整器は、信号到着調整器の第1のタイミング経路の第1の待ち時間よりも相対的に小さい第2の待ち時間を伴う第2のタイミング経路を通る入力信号に基づいて、出力クロック信号を生成する(ブロック514)。信号到着調整器(又は調整器)は、出力クロック信号を順序回路に伝達する(ブロック516)。例えば、順序回路は、その入力クロック信号として出力クロック信号を受け取る。制御信号の受け取られた状態に起因して、調整器は、出力データ信号の順序回路における到着時間とクロック信号の順序回路における到着時間との間の差を時間閾値よりも小さくなるようにする。したがって、順序回路のセットアップ時間要件及びホールド時間要件の両方が満たされる。
【0032】
次に図6を参照すると、複数の動作条件にわたって順序回路によってデータを取り込むためのタイミング経路を有するコンピューティングシステム600の一般化されたブロック図が示されている。コンピューティングシステム600は、プロセッサ610及びメモリ630を含む。メモリコントローラ、バス又は通信ファブリック、1つ以上の位相ロックループ(phased locked loop、PLL)及び他のクロック生成回路、電力管理ユニット等のインターフェースは、説明を容易にするために示されていない。他の実施形態では、コンピューティングシステム600は、プロセッサ610と同じタイプ又は異なるタイプの他のプロセッサ、1つ以上の周辺デバイス、ネットワークインターフェース、及び、1つ以上の他のメモリデバイス等のうち1つ以上を含むことが理解される。いくつかの実施形態では、コンピューティングシステム600の機能は、システムオンチップ(system on chip、SoC)上に組み込まれている。他の実施形態では、コンピューティングシステム600の機能は、マザーボードに挿入された周辺カード上に組み込まれている。コンピューティングシステム600は、デスクトップコンピュータ、タブレットコンピュータ、ラップトップ、スマートフォン、スマートウォッチ、ゲームコンソール、パーソナルアシスタントデバイス等の様々なコンピューティングデバイスの何れかにおいて使用される。
【0033】
プロセッサ610は、回路等のハードウェアを含む。例えば、プロセッサ610は、順序回路622、信号到着調整器624(又は調整器624)及び制御ユニット626を利用する少なくとも1つの集積回路620を含む。制御ユニットは、セットアップ/ホールドセレクタ信号628を生成し、それらを調整器624に送る。集積回路620は、そのI/O境界において及びそのダイ内に、順序回路622及び対応する調整器624を含む。調整器624のうち1つ以上は、調整器120(図1の)及び調整器220(図2の)の回路及び機能を利用する。集積回路620は、任意の数の調整器を含むことが企図される。
【0034】
いくつかの実施形態では、調整器624の各々は、セットアップ/ホールドセレクタ信号628のそれぞれの信号を受け取る。他の実施形態では、調整器624のうち2つ以上が、セットアップ/ホールドセレクタ信号628の特定の信号を共有する。調整器624のうち1つ以上は、順序回路622のうち対応する順序回路のデータ信号経路上で使用される。他の調整器624は、順序回路622のうち対応する順序回路のクロック信号経路上で使用される。制御ユニット626は、動作条件の何れの組み合わせが順序回路622におけるデータ及びクロック信号の到着時間を時間閾値よりも大きく互いから逸脱させるかに基づいて、セットアップ/ホールドセレクタ信号628の値を判定する。先に説明したように、動作条件の例としては、動作温度、複数の電力性能状態(P状態)、動作電源電圧、及び、監視されるアクティビティレベル等が挙げられる。これらの条件のうち1つ以上の現在の値は、ダイ上の信号の待ち時間を変化させる。制御ユニット626によって生成されるセットアップ/ホールドセレクタ信号628の値に起因して、調整器624の各々は、順序回路622のうち対応する順序回路におけるデータ信号の到着時間とクロック信号の到着時間との間の差を時間閾値よりも小さくなるようにする。したがって、順序回路622のセットアップ時間要件及びホールド時間要件の両方が満たされる。
【0035】
様々な実施形態では、プロセッサ610は、1つ以上の処理ユニットを含む。いくつかの実施形態では、処理ユニットの各々は、汎用データ処理が可能な1つ以上のプロセッサコアと、関連するキャッシュメモリサブシステムと、を含む。そのような実施形態では、プロセッサ610は、中央処理ユニット(central processing unit、CPU)である。別の実施形態では、処理コアは計算ユニットであり、計算ユニットの各々は、複数の並列実行レーン及び関連付けされたデータストレージバッファを有する高度並列データマイクロアーキテクチャを有する。そのような実施形態では、プロセッサ610は、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(digital signal processor、DSP)等である。
【0036】
いくつかの実施形態では、メモリ630は、ハードディスクドライブ、ソリッドステートディスク、他のタイプのフラッシュメモリ、ポータブルソリッドステートドライブ、及び、テープドライブ等のうち1つ以上を含む。メモリ630は、オペレーティングシステム(operating system、OS)632と、コード634によって表される1つ以上のアプリケーションと、少なくともソースデータ636と、を記憶する。また、メモリ630は、コード634の特定のアプリケーションを実行する場合にプロセッサ610によって生成される中間結果データ及び最終結果データを記憶することが可能である。単一のオペレーティングシステム632並びにコード634及びソースデータ636の単一のインスタンスが示されているが、他の実施形態では、別の数のこれらのソフトウェア構成要素がメモリ630に記憶される。オペレーティングシステム632は、プロセッサ610のブートアップを開始し、タスクをハードウェア回路に割り当て、コンピューティングシステム600のリソースを管理し、1つ以上の仮想環境をホストするための命令を含む。
【0037】
プロセッサ610及びメモリ630の各々は、コンピューティングシステム600に含まれる任意の他のハードウェア構成要素と同様に、互いに通信するためのインターフェースユニットを含む。インターフェースユニットは、メモリ要求及びメモリ応答に対処するためのキューと、特定の通信プロトコルに基づいて、互いに通信するための制御回路と、を含む。通信プロトコルは、供給電圧レベル、動作供給電圧及び動作クロック周波数を判定する電力性能状態、データレート、1つ以上のバーストモード等の様々なパラメータを判定する。
【0038】
上述した実施形態のうち1つ以上は、ソフトウェアを含むことに留意されたい。そのような実施形態では、方法及び/又は機構を実施するプログラム命令は、コンピュータ可読媒体上に搬送又は記憶される。プログラム命令を記憶するように構成されている多数のタイプの媒体が利用可能であり、ハードディスク、フロッピー(登録商標)ディスク、CD-ROM、DVD、フラッシュメモリ、プログラマブルROM(Programmable ROM、PROM)、ランダムアクセスメモリ(random access memory、RAM)、及び、様々な他の形態の揮発性又は不揮発性記憶装置が挙げられる。一般的に言えば、コンピュータアクセス可能記憶媒体は、命令及び/又はデータをコンピュータに提供するために、使用中にコンピュータによってアクセス可能な任意の記憶媒体を含む。例えば、コンピュータアクセス可能記憶媒体としては、磁気又は光学媒体(例えば、ディスク(固定又は取り外し可能)、テープ、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、又はBlu-Ray(登録商標)等の記憶媒体)が挙げられる。記憶媒体としては、RAM(例えば、同期ダイナミックRAM(synchronous dynamic RAM、SDRAM)、ダブルデータレート(double data rate、DDR、DDR2、DDR3等)SDRAM、低電力DDR(low-power DDR、LPDDR2等)SDRAM、ラムバスDRAM(Rambus DRAM、RDRAM)、スタティックRAM(static RAM、SRAM)等)、ROM、フラッシュメモリ等の揮発性又は不揮発性メモリ媒体、ユニバーサルシリアルバス(Universal Serial Bus、USB)インターフェース等の周辺インターフェースを介してアクセス可能な不揮発性メモリ(例えば、フラッシュメモリ)等が更に挙げられる。記憶媒体としては、微小電気機械システム(microelectromechanical system、MEMS)、並びに、ネットワーク及び/又はワイヤレスリンク等の通信媒体を介してアクセス可能な記憶媒体が挙げられる。
【0039】
追加的に、様々な実施形態では、プログラム命令は、C等の高レベルプログラミング言語、又は、Verilog(登録商標)、VHDL等の設計言語(design language、HDL)、又は、GDSIIストリームフォーマット(GDSII)等のデータベースフォーマットでのハードウェア機能の動作レベル記述又はレジスタ転送レベル(register-transfer level、RTL)記述を含む。いくつかの場合では、記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成する合成ツールによって読み出される。ネットリストは、システムを含むハードウェアの機能も表すゲートのセットを含む。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために、配置及びルーティングされ得る。次に、マスクは、システムに対応する半導体回路又は回路を生成するために、様々な半導体製造ステップで使用され得る。代替的に、コンピュータアクセス可能記憶媒体上の命令は、必要に応じて、ネットリスト(合成ライブラリを有する若しくは有しない)又はデータセットである。追加的に、命令は、Cadence(登録商標)、EVE(登録商標)及びMentor Graphics(登録商標)等のベンダからのハードウェアベースのタイプのエミュレータによるエミュレーションのために利用される。
【0040】
上記の実施形態はかなり詳細に説明されているが、上記の開示が十分に理解されると、多数の変形及び修正が当業者には明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含すると解釈されることが意図されている。
図1
図2
図3
図4
図5
図6
【国際調査報告】