JPH09147563A - 複数ポートメモリ - Google Patents

複数ポートメモリ

Info

Publication number
JPH09147563A
JPH09147563A JP7310335A JP31033595A JPH09147563A JP H09147563 A JPH09147563 A JP H09147563A JP 7310335 A JP7310335 A JP 7310335A JP 31033595 A JP31033595 A JP 31033595A JP H09147563 A JPH09147563 A JP H09147563A
Authority
JP
Japan
Prior art keywords
access
bank
address
input port
output
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.)
Withdrawn
Application number
JP7310335A
Other languages
English (en)
Inventor
Masaru Tachibana
大 橘
Hisayuki Higuchi
久幸 樋口
Hiroyuki Mizuno
弘之 水野
Makoto Suzuki
鈴木  誠
Kenichi Osada
健一 長田
Koichiro Ishibashi
孝一郎 石橋
Toshinobu Shinpo
利信 新保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi ULSI Engineering Corp
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
Hitachi Ltd
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 Hitachi ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Priority to JP7310335A priority Critical patent/JPH09147563A/ja
Publication of JPH09147563A publication Critical patent/JPH09147563A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Static Random-Access Memory (AREA)

Abstract

(57)【要約】 【課題】 バンク分割と時分割アクセスを組合せ、時分
割アクセスの順番の最適化を図った複数ポートメモリを
提供すること。 【解決手段】 4ポートメモリを、4つのアドレス入力
ポート(10,11,12,13)と4つのデータ出力ポート(37,38,
85,86)および内部の1ポートSRAM回路で構成し、内
部の1ポートSRAM回路をバンク0(メモリセルアレ
イ420)とバンク1(メモリセルアレイ424)に分割する。
内部の1ポートSRAM回路への2つの(時分割の)ア
クセスを、パイプライン動作させて、4つのアドレス入
力ポートの受け付けたアクセスのうち、バンクが競合し
ない2つを選んで最初にアクセスし、残りの2つのアド
レスのアクセスを最初のアクセスから1/3サイクル遅
らせて開始する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は時分割可能な複数ポ
ートメモリに関し、特に、バンク分割と時分割アクセス
を組み合わせることにより、時分割アクセスの順番の最
適化を図った複数ポートメモリに関する。
【0002】
【従来の技術】CMOSマイクロプロセッサの分野にお
いては、従来から、スーパスケーラ等の並列処理技術の
導入や加工技術の微細化および回路的な工夫等により処
理性能の向上が試みられている。そして、既に4命令以
上の複数命令を同時発行できるマイクロプロセッサが発
表されており、今後も、性能向上の手法としてスーパス
ケーラ、VLIW(VLIW:Very Long Instructi
n Word)等の細粒度並列処理技術は重要な地位を占め
ると予想される。また、デバイスの微細化および回路的
な工夫により動作周波数および集積度の向上もすすめら
れており、既に動作周波数が200MHzから300M
Hzに達するCMOSマイクロプロセッサが発表されて
いる。これらの高性能マイクロプロセッサの最大性能を
引き出すためには、演算速度に見合った命令およびデー
タのメモリバンド幅を確保する必要があり、キャッシュ
メモリシステムによって如何に実効のメモリバンド幅を
大きくできるかが、マイクロプロセッサの実効性能の向
上の鍵となっている。このようなキャッシュメモリシス
テムの高性能化の要求に応える一つの方法として、メモ
リ回路の高速化を図ることが挙げられる。
【0003】メモリ回路の高速化の試みとして、同期回
路を用いたメモリのアクセス時間の短縮とウエーブパイ
プライン動作の実現が提案されている。例えば、同期式
の高速CMOS SRAM回路として、米国特許第4,98
5,643号明細書に開示された回路、あるいは、アイ イー
イー イー ジャーナル オブ ソリッドステイト サーキ
ッツ ボリューム26 ナンバー11 1991年 ページ1577-158
5(IEEE Journal of Solid-State Circuits ,Vol.26, N
o.11, November 1991, pp.1577-1585)に開示された回
路が知られている。この従来のセルフリセット回路は、
回路をパルス動作させることで、通常のCMOS回路に
比べ入力容量を1/2程度とし、高速化を達成してい
た。また、ウエーブパイプライン動作を取り入れること
で、実効チャネル長0.5μmのCMOSデバイスでア
クセス時間約4ns、サイクル時間2nsの同期式SR
AMが実現されていた。さらに、従来のセルフリセット
回路は、出力信号のリセットのためのパルス(リセット
パルス)を出力信号から作るため、信号の変化した回路
にのみリセットパルスが供給され、外部から一括してク
ロックを供給する方式のダイナミック回路に比べ無効な
クロックでの電力消費が少なく低消費電力化に有効であ
る。
【0004】メモリ回路の高速化の他の試みとしては、
例えば、アイ イー イー イー ジャーナル オブ ソリッ
ドステイト サーキッツ ボリューム30 ナンバー4 1995
年 ページ487-490(IEEE Journal of Solid-State Circ
uits ,Vol.30, No.4, April 1995, pp.487-490)に記載
された回路が知られている。この従来のCMOS SR
AM回路では、センス回路を2重化して安定なウエーブ
パイプライン動作を実現していた。
【0005】また、スーパスケーラプロセッサのように
同時に多数命令を発行できるマイクロプロセッサのキャ
ッシュメモリにおいては、同時発行命令数の増大に伴
い、キャッシュメモリにアクセスするload/store命令の
複数同時実行の要求が増している。この要求に応えるた
めにはキャッシュメモリのアクセスポートが複数必要と
なる。さらに、マルチプロセッサシステムのキャッシュ
メモリの一貫性を保証するためのスヌーププロトコルに
対応するためにもキャッシュのタグメモリは複数ポート
を備えることが望まれている。既に、複数ポートを備え
たキャッシュメモリを内蔵するマイクロプロセッサや複
数ポートを備えたキャッシュメモリチップが発表されて
いる。また、複数ポートを備えたメモリ(複数ポートメ
モリまたは多ポートメモリ)を実現する方法として、複
数ポートメモリセル自体を用いる方法、インタリーブに
よる方法(メモリを複数のバンクに分割し、それら複数
のバンクに対してインタリーブアクセスを行う方法)、
時分割アクセスを行うことにより擬似的に複数ポートメ
モリを実現する方法なども知られている。
【0006】以上述べたような複数ポートを備えたキャ
ッシュメモリチップの一つの例として、アイ エス エス
シー シー 1994年 ページ262-263(ISSCC, 1994, pp.2
62-263)に開示された3ポートメモリが知られている。
ここに開示された従来の3ポートメモリは、内部のCM
OS SRAM回路をパイプライン動作させることによ
って、サイクル時間15nsの期間に内部のCMOS
SRAM回路を3回アクセス(時分割アクセス)し、1
ポートメモリセルを用いて、擬似的な3ポートメモリを
実現したものである。この場合、1ポートメモリセルを
用いているので、占有面積の大幅な低減が可能である。
【0007】
【発明が解決しようとする課題】上述した複数ポートメ
モリセル自体を用いた複数ポートメモリは占有面積が大
きくなるという問題があり、また、インタリーブ(バン
ク分割)による複数ポートメモリは、異なるポートから
同一バンクに同時にアクセスする場合に競合が発生し、
実効スループットが低下するという問題がある。さら
に、この場合、バンク競合の確率を小さくするために
は、バンク数を大きくしなければならず、これは、バン
ク制御のための回路規模の増大や回路遅延の増加を招く
という問題がある。
【0008】時分割アクセスによる複数ポートメモリ
は、小さな占有面積が実現でき、ポート間の競合の問題
がないので高いスループットが得られる利点がある。し
かしながら、従来の時分割アクセスによる上述した方法
(ISSCC, 1994, pp.262-263 参照)では、3ポートある
いは4ポート以上のような大きなポート数を実現しよう
とすると、アクセス時間が大きくなりすぎる問題があ
る。例えば、A,B,C,Dの4つの入力ポートを持つメモリ
を時分割アクセスにより実現しようとする場合、A,B,C,
Dの4つのアドレスに対応するアドレスを時分割的に4
回アクセスし、該4回のアクセスが全て終了した時点
で、A,B,C,Dの4つの出力ポートからデータを出力する
ことになる。言いかえると、4回のアクセスが終了する
までどの出力ポートからもデータを出力することができ
ず、結果的にアクセス時間が増大してしまう。以上述べ
たように、従来のバンク分割による複数ポートメモリで
は、バンク競合の確率を小さくするためには、バンク数
を大きくしなければならないため回路規模と遅延時間が
増大し、また、従来の時分割アクセスによる複数ポート
メモリでは、アクセス時間が増大するという問題があ
る。本発明の第1の目的は、上記の従来のバンク分割に
よる複数ポートメモリや、時分割アクセスによる複数ポ
ートメモリが有する問題を解決するために、バンク分割
と時分割アクセスを組合せ、時分割アクセスの順番の最
適化を図った複数ポートメモリを提供することにある。
【0009】また、従来の高速メモリ回路(例えば、IE
EE Journal of Solid-State Circuits, Vol.26,No.11,
November 1991, pp.1577-1585、あるいはIEEE Journal
of Solid-State Circuits,Vol.30, No.4, April 1995,
pp.487-490 参照)では、CMOS SRAMのウエーブ
パイプライン動作を達成していたが、時分割アクセスお
よびバンク分割による複数ポートメモリ回路への応用と
その回路構成については触れられていない。本発明の第
2の目的は、従来のウエーブパイプラインCMOS S
RAMを応用し、従来回路では考慮されていないバンク
分割と時分割アクセスを組合せた複数ポートメモリ回路
に好適な時分割アクセスの制御回路および内部のSRA
M回路の具体的構成を提供することにある。
【0010】
【課題を解決するための手段】上記第1の目的を達成す
るために、本発明の一実施形態(図1、図2参照)によ
れば、複数ポートメモリ(以下では、4ポートメモリの
場合を示す)を、アドレス入力ポート(10,11,12,13)と
データ出力ポート(37,38,85,86)、アクセス順序制御回
路418、および内部の1ポートSRAM回路で構成し、
内部の1ポートSRAM回路を2バンク以上にバンク分
割する。図1は2バンクの構成をとり、それぞれバンク
0(メモリセルアレイ420)、バンク1(メモリセルアレイ
424)とした場合を示す。内部の1ポートSRAM回路を
時分割に2回(あるいはそれ以上)アクセスし(図2の
アクセス500,501に相当)、それぞれの時分割のアクセス
の中では、異なるバンクへのアクセスを同時に行なえる
ようにする。つまり1回目のアクセス(図2のアクセス5
00)で、バンク0(メモリセルアレイ420)とバンク1(メ
モリセルアレイ424)にアクセスし、2回目のアクセス
(図2のアクセス501)でもバンク0(メモリセルアレイ42
0)とバンク1(メモリセルアレイ424)にアクセスできる
ように構成する。
【0011】アクセス順序制御回路418は、それぞれの
時分割のアクセス(図2のアクセス500,501)のなかで、
同時にバンク0(メモリセルアレイ420)とバンク1(メモ
リセルアレイ424)をアクセスできるようにアクセスの順
序を以下のように制御する。ここでは、各ポートのアク
セスの優先順位が、入力ポートA(10),入力ポートB(1
1),入力ポートC(12),入力ポートD(13)の順番の場合を
考える。1回目のアクセス(図2のアクセス500)でアク
セスされるアドレスは、優先順位の最も高い入力ポート
A(10)のアドレスと、もし可能であれば、入力ポートB(1
1),入力ポートC(12),入力ポートD(13)の3つのうち入
力ポートA(10)のアドレスと競合しないアドレスを1つ
選び、その入力ポートのアドレスとする。2回目のアク
セス(図2のアクセス501)でアクセスされるアドレス
は、1回目のアクセス(図2のアクセス500)でアクセス
されなかった入力ポートのアドレスとする。さらに多く
のポートが必要な場合は複数ポートメモリセルと組み合
わせる。
【0012】上記第2の目的を達成するために、本発明
の一実施形態(図4参照)によれば、4ポートメモリを
構成する内部の1ポートSRAM回路のアクセス順序を
制御するためのアクセス順序制御回路(図1の418)を、
1回目のアクセス(図2のアクセス500)でアクセスする
2つのアドレスを選ぶための4対2セレクタ475、2回
目のアクセス(図2のアクセス501)でアクセスする2つ
のアドレスを選ぶためのセレクタ476、1回目のアクセ
スのバンク制御のためのアドレス切り替え回路477、2
回目のアクセスのバンク制御のためのアドレス切り替え
回路478および各バンク(メモリセルアレイ420,424)をア
クセスするための信号を発生するパラレル−シリアル(p
arallelーserial)変換回路416,417で構成する。
【0013】各入力ポートのアクセスの優先順位を、入
力ポートA(10),入力ポートB(11),入力ポートC(12),
入力ポートD(13)の順番とする場合、2回目のアクセス
(図2のアクセス501)でアクセスするアドレスを選ぶた
めのセレクタは3対2セレクタ476とする。1回目のア
クセスでアクセスするアドレスを選ぶための4対2セレ
クタ475は、入力ポートA(10),入力ポートB(11),入力
ポートC(12),入力ポートD(13)を入力とするものであ
り、入力ポートA(10)を入力とする1対1セレクタ408
と、入力ポートB(11),入力ポートC(12),入力ポートD
(13)を入力とする3対1セレクタ409で構成する。2回
目のアクセスでアクセスするアドレスを選ぶための3対
2セレクタ476は、入力ポートB(11),入力ポートC(1
2),入力ポートD(13)を入力とするものであり、入力ポ
ートB(11),入力ポートC(12)を入力とする2対1セレク
タ410と入力ポートD(13)を入力とする1対1セレクタ41
1で構成する。なお、セレクタにおける入力ポートの優
先順位を指定する信号を別個に設けてもよく、その場合
には、セレクタ408,409,410,411を全て同一構成の4対
1セレクタとすることができる。
【0014】1回目のアクセスのバンク制御のためのア
ドレス切り替え回路477および2回目のアクセスのバン
ク制御のためのアドレス切り替え回路478は、それぞれ
2対1セレクタ(412と413、および414と415)で構成す
る。
【0015】1回目のアクセスでアクセスする2つのア
ドレスは、入力ポートA(10)のアドレス(セレクタ408の
出力)と、もし可能であれば、入力ポートB(11),入力
ポートC(12),入力ポートD(13)の3つのうち入力ポート
A(10)のアドレスと競合しないアドレスとし、3対1セ
レクタ409で、入力ポートA(10)のアドレスと競合しない
入力ポートのアドレスを選ぶ。入力ポートA(10)は最優
先の入力ポートなので、1回目のアクセスで必ずアクセ
スされ、セレクタで選択する必要はない。そのため、セ
レクタ408は入力ポートA(10)のアドレスをそのまま出力
するものであり実際の回路を設ける必要ないが、図4に
は便宜的に1対1セレクタとして示している。入力ポー
トA(10)を最優先とする場合は、入力ポートA(10)は1回
目のアクセスで必ずアクセスされるので、1回目のアク
セスが終った時点で、出力ポートに読み出した値を出力
してもよい。
【0016】2回目のアクセス(図2のアクセス501)で
アクセスするアドレスを、セレクタ476で選ぶ。入力ポ
ートA(10)は最優先の入力ポートなので、1回目のアク
セスで必ずアクセスされ、セレクタ476の入力に入力ポ
ートA(10)を含める必要はない。そのため、セレクタ476
は3対2セレクタでよい。また入力ポートD(13)は最も
優先度が低いのでバンク数が2のときは、2回目のアク
セスとなるか、2回目のアクセスではアクセスされない
かの何れかなので、2回目のアクセスではアクセスされ
ない場合も入力ポートD(13)を固定的に出力するように
すると、入力ポートD(13)をセレクタで選択する必要は
ない。そのため、セレクタ411は入力ポートD(13)のアド
レスをそのまま出力すればよく、実際の回路を設ける必
要はないが、図4にはセレクタ408と同様に便宜的に1
対1セレクタとして示してある。
【0017】2回目のアクセスでアクセスするアドレス
は、1回目のアクセス(図2のアクセス500)でアクセス
されたポートの残りのポートのアドレスとし、2回目の
アクセスのためのアドレスを選択する2対1セレクタ41
0で、1回目のアクセスでアクセスされたポートの残り
のポートでかつ入力ポートD(13)以外のアドレス、すな
わち入力ポートB(11)または入力ポートC(12)のアドレス
を選ぶ。
【0018】1回目のアクセス(図2のアクセス500)の
バンク制御のために、バンク制御のための2対1セレク
タ412によって、入力ポートA(10)のアドレス(セレクタ
408の出力)と、3対1セレクタ409の出力のうち、バン
ク0(図1の420)をアクセスする方のアドレスを選択す
る。また、バンク制御のための2対1セレクタ413によ
って、入力ポートA(10)のアドレス(408の出力)と、3対
1セレクタ409の出力のうち、バンク1(図1の424)をア
クセスする方のアドレスを選択する。
【0019】2回目のアクセス(図2のアクセス501)の
バンク制御のために、バンク制御のための2対1セレク
タ414によって、2回目のアクセスのためのアドレスを
選択する2対1セレクタ410出力と、入力ポートD(13)の
アドレス(セレクタ411の出力)のうち、バンク0をア
クセスする方のアドレスを選択する。また、バンク制御
のための2対1セレクタ415で、2対1セレクタ410出力
と、入力ポートD(13)のアドレス(411の出力)のうち、バ
ンク1をアクセスする方のアドレスを選択する。
【0020】1回目のアクセス(図2のアクセス500)で
バンク0をアクセスするアドレス(412の出力)と2回目
のアクセス(図2のアクセス501)でバンク0をアクセス
するアドレス(414の出力)をパラレル−シリアル変換回
路416でシリアル信号(時間的にずれた同一信号線上の
信号)26に変換する。1回目のアクセス(図2のアクセ
ス500)でバンク1をアクセスするアドレス(413の出力)
と2回目のアクセス(図2のアクセス501)でバンク1を
アクセスするアドレス(415の出力)をパラレル−シリア
ル変換回路417でシリアル信号27に変換する。これらの
シリアル信号26,27により各バンクのメモリセルアレイ
(図1の420,424)をアクセスする。
【0021】また、上記第1および第2の目的を達成す
るために、本発明の一実施形態(図17)によれば、各
バンクのメモリセルアレイ(図1の420,424)の書き込み
制御信号(図17のバンク0-WCONTL,バンク1-WCONTL,
図12のWCONTLを指す。バンク0-WCONTL,バンク1-WCO
NTLはそれぞれ、バンク0,バンク1の書き込み制御信号
を表わし、図12のWCONTLは各バンクでの書き込み制御
信号の入力端子を表わす)は、n回目アクセスのmバンク
へのアクセスが書き込みアドレスであることを示す信号
(WBmCn、すなわち、WB0C1,WB0C2,WB1C1,WB1C2)と、別
に発生した競合を示す信号(C3,C4,C5,C6)から発生す
る。
【0022】図1の実施例では、nは1あるいは2、mは0
あるいは1の場合を示しており、WB0C1は1回目のアクセ
スでバンク0をアクセスするアドレス(412の出力)が書
き込みのアドレスであることを、WB0C2は2回目のアク
セスでバンク0をアクセスするアドレス(414の出力)が
書き込みのアドレスであることを、WB1C1は1回目のア
クセスでバンク1をアクセスするアドレス(413の出力)
が書き込みのアドレスであることを、WB1C2は2回目の
アクセスでバンク1をアクセスするアドレス(415の出
力)が書き込みのアドレスであることを示している。ま
た、信号C3,C4,C5,C6は、それぞれ、入力ポートA(図1
の10),入力ポートB(11),入力ポートC(12),入力ポートD
(13)間の競合により、1回目のアクセスでバンク0をア
クセスするアドレスが存在しないこと、1回目のアクセ
スでバンク1をアクセスするアドレスが存在しないこ
と、2回目のアクセスでバンク0をアクセスするアドレ
スが存在しないこと、2回目のアクセスでバンク1をア
クセスするアドレスが存在しないことを示すものである
(図7)。
【0023】n回目アクセスのmバンクへのアクセスが競
合によりアクセスできない場合には、競合を示す信号(C
3,C4,C5,C6)により、誤書き込みを防ぐようにする。こ
のために、m(以下の説明ではmは0)バンクの書き込み
制御信号発生回路(図17の469)を、n回目アクセスのm
(=0)バンクへのアクセスが書き込みであることを示す信
号(WB0C1,WB0C2)と内部クロック1,2(91,92)と競合を示
す信号(C3,C4,C5,C6)の論理を作るPチャネルMOSト
ランジスタ(あるいはNチャネルMOSトランジスタ、
以下それぞれをPMOS,NMOSと略す)211〜216、
フリップフロップ(インバータ463,464からなる)および
リセットトランジスタ107で構成する。
【0024】内部クロック1,2(91,92)は立ち下がり(あ
るいは立ち上り)時刻が内部SRAMの時分割アクセス
の開始時刻の差に相当するサイクル(図11の場合1/
3サイクル)ずれた信号とし、内部クロックの一方(91)
と1回目(n=1)のアクセスのm(=0)バンクへのアクセスが
書き込みであることを示す信号の一方(WB0C1)とそれに
相当する競合を示す信号(C3)の論理を作るPMOS211
〜213と、内部クロックのもう一方(92)とアクセスが書
き込みであることを示す信号のもう一方(WB0C2)とそれ
に相当する競合を示す信号(C5)の論理を作るPMOS21
4〜216とを並列に接続し、その出力(WOUT)にフリップフ
ロップ(インバータ463,464からなる)とリセットトラン
ジスタ107のドレインとを接続する。該リセットトラン
ジスタ107のゲート電極(WRP)には出力(WOUT)と同相で所
定の時刻遅れた信号を加える。
【0025】
【発明の実施の形態】本発明の代表的な実施形態(図
1)では、4ポートメモリを、4つのアドレス入力ポー
ト(10,11,12,13)と4つのデータ出力ポート(37,38,85,8
6)および内部の1ポートSRAM回路(メモリセルアレ
イ420,428)で構成することによって、4ポートメモリセ
ルを直接用いる場合に比べて占有面積を大幅に低減する
ことができる。さらに多くのポートが必要な場合は、複
数ポートメモリセルに同様の構成を組み合わせることに
よって、容易にポート数を増やすことができる。また、
4ポートメモリを時分割アクセス(図2のアクセス500,5
01)とバンク分割(メモリセルアレイ420,424)を組み合わ
せて実現することによって、時分割アクセスのみで4ポ
ートメモリを実現する場合に比べて、アクセス時間の増
大を抑えることができる。またバンク分割に関してみた
場合、時分割アクセスと組み合わせることによりバンク
数を小さくできる。例えば、4ポートメモリをバンク分
割のみで実現する場合はバンク数は最低4バンク必要な
のに対して、時分割に2回アクセスする方法と組み合わ
せるとバンク数は最低2バンクで済む。
【0026】内部の1ポートSRAM回路(メモリセル
アレイ420,424)をバンク分割し、時分割的に2回(ある
いはそれ以上)アクセスし(図2のアクセス500,501)、
それぞれの時分割のアクセスの中では、もし可能であれ
ば、異なるバンクへのアクセスを同時に行なうようにす
ることによって、バンク競合の確率を小さくでき実行ス
ループットを大きくできる。例えば、入力ポートA(1
0),入力ポートB(11)を持つ2ポートメモリをパイプラ
イン動作させる従来技術と比較すると、まず入力ポート
A(10),入力ポートB(11)ともにバンク0にアクセスする
ようなアドレスをアクセスし、その次のサイクルで入力
ポートA(10),入力ポートB(11)ともにバンク1にアクセ
スするようなアドレスをアクセスする場合、上記の従来
の2ポートメモリのパイプライン動作では、競合が発生
するが、本発明では、1回目のアクセスでバンク0(メ
モリセルアレイ420)とバンク1(メモリセルアレイ424)
にアクセスし、2回目のアクセス(図2のアクセス501)
でもバンク0(メモリセルアレイ420)とバンク1(メモリ
セルアレイ424)にアクセスすることができるので競合が
発生せず、競合の確率を大幅に減らすことができる。
【0027】本発明の一実施形態(図4)では、3対1
セレクタ409で入力ポートB(11),入力ポートC(12),入
力ポートD(13)の1つを選ぶことによって、1回目のア
クセス(図2のアクセス500)でアクセスするアドレスを
入力ポートA(10)のアドレスと、可能であれば、入力ポ
ートB(11),入力ポートC(12),入力ポートD(13)の3つ
のうち入力ポートA(10)のアドレスと競合しないアドレ
スとできる。2対1セレクタ410で、入力ポートB(11),
入力ポートC(12)の1つを選ぶとともに、入力ポートD(1
3)を常に出力(1対1セレクタ411)しておくことによっ
て、2回目のアクセス(図2のアクセス501)でアクセス
するアドレスは、1回目のアクセス(図2のアクセス50
0)でアクセスされたポートの残りのポートのアドレスと
できる。
【0028】入力ポートA(10)を最優先とする場合に、
1回目のアクセスが終った時点で、出力ポートに読み出
した値を出力すると、入力ポートA(10)のアクセス時間
は内部の1ポートメモリのアクセス時間程度とすること
ができる。2対1セレクタ412で、入力ポートA(10)のア
ドレス(セレクタ408の出力)と、3対1セレクタ409の出
力のどちらかを選択することによって、1回目のアクセ
ス(図2のアクセス500)のバンク0(図1のメモリセルア
レイ420)をアクセスするアドレスを決定できる。同様
に、2対1セレクタ413で、入力ポートA(10)のアドレス
(408の出力)と、3対1セレクタ409の出力のどちらかを
選択することで、1回目のアクセスのバンク1(図1の4
24)をアクセスするアドレスを決定できる。
【0029】2対1セレクタ414で、2対1セレクタ410
出力と、入力ポートD(13)のアドレス(411の出力)のどち
らかを選択することによって、2回目のアクセスのバン
ク0をアクセスするアドレスを決定できる。同様に、2
対1セレクタ415で、2対1セレクタ410出力と、入力ポ
ートD(13)のアドレス(411の出力)のどちらかを選択する
ことで、2回目のアクセスのバンク1をアクセスするア
ドレスを決定できる。
【0030】1回目のアクセス(図2のアクセス500)で
バンク0をアクセスするアドレス(412の出力)と2回目
のアクセス(図2のアクセス501)でバンク0をアクセス
するアドレス(414の出力)をパラレル−シリアル変換回
路416でシリアル信号(時間的にずれた同一信号線上の
信号)26に変換することによって、バンク0を時分割に
アクセスすることができる。同様に、1回目のアクセス
(図2のアクセス500)でバンク1をアクセスするアドレ
ス(413の出力)と2回目のアクセス(図2のアクセス501)
でバンク1をアクセスするアドレス(415の出力)をパラ
レル−シリアル変換回路417でシリアル信号27に変換す
ることで、バンク1を時分割にアクセスすることができ
る。
【0031】本発明の一実施形態(図17)では、誤書
き込みを防ぐためにn回目アクセスのmバンクへのアクセ
スが書き込みアドレスであることを示す信号(WB0C1,WB
0C2,WB1C1,WB1C2)とは別に、競合を示す信号(C3,C4,C
5,C6)を設けることによって、アクセス順序制御回路
(図4)のセレクタ409〜415の制御が簡単になる(ここ
で、nは1あるいは2,mは0あるいは1を示すものとす
る)。例えば、入力ポートA(10),入力ポートB(11),入
力ポートC(12),入力ポートD(13)の全てのアドレスがバ
ンク0をアクセスしようとする場合、競合が発生し、1
回目のアクセスでも2回目のアクセスでもバンク1をア
クセスするアドレスは存在しない。競合時には競合を示
す信号(C3,C4,C5,C6)により、バンク1のデータ線に書
き込みデータが伝達されないようにすれば、バンク1の
ワード線はdon't careとできるので、アクセス順序制御
回路(図4)のセレクタ409〜415の制御が簡単になる。
【0032】内部クロックの一方(91)とn回目アクセス
のmバンクへのアクセスが書き込みであることを示す信
号の一方(WB0C1)とそれに相当する競合を示す信号(C3)
の論理をPMOS211,212,213で作ることによって、n回
目アクセスのmバンクへのアクセスが書き込みでかつ競
合がない場合だけ書き込み信号を発生することができる
(図17)。内部クロックの一方(91)とn回目アクセス
のmバンクへのアクセスが書き込みであることを示す信
号の一方(WB0C1)とそれに相当する競合を示す信号(C3)
の論理を作るPMOS211,212,213と、内部クロックの
もう一方(92)とアクセスが書き込みであることを示す信
号のもう一方(WB0C2)とそれに相当する競合を示す信号
(C5)の論理を作るPMOS214,215,216とを並列に接続
し、内部クロック91,92の立ち下がり時刻を内部SRA
Mの時分割アクセスの開始時刻の差に相当するサイクル
(図11の場合1/3サイクル)ずれた信号とすること
によって、書き込み制御信号を1/3サイクルずれた時
刻に発生することが可能となる。
【0033】並列に接続されたPMOS211,212,213と
PMOS214,215,216の出力(WOUT)にフリップフロップ
(インバータ463,464からなる)を接続することによっ
て、出力(WOUT)がハイインピーダンスとなることを避け
ることができ安定な動作が達成される。また、並列に接
続されたPMOS211,212,213とPMOS214,215,216の
出力(WOUT)にリセットトランジスタ107のドレインを接
続し、リセットトランジスタ107のゲート電極には該出
力(WOUT)と同相で所定の時刻遅れた信号を加えることに
よって、リセットトランジスタ107のゲート容量が入力
信号(C3,C5,WB0C1,WB0C2)の容量に含まれないようでき
るので高速化が達成できる。
【0034】
【実施例】図1に本発明の4ポートメモリのブロック図
を、図2に時分割アクセスの概念図を示す。図1の回路
は、4つのアドレス入力ポートA(10),B(11),C(12)およ
びD(13)と、4つのデータ出力ポートA(37),B(38),C(8
5),D(86)、およびバンク分割された内部の1ポートSR
AM回路(1ポートのメモリセルアレイ420,424および
周辺のデコ-ド回路419,423、センスアンプ421,425)か
らなる4ポートメモリを示している。本実施例では、1
ポートのメモリセルを用いて4ポートメモリを実現しな
がら、アクセス時間の増大を抑え、かつバンク数を減ら
すために次のような工夫がなされている。
【0035】4ポートメモリを、アクセス順序制御回路
418と内部の1ポートSRAM回路で構成し、内部の1
ポートSRAM回路は、バンク0のメモリセルアレイ42
0と、バンク1のメモリセルアレイ424に分割する(な
お、図1では2バンクの構成を示しているが、4バンク
以上に分割してもよいことはいうまでもない)。内部の
1ポートSRAM回路を時分割的に2回アクセスし(図
2のアクセス500,501に相当)、それぞれの時分割のアク
セスの中では、異なるバンクへのアクセスを同時に行な
えるようにする。
【0036】つまり1回目のアクセス(図2のアクセス
500)で、バンク0(メモリセルアレイ420)とバンク1
(メモリセルアレイ424)にアクセスし、2回目のアク
セス(図2のアクセス501)でもバンク0(メモリセルアレ
イ420)とバンク1(メモリセルアレイ424)にアクセスす
る。内部の1ポートSRAM回路への2回の(時分割的
な)アクセス500,501は、パイプライン動作させ、1回
目のアクセス(図2のアクセス500)は時刻0に開始し、
その読み出しデータは時刻2に確定する。2回目のアク
セス(図2のアクセス501)は時刻0から1/3サイクル
遅れた時刻1に開始し、その読み出しデータは時刻3に
確定する。
【0037】アクセス順序制御回路418は、それぞれの
時分割的なアクセス(図2のアクセス500,501)の中で、
同時にバンク0(メモリセルアレイ420)とバンク1(メモ
リセルアレイ424)をアクセスできるようにアクセスの順
序を次のように制御する。各ポートのアクセスの優先順
位を指定する信号を設けて、その信号の指示に従って優
先順位を決めてもよいが、以下では、入力ポートA(1
0),入力ポートB(11),入力ポートC(12),入力ポートD
(13)の順番に優先される場合を例にして説明する。1回
目のアクセス(図2のアクセス500)でアクセスされるア
ドレスは、入力ポートA(10)のアドレスと、もし可能で
あれば、入力ポートB(11),入力ポートC(12),入力ポー
トD(13)の3つのうち入力ポートA(10)のアドレスと競合
しないアドレスを1つ選び、その入力ポートのアドレス
とする。2回目のアクセス(図2のアクセス501)でアク
セスされるアドレスは、1回目のアクセス(図2のアク
セス500)でアクセスされたポートの残りのポートのアド
レスとする。
【0038】図1の回路の動作をアクセスの概念を示す
図2を用いてさらに詳細に説明する。4つの入力ポート
A(10),B(11),C(12),D(13)に受けたアドレスの中から、
時刻0に、アドレス順序制御回路418により、バンク0
とバンク1をアクセスする1回目のアクセスの2つのア
ドレス(例えば、入力ポートA(10)と入力ポートC(12)の
アドレス)を選ぶ(ラッチ400,401,402,403は基準クロ
ック30の立上りでトランスペアレントになるラッチを示
している)。この2つのアドレスを26,27に出力し、そ
れぞれデコーダ419,423でデコードして、バンク0とバ
ンク1のメモリセルアレイ420,424をアクセスする。メ
モリセルアレイ420,424から読み出した値をそれぞれセ
ンスアンプ421,425で増幅し、ラッチ404,406に記憶する
(1回目のアクセス500)。
【0039】上記動作と並行して、時刻1に、1回目の
アクセスに選ばれなかった2つのアドレス(例えば、入
力ポートB(11)と入力ポートD(13)のアドレス)を26,27
に出力し、それぞれデコーダ419,423でデコードして、
バンク0とバンク1のメモリセルアレイ420,424をアク
セスする。時刻1に開始される図2の2回目のアクセス
(501)は、内部クロック31の立上りで開始されるものと
する。その後、メモリセルアレイ420,424から読み出し
た値をセンスアンプ421,425で増幅し、ラッチ405,407に
記憶する。
【0040】ラッチ404および406は、時刻2に1回目の
アクセスのデータが確定してからデータをラッチするラ
ッチ回路を表し、ラッチ405および407は、時刻3に2回
目のアクセスのデータが確定してからデータをラッチす
るラッチ回路を表わしている。つまり、1回目のアクセ
スで読み出されたデータはラッチ404および406に、2回
目のアクセスで読み出されたデータはラッチ405および4
07にそれぞれ記憶される。図2の参照符号500,501,502,
503はアクセスを示し、参照符号504,505,506,507はラッ
チでの待ち時間を示している。時刻3に時刻0に受け付
けた(最大4つの)アドレスのアクセスが完了するの
で、次にアクセスするアドレスを入力することが可能と
なり、時刻3以降次のアクセスが開始され、上で説明し
たのと同様に502,503の2回に分けてアクセスが行なわ
れる。
【0041】次に、出力ポートA(37),B(38),C(85),D(8
6)にデータを伝えるためのセレクタ422,426,427,428に
ついて説明する。図1の回路では、入力ポートA(10),B
(11),C(12),D(13)の順番にアクセスが優先される場合を
考えているので、入力ポートA(10)は必ず1回目のアク
セス(図2のアクセス500)でアクセスされ、入力ポートA
(10)の読み出しデータは必ずラッチ404または406に記憶
される。出力ポートA(37)は、2対1セレクタ422によ
り、入力ポートA(10)のアドレスがバンク0をアクセス
するアドレスなのか、バンク1をアクセスするアドレス
なのかに対応して、ラッチ404と406のどちらか一方を選
んで外部に出力する。
【0042】出力ポートB(38),C(85),D(86)は、1回目
のアクセス、2回目のアクセスのどちらの可能性もある
ので、それぞれ、4対1セレクタ426,427,428によって
ラッチ404,405,406,407のデータの中の対応する1つを
選んで外部に出力する。入力ポートA(10)を最優先ポー
トとすると、入力ポートA(10)は必ず1回目のアクセス
のアクセスに割り当てられるので、1回目のアクセスが
終った時点で、セレクタ422から外部に読み出した値を
出力することが可能である。1回目のアクセスが終った
時点で読み出した値を直ちに出力するようにすると、入
力ポートA(10)のアクセス時間を内部の1ポートメモリ
のアクセス時間程度にすることが可能になる。
【0043】図3は、アクセス順序制御回路418が1回
目のアクセスと2回目のアクセスに割り当てる入力ポー
トと各入力ポートのバンクアドレスの関係の一例を示し
たものである。アクセス順序制御回路418は、図3に示
すような関係で、1回目のアクセス,2回目のアクセス
とバンクアドレスを割り当てる。図3において、欄80,8
1,82,83は、それぞれ入力ポートA(10),B(11),C(12),D(1
3)のアドレスのバンクを指定する1ビットのアドレス
(バンクアドレス)を表わしている。図1の回路では、
メモリは2バンクに分割されているので、各入力ポート
のアドレス中の1ビットで、バンクを決定することがで
きる。バンク数が多くなれば、その分バンクを指定する
アドレスのビット数が大きくなることはいうまでもな
い。
【0044】バンクアドレス80,81,82,83が「0」のと
き、入力ポートA(10),B(11),C(12),D(13)のアドレスは
バンク0を、また、バンクアドレス80,81,82,83が
「1」のとき、入力ポートA(10),B(11),C(12),D(13)の
アドレスはバンク1をアクセスするものとする。4つの
入力ポートに対応してバンクアドレスは4ビット存在す
るのでそれらの組み合わせは16通りある。以下、それ
ぞれの組み合わせの場合について説明する。
【0045】図3の1行目は、バンクアドレス80,81,8
2,83が全て「0」であり、入力ポートA(10),B(11),C(1
2),D(13)が全てがバンク0をアクセスしようとする場合
に相当している。しかし、4つの入力ポート全てをアク
セスすることはできないので、1回目のアクセスに最優
先の入力ポートA(10)のアドレスを割り当て、2回目の
アクセスに入力ポートB(11)のアドレスを割り当てる。
入力ポートC(12),D(13)は時刻0から時刻3までは、ア
クセスバンクが競合していてアクセスできないので、次
のサイクルでアクセスすることになる。図3において、
「競合しているポート」の欄は、同じバンクに2つ以上
のアドレスがアクセスしようとしている入力ポートを示
し、「1回目のアクセス」の欄は、1回目のアクセスに
割り当てる入力ポートを示し、「2回目のアクセス」の
欄は、2回目のアクセスに割り当てる入力ポートを示
し、「次サイクルでのアクセス」の欄は、競合によりア
クセスできないため次サイクルでアクセスする入力ポー
トを示している。
【0046】図3の2行目は、バンクアドレス80,81,82
が「0」,バンクアドレス83が「1」であり、入力ポー
トA(10),B(11),C(12)はバンク0を、入力ポートD(13)は
バンク1をアクセスしようとする場合に相当している。
この場合、1回目のアクセスに入力ポートA(10)のアド
レスおよび入力ポートA(10)と競合しない入力ポートD(1
3)のアドレスを割り当て、2回目のアクセスに入力ポー
トB(11)のアドレスを割り当てる。入力ポートC(12)は2
回目のアクセスでは入力ポートB(11)と競合していてア
クセスできないので、次のサイクルでアクセスする。
【0047】図3の3行目は、バンクアドレス80,81,83
が「0」,バンクアドレス82が「1」であり、入力ポー
トA(10),B(11),D(13)はバンク0を、入力ポートC(12)は
バンク1をアクセスしようとする場合に相当している。
この場合、1回目のアクセスに入力ポートA(10)のアド
レスと入力ポートA(10)と競合しない入力ポートC(12)の
アドレスを割り当て、2回目のアクセスに入力ポートB
(11)のアドレスを割り当てる。入力ポートD(13)は2回
目のアクセスでは入力ポートB(11)と競合していてアク
セスできないので、次のサイクルでアクセスする。
【0048】図3の4行目は、バンクアドレス80,81が
「0」,バンクアドレス82,83が「1」であり、入力ポ
ートA(10),B(11)はバンク0を、入力ポートC(12),D(13)
はバンク1をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに互いに競合しない入
力ポートA(10)と入力ポートC(12)のアドレスを割り当
て、2回目のアクセスに互いに競合しない入力ポートB
(11),D(13)のアドレスを割り当てる。この場合は2回の
アクセスによって4つのポート全てをアクセスすること
ができる。
【0049】図3の5行目は、バンクアドレス80,82,83
が「0」,バンクアドレス81が「1」であり、入力ポー
トA(10),C(12),D(13)はバンク0を、入力ポートB(11)は
バンク1をアクセスしようとする場合に相当している。
この場合、1回目のアクセスに入力ポートA(10)と入力
ポートB(11)のアドレスを割り当て、2回目のアクセス
に入力ポートC(12)のアドレスを割り当てる。入力ポー
トD(13)は2回目のアクセスでは入力ポートC(12)と競合
していてアクセスできないので、次のサイクルでアクセ
スする。
【0050】図3の6行目は、バンクアドレス80,82が
「0」,バンクアドレス81,83が「1」であり、入力ポ
ートA(10),C(12)はバンク0を、入力ポートB(11),D(13)
はバンク1をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに競合しない入力ポー
トA(10)と入力ポートB(11)のアドレスを割り当て、2回
目のアクセスに入力ポートC(12),D(13)のアドレスを割
り当てる。この場合も2回のアクセスで4つのポート全
てをアクセスすることができる。
【0051】図3の7行目は、バンクアドレス80,83が
「0」,バンクアドレス81,82が「1」であり、入力ポ
ートA(10),D(13)はバンク0を、入力ポートB(11),C(12)
はバンク1をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートB(11)のアドレスを割り当て、2回目のアク
セスに入力ポートC(12),D(13)のアドレスを割り当て
る。この場合も2回のアクセスで4つのポート全てをア
クセスすることができる。
【0052】図3の8行目は、バンクアドレス80が
「0」,バンクアドレス81,82,83が「1」であり、入力
ポートA(10)はバンク0を、入力ポートB(11),C(12),D(1
3)はバンク1をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートB(11)のアドレスを割り当て、2回目のアク
セスに入力ポートC(12)のアドレスを割り当てる。入力
ポートD(13)は2回目のアクセスでは入力ポートC(12)と
競合していてアクセスできないので、次のサイクルでア
クセスする。
【0053】図3の9行目は、バンクアドレス80が
「1」,バンクアドレス81,82,83が「0」であり、入力
ポートA(10)はバンク1を、入力ポートB(11),C(12),D(1
3)はバンク0をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートB(11)のアドレスを割り当て、2回目のアク
セスに入力ポートC(12)のアドレスを割り当てる。入力
ポートD(13)は2回目のアクセスでは入力ポートC(12)と
競合していてアクセスできないので、次のサイクルでア
クセスする。
【0054】図3の10行目は、バンクアドレス80,83
が「1」,バンクアドレス81,82が「0」であり、入力
ポートA(10)はバンク1を、入力ポートB(11),C(12),D(1
3)はバンク0をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートB(11)のアドレスを割り当て、2回目のアク
セスに入力ポートC(12)と入力ポートD(13)のアドレスを
割り当てる。この場合も2回のアクセスで4つのポート
全てをアクセスすることができる。
【0055】図3の11行目は、バンクアドレス80,82
が「1」,バンクアドレス81,83が「0」であり、入力
ポートA(10)と入力ポートC(12)はバンク1を、入力ポー
トB(11)と入力ポートD(13)はバンク0をアクセスしよう
とする場合に相当している。この場合、1回目のアクセ
スに入力ポートA(10)と入力ポートB(11)のアドレスを割
り当て、2回目のアクセスに入力ポートC(12)と入力ポ
ートD(13)のアドレスを割り当てる。この場合も2回の
アクセスで4つのポート全てをアクセスすることができ
る。
【0056】図3の12行目は、バンクアドレス80,82,
83が「1」,バンクアドレス81が「0」であり、入力ポ
ートA(10),C(12),D(13)はバンク1を、入力ポートB(11)
はバンク0をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートB(11)のアドレスを割り当て、2回目のアク
セスに入力ポートC(12)のアドレスを割り当てる。入力
ポートD(13)は2回目のアクセスでは入力ポートC(12)と
競合していてアクセスできないので、次のサイクルでア
クセスする。
【0057】図3の13行目は、バンクアドレス80,81
が「1」,バンクアドレス82、83が「0」であり、入力
ポートA(10),B(11)はバンク1を、入力ポートC(12),D(1
3)はバンク0をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートC(12)のアドレスを割り当て、2回目のアク
セスに入力ポートB(11)と入力ポートD(13)のアドレスを
割り当てる。この場合も2回のアクセスで4つのポート
全てをアクセスすることができる。
【0058】図3の14行目は、バンクアドレス80,81,
83が「1」,バンクアドレス82が「0」であり、入力ポ
ートA(10),B(11),D(13)はバンク1を、入力ポートC(12)
はバンク0をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートC(12)のアドレスを割り当て、2回目のアク
セスに入力ポートB(11)のアドレスを割り当てる。入力
ポートD(13)は2回目のアクセスでは入力ポートB(11)と
競合していてアクセスできないので、次のサイクルでア
クセスする。
【0059】図3の15行目は、バンクアドレス80,81,
82が「1」,バンクアドレス83が「0」であり、入力ポ
ートA(10),B(11),C(12)はバンク1を、入力ポートD(13)
はバンク0をアクセスしようとする場合に相当してい
る。この場合、1回目のアクセスに入力ポートA(10)と
入力ポートD(13)のアドレスを割り当て、2回目のアド
レスに入力ポートB(11)のアドレスを割り当てる。入力
ポートC(12)は2回目のアクセスでは入力ポートB(11)と
競合していてアクセスできないので、次のサイクルでア
クセスする。
【0060】図3の16行目は、バンクアドレス80,81,
82,83が全て「1」であり、全ての入力ポートA(10),B(1
1),C(12),D(13)がバンク1をアクセスしようとする場合
に相当している。この場合、1回目のアクセスに入力ポ
ートA(10)のアドレスを割り当て、2回目のアクセスに
入力ポートB(11)のアドレスを割り当てる。入力ポートC
(12),D(13)は時刻0から時刻3までは、アクセスバンク
が競合していてアクセスできないので、次のサイクルで
アクセスすることになる。
【0061】以上説明したように、本実施例の4ポート
メモリは、1ポートメモリセルを用いて構成しているの
で、複数ポートメモリセルを用いる場合に比べて占有面
積を低減することが可能になる。また、4ポートメモリ
を時分割アクセス(図2のアクセス500,501)とバンク分
割(420,424)を組み合わせて実現することにより、時分
割アクセスのみで4ポートメモリを実現する場合に比べ
て、アクセス時間の増大を抑えることができる。またバ
ンク分割に関してみた場合、時分割アクセスと組み合わ
せることによりバンク数を小さくできる。例えば、4ポ
ートメモリをバンク分割のみで実現する場合はバンク数
は最低4バンク必要なのに対して、時分割に2回アクセ
スする方法と組み合わせるとバンク数は最低2バンクで
済むようになる。
【0062】内部の1ポートSRAM回路(メモリセル
アレイ420,424)をバンク分割し、時分割的に2回(ある
いはそれ以上)アクセスし(図2のアクセス500,501に相
当)、それぞれの時分割のアクセスの中では、もし可能
であれば、異なるバンクへのアクセスを同時に行なうよ
うにすることで、バンク競合の確率を小さくでき実行ス
ループットを大きくできる。例えば、入力ポートA(10),
入力ポートB(11)を持つ2ポートメモリをパイプライン
動作させる従来技術と比較すると、まず入力ポートA(1
0),入力ポートB(11)ともにバンク0にアクセスするよう
なアドレスをアクセスし、その次のサイクルで入力ポー
トA(10),入力ポートB(11)ともにバンク1にアクセスす
るようなアドレスをアクセスする場合、上記の従来の2
ポートメモリのパイプライン動作では、競合が発生する
が、本発明では、1回目のアクセスでバンク0(メモリ
セルアレイ420)とバンク1(メモリセルアレイ424)にア
クセスし、2回目のアクセス(図2のアクセス501)でも
バンク0(メモリセルアレイ420)とバンク1(メモリセル
アレイ424)にアクセスすることができるので競合が発生
せず、競合の確率を小さくできる。さらに多くのポート
が必要な場合は、複数ポートメモリセルと組み合わせる
ことで、容易にポート数を増やすことができる。
【0063】図4は、図1のアクセス順序制御回路41
8の一実施例を示す図である。アクセス順序を制御する
ために、本実施例では次のような工夫がなされている。
アクセス順序制御回路418を、1回目のアクセス(図
2のアクセス500)でアクセスするアドレスを選ぶための
4対2セレクタ475、2回目のアクセス(図2のアクセス
501)でアクセスするアドレスを選ぶためのセレクタ47
6、1回目のアクセスのバンク制御のためのアドレス切
り替え回路477、2回目のアクセスのバンク制御のため
のアドレス切り替え回路478、および各バンク(メモリセ
ルアレイ420,424に相当)をアクセスするための信号を発
生するパラレル−シリアル変換回路(parallel-serial
変換回路)416,417とで構成する。
【0064】次に、図4の回路の動作を図3を参照しな
がら詳細に説明する。4対2セレクタ475で、入力ポー
トA(10),B(11),C(12),D(13)のアドレスの中から、2つ
のアドレスを選んで、1回目のアクセスのアドレスとす
る。図3に示すように入力ポートA(10)を最優先ポート
とすると、入力ポートA(10)は必ず1回目のアクセスに
含まれるので、入力ポートA(10)は必ず選ばれるように
する。このために4対2セレクタ475を2つのセレクタ4
08と409で構成する。図4におけるセレクタ408は1対1
セレクタを示しているが実際の回路を設ける必要はな
く、常に入力ポートA(10)のアドレスが出力されるよう
にしておけばよい。セレクタ409は、1回目のアクセス
でアクセスされる、入力ポートA(10)以外の入力ポート
を選択するセレクタである。
【0065】図3の「408の出力」および「409の出力」
の欄は、セレクタ408と409で選ばれる入力ポートを表わ
している。例えば、図3の1行目では1回目のアクセス
では入力ポートA(10)のアドレスしかアクセスされない
ので、セレクタ409の出力は「−」すなわち、don't car
eである。なお、セレクタ408の出力は上述したように常
に入力ポートA(10)である。また、図3の2行目では1
回目のアクセスでは入力ポートA(10)とD(13)のアドレス
がアクセスされるので、セレクタ409は、出力が入力ポ
ートD(13)のアドレスとなるように制御される。他のバ
ンクアドレス80,81,82,83の組合せについても同様の考
え方で制御される。詳細は、図3に示した通りである。
なお、セレクタの具体的なトランジスタレベルの回路
と、制御信号の発生方法についての詳細は後述する。
【0066】3対2セレクタ476では、入力ポートB(1
1),C(12),D(13)のアドレスの中から2つのアドレスを選
んで、2回目のアクセスのアドレスとする。入力ポート
A(10)のアドレスは必ず1回目のアクセスに含まれるの
で、3対2セレクタ476の入力に含める必要はない。図
1のような2バンク構成で、入力ポートD(13)のアドレ
スが最も優先度が低い場合は、図3に示されるように、
2回目のアクセスでは、入力ポートB(11)とC(12)のどち
らか一方と入力ポートD(13)がアクセスされるか、入力
ポートB(11)と入力ポートC(12)のどちらか一方だけがア
クセスされるだけなので、競合によりdon't careとなる
場合も固定的に入力ポートD(13)が選ばれるようにする
と、入力ポートD(13)を選ぶ制御は必要なくなる。つま
り、3対2セレクタ476は、2対1セレクタ410と1対1
セレクタ411で構成し、1対1セレクタ411は常に入力ポ
ートD(13)を出力するように構成できる。
【0067】2回目のアクセスにおいて2対1セレクタ
410は入力ポートB(11),入力ポートC(12)のどちらか一方
を選ぶ。図3の「410の出力」および「411の出力」の欄
は、セレクタ410と411で選ばれる入力ポートを表わして
いる。例えば、図3の1行目では2回目のアクセスでは
入力ポートB(11)のアドレスしかアクセスされないの
で、セレクタ410の出力は入力ポートB(11)のアドレスと
なる。セレクタ411の出力はdon't careとなるが、常に
入力ポートD(13)を出力している。また、図3の4行目
では2回目のアクセスでは入力ポートB(11),D(13)のア
ドレスがアクセスされるので、セレクタ410の出力は入
力ポートB(11)のアドレスとなるように制御する。セレ
クタ411は出力ポートD(13)を出力している。
【0068】なお、図3の「−](don't care)の部分
はアクセスがないことを表わしているが、上述したよう
に、制御を簡単にするために固定した入力ポートのアド
レスを出力するようにすると、書き込みの場合に誤って
そのアドレスにデータを書き込む可能性があるので、誤
書き込みを防ぐ手段を設けることが必要となる。このた
めの書き込み時の制御については後述する。セレクタ41
0,411の出力は、他のバンクアドレス80,81,82,83の組合
せについても同様の考え方で制御し、この詳細も図3に
示す通りである。
【0069】以上の説明では、各ポートのアクセスの優
先順位を、入力ポートA(10),B(11),C(12),D(13)の順番
とする場合について説明したが、ポートの優先順位を指
定する信号を別に設けても良く、優先順位を指定する信
号を設ける場合は、セレクタ408,409,410,411を全て4
対1セレクタとし、図3と同様の考え方でアクセスの順
序を制御することが可能である。
【0070】アドレス切り替え回路477は、1回目のア
クセス(図2のアクセス500に相当)のバンク制御のため
に、4対2セレクタ475の出力を対応するバンクに伝達
するための切り替え回路である。図1の回路は2バンク
構成で、1回のアクセスで2つのバンクに同時にアクセ
スすることが可能なので、アドレス切り替え回路477は
2つの2対1セレクタ412と413で構成される。2対1セ
レクタ412の出力がパラレル−シリアル変換回路416を介
してバンク0に、2対1セレクタ413の出力がパラレル
−シリアル変換回路417を介してバンク1に伝達され
る。つまり、2対1セレクタ412によって、入力ポートA
(10)のアドレス(セレクタ408の出力)と3対1セレクタ4
09の出力のうち、バンク0(図1のメモリセルアレイ42
0)をアクセスする方のアドレスを選択する。また、2対
1セレクタ413によって、入力ポートA(10)のアドレス
(セレクタ408の出力)と3対1セレクタ409の出力のう
ち、バンク1(図1のメモリセルアレイ424)をアクセス
する方のアドレスを選択する。
【0071】例えば、図3の4行目では、1回目のアク
セスでは、入力ポートA(10)と入力ポートC(12)のアドレ
スがアクセスされ、入力ポートA(10)はバンク0に,入
力ポートC(12)はバンク1にアクセスされるので、2対
1セレクタ412の出力は入力ポートA(10),2対1セレク
タ413の出力は入力ポートC(12)とし、つまり、2対1セ
レクタ412はセレクタ408の出力を選び、2対1セレクタ
413はセレクタ409の出力を選ぶように制御する。
【0072】図3の10行目では、1回目のアクセスで
は、入力ポートA(10)と入力ポートB(11)のアドレスがア
クセスされ、入力ポートA(10)はバンク1に、入力ポー
トB(11)はバンク0にアクセスするので、2対1セレク
タ412の出力は入力ポートB(11)を、2対1セレクタ413
の出力は入力ポートA(10)を、つまり、2対1セレクタ4
12はセレクタ409の出力を選び、2対1セレクタ413はセ
レクタ408の出力を選ぶように制御する。他のバンクア
ドレス80,81,82,83の組合せについても同様の考え方で
制御し、その制御信号の発生方法については、セレクタ
回路の詳細な説明で合わせて後に説明する。
【0073】アドレス切り替え回路478は、2回目のア
クセス(図2のアクセス501)のバンク制御のために、3
対2セレクタ476の出力を対応するバンクに伝達するた
めの切り替え回路である。上述したバンク切り替え回路
477と同様に、アドレス切り替え回路478は2つの2対1
セレクタ414,415で構成される。2対1セレクタ414の出
力がバンク0に、2対1セレクタ415の出力がバンク1
に伝達される。つまり、2対1セレクタ414で、2対1
セレクタ410の出力と入力ポートD(13)のアドレス(セレ
クタ411の出力)のうち、バンク0をアクセスする方の
アドレスを選択する。また、2対1セレクタ415で、セ
レクタ410の出力と入力ポートD(13)のアドレス(セレク
タ411の出力)のうち、バンク1をアクセスする方のア
ドレスを選択する。
【0074】例えば、図3の6行目では、2回目のアク
セスでは、入力ポートC(12)と入力ポートD(13)のアドレ
スがアクセスされ、入力ポートC(12)はバンク0に、入
力ポートD(13)はバンク1にアクセスするので、2対1
セレクタ414の出力は入力ポートC(12)、2対1セレクタ
415の出力は入力ポートD(13)とし、つまり、2対1セレ
クタ414はセレクタ410の出力を選び、2対1セレクタ41
5はセレクタ411の出力を選ぶよう制御する。
【0075】図3の7行目では、2回目のアクセスは、
入力ポートC(12)と入力ポートD(13)のアドレスがアクセ
スされ、入力ポートC(12)はバンク1に,入力ポートD(1
3)はバンク0にアクセスするので、2対1セレクタ414
の出力は入力ポートD(13)、2対1セレクタ415の出力は
入力ポートC(12)とし、つまり、2対1セレクタ414はセ
レクタ411の出力を選び、2対1セレクタ415はセレクタ
410の出力を選ぶよう制御する。他のバンクアドレス80,
81,82,83の組合せについても同様の考え方で制御する。
【0076】1回目のアクセスでバンク0をアクセスす
るアドレス(セレクタ412の出力)と2回目のアクセスで
バンク0をアクセスするアドレス(セレクタ414の出力)
をパラレル−シリアル変換回路416でシリアル信号(時
間的にずれた同一信号線上の信号)26に変換する。ま
た、1回目のアクセスでバンク1をアクセスするアドレ
ス(セレクタ413の出力)と2回目のアクセスでバンク1
をアクセスするアドレス(セレクタ415の出力)をパラレ
ル−シリアル変換回路417でシリアル信号27に変換す
る。これらのシリアル信号26および27により各バンクを
構成するメモリセルアレイ(図1のメモリセルアレイ42
0,424)をアクセスする。
【0077】以上説明したように、本発明のアドレス順
序制御回路418では、3対1セレクタ409で入力ポートB
(11),C(12),D(13)の1つを選ぶことで(入力ポートA(1
0)は1対1セレクタ408で固定的に選ばれている)、1
回目のアクセスでアクセスするアドレスを入力ポートA
(10)のアドレスと、可能であれば、入力ポートB(11),C
(12),D(13)の3つのうち入力ポートA(10)のアドレスと競
合しないアドレスにすることができ、また、2対1セレ
クタ410で、入力ポートB(11),入力ポートC(12)の1つを
選ぶことで(入力ポートD(13)は1対1セレクタで固定
的に選ばれている)、2回目のアクセスでアクセスする
アドレスは、1回目のアクセスでアクセスされたポート
の残りのポートのアドレスにすることができる。
【0078】このように、バンク制御のためのアドレス
切り替え回路477(セレクタ412と413からなる)によっ
て1回目のアクセスの各バンクをアクセスするアドレス
を決定し、バンク制御のためのアドレス切り替え回路47
8(セレクタ414と415からなる)によって2回目のアク
セスの各バンクをアクセスするアドレスを決定すること
ができる。1回目のアクセスでバンク0をアクセスする
アドレスと2回目のアクセスでバンク0をアクセスする
アドレスをパラレル−シリアル変換回路416でシリアル
信号26に変換することで、バンク0を時分割にアクセス
できる。また、1回目のアクセスでバンク1をアクセス
するアドレスと2回目のアクセスでバンク1をアクセス
するアドレスをパラレル−シリアル変換回路417でシリ
アル信号27に変換することで、バンク1を時分割にアク
セスできる。
【0079】図5は、図4に示されたセレクタ409,412,
413,410,414,415の1ビット分の詳細な回路を示したも
のである。上述したように、図3のように入力ポートA
(10),B(11),C(12),D(13)の順番に優先してアクセスする
ことにすると、セレクタ408,411は実体的な回路を設け
る必要はなく、それぞれ、入力ポートA(10),D(13)をそ
のまま出力すればよい。そのため図5では説明を省略し
ている。
【0080】図5に示した回路307の部分が、図4の3
対1セレクタ409の1ビット分の回路として働き、制御信
号50,51,52のどれか1つが高レベル(以下、"H"と略
す)になるように制御する。図5の参照符号41,42,43
は、それぞれ、入力ポートB(11),C(12),D(13)のアドレ
スの1ビット(すなわち図4の入力ポートB(11),C(12),
D(13)の入力ラッチの出力15,16,17の1ビット)を表わ
している。入力ポートB(11)のアドレスを選択する場合
には、制御信号50を"H"とし、制御信号51,52を低レベル
(以下、"L"と略する)とする。入力ポートC(12)のアド
レスを選択する場合には、制御信号51を"H"とし、制御
信号50,52を"L"とする。入力ポートD(13)のアドレスを
選択する場合には、制御信号52を"H"とし、制御信号50,
51を"L"とする。同様に、図5に示した回路308の部分
が、図4の2対1セレクタ410の1ビット分の回路とし
て働き、制御信号53,54のどちらか一方が"H"となるよう
に制御する。入力ポートB(11)のアドレスを選択する場
合には、制御信号53を"H"とし、制御信号54を"L"とす
る。入力ポートC(12)のアドレスを選択する場合には、
制御信号54を"H"とし、制御信号53を"L"とする。
【0081】図5のAND-OR-NOT回路303は、図4の2対
1セレクタ412の1ビット分の回路として働き、制御信
号55,56のどちらか一方が"H"となるように制御する。AN
D入力となる信号40は入力ポートA(10)のアドレスの1ビ
ット(すなわち図4の入力ポートA(10)の入力ラッチ400
の出力14の1ビット)を表わしている。入力ポートA(1
0)のアドレスを選択する場合には、制御信号55を"H"と
し、制御信号56を"L"とする。セレクタ409すなわち回路
307の出力を選択する場合には、制御信号56を"H"とし、
制御信号55を"L"とする。同様に、図5のAND-OR-NOT回
路304は、図4の2対1セレクタ413の1ビット分の回路
として働き、入力ポートA(10)のアドレスを選択する場
合には、制御信号56を"H"とし、制御信号55を"L"とす
る。セレクタ409すなわち回路307の出力を選択する場合
には、制御信号55を"H"とし、制御信号56を"L"とする。
すなわち、AND-OR-NOT回路304はAND-OR-NOT回路303と逆
の入力を選択するように働く。
【0082】また、図5のAND-OR-NOT回路311は、図4
の2対1セレクタ414の1ビット分の回路として働き、
制御信号57,58のどちらか一方が"H"となるように制御す
る。入力ポートD(13)のアドレスを選択する場合には、
制御信号58を"H"とし、制御信号57を"L"とする。セレク
タ410すなわち回路308の出力を選択する場合には、制御
信号57を"H"とし、制御信号58を"L"とする。同様に、図
5のAND-OR-NOT回路312は、図4の2対1セレクタ415の
1ビット分の回路として働き、入力ポートD(13)のアド
レスを選択する場合には、制御信号57を"H"とし、制御
信号58を"L"とする。セレクタ410すなわち回路308の出
力を選択する場合には、制御信号58を"H"とし、制御信
号57を"L"とする。すなわち、AND-OR-NOT回路312はAND-
OR-NOT回路311と逆の入力を選択するように働く。
【0083】なお、図1のデコード回路419,423でアド
レスをデコードするためには、相補信号が必要なので、
図5に示した回路において、AND-OR-NOT回路303,304,31
1,312の出力46,48,60,62の相補信号47,49,61,63も出力
するようになっている。
【0084】次に、図5の制御信号50,51,52の発生方法
について、図3,図4,図6を用いながら説明する。制御
信号50,51,52はセレクタ409のための制御信号であるの
で、図3の「409の出力」の欄の内容を満たすように、
制御信号50,51,52の値を設定すればよい。例えば、図3
の2行目では、1回目のアクセスには入力ポートA(10)
とD(13)が割り当てられるので、セレクタ409には入力ポ
ートD(13)のアドレスを出力しなければならない。つま
り、制御信号52を"H"とし、制御信号50,51を"L"とする
(図3の中の1と0はそれぞれ電位の"H"と"L"に対応す
るものとする)。
【0085】同様に、図3の3行目では、セレクタ409
には入力ポートC(12)のアドレスを出力しなければなら
ないので、制御信号51を"H"とし、制御信号50,52を"L"
とする。また、図3の4行目は3行目と同じであり、5
行目では、セレクタ409には入力ポートB(11)のアドレス
を出力しなければならないので、制御信号50を"H"と
し、制御信号51,52を"L"とする。6行目から12行目は
5行目と同じである。13行目と14行目は3行目と同
じく、入力ポートC(12)のアドレスを出力するよう制御
信号51を"H"とし、制御信号50,52を"L"とする。15行
目は2行目と同じく、入力ポートD(13)のアドレスを出
力するよう制御信号52を"H"とし、制御信号50,51を"L"
とする。1行目と16行目は、1回目のアクセスには入
力ポートA(10)だけが割り当てられるので、セレクタ409
の出力はdon't careとなるが、図3には入力ポートD(1
3)のアドレスを出力する例を示している。
【0086】図3に示したバンクアドレス80,81,82,83
と制御信号50,51,52の関係から、制御信号50,51,52は図
6に示した回路で容易に発生できる。例えば、制御信号
52が"H"となる条件は1行目,2行目,15行目,16行目
なので、/80,/81,/82の論理積が1("H")のときと、80,8
1,82の論理積が1("H")のときとなる。なお、ここで、"
/"は否定を表わす記号とする。つまり、 〔52〕=〔/80〕*〔/81〕*〔/82〕+〔80〕*〔81〕*〔8
2〕 と表わされる。ここで、記号"*"は論理積を、"+"は論理
和を、"〔〕"は論理関数(例えば、〔80〕は制御信号80
の論理関数)を表わしている。図6の否定回路315、3
入力AND回路319,321、2入力OR回路320は、この制御信号
52の発生論理をゲート回路で表わしたものである。図6
では、各ポートのアドレスの下位7ビット目がバンクア
ドレスである場合を示している。
【0087】また、図3において、制御信号51が"H"と
なる条件は3行目,4行目,13行目,14行目なので、/
80,/81,82の論理積が1のときと、80,81,/82の論理積が
1のときとなる。つまり、 〔51〕=〔/80〕*〔/81〕*〔82〕+〔80〕*〔81〕*〔/8
2〕 と表わされる。図6の否定回路315,316,317、3入力AND
回路322,324、2入力OR回路323は、この制御信号51の発
生論理をゲート回路で表わしたものである。
【0088】さらに、図3において、制御信号50が"H"
となる条件は図3の5行目から12行目までなので、/8
0,81の論理積が1のときと、80,/81の論理積が1のとき
となる。つまり、 〔50〕=〔/80〕*〔81〕+〔80〕*〔/81〕 と表わされる。図6の否定回路315,316、2入力AND回路
325,326、2入力OR回路327は、この制御信号50の発生論
理をゲート回路で表わしたものである。以上説明したよ
うに、図6の回路により図4のセレクタ409の制御信号5
0,51,52を発生することができる。
【0089】次に、図5の制御信号53,54の発生方法に
ついて、図3,図4,図6,図7を参照しながら説明す
る。制御信号53,54はセレクタ410の制御信号なので、図
3の「410の出力」の欄の内容を満たすように、制御信
号53,54を設定すればよい。図3の1行目から4行目で
は、2回目のアクセスに割り当てられる入力ポートD(1
3)以外のポートはB(11)なので、セレクタ410には入力ポ
ートB(11)のアドレスを出力しなければならない。つま
り、制御信号53を"H"とし、制御信号54を"L"とする。図
3の5行目から12行目では、2回目のアクセスに割り
当てられる入力ポートD(13)以外のポートはC(12)なの
で、セレクタ410には入力ポートC(12)のアドレスを出力
しなければならない。つまり、制御信号54を"H"とし、5
3を"L"とする。図3の13行目から16行目は、1行目
から4行目と同じであり、制御信号53を"H"とし、制御
信号54を"L"とする。
【0090】制御信号53,54とバンクアドレス80,81,82,
83の関係を図7に示す。この図7の関係から、図6に示
すように制御信号53,54を発生できる。図3の制御信号5
0と図7の制御信号53,54を比べると、制御信号50と54は
まったく同じで、制御信号53はその反転信号になってい
ることがわかる。つまり、 〔54〕=〔50〕 〔53〕=〔/50〕 と表わされる。図6のインバータ回路328,329は、この
制御信号53,54の発生論理をゲート回路で表わしたもの
である。
【0091】次に、図5の制御信号55,56の発生方法に
ついて、図3,図4,図6,図7を用いながら説明する。
制御信号55,56はセレクタ412,413の制御信号なので、図
3の1回目のアクセスに割り当てられるポートがアクセ
スしようとするバンクに、そのポートのアドレスが伝わ
るように制御信号55,56を設定すればよい。例えば、図
3の2行目では、1回目のアクセスには、入力ポートA
(10)とD(13)が割り当てられ、入力ポートA(10)はバンク
0を、入力ポートD(13)はバンク1をアクセスするの
で、セレクタ412には入力ポートA(10)のアドレスを、セ
レクタ413には入力ポートD(13)のアドレスすなわちセレ
クタ409の出力を出力しなければならない。すなわち、
制御信号55を"H"とし、制御信号56を"L"とする。入力ポ
ートA(10)は最優先ポートなので、必ず1回目のアクセ
スに選ばれるので、入力ポートA(10)がアクセスしよう
とするバンクに入力ポートA(10)のアドレスを伝え、入
力ポートA(10)がアクセスしないバンクにセレクタ409の
出力を伝えるようにすればよい。
【0092】図7は制御信号55,56とバンクアドレス80,
81,82,83の関係をも示している。入力ポートA(10)のバ
ンクアドレス80が「0」のときに、1回目のアクセスの
バンク0に入力ポートA(10)のアドレス40を伝えるよう
に制御信号55を「1」にし,制御信号56を「0」とす
る。入力ポートA(10)のバンクアドレス80が「1」のと
きに、1回目のアクセスのバンク1に入力ポートA(10)
のアドレス40を伝えるように制御信号56を「1」にし,
制御信号55を「0」とする。図7の「409の出力」の欄
は、1回目のアクセスとして割り当てられる入力ポート
A(10)以外のポートを表わしており、2行目から8行目
までは、バンクアドレス80が「0」なので、バンクアド
レスが「1」のポートが1回目のアクセスに選ばれてい
ることが分かる。このバンクアドレスが「1」のポート
がセレクタ409に出力されるので、セレクタ413はセレク
タ409の出力を選べばよい。また、9行目から15行目
までは、バンクアドレス80が「1」なので、入力ポート
A(10)以外の1回目のアクセスのアドレスとしてバンク
アドレスが「0」のポートが選ばれていることが分か
る。このバンクアドレスが「0」のポートがセレクタ40
9に出力されるので、セレクタ413はセレクタ409の出力
を選べばよい。
【0093】図3の1行目と16行目は、1回目のアク
セスには入力ポートA(10)しか割り当てられないので、
図7のように制御信号55,56を設定すると、入力ポートA
(10)がアクセスしないバンクには、アクセスする必要が
ないアドレスが出力されてしまう。制御信号50,51,52を
図3のように設定しているので、1行目と16行目で
は、セレクタ409には入力ポートD(13)のアドレスが出力
される。読み出しであれば、必要がないアドレスをアク
セスしてもよいが、書き込みでは誤情報を書き込むこと
になるので、この誤書き込みは避けなければならない
(読み出しであっても、不必要なアクセスは行わない方
が消費電力を抑えるためには望ましいが、図5のアクセ
ス順序回路ではポートの競合を扱わない回路の一例を示
している)。この誤書き込みを避ける方法は後で述べ
る。なお、制御信号55はバンクアドレス80の相補信号、
制御信号56は制御信号55と同じでよいので、図6に示す
ように、インバータ回路368,369を用いることによって
バンクアドレス80から制御信号55,56を発生することが
できる。
【0094】図5の制御信号57,58の発生方法につい
て、図3,図4,図8,図9を用いながら説明する。制御
信号57,58はセレクタ414,415の制御信号なので、図3の
2回目のアクセスに割り当てられるポートがアクセスし
ようとするバンクにそのポートのアドレスが伝わるよう
に制御信号57,58を設定すればよい。例えば、図8の1
行目では、2回目のアクセスには、入力ポートB(11)だ
けが割り当てられ、入力ポートB(11)はバンク0をアク
セスするので、セレクタ414には入力ポートB(11)のアド
レスすなわちセレクタ410の出力を出力しなければなら
ない。そのために、制御信号57を"H"とし、制御信号58
を"L"とする。図8の2行目から3行目は1行目と同じ
である。
【0095】図8の4行目では、2回目のアクセスに
は、入力ポートB(11)とD(13)が割り当てられ、入力ポー
トB(11)はバンク0をアクセスし、入力ポートD(13)はバ
ンク1をアクセスするので、セレクタ414には入力ポー
トB(11)のアドレスすなわちセレクタ410の出力を、セレ
クタ415には入力ポートD(13)のアドレスを出力しなけれ
ばならない。そのために、制御信号57を"H"とし、制御
信号58を"L"とする。図8の5行目では、2回目のアク
セスには、入力ポートC(12)だけが割り当てられ、入力
ポートC(12)はバンク0をアクセスするので、セレクタ4
14には入力ポートC(12)のアドレスすなわちセレクタ410
の出力を出力しなければならない。そのために、制御信
号57を"H"とし、制御信号58を"L"とする。
【0096】図8の6行目と10行目では、2回目のア
クセスには、入力ポートC(12)とD(13)が割り当てられ、
入力ポートC(12)はバンク0を、入力ポートD(13)はバン
ク1をアクセスするので、セレクタ414には入力ポートC
(12)のアドレスすなわちセレクタ410の出力を、セレク
タ415には入力ポートD(13)のアドレスを出力しなければ
ならない。そのために、制御信号57を"H"とし、制御信
号58を"L"とする。図8の7行目と11行目では、2回
目のアクセスには、入力ポートC(12)とD(13)が割り当て
られ、入力ポートC(12)はバンク1を、入力ポートD(13)
はバンク0をアクセスするので、セレクタ414には入力
ポートD(13)のアドレスを、セレクタ415には入力ポート
C(12)のアドレスすなわちセレクタ410の出力を出力しな
ければならない。そのために、制御信号58を"H"とし、
制御信号57を"L"とする。
【0097】図8の8行目と12行目では、2回目のア
クセスには、入力ポートC(12)だけが割り当てられ、入
力ポートC(12)はバンク1をアクセスするので、セレク
タ415には入力ポートC(12)のアドレスすなわちセレクタ
410の出力を出力しなければならない。そのために、制
御信号58を"H"とし、制御信号57を"L"とする。図8の9
行目では、2回目のアクセスには、入力ポートC(12)だ
けが割り当てられ、入力ポートC(12)はバンク0をアク
セスするので、セレクタ414には入力ポートC(12)のアド
レスすなわちセレクタ410の出力を出力しなければなら
ない。そのために、制御信号57を"H"とし、制御信号58
を"L"とする。
【0098】図8の13行目では、2回目のアクセスに
は、入力ポートB(11)とD(13)が割り当てられ、入力ポー
トB(11)はバンク1をアクセスし、入力ポートD(13)はバ
ンク0をアクセスするので、セレクタ414には入力ポー
トD(13)のアドレスを、セレクタ415には入力ポートB(1
1)のアドレスすなわちセレクタ410の出力を出力しなけ
ればならない。そのために、制御信号58を"H"とし、制
御信号57を"L"とする。図8の14行目から16行目で
は、2回目のアクセスには、入力ポートB(11)だけが割
り当てられ、入力ポートB(11)はバンク1をアクセスす
るので、セレクタ415には入力ポートB(11)のアドレスす
なわちセレクタ410の出力を出力しなければならない。
そのために、制御信号58を"H"とし、制御信号57を"L"と
する。
【0099】図8に示したバンクアドレス80,81,82,83
と制御信号57,58の関係から、制御信号57,58は図9に示
すような回路で容易に発生できる。例えば、制御信号57
が"H"となる条件は1行目から6行目,9行目から10行
目なので、/80,/81の論理積が1("H")のとき、/80,81,/
82の論理積が1のとき、80,/81,/82の論理積が1のとき
となる。つまり、 〔57〕=〔/80〕*〔/81〕+〔/80〕*〔81〕*〔/82〕+〔8
0〕*〔/81〕*〔/82〕 と表わされる。また、制御信号58は制御信号57の相補信
号なので、制御信号57を反転することで発生できる。図
9の2入力AND回路330、3入力AND回路331,332、3入力
OR回路333は、この制御信号57の発生論理をゲート回路
で表わしたもので、インバータ回路334は制御信号58の
発生論理をゲート回路で表わしたものである。以上説明
したように、図9の回路により図4のセレクタ414,415
の制御信号57,58を発生することができる。
【0100】図7に示された「C1」,「C2」の欄は、各
入力ポートの競合により、それぞれ入力ポートC(12),
入力ポートD(13)のアドレスがアクセスできないことを
示す信号を表わしている。図3の1回目アクセスと2回
目アクセスに割り当てられるポートより、アクセスでき
ないポートは、入力ポートC(12)か入力ポートD(13)なの
で、信号C1,C2を用いて、入力ポートC(12),入力ポートD
(13)の受け付けたアドレスがアクセスできないことを外
部に知らせる。メモリの制御論理は、信号C1,C2が
「1」のときは、もう一度入力ポートC(12),入力ポート
D(13)の受け付けたアドレスを入力するようにすればよ
い。このとき、前サイクルでアクセスできなかったアド
レスを、入力ポートA(10),入力ポートB(11)に入力する
ようにすると、必ずアクセスできる。
【0101】次に、信号C1の発生方法について説明す
る。入力ポートC(12)のアドレスが1回目アクセスと2
回目アクセスでアクセスされないのは、図3の1行目,
2行目,15行目,16行目であるので、 〔C1〕=〔/80〕*〔/81〕*〔/82〕+〔80〕*〔81〕*〔8
2〕 と表わされる。既に説明した他の制御信号と同様、この
信号C1の発生論理をゲート回路で実現すれば信号C1が発
生できる。図9の3入力AND回路370,371,384はこれを示
している。信号C2についても同様に、 〔C2〕=〔/80〕*〔/81〕*〔/83〕+〔/80〕*〔81〕*〔/8
2〕*〔/83〕+〔/80〕*〔81〕*〔82〕*〔83〕+〔80〕*
〔/81〕*〔/82〕*〔/83〕+〔80〕*〔/81〕*〔82〕*〔8
3〕+〔80〕*〔81〕*〔83〕 と表わされる。図9の3入力AND回路372,373,374,375,3
76,377および6入力OR回路385はこの信号C2の発生論理
をゲート回路で実現したものである。
【0102】図7の信号「C3」,「C4」,「C5」,「C6」
の欄は、各ポートの競合により、それぞれ、1回目アク
セスのバンク0へのアクセスがないこと、1回目アクセ
スのバンク1へのアクセスがないこと、2回目アクセス
のバンク0へのアクセスがないこと、2回目アクセスの
バンク1へのアクセスがないことを示す信号を表わして
いる。この信号C3,C4,C5,C6を用いて、図17の回路の
説明で述べるように、あるバンクにアクセスがないとき
の誤書き込みを防止する。まず、信号C3について説明す
る。1回目アクセスのバンク0へのアクセスがないの
は、図3より、16行目だけなので、 〔C3〕=〔80〕*〔81〕*〔82〕*〔83〕 と表わされる。図9の4入力AND回路378はこの信号C3の
発生論理を実現するための回路である。
【0103】次に、信号C4について説明する。1回目ア
クセスのバンク1へのアクセスがないのは、図3より、
1行目だけなので、 〔C4〕=〔/80〕*〔/81〕*〔/82〕*〔/83〕 と表わされる。図9の4入力AND回路379はこの信号C4の
発生論理を実現するための回路である。次に、信号C5に
ついて説明する。2回目アクセスのバンク0へのアクセ
スがないのは、図3より、8行目,12行目,14行目,
15行目,16行目なので、 〔C5〕=〔/80〕*〔81〕*〔82〕*〔83〕+〔80〕*〔/81〕
*〔82〕*〔83〕+〔80〕*〔81〕*〔/82〕*〔83〕+〔80〕
*〔81〕*〔82〕 と表わされる。図9の4入力AND回路380,381,382,3入
力AND回路383,4入力OR回路386は、この信号C5の発生論
理を実現するための回路である。
【0104】次に、信号C6について説明する。2回目ア
クセスのバンク1へのアクセスがないのは、図3より、
1行目,2行目,3行目,5行目,9行目なので、 〔C6〕=〔/80〕*〔/81〕*〔/82〕+〔/80〕*〔/81〕*〔8
2〕*〔/83〕+〔/80〕*〔81〕*〔/82〕*〔/83〕+〔80〕*
〔/81〕*〔/82〕*〔/83〕 と表わされる。図9の3入力AND回路387,4入力AND回路
388,389,390,4入力OR回路391は、この信号C6の発生論
理を実現するための回路である。
【0105】図10は、図4のパラレル−シリアル変換
回路416,417の一実施例の回路を示している。図10の
信号46,60,90は、それぞれ図4の信号22,24,26に対応す
る信号を示している。図10の回路は、アドレス信号4
6,60の一方を選択して時刻0に出力90にアドレスを出力
し、アドレス信号46,60の残りの一方を選択して1/3
サイクル遅れて時刻1に出力90にアドレスを出力する。
【0106】図10の回路の動作を図11を用いて説明
する。内部クロック91,92には、それぞれ基準クロック3
0の立上りエッジと、基準クロック30から1/3サイクル遅
れたクロック31の立上りエッジから作られた一定のパル
ス幅の信号が加えられる。待機状態では出力90の電位
は"L"となっている。信号46が確定した後、内部クロッ
ク91が"L"となり、例えば、信号46が"L"であれば、出力
90が"H"となる(図11の実線はこのような状態を示し
ている)。逆に、信号46が"H"であれば、出力90は"L"の
まま変化しない(図11の破線はこのような状態を示し
ている)。このとき、内部クロック92は"H"なので、P
チャネルMOSトランジスタ(以下、PMOSと略す)
203は非導通(以下、OFFと略す)の状態にあり、信号60
の値は出力90に影響しない。また、フリップフロップ
(インバータ335,336からなる)は、出力90がハイイン
ピーダンスとなるのを防ぐための素子であり、出力90の
電位の変化を妨げないように十分小さく設計しておく。
【0107】出力90が"H"となると、この信号は、各イ
ンバータ337,338,339,340の特性に依存する遅延時間だ
け遅れて、リセットパルスRPが"H"になり、Nチャネル
MOSトランジスタ(以下、NMOSと略す)100のゲ
ートに加わる。すると、NMOS 100が導通(以下、ON
と略す)の状態になり、出力90は"L"にもどる。PMO
S201とNMOS100を流れる貫通電流が十分小さくなる
よう、インバータ337,338,339,340の遅延時間と内部ク
ロック91のパルス幅がほぼ同じとなるように設計してお
く。同様に、1/3サイクル遅れて、内部クロック92
が"L"となり、信号60が"L"であれば、出力90が"H"とな
り、信号60が"H"であれば、出力90は"L"のまま変化しな
い。このとき、内部クロック91は"H"なので、PMOS2
01はOFFの状態にあり、信号46の値は出力90に影響しな
い。インバータ337,338,339,340,NMOS100が前述し
たのと同様に働くことはいうまでもない。
【0108】図10に示すように、パラレル−シリアル
変換回路を内部クロック91,92と1回目アクセスのアド
レス信号46と2回目アクセスのアドレス信号60の論理を
作るPMOS200,201,202,203およびリセットトランジ
スタ100で構成し、内部クロック91,92の立ち下がり時刻
を1/3サイクルずらし、内部クロックの一方91と1回
目アクセスのアドレス信号46の論理を作るPMOS200,
201と1/3サイクルずれたもう一方の内部クロック92
と2回目アクセスのアドレス信号60の論理を作るPMO
S202,203を並列に接続することによって、1回目アク
セスを時刻0に開始し、2回目アクセスを1/3サイク
ルずれた時刻1に開始することが可能となる。
【0109】また、出力90にフリップフロップ(インバ
ータ335,336からなる)を接続することによって、内部ク
ロック91,92がともに"H"となる期間も、出力90はハイイ
ンピーダンスとならないので、低い動作周波数のときで
も、安定な動作が達成される。さらに出力90にリセット
トランジスタ100のドレインを接続し、リセットトラン
ジスタ100のゲート電極RPには出力90と同相で所定の時
刻遅れた信号を加えることによって、リセットトランジ
スタ100のゲート容量が入力アドレス信号46,60,内部ク
ロック91,92の容量に含まれないようにできるので高速
化が達成される。
【0110】図12に本発明の4ポートメモリの内部の
1ポートSRAMの回路のセンスアンプと図1のラッチ
404,405の一実施例を示す。同図において、鎖線347は図
1のブロック図のラッチ404の1ビット分の回路を、鎖
線348は図1のブロック図のラッチ405の1ビット分の回
路を示している。次に、図12の回路の動作を説明す
る。時刻0にアクセスが開始され、図10の内部クロッ
ク91が立ち下がると、アドレス信号46が"L"のときアド
レスバッファ信号である出力90が"H"となる。デコード
回路419(図1)により、ワード線が選択される。ワー
ド線が選択されることにより、メモリセルに読み出し電
流が流れ、データ線対に電位差が生じる。選択されたデ
ータ線対の電位差がコモンデータ線CD1,CD2(図12)
に伝達される。コモンデータ線CD1,CD2は、図1のブロ
ック図の信号28に対応する信号である。
【0111】図1の説明で述べたように、時刻0に開始
されたアクセスにより図1のメモリセルアレイ420から
読み出された信号は、ラッチ回路404に記憶され、1/
3サイクル遅れて時刻1に開始されたアクセスによりメ
モリセルアレイ420から読み出された信号は、ラッチ回
路405に記憶される。時刻0に開始されたアクセスによ
りメモリセルアレイ420から読み出された信号が、コモ
ンデータ線CD1,CD2に電位差を生じる時刻に、スイッチ
MOS204,205,101,102(図12)の制御信号/DEMUX1,D
EMUX1をそれぞれ"L","H"とする(/DEMUX1はDEMUX1の相
補信号である)。/DEMUX1,DEMUX1をそれぞれ"L","H"と
することによって、スイッチMOS204,205,101,102がO
Nとなり、コモンデータ線CD1,CD2の電位差が、センスア
ンプの入力信号線S1,S2に伝達される。
【0112】スイッチMOS204,205,101,102の制御信
号/DEMUX1,DEMUX1をそれぞれ"L","H"とする時刻には、
スイッチMOS206,207,103,104の制御信号/DEMUX2,DEM
UX2は、"H","L"のまま変化させない(/DEMUX2はDEMUX2
の相補信号である)。/DEMUX2,DEMUX2が、"H","L"なの
で、スイッチMOS206,207,103,104はOFFを保ち、前サ
イクルの読み出しデータLO2を破壊することはない。コ
モンデータ線CD1,CD2の電位差を、センスアンプの入力
信号線S1,S2に伝達した後、センスアンプの制御信号SA1
を"H"として、S1,S2の電位差を増幅し、SRラッチ(NAN
D回路343,344からなる)347に記憶する。図12のSRラ
ッチからの出力信号LO1は、図1のブロック図の信号33
に対応している。
【0113】同様に、1/3サイクル遅れて時刻1に開
始されたアクセスが読み出しである場合は、図1のメモ
リセルアレイ420から読み出された信号が、図12のコ
モンデータ線CD1,CD2に電位差を生じる時刻に、スイッ
チMOS206,207,103,104の制御信号/DEMUX2,DEMUX2を
それぞれ"L","H"とする。/DEMUX2,DEMUX2をそれぞれ"
L","H"とすることで、スイッチMOS206,207,103,104
がONとなり、コモンデータ線CD1,CD2の電位差が、セン
スアンプの入力信号線S3,S4に伝達される。/DEMUX2,DEM
UX2をそれぞれ"L","H"とする時刻には、制御信号/DEMUX
1,DEMUX1は、"H","L"のまま変化させない。/DEMUX1,DEM
UX1が、"H","L"なので、スイッチMOS204,205,101,10
2はOFFを保つ。
【0114】コモンデータ線CD1,CD2の電位差を、セン
スアンプの入力信号線S3,S4に伝達した後、センスアン
プの制御信号SA2を"H"として、S3,S4の電位差を増幅
し、SRラッチ(NAND回路345,346からなる)348に記憶す
る。センスアンプ342,SRラッチ(NAND回路345,346から
なる)348、スイッチMOS206,207,103,104は、1/3
サイクル遅れて開始されたアクセスの読み出し信号を、
SRラッチ(NAND回路345,346からなる)348に記憶するこ
と以外は、時刻0に開始されたアクセスの読み出しの上
の説明と同様に働く。SRラッチ348からの出力信号LO2
は図1のブロック図の信号34に対応している。
【0115】次に、書き込み時の動作を説明する。書き
込み時には、図12のWCONTL(書き込み制御信号)を、
書き込みアドレスに対応するワード線が"H"となるタイ
ミングに合わせて"H"とするとともに、DIN(書き込みデ
ータ)に、書き込みアドレスに対応するワード線が"H"
となるタイミングに合わせて書き込みデータが加えられ
る。制御信号WCONTLが"H"となることで、NMOS105,1
06がONとなり、コモンデータ線対CD1,CD2の一方が、書
き込みデータに対応して、"GND"(読み出し時の低レベ
ルに対してより低い電位)になる。列選択信号により、
ワード線とほぼ同じタイミングで列を選択する。選択さ
れた列のスイッチMOSがONとなり、コモンデータ線対
CD1,CD2の一方が、"GND"になることで、選択された列の
データ線対の一方が、"GND"となる。選択された列のデ
ータ線対の一方が、"GND"となることで(かつワード線
が選択されることで)、メモリセルにデータが書き込ま
れる。以上説明したように、図12の回路により、内部
の1ポートSRAM回路が実現できる。
【0116】図15は図1の出力セレクタ422,426,427,
428の詳細な回路図を示している。図15の鎖線353が図
1のセレクタ422に、鎖線356が図1のセレクタ426に、
鎖線360が図1のセレクタ427に、鎖線364が図1のセレ
クタ428に対応している。LO1,LO2,LO3,LO4は、それぞ
れ、バンク0の1回目アクセスの結果を記憶するラッチ
404(図1)の出力、バンク0の2回目アクセスの結果
を記憶するラッチ405の出力、バンク1の1回目アクセ
スの結果を記憶するラッチ406の出力、バンク1の2回
目アクセスの結果を記憶するラッチ407の出力を表わし
ている。また、図15の出力信号SO1,SO2,SO3,SO4は、
それぞれ、図1の出力信号37,38,85,86に対応してい
る。鎖線353,356,360,364の制御信号SEL1,SEL2,SEL3,SE
L4,SEL5,SEL6,SEL7,SEL8,SEL9,SEL10,SEL11,SEL12,SEL1
3,SEL14の真理値表を、図13および図14に示す。
【0117】次に、図15の回路の動作と制御信号の発
生方法を図13および図14の真理値表を用いて説明す
る。図13の「422が選ぶラッチ出力」の欄は、読み出
した値を出力ポートA(37)に出力するために図1のセレ
クタ422が選ばなければならないラッチ出力を示してお
り、同じく「426が選ぶラッチ出力」の欄は、読み出し
た値を出力ポートB(38)に出力するために図1のセレク
タ426が選ばなければならないラッチ出力を示してい
る。
【0118】まず、セレクタ422(図1)の制御につい
て説明する。例えば、図13の1行目では、1回目のア
クセスには、入力ポートA(10)が割り当てられ、バンク
0をアクセスするので、入力ポートA(10)の読み出した
値はラッチ404(図1)に記憶されている。これを出力
ポートA(37)に出力するためには、セレクタ422はラッチ
404の出力33すなわち図15に示すLO1を選ばなければな
らない。そのために、制御信号SEL1を"H"とし,制御信
号SEL2を"L"とする。同2行目から8行目までも、入力
ポートA(10)の読み出しデータはラッチ404に記憶されて
いるので、同様に、制御信号SEL1を"H"とし,制御信号S
EL2を"L"とする。同9行目から16行目までは、入力ポ
ートA(10)の読み出しデータはラッチ406に記憶されてい
るので、制御信号SEL2を"H"とし,制御信号SEL1を"L"と
する。
【0119】次に、セレクタ426(図1)の制御につい
て説明する。図13の1行目では、2回目のアクセス
に、入力ポートB(11)が割り当てられ、バンク0をアク
セスするので、入力ポートB(11)の読み出した値はラッ
チ405に記憶されている。これを出力ポートB(38)に出力
するためには、セレクタ426は、ラッチ405の出力34すな
わちLO2を選ばなければならない。そのために、制御信
号SEL4を"H"とし、制御信号SEL3,SEL5,SEL6を"L"とす
る。同2行目から4行目も、入力ポートB(11)の読み出
しデータはラッチ405に記憶されているので、同様に、
制御信号SEL4を"H"とし、制御信号SEL3,SEL5,SEL6を"L"
とする。同5行目から8行目では、1回目のアクセス
に、入力ポートB(11)が割り当てられ、バンク1をアク
セスするので、入力ポートB(11)の読み出した値はラッ
チ406に記憶されている。これを出力ポートB(38)に出力
するためには、セレクタ426は、ラッチ406の出力35すな
わちLO3を選ばなければならない。制御信号SEL5を"H"と
し、制御信号SEL3,SEL4,SEL6を"L"とする。
【0120】同9行目から12行目では、1回目のアク
セスに、入力ポートB(11)が割り当てられ、バンク0を
アクセスするので、入力ポートB(11)の読み出した値は
ラッチ404に記憶されている。これを出力ポートB(38)に
出力するためには、セレクタ426は、404の出力33すなわ
ちLO1を選ばなければならない。そのために、制御信号S
EL3を"H"とし、制御信号SEL4,SEL5,SEL6を"L"とする。
同13行目から16行目では、2回目のアクセスに、入
力ポートB(11)が割り当てられ、バンク1をアクセスす
るので、入力ポートB(11)の読み出した値はラッチ407に
記憶されている。これを出力ポートB(38)に出力するた
めには、セレクタ426は、ラッチ407の出力36すなわちLO
4を選ばなければならない。そのために、制御信号SEL6
を"H"とし、制御信号SEL3,SEL4,SEL5を"L"とする。
【0121】次に、セレクタ427(図1)の制御につい
て説明する。図14の「427が選ぶラッチ出力」の欄
は、読み出した値を出力ポートC(85)に出力するために
図1のセレクタ427が選ばなければならないラッチ出力
を示しており、同じく「428が選ぶラッチ出力」の欄
は、読み出した値を出力ポートD(86)に出力するために
図1のセレクタ428が選ばなければならないラッチ出力
を示している。図14の1行目と2行目,15行目と1
6行目では、入力ポートC(12)のアドレスはアクセスさ
れないので、セレクタ427の制御信号SEL7,SEL8,SEL9,SE
L10はdon't careとなる。同3行目と4行目では、1回
目のアクセスに、入力ポートC(12)が割り当てられ、バ
ンク1をアクセスするので、入力ポートC(12)の読み出
した値はラッチ406に記憶されている。これを出力ポー
トC(85)に出力するためには、セレクタ427は、ラッチ40
6の出力35すなわちLO3を選ばなければならない。そのた
めに、制御信号SEL9を"H"とし、制御信号SEL7,SEL8,SEL
10を"L"とする。
【0122】同5行目と6行目,9行目と10行目で
は、2回目のアクセスに、入力ポートC(12)が割り当て
られ、バンク0をアクセスするので、入力ポートC(12)
の読み出した値はラッチ405に記憶されている。これを
出力ポートC(85)に出力するためには、セレクタ427は、
ラッチ405の出力34すなわちLO2を選ばなければならな
い。そのために、制御信号SEL8を"H"とし、制御信号SEL
7,SEL9,SEL10を"L"とする。同7行目と8行目,11行目
と12行目では、2回目のアクセスに、入力ポートC(1
2)が割り当てられ、バンク1をアクセスするので、入力
ポートC(12)の読み出した値はラッチ407に記憶されてい
る。これを出力ポートC(85)に出力するためには、セレ
クタ427は、ラッチ407の出力36すなわちLO4を選ばなけ
ればならない。そのために、制御信号SEL10を"H"とし、
制御信号SEL7,SEL8,SEL9を"L"とする。同13行目と1
4行目では、1回目のアクセスに、入力ポートC(12)が
割り当てられ、バンク0をアクセスするので、入力ポー
トC(12)の読み出した値はラッチ404に記憶されている。
これを出力ポートC(85)に出力するためには、セレクタ4
27は、ラッチ404の出力33すなわちLO1を選ばなければな
らない。そのために、制御信号SEL7を"H"とし、制御信
号SEL8,SEL9,SEL10を"L"とする。
【0123】次に、セレクタ428(図1)の制御につい
て説明する。図14の1行目,3行目,5行目,8行目,9
行目,12行目,14行目,16行目では、入力ポートD(1
3)のアドレスはアクセスされないので、セレクタ428の
制御信号SEL11,SEL12,SEL13,SEL14はdon't careとな
る。同2行目では、1回目のアクセスに、入力ポートD
(13)が割り当てられ、バンク1をアクセスするので、入
力ポートD(13)の読み出した値はラッチ406に記憶されて
いる。これを出力ポートD(86)に出力するためには、セ
レクタ428は、ラッチ406の出力35すなわちLO3を選ばな
ければならない。そのために、制御信号SEL13を"H"と
し、制御信号SEL11,SEL12,SEL14を"L"とする。同4行
目,6行目,10行目では、2回目のアクセスに、入力ポ
ートD(13)が割り当てられ、バンク1をアクセスするの
で、入力ポートD(13)の読み出した値はラッチ407に記憶
されている。これを出力ポートD(86)に出力するために
は、セレクタ428は、ラッチ407の出力36すなわちLO4を
選ばなければならない。そのために、制御信号SEL14を"
H"とし、制御信号SEL11,SEL12,SEL13を"L"とする。
【0124】同7行目,11行目,13行目では、2回目
のアクセスに、入力ポートD(13)が割り当てられ、バン
ク0をアクセスするので、入力ポートD(13)の読み出し
た値はラッチ405に記憶されている。これを出力ポートD
(86)に出力するためには、セレクタ428は、ラッチ405の
出力34すなわちLO2を選ばなければならない。そのため
に、制御信号SEL12を"H"とし、制御信号SEL11,SEL13,SE
L14を"L"とする。同15行目では、1回目のアクセス
に、入力ポートD(13)が割り当てられ、バンク0をアク
セスするので、入力ポートD(13)の読み出した値はラッ
チ404に記憶されている。これを出力ポートD(86)に出力
するためには、セレクタ428は、ラッチ404の出力33すな
わちLO1を選ばなければならない。そのために、制御信
号SEL11を"H"とし、制御信号SEL12,SEL13,SEL14を"L"と
する。
【0125】以上説明したように、図15の回路を、図
13および14の真理値表に示されたように制御するこ
とにより、内部の1ポートSRAM回路から読み出した
データを外部に出力することができる。図13および図
14の制御論理は、図3,図7,図8で説明したのと同様
の考え方で容易に具体的なゲート回路で実現できる。
【0126】図16は、内部の1ポートSRAM回路の
書き込み制御のための回路を示している。図16のWA,W
B,WC,WDは、それぞれ、入力ポートA(10),B(11),C(12),D
(13)のアクセスが書き込みであることを示す制御信号を
表わし、"H"のときに書き込みの状態を表わすものとす
る。図5の回路と同様の構成とし、図5の回路と同じ制
御信号50,51,52,53,54,55,56,57,58を用いて制御するこ
とによって、m回目アクセスのバンクnへのアクセスが書
き込みであることを示す信号(WBnCm)を発生すること
ができる。WB0C1,WB1C1,WB0C2,WB1C2は、それぞれ、1
回目アクセスのバンク0へのアクセスが書き込みである
ことを、1回目アクセスのバンク1へのアクセスが書き
込みであることを、2回目アクセスのバンク0へのアク
セスが書き込みであることを、2回目アクセスのバンク
1へのアクセスが書き込みであることを示す。回路の動
作は図5と同じなので、詳細な説明は省略する。WB0C1,
WB1C1,WB0C2,WB1C2は、"L"のときに書き込みの状態とな
る。
【0127】図17は、図16の回路の出力(WB0C1,WB
1C1,WB0C2,WB1C2)と図9の回路の出力(C3,C4,C5,C6)
を用いて各バンクの書き込み制御信号WCONTLを発生する
回路を示している。図17において、バンク0-WCONTL
は、バンク0のメモリセルアレイに対する書き込み制御
信号WCONTLを表し、バンク1-WCONTLは、バンク1のメ
モリセルアレイに対する書き込み制御信号WCONTLを表わ
している(図12参照)。書き込み制御信号WCONTLが"
H"のときにメモリセルにデータが書き込まれる。
【0128】信号WB0C1が"L"かつC3が"L"のとき、すな
わち、1回目アクセスのバンク0へのアクセスが書き込
みであり、1回目アクセスのバンク0へのアクセスが存
在する(C3は、"H"のときにアクセスがないことを、"L"
のときにアクセスがあることを表している)ときに、バ
ンク0-WCONTLが時刻0に"H"となる。また、WB0C2が"L"
かつC5が"L"のとき、すなわち、2回目アクセスのバン
ク0へのアクセスが書き込みであり、2回目アクセスの
バンク0へのアクセスが存在するときに、バンク0-WCO
NTLが時刻1に"H"となる。バンク1-WCONTLの発生回路
も、バンク0-WCONTLの発生回路と同様に構成され、破
線473内の回路は破線469内に示した回路と同様な回路
で、また遅延回路474は遅延回路472と同様な回路で構成
される。以上説明したように、図17の書き込み制御の
ための回路は、図16の回路の出力(WB0C1,WB1C1,WB0C
2,WB1C2)と図9の回路の出力(C3,C4,C5,C6)を利用す
ることにより、ポート間の競合によりm回目のバンクnへ
のアクセスがない場合における誤書き込みを防止するこ
とができる。
【0129】
【発明の効果】以上説明したように、本発明によれば、
1ポートのメモリセルを用いて4ポート以上の複数ポー
トメモリを実現できるので、高性能マイクロプロセッサ
のキャッシュメモリ等のスループットを向上させること
が可能となる。また、本発明のアクセス順序制御回路に
よれば、簡単な回路でバンク競合しないアドレスを選ん
で時分割アクセスすることが可能となり、時分割アクセ
スとバンク分割を組み合わせたによる複数ポートメモリ
に適した回路を提供できる。
【図面の簡単な説明】
【図1】本発明の実施例を示す4ポートメモリのブロッ
ク図である。
【図2】本発明の時分割アクセスとバンク分割を組み合
わせた4ポートメモリのアクセスの概念を示す図であ
る。
【図3】本発明のアクセス順序制御回路の制御方法を示
す図である。
【図4】本発明のアクセス順序制御回路のブロック図で
ある。
【図5】本発明のアクセス順序制御回路の一例を示す図
である。
【図6】本発明のアクセス順序制御回路の制御信号を発
生する回路の図である。
【図7】図6の回路の真理値表を示す図である。
【図8】図9の回路の真理値表を示す図である。
【図9】本発明のアクセス順序制御回路の制御信号を発
生する回路と書き込み制御のための回路の一例を示す図
である。
【図10】本発明のアクセス順序制御回路に好適なパラ
レル−シリアル変換回路の一例を示す図である。
【図11】図10の回路の動作波形の概略を示す図であ
る。
【図12】内部の1ポートSRAMに好適なセンスアン
プと書き込み回路の一例を示す図である。
【図13】図15の回路の制御信号の真理値表の一例を
示す図である。
【図14】図15の回路の制御信号の真理値表の一例を
示す図である。
【図15】本発明の時分割アクセスとバンク分割を組み
合わせた4ポートメモリの出力回路の一例を示す図であ
る。
【図16】本発明の時分割アクセスとバンク分割を組み
合わせた4ポートメモリの書き込み制御のための回路の
一例を示す図である。
【図17】本発明の時分割アクセスとバンク分割を組み
合わせた4ポートメモリの書き込み制御のための回路の
一例を示す図である。
【符号の説明】
1:GND端子 2:正の電源端子 10:入力ポートAのアドレス入力端子 11:入力ポートBのアドレス入力端子 12:入力ポートCのアドレス入力端子 13:入力ポートDのアドレス入力端子 14:入力ポートAのアドレス入力ラッチの出力 15:入力ポートBのアドレス入力ラッチの出力 16:入力ポートCのアドレス入力ラッチの出力 17:入力ポートDのアドレス入力ラッチの出力 19:3対1セレクタ出力 20:2対1セレクタ出力 21:1対1セレクタ出力 22:バンク0、1回目アクセスのアドレス 23:バンク1、1回目アクセスのアドレス 24:バンク0、2回目アクセスのアドレス 25:バンク1、2回目アクセスのアドレス 26:バンク0をアクセスするアドレス信号 27:バンク1をアクセスするアドレス信号 28:バンク0の読み出しデータ 29:バンク1の読み出しデータ 30:基準クロック 31:内部のクロック 33:バンク0、1回目アクセスの読み出しデータ 34:バンク0、2回目アクセスの読み出しデータ 35:バンク1、1回目アクセスの読み出しデータ 36:バンク1、2回目アクセスの読み出しデータ 40:入力ポートAのアドレスの1ビット 41:入力ポートBのアドレスの1ビット 42:入力ポートCのアドレスの1ビット 43:入力ポートDのアドレスの1ビット 44:3対1セレクタの出力 45:2対1セレクタの出力 46:バンク0、1回目アクセスのアドレスの1ビット 48:バンク1、1回目アクセスのアドレスの1ビット 60:バンク0、2回目アクセスのアドレスの1ビット 62:バンク1、2回目アクセスのアドレスの1ビット 47:46の反転信号 49:48の反転信号 61:60の反転信号 63:62の反転信号 50,51,52,53,54,55,56,57,58:セレクタ制御信号 80:入力ポートAのアドレスのバンクを指定する1ビッ
ト 81:入力ポートBのアドレスのバンクを指定する1ビッ
ト 82:入力ポートCのアドレスのバンクを指定する1ビッ
ト 83:入力ポートDのアドレスのバンクを指定する1ビッ
ト /80:80の反転信号 /81:81の反転信号 /82:82の反転信号 /83:83の反転信号 37:入力ポートAのアドレス出力端子 38:入力ポートBのアドレス出力端子 85:入力ポートCのアドレス出力端子 86:入力ポートDのアドレス出力端子 90:パラレル−シリアル変換回路出力(アドレスバッフ
ァ回路出力) 91,92:内部のクロック RP,WRP:リセットパルス CD1,CD2:コモンデータ線 DEMUX1,DEMUX2:センスアンプへの信号入力の制御信号 /DEMUX1,/DEMUX2:/DEMUX1,/DEMUX2の反転信号 S1,S2,S3,S4:センスアンプ入力信号線 SA1,SA2:センスアンプ活性化信号 LO1,LO2,LO3,LO4:ラッチ回路出力 PC:プリチャージ制御信号 WCONTL:書き込み制御信号 バンク0-WCONTL:バンク0の書き込み制御信号 バンク1-WCONTL:バンク1の書き込み制御信号 DIN:書き込みデータ SEL1からSEL14:出力セレクタ制御信号 SO1:入力ポートAのアドレス出力端子の1ビット SO2:入力ポートBのアドレス出力端子の1ビット SO3:入力ポートCのアドレス出力端子の1ビット SO4:入力ポートDのアドレス出力端子の1ビット C1:入力ポートCのアドレスが競合によりアクセスでき
ないことを示す信号 C2:入力ポートDのアドレスが競合によりアクセスでき
ないことを示す信号 C3:バンク0、1回目アクセスが存在しないことを示す
信号 C4:バンク1、1回目アクセスが存在しないことを示す
信号 C5:バンク0、2回目アクセスが存在しないことを示す
信号 C6:バンク1、2回目アクセスが存在しないことを示す
信号 WA:入力ポートAのアドレスが書き込みであることを示
す信号 WB:入力ポートBのアドレスが書き込みであることを示
す信号 WC:入力ポートCのアドレスが書き込みであることを示
す信号 WD:入力ポートDのアドレスが書き込みであることを示
す信号 WB0C1:バンク0、1回目アクセスが書き込みであるこ
とを示す信号 WB1C1:バンク1、1回目アクセスが書き込みであるこ
とを示す信号 WB0C2:バンク0、2回目アクセスが書き込みであるこ
とを示す信号 WB1C2:バンク1、2回目アクセスが書き込みであるこ
とを示す信号 100番台:NMOSトランジスタ 200番台:PMOSトランジスタ 300,302,343,344,345,346,359,363,367,450,452:2入
力NAND回路 301,303,304,309,311,312,354,357,358,361,362,365,36
6,451,453,454,459,461,462:4入力AND-OR-NOT回路 305,306,310,313から318,328,329,368,369,334,335から
340,350から352,355,460,463から468,470,471:インバ
ータ回路 307:セレクタ409の1ビット分の回路 308:セレクタ410の1ビット分の回路 319,321,322,324,331,332,370,371,372,377,383,387:
3入力AND回路 320,323,327,384:2入力OR回路 325,326,330:2入力AND回路 333:3入力OR回路 341,342:センスアンプ 447,448:SRラッチ回路 349:書き込み回路 353:セレクタ422の1ビット分の回路 356:セレクタ426の1ビット分の回路 360:セレクタ427の1ビット分の回路 364:セレクタ428の1ビット分の回路 373,374,375,376,378,379,380,381,382,388,389,390:
4入力AND回路 385:6入力OR回路 386,391:4入力OR回路 400,401,402,403:ラッチ回路(クロック30が"H"のとき
トランスペアレント) 404,406:ラッチ回路(時刻2にデータを取り込む) 405,407:ラッチ回路(時刻3にデータを取り込む) 408,411:1対1セレクタ 409,457:3対1セレクタ 416,417:パラレル−シリアル変換回路 418:アクセス順序制御回路 419,423:デコーダ 420:バンク0のメモリセルアレイ 421,425:センスアンプ 422,412,413,414,415,410,458:2対1セレクタ 424:バンク1のメモリセルアレイ 426,427,428:4対1セレクタ 469:バンク0の書き込み信号発生回路 473:バンク1の書き込み信号発生回路 472,474:遅延回路 475:4対2セレクタ 476:3対2セレクタ 477,478:2対2のアドレス切り替え回路 500,502:時分割アクセスの最初のアクセス 501,503:時分割アクセスの2回目のアクセス 504,505,506,507:時分割アクセスの待ち時間
フロントページの続き (72)発明者 樋口 久幸 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 水野 弘之 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 鈴木 誠 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 長田 健一 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 石橋 孝一郎 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 新保 利信 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 M個のバンクに分割されたメモリセルア
    レイと、 L個の入力ポートと、L個の出力ポートと(Mは2以上
    の整数、Lは4以上の整数)、 分割された各バンクの1ポートに対する2ポート分以上
    のアクセスを時分割に行なう手段と、 前記L個の入力ポートからのL個のアクセスのうち、そ
    れぞれ異なるバンクにアクセスするアドレスを有するK
    個(1≦K≦L)のアクセスを第1の同一時刻(時刻
    0)に開始する手段と、 前記L個の入力ポートからのL個のアクセスのうち、残
    りの(L−K)個のアクセスを前記第1の時刻より遅い
    第2の時刻(時刻1)以降に開始する手段とを有するこ
    とを特徴とする複数ポートメモリ。
  2. 【請求項2】 請求項1記載の複数ポートメモリであっ
    て、前記残りの(L−K)個のアクセスのうち、それぞ
    れ異なるバンクにアクセスするアドレスを有するN個の
    アクセスを前記第2の時刻に開始する手段と、残りの
    (L−K−N)個のアクセスを前記第2の時刻より遅い
    第3の時刻以降に開始する手段を有することを特徴とす
    る複数ポートメモリ。
  3. 【請求項3】 請求項1または2記載の複数ポートメモ
    リであって、 前記L個の入力ポートの中から、前記K個のアクセスの
    それぞれのアドレスを選択するL対Kセレクタと、前記
    (L−K)個のアクセスのそれぞれのアドレスを選択す
    るL対(L−K)セレクタと、前記L対Kセレクタによ
    り選択された前記K個のアドレスをアクセスすべきバン
    クに伝達するK対Mのアドレス切り替え手段と、前記L
    対(L−K)セレクタにより選択された前記(L−K)
    個のアドレスをアクセスすべきバンクに伝達する(L−
    M)対Mのアドレス切り替え手段と、前記K対Mのアド
    レス切り替え手段と(L−M)対Mのアドレス切り替え
    手段のアドレス出力を並列的に入力し、各バンクに直列
    的にアドレスを出力するパラレル−シリアル変換回路と
    からなるアクセス順序制御回路を有することを特徴とす
    る複数ポートメモリ。
  4. 【請求項4】 請求項3記載の複数ポートメモリであっ
    て、 前記L対KセレクタはK個のL対1セレクタからなり、 前記L対(L−K)セレクタは(L−K)個のL対1セ
    レクタからなり、 前記K対Mのアドレス切り替え手段はM個のK対1セレ
    クタからなり、 前記(L−M)対Mのアドレス切り替え手段はM個の
    (L−M)対1セレクタからなり、 前記L個のL対1セレクタの入力は前記L個の入力ポー
    トからのアドレスであり、 前記M個のK対1セレクタの入力は前記K個のL対1セ
    レクタの出力であり、 前記M個の(L−K)対1セレクタの入力は前記(L−
    K)個のL対1セレクタの出力であることを特徴とする
    複数ポートメモリ。
  5. 【請求項5】 請求項1ないし4記載の複数ポートメモ
    リであって、前記メモリセルアレイは複数ポートを有す
    ることを特徴とする複数ポートメモリ。
  6. 【請求項6】 請求項1ないし5記載の複数ポートメモ
    リであって、 前記L個の入力ポートのアドレスのそれぞれが書き込み
    アドレスであることを示すL個の書き込み指示信号を用
    いて、時刻Iに開始される第Hのバンクへのアクセスの
    アドレスが、書き込みのアドレスであることを示す時刻
    I第Hのバンク書き込み指示信号を発生するバンク書き
    込み指示信号発生手段と、 前記時刻I第Hのバンク書き込み指示信号とは別に、前
    記L個の入力ポートのアドレスの競合により、時刻Iに
    開始される第Hのバンクへのアクセスが存在しないこと
    を示す時刻I第Hのバンク競合信号を発生するバンク競
    合信号発生手段と、 前記バンク書き込み指示信号発生手段で発生された時刻
    I第Hのバンク書き込み指示信号と、前記バンク競合信
    号発生手段で発生された時刻I第Hのバンク競合信号に
    より、時刻Iに開始される第Hのバンクへの書き込みを
    制御するようにしたことを特徴とする複数ポートメモ
    リ。
JP7310335A 1995-11-29 1995-11-29 複数ポートメモリ Withdrawn JPH09147563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7310335A JPH09147563A (ja) 1995-11-29 1995-11-29 複数ポートメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7310335A JPH09147563A (ja) 1995-11-29 1995-11-29 複数ポートメモリ

Publications (1)

Publication Number Publication Date
JPH09147563A true JPH09147563A (ja) 1997-06-06

Family

ID=18004004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7310335A Withdrawn JPH09147563A (ja) 1995-11-29 1995-11-29 複数ポートメモリ

Country Status (1)

Country Link
JP (1) JPH09147563A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333521B1 (ko) * 1999-03-25 2002-04-25 야스오 하라다 주소 및 데이터 전송회로

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333521B1 (ko) * 1999-03-25 2002-04-25 야스오 하라다 주소 및 데이터 전송회로

Similar Documents

Publication Publication Date Title
EP1154435B1 (en) Write circuitry for a synchronous RAM
US7088134B1 (en) Programmable logic device with flexible memory allocation and routing
JPH11232877A (ja) パイプライン化デュアルポート集積回路メモリ
JPH04313887A (ja) 半導体集積回路
KR100228339B1 (ko) 읽기 포트와 쓰기 포트를 공유하는 다중포트 액세스 메모리
US4610004A (en) Expandable four-port register file
KR102644415B1 (ko) 셋-리셋 래치들을 사용하여 워드라인들을 구동하기 위한 시스템들 및 방법들
US5493530A (en) Ram with pre-input register logic
JPH04228172A (ja) 半導体メモリ
JPH0670778B2 (ja) メモリ・システム
KR19990006345A (ko) 반도체 기억 장치
US5612923A (en) Multi-port random access memory
US5805523A (en) Burst counter circuit and method of operation thereof
KR100610006B1 (ko) 호스트 시스템의 다중동작 지원에 적합한 메모리 구조를갖는 반도체 메모리 장치
JP2588936B2 (ja) 半導体記憶装置
US7084665B1 (en) Distributed random access memory in a programmable logic device
JPH09147563A (ja) 複数ポートメモリ
Bagamma et al. Implementation of 5–32 address decoders for SRAM memory in 180nm technology
US11901006B2 (en) Shiftable memory and method of operating a shiftable memory
US5602782A (en) Pipeline-operating type memory system capable of reading data from a memory array having data width larger than the output data width
JPH04229488A (ja) 仮想マルチポートram構造
JP4488282B2 (ja) 半導体集積回路
JPH1056377A (ja) 2線2相式非同期論理ファンクションジェネレータ、およびそれを用いた半導体集積回路装置
JP3501321B2 (ja) 複数ポートメモリ
EP0756283B1 (en) Multi-port random access memory

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030204