(57)【要約】【課題】本発明は擬似デュアルポートメモリ回路に関し，１Ｗ２Ｒまたは１Ｗ１ＲのシングルポートＲＡＭを複数個使用する簡易な構成により実現することを目的とする。【解決手段】２つのシングルポートＲＡＭは同じアドレス空間を備え，一方のシングルポートＲＡＭは第１のクロックに同期する書込ポートを備え，他方は異なる周波数の第２のクロックに同期する書込ポートを備える。シングルポートＲＡＭの各アドレス毎のフラグを含むフラグ処理部を備え，シングルポートＲＡＭの一方への書込み時に対応するフラグをセットし，他方への書込み時に対応するフラグをリセットし，各シングルポートＲＡＭの一方への読出アクセスは，それぞれ自シングルポートＲＡＭと他シングルポートＲＡＭの読出ポートに供給され，２つのシングルポートＲＡＭからの読出データから，フラグの状態に対応した一方を選択する手段を備えるよう構成する。【選択図】図１
2008129671.tif 000002
【特許請求の範囲】
【請求項１】
２つのシングルポートＲＡＭを用いた擬似デュアルポートメモリ回路であって，
前記２つのシングルポートＲＡＭは，同じアドレス空間を備え，一方のシングルポートＲＡＭは第１のクロックに同期して書込みを行う書込ポートを備え，他方のシングルポートＲＡＭは前記第の１クロックと異なる周波数の第２のクロックに同期して書込みを行う書込ポートを備え，
前記２つのシングルポートＲＡＭの各アドレス毎に共通する１個のフラグを有するフラグ処理部を備え，
前記フラグ処理部は，前記シングルポートＲＡＭの一方への書込み時に対応するフラグをセットし，前記シングルポートＲＡＭの他方への書込み時に対応するフラグをリセットし，
前記各シングルポートＲＡＭの一方への読出アクセスは，それぞれ自シングルポートＲＡＭと他シングルポートＲＡＭの読出ポートに供給され，２つのシングルポートＲＡＭからの読出しデータから，前記読出アドレスに対応するフラグの状態に対応した一方を選択する手段を備えることを特徴とする擬似デュアルポートメモリ回路。
【請求項２】
請求項１において，
前記一方のシングルポートＲＡＭへの読出要求は前記第１のクロックに同期する第１の読出ポートに供給されると共に，前記他方のシングルポートＲＡＭの第１のクロックに同期する第２の読出ポートに供給され，
前記他方のシングルポートＲＡＭへの読出要求は前記第２のクロックに同期する第１の読出ポートに供給されると共に，前記一方のシングルポートＲＡＭの第２のクロックに同期する第２の読出ポートに供給され，
前記一方のシングルポートＲＡＭの前記第１の読出ポートにより読出されたデータと，前記他方のシングルポートＲＡＭの前記第２の読出ポートから読出されたデータを第１の読出しデータ選択部に入力し，
前記他方のシングルポートＲＡＭの前記第１の読出ポートにより読出されたデータと，前記一方のシングルポートＲＡＭの前記第２の読出ポートから読出されたデータを第２の読出しデータ選択部に入力し，
前記第１と第２の読出しデータ選択部は，それぞれ前記フラグの状態に応じて一方のデータを選択することを特徴とする擬似デュアルポートメモリ回路。
【請求項３】
請求項１または２の何れかにおいて，
前記第１のクロックの周波数は前記第２のクロックの周波数と異周波数であることを特徴とする擬似デュアルポートメモリ回路。
【請求項４】
２つのシングルポートＲＡＭを用いた擬似デュアルポートメモリ回路であって，
前記２つのシングルポートＲＡＭは，同じアドレス空間を備え，それぞれ第１のクロックまたは前記第１のクロックと異なる周波数の第２のクロックに同期して動作する一つの書込ポートを備え，一方のシングルポートＲＡＭは第１のクロックに同期した読出ポートを備え，他方のシングルポートＲＡＭは第２のクロックに同期した読出ポートを備え，
前記２つのシングルポートＲＡＭの書込ポートの前段に第１のクロックに同期した書込アクセスと第２のクロックに同期した書込みアクセスが入力されると共に，前記第１のクロック及び第２のクロックの周波数より高い多重用クロックとが入力される多重部を備え，
前記多重部は，前記多重用クロックを分周するカウンタと，前記カウンタの分周出力により前記第１のクロックに同期した書込みアクセスと第２のクロックに同期した書込みアクセスを低い周波数の多数のアクセス出力に分割した書込みアクセスを前記各シングルポートＲＡＭの書込ポートに入力することを特徴とする擬似デュアルポートメモリ回路。
【請求項５】
請求項４において，
前記第１のクロックの周波数を前記第２のクロックの周波数の整数倍とし，前記多重部の多重用クロックの周波数を前記第１のクロックの周波数より高い前記第２のクロックの周波数の整数倍とすることを特徴とする擬似デュアルポートメモリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシングルポートＲＡＭやＡＳＩＣ内のシングルポートＲＡＭを用いた擬似デュアルポートメモリ回路に関する。
【０００２】
２Ｗ２Ｒ（２ライトポート２リードポート）のデュアルポートメモリは，回路設計において応用範囲が広い。しかし，大容量かつ高速動作可能なデュアルポートメモリは高価であるためコストの面でデメリットとなる。これに対応するため，シングルポートメモリを用いる技術が提案されている。
【背景技術】
【０００３】
上記したように２Ｗ２Ｒのデュアルポートメモリは，高価であり大容量化するとコストがかかるという問題があり，更に複数ポートへの同時リード及びライトの競合制御が必要である。そのため，リードレイテンシ（リード遅延）やライトレイテンシ（書込み遅延）が変動し，バス制御信号であるビジー，レディなどのバスサイクルのウェイト制御が必要である。また，ウェイト制御を行わない場合は同時に複数ポートからのライトを行うと書込データが不定となり，優先制御などの処理もできない。
【０００４】
このようにデュアルポートメモリに問題があるため，近年，シングルポートメモリを複数個組み合わせて擬似デュアルポートメモリを実現する方法及び回路が提案されている。これにより，リードレイテンシ，ライトレイテンシ及びウェイト処理を極力削減することができる。そのような例の一つ（特許文献１参照）の構成を従来例の構成として図１９に示す。
【０００５】
図１９において，８０，８１は共に１ポートの入出力を持つ全く同一構成で同一のアドレス空間を有するシングルポートＲＡＭ，８２は２ポート処理部，８３は制御部，８３０はフラグレジスタ，８３０Ｌ，８３０ＲはシングルポートＲＡＭ８０用のフラグ格納部とシングルポートＲＡＭ８１用のフラグ格納部，８４はポートＰＬ１とポートＰＬ２及びポートＰＲ２の両方または一方に接続するか，ポートＰＲ１とポートＰＬ２及びポートＰＲ２の両方または一方に接続するかの切替えを行う空間スイッチ，８５は第１ポート部８５Ｌ，第２ポート部８５Ｒとからなり，第１ポート部８５Ｌは読出制御信号ＲＬと書込制御信号ＷＬを外部から入力し，ウェイト信号ＷＴＬを外部に出力し，第２ポート部８５Ｒは読出制御信号ＲＲと書込制御信号ＷＲを外部から入力し，ウェイト信号ＷＴＲを外部に出力し，ＢＬとＢＲは入出力バスである。８６と８８は第１メモリアクセス用バス，８７と８９は第２メモリアクセス用バス，Ｒ１，Ｒ２はシングルポートＲＡＭ８０，８１の読出制御信号，Ｗ１，Ｗ２はシングルポートＲＡＭ８０，８１の書込制御信号である。
【０００６】
第１ポート部８５Ｌからデータを書込む時，第１書込制御信号ＷＬがイネーブルになり，バス入出力部ＢＬからシングルポートＲＡＭ８０とＲＡＭ８１への書込アドレスと書込データを入力すると，制御部８３は空間スイッチ８４を制御することにより書込アドレス及び書込データの信号経路を切替えることによりシングルポートＲＡＭ１，ＲＡＭ２のうちアクセス状態にない全てのＲＡＭに書込データを，書込アドレスに書込む。この時，フラグレジスタ８３０のＲＡＭの種別に対応したフラグ格納部８３０Ｌ，８３０Ｒにアドレス別に，書込みを行ったことを表すフラグが設定される。制御部８３は読出時にフラグレジスタ８３０を参照することにより，アクセス状態になく読出アドレスに関してデータ書込み済みのシングルポートＲＡＭ１またはＲＡＭ２から，読出アドレスの格納データを読出す。書込み及び読出しは，第１ポート部８５Ｌまたは第２ポート部８５Ｒのそれぞれから等価な内容で行う。同時に同じアドレスへの書込みが２つのポートから発生すると，ウェイト信号ＷＴＬ，ＷＴＲが発生してウェイト状態になる。
【特許文献１】特開平６−６０００７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記図１９に示す従来例の技術では，データの書込みはアクセス状態でない全てのポートに対して実行され，その際に各アドレス毎に設けられ，且つ各ポートに対応した複数のフラグを設ける必要があり，更に第１ポートと第２ポートと２つのシングルポートメモリとの間のアクセス信号及びデータ信号の接続路を切替える空間スイッチとその制御部を設けるという複雑な構成を備える点で問題があった。更に，２つのポートから２つのシングルポートメモリの同じアドレスに書込む場合，ウェイト状態になるという問題があった。
【０００８】
本発明は１Ｗ２Ｒや１Ｗ１ＲのシングルポートＲＡＭを複数個使用して簡易な構成のデュアルポートメモリ回路を実現することを目的とする。
【課題を解決するための手段】
【０００９】
図１は本発明の第１の原理構成である。図中，１−１，１−２は何れも１Ｗ２Ｒ（１ライトポート２リードポート）の第１のシングルポートＲＡＭ１（以下，シングルポートＲＡＭ１という）と第２のシングルポートＲＡＭ２（以下，シングルポートＲＡＭ２という）であり，両シングルポートＲＡＭは同一のアドレス空間を備え，シングルポートＲＡＭ１の書込みは第１クロックＣＫ１により実行され，シングルポートＲＡＭ２は第２クロックＣＫ２で書込みが実行され，読出しは何れのシングルポートＲＡＭも第１クロックＣＫ１と第２クロックＣＫ２の何れのクロックによっても実行される。シングルポートＲＡＭ１からの読出ポートはＡとＢがあり，Ａは第１クロックＣＫ１に同期した読出要求により読出されたデータが出力するポートで，Ｂは第２クロックＣＫ２に同期した読出要求により読出されたデータが出力するポートである。同様にシングルポートＲＡＭ２にも読出ポートはＡとＢがあり，Ａは第２クロックＣＫ２に同期した読出要求により読出されたデータが出力するポートで，Ｂは第１クロックＣＫ１に同期した読出要求により読出されたデータが出力するポートである。
【００１０】
２−１，２−２は第１バスアドレスデコーダ，第２バスアドレスデコーダ，３はシングルポートＲＡＭ１とシングルポートＲＡＭ２の各アドレスに対応して設けられ，何れのＲＡＭが最後に書込みをしたかを表示するフラグを設定保持し，読出し時にアドレスに対応して保持したフラグを出力するフラグ処理部，４−１，４−２は読出アドレスに対応したフラグに応じて読出データを選択する第１の読出データ選択部，第２の読出データ選択部である。Ａ１，Ａ２は書込み・読出しの制御信号，アドレス，書込みの場合は書込データを含む第１クロック（ＣＫ１）に同期した第１クロックアクセスが入力する第１の入力ポート及び第２クロック（ＣＫ２）に同期した第２クロックアクセスが入力する第２の入力ポート，Ｒ１，Ｒ２は第１クロックに同期した読出データが出力される第１の読出ポート及び第２クロックに同期した読出データが出力される第２の読出ポートである。
【００１１】
書込みを行う場合，第１の入力ポートＡ１または第２の入力ポートＡ２から書込制御信号，アドレス，書込データが入力されると，第１バスアドレスデコーダ２−１または第２バスアドレスデコーダ２−２でアドレスがデコードされ，書込制御信号，アドレス及びデータを含む書込要求が対応するシングルポートＲＡＭ１またはシングルポートＲＡＭ２に供給される。また，シングルポートＲＡＭ１に対する書込みは第１クロック（ＣＫ１）に同期して実行され，シングルポートＲＡＭ２に対する書込みは第２クロック（ＣＫ２）に同期して実行され，従って，２つのシングルポートＲＡＭ１とシングルポートＲＡＭ２は同時に実行されることはなく，ライトの競合制御を行う必要がない。また，書込み時には，フラグ処理部３内の各アドレスに対応したフラグ（１ビット）のセットまたはリセットの駆動を行う。すなわち，シングルポートＲＡＭ１にデータが書込まれるとフラグ処理部３の中のシングルポートＲＡＭ１の書込アドレスに対応するフラグがリセットされ，シングルポートＲＡＭ２にデータが書込まれると，フラグ処理部３の中の該当アドレスに対応するフラグがセットされる。これにより，シングルポートＲＡＭ１または２の各アドレスについて何れの側に最後（最近）のデータが書込まれたかが，フラグ処理部３の該当アドレスのフラグの状態により決まる。
【００１２】
読出しを行う場合，第１の入力ポートＡ１または第２の入力ポートＡ２の何れか一方から読出信号（アドレスと読出要求）を入力すると，対応する第１バスアドレスデコーダ２−１または第２バスアドレスデコーダ２−２でアドレスがデコードされると共に読出要求信号が発生する。読出要求信号（アドレスを含む）はシングルポートＲＡＭ１とシングルポートＲＡＭ２の両方に供給され，シングルポートＲＡＭ１及びＲＡＭ２で読出しが行われ，各シングルポートＲＡＭ１では第１クロックＣＫ１に同期した読出しによりポートＡから一方の読出データが出力され，第２クロックＣＫ２に同期した読出しによりポートＢから他方の読出データが出力される。同様に，シングルポートＲＡＭ２では第２クロックＣＫ２に同期した読出しによりポートＡから一方の読出データが出力され，第１クロックＣＫ１に同期した読出しによりポートＢから他方の読出データが出力される。両シングルポートＲＡＭからの読出データは，同じクロックにより読出されたデータ同士が，第１の読出データ選択部４−１と第２の読出データ選択部４−２に入力する。
【００１３】
一方，読出しの場合，読出アドレスが第１の読出データ選択部４−１と第２の読出データ選択部４−２にも入力され，フラグ処理部３から出力されている各アドレスに対応したフラグの中から読出アドレスに対応したフラグが選択されて，選択されたフラグ信号（セットまたはリセット）が第１の読出データ選択部４−１と第２の読出データ選択部４−２に入力され，各選択部４−１または４−２では２つのシングルポートＲＡＭ１とシングルポートＲＡＭ２からの読出データの中からフラグがリセットの場合，シングルポートＲＡＭ１からの読出データを選択し，フラグがセットの場合シングルポートＲＡＭ２からの読出データを選択することで，最新の書込データが出力される。
【００１４】
なお，同一アドレスに同時に書込アクセスが発生した場合は，フラグ処理部３が一方のアクセス（例えば，シングルポートＲＡＭ１への書込アクセス）を優先的に入力するように決めておくことで，書込んだデータを安定して読出すことができる。
【００１５】
図２は本発明の第２の原理構成を示す。この第２の原理構成でも２つのシングルポートＲＡＭを使用するが，１Ｗ１Ｒ（１ライトポート１リードポートを備えた）である点で第１の原理構成と異なり，更に第１の原理構成で備えたフラグ処理部を使用しない。
【００１６】
図２において，５は多重部，５ａは多重用クロックを分周（図２の例では３分周）する分周カウンタ，５ｂ〜５ｄはこの例では分周カウンタ５ａのカウント数に対応して３個設けられた選択部，５ｅはオアゲート，６−１，６−２は何れも１Ｗ１Ｒ（１ライトポート１リードポート）の第１のシングルポートＲＡＭ３（以下，シングルポートＲＡＭ３という）と第２のシングルポートＲＡＭ４（シングルポートＲＡＭ４という）である。Ａ１０，Ａ１１は第１クロック（ＣＫ１）書込ポート，第２クロック（ＣＫ２）書込ポート，ＲＱ１，ＲＱ２はシングルポートＲＡＭ３，シングルポートＲＡＭ４に対する読出要求（読出アドレスを含む）ポート，Ｒ１，Ｒ２はシングルポートＲＡＭ３，ＲＡＭ４の読出データの出力ポートである。
【００１７】
第１クロック書込ポートＡ１０，第２クロック書込ポートＡ１１から個別に書込アクセス（書込要求及び書込データ）が多重部５に入力される。第１クロック書込ポートＡ１０への書込アクセスは選択部５ｂ，５ｃへ入力し，第２クロック書込ポートＡ１１への書込アクセスは選択部５ｄへ入力する。選択部５ｂ，５ｃは第１クロックの信号（第２クロックの２倍の周波数とする）を２分周した周波数で交互に駆動され，選択部５ｄは第２クロックの周波数で駆動される。多重用クロック（ＣＫ３）は第１クロックＣＫ１と第２クロックＣＫ２を加算した値以上の高い周波数であり，この説明では第１クロックＣＫ１と第２クロックＣＫ２を加算した周波数とすると，分周カウンタ５ａで多重用クロック（ＣＫ３）を３分周すると，分周カウンタ５ａの分周により発生した各カウント値（０，１，２）の出力を３つの選択部５ｂ〜５ｄに一つずつ供給する。
【００１８】
これにより，分周カウンタ５ａの３つの値により選択部５ｂ〜５ｄが駆動され，第１クロックの２つの周期で選択部５ｂと５ｃが駆動されると共に分周カウンタ５ａの２つの分周出力が発生するタイミングで選択部５ｂ，５ｃが順番に駆動されて第１クロック書込ポートＡ１０の書込アクセスがシングルポートＲＡＭ３とシングルポートＲＡＭ４に供給される。この時，第１クロック（ＣＫ１）書込ポートＡ１０からの書込み回数（偶数回，奇数回）を認識し，偶数回の場合は選択部５ｂへ書込み指示を行い，奇数回の場合は選択部５ｃへ書込指示を行う。選択部５ｂ，５ｃではこの書込指示を受け，分周カウンタ５ａのカウント値を用いて選択部５ｂではカウント値０，選択部５ｃではカウント値１のときにオアゲート５ｅへ書込要求を発生する。選択部５ｂ，５ｃにおいて書込指示が無い場合は，５ｅのオアゲートへ０を送出する。また，第２クロック（ＣＫ２）書込ポートＡ１１からの書込要求は，選択部５ｄに通知され，選択部５ｄでは分周カウンタ５ａのカウント値２のときにオアゲート５ｅへ書込要求を発生する。選択部５ｃにて書込要求が無い場合は，オアゲート５ｅへは０を送出する。これにより，分周カウンタ５ａのカウント値が０，１，２の場合において，選択部５ｂ，５ｃ，５ｄの書込要求がオアゲート５ｅにて多重され，ＲＡＭ３，ＲＡＭ４で書込み処理が行われる。
【００１９】
この第２の原理構成によれば，多重部５において，２つの書込ポートへの書込アクセスを高速の多重用クロック（ＣＫ３）により時間が重ならないように二分割されて，書込動作が確実に実行される。
【００２０】
図２の構成における読出し動作は，シングルポートＲＡＭ３とシングルポートＲＡＭ４に対してそれぞれ第１クロック読出アクセスと第２クロック読出アクセスがそれぞれ独立して（アドレスや時間が同じでも異なっても）発生すると，それぞれのシングルポートＲＡＭにおいて読出しが行われて，読出データが読出ポートＲ１，Ｒ２から出力される。
【発明の効果】
【００２１】
本発明によれば，シングルポートＲＡＭを２つ実装して物理的に別々のメモリにデータを書込むことで，ライトデータを保障することができると共に，読出し時に２つのメモリから同時にデータを読出しても競合制御を不要とすることができる。
【００２２】
本発明の第１の原理構成によれば，２つの１Ｗ２ＲのシングルポートＲＡＭにデータを書込む時にどちらのメモリへのアクセスが新しいかを示すフラグをセットし，読出し時に両方のメモリから同時にデータを読出し，フラグビットを参照して読出データを選択することで，常に新しいデータを読出すことができ，競合制御が不要となり，リードレイテンシ（読出し遅延）を最小にすることができる。
【００２３】
さらに，書込み，読出しで使用するクロックをそのままメモリに接続することで，クロック乗り換え回路を必要とせずシンプルな構成となり，回路規模の縮小及び低消費電力化が図れる。
【００２４】
本発明の第２の原理構成によれば，２つの１Ｗ１ＲのシングルポートＲＡＭに対して２つのポートからの書込アクセスに対して多重部により書込みのタイミングを分割することで書込みの競合制御を必要とせず，読出しは２つのシングルポートＲＡＭに対して独立に行うことができる。
【発明を実施するための最良の形態】
【００２５】
図３は実施例１の構成を示す。この実施例１は上記図１に示す本発明の第１の原理構成に対応する。図中，１−１，１−２，２−１（６６Ｍバスアドレスデコーダ），２−２（３３Ｍバスアドレスデコーダ），３，４−１，４−２の各符号は上記図１の同一符号の各部に対応するが，第１のシングルポートＲＡＭ１と第２のシングルポートＲＡＭ２は４Ｋビット（４０９６ビット）の容量を備えている。また，シングルポートＲＡＭ１の書込み動作に使用する第１クロックＣＫ１は６６ＭＨｚ（以下，６６Ｍで表示），シングルポートＲＡＭ２の書込み動作に使用する第２クロックＣＫ２は３３ＭＨｚ（以下，３３Ｍで表示）であり，２つのシングルポートＲＡＭ１，２は何れも６６Ｍと３３Ｍで動作する２つの読出ポートを備え，それぞれのクロックに基づいた読出データが出力される。また，Ａ１，Ａ２は書込み，読出しの制御信号，アドレス，書込みの場合は書込データを含む６６Ｍのクロックに同期した６６Ｍクロックアクセスが入力する第１の入力ポート及び３３Ｍのクロックに同期した３３Ｍクロックアクセスが入力する第２の入力ポートであり，Ｒ１，Ｒ２はそれぞれ６６Ｍ，３３Ｍに同期した読出データが発生する出力ポートである。
【００２６】
図４は実施例１のフラグ処理部の構成例を示す。フラグ処理部（図４の３）には，図３に示すシングルポートＲＡＭ１，２の容量（４０９６バイト）に対応した各アドレス０〜４０９５別に合計４０９６個のラッチ回路３０−０〜３０−４０９５（またはフリップフロップ回路）が設けられ，３３Ｍ（第２クロックＣＫ１）に同期した書込要求（33MHz write Request)の入力によりセットされ，６６Ｍ（第１クロックＣＫ１）に同期した書込要求（66MHz Write Request)の入力によりリセットされる。各ラッチからはフラグ０〜フラグ４０９５として“１”（シングルポートＲＡＭ１に６６Ｍで最新のデータを書込んだ時）または“０”（シングルポートＲＡＭ２に第２クロックＣＫ１の３３Ｍで最新のデータを書込んだ時）が発生する。
【００２７】
図５は第１の読出データ選択部（図３の４−１）の構成例を示し，４０−１は選択部，４１−１はアドレス選択部である。アドレス選択部４１−１にはフラグ処理部（図３の３）から全アドレスに対応したフラグ（ラッチ出力）が入力され，書込アドレスの入力によりアドレスに対応したフラグが選択され，そのフラグが選択部４０−１に入力する。このフラグが“０”ならシングルポートＲＡＭ１のＡポートの読出データが選択され，フラグが“１”ならシングルポートＲＡＭ２のＢポートの読出データが選択される。
【００２８】
図６は第２の読出データ選択部（図３の４−２）の構成例を示し，４０−２は選択部，４１−２はアドレス選択部である。上記図５と同様にアドレス選択部４１−２にはフラグ処理部から全アドレスに対応したフラグが入力され，書込アドレスに対応したフラグが選択され，そのフラグが選択部４０−２に入力する。このフラグが“０”ならシングルポートＲＡＭ１のＢポートの読出データが選択され，フラグが“１”ならシングルポートＲＡＭ２のＡポートの読出データが選択される。
【００２９】
図７は実施例１における同時書込アクセスの場合の動作説明図である。図７において，１−１，１−２，２−１，２−２，３及び４−１，４−２の各符号は上記図３に示す同一符号と同じである。図８は図７の信号発生のタイムチャートであり，ポート１(66M) のａ〜ｄは第１のシングルポートＲＡＭ１に関する信号であり，ポート２(33M) のｅ〜ｉは第２のシングルポートＲＡＭ２に関する信号である。
【００３０】
図７において，６６Ｍバスアドレスデコーダ（第１のバスアドレスデコーダ）２−１と３３Ｍバスアドレスデコーダ（第２のバスアドレスデコーダ）２−２へ，６６Ｍのクロック（図８のａ）に同期した第１の入力ポートＡ１及び３３Ｍのクロック（図８のｅ）に同期した３３Ｍクロックアクセスが入力する第２の入力ポートＡ２に書込アクセス信号が入力された場合のタイムチャートを図８に示し，図７に太線で示す信号が発生する。この図８の例では，入力ポートＡ１の書込アドレス（図８のｂ）が「ａ１」，書込データ（図８のｃ）が「ｂ１」で，アクセス要求（request)の内容が書込み（図８のｄの「write 」）である。一方，入力ポートＡ２の書込アドレス（図８のｆ）が「ａ１」，書込みデータ（図８のｇ）が「ｃ１」で，アクセス要求の内容が書込み（図８のｈの「write 」）である。図８の例では，入力ポートＡ２への書込み（データ「ｃ１」）が時間的に早く発生したため，フラグ処理部３のアドレス「ａ１」に対応するフラグはセットされて“１”を出力する（図８のｉ）。この後，同じアドレス「ａ１」に対して入力ポートＡ１への書込み（データ「ｂ１」）が発生し，同時にアドレス「ａ１」に対応するフラグはリセットされて“０”を出力する（図８のｉ）。
【００３１】
図９は実施例１における６６Ｍの入力ポートへの読出アクセスの説明図であり，図９において，１−１，１−２，２−１，２−２，３及び４−１，４−２の各符号は上記図３，図７に示す同一符号と同じである。図１０は図９の信号発生のタイムチャートであり，ポート１(66M) のａ〜ｇは第１のシングルポートＲＡＭ１に関する信号であり，ポート(33M) のｈ〜ｌは第２のシングルポートＲＡＭ２に関する信号である。
【００３２】
図１０に示すタイムチャートでは，第１クロック６６Ｍ（図１０のａ）の時間ｔ１に入力ポートＡ１に書込み(write) のアクセスが発生してアドレスａ１にデータｂ１が書込まれ，このアドレスａ１のフラグが“０”にリセットされる（図１０のｂ，ｃ，ｄ，ｌ参照）。一方，シングルポートＲＡＭ２では第２クロック３３Ｍ（図１０のｈ）のＴ１のタイミング（上記ｔ１より後の時間）でアドレスａ１にデータｃ１が書込まれ，アドレスａ１のフラグが“１”にセットされる。
【００３３】
この後，第１クロック６６Ｍの時間ｔ６のタイミングでアドレスａ１への読出アクセス（図１０のｂ，ｃ）が入力ポートＡ１に発生すると，図９に太線により信号の発生の様子を示すように，シングルポートＲＡＭ１からは読出データｂ１が出力され（図１０のｅ），シングルポートＲＡＭ２からは読出データｃ１が出力される（同ｆ）。この時，フラグ処理部３からはアドレスａ１のフラグとして“１”が出力される（図１０のｌ）ので，第１の読出データ選択部４−１ではシングルポートＲＡＭ２から読出したデータｃ１が選択されて出力され，最新（最近）の書込データが得られる。
【００３４】
図１１は実施例１における３３Ｍの入力ポートへの読出アクセスの説明図であり，図１１において，１−１，１−２，２−１，２−２，３及び４−１，４−２の各符号は上記図３に示す同一符号と同じである。図１２は図１１の信号発生のタイムチャートであり，ポート１(66M) のａ〜ｄは第１のシングルポートＲＡＭ１に関する信号であり，ポート２(33M) のｅ〜ｌは第２のシングルポートＲＡＭ２に関する信号である。
【００３５】
図１２に示すタイムチャートでは，第２クロック３３Ｍ（図１２のｅ）の時間Ｔ１に入力ポートＡ２に書込み(write) のアクセスが発生してアドレスａ１にデータｃ１が書込まれ，このアドレスａ１のフラグが“１”にセットされる（図１２のｆ，ｇ，ｈ，ｌ）。一方，シングルポートＲＡＭ１では第１クロック６６Ｍ（図１２のａ）のｔ１のタイミング（上記Ｔ１より後の時間）でアドレスａ１にデータｂ１が書込まれ，アドレスａ１のフラグが“０”にリセットされる（図１２のｂ，ｃ，ｄ，ｌ）。
【００３６】
この後，第２クロック３３Ｍの時間Ｔ３のタイミングでアドレスａ１への読出アクセス（図１２のｆ，ｇ）が入力ポートＡ２に発生すると，図１１に太線により信号の発生の様子を示すように，シングルポートＲＡＭ２からは読出データｃ１が出力され（図１２のｊ），シングルポートＲＡＭ１からは読出データｂ１が出力される（同ｉ）。この時，フラグ処理部３からはアドレスａ１のフラグとして“０”が出力される（図１２のｌ）ので，第２の読出データ選択部４−２ではシングルポートＲＡＭ１から読出したデータｂ１（最新の書込データ）が選択されて出力される。
【００３７】
図１３は実施例１における同時読出アクセスの場合の説明図，図１３において，１−１，１−２，２−１，２−２，３及び４−１，４−２の各符号は上記図３に示す同一符号と同じである。図１４は図１３の信号発生のタイムチャートであり，ポート１(66M) のａ〜ｇは第１のシングルポートＲＡＭ１に関する信号であり，ポート２(33M) のｈ〜ｏは第２のシングルポートＲＡＭ２に関する信号である。
【００３８】
図１４に示すタイムチャートでは，最初に第２クロック３３Ｍ（図１４のｈ）の時間Ｔ１に入力ポートＡ２へ書込み(write) のアクセスが発生してアドレスａ１にデータｃ１が書込まれ，このアドレスａ１のフラグが“１”にセットされる（図１４のｉ，ｊ，ｋ，ｏ）。一方，シングルポートＲＡＭ１では第１クロック６６Ｍ（図１４のａ）のｔ１のタイミング（上記Ｔ１より後の時間）でアドレスａ１にデータｂ１が書込まれ，アドレスａ１のフラグが“０”にリセットされる（図１４のｂ，ｃ，ｄ，ｏ）。
【００３９】
この後，第１クロック６６Ｍの時間ｔ３と第２クロック３３Ｍの時間Ｔ３のタイミングでアドレスａ１への読出アクセス（図１４のｂ，ｃ及びｉ，ｊ）が，それぞれ入力ポートＡ１と入力ポートＡ２に発生すると，図１３に太線で信号の発生の様子を示すように，シングルポートＲＡＭ１とシングルポートＲＡＭ２から読出データがそれぞれ２つの端子Ａ，Ｂから出力される。シングルポートＲＡＭ１の読出端子Ａからは６６Ｍに同期してデータｂ１（図１４のｅ）が出力され，シングルポートＲＡＭ２の端子Ｂからは６６Ｍに同期してデータｃ１（同ｆ）が出力されて，２つの読出データは第１の読出データ選択部４−１に入力する。また，シングルポートＲＡＭ２の読出端子Ａからは３３Ｍに同期してデータｃ１（図１４のｍ）が出力され，シングルポートＲＡＭ１の端子Ｂからは３３Ｍに同期してデータｂ１（同ｌ）が出力されて，２つの読出データは第２の読出データ選択部４−２に入力する。読出データ選択部４−１，４−２はフラグ処理部３からアドレスａ１のフラグ（“０”）により選択を行うことで，それぞれデータｂ１を選択して出力する（図１４のｇ，ｎ）。このように，２つの読出ポートからの同じアドレスへの同時の読出しでも，最新の書込データが読出される。
【００４０】
図１５は実施例２の構成を示す。この実施例２は上記図２に示す本発明の第２の原理構成に対応する。図中，５は多重部，５０ａ〜５０ｃはカウンタであり，５０ａは第２の入力ポートへの３３Ｍに同期した書込要求（Write Request)が発生している時の３３Ｍのクロックを１／２に分周するポート２用１／２カウンタ（ＣＴＲ），５０ｂは第１の入力ポートへの６６Ｍに同期した書込要求（Write Request)が発生している時の６６Ｍのクロックを１／２に分周するポート１用１／２カウンタ（ＣＴＲ），５０ｃは多重部５における多重化のためのＭＵＸ用クロック（５２８Ｍとする）を３分周するＭＵＸ用１／３カウンタ（ＣＴＲ），５１はポート２用書込アドレスと書込データを保持するポート２用書込アドレス／データシフトレジスタ，５２ａはポート１用１／２カウンタ５０ｂの値が０であることを検出する０検出部，５２ｂはポート１用１／２カウンタ５０ｂの値が１であることを検出する１検出部，５３ａは６６Ｍに同期したポート１の書込アドレスと書込データを０検出部５２ａの出力により保持するポート１用０面レジスタ（Reg)，５３ｂはポート１の書込アドレスと書込データを１検出部５２ｂの出力により保持するポート１用１面レジスタ（Reg)，５４ａはポート２用１／２カウンタ５０ａの立ち上りと立ち下りを検出するポート２・１／２カウンタ（ＣＴＲ）エッジ検出部，５４ｂ，５４ｃはそれぞれポート１用１／２カウンタ５０の立ち上りを検出するポート１・１／２カウンタ（ＣＴＲ）立ち上り検出部，ポート１・１／２カウンタ立ち下り検出部，５５ａ，５５ｂ，５５ｃはＭＵＸ用１／３カウンタ（ＣＴＲ）５０ｃの２，０，１の状態を検出する２検出部，０検出部，１検出部である。
【００４１】
５６ａはポート２(33M) 書込要求信号（Write Request)についてポート２用１／２カウンタ（ＣＴＲ）５０ａの出力を受けてポート２・１／２カウンタエッジ検出部５４ａの出力でセットされて，２検出部５５ａの出力でリセットされる書込要求信号ＦＦ（フリップフロップ），５６ｂはポート１(66M) 書込要求信号(Write Request) についてポート１用１／２カウンタ（ＣＴＲ）５０ｂの出力を受けてポート１・１／２カウンタ立ち上り検出部５４ｂの出力でセットされて０検出部５５ｂのタイミングでリセットされる０面書込要求信号ＦＦ（フリップフロップ），５６ｃはポート１・１／２カウンタ（ＣＴＲ）立ち下り検出部５４ｃの出力でセットされて１検出部５５ｃのタイミングでリセットされる１面書込要求信号ＦＦ（フリップフロップ）である。５７ａ〜５７ｅはオア回路，５８ａ〜５８ｆはアンド回路，５９は前段の組み合わせ回路（アンド回路及びオア回路）で発生するヒゲ（余分な波形）をとるためのＦＦ（フリップフロップ）である。６−１，６−２は１Ｗ１Ｒ（１ライトポート１リードポート）の第１のシングルポートＲＡＭ１（図ではＲＡＭ１と表示）と第２のシングルポートＲＡＭ２（図ではＲＡＭ２と表示）である。
【００４２】
また，多重部５の入力側のＡ２０はポート２（３３Ｍ）の書込アドレス(ADD) と書込データ（WDT)の入力端子，Ａ１０はポート１（６６Ｍ）の書込アドレス(ADD) と書込データ（WDT)の入力端子，Ａ２１はポート２（３３Ｍ）の書込要求（Write Request)の入力端子，Ａ１１はポート１（６６Ｍ）の書込要求（Write Request)の入力端子，Ａ３０はＭＵＸ用クロック（Clock)である。また，シングルポートＲＡＭ１のＡ１３は読出要求端子(Add,read request)，Ｒ１は読出データ（read dt)端子であり，シングルポートＲＡＭ２のＡ２３は読出要求端子(Add,read request)，Ｒ２は読出データ（read dt)端子である。
【００４３】
図１６は実施例２における３３Ｍ書込アクセスのタイムチャートであり，図１５におけるポート２（３３Ｍ）への書込みを行う場合であり，ポート２用の３３Ｍのクロック（図１６のａ）に対して，端子Ａ２０から書込アドレス／書込データがクロック周期のｔ１に「ｒ１」（ｒ１はアドレスと書込データを含む）が発生し，次の周期のｔ２に「ｒ２」（ｒ２は上記ｒ１と異なるアドレスと書込データを含む）が発生し（図１６のｂ），ポート２用書込アドレス／書込データシフトレジスタ５１に格納され，順にシフトして出力される（同ｅ）。この時，入力端子Ａ２１からはポート２の書込要求（Write Request)が出力され（図１６のｃ），この時ポート２用１／２ＣＴＲ５０ａにおいて３３Ｍクロックを分周して０面と１面の状態を交互に発生し（図１６のｄ），ポート２・１／２カウンタエッジ検出部ＦＦ（フリップフロップ）５４ａに入力するとエッジ検出出力が図１６のｇのように出力される。このｇの出力と，ｇの信号によりセットされ，ＭＵＸ用クロック（図１６のｆ）をＭＵＸ用１／３カウンタ５０ｃで３分周した出力（図１６のｉ）の中から２検出部５５ａにおいて「２」の検出出力によりリセットされる書込要求信号ＦＦ５６ａの出力とが，オア回路５７ａに入力される。オア回路５７ａの出力はアンド回路５８ａでＭＵＸ用１／３カウンタ５０ｃの１検出部５５ｄの出力とアンド論理が取られてＦＦ５９にセットされ，ポート２用書込アドレス／書込データシフトレジスタ５１の出力はアンド回路５８ｄを通ってオア回路５７ｄを通ってＦＦ５９にセットされて，シングルポートＲＡＭ１，２のライトアドレス・書込データ（図１６のｊ）及びライトイネーブル信号（同ｋ）がシングルポートＲＡＭ１とシングルポートＲＡＭ２に供給されて書込みが行われる。
【００４４】
図１７は実施例２における６６Ｍ書込アクセスのタイムチャートであり，図１５におけるポート１（６６Ｍ）への書込みを行う場合である。ポート１用の６６Ｍのクロック（図１７のａ）に同期して，入力端子Ａ１０からクロック周期のｔ１〜ｔ４に書込アドレス／書込みデータがｓ１〜ｓ４（それぞれ書込アドレスと書込データを含む）として示すように発生する（同ｂ）。この時，ポート１書込要求が図１５の端子Ａ１１から発生し，これに対し６６Ｍのクロックをポート１用１／２カウンタ５０ｂで２分周する（図１７のｄ）。このポート１用１／２カウンタ５０ｂの０，１のカウント値に対して，０検出部５２ａと１検出部５２ｂの各検出出力により，ポート１用０面レジスタ５３ａとポート１用１面レジスタ５３ｂに端子Ａ１０からの書込アドレスと書込データを交互に，図１７のｅ，ｆに示すように保持されて，順にシフトして出力される。すなわち，ｓ１とｓ３の各書込アドレス／書込データがそれぞれ０面レジスタから６６Ｍの２クロック長だけ発生し，ｓ２，ｓ４の各書込アドレス／書込データが１面レジスタから，ｓ１とｓ３と１クロック分だけ位相をずらして発生する。
【００４５】
ポート１用１／２カウンタ５０ｂの出力（図１７のｄ）の立ち上りが，ポート１・１／２カウンタ立ち上り検出部５４ｂで図１７のｈのように検出され，立ち下りがポート１・１／２カウンタ立ち下り検出部５４ｃで図１７のｉのように検出され，それぞれ０面書込要求信号ＦＦ５６ｂと１面書込要求信号ＦＦ５６ｃのセット信号として入力する。これらの各書込要求信号ＦＦ５６ｂ，ＦＦ５６ｃは，ＭＵＸ用クロック（図１７のｇ）を入力して３分周するＭＵＸ用１／３カウンタ５０ｃの状態（図１７のｌ）が０，１の時に０検出部５５ｂ，１検出部５５ｃから出力が発生し，０面書込要求信号ＦＦ５６ｂと１面書込要求信号ＦＦ５６ｃをリセットして，図１７のｊ，ｋの信号が発生する。図１７のｈとｊの信号の論理和（オア）をとった出力はアンド回路５８ｂに供給され，ＭＵＸ用１／３カウンタ５０ｃの出力を受け取る２検出部５５ｅによる２検出出力とのアンドをとってオア回路５７ｅに出力され，ＦＦ５９に設定されて，シングルポートＲＡＭ１とシングルポートＲＡＭ２に供給されて書込みが行われる（図１７のｍのｓ１，ｓ３）。同様に，図１７のｉとｋの信号のオアをとった出力はアンド回路５８ｃに供給され，ＭＵＸ用１／３カウンタ５０ｃの出力を受けとる０検出部５５ｆによる０検出出力とのアンドをとってオア回路５７ｅに出力されてＦＦ５９に設定され，シングルポートＲＡＭ１とシングルポートＲＡＭ２に供給されて書込みが行われる（図１７のｍのｓ２，ｓ４）。
【００４６】
図１８は実施例２における同時書込アクセスのタイムチャートであり，図１５におけるポート１（６６Ｍ）への書込みと，ポート２(33M) への書込みが同時に発生した場合である。
【００４７】
ポート２用の３３Ｍのクロック（図１８のａ）に同期して，図１５の端子Ａ２０からクロック周期のＴ１〜Ｔ３に書込アドレス／書込データがｒ１，ｒ２として示すように発生する（同ｂ）。この時，ポート２書込要求が図１５の端子Ａ２１から発生する（図１８のｃ）。一方，同じ時間にポート１用の６６Ｍのクロック（図１８のｅ）に同期して，図１５の端子Ａ１０からクロック周期のｔ１〜ｔ４に書込アドレス／書込データがｓ１〜ｓ４として示すように発生し（同ｆ），ポート１書込要求が図１５の入力端子Ａ１１から発生する（同ｇ）。この場合，上記図１６，図１７でも記載したのと同様に，ポート２の書込要求のアドレスとデータは，ポート２用書込アドレス／書込データシフトレジスタ５１に設定されて順次シフトされ，ポート１の書込み要求のアドレスとデータはポート１用０面レジスタ５３ａとポート１用１面レジスタ５３ｂに交互に設定されて順次シフトされ，各ポート毎の書込要求（図１８のｃ，ｇ）のエッジ検出を行い，ＭＵＸ用１／３カウンタ５０ｃによる分周出力（０，１，２のカウント値）による書込データの選択（図１８のｊ）と書込み動作（同ｋ）を行うことにより，書込みの競合は発生しない。また，読出アクセスについても，シングルポートＲＡＭ２への読出要求（図１８のｄ）とシングルポートＲＡＭ１への読出要求（図１８のｈ）は，それぞれが異なるポートで行われるので問題がなく，図１８のｌ，ｍに示すようにデータが読み出される（シングルポートＲＡＭ１からｓ４，シングルポートＲＡＭ２からｒ２が読出される）。但し，同一アドレスの書込アクセスと読出アクセスが同時に行われないものとする。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１の原理構成を示す図である。
【図２】本発明の第２の原理構成を示す図である。
【図３】実施例１の構成を示す図である。
【図４】実施例１のフラグ処理部の構成例を示す図である。
【図５】第１の読出データ選択部の構成例を示す図である。
【図６】第２の読出データ選択部の構成例を示す図である。
【図７】実施例１における同時書込アクセスの説明図である。
【図８】図７の信号発生のタイムチャートを示す図である。
【図９】実施例１における６６Ｍの入力ポートへの読出アクセスの説明図である。
【図１０】図９の信号発生のタイムチャートを示す図である。
【図１１】実施例１における３３Ｍの入力ポートへの読出アクセスの説明図である。
【図１２】図１１の信号発生のタイムチャートを示す図である。
【図１３】実施例１における同時読出アクセスの場合の説明図である。
【図１４】図１３の信号発生のタイムチャートを示す図である。
【図１５】実施例２の構成を示す図である。
【図１６】実施例２における３３Ｍ書込アクセスのタイムチャートを示す図である。
【図１７】実施例２における６６Ｍ書込アクセスのタイムチャートを示す図である。
【図１８】実施例２における同時書込アクセスのタイムチャートを示す図である。
【図１９】従来例の構成を示す図である。
【符号の説明】
【００４９】
１−１      １Ｗ２Ｒの第１のシングルポートＲＡＭ
１−２      １Ｗ２Ｒの第２のシングルポートＲＡＭ
２−１      第１バスアドレスデコーダ
２−２      第２バスアドレスデコーダ
３          フラグ処理部
４−１      第１の読出データ選択部
４−２      第２の読出データ選択部
Ａ１        第１クロックに同期する第１の入力ポート
Ａ２        第２クロックに同期する第２の入力ポート
Ｒ１        第１クロックに同期する第１の読出ポート
Ｒ２        第２クロックに同期する第２の読出ポート
【図１】
2008129671.tif 000003
【図２】
2008129671.tif 000004
【図３】
2008129671.tif 000005
【図４】
2008129671.tif 000006
【図５】
2008129671.tif 000007
【図６】
2008129671.tif 000008
【図７】
2008129671.tif 000009
【図８】
2008129671.tif 000010
【図９】
2008129671.tif 000011
【図１０】
2008129671.tif 000012
【図１１】
2008129671.tif 000013
【図１２】
2008129671.tif 000014
【図１３】
2008129671.tif 000015
【図１４】
2008129671.tif 000016
【図１５】
2008129671.tif 000017
【図１６】
2008129671.tif 000018
【図１７】
2008129671.tif 000019
【図１８】
2008129671.tif 000020
【図１９】
2008129671.tif 000021