JP4911022B2 - カウンタ制御回路、動的再構成回路およびループ処理制御方法 - Google Patents

カウンタ制御回路、動的再構成回路およびループ処理制御方法 Download PDF

Info

Publication number
JP4911022B2
JP4911022B2 JP2007337065A JP2007337065A JP4911022B2 JP 4911022 B2 JP4911022 B2 JP 4911022B2 JP 2007337065 A JP2007337065 A JP 2007337065A JP 2007337065 A JP2007337065 A JP 2007337065A JP 4911022 B2 JP4911022 B2 JP 4911022B2
Authority
JP
Japan
Prior art keywords
context
output
counter
instruction signal
operation instruction
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
JP2007337065A
Other languages
English (en)
Other versions
JP2009157773A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007337065A priority Critical patent/JP4911022B2/ja
Priority to US12/337,694 priority patent/US20090193239A1/en
Publication of JP2009157773A publication Critical patent/JP2009157773A/ja
Application granted granted Critical
Publication of JP4911022B2 publication Critical patent/JP4911022B2/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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
    • G06F9/30058Conditional branch 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)
  • Logic Circuits (AREA)

Description

この発明は、再構成可能なプロセッシングエレメント(以下、「PE」という)の集合を、PEの処理内容とPE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路に配置されたカウンタ制御回路と、動的再構成回路およびループ処理制御方法に関する。
従来より、動的再構成回路(ダイナミックリコンフィギャラブル回路:以下、「リコンフィグ回路」とよぶ)は、動作中にリコンフィグ回路内部のPEへの命令内容やPE間の接続を変更する機能を備えている。リコンフィグ回路内部のPEへの命令内容やPE間の接続をあらわす情報をコンテキストとよび、構成内容を変更することをコンテキスト切り替えという。
リコンフィグ回路は、コンテキストを切り替えることによって、PEを時間軸方向に分割して共用することができるため、リコンフィグ回路全体のハードウェア規模を削減することができる。また、リコンフィグ回路は、複数のクラスタから構成されているものもある(たとえば、下記特許文献1参照。)。このような、リコンフィグ回路の場合は、クラスタ単位によってコンテキスト切り替えの制御をおこなうことができる。クラスタ内では、ステートマシンであるシーケンサによりコンテキストの切り替え制御をおこない、クラスタ内部のPEの演算結果、つぎに実行するコンテキストを変更することができる。
また、リコンフィグ回路へのアプリケーションを実装にはC言語によって記述されたソースコードを、リコンフィグ回路用のコンパイラによってコンパイルして使用することが一般的である。このとき、C言語で記述された処理のうち、特に時間を要する制御として、ループ制御が挙げられる。そこで、リコンフィグ回路では、ループ制御をパイプライン演算することで、その処理時間を短縮できるような構成を備えている。具体的には、リコンフィグ回路にカウンタを配置し、このカウンタからの出力を起点として、ループ制御を含んだ演算の制御をおこなうことができる。
特開2006−18514号公報
上述したように、リコンフィグ回路によってパイプライン演算をおこなう場合には、カウンタにカウント開始指示を与えることによってそのとき適用されているコンテキストの演算を開始させ、同じくカウンタによるカウントが終了すると、コンテキストの演算終了の指示となる。
しかしながら、コンテキストの構成内容によっては、コンテキスト切り替え時に、つぎに開始指示をおこなうカウンタが確定せず、コンテキストを余分に消費してしまう場合がある。ここで、図11および図12を用いて条件分岐において開始指示をおこなうカウンタが確定しない場合について説明する。なお、図11は、ケース1におけるカウンタ動作開始の制御例を示す説明図である。また、図12は、ケース2におけるカウンタ動作開始の制御例を示す説明図である。
図11に示すケース1のようにコンテキストXによってPEロジック1の演算を実行させたい場合には、コンテキストXの前に実行されていたコンテキストの演算結果を開始指示のトリガとして、シーケンサ1101がコンテキストXの動作を開始させる。シーケンサ1101の動作指示は、ネットワーク回路1102を介してカウンタ1103に入力され、カウンタ1:1103の動作が開始される。カウンタ1:1103によるカウントがPE制御信号となりPEロジック1によって演算がおこなわれる。
一方、図12に示すケース2のようにコンテキストYによってカウンタ1:1103、カウンタ2:1103のいずれかを起動させるかは前回コンテキストの実行結果に依存する。しかしながら、カウンタ1103の動作指示信号の出力先はコンフィグレーションデータにより決定されているため、リコンフィグ回路の動作中にカウンタ1103の動作指示信号の出力先を書き替えることはできない。
図13は、条件分岐ごとのコンテキストを分割したリコンフィグ回路を示す説明図である。したがって、コンテキスト内に条件分岐が発生する場合には、図13のように、ケース2のコンテキストYを、カウンタ制御ごとに2つのコンテキストY−1と、Y−2とに分割しなければならない。図13のような条件分岐ごとのコンテキストを分割する手法は、コンテキストを余分に消費してしまうとともに、リコンフィグ回路のコンフィグレーションメモリを効率的に利用できないという問題があった。
この発明は、上述した従来技術による問題点を解消するため、条件分岐制御を含んだ処理を最小限のコンテキストによって効率的に実現するカウンタ制御回路、動的再構成回路およびループ処理制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、このカウンタ制御回路、動的再構成回路およびこのカウンタ制御回路を用いたループ制御方法によれば、再構成可能なプロセッシングエレメント(以下、「PE」という)の集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路に配置されたカウンタの動作を制御するため、前記動的再構成回路に適応中のコンテキストにおいて、条件分岐演算を実行しているPEから、次回のコンテキストにおける前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持し、前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わると、保持された動作指示信号を前記カウンタに出力する処理を備えることを要件とする。
この回路によれば、条件分岐演算を実行しているPEから出力されたカウンタの動作指示信号を一時的に保持するため、次回のコンテキストが適用されたときにはじめて指定されたカウンタに動作指示信号を出力することができる。
また、上述のカウンタ制御回路、動的再構成回路およびループ制御方法において、前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから、前記カウンタの動作指示信号が出力された場合には、当該動作指示信号を保持し、ループ処理演算を実行しているPEの演算が終了すると、ループ処理演算を実行していたPEからの動作指示信号を出力させてもよい。
このカウンタ制御回路、動的再構成回路およびループ制御方法回路によれば、適用中のコンテキストにおいて、条件分岐演算以外の通常のループ処理演算がおこなわれた場合には、現在実行中のコンテキストにおいてカウンタに動作指示信号を出力することができる。
また、上述のウンタ制御回路、動的再構成回路およびループ制御方法において、一旦、動作指示信号が出力されると、保持していた動作指示信号を破棄してもよい。
このカウンタ制御回路、動的再構成回路およびループ制御方法回路によれば、一時的に保持していた動作指示信号をクリアにすることができる。
また、上述のウンタ制御回路、動的再構成回路およびループ制御方法において、動作指示信号の出力を禁止させる出力禁止設定を受け付けると、前記動的再構成回路に適応中のコンテキストから前記次回のコンテキストコンテキストの切り替わった場合に、動作指示信号の出力を禁止してもよい。また、適応中のコンテキストのループ処理演算が終了した場合に、上述のように動作指示信号の出力を禁止してもよい
このカウンタ制御回路、動的再構成回路およびループ制御方法回路によれば、所定の動作が起こっても、一意的にカウンタに動作指示信号が出力されるような事態を防ぐことができる。
このカウンタ制御回路、動的再構成回路およびループ処理制御方法によれば、条件分岐制御を含んだ処理を最小限のコンテキストによって効率的に実現することができるという効果を奏する。
以下に添付図面を参照して、このカウンタ制御回路、動的再構成回路およびループ処理制御方法の好適な実施の形態を詳細に説明する。
本実施の形態にかかるリコンフィグ回路(動的再構成回路)は、複数のクラスタから構成されている。この各クラスタは、コンテキストに応じてPE命令およびPE間接続を動的に変更可能なPE群である。リコンフィグ回路は、MPUと連動して指定されたコンテキスに設定されたPE命令およびPE間接続を実行し、ユーザの所望する動作を実現することができる。
上述したようなリコンフィグ回路によってユーザが用意したプログラムを実行するには、プログラムをリコンフィグ回路の構成に応じてコンパイルしなければならない。したがって、つぎに、リコンフィグ回路の使用手順について説明する。なお、本実施の形態では、ユーザがC言語で記述したプログラムを用意し、リコンフィグ回路によって実行させるものとする。当然のことながら、他の高級言語を利用して記述されたプログラムを利用することもできる。そのような場合には、記述された高級言語の対応したコンパイラを用意すればよい。
図1は、リコンフィグ回路の使用手順を示す説明図である。図1のように、まず、リコンフィグ回路用Cソースコード101を用意する。このリコンフィグ回路用Cソースコード101は、リコンフィグ回路ユーザによって用意されたC言語によって記述されたソースコードである。
リコンフィグ回路を使用するには、まず、リコンフィグ回路用Cソースコード101をリコンフィグ回路用コンパイラで翻訳し(ステップS110)、コンフィグレーションデータ102を作成する。リコンフィグ回路用コンパイラは、ここで使用するリコンフィグ回路用のコンパイラであり、リコンフィグ回路のハードウェア構成に対応したコンフィグレーションデータ102を生成する。
リコンフィグ回路用コンパイラによるコンパイルが終了すると、続いて、リコンフィグ回路の起動要求をおこなう(ステップS120)。起動要求後、ステップS110によって生成されたコンフィグレーションデータ102がロードされ(ステップS130)、リコンフィグ回路の動作が開始される(ステップS140)。
このステップS140の処理の内容を詳しく説明すると、リコンフィグ回路の起動によって各クラスタが起動されると、各クラスタ内部のコンフィグレーションメモリにコンフィグレーションデータ102が書き込まれる。そして、各クラスタのシーケンサによってコンフィグレーションメモリに書き込まれたコンフィグレーションデータ102に従ったコンテキスト切り替え処理(103)がおこなわれ、コンフィグレーションデータ102に応じたコンテキスト切り替えが終了すると、一連のリコンフィグ回路動作を終了する(ステップS150)。
つぎに、上述した手順にてプログラムを実行させるリコンフィグ回路の具体的な構成について説明する。図2は、本実施の形態にかかるリコンフィグ回路のクラスタ構成を示すブロック図である。図1にて説明したように、リコンフィグ回路は、複数のクラスタによって構成されている。したがって、図2では、クラスタ内部の詳細な構成について説明する。
図2のように、クラスタ200は、シーケンサ210と、コンフィグレーションメモリ220と、PEアレイ230とによって構成されている。また、クラスタ200には、リコンフィグ回路に実行させるコンフィグレーションデータ102を制御するMPUからの開始指示(信号)が入力される(図1、2参照)。また、クラスタ200は、リコンフィグ回路に配置された複数のクラスタの中の他のクラスタ200へ外部出力をおこなうとともに、他のクラスタ200からの外部入力の受け付けもおこなう。
また、クラスタ200において、シーケンサ210は、開始指示(信号)を受け付けると、コンテキスト切り替え指示と、クラスタ内PEの接続および命令設定の変更をおこなうため、コンフィグレーションメモリ220にPC値を出力するとともに、PEアレイ230にcontext start信号を出力する。context start信号を受け取ったPEアレイ230は、設定されたコンテキストの処理が終了すると、シーケンサ210にpredicate信号を送信する。シーケンサ210は、predicate信号を受け取ると、つぎのコンテキストを切り替えるため、コンフィグレーションメモリ220とPEアレイ230にそれぞれ上述の出力をおこなう。
コンフィグレーションメモリ220には、図1のステップS110によって作成されたコンフィグレーションデータ102が格納されている。コンフィグレーションデータ102は、リコンフィグ回路によって実行させるコンテキストによって構成されている。したがって、コンフィグレーションメモリ220は、シーケンサ210からPC値が入力されると、対応するコンテキストのコンフィグレーションデータ102をconfiguration信号として、PEアレイ230の各機能部に出力する。
コンテキストは、ユーザがC言語で記述したプログラムをコンパイルすることによって生成されるため、プログラムの記述内容によってコンテキスト数は異なる。また、コンパイルは、リコンフィグ回路のハードウェア構成に基づいたコンテキストを生成する。したがって、本実施の形態の場合、リコンフィグ回路のクラスタ200の構成に基づいたコンテキストが生成される。
PEアレイ230は、コンテキストの設定に応じた演算をおこなう機能部であり、条件分岐レジスタファイル231と、PE232と、ネットワーク回路233と、カウンタ234とから構成されている。条件分岐レジスタファイル231は、本実施の形態における独自の機能部であり、カウンタ制御回路として機能する。具体的に説明すると、条件分岐レジスタファイル231は、条件分岐演算がおこなわれた場合に、演算結果をつぎのコンテキストのカウンタを動作させるために保持する機能を備えている。なお、条件分岐レジスタファイル231の動作例と構成については詳しく後述する。
また、PE232は、演算子でありコンフィグレーションメモリ220から入力されたconfiguration信号によって指定された演算をおこなう。ネットワーク回路233は、PEアレイ230内の条件分岐レジスタファイル231、PE232およびカウンタ234をコンフィグレーションメモリ220から入力されたconfiguration信号に応じて接続する。カウンタ234は、コンフィグレーションメモリ220から入力されたconfiguration信号に応じて指定された動作のカウントをおこなう。
上述したPEアレイ230の各構成のうち、PE232およびカウンタ234は、複数個配置されている。また、PEアレイ230内では、PE232における演算結果や、カウンタ234の回路出力であるカウント値を伝えるため、ネットワーク回路233を介してdata信号の送受がおこなわれている。この、data信号の接続は、ネットワーク回路233によって動的に変更可能である。
つぎに、PEアレイ230内の制御とシーケンサ210にコンテキストの切り替え指示をおこなうpredicate信号について説明する。predicate信号は、2bitの信号であり、PE232内における比較結果、コンテキスト開始・終了を指示するクラスタ内の制御信号である。predicate信号の接続先も、ネットワーク回路233により動的に変更可能である。
また、predicate信号は、条件分岐レジスタファイル231によって、シーケンサ210からのコンテキスト開始指示(信号)が2bitの信号に変換されたものである。変換されたpredicate信号は、ネットワーク回路233を介してPE232やカウンタ234に出力される。このときは、predicate信号は、具体的には、下記のような意味をあらわす。
・2’b=「11」:成立(true)
・2’b=「10」:非成立(false)
・2’b=「01」、「00」:無効(invalid)、すなわち意味を持たない。
以上の説明した構成のクラスタ00において、PE232によってループ演算をおこなう場合には、PEの処理をカウンタ234によってカウントさせる。このとき、条件分岐レジスタファイル231によって、前コンテキストの結果に応じて、カウンタ234のカウント開始用predicate信号を切り替えさせる。このような構成を備えることによって、同一のコンテキスト内で条件分岐制御をおこなうことが可能となる。
(条件分岐レジスタファイルの使用手順)
したがって、つぎに、条件分岐レジスタファイル231を使用して同一のコンテキスト内で条件分岐制御をおこなう際の具体例を挙げて条件分岐レジスタファイル231の使用手順について説明する。
図3は、条件分岐レジスタファイルの使用手順を示す説明図である。図3において、コンテキスト0は、初回コンテキストであり、カウンタ1:234をクラスタの開始指示の入力をトリガに起動させる。このとき、条件分岐レジスタファイル231は、コンフィグレーションメモリ220から入力されたconfiguration信号によって設定された値(2’b=「11」)を、predicate信号としてクラスタ開始時(開始指
示入力時)にPRDO0から出力する。出力されたpredicate信号は、ネットワーク回路233を経由して、カウンタ1:234に、1パルスとして入力される。
カウンタ1:234は、predicate信号の1パルス入力によってカウント動作を開始し、PE制御情報をPEロジックに出力する。このカウンタ1:234の出力を起点として、複数PEの組み合わせである演算フロー(PEロジック1)が動作する。PEロジック1は演算結果により、条件分岐レジスタファイル231の入力端である、PRDI0とPRDI1とのどちらか一方にpredicate信号(2’b11)を書き込む
。以上の動作によって、コンテキスト0が終了する。
つぎに、コンテキスト1が開始されると、条件分岐レジスタファイル231には、コンテキスト1の開始指示が入力される。このとき、条件分岐レジスタファイル231は、コンテキスト0の動作によって保持されたpredicate信号を出力端子に出力する。ここで、出力端は、PRDI0に書き込んだ信号であればPRDO0、PRDI1に書き込んだデータであればPRDO1となる。
このように、条件分岐レジスタファイル231にコンテキスト0におけるPEの出力を保持することによって、predicate信号の状態により、カウンタ1、2:234のどちらかの動作を切り替えることが可能となる。
(条件分岐レジスタファイルの回路構成)
つぎに、条件分岐レジスタファイル231の回路構成について説明する。図4は、条件分岐レジスタファイルの回路構成を示すブロック図である。条件分岐レジスタファイル231は、コンフィグレーションメモリ220からのコンフィグレーションデータを保持するコンフィグレーションレジスタ部400と、系統ごとの入力信号の有効/無効判定部401と、内部レジスタ402と、内部レジスタのクリア制御部403と、FF(フリップフロップ)とを備えている。
図4の例示では、条件分岐レジスタファイル231は、4系統の内部レジスタ402を備えており、条件分岐演算において、最大4分岐まで対応可能な構成になっている。なお、入力端PRDIおよび出力端PRDOは、系統ごとに独立しているため、4系統以上持たせることも可能である。また、リコンフィグ回路を構成するクラスタ200を複数個用いることによって、分岐先を増やすこともできる。
条件分岐レジスタファイル231の各系統に入力されるデータは、クラスタ200のpredicate信号であり、上述したように2bitの信号である。また、条件分岐レジスタファイル231には、コンフィグレーションレジスタ部400からコンフィグレーション設定が入力される。このコンフィグレーション設定は、コンテキストの開始指示であるcontext start信号が、アサートされたタイミングで取り込まれる。
条件分岐レジスタファイル231の内部レジスタ402は、predicate信号:2’b=「11」、もしくは、2’b=「10」が入力端PRDIに入力されたとき、そ
の値を更新する。また、内部レジスタ402は、context start信号がアサートされると、保持されている値を出力部のFFに1パルス出力する。そして、FFに出力された信号は出力端PRDOから出力される。このとき、内部レジスタ402の値は、すべて「0」に更新することによってクリアされる。なお、内部レジスタ402の値は、コンフィグレーションレジスタ部400のコンフィグレーション設定により初期化することもできる。このような初期化処理は、初回コンテキストの起動時に使用される。
つぎに、コンフィグレーションレジスタ部400のコンフィグレーション設定について説明する。コンフィグレーション設定としては、以下の設定が系統ごとに独立して可能である。これらの設定は動的に切り替えるコンテキストのコンフィグレーションデータによっておこなわれる。
1)入力されたpredicate信号の無効化設定
入力端PRDIから入力されたpredicate信号を無効値として扱う。この設定によって内部レジスタ402に保持されているpredicate信号が更新されるような事態を防ぐことができる。
2)コンテキスト開始時の内部レジスタ値の出力/非出力設定
コンテキスト開始時に内部レジスタ402の値を出力する設定をおこなうと、内部レジスタ402に保持されているデータが1パルス出力端PRDOの前段のFFに書き込まれ、同時に内部レジスタ402がALL0にクリアされる。一方、コンテキスト開始時に内部レジスタ402の値を出力しない設定をおこなうと、context startがアサートされても、条件分岐レジスタファイル331のFFに内部レジスタ402の値が出力されず、内部レジスタ402に現在の保持されている値が継続して保持される。
図5は、条件分岐レジスタファイル内データを保持する場合の使用手順を示す説明図である。たとえば、図5のようなコンテキスト切り替えでは、初回コンテキストであるコンテキスト0では、configuration信号によって設定された値をPRDO0から出力する(501)。そして、コンテキスト0においてPEロジック1の演算結果に応じて、PRDI1とPRDI2とのどちらか一方に、predicate信号を書き込む(502)。
コンテキスト0からコンテキスト1に切り替わり、条件分岐レジスタファイル231内に保持したpredicate信号を、次のコンテキスト1ではなく、その次のコンテキスト2でカウンタの起動信号として使用したい場合がある。このとき、内部レジスタ402の値を出力/非出力設定を使用することで、条件分岐レジスタファイル231内に保持したpredicate信号は、そのまま内部レジスタ402に保持される(503)。また、コンテキスト2では、条件分岐演算が発生していないため、コンフィグレーション設定によるpredicate信号によってカウンタ1:234が起動される(504)。
そして、コンテキスト2に切り替わると、コンテキスト0において、PRDI1とPRDI2とのどちらか一方に書き込まれた、predicate信号をカウンタ1、2:334のいずれかに出力することができる(505)。このように、コンテキスト開始時の内部レジスタ値の出力/非出力設定が可能になる。
3)内部レジスタ値の即値設定
内部レジスタ402の値ではなく、コンフィグレーションレジスタ部400のコンフィグレーション設定による即値を出力端PRDO前段のFFに1パルス渡すように動作させる設定である。
4)即値設定の有効/無効設定
上記3)によって設定されたコンフィグレーションレジスタ部400による即値設定の取り込みを有効もしくは無効にする設定である。
つぎに、上述したように条件分岐レジスタファイル231の動作について、タイミングチャートを用いて説明する。図6は、条件分岐レジスタファイルの動作を示すタイミングチャートである。また、図7は、即値出力設定を含んだ条件分岐レジスタファイル動作を示すタイミングチャートである。
図6のタイミングチャートでは、条件分岐レジスタファイル231の入力端PRDIに「11」のpredicate信号が入力されると(601)、内部レジスタ402には2’b=「11」が保持される。その後、context startがアサートされるまでPRDI1には有効データ(「11」か「10」)が入力されないためレジスタは更新されずに、出力端PRDO1では、保持されていた2’b=「11」が出力され、「00」にクリアされる。一方、入力端PRDI0に入力された2’b=「11」は内部レジスタ402に保持される(602)。また、context startがアサート前に入力端PRDI0には、2’b=「10」が入力され、内部レジスタ502に上書きされる(603)。結果として、出力端PRDO0からは2’b=「10」が出力される。そして、コンテキスト0からコンテキスト1に切り替わると、あらたなcontext startがアサートされる。
図7のタイミングチャートでは、コンフィグレーションレジスタ部400のコンフィグレーション設定の即値を出力するか否かが、IMM_en0(コンフィグレーションデータ:以下「cfg」という)によって設定されている。また、即値を出力すると設定された場合には、IMM0(cfg)を即値として出力する。このように、コンテキスト0の設定に応じてコンテキスト設定をおこなうことによりコンテキストごとの実装自由度を向上させることができる。
(実施例)
つぎに、条件分岐処理を含んだソースコードによるコンテキスト切り替え動作を、リコンフィグ回路に実装した場合の実施例について説明する。図8は、コンテキスト切り替えを実装したCコードの一例を示すソースコードである。図8のソースコード800において、コンテキスト0部分810は、入力データを累積加算し、最後に固定値との比較をおこなう処理が記述されている。そして、コンテキスト1(true/fales)部分820、830は、コンテキスト0の比較結果に応じて、実行するループ制御を切り替える。すなわち、コンテキスト0の比較結果に応じてコンテスト1(true)部分820か、コンテキスト1(fales)部分830のいずれかの処理に対応したカウンタを動作させなければならない。
また、図9は、アドレスカウンタ起動用の条件分岐信号の生成手順を示す説明図である。また、図10は、コンテキスト0の実装回路の一例を示すブロック図である。図8のソースコード800に記述されたように、初回コンテキストであるコンテキスト0では、Forループ制御おこなう。したがって、アドレスカウンタの出力を、入力データ(input_d)として保持し、RAMのインデックスとして、RAM保持データの累積加算処理をおこなう。この演算処理は、図10のPEロジック1000のループ制御部1001、RAMテーブル1002および累積加算部1003によって実現される。
さらに、累積加算結果を比較器1004で固定値(ここでは、255)と比較し、true側と判断された場合、条件分岐レジスタファイル231のPRDI0に、predicate信号「11」を書き込む。また、比較器において、false側と判断された場合、条件分岐レジスタファイル231のPRDI2にpredicate信号「11」を書き込む。この比較処理は、PEロジック1000の比較器1004によって実現される。
以上説明した実施例では、実施の形態の特有の構成である条件分岐レジスタファイル231を使用することによって、条件分岐命令部分であるコンテスト1(true)と、コンテキスト1(fales)とを1つのコンテキストによって実現することができる。したがって、コンテキスト数の削減及びコンテキスト切り替え間の時間のロスを抑えることが可能となった。
以上説明したように、本実施の形態によれば、条件分岐演算がおこなわれた場合に、演算結果をつぎのコンテキストのカウンタを動作させるために保持することができるため、条件分岐ごとにコンテキストを用意せずとも、1つのコンテキストにて、各分岐結果に応じたカウンタ動作指示をおこなうことができる。また、本実施の形態によれば、条件分岐レジスタファイル231を使用することによって、コンフィグレーションデータ出力先を書き替える必要もない。したがって、条件分岐制御を含んだ処理を最小限のコンテキストによって効率的に実現することができる。
なお、本実施の形態で説明したループ処理制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)再構成可能なプロセッシングエレメント(以下、「PE」という)の集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路に配置されたカウンタの動作を制御するカウンタ制御回路であって、
前記動的再構成回路に適応中のコンテキストにおいて、条件分岐演算を実行しているPEから、次回のコンテキストにおける前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持する保持手段と、
前記保持手段に保持された動作指示信号を前記カウンタに出力する出力手段と、
前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わると、前記出力手段に前記動作指示信号を出力させる制御手段と、
を備えることを特徴とするカウンタ制御回路。
(付記2)前記保持手段は、前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから、前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持し、
前記制御手段は、前記ループ処理演算を実行しているPEの演算が終了すると、前記出力手段に前記ループ処理演算を実行しているPEからの動作指示信号を出力させることを特徴とする付記1に記載のカウンタ制御回路。
(付記3)前記保持手段は、前記制御手段の制御によって、前記出力手段によって前記動作指示信号が出力されると、前記動作指示信号を破棄することを特徴とする付記1に記載のカウンタ制御回路。
(付記4)前記出力手段による前記動作指示信号の出力を禁止させる出力禁止設定を受け付ける設定手段を備え、
前記制御手段は、前記設定手段によって出力禁止設定が受け付けられると、前記動的再構成回路に適応中のコンテキストから前記次回のコンテキストに切り替わった場合に、前記出力手段による前記動作指示信号の出力を禁止することを特徴とする付記1に記載のカウンタ制御回路。
(付記5)前記出力手段による前記動作指示信号の出力を禁止させる出力禁止設定を受け付ける設定手段を備え、
前記制御手段は、前記設定手段によって出力禁止設定が受け付けられると、前記出力手段による前記適応中のコンテキストのループ処理演算が終了した場合に、前記出力手段による、前記動作指示信号の出力を禁止することを特徴とする付記2に記載のカウンタ制御回路。
(付記6)前記動的再構成回路には、前記適応中のコンテキストに含まれる条件分岐演算の分岐結果に対応した複数のカウンタが備えられ、
前記制御手段は、前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わった場合、前記条件分岐演算を実行しているPEからの動作指示信号を、前記複数のカウンタの中から前記分岐結果に対応したカウンタに出力させることを特徴とする付記1〜5のいずれか一つに記載のカウンタ制御回路。
(付記7)再構成可能なプロセッシングエレメント(以下、「PE」という)の集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路であって、
前記コンテキストによって指定されたPEの動作をカウントするカウンタと、
前記カウンタの動作を制御するカウンタ制御回路と、を備え、
前記カウンタ制御回路は、
前記動的再構成回路に適応中のコンテキストにおいて、条件分岐演算を実行しているPEから、次回のコンテキストにおける前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持する保持手段と、
前記保持手段に保持された動作指示信号を前記カウンタに出力する出力手段と、
前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わると、前記出力手段に前記動作指示信号を出力させる制御手段と、備えることを特徴とする動的再構成回路。
(付記8)前記保持手段は、前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから、前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持し、
前記制御手段は、前記ループ処理演算を実行しているPEの演算が終了すると、前記出力手段に前記ループ処理演算を実行しているPEからの動作指示信号を出力させることを特徴とする付記7に記載の動的再構成回路。
(付記9)前記保持手段は、前記制御手段の制御によって、前記出力手段によって前記動作指示信号が出力されると、前記動作指示信号を破棄することを特徴とする付記7に記載の動的再構成回路。
(付記10)前記カウンタ制御回路において、
前記出力手段による前記動作指示信号の出力を禁止させる出力禁止設定を受け付ける設定手段を備え、
前記制御手段は、前記設定手段によって出力禁止設定が受け付けられると、前記動的再構成回路に適応中のコンテキストから前記次回のコンテキストコンテキストの切り替わった場合に、前記出力手段による前記動作指示信号の出力を禁止することを特徴とする付記6に記載の動的再構成回路。
(付記11)前記カウンタ制御回路は、
さらに、前記出力手段による前記動作指示信号の出力を禁止させる出力禁止設定を受け付ける設定手段を備え、
前記制御手段は、前記設定手段によって出力禁止設定が受け付けられると、前記出力手段による前記適応中のコンテキストのループ処理演算が終了した場合に、前記出力手段による、前記動作指示信号の出力を禁止することを特徴とする付記8に記載の動的再構成回路。
(付記12)前記カウンタは、前記適応中のコンテキストに含まれる条件分岐演算の分岐結果に対応した複数個備えられ、
前記カウンタ制御回路において、
前記制御手段は、前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わった場合、前記出力手段を制御して、前記条件分岐演算を実行しているPEからの動作指示信号を、複数のカウンタの中から前記分岐結果に対応したカウンタに出力させることを特徴とする付記7〜11のいずれか一つに記載の動的再構成御回路。
(付記13)再構成可能なプロセッシングエレメント(以下、「PE」という)と、カウンタ回路との集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路に、所定の動作をカウントさせるカウンタによって実行されるループ処理を制御するループ処理制御方法であって、
前記動的再構成回路に適応中のコンテキストにおいて、条件分岐演算を実行しているPEから、次回のコンテキストにおける前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持する保持工程と、
前記動的再構成回路に適応中のコンテキストの前記次回のコンテキストへの切り替えを検出する検出工程と、
前記検出工程によって前記次回のコンテキストへの切り替えが検出されると、前記保持工程によって保持された動作指示信号を前記カウンタに出力する出力工程と、
を含むことを特徴とするループ処理制御方法。
(付記14)前記保持工程は、前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから、前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持し、
前記検出工程は、前記ループ処理演算を実行しているPEの演算の終了を検出し、
前記出力工程は、前記検出手段によって前記ループ処理演算を実行しているPEの演算の終了を検出すると、前記ループ処理演算を実行しているPEからの動作指示信号を出力することを特徴とする付記13に記載のループ処理制御方法。
リコンフィグ回路の使用手順を示す説明図である。 本実施の形態にかかるリコンフィグ回路のクラスタ構成を示すブロック図である。 条件分岐レジスタファイルの使用手順を示す説明図である。 条件分岐レジスタファイルの回路構成を示すブロック図である。 条件分岐レジスタファイル内データを保持する場合の使用手順を示す説明図である。 条件分岐レジスタファイルの動作を示すタイミングチャートである。 即値出力設定を含んだ条件分岐レジスタファイル動作を示すタイミングチャートである。 コンテキスト切り替えを実装したCコードの一例を示すソースコードである。 アドレスカウンタ起動用の条件分岐信号の生成手順を示す説明図である。 コンテキスト0の実装回路の一例を示すブロック図である。 ケース1におけるカウンタ動作開始の制御例を示す説明図である。 ケース2におけるカウンタ動作開始の制御例を示す説明図である。 条件分岐ごとのコンテキストを分割したリコンフィグ回路を示す説明図である。
符号の説明
300 クラスタ
310 シーケンサ
320 リコンフィグメモリ
330 PEアレイ

Claims (10)

  1. 再構成可能なプロセッシングエレメント(以下、「PE」という)の集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路に配置された前記コンテキストによって指定されたPEの動作をカウントするカウンタの動作を制御するカウンタ制御回路であって、
    前記動的再構成回路に適応中のコンテキストにおいて、条件分岐演算を実行しているPEから、次回のコンテキストにおける前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持する保持手段と、
    前記保持手段に保持された動作指示信号を前記カウンタに出力する出力手段と、
    前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わると、前記出力手段に前記動作指示信号を出力させる制御手段と、
    を備えることを特徴とするカウンタ制御回路。
  2. 前記保持手段は、前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから、前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持し、
    前記制御手段は、前記ループ処理演算を実行しているPEの演算が終了すると、前記出力手段に前記ループ処理演算を実行しているPEからの動作指示信号を出力させることを特徴とする請求項1に記載のカウンタ制御回路。
  3. 前記保持手段は、前記制御手段の制御によって、前記出力手段によって前記動作指示信号が出力されると、前記動作指示信号を破棄することを特徴とする請求項1に記載のカウンタ制御回路。
  4. 前記出力手段による前記動作指示信号の出力を禁止させる出力禁止設定を受け付ける設定手段を備え、
    前記制御手段は、前記設定手段によって出力禁止設定が受け付けられると、前記動的再構成回路に適応中のコンテキストから前記次回のコンテキストに切り替わった場合に、前記出力手段による前記動作指示信号の出力を禁止することを特徴とする請求項1に記載のカウンタ制御回路。
  5. 前記出力手段による前記動作指示信号の出力を禁止させる出力禁止設定を受け付ける設定手段を備え、
    前記制御手段は、前記設定手段によって出力禁止設定が受け付けられると、前記出力手段による前記適応中のコンテキストのループ処理演算が終了した場合に、前記出力手段による、前記動作指示信号の出力を禁止することを特徴とする請求項2に記載のカウンタ制御回路。
  6. 前記動的再構成回路には、前記適応中のコンテキストに含まれる条件分岐演算の分岐結果に対応した複数のカウンタが備えられ、
    前記制御手段は、前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わった場合、前記条件分岐演算を実行しているPEからの動作指示信号を、前記複数のカウンタの中から前記分岐結果に対応したカウンタに出力させることを特徴とする請求項1〜5のいずれか一つに記載のカウンタ制御回路。
  7. 再構成可能なプロセッシングエレメント(以下、「PE」という)の集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより任意の処理を実行させる動的再構成回路であって、
    前記コンテキストによって指定されたPEの動作をカウントするカウンタと、
    前記カウンタの動作を制御するカウンタ制御回路と、を備え、
    前記カウンタ制御回路は、
    前記動的再構成回路に適応中のコンテキストにおいて、条件分岐演算を実行しているPEから、次回のコンテキストにおける前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持する保持手段と、
    前記保持手段に保持された動作指示信号を前記カウンタに出力する出力手段と、
    前記動的再構成回路に適応中のコンテキストが前記次回のコンテキストに切り替わると、前記出力手段に前記動作指示信号を出力させる制御手段と、を備えることを特徴とする動的再構成回路。
  8. 前記保持手段は、前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから、前記カウンタの動作指示信号が出力されると、当該動作指示信号を保持し、
    前記制御手段は、前記ループ処理演算を実行しているPEの演算が終了すると、前記出力手段に前記ループ処理演算を実行しているPEからの動作指示信号を出力させることを特徴とする請求項7に記載の動的再構成回路。
  9. 前記保持手段は、前記制御手段の制御によって、前記出力手段によって前記動作指示信号が出力されると、前記動作指示信号を破棄することを特徴とする請求項7に記載の動的再構成回路。
  10. 再構成可能なプロセッシングエレメント(以下、「PE」という)とカウンタとの集合を、前記PEの処理内容と前記PE間の接続内容が記述されたコンテキストに応じて動的に切り替えることにより、任意の処理を実行させる動的再構成回路が、前記カウンタが前記コンテキストによって指定されたPEの動作をカウントすることにより実行されるループ処理を制御するループ処理制御方法であって、
    前記動的再構成回路に適応中のコンテキストにおいて、ループ処理演算を実行しているPEから出力された次回のコンテキストにおける前記カウンタの動作指示信号を前記保持手段が保持する保持工程と、
    前記ループ処理演算を実行しているPEからの動作指示信号を、シーケンサが検出する検出工程と、
    前記検出工程によって前記次回のコンテキストへの切り替えが検出されると、前記保持手段に保持された動作指示信号を前記カウンタに出力手段が出力する出力工程と、
    を含むことを特徴とするループ処理制御方法。
JP2007337065A 2007-12-27 2007-12-27 カウンタ制御回路、動的再構成回路およびループ処理制御方法 Expired - Fee Related JP4911022B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007337065A JP4911022B2 (ja) 2007-12-27 2007-12-27 カウンタ制御回路、動的再構成回路およびループ処理制御方法
US12/337,694 US20090193239A1 (en) 2007-12-27 2008-12-18 Counter control circuit, dynamic reconfigurable circuit, and loop processing control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007337065A JP4911022B2 (ja) 2007-12-27 2007-12-27 カウンタ制御回路、動的再構成回路およびループ処理制御方法

Publications (2)

Publication Number Publication Date
JP2009157773A JP2009157773A (ja) 2009-07-16
JP4911022B2 true JP4911022B2 (ja) 2012-04-04

Family

ID=40900417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007337065A Expired - Fee Related JP4911022B2 (ja) 2007-12-27 2007-12-27 カウンタ制御回路、動的再構成回路およびループ処理制御方法

Country Status (2)

Country Link
US (1) US20090193239A1 (ja)
JP (1) JP4911022B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694947B1 (en) 2009-12-09 2014-04-08 The Mathworks, Inc. Resource sharing workflows within executable graphical models
US9436441B1 (en) 2010-12-08 2016-09-06 The Mathworks, Inc. Systems and methods for hardware resource sharing
KR20140126195A (ko) * 2013-04-22 2014-10-30 삼성전자주식회사 배치 쓰레드 처리 기반의 프로세서, 그 프로세서를 이용한 배치 쓰레드 처리 방법 및 배치 쓰레드 처리를 위한 코드 생성 장치
US10423733B1 (en) 2015-12-03 2019-09-24 The Mathworks, Inc. Systems and methods for sharing resources having different data types
WO2019089816A2 (en) 2017-10-31 2019-05-09 Micron Technology, Inc. System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network
EP3776241B1 (en) 2018-03-31 2023-06-28 Micron Technology, Inc. Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
EP3776243A1 (en) 2018-03-31 2021-02-17 Micron Technology, Inc. Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric
KR102446709B1 (ko) 2018-03-31 2022-09-26 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭의 실행 제어
EP3776237A1 (en) 2018-03-31 2021-02-17 Micron Technology, Inc. Multiple types of thread identifiers for a multi-threaded, self-scheduling reconfigurable computing fabric
CN111971652A (zh) 2018-03-31 2020-11-20 美光科技公司 多线程自调度可重新配置计算架构的条件分支控制
WO2019191744A1 (en) 2018-03-31 2019-10-03 Micron Technology, Inc. Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue
CN111919207A (zh) 2018-03-31 2020-11-10 美光科技公司 多线程自调度可重新配置计算架构
KR102454405B1 (ko) 2018-03-31 2022-10-17 마이크론 테크놀로지, 인크. 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 효율적인 루프 실행
US11165846B2 (en) 2019-06-21 2021-11-02 International Business Machines Corporation Dynamically converting static and dynamic connections in a streaming application
US11573834B2 (en) 2019-08-22 2023-02-07 Micron Technology, Inc. Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric
US11150900B2 (en) 2019-08-28 2021-10-19 Micron Technology, Inc. Execution or write mask generation for data selection in a multi-threaded, self-scheduling reconfigurable computing fabric
US11886377B2 (en) 2019-09-10 2024-01-30 Cornami, Inc. Reconfigurable arithmetic engine circuit

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6654934B1 (en) * 2002-03-28 2003-11-25 Cyrpess Semiconductor Corporation Programmable event engine
US20050283743A1 (en) * 2004-06-07 2005-12-22 Mulholland Philip J Method for generating hardware information
JP2006011825A (ja) * 2004-06-25 2006-01-12 Fujitsu Ltd 再構成可能演算装置および半導体装置
JP2006018413A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
US7941794B2 (en) * 2004-08-30 2011-05-10 Sanyo Electric Co., Ltd. Data flow graph processing method and processing apparatus provided with reconfigurable circuit
US7991984B2 (en) * 2005-02-17 2011-08-02 Samsung Electronics Co., Ltd. System and method for executing loops in a processor
KR100730280B1 (ko) * 2005-12-06 2007-06-19 삼성전자주식회사 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법
KR100681199B1 (ko) * 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
KR100812346B1 (ko) * 2006-02-06 2008-03-11 삼성전자주식회사 재구성 어레이에서의 인터럽트 처리 방법 및 장치
US8645955B2 (en) * 2006-06-12 2014-02-04 Samsung Electronics Co., Ltd. Multitasking method and apparatus for reconfigurable array
JP5141151B2 (ja) * 2007-09-20 2013-02-13 富士通セミコンダクター株式会社 動的再構成回路およびループ処理制御方法
KR101515568B1 (ko) * 2009-02-03 2015-04-28 삼성전자 주식회사 재구성 가능 어레이의 스케줄러, 스케줄링 방법 및 이를 이용한 컴퓨팅 장치
KR101622266B1 (ko) * 2009-04-22 2016-05-18 삼성전자주식회사 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법

Also Published As

Publication number Publication date
US20090193239A1 (en) 2009-07-30
JP2009157773A (ja) 2009-07-16

Similar Documents

Publication Publication Date Title
JP4911022B2 (ja) カウンタ制御回路、動的再構成回路およびループ処理制御方法
JP6807383B2 (ja) 転送プレフィックス命令
JP2006523884A (ja) 並行して実行されるプロセスがfifoバッファを介して通信するデータ処理
JP2011086298A (ja) プログラム・フロー制御
WO1999028817A2 (en) An instruction decoder
JP5163306B2 (ja) 動的再構成回路およびデータ送信制御方法
JP2005078309A (ja) データ処理システム
JP2006301989A (ja) 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP2002055848A (ja) プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
US20080133838A1 (en) Data processing device
JP2005275841A (ja) メモリ保護装置
JP2009075875A (ja) カウンタ回路、動的再構成回路およびループ処理制御方法
US9021234B2 (en) Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing
JP3985829B2 (ja) プロセッサ
JP2021033567A (ja) 電子制御装置
KR101646768B1 (ko) 이퀄-모델 프로세서를 위한 인터럽트 처리장치 및 처리방법과 그 처리장치를 포함하는 프로세서
JP3540802B2 (ja) 命令生成方法、命令生成方法及び情報処理装置
JP2000029508A (ja) プログラマブルコントローラ
JP2007114934A (ja) コンパイラシステム
JP6668638B2 (ja) 情報処理装置、コンパイル方法及びコンパイラ
EP0556825A1 (en) Microprocessor
JP3767539B2 (ja) 補助演算装置、中央演算装置及び情報処理装置
JP2019179408A (ja) コード生成方法、コード生成装置
JP2004234047A (ja) 電子回路およびアセンブラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees