(57)【要約】【課題】同一サイクルで複数のデータを読み出すことを前提としない場合においても、振動やノイズに耐性のある半導体記憶装置を提供する。【解決手段】制御部２０は、１受信単位を構成する複数のデータユニットのうち、最後に入力されたデータユニットをメモリアレイ２内の第１のアドレスのメモリセルに格納し、最後に入力されたデータユニットに先行して入力されたデータユニットをメモリアレイ内の、第１のアドレスとは別の第２のアドレスのメモリセルに格納する。第１のアドレスのメモリセルと第２のアドレスのメモリセルとは、メモリアレイ２内では少なくとも行方向および列方向において隣接しない。【選択図】図１
2012195039.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを含むメモリアレイと、
１受信単位を構成する複数のデータユニットのうち、最後に入力されたデータユニットを前記メモリアレイ内の第１のアドレスのメモリセルに格納し、前記最後に入力されたデータユニットに先行して入力されたデータユニットを前記メモリアレイ内の、前記第１のアドレスとは別の第２のアドレスのメモリセルに格納する制御部とを備え、
前記第１のアドレスのメモリセルと前記第２のアドレスのメモリセルとは、前記メモリアレイ内では少なくとも行方向および列方向において隣接しない、半導体記憶装置。
【請求項２】
１受信単位が、第１番目〜第Ｎ番目に入力されるデータユニットで構成されるときに、
前記制御部は、第Ｎ番目に入力されたデータユニットから降順に前記メモリアレイのメモリセルに格納する、請求項１記載の半導体記憶装置。
【請求項３】
前記制御部は、前記１受信単位を構成する第１番目〜第Ｎ番目の各データユニットを、前記１受信単位内の他のいずれのデータユニットとも、少なくとも行方向および列方向で隣接しない位置のメモリセルに格納する、請求項２記載の半導体記憶装置。
【請求項４】
１受信単位が、Ｎ個のデータユニットで構成され、
前記制御部は、
第１番目〜第Ｎ番目のシフトレジスタを含み、前記第１番目のシフトレジスタのサイズが最大であり、第２番目〜第Ｎ番目のシフトレジスタのサイズは、順次減少し、
外部から入力されるデータユニットごとに、前記入力されたデータユニットの出力先のシフトレジスタを順番に循環的に切替えるスイッチと、
前記第１番目〜第Ｎ番目のシフトレジスタから順次出力されるデータユニットを受けて、前記受けたデータユニットを前記メモリアレイのメモリセルにアドレスの順序に従って書込む書込制御部とを含む、請求項１記載の半導体記憶装置。
【請求項５】
前記第ｉ番目（ｉ＝１〜Ｎ）のシフトレジスタは、（Ｎ＋１−ｉ）個のデータユニットを保持するためのサイズを有する、請求項４記載の半導体記憶装置。
【請求項６】
１受信単位が、Ｎ個のデータユニットで構成され、
前記制御部は、
第１番目〜第Ｎ番目のシフトレジスタを含み、前記第１番目のシフトレジスタのサイズが最小であり、第２番目〜第Ｎ番目のシフトレジスタのサイズは、順次増加し、
前記メモリアレイのアドレスの順序に従ってメモリセルからデータユニットを順次読み出し、かつ読出すごとに読み出したデータユニットの出力先のシフトレジスタを順番に循環的に切替える読出制御部と、
前記切り替えたデータユニットの出力先のシフトレジスタと、外部とを接続するスイッチとを含む、請求項１記載の半導体記憶装置。
【請求項７】
前記第ｉ番目（ｉ＝１〜Ｎ）のシフトレジスタは、ｉ個のデータユニットを保持するためのサイズを有する、請求項６記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関する。
【背景技術】
【０００２】
従来から、振動やノイズが発生する環境下において発生するエラーに対して耐性のある半導体記憶装置が提供されている。
【０００３】
たとえば、特許文献１（特開２０００−２６８５６０号公報）では、以下のような半導体記憶装置が開示されている。半導体記憶装置は、複数のデータ入出力用外部端子Ｉ／Ｏ０〜Ｉ／Ｏ１５と、複数のデータ入出力用外部端子に対応するメモリセルが混在してなるＤＲＡＭアレイ（メモリアレイ）１１０−１〜１１０−４とを有し、メモリアレイから複数のデータ入出力用外部端子にデータを読み出すように構成される。ここで、各ＤＲＡＭアレイ内で、同一サイクル内でデータ入出力用外部端子に読み出されるデータを格納するメモリセルは互いに離間するように配置される。すなわち、メモリセルアレイ１１０−１〜１１０−４は、複数の領域に区分され、各領域内には、同一サイクルで同時に読み出しの対象とされないメモリセルが配列される。
【０００４】
このような構成によって、特許文献１の半導体記憶装置では、たとえば、１つの領域内のメモリセルのデータが中性子などによって破壊されたとしても、データ入出力用外部端子Ｉ／Ｏ０〜Ｉ／Ｏ１５に読み出されるデータの不良ビット数を１ビットに抑えることができる。読み出された不良ビットについては、誤り訂正によって訂正が可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２６８５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１は、同一サイクルで複数のデータを読み出すことを前提としている。こうした前提の下では、同時に読み出されるデータの不良ビット数が多くなると、誤り訂正で訂正不可能になる。このような事態を回避するため、特許文献１では、同時に読み出されるデータは異なる領域に記憶することにしている。
【０００７】
しかしながら、同一サイクルで複数のデータを読み出すことを前提としない場合においても、振動や中性子などのノイズに耐性のある半導体記憶装置の需要は大きい。
【０００８】
それゆえに、本発明の目的は、同一サイクルで複数のデータを読み出すことを前提としない場合においても、振動やノイズに耐性のある半導体記憶装置を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の半導体記憶装置は、複数のメモリセルを含むメモリアレイと、１受信単位を構成する複数のデータユニットのうち、最後に入力されたデータユニットをメモリアレイ内の第１のアドレスのメモリセルに格納し、最後に入力されたデータユニットに先行して入力されたデータユニットをメモリアレイ内の、第１のアドレスとは別の第２のアドレスのメモリセルに格納する制御部とを備える。第１のアドレスのメモリセルと第２のアドレスのメモリセルとは、メモリアレイ内で少なくとも行方向および列方向において隣接しない。
【発明の効果】
【００１０】
本発明の一実施形態の半導体記憶装置によれば、同一サイクルで複数のデータを読み出すことを前提としない場合においても、振動やノイズに耐性を有することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態の半導体記憶装置の構成を表わす図である。
【図２】書込時の制御を説明するための図である。
【図３】メモリアレイ内のデータユニットの格納位置を表わす図である。
【図４】読出時の制御を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
図１は、本発明の実施形態の半導体記憶装置の構成を表わす図である。
【００１３】
図１を参照して、この半導体記憶装置１は、メモリアレイ２と、制御部２０とを備える。
【００１４】
本実施の形態では、１受信単位のデータ（つまり、１パケットのデータ）は、Ｎ個のデータユニットから構成されるものとする。また、クロックＣＬＫに従って、外部からデータユニットが順次入力されるものとする。本実施の形態において、１受信単位のデータが誤り訂正の単位とする。
【００１５】
メモリアレイ２は、行列状に配置された複数のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory））のメモリセルを含む。
【００１６】
制御部２０は、１受信単位を構成する第１番目〜第Ｎ番目に入力されるデータユニットのうち、第Ｎ番目に入力されたデータユニットから降順にメモリアレイ２のメモリセルに格納する。格納位置として、制御部２０は、１受信単位を構成する第１番目〜第Ｎ番目の各データユニットを、１受信単位内の他のいずれのデータユニットとも少なくとも行方向および列方向で隣接しない位置のメモリセルに格納する。制御部２０は、行方向および列方向に加えて、各データユニットを、１受信単位内の他のいずれのデータユニットとさらに斜め方向にも隣接しない位置のメモリセルに格納することとしてもよい。
【００１７】
制御部２０は、第１のスイッチ１０と、書込用シフトレジスタ群６と、読出用シフトレジスタ群８と、第２のスイッチ１２と、Ｒ／Ｗ制御部４とを備える。
【００１８】
書込用シフトレジスタ群６は、シフトレジスタＳＲＷ（１）〜ＳＲＷ（Ｎ）を含む。このＮは、１受信単位（１パケット）を構成するデータユニットの数と同じである。シフトレジスタＳＲＷ（ｉ）（ｉ＝１〜Ｎ）は、（Ｎ＋１−ｉ）個のデータユニットを保持するためのサイズを有する。シフトレジスタＳＲＷ（１）〜ＳＲＷ（Ｎ）は、クロックＣＬＫに従って、シフト動作を実行する。
【００１９】
読出用シフトレジスタ群８は、シフトレジスタＳＲＲ（１）〜ＳＲＲ（Ｎ）を含む。このＮは、１受信単位（１パケット）を構成するデータユニットの数と同じである。シフトレジスタＳＲＲ（ｉ）（ｉ＝１〜Ｎ）は、ｉ個のデータユニットを保持するためのサイズを有する。シフトレジスタＳＲＲ（１）〜ＳＲＲ（Ｎ）を含む。シフトレジスタＳＲＲ（１）〜ＳＲＲ（Ｎ）は、クロックＣＬＫに従って、シフト動作を実行する。
【００２０】
第１のスイッチ１０は、クロックＣＬＫに従って、外部から入力されるデータユニットごとに、入力されたデータユニットの出力先のシフトレジスタＳＲＷ（ｉ）を順番に循環的に切替える。すなわち、第１のスイッチ１０は、外部から最初に入力されるデータユニットの出力先をシフトレジスタＳＲＷ（１）とし、外部から２番目に入力されるデータユニットの出力先をシフトレジスタＳＲＷ（２）とし、外部からＮ番目に入力されるデータユニットの出力先をシフトレジスタＳＲＷ（Ｎ）とし、外部から（Ｎ＋１）番目に入力されるデータユニットの出力先をシフトレジスタＳＲＷ（１）とする。第１のスイッチ１０は、以下これを繰返す。
【００２１】
Ｒ／Ｗ制御部４は、データの書込み時には、シフトレジスタＳＲＷ（１）〜ＳＲＷ（Ｎ）から順次出力されるデータユニットを受けて、受けたデータユニットをメモリアレイ２のメモリセルにアドレスの順序に従って書込む。すなわち、Ｒ／Ｗ制御部４は、シフトレジスタＳＲＷ（１）〜ＳＲＷ（Ｎ）から最初に出力されるデータユニットをメモリアレイ２の所定のアドレスのメモリセルに書込む。その後、Ｒ／Ｗ制御部４は、シフトレジスタＳＲＷ（１）〜ＳＲＷ（Ｎ）から２番目に出力されるデータユニットをメモリアレイ２の所定のアドレスの次のアドレスのメモリアドレスに書込む。その後、Ｒ／Ｗ制御部４は、シフトレジスタＳＲＷ（１）〜ＳＲＷ（Ｎ）から３番目に出力されるデータユニットを２番目に出力されたデータユニットの書込先のメモリセルの次のアドレスのメモリアドレスに書込む。Ｒ／Ｗ制御部４は、以下これを繰返す。
【００２２】
Ｒ／Ｗ制御部４は、データの読出し時には、メモリアレイ２のアドレスの順序に従ってメモリセルからデータユニットを順次読み出し、かつ読出すごとに読み出したデータユニットの出力先のシフトレジスタを順番に循環的に切替える。すなわち、Ｒ／Ｗ制御部４は、メモリアレイ２から最初に読み出されたデータユニットをシフトレジスタＳＲＲ（１）に出力する。その後、Ｒ／Ｗ制御部４は、メモリアレイ２から２番目に読み出されたデータユニットをシフトレジスタＳＲＲ（２）に出力する。その後、Ｒ／Ｗ制御部４は、メモリアレイ２からＮ番目に読み出されたデータユニットをシフトレジスタＳＲＲ（Ｎ）に出力する。その後、Ｒ／Ｗ制御部４は、メモリアレイ２から（Ｎ＋１）番目に読み出されたデータユニットをシフトレジスタＳＲＲ（１）に出力する。Ｒ／Ｗ制御部４は、以下これを繰返す。
【００２３】
第２のスイッチ１２は、クロックＣＬＫに従って、データユニットの出力先のシフトレジスタと、外部とを接続する。すなわち、第２のスイッチ１２は、クロックＣＬＫに従って、外部と接続するシフトレジスタＳＲＲ（ｉ）を順番に循環的に切替える。
【００２４】
（書込時の制御）
図２は、書込時の制御を説明するための図である。図３は、メモリアレイ２内のデータユニットの格納位置を表わす図である。
【００２５】
図２の例では、説明を簡単にするために、１受信単位の第１パケットは、第１データユニットＤ１、第２データユニットＤ２、第３データユニットＤ３で構成され、１受信単位の第２パケットは、第４データユニットＤ４、第５データユニットＤ５、第６データユニットＤ６で構成され、１受信単位の第３パケットは、第７データユニットＤ７、第８データユニットＤ８、第９データユニットＤ９で構成されるものとして説明する。
【００２６】
また、以下の説明では、メモリアレイ内の行アドレスａ１〜ａ３、列アドレスｂ１〜ｂ７の範囲のメモリセルにデータユニットが書込まれるものとするが、これには限定されない。たとえば、列アドレスの数（この例では７個）を変化させることによって、同一の受信単位に属するデータユニットどうしが、斜め方向で隣接しないようにすることができる。
【００２７】
図２を参照して、ｔ＝０の時点で、シフトレジスタＳＲＷ（１）、ＳＲＷ（２）、ＳＲＷ（３）の保持する値が「０」にリセットされる。
【００２８】
次に、ｔ＝１の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（１）に切替わる。外部から入力された第１データユニットＤ１が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（１）の先頭に書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。
【００２９】
次に、ｔ＝２の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（２）に切替わる。外部から入力された第２データユニットＤ２が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（２）の先頭に書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。
【００３０】
次に、ｔ＝３の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（３）に切替わる。外部から入力された第３データユニットＤ３が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（３）の先頭に書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。
【００３１】
次に、ｔ＝４の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（１）に切替わる。シフトレジスタＳＲＷ（１）内の第１データユニットＤ１がクロックＣＬＫに同期して右方向にシフトする。外部から入力された第４データユニットＤ４が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（１）の先頭に書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝４の時点で、行アドレスａ１および列アドレスｂ１のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（１）から出力された「０」を選択したメモリセルに書込む。
【００３２】
次に、ｔ＝５の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（２）に切替わる。シフトレジスタＳＲＷ（２）内の第２データユニットＤ２がクロックに同期して右方向にシフトする。外部から入力された第５データユニットＤ５が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（２）の先頭に書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝５の時点で、行アドレスａ１および列アドレスｂ２のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（２）から出力された「０」を選択したメモリセルに書込む。
【００３３】
次に、ｔ＝６の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（３）に切替わる。シフトレジスタＳＲＷ（３）内の第３データユニットＤ３がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力されるとともに、外部から入力された第６データユニットＤ６が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（３）の先頭に書込まれる。Ｒ／Ｗ制御部４は、ｔ＝６の時点で、行アドレスａ１および列アドレスｂ３のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（３）から出力された第３データユニットＤ３を選択したメモリセルに書込む。
【００３４】
次に、ｔ＝７の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（１）に切替わる。シフトレジスタＳＲＷ（１）内の第１データユニットＤ１および第４データユニットＤ４がクロックＣＬＫに同期して右方向にシフトする。外部から入力された第７データユニットＤ７が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（１）の先頭に書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝７の時点で、行アドレスａ１および列アドレスｂ４のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（１）から出力された「０」を選択したメモリセルに書込む。
【００３５】
次に、ｔ＝８の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（２）に切替わる。シフトレジスタＳＲＷ（２）内の第２データユニットＤ２がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。第５データユニットＤ５がクロックＣＬＫに同期して右方向にシフトするとともに、外部から入力された第８データユニットＤ８が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（２）の先頭に書込まれる。Ｒ／Ｗ制御部４は、ｔ＝８の時点で、行アドレスａ１および列アドレスｂ５のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（２）から出力された第２データユニットＤ２を選択したメモリセルに書込む。
【００３６】
次に、ｔ＝９の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（３）に切替わる。シフトレジスタＳＲＷ（３）内の第６データユニットＤ６がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。外部から入力された第９データユニットＤ９が、クロックＣＬＫに同期してシフトレジスタＳＲＷ（３）の先頭に書込まれる。Ｒ／Ｗ制御部４は、ｔ＝９の時点で、行アドレスａ１および列アドレスｂ６のメモリセルを選択する。Ｒ／Ｗ制御部４は、シフトレジスタＳＲＷ（３）から出力された第６データユニットＤ６を選択したメモリセルに書込む。
【００３７】
次に、ｔ＝１０の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（１）に切替わる。シフトレジスタＳＲＷ（１）内の第１データユニットＤ１がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。第４データユニットＤ４および第７データユニットＤ７がクロックＣＬＫに同期して右方向にシフトするとともに、クロックＣＬＫに同期してシフトレジスタＳＲＷ（１）の先頭に「０」（外部からの入力がないため）が書込まれる。Ｒ／Ｗ制御部４は、ｔ＝１０の時点で、行アドレスａ１および列アドレスｂ７のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（１）から出力された第１データユニットＤ１を選択したメモリセルに書込む。
【００３８】
次に、ｔ＝１１の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（２）に切替わる。シフトレジスタＳＲＷ（２）内の第５データユニットＤ５がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。第８データユニットＤ８がクロックＣＬＫに同期して右方向にシフトするとともに、クロックＣＬＫに同期してシフトレジスタＳＲＷ（２）の先頭に「０」（外部からの入力がないため）が書込まれる。Ｒ／Ｗ制御部４は、ｔ＝１１の時点で、行アドレスａ２および列アドレスｂ１のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（２）から出力された第５データユニットＤ５を選択したメモリセルに書込む。
【００３９】
次に、ｔ＝１２の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（３）に切替わる。シフトレジスタＳＲＷ（３）内の第９データユニットＤ９がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。クロックＣＬＫに同期してシフトレジスタＳＲＷ（３）の先頭に「０」（外部からの入力がないため）が書込まれる。Ｒ／Ｗ制御部４は、ｔ＝１２の時点で、行アドレスａ２および列アドレスｂ２のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（３）から出力された第９データユニットＤ９を選択したメモリセルに書込む。
【００４０】
次に、ｔ＝１３の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（１）に切替わる。シフトレジスタＳＲＷ（１）内の第４データユニットＤ４がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。第７データユニットＤ７がクロックＣＬＫに同期して右方向にシフトするとともに、クロックＣＬＫに同期してシフトレジスタＳＲＷ（１）の先頭に「０」（外部からの入力がないため）が書込まれる。Ｒ／Ｗ制御部４は、ｔ＝１３の時点で、行アドレスａ２および列アドレスｂ３のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（１）から出力された第４データユニットＤ４を選択したメモリセルに書込む。
【００４１】
次に、ｔ＝１４の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（２）に切替わる。シフトレジスタＳＲＷ（２）内の第８データユニットＤ８がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力されるとともに、クロックＣＬＫに同期してシフトレジスタＳＲＷ（２）の先頭に「０」（外部からの入力がないため）が書込まれる。Ｒ／Ｗ制御部４は、ｔ＝１４の時点で、行アドレスａ２および列アドレスｂ４のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（２）から出力された第８データユニットＤ８を選択したメモリセルに書込む。
【００４２】
次に、ｔ＝１５の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（３）に切替わる。クロックＣＬＫに同期してシフトレジスタＳＲＷ（３）の先頭に「０」（外部からの入力がないため）が書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝１５の時点で、行アドレスａ２および列アドレスｂ５のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（３）から出力された「０」を選択したメモリセルに書込む。
【００４３】
次に、ｔ＝１６の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（１）に切替わる。シフトレジスタＳＲＷ（１）内の第７データユニットＤ７がクロックＣＬＫに同期してＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝１６の時点で行アドレスａ２および列アドレスｂ６のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（１）から出力された第７データユニットＤ７を選択したメモリセルに書込む。
【００４４】
次に、ｔ＝１７の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（２）に切替わる。クロックＣＬＫに同期してシフトレジスタＳＲＷ（２）の先頭に「０」（外部からの入力がないため）が書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝１７の時点で、行アドレスａ２および列アドレスｂ７のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（２）から出力された「０」を選択したメモリセルに書込む。
【００４５】
次に、ｔ＝１８の時点で、第１のスイッチ１０の出力先がシフトレジスタＳＲＷ（３）に切替わる。クロックＣＬＫに同期してシフトレジスタＳＲＷ（３）の先頭に「０」（外部からの入力がないため）が書込まれるとともに、「０」がＲ／Ｗ制御部４へ出力される。Ｒ／Ｗ制御部４は、ｔ＝１８の時点で、行アドレスａ３および列アドレスｂ１のメモリセルを選択する。Ｒ／Ｗ制御部４は、図３に示すように、シフトレジスタＳＲＷ（３）から出力された「０」を選択したメモリセルに書込む。
【００４６】
以上説明したように、データの書込み時に、第１データユニットＤ１、第２データユニットＤ２、・・・、第９データユニットＤ９の順序で外部から半導体記憶装置１に入力された場合に、ｔ＝６、８、９、１０、１１、１２、１３、１４、１６の時点で、それぞれ第３データユニットＤ３、第２データユニットＤ２、第６データユニットＤ６、第１データユニットＤ１、第５データユニットＤ５、第９データユニットＤ９、第４データユニットＤ４、第８データユニットＤ８、第７データユニットＤ７がメモリアレイ２に送られる。メモリアレイ２では、送られたデータユニットをアドレス順に記憶する。
【００４７】
これによって、１受信単位の第１パケットについては、第３データユニットＤ３、第２データユニットＤ２、第１データユニットＤ１の順に、メモリアレイ２内の互いに隣接しないアドレスに書込まれる。また、１受信単位の第２パケットについては、第６データユニットＤ６、第５データユニットＤ５、第４データユニットＤ４の順に、メモリアレイ２内の互いに隣接しないアドレスに書込まれる。また、１受信単位の第３パケットについては、第９データユニットＤ９、第８データユニットＤ８、第７データユニットＤ７の順に、メモリアレイ２内の互いに隣接しないアドレスに書込まれる。
【００４８】
したがって、１つのデータユニットの値が振動やノイズによって破壊されたとしても、他のデータユニットの値も同時に破壊される確率を減少させることができるので、誤り訂正によって、破壊されたデータユニットの復元が可能となる。
【００４９】
（読出時の制御）
図４は、読出時の制御を説明するための図である。
【００５０】
図４を参照して、ｔ＝０の時点で、シフトレジスタＳＲＲ（１）、ＳＲＲ（２）、ＳＲＲ（３）の保持する値が「０」にリセットされる。
【００５１】
次に、ｔ＝１の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ１のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された「０」をクロックＣＬＫに同期してシフトレジスタＳＲＲ（１）の先頭に書込む。シフトレジスタＳＲＲ（１）からは「０」が出力される。
【００５２】
次に、ｔ＝２の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ２のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された「０」をクロックＣＬＫに同期してシフトレジスタＳＲＲ（２）の先頭に書込む。シフトレジスタＳＲＲ（２）からは「０」が出力される。
【００５３】
次に、ｔ＝３の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ３のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第３データユニットＤ３をクロックＣＬＫに同期してシフトレジスタＳＲＲ（３）の先頭に書込む。シフトレジスタＳＲＲ（３）からは「０」が出力される。
【００５４】
次に、ｔ＝４の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ４のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された「０」をクロックＣＬＫに同期してシフトレジスタＳＲＲ（１）の先頭に書込む。シフトレジスタＳＲＲ（１）からは「０」が出力される。
【００５５】
次に、ｔ＝５の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ５のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第２データユニットＤ２をクロックＣＬＫに同期してシフトレジスタＳＲＲ（２）の先頭に書込む。シフトレジスタＳＲＲ（２）からは「０」が出力される。
【００５６】
次に、ｔ＝６の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ６のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第６データユニットＤ６をクロックＣＬＫに同期してシフトレジスタＳＲＲ（３）の先頭に書込む。シフトレジスタＳＲＲ（３）に保持された第３データユニットＤ３は、クロックＣＬＫに同期して右方向にシフトするとともに、「０」が出力される。
【００５７】
次に、ｔ＝７の時点で、Ｒ／Ｗ制御部４は、行アドレスａ１および列アドレスｂ７のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第１データユニットＤ１をクロックＣＬＫに同期してシフトレジスタＳＲＲ（１）の先頭に書込む。シフトレジスタＳＲＲ（１）からは「０」が出力される。
【００５８】
次に、ｔ＝８の時点で、Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ１のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第５データユニットＤ５をクロックＣＬＫに同期してシフトレジスタＳＲＲ（２）の先頭に書込む。シフトレジスタＳＲＲ（２）に保持された第２データユニットＤ２は、クロックＣＬＫに同期して右方向にシフトするとともに、「０」が出力される。
【００５９】
次に、ｔ＝９の時点で、Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ２のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第９データユニットＤ９をクロックＣＬＫに同期してシフトレジスタＳＲＲ（３）の先頭に書込む。シフトレジスタＳＲＲ（３）に保持された第６データユニットＤ６および第３データユニットＤ３は、クロックＣＬＫに同期して右方向にシフトするとともに、「０」が出力される。
【００６０】
次に、ｔ＝１０の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（１）に切替わる。Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ３のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第４データユニットＤ４をクロックＣＬＫに同期してシフトレジスタＳＲＲ（１）の先頭に書込む。シフトレジスタＳＲＲ（１）からは、第１データユニットＤ１が出力され、、第１データユニットＤ１は、第２のスイッチ１２を介して外部へ出力される。
【００６１】
次に、ｔ＝１１の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（２）に切替わる。Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ４のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第８データユニットＤ８をクロックＣＬＫに同期してシフトレジスタＳＲＲ（２）の先頭に書込む。シフトレジスタＳＲＲ（２）に保持された第５データユニットＤ５は、クロックＣＬＫに同期して右方向にシフトするとともに、第２データユニットＤ２が出力され、第２データユニットＤ２は、第２のスイッチ１２を介して外部へ出力される。
【００６２】
次に、ｔ＝１２の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（３）に切替わる。Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ５のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された「０」をクロックＣＬＫに同期してシフトレジスタＳＲＲ（３）の先頭に書込む。シフトレジスタＳＲＲ（３）に保持された第９データユニットＤ９および第６データユニットＤ６は、クロックＣＬＫに同期して右方向にシフトするとともに、第３データユニットＤ３が出力され、第３データユニットＤ３は、第２のスイッチ１２を介して外部へ出力される。
【００６３】
次に、ｔ＝１３の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（１）に切替わる。Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ６のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された第７データユニットＤ７をクロックＣＬＫに同期してシフトレジスタＳＲＲ（１）の先頭に書込む。シフトレジスタＳＲＲ（１）からは、第４データユニットＤ４が出力され、第４データユニットＤ４は、第２のスイッチ１２を介して外部へ出力される。
【００６４】
次に、ｔ＝１４の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（２）に切替わる。Ｒ／Ｗ制御部４は、行アドレスａ２および列アドレスｂ７のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された「０」をクロックＣＬＫに同期してシフトレジスタＳＲＲ（２）の先頭に書込む。シフトレジスタＳＲＲ（２）に保持された第８データユニットＤ８は、クロックＣＬＫに同期して右方向にシフトするとともに、第５データユニットＤ５が出力され、第５データユニットＤ５は、第２のスイッチ１２を介して外部へ出力される。
【００６５】
次に、ｔ＝１５の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（３）に切替わる。Ｒ／Ｗ制御部４は、行アドレスａ３および列アドレスｂ１のメモリセルを選択する。Ｒ／Ｗ制御部４は、選択されたメモリセルから出力された「０」をクロックＣＬＫに同期してシフトレジスタＳＲＲ（３）の先頭に書込む。シフトレジスタＳＲＲ（３）に保持された第９データユニットＤ９は、クロックＣＬＫに同期して右方向にシフトするとともに、第６データユニットＤ６が出力され、第６データユニットＤ６は、第２のスイッチ１２を介して外部へ出力される。
【００６６】
次に、ｔ＝１６の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（１）に切替わる。シフトレジスタＳＲＲ（１）に保持された第７データユニットＤ７が出力され、第７データユニットＤ７は、第２のスイッチ１２を介して外部へ出力される。
【００６７】
次に、ｔ＝１７の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（２）に切替わる。シフトレジスタＳＲＲ（２）に保持された第８データユニットＤ８が出力され、第８データユニットＤ８は、第２のスイッチ１２を介して外部へ出力される。
【００６８】
次に、ｔ＝１８の時点で、第２のスイッチ１２の入力先がシフトレジスタＳＲＲ（３）に切替わる。シフトレジスタＳＲＲ（３）に保持された第９データユニットＤ９が出力され、第９データユニットＤ９は、第２のスイッチ１２を介して外部へ出力される。
【００６９】
以上説明したように、図３に示すような配置で第１データユニットＤ１〜第９データユニットＤ９がメモリアレイ２に記憶されている場合に、読み出し時において、書込み時に半導体記憶装置１へ外部から入力された順序と同じ順序で、第１データユニットＤ１、第２データユニット、・・・、第９データユニットの順序で外部へ出力される。
【００７０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７１】
１  半導体記憶装置、２  メモリアレイ、４  Ｒ／Ｗ制御部、６  書込用シフトレジスタ群、８  読出用シフトレジスタ群、１０  第１のスイッチ、１２  第２のスイッチ、２０  制御部、ＳＲＷ（１）〜ＳＲＷ（Ｎ），ＳＲＲ（１）〜ＳＲＲ（Ｎ）  シフトレジスタ。
【図１】
2012195039.tif 000003
【図２】
2012195039.tif 000004
【図３】
2012195039.tif 000005
【図４】
2012195039.tif 000006