(57)【要約】【課題】  異なるクロック周波数及び異なる位相で複数からの入力に対応することが可能なマルチポートメモリを提供すること。【解決手段】  本発明におけるマルチポートメモリ装置は、第１、第２の入力ポート、第１、第２の出力ポート及びメモリセルアレイを備えたマルチポートメモリ装置であって、入力データの一方を選択しメモリセルアレイに出力する入力データセレクタと、出力ポートの一方を選択しメモリセルアレイからのデータを出力する出力データセレクタと、入力データセレクタ、出力データセレクタ及びメモリセルアレイに対して、第１の入力ポートから入力されるデータに対応したクロックと、第２の入力ポートから入力されるデータに対応したクロックのうち高い周波数のクロックを供給する倍速回路を備えたマルチポートメモリ装置である。このような構成により周波数や位相の異なる２箇所から入力を行うことが可能である。【選択図】図１
2006252656.tif 000002
【特許請求の範囲】
【請求項１】
第１の入力ポート、第２の入力ポート、第１の出力ポート、第２の出力ポート及びメモリセルアレイを備えたマルチポートメモリ装置であって、
前記第１の入力ポートと前記第２の入力ポートから入力したデータのいずれか一方を選択し、前記メモリセルアレイに出力する入力データセレクタと、
前記第１の出力ポートと前記第２の出力ポートのいずれか一方を選択し、前記メモリセルアレイより出力したデータを出力する出力データセレクタと、
前記入力データセレクタ、前記出力データセレクタ及び前記メモリセルアレイに対して、前記第１の入力ポートから入力されるデータに対応した第１のクロックと、前記第２の入力ポートから入力されるデータに対応した第２のクロックのうち高い周波数のクロックを供給するクロック倍速回路を備えたマルチポートメモリ装置。
【請求項２】
前記マルチポートメモリ装置は、更に、前記入力した２つのクロックの位相差を検出し、検出した位相差が予め定められた限界値か否かを判定する位相差判定回路を備えることを特徴とする請求項１記載のマルチポートメモリ装置。
【請求項３】
前記限界値は、書き換え可能であることを特徴とする請求項２記載のマルチポートメモリ。
【請求項４】
少なくともｎ個の入力ポートと少なくともｎ個の出力ポートとを備えたマルチポートメモリ装置であって、
前記入力ポートから入力したデータのいずれか一つを選択し、メモリセルアレイに出力するセレクタと、
前記出力ポートからいずれか一つを選択し、前記メモリセルアレイより出力したデータを出力するセレクタと、
前記入力データセレクタ、前記出力データセレクタ及び前記メモリセルアレイに対して、前記ｎ個の入力ポートの各々に対応したｎ種類のクロックのうち最も周波数の高いクロックの周波数のｎ倍以上の周波数のクロックを供給するクロック倍速回路を備えたマルチポートメモリ装置。
【請求項５】
前記マルチポートメモリ装置は、更に、前記入力した各クロック間の位相差を検出し、検出した位相差が予め定められた限界値以上か否かを判定する位相差判定回路を備えることを特徴とする請求項４記載のマルチポートメモリ装置。
【請求項６】
前記限界値は、書き換え可能であることを特徴とする請求項５記載のマルチポートメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチポートメモリ装置に関するものであり、より詳細には、異なるクロックで動作する複数の入出力ポートを備えたマルチポートメモリ装置に関する。
【背景技術】
【０００２】
半導体の技術が進歩し、メモリに関してもより小さいサイズでより大きな容量、高速な読み書きができるようになってきた。特に、異なるアドレスのデータを同時に読み書きするため、入力ポート及び出力ポートを複数備えたいわゆるマルチポートメモリが使われるようになってきた。
【０００３】
マルチポートメモリに関しては、多くの研究がなされており、アドレスデコーダを共有することにより回路面積を小さくしたマルチポートメモリが提案されている（例えば、特許文献１など）。
【０００４】
特許文献１に示すマルチポートメモリは、２つの入力ポートからアドレスデータをアドレスデコーダにより切り替えて入力し、メモリセルアレイを２倍のクロックで動かすことにより２つの入力ポートから入力されたデータの処理を行いながらアドレスデコーダ及びメモリセルアレイを１つにして面積を小さくしている。このようにすることにより、サイズを小さくかつ２入力を実現できる。
【０００５】
従来のマルチポートメモリに関する技術について簡単に説明する。図４は、特許文献１などの従来技術におけるマルチポートメモリ装置の構成を示すブロック図である。図４に示すマルチポートメモリ装置２は、メモリセルアレイ２０、入力制御回路２１、出力制御回路２２、クロック倍速回路２３を備える。
【０００６】
図５は、従来技術におけるマルチポートメモリの処理の流れを示すタイミングチャートである。図５に示す入力クロックが入力制御回路２１内の入力データ保持用フリップフロップ２１０、２１１及び出力制御回路２２内の出力データ保持用フリップフロップ２２２、２２３に供給するクロックである。このクロックは、クロック倍速回路２３にも入力される。クロック倍速回路２３は入力クロックを倍速化し、図５に示す倍速クロックをメモリセルアレイ２０、入力制御回路２１内のアドレスデコーダ２１２、出力制御回路２２内のデータ保持ラッチ２２０、２２１に供給する。
【０００７】
また、クロック倍速回路２３は倍速化した倍速クロックに基づいてセレクト信号を生成し、入力制御回路２１内の入力データセレクタ２１３、出力制御回路２２内の出力データセレクタ２２４に対して生成したセレクト信号を出力する。図５のセレクト信号に示される信号は、Ａのときは入力ポートＡからの入力を選択する信号が、Ｂのときは入力ポートＢからの入力を選択する信号がクロック倍速回路２３から出力される。入力データセレクタ２１３は、クロック倍速回路２３からセレクト信号を入力し、入力したセレクト信号に応じて入力制御回路２１内の入力データ保持用フリップフロップ２１０及び入力データ保持用フリップフロップ２１１から選択し、アドレスデータを入力する。入力データセレクタ２１３は、入力したアドレスデータをアドレスデコーダ２１２に対して出力する。
【０００８】
続いて、特許文献１に示すマルチポートメモリ装置２の処理の流れについて簡単に説明する。マルチポートメモリ装置２は、入力制御回路２１内の入力データ保持用フリップフロップ２１０に接続された入力ポートＡと、入力データ保持用フリップフロップ２１１に接続された入力ポートＢの２つの入力ポートからアドレスデータを入力する。入力データ保持用フリップフロップ２１０及び入力データ保持用フリップフロップ２１１は、同じクロックを入力し、入力した入力クロックに基づいて、入力の処理が行われる。それぞれの入力処理は図５の入力ポートに示す（０）〜（３）に示すタイミングで行われる。
【０００９】
入力データセレクタ２１３は、入力データ保持用フリップフロップ２１０及び入力データ保持用フリップフロップ２１１から選択してアドレスデータの入力を行う。入力データセレクタ２１３は、クロック倍速回路２３からセレクト信号を入力し、入力したセレクト信号に応じてアドレスデータを入力する入力データ保持用フリップフロップを選択し、アドレスデータを入力する。入力データセレクタ２１３は、アドレスデータを入力すると入力したアドレスデータをアドレスデコーダ２１２に対して出力する。
【００１０】
アドレスデコーダ２１２は、入力データセレクタ２１３から入力したアドレスデータをデコードし、メモリセルアレイ２０内の該当するアドレスに格納されたデータの読み出しを行う。この処理は図５の読み出し処理のタイミングで行われる。
【００１１】
メモリセルアレイ２０は、読み出されたデータを、出力制御回路２２内の出力データセレクタ２２４に出力する。出力データセレクタ２２４は、入力したセレクト信号に応じて出力制御回路２２内のデータ保持ラッチ２２０及びデータ保持ラッチ２２１を選択し、選択したデータ保持ラッチに対して入力したデータを出力する。データ保持ラッチ２２０は、クロック倍速回路２３から入力した倍速クロックに基づいて、出力データセレクタ２２４から入力したデータを出力データ保持用フリップフロップ２２２に対して出力する。同様に、データ保持ラッチ２２１は、クロック倍速回路２３から入力した倍速クロックに基づいて、出力データセレクタ２２４から入力したデータを出力データ保持用フリップフロップ２２３に対して出力する。
【００１２】
出力データ保持用フリップフロップ２２２は、データ保持ラッチ２２０からデータを入力し、接続された出力ポートＡに対して入力したデータの出力を行う。同様に、出力データ保持用フリップフロップ２２３は、データ保持ラッチ２２１からデータを入力し、接続された出力ポートＢに対して入力したデータの出力を行う。出力データ保持用フリップフロップ２２２及び出力データ保持用フリップフロップ２２３は、倍速クロックではなく倍速化されていない入力クロックを入力し、入力クロックに基づいて出力の処理を行う。この出力の処理は、図５の出力ポートの（０）〜（２）のタイミングで行われる。
【００１３】
このようにして、特許文献１におけるマルチポートメモリ装置は、メモリセルアレイを２倍のクロックで動かすことにより２つの入力ポートから入力されたデータの処理を行いながらアドレスデコーダ及びメモリセルアレイを１つにして面積を小さくし、２入力を実現している。
【００１４】
しかしながら、特許文献１に示すマルチポートメモリは、２つの入力ポートのクロック周波数及び位相が異なる場合、動作しないという問題点があった。
【００１５】
また、内部のクロックを倍速化することにより、２つの入出力に対応したデュアルポートメモリ（例えば、特許文献２など）や、ライトクロックとリードクロックのうち周波数の高い方を倍速化するマルチポートメモリ（例えば、特許文献３など）も提案されているが、いずれも入力ポートのクロック周波数及び位相が同じでないと動作しないという問題点があった。
【特許文献１】特開平８−２７９２９２号公報
【特許文献２】特開平７−８４９８７号公報
【特許文献３】特開２００４−１２７４４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
このように、従来のマルチポートメモリは、異なるクロック周波数の入力及び出力に対応できないという問題点があった。実際に入力ポートが複数ある場合、位相がずれてしまうことがあり、また、異なるクロック周波数の入力を行いたいという需要も多く、従来のマルチポートメモリでは、これらの点に対応できなかった。
【課題を解決するための手段】
【００１７】
本発明におけるマルチポートメモリ装置は、第１の入力ポート、第２の入力ポート、第１の出力ポート、第２の出力ポート及びメモリセルアレイを備えたマルチポートメモリ装置であって、前記第１の入力ポートと前記第２の入力ポートから入力したデータのいずれか一方を選択し、前記メモリセルアレイに出力する入力データセレクタと、前記第１の出力ポートと前記第２の出力ポートのいずれか一方を選択し、前記メモリセルアレイより出力したデータを出力する出力データセレクタと、前記入力データセレクタ、前記出力データセレクタ及び前記メモリセルアレイに対して、前記第１の入力ポートから入力されるデータに対応した第１のクロックと、前記第２の入力ポートから入力されるデータに対応した第２のクロックのうち高い周波数のクロックを供給するクロック倍速回路を備えたマルチポートメモリ装置である。このような構成により、入力データセレクタが選択し入力したデータをクロック倍速回路により倍速で処理するため、２箇所から入力を行うことが可能である。また、クロックセレクタがクロック周波数の大きいほうを選択しているため、クロックの異なる入力にも対応することが可能である。
【００１８】
本発明におけるマルチポートメモリ装置は、少なくともｎ個の入力ポートと少なくともｎ個の出力ポートとを備えたマルチポートメモリ装置であって、前記入力ポートから入力したデータのいずれか一つを選択し、メモリセルアレイに出力するセレクタと、前記出力ポートからいずれか一つを選択し、前記メモリセルアレイより出力したデータを出力するセレクタと、前記入力データセレクタ、前記出力データセレクタ及び前記メモリセルアレイに対して、前記ｎ個の入力ポートの各々に対応したｎ種類のクロックのうち最も周波数の高いクロックの周波数のｎ倍以上の周波数のクロックを供給するクロック倍速回路を備えたマルチポートメモリ装置である。このような構成により、入力データセレクタが選択し入力したデータをクロック倍速回路により倍速で処理するため、２箇所以上から入力を行うことが可能である。また、クロックセレクタがクロック周波数の大きいほうを選択しているため、クロックの異なる入力にも対応することが可能である。
【発明の効果】
【００１９】
本発明によれば、異なるクロック周波数及び異なる位相で複数からの入力に対応することが可能なマルチポートメモリを提供することが可能となる。
【発明を実施するための最良の形態】
【００２０】
図１は、本発明の実施の形態におけるマルチポートメモリ装置１の構成を示すブロック図である。マルチポートメモリ装置１は、メモリセルアレイ１０、入力制御回路１１、出力制御回路１２、クロックセレクタ１３、クロック倍速回路１４、位相差判定回路１５を備える。
【００２１】
メモリセルアレイ１０は、マルチポートメモリ装置１における、データの格納を行う。入力制御回路１１は、２ポートから入力するデータを制御し、メモリセルアレイ１０に出力するための回路である。入力制御回路１１は、入力データ保持用フリップフロップ１１０、１１１、アドレスデコーダ１１２、入力データセレクタ１１３を備える。
【００２２】
入力データ保持用フリップフロップ１１０は、入力ポートＡから入力したアドレスデータを保持し、入力したクロック信号に基づいて入力データセレクタ１１３に対してアドレスデータの出力を行う。入力データ保持用フリップフロップ１１１は、入力ポートＢから入力したアドレスデータデータを保持し、入力したクロック信号に基づいて入力データセレクタ１１３に対してアドレスデータの出力を行う。アドレスデコーダ１１２は、入力データセレクタ１１３から入力したアドレスデータをデコードし、メモリセルアレイ１０の入力したデータの示すアドレスに対応した値の読み出しを行う。入力データセレクタ１１３は、クロック倍速回路１４から入力したセレクト信号に基づいて入力データ保持用フリップフロップ１１０及び入力データ保持用フリップフロップ１１１のいずれか一方を選択しアドレスデータを入力する。入力データセレクタは、入力したアドレスデータをアドレスデコーダ１１２に対して出力する。
【００２３】
出力制御回路１２は、メモリセルアレイ１０に格納されているデータを２つの出力先に出力するための制御を行う回路である。出力制御回路１２は、データ保持ラッチ１２０、１２１、出力データ保持用フリップフロップ１２２、１２３、出力データセレクタ１２４を備える。
【００２４】
データ保持ラッチ１２０は、出力データセレクタ１２４から入力したデータを保持する。保持したデータは、クロック倍速回路１４から入力した倍速クロックに基づいて出力データ保持用フリップフロップ１２２に対して出力される。データ保持ラッチ１２１は、出力データセレクタ１２４から入力したデータを保持する。保持したデータは、クロック倍速回路１４から入力した倍速クロックに基づいて出力データ保持用フリップフロップ１２３に対して出力される。
【００２５】
出力データ保持用フリップフロップ１２２は、データ保持ラッチ１２０から入力したデータを保持し、入力したクロック信号に基づいて出力ポートＡに対して出力する。出力データ保持用フリップフロップ１２３は、データ保持ラッチ１２１から入力したデータを保持し、入力したクロック信号に基づいて出力ポートＢに対して出力する。出力データセレクタ１２４は、メモリセルアレイ１０から出力されたデータを入力し、クロック倍速回路１４から入力したセレクト信号に基づいて出力先をデータ保持ラッチ１２０またはデータ保持ラッチ１２１から選択して、入力したデータを出力する。
【００２６】
クロックセレクタ１３は、入力データ保持用フリップフロップ１１０に入力されるクロックと入力データ保持用フリップフロップ１１１に入力されるクロックの２種類のクロックを入力し、いずれか一方を選択してクロック倍速回路１４へ出力を行う。クロック倍速回路１４は、クロックセレクタ１３から入力したクロックを倍速してメモリセルアレイ１０、アドレスデコーダ１１２、データ保持ラッチ１２０、１２１に供給する。また倍速化したクロックに基づいてセレクト信号を生成し、入力データセレクタ１１３及び出力データセレクタ１２４に対して出力する。ここでの倍速化クロックは入力クロックの２倍にするが、３倍以上にしてもよい。例えば、入力クロックが１００Ｍｈｚであれば、２００Ｍｈｚ以上にする。
【００２７】
位相差判定回路１５は、クロックセレクタ１３に入力する２つのクロックを入力し、その位相差を検出する。検出した位相差が予め定められた限界値以内の場合は、入力のタイミングの制御ができるため、動作保証が可能と判定する。位相差判定回路１５が動作保証可能と判定した場合は、動作保証が可能である旨の信号の出力を行う。
【００２８】
続いて、図２に示すタイミングチャートを用いて本発明の実施の形態１におけるマルチポートメモリ装置１の処理の流れについて説明する。図２の例では、図２のクロックＡとクロックＢに示す２つの入力ポートの入力クロックの周波数は同じであるが、位相が異なり、両者間に位相差が存在する。
【００２９】
まず、クロックセレクタ１３が、クロックＡ，Ｂの２つのクロックを入力する。クロックセレクタ１３は、入力したクロックＡ、Ｂのうち、いずれのクロックの周波数が高いか判っている場合には高いほうのクロックが選択されるように固定される。他方でクロックＡ、Ｂの周波数が可変の場合には、クロックＡ、Ｂの周波数を検知し、高い方のクロックを選択する。または、外部からの選択信号に応じていずれか一方のクロックを選択するようにしてもよい。図２の例では２つのクロックはクロック周波数が同じであるので、クロック倍速回路１４は、この周波数を２倍した値のクロックをメモリセルアレイ１０、入力制御回路１１、出力制御回路１２に供給する。クロック周波数が異なる場合には、クロック倍速回路１４は、クロック周波数の大きい方を２倍した値のクロックをメモリセルアレイ１０、入力制御回路１１、出力制御回路１２に供給する。
【００３０】
図２のクロックＡは、入力データ保持用フリップフロップ１１０に入力されるクロックＡの信号を、クロックＢは、入力データ保持用フリップフロップ１１１に入力されるクロックＢの信号を示す。また、倍速クロックは、クロック倍速回路１４により倍速にされ、メモリセルアレイ１０、アドレスデコーダ１１２、データ保持ラッチ１２０、１２１に入力される倍速クロックの信号を示す。
【００３１】
図２のタイミングチャートでは、クロックＡがクロックＢよりφだけ先行している。ここでのφは、クロックＡの立ち上がり時間からクロックＢの立ち上がり時間までの時間差である。ただし、クロックＡの立ち上がり時間からクロックＢの立ち上がり時間までの時間差が、クロックＢの立ち上がり時間からクロックＡの立ち上がり時間までの時間差より大きい場合は、φはクロックＢの立ち上がり時間からクロックＡの立ち上がり時間差である。つまりφは、クロックＡの立ち上がり時間からクロックＢの立ち上がり時間までの時間差と、クロックＢの立ち上がり時間からクロックＡの立ち上がり時間までの時間差のうち小さい方である。
【００３２】
図２のセレクト信号に示すＡ、Ｂがそれぞれ入力データセレクタ１１３、出力データセレクタ１２４に出力するセレクト信号の種類を示す。この信号は倍速クロックに合わせてＡ，Ｂを切り替えて出力される。ＡのときはＡを選択するセレクト信号、ＢのときはＢを選択するセレクト信号である。
【００３３】
アドレス入力の処理の流れについて説明する。まず、２つのポートからアドレスデータは別々に入力される。Ａから入力されるアドレスデータは入力データ保持用フリップフロップ１１０に、Ｂから入力されるアドレスデータは入力データ保持用フリップフロップ１１１に入力され保持される。それぞれのアドレスデータ入力は、図２に示すクロックＡ、クロックＢのクロック信号に合わせて行われる。入力ポートＡに示す（０）〜（３）が、入力データ保持用フリップフロップ１１０による入力ポートＡからのアドレスデータの入力である。（０）〜（３）の入力ポートＡの処理は、クロックＡのタイミングに合わせて行われる。入力ポートＢに示す（４）〜（７）が、入力データ保持用フリップフロップ１１１によるポートＢからのアドレスデータの入力である。（４）〜（７）の入力ポートＢの処理は、クロックＢのタイミングに合わせて行われる。
【００３４】
入力されたアドレスデータは、入力データセレクタ１１３により選択されアドレスデコーダ１１２に入力される。Ａ，Ｂどちらのアドレスデータを入力するかは、クロック倍速回路１４から入力データセレクタ１１３に出力される倍速クロックに基づいて生成されるセレクト信号により決定される。図２のセレクト信号に記述されているＡ，ＢはそれぞれポートＡからの入力、ポートＢからの入力を示している。
【００３５】
このときのアドレスデータの入力までに入力データ保持用フリップフロップ１１０，１１１にアドレスデータが格納されている必要があり、データの読み出し及び書き込みが正常に行われるためには位相差φがこのタイミングに間に合う値でなければならない。タイミングに間に合うためのφの限界値は実験により確定することができる。
【００３６】
位相差判定回路１５は、入力した２つのクロックＡ、Ｂの位相差を検出する。検出した位相差φを限界値と比較し、比較の結果、限界値以内の場合は、入力のタイミングの制御ができるため、動作保証が可能と判定する。その場合、位相差判定回路１５は、動作保証が可能である旨のＲｅａｄｙ信号を出力する。出力先は特に限定されないが、マルチポートメモリ装置１を組み込んだ、あるいは接続された制御手段に出力を行うことにより、制御手段はその後の対応を速やかに行うことが可能となる。位相差判定回路１５は、逆に、比較の結果、限界値より大きい場合に、入力のタイミングの制御ができないため、動作保証が不可能と判定し、動作保証が不可能である旨の信号を出力するようにしてもよい。
【００３７】
図３は、本発明における位相差判定回路１５の回路構成を示す図である。位相差判定回路１５は、位相差検出回路１５０、基準値記憶回路１５１、比較回路１５２を備える。
【００３８】
位相差検出回路１５０は２つのクロックを入力し、その位相差を位相差信号として比較回路１５２に出力する。基準値記憶回路１５１は、位相差の許容範囲である基準値を基準値信号として比較回路１５２に出力する。基準値記憶回路１５１は基準値を固定として格納しておき固定値を基準値信号として比較回路１５２に出力してもよいし、外部から基準値を入力して、その値を基準値信号として比較回路１５２に出力してもよい。
【００３９】
位相差検出回路１５０による位相差検出方法の例として、位相差を電圧に変換し、その大きさを基準値である電圧と比較する方法が挙げられる。例えば入力する２つのクロックをそれぞれクロックＡ、クロックＢとすると、クロックＡの立上りでフリップフロップをセットし、他方のクロックＢの立上りでフリップフロップをリセットすることで、位相差がパルス幅に変換される。このパルス幅をt1とすると、t1の時間、適当な容量のキャパシタに蓄えられた電荷を一定の電流で放電することで電圧に変換される。このときのキャパシタの容量をC、キャパシタに蓄えられた電荷をQ、放電時の電流をiとすると、初期電圧はV0=Q/Cであるが、位相差検出時の電圧は V1=V0-(i*t1)/Cとなり、この電圧から位相差を変出することが可能となる。再度位相差を検出するときは、この動作後、キャパシタを充電することで、繰り返しの動作が可能となる。ここで検出した位相差は位相差信号として比較回路１５２に出力される。
【００４０】
比較回路１５２は、位相差検出回路１５０から入力した位相差信号と基準値記憶回路１５１から入力した基準値を比較し、その結果を比較結果信号として出力する。
【００４１】
マルチポートメモリ装置１が動作保証を行うことが出来るか否かの基準となる限界値は、予め実験等で調べることにより決定し、位相差判定回路１５に入力しておく。例えば、このとき、位相差判定回路１５に入力する限界値は、変更可能な構成にしてもよい。このようにすることにより、限界値が変化した場合に対応することが可能となる。
【００４２】
アドレスデコーダ１１２が、入力データセレクタ１１３により選択されたアドレスデータを入力すると、アドレスデコーダ１１２は、メモリセルアレイ１０内の、入力したアドレスデータに対応したアドレスの読み出しを行う。読み出されたデータは、メモリセルアレイ１０から出力データセレクタ１２４に出力される。
【００４３】
アドレスデコーダ１１２により行われるメモリセルアレイ１０内のデータの読み出し処理は、図２の読み出し処理に示すタイミングで処理が行われる。メモリセルアレイ１０はクロック倍速回路１４から倍速クロックを入力し、そのクロックで読み出しが行われるため、読み出し処理は、倍速クロックのタイミングに基づいて行われる。
【００４４】
出力データセレクタ１２４は、メモリセルアレイ１０から出力されたデータを入力し、データ保持ラッチ１２０、１２１に対して出力する。出力データセレクタ１２４は、クロック倍速回路１４からセレクト信号を入力し、入力したセレクト信号に基づいてデータ保持ラッチ１２０とデータ保持ラッチ１２１を選択して出力を行う。
【００４５】
データ保持ラッチ１２０は、出力データセレクタ１２４からデータを入力し、入力したデータを出力データ保持用フリップフロップ１２２に対して出力する。データ保持ラッチ１２０は、クロック倍速回路１４から倍速クロックを入力し、入力した倍速クロックに基づいてデータの出力を行う。同様にデータ保持ラッチ１２１は、出力データセレクタ１２４からデータを入力し、入力したデータを出力データ保持用フリップフロップ１２３に対して出力する。データ保持ラッチ１２１は、クロック倍速回路１４から倍速クロックを入力し、入力した倍速クロックに基づいてデータの出力を行う。
【００４６】
出力データ保持用フリップフロップ１２２は、データ保持ラッチ１２０からデータを入力し、入力したデータを接続された出力ポートＡに対して出力する。ここでの出力は、図２の出力ポートＡの（０）〜（２）に示すタイミングで行われる。出力データ保持用フリップフロップ１２２は倍速クロックではなく入力データ保持用フリップフロップ１１０に入力されるクロックＡを入力し、入力したクロックＡに基づいてデータを出力ポートＡに出力する。
【００４７】
同様に、出力データ保持用フリップフロップ１２３は、データ保持ラッチ１２１からデータを入力し、入力したデータを接続された出力ポートＢに対して出力する。ここでの出力は、図２の出力ポートＢの（６）〜（８）に示すタイミングで行われる。出力データ保持用フリップフロップ１２３は倍速クロックではなく入力データ保持用フリップフロップ１１１に入力されるクロックＢを入力し、入力したクロックＢに基づいてデータを出力ポートＢに出力する。
【００４８】
このような構成により、入力データセレクタが選択し入力したデータをクロック倍速回路により倍速で処理するため、２箇所から入力を行うことが可能である。また、クロック周波数の大きいほうを選択しているため、クロックの異なる入力にも対応することが可能である。更に、位相差判定回路を設けることにより、入力データの位相にずれがある入力にも対応することが可能である。
【００４９】
その他の発明の実施の形態．
上述の例では、クロック倍速回路はクロック周波数を２倍にしたが、これを３倍以上にしてもよい。
また、上述の例では、入出力が２つの場合の例であるが、これを３つ以上の入出力にすることも可能である。この場合は、クロック倍速回路は、すべてのクロックのうち最高のクロック周波数の入出力数倍以上のクロック周波数にする。例えば入出力が３つの場合は３倍以上にする。また、位相差判定回路は全ての組み合わせの位相差の判定を行う。つまり、入力ポート及び出力ポートがｎ個の場合、クロック倍速回路は入力ポートに入力するｎ種類の入力クロックのうち周波数が最も高いクロックのｎ倍のクロックを生成する。また、位相差判定回路はｎ種類の入力クロック全ての位相差についての判定を行う。
【図面の簡単な説明】
【００５０】
【図１】本発明におけるマルチポートメモリ装置の構成を示すブロック図である。
【図２】本発明におけるマルチポートメモリ装置の処理の流れを示すタイミングチャートである。
【図３】本発明における位相差判定回路の回路構成を示す図である。
【図４】従来技術におけるマルチポートメモリ装置の構成を示すブロック図である。
【図５】従来技術におけるマルチポートメモリ装置の処理の流れを示すタイミングチャートである。
【符号の説明】
【００５１】
１    マルチポートメモリ装置
１０    メモリセルアレイ
１１    入力制御回路
１２    出力制御回路
１３    クロックセレクタ
１４    クロック倍速回路
１５    位相差判定回路
１１０    入力データ保持用フリップフロップ
１１１    入力データ保持用フリップフロップ
１１２    アドレスデコーダ
１１３    入力データセレクタ
１２０    データ保持ラッチ
１２１    データ保持ラッチ
１２２    出力データ保持用フリップフロップ
１２３    出力データ保持用フリップフロップ
１２４    出力データセレクタ
２    マルチポートメモリ装置
２０    メモリセルアレイ
２１    入力制御回路
２２    出力制御回路
２３    クロック倍速回路
【図１】
2006252656.tif 000003
【図２】
2006252656.tif 000004
【図３】
2006252656.tif 000005
【図４】
2006252656.tif 000006
【図５】
2006252656.tif 000007