JP2005004895A - 同期バンク型メモリ - Google Patents
同期バンク型メモリ Download PDFInfo
- Publication number
- JP2005004895A JP2005004895A JP2003167989A JP2003167989A JP2005004895A JP 2005004895 A JP2005004895 A JP 2005004895A JP 2003167989 A JP2003167989 A JP 2003167989A JP 2003167989 A JP2003167989 A JP 2003167989A JP 2005004895 A JP2005004895 A JP 2005004895A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- signal
- bank
- port
- address
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Static Random-Access Memory (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
【解決手段】同期バンク型多ポートメモリにおいて、レジスタ/バッファ回路は、外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力、入力されるポートブロック信号の外部への出力を行う。アクセス競合回避回路は、レジスタ・バッファ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生する。スイッチングネットワーク回路は、レジスタ・バッファ回路からリード/ライト信号とアドレス信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、バンク選択信号を生成して選択されたバンクを活性化する。同期バンク型1ポートメモリも、同様に、構成される。
【選択図】図1
Description
【発明の属する技術分野】
本発明は、同期バンク型メモリの構成に関するものである。
【0002】
【従来の技術】
同期型多ポートメモリは、複数のポートからの読出し・書込み要求を並列に処理する。多ポートメモリには、面積増加の問題やアクセス競合回避の問題がある。バンク型多ポートメモリでは、バンクと呼ばれる多数の1ポートメモリセルを配置し、各ポートとつなぐ。1ポートメモリセルを用いるため、Nポートメモリセルを用いる方式に比べて面積が小さくできる。バンク型多ポートメモリには、クロスバ型アーキテクチャと階層構造型アーキテクチャ(HMA)がある。クロスバ型多ポートメモリでは、各バンクと各ポートとの間にクロスバスイッチを介在させる。HMA型メモリでは、各バンクの中に1ポートとNポートの変換回路を設け、マトリクス状に配置されている複数のバンクの中のいずれかのバンクにアクセスするための行・列選択回路を設け、行・列選択回路と並列に動作するアクセス競合回避回路を設ける。
【0003】
【非特許文献1】
H. J. Mattausch, Koji Kishi and Takayuki Gyohten, ”Area−efficient multi−port SRAMs for on−chip data−storage with high random−access bandwidth and large storage capacity,” IEICE Transactions on Electronics, Vol. E84−C, No. 3, p. 410, 2001
【非特許文献2】
H. J. Mattausch, ”Hierarchical architecture for area−efficient integrated N−port memories with latency−free multi−gigabit per second access bandwidth,” IEE Electronics Letters, Vol. 35, No. 17, pp. 1441−1443, 1999
【非特許文献3】
C. L. Seitz, ”The cosmic cube,” Commun. ACM, Vol. 28, No. 1, pp. 22−33, 1985
【非特許文献4】
N. Omori and H. J. Mattausch, ”Compact central arbiters for memories with multiple read/write ports,” IEE Electronics Letters, Vol. 37、pp. 811−813, 2001
【0004】
【発明が解決しようとする課題】
同期バンク型多ポートメモリでは、アクセスタイムを最小化するために、ビットラインを適切な電圧にプリチャージする操作とセンスアンプ回路が通常用いられる。ここで、実際のメモリアクセスとビットラインのプリチャージとは、異なるクロックフェーズで行われていた。たとえば、図1の(a)に示すように、クロックck=1のときに、メモリアクセスを行い、ck=0のときにプリチャージを行う。したがって、プリチャージ時間と実際のメモリアクセス時間との和がメモリアクセスのクロックサイクル時間(メモリアクセスサイクル時間)となり、実際のアクセス時間よりも長くなってしまう。しかし、原理的には、メモリアクセスサイクル時間は、メモリアクセス時間と同等まで短縮できることが望ましい。
【0005】
この発明の目的は、同期バンク型メモリにおいて、メモリアクセスサイクル時間を短縮することである。
【0006】
【課題を解決するための手段】
本発明に係る第1の同期バンク型メモリは、一般の同期バンク型多ポートメモリであり、それぞれ複数の1ポートメモリセルを含む複数のバンクと、内部クロック信号を発生するクロック生成回路と、外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力、入力されるポートブロック信号の外部への出力を行うレジスタ・バッファ回路と、レジスタ・バッファ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生するアクセス競合回避回路と、レジスタ・バッファ回路と複数のバンクの間に配置され、レジスタ・バッファ回路からリード/ライト信号とアドレス信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、バンク選択信号を生成して選択されたバンクを活性化し、かつ、クロック生成回路からの内部クロック信号をバンクに出力するスイッチングネットワーク回路とからなる。この同期バンク型メモリは、前記の第1から第3の同期バンク型メモリを含む。
【0007】
同期バンク型多ポートメモリがHMA型多ポートメモリである場合、同期バンク型メモリは、前記の複数のバンクと1ポートとNポートとの変換を行うポート変換回路とをそれぞれ含む複数の第1階層モジュールと、前記のクロック生成回路と、前記のレジスタ・バッファ回路と、レジスタ・バッファ回路からアドレス信号を受け取って、前記のアクセス競合回避回路と、レジスタ・バッファ回路と複数のバンクの間に配置され、レジスタ・バッファ回路からリード/ライト信号とアドレス信号を受け取り、レジスタ・バッファ回路または複数のバンクからデータ信号を受け取り、アドレス信号を基にバンク列選択信号を生成してバンクに出力し、かつ、クロック生成回路からの内部クロック信号を選択されたバンクに出力するバンク列選択回路と、レジスタ回路からアドレス信号を受け取り、アドレス信号を基にバンク行選択信号を生成してバンクに出力するバンク行選択回路とからなる。前記のポート変換回路は、アクセス競合回避回路からのポートブロック信号がない場合に、バンク列選択信号とバンク行選択信号を基にバンクを活性化する。
【0008】
同期バンク型多ポートメモリがクロスバ型多ポートメモリである場合、同期バンク型メモリは、前記の複数のバンクと、前記のクロック生成回路と、前記のレジスタ回路と、前記のアクセス競合回避回路と、レジスタ回路と複数のバンクの間に配置され、複数のポートに接続されるラインと各バンクからの信号ラインとの交点であるクロスポイントでスイッチングを行うクロスバスイッチングネットワークであって、レジスタ・バッファ回路からリード/ライト信号とアドレス信号を受け取り、レジスタ・バッファ回路または複数のバンクからデータ信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、アドレス信号を基にクロスポイントを活性化し、かつ、クロック生成回路からの内部クロック信号をバンクに出力するクロスバスイッチングネットワークとからなる。
【0009】
同期バンク型多ポートメモリが分散クロスバ型多ポートメモリである場合、同期バンク型メモリは、前記の複数のバンクと、前記のクロック生成回路と、前記のレジスタ・バッファ回路と、前記のアクセス競合回避回路と、複数のクラスタに分けられている前記の複数のバンクについて、レジスタ・バッファ回路と複数のクラスタとの間にそれぞれ配置される複数のクロスバスイッチングネットワークとからなる。各クロスバスイッチングネットワークは、複数のポートに接続されるラインと1つのクラスタに属するバンクからの信号ラインとの交点であるクロスポイントでスイッチングを行う複数のクロスバスイッチングネットワークであって、レジスタ・バッファ回路からリード/ライト信号とアドレス信号を受け取り、レジスタ・バッファ回路または複数のバンクからデータ信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、アドレス信号を基にクロスポイントを活性化し、かつ、クロック生成回路からの制御クロック信号をバンクに出力する。
【0010】
本発明に係る第2の同期バンク型メモリは、一般の同期型1ポートメモリであり、それぞれ複数の1ポートメモリセルを含む複数のバンクと、内部クロックを発生するクロック生成回路と、外部の1つのポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部の1つのポートからの入力または出力を行うレジスタ・バッファ回路と、レジスタ・バッファ回路と複数のバンクの間に配置され、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、バンク選択信号を生成して選択されたバンクを活性化し、かつ、クロック生成回路からの内部クロック信号をバンクに出力するスイッチングネットワーク回路とからなる。このスイッチングネットワーク回路は、クロスバ型、分散クロスバ型、HMA型などの種々の態様で構成できる。
【0011】
本発明に係る同期バンク型メモリへの第1のアクセス方法は、同期バンク型多ポートメモリへのアクセス方法である。ここで、1つのクロックサイクルが開始されると、レジスタ・バッファ回路はスイッチングネットワーク回路にリード/ライト信号とアドレス信号を出力し、アクセス競合回路にアドレス信号を出力し、スイッチングネットワーク回路は、アクセス競合回避回路からのポートブロック信号がない場合にバンク選択信号を生成し、バンク選択信号が生成されると、選択されたバンクはプリチャージを行う。また、クロック生成回路は、内部クロック信号を発生し、前記の選択されたブロックは、クロック生成回路から内部クロック信号を受け取ると、バンク内のメモリセルへのアクセスを行い、データ読み出しの場合は、さらにポートへのデータ転送を行う。
【0012】
本発明に係る同期バンク型メモリへの第2のアクセス方法は、同期バンク型1ポートメモリへのアクセス方法である。ここで、1つのクロックサイクルが開始されると、レジスタ・バッファ回路はスイッチングネットワーク回路にリード/ライト信号とアドレス信号を出力し、ネットワーク回路は、バンク選択信号を生成し、バンク選択信号が生成されると、選択されたバンクはプリチャージを行う。また、クロック生成回路は、メモリ内部のクロック信号を発生し、前記の選択されたブロックは、クロック生成回路から内部クロック信号を受け取ると、バンク内のメモリセルへのアクセスを行い、データ読み出しの場合は、さらにポートへのデータ転送を行う。
なお、この発明の以上に説明した構成要素は、可能な限り組み合わせることができる。
【0013】
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態を説明する。なお、図面において、同じ参照記号は同一または同等のものを示す。
【0014】
(A)同期バンク型メモリの新アクセス手法.
同期バンク型多ポートメモリでは、バンクと呼ばれる多数の1ポートメモリセルを配置し、複数のポートに接続する。アクセスタイムを最小化するために、バンク内でビットラインを適切な電圧にプリチャージする操作とセンスアンプ回路が通常用いられる。
【0015】
本発明による同期バンク型メモリのアクセス手法では、1つのクロックサイクルが開始されると、図1の(b)に示すとおり、クロックサイクルの前半(クロックck=1)において、読み出しまたは書き込みの処理におけるバンク内のワードラインドライバの直前までのアクセスと、バンクのプリチャージを同時に行う。すなわち、バンク型メモリのビットラインを適切な電圧にプリチャージするプリチャージ期間に、メモリアクセス時間の一部を同時オーバラップさせる。クロックサイクルの後半(クロックck=0)では、バンク内でワードラインを動作させて、それ以降のアクセス(バンク内での下位アクセス)を行う。プリチャージ期間に、メモリアクセス時間の一部をオーバラップさせて行うので、メモリのアクセスサイクル時間を実効的に短縮できる。したがって、アクセスサイクル時間を短くできる。このアクセス手法は、クロックと同期して動作するすべてのバンク型メモリ(同期バンク型メモリ)に対して適用できる。なお、ここでは、バンク内での下位アクセスは、クロックサイクルの後半に行っているが、それよりアクセスを遅らせた方がよい場合もありうる。したがって、より一般的には、クロックサイクルの開始を基に適当なタイミングで内部クロック信号を生成してバンクのアクセスを行えばよい。(この意味で、後で説明する種々の実施の形態では、内部クロック生成器は反転クロック信号ckqを生成しているが、内部クロック信号は反転クロック信号ckqに限られない。)
【0016】
まず、バンク型多ポートメモリへの応用について述べる。図2は、バンク型多ポートメモリの概念を示す。バンク型多ポートメモリは、1ポートバンク100を用いた複数のバンク構造体と複数のバンク構造体と多ポートを接続するスイッチングネットワーク102からなる。
【0017】
複数の1ポートメモリバンク100は、マトリクス状に配置される。各1ポートバンク100は、通常の1ポートメモリセル(DRAMとSRAMのいずれをも含む)からなるバンクであり、2次元に配列された複数の1ポートメモリセル領域と、1つの1ポートメモリセルを選択するための列選択回路・読み出し/書き込み回路と行選択回路を備え、ワードラインドライバや1ポートメモリセル領域のセンスアンプ回路が含まれる。1つの1ポートメモリセルに1本のワードラインと1対のビットラインが接続される。1ポートバンク100に下位アドレス(1ポートメモリセルのアドレス)とデータが入力されると、該当するメモリセルが選択され、読み出し/書き込み信号に従って読み出し/書き込みが行われる。
【0018】
レジスタ及びバッファ回路104は、クロックサイクルが開始されると、外部の複数のポートからアドレス信号A、データ信号D、リード/ライト信号R/Wを受け取り、ポートブロック信号PBを外部に送る。スイッチングネットワーク102には、1ポートとNポートとの変換を行うポート変換回路(アドレスとデータ)や、上位アドレス信号を基にバンクを選択するバンクデコーダが備えられる。スイッチングネットワーク102は、レジスタ及びバッファ回路104から受け取った信号を基にバンク選択信号Sを生成し、アドレス信号A、リード/ライト信号R/W、バンク選択信号Sを1ポートバンク100に送り、リード/ライト信号R/Wに従ってデータDをバンク100から読み出しまたはバンク100に書き込む。さらに、アクセス競合回避回路106が、レジスタ・バッファ回路104からのアクセス情報を基に、アクセス競合が発生すると判断するとポートブロック信号PBを発生し、スイッチングネットワーク102とレジスタ・バッファ回路104に送る。また、内部クロック生成器108が内部クロック信号として外部クロックckの反転信号ckqを生成し、クロック信号ckをレジスタ・バッファ回路104に供給し、クロック信号ck, ckqを各バンク104に供給する。(この明細書において”q”は負論理信号を表す)
【0019】
スイッチングネットワーク102の構成には様々なものがあり、大きく分けて、アクセスの競合がバンク以外では起こらない完全閉塞網型と、アクセスの競合がバンク以外の部分で起こる可能性のある非閉塞網型があるが、本発明のアクセス手法はそのどちらにも適用可能である。階層型多ポートメモリとクロスバ型多ポートメモリの2つのバンク型多ポートメモリアーキテクチャに適用可能であるほか、分散クロスバの場合や、クロスバ以外の結合網で構成されている場合にも適用可能である。これらの具体例については後で説明する。
【0020】
図3は、図2に示した一般的なバンク型メモリにおける読み出しと書き込みのアクセスを示す。バンクのプリチャージと同時にバンクのアクセス競合回避及びポート/バンク選択を行うことにより、アクセス時間の一部を隠蔽することが可能となる。これにより、メモリアクセスサイクル時間を短縮できる。
【0021】
読み出しの場合、クロックサイクルの前半(ck=1)で、スイッチングネットワーク102でのバンク選択とバンク100の中でのデコードとバンク100のプリチャージを行う。すなわち、レジスタ・バッファ回路104への入力信号がスイッチングネットワーク102とアクセス競合回避回路106に並列に送られ、スイッチングネットワーク102内でバンクデコードと1ポートとNポートの間の1:N変換(アドレス)が行われ、さらに、バンク100内でデコーダが動作する。
【0022】
次に、クロックサイクルの後半(ck=0)でバンク100内のアクセス(読み出し)とポートへのデータ転送を行う。バンク100内で、クロックckqによってワードラインドライバとビットラインセレクタによりワードラインを動作させ、1ポートセル領域でセンスアンプ回路を動作させる。メモリセルから読み出されたデータは、スイッチングネットワーク102内のポート変換回路(データ)、データバス、レジスタ・バッファ回路104内の出力回路を経て出力される。
【0023】
書き込みの場合、クロック信号が供給されると、クロックサイクルの前半(ck=1)で、読み出しの場合と同様に、スイッチングネットワーク102でのバンク選択とバンク100の中でのデコードとバンク100のプリチャージを行うが、これと並行して、書き込まれるデータが、レジスタ・バッファ回路104からスイッチングネットワーク102内での1ポートとNポート変換回路(データ)をとおり、バンク100に送られる。
【0024】
次に、クロックサイクルの後半(ck=0)で、バンク100内で、ワードラインドライバを動作させてバンク100内のアクセス(書き込み)を行う。ここで、データドライバを動作させて、1ポートセル領域でデータを書き込む。
【0025】
なお、以上ではバンク型多ポートメモリについて述べたが、バンク型の1ポートメモリは、図2において、スイッチングネットワークにポート変換機能を持たないものと考えることができる。したがって、本発明のアクセス手法は、バンク型1ポートメモリにも適用可能である。もちろん、バンク型1ポートメモリの場合には、アクセス競合回避回路106も不要となる。したがって、一般的なバンク型1ポートメモリは、それぞれ複数の1ポートメモリセルを含む複数のバンクを備えているのは多ポートメモリと同様であり、レジスタ回路は、クロック生成回路が生成した内部クロック信号が入力されると、外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力を行う。ネットワーク回路は、レジスタ回路と複数のバンクの間に配置され、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、バンク選択信号を生成して選択されたバンクを活性化し、かつ、クロック生成回路からのクロック信号をバンクに出力する。
【0026】
(B)同期式階層型多ポートメモリ(HMAメモリ)への適用.
階層型多ポートメモリ(Hierarchical Multi−port memory Architecture : HMA)は、閉塞網を用いたバンク型多ポートメモリである(非特許文献1)。図5は、スタティックCMOS回路によるHMAメモリの構成を示す。HMAメモリは、第1階層モジュール200、バンク列選択回路206、バンク行選択回路208及びアクセス競合回避回路210で構成される。第1階層モジュール200とは、1ポートとNポートの変換回路(1:N変換回路)202を1ポートバンク204とともにモジュール化したものである。1ポートバンク204は、図1の1ポートバンク100と同様に、2次元に配列された複数の1ポートメモリセル領域と、1つの1ポートメモリセルを選択するための列選択回路・読み出し/書き込み回路と行選択回路を備え、ワードラインドライバや1ポートメモリセル領域のセンスアンプ回路が含まれる。複数の第1階層モジュール200がマトリクス状に配置される。バンク列選択回路206とバンク行選択回路208は、それぞれ、列方向と行方向にバンクを選択する信号CS, RSを発生する。さらに、内部クロック生成器212とレジスタ・バッファ回路214が設けられる。内部クロック生成器212は、グローバルクロックから内部クロックck, ckqを生成し、レジスタ・バッファ回路214、アクセス競合回避回路210及び第1階層モジュール200に供給する。レジスタ・バッファ回路214は、外部のポート(ポート番号n=1,2,・・・,N)から、アドレス信号A、データ信号D、リード/ライト信号R/Wを受け取ってバンク列選択回路206に送り、また、アクセス競合回避回路210に、アドレス信号Aのうちのバンクアドレスを示す部分(上位アドレス)を送る。また、レジスタ及びバッファ回路212は、リード/ライト信号R/Wを各々の第1階層モジュール200にも送る。
【0027】
バンク行選択回路208とバンク列選択回路206がそれぞれ生成するバンク行選択信号RSnとバンク列選択信号CSnは、各ポートから入力されたアドレスの中の、バンクのアドレスを示す上位部分(m2ビット)をデコードした信号であり、RSnとCSnとがともに選択されたバンク204が、そのポートnのデータDnがアクセスするバンクとなる。データDnはリード/ライト信号R/Wに従ってバンクから読み出されまたはバンクに書き込まれる。(ここでnはポート番号を表わす。)
【0028】
同一サイクルの同一バンクへのアクセスは1ポートに限られる。そのため、同時に同一のバンクへ複数ポートからアクセスがなされた場合は、アクセス競合が起こる。アクセス競合回避回路210は、各ポートのバンクアドレスを比較し、競合が起きる場合にポートブロッキング信号PBnをレジスタ及びバッファ回路212を介して外部に送る。
【0029】
バンク列選択回路206の内部では、列ごとに、データを転送するバッファを分割している(Dn(1), Dn(2), ... , Dn(C))。これにより、Dn上のゲート/配線容量が減り、高速化が期待できる。さらに、選択されたバンク列のドライバのみを動作させることにより低消費電力化にも高い効果がある。
【0030】
このHMAメモリの構成の特徴は、アクセス競合回避回路210の出力PBnが1ポートとNポートの変換回路202に入力されていることであり、また、1ポートとNポートの変換回路202にクロックの反転信号ckqが入力されていることである。アクセス競合回避回路210の出力PBnが1ポートとNポートの変換回路202に入力されることにより、バンク選択とアクセス競合処理が並列に処理可能となり、高速動作に効果がある。また、クロックの反転信号ckqからバンク内信号CKintを生成し、選択されたバンクのデコーダのみを動作させることにより、低消費電力化にも高い効果がある。
【0031】
図4は、HMAメモリにおける本発明のアクセス手法を用いた場合の読み出しと書き込みのアクセスを示す。アクセス競合回避処理、及び、バンクとポートの選択をバンクのプリチャージを同時にオーバラップさせて行うことにより、多ポートメモリのアクセス時間の一部を隠蔽している。これによりメモリアクセスサイクル時間を短縮できる。
【0032】
読み出しの場合、クロック信号が供給されると、クロックサイクルの前半(ck=1)で、バンク列選択回路206でのバンク選択と第1階層モジュール200内のデコードと1ポートバンク204のプリチャージを行う。すなわち、レジスタ・バッファ回路104への入力信号がバンク列選択回路206とアクセス競合回避回路210に並列に送られ、バンク列選択回路206でのバンクデコードと1ポートとNポートの変換回路202でのポート変換(アドレス)が行われ、さらに、1ポートバンク204内でデコーダが動作する。
【0033】
次に、クロックサイクルの後半(ck=0)で1ポートバンク204内のアクセス(読み出し)とポートへのデータ転送を行う。1ポートバンク204内で、ワードラインドライバとビットラインセレクタによりワードラインを動作させ、センスアンプ回路を動作させる。メモリセルから読み出されたデータは、1ポートとNポートの変換回路(データ)202、データバス、バンク行選択回路206、レジスタ及びバッファ回路212内の出力回路を経て出力される。
【0034】
書き込みの場合、クロック信号が供給されると、クロックサイクルの前半(ck=1)で、読み出しの場合と同様に、バンク列選択回路206でのバンク選択と1ポートバンク204の中でのデコードと1ポートバンク204のプリチャージを行うが、これと並行して、書きこまれるデータが、レジスタ及びバッファ回路212、バンク列選択回路206、1ポートとNポートの変換回路(データ)202を通り、1ポートバンク204に送られる。
【0035】
次に、クロックサイクルの後半(ck=0)で1ポートバンク204内のアクセス(書き込み)を行う。すなわち、1ポートバンク204内で、データドライバを動作させて、1ポートセル領域でデータを書き込む。
【0036】
次に、1ポートとNポートの間の変換を行う1ポートとNポートの変換回路202について説明する。1ポートとNポートの変換回路202は、図6に示すように、アドレスをスイッチングするアクティブアドレス選択回路2020と、データをスイッチングするアクティブデータ選択回路2022、及び、それらの制御を行うバンクアクセス制御(Bank Enable)回路2024からなる。バンクアクセス制御(Bank Enable)回路には、クロックの反転信号ckqとポートブロック信号PBnが入力される。
【0037】
図7に示すバンクアクセス制御回路2024では、各ポートのリード/ライト信号R/Wn、行・列選択信号RSn、CSnおよびポートブロック信号PBnから、アドレススイッチ許可信号SAn、アクティブアドレス選択回路のビットラインのためのプリチャージ制御信号SApreを生成して、アクティブアドレス選択回路2020に送り、また、各ポートのリードアクセス許可信号SRnとライトアクセス許可信号SWn、及び、アクティブデータ選択回路のビットラインのためのプリチャージ制御信号SWpreを生成して、アクティブデータ選択回路2022に送り、また、バンク内の読み出し許可信号Rintと書き込み許可信号Wint、及び、バンク内の制御クロック信号CKintを生成する。この回路の特徴は、各種信号の生成にポートブロック信号PBnを考慮していることや、クロックの反転信号ckqを基にバンク内の制御クロック信号CKintを生成することである。
【0038】
アドレススイッチ許可信号SAnは、行・列選択信号RSn、CSnおよびポートブロック信号PBnがいずれも“1”であるときに出力され、アクティブアドレス選択回路、アクティブデータ選択回路、バンク内のビットラインデコーダ、ワードラインデコーダ及びリード/ライトユニットを活性化させる。それ以外の場合は、SAn=“0”となり、バンク内のすべての回路は待機状態となる。また、プリチャージ制御信号SApreは、いずれかのバンクが選択されたとき(信号RSn,CSnがともに“1”になるとき)に出力される。
【0039】
各ポートのリードアクセス許可信号SRnとライトアクセス許可信号SWnは、いずれかのバンク204が選択されたときに、リード/ライト信号R/Wnに従って出力される。ビットラインのためのプリチャージ制御信号SWpreは、いずれかのバンク204が選択されたときに出力される。
【0040】
また、バンク内の制御クロック信号CKintは、いずれかのバンク204が選択されたときに出力されるクロックの反転信号ckqである。また、バンク内の読み出し許可信号Rintと書き込み許可信号Wintは、いずれかのリードアクセス許可信号SRnまたはライトアクセス許可信号SWnとバンク内の制御クロック信号CKintが出力されるときに、出力される。アクセス競合回避回路210の出力PBnが1ポートとNポートの変換回路202に入力されることにより、バンク選択とアクセス競合処理が並列に処理可能となり、高速動作に効果がある。また、クロックの反転信号ckqからバンク内信号CKintを生成し、選択されたバンクのデコーダのみを動作させることにより、低消費電力化にも高い効果がある。
【0041】
図8に示すアクティブアドレス選択回路2020は、アドレススイッチ許可信号SAnによりアクセスが許可されたポートnのアドレスAnを、バンク内のワードラインデコーダとビットラインデコーダに転送する。アクティブアドレス選択回路2020は、グローバル配線(第2階層)からバンクへ転送する信号をアドレススイッチ許可信号SAnにより制御するスイッチ回路として小面積のNMOSトランスミッションゲートを用いている。これにより、グローバル配線の負荷容量を減少させることが可能となり、回路の高速化・低消費電力化に対して高い効果が得られる。また、バンク側に、プリチャージ回路として、直列に接続された2個のインバータと、プリチャージ制御信号SApreにより動作する伝送ゲートが設けられる。
【0042】
図9に示すアクティブデータ選択回路2022も、同様に、各ポートのリードアクセス許可信号SRnとライトアクセス許可信号SWnを用い、バンク内のデータ信号線Dint,outまたはDint,inにアクセスが許可されたポートのデータ線Dnを接続する。入力(データ書き込み)側の場合、ライトアクセス許可信号SWnに従って、小面積のNMOSトランスミッションゲートを動作させる。さらに、バンク内のデータ信号線Dint,inの側(書き込みデータ側)に、プリチャージ回路として、直列に接続された2個のインバータと、プリチャージ制御信号SWpreにより動作する伝送ゲートが設けられる。出力(データ読み出し)側の場合、ライトアクセス許可信号SWnに従って、トライステートバッファを動作させて、バンク内のデータ信号線Dint,outをポートのデータ線Dnに接続する。このように、データ書き込み部分とデータ読み出し部分とが分離されている。
【0043】
図10は、ダイナミックCMOS回路を用いた同期HMAメモリを示す。ダイナミックCMOS回路は、同期回路を高速に動作させるために、高性能を求められる回路に用いられている技術である。スタティックCMOSによる回路(図5)との相違点は、アクセス競合回避回路310やバンク内のポート変換回路302にグローバルクロック信号ckが入力されており、そのクロック信号により、ダイナミック回路やラッチ回路を制御している点である。
【0044】
ダイナミックCMOS回路によるHMAメモリは、図5に示したスタティックCMOS回路によるHMAメモリの構成と同様に、第1階層モジュール300、列バンク選択回路306、行バンク選択回路308及びアクセス競合回避回路310で構成される。第1階層モジュール300とは、1ポートとNポートの変換回路(1:N変換回路)302を1ポートバンク304とともにモジュール化したものである。複数の第1階層モジュール300がマトリクス状に配置される。列バンク選択回路306と行バンク選択回路308は、それぞれ列方向と行方向にバンクを選択する。さらに、内部クロック生成器312とレジスタ・バッファ回路314が設けられる。内部クロック生成器312は、グローバルクロックから内部クロックck, ckqを生成し、レジスタ・バッファ回路314、アクセス競合回避回路310及び第1階層モジュール300に供給する。レジスタ・バッファ回路314は、外部から、アドレス信号A、データ信号D、リード・ライト信号R/Wを受け取って列バンク選択回路306に送り、また、アクセス競合回避回路310に、アドレス信号Aのうちのバンクアドレスを示す部分(上位アドレス)を送る。また、レジスタ・バッファ回路312は、リード/ライト信号R/Wを各々の第1階層モジュール300にも送る。第1階層モジュール300のバンク304内は、1ポートバンク領域のワードラインドライバ、ビットラインセレクタ、センスアンプ回路、1ポートメモリセルを含む。行バンク選択回路308と列バンク選択回路306がそれぞれ生成するバンク行選択信号RSnとバンク列選択信号CSnは、各ポートから入力されたアドレスの中の、バンクのアドレスを示す部分(m2ビット)をデコードした信号であり、RSnとCSnとがともに選択されたバンク304が、そのポートnのデータDnがアクセスするバンクとなる。データDnはリード/ライト信号R/Wに従ってバンクから読み出されまたはバンクに書き込まれる。
【0045】
図11は、1ポートとNポートの変換回路302を示す。1ポートとNポートの変換回路302は、アドレスをスイッチングするアクティブアドレス選択回路3020と、データをスイッチングするアクティブデータ選択回路3022、及び、それらの制御を行うバンクアクセス制御(Bank Enable)回路3024からなる。スタティックCMOSによる1ポートとNポートの変換回路との相違点は、ダイナミック回路やラッチ回路を制御するためにグローバルクロック信号ckが入力されることである。バンクアクセス制御(Bank Enable)回路3024には、クロックの反転信号ckqとポートブロック信号PBnのほかに、クロック信号ckが入力される。また、アクティブアドレス選択回路3020とアクティブデータ選択回路3022には、クロック信号ckが入力される。
【0046】
図12に示すバンクアクセス制御回路3024では、図7に示すバンクアクセス制御回路2024と同様に、各ポートのリード/ライト信号R/Wn、行・列選択信号RSn、CSn、ポートブロック信号PBnから、アドレススイッチ許可信号SAn、アクティブアドレス選択回路のビットラインのためのプリチャージ制御信号SApreを生成して、アクティブアドレス選択回路3020に送り、また、各ポートのリードアクセス許可信号SRnとライトアクセス許可信号SWn、及び、アクティブデータ選択回路のビットラインのためのプリチャージ制御信号SWpreを生成して、アクティブデータ選択回路3022に送り、また、バンク内の読み出し許可信号Rintと書き込み許可信号Wint、及び、バンク内の制御クロック信号CKintを生成する。ダイナミック回路として、バンク内の読み出し許可信号Rintと書き込み許可信号Wintを生成する回路に使用されているダイナミックORゲートのような、多入力ゲートに用いると特に効果的である。
【0047】
図13に示すアクティブアドレス選択回路3020は、図8に示すアクティブアドレス選択回路2020と同様に、アドレススイッチ許可信号SAnによりアクセスが許可されたポートのアドレスを転送する。アクティブアドレス選択回路3020は、グローバル配線(第2階層)からバンクへ転送する信号を制御するスイッチ回路として小面積のNMOSトランスミッションゲートを用いている。これにより、グローバル配線の負荷容量を減少させることが可能となり、回路の高速化・低消費電力化に対して高い効果が得られる。また、バンク側に、プリチャージ回路として、直列に接続された2個のインバータと、プリチャージ制御信号SApreにより動作する伝送ゲートが設けられる。
【0048】
図14に示すアクティブデータ選択回路3022も、同様に、各ポートのリードアクセス許可信号SRnとライトアクセス許可信号SWnを用い、バンク内のデータ信号線Dint,outまたはDint,inにアクセスが許可されたポートのデータ線を接続する。1ポートメモリへデータを送る回路と、列選択回路へデータを送る回路とが分離されている。アクティブデータ選択回路3022は、アクティブアドレス選択回路3020と同様に、グローバル配線(第2階層)からバンクへ転送する信号を制御するスイッチ回路として小面積のNMOSトランスミッションゲートを用いている。そして、書き込みデータ側に、外部クロックckで制御されるプリチャージ回路とラッチ回路が設けられる。
【0049】
これらの回路の図7〜図9に示す回路との1つの相違点はラッチ回路を用いることであるが、ラッチ回路は、信号ckで動作し、ダイナミック回路がプリチャージ期間に入った際、出力データを保持する。そのため、ラッチ回路の位置はダイナミック回路を使用する箇所により制限を受けること(ラッチ回路以降にダイナミック回路は使用不可)以外は、ある程度の融通性がある。このラッチ回路の位置により、メモリのプリチャージ期間にオーバラップさせることのできる処理が決定する。ただし、ラッチ回路の数と電力消費はトレードオフの関係にある。
【0050】
(C)同期式クロスバ型多ポートメモリへの適用.
図2に示す多ポートメモリにおいて、スイッチングネットワーク102にクロスバスイッチングネットワークを用いたものをクロスバ型多ポートメモリという。クロスバスイッチングネットワークは、閉塞網であり、アクセスの競合はバンク以外では起こらない。
【0051】
図15は、クロスバ型多ポートメモリの構成を示す。複数の1ポートバンク400がクロスバスイッチングネットワーク402を介してN個のポートのいずれかに接続される。クロスバスイッチングネットワーク402におけるクロスポイント404は、ポート400とバンク400のスイッチングを行う回路であり、各バンクに対してポート数分必要である。また、1つの1ポートバンク400に対応する複数のクロスポイントをまとめた部分406は、HMAメモリの1ポートとNポートの変換回路と同様に、1ポートとNポートの変換を行っている。なお、図示しないが、図4に示した多ポートメモリの場合と同様に、バッファ、衝突処理回路及び内部クロック生成回路が設けられ、同様の動作をする。
【0052】
図16に示す例では、クロスポイント404は、トライステートインバータ、制御回路及びバンクデコーダからなる。トライステートインバータは、バンクアドレス、書き込み許可信号及びポートブロック信号を基に生成される活性化信号EN、ENqに応じて、アドレス、データ及び書き込み許可信号を通す。
【0053】
図17は、図15に示したクロスバ型多ポートメモリにおいて、本発明のアクセス方式を適用した場合の読出しと書込みアクセスを詳細に示す。バンク400のプリチャージ期間にアクセス競合処理、及び、バンクとポートの選択をオーバラップさせることにより、メモリアクセスサイクル時間の短縮が可能となる。
【0054】
読み出しの場合、クロックサイクルの前半(ck=1)で、クロスバスイッチングネットワーク402でのバンク選択とバンク400の中でのデコードとバンク400のプリチャージを行う。すなわち、レジスタ及びバッファ回路への入力信号がスイッチングネットワーク402とアクセス競合回避回路106に並列に送られ、スイッチングネットワーク402内でバンクデコードとクロスポイントでの1ポートとNポートの変換(アドレス)が行われ、さらに、バンク100内でデコーダが動作する。
【0055】
次に、クロックサイクルの後半(ck=0)でバンク400内のアクセス(読み出し)とポートへのデータ転送を行う。バンク400内で、ワードラインドライバとビットラインセレクタによりワードラインを動作させ、1ポートセル領域でセンス増幅回路を動作させる。メモリセルから読み出されたデータは、スイッチングネットワーク402内のクロスポイント(データ)、データバス、レジスタ及びバッファ回路内の出力回路を経て出力される。
【0056】
書き込みの場合、クロック信号が供給されると、クロックサイクルの前半(ck=1)で、読み出しの場合と同様に、スイッチングネットワーク402でのバンク選択とバンク400の中でのデコードとバンク400のプリチャージを行うが、これと並行して、書き込まれるデータが、レジスタ及びバッファ回路404からスイッチングネットワーク402内でのクロスポイント(データ)をとおり、バンク400に送られる。
【0057】
次に、クロックサイクルの後半(ck=0)でバンク400内のアクセス(書き込み)を行う。すなわち、バンク400内で、データドライバを動作させて、1ポートメモリセル領域でデータを書き込む。
【0058】
クロスバ型多ポートメモリやHMA以外の同期バンク型多ポートメモリにも、HMAと同様にダイナミックCMOS回路が利用できる。図18は、その場合のメモリのブロック図を示す。図2との違いは、クロスバスイッチにダイナミックCMOS回路を利用するために、スイッチングネットワークにクロック信号ckが入力されている点のみである。図18に示すメモリにおいて、1ポートバンク500、スイッチングネットワーク502、レジスタ・バッファ回路504、アクセス競合回避回路506、内部クロック生成器508は、それぞれ、図2に示すメモリの対応回路と同様に動作し、図2との違いは、クロスバスイッチにダイナミックCMOS回路を利用するために、スイッチングネットワークにクロック信号ckが入力されている点のみである。
【0059】
クロスバ型多ポートメモリにおけるクロスポイントは、先に述べた通り、バンク毎にみると、HMAの1ポートとNポートの回路と等しいために、HMAメモリで用いた図6〜図9の1:N変換回路、及び、図11〜図14の1:N変換回路をほとんどそのまま利用できる。しかしその場合には、バンク側には、その入出力信号の送受信を行うための付加回路が必要となる。図19と図20は、それぞれ、クロスポイントにスタティックCMOSを用いた場合とダイナミックCMOSを用いた場合の付加回路を示す。図20の回路について、HMAと同様にラッチ回路の位置はある程度の融通性があり、また、そのラッチ回路の位置により、プリチャージ期間にオーバラップさせて行う処理が決まる。(なお、1ポートHMAメモリの場合は、信号CS,RSのAND出力を信号Sの代わりに出力すればよい。)
【0060】
(D)同期分散クロスバ型多ポートメモリへの適用.
分散クロスバ型多ポートメモリは、クロスバ構造多ポートメモリのクロスバを、バンクのクラスタ毎に分割したものである。このクラスタをバンク単位まで分割すると、HMAと等しい構造となる。そのため、分散クロスバ型は、クロスバ型とHMA型の中間の多ポートメモリを表現する構造であるといえる。
【0061】
図21と図22に、それぞれ、スタティックCMOS回路とダイナミックCMOS回路を用いた分散クロスバ型多ポートメモリの構成を示す。図21と図22の例では、クラスタを列毎のバンクで分割している。また、図21と図22中のクロスバスイッチングネットワークの回路には、クロスバ型多ポートメモリとほぼ同じ回路を利用できる。
【0062】
図21に示すスタティックCMOS回路を用いた分散クロスバ型多ポートメモリは、1ポートバンク600、複数のクロスバネットワーク602、バンク選択回路604及びアクセス競合回避回路606で構成される。複数のバンクが列ごとに分割され、クロスバスイッチングネットワーク602に接続される。バンク選択回路604の出力信号RSnは、それぞれ対応するクロスバスイッチングネットワーク602に入力される。さらに、内部クロック生成器608とレジスタ・バッファ回路610が設けられる。内部クロック生成器608は、グローバルクロックから内部クロックckqを生成し、各バンク600に供給する。レジスタ・バッファ回路610は、外部から、アドレス信号A、データ信号D、リード/ライト信号R/Wを受け取ってクロスバスイッチングネットワーク602に送り、また、アクセス競合回避回路606に、アドレス信号Aのうちのバンクアドレスを示す部分(上位アドレス)を送る。また、レジスタ・バッファ回路610は、リード/ライト信号R/Wnを対応するクロスバスイッチングネットワーク602に送る。バンク200内は、1ポートバンク領域のワードラインドライバ、ビットラインセレクタ、センスアンプ回路、1ポートメモリセルを含む。データDnはリード/ライト信号R/Wに従ってバンクから読み出されまたはバンクに書き込まれる。
【0063】
図22に示すダイナミックCMOS回路を用いた分散クロスバ型多ポートメモリにおいて、1ポートバンク700、複数のクロスバスイッチングネットワーク702、バンク選択回路704及びアクセス競合回避回路706、内部クロック生成器708とレジスタ・バッファ回路710は、図21に示すスタッティックCMOS回路を用いた分散クロスバ型多ポートメモリの対応回路と同様な構成を備えるが、ダイナミックCMOS回路を用いるため、クロックckが1ポートバンク700と各クロスバスイッチングネットワーク702に入力される。
【0064】
図21と図22に示した分散クロスバ型多ポートメモリでは、バンクの2次元配列に対し、複数のクロスバスイッチングネットワークが配置される。1つのクロスバスイッチングネットワーク602、702が1列のバンク600、700に接続されていて、バンク選択回路604が、クロスバスイッチングネットワーク602に選択信号を出力する。しかし、より一般的には、2次元以上のクラスタ配列も可能である。たとえば、1つのクロスバスイッチングネットワーク602、702と1列のバンク600、700について、HMAメモリと同様に、1:N変換回路を各バンクに設けて2段階でデコードしてもよい。これにより、配線の容易なレイアウトが実現できる。さらに多段階でデコードすることもでき、その場合トランジスタの数を減らせる。
【0065】
(E)アクセス競合回避回路とワードラインデコーダのダイナミックCMOS回路化とラッチ回路.
ここでは、全ての同期バンク型多ポートメモリに利用可能な、ダイナミックCMOS回路を利用したアクセス競合回避回路とワードラインデコーダについて述べる。同期バンク型多ポートメモリでは、従来のスタティックCMOS回路によるワードラインデコーダやアクセス競合回避回路(非特許文献3参照)を用いることもできる。
【0066】
図23に示すように、アクセス競合回避回路は、すべてのポート同士の組み合わせに対してアドレスの比較を行い、i番目のポートとj番目のポートがアクセスしたメモリのアドレスが競合していることを示すアクセス競合検知信号Ci, jを生成するアクセス競合検知回路と、Ci, jからi番目のポートをブロッキングする信号PBiを生成するアクセス制御回路で構成される。なお、ポートブロック信号PBiは、競合が起こった時、PBi = ”0”となるように設計している。
【0067】
図24と図25は、今回新たに発明したダイナミックCMOS回路によるアクセス競合回避回路を示す。これらは、回路構成が単純であり、ポート数の拡張性にも優れ、小面積かつ高速動作を実現する。
【0068】
図24のアクセス競合検知回路は、ダイナミックCMOS回路により構成したマルチインプットEXNORを採用している。入力アドレス信号Aiの反転信号Aqiは、バンクセレクタのデコーダ部で既に生成されている信号であるため、Aqiの生成はオーバヘッドにはならない。出力信号Ci,jは、入力信号Ai=Ajのときに“0”となり、その他の場合に“1”となる。
【0069】
また、図25のアクセス制御回路は、常にポート番号iの小さい方にアクセスの優先権を与えるPIH (Port−Importance−Hierarchy)アルゴリズム(非特許文献3参照)を用いた場合に用いる。この回路において、Ci, jとポート非活性化信号 PEqiとのOR演算と、そのすべてのOR演算結果のAND演算を同時に行っている。PEqiを用いることにより、実際にはアクセスが行われていないポートによるアクセス競合の発生を防ぐ。このPEqiによる制御は、従来型のスタティックCMOS回路でも、Ci, jとPEqiのAND演算の結果をアクセス制御回路の入力信号とすることで実現できる。
【0070】
図26には、フェアアルゴリズム(非特許文献3参照)を採用した場合のアクセス制御回路を示している。フェアアルゴリズムには、PIHアルゴリズムによるアクセス制御回路を、ポート番号の小さいポートにアクセスの優先権を与えるものと、ポート番号の大きなポートにアクセスの優先権を与えるものの2種類が用意されており、その出力をセレクタにより選択する。そのため、図25で用いた、アクセス競合検知回路の出力信号Ci, jとポート非活性化信号PEqiとのOR演算と、そのすべてのOR演算結果に対してAND演算を行う回路はそのまま利用可能である。
【0071】
ポート変換回路にスタティックCMOS回路を用い、アクセス競合回避回路にダイナミックCMOS回路を用いる場合には、評価期間の出力信号PBiをラッチする必要がある。そのため、この場合には、PBiの出力ノードにラッチ回路を付加する必要がある。
【0072】
また、図27と図28は、本発明で使用するバンク内のワードラインデコーダの例を示す。図27は1段のNORゲートで、図28はそれを多段(2段)で構成したものである。後者では多段構成によりトランジスタ数を減少できる。図27、図28ともに、バンクのプリチャージ期間には、出力は”0”となるように設計している。
【0073】
図29は、ダイナミックCMOS回路を用いた場合に必要なラッチ回路の構成例を示す。ここで、(a)はスタティックCMOS回路によるラッチ回路であり、(b)と(c)は、ストレージノードの電荷を利用したダイナミックラッチ回路である。
【0074】
なお、当業者に容易に理解されるように、この発明の以上に説明した種々の実施形態における構成要素は、種々の種類の同期バンク型メモリについて可能な限り組み合わせることができる。
【0075】
【発明の効果】
各種の同期バンク型メモリ(HMAメモリ、クロスバ型メモリ、分散クロスバ型メモリなど)において、多ポートメモリの場合も1ポートメモリの場合も、メモリアクセスサイクル時間を短縮できる。
【図面の簡単な説明】
【図1】バンク型メモリへのアクセスを説明するための図
【図2】多ポートのバンク型メモリの概念を示す図
【図3】一般的なバンク型メモリにおける読み出しと書きこみのアクセスを示す図
【図4】HMAメモリにおける本発明のアクセス手法を用いた場合の読み出しと書き込みのアクセスを示す図
【図5】スタティックCMOS回路によるHMAメモリの概念を示す図
【図6】スタティックCMOS回路による1ポートとNポートの変換回路図
【図7】スタティックCMOS回路によるバンクアクセス制御回路の回路図
【図8】スタティックCMOS回路によるアクティブアドレス選択回路の回路図
【図9】スタティックCMOS回路によるアクティブデータ選択回路の回路図
【図10】ダイナミックCMOS回路によるHMAの概念を示す図
【図11】ダイナミックCMOS回路による1ポートとNポートの変換回路図
【図12】ダイナミックCMOS回路によるバンクアクセス制御回路の回路図
【図13】ダイナミックCMOS回路によるアクティブアドレス選択回路の回路図
【図14】ダイナミックCMOS回路によるアクティブデータ選択回路の回路図
【図15】クロスバ型多ポートメモリの概念を示す図
【図16】クロスポイントの図
【図17】クロスバ型多ポートメモリの場合の読出と書き込みのアクセスを示す図
【図18】ダイナミックCMOS回路による同期バンク型多ポートメモリHMAの概念を示す図
【図19】クロスバスイッチにスタティックCMOS回路を用いた場合のバンク側付加回路の図
【図20】クロスバスイッチにダイナミックCMOS回路を用いた場合のバンク側付加回路の図
【図21】スタティックCMOS回路による同期分散クロスバ型多ポートメモリの構成を示す図
【図22】ダイナミックCMOS回路による同期分散クロスバ型多ポートメモリの構成を示す図
【図23】アクセス競合回避回路の図
【図24】ダイナミックCMOS回路によるアクセス競合回避回路の図
【図25】ダイナミックCMOS回路によるアクセス競合回避回路の図
【図26】フェアアルゴリズムを採用した場合のアクセス制御回路の図
【図27】バンク内のNOR型1段ワードラインデコーダの図
【図28】バンク内のNAND型2段ワードラインデコーダの図
【図29】ダイナミックCMOS回路を用いた場合に必要なラッチの回路図
【符号の説明】
100 1ポートバンク、 102 スイッチングネットワーク102、 104 レジスタ・バッファ回路、 106 アクセス競合回避回路、 108 内部クロック生成器、 200 第1階層モジュール、 206 バンク列選択回路、 208 バンク行選択回路、 210 アクセス競合回避回路、 214 内部クロック生成器、 300 第1階層モジュール、 302 1:N変換回路、 304 1ポートバンク、 306 列バンク選択回路、 308 行バンク選択回路、 310 アクセス競合回避回路、 314 内部クロック生成器、 400 1ポートバンク、 402 クロスバスイッチングネットワーク、 404 クロスポイント、 406 1つの1ポートバンクに対応する複数のクロスポイントをまとめた部分、 500 1ポートバンク、 502 スイッチングネットワーク、 504 レジスタ・バッファ回路、 506 アクセス競合回避回路、 508 内部クロック生成器、 600 1ポートバンク、 602 クロスバスイッチングネットワーク、 604 バンク選択回路、 606 アクセス競合回避回路、 608 内部クロック生成器。
Claims (15)
- 複数の1ポートメモリセルを含むバンクと1ポートとNポートとの変換を行うポート変換回路とをそれぞれ含む複数の第1階層モジュールと、
内部クロック信号を発生するクロック生成回路と、
外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力、入力されるポートブロック信号の外部への出力を行うレジスタ回路と、
レジスタ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生するアクセス競合回避回路と、
レジスタ回路と複数のバンクの間に配置され、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、レジスタ回路または複数のバンクからデータ信号を受け取り、アドレス信号を基にバンク列選択信号を生成してバンクに出力し、かつ、クロック生成回路からの内部クロック信号を選択されたバンクに出力するバンク列選択回路と、
レジスタ回路からアドレス信号を受け取り、アドレス信号を基にバンク行選択信号を生成してバンクに出力するバンク行選択回路とからなり、
前記のポート変換回路は、アクセス競合回避回路からのポートブロック信号がない場合に、バンク列選択信号とバンク行選択信号を基にバンクを活性化する
同期バンク型メモリ。 - スタティックCMOS回路で構成され、
前記のポート変換回路は、アドレスを選択するアクティブアドレス選択回路と、データを選択するアクティブデータ選択回路と、アクティブアドレス選択回路とアクティブデータ選択回路とを制御するバンクアクセス制御回路とからなり、
バンクアクセス制御回路は、各ポートのリード/ライト信号、行・列選択信号およびポートブロック信号から、アドレススイッチ許可信号とアクティブアドレス選択回路のビットラインのためのプリチャージ制御信号とを生成して、アクティブアドレス選択回路に送り、また、各ポートのリードアクセス許可信号とライトアクセス許可信号、及び、アクティブデータ選択回路のビットラインのためのプリチャージ制御信号を生成して、アクティブデータ選択回路に送り、また、クロック生成回路からの内部クロック信号を基にバンク内の制御クロック信号を生成することを特徴とする請求項1に記載された同期バンク型メモリ。 - ダイナミックCMOS回路を含み、アクセス競合回路及びポート変換回路は前記の内部クロック信号を入力して、アクセス競合回路及びポート変換回路内のダイナミック回路と、ダイナミック回路がプリチャージ期間に入ったときに出力データを保持するラッチ回路を制御することを特徴とする請求項1に記載された同期バンク型メモリ。
- 前記のポート変換回路は、
アドレスを選択するアクティブアドレス選択回路と、データを選択するアクティブデータ選択回路とアクティブアドレス選択回路とアクティブデータ選択回路とを制御するバンクアクセス制御回路とからなり、
前記のバンクアクセス制御回路は、各ポートのリード/ライト信号、行・列選択信号およびポートブロック信号から、アドレススイッチ許可信号とアクティブアドレス選択回路のビットラインのためのプリチャージ制御信号とを生成して、アクティブアドレス選択回路に送り、また、各ポートの読み出し許可信号と書き込み許可信号、及び、アクティブデータ選択回路のビットラインのためのプリチャージ制御信号を生成して、アクティブデータ選択回路に送り、また、クロック生成回路からのクロック信号を基にバンク内の制御クロック信号を生成することを特徴とする請求項3に記載された同期バンク型メモリ。 - 前記のアクティブアドレス選択回路は、アドレス信号をバンクに出力するゲートとして、NMOSトランスミッションゲートを用いることを特徴とする請求項4に記載された同期バンク型メモリ。
- アクティブデータ選択回路は、データ信号をバンクに出力するゲートとして、NMOSトランスミッションゲートを用いることを特徴とする請求項4に記載された同期バンク型メモリ。
- 前記のアクセス競合回避回路は、ダイナミックCMOS回路により構成したマルチインプットEXNOR回路を含み、このEXNOR回路は、各ポートからのアドレス信号及びその反転信号を入力し、i番目のポートとj番目のポートのアドレスが競合しているか否かを示す信号を生成することを特徴とする請求項3に記載された同期バンク型メモリ。
- 前記のアクセス競合回避回路は、i番目のポートとj番目のポートのアドレスが競合しているか否かを示す信号とポート非活性化信号とのOR演算回路と、そのすべてのOR演算結果のAND演算回路と、AND演算結果をポートブロック信号として出力する出力回路を備えることを特徴とする請求項3に記載された同期バンク型メモリ。
- 前記のアクセス競合回避回路は、ポート番号の小さいポートにアクセスの優先権を与える回路と、ポート番号の大きいポートにアクセスの優先権を与える回路と、そのいずれかを選択してポートブロック信号を出力する選択回路とを備えることを特徴とする請求項3に記載された同期バンク型メモリ。
- それぞれ複数の1ポートメモリセルを含む複数のバンクと、
内部クロックを発生するクロック生成回路と、
外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力、入力されるポートブロック信号の外部への出力を行うレジスタ回路と、
レジスタ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生するアクセス競合回避回路と、
レジスタ回路と複数のバンクの間に配置され、複数のポートに接続されるラインと各バンクからの信号ラインとの交点であるクロスポイントでスイッチングを行うクロスバスイッチングネットワークであって、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、レジスタ回路または複数のバンクからデータ信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、アドレス信号を基にクロスポイントを活性化し、かつ、クロック生成回路からのクロック信号をバンクに出力するクロスバスイッチングネットワーク
からなる同期バンク型メモリ。 - それぞれ複数の1ポートメモリセルを含む複数のバンクと、
内部クロック信号を発生するクロック生成回路と、
外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力、入力されるポートブロック信号の外部への出力を行うレジスタ回路と、
レジスタ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生するアクセス競合回避回路と、
複数のクラスタに分けられている前記の複数のバンクについて、レジスタ回路と複数のクラスタとの間にそれぞれ配置される複数のクロスバスイッチングネットワークとからなり、
各クロスバスイッチングネットワークは、複数のポートに接続されるラインと1つのクラスタに属するバンクからの信号ラインとの交点であるクロスポイントでスイッチングを行う複数のクロスバスイッチングネットワークであって、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、レジスタ回路または複数のバンクからデータ信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、アドレス信号を基にクロスポイントを活性化し、かつ、クロック生成回路からのクロック信号をバンクに出力する
同期バンク型メモリ。 - それぞれ複数の1ポートメモリセルを含む複数のバンクと、
内部クロック信号を発生するクロック生成回路と、
外部のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力、入力されるポートブロック信号の外部への出力を行うレジスタ回路と、
レジスタ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生するアクセス競合回避回路と、
レジスタ回路と複数のバンクの間に配置され、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、アクセス競合回避回路からのポートブロック信号がない場合に、バンク選択信号を生成して選択されたバンクを活性化し、かつ、クロック生成回路からのクロック信号をバンクに出力するネットワーク回路からなる同期バンク型メモリ。 - それぞれ複数の1ポートメモリセルを含む複数のバンクと、
内部クロックを発生するクロック生成回路と、
外部の1つのポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部の1つのポートからの入力または出力を行うレジスタ回路と、
レジスタ回路と複数のバンクの間に配置され、レジスタ回路からリード/ライト信号とアドレス信号を受け取り、バンク選択信号を生成して選択されたバンクを活性化し、かつ、クロック生成回路からのクロック信号をバンクに出力するネットワーク回路
からなる同期バンク型メモリ。 - それぞれ複数の1ポートメモリセルを含む複数のバンクと、内部クロックを発生するクロック生成回路と、外部の複数のポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力を行うレジスタ・バッファ回路と、レジスタ・バッファ回路からアドレス信号を受け取って、バンクへのアクセスの競合が起こる場合にポートブロック信号を発生するアクセス競合回避回路と、レジスタ回路と複数のバンクの間に配置されるネットワーク回路とからなる同期バンク型メモリへのアクセス方法であって、
1つのクロックサイクルが開始されると、レジスタ・バッファ回路はスイッチングネットワーク回路にリード/ライト信号とアドレス信号を出力し、アクセス競合回路にアドレス信号を出力し、スイッチングネットワーク回路は、アクセス競合回避回路からのポートブロック信号がない場合にバンク選択信号を生成し、バンク選択信号が生成されると、選択されたバンクはプリチャージを行い、
クロック生成回路は、メモリ内部のクロック信号を発生し、
前記の選択されたブロックは、クロック生成回路からの内部クロック信号を受け取ると、バンク内のメモリセルへのアクセスを行い、データ読み出しの場合は、さらにポートへのデータ転送を行う
アクセス方法。 - それぞれ複数の1ポートメモリセルを含む複数のバンクと、内部クロック信号を発生するクロック生成回路と、外部の1つのポートからのリード/ライト信号とアドレス信号の入力、データ信号の外部のポートからの入力または出力を行うレジスタ・バッファ回路と、レジスタ・バッファ回路からアドレス信号を受け取って、レジスタ・バッファ回路と複数のバンクの間に配置されるスイッチングネットワーク回路とからなる同期バンク型メモリへのアクセス方法であって、
1つのクロックサイクルが開始されると、レジスタ・バッファ回路はスイッチングネットワーク回路にリード/ライト信号とアドレス信号を出力し、スイッチングネットワーク回路は、バンク選択信号を生成し、バンク選択信号が生成されると、選択されたバンクはプリチャージを行い、
クロック生成回路は、メモリ内部のクロック信号を発生し、
前記の選択されたブロックは、クロック生成回路からの内部クロック信号を受け取ると、バンク内のメモリセルへのアクセスを行い、データ読み出しの場合は、さらにポートへのデータ転送を行う
アクセス方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003167989A JP4256210B2 (ja) | 2003-06-12 | 2003-06-12 | 同期バンク型メモリ |
US10/787,240 US7117291B2 (en) | 2003-06-12 | 2004-02-27 | Memory with synchronous bank architecture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003167989A JP4256210B2 (ja) | 2003-06-12 | 2003-06-12 | 同期バンク型メモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005004895A true JP2005004895A (ja) | 2005-01-06 |
JP4256210B2 JP4256210B2 (ja) | 2009-04-22 |
Family
ID=34093625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003167989A Expired - Fee Related JP4256210B2 (ja) | 2003-06-12 | 2003-06-12 | 同期バンク型メモリ |
Country Status (2)
Country | Link |
---|---|
US (1) | US7117291B2 (ja) |
JP (1) | JP4256210B2 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010514018A (ja) * | 2006-12-22 | 2010-04-30 | モサイド・テクノロジーズ・インコーポレーテッド | 独立リンクおよびバンク選択 |
JP2011512598A (ja) * | 2008-02-19 | 2011-04-21 | マイクロン テクノロジー, インク. | チップ上にネットワークを有するメモリ・デバイスの方法、装置、及びシステム |
KR101077215B1 (ko) | 2005-02-07 | 2011-10-27 | 삼성전자주식회사 | 듀얼 포트 메모리 장치 |
US8654601B2 (en) | 2005-09-30 | 2014-02-18 | Mosaid Technologies Incorporated | Memory with output control |
US8743610B2 (en) | 2005-09-30 | 2014-06-03 | Conversant Intellectual Property Management Inc. | Method and system for accessing a flash memory device |
US9047991B2 (en) | 2008-09-11 | 2015-06-02 | Micron Technology, Inc. | Methods, apparatus, and systems to repair memory |
US9123552B2 (en) | 2010-03-30 | 2015-09-01 | Micron Technology, Inc. | Apparatuses enabling concurrent communication between an interface die and a plurality of dice stacks, interleaved conductive paths in stacked devices, and methods for forming and operating the same |
US9240227B2 (en) | 2005-09-30 | 2016-01-19 | Conversant Intellectual Property Management Inc. | Daisy chain cascading devices |
US9524254B2 (en) | 2008-07-02 | 2016-12-20 | Micron Technology, Inc. | Multi-serial interface stacked-die memory architecture |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100818650B1 (ko) * | 2005-09-28 | 2008-04-01 | 주식회사 하이닉스반도체 | 멀티포트 메모리 장치 |
US8533435B2 (en) * | 2009-09-24 | 2013-09-10 | Nvidia Corporation | Reordering operands assigned to each one of read request ports concurrently accessing multibank register file to avoid bank conflict |
US8782339B2 (en) | 2010-10-11 | 2014-07-15 | Open Invention Network, Llc | Storage system having cross node data redundancy and method and computer readable medium for same |
US9218564B2 (en) * | 2012-07-30 | 2015-12-22 | International Business Machines Corporation | Providing transposable access to a synapse array using a recursive array layout |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
EP3729289A4 (en) * | 2017-12-22 | 2021-03-03 | Alibaba Group Holding Limited | MEMORY DEVICE AND ASSOCIATED CONTROL PROCEDURE |
CN108549751A (zh) * | 2018-03-28 | 2018-09-18 | 湖南融创微电子有限公司 | 寄存器矩阵的布局方法 |
US11301546B2 (en) | 2018-11-19 | 2022-04-12 | Groq, Inc. | Spatial locality transform of matrices |
US10839478B2 (en) * | 2019-04-08 | 2020-11-17 | Intel Corporation | Accumulator pooling mechanism |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609174B1 (en) * | 1999-10-19 | 2003-08-19 | Motorola, Inc. | Embedded MRAMs including dual read ports |
US7120761B2 (en) * | 2000-12-20 | 2006-10-10 | Fujitsu Limited | Multi-port memory based on DRAM core |
US6877071B2 (en) * | 2001-08-20 | 2005-04-05 | Technology Ip Holdings, Inc. | Multi-ported memory |
US7194568B2 (en) * | 2003-03-21 | 2007-03-20 | Cisco Technology, Inc. | System and method for dynamic mirror-bank addressing |
-
2003
- 2003-06-12 JP JP2003167989A patent/JP4256210B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-27 US US10/787,240 patent/US7117291B2/en not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101077215B1 (ko) | 2005-02-07 | 2011-10-27 | 삼성전자주식회사 | 듀얼 포트 메모리 장치 |
US9230654B2 (en) | 2005-09-30 | 2016-01-05 | Conversant Intellectual Property Management Inc. | Method and system for accessing a flash memory device |
US8654601B2 (en) | 2005-09-30 | 2014-02-18 | Mosaid Technologies Incorporated | Memory with output control |
US8738879B2 (en) | 2005-09-30 | 2014-05-27 | Conversant Intellectual Property Managament Inc. | Independent link and bank selection |
US8743610B2 (en) | 2005-09-30 | 2014-06-03 | Conversant Intellectual Property Management Inc. | Method and system for accessing a flash memory device |
US9240227B2 (en) | 2005-09-30 | 2016-01-19 | Conversant Intellectual Property Management Inc. | Daisy chain cascading devices |
JP2012178190A (ja) * | 2006-12-22 | 2012-09-13 | Mosaid Technologies Inc | 独立リンクおよびバンク選択 |
JP2010514018A (ja) * | 2006-12-22 | 2010-04-30 | モサイド・テクノロジーズ・インコーポレーテッド | 独立リンクおよびバンク選択 |
JP2011512598A (ja) * | 2008-02-19 | 2011-04-21 | マイクロン テクノロジー, インク. | チップ上にネットワークを有するメモリ・デバイスの方法、装置、及びシステム |
US9229887B2 (en) | 2008-02-19 | 2016-01-05 | Micron Technology, Inc. | Memory device with network on chip methods, apparatus, and systems |
US9524254B2 (en) | 2008-07-02 | 2016-12-20 | Micron Technology, Inc. | Multi-serial interface stacked-die memory architecture |
US9047991B2 (en) | 2008-09-11 | 2015-06-02 | Micron Technology, Inc. | Methods, apparatus, and systems to repair memory |
US9852813B2 (en) | 2008-09-11 | 2017-12-26 | Micron Technology, Inc. | Methods, apparatus, and systems to repair memory |
US10332614B2 (en) | 2008-09-11 | 2019-06-25 | Micron Technology, Inc. | Methods, apparatus, and systems to repair memory |
US9123552B2 (en) | 2010-03-30 | 2015-09-01 | Micron Technology, Inc. | Apparatuses enabling concurrent communication between an interface die and a plurality of dice stacks, interleaved conductive paths in stacked devices, and methods for forming and operating the same |
US9484326B2 (en) | 2010-03-30 | 2016-11-01 | Micron Technology, Inc. | Apparatuses having stacked devices and methods of connecting dice stacks |
Also Published As
Publication number | Publication date |
---|---|
US7117291B2 (en) | 2006-10-03 |
US20050125594A1 (en) | 2005-06-09 |
JP4256210B2 (ja) | 2009-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4256210B2 (ja) | 同期バンク型メモリ | |
US5204841A (en) | Virtual multi-port RAM | |
US7630230B2 (en) | Static random access memory architecture | |
US6351427B1 (en) | Stored write scheme for high speed/wide bandwidth memory devices | |
JPH07200383A (ja) | 複数ポートメモリシステムおよびデュアルポートメモリシステム | |
US5542067A (en) | Virtual multi-port RAM employing multiple accesses during single machine cycle | |
US9753667B2 (en) | High bandwidth memory and glitch-less differential XOR | |
KR100228339B1 (ko) | 읽기 포트와 쓰기 포트를 공유하는 다중포트 액세스 메모리 | |
US8390319B2 (en) | Programmable logic fabric | |
US6445645B2 (en) | Random access memory having independent read port and write port and process for writing to and reading from the same | |
JP2001243777A (ja) | スタティックランダムアクセスメモリ(sram)の密度を向上させるための分散型復号化システムおよび方法 | |
JPH065070A (ja) | シリアルアクセスメモリ | |
US6219283B1 (en) | Memory device with local write data latches | |
KR20010009561A (ko) | 늦은 라이트 타입 반도체 메모리 장치에서의 바이패스 동작 에러방지 및 사이클 타임구간 개선방법과 그에 따른 멀티플렉서 회로 | |
US11901006B2 (en) | Shiftable memory and method of operating a shiftable memory | |
EP0471932B1 (en) | Virtual multi-port ram | |
JP3729665B2 (ja) | 半導体装置 | |
JP3090104B2 (ja) | 半導体メモリ装置 | |
Nicol et al. | A scalable pipelined architecture for fast buffer SRAMs | |
US6901070B2 (en) | Dynamically programmable integrated switching device using an asymmetric 5T1C cell | |
US6442097B2 (en) | Virtual channel DRAM | |
EP0756283B1 (en) | Multi-port random access memory | |
Fukae et al. | Distributed against centralised crossbar function for realising bank-based multiport memories | |
Dickinson et al. | Application specific memories for ATM packet switching | |
JP2011146944A (ja) | プログラマブルデバイス回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061003 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061010 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061211 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080304 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080507 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081113 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20081222 |
|
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: 20090120 |
|
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: 20090129 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120206 Year of fee payment: 3 |
|
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: 20130206 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130206 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140206 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |