JP2011086298A - プログラム・フロー制御 - Google Patents

プログラム・フロー制御 Download PDF

Info

Publication number
JP2011086298A
JP2011086298A JP2010233680A JP2010233680A JP2011086298A JP 2011086298 A JP2011086298 A JP 2011086298A JP 2010233680 A JP2010233680 A JP 2010233680A JP 2010233680 A JP2010233680 A JP 2010233680A JP 2011086298 A JP2011086298 A JP 2011086298A
Authority
JP
Japan
Prior art keywords
flow control
program instruction
program
instruction
target
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.)
Granted
Application number
JP2010233680A
Other languages
English (en)
Other versions
JP5611756B2 (ja
Inventor
Merlijn Aurich
メルリン・アウリッヒ
Jef Verdonck
ジェフ・ヴェルドンク
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2011086298A publication Critical patent/JP2011086298A/ja
Application granted granted Critical
Publication of JP5611756B2 publication Critical patent/JP5611756B2/ja
Active 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

【課題】データ処理システム内のプログラム・フローを制御する。
【解決手段】データ処理装置は、デコードされたプログラム命令によって指定されるデータ処理動作を行うように処理回路20を制御するために、1つ又は複数の制御信号24を生成するための命令デコーダ18を有する、データ・エンジン6を含む。命令デコーダ18は、マーカ命令に応答して、フロー制御レジスタ38からプログラム可能なフロー制御値を読み出す。プログラム可能なフロー制御値は、現在のプログラム命令列の実行の完了時にとられるべきアクションを指定する。とられるアクションは、対象プログラム命令列の開始時に対象プログラム命令にジャンプすることであってもよく、又は、新しい処理タスクが開始されるのを待つアイドル状態に入ることであってもよい。
【選択図】図2

Description

本発明は、データ処理システムの分野に関する。より詳細には、本発明は、データ処理システム内のプログラム・フローの制御に関する。
プログラム命令によって指定されるデータ処理動作を行うように処理回路を制御することができる1つ又は複数の制御信号を生成するために、プログラム命令に応答する命令デコーダ回路を有する、データ処理システムを提供することが公知である。プログラムを系統立てるのに便利な方法は、それらを、必要に応じて呼ぶことができるルーチン又は機能に分割することである。例として、データ値を設定したときのフーリエ変換の計算のような機能を果たすために、コードが書き込まれコンパイルされてもよい。この機能は、プログラム・フロー内の多数の異なるポイントから呼ばれてもよい。プログラム命令を実行するための1つよりも多いハードウェア・セットを含むシステムにおいて、1つのハードウェア・セットが1つの命令セットを実行し、その一方で、別のハードウェア・セットが別の命令セットを実行することも可能である。この環境内で、1つのハードウェア・セットは、別のハードウェア・セットによって実行されるフーリエ変換のような機能を呼び出すことができる。こうした環境内で、特定の機能を実行するための特殊化されたハードウェアを形成することが可能である。
特定の機能を実行するための特殊用途ハードウェアの例は、データ・エンジンである。データ・エンジンは、例えば、メディア処理のような計算が集中するタスクを実行するために提供される場合がある。データ・エンジンは、典型的に、データ・エンジンと関連付けられたタスクを効率的に実行するように設計された特殊用途ハードウェアを含む。こうしたデータ・エンジンは、データ・エンジンによって実行されるべきタスクをスケジュールする汎用プロセッサと組み合わせて動作することができる。幾つかの場合において、データ・エンジンは、データ・エンジン上で実行されるスケジューリング・プログラムを用いて、データ・エンジンによる実行についてのそれ独自のタスクを自身でスケジュールすることが可能である。
特定の機能を実行するためのプログラムの開発及びテストには、高い費用と時間がかかる。プログラムは、少量のメモリ・ストレージを要求するものであることが望ましい。
1つの態様から見ると、本発明は、
プログラム命令に応答して1つ又は複数の制御信号を生成する命令デコーダ回路と、
前記1つ又は複数の制御信号に応答して前記プログラム命令によって指定されたデータ処理動作を実行する処理回路と、
プログラム可能なフロー制御値を格納するように構成されたフロー制御レジスタと、
を備え、
前記命令デコーダ回路が、実行されている現在のプログラム命令列の終わりを表すマーカ命令に応答して、前記フロー制御レジスタから前記プログラム可能なフロー制御値を読み出し、前記プログラム可能なフロー制御値に従って前記1つ又は複数の制御信号を生成して、前記現在のプログラム命令列の完了後に、
(i)対象プログラム命令から始まる対象プログラム命令列を処理すること、
(ii)新しい処理タスクが開始されるのを待つアイドル状態に入ること、
のうちの1つをトリガする、データを処理する装置を提供する。
本技術は、実行されている現在のプログラム命令列が、どのようにしてそれが呼び出されたかに応じて現在のプログラム命令列の実行の完了時に適切な異なる挙動を有する、異なる機構を介して呼び出されてもよいことを識別する。どのようにしてそれが呼び出されたかに応じて現在のプログラム命令列の異なるバージョンを提供する代わりに、本技術は、フロー制御レジスタ内に格納されたプログラム・フロー制御値を用いて、現在のプログラム命令列が実行を完了したときにどんな挙動が起こるべきかを判定する。したがって、現在のプログラム命令列は、異なる形態に修正され又は提供される必要はなく、それにもかかわらず、完了時に異なる挙動のトリガをサポートすることができる。より具体的には、完了時にサポートすることが望ましい異なる挙動は、対象プログラム命令から始まる対象プログラム命令列の処理をトリガすること、又は、アイドル状態に入ること、例えば新しい処理タスクが開始されるのを待つことである。これらの挙動は、現在のプログラム命令列が、現在のプログラム命令列を実行するのと同じ機構上で実行される対象スケジューリング・プログラムから呼び出されるシステムをサポートするとともに、現在のプログラム命令列が、現在のプログラム命令列を実行するのとは別の機構から呼び出され、現在のプログラム命令列が完了したときにアイドル状態に入るようにされる機構もサポートする。
プログラム可能なフロー制御値の幾つかの値について実行される対象プログラム命令は、固定位置(例えばハードウェア組み込みベクトル)に固定された対象プログラム命令であってもよい。しかしながら、プログラム可能なフロー制御値がプログラム命令のメモリ・アドレスを指定するときに、より大きい融通性が達成される。したがって、対象プログラム命令は、プログラム可能なフロー制御値に設定された値に応じて変化することができる。
プログラム可能なフロー制御値は、プログラム可能なフロー制御値が対象プログラム命令のメモリ・アドレスを指定する対象アドレス・フィールドを含むかどうか、或いは代替的に、現在のプログラム命令列の実行が完了したときにアイドル状態に入るべきであることを指定する値を格納している、ジャンプ有効化フィールドを含んでもよい。ジャンプ有効化ビットであってもよい、このジャンプ有効化フィールドは、現在のプログラム命令列の完了時に代替的挙動間を切り換えるように働く。
命令デコーダがそれに応答して代替的なルーチン終了時の挙動をトリガするマーカ命令は、現在のプログラム命令列の最後のプログラム命令を識別するプログラム終了命令とすることができる。このプログラム終了命令は、シーケンス内の最後の命令であってもよく、又は、現在のプログラム命令列の最後の命令の前に所定の数の命令が配置されてもよい。後者の挙動は、現在のプログラム命令列がパイプライン化された実行機構上で実行されるときに有用であり、対象プログラム命令列への分岐が要求される場合に、これが現在のプログラム命令列の最後の命令より十分前の時間において、対象プログラム命令がフェッチされて後続の実行が開始されることを識別でき得ることを保証することによって、パイプラインの効果的な使用を促進させる。
その実行が1つの挙動においてトリガされてもよい対象プログラム命令列は、種々の異なる形態をとることができる。例として、多くの機能を、次の機能の開始をトリガするように働く1つの機能の終わりと結びつけることが可能である。代替的機構では、対象プログラム命令列は、タスク・スケジューリングを制御するための対象スケジューリング・プログラムであり、現在のプログラム命令列を実行するのと同じ機構によって実行される、すなわち、この機構は、対象スケジューリング・プログラムを使用して、それ独自のタスクをスケジュールする。
上記の技術を使用する装置は、様々な異なる形態を有してもよく、様々な異なる多重処理環境に適用可能である。しかしながら、この技術が良く適している1つの環境は、装置がデータ・エンジン及び命令デコーダ回路に結合されたホスト・プロセッサを備えるとき、処理回路及びフロー制御レジスタがデータ・エンジンの一部である。
この環境内で、対象スケジューリング・プログラムは、データ・エンジンによって実行されてもよく、現在のプログラム命令列は、ホスト・プロセッサ又は対象スケジューリング・プログラムのいずれかによって呼び出されてもよい。フロー制御レジスタを用いて現在のプログラム命令列の完了時の挙動を制御することにより、どのようにしてそれが呼び出されるか、及び、現在のプログラム命令列の完了時にそれがどれだけ適切に挙動するかとは無関係に、同じ現在のプログラム命令列が用いられることが可能となる。
ホスト・プロセッサはまた、データ・エンジンによる実行についての現在のプログラム命令列を呼び出すために、ホスト・スケジューリング・プログラムを使用してもよい。
幾つかの実施形態において、対象スケジューリング・プログラムが現在のプログラム命令列を呼び出すときに、現在のプログラム命令列の完了後に対象スケジューリング・プログラムの実行に戻ることをトリガされ、スケジューリング後のプログラムが現在のプログラム命令列を呼び出すときに、現在のプログラム命令列の完了後にデータ・エンジンがアイドル状態に入ることをトリガされるように、フロー制御値がプログラムされてもよい。
プログラム可能なフロー制御値は、データ・エンジン内でデコードされ実行されるロード・プログラム命令に応答してロードされてもよい。
ロード・プログラム命令は、ジャンプ有効化フィールドが、プログラム可能なフロー制御値が現在のプログラム命令列の完了時の実行についてトリガされるべき対象プログラム命令のメモリ・アドレスを指定する対象アドレス・フィールドを含むことを指定する値にされる1つの形態、ならびに、ジャンプ有効化フィールドが、現在のプログラム命令列の実行が完了したときに前述の挙動又は強制的にアイドル状態に入ることのいずれかを与える値に設定される第2の形態を有することができる。第1の形態は必ずしも存在する必要はない。
別の態様から見ると、本発明は、プログラム命令に応答して1つ又は複数の制御信号を生成する命令デコーダ手段回路と、
前記1つ又は複数の制御信号に応答して前記プログラム命令によって指定されたデータ処理動作を実行する処理手段と、
プログラム可能なフロー制御値を格納するフロー制御レジスタ手段と、
を備え、
前記命令デコーダ手段が、実行されている現在のプログラム命令列の終わりを表すマーカ命令に応答して、前記フロー制御レジスタ手段から前記プログラム可能なフロー制御値を読み出し、前記プログラム可能なフロー制御値に従って前記1つ又は複数の制御信号を生成して、前記現在のプログラム命令列の完了後に、
(i)対象プログラム命令から始まる対象プログラム命令列を処理すること、
(ii)新しい処理タスクが開始されるのを待つアイドル状態に入ること、
のうちの1つをトリガする、データを処理する装置を提供する。
さらなる態様から見ると、本発明は、プログラム命令に応答して、1つ又は複数の制御信号を生成するステップと、
前記1つ又は複数の制御信号に応答して、前記プログラム命令によって指定されるデータ処理動作を実行するステップと、
プログラム可能なフロー制御値を格納するステップと、
を含むデータを処理する方法であって、
実行されている現在のプログラム命令列の終わりを表すマーカ命令に応答して、前記プログラム可能なフロー制御値を読み出し、前記プログラム可能なフロー制御値に従って前記1つ又は複数の制御信号を生成して、前記現在のプログラム命令列の完了後に、
(i)対象プログラム命令から始まる対象プログラム命令列を処理すること、
(ii)新しい処理タスクが開始されるのを待つアイドル状態に入ること、
のうちの1つをトリガする、方法を提供する。
本発明の上記の及び他の目的、特徴及び利点は、添付の図面と組み合わせて読まれるべき例示的な実施形態の以下の詳細な説明から明らかとなるであろう。
ホスト・プロセッサ及びデータ・エンジンを含むシステム・オン・チップ集積回路を概略的に示す図である。 図1のデータ・エンジン内で用いられるプログラム・フロー制御機構を概略的に示す図である。 プログラム可能なフロー制御値を格納するフロー制御レジスタを概略的に示す図である。 それぞれプログラム命令を格納するホスト・プロセッサ・メモリ及びデータ・エンジン・メモリを概略的に示す図である。 データ・エンジンによって実行され、プログラム終了命令の形態のマーカ命令を含む、現在のプログラム命令列を概略的に示す図である。 ホスト・プロセッサがデータ・エンジンにおける機能の実行を呼び出すときの動作フローを概略的に示す図である。 データ・エンジン上で実行される対象スケジューラによる機能スケジューリングを概略的に示す流れ図である。
図1は、システム・バス8を介して接続されたホスト・プロセッサ4及びデータ・エンジン6を含むシステム・オン・チップ集積回路2を概略的に示す。ホスト・プロセッサ4は、プロセッサ・コア10、ホスト・メモリ12及びシステム・インターフェース14を含む。データ・エンジン6は、命令デコーダ18及び処理回路20を含んでいる処理コア16を含む。命令密結合メモリ22は、処理回路20を制御する制御信号24を生成するために命令デコーダ18によってデコードするためのプログラム命令列を格納する。データ密結合メモリ26は、命令デコーダ18によってデコードされるときの命令密結合メモリ22からのプログラム命令の制御の下で処理回路20によって取り扱われる、入力及び出力データ値を格納する。システム・インターフェース28が、データ・エンジン6をシステム・バス8に結合する。直接メモリ・アクセス・ユニット30は、ホスト・プロセッサ4が、アービタ32及び34を介して、命令密結合メモリ22及びデータ密結合メモリ26からデータ値を読み出し、かつここにデータ値を書き込むことを可能にする。
動作中に、ホスト・プロセッサ4は、典型的に、ホスト・メモリ12内に格納されたプログラム命令によって指示されるように、制御及び他のハイレベルな処理機能を実行する。ホスト・メモリ12内に格納されたプログラム命令は、データ・エンジン6上の処理動作を呼び出すように働くホスト・スケジューリング・プログラムを含むことができる。データ・エンジン6は、典型的に、メディア処理、圧縮、暗号解読等のような、より低いレベルの計算集約型の処理動作を行う。
データ・エンジン6上での実行のために呼び出された機能(現在のプログラム命令列)の通常動作は、この現在のプログラム命令列が、その終わりにプログラム終了(EOP)命令(マーカ命令)に直面するまで実行され、データ・エンジン6はそれらの上で次のタスクが呼び出されるのを待つアイドル状態に入ることである。データ・エンジン6は、命令密結合メモリ22内に格納される対象スケジューリング・プログラムの形態のそれ独自のスケジューリング機構を含むことも可能である。この対象スケジューリング・プログラムは、データ・エンジン6上で実行されるべき機能を呼び出して、データ・エンジンが「自己スケジュール化」することを可能にする。データ・エンジン6自身によって実行される、対象スケジューリング・プログラムによってデータ・エンジン6上で呼び出された機能の実行の終了時に、プログラム・フローは、ホスト・プロセッサ4から呼び出された機能についての場合と同様にデータ・エンジン6がアイドル状態に入るのではなく、対象スケジューリング・プログラム又は少なくとも別のプログラム(例えば結びつけられた機能)に戻ることができる。
呼び出された機能を実行する現在のプログラム命令列は、ホスト・プロセッサ4から呼び出された機能とデータ・エンジン6から呼び出された機能との両方について共有されるライブラリからとられる共通のプログラミング命令列であってもよい。これは、ホスト・プロセッサ4とデータ・エンジン6のどちらがそれらの実行を呼び出しているかに従って、用いられるべき現在のプログラム命令列(ライブラリ機能)の別個の形態を提供する必要性をなくすためである。これは、コーディングの労力とプログラム・ストレージ・リソースを節約する。それにもかかわらず、呼び出された機能の完了時に異なるアクションがトリガされる必要がある。この異なる挙動は、データ・エンジン6内のフロー制御レジスタ36を用いて制御される。
フロー制御レジスタ36は、実行されている現在のプログラム命令列内のプログラム終了命令(マーカ命令)に直面するときに、命令デコーダ18によって読み出されるプログラム可能なフロー制御値を格納する。プログラム可能なフロー制御値は、現在のプログラム命令列が実行を完了するときにどのタイプの挙動がトリガされるべきかを指定する。トリガされる1つのタイプの挙動は、実行が完了するときにデータ・エンジン6をアイドル状態(低電力状態)におくことである。プログラム可能なフロー制御値の異なる値は、現在のプログラム命令列の実行の完了時に、プログラム可能なフロー制御値内の対象アドレスによって指定される対象プログラム命令へのジャンプをトリガするように働く。この対象アドレス及び対象プログラム命令は、データ・エンジン6が「自己スケジューリング」するときに、データ・エンジン6の対象スケジューリング・プログラム内にあってもよい。したがって、現在のプログラム命令列の完了時に、制御は対象スケジューリング・プログラムに戻される。プログラム可能なプログラム制御値は、現在のプログラム命令列と結びつけられた別の機能へのジャンプに対応するアドレスを格納することも可能である。
図2は、データ・エンジン6内のプログラム・フロー制御機構38を概略的に示す。プログラム・カウンタ・レジスタ40が、命令密結合メモリ22内にメモリ・アドレスを格納し、そこから、命令デコーダ18によってデコードされるべき次の命令がフェッチされる。命令デコーダ18は、デコードされたプログラム命令からのプログラム・フローを制御するための制御信号(1つ又は複数の制御信号)24を生成する。並列処理要素(例えば、ALU、AGU等)におけるデコーダによって生成された他の制御信号は、処理回路20を制御して、デコードされたプログラム命令に対応するデータ処理動作を実行させるように働く。処理動作は、データ・エンジン6に必須の処理の性質に応じて、ロード、格納、シフト等のような単純なもの、又は、乗算、積和演算、フィルタ演算等のようなより複雑な動作であってもよい。
制御フロー状態マシン42によって、プログラム・カウンタ・レジスタ40に、プログラム・カウンタ値がロードされる。制御フロー状態マシン42は、プログラム・カウンタ・レジスタ40に、様々な異なるソースからとられたプログラム・カウンタ値をロードすることができる。現在のプログラム命令列が順次に実行されているときに、フィードバック・パス44及び制御フロー状態マシン42内の増分回路が、プログラム・カウンタ値を着実に増分し、実行されている現在のプログラム命令列のステップを進めるように働く。現在のプログラム命令列内の制御フロー命令が命令デコーダ18によってデコードされるときに(例えば分岐命令)、これらの制御フロー命令の対象アドレスが、制御フロー命令パス46を介して制御フロー状態マシン42に供給され、プログラム・カウンタ・レジスタ40にロードされて、実行ポイントにおけるジャンプを実行するようにされる。
フロー制御レジスタ36はまた、制御フロー状態マシン42への入力を提供する。フロー制御レジスタ36は、ジャンプ有効化フラグ48と次のタスク・アドレス50とから形成されたプログラム可能なフロー制御値を格納する。これは、現在のプログラム命令列内でプログラム終了(EOP)命令に直面するときに、制御フロー命令パス46上の信号によって制御フロー状態マシン42に送られてもよい。プログラムの終了命令は、フロー制御レジスタ36からプログラム可能なフロー制御値を読み出すように制御フロー状態マシン42を制御する。ジャンプ有効化ビット48が設定されない場合、制御フロー状態マシン42は、現在のプログラム命令列(例えば、プログラム終了命令のデコーディング後の所定の一定数の処理サイクル)の完了時に、データ・エンジン6がアイドル状態に入るようにトリガする。この挙動は、ホスト・プロセッサ4が現在のプログラム命令列の実行を呼び出したときの要件に対応する。
ジャンプ有効化フラグ48が設定される場合、プログラム終了命令に直面すると、制御フロー状態マシン42は、次のタスク・アドレス50(命令密結合メモリ22内の対象プログラム命令のメモリ・アドレス)を読み出し、(パイプラインの深さに匹敵する遅延を伴って)プログラム・カウンタ・レジスタ40にロードされるべき対象プログラム命令のメモリ・アドレスをトリガし、それにより、現在のプログラム命令列の完了時に、対象プログラム命令がフェッチされ実行される。
この例において、ジャンプ有効化フラグ48はシングル・ビットである。より一般的には、ジャンプ有効化フラグは、1又は複数のビットを含むことができるジャンプ有効化フィールドであると考えられてもよい。
2つの異なる形態を有することができるロード命令によって、フロー制御レジスタ36に、プログラム可能なフロー制御値48、50がロードされる。第1の形態のincr_Idsetにおいて、ジャンプ・フラグ48が強制的に設定値(「1」)にされ、対象プログラム命令のメモリがプログラム可能なフロー制御値36の次のタスク・アドレス50部分にロードされる。第2形態のロード命令incr_Idは、ジャンプ有効化フラグが強制的に設定値にされず、その代わりに設定値又は非設定値のいずれかとして指定されてもよいこと以外は、同様の方法で作用する。ロード命令に応答してフロー制御レジスタ36にロードされる、これらのプログラム可能なフロー制御値は、マルチプレクサ52及びロード命令を実行するデータ・エンジン6内からの内部データ・パス54を介して、フロー制御レジスタ36に供給される。ホスト・プロセッサ4によって処理が呼び出されるときに、フロー制御レジスタ36内のプログラム可能なフロー制御値は、マルチプレクサ52及び、ホスト・プロセッサ44によって設定されるプログラム可能なフロー制御値がデータ・エンジン6のフロー制御機構38にロードされる、外部タスク・アドレス・パス56を介して、ロードされてもよい。
図3は、フロー制御レジスタ36を概略的に示す。フロー制御レジスタ36は、次のタスク・アドレス50とジャンプ有効化フラグ48を格納する。第1の形態のロード命令incr_Idsetは、次のタスク・アドレス・フィールド50に対象アドレスをロードし、ジャンプ有効化フラグ48を強制的に値「1」にして、現在のプログラム命令列の完了時にデータ・エンジン6内のプログラム・フローを強制的にジャンプさせる。第2形態のロード命令incr_Idはまた、対象アドレスを次のタスク・アドレス・フィールド50にロードするが、この場合、設定値又は非設定値のいずれか一方がジャンプ有効化フラグ48にロードされることを可能にする。
図4は、ホスト・メモリ12内に格納されたプログラムと、命令密結合メモリ22を概略的に示す。ホスト・メモリ12は、データ・エンジン6上での呼び出し機能のアクションとは関係のないデータ処理動作を実行するためのホスト汎用プログラム58を格納することができる。ホスト・メモリ12はまた、データ・エンジン6による実行のための機能をスケジュールするように働くホスト・スケジューリング・プログラム60を格納する。
データ・エンジン6による実行のためにスケジュール化される機能は、命令密結合メモリ22内に格納されるプログラム命令列62、64に対応する。これらのプログラム命令列62、64の各々は、それらが実行されているときに及びそれらの完了の前に、上記に述べたように現在のプログラム命令列に対応する。命令密結合メモリ22は、典型的に、機能ライブラリの形態の多くのこれらの機能を格納することになり、その各々は、データ・エンジン6が所望の機能に対応する処理動作を実行するのを制御するためのプログラム命令列に対応する。同じく命令密結合メモリ22内に格納されるのは、データ・エンジン6によって実行されるプログラム命令列がデータ・エンジン6自身によって呼び出されるときに、「自己スケジューリング」のためにデータ・エンジン6によって用いられてもよい対象スケジューリング・プログラム66である。
図4の左側には、実行を呼び出しているホスト・プロセッサ4によってホスト・スケジューリング・プログラム60が実行されるときの、それぞれのプログラム命令列62、64の呼び出しが示されている。このようにして呼び出されたプログラム命令列が完了するときに、ポイント「DEアイドル」にリンクする線によって図示されるように、データ命令はアイドル状態におかれる。データ・エンジン6によって実行される対象スケジューリング・プログラム66はまた、それが開始されるときに、ホスト・スケジューリング・プログラム60から呼び出される。その後、対象スケジューリング・プログラム66は、対象スケジューリング・プログラム66自身が完了するまで、「自己スケジューリング」ベースで、データ・エンジン6による実行のためのプログラム命令列62、64をスケジュールするように働く。
呼び出されたプログラム命令列62、64は、組み込み関数(intrinsic)のライブラリ内に提供された組み込み関数の形態であってもよい。こうした組み込み関数は、典型的に、所望の組み込み関数へのポインタ、例えばcall[intrinsic0_pointer]、であるオペランドを有するコール命令を用いて呼び出される。
図示された、命令密結合メモリ22の右側には、データ・エンジン6上で実行される対象スケジューリング・プログラムによる異なるプログラム命令列62、64の呼び出しを示す線が示されている。各々のこれらのプログラム命令列62、64が完了するときに、対象スケジューリング・プログラム66にプログラム実行ポイントの復帰が行われて、そのスケジューリング動作を続けることができるようにされる。
図5は、実行される現在のプログラム命令列62を概略的に示す。この現在のプログラム命令列は、データ・エンジン6によって順に実行される命令I0、I1等を含む。より詳細には、命令デコーダ18が、これらの命令I0、I1等をデコードし、1つ又は複数の対応する制御信号24を生成し、制御信号24が、処理回路20を制御して指定された処理動作を実行する。現在のプログラム命令列62内の最後の命令からの所定の数の命令には、プログラム終了命令EOPの形態のマーカ命令が配置されている。このプログラム終了命令は、次の3つのプログラム命令I+2、I+3、及びI+4が実行された後で、データ・エンジン6が、例えば2つのタイプのさらなるアクションのうちの1つをトリガすることができることを示す。第1のタイプのアクションは、対象スケジューリング・プログラム66を実行するために、したがってデータ・エンジン6内で続いている実行により分岐することである。フロー制御レジスタ36から読み出されるプログラム可能なフロー制御値は、対象スケジューリング・プログラム66内にジャンプするべき対象プログラム命令のアドレスを指定する。トリガすることができる第2の一連のアクションは、データ・エンジンがアイドル状態に入ることである。このアイドル状態に入ることは、プログラム可能なフロー制御値内のジャンプ有効化ビット48が設定されないときに起こる。
図6は、ホスト・プロセッサ4による、データ・エンジン6上で実行されるべき機能の呼び出しを示す。ホスト・プロセッサ4は、ホスト・スケジューリング・プログラム60を実行する。このホスト・スケジューリング・プログラム60は、データ・エンジン機能を呼び出し、データ・エンジン6による処理を開始する。この処理の呼び出しは、マルチプレクサ52及び図2に示された外部タスク・アドレス・パスを介して次のタスク・アドレス値をフロー制御レジスタ36にロードすることによって達成することができる。したがって、データ・エンジン6は、呼び出されるべき現在のプログラム命令列の開始アドレスを渡す。要求されるデータ・エンジン6上での処理を呼び出すと、ホスト・プロセッサ4は、さらにホスト処理を続け、呼び出されたデータ・エンジン6によるタスクの完了に応答するような方法で動作するように制御され(又はプログラムされ)てもよいし、されなくてもよい。
図6のデータ・エンジン側では、データ・エンジン6は、ホスト・プロセッサ4によって呼び出された機能が開始されるまではアイドルである。データ・エンジン6は、次いで、呼び出された機能を実行する。呼び出された機能に対応する現在のプログラム命令列の終わりに向けて、プログラム終了命令に直面し、プログラム終了命令が実行される。プログラム終了命令の実行の結果として、フロー制御レジスタ36内に格納されたプログラム可能なフロー制御値内にジャンプ有効化ビット48が設定されるかどうかの検出がなされる。データ・エンジン6によって実行されている機能はホスト・プロセッサ4によって呼び出されたので、データ・エンジン6は機能の実行の完了後にそのアイドル状態に入り、ジャンプ有効化ビット48は設定されないと予想される。したがって、ジャンプ有効化ビットが試みられ検出された後で、これは設定されないと判定され、データ・エンジン6はアイドル状態に入る。
図7は、データ・エンジン6自身によって実行される対象スケジューリング・プログラム66による、プログラム命令列62、64の実行のスケジューリングを概略的に示す流れ図である。ステップ68において、対象スケジューリング・プログラム66の実行が開始される。対象スケジューリング・プログラム66の実行は、それ自体が、図4に示されたようにホスト・スケジューリング・プログラム60によって呼び出されてもよい。
ステップ70において、対象スケジューリング・プログラム66は、呼び出されるデータ・エンジン機能が存在するまで待つ。データ・エンジン機能が呼び出される準備ができたときに、ステップ72は、該当するデータ・エンジン機能(現在のプログラム命令列)の実行を開始する。このデータ・エンジン機能の終わりに向けて、ステップ74でプログラム終了命令が実行される。ステップ76において、プログラム終了命令の実行が、フロー制御レジスタ36からのプログラム可能なフロー制御値の読み出しをトリガする。ステップ78は、ジャンプ有効化ビット48が設定されているかどうかを判定する。ジャンプ有効化ビットが設定されていない場合、ステップ80は、データ・エンジンをアイドル状態に切り換える。対象スケジューラ68は、「0」に設定されるジャンプ有効化ビット48の値を有するフロー制御値36へのロードを実行して、次のプログラム命令列62、64の完了時にデータ・エンジン6がアイドル状態に入るようにすることができる。しかしながら、対象スケジューリング・プログラム66が現在のプログラム命令列66、64の完了後にアクティブであり続けて、制御を復帰する場合、ジャンプ有効化ビットが設定され、ステップ78における判定の後で処理がステップ82に進み、そこで、次のタスク・アドレス・フィールド58内の指定された対象アドレスへのジャンプが実行される。図示された例において、このジャンプは、対象スケジューリング・プログラム66及びステップ70に戻り、そこで、対象スケジューリング・プログラム66は次にデータ・エンジン機能が呼び出されるのを待つ。機能を互いに結びつけ、ステップ82において実行されるジャンプを別の機能の開始にジャンプさせることも可能である。
本発明の例示的な実施形態が、添付の図面を参照しながら本明細書において詳細に説明されたが、本発明はこれらの厳密な実施形態に限定されず、当業者であれば、付属の請求項によって定められる本発明の範囲及び思想から逸脱することなく、そこに種々の変更及び修正を加えることができることを理解されたい。
2 システム・オン・チップ集積回路
4 ホスト・プロセッサ
6 データ・エンジン
8 システム・バス
10 プロセッサ・コア
12 ホスト・メモリ
14 システム・インターフェース
16 処理コア
18 命令デコーダ
20 処理回路
22 命令密結合メモリ
24 制御信号
26 データ密結合メモリ
28 システム・インターフェース
30 直接メモリ・アクセス・ユニット
32、34 アービタ
36 フロー制御レジスタ
38 プログラム・フロー制御機構
40 プログラム・カウンタ・レジスタ
42 制御フロー状態マシン
44 フィードバック・パス
46 制御フロー命令パス
48 ジャンプ有効化フラグ
50 次のタスク・アドレス
52 マルチプレクサ
54 内部データ・パス
56 外部タスク・アドレス・パス
58 ホスト汎用プログラム
60 ホスト・スケジューリング・プログラム
62、64 プログラム命令列
66 対象スケジューリング・プログラム

Claims (14)

  1. データを処理する装置であって、
    プログラム命令に応答して1つ又は複数の制御信号を生成する命令デコーダ回路と、
    前記1つ又は複数の制御信号に応答して前記プログラム命令によって指定されたデータ処理動作を実行する処理回路と、
    プログラム可能なフロー制御値を格納するように構成されたフロー制御レジスタと、
    を備え、
    前記命令デコーダ回路が、実行されている現在のプログラム命令列の終わりを表すマーカ命令に応答して、前記フロー制御レジスタから前記プログラム可能なフロー制御値を読み出し、前記プログラム可能なフロー制御値に従って前記1つ又は複数の制御信号を生成して、前記現在のプログラム命令列の完了後に、
    (i)対象プログラム命令から始まる対象プログラム命令列を処理すること、
    (ii)新しい処理タスクが開始されるのを待つアイドル状態に入ること、
    のうちの1つをトリガする、装置。
  2. 前記プログラム可能なフロー制御値が、前記対象プログラム命令のメモリ・アドレスを指定する、請求項1に記載の装置。
  3. 前記プログラム可能なフロー制御値が、
    (i)前記プログラム可能なフロー制御値が、前記対象プログラム命令の前記メモリ・アドレスを指定する対象アドレス・フィールドを含むこと、
    (ii)前記現在のプログラム命令列の実行が完了したときに前記アイドル状態に入ること、
    のうちの1つを指定する値を格納するジャンプ有効化フィールドを含む、請求項1に記載の装置。
  4. 前記ジャンプ有効化フィールドがジャンプ有効化ビットである、請求項3に記載の装置。
  5. 前記マーカ命令が、前記現在のプログラム命令列の最後のプログラム命令を識別するプログラム終了命令である、請求項1に記載の装置。
  6. 前記対象プログラム命令列が、タスク・スケジューリングを制御するための対象スケジューリング・プログラムである、請求項1に記載の装置。
  7. 前記装置が、データ・エンジン及び前記命令デコーダ回路に結合されたホスト・プロセッサを備え、前記処理回路及び前記フロー制御レジスタが前記データ・エンジンの一部である、請求項1に記載の装置。
  8. 前記対象スケジューリング・プログラムが前記データ・エンジンによって実行され、前記現在のプログラム命令列が前記ホスト・プロセッサ及び前記対象スケジューリング・プログラムのうちの1つによって実行のために呼び出される、請求項6に記載の装置。
  9. 前記ホスト・プロセッサが、前記ホスト・プロセッサによって実行されるホスト・スケジューリング・プログラムを用いて前記現在のプログラム命令列を呼び出す、請求項8に記載の装置。
  10. (i)前記対象スケジューリング・プログラムが前記現在のプログラム命令列を呼び出すときに、前記プログラム可能なフロー制御値が、前記現在のプログラム命令列の完了後に前記対象スケジューリング・プログラムの実行に戻ることをトリガする値にプログラムされ、
    (ii)前記ホスト・スケジューリング・プログラムが前記現在のプログラム命令列を呼び出すときに、前記プログラム可能なフロー制御値が、前記現在のプログラム命令列の完了後に前記データ・エンジンが前記アイドル状態に入ることをトリガする値にプログラムされる、
    請求項9に記載の装置。
  11. 前記プログラム可能なフロー制御値が、前記命令デコーダ回路によって前記データ・エンジンでデコードされたロード・プログラム命令に応答して、前記フロー制御レジスタに格納される、請求項7に記載の装置。
  12. 前記命令デコーダ回路が、
    (i)前記ジャンプ有効化フィールドが、前記プログラム可能なフロー制御値が前記対象プログラム命令の前記メモリ・アドレスを指定する対象アドレス・フィールドを含むことを指定する値にされる、第1形態の前記ロード・プログラム命令と、
    (ii)前記ジャンプ有効化フィールドが、前記プログラム可能なフロー制御値が前記対象プログラム命令の前記メモリ・アドレスを指定する対象アドレス・フィールドを含むことを指定する値、及び、前記現在のプログラム命令列の実行が完了したときに前記アイドル状態に入ることを指定する値のうちの1つである、第2形態の前記ロード・プログラム命令と、
    に応答する、請求項3に記載の装置。
  13. データを処理する装置であって、
    プログラム命令に応答して1つ又は複数の制御信号を生成する命令デコーダ手段回路と、
    前記1つ又は複数の制御信号に応答して前記プログラム命令によって指定されたデータ処理動作を実行する処理手段と、
    プログラム可能なフロー制御値を格納するフロー制御レジスタ手段と、
    を備え、
    前記命令デコーダ手段が、実行されている現在のプログラム命令列の終わりを表すマーカ命令に応答して、前記フロー制御レジスタ手段から前記プログラム可能なフロー制御値を読み出し、前記プログラム可能なフロー制御値に従って前記1つ又は複数の制御信号を生成して、前記現在のプログラム命令列の完了後に、
    (i)対象プログラム命令から始まる対象プログラム命令列を処理すること、
    (ii)新しい処理タスクが開始されるのを待つアイドル状態に入ること、
    のうちの1つをトリガする、装置。
  14. プログラム命令に応答して、1つ又は複数の制御信号を生成するステップと、
    前記1つ又は複数の制御信号に応答して、前記プログラム命令によって指定されるデータ処理動作を実行するステップと、
    プログラム可能なフロー制御値を格納するステップと、
    を含むデータを処理する方法であって、
    実行されている現在のプログラム命令列の終わりを表すマーカ命令に応答して、前記プログラム可能なフロー制御値を読み出し、前記プログラム可能なフロー制御値に従って前記1つ又は複数の制御信号を生成して、前記現在のプログラム命令列の完了後に、
    (i)対象プログラム命令から始まる対象プログラム命令列を処理すること、
    (ii)新しい処理タスクが開始されるのを待つアイドル状態に入ること、
    のうちの1つをトリガする、方法。
JP2010233680A 2009-10-19 2010-10-18 プログラム・フロー制御 Active JP5611756B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0918297.3A GB2474521B (en) 2009-10-19 2009-10-19 Program flow control
GB0918297.3 2009-10-19

Publications (2)

Publication Number Publication Date
JP2011086298A true JP2011086298A (ja) 2011-04-28
JP5611756B2 JP5611756B2 (ja) 2014-10-22

Family

ID=41462573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010233680A Active JP5611756B2 (ja) 2009-10-19 2010-10-18 プログラム・フロー制御

Country Status (4)

Country Link
US (1) US8589664B2 (ja)
JP (1) JP5611756B2 (ja)
CN (1) CN102063286B (ja)
GB (1) GB2474521B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012010102A1 (de) * 2012-05-22 2013-11-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Datenverarbeitung
US9523905B2 (en) 2012-08-06 2016-12-20 Intel Corporation Projection device and a method of manufacturing a projection device
US9880842B2 (en) * 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
US9928076B2 (en) * 2014-09-26 2018-03-27 Intel Corporation Method and apparatus for unstructured control flow for SIMD execution engine
US9766892B2 (en) * 2014-12-23 2017-09-19 Intel Corporation Method and apparatus for efficient execution of nested branches on a graphics processor unit
RU2634172C1 (ru) * 2016-06-02 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ передачи управления между адресными пространствами
GB2551548B (en) * 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction
GB2564144B (en) 2017-07-05 2020-01-08 Advanced Risc Mach Ltd Context data management
US10599441B2 (en) * 2017-09-04 2020-03-24 Mellanox Technologies, Ltd. Code sequencer that, in response to a primary processing unit encountering a trigger instruction, receives a thread identifier, executes predefined instruction sequences, and offloads computations to at least one accelerator
GB2573119A (en) * 2018-04-24 2019-10-30 Advanced Risc Mach Ltd Maintaining state of speculation
CN109086183B (zh) * 2018-07-12 2022-08-16 武汉斗鱼网络科技有限公司 一种应用程序的监控方法、装置、电子设备及存储介质
CN110780922B (zh) * 2019-10-22 2022-06-17 珠海格力电器股份有限公司 指令生成方法、装置、电子设备及存储介质
US20230305962A1 (en) * 2022-03-25 2023-09-28 Nokia Solutions And Networks Oy Processor micro-operations cache architecture

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043226A (ja) * 1990-04-20 1992-01-08 Fuji Electric Co Ltd 演算処理装置
JPH04310140A (ja) * 1991-04-09 1992-11-02 Nissan Motor Co Ltd 計算機システム
JP2001147821A (ja) * 1999-09-10 2001-05-29 Toshiba Corp プロセッサ
JP2001195253A (ja) * 2000-01-12 2001-07-19 Denso Corp マイクロコンピュータ及び記録媒体
JP2007504539A (ja) * 2003-08-28 2007-03-01 ミップス テクノロジーズ インコーポレイテッド プロセッサ内での実行の計算スレッドを一時停止して割り当て解除するための統合されたメカニズム
JP2008071093A (ja) * 2006-09-13 2008-03-27 Fujitsu Ltd マルチプロセッサシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990014629A2 (en) * 1989-05-26 1990-11-29 Massachusetts Institute Of Technology Parallel multithreaded data processing system
EP0403229A1 (en) * 1989-06-13 1990-12-19 Digital Equipment Corporation Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors
DE69130630T2 (de) * 1990-09-14 1999-09-09 Hitachi Ltd Synchrones Verfahren und Gerät für Prozessoren
US5710913A (en) * 1995-12-29 1998-01-20 Atmel Corporation Method and apparatus for executing nested loops in a digital signal processor
US6055579A (en) * 1997-11-17 2000-04-25 Silicon Graphics, Inc. Distributed control and synchronization of multiple data processors using flexible command queues
US7861071B2 (en) * 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
CN1842770A (zh) * 2003-08-28 2006-10-04 美普思科技有限公司 一种在处理器中挂起和释放执行过程中计算线程的整体机制
US7594089B2 (en) * 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
FR2867872A1 (fr) * 2004-03-18 2005-09-23 St Microelectronics Sa Dispositif et procede de gestion d'un etat d'attente d'un microprocesseur
US7743376B2 (en) * 2004-09-13 2010-06-22 Broadcom Corporation Method and apparatus for managing tasks in a multiprocessor system
US7788511B2 (en) * 2007-08-16 2010-08-31 Texas Instruments Incorporated Method for measuring utilization of a power managed CPU

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043226A (ja) * 1990-04-20 1992-01-08 Fuji Electric Co Ltd 演算処理装置
JPH04310140A (ja) * 1991-04-09 1992-11-02 Nissan Motor Co Ltd 計算機システム
JP2001147821A (ja) * 1999-09-10 2001-05-29 Toshiba Corp プロセッサ
JP2001195253A (ja) * 2000-01-12 2001-07-19 Denso Corp マイクロコンピュータ及び記録媒体
JP2007504539A (ja) * 2003-08-28 2007-03-01 ミップス テクノロジーズ インコーポレイテッド プロセッサ内での実行の計算スレッドを一時停止して割り当て解除するための統合されたメカニズム
JP2008071093A (ja) * 2006-09-13 2008-03-27 Fujitsu Ltd マルチプロセッサシステム

Also Published As

Publication number Publication date
CN102063286A (zh) 2011-05-18
US8589664B2 (en) 2013-11-19
JP5611756B2 (ja) 2014-10-22
GB2474521B (en) 2014-10-15
GB0918297D0 (en) 2009-12-02
US20110093683A1 (en) 2011-04-21
CN102063286B (zh) 2015-09-16
GB2474521A (en) 2011-04-20

Similar Documents

Publication Publication Date Title
JP5611756B2 (ja) プログラム・フロー制御
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
CN104978284B (zh) 处理器子程序高速缓冲存储器
JP2010503070A (ja) 従属命令スレッドスケジューリング
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
KR100983135B1 (ko) 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법
US7761744B2 (en) Debugging method
JP4202244B2 (ja) Vliw型dsp,及びその動作方法
US20230084523A1 (en) Data Processing Method and Device, and Storage Medium
US20030120882A1 (en) Apparatus and method for exiting from a software pipeline loop procedure in a digital signal processor
JPH01310441A (ja) データ処理装置
JPH11272474A (ja) レジスタの複数割当てを利用した演算の処理中に割込み可能な複数実行装置
JP2004529405A (ja) 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ
US20030120900A1 (en) Apparatus and method for a software pipeline loop procedure in a digital signal processor
US20030120905A1 (en) Apparatus and method for executing a nested loop program with a software pipeline loop procedure in a digital signal processor
KR20090023418A (ko) 프로세서 및 코프로세서를 인터페이싱하는 방법 및 장치
US20140013312A1 (en) Source level debugging apparatus and method for a reconfigurable processor
TW201823972A (zh) 向量產生指令
KR20150040663A (ko) 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치
US20030120899A1 (en) Apparatus and method for processing an interrupt in a software pipeline loop procedure in a digital signal processor
KR102379886B1 (ko) 벡터 명령 처리
US20150363227A1 (en) Data processing unit and method for operating a data processing unit
US20030182511A1 (en) Apparatus and method for resolving an instruction conflict in a software pipeline nested loop procedure in a digital signal processor
JP7378254B2 (ja) マルチプロセッサデバイス
CN109213575B (zh) 单一处理器运行程序的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140501

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140603

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140703

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140724

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140903

R150 Certificate of patent or registration of utility model

Ref document number: 5611756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250