JP6022581B2 - Fifoロード命令 - Google Patents

Fifoロード命令 Download PDF

Info

Publication number
JP6022581B2
JP6022581B2 JP2014533457A JP2014533457A JP6022581B2 JP 6022581 B2 JP6022581 B2 JP 6022581B2 JP 2014533457 A JP2014533457 A JP 2014533457A JP 2014533457 A JP2014533457 A JP 2014533457A JP 6022581 B2 JP6022581 B2 JP 6022581B2
Authority
JP
Japan
Prior art keywords
instruction
register
item
data
executing
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
JP2014533457A
Other languages
English (en)
Other versions
JP2014532231A (ja
Inventor
マオ・ゼン
ルシアン・コドレスク
エーリヒ・ジェームズ・プロンドケ
アジャイ・アナント・イングレ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2014532231A publication Critical patent/JP2014532231A/ja
Application granted granted Critical
Publication of JP6022581B2 publication Critical patent/JP6022581B2/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
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

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)
  • Image Processing (AREA)

Description

本開示は、一般に、先入れ先出し(FIFO)ロード命令に関する。
技術の進歩によって、コンピューティングデバイスはより小型にかつより高性能になっている。たとえば、現在、小型で、軽量で、ユーザが簡単に持ち運べる、携帯式のワイヤレス電話、携帯情報端末(PDA)、およびページングデバイスなどの、ワイヤレスコンピューティングデバイスを含む、様々な携帯式の個人向けコンピューティングデバイスが存在する。より具体的には、セルラー電話やインターネットプロトコル(IP)電話などの携帯式のワイヤレス電話は、ボイスおよびデータパケットを、ワイヤレスネットワークを介して通信することができる。さらに、多くのそのようなワイヤレス電話には、内部に他の種類のデバイスが組み込まれている。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤも含み得る。また、そのようなワイヤレス電話は、ウェブブラウザアプリケーションなど、インターネットにアクセスするために使用され得るソフトウェアアプリケーションを含む実行可能な命令を処理することができる。したがって、これらのワイヤレス電話は、高いコンピューティング能力を含み得る。
ワイヤレス電話およびデジタルカメラなどのマルチメディアデバイスは、マルチメディアデジタル信号プロセッサを含むことができる。マルチメディアデジタル信号プロセッサによって実行される1つのプロセスは、有限インパルス応答(FIR)フィルタリングである。FIRフィルタリングでは、スライディングウィンドウFIRは、入力データストリームに再帰的に適用され得、各ウィンドウにおけるデータが積和演算(multiply and accumulate operations)にかけられる。たとえば、メモリに記憶された入力データストリームがロードされ得、第1の出力を取得するために、スライディングウィンドウフィルタがデータストリームの第1の部分に適用され得る。次に、データストリームが(たとえば、残りのデータストリーム上にウィンドウを「スライドさせる」ために)ある値だけシフトされ得、第2の出力を取得するために、スライディングウィンドウフィルタがデータストリームの第2の部分に適用され得る。マルチメディア信号プロセッサによって実行される別のプロセスは、動き推定であり、これによって、各ウィンドウにおけるデータが絶対差および累積演算(absolute difference and accumulate operations)にかけられ得る。
現在のFIRおよび動き推定技法は、任意のバイトアラインメントでのデータストリームのメモリへのロードをサポートするハードウェア(たとえば、任意のバイトアドレスからロードアライン操作(load align operation)を実行するためのカスタムハードウェア)を使用し得る。しかしながら、そのようなカスタムハードウェアは、高価であり得、カスタムハードウェアによって占められる追加のスペースのために、小さいデバイス(たとえば、携帯電話)では望ましくない場合がある。他の技法は、メモリからターゲットデータストリームをロードして、シフト操作を実行するために複数の命令を使用することを採用し得る。たとえば、第1の命令は、メモリから第1のレジスタ(たとえば、RF(0))にターゲットデータストリーム(たとえば、D7 D6 … D0)をロードし、第2の命令は、ターゲットデータストリームにおいて左シフト操作を実行し、第2のレジスタ(たとえば、RF(1))に前もって記憶されたデータにおいて右シフト操作を実行することができる。次いで、シフトされたターゲットデータが挿入され、第3のレジスタ(たとえば、RF(2))にシフトされ得る。
データのロード、シフト(すなわち、アラインメント)、および挿入操作を実行する単一の命令が開示される。たとえば、電子デバイス(たとえば、モバイルデバイスおよびデジタルカメラなど)でFIRフィルタリングおよび動き推定を実行するための他の実行可能な命令と連動して、データのロード、シフト、および挿入操作を実行するために、命令が使用され得る。たとえば、FIRフィルタリングの間に、積和演算が実行され得る。別の例として、動き推定の間に、絶対値差分和演算が実行され得る。一実装形態では、命令は、レジスタおよびメモリ位置を識別することができる。レジスタは、前もって記憶されたデータ(たとえば、FIFOバッファを表す)を含み得、メモリ位置は、レジスタに挿入されるべきアイテム(たとえば、1バイト、ハーフワード、または1ワード)を含み得る。命令がプロセッサによって実行されると、アイテムがメモリ位置からレジスタにロードされ得、レジスタにおける前のデータをシフトし、アイテムをレジスタに挿入するために、シフトおよび挿入操作が実行され得る。ロード操作、シフト操作、および挿入操作は、命令の同じ実行サイクルで実行され得る。さらに、命令は、超長命令語(VLIW)アーキテクチャの命令レベルの並列性を利用することができる。たとえば、単一のVLIWパケットは、並行して実行可能なそのような複数の命令を含むことができる。
特定の実施形態では、装置は、レジスタおよびメモリ位置を識別する命令を記憶するメモリを含む。命令がプロセッサによって実行されると、アイテムがメモリ位置からロードされ得、レジスタにおけるデータをシフトし、アイテムをレジスタに挿入するために、シフトおよび挿入操作が実行され得る。
別の特定の実施形態では、方法は、レジスタおよびメモリ位置を識別する命令を受信するステップを含む。この方法は、命令を実行するステップを含む。命令を実行するステップは、メモリ位置からアイテムをロードするステップと、レジスタにおけるデータをシフトするステップと、アイテムをレジスタに挿入するステップとを含む。
別の特定の実施形態では、装置は、レジスタおよびメモリ位置を識別する命令を記憶するための手段を含む。この装置は、命令を実行するための手段も含む。命令を実行するための手段は、メモリ位置からアイテムをロードするための手段と、レジスタにおけるデータをシフトするための手段と、アイテムをレジスタに挿入するための手段とを含む。
別の特定の実施形態では、非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、レジスタおよびメモリ位置を識別する単一の命令を受信させ、単一の命令を実行させるプログラムコードを含む。単一の命令を実行するステップは、メモリ位置からアイテムをロードするステップと、レジスタにおけるデータをシフトするステップと、アイテムをレジスタに挿入するステップとを含む。
開示された実施形態のうちの少なくとも1つによって提供される1つの特定の利点は、データのロード、シフト(すなわち、アラインメント)、および挿入機能を実行するための単一の命令の使用による、アプリケーション(たとえば、埋込み型マルチメディア処理アプリケーション)のためのより少ない実行サイクルおよびコードサイズの低減である。別の特定の利点は、余分のカスタマイズされたハードウェアの使用なしに、不整合なデータをサポートする開示された命令の能力による、より小さく、より安価で、あまり電力集約型でない電子デバイスである。
本開示の他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体の検討後に明らかになろう。
レジスタおよびメモリ位置を識別する命令を実行するステップを示す図である。 レジスタおよびメモリ位置を識別する命令を実行するステップを示す別の図である。 レジスタおよびメモリ位置を識別する命令を記憶するメモリを含むシステムの特定の例示的な実施形態の図である。 レジスタおよびメモリ位置を識別する命令を実行する方法の特定の例示的な実施形態のフローチャートである。 レジスタおよびメモリ位置を識別する命令を実行するステップを示す別の図である。 レジスタおよびメモリ位置を識別する命令を実行するよう動作可能なプロセッサを含むワイヤレスデバイスの特定の実施形態のブロック図である。
データのロード、シフト、および挿入機能を実行するための命令は、レジスタおよびメモリ位置を識別することができる。命令が実行されると、アイテム(たとえば、1バイト、ハーフワードまたは1ワード)がメモリ位置からロードされ、レジスタにおけるデータをシフトし、アイテムをレジスタに挿入するために、シフトおよび挿入操作が実行され得る。ロード、シフト、および挿入操作は、同じ実行サイクルの間に実行され得る。シフトおよび挿入操作は、アイテムがレジスタに挿入される空間を作成するために、レジスタからデータの一部分を削除することができる。削除された部分は、データ要素が先入れ先出し方式(FIFO)バッファの前から「ポンと出される」ことを表し、新しく追加されたアイテムは、データ要素がFIFOバッファの後ろに「押し込まれる」ことを表し得る。命令は、レジスタに記憶されたデータにおいてフィルタリング演算を実行するために、他の実行可能な命令(たとえば、積和命令)と連動して実行可能であり得る。フィルタリング演算は、有限インパルス応答(FIR)演算(たとえば、モデム、音声コーダ/デコーダ(CODEC)、音声コーデック、画像プロセッサ、またはビデオコーデックによって使用される)でもよい。命令は、レジスタに記憶されたデータにおいて動き推定を実行するために、他の実行可能な命令(たとえば、絶対値差分和命令)と連動して実行可能でもあり得る。
図1〜図2は、レジスタおよびメモリ位置を識別するFIFOロード命令の実行の2つの例を示す。図1を参照すると、FIFOロード命令の実行の第1の例示的な例が開示されて、全般が100で表される。
FIFOロード命令は、レジスタおよびメモリ位置を識別することができ、メモリ位置は、レジスタにロードされるアイテムを含む。レジスタは、レジスタ対または単一のレジスタでもよい。たとえば、図1に示すように、FIFOロード命令は、「R1:0=MEM_FIFO(Rs)」とすることができ、ただし、「MEM_FIFO」は、FIFOロード命令のオペコードであり、「Rs」は、アイテム150のアドレスを記憶するメモリ102におけるレジスタであり、「R1」は、アイテム150がロードされるデータ144、143、142、および141(たとえば、X4 X3 X2 X1)を含むレジスタ140である。レジスタ140は、データ141〜144に関するFIFOバッファとして動作し得る(たとえば、データX1 141はFIFOバッファの前に位置し得、データX4はFIFOバッファの後ろに位置し得る)。
特定の実施形態では、アイテム150は、1バイト、ハーフワード、または1ワードとすることができる。FIFOロード命令は、アイテムが1バイトであるか、ハーフワードであるか、または1ワードであるかを指定することもできる。アイテムが任意の他の長さでもよいことに留意されたい。たとえば、「MEMB_FIFO」オペコードは、アイテム150が1バイトであることを示し得(たとえば、命令は「R0=MEMB_FIFO(Rs)」であり得る)、「MEMH_FIFO」オペコードは、アイテム150がハーフワードであることを示し得(たとえば、命令はR1=MEMH_FIFO(Rs)であり得る)、「MEMW_FIFO」オペコードは、アイテム150が1ワードであることを示し得る。命令は、レジスタ140におけるデータ144〜141においてフィルタリング演算を実行するための他の実行可能な命令と連携してプロセッサの実行ユニットまたはロード/ストアユニットによって実行可能であり得る。フィルタリング演算は、(たとえば、モバイルデバイスまたはデジタルカメラのビデオデータの)有限インパルス応答フィルタリングまたは動き推定を実行するために使用され得る。たとえば、命令は、図3を参照しながらさらに説明するように、1つのビデオフレームの複数の領域のまたは複数のビデオフレームの動き推定を並行して実行するための他の実行可能な命令と連携して使用され得る。
動作中、アイテム150についてのレジスタ140およびメモリ位置を識別するFIFOロード命令が、メモリ102(たとえば、ランダムアクセスメモリ(RAM))から取り出され、プロセッサの実行ユニットまたはロード/ストアユニット(たとえば、ロードハードウェアユニットまたはロードアライナーユニット)によって実行され得る。実行されると、FIFOロード命令によって、アイテム150は、図示のように、メモリ位置からロードされ得る。さらに、レジスタ140におけるデータ141〜144をシフトし、アイテム150をレジスタ140に挿入するために、シフトおよび挿入操作が実行され得る。特定の実施形態では、プロセッサの同じ実行サイクルの間に、メモリ位置からアイテム150をロードするステップ、ならびにシフトおよび挿入操作が実行され得る。
図1に示すように、メモリ位置からアイテム150をロードした後、レジスタ140におけるデータ141〜144は、右にシフトされ得、アイテム150は、レジスタ140に記憶されたFIFOバッファの後ろに挿入され得る。たとえば、レジスタ140におけるデータ144〜141(すなわち、X4 X3 X2 X1)は右にシフトされ得、それによって、図1に示すように、データ141(すなわち、X1)がレジスタ140から削除され、アイテム150がレジスタ140に挿入され得る。したがって、図1のMEM_FIFO命令は、単一の命令の使用によって、データのロード、シフト、および挿入操作を可能にすることができる。
図2を参照すると、FIFOロード命令「R1:0=MEM_FIFO(Rs)」の実行の第2の例示的な例が開示されて、全般が200で表される。図1は、レジスタ140の左側(たとえば、最上位部分)にアイテム150を挿入するために空間を作るための右シフト操作を示すが、図2は、レジスタ140の右側(たとえば、最下位部分)にアイテム150を挿入するために空間を作るための左シフト操作を示す。FIFOロード命令が実行されると、アイテム150がメモリ位置からロードされ得、レジスタ140におけるデータ141〜144をシフトするために左シフト操作が実行され得、アイテム150をレジスタ140に挿入するために挿入操作が実行され得る。したがって、開示されたFIFOロード命令は、レジスタにおける左から右と右から左との両方の方向に配向されるFIFOバッファで使用され得る。
図3を参照すると、複数のFIFOロード命令351、352を含む命令パケット(たとえば、VLIW命令パケット350)を記憶し、処理するように動作可能なシステムの特定の例示的な実施形態が開示されて、全般が300で表される。
システム300は、命令パケット350を記憶するメモリ102を含み得る。メモリ102は、バスインターフェース308を介して命令キャッシュ310に結合され得る。第1のFIFOロード命令351は、第1のアイテム150(たとえば、アイテム1と示される)についての第1のレジスタ(たとえば、R1と示されるレジスタ140)および第1のメモリ位置を識別することができる。第2のFIFOロード命令352は、第2のアイテム360(たとえば、アイテム2と示される)についての第2のレジスタ(たとえば、R2と示されるレジスタ340)および第2のメモリ位置を識別することができる。アイテム150、360は、メモリ102および/またはデータキャッシュ312に記憶され得る。たとえば、図3は、第1のアイテム150がメモリ102に記憶され、第2のアイテム360がデータキャッシュ312とメモリ102の両方に記憶されることを示す。第1のレジスタ140および第2のレジスタ340は、汎用レジスタファイル326の一部であってもよい。特定の実施形態では、システム300の全部または一部分が、プロセッサに統合され得る。あるいは、メモリ102およびバス330は、プロセッサの外部にあってもよい。
メモリ102は、バスインターフェース308を介して、命令キャッシュ310に命令パケット350を送信することができる。データキャッシュ312も、バスインターフェース308を介してメモリ102に結合されてよい。特定の実施形態では、メモリ102は、データにおいてフィルタリング演算を実行する、データにおいて有限インパルス応答演算を実行する、ビデオデータの動き推定、またはそれらの任意の組合せを実行するように動作可能であるプロセッサ(たとえば、デジタル信号プロセッサ)によってアクセス可能であり得る。プロセッサは、データのロード、シフト、および挿入操作を実行するためにFIFOロード命令351および352を実行することができる。
命令キャッシュ310は、バス311を介してシーケンサ314に結合され得る。シーケンサ314は、汎用割込み316を受信することができ、この割込みは、割込みレジスタ(図示せず)から取り出すことができる。特定の実施形態では、命令キャッシュ310は、複数の現在の命令レジスタ(図示せず)を介してシーケンサ314に結合され、シーケンサ314は、バス311に結合され、プロセッサ300の特定のスレッド(たとえば、ハードウェアスレッド)に関連付けられ得る。特定の一実施形態では、プロセッサ300は、6つのスレッドを含むインタリーブ型マルチスレッドプロセッサであり得る。
特定の実施形態では、バス311は128ビットバスでよく、シーケンサ314は、各々が32ビット長を有する、複数のFIFOロード命令(たとえば第1のFIFOロード命令351および第2のFIFOロード命令352)を含む命令パケット(たとえば、VLIW命令パケット350)により、メモリ102から命令を取り出すように構成され得る。シーケンサ314は、第1のロード/ストアユニット318、第2のロード/ストアユニット320、第1の命令実行ユニット322、および第2の命令実行ユニット324に結合され得る。示されているよりもより少ない、またはより多いロード/ストアユニットおよび命令実行ユニットが存在してもよいことに留意されたい。各ユニット318〜324は、FIFOロード命令を実行するように動作可能な1つまたは複数のロードアライナーユニットまたはロードハードウェアユニットを含むことができる。各ユニット318〜324は、第1のバス328を介して汎用レジスタファイル326に結合することができる。汎用レジスタファイル326はまた、第2のバス330を介してシーケンサ314、データキャッシュ312、およびメモリ302に結合可能である。汎用レジスタファイル326は、第1のレジスタ140および第2のレジスタ340を含み得る。
システム300は、割込み(たとえば、汎用割込み316)を受け入れるか否かを決定し、命令の実行を制御するためにシーケンサ314内の制御論理によってアクセスされ得るビットを記憶するためのスーパバイザ制御レジスタ332およびグローバル制御レジスタ336も含み得る。
特定の実施形態では、ロード/ストアユニット318〜320のうちの1つ(たとえば、第1のロード/ストアユニット318)は、第1のFIFOロード命令351を実行することができる。第1のFIFOロード命令351が実行されると、第1のアイテム150がメモリ102からロードされ得、第1のレジスタ140におけるデータをシフトし、第1のアイテム150を第1のレジスタ140に挿入するために、シフトおよび挿入操作が実行され得る。データキャッシング原理に従って、第1のアイテム150がデータキャッシュ312に記憶されてもよい。さらに、ロード/ストアユニット318〜320のうちの別の1つ(たとえば、第2のロード/ストアユニット320)が第2のFIFOロード命令352を実行することができる。第2のFIFOロード命令352が実行されると、第2のアイテム360がデータキャッシュ312からロードされ得、第2のレジスタ340におけるデータをシフトし、第2のアイテム360を第2のレジスタ340に挿入するために、シフトおよび挿入操作が実行され得る。特定の実施形態では、第1のFIFOロード命令351および第2のFIFOロード命令352がそれぞれ、同じ実行サイクルの間に、ロード/ストアユニット318およびロード/ストアユニット320によって並行して実行され得る。例示のために、アイテム150および360が(たとえば、メモリ102およびデータキャッシュ312から)ロードされ得、レジスタ140および340におけるデータがシフトされ得、同じ実行サイクルの間に、アイテム150および360がレジスタ140および340に挿入され得る。他の命令がFIFOロード命令351、352と並行して実行されてもよい。たとえば、乗算命令、加算命令、乗算および加算命令、ならびに絶対値差分和命令がFIFOロード命令351、352と並行して実行されてもよい。例示のために、ユニット318〜324のうちの1つまたは複数は、ユニット318〜324のうちの別のものが乗算命令、加算命令、乗算および加算命令、または絶対値差分和命令を実行している間に、FIFOロード命令を実行することができる。
したがって、図3のシステム300は、単一のVLIWパケットへの複数のFIFOロード命令のパケット化を可能にすることができ、ビデオオブジェクトの動き推定を実行することに関連して、そのような命令が使用され得る。たとえば、単一の命令へのロード、シフトおよび挿入操作のカプセル化によって、プロセッサは、1つのビデオフレームの複数の領域、または複数のビデオフレームの動き推定を並行して実行することができる。例示のために、VLIW命令パケット350における命令351、352の各々は、ビデオフレームの異なる領域のフィルタリング演算を表し得る。ビデオデータのそのような並行処理は、マルチメディアアプリケーションの性能の向上につながり得る。
図4を参照すると、レジスタおよびメモリ位置を識別する命令を処理する方法の特定の例示的な実施形態のフローチャートが示され、全般が400で表される。例示的な実施形態では、方法400は、図3のシステム300において実施することができ、図1〜図2を参照して説明され得る。
方法400は、410で、アイテムのレジスタおよびメモリ位置を識別する命令を受信するステップを含むことができる。たとえば、命令は、図1または図2のメモリ102および/または図3の命令キャッシュ310で記憶され得る。メモリは、レジスタベースのメモリ、ランダムアクセスメモリ(RAM)、別のタイプのメモリ、またはそれらの任意の組合せでもよい。アイテムは、1バイト、ハーフワード、または1ワードとすることができる。たとえば、図3に示すように、第1のFIFOロード命令351および第2のFIFOロード命令352を含むVLIW命令パケット350が、そのプロセッサまたは構成要素(たとえば、命令キャッシュ310)で受信され得る。代わりに、単一のFIFOロード命令のみを含む命令パケットが受信され得る。
方法400は、420で、命令を実行するステップをさらに含んでもよい。たとえば、図3を参照すると、第1のFIFOロード命令351が第1のロード/ストアユニット318によって実行され得、第2のFIFOロード命令352が第2のロード/ストアユニット320によって実行され得る。第1のFIFOロード命令351は、第2のFIFOロード命令352を実行するのと同じクロックサイクルと並行して、および第2のFIFOロード命令352を実行するのと同じクロックサイクルの間に実行され得る。さらに、FIFOロード命令351〜352のうちの一方または両方は、乗算命令または絶対値差分和命令を実行することと並行して実行され得る。したがって、図4の方法400は、単一の命令パケットへの複数のFIFOロード命令のカプセル化およびその処理を可能にすることができ、これによって、高密度のビデオ処理コードとなり得る。
命令を実行するステップは、422で、メモリ位置からアイテムをロードするステップを含み得る。たとえば、図3で、命令パケット350を実行するステップは、メモリ102から第1のアイテム150をロードするステップと、データキャッシュ312から第2のアイテム360をロードするステップとを含み得る。命令を実行するステップは、424で、レジスタにおけるデータをシフトするステップも含み得る。特定の実施形態では、図1に示すように、シフトは、右シフト操作である。別の特定の実施形態では、図2に示すように、シフトは、左シフト操作である。別の特定の実施形態では、第1のFIFOロード命令351を実行するステップは、右シフト操作を実行するステップを含み得、第2のFIFOロード命令352を実行するステップは、左シフト操作を実行するステップ(またはその逆)を含み得る。たとえば、図3で、第1のレジスタ140におけるデータが左にシフトされ得、第2のレジスタ340におけるデータが右にシフトされ得る。したがって、レジスタ140、340におけるデータは、同じ方向または異なる方向にシフトされ得る。
命令を実行するステップは、426で、アイテムをレジスタに挿入するステップをさらに含み得る。たとえば、図3で、第1のアイテム150が第1のレジスタ140に挿入され得、第2のアイテム360が第2のレジスタ340に挿入され得る。
図1〜図4で説明した実施形態は、データを同じレジスタからシフトすること、およびデータを同じレジスタにロードすることを伴い得る。代わりに、マルチレジスタ実装が使用されてもよい。たとえば、図5は、複数のレジスタを使用してFIFOロード命令を実行する一実施形態を示し、全般が500で表される。
例示のために、FIFOバッファのX4X3X2X1 144〜141は、第1のレジスタ510に記憶され得る。FIFOロード命令の実行中、データX4X3X2X1 144〜141がシフタ530にロードされ得、シフタ530の出力がマルチプレクサ540に提供され得る。マルチプレクサ540は、メモリ102からFIFOバッファにロードされるアイテム150を受信することもできる。特定の実施形態では、アイテム150は、データロードプロセスの間に、必要に応じて、位置合わせされ、複製され、ゼロパディングされ、および/または符号拡張され得る。図5に示すように、マルチプレクサ540の出力は、第2のレジスタ520に記憶され得る。したがって、ソースレジスタと宛先レジスタとが異なるとき、FIFOロード命令は、ロード、シフト、および挿入操作を実行するために使用され得る。
図6を参照すると、レジスタおよびメモリ位置を識別するFIFOロード命令を記憶するメモリを含むワイヤレスデバイスの特定の例示的な実施形態のブロック図が示され、全般が600で表される。デバイス600は、メモリ102に結合されたデジタル信号プロセッサ(DSP)664などのプロセッサを含む。特定の実施形態では、メモリ102は、FIFOロード命令351など、DSP664によって実行可能な命令を記憶し、送信し得る。メモリ102は、アイテム150など、ロードされるデータを記憶することもできる。DSPは、FIFOバッファを表すデータ144-141(すなわち、「X4 … X1」)を記憶するレジスタ140を含むことができる。FIFOロード命令351が実行されると、アイテム150がメモリ102におけるメモリ位置からロードされ得、レジスタ140におけるデータ144〜141をシフトし、アイテム150をレジスタ140に挿入するために、シフトおよび挿入操作が実行され得る。たとえば、図6で、左シフト操作がデータ144〜141において実行され得、レジスタ140からデータX4 144が削除され、アイテム150がレジスタ140の最下位部分でレジスタ140に挿入され得る。代わりに、レジスタ140におけるデータ144〜141が右にシフトされ得(図示せず)、レジスタ140からデータX1 141が削除され、アイテム150がレジスタ140の最上位部分でレジスタ140に挿入され得る。
図6はまた、DSP664およびディスプレイ628に結合されたディスプレイコントローラ626も示す。コーダ/デコーダ(コーデック)634(たとえば、オーディオおよび/またはボイスコーデック)がDSP664に結合され得る。たとえば、コーデック634によって、符号化または復号プロセスの一部としてFIFOロード命令351の実行がもたらされ得る。たとえばディスプレイコントローラ626(ビデオコーデックおよび/または画像処理プロセッサを含み得る)、およびワイヤレスコントローラ640(モデムを含み得る)など他の構成要素によって、信号処理の間に、FIFOロード命令351の実行がもたらされる場合もある。スピーカー636およびマイクロフォン638がコーデック634に結合され得る。図6は、ワイヤレスコントローラ640が、ワイヤレスアンテナ642に結合され得ることも示している。ある特定の実施形態では、DSP664、ディスプレイコントローラ626、メモリ632、コーデック634、およびワイヤレスコントローラ640は、システムインパッケージデバイスまたはシステムオンチップデバイス622に含まれる。
特定の一実施形態では、入力デバイス630および電源644がシステムオンチップデバイス622に結合される。その上、特定の一実施形態では、図6に示すように、ディスプレイ628、入力デバイス630、スピーカー636、マイクロフォン638、ワイヤレスアンテナ642、および電源644は、システムオンチップデバイス622の外部にある。ただし、ディスプレイ628、入力デバイス630、スピーカー636、マイクロフォン638、ワイヤレスアンテナ642、および電源644の各々は、インターフェースまたはコントローラなど、システムオンチップデバイス622の構成要素に結合され得る。
図6はワイヤレス通信デバイスを示しているが、DSP664およびメモリ632がセットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータに統合されてもよいことに留意されたい。プロセッサ(たとえば、DSP664または図3のロード/ストアユニット318〜320のうちの1つまたは複数を含むプロセッサ)は、そのようなデバイスに統合されてもよい。
記載した実施形態とともに、レジスタおよびメモリ位置を識別する命令を記憶するための手段を含む装置が開示される。たとえば、記憶するための手段は、図1〜図3および図6のメモリ102、図3の命令キャッシュ310、命令を記憶するように構成された1つもしくは複数の他のデバイス、またはそれらのどの組合せでもよい。
この装置は、命令を実行するための手段も含み得る。たとえば、実行するための手段は、図3のユニット318、320、322、および324のうちの1つまたは複数、図5のシフタ530、図5のマルチプレクサ540、図6のDSP664、ロードハードウェアユニット、ロードアライナーユニット、命令を実行するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せを含むことができる。
この装置は、メモリ位置からアイテムをロードするための手段をさらに含み得る。たとえば、ロードするための手段は、図3のユニット318〜324のうちの1つまたは複数、ロードハードウェアユニット、ロードアライナーユニット、メモリからアイテムをロードするように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せとすることができる。
この装置は、レジスタにおけるデータをシフトするための手段を含むことができる。たとえば、シフトするための手段は、図3のユニット318〜324のうちの1つまたは複数、ロードハードウェアユニット、ロードアライナーユニット、データシフトユニット、データをシフトするように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せとすることができる。
この装置は、アイテムをレジスタに挿入するための手段を含むこともできる。たとえば、挿入するための手段は、図3のユニット318〜324のうちの1つまたは複数、図5のシフタ530、ロードハードウェアユニット、ロードアライナーユニット、データをロードするように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せとすることができる。
この装置は、命令を実行することと並行して第2の命令を実行するための手段をさらに含むことができ、第2の命令は、第2のレジスタおよび第2のメモリ位置を識別する。たとえば、実行するための手段は、図3のユニット318〜324のうちの1つまたは複数、図5のシフタ530、図5のマルチプレクサ540、図6のDSP664、ロードハードウェアユニット、ロードアライナーユニット、第1の命令と並行して第2の命令を実行するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せを含むことができる。
さらに、本明細書で開示された実施形態に関して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップについて、それらの機能に関して概略的に説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示した実施形態に関連して説明した方法またはアルゴリズムのステップは、直接ハードウェアで具体化されるか、プロセッサによって実行されるソフトウェアモジュールで具体化されるか、またはその2つの組合せで具体化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な非一時的(たとえば、有形)記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)に存在し得る。ASICは、コンピューティングデバイスまたはユーザ端末内に存在し得る。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末の中に、個別の構成要素として存在し得る。
開示された実施形態の上記の説明は、当業者が、開示された実施形態を作成または使用することができるように与えられる。これらの実施形態に対する様々な修正が、当業者には容易に明らかとなり、本明細書で定義される原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書に示す実施形態に限定されることは意図されず、以下の特許請求の範囲によって定義されるような、原理および新規の特徴と矛盾しない、可能な最大の範囲を認められるべきである。
102 メモリ
140 レジスタ
141 データ
142 データ
143 データ
144 データ
150 アイテム
300 システム
300 プロセッサ
308 バスインターフェース
310 命令キャッシュ
311 バス
312 データキャッシュ
314 シーケンサ
316 汎用割込み
318 第1のロード/ストアユニット
320 第2のロード/ストアユニット
322 第1の命令実行ユニット
324 第2の命令実行ユニット
326 汎用レジスタファイル
328 第1のバス
330 バス
332 スーパバイザ制御レジスタ
336 グローバル制御レジスタ
340 レジスタ
350 VLIW命令パケット
351 FIFOロード命令
352 FIFOロード命令
360 第2のアイテム
510 第1のレジスタ
520 第2のレジスタ
530 シフタ
540 マルチプレクサ
600 デバイス
622 システムオンチップデバイス
626 ディスプレイコントローラ
628 ディスプレイ
630 入力デバイス
632 メモリ
634 コーダ/デコーダ(コーデック)
636 スピーカー
638 マイクロフォン
640 ワイヤレスコントローラ
642 ワイヤレスアンテナ
644 電源
664 DSP

Claims (19)

  1. 第1のレジスタおよび第1のメモリ位置を識別する第1の命令を記憶するメモリであり、前記第1の命令によってプロセッサは、
    前記第1のメモリ位置から第1のアイテムをロードするステップと、
    前記第1のレジスタにおけるデータアイテムをシフトし、前記第1のレジスタにおける最初の位置からデータアイテムのうちの第1のデータアイテムを削除するために、シフト操作を実行するステップと、
    前記第1のレジスタの最後の位置に前記第1のアイテムを挿入するために、挿入操作を実行するステップと
    を含む操作を実行可能であり、前記第1の命令の実行が、前記プロセッサの単一の実行サイクルで完了する、メモリ
    を備え
    前記第1の命令が、ビデオデータにおいて動き推定を実行するための他の実行可能な命令と連携して実行可能である、
    装置。
  2. 記第1のアイテムの長さが1バイトである、請求項1に記載の装置。
  3. 前記シフト操作を実行するステップは、前記プロセッサのシフタによって実行され、このシフタは、前記第1のレジスタからデータを受信、データから第1のデータアイテムを削除し、かつデータのうちの他のデータアイテムの順序を維持するように構成されていて、
    更に、前記シフタの出力および前記第1のメモリ位置からの第1のアイテムを受信するように構成されたマルチプレクサと、
    前記マルチプレクサのマルチプレクサ出力を受信するように構成された第2のレジスタとを備えている、
    請求項1に記載の装置。
  4. 前記第1のアイテムは第2のレジスタの最後の位置に存在し、かつ他のデータアイテムは第2のレジスタの他の位置に順序を維持して存在する、
    請求項3に記載の装置。
  5. 前記第1のアイテムは、第1のメモリ位置からマルチプレクサへの第1のアイテムのロードの間に、位置合わせされ、複製され、ゼロパディングされ、符号拡張され、またはこれらの組み合わせが行われる、
    請求項3に記載の装置。
  6. 記第1の命令の前記実行が前記プロセッサのロードハードウェアユニットによって実行され、前記シフト操作および挿入操作は、第1のレジスタからのデータの一部分を第1のメモリ位置からのデータの一部分に置き換える、
    請求項1に記載の装置。
  7. 前記第1の命令および第2の命令を含む超長命令語(VLIW)パケットをさらに備える、請求項1に記載の装置。
  8. 前記第2の命令が第2のレジスタおよび第2のメモリ位置を識別し、前記第2の命令が前記プロセッサによって実行されると、第2のアイテムが前記第2のメモリ位置からロードされ、前記第2のレジスタにおけるデータアイテムをシフトし、前記第2のレジスタにおける最初の位置から前記第2のレジスタにおけるデータアイテムのうちの特定の第1のデータアイテムを削除するために、第2のシフト操作が実行され、前記第2のアイテムを前記第2のレジスタの最後の位置に挿入するために、第2の挿入操作が実行され、前記第2の命令が前記第1の命令の実行と並行して実行される、請求項7に記載の装置。
  9. 前記第1の命令が、フィルタリング演算を実行するための他の実行可能な命令と連携して実行可能である、請求項1に記載の装置。
  10. 前記フィルタリング演算が有限インパルス応答(FIR)演算である、請求項9に記載の装置。
  11. 第1のレジスタおよび第1のメモリ位置を識別する第1の命令を受信するステップと、
    プロセッサを使用して前記第1の命令を実行するステップであり、
    前記第1のメモリ位置から第1のアイテムをロードするステップと、
    前記第1のレジスタにおけるデータアイテムをシフトし、前記第1のレジスタにおける最初の位置からデータアイテムのうちの第1のデータアイテムを削除するステップと、
    前記第1のアイテムを前記第1のレジスタの最後の位置に挿入するステップと
    を含むステップと
    を含み、前記第1の命令の実行が、前記プロセッサの単一の実行サイクルで完了し、
    前記第1の命令が、ビデオデータにおいて動き推定を実行するための他の実行可能な命令と連携して実行可能である、
    方法。
  12. 第2のレジスタおよび第2のメモリ位置を識別する第2の命令を受信するステップと、
    前記第2の命令を、前記第1の命令の前記実行と並行して実行するステップであり、
    前記第2のメモリ位置から第2のアイテムをロードするステップと、
    前記第2のレジスタにおけるデータアイテムをシフトし、前記第2のレジスタにおける最初の位置からデータアイテムのうちの特定の第1のデータアイテムを削除するステップと、
    前記第2のアイテムを前記第2のレジスタの最後の位置に挿入するステップと
    を含むステップと
    をさらに含む請求項11に記載の方法。
  13. 乗算命令および加算命令を、前記第1の命令を実行するステップと並行して実行するステップをさらに含む請求項11に記載の方法。
  14. 絶対値差分和演算を、前記第1の命令を実行するステップと並行して実行するステップをさらに含む請求項11に記載の方法。
  15. 前記第1のレジスタが先入れ先出し(FIFO)バッファとして動作する、請求項11に記載の方法。
  16. 第1のレジスタおよび第1のメモリ位置を識別する第1の命令を記憶するための手段と、
    前記第1の命令を実行するための手段であり、
    前記第1のメモリ位置から第1のアイテムをロードするための手段と、
    前記第1のレジスタにおけるデータアイテムをシフトし、前記第1のレジスタにおける最初の位置からデータアイテムのうちの第1のデータアイテムを削除するための手段と、
    前記第1のアイテムを前記第1のレジスタの最後の位置に挿入するための手段と
    を備える手段と
    を備え、前記第1の命令の実行が、前記第1の命令を実行するための前記手段の単一の実行サイクルで完了し、
    前記第1の命令が、ビデオデータにおいて動き推定を実行するための他の実行可能な命令と連携して実行可能である、
    装置。
  17. 第2の命令を、前記第1の命令を実行することと並行して実行するための手段であり、前記第2の命令が第2のレジスタおよび第2のメモリ位置を識別する、手段をさらに備える請求項16に記載の装置。
  18. プロセッサによって実行されると、前記プロセッサに、
    第1のレジスタおよび第1のメモリ位置を識別する第1の命令を受信させ、
    前記第1の命令を実行させるプログラムコードであり、前記第1の命令を実行するステップが、
    前記第1のメモリ位置から第1のアイテムをロードするステップと、
    前記第1のレジスタにおけるデータアイテムをシフトし、前記第1のレジスタにおける最初の位置からデータアイテムのうちの第1のデータアイテムを削除するステップと、
    前記第1のアイテムを前記第1のレジスタの最後の位置に挿入するステップと
    を含み、
    前記第1の命令の実行が、前記プロセッサの単一の実行サイクルで完了し、
    前記第1の命令が、ビデオデータにおいて動き推定を実行するための他の実行可能な命令と連携して実行可能である、
    プログラムコードを記憶するコンピュータ可読媒体。
  19. 第1のアイテムの長さが1ワードである、請求項18に記載のコンピュータ可読媒体。
JP2014533457A 2011-09-30 2012-09-30 Fifoロード命令 Expired - Fee Related JP6022581B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/249,284 2011-09-30
US13/249,284 US9823928B2 (en) 2011-09-30 2011-09-30 FIFO load instruction
PCT/US2012/058181 WO2013049765A1 (en) 2011-09-30 2012-09-30 Fifo load instruction

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016104167A Division JP2016192212A (ja) 2011-09-30 2016-05-25 Fifoロード命令

Publications (2)

Publication Number Publication Date
JP2014532231A JP2014532231A (ja) 2014-12-04
JP6022581B2 true JP6022581B2 (ja) 2016-11-09

Family

ID=47146655

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014533457A Expired - Fee Related JP6022581B2 (ja) 2011-09-30 2012-09-30 Fifoロード命令
JP2016104167A Pending JP2016192212A (ja) 2011-09-30 2016-05-25 Fifoロード命令

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016104167A Pending JP2016192212A (ja) 2011-09-30 2016-05-25 Fifoロード命令

Country Status (7)

Country Link
US (1) US9823928B2 (ja)
EP (1) EP2761434B1 (ja)
JP (2) JP6022581B2 (ja)
KR (1) KR101697548B1 (ja)
CN (1) CN103827818B (ja)
IN (1) IN2014CN01835A (ja)
WO (1) WO2013049765A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106210A1 (en) * 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
JP2016019708A (ja) 2014-07-16 2016-02-04 浜松ホトニクス株式会社 固体撮像装置、x線撮像システムおよび固体撮像装置駆動方法
CN104597805A (zh) * 2014-12-09 2015-05-06 北京临近空间飞艇技术开发有限公司 一种基于fifo实现循环移位寄存器的系统及方法
CN105892993B (zh) * 2016-03-28 2019-02-15 龙芯中科技术有限公司 基于提取插入操作的重组方法、装置及微处理器
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10733016B1 (en) 2019-04-26 2020-08-04 Google Llc Optimizing hardware FIFO instructions
US11010099B1 (en) * 2019-11-19 2021-05-18 Western Digital Technologies, Inc. Data storage device executing access commands based on leapfrog sort
US11237827B2 (en) 2019-11-26 2022-02-01 Advanced Micro Devices, Inc. Arithemetic logic unit register sequencing

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL136896C (ja) 1964-10-07
JPS625441A (ja) 1985-02-18 1987-01-12 Nec Corp 情報処理装置
US5781457A (en) * 1994-03-08 1998-07-14 Exponential Technology, Inc. Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU
JPH07295882A (ja) 1994-04-22 1995-11-10 Hitachi Ltd 情報処理装置、及び、情報処理システム
JPH0927030A (ja) 1995-07-12 1997-01-28 Fujitsu Ltd 画像処理装置
US5991531A (en) * 1997-02-24 1999-11-23 Samsung Electronics Co., Ltd. Scalable width vector processor architecture for efficient emulation
US6334176B1 (en) * 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
US6490673B1 (en) 1998-11-27 2002-12-03 Matsushita Electric Industrial Co., Ltd Processor, compiling apparatus, and compile program recorded on a recording medium
FI20010924A (fi) 2001-05-03 2002-11-04 Nokia Corp Mikroprosessorin muistinkäsittely
US7272622B2 (en) * 2001-10-29 2007-09-18 Intel Corporation Method and apparatus for parallel shift right merge of data
US7685212B2 (en) 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US6721866B2 (en) * 2001-12-21 2004-04-13 Intel Corporation Unaligned memory operands
US20110087859A1 (en) * 2002-02-04 2011-04-14 Mimar Tibet System cycle loading and storing of misaligned vector elements in a simd processor
US7376812B1 (en) * 2002-05-13 2008-05-20 Tensilica, Inc. Vector co-processor for configurable and extensible processor architecture
US7126991B1 (en) 2003-02-03 2006-10-24 Tibet MIMAR Method for programmable motion estimation in a SIMD processor
US7275147B2 (en) 2003-03-31 2007-09-25 Hitachi, Ltd. Method and apparatus for data alignment and parsing in SIMD computer architecture
GB2409059B (en) 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411978B (en) * 2004-03-10 2007-04-04 Advanced Risc Mach Ltd Inserting bits within a data word
US7475392B2 (en) * 2004-06-07 2009-01-06 International Business Machines Corporation SIMD code generation for loops with mixed data lengths
JP2006004042A (ja) * 2004-06-16 2006-01-05 Renesas Technology Corp データ処理装置
US7315937B2 (en) * 2004-10-01 2008-01-01 Mips Technologies, Inc. Microprocessor instructions for efficient bit stream extractions
US20070052557A1 (en) * 2005-09-02 2007-03-08 Thomas Magdeburger Shared memory and shared multiplier programmable digital-filter implementation
JP4987882B2 (ja) 2006-02-03 2012-07-25 ラッセル・エイチ・フィッシュ スレッドに最適化されたマルチプロセッサアーキテクチャ
US8984256B2 (en) 2006-02-03 2015-03-17 Russell Fish Thread optimized multiprocessor architecture
US7949701B2 (en) * 2006-08-02 2011-05-24 Qualcomm Incorporated Method and system to perform shifting and rounding operations within a microprocessor
US7624251B2 (en) * 2006-11-01 2009-11-24 Apple Inc. Instructions for efficiently accessing unaligned partial vectors
JP2008258762A (ja) 2007-04-02 2008-10-23 Toshiba Corp ディジタル信号受信装置
US8078834B2 (en) 2008-01-09 2011-12-13 Analog Devices, Inc. Processor architectures for enhanced computational capability
US8108653B2 (en) * 2008-01-09 2012-01-31 Analog Devices, Inc. Processor architectures for enhanced computational capability and low latency
US8145804B2 (en) * 2009-09-21 2012-03-27 Kabushiki Kaisha Toshiba Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor
US9137737B2 (en) 2011-08-29 2015-09-15 Qualcomm Incorporated Systems and methods for monitoring of background application events
JP5728623B2 (ja) * 2011-10-05 2015-06-03 クアルコム,インコーポレイテッド バックグラウンドアプリケーションイベントの管理のためのシステムおよび方法

Also Published As

Publication number Publication date
CN103827818B (zh) 2017-06-13
KR20140073553A (ko) 2014-06-16
WO2013049765A1 (en) 2013-04-04
JP2014532231A (ja) 2014-12-04
KR101697548B1 (ko) 2017-01-18
IN2014CN01835A (ja) 2015-09-04
CN103827818A (zh) 2014-05-28
US20130086360A1 (en) 2013-04-04
EP2761434B1 (en) 2017-06-14
JP2016192212A (ja) 2016-11-10
US9823928B2 (en) 2017-11-21
EP2761434A1 (en) 2014-08-06

Similar Documents

Publication Publication Date Title
JP6022581B2 (ja) Fifoロード命令
US8601239B2 (en) Extended register addressing using prefix instruction
US8051226B2 (en) Circular buffer support in a single instruction multiple data (SIMD) data processor
JP6511462B2 (ja) 浮動小数点レジスタエイリアシングのためのプロセッサ及び方法
TWI408600B (zh) 具有內部位元先進先出電路之計算單元
US20170139713A1 (en) Vector store instruction having instruction-specified byte count to be stored supporting big and little endian processing
US8843730B2 (en) Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination
CN107873091B (zh) 用于滑动窗口运算的方法和设备
US8874884B2 (en) Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
EP2972786B1 (en) Add-compare-select instruction
US20130042091A1 (en) BIT Splitting Instruction
CN107636611B (zh) 用于临时加载指令的系统、设备和方法
KR20190056365A (ko) 인접 메모리 어드레스에서의 데이터 저장
US20120117360A1 (en) Dedicated instructions for variable length code insertion by a digital signal processor (dsp)

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160525

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160608

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: 20160905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161005

R150 Certificate of patent or registration of utility model

Ref document number: 6022581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees