(57)【特許請求の範囲】
【請求項１】
ＤＲＡＭメモリと、
前記ＤＲＡＭメモリの選択された入力および出力に結合されたメモリコントローラを有する再構成可能なロジックデバイスと、
前記再構成可能なロジックデバイスおよび前記ＤＲＡＭメモリのセルフリフレッシュコマンド入力に結合され、前記ＤＲＡＭメモリと併置されたデータメンテナンスブロックとを備え、
前記データメンテナンスブロックは、前記再構成可能なロジックデバイスが再構成される間、前記セルフリフレッシュコマンド入力に安定した入力レベルを提供する、コンピュータシステム。
【請求項２】
前記データメンテナンスブロックは、前記ＤＲＡＭメモリを有するモジュール上に位置する、請求項１に記載のコンピュータシステム。
【請求項３】
前記モジュールは、ＤＩＭＭモジュールを有する、請求項２に記載のコンピュータシステム。
【請求項４】
前記データメンテナンスブロックは、シリアルプレゼンス検出ストレージデバイスをさらに有する、請求項１から３のいずれか一項に記載のコンピュータシステム。
【請求項５】
前記データメンテナンスブロックは、前記再構成可能なロジックデバイスの通信ポートにさらに結合される、請求項１から４のいずれか一項に記載のコンピュータシステム。
【請求項６】
前記通信ポートは、Ｉ２Ｃインターフェースを含む、請求項５に記載のコンピュータシステム。
【請求項７】
前記通信ポートは、前記データメンテナンスブロックにパワーアップ／ダウン要求およびデータ読み取り／書き込みアクセスを提供する、請求項５に記載のコンピュータシステム。
【請求項８】
前記ＤＲＡＭメモリは、ＤＤＲ３に準拠したメモリデバイスを有する、請求項１から７のいずれか一項に記載のコンピュータシステム。
【請求項９】
前記再構成可能なロジックデバイスは、ＦＰＧＡを有する、請求項１から８のいずれか一項に記載のコンピュータシステム。
【請求項１０】
前記データメンテナンスブロックは、前記再構成可能なロジックデバイスの再構成コントローラに結合されたメモリブロックを有する、請求項１から９のいずれか一項に記載のコンピュータシステム。
【請求項１１】
前記メモリブロックは、前記再構成可能なロジックデバイスの前記再構成コントローラから受信されたデータを保持する、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記データメンテナンスブロックは、ＣＰＬＤを有する、請求項１から１１のいずれか一項に記載のコンピュータシステム。
【請求項１３】
前記データメンテナンスブロックは、前記再構成可能なロジックデバイスが再構成される間、前記ＤＲＡＭメモリをセルフリフレッシュモードに保持する、請求項１から１２のいずれか一項に記載のコンピュータシステム。
【請求項１４】
前記データメンテナンスブロックは、前記再構成可能なロジックデバイスおよび前記メモリコントローラが前記コンピュータシステムから除去され、第２の再構成可能なロジックデバイスおよびメモリコントローラと交換される間、前記ＤＲＡＭメモリのデータを維持する、請求項１から１３のいずれか一項に記載のコンピュータシステム。
【請求項１５】
メモリコントローラを有する再構成可能なデバイスに関連するＤＲＡＭメモリのコンテンツを保存する方法であって、
前記ＤＲＡＭメモリと併置されたデータメンテナンスブロックを提供する段階であって、前記データメンテナンスブロックは、前記再構成可能なデバイスに結合される、段階と、
前記ＤＲＡＭメモリのセルフリフレッシュコマンド入力に前記データメンテナンスブロックを結合する段階と、
前記データメンテナンスブロックに前記再構成可能なデバイスから受信されたデータを格納する段階と、
前記再構成可能なデバイスが再構成される間、前記セルフリフレッシュコマンド入力への安定した入力レベルを維持する段階と
を備える、方法。
【請求項１６】
前記ＤＲＡＭメモリを有するモジュール上に前記データメンテナンスブロックを設置する段階をさらに備える、請求項１５に記載の方法。
【請求項１７】
前記モジュールは、ＤＩＭＭモジュールを含む、請求項１６に記載の方法。
【請求項１８】
前記データメンテナンスブロックと関連するシリアルプレゼンス検出ストレージデバイスも提供する段階をさらに備える、請求項１５から１７のいずれか一項に記載の方法。
【請求項１９】
前記再構成可能なデバイスの通信ポートにも前記データメンテナンスブロックを結合する段階をさらに備える、請求項１５から１８のいずれか一項に記載の方法。
【請求項２０】
前記通信ポートは、Ｉ２Ｃインターフェースを含む、請求項１９に記載の方法。
【請求項２１】
前記通信ポートは、前記データメンテナンスブロックにパワーアップ／ダウン要求およびデータ読み取り／書き込みアクセスを提供する、請求項１９に記載の方法。
【請求項２２】
前記再構成可能なデバイスは、ＦＰＧＡを有する、請求項１５から２１のいずれか一項に記載の方法。
【請求項２３】
前記データメンテナンスブロックは、ＣＰＬＤを有する、請求項１５から２２のいずれか一項に記載の方法。
【請求項２４】
前記再構成可能なデバイスが再構成される間、前記データメンテナンスブロックで、前記ＤＲＡＭメモリをセルフリフレッシュモードに保持する段階をさらに備える、請求項１５から２３のいずれか一項に記載の方法。
【請求項２５】
前記再構成可能なデバイスおよび前記メモリコントローラが、これらを備えるコンピュータシステムから除去され、第２の再構成可能なデバイスおよびメモリコントローラと交換される間、前記ＤＲＡＭメモリのデータを維持する段階をさらに備える、請求項１５から２４のいずれか一項に記載の方法。
【請求項２６】
多数の処理要素、メモリサブシステム・クエリコントローラおよび再構成可能なメモリコントローラを有する再構成可能なプロセッサと、
複数のメモリストレージ素子および関連するサブシステム状態情報ブロックを有するメモリサブシステムと
を備えるコンピュータシステムであって、
前記再構成可能なメモリコントローラは、前記複数のメモリストレージ素子に結合され、前記メモリサブシステム・クエリコントローラは、前記サブシステム状態情報ブロックおよび前記再構成可能なメモリコントローラに結合され、サブシステム状態情報ブロックは、前記再構成可能なメモリコントローラに前記メモリサブシステムの現在の状態を提供する、
コンピュータシステム。
【請求項２７】
前記再構成可能なプロセッサは、ＦＰＧＡを有する、請求項２６に記載のコンピュータシステム。
【請求項２８】
前記複数のメモリストレージ素子は、永続性メモリを有する、請求項２６または２７に記載のコンピュータシステム。
【請求項２９】
前記永続性メモリは、ＮＡＮＤフラッシュ、ＰＣＭ、ＦｅＲＡＭおよび３Ｄ  Ｘｐｏｉｎｔメモリのうちの少なくとも１つを含む、請求項２８に記載のコンピュータシステム。
【請求項３０】
前記メモリサブシステムの前記現在の状態が、前記メモリサブシステムの初期化状態または準備状態、基底および制限アドレスならびにテーブル・ルックアサイド・バッファ・マッピング・コンテンツのうちの少なくとも１つを有する、請求項２６から２９のいずれか一項に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連特許出願の相互参照］
本願は、２０１５年１０月６日に発行された、「ＤＲＡＭメモリコントローラを用いて再構成可能なデバイスを再プログラミングする場合にＤＲＡＭデータを保持するシステムおよび方法」の米国特許第９，１５３，３１１号に対する一部継続出願である、２０１５年８月２４日に出願された「メモリモジュールまたはサブシステムと併置されたデータメンテナンスブロックを組み込んだＤＲＡＭメモリコントローラを用いて再構成可能なデバイスを再プログラミングする場合にＤＲＡＭデータを保持するシステムおよび方法」に対する米国特許出願第１４／８３４，２７３号の優先権を主張し、その開示は、この参照によってその全体が本明細書に組み込まれる。
【背景技術】
【０００２】
本発明は、概ね、再構成可能なコンピューティングシステムの分野に関する。より具体的には、本発明は、メモリモジュールまたはサブシステムと併置されたデータメンテナンスブロックを組み込んだＤＲＡＭメモリコントローラを用いて再構成可能なデバイスを再プログラミングする場合にダイナミックランダムアクセスメモリ（ＤＲＡＭ）データを保持する、システムおよび方法に関する。本発明の実施形態のさらなる代替的な実施形態において、コントローラにより必要とされるメモリの現在の状態に関してコントローラに通知する再構成可能なメモリコントローラに結合される通信ポートを利用する永続性メモリに実装されたメモリサブシステムが提供される。
【０００３】
今日のプログラマブルロジック設計の大部分は、メモリサブシステムの中心にＤＲＡＭベースのメモリソリューションを含む。今日のＤＲＡＭデバイスは、前世代のものよりも著しく高速であるが、ますます複雑でリソースに集中するメモリコントローラを要求する代償を払っている。一例は、読み取りおよび書き込み較正ロジックを必要とするダブルデータレート３および４（ＤＤＲ３およびＤＤＲ４）のコントローラである。この追加ロジックは、以前のバージョンのＤＲＡＭ（例えば、ＤＤＲおよびＤＤＲ２）を用いるときには必要ではなかった。結果として、企業は、最新のＤＲＡＭ技術を使用して独自開発のＤＲＡＭコントローラを設計する場合、相当な設計コストおよび増大したプロジェクト完了時間を負担せざるを得ない。
【０００４】
設計にＤＲＡＭベースのメモリソリューションを含める場合、設計エンジニアリングコストおよび検証時間を軽減すべく、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）設計者が、販売業者により提供されるメモリコントローラのｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ（ＩＰ）を実装することは極めてありふれたことである。例えば、「Ａｌｌａｎ，Ｇｒａｈａｍ；"ＤＤＲ  ＩＰ  Ｉｎｔｅｇｒａｔｉｏｎ：Ｈｏｗ  ｔｏ  Ａｖｏｉｄ  Ｌａｎｄｍｉｎｅｓ  ｉｎ  ｔｈｉｓ  Ｑｕｉｃｋｌｙ  Ｃｈａｎｇｉｎｇ  Ｌａｎｄｓｃａｐｅ"；Ｃｈｉｐ  Ｄｅｓｉｇｎ，Ｊｕｎｅ／Ｊｕｌｙ  ２００７；ｐｐ  ２０−２２」および「Ｗｉｌｓｏｎ，Ｒｏｎ；"ＤＲＡＭ  Ｃｏｎｔｒｏｌｌｅｒｓ  ｆｏｒ  Ｓｙｓｔｅｍ  Ｄｅｓｉｇｎｅｒｓ"；Ａｌｔｅｒａ  Ｃｏｒｐｏｒａｔｉｏｎ  Ａｒｔｉｃｌｅｓ，２０１２」を参照されたい。ＦＰＧＡ設計者には、デバイス製造者のＩＰ設計を選択する傾向がある。それは、証明され、試験されており、著しく軽減された設計コストおよびプロジェクト完了時間という途方もない利益があるからである。多くの場合、プログラマブルデバイス内で専用回路を利用することには、コントローラの性能を向上させるという追加的利益が存在するが、このことは、コントローラをゼロから設計する場合には、ただちに明らかではない。工場から供給されるＩＰメモリコントローラを使用することの否定的側面は、動作特性を変更することを試みる場合に、柔軟性があまりないことである。ＦＰＧＡがライブアプリケーションにおいて再プログラミングされ、メモリコントローラが、ＦＰＧＡデバイスとＤＲＡＭとの間の全ての入力および出力（Ｉ／Ｏ）をトライステートにする場合には、重大な問題が再構成可能なコンピューティングにおいて生じる。その結果は、メモリサブシステムにおける破損データである。従って、動的に再構成可能なプロセッサは、特にデータベースアプリケーションまたはコンテキストスイッチ処理について、実行可能なコンピューティングの選択肢としては除外されている。その理由は、ＤＲＡＭデータの全コンテンツをコピーし、システムの別の部分にそれを保存して、プロセッサを再構成し、次いで最終的にデータを取得してＤＲＡＭ内でそれを復元するのにかかる時間があまりに過大であることである。
【０００５】
現状技術の再構成可能なコンピューティングシステムは通常、当該システムが構成された後にリセット条件から動作を開始し、非永続性（または揮発性）メモリサブシステムを初期化するであろう。しかしながら、永続性メモリサブシステムを強化する大きな開発が、目下進行中である。例えば、２００９年６月のＩＳＣＡにおけるＬｅｅ，  Ｂ．Ｃ．らによる「スケーラブルＤＲＡＭの代替手段としての相変化メモリの設計」を参照されたい。永続性メモリは、メモリコントローラを再構成またはホットスワップする場合に前に処理されたデータを維持する利益がある。
【０００６】
再構成後、特に、プロセッサが再構成間で同じデータセットを用いて必要とする可能性があるコンテキスト切り替え動作において、メモリサブシステムがメモリの初期化を開始する前に、システムのプロセッサ部がメモリサブシステムの現在の状態を知ることは、有益であろう。
【発明の概要】
【０００７】
再構成可能なデバイス、例えば、ＤＲＡＭメモリコントローラを有するＦＰＧＡが再構成、再プログラミングされ、そうでなければパワーダウンされる場合に、ＤＲＡＭメモリコンテンツを保存するシステムおよび方法が、本明細書において開示される。ＦＰＧＡが再プログラミングされる場合に、ＤＲＡＭ入力は、セルフリフレッシュコマンド信号を含んでトライステートされる。リセットまたはクロックイネーブル入力についての不確定状態は、ＤＲＡＭデータの破損を引き起こす。
【０００８】
本発明のシステムおよび方法によれば、ＦＰＧＡベースのＤＲＡＭコントローラは、内部または外部に位置するデータメンテナンスブロックと連携して使用される。内部または外部の位置としては、関連するメモリモジュールに併置されることを含む。動作において、ＦＰＧＡは、大部分のＤＲＡＭ入力／出力（Ｉ／Ｏ）を駆動し、データメンテナンスブロックは、セルフリフレッシュコマンド入力を駆動する。たとえＦＰＧＡが再構成し、ＤＲＡＭ入力の大部分がトライステートであっても、データメンテナンスブロックが、セルフリフレッシュコマンド入力に安定した入力レベルを提供する。
【０００９】
機能的には、データメンテナンスブロックは、メモリコントローラを含まず、従って、セルフリフレッシュコマンド、特にＤＲＡＭセルフリフレッシュモードをいつ、どのように開始するかについて判断基準を有しない。また、本明細書において開示されるように、ＦＰＧＡにおけるメモリコントローラが、データメンテナンスブロックを介してセルフリフレッシュコマンドをＤＲＡＭに送信することを可能にする、通信ポートは、ＦＰＧＡとデータメンテナンスブロックとの間に実装される。具体的には、これは、ＤＲＡＭをいつセルフリフレッシュモードにし、メモリにデータをいつ保存するかを含む。
【００１０】
このとき、ＤＲＡＭデータは、データメンテナンスブロックにより開始されたセルフリフレッシュモードによりＦＰＧＡ再構成全体に保存されているが、ＤＲＡＭコントローラはここで、書き込み／読み取りタイミングウィンドウを再確立しなければならず、較正／レベリング処理中に必要とされる、保証済み書き込みデータおよび読み取りデータで特定のアドレスコンテンツを破損することになる。結果として、ＤＲＡＭ単独のセルフリフレッシュ機能を用いても、再構成中のデータの完全性を維持するために十分ではない。（較正／平準化中に使用されるメモリアドレスが知られており、通常、コントローラＩＰ仕様書において詳述されていることに留意されたい）。
【００１１】
これを達成すべく、本システムは、「再構成要求」をＤＲＡＭコントローラに送信する。受信されると、ＦＰＧＡ販売業者により提供されるメモリコントローラＩＰの周囲のグルーロジックは、読み取り要求を、較正／レベリング処理中に使用されるアドレス位置を指定するコントローラに対して発行する。データがＤＲＡＭから取得されると、通信ポートを介してＦＰＧＡデバイスから、データメンテナンスブロック自体またはシステム内の別の位置に存在するストレージ空間のブロックに送信される。
【００１２】
処理が完了すると、データメンテナンスブロックは、セルフリフレッシュコマンドをＤＲＡＭに送り返し、アクノレッジ信号をＦＰＧＡに再度送信する。データメンテナンスブロックは、これをＦＰＧＡ初期パワーアップ条件に対するＦＰＧＡ再構成条件として認識し、この状態を後に使用するために保持する。
【００１３】
ＦＰＧＡが再プログラミングされると、ＤＲＡＭコントローラは、較正設定を再確立し、ＤＲＡＭ内のいくつかの特定のアドレスは、保証済み書き込み／読み取りデータのパターンで破損される。このとき、販売業者のメモリコントローラＩＰの周囲のグルーロジックには、データメンテナンスブロックにより（通信ポートを介して）、初期パワーアップ状態または再構成状態のいずれかから起動されたことを通知される。再構成条件が検出されると、次のＤＭＡ要求を処理する前に、コントローラは、格納済みＤＲＡＭデータをデータメンテナンスブロックから（再び通信ポートを介して）取得し、較正／レベリング処理中に破損した特定のアドレス位置に再度書き込む。完了すると、ＦＰＧＡにおけるＤＲＡＭコントローラは、従来の様式でシステムメモリ要求をサービス提供することを自由に開始する。
【００１４】
データメンテナンスブロックは、ＤＲＡＭをセルフリフレッシュモードに保持するように機能するので、ＦＰＧＡは、ＤＲＡＭを必要としない可能性がある、極めてアプリケーション固有のコンピューテイングジョブを実行すべく自由に再プログラミングされることが、本発明のシステムおよび方法と関連して提供される利益のうちの１つである。これは、ＤＲＡＭコントローラを作り出すべく、すでに確保されている全てのデバイスリソースが、異なる機能に今や自由に使用されることを意味する。
【００１５】
さらに、ＤＲＡＭにすでに格納されたデータは、今や保存され、それを必要とする次のアプリケーションにより使用するために利用可能であるので、コンピュータシステム全体は、本発明から利益を得る。これは、一連の特定のデータ操作タスクを必要とするコンピューティングソリューションが今や、小さな再構成可能なプロセッサにおいて実装される能力を有するという事実をもたらす。各アプリケーションは、意図する機能を実行し、データは、ＤＲＡＭを介して再構成期間同士の間にアプリケーションからアプリケーションに渡される。
【００１６】
重要なこととして、ＤＲＡＭデータコンテンツは、たとえ再構成可能なデバイスがパワーダウンされても保持されることにも留意されたい。これは、例えば、本発明のシステムおよび方法がモバイルデバイスにおいて実装される場合に特に重要である。
【００１７】
本明細書に開示される本発明の特定の実施形態において、システムおよび方法は、ソフトウェアの介在の必要なく、ハードウェアにおいて再構成可能なコンピューティング環境で用いるために提供される。
【００１８】
メモリサブシステム内のメモリサブシステムの現在の状態を更新すること、および維持することのみに使用される通信ポートを有するロジックおよび／またはメモリブロックを組み込むことにより、再構成時に、プロセッサは、メモリサブシステムにクエリすることができ、メモリサブシステムへのアクセスに関する進め方を決定するために必要とされる情報を受信することができるであろう。そのような情報は、メモリサブシステムの初期化または準備状態、基底および限界アドレス、テーブル・ルックアサイド・バッファ（ＴＬＢ）マッピング・コンテンツなどを含み得る。この情報は、メモリコントローラによりリアルタイムに通信ポートに送出され、メモリサブシステムに格納され得、またはプロセッサが再構成される直前にのみ使用され得る。
【００１９】
このシステムおよび方法の主要な利益は、永続性メモリサブシステムにおいて、保持される情報が、再構成またはホットスワップ動作後、メモリコントローラに迅速に戻され得ることである。例えば、フラッシュおよび相変化メモリ（ＰＣＭ）などの新しいメモリ技術の進歩により、増え続けるシステム起動時のロード時間に起因して、データ永続をいっそう重要にする複数のテラバイトレベルでメモリサブシステムを作り出すことができる。このタイプの永続性メモリサブシステムを再構成可能なコンピューティングシステムへの組み込むことは、メモリサブシステム状態を取得し、次に再構成後の全体の起動時間を短縮するためのメモリサブシステムに、高速かつ密な結合ポートを設けることにより可能にされる。
【００２０】
ＤＲＡＭメモリと、上記ＤＲＡＭメモリの選択された入力および出力に結合されたメモリコントローラを有する再構成可能なロジックデバイスと、ＤＲＡＭメモリと併置され、ＤＲＡＭメモリの再構成可能なロジックデバイスおよびセルフリフレッシュコマンド入力に結合されたデータメンテナンスブロックを備えるコンピュータシステムが、本明細書において具体的に開示される。再構成可能なロジックデバイスが再構成される間、データメンテナンスブロックは、セルフリフレッシュコマンド入力に安定した入力レベルを提供するように動作する。
【００２１】
また、メモリコントローラを有する再構成可能なデバイスに関連するＤＲＡＭメモリのコンテンツを保存する方法が本明細書で特に開示され、方法は、ＤＲＡＭメモリと併置されたデータメンテナンスブロックを提供する段階であって、データメンテナンスブロックが再構成可能なデバイスに結合される、段階と、ＤＲＡＭメモリのセルフリフレッシュコマンド入力にデータメンテナンスブロックを結合する段階と、データメンテナンスブロックに再構成可能なデバイスから受信されたデータを格納する段階と、再構成可能なデバイスが再構成される間、セルフリフレッシュコマンド入力への安定した入力レベルを維持する段階とを備える。
【００２２】
さらにまた、本明細書には、複数の処理要素、メモリサブシステム・クエリコントローラおよび再構成可能なメモリコントローラを含む再構成可能なプロセッサと、複数のメモリストレージ素子および関連するサブシステム状態情報ブロックを含むメモリサブシステムとを備えるコンピュータシステムであって、再構成可能なメモリコントローラは、複数のメモリストレージ素子に結合され、メモリサブシステム・クエリコントローラは、サブシステム状態情報ブロックおよび再構成可能なメモリコントローラに結合され、サブシステム状態情報ブロックは、再構成可能なメモリコントローラにメモリサブシステムの現在の状態を提供するように動作する、コンピュータシステムが特に開示される。
【図面の簡単な説明】
【００２３】
好ましい実施形態の以下の説明を、添付の図面と関連して参照することにより、本発明の上述および他の特徴および目的、ならびにそれを実現する方式がより明らかになり、発明それ自体も最も良く理解されるであろう。
【００２４】
【図１】ロジックデバイスが再構成される場合に、ＤＲＡＭデータを保持する本発明のデータメンテナンスブロックを図示する、関連するＤＲＡＭメモリで再構成可能なＤＲＡＭコントローラを有する再構成可能なロジックデバイスを備えるコンピュータサブシステムの機能ブロック図である。
【００２５】
【図２】再構成可能なアプリケーションロジックに関連する本発明のシステムおよび方法による、データメンテナンスブロックおよびＤＲＡＭメモリの対を組み込んだ、再構成可能なコンピュータシステムのブロック図である。
【００２６】
【図３】関連するＤＲＡＭメモリで再構成可能なＤＲＡＭコントローラを有する再構成可能なロジックデバイスを備えるコンピュータサブシステムの代替的な実施形態の機能ブロック図であり、ＳＤＲＡＭメモリサブアセンブリに位置している本発明のデータメンテナンスブロックを図示する。
【００２７】
【図４】本発明の原理によるコンピュータサブシステムの別の可能な実施形態の機能ブロック図であり、ここでは、再構成可能なプロセッサが、メモリサブシステムと関連するサブシステム状態情報ブロックとインターフェースをとるためのメモリサブシステム・クエリコントローラを備える。
【発明を実施するための形態】
【００２８】
ここで図１を参照すると、ＤＲＡＭメモリ１０２および再構成可能なロジックデバイス１０４を備えるコンピュータサブシステム１００の機能ブロック図が示される。本発明の代表的な実施形態において、再構成可能なロジックデバイス１０４は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を有し得る。しかしながら、再構成可能なロジックデバイス１０４は、例えば、部分的再構成能力を有する再構成可能なロジックデバイス、またはチップ内に含まれる再プログラミング可能領域を有する特定用途向け集積回路（ＡＳＩＣ）デバイス等の、ハイブリッドデバイスを含むありとあらゆる形態の再構成可能なロジックデバイスを有し得ることに留意されたい。
【００２９】
また、ロジックデバイス１０４がコンピュータサブシステム１００の動作中に再構成される場合に、ＤＲＡＭメモリ１０２のデータを保持する、本発明によるデータメンテナンスブロック１０６が図示される。本発明の代表的な実施形態において、データメンテナンスブロック１０６は、好都合なことに、複合プログラマブルロジックデバイス（ＣＰＬＤ）もしくは他の別個の集積回路デバイスとして提供され、または代替的な実施形態において、再構成可能なロジックデバイス１０４を備えるＦＰＧＡの一部として提供され得る。
【００３０】
図示されるように、再構成可能なロジックデバイス１０４は、再構成要求コマンドを再構成コントローラ１１０に対して発行し、返答として再構成要求アクノレッジ（Ａｃｋ）信号を受信する、一次システムロジックブロック１０８を有する。再構成コントローラ１１０は、次に、データメンテナンスブロック１０６のコマンドデコードブロック１１２に対してコマンドを発行し、引き換えにアクノレッジ（Ａｃｋ）信号を受信する。データメンテナンスブロック１０６のブロックＲＡＭ部分１１４は、再構成コントローラ１１０とデータを交換する。
【００３１】
再構成コントローラ１１０は、列アドレス選択（ＲＡＳ＃）信号、行アドレス選択（ＣＡＳ＃）信号、および書き込みイネーブル（ＷＥ＃）信号をメモリコントローラおよび物理インターフェースブロック１１８から受信すべく結合された、リフレッシュタイマ１１６からの入力を受信する。また、メモリコントローラおよび物理インターフェースブロック１１８は、ＤＲＡＭメモリ１０２に、ＲＡＳ＃信号、ＣＡＳ＃信号、およびＷＥ＃信号だけでなく、クロック（ＣＫ、ＣＫ＃）信号、チップ選択（ＣＳ＃）信号、アドレス（Ａ）信号、バンクアドレス（ＢＡ）信号、データマスク（ＤＭ）信号、およびオンダイターミネーション（ＯＤＴ）入力信号も提供する。示されるように、双方向データ（ＤＱ）入力／出力（Ｉ／Ｏ）信号および差動データストローブ信号（ＤＱＳ／ＤＱＳ＃）は、ＤＲＡＭメモリ１０２、メモリコントローラ、および物理インターフェースブロック１１８の間で交換される。データメンテナンスブロック１０６は、ＤＲＡＭメモリ１０２に結合され、リセット（ＲＥＳＥＴ＃）信号およびクロックイネーブル（ＣＫＥ＃）信号をＤＲＡＭメモリ１０２に供給する。
【００３２】
示されるように、メモリコントローラおよび物理インターフェースブロック１１８は、コントローラインターフェース１２０からの要求に応答して、ＤＲＡＭメモリ１０２から読み取られたデータ（Ｒｄデータ）を提供し、ＤＲＡＭメモリ１０２（Ｗｒデータ）に書き込まれるデータを受信する。また、図示されるように、ソースロジックブロック１２２が、コントローラインターフェース１２０、および再構成コントローラ１１０に結合される。ソースロジックブロック１２２は、一次システムロジックブロック１０８からのデータ要求を受信し、ＤＲＡＭメモリ１０２から読み取られたデータを提供しつつ、ＤＲＡＭメモリ１０２に書き込まれるデータを受信する。
【００３３】
数字１のオペレーションにより示されるように、再構成要求は、再構成コントローラ１１０で、再構成可能なロジックデバイス１０４の一次システムロジックブロック１０８から受信される。再構成可能なロジックデバイス１０４が再構成された後、再構成コントローラ１１０は、較正／レベリングシーケンスにおいて使用されるメモリアドレスに対してダイレクトメモリアクセス（ＤＭＡ）読み取り要求を開始する。返されたデータは、再構成コントローラ１１０におけるブロックＲＡＭの小さいセクション（図示せず）に格納される。
【００３４】
数字２のオペレーションにより示されるように、再構成コントローラ１１０は、そのブロックＲＡＭコンテンツを、データメンテナンスブロック１０６に位置するブロックＲＡＭ１１４の別の小さいセクションに格納する。完了すると、データメンテナンスブロック１０６は、そのコマンドデコードブロック１１２からのアクノレッジ信号をアサートする。数字３により示されるオペレーションで、再構成コントローラ１１０は、リフレッシュタイマ１１６からのリフレッシュコマンドを検出し、リフレッシュサイクルタイム（ｔＲＦｃ）を待ち、データメンテナンスブロック１０６に、ＣＫＥをＤＲＡＭメモリ１０２にデアサートするよう命令する。
【００３５】
再構成コントローラ１１０は、数字４により示されるオペレーションにおいて、再構成要求Ａｃｋ信号をアサートし、再構成可能なロジックデバイス１０４は、再構成される。数字５のオペレーションにより示されるように、再構成コントローラ１１０は、再構成後の条件（Ａｃｋ＝Ｈｉｇｈ）を認識し、メモリコントローラおよび物理インターフェース１１８をリセットに保持し、データメンテナンスブロック１０６に、ＣＫＥをＤＲＡＭメモリ１０２にアサートするよう命令する。次に、メモリコントローラおよび物理インターフェース１１８は、リセットから解放され、ＤＲＡＭメモリ１０２を初期化する。
【００３６】
数字６により示されるオペレーションで、再構成コントローラ１１０は、データメンテナンスブロック１０６のブロックＲＡＭ１１４のコンテンツを取得し、それを再構成コントローラ１１０におけるブロックＲＡＭの小さいセクション（図示せず）に格納する。再構成コントローラ１１０は、メモリコントローラ、物理インターフェース１１８、およびＤＲＡＭメモリ１０２の初期化が数字７により示されるオペレーションで完了したことを検出し、ＤＭＡ書き込み要求を開始し、較正／レベリングシーケンス中に再構成前に読み取られたデータ値で破損されたメモリコンテンツを復元する。数字８により示されるオペレーションで、メモリコントローラおよび物理インターフェース１１８のグルーロジック（再構成コントローラ１１０、リフレッシュタイマ１１６、コントローラインターフェース１２０、およびソースロジックブロック１２２を含む）は、従来の様式で一次システムロジック１０８とのＤＭＡアクティビティを再開する。
【００３７】
上述のオペレーション上の段階のうちいくつかは、実際には、実質的に同時に動作し得ることに留意されたい。さらに、機能上正確であるが、列挙されるオペレーション上の段階のうちのいくつかは、オペレーション全体に論理的連続性を提供し、処理の理解を容易にすべく、順序を変えて記載されている。本発明のシステムおよび方法の特定の実装において、開示されるオペレーション上の段階の１または複数は、ハードウェア全体の効率を向上させるべく、都合の良いように順序を変えてもよい。さらに、所望され得るシリアルものとして説明されたものに加えて、アクティブなアプリケーションへの比較的シームレスな統合を容易にするのに役立ち得る段階が、提供され得る。
【００３８】
ここで図２をさらに参照すると、再構成可能なコンピュータシステム２００のブロック図は、再構成可能なアプリケーションロジック２０２に関連する本発明のシステムおよび方法による、データメンテナンスブロック１０６およびＤＲＡＭメモリ１０２の対を組み込んで図示される。再構成可能なコンピュータシステム２００のこの代表的な実施形態において、ＤＲＡＭメモリ１０２は、３２ＧＢエラー訂正コード（ＥＣＣ）のシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）の形態で図示される。
【００３９】
再構成可能なアプリケーションロジック２０２は、上記の図に関してすでに図示および説明されたデータメンテナンスブロック１０６およびＤＲＡＭメモリ１０２に結合され、また、複数の８ＧＢ  ＥＣＣのスタティックランダムアクセスメモリ（ＳＲＡＭ）のメモリモジュール２０４に結合されるものとして図示される。また、示されるように、再構成可能なアプリケーションロジック２０２は、ＳＮＡＰ（商標）および複数のシリアルギガビットメディアインディペンデントインターフェース（ＳＧＭＩＩ）のリンクを有するネットワークプロセッサブロック２０６に結合される。再構成可能なアプリケーションブロック２０２におけるＤＲＡＭメモリ１０２のコントローラは、ＤＲＡＭメモリ１０２のデータコンテンツがデータメンテナンスブロック１０６内に維持されるときに、次の再構成において省略され得ることに留意されたい。
【００４０】
ＳＮＡＰおよびネットワークプロセッサブロック２０６は、マイクロプロセッササブシステム２１０と、１ＧＢピアＳＤＲＡＭシステムメモリ２０８への等しい読み取り／書き込みアクセスを共有する。また、図示されるように、マイクロプロセッササブシステム２１０は、ＳＧＭＩＩリンク、ならびにシリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）インターフェースの対を備える。
【００４１】
加えて、ここで図３を参照すると、関連するＤＲＡＭメモリ１０２と共に再構成可能なＤＲＡＭコントローラを有する再構成可能なロジックデバイス１０４を備えるコンピュータサブシステム３００の代替的な実施形態の機能ブロック図が示され、ＳＤＲＡＭメモリサブアセンブリ上に併置された本発明のデータメンテナンスブロック１０６を図示する。図示されるように、ＤＲＡＭメモリ１０２は、関連部分において、シリアルプレゼンス検出（ＳＰＤ）ＥＥＰＲＯＭ２０３および複数の揮発性メモリストレージ素子３０４を備える。ＤＲＡＭメモリ１０２はまた、アドレス入力ＳＡＯ，  ＳＡ１およびＳＡ２を受信すべく結合されるように図示される。
【００４２】
コンピュータサブシステム３００のこの特定の実施形態において、再構成コントローラ３１０は、上記の図に関して説明および図示された再構成コントローラ１１０と機能的に同じであるが、再構成コントローラ３１０とデータメンテナンスブロック１０６との間の通信のためにシリアルデータライン（ＳＤＡ）およびシリアルクロックライン（ＳＣＬ）を含む集積回路間（Ｉ２Ｃ）インターフェースをも備える。図示されたコンピュータサブシステム３００の他の態様に関して、上記の図に関してすでに開示および説明されたものと同様な構成が、同様に番号付けされており、それについての上記の説明は、ここでは十分とする。
【００４３】
数字１のオペレーションにより示されるように、再構成要求が受信され、再構成コントローラ３１０は、再構成可能なロジックデバイス１０４が再構成された後に較正／レベリングシーケンスにおいて使用されるメモリアドレスに対してＤＭＡ読み取り要求を開始する。数字２のオペレーションによりさらに示されるように、返されたデータは、Ｉ２Ｃバスを経由してＤＩＭＭモジュールのＤＲＡＭメモリ１０２に送信され、データメンテナンスブロック１０６またはＳＰＤ  ＥＥＰＲＯＭ３０２の未使用部分に格納される。数字３から８により示されるオペレーションに関して、これらのオペレーションは、本質的に、図１のコンピュータサブシステム１００の実施形態と関連して前に説明されたものと同様である。
【００４４】
もう一度、上述のオペレーション上の段階のうちあるものは、実際には、実質的に同時に動作し得ることに留意されたい。さらに、機能上正確であるが、列挙されるオペレーション上の段階のうちのいくつかは、オペレーション全体の論理的連続性を提供し、処理の理解を容易にすべく、順序を変えて記載されている。本発明のシステムおよび方法の特定の実装において、開示されるオペレーション上の段階の１または複数は、ハードウェア全体の効率を向上させるべく、都合の良いように順序を変えてもよい。さらに、所望であるものとして説明されたものに加えて、アクティブなアプリケーションへの比較的シームレスな統合を容易にするのに役立ち得る段階が、提供され得る。
【００４５】
本発明の実施形態のこの代替的な実施形態において、再構成可能なロジックデバイス１０４は、図１の実施形態と同様に、ＦＰＧＡを備える。しかしながら、再構成可能なロジックデバイス１０４は、例えば、部分的再構成能力を有する再構成可能なロジックデバイス、またはチップ内に含まれる再プログラミング可能領域を有するＡＳＩＣデバイス等の、ハイブリッドデバイスを含むあらゆる形態の再構成可能なロジックデバイスを再び備え得ることに留意されたい。
【００４６】
従来どおり、本発明によるデータメンテナンスブロック１０６は、ロジックデバイス１０４がコンピュータサブシステム３００の動作中に再構成される場合に、ＤＲＡＭメモリ１０２のデータを保持するように機能する。本発明の代表的な実施形態において、データメンテナンスブロック１０６は、好都合なことに、ストレージシリコンそれ自体の一部としてであろうと、すでに積層されたメモリデバイスであるものに積層されたダイとしてであろうと、ＤＲＡＭメモリ１０２（例えば、ＳＤＲＡＭ  ＤＦＭＭモジュール）上に併置されるように設けられ得る。
【００４７】
動作において、メモリコントローラ１１８は、データメンテナンスブロック１０６にパワーアップ要求およびデータを提示し、データメンテナンスブロック１０６からパワーダウン要求を提示すべく、通信ポートとしてＩ２Ｃバスを利用することができる。これにより、データメンテナンスブロックに対する別個のピンまたは配線セットの必要性が、取り除かれる。実用上の問題として、ＦＰＧＡメモリコントローラＩＰは通常、ＤＩＭＭモジュールからのＳＰＤ情報を利用せずに、設計者は、メモリタイミングおよびトポロジーを前もって決定し、当該単一の仕様に対してコントローラＩＰを構成しなければならない。Ｉ２Ｃバスがコントローラにより使用される場合には、データメンテナンスブロック１０６のスニファー回路が、Ｉ２Ｃバストラフィックをモニタリングし、再構成プロセスはいつ用意されたかについての決定を可能にすべく使用され得る。この点について、データメンテナンスブロック１０６は、そのコンテンツの可能性のある破損を防止すべく、ＥＥＰＲＯＭにより認識できない偽のＩ２Ｃプロトコルを使用する可能性がある。
【００４８】
メモリコントローラ１１８とＤＦＭＭ  ＤＲＡＭメモリ１０２との間の通信のために既存のＩ２Ｃシリアルバスを使用することにより、データメンテナンスブロック１０６は、メモリ初期化時にＳＰＤ  ＥＥＰＲＯＭ３０２からのシリアルプレゼンス検出コンテンツを制御する追加タスクを有する。その上、ＤＲＡＭメモリ１０２にデータメンテナンスブロック１０６を組み込むことにより、ＳＤＲＡＭのメモリ永続性は、再構成コントローラ３１０を備えた異なる再構成可能なロジックデバイス１０４で、再構成コントローラ３１０を含む再構成可能なロジックデバイス１０４を「ホットスワップする」ときに維持され得る。
【００４９】
加えて、ここで図４を参照すると、本発明の原理によるコンピュータサブシステム４００の別の可能な実施形態の機能ブロック図が示され、再構成可能なプロセッサ４０２が、メモリサブシステム４０４と関連するサブシステム状態情報ブロック４１０とインターフェースをとるためのメモリサブシステム・クエリコントローラ４０８を備える。図示されるように、再構成可能なプロセッサ４０２は、様々な処理要素４０６と、メモリサブシステム・クエリコントローラ４０８およびメモリサブシステム４０４の一次メモリストレージ素子４１４と通信する再構成可能なメモリコントローラ４１２とを備える。
【００５０】
上記の図１から図３のコンピュータサブシステムの実施形態は、非永続性のＤＲＡＭを利用して永続性のある再構成可能なコンピュータシステムのメモリを効果的に提供する。対照的に、コンピュータサブシステム４００は、例えば、サブシステム状態情報ブロック４１０などのメモリデバイス、モジュールまたはサブシステムに位置する独立ブロックにロジックおよびＲＡＭを組み込みながら、一次メモリストレージ素子４１４のために、例えば、ＮＡＮＤフラッシュ、ＰＣＭ、ＦｅＲＡＭ、３Ｄ  Ｘｐｏｉｎｔ等の本質的に永続性メモリを利用するように構成される。通信ポートは、サブシステム状態情報ブロック４１０を再構成可能なプロセッサ４０２のメモリサブシステム・クエリコントローラ４０８に結合する。
【００５１】
ランタイム時に、再構成可能なメモリコントローラ４１２の一部が、メモリサブシステム４０４に状態情報を送信するが、一方サブシステム状態情報ブロック４１０は、コントローラから受信したデータを更新および維持することを担当する。再構成可能なプロセッサ４０２は最初のタスクを完了した後、次のタスクを再構成し、開始するであろう。コントローラは、メモリを初期化する前に、以前の状態に関するメモリをクエリし、その結果、次のタスクをいつ、どのように、どこで開始すべきかなどに関する情報を受信するであろう。クエリされた場合、メモリは、それがすでに初期化され、準備ができたことを示す応答を提供し、その再構成の前に、タスクが、例えば、指定の基底アドレスに位置する所与のデータセットを必要としたことをプロセッサに示すことができる。メモリはまた、ＴＬＢマッピングに再構成可能なプロセッサ４０２の状態を示し、もし以前と同じでなければ作り直され得るようにプロセッサにコピーを送信することができる。このとき、再構成可能なプロセッサ４０２は、そのユーザコードを実行開始することができる。
【００５２】
本明細書における説明の連続性および明瞭さのために、「ＦＰＧＡ」という用語は、本発明のシステムおよび方法の代表的な実施形態と共に使用され、１つのタイプの再構成可能なロジックデバイスのみを指す。しかしながら、本明細書において開示されるコンセプトは、部分的再構成能力を有する再構成可能なロジックデバイスまたはチップ内に含まれる再プログラミング可能領域を有するＡＳＩＣデバイスを含む、ハイブリッドデバイスを含む再構成可能なロジックデバイスのあらゆる形態に適用可能であることに留意されたい。
【００５３】
ＤＲＡＭメモリ１０２、再構成可能なロジックデバイス１０４、関連するマイクロプロセッサ、およびプログラミング技術を組み込む動的に再構成可能なコンピューティングシステムの代表的な実施形態は、米国特許および米国特許公報である、米国特許第６，０２６，４５９号、米国特許第６，０７６，１５２号、米国特許第６，２４７，１１０号、米国特許第６，２９５，５９８号、米国特許第６，３３９，８１９号、米国特許第６，３５６，９８３号、米国特許第６，４３４，６８７号、米国特許第６，５９４，７３６号、米国特許第６，８３６，８２３号、米国特許第６，９４１，５３９号、米国特許第６，９６１，８４１号、米国特許第６，９６４，０２９号、米国特許第６，９８３，４５６号、米国特許第６，９９６，６５６号、米国特許第７，００３，５９３号、米国特許第７，１２４，２１１号、米国特許第７，１３４，１２０号、米国特許第７，１４９，８６７号、米国特許第７，１５５，６０２号、米国特許第７，１５５，７０８号、米国特許第７，１６７，９７６号、米国特許第７，１９７，５７５号、米国特許第７，２２５，３２４号、米国特許第７，２３７，０９１号、米国特許第７，２９９，４５８号、米国特許第７，３７３，４４０号、米国特許第７，４０６，５７３号、米国特許第７，４２１，５２４号、米国特許第７，４２４，５５２号、米国特許第７，５６５，４６１号、米国特許第７，６２０，８００号、米国特許第７，６８０，９６８号、米国特許第７，７０３，０８５号、米国特許第７，８９０，６８６号、米国特許第８，５８９，６６６号、米国特許公報第２０１２／０１１７３１８号、米国特許公報第２０１２／０１１７５３５号、および米国特許公報第２０１３／０１５７６３９の１または複数において開示され、その開示は全体が、参照により具体的に本明細書に組み込まれる。
【００５４】
特定の装置および方法と共に本発明の原理が上記されているが、本発明の範囲の限定としてではなく、例としてのみ、上記の説明をしていることを明確に理解されたい。特に、上述の開示の教示は、他の変形形態を当業者に示唆することを理解されたい。そのような変形形態は、それ自体すでに知られ、本明細書においてすでに説明された特徴の代わりに、またはこれに加えて使用され得る、他の特徴を含み得る。本願において、特許請求の範囲は、特徴の特定の組み合わせとして定式化されているが、本明細書における開示の範囲は、いずれかの請求項で現在請求されるのと同一の発明に関するか、本発明が直面するのと同一の技術的問題のいずれかまたは全てを軽減するか否かを問わず、明示的もしくは黙示的に開示される任意の新規な特徴もしくは任意の新規な特徴の組み合わせ、または当業者に明らかである、そのいずれかの一般化もしくは変形も含むことを理解されたい。出願人は、本願、またはそれから派生するさらなる出願の遂行中に、そのような特徴および／またはそのような特徴の組み合わせに対する新しい特許請求の範囲を定式化する権利を留保する。
【００５５】
本明細書において使用されるように、「備える」、「備えている」という用語、またはその他の改変形態は、非排他的な包含を含むことを意図し、従って、一定の要素の列挙を含む処理、方法、物品、または装置は、それらの要素を必ずしも含まないのみならず、明示的に列挙されない、またはそのような処理、方法、物品、または装置に固有ではない他の要素を含み得る。本願の説明のいずれも特定の要素、段階、または機能が特許請求の範囲に含まれなければならない本質的要素であることを暗示するものとして読まれるべきではなく、特許付与された主題の範囲は、許可された特許のみにより定義されるものである。さらに、「の手段」という厳密な文言が使用され、その後に分詞が続かない限り、添付の特許請求の範囲は、合衆国法典第３５巻第１１２条６段落を援用することを意図しない。
【図１】
0006712312.tif 000002
【図２】
0006712312.tif 000003
【図３】
0006712312.tif 000004
【図４】
0006712312.tif 000005