(57)【要約】【課題】記憶装置の低コスト，低消費電力，小型化を測ることを課題とする。【解決手段】データ記憶部と、外部回路に対して信号の入出力を行う入出力部と、データ記憶部と外部回路との間で行われるデータの読み出しまたは書き込みを制御する制御部とを備え、前記制御部が、データ記憶部に外部回路からのデータを書き込む場合には、データの書き込み処理が実行できるように前記入出力部を切り替え、データ記憶部から外部回路へデータを読み出す場合には、データの読出処理が実行できるように前記入出力部を切り替えることを特徴とする半導体記憶装置。【選択図】  図１
2004246775.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶部と、外部回路に対して信号の入出力を行う入出力部と、データ記憶部と外部回路との間で行われるデータの読み出しまたは書き込みを制御する制御部とを備え、前記制御部が、データ記憶部に外部回路からのデータを書き込む場合には、データの書込処理が実行できるように前記入出力部を切り替え、データ記憶部から外部回路へデータを読み出す場合には、データの読出処理が実行できるように前記入出力部を切り替えることを特徴とする半導体記憶装置。
【請求項２】
前記制御部が、外部回路に対して転送されるデータ数または外部回路から与えられるデータ数を保持する転送データ数保持計数部と、外部回路に対して出力すべきアドレスを保持する外部アドレス保持計数部と、前記データ記憶部に対して選択すべきアドレスを保持する内部アドレス保持計数部と、前記入出力部のデータ転送方向を切り替える信号を入出力部に対して出力する入出力切替部とを備えたことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
メモリアレイと、当該メモリアレイへアクセスするための行デコーダ及び列デコーダと、センスアンプと、外部からアドレスが入力され又は外部へアドレスを出力するアドレス入出力バッファと、外部から書き込みデータが入力され又は外部へ読み出しデータを出力するデータ入出力バッファと、外部から読み出し信号が入力され又は外部へ読み出し信号を出力する読み出し信号入出力バッファと、外部から書き込み信号が入力され又は外部へ書き込み信号を出力する書き込み信号入出力バッファと、データ転送時に外部に出力すべきアドレスを保持するプリセット可能な外部アドレス保持計数部と、データ転送時に内部のメモリ位置を選択するアドレスを保持するプリセット可能な内部アドレス保持計数部と、データ転送時に転送データ数を保持するプリセット可能な転送データ数保持計数部と、前記アドレス入出力バッファ、データ入出力バッファ、読み出し信号入出力バッファ、書き込み信号入出力バッファそれぞれの入出力を切り替えるバッファ入出力切替部とを備えたことを特徴とする半導体記憶装置。
【請求項４】
請求項１に記載の半導体記憶装置を少なくとも一つ以上同一のパッケージ内に有することを特徴とする記憶素子。
【請求項５】
請求項１または３に記載の半導体記憶装置を少なくとも一以上有することを特徴とするコンピュータシステム。
【請求項６】
前記請求項３の半導体記憶装置のデータ転送方法であって、半導体記憶装置が外部制御装置からデータ読み出しコマンドを受信した場合に、外部制御装置から与えられるデータ転送元アドレス情報，データ転送先アドレス情報および転送するデータ数を、それぞれ内部アドレス保持計数部，外部アドレス保持計数部および転送データ数保持計数部に書き込み、前記バッファ入出力切替部が、前記アドレス入出力バッファ，データ入出力バッファ，読み出し信号入出力バッファおよび書き込み信号入出力バッファに対して、データの読み出し状態に切り替える信号を出力した後、前記転送データ数に相当する数のデータをデータ記憶部から読み出してデータ入出力バッファから出力することを特徴とするデータ転送方法。
【請求項７】
前記請求項３の半導体記憶装置のデータ転送方法であって、半導体記憶装置が外部制御装置からデータ書き込みコマンドを受信した場合に、外部制御装置から与えられるデータ転送先アドレス情報，データ転送元アドレス情報および転送するデータ数を、それぞれ内部アドレス保持計数部，外部アドレス保持計数部および転送データ数保持計数部に書き込み、前記バッファ入出力切替部が、前記アドレス入出力バッファ，データ入出力バッファ，読み出し信号入出力バッファおよび書き込み信号入出力バッファに対して、データの書き込み状態に切り替える信号を出力した後、前記転送データ数に相当する数のデータをデータ入出力バッファを介して入力しデータ記憶部に書き込むことを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体記憶装置に関し、特にＣＰＵを使用したコンピュータシステムにおいて、効率的なデータ転送を実現する半導体記憶装置に関する。
【０００２】
【従来の技術】
ＣＰＵを使用したコンピュータシステムは、ＣＰＵを中心として、メモリ，Ｉ／Ｏ，ＦＦなどの論理素子を組み合わせて構成され、ＣＰＵの制御のもと各素子間でデータ転送が行われる。データ転送は、たとえばメモリ−メモリ間、メモリ−Ｉ／Ｏ間、Ｉ／Ｏ−Ｉ／Ｏ間において行われる。メモリには、その用途に応じて、主としてＣＰＵが実行する命令及びその命令中で初期値を持つ変数を格納するＲＯＭ、作業用のＲＡＭ等がある。また、Ｉ／Ｏとしては、各種周辺機器のＩ／Ｏデバイスコントローラ（ＣＲＴコントローラ、フロッピーディスクドライブコントローラ等）、スイッチの状態を読むための入力ポート、モータ駆動用の電力素子を駆動するための出力ポート等がある。
【０００３】
扱うデータ量が比較的少ない場合、ＣＰＵで実行される命令によりメモリ−メモリ、メモリ−Ｉ／Ｏ、Ｉ／Ｏ−Ｉ／Ｏ間のデータ転送は短時間で終了する。しかし、近年の携帯電話の高機能化をみても明らかなように、システム内で使用されるメモリ容量は増加の一途をたどり続けている。この結果、データ転送に要する時間と人間が機器を操作するのに要する時間とのオーダーが近接してくると機器のマン・マシン・インターフェースに影響を与え、機器に対して「操作に対する反応が遅い」という感じを持つ場合も発生してくる。
【０００４】
従来のコンピュータシステムにおいて使用されてきたメモリは、汎用品としての位置づけを有する。そのため、特定ユーザ向けなどの少量生産品を除き、メモリの基本的な機能はもとより、ピン配置・電源電圧等は互換性確保の観点から世界的に統一されたものとなっている。メモリを使用してコンピュータシステムを構築する場合には、１チップマイコン、ゲートアレイ・スタンダードセル等からなるカスタムチップを使用する場合を除き、ＣＰＵ及びメモリに加え、Ｉ／Ｏデバイスを用いて外部からのデータの入力及び外部へのデータ出力により機器を制御するのが通常である。しかしながら、汎用メモリを用い機器に要求される仕様に従ってＩ／Ｏデバイスを次々と接続するのみでは機器は大型化し、複雑化し、高消費電力化し、またコスト面からも不利なものとなってくる。
【０００５】
データ転送はコンピュータシステムにおいて、基本的かつ必須の動作の一つである。しかしながら、データ転送が連続して行われ、かつこれに要する時間の総和が人間の感知し得る程度に達すれば、機器の操作性を阻害するものとなる。一方、パーソナルコンピュータやワークステーション、メインフレーム等に使用される一部の高機能ＣＰＵを除き、一般的にＣＰＵを介したデータ転送は新たなハードウェアを要しないため、コスト面からは有利である。ただし、ＣＰＵを介したデータ転送は、総データ転送時間に占めるＣＰＵの命令フェッチ及び命令デコード時間、並びに転送先アドレス生成のためのオペランドフェッチ及びオペランドデコード時間の割合が大きい。このため、特に大量のデータを一度に転送する場合、パフォーマンス面からは不利である。
【０００６】
以上の理由により、安価なＣＰＵを使用したコンピュータシステムにおいて高速なデータ転送を行う必要がある場合には、コストの上昇は受忍しつつＤＭＡコントローラ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ：ＤＭＡＣ）を使用してデータ転送することが行われてきた。
【０００７】
図１１に、従来のダイレクトメモリアクセスデータ転送装置の一例として、特許文献１の構成図を示す。図１１において、１９はＣＰＵ、３０はメモリ、３１は周辺デバイス、３２はＤＭＡ回路である。また、３３はＤＲＥＱ信号、３４はＤＡＣＫ信号、３５はＨＯＬＤ信号、３６はＨＬＤＡ信号、３７はＲＥＤＹ信号、３８はＣＰＵ１９とメモリ３０とを接続しているバス、３９は周辺デバイス３１に接続されているバス、２４はこのバス３８と３９とを分離する分離手段としてのバス分離バッファ、４０はＣＰＵ１９とＤＭＡ回路３２が周辺デバイス３１にアクセスするときのバスの競合を調停する調停手段としてのバス調停回路であり、４１はバス３９によって周辺デバイス３１に接続され、周辺デバイス３１に書き込みあるいは読み出しされるデータの配列を変換する変換手段としてのバス変換回路である。
【０００８】
さらに、４２はバス調停回路４０からＣＰＵ１９に対して、バス３８のアクセス権の開放を要求する信号（以下、ＣＰＵＨＯＬＤ信号という）であり、４３はＣＰＵ１９からバス調停回路４０にバス３８のアクセス権を開放したことを知らせる信号（以下、ＣＰＵＨＬＤＡ信号という）である。４４はＣＰＵ１９が周辺デバイス３１をアクセスする時に生成される信号（以下、ＤＥＶＡＣ信号という）である。
【０００９】
次にＤＭＡデータ転送装置の動作を説明する。図１２に、図１１に示した従来のＤＭＡデータ転送装置のメモリ３０から周辺デバイス３１へのデータ転送時の状態遷移図、図１４及び図１５に、この状態遷移の各信号の動作タイミングを示すタイミングチャートを示す。また、図１３に周辺デバイス３１からメモリ３０へのデータ転送時の状態遷移図、図１６に、この状態遷移の各信号の動作タイミングを示すタイミングチャートを示す。以下の説明では、メモリ３０のバス幅が３２ビット、周辺デバイス３１のバス幅が８ビットであり、異なるものとする。
【００１０】
まず、ＣＰＵ１９との間に競合がない場合の、メモリ３０から周辺デバイス３１へのデータ転送について図１２及び図１４を用いて説明する。ＣＰＵ１９によってＤＭＡ回路３２がメモリ３０から周辺デバイス３１への転送をプログラミングされると、ＤＭＡ回路３２はＳ０状態となり周辺デバイス３１からのＤＲＥＱ信号３３をテストして待ち状態になる。
【００１１】
周辺デバイス３１がＤＲＥＱ信号３３を有意にすると、ＤＭＡ回路３２はバス調停回路４０に対してＨＯＬＤ信号３５を出力する。バス調停回路４０はこのＨＯＬＤ信号３５を受け取ると、ＣＰＵ１９に対してＣＰＵＨＯＬＤ信号４２を出力する。ＤＭＡ回路３２は前記ＨＯＬＤ信号３５を出力するとＳ１状態に遷移し、ＣＰＵ１９からのＣＰＵＨＬＤＡ信号４３を受けたバス調停回路４０から出力されるＨＬＤＡ信号３６をテストしながらそのＳ１状態にとどまる。
【００１２】
ＤＭＡ回路３２はＨＬＤＡ信号３６を受けるとＳ２状態に遷移し、メモリアクセスを開始してメモリ３０からのＲＥＤＹ信号３７をテストする。メモリ３０の読み出しが完了してＲＥＤＹ信号３７が有意になると、ＤＭＡ回路３２は周辺デバイス３１にＤＡＣＫ信号３４を返し、ＨＯＬＤ信号３５を無効にしてＳ３状態に遷移し、バス調停回路４０はＣＰＵＨＯＬＤ信号４２を無効にする。この時周辺デバイス３１に書き込まれるのは、３２ビットデータの最下位バイトである。このＳ３状態では周辺デバイス３１からのＤＲＥＱ信号３３をテストしており、このＤＲＥＱ信号３３待ちの状態になっている。
【００１３】
周辺デバイス３１からＤＲＥＱ信号３３が出力されると、ＤＭＡ回路３２は、同様にして２番目のバイトを周辺デバイス３１に返し、ＤＡＣＫ信号３４を出力してＳ４状態に遷移する。以下、同様に３番目のバイト及び最上位バイトも、ＤＭＡ回路３２がＳ５状態に状態遷移しながら周辺デバイス３１に転送してゆく。これらデータの配列の変換は、バス変換回路４１によって行われる。
【００１４】
次に、これら一連の動作中にＣＰＵ１９からの周辺デバイス３１にアクセスがある場合について、図１２及び図１５を用いて説明する。例えば、Ｓ３状態で周辺デバイス３１からのＤＲＥＱ信号３３が無いときにＣＰＵ１９からのＤＥＶＡＣ信号４４が有意になると、ＤＭＡ回路３２はバス３８をＣＰＵ１９に開放してＳ６状態に状態遷移する。ＣＰＵ１９の周辺デバイス３１へのアクセスが完了するのを待って、ＤＭＡ回路３２は再びＳ３状態に戻る。これによって、ＣＰＵ１９のアクセスを滞らせることなく、ＤＭＡ回路３２によるデータ転送が可能となる。
【００１５】
次に、周辺デバイス３１からメモリ３０へのデータ転送について、図１３及び図１６を用いて説明する。前述の場合と同様にしてＣＰＵ１９によってＤＭＡ回路３２が周辺デバイス３１からメモリ３０への転送をプログラミングされると、ＤＭＡ回路３２はＳ０状態となり周辺デバイス３１からのＤＲＥＱ信号３３をテストして待ち状態になる。周辺デバイス３１がＤＲＥＱ信号３３を有意にすると、ＤＭＡ回路３２は周辺デバイス３１に対してＤＡＣＫ信号３４を出力し、状態Ｓ１に状態遷移する。
【００１６】
以下同様の操作を繰り返してＳ３状態に遷移してゆく。ＤＭＡ回路３２はＳ３状態にある時に周辺デバイス３１からのＤＲＥＱ信号３３が有意になると、ＤＡＣＫ信号３４を周辺デバイス３１に返しながらバス調停回路４０に対してＨＯＬＤ信号３５を出力する。このＨＯＬＤ信号３５を受けたバス調停回路４０はＣＰＵ１９に対してＣＰＵＨＯＬＤ信号４２を出力する。
【００１７】
ＣＰＵ１９はこのＣＰＵＨＯＬＤ信号４２を受け付けると、ＣＰＵＨＬＤＡ信号４３をバス調停回路４０に返し、バス調停回路４０はＤＭＡ回路３２に対してＨＬＤＡ信号３６を返す。これによってＤＭＡ回路３２は周辺デバイス３１より読み込んだバイトデータをバス変換回路４１で配列し直し、３２ビットデータとしてメモリ３０に対しライト動作を行う。この時、状態はＳ５に遷移しており、メモリ３０からのＲＥＤＹ信号３７を待ってＳ０状態に戻り転送を完了する。
【００１８】
周辺デバイス３１からのＤＲＥＱ信号３３を待っているＳ１、Ｓ２、Ｓ３の各状態における、ＣＰＵ１９からのアクセスとの競合は、メモリ３０から周辺デバイス３１へのデータ転送と同じである。なお、上記例では、バス幅が３２ビットのメモリ３０と８ビットの周辺デバイス３１との間でのデータ転送例を示したが、バス幅が３２ビットと１６ビット、或いは１６ビットと８ビット等、他の組み合わせによるデータ幅のメモリと周辺デバイスの間でのＤＭＡデータ転送に適用してもよく、この場合においても同様の効果を奏する。
【００１９】
【特許文献１】
特開平３−２８２９５４号公報
【００２０】
【発明が解決しようとする課題】
従来の安価なＣＰＵを用いたコンピュータシステムにおいて高速なデータ転送を行う場合には、Ｉ／Ｏデバイスとして上記のようなＤＭＡコントローラを用いることがよく行われてきた。しかし、高速データ転送のために、ＣＰＵとは物理的に独立したＤＭＡコントローラや、変換回路，調停回路を設ける必要があり、コスト上昇は避けられなかった。また、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）を採用してシステムを構成する場合であっても相当の大量生産をする必要があり、この点からも特に少量生産品ではＤＭＡコントローラを使用せざるを得なかった。更に、ＤＭＡコントローラを採用することにより基板面積の増加すなわち機器の大型化及び消費電力の増加も招来していた。
【００２１】
【課題を解決するための手段】
この発明は、データ記憶部と、外部回路に対して信号の入出力を行う入出力部と、データ記憶部と外部回路との間で行われるデータの読み出しまたは書き込みを制御する制御部とを備え、前記制御部が、データ記憶部に外部回路からのデータを書き込む場合には、データの書込処理が実行できるように前記入出力部を切り替え、データ記憶部から外部回路へデータを読み出す場合には、データの読出処理が実行できるように前記入出力部を切り替えることを特徴とする半導体記憶装置を提供するものである。
【００２２】
これによれば、データ記憶部に対する読み出しおよび書き込みをする構成を備えているので、汎用的なメモリ素子，変換・調停回路を組み合わせて記憶装置を構成するよりも小型化，低消費電力化および低コスト化を図ることができる。
ここで、データ記憶部とは、メモリアレイ，ＲＡＭ，ＲＯＭ，フラッシュメモリなどの実際にデータを記憶する部分をいう。
【００２３】
外部回路とは、この半導体記憶装置に接続される論理回路を意味し、たとえば、ＣＰＵ，他の記憶装置，Ｉ／Ｏコントローラなどが相当する。
入出力部とは、外部回路とデータ記憶部との間に介在する回路であり、主としてバッファ素子により構成される。
たとえば、データ記憶部のメモリ位置を指定するための列デコーダ（ＹＤＥＣ），行デコーダ（ＸＤＥＣ），外部回路のアドレスバスに接続されるアドレスバッファ（ＡＢＵＦ），データバスに接続されるデータバッファ（ＤＢＵＦ）などが、入出力部に含まれる。
【００２４】
制御部とは、入出力部を構成する各バッファ素子を制御して、データ記憶部に対する読み出しおよび書き込みを実行する部分であり、フリップフロップ，レジスタなどの多数の論理素子により構成される。
また、制御部は、外部回路に対して転送されるデータ数または外部回路から与えられるデータ数を保持する転送データ数保持計数部と、外部回路に対して出力すべきアドレスを保持する外部アドレス保持計数部と、前記データ記憶部に対して選択すべきアドレスを保持する内部アドレス保持計数部と、前記入出力部のデータ転送方向を切り替える信号を入出力部に対して出力する入出力切替部とを備えるようにしてもよい。
これにより、入出力部のデータ転送方向をスムーズに切り替えることができ、データ記憶部に対する読出処理および書込処理を高速に実行することができる。
【００２５】
また、この発明は、メモリアレイと、当該メモリアレイへアクセスするための行デコーダ及び列デコーダと、センスアンプと、外部からアドレスが入力され又は外部へアドレスを出力するアドレス入出力バッファと、外部から書き込みデータが入力され又は外部へ読み出しデータを出力するデータ入出力バッファと、外部から読み出し信号が入力され又は外部へ読み出し信号を出力する読み出し信号入出力バッファと、外部から書き込み信号が入力され又は外部へ書き込み信号を出力する書き込み信号入出力バッファと、データ転送時に外部に出力すべきアドレスを保持するプリセット可能な外部アドレス保持計数部と、データ転送時に内部のメモリ位置を選択するアドレスを保持するプリセット可能な内部アドレス保持計数部と、データ転送時に転送データ数を保持するプリセット可能な転送データ数保持計数部と、前記アドレス入出力バッファ、データ入出力バッファ、読み出し信号入出力バッファ、書き込み信号入出力バッファそれぞれの入出力を切り替えるバッファ入出力切替部とを備えたことを特徴とする半導体記憶装置を提供するものである。
これによれば、メモリアレイに対するデータの高速転送を、低消費電力，低コストで実現でき、外部回路を含めた記憶装置を小型化することができる。
【００２６】
また、この発明は、半導体記憶装置が外部制御装置からデータ読み出しコマンドを受信した場合に、外部制御装置から与えられるデータ転送元アドレス情報，データ転送先アドレス情報および転送するデータ数を、それぞれ内部アドレス保持計数部，外部アドレス保持計数部および転送データ数保持計数部に書み込み、前記バッファ入出力切替部が、前記アドレス入出力バッファ，データ入出力バッファ，読み出し信号入出力バッファおよび書き込み信号入出力バッファに対して、データの読み出し状態に切り替える信号を出力した後、前記転送データ数に相当する数のデータをデータ記憶部から読み出してデータ入出力バッファから出力することを特徴とするデータ転送方法を提供するものである。
【００２７】
さらに、この発明は、半導体記憶装置が外部制御装置からデータ書き込みコマンドを受信した場合に、外部制御装置から与えられるデータ転送先アドレス情報，データ転送元アドレス情報および転送するデータ数を、それぞれ内部アドレス保持計数部，外部アドレス保持計数部および転送データ数保持計数部に書き込み、前記バッファ入出力切替部が、前記アドレス入出力バッファ，データ入出力バッファ，読み出し信号入出力バッファおよび書き込み信号入出力バッファに対して、データの書き込み状態に切り替える信号を出力した後、前記転送データ数に相当する数のデータをデータ入出力バッファを介して入力しデータ記憶部に書込むことを特徴とするデータ転送方法を提供するものである。
ここで、外部制御装置とは、たとえばＣＰＵを意味し、その他のメモリやＩ／Ｏコントローラに対してデータの送受信を制御する装置を意味する。
【００２８】
また、小型化，低消費電力化，低コスト化のために、この発明の半導体記憶装置は、物理的に一つのパッケージ内に構成されることが好ましい。
さらに、用途によっては、この発明の半導体記憶装置を、２つ以上同一のパッケージ内に収納して、一つの記憶素子として提供してもよい。
また、コンピュータシステムにおいては、ＣＰＵ，Ｉ／Ｏコントローラ，タイマーなどの論理素子と共に、この発明の半導体記憶装置を１又は２以上組み合わせることにより、メモリセルに対する高速データ転送を、低消費電力，低コストで実現することができる。
【００２９】
【発明の実施の形態】
以下、図面を使用して本発明の実施の形態を説明する。なお、以下の実施例の記載によって、この発明が限定されるものではない。
＜半導体記憶装置の構成＞
図１に、本発明の半導体記憶装置の一実施例の構成図を示す。
ここで、メモリアレイ１はデータ記憶部，構成要素２〜８は入出力部，構成要素９〜１２を含む部分は制御部に相当する。
１はメモリアレイ、２は行デコーダ（ＸＤＥＣ）、３は列デコーダ（ＹＤＥＣ）、４はセンスアンプ（ＳＡ）、５はアドレス入出力バッファ（ＡＢＵＦ）、６はデータ入出力バッファ（ＤＢＵＦ）、７は読み出し信号入出力バッファ（ＯＢＵＦ）、８は書き込み信号入出力バッファ（ＷＢＵＦ）、９は外部アドレス保持計数部、１０は内部アドレス保持計数部、１１はバッファ入出力切替部、１２は転送データ数保持計数部、１３は半導体記憶装置全体を制御する制御部である。なお、メモリアレイ１、行デコーダ２、列デコーダ３、センスアンプ４に関しては公知の半導体記憶装置のものと同様であるので、その詳細な説明は省略する。
【００３０】
アドレス入出力バッファ（ＡＢＵＦ）５は、アドレスバス（Ａ０〜Ａｎ）に接続され、ＣＰＵからのアクセス時には入力となり、ＣＰＵから出力されるアドレス（Ａ０〜Ａｎ）を受け入れる。また、本発明に係るデータ転送時には出力となり、ＣＰＵに代理してシステムのアドレスバスにアドレス（Ａ０〜Ａｎ）を出力する。そのアドレスは、本発明に係る半導体記憶装置との間でデータ転送を行う際の相手方となる半導体記憶装置のシステム上でのアドレスである。
【００３１】
データ入出力バッファ（ＤＢＵＦ）６は、データバス（Ｄ０〜Ｄｎ）に接続され、ＣＰＵから通常のアクセス時はもとより本発明に係るデータ転送時にもイネーブルとなり、本半導体記憶装置とＣＰＵ間、本半導体記憶装置と他の半導体記憶装置との間でデータの授受を行う。
【００３２】
読み出し信号入出力バッファ（ＯＢＵＦ）７は、読み出し信号線（ＲＤ♯）に接続され、ＣＰＵからのアクセス時には入力となり、ＣＰＵから出力される読み出し信号ＲＤ＃を受け入れる。この信号がアクティブになることを契機として、本半導体記憶装置内のメモリデータ・ステータス等を外部に出力する。また、本発明に係るデータ転送時には出力となり、ＣＰＵに代理して読み出し信号ＲＤ＃を出力する。
【００３３】
書き込み信号入出力バッファ（ＷＢＵＦ）８は、書き込み信号線（ＷＲ♯）に接続され、ＣＰＵからのアクセス時には入力となり、ＣＰＵから出力される書き込み信号ＷＲ＃を受け入れる。この信号がアクティブになることを契機として、本半導体記憶装置内にメモリデータ・コマンド等が入力される。また、本発明に係るデータ転送時には出力となり、ＣＰＵに代理して書き込み信号ＷＲ＃を出力する。
【００３４】
外部アドレス保持計数部９は、外部アドレスを保持する回路であり、まず、本発明に係るデータ転送に先立ちＣＰＵからの通常アクセス時にあらかじめ外部に出力すべきアドレス（Ａ０〜Ａｎ）をラッチする。
その後、本発明に係るデータ転送時において一ワードのデータ転送が終了するごとに増加あるいは減小を繰り返してゆく。この外部アドレス保持計数部９は、プリセッタブルカウンタのようなハードウェアにより構成できる。
【００３５】
内部アドレス保持計数部１０は、まず、本発明に係るデータ転送に先立ちＣＰＵからの通常アクセス時にあらかじめ転送元又は転送先となる本発明に係る半導体記憶装置のシステム上に配置されるアドレス（Ａ０〜Ａｎ）をラッチする。その後、一ワードのデータ転送が終了するごとに増加あるいは減小を繰り返してゆく。この内部アドレス保持計数部は、プリセッタブルカウンタにより構成できる。
【００３６】
バッファ入出力切替部１１は、データ入出力バッファ（ＤＢＵＦ）６に対しては通常アクセス時及び本発明に係るデータ転送時にデータの転送方向に応じた方向の制御を行う。また、アドレス入出力バッファ（ＡＢＵＦ）５、読み出し信号入出力バッファ（ＯＢＵＦ）７、書き込み信号入出力バッファ（ＷＢＵＦ）８に対しては、通常のＣＰＵからのアクセス時にはこれらのバッファが入力となり、本発明に係るデータ転送時にはこれらのバッファが出力となるようにこれらバッファの方向の制御を行う。このバッファ入出力切替部１１は、読み出し信号入出力バッファ（ＯＢＵＦ）７からの信号及び転送データ数保持計数部１２からの信号を受ける組み合わせ回路（ゲート回路）により構成できる。
【００３７】
転送データ数保持計数部１２は、本発明に係るデータ転送に先立ちＣＰＵからの通常アクセス時にデータ入出力バッファ（ＤＢＵＦ）６を通して入力された転送データ数を予めラッチするものである。このラッチされた値は１ワードの転送が終了する度にデクリメントされる。デクリメント後の値が０になるまで、本発明に係るデータ転送は継続する。この転送データ数保持計数部１２は、プリセッタブルカウンタにより構成できる。
【００３８】
制御部１３は、前記９〜１２の要素を含み、さらにデータ転送に必要な、それ以外の要素を含む。例えば、タイミング発生回路、高電圧発生回路などがあげられる。これらは、半導体記憶装置ごとに必要とされる種類が異なるためその説明は省略する。また、制御部１３に入力される信号ＣＥ♯は、チップイネーブル信号であり、出力されるＲＤ／ＢＹ♯はレディー／ビジー信号である。
【００３９】
図１に示すように、この発明の半導体記憶装置は、データを記憶する部分（メモリアレイ１）と、外部のＣＰＵなどに対して、データ，アドレスを入出力する部分（要素２〜８）と、メモリアレイ１にデータを書き込み、このメモリアレイ１からデータを読み出すために必要な制御部１３（要素９〜１２を含む）とから構成されるものであり、今日の半導体設計，製造プロセスを用いれば、これらのすべての要素は、物理的に１つの半導体素子（ＬＳＩ）の中に作成することができる。
また、上記入出力部分と制御部（２〜１３）は、従来のＤＭＡ，変換回路および調停回路に相当する機能を実現する部分であり、従来は複数の半導体素子で構成されていたものが１つのチップで構成できるので、高速データ転送が可能なマイクロコンピュータシステムの小型化および低消費電力化を図ることができる。
【００４０】
次に、図２に本発明の半導体記憶装置の一実施例の断面図を示す。１４はハンダボール、１５は基板、１６はワイヤ、１７は図１の構成要素を含むＩＣチップ、１８は樹脂であり、チップ１７と他のチップを公知のＣＳＰパッケージに封止したものを示している。ここで、図２のような半導体記憶装置はスタックトパッケージなので、実装面積が小さくしかもＳｏＣに比べ短期間に開発可能という効果がある。
【００４１】
次に、図３に、この発明の半導体記憶装置を用いたマイクロコンピュータシステムの一実施例の構成図を示す。１９はＣＰＵ、２０はアドレスラッチ、２１は６４Ｍビットフラッシュメモリ、２２は３２ＭビットＳＲＡＭ、２４はバス分離バッファである。本実施例では、システムのアドレス空間は１６Ｍバイトであり、最下位４Ｍバイトに３２ＭビットＳＲＡＭ２２が、最上位８Ｍバイトに６４Ｍビットフラッシュメモリ２１が配置されている。このフラッシュメモリ２１とＳＲＡＭ２２とのメモリマッピングの状態の一実施例を、図４に示す。
図３において、６４Ｍビットフラッシュメモリ２１には、図１に示したこの発明の半導体記憶装置を用いる。
また、６４Ｍビットフラッシュメモリ２１と、３２ＭビットＳＲＡＭ２２とはそれらの信号線の種類がほぼ共通であるので、図３の点線で示すように、同一パッケージ内に封止できる。したがって、従来のシステムと比べて、小面積・短配線であるので、機器の小型化に貢献・高速動作可能という効果がある。
【００４２】
フラッシュメモリ２１は、一般的に外部から入力されるコマンドにより内部のモードを遷移させて動作する。本実施例の場合、データ転送方向を区別した２種類のデータ転送コマンドをフラッシュメモリに与えることにより、データの読み出し又は書き込みが実行される。
【００４３】
＜フラッシュメモリ２１からのデータの読出処理＞
最初に、６４Ｍビットフラッシュメモリ２１が占有するシステム上のアドレス８０００００Ｈ〜ＢＦＦＦＦＦＨまでの４Ｍバイトを、３２ＭビットＳＲＡＭ２２が占有するシステム上のアドレス００００００Ｈ〜３ＦＦＦＦＦＨに転送する場合（図４に示す▲１▼の場合）について、図３，図５，図６および図９に基づき説明する。
まず、図示しない出力ポート等から与えられるＣＤＴ＿ＭＯＤＥ信号２５を“１”とする。
このＣＤＴ＿ＭＯＤＥ信号２５とは、連続データ転送モード（Ｃｏｎｔｉｎｕｏｕｓ  Ｄａｔａ  Ｔｒａｎｓｍｉｓｓｉｏｎ  ｍｏｄｅ）を意味する信号である。
【００４４】
システムのアドレスバスの最上位はＡ２３であるのに対し、６４Ｍビットフラッシュメモリ２１に接続されるシステムのアドレスの最上位はＡ２２である。このため、データ転送時に６４Ｍビットフラッシュメモリ２１からはシステムのアドレスとしてＡ２２までしか出力できないためＡ２３が不足する。これを回避するため、システムのアドレスの最上位Ａ２３を外部のアドレスラッチ２０に予めラッチする。
【００４５】
本実施例の場合においては、３２ＭビットＳＲＡＭ２２はシステムのアドレス空間のうち００００００Ｈ〜３ＦＦＦＦＦＨまでを占有するため、データの転送方向にかかわらずアドレスラッチ２０には予め０Ｈをラッチする。なお、本実施例においては、アドレスラッチ２０はＩ／Ｏアドレス空間の０Ｈ番地に配置されており、図示しないデコード信号及びＩ／Ｏ用の書き込み信号から生成されるＣＬＫ信号２６の立ち上がりエッジにおいてＤ０をＡ２３としてラッチする。
【００４６】
次に、図９に示すように、ＣＰＵ１９は、データの転送方向が６４Ｍビットフラッシュメモリ２１から３２ＭビットＳＲＡＭ２２の方向であることを示すデータ転送コマンド（以下、コンティニュアスデータ出力コマンドという。）００Ｅ９Ｈを６４Ｍビットフラッシュメモリ２１にライトする。すると、６４Ｍビットフラッシュメモリ２１はこれ以降の書き込みサイクルがデータ転送元及びデータ転送先並びに転送データ数を取り込むサイクルであることを認識する状態に遷移する（データ読み出しサイクルモード）。
【００４７】
次に、ＣＰＵ１９は、データ転送元となる６４Ｍビットフラッシュメモリ２１がシステム上で占有するアドレスのうちＡ０〜Ａ１５までのもの（以下、内部下位アドレスという。）００００Ｈをライトした後、Ａ１６〜Ａ２２までのもの（以下、内部上位アドレスという。）００８０Ｈをライトする。これら内部下位アドレス及び内部上位アドレスは図１の内部アドレス保持計数部１０にライトされる（図５，図９参照）。
【００４８】
次に、ＣＰＵ１９は、転送先となる３２ＭビットＳＲＡＭ２２のシステム上でのアドレスのうちＡ０〜Ａ１５までのもの（以下、外部下位アドレスという。）００００Ｈをライトし、同様にＡ１６〜Ａ２２までのもの（以下、外部上位アドレスという。）００００Ｈをライトする。これら外部下位アドレス及び外部上位アドレスは図１の外部アドレス保持計数部９にライトされる（図５，図９参照）。
最後に、ＣＰＵ１９は、転送データ数（転送ワード数）のうち下位１６ビット（以下、下位転送ワード数という。）００００Ｈおよび上位１６ビット（以下、上位転送ワード数という。）００２０Ｈをライトする。これら下位転送ワード数及び上位転送ワード数は図１の転送データ数保持計数部１２にライトされる（図５，図９参照）。
【００４９】
以上のライト処理をした直後に、６４Ｍビットフラッシュメモリ２１はデータ転送モードに遷移してデータ転送を開始する。先ず、フラッシュメモリ２１は、データ転送モード中であることを外部に知らせるために、ＲＤ／ＢＹ＃信号２７を“Ｌ”とする。これにより、アドレスラッチ出力イネーブル信号２８は“Ｈ”となり、予めアドレスラッチ２０にラッチしたＡ２３がＣＰＵ１９に代理して出力される。併せて、バス分離バッファイネーブル信号２９は“Ｌ”となり、バス分離バッファ２４をディセーブルとする。これにより、バス分離バッファ２４はＣＰＵ１９からのＡ０〜Ａ２３、Ｄ０〜Ｄ１５、ＲＤ＃、ＷＲ＃を切断する。
【００５０】
次に、図９に示すように、フラッシュメモリ２１のバッファ入出力切替部１１は、アドレス入出力バッファ５、データ入出力バッファ６、読み出し信号入出力バッファ７、および書き込み信号入出力バッファ８をすべて出力に切り替える。その後、アドレス入出力バッファ５から、外部アドレス保持計数部９に保持された外部アドレス（３２ＭビットＳＲＡＭの占有するシステム上のアドレス）が出力される。また同時にデータ入出力バッファ６から、内部アドレス保持計数部１０に保持された内部アドレス（６４Ｍビットフラッシュメモリの占有するシステム上のアドレス）のデータが出力される。さらに、これ以降のタイミングで読み出し信号入出力バッファ７からは“Ｈ”が出力され、書き込み信号入出力バッファ８からはトグルする書き込み信号が出力される。
【００５１】
これにより、データ入出力バッファ６から出力された１ワードのデータが、データバスＤ０〜Ｄ１５を介して６４Ｍビットフラッシュメモリ２１から３２ＭビットＳＲＡＭ２２に書き込まれる。その後、フラッシュメモリ２１は、外部アドレス保持計数部９及び内部アドレス保持計数部１０それぞれに記憶されている値を２増加させる。この一連の処理により１ワード分のデータ転送動作が終了する。
以上の操作を転送ワード数だけ繰り返した後、フラッシュメモリ２１のバッファ入出力切替部１１は、アドレス入出力バッファ５、読み出し信号入出力バッファ７、および書き込み信号入出力バッファ８を入力に切り替え、データ入出力バッファ６をＨｉ−Ｚ（ハイインピーダンス状態）に切り替え、ＲＤ／ＢＹ＃２７信号を“Ｈ”として、データの読出処理の一連の動作を終了する（図６参照）。
【００５２】
＜フラッシュメモリ２１へのデータの書込処理＞
次に、３２ＭビットＳＲＡＭ２２が占有するシステム上のアドレス００００００Ｈ〜３ＦＦＦＦＦＨまでの４Ｍバイトを６４Ｍビットフラッシュメモリ２１が占有するシステム上のアドレス８０００００Ｈ〜ＢＦＦＦＦＦＨに転送する場合（図４に示す▲２▼の場合）について、図３，図７，図８および図１０に基づき説明する。アドレスラッチ２０に最上位アドレスＡ２３をラッチするまでの過程は前記したデータ読出処理と同じであるので、その説明は省略する。
【００５３】
Ａ２３をラッチした後、ＣＰＵ１９は、データの転送方向が３２ＭビットＳＲＡＭ２２から６４Ｍビットフラッシュメモリ２１の方向であることを示すデータ転送コマンド（以下、コンティニュアスデータ入力コマンドという。）００ＥＡＨを６４Ｍビットフラッシュメモリ２１にライトする（図７，図１０参照）。すると、６４Ｍビットフラッシュメモリ２１は、これ以降の書き込みサイクルがデータ転送元及びデータ転送先並びに転送データ数を取り込むサイクルであることを認識する状態に遷移する（データ書き込みサイクルモード）。この状態遷移は、前記コンティニュアスデータ出力コマンドの場合と同様である。
【００５４】
次に、ＣＰＵ１９は、フラッシュメモリ２１に対してデータ転送元となる３２ＭビットＳＲＡＭ２２に係る外部下位アドレス００００Ｈをライトし、同様に外部上位アドレス００００Ｈをライトする。これら外部下位アドレス及び外部上位アドレスは図１の外部アドレス保持計数部９にライトされる（図７，図１０参照）。
【００５５】
次に、ＣＰＵ１９は、転送先となる６４Ｍビットフラッシュメモリ２１に係る内部下位アドレス００００Ｈをライトし、同様に内部上位アドレス００８０Ｈをライトする。これら内部下位アドレス及び内部上位アドレスは図１の内部アドレス保持計数部１０にライトされる（図７，図１０参照）。
最後に、ＣＰＵ１９は、下位転送ワード数００００Ｈおよび上位転送ワード数００２０Ｈをライトする。これら下位転送ワード数及び上位転送ワード数は、図１の転送データ数保持計数部１２にライトされる（図７，図１０参照）。
【００５６】
以上のライト処理をした直後に、６４Ｍビットフラッシュメモリ２１はフラッシュメモリ２１へデータを書き込むためのデータ転送モードに遷移してデータ転送を開始する。
先ず、図７に示すように、フラッシュメモリ２１は、データ転送モード中であることを外部に知らせるためにＲＤ／ＢＹ＃信号２７を“Ｌ”とする。これにより、アドレスラッチ出力イネーブル信号ＯＥ２８は“Ｈ”となり、予めアドレスラッチ２０にラッチしたＡ２３がＣＰＵ１９に代理して出力される。併せて、図７に示すようにバス分離バッファイネーブル信号ＥＮ２９は“Ｌ”となり、バス分離バッファ２４をディセーブルとする。これにより、バス分離バッファ２４はＣＰＵ１９からのＡ０〜Ａ２３、Ｄ０〜Ｄ１５、ＲＤ＃、ＷＲ＃各信号を切断する。
【００５７】
次に、図１０に示すように、フラッシュメモリ２１のバッファ入出力切替部１１は、アドレス入出力バッファ５、読み出し信号入出力バッファ７、および書き込み信号入出力バッファ８を出力に切り替える。一方、データ入出力バッファ６は、３２ＭビットＳＲＡＭ２２からデータを取り込むために、入力に切り替えられる。
その後、アドレス入出力バッファ５から外部アドレス保持計数部９に保持された外部アドレス（３２ＭビットＳＲＡＭの占有するシステム上のアドレス）が出力され、書き込み信号入出力バッファ８から信号ＷＲ♯“Ｈ”が出力される。また同時に読み出し信号入出力バッファ７からはトグルする読み出し信号ＯＥ♯が出力される。この読み出し信号ＯＥ♯は転送期間中はずっと“Ｌ”のままであってもよい。
【００５８】
読み出し信号ＯＥ♯をトグルさせる場合はこれを“Ｌ”とした後所定の時間経過後、３２ＭビットＳＲＡＭ２２からデータが出力される。一方、読み出し信号ＯＥ♯をトグルさせず“Ｌ”とし続ける場合は、外部アドレスを出力した後所定の時間経過後に、３２ＭビットＳＲＡＭ２２からデータが出力される。６４Ｍビットフラッシュメモリ２１は、この出力データを、バッファＤＢＵＦ６を介して受信し、内部アドレス保持計数部１０に保持した内部アドレスにライトする。これにより、１ワードのデータが、３２ＭビットＳＲＡＭ２２から６４Ｍビットフラッシュメモリ２１に書き込まれる。その後、フラッシュメモリ２１は、外部アドレス保持計数部９及び内部アドレス保持計数部１０それぞれに記憶されている値を２増加させる。この一連の処理により１ワード分のデータ転送動作が終了する（図１０参照）。
【００５９】
以上の操作を転送ワード数だけ繰り返した後、フラッシュメモリ２１のバッファ入出力切替部１１は、アドレス入出力バッファ５、読み出し信号入出力バッファ７、および書き込み信号入出力バッファ８を入力に切り替え、データ入出力バッファ６をＨｉ−Ｚに切り替え、ＲＤ／ＢＹ＃２７信号を“Ｈ”としてデータの書込み処理の一連の動作を終了する（図８参照）。
【００６０】
なお、図６，図８において、コンティニュアスデータ出力コマンドまたは入力コマンドを更に発行しない場合、すなわち上記データ転送を継続して行わない場合には、ＣＤＴ＿ＭＯＤＥ信号２５を“Ｌ”として終了する。
【００６１】
以上に説明した実施例では、外部アドレス保持計数部９および内部アドレス保持計数部１０に保持すべきアドレスＡ０〜Ａ２２は、いずれもシステム上でのアドレスとしたが、これに限定するものではない。
例えば、図３において、内部アドレスとしては６４Ｍビットフラッシュメモリ２１自身のＡ０〜Ａ２１を使用してもよい。また、転送データ数として（転送データ数−１）なる値を採用してもよく、この場合は転送データ数保持計数部１２の値が負（ＭＳＢ＝１）となることを検知してデータ転送を終了する。
【００６２】
【発明の効果】
この発明によれば、データ記憶部と、入出力部と、制御部とを１つの装置内に備えているので、汎用部品のメモリ素子や周辺素子を組み合わせて記憶回路を構成するよりも、装置の小型化，低消費電力化，低コスト化が可能である。
また、このような転送機能を具備した汎用品としての半導体記憶装置は従来にはなかったものなので、システム設計者のデバイス選択の幅を拡大することができる。たとえば、携帯電話等の画像コンテンツを多用するシステムに利用することができる。
さらに、ＣＰＵを用いたシステムにおいて必須の転送機能を具備するものなので、より柔軟なシステム設計が可能となり、たとえば、汎用メモリ部品を用いた場合にはできなかった高機能ＳＩＰの実現という設計も可能となる。
【図面の簡単な説明】
【図１】本発明の半導体記憶装置の一実施例の構成図である。
【図２】本発明の半導体記憶装置の一実施例の断面図である。
【図３】本発明の半導体記憶装置を用いたマイクロコンピュータシステムの一実施例の構成図である。
【図４】この発明のマイクロコンピュータシステムのメモリのマッピング状態の一実施例を示す図である。
【図５】この発明のマイクロコンピュータシステムにおける、６４Ｍビットフラッシュメモリ２１から３２ＭビットＳＲＡＭ２２へのデータ転送時の転送開始直後の各信号のタイミングチャートである。
【図６】この発明のマイクロコンピュータシステムにおける、６４Ｍビットフラッシュメモリ２１から３２ＭビットＳＲＡＭ２２へのデータ転送時の転送終了間際の各信号のタイミングチャートである。
【図７】この発明のマイクロコンピュータシステムにおける、３２ＭビットＳＲＡＭ２２から６４Ｍビットフラッシュメモリ２１へのデータ転送時の転送開始直後の各信号のタイミングチャートである。
【図８】この発明のマイクロコンピュータシステムにおける、３２ＭビットＳＲＡＭ２２から６４Ｍビットフラッシュメモリ２１へのデータ転送時の転送終了間際の各信号のタイミングチャートである。
【図９】この発明において、フラッシュメモリからのデータの読出処理の説明図である。
【図１０】この発明において、フラッシュメモリへのデータの書込処理の説明図である。
【図１１】従来のダイレクトメモリアクセスデータ転送装置の構成図である。
【図１２】従来のダイレクトメモリアクセスデータ転送装置において、メモリ３０から周辺デバイス３１にデータ転送を行う際の状態遷移図である。
【図１３】従来のダイレクトメモリアクセスデータ転送装置において、周辺デバイス３１からメモリ３０にデータ転送を行う際の状態遷移図である。
【図１４】従来のダイレクトメモリアクセスデータ転送装置において、ＣＰＵ１９との間に競合がない場合のメモリ３０から周辺デバイス３１にデータ転送を行う際のタイミングチャートである。
【図１５】従来のダイレクトメモリアクセスデータ転送装置において、メモリ３０から周辺デバイス３１へのデータ転送中にＣＰＵ１９から周辺デバイス３１にアクセスがある場合のタイミングチャートである。
【図１６】従来のダイレクトメモリアクセスデータ転送装置において、周辺デバイス３１からメモリ３０にデータ転送を行う際のタイミングチャートである。
【符号の説明】
１        メモリアレイ
２        行デコーダ
３        列デコーダ
４        センスアンプ
５        アドレス入出力バッファ
６        データ入出力バッファ
７        読み出し信号入出力バッファ
８        書き込み信号入出力バッファ
９        外部アドレス保持計数部
１０    内部アドレス保持計数部
１１    バッファ入出力切替部
１２    転送データ数保持計数部
１３    制御部
１４    ハンダボール
１５    基板
１６    ワイヤ
１７    チップ
１８    樹脂
１９    ＣＰＵ
２０    アドレスラッチ
２１    ６４Ｍビットフラッシュメモリ
２２    ３２ＭビットＳＲＡＭ
２３    ６４Ｍビットフラッシュメモリ２１と３２ＭビットＳＲＡＭ２２が同一パッケージに封止された場合を示す点線
２４    バス分離バッファ
２５    ＣＤＴ＿ＭＯＤＥ信号
２６    ＣＬＫ信号
２７    ＲＤ／ＢＹ＃信号
２８    アドレスラッチ出力イネーブル信号
２９    バス分離バッファイネーブル信号
３０    メモリ
３１    周辺デバイス
３２    ＤＭＡ回路
３３    ＤＲＥＱ信号
３４    ＤＡＣＫ信号
３５    ＨＯＬＤ信号
３６    ＨＬＤＡ信号
３７    ＲＥＤＹ信号
３８    ＣＰＵ１９とメモリ３０とを接続しているバス
３９    周辺デバイス３１に接続されているバス
４０    バス調停回路
４１    バス変換回路
４２    ＣＰＵＨＯＬＤ信号
４３    ＣＰＵＨＬＤＡ信号
４４    ＤＥＶＡＣ信号
【図１】
2004246775.tif 000003
【図２】
2004246775.tif 000004
【図３】
2004246775.tif 000005
【図４】
2004246775.tif 000006
【図５】
2004246775.tif 000007
【図６】
2004246775.tif 000008
【図７】
2004246775.tif 000009
【図８】
2004246775.tif 000010
【図９】
2004246775.tif 000011
【図１０】
2004246775.tif 000012
【図１１】
2004246775.tif 000013
【図１２】
2004246775.tif 000014
【図１３】
2004246775.tif 000015
【図１４】
2004246775.tif 000016
【図１５】
2004246775.tif 000017
【図１６】
2004246775.tif 000018