(57)【要約】【課題】面積増加を抑えて、レジスタに格納した書き込みデータを失うことなくレジスタの電源をオフさせることが可能な半導体記憶装置を提供すること【解決手段】本願の一実施の形態にかかる半導体記憶装置１００は、メモリセルアレイ１１０と、ポート端子群１０６ａ、１０６ｂと、ポート端子群１０６ａ、１０６ｂのメモリセルアレイ１１０へのアクセスを制御するアクセス制御回路１３０と、同一のアドレスに対する読み出し及び書き込み動作のアクセスが同一タイミングになされた場合、アクセス制御回路１３０により前記書き込み動作にかかる書き込みデータが格納されるレジスタ回路１４０と、レジスタ回路１４０に電圧を供給する電源ＶＤＤ１を備える。アクセス制御回路１３０は、電源ＶＤＤ１の電源オフを事前に通知する通知信号に応じて、レジスタ回路１４０に格納した前記書き込みデータをメモリセルアレイ１１０に書き込むように制御する。【選択図】図１
2013149319.tif 000002
【特許請求の範囲】
【請求項１】
メモリセル部と、
前記メモリセル部に接続され、外部との信号の入出力を実行する第１及び第２の入出力ポートと、
前記第１及び第２の入出力ポートの前記メモリセル部へのアクセスを制御するアクセス制御回路と、
前記メモリセル部の同一のアドレスに対する読み出し動作及び書き込み動作のアクセスが同一タイミングになされた場合、前記アクセス制御回路により前記書き込み動作にかかる書き込みデータが格納されるレジスタと、
前記レジスタに電圧を供給する電源と、
を備え、
前記アクセス制御回路は、前記電源の電源オフを事前に通知する通知信号に応じて、前記レジスタに格納した前記書き込みデータを前記メモリセル部に書き込むように制御する、
半導体記憶装置。
【請求項２】
前記アクセス制御回路は、
同一のアドレスに対する読み出し動作及び書き込み動作のアクセスが同一タイミングになされた場合に同時アクセス検出信号を生成する同時アクセス検出回路と、
前記同時アクセス検出信号に応じて、前記書き込み動作にかかる書き込みデータを前記レジスタに格納するように制御し、前記通知信号に応じて、前記レジスタに格納した前記書き込みデータを前記メモリセルに書き込むように制御する主制御回路と、
を有する、請求項１に記載の半導体記憶装置。
【請求項３】
前記アクセス制御回路は、
前記第１又は第２の入出力ポートからの入力信号と、前記レジスタに格納した前記書き込みデータと、のいずれかを選択する選択回路と、
前記選択回路の出力に基づいて、前記メモリセル部に対する読み出し又は書き込みの動作を実行する入出力回路と、
をさらに備え、
前記主制御回路は、
前記通知信号に応じて、前記選択回路が前記書き込みデータを選択するように制御するデータ選択制御回路と、
前記通知信号に応じて、前記入出力回路が前記書き込みデータを前記メモリセル部に書き込むように制御する書き込み制御回路と、
を有する、請求項２に記載の半導体記憶装置。
【請求項４】
前記アクセス制御回路は、前記入出力回路が前記レジスタに格納した前記書き込みデータを前記メモリセル部に書き込んだ後に、前記電源の電源オフが可能であることを通知する書き込み終了信号を外部に出力する、
請求項３に記載の半導体記憶装置。
【請求項５】
前記アクセス制御回路は遅延回路を含み、前記遅延回路は、前記通知信号を遅延して出力することにより前記書き込み終了信号を生成する、
請求項４に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関する。
【背景技術】
【０００２】
近年、通信システム（ネットワークシステム）の急速な発達に伴い、これらシステムを支える機器の高性能化又は高機能化がより必要とされている。そのため、システムの処理能力を上げることができるマルチポート半導体記憶装置のＬＳＩ（Large Scale Integration）への搭載が進められている。
【０００３】
従来のマルチポート半導体記憶装置においては、次のような問題があった。それぞれのポートを非同期かつ異なるサイクルで動作させた場合には、両方のポートにおいて同一アドレスが選択され、一方のポートが読み出し動作で他方が書き込み動作（以下、「同時アクセス」とも称する）になる状態がありえる。その際、両方のビット線がセルを介してショートし、書き込み側ポートのデータが読み出し側ポートに伝達するため、読み出しデータの内容を保証できなくなる（正しいデータを読み出せなくなる）という問題があった。
【０００４】
その対策として、特許文献１には、同時アクセスの際にも安定した動作が可能なマルチポート構成の半導体記憶装置が記載されている。特許文献１では、同時アクセス状態の際に、書き込みデータをレジスタに格納してセルへの書き込みを行わないことにより、読み出しデータの内容を保証する。レジスタに格納した書き込みデータは、上述のような読み出しデータへの干渉を起こさない。同時アクセス状態の後、レジスタに格納した書き込みデータにかかるアドレスと同じアドレスの読み出しを外部から指示された場合には、半導体記憶装置はレジスタに格納したデータを外部に出力すると共に、レジスタが格納する書き込みデータをそのアドレスに書き込む。
【０００５】
図１７は、特許文献１のマルチポート半導体記憶装置の全体構成を示すブロック図である。半導体記憶装置９００は、入出力端子群９０５、メモリセルアレイ９１０、入出力回路９２０ａ、入出力回路９２０ｂ、アクセス制御回路９３０及びレジスタ回路９４０を備える。
【０００６】
入出力端子群９０５は、クロック信号ＣＬＫ、アドレス信号Ａ１、Ａ２、書き込み制御信号Ｗ１、Ｗ２、書き込みデータ信号Ｄ１、Ｄ２及び読み出しデータ信号Ｑ１、Ｑ２を授受する。入出力端子群９０５は、第１ポート端子群９０６ａ及び第２ポート端子群９０６ｂを有する。第１ポート端子群９０６ａは、アドレス信号Ａ１、書き込み制御信号Ｗ１、書き込みデータ信号Ｄ１及び読み出しデータ信号Ｑ１の組を入出力し、第２ポート端子群９０６ｂは、アドレス信号Ａ２、書き込み制御信号Ｗ２、書き込みデータ信号Ｄ２及び読み出しデータ信号Ｑ２の組を入出力する。
【０００７】
入出力回路９２０ａは、第１ポート端子群９０６ａに対応する入出力回路であり、第１ポート端子群９０６ａにかかるデータの書き込み又は読み出し動作をメモリセルアレイ９１０に対して実行する。ここで、入出力回路９２０ａは、メモリセルアレイ９１０、入力選択回路９６２、主制御回路９７０及び出力選択回路９６４に接続される。入出力回路９２０ａには、内部クロック信号ＩＣＬＫ１、内部書き込み制御信号ＩＷ１、最終アドレス信号ＬＡ１及び最終書き込みデータ信号ＬＤ１が入力される。入出力回路９２０ａは、出力選択回路９６４にメモリセルに格納されたメモリセル格納データＭＣＤａを出力する。
【０００８】
入出力回路９２０ｂは、第２ポート端子群９０６ｂに対応する入出力回路であり、第２ポート端子群９０６ｂにかかるデータの書き込み又は読み出し動作をメモリセルアレイ９１０に対して実行する。ここで、入出力回路９２０ｂは、メモリセルアレイ９１０、入力選択回路９６２、主制御回路９７０及び出力選択回路９６４に接続される。入出力回路９２０ｂには、内部クロック信号ＩＣＬＫ２、内部書き込み制御信号ＩＷ２、最終アドレス信号ＬＡ２及び最終書き込みデータ信号ＬＤ２が入力される。入出力回路９２０ｂは、出力選択回路９６４にメモリセルのメモリセル格納データＭＣＤｂを出力する。
【０００９】
アクセス制御回路９３０は、同時アクセスを検出して、それぞれのポートのメモリセルへのアクセスを制御する。アクセス制御回路９３０は、同時アクセス検出回路９５０、入力選択回路９６２、出力選択回路９６４、データ選択回路９６６、レジスタアドレス一致比較回路９６８、制御フラグ発生回路９６９及び主制御回路９７０を有する。
【００１０】
レジスタ回路９４０は、同時アクセスが行われた場合に外部からの書き込みデータを一時格納する為のレジスタ回路である。レジスタ回路９４０は、アドレスレジスタ９４２及びデータレジスタ９４４を有する。
【００１１】
アドレスレジスタ９４２及びデータレジスタ９４４は、レジスタ制御信号ＲＴにより動作が制御される。アドレスレジスタ９４２は、入力されたアドレス信号Ａ１をレジスタアドレス信号ＲＡとして格納する。データレジスタ９４４は、データ選択回路９６６により選択された書き込みデータ信号Ｄ１又はＤ２のどちらかのデータ信号を、レジスタデータ信号ＲＤとして格納する。
【００１２】
同時アクセス検出回路９５０には、アドレス信号Ａ１、Ａ２及び書き込み制御信号Ｗ１、Ｗ２が入力される。同時アクセス検出回路９５０は、これらの入力信号に基づいて、同時アクセス検出信号ＥＲＲを出力する。
【００１３】
入力選択回路９６２には、レジスタアドレス信号ＲＡ、レジスタデータ信号ＲＤ、外部からのアドレス信号Ａ１、Ａ２及び書き込みデータ信号Ｄ１、Ｄ２が入力される。入力選択回路９６２は、これらの入力信号及び主制御回路９７０からの入力データ選択信号Ｉ１、Ｉ２に基づいて、第１ポート端子群９０６ａに対応した最終アドレス信号ＬＡ１及び最終書き込みデータ信号ＬＤ１、並びに第２ポート端子群９０６ｂに対応した最終アドレス信号ＬＡ２及び最終書き込みデータ信号ＬＤ２を出力する。
【００１４】
出力選択回路９６４には、第１ポート端子群９０６ａに対応したメモリセル格納データＭＣＤａ及び第２ポート端子群９０６ｂに対応したメモリセル格納データＭＣＤｂがそれぞれ入出力回路９２０ａ、入出力回路９２０ｂから入力される。さらに、出力選択回路９６４には、データレジスタ９４４からレジスタデータ信号ＲＤが入力される。出力選択回路９６４は、主制御回路９７０の出力する出力データ選択信号Ｏ１、Ｏ２に基づいて、第１ポート端子群９０６ａの読み出しデータ信号Ｑ１及び第２ポート端子群９０６ｂの読み出しデータ信号Ｑ２を出力する。
【００１５】
レジスタアドレス一致比較回路９６８には、アドレス信号Ａ１、Ａ２及びレジスタアドレス信号ＲＡが入力される。レジスタアドレス一致比較回路９６８は、これらの入力信号に基づいて、レジスタアドレス一致比較信号ＭＡＴを出力する。
【００１６】
制御フラグ発生回路９６９には、主制御回路９７０の出力するフラグセット信号ＳＥＴ、フラグリセット信号ＲＳＴ及び入出力端子群９０５の出力するクロック信号ＣＬＫが入力される。制御フラグ発生回路９６９は、これらの入力信号に応じて、制御フラグ信号ＦＬＧを出力する。
【００１７】
主制御回路９７０には、クロック信号ＣＬＫ、書き込み制御信号Ｗ１、Ｗ２、同時アクセス検出信号ＥＲＲ、レジスタアドレス一致比較信号ＭＡＴ及び制御フラグ信号ＦＬＧが入力される。主制御回路９７０は、これらの入力信号に応じて、フラグセット信号ＳＥＴ、フラグリセット信号ＲＳＴ、レジスタ制御信号ＲＴ、内部クロック信号ＩＣＬＫ１、ＩＣＬＫ２、内部書き込み制御信号ＩＷ１、ＩＷ２、入力データ選択信号Ｉ１、Ｉ２及び出力データ選択信号Ｏ１、Ｏ２を出力する。ここで、入力データ選択信号Ｉ１、Ｉ２は、入力選択回路９６２に対して書き込みデータ信号Ｄ１、Ｄ２とレジスタデータ信号ＲＤとを選択させ、選択した信号を出力させる信号である。出力データ選択信号Ｏ１、Ｏ２は、出力選択回路９６４に対してメモリセル格納データＭＣＤａ、ＭＣＤｂとレジスタデータ信号ＲＤとを選択させ、選択した信号を出力させる信号である。
【００１８】
半導体記憶装置９００において同時アクセスが発生した場合には、同時アクセス検出信号ＥＲＲが「１」となる。これにより、書き込み動作が指示された入出力ポートに対応する入出力回路への内部クロック信号ＩＣＬＫ１（又はＩＣＬＫ２）が「０」となる。そのため、メモリセルに対しては、同時アクセスにかかる書き込みデータの書き込みが実行されない。
【００１９】
さらに、半導体記憶装置９００は、アドレス信号Ａ１をアドレスレジスタ９４２にラッチし、データ選択回路９６６で選択した書き込みデータ信号Ｄ１（又はＤ２）をデータレジスタ９４４にラッチする。その後クロック信号ＣＬＫが「０」になると、前述のフラグセット信号ＳＥＴの状態が制御フラグ信号ＦＬＧに伝達され「１」となる。このときには、同時アクセスにかかる書き込みデータの書き込みはまだ実行されない。
【００２０】
以上より、書き込みデータがレジスタ回路９４０に保持された状態（以後、同時アクセス保持状態と記載）となる。なお、読み出し動作が指示された入出力ポートに対応する入出力回路への内部クロック信号ＩＣＬＫ２（又はＩＣＬＫ１）は「１」のままである。そのため、同時アクセスにおける読み出し動作は通常通り実行される。
【００２１】
レジスタ回路９４０に一時的に格納された書き込みデータは、同時アクセス以降において、同時アクセス状態ではなく、かつ格納されたアドレスに対する読み出し動作の指示が入力された場合に、メモリセルに書き込まれる。あるいは、格納されたアドレスと異なるアドレスに対して同時アクセスが発生した場合にも、メモリセルに書き込まれる。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２０００−２６８５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２３】
機器の高性能化又は高機能化が進む一方で、機器の低消費電力化も進展している。マルチポート半導体記憶装置の低消費電力化を達成するための手段の一つとして、機能ブロック毎に電源制御回路を設け、メモリセルのデータを保持しつつ消費電流を削減する方法がある。このとき、メモリセルアレイの電源は保持しつつ、メモリセルアレイの周辺回路のみ電源をオフさせる仕様（以下「リテンションモード」と記載する）にする。
【００２４】
しかしながら、特許文献１にかかるマルチポート半導体記憶装置においては、同時アクセス保持状態でリテンションモードに入ると、リテンションモード復帰後の読み出し動作において、すでに書き込まれているはずのメモリセルアレイ９１０の正しいデータが読み出せないという問題が生じる。
【００２５】
その理由は、次の通りである。図１７において、同時アクセス状態の後にリテンションモードに入ると、メモリセルアレイ９１０を除いて半導体記憶装置９００の電源がオフする。これにより、制御フラグ信号ＦＬＧ及びレジスタ回路９４０に格納した同時アクセスにかかる書き込みアドレスと書き込みデータの内容が全て失われる。このため、レジスタ回路９４０に格納されていたレジスタデータ信号ＲＤ（同時アクセスにかかる書き込みデータ）がメモリセルアレイ９１０に書き込めなくなってしまう。
【００２６】
換言すると、特許文献１では、同時アクセスが発生した場合に周辺回路のレジスタに書き込みデータ及び状態フラグを格納しており、メモリセルに同時アクセスにかかるデータを書き込んでいない状態が存在する。そのため、リテンションモードに入り周辺回路の電源がオフされると、レジスタのデータが保持できず、データが失われてしまう。
【００２７】
特許文献１において、通常状態に復帰した際に同時アクセスにかかる書き込みデータを保証するために、半導体記憶装置９００の外部に別途、同時アクセスの検出回路及び書き込みデータの保持回路を構成することが考えられる。第１に、リテンションモードに入る前に、レジスタに格納したデータを保持回路によってメモリセルに書き込む方法が考えられる。第２に、リテンションモードからの復帰後に保持回路に保持されたデータを使用して、同時アクセスにかかるデータを書き込む方法が考えられる。しかし、いずれの方法においても回路規模の増加、制御の複雑化、特性の悪化を招いてしまうため、半導体記憶装置として製品化される実現性が低くなってしまう。
【課題を解決するための手段】
【００２８】
本願の一実施の形態にかかる半導体記憶装置は、メモリセル部と、前記メモリセル部に接続され、外部との信号の入出力を実行する第１及び第２の入出力ポートと、前記第１及び第２の入出力ポートの前記メモリセル部へのアクセスを制御するアクセス制御回路と、前記メモリセル部の同一のアドレスに対する読み出し動作及び書き込み動作のアクセスが同一タイミングになされた場合、前記アクセス制御回路により前記書き込み動作にかかる書き込みデータが格納されるレジスタと、前記レジスタに電圧を供給する電源と、を備える。前記アクセス制御回路は、前記電源の電源オフを事前に通知する通知信号に応じて、前記レジスタに格納した前記書き込みデータを前記メモリセル部に書き込むように制御する。このような構成により、半導体記憶装置は、電源が電源オフされる場合に予めレジスタに格納した書き込みデータをメモリに書き込むため、レジスタに格納した書き込みデータを失うことなく、レジスタの電源をオフさせることが可能である。
【発明の効果】
【００２９】
前記一実施の形態によれば、面積増加を抑えて、レジスタに格納した書き込みデータを失うことなくレジスタの電源をオフさせることが可能な半導体記憶装置を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】実施の形態１にかかる半導体記憶装置の例を示す全体構成図である。
【図２】実施の形態１にかかるメモリセルアレイ及び入出力回路の例を示す構成図である。
【図３】実施の形態１にかかるアドレスレジスタ及びデータレジスタの例を示す回路図である。
【図４】実施の形態１にかかる同時アクセス検出回路の例を示す回路図である。
【図５】実施の形態１にかかる入力選択回路の例を示す回路図である。
【図６】実施の形態１にかかる出力選択回路の例を示す回路図である。
【図７】実施の形態１にかかるデータ選択回路の例を示す回路図である。
【図８】実施の形態１にかかるレジスタアドレス一致比較回路の例を示す回路図である。
【図９】実施の形態１にかかる制御フラグ発生回路の例を示す回路図である。
【図１０】実施の形態１にかかる主制御回路の例を示す構成図である。
【図１１】実施の形態１にかかるレジスタ制御回路の例を示す回路図である。
【図１２】実施の形態１にかかるフラグ切り替え回路の例を示す回路図である。
【図１３】実施の形態１にかかるデータ選択制御回路の例を示す回路図である。
【図１４】実施の形態１にかかるクロック制御回路の例を示す回路図である。
【図１５】実施の形態１にかかる書き込み制御回路の例を示す回路図である。
【図１６】実施の形態１にかかる半導体記憶装置の動作例を示すタイミングチャートである。
【図１７】関連技術にかかる半導体記憶装置の全体構成図である。
【発明を実施するための形態】
【００３１】
実施の形態１
以下、図面を参照して本願の実施の形態１について説明する。図１は、実施の形態１にかかる半導体記憶装置の一例を示す全体構成図である。半導体記憶装置１００は、２ポート構成で１ＣＬＫ制御のＳＲＡＭ（Static Random Access Memory）メモリである。半導体記憶装置１００は、大きく分けて、周辺回路１０１、入出力端子群１０５、１０７及びメモリセルアレイ１１０を備える。周辺回路１０１は電源ＶＤＤ１、メモリセルアレイ１１０は電源ＶＤＤ２に接続されており、周辺回路１０１とメモリセルアレイ１１０とはそれぞれ別電源に接続されている。電源ＶＤＤ１とＶＤＤ２は、独立にオン又はオフが外部より制御可能となっている。
【００３２】
入出力端子群（入出力ポート）１０５は、メモリセルアレイ１１０に接続され、外部との信号の入出力を実行する。具体的には、入出力端子群１０５は、クロック信号ＣＬＫ、アドレス信号Ａ１、Ａ２、書き込み制御信号Ｗ１、Ｗ２、書き込みデータ信号Ｄ１、Ｄ２の入力端子及び読み出しデータ信号Ｑ１、Ｑ２の出力端子を備える。
【００３３】
入出力端子群１０５は、端子の組として、１つのアクセス動作を指定するアドレス信号Ａ１、書き込み制御信号Ｗ１、書き込みデータ信号Ｄ１が入力され、読み出しデータ信号Ｑ１を出力する第１ポート端子群１０６ａ（第１の入出力ポート）を有する。さらに、入出力端子群１０５は、端子の組として、もう１つのアクセス動作を指定するアドレス信号Ａ２、書き込み制御信号Ｗ２、書き込みデータ信号Ｄ２が入力され、読み出しデータ信号Ｑ２を出力する第２ポート端子群１０６ｂ（第２の入出力ポート）を有する。この入出力端子群１０５は、図１７の入出力端子群９０５と同様の構成である。
【００３４】
なお、第１ポート端子群１０６ａ及び第２ポート端子群１０６ｂによる２つのアクセス動作は、独立に行なうことができる。すなわち、第１ポート端子群１０６ａ及び第２ポート端子群１０６ｂは、同一のクロックタイミングにおいて、互いに影響を及ぼすことなく異なるメモリセルへアクセスすることができる。
【００３５】
書き込み制御信号Ｗ１、Ｗ２は、メモリセルアレイ１１０に対する読み出し又は書き込み動作を制御する信号であり、書き込み動作が指示されている場合は「１」であり、読み出し動作が指示されている場合には「０」であるコマンド信号である。クロック信号ＣＬＫは、半導体記憶装置１００全体の動作を制御するためのクロック信号である。
【００３６】
入出力端子群１０７は、リテンションモード制御信号ＢＵＮが入力される端子及び書き込み終了信号ＢＵＲを出力する端子を備える。これは、図１７の半導体記憶装置９００にはない構成である。リテンションモード制御信号ＢＵＮは、電源ＶＤＤ１の電源オフを事前に通知する外部からの通知信号であり、「１」から「０」になることによって、半導体記憶装置１００に対して電源ＶＤＤ１の電源オフを通知する。書き込み終了信号ＢＵＲは、半導体記憶装置１００が、リテンションモード制御信号ＢＵＮに応じて出力する信号である。具体的に言えば、レジスタ回路１４０に格納した書き込みデータをメモリセルアレイ１１０に書き込んだ後に、電源ＶＤＤ１の電源オフが可能であることを通知する信号として、半導体記憶装置１００は書き込み終了信号ＢＵＲを出力する。この詳細については後述する。
【００３７】
メモリセルアレイ１１０は、メモリセルをワード線とビット線にて行列状に配置したものである。この構成の詳細については後述する。メモリセルアレイ１１０は、電源ＶＤＤ２から電圧供給を受けている。
【００３８】
周辺回路１０１は、入出力回路１２０、アクセス制御回路１３０及びレジスタ回路１４０を有する。
【００３９】
入出力回路１２０は、第１ポート端子群１０６ａの入出力動作に対応した入出力回路１２０ａ及び第２ポート端子群１０６ｂの入出力動作に対応した入出力回路１２０ｂの２個の回路を備える。入出力回路１２０ａ及び１２０ｂは、入力選択回路１６２の出力に基づき、互いに独立に指定されたメモリセルアレイ１１０内のアドレスに対して、データの読み出し又は書き込み動作を実行することが可能である。
【００４０】
入出力回路１２０ａは、メモリセルアレイ１１０のほか、入力選択回路１６２、主制御回路１７０及び出力選択回路１６４に接続される。入出力回路１２０ａには、内部クロック信号ＩＣＬＫ１、内部書き込み制御信号ＩＷ１、最終アドレス信号ＬＡ１及び最終書き込みデータ信号ＬＤ１が入力される。入出力回路１２０ａは、内部クロック信号ＩＣＬＫ１により動作する。
【００４１】
入出力回路１２０ａがレジスタ回路１４０に格納された書き込みデータを書き込まない場合には、最終アドレス信号ＬＡ１は第１ポート端子群１０６ａに入力されるアドレス信号Ａ１であり、最終書き込みデータ信号ＬＤ１は第１ポート端子群１０６ａに入力される書き込みデータ信号Ｄ１である。そして内部書き込み制御信号ＩＷ１として、書き込み制御信号Ｗ１の値がそのまま出力される。この場合に、入出力回路１２０ａは、書き込み制御信号Ｗ１及びアドレス信号Ａ１に応じて、メモリセルアレイ１１０内のメモリセルとの間でデータを授受する。これにより、入出力回路１２０ａは、書き込みデータ信号Ｄ１の書き込み又は第１ポート端子群１０６ａが出力する読み出しデータ信号Ｑ１の読み出しを行なう。入出力回路１２０ａは、出力選択回路１６４に、メモリセルアレイ１１０から読み出したデータをメモリセル格納データＭＣＤａとして出力する。
【００４２】
入出力回路１２０ｂも、入出力回路１２０ａと同様に、メモリセルアレイ１１０のほか、入力選択回路１６２、主制御回路１７０及び出力選択回路１６４に接続される。入出力回路１２０ｂには、内部クロック信号ＩＣＬＫ２、内部書き込み制御信号ＩＷ２、入力選択回路１６２の出力する最終アドレス信号ＬＡ２及び最終書き込みデータ信号ＬＤ２が入力される。入出力回路１２０ｂは、入出力回路１２０ａと同様の構成を有する。
【００４３】
入出力回路１２０ｂがレジスタ回路１４０に格納された書き込みデータを書き込まない場合には、最終アドレス信号ＬＡ２、最終書き込みデータ信号ＬＤ２及び内部書き込み制御信号ＩＷ２は、アドレス信号Ａ２、データ信号Ｄ２及び書き込み制御信号Ｗ２の信号と同じ値をとる。この場合に、入出力回路１２０ｂは、書き込み制御信号Ｗ２及びアドレス信号Ａ２に応じて、メモリセルアレイ１１０内のメモリセルとの間でデータを授受する。これにより、入出力回路１２０ｂは、書き込みデータ信号Ｄ２の書き込み又は第２ポート端子群１０６ｂが出力する読み出しデータ信号Ｑ２の読み出しを行なう。入出力回路１２０ｂは、出力選択回路１６４に、メモリセルアレイ１１０から読み出したデータをメモリセル格納データＭＣＤｂとして出力する。
【００４４】
なお、同時アクセスが発生した場合に、最終アドレス信号ＬＡ１がレジスタアドレス信号ＲＡ、最終書き込みデータ信号ＬＤ１がレジスタデータ信号ＲＤの値になることがある。さらに、内部書き込み制御信号ＩＷ１と書き込み制御信号Ｗ１、クロック信号ＣＬＫと内部クロック信号ＩＣＬＫ１とが一致しないことがある。同様に、同時アクセスが発生した場合に、最終アドレス信号ＬＡ２がレジスタアドレス信号ＲＡ、最終書き込みデータ信号ＬＤ２がレジスタデータ信号ＲＤの値になることがある。さらに、内部書き込み制御信号ＩＷ２と書き込み制御信号Ｗ２、クロック信号ＣＬＫと内部クロック信号ＩＣＬＫ２とが一致しないことがある。この詳細については後述する。
【００４５】
図２は、メモリセルアレイ１１０及び入出力回路１２０ａ、１２０ｂの具体例を示す構成図である。メモリセルアレイ１１０は、２個のインバータ２０２及び２０３をたすき掛けに接続して構成されるメモリセル２０１を含む。メモリセルアレイ１１０においては、各メモリセルの列ごとにワード線ＷＬａ及びＷＬｂが設けられる。さらに、メモリセルの列ごとに２つのビット線対ＢＬａ、／ＢＬａとＢＬｂ、／ＢＬｂとが設けられる。なお、メモリセルアレイ１１０には、図示されるメモリセル２０１の他にも同様のメモリセルが設けられている。
【００４６】
より詳細にいえば、メモリセルアレイ１１０の構成は次の通りである。ワード線ＷＬａは、アクセストランジスタ２０４及び２０５のゲートに接続されている。アクセストランジスタ２０４の一方の端子には、インバータ２０２の入力端子が接続されている。インバータ２０２の出力端子には、アクセストランジスタ２０５の一方の端子が接続されている。アクセストランジスタ２０４の他方の端子にはビット線ＢＬａが、アクセストランジスタ２０５の他方の端子にはビット線／ＢＬａがそれぞれ接続される。
【００４７】
ワード線ＷＬｂは、アクセストランジスタ２０６及び２０７のゲートに接続されている。アクセストランジスタ２０７の一方の端子には、インバータ２０３の入力端子が接続されている。インバータ２０３の出力端子には、アクセストランジスタ２０６の一方の端子が接続されている。アクセストランジスタ２０６の他方の入力端子にはビット線ＢＬｂが、アクセストランジスタ２０７の他方の入力端子にはビット線／ＢＬｂがそれぞれ接続される。
【００４８】
ここで、アクセストランジスタ２０４とインバータ２０２間の信号線はアクセストランジスタ２０６とインバータ２０３間の信号線に接続され、アクセストランジスタ２０５とインバータ２０２間の信号線はアクセストランジスタ２０７とインバータ２０３間の信号線に接続されている。このようにして、インバータ２０２及び２０３は、メモリセル２０１を構成する。メモリセル２０１のデータは、アクセストランジスタ２０４及び２０５によってビット線対ＢＬａ、／ＢＬａに伝達される。同様に、アクセストランジスタ２０６及び２０７によって、メモリセル２０１のデータはビット線対ＢＬｂ、／ＢＬｂに伝達される。
【００４９】
入出力回路１２０ａは、アドレスデコード回路１２２ａ及び読み出し／書き込み回路１２４ａを有する。アドレスデコード回路１２２ａには、ワード線ＷＬａが接続されており、読み出し／書き込み回路１２４ａには、ビット線対ＢＬａ、／ＢＬａが接続されている。
【００５０】
アドレスデコード回路１２２ａには、最終アドレス信号ＬＡ１が入力され、読み出し／書き込み回路１２４ａには、最終書き込みデータ信号ＬＤ１が入力される。入出力回路１２０ａは、ワード線ＷＬａ及びビット線対ＢＬａ、／ＢＬａによって、最終アドレス信号ＬＡ１及び内部書き込み制御信号ＩＷ１に応じて、選択されるメモリセルとの間でデータの入出力を実行する。入出力回路１２０ａは、内部クロック信号ＩＣＬＫ１によって動作を実行するか否かの制御がなされ、内部書き込み制御信号ＩＷ１によって、書き込みを実行するか否かの制御がなされる。
【００５１】
入出力回路１２０ｂも、入出力回路１２０ａと同様の構成を有する。
【００５２】
このように、メモリセルアレイ１１０に対しては、入出力回路、ワード線及びビット線対が２つのアクセス系統に対して独立に配置されている。このため、各入出力系統は、異なるメモリセルに対してであれば、特別な制御を行なうことなく、同時に互いに独立して読み出し及び書き込み動作を実行することが可能である。
【００５３】
図３は、レジスタ回路１４０の構成例を示す回路図である。レジスタ回路１４０は、同時アクセスが発生した場合に、外部から入力された書き込み動作にかかるアドレス信号及び書き込みデータ信号をアクセス制御回路１３０が一時的に格納するレジスタ回路である。ここで同時アクセスとは、第１ポート端子群１０６ａ及び第２ポート端子群１０６ｂから、同一アドレスのメモリセルに対して読み出し動作と書き込み動作とが同時に指示された状態のことを示す。これにより、同時アクセス以前のデータを破壊することなく同時アクセスにおける読み出し動作を安定して実行することができる。さらに、同時アクセスにおける指定アドレスに対応するメモリセルへの書き込みデータを正常に格納することができる。レジスタ回路１４０は、アドレスレジスタ１４２及びデータレジスタ１４４を有する。
【００５４】
レジスタ回路１４０は、アドレスレジスタ１４２及びデータレジスタ１４４を備える。アドレスレジスタ１４２及びデータレジスタ１４４は、インバータ２０８、２０９、２１０、２１１、２１２、２１３、２１４及びトランスファーゲート２１５、２１６、２１７、２１８を備える。インバータ２０９、２１０、２１２及び２１４は、入力ノードと出力ノードとの間に直列に接続される。インバータ２１０とインバータ２１１とはたすき掛け状に設けられ、データラッチを構成する。インバータ２１２とインバータ２１３も同様に設けられる。入力ノードからのデータの取り込み及び出力ノードへの伝達は、トランスファーゲート２１５〜２１８によって、レジスタ制御信号ＲＴの信号レベルに応じて実行される。
【００５５】
アドレスレジスタ１４２は、レジスタ制御信号ＲＴに応じて動作し、入力ノードに与えられたアドレス信号Ａ１をレジスタアドレス信号ＲＡとして格納する。データレジスタ１４４は、レジスタ制御信号ＲＴに応じて動作し、入力ノードに与えられた選択データ信号ＤＳをレジスタデータ信号ＲＤとして格納する。なお、選択データ信号ＤＳは、データ選択回路１６６が選択して出力したデータである。
【００５６】
以下、データレジスタ１４４の具体的な回路構成について説明する。インバータ２０８は、入力されたレジスタ制御信号ＲＴを反転して、トランスファーゲート２１５、２１８のＮＭＯＳ（Negative channel Metal Oxide Semiconductor）側のゲート端子及びトランスファーゲート２１６、２１７のＰＭＯＳ（Positive channel Metal Oxide Semiconductor）側のゲート端子に出力する。
【００５７】
インバータ２０９は、入力された選択データ信号ＤＳを反転して、トランスファーゲート２１５に出力する。
【００５８】
トランスファーゲート２１５は、入力端子にインバータ２０９の出力信号が、ＮＭＯＳ側のゲート端子にレジスタ制御信号ＲＴの反転信号が、ＰＭＯＳ側のゲート端子にレジスタ制御信号ＲＴがそれぞれ入力される。トランスファーゲート２１５は、これらの信号に応じて、出力信号をインバータ２１０に出力する。トランスファーゲート２１５の出力信号の伝送線には、トランスファーゲート２１６の出力端子が接続される。
【００５９】
インバータ２１０は、トランスファーゲート２１５の出力信号を反転して、インバータ２１１及びトランスファーゲート２１７に出力する。
【００６０】
インバータ２１１は、インバータ２１０の出力信号を反転して、トランスファーゲート２１６に出力する。つまり、インバータ２１１は、トランスファーゲート２１５の出力信号を出力する。トランスファーゲート２１６は、入力端子にインバータ２１１の出力信号が、ＮＭＯＳ側のゲート端子にレジスタ制御信号ＲＴが、ＰＭＯＳ側のゲート端子に反転されたレジスタ制御信号ＲＴがそれぞれ入力される。これらの信号に応じて、トランスファーゲート２１６は、出力信号をインバータ２１０に出力する。
【００６１】
トランスファーゲート２１７は、入力端子にインバータ２１０の出力信号が、ＮＭＯＳ側のゲート端子にレジスタ制御信号ＲＴが、ＰＭＯＳ側のゲート端子に反転されたレジスタ制御信号ＲＴがそれぞれ入力される。トランスファーゲート２１７は、これらの信号に応じて、出力信号をインバータ２１２に出力する。トランスファーゲート２１７の出力信号の伝送線には、トランスファーゲート２１８の出力端子が接続される。
【００６２】
インバータ２１２は、トランスファーゲート２１７の出力信号を反転して、インバータ２１３及び２１４に出力する。
【００６３】
インバータ２１３は、インバータ２１２の出力信号を反転して、トランスファーゲート２１８に出力する。つまり、インバータ２１３は、トランスファーゲート２１７の出力信号を出力する。トランスファーゲート２１８は、入力端子にインバータ２１３の出力信号が、ＮＭＯＳ側のゲート端子にインバータ２０８の出力信号が、ＰＭＯＳ側のゲート端子にレジスタ制御信号ＲＴがそれぞれ入力される。これらの信号に応じて、トランスファーゲート２１８は、出力信号をインバータ２１２に出力する。
【００６４】
インバータ２１４は、インバータ２１２の出力信号を反転して、レジスタアドレス信号ＲＡを出力する。
【００６５】
以上より、データレジスタ１４４は、データ選択回路１６６より与えられる選択データ信号ＤＳ（外部からの書き込みデータ信号Ｄ１又はＤ２）をレジスタ制御信号ＲＴの値の変化に応じて取込み、レジスタデータ信号ＲＤとして格納する。アドレスレジスタ１４２は、同じタイミングにおいてアドレス信号Ａ１（Ａ２）を取込み、レジスタアドレス信号ＲＡとして格納する。
【００６６】
アクセス制御回路１３０は、同時アクセスを検出し、第１ポート端子群１０６ａ及び第２ポート端子群１０６ｂのメモリセルアレイ１１０へのアクセスを制御する。アクセス制御回路１３０は、電源ＶＤＤ１の電源オフを事前に通知するリテンションモード制御信号ＢＵＮに応じて、データレジスタ１４４に格納した書き込みデータをメモリセルアレイ１１０に書き込む。さらにアクセス制御回路１３０は、書き込みデータをメモリセルアレイ１１０に書き込んだ後に、電源ＶＤＤ１の電源オフが可能であることを通知する書き込み終了信号ＢＵＲを外部に出力する。
【００６７】
アクセス制御回路１３０は、同時アクセス検出回路１５０、入力選択回路１６２、出力選択回路１６４、データ選択回路１６６、レジスタアドレス一致比較回路１６８、制御フラグ発生回路１６９及び主制御回路１７０を有する。入力選択回路１６２、出力選択回路１６４及びデータ選択回路１６６は、同時アクセスが発生した場合に、データの流れを調整するために設けられている。
【００６８】
図４は、同時アクセス検出回路１５０の構成例を示す回路図である。同時アクセス検出回路１５０は、同時アクセスを検出する回路である。同時アクセス検出回路１５０は、入力されるアドレス信号Ａ１、Ａ２及び書き込み制御信号Ｗ１、Ｗ２に基づいて、同時アクセスを検出する。同時アクセスを検出した場合には、同時アクセス検出回路１５０は、同時アクセス検出信号ＥＲＲとして「１」を出力する。検出しない場合には、同時アクセス検出信号ＥＲＲとして「０」を出力する。この同時アクセス検出信号ＥＲＲにより、それぞれの入出力ポートのメモリセルへのアクセスが制御される。
【００６９】
同時アクセス検出回路１５０は、ｎビット（ｎは自然数）のアドレス信号Ａ１及びＡ２が完全に一致するか否かを判定する。同時アクセス検出回路１５０はさらに、第１ポート端子群１０６ａへの書き込み制御信号Ｗ１と第２ポート端子群１０６ｂへの書き込み制御信号Ｗ２とが一致しているか否かを判定する。
【００７０】
同時アクセス検出回路１５０は、ｎ個のＥＸＮＯＲ回路の論理ゲートを備える。このｎ個の論理ゲートは、それぞれアドレス信号Ａ１及びＡ２の各ビットについて一致比較を行ない、一致した場合に「１」を出力する。図４には、ｎ個のＥＸＮＯＲ回路の代表として、アドレス信号Ａ１及びＡ２の先頭ビットであるＡ１＜０＞とＡ２＜０＞との一致判定を行なうＥＸＮＯＲ回路２１９と、アドレス信号Ａ１及びＡ２の最終ビットであるＡ１＜ｎ−１＞とＡ２＜ｎ−１＞との一致判定を行なうＥＸＮＯＲ回路２２０とが示されている。
【００７１】
同時アクセス検出回路１５０は、さらに、書き込み制御信号Ｗ１とＷ２とのレベルが不一致である場合に「１」を出力するＥＸＯＲ回路２２１を備える。同時アクセス検出回路１５０は、さらに、上述したＥＸＮＯＲ回路２１９、２２０、ＥＸＯＲ回路２２１の出力信号が入力される論理ゲートとして、ＡＮＤ回路２２２を備える。ＡＮＤ回路２２２は、入力信号に基づいて、同時アクセス検出信号ＥＲＲを出力する。このような構成にすることにより、同時アクセス検出信号ＥＲＲは、アドレス信号Ａ１及びＡ２が完全に一致し、かつ書き込み制御信号Ｗ１とＷ２とが不一致である場合に、同時アクセス検出信号ＥＲＲとして「１」を出力する。つまり、同時アクセス検出信号ＥＲＲは、第１ポート端子群１０６ａ及び第２ポート端子群１０６ｂによって同一のメモリセルへのアクセスが指定され、かつ読み出し動作と書き込み動作とが重複して指示される場合（すなわち、同時アクセス状態）に「１」となる。
【００７２】
図５は、入力選択回路１６２の構成例を示す回路図である。入力選択回路１６２には、レジスタアドレス信号ＲＡ、レジスタデータ信号ＲＤ、アドレス信号Ａ１、Ａ２、書き込みデータ信号Ｄ１、Ｄ２及び入力データ選択信号Ｉ１、Ｉ２が入力される。アドレス信号Ａ１及び書き込みデータ信号Ｄ１は第１ポート端子群１０６ａからの入力信号であり、アドレス信号Ａ２及び書き込みデータ信号Ｄ２は第２ポート端子群１０６ｂからの入力信号である。レジスタアドレス信号ＲＡ及びレジスタデータ信号ＲＤは、レジスタ回路１４０に格納されたアドレス及び書き込みデータである。入力データ選択信号Ｉ１、Ｉ２は、入力選択回路１６２が入出力回路１２０ａ又は１２０ｂに出力する最終アドレス信号ＬＡ１、ＬＡ２及び最終書き込みデータ信号ＬＤ１、ＬＤ２の内容を制御する信号である。
【００７３】
入力選択回路１６２は、入力データ選択信号Ｉ１が「０」である場合においては、入力アドレス信号Ａ１、書き込みデータ信号Ｄ１を選択して、最終アドレス信号ＬＡ１、最終書き込みデータ信号ＬＤ１として入出力回路１２０ａへ出力する。しかし、入力データ選択信号Ｉ１が「１」である場合には、レジスタ回路１４０に格納されたレジスタアドレス信号ＲＡ、レジスタデータ信号ＲＤを最終アドレス信号ＬＡ１、最終書き込みデータ信号ＬＤ１として入出力回路１２０ａへ出力する。これにより、レジスタデータ信号ＲＤは、レジスタアドレス信号ＲＡで示されたアドレスのメモリセルに格納される。
【００７４】
入力選択回路１６２は、入力データ選択信号Ｉ２が「０」の場合に、入力アドレス信号Ａ２、書き込みデータ信号Ｄ２を最終アドレス信号ＬＡ２、最終書き込みデータ信号ＬＤ２として入出力回路１２０ｂへ出力する。入力データ選択信号Ｉ２が「１」の場合に、レジスタアドレス信号ＲＡ、レジスタデータ信号ＲＤを最終アドレス信号ＬＡ２、最終書き込みデータ信号ＬＤ２として入出力回路１２０ｂへ出力する。これにより、レジスタデータ信号ＲＤは、レジスタアドレス信号ＲＡで示されたアドレスのメモリセルに格納される。
【００７５】
入力選択回路１６２は、インバータ２２３、２２４及びトランスファーゲート２２５、２２６、２２７、２２８、２２９、２３０、２３１、２３２を備える。
【００７６】
インバータ２２３は、入力される入力データ選択信号Ｉ１を反転して、トランスファーゲート２２５のＰＭＯＳ側のゲート端子、トランスファーゲート２２６のＮＭＯＳ側のゲート端子、トランスファーゲート２２９のＰＭＯＳ側のゲート端子及びトランスファーゲート２３０のＮＭＯＳ側のゲート端子に出力する。
【００７７】
インバータ２２４は、入力される入力データ選択信号Ｉ２を反転して、トランスファーゲート２２７のＰＭＯＳ側のゲート端子、トランスファーゲート２２８のＮＭＯＳ側のゲート端子、トランスファーゲート２３１のＰＭＯＳ側のゲート端子及びトランスファーゲート２３２のＮＭＯＳ側のゲート端子に出力する。
【００７８】
トランスファーゲート２２５は、入力端子にレジスタアドレス信号ＲＡが、ＮＭＯＳ側のゲート端子に入力データ選択信号Ｉ１が、ＰＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ１がそれぞれ入力される。トランスファーゲート２２５は、入力データ選択信号Ｉ１が「１」の場合に導通し、レジスタアドレス信号ＲＡを最終アドレス信号ＬＡ１として出力する。
【００７９】
トランスファーゲート２２６は、入力端子にアドレス信号Ａ１が、ＮＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ１が、ＰＭＯＳ側のゲート端子に入力データ選択信号Ｉ１がそれぞれ入力される。トランスファーゲート２２６は、入力データ選択信号Ｉ１が「０」の場合に導通し、アドレス信号Ａ１を最終アドレス信号ＬＡ１として出力する。
【００８０】
トランスファーゲート２２７は、入力端子にレジスタアドレス信号ＲＡが、ＮＭＯＳ側のゲート端子に入力データ選択信号Ｉ２が、ＰＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ２がそれぞれ入力される。トランスファーゲート２２７は、入力データ選択信号Ｉ２が「１」の場合に導通し、レジスタアドレス信号ＲＡを最終アドレス信号ＬＡ２として出力する。トランスファーゲート２２８は、入力端子にアドレス信号Ａ２が、ＮＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ２が、ＰＭＯＳ側のゲート端子に入力データ選択信号Ｉ２がそれぞれ入力される。トランスファーゲート２２８は、入力データ選択信号Ｉ２が「０」の場合に導通し、アドレス信号Ａ２を最終アドレス信号ＬＡ２として出力する。
【００８１】
トランスファーゲート２２９は、入力端子にレジスタデータ信号ＲＤが、ＮＭＯＳ側のゲート端子に入力データ選択信号Ｉ１が、ＰＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ１がそれぞれ入力される。トランスファーゲート２２９は、入力データ選択信号Ｉ１が「１」の場合に導通し、レジスタデータ信号ＲＤを最終書き込みデータ信号ＬＤ１として出力する。トランスファーゲート２３０は、入力端子に書き込みデータ信号Ｄ１が、ＮＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ１が、ＰＭＯＳ側のゲート端子に入力データ選択信号Ｉ１がそれぞれ入力される。トランスファーゲート２３０は、入力データ選択信号Ｉ１が「０」の場合に導通し、書き込みデータ信号Ｄ１を最終書き込みデータ信号ＬＤ１として出力する。
【００８２】
トランスファーゲート２３１は、入力端子にレジスタデータ信号ＲＤが、ＮＭＯＳ側のゲート端子に入力データ選択信号Ｉ２が、ＰＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ２がそれぞれ入力される。トランスファーゲート２３１は、入力データ選択信号Ｉ２が「１」の場合に導通し、レジスタデータ信号ＲＤを最終書き込みデータ信号ＬＤ２として出力する。トランスファーゲート２３２は、入力端子に書き込みデータ信号Ｄ２が、ＮＭＯＳ側のゲート端子に反転された入力データ選択信号Ｉ２が、ＰＭＯＳ側のゲート端子に入力データ選択信号Ｉ２がそれぞれ入力される。トランスファーゲート２３２は、入力データ選択信号Ｉ２が「０」の場合に導通し、書き込みデータ信号Ｄ２を最終書き込みデータ信号ＬＤ２として出力する。
【００８３】
このようにして、入力選択回路１６２は、入力データ選択信号Ｉ１の状態に応じて、最終アドレス信号ＬＡ１、最終書き込みデータ信号ＬＤ１を、入力アドレス信号Ａ１、書き込みデータ信号Ｄ１とするか、又はレジスタ回路１４０に格納されたレジスタアドレス信号ＲＡ、レジスタデータ信号ＲＤとするかの切り替えを行なう。入力データ選択信号Ｉ２の状態に応じても、同様の切り替えを行う。
【００８４】
図６は、出力選択回路１６４の構成例を示す回路図である。出力選択回路１６４には、レジスタデータ信号ＲＤ、メモリセル格納データＭＣＤａ、ＭＣＤｂ及び出力データ選択信号Ｏ１、Ｏ２が入力される。なおメモリセル格納データＭＣＤａ、ＭＣＤｂは、それぞれ入出力回路１２０ａ、１２０ｂがメモリセルから読み出したデータである。出力データ選択信号Ｏ１及びＯ２は、半導体記憶装置１００が読み出し動作を実行する場合に、出力選択回路１６４が第１ポート端子群１０６ａ又は第２ポート端子群１０６ｂに出力する読み出しデータ信号Ｑ１又はＱ２を制御するための信号である。
【００８５】
出力選択回路１６４は出力データ選択信号Ｏ１、Ｏ２が「０」の場合において、メモリセル格納データＭＣＤａ、ＭＣＤｂを読み出しデータ信号Ｑ１、Ｑ２として、第１ポート端子群１０６ａ、第２ポート端子群１０６ｂにそれぞれ出力する。しかし、出力データ選択信号Ｏ１又はＯ２が「１」の場合において、レジスタ回路１４０に格納されたレジスタデータ信号ＲＤを読み出しデータ信号Ｑ１又はＱ２として出力する。
【００８６】
出力選択回路１６４は、インバータ２３３、２３４及びトランスファーゲート２３５、２３６、２３７、２３８を備える。
【００８７】
インバータ２３３は、入力された出力データ選択信号Ｏ１を反転して、トランスファーゲート２３５のＰＭＯＳ側のゲート端子及びトランスファーゲート２３６のＮＭＯＳ側のゲート端子に出力する。インバータ２３４も同様に、入力された出力データ選択信号Ｏ２を反転して、トランスファーゲート２３７のＰＭＯＳ側のゲート端子及びトランスファーゲート２３８のＮＭＯＳ側のゲート端子に出力する。
【００８８】
トランスファーゲート２３５には、入力端子にレジスタデータ信号ＲＤが、ＮＭＯＳ側のゲート端子に出力データ選択信号Ｏ１が、ＰＭＯＳ側のゲート端子にインバータ２３３の出力信号（出力データ選択信号Ｏ１の反転信号）が、それぞれ入力される。トランスファーゲート２３５は、出力データ選択信号Ｏ１が「１」の場合に導通し、レジスタデータ信号ＲＤを読み出しデータ信号Ｑ１として出力する。
【００８９】
トランスファーゲート２３６には、入力端子にメモリセル格納データＭＣＤａが、ＮＭＯＳ側のゲート端子にインバータ２３３の出力信号（出力データ選択信号Ｏ１の反転信号）が、ＰＭＯＳ側のゲート端子に出力データ選択信号Ｏ１が、それぞれ入力される。トランスファーゲート２３６は、出力データ選択信号Ｏ１が「０」の場合に導通し、メモリセル格納データＭＣＤａを読み出しデータ信号Ｑ１として出力する。
【００９０】
トランスファーゲート２３７には、入力端子にレジスタデータ信号ＲＤが、ＮＭＯＳ側のゲート端子に出力データ選択信号Ｏ２が、ＰＭＯＳ側のゲート端子にインバータ２３４の出力信号（出力データ選択信号Ｏ２の反転信号）が、それぞれ入力される。トランスファーゲート２３７は、出力データ選択信号Ｏ２が「１」の場合に導通し、レジスタデータ信号ＲＤを読み出しデータ信号Ｑ２として出力する。トランスファーゲート２３８には、入力端子にメモリセル格納データＭＣＤｂが、ＮＭＯＳ側のゲート端子にインバータ２３４の出力信号（出力データ選択信号Ｏ２の反転信号）が、ＰＭＯＳ側のゲート端子に出力データ選択信号Ｏ２が、それぞれ入力される。トランスファーゲート２３８は、出力データ選択信号Ｏ２が「０」の場合に導通し、メモリセル格納データＭＣＤｂを読み出しデータ信号Ｑ２として出力する。
【００９１】
このようにして、出力選択回路１６４は、出力データ選択信号Ｏ１、Ｏ２の状態に応じて、出力する読み出しデータ信号Ｑ１、Ｑ２を、通常のメモリセル格納データＭＣＤａ、ＭＣＤｂとするか、又はレジスタデータ信号ＲＤとするかの切り替えを行なう。
【００９２】
図７は、データ選択回路１６６の構成例を示す回路図である。データ選択回路１６６には、各入出力ポートの書き込み制御信号Ｗ１、Ｗ２、書き込みデータ信号Ｄ１、Ｄ２及び同時アクセス検出信号ＥＲＲが入力される。データ選択回路１６６は、同時アクセス検出信号ＥＲＲ及び書き込み制御信号Ｗ１及びＷ２に応じて、選択データ信号ＤＳをレジスタ回路１４０の入力ノードに出力する。データ選択回路１６６は、同時アクセスが検出されない場合（同時アクセス検出信号ＥＲＲが「０」である場合）には選択データ信号ＤＳとして「１」を出力する。同時アクセスが検出された場合（同時アクセス検出信号ＥＲＲが「１」である場合）には、書き込みデータ信号Ｄ１又はＤ２のいずれか一方を選択データ信号ＤＳとして出力する。このように、データ選択回路１６６は、同時アクセスが検出された場合には、読み出し動作を優先して行なうために書き込みデータを一時的に退避させるべく、書き込みデータ信号Ｄ１又はＤ２のいずれかを選択データ信号ＤＳとしてレジスタ回路１４０に出力する。
【００９３】
データ選択回路１６６は、ＡＮＤ回路２３９、２４０、インバータ２４１、２４２、トランスファーゲート２４３、２４４及びプリチャージトランジスタ２４５を回路素子として備える。
【００９４】
ＡＮＤ回路２３９の一方の入力端子には同時アクセス検出信号ＥＲＲが、他方の入力端子には書き込み制御信号Ｗ１が入力される。ＡＮＤ回路２３９は、それらの入力信号に応じて、出力信号をインバータ２４１及びトランスファーゲート２４３のＮＭＯＳ側のゲート端子に出力する。
【００９５】
ＡＮＤ回路２４０の一方の入力端子には同時アクセス検出信号ＥＲＲが、他方の入力端子には書き込み制御信号Ｗ２が入力される。ＡＮＤ回路２４０は、それらの入力信号に応じて、出力信号をインバータ２４２及びトランスファーゲート２４４のＮＭＯＳ側のゲート端子に出力する。
【００９６】
インバータ２４１は、ＡＮＤ回路２３９の出力信号を反転して、トランスファーゲート２４３のＰＭＯＳ側のゲート端子に出力する。インバータ２４２は、ＡＮＤ回路２４０の出力信号を反転して、トランスファーゲート２４４のＰＭＯＳ側のゲート端子に出力する。
【００９７】
トランスファーゲート２４３は、入力端子に書き込みデータ信号Ｄ１が入力される。トランスファーゲート２４３は、ＮＭＯＳ側のゲート端子への入力信号及びＰＭＯＳ側のゲート端子への入力信号に応じて、出力ノードに選択データ信号ＤＳとして書き込みデータ信号Ｄ１を出力する。トランスファーゲート２４４も同様にして、入力端子に入力された書き込みデータ信号Ｄ２を、ＮＭＯＳ側のゲート端子への入力信号及びＰＭＯＳ側のゲート端子への入力信号に応じて出力ノードに出力する。
【００９８】
プリチャージトランジスタ２４５はＰＭＯＳトランジスタであり、ソース端子に電源ＶＤＤ１からの電圧Ｖｃｃが、ゲート端子に同時アクセス検出信号ＥＲＲが入力される。
【００９９】
プリチャージトランジスタ２４５は、同時アクセス検出信号ＥＲＲに応じて、出力する選択データ信号ＤＳのプリチャージ制御を行う。具体的には、データ選択回路１６６において、同時アクセス検出信号ＥＲＲが「０」の場合には、プリチャージトランジスタ２４５がオンし、出力ノードからの出力信号は「１」となる。しかし、同時アクセス検出信号ＥＲＲが「１」の場合（同時アクセスが検出された場合）には、プリチャージトランジスタ２４５がオフ状態となる。ここで、書き込み制御信号Ｗ１が「１」の場合には、トランスファーゲート２４３が導通することにより、書き込みデータ信号Ｄ１が出力ノードに出力される。これにより、データ選択回路１６６は、選択データ信号ＤＳとして書き込みデータ信号Ｄ１を出力する。同様に、同時アクセス検出信号ＥＲＲが「１」であり、かつ書き込み制御信号Ｗ２が「１」であるときには、トランスファーゲート２４４が導通することにより、書き込みデータ信号Ｄ２が選択データ信号ＤＳとして出力される。
【０１００】
図８は、レジスタアドレス一致比較回路１６８の構成例を示す回路図である。レジスタアドレス一致比較回路１６８は、レジスタ回路１４０に現在格納されているレジスタアドレス信号ＲＡと、入力されたアドレス信号Ａ１とが一致しているかどうかを比較して、レジスタアドレス一致比較信号ＭＡＴ１を出力する。それと独立に、レジスタアドレス一致比較回路１６８は、レジスタアドレス信号ＲＡと、入力されたアドレス信号Ａ２とが一致しているかどうかも比較して、レジスタアドレス一致比較信号ＭＡＴ２を出力する。さらに、レジスタアドレス一致比較回路１６８は、レジスタアドレス一致比較信号ＭＡＴ１及びＭＡＴ２の値に応じて、レジスタアドレス一致比較信号ＭＡＴを出力する。アドレス信号Ａ１とレジスタアドレス信号ＲＡとが一致する場合に、レジスタアドレス一致比較回路１６８は出力するレジスタアドレス一致比較信号ＭＡＴ１を「１」にする。アドレス信号Ａ２とレジスタアドレス信号ＲＡとが一致する場合には、レジスタアドレス一致比較回路１６８はレジスタアドレス一致比較信号ＭＡＴ２を「１」にする。レジスタアドレス一致比較信号ＭＡＴ１及びＭＡＴ２の少なくとも一方が「１」の場合には、レジスタアドレス一致比較回路１６８はレジスタアドレス一致比較信号ＭＡＴを「１」にする。
【０１０１】
レジスタアドレス一致比較回路１６８は、ｎビット（ｎは自然数）のアドレス信号Ａ１が、レジスタアドレス信号ＲＡと完全に一致するか否かを判定するとともに、ｎビットのアドレス信号Ａ２がレジスタアドレス信号ＲＡと完全に一致するか否かを判定する。そのため、レジスタアドレス一致比較回路１６８は、２ｎ個のＥＸＮＯＲ回路の論理ゲートを備える。この２ｎ個のＥＸＮＯＲ回路は、それぞれアドレス信号Ａ１（又はＡ２）の各ビットと、レジスタアドレス信号ＲＡの各ビットについて一致比較を行ない、一致した場合に「１」を出力する。図８には、アドレス信号Ａ１及びレジスタアドレス信号ＲＡの一致比較を行うＥＸＮＯＲ回路の代表として、アドレス信号Ａ１及びレジスタアドレス信号ＲＡの先頭ビットであるＡ１＜０＞とＲＡ＜０＞との一致判定を行なうＥＸＮＯＲ回路２４６、アドレス信号Ａ１及びレジスタアドレス信号ＲＡの最終ビットであるＡ１＜ｎ−１＞とＲＡ＜ｎ−１＞との一致判定を行なうＥＸＮＯＲ回路２４７が示されている。さらにアドレス信号Ａ２及びレジスタアドレス信号ＲＡの一致比較を行うＥＸＮＯＲ回路の代表として、アドレス信号Ａ２及びレジスタアドレス信号ＲＡの先頭ビットであるＡ２＜０＞とＲＡ＜０＞との一致判定を行なうＥＸＮＯＲ回路２４８、アドレス信号Ａ２及びレジスタアドレス信号ＲＡの最終ビットであるＡ２＜ｎ−１＞とＲＡ＜ｎ−１＞との一致判定を行なうＥＸＮＯＲ回路２４９が示されている。
【０１０２】
レジスタアドレス一致比較回路１６８は、さらにＡＮＤ回路２５０、２５１及びＯＲ回路２５２を備える。レジスタアドレス信号ＲＡとアドレス信号Ａ１との間の各ビットの一致判定結果を示す信号全ては、ＡＮＤ回路２５０に入力される。同様に、レジスタアドレス信号ＲＡとアドレス信号Ａ２との間の各ビットの一致判定結果を示す信号全ては、ＡＮＤ回路２５１に入力される。
【０１０３】
ＡＮＤ回路２５０は、レジスタアドレス信号ＲＡとアドレス信号Ａ１との一致判定結果に基づいて、レジスタアドレス一致比較信号ＭＡＴ１を出力する。つまり、レジスタアドレス一致比較信号ＭＡＴ１は、レジスタアドレス信号ＲＡとアドレス信号Ａ１との各ビットが完全に一致した場合に「１」となる。
【０１０４】
同様に、ＡＮＤ回路２５１は、レジスタアドレス信号ＲＡとアドレス信号Ａ２との一致判定結果に基づいて、レジスタアドレス一致比較信号ＭＡＴ２を出力する。つまり、レジスタアドレス一致比較信号ＭＡＴ２は、レジスタアドレス信号ＲＡとアドレス信号Ａ２とが完全に一致した場合に「１」となる。
【０１０５】
ＯＲ回路２５２は、レジスタアドレス一致比較信号ＭＡＴ１及びＭＡＴ２に基づいて、レジスタアドレス一致比較信号ＭＡＴを出力する。レジスタアドレス一致比較信号ＭＡＴは、レジスタアドレス一致比較信号ＭＡＴ１又はＭＡＴ２の少なくともいずれかが「１」である場合に、「１」となる。
【０１０６】
図９は、制御フラグ発生回路１６９の構成例を示す回路図である。制御フラグ発生回路１６９は、入力されるフラグセット信号ＳＥＴ、フラグリセット信号ＲＳＴ及びクロック信号ＣＬＫに応じて、レジスタ回路１４０に格納された書き込みデータがメモリセルに書き込み済であるか否かを示す制御フラグ信号ＦＬＧを出力する。フラグセット信号ＳＥＴ及びフラグリセット信号ＲＳＴは、フラグ切り替え回路１７４の出力信号である。フラグセット信号ＳＥＴは制御フラグ信号ＦＬＧを「１」とするための信号であり、フラグリセット信号ＲＳＴは制御フラグ信号ＦＬＧを「０」に定めるための信号である。
【０１０７】
詳細は後述するが、フラグ切り替え回路１７４は、レジスタ回路１４０に格納された書き込みデータ（レジスタデータ信号ＲＤ）がレジスタアドレス信号ＲＡに対応するメモリセルに書き込み済である場合に、フラグリセット信号ＲＳＴを「１」にする。これにより、制御フラグ発生回路１６９は、制御フラグ信号ＦＬＧを「０」にする。レジスタデータ信号ＲＤがレジスタアドレス信号ＲＡに対応するメモリセルに未だ書き込まれていない場合には、フラグ切り替え回路１７４はフラグセット信号ＳＥＴを「１」にする。これにより、制御フラグ発生回路１６９は、制御フラグ信号ＦＬＧを「１」にする。
【０１０８】
制御フラグ発生回路１６９は、インバータ２５３、２５４、２５５、２５６、２５７、２５８、２５９、ＮＡＮＤ回路２６０、２６１及びトランスファーゲート２６２、２６３、２６４、２６５を備える。
【０１０９】
インバータ２５３、２５４及びＮＡＮＤ回路２６０、２６１は２入力のフリップフロップを構成する。具体的に構成を説明すると、インバータ２５３は入力されたフラグセット信号ＳＥＴを反転して、ＮＡＮＤ回路２６０の一方の入力端子に出力する。インバータ２５４は入力されたフラグリセット信号ＲＳＴを反転して、ＮＡＮＤ回路２６１の一方の入力端子に出力する。ＮＡＮＤ回路２６０の出力信号はＮＡＮＤ回路２６１の他方の入力端子及びトランスファーゲート２６２の入力端子に出力され、ＮＡＮＤ回路２６１の出力信号はＮＡＮＤ回路２６０の他方の入力端子に出力される。
【０１１０】
インバータ２５５は、入力されたクロック信号ＣＬＫを反転して、トランスファーゲート２６２のＰＭＯＳ側のゲート端子、トランスファーゲート２６３のＮＭＯＳ側のゲート端子、トランスファーゲート２６４のＮＭＯＳ側のゲート端子、トランスファーゲート２６５のＰＭＯＳ側のゲート端子に出力する。
【０１１１】
インバータ２５６〜２５９、トランスファーゲート２６２〜２６５の接続構成は、図３に示したアドレスレジスタ１４２（データレジスタ１４４）のインバータ２１０〜２１３、トランスファーゲート２１５〜２１８の接続構成と同様であるため、詳細な説明を省略する。インバータ２５６、２５８は、フリップフロップの出力を出力ノードに出力する働きをする。インバータ２５６及び２５７、インバータ２５８及び２５９は、データラッチを構成するように接続されている。
【０１１２】
トランスファーゲート２６２〜２６５は、クロック信号ＣＬＫに同期してオンオフすることにより、データラッチ及び出力ノードへのデータ伝達が制御される。例えば、フラグセット信号ＳＥＴに「１」が入力された場合には、制御フラグ信号ＦＬＧは「１」となる。フラグリセット信号ＲＳＴに「１」信号が入力された場合には、制御フラグ信号ＦＬＧは「０」となる。フラグセット信号ＳＥＴ及びフラグリセット信号ＲＳＴのいずれも「０」である場合には、フリップフロップの動作により、制御フラグ信号ＦＬＧの状態が保持される。
【０１１３】
図１０は、主制御回路１７０の一例を示す全体構成図である。主制御回路１７０には、クロック信号ＣＬＫ、リテンションモード制御信号ＢＵＮ、書き込み制御信号Ｗ１、Ｗ２、同時アクセス検出信号ＥＲＲ、レジスタアドレス一致比較信号ＭＡＴ、ＭＡＴ１、ＭＡＴ２及び制御フラグ信号ＦＬＧが入力される。これらの入力信号に応じて、主制御回路１７０は、レジスタ制御信号ＲＴ、内部クロック信号ＩＣＬＫ１、ＩＣＬＫ２、内部書き込み制御信号ＩＷ１、ＩＷ２、入力データ選択信号Ｉ１、Ｉ２、出力データ選択信号Ｏ１、Ｏ２、フラグセット信号ＳＥＴ、フラグリセット信号ＲＳＴ及び書き込み終了信号ＢＵＲを出力する。
【０１１４】
主制御回路１７０は、レジスタ制御回路１７２、フラグ切り替え回路１７４、データ選択制御回路１７６、クロック制御回路１７８及び書き込み制御回路１７９を備える。
【０１１５】
図１１は、レジスタ制御回路１７２の構成例を示す回路図である。レジスタ制御回路１７２は、入力信号である制御フラグ信号ＦＬＧ、レジスタアドレス一致比較信号ＭＡＴ及び同時アクセス検出信号ＥＲＲに基づいて、レジスタ制御信号ＲＴを出力する。同時アクセス状態であって、レジスタ回路１４０のレジスタデータ信号ＲＤがレジスタアドレス信号ＲＡに対応するメモリセルに書き込み済である場合に、レジスタ制御信号ＲＴは「１」となる。あるいは、同時アクセス状態であって、レジスタ回路のレジスタアドレス信号ＲＡとアドレス信号Ａ１とが一致せず、かつレジスタアドレス信号ＲＡとアドレス信号Ａ２とが一致しないときにも、レジスタ制御信号ＲＴは「１」となる。レジスタ制御信号ＲＴが「１」になることにより、書き込み動作に対応するアドレス信号及び書き込みデータ信号をレジスタ回路１４０に格納する制御が実行される。
【０１１６】
レジスタ制御回路１７２は、インバータ２６６、２６７、ＡＮＤ回路２６８、２６９及びＯＲ回路２７０を備える。インバータ２６６は、入力された制御フラグ信号ＦＬＧを反転して、ＡＮＤ回路２６８の一方の入力端子に出力する。インバータ２６７は、入力されたレジスタアドレス一致比較信号ＭＡＴを反転して、ＡＮＤ回路２６９の一方の入力端子に出力する。
【０１１７】
ＡＮＤ回路２６８においては、一方の入力端子に反転された制御フラグ信号ＦＬＧが入力され、他方の入力端子に同時アクセス検出信号ＥＲＲが入力される。ＡＮＤ回路２６８は、それらの入力信号に基づいて、ＯＲ回路２７０の一方の入力端子に出力信号を出力する。ＡＮＤ回路２６９においては、一方の入力端子に反転されたレジスタアドレス一致比較信号ＭＡＴが入力され、他方の入力端子に同時アクセス検出信号ＥＲＲが入力される。ＡＮＤ回路２６９は、それらの入力信号に基づいて、ＯＲ回路２７０の他方の入力端子に出力信号を出力する。ＯＲ回路２７０の一方の入力端子にはＡＮＤ回路２６８からの出力信号が入力され、他方の入力端子にはＡＮＤ回路２６９からの出力信号が入力される。ＯＲ回路２７０は、それらの入力信号に基づいて、レジスタ制御信号ＲＴを出力する。
【０１１８】
以上から、レジスタ制御信号ＲＴは、同時アクセス検出信号ＥＲＲが「１」となった場合（同時アクセス状態）であって、制御フラグ信号ＦＬＧが「０」である（レジスタ回路１４０のレジスタデータ信号ＲＤがレジスタアドレス信号ＲＡに対応するメモリセルに書き込み済である）ときに「１」となる。又は、同時アクセス検出信号ＥＲＲが「１」であり、レジスタアドレス一致比較信号ＭＡＴが「０」である（レジスタ回路のレジスタアドレス信号ＲＡとアドレス信号Ａ１及びＡ２のいずれもが一致しない）ときにも「１」となる。
【０１１９】
図１２は、フラグ切り替え回路１７４の構成例を示す回路図である。フラグ切り替え回路１７４は、入力される同時アクセス検出信号ＥＲＲ、レジスタアドレス一致比較信号ＭＡＴ及び制御フラグ信号ＦＬＧに基づいて、制御フラグ発生回路１６９の制御信号であるフラグセット信号ＳＥＴ及びフラグリセット信号ＲＳＴを出力する。同時アクセスを検出し、かつレジスタ回路１４０に書き込みデータが格納されていない場合には、フラグ切り替え回路１７４はフラグセット信号ＳＥＴを「１」とする。レジスタ回路１４０に格納された書き込みデータがそのアドレスに対応するメモリセルにまだ書き込まれておらず、少なくとも入力されたアドレス信号Ａ１又はＡ２のいずれかがレジスタ回路１４０に格納されるレジスタアドレス信号ＲＡと一致するときに、フラグ切り替え回路１７４はフラグリセット信号ＲＳＴを「１」とする。このフラグセット信号ＳＥＴ及びフラグリセット信号ＲＳＴにより、制御フラグ発生回路１６９は、前述の通り、出力する制御フラグ信号ＦＬＧのレベルを変える。
【０１２０】
フラグ切り替え回路１７４は、インバータ２７１及びＡＮＤ回路２７２、２７３を備える。インバータ２７１は、入力された制御フラグ信号ＦＬＧを反転して、ＡＮＤ回路２７２の一方の入力端子に出力する。
【０１２１】
ＡＮＤ回路２７２においては、一方の入力端子に反転された制御フラグ信号ＦＬＧが入力され、他方の入力端子に同時アクセス検出信号ＥＲＲが入力される。ＡＮＤ回路２７３は、それらの入力信号に基づいて、フラグセット信号ＳＥＴを出力する。ＡＮＤ回路２７３においては、一方の入力端子に制御フラグ信号ＦＬＧが入力され、他方の入力端子にレジスタアドレス一致比較信号ＭＡＴが入力される。ＡＮＤ回路２７３は、それらの入力信号に基づいて、フラグリセット信号ＲＳＴを出力する。
【０１２２】
前述の通り、レジスタ制御回路１７２は、同時アクセス検出信号ＥＲＲが「１」かつ制御フラグ信号ＦＬＧが「０」である場合には、レジスタ制御信号ＲＴを「１」とする。これにより、書き込み動作に対応するアドレス信号及びデータ信号が新たにレジスタ回路１４０に格納される。フラグ切り替え回路１７４は、この動作に対応して制御フラグ信号ＦＬＧを「１」とすべく、フラグセット信号ＳＥＴを「１」とする。
【０１２３】
制御フラグ信号ＦＬＧが「１」かつレジスタアドレス一致比較信号ＭＡＴが「１」の場合には、入力選択回路１６２は、入力データ選択信号Ｉ１又はＩ２により、レジスタ回路１４０に格納されたレジスタデータ信号ＲＤをレジスタアドレス信号ＲＡに対応するメモリセルに書き込む。フラグ切り替え回路１７４は、これに伴い、制御フラグ発生回路１６９の出力する制御フラグ信号ＦＬＧを「１」から「０」に変化させるために、フラグリセット信号ＲＳＴを「１」とする。
【０１２４】
図１３は、データ選択制御回路１７６の構成例を示す回路図である。データ選択制御回路１７６には、同時アクセス検出信号ＥＲＲ、レジスタアドレス一致比較信号ＭＡＴ１、ＭＡＴ２、制御フラグ信号ＦＬＧ、書き込み制御信号Ｗ１、Ｗ２及びリテンションモード制御信号ＢＵＮが入力される。この入力に応じて、データ選択制御回路１７６は、入力データ選択信号Ｉ１、Ｉ２及び出力データ選択信号Ｏ１、Ｏ２を出力し、入力選択回路１６２及び出力選択回路１６４のデータ選択を制御する。
【０１２５】
入力データ選択信号Ｉ１は、第１ポート端子群１０６ａに読み出し動作が指示されている場合に「１」となる。さらに、同時アクセスが検出され、かつ、アドレス信号Ａ１がレジスタアドレス信号ＲＡと一致しない場合にも「１」となる。この場合には、レジスタデータ信号ＲＤをメモリセルへ書き込む必要があるため、入力選択回路１６２にレジスタデータ信号ＲＤを出力させる。それにより、入出力回路１２０ａはレジスタデータ信号ＲＤを出力することができる。
【０１２６】
入力データ選択信号Ｉ２は、第２ポート端子群１０６ｂに読み出し動作が指示されている場合にも「１」となる。さらに、同時アクセスが検出され、かつ、アドレス信号Ａ２がレジスタアドレス信号ＲＡと一致しない場合にも「１」となる。この場合も同様にして、入出力回路１２０ｂはレジスタデータ信号ＲＤを出力することができる。
【０１２７】
データ選択制御回路１７６は特に、リテンションモード制御信号ＢＵＮが「１」から「０」に変化したことに応じて、レジスタ回路１４０に格納された書き込みデータを選択して出力するように入力選択回路１６２を制御すべく、入力データ選択信号Ｉ２を「１」にする。入出力回路１２０ｂは、それにより、メモリセルアレイ１１０にレジスタデータ信号ＲＤを書き込むことが可能になる。
【０１２８】
その他の場合において、入力データ選択信号Ｉ１及びＩ２は「０」となる。これにより、入力選択回路１６２は、入出力回路１２０ａ及び１２０ｂに対して、メモリセルへ書き込むデータとして書き込みデータ信号Ｄ１及びＤ２を出力する。
【０１２９】
レジスタアドレス信号ＲＡと入力されたアドレス信号Ａ１又はＡ２とが一致し、レジスタ回路１４０にレジスタデータ信号ＲＤが格納されている場合に、アドレス信号Ａ１又はＡ２に対して読み出しが実行されるときは、レジスタデータ信号ＲＤを読み出しデータ信号Ｑ１又はＱ２として出力する必要がある。その場合に、データ選択制御回路１７６は出力データ選択信号Ｏ１又はＯ２を「１」とする。これにより、出力選択回路１６４は、データレジスタ１４４に格納されたレジスタデータ信号ＲＤを読み出しデータ信号Ｑ１又はＱ２として出力する。
【０１３０】
その他の場合においては、出力データ選択信号Ｏ１及びＯ２は「０」となる。出力選択回路１６４はそれらの信号に応じて、メモリセルから読み出されたメモリセル格納データＭＣＤａ、ＭＣＤｂを読み出しデータ信号Ｑ１、Ｑ２として出力する。
【０１３１】
データ選択制御回路１７６は、インバータ２７４、２７５、２７６、２７７、２７８及びＡＮＤ回路２７９、２８０、２８１、２８２及びＯＲ回路２８３、２８４を備える。
【０１３２】
インバータ２７４は、入力されるレジスタアドレス一致比較信号ＭＡＴ１を反転して、ＡＮＤ回路２７９の一方の入力端子に出力する。インバータ２７５は、入力される書き込み制御信号Ｗ１を反転して、ＯＲ回路２８３の一方の入力端子に出力する。インバータ２７６は、入力されるレジスタアドレス一致比較信号ＭＡＴ２を反転して、ＡＮＤ回路２８０の一方の入力端子に出力する。インバータ２７７は、入力される書き込み制御信号Ｗ２を反転して、ＯＲ回路２８４の第一の入力端子に出力する。インバータ２７８は、入力されるリテンションモード制御信号ＢＵＮを反転して、ＯＲ回路２８４の第二の入力端子に出力する。
【０１３３】
ＡＮＤ回路２７９においては、一方の入力端子に反転されたレジスタアドレス一致比較信号ＭＡＴ１が入力され、他方の入力端子に同時アクセス検出信号ＥＲＲが入力される。ＡＮＤ回路２７９は、それらの入力信号に基づいて、ＯＲ回路２８３の他方の入力端子に信号を出力する。ＡＮＤ回路２８０においては、一方の入力端子に反転されたレジスタアドレス一致比較信号ＭＡＴ２が入力され、他方の入力端子に同時アクセス検出信号ＥＲＲが入力される。ＡＮＤ回路２８０は、それらの入力信号に基づいて、ＯＲ回路２８４の第三の入力端子に信号を出力する。
【０１３４】
ＡＮＤ回路２８１においては、一方の入力端子にレジスタアドレス一致比較信号ＭＡＴ１が入力され、他方の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路２８１は、それらの入力信号に基づいて、出力データ選択信号Ｏ１を出力する。ＡＮＤ回路２８２においては、一方の入力端子にレジスタアドレス一致比較信号ＭＡＴ２が入力され、他方の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路２８２は、それらの入力信号に基づいて、出力データ選択信号Ｏ２を出力する。
【０１３５】
ＯＲ回路２８３においては、一方の入力端子に反転された書き込み制御信号Ｗ１が入力され、他方の入力端子にＡＮＤ回路２７９の出力信号が入力される。ＯＲ回路２８３は、それらの入力信号に基づいて、入力データ選択信号Ｉ１を出力する。ＯＲ回路２８４においては、第一の入力端子に反転された書き込み制御信号Ｗ２が入力され、第二の入力端子に反転されたリテンションモード制御信号ＢＵＮが入力され、第三の入力端子にＡＮＤ回路２８０の出力信号が入力される。ＯＲ回路２８４は、それらの入力信号に基づいて、入力データ選択信号Ｉ２を出力する。
【０１３６】
インバータ２７８及び３入力のＯＲ回路２８４は、リテンションモード制御信号ＢＵＮに応じてデータ選択制御回路１７６が動作するように設けられた構成要素であり、図１７に示したデータ切り替え制御回路９７６にはない構成要素である。
【０１３７】
以上より、入力データ選択信号Ｉ１は、第１ポート端子群１０６ａに読み出し動作が指示されている場合に「１」となる。さらに、同時アクセス検出信号ＥＲＲが「１」であり、かつ、アドレス信号Ａ１がレジスタアドレス信号ＲＡと一致しない場合にも「１」となる。入力データ選択信号Ｉ２も、同様の場合に「１」となる。
【０１３８】
さらに、リテンションモード制御信号ＢＵＮが「１」から「０」になる場合には、インバータ２７８が「１」を出力することにより、入力データ選択信号Ｉ２が「１」になる。なお、その他の場合には、入力データ選択信号Ｉ１及びＩ２は「０」となる。
【０１３９】
レジスタアドレス一致比較信号ＭＡＴ１又はＭＡＴ２が「１」、制御フラグ信号ＦＬＧが「１」である場合には、出力データ選択信号Ｏ１又はＯ２は「１」となる。その他の場合においては、出力データ選択信号Ｏ１又はＯ２は「０」となる。
【０１４０】
図１４は、クロック制御回路１７８の構成例を示す回路図である。クロック制御回路１７８には、クロック信号ＣＬＫ、リテンションモード制御信号ＢＵＮ、書き込み制御信号Ｗ１、Ｗ２、同時アクセス検出信号ＥＲＲ、レジスタアドレス一致比較信号ＭＡＴ１、ＭＡＴ２及び制御フラグ信号ＦＬＧが入力される。クロック制御回路１７８は、これらの入力信号に基づいて、入出力回路１２０ａ、１２０ｂをそれぞれ動作させる内部クロック信号ＩＣＬＫ１、ＩＣＬＫ２及び処理完了を示す書き込み終了信号ＢＵＲを出力する。
【０１４１】
クロック制御回路１７８は、同時アクセスが発生した時点で、書き込み動作が指示されている入出力ポートに対応する入出力回路の内部クロック信号ＩＣＬＫ１又はＩＣＬＫ２を「０」にする。これにより、書き込み動作が指示されている入出力ポートに対応する入出力回路を非活性化し、書き込み動作を実行させないようにする。
【０１４２】
さらにクロック制御回路１７８は、クロック信号が「０」であってもリテンションモードに入る場合には、内部クロック信号ＩＣＬＫ１及びＩＣＬＫ２を出力する。これにより、入出力回路１２０ａ及び１２０ｂは活性化されるため、レジスタ回路１４０に格納された書き込みデータの書き込み動作が可能になる。
【０１４３】
クロック制御回路１７８は、リテンションモードに入ることが通知されてから（リテンションモード制御信号ＢＵＮが「１」から「０」になってから）一定期間経過した場合に、書き込み終了信号ＢＵＲを「１」にする。これにより、外部に対し、半導体記憶装置がリテンションモードに入ることが可能になったことを通知する。
【０１４４】
クロック制御回路１７８は、インバータ２８５、２８６、２８７、２８８、ＯＲ回路２８９、２９０、２９１、２９２、２９３、ＡＮＤ回路２９４、２９５、２９６、２９７、２９８、ＥＸＮＯＲ回路２９９、３００及び遅延回路３０１、３０２を備える。
【０１４５】
インバータ２８５は、入力される同時アクセス検出信号ＥＲＲを反転して、ＯＲ回路２８９の一方の入力端子に出力する。インバータ２８６は、入力されるレジスタアドレス一致比較信号ＭＡＴ１を反転して、ＡＮＤ回路２９４の一方の入力端子に出力する。インバータ２８７は、入力されるレジスタアドレス一致比較信号ＭＡＴ２を反転して、ＡＮＤ回路２９５の一方の入力端子に出力する。インバータ２８８は、入力されるリテンションモード制御信号ＢＵＮを反転して、ＯＲ回路２８９の他方の入力端子及びＡＮＤ回路２９６の第一の入力端子に出力する。
【０１４６】
ＯＲ回路２８９においては、一方の入力端子に同時アクセス検出信号ＥＲＲの反転信号が入力され、他方の入力端子に反転されたリテンションモード制御信号ＢＵＮが入力される。ＯＲ回路２８９は、それらの入力信号に基づいて、ＯＲ回路２９０の第一の入力端子及びＯＲ回路２９１の第一の入力端子に信号を出力する。ＡＮＤ回路２９４においては、一方の入力端子に反転されたレジスタアドレス一致比較信号ＭＡＴ１が入力され、他方の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路２９４は、それらの入力信号に基づいて、ＯＲ回路２９０の第二の入力端子に信号を出力する。ＥＸＮＯＲ回路２９９においては、一方の入力端子に制御フラグ信号ＦＬＧが入力され、他方の入力端子に書き込み制御信号Ｗ１が入力される。ＥＸＮＯＲ回路２９９は、それらの入力信号に基づいて、ＯＲ回路２９０の第三の入力端子に信号を出力する。
【０１４７】
ＡＮＤ回路２９５においては、一方の入力端子に反転されたレジスタアドレス一致比較信号ＭＡＴ２が入力され、他方の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路２９５は、それらの入力信号に基づいて、ＯＲ回路２９１の第二の入力端子に信号を出力する。ＥＸＮＯＲ回路３００においては、一方の入力端子に制御フラグ信号ＦＬＧが入力され、他方の入力端子に書き込み制御信号Ｗ２が入力される。ＥＸＮＯＲ回路３００は、それらの入力信号に基づいて、ＯＲ回路２９１の第三の入力端子に信号を出力する。遅延回路３０１は、入力されるリテンションモード制御信号ＢＵＮを第１の時間だけ遅延して、ＡＮＤ回路２９６の第二の入力端子及び遅延回路３０２に出力する。
【０１４８】
ＯＲ回路２９０においては、第一の入力端子にＯＲ回路２８９の出力信号が入力され、第二の入力端子にＡＮＤ回路２９４の出力信号が入力され、第三の入力端子にＥＸＮＯＲ回路２９９の出力信号が入力される。ＯＲ回路２９０は、これらの入力信号に基づいて、ＡＮＤ回路２９７の一方の入力端子に信号を出力する。ＯＲ回路２９１においては、第一の入力端子にＯＲ回路２８９の出力信号が入力され、第二の入力端子にＡＮＤ回路２９５の出力信号が入力され、第三の入力端子にＥＸＮＯＲ回路３００の出力信号が入力される。ＯＲ回路２９１は、これらの信号に基づいて、ＡＮＤ回路２９８の一方の入力端子に信号を出力する。
【０１４９】
ＡＮＤ回路２９６においては、第一の入力端子にインバータ２８８の出力信号が入力され、第二の入力端子に遅延回路３０１の出力信号が入力され、第三の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路２９６は、これらの入力信号に基づいて、ＯＲ回路２９２の一方の入力端子に信号を出力する。ＯＲ回路２９２においては、一方の入力端子にＡＮＤ回路２９６の出力信号が入力され、他方の入力端子にクロック信号ＣＬＫが入力される。ＯＲ回路２９２は、ＡＮＤ回路２９７の他方の入力端子及びＡＮＤ回路２９８の他方の入力端子に信号を出力する。遅延回路３０２は、入力された遅延回路３０１の出力信号を第２の時間だけ遅延して、ＯＲ回路２９３の一方の入力端子に出力する。
【０１５０】
ＡＮＤ回路２９７においては、一方の入力端子にＯＲ回路２９０の出力信号が入力され、他方の入力端子にＯＲ回路２９２の出力信号が入力される。ＡＮＤ回路２９７は、これらの入力信号に基づいて、内部クロック信号ＩＣＬＫ１を出力する。ＡＮＤ回路２９８においては、一方の入力端子にＯＲ回路２９１の出力信号が入力され、他方の入力端子にＯＲ回路２９２の出力信号が入力される。ＡＮＤ回路２９８は、これらの入力信号に基づいて、内部クロック信号ＩＣＬＫ２を出力する。ＯＲ回路２９３においては、一方の入力端子に遅延回路３０２の出力信号が入力され、他方の入力端子にリテンションモード制御信号ＢＵＮが入力される。ＯＲ回路２９３は、これらの入力信号に基づいて、書き込み終了信号ＢＵＲを出力する。
【０１５１】
インバータ２８８、３入力のＯＲ回路２９０、２９１、２入力のＯＲ回路２８９、２９２、２９３、ＡＮＤ回路２９６〜２９８及び遅延回路３０１、３０２は、リテンションモード制御信号ＢＵＮに応じてクロック制御回路１７８が動作するように設けられた構成要素であり、図１７に示したクロック制御回路９７８にはない構成要素である。
【０１５２】
クロック制御回路１７８は、クロック信号ＣＬＫが「１」でも、同時アクセス検出信号ＥＲＲが「１」、書き込み制御信号Ｗ１が「１」、制御フラグ信号ＦＬＧが「０」のとき、内部クロック信号ＩＣＬＫ１を「０」にする。つまり、同時アクセス状態であって、レジスタ回路１４０に書き込みデータが格納されておらず、第１ポート端子群１０６ａから書き込み動作が指示されている場合に、内部クロック信号ＩＣＬＫ１を「０」にする。同時アクセス検出信号ＥＲＲが「１」、書き込み制御信号Ｗ１が「０」、制御フラグ信号ＦＬＧが「１」、レジスタアドレス一致比較信号ＭＡＴが「１」である場合にも、クロック制御回路１７８は内部クロック信号ＩＣＬＫ１を「０」にする。つまり、同時アクセス状態であって、レジスタ回路１４０に書き込みデータが格納されており、第１ポート端子群１０６ａから読み出し動作が指示され、レジスタ回路１４０に格納された書き込みデータとアドレス信号Ａ１とが一致している場合に、内部クロック信号ＩＣＬＫ１を「０」にする。クロック制御回路１７８は、同様にして、内部クロック信号ＩＣＬＫ２を「０」にする。
【０１５３】
クロック制御回路１７８は、クロック信号ＣＬＫが「０」であっても、制御フラグ信号ＦＬＧが「１」の状態でリテンションモード制御信号ＢＵＮが「１」から「０」に変化する場合には、内部クロック信号ＩＣＬＫ１及びＩＣＬＫ２を「１」として出力する。この理由は以下の通りである。リテンションモード制御信号ＢＵＮが「０」になると、インバータ２８８の出力はすぐに「１」に変化する。しかし、遅延回路３０１は入力信号を遅延して出力するため、第１の時間経過後までは「１」を出力する。そのため、第１の時間経過後まではＡＮＤ回路２９６の全入力端子に「１」が入力され、ＡＮＤ回路２９６は「１」を出力する。そのため、ＯＲ回路２９２は「１」を出力する。
【０１５４】
インバータ２８８は「１」を出力するため、ＯＲ回路２８９は「１」を出力する。そのため、ＯＲ回路２９０及び２９１は「１」を出力する。以上より、ＡＮＤ回路２９７及び２９８の全端子に「１」が入力されるため、ＡＮＤ回路２９７及び２９８は、内部クロック信号ＩＣＬＫ１及びＩＣＬＫ２として「１」を出力する。
【０１５５】
第１の時間が経過すると、遅延回路３０１は「０」を出力するため、ＡＮＤ回路２９６は「０」を出力する。クロック信号ＣＬＫが「０」であるため、ＯＲ回路２９２は「０」を出力する。このため、ＡＮＤ回路２９７及び２９８の他方の端子には「０」が入力されるため、内部クロック信号ＩＣＬＫ１及びＩＣＬＫ２は「０」となる。従って、入出力回路１２０ａ及び１２０ｂは動作可能な状態から動作不可の状態になる。
【０１５６】
さらに、クロック制御回路１７８は、第１の時間及び第２の時間経過後に、書き込み終了信号ＢＵＲを「１」から「０」にする。リテンションモード制御信号ＢＵＮが「０」であり、かつ遅延回路３０２が「０」を出力することにより、ＯＲ回路２９３が「０」を出力するためである。ここで遅延回路３０２が「０」を出力するまでの時間は、第１の時間及び第２の時間を合わせたものになる。このように、クロック制御回路１７８は遅延回路３０１、３０２を含み、遅延回路３０１、３０２は、リテンションモード制御信号ＢＵＮを遅延して出力することにより書き込み終了信号ＢＵＲを生成する。
【０１５７】
図１５は、書き込み制御回路１７９の構成例を示す回路図である。書き込み制御回路１７９には、リテンションモード制御信号ＢＵＮ、書き込み制御信号Ｗ１、Ｗ２、同時アクセス検出信号ＥＲＲ、ポート毎のレジスタアドレス一致比較信号ＭＡＴ１、ＭＡＴ２及び制御フラグ信号ＦＬＧが入力される。書き込み制御回路１７９は、これらの入力信号に基づいて、入出力回路１２０ａ、１２０ｂの書き込み動作をそれぞれ制御するための内部書き込み制御信号ＩＷ１、ＩＷ２を出力する。特に書き込み制御回路１７９は、リテンションモード制御信号ＢＵＮに応じて、メモリセルアレイ１１０への書き込みを入出力回路に実行させるように制御する。
【０１５８】
書き込み制御回路１７９は、入出力端子群１０５からの書き込み制御信号により書き込みが指示された場合に、内部書き込み制御信号ＩＷ１又はＩＷ２を「１」にすることにより、入出力回路１２０ａ又は１２０ｂに書き込みを指示する。
【０１５９】
さらに、同時アクセスがない状態で、レジスタ回路１４０にデータが格納されており、かつ、アドレス信号Ａ１またはＡ２がレジスタ回路１４０に格納されたアドレスと一致している場合には、レジスタ回路１４０に格納された書き込みデータを書き込む必要がある。この場合にも、書き込み制御回路１７９は内部書き込み制御信号ＩＷ１又はＩＷ２を「１」にする。
【０１６０】
さらに、リテンションモードが通知された場合にも、書き込み制御回路１７９は、内部書き込み制御信号ＩＷ２を「１」にする。これにより、入出力回路１２０ｂは、入力選択回路１６２から出力されたレジスタデータ信号ＲＤを、レジスタアドレス信号ＲＡの指定するメモリセルに書き込む。
【０１６１】
書き込み制御回路１７９は、インバータ３０３、３０４、ＡＮＤ回路３０５、３０６及びＯＲ回路３０７、３０８を備える。
【０１６２】
インバータ３０３は、入力される同時アクセス検出信号ＥＲＲを反転して、ＡＮＤ回路３０５の第一の入力端子及びＡＮＤ回路３０６の第一の入力端子に出力する。インバータ３０４は、入力されるリテンションモード制御信号ＢＵＮを反転して、ＯＲ回路３０８の第一の入力端子に出力する。
【０１６３】
ＡＮＤ回路３０５においては、第一の入力端子に反転された同時アクセス検出信号ＥＲＲが入力され、第二の入力端子にレジスタアドレス一致比較信号ＭＡＴ１が入力され、第三の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路３０５は、これらの入力信号に基づいて、ＯＲ回路３０７の一方の入力端子に信号を出力する。ＡＮＤ回路３０６においては、第一の入力端子に反転された同時アクセス検出信号ＥＲＲが入力され、第二の入力端子にレジスタアドレス一致比較信号ＭＡＴ２が入力され、第三の入力端子に制御フラグ信号ＦＬＧが入力される。ＡＮＤ回路３０６は、これらの入力信号に基づいて、ＯＲ回路３０８の第二の入力端子に信号を出力する。
【０１６４】
ＯＲ回路３０７においては、一方の入力端子にＡＮＤ回路３０５の出力信号が入力され、他方の入力端子に書き込み制御信号Ｗ１が入力される。ＯＲ回路３０７は、それらの入力信号に基づいて、内部書き込み制御信号ＩＷ１を出力する。ＯＲ回路３０８においては、第一の入力端子にインバータ３０４の出力信号が入力され、第二の入力端子にＡＮＤ回路３０６の出力信号が入力され、第三の入力端子に書き込み制御信号Ｗ２が入力される。ＯＲ回路３０８は、それらの入力信号に基づいて、内部書き込み制御信号ＩＷ２を出力する。
【０１６５】
インバータ３０４及び３入力のＯＲ回路３０８は、リテンションモード制御信号ＢＵＮに応じて書き込み制御回路１７９が動作するように設けられた構成要素であり、図１７に示した書き込み制御回路９７９にはない構成要素である。
【０１６６】
以上の通り、書き込み制御回路１７９は、書き込み制御信号Ｗ１又はＷ２が「１」である場合に、内部書き込み制御信号ＩＷ１又はＩＷ２を「１」にする。同時アクセス検出信号ＥＲＲが「０」、制御フラグ信号ＦＬＧが「１」で、かつ、アドレス信号Ａ１がレジスタアドレス信号ＲＡと一致したときに、書き込み制御回路１７９は内部書き込み制御信号ＩＷ１を「１」にする。同時アクセス検出信号ＥＲＲが「０」、制御フラグ信号ＦＬＧが「１」で、かつ、アドレス信号Ａ２がレジスタアドレス信号ＲＡと一致したときにも、書き込み制御回路１７９は内部書き込み制御信号ＩＷ２を「１」にする。さらに、リテンションモード制御信号ＢＵＮが「１」から「０」になった際にも、内部書き込み制御信号ＩＷ２を「１」にする。
【０１６７】
図１６は、半導体記憶装置１００の動作を示すタイミングチャートである。以下、図１６を用いて、半導体記憶装置１００の全体動作について説明する。なお、以下の半導体記憶装置の動作説明にあたり、Ｖｃｃ電位を「１」、ＧＮＤ電位を「０」とする。
【０１６８】
図１６において、サイクルＴは、半導体記憶装置１００の特徴的な動作のサイクルを示す時間である。半導体記憶装置１００が動作する前の初期時刻ｔ０における電源の電位は、電源ＶＤＤ１、ＶＤＤ２ともに「１」である。入出力端子群１０５の端子から入力される信号の電位は、クロック信号ＣＬＫが「０」、書き込み制御信号Ｗ１が「１」、書き込み制御信号Ｗ２が「０」である。アドレス信号Ａ１、Ａ２の値はａ１［５］、書き込みデータ信号Ｄ１の値はｄ１［５］、書き込みデータ信号Ｄ２は不定である。なお、メモリセルアレイ１１０の入力アドレスの値ａ１［５］で選択されるセルの値はｑ２［５］である。読み出しデータ信号Ｑ１、Ｑ２は不定である。入出力端子群１０７の端子が出力するリテンションモード制御信号ＢＵＮは「１」であり、半導体記憶装置１００はリテンションモードに制御されていない。
【０１６９】
以上の入出力端子群１０５の信号入力状態により、アドレスレジスタ１４２の出力信号であるレジスタアドレス信号ＲＡと、データレジスタ１４４の出力信号であるレジスタデータ信号ＲＤは不定となる。
【０１７０】
初期時刻ｔ０以前において、同時アクセス検出回路１５０は同時アクセスを検出していないため、同時アクセス検出信号ＥＲＲは「０」である。レジスタ回路１４０内に、メモリセルに未だ書き込まれていない書き込みデータは格納されていないため、制御フラグ発生回路１６９は、制御フラグ信号ＦＬＧとして「０」を出力する。
【０１７１】
その他、初期時刻ｔ０以前の各信号の値は以下の通りである。レジスタアドレス一致比較回路１６８は、レジスタアドレス一致比較信号ＭＡＴ２として「０」を出力する。レジスタ制御回路１７２は、レジスタ制御信号ＲＴとして「０」を出力する。フラグ切り替え回路１７４は、フラグセット信号ＳＥＴとして「０」を出力する。データ選択制御回路１７６は、入力データ選択信号Ｉ２として「１」を出力する。クロック制御回路１７８は、書き込み終了信号ＢＵＲとして「１」を出力し、内部クロック信号ＩＣＬＫ２として「０」を出力する。書き込み制御回路１７９は、内部書き込み制御信号ＩＷ２として「０」を出力する。
【０１７２】
初期時刻ｔ０を過ぎると、クロック信号ＣＬＫが「０」から「１」になる。第１ポート端子群１０６ａの書き込み制御信号Ｗ１は「１」であることから、半導体記憶装置１００は、第１ポート端子群１０６ａのアドレス信号Ａ１が指定するアドレスに対して書き込み動作を実行しようとする。それと同時に、第２ポート端子群１０６ｂの書き込み制御信号Ｗ２が「０」であることから、半導体記憶装置１００は、第２ポート端子群１０６ｂのアドレス信号Ａ２に対して読み出し動作を実行しようとする。このとき、アドレス信号Ａ１とアドレス信号Ａ２とがともにａ１［５］の値で一致しているため、同時アクセスの状態になる。
【０１７３】
同時アクセス検出回路１５０は、前述の通り同時アクセスを検出することにより、出力する同時アクセス検出信号ＥＲＲを「０」から「１」に変える。制御フラグ信号ＦＬＧが「０」であるため、レジスタ制御回路１７２は、同時アクセス検出信号ＥＲＲが「１」になったことに応じて、出力するレジスタ制御信号ＲＴを「０」から「１」に変える。このレジスタ制御信号ＲＴの変化により、アドレスレジスタ１４２は内部に取り込んだアドレス信号Ａ１の値ａ１［５］をレジスタアドレス信号ＲＡとして出力し、データレジスタ１４４は内部に取り込んだ書き込みデータ信号Ｄ１の値ｄ１［５］をレジスタデータ信号ＲＤとして出力する。ここで、クロック制御回路１７８において、同時アクセス検出信号ＥＲＲが「１」、リテンションモード制御信号ＢＵＮが「１」、制御フラグ信号ＦＬＧが「０」、書き込み制御信号Ｗ１が「１」であることから、ＯＲ回路２９０の出力は「０」となる。そのため、クロック制御回路１７８は内部クロック信号ＩＣＬＫ１として「０」を出力する。そのため、入出力回路１２０ａは、メモリセルへの書き込みを実行しない。さらに、レジスタアドレス信号ＲＡの値ａ１［５］と、アドレス信号Ａ１の値ａ１［５］とが一致するため、レジスタアドレス一致比較回路１６８は、レジスタアドレス一致比較信号ＭＡＴ、ＭＡＴ１として「１」を出力する。
【０１７４】
次に、クロック信号ＣＬＫが「１」から「０」に変化する。このとき、フラグ切り替え回路１７４は、同時アクセス検出信号ＥＲＲが「１」、制御フラグ信号ＦＬＧが「０」であることから、フラグセット信号ＳＥＴとして「１」を出力している。制御フラグ発生回路１６９は、フラグセット信号ＳＥＴが「１」であり、クロック信号ＣＬＫが「１」から「０」に変化することから、出力する制御フラグ信号ＦＬＧを「０」から「１」に変える。
【０１７５】
このとき、レジスタ制御回路１７２は、同時アクセス検出信号ＥＲＲが「０」、レジスタアドレス一致比較信号ＭＡＴが「１」、制御フラグ信号ＦＬＧが「１」であることから、出力するレジスタ制御信号ＲＴを「１」から「０」に変える。これにより、レジスタ回路１４０においてレジスタアドレス信号ＲＡとレジスタデータ信号ＲＤが保持されるため、半導体記憶装置１００は同時アクセス保持状態となる。
【０１７６】
なお、同時アクセス中において、第２ポート端子群１０６ｂから指示されたアドレス信号Ａ２に対する読み出し動作は実行される。クロック信号ＣＬＫが「０」から「１」となる際に、クロック制御回路１７８において、書き込み制御信号Ｗ２は「０」、制御フラグ信号ＦＬＧは「０」であることから、クロック制御回路１７８は内部クロック信号ＩＣＬＫ２として「１」を出力する。この内部クロック信号ＩＣＬＫ２によって入出力回路１２０ｂは動作する。入出力回路１２０ｂは、アドレス信号Ａ２の値ａ１［５］に対応するアドレスのメモリセルに記憶されているデータｑ２［５］を読み出し、メモリセル格納データＭＣＤｂとして出力する。制御フラグ信号ＦＬＧが当初「０」であることから、データ選択制御回路１７６は、出力データ選択信号Ｏ２として「０」を出力する。出力選択回路１６４は、この出力データ選択信号Ｏ２に応じて、読み出しデータ信号Ｑ２としてメモリセル格納データＭＣＤｂ（データｑ２［５］）を出力する。
【０１７７】
その後、クロック信号ＣＬＫが「１」から「０」になることにより、クロック制御回路１７８は、内部クロック信号ＩＣＬＫ２を「１」から「０」にする。
【０１７８】
そして、入出力端子群１０７から出力されるアドレス信号Ａ１及びＡ２の値がａ１［５］から不定の値になり、書き込みデータ信号Ｄ１の値も不定になる。そのため、同時アクセス検出回路１５０は、同時アクセスを検出しなくなり、出力する同時アクセス検出信号ＥＲＲを「１」から「０」に変える。さらに、レジスタアドレス信号ＲＡの値ａ１［５］と、アドレス信号Ａ１及びＡ２の値とが不一致になるため、レジスタアドレス一致比較回路１６８は、レジスタアドレス一致比較信号ＭＡＴ、ＭＡＴ１、ＭＡＴ２としてそれぞれ「０」を出力する。なお、書き込み制御信号Ｗ１は「０」に、書き込み制御信号Ｗ２は「１」に変化する。
【０１７９】
時刻ｔ１において、入出力端子群１０７から入力されるリテンションモード制御信号ＢＵＮが「１」から「０」になる。このとき、サイクルＴの開始時刻ｔ０から十分な時間が経過している。具体的には、出力選択回路１６４が読み出しデータ信号Ｑ２としてデータｑ２［５］を出力するとともに、アドレスレジスタ１４２がａ１［５］の値をレジスタアドレス信号ＲＡとして出力し、データレジスタ１４４がｄ１［５］の値をレジスタデータ信号ＲＤとして出力する動作が全てなされるだけの時間が経過していることをいう。なお、図１６では、時刻ｔ１の前に書き込み制御信号Ｗ２の値が「０」に変化している。
【０１８０】
リテンションモード制御信号ＢＵＮが「１」から「０」になることにより、クロック制御回路１７８において、ＯＲ回路２８９の出力が「０」から「１」となる。これにより、ＯＲ回路２９１の出力が「０」から「１」となる。
【０１８１】
一方、リテンションモード制御信号ＢＵＮが入力されるインバータ２８８の出力は「１」である。ここで、遅延回路３０１は入力されるリテンションモード制御信号ＢＵＮを第１の時間だけ遅延して出力する。遅延回路３０１は、「０」を遅延して出力する。そのため、時刻ｔ１において、ＡＮＤ回路２９６の出力信号は「０」から「１」になる。それに応じて、ＯＲ回路２９２の出力信号は「０」から「１」になる。
【０１８２】
以上から、ＡＮＤ回路２９８の入力信号であるＯＲ回路２９１の出力信号及びＯＲ回路２９２の出力信号が全て「１」となることにより、内部クロック信号ＩＣＬＫ２が「０」から「１」となる。これにより、入出力回路１２０ｂが書き込み可能な動作状態となる。
【０１８３】
さらに、書き込み制御回路１７９において、リテンションモード制御信号ＢＵＮが「１」から「０」になることにより、インバータ３０４の出力信号は「０」から「１」となる。そのため、ＯＲ回路３０８が出力する入出力回路１２０ｂの内部書き込み制御信号ＩＷ２が「０」から「１」となる。これにより、入出力回路１２０ｂは書き込み動作状態となる。
【０１８４】
さらに、データ選択制御回路１７６において、リテンションモード制御信号ＢＵＮが「１」から「０」になることにより、インバータ２７８の出力が「０」から「１」となる。そのため、ＯＲ回路２８４の出力信号即ち入力データ選択信号Ｉ２は、「１」の状態を保持する。
【０１８５】
入力データ選択信号Ｉ２が「１」であるため、入力選択回路１６２は、レジスタアドレス信号ＲＡ及びレジスタデータ信号ＲＤを選択する状態となる。つまり、入力選択回路１６２は、最終アドレス信号ＬＡ２としてレジスタアドレス信号ＲＡの値ａ１［５］を出力し、最終書き込みデータ信号ＬＤ２としてレジスタデータ信号ＲＤの値ｄ１［５］を出力する。入出力回路１２０ｂは、内部クロック信号ＩＣＬＫ２が「１」、内部書き込み制御信号ＩＷ２が「１」であり、書き込み動作状態となっている。このため、入出力回路１２０ｂは、出力された最終アドレス信号ＬＡ２及び最終書き込みデータ信号ＬＤ２に基づいて、最終アドレス信号ＬＡ２の値ａ１［５］で指定されたメモリセル（ａ１［５］）に、最終書き込みデータ信号ＬＤ２の値ｄ１［５］を書き込む。
【０１８６】
リテンションモード制御信号ＢＵＮが時刻ｔ１で「１」から「０」に変化してから遅延回路３０１の遅延時間（第１の時間）が経過後、遅延回路３０１の出力信号が「１」から「０」になる。これにより、ＡＮＤ回路２９６の出力信号が「１」から「０」となり、ＯＲ回路２９２の出力信号が「１」から「０」となる。これにより、ＡＮＤ回路２９８の出力信号である内部クロック信号ＩＣＬＫ２が「１」から「０」になることによって、メモリセルアレイ１１０のワード線及びビット線のプリチャージ動作が開始される。なお、このとき、遅延回路３０２は依然として「１」を出力する。
【０１８７】
遅延回路３０１の出力信号が「１」から「０」になった後、遅延回路３０２の遅延時間（第２の時間）が経過後の時刻ｔ２において、遅延回路３０２は「１」から「０」に出力信号を変える。このとき、入出力回路１２０ｂのレジスタデータ信号ＲＤの書き込み動作は全て完了している。遅延回路３０２の出力信号の変化により、ＯＲ回路２９３の出力信号である書き込み終了信号ＢＵＲが「０」になる。これにより、クロック制御回路１７８は、時刻ｔ２において、入出力端子群１０７を介し、外部に電源ＶＤＤ１の電源オフが可能であることを通知する書き込み終了信号ＢＵＲを出力する。
【０１８８】
なお、遅延回路３０１の遅延時間（第１の時間）は、前述の入出力回路１２０ｂの書き込み動作が完了するのに必要な時間よりも多く設定されている。これにより、入出力回路１２０ｂの書き込み動作を確実に完了させることができる。遅延回路３０２の遅延時間（第２の時間）は、プリチャージ動作を完了させるのに十分な時間に設定されている。
【０１８９】
以上により、時刻ｔ２において、周辺回路１０１用の電源ＶＤＤ１をオフすることが可能となる。図１６においては、時刻ｔ３にて電源ＶＤＤ１を「１」から「０」にすることが図示されている。この状態では、電源ＶＤＤ２が「１」で保持されているため、半導体記憶装置１００は、メモリセルの書き込みデータが保持されるリテンションモード状態になる。周辺回路１０１の電源がオフになるため、周辺回路１０１内部で伝達される信号は全て０になる。図１６においては、時刻ｔ３にて、読み出しデータ信号Ｑ１、Ｑ２、レジスタアドレス信号ＲＡ、レジスタデータ信号ＲＤ、制御フラグ信号ＦＬＧが「０」になることが示されている。
【０１９０】
上述の通り、マルチポートの半導体記憶装置１００においては、リテンションモードの開始を知らせるリテンションモード制御信号ＢＵＮが外部から入力される。主制御回路１７０は、そのリテンションモード制御信号ＢＵＮに基づいて、電源ＶＤＤ１をオフする前に、データレジスタ１４４に格納されたレジスタデータ信号ＲＤを、レジスタアドレス信号ＲＡの指定するメモリセルに自動的に書き込む特徴的な動作を実行する。これにより、同時アクセス保持状態でリテンションモードに入った際に、リテンションモードから復帰後の読み出し動作で、メモリセルアレイ１１０のデータを正しく読み出すことができるようになった。つまり、リテンションモードから復帰後の読み出し動作で、既に書き込みされているはずのメモリセルアレイ１１０の正しいデータが読み出せないという従来の課題を解決することができた。
【０１９１】
ここで、主制御回路１７０においては、リテンションモード制御信号ＢＵＮに応じて動作する構成にするために特許文献１（図１７）の構成に対して追加する論理素子の数を抑制することができた。例えば、図１３に示すデータ選択制御回路１７６においては、図９に示すデータ切り替え制御回路９７６と比較して、インバータ２７８の追加及びＯＲ回路２８４の構成を２入力から３入力に変更することのみにより、リテンションモード制御信号ＢＵＮに応じて動作することを可能とした。このように、論理素子の追加及び変更を抑制することにより、主制御回路１７０（半導体記憶装置１００）の面積増加を抑えることができた。
【０１９２】
リテンションモード制御信号ＢＵＮによって強制書き込み動作の制御ができる理由は、次の通りである。第１に、リテンションモードを実現するため、半導体記憶装置１００においては、メモリセルアレイ１１０用の電源ＶＤＤ２と、メモリセルアレイ１１０以外の構成要素用（周辺回路１０１用）の電源ＶＤＤ１とに電源を分けている。第２に、リテンションモードエントリを示すためのリテンションモード制御信号ＢＵＮが「１」から「０」になることにより、内部クロック信号ＩＣＬＫ２及び内部書き込み制御信号ＩＷ２を「１」として、入出力回路１２０ｂを書き込み動作選択状態とする。そして、入力データ選択信号Ｉ２を「１」とすることによって、入力選択回路１６２からレジスタアドレス信号ＲＡ及びレジスタデータ信号ＲＤを出力させる。これにより、データレジスタ１４４に格納されたレジスタデータ信号ＲＤを、レジスタアドレス信号ＲＡで選択されるメモリセルアレイ１１０のメモリセルに自動的に書き込ませることができる。
【０１９３】
さらに、リテンションモード制御信号ＢＵＮが「１」から「０」になることにより、半導体記憶装置１００は書き込み動作の完了後に、書き込み動作が完了したことを外部に示す出力信号の書き込み終了信号ＢＵＲを「１」から「０」とする。これにより、レジスタデータ信号ＲＤのメモリセルアレイ１１０のメモリセルへの書き込み終了時間をシステムに知らせることが可能となるため、メモリセルアレイ１１０以外の構成要素の電源（電源ＶＤＤ１）をオフする時間の制御が容易になる。
【０１９４】
なお、本願にかかる半導体記憶装置は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、半導体記憶装置１００がリテンションモード状態になった際に、データレジスタ１４４に格納されたデータを書き込むのは、入出力回路１２０ｂではなく、入出力回路１２０ａでもよい。その場合に、データ選択制御回路１７６において、反転されたリテンションモード制御信号ＢＵＮは、ＯＲ回路２８４ではなくＯＲ回路２８３に入力される。書き込み制御回路１７９において、反転されたリテンションモード制御信号ＢＵＮは、ＯＲ回路３０８ではなくＯＲ回路３０７に入力される。
【０１９５】
図１４において、ＯＲ回路２９２の出力信号はＡＮＤ回路２９７及び２９８の両方に出力される。しかし、リテンションモード状態になった際に、データレジスタ１４４に格納されたデータを書き込む側の入出力回路に対してのみ、ＯＲ回路２９２の出力信号が出力されるとしてもよい。例えば、入出力回路１２０ｂがリテンションモード状態になった際にデータを書き込む場合には、ＡＮＤ回路２９８にのみＯＲ回路２９２の出力信号が出力される。これにより、入出力回路１２０ｂを動作させる内部クロック信号ＩＣＬＫ２を出力することができる。この場合には、入出力回路１２０ａは動作しないため、半導体記憶装置１００の消費電力を抑制することができる。
【０１９６】
実施の形態１では、周辺回路１０１全体に電源ＶＤＤ１が電圧を供給したが、周辺回路１０１の要素毎（レジスタ回路１４０、主制御回路１７０等）に別々の電源が備えられ、それぞれの要素に電圧を供給するとしてもよい。この場合、リテンションモード状態になった際に、レジスタ回路１４０に備えられた電源（レジスタ回路１４０に電圧を供給する電源）のみをオフにしてもよいし、周辺回路１０１の要素毎に備えられた電源全てをオフにしてもよい。
【０１９７】
実施の形態１では、一例として２ポート構成のＳＲＡＭメモリについて説明したが、本願にかかる半導体記憶装置の適用はＳＲＡＭメモリに限定されるものではない。すなわち、各メモリセルが独立した複数の系統によってアクセス可能なマルチポートメモリセル構成であればよく、メモリセルの構成そのものはメモリセルアレイ１１０として例示したものに限定されない。さらにいえば、本願にかかる半導体記憶装置は、独立した複数の系統によって各メモリセルにアクセスが可能なマルチポートメモリ構成で、同時アクセス時に周辺回路に書き込みデータを格納し、リテンションモードに入る前に格納した書き込みデータをメモリに書き込む機能があれば、実施の形態１にて説明した構成に限られない。このような半導体記憶装置は、例えばマルチポートＲＡＭとして、情報処理装置に搭載することができる。
【符号の説明】
【０１９８】
１００  半導体記憶装置
１０１  周辺回路
１０５  入出力端子群
１０６ａ  第１ポート端子群
１０６ｂ  第２ポート端子群
１０７  入出力端子群
１１０  メモリセルアレイ
１２０  入出力回路
１２２  アドレスデコード回路
１２４  読み出し／書き込み回路
１３０  アクセス制御回路
１４０  レジスタ回路
１４２  アドレスレジスタ
１４４  データレジスタ
１５０  同時アクセス検出回路
１６２  入力選択回路
１６４  出力選択回路
１６６  データ選択回路
１６８  レジスタアドレス一致比較回路
１６９  制御フラグ発生回路
１７０  主制御回路
１７２  レジスタ制御回路
１７４  フラグ切り替え回路
１７６  データ選択制御回路
１７８  クロック制御回路
１７９  書き込み制御回路
２０１  メモリセル
２０２、２０３  インバータ
２０４、２０５、２０６、２０７、２０８  アクセストランジスタ
２０８、２０９、２１０、２１１、２１２、２１３、２１４  インバータ
２１５、２１６、２１７、２１８  トランスファーゲート
２１９、２２０  ＥＸＮＯＲ回路
２２１  ＥＸＯＲ回路
２２２  ＡＮＤ回路
２２３、２２４  インバータ
２２５、２２６、２２７、２２８、２２９、２３０、２３１、２３２  トランスファーゲート
２３３、２３４  インバータ
２３５、２３６、２３７、２３８  トランスファーゲート
２３９、２４０  ＡＮＤ回路
２４１、２４２  インバータ
２４３、２４４  トランスファーゲート
２４５  プリチャージトランジスタ
２４６、２４７、２４８、２４９  ＥＸＮＯＲ回路
２５０、２５１  ＡＮＤ回路
２５２  ＯＲ回路
２５３、２５４、２５５、２５６、２５７、２５８、２５９  インバータ
２６０、２６１  ＮＡＮＤ回路
２６２、２６３、２６４、２６５  トランスファーゲート
２６６、２６７  インバータ
２６８、２６９  ＡＮＤ回路
２７０  ＯＲ回路
２７１  インバータ
２７２、２７３  ＡＮＤ回路
２７４、２７５、２７６、２７７、２７８  インバータ
２７９、２８０、２８１、２８２  ＡＮＤ回路
２８３、２８４  ＯＲ回路
２８５、２８６、２８７、２８８  インバータ
２８９、２９０、２９１、２９２、２９３  ＯＲ回路
２９４、２９５、２９６、２９７、２９８  ＡＮＤ回路
２９９、３００  ＥＸＮＯＲ回路
３０１、３０２  遅延回路
３０３、３０４  インバータ
３０５、３０６  ＡＮＤ回路
３０７、３０８  ＯＲ回路
【図１】
2013149319.tif 000003
【図２】
2013149319.tif 000004
【図３】
2013149319.tif 000005
【図４】
2013149319.tif 000006
【図５】
2013149319.tif 000007
【図６】
2013149319.tif 000008
【図７】
2013149319.tif 000009
【図８】
2013149319.tif 000010
【図９】
2013149319.tif 000011
【図１０】
2013149319.tif 000012
【図１１】
2013149319.tif 000013
【図１２】
2013149319.tif 000014
【図１３】
2013149319.tif 000015
【図１４】
2013149319.tif 000016
【図１５】
2013149319.tif 000017
【図１６】
2013149319.tif 000018
【図１７】
2013149319.tif 000019