JP5070656B2 - Semiconductor memory device - Google Patents
Semiconductor memory device Download PDFInfo
- Publication number
- JP5070656B2 JP5070656B2 JP2000387891A JP2000387891A JP5070656B2 JP 5070656 B2 JP5070656 B2 JP 5070656B2 JP 2000387891 A JP2000387891 A JP 2000387891A JP 2000387891 A JP2000387891 A JP 2000387891A JP 5070656 B2 JP5070656 B2 JP 5070656B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- circuit
- port
- commands
- signal
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Dram (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、一般に半導体記憶装置に関し、詳しくは複数のポートを備えた半導体記憶装置に関する。
【0002】
【従来の技術】
複数のポートを備えた半導体記憶装置であるマルチポートメモリには、いくつかの種類がある。以下において、マルチポートメモリと言った場合、複数のポートを持ちそれぞれのポートから共通のメモリアレイに対し独立にアクセスできるメモリを指すこととする。そのようなメモリでは、例えば、AポートとBポートを備え、Aポートに接続したCPUとBポートに接続したCPUから共通のメモリアレイに独立に読み書きできる。
【0003】
マルチポートメモリは、アービタと呼ばれる裁定回路を備える。このアービタが、複数のポートから受信したアクセス要求の優先順位を決定し、メモリアレイの制御回路が、この優先順位に従ってアクセスを順次実行する。例えば各ポートへの入力が早いアクセスから順番に、優先的に実行される。
【0004】
このような場合、メモリアレイは複数のポートからランダムにアクセスされるので、1回のアクセスに対して読み出し又は書き込み動作を実施したら直ちにリセットして、次のアクセスに備える必要がある。即ち、あるポートからのアクセスに対して、例えばDRAMで一般的なコラムアクセス動作のようにワード線を選択状態に保持して順次コラムアドレスを移動して読み出していくといった動作をすると、別のポートからのアクセスがその間待たされ続けることになる。従って、1回の読み出し或いは書き込み動作後には直ちにリセットをする必要がある。
【0005】
従来、マルチポートメモリのメモリアレイとしては、一般的にSRAMが用いられてきた。SRAMはランダムアクセスが高速であり、また非破壊の読み出しが可能だからである。
【0006】
例えば2ポートのマルチポートメモリでは、1つのSRAMメモリセルに対して、ワード線とビット線対が2セットずつ設けられる。一方のポートは、一方のワード線とビット線対のセットを用いて読み書き動作を実行し、他方のポートは、他方のワード線とビット線対のセットを用いて読み書き動作を実行する。これによって、2つのポートから独立に読み書きができることになる。但し、同じセルに両ポートから同時に書き込み指示があった時は、同時に実施することは不可能となるので、片方のポートを優先して実施し、他方のポートにはBUSY信号を発生する。これをBUSY状態という。
【0007】
【発明が解決しようとする課題】
システムが高性能化するにつれて扱うデータ量も増大し、マルチポートメモリにも大容量が必要とされてきている。しかし上記のようなSRAM型マルチポートメモリには、メモリセルの面積が大きいという問題がある。
【0008】
これを解決するために、DRAMアレイをマルチポートメモリに採用することが考えられる。マルチポートSRAMに対して大幅な高集積度を達成するためには、一般のDRAMセルの場合と同様に、マルチポートメモリに使用するDRAMの1つのメモリセルは、1本のワード線と1本のビット線にだけ接続されることが必要である。このようにDRAMセルを用いてメモリブロックを構成した場合、あるブロックのメモリセルに対してあるポートから読み出し又は書き込み動作を実行すると、その動作中は、そのブロックに対して他のポートからアクセスすることが出来ない。これは、DRAMセルは破壊読み出しであるためである。即ち一旦情報を読み出すと、この情報を増幅してセルに書き戻し更にワード線・ビット線をプリチャージした後でなくては、同一ブロック内の他のワード線を選択することが出来ない。
【0009】
この理由のために、あるポートからアクセス中のメモリブロックに他のポートからアクセスがあると、BUSY状態になってしまう。SRAM型のマルチポートメモリでは、同一のメモリセルに複数のポートから同時に書き込み要求があったときだけBUSY状態が発生するが、DRAM型のマルチポートメモリでは、同一のメモリブロックに複数のポートから同時に何らかのアクセス要求があった場合にBUSY状態が発生する。従って、DRAM型のBUSY発生確率は、SRAM型のBUSY発生確率に比べるとかなり大きい。BUSY状態になると、所望の動作が実行出来ない、或いは待ち時間が発生するので処理が遅くなるといった問題点がある。
【0010】
またSRAM型のマルチポートメモリと異なり、DRAM型のマルチポートメモリでは情報の保持のために定期的にリフレッシュすることが必要となるので、リフレッシュのタイミング等についても対策が必要になる。
【0011】
以上を鑑みて、本発明は、DRAM特有の問題点を解決したDRAM型のマルチポートメモリを提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明により半導体記憶装置は、各々がコマンドを受信する複数N個の外部ポートと、該外部ポートの1つに入力される複数のコマンド間の最小間隔の間に少なくともN回のアクセス動作を逐次的に実行する内部回路と、該複数N個の外部ポートからそれぞれ入力される複数のコマンドを該内部回路に実行させるコマンド実行順番を決定する裁定回路と、該複数N個の外部ポートからそれぞれ入力される複数のコマンドのうちで同一アドレスにアクセスするコマンドが複数個存在するか否かを判定するアドレス比較回路と、マスタ動作モード或いはスレーブ動作モードを指定するモードレジスタを含み、該複数N個の外部ポートの各々は、同一アドレスにアクセスするコマンドが複数個存在する場合には所定の信号を装置外部に出力する信号出力回路と、該所定の信号を装置外部から受信する信号入力回路と、シリアルに受信したデータをパラレルデータとして該内部回路に供給する回路と、該内部回路からパラレルに供給されたデータをシリアルデータとして外部に出力する回路を含み、前記内部回路はダイナミック型メモリセルで構成されたセル配列を含み、該モードレジスタがマスタ動作モードを指定する場合には該信号出力回路を活性化し、該モードレジスタがスレーブ動作モードを指定する場合には該信号入力回路を活性化することを特徴とする。
【0013】
また複数N個の外部ポートからそれぞれ入力される複数のコマンドを内部回路に実行させるコマンド実行順番を決定する裁定回路を更に含むことを特徴とする。
【0014】
上記発明では、複数N個のポートからコマンドが入力された場合に、N個のポートに対応するN個のコマンドを、あるポートに着目した場合の最小のコマンドサイクルの間に順次実行する。これにより、外部からは任意のポートについて、最小のコマンドサイクルの間に、そのポートのコマンド入力に対するアクセス動作を実行するように見える。この場合、BUSY状態となる可能性があるのは、同一のアドレスに複数のポートから同時にアクセス要求があったときだけである。従って、SRAM型のマルチポートメモリのBUSY発生確率と、同等の低いBUSY発生確率を実現することが出来る。
【0015】
また更に本発明の半導体記憶装置において、内部回路は、ダイナミック型メモリセルで構成されたセル配列と、メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路を含み、第1のモードでは複数N個の外部ポートの少なくとも1つへ入力されるリフレッシュコマンドに応じてメモリセルをリフレッシュし、第2のモードではリフレッシュ回路が指定するタイミングでメモリセルをリフレッシュすることを特徴とする。
【0016】
上記発明では、外部ポートから指定してリフレッシュ動作を実行する動作モードと、内蔵リフレッシュ回路の指示によりリフレッシュ動作を実行する動作モードを用意しておくことで、例えば所定の外部ポートをリフレッシュ管理用のポートとして定期的にリフレッシュコマンドを入力するように動作させたり、このリフレッシュ管理用のポートが非活性状態の場合に内蔵リフレッシュ回路によってリフレッシュ動作を実行すること等が可能になり、システム構成に応じて柔軟にリフレッシュ管理を行うことが出来る。
【0017】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0018】
まず本発明の動作原理について説明する。
【0019】
図1は、本発明の動作原理を説明するための図である。図1には、2ポートの場合の原理図を示すが、2つ以上のNポートの場合であっても同様の動作が可能である。
【0020】
内部(DRAMコア)が2サイクル回る時間を、外部コマンドサイクルの1サイクルと設定する。すなわち外部のコマンドサイクルに対し内部動作サイクルは倍速で回る。AポートとBポートの両方から入ってきたコマンドを、コマンド受け付けの早いものから順番に、内部メモリにおいて倍速で処理し、出力データをそれぞれのポートに渡す。即ち、1回の内部動作サイクルで、ワード線の選択、データの増幅、コラム選択、Read又はWrite動作、及びプリチャージの一連の動作を実行し、当該メモリブロックに対するアクセス動作を完結させる。
【0021】
例えば、図1のAポートに対する外部コマンドサイクルのタイミングC1では、Aポートから読み出しコマンドが入力される。また、Bポートに対する外部コマンドサイクルのタイミングC1’では、Bポートから読み出しコマンドが入力される。Aポートからの読み出しコマンドの方が僅かにタイミングが早いために、Bポートからの読み出しコマンドよりも先に内部で実行される。ここで外部コマンドサイクルは4クロックサイクルである。各読み出しコマンドは、図1に示されるように、内部動作サイクルである2クロックサイクルで実行され完了する。従って、Aポートからの読み出しアクセスとBポートからの読み出しアクセスとが同一のブロックに対するものであっても、各アクセスを2クロックサイクルで実行完了することによって、外部コマンドサイクルである4クロックサイクルで入力されたAポート及びBポートからの読み出し命令に対して、BUSY状態を発生することなく読み出し動作を実行することが出来る。
【0022】
このようにして、仮に同一のメモリブロックに複数のポートから同時期にアクセスがある場合であっても、内部メモリでは倍速に連続して処理することが可能であるために、BUSY状態とはならない。
【0023】
また図1に示されるように、リフレッシュコマンドを外部から与えた場合(例えばAポートから与えた場合)、他のポート(この例ではBポート)のアクセスに影響を与えないで形で、内部においてリフレッシュ動作を実行することができる。この場合、例えば、複数のポートのうちの1つのポート(図1の例ではAポート)をリフレッシュ管理をするポートとして設定して、リフレッシュ命令は常にこのポートから入力するようにして良い。
【0024】
またデータ出力は、複数のコラムアドレスからデータをパラレルに読み出して出力時にシリアルに変化してデータ出力するバーストタイプとすることにより、データ転送速度を向上させ、連続したReadコマンドに対しデータを連続して出力することが可能となる。
【0025】
図2は、複数のポートのうちの一方のポートだけを動作させた場合のリフレッシュ動作を示す図である。
【0026】
図2に示すように、例えばAポート及びBポートの2つのポートを備えている場合に、必ずしも両方のポートを動作させる必要はない。リフレッシュタイマを内蔵させることで、内部でリフレッシュコマンドを内部で発生させることが出来る。例えば、図2に示されるように、片方のポート(例えばBポート)が停止している場合にリフレッシュコマンドを内部で発生させ、Aポートのアクセスに影響を与えずに内部でリフレッシュを実施することが可能である。
【0027】
例えば、AポートをコントローラAが制御し、BポートをコントローラBが制御し、コントローラBがリフレッシュの管理を実施している場合を考える。このような場合、上記のような内部リフレッシュの機能があれば、Bポートを完全に止めてAポートだけを使用することができるので、システムの動作に対応した電力削減が可能になる。
【0028】
図3は、2ポート、3ポート、及びNポートの場合の本発明の原理を説明するための図である。
【0029】
前述のように、本発明は3ポート以上のマルチポートメモリにも適用が可能である。図3(a)は、図1及び図2で示したような2ポートの場合の1つのポートに対する動作を示す。また(b)には、3ポートの場合の1つのポートに対する動作を示し、(c)には、Nポートメモリの場合を示す。図3(c)に示されるように、Nポートメモリの場合には、外部コマンドサイクルに対して内部動作サイクルの長さを1/Nにすればよい。
【0030】
以下に、本発明の実施例による半導体記憶装置を説明する。
【0031】
図4は、本発明によるマルチポートメモリの第1の実施例を示す構成図である。この例では、AポートとBポートの2つのポートを持つ構成となっている。
【0032】
図4のマルチポートメモリ10は、Aポート11、Bポート12、セルフリフレッシュ回路13、DRAMコア14、アービタ15、リフレッシュコマンドレジスタ16、コマンドレジスタA17、コマンドレジスタB18、リフレッシュアドレスレジスタ19、アドレスレジスタA20、アドレスレジスタB21、WriteデータレジスタA22、WriteデータレジスタB23、転送ゲートA24、及び転送ゲートB25を含む。
【0033】
Aポート11は、モードレジスタ31、CLKバッファ32、データ入出力回路33、アドレスバッファ34、及びコマンドデコーダ35を含む。またBポート12は、モードレジスタ41、CLKバッファ42、データ入出力回路43、アドレスバッファ44、及びコマンドデコーダ45を含む。Aポート11及びBポート12では、それぞれのクロックCLKA及びCLKBに同期して、独立して外部バスとのアクセスが確立される。モードレジスタ31及び41には、それぞれのポートに対して、データレイテンシやバースト長等のモードを設定できるようになっている。この実施例では、Aポート11及びBポート12の両方のポートにモードレジスタを配置し、それぞれのポートでモード設定可能な構成としてある。しかし例えば、片方のポートにだけモードレジスタを配置して、両方のポート分の設定を片方のポートで実施するようにしてもよい。
【0034】
セルフリフレッシュ回路13は、リフレッシュタイマ46と、リフレッシュコマンド発生器47を含む。セルフリフレッシュ回路13は、内部でリフレッシュコマンドを発生する回路であり、信号CKEA1及びCKEB1をAポート11及びBポート12から受け取る。信号CKEA1及びCKEB1は、外部からの信号CKEAとCKEBを、それぞれCLKバッファ32及び42でバッファした信号である。外部からの信号CKEAとCKEBは、それぞれのポートのクロックバッファを停止させ当該ポートを非活性にするために用いられる。Aポート11及びBポート12のうちで片方のポートが非活性になったら、セルフリフレッシュ回路13が動作する。モードレジスタ31及び41にどちらのポートがリフレッシュ管理を担当するかを設定しておけば、リフレッシュ管理担当ポートが非活性になった時に、セルフリフレッシュ回路13を動作させるようにしてもよい。
【0035】
またDRAMコア14は、メモリアレイ51、デコーダ52、制御回路53、WriteAmp54、及びセンスバッファ55を含む。メモリアレイ51は、DRAMメモリセル、セルゲートトランジスタ、ワード線、ビット線、センスアンプ、コラム線、コラムゲート等からなり、読み出し動作・書き込み動作の対象となるデータを記憶する。デコーダ52は、アクセスするアドレスをデコードする。制御回路53は、DRAMコア14の動作を制御する。WriteAmp54は、メモリアレイ51に書き込むデータを増幅する。センスバッファ55は、メモリアレイ51から読み出すデータを増幅する。
【0036】
Aポート11への入力は、アドレスレジスタA20、リフレッシュコマンドレジスタ16、コマンドレジスタA17、及びWriteデータレジスタA22に転送される。またBポート12への入力は、アドレスレジスタB21、リフレッシュコマンドレジスタ16、コマンドレジスタB18、及びWriteデータレジスタB23に供給される。アービタ(裁定回路)15は、Aポート11及びBポート12の間でどちらのコマンドを優先して処理するかを決定するために、コマンドの入力された順番を判定する。その判定結果に従った順番で、アービタ15は、各レジスタからDRAMコア14にコマンド、アドレス、及びデータ(書き込み動作の場合)を転送する。転送されたデータに基づいて、DRAMコア14が動作する。読み出しコマンドの場合には、DRAMコア14から読み出されたデータは、対応するコマンドが入力されたポートに転送され、パラレル・シリアル変換され、そのポートのクロックに同期して出力される。
【0037】
図5は、アービタ15へのコマンド入力に関連する回路の構成図である。
【0038】
コマンドデコーダ35は、入力バッファ61、コマンドデコーダ62、及び(n−1)クロックディレイ回路63を含む。またコマンドデコーダ45は、入力バッファ71、コマンドデコーダ72、及び(n−1)クロックディレイ回路73を含む。コマンドレジスタA17は、Readコマンドレジスタ17−1及びWriteコマンドレジスタ17−2を含む。またコマンドレジスタB18は、Readコマンドレジスタ18−1及びWriteコマンドレジスタ18−2を含む。
【0039】
入力バッファ61或いは71に入力されたコマンドは、Readコマンドの場合は、コマンドデコーダ62或いは72を介して、そのままのタイミングでReadコマンドレジスタ17−1或いは18−1に転送される。Writeコマンドの場合は、(n−1)クロックディレイ回路63或いは73で(n−1)クロック遅延され、書き込まれる一連のバーストデータのn個目の最終データが入力されたタイミングで、Writeコマンドレジスタ17−2或いは18−2に転送される。
【0040】
またリフレッシュコマンドに関しては、Aポート11、Bポート12、及びリフレッシュコマンド発生器47からのリフレッシュコマンドが、リフレッシュコマンドレジスタ16に転送される。リフレッシュコマンドの発生頻度が低いので、リフレッシュコマンドレジスタを複数個用意する必要は無い。またリフレッシュコマンド発生器47に入力されるセルフリフレッシュ設定情報は、モードレジスタ31及び41から供給される情報であり、どちらのポートがリフレッシュ管理をしているかを示す情報である。
【0041】
アービタ15は、各コマンドレシスタにコマンドが転送された順番を検出し、DRAM制御回路53にそのコマンドを順番に1個づつ転送する。
【0042】
DRAM制御回路53はコマンドを受信したら(またはコマンド実行が終了に近づいたら)、RESET1信号を発生し、アービタ15に次ぎのコマンドを用意させる。本実施例では、RESET1信号が切断されると、DRAM制御回路53は次のコマンドを受信する。
【0043】
アービタ15はRESET1信号を受け取ると、リセット信号ResetRA、ResetWA、ResetRB、ResetWB、及びResetREFのいずれかを、コマンドレジスタA17、コマンドレジスタB18、及びリフレッシュコマンドレジスタ16のうちの対応するコマンドレジスタに供給する。これによって、DRAMコア14への転送が終了したコマンドが格納されているコマンドレジスタをリセットし、このコマンドレジスタに次ぎのコマンドを用意する。
【0044】
図6は、アービタ15の構成を示す回路図である。
【0045】
図6(a)に示されるように、アービタ15は、比較器80−1乃至80−10、AND回路81−1乃至81−5、AND回路82−1乃至82−5、AND回路83−1乃至83−5、ディレイ回路84−1乃至84−5、インバータ85乃至87、NAND回路88、及びインバータ89及び90を含む。比較器80−1乃至80−10の各々は同一の回路構成を有しており、図6(b)に示されるように、NAND回路91及び92と、インバータ93及び94を含む。
【0046】
コマンドレジスタA17からの読み出しコマンド信号RA2と書き込みコマンド信号WA2と、コマンドレジスタB18からの読み出しコマンド信号RB2と書き込みコマンド信号WB2と、更にリフレッシュコマンドレジスタ16からのリフレッシュコマンドREF2が、アービタ15に供給される。これら5個のコマンド信号から2つを選択する10通りの組合せ全てに対して、10個の比較器80−1乃至80−10が、コマンド到着タイミングの前後関係を判定する。
【0047】
各比較器は2個のコマンドのタイミングを比較して、先にHIGHが入力された側の出力をHIGHとする。例えば、比較器80−1乃至80−4は、Aポート11に対する読み出しコマンド信号RA2と、他の4個のコマンドとの前後関係を判定する。読み出しコマンド信号RA2が、他の4個のコマンドのいずれよりも早い場合には、AND回路81−1の出力である読み出しコマンド信号RA31がHIGHになる。RESET1信号がLOWの場合には、この読み出しコマンド信号RA31が、読み出しコマンド信号RA3として、アービタ15からDRAMコア14に出力される。
【0048】
コマンドをDRAMコア14が受信すると、RESET1信号がDRAMコアで発生されHIGHとなる。このRESET1信号は、インバータ85乃至87、NAND回路88、及びインバータ89によってパルス信号に変換され、AND回路83−1乃至83−5に供給される。例えば、読み出しコマンド信号RA31がHIGHの場合には、ディレイ回路84−1を介して、受信済のコマンドが格納されたコマンドレジスタをリセットする信号(ResetRA)を発生する。
【0049】
図7は、アービタ15の動作を示すタイミングチャートである。
【0050】
図7に示される信号名は、図6の各部に示される。図7は、読み出しコマンドが、Aポート11とBポート12に供給された場合のアービタ15の動作を示す。図7に示されるように、まずAポート11に対応する読み出し命令であるRA2が優先的に選択されてRA31が生成され、コア回路が読み出し動作READ−Aを実行する。これにより生成されたリセット信号RESET1に応じて、読み出しコマンド信号RA2がリセットされる。これに応じて、Bポート12に対応する読み出し命令であるRB2が選択されRB31が生成される。リセット信号RESET1がLOWになると、読み出し命令RB3がコア回路に供給され、読み出し動作READ−Bを実行する。
【0051】
図8は、DRAMコア14へのアドレス入力に関連する回路の構成図である。
【0052】
Aポート11のアドレスバッファ34は、入力バッファ34−1、転送ゲート34−2、及びOR回路34−3を含む。図5に示されるコマンドデコーダ62の出力である読み出しコマンド信号RA1に対して、立ち上がりエッジをパルス化したパルス信号が、OR回路34−3の一方の入力にRA1Pとして供給される。また図5に示されるコマンドデコーダ62のもう一方の出力である書き込みコマンド信号WA1に対して、立ち上がりエッジをパルス化したパルス信号が、OR回路34−3のもう一方の入力にWA1Pとして供給される。以降同様に、信号名の最後にPが付いている信号は、対応する信号名の信号に対して、その立ち上がりエッジをパルス化する等して作成した信号を表す。
【0053】
Bポート12のアドレスバッファ44は、入力バッファ44−1、転送ゲート44−2、及びOR回路44−3を含む。
【0054】
アドレスレジスタA20は、アドレスラッチ101、転送ゲート102、アドレスラッチ103、転送ゲート104、転送ゲート105、アドレスラッチ106、及び転送ゲート107を含む。またアドレスレジスタB21は、アドレスラッチ111、転送ゲート112、アドレスラッチ113、転送ゲート114、転送ゲート115、アドレスラッチ116、及び転送ゲート117を含む。
【0055】
リフレッシュアドレスレジスタ19は、リフレッシュアドレスカウンタ/レジスタ19−1、インバータ19−2、及び転送ゲート19−3を含む。リフレッシュアドレスはリフレッシュアドレスカウンタ/レジスタ19−1で発生され保持される。
【0056】
上記回路構成によって、ReadコマンドまたはWriteコマンドが外部から入力されると、それと同時に入力されたアドレスが、アドレスラッチ101或いは111に転送される。コマンドがReadコマンドの場合には、そのままのタイミングでアドレスラッチ106或いは116に転送される。コマンドがWriteコマンドの場合には、一連の書き込みデータの最終データの取り込みタイミングで、アドレスラッチ103或いは113に転送される。
【0057】
図8の回路構成に示されるように、アービタ15がDRAMコア14に転送するコマンド信号であるRA3、WA3、RB3、WB3、及びREF3に対応したパルス信号RA3P、WA3P、RB3P、WB3P、及びREF3Pに応答して、アドレス信号がアドレスラッチからDRAMコア14に転送される。
【0058】
図9は、データ出力に関連する回路の構成図である。
【0059】
データ入出力回路33のデータ出力に関連する部分は、データラッチ121、転送ゲート122、データラッチ123、パラレル・シリアル変換器124、出力バッファ125、及び転送信号発生回路126を含む。またデータ入出力回路43のデータ出力に関連する部分は、データラッチ131、転送ゲート132、データラッチ133、パラレル・シリアル変換器134、出力バッファ135、及び転送信号発生回路136を含む。
【0060】
メモリアレイ51から読み出されたデータは、センスバッファ55で増幅され、転送ゲートA24或いは転送ゲートB25を介して、データ入出力回路33或いはデータ入出力回路43に供給される。この際、実行したコマンドがAポート11側の読み出しであれば転送ゲートA24が開き、実行したコマンドがBポート12側の読み出しであれば転送ゲートB25が開く。これにより供給されたデータは、データラッチ121或いは131にラッチされ保持される。
【0061】
転送ゲート122或いは132は、転送信号発生回路126或いは136からの転送信号によって、各ポートでのReadコマンド受信から所定のレイテンシ後に開かれる。これによりデータラッチ121或いは131のデータは、データラッチ123或いは133に転送される。その後パラレル・シリアル変換器124或いは134でパラレルデータからシリアルデータに変換され、出力バッファ125或いは135に転送され出力される。
【0062】
図10は、転送信号発生回路126或いは136の構成を示す回路図である。
【0063】
転送信号発生回路126或いは136は、フリップフロップ141乃至144及びマルチプレクサ145を含む。フリップフロップ141には、読み出しコマンド信号RA1或いはRB1が供給され、クロック信号CLKA1或いはCLKB1に同期して、次段のフリップフロップにコマンド信号が伝播されていく。マルチプレクサ145には、レイテンシ情報A或いはBが供給される。このレイテンシ情報は、レイテンシを例えば何クロックサイクルと指定する情報である。このレイテンシ情報に基づいて、マルチプレクサ145が、対応するフリップフロップのQ出力を選択して、データ転送信号として出力する。
【0064】
図11は、データ入力に関連する回路の構成図である。
【0065】
データ入出力回路33のデータ入力に関連する部分は、データ入力バッファ151、シリアル・パラレル変換器152、及びデータ転送部153を含む。またデータ入出力回路43のデータ入力に関連する部分は、データ入力バッファ154、シリアル・パラレル変換器155、及びデータ転送部156を含む。
【0066】
データ入力バッファ151或いは154にシリアル入力されたデータが、シリアル・パラレル変換器152或いは155でパラレルデータに変換される。最後のデータが入力された時点で、パラレルデータが、WriteデータレジスタA22或いはWriteデータレジスタB23に転送される。アービタ15からWriteコマンドがDRAMコア14に転送されると、それに対応するタイミングを示す信号WA3P或いはWB3Pによって、WriteデータレジスタA22或いはWriteデータレジスタB23のデータがDRAMコア14に転送される。
【0067】
図12は、連続してReadコマンドが入力された場合の動作を示すタイミング図である。
【0068】
Aポート11とBポート12は、それぞれ周波数の異なるクロックCLKAとCLKBに同期して動作する。この例では、Aポート11は最高クロック周波数で動作し、Bポート12はそれより遅いクロック周波数で動作する。
【0069】
Aポート11はReadコマンドサイクル=4(CLKA)、データレイテンシ=4、バースト長=4であり、Bポート12はReadコマンドサイクル=2(CLKB)、データレイテンシ=2、バースト長=2である。データレイテンシとバースト長はそれぞれのポートのモードレジスタに設定される。
【0070】
両ポートが受信したコマンドは、それぞれコマンドレジスタに保持される。またリフレッシュコマンドは、リフレッシュコマンドレジスタに保持される。アービタはこれらのコマンドレジスタを監視し、早く発生したコマンドから順番にDRAMコアに転送する。前回転送したコマンドの処理が終了してから、次ぎのコマンドを転送する。
【0071】
DRAMコアから読み出されたデータは、センスバッファから各ポートのデータラッチ(図9参照)に転送される。その後、パラレルデータからシリアルデータに変換され、外部クロックに同期してバースト出力される。
【0072】
図12に示されるように、リフレッシュコマンドがAポートから1回入力されているが、Bポートの動作には影響を与えていない。
【0073】
図13は、連続してWriteコマンドが入力された場合の動作を示すタイミング図である。
【0074】
書き込み動作時に外部から入力されるデータは、バースト入力である。このときWriteコマンドレジスタにWriteコマンドが保持されるタイミングは、バースト入力の最終データが入力されたタイミングである。
【0075】
図13に示されるように、Aポートから与えたリフレッシュコマンドは、Bポートの動作に影響を与えていない。
【0076】
図14は、A及びBの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。
【0077】
図14に示されるように、両ポートのクロックの位相に差があってもよい。両ポートともReadコマンドサイクル=4、データレイテンシ=4、バースト長=4である。両ポートを最高クロック周波数で動作させて、連続してReadコマンドを入力した場合であっても、問題なく動作しているのがわかる。
【0078】
図15は、A及びBの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。図15では、両ポートに書き込みコマンドが連続して入力される。
【0079】
図15に示されるように、両ポートのクロックの位相に差があってもよい。両ポートともWriteコマンドサイクル=4、データレイテンシ=4、バースト長=4である。両ポートを最高クロック周波数で動作させて、連続してWriteコマンドを入力した場合であっても、問題なく動作しているのがわかる。
【0080】
図16は、コマンドがReadからWriteに切り替わる場合の動作を示すタイミング図である。
【0081】
図16に示されるように、Write→WriteまたはRead→Readのコマンド間隔に対して、Write→Readは余分にコマンド間隔を空ける必要がある。これは書き込みコマンドをコマンドレジスタに転送して処理するタイミングが、バースト入力の最後のデータを入力したタイミングとされているためである。これに対して読み出しコマンドをコマンドレジスタに転送して処理するのは、読み出しコマンドが入力されたタイミングであるので、Write→Readとコマンドが続く場合には、余分にコマンド間隔を空ける必要がある。但しこれは、データをバースト入力してパラレルデータに変換するという動作に起因するものであり、例えば4つのデータをバースト入力する代わりに1つだけデータを入力するよう構成すれば、Write→Readとコマンドが続く場合であってもコマンド間隔を空ける必要はない。
【0082】
即ち、1つの書き込みコマンドに対して1つだけデータを入力するよう構成すれば、Write→Readとコマンドが続く場合であっても、Write→WriteまたはRead→Readと同様のコマンド間隔で動作することが可能である。
【0083】
図17は、コマンドがReadからWriteに切り替わる場合にリフレッシュコマンドを入力するタイミングを示した図である。
【0084】
図17上部に、リフレッシュコマンドを入力するタイミングを示してある。ここに示した期間の何処かのタイミングで、リフレッシュコマンドを入力すればよい。例えば、図17に示されるタイミングでリフレッシュコマンドを入力しても、リフレッシュ動作が実際に開始されるのは先行する書き込みコマンドの実行が終了してからであり、それまでの間リフレッシュコマンドはリフレッシュコマンドレジスタで待機する状態にある。従って、この待機状態に対応する期間内であれは、任意のタイミングでリフレッシュコマンドを投入して良いことが分かる。
【0085】
図18は、片方のポートを非活性にした場合の動作を示すタイミング図である。
【0086】
図18に示されるように、片方のポート(図ではAポート11)を非活性にした場合には、リフレッシュタイマに基づいて内部でリフレッシュコマンドが発生され、これに応じてリフレッシュ動作が実行される。
【0087】
図19は、両ポートを非活性にした場合の動作を示すタイミング図である。
【0088】
図19に示されるように、両方のポートを非活性にした場合も、リフレッシュタイマに基づいて内部でリフレッシュコマンドが発生され、これに応じてリフレッシュ動作が実行される。
【0089】
図20は、DRAMコアの動作を示すタイミング図である。図20(a)が読み出し動作の場合を示し、図20(b)が書き込み動作の場合を示す。図20(a)及び(b)に示されるような動作タイミングで、1個のコマンドに対し、ワード線選択、データ増幅、ライトバック、及びプリチャージを順次実行し、動作を完結させる。
【0090】
図21は、1つのポートだけ動作させた場合の倍速動作を示すタイミング図である。
【0091】
2つ設けられたポートのうち一方のポートを停止することにより、他方のポートから入力するコマンドの間隔を半分にすることが出来る。このとき外部コマンドの最高サイクルと内部動作の最高サイクルとは一致する。図21の例では、クロック周波数は変えずに、コマンド間隔を短くしている。この場合、バースト長も短くなるので、データ転送レートは両方のポートを使用する場合と変わらない。
【0092】
図22は、クロック周波数を2倍にしてデータ転送レートを2倍にした倍速動作を示すタイミング図である。
【0093】
図22では、2つ設けられたポートのうち一方のポートを停止した場合に、他方のポートから入力するクロック信号を2倍の周波数とする。これに伴って、コマンド入力の時間間隔は半分になる。この場合、バースト長は両方のポートを使用する場合と同じであるので、データ転送レートは両方のポートを使用する場合に対して2倍になる。
【0094】
なお外部クロック信号は入出力回路部にしか入力されないので、その部分を高速動作に対応して設計しておけば、上記倍速動作を容易に実現することが可能となる。
【0095】
図23は、本発明の第2の実施例を説明するための図である。
【0096】
メモリは一般的に、用途に応じて拡張するものである。マルチポートメモリの場合も同様であり、1個で使うだけではなく、複数個搭載してメモリを拡張する場合がある。
【0097】
マルチポートメモリはアービタを内蔵しており、どちらのポートのコマンドが早いかを検出して、その順番でコマンドを実行する。両ポートのコマンドが殆ど同時に入力された場合も、順番を決定して順次実行する。図23のように複数のマルチポートメモリ200−1乃至200−nを搭載し、これらのマルチポートメモリ200−1乃至200−nに、Aポートコントローラ201及びBポートコントローラ202から、同一のコマンドを与えたとする。AポートとBポートのコマンドが同時に発行されたとしても、信号線の長さや電源ノイズの影響によって、各マルチポートメモリに到達するコマンドの相対的タイミングが若干異なってしまう場合がある。この場合、各々のマルチポートメモリのアービタが、各々異なる順番でコマンドを実行してしまう可能性がある。
【0098】
このAポートとBポートのコマンドが別々のアドレスに対するコマンドであれば、メモリデバイス間で順番が異なっても問題ないが、同一のアドレスに対するコマンドの場合には問題が発生する。
【0099】
例えば、同じセルに対してWriteしてからReadするのと、ReadしてからWriteするのでは、Readしたデータが異なる結果となる。また例えば、AポートのデータをWriteした後にBポートのデータをWriteした場合、メモリに残るのはBポートのデータであるが、逆の順で実行した場合には、メモリにはAポートのデータが残ることになる。
【0100】
このようにメモリデバイス間でコマンド実行の順番が異なってしまったのでは、データの信頼性に大きな問題が発生する。
【0101】
従って、複数のマルチポートメモリを使用する場合には、マルチポートメモリ間でアービタの判定を合わせる必要がある。これを解決するために、本発明の第2の実施例では、複数のマルチポートメモリの中で1つをマスタデバイス200−1とし、残りをスレーブデバイス200−2乃至200−nとし、マスタデバイスのアービタの判定にスレーブデバイスが判定を合わせる。
【0102】
図24は、本発明によるマルチポートメモリの第2の実施例を示す構成図である。この例では、AポートとBポートの2つのポートを持つ構成となっている。
【0103】
図4に示される第1の実施例との違いとしては、BUSY信号I/O部36及び46をAポート11A及びBポート12Aに備えること、またAポートとBポートのアドレスを比較するアドレス比較器26を備えることが挙げられる。またアービタ15Aは、アドレス比較器26でアドレスが一致して一致信号が発生したら、DRAMコアの動作モードを連続モードに切り換えるように動作する。
【0104】
図25は、連続モードの説明をするためのタイミング図である。
【0105】
第1の実施例の動作図(図20)に示されるように、DRAMコア動作は、ROW動作とCOLUMN動作に分けられる。本発明では、ROW動作、COLUMN動作、及びプリチャージ動作を、一連の流れで実行する1回の内部動作サイクルとしている。
【0106】
第2の実施例における連続モードとは、通常のDRAMのコラムアクセス動作と同じであり、同一のセルに対し連続してコマンドを実行する動作である。即ち、ROW系動作の後にCOLUMN系動作を複数回実行した後にプリチャージするモードである。ただし、同じセルのWriteコマンドが重複した場合は、後から入力された方を実施して前に入力されたものは実施しない。これはWriteを連続して実施しても、前にWriteしたデータは後からWriteしたデータに上書きされて後に残らないためである。
【0107】
図25(a)に示すように、連続モードにすると通常の内部動作サイクルの2サイクルよりも動作を短縮することができ、時間に余裕ができる。この時間の余裕を、図25(b)に示すようにROW系動作とCOLUMN系動作の間に持たせる(以降Wait期間と呼ぶ)。このWait期間中に、マスタとスレーブの間でコマンド実行順序を合わせる処理をする。
【0108】
以下に、BUSY信号によりマスタとスレーブとの動作を合わせる手順を説明する。
【0109】
マスタとスレーブの間でコマンド実行順序を合わせるために、BUSY信号を用いる。BUSY信号I/O部36及び46は、マスタデバイス200−1ではBUSY信号を出力するBUSY出力回路となり、スレーブデバイス200−2乃至200−nではBUSY信号を受け取るBUSY入力回路となる。マスタデバイスかスレーブデバイスかを示す情報は、モードレジスタ31或いは41に設定される。
【0110】
メモリデバイスは、まず一方のポートからコマンドを受信し、図20に示す動作を開始する。
【0111】
ROW系動作の期間内に他のポートから同じアドレスに対してコマンドが入力されると、アドレス比較器26から一致信号が発生する。この一致信号を受け取ると、アービタ15Aは、DRAMコア14の制御回路53に連続モード信号を供給する。連続モード信号に応答して、DRAMコア14は、図25(b)に示すような連続モードに移行する。
【0112】
Wait期間中に、マスタデバイス200−1は、アービタ15Aの判定結果に基づいてBUSY−AまたはBUSY−Bを発生する。この例においては、アービタ15Aで先に受信したと判定した方のポートに対して、BUSY信号を発生する。
【0113】
同じくWait期間中に、スレーブデバイスはマスタデバイスの発生するBUSY信号を検出し、それが自身のアービタ15Aの判定と違っていたら、自身のアービタ15Aの判定をマスタに合わせて変更する。変更後の順序に従って、COLUMN系動作を実行する。
【0114】
図26は、AポートのReadとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【0115】
この実施例ではBUSY信号は選択”L”の論理にしてある。またBUSY信号は、非同期で発信/受信する信号とするのがよい。これは限られたWait期間内にBUSYを速やかに伝達するためである。
【0116】
図26の例では、AポートのReadA2がBポートのWriteB2よりも早いので、Wait期間中にマスタはAポートのBUSY信号を発生する。このBUSY信号をスレーブは受信して、AポートのReadA2がBポートのWriteB2よりも早いことを知る。その後、マスタ及びスレーブにおいて、コラム動作をReadA2→WriteB2の順に連続モードで実行する。
【0117】
図27は、AポートのReadとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。図26では、AポートのReadが早い場合を示したが、図27では、BポートのWriteが早い場合を示している。
【0118】
図28は、AポートのWriteとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【0119】
図28に示される動作例は、Aポートの書き込みコマンドが、Bポートの書き込みコマンドよりも早い場合である。即ち、AポートのWriteA2がBポートのWriteB2よりも早いので、AポートのBUSY信号が発生し、これがスレーブに供給される。この場合には、Aポートの書き込みコマンドを実行しても直ぐに書き換えられることになるので、後から入力されたBポートの書き込みコマンドWriteB2のみを実行する。
【0120】
図29は、AポートのWriteとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【0121】
図29に示される動作例は、Bポートの書き込みコマンドが、Aポートの書き込みコマンドよりも早い場合である。この場合には、Bポートの書き込みコマンドを実行しても直ぐに書き換えられることになるので、Aポートの書き込みコマンドWriteA2のみを実行する。この例では、Aポートのクロック周波数が、Bポートのクロック周波数よりも少し低い設定となっている。WriteA2及びWriteB2のコマンドに対しては、Aポートの方がコマンド入力は早いが、最終データ入力はBポートの方が早い。従って、Bポートの書き込みコマンドが、Aポートの書き込みコマンドよりも早いことになる。
【0122】
なお上記説明において、AポートのReadとBポートのReadの場合については書かれていない。この場合は、どちらが先であってもデータの信頼性に影響がないので、BUSYにする必要はない。
【0123】
図30は、コントローラによるインタラプトを挿入可能なよう構成された場合の動作を示すタイミング図である。
【0124】
インタラプトとは、BUSYになった場合にマスタデバイスのアービタの判定に対して、コントローラからその判定を変更させる指示を出すことである。インタラプトの指示の方法としては次のようなものがある。
a)コマンドで入力する方法
b)専用端子を設ける方法
c)特殊なアドレス組合せによる方法
d)BUSY信号を用いる方法
上記d)は例えば、BUSYが発生しなかった方のポートのBUSY信号をコントローラから与え、それをマスタとスレーブのメモリが検出する等の方法である。
【0125】
図30の例では、AポートのWriteとBポートのWriteでBUSYが発生した場合について、インタラプトが発生される。図28及び図29で説明したように、Write−WriteでBUSYになる場合は、AまたはBのどちらかのWriteだけを実行するので、先に入力された方のデータが消えてしまう。
【0126】
図30では、AポートのWriteA2がBポートのWriteB2よりも早いので、AポートのBUSY信号が発生する。マスタが生成したBUSY信号を受信したコントローラは、Aポートの書き込みデータが消えてしまうのを防止するために、インタラプト指示を発生する。
【0127】
マスタおよびスレーブは、コントローラからのインタラプト指示を受信し、アービタの判定を変更し、Wait後にインタラプト指示に従ってWrite動作を実施する。即ち、アービタはAポートのコマンドWriteA2がBポートのコマンドよりも遅いものと判定変更をして、WriteA2の書き込み動作を実行する。これによって、Aポートの書き込みデータが消去されることを防ぐことができる。なおWrite→Writeの動作の場合には、書き込み動作を1回実行するだけでよいので、Wait時間はRead→WriteやWrite→Readの連続モードに比べて長くとることができる。従ってこの時間を利用して、BUSY信号に基づくインタラプト指示を実施することが可能になる。
【0128】
上記の動作を達成するためのアドレス比較器・BUSY入出力系・インタラプト系の構成について以下に説明する。
【0129】
図31は、本発明の第2の実施例によるマルチポートメモリにおけるアドレス比較器・BUSY入出力系・インタラプト系の構成を示す図である。
【0130】
アドレス比較器26は、アドレスレジスタに保持されているアドレスを比較して、Aポート11のアドレスとBポート12のアドレスとが一致する場合に一致信号を出力する。またどの2つのアドレスが一致しているかを示すためにARA、AWA、ARB、及びAWBの信号を発生する。例えばAポートのWriteとBポートのWriteのアドレスが一致する場合には、AWAとAWBを”H”にする。NAND回路208乃至210によって、これらの信号のNANDをとり、N1、N2、及びN3の何れかが”L”になる。
【0131】
図31の左側(アドレス比較器26の下)に配置されているのが、BUSY信号I/O部36及び46とインタラプト回路である。BUSY・I/O制御部211は、一致信号を検出すると、モードレジスタ31或いは41の設定に基づいて、マスタデバイスの場合は活性化信号(マスタ)を発生し、スレーブデバイスの場合は活性化信号(スレーブ)を発生する。活性化信号(マスタ)は、BUSY出力回路212及び213を活性化し、活性化信号(スレーブ)は、BUSY入力回路214及び215を活性化する。
【0132】
この時アービタにおいて、1番の順位で選択されたコマンドが、アービタの出力RA3、WA3、RB3、及びWB3の何れか1つに出力されている(何れか1つが”H”になっている)。マスタデバイスの場合は、一致信号の立ち上がりをパルス化した信号N4によって、RA3〜WB3をラッチ216及び217にラッチする。ラッチされたデータに基づいて、BUSY−AまたはBUSY−Bが出力される。
【0133】
スレーブデバイスの場合は、例えばBUSY−A=”L”を受信すると、インタラプト回路218の出力である信号N10は”L”となる。またBUSY−B=”L”を受信すると、インタラプト回路219の出力である信号N11は”L”となる。N10及びN11は、非活性時は”H”であり、BUSY受信又はインタラプトが入った場合に”L”になる。
【0134】
インタラプト検出部220は、コントローラよりのインタラプト指示を検出し、インタラプトA又はBを出力する。これらのインタラプト信号は、BUSY入力信号よりも優先されて、信号N10及びN11に伝達される。
【0135】
図31の下部に示される3個の比較器80−3、80−5、及び80−6は、アービタ15Aの比較器の一部である(図6及び図24参照)。これらは、BUSYの判定が必要なコマンドの組合について、比較する比較器である。
【0136】
図32は、マスタデバイスの動作を示すタイミング図である。図33は、スレーブデバイスの動作を示すタイミング図である。
【0137】
これらの動作タイミング図に示すように、AポートのReadとBポートのWriteのアドレスが一致したとする。図32のマスタはAポートが早いと判定し、図33のスレーブはBポートが早いと判断したとする。この場合マスタの比較器80−3の出力は、N21=”L”及びN22=”H”となる。またスレーブの比較器80−3の出力は、N21=”H”及びN22=”L”となる。マスタはBUSY−Aを発生し、それを受信したスレーブはN10=”L”になる。このときN1=”L”になっているので、N10のLOW信号が、NOR回路221及びインバータ222を介して、スレーブの比較器80−3に供給される。これにより、スレーブの比較器80−3の出力は、N21=”L”及びN22=”H”に切り替わる。これによってスレーブのアービタの判定が変更される。
【0138】
上記動作と逆に、AポートのWriteとBポートのReadのアドレスが一致したとする。この場合には、スレーブの比較器80−5の出力が切り替わることによって、スレーブのアービタの判定が変更される。
【0139】
比較器80−6は、WA2とWB2の比較器であるが、Write同士でBUSYになった場合はAポートとBポートのどちらかのコマンドを残すという動作になるので、比較器80−3及び80−5とは周辺回路の構成が異なる。
【0140】
図34は、両ポートの書き込みアドレスが一致した場合のマスタデバイスの動作を示すタイミング図である。図35は、両ポートの書き込みアドレスが一致した場合のスレーブデバイスの動作を示すタイミング図である。
【0141】
図34のようにマスタはAポートが早いと判断し、図35のようにスレーブはBポートが早いと判断したとする。アドレス比較器26から一致信号が発生した時点の状態では、マスタの比較器80−6の出力はN25=”L”及びN26=”H”であり、スレーブの比較器80−6の出力はN25=”H”及びN26=”L”となっている。マスタはこの状態におけるRA3、WA3、RB3、及びWB3をラッチして、BUSY−A信号を出力する。
【0142】
この場合のように、Write−WriteでBUSYが発生する場合は、先に入力された方のWriteを消す必要がある。インバータ231、NOR回路232、NAND回路233及び234、インバータ235及び236は、そのために設けられた回路である。一致信号が発生すると、HIGHエッジパルス化回路230によって、信号N4の”H”パルスが発生する。信号N3と論理を取ってN31に”H”パルスが発生する。この例において、マスタの場合は、N26=”H”であるので、N33に”H”パルスが発生しN25=”H” 及びN26=”L”に切り替わる。ディレイ回路237及び238は、BUSY信号を発生するために切り替わり前の状態での時間を稼ぐと共に、切り替わった結果がNAND回路233及び234にフィードバックされて、再度切り替わってしまうのを防止するためである。またスレーブの方においては、N25=”L”及びN26=”H”に切り替わる。
【0143】
前述したようにマスタはBUSY−Aを発生し、それを受信したスレーブにおいてはN10=”L”になる。このときN3=”L”になっているから、スレーブの比較器80−6は再度反転されて、N25=”H”及びN26=”L”に切り替わる。
【0144】
ディレイ回路250は、信号N4を受け取り所定時間遅延させてWait解除信号を出力することで、Wait期間を作成する機能を有する。ここで、N1或いはN2が選択された場合はDelay(t1)が選択され、N3が選択された場合はDelay(t2)が選択される。
【0145】
NAND回路251及び252とインバータ253及び254は、Wait期間が終了したら、消去した方のWriteコマンドをコマンドレジスタから削除するための回路である。例えば、Wait期間が終了した時にN25=”L”及びN26=”H”であれば、AポートのWriteコマンドを実行する。従って、BポートのWriteコマンドをレジスタから消去するために、ResetWB2が発生する。Wait期間中は、BUSY受信やインタラプトで判定を変える必要があるので、その期間はコマンドレジスタ内のコマンドは消去しないでおく。
【0146】
図36は、両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のマスタデバイスの動作を示すタイミング図である。図37は、両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のスレーブデバイスの動作を示すタイミング図である。
【0147】
図36に示されるように、マスタデバイスにおけるコマンド選択状態はインタラプトで反転させられる。また図37に示されるように、スレーブデバイスにおけるコマンド選択状態は、BUSYで反転させられてから、インタラプトで更に反転させられる。なおインタラプトによる反転の動作はBUSYによる反転動作と同様であり、詳細な説明は省略する。
【0148】
なお上記第2の実施例の動作において、BUSYやインタラプトが発生した後、次ぎのコマンドを入れるまでのコマンドサイクルは変わらないように構成されている。
【0149】
例えば図26において、ReadA2でBUSYが発生するが、ReadA1→ReadA2のコマンド間隔とReadA2→ReadA3のコマンド間隔は同じである。Wait時間の間にBUSYやインタラプトを処理しなくてはいけないが、システム上のバス線が長かったり、搭載されたスレーブデバイスの数が多かったり、コントローラの応答速度が遅かったりした場合は、BUSYやインタラプトの信号のやり取りに時間がかかるために、長いWait時間が必要になる。
【0150】
これを解決するためには、Wait時間を延長するとともに、BUSYやインタラプト発生後の次ぎのコマンド入力を所定の時間遅らせればよい。すなわち図26において、Wait時間を長くするとともに、ReadA1→ReadA2のコマンド間隔に対して、ReadA2→ReadA3のコマンド間隔を長くすればよい。
【0151】
コマンド入力を遅らせるためには、データシートにそのことを明記して、コントローラをそのように動作させればよい。Wait時間を延長する方法としては、図31に示されるディレイ回路250の遅延時間を長くすればよい。使用状態によりWait時間を変えたい場合は、このディレイ回路250内に遅延列を複数個用意して、モードレジスタの設定で遅延量の設定を切り替えられるようにすればよい。
【0152】
またこのようにWait時間を長くすれば、Write−WriteのBUSY以外の場合でもWait時間を長くとれるため、Read−WriteやWrite−ReadでBUSYが発生した場合も、コントローラからインタラプト指示を出せるようになる。
【0153】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0154】
【発明の効果】
上記発明では、複数N個のポートからコマンドが入力された場合に、N個のポートに対応するN個のコマンドを、あるポートに着目した場合の最小のコマンドサイクルの間に順次実行する。これにより、外部からは任意のポートについて、最小のコマンドサイクルの間に、そのポートのコマンド入力に対するアクセス動作を実行するように見える。この場合、BUSY状態となる可能性があるのは、同一のアドレスに複数のポートから同時にアクセス要求があったときだけである。従って、SRAM型のマルチポートメモリのBUSY発生確率と、同等の低いBUSY発生確率を実現することが出来る。
【0155】
また更に本発明の半導体記憶装置において、内部回路は、ダイナミック型メモリセルで構成されたセル配列と、メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路を含み、第1のモードでは複数N個の外部ポートの少なくとも1つへ入力されるリフレッシュコマンドに応じてメモリセルをリフレッシュし、第2のモードではリフレッシュ回路が指定するタイミングでメモリセルをリフレッシュすることを特徴とする。
【0156】
上記発明では、外部ポートから指定してリフレッシュ動作を実行する動作モードと、内蔵リフレッシュ回路の指示によりリフレッシュ動作を実行する動作モードを用意しておくことで、例えば所定の外部ポートをリフレッシュ管理用のポートとして定期的にリフレッシュコマンドを入力するように動作させたり、このリフレッシュ管理用のポートが非活性状態の場合に内蔵リフレッシュ回路によってリフレッシュ動作を実行すること等が可能になり、システム構成に応じて柔軟にリフレッシュ管理を行うことが出来る。
【図面の簡単な説明】
【図1】本発明の動作原理を説明するための図である。
【図2】複数のポートのうちで一方のポートだけを動作させた場合のリフレッシュ動作を示す図である。
【図3】2ポート、3ポート、及びNポートの場合の本発明の原理を説明するための図である。
【図4】本発明によるマルチポートメモリの第1の実施例を示す構成図である。
【図5】アービタへのコマンド入力に関連する回路の構成図である。
【図6】アービタの構成を示す回路図である。
【図7】アービタの動作を示すタイミングチャートである。
【図8】DRAMコアへのアドレス入力に関連する回路の構成図である。
【図9】データ出力に関連する回路の構成図である。
【図10】転送信号発生回路の構成を示す回路図である。
【図11】データ入力に関連する回路の構成図である。
【図12】連続してReadコマンドが入力された場合の動作を示すタイミング図である。
【図13】連続してWriteコマンドが入力された場合の動作を示すタイミング図である。
【図14】A及びBの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。
【図15】A及びBの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。
【図16】コマンドがReadからWriteに切り替わる場合の動作を示すタイミング図である。
【図17】コマンドがReadからWriteに切り替わる場合にリフレッシュコマンドを入力するタイミングを示した図である。
【図18】片方のポートを非活性にした場合の動作を示すタイミング図である。
【図19】両ポートを非活性にした場合の動作を示すタイミング図である。
【図20】DRAMコアの動作を示すタイミング図である。
【図21】1つのポートだけ動作させた場合の倍速動作を示すタイミング図である。
【図22】クロック周波数を2倍にしてデータ転送レートを2倍にした倍速動作を示すタイミング図である。
【図23】本発明の第2の実施例を説明するための図である。
【図24】本発明によるマルチポートメモリの第2の実施例を示す構成図である。
【図25】連続モードの説明をするためのタイミング図である。
【図26】AポートのReadとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【図27】AポートのReadとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【図28】AポートのWriteとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【図29】AポートのWriteとBポートのWriteでBUSYが発生した場合の動作を示すタイミング図である。
【図30】コントローラによるインタラプトを挿入可能なよう構成された場合の動作を示すタイミング図である。
【図31】本発明の第2の実施例によるマルチポートメモリにおけるアドレス比較器・BUSY入出力系・インタラプト系の構成を示す図である。
【図32】マスタデバイスの動作を示すタイミング図である。
【図33】スレーブデバイスの動作を示すタイミング図である。
【図34】両ポートの書き込みアドレスが一致した場合のマスタデバイスの動作を示すタイミング図である。
【図35】両ポートの書き込みアドレスが一致した場合のスレーブデバイスの動作を示すタイミング図である。
【図36】両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のマスタデバイスの動作を示すタイミング図である。
【図37】両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のスレーブデバイスの動作を示すタイミング図である。
【符号の説明】
10 マルチポートメモリ
11 Aポート
12 Bポート
13 セルフリフレッシュ回路
14 DRAMコア
15 アービタ
16 リフレッシュコマンドレジスタ
17 コマンドレジスタA
18 コマンドレジスタB
19 リフレッシュアドレスレジスタ
20 アドレスレジスタA
21 アドレスレジスタB
22 WriteデータレジスタA
23 WriteデータレジスタB
24 転送ゲートA
25 転送ゲートB[0001]
BACKGROUND OF THE INVENTION
The present invention generally relates to semiconductor memory devices, and particularly relates to a semiconductor memory device having a plurality of ports.
[0002]
[Prior art]
There are several types of multi-port memories, which are semiconductor storage devices having a plurality of ports. In the following, the term “multi-port memory” refers to a memory that has a plurality of ports and can independently access a common memory array from each port. In such a memory, for example, an A port and a B port are provided, and a CPU connected to the A port and a CPU connected to the B port can independently read and write to a common memory array.
[0003]
The multi-port memory includes an arbitration circuit called an arbiter. This arbiter determines the priority order of access requests received from a plurality of ports, and the control circuit of the memory array sequentially executes access according to this priority order. For example, the input to each port is executed preferentially in order from the earlier access.
[0004]
In such a case, since the memory array is randomly accessed from a plurality of ports, it is necessary to reset immediately after performing a read or write operation for one access to prepare for the next access. That is, for an access from a certain port, for example, when an operation of holding a word line in a selected state and sequentially reading and moving a column address as in a general column access operation in a DRAM, Access from will continue to wait. Therefore, it is necessary to reset immediately after one read or write operation.
[0005]
Conventionally, SRAM has generally been used as a memory array of a multi-port memory. This is because the SRAM has a high random access speed and can perform nondestructive reading.
[0006]
For example, in a 2-port multiport memory, two sets of word lines and bit line pairs are provided for one SRAM memory cell. One port performs a read / write operation using a set of one word line and bit line pair, and the other port executes a read / write operation using a set of the other word line and bit line pair. As a result, reading and writing can be performed independently from the two ports. However, when there is a write instruction from the two ports at the same time in the same cell, it is impossible to carry out simultaneously, so one port is given priority and a BUSY signal is generated at the other port. This is called a BUSY state.
[0007]
[Problems to be solved by the invention]
As the performance of the system increases, the amount of data handled increases, and a large capacity is required for the multiport memory. However, the SRAM type multi-port memory as described above has a problem that the area of the memory cell is large.
[0008]
In order to solve this problem, it is conceivable to employ a DRAM array for a multi-port memory. In order to achieve a large degree of integration for a multi-port SRAM, as in the case of a general DRAM cell, one memory cell of a DRAM used for a multi-port memory has one word line and one It is necessary to be connected only to the bit line. When a memory block is configured using DRAM cells as described above, when a read or write operation is executed from a certain port to a memory cell of a certain block, the block is accessed from another port during the operation. I can't. This is because the DRAM cell is destructive read. That is, once the information is read, it is not possible to select another word line in the same block without amplifying this information and writing it back to the cell and precharging the word lines and bit lines.
[0009]
For this reason, if a memory block being accessed from a certain port is accessed from another port, the state becomes BUSY. In the SRAM type multi-port memory, the BUSY state occurs only when there is a write request simultaneously from a plurality of ports to the same memory cell. However, in the DRAM type multi-port memory, the same memory block is simultaneously input from a plurality of ports. The BUSY state occurs when there is any access request. Therefore, the probability of occurrence of DRAM-type BUSY is considerably higher than the probability of occurrence of SRAM-type BUSY. In the BUSY state, there is a problem that a desired operation cannot be executed or a waiting time occurs, so that the processing becomes slow.
[0010]
Further, unlike the SRAM type multi-port memory, the DRAM type multi-port memory needs to be periodically refreshed in order to retain information, and therefore, it is necessary to take measures for the refresh timing and the like.
[0011]
In view of the above, an object of the present invention is to provide a DRAM type multi-port memory that solves the problems peculiar to DRAMs.
[0012]
[Means for Solving the Problems]
According to the present invention, a semiconductor memory device sequentially performs at least N access operations between a plurality of N external ports each receiving a command and a minimum interval between a plurality of commands input to one of the external ports. An internal circuit that executes automatically, an arbitration circuit that determines a command execution order for causing the internal circuit to execute a plurality of commands respectively input from the plurality of N external ports, and an input from each of the plurality of N external ports An address comparison circuit that determines whether or not there are a plurality of commands that access the same address among a plurality of commands to be executed , Ma Including a mode register designating a star operation mode or a slave operation mode, and each of the plurality of N external ports includes: A signal output circuit for outputting a predetermined signal to the outside of the apparatus when there are a plurality of commands for accessing the same address; a signal input circuit for receiving the predetermined signal from the outside of the apparatus; A circuit for supplying serially received data to the internal circuit as parallel data; and a circuit for outputting the data supplied in parallel from the internal circuit to the outside as serial data. The internal circuit is composed of dynamic memory cells. The signal output circuit is activated when the mode register designates the master operation mode, and the signal input circuit is activated when the mode register designates the slave operation mode. It is characterized by.
[0013]
The invention further includes an arbitration circuit that determines a command execution order for causing the internal circuit to execute a plurality of commands respectively input from a plurality of N external ports.
[0014]
In the above invention, when a command is input from a plurality of N ports, N commands corresponding to the N ports are sequentially executed during a minimum command cycle when attention is paid to a certain port. As a result, externally, for any port, it appears to perform an access operation for the command input of that port during the minimum command cycle. In this case, there is a possibility of entering the BUSY state only when there are simultaneous access requests from a plurality of ports to the same address. Therefore, the BUSY occurrence probability of the SRAM type multi-port memory and the equivalent low BUSY occurrence probability can be realized.
[0015]
Furthermore, in the semiconductor memory device of the present invention, the internal circuit includes a cell array composed of dynamic memory cells and a refresh circuit that defines a timing for refreshing the memory cells. In the first mode, a plurality of N external circuits are provided. The memory cell is refreshed in response to a refresh command input to at least one of the ports, and in the second mode, the memory cell is refreshed at a timing specified by the refresh circuit.
[0016]
In the above invention, by preparing an operation mode in which a refresh operation is performed by designating from an external port and an operation mode in which a refresh operation is performed in accordance with an instruction of the built-in refresh circuit, for example, a predetermined external port is used for refresh management. Depending on the system configuration, it is possible to operate so that a refresh command is periodically input as a port, or when the refresh management port is in an inactive state, a refresh operation can be executed by a built-in refresh circuit. Refresh management can be performed flexibly.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0018]
First, the operation principle of the present invention will be described.
[0019]
FIG. 1 is a diagram for explaining the operating principle of the present invention. FIG. 1 shows a principle diagram in the case of two ports, but the same operation is possible even in the case of two or more N ports.
[0020]
The time required for the internal (DRAM core) to rotate two cycles is set as one cycle of the external command cycle. That is, the internal operation cycle rotates at a double speed with respect to the external command cycle. Commands entered from both the A port and the B port are processed at a double speed in the internal memory in order from the one with the fastest command reception, and the output data is passed to each port. That is, in one internal operation cycle, a series of operations of word line selection, data amplification, column selection, read or write operation, and precharge are executed, and the access operation to the memory block is completed.
[0021]
For example, at timing C1 of the external command cycle for the A port in FIG. 1, a read command is input from the A port. At the timing C1 ′ of the external command cycle for the B port, a read command is input from the B port. Since the timing of the read command from the A port is slightly earlier, it is executed internally before the read command from the B port. Here, the external command cycle is 4 clock cycles. As shown in FIG. 1, each read command is executed and completed in two clock cycles that are internal operation cycles. Therefore, even if the read access from the A port and the read access from the B port are for the same block, by completing the execution of each access in 2 clock cycles, the external command cycle is input in 4 clock cycles. In response to the read command from the A port and the B port, the read operation can be executed without generating a BUSY state.
[0022]
In this way, even if the same memory block is accessed from a plurality of ports at the same time, the internal memory can be processed continuously at double speed, so it does not enter the BUSY state. .
[0023]
Also, as shown in FIG. 1, when a refresh command is given from the outside (for example, given from the A port), it does not affect the access of other ports (B port in this example) and is internally A refresh operation can be performed. In this case, for example, one of a plurality of ports (A port in the example of FIG. 1) may be set as a port for refresh management, and a refresh command may be always input from this port.
[0024]
Data output is a burst type that reads data from multiple column addresses in parallel and changes the data serially at the time of output to output the data, thereby improving the data transfer rate and allowing continuous data to be read in response to a continuous Read command. Can be output.
[0025]
FIG. 2 is a diagram showing a refresh operation when only one of the plurality of ports is operated.
[0026]
As shown in FIG. 2, for example, when two ports, an A port and a B port, are provided, it is not always necessary to operate both ports. By incorporating a refresh timer, a refresh command can be generated internally. For example, as shown in FIG. 2, when one port (for example, B port) is stopped, a refresh command is generated internally, and refresh is performed internally without affecting the access of A port. Is possible.
[0027]
For example, consider a case where the controller A controls the A port, the controller B controls the B port, and the controller B performs refresh management. In such a case, if there is an internal refresh function as described above, the B port can be completely stopped and only the A port can be used, so that it is possible to reduce the power corresponding to the operation of the system.
[0028]
FIG. 3 is a diagram for explaining the principle of the present invention in the case of 2 ports, 3 ports, and N ports.
[0029]
As described above, the present invention can be applied to a multiport memory having three or more ports. FIG. 3A shows an operation for one port in the case of two ports as shown in FIGS. Further, (b) shows the operation for one port in the case of 3 ports, and (c) shows the case of N port memory. As shown in FIG. 3C, in the case of an N-port memory, the length of the internal operation cycle may be set to 1 / N with respect to the external command cycle.
[0030]
A semiconductor memory device according to an embodiment of the present invention will be described below.
[0031]
FIG. 4 is a block diagram showing a first embodiment of a multi-port memory according to the present invention. In this example, there are two ports, A port and B port.
[0032]
4 includes an
[0033]
The
[0034]
The self-
[0035]
The
[0036]
The input to the
[0037]
FIG. 5 is a configuration diagram of a circuit related to command input to the
[0038]
The
[0039]
In the case of a Read command, the command input to the
[0040]
As for the refresh command, the refresh commands from the
[0041]
The
[0042]
When the
[0043]
When the
[0044]
FIG. 6 is a circuit diagram showing a configuration of the
[0045]
As shown in FIG. 6A, the
[0046]
A read command signal RA2 and a write command signal WA2 from the command register A17, a read command signal RB2 and a write command signal WB2 from the command register B18, and a refresh command REF2 from the
[0047]
Each comparator compares the timings of the two commands, and sets the output on the side to which HIGH is previously input as HIGH. For example, the comparators 80-1 to 80-4 determine the context of the read command signal RA2 for the
[0048]
When the
[0049]
FIG. 7 is a timing chart showing the operation of the
[0050]
The signal names shown in FIG. 7 are shown in each part of FIG. FIG. 7 shows the operation of the
[0051]
FIG. 8 is a configuration diagram of a circuit related to address input to the
[0052]
The
[0053]
The
[0054]
The address register A20 includes an
[0055]
The
[0056]
With the above circuit configuration, when a Read command or a Write command is input from the outside, the address input at the same time is transferred to the
[0057]
As shown in the circuit configuration of FIG. 8, the pulse signals RA3P, WA3P, RB3P, WB3P, and REF3P corresponding to RA3, WA3, RB3, WB3, and REF3, which are command signals transferred from the
[0058]
FIG. 9 is a configuration diagram of a circuit related to data output.
[0059]
A portion related to data output of the data input /
[0060]
Data read from the
[0061]
The
[0062]
FIG. 10 is a circuit diagram showing a configuration of the transfer
[0063]
The transfer
[0064]
FIG. 11 is a configuration diagram of a circuit related to data input.
[0065]
A portion related to data input of the data input /
[0066]
Data serially input to the
[0067]
FIG. 12 is a timing chart showing the operation when the Read command is continuously input.
[0068]
The
[0069]
The
[0070]
Commands received by both ports are held in command registers, respectively. The refresh command is held in the refresh command register. The arbiter monitors these command registers, and transfers them to the DRAM core in order from the command generated earlier. After processing of the previously transferred command is completed, the next command is transferred.
[0071]
The data read from the DRAM core is transferred from the sense buffer to the data latch of each port (see FIG. 9). Thereafter, the parallel data is converted into serial data, and burst output is performed in synchronization with the external clock.
[0072]
As shown in FIG. 12, the refresh command is input once from the A port, but it does not affect the operation of the B port.
[0073]
FIG. 13 is a timing chart showing the operation when the Write command is continuously input.
[0074]
Data input from the outside during the write operation is a burst input. At this time, the write command is held in the write command register at the timing when the last data of the burst input is input.
[0075]
As shown in FIG. 13, the refresh command given from the A port does not affect the operation of the B port.
[0076]
FIG. 14 is a timing diagram showing a case where both the A and B ports operate at the maximum clock frequency.
[0077]
As shown in FIG. 14, there may be a difference in the phase of the clocks of both ports. In both ports, Read command cycle = 4, data latency = 4, and burst length = 4. It can be seen that even when both ports are operated at the maximum clock frequency and the Read command is continuously input, the ports are operating without any problem.
[0078]
FIG. 15 is a timing diagram showing a case where both the A and B ports operate at the maximum clock frequency. In FIG. 15, write commands are continuously input to both ports.
[0079]
As shown in FIG. 15, there may be a difference in the phase of the clocks of both ports. For both ports, the Write command cycle = 4, the data latency = 4, and the burst length = 4. It can be seen that even when both ports are operated at the maximum clock frequency and the Write command is continuously input, the ports are operating without any problem.
[0080]
FIG. 16 is a timing chart showing an operation when a command is switched from Read to Write.
[0081]
As shown in FIG. 16, Write → Read needs to have an extra command interval with respect to the Write → Write or Read → Read command interval. This is because the timing at which the write command is transferred to the command register and processed is the timing at which the last data of the burst input is input. On the other hand, since the read command is transferred to the command register for processing at the timing when the read command is input, if a command of Write → Read continues, it is necessary to provide an extra command interval. However, this is caused by the operation of converting the data into parallel data by burst input. For example, if only one data is input instead of burst input of four data, Write → Read. Even if commands continue, there is no need to leave a command interval.
[0082]
In other words, if only one data is input for one write command, even if the command continues from Write → Read, it can operate at the same command interval as Write → Write or Read → Read. Is possible.
[0083]
FIG. 17 is a diagram illustrating the timing of inputting a refresh command when the command is switched from Read to Write.
[0084]
The timing for inputting the refresh command is shown in the upper part of FIG. A refresh command may be input at some timing in the period shown here. For example, even if the refresh command is input at the timing shown in FIG. 17, the refresh operation is actually started after the execution of the preceding write command is completed. Waiting on register. Therefore, it can be seen that the refresh command may be input at an arbitrary timing within the period corresponding to this standby state.
[0085]
FIG. 18 is a timing chart showing the operation when one of the ports is deactivated.
[0086]
As shown in FIG. 18, when one of the ports (A
[0087]
FIG. 19 is a timing chart showing the operation when both ports are deactivated.
[0088]
As shown in FIG. 19, even when both ports are deactivated, a refresh command is generated internally based on the refresh timer, and a refresh operation is executed accordingly.
[0089]
FIG. 20 is a timing chart showing the operation of the DRAM core. FIG. 20A shows the case of the read operation, and FIG. 20B shows the case of the write operation. At the operation timing as shown in FIGS. 20A and 20B, word line selection, data amplification, write back, and precharge are sequentially executed for one command to complete the operation.
[0090]
FIG. 21 is a timing chart showing the double speed operation when only one port is operated.
[0091]
By stopping one of the two ports, the interval between commands input from the other port can be halved. At this time, the highest cycle of the external command coincides with the highest cycle of the internal operation. In the example of FIG. 21, the command interval is shortened without changing the clock frequency. In this case, since the burst length is also shortened, the data transfer rate is the same as when both ports are used.
[0092]
FIG. 22 is a timing chart showing the double speed operation in which the clock frequency is doubled and the data transfer rate is doubled.
[0093]
In FIG. 22, when one of the two ports is stopped, the clock signal input from the other port is set to double the frequency. Along with this, the command input time interval is halved. In this case, since the burst length is the same as when both ports are used, the data transfer rate is doubled when both ports are used.
[0094]
Since the external clock signal is input only to the input / output circuit section, if the portion is designed for high-speed operation, the double speed operation can be easily realized.
[0095]
FIG. 23 is a diagram for explaining a second embodiment of the present invention.
[0096]
Memory is generally expanded depending on the application. The same applies to a multi-port memory. In addition to using a single memory, there is a case where a memory is expanded by mounting a plurality of memories.
[0097]
The multi-port memory has a built-in arbiter that detects which port's command is earlier and executes the commands in that order. Even when commands for both ports are input almost simultaneously, the order is determined and executed sequentially. As shown in FIG. 23, a plurality of multi-port memories 200-1 to 200-n are mounted, and the same commands are sent to these multi-port memories 200-1 to 200-n from the
[0098]
If the commands for the A port and the B port are commands for different addresses, there is no problem even if the order is different between the memory devices. However, if the commands are for the same address, a problem occurs.
[0099]
For example, when data is read after being written to the same cell and when data is read after being read, the read data is different. Further, for example, when the data of the B port is written after the data of the A port is written, it is the data of the B port that remains in the memory, but when executed in the reverse order, the data of the A port is stored in the memory. Will remain.
[0100]
Thus, if the order of command execution differs between memory devices, a serious problem occurs in data reliability.
[0101]
Therefore, when a plurality of multiport memories are used, it is necessary to match the determination of the arbiter between the multiport memories. In order to solve this, in the second embodiment of the present invention, one of a plurality of multi-port memories is a master device 200-1, and the rest are slave devices 200-2 to 200-n. The slave device matches the judgment of the arbiter.
[0102]
FIG. 24 is a block diagram showing a second embodiment of the multi-port memory according to the present invention. In this example, there are two ports, A port and B port.
[0103]
The difference from the first embodiment shown in FIG. 4 is that the BUSY signal I /
[0104]
FIG. 25 is a timing chart for explaining the continuous mode.
[0105]
As shown in the operation diagram of the first embodiment (FIG. 20), the DRAM core operation is divided into a ROW operation and a COLUMN operation. In the present invention, the ROW operation, the COLUMN operation, and the precharge operation are set as one internal operation cycle executed in a series of flows.
[0106]
The continuous mode in the second embodiment is the same as a normal DRAM column access operation, and is an operation in which commands are continuously executed on the same cell. That is, in this mode, the COLUMN system operation is executed a plurality of times after the ROW system operation and then precharged. However, when the Write command of the same cell is duplicated, the one input later is executed and the one input before is not executed. This is because even if the write is executed continuously, the data written before is overwritten with the data written later and does not remain later.
[0107]
As shown in FIG. 25A, in the continuous mode, the operation can be shortened more than two normal internal operation cycles, and time can be afforded. As shown in FIG. 25B, this time margin is provided between the ROW operation and the COLUMN operation (hereinafter referred to as a wait period). During this Wait period, the command execution order is matched between the master and the slave.
[0108]
The procedure for matching the operations of the master and the slave with the BUSY signal will be described below.
[0109]
The BUSY signal is used to match the command execution order between the master and the slave. The BUSY signal I /
[0110]
First, the memory device receives a command from one port and starts the operation shown in FIG.
[0111]
If a command is input from another port to the same address during the ROW system operation period, a coincidence signal is generated from the
[0112]
During the Wait period, the master device 200-1 generates BUSY-A or BUSY-B based on the determination result of the arbiter 15A. In this example, a BUSY signal is generated for the port that is determined to be received first by the arbiter 15A.
[0113]
Similarly, during the Wait period, the slave device detects the BUSY signal generated by the master device, and if it is different from the determination of its own arbiter 15A, the determination of its own arbiter 15A is changed in accordance with the master. The COLUMN system operation is executed in accordance with the changed order.
[0114]
FIG. 26 is a timing chart showing an operation when BUSY occurs in Read of A port and Write of B port.
[0115]
In this embodiment, the BUSY signal is set to the logic of selection “L”. The BUSY signal is preferably a signal that is transmitted / received asynchronously. This is for promptly transmitting BUSY within a limited Wait period.
[0116]
In the example of FIG. 26, since the Read A2 of the A port is earlier than the Write B2 of the B port, the master generates the BUSY signal of the A port during the Wait period. The slave receives this BUSY signal and knows that ReadA2 of the A port is earlier than WriteB2 of the B port. After that, the column operation is executed in the continuous mode in the order of ReadA2 → WriteB2 in the master and the slave.
[0117]
FIG. 27 is a timing chart showing an operation when BUSY occurs in Read of A port and Write of B port. FIG. 26 shows the case where the Read of the A port is early, but FIG. 27 shows the case where the Write of the B port is early.
[0118]
FIG. 28 is a timing chart showing an operation when BUSY occurs at the write of the A port and the write of the B port.
[0119]
The operation example shown in FIG. 28 is when the A port write command is earlier than the B port write command. That is, since the Write A2 of the A port is earlier than the Write B2 of the B port, the BUSY signal of the A port is generated and supplied to the slave. In this case, even if the A port write command is executed, it is immediately rewritten. Therefore, only the B port write command WriteB2 inputted later is executed.
[0120]
FIG. 29 is a timing chart showing the operation when BUSY occurs at the write of the A port and the write of the B port.
[0121]
The operation example shown in FIG. 29 is when the B port write command is earlier than the A port write command. In this case, even if the B port write command is executed, it is immediately rewritten, so only the A port write command Write A2 is executed. In this example, the clock frequency of the A port is set slightly lower than the clock frequency of the B port. For the commands of Write A2 and Write B2, the command input is faster in the A port, but the final data input is faster in the B port. Therefore, the write command for the B port is earlier than the write command for the A port.
[0122]
In the above description, the cases of A port Read and B port Read are not described. In this case, no matter which is first, there is no effect on the reliability of the data, so it is not necessary to use BUSY.
[0123]
FIG. 30 is a timing chart showing an operation when the controller is configured to be able to insert an interrupt.
[0124]
“Interrupt” refers to issuing an instruction to change the determination from the controller to the determination of the arbiter of the master device in the case of BUSY. The following is an interrupt instruction method.
a) Entering with commands
b) How to provide a dedicated terminal
c) Method by special address combination
d) Method using BUSY signal
The above d) is, for example, a method in which the BUSY signal of the port where no BUSY has occurred is given from the controller, and the master and slave memories detect it.
[0125]
In the example of FIG. 30, an interrupt is generated when BUSY occurs at the write of the A port and the write of the B port. As described with reference to FIG. 28 and FIG. 29, when the write-write state becomes BUSY, only the write of either A or B is executed, so that the data that has been input first is lost.
[0126]
In FIG. 30, the A port's Write A2 is earlier than the B port's Write B2, and therefore the A port BUSY signal is generated. The controller that has received the BUSY signal generated by the master generates an interrupt instruction in order to prevent the write data of the A port from being lost.
[0127]
The master and the slave receive the interrupt instruction from the controller, change the determination of the arbiter, and perform the write operation according to the interrupt instruction after the wait. That is, the arbiter changes the determination that the A port command Write A2 is slower than the B port command, and executes the write operation of Write A2. As a result, it is possible to prevent the write data of the A port from being erased. In the write-to-write operation, the write operation need only be executed once, so that the wait time can be made longer than the read-to-write or write-to-read continuous mode. Therefore, using this time, an interrupt instruction based on the BUSY signal can be executed.
[0128]
The configuration of the address comparator, BUSY input / output system, and interrupt system for achieving the above operation will be described below.
[0129]
FIG. 31 is a diagram showing the configuration of the address comparator, BUSY input / output system, and interrupt system in the multiport memory according to the second embodiment of the present invention.
[0130]
The
[0131]
Arranged on the left side of FIG. 31 (below the address comparator 26) are BUSY signal I /
[0132]
At this time, in the arbiter, the command selected in the first rank is output to any one of the arbiter outputs RA3, WA3, RB3, and WB3 (any one is “H”). . In the case of the master device, RA3 to WB3 are latched in the
[0133]
In the case of a slave device, for example, when BUSY-A = “L” is received, the signal N10 that is the output of the interrupt
[0134]
The interrupt
[0135]
The three comparators 80-3, 80-5, and 80-6 shown at the bottom of FIG. 31 are part of the comparator of the arbiter 15A (see FIGS. 6 and 24). These are comparators that compare command combinations that require BUSY determination.
[0136]
FIG. 32 is a timing chart showing the operation of the master device. FIG. 33 is a timing chart showing the operation of the slave device.
[0137]
As shown in these operation timing diagrams, it is assumed that the Read of the A port matches the Write address of the B port. The master in FIG. 32 determines that the A port is early, and the slave in FIG. 33 determines that the B port is early. In this case, the outputs of the master comparator 80-3 are N21 = "L" and N22 = "H". The outputs of the slave comparator 80-3 are N21 = "H" and N22 = "L". The master generates BUSY-A, and the slave that receives it generates N10 = "L". Since N1 = “L” at this time, the LOW signal of N10 is supplied to the slave comparator 80-3 via the NOR
[0138]
In contrast to the above operation, it is assumed that the Write address of the A port and the Read address of the B port match. In this case, the determination of the slave arbiter is changed by switching the output of the slave comparator 80-5.
[0139]
Comparator 80-6 is a comparator for WA2 and WB2. However, when BUSY occurs between Writes, the operation of either the A port or the B port is left, so that comparator 80-3 and The configuration of the peripheral circuit is different from that of 80-5.
[0140]
FIG. 34 is a timing chart showing the operation of the master device when the write addresses of both ports match. FIG. 35 is a timing chart showing the operation of the slave device when the write addresses of both ports match.
[0141]
Assume that the master determines that the A port is early as shown in FIG. 34, and the slave determines that the B port is early as shown in FIG. At the time when the coincidence signal is generated from the
[0142]
As in this case, when BUSY occurs in Write-Write, it is necessary to delete the Write that has been input first. The
[0143]
As described above, the master generates BUSY-A, and N10 = "L" in the slave that has received it. At this time, since N3 = “L”, the slave comparator 80-6 is inverted again and switched to N25 = “H” and N26 = “L”.
[0144]
The
[0145]
[0146]
FIG. 36 is a timing chart showing the operation of the master device when the write address of both ports coincides and an interrupt instruction is generated from the controller. FIG. 37 is a timing chart showing the operation of the slave device when an interrupt instruction is issued from the controller when the write addresses of both ports match.
[0147]
As shown in FIG. 36, the command selection state in the master device is inverted by an interrupt. As shown in FIG. 37, the command selection state in the slave device is inverted by BUSY and then further inverted by interrupt. Note that the inversion operation by interrupt is the same as the inversion operation by BUSY, and a detailed description thereof will be omitted.
[0148]
In the operation of the second embodiment, the command cycle from the occurrence of BUSY or interrupt until the next command is input is not changed.
[0149]
For example, in FIG. 26, BUSY occurs in ReadA2, but the command interval of ReadA1 → ReadA2 and the command interval of ReadA2 → ReadA3 are the same. BUSY and interrupts must be processed during the wait time, but if the bus line on the system is long, the number of installed slave devices is large, or the controller response speed is slow, BUSY or Since it takes time to exchange interrupt signals, a long wait time is required.
[0150]
In order to solve this, the wait time may be extended and the next command input after the occurrence of BUSY or interrupt may be delayed for a predetermined time. That is, in FIG. 26, the wait time may be increased and the command interval of ReadA2 → ReadA3 may be increased with respect to the command interval of ReadA1 → ReadA2.
[0151]
In order to delay the command input, this should be specified in the data sheet and the controller operated as such. As a method of extending the wait time, the delay time of the
[0152]
In addition, if the wait time is increased in this way, the wait time can be increased even in cases other than the write-write BUSY, so that even if a BUSY occurs in the read-write or write-read, an interrupt instruction can be issued from the controller. Become.
[0153]
As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range as described in a claim.
[0154]
【Effect of the invention】
In the above invention, when a command is input from a plurality of N ports, N commands corresponding to the N ports are sequentially executed during a minimum command cycle when attention is paid to a certain port. As a result, externally, for any port, it appears to perform an access operation for the command input of that port during the minimum command cycle. In this case, there is a possibility of entering the BUSY state only when there are simultaneous access requests from a plurality of ports to the same address. Therefore, the BUSY occurrence probability of the SRAM type multi-port memory and the equivalent low BUSY occurrence probability can be realized.
[0155]
Furthermore, in the semiconductor memory device of the present invention, the internal circuit includes a cell array composed of dynamic memory cells and a refresh circuit that defines a timing for refreshing the memory cells. In the first mode, a plurality of N external circuits are provided. The memory cell is refreshed in response to a refresh command input to at least one of the ports, and in the second mode, the memory cell is refreshed at a timing specified by the refresh circuit.
[0156]
In the above invention, by preparing an operation mode in which a refresh operation is performed by designating from an external port and an operation mode in which a refresh operation is performed in accordance with an instruction of the built-in refresh circuit, for example, a predetermined external port is used for refresh management. Depending on the system configuration, it is possible to operate so that a refresh command is periodically input as a port, or when the refresh management port is in an inactive state, a refresh operation can be executed by a built-in refresh circuit. Refresh management can be performed flexibly.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining the operation principle of the present invention.
FIG. 2 is a diagram illustrating a refresh operation when only one of a plurality of ports is operated.
FIG. 3 is a diagram for explaining the principle of the present invention in the case of 2 ports, 3 ports, and N ports;
FIG. 4 is a block diagram showing a first embodiment of a multi-port memory according to the present invention.
FIG. 5 is a configuration diagram of a circuit related to command input to an arbiter.
FIG. 6 is a circuit diagram showing a configuration of an arbiter.
FIG. 7 is a timing chart showing the operation of the arbiter.
FIG. 8 is a configuration diagram of a circuit related to address input to a DRAM core.
FIG. 9 is a configuration diagram of a circuit related to data output.
FIG. 10 is a circuit diagram showing a configuration of a transfer signal generation circuit.
FIG. 11 is a configuration diagram of a circuit related to data input.
FIG. 12 is a timing chart showing an operation when Read commands are continuously input.
FIG. 13 is a timing chart showing an operation when a Write command is continuously input.
FIG. 14 is a timing diagram showing a case where both ports A and B operate at the maximum clock frequency.
FIG. 15 is a timing diagram showing a case where both ports A and B operate at the maximum clock frequency.
FIG. 16 is a timing chart showing an operation when a command is switched from Read to Write.
FIG. 17 is a diagram illustrating a timing when a refresh command is input when the command is switched from Read to Write.
FIG. 18 is a timing chart showing the operation when one port is deactivated.
FIG. 19 is a timing chart showing an operation when both ports are deactivated.
FIG. 20 is a timing chart showing the operation of the DRAM core.
FIG. 21 is a timing chart showing a double speed operation when only one port is operated.
FIG. 22 is a timing chart showing a double speed operation in which the clock frequency is doubled and the data transfer rate is doubled.
FIG. 23 is a diagram for explaining a second embodiment of the present invention.
FIG. 24 is a block diagram showing a second embodiment of the multi-port memory according to the present invention.
FIG. 25 is a timing chart for explaining a continuous mode.
FIG. 26 is a timing chart showing an operation when a BUSY occurs in A port Read and B port Write.
FIG. 27 is a timing chart showing an operation when BUSY occurs in Read of A port and Write of B port;
FIG. 28 is a timing chart showing an operation when BUSY occurs at the write of the A port and the write of the B port.
FIG. 29 is a timing chart showing an operation in the case where a BUSY occurs at the write of the A port and the write of the B port.
FIG. 30 is a timing chart showing an operation when the controller is configured to be able to insert an interrupt.
FIG. 31 is a diagram showing a configuration of an address comparator, a BUSY input / output system, and an interrupt system in a multi-port memory according to a second embodiment of the present invention.
FIG. 32 is a timing chart showing the operation of the master device.
FIG. 33 is a timing chart showing the operation of the slave device.
FIG. 34 is a timing chart showing the operation of the master device when the write addresses of both ports match.
FIG. 35 is a timing chart showing the operation of the slave device when the write addresses of both ports match.
FIG. 36 is a timing chart showing the operation of the master device when the write address of both ports coincides and an interrupt instruction is issued from the controller.
FIG. 37 is a timing chart showing the operation of the slave device when an interrupt instruction is issued from the controller when the write addresses of both ports match.
[Explanation of symbols]
10 Multiport memory
11 A port
12 B port
13 Self-refresh circuit
14 DRAM core
15 Arbiter
16 Refresh command register
17 Command register A
18 Command register B
19 Refresh address register
20 Address register A
21 Address register B
22 Write data register A
23 Write data register B
24 Transfer gate A
25 Transfer gate B
Claims (14)
該外部ポートの1つに入力される複数のコマンド間の最小間隔の間に少なくともN回のアクセス動作を逐次的に実行する内部回路と、
該複数N個の外部ポートからそれぞれ入力される複数のコマンドを該内部回路に実行させるコマンド実行順番を決定する裁定回路と、
該複数N個の外部ポートからそれぞれ入力される複数のコマンドのうちで同一アドレスにアクセスするコマンドが複数個存在するか否かを判定するアドレス比較回路と、
マスタ動作モード或いはスレーブ動作モードを指定するモードレジスタ
を含み、
該複数N個の外部ポートの各々は、
同一アドレスにアクセスするコマンドが複数個存在する場合には所定の信号を装置外部に出力する信号出力回路と、
該所定の信号を装置外部から受信する信号入力回路と、
シリアルに受信したデータをパラレルデータとして該内部回路に供給する回路と、
該内部回路からパラレルに供給されたデータをシリアルデータとして外部に出力する回路
を含み、
前記内部回路はダイナミック型メモリセルで構成されたセル配列を含み、
該モードレジスタがマスタ動作モードを指定する場合には該信号出力回路を活性化し、該モードレジスタがスレーブ動作モードを指定する場合には該信号入力回路を活性化することを特徴とする半導体記憶装置。A plurality of N external ports each receiving a command;
An internal circuit that sequentially executes at least N access operations during a minimum interval between a plurality of commands input to one of the external ports;
An arbitration circuit for determining a command execution order for causing the internal circuit to execute a plurality of commands respectively input from the N external ports;
An address comparison circuit for determining whether or not there are a plurality of commands for accessing the same address among a plurality of commands respectively input from the plurality of N external ports ;
Includes a master operation mode or a mode register that specifies the slave operation mode,
Each of the N external ports is
A signal output circuit for outputting a predetermined signal to the outside of the device when there are a plurality of commands for accessing the same address; and
A signal input circuit for receiving the predetermined signal from the outside of the device;
A circuit for supplying serially received data to the internal circuit as parallel data;
Including a circuit for outputting data supplied in parallel from the internal circuit to the outside as serial data;
The internal circuit includes a cell array composed of dynamic memory cells,
A semiconductor memory device comprising: activating the signal output circuit when the mode register designates a master operation mode; and activating the signal input circuit when the mode register designates a slave operation mode. .
該外部ポートの1つに入力される複数のコマンド間の最小間隔の間に少なくともN回のアクセス動作を逐次的に実行する内部回路と、
該複数N個の外部ポートからそれぞれ入力される複数のコマンドを該内部回路に実行させるコマンド実行順番を決定する裁定回路と、
該複数N個の外部ポートからそれぞれ入力される複数のコマンドのうちで同一アドレスにアクセスするコマンドが複数個存在するか否かを判定するアドレス比較回路と、
所定の信号に応じて外部コントローラから送信されるインタラプト信号を受信する回路
を含み、
該複数N個の外部ポートの各々は、
同一アドレスにアクセスするコマンドが複数個存在する場合には該所定の信号を装置外部に出力する信号出力回路と、
シリアルに受信したデータをパラレルデータとして該内部回路に供給する回路と、
該内部回路からパラレルに供給されたデータをシリアルデータとして外部に出力する回路
を含み、
前記内部回路はダイナミック型メモリセルで構成されたセル配列を含み、
該インタラプト信号が受信されると該裁定回路は該コマンド実行順番を変更することを特徴とする半導体記憶装置。A plurality of N external ports each receiving a command;
An internal circuit that sequentially executes at least N access operations during a minimum interval between a plurality of commands input to one of the external ports;
An arbitration circuit for determining a command execution order for causing the internal circuit to execute a plurality of commands respectively input from the N external ports;
An address comparison circuit for determining whether or not there are a plurality of commands for accessing the same address among a plurality of commands respectively input from the plurality of N external ports ;
Includes circuitry for receiving an interrupt signal transmitted from an external controller in response to a Jo Tokoro signal,
Each of the N external ports is
A signal output circuit for outputting the predetermined signal to the outside of the device when there are a plurality of commands for accessing the same address;
A circuit for supplying serially received data to the internal circuit as parallel data;
Including a circuit for outputting data supplied in parallel from the internal circuit to the outside as serial data;
The internal circuit includes a cell array composed of dynamic memory cells,
The semiconductor memory device, wherein the arbitration circuit changes the command execution order when the interrupt signal is received.
該外部ポートの1つに入力される複数のコマンド間の最小間隔の間に少なくともN回のアクセス動作を逐次的に実行する内部回路
を含み、該内部回路は、
ダイナミック型メモリセルで構成されたセル配列と、
該メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路
を含み、第1のモードでは該複数N個の外部ポートの少なくとも1つへ入力されるリフレッシュコマンドに応じて該メモリセルをリフレッシュし、第2のモードでは該リフレッシュ回路が指定するタイミングで該メモリセルをリフレッシュすることを特徴とする半導体記憶装置。A plurality of N external ports each receiving a command;
Including an internal circuit that sequentially executes at least N access operations during a minimum interval between a plurality of commands input to one of the external ports,
A cell array composed of dynamic memory cells;
A refresh circuit for defining a timing for refreshing the memory cell; in the first mode, the memory cell is refreshed in response to a refresh command input to at least one of the plurality of N external ports; A semiconductor memory device, wherein in the mode, the memory cell is refreshed at a timing designated by the refresh circuit.
Priority Applications (26)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000387891A JP5070656B2 (en) | 2000-12-20 | 2000-12-20 | Semiconductor memory device |
DE60142756T DE60142756D1 (en) | 2000-12-20 | 2001-10-02 | Multiport memory based on several memory cores |
US09/968,516 US20020078311A1 (en) | 2000-12-20 | 2001-10-02 | Multi-port memory based on DRAM core |
EP05010995A EP1564748B1 (en) | 2000-12-20 | 2001-10-02 | Multi-port memory based on DRAM core |
DE60132382T DE60132382T2 (en) | 2000-12-20 | 2001-10-02 | Multiport memory based on DRAM |
DE60112701T DE60112701T2 (en) | 2000-12-20 | 2001-10-02 | Multiport memory based on DRAM |
EP05010996A EP1564749B8 (en) | 2000-12-20 | 2001-10-02 | Multi-port memory based on DRAM core |
DE60136574T DE60136574D1 (en) | 2000-12-20 | 2001-10-02 | Multiport memory based on DRAM |
EP01308424A EP1220226B1 (en) | 2000-12-20 | 2001-10-02 | Multi-port memory based on DRAM core |
EP07103542A EP1808861B1 (en) | 2000-12-20 | 2001-10-02 | Multi-port memory based on a plurality of memory cores |
TW090124818A TW526500B (en) | 2000-12-20 | 2001-10-08 | Multi-port memory based on DRAM core |
KR1020010066494A KR100801119B1 (en) | 2000-12-20 | 2001-10-26 | Multi-port memory based on DRAM core |
CN 200510083508 CN1734668B (en) | 2000-12-20 | 2001-11-26 | Multi-port memory based on dram core |
CNA2008101849513A CN101477830A (en) | 2000-12-20 | 2001-11-26 | Multiport memory based on dynamic random access memory core |
CNB011393580A CN1271636C (en) | 2000-12-20 | 2001-11-26 | Multiport Memory Based on Dynamic Random Access Memory Core |
CN2008101849509A CN101477829B (en) | 2000-12-20 | 2001-11-26 | Multiport memory based on dynamic random access memory core |
CN2006101212012A CN1905059B (en) | 2000-12-20 | 2001-11-26 | Multi-port memory based on DRAM core and controlling method thereof |
CNB200610054989XA CN100530417C (en) | 2000-12-20 | 2001-11-26 | Multi-port memory based on DRAM core |
CN2008101849551A CN101452737B (en) | 2000-12-20 | 2001-11-26 | Multiport memory based on dynamic random access memory core |
CN2009101503100A CN101582290B (en) | 2000-12-20 | 2001-11-26 | Multi-port memory based on dynamic random access memory core and its control method |
CNB2006100549902A CN100530418C (en) | 2000-12-20 | 2001-11-26 | Multi-port memory based on DRAM core |
US10/284,092 US7120761B2 (en) | 2000-12-20 | 2002-10-31 | Multi-port memory based on DRAM core |
US11/512,319 US7911825B2 (en) | 2000-12-20 | 2006-08-30 | Multi-port memory based on DRAM core |
US13/031,080 US8547776B2 (en) | 2000-12-20 | 2011-02-18 | Multi-port memory based on DRAM core |
US13/601,475 US8687456B2 (en) | 2000-12-20 | 2012-08-31 | Multi-port memory based on DRAM core |
US13/601,406 US8717842B2 (en) | 2000-12-20 | 2012-08-31 | Multi-port memory based on DRAM core |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000387891A JP5070656B2 (en) | 2000-12-20 | 2000-12-20 | Semiconductor memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002190197A JP2002190197A (en) | 2002-07-05 |
JP5070656B2 true JP5070656B2 (en) | 2012-11-14 |
Family
ID=18854729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000387891A Expired - Fee Related JP5070656B2 (en) | 2000-12-20 | 2000-12-20 | Semiconductor memory device |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5070656B2 (en) |
CN (8) | CN101582290B (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4824180B2 (en) * | 2001-02-09 | 2011-11-30 | 富士通セミコンダクター株式会社 | Semiconductor memory device |
JP5028710B2 (en) * | 2001-02-14 | 2012-09-19 | 富士通セミコンダクター株式会社 | Semiconductor memory device |
JP4997663B2 (en) * | 2000-12-27 | 2012-08-08 | 富士通セミコンダクター株式会社 | Multiport memory and control method thereof |
JP4783501B2 (en) * | 2000-12-27 | 2011-09-28 | 富士通セミコンダクター株式会社 | Semiconductor memory device |
KR100689863B1 (en) * | 2005-12-22 | 2007-03-08 | 삼성전자주식회사 | Semiconductor memory device and method thereof |
US7908501B2 (en) * | 2007-03-23 | 2011-03-15 | Silicon Image, Inc. | Progressive power control of a multi-port memory device |
CN101908366A (en) * | 2010-05-26 | 2010-12-08 | 秉亮科技(苏州)有限公司 | Automatic timing control method for multi-port storage by single-port storage unit |
JP5333398B2 (en) * | 2010-09-30 | 2013-11-06 | 富士通セミコンダクター株式会社 | Multiport memory and control method thereof |
CN102622192B (en) * | 2012-02-27 | 2014-11-19 | 北京理工大学 | A Weak Correlation Multiport Parallel Memory Controller |
TWI524181B (en) | 2014-10-13 | 2016-03-01 | 晨星半導體股份有限公司 | Apparatus and method for managing memory |
CN105589656B (en) * | 2014-10-20 | 2018-10-09 | 晨星半导体股份有限公司 | Memory management device and memory management method |
CN105573931B (en) * | 2015-12-05 | 2019-10-15 | 中国航空工业集团公司洛阳电光设备研究所 | A kind of access method and device of dual port RAM |
US9721640B2 (en) * | 2015-12-09 | 2017-08-01 | Intel Corporation | Performance of additional refresh operations during self-refresh mode |
KR102664665B1 (en) * | 2016-08-22 | 2024-05-16 | 에스케이하이닉스 주식회사 | Memory system |
US10032500B2 (en) * | 2016-10-07 | 2018-07-24 | Tc Lab, Inc. | Memory disturb recovery scheme for cross-point memory arrays |
US11049565B2 (en) | 2018-04-23 | 2021-06-29 | Micron Technology, Inc. | Non-volatile memory devices and systems with volatile memory features and methods for operating the same |
US10446248B1 (en) * | 2018-04-23 | 2019-10-15 | Micron Technology, Inc. | Non-volatile memory devices and systems with read-only memory features and methods for operating the same |
CN110299164B (en) * | 2019-06-28 | 2021-10-26 | 西安紫光国芯半导体有限公司 | Self-adaptive DRAM refresh control method and DRAM refresh controller |
CN112069768B (en) * | 2020-09-08 | 2024-07-16 | 飞腾信息技术有限公司 | Method for optimizing input/output delay of dual-port SRAM |
CN114911741B (en) * | 2021-02-08 | 2024-04-19 | 南京宏泰半导体科技股份有限公司 | Signal synchronization method and device based on floating address system |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6455794A (en) * | 1987-08-26 | 1989-03-02 | Nec Corp | Semiconductor memory |
US4796232A (en) * | 1987-10-20 | 1989-01-03 | Contel Corporation | Dual port memory controller |
US5001671A (en) * | 1989-06-27 | 1991-03-19 | Vitelic Corporation | Controller for dual ported memory |
JPH03105788A (en) * | 1989-09-19 | 1991-05-02 | Fujitsu Ltd | Semiconductor memory device |
JPH03175713A (en) * | 1989-12-04 | 1991-07-30 | Murata Mfg Co Ltd | Piezoelectric resonator and its manufacture |
JP2673390B2 (en) * | 1991-03-13 | 1997-11-05 | 三菱電機株式会社 | Multi-port memory |
JP3169639B2 (en) * | 1991-06-27 | 2001-05-28 | 日本電気株式会社 | Semiconductor storage device |
US5587957A (en) * | 1995-09-29 | 1996-12-24 | Intel Corporation | Circuit for sharing a memory of a microcontroller with an external device |
US5768211A (en) * | 1996-07-31 | 1998-06-16 | Cypress Semiconductor Corporation | Multi-port arbitration for high performance width expansion |
CN1178986A (en) * | 1996-08-07 | 1998-04-15 | 冲电气工业株式会社 | Storing device and its control method |
US5946262A (en) * | 1997-03-07 | 1999-08-31 | Mitsubishi Semiconductor America, Inc. | RAM having multiple ports sharing common memory locations |
US6078527A (en) * | 1997-07-29 | 2000-06-20 | Motorola, Inc. | Pipelined dual port integrated circuit memory |
US5923608A (en) * | 1997-10-31 | 1999-07-13 | Vlsi Technology, Inc. | Scalable N-port memory structures |
TW451215B (en) * | 1998-06-23 | 2001-08-21 | Motorola Inc | Pipelined dual port integrated circuit memory |
JP2000163969A (en) * | 1998-09-16 | 2000-06-16 | Fujitsu Ltd | Semiconductor storage device |
JP2000268573A (en) * | 1999-03-18 | 2000-09-29 | Mitsubishi Electric Corp | Semiconductor storage device |
JP4783501B2 (en) * | 2000-12-27 | 2011-09-28 | 富士通セミコンダクター株式会社 | Semiconductor memory device |
JP4824180B2 (en) * | 2001-02-09 | 2011-11-30 | 富士通セミコンダクター株式会社 | Semiconductor memory device |
JP4997663B2 (en) * | 2000-12-27 | 2012-08-08 | 富士通セミコンダクター株式会社 | Multiport memory and control method thereof |
JP5028710B2 (en) * | 2001-02-14 | 2012-09-19 | 富士通セミコンダクター株式会社 | Semiconductor memory device |
-
2000
- 2000-12-20 JP JP2000387891A patent/JP5070656B2/en not_active Expired - Fee Related
-
2001
- 2001-11-26 CN CN2009101503100A patent/CN101582290B/en not_active Expired - Fee Related
- 2001-11-26 CN CNA2008101849513A patent/CN101477830A/en active Pending
- 2001-11-26 CN CNB200610054989XA patent/CN100530417C/en not_active Expired - Fee Related
- 2001-11-26 CN CN2006101212012A patent/CN1905059B/en not_active Expired - Fee Related
- 2001-11-26 CN CN2008101849551A patent/CN101452737B/en not_active Expired - Fee Related
- 2001-11-26 CN CN 200510083508 patent/CN1734668B/en not_active Expired - Fee Related
- 2001-11-26 CN CN2008101849509A patent/CN101477829B/en not_active Expired - Fee Related
- 2001-11-26 CN CNB2006100549902A patent/CN100530418C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN100530417C (en) | 2009-08-19 |
CN101477829A (en) | 2009-07-08 |
CN101452737B (en) | 2011-02-02 |
CN1905059B (en) | 2011-10-12 |
CN1734668A (en) | 2006-02-15 |
CN101477830A (en) | 2009-07-08 |
CN1905059A (en) | 2007-01-31 |
JP2002190197A (en) | 2002-07-05 |
CN1832028A (en) | 2006-09-13 |
CN101582290B (en) | 2010-12-08 |
CN101477829B (en) | 2012-05-23 |
CN101452737A (en) | 2009-06-10 |
CN100530418C (en) | 2009-08-19 |
CN1828766A (en) | 2006-09-06 |
CN1734668B (en) | 2010-05-05 |
CN101582290A (en) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5070656B2 (en) | Semiconductor memory device | |
EP1564748B1 (en) | Multi-port memory based on DRAM core | |
US7911825B2 (en) | Multi-port memory based on DRAM core | |
JP2002074952A (en) | Synchronous semiconductor memory device and input circuit control method | |
JP4827399B2 (en) | Semiconductor memory device | |
JP4783501B2 (en) | Semiconductor memory device | |
JP2001266570A (en) | Synchronous semiconductor memory | |
JP2003187574A (en) | Synchronous semiconductor memory device | |
JP4997663B2 (en) | Multiport memory and control method thereof | |
JP4824180B2 (en) | Semiconductor memory device | |
JP2002245776A (en) | Semiconductor storage device | |
US10496368B1 (en) | Systems and methods for memory FIFO control | |
US7941594B2 (en) | SDRAM sharing using a control surrogate | |
CN100401424C (en) | semiconductor memory | |
JP4562468B2 (en) | Semiconductor memory device | |
JP5333398B2 (en) | Multiport memory and control method thereof | |
JP2002093196A (en) | Synchronous semiconductor memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070906 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120424 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120426 |
|
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: 20120724 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120806 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150831 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |