(57)【要約】  本発明は、再帰的データを並列に処理するためのアドレッシング・アーキテクチャに関する。本発明の基本概念は、計算された新しいパス・メトリック（path metric）をメモリ内のこの古いパス・メトリックに使用されていた位置に格納することであり、古いメトリックは新しいメトリックを計算するために使用されている。ｍ個のメトリック値が読み出され、ｍ個のメトリックの値が同時に並列して計算される場合は、メモリ内の古いパス・メトリックが保持されていた位置に新しい計算されたパス・メトリックを格納することができる。本発明は、パス・メトリックを格納するための記憶領域のサイズが、先行技術によるビタビ（Viterbi）復号器でパス・メトリック計算に関する同等の成果を上げるために使用される記憶領域と比較して、半分に縮小されるので有利である。
2008503963.tif 000002
【特許請求の範囲】
【請求項１】
再帰的データを並列に処理するためのアドレッシング・アーキテクチャであって、第１のパス・メトリックのセットを格納する第１の記憶領域と、第２のパス・メトリックのセットを格納する第２の記憶領域とを配置され、前記第１の記憶領域は第１のメモリ入力と第１のメモリ出力に結合し、前記第２の記憶領域は第２のメモリ入力と第２のメモリ出力に結合するメモリ手段と、
前記第１のメモリ出力または前記第２のメモリ出力を第１のセレクタ出力に接続し、前記第１のメモリ出力または前記第２のメモリ出力を第２のセレクタ出力に接続するように配置されたセレクタ手段と、
前記第１のセレクタ出力に接続された第１の入力のセットと、前記第２のセレクタ出力に接続された第２の入力のセットと、前記第１のメモリ入力に接続された第１の出力のセットと、前記第２のメモリ入力に接続された第２の出力のセットとを有するビタビ（Viterbi）バタフライ構造と、を備え、
前記セレクタ手段は前記ビタビバタフライ構造を制御して新しいパス・メトリックがそれぞれの望ましい記憶領域に格納されるように操作できるアーキテクチャ。
【請求項２】
前記セレクタ手段は、前記セレクタ手段が前記ビタビバタフライ構造を制御して新しいパス・メトリックがそれぞれの望ましい記憶領域に格納されるように操作できるために経由する制御入力手段を配置された請求項１に記載のアドレッシング・アーキテクチャ。
【請求項３】
前記メモリ手段の前記記憶領域は、互いに分離されたそれぞれの読み出しイネーブル入力（read enable inputs）、おおび、互いに分離されたそれぞれの書き込みイネーブル入力（write enable inputs）をさらに備える請求項１または２に記載のアドレッシング・アーキテクチャ。
【請求項４】
新しいパス・メトリック用のメモリ書き込みアドレスは、前記新しいパス・メトリックを計算するために使用する古いパス・メトリック用の対応するメモリ読み出しアドレスに等しく設定される請求項３に記載のアドレッシング・アーキテクチャ。
【請求項５】
前記セレクタ手段は、前記制御入力手段を経由して現在のメモリ・アドレスに基づくパリティ・ビットを適用することによって操作される請求項２から４のいずれか一項に記載のアドレッシング・アーキテクチャ。
【請求項６】
前記第１または第２のメモリ出力から前記第１のセレクタ出力への接続は前記第１の記憶領域の現在のメモリ・アドレスに基づく第１のパリティ・ビットによって制御され、前記第１または第２のメモリ出力から前記第２のセレクタ出力への接続は前記第２の記憶領域の現在のメモリ・アドレスに基づく第２のパリティ・ビットによって制御される請求項５に記載のアドレッシング・アーキテクチャ。
【請求項７】
前記第１の記憶領域の前記現在のアドレスは前記第１の記憶領域の前のアドレスに対して右シフトを実行し、さらに前記第１の記憶領域の前記前のアドレスのパリティ・ビットを最上位ビットとして追加することによって計算され、前記第２の記憶領域の前記現在のアドレスは前記第２の記憶領域の前のアドレスに対して右シフトを実行し、さらに前記第２の記憶領域の前記前のアドレスのパリティ・ビットの反転を最上位ビットとして追加することによって計算される請求項６に記載のアドレッシング・アーキテクチャ。
【請求項８】
前記パリティ・ビットは、前記対応する現在のメモリ・アドレスに含まれる１の総数が奇数の場合はパリティ・ビットが１に設定され、前記対応する現在のメモリ・アドレスに含まれる１の総数が偶数の場合は０に設定される請求項５から７のいずれか一項に記載のアドレッシング・アーキテクチャ。
【請求項９】
前記２つの記憶領域は前記ビタビバタフライ構造で使用されるバタフライの数に関係なく使用される請求項１から８のいずれか一項に記載のアドレッシング・アーキテクチャ。
【請求項１０】
第１のパス・メトリックのセットを格納するための第１の記憶領域と、第２のパス・メトリックのセットを格納するための第２の記憶領域とを配置された前記メモリ手段は、それぞれのパス・メトリックのセットを格納する２つの別々のダブル・ポート・メモリを備える請求項１から９のいずれか一項に記載のアドレッシング・アーキテクチャ。
【請求項１１】
請求項１から１０のいずれか一項に記載のアドレッシング・アーキテクチャを備えるモバイル装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再帰的データを並列に処理するためのアドレッシング・アーキテクチャおよびこうしたアドレッシング・アーキテクチャを備えるモバイル装置に関する。
【背景技術】
【０００２】
多くの無線通信システムにおいては、雑音などの送信の歪みによる受信された記号の誤りを訂正できるようにするために、畳み込み符号（convolutional coding）が使用されている。畳み込み符号化された記号を復号するために一般的に使用される処理は、ビタビ（Viterbi）復号処理である。送信され、畳み込み符号化された記号には冗長性が付加されているので、受信された記号に含まれる誤りを訂正できる。これは、チャネル符号化と呼ばれている。誤り訂正は、パラメータの数によって左右されており、パラメータの１つは現在のサンプルを構成するために使用される過去のサンプル数である。この数は、拘束長（constraint length）ｋと呼ばれており、符号器に含まれるユニットの遅延要素の数に１を加えた値に等しい。拘束長は、現在のサンプルを構成するために使用される過去のサンプルの総数を表す。畳み込み符号器の状態の数は、ユニットの遅延要素の数によって決定される。実際に、拘束長ｋの符号器は（ｋ−１）ステージのシフト・レジスタによって実装され、この符号器で選択された出力が追加されて符号化された記号を構成する。この結果、可能な状態の数は２ｋ−１である。したがって、３ビットのシフト・レジスタによって８つの異なる状態を生成できる（拘束長ｋは４）。別の重要なパラメータは、符号化率Ｒであり、符号器の出力ビットに対する入力ビットの比率として定義される。したがって、符号化率１／３の場合は入力ビットごとに３つの出力ビットが送信される。つまり、各入力ビットは３ビットを有する出力記号を構成する。
【０００３】
符号器の許容される状態遷移はトレリス（trellis―格子―）・ダイヤグラムで表される。状態は、シフト・レジスタ内の実際のビットの内容を表し、状態遷移は特定の入力に関連付けられた出力記号を表す。状態遷移はトレリスのパスも定義する。ビタビ復号は特定の数の符号化された記号が受信された後でのみ開始されるが、このことによって、符号器には多くの状態遷移が発生しており、これに対応する数のトレリス・パスが作成されている。ビタビ復号処理は、状態遷移のトレリスを使用してトレリス・パスの数を最小限に抑えることによって、最も確率の高いパスを検出する方法を提供する。これは、符号器のすべての状態について、最も確率の高い前の状態を計算することによって実行される。最も確率の高い前の状態は、現在の入力値と前の状態の累積パス・メトリック（metric―計量・実数値関数―）を組み合わせることによって評価される。各状態には２つ以上の可能性のある入力パスがあるので、入力パスごとに累積距離が計算される。累積距離が最小のパスが最も確率の高いパスとして選択される。この最小のパスをその先頭までさかのぼると、さかのぼった記号の列は復号された信号になる。いくつかの畳み込み符号器（符号化率１／ｎの符号器）には、そのトレリス・ダイヤグラムがバタフライ（butterflies）と呼ばれる小さなグループに分割できるという利点がある。トレリス・ダイヤグラムのバタフライの対称性を利用することによって、パス・メトリックの計算回数を削減できる。バタフライの配置には、両方の新しい状態を更新するために、前の累積メトリック（すなわち古いメトリックの値）は同じであり、そのことによってアドレス操作が最小になるという利点がある。
【０００４】
先行技術のビタビ復号処理では、メトリックの更新は、通常はバタフライごとに４つのバッファ、すなわち２つの入力（読み出し）バッファと２つの出力（書き込み）バッファを使用して実行される。読み出しバッファは古い累積メトリックを備えており、書き込みバッファは新しいメトリックを備えている。バッファの合計サイズは、２ｋ−１ワードであり、遅延の状態の数に等しい。したがって、各バッファのサイズは２ｋ−１／４である。
【０００５】
こうしたさまざまなバッファから／バッファに対して読み出し／書き込みが行われ、状態遷移が発生するたびに読み出しバッファが更新される。このアプローチに関連する問題は、パス・メトリックは、ポインタを使用して互いにリンクまたは関連付けされているので、新しいパス・メトリックはそれぞれメモリ内の適切な位置に格納されなければならないことである。古いメトリックは、連続する順序で、例えば復号処理においてメトリックが重要な順にアクセスされており、メトリックの順序を保持するためにポインタが使用される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、前述の問題を解決すること、したがって、小さい記憶領域を使用して対応するパス・メトリック計算を行う復号器のアドレッシング・アーキテクチャを提供することである。
【課題を解決するための手段】
【０００７】
この目的は、請求項１による再帰的データを並列に処理するためのアドレッシング・アーキテクチャによって達成される。
【０００８】
本発明の第１の態様により、アドレッシング・アーキテクチャが提供されており、このアーキテクチャは、第１のパス・メトリックのセットを格納する第１の記憶領域と、第２のパス・メトリックのセットを格納する第２の記憶領域とを配置されたメモリ手段を備えており、第１の記憶領域は第１のメモリ入力と第１のメモリ出力に結合され、第２の記憶領域は第２のメモリ入力と第２のメモリ出力に結合される。このアーキテクチャは、第１のメモリ出力または第２のメモリ出力を第１のセレクタ出力に接続し、第１のメモリ出力または第２のメモリ出力を第２のセレクタ出力に接続するように配置されたセレクタ手段をさらに備えている。さらに、このアーキテクチャは、第１のセレクタ出力に接続された第１の入力のセットと、第２のセレクタ出力に接続された第２の入力のセットと、第１のメモリ入力に接続された第１の出力のセットと、第２のメモリ入力に接続された第２の出力のセットとを備えるビタビバタフライ構造を備えている。セレクタ手段は、ビタビバタフライ構造を制御して新しいパス・メトリックがそれぞれの望ましい記憶領域に格納されるように操作されてもよい。
【０００９】
本発明の基本概念は、計算された新しいパス・メトリックをメモリ内の古いパス・メトリックが格納されていた位置に格納することであり、古いメトリックは新しいメトリックの計算に使用されている。ｍ個のメトリック値が読み出され、同時にｍ個のメトリック値が並列で計算される場合は、計算された新しいパス・メトリックをメモリ内の古いパス・メトリックが格納されていた位置に格納することができる。この場合は、メトリック値は消去される可能性があるので、各メトリック値を常に同じメモリ内の同じ位置に割り当てることができるとは限らない。
【００１０】
新しいアドレッシング方法は、バタフライの数ｎｂが２のべき乗の場合はこの数ｎｂには関係なく２つのダブル・ポート・メモリが使用されるという考え方に基づいている。各メモリ内でデータを格納する位置の数は２（ｋ−２）／ｎｂであり、各データを格納する位置のサイズはｎｂ×（パス・メトリックのビットの数）である。これで、復号器は２×ｎｂ個の値を並列に計算できる。メモリ内の位置ごとに、ｎｂ個の連続するパス・メトリックが格納される。したがって、ｎｂ＝８の場合は、メトリックが０〜７、８〜１５、１６〜２３などのように格納される。２つのマルチプレクサを追加すると、バタフライは常に同じメモリに書き込むことができる。マルチプレクサは、対応するアドレスのビットの内容に基づいて、それぞれのパリティ・ビットによって管理される。
【００１１】
本発明は、パス・メトリックを格納するための記憶領域のサイズが、先行技術のビタビ（Viterbi）復号器でパス・メトリック計算に関する同等の成果を上げるために使用される記憶領域と比較して、半分に縮小されるので有利である。
【００１２】
この利点は、寸法がますます小さくなっているモバイル装置には重要である。
【００１３】
本発明が有するその他の特徴と利点は、添付の請求項と以下の説明を理解することで明らかになるであろう。当業者には言うまでもないが、本発明のさまざまな機能を組み合わせることによって、以下で説明する以外の実施形態を作成できる。
【００１４】
本発明は、以下に示す添付の図面を参照しながら詳細に説明されている。
【発明を実施するための最良の形態】
【００１５】
図１は、先行技術によるビタビ復号処理のアドレッシング・アーキテクチャを示しており、メトリックの更新は、通常はバタフライ１１５（および１２５）ごとに４つのバッファ、すなわち１０１、１０２、１０３、１０４（および、１１１、１１２、１１３、１１４）を使用して実行される。こうした４つのバッファは、２つの入力（読み出し）バッファ１０３、１０４、および、２つの出力（書き込み）バッファ１０１、１０２を備えている。読み出しバッファは古い累積メトリックを備えており、書き込みバッファは新しいメトリックを備えている。前述のように、このアドレッシング方法を使用する場合、パス・メトリックはポインタを使用して互いに関連付けられているので、新しいパス・メトリックをメモリ内の適切な位置に格納しなければならない。古いメトリックは、連続する順序でアクセスされ、メトリックの順序を保持するためにポインタが使用される。
【００１６】
図２は、本発明によるアドレッシング・アーキテクチャを示している。この例示的な実施形態では、アーキテクチャは４つのバタフライ２１２、２２２、２３２、２４２を備えている。復号処理を開始する前に、まず復号器が初期化される必要がある。第１のメモリ２１１は０の値を返す新しいパス・メトリックを格納し、第２のメモリ１２１は１の値を返す新しいパス・メトリックを格納する。こうした２つのメモリは２つの異なるメモリ・チップ内に配置される必要はなく、同一のメモリ・チップ内の２つの記憶領域として２つのアドレス・セットおよびデータ入力（およびデータ出力）と共に実装されてもよいことに留意されたい。
【００１７】
復号器の初期化に使用する値、すなわちメモリ２１１、２２１に最初に格納する値は、次のようになる。
ｎｓ／ｎｂ（ｎｓ＜２（ｋ−２）の場合）、および
（ｎｓ−２（ｋ−２））／ｎｂ（ｎｓ＞２（ｋ−２）の場合）
ただし、ｎｓは可能性のある復号器の状態の総数を表す。
各メモリ２１１、２２１は、それぞれ２つのアドレス入力、すなわち１つの読み出しアドレス入力２１３、２１４と１つの書き込みアドレス入力２１５、２１６を備えている。計算されたメトリックのそれぞれの書き込みアドレスは、メトリックの計算で使用されるデータを読み出すように設定された読み出しアドレスと常に同じである。たとえば、古いメトリックの値ｉとｉ＋２（ｋ−２）が第１のメモリ１１１内の位置ｘと第２のメモリ２２１内の位置ｙから読み出された場合に、計算された新しいメトリック２ｉと２ｉ＋１はそれぞれ対応する位置ｘとｙに格納される。２つのセレクタすなわちマルチプレクサ２５２、２６２により、バタフライは常に同じメモリに書き込むことができる。マルチプレクサは、それぞれのアドレスのパリティ・ビット２１７、２１８によって制御される。対応するアドレス内の１の総数が奇数の場合はパリティ・ビットが１に設定され、対応するアドレス内の１の総数が偶数の場合はパリティ・ビットが０  に設定される。マルチプレクサは、同一の物理チップ内に実装してもよい。この場合に、チップはマルチプレクサ２５２、２６２と同等に機能する（少なくとも）４つのデータ入力、２つのデータ出力、および２つの制御入力を備えている。
【００１８】
初期化した後で、復号器の状態遷移が発生するたびに、メモリに格納された値に対して図３に示すような右シフトが行われる。図３の上の部分は第１のメモリ２１１を表し、下の部分は第２のメモリ２２１を表している。各値の実際のメモリ・アドレスは前のアドレスから計算され、ただし、アドレスあたりのビット数ｎｂａはｌｏｇ２（２（ｋ−２）／ｎｂ）に等しい。第１のメモリ２１１では、前のアドレスのパリティ・ビット２１７が左から挿入され、前のアドレスを右にシフトするので、現在のアドレスは、Ｐａｒｉｔｙ＿ｂｉｔ、Ａｄｄｒ＿ｎｂａ、．．．、Ａｄｄｒ＿２、Ａｄｄｒ＿１で構成される。第２のメモリ２２１では、前のアドレスのパリティ・ビット２１８の反転が左から挿入され、前のアドレスを右にシフトするので、現在のアドレスは、ｉｎｖ（Ｐａｒｉｔｙ＿ｂｉｔ）、Ａｄｄｒ＿ｎｂａ、．．．、Ａｄｄｒ＿２、Ａｄｄｒ＿１で構成される。
【００１９】
表１は第１のメモリのアドレッシング手順の例を示しており、表２は第２のメモリのアドレッシング手順の例を示している。
【表１】
2008503963.tif 000003
たとえば、第１のメモリに関して、アドレス７（０１１１）から値が読み出された場合は、次の状態ではこの値がアドレス１１（１０１１）から読み出されることになる（表１を参照）。
【表２】
2008503963.tif 000004
第２のメモリに関して、アドレス７（０１１１）から値が読み出された場合は、次の状態ではこの値がアドレス３（００１１）から読み出されることになる（表２を参照）。このアドレッシング・アーキテクチャを使用することによって、メモリの読み出しアドレスはｌｏｇ２（２（ｋ−２）／ｎｂ）＋１状態ごとに同じになる。
【００２０】
図４は、表１に太字で示す状態のアドレッシング・シーケンスの例を示している。
【００２１】
４０１で、第１のメモリ２１１は１０１１（１０進の１１）で初期化される。１０１１には奇数個の１が含まれるので、パリティ・ビットは１である。次に４０２で、状態遷移が発生したときに、レジスタがシフトされると、新しいメモリ・アドレスは１１０１（１０進の１３）になり、パリティ・ビットは１である。４０３で、第３のメモリ・アドレスは１１１０（１０進の１４）になり、パリティ・ビットは１である。４０４で、状態３になると、アドレスは１１１１（１０進の１５）になり、１１１１には偶数個の１が含まれるので、パリティ・ビットは０に変わる。最後の状態で、アドレスは０１１１（１０進の７）になり、パリティ・ビットは１である。この後は、再び最初の状態に入り、メモリ・アドレスは１０１１（１０進の１１）、パリティ・ビットは１になる。
【００２２】
図５は、表２に太字で示す状態のアドレッシング・シーケンスの例を示している。５０１で、第２のメモリ２２１は前の第１のメモリ２１１の例と全く同様に１０１１（１０進の１１）で初期化されるので、パリティ・ビットは１である。次に５０２で、状態遷移が発生したときに、レジスタがシフトされると、新しいメモリ・アドレスは０１０１（１０進の５）になり、パリティ・ビットは０である。５０３で、第３のメモリ・アドレスは１０１０（１０進の１０）になり、パリティ・ビットは０である。５０４で、状態３になると、アドレスは１１０１（１０進の１３）になり、パリティ・ビットは１に変わる。最後の状態で、アドレスは０１１０（１０進の６）になり、パリティ・ビットは０である。この後は、再び最初の状態に入り、メモリ・アドレスは１０１１（１０進の１１）になり、パリティ・ビットは１になる。
【００２３】
したがって、本発明のアドレッシング・アーキテクチャを使用すると、記憶領域のサイズは、先行技術によるビタビ復号器でパス・メトリック計算に関する同等の成果を上げるために使用される記憶領域と比較して、半分に縮小される。
【００２４】
本発明のアドレッシング・アーキテクチャで実施される演算および計算は、通常はマイクロプロセッサ（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ：digital signal processor）、アプリケーション専用集積回路（ＡＳＩＣ：application specific integrated circuit）、または計算機能を備える他の適切な装置で実行されることに留意されたい。
【００２５】
本発明は、モバイル装置の分野における重要な適用例を検出する。
【００２６】
本発明に関し、その特定の例示的な実施形態に関連付けながら説明してきたが、当業者には多くの異なる代替、変形、および同類のものが明らかになるであろう。したがって、前述の実施形態は添付の請求項で定義する範囲を限定するものではない。
【図面の簡単な説明】
【００２７】
【図１】先行技術によるビタビ復号器のアドレッシング・アーキテクチャを示す図である。
【図２】本発明によるアドレッシング・アーキテクチャを示す図である。
【図３】状態遷移が発生するたびに、２つのメモリ内のアドレス・ビットをシフトする方法を示す図である。
【図４】アドレッシング・アーキテクチャにおける第１のメモリのアドレッシング・シーケンスを例示する図である。
【図５】アドレッシング・アーキテクチャにおける第２のメモリのアドレッシング・シーケンスを例示する図である。
【図１】
2008503963.tif 000005
【図２】
2008503963.tif 000006
【図３】
2008503963.tif 000007
【図４】
2008503963.tif 000008
【図５】
2008503963.tif 000009