(57)【特許請求の範囲】
【請求項１】
アドレスビットを用いてアドレス指定可能なブロックのアレイを有するメモリと、
前記メモリと結合され、メモリアクセス時にデータのブロックが仮想的に並べ替えられるように前記アドレスビットを並べ替える並べ替え回路と、
を備える装置であって、
前記並べ替え回路は、
並べ替えを選択するように構成された並べ替えセレクタと、
前記選択された並べ替えに基づいて複数のバスマスタのうちの１つを選択するように構成されたマルチプレクサであって、前記複数のバスマスタのうちの１つだけが選択されて、前記選択されたバスマスタと結合されているデバイスが前記メモリにアクセスすることを可能にする、マルチプレクサとを備える、装置。
【請求項２】
前記複数のバスマスタのうちの第１のバスマスタの選択によって前記アドレスビットは並べ替えられ、前記複数のバスマスタのうちの第２のバスマスタの選択によって前記アドレスビットは並べ替えられないままとなる、請求項１に記載の装置。
【請求項３】
前記複数のバスマスタのうちの前記第１のバスマスタの選択によってデータの書き込みまたは読み出しの一方が行われ、前記複数のバスマスタのうちの前記第２のバスマスタの選択によってデータの書き込みまたは読み出しの他方が行われる、請求項２に記載の装置。
【請求項４】
前記ブロックのアレイは、ブロックの１次元アレイである、請求項１から３のいずれか１項に記載の装置。
【請求項５】
前記ブロックのアレイは、ブロックの２次元アレイである、請求項１から３のいずれか１項に記載の装置。
【請求項６】
前記並べ替え回路は、行アドレスビットと列アドレスビットとを入れ替えることによって前記アドレスビットを並べ替える、請求項５に記載の装置。
【請求項７】
前記ブロックのアレイは、ブロックの３次元アレイである、請求項１から３のいずれか１項に記載の装置。
【請求項８】
前記並べ替え回路は、前記３つの次元のうちの少なくとも２つのアドレスビットを入れ替えることによって前記アドレスビットを並べ替える、請求項７に記載の装置。
【請求項９】
前記ブロックのアレイは、４つ以上の次元を有するブロックの超立方体アレイである、請求項１から３のいずれか１項に記載の装置。
【請求項１０】
前記ブロックのアレイの各次元は、２Ｎ個のブロックを有し、Ｎは次元の数である、請求項１から３のいずれか１項に記載の装置。
【請求項１１】
前記並べ替え回路はセグメントセレクタを備え、前記セグメントセレクタは、データの前記ブロックのすべてより少ないブロックが並べ替えられるように、仮想的に並べ替えられる、前記メモリの任意のセグメントを選択するように構成されている、請求項１から３のいずれか１項に記載の装置。
【請求項１２】
前記並べ替え回路は、２Ｎバイトのサイズを有するブロックを仮想的に並べ替えるように構成されており、Ｎは、並べ替え対象外の前記アドレスビットの最下位ビット数を表す、請求項１から３のいずれか１項に記載の装置。
【請求項１３】
前記並べ替え回路は、並べ替えの選択肢のルックアップテーブルを備える、請求項１から３のいずれか１項に記載の装置。
【請求項１４】
前記並べ替え回路はチップ上に位置し、前記メモリは、前記チップの外に位置する外部メモリである、請求項１から３のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
ランダムアクセスメモリ（ＲＡＭ）などのメモリは、データ記憶装置の一形態である。メモリはブロックのアレイを有し、これらのブロックは、読み出しまたは書き込みの動作時に、アドレスビットを用いてアドレス指定することにより、アクセス可能である。ＲＡＭは、任意のランダムな順序でデータにアクセスすることが可能である。
【背景技術】
【０００２】
たとえば、レーダ用途では、大量のデータがメモリに、インタリーブ方式で書き込まれる。このデータは、高速フーリエ変換（ＦＦＴ）アクセラレータに渡す前にデインタリーブしなければならず、さらに、ＦＦＴ処理の第２段目の前で再度データを並べ替える必要がある。データは、その次元数に応じたインタリーブ方式で、メモリブロックのアレイとして配置される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
メモリは、一般に、アドレスカウンタを有するダイレクトメモリアクセス（ＤＭＡ）コントローラを使用してアクセスされ、アドレスカウンタは、メモリアドレス空間において、プログラム可能なジャンプ幅（たとえば、２、４、または８バイト）のジャンプを行う。このアクセス方法は、データがひとかたまりのシーケンスで転送されるバーストアクセスを、通常は行うことができない点が不利である。そのため、読み出しまたは書き込みの動作を完了するには、複数の処理サイクルが必要になる。
【図面の簡単な説明】
【０００４】
【図１】一例示的実施形態による回路の図を示す。
【図２Ａ−２Ｃ】一例示的実施形態による、２次元メモリをデインタリーブすることを示す。
【図３Ａ−３Ｃ】一例示的実施形態による、３次元メモリをデインタリーブすることを示す。
【図４】一例示的実施形態による、超立方体次元メモリをデインタリーブすることを示す。
【図５Ａ】一例示的実施形態による回路の図を示す。
【図５Ｂ】一代替例示的実施形態による回路の図を示す。
【図６Ａ】一例示的実施形態による回路の図を示す。
【図６Ｂ】一例示的実施形態による、図６Ａの並べ替えセレクタのブロック図を示す。
【図７】一例示的実施形態による、メモリに対するアドレス指定の方法のフローチャートを示す。
【発明を実施するための形態】
【０００５】
本開示の対象は、アドレスビットを使用してアドレス指定可能なブロックのアレイを有するメモリを備えた装置であり、より具体的には、メモリおよび並べ替え回路を備えた装置であって、並べ替え回路は、メモリと結合されており、メモリアクセス時にデータのブロックが仮想的に並べ替えられるようにアドレスビットを並べ替えるように構成されている。アドレスビットを並べ替えることにより、メモリに書き込み中のデータまたはメモリから読み出し中のデータを、効果的にインタリーブまたはデインタリーブすることが可能である。この並べ替え（permutation）は、メモリアクセスの最初に構成され、データブロック転送に対して標準的なバーストアクセスが適用可能となり、これによって、転送速度が大幅に向上する。
【０００６】
図１は、一例示的実施形態による回路１００の図を示す。より具体的には、回路１００は、メモリ１１０および並べ替え回路１２０を含む。メモリ１１０は、ブロックのアレイ（図示せず）を有し、アドレスビットＡ０〜Ａ８を用いてアドレスを指定することにより、それらのブロックにデータを書き込むおよび／またはそれらのブロックからデータを読み出すことが可能である。並べ替え回路１２０は、メモリ１１０と結合されており、メモリアクセス時にデータのブロックが仮想的に並べ替えられるように一部のアドレスビットＡ１〜Ａ６を並べ替えるように構成されている。
【０００７】
標準的なメモリアドレスは、３２ビット幅であり、Ａ３１  Ａ３０  Ａ２９  Ａ２８  Ａ２７．．．Ａ９  Ａ８  Ａ７  Ａ６  Ａ５  Ａ４  Ａ３  Ａ２  Ａ１  Ａ０のように表されてよい。
【０００８】
アドレスビット並べ替え操作は、メモリのアドレスビット群を並べ替えることを含む。ここに、１つのアドレスビット群は、１つ以上のアドレスビットである。たとえば、上述の標準的なメモリアドレスのアドレスビット群を並べ替えることは、アドレスビット群Ａ６  Ａ５  Ａ４とアドレスビット群Ａ１  Ａ０とを入れ替えることによって可能であり、これによって、Ａ３１  Ａ３０  Ａ２９  Ａ２８  Ａ２７．．．Ａ９  Ａ８  Ａ７  Ａ１  Ａ０  Ａ３  Ａ２  Ａ６  Ａ５  Ａ４のように並べ替えられてよい（説明のために下線を追加した）。
【０００９】
図１には別の例を示した。ここでは、アドレスビット群Ａ４  Ａ３  Ａ２  Ａ１とアドレスビット群Ａ６  Ａ５とが入れ替えられており、その結果、メモリ１１０のアクセス時にデータが仮想的に並べ替えられる。後で詳述するが、データアレイを矩形、立方体、または超立方体として扱い、各「次元」のサイズおよび位置を構成し、その矩形／立方体／超立方体を任意に回転させることが可能である。
【００１０】
図２Ａ〜２Ｃは、一例示的実施形態による、４×８ブロック（合計３２ブロック）のアレイを有する２次元メモリ２１０をデインタリーブすることを示す。
【００１１】
図２Ａは、アドレスビット並べ替え前のメモリ２１０Ａの直線図を示す。メモリ２１０Ａの各ブロックには、時間経過に沿って収集されてインタリーブされたデータが記憶されている。たとえば、メモリ２１０は、製造作業中に測定された変数を記憶してよく、０は湿度、１は温度、２は明るさ、３は気圧である。これらの変数のそれぞれは、測定されてはメモリ２１０に書き込まれ、また、測定されてはメモリ２１０に書き込まれるという動作を繰り返す。
【００１２】
図２Ｂは、アドレスビット並べ替え操作の２次元図を示す。概観すると、図の左側のメモリ２１０Ｂ−１は、アドレスビット並べ替え前のメモリ２１０の２次元図を表し、アドレスビット並べ替え論理回路２２０は、アドレスビット並べ替え操作を表し、図の右側のメモリ２１０Ｂ−２は、アドレスビット並べ替え後のメモリ２１０の２次元図を表す。
【００１３】
メモリ２１０Ｂ−１は、まだアドレスビット並べ替えが行われておらず、データが実際に、すなわち、インタリーブ方式で記憶されているメモリ２１０を表している。メモリ２１０では、一般に、書き込み／読み出しを、１つの行の端から端まで一度に行う。すなわち、最初にｘ軸方向に書き込み／読み出しを行い、その後、ｙ軸方向に進む。より具体的には、行０のブロックの端から端までの書き込み／読み出し（まず、湿度０、次に温度１、次に明るさ２、次に気圧３）が行われ、次に、行１のブロックの端から端までの書き込み／読み出し（まず、湿度０、次に温度１、次に明るさ２、次に気圧３）が行われ、以降も続く。行の書き込み／読み出しのたびに様々なタイプのデータの組み合わせが関与するので、この例では、データの書き込み／読み出しはインタリーブ方式で行われる。
【００１４】
アドレスビット並べ替え論理回路２２０は、ｘ−アドレスビットＡ１  Ａ０とｙ−アドレスビットＡ４  Ａ３  Ａ２とを入れ替えることにより、アドレスビットを並べ替え、これにより、行ｘ１  ｘ０は、列ｙ２  ｙ１  ｙ０と入れ替えられる。その結果、データは、メモリ２１０Ｂ−２に示されるように配置されるように見える。
【００１５】
メモリ２１０Ｂ−２は、アドレスビット並べ替え後にメモリアクセスが行われた場合のブロックの仮想配置（virtual organization）、すなわち、ブロックがデインタリーブ方式で配置されるように見える様子を示している。上述のように、メモリ２１０では、一般に、書き込み／読み出しが、１つの行の端から端まで一度に行われる。すなわち、最初にＸ軸方向の書き込み／読み出しが行われ、その後、Ｙ軸方向に進む。この方式でメモリ２１０Ｂ−２の読み出しが行われる場合は、行０のブロックの端から端までの読み出し（湿度ブロック０のみ）が行われ、次に、行ｘ１のブロックの端から端までの読み出し（温度ブロック１のみ）が行われ、以降も続く。したがって、データは、デインタリーブ方式で読み出される。すなわち、バーストアクセス方式により、同じタイプのデータブロックが、より効率的に順次読み出されることが可能である。
【００１６】
アドレス並べ替えの結果として、物理メモリ２１０が、実際には、最初にｘ軸方向が読み出されてからｙ軸方向に進むように読み出されている場合でも、各次元が読み出される順序は、異なって見えることになる。すなわち、メモリ２１０は、逆に、最初にｙ軸方向が読み出されてからｘ軸方向に進むように見える。
【００１７】
図２Ｃは、アドレス並べ替え後のメモリ２１０Ｃを示しているが、メモリ２１０Ｃは、メモリ２１０Ｂ−２の場合のような２次元図ではなく、直線図である。図２Ａに示されたメモリ２１０Ａとは対照的に、メモリ２１０Ｃに示されているブロックは、デインタリーブされている。より具体的には、１つのタイプのブロックが他のタイプのブロックの間に散らばっているのではなく、同じタイプのブロックが、あたかも群にまとめられているかのようにアクセスされる。すなわち、湿度ブロック０は群にまとめられているかのように、温度ブロック１は群にまとめられているかのように、明るさブロック２は群にまとめられているかのように、気圧ブロック３は群にまとめられているかのように、それぞれアクセスされる。
【００１８】
図３Ａ〜３Ｃは、一例示的実施形態による、４×８×２ブロック（合計６４ブロック）のサイズを有する３次元メモリ３１０をデインタリーブすることを示す。
【００１９】
図３Ａは、アドレスビット並べ替え前のメモリ３１０Ａの直線図を示す。メモリ３１０Ａの各ブロックには、図２Ａのメモリ２１０Ａと同様にインタリーブされたデータが記憶されている。メモリ２１０Ａとメモリ３１０Ａとの違いは、メモリ３１０Ａが追加の次元（ｚ次元）を有することである。メモリ３１０Ａは、１ページのブロックではなく、２ページのブロックを有しており、これらはそれぞれｚ０およびｚ１で表されている。
【００２０】
図３Ｂは、アドレス並べ替え操作の３次元図を示す。概観すると、図の左側のメモリ３１０Ｂ−１は、アドレス並べ替え前のメモリ３１０の３次元図を表し、アドレスビット並べ替え論理回路３２０は、アドレスビット並べ替え操作を表し、図の右側のメモリ３１０Ｂ−２は、アドレスビット並べ替え後のメモリ３１０の３次元図を表す。
【００２１】
メモリ３１０Ｂ−１は、まだアドレスビット並べ替えが行われておらず、データが実際に、すなわち、インタリーブ方式で記憶されているメモリ３１０を表している。行０のブロックの端から端までの書き込み／読み出し（まず、湿度０、次に温度１、次に明るさ２、次に気圧３の各ブロック）が行われ、次に、行１のブロックの端から端までの書き込み／読み出し（湿度０、温度１、明るさ２、および気圧３の各ブロックの混成を含む）が行われ、以降も続く。行の書き込み／読み出しのたびに様々なタイプのデータが組み合わされるので、この例では、データの書き込み／読み出しはインタリーブ方式で行われる。
【００２２】
アドレスビット並べ替え論理回路３２０は、図示されるようにアドレスビットの群を入れ替えることにより、アドレスビットを並べ替え、その結果がメモリ３１０Ｂ−２である。結果として、データは、メモリ３１０Ｂ−２に示されるように配置されるように見える。
【００２３】
メモリ３１０Ｂ−２は、アドレスビット並べ替え後にメモリアクセスが行われた場合のブロックの仮想配置、すなわち、ブロックがデインタリーブ方式で配置されるように見える様子を示している。図２のメモリ２１０と同様に、ブロックの読み出しは、１つの行の端から端まで一度に行われる。すなわち、ページｚ０の行ｘ０の端から端までの読み出し（湿度ブロック０のみを含む）が行われ、次に、ページｚ０の行ｘ１の端から端までの読み出し（温度ブロック１のみを含む）が行われ、以降も続く。しかしながら、図２Ｂのメモリ２１０Ｂ−２との違いは、ページｚ０の読み出しの後に、ページｚ１の読み出しが、引き続いて同様に行われることである。データは、デインタリーブ方式で読み出される。すなわち、バーストアクセス方式により、同じタイプのデータブロックが、より効率的に順次読み出されることが可能である。
【００２４】
アドレスビット並べ替えの結果として、物理メモリ３１０が、実際には、最初にｘ軸方向が読み出され、次にｙ軸方向に進み、それからｚ方向に進むように読み出されている場合でも、各次元が読み出される順序は、異なって見えることになる。メモリ３１０は、最初にｙ軸方向が読み出されてからｚ軸方向に進み、それからｘ軸方向に進むように見える。
【００２５】
図３Ｃは、メモリ３１０Ｂ−２の場合と同様に、アドレス並べ替え後のメモリ３１０Ｃを示しているが、メモリ３１０Ｃは、３次元図ではなく、直線図である。図３Ａに示されたメモリ３１０Ａとは対照的に、メモリ３１０Ｃに示されているブロックは、デインタリーブされている。より具体的には、湿度ブロック０は群にまとめられており、温度ブロック１は群にまとめられており、明るさブロック２は群にまとめられており、気圧ブロック３は群にまとめられている。
【００２６】
図４は、一例示的実施形態による、４つ以上の次元を有する超立方体メモリ（図示せず）をデインタリーブすることを示す。この例示的実施形態では、メモリは、４つの次元を有し、そのサイズは、１６×８×４×２ブロック（合計１０２４ブロック）である。アドレスビット並べ替え操作を表すアドレスビット並べ替え論理回路４２０が表示されている。メモリは図示されていないが、これは、４つ以上の次元を有するブロックのアレイを紙上に図示することが困難なためである。
【００２７】
アドレスビット並べ替え論理回路４２０は、図示されるようにアドレスビットの群を入れ替えることにより、アドレスビットを並べ替える。図２Ａ〜２Ｃに示された２次元の実施例、および図３Ａ〜３Ｃに示された３次元の実施例の前述の説明を読まれた当業者であれば、この４次元の実施例の詳細を理解されるであろう。したがって、ここでは、簡潔さのために、かつ、本開示の態様を不必要に曖昧にしないように、アドレスビット並べ替え論理回路４２０について、これ以上説明しない。
【００２８】
メモリのサイズは、そのアレイが２Ｎ個のブロックを有するように決定されるのが最適であり、Ｎはそれぞれの次元の数である。たとえば、上述の４次元アレイのサイズは、１６×８×４×２ブロック、すなわち、２４×２３×２２×２１ブロックであり、４は４番目の次元の数、３は３番目の次元の数（以下同様）である。ブロックのアレイのうちの１つ以上の次元を２Ｎ以外のサイズにすることは可能であるが、追加の考察が必要となる場合もある。
【００２９】
図５Ａは、一例示的実施形態による回路５００Ａの図を示す。より具体的には、回路５００Ａは、メモリ５１０と直接結合されたアドレスビット並べ替え回路５２０を示している。ＣＰＵ１５５２、ＣＰＵ２５５４、ＤＭＡ５５６、および通信モジュール５５８は、メモリ５１０へのアクセスを共用しており、どの時点においても、これらのデバイスのうちの１つだけがアクセスを許可される。アクセスはバスシステムを介して行われ、バスシステムは、バスマスタインタフェース５３２、５３４、５３６、５３８、バスマスタ５４０、およびバススレーブインタフェース５３０からなる。バスシステムは、データ線、アドレス線、および制御線を含む。ＣＰＵ１５５２、ＣＰＵ２５５４、ＤＭＡ５５６、および通信モジュール５５８のそれぞれは、専用のバスマスタインタフェース５３２、５３４、５３６、５３８をそれぞれ有しており、制御信号Ｃと、アクセス対象である、メモリ５１０内の特定ブロックを識別するアドレスビットＡとをバススレーブインタフェース５３０に送信する。この例示的実施形態では、バスマスタインタフェース５３２、５３４、５３６、５３８は、アドレス線を駆動する。データＤは、バスシステムを介して、各デバイス（ＣＰＵ１５５２、ＣＰＵ２５５４、ＤＭＡ５５６、および通信モジュール５５８）とメモリ５１０との間で双方向送信されてよく、データＤの書き込み／読み出しは、アドレスビットＡで識別される特定メモリブロックに対して行われる。
【００３０】
図５Ｂは、一代替例示的実施形態による回路５００Ｂの図を示す。より具体的には、回路５００Ｂは、図５Ａにおけるアドレスビット並べ替え回路の場所とは異なる、アドレスビット並べ替え回路の場所を示している。アドレスビット並べ替え回路５２４がＤＭＡ５５６と直接結合されており、これによって、ＤＭＡ５５６は、自身のアドレスビットを並べ替えることが可能である。代替として、アドレスビット並べ替え回路５２４は、ＤＭＡ５５６の内部にあってもよい。別のアドレスビット並べ替え回路５２６が、アドレスビット並べ替え回路５２６のチップ外にある外部バスユニット５６２を介して、外部メモリ５６０と結合されている。
【００３１】
回路５００Ａおよび５００Ｂでは、アドレスビット並べ替え回路が特定の場所にあるか、特定の個数であるように説明されたが、本開示は、これらの点において限定されるものではない。アドレスビット並べ替え回路は、任意の好適な場所にあってよく、任意の好適な個数であってよい。
【００３２】
図６Ａは、一例示的実施形態による回路６００の図を示す。より具体的には、回路６００は、メモリ６１０およびアドレスビット並べ替え回路６２０を含む。図５Ａおよび図５Ｂに関して上述されたように、メモリ６１０は、回路６００のメモリ６１０以外の部分と、データ線、制御線、およびアドレス線で結合されている。図示されているアドレス線の本数は９であり、図示されているバスマスタの個数は２であるが、本開示は、これらの点のいずれにおいても限定されるものではない。
【００３３】
アドレスビット並べ替え回路６２０は、マルチプレクサ６２２、並べ替えセレクタ６２４、および任意選択のセグメントセレクタ６２６（図６Ｂに関して後述される）を含む。マルチプレクサ６２２は、データの書き込み／読み出しを行うブロックを識別するアドレスビットＡ６  Ａ５  Ａ４  Ａ３  Ａ２  Ａ１をアドレス線から受信する。並べ替えセレクタ６２４は、並べ替え番号を用いてマルチプレクサ６２２を制御するように構成されており、並べ替え番号は、制御線から受信した制御情報に基づいて特定の並べ替え、バスマスタ、および読み出し／書き込み操作を識別する。並べ替え、バスマスタ、および読み出し／書き込み操作を任意に組み合わせることが可能である。
【００３４】
メモリアクセス時には、バスマスタのうちの１つだけが選択されて、そのバスマスタと結合されているデバイスがメモリ６１０に対してアドレスを指定することを可能にする。この特定の例示的実施形態では、マルチプレクサ６２２は、バスマスタｙに割り当てられた並べ替えｘと、バスマスタ０に割り当てられた並べ替え０との間で選択を行う。上述のように、データを書き込む順序と、データを読み出す順序は、異なってよい。より具体的には、データは、まず、バスマスタｙを用いて、アドレスビットを並べ替えずに、インタリーブ方式でメモリ６１０に書き込まれてよく、次に、バスマスタ０を用いて、アドレスビットを並べ替えることにより、デインタリーブ方式でメモリから読み出されてよい。
【００３５】
アドレスビット並べ替え回路６２０は、２Ｎバイトのサイズを有するアドレスで識別されるデータのブロックを仮想的に並べ替えるように構成されており、Ｎは、並べ替え対象外のアドレスビットの最下位ビット数を表す。図６を参照すると、Ａ０は並べ替え対象外であるため、各データブロックのサイズは、２１バイト、すなわち、１６ビットである（１バイトは８ビット）。Ａ１およびＡ０が並べ替え対象外であるとすると、各データブロックのサイズは、２２バイト、すなわち、３２ビットになる。したがって、データブロックサイズは、８ビット、１６ビット、３２ビット、６４ビットなどであってよい。
【００３６】
図６Ｂは、一例示的実施形態による、図６Ａの並べ替えセレクタ６２４のブロック図を示す。並べ替えセレクタ６２４は、特定の並べ替えを選択し、対応する並べ替え番号を動的または静的に出力してよい。
【００３７】
動的選択時には、メモリアクセスのたびに並べ替え選択が行われる。選択ユニットＢは、選択ユニットＡからの情報を選択する。選択ユニットＡは、制御線から受信されるバスマスタタグおよび読み出し／書き込み制御情報に従って特定の並べ替え、バスマスタ、および読み出し／書き込み操作をルックアップテーブルから選択する。並べ替えの選択枝をルックアップテーブルに配置することは様々な方法で可能なので、本開示は、図６Ｂに示された特定のテーブルに限定されるものではない。
【００３８】
一方、静的選択時には、同じ並べ替え選択であれば、メモリアクセスのたびに行われることはなく、同じままで維持される。並べ替えセレクタ６２４は、静的制御ビットを使用して、並べ替えの選択を、ソフトウェアから静的に行う。この場合、選択ユニットＢは、ＳＷ並べ替えを選択し、その場合、バスマスタタグ、読み出し／書き込み制御情報、およびルックアップテーブルに関連する選択ユニットＡは無視される。
【００３９】
並べ替え選択番号設定は、一般に、メモリ６１０全体にわたるすべてのメモリブロックに対してミラーリングされる。これは、各アドレスが繰り返されるためである。このミラーリング効果は、常に必要とされるわけではない。場合によっては、メモリの特定セグメントについてのみ、アドレスビットの並べ替えが必要になることもある。セグメントは、１つ以上のメモリブロックとして画定される。したがって、（図６Ａに示された）セグメントセレクタ６２６は、任意選択で、メモリアクセス時にアドレスビット並べ替えの対象となる任意のセグメントを選択し、残りのセグメントは、それらのデフォルトの順序でアクセスされる。このセグメント選択は、Ｎ個の最上位ビット（ＭＳＢ）を使用して行われ、たとえば、図６Ａに示されたＡ７およびＡ８を使用して行われる。
【００４０】
図７は、一例示的実施形態による、アドレスビットを用いてアドレス指定可能なブロックのアレイを有するメモリに対してアドレスを指定する方法のフローチャートを示す。
【００４１】
まず、ステップ７１０では、アドレスビットが与えられる。
【００４２】
ステップ７３０では、メモリアクセス時にデータのブロックが仮想的に並べ替えられるように、アドレスビットが並べ替えられる。
【００４３】
任意選択で、ステップ７２０では、データのブロックのすべてより少ないブロックが並べ替えられるように、仮想的に並べ替えられる任意のメモリセグメントが選択される。図６Ｂに関して上述されたように、この選択機能は、並べ替えが、メモリ全体にわたるすべてのメモリブロックに対してミラーリングされることを防ぐ。
【００４４】
データをインタリーブ／デインタリーブすることは、様々な用途に用いられる。たとえば、レーダ用途で使用される。レーダ用途では、８個のＡＤＣの読み取りがラウンドロビン方式で行われる場合がある。各ＡＤＣからのデータはインタリーブされ（たとえば、１２３４５６７８  １２３４５６７８  １２３４５６７８  １２３４５６７８）、ＦＦＴ処理の前にデインタリーブされなければならない（たとえば、１１１１  ２２２２  ３３３３  ４４４４  ５５５５  ６６６６  ７７７７  ８８８８）。次いで、第２のＦＦＴ処理の前には、データの並べ替えが再度必要になる。データの並べ替えは、メモリのアドレスビットを並べ替えることにより、達成される。データをこのように並べ替えることにより、複数の処理サイクルが必要なアドレスのジャンプおよびインクリメントが回避される。したがって、ＤＭＡを用いた、バーストアクセスによる、ＦＦＴアクセラレータへのフィードのためのメモリのコピーをより効率的に行うことが可能になる。
【００４５】
以上、例示的実施形態に関して説明してきたが、「例示的」という用語は、最良または最適というよりは、一例という意味に過ぎないことを理解されたい。したがって、本開示は、本開示の範囲に含まれうる代替形態、修正形態、および均等形態を包含するものとする。
【００４６】
本明細書では特定の実施形態を図示および説明してきたが、当業者であれば理解されるように、本出願の範囲から逸脱しない限り、図示および説明した特定の実施形態を、様々な代替および／または均等な実施態様に置き換えてよい。本出願は、本明細書で説明した特定実施形態のあらゆる改良または変形を包含するものとする。
【符号の説明】
【００４７】
１００、５００、６００  回路
１１０、２１０、３１０、５１０、６１０  メモリ
１２０、２２０、３２０、４２０、５２０、５２４、５２６、６２０  アドレスビット並べ替え回路
５３０  バススレーブインタフェース
５３２、５３４、５３６、５３８  バスマスタインタフェース
５４０  バスマスタ
５５６  ＤＭＡ
５５８  通信モジュール
５６０  外部メモリ
５６２  外部バスユニット
６２２  マルチプレクサ
６２４  並べ替えセレクタ
６２６  セグメントセレクタ
１５５２、２５５４  ＣＰＵ
【図１】
0005844433.tif 000002
【図２Ａ−２Ｃ】
0005844433.tif 000003
【図３Ａ−３Ｃ】
0005844433.tif 000004
【図４】
0005844433.tif 000005
【図５Ａ】
0005844433.tif 000006
【図５Ｂ】
0005844433.tif 000007
【図６Ａ】
0005844433.tif 000008
【図６Ｂ】
0005844433.tif 000009
【図７】
0005844433.tif 000010