JP5341194B2 - リニアフィードバックシフト命令を実行するためのシステムおよび方法 - Google Patents

リニアフィードバックシフト命令を実行するためのシステムおよび方法 Download PDF

Info

Publication number
JP5341194B2
JP5341194B2 JP2011529125A JP2011529125A JP5341194B2 JP 5341194 B2 JP5341194 B2 JP 5341194B2 JP 2011529125 A JP2011529125 A JP 2011529125A JP 2011529125 A JP2011529125 A JP 2011529125A JP 5341194 B2 JP5341194 B2 JP 5341194B2
Authority
JP
Japan
Prior art keywords
data
processor
parity
source data
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011529125A
Other languages
English (en)
Other versions
JP2012503829A (ja
Inventor
プロンドケ、エリッチ
コドレスキュ、ルシアン
ガースキ、レミ
クリシバサン、シャンカー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012503829A publication Critical patent/JP2012503829A/ja
Application granted granted Critical
Publication of JP5341194B2 publication Critical patent/JP5341194B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Error Detection And Correction (AREA)

Description

本開示は、一般に、リニアフィードバックシフト命令を実行するためのシステムおよび方法に関する。
技術の進歩により、コンピューティングデバイスは、より小型でより強力になった。たとえば、現在、小型で軽量な、ユーザが容易に持ち運べるポータブルワイヤレス電話、携帯情報端末(PDA)、ページングデバイスなどのワイヤレスコンピューティングデバイスを含む様々なポータブルパーソナルコンピューティングデバイスが存在する。より具体的には、セルラー電話やインターネットプロトコル(IP)電話などのポータブルワイヤレス電話は、ボイスおよびデータパケットをワイヤレスネットワークを介して伝達することができる。さらに、多くのそのようなワイヤレス電話は、その中に組み込まれた他のタイプのデバイスを含む。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤをも含むことができる。また、そのようなワイヤレス電話は、インターネットにアクセスするために使用できるウェブブラウザアプリケーションなどのソフトウェアアプリケーションを含む実行可能な命令を処理することができる。したがって、これらのワイヤレス電話はかなりの計算能力を含むことができる。
ワイヤレス電話におよびそれからデータを送信する際、巡回冗長検査(cycle redundancy check)(CRC)などの計算量が、データの完全性を検証するのに役立つことがある。巡回冗長検査(CRC)などの量の計算は、処理時間集約的であることがある複数の算術命令を含むことがある。そのような計算を時間効率的な方法で実行するために、専用ハードウェアを採用することができる。しかしながら、そのような専用ハードウェアは費用がかかることがあり、追加の電力を消費することがある。既存の処理ハードウェアを使用して時間効率的でエネルギー効率の良い方法でCRCなどの量を計算することが可能であることが有利であろう。
データを処理する方法を開示する。入力データと基準データとに対して論理ビット単位演算を実行して中間データを生成し、中間データのパリティ値を判断し、パリティ値とソースデータの選択されたデータビットとから結果データを形成することによって、結果データを判断することができる。結果データは有用な性質を示すことがある。特定の例では、結果データを使用して、擬似乱数シーケンスを作成することができる。別の特定の例では、結果データは、巡回冗長検査(CRC)など、いくつかの誤り検出符号の計算を可能にすることができる。
特定の一実施形態では、データを処理する方法を開示する。本方法は、プロセッサにおいて単一のリニアフィードバックシフト命令を実行することを含む。本方法は、ソースデータを受信することと、中間データを生成するためにソースデータと基準データとに対してビット単位(bitwise)論理演算を実行することと、中間データのパリティを判断することと、ソースデータをシフトすることと、結果データを生成するために中間データのパリティに対応するデータ値をシフトされたソースデータのデータフィールドに入力することとを含む。本方法は、結果データを出力することをさらに含む。
別の特定の実施形態では、システムを開示する。本システムは、単一のリニアフィードバックシフト命令を実行するためのプロセッサを含む。本システムは、ソースデータを与えるように動作可能なソースレジスタと、基準データを与えるように動作可能な基準レジスタとを含む。本システムは、中間データを生成するためにソースデータと基準データとに対してビット単位論理演算を実行することと、中間データのパリティを判断することと、シフトされたソースデータを生成するために、ビット単位論理演算を実行した後にソースデータをシフトすることと、結果データを生成するために中間データのパリティに対応するデータ値をシフトされたソースデータのデータフィールドに入力することと、結果データを出力することとを行うように動作可能な実行ユニットをさらに含む。
別の特定の実施形態では、コンピュータ可読媒体を開示する。本コンピュータ可読媒体は、実行されると、プロセッサに、ソースデータを受信させ、中間データを生成するためにソースデータと基準データとに対してビット単位論理演算を実行させ、中間データのパリティを判断させ、シフトされたソースデータを生成するためにソースデータをシフトさせ、結果を生成するために中間データのパリティに対応するデータ値をシフトされた第1のデータのデータフィールドに入力させる、実行可能なリニアフィードバックシフト命令を記憶する。
別の特定の実施形態では、プロセッサによって実行可能なプロセッサ命令を開示する。本プロセッサ命令は、命令名と、ソースデータを識別する第1のフィールドと、基準データを識別する第2のフィールドとを含む。本プロセッサ命令の実行中、プロセッサは、中間データを生成するためにソースデータと基準データとに対してビット単位論理演算を実行し、中間データのパリティを判断し、ソースデータをシフトし、結果を生成するために中間データのパリティに対応するデータ値をシフトされたソースデータのデータフィールドに入力する。
別の特定の実施形態では、プロセッサを開示する。本プロセッサは、中間データを生成するためにソースデータと基準データとに対してビット単位論理演算を実行するための論理回路と、中間データのパリティを判断するためのパリティ回路と、ソースデータをシフトするためのビットシフタ回路と、結果データを生成するために中間データのパリティに対応するデータ値をシフトされたソースデータ中に配置する配置回路と、結果データを出力するための手段とを含む。
リニアフィードバックシフト命令を与えるためのシステムおよび方法の開示する実施形態のうちの少なくとも1つによって提供される1つの特定の利点は、リニアフィードバックシフト命令の複数のステップを並列にまたは単一の命令で実行することによる時間効率の増加である。リニアフィードバックシフト命令をインターリーブ型マルチスレッドプロセッサによって実行される単一の命令として実行することの利点は、インターリーブ型マルチスレッドプロセッサは複素算術命令に適応する比較的長い実行パイプラインを可能にするので、実行中に追加の待ち時間が実質的に導入されないことである。
本開示の他の態様、利点、および特徴は、図面の簡単な説明、詳細な説明、および特許請求の範囲を含む、本出願全体の検討の後に明らかになろう。
リニアフィードバックシフト命令を実行するように構成されたインターリーブ型マルチスレッドプロセッサの特定の例示的な実施形態のブロック図。 リニアフィードバックシフト命令を実行するための命令を処理するように構成されたプロセッサの特定の例示的な実施形態のブロック図。 リニアフィードバックシフト命令の特定の例示的な実施形態のデータフロー図。 リニアフィードバックシフト命令を実行する方法の特定の例示的な実施形態のフローチャート。 リニアフィードバックシフト命令を実行するように構成されたプロセッサを含むワイヤレスデバイスのブロック図。
図1を参照すると、リニアフィードバックシフト命令を実行するように構成されたインターリーブ型マルチスレッドプロセッサの特定の例示的な実施形態のブロック図が示され、全体的に100と称される。インターリーブ型マルチスレッドプロセッサ100は、第1のスレッド104、第2のスレッド106、および第3のスレッド108など、複数のスレッドによって命令を実行することができる。各スレッド104、106、および108は、スレッドサイクルとしても知られる実行サイクル110内で実行される複数のパイプラインステージを含むことができる。図示の特定の例示的な例では、スレッド104、106、および108の各々は、スレッドサイクル中に6つのパイプラインステージを含む。たとえば、第1のパイプラインステージA1112は、処理すべき命令をフェッチするフェッチステージとすることができる。第2のパイプラインステージA2114は、フェッチされた命令を復号する復号ステージとすることができる。パイプラインステージA3116、A4118、およびA5120は実行ステージとすることができる。パイプラインステージA6122はライトバックステージとすることができる。マルチスレッドプロセッサ100のスレッド104、106、および108の各々は同様のパイプラインステージを有し、複数のフェッチされた命令の同時処理を可能にすることができる。
特定の例示的な実施形態では、リニアフィードバックシフト命令102は、インターリーブ型マルチスレッドプロセッサ100によってフェッチされて、第1のスレッド104中で処理される。リニアフィードバックシフト命令102は、マルチスレッドプロセッサ100の他のスレッド中の他の命令の実行と同時にインターリーブ様式で処理できる単一の命令であり、したがってプロセッサ計算効率を利用する。
図2を参照すると、リニアフィードバックシフト命令を実行するための命令を実行するように構成されたプロセッサ214を含むシステム200の特定の例示的な実施形態のブロック図が示されている。たとえば、プロセッサ214はパイプラインプロセッサとすることができる。プロセッサ214は、第1の実行ユニット224と第2の実行ユニット226とに結合されたレジスタファイル216を含む。第2の実行ユニット226は、ビット単位AND回路228と、パリティ回路230と、シフタ232と、パリティ値配置および充填回路234とを含む。第2の実行ユニット226からの出力はレジスタファイル216中のレジスタに入力される。たとえば、パリティ計算の結果はパリティレジスタ222に入力される。説明しやすいように2つの実行ユニット224、226を図2に示しているが、プロセッサ214は2つ以上の実行ユニットを含むことができる。
プロセッサ214は、命令キャッシュまたはレジスタなどのコンピュータ可読媒体202からリニアフィードバックシフト命令204をフェッチするように適合される。プロセッサ214は計算の結果をメモリ240に出力することができ、その結果はメモリ240に記憶できる。プロセッサ214は、出力バス238など、プロセッサ214からの計算結果をメモリ240に出力するための出力手段を使用することができる。別の例示的な実施形態では、プロセッサ214からのデータを出力するための別の手段が採用できる。
リニアフィードバックシフト命令204は、命令名208と、ソースデータ(Rss)210を識別する第1のフィールドと、基準データ(Rref)212を識別する第2のフィールドとを含むことができ、出力データ(Rout)206を生成することができる。リニアフィードバックシフト命令204は、実行されると、コンピュータに、中間データを生成するためにソースデータ(Rss)210と基準データ(Rref)212とのビット単位ANDを実行させ、中間データのパリティ値(Y)を判断させ、ソースデータをシフトさせ、出力データ(Rout)206を生成するためにパリティ値(Y)を空のデータフィールドに挿入させることができる。出力データ(Rout)206は、メモリ240内の結果データ244としてメモリに書き込まれ得る。結果データ244は、擬似ランダムデータ、巡回冗長検査(CRC)データ、または別のタイプのデータとすることができる。特定の例示的な実施形態では、擬似ランダムデータは暗号符号化または復号において使用される。別の特定の例示的な実施形態では、擬似ランダムデータは統計アプリケーションにおいて使用される。特定の例示的な実施形態では、CRCデータは、データ伝送またはデータ記憶中にデータの改変または誤りを検出するためのチェックサムとして使用できる。
動作中、プロセッサ214は、コンピュータ可読媒体202からリニアフィードバックシフト命令204をフェッチすることができる。プロセッサ214は、メモリ240から、Rss210によって識別されるソースデータ246と、Rref212によって識別される基準データ248とを取り出すことができる。(データビットS1〜S8として示される)ソースデータ246はレジスタファイル216のソースレジスタ218中に配置され得、(データビットR1〜R8として示される)基準データ248はレジスタファイル216の基準データレジスタ220中に配置され得る。
特定の例示的な実施形態では、プロセッサ214は、単一のリニアフィードバックシフト命令204をパイプラインプロセッサ中の単一の命令として次のように実行する。ビット単位AND回路228は、中間データ227を生成するために、基準データレジスタ220の内容を用いてソースレジスタ218の内容のビット単位ANDを実行する。プロセッサ214は、パリティ回路230によって中間データ227のパリティ値(Y)231を判断する。パリティ値(Y)231は、中間データ227のパリティに対応するデータ値である。パリティ回路230によって判断されたパリティ値(Y)231はパリティレジスタ222に一時的に記憶される。プロセッサ214は、シフタ232を使用して、ソースレジスタ218からソースデータを1ビットだけ右シフトし、最下位ビット(Last Significant Bit)を削除する。プロセッサ214は、パリティ値配置および充填(fill)回路234によってパリティ値(Y)231を最上位ビット(Most Significant Bit)(MSB)フィールド250に入力する。プロセッサ214は出力バス238を介して出力データ(Rout)206を出力し、出力データ(Rout)206は結果データ244としてメモリ240に記憶される。結果データ244は、右シフトされたソースデータ242と、ソースデータを右シフトした結果として空にされたMSBフィールド250に配置されたパリティ値(Y)231とを含む。特定の例示的な実施形態では、結果データ244は擬似ランダムデータを含む。たとえば、擬似ランダムデータは、乱数の性質を近似する数のシーケンスのうちの1つとすることができる。擬似乱数は、暗号符号化または復号において、または統計アプリケーションにおいて使用できる。別の特定の例示的な実施形態では、結果データ244はCRCデータを含む。たとえば、CRCデータは、データ伝送またはデータ記憶中にデータの改変または誤りを検出するためのチェックサムとして使用できる。
プロセッサ214などのインターリーブ型マルチスレッドプロセッサ中でリニアフィードバックシフト命令204を単一の命令として実行することの利点は、プロセッサが、一般に、比較的長い実行パイプラインに起因する追加の計算オーバーヘッドを導入することなしに複素算術演算を単一の命令で実行することを可能にすることである。したがって、インターリーブ型マルチスレッドプロセッサを使用することによって、リニアフィードバックシフト命令204の多重演算を単一の命令で実行した結果として、プロセッサ実行時間に追加の待ち時間が導入されることがなくなる。
特定の例示的な実施形態では、出力データ(Rout)206を出力し、結果データ244として記憶する前に、リニアフィードバックシフト命令204を複数回反復することができる。特定の例示的な例では、第2の反復は、第1の反復中に発生され、一時的にソースデータレジスタ218に記憶された出力データ206で開始し、第2の反復のための中間データ227を生成するために基準データ248を用いてビット単位AND演算を実行し、中間データ227のパリティ(Y)231を判断し、MSBフィールドを空にするためにソースデータレジスタ218の現在の内容を右シフトし、空のMSBフィールドをパリティ(Y)231で埋め戻し、第2の反復のための出力Rout206を生成して実行される。上記の反復プロセスは複数回反復できる。
特定の例示的な実施形態では、プロセッサ214は、図1中に示すようにインターリーブ型マルチスレッドプロセッサである。プロセッサ214は、プロセッサスレッドサイクルを有することができ、ソースデータを入力し、中間データを生成し、中間データのパリティ値を判断し、ソースデータをシフトし、結果データを生成するように構成でき、プロセッサスレッドサイクルを超えないように、処理時間期間中にこれらのステップのすべてを実行する。図5に関して説明するように、ワイヤレスデータをプロセッサ214に供給するためにワイヤレストランシーバが結合できる。特定の例示的な実施形態では、ワイヤレスデータはソースデータ246および/または基準データ248とすることができ、ワイヤレストランシーバは、アンテナを介してワイヤレスデータを受信するために結合できる。
図3を参照すると、パイプラインプロセッサ中で単一の命令として実装されたリニアフィードバックシフト命令を実行する方法の特定の例示的な実施形態のデータフロー図が示され、全体的に300と称される。特定の例では、方法300は、図2に示すプロセッサ214によって実装できる。方法300は、中間データ308を生成するためにソースデータ302と基準データ304とに対してビット単位AND演算306を実行することを含む。ソースデータ302は複数のデータビットを含むことができる。例示的な例では、ソースデータはデータビットa1〜a8を含む。基準データ304は、ソースデータ302と同じ数のデータビットを含む。例示的な例では、基準データはデータビットb1〜b8を含む。例示的な例では、中間データはデータビットc1〜c8を含む。ソースデータ302および基準データ304は、レジスタまたはコンピュータメモリから与えることができ、またワイヤレスアンテナを介してワイヤレスデータを受信するために結合され得るワイヤレストランシーバによって受信することができる。別の特定の例示的な実施形態(図示せず)では、ビット単位AND演算306の代わりにNAND演算を実行することができる。
中間データ308を計算した後、パリティ計算310を実行して、中間データ308のパリティに対応する値であるパリティ値(Y)312を得る。パリティ計算310は、中間データ308のデータビット値の算術和を判断することと、算術和が奇数であるときはパリティ値(Y)312に論理1値を割り当て、算術和が偶数であるときはパリティ値(Y)312に論理0値を割り当てることとを含む。
図1のインターリーブ型マルチスレッドプロセッサ100などのパイプラインプロセッサ中で単一の命令として実装されたリニアフィードバックシフト命令を実行する方法のデータフロー図300は、図2に示すシフタ232などによってソースデータ302に対してシフト演算315を実行して、シフトされたソースデータ314を得、ソースデータ302のデータフィールド316を空にすることによって進む。図2のパリティ回路222などのパリティ回路によって計算されたパリティ値(Y)312を、シフト演算315の結果として空にされた、シフトされたソースデータ314のデータフィールド316に入力する。シフトされたソースデータと、データフィールド316を占めるパリティ値(Y)312とを含む結果データ318を生成する。特定の例示的な実施形態では、シフト演算315はソースデータ302を右シフトし、データフィールド316は最上位ビット(MSB)である。
特定の例示的な実施形態では、パイプラインプロセッサ中で単一の命令として実装されたリニアフィードバックシフト命令を実行する方法を複数回実行することができる。リニアフィードバックシフト命令が呼び出されるたびに、リニアフィードバックシフト命令の前回の実行から出力された結果データからソースデータを入力する。したがって、いくつかの反復の過程にわたって、元のソースデータを複数回右シフトし、最新のパリティ計算310によって判断された現在のパリティ値312によって現在空の最上位ビットを埋め戻すことができる。
図4を参照すると、パイプラインプロセッサ中でリニアフィードバックシフト命令を単一の命令として実行する方法の別の特定の例示的な実施形態のフローチャートが全体的に400と称される。ブロック402において、ソースデータを受信する。ブロック404に進むと、基準データを受信する。特定の例示的な実施形態では、基準データは多項式データを含むことができる。ブロック406に進むと、中間データを生成するためにソースデータと基準データとに対してAND演算またはNAND演算などのビット単位論理演算を実行する。ブロック408に進むと、中間データのパリティ値を判断する。ブロック410に進むと、ソースデータを1ビットだけシフトして、1つのビットを空にする。特定の例示的な実施形態では、ソースデータを1ビットだけ右シフトして、最上位ビット(MSB)を空にする。ブロック412に進むと、中間データのパリティ値、すなわち、奇数パリティまたは偶数パリティを示す単一のビットをシフトされたソースデータの空のビットに入力して、結果データを生成する。ブロック414に進むと、結果データを記憶する。
決定ブロック416に進むと、別の反復を実行すべきかどうかの判断を行う。別の反復を実行する場合、本方法はブロック402に戻り、本方法は、命令の前回の反復からの結果データを用いてリニアフィードバックシフト命令を再び実行し、現在の中間データを生成するために基準データを用いてビット単位論理演算を実行し、現在の中間データのパリティ値を判断し、現在のシフトされた中間データを生成するために現在の中間データをシフトし、現在の出力データを生成するために現在の中間データのパリティ値を現在のシフトされたデータの空のデータフィールドに入力し、現在の出力データを記憶する。別の反復を実行すべきでない場合、本方法はブロック418に進み、出力データを結果データとして出力する。本方法は420において終了する。結果データは受信した基準データに依存する。特定の例示的な例では、結果データは、暗号符号化または復号化において、または統計アプリケーションにおいて使用できる擬似ランダムデータを含む。別の特定の例示的な例では、結果データは、データ伝送誤りを検出する際に使用できるCRCデータを含む。
図5を参照すると、リニアフィードバックシフト命令を単一の命令として実行するように構成されたパイプラインプロセッサを含むワイヤレスデバイスのブロック図が示され、全体的に500と称される。デバイス500は、デジタル信号プロセッサ(DSP)510など、リニアフィードバックシフト命令590を実行するように構成されたプロセッサを含む。DSP510はメモリ532に結合される。特定の一実施形態では、リニアフィードバックシフト命令590は、DSP510およびメモリ532において実行可能であり、上記で図1〜図4に関して説明したシステムおよび方法を使用して実装できる。
図5はまた、デジタル信号プロセッサ510とディスプレイ528とに結合されたディスプレイコントローラ526を示す。コーダ/デコーダ(コーデック)534はまたデジタル信号プロセッサ(DSP)510に結合できる。スピーカー536およびマイクロフォン538はコーデック534に結合できる。
図5はまた、モデム540を、デジタル信号プロセッサ510と、ワイヤレスアンテナ542に結合されたトランシーバ546とに結合することができることを示す。特定の例示的な実施形態では、(本明細書では「ワイヤレストランシーバ」とも呼ばれる)トランシーバ546は、ワイヤレスアンテナ542を介してワイヤレスデータを受信するために結合でき、トランシーバ546は、モデム540を介してワイヤレスデータをDSP510に供給するためにさらに結合できる。特定の一実施形態では、DSP510、ディスプレイコントローラ526、メモリ532、コーデック534、およびモデム540は、システムインパッケージまたはシステムオンチップデバイス522中に含まれる。特定の一実施形態では、入力デバイス530および電源544はシステムオンチップデバイス522に結合される。その上、特定の一実施形態では、図5に示すように、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ542、および電源544は、システムオンチップデバイス522の外部にある。しかしながら、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ542、および電源544の各々は、インターフェースまたはコントローラなど、システムオンチップデバイス522の構成要素に結合できる。
さらに、本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップを、上記では概して、それらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課せられた設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示した実施形態に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアで実施するか、プロセッサによって実行されるソフトウェアモジュールで実施するか、またはその2つの組合せで実施できる。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD−ROM)、または当技術分野で知られている他の形態の記憶媒体中に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体とすることができる。プロセッサおよび記憶媒体は特定用途向け集積回路(ASIC)中に常駐することができる。ASICはコンピューティングデバイスまたはユーザ端末中に常駐することができる。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末中に個別構成要素として常駐することができる。
開示した実施形態の前述の説明は、当業者が開示した実施形態を製作または使用できるように提供したものである。これらの実施形態への様々な変更は当業者には容易に明らかになり、本明細書で定義された原理は本開示の範囲から逸脱することなく他の実施形態に適用できる。したがって、本開示は、本明細書に示した実施形態に限定されるものではなく、特許請求の範囲によって定義される原理および新規の特徴と一致する可能な最も広い範囲を与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] ソースデータを受信することと、
中間データを生成するために前記ソースデータと基準データとに対してビット単位論理演算を実行することと、
前記中間データのパリティを判断することと、
前記ソースデータをシフトすることと、
結果データを生成するために前記中間データの前記パリティに対応する値を前記シフトされたソースデータのデータフィールドに入力することと、
前記結果データを出力することと、
によって、プロセッサにおいて命令を実行することを備える、データを処理する方法。
[C2] 前記論理演算がAND演算であり、前記結果データを記憶することをさらに備える、C1に記載の方法。
[C3] 前記データフィールドが前記シフトされたソースデータの最上位ビット(MSB)を含む、C1に記載の方法。
[C4] 前記ソースデータがソースレジスタから受信される、C1に記載の方法。
[C5] ソースデータを与えるように動作可能なソースレジスタと、
基準データを与えるように動作可能な基準レジスタと、
中間データを生成するために前記ソースデータと前記基準データとに対してビット単位論理演算を実行することと、
前記中間データのパリティを判断することと、
シフトされたソースデータを生成するために、前記ビット単位論理演算を実行した後に前記ソースデータをシフトすることと、
結果データを生成するために前記中間データの前記パリティに対応する値を前記シフトされたソースデータのデータフィールドに入力することと、
前記結果データを出力することと、
を行うための命令を実行するように動作可能な実行ユニットと、
を備えるプロセッサを備えるシステム。
[C6] 前記ソースデータが前記ソースレジスタから取り出され、前記基準データが前記基準レジスタから取り出される、C5に記載のシステム。
[C7] 前記中間データの前記パリティに対応する値が、前記シフトされたソースデータの最上位ビットデータフィールドに入力される、C5に記載のシステム。
[C8] アンテナを介してワイヤレスデータを受信するために結合されたワイヤレストランシーバをさらに備え、前記ワイヤレストランシーバが、前記ワイヤレスデータを前記プロセッサに供給するためにさらに結合された、C5に記載のシステム。
[C9] 実行されると、プロセッサに、
ソースデータを受信することと、
中間データを生成するために前記ソースデータと基準データとに対してビット単位論理演算を実行することと、
前記中間データのパリティを判断することと、
シフトされたソースデータを生成するために前記ソースデータをシフトすることと、 結果を生成するために前記中間データのパリティに対応する値を前記シフトされたソースデータのデータフィールドに入力することと、
を行わせる実行可能命令を記憶したコンピュータ可読媒体。
[C10] 前記シフトが右シフトである、C9に記載のコンピュータ可読媒体。
[C11] 前記中間データのパリティに対応する前記値が、前記シフトされたソースデータの空の位置に入力される、C9に記載のコンピュータ可読媒体。
[C12] プロセッサによって実行可能なプロセッサ命令であって、
命令名と、
ソースデータを識別する第1のフィールドと、
基準データを識別する第2のフィールドと、
を備え、
プロセッサ命令の実行中、前記プロセッサが、中間データを生成するために前記ソースデータと前記基準データとに対してビット単位論理演算を実行し、前記中間データのパリティを判断し、前記ソースデータをシフトし、結果を生成するために前記中間データのパリティに対応する値を前記シフトされたソースデータのフィールドに入力する、プロセッサ命令。
[C13] 前記論理演算がAND演算である、C12に記載のプロセッサ命令。
[C14] 前記論理演算がNAND演算である、C12に記載のプロセッサ命令。
[C15] 前記プロセッサ命令の実行中に、前記プロセッサが前記結果を出力する、C12に記載のプロセッサ命令。
[C16] 命令を実行するためのプロセッサであって、
中間データを生成するためにソースデータと基準データとに対してビット単位論理演算を実行するための論理回路と、
前記中間データのパリティ値を判断するためのパリティ回路と、
前記ソースデータをシフトするためのビットシフタ回路と、
結果データを生成するために前記中間データのパリティ値を前記シフトされたソースデータ中に配置するための配置回路と、
前記結果データを出力するための手段と、
を備えるプロセッサ。
[C17] 前記基準データが多項式データを備える、C16に記載のプロセッサ。
[C18] 前記結果データが巡回冗長検査値を備える、C17に記載のプロセッサ。
[C19] 前記結果データが擬似ランダムデータを備える、C16に記載のプロセッサ。
[C20] 前記プロセッサがインターリーブ型マルチスレッドプロセッサを備える、C16に記載のプロセッサ。
[C21] 前記プロセッサがプロセッサスレッドサイクルを有し、前記中間データを発生することと、前記中間データのパリティ値を判断することと、前記ソースデータをシフトすることと、前記結果データを生成することとが、前記プロセッサスレッドサイクルを超えないように処理時間期間中に実行される、C16に記載のプロセッサ。
[C22] 前記プロセッサがワイヤレスデバイス中に含まれ、前記ワイヤレスデバイスが、
前記プロセッサに結合されたメモリと、
前記プロセッサに結合されたディスプレイコントローラと、
前記プロセッサに結合されたコーダ/デコーダと、
を備える、C16に記載のプロセッサ。

Claims (23)

  1. ソースデータを受信することと、
    中間データを生成するために前記ソースデータと基準データとに対してビット単位論理演算を実行することと、
    前記中間データのパリティを判断することと、
    前記ソースデータをシフトすることと、
    結果データを生成するために前記中間データの前記パリティに対応する値を前記シフトされたソースデータのデータフィールドに入力することと、
    前記結果データを出力することと
    によって、プロセッサにおいて単一のリニアフィードバックシフト命令を実行することを備える、データを処理する方法。
  2. 前記ビット単位論理演算がAND演算であり、前記結果データを記憶することをさらに備える、請求項1に記載の方法。
  3. 前記データフィールドが前記シフトされたソースデータの最上位ビット(MSB)を含む、請求項1に記載の方法。
  4. 前記ソースデータがソースレジスタから受信される、請求項1に記載の方法。
  5. 前記単一のリニアフィードバックシフト命令を実行することは、前記プロセッサの単一のプロセッサスレッドサイクル中に行われ、
    前記単一のリニアフィードバックシフト命令を復号するための復号ステージと、
    前記ビット単位論理演算を実行し、前記パリティを判断し、前記ソースデータをシフトするための実行ステージと、
    前記結果データを出力するためのライトバックステージと
    を含む、請求項1に記載の方法。
  6. ソースデータを与えるように動作可能なソースレジスタと、
    基準データを与えるように動作可能な基準レジスタと、
    中間データを生成するために前記ソースデータと前記基準データとに対してビット単位論理演算を実行することと、
    前記中間データのパリティを判断することと、
    シフトされたソースデータを生成するために、前記ビット単位論理演算を実行した後に前記ソースデータをシフトすることと、
    結果データを生成するために前記中間データの前記パリティに対応する値を前記シフトされたソースデータのデータフィールドに入力することと、
    前記結果データを出力することと、
    を行うための単一のリニアフィードバックシフト命令を実行するように動作可能な実行ユニットと、
    を備えるプロセッサを備えるシステム。
  7. 前記ソースデータが前記ソースレジスタから取り出され、前記基準データが前記基準レジスタから取り出される、請求項に記載のシステム。
  8. 前記中間データの前記パリティに対応する値が、前記シフトされたソースデータの最上位ビットデータフィールドに入力される、請求項に記載のシステム。
  9. イヤレストランシーバをさらに備え、前記ワイヤレストランシーバは、アンテナを介してワイヤレスデータを受信するためのものであり、また、前記ワイヤレストランシーバは、前記ワイヤレスデータを前記プロセッサに供給するためのものである、請求項に記載のシステム。
  10. 実行されると、プロセッサに、
    ソースデータを受信することと、
    中間データを生成するために前記ソースデータと基準データとに対してビット単位論理演算を実行することと、
    前記中間データのパリティを判断することと、
    シフトされたソースデータを生成するために前記ソースデータをシフトすることと、
    結果を生成するために前記中間データの前記パリティに対応する値を前記シフトされたソースデータのデータフィールドに入力することと、
    を行わせる単一のリニアフィードバックシフト命令
    備えるコンピュータ可読媒体。
  11. 前記シフトが右シフトである、請求項10に記載のコンピュータ可読媒体。
  12. 前記中間データの前記パリティに対応する前記値が、前記シフトされたソースデータの空の位置に入力される、請求項10に記載のコンピュータ可読媒体。
  13. プロセッサによって実行可能な単一のリニアフィードバックシフトプロセッサ命令であって、
    命令名と、
    ソースデータを識別する第1のフィールドと、
    基準データを識別する第2のフィールドと、
    を備え、
    プロセッサ命令の実行中、前記プロセッサが、中間データを生成するために前記ソースデータと前記基準データとに対してビット単位論理演算を実行し、前記中間データのパリティを判断し、前記ソースデータをシフトし、結果を生成するために前記中間データの前記パリティに対応する値を前記シフトされたソースデータのフィールドに入力する、単一のリニアフィードバックシフトプロセッサ命令。
  14. 前記ビット単位論理演算がAND演算である、請求項13に記載の単一のリニアフィードバックシフトプロセッサ命令。
  15. 前記ビット単位論理演算がNAND演算である、請求項13に記載の単一のリニアフィードバックシフトプロセッサ命令。
  16. 前記プロセッサ命令の実行中に、前記プロセッサが前記結果を出力する、請求項13に記載の単一のリニアフィードバックシフトプロセッサ命令。
  17. 単一のリニアフィードバックシフト命令を実行するためのプロセッサであって、
    中間データを生成するためにソースデータと基準データとに対してビット単位論理演算を実行するための論理回路と、
    前記中間データのパリティ値を判断するためのパリティ回路と、
    前記ソースデータをシフトするためのビットシフタ回路と、
    結果データを生成するために前記中間データの前記パリティ値を前記シフトされたソースデータ中に配置するための配置回路と、
    前記結果データを出力するための手段と、
    を備え、
    前記論理回路、前記パリティ回路、前記ビットシフタ回路、前記配置回路、および前記結果データを出力するための手段は、前記単一のリニアフィードバックシフト命令に応答する、プロセッサ。
  18. 前記基準データが多項式データである、請求項17に記載のプロセッサ。
  19. 前記結果データが巡回冗長検査値である、請求項18に記載のプロセッサ。
  20. 前記結果データが擬似ランダムデータである、請求項17に記載のプロセッサ。
  21. 前記プロセッサがインターリーブ型マルチスレッドプロセッサである、請求項17に記載のプロセッサ。
  22. 前記プロセッサがプロセッサスレッドサイクルを有し、前記中間データを生成することと、前記中間データの前記パリティ値を判断することと、前記ソースデータをシフトすることと、前記結果データを生成することとが、前記プロセッサスレッドサイクルを超えないように処理時間期間中に実行される、請求項17に記載のプロセッサ。
  23. 前記プロセッサがワイヤレスデバイス中に含まれ、前記ワイヤレスデバイスが、
    前記プロセッサに結合されたメモリと、
    前記プロセッサに結合されたディスプレイコントローラと、
    前記プロセッサに結合されたコーダ/デコーダと、
    を備える、請求項17に記載のプロセッサ。
JP2011529125A 2008-09-23 2009-09-18 リニアフィードバックシフト命令を実行するためのシステムおよび方法 Expired - Fee Related JP5341194B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/236,067 US8281111B2 (en) 2008-09-23 2008-09-23 System and method to execute a linear feedback-shift instruction
US12/236,067 2008-09-23
PCT/US2009/057453 WO2010039457A1 (en) 2008-09-23 2009-09-18 System and method to execute a linear feedback-shift instruction

Publications (2)

Publication Number Publication Date
JP2012503829A JP2012503829A (ja) 2012-02-09
JP5341194B2 true JP5341194B2 (ja) 2013-11-13

Family

ID=41666808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011529125A Expired - Fee Related JP5341194B2 (ja) 2008-09-23 2009-09-18 リニアフィードバックシフト命令を実行するためのシステムおよび方法

Country Status (7)

Country Link
US (1) US8281111B2 (ja)
EP (1) EP2350814A1 (ja)
JP (1) JP5341194B2 (ja)
KR (1) KR101290493B1 (ja)
CN (1) CN102160031A (ja)
TW (1) TW201025126A (ja)
WO (1) WO2010039457A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110123117A1 (en) * 2009-11-23 2011-05-26 Johnson Brian D Searching and Extracting Digital Images From Digital Video Files
US9092213B2 (en) * 2010-09-24 2015-07-28 Intel Corporation Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation
US8918442B2 (en) * 2012-08-22 2014-12-23 International Business Machines Corporation Reducing bias in hardware generated random numbers
US9471310B2 (en) * 2012-11-26 2016-10-18 Nvidia Corporation Method, computer program product, and system for a multi-input bitwise logical operation
CN104199635B (zh) * 2014-09-23 2017-11-07 无锡华大国奇科技有限公司 集成crc校验电路的伪随机数发生器
US9916159B2 (en) * 2016-01-14 2018-03-13 International Business Machines Corporation Programmable linear feedback shift register
US10108487B2 (en) * 2016-06-24 2018-10-23 Qualcomm Incorporated Parity for instruction packets
US10466967B2 (en) * 2016-07-29 2019-11-05 Qualcomm Incorporated System and method for piecewise linear approximation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195293A (en) * 1978-05-18 1980-03-25 Jed Margolin Random dot generator for raster scan video displays
US4771429A (en) * 1986-09-18 1988-09-13 Abbott Laboratories Circuit combining functions of cyclic redundancy check code and pseudo-random number generators
EP0279953B1 (en) * 1987-02-24 1994-11-02 Texas Instruments Incorporated Computer system having mixed macrocode and microcode instruction execution
US5235686A (en) * 1987-02-24 1993-08-10 Texas Instruments Incorporated Computer system having mixed macrocode and microcode
US5230020A (en) * 1991-10-16 1993-07-20 Motorola, Inc. Algorithm independent cryptographic key management
US5467297A (en) * 1993-11-04 1995-11-14 Cirrus Logic, Inc. Finite field inversion
GB2304941B (en) 1995-06-24 1999-09-08 Motorola Ltd Feedback and shift unit
DE19627010C1 (de) * 1996-07-04 1997-12-11 Madeira Garnfabrik Rudolf Schm Verfahren zum Herstellen eines schrumpfarmen Garns
US6195780B1 (en) * 1997-12-10 2001-02-27 Lucent Technologies Inc. Method and apparatus for generating cyclical redundancy code
JP4127581B2 (ja) * 1999-03-01 2008-07-30 株式会社東芝 スペクトラム拡散無線通信装置
US20030002677A1 (en) * 2001-06-28 2003-01-02 Amit Dagan Software implementations of input independent LFSR-based algorithms
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
FI20021869A0 (fi) * 2002-10-18 2002-10-18 Nokia Corp Menetelmä ja laite pakettidatan siirtämiseksi langattomassa pakettidataverkossa
US7949856B2 (en) * 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
JP2006215824A (ja) * 2005-02-03 2006-08-17 Sanyo Electric Co Ltd 乱数生成回路
JP2006215825A (ja) * 2005-02-03 2006-08-17 Sanyo Electric Co Ltd 乱数生成回路
TW200629192A (en) 2005-02-03 2006-08-16 Sanyo Electric Co Random number generating circuit
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
KR100686579B1 (ko) * 2005-11-09 2007-02-26 삼성전자주식회사 휴대용 무선단말기에서 메시지의 수신알림을 제어하기 위한방법
KR20080033582A (ko) * 2006-10-12 2008-04-17 삼성전자주식회사 휴대용 단말기의 전력 소모를 방지하기 위한 장치 및 방법
US7984269B2 (en) * 2007-06-12 2011-07-19 Arm Limited Data processing apparatus and method for reducing issue circuitry responsibility by using a predetermined pipeline stage to schedule a next operation in a sequence of operations defined by a complex instruction

Also Published As

Publication number Publication date
KR20110074878A (ko) 2011-07-04
US20100077187A1 (en) 2010-03-25
WO2010039457A1 (en) 2010-04-08
KR101290493B1 (ko) 2013-07-26
CN102160031A (zh) 2011-08-17
JP2012503829A (ja) 2012-02-09
EP2350814A1 (en) 2011-08-03
TW201025126A (en) 2010-07-01
US8281111B2 (en) 2012-10-02

Similar Documents

Publication Publication Date Title
JP5341194B2 (ja) リニアフィードバックシフト命令を実行するためのシステムおよび方法
JP5917592B2 (ja) ループ制御システムおよび方法
JP5269610B2 (ja) ユーザレベル命令に応じた巡回冗長検査演算の実行
JP5478068B2 (ja) 改善されたパイプライン化デジタル信号プロセッサ
KR101027855B1 (ko) Crc 에러 검출 방법, 장치, 시스템 및 crc 에러 검출방법을 수행하는인스트럭션 세트를 포함하는 머신판독가능한 매체
JP2011526045A5 (ja)
JP2015144002A (ja) 単一方向回転子のためのレジスタベースのシフト
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
US8707013B2 (en) On-demand predicate registers
WO2013036950A1 (en) Instruction packet including multiple instructions having a common destination
EP1087534A1 (en) Method and apparatus for calculation of cyclic redundancy check
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
JP6203935B2 (ja) 加算比較選択命令
CN109313594B (zh) 用于指令包的奇偶校验
US9411724B2 (en) Method and apparatus for a partial-address select-signal generator with address shift
JP3688285B2 (ja) パリティー検査を利用して命令モード切り換えを行なうプロセッサ及び方法
Cho et al. Block-interleaving based parallel CRC computation for multi-processor systems
JP4873546B2 (ja) データ処理装置、データ処理方法
CN117591184B (zh) Risc-v向量压缩乱序执行的实现方法及装置
CN114546488B (zh) 一种向量跨步指令的实现方法、装置、设备及存储介质
JP2010140132A (ja) メモリシステム及びメモリコントローラ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130626

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130807

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees