(57)【特許請求の範囲】
【請求項１】
１つ以上のメモリバンク（４１８）を備えるメモリアレイ（１０４）、
第一のプロセッサ（４２０）、および
中央プロセッサ（Ｐ１、Ｐ２）から当該第一のプロセッサへ向けられたデータ処理コマンドを受信するプロセッサ制御インターフェース（９０４）、
を備える動的ランダムアクセスメモリ（ＤＲＡＭ）回路であって、
上記第一のプロセッサ（４２０）がデータ処理を行っている間は、上記中央プロセッサ（Ｐ１、Ｐ２）は、上記メモリアレイ（１０４）の上記１つ以上のメモリバンク（４１８）へのアクセスを拒否されており、当該プロセッサ制御インターフェース（９０４）は、いつ上記第一のプロセッサが上記メモリアレイの上記メモリバンクの１つ以上へのアクセスを終了したかを上記中央プロセッサに対して示すように適合されており、上記メモリバンクは上記中央プロセッサからアクセス可能になっており、上記プロセッサ制御インターフェース（９０４）は、上記メモリ回路のアドレス空間内においてアクセス可能な制御レジスタ（９０８）のセットを備え、上記プロセッサ制御インターフェース（９０４）は、上記第一のプロセッサ（４２０）と上記中央プロセッサ（Ｐ１、Ｐ２）の間にいかなる専用の制御線も備えず、
上記メモリ回路は、リフレッシュ制御回路（４２４）をさらに備え、
上記リフレッシュ制御回路（４２４）は、
上記メモリアレイの上記メモリバンク（４１８）の少なくとも１つにおいてデータリフレッシュ動作を実行するためのリフレッシュトランザクションを上記中央プロセッサから受信し、
当該少なくとも１つのメモリバンク（４１８）が上記第一のプロセッサによってアクセスされているか否かを判定し、アクセスされているのであれば、上記データリフレッシュ動作の開始時間を遅延する、
ことを特徴とする、動的ランダムアクセスメモリ（ＤＲＡＭ）回路。
【請求項２】
上記リフレッシュ制御回路（４２４）はリフレッシュ保留レジスタ（７０２）を備え、
上記データリフレッシュ動作の開始時間の遅延は、当該リフレッシュ動作が保留されていることを上記リフレッシュ保留レジスタ（７０２）において示すことを含む、
ことを特徴とする、請求項１に記載のメモリ回路。
【請求項３】
上記メモリ回路の上記アドレス空間は、上記制御レジスタ（９０８）のセットに恒久的に関連付けられた１つ以上のアドレスを含む、
ことを特徴とする請求項２に記載のメモリ回路。
【請求項４】
上記メモリ回路の上記アドレス空間は、上記制御レジスタ（９０８）のセットに関連付けられた１つ以上のアドレスを含み、
当該１つ以上のアドレスは、レジスタ起動制御信号のアサーションについて上記メモリアレイのアドレスに変換される、
ことを特徴とする請求項２に記載のメモリ回路。
【請求項５】
上記メモリ回路は、上記制御レジスタのセットを当該メモリ回路の上記アドレス空間内においてアクセス可能にするための起動信号を上記中央プロセッサ（Ｐ１、Ｐ２）から受信する、
ことを特徴とする請求項２に記載のメモリ回路。
【請求項６】
上記起動信号はアドレスバスを介して提供され、上記プロセッサ制御インターフェースによって検知可能である、
ことを特徴とする請求項５に記載のメモリ回路。
【請求項７】
上記起動信号は、上記制御レジスタのセットをアクセス可能とするメモリアクセスシーケンスに対応し、上記メモリアクセスシーケンスは、全ての語句が書き込まれるわけではないバーストアクセスシーケンスである、
ことを特徴とする請求項６に記載のメモリ回路。
【請求項８】
上記起動信号は、上記制御レジスタのセットをアクセス可能とするメモリアクセスシーケンスに対応し、上記メモリアクセスシーケンスは、１周期目における上記メモリバンクの１つのメモリ領域内のメモリセルへの複数のメモリアクセスである、
ことを特徴とする請求項６に記載のメモリ回路。
【請求項９】
上記メモリ回路は、上記メモリアクセスシーケンスを、
上記メモリアクセスシーケンスが受信される期間、および
上記メモリアクセスシーケンスの継続時間、
のうち一方または両方に基づいて検知する、
ことを特徴とする請求項７から８のいずれか１項に記載のメモリ回路。
【請求項１０】
複数の請求項１から９のいずれか１項にメモリ回路、および
共通Ｎビットデータバスを介して上記メモリ回路の各々に連結された中央プロセッサ（Ｐ１、Ｐ２）、
を備えるシステムであって、
上記メモリ回路の各々は、上記Ｎビットデータバスに連結されたＮビットバスインターフェースを備える、
ことを特徴とするシステム。
【請求項１１】
動的ランダムアクセス（ＤＲＡＭ）メモリ回路にアクセスする方法であって、
当該メモリ回路は、１つ以上のメモリバンク（４１８）を有するメモリアレイ（１０４）、第一のプロセッサ（４２０）、および当該メモリ回路のアドレス空間内においてアクセス可能な制御レジスタ（９０８）のセットを備えるプロセッサ制御インターフェース（９０４）、を備え、
上記方法は、
中央プロセッサ（Ｐ１、Ｐ２）から上記第一のプロセッサ（４２０）へ向けられたデータ処理コマンドを上記プロセッサ制御インターフェース（９０４）によって受信する工程、
上記第一のプロセッサ（４２０）がデータ処理を行っている間は、上記中央プロセッサ（Ｐ１、Ｐ２）による上記メモリアレイ（１０４）の上記１つ以上のメモリバンク（４１８）へのアクセスを拒否する工程、
いつ上記第一のプロセッサが上記メモリアレイ（１０４）の上記メモリバンク（４１８）の１つ以上へのアクセスを終了したかを上記プロセッサ制御インターフェース（９０４）の上記制御レジスタ（９０８）の１つによって、上記第一のプロセッサ（４２０）と上記中央プロセッサ（Ｐ１、Ｐ２）との間のいかなる専用の制御線を使わずに、上記中央プロセッサ（Ｐ１、Ｐ２）に対して示す工程であって、上記メモリバンクは上記中央プロセッサ（Ｐ１、Ｐ２）からアクセス可能になっている工程、
上記メモリアレイ（１０４）の上記メモリバンク（４１８）においてデータリフレッシュ動作を実行するためのリフレッシュトランザクションをリフレッシュ制御回路（４２４）によって受信する工程、および
上記メモリバンク（４１８）が上記第一のプロセッサ（４２０）によってアクセスされているか否かを上記リフレッシュ制御回路（４２４）によって判定し、アクセスされているのであれば、上記データリフレッシュ動作の開始時間を遅延する工程、
を含むことを特徴とする方法。
【請求項１２】
上記制御レジスタのセットを上記メモリ回路のアドレス空間内においてアクセス可能にするための起動信号を、上記プロセッサ制御インターフェース（９０４）によって上記中央プロセッサ（Ｐ１、Ｐ２）から受信する工程、
をさらに含むことを特徴とする請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、統合プロセッサを備えたＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）回路およびそのようなメモリを利用した通信方法の分野に関する。
【背景技術】
【０００２】
現代のコンピュータは、一般的に処理回路を備えており、処理回路はしばしばシステムオンチップ（ＳｏＣ）として実装され、また１つ以上の動的ランダムアクセス記憶装置（ＤＲＡＭ）回路に連結される。一般的に周期的なリフレッシュ動作を必要とするこのようなメモリは、密集した作りであり、また比較的高速にアクセスできる。したがって、このようなメモリは、ほとんどのコンピュータにおいて主なＲＡＭデータ記憶部として使用される。しかし、ＳｏＣとＤＲＡＭ回路の間で転送されるデータ量が常に増加していることで、このように転送されるデータは、コンピュータの動作を減速させ、また比較的大きいエネルギー消費をもたらす傾向にある。
【０００３】
解決策として、ＳｏＣ内のプロセッサに加えて、１つ以上のプロセッサが一体化されたＤＲＡＭ回路を提供することが提案されている。このような解決策においては、特定の処理タスクをＤＲＡＭプロセッサに任せることでＤＲＡＭ回路とＳｏＣの間のデータ転送レベルを低減させ、これによって、ＤＲＡＭ回路とＳｏＣの間のデータ転送を回避しながら当該処理タスクを行うことができる。
【０００４】
しかし、統合プロセッサを備えたＤＲＡＭ回路には、ＳｏＣを備えたインターフェースが時間を要し、さらに実装が高コストであるという問題がある。
【０００５】
国際特許出願公開第ＷＯ２０１０／１４１２２１号には、内部プロセッサに関連付けられたメモリアレイへのアクセスを調停するシステムおよび方法を記載している。当該調停は、通信要求および許可信号のための電気的接続による制御インターフェースを介した、メモリ制御器を備えた外部プロセッサと内部プロセッサとのインターフェース接続を含む。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際特許出願公開第ＷＯ２０１０／１４１２２１号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記国際特許出願公開第Ｗ０２０１０／１４１２２１号に記載されたシステムには、メモリ制御器を内蔵した外部プロセッサは、内部プロセッサとの調停制御信号の送受信を許可するために変更されなければならないという問題がある。前記の問題により、解決策が高コストおよび複雑なものとなっている。
【課題を解決するための手段】
【０００８】
本開示の実施形態の目的は、上記先行技術における１つ以上の問題を少なくとも部分的に解決することである。
【０００９】
一態様によれば、１つ以上のメモリバンクを備えるメモリアレイ、第一のプロセッサ、および中央プロセッサから当該第一のプロセッサへ向けられたデータ処理コマンドを受信するプロセッサ制御インターフェース、を有するメモリ回路であって、当該プロセッサ制御インターフェースは、いつ上記第一のプロセッサが上記メモリアレイの上記メモリバンクの１つ以上へのアクセスを終了したかを上記中央プロセッサに対して示すように適合されており、上記プロセッサ制御インターフェースは、上記メモリバンクが上記中央プロセッサからアクセス可能になっていることを特徴とするメモリ回路が提供される。
【００１０】
一実施形態によれば、上記メモリ回路は、リフレッシュ制御回路をさらに備える動的ランダムアクセス記憶装置（ＤＲＡＭ）回路であり、上記リフレッシュ制御回路は、上記メモリアレイの上記メモリバンクの少なくとも１つにおいてデータリフレッシュ動作を実行するためのリフレッシュトランザクションを上記中央プロセッサから受信し、当該少なくとも１つのメモリバンクが上記第一のプロセッサによってアクセスされているか否かを判定し、そうであれば、上記データリフレッシュ動作の開始時間を遅延する。
【００１１】
一実施形態によれば、上記リフレッシュ制御回路はリフレッシュ保留レジスタを備え、上記データリフレッシュ動作の開始時間の遅延は、当該リフレッシュ動作が保留されていることを上記リフレッシュ保留レジスタにおいて示すことを含む。
【００１２】
一実施形態によれば、上記プロセッサ制御インターフェースは上記メモリ回路のアドレス空間内においてアクセス可能な制御レジスタのセットを備える。
【００１３】
一実施形態によれば、上記メモリ回路の上記アドレス空間は、上記制御レジスタのセットに恒久的に関連付けられた１つ以上のアドレスを含む。
【００１４】
一実施形態によれば、上記メモリ回路の上記アドレス空間は、上記制御レジスタのセットに関連付けられた１つ以上のアドレスを含み、１つ以上のアドレスは、レジスタ起動制御信号のアサーションについて上記メモリアレイのアドレスに変換される。
【００１５】
一実施形態によれば、上記メモリ回路は、上記制御レジスタのセットを当該メモリ回路の上記アドレス空間内においてアクセス可能にするための起動信号を上記中央プロセッサから受信する。
【００１６】
一実施形態によれば、上記起動信号はアドレスバスを介して提供され、上記プロセッサ制御インターフェースによって検知可能である。
【００１７】
一実施形態によれば、上記制御レジスタのセットをアクセス可能とする上記メモリアクセスシーケンスは、全ての語句が書き込まれるわけではないバーストアクセスシーケンスである。
【００１８】
一実施形態によれば、上記制御レジスタのセットをアクセス可能とする上記メモリアクセスシーケンスは、１周期目における上記メモリバンクの１つのメモリ領域内のメモリセルへの複数のメモリアクセスである。
【００１９】
一実施形態によれば、上記メモリ回路は、上記メモリアクセスシーケンスを、上記メモリアクセスシーケンスが受信される期間、および上記メモリアクセスシーケンスの継続時間、またはそれ以上に基づいて検知する。
【００２０】
さらなる態様によれば、複数のメモリ回路、および共通Ｎビットデータバスを介して上記メモリ回路の各々に連結された中央プロセッサ、を備えるシステムであって、上記メモリ回路の各々は、上記Ｎビットデータバスに連結されたＮビットバスインターフェースを備える、システムが提供される。
【００２１】
さらなる態様によれば、メモリ回路にアクセスする方法であって、当該メモリ回路は、１つ以上のメモリバンクを有するメモリアレイ、第一のプロセッサ、およびプロセッサ制御インターフェース、を備え、上記方法は、中央プロセッサから上記第一のプロセッサへ向けられたデータ処理コマンドを上記プロセッサ制御インターフェースによって受信する工程、およびいつ上記第一のプロセッサが上記メモリアレイの上記メモリバンクの１つ以上へのアクセスを終了したかを上記プロセッサ制御インターフェースによって上記中央プロセッサ（Ｐ１、Ｐ２）に対して示すように適合された工程であって、上記メモリバンクは上記中央プロセッサ（Ｐ１、Ｐ２）からアクセス可能になっている工程、を含む。
【００２２】
一実施形態によれば、上記メモリ回路が動的ランダムアクセス記憶装置（ＤＲＡＭ）回路であり、上記方法は、上記メモリアレイの上記メモリバンクにおいてデータリフレッシュ動作を実行するためのリフレッシュトランザクションをリフレッシュ制御回路によって受信する工程、および上記メモリバンクが上記第一のプロセッサによってアクセスされているか否かを上記リフレッシュ制御回路によって判定し、そうであれば、上記データリフレッシュ動作の開始時間を遅延する工程、をさらに含む。
【００２３】
一実施形態によれば、上記プロセッサ制御インターフェースは制御レジスタのセットを備え、上記制御レジスタのセットを上記メモリ回路のアドレス空間内においてアクセス可能にするための起動信号を、上記プロセッサ制御インターフェースによって上記中央プロセッサから受信する工程、をさらに含む。
【図面の簡単な説明】
【００２４】
前記およびその他の構成および利点は、添付の図面を参照した非限定的な例示によって、下記の実施形態の詳細な説明から明らかになるであろう。
【図１】図１は、実施形態の一例に係る、統合プロセッサを有するＤＲＡＭ回路を備えた計算システムを概略的に示す。
【図２】図２は、一例に係るＤＲＡＭデータバスを概略的に示す。
【図３】図３は、本開示の一実施形態に係るＤＲＡＭデータバスを概略的に示す。
【図４】図４は、実施形態の一例に係る図１の計算システムの一部をより詳細に概略的に示す。
【図５】図５は、実施形態の一例に係る図４のメモリバンクをより詳細に概略的に示す。
【図６】図６は、実施形態の一例に係るＤＲＡＭプロセッサに処理タスクを任せる方法における動作を示すフローチャートである。
【図７】図７は、実施形態の一例に係るリフレッシュ制御回路を概略的に示す。
【図８】図８は、実施形態の一例に係るリフレッシュ制御方法の工程を示すフローチャートである。
【図９】図９は、実施形態の別の一例に係る図４のＤＲＡＭ回路の一部をより詳細に概略的に示す。
【図１０】図１０は、実施形態の一例に係るＤＲＡＭアドレス空間内においてＤＲＡＭプロセッサ制御インターフェースを可視化する方法における動作を示すフローチャートである。
【発明を実施するための形態】
【００２５】
本開示は、メモリ回路がＤＲＡＭ回路である一例に係る、統合プロセッサを備えるメモリ回路の実施形態を説明する。図示されてはいないが、当業者であれば、ＤＲＡＭ回路が記憶装置であり、データビットを示す電圧値を記憶するコンデンサ、およびメモリセルへのアクセスを制御するスイッチ、を備えるメモリセルのアレイによってデータが記憶されることを理解する。しかし、本明細書において説明する原理は、リフレッシュ動作を必要とするまたは必要としない他の種類のメモリ回路にも容易に適用され得る。本明細書において説明する実施形態の１つの利点は、メモリ回路への１つ以上のプロセッサの統合は、このような統合プロセッサとの通信機能を持たない旧来のメモリインターフェースが当該メモリ回路との通信に使用されることを妨げないことである。
【００２６】
図１は、実施形態の一例に係る計算システム１００を概略的に示す。計算システム１００は、本一例においてシステムオンチップ（ＳｏＣ）として実装される中央処理装置１０２を備えている。当該中央処理装置１０２は１つ以上のプロセッサ（図示しない）、および複数のＤＲＡＭ回路と通信するためのＤＤＲマスターインターフェース（ＤＤＲ  ＭＡＳＴＥＲ  ＩＮＴＥＲＦＡＣＥ）１０３を備える。
【００２７】
図１に示す例にはＤＲＡＭ０〜ＤＲＡＭ３として示された４つのＤＲＡＭ回路があるが、他の実施形態においては、いかなる数のＤＲＡＭ回路があってもよい。
【００２８】
ＤＲＡＭ回路ＤＲＡＭ０は、ＤＲＡＭメモリアレイ（ＭＡ）１０４および１つ以上の内部プロセッサ（Ｐ）１０６（以下、ＤＲＡＭプロセッサと称する）を備える。ＤＲＡＭ回路ＤＲＡＭ０は、例えば、ＤＲＡＭプロセッサの各々に関連付けられたＤＲＡＭプロセッサ制御インターフェース（Ｉ）１０７をさらに備えることにより、ＳｏＣ１０２における１つ以上のプロセッサが対応するプロセッサ１０６と通信することを許可する。ＤＤＲスレーブインターフェース１０８は、例えば、ＤＤＲマスターインターフェース１０３との通信のためにＤＲＡＭ回路ＤＲＡＭ０内に与えられる。
【００２９】
同様に、ＤＲＡＭ回路ＤＲＡＭ１、ＤＲＡＭ２、ＤＲＡＭ３はそれぞれ、ＤＲＡＭメモリアレイ１１４、１２４、１３４および１つ以上の内部プロセッサ（Ｐ）１１６、１２６、１３６を備える。ＤＲＡＭ回路ＤＲＡＭ１、ＤＲＡＭ２、ＤＲＡＭ３は、例えば、それぞれＤＲＡＭプロセッサ制御インターフェース１１７、１２７、１３７をさらに備える。これにより、ＤＲＡＭ回路ＤＲＡＭ１、ＤＲＡＭ２、ＤＲＡＭ３は、ＳｏＣ１０２における１つ以上のプロセッサがそれぞれプロセッサ１１６、１２６、１３６を制御することを許可する。ＤＤＲスレーブインターフェース１１８、１２８、１３８は、例えば、ＤＤＲマスターインターフェース１０３との通信のために、回路ＤＲＡＭ１、ＤＲＡＭ２、ＤＲＡＭ３内に与えられる。
【００３０】
ＤＤＲマスターインターフェース１０３とスレーブインターフェース１０８、１１８、１２８、１３８の各々の通信は、例えばバスリンク１４０を介して行われる。当該バスリンク１４０は、アドレスバス、データバス、および、場合によっては１つ以上のさらなる制御線（図１には図示しない）を備える。バスリンク１４０を介したＤＲＡＭ回路ＤＲＡＭ０〜ＤＲＡＭ３との通信は、例えばＤＤＲプロトコルの１つに準拠する。
【００３１】
「ＤＤＲプロトコル」は、本明細書において、以下のプロトコルの何れも指すように用いられる：ＤＤＲ１、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、ＲＬＤＲＡＭ（低レイテンシランダムアクセスメモリ）、ＲＬＤＲＡＭ２、およびこれらのプロトコルと同様のいかなるプロトコル。
【００３２】
図２は、ＳｏＣ（図示しない）を４つのＤＲＡＭ回路ＤＲＡＭ０〜ＤＲＡＭ３に接続するための６４ビット幅データバス（ＤＡＴＡ  ＢＵＳ）を概略的に示す。図示されるように、当該データバスは、回路ＤＲＡＭ０〜ＤＲＡＭ３の各々が６４ビット幅データバスのうちの１６ビットずつを受信するように分割されている。例えば、ＤＲＡＭ０回路はビット０〜１５を受信し、バイト０、１、８、９、１６、１７等を含む。ＤＲＡＭ１回路はビット１６〜３１を受信し、バイト２、３、１０、１１、１８、１９等を含む。ＤＲＡＭ２回路はビット３２〜４７を受信し、バイト４、５、１２、１３、２０、２１等を含む。ＤＲＡＭ３回路はビット４８〜６３を受信し、バイト６、７、１４、１５、２２、２３等を含む。このような構成の１つの利点は、個々のＤＲＡＭ回路に対して別々にアドレッシングする必要がないことである。しかし、各々のＤＲＡＭ回路にプロセッサが一体化されたされた場合、図２のデータバス構成の難点としては、各々のＤＲＡＭ回路が非連続のデータを記憶するため、ＳｏＣプロセッサの制御下における当該データの処理が高度に複雑になることである。
【００３３】
図３は、ＳｏＣ（図示しない）を４つのＤＲＡＭ回路ＤＲＡＭ０〜ＤＲＡＭ３に接続するための６４ビット幅データバス（ＤＡＴＡ  ＢＵＳ）を概略的に示す。本一例においては、各々のＤＲＡＭ回路は６４ビットデータバスに連結された６４ビットバスインターフェースを備えていることで、各々のＤＲＡＭ回路はデータバス上で送信された全てのビットを受信する。したがって、各々のＤＲＡＭ回路は全メモリの連続した領域を連続した形で含む。より一般的には、ＳｏＣのデータバスはＮビットであり、このとき、Ｎは２以上の整数であり、ＤＲＡＭ回路の各々はＮビットデータバスを有する。
【００３４】
また、各々のＤＲＡＭメモリアクセスのためにＳｏＣがＤＲＡＭ回路を選択できる機構も備えられている。
【００３５】
一実施形態においては、ＳｏＣまたは追加のアドレス復号回路は、出力線においてチップ選択信号ＣＳを提供することが可能である。図３の破線ＣＳにおいて示されるように、信号ＣＳは、例えば所定のメモリアクセスに対してこれらのＤＲＡＭ回路の１つを選択するために、各々のＤＲＡＭ回路に提供される。４つのＤＲＡＭ回路がある場合、信号ＣＳは例えば２ビット信号であり、値「００」、「０１」、「１０」、「１１」は、それぞれＤＲＡＭ回路ＤＲＡＭ０、ＤＲＡＭ１、ＤＲＡＭ２、ＤＲＡＭ３に関連付けられる。異なる数のＤＲＡＭ回路がある場合、信号ＣＳは異なる数のビットを含んでいてもよい。
【００３６】
他の一実施形態においては、ＳｏＣまたは追加のアドレス復号回路は、各々のＤＲＡＭ回路に対して専用チップ選択信号ＣＳを提供することが可能である。この場合、破線ＣＳは、ＤＲＡＭ０回路に提供される専用信号ＣＳ［０］、ＤＲＡＭ１回路に提供される専用信号ＣＳ［１］、ＤＲＡＭ２回路に提供される専用信号ＣＳ［２］、およびＤＲＡＭ３回路に提供される専用信号ＣＳ［３］、を備える４ビット幅バスである。
【００３７】
別の一実施形態においては、ＤＲＡＭ回路の各々は、全アドレス範囲のうちの異なるアドレス範囲を復号するように構成されている。ＤＲＡＭ回路ＤＲＡＭ０〜ＤＲＡＭ３がそれぞれ有するアドレスデコーダ３００〜３０３は、例えば、それぞれ対応するアドレス範囲を復号ように構成されている回路を有する。しかし、このような解決策においては、ＤＲＡＭ回路がそれぞれ同一ではなくなるため、製造方法がより複雑になるという難点がある。
【００３８】
別の解決策では、各々のアドレスデコーダ３００〜３０３に関連付けられ、またそれぞれ破線四角形３１０〜３１３に示されるヒューズを提供する。当該ヒューズは、例えば、レーザー、当該ヒューズに印加される電圧、または当該ヒューズに流れる電流によってプログラムされ種類である。また当該ヒューズがＤＲＡＭ回路の製造の後にプログラムされることによって、各々のＤＲＡＭ回路が特定のアドレス範囲を復号するように構成される。
【００３９】
さらに別の解決策では、各々のＤＲＡＭ回路に受け付けられるアドレス範囲は、リセット動作の直後またはＤＲＡＭ回路の電源を入れた後にＤＲＡＭ回路の入力ピンに提供される入力信号によって電気的に構成されてもよい。入力ピンは、この特定の目的のための専用ピンでもよいし、または、アドレス範囲の定義を可能にするために、構成フェーズ中にＤＲＡＭ回路の標準入力／出力ピンが使用されてもよい。
各々のデート線が１つより多いＤＲＡＭ回路に連結されている図３のデータバスにおいては、当該データ線の電気容量の増加につながることが多い。この対策として、各々のデータ線にバッファ回路が追加されてもよい。これにより、メモリアクセスのレイテンシが１サイクル分以上増加する可能性が高いが、全体的な待ち時間としては比較的わずかな割合の増加である。加えて、または別の形態として、ＤＲＡＭ回路がＤＩＭＭ（ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）規格の１つに準拠するメモリモジュールに搭載される。この場合、追加的な線容量およびバッファ回路の少なくともいずれかの追加がこのようなＤＩＭＭメモリモジュールによってどのようにマスクされるのかは、当業者にとって明らかである。
【００４０】
図４は、ＳｏＣ１０２およびＤＲＡＭ回路ＤＲＡＭ０をより詳細に概略的に示す。その他のＤＲＡＭ回路ＤＲＡＭ１〜ＤＲＡＭ３は、例えば同様の構成を有する。
【００４１】
ＳｏＣ１０２は、例えばプロセッサＰ１およびＰ２を備え、当該プロセッサＰ１およびＰ２の各々はＤＲＡＭ回路ＤＲＡＭ０へのアクセスが可能である。プロセッサＰ１およびＰ２の各々は、例えば、対応する命令メモリ（図４には図示しない）に記憶された指示によって制御される。図４の例では、ＳｏＣは２つのプロセッサを有するが、別の実施形態においてはいかなる数のプロセッサがあってもよい。
【００４２】
ＤＲＡＭ回路ＤＲＡＭ０は、例えば複数のサブメモリ４０６、４０８、４１０、４１２および共通ＤＤＲスレーブインターフェース（ＤＤＲ  ＳＬＡＶＥ  ＩＮＴＥＲＦＡＣＥ）４１４を備えている。当該共通ＤＤＲスレーブインターフェース４１４はＤＲＡＭ回路のグローバルＤＲＡＭプロセッサ制御インターフェース（ＧＩ）を備えている。当該ＤＲＡＭ回路ＤＲＡＭ０は、サブメモリの各々に連結された共通リフレッシュコントローラ（ＲＥＦＲＥＳＨ  ＣＯＮＴＲＯＬＬＥＲ）４１６を備える。図４の例では４つのサブメモリがあるが、いかなる数であるＭ個のサブメモリがあってもよい。
【００４３】
サブメモリ４０６は詳細に例示され、その他のサブメモリは、例えば同一の構成要素を備える。サブメモリ４０６は例えば、ＤＲＡＭ回路ＤＲＡＭ０のメモリアレイの下位部分を構成するメモリバンク（ＭＥＭＯＲＹ  ＢＡＮＫ）４１８を備える。サブメモリ４０６はさらに、例えば上記メモリバンク４１８に連結されたプロセッサ（ＤＲＡＭ  ＰＲＯＣＥＳＳＯＲ）４２０を備えている。当該プロセッサ（ＤＲＡＭ  ＰＲＯＣＥＳＳＯＲ）４２０は、ローカルＤＲＡＭプロセッサ制御インターフェース（ＬＩ）４２３を備えるメモリバンク制御回路（ＭＥＭＯＲＹ  ＡＲＲＡＹ  ＣＯＮＴＲＯＬ）４２２、リフレッシュ制御回路（ＲＥＦＲＥＳＨ  ＣＯＮＴＲＯＬ）４２４、命令メモリ４２５、処理パイプライン（ＰＩＰＥＬＩＮＥ）４２６、および当該プロセッサのローカルメモリ（ＬＯＣＡＬ  ＭＥＭＯＲＹ）４２８を備える。
【００４４】
図４に示す実施形態では、ＤＲＡＭ０回路のＤＲＡＭプロセッサ制御インターフェースは、サブメモリの各々において、グローバルインターフェース４１５およびローカルインターフェース４２３によって実装される。しかし、別の一実施形態では、ＤＲＡＭプロセッサ制御インターフェースはサブメモリの各々においてグローバルインターフェース４１５のみで実装されてもよいし、またはローカルインターフェース４２３のみによって実装されてもよい。
【００４５】
下記でより詳細に説明する通り、リフレッシュ制御回路４２４は、ＤＲＡＭプロセッサの１つによるデータ処理動作が進行中にサブメモリによって受信されたリフレッシュトランザクションの制御を許可する。
【００４６】
メモリバンク制御回路４２２は、例えばそのバンクへ向けたＤＤＲメモリ要求およびＤＲＡＭプロセッサ要求間の多重化を提供する。
【００４７】
処理パイプライン４２６は、例えば命令メモリ４２５に記憶された指示によって動作が制御されるデータ処理要素を備える。ＤＲＡＭプロセッサは、ＳｏＣプロセッサに対して相補的役割を担うことを考慮して、例えば、異なる命令セットを用いる。例えば、ＤＲＡＭプロセッサは、ＳｏＣプロセッサによって使用されるものに比べて縮小された命令セットを使用する。例えば、ある実施形態では、ＤＲＡＭプロセッサによって実行される１つ以上の指示は、ＳｏＣプロセッサによって、グローバルインターフェース４１５およびローカルインターフェース４２３の少なくともいずれかを介してＤＲＡＭプロセッサの命令メモリ４２５に直接書き込まれる。加えて、または別の形態として、ＤＲＡＭプロセッサによって実行される１つ以上の指示は、ＳｏＣプロセッサによって直接メモリバンク４１８に書き込まれる。そして、ＳｏＣプロセッサは、ＤＲＡＭプロセッサに対して、メモリバンク４１８からの指示を当該ＤＲＡＭプロセッサの命令メモリ４２５に読み出すよう指示してもよい。
【００４８】
ローカルメモリ４２８は、例えば、処理パイプライン４２６がメモリバンク４１８に保存されたデータに対する動作を行うときに使用するデータを、一時的にまたは非一時的に記憶する。
【００４９】
図４には図示しないが、ＳｏＣとＤＲＡＭ回路の間に、１つ以上のさらなる中間回路があってもよい。例えば、ＤＲＡＭ回路がいわゆるフルレジスタードＤＩＭＭまたはフルバッファードＤＩＭＭの規格に準拠して搭載される場合、追加的で複雑な処理機能を可能にするための拡張メモリバッファ（ＡＭＢ：ａｄｖａｎｃｅｄ  ｍｅｍｏｒｙ  ｂｕｆｆｅｒ）が備えられてもよい。
【００５０】
図５は、実施形態の一例に係る図４のメモリバンク４１８をより詳細に概略的に示す。図示されるように、メモリバンク４１８は例えばＤＲＡＭメモリ行（ＭＥＭＯＲＹ  ＲＯＷＳ）のブロック５０２およびアクセスレジスタ（ＡＣＣＥＳＳ  ＲＥＧＩＳＴＥＲ）５０４を備える。
【００５１】
ＤＲＡＭ回路ＤＲＡＭ０のメモリバンク４１８中のアドレスで読み取り動作が行われている間、メモリバンク４１８は当該アドレスの一部によって選択される。そして、メモリバンク４１８の読み取られる行はアドレスに基づいて識別され、当該行のデータはアクセスレジスタ５０４に読み込まれる。そして、この行を構成する１つ以上の語句は、アクセスレジスタ５０４から読み取られ、ＳｏＣ１０２のプロセッサに提供されてもよいし、または、内部処理動作が実行される場合は、プロセッサ４２０のローカルメモリ４２８に提供されてもよい。
【００５２】
ＤＲＡＭ回路ＤＲＡＭ０のメモリバンク４１８中のアドレスで書き込み動作が行われている間、メモリバンク４１８は当該アドレスの一部によって選択される。そして、メモリバンク４１８の書き込まれる行はアドレスに基づいて識別され、アクセスレジスタ５０４に読み込まれる。そして、この行を構成する１つ以上の語句は、ＳｏＣ１０２のプロセッサによってアクセスレジスタに書き込まれてもよいし、または、内部処理動作が実行される場合は、プロセッサ４２０のローカルメモリ４２８に書き込まれてもよい。アクセスレジスタ５０４がメモリバンク５０２の他の行へのアクセスのために再度使用されるとき、またはリフレッシュ動作が実行される場合は、アクセスレジスタ５０４のコンテンツは、メモリバンク４１８の対応する行に再度書き込まれる。
【００５３】
また、複数行分のデータをメモリ行５０２からアクセスレジスタ５０４へ、またはアクセスレジスタ５０４からメモリバンクのメモリ行５０２への転送動作は、数クロック周期にわたって実行される比較的遅い動作であり、一度開始すれば中断すべきではない。
【００５４】
さらに、ＳｏＣプロセッサＰ１、Ｐ２、および内部ＤＲＡＭプロセッサの少なくともいずれかは、ＤＲＡＭ回路の同一のメモリバンクにファインインターレス方式でアクセスできない。これについて、下記のようなシナリオで例示される：
−ＤＲＡＭプロセッサがメモリバンクの行の１つについて、当該メモリバンクのアクセスレジスタへの読み込みを開始する。この動作は数サイクルを要する；そして
−読み込み動作の終了の前に、ＳｏＣプロセッサの１つが、メモリバンクの他の行が同一のアクセスレジスタに読み込まれることを要求する。ＳｏＣプロセッサは、この読み込み動作が設定された数のサイクル内で完了することを見積もっている。
【００５５】
この現象には、潜在的な問題がある。なぜなら、ＤＤＲプロトコルによれば、ＳｏＣプロセッサからの要求が無視されることまたは遅延されることを許可しないし、また、バンク回路もメモリバンク内の読み込み動作が途中でキャンセルされることを許可しない。さらに、ＤＤＲプロトコルは、ＤＲＡＭ回路へアクセスしているＳｏＣプロセッサへ当該ＤＲＡＭ回路が以下のことを通知することを許可する機序を規定しない：
−メモリアクセス要求を早急に処理することができない；
−要求されたデータが即座に利用できない；または
−要求されたデータが利用できるようになる時間。
【００５６】
したがって、上記で強調したような場合には、ＳｏＣプロセッサは、読み込み動作に関連付けられた設定された数のサイクルの後に、アクセスレジスタは要求されたデータを実際には含んでいないも関わらず含んでいるとみなす確率が高い。
【００５７】
この問題は、以下に図６を参照してより詳細に説明する通り、ＤＤＲプロトコルとも互換性があり、ＳｏＣプロセッサおよびＤＲＡＭプロセッサによって使用されるアクセスプロトコルを規定することにより、少なくとも部分的に解決される。
【００５８】
図６は、本開示の一実施形態に係るＤＲＡＭ回路へアクセスする方法においての動作を示すフローチャートである。
【００５９】
動作６０１において、ＳｏＣの１つ以上のプロセッサは、１つ以上のＤＲＡＭプロセッサによって処理されるデータを、ＤＲＡＭ回路の対応するメモリバンクに読み込ませる。例えば、図４のサブメモリ４０６のプロセッサ４２０が処理動作を実行する場合、データは例えばメモリバンク４１８に読み込まれる。
【００６０】
動作６０２において、ＳｏＣプロセッサの１つ以上は、１つ以上のＤＲＡＭプロセッサに対し、当該１つ以上のＤＲＡＭプロセッサがデータの処理を開始してもよい旨を示すためにＤＲＡＭ回路のＤＲＡＭプロセッサ制御インターフェースを使用する。
【００６１】
動作６０３において、ＤＲＡＭプロセッサによるデータ処理が実行され、この処理の間、ＳｏＣのプロセッサによって実行されるソフトウェアは、対応するメモリバンクにアクセスしない。ＤＲＡＭプロセッサの１つがメモリバンク内のデータを処理している間にＳｏＣプロセッサの１つが当該メモリバンクにアクセスしようとした場合、例えば曖昧な応答が提供される。ある実施形態においては、このエラーが起こったことを示し、またデバッギングを円滑にするためのエラーフラグがＤＲＡＭプロセッサ制御インターフェースのレジスタにおいて設定されてもよい。
【００６２】
ある実施形態においては、各々のＤＲＡＭプロセッサはそのサブメモリ内のあるメモリバンク専用である。別の形態として、場合によっては、１つより多いＤＲＡＭプロセッサが同一のメモリバンクへアクセス可能でもよい。このような場合、ＤＲＡＭプロセッサが当該メモリバンクに正確にアクセスすることを許可するために、当該ＤＲＡＭプロセッサ間に調停手順が実装されていてもよい。当業者であれば、このような調停手順がＳｏＣとの通信のために使用されるＤＤＲインターフェースによって抑制されないこと、したがっていかなる適当な調停手順が実装されてもよいことを理解する。
【００６３】
続く動作６０４において、ＤＲＡＭプロセッサによるデータ処理がいつ完了するかが判定される。完了したとき、次の動作は、メモリバンクがＳｏＣプロセッサによってアクセス可能になる６０５である。例えば、ＤＲＡＭプロセッサ制御インターフェースは、ＤＲＡＭプロセッサがメモリバンク内のデータの処理を終了したことを、ＳｏＣプロセッサによって実行されるソフトウェアに通知するために使用される。例えば、ＤＲＡＭプロセッサ制御インターフェースは、ＳｏＣプロセッサによってアクセス可能なレジスタである。このとき、ＤＲＡＭプロセッサ制御インターフェースは、ＤＲＡＭプロセッサがタスクを終了したか否か、または少なくともメモリバンクにアクセスする必要があるタスクの一部を終了したか否かを示すステータスビットを含むレジスタを含む。ＤＲＡＭプロセッサがメモリバンク内のデータの処理を終了し、当該データが再びＳｏＣプロセッサによってアクセス可能となるように解放する。このとき、ＤＲＡＭプロセッサは、例えば、他の処理動作を実行するようにＳｏＣプロセッサから指示されるまで再びメモリバンクにアクセスしないように構成される。
【００６４】
場合によっては、特定のメモリバンクに記憶されたデータに急速にアクセスするために、ＳｏＣプロセッサがＤＲＡＭプロセッサによる処理を途中で停止することを許可してもよい。例えば、この動作は、ＳｏＣプロセッサによって優先度の高いタスクが実行される場合に適当である場合がある。この動作は、例えばＤＲＡＭプロセッサ制御インターフェースを介して停止コマンドをアサートすることによって実現される。例えば、ＤＲＡＭプロセッサは停止コマンドを受信した後に、１つ以上の現在のアクセス動作を完了するために数サイクルを要し、メモリバンクへのアクセスが可能になったとき、ＤＲＡＭプロセッサ制御インターフェースを介してＳｏＣプロセッサに通知する。
【００６５】
図６を参照して説明されたＤＲＡＭメモリアクセス方法の１つの利点は、ＤＲＡＭプロセッサがＳｏＣプロセッサと絶対に競合しないことを保証する点である。さらに、ＳｏＣプロセッサは、ＤＤＲ型のプロトコルに準拠した通常の決定論的方法でＤＲＡＭ回路のメモリバンクへのアクセスが可能である。
【００６６】
もちろん、ＤＲＡＭプロセッサがデータ処理を行っている間は、ＳｏＣプロセッサは特定のメモリバンクへのアクセスを拒否される。しかし、各々のＤＲＡＭ回路に数個のメモリバンクがあり、１つのＤＩＭＭモジュールに数個のＤＲＡＭ回路があり、また潜在的に数個のＤＩＭＭモジュールがあることから、ＳｏＣプロセッサの動作はブロックされにくい。事実、他のＤＲＡＭプロセッサによって事前に要求された処理動作の結果は、収集可能である可能性が高い。
【００６７】
図７は、実施形態の一例に係るＤＲＡＭサブメモリのリフレッシュ制御回路（ＲＥＦＲＥＳＨ  ＣＯＮＴＲＯＬ）４２４をより詳細に概略的に示す。
【００６８】
前述のとおり、ＤＲＡＭ回路は、データ損失を防止するために周期的なリフレッシュ動作を必要とする。例えば、特定のＤＲＡＭ技術では、通常、メモリバンクの全ての行がリフレッシュされるまでに６４ｍｓという時間を必要とする。例えば、ＳｏＣ１０２のメモリ制御器に一体化されたリフレッシュ制御システムは、場合によってはあるＤＲＡＭ回路用の複数のリフレッシュトランザクションをまとめたリフレッシュパケットとして送信され得る周期的なリフレッシュトランザクションを生成する。
【００６９】
なお、一般的には、リフレッシュ動作の例えば少なくとも数十マイクロ秒の遅延を許可する、リフレッシュ周期性における特定の公差がある。場合によっては、後に来るリフレッシュトランザクションの前にリフレッシュ動作が実行されれば十分である。さらに、リフレッシュ動作はメモリバンクによって保存されているデータを変更しない。
【００７０】
リフレッシュ制御回路４２４は、ＤＲＡＭプロセッサによるメモリバンクへのアクセスが終了するまでリフレッシュ動作が遅延されることを許可することができる。
【００７１】
リフレッシュ制御回路４２４は、リフレッシュトランザクション（ＲＥＦＲＥＳＨ）を受信する。リフレッシュ制御回路４２４は、例えばリフレッシュ保留レジスタ（ＲＥＦＲＥＳＨ  ＰＥＮＤＩＮＧ）７０２および遅延リフレッシュカウンタ（ＤＥＬＡＹＥＤ  ＲＥＦＲＥＳＨ  ＣＯＵＮＴＥＲ）７０４を備える。
【００７２】
図７のリフレッシュ制御回路４２４の動作を、図８を参照してより詳細に説明する。
【００７３】
図８は、リフレッシュトランザクションを処理する方法における動作を示すフローチャートである。この方法は、例えば、ＤＲＡＭ回路のサブメモリ４０６〜４１２の各々のリフレッシュ制御回路４２４によって局所的に実行される。まず、図４の回路ＤＲＡＭ０のようなＤＲＡＭ回路がリフレッシュトランザクションを受信したこと、リフレッシュコントローラ４１６がサブメモリ４０６、４０８、４１０、４１２の各々のリフレッシュ制御回路４２４にリフレッシュトランザクションを伝搬したこと、およびそれらのリフレッシュ制御回路４２４が、即座にリフレッシュ動作を実行することが可能であること、を想定する。
【００７４】
動作８０１において、サブメモリの１つのリフレッシュ制御回路４２４が、そのメモリバンクがＤＲＡＭプロセッサ４２０によるメモリバンクアクセスで占有されている間に、リフレッシュトランザクションを受信する。
【００７５】
動作８０２において、遅延リフレッシュカウンタ７０４は、リフレッシュトランザクションを記憶し、例えばリフレッシュ保留レジスタ７０２において、リフレッシュトランザクションが保留状態であることを示す。リフレッシュトランザクションは、例えばメモリバンクへの現在のアクセスが完了するとすぐに開始される。リフレッシュ保留レジスタ７０２は、例えばリフレッシュ動作が完了したときのみリセットされる。リフレッシュ保留レジスタ７０２は、例えばＤＲＡＭプロセッサおよびＳｏＣプロセッサによってアクセス可能であり、これらのプロセッサは例えば、リフレッシュ保留レジスタがリセットされるまではメモリバンクにアクセスしないように構成されている。ある実施形態では、ＤＲＡＭプロセッサ制御インターフェースのステータスビットは、例えば処理動作が完了したことを示すため、また保留状態のリフレッシュトランザクションがこれ以上ないことをＳｏＣに対して示すために使用される。
【００７６】
図９は、実施形態の一例に係る図４のサブメモリ４０６の一部をより詳細に概略的に示す。
【００７７】
メモリバンク４１８は、例えば、アドレスバス（ＡＤＤＲ  ＢＵＳ）に連結され、また双方向性マルチプレクサ９０２を介してデータバス（ＤＡＴＡ  ＢＵＳ）に連結される。特に、双方向性マルチプレクサは、例えば一対の入力／出力ポートを有している。一対の入力／出力ポートは、一方はメモリバンク４１８に連結され、もう一方はＤＲＡＭプロセッサ制御インターフェース（ＤＲＡＭ  ＰＲＯＣＥＳＳＯＲ  ＣＯＮＴＲＯＬ  ＩＮＴＥＲＦＡＣＥ）９０４に連結されている。また、例えば、当該双方向性マルチプレクサは、グローバルインターフェース４１５およびローカルインターフェース４２３の少なくともいずれかに対応する。さらに、マルチプレクサ９０２のさらなる入力／出力ポートはデータバスに連結され、また、アドレスデコーダ９０６によって提供される選択信号に基づいて、メモリバンク４１８またはインターフェース９０４に連結され得る。
【００７８】
インターフェース９０４は、例えば、１つ以上の制御レジスタ９０８および、任意にいくつかの共有メモリ９１０を備える。共有メモリ９１０の目的は、例えば、ＤＲＡＭプロセッサからのまたはＤＲＡＭプロセッサへの情報の伝達を止めることなく許可することである。インターフェース９０４は、例えば以下の機能のうち少なくとも１つ以上を許可する：
−あるＤＲＡＭ回路内のＤＲＡＭプロセッサを初期化する；
−ＤＲＡＭプロセッサへパラメータを通信し、ＤＲＡＭプロセッサによるプログラムの実行を開始する；
−結果およびＤＲＡＭプロセッサに関する状態情報を読み込む；および
−ＤＲＡＭプロセッサを停止する。
【００７９】
その他のここに列挙されていない機能もＤＲＡＭプロセッサ制御インターフェースを使用して実装されていてもよい。
【００８０】
ＤＲＡＭプロセッサ制御インターフェースは、例えば、あるＤＲＡＭ回路のＤＲＡＭプロセッサの１つ以上のサブセットによって実行される動作、またはあるＤＲＡＭ回路の全てのＤＲＡＭプロセッサによって広域に実行される動作を許可する。
【００８１】
インターフェース９０４は、例えばＤＲＡＭ回路のアドレス指定可能なメモリ空間の一部を構成する。
【００８２】
ある実施形態では、ＳｏＣのプロセッサによって恒久的にアクセス可能となるインターフェース９０４のアドレス位置を許可するために、ＤＲＡＭ回路のアドレス指定可能なメモリ空間はＤＲＡＭ回路のメモリバンク内のアドレス可能空間よりも大きい。このような場合、アドレスデコーダ９０６は、例えばアドレスがインターフェース９０４に関連付けられたアドレス範囲内である場合にマルチプレクサ９０２がデータバスをインターフェース９０４に連結するように制御する。
【００８３】
別の形態として、ある実施形態では、インターフェース９０４のアドレス位置は最初にＳｏＣに対して可視化される。そして、インターフェース９０４が必要とされない、例えばＤＲＡＭプロセッサが利用されていないことを示唆する場合に特定の停止コマンドによってアクセス不可能とされる。例えば、このような実施形態では、ＤＲＡＭ回路のリセットの直後またはＤＲＡＭ回路の電源を入れた直後に、特定のアドレス範囲がＤＲＡＭプロセッサ制御インターフェース９０４のメモリ空間に対応する。しかし、このアドレス範囲は、停止コマンドがアサートされた場合、標準ＤＲＡＭメモリ空間に変換されてもよい。
【００８４】
他の実施形態では、インターフェース９０４のアドレス位置は最初にＳｏＣに対して不可視化される。そして、図１０を参照して説明する通り、インターフェースが使用される場合に、特定の起動コマンドによってアクセス可能とされる。
【００８５】
図１０は、ＤＲＡＭ回路のアドレス空間内に対してＤＲＡＭプロセッサ制御インターフェースをアクセス可能にする方法における動作を示すフローチャートである。
【００８６】
動作１００１において、ＤＲＡＭリセット動作を実行するか、または、ＤＲＡＭ回路の電源を入れる。まず、ＤＲＡＭ回路のリセットの直後またはＤＲＡＭ回路の電源を入れた直後に、特定のアドレス範囲がＤＲＡＭ回路の標準ＤＲＡＭアドレス空間に対応する。
【００８７】
動作１００２において、例えばＤＲＡＭプロセッサ制御インターフェース９０４およびアドレスデコーダ９０６の少なくともいずれかによって、インターフェース起動コマンドが受信されたか否かが判断される。このようなコマンドが受信された場合、次の動作が１００３となる。
【００８８】
動作１００３において、アドレス範囲をＤＲＡＭプロセッサ制御インターフェース９０４のメモリ空間に変換することにより、ＤＲＡＭプロセッサ制御インターフェースがＤＲＡＭ回路のアドレス空間内において可視化される。
【００８９】
停止コマンドまたは起動コマンドは、例えば図９の破線９１４によって示されるように、ＤＲＡＭ回路の専用入力ピンを介してＳｏＣからアドレスデコーダ９０６へ送信された信号に対応する。
【００９０】
別の形態として、停止コマンドまたは起動コマンドは、例えば、ＭＲＳ（ｍｏｄｅ  ｒｅｇｉｓｔｅｒ  ｓｅｔ）コマンドのような特殊なトランザクション用の特定のＤＲＡＭ回路に存在する１つ以上の制御レジスタ９１６によって保持される値に対応する。例えば、アドレスバスのアドレスが制御レジスタ９１６によって規定されたアドレス範囲内にあるとき、アドレスデコーダ９０６は、マルチプレクサ９０２がデータバスをインターフェース９０４に連結するように制御する。特定のＤＲＡＭ回路内に存在する既存のレジスタを使用するよりも、例えばＭＲＳトランザクションを使用してアクセス可能であるように構成された新たな１つ以上のレジスタを追加することができる。
【００９１】
さらに別の形態として、起動信号または停止信号は、ＳｏＣによってＤＲＡＭ回路の標準メモリバスを介して、例えばアドレスバスを使用して送信されてもよい。このため、アドレスデコーダ９０６およびインターフェース９０４の少なくともいずれかは、本明細書において「マジックシーケンス」と称するＳｏＣからの特定の一連のコマンドを検知するように構成されている。マジックシーケンスは、例えば架空のメモリアクセス、換言すれば、ＤＲＡＭ回路との通信のための標準プロトコルに準拠するが、実際のメモリアクセスからは区別され得るメモリアクセスに対応する一連のコマンドである。例えば、ＤＲＡＭ回路の通常の動作時には起こる可能性がかなり低い、またはその可能性のない一連のコマンドとして選択される。単一のマジックシーケンスよりもある実施形態においては、いくつかのマジックシーケンスがあってもよく、また、インターフェース９０６のアドレス範囲は、例えば、どのマジックシーケンスが適用されるかに依存する。
【００９２】
いくつかの実施形態では、マジックシーケンスの偽陽性検知を避けるため、ＤＲＡＭ回路は例えば、クロック周期の数または受信したリフレッシュトランザクションの数をカウントするクロック周期カウンタまたはリフレッシュカウンタを備える。シーケンスは、例えば、下記の場合にマジックシーケンスとしてみなされない：
−当該シーケンスが１回目、つまりクロック周期の１周期目またはリフレッシュ動作の１回目よりも前に来た場合、例えば、起動シーケンスが完了する前に来た場合、つまり、起動時に偶発的に生成された場合；
−当該シーケンスが２回目、つまりクロック周期の２周期目またはリフレッシュ動作の２回目よりも後に来た場合、例えばＤＲＡＭプロセッサを管理し、またマジックシーケンスを生成し得るソフトウェアドライバは、一般的にオペレーティングシステムが読み込まれた直後かつアプリケーションが読み込まれる前に生成されるが、起動シーケンスを完了してから長い時間の経過後に当該シーケンスが来た場合；
−実際のマジックシーケンスは比較的短期間に起こりやすいが、上記シーケンスが起こるまでに特定の時間よりも多くの時間を要する場合、つまり、特定の数のクロック周期またはリフレッシュ動作よりも多くの時間を要する場合。
【００９３】
マジックシーケンスの一例としては、キャッシュメモリが既に起動されているときに、メモリの他の領域へのいかなる他の中間アクセスなしに当該メモリの同一の領域のＳｏＣプロセッサによる多数の連続のアクセスが挙げられる。特に、ＳｏＣプロセッサはキャッシュメモリが起動されるまでは遅い動作である傾向があるため、キャッシュメモリは一般的に起動シーケンス中のかなり早い段階で起動される。キャッシュが起動されれば、同一のメモリ領域内において多数の連続のアクセスが起こる可能性はかなり低い。
【００９４】
マジックシーケンスの他の一例は、特定のキャッシュ不可能なメモリ領域を定義し、そしてこれらの領域へ多数の連続のアクセスを行うことである。特に、現代のプロセッサは一般的に、キャッシュ可能でないメモリ領域の表示を許可するＭＭＵ（ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）を備える。通常、アプリケーションはメモリの一部がキャッシュ可能でないことを要求する理由はない。なぜなら、このような要求は、性能の著しい低下につながるし、また、それに対する利点もないからである。キャッシュがオンの場合、つまりキャッシュが使用される場合、同一のＤＲＡＭメモリ領域への多数の連続のアクセスが行われる可能性はほとんどない。したがって、マジックシーケンスは、例えばあるＤＲＡＭメモリ領域への多数のメモリアクセスの存在によって検知される。
【００９５】
マジックシーケンスのさらに他の一例としては、以下により詳細に説明する通り、メモリはライトスルーにおいてキャッシュ可能である事実が挙げられる。
【００９６】
メモリ領域がキャッシュ可能なとき、動作の「リードアロケート」モードに係る読み取り動作は、下記の動作を伴う：
ａ．読み取り動作における対象領域が既にキャッシュに存在するか否かを確認する；
ｂ．（ｉ）対象領域が既にキャッシュに存在する場合、キャッシュラインが読み出され、読み取り動作が完了する；
ｂ．（ｉｉ）対象領域がまだキャッシュに存在しない場合、当該対象領域はキャッシュに読み込まれ、このキャッシュラインが読み出され、そして読み取り動作が完了する。
【００９７】
書き込み動作は、「ライトアロケート」モードまたは「ライトスルー」モードの２つのモードのうちの１つを使用して実行される。
【００９８】
ライトアロケートモードに係る書き込み動作は、下記の動作を伴う：
ａ．書き込み動作における対象領域が既にキャッシュに存在するか否かを確認する；
ｂ．（ｉ）対象領域が既にキャッシュに存在する場合、対応するキャッシュラインが書き込まれ、そして書き込み動作が完了する；
ｂ．（ｉｉ）対象領域がまだキャッシュに存在しない場合、当該対象領域はキャッシュラインに読み込まれ、キャッシュラインが書き込まれ、そして書き込み動作が完了する。
【００９９】
ｃ．キャッシュラインがキャッシュから取り除かれ、メインメモリの更新に使用されるときに、キャッシュからメインメモリにデータが書き込まれる。
【０１００】
ライトスルーモードに係る書き込み動作は、下記の動作を伴う：
ａ．書き込み動作における対象領域が既にキャッシュに存在するか否かを確認する；
ｂ．対象領域が既にキャッシュに存在する場合、対応するキャッシュラインが書き込まれる；
ｃ．対象領域が既にキャッシュに存在するか否かに関わらず、データがメインメモリに書き込まれる。
【０１０１】
ライトスルーモードでは、バースト長が書き込まれるデータよりも長いためにトランザクションのいくつかの語句が書き込まれないバーストライトトランザクションを使用してもよい。一方、ライトアロケートモードでは、トランザクションの全ての語句が書き込まれるバーストライトトランザクションのみを使用する。
【０１０２】
ＳｏＣのプロセッサは、例えばＭＭＵを介して、メモリの各ページへのアクセスが：
１）キャッシュ可能か否か；または
２）一般的に「ライトアロケート」モードと称されるリードアロケートおよびライトアロケートを使用してキャッシュ可能か否か；または
３）一般的に「ライトスルー」モードと称されるリードアロケートおよびライトスルーを使用してキャッシュ可能か否か、
を特定することが可能である。
【０１０３】
これらのモードのうち、一般的に最高の性能を提供するのはライトアロケートモードである。しかし、ライトスルーモードは、フレームバッファが存在する特定のハードウェア構成において使用されるものである。フレームバッファは、例えば、バススヌーピングの実行が不可能であり、したがってプロセッサのキャッシュから読み取られるデータを取り出すことが不可能なディスプレイプロセッサによって読み出される。
【０１０４】
現代のＳｏＣにおいては、プロセッサは、他のプロセッサのキャッシュにおいて読み取られるデータを取り出すためにバススヌーピングを使用することが可能である。したがって、一般的にはライトスルーモードを使用する必要はない。
【０１０５】
したがって、マジックシーケンスは、ライトスルーモードを使用して行われるアクセスであって、特定の文字が書き込まれないバーストアクセスが実行されたという事実によって検知可能なアクセスに対応してもよい。例えば、書き込み許可信号は少なくとも１つのデータ値についてネゲートされる。
【０１０６】
マジックシーケンスのさらなる一例として、異常、特殊、および一時的なアクセス位置を使用した一連のメモリアクセスが挙げられる。特に、キャッシュが使用されるとき、同一のメモリアドレスへの繰り返しのアクセスは、ＤＲＡＭ回路のメモリバンクの代わりにキャッシュを使用して実行される。したがって、メモリバンクの比較的小さい領域内で、例えばいくつかの語句の中での繰り返しアクセスであって、比較的短時間内、例えば数百マイクロ秒内の繰り返しアクセスは、マジックシーケンスとしてはありえないであろう現象として認識されてもよい。
【０１０７】
本明細書において説明する実施形態の１つの利点は、内部プロセッサを有するＤＲＡＭ回路は、ＤＲＡＭ回路とＳｏＣの間のデータ転送動作をある程度低減することにより性能向上を許可することである。また、これと同時に、ＤＤＲプロトコルに準拠した動作が可能である。さらに、メモリ回路のアドレス空間内においてアクセス可能な制御レジスタのセットとしてプロセッサ制御インターフェースを実装することにより、当該インターフェースは、中央プロセッサ内に専用ハードウェアを設けることなく実装され得る。したがって、このような解決策は、ハードウェアに対する変更を必要とすることなく中央処理装置の既存のデザインに適用され得る。特に、上記インターフェースは、例えば中央プロセッサによって実行されるソフトウェアに実装される。当該ソフトウェアは、内部プロセッサが動作を実行する間に中央プロセッサがメモリアレイの１つ以上のバンクにアクセスすることを防止するアクセス排他プロトコルを実装する。中央プロセッサは、例えばいつ内部プロセッサによって動作が実行されているのかを認識することができる。なぜなら、中央プロセッサは処理コマンドを内部プロセッサへ送信する役割があり、また、いつ内部プロセッサが動作を終了したかを示すデータにプロセッサ制御インターフェースを介してアクセスできるからである。したがって、アクセス排他プロトコルは中央プロセッサおよび内部プロセッサが同時にアクセスしようとすることを防止し、これによってこれらのプロセッサ間の衝突調停の必要性を回避する。
【０１０８】
メモリ回路内のリフレッシュ動作を遅延するための機序を提供する１つの利点は、リフレッシュ動作が、中央プロセッサ（例えば中央プロセッサのメモリコントローラ）によって標準的な方法で生成されてもよいことである。したがって、メモリコントローラは、どの動作がメモリ回路の内部プロセッサによって現在実行されているのかを認識する必要がない。
【０１０９】
このように少なくとも１つの例示的な実施形態を説明したが、当業者は種々の変更、改良、および改善を容易に行うことができる。
【０１１０】
例えば、１つのＤＲＡＭプロセッサあたりに１つのＤＲＡＭプロセッサ制御インターフェースがある実施形態を説明した。しかしながら、いくつかの実施形態においては、いくつかのプロセッサによってこのような１つのインターフェースが共有され得ることは当業者には明らかである。
【０１１１】
さらに、種々の実施形態に関する種々の構成が、別の実施形態においてはいかなる組み合わせによっても組み合わされ得ることは当業者には明らかである。
【図１】
0006710219.tif 000002
【図２】
0006710219.tif 000003
【図３】
0006710219.tif 000004
【図４】
0006710219.tif 000005
【図５】
0006710219.tif 000006
【図６】
0006710219.tif 000007
【図７】
0006710219.tif 000008
【図８】
0006710219.tif 000009
【図９】
0006710219.tif 000010
【図１０】
0006710219.tif 000011