(57)【要約】  ロード／ストア演算中にデータベクトルに対してオンザフライフォーマット変換を実施するためのシステムおよび方法について本明細書で説明する。一実施形態では、メモリからベクトルユニット中にデータベクトルをロードするための方法は、メモリから複数のサンプルを読み取ることを備え、ここにおいて、複数のサンプルはメモリにおいてパックされる。本方法はまた、複数のアンパックされたサンプルを取得するためにサンプルをアンパックすることと、アンパックされたサンプルに対してフォーマット変換を並列に実施することと、フォーマット変換されたサンプルの少なくとも一部分をベクトルユニットに送ることとを備える。
2017508201.tif 000002
【特許請求の範囲】
【請求項１】
メモリからベクトルユニットにデータベクトルをロードするための方法であって、
前記メモリから複数のサンプルを読み取ること、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックすることと、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施することと、
前記フォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送ることと、
を備える、方法。
【請求項２】
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の数値フォーマットを変換することを備える、請求項１に記載の方法。
【請求項３】
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の幅を変換することを備える、請求項１に記載の方法。
【請求項４】
前記アンパックされたサンプルの各々の前記幅を変換することが、前記アンパックされたサンプルの各々をパディングすることを備える、請求項３に記載の方法。
【請求項５】
前記フォーマット変換されたサンプルの前記少なくとも前記一部分を前記ベクトルユニットに送ることの前に、前記フォーマット変換されたサンプルの位置をシフトすることをさらに備える、請求項１に記載の方法。
【請求項６】
サンプルの結合されたセットを取得するために、前記シフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合することと、
サンプルの前記結合されたセットを前記ベクトルユニットに送ることと、
をさらに備える、請求項５に記載の方法。
【請求項７】
前記結合することが、
前記シフトされフォーマット変換されたサンプルをラッチ中に保持することと、
前記ラッチ中の前記シフトされたフォーマット変換されたサンプルのうちの１つまたは複数を前記第２の複数のサンプルからの前記１つまたは複数のサンプルで上書きすることと、
を備える、請求項６に記載の方法。
【請求項８】
メモリからベクトルユニット中にデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るための手段、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするための手段と、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施するための手段と、
前記フォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送るための手段と、
を備える、装置。
【請求項９】
メモリからベクトルユニットにデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るように構成されたコントローラ、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするように構成されたアンパックロジックと、
複数のフォーマット変換器、ここにおいて、前記アンパックロジックが、各アンパックされたサンプルを前記複数のフォーマット変換器のそれぞれ１つに入力するように構成され、各フォーマット変換器が、前記それぞれのアンパックされたサンプルに対してフォーマット変換を実施するように構成される、と、
前記フォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに出力するように構成された出力ラッチと、
を備える、装置。
【請求項１０】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの数値フォーマットを変換するように構成される、請求項９に記載の装置。
【請求項１１】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの幅を変換するように構成される、請求項９に記載の装置。
【請求項１２】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルをパディングすることによって前記それぞれのアンパックされたサンプルの前記幅を変換するように構成される、請求項１１に記載の装置。
【請求項１３】
前記複数のフォーマット変換器と前記出力ラッチとの間にローテータをさらに備え、ここにおいて、前記ローテータは、前記出力ラッチが前記フォーマット変換されたサンプルの前記少なくとも前記一部分を前記ベクトルユニットに出力する前に、前記フォーマット変換されたサンプルの位置をシフトするように構成される、請求項９に記載の装置。
【請求項１４】
前記出力ラッチが、サンプルの結合されたセットを取得するためにおよびサンプルの前記結合されたセットを前記ベクトルユニットに出力するために、前記シフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合するように構成される、請求項１３に記載の装置。
【請求項１５】
メモリにベクトルユニットからのデータベクトルを記憶するための方法であって、
前記ベクトルユニットから複数のサンプルを読み取ることと、
前記サンプルのうちの２つ以上に対してフォーマット変換を並列に実施することと、
前記フォーマット変換されたサンプルをパックすることと、
前記パックされたサンプルを前記メモリに送ることと、
を備える、方法。
【請求項１６】
前記サンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の数値フォーマットを変換することを備える、請求項１５に記載の方法。
【請求項１７】
前記サンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の幅を変換することを備える、請求項１５に記載の方法。
【請求項１８】
前記サンプルのうちの前記２つ以上の各々の前記幅を変換することが、前記サンプルのうちの前記２つ以上の各々をパディングすることを備える、請求項１７に記載の方法。
【請求項１９】
前記２つ以上のサンプルを前記メモリに送ることの前に、前記２つ以上のサンプルの位置をシフトすることをさらに備える、請求項１５に記載の方法。
【請求項２０】
前記メモリから１つまたは複数のサンプルを読み取ることと、
サンプルの結合されたセットを取得するために前記ベクトルユニットからの前記２つ以上のサンプルを前記メモリからの前記１つまたは複数のサンプルと結合することと、
をさらに備える、請求項１５に記載の方法。
【請求項２１】
サンプルの前記結合されたセットが前記メモリにおいてバンク境界とアライメントされる、請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示の態様は、一般にロード／ストア演算に関し、より詳細には、ベクトルプロセッサにおけるロード／ストア演算に関する。
【背景技術】
【０００２】
[0002]ベクトルプロセッサは、データベクトルに対して算術および論理演算を実施することによって（たとえば、ワイヤレスデバイスにおいて）ベースバンド信号の処理を加速するために使用され得、各データベクトルがデータサンプルのセットを備える。ベクトルプロセッサは、データベクトルに対して様々なベクトル演算を実施するようにプログラムされ得る再構成可能なデータ経路、論理および算術デバイス（たとえば、加算器、マルチプレクサ、アキュムレータなど）を備え得る。
【発明の概要】
【０００３】
[0003]以下で、１つまたは複数の実施形態の基本的理解を与えるために、そのような実施形態の簡略化された概要を提示する。この概要は、すべての企図される実施形態の包括的な概観ではなく、すべての実施形態の主要または重要な要素を識別するものでも、いずれかまたはすべての実施形態の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の前置きとして、簡略化された形態で１つまたは複数の実施形態のいくつかの概念を提示することである。
【０００４】
[0004]一態様によれば、メモリからベクトルユニット中にデータベクトルをロードするための方法について本明細書で説明する。本方法は、メモリから複数のサンプルを読み取ることを備え、ここにおいて、複数のサンプルはメモリにおいてパックされる。本方法はまた、複数のアンパックされたサンプルを取得するためにサンプルをアンパックすることと、アンパックされたサンプルに対してフォーマット変換を並列に実施することと、フォーマット変換されたサンプルの少なくとも一部分をベクトルユニットに送ることとを備える。
【０００５】
[0005]第２の態様は、メモリからベクトルユニット中にデータベクトルをロードするための装置に関係する。本装置は、メモリから複数のサンプルを読み取るための手段を備え、ここにおいて、複数のサンプルはメモリにおいてパックされる。本装置はまた、複数のアンパックされたサンプルを取得するためにサンプルをアンパックするための手段と、アンパックされたサンプルに対してフォーマット変換を並列に実施するための手段と、フォーマット変換されたサンプルの少なくとも一部分をベクトルユニットに送るための手段とを備える。
【０００６】
[0006]第３の態様は、メモリからベクトルユニット中にデータベクトルをロードするための装置に関係する。本装置は、メモリから複数のサンプルを読み取るように構成されたコントローラを備え、ここにおいて、複数のサンプルはメモリにおいてパックされる。本装置はまた、複数のアンパックされたサンプルを取得するためにサンプルをアンパックするように構成されたアンパックロジック（unpack logic）と、複数のフォーマット変換器とを備え、ここにおいて、アンパックロジックは、各アンパックされたサンプルを複数のフォーマット変換器のそれぞれ１つに入力するように構成され、各フォーマット変換器は、それぞれのアンパックされたサンプルに対してフォーマット変換を実施するように構成される。本装置は、フォーマット変換されたサンプルの少なくとも一部分をベクトルユニットに出力するように構成された出力ラッチをさらに備える。
【０００７】
[0007]第４の態様は、ベクトルユニットからメモリにデータベクトルを記憶するための方法に関係する。本方法は、ベクトルユニットから複数のサンプルを読み取ることと、サンプルのうちの２つ以上に対してフォーマット変換を並列に実施することとを備える。本方法はまた、フォーマット変換されたサンプルをパックすることと、パックされたサンプルをメモリに送ることとを備える。
【０００８】
[0008]上記および関連する目的を達成するために、１つまたは複数の実施形態は、以下で十分に説明し、特に特許請求の範囲において指摘する特徴を備える。以下の説明および添付の図面は、１つまたは複数の実施形態のいくつかの例示的な態様を詳細に記載する。ただし、これらの態様は、様々な実施形態の原理が採用され得る様々な方法のほんのいくつかを示すものであり、説明する実施形態は、すべてのそのような態様およびそれらの均等物を含むものである。
【図面の簡単な説明】
【０００９】
【図１】[0009]フォーマット変換を実施するように構成されたメモリブリッジを備えるシステムのブロック図。
【図２】[0010]本開示の一実施形態による、ロード／ストア演算中にオンザフライフォーマット変換を行うように構成されたロード／ストアユニットを備えるシステムのブロック図。
【図３】[0011]本開示の一実施形態によるロード／ストアユニットのためのロード経路の例示的な一実装形態を示す図。
【図４】[0012]本開示の一実施形態によるメモリ中のデータベクトルの一例を示す図。
【図５】[0013]本開示の一実施形態による、メモリから読み出されているデータベクトルの一例を示す図。
【図６】[0014]本開示の一実施形態による、データベクトルのサンプルがクロスバー回路によって連結される一例を示す図。
【図７】[0015]本開示の一実施形態による、サンプルを０でパディングすることによってサンプルの幅が拡張される一例を示す図。
【図８】[0016]本開示の一実施形態による、２つの読取り演算からのサンプルが、ベクトルユニット中へのローディングのためにサンプルの所望のセットを構成するためにシフトされ選択的に結合される一例を示す図。
【図９】[0017]本開示の一実施形態による、異なる幅のサンプルをベクトルユニットに出力するための論理を備えるロード経路を示す図。
【図１０】[0018]本開示の一実施形態による、フォーマット変換モードまたはバイパスモードで選択的に演算することが可能なロード経路を示す図。
【図１１】[0019]提示される本発明の一実施形態による、２つの読取り演算からのサンプルがシフトされ、バイパスモードで選択的に結合される一例を示す図。
【図１２】[0020]本開示の一実施形態による、データサンプルをベクトルユニット中にロードするための方法を示す流れ図。
【図１３】[0021]本開示の一実施形態によるロード／ストアユニットのためのストア経路の例示的な一実装形態を示す図。
【図１４】[0022]本開示の一実施形態による読取り修正書込み演算の一例を示す図。
【図１５】[0023]本開示の一実施形態による、サンプルがメモリに書き込まれるべきであるメモリスペースの一例を示す図。
【図１６】[0024]本開示の一実施形態による、クロスバー回路に入力されるサンプルの一例を示す図。
【図１７】[0025]本開示の一実施形態による、クロスバー回路によって出力されるサンプルの一例を示す図。
【図１８】[0026]本開示の一実施形態による、バイパスモードにおける読取り修正書込み演算の一例を示す図。
【図１９】[0027]本開示の一実施形態による、データサンプルをメモリに記憶するための方法を示す流れ図。
【発明を実施するための形態】
【００１０】
[0028]添付の図面に関して以下に記載する詳細な説明は、様々な構成を説明するものであり、本明細書で説明する概念が実施され得る唯一の構成を表すものではない。詳細な説明は、様々な概念の完全な理解を提供する目的のための具体的な詳細を含む。しかしながら、これらの概念はこれらの具体的な詳細を伴わずに実施され得ることが当業者には明らかであろう。いくつかの例では、そのような概念を不明瞭にしないように、よく知られている構造および構成要素はブロック図の形態で示される。
【００１１】
[0029]ベクトルプロセッサは、データベクトルに対して算術および論理演算を実施することによってベースバンド信号の処理を加速するために使用され得、これにおいて、各データベクトルはデータサンプルのセットを備える。データベクトルは、様々な固定小数点数および浮動小数点数フォーマットでメモリに記憶され得る。対照的に、ベクトルプロセッサは、算術フォーマットの限られたセットのみをサポートし得る。その結果、データベクトルがベクトル処理のためにメモリから取り出されたとき、データベクトルは、データベクトルがメモリに記憶されているフォーマットからベクトル処理に好適なフォーマットにデータベクトルを変換するためにフォーマット変換を受ける必要があり得る。
【００１２】
[0030]図１は、システム１００においてデータベクトルのフォーマット変換を行うための１つの手法を示す。システム１００は、メモリ１１０と、メモリブリッジ１１５と、ローカルメモリ（ＬＭＥＭ）１３０と、ロード／ストアユニット１３５と、ベクトルユニット１４０とを備える。ベクトルユニット１４０は、データベクトルに対して様々なベクトル演算を実施するようにプログラムされ得る再構成可能なデータ経路、論理および算術デバイス（たとえば、加算器、マルチプレクサ、アキュムレータなど）を備え得る。ベクトルユニット１４０はまた、処理されるべきデータサンプルと、得られたサンプル（すなわち、１つまたは複数のデータベクトルに対して実施される１つまたは複数のベクトル演算から得られるサンプル）とを一時的に記憶するためのベクトルレジスタファイル（図示せず）を備え得る。
【００１３】
[0031]演算中、メモリブリッジ１１５は、メモリ１１０からデータベクトルを取り出し、ベクトル処理に好適なフォーマットにデータベクトルを変換するためにデータベクトルに対してフォーマット変換を実施する。メモリブリッジ１１５は、次いで、フォーマット変換されたデータベクトルをベクトルユニット１４０にとって利用可能にするために、フォーマット変換されたデータベクトルをＬＭＥＭ１３０に記憶する。ベクトルユニット１４０がフォーマット変換されたデータベクトルを処理する必要があるとき、ロード／ストアユニット１３５は、ＬＭＥＭ１３０からベクトルユニット１４０のベクトルレジスタファイル中にデータベクトルをロードする。ベクトルユニット１４０が得られたデータベクトルを出力したとき、ロード／ストアユニット１３５は、得られたデータベクトルをＬＭＥＭ１３０に記憶する。メモリブリッジ１１５は、ＬＭＥＭ１３０から得られたデータベクトルを取り出し、得られたデータベクトルがメモリ１１０にそれにおいて記憶されるべきであるフォーマットに得られたデータベクトルを変換するために、得られたデータベクトルに対してフォーマット変換を実施する。メモリブリッジ１１５は、次いで、得られたデータベクトルをメモリ１１０に記憶する。
【００１４】
[0032]この手法の欠点は、それがメモリ１１０とベクトルユニット１４０との間に中間メモリ（たとえば、ＬＭＥＭ１３０）を必要とすることであり、それにより、メモリ１１０とベクトルユニット１４０との間でデータベクトルを移動するために必要とされる時間（クロックサイクルの数）が増加する。さらに、ＬＭＥＭ１３０は電力を消費し、空間を占有する。
【００１５】
[0033]本開示の実施形態は、ロード／ストア演算中にデータベクトルに対してオンザフライフォーマット変換を行う。これは、ベクトルユニット１４０とメモリ１１０との間の中間メモリにフォーマット変換されたデータベクトルを一時的に記憶する必要をなくし、それにより、ベクトルユニット１４０とメモリ１１０との間でデータベクトルを移動するために必要とされる時間が低減する。
【００１６】
[0034]図２は、本開示の一実施形態によるシステム２００を示す。システム２００は、メモリ１１０と、ベクトルユニット１４０と、ロード／ストアユニット２３５とを備える。ロード／ストアユニット２３５は、メモリ１１０からベクトルユニット１４０中にデータベクトルをロードするプロセスにおいて、データベクトルに対してオンザフライフォーマット変換を実施するように構成される。ロード／ストアユニット２３５はまた、ベクトルユニット１４０からメモリ１１０にデータベクトルを記憶するプロセスにおいて、データベクトルに対してオンザフライフォーマット変換を実施するように構成される。ロード／ストアユニット２３５はまた、以下でさらに説明されるように、サンプルリアライメント（realignment）を実施し得る。
【００１７】
[0035]図３は、本開示の一実施形態によるロード／ストアユニット２３５のロード経路３１０の例示的な一実装形態を示す。ロード経路３１０は、コントローラ３１５と、クロスバー回路３２５と、サンプル変換ロジック３３０と、ローテータ３４０と、第１のマルチプレクサ３５０と、第２のマルチプレクサ３７０と、出力ラッチ３６０とを備える。サンプル変換ロジック３３０は、アンパックロジック３３２と、複数のフォーマット変換器３３５とを備える。ロード経路３１０はまた、第１のラッチ３２０と、第２のラッチ３２７と、第３のラッチ３３７と、第４のラッチ３４５とを備える。
【００１８】
[0036]図１に示されている例では、メモリ１１０は３２個のバンクに分割され得、ここで、各バンクは３２ビットの幅を有する。ロード経路３１０は、３２個の３２ビットデータレーンを備える１０２４ビットメモリバス３１７を介してメモリ１１０に連結され得、ここで、各データレーンは、メモリ１１０のバンクのそれぞれの１つに対応する。ロード演算中に、コントローラ３１５は、メモリ１１０の１つまたは複数のバンクからデータを読み取り得、メモリ１１０では、各バンクから３２ビットが読み取られる。各バンクから読み取られた３２ビットは、バス３１７のそれぞれの３２ビットデータレーン上でトランスポートされる。この例では、コントローラ３１５は、一度に最高３２個のバンクからデータを読み取り得、したがって、一度に最大１０２４ビットを読み取り得る。一態様では、読取り演算はバンク境界に限定され得る。したがって、コントローラ３１５が読取り演算中にバンク中の行にアクセスする場合、コントローラ３１５は、行の中のデータの一部分のみが必要とされるかどうかにかかわらず、バンク中の行全体を読み取る必要があり得る。
【００１９】
[0037]本開示の実施形態について、説明しやすいように上記の例を使用して以下で説明する。ただし、本開示の実施形態はこの例に限定されず、本開示の実施形態は、異なる数のバンクを備えおよび／または異なるバンク幅を有するメモリとともに使用され得ることを諒解されたい。
【００２０】
[0038]一態様では、メモリ１１０中のデータベクトルはデータサンプルのセットを備え得、ここで、各サンプルは、バンク幅（たとえば、３２ビット）よりも小さいビット数を備える。たとえば、各サンプルは、８ビット、１０ビット、１２ビット、１６ビット、２０ビット、または２４ビットを備え得る。この態様では、サンプルは、メモリスペースを温存するためにメモリ１１０中に一緒にパックされ得る。たとえば、サンプルは、隣接するサンプル間の空のメモリスペースなしでメモリ１１０中にパックされ得る
[0039]ロード演算中に、コントローラ３１５は、メモリ１１０から複数のサンプル（たとえば、３２個のサンプル）を読み取り得る。各サンプルがバンク幅（たとえば、３２ビット）よりも小さいビット数を備える場合、コントローラ３１５は、バンクのサブセットからサンプルを読み取り得る。たとえば、コントローラ３１５は、１０個のバンクから３２個の１０ビットサンプルを、１２個のバンクから３２個の１２ビットサンプルを、１６個のバンクから３２個の１６ビットサンプルをなど読み取り得る。
【００２１】
[0040]第１のラッチ３２０は、読み取られたサンプルをラッチし、ラッチされたサンプルを、複数のデータレーン（たとえば、３２個の３２ビットデータレーン）を介してクロスバー回路３２５に出力する。クロスバー回路３２５は、サンプルがその上でトランスポートされるデータレーンを再ルーティングするように構成される。たとえば、クロスバー回路３２５は、クロスバー回路３２５の入力におけるデータレーンの任意の１つを、クロスバー回路３２５の出力におけるデータレーンの任意の１つに連結するように構成され得る。コントローラ３１５は、以下でさらに説明するように、メモリ１１０から読み取られたサンプルを連結するためにクロスバー回路３２５を使用し得る。
【００２２】
[0041]第２のラッチ３２７は、クロスバー回路３２５からのサンプルをラッチし、ラッチされたサンプルをアンパックロジック３３２に出力する。アンパックロジック３３２は、サンプルをアンパックし、各アンパックされたサンプルをフォーマット変換器３３５のそれぞれの１つに提供する。これを行うために、コントローラ３１５は、各サンプルの幅（サイズ）（たとえば、８ビット、１０ビット、１２ビット、１６ビット、２０ビット、または２４ビット）を示す命令をアンパックロジック３３２に送り得る。これは、アンパックロジック３３２がサンプル間の境界を決定し、したがって、サンプルをアンパックすることを可能にする。
【００２３】
[0042]フォーマット変換器３３５は、アンパックロジック３３２からのサンプルに対してフォーマット変換を並列に実施し、これにおいて、各フォーマット変換器３３５はそれぞれのサンプルのフォーマットを変換する。メモリ１１０から一度に３２個のサンプルが読み取られる例では、ロード経路３１０は、３２個のサンプルに対してフォーマット変換を並列に実施するために３２個のフォーマット変換器３３５を備え得る。
【００２４】
[0043]各フォーマット変換器３３５は、それぞれのサンプルの数値フォーマットを変換し得る。たとえば、各フォーマット変換器３３５は、浮動小数点数フォーマットから固定小数点数フォーマットに、またはその逆にそれぞれのサンプルを変換し得る。各フォーマット変換器３３５はまた、それぞれのサンプルの幅（サイズ）を変更し得る。たとえば、各フォーマット変換器３３５は、以下でさらに説明されるように、サンプルを０でパディングすることによってそれぞれのサンプルの幅（サイズ）を増加させ得る。一態様では、コントローラ３１５は、フォーマット変換器３３５が適切なフォーマット変換を実施するように、メモリ１１０中のサンプルのフォーマットとベクトル処理のためのサンプルのフォーマットとを示す命令をフォーマット変換器３３５に送り得る。各フォーマット変換器３３５は、図３に示されているように、それぞれのデータレーン（たとえば、３２ビットデータレーン）上でそれぞれのフォーマット変換されたサンプルを出力する。
【００２５】
[0044]第３のラッチ３３７は、フォーマット変換器３３５からのフォーマット変換されたサンプルをラッチし、ラッチされたサンプルをローテータ３４０に出力する。説明しやすいように、図３では第３のラッチ３３７の後に個々のデータレーンは示されていない。ローテータ３４０は、サンプルの位置をシフトするように構成される。たとえば、ローテータ３４０は、以下でさらに説明するように、サンプルをベクトルユニット１４０においてデータレーンと適切にアライメント（alignment）させるためにサンプルの位置をシフトし得る。一態様では、コントローラ３１５は、サンプルをそれだけシフトするサンプル位置の数を示すオフセット値をローテータ３４０に送り得る。
【００２６】
[0045]第４のラッチ３４５は、ローテータ３４０からのシフトされたサンプルをラッチし、ラッチされたサンプルを第１のマルチプレクサ３５０に出力する。一態様では、出力ラッチ３６０は、第１の出力ラッチ３６２と、第２の出力ラッチ３６５とを備え、ここで、各ラッチ３６２および３６５は、一度にローテータ３４０からのサンプルの半分（たとえば、１６個のサンプル）を保持し得る。この態様では、第１のマルチプレクサ３５０は、サンプルの前半とサンプルの後半とを出力ラッチ３６０に異なる時間に（たとえば、異なるクロックサイクル上で）出力する。マルチプレクサ３５０がサンプルの前半を出力したとき、第１の出力ラッチ３６２はサンプルの前半をラッチし得、マルチプレクサ３５０がサンプルの後半を出力したとき、第２の出力ラッチ３６５はサンプルの後半をラッチし得る。
【００２７】
[0046]第２のマルチプレクサ３７０は、第１および第２の出力ラッチ３６２および３６５をベクトルユニット１４０に選択的に連結し得る。たとえば、第２のマルチプレクサ３７０は、第１および第２の出力ラッチ３６２および３６５をベクトルユニット１４０に異なるクロックサイクル上で連結し得る。第２のマルチプレクサ３７０が第１の出力ラッチ３６２をベクトルユニット１４０に連結したとき、第１の出力ラッチ３６２は、サンプルの前半（たとえば、１６個のサンプル）をベクトルユニット１４０に出力し得、第２のマルチプレクサ３７０が第２の出力ラッチ３６５をベクトルユニット１４０に連結したとき、第２の出力ラッチ３６５は、サンプルの後半（たとえば、１６個のサンプル）をベクトルユニット１４０に出力し得る。このように、この実施形態では、サンプルは２等分に分割され得、それらはベクトルユニット１４０に１つずつ送られる。これは、ベクトルユニット１４０がメモリ１１０の幅の半分（たとえば、５１２ビット）を有することを可能にする。この実施形態では、出力ラッチ３６０は、他のラッチ３２０、３２７、３３６および３４５のクロック周波数の２倍で動作し得る。これは、出力ラッチ３６０が一度に半数のサンプルのみを出力するにもかかわらず、出力ラッチ３６０が他のラッチと同じレートでサンプルを出力することを可能にする。
【００２８】
[0047]一実施形態では、出力ラッチ３６０は、コントローラ３１５が出力ラッチ３６０における個々のサンプル空間中の書込みを選択的に可能にすることを可能にする書込み可能機能を有する。以下でさらに説明するように、これは、コントローラ３１５が、ベクトルユニット１４０中にロードされるべきサンプルの所望のセットを構成するために、２つの異なる読取り演算からのサンプルを選択的に結合することを可能にする。
【００２９】
[0048]次に、例としてロード経路３１０の様々な動作についてさらに詳細に説明する。これらの例は例示にすぎず、非限定的であることを諒解されたい。
【００３０】
[0049]一例では、コントローラ３１５は、メモリ１１０からベクトルユニット１４０中に３２個の１２ビットサンプルをロードし得る。この例では、３２個の１２ビットサンプルは合計３８４ビット（３２×１２ビット）を備え、それらのビットは、メモリ１１０中に一緒にパックされ、メモリ１１０の１２個のバンクに記憶され得る。バンクのうちの第１のバンクは、サンプルのうちの第１のサンプルと、サンプルのうちの第２のサンプルと、サンプルのうちの第３のサンプルの８ビットとを記憶し得、バンクのうちの第２のバンクは、サンプルのうちの第３のサンプルの残りの４ビットと、サンプルのうちの第４のサンプルと、サンプルのうちの第５のサンプルと、サンプルのうちの第６のサンプルの４ビットとを記憶し得、以下同様である。
【００３１】
[0050]図４は、メモリ１１０に記憶された３２個の１２ビットサンプルの一例を示す。この例では、サンプルは、メモリ１１０中の２つの異なる行を占有している２つの部分４１０ａおよび４１０ｂに分割される。これは、たとえば、行の中にサンプルのすべてを書き込むのに十分な空きスペースが行の中にないときに起こり得る。図４に示されているように、第１の部分４１０ａはｎビットを備え、第２の部分４１０ｂは３８４−ｎビットを備える。各部分４１０ａおよび４１０ｂはバンク幅（たとえば、３２ビット）の倍数にわたり得る。
【００３２】
[0051]コントローラ３１５は、メモリ１１０からサンプルの２つの部分４１０ａおよび４１０ｂを読み出し得る。２つの部分４１０ａおよび４１０ｂは、図５に示されているように、メモリバス３１７の１２個のデータレーン上でトランスポートされ得る。この例では、バス３１７上のサンプルの２つの部分４１０ａおよび４１０ｂの間にスペース５１０がある。これは、サンプルの第１および第２の部分４１０ａおよび４１０ｂをメモリ１１０に記憶しているバンクが複数のバンク（たとえば、２０個のバンク）によって分離されるからである。
【００３３】
[0052]第１のラッチ３２０は、読み取られたサンプルをラッチし、それらをクロスバー回路３２５に提供する。クロスバー回路３２５は、図６に示されているように、サンプルの第１および第２の部分４１０ａおよび４１０ｂがその上でトランスポートされるデータレーンを再ルーティングすることによって、サンプルの第１および第２の部分４１０ａおよび４１０ｂを連続サンプル６１０に連結する。
【００３４】
[0053]クロスバー回路３２５はまた、図６に示されているように、第１および第２の部分４１０ａおよび４１０ｂを互いに対して再配置し得る。これは、たとえば、連結されたサンプル６１０が連続的に順序付けられるように行われ得る。たとえば、図４に示されているように、サンプルのうちの第１のサンプルは、サンプルの第１の部分４１０ａの境界４１７において開始し得、サンプルのうちの最後のサンプルは、サンプルの第２の部分４１０ｂの境界４２０において終了し得る。この例では、クロスバー回路３２５は、第１および最後のサンプルが、図６に示されているように、連結されたサンプル６１０の境界４１７および４２０にそれぞれ位置するように、第１および第２の部分４１０ａおよび４１０ｂを互いに対して再配置し得る。
【００３５】
[0054]第２のラッチ３２７は、クロスバー回路３２５からの連結されたサンプル６１０をラッチし、それらをアンパックロジック３３２に提供する。アンパックロジック３３２は、１２ビットサンプルをアンパックし、各アンパックされた１２ビットサンプルをフォーマット変換器３３５のそれぞれの１つに提供する。各フォーマット変換器３３５は、それぞれの１２ビットサンプルを３２ビットサンプルに変換し得る。一例では、これは、単に各１２ビットサンプルを２０個の０でパディングすることによって達成され得る。この点について、図７は、３２個の１２ビットサンプル６１０が、各１２ビットサンプルを０でパディングすることによって３２個の３２ビットサンプル７１０に変換される一例を示す。これはサンプル幅拡張と呼ばれることがある。別の例では、フォーマット変換器３３５はまた、浮動小数点数フォーマットから固定小数点数フォーマットに、またはその逆に１２ビットサンプルを変換することなど、１２ビットサンプルの数値フォーマットを変換し得る。各フォーマット変換されたサンプルは、上記で説明したように、それぞれのデータレーン（たとえば、３２ビットデータレーン）に出力される。
【００３６】
[0055]第３のラッチ３３７は、フォーマット変換器３３５からのフォーマット変換されたサンプルをラッチし、それらをローテータ３４０に提供する。ローテータ３４０は、たとえば、サンプルをベクトルユニット１４０においてデータレーンと適切にアライメントさせるために、サンプルの位置をシフトし得る。これを行うために、ローテータ３４０は、図７に示されたいずれかのローテーション方向７２２および７２５にサンプルをローテートし得る。たとえば、サンプルがローテーション方向７２２に１つのサンプル位置だけローテートされた場合、上部７３０におけるサンプルは下部７３２に移動され、残りのサンプルは１つの位置だけシフトアップされる。別の例では、サンプルがローテーション方向７２５に１つのサンプルだけローテートされた場合、下部７３２におけるサンプルは上部７３０に移動され、残りのサンプルは１つの位置だけシフトダウンされる。サンプルは、所望のサンプルアライメントを達成するためにいずれの方向にもシフトされ得ることを諒解されたい。
【００３７】
[0056]上記で説明したように、コントローラ３１５は、ベクトルユニット１４０中にロードされるべきサンプルの所望のセットを構成するために、２つの異なる読取り演算からのサンプルを選択的に結合するために出力ラッチ３６０の書込み可能機能を使用することができる。これについては、図８を参照しながら以下の例を通して説明され得る。図８は、ベクトルユニット１４０中にロードされるべきサンプルの所望のセット８５０を示す。この例では、サンプルの所望のセット８５０はサンプル１〜３２を備える。
【００３８】
[0057]図８はまた、第３のラッチ３２７によって異なる時間にローテータ３４０に入力されたサンプルの第１および第２のセット８１０および８３０を示す。第１および第２のセット８１０および８３０は、それぞれ第１および第２の読取り演算に対応する。この例では、サンプルの第１のセット８１０はサンプル０〜３１を備え、サンプルの第２のセット８３０はサンプル３２〜６３を備える。サンプル０はサンプルの所望のセット８５０中にないが、サンプルの第１のセット８１０はサンプル０を備える。これは、サンプル０およびサンプル１がメモリ１１０中の同じバンク中にあり、第１の読取り演算がバンク境界に限定されることに起因し得る。その結果、コントローラ３１５は、サンプル０をも読み取ることなしにメモリ１１０からサンプル１を読み取ることが不可能であり得る。
【００３９】
[0058]次に、一実施形態による、サンプルの第１および第２のセット８１０および８３０からサンプルの所望のセット８５０を達成するための演算について説明する。ローテータ３４０は、サンプルの第１のセット８１０を受信し、サンプル１〜３１をサンプルの所望のセット８５０中のそれらの対応する位置とアライメントさせるためにサンプルの第１のセット８１０中のサンプルの位置をシフト（ローテート）する。サンプルの得られたシフトされたセット８２０は出力ラッチ３６０に書き込まれる。したがって、この時点で、サンプルのシフトされたセット８２０は出力ラッチ３６０において保持される。
【００４０】
[0059]ローテータ３４０は、次いで、サンプルの第２のセット８３０を受信し、サンプル３２をサンプルの所望のセット８５０中の対応する位置とアライメントさせるためにサンプルの位置をシフト（ローテート）する。コントローラ３１５は、書込みイネーブル信号を使用してサンプルの得られたシフトされたセット８４０から出力ラッチ３６０にサンプル３２を選択的に書き込み得る。この例では、書込みイネーブル信号は、サンプル３２に対応する位置８５５における書込みのみを可能にする。したがって、サンプルのシフトされたセット８４０からのサンプル３２のみが出力ラッチ３６０に書き込まれ、前の書込み演算からのサンプル１〜３１は出力ラッチ３６０中に残る。その結果、サンプルの所望のセット８５０は出力ラッチ３６０において構成される。サンプルの所望のセット８５０は、次いで、ベクトルユニット１４０に出力され得る。
【００４１】
[0060]概して、異なる読取り演算に対応する、サンプルの第１のセットと、サンプルの第２のセットとからのサンプルを選択的に結合することによって、サンプルの所望のセットが出力ラッチ３６０において構成され得る。より詳細には、ローテータ３４０は、サンプルの第１のセット中の１つまたは複数のサンプルをサンプルの所望のセット中のそれらの対応する位置とアライメントさせるためにサンプルの第１のセットをシフト（ローテート）し得、それにより、サンプルの第１のシフトされたセットが生じる。サンプルの第１のシフトされたセットは、次いで、出力ラッチ３６０に書き込まれ得る。ローテータ３４０は、次いで、サンプルの第２のセット中の１つまたは複数のサンプルをサンプルの所望のセット中のそれらの対応する位置とアライメントさせるためにサンプルの第２のセットをシフト（ローテート）し得、それにより、サンプルの第２のシフトされたセットが生じる。コントローラ３１５は、次いで、サンプルの第２のシフトされたセット中の１つまたは複数のサンプルを出力ラッチ３６０に選択的に書き込むことによってサンプルの所望のセットを構成し得る。より詳細には、コントローラ３１５は、出力ラッチ３６０に書き込まれるべきサンプルの第２のシフトされたセット中の１つまたは複数のサンプルに対応する出力ラッチ３６０におけるサンプル空間中の書込みを可能にする。
【００４２】
[0061]図９は、本開示の別の実施形態によるロード経路９１０を示し、ここでは、ロード経路９１０が、複数の異なるサンプル幅の任意の１つでベクトルユニット１４０にサンプルを出力することが可能である。図９に示されている例では、ロード経路９１０は、ベクトルユニット１４０に３２ビットサンプル、１６ビットサンプルまたは８ビットサンプルを選択的に出力することが可能である。したがって、この例では、ロード／ストアユニット２３５は、ベクトルユニット１４０のために３つの異なるサンプル幅をサポートする。
【００４３】
[0062]ロード経路９１０は、第１のデータ経路９１５と、第２のデータ経路９２０と、第３のデータ経路９３０と、データ経路マルチプレクサ９４０とを備える。第１のデータ経路９１５、第２のデータ経路９２０、および第３のデータ経路９３０は、ベクトルユニット１４０に、それぞれ３２ビットサンプル、１６ビットサンプル、および８ビットサンプルを出力するために使用される。データ経路マルチプレクサ９４０は、所望のサンプル幅に応じて第１、第２、第３のデータ経路９１５、９２０および９３０のうちの１つを出力ラッチ３６０に選択的に連結するように構成される。
【００４４】
[0063]第１のデータ経路９１５は、図３に示された第４のラッチ３４５と出力ラッチ３６０との間のデータ経路と同様である。第２のデータ経路９２０は３２対１６ビットパッキングロジック（packing logic）９２５を備え、第３のデータ経路９３０は３２対８ビットパッキングロジック９３５を備える。
【００４５】
[0064]この実施形態では、第４のラッチ３４５は、マルチプレクサ９４０によってどのデータ経路９１５、９２０および９３０が選択されるかにかかわらず、３２ビットサンプルを出力し得る。第２のデータ経路９２０が選択されたとき、各３２ビットサンプルは、１６個の０でパディングされた１６ビットサンプルを備え得る。この場合、フォーマット変換器３３５は、アンパックロジックからの各サンプルを１６ビットサンプルに変換し、１６ビットサンプルを１６個の０でパディングして３２ビットサンプルを生成し得る。第３のデータ経路９３０が選択されたとき、各３２ビットサンプルは、２４個の０でパディングされた８ビットサンプルを備え得る。この場合、フォーマット変換器３３５は、アンパックロジックからの各サンプルを８ビットサンプルに変換し、８ビットサンプルを２４個の０でパディングして３２ビットサンプルを生成し得る。このように、この実施形態では、フォーマット変換器３３５は、ベクトルユニット１４０のためにどのサンプル幅が選択されるかにかかわらず、アンパックロジック３３２からのサンプルを３２ビットサンプルに変換し得る。これは、ロード経路９１０のアーキテクチャを簡略化するために行われ得る。
【００４６】
[0065]３２ビットのサンプル幅が選択されたとき、コントローラ３１５は、第１のデータ経路９１５を出力ラッチ３６０に連結するようにマルチプレクサ９４０に命令する。第４のラッチ３４５からのサンプルは２等分（それぞれ５１２ビット）に分割され、それらは、上記で説明したように、出力ラッチ３６０に１つずつ送られる。
【００４７】
[0066]１６ビットのサンプル幅が選択されたとき、コントローラ３１５は、第２のデータ経路９２０を出力ラッチ３６０に連結するようにマルチプレクサ９４０に命令する。３２対１６パッキングロジック９２５は、サンプルからパディング（たとえば、０）の１６ビットを削除することによって各サンプルの幅を３２ビットから１６ビットに低減する。図９に示された例では、３２対１６パッキングロジック９２５は、得られたサンプルを５１２ビットにパックする。言い換えれば、３２対１６パッキングロジックは、１０２４ビットにわたる３２個の３２ビットサンプルを、５１２ビットにわたる３２個の１６ビットサンプルに変換する。３２個の１６ビットサンプルは、第１および第２の出力ラッチ３６０のうちの１つにおいて保持され、一度に（たとえば、１つのクロックサイクルにおいて）ベクトルユニット１４０に送られ得る。
【００４８】
[0067]８ビットのサンプル幅が選択されたとき、コントローラ３１５は、第３のデータ経路９３０を出力ラッチ３６０に連結するようにマルチプレクサ９４０に命令する。３２対８パッキングロジック９３５は、サンプルからパディング（たとえば、０）の２４ビットを削除することによって各サンプルの幅を３２ビットから８ビットに低減する。図９に示された例では、３２対８パッキングロジック９３５は、得られたサンプルを２５６ビットにパックする。言い換えれば、３２対８パッキングロジックは、１０２４ビットにわたる３２個の３２ビットサンプルを、２５６ビットにわたる３２個の８ビットサンプルに変換する。３２個の８ビットサンプルは、５１２ビットにわたる６４個の８ビットサンプルを生成するために複製され得る。６４個の８ビットは、第１および第２の出力ラッチ３６０のうちの１つにおいて保持され、一度に（たとえば、１つのクロックサイクルにおいて）ベクトルユニット１４０に送られ得る。
【００４９】
[0068]図１０は、本開示の別の実施形態によるロード経路１０１０を示す。ロード経路１０１０は、第４のラッチ３４５からロード／ストアユニット２３５の（図１３に示された）ストア経路への経路１０５０を含む。以下でさらに説明するように、経路１０５０は、ロード／ストアユニット２３５が読取り修正書込み演算を実施することを可能にする。
【００５０】
[0069]この実施形態では、ロード経路１０１０は、フォーマット変換モードまたはバイパスモードで選択的に動作することが可能である。フォーマット変換モードでは、ロード経路１０１０は、図９のロード経路９１０と同様に動作する。バイパスモードでは、ロード経路１０１０は、フォーマット変換なしにメモリ１１０からベクトルユニット１４０中にデータサンプルをロードする。このモードは、たとえば、サンプルが、ベクトル処理のためにすでに好適であるフォーマットでメモリ１１０に記憶されているときに選択され得る。
【００５１】
[0070]図１０に示された例では、ロード経路１０１０は、フォーマット変換を必要としない８ビットサンプルまたは１６ビットサンプルのためにバイパスモードで動作することが可能である。次に、バイパスモードにおけるロード経路１０１０の演算が以下の例によって説明されるが、本開示の実施形態はこれらの例に限定されないことを諒解されたい。
【００５２】
[0071]フォーマット変換を必要としない１６ビットサンプルに関して、コントローラ３１５は、合計１０２４ビットのために一度にメモリ１１０の３２個のバンクから最大６４個の１６ビットサンプルを読み出し得る。第１のラッチ３２０は、読み取られたサンプルをラッチし、それらをクロスバー回路３２５に提供する。クロスバー回路３２５は、上記で説明したように、サンプルがその上でトランスポートされるデータレーンを再ルーティングし得る。第２のラッチ３２７は、クロスバー回路３２５からのサンプルをラッチし、それらをサンプル変換ロジック１０３０に提供する。バイパスモードにおいて、サンプル変換ロジック１０３０は、サンプルをアンパックしサンプルにフォーマット変換を実施することなしに、単にサンプルをローテータ１０４０に受け渡し得る。言い換えれば、サンプルは、アンパックロジック３３２およびフォーマット変換器３３５をバイパスし得る。
【００５３】
[0072]ローテータ１０４０は、たとえば、サンプルをベクトルユニット１４０においてデータレーンと適切にアライメントさせるために、サンプルの位置をシフトし得る。これを行うために、ローテータ１０４０は、所望のアライメントを達成するためにいずれかのローテーション方向に１６ビットの倍数だけサンプルをローテートし得る。
【００５４】
[0073]第４のラッチ３４５は、ローテータ１０４０からのシフトされたサンプルをラッチし、ラッチされたサンプルを出力する。バイパスモードにおいて、マルチプレクサ９４０は第１のデータ経路９１５を選択し、これにおいて、シフトされたサンプルは前半および後半に分割され、これらの前半および後半は、それぞれ第１および第２の出力ラッチ３６２および３６５においてラッチされる。前半および後半は、異なる時間に（たとえば、異なるクロックサイクルにおいて）ベクトルユニット１４０に出力され得る。サンプルはバイパスモードではアンパックされないので、サンプルの各半分は、５１２ビットにわたる３２個の１６ビットサンプルを備え得る。
【００５５】
[0074]この例では、コントローラ３１５は、ベクトルユニット１４０中にロードされるべき１６ビットサンプルの所望のセットを構成するために、２つの読取り演算からの１６ビットサンプルを選択的に結合するために出力ラッチ３６０の書込み可能機能を使用することができる。これについては、図１１を参照しながら以下の例を通して説明され得る。図１１は、ベクトルユニット１４０中にロードされるべきサンプルの所望のセット１１５０を示す。この例では、サンプルの所望のセット１１５０はサンプル１〜６４を備える。
【００５６】
[0075]図１１はまた、異なる時間にローテータ１０４０に入力され、第１および第２の読取り演算にそれぞれ対応するサンプルの第１および第２のセット１１１０および１１３０を示す。サンプルの第１のセット１１１０はサンプル０〜６３を備え、サンプルの第２のセット１１３０はサンプル６４〜１２７を備える。この例では、サンプル１がメモリ１１０においてバンク境界とアライメントされないので、単一の読取り演算でサンプル１〜６４を読み取ることは不可能であり得る。
【００５７】
[0076]次に、一実施形態による、サンプルの第１および第２のセット１１１０および１１３０からサンプルの所望のセット１１５０を達成するための演算について説明する。ローテータ１０４０は、サンプルの第１のセット１１１０を受信し、サンプル１〜６３をサンプルの所望のセット１１５０中のそれらの対応する位置とアライメントさせるためにサンプルの第１のセット１１１０中のサンプルの位置をシフト（ローテート）する。この例では、サンプルは１つのサンプル位置（１６ビット）だけシフトされる。サンプルの得られたシフトされたセット１１２０は出力ラッチ３６０に書き込まれる。したがって、この時点で、サンプルのシフトされたセット１１２０は出力ラッチ３６０において保持される。
【００５８】
[0077]ローテータ１０４０は、次いで、サンプルの第２のセット１１３０を受信し、サンプル６４をサンプルの所望のセット１１５０中の対応する位置とアライメントさせるためにサンプルの第２のセット１１３０中のサンプルの位置をシフト（ローテート）する。コントローラ３１５は、書込みイネーブル信号を使用してサンプルの得られたシフトされたセット１１４０から出力ラッチ３６０にサンプル６４を選択的に書き込み得、これにおいて、書込みイネーブル信号は、サンプル６４に対応する位置１１５５における書込みのみを可能にする。その結果、サンプルの所望のセット１１５０は出力ラッチ３６０において構成される。サンプルの所望のセット１１５０は、次いで、ベクトルユニット１４０に出力され得る。
【００５９】
[0078]フォーマット変換を必要としない８ビットサンプルでは、コントローラ３１５は、合計１０２４ビットのために一度にメモリ１１０の３２個のバンクから最大１２８個の８ビットサンプルを読み出し得る。第１のラッチ３２０は、読み取られたサンプルをラッチし、それらをクロスバー回路３２５に提供する。クロスバー回路３２５は、上記で説明したように、サンプルがその上でトランスポートされるデータレーンを再ルーティングし得る。第２のラッチ３２７は、クロスバー回路３２５からのサンプルをラッチし、それらをサンプル変換ロジック１０３０に提供する。バイパスモードにおいて、サンプル変換ロジック１０３０は、サンプルをアンパックしサンプルに対してフォーマット変換を実施することなしに、単にサンプルをローテータ１０４０に受け渡し得る。
【００６０】
[0079]ローテータ１０４０は、たとえば、サンプルをベクトルユニット１４０においてデータレーンと適切にアライメントさせるために、サンプルの位置をシフトし得る。これを行うために、ローテータ１０４０は、所望のアライメントを達成するためにいずれかのローテーション方向に８ビットの倍数だけサンプルをローテートし得る。たとえば、ローテータ１０４０は、サンプルを２４ビットだけローテートすることによって３つのサンプル位置だけサンプルをローテートし得る。
【００６１】
[0080]第４のラッチ３４５は、ローテータ１０４０からのシフトされたサンプルをラッチし、ラッチされたサンプルを出力する。バイパスモードにおいて、マルチプレクサ９４０は第１のデータ経路９１５を選択し、これにおいて、シフトされたサンプルは前半および後半に分割され、これらの前半および後半は、それぞれ第１および第２の出力ラッチ３６２および３６５においてラッチされる。前半および後半は、異なる時間に（たとえば、異なるクロックサイクルにおいて）ベクトルユニット１４０に出力され得る。サンプルはバイパスモードではアンパックされないので、サンプルの各半分は、５１２ビットにわたる６４個の８ビットサンプルを備え得る。
【００６２】
[0081]この例では、コントローラ３１５は、ベクトルユニット１４０中にロードされるべき８ビットサンプルの所望のセットを構成するために、２つの読取り演算からの８ビットサンプルを選択的に結合するために出力ラッチ３６０の書込み可能機能を使用することができる。これは、１６ビットサンプルについて上記で説明したのと同様に行われ得る。
【００６３】
[0082]図１２は、本開示の一実施形態による、データサンプルをベクトルユニット中にロードするための方法１２００を示す流れ図である。
【００６４】
[0083]ステップ１２１０において、メモリから複数のサンプルが読み取られ、ここにおいて、サンプルはメモリにおいてパックされる。たとえば、サンプルは、隣接するサンプル間のメモリスペースなしで一緒にパックされ得る。
【００６５】
[0084]ステップ１２２０において、複数のアンパックされたサンプルを取得するためにサンプルをアンパックする。たとえば、サンプルはアンパックロジック（たとえば、アンパックロジック３３２）によってアンパックされ得る。
【００６６】
[0085]ステップ１２３０において、アンパックされたサンプルに対してフォーマット変換は並列に実施される。たとえば、各アンパックされたサンプルは、複数のフォーマット変換器（たとえば、フォーマット変換器３３５）のそれぞれの１つに入力され得、ここで、各フォーマット変換器は、それぞれのアンパックされたサンプルに対してフォーマット変換を実施する。
【００６７】
[0086]ステップ１２４０において、フォーマット変換されたサンプルの少なくとも一部分は、ベクトルユニットに送られる。フォーマット変換されたサンプルは、（たとえば、フォーマット変換されたサンプルをベクトルユニット１４０においてデータレーンと適切にアライメントさせるために）ベクトルユニットに送られる前に（たとえば、ローテータ３４０によって）シフトされ得る。フォーマット変換されたサンプルはまた、ベクトルユニットに送られる前に、別の読取り演算に対応するフォーマット変換されたサンプルと選択的に結合され得る。これは、上記で説明したように、ベクトルユニット中にローディングするためのサンプルの所望のセットを構成するために行われ得る。
【００６８】
[0087]図１３は、本開示の一実施形態によるロード／ストアユニット２３５のストア経路１３１０の例示的な一実装形態を示す。ストア経路１３１０は、ベクトルユニット１４０からメモリ１１０にサンプルを記憶するプロセスにおいてサンプルのオンザフライフォーマット変換を実施することが可能である。
【００６９】
[0088]ストア経路１３１０は、コントローラ３１５と、読取り修正書込みロジック１３８５と、ローテータ１３４０と、サンプル変換ロジック１３３０と、クロスバー回路１３２５とを備える。サンプル変換ロジック１３３０は、複数のフォーマット変換器１３３５とパックロジック１３３２とを備え、読取り修正書込みロジック１３８５は、ラインレジスタ１３９０と複数のマルチプレクサ１３９５とを備える。ストア経路１３１０はまた、第１のデータ経路１３６５と、第２のデータ経路１３６７と、第３のデータ経路１３７２と、データ経路マルチプレクサ１３８０とを備える。ストア経路１３１０は、第１のラッチ１３３７と、第２のラッチ１３２７と、第３のラッチ１３２０とをさらに備える。
【００７０】
[0089]図１３に示された例では、ストア経路１３１０の入力は、メモリ１１０に記憶されるべきサンプルを受信するために５１２ビットバスを介してベクトルユニット１４０に連結される。ストア経路１３１０の出力は、３２個の３２ビットデータレーンを備える１０２４ビットメモリバス１３１７を介してメモリ１１０に連結され得、ここで、各データレーンは、メモリ１１０のそれぞれのバンクに対応する。本開示の実施形態は上記に与えられた例に限定されないことを諒解されたい。
【００７１】
[0090]ストア演算中に、コントローラ３１５は、メモリ１１０への記憶のためにベクトルユニット１４０のベクトルレジスタファイルから複数のサンプル（たとえば、３２個のサンプル）を読み取り得る。一実施形態では、ストア経路１３１０は、複数の異なるサンプル幅の任意の１つでベクトルユニット１４０からサンプルを受信することが可能である。図１３に示されている例では、ストア経路１３１０は、ベクトルユニット１４０から３２ビットサンプル、１６ビットサンプルまたは８ビットサンプルを選択的に受信することが可能である。第１のデータ経路１３６５は、ベクトルユニット１４０から３２ビットサンプルを受信するために使用され、第２のデータ経路１３６７は、ベクトルユニット１４０から１６ビットサンプルを受信するために使用され、第３のデータ経路１３７２は、ベクトルユニット１４０から８ビットサンプルを受信するために使用される。データ経路マルチプレクサ１３８０は、ベクトルユニット１４０から受信されているサンプルの幅に従って、第１、第２、第３のデータ経路１３６５、１３６７および１３７２のうちの１つを読取り修正書込みロジック１３８５に選択的に連結するように構成される。
【００７２】
[0091]ストア経路１３１０がベクトルユニット１４０から３２ビットサンプルを受信すべきとき、コントローラ３１５は、第１のデータ経路１３６５を読取り修正書込みロジック１３８５に連結するようにマルチプレクサ１３８０に命令し得る。この場合、第１のデータ経路１３６５は、２つのクロックサイクルにわたってベクトルユニット１４０から３２個の３２ビットサンプルを受信し得、これにおいて、各クロックサイクルにおいてサンプルの半分が受信される。３２個の３２ビットサンプルは読取り修正書込みロジック１３８５に入力され得る。
【００７３】
[0092]ストア経路１３１０がベクトルユニット１４０から１６ビットサンプルを受信すべきとき、コントローラ３１５は、第２のデータ経路１３６７を読取り修正書込みロジック１３８５に連結するようにマルチプレクサ１３８０に命令し得る。この場合、第２のデータ経路１３６７は、ベクトルユニット１４０から３２個の１６ビットサンプルを受信し得、第２のデータ経路１３６７における１６対３２拡張ロジック１３７０は、１６ビットサンプルを０でパディングすることによって各１６ビットサンプルを３２ビットサンプルに拡張し得る。得られた３２個の３２ビットサンプルは読取り修正書込みロジック１３８５に入力され得る。
【００７４】
[0093]ストア経路１３１０がベクトルユニット１４０から８ビットサンプルを受信すべきとき、コントローラ３１５は、第３のデータ経路１３７２を読取り修正書込みロジック１３８５に連結するようにマルチプレクサ１３８０に命令し得る。この場合、第３のデータ経路１３７２は、ベクトルユニット１４０から３２個の８ビットサンプルの２つの複製を受信し得る。第３のデータ経路１３７２におけるマルチプレクサ１３７５は、第３のデータ経路１３７２において複製のうちの１つを８対３２拡張ロジック１３７７に出力し得る。８対３２拡張ロジック１３７７は、８ビットサンプルを０でパディングすることによって各８ビットサンプルを３２ビットサンプルに拡張し得る。得られた３２個の３２ビットサンプルは読取り修正書込みロジック１３８５に入力され得る。
【００７５】
[0094]読取り修正書込みロジック１３８５は、メモリ１１０に書き込まれるべきサンプルのセットを生成するために、ベクトルユニット１４０からのサンプルを、メモリ１１０から読み取られた１つまたは複数のサンプルと選択的に結合し得る。以下でさらに説明するように、これは、メモリ１１０への書込み演算がバンク境界に限定され、ベクトルユニット１４０から受信されたサンプルがメモリ１１０においてバンク境界とアライメントされないときに行われ得る。
【００７６】
[0095]ローテータ１３４０は、読取り修正書込みロジック１３８５からサンプルを受信する。ローテータ１３４０は、次いで、サンプルの位置をシフトし得る。たとえば、ローテータ１３４０は、以下でさらに説明するように、メモリ１１０への記憶のために適切なアライメントでサンプルを配置するためにサンプルの位置をシフトし得る。一態様では、コントローラ３１５は、サンプルをそれだけシフトするサンプル位置の数を示すオフセット値をローテータ１３４０に送り得る。
【００７７】
[0096]第１のラッチ１３３７は、ローテータ１３４０からのサンプルをラッチし、ラッチされたサンプルをサンプル変換ロジック１３３０に出力する。各サンプルは、それぞれのデータレーン（たとえば、３２ビットデータレーン）を介してサンプル変換ロジック１３３０にトランスポートされる。サンプル変換ロジック１３３０において、各サンプルはフォーマット変換器１３３５のそれぞれの１つに入力される。各フォーマット変換器１３３５は、サンプルがメモリ１１０にそれにおいて記憶されるべきであるフォーマットにそれぞれのサンプルのフォーマットを変換する。たとえば、各フォーマット変換器１３３５は、それぞれのサンプルの数値フォーマットを変換し得る。各フォーマット変換器１３３５はまた、それぞれのサンプルの幅を変更し得る。たとえば、各フォーマット変換器１３３５は、それぞれのサンプルの幅を低減（たとえば、３２ビットサンプルを８ビット、１０ビット、１２ビット、１６ビット、２０ビット、または２４ビットサンプルに変換）し得る。一態様では、コントローラ３１５は、フォーマット変換器１３３５が適切なフォーマット変換を実施するように、ベクトルユニット１４０中のサンプルのフォーマットと、サンプルがメモリ１１０にそれにおいて記憶されるべきであるフォーマットとを示す命令をフォーマット変換器１３３５に送り得る。
【００７８】
[0097]パックロジック１３３２は、フォーマット変換器１３３５からのフォーマット変換されたサンプルをパックする。たとえば、各フォーマット変換されたサンプルが１２ビットの幅を有する場合、パックロジック１３３２は、フォーマット変換されたサンプルを３８４ビットにパックし得る。
【００７９】
[0098]第２のラッチ１３２７は、パックロジック１３３２からのサンプルをラッチし、ラッチされたサンプルをクロスバー回路１３２５に出力する。クロスバー回路１３２５は、サンプルがその上でトランスポートされるデータレーンを再ルーティングするように構成される。たとえば、クロスバー回路１３２５は、クロスバー回路１３２５の入力におけるデータレーンの任意の１つを、クロスバー回路１３２５の出力におけるデータレーンの任意の１つに連結するように構成され得る。コントローラ３１５は、以下でさらに説明するように、サンプルがその中でメモリ１１０に記憶されるべきであるメモリスペースにサンプルをアライメントさせるためにクロスバー回路１３２５を使用し得る。
【００８０】
[0099]第３のラッチ１３２０は、クロスバー回路１３２５からのサンプルをラッチし、ラッチされたサンプルをメモリ１１０に出力する。コントローラ３１５は、次いで、所望のメモリアドレスにサンプルを書き込む。
【００８１】
[0100]次に、例としてストア経路１３１０の様々な演算についてさらに詳細に説明する。これらの例は例示にすぎず、非限定的であることを諒解されたい。
【００８２】
[0101]図１４は、本開示の一実施形態による読取り修正書込み演算の一例を示す。図１４は、ベクトルユニット１４０から読み取られるサンプルの例示的なセット１４１０を示す。サンプルのセット１４１０は、読取り修正書込みロジック１３８５のラインレジスタ１３９０において一時的に保持される。サンプルの例示的なセット１４１０は、更新されたサンプル１〜３２を含み、それらは、メモリ１１０中のサンプル１〜３２を更新するためにメモリ１１０に書き込まれるべきものである。図１４において、更新されたサンプルは、メモリ１１０から読み取られたサンプルからそれらを区別するために陰影を付けられている。
【００８３】
[0102]図１４に示された例では、サンプルのセット１４１０は、メモリ１１０においてバンク境界とアライメントされない。その結果、サンプルのセット１４１０は、２つの書込み演算でメモリに書き込まれる必要があり得る。たとえば、メモリ１１０中のサンプル０〜３１のためのメモリスペースはバンク境界とアライメントされ得、これにおいて、サンプル０およびサンプル１はメモリ１１０中の同じバンク中にあり得る。その結果、コントローラ３１５は、（変更されていない）サンプル０を上書きすることなしには、更新されたサンプル１をメモリ１１０に書き込むことが不可能であり得る。この例では、コントローラ３１５は、第１の書込み演算でサンプル０〜３１のためのメモリスペースに書き込み得、これにおいて、コントローラ３１５は、メモリ１１０中のサンプル１〜３１を、ベクトルユニット１４０からの更新されたサンプル１〜３１で上書きし、メモリ１１０中のサンプル０を書き直し、それにより、サンプル０を不変のままにする。
【００８４】
[0103]この点について、コントローラ３１５は、メモリ１１０からサンプル０〜３１を読み取り、それらのサンプルを（図１０に示された）ロード経路１０１０に入力し得る。ロード経路１０１０において、クロスバー回路３２５は、上記で説明したように、サンプルを連結し得る。アンパックロジック３３２は、次いで、サンプルをアンパックし、各アンパックされたサンプルをそれぞれのフォーマット変換器３３５に送り得る。一態様では、各フォーマット変換器３３５は、（たとえば、サンプルを０でパディングすることによって）それぞれのサンプルを３２ビットに拡張し、拡張されたサンプルをそれぞれのデータレーン（たとえば、３２ビットデータレーン）に出力する。この拡張は、それぞれのサンプルの幅を３２ビットに拡張するが、それと同時に、以下でさらに説明するように、（たとえば、０パディングを削除することによって）サンプルの元の値が復元されることを可能にする。図１４は、ロード経路１０１０においてフォーマット変換器３３５から出力されたサンプルのセット１４２０を示している。ローテータ１０４０は、次いで、サンプルをシフトし、それにより、シフトされたサンプルのセット１４３０が生じ、これにおいて、変更されていないサンプル（この例ではサンプル０）は、ベクトルユニット１４０から読み取られたサンプルに対して適切にアライメントされる。図１４に示された例では、サンプル０は位置１４５５にシフトされる。
【００８５】
[0104]（図１３に示された）ストア経路１３１０において、読取り修正書込みロジック１３８５は、経路１０５０を介してロード経路１０１０からサンプルを受信し、メモリ１１０に書き込まれるべきサンプルのセットを形成するために、ロード経路１０１０からの１つまたは複数のサンプルを、ベクトルユニット１４０からの更新されたサンプルと選択的に結合する。図１４に示された例では、メモリ１１０に書き込まれるべきサンプルのセット１４４０を形成するために、ロード経路１０１０からのサンプル０は、更新されたサンプル１〜３１と結合される。これを行うために、読取り修正書込みロジック１３８５中の各マルチプレクサ１３９５は、ロード経路１０１０からサンプルの一部分（たとえば、８ビット）を、およびラインレジスタ１３９０から更新されたサンプルの一部分（８ビット）を受信し、メモリ１１０に書き込まれるべきサンプルのセット中に含まれるべき一部分を選択する。図１４に示された例では、位置１４５５に対応するマルチプレクサ１３９５は、ロード経路１０１０からサンプル０を選択するが、他のマルチプレクサ１３９５は、ラインレジスタ１３９０から更新されたサンプルを選択する。
【００８６】
[0105]図１４に示された例では、メモリ１１０に書き込まれるべきサンプルのセット１４４０は、更新されたサンプル１〜３１と、メモリ１１０から読み取られたサンプル０とを含む。ストア経路１３１０におけるローテータ１３４０は、次いで、メモリ１１０への記憶のために適切なアライメントでサンプルを配置するために、サンプルのセット１４４０中のサンプルをシフト（ローテート）し、それにより、サンプルのシフトされたセット１４５０が生じる。ストア経路１３１０におけるローテータ１３４０によるローテーションは、ロード経路１０１０におけるローテータ１０４０によるローテーションの反対であり得る。言い換えれば、ストア経路１３１０におけるローテータ１３４０によるローテーションは、ロード経路１０１０においてローテータ１０４０によって更新されていないサンプル（たとえば、サンプル０）のローテーションを元に戻し得る。その結果、サンプル０は、図１４に示されているように、ロード経路１０１０におけるローテータ１０４０によるローテーションの前のそれの位置１４６０に回復され得る。
【００８７】
[0106]サンプルのセット１４５０中の各サンプルは、それぞれのデータレーン（たとえば、３２ビットデータレーン）を介してストア経路１３１０においてフォーマット変換器１３３５のそれぞれの１つに入力され得る。更新されたサンプルに対応するフォーマット変換器１３３５は、更新されたサンプルを、更新されたサンプルがメモリ１１０にそれにおいて記憶されるべきであるフォーマットに変換するために、更新されたサンプルに対してフォーマット変換を並列に実施し得る。たとえば、更新されたサンプルに対応する各フォーマット変換器１３３５は、浮動小数点数フォーマットから固定小数点数フォーマットに、またはその逆にそれぞれの更新されたサンプルを変換し得る。フォーマット変換は、それぞれの更新されたサンプルの幅を低減することを伴い得る。
【００８８】
[0107]メモリ１１０から読み取られたサンプルに対応する各フォーマット変換器１３３５は、ロード経路１０１０における対応するフォーマット変換器３３５による拡大の前のそれの元の幅にサンプルを低減し得る。フォーマット変換器１３３５は、ロード経路１０１０における対応するフォーマット変換器３３５によって追加されたパディング（たとえば、０パディング）を削除することによってこれを行い得る。その結果、メモリ１１０から読み取られた元のサンプルは復元され得る。図１４に示された例では、サンプル０に対応するフォーマット変換器１３３５は、ロード経路１０１０における対応するフォーマット変換器３３５によって追加されたパディングを削除することによってサンプル０の幅を低減し得る。
【００８９】
[0108]したがって、更新されたサンプルに対応するフォーマット変換器１３３５、およびメモリ１１０から読み取られたサンプルに対応するフォーマット変換器１３３５は、異なるフォーマット変換を実施し得る。更新されたサンプルに対応するフォーマット変換器１３３５は、更新されたサンプルのフォーマットを、ベクトルユニット１４０によってそれらが出力されたフォーマットから、メモリ１１０にそれらが記憶されるべきフォーマットへと変換する。読み取られたサンプルに対応するフォーマット変換器１３３５は、（たとえば、パディングを削除することによって）ロード経路１０１０におけるフォーマット変換器３３５による拡張を元に戻す。
【００９０】
[0109]ストア経路１３１０におけるパックロジック１３３２は、次いで、フォーマット変換器１３３５からのサンプルを、パックされたサンプルにパックし得る。たとえば、フォーマット変換器１３３５からのサンプルが１２ビットの幅をそれぞれ有する場合、パックロジック１３３２は、サンプルを３８４ビットにパックし得る。
【００９１】
[0110]クロスバー回路１３２５は、次いで、たとえば、パックされたサンプルを、パックされたサンプルが記憶されるべきであるメモリスペースとアライメントさせるために、パックされたサンプルがその上でトランスポートされるデータレーンを再ルーティングし得る。この点について、図１５は、パックされたサンプルが書き込まれるべきメモリスペースの一例を示す。この例では、メモリスペースは、第１の部分１５１０ａと、第２の部分１５１０ｂとを備え、それらは、メモリ１１０中の異なる行の中にあり得る。パックされたサンプルのうちの第１のパックされたサンプルは、第１の部分１５１０ａの境界１５１７とアライメントされるべきであり、パックされたサンプルのうちの最後のパックされたサンプルは、第２の部分１５１０ｂの境界１５２０とアライメントされるべきである。メモリスペースの各部分１５１０ａおよび１５１０ｂは、バンク幅（たとえば、３２ビット）の倍数にわたり得、メモリ１１０においてバンク境界とアライメントされ得る。
【００９２】
[0111]図１６は、クロスバー回路１３２５に入力されるパックされたサンプル１６０５の一例を示す。この例では、パックされたサンプル１６０５は、メモリスペースの第１の部分１５１０ａに書き込まれるべき第１の部分１６１０ａと、メモリスペースの第２の部分１５１０ｂに書き込まれるべき第２の部分１６１０ｂとを備える。各部分１６１０ａおよび１６１０ｂはバンク幅の倍数にわたり得る。境界１６１７は、パックされたサンプル１６０５のうちの第１のパックされたサンプルとアライメントされ、境界１６２０は、パックされたサンプル１６０５のうちの最後のパックされたサンプルとアライメントされる。各パックされたサンプルが１２ビットを備える非限定的な例では、パックされたサンプル１６０５は、図１６に示されているように、３８４ビットにわたり得る。各パックされたサンプルは異なるビット数を備え得ることを諒解されたい。
【００９３】
[0112]図１７は、クロスバー回路１３２５の出力の一例を示し、これにおいて、クロスバー回路１３２５は、パックされたサンプル１６０５の第１および第２の部分１６１０ａおよび１６１０ｂを、メモリスペースの第１および第２の部分１５１０ａおよび１５１０ｂとそれぞれアライメントする。クロスバー１３２５は、パックされたサンプルがその上でトランスポートされるデータレーンを再ルーティングすることによってこれを行う。この例では、パックされたサンプル１６０５の第１および第２の部分１６１０ａおよび１６１０ｂは、メモリ１１０中のメモリスペースの第１の部分１５１０ａと第２の部分１５１０ｂとの間のスペースに対応するスペース１７１０によって分離され得る。パックされたサンプル１６０５は、次いで、メモリ１１０中のメモリスペースの第１および第２の部分に書き込まれ得る。
【００９４】
[0113]このようにして、図１４に示された例では、第１の書込み演算中に、更新されたサンプル１〜３１はメモリ１１０に書き込まれ、サンプル０はメモリ１１０に書き直される。この例ではサンプル０〜３１がメモリから読み取られたが、これらのサンプルのサブセットのみがメモリ１１０から読み取られたことがあり得ることを諒解されたい。この理由は、この例では、第１の書込み演算をバンク境界とアライメントさせるために、サンプル０のみが、更新されたサンプル１〜３１と結合される必要があるからである。更新されたサンプル３２は、上記で説明した更新されたサンプル１〜３１と同様の様式で、第２の書込み演算においてメモリ１１０に書き込まれ得る。
【００９５】
[0114]一実施形態では、ストア経路１３１０は、ロード経路１０１０と同様に、フォーマット変換モードまたはバイパスモードで選択的に動作することが可能である。フォーマット変換モードでは、ストア経路１３１０は、上記で説明したのと同じ様式で動作する。バイパスモードでは、ストア経路１３１０は、フォーマット変換なしにベクトルユニット１４０からメモリ１１０にデータサンプルを記憶する。このモードは、たとえば、サンプルが、ベクトルユニット１４０によってそれらが出力された同じフォーマットでメモリ１１０に記憶されるべきであるときに選択され得る。
【００９６】
[0115]図１３に示された例では、ストア経路１３１０は、フォーマット変換を必要としない８ビットサンプルまたは１６ビットサンプルのためにバイパスモードで動作することが可能である。次に、バイパスモードにおけるストア経路１３１０の演算について、方法以下の例によって説明されるが、本開示の実施形態はこれらの例に限定されないことを諒解されたい。
【００９７】
[0116]フォーマット変換を必要としない８ビットサンプルに関して、コントローラ３１５は、ベクトルユニット１４０から１２８個の８ビットの更新されたサンプルを読み取り得、これらのサンプルは、第１のデータ経路１３６５を介して読取り修正書込みロジック１３８５によって受信される。更新されたサンプルがメモリにおいてバンク境界とアライメントされない場合、読取り修正書込みロジック１３８５は、バンク境界とアライメントされたサンプルの１つまたは複数のセットを生成するために、更新されたサンプルを、メモリ１１０から読み取られた１つまたは複数のサンプルと結合し得る。サンプルの各生成されたセットは、別個の書込み演算においてメモリ１１０に書き込まれ得る。
【００９８】
[0117]この点について、図１８は、本開示の一実施形態による読取り修正書込み演算の一例を示す。図１８は、バイパスモードにおいてベクトルユニット１４０から読み取られる８ビットサンプルの例示的なセット１８１０を示す。サンプルの例示的なセット１８１０は、メモリ１１０中のサンプル３〜１３０を更新するためにメモリ１１０に書き込まれるべきである、更新されたサンプル３〜１３０を含む。図１８において、更新されたサンプルは、メモリ１１０から読み取られたサンプルからそれらを区別するために陰影を付けられている。
【００９９】
[0118]図１８に示された例では、サンプルのセット１８１０は、メモリ１１０においてバンク境界とアライメントされない。その結果、サンプルのセット１８１０は、２つの書込み演算でメモリに書き込まれる必要があり得る。たとえば、メモリ１１０中のサンプル０〜１２７のためのメモリスペースがバンク境界とアライメントされ得る。この場合、読取り修正書込みロジック１３８５は、サンプルの第１のセット１８４０を生成するために、メモリ１１０から読み取られたサンプル０〜２を、更新されたサンプル３〜１２７と結合し得る。これを行うために、コントローラ３１５は、メモリ１１０からサンプル０〜１２７を読み取り得、それらのサンプルはロード経路１０１０に入力される。コントローラ３１５は、サンプルを連結するようにクロスバー回路３２５に命令し得、それにより、サンプルのセット１８２０が生じる。サンプルのセット１８２０は、アンパッキングおよびフォーマット変換なしにサンプル変換ロジック１０３０を通過し得る。ローテータ１０４０は、次いで、サンプルのシフトされたセット１８３０を生成するために、読み取られたサンプルの位置をシフト（ローテート）し得、これにおいて、読み取られたサンプル０〜２は、ベクトルユニット１４０からの更新されたサンプル３〜１２７に対して適切にアライメントされる。
【０１００】
[0119]書込み修正書込みロジック１３８５は、次いで、サンプルの第１のセット１８４０を生成するために、更新されたサンプル３〜１２７を、読み取られたサンプル０〜２と結合され得る。ローテータ１３４０は、読取り修正書込みロジック１３８５からサンプルの第１のセット０〜１２７を受信し、サンプルの位置をシフト（ローテート）し、それにより、サンプルのシフトされたセット１８５０が生じる。ストア経路１３１０におけるローテータ１３４０によるローテーションは、ロード経路１０１０におけるローテータ１０４０によるローテーションの反対を実施し得る。クロスバー回路３２５は、たとえば、サンプルを、サンプルがメモリ１１０にそれにおいて記憶されるべきであるメモリスペースとアライメントするために、サンプルのシフトされたセット中のサンプルがその上でトランスポートされるデータレーンを再ルーティングし得る。サンプルは、次いで、メモリ１１０に書き込まれ得る。更新されたサンプル１２８〜１３０は、上記で説明した更新されたサンプル３〜１２７と同様の様式で、第２の書込み演算においてメモリ１１０に書き込まれ得る。
【０１０１】
[0120]フォーマット変換を必要としない１６ビットサンプルの場合、コントローラ３１５は、８ビットサンプルについて上記で説明したのと同様の様式でサンプルをメモリ１１０に記憶し得る。
【０１０２】
[0121]図１９は、本開示の一実施形態による、ベクタユニットからのデータサンプルをメモリに記憶するための方法１９００を示す流れ図である。
【０１０３】
[0122]ステップ１９１０において、ベクトルユニットから複数のサンプルを読み取る。たとえば、コントローラ（たとえば、コントローラ３１５）が、ベクトルユニットから（たとえば、ベクトルユニット１４０のベクトルレジスタファイルから）サンプルを読み取り得る。
【０１０４】
[0123]ステップ１９２０において、サンプルのうちの２つ以上に対してフォーマット変換を並列に実施する。たとえば、各サンプルは、複数のフォーマット変換器（たとえば、フォーマット変換器１３３５）のそれぞれの１つに入力され得、ここで、各フォーマット変換器は、それぞれのサンプルに対してフォーマット変換を実施する。
【０１０５】
[0124]ステップ１９３０において、フォーマット変換されたサンプルはパックされる。たとえば、フォーマット変換されたサンプルはパックロジック（たとえば、パックロジック１３３２）によってパックされ得る。ステップ１９４０において、パックされたサンプルはメモリに送られる。
【０１０６】
[0125]ベクトルユニット１４０は、ユーザ機器（ＵＥ）（たとえば、ワイヤレスモバイルデバイス）のモデム（たとえば、ロングタームエボリューション（ＬＴＥ（登録商標））モデム）中で使用され得る。この例では、ＵＥは、ワイヤレスリンクを介してデータおよび／または制御信号を受信し、受信された信号を、メモリ１１０に一時的に記憶されるデータサンプルに処理（たとえば、フィルタ処理、増幅、デジタル化など）する受信機を含み得、メモリ１１０において、データサンプルは、処理のためにベクトルユニット１４０によってアクセス可能である。ベクトルユニット１４０は、たとえば、高速フーリエ変換、チャネル推定、復調、デマッピングなどを含む、モデムに関係する様々なベクトル演算を実施するようにプログラムされ得る再構成可能なデータ経路、論理および算術デバイス（たとえば、加算器、マルチプレクサ、アキュムレータなど）を備え得る。本開示の実施形態はこの例に限定されず、本開示の実施形態は、ベクトル処理に好適な他の適用例において使用され得ることを諒解されたい。
【０１０７】
[0126]本明細書の開示に関連して説明した様々な例示的なブロックおよびステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１０８】
[0127]本明細書の開示に関して説明した様々な例示的なブロックは、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明した機能を実施するように設計されたそれらの任意の組合せによって実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【０１０９】
[0128]本明細書の開示に関して説明した方法またはアルゴリズムのステップは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェアモジュールで、またはその２つの組合せで具現化され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体の中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに連結される。代替として、記憶媒体はプロセッサと一体化であり得る。プロセッサおよび記憶媒体はＡＳＩＣ中にあり得る。ＡＳＩＣはユーザ端末中に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中の個別構成要素として存在し得る。
【０１１０】
[0129]１つまたは複数の例示的な設計では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、汎用または専用コンピュータによってアクセスされ得る任意の入手可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令またはデータ構造の形態の所望のプログラムコード手段を搬送または格納するために使用され得、汎用もしくは専用コンピュータ、または汎用もしくは専用プロセッサによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続も、送信信号の非一時的記憶を伴う限り、コンピュータ可読媒体と適切に呼ばれ得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、任意の非一時的な期間、信号が記憶媒体またはデバイスメモリ上の送信チェーン内に保持される限り、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびｂｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１１１】
[0130]本開示についての以上の説明は、いかなる当業者でも本開示を作製または使用することができるように提供されたものである。本開示に対する様々な修正は、当業者には容易に明らかとなり、本明細書で定義される一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例に限定されるものではなく、本明細書で開示した原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
【図１】
2017508201.tif 000003
【図２】
2017508201.tif 000004
【図３】
2017508201.tif 000005
【図４】
2017508201.tif 000006
【図５】
2017508201.tif 000007
【図６】
2017508201.tif 000008
【図７】
2017508201.tif 000009
【図８】
2017508201.tif 000010
【図９】
2017508201.tif 000011
【図１０】
2017508201.tif 000012
【図１１】
2017508201.tif 000013
【図１２】
2017508201.tif 000014
【図１３】
2017508201.tif 000015
【図１４】
2017508201.tif 000016
【図１５】
2017508201.tif 000017
【図１６】
2017508201.tif 000018
【図１７】
2017508201.tif 000019
【図１８】
2017508201.tif 000020
【図１９】
2017508201.tif 000021
【手続補正書】
【提出日】平成28年9月29日(2016.9.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリからベクトルユニットにデータベクトルをロードするための方法であって、
前記メモリから複数のサンプルを読み取ること、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックすることと、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施することと、
複数のパックされたフォーマット変換されたサンプルを取得するために前記フォーマット変換されたサンプルの少なくとも一部分をパックすることと、
前記パックされたフォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送ることと、
を備える、方法。
【請求項２】
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の数値フォーマットを変換することを備える、請求項１に記載の方法。
【請求項３】
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の幅を変換することを備える、請求項１に記載の方法。
【請求項４】
前記アンパックされたサンプルの各々の前記幅を変換することが、前記アンパックされたサンプルの各々をパディングすることを備える、請求項３に記載の方法。
【請求項５】
前記フォーマット変換されたサンプルの前記少なくとも前記一部分をパックすることの前に、前記フォーマット変換されたサンプルの位置をシフトすることをさらに備える、請求項１に記載の方法。
【請求項６】
サンプルの結合されたセットを取得するために、前記パックされたシフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合することと、
サンプルの前記結合されたセットを前記ベクトルユニットに送ることと、
をさらに備える、請求項５に記載の方法。
【請求項７】
前記結合することが、
前記パックされたシフトされたフォーマット変換されたサンプルをラッチ中に保持することと、
前記ラッチ中の前記パックされたシフトされたフォーマット変換されたサンプルのうちの１つまたは複数を前記第２の複数のサンプルからの前記１つまたは複数のサンプルで上書きすることと、
を備える、請求項６に記載の方法。
【請求項８】
メモリからベクトルユニット中にデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るための手段、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするための手段と、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施するための手段と、
複数のパックされたフォーマット変換されたサンプルを取得するために前記フォーマット変換されたサンプルの少なくとも一部分をパックするための手段と、
前記パックされたフォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送るための手段と、
を備える、装置。
【請求項９】
メモリからベクトルユニットにデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るように構成されたコントローラ、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするように構成されたアンパックロジックと、
複数のフォーマット変換器、ここにおいて、前記アンパックロジックが、各アンパックされたサンプルを前記複数のフォーマット変換器のそれぞれ１つに入力するように構成され、各フォーマット変換器が、前記それぞれのアンパックされたサンプルに対してフォーマット変換を実施するように構成される、と、
複数のパックされたフォーマット変換されたサンプルを取得するために前記フォーマット変換されたサンプルの少なくとも一部分をパックするように構成されたパックロジックと、
前記パックされたフォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに出力するように構成された出力ラッチと、
を備える、装置。
【請求項１０】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの数値フォーマットを変換するように構成される、請求項９に記載の装置。
【請求項１１】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの幅を変換するように構成される、請求項９に記載の装置。
【請求項１２】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルをパディングすることによって前記それぞれのアンパックされたサンプルの前記幅を変換するように構成される、請求項１１に記載の装置。
【請求項１３】
前記複数のフォーマット変換器と前記パックロジックとの間にローテータをさらに備え、ここにおいて、前記ローテータは、前記パックロジックが前記フォーマット変換されたサンプルの前記少なくとも前記一部分をパックする前に、前記フォーマット変換されたサンプルの位置をシフトするように構成される、請求項９に記載の装置。
【請求項１４】
前記出力ラッチが、サンプルの結合されたセットを取得するためにおよびサンプルの前記結合されたセットを前記ベクトルユニットに出力するために、前記パックされたシフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合するように構成される、請求項１３に記載の装置。
【請求項１５】
メモリにベクトルユニットからのデータベクトルを記憶するための方法であって、
前記ベクトルユニットから複数のサンプルを読み取ることと、
拡張されたサンプルを取得するために前記複数のサンプルを拡張することと、
前記拡張されたサンプルのうちの２つ以上に対してフォーマット変換を並列に実施することと、
前記フォーマット変換されたサンプルをパックすることと、
前記パックされたサンプルを前記メモリに送ることと、
を備える、方法。
【請求項１６】
前記拡張されたサンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の数値フォーマットを変換することを備える、請求項１５に記載の方法。
【請求項１７】
前記拡張されたサンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の幅を変換することを備える、請求項１５に記載の方法。
【請求項１８】
前記拡張されたサンプルのうちの前記２つ以上の各々の前記幅を変換することが、前記サンプルのうちの前記２つ以上の各々をパディングすることを備える、請求項１７に記載の方法。
【請求項１９】
前記２つ以上の拡張されたサンプルに対してフォーマット変換を実施することの前に、前記２つ以上の拡張されたサンプルの位置をシフトすることをさらに備える、請求項１５に記載の方法。
【請求項２０】
前記メモリから１つまたは複数のサンプルを読み取ることと、
サンプルの結合されたセットを取得するために前記２つ以上の拡張されたサンプルを前記メモリからの前記１つまたは複数のサンプルと結合することと、
をさらに備える、請求項１５に記載の方法。
【請求項２１】
サンプルの前記結合されたセットが前記メモリにおいてバンク境界とアライメントされる、請求項２０に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
[0130]本開示についての以上の説明は、いかなる当業者でも本開示を作製または使用することができるように提供されたものである。本開示に対する様々な修正は、当業者には容易に明らかとなり、本明細書で定義される一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例に限定されるものではなく、本明細書で開示した原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
メモリからベクトルユニットにデータベクトルをロードするための方法であって、
前記メモリから複数のサンプルを読み取ること、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックすることと、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施することと、
前記フォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送ることと、
を備える、方法。
［Ｃ２］
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の数値フォーマットを変換することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の幅を変換することを備える、Ｃ１に記載の方法。
［Ｃ４］
前記アンパックされたサンプルの各々の前記幅を変換することが、前記アンパックされたサンプルの各々をパディングすることを備える、Ｃ３に記載の方法。
［Ｃ５］
前記フォーマット変換されたサンプルの少なくとも前記一部分を前記ベクトルユニットに送ることの前に、前記フォーマット変換されたサンプルの位置をシフトすることをさらに備える、Ｃ１に記載の方法。
［Ｃ６］
サンプルの結合されたセットを取得するために、前記シフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合することと、
サンプルの前記結合されたセットを前記ベクトルユニットに送ることと、
をさらに備える、Ｃ５に記載の方法。
［Ｃ７］
前記結合することが、
前記シフトされフォーマット変換されたサンプルをラッチ中に保持することと、
前記ラッチ中の前記シフトされたフォーマット変換されたサンプルのうちの１つまたは複数を前記第２の複数のサンプルからの前記１つまたは複数のサンプルで上書きすることと、
を備える、Ｃ６に記載の方法。
［Ｃ８］
メモリからベクトルユニット中にデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るための手段、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするための手段と、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施するための手段と、
前記フォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送るための手段と、
を備える、装置。
［Ｃ９］
メモリからベクトルユニットにデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るように構成されたコントローラ、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするように構成されたアンパックロジックと、
複数のフォーマット変換器、ここにおいて、前記アンパックロジックが、各アンパックされたサンプルを前記複数のフォーマット変換器のそれぞれ１つに入力するように構成され、各フォーマット変換器が、前記それぞれのアンパックされたサンプルに対してフォーマット変換を実施するように構成される、と、
前記フォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに出力するように構成された出力ラッチと、
を備える、装置。
［Ｃ１０］
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの数値フォーマットを変換するように構成される、Ｃ９に記載の装置。
［Ｃ１１］
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの幅を変換するように構成される、Ｃ９に記載の装置。
［Ｃ１２］
各フォーマット変換器が、前記それぞれのアンパックされたサンプルをパディングすることによって前記それぞれのアンパックされたサンプルの前記幅を変換するように構成される、Ｃ１１に記載の装置。
［Ｃ１３］
前記複数のフォーマット変換器と前記出力ラッチとの間にローテータをさらに備え、ここにおいて、前記ローテータは、前記出力ラッチが前記フォーマット変換されたサンプルの前記少なくとも一部分を前記ベクトルユニットに出力する前に、前記フォーマット変換されたサンプルの位置をシフトするように構成される、Ｃ９に記載の装置。
［Ｃ１４］
前記出力ラッチが、サンプルの結合されたセットを取得するためにおよびサンプルの前記結合されたセットを前記ベクトルユニットに出力するために、前記シフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合するように構成される、Ｃ１３に記載の装置。
［Ｃ１５］
メモリにベクトルユニットからのデータベクトルを記憶するための方法であって、
前記ベクトルユニットから複数のサンプルを読み取ることと、
前記サンプルのうちの２つ以上に対してフォーマット変換を並列に実施することと、
前記フォーマット変換されたサンプルをパックすることと、
前記パックされたサンプルを前記メモリに送ることと、
を備える、方法。
［Ｃ１６］
前記サンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の数値フォーマットを変換することを備える、Ｃ１５に記載の方法。
［Ｃ１７］
前記サンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の幅を変換することを備える、Ｃ１５に記載の方法。
［Ｃ１８］
前記サンプルのうちの前記２つ以上の各々の前記幅を変換することが、前記サンプルのうちの前記２つ以上の各々をパディングすることを備える、Ｃ１７に記載の方法。
［Ｃ１９］
前記２つ以上のサンプルを前記メモリに送ることの前に、前記２つ以上のサンプルの位置をシフトすることをさらに備える、Ｃ１５に記載の方法。
［Ｃ２０］
前記メモリから１つまたは複数のサンプルを読み取ることと、
サンプルの結合されたセットを取得するために前記ベクトルユニットからの前記２つ以上のサンプルを前記メモリからの前記１つまたは複数のサンプルと結合することと、
をさらに備える、Ｃ１５に記載の方法。
［Ｃ２１］
サンプルの前記結合されたセットが前記メモリにおいてバンク境界とアライメントされる、Ｃ２０に記載の方法。
【手続補正書】
【提出日】平成28年9月30日(2016.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリからベクトルユニットにデータベクトルをロードするための方法であって、
前記メモリから複数のサンプルを読み取ること、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックすることと、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施することと、
複数のパックされたフォーマット変換されたサンプルを取得するために前記フォーマット変換されたサンプルの少なくとも一部分をパックすること、ここにおいて、前記フォーマット変換されたサンプルの前記少なくとも前記一部分をパックすることは、前記フォーマット変換されたサンプルの前記少なくとも前記一部分からパディングを削除することを備える、と、
前記パックされたフォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送ることと、
を備える、方法。
【請求項２】
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の数値フォーマットを変換することを備える、請求項１に記載の方法。
【請求項３】
前記アンパックされたサンプルに対してフォーマット変換を実施することが、前記アンパックされたサンプルの各々の幅を変換することを備える、請求項１に記載の方法。
【請求項４】
前記アンパックされたサンプルの各々の前記幅を変換することが、前記アンパックされたサンプルの各々をパディングすることを備える、請求項３に記載の方法。
【請求項５】
前記フォーマット変換されたサンプルの前記少なくとも前記一部分をパックすることの前に、前記フォーマット変換されたサンプルの位置をシフトすることをさらに備える、請求項１に記載の方法。
【請求項６】
サンプルの結合されたセットを取得するために、前記パックされたシフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合することと、
サンプルの前記結合されたセットを前記ベクトルユニットに送ることと、
をさらに備える、請求項５に記載の方法。
【請求項７】
前記結合することが、
前記パックされたシフトされたフォーマット変換されたサンプルをラッチ中に保持することと、
前記ラッチ中の前記パックされたシフトされたフォーマット変換されたサンプルのうちの１つまたは複数を前記第２の複数のサンプルからの前記１つまたは複数のサンプルで上書きすることと、
を備える、請求項６に記載の方法。
【請求項８】
メモリからベクトルユニット中にデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るための手段、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするための手段と、
前記アンパックされたサンプルに対してフォーマット変換を並列に実施するための手段と、
複数のパックされたフォーマット変換されたサンプルを取得するために前記フォーマット変換されたサンプルの少なくとも一部分をパックするための手段、ここにおいて、前記パックするための手段は、前記フォーマット変換されたサンプルの前記少なくとも前記一部分からパディングを削除するための手段を備える、と、
前記パックされたフォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに送るための手段と、
を備える、装置。
【請求項９】
メモリからベクトルユニットにデータベクトルをロードするための装置であって、
前記メモリから複数のサンプルを読み取るように構成されたコントローラ、ここにおいて、前記複数のサンプルが前記メモリにおいてパックされる、と、
複数のアンパックされたサンプルを取得するために前記サンプルをアンパックするように構成されたアンパックロジックと、
複数のフォーマット変換器、ここにおいて、前記アンパックロジックが、各アンパックされたサンプルを前記複数のフォーマット変換器のそれぞれ１つに入力するように構成され、各フォーマット変換器が、前記それぞれのアンパックされたサンプルに対してフォーマット変換を実施するように構成される、と、
複数のパックされたフォーマット変換されたサンプルを取得するために前記フォーマット変換されたサンプルの少なくとも一部分をパックするように構成されたパックロジック、ここにおいて、前記パックロジックは、前記フォーマット変換されたサンプルの前記少なくとも前記一部分からパディングを削除することによってフォーマット変換されたサンプルの前記少なくとも前記一部分をパックする、と、
前記パックされたフォーマット変換されたサンプルの少なくとも一部分を前記ベクトルユニットに出力するように構成された出力ラッチと、
を備える、装置。
【請求項１０】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの数値フォーマットを変換するように構成される、請求項９に記載の装置。
【請求項１１】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルの幅を変換するように構成される、請求項９に記載の装置。
【請求項１２】
各フォーマット変換器が、前記それぞれのアンパックされたサンプルをパディングすることによって前記それぞれのアンパックされたサンプルの前記幅を変換するように構成される、請求項１１に記載の装置。
【請求項１３】
前記複数のフォーマット変換器と前記パックロジックとの間にローテータをさらに備え、ここにおいて、前記ローテータは、前記パックロジックが前記フォーマット変換されたサンプルの前記少なくとも前記一部分をパックする前に、前記フォーマット変換されたサンプルの位置をシフトするように構成される、請求項９に記載の装置。
【請求項１４】
前記出力ラッチが、サンプルの結合されたセットを取得するためにおよびサンプルの前記結合されたセットを前記ベクトルユニットに出力するために、前記パックされたシフトされたフォーマット変換されたサンプルのうちの１つまたは複数を第２の複数のサンプルからの１つまたは複数のサンプルと結合するように構成される、請求項１３に記載の装置。
【請求項１５】
メモリにベクトルユニットからのデータベクトルを記憶するための方法であって、
前記ベクトルユニットから複数のサンプルを読み取ることと、
拡張されたサンプルを取得するために前記複数のサンプルを拡張すること、ここにおいて、前記複数のサンプルを拡張することは、前記複数のサンプルをパディングすることを備える、と、
前記拡張されたサンプルのうちの２つ以上に対してフォーマット変換を並列に実施することと、
前記フォーマット変換されたサンプルをパックすることと、
前記パックされたサンプルを前記メモリに送ることと、
を備える、方法。
【請求項１６】
前記拡張されたサンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の数値フォーマットを変換することを備える、請求項１５に記載の方法。
【請求項１７】
前記拡張されたサンプルのうちの前記２つ以上に対してフォーマット変換を実施することが、前記サンプルのうちの前記２つ以上の各々の幅を変換することを備える、請求項１５に記載の方法。
【請求項１８】
前記拡張されたサンプルのうちの前記２つ以上の各々の前記幅を変換することが、前記サンプルのうちの前記２つ以上の各々をパディングすることを備える、請求項１７に記載の方法。
【請求項１９】
前記２つ以上の拡張されたサンプルに対してフォーマット変換を実施することの前に、前記２つ以上の拡張されたサンプルの位置をシフトすることをさらに備える、請求項１５に記載の方法。
【請求項２０】
前記メモリから１つまたは複数のサンプルを読み取ることと、
サンプルの結合されたセットを取得するために前記２つ以上の拡張されたサンプルを前記メモリからの前記１つまたは複数のサンプルと結合することと、
をさらに備える、請求項１５に記載の方法。
【請求項２１】
サンプルの前記結合されたセットが前記メモリにおいてバンク境界とアライメントされる、請求項２０に記載の方法。
【国際調査報告】
2017508201.tif 000022
2017508201.tif 000023
2017508201.tif 000024