(57)【要約】誤り訂正符号化（ＥＣＣ）を使用してＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャおよび技術。特定の設計において、メモリアーキテクチャは、データの記憶域を与えるように動作する第１の記憶ユニット（例えば、ＳＲＡＭ）と、（大容量）のデータの記憶域を与えるように動作する第２の記憶ユニット（例えば、ＮＡＮＤフラッシュ）と、ＡＳＩＣ内に構成され、かつ記憶ユニットに制御信号を与えるように動作するＥＭＩユニットと、記憶ユニットとＥＭＩユニットとの両者に接続されたデータバスとを含む。２つの記憶ユニットは、ＡＳＩＣの外部に構成され、各記憶ユニットは、ＥＭＩユニットが他方の記憶ユニットにアクセスしているときに、他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができる。ＥＭＩユニットは、第２の記憶ユニットへ、またはそこから転送されるデータのブロック符号化を行うように動作するＥＣＣユニットを含む。
2005518600.tif 000002
【特許請求の範囲】
【請求項１】
メモリアーキテクチャであって、
第１のメモリ技術で実行され、データの記憶域を与えるように動作する第１の記憶ユニットと、
第２のメモリ技術で実行され、追加のデータの記憶域を与えるように動作する第２の記憶ユニットと、
第１および第２の記憶ユニットに制御信号を供給するように動作するインターフェイスユニットと、
第１および第２の記憶ユニットとインターフェイスユニットとに接続されたデータバスとを含み、各記憶ユニットが、インターフェイスユニットが他方の記憶ユニットにアクセスするとき、同時に他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができるメモリアーキテクチャ。
【請求項２】
インターフェイスユニットが特定用途向け集積回路（application specific integrated circuit, ASIC）内に構成され、第１および第２の記憶ユニットがＡＳＩＣの外部に構成される請求項１記載のメモリアーキテクチャ。
【請求項３】
第１の記憶ユニットが、揮発性記憶域を与えるように動作する請求項１記載のメモリアーキテクチャ。
【請求項４】
第１の記憶ユニットが、スタティック ランダム アクセス メモリ（static random access memory, SRAM）である請求項１記載のメモリアーキテクチャ。
【請求項５】
第２の記憶ユニットが、不揮発性記憶域を与えるように動作する請求項１記載のメモリアーキテクチャ。
【請求項６】
第２の記憶ユニットが、ＮＡＮＤフラッシュである請求項１記載のメモリアーキテクチャ。
【請求項７】
インターフェイスユニットが、ＮＡＮＤフラッシュ記憶ユニットへ、またはそこから転送されるデータのブロック符号化を行うように動作する誤り訂正符号化（error correction coding, ECC）ユニットを含む請求項６記載のメモリアーキテクチャ。
【請求項８】
インターフェイスユニットが、ＳＲＡＭ記憶ユニットへ、またはそこから転送されるデータにアドレスを与えるように動作するアドレスジェネレータを含む請求項４記載のメモリアーキテクチャ。
【請求項９】
無線通信装置のメモリシステムであって、
データの記憶域を与えるように動作するスタティック ランダム アクセス メモリ（ＳＲＡＭ）と、
追加のデータの記憶域を与えるように動作するＮＡＮＤフラッシュ記憶ユニットと、
特定用途向け集積回路（ＡＳＩＣ）内に構成され、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに制御信号を与えるように動作するインターフェイスユニットと、
ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットとインターフェイスユニットとに接続されたデータバスとを含み、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットがＡＳＩＣの外部に構成され、各記憶ユニットが、インターフェイスユニットが他方の記憶ユニットにアクセスしているとき、同時に他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができるメモリシステム。
【請求項１０】
インターフェイスユニットが、ＮＡＮＤフラッシュ記憶ユニットへ、またはそこから転送されるデータのブロック符号化を行うように動作する誤り訂正符号（ＥＣＣ）ユニットを含む請求項９記載のメモリシステム。
【請求項１１】
ＥＣＣユニットが、ハミング符号に基づいてデータのブロック符号化を行うように動作する請求項１０記載のメモリシステム。
【請求項１２】
インターフェイスユニットが、ＳＲＡＭ記憶ユニットへ、またはそこから転送されるデータにアドレスを与えるように動作するアドレスジェネレータを含む請求項９記載のメモリシステム。
【請求項１３】
インターフェイスユニットが、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニット間のデータ転送のために、ＮＡＮＤフラッシュ記憶ユニットのページアドレスと、ＳＲＡＭ記憶ユニットの開始アドレスとを受信するように動作することができる請求項９記載のメモリシステム。
【請求項１４】
インターフェイスユニットが、制御信号を与えて、開始コマンドの受信に応答して、データ転送を実行するための制御信号を、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットへ供給するように動作する請求項１３記載のメモリシステム。
【請求項１５】
ＳＲＡＭの書き込みイネーブル制御をＮＡＮＤフラッシュの読み出しイネーブル制御に結合し、ＮＡＮＤフラッシュの書き込みイネーブル制御をＳＲＡＭの読み出しイネーブル制御に結合する請求項９記載のメモリシステム。
【請求項１６】
無線通信装置が、無線通信システム内の端末である請求項９記載のメモリシステム。
【請求項１７】
無線通信装置が、無線通信システム内のセルラ電話である請求項９記載のメモリシステム。
【請求項１８】
無線通信装置であって、
データの記憶域を与えるように動作するスタティック ランダム アクセス メモリ（ＳＲＡＭ）記憶ユニットと、追加のデータの記憶域を与えるように動作するＮＡＮＤフラッシュ記憶ユニットとを含む外部メモリ装置と、
ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに制御信号を与えるように動作するインターフェイスユニットを含む特定用途向け集積回路（ＡＳＩＣ）と、
ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットとインターフェイスユニットとに接続されたデータバスとを含み、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットがそれぞれ、インターフェイスユニットが他方の記憶ユニットにアクセスするとき、同時に他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができる無線通信装置。
【請求項１９】
インターフェイスユニットが、ＮＡＮＤフラッシュ記憶ユニットへ、またはそこから転送されるデータのブロック符号化を行うように動作する誤り訂正符号化（ＥＣＣ）ユニットを含む請求項１８記載の装置。
【請求項２０】
インターフェイスユニットが、ＳＲＡＭ記憶ユニットへ、またはそこから転送されるデータにアドレスを与えるように動作するアドレスジェネレータを含む請求項１８記載の装置。
【請求項２１】
インターフェイスユニットが、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニッ間のデータ転送のために、ＮＡＮＤフラッシュ記憶ユニットのページアドレスとＳＲＡＭ記憶ユニットの開始アドレスとを受信し、開始コマンドの受信に応答して、データ転送を実行するための制御信号を、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに供給するように動作することができる請求項１８記載の装置。
【請求項２２】
データの揮発性記憶域を与えるための第１の手段と、
データの不揮発性記憶域を与えるための第２の手段と、
第１の手段と第２の手段との間でデータ転送を実行するための制御信号を与えるための第３の手段と、
第１、第２、および第３の手段を相互に接続するための手段とを含み、第３の手段が特定用途向け集積回路（ＡＳＩＣ）内に構成され、第１および第２の手段がＡＳＩＣの外部に構成され、第１および第２の手段の各々が、第３の手段が他方の手段へアクセスしたとき、同時に他方の手段から相互接続手段を介してデータを記憶するように動作することができる機器。
【請求項２３】
第２の手段へ、またはそこから転送されるデータのブロック符号化を行うための第４の手段をさらに含む請求項２２記載の機器。
【請求項２４】
第１の手段へ、またはそこから転送されるデータにアドレスを与えるための第５の手段をさらに含む請求項２２記載の機器。
【請求項２５】
無線通信装置内の２つの記憶ユニット間でデータを転送するための方法であって、
ＳＲＡＭ記憶ユニットの開始アドレスを受信することと、
ＮＡＮＤフラッシュ記憶ユニットのページアドレスを受信することと、
開始コマンドの受信に応答して、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに制御信号を与えることと、
ＳＲＡＭまたはＮＡＮＤフラッシュの記憶ユニットの何れかであるソース記憶ユニットから、データバスを介してデータを検索することと、
検索されたデータをデータバスを介して、ソース記憶ユニットでない他方の装置である宛先記憶ユニットへ書き込むことが、ソース記憶ユニットからデータを読み出すことと同時に行われることとを含む方法。
【請求項２６】
ＮＡＮＤフラッシュ記憶ユニットへ、またはそこから転送される各データページのための誤り訂正符号（ＥＣＣ）値を生成することをさらに含む請求項２５記載の方法。
【請求項２７】
データページをＮＡＮＤフラッシュ記憶ユニットからＳＲＡＭ記憶ユニットへ転送する方法であって、
ＮＡＮＤフラッシュから検索したデータページのための、ＮＡＮＤフラッシュ記憶ユニット内に記憶されているＥＣＣ値を検索することと、
検索されたデータページにおいて、検索されたＥＣＣ値と生成されたＥＣＣ値とを比較し、データページ内に誤りがあるかどうかを判断することとをさらに含む請求項２６記載の方法。
【請求項２８】
検索されたデータページ内に誤りがあるときは、
検索されたデータページ内の誤りバイトを識別することと、
検索されたＥＣＣ値に基づいて誤りバイトを訂正することと、
訂正されたバイトをＳＲＡＭ記憶ユニットに書き込むこととをさらに含む請求項２７記載の方法。
【請求項２９】
データページをＳＲＡＭ記憶ユニットからＮＡＮＤフラッシュ記憶ユニットへ転送する方法であって、
そのページのために生成されたＥＣＣ値をＮＡＮＤフラッシュ記憶ユニットへ書き込むことをさらに含む請求項２６記載の方法。
【請求項３０】
ディジタル信号処理装置（digital signal processing device, DSPD）に通信上で接続されるメモリであって、ＤＳＰＤが、ディジタル情報を解釈して、
ＳＲＡＭ記憶ユニットの開始アドレスを受信し、
ＮＡＮＤフラッシュ記憶ユニットのページアドレスを受信し、
ページ転送動作の開始コマンドを受信し、
開始コマンドに応答して、ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに制御信号を供給し、
ＳＲＡＭ記憶ユニットまたはＮＡＮＤフラッシュ記憶ユニットの何れかであるソース記憶ユニットから、データバスを介してデータを検索し、
検索されたデータをデータバスを介して、ソース記憶ユニットでない他方の記憶ユニットである宛先記憶ユニットへ書き込むことを、ソース記憶ユニットからデータを読み出すことと同時に行なうことができるメモリ。
【請求項３１】
ＤＳＰＤが、ディジタル情報を解釈して、
ＮＡＮＤフラッシュ記憶ユニットへ、またはそこから転送される各データページの誤り訂正符号（ＥＣＣ）値を生成することもできる請求項３０記載のメモリ。
【請求項３２】
データページが、ＮＡＮＤフラッシュ記憶ユニットからＳＲＡＭ記憶ユニットへ転送され、ＤＳＰＤが、ディジタル情報を解釈して、
ＮＡＮＤフラッシュから検索されたデータページのための、ＮＡＮＤフラッシュ記憶ユニット内に記憶されているＥＣＣ値を検索し、
検索されたデータページにおいて、検索されたＥＣＣ値と生成されたＥＣＣ値とを比較して、データページ内に誤りがあるかどうかを判断することもできる請求項３１記載のメモリ。
【請求項３３】
ＤＳＰＤが、ディジタル情報を解釈して、
検索されたデータページ内に誤りがあるときは、
検索されたデータページ内の誤りバイトを識別し、
検索されたＥＣＣ値に基づいて誤りバイトを訂正し、
訂正されたバイトをＳＲＡＭ記憶ユニットへ書き込むこともできる請求項３１記載のメモリ。
【請求項３４】
データページをＳＲＡＭ記憶ユニットからＮＡＮＤフラッシュ記憶ユニットへ転送し、ＤＳＰＤが、ディジタル情報を解釈して、
データページのために生成されたＥＣＣ値を、ＮＡＮＤフラッシュ記憶ユニットへ書き込むこともできる請求項３１記載のメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概ね、電子回路、とくに、誤り訂正符号化を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャおよび技術に関する。
【背景技術】
【０００２】
より新しい世代の無線通信装置（例えば、端末、ハンドセット、およびセルラ電話）は、音声およびパケットデータのような、種々のタイプの通信を提供することができる。これらの装置のいくつかは、拡張機能を備えて設計することもでき、パーソナルディジタルアシスタント（personal digital assistant, PDA）、ウエブ端末、計算機、等として動作することもできる。これらの装置のより新しい設計は、必要な機能および特徴の全てを備えるが、同時に、低減したサイズ、コスト、および電力消費のような他の設計上の制約にしたがう必要がある。
【０００３】
無線通信装置が、より複雑になり、かつより多くの機能および特徴を備えることが要求されるので、より大きい計算機能力とより大きいメモリとが要求されるのは必至である。一般に、音声通信またはデータ通信、あるいはこの両者並びに他の機能および特徴を支援するのに使用されるデータおよびプログラムコードの記憶域を与えるのに、大きいメモリが必要とされる。これらの装置には、種々のタイプのメモリ、例えば、スタティック ランダム アクセス メモリ（static random access memory, SRAM）、ダイナミックＲＡＭ（dynamic RAM, DRAM）、およびフラッシュが使用される。
【０００４】
ＳＲＡＭおよびＤＲＡＭは、揮発性メモリであり、電源を落とすと、その中に記憶されているデータは失われる。大抵のプロセッサが、データおよびコードのメモリにランダムにアクセスできるようにプログラムされているように、ＳＲＡＭおよびＤＲＡＭへもランダムにアクセスすることができる。したがって、ＳＲＡＭまたはＤＲＡＭは、一般に、多くの無線通信装置における主実行時記憶ユニットとして使用される。
【０００５】
フラッシュは、不揮発性メモリであり、電源を落とした後でも、その中に記憶されているデータを維持することができる。ＮＡＮＤフラッシュは、フラッシュの１形態であって、高密度設計であり、他のタイプのメモリよりも、ある特定の長所をもつ。例えば、記憶容量が大きい（例えば、１ギガビット以上）、好適速度での連続アクセス、およびコストが安いことである。しかしながら、ＮＡＮＤフラッシュには、いくつかの本質的な欠点もある。例えば、ランダムなアクセスに対して性能が劣悪であること、およびＮＡＮＤフラッシュの動作寿命においてビット誤りをより起こし易いことである。とりわけ、ＮＡＮＤフラッシュは、通常、ページ単位で、一度に１ページずつアクセスされ、各ページは特定のサイズ（例えば、５１２バイト）をもつ。
【０００６】
通信装置におけるメモリのコストは、より一層著しく高くなるので、ＮＡＮＤフラッシュは、これらの装置の大容量記憶ユニットとして使用するための好適な候補である。しかしながら、ＮＡＮＤフラッシュの構造は、ランダムアクセスには適していないので、プログラムコードは、ＮＡＮＤフラッシュから直接に実行できない。その代りに、ＳＲＡＭは、プロセッサがランダムにアクセスするのに必要な、データおよびプログラムコードのための中間記憶域として使用される。したがって、ＳＲＡＭおよびＮＡＮＤフラッシュの両者を組込んだメモリアーキテクチャは、記憶容量が大きく、コストが削減され、かつランダムにアクセスできる。
【０００７】
従来は、プロセッサが、ＮＡＮＤフラッシュからのデータの読み出し、およびそこへの書き込みに過剰に関与し、制御する必要があった。これは、プロセッサを拘束し、プロセッサが他の機能を実行するのを妨げ、したがって通信装置の全体的な性能を劣化させることがある。さらに加えて、ＮＡＮＤフラッシュは、ビット誤りをより起こし易いので、機構はＮＡＮＤフラッシュからデータをロードするか、またはそこへデータをロードするときに、データの保全性を保証しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、この技術において、ＮＡＮＤフラッシュのデータ転送を向上させ、さらに加えて、データの保全性を保証することができるメモリアーキテクチャおよび技術が必要とされている。
【課題を解決するための手段】
【０００９】
１つの実施形態では、無線通信装置（例えば、端末、セルラ電話、等）に使用するためのメモリアーキテクチャを提供する。メモリアーキテクチャは、（１）データの記憶域を与えるように動作する第１の記憶ユニット（例えば、ＳＲＡＭ）、（２）（大容量）のデータの記憶域を与えるように動作する第２の記憶ユニット（例えば、ＮＡＮＤフラッシュ）、（３）ＡＳＩＣ内に構成され、かつ２つの記憶ユニットに制御信号を与えるように動作するＥＭＩユニット、並びに（４）第１および第２の記憶ユニットとＥＭＩユニットとに接続されたデータバスを含む。第１および第２の記憶ユニットはＡＳＩＣの外部に構成され、各記憶ユニットは、ＥＭＩユニットが他方の記憶ユニットにアクセスしているときに、他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができる。ＥＭＩユニットはＥＣＣユニットを含み、ＥＣＣユニットは、第２の（ＮＡＮＤフラッシュ）記憶ユニットから検索された、またはそこへ記憶されたデータのブロック符号化を行うように動作する。ＥＭＩユニットは、第１の（ＳＲＡＭ）記憶ユニットから検索された、またはそこへ記憶されたデータにアドレスを与えるように動作するアドレスジェネレータも含む。
【００１０】
別の実施形態では、無線通信装置のメモリシステムを提供する。メモリシステムは、（１）データの記憶域を与えるように動作するＳＲＡＭ記憶ユニット、（２）追加のデータの記憶域を与えるように動作するＮＡＮＤフラッシュ記憶ユニット、（３）ＡＳＩＣ内に構成され、かつＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに制御信号を与えるように動作するインターフェイスユニット、並びに（４）ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットとインターフェイスユニットとに接続されたデータバスを含む。ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットは、ＡＳＩＣの外部に記憶され、かつ各記憶ユニットは、インターフェイスユニットが他方の記憶ユニットにアクセスしているときに、同時に他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができる。
【００１１】
さらに別の実施形態では、無線通信装置であって、（１）ＳＲＡＭ記憶ユニットおよびＮＡＮＤフラッシュ記憶ユニットを含む外部メモリ装置、（２）ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに制御信号を与えるように動作するインターフェイスユニットを含むＡＳＩＣ、並びに（３）ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットとインターフェイスユニットとに接続されたデータバスを含む無線通信装置を提供する。ＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットの各々は、インターフェイスユニットが他方の記憶ユニットにアクセスしているときに、同時に他方の記憶ユニットからデータバスを介してデータを記憶するように動作することができる。
【００１２】
さらに別の実施形態では、無線通信装置において２つの記憶ユニット間でデータを転送するための方法を提供する。最初に、ＳＲＡＭ記憶ユニットの開始アドレスおよびＮＡＮＤフラッシュ記憶ユニットのページアドレスが受信される。その後で、開始コマンドの受信に応答して、制御信号がＳＲＡＭおよびＮＡＮＤフラッシュの記憶ユニットに供給される。その後で、データは、“ソース”記憶ユニット、すなわちＳＲＡＭまたはＮＡＮＤフラッシュの記憶ユニットの何れかから、データバスを介して検索される。ソース記憶ユニットからデータが読み出されるのと同時に、検索されたデータは、データバスを介して他方の記憶ユニットである“宛先”記憶ユニットに書き込まれる。
【００１３】
本発明の種々の態様および実施形態は、別途詳しく記載する。本発明は、別途詳しく記載するように、メモリアーキテクチャ、受信機ユニット、無線通信装置、方法、並びに本発明の種々の態様、実施形態、および特徴を実現する他の装置および要素も提供する。
【００１４】
本発明の特徴、性質、および長所は、図面を取り入れるとき、別途詳しく記載される詳細な説明から、同じ参照符号が全体的に対応して同定され、より明らかになるであろう。
【発明を実施するための最良の形態】
【００１５】
ここでは、誤り訂正符号化（error correction coding, ECC）を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援することができるメモリアーキテクチャおよび技術を提供する。１つの設計では、１本のデータバスをＳＲＡＭおよびＮＡＮＤフラッシュの両者に与えて、これらの２つの記憶ユニットを特定用途向け集積回路（application specific integrated circuit, ASIC）へ相互接続し、ＡＳＩＣにおいて、これらの記憶ユニットに記憶されているデータが使用される。１本のデータバスの設計では、一方の記憶ユニット（ＳＲＡＭまたはＮＡＮＤフラッシュ）から検索されたデータを、同時に他方の記憶ユニットへ書き込むことができる。
【００１６】
ＡＳＩＣ内の外部メモリインターフェイス（external memory interface, EMI）ユニットは、ＳＲＡＭとＮＡＮＤフラッシュとの間のデータ転送を実行するのに必要とされる種々の制御信号を供給する。これらの制御信号は、（１）ＮＡＮＤフラッシュのページアドレス、（２）ＳＲＡＭの開始アドレス、および（３）開始コマンドに基づいて、ＥＭＩユニットによって自動的に生成される。したがって、データ転送を要求している装置が、２つのユニット間の実際のデータ転送を監視する必要はなくなる。ＳＲＡＭおよびＮＡＮＤフラッシュは、所与の時間に、相補的な機能（読み出しおよび書き込み）を行うように動作するので、別途記載するように、ＳＲＡＭの書き込みイネーブル（ＷＥ ｎ）および読み出しイネーブル（ＲＥ ｎ）は、ＮＡＮＤフラッシュのＷＥ ｎおよびＲＥ ｎと効果的にスワップされる。
【００１７】
さらに加えて、ＥＣＣユニットは、ＥＭＩユニット内に含まれ、転送された各データページごとに誤り訂正符号化を行う。とくに、ＥＣＣユニットブロックは、ＮＡＮＤフラッシュに書き込まれた各データページを符号化し、ＮＡＮＤフラッシュから読み出された各データページ内の誤りを検出して訂正する。
【００１８】
図１は、無線通信装置100の特定の実施形態のブロック図であり、無線通信装置100は、本発明の種々の態様および実施形態が実行される。無線通信装置100は、端末、セルラ電話、ハンドセット、モデム、または他の装置または設計であってもよい。図１に示されている実施形態では、装置100は、受信経路および送信経路を介して双方向通信を行うことができる。
【００１９】
受信経路では、１つ以上の送信信号が、アンテナ112によって受信され、デュープレクサ（duplexer, D）114を通ってルート設定され、受信機（receiver, RCVR）116へ供給される。受信機116は、受信信号を調整し（例えば、フィルターにかけ、増幅し、ダウンコンバートする）、調整された信号をディジタル形式にして、データサンプルを供給する。データサンプルは、さらに処理するために、特定用途向け集積回路（ＡＳＩＣ）120へ供給される。
【００２０】
ＡＳＩＣ120内において、復調器（demodulator, DEMOD）122は、データサンプルを受信して処理し、復調されたデータを供給する。ＣＤＭＡシステムでは、復調器122による処理は、（１）適切なサンプリングのタイミングで、データサンプルをサンプリングし直すこと、（２）サンプリングし直されたデータを、疑似ランダム雑音（pseudo-random noise, PN）系列またはデスクランブリング符号で逆拡散すること、（３）逆拡散されたデータをチャネル化符号（例えば、ウォルシュ符号またはＯＶＳＦ符号）でデカバーすること、および（４）デカバーされたデータを、回復されたパイロットでデータ復調し、復調されたデータを供給することを含む。
【００２１】
その後で、デインターリーバ124は、デインターリービング方式にしたがって、復調されたデータをデインターリーブする。デインターリービング方式は、送信機システムにおいて使用されるインターリービング方式と相補的である。その後で、復号器126は、復号方式にしたがって、各デインターリーブされたデータフレームまたはパケットを復号する。復号方式は、送信システムにおいて使用される符号化方式と相補的である。例えば、送信機システムにおいて、それぞれ畳込み、ターボ、および／またはブロック符号化が行われるときは、ビタビ、ターボ、および／またはブロック復号化が行われる。復号されたデータは、ＣＤＭＡシステムにおいて一般的に使用されている巡回冗長検査（cyclic redundancy check, CRC）符号に基づいて、フレーム誤りについても検査される。
【００２２】
データ通信では、復号されたデータは、主制御器130に供給されるか、記憶ユニット（例えば、内部メモリ132または外部メモリ160、あるいはこの両者）に記憶されるか、あるいはこの両者が行われる。音声通信では、復号されたデータは、ボコーダ128によって逆圧縮され、音声データが供給される。その後で、追加の回路（簡潔化のために、図１には示されていない）が音声データを調節して、出力装置（例えば、スピーカ）に適した音声信号を供給する。
【００２３】
送信経路では、無線通信装置100から送られたデータは、処理のために符号器142へ供給される。データ通信では、符号器142への入力データは、主制御器130または記憶ユニット（例えば、内部メモリ132または外部メモリ160、あるいはこの両者）によって供給される。音声通信では、入力装置（例えば、マイクロフォン）を介して受信された音声信号は、事前調整回路（簡潔化のために図１には示されていない）によって調整され、ディジタル形式にされ、音声データが供給される。その後で、ボコーダ140は、音声データを圧縮して、符号器142へ入力データを供給する。
【００２４】
符号器142は、ＣＲＣ、畳込み、ターボ、および／またはブロック符号化の組み合わせを含む特定の符号化方式にしたがって、受信データを符号化する。符号化されたデータは、インターリーバ144による特定のインターリービング方式にしたがってインターリーブされ、インターリーブされたデータは、変調器（modulator, MOD）146によってさらに処理される。ＣＤＭＡシステムでは、変調器146による処理は、チャネル化符号でデータをカバーすること、およびカバーされたデータをＰＮ系列またはスクランブリング符号で拡散することを含む。被変調データは、送信機（transmitter, TMTR）148によって調整され（例えば、フィルターにかけられ、増幅され、アップコンバートされる）、被変調信号が供給され、被変調信号は、デュープレクサ114を通ってルート設定され、アンテナ112を介して送信される。
【００２５】
主制御器130は、音声／データ通信のための種々の処理機能を行い、さらに加えて、ＡＳＩＣ120および無線通信装置100内の種々の処理ユニットの動作を命令するのに使用される。主制御器130は、縮小命令セットコンピューティング（reduced instruction set computing, RISC）プロセッサ、複雑命令セットコンピューティング（complex instruction set computing, CISC）プロセッサ、等のような種々の設計に基づいて実現される。
【００２６】
図１に示されている特定の実施形態において、システムバス136は、ＡＳＩＣ120内の種々の処理ユニットを相互接続する。内部（すなわち、ＡＳＩＣ120の“内部”）メモリ132は、ＡＳＩＣ120内の種々の処理ユニットによって必要とされるデータおよびプログラムコードを記憶するのに使用される。外部メモリ160は、ＡＳＩＣ120内の種々の処理ユニット（例えば、主制御器130）によって必要とされるデータおよびプログラムコードのための、より大きい記憶域を与えるのに使用される。外部メモリインターフェイス（external memory interface, EMI）ユニット150は、システムバス136を介して、外部メモリ160と、ＡＳＩＣ120内の他の処理ユニットとの間のインターフェイスを与える。
【００２７】
無線通信装置100は、種々の機能および特徴を与えるように設計され、その一部または全ては、ＡＳＩＣ120内の種々の処理ユニットによって与えられる。装置100は、他の機能（例えば、ＰＤＡ機能、ウエブ機能、等）を与えるように設計された他のＡＳＩＣ、プロセッサ、および集積回路（integrated circuit, IC）チップも含んでもよい。したがって、ＡＳＩＣ120は、これらの他のＡＳＩＣおよびチップと、いくつかの他のインターフェイスユニットおよび／またはＩ／Ｏ信号およびバス（図１には簡潔化のために示されいてない）を介して通信するように設計される。
【００２８】
図１に示されている実施形態では、いくつかの記憶ユニットが、無線通信装置100内に与えられ、必要な機能および特徴を与えるのに必要とされるデータおよびプログラムコードを記憶する。これらの記憶ユニットは、内部メモリ132および外部メモリ160を含む。概して、内部メモリ132は、より高速のメモリであり、迅速なアクセスが要求されるデータおよびプログラムコード（例えば、音声またはデータ呼の実時間処理に使用されるデータおよびコード）を記憶する。しかしながら、サイズおよびコストの問題のために、内部メモリ132は、一般に、サイズが比較的に小さく、必要なデータおよびコードの全てを記憶するには容量が不十分である。内部メモリ132は、スタティック ランダム アクセス メモリ（static random access memory, SRAM）、フラッシュ、および／または他のタイプのメモリで実現される。
【００２９】
外部メモリ160は、ＡＳＩＣ120の外部に構成され、ＡＳＩＣ内の処理ユニットのための追加の（大容量の）記憶域を与える。１つの実施形態において、外部メモリ160は、ＳＲＡＭ162およびフラッシュ164を含み、１つ以上のシリコンダイ上に構成され、かつ１つ以上のＩＣパッケージに実装される。外部メモリ160は、市販の製品であるか、またはカスタムＩＣとして実現される。外部メモリ160は、非実時間の機能で使用するためのデータ、または内部メモリ132へ、もしくはそこから転送されるデータ、あるいはこの両者のような、より長いアクセス時間を許容できるデータおよびプログラムコードを記憶する。外部メモリ160は、外部メモリインターフェイスユニット150を介して、ＡＳＩＣ120とインターフェイスする。以下では、簡潔化のために、データおよびプログラムコードをまとめて、単に“データ”と呼ぶ。
【００３０】
図２Ａは、誤り訂正符号化（ＥＣＣ）を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャ200ａの実施形態のブロック図である。メモリアーキテクチャ200ａにおいて、外部メモリインターフェイス（ＥＭＩ）装置150ａはＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａに接続されている。ＥＭＩユニット150ａは、図１のＥＭＩユニット150の１つの実施形態であり、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａは、図１の外部メモリ160内のＳＲＡＭ162およびフラッシュ164の１つの実施形態である。ＳＲＡＭ162ａには、他のタイプの揮発性メモリ、例えば、非同期ＳＲＡＭ、非同期ページ読み出しＳＲＡＭ、疑似ＳＲＡＭ、ＤＲＡＭ、疑似ＲＡＭ（非ページおよびページに分けられた）、ＳＤＲＡＭ、バーストＲＡＭ、等も使用される。疑似ＲＡＭには、少なくとも２つのタイプ、すなわち（１）そのインターフェイスが非同期ＳＲＡＭに似ているタイプと、（２）転送間でＣＳ／ＷＲ ｎ／ＲＤ ｎのピンのトグリングを必要とするタイプとがある。両方のタイプの疑似ＲＡＭは、疑似ＲＡＭへの適切なインターフェイスをもつメモリ制御器によって支援される。ＳＤＲＡＭおよびバーストＲＡＭは、ＮＡＮＤからＳＲＡＭへデータ転送するための必要な論理をもつメモリ制御器によって支援される。ＮＡＮＤフラッシュ164ａにも、他のタイプの非揮発性メモリが使用され、これは本発明の技術的範囲内である。
【００３１】
図２Ａに示されているように、１本のデータバス212は、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａの両者を接続し、さらに、これらの２つの記憶ユニットをＡＳＩＣ120のシステムバス136へ相互接続する。データバス212は、任意の幅（例えば、８ビット、１６ビット、等）で設計され、この幅は、一般に、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａの入力／出力（input/output, I/O）のサイズに依存する。例えば、マルチバイトのデータＩ／Ｏは、ＳＲＡＭのＵＢ ｎおよびＬＢ ｎの信号を適切に制御することによって支援される。
【００３２】
ＥＭＩユニット150ａは、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａに種々の制御信号を供給する。１つの実施形態において、ＥＭＩユニット150ａは、直接メモリスワッピング（direct memory swapping, DMS）制御器220、アドレスジェネレータ222、および誤り訂正符号化（ＥＣＣ）装置224を含む。
【００３３】
１つの実施形態において、表１は、ＤＭＳ制御器220がＳＲＡＭ162ａへ供給する制御信号を記載している。
【００３４】
【表１】
2005518600.tif 000003
アドレスジェネレータ222は、ＤＭＳ制御器220の命令のもとで、ＳＲＡＭ162ａにアドレスを与える。
１つの実施形態において、表２は、ＤＭＳ制御器220がＮＡＮＤフラッシュ164ａへ供給する制御信号を記載している。
【００３５】
【表２】
2005518600.tif 000004
ＤＭＳ制御器220は、また、ＮＡＮＤフラッシュ164ａから、ＮＡＮＤフラッシュがビジー（論理ロー）であるか、またはレディー（論理ハイ）であるかを示すレディー信号を受信する。レディー信号が論理ローであることによって示されるように、ＮＡＮＤフラッシュがビジーであるときは、制御信号はＮＡＮＤフラッシュへ供給されない。
【００３６】
表１および２に記載されている制御信号の詳細な記述は、市販のＮＡＮＤフラッシュおよびＳＲＡＭの装置のためのデータシートから得られる。
図２Ａに示されているように、１つの制御信号は、ＳＲＡＭ162ａのＷＥ ｎピンおよびＮＡＮＤフラッシュ164ａのＲＥ ｎピンの両者に供給され、別の１つの制御信号は、ＳＲＡＭ162ａのＲＥ ｎピンおよびＮＡＮＤフラッシュ164ａのＷＥ ｎピンの両者に供給される。したがって、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａのＷＥ ｎおよびＲＥ ｎの信号が、効率的に交換される。
【００３７】
図２Ｂは、同じく、誤り訂正符号化を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャ200ｂの実施形態のブロック図である。この実施形態において、ＡＳＩＣ120ｂ（図１のＡＳＩＣ120の１つの実施形態である）内で、主制御器130は専用ＲＡＭ132ａと関係付けられ、同じく、ディジタル信号プロセッサ（digital signal processor, DSP）180は専用ＲＡＭ132ｂと関係付けられている。ＤＳＰ180は、ＡＳＩＣ120内の種々の処理ユニット、例えば、復調器122、復号器126、符号器142、変調器146、等を実行するのに使用される。ＲＡＭ132ａおよび132ｂは、図１の内部メモリ132の一部である。
【００３８】
主制御器130およびＤＳＰ180は、ＥＭＩユニット150ｂ（図１のＥＭＩユニット150の別の実施形態である）とインターフェイスしている。とくに、主制御器130は、バス138ａを介して、ＤＭＳ制御器220および外部バスインターフェイス（external bus interface, EBI）装置230とインターフェイスし、ＤＳＰ180は、バス138ｂを介して、ＤＭＳ制御器220およびＥＢＩユニット230とインターフェイスしている。ＲＡＭ132ａおよび132ｂは、互いに直接にインターフェイスし、かつ直接メモリアクセス（direct memory access, DMA）バス214を介してＤＭＳ制御器220とインターフェイスしている。ＤＭＳ制御器220は、ＥＣＣユニット224を含み、ＥＣＣユニット224は、バス138ａおよび138ｂ上でのデータ転送に誤り訂正機能を与えるのに使用される。
【００３９】
メモリアーキテクチャ200ｂでは、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａからのデータを、ＥＢＩユニット230を介して、主制御器130およびＤＳＰ180へより直接的に供給することができる。
図２Ｃは、同じく、誤り訂正符号化を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャ200ｃの実施形態のブロック図である。この実施形態において、ＡＳＩＣ120ｃ（図１のＡＳＩＣ120の別の実施形態である）内では、主制御器130は、専用ＲＡＭ132ａと関係付けられているが、ＤＳＰ180は専用ＲＡＭと関係付けられていない。
【００４０】
主制御器130およびＤＳＰ180は、ＥＭＩユニット150ｃ（図１のＥＭＩユニットのさらに別の実施形態である）とインターフェイスしている。とくに、主制御器130は、ＤＭＳ制御器220およびＥＢＩユニット230とインターフェイスし、ＤＳＰ180は、ＥＢＩユニット230とインターフェイスしている。ＲＡＭ132ａはＤＭＳ制御器220と直接にインターフェイスし、ＤＭＳ制御器220はＥＢＩユニット230ともインターフェイスしている。ＤＭＳ制御器220は、ＥＣＣユニット224を含み、ＥＣＣユニット224は、バス138ａおよび138ｂ上でのデータ転送に誤り訂正機能を与えるのに使用される。
【００４１】
メモリアーキテクチャ200ｃでは、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａからのデータを、ＥＢＩユニット230を介して、ＤＳＰ180へより直接に供給することができ、さらに加えて、ＲＡＭ132ａと外部記憶ユニットとの間でデータを転送することもできる。ある特定の設計では、ＡＳＩＣは１つの主制御器および多数のＤＳＰを含む。したがって、メモリアーキテクチャ200ｃでは、各ＤＳＰは、ＳＲＡＭおよびＮＡＮＤフラッシュ内に記憶されているデータにより容易にアクセスすることができる。
【００４２】
メモリ構造200ｂおよび200ｃは、ＳＲＡＭ162ａとＮＡＮＤフラッシュ164ａとの間でデータを転送するための効率的な機構を与える。ＮＡＮＤフラッシュは、パーソナルコンピュータ（personal computer, PC）のハードディスクと同様に、端末（例えば、移動体）のための大容量不揮発性記憶域として使用され、端末のための大容量のデータを記憶する。ＳＲＡＭは、処理されるデータを記憶するのに使用される。メモリ構造200ｂおよび200ｃは、（ＰＣのハードディスクとＰＣのメモリとの間のデータ転送に類似して）ＮＡＮＤフラッシュとＳＲＡＭとの間の広いバンド幅のデータ転送を行う。さらに加えて、ＮＡＮＤフラッシュとＳＲＡＭとの間のデータ転送は、プロセッサからの関与なしに、背景で行われ、したがってプロセッサは、データ転送と同時に他のタスクを行うことができる。
【００４３】
メモリアーキテクチャ200ａ、200ｂ、および200ｃは、いくつかの動作モード（例えば、標準モード、“フラッシュからＳＲＡＭへ”のモード、および“ＳＲＡＭからフラッシュへ”のモード）を支援する。標準モードでは、データが標準でＳＲＡＭ162ａから読み出されるか、またはそこへ書き込まれ、ＮＡＮＤフラッシュ164ａは、（ＮＡＮＤフラッシュのＣＳ ｎピンを論理ハイにすることによって）ディスエーブルされる。標準モードでは、ＡＳＩＣ120とＳＲＡＭ162ａとの間のメモリインターフェイスは、ＮＡＮＤフラッシュ164ａが存在していないかのように働く。フラッシュからＳＲＡＭへのモードでは、データは、ＮＡＮＤフラッシュ164ａからデータバス212を介して読み出され、同時に、検索されたデータは、同じデータバスを介してＳＲＡＭ162ａへ書き込まれる。このようにして、ＮＡＮＤフラッシュ164ａからのデータは、ＳＲＡＭ162ａへ直接に書き込まれる。ＳＲＡＭからフラッシュへのモードでは、データは、ＳＲＡＭ162ａからデータバス212を介して読み出され、同時に、検索されたデータは、同じデータバスを介してＮＡＮＤフラッシュ164ａへ書き込まれる。このようにして、ＳＲＡＭ162ａがアクセスされるとき、ＳＲＡＭからのデータはＮＡＮＤフラッシュへ直接に書き込まれる。フラッシュからＳＲＡＭへのモードおよびＳＲＡＭからフラッシュへのモードは、ＳＲＡＭ162ａとＮＡＮＤフラッシュ164ａとの間の高速データスワッピングを支援し、別途詳しく記載する。
【００４４】
１つの実施形態において、ＳＲＡＭ162ａおよびＮＡＮＤフラッシュ164ａのための読み出しおよび書き込み動作は、主制御器130、ＤＳＰ180、または他の処理ユニットから受信したコマンドに基づいて、ＥＭＩユニット150によって制御される。ＥＭＩユニット150によって操作される外部記憶ユニットが、要求している装置（例えば、主制御器130）の関与なしに、読み出しおよび書き込み動作を行うことによって、要求している装置は、このとき、外部メモリのアクセス動作を監視する必要がない代わりに、他のタスクを自由に実行するので、システムの性能は向上する。
【００４５】
図３は、ＮＡＮＤフラッシュ164ａの例示的な構造を模式的に示す図である。ＮＡＮＤフラッシュ164ａは、ＮＢ個の同サイズのブロックへ分割される。各ブロックは、ＮＰの同サイズのページを含み、各ページは、ＮＤバイトのデータ領域とＮＳバイトの予備領域とを含む。特定の例として、ＮＡＮＤフラッシュ164ａは、ＮＢ＝４０９６ブロックを含み、各ブロックはＮＰ＝３２ページを含み、各ページはＮＤ＝５１２データバイトおよびＮＳ＝１６予備バイトを含む。このＮＡＮＤフラッシュは、５１２メガビットまたは６４メガバイトの記憶容量をもつ。装置100内では、より大きいまたはより小さいサイズのＮＡＮＤフラッシュも使用され、これは本発明の技術的範囲に含まれる。一般に、ある特定のフラッシュ動作（例えば、書き込みおよび読み出し）は、ページ単位で行われ、一方で、ある特定の他のフラッシュ動作（例えば、消去）は、ブロック単位で行われる。
【００４６】
誤り訂正符号化
既に記載したように、ＮＡＮＤフラッシュは、その動作寿命においてビット誤りをより起こし易い。１つの実施形態では、ＮＡＮＤフラッシュのデータの完全性は、ＮＡＮＤフラッシュへ書き込まれるか、またはそこから読み出される各データページごとにブロック符号化を行うことによって保証される。各ページは、特定のサイズ（例えば、ＮＤ＝５１２バイト）をもつように定められ、さらに加えて、特定のサイズの各予備領域（例えば、ＮＳ＝１６バイト）と関係付けられる。この予備領域は、データページのための誤り訂正情報を記憶するのに使用される。
【００４７】
図２Ａを再び参照すると、フラッシュ書き込み動作において（例えば、ＳＲＡＭからフラッシュへのモードで動作するとき）、特定のページの各データバイトが、データバス212を介して、ＮＡＮＤフラッシュ164ａへ書き込まれるとき、ＥＣＣユニット224は、データバスからデータバイトを受信し、データバイトを使用して、使用するために選択した特定のブロック符号にしたがってＥＣＣ値を生成する。そのページの全ＮＤデータバイトがＮＡＮＤフラッシュ164ａへ書き込まれた後で、ＥＣＣユニット224によって生成されたＥＣＣ値は、ページの予備領域へ書き込まれる。このようにして、ＮＡＮＤフラッシュ164ａ内の各データページは、各ＥＣＣ値と関係付けられ、各ＥＣＣ値は、後で、ページ内の誤りバイトを検出して訂正するのに使用される。各ページにおいて、特定の最大数の誤りバイトは、関係付けられたＥＣＣ値に基づいて訂正される。なお、最大数は、選択したブロック符号の誤り訂正能力によって判断される。
【００４８】
フラッシュ読み出し動作において（例えば、フラッシュからＳＲＡＭへのモードで動作するとき）、特定のページの各データバイトが、ＮＡＮＤフラッシュ164ａからデータバス212を介して読み出されるとき、ＥＣＣユニット224は、データバスからデータバイトを受信して、データバイトを使用して、選択したブロック符号にしたがってＥＣＣ値を生成する。そのページの全ＮＤデータバイトが、ＮＡＮＤフラッシュ164ａから読み出された後で、ページの予備領域内に記憶されたＥＣＣ値が読み出される。ページの検索されたＥＣＣ値は、新しく生成されたＥＣＣ値と比較される。比較結果に基づいて、ＥＣＣユニット224は、ＮＡＮＤフラッシュ164ａから検索されたデータページ内に誤りがあるかどうかを判断することができる。検索されたＥＣＣ値は、各誤りバイトの位置を判断し、かつ各誤りバイトを（最大数まで）訂正するのにも使用される。
【００４９】
フラッシュデータの誤り訂正符号化には、ハミング符号、リードソロモン符号、ＢＣＨ（Bose, Chaudhuri, and Hocquenghem）符号、または他の符号のような、種々のブロック符号が使用される。一般に、各ブロック符号化されたページは、元の変調されていないデータ（すなわち、システマティック部分）と、それに続くパリティデータ（すなわち、パリティ部分）とを含むので、システマティックブロック符号は使い易い。パリティデータは、データ部分から生成されるＥＣＣ値である。したがって、各システマティックブロック符号化されたページは、ＮＰデータバイトと、それに続くＮＳパリティバイトとを含む。このようにして、データページは、ＮＡＮＤフラッシュへ書き込まれるか、またはそこから読み出され、その直後にパリティデータが続き、一時記憶域は、システマティックまたはパリティ部分の何れにも不要になる。特定の実施形態において、ハミング符号は、フラッシュデータの誤り訂正符号化に使用される。
【００５０】
ブロック符号化は、この技術において使用可能な多数の参考文献に詳しく記載されている。１つのこのような参考文献は、S. LinおよびD. Costelloによる文献（“Error Control Coding: Fundamentals and Applications”, Prentice Hall, 1983）であり、ここでは、これを参考文献として取上げている。
【００５１】
フラッシュからＳＲＡＭへの動作
図４は、ＮＡＮＤフラッシュからＳＲＡＭへデータページを転送するための処理400の実施形態のフローチャートである。最初に、ＥＭＩユニット内のＤＭＳ制御器は、ＮＡＮＤフラッシュから読み出される特定のページのアドレスをロードされる（ステップ412）。アドレスジェネレータまたはＤＭＳ制御器は、データページが書き込まれるＳＲＡＭ内の領域の開始アドレスもロードされる（ステップ414）。その後で、ＤＭＳ制御器は、ＮＡＮＤフラッシュからＳＲＡＭへのページの転送を開始するためのコマンドを受信する（ステップ416）。ＮＡＮＤフラッシュのページアドレス、ＳＲＡＭの開始アドレス、および開始コマンドは、主制御器または他の処理ユニット（例えば、ＤＳＰ）によって供給される。ブロック410内のステップ412、414、および416は、フラッシュからＳＲＡＭへのページ転送の全動作を実行するのに十分なセットアップステップである。このようにして、データ転送を要求する装置は、その後、実際のデータ転送を監視しなければならない代わりに、他のタスクを自由に行なうことができる。
【００５２】
図６は、ＮＡＮＤフラッシュからＳＲＡＭへデータページを転送するのに使用される種々の信号を示すタイミング図である。図６の上半分はＮＡＮＤフラッシュの信号を示し、下半分はＳＲＡＭの信号を示す。これらの信号は、既に簡潔に記載した。ここで、フラッシュからＳＲＡＭへのページ転送動作を、図４および６の両者を参照して記載する。
【００５３】
ＮＡＮＤフラッシュから選択したデータページを読み出すために（ブロック420）、最初に、ＮＡＮＤフラッシュを（ＮＡＮＤフラッシュのＣＳ ｎを論理ローにすることによって）作動し、（ＣＬＥを論理ハイにして、データバスを介してＮＡＮＤフラッシュのＩ／Ｏポートへ読み出しコマンドを供給することによって）読み出しコマンドをＮＡＮＤフラッシュへ送る（ステップ422）。その後で、（ＡＬＥを論理ハイにして、データバスを介してＩ／Ｏポートへページアドレスを供給することによって）ページアドレスをＮＡＮＤフラッシュへ送る（同じく、ステップ422）。ページアドレスは複数のバイトで供給され、アドレスバイトの明確な数は、ＮＡＮＤフラッシュのサイズおよび分割によって判断される。（レディが論理ハイにされるとき）それが最早ビジーでないという表示をＮＡＮＤフラッシュから受信すると、ＳＲＡＭを（ＳＲＡＭのＣＳ ｎを論理ローにすることによって）作動し、選択したページの実際の転送を開始することができる。
【００５４】
選択したページのＮＤデータバイトの各々において、アドレス（データバイトはＳＲＡＭに記憶される）は、ＥＭＩユニットによって、アドレスバスを介して、ＳＲＡＭへ供給される（ステップ424）。このバイトアドレスは、ＳＲＡＭの開始アドレスに基づいて、ＥＭＩユニット内のアドレスジェネレータによって生成される。（ＮＡＮＤフラッシュへ供給されるＲＥ ｎ信号のトレーリングエッジにおける、またはその後における）次のデータバイトは、ＮＡＮＤフラッシュからデータバスを介して読み出される（ステップ426）。同時に、データバイトは、同じデータバスを介してＳＲＡＭの指定されたアドレスに書き込まれる（ステップ428）。
【００５５】
データバイトは、また、ＥＭＩユニット内のＥＣＣユニットによって受信され、ページのＥＣＣ値を生成するのに使用される（ステップ430）。各新しいデータバイトが受信されると、ＥＣＣ値は、使用するために選択したブロック符号に基づいて更新される。
【００５６】
その後で、ページの全ＮＤデータバイトがＮＡＮＤフラッシュから読み出されたかどうかを判断する（ステップ432）。答えがノーであるときは、処理はステップ424に戻って、別のデータバイトを読み出して、転送する。そうではなくて、ページの全データバイトが読み出されたときは、ＳＲＡＭを（ＳＲＡＭのＣＳ ｎを論理ハイにすることによって）非活動状態にし、そのページのために生成されたＥＣＣ値を、ＥＣＣユニット内に一時的に記憶する（ステップ434）。ブロック420内のステップでは、選択したデータページをＮＡＮＤフラッシュからＳＲＡＭへ実際に転送する。
【００５７】
選択したページのＮＡＮＤフラッシュの予備領域内に記憶されたＥＣＣ値を読み出し、ＥＣＣユニット内に一時的に記憶する（ステップ442）。全ＥＣＣ値を検索した後で、検索されたＥＣＣ値を、生成されたＥＣＣ値と比較する（ステップ444）。検索されたデータページ内に誤りがあるかどうかを判断する（ステップ446）。検索されたＥＣＣ値が、生成されたＥＣＣ値と等しいときは、誤りがないことを示し、処理はステップ460へ進む。さもなければ、可能であれば、ステップ448から、誤りバイトに対して誤り訂正を始める。
【００５８】
誤り訂正を行うために、最初に、検索されたＥＣＣ値と、選択したブロック符号の構造および特徴とに基づいて、各誤りバイトの位置を判断する（ステップ448）。その後で、各誤りバイトをＳＲＡＭから検索する（ステップ450、簡潔化のために図６には示されていない）。これは、（ＳＲＡＭのＣＳ ｎを論理ローにすることによって）ＳＲＡＭを活動状態にし、アドレスバス上の誤りバイトのアドレスを与え、ＳＲＡＭに読み出し動作を命令することによって達成される。その後で、ＳＲＡＭから検索された誤りバイトを、検索されたＥＣＣ値に基づいて訂正する（ステップ452）。誤りバイトが検索されたＳＲＡＭ内の場所と同じ場所に、訂正されたバイトを記憶する（ステップ454）。誤り訂正処理を迅速化するために、全ての誤りバイトは、１回の読み出し動作によってＳＲＡＭから検索され、ＥＣＣユニットによって訂正され、全ての訂正されたバイトは、１回の書き込み動作によって、ＳＲＡＭへ記憶される。ブロック440内のステップは、ページの誤り訂正を行う。
【００５９】
誤りバイトの数が、選択したブロック符号の誤り訂正能力よりも多いときは、ＥＭＩユニットは、誤りメッセージを供給して、状態を警告する。誤り訂正能力は、使用するために選択された特定のブロック符号によって判断される。
１つの特定の誤り訂正符号化の設計では、各ページのページサイズが５１２バイトおよび１６予備バイトをもつＮＡＮＤフラッシュにおいて、所与のページの５１２バイトは、４つの完全に独立した組であって、各々が１２８バイトを含む組へ分割される。ハミング符号を使用して、各組の１２８バイトを符号化し、各組ごとに２０ビットの符号化オーバーヘッドを生成する。したがって、各ページの全符号化オーバーヘッドは８０ビットであり、これらの８０オーバーヘッドビットは、そのページの１６予備バイトの領域に保管される。この符号化方式の誤り訂正能力は、次のように特定される。（１）各組内の１ビットの誤りを訂正できる、（２）各組内の２ビット以上の誤りを検出できる、および（３）各ページの４ビットまでのビット誤りを訂正できる。これらは、特定の誤り訂正符号化設計を表わし、他の設計も本発明の技術的範囲内で実現される。
【００６０】
誤り訂正が完了したときか、または転送されたページに誤り訂正が不要であるときは、ＥＭＩユニットは、状態信号を供給するか、または中断して、フラッシュからＳＲＡＭへのページ転送動作が終了したことを示す（ステップ460）。その後で、処理は終了する。
【００６１】
図２Ａに示されているように、ＮＡＮＤフラッシュのＩ／ＯポートおよびＳＲＡＭのデータポートは、共通データバスを共用する。図６を参照すると、フラッシュからＳＲＡＭへの動作において、ＥＭＩユニットは、読み出しコマンドおよびページアドレスをデータバスを介してＮＡＮＤフラッシュへ供給し、ＮＡＮＤフラッシュは、ＥＣＣ値をデータバスを介してＥＭＩユニットへ供給する。これらの３つのデータ部分は、（図６におけるＳＲＡＭのデータ信号の点線の遷移によって表わされているように）ＳＲＡＭには不要であるが、ＳＲＡＭは（ＳＲＡＭのＣＳ ｎの実際のデータ転送の間を除いて、論理ハイであることによって示されているように）これらの時間の間に活動状態にならないので、（これらの３つのデータ部分は）ＳＲＡＭの動作に影響を与えない。同様に、（点線のパルスによって表わされているように）ＳＲＡＭのＷＥ ｎ信号上の不要パルスは、ＳＲＡＭの動作に影響を与えない。
【００６２】
多数のページをフラッシュからＳＲＡＭへ転送するために、図４および６に示されている処理は、１ページを転送するたびに１回ずつ、何度も反復される。１つの実施形態において、ＥＭＩユニットは、全ページが転送された後でのみ、多数のページのフラッシュからＳＲＡＭへの転送の完了を示す信号／中断を供給する。
【００６３】
ＳＲＡＭからフラッシュへの動作
図５は、ＳＲＡＭからＮＡＮＤフラッシュへデータページを転送するための処理500の実施形態のフローチャートである。最初に、アドレスジェネレータまたはＤＭＳ制御器は、ＳＲＡＭから検索したデータページの開始アドレスをロードされる（ステップ512）。ＤＭＳ制御器は、データページが書き込まれるＮＡＮＤフラッシュのページアドレスもロードされる（ステップ514）。ＤＭＳ制御器は、ＳＲＡＭからＮＡＮＤフラッシュへページの転送を開始するコマンドを受信する（ステップ516）。ここでも、ＳＲＡＭの開始アドレス、ＮＡＮＤフラッシュのページアドレス、および開始コマンドは、主制御器、ＤＳＰ、または他の処理ユニットによって供給される。ブロック510内のステップ512、514、および516は、ＳＲＡＭからフラッシュへのページ転送の全動作を実行するのに十分なセットアップステップである。
【００６４】
図７は、データページをＳＲＡＭからＮＡＮＤフラッシュへ転送するのに使用される種々の信号を示すタイミング図である。図７の上半分は、ＮＡＮＤフラッシュの信号を示し、下半分はＳＲＡＭの信号を示す。ここで、ＳＲＡＭからフラッシュへのページ転送動作を、図５および７の両者を参照して記載する。
【００６５】
選択したデータページをＮＡＮＤフラッシュへ書き込むために（ブロック520）、最初に、ＮＡＮＤフラッシュを作動し、ＮＡＮＤフラッシュから、それがビジーではないという表示を受信し、ＮＡＮＤフラッシュへ書き込みコマンドを送る。その後で、ページアドレスはＮＡＮＤフラッシュへ送られる（同じく、ステップ522）。その後で、ＳＲＡＭが作動され、選択したページの実際の転送を開始することができる。
【００６６】
選択したページのＮＤデータバイトの各々において、アドレス（データバイトはＳＲＡＭから検索される）は、アドレスバスを介してＳＲＡＭへ供給される（ステップ524）。指定されたアドレスのデータバイトは、ＳＲＡＭからデータバスを介して読み出される（ステップ526）。同時に、データバイトは、同じデータバスを介して、ＮＡＮＤフラッシュへ書き込まれる（ステップ528）。
【００６７】
データバイトは、また、ＥＣＣユニットによって受信され、そのページのＥＣＣ値を生成するのに使用される（ステップ530）。新しいデータバイトが受信されると、ＥＣＣ値は、選択したブロック符号に基づいて更新される。
ページの全ＮＤデータバイトがＳＲＡＭから読み出されたかどうかを判断する（ステップ532）。答えがノーであるときは、処理はステップ524へ戻って、別のデータバイトを読み出して、転送する。そうではなくて、ページの全データバイトが読み出されたときは、ＳＲＡＭは非活動にされる（ステップ534）。ページのために生成されたＥＣＣ値は、ＮＡＮＤフラッシュ内の関係付けられた予備領域に書き込まれる（ステップ542）。ブロック520内のステップでは、選択したページをＳＲＡＭからＮＡＮＤフラッシュへ実際に転送する。
【００６８】
データ転送が完了すると、ＥＭＩユニットは、ＳＲＡＭからフラッシュへのページ転送動作が終了したことを示す状態信号を供給するか、または中断する（ステップ560）。その後で、処理は終了する。
図７に示されているように、ＳＲＡＭからフラッシュへの動作において、データバス上の書き込みコマンド、ページアドレス、およびＥＣＣ値は、（図７におけるＳＲＡＭのデータ信号上の点線の遷移によって表わされているように）ＳＲＡＭには不要である。しかしながら、ＳＲＡＭは、これらの時間の間は作動しないので、これらの３つのデータ部分はＳＲＡＭの動作に影響を与えない。同様に、（ここでも、点線のパルスによって表わされているように）ＳＲＡＭのＲＥ ｎ信号上の不要パルスは、ＳＲＡＭの動作に影響を与えない。
【００６９】
多数のページをＳＲＡＭからフラッシュへ転送するために、図５および７に示されている処理は、１ページを転送するたびに１回ずつ、何度も反復される。１つの実施形態において、ＥＭＩユニットは、全ページを転送した後でのみ、多数のページのＳＲＡＭからフラッシュへの転送の完了を示す信号／中断を供給する。
【００７０】
ＳＲＡＭとＮＡＮＤフラッシュとの間の直接メモリスワッピングを行うためのメモリアーキテクチャおよび技術は、種々の応用に使用される。このような応用は、実行可能コードの（ＮＡＮＤフラッシュからＳＲＡＭへの）最初のパワーアップブーティング、アプリケーションコード（例えば、オーディオ、ビデオ、および他の端末アプリケーションのためのコード）のダウンローディングおよび再生、実行可能コードの（ＮＡＮＤフラッシュからＳＲＡＭへの）実行時ローディング、等を含む。
【００７１】
ここに記載されているメモリアーキテクチャは、ＳＲＡＭおよびＮＡＮＤフラッシュの両者とインターフェイスするのに必要な信号線の数を低減する。これは、ＳＲＡＭおよびＮＡＮＤフラッシュの両者において共通のデータバスを使用することによって達成される。この設計は、ＡＳＩＣ120がＳＲＡＭおよびＮＡＮＤフラッシュとインターフェイスするのに必要なＩ／Ｏピンの数を低減する。集積回路技術において、深さがサブミクロンへ移行すると、ダイサイズが低減し、かつ全チップコストにおけるＩ／Ｏピンのコストが、より大きい割合になる。Ｉ／Ｏピンの数が低減すると、コストおよびＡＳＩＣのパッケージサイズを低減することができる。
【００７２】
ＳＲＡＭとＮＡＮＤフラッシュの両者がＡＳＩＣの外部にある特定の設計における種々の態様および実施形態が記載されていることを明記しておく。この場合に、ＳＲＡＭおよびＮＡＮＤフラッシュは、同じ集積回路上に構成しても、異なる集積回路上に構成してもよい。しかしながら、ここに記載されているメモリアーキテクチャおよび技術は、ＳＲＡＭまたはＮＡＮＤフラッシュ、あるいはこの両者をＡＳＩＣ120上に構成する設計にも使用される。
【００７３】
同じく、とくに、ＳＲＡＭおよびＮＡＮＤフラッシュの両者について、種々の態様および実施形態が記載されていることを明記しておく。しかしながら、ＳＲＡＭに他のタイプのメモリを使用してもよく、ＮＡＮＤフラッシュにも他のタイプのメモリを使用してもよく、これは本発明の技術的範囲内である。概して、ここに記載されているメモリアーキテクチャおよび技術は、２つのタイプのメモリ間における直接メモリスワッピングを支援するのに使用される。
【００７４】
さらに加えて、外部メモリは、（２つ以上の異なるメモリ技術の）３つ以上の記憶ユニットを含んでもよい。この場合に、記憶ユニットの１つからのデータは、関係する記憶ユニットを作動して、適切な制御信号を供給することによって、１つ以上の他の記憶ユニットへ転送される。
【００７５】
ここに記載されている技術は、次の条件、すなわち（１）制御器が、両方のメモリのアクセスを同時に支援することができる；および（２）使用されるメモリを支援するためのピンが十分にある（例えば、ＮＡＮＤフラッシュはアドレスピンを使用しないので、ＳＲＡＭからＳＲＡＭへの転送は、ＮＡＮＤフラッシュからＳＲＡＭへの転送よりも、より多くのピンを必要とする）において、任意のタイプのメモリ（例えば、ＮＡＮＤからＳＲＡＭ、ＮＯＲフラッシュからＳＲＡＭ、ＳＲＡＭからＳＲＡＭ、等）間における外部メモリの転送にも適用される。
【００７６】
ここに記載されているメモリアーキテクチャおよびデータ転送技術は、無線通信装置並びに種々の他の電子装置およびシステムに使用される。例えば、これらのメモリアーキテクチャおよび技術は、無線通信システム、コンピュータシステム、他のポータブル装置、家庭用電子装置、等の基地局において実現される。
【００７７】
ここに記載されている、２つのタイプのメモリ間の直接スワッピングのためのメモリアーキテクチャおよび技術は、種々の手段によって実現される。例えば、ここに記載されているメモリアーキテクチャおよび技術を実現するのに使用される要素および装置は、１つ以上の特定用途向け集積回路（application specific integrated circuit, ASIC）、ディジタル信号プロセッサ（digital signal processor, DSP）、ディジタル信号処理ユニット（digital signal processing device, DSPD）、プログラマブル論理装置（programmable logic device, PLD）、フィールドプログラマブルゲートアレイ（field programmable gate array, FPGA）、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、ここに記載されている機能を実行するように設計されている他の電子装置、またはその組み合わせの中で実現される。
【００７８】
ここでは、参照のため、およびある特定のセクションの位置を特定するのを助けるために、見出しが含まれている。これらの見出しは、その中に記載されている概念の技術的範囲を制限することを意図しておらず、これらの概念は、明細書全体における他のセクションに適用できる。
【００７９】
上述の開示された実施形態は、当業者が本発明を作成または使用できるようにするために与えられている。これらの実施形態に対する種々の変更は、当業者には容易に明らかであり、ここに定められている一般的な原理は、本発明の意図および技術的範囲から逸脱しないならば、他の実施形態に適用できる。したがって、本発明は、ここに示されている実施形態に制限されることを意図されておらず、ここに開示されている原理および新奇な特徴に一致する最も幅広い範囲に適用されることを意図されている。
【図面の簡単な説明】
【００８０】
【図１】無線通信装置の特定の実施形態のブロック図。
【図２Ａ】誤り訂正符号化（ＥＣＣ）を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャの実施形態のブロック図。
【図２Ｂ】誤り訂正符号化（ＥＣＣ）を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャの実施形態のブロック図。
【図２Ｃ】誤り訂正符号化（ＥＣＣ）を用いてＮＡＮＤフラッシュとＳＲＡＭとの間の直接メモリスワッピングを支援するメモリアーキテクチャの実施形態のブロック図。
【図３】ＮＡＮＤフラッシュの例示的な構造を模式的に示す図。
【図４】ＮＡＮＤフラッシュからＳＲＡＭ（フラッシュからＳＲＡＭ）へデータページを転送するための処理の実施形態のフローチャート。
【図５】ＳＲＡＭからＮＡＮＤフラッシュ（ＳＲＡＭからフラッシュ）へデータページを転送するための処理の実施形態のフローチャート。
【図６】フラッシュからＳＲＡＭへのページ転送動作に使用する種々の信号を示すタイミング図。
【図７】ＳＲＡＭからフラッシュへのページ転送動作に使用する種々の信号を示すタイミング図。
【符号の説明】
【００８１】
100・・・無線通信装置、120・・・特定用途向け集積回路（ＡＳＩＣ）、136・・・システムバス、138,212,214・・・バス、200・・・メモリアーキテクチャ、400,500・・・処理。
【図１】
2005518600.tif 000005
【図２Ａ】
2005518600.tif 000006
【図２Ｂ】
2005518600.tif 000007
【図２Ｃ】
2005518600.tif 000008
【図３】
2005518600.tif 000009
【図４】
2005518600.tif 000010
【図５】
2005518600.tif 000011
【図６】
2005518600.tif 000012
【図７】
2005518600.tif 000013
【国際調査報告】
2005518600.tif 000014
2005518600.tif 000015
2005518600.tif 000016