JP2891504B2 - マルチポートメモリ - Google Patents

マルチポートメモリ

Info

Publication number
JP2891504B2
JP2891504B2 JP2063670A JP6367090A JP2891504B2 JP 2891504 B2 JP2891504 B2 JP 2891504B2 JP 2063670 A JP2063670 A JP 2063670A JP 6367090 A JP6367090 A JP 6367090A JP 2891504 B2 JP2891504 B2 JP 2891504B2
Authority
JP
Japan
Prior art keywords
read
write
memory cell
memory
line
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
Application number
JP2063670A
Other languages
English (en)
Other versions
JPH03263687A (en
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 三菱電機株式会社
Priority to JP2063670A priority Critical patent/JP2891504B2/ja
Publication of JPH03263687A publication Critical patent/JPH03263687A/ja
Application granted granted Critical
Publication of JP2891504B2 publication Critical patent/JP2891504B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least independent addressing line groups

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、書込ポートと読出ポートとが独立してメ
モリセルにアクセスすることのできるマルチポートメモ
リに関し、特に1ビットをメモリセルアレイの複数列に
対応させたマルチポートメモリに関するものである。

[従来の技術] 最近の半導体技術の進歩により、メモリ分野において
もデータの取り入れ口が二つであるデュアルポートメモ
リが開発されている。デュアルポートメモリは主従二つ
のCPUが一つのメモリを共有し、互いにアクセスするこ
とができるようにしたもので、主CPUが優先権を持ち、
従CPUが主CPUのアクセスしていないときにメモリにアク
セスする。

このデュアルポートメモリをさらに発展させて、二つ
以上のCPUは独立して共有メモリにアクセスすることが
できるマルチポートメモリが開発されている。一般に、
デュアルポートメモリもマルチポートメモリと称してい
る。

第25図は従来の書込ポート1、読出ポート1のマルチ
ポートメモリのブロック図である。

同図を参照してこのマルチポートメモリはM語×Nビ
ット構成であり、M,Nのうちいずれか一方が2のべき数
で決定される。メモリセル1は1ビットのデータを保持
する。このメモリセル1をM行×N列配置してメモリセ
ルアレイを構成する。書込アドレスデコーダ2aは外部か
らの書込アドレスWAに応答して書込ワード線WW0,WW1、
…WWM−1を「1」または「0」にドライブする。この
書込ワード線はメモリセルアレイ内に行方向に配置され
る。

読出アドレスデコーダ2bは外部からのアドレスRAに応
答して、読出ワード線RW0、RW1,…RWM−1を「1」また
は「0」にドライブする。この読出ワード線RW0、RW1,
…RWM−1はメモリセルアレイ内に行方向に配置され、
上記書込ワード線WW0,WW1、…WWM−1とは互い違いに配
置されている。

データ入力回路3は外部から入力されるデータDI0,DI
1,…DIN−1に応答し、書込ビット線WB0,WB1、…WBN−
1を「1」または「0」にドライブする。この書込ビッ
ト線WB0,WB1、…WBN−1はメモリセルアレイ内に列方向
に配置される。

センスアンプ4は読出ビット線RB0,RB1,…RBN−1に
接続され、メモリセル1に保持されているデータを検出
・増幅してNビットのデータDO0,DO1,…DON−1を外部
に出力する。

上記書込ワード線WW0,WW1、…WWM−1、読出ワード線
RW0、RW1,…RWM−1、書込ビット線WB0,WB1,…WBN−
1、読出ワード線RB0、RB1,…RBN−1をそれぞれWWi、R
Wi、WBj,RBj(ただしi=1,2,…M−1、j=1,2,…M
−1とする)。また、書込ポートは書込アドレスWA、書
込ワード線WWi、書込ビット線WBj、入力データDI、デー
タ入力回路3、書込アドレスデコーダ2aからなる。ま
た、読出ポートは、読出アドレスRA,読出ワード線RWi,
読出ビット線RBj,出力データDO、読出アドレスデコーダ
2b、センスアンプ4からなる。

第26図は上記メモリセル1の詳細な回路図である。な
お、WW、RW、WB、RBはそれぞれ任意の書込ワード線、読
出ワード線、書込ビット線、読出ビット線を示す。

同図を参照して、書込アクセスゲート6は書込ワード
線WWにゲート電極が接続され、ドレイン電極が書込ビッ
ト線WBに接続され、さらにソース電極が記憶回路5に接
続される。記憶回路5はインバータ5aとインバータ5bの
それぞれの出力端子と入力端子を互いに接続したフリッ
プフロップ回路およびインバータ5cからなる、フリップ
フロップ回路は上記アクセスゲートと6のソース電極に
書込端子Aが接続され、出力端子Bがインバータ5cに接
続されている。そして、インバータ5cの出力端子(読出
端子C)が読出アクセスゲート7のドレイン電極に接続
されている。読出アクセスゲート7はソース電極が読出
ビット線RBに接続され、ゲート電極が読出ワード線RWに
接続される。

第27図は上記各アドレスデコーダ2a、2bとして2入力
4出力のものを示す回路である。同図を参照して、アド
レス線WA0,WA1を通してそれぞれ、1ビットのアドレス
が与えられると、このデコーダによって書込ワード線WW
0,WW1,WW2,WW3のうちのいずれか一つを「1」にドライ
ブし、その他を「0」にするようになっている。このア
ドレスデコーダを使用する例としては、第30図に示され
るような45×4ビットのマルチポートメモリに適用され
る。

第28図は上記データ入力回路の回路図を示す。同図を
参照して、外部から入力されるデータDIは2段のインバ
ータによって所定の電圧にされた後に書込ビット線WBに
送られる。

第29(a)図は上記センスアンプ4を回路図を示す。
このセンスアンプ4はメモリセル1から読出ビット線RB
を通して与えられるデータをプルアップゲート4aによっ
て所定電圧に持上げた後、インバータ4b、4cにより増幅
して外部にデータDOを出力する。このセンスアンプとし
ては第29図に示すもののほか、第29(b)図に示す電流
検出型のものも使用される。

上記従来のマルチポートメモリの動作を説明する。

[I]データの書込動作 M語のうち書込べき語はアドレスWAによって指定され
る。書込アドレスデコーダ2aは指定されたアドレスWAを
デコードし、書込ワード線WWiのうちいずれか一つのみ
「1」とし、他のワード線を「0」とする。「1」とな
った書込ワード線WWiにつながったメモリセルのアクセ
スゲート6は導通し、書込ビット線WBjと書込端子Aと
が電気的に接続される。

書込むべきデータDIjは外部からデータ入力回路3に
与えられ、データ入力回路3はデータDIjの値に応じて
書込ビット線WBjを「1」または「0」にドライブす
る。この結果、書込アクセスゲート6が導通すれば、記
憶回路5の書込端子Aおよび出力端子Bの値に関係なく
書込端子Aの値はDIjに対応する値すなわちデータ入力
回路3によりドライブされた値と同じになる。

以上の動作により書込ワード線WWi上に接続されるメ
モリセル1への書込が終了する。

以上の書込終了後、書込ワード線WWiを「0」にすれ
ば、書込ビット線WBと書込端子Aとが電気的に遮断さ
れ、インバータ5a、5よりなるフリップフロップ回路に
書込んだ値が保持される。

したがって、書込ワード線WWiが「0」である限り書
込ビット線WBjにデータが入力されても新しいデータは
書込まれない。

[II]データの読出 データの読出は読出ポートより行なう。M語のうち読
出すべき語は外部からの読出アドレスRAで指定され、読
出アドレスデコーダ2bは読出アドレスRAを解読し、該当
する読出ワード線RWjのうちいずれか一つを「1」と
し、他の読出ワード線を「0」とする。

「1」となった読出ワード線RWに接続されているメモ
リセル1の読出アクセスゲート7は導通し、記憶回路5
の読出端子Cと読出ビット線RBとが電気的に接続され
る。したがって、読出ビット線RBの値は記憶回路5の読
出端子Cの値にドライブされる。これにより「1」にさ
れた読出ワード線RWに接続されるメモリセル1に保持さ
れていたデータがセンスアンプ4に与えられる。センス
アンプ4は与えられたデータを検出・増幅した後Nビッ
トのデータDO0,DO1,…DON−1を外部に出力する。

[発明が解決しようとする課題] 上記従来のマルチポートメモリであれば、書込ワード
線WWiが「1」になると「1」にされた書込ワード線に
接続される全てのメモリセルにデータ入力3から与えら
れるデータが書込まれる。すなわち、メモリセルアレイ
1行に対応する全ての列のメモリセルにデータが書込ま
れる。このため、1行を1語に対応させ、1列を1ビッ
トに対応させる必要があり、各列ごとに独立したビット
線を配置する必要がある。これでは、メモリセルの縦
(M)×横(N)の比率を変更することはできない。

したがって縦×横比が一義的に決まってしまい、他の
回路との接続あるいは他の回路と組み合わせて集積化す
る場合に、設計の自由度が制限される。

それゆえに、この発明の主たる目的は、メモリセルア
レイの縦横比を変更することが可能でコンパクトなマル
チポートメモリを提供することである。

[課題を解決するための手段] この発明に係るマルチポートメモリは、Nビットのデ
ータを同時に入出力することが可能なM語×Nビット構
成のマルチポートメモリであって、M×N個のメモリセ
ル、書込ワード線、書込ビット線、n×N本の列選択
線、第1の書込デコーダ、第2の書込デコーダ、第1の
スイッチ手段、第2のスイッチ手段、および書込手段を
備える。M/N個のメモリセルは、M/n行、n×N列(ただ
し、M,N,nは2以上の整数である)に配列され、各行に
おいて予めn個ずつグループ化され、それぞれが書込端
子および読出端子を有する。書込ワード線は、各行に対
応して設けられる。書込ビット線は、各n列ごとに設け
られる。n×N本の列選択線は、それぞれが前記n×N
列に対応して設けられ、メモリセルグループに対応して
予めn本ずつグループ化される。第1の書込デコーダ
は、第1の書込アドレス信号に従って、M/n本の書込ワ
ード線のうちのいずれかの書込ワード線を選択し、その
書込ワード線を選択レベルにする。第2の書込デコーダ
は、第2の書込アドレス信号に従って各列選択グループ
から1本ずつ合計N本の列選択線を選択し、選択したN
本の列選択線の各々を選択レベルにする。第1のスイッ
チ手段は、各メモリセルに対応して設けられ、その一方
電極が対応のメモリセルの書込端子に接続され、対応の
メモリセルに対応する列選択線が選択レベルにされたこ
とに応じて導通する。第2のスイッチ手段は、各メモリ
セルグループに対応して設けられ、その一方電極が対応
のメモリセルグループに属するメモリセルに対応する第
1のスイッチ手段の他方電極に接続され、その他方電極
が対応のメモリセルグループに対応する書込ビット線に
接続され、対応のメモリセルグループに対応する書込ワ
ード線が選択レベルにされたことに応じて導通する。書
込手段は、各書込ビット線に対応して設けられ、外部か
ら与えられたデータ信号を対応の書込ビット線に与え
る。

好ましくは、さらに、読出ワード線、n×N本の読出
ビット線、第1の読出デコーダ、第2の読出デコーダ、
第3のスイッチ手段、第4のスイッチ手段、および読出
手段が設けられる。読出ワード線は、各行に対応して設
けられる。n×N本の読出ビット線は、それぞれがn×
N列に対応して設けられ、メモリセルグループに対応し
て予めn本ずつグループ化される。第1の読出デコーダ
は、第1の読出アドレス信号に従って、M/n本の読出ワ
ード線のうちのいずれかの読出ワード線を選択し、その
読出ワード線を選択レベルにする。第2の読出デコーダ
は、第2の読出アドレス信号に従って、各読出ビット線
グループから1本ずつ合計N本の読出ビット線を選択す
る。第3のスイッチ手段は、各メモリセルに対応して設
けられ、その一方電極が対応のメモリセルの読出端子に
接続され、その他方電極が対応のメモリセルに対応する
読出ビット線に接続され、対応のメモリセルに対応する
読出ワード線が選択レベルにされたことに応じて導通す
る。第4のスイッチ手段は、各読出ビット線に対応して
設けられ、その一方電極が対応の読出ビット線に接続さ
れ、第2の読出デコーダによって対応の読出ビット線が
選択されたことに応じて導通する。読出手段は、各第4
のスイッチ手段に対応して設けられて対応の第4のスイ
ッチ手段の他方電極に接続され、対応の読出ビット線を
介して選択されたメモリセルのデータ信号を読出して外
部に出力する。

[作用] この発明に係るマルチポートメモリでは、M×N個の
メモリセルが、M/n行、n×N列に配列され、各n列ご
とに書込ビット線が設けられ、その書込ビット線が各行
において1つの第2のスイッチ手段を介してn組の第1
のスイッチ手段およびメモリセルに接続される。したが
って、nの値を変更することにより、メモリセルアレイ
の縦横比を変更できる。また、書込ビット線をn列に共
通に設けたので、レイアウト面積が小さくてすむ。

[実施例] 以下、本発明のマルチポートメモリを添付図面を参照
して詳細に説明する。

第1図は本発明の一実施例を示すブロック図である。
同図を参照して、データ入力回路3、センスアンプ4は
従来例と同様である。メモリセル1aはM/n行、n×N列
配置され、M語×Nビットのメモリセルアレイを構成す
る。

このメモリセルアレイの行方向には、M/n本の書込ワ
ード線WWi(ただし、第25図と相違しi=0,1,M/n−1で
ある)配置され、この書込ワード線WWiと互い違いに読
出ワード線RWiが配置される。また、メモリセルアレイ
の列方向にはN本の書込ビット線WBj(ただし、j=0,
1,…N−1)が配置され、n×N本の読出ビット線RBjk
(ただし、k=0,1,…n−1)が配置される。さらに、
メモリセルアレイの列方向には、後述するメモリセル1a
内の列選択ゲートを制御するための列選択線CSELkがn
×N本配置される。このn×N本の列選択線CSELはn種
類である。

書込アドレスデコーダ2cは外部からの書込アドレスに
応答して、M/n本の書込ワード線WWiのうち所望のワード
線を選択し、これを「1」または「0」にドライブす
る。書込列アドレスレコーダ2dは、外部からの書込列ア
ドレスに応答して、n本の列選択線CSELkのうち所望の
列選択線を「1」または「0」にドライブする。

読出アドレスデコーダ2eは、外部からの読出アドレス
に応答して、M/n本の読出ワード線RWiのうち所望のワー
ド線を選択し、これを「1」または「0」にドライブす
る。読出列アドレスデコーダ2fは外部からの列アドレス
に応答して、n本の列選択線RSkのうち、所望の列選択
線を「1」または「0」にドライブする。

読出列選択ゲート11はそれぞれのゲート電極が読出列
選択線RSkに接続され、ドレイン電極が読出ビット線RB
に接続され、ソース電極がセンスアンプ4に接続されて
いる。なお、読出列選択ゲート11はn個ずつのグループ
にされ、それぞれのソース電極は共通化されている。ま
た、書込ビット線WBjはデータ入力回路3に接続され、
書込ビット線WBjに接続されるn個のメモリセルアレイ1
aに同じデータを与えている。

以上の構成によりこのマルチポートメモリの書込ポー
トは、書込アドレスWA、書込ワード線WWi、書込ビット
線WBj、入力データDI、書込アドレスデコーダ2c、書込
列アドレスデコーダ2d、書込列選択線CSELk、データ入
力回路3である。また、読出ポートは、読出アドレスR
A、読出ワード線RWi、読出ビット線RBjk、読出列選択線
RSk、データ出力DO、読出アドレスデコーダ2e、読出列
アドレスデコーダ2f、センスアンプ4である。

第2図は上記第1図のメモリセル1aの詳細を示す回路
図であり、従来のものとの相違は、アクセスゲート6と
書込端子Aとの間に書込列選択ゲート8を設け、この列
選択ゲート8のゲート電極を列選択線CSELに接続し、書
込ワード線WWからの信号および列選択線CSELからの信号
が入力されると、WBとAとが電気的に接続されるように
なっている点である。

上記回路5は3個のインバータ5a、5b、5cで構成して
いるが、第3(a)図から第3(e)図に示すものを使
用してもよい。なお、第3(a)図、第3(b)図はス
タティックRAMである。第3(c)図、第3(d)図は
ダイナミックRAMであり、書込端子Aに蓄えた電荷量で
データを記憶する。第3(e)図はROMであり、FET5eの
導通非導通があらかじめプログラムされている。

上記第1図および第2図に示すマルチポートメモリ動
作を説明する。

[I]書込動作 外部より書込むべきアドレスが書込アドレスデコーダ
2cに与えられ、書込むべきNビットのデータDI0,DI1,…
DIN−1がデータ入力回路3に与えられる。書込アドレ
スデコーダ2cは、外部からのアドレスを解読し、該当す
る行に対応する書込ワード線WWiを「1」にドライブ
し、その他の書込ワード線を「0」にする。

また、書込列アドレスは書込列アドレスデコーダ2dに
より解読され、n本の列選択線CSELkのうち所望の列選
択線を「1」にドライブし、他の列選択線を「0」にす
る。これにより「1」にドライブされた書込ワード線WW
iに接続される1行分のメモリセル1aのアクセスゲート
6が導通し、さらに「1」にドライブされた列選択線CS
ELkに接続される書込列選択ゲート8が導通する。

この結果書込ビット線WBと記憶回路5の書込端子Aと
が電気的に接続され、データ入力回路3に送られてくる
データDIjが記憶回路5に書込まれる。

この場合において、データ入力回路3の出力抵抗、ア
クセスゲート6のON抵抗、および選択ゲート8のON抵抗
の和はインバータ5bの出力抵抗よりも小さく設定してあ
り、書込端子A、フリップフロップの出力端子Bの初期
値に関係なく書込端子Aの値はデータ入力回路3で指定
された値DIjと同じになる。

以上のごとくしてデータの書込が終了する。この場合
において、列選択線CSELkが「0」のメモリセル1aは、
書込ビット線WBiと書込端子Aとが電気的に分離されて
いるので、書込が行われずデータが保持される。したが
って、外部から入力される書込アドレスで指定された行
であっても列アドレスで選択されていない列のメモリセ
ル1aはデータを保持したままである。また、列アドレス
デコーダにイネーブル信号WEを与えて列選択線CSELを制
御することによって、全てのメモリセル1aのデータを保
持することができる。

[II]読出動作 M語のうち読み出すべき語は読出アドレスで指定さ
れ、読出アドレスデコーダ2eは読出アドレスを解読し、
M/n本の読出ワード線RWiのうちいずれか一つを「1」に
ドライブし、他の読出ワード線を「0」にする。「1」
にされた読出ワード線RWiに接続されるn×N列のメモ
リセル1aのアクセスゲート7が導通し、読出端子Cと読
出ビット線RBjkとが電気的に接続される。

これにより、読出ビット線RBjkは読出端子Cの値にド
ライブされる。この値は読出列選択ゲート11のドレイン
電極に与えられる。読出列アドレスデコーダ2fを外部か
ら与えられる読出アドレスを解読し、n本の読出列選択
線をRSkのうちいずれか一つを「1」にドライブし、他
の読出列選択線を「0」にする。この「1」にドライブ
された読出列選択線に制御端子が接続される読出列選択
ゲート11は導通し、読出ビット線RBjkのうちkの番号
(0,1…n−1)が選択されることになる。

以上のごとくして、読出動作においては読出アドレス
デコーダ2eによって読出ビット線RBjkのうち行(j)が
指定され、読出列アドレスデコーダ2fによって列(k)
が指定される。したがって、行と列とが指定されメモリ
セル1aのデータは、列選択ゲート11からセンスアンプ4
に与えられ、このセンスアンプ4で検出・増幅された後
NビットのデータDO0,DO1,…DON−1が外部に出力され
る。

なお、読出列選択ゲート11をメモリセル1aの外部に設
けることができるのは、読出ワード線RWが「1」になっ
てもメモリセル1a内の書込端子Aおよびフリップフロッ
プ回路の出力端子Pは判定しないからである。また、書
込アドレスデコーダ2c、書込列アドレスデコーダ2d、読
出アドレスデコーダ2e、読出列アドレスデコーダ2fをメ
モリセルアレイの両側に分散配置したものを示したが、
いずれか一方の側に集中して配置してもよい。また、メ
モリセルアレイの上側に配置してもよい。

上記マルチポートメモリであれば、書込ビット線WWを
隣接する2つのメモリセルで共通化することができ、M
語×Nビットを(M/n行)×(n×N列)にすることが
でき、従来のものと相違して周辺回路との接続を容易に
することができる。また、周辺回路と一体構成した集積
回路の作成をする上でも容易となる。この集積回路化を
第4図、第5図を参照して説明する。

マルチポートメモリ10をALU12、シフタ13とともに同
一基板に集積化してプロセッサのデータバスを形成する
場合において、一般にALU12やシフタ13の接続端子は1
ビット当り製造プロセスデザイン(ゲート長を1ミクロ
ンメータ)の50ないし100倍の幅を要するのに対し、メ
モリセルアレイ10内の18列の幅はデザインルールの15な
いし30倍ですむ。したがって、1ビット当りのメモリセ
ルの列数を2ないし4にすればマルチポートメモリの列
数とALU12やシフタ13間でピット当りの幅を余分な隙間
を作ることなく同一にすることができる。そして、第5
図に示すようにそれらを密着させてレイアウトすること
が可能になる。なお、第5図において、破線で区切られ
た部分が1ビット幅に相当する。第6図は4語×4ビッ
トのメモリセルを2行8列で構成する例を示すブロック
図である。

同図を参照して、書込ポート、読出ポートはそれぞれ
1ポートである。そして、1行を2語に対応させ、2列
を1ビットに対応させている。書込アドレスデコーダ2c
は1本のアドレス線WA0に接続され、外部からのアドレ
スをデコードし、2本の書込ワードWW0,WW1のいずれか
一方を「1」にドライブする。書込列アドレスデコーダ
2dは1本のアドレスWA1に接続され、外部からのアドレ
スをデコードし、2本の列選択線CSEL0,CSEL1のうちい
ずれか一方を「1」にドライブする。また、読出アドレ
スデコーダ2eは1本のアドレス線RA0に接続され、読出
アドレスを解読し、読出ワード線RW0、RW1のうちいずれ
か一方を「1」にドライブする。読出アドレスデコーダ
2fは1本のアドレス線RA1に接続され、アドレスデータ
を解読し、読出列選択線RS0,RA1のうちいずれか一方を
「1」にドライブする。読出列選択ゲート11はドレイン
電極が読出ビット線RBjk(ただしj=0,1、k=0,1であ
る)に接続され、ソース電極が隣り合う列選択ゲート11
のソース電極に接続されるとともに、センスアンプ4に
接続される。

以上の構成であれば4語×4ビットのマルチポートメ
モリを2行8列にすることができる。また、書込ワード
線WWを共通化して従来のものと同じ本数にすることがで
きる。さらに、読出ビット線RBjkは読出列選択ゲート11
により選択されるので、センスアンプ4の数も従来と同
じ数にすることができる。

第7図は上記第6図の書込列アドレスデコーダ2dの詳
細を示す回路図である。

同図を参照して、外部からの書込列アドレスWA1はイ
ンバータ14によって反転され、AND回路15、インバータ1
6に与えられる。ここで、書込列アドレスWA1を「1」と
して以下の説明を行なう。AND回路15はイネーブル信号W
Eが「0」にされない限り、書込列選択線CSEL0を「0」
にドライブする。また、インバータ16外部から与えられ
るアドレスWA0を元に戻し、これをAND回路17に与えて、
イネーブル信号WEが「1」である限り書込列選択線CSEL
1を「1」にドライブする。すなわちイネーブル信号WE
が「1」ならば通常のデコーダとして動作し、イネーブ
ル信号WEが「0」ならば列選択線CSEL0,CSEL1がともに
「0」となって全てのメモリセル1aのデータが保持され
る。

なお、上記第7図では書込列アドレスデコーダ2dとし
て1入力2出力のものを示したが、4行のメモリセルア
レイを構成する場合には、2入力4出力にすればよい。
この2入力4出力のアドレスデコーダデコーダの構成例
を第9図(a)図、および第9(b)図に示す。

第8図は読出列アドレスデコーダの詳細を示す回路図
である。同図を参照して、外部からの読出列アドレスRA
1は3段のインバータ18、19、20によって反転され、読
出列選択線RS0に信号を出す。また、上記インバータ18
およびインバータ21、22、23からなる4段のインバータ
により読出列選択線RS1を読出列アドレスRA1の値にドラ
イブする。

なお、アドレスデコーダ2c、2eもこの第8図のアドレ
スデコーダと同様の構成である。

上記第6図から第9図のマルチポートメモリの動作を
第10図および第11図を参照して説明する。第10図は第6
図中1点鎖線で区切った部分のメモリセルをMC0、MC1、
MC2、MC3とする。また、第11図はタイミングチャート図
であり、同図中×××印はメモリセル1a内のデータが以
前の状態を示す。

[I]書込動作 (1) MC0への書込 WA0が「0」の場合には、書込アドレスデコーダ2cは
書込ワード線WW0を「1」、WW1を「0」にする。これに
応答して、MC0、MC2のアクセスゲート6が導通する。続
いて、アドレスWA1が「0」となりさらにイネーブル信
号WEが「1」となると、書込列アドレスデコーダ2dは列
選択線CSEL0を「1」にする。これに応答して、MC0、MC
1の列選択線ゲート8は導通する。したがって、書込ア
ドレスWA0、書込列アドレスWA1によって選択され行・列
のメモリセルMC0の記憶回路5への書込が可能となる。

(2) MC1への書込 書込アドレスWA0が「1」の場合、書込アドレスデコ
ーダ2cは書込アドレス線WW0を「0」、WW1を「1」にす
る。これに応答してMC1、MC3のアクセスゲート8が導通
する。続いて書込列アドレスWA1には前述の(1)と同
様0であるからイネーブル信号WEが「1」となると書込
列アドレスデコーダ2d列選択線CSEL0を「1」にする。
これに応答して、MC0、MC1の列選択ゲート8は導通す
る。したがって、書込アドレスWA0、書込列アドレスWA1
によって選択される行・列のメモリセルMC1の記憶回路
5への書込が可能となる。

(3) MC2への書込 MC2への書込はWA0を「0」、WA1を「1」にする。こ
の状態においてイネーブル信号WE1を「1」にするとメ
モリセルMC2のみが書込可能の状態となる。この状態に
おいて入力データDIが1であるからMC2にはこの「1」
が書込まれる。

(4) MC3への書込 NC3への書込は書込アドレスWA0が「1」、書込列アド
レスWA1が「1」であり、イネーブル信号WEが「1」と
なったタイミングで行われる。そしてこの状態となった
ときの入力データDI0は「0」であるからMC3へは「0」
が書込まれる。

[II]読出動作 続いて読出動作の説明をする。読出動作は前述書込動
作と同様に2語の指定は書込アドレスRA0で行なわれ、
読出列選択はRA1で行われる。すなわち、MC0のデータを
読出すには、読出アドレスRA0を「0」とし、読出列ア
ドレスRA1を「0」とする。これに応答して、読出列ア
ドレスデコーダ2eは読出ワード線RW0を「1」にし、MC
およびMC2の読出アクセスゲート7をオンにする。ま
た、読出列アドレスデコーダ2eはRS0を「1」にし、読
出ビット線RB00に接続されている読出列選択ゲート11を
オンにする。これにより、MC0の読出端子Cとセンスア
ンプ4とが接続される。このときメモリセルMC0のデー
タがセンスアンプ4に与えられる。

以下同様にしてMC1からデータを読出す場合には、RA0
を「1」にし読出列アドレスRA1を「0」にする。さら
に、MC2からのデータの読出は、読出アドレスWA0を
「0」とし、読出列アドレスRA1を「1」とする。さら
に、MC3からのデータの読出は読出列アドレスRA0を
「1」にし、読出列アドレスRA1を「1」にする。

第12図および第13図は実施例を示す図であり、第12図
はマルチポートメモリの全体の回路図、第13図は第12図
のメモリセルの詳細回路図である。同図を参照して、上
記第7図の実施例との相違は、同一行の隣り合う二つの
メモリセル1bの1brが書込アクセスゲート6を共有し
ている点である。以上の構成にすることにより、アクセ
スゲート6を半数にすることができ、生産性の向上、信
頼性の向上、および書込ワード線WWのかいおうりょうの
軽減による高速化が達成できる。

第14図および第15図は他の実施例を示す回路図であ
り、第14図はマルチポートメモリの全体回路図であり、
第15図は第14図のメモリセルアレイの詳細を示す回路図
である。同図を参照して、第7図の実施例との相違は書
込ワード線WWと読出ワード線RWを読出かつ書込可能なワ
ード線RWWで共通化した点である。これによりさらにマ
ルチポートメモリの大構成を簡素化できる。このメモリ
セル1cは読出と書込の両方が可能なポートに対して適用
される。

この場合、書込選択ゲート8がないと、読出書込ワー
ド線RWWが「1」になるのに応答して、読出アクセスゲ
ート7が導通すると同時に、書込アクセスゲート6が導
通し、読出と書込が同時となり、実用には不可能であ
る。しかし、列選択ゲート8を設けることにより読出と
書込のタイミングを制御することができ、読出と書込の
両方が可能なポートに対して全体の構成を簡略化するこ
とができる。

第16図および第17図は上記第7図の他の実施例を示す
ブロック図である。第16図はマルチポートメモリの全体
ブロック図であり、第17図は第16図のメモリセルの詳細
を示す回路図である。同図を参照して、上記第14図の実
施例と相違する点は、列選択線CSELに0,CSELに1が追加
され、読出ビット線RBと読出ワード線WBが共通化されて
読出書込ビット線RWBとなっている点である。データ入
力回路3′はイネーブル信号WEによってトライステート
ゲート3a′を制御できるようになっている(第8図参
照)。なお、上記第17図において、メモリセル1gの書込
アクセルゲート6および読出アクセスポート7を共通化
して、第19図に示すような構成にすることも可能であ
る。

第7図から第19図のマルチポートメモリは4語4ビッ
トのものを2行8列のメモリセルアレイで構成し、書込
ポート1、読出ポート1のものを用いて説明した。しか
しこれらの数字は自然数M,N,n,a,b,cで一般化すること
が可能である。すなわち、前述したごとくM語×Nビッ
ト構成のメモリセルアレイをM/n行、n×N列、さらに
書込ポート数をa、読出ポート数をb、書込読出ポート
数をcとすることが可能である。ただし、n≧2、M/n
は整数、c=0であっても良い。また、c≧1ならば、
a=0またはb=0であってもよい。

第20図は、第7図の他の実施例を示すブロック図であ
り、第21図は第20図のメモリセルアレイの詳細を示す回
路図である。

同図を参照して、前期第7図の実施例との相違は書込
ポートをW1,W2の2ポート、読出ポートをR1,R2,R3の3
ポートにしている点である。したがって、読込アドレス
デコーダ2cは2つにされ、それぞれ外部からの読出アド
レスを入力されるアドレス線W1A0、W2A0に接続される。
また、書込列アドレスデコーダ2dも2つにされそれぞ
れ、書込列アドレス線W1A1、W2A1に接続される。また、
それぞれのポートからの書込データDIを入力されるデー
タ入力回路3は各ビットごとに2つずつ配置される。

また読出ポートは3つであるから、読出アドレスデコ
ーダ2e、読出列アドレスデコーダ2f、センスアン4、読
出列選択ゲート11もそれぞれ3倍にされる。

第22図は他の実施例を示すブロック図である。前記第
7図の実施例がアドレスをデコードしてワード線および
列選択線を選択的に活性化するランダムアクセス方式の
ものであるのに対して、第22図の実施例はデコード2c、
2d、2e、2fとしてファーストインファーストアウト(FI
FO)を用いた循環式のシフタレジストを用いている点で
ある。なお、この実施例は2ビット6ワードである。

上記第22図のマルチポートメモリ動作を第23図および
第24図に基づいて説明する。なお第23図は上記第22図中
一点鎖線で囲まれる部分メモリセル1aの配置を示す図で
ある。

まず、RESETの立下りエッジで各シフトレジスタ2g、2
h、2i、2jの出力端子Q0が「1」、Q1およびQ2が「0」
にリセットされる。

次に、入力クロックWCLKの立下りエッジでシフト入力
端子SIの値がQ0、Q0の値がQ1に、Q1の値がQ2にシフトす
る。次いで、各シフトレジスタは出力端子Q1またはQ2は
シフト入力端子SIに接続されるので値が循環する。書込
列アドレスデコーダとしてのシフトレジスタ2hの入力端
子Tには書込用クロックWCLKとシフトレジスタ2gの出力
端子Q1の値(すなわちWW1の値)の積であるから、シフ
トレジスタ2hの入力端子Tにクロック信号が入るタイミ
ングは書込アドレス用としてのシフトレジスタ2gのクロ
ックWCLKの行数倍(この場合は2倍である)となる。読
出アドレスデコーダとしてのシフトレジスタ2jは上記シ
フトレジスタ12hと同様の機能を有し、相違する点はク
ロックイネーブルWEによって能動化されていない点であ
る。

これらの結果、書込クロックWCLKまたは読出クロック
RCLKの立下りごとにメモリセルMC0→MC1→MC2→MC3→MC
4→MC5→MC0→MC1…へと選択されるメモリセルが巡回す
る。

[発明の効果] 以上のように、この発明に係るマルチポートメモリで
は、M×N個のメモリセルが、M/n行、n×N列に配列
され、各n列ごとに書込ビット線が設けられ、その書込
ビット線が各行において1つの第2のスイッチ手段を介
してn組の第1のスイッチ手段およびメモリセルに接続
される。したがって、nの値を変更することにより、メ
モリセルアレイの縦横比を変更できる。また、書込ビッ
ト線をn列に共通に設けたので、レイアウト面積が小さ
くてすむ。このため、他の回路との接続および他の回路
と一体に組込んで集積化することを容易にするマルチポ
ートメモリにすることができるという特有の効果が得ら
れる。

【図面の簡単な説明】

第1図は本発明の一実施例を示すブロック図、第2図は
上記第1図のメモリセルの詳細を示す回路図、第3図は
記憶回路の変更例を示す図、第4図および第5図は第1
図のマルチポートメモリを他の回路とともに集積化する
場合を説明する図、第6図は4語×4ビットのメモリを
2行8列で構成したブロック図、第7図は上記第6図の
書込列アドレスデコーダの詳細を示す回路図、第8図は
読出アドレスデコーダの詳細を示す回路図、第9(a)
図および第9(b)図は2入力4出力のアドレスデコー
ダを示す回路図、第10図は第7図のマルチポートメモリ
の動作を説明するためのメモリセルの配置図、第11図は
第7図のタイミングチャート、第12図は他の実施例を示
すブロック図、第13図は第12図のメモリセルの詳細を示
す回路図、第14図は他の実施例を示すブロック図、第15
図は、第14図のメモリセルの詳細を示すブロック図、第
16図および第17図は他の実施例を示す図、第18図は第16
図のデータ入力回路の詳細を示す回路図、第19図は上記
第17図のメモリセルの変更例を示す回路図、第20図は第
7図の他の実施例を示すブロック図、第21図は第20図の
メモリセルの詳細を示す回路図、第22図は他の実施例を
示すブロック図、第23図は動作を説明するためのメモリ
セルの配置図、第24図は第22図のタイミングチャートで
ある。第25図は従来のマルチポートメモリのブロック
図、第26図は上記第25図のメモリセルの回路図、第27図
は上記第25図のデータ入力回路の回路図、第28図は2入
力4出力形のアドレスデコーダの回路図、第29(a)図
および第29(b)図はセンスアンプの回路図、第30図は
従来の4語×4ビットのマルチポートメモリのブロック
図である。 図において1a〜1fはメモリセル、2cは書込アドレスデコ
ーダ、2dは書込列アドレスデコーダ、2eは読出アドレス
デコーダ、2fは読出列アドレスデコーダ、3はデータ入
力回路、4はセンスアンプ、5は記憶回路、6は書込ア
クセスゲート、7は読出アクセスゲート、8は書込列選
択ゲート、11は読出列選択ゲートである。

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−205790(JP,A) 特開 平2−294992(JP,A) (58)調査した分野(Int.Cl.6,DB名) G11C 11/41

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】Nビットのデータを同時に入出力すること
    が可能なM語×Nビット構成のマルチポートメモリであ
    って、 M/n行、n×N列(ただし、M,N,nは2以上の整数であ
    る)に配列され、各行において予めn個ずつグループ化
    され、それぞれが書込端子および読出端子を有するM×
    N個のメモリセル、 各行に対応して設けられた書込ワード線、 各n列ごとに設けられた書込ビット線、 それぞれが前記n×N列に対応して設けられ、メモリセ
    ルグループに対応して予めn本ずつグループ化されたn
    ×N本の列選択線、 第1の書込アドレス信号に従って、M/n本の前記書込ワ
    ード線のうちのいずれかの書込ワード線を選択し、その
    書込ワード線を選択レベルにする第1の書込デコーダ、 第2の書込アドレス信号に従って、各列選択グループか
    ら1本ずつ合計N本の列選択線を選択し、選択したN本
    の列選択線の各々を選択レベルにする第2の書込デコー
    ダ、 各メモリセルに対応して設けられ、その一方電極が対応
    のメモリセルの書込端子に接続され、対応のメモリセル
    に対応する列選択線が選択レベルにされたことに応じて
    導通する第1のスイッチ手段、 各メモリセルグループに対応して設けられ、その一方電
    極が対応のメモリセルグループに属するメモリセルに対
    応する第1のスイッチ手段の他方電極に接続され、その
    他方電極が対応のメモリセルグループに対応する書込ビ
    ット線に接続され、対応のメモリセルグループに対応す
    る書込ワード線が選択レベルにされたことに応じて導通
    する第2のスイッチ手段、および 各書込ビット線に対応して設けられ、外部から与えられ
    たデータ信号を対応の書込ビット線に与える書込手段を
    備える、マルチポートメモリ。
  2. 【請求項2】さらに、各行に対応して設けられた読出ワ
    ード線、 それぞれがn×N列に対応して設けられ、メモリセルグ
    ループに対応して予めn本ずつグループ化されたn×N
    本の読出ビット線、 第1の読出アドレス信号に従って、M/n本の読出ワード
    線のうちのいずれかの読出ワード線を選択し、その読出
    ワード線を選択レベルにする第1の読出デコーダ、 第2の読出アドレス信号に従って、各読出ビット線グル
    ープから1本ずつ合計N本の読出ビット線を選択する第
    2の読出デコーダ、 各メモリセルに対応して設けられ、その一方電極が対応
    のメモリセルの読出端子に接続され、その他方電極が対
    応のメモリセルに対応する読出ビット線に接続され、対
    応のメモリセルに対応する読出ワード線が選択レベルに
    されたことに応じて導通する第3のスイッチ手段、 各読出ビット線に対応して設けられ、その一方電極が対
    応の読出ビット線に接続され、前記第2の読出デコーダ
    によって対応の読出ビット線が選択されたことに応じて
    導通する第4のスイッチ手段、および 各第4のスイッチ手段に対応して設けられて対応の第4
    のスイッチ手段の他方電極に接続され、対応の読出ビッ
    ト線を介して選択されたメモリセルのデータ信号を読出
    して外部に出力する読出手段を備える、特許請求の範囲
    第1項に記載のマルチポートメモリ。
JP2063670A 1990-03-13 1990-03-13 マルチポートメモリ Expired - Fee Related JP2891504B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2063670A JP2891504B2 (ja) 1990-03-13 1990-03-13 マルチポートメモリ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2063670A JP2891504B2 (ja) 1990-03-13 1990-03-13 マルチポートメモリ
US07/666,518 US5177706A (en) 1990-03-13 1991-03-11 Semiconductor memory device having a plurality of ports
DE19914107889 DE4107889C2 (de) 1990-03-13 1991-03-12 Halbleiterspeichereinrichtung und N-Bit-Datenpfad

Publications (2)

Publication Number Publication Date
JPH03263687A JPH03263687A (en) 1991-11-25
JP2891504B2 true JP2891504B2 (ja) 1999-05-17

Family

ID=13236020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2063670A Expired - Fee Related JP2891504B2 (ja) 1990-03-13 1990-03-13 マルチポートメモリ

Country Status (3)

Country Link
US (1) US5177706A (ja)
JP (1) JP2891504B2 (ja)
DE (1) DE4107889C2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2664810B2 (ja) * 1991-03-07 1997-10-22 株式会社東芝 メモリセルアレイ分割型半導体記憶装置
DE69216267T2 (de) * 1991-03-19 1997-09-25 Fujitsu Ltd Multiport-Speicher
US5291443A (en) * 1991-06-26 1994-03-01 Micron Technology, Inc. Simultaneous read and refresh of different rows in a dram
JPH05113929A (ja) * 1991-10-22 1993-05-07 Mitsubishi Electric Corp マイクロコンピユータ
EP0554489B1 (en) * 1992-02-06 1999-12-01 International Business Machines Corporation Multi-port static random access memory with fast write-thru scheme
JPH06242951A (ja) * 1992-12-22 1994-09-02 Toshiba Corp キャッシュメモリシステム
JPH06215576A (ja) * 1993-01-18 1994-08-05 Mitsubishi Electric Corp 半導体記憶装置
JP3214132B2 (ja) * 1993-03-01 2001-10-02 三菱電機株式会社 メモリセルアレイ半導体集積回路装置
US5737569A (en) * 1993-06-30 1998-04-07 Intel Corporation Multiport high speed memory having contention arbitration capability without standby delay
JPH0729376A (ja) * 1993-07-14 1995-01-31 Ricoh Co Ltd 半導体メモリ装置及びデータ読み書き方法
US5416739A (en) * 1994-03-17 1995-05-16 Vtech Computers, Ltd. Cache control apparatus and method with pipelined, burst read
JPH07311842A (ja) * 1994-05-19 1995-11-28 Konica Corp 画像記憶装置
JP3181479B2 (ja) * 1994-12-15 2001-07-03 沖電気工業株式会社 半導体記憶装置
JPH08212132A (ja) * 1995-02-07 1996-08-20 Mitsubishi Denki Semiconductor Software Kk 記憶装置
US5802586A (en) * 1995-02-27 1998-09-01 Motorola, Inc. Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
US5715197A (en) 1996-07-29 1998-02-03 Xilinx, Inc. Multiport RAM with programmable data port configuration
US6052327A (en) * 1997-10-14 2000-04-18 Altera Corporation Dual-port programmable logic device variable depth and width memory array
US5923608A (en) * 1997-10-31 1999-07-13 Vlsi Technology, Inc. Scalable N-port memory structures
US5978889A (en) * 1997-11-05 1999-11-02 Timeplex, Inc. Multiple device data transfer utilizing a multiport memory with opposite oriented memory page rotation for transmission and reception
US5953283A (en) * 1998-07-31 1999-09-14 International Business Machines Corporation Multi-port SRAM with reduced access requirements
DE10213267A1 (de) * 2002-03-25 2003-10-23 Infineon Technologies Ag Registerzelle und Verfahren zum Schreiben auf die Registerzelle
WO2004021355A2 (en) * 2002-08-29 2004-03-11 Koninklijke Philips Electronics N.V. Electronic device with data storage device
US7111110B1 (en) 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
US7630237B2 (en) * 2003-02-06 2009-12-08 Sandisk Corporation System and method for programming cells in non-volatile integrated memory devices
JP2006134484A (ja) * 2004-11-05 2006-05-25 Nec Micro Systems Ltd 半導体記憶装置
US7349264B2 (en) * 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
US7616481B2 (en) * 2005-12-28 2009-11-10 Sandisk Corporation Memories with alternate sensing techniques
US7864600B2 (en) * 2008-06-19 2011-01-04 Texas Instruments Incorporated Memory cell employing reduced voltage
US8416624B2 (en) 2010-05-21 2013-04-09 SanDisk Technologies, Inc. Erase and programming techniques to reduce the widening of state distributions in non-volatile memories
US8959291B2 (en) 2010-06-04 2015-02-17 Lsi Corporation Two-port memory capable of simultaneous read and write
US8645609B2 (en) * 2010-12-06 2014-02-04 Brocade Communications Systems, Inc. Two-port memory implemented with single-port memory blocks
JP2019160371A (ja) * 2018-03-14 2019-09-19 株式会社東芝 メモリ回路および電子機器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205790A (en) * 1988-02-10 1989-08-18 Ricoh Co Ltd Static ram
JPH01307091A (en) * 1988-06-03 1989-12-12 Mitsubishi Electric Corp Multiport memory
JP2600304B2 (ja) * 1988-06-30 1997-04-16 三菱電機株式会社 半導体記憶装置とこれを用いたデータパス
DE69023258T2 (de) * 1989-03-15 1996-05-15 Matsushita Electronics Corp Halbleiter-Speichereinrichtung.
US5040146A (en) * 1989-04-21 1991-08-13 Siemens Aktiengesellschaft Static memory cell

Also Published As

Publication number Publication date
DE4107889C2 (de) 1995-02-16
DE4107889A1 (de) 1991-09-19
US5177706A (en) 1993-01-05
JPH03263687A (en) 1991-11-25

Similar Documents

Publication Publication Date Title
US5289406A (en) Read only memory for storing multi-data
EP0905705B1 (en) Space-efficient semiconductor memory having hierarchical column select line architecture
CN101923892B (zh) 稳定sram单元
US7092279B1 (en) Shared bit line memory device and method
US3638204A (en) Semiconductive cell for a storage having a plurality of simultaneously accessible locations
US6999371B2 (en) Semiconductor memory device capable of reducing power consumption during reading and standby
US4106109A (en) Random access memory system providing high-speed digital data output
JP3547466B2 (ja) メモリ装置、シリアル‐パラレルデータ変換回路、メモリ装置にデータを書き込む方法、およびシリアル‐パラレルデータ変換方法
US7301793B2 (en) Semiconductor memory device
US5206831A (en) Serial access semiconductor memory device having a redundancy system
US4876670A (en) Variable delay circuit for delaying input data
US6711067B1 (en) System and method for bit line sharing
DE3919625C2 (de) Halbleiterspeichereinrichtung
US5280441A (en) Semiconductor memory device
US4931994A (en) Static semiconductor memory with section and block sense amplifiers
DE69631013T2 (de) Halbleiterspeicher
US6903996B2 (en) Very small swing high performance CMOS static memory (multi-port register file) with power reducing column multiplexing scheme
JP4521068B2 (ja) パイプライン化デュアルポート集積回路メモリ
KR100745368B1 (ko) 개선된 데이터 입출력 경로를 갖는 반도체 메모리 장치
US4791607A (en) Gate array integrated circuit device and method thereof for providing various bit/word constructions
US5617364A (en) Semiconductor memory device
EP1349171B1 (en) Data exchange device between scan chains
US6052327A (en) Dual-port programmable logic device variable depth and width memory array
US5717901A (en) Variable depth and width memory device
US7532536B2 (en) Semiconductor memory device

Legal Events

Date Code Title Description
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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080226

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090226

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090226

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100226

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees