(57)【特許請求の範囲】
【請求項１】
第１シーケンスに配置される複数のデータアイテムを格納する第１メモリであって、各データアイテムが前記第１メモリ上の関連するメモリアドレスを有し、前記複数のデータアイテムがデータアイテムのブロックのサブセットからなる、前記第１メモリと、
第２メモリと、
前記第１メモリと前記第２メモリとに接続され、ＤＲＡＭに対するポートを有する転送エンジンであって、第１メモリ転送段階において前記第１メモリから前記ＤＲＡＭに前記複数のデータアイテムを直接転送し、第２メモリ転送段階において前記ＤＲＡＭから前記第２メモリに前記複数のデータアイテムを直接転送するよう構成される前記転送エンジンと、
を有するデジタル信号処理システムオンチップであって、
前記第１メモリ転送段階において、前記転送エンジンは、所定のメモリリードアドレスの非リニアシーケンスに従って前記第１メモリから前記複数のデータアイテムを読み込み、前記複数のデータアイテムを前記ＤＲＡＭに書き込むよう構成され、
前記第２メモリ転送段階において、前記転送エンジンは、リニアアドレスシーケンスの各バーストがＤＲＡＭインタフェースのバーストサイズに基づき選択された長さを有する、リニアアドレスシーケンスのバーストに従って前記ＤＲＡＭから前記複数のデータアイテムを読み込み、前記複数のデータアイテムが前記第１シーケンスと異なる第２シーケンスにより前記第２メモリに配置されるように、所定のメモリライトアドレスの非リニアシーケンスに従って前記複数のデータアイテムを前記第２メモリに書き込むよう構成され、
前記第１シーケンスと前記第２シーケンスとの１つは、ロー・カラムインタリーブされたデータを有するデジタル信号処理システムオンチップ。
【請求項２】
前記第１メモリと前記第２メモリとは共にＳＲＡＭである、請求項１記載のデジタル信号処理システムオンチップ。
【請求項３】
前記第１メモリと前記第２メモリとは、同一のオンチップメモリである、請求項１又は２記載のデジタル信号処理システムオンチップ。
【請求項４】
前記ＤＲＡＭをさらに有する、請求項１乃至３何れか一項記載のデジタル信号処理システムオンチップ。
【請求項５】
前記転送エンジンはさらに、前記データアイテムのブロックのすべてが前記第２メモリに書き込まれるまで、前記第１及び第２メモリ転送段階を繰り返すよう構成される、請求項１乃至４何れか一項記載のデジタル信号処理システムオンチップ。
【請求項６】
前記所定のメモリリードアドレスの非リニアシーケンスと前記所定のメモリライトアドレスの非リニアシーケンスとを生成するよう構成される少なくとも１つのアドレス生成要素をさらに有する、請求項１乃至５何れか一項記載のデジタル信号処理システムオンチップ。
【請求項７】
前記データアイテムのブロックは、データアイテムのいくつかのロー及びデータアイテムのいくつかのカラムを有するグリッドとして構成されるとして定義される、請求項１乃至６何れか一項記載のデジタル信号処理システムオンチップ。
【請求項８】
前記グリッドはさらに、各タイルが前記グリッドの矩形部分を有し、さらにデータアイテムのＲ個のロー及びＣ個のカラムを有する複数のタイルを有し、
前記複数のデータアイテムは、１以上のタイルを有する、請求項７記載のデジタル信号処理システムオンチップ。
【請求項９】
前記所定のメモリリードアドレスの非リニアシーケンスは、前記第１の複数のデータアイテムの各タイルについて、固定数のメモリアドレスにより分離され、初期的なスタートアドレスからスタートする不連続なメモリアドレスのシーケンスを有し、
前記固定数は、前記グリッドのロー数未満の数に対応し、
前記タイルの境界に到達するまで、各追加的なシーケンスがオフセット初期的なスタートアドレスからスタートする不連続なメモリアドレスの１以上の追加的なシーケンスに続く、請求項８記載のデジタル信号処理システムオンチップ。
【請求項１０】
前記所定のメモリライトアドレスの非リニアシーケンスは、前記第２メモリの固定数のメモリアドレスにより分離され、前記第２メモリの初期的なスタートアドレスからスタートするＣ個の連続的なメモリアドレスのグループのシーケンスを有し、
前記固定数は、前記グリッドにおけるカラム数未満のＣに対応する、請求項８又は９記載のデジタル信号処理システムオンチップ。
【請求項１１】
前記複数のデータアイテムは、前記グリッドのタイルを有する、請求項８乃至１０何れか一項記載のデジタル信号処理システムオンチップ。
【請求項１２】
前記第２メモリ転送段階において、前記リニアアドレスシーケンスのバーストは、前記第２メモリの固定数のメモリアドレスにより分離され、前記第２メモリの初期的なスタートアドレスからスタートするＸ個の連続的なメモリアドレスのバーストのシーケンスを有し、
Ｘは、前記グリッドのタイルのデータアイテムの個数に等しい、請求項８乃至１１何れか一項記載のデジタル信号処理システムオンチップ。
【請求項１３】
前記第１メモリ転送段階において、前記転送エンジンは、各リニアアドレスシーケンスのバーストがＤＲＡＭインタフェースのバーストサイズに基づき選択された長さを有する、リニアアドレスシーケンスのバーストに従って前記複数のデータアイテムを前記ＤＲＡＭに書き込むよう構成される、請求項８乃至１２何れか一項記載のデジタル信号処理システムオンチップ。
【請求項１４】
前記第１メモリ転送段階において、前記リニアアドレスシーケンスのバーストは、前記第２メモリの固定数のメモリアドレスにより分離され、前記第２メモリの初期的なスタートアドレスからスタートするＸ個の連続的なメモリアドレスのバーストのシーケンスを有し、
Ｘは、前記グリッドのタイルのデータアイテムの個数に等しい、請求項１３記載のデジタル信号処理システムオンチップ。
【請求項１５】
タイルは、前記ＤＲＡＭインタフェースのバーストのサイズに基づきサイジングされる、請求項８乃至１４何れか一項記載のデジタル信号処理システムオンチップ。
【請求項１６】
デジタル信号処理システムにおいてデータアイテムのブロックに対してインタリーブ又はデインタリーブ処理を実行する方法であって、
第１オンチップメモリから、所定のメモリリードアドレスの非リニアシーケンスに従って第１シーケンスに格納されている第１の複数のデータアイテムを読み込むステップであって、前記第１の複数のデータアイテムは前記データアイテムのブロックのサブセットからなる、読み込むステップと、
前記第１の複数のデータアイテムをＤＲＡＭに書き込むステップと、
前記ＤＲＡＭから、リニアアドレスシーケンスの各バーストがＤＲＡＭインタフェースのバーストサイズに基づき選択される長さを有する、リニアアドレスシーケンスのバーストに従って前記第１の複数のデータアイテムを読み込むステップと、
前記データアイテムが前記第１シーケンスと異なる第２シーケンスにより第２オンチップメモリ上に配置されるように、所定のメモリライトアドレスの非リニアシーケンスに従って前記第１の複数のデータアイテムを前記第２オンチップメモリに書き込むステップと、
を有し、
前記第１シーケンスと前記第２シーケンスとの１つは、ロー・カラムインタリーブされたデータを有する方法。
【請求項１７】
前記第１オンチップメモリと前記第２オンチップメモリとは共にＳＲＡＭである、請求項１６記載の方法。
【請求項１８】
前記第１オンチップメモリと前記第２オンチップメモリとは同一のオンチップメモリである、請求項１６又は１７記載の方法。
【請求項１９】
前記ＤＲＡＭは、第３オンチップメモリである、請求項１６乃至１８何れか一項記載の方法。
【請求項２０】
前記データアイテムのブロックの全体が前記第２オンチップメモリに書き込まれるまで、当該方法を繰り返すステップをさらに有する、請求項１６乃至１９何れか一項記載の方法。
【請求項２１】
前記データアイテムのブロックは、データアイテムのいくつかのロー及びデータアイテムのいくつかのカラムを有するグリッドとして構成されるとして定義される、請求項１６乃至２０何れか一項記載の方法。
【請求項２２】
前記グリッドはさらに、各タイルが前記グリッドの矩形部分を有し、さらにデータアイテムのＲ個のロー及びＣ個のカラムを有する複数のタイルを有し、
前記第１の複数のデータアイテムは、１以上のタイルを有する、請求項２１記載の方法。
【請求項２３】
前記第１オンチップメモリから、所定のメモリリードアドレスの非リニアシーケンスに従って第１シーケンスに格納されている第１の複数のデータアイテムを読み込むステップは、前記第１の複数のデータアイテムの各タイルについて、
（ｉ）前記第１オンチップメモリの初期的なスタートアドレスのデータアイテムを読み込むステップと、
（ｉｉ）固定数のデータアイテムをスキップするステップであって、前記固定数は前記グリッドのロー数未満のものに対応する、前記スキップするステップと、
（ｉｉｉ）データアイテムを読み込むステップと、
（ｉｖ）前記タイルの境界に到達するまで、ステップ（ｉｉ）及び（ｉｉｉ）を繰り返すステップと、
（ｖ）前記初期的なスタートアドレスにオフセットを加えるステップと、
（ｖｉ）前記タイルの各データアイテムが読み込まれるまで、ステップ（ｉ）〜（ｖ）を繰り返すステップと、
を有する、請求項２２記載の方法。
【請求項２４】
前記所定のメモリライトアドレスの非リニアシーケンスに従って前記第１の複数のデータアイテムを前記第２オンチップメモリに書き込むステップは、
（ｉ）前記第１の複数のデータアイテムからのＣ個のデータアイテムを前記第２オンチップメモリの複数の連続的なアドレスであって、前記第２オンチップメモリの前記タイルの初期的なスタートアドレスからスタートする前記複数の連続的なアドレスに書き込むステップと、
（ｉｉ）前記第２オンチップメモリの固定数のアドレスをスキップするステップであって、前記固定数は前記グリッドのカラム数未満のＣに対応する、前記スキップするステップと、
（ｉｉｉ）前記第１の複数のデータアイテムからのＣ個のデータアイテムを前記第２オンチップメモリの複数の連続的なアドレスに書き込むステップと、
（ｉｖ）ステップ（ｉｉ）及び（ｉｉｉ）を繰り返すステップと、
を有する、請求項２２又は２３記載の方法。
【請求項２５】
前記第１の複数のデータアイテムを前記ＤＲＡＭに書き込むステップは、
（ｉ）前記第１の複数のデータアイテムからのＸ個のデータアイテムを前記ＤＲＡＭの前記タイルの初期的なスタートアドレスからスタートする前記ＤＲＡＭの複数の連続的なアドレスに書き込むステップと、
（ｉｉ）前記ＤＲＡＭの固定数のアドレスをスキップするステップと、
（ｉｉｉ）前記第１の複数のデータアイテムからのＸ個のデータアイテムを前記ＤＲＡＭの複数の連続的なアドレスに書き込むステップと、
（ｉｖ）ステップ（ｉｉ）及び（ｉｉｉ）を繰り返すステップと、
を有し、
Ｘは、前記グリッドのタイルのデータアイテムの個数に等しい、請求項２２乃至２４何れか一項記載の方法。
【請求項２６】
前記ＤＲＡＭから、リニアアドレスシーケンスのバーストに従って前記第１の複数のデータアイテムを読み込むステップは、
（ｉ）前記第１の複数のデータアイテムからのＸ個のデータアイテムを前記ＤＲＡＭの初期的なスタートアドレスからスタートする前記ＤＲＡＭの複数の連続的なアドレスから読み込むステップと、
（ｉｉ）前記ＤＲＡＭの固定数のアドレスをスキップするステップと、
（ｉｉｉ）前記第１の複数のデータアイテムからのＸ個のデータアイテムを前記ＤＲＡＭの複数の連続的なアドレスから読み込むステップと、
（ｉｖ）ステップ（ｉｉ）及び（ｉｉｉ）を繰り返すステップと、
を有し、
Ｘは、前記グリッドのタイルのデータアイテムの個数に等しい、請求項２２乃至２５何れか一項記載の方法。
【請求項２７】
タイルは、前記ＤＲＡＭインタフェースのバーストのサイズに基づきサイジングされる、請求項２５又は２６記載の方法。
【請求項２８】
コンピュータ上で実行されると、請求項１６乃至２７何れか一項記載の方法の全てのステップを実行するよう構成されるコンピュータプログラムコード手段を有するコンピュータプログラム。
【請求項２９】
コンピュータ可読媒体上に格納される請求項２８記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号処理に関する。
【背景技術】
【０００２】
デジタル信号処理は、広範なアプリケーションに利用される。これらのアプリケーションの多くは、エンドユーザに意味のあるもの又は有用なものにするため、データ処理に対する時間の制約が存在するという意味でリアルタイムである。この具体例は、デジタルテレビやデジタルラジオなどのデジタル放送ストリームである。デジタル信号処理システムは、受信とほぼ同時にデータが出力されることを可能にするのに十分迅速にリアルタイムストリームを処理及び復号化することが可能である必要がある（ｂａｒｒｉｎｇ  ｂｕｆｆｅｒｉｎｇ）。
【０００３】
デジタル信号処理システムは、より汎用的なデジタル信号プロセッサに加えて、１以上の専用のハードウェア周辺装置をしばしば利用する。ハードウェア周辺装置は、迅速かつ効率的に特定の信号処理タスクを実行するよう設計された処理ブロックである。例えば、インタリーブ処理及びデインタリーブ処理は、ハードウェア周辺装置を用いてリアルタイムデータに対して通常実行される処理である。インタリーブ処理及びデインタリーブ処理は、メモリ集約的処理であり、これを実行するハードウェア周辺装置は、データをリオーダリングするため、付属の専用のメモリ装置を利用する。
【０００４】
しかしながら、異なるタイプのリアルタイムデータの要求は大きく変わるものである可能性がある。例えば、世界中で利用される各種の異なるデジタルテレビ及びラジオの規格は、符号化、インタリーブ処理、等化などの異なるタイプ又はパラメータを利用するなど、しばしばリアルタイムデータを異なって構成している。デジタル信号処理システムは異なる規格により利用されるのに十分フレキシブルであるべきである場合、インタリーブ処理又はデインタリーブ処理に利用される専用のメモリ装置は、最大のメモリ要求によって規格を処理するため十分大きなものである必要がある。この結果、インタリーブ処理又はデインタリーブ処理ハードウェア周辺装置により利用されるメモリは、しばしば過少利用される。
【０００５】
メモリ装置の具体例は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置である。ＤＲＡＭ装置は、各ページが典型的には数千バイトのサイズのページに格納したコンテンツを構成する。各ＤＲＡＭは、限定数のページしか一度に開くことができず（典型的には、４ページ）、多くのオーバヘッドサイクルが、データにアクセスするのにページを開くために必要とされる。
【０００６】
後述される実施例は、既知のデジタル信号処理システムの問題点の何れか又はすべてを解決する実現形態に限定されるものでない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本概要は、詳細な説明においてさらに後述されるコンセプトを簡略された形式により紹介するため提供される。本概要は、請求される主題のキーとなる特徴又は必須の特徴を特定することを意図するものでなく、また請求される主題の範囲を決定するのに役立つものとして利用されることを意図するものでない。
【０００８】
本発明の１つの課題は、ロー・カラムインタリーブされたデータのタイルベースのインタリーブ処理及びデインタリーブ処理のための技術を提供することである。
【課題を解決するための手段】
【０００９】
一実施例では、デインタリーブ処理は、オンチップメモリからＤＲＡＭへの第１のメモリ転送段階とＤＲＡＭからオンチップメモリへの第２のメモリ転送段階との２つのメモリ転送段階に分割される。各段階は、ロー・カラムインタリーブされたデータブロックの一部に対して実行され、第２段階の出力がデインタリーブされたデータを有するように、データアイテムをリオーダリングする。第１段階では、データアイテムは、メモリリードアドレスの非リニアシーケンスに従ってオンチップメモリから読み込まれ、ＤＲＡＭに書き込まれる。第２段階では、データアイテムは、ＤＲＡＭインタフェースを効率的に利用するリニアアドレスシーケンスのバーストに従ってＤＲＡＭから読み込まれ、メモリライトアドレスの非リニアシーケンスに従ってオンチップメモリに書き込まれる。
【００１０】
第１の態様は、第１シーケンスに配置される複数のデータアイテムを格納する第１メモリであって、各データアイテムが前記第１メモリ上の関連するメモリアドレスを有する、前記第１メモリと、第２メモリと、前記第１メモリと前記第２メモリとに接続され、ＤＲＡＭに対するポートを有する転送エンジンであって、第１メモリ転送段階において前記第１メモリから前記ＤＲＡＭに前記複数のデータアイテムを直接転送し、第２メモリ転送段階において前記ＤＲＡＭから前記第２メモリに前記複数のデータアイテムを直接転送するよう構成される前記転送エンジンとを有するデジタル信号処理システムオンチップであって、前記第１メモリ転送段階において、前記転送エンジンは、所定のメモリリードアドレスの非リニアシーケンスに従って前記第１メモリから前記複数のデータアイテムを読み込み、前記複数のデータアイテムを前記ＤＲＡＭに書き込むよう構成され、前記第２メモリ転送段階において、前記転送エンジンは、リニアアドレスシーケンスの各バーストがＤＲＡＭインタフェースのバーストサイズに基づき選択された長さを有する、リニアアドレスシーケンスのバーストに従って前記ＤＲＡＭから前記複数のデータアイテムを読み込み、前記複数のデータアイテムが前記第１シーケンスと異なる第２シーケンスにより前記第２メモリに配置されるように、所定のメモリライトアドレスの非リニアシーケンスに従って前記複数のデータアイテムを前記第２メモリに書き込むよう構成され、前記第１シーケンスと前記第２シーケンスとの１つは、ロー・カラムインタリーブされたデータを有するデジタル信号処理システムオンチップを提供する。
【００１１】
第２の態様は、デジタル信号処理システムにおいてデータアイテムに対してインタリーブ又はデインタリーブ処理を実行する方法であって、第１オンチップメモリから、所定のメモリリードアドレスの非リニアシーケンスに従って第１シーケンスに格納されている第１の複数のデータアイテムを読み込むステップと、前記第１の複数のデータアイテムをＤＲＡＭに書き込むステップと、前記ＤＲＡＭから、リニアアドレスシーケンスの各バーストがＤＲＡＭインタフェースのバーストサイズに基づき選択される長さを有する、リニアアドレスシーケンスのバーストに従って前記第１の複数のデータアイテムを読み込むステップと、前記データアイテムが前記第１シーケンスと異なる第２シーケンスにより第２オンチップメモリ上に配置されるように、所定のメモリライトアドレスの非リニアシーケンスに従って前記第１の複数のデータアイテムを前記第２オンチップメモリに書き込むステップとを有し、前記第１シーケンスと前記第２シーケンスとの１つは、ロー・カラムインタリーブされたデータを有する方法を提供する。
【００１２】
第３の態様は、コンピュータ上で実行されると、上述した方法の何れかのすべてのステップを実行するよう構成されるコンピュータプログラムコードを有するコンピュータプログラムを提供する。コンピュータプログラムは、コンピュータ可読記憶媒体上で実現されてもよい。
【００１３】
第４の態様は、図５〜１０の何れかを参照して説明されるようなインタリーブ処理又はデインタリーブ処理を実行する方法を提供する。
【００１４】
ここに記載される方法は、例えば、説明された方法の構成要素となる部分を実行するようコンピュータを設定するコンピュータプログラムコードを有するコンピュータプログラムの形態などにより、有形の記憶媒体に格納されたマシーン可読形態のソフトウェアにより設定されたコンピュータにより実行されてもよい。有形な（又は非一時的な）記憶媒体の具体例として、ディスク、サムドライブ、メモリカードなどがあげられ、伝搬信号は含まない。ソフトウェアは、方法のステップが何れか適切な順序により又は同時に実行されるように、パラレルプロセッサ又はシリアルプロセッサにより実行に適したものとすることが可能である。
【００１５】
これは、ファームウェア及びソフトウェアが価値のある分離して取引可能な商品とすることが可能であることを認める。所望の機能を実行するため、“ダム”又は標準的なハードウェアを実行又は制御するソフトウェアを網羅することが意図される。また、所望の機能を実行するため、ユニバーサルプログラムマブルチップを設定するため又はシリコンチップを設計するため利用されるように、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）ソフトウェアなどのハードウェアのコンフィギュレーションを記述又は定義するソフトウェアを含むことが意図される。
【００１６】
上記特徴は、適切な場合、当業者に明らかなように組み合わされてもよく、実施例の態様の何れかと組み合わせ可能である。
【発明の効果】
【００１７】
本発明によると、ロー・カラムインタリーブされたデータのタイルベースのインタリーブ処理及びデインタリーブ処理のための技術を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、デジタル信号処理システムを示す。
【図２】図２は、転送エンジンの概略図を示す。
【図３】図３は、デインタリーブ処理の各種の方法例を示す概略図を示す。
【図４】図４は、転送エンジンを利用して２つのデータブロックに対して実行されるロー・カラム処理の具体例を示す。
【図５】図５は、デインタリーブ処理のさらなる２つの方法例を示す概略図を示す。
【図６】図６は、ＤＲＡＭ装置の制限に対抗するためのエンハンスメントを有する図４のロー・カラム処理の具体例を示す。
【図７】図７は、一例となる時間インタリーブ処理されたデータブロックを示す。
【図８】図８は、デインタリーブ処理の方法例のフロー図である。
【図９】図９は、図７に示されるような入力されたインタリーブ処理されたブロックの図８の方法の第１段階の終了時にＤＲＡＭに格納されるデータアイテムのグリッド表示を示す。
【図１０】図１０は、図７に示されるような入力されたインタリーブ処理されたブロックの図８の方法の第２段階の終了時にオンチップメモリに格納されるデータアイテムのグリッド表示を示す。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて本発明の実施の形態を説明する。図面を通じて、共通の参照番号は同様の特徴を示すのに利用される。
【００２０】
各実施例は、例示のため以下で説明される。これらの具体例は、実施例を実現可能な唯一の方法ではないが、現在出願人が知っている実施例を実現するための最善の方法を表すものである。本説明は、具体例の機能と、当該具体例を構成及び実行するためのステップシーケンスとを提供する。しかしながら、同一の又は等価な機能及びシーケンスが、異なる具体例により実現されてもよい。汎用デジタル信号プロセッサ（ＤＳＰ）と特殊なハードウェア周辺装置との双方を利用するデジタル信号処理システムが後述される。メモリの効率的な利用を可能にするため、システムの異なる要素が共有されるオンチップメモリにアクセスする。ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラなどの転送エンジンによって、データアイテムがオンチップメモリとの間で読み書きされる。オンチップメモリは、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を有し、転送エンジンはまた、外部の又はチップ上のＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）に対するポートを有する。転送エンジンは、データアイテムの各種シーケンスがメモリとの間で読み書きされることを可能にするアドレス生成要素を有し、当該シーケンスは、データアイテムのリニア及び非リニアシーケンスを有してもよい。
【００２１】
“リニア”という用語は、ここではデータアイテムのシーケンスのリード処理／ライト処理に関連して、連続的なデータアイテムのリード処理／ライト処理を表すのに利用される。他方、“非リニア”という用語は、ここではデータアイテムのシーケンスのリード処理／ライト処理に関連して、不連続なデータアイテムのリード処理／ライト処理を表すのに利用され、非リニアシーケンスの具体例が後述される。
【００２２】
以下の説明において、ＤＲＡＭの利用は、シンクロナスＤＲＡＭ、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＤＲＡＭ及びバーストアクセスＤＲＡＭを含む何れかの形態のＤＲＡＭをカバーすることが意図される。上述されるように、ＤＲＡＭ装置は、格納されたコンテンツをページに構成し、一度には限定数のページしか開くことができない。何れかのタイプのＤＲＡＭにアクセスすると、異なるページに頻繁にアクセスするデータアクセスパターンは、ページを開くのに多くのオーバヘッドサイクルを必要とするため、非効率的なものとなりうる。バーストアクセスＤＲＡＭでは、ＤＲＡＭインタフェースは、４，８，１６，３２又は６４（又はそれ以上）の連続するバイトのバーストを読み書きする。不完全なＤＲＡＭインタフェースバーストを利用するアクセスパターンもまた非効率的である。
【００２３】
データアイテムの異なるシーケンスを読み書きする能力は、データアイテムがメモリ位置間で又はあるメモリから他のメモリ（ＳＲＡＭとＤＲＡＭとの間など）に転送されながら、インタリーブ処理やデインタリーブ処理などのリオーダリング処理がまとめてデータアイテムに対して実行されることを可能にするこれは、インタリーブ処理やデインタリーブ処理により利用されるデジタル信号処理システムに専用の（共有されない）メモリが含まれる必要を回避し、チップ面積及びコストを低下させる。利用される異なるシーケンスは、以下でより詳細に説明されるように、ＤＲＡＭ（面積及びコストに関してＤＲＡＭよりも利用するのが安価で、より大きなＤＲＡＭが利用されてもよい）など、特定のタイプのメモリ装置のパフォーマンスの制約に対抗するよう構成されてもよい。
【００２４】
以下の説明では、時間インタリーブ処理／デインタリーブ処理が例示のために利用されるが、本方法はビットインタリーブ処理／デインタリーブ処理などの他の形態のインタリーブ処理／デインタリーブ処理にも適用可能であることが理解されるであろう。
【００２５】
まず、一例となるデジタル信号処理システムオンチップ１００の構成を示す図１が参照される。システム１００は、オンチップメモリ１０２と、転送エンジン１０６に接続されるＤＲＡＭ１１２とを有する。メモリ装置１０２，１１２の双方が、データアイテムの格納のため利用され、それらは共に、共有メモリスペース（例えば、ＭＰＥＧ又は他のビデオストリーム関連データと共に、デジタル信号処理システムに関するデータを格納する）を設けるようにしてもよい。オンチップメモリ１０２は、ＤＲＡＭではないが、ＳＲＡＭ（限定せず）などの何れか適切な形態のＲＡＭとすることが可能である。ＤＲＡＭ１１２は、チップ上又はチップの外部にあってもよく（それはＤＳＰ１０４により直接的にはアクセス可能でないという意味で）、以下の説明では、“オンチップ”メモリという用語は、ＤＲＡＭ１１２がまたオンチップメモリであるという事実にもかかわらず（すなわち、同じシリコン部分上に形成されるように、システム１００のオンチップの一体化された部分）、非ＤＲＡＭメモリ要素であるオンチップメモリ１０２を表すのに利用される。
【００２６】
１以上のＤＳＰ１０４は、オンチップメモリ１０２に接続される。ＤＳＰ１０４は、例えば、高速フーリエ変換及び等化など、データに対して信号処理計算を実行するようプログラム可能なプロセッサである。汎用プロセッサとみなされることはないが、ＤＳＰ１０４は、後述されるハードウェア周辺装置よりも設定可能なものである。ＤＳＰ１０４は、オンチップメモリ１０２からデータを読み、当該データに対して信号処理演算を実行し、オンチップメモリ１０２にデータを書き戻すためのプログラムコード／命令を実行する。
【００２７】
複数のハードウェア（ＨＷ）周辺装置１０８のためオンチップメモリ１０２へのアクセスを提供する転送エンジン１０６がまた、オンチップメモリ１０２に接続される。いくつかの具体例では、転送エンジン１０６は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラの形態をとりうる。転送エンジン１０６は、オンチップメモリ１０２との間のデータのリード処理又はライト処理を可能にするため、ハードウェア周辺装置１０８により利用可能な複数のメモリアクセスチャネル（ＤＭＡチャネルなど）を提供する。
【００２８】
上述されるように、ハードウェア周辺装置１０８は、特定の信号処理タスクを実行するため構成される特化した専用の固定機能ハードウェアブロックである。例えば、１つのハードウェア周辺装置は、特化したＶｉｔｅｒｂｉ復号化ブロックであってもよく、他のものは特化したＲｅｅｄ−Ｓｏｌｏｍｏｎ復号化ブロックであってもよい。ハードウェア周辺装置はまた、アクセラレータとして知られてもよい。各ハードウェア周辺装置は、互いに独立して動作する。ハードウェア周辺装置は、各自のタスクに固有の動作パラメータにより提供されるのに十分設定可能なものであってもよいが、各自のタスクを変更するのに十分設定可能なものではない（例えば、Ｖｉｔｅｒｂｉブロックは、Ｒｅｅｄ−Ｓｏｌｏｍｏｎブロックとして再構成することができないなど）。従って、ハードウェア周辺装置は、ＤＳＰ１０４よりも特定のタスクに特化したものとなる。しかしながら、ハードウェア周辺装置は、極めて迅速かつ効率的に各自の特化したタスクを実行するよう構成される。また、デジタル信号処理システムの処理を初期化、設定及び制御するのに利用可能な全体制御プロセッサ１１０がまた、オンチップメモリ１０２に接続される。
【００２９】
上述されたデジタル信号処理システムは、信号処理演算においてフレキシビリティを提供する。例えば、システムは、異なるＤＳＰ１０４及びハードウェア周辺装置１０８が何れか所望の構成又はシーケンスによりデータを処理するため動作するよう構成可能である。各ハードウェア周辺装置又はＤＳＰは、システムの他の部分により提供され、オンチップメモリ１０２に格納される１以上のデータブロック（ここでは、データのバッファとも呼ばれる）上で動作可能であり、システムの他の要素により利用される１以上のデータのバッファを生成及び格納する。これは、デジタル信号処理システムが、例えば、異なる放送／通信規格について、異なるタイプの広範な信号について利用されることを可能にする。
【００３０】
オンチップメモリ１０２により提供される共通のメモリスペースの利用は、システム１００のオンチップに用意されたトータルのメモリ格納量の低減を可能にする。共通のメモリスペースを利用しない場合、各処理要素には各自の専用のメモリが設けられる。例えば、各ＤＳＰ１０４は、各自のワークスペースメモリを有してもよく、全体制御プロセッサ１１０は、実行コード及びデータを格納するための他の別のメモリを有し、ハードウェア周辺装置１０８は、入力及び出力バッファを有し、１以上の追加的なメモリが、処理要素間のデータのやりとりのため利用されてもよい。
【００３１】
デジタル信号処理システムは、異なる通信規格が実現されることを可能にするため設定可能であるため、各個別のメモリは、何れか与えられたメモリに対する最大要求を有する特定の規格のために独立してサイズが設計される必要がある。すなわち、ＤＳＰメモリは、ＤＳＰメモリに対して最大の要求を有する規格を収容するのに十分な大きさである必要がある。同様に、ハードウェア周辺装置のバッファは、ハードウェア周辺装置のバッファに対して最大の要求を有する規格を収容するのに十分な大きさである必要がある（大きなＤＳＰメモリの要求を有する規格と異なるものであるかもしれない）。この結果、有意なメモリ量が処理要素の一部によって一般には未使用となる。
【００３２】
しかしながら、共通のメモリスペースがオンチップメモリ１０２により提供される場合、異なる規格のメモリ要求は全体として考慮することができる（システムの個々の要素に対する要求でなく）。すなわち、オンチップメモリ１０２は、各規格の最大となるトータルのメモリ要求を収容するのに十分な大きさである必要がある。これは、各規格の間の異なるメモリ要求を平均化するという効果を有する（例えば、ある規格はより大きなＤＳＰメモリを要求するが、より小さなバッファしか要求せず、他の規格はその反対である可能性がある）。これは、有意により小さな全体のメモリ量しか要求しないという効果を有し、シリコン面積を節約する。
【００３３】
オンチップメモリ１０２により提供される共通のメモリスペースは、デジタル信号プロセッサのワークスペース、全体制御プロセッサの実行コード及びデータ、１以上のハードウェア周辺装置の入力及び出力バッファ、プロセッサ間でデータをやりとりするための１以上のバッファなど、システムにより利用される異なるタイプのデータのすべてと共に、デジタル信号処理システムの他の設定データを保持可能である。
【００３４】
次に、転送エンジン１０６の概略図を示す図２が参照される。転送エンジン１０６は、オンチップメモリ１０２に接続するよう構成される第１メモリポート２０２と、ＤＲＡＭ１１２に接続するよう構成される第２メモリポート２０４とを有する。転送エンジン１０６はまた、各周辺ポート２０６が関連するハードウェア周辺装置１０８に接続するよう構成される複数の周辺ポート２０６を有する。メモリポート２０２，２０４と周辺ポート２０６とはすべて、これらのポートの何れかがこれらのポートの他の何れかに接続されることを可能にするクロスバー２０８に接続される。
【００３５】
転送エンジン１０６はさらに、メモリポート２０２，２０４の双方に接続され、メモリポート２０２，２０４に接続されるメモリの一方又は双方についてリード及び／又はライトアドレスのシーケンスを生成するよう構成されるアドレス生成要素２１０を有する。いくつかの具体例では、アドレス生成要素２１０は、いくつかの異なるモード（リニア及び非リニアモードなど）により動作するようプログラムされ、可能なモードセットから１以上の動作モードを選択するよう構成される設定可能なアドレス生成装置を有してもよい。他の具体例では、アドレス生成要素２１０は、特定のアドレスシーケンスを生成するよう構成される１以上の専用のハードウェアブロックを有してもよい（例えば、特定のデータアイテム構成のためのロー・カラムモードを利用したシーケンス、特定のデータアイテム構成のためのバーストロー・カラムモードを利用したシーケンスなど）。いくつかの具体例では、アドレス生成要素２１０は、リニアシーケンスと非リニアシーケンスとの双方を生成してもよく、他の具体例では、直接的な接続がリニアシーケンスに利用され、アドレス生成要素は、非リニアシーケンスのみを生成するのに利用されてもよい。
【００３６】
リード及び／又はライトアドレスの非リニアシーケンスを生成することによって、アドレス生成要素２１０は、転送エンジン１０６のポートの１つに接続されたメモリ（オンチップメモリ１０２又はＤＲＡＭ１１２など）に格納されるデータアイテムの非リニアリオーダリングを実行できる。例えば、図２は、オンチップメモリ１０２に格納されているデータアイテムの第１シーケンス２１２がＤＲＡＭ１１２への転送中にどのようにしてリオーダリングできるかを示す。図２の具体例では、０〜７により示されるメモリアドレスに格納されるオンチップメモリ１０２上に８つのデータアイテムがある。他の具体例では、メモリアドレスは、ゼロ以外のベースアドレスからスタートすることができ、及び／又は各データアイテムは、メモリ装置上の単一のメモリ位置より大きなものとすることができる。本例では、これらのデータアイテムは、ＤＲＡＭ１１２に転送されるが、第１シーケンス２１２と異なる第２シーケンス２１４にオーダリングされる。簡単化のため、他の具体例では、当該アドレスはゼロ以外のベースアドレスからスタートできるが、第２シーケンス２１４のデータアイテムは、ＤＲＡＭ１１２上の０’〜７’により示されるメモリアドレスに格納される。
【００３７】
第１の具体例では、アドレス生成要素２１０は、［３，６，４，１，２，７，０，５］の非リニアリードシーケンスを生成し、当該リードシーケンスを第１メモリポート２０２に提供することができる。アドレス生成要素２１０はまた、［０’，１’，２’，３’，４’，５’，６’，７’］のリニアライトシーケンスを生成し、これを第２メモリポート２０４に提供することができる（ＤＲＡＭ１１２上の当該アドレスは、単なる説明だけのため、オンチップメモリ１０２上のアドレスと区別するため、０’，１’などと示される）。これは、第１メモリポート２０２にリードシーケンスの第１アドレス（アドレス３）からデータアイテムをまずリードさせ、それは本例ではデータアイテム“Ａ”である。当該データアイテムは、クロスバー２０８を介し第２メモリポート２０４にわたされ、当該データアイテムをライトシーケンスの第１メモリアドレス（アドレス０’）に書き込む。これは、データアイテム“Ａ”を第１シーケンス２１２の第４データアイテムから第２シーケンス２１４の第１データアイテムにリオーダリングさせる。当該処理は、リードシーケンスの次のアドレス（アドレス６、アドレス４など）を読み、ライトシーケンスの次のアドレス（アドレス１’、アドレス２’，．．．）に対応するデータアイテム（Ｂ，Ｃ，．．．）に書き込むことによって繰り返される。この結果、第１シーケンスからのデータアイテム（Ｇ，Ｄ，Ｅ，Ａ，Ｃ，Ｈ，Ｂ，Ｆ）は、ＤＲＡＭ上で第２シーケンス（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ）に格納される。
【００３８】
第２の具体例では、データアイテムの同一のリオーダリングがまた、アドレス生成要素２１０が［０，１，２，３，４，５，６，７］のリニアリードシーケンスと、［６’，３’，４’，０’，２’，７’，１’，５’］の非リニアライトシーケンスとを生成することによって実現可能である。本例では、データアイテム“Ｇ”がまず、オンチップメモリのアドレス０から読まれ、ＤＲＡＭ上のアドレス６’に書き込まれ、次にデータアイテム“Ｄ”が、オンチップメモリのアドレス１から読まれ、ＤＲＡＭ上のアドレス３’に書き込まれるなどされる。同様に、第３の具体例では、データアイテムの同一のリオーダリングがまた、アドレス生成要素２１０が非リニアリードシーケンスと非リニアライトシーケンスとを生成することによって実現できる。これの一例は、［０，２，４，６，１，３，５，７］のリードシーケンスと、［６’，４’，２’，１’，３’，０’，７’，５’］のライトシーケンスとになるであろう。
【００３９】
上記の各具体例では、第１シーケンスから第２シーケンスへのリオーダリングは、転送エンジン１０６によってオンチップメモリ１０２からＤＲＡＭ１１２へのデータアイテムの直接的な転送中に同時に実行される。同様の処理がまた、ＤＲＡＭ１１２からオンチップメモリ１０２への転送のため、又はオンチップメモリからオンチップメモリの他の位置への転送のため、及びＤＲＡＭからＤＲＡＭの他のアドレスへの転送のため実行される。
【００４０】
上記の具体例はまた、リード及びライトアドレスシーケンスが転送の実行前に完全に生成されることを示した。しかしながら、当該アドレスシーケンスの生成はまた、例えば、１以上の以前のデータアイテムが読み書きされているとき、１以上のリード及びライトアドレスを生成することによって、転送と同時に実行可能である。
【００４１】
上述された処理は、オンチップメモリ１０２のデータアイテムが、ＤＲＡＭ１１２へのメモリ転送処理の必須の部分として異なるシーケンスにリオーダリングされることを可能にし、同様に、ＤＲＡＭ１１２上のデータアイテムは、オンチップメモリ１０２へのメモリ転送処理の一部として異なるシーケンスにリオーダリングできる。これは、例えば、インタリーブ処理スキームに従ってリード／ライトアドレスシーケンスを生成するよう構成されるアドレス生成要素２１０を利用するなどによって、インタリーブ処理又はデインタリーブ処理を実現するのに利用可能である。
【００４２】
図３は、デインタリーブ処理の各種の方法例を示す概略図を示す。第１の概略図３００では、デインタリーブ処理が、オンチップメモリ１０２からオンチップメモリ１０２への単一の転送において実行される。以降の２つの概略図３０２，３０４では、オンチップメモリ１０２からＤＲＡＭ１１２への１つの転送と、ＤＲＡＭからオンチップメモリ１０２への第２の転送との２つの転送がある。第２概略図３０２では、オンチップメモリ１０２に格納されるデータアイテムのデインタリーブ処理は、リニアライトシーケンスに従ってデータアイテムをＤＲＡＭ１１２に書き込み、“ロー・カラムモード”又は“ロー・カラムインタリーブ”として参照されてもよい特定の非リニアシーケンスを利用して、それらをＤＲＡＭ１１２から読むことによって、実行されてもよい。この非リニアシーケンスは、図４を参照して以下で詳細に説明される。あるいは、データアイテムのデインタリーブ処理は、図３の第３の概略図３０４に示されるように、ロー・カラムモードを利用してデータアイテムをＤＲＡＭ１１２に書き込み、それらをリニアに読むことによって実行されてもよい。
【００４３】
図３に示されるすべての実現形態では、デインタリーブ処理は、すべてのインタリーブ処理されたデータが入力メモリ（すなわち、図３の各図の左側に示されるオンチップメモリ１０２）に格納されるまでスタートすることはできない。
【００４４】
ロー・カラムモードは、複数のロー及びカラムを有する１以上のグリッド又はテーブルに配置されるデータアイテムを検討する。これは、０〜２３の連続的なメモリアドレスを有する（説明のためのみ）入力データアイテムの第１ブロック４０２と、２４〜４７の連続的なメモリアドレスを有する（再び説明のためのみ）入力データアイテムの第２ブロック４０４とを示す図４に示される。図３の第２の具体例３０２を参照してロー・カラムモードを説明する場合、これらのメモリアドレスはＤＲＡＭ１１２にある。図４に示される具体例では、データアイテムは、図４の破線により示されるように、６データアイテム毎にカラムブレークを有すると考えられる。これは、連続的なメモリアドレスが６つのローを有するグリッドのカラムに沿って配置されるとみなされることを意味する（これは、データがカラムの下方に読み書きされると説明されてもよい）。
【００４５】
グリッド形式に提供されるデータアイテムは、入力データアイテム４０２の第１ブロックの第１グリッド４０６と、入力データアイテム４０４の第２ブロックの第２グリッド４０８とを示す図４において示される。第１グリッドと第２グリッドとは共に、６つのローと４つのカラムとを有する。連続的にアドレス指定されるデータアイテムはカラムの下方に配置されることに留意できる。しかしながら、他の具体例では、データアイテムはまた、連続的なアイテムがローに沿って配置されるように提供可能であり、この場合、以下の説明は依然として適用されるが、ローとカラムとの参照が逆にされる。
【００４６】
ロー・カラムモードの目的は、入力データアイテム（ＤＲＡＭ１１２などから）がグリッドのカラムをトラバースするシーケンスに配置されるとき、出力データアイテム（オンチップメモリ１０２への出力などとして）が、グリッドのローをトラバースするシーケンスに配置されるように、各グリッドを転置することである。例えば、グリッド４０６を参照すると、入力データシーケンスの最初の４つのデータアイテムがＡ，Ｂ，Ｃ，Ｄである場合（第１カラムを下方に４つのアイテムを読む）、出力データシーケンスの最初の４つのデータアイテムは、Ａ，Ｇ，Ｍ，Ｓ（第１ローに沿って４つのアイテムを読む）である。このようなロー・カラム処理は、いくつのローがグリッドに提供されるものとしてどのように定義されるかに依存して、データアイテムの順序を変更する。
【００４７】
ロー・カラムモードを実現するため、アドレス生成要素２１０は、ロー・カラム転置をもたらすリード及びライトシーケンスを生成する。これは、非リニアリードシーケンス（ＤＲＡＭ１１２などから）とリニアライトシーケンス（図４に示され、以下で詳細に説明される）とを生成することによって、又はリニアリードシーケンス（オンチップメモリ１０２などから）と非リニアライトシーケンス（図３の第３の具体例３０４に示されるように）とを生成することによって、実現可能である。さらなる具体例では、非リニアリードシーケンスと非リニアライトシーケンスとがまた、図６を参照して後述されるように、効率的なメモリアクセスを可能にするため利用可能である。
【００４８】
図４は、不連続なメモリアドレスを有すると理解できる非リニアリードシーケンス４１０の具体例を示す。一例では、アドレスシーケンスは、以下の擬似コードにより示されるアルゴリズムを利用して生成可能である。
【００４９】
【表１】
0005575310.tif 000002
ここで、“ｒｏｗｓ”（Ｎ１）はグリッドのロー数であり（図４の例では６）、“ｃｏｌｕｍｎｓ”はグリッドのカラム数であり（図４の例では４）、“ｎｕｍＢｌｏｃｋｓ”はデータアイテムのブロック数であり（図４の例では２）、“ｎｕｍＩｔｅｍｓ”はすべてのブロックにおけるデータアイテムの合計数である（図４の例では４８）。変数“ａ”，“ｂ”及び“ｏ”は、すべてが０以上に初期化されるか、又はオフセットを適用するため非ゼロ値に初期化されるアルゴリズム内で利用される内部変数である。
【００５０】
Ｎ０（ローの個数とカラムの個数との積）、Ｎ１（グリッドのローの個数）、及びＮ２（ローの個数、カラムの個数及びデータアイテムのブロック数の積の初期値を計算した後、アルゴリズムは、存在するデータアイテムの個数について繰り返しを行い、各繰り返しにおいてシーケンスの次のアドレス（“ｎｅｘｔＩｔｅｍＡｄｄｒ”）を計算する。効果的には、アルゴリズムは、ローのエンドに到達するまで（最初の“ｉｆ”ステートメントにより判定される）、入力シーケンスから固定数のデータアイテムをスキップし（図４では６など）、その後、当該ローのスタートポイントを１だけインクリメントし、繰り返す。ブロックのエンドは、第２の“ｉｆ”ステートメントにより検出され、計算をリセットするが、剰余演算ｒｅｍ（．）から計算されるオフセットを加える（図４では２４）。その後、当該処理は、“ｎｕｍＩｔｅｍｓ”に到達するまで繰り返される。“ｎｕｍＩｔｅｍｓ”は存在するデータアイテムの合計数より大きな値に設定可能であり、そうである場合、アルゴリズムは、すべてのブロックがアクセスされると第１ブロックに戻ることに留意されたい。
【００５１】
上記アルゴリズムにより生成されるリードシーケンス４１０は、先頭のローが第１ブロックのシーケンスを示し（グリッド４０６）、最後のローが第２ブロックのシーケンスを示す（グリッド４０８）図４に示される。リードシーケンス４１０の最初の４つのアイテムを一例として取り上げると、これらは、入力データアイテム４０２からデータアイテムＡ，Ｇ，Ｍ，Ｓに対応するアドレス０，６，１２，１８から読む。これは、グリッド４０６の第１ローに対応すると理解できる。
【００５２】
アドレス生成要素２１０は、リードシーケンス４１０及びライトシーケンス４１２が転送エンジン１０６により利用されるとき、データアイテムが非リニアシーケンスにおいて読まれ、リニアシーケンスにおいて書き込まれるように、連続するメモリアドレスを有するリニアライトシーケンス４１２を生成する。図４のライトシーケンスは簡単化のため０〜４７のアドレスを有するが、他の具体例では、アドレスは何れかのベースアドレスからスタート可能であることに留意されたい。リードシーケンス４１０とライトシーケンス４１２との組み合わせの結果は、出力データアイテム４１４の第１ブロックと出力データアイテム４１６の第２ブロックとに見つけることができる。これらの出力データアイテムをグリッド４０６，４０８と比較することによって、ロー・カラム処理の実行が成功したことが確認できる。
【００５３】
同じ結果がまた、以下のようにリニアリードシーケンスと非リニアライトシーケンス（図３の第２の具体例３０４などと同様に）とを生成することによって取得可能である（簡単化のため、第１ブロックのみが示される）。
【００５４】
【表２】
0005575310.tif 000003
非リニアライトシーケンスは、詳細に上述された非リニアリードシーケンスに対して同様の技術を利用して生成可能である。上記の具体例は、アドレス生成要素２１０が、データアイテムのセットに対するロー・カラム交換など、インタリーブ処理／デインタリーブ処理を実現するのにどのように利用可能であるか示す。
【００５５】
図５は、ＤＲＡＭ１１２とやりとりすることによりより効率的であるデインタリーブ処理のさらなる２つの方法例を示す概略図５０２，５０６を示す。これらの方法の双方が、時間でインタリーブ処理を２つのメモリ間転送処理（オンチップメモリからＤＲＡＭと、その後のＤＲＡＭからオンチップメモリ）に分割し、各処理は、少なくとも１つの非リニアアドレスシーケンスを利用する。これらの方法の双方はまた、ロー・カラム（Ｒ−Ｃ）モード（図４の矢印５２１，５６１を参照して上述されたような）とバーストロー・カラム（Ｂ  Ｒ−Ｃ）モード（矢印５２３，５２４，５６２〜５６４）との組み合わせを利用する。
【００５６】
図５は、データアイテムがオンチップメモリ１０２からＤＲＡＭ１１２に転送され、その後にオンチップメモリ１０２に戻されることを示すが、データアイテムは、オンチップメモリから別のオンチップメモリに書き戻されてもよいことが理解されるであろう。データアイテムはオンチップメモリ１０２から最初に読まれるか、又はオンチップメモリ１０２の異なる部分に書き戻されてもよい。一例では、データアイテムは、タイリングバッファと呼ばれるオンチップメモリ１０２の一部から読み込まれ（矢印５２１，５６１により示される処理において）、その後に、デインタリーバ出力バッファと呼ばれるオンチップメモリ１０２の別の部分に（デインタリーブ処理形態により）書き戻されてもよい（矢印５２４，５６４により示される処理において）。これら２つのバッファは、異なるサイズを有してもよい。以下の説明では、同一のオンチップメモリ１０２との間で転送されるデータアイテムの参照は単なる例示であり、説明された方法はまた、あるオンチップメモリ要素から他のオンチップメモリ要素（ＤＲＡＭを介し）に、又はオンチップメモリ１０２の一部からオンチップメモリ１０２の他の部分（ＤＲＡＭを介し）にデータアイテムを転送するのに利用されてもよい。
【００５７】
バーストロー・カラムモードは、上述されたロー・カラムモードの変形とみなされてもよいし、あるいは、ロー・カラムモードは、１のバースト長を有するバーストロー・カラムの特定のインスタンスとみなされてもよい。バーストロー・カラムモードは、ロー及びカラムを有するグリッド（上述されたような）にデータが配置されることを考える。しかしながら、ローに沿ってトラバースしながら各カラムから１つのデータアイテムを単に読むのでなく（ロー・カラムケースと同様に）、バーストロー・カラムモードは、ローに沿って次のカラムにスキップする前に（すなわち、（ｒ−Ｌ）個のデータアイテムをスキップすることによって（ただし、ｒ＝グリッドにおけるローの個数）、所定数の連続するアドレスを読む（当該所定数は、“バースト長”Ｌと呼ばれる）。例えば、図４のグリッド４０６を参照して、バースト長が３である場合、バーストロー・カラムモードはまず、１つのバーストにおいて３つの連続するアイテム（アイテムＡ，Ｂ，Ｃ）を読み、その後に次のカラムに移動し、次の３つの連続するアイテム（Ｇ，Ｈ，Ｉ）を読み、次に、Ｍ，Ｎ，Ｏと、その後のＳ，Ｔ，Ｕを読む。その後、第１カラムにラップバックし、Ｄ，Ｅ，Ｆを読み、口のＪ，Ｋ，Ｌを読むなどである。従って、バーストロー・カラムモードは、１つのみでなく連続するデータアイテムのグループが読まれる点を除き、ロー・カラムモードと同じであるとみなすことが可能であり、あるいは、ロー・カラムモードは１に等しいバースト長を有するバーストロー・カラムモードであるとみなされてもよい。
【００５８】
バーストロー・カラムモードのリードシーケンスは、一例では、以下の擬似コードにより示されるアルゴリズムを用いて生成可能である。
【００５９】
【表３】
0005575310.tif 000004
この擬似コードの変数は、ロー・カラムモードの説明において上述されたように定義される。さらに、“ｂｕｒｓｔＬｅｎｇｔｈ”（Ｎ３）は、各バーストにおいて読む連続するアイテムの個数であり、Ｎ４はローの個数（Ｎ１）とカラムの個数との積からＮ３を差し引いたものである。バーストロー・カラム演算のライトシーケンスがまた、同様にして生成可能であることに留意されたい。
【００６０】
バーストロー・カラムモードは、特にＢ  Ｒ−Ｃモードにおけるバースト長（Ｌ）がＤＲＡＭインタフェースバーストサイズと同一又は近い場合、ＤＲＡＭ１１２などの特定タイプのメモリ装置によってデインタリーブ処理が効率的に実行されることを可能にするのに利用可能である。このようにして（又は後述される他の具体例に従って）、ＤＲＡＭインタフェースバーストサイズに基づきバースト長（又はバーストサイズ）を選択することによって、これは、ＤＲＡＭインタフェースを効率的に利用する。他方、多くの従来技術によるデインタリーバのアクセスパターンは、広範に離間したデータアイテムを連続的にリード／ライトすることを試み、不完全な（ＤＲＡＭインタフェース）バーストと多数のＤＲＡＭページのクロス化との双方によって、ＤＲＡＭ装置により非効率的なメモリアクセスをもたらす。
【００６１】
例えば、図４のロー・カラム演算は、グリッドにおけるロー数だけ離間した連続するデータアイテムを読む。多数のローが存在する具体例では、これは、メモリ装置において広範に離間したアクセスを生じさせる可能性があり、異なるＤＲＡＭページからの非効率的なアクセスを生じさせる。図３に示される具体例に戻って、第２の具体例３０２では、ロー・カラムモードにおけるＤＲＡＭから読み込みは非効率的であり、第３の具体例３０４では、ロー・カラムモードにおけるＤＲＡＭへの書き込みもまた非効率的である。
【００６２】
図６は、異なるページへの頻繁なアクセス又は部分的なバーストの充填に関連するＤＲＡＭアクセスの非効率性を受けないデインタリーブ処理の具体例を示す。本例は、図５の第１概略図５０２に示される。図６の具体例は、図４のものと同じロー・カラムの結果を生じさせるが（すなわち、６つのロー、４つのカラム及び２つのブロックによりスワップ）、ＤＲＡＭと同様にページングされた装置の効率的な処理をもたらすリニアシーケンシャルなメモリアクセスの多数のランを用いてこれを実行する。図６の具体例では、転送エンジンは、オンチップメモリ１０２から入力データアイテムのシーケンスを読み、当該データアイテムをＤＲＡＭ１１２に格納し、その後、ＤＲＡＭ１１２からデータアイテムを読み、スワップ又は交換されたロー及びカラムによりこれらをオンチップメモリ１０２に書き込む（それらの元の位置を上書きする可能性がある）。
【００６３】
説明のため、入力データアイテム６０２は図４の具体例において利用されたものと同じである。ゼロからスタートしてメモリアドレスの連続するシーケンスを有する合計で４８個のデータアイテムがある。まず、これらのデータアイテムは、ブロック又はタイル毎に６つのローと２つのカラムとによるロー・カラムモードにおいてオンチップメモリ１０２から読まれる。図６に示されるように、これらのデータアイテムは、各タイルが６つのロー及び２つのカラムを有するタイル６０４に配置されるとみなされてもよい。このタイルのサイズは、ここでは単なる一例として利用され、多数の実現形態では、タイルサイズは、ＤＲＡＭインタフェースのバーストサイズに等しく設定されてもよい。これら各タイルのローに沿って順番に読む非リニアリードシーケンス６０６は（すなわち、ロー・カラムモードを利用して）、上述されたようなアドレス生成要素２１０により生成される。リニアライトシーケンス６０８はまた、アドレス生成要素２１０により生成される。転送エンジン１０６は、非リニアリードシーケンス６０６を用いてオンチップメモリ１０２から読み（図５の矢印５２１）、リニアライトシーケンス６０８を用いてＤＲＡＭ１１２に書き込む（矢印５２２）。このようなＤＲＡＭへの書き込みは、連続するアドレスにリニアに書き込むため、非効率でなく、データアイテムの個数が十分である場合、ＤＲＡＭページの境界をときにはクロスするであろう。
【００６４】
この処理の結果として、ＤＲＡＭ１１２上のデータアイテム６１０は、タイル６０４からのロー・カラムスワップに対応すると理解できる。その後、非リニアリードシーケンス６１２が、ＤＲＡＭ１１２からこれらのデータアイテムを読むアドレス生成要素２１０により生成される。このリードシーケンスは、バーストロー・カラムモードを用いて生成され、非効率的なアクセスを回避するよう構成される。本例におけるバーストロー・カラムモードは、バースト毎に６つのアイテム、１２個のロー及び２つのカラムを利用する。ＤＲＡＭリードシーケンス６１２がデータアイテムのバーストを読むため、これらは、ＤＲＡＭ上の連続するアドレスに配置され、ページ境界をクロスする可能性はなく、ＤＲＡＭインタフェース上で利用可能なバーストを効率的に利用する（特に、アドレス生成要素のバースト長ＬがＤＲＡＭインタフェースバーストサイズに近い場合）。従って、（非バースト）ロー・カラムアクセスに対して有意に少ないページ境界がクロスされることになる。
【００６５】
非リニアライトシーケンス６１４はまた、オンチップメモリ１０２にデータアイテムを書き戻すため生成される。このライトシーケンス６１４はまた、バーストロー・カラムモードを用いて生成され、本例では、バースト毎に２つのアイテム、４つのロー及び３つのカラムを利用する。リードシーケンス６１２（図５の矢印５２３）ライトシーケンス６１４（矢印５２４）の組み合わせは、ページ境界及び不完全なバーストによる非効率性を生じさせることなく、データがＤＲＡＭ１１２に格納されたことを除き、オンチップメモリ１０２に書き戻される出力データアイテム６１６が、６つのロー、４つのカラム及び２つのブロックによる基本的なロー・カラム演算が実行されるかのように（これは、図４と比較できる）同一のシーケンスにあるようなものである。さらに、オンチップメモリ１０２からの最初のリード（図５の矢印５２１）は２つのみのカラムのタイルによるロー・カラム演算を利用したため、これは、１つの完全なタイルがオンチップメモリ１０２に到達するとすぐに、ＤＲＡＭへのデータの転送が始まることを可能にし、図４と同様に４つのカラムブロックが利用される場合より速い。これは、データが経時的にストリームにより到達するリアルタイムデータのケースにおいてパフォーマンスを向上させることが可能である。
【００６６】
図７〜１０は、異なるページへのアクセスに関するＤＲＡＭアクセスの非効率性をおけない他のデインタリーブ処理の具体例を示す。本方法はまた、図５の第２の概略図に示される。図５から理解できるように、本方法は、バースト内でＤＲＡＭ１１２とのリニアなインタラクションのみを伴い、すなわち、ＤＲＡＭへの書き込み（矢印５６２）とＤＲＡＭからの読み込み（矢印５６３）との双方に対するバーストロー・カラムモードを利用する。上述されるように、これは、大変少数のページ境界がクロスすることになり、ＤＲＡＭインタフェースバーストが効率的に利用され、これは、方法の全体的なパフォーマンスを向上させる。
【００６７】
説明のため、本方法は、複数のロー及びカラムを有する１以上のグリッド又はテーブルにデータアイテムが配置されるとみなし（上記の具体例と同様に）、さらにロー・カラム構成のデータセットから構成されるタイルのコンセプトを利用する。後述されるようにタイルは、ＤＲＡＭインタフェースバースト又はページサイズに従ってサイジングされてもよい。メモリのデータは連続するメモリ位置に格納されることが理解されるであろう。
【００６８】
図７は、各タイルが２０個のアイテムを有する１０個のタイル７０２（Ｔ０〜Ｔ９）に配置される２００個のデータアイテム（アドレス０〜１９９がラベル付けされる）を有する一例となる時間インタリーブされたデータブロック７００を示す。ＤＲＡＭ１１２がベースとモードによりアクセスされるＤＲＡＭである場合、タイルサイズは、ＤＲＡＭインタフェースのバーストサイズに一致するよう選択されてもよく、メモリ伝送（後述されるように）がＤＲＡＭインタフェースを効率的に利用するため、これはさらに本方法の効率性を向上させる。タイルサイズがＤＲＡＭインタフェースのバーストサイズに一致しない場合、タイルサイズはＤＲＡＭインタフェースバーストサイズより小さいか、又はタイル毎に複数のバーストがあってもよい。多くの具体例において、タイルサイズがＤＲＡＭインタフェースバーストサイズに正確に一致しない場合、タイルはＤＲＡＭにおいてページ境界に配列され、これはＤＲＡＭインタフェースの効率性を有意に向上させる可能性がある。以下でより詳細に説明されるように、タイルサイズの選択は、オンチップＲＡＭのタイリングバッファのサイズに対する制約を設ける（すなわち、データが読まれるオンチップメモリ１０２）。これは、本方法が、少なくとも１つのタイル全体がタイリングバッファに格納されるまでスタートできないためである。
【００６９】
図７の一例となる時間インタリーブされたブロック７００は２００個のデータアイテムを有するが、これらのブロックは、これより有意に大きなものであってもよく、数千個のデータアイテムを有してもよいことが理解されるであろう。さらに、時間インタリーブされたブロック内のロー及びカラムの構成は、本方法が利用されるシステムにより設定されてもよい。
【００７０】
本例におけるデインタリーブ処理は、図８に示されるフロー図を参照して説明できるように、各伝送（又は“タイリングジョブ”）がいくつかのタイルを伝送するメモリ間伝送の複数の段階に分割される。図８に示される方法は、各タイリングジョブにおいてＮ個のタイルを伝送し、Ｎの値はタイルのカラムに等しくなるよう選択されてもよい（例えば、図７に示される具体例では、Ｎ＝２）。しかしながら、他の具体例では、タイリングジョブは、要求されるタイリングジョブの個数を減少させるため、タイルのいくつかのカラムを有してもよい（例えば、複数のカラムなど）。説明のため、図８に示される方法は、Ｎ＝２による図７に示される時間インタリーブされたデータブロック７００を参照して説明される。タイリングジョブがタイルの複数のカラムを有する具体例では、本方法は、後述されるように実行され、アドレス生成要素の設定のみが変更される（すなわち、これは、アドレス生成要素により多くのデータを処理するよう通知する）。
【００７１】
本方法は、タイルＴ０，Ｔ１がオンチップメモリ１０２に格納されるなど、時間インタリーブされたブロックからの最低限のＮ個のタイル（すなわち、少なくともＮ個のタイル）がオンチップメモリ１０２に格納されると（ブロック８０２）、スタート可能である。上述されるように、これらのインタリーブされたタイルＴ０，Ｔ１が格納されるオンチップメモリ１０２の部分は、タイリングバッファと呼ばれてもよく、メモリ間伝送の第１段階８１がＮ個のタイルに対して実行されるとき、当該タイリングバッファは、Ｎ個のデータタイルを格納可能にサイジングされてもよい。一例では、タイリングバッファは、システムスループット、利用可能なメモリ帯域幅及びＤＲＡＭインタフェースに応じて、１以上のタイリングジョブを可能にするようにしてサイジング可能な弾性バッファであってもよい。
【００７２】
第１タイルＴ０は、オンチップメモリ１０２からロー・カラムモードを利用して読まれる（図５のブロック８０４及び矢印５６１）。利用される当該第１タイルの非リニアリードシーケンスは、
【００７３】
【表４】
0005575310.tif 000005
となる。ここで、上記の番号は、図７に示されるように、オンチップメモリのデータアイテムのアドレスに対応する。ロー・カラムモードの以前の説明（及び特に提供された擬似コードの具体例）を参照して、データアイテム（すなわち、１つのデータアイテム）が読まれ、その後、次の９個のデータアイテムが、他のデータアイテムが読まれる前にスキップされる。合計で４つのデータアイテムが読まれるまで（タイルのカラム数）、これが繰り返され、当該処理全体が１つのデータアイテムのオフセットにより繰り返され（すなわち、アドレス１が読まれ、次は１１が読まれる）、タイル全体が読まれるまで続けられる。
【００７４】
その後、当該データアイテムのシーケンスは、バーストロー・カラムモードを利用して、タイルのデータ要素の個数に等しいバースト長Ｌ（Ｌ＝２０など）によってＤＲＡＭ１１２に書き込まれる（ブロック８０６及び矢印５６２）。
【００７５】
【表５】
0005575310.tif 000006
ただし、第１ローは、第２ローに示されるデータアイテムが読み込まれたオンチップメモリ１０２の元のアドレスと区別するため、０’〜１９’によりラベル付けされるＤＲＡＭのデータアイテムのアドレスに対応する。
【００７６】
これら２つの処理（ブロック８０４のリード処理及びブロック８０６のライト処理）は、その後、Ｎ個すべてのタイルがＤＲＡＭに書き込まれるまで（ブロック８０８の“Ｙｅｓ”）繰り返される。当該段階において、Ｎ個のタイルをＤＲＡＭに書き込むと、格納されているすべてのデータアイテムがオンチップメモリ１０２から読まれたことにない、この場合、オンチップメモリは、時間インタリーブされたブロックからのデータアイテムのさらなるＮ個のタイルにより再充填されてもよい（ブロック８１０）。あるいは、オンチップメモリにさらなる格納されているタイルがすでにある場合（例えば、少なくともＮ個のさらなるタイルなど）、本方法は、オンチップメモリの再充填を必要とすることなく（すなわち、ブロック８１０が省略される）、さらなるタイルを読み（ブロック８０４において）、それらをＤＲＡＭに書き込み続けてもよい。
【００７７】
当該第１段階８１は、時間インタリーブされたブロック７００の全体がオンチップメモリ１０２から読み込まれ、適切な場合には、オンチップメモリ１０２が再充填されることにより（ブロック８１０において）、ＤＲＡＭに書き込まれる（ブロック８１２において“Ｙｅｓ”）まで、繰り返される。本例では、各伝送が２つのタイルを伝送する５つの伝送がある（Ｎ＝２であり、ブロック７００が１０個のタイルを有するため）。
【００７８】
図９は、図７に示されるように、時間インタリーブされた入力ブロック７００の第１段階８１のエンドにおいてＤＲＡＭに格納されているデータアイテムのグリッド表現９０２（ブロック７００の元のアドレス位置により参照される）を示す。グリッド９０２に平行して、ＤＲＡＭ１２２の各データアイテムのアドレスを特定する第２グリッド９０４がある（オンチップメモリ１０２の元のアドレス０〜１９９と区別するため、０’〜１９９’によりラベル付けされる）。このグリッド表現では、元のタイルは、デインタリーブされていないが、リオーダリングされ（ブロック７００と比較して）、タイルからのリオーダリングされたデータアイテムは、連続するメモリアドレスを占有する（例えば、Ｔ０はアドレス０’〜１９’に格納されるなど）。図９から理解できるように、グリッドは、データアイテムの各カラム（連続するデータアイテムがカラムに配置される場合）が２つのタイルを有するように、４０個のロー及び５個のカラムを有する。あるカラムのタイル間の境界は、破線９０６によりマーク付けされる。
【００７９】
本方法の第２段階８２では、データアイテムは、オンチップメモリ１０２に転送され（又は上述されるように他のオンチップメモリ要素）、さらなるリオーダリング処理が、データのデインタリーブを完了させるのに利用される。第１タイルＴ０は、バーストロー・カラムモードを利用して、タイルのデータ要素の個数に再び等しいバースト長Ｌ（本例では、Ｌ＝２０）によりＤＲＡＭ１１２から読み込まれ（図５のブロック８１４及び矢印５６３）、すなわち、リードシーケンスは、
【００８０】
【表６】
0005575310.tif 000007
となり、ここで、第１ローはＤＲＡＭ１１２のデータアイテムのアドレスに対応し、第２ローはデータアイテムが読まれたオンチップメモリ１０２における元のアドレスを示す。
【００８１】
その後、タイルＴ０は、バーストロー・カラムモードを利用して、オンチップメモリ１０２に書き込まれる（ブロック８１６及び矢印５６４）。バーストロー・カラムモードは、例えば、図７に示される例では４である、元の時間インタリーブされたブロック７００のタイルのカラム数に等しいバースト長７００を利用する。従って、データは、オンチップメモリの連続する４つのアドレスに書き込まれ、次の１６個のアドレスはスキップされ（元の時間インタリーブされたブロックのカラム数＝転置されたブロックのカラム数＝２０，２０−４＝１６）、その後、データが次の４つの連続するアドレスに書き込まれるなどである。非リニアライトシーケンスは、
【００８２】
【表７】
0005575310.tif 000008
となり、ここで、第１ローは、第１段階８１においてデータアイテムが読まれたオンチップメモリ１０２の元のアドレスと区別するため、０”，１”とラベル付けされたライトが指示されるオンチップメモリのアドレスに対応し、これらの元のアドレスが第２ローに示される。
【００８３】
ＤＲＡＭに対してライト及びリードを実行する最初の２つのバーストロー・カラム処理（矢印５６２，５６３）に利用されるバースト長は、同一のバースト長（Ｌ＝２０など）を利用し、オンチップメモリに対してライトを実行する第３バーストロー・カラム処理（矢印５６４）は異なるバースト長（Ｌ＝４など）を利用することに留意すべきである。
【００８４】
当該第２段階８２は、その後、すべてのタイルがオンチップメモリ１０２に書き込まれるまで（ブロック８１８において“Ｙｅｓ”）、タイル単位で（及び第１段階８１と同じタイルサイズを利用して）繰り返される。
【００８５】
図１０は、図７に示されるような時間インタリーブされた入力ブロック７００の第２段階８２のエンドにおいてオンチップメモリに格納されるデータアイテム（ブロック７００において元のアドレス位置により参照される）のグリッド表現１００２を示す。グリッド１００２に平行して、オンチップメモリの元のアドレス０〜１９９及びＤＲＡＭ１１２のアドレス０’〜１９９’と区別するため０”〜１９９”とラベル付けされた）オンチップメモリ１０２の各データアイテムのアドレスを特定する第２グリッド１００４がある。このグリッド表現では、元のデータアイテムは、破線により示されるように、第１タイルＴ０が４つのローと５つのカラムとを有するように（ブロック７００と同様に５つのローと４つのカラムとの代わりに）、図１０から理解できるようにデインタリーブされる。図１０から理解できるように、１つのデインタリーブされたブロックのグリッドは、２０個のロー及び１０個のカラムを有する。
【００８６】
図７，９，１０は０のベースアドレスからスタートするアドレスを示すが、他の例では、これらのアドレスは何れかのベースアドレスからスタートしてもよいことが理解されるであろう。
【００８７】
上記説明及び図８から、本方法のリード／ライトジョブは、時間インタリーブされたブロック全体でなく、いくつかのタイル（１以上のタイルなど）に対して実行されてもよいことが理解できる。これは、本方法が特定のＤＲＡＭインタフェースバーストサイズに対して最適化されることを可能にし、例えば、タイルは１つのＤＲＡＭインタフェースバーストと同じサイズに設定可能であり、このとき、タイリングジョブはＤＲＡＭインタフェースバーストの整数となるであろう（例えば、図７、９及び１０を参照して上述された具体例では２などである）。ＤＲＡＭインタフェースにより定義されるＤＲＡＭインタフェースバーストサイズは、ＤＲＡＭ内においてページ又はサブページレベルに設定されてもよく、バス帯域幅に依存し、バーストのスタートがページのスタートと揃えられ、可能な場合にはページ内で完全に終了するように設定されてもよい（メモリページングによる非効率性を防ぐため）。上述されるように、タイルサイズはＤＲＡＭインタフェースバーストサイズに正確には一致せず、あるいはＤＲＡＭインタフェースバーストサイズの倍数である場合、未使用のＤＲＡＭキャパシティを犠牲にしてＤＲＡＭ効率性を向上させるため、タイルがページ境界に揃えられてもよい。
【００８８】
上記説明及び図８は、本方法が直接に実行されることを示すが（すなわち、第１段階８１が終了した後に第２段階８２が実行される）、本方法の態様は、１つの時間インタリーブされたブロックからのタイルがＳＲＡＭから読み込まれ、ＤＲＡＭに書き込まれ（第１段階８１において）、同時にもう１つの時間インタリーブされたブロックからのタイルがＤＲＡＭから見込まれ、ＳＲＡＭに書き込まれる（第２段階８２において）ように、パラレルに実行されてもよい。これは、あるアドレスが他の時間インタリーブされたブロックからのデータアイテムにより上書きされる（ブロック８０６において）前に読み込まれる（ブロック８１４において）ようなタイミングである限り、ＤＲＡＭへの書き込み処理（ブロック８０６）が第２段階８２において読み込まれるのと同じアドレスセットを利用してもよい（ブロック８１４）。
【００８９】
図８及び上述された方法は、データアイテムのグリッドの転置処理（デインタリーブを実行するため）を２つの別々の部分に分割する。この転置の第１部分は、ＳＲＡＭからのリード（図５のブロック８０４及び矢印５６１）と、ＤＲＡＭへのライト（ブロック８０６及び矢印５６２）との実行時に実行され、転置の第２部分は、ＤＲＡＭからのリード（ブロック８１４及び矢印５６３）と、ＳＲＡＭへのライト（ブロック８１６及び矢印５６４）との実行時に実行される。これらすべての転置は、アドレスの非リニアシーケンスを利用するが、異なる非リニアシーケンスが利用される。第１部分では、ロー・カラムモードがＳＲＡＭからのリードについて利用され（バースト長＝１）、第２部分では、バーストロー・カラムモードが、ＳＲＡＭへのライトに利用される（バースト長＝タイルのカラム数）。ＤＲＡＭとのインタラクション（ブロック８０６のライト及びブロック８１４のリード）は、タイルのデータ要素数に等しいバースト長によりバーストロー・カラムモードを利用する（例えば、図７〜１０に示される具体例では、Ｌ＝２０）。
【００９０】
図５（具体例５０６）及び図７〜１０を参照して上述された方法は、タイルサイズがＤＲＡＭインタフェースバーストサイズに従って選択される場合、データのタイルの転送に関するマルチ段階処理の利用のため（時間インタリーブされたブロック全体の代わりに）、利用可能な帯域幅（及び特にバーストアクセスされたＤＲＡＭ）を効率的に利用する。タイルの配置は、特定の実現形態に固有のものであり、上述された方法は、タイル毎のデータアイテムの何れかの個数とタイルの何れかの配置に適用されてもよい。
【００９１】
例えば、本方法がＤＶＢ−Ｔ２に利用される場合、カラムのタイル数（Ｎ）は、図７〜１０に示される具体例が２つのＦＥＣブロックが存在するシナリオに対応するように、ＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）ブロックの個数に等しくなるよう設定されてもよい。他の具体例では、３つのＦＥＣブロックがあってもよく、Ｎ＝３であり、３つのタイルがタイリングジョブにおいてＳＲＡＭからＤＲＡＭに転送され、ＤＲＡＭの連続したアドレスに書き込まれる。
【００９２】
上述された方法のデインタリーブ処理は、複数の段階に分割される。上述した方法を利用して、デインタリーブ処理がスタート可能になるまで、タイリングバッファにインタリーブされたデータブロック全体を格納する必要はない。図８を参照して説明されたように、本方法のスタート前、タイリングバッファにはＮ個のタイルが格納されさえすればよい。
【００９３】
図５（具体例５０６）及び図７〜１０を参照して上述された方法は、図２に示されるようなアドレス生成要素２１０を利用して実現されてもよい。このアドレス生成要素２１０は、設定可能であってもよいし、又は本方法の特定の実現形態において利用される要求される（所定の）非リニアアドレスシーケンスを生成するよう構成される具体的なハードウェアロジックを有してもよい。
【００９４】
上述された方法は、何れかインタリーブされたデータブロックをデインタリーブするのに利用されてもよい。適用例は、ＯＦＤＭ信号と、特にＤＶＢ−Ｔ２などのデジタル地上波テレビ（ＤＴＴ）信号とを含むが、本方法はＯＦＤＭ、ＤＴＴ又はＤＶＢ−Ｔ２に限定されるものでない。上述された方法はまた、インタリーブされたデータブロックを構成するため、データをインタリーブするのに利用されてもよい。インタリーブ処理のために上述された方法を利用するため、デインタリーブ処理でなく、方法のステップは同じままであり、相違は、入力データ（ブロック８０２において格納されるものなど）はデインタリーブされたデータ（及びインタリーブされていないデータ）を有し、出力データ（例えば、図８のエンドにおいてＳＲＡＭに書き戻されるものなど）はインタリーブされたデータ（及びでインタリーブされていないデータ）を有する。
【００９５】
“プロセッサ”及び“コンピュータ”という用語は、ここでは命令を実行可能となるような処理能力を備えた何れかの装置を表すのに利用される。当業者は、このような処理能力が多数の異なる装置に搭載されていることを理解し、“コンピュータ”という用語が、セットトップボックス、メディアプレーヤー、デジタルラジオ、ＰＣ、サーバ、携帯電話、ＰＤＡ及び他の多数の装置を含む。
【００９６】
当業者は、プログラム命令又はデータを格納するのに利用されるストレージ装置がネットワーク全体に分散可能であることを理解するであろう。例えば、リモートコンピュータは、ソフトウェアとして記述されるプロセスの具体例を格納してもよい。ローカル又はターミナルコンピュータは、リモートコンピュータにアクセスし、プログラムを実行するためソフトウェアの一部又はすべてをダウンロードしてもよい。あるいは、ローカルコンピュータは、必要に応じてソフトウェアの一部をダウンロードするか、又はローカルターミナルの一部のソフトウェア命令と、リモートコンピュータ（又はコンピュータネットワーク）の一部とを実行してもよい。当業者はまた、当業者に知られる従来の技術を利用することによって、ソフトウェア命令のすべて又は一部が専用回路、プログラマブルロジックアレイなどにより実行されてもよいことを理解するであろう。
【００９７】
“ロジック”という特定の表現は、機能を実行する構成を表す。ロジックの具体例は、これらの機能を実行するよう構成される回路を含む。例えば、このような回路は、製造処理において利用可能なトランジスタ及び／又は他のハードウェア要素を含むものであってもよい。このようなトランジスタ及び／又は他の要素は、レジスタ、フリップフロップ又はラッチなどのメモリ、ブール演算などの論理演算子、加算器、乗算器又はシフタなどの数学演算子及びインターコネクトを実現及び／又は含む回路又は構成を形成するのに利用されてもよい。このような要素は、カスタム回路若しくは標準的なセルライブラリ、マクロ又は他のレベルの抽象化として提供されてもよい。このような要素は、特定の構成において相互接続されてもよい。ロジックは、固定的な機能である回路を含むものであってもよく、回路が機能を実行するようプログラム可能であり、このようなプログラミングは、ファームウェア又はソフトウェア更新又は制御機構から提供されてもよい。ある機能を実行するため特定されるロジックはまた、構成要素となる機能又はサブプロセスを実現するロジックを含むものであってもよい。一例では、ハードウェアロジックは、固定的な機能処理、処理、状態マシーン又はプロセスを実現する回路を有する。
【００９８】
ここに与えられる何れかの範囲又はデバイス値は、当業者に明らかなように、求められる効果を失うことなく拡張又は変更されてもよい。
【００９９】
上述される利益及び効果は１つの実施例に関するものであってもよいし、又は複数の実施例に関するものであってもよいことが理解されるであろう。これらの実施例は、説明された利益及び効果の何れか又はすべてを有するもの又は説明された問題の何れか又はすべてを解決するものに限定されるものでない。
【０１００】
“ある”アイテムという表現は、これらのアイテムの１以上を表す。“有する”という用語は、ここでは特定された方法のブロック又は要素を含むことを意味するが、このようなブロック又は要素が排他的リストを有さず、装置はさらなるブロック又は要素を含むものであってもよく、方法はさらなる処理又は要素を含むものであってもよい。
【０１０１】
ここに説明される方法のステップは、適切である場合、何れか適切な順序により又は同時に実行されてもよい。さらに、各ブロックは、ここに説明された主題の趣旨及び範囲から逸脱することなく方法の何れかから削除されてもよい。上述された具体例の何れかの態様は、求められる効果を失うことなくさらなる具体例を形成するため、上述されたそのたの具体例の何れかの態様と組み合わされてもよい。
【０１０２】
好適な実施例の上記説明は単なる例示のために与えられ、各種変更が当業者に可能であることが理解されるであろう。各種実施例がある具体性の程度により、又は１以上の個別の実施例を参照して説明されたが、当業者は、具体例の趣旨又は範囲から逸脱することなく、開示された実施例に対して多数の変更が可能である。
【符号の説明】
【０１０３】
１００  デジタル信号処理システムオンチップ
１０２  オンチップメモリ
１０４  ＤＳＰ
１０６  転送エンジン
１０８  ハードウェア周辺装置
１１０  制御プロセッサ
１１２  ＤＲＡＭ
２１０  アドレス生成要素
【図１】
0005575310.tif 000009
【図２】
0005575310.tif 000010
【図３】
0005575310.tif 000011
【図４】
0005575310.tif 000012
【図５】
0005575310.tif 000013
【図６】
0005575310.tif 000014
【図７】
0005575310.tif 000015
【図８】
0005575310.tif 000016
【図９】
0005575310.tif 000017
【図１０】
0005575310.tif 000018