JP6710219B2 - 統合プロセッサを備えたdram回路 - Google Patents

統合プロセッサを備えたdram回路 Download PDF

Info

Publication number
JP6710219B2
JP6710219B2 JP2017544346A JP2017544346A JP6710219B2 JP 6710219 B2 JP6710219 B2 JP 6710219B2 JP 2017544346 A JP2017544346 A JP 2017544346A JP 2017544346 A JP2017544346 A JP 2017544346A JP 6710219 B2 JP6710219 B2 JP 6710219B2
Authority
JP
Japan
Prior art keywords
memory
processor
dram
circuit
refresh
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017544346A
Other languages
English (en)
Other versions
JP2018511860A (ja
Inventor
ドゥヴォー,ファブリス
ロイ,ジャン−フランソワ
Original Assignee
アップメム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アップメム filed Critical アップメム
Publication of JP2018511860A publication Critical patent/JP2018511860A/ja
Application granted granted Critical
Publication of JP6710219B2 publication Critical patent/JP6710219B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本開示は、統合プロセッサを備えたDRAM(dynamic random access memory)回路およびそのようなメモリを利用した通信方法の分野に関する。
現代のコンピュータは、一般的に処理回路を備えており、処理回路はしばしばシステムオンチップ(SoC)として実装され、また1つ以上の動的ランダムアクセス記憶装置(DRAM)回路に連結される。一般的に周期的なリフレッシュ動作を必要とするこのようなメモリは、密集した作りであり、また比較的高速にアクセスできる。したがって、このようなメモリは、ほとんどのコンピュータにおいて主なRAMデータ記憶部として使用される。しかし、SoCとDRAM回路の間で転送されるデータ量が常に増加していることで、このように転送されるデータは、コンピュータの動作を減速させ、また比較的大きいエネルギー消費をもたらす傾向にある。
解決策として、SoC内のプロセッサに加えて、1つ以上のプロセッサが一体化されたDRAM回路を提供することが提案されている。このような解決策においては、特定の処理タスクをDRAMプロセッサに任せることでDRAM回路とSoCの間のデータ転送レベルを低減させ、これによって、DRAM回路とSoCの間のデータ転送を回避しながら当該処理タスクを行うことができる。
しかし、統合プロセッサを備えたDRAM回路には、SoCを備えたインターフェースが時間を要し、さらに実装が高コストであるという問題がある。
国際特許出願公開第WO2010/141221号には、内部プロセッサに関連付けられたメモリアレイへのアクセスを調停するシステムおよび方法を記載している。当該調停は、通信要求および許可信号のための電気的接続による制御インターフェースを介した、メモリ制御器を備えた外部プロセッサと内部プロセッサとのインターフェース接続を含む。
国際特許出願公開第WO2010/141221号
上記国際特許出願公開第W02010/141221号に記載されたシステムには、メモリ制御器を内蔵した外部プロセッサは、内部プロセッサとの調停制御信号の送受信を許可するために変更されなければならないという問題がある。前記の問題により、解決策が高コストおよび複雑なものとなっている。
本開示の実施形態の目的は、上記先行技術における1つ以上の問題を少なくとも部分的に解決することである。
一態様によれば、1つ以上のメモリバンクを備えるメモリアレイ、第一のプロセッサ、および中央プロセッサから当該第一のプロセッサへ向けられたデータ処理コマンドを受信するプロセッサ制御インターフェース、を有するメモリ回路であって、当該プロセッサ制御インターフェースは、いつ上記第一のプロセッサが上記メモリアレイの上記メモリバンクの1つ以上へのアクセスを終了したかを上記中央プロセッサに対して示すように適合されており、上記プロセッサ制御インターフェースは、上記メモリバンクが上記中央プロセッサからアクセス可能になっていることを特徴とするメモリ回路が提供される。
一実施形態によれば、上記メモリ回路は、リフレッシュ制御回路をさらに備える動的ランダムアクセス記憶装置(DRAM)回路であり、上記リフレッシュ制御回路は、上記メモリアレイの上記メモリバンクの少なくとも1つにおいてデータリフレッシュ動作を実行するためのリフレッシュトランザクションを上記中央プロセッサから受信し、当該少なくとも1つのメモリバンクが上記第一のプロセッサによってアクセスされているか否かを判定し、そうであれば、上記データリフレッシュ動作の開始時間を遅延する。
一実施形態によれば、上記リフレッシュ制御回路はリフレッシュ保留レジスタを備え、上記データリフレッシュ動作の開始時間の遅延は、当該リフレッシュ動作が保留されていることを上記リフレッシュ保留レジスタにおいて示すことを含む。
一実施形態によれば、上記プロセッサ制御インターフェースは上記メモリ回路のアドレス空間内においてアクセス可能な制御レジスタのセットを備える。
一実施形態によれば、上記メモリ回路の上記アドレス空間は、上記制御レジスタのセットに恒久的に関連付けられた1つ以上のアドレスを含む。
一実施形態によれば、上記メモリ回路の上記アドレス空間は、上記制御レジスタのセットに関連付けられた1つ以上のアドレスを含み、1つ以上のアドレスは、レジスタ起動制御信号のアサーションについて上記メモリアレイのアドレスに変換される。
一実施形態によれば、上記メモリ回路は、上記制御レジスタのセットを当該メモリ回路の上記アドレス空間内においてアクセス可能にするための起動信号を上記中央プロセッサから受信する。
一実施形態によれば、上記起動信号はアドレスバスを介して提供され、上記プロセッサ制御インターフェースによって検知可能である。
一実施形態によれば、上記制御レジスタのセットをアクセス可能とする上記メモリアクセスシーケンスは、全ての語句が書き込まれるわけではないバーストアクセスシーケンスである。
一実施形態によれば、上記制御レジスタのセットをアクセス可能とする上記メモリアクセスシーケンスは、1周期目における上記メモリバンクの1つのメモリ領域内のメモリセルへの複数のメモリアクセスである。
一実施形態によれば、上記メモリ回路は、上記メモリアクセスシーケンスを、上記メモリアクセスシーケンスが受信される期間、および上記メモリアクセスシーケンスの継続時間、またはそれ以上に基づいて検知する。
さらなる態様によれば、複数のメモリ回路、および共通Nビットデータバスを介して上記メモリ回路の各々に連結された中央プロセッサ、を備えるシステムであって、上記メモリ回路の各々は、上記Nビットデータバスに連結されたNビットバスインターフェースを備える、システムが提供される。
さらなる態様によれば、メモリ回路にアクセスする方法であって、当該メモリ回路は、1つ以上のメモリバンクを有するメモリアレイ、第一のプロセッサ、およびプロセッサ制御インターフェース、を備え、上記方法は、中央プロセッサから上記第一のプロセッサへ向けられたデータ処理コマンドを上記プロセッサ制御インターフェースによって受信する工程、およびいつ上記第一のプロセッサが上記メモリアレイの上記メモリバンクの1つ以上へのアクセスを終了したかを上記プロセッサ制御インターフェースによって上記中央プロセッサ(P1、P2)に対して示すように適合された工程であって、上記メモリバンクは上記中央プロセッサ(P1、P2)からアクセス可能になっている工程、を含む。
一実施形態によれば、上記メモリ回路が動的ランダムアクセス記憶装置(DRAM)回路であり、上記方法は、上記メモリアレイの上記メモリバンクにおいてデータリフレッシュ動作を実行するためのリフレッシュトランザクションをリフレッシュ制御回路によって受信する工程、および上記メモリバンクが上記第一のプロセッサによってアクセスされているか否かを上記リフレッシュ制御回路によって判定し、そうであれば、上記データリフレッシュ動作の開始時間を遅延する工程、をさらに含む。
一実施形態によれば、上記プロセッサ制御インターフェースは制御レジスタのセットを備え、上記制御レジスタのセットを上記メモリ回路のアドレス空間内においてアクセス可能にするための起動信号を、上記プロセッサ制御インターフェースによって上記中央プロセッサから受信する工程、をさらに含む。
前記およびその他の構成および利点は、添付の図面を参照した非限定的な例示によって、下記の実施形態の詳細な説明から明らかになるであろう。
図1は、実施形態の一例に係る、統合プロセッサを有するDRAM回路を備えた計算システムを概略的に示す。 図2は、一例に係るDRAMデータバスを概略的に示す。 図3は、本開示の一実施形態に係るDRAMデータバスを概略的に示す。 図4は、実施形態の一例に係る図1の計算システムの一部をより詳細に概略的に示す。 図5は、実施形態の一例に係る図4のメモリバンクをより詳細に概略的に示す。 図6は、実施形態の一例に係るDRAMプロセッサに処理タスクを任せる方法における動作を示すフローチャートである。 図7は、実施形態の一例に係るリフレッシュ制御回路を概略的に示す。 図8は、実施形態の一例に係るリフレッシュ制御方法の工程を示すフローチャートである。 図9は、実施形態の別の一例に係る図4のDRAM回路の一部をより詳細に概略的に示す。 図10は、実施形態の一例に係るDRAMアドレス空間内においてDRAMプロセッサ制御インターフェースを可視化する方法における動作を示すフローチャートである。
本開示は、メモリ回路がDRAM回路である一例に係る、統合プロセッサを備えるメモリ回路の実施形態を説明する。図示されてはいないが、当業者であれば、DRAM回路が記憶装置であり、データビットを示す電圧値を記憶するコンデンサ、およびメモリセルへのアクセスを制御するスイッチ、を備えるメモリセルのアレイによってデータが記憶されることを理解する。しかし、本明細書において説明する原理は、リフレッシュ動作を必要とするまたは必要としない他の種類のメモリ回路にも容易に適用され得る。本明細書において説明する実施形態の1つの利点は、メモリ回路への1つ以上のプロセッサの統合は、このような統合プロセッサとの通信機能を持たない旧来のメモリインターフェースが当該メモリ回路との通信に使用されることを妨げないことである。
図1は、実施形態の一例に係る計算システム100を概略的に示す。計算システム100は、本一例においてシステムオンチップ(SoC)として実装される中央処理装置102を備えている。当該中央処理装置102は1つ以上のプロセッサ(図示しない)、および複数のDRAM回路と通信するためのDDRマスターインターフェース(DDR MASTER INTERFACE)103を備える。
図1に示す例にはDRAM0〜DRAM3として示された4つのDRAM回路があるが、他の実施形態においては、いかなる数のDRAM回路があってもよい。
DRAM回路DRAM0は、DRAMメモリアレイ(MA)104および1つ以上の内部プロセッサ(P)106(以下、DRAMプロセッサと称する)を備える。DRAM回路DRAM0は、例えば、DRAMプロセッサの各々に関連付けられたDRAMプロセッサ制御インターフェース(I)107をさらに備えることにより、SoC102における1つ以上のプロセッサが対応するプロセッサ106と通信することを許可する。DDRスレーブインターフェース108は、例えば、DDRマスターインターフェース103との通信のためにDRAM回路DRAM0内に与えられる。
同様に、DRAM回路DRAM1、DRAM2、DRAM3はそれぞれ、DRAMメモリアレイ114、124、134および1つ以上の内部プロセッサ(P)116、126、136を備える。DRAM回路DRAM1、DRAM2、DRAM3は、例えば、それぞれDRAMプロセッサ制御インターフェース117、127、137をさらに備える。これにより、DRAM回路DRAM1、DRAM2、DRAM3は、SoC102における1つ以上のプロセッサがそれぞれプロセッサ116、126、136を制御することを許可する。DDRスレーブインターフェース118、128、138は、例えば、DDRマスターインターフェース103との通信のために、回路DRAM1、DRAM2、DRAM3内に与えられる。
DDRマスターインターフェース103とスレーブインターフェース108、118、128、138の各々の通信は、例えばバスリンク140を介して行われる。当該バスリンク140は、アドレスバス、データバス、および、場合によっては1つ以上のさらなる制御線(図1には図示しない)を備える。バスリンク140を介したDRAM回路DRAM0〜DRAM3との通信は、例えばDDRプロトコルの1つに準拠する。
「DDRプロトコル」は、本明細書において、以下のプロトコルの何れも指すように用いられる:DDR1、DDR2、DDR3、DDR4、RLDRAM(低レイテンシランダムアクセスメモリ)、RLDRAM2、およびこれらのプロトコルと同様のいかなるプロトコル。
図2は、SoC(図示しない)を4つのDRAM回路DRAM0〜DRAM3に接続するための64ビット幅データバス(DATA BUS)を概略的に示す。図示されるように、当該データバスは、回路DRAM0〜DRAM3の各々が64ビット幅データバスのうちの16ビットずつを受信するように分割されている。例えば、DRAM0回路はビット0〜15を受信し、バイト0、1、8、9、16、17等を含む。DRAM1回路はビット16〜31を受信し、バイト2、3、10、11、18、19等を含む。DRAM2回路はビット32〜47を受信し、バイト4、5、12、13、20、21等を含む。DRAM3回路はビット48〜63を受信し、バイト6、7、14、15、22、23等を含む。このような構成の1つの利点は、個々のDRAM回路に対して別々にアドレッシングする必要がないことである。しかし、各々のDRAM回路にプロセッサが一体化されたされた場合、図2のデータバス構成の難点としては、各々のDRAM回路が非連続のデータを記憶するため、SoCプロセッサの制御下における当該データの処理が高度に複雑になることである。
図3は、SoC(図示しない)を4つのDRAM回路DRAM0〜DRAM3に接続するための64ビット幅データバス(DATA BUS)を概略的に示す。本一例においては、各々のDRAM回路は64ビットデータバスに連結された64ビットバスインターフェースを備えていることで、各々のDRAM回路はデータバス上で送信された全てのビットを受信する。したがって、各々のDRAM回路は全メモリの連続した領域を連続した形で含む。より一般的には、SoCのデータバスはNビットであり、このとき、Nは2以上の整数であり、DRAM回路の各々はNビットデータバスを有する。
また、各々のDRAMメモリアクセスのためにSoCがDRAM回路を選択できる機構も備えられている。
一実施形態においては、SoCまたは追加のアドレス復号回路は、出力線においてチップ選択信号CSを提供することが可能である。図3の破線CSにおいて示されるように、信号CSは、例えば所定のメモリアクセスに対してこれらのDRAM回路の1つを選択するために、各々のDRAM回路に提供される。4つのDRAM回路がある場合、信号CSは例えば2ビット信号であり、値「00」、「01」、「10」、「11」は、それぞれDRAM回路DRAM0、DRAM1、DRAM2、DRAM3に関連付けられる。異なる数のDRAM回路がある場合、信号CSは異なる数のビットを含んでいてもよい。
他の一実施形態においては、SoCまたは追加のアドレス復号回路は、各々のDRAM回路に対して専用チップ選択信号CSを提供することが可能である。この場合、破線CSは、DRAM0回路に提供される専用信号CS[0]、DRAM1回路に提供される専用信号CS[1]、DRAM2回路に提供される専用信号CS[2]、およびDRAM3回路に提供される専用信号CS[3]、を備える4ビット幅バスである。
別の一実施形態においては、DRAM回路の各々は、全アドレス範囲のうちの異なるアドレス範囲を復号するように構成されている。DRAM回路DRAM0〜DRAM3がそれぞれ有するアドレスデコーダ300〜303は、例えば、それぞれ対応するアドレス範囲を復号ように構成されている回路を有する。しかし、このような解決策においては、DRAM回路がそれぞれ同一ではなくなるため、製造方法がより複雑になるという難点がある。
別の解決策では、各々のアドレスデコーダ300〜303に関連付けられ、またそれぞれ破線四角形310〜313に示されるヒューズを提供する。当該ヒューズは、例えば、レーザー、当該ヒューズに印加される電圧、または当該ヒューズに流れる電流によってプログラムされ種類である。また当該ヒューズがDRAM回路の製造の後にプログラムされることによって、各々のDRAM回路が特定のアドレス範囲を復号するように構成される。
さらに別の解決策では、各々のDRAM回路に受け付けられるアドレス範囲は、リセット動作の直後またはDRAM回路の電源を入れた後にDRAM回路の入力ピンに提供される入力信号によって電気的に構成されてもよい。入力ピンは、この特定の目的のための専用ピンでもよいし、または、アドレス範囲の定義を可能にするために、構成フェーズ中にDRAM回路の標準入力/出力ピンが使用されてもよい。
各々のデート線が1つより多いDRAM回路に連結されている図3のデータバスにおいては、当該データ線の電気容量の増加につながることが多い。この対策として、各々のデータ線にバッファ回路が追加されてもよい。これにより、メモリアクセスのレイテンシが1サイクル分以上増加する可能性が高いが、全体的な待ち時間としては比較的わずかな割合の増加である。加えて、または別の形態として、DRAM回路がDIMM(dual in−line memory module)規格の1つに準拠するメモリモジュールに搭載される。この場合、追加的な線容量およびバッファ回路の少なくともいずれかの追加がこのようなDIMMメモリモジュールによってどのようにマスクされるのかは、当業者にとって明らかである。
図4は、SoC102およびDRAM回路DRAM0をより詳細に概略的に示す。その他のDRAM回路DRAM1〜DRAM3は、例えば同様の構成を有する。
SoC102は、例えばプロセッサP1およびP2を備え、当該プロセッサP1およびP2の各々はDRAM回路DRAM0へのアクセスが可能である。プロセッサP1およびP2の各々は、例えば、対応する命令メモリ(図4には図示しない)に記憶された指示によって制御される。図4の例では、SoCは2つのプロセッサを有するが、別の実施形態においてはいかなる数のプロセッサがあってもよい。
DRAM回路DRAM0は、例えば複数のサブメモリ406、408、410、412および共通DDRスレーブインターフェース(DDR SLAVE INTERFACE)414を備えている。当該共通DDRスレーブインターフェース414はDRAM回路のグローバルDRAMプロセッサ制御インターフェース(GI)を備えている。当該DRAM回路DRAM0は、サブメモリの各々に連結された共通リフレッシュコントローラ(REFRESH CONTROLLER)416を備える。図4の例では4つのサブメモリがあるが、いかなる数であるM個のサブメモリがあってもよい。
サブメモリ406は詳細に例示され、その他のサブメモリは、例えば同一の構成要素を備える。サブメモリ406は例えば、DRAM回路DRAM0のメモリアレイの下位部分を構成するメモリバンク(MEMORY BANK)418を備える。サブメモリ406はさらに、例えば上記メモリバンク418に連結されたプロセッサ(DRAM PROCESSOR)420を備えている。当該プロセッサ(DRAM PROCESSOR)420は、ローカルDRAMプロセッサ制御インターフェース(LI)423を備えるメモリバンク制御回路(MEMORY ARRAY CONTROL)422、リフレッシュ制御回路(REFRESH CONTROL)424、命令メモリ425、処理パイプライン(PIPELINE)426、および当該プロセッサのローカルメモリ(LOCAL MEMORY)428を備える。
図4に示す実施形態では、DRAM0回路のDRAMプロセッサ制御インターフェースは、サブメモリの各々において、グローバルインターフェース415およびローカルインターフェース423によって実装される。しかし、別の一実施形態では、DRAMプロセッサ制御インターフェースはサブメモリの各々においてグローバルインターフェース415のみで実装されてもよいし、またはローカルインターフェース423のみによって実装されてもよい。
下記でより詳細に説明する通り、リフレッシュ制御回路424は、DRAMプロセッサの1つによるデータ処理動作が進行中にサブメモリによって受信されたリフレッシュトランザクションの制御を許可する。
メモリバンク制御回路422は、例えばそのバンクへ向けたDDRメモリ要求およびDRAMプロセッサ要求間の多重化を提供する。
処理パイプライン426は、例えば命令メモリ425に記憶された指示によって動作が制御されるデータ処理要素を備える。DRAMプロセッサは、SoCプロセッサに対して相補的役割を担うことを考慮して、例えば、異なる命令セットを用いる。例えば、DRAMプロセッサは、SoCプロセッサによって使用されるものに比べて縮小された命令セットを使用する。例えば、ある実施形態では、DRAMプロセッサによって実行される1つ以上の指示は、SoCプロセッサによって、グローバルインターフェース415およびローカルインターフェース423の少なくともいずれかを介してDRAMプロセッサの命令メモリ425に直接書き込まれる。加えて、または別の形態として、DRAMプロセッサによって実行される1つ以上の指示は、SoCプロセッサによって直接メモリバンク418に書き込まれる。そして、SoCプロセッサは、DRAMプロセッサに対して、メモリバンク418からの指示を当該DRAMプロセッサの命令メモリ425に読み出すよう指示してもよい。
ローカルメモリ428は、例えば、処理パイプライン426がメモリバンク418に保存されたデータに対する動作を行うときに使用するデータを、一時的にまたは非一時的に記憶する。
図4には図示しないが、SoCとDRAM回路の間に、1つ以上のさらなる中間回路があってもよい。例えば、DRAM回路がいわゆるフルレジスタードDIMMまたはフルバッファードDIMMの規格に準拠して搭載される場合、追加的で複雑な処理機能を可能にするための拡張メモリバッファ(AMB:advanced memory buffer)が備えられてもよい。
図5は、実施形態の一例に係る図4のメモリバンク418をより詳細に概略的に示す。図示されるように、メモリバンク418は例えばDRAMメモリ行(MEMORY ROWS)のブロック502およびアクセスレジスタ(ACCESS REGISTER)504を備える。
DRAM回路DRAM0のメモリバンク418中のアドレスで読み取り動作が行われている間、メモリバンク418は当該アドレスの一部によって選択される。そして、メモリバンク418の読み取られる行はアドレスに基づいて識別され、当該行のデータはアクセスレジスタ504に読み込まれる。そして、この行を構成する1つ以上の語句は、アクセスレジスタ504から読み取られ、SoC102のプロセッサに提供されてもよいし、または、内部処理動作が実行される場合は、プロセッサ420のローカルメモリ428に提供されてもよい。
DRAM回路DRAM0のメモリバンク418中のアドレスで書き込み動作が行われている間、メモリバンク418は当該アドレスの一部によって選択される。そして、メモリバンク418の書き込まれる行はアドレスに基づいて識別され、アクセスレジスタ504に読み込まれる。そして、この行を構成する1つ以上の語句は、SoC102のプロセッサによってアクセスレジスタに書き込まれてもよいし、または、内部処理動作が実行される場合は、プロセッサ420のローカルメモリ428に書き込まれてもよい。アクセスレジスタ504がメモリバンク502の他の行へのアクセスのために再度使用されるとき、またはリフレッシュ動作が実行される場合は、アクセスレジスタ504のコンテンツは、メモリバンク418の対応する行に再度書き込まれる。
また、複数行分のデータをメモリ行502からアクセスレジスタ504へ、またはアクセスレジスタ504からメモリバンクのメモリ行502への転送動作は、数クロック周期にわたって実行される比較的遅い動作であり、一度開始すれば中断すべきではない。
さらに、SoCプロセッサP1、P2、および内部DRAMプロセッサの少なくともいずれかは、DRAM回路の同一のメモリバンクにファインインターレス方式でアクセスできない。これについて、下記のようなシナリオで例示される:
−DRAMプロセッサがメモリバンクの行の1つについて、当該メモリバンクのアクセスレジスタへの読み込みを開始する。この動作は数サイクルを要する;そして
−読み込み動作の終了の前に、SoCプロセッサの1つが、メモリバンクの他の行が同一のアクセスレジスタに読み込まれることを要求する。SoCプロセッサは、この読み込み動作が設定された数のサイクル内で完了することを見積もっている。
この現象には、潜在的な問題がある。なぜなら、DDRプロトコルによれば、SoCプロセッサからの要求が無視されることまたは遅延されることを許可しないし、また、バンク回路もメモリバンク内の読み込み動作が途中でキャンセルされることを許可しない。さらに、DDRプロトコルは、DRAM回路へアクセスしているSoCプロセッサへ当該DRAM回路が以下のことを通知することを許可する機序を規定しない:
−メモリアクセス要求を早急に処理することができない;
−要求されたデータが即座に利用できない;または
−要求されたデータが利用できるようになる時間。
したがって、上記で強調したような場合には、SoCプロセッサは、読み込み動作に関連付けられた設定された数のサイクルの後に、アクセスレジスタは要求されたデータを実際には含んでいないも関わらず含んでいるとみなす確率が高い。
この問題は、以下に図6を参照してより詳細に説明する通り、DDRプロトコルとも互換性があり、SoCプロセッサおよびDRAMプロセッサによって使用されるアクセスプロトコルを規定することにより、少なくとも部分的に解決される。
図6は、本開示の一実施形態に係るDRAM回路へアクセスする方法においての動作を示すフローチャートである。
動作601において、SoCの1つ以上のプロセッサは、1つ以上のDRAMプロセッサによって処理されるデータを、DRAM回路の対応するメモリバンクに読み込ませる。例えば、図4のサブメモリ406のプロセッサ420が処理動作を実行する場合、データは例えばメモリバンク418に読み込まれる。
動作602において、SoCプロセッサの1つ以上は、1つ以上のDRAMプロセッサに対し、当該1つ以上のDRAMプロセッサがデータの処理を開始してもよい旨を示すためにDRAM回路のDRAMプロセッサ制御インターフェースを使用する。
動作603において、DRAMプロセッサによるデータ処理が実行され、この処理の間、SoCのプロセッサによって実行されるソフトウェアは、対応するメモリバンクにアクセスしない。DRAMプロセッサの1つがメモリバンク内のデータを処理している間にSoCプロセッサの1つが当該メモリバンクにアクセスしようとした場合、例えば曖昧な応答が提供される。ある実施形態においては、このエラーが起こったことを示し、またデバッギングを円滑にするためのエラーフラグがDRAMプロセッサ制御インターフェースのレジスタにおいて設定されてもよい。
ある実施形態においては、各々のDRAMプロセッサはそのサブメモリ内のあるメモリバンク専用である。別の形態として、場合によっては、1つより多いDRAMプロセッサが同一のメモリバンクへアクセス可能でもよい。このような場合、DRAMプロセッサが当該メモリバンクに正確にアクセスすることを許可するために、当該DRAMプロセッサ間に調停手順が実装されていてもよい。当業者であれば、このような調停手順がSoCとの通信のために使用されるDDRインターフェースによって抑制されないこと、したがっていかなる適当な調停手順が実装されてもよいことを理解する。
続く動作604において、DRAMプロセッサによるデータ処理がいつ完了するかが判定される。完了したとき、次の動作は、メモリバンクがSoCプロセッサによってアクセス可能になる605である。例えば、DRAMプロセッサ制御インターフェースは、DRAMプロセッサがメモリバンク内のデータの処理を終了したことを、SoCプロセッサによって実行されるソフトウェアに通知するために使用される。例えば、DRAMプロセッサ制御インターフェースは、SoCプロセッサによってアクセス可能なレジスタである。このとき、DRAMプロセッサ制御インターフェースは、DRAMプロセッサがタスクを終了したか否か、または少なくともメモリバンクにアクセスする必要があるタスクの一部を終了したか否かを示すステータスビットを含むレジスタを含む。DRAMプロセッサがメモリバンク内のデータの処理を終了し、当該データが再びSoCプロセッサによってアクセス可能となるように解放する。このとき、DRAMプロセッサは、例えば、他の処理動作を実行するようにSoCプロセッサから指示されるまで再びメモリバンクにアクセスしないように構成される。
場合によっては、特定のメモリバンクに記憶されたデータに急速にアクセスするために、SoCプロセッサがDRAMプロセッサによる処理を途中で停止することを許可してもよい。例えば、この動作は、SoCプロセッサによって優先度の高いタスクが実行される場合に適当である場合がある。この動作は、例えばDRAMプロセッサ制御インターフェースを介して停止コマンドをアサートすることによって実現される。例えば、DRAMプロセッサは停止コマンドを受信した後に、1つ以上の現在のアクセス動作を完了するために数サイクルを要し、メモリバンクへのアクセスが可能になったとき、DRAMプロセッサ制御インターフェースを介してSoCプロセッサに通知する。
図6を参照して説明されたDRAMメモリアクセス方法の1つの利点は、DRAMプロセッサがSoCプロセッサと絶対に競合しないことを保証する点である。さらに、SoCプロセッサは、DDR型のプロトコルに準拠した通常の決定論的方法でDRAM回路のメモリバンクへのアクセスが可能である。
もちろん、DRAMプロセッサがデータ処理を行っている間は、SoCプロセッサは特定のメモリバンクへのアクセスを拒否される。しかし、各々のDRAM回路に数個のメモリバンクがあり、1つのDIMMモジュールに数個のDRAM回路があり、また潜在的に数個のDIMMモジュールがあることから、SoCプロセッサの動作はブロックされにくい。事実、他のDRAMプロセッサによって事前に要求された処理動作の結果は、収集可能である可能性が高い。
図7は、実施形態の一例に係るDRAMサブメモリのリフレッシュ制御回路(REFRESH CONTROL)424をより詳細に概略的に示す。
前述のとおり、DRAM回路は、データ損失を防止するために周期的なリフレッシュ動作を必要とする。例えば、特定のDRAM技術では、通常、メモリバンクの全ての行がリフレッシュされるまでに64msという時間を必要とする。例えば、SoC102のメモリ制御器に一体化されたリフレッシュ制御システムは、場合によってはあるDRAM回路用の複数のリフレッシュトランザクションをまとめたリフレッシュパケットとして送信され得る周期的なリフレッシュトランザクションを生成する。
なお、一般的には、リフレッシュ動作の例えば少なくとも数十マイクロ秒の遅延を許可する、リフレッシュ周期性における特定の公差がある。場合によっては、後に来るリフレッシュトランザクションの前にリフレッシュ動作が実行されれば十分である。さらに、リフレッシュ動作はメモリバンクによって保存されているデータを変更しない。
リフレッシュ制御回路424は、DRAMプロセッサによるメモリバンクへのアクセスが終了するまでリフレッシュ動作が遅延されることを許可することができる。
リフレッシュ制御回路424は、リフレッシュトランザクション(REFRESH)を受信する。リフレッシュ制御回路424は、例えばリフレッシュ保留レジスタ(REFRESH PENDING)702および遅延リフレッシュカウンタ(DELAYED REFRESH COUNTER)704を備える。
図7のリフレッシュ制御回路424の動作を、図8を参照してより詳細に説明する。
図8は、リフレッシュトランザクションを処理する方法における動作を示すフローチャートである。この方法は、例えば、DRAM回路のサブメモリ406〜412の各々のリフレッシュ制御回路424によって局所的に実行される。まず、図4の回路DRAM0のようなDRAM回路がリフレッシュトランザクションを受信したこと、リフレッシュコントローラ416がサブメモリ406、408、410、412の各々のリフレッシュ制御回路424にリフレッシュトランザクションを伝搬したこと、およびそれらのリフレッシュ制御回路424が、即座にリフレッシュ動作を実行することが可能であること、を想定する。
動作801において、サブメモリの1つのリフレッシュ制御回路424が、そのメモリバンクがDRAMプロセッサ420によるメモリバンクアクセスで占有されている間に、リフレッシュトランザクションを受信する。
動作802において、遅延リフレッシュカウンタ704は、リフレッシュトランザクションを記憶し、例えばリフレッシュ保留レジスタ702において、リフレッシュトランザクションが保留状態であることを示す。リフレッシュトランザクションは、例えばメモリバンクへの現在のアクセスが完了するとすぐに開始される。リフレッシュ保留レジスタ702は、例えばリフレッシュ動作が完了したときのみリセットされる。リフレッシュ保留レジスタ702は、例えばDRAMプロセッサおよびSoCプロセッサによってアクセス可能であり、これらのプロセッサは例えば、リフレッシュ保留レジスタがリセットされるまではメモリバンクにアクセスしないように構成されている。ある実施形態では、DRAMプロセッサ制御インターフェースのステータスビットは、例えば処理動作が完了したことを示すため、また保留状態のリフレッシュトランザクションがこれ以上ないことをSoCに対して示すために使用される。
図9は、実施形態の一例に係る図4のサブメモリ406の一部をより詳細に概略的に示す。
メモリバンク418は、例えば、アドレスバス(ADDR BUS)に連結され、また双方向性マルチプレクサ902を介してデータバス(DATA BUS)に連結される。特に、双方向性マルチプレクサは、例えば一対の入力/出力ポートを有している。一対の入力/出力ポートは、一方はメモリバンク418に連結され、もう一方はDRAMプロセッサ制御インターフェース(DRAM PROCESSOR CONTROL INTERFACE)904に連結されている。また、例えば、当該双方向性マルチプレクサは、グローバルインターフェース415およびローカルインターフェース423の少なくともいずれかに対応する。さらに、マルチプレクサ902のさらなる入力/出力ポートはデータバスに連結され、また、アドレスデコーダ906によって提供される選択信号に基づいて、メモリバンク418またはインターフェース904に連結され得る。
インターフェース904は、例えば、1つ以上の制御レジスタ908および、任意にいくつかの共有メモリ910を備える。共有メモリ910の目的は、例えば、DRAMプロセッサからのまたはDRAMプロセッサへの情報の伝達を止めることなく許可することである。インターフェース904は、例えば以下の機能のうち少なくとも1つ以上を許可する:
−あるDRAM回路内のDRAMプロセッサを初期化する;
−DRAMプロセッサへパラメータを通信し、DRAMプロセッサによるプログラムの実行を開始する;
−結果およびDRAMプロセッサに関する状態情報を読み込む;および
−DRAMプロセッサを停止する。
その他のここに列挙されていない機能もDRAMプロセッサ制御インターフェースを使用して実装されていてもよい。
DRAMプロセッサ制御インターフェースは、例えば、あるDRAM回路のDRAMプロセッサの1つ以上のサブセットによって実行される動作、またはあるDRAM回路の全てのDRAMプロセッサによって広域に実行される動作を許可する。
インターフェース904は、例えばDRAM回路のアドレス指定可能なメモリ空間の一部を構成する。
ある実施形態では、SoCのプロセッサによって恒久的にアクセス可能となるインターフェース904のアドレス位置を許可するために、DRAM回路のアドレス指定可能なメモリ空間はDRAM回路のメモリバンク内のアドレス可能空間よりも大きい。このような場合、アドレスデコーダ906は、例えばアドレスがインターフェース904に関連付けられたアドレス範囲内である場合にマルチプレクサ902がデータバスをインターフェース904に連結するように制御する。
別の形態として、ある実施形態では、インターフェース904のアドレス位置は最初にSoCに対して可視化される。そして、インターフェース904が必要とされない、例えばDRAMプロセッサが利用されていないことを示唆する場合に特定の停止コマンドによってアクセス不可能とされる。例えば、このような実施形態では、DRAM回路のリセットの直後またはDRAM回路の電源を入れた直後に、特定のアドレス範囲がDRAMプロセッサ制御インターフェース904のメモリ空間に対応する。しかし、このアドレス範囲は、停止コマンドがアサートされた場合、標準DRAMメモリ空間に変換されてもよい。
他の実施形態では、インターフェース904のアドレス位置は最初にSoCに対して不可視化される。そして、図10を参照して説明する通り、インターフェースが使用される場合に、特定の起動コマンドによってアクセス可能とされる。
図10は、DRAM回路のアドレス空間内に対してDRAMプロセッサ制御インターフェースをアクセス可能にする方法における動作を示すフローチャートである。
動作1001において、DRAMリセット動作を実行するか、または、DRAM回路の電源を入れる。まず、DRAM回路のリセットの直後またはDRAM回路の電源を入れた直後に、特定のアドレス範囲がDRAM回路の標準DRAMアドレス空間に対応する。
動作1002において、例えばDRAMプロセッサ制御インターフェース904およびアドレスデコーダ906の少なくともいずれかによって、インターフェース起動コマンドが受信されたか否かが判断される。このようなコマンドが受信された場合、次の動作が1003となる。
動作1003において、アドレス範囲をDRAMプロセッサ制御インターフェース904のメモリ空間に変換することにより、DRAMプロセッサ制御インターフェースがDRAM回路のアドレス空間内において可視化される。
停止コマンドまたは起動コマンドは、例えば図9の破線914によって示されるように、DRAM回路の専用入力ピンを介してSoCからアドレスデコーダ906へ送信された信号に対応する。
別の形態として、停止コマンドまたは起動コマンドは、例えば、MRS(mode register set)コマンドのような特殊なトランザクション用の特定のDRAM回路に存在する1つ以上の制御レジスタ916によって保持される値に対応する。例えば、アドレスバスのアドレスが制御レジスタ916によって規定されたアドレス範囲内にあるとき、アドレスデコーダ906は、マルチプレクサ902がデータバスをインターフェース904に連結するように制御する。特定のDRAM回路内に存在する既存のレジスタを使用するよりも、例えばMRSトランザクションを使用してアクセス可能であるように構成された新たな1つ以上のレジスタを追加することができる。
さらに別の形態として、起動信号または停止信号は、SoCによってDRAM回路の標準メモリバスを介して、例えばアドレスバスを使用して送信されてもよい。このため、アドレスデコーダ906およびインターフェース904の少なくともいずれかは、本明細書において「マジックシーケンス」と称するSoCからの特定の一連のコマンドを検知するように構成されている。マジックシーケンスは、例えば架空のメモリアクセス、換言すれば、DRAM回路との通信のための標準プロトコルに準拠するが、実際のメモリアクセスからは区別され得るメモリアクセスに対応する一連のコマンドである。例えば、DRAM回路の通常の動作時には起こる可能性がかなり低い、またはその可能性のない一連のコマンドとして選択される。単一のマジックシーケンスよりもある実施形態においては、いくつかのマジックシーケンスがあってもよく、また、インターフェース906のアドレス範囲は、例えば、どのマジックシーケンスが適用されるかに依存する。
いくつかの実施形態では、マジックシーケンスの偽陽性検知を避けるため、DRAM回路は例えば、クロック周期の数または受信したリフレッシュトランザクションの数をカウントするクロック周期カウンタまたはリフレッシュカウンタを備える。シーケンスは、例えば、下記の場合にマジックシーケンスとしてみなされない:
−当該シーケンスが1回目、つまりクロック周期の1周期目またはリフレッシュ動作の1回目よりも前に来た場合、例えば、起動シーケンスが完了する前に来た場合、つまり、起動時に偶発的に生成された場合;
−当該シーケンスが2回目、つまりクロック周期の2周期目またはリフレッシュ動作の2回目よりも後に来た場合、例えばDRAMプロセッサを管理し、またマジックシーケンスを生成し得るソフトウェアドライバは、一般的にオペレーティングシステムが読み込まれた直後かつアプリケーションが読み込まれる前に生成されるが、起動シーケンスを完了してから長い時間の経過後に当該シーケンスが来た場合;
−実際のマジックシーケンスは比較的短期間に起こりやすいが、上記シーケンスが起こるまでに特定の時間よりも多くの時間を要する場合、つまり、特定の数のクロック周期またはリフレッシュ動作よりも多くの時間を要する場合。
マジックシーケンスの一例としては、キャッシュメモリが既に起動されているときに、メモリの他の領域へのいかなる他の中間アクセスなしに当該メモリの同一の領域のSoCプロセッサによる多数の連続のアクセスが挙げられる。特に、SoCプロセッサはキャッシュメモリが起動されるまでは遅い動作である傾向があるため、キャッシュメモリは一般的に起動シーケンス中のかなり早い段階で起動される。キャッシュが起動されれば、同一のメモリ領域内において多数の連続のアクセスが起こる可能性はかなり低い。
マジックシーケンスの他の一例は、特定のキャッシュ不可能なメモリ領域を定義し、そしてこれらの領域へ多数の連続のアクセスを行うことである。特に、現代のプロセッサは一般的に、キャッシュ可能でないメモリ領域の表示を許可するMMU(memory management unit)を備える。通常、アプリケーションはメモリの一部がキャッシュ可能でないことを要求する理由はない。なぜなら、このような要求は、性能の著しい低下につながるし、また、それに対する利点もないからである。キャッシュがオンの場合、つまりキャッシュが使用される場合、同一のDRAMメモリ領域への多数の連続のアクセスが行われる可能性はほとんどない。したがって、マジックシーケンスは、例えばあるDRAMメモリ領域への多数のメモリアクセスの存在によって検知される。
マジックシーケンスのさらに他の一例としては、以下により詳細に説明する通り、メモリはライトスルーにおいてキャッシュ可能である事実が挙げられる。
メモリ領域がキャッシュ可能なとき、動作の「リードアロケート」モードに係る読み取り動作は、下記の動作を伴う:
a.読み取り動作における対象領域が既にキャッシュに存在するか否かを確認する;
b.(i)対象領域が既にキャッシュに存在する場合、キャッシュラインが読み出され、読み取り動作が完了する;
b.(ii)対象領域がまだキャッシュに存在しない場合、当該対象領域はキャッシュに読み込まれ、このキャッシュラインが読み出され、そして読み取り動作が完了する。
書き込み動作は、「ライトアロケート」モードまたは「ライトスルー」モードの2つのモードのうちの1つを使用して実行される。
ライトアロケートモードに係る書き込み動作は、下記の動作を伴う:
a.書き込み動作における対象領域が既にキャッシュに存在するか否かを確認する;
b.(i)対象領域が既にキャッシュに存在する場合、対応するキャッシュラインが書き込まれ、そして書き込み動作が完了する;
b.(ii)対象領域がまだキャッシュに存在しない場合、当該対象領域はキャッシュラインに読み込まれ、キャッシュラインが書き込まれ、そして書き込み動作が完了する。
c.キャッシュラインがキャッシュから取り除かれ、メインメモリの更新に使用されるときに、キャッシュからメインメモリにデータが書き込まれる。
ライトスルーモードに係る書き込み動作は、下記の動作を伴う:
a.書き込み動作における対象領域が既にキャッシュに存在するか否かを確認する;
b.対象領域が既にキャッシュに存在する場合、対応するキャッシュラインが書き込まれる;
c.対象領域が既にキャッシュに存在するか否かに関わらず、データがメインメモリに書き込まれる。
ライトスルーモードでは、バースト長が書き込まれるデータよりも長いためにトランザクションのいくつかの語句が書き込まれないバーストライトトランザクションを使用してもよい。一方、ライトアロケートモードでは、トランザクションの全ての語句が書き込まれるバーストライトトランザクションのみを使用する。
SoCのプロセッサは、例えばMMUを介して、メモリの各ページへのアクセスが:
1)キャッシュ可能か否か;または
2)一般的に「ライトアロケート」モードと称されるリードアロケートおよびライトアロケートを使用してキャッシュ可能か否か;または
3)一般的に「ライトスルー」モードと称されるリードアロケートおよびライトスルーを使用してキャッシュ可能か否か、
を特定することが可能である。
これらのモードのうち、一般的に最高の性能を提供するのはライトアロケートモードである。しかし、ライトスルーモードは、フレームバッファが存在する特定のハードウェア構成において使用されるものである。フレームバッファは、例えば、バススヌーピングの実行が不可能であり、したがってプロセッサのキャッシュから読み取られるデータを取り出すことが不可能なディスプレイプロセッサによって読み出される。
現代のSoCにおいては、プロセッサは、他のプロセッサのキャッシュにおいて読み取られるデータを取り出すためにバススヌーピングを使用することが可能である。したがって、一般的にはライトスルーモードを使用する必要はない。
したがって、マジックシーケンスは、ライトスルーモードを使用して行われるアクセスであって、特定の文字が書き込まれないバーストアクセスが実行されたという事実によって検知可能なアクセスに対応してもよい。例えば、書き込み許可信号は少なくとも1つのデータ値についてネゲートされる。
マジックシーケンスのさらなる一例として、異常、特殊、および一時的なアクセス位置を使用した一連のメモリアクセスが挙げられる。特に、キャッシュが使用されるとき、同一のメモリアドレスへの繰り返しのアクセスは、DRAM回路のメモリバンクの代わりにキャッシュを使用して実行される。したがって、メモリバンクの比較的小さい領域内で、例えばいくつかの語句の中での繰り返しアクセスであって、比較的短時間内、例えば数百マイクロ秒内の繰り返しアクセスは、マジックシーケンスとしてはありえないであろう現象として認識されてもよい。
本明細書において説明する実施形態の1つの利点は、内部プロセッサを有するDRAM回路は、DRAM回路とSoCの間のデータ転送動作をある程度低減することにより性能向上を許可することである。また、これと同時に、DDRプロトコルに準拠した動作が可能である。さらに、メモリ回路のアドレス空間内においてアクセス可能な制御レジスタのセットとしてプロセッサ制御インターフェースを実装することにより、当該インターフェースは、中央プロセッサ内に専用ハードウェアを設けることなく実装され得る。したがって、このような解決策は、ハードウェアに対する変更を必要とすることなく中央処理装置の既存のデザインに適用され得る。特に、上記インターフェースは、例えば中央プロセッサによって実行されるソフトウェアに実装される。当該ソフトウェアは、内部プロセッサが動作を実行する間に中央プロセッサがメモリアレイの1つ以上のバンクにアクセスすることを防止するアクセス排他プロトコルを実装する。中央プロセッサは、例えばいつ内部プロセッサによって動作が実行されているのかを認識することができる。なぜなら、中央プロセッサは処理コマンドを内部プロセッサへ送信する役割があり、また、いつ内部プロセッサが動作を終了したかを示すデータにプロセッサ制御インターフェースを介してアクセスできるからである。したがって、アクセス排他プロトコルは中央プロセッサおよび内部プロセッサが同時にアクセスしようとすることを防止し、これによってこれらのプロセッサ間の衝突調停の必要性を回避する。
メモリ回路内のリフレッシュ動作を遅延するための機序を提供する1つの利点は、リフレッシュ動作が、中央プロセッサ(例えば中央プロセッサのメモリコントローラ)によって標準的な方法で生成されてもよいことである。したがって、メモリコントローラは、どの動作がメモリ回路の内部プロセッサによって現在実行されているのかを認識する必要がない。
このように少なくとも1つの例示的な実施形態を説明したが、当業者は種々の変更、改良、および改善を容易に行うことができる。
例えば、1つのDRAMプロセッサあたりに1つのDRAMプロセッサ制御インターフェースがある実施形態を説明した。しかしながら、いくつかの実施形態においては、いくつかのプロセッサによってこのような1つのインターフェースが共有され得ることは当業者には明らかである。
さらに、種々の実施形態に関する種々の構成が、別の実施形態においてはいかなる組み合わせによっても組み合わされ得ることは当業者には明らかである。

Claims (12)

  1. 1つ以上のメモリバンク(418)を備えるメモリアレイ(104)、
    第一のプロセッサ(420)、および
    中央プロセッサ(P1、P2)から当該第一のプロセッサへ向けられたデータ処理コマンドを受信するプロセッサ制御インターフェース(904)、
    を備える動的ランダムアクセスメモリ(DRAM)回路であって、
    上記第一のプロセッサ(420)がデータ処理を行っている間は、上記中央プロセッサ(P1、P2)は、上記メモリアレイ(104)の上記1つ以上のメモリバンク(418)へのアクセスを拒否されており、当該プロセッサ制御インターフェース(904)は、いつ上記第一のプロセッサが上記メモリアレイの上記メモリバンクの1つ以上へのアクセスを終了したかを上記中央プロセッサに対して示すように適合されており、上記メモリバンクは上記中央プロセッサからアクセス可能になっており、上記プロセッサ制御インターフェース(904)は、上記メモリ回路のアドレス空間内においてアクセス可能な制御レジスタ(908)のセットを備え、上記プロセッサ制御インターフェース(904)は、上記第一のプロセッサ(420)と上記中央プロセッサ(P1、P2)の間にいかなる専用の制御線も備えず、
    上記メモリ回路は、リフレッシュ制御回路(424)をさらに備え、
    上記リフレッシュ制御回路(424)は、
    上記メモリアレイの上記メモリバンク(418)の少なくとも1つにおいてデータリフレッシュ動作を実行するためのリフレッシュトランザクションを上記中央プロセッサから受信し、
    当該少なくとも1つのメモリバンク(418)が上記第一のプロセッサによってアクセスされているか否かを判定し、アクセスされているのであれば、上記データリフレッシュ動作の開始時間を遅延する、
    ことを特徴とする、動的ランダムアクセスメモリ(DRAM)回路。
  2. 上記リフレッシュ制御回路(424)はリフレッシュ保留レジスタ(702)を備え、
    上記データリフレッシュ動作の開始時間の遅延は、当該リフレッシュ動作が保留されていることを上記リフレッシュ保留レジスタ(702)において示すことを含む、
    ことを特徴とする、請求項に記載のメモリ回路。
  3. 上記メモリ回路の上記アドレス空間は、上記制御レジスタ(908)のセットに恒久的に関連付けられた1つ以上のアドレスを含む、
    ことを特徴とする請求項に記載のメモリ回路。
  4. 上記メモリ回路の上記アドレス空間は、上記制御レジスタ(908)のセットに関連付けられた1つ以上のアドレスを含み、
    当該1つ以上のアドレスは、レジスタ起動制御信号のアサーションについて上記メモリアレイのアドレスに変換される、
    ことを特徴とする請求項に記載のメモリ回路。
  5. 上記メモリ回路は、上記制御レジスタのセットを当該メモリ回路の上記アドレス空間内においてアクセス可能にするための起動信号を上記中央プロセッサ(P1、P2)から受信する、
    ことを特徴とする請求項に記載のメモリ回路。
  6. 上記起動信号はアドレスバスを介して提供され、上記プロセッサ制御インターフェースによって検知可能である、
    ことを特徴とする請求項に記載のメモリ回路。
  7. 上記起動信号は、上記制御レジスタのセットをアクセス可能とするメモリアクセスシーケンスに対応し、上記メモリアクセスシーケンスは、全ての語句が書き込まれるわけではないバーストアクセスシーケンスである、
    ことを特徴とする請求項に記載のメモリ回路。
  8. 上記起動信号は、上記制御レジスタのセットをアクセス可能とするメモリアクセスシーケンスに対応し、上記メモリアクセスシーケンスは、1周期目における上記メモリバンクの1つのメモリ領域内のメモリセルへの複数のメモリアクセスである、
    ことを特徴とする請求項に記載のメモリ回路。
  9. 上記メモリ回路は、上記メモリアクセスシーケンスを、
    上記メモリアクセスシーケンスが受信される期間、および
    上記メモリアクセスシーケンスの継続時間、
    のうち一方または両方に基づいて検知する、
    ことを特徴とする請求項からのいずれか1項に記載のメモリ回路。
  10. 複数の請求項1からのいずれか1項にメモリ回路、および
    共通Nビットデータバスを介して上記メモリ回路の各々に連結された中央プロセッサ(P1、P2)、
    を備えるシステムであって、
    上記メモリ回路の各々は、上記Nビットデータバスに連結されたNビットバスインターフェースを備える、
    ことを特徴とするシステム。
  11. 動的ランダムアクセス(DRAM)メモリ回路にアクセスする方法であって、
    当該メモリ回路は、1つ以上のメモリバンク(418)を有するメモリアレイ(104)、第一のプロセッサ(420)、および当該メモリ回路のアドレス空間内においてアクセス可能な制御レジスタ(908)のセットを備えるプロセッサ制御インターフェース(904)、を備え、
    上記方法は、
    中央プロセッサ(P1、P2)から上記第一のプロセッサ(420)へ向けられたデータ処理コマンドを上記プロセッサ制御インターフェース(904)によって受信する工程
    上記第一のプロセッサ(420)がデータ処理を行っている間は、上記中央プロセッサ(P1、P2)による上記メモリアレイ(104)の上記1つ以上のメモリバンク(418)へのアクセスを拒否する工程
    いつ上記第一のプロセッサが上記メモリアレイ(104)の上記メモリバンク(418)の1つ以上へのアクセスを終了したかを上記プロセッサ制御インターフェース(904)の上記制御レジスタ(908)の1つによって、上記第一のプロセッサ(420)と上記中央プロセッサ(P1、P2)との間のいかなる専用の制御線を使わずに、上記中央プロセッサ(P1、P2)に対して示す工程であって、上記メモリバンクは上記中央プロセッサ(P1、P2)からアクセス可能になっている工程、
    上記メモリアレイ(104)の上記メモリバンク(418)においてデータリフレッシュ動作を実行するためのリフレッシュトランザクションをリフレッシュ制御回路(424)によって受信する工程、および
    上記メモリバンク(418)が上記第一のプロセッサ(420)によってアクセスされているか否かを上記リフレッシュ制御回路(424)によって判定し、アクセスされているのであれば、上記データリフレッシュ動作の開始時間を遅延する工程、
    を含むことを特徴とする方法。
  12. 上記制御レジスタのセットを上記メモリ回路のアドレス空間内においてアクセス可能にするための起動信号を、上記プロセッサ制御インターフェース(904)によって上記中央プロセッサ(P1、P2)から受信する工程、
    をさらに含むことを特徴とする請求項11に記載の方法。
JP2017544346A 2015-02-18 2016-02-12 統合プロセッサを備えたdram回路 Active JP6710219B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1551343 2015-02-18
FR1551343A FR3032814B1 (fr) 2015-02-18 2015-02-18 Circuit dram muni d'un processeur integre
PCT/FR2016/050327 WO2016132052A1 (fr) 2015-02-18 2016-02-12 Circuit dram muni d'un processeur integre

Publications (2)

Publication Number Publication Date
JP2018511860A JP2018511860A (ja) 2018-04-26
JP6710219B2 true JP6710219B2 (ja) 2020-06-17

Family

ID=53269680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017544346A Active JP6710219B2 (ja) 2015-02-18 2016-02-12 統合プロセッサを備えたdram回路

Country Status (6)

Country Link
US (1) US10324870B2 (ja)
EP (1) EP3259674B1 (ja)
JP (1) JP6710219B2 (ja)
CN (1) CN107257964B (ja)
FR (1) FR3032814B1 (ja)
WO (1) WO2016132052A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3055715B1 (fr) * 2016-09-08 2018-10-05 Upmem Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue
EP4187539B1 (en) * 2017-07-30 2024-06-05 NeuroBlade Ltd. A memory-based distributed processor architecture
WO2020255087A1 (en) * 2019-06-20 2020-12-24 Smolka John Michael Memory module and processor contained in the memory module
FR3115395A1 (fr) 2020-10-16 2022-04-22 Upmem Dispositif semi-conducteur comprenant un empilement de puces et puces d’un tel empilement
CN112286863B (zh) * 2020-11-18 2023-08-18 合肥沛睿微电子股份有限公司 处理暨存储电路
US11775312B2 (en) 2021-04-09 2023-10-03 Rochester Institute Of Technology Look-up table containing processor-in-memory cluster for data-intensive applications
FR3131020A1 (fr) 2021-12-22 2023-06-23 Orange Module et procédé de sécurisation d’un équipement informatique

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03109661A (ja) * 1989-09-22 1991-05-09 Hitachi Ltd データ処理装置
EP0584783A3 (en) * 1992-08-25 1994-06-22 Texas Instruments Inc Method and apparatus for improved processing
US5666485A (en) * 1995-06-07 1997-09-09 Samsung Electronics Inc. Software driver for a system bus
US5768618A (en) * 1995-12-21 1998-06-16 Ncr Corporation Method for performing sequence of actions in device connected to computer in response to specified values being written into snooped sub portions of address space
JP3189727B2 (ja) * 1997-04-15 2001-07-16 日本電気株式会社 コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
JPH117763A (ja) * 1997-06-13 1999-01-12 Nec Ic Microcomput Syst Ltd Dramリフレッシュ制御方法及びその回路
US5999474A (en) * 1998-10-01 1999-12-07 Monolithic System Tech Inc Method and apparatus for complete hiding of the refresh of a semiconductor memory
US6463001B1 (en) * 2000-09-15 2002-10-08 Intel Corporation Circuit and method for merging refresh and access operations for a memory device
KR100510505B1 (ko) * 2002-12-23 2005-08-26 삼성전자주식회사 외부 리프레쉬 명령없이 리프레쉬 동작을 수행하는 반도체메모리장치 및 이의 리프레쉬 제어방법
US7353329B2 (en) * 2003-09-29 2008-04-01 Intel Corporation Memory buffer device integrating refresh logic
US7200062B2 (en) * 2004-08-31 2007-04-03 Micron Technology, Inc. Method and system for reducing the peak current in refreshing dynamic random access memory devices
US8234460B2 (en) * 2009-06-04 2012-07-31 Micron Technology, Inc. Communication between internal and external processors
US8380916B2 (en) * 2009-06-04 2013-02-19 Micron Technology, Inc. Control of page access in memory
US8719516B2 (en) * 2009-10-21 2014-05-06 Micron Technology, Inc. Memory having internal processors and methods of controlling memory access
US8438358B1 (en) * 2009-12-16 2013-05-07 Applied Micro Circuits Corporation System-on-chip with memory speed control core
EP2761469B1 (en) * 2011-09-30 2019-11-13 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
US20130262791A1 (en) * 2012-03-27 2013-10-03 International Business Machines Corporation Host-side support of dynamically changing frequency in memory systems
US9911485B2 (en) * 2013-11-11 2018-03-06 Qualcomm Incorporated Method and apparatus for refreshing a memory cell
US9293188B2 (en) * 2014-02-03 2016-03-22 Advanced Micro Devices, Inc. Memory and memory controller for high reliability operation and method

Also Published As

Publication number Publication date
CN107257964A (zh) 2017-10-17
EP3259674B1 (fr) 2020-12-16
US10324870B2 (en) 2019-06-18
FR3032814B1 (fr) 2018-02-02
JP2018511860A (ja) 2018-04-26
CN107257964B (zh) 2020-11-13
EP3259674A1 (fr) 2017-12-27
FR3032814A1 (ja) 2016-08-19
WO2016132052A1 (fr) 2016-08-25
US20180039586A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
JP6710219B2 (ja) 統合プロセッサを備えたdram回路
CN109154918B (zh) 自刷新状态机mop阵列
KR100868393B1 (ko) 비휘발성 메모리 제어기 및 휘발성 메모리에 액세스하는방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리
KR102442078B1 (ko) 고속 메모리 인터페이스들을 위한 명령 중재
US7433992B2 (en) Command controlling different operations in different chips
US6330645B1 (en) Multi-stream coherent memory controller apparatus and method
US9471517B1 (en) Memory system, memory module and method to backup and restore system using command address latency
JP2008034095A (ja) プロセッサ間のホストインターフェイシング機能を有するマルチパスアクセス可能な半導体メモリ装置
WO2015054093A1 (en) Data processor with memory controller for high reliability operation and method
JP2007095054A (ja) 命令によるメモリ装置の調停
JP2018018513A (ja) メモリシステム、プロセシングシステム、及びメモリスタックを動作させる方法
US11748034B2 (en) Signalling for heterogeneous memory systems
US20080147940A1 (en) Method and apparatus for controlling a shared bus
JP2019522257A (ja) 低電力メモリのスロットリング
US9218861B2 (en) Apparatuses and methods including selectively providing a single or separate chip select signals
EP3270294B1 (en) Command arbitration for high-speed memory interfaces
KR20200046270A (ko) 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치
US11995008B2 (en) Memory controller with hybrid DRAM/persistent memory channel arbitration
JP3817327B2 (ja) データ処理システムにおいてチップ選択可能な装置をアクセスする方法および装置
JP3600830B2 (ja) プロセッサ
JP2002132711A (ja) メモリコントローラ
JP2000010861A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200526

R150 Certificate of patent or registration of utility model

Ref document number: 6710219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250