JP2013246816A - ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法 - Google Patents

ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法 Download PDF

Info

Publication number
JP2013246816A
JP2013246816A JP2013098266A JP2013098266A JP2013246816A JP 2013246816 A JP2013246816 A JP 2013246816A JP 2013098266 A JP2013098266 A JP 2013098266A JP 2013098266 A JP2013098266 A JP 2013098266A JP 2013246816 A JP2013246816 A JP 2013246816A
Authority
JP
Japan
Prior art keywords
mini
reconfigurable processor
simd
core
cores
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.)
Withdrawn
Application number
JP2013098266A
Other languages
English (en)
Inventor
Dong Kwan Suh
東 寛 徐
Suk Jin Kim
碩 鎭 金
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2013246816A publication Critical patent/JP2013246816A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

【課題】 ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法を提供する。
【解決手段】 本発明は、ミニコア基盤の再構成可能プロセッサに関するものであって、一態様によれば、ミニコア基盤の再構成可能プロセッサは、互いに異なる演算を行うファンクションユニットを含むミニコアと、ミニコアのうちからSIMD命令語の演算を行う2つ以上のミニコアの2つ以上のファンクションユニットを活性化し、活性化された2つ以上のファンクションユニットを用いてSIMD命令語を行わせる処理部と、を含みうる。
【選択図】 図1

Description

本発明は、ミニコア基盤の再構成可能プロセッサ(Reconfigurable Processor)及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法に関する。
通常、再構成可能アーキテクチャー(Reconfigurable Architecture)とは、所定の作業を行うためのコンピューティング装置のハードウェア的構成をそれぞれの作業に最適化されるように変更するアーキテクチャーを意味する。再構成可能アーキテクチャーの種類は、さまざまであるが、そのうち、コースグレインアレイ(Coarse−Grained Array;以下、CGAと称する)が代表的である。CGAは、複数個の同じコンピューティングパワーを有するファンクションユニット(Function Unit)からなる。そして、ファンクションユニット間の連結状態を調節することによって、所定の作業に最適化することが可能である。
再構成可能プロセッサは、複数個のアプリケーションドメインを処理し、ループ(loop)またはデータを加速するために、複数個の演算(Operation)を同時に稼動できるように、アレイ(array)構造を有するCGAモードを有している。さまざまなアプリケーションドメインを支援するためには、再構成可能プロセッサに多くのイントリンジック(intrinsics)が追加され、全体的な演算の数が増える。したがって、1つのファンクションユニットが、あらゆる演算を処理できるように設計することは、追加的なパイプラインを必要とし、性能に悪影響を及ぼす。
本発明は、ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法を提供することである。
本発明の一態様によれば、再構成可能プロセッサは、互いに異なる演算を行うファンクションユニット(Function Unit)を含むミニコアと、ミニコアのうちからSIMD(Single Instruction Multiple Data)命令語の演算を行う2つ以上のミニコアの2つ以上のファンクションユニットを活性化し、活性化された2つ以上のファンクションユニットを用いて、SIMD命令語を行わせる処理部と、を含みうる。
この際、ミニコアのうちの何れか1つに含まれた少なくとも1つのファンクションユニットは、そのミニコアのうちの少なくとも1つの他のミニコアに含まれた少なくとも1つのファンクションユニットと互いに同じ演算を行うことができる。
また、処理部は、SIMDのデータタイプに基づいて、SIMD命令語を行う2つ以上のミニコアを決定することができる。
本発明の追加的な態様によれば、各ミニコアは、SIMD命令語の遂行結果が臨時保存されるローカルレジスタファイルをさらに含みうる。本発明の追加的な態様によれば、再構成可能プロセッサは、ミニコアを互いに連結するための外部ネットワークをさらに含みうる。また、各ミニコアは、各ファンクションユニットを連結するための内部ネットワークをさらに含みうる。
本発明の他の態様によれば、処理部は、ミニコアに基づいたCGA(Coarse Grained Array)プロセッサまたはVLIW(Very Long Intruction Word)プロセッサとして動作する。また、各ミニコアは、CGAプロセッサまたはVLIWプロセッサで設計基本単位または拡張基本単位と定義されうる。この際、CGAプロセッサは、ループ演算を行い、VLIWプロセッサは、ループ演算以外の演算を行うことができる。
処理部は、SIMD命令語のデータタイプを識別し、データタイプは、相当量のデータのビットを含みうる。
本発明の一態様による再構成可能プロセッサを利用した多重データ処理方法は、再構成可能プロセッサのミニコアのうちからSIMD命令語の演算を行う少なくとも2つ以上のミニコアを決定する段階と、決定されたミニコアでSIMD命令語を行う2つ以上のファンクションユニットを活性化する段階と、を含みうる。
この際、各ミニコアは、互いに異なる演算を行うファンクションユニットを含みうる。また、ミニコアのうちの何れか1つに含まれた少なくとも1つのファンクションユニットは、ミニコアのうちの少なくとも1つの他のミニコアに含まれた少なくとも1つのファンクションユニットと互いに同じ演算を行うことができる。また、2つ以上のミニコアを決定する段階は、SIMDのデータタイプに基づいて、SIMD命令語を行うミニコアを決定することができる。
本発明の追加的な態様によれば、活性化されたファンクションユニットを用いて、SIMD命令語を行わせる段階をさらに含みうる。また、そのSIMD命令語の遂行結果をローカルレジスタファイルに保存する段階をさらに含みうる。
一方、ミニコアに基づいたCGAプロセッサまたはVLIWプロセッサとして動作する段階をさらに含みうる。この際、CGAプロセッサは、ループ演算を行い、VLIWプロセッサは、ループ演算以外の演算を行うことができる。また、相当量のデータのビットを含むSIMD命令語のデータタイプを識別する段階をさらに含みうる。
本発明の一態様によれば、コンピュータで読取り可能な記録媒体は、一態様による再構成可能プロセッサを利用した多重データ処理方法をコンピュータで具現するための命令語が含まれた多重データを処理するプログラムが記録されうる。
本発明の一実施形態による再構成可能プロセッサを示す図である。 本発明の他の実施形態による再構成可能プロセッサを示す図である。 本発明の一実施形態による再構成可能プロセッサのミニコアを示す図である。 本発明の一実施形態によってCGAモードで構成されたSIMD資源の例である。 本発明の一実施形態による再構成可能プロセッサを利用した多重データ処理方法のフローチャートである。
その他の実施形態の具体的な事項は、詳細な説明及び図面に含まれている。本発明の利点及び特徴、そして、それらを果たす方法は、添付される図面と共に詳細に後述されている実施形態を参照すると、明確になる。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で具現され、単に本実施形態は、本発明の開示を完全にし、当業者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によって定義されるだけである。明細書の全体に亘って同じ参照符号は、同じ構成要素を指称する。
以下、本発明の実施形態による柔軟な多重データ処理のための再構成可能プロセッサを、図面を参考にして詳しく説明する。
図1は、本発明の一実施形態による再構成可能プロセッサを示す図である。図1を参照すると、本実施形態の再構成可能プロセッサ100は、処理部101及び少なくとも2つ以上のミニコア(MC #0〜MC #19)を含みうる。
再構成可能プロセッサ100は、同じ命令語として多数のデータを処理するSIMDを支援し、処理部101とミニコアは、柔軟にSIMDを構成できるように設計されうる。それぞれのミニコア(MC #0〜MC #19)は、再構成可能プロセッサ100の設計基本単位または拡張基本単位になりうる。
一方、それぞれのミニコアは、所定の全体コンピューティングパワー(full computing power)を有しうる。ここで、コンピューティングパワー(computing power)とは、演算処理能力、すなわち、如何なるシステムがどれほど多種の演算を処理できるか否かを表わす。したがって、あるシステムのコンピューティングパワーは、そのシステムが提供することができる演算の種類に基づいて定義されうる。
例えば、演算Aと演算Bとを提供するシステムと演算Cと演算Dとを提供するシステムは、互いにコンピューティングパワーが異なると言える。また、演算A、B、Cを提供するシステムと演算A、B、C、Dを提供するシステムは、互いにコンピューティングパワーが異なり、特に、後者システムのコンピューティングパワーが高く、または多いと言える。参考までに、ここで例示したそれぞれの演算A、B、C、及びDは、‘加算’、‘乗算’、‘論理和’、‘論理積’などの演算になりうる。但し、これは理解を助けるための単純な例に過ぎないものであって、本実施形態の範囲が例示された演算に限定されず、その他に算術、論理、スカラー、ベクトル演算のように多様な演算にも適用されうるということは自明である。
それぞれのミニコア(MC #0〜MC #19)は、少なくとも2つ以上のファンクションユニットを含み、各ミニコア(MC #0〜MC #19)に含まれたファンクションユニットは、互いに異なる演算を行うように構成することができる。すなわち、再構成可能プロセッサ100は、あらゆる演算を各ファンクションユニットに分割し、そのファンクションユニットの集合、すなわち、ミニコア単位でほとんどの演算を行うようにミニコアを構成することによって、各ミニコアは、全体のコンピューティングパワーを有しうる。
もし、1つのファンクションユニットが、SIMD処理であらゆる演算を処理するならば、データ処理時間が遅延され、これを解決するために、追加的なパイプラインが必要である。しかし、本実施形態のように、各ファンクションユニットに演算を分割してミニコア基盤の再構成可能プロセッサ100を設計することによって、追加的な帯域幅や資源の必要なしに柔軟にSIMDを支援することができる。
処理部101は、多様にミニコア(MC #0〜MC #19)を組み合わせることによって、如何なるSIMD命令語に対しても支援することができる。すなわち、SIMDのデータのタイプ(例:相当量のデータのビット)によってミニコアを決定し、その決定されたミニコアに含まれたファンクションユニットを活性化して、そのSIMD命令語を行わせうる。この際、各ミニコアのファンクションユニットは、そのSIMD命令語と同じ演算を行うファンクションユニットである。SIMD命令語を処理するその決定されたミニコアは、各ミニコアの各ファンクションユニットが処理することができるデータサイズに基づいて決定されうる。
例えば、ミニコアの各ファンクションユニットが、32bitデータを処理し、解読されたSIMDのデータタイプが、64bitであるADD演算であれば、2個のミニコアに含まれたADD演算を行うファンクションユニットを組み合わせてSIMD命令語を行うことができる。また、ミニコアの各ファンクションユニットが、32bitデータを処理し、SIMDのデータタイプが、128bitであれば、4個のミニコアを組み合わせてSIMD命令語を行うことができる。このように、本実施形態の再構成可能プロセッサは、多様なSIMDのデータタイプによって柔軟にSIMDを支援することができる。
一方、処理部101は、2種の実行モードを有しうる。例えば、処理部101は、ループ演算を処理するためのCGAモードとループ演算以外の他の演算を処理するためのVLIWモードとを有しうる。
CGAモードで、処理部101は、CGAモジュール111として動作する。CGAモジュール111は、MC #4ないしMC #19の16個のミニコアと構成メモリ113とを含みうる。それぞれのMC #4ないしMC #19は、あるループ演算を並列処理することが可能である。MC #4ないしMC #19の連結(connection)またはネットワーク(network)構造は、CGAモジュール111が処理しようとするループ演算の種類によって最適化されうる。MC #4ないしMC #19の連結構造またはネットワーク構造を表わす構成情報は、構成メモリ113に保存される。言い換えれば、CGAモードで、処理部101は、構成メモリ113に保存された構成情報に基づいて、ループ演算を行うCGAモジュール111として動作する。
VLIWモードで、処理部101は、VLIWモジュール112として動作する。VLIWモジュール112は、MC #0ないしMC #3の4個のミニコアとVLIWメモリ114とを含みうる。それぞれのMC #0ないしMC #3は、VLIWメモリ114に保存された非常に長いインストラクションをVLIWアーキテクチャーに基づいて処理する。言い換えれば、VLIWモードで、処理部101は、VLIWメモリ114に保存されたインストラクションに基づいて、演算を処理するVLIWモジュール112として動作する。
追加的態様によって、幾つかのミニコアは、VLIWモード及びCGAモードが共有することができる。例えば、図1で、MC #0ないしMC #4を抜き、MC #5ないしMC #8が、VLIWモードでVLIW machineとして動作することもできる。
再構成可能プロセッサ100は、モード制御部102及びグローバルレジスタファイル(Global Register File)115をさらに含みうる。モード制御部102は、CGAモードからVLIWモードに、またはVLIWモードからCGAモードに、処理部101の動作モードの切替えを制御する。モード制御部102は、所定のモード切替信号またはモード切替命令語を生成させ、処理部101の動作いずれもの切替えを制御するために生成された所定のモード切替信号またはモード切替命令語を処理部101に伝送しうる。
例えば、処理部101は、CGAモードでループ演算を処理しながらモード制御部102からモード切替信号を受信すれば、VLIWモードに切替え、ループ演算ではない他の演算を処理することができる。この際、ループ実行結果は、グローバルレジスタファイル115に臨時保存される。また、VLIWモードで動作中であった処理部101は、モード制御部102からモード切替制御信号を受信すれば、CGAモードに切替え、グローバルレジスタファイル115でコンテキスト情報を持って来て以前に処理したループ演算を引き続き処理することができる。
このようなモード切替えのために、グローバルレジスタファイル115は、モード切替時のLive−In/Live−Outデータを臨時保存する。
前述したように、開示された実施形態によれば、全体コンピューティングパワー、すなわち、全体演算を行うことができる能力を分割して、ファンクションユニットに分配し、そのファンクションユニットの組合わせで基本処理単位であるミニコアを設計するために、高周波(High Frequency)環境で不要な資源消耗を最小化すると同時に、性能を高めることが可能である。また、多様なSIMD命令語を行うために、ミニコアを柔軟に組み合わせることによって、別途の資源や帯域幅の追加なしにSIMDを支援することができる。
図2は、本発明の一実施形態による再構成可能プロセッサを示す図である。図2を参照して、本実施形態の再構成可能プロセッサ200を詳しく説明する。
再構成可能プロセッサ200は、少なくとも2つ以上のミニコア201と、それぞれのミニコア201を連結する外部ネットワーク202とを含みうる。それぞれのミニコア201は、相互独立して命令語、作業、またはタスクなどを処理することができる。例えば、ミニコアMC #0とMC #1は、互いに依存関係のない2つの命令語を同時に処理することが可能である。また、互いに異なる2つ以上のミニコアは、同一な1つの命令語を処理することができる。この際、その2つ以上のミニコアは、同一な1つの命令語に対して多数のデータ(SIMD)を処理することができる。
それぞれのミニコア201は、再構成可能プロセッサ200の設計基本単位または拡張基本単位になりうる。図2に示したように、ミニコア201は、必要に応じて追加的に拡張されうる。
外部ネットワーク202は、それぞれのミニコア201を通信可能に連結する。例えば、MC #0で生成されたデータが、外部ネットワーク202を通じてMC #3に伝達されうる。外部ネットワーク202の構成は、構成情報(configuration information)によって可変である。例えば、別途のメモリ、すなわち、図1に示された構成メモリ113に保存された構成情報に基づいて、外部ネットワーク202の構成、すなわち、ミニコア101間の連結状態が変更されうる。
ミニコア201間のコンピューティングパワーは、同一または異なってもよい。例えば、あるミニコア(201)MC #0は、A、B、C、Dの演算を行い、他のミニコア(201)MC #2は、A、C、Eの演算を行うことができる。各ミニコア201は、少なくとも1つの同じ演算を行うように構成することができる。2つ以上のミニコア201は、SIMD命令語のデータタイプ(16bit、32bit、64bit、128bitなど)によって同じ演算を行うように組み合わせられる。
一例によれば、各ミニコア201は、ローカルレジスタファイル(Local Register File、LRF)(図示せず)を含みうる。各ミニコア201は、ローカルレジスタファイルを用いて、データを臨時保存することができる。
さらに他の追加的態様によって、再構成可能プロセッサ100、すなわち、処理部101は、CGAプロセッサまたはVLIWプロセッサとして動作する。例えば、再構成可能プロセッサが、CGAモードとして動作する時には、4個のミニコア(例えば、MC #3〜MC#6)が、CGAアーキテクチャーに基づいてループ演算を処理し、VLIWモードとして動作する時には、一部のミニコア(例えば、MC #0及びMC #2)が、ループ以外の一般演算を処理することが可能である。
図3は、本発明の一実施形態による再構成可能プロセッサのミニコアを示す図である。図3に示したように、それぞれのミニコア300は、少なくとも2つ以上のファンクションユニット301とそれぞれのファンクションユニット301を連結する内部ネットワーク303とを含みうる。各ファンクションユニット301は、スカラー演算(例:SFU #0)またはベクトル演算(例:VFU #0)を行うことができる。
さらに具体的に、各ミニコア300に含まれたファンクションユニット301は、互いに異なる演算を行うことができる。すなわち、1つのファンクションユニット301を通じてアプリケーションのあらゆる演算を処理させる代りに、多くのファンクションユニットでアプリケーションの各演算を分けて行うように分配し、アプリケーションの全体演算またはほとんどの演算を行うファンクションユニットの集合を1つのミニコア300で構成することができる。
一例として、演算A、B、C、Dは、4個のファンクションユニット301(VFU #0〜VFU #3)で処理されるように分配されうる。この4個のファンクションユニット(VFU #0〜VFU #3)は、アプリケーションのあらゆる演算を処理するように1つのミニコア300で構成することができる。しかし、これは、単に一実施形態に過ぎず、ファンクションユニット301は、多様な演算を行うように構成することができる。
一方、互いに異なる演算を行う多数のファンクションユニット301を有するミニコア300の数は、減少または増加しうる。この際、何れか1つのミニコア300の何れか1つのファンクションユニット301は、他のミニコアのファンクションユニット301と互いに同じ演算を行うように構成することができる。
内部ネットワーク303は、それぞれのファンクションユニット301を通信可能に連結する。例えば、何れか1つのファンクションユニット301(例:VFU #0)で生成されたデータが、内部ネットワーク303を通じて他のファンクションユニット301(例:VFU #1)に伝達されうる。内部ネットワーク303の構成(例:ファンクションユニット301間の連結状態など)は、構成情報に基づいて可変である。例えば、図1に示された構成メモリ113に保存された構成情報に基づいて、内部ネットワーク303の構成が変更されうる。
追加的態様によって、それぞれのミニコア300は、各ファンクションユニット301に対応し、各種の処理結果を臨時保存するローカルレジスタファイル(LRF)(図示せず)を有することもある。ミニコア300は、ローカルレジスタファイルにSIMD命令語の処理結果を臨時保存し、該保存された処理結果を利用することによって、別途のベクトルレジスタファイルを追加する必要なしにSIMD処理を支援することができる。
図4は、本発明の一実施形態によるCGAモードで柔軟に構成されたSIMD資源の一例である。図4の(a)と図4の(b)は、CGAモードで一定の単位サイズにSIMDを構成したことを例示したものであり、図4の(c)は、CGAモードで柔軟なサイズにSIMDを構成したことを例示したものである。CGAモードで、それぞれのファンクションユニット(0〜15)は、SIMD資源またはスカラー資源として活用されうる。一例として、SIMDのデータタイプによって、図4のように多様にSIMDを構成することができる。図4の(a)は、解読されたデータタイプが、128bitであるSIMD資源の例であって、4個のミニコア400a(MC0〜MC3)が同じコンピューティングパワー、すなわち、同じ演算処理能力を有する。
さらに具体的に、ミニコアMC0のファンクションユニット(0、1、2、3)、MC1のファンクションユニット(4、5、6、7)、MC2のファンクションユニット(8、9、10、11)、及びMC3のファンクションユニット(12、13、14、15)は、それぞれ同じ演算(A、B、C、D)を行うことができる。もし、各ファンクションユニットが、32bitデータを処理し、解読された命令語のデータタイプが、128bitであるSIMD命令語(A)である場合、4個のミニコア(MC0〜MC3)のファンクションユニット(0、4、8、12)を用いて処理することができる。
図4の(b)は、データタイプが、64bitであるSIMD資源を例示したものであって、2つのミニコア400b(MC0とMC1またはMC2とMC3)の同じ演算を行うファンクションユニットを用いて、64bitデータ処理のためのSIMD資源を構成することができる。例えば、ミニコアMC0とMC1とのファンクションユニット0と4は、SIMD資源で組み合わせられて、SIMD命令語の演算Aを処理するように利用されうる。
一方、他の態様によれば、図4の(c)は、解読されたSIMD命令語に基づいて柔軟に構成されたSIMD資源400cを表わしたものであって、互いに異なる数の各ミニコア(MC0〜MC3)に含まれた同じ演算を行うファンクションユニットは、柔軟なSIMD資源400cを構成するために、SIMD命令語に基づいて組み合わせられる。
例えば、ミニコアMC0ないしMC3のファンクションユニット0、4、8、12は、互いに異なる演算を行い、1つのSIMD資源で組み合わせられない。ミニコアMC0ないしMC3のファンクションユニット1、5、9、13は、互いに同じ演算を行い、MC0とMC1とのファンクションユニット2と6、及びMC2とMC3とのファンクションユニット10、14は、互いは同じ演算を行う。また、ミニコアMC0ないしMC3のファンクションユニット3、7、11、及び15は、同じ演算を行う。したがって、このようなファンクションユニットのそれぞれは、SIMD資源400cを構成することができる。
他の態様によれば、VLIWモードで柔軟にSIMD資源を構成することができる。VLIWモードで、柔軟なSIMD構成の動作原理は、発行された命令語を解読して獲得された演算が32bitであり、各ファンクションユニットが、32bitを処理できるならば、対応するファンクションユニットは、解読された演算を行う。もし、獲得された演算が、64bit以上であれば、2つ以上のミニコアのファンクションユニットを組み合わせて演算を処理することができる。他の例として、SIMD命令語に含まれた128bit演算の場合、ミニコア4個のファンクションユニットを用いて行うことができる。
一般的に、同じ演算を行うグループを一回に集めてベクトル単位で処理することによって、データの並列性を高めてデータ処理能を高めるためには、データ経路の帯域幅(bandwidth)を増やさなければならないが、本実施形態によれば、データタイプによって、柔軟に各ミニコアのファンクションユニットを互いに連結してSIMDを構成することによって、別途のデータ経路の幅を増やす必要なしに処理することができる。
本実施形態による柔軟なSIMD構成のための再構成可能プロセッサは、前述したように、ファンクションユニットの処理結果をローカルレジスタファイル(図示せず)に保存することができる。したがって、ベクトルタイプを支援するために、別途のベクトルレジスタファイル及び並列処理のための追加的な資源が必要ではなく、与えられたローカルレジスタファイル及び資源を用いて柔軟なSIMDを支援することができる。
図5は、本発明の一実施形態による再構成可能プロセッサを利用した多重データ処理方法のフローチャートである。図5を参照して、再構成可能プロセッサを利用した多重データ処理方法を説明する。
多重データ処理方法は、まず、再構成可能プロセッサの処理部101は、発行されたSIMD命令語を解読(decode)して、データタイプ(例:データのビット数)を確認する(段階510)。次いで、処理部101は、解読されたSIMD命令語のデータタイプに基づいてSIMD命令語を行うミニコアを決定し、ミニコアを組み合わせることができる(段階520)。各ミニコアに含まれたファンクションユニットで処理することができるデータサイズによってSIMD命令語を処理するミニコアの数を柔軟に構成することによって、多様なデータタイプのSIMD命令語の処理が可能である。
例えば、各ファンクションユニットが、32bitのデータを処理し、解読されたSIMD命令語のデータタイプが、64bitであれば、SIMD命令語を行う2個のミニコアを決定する。すなわち、データタイプが、64bitであれば、2個のミニコアを含むSIMD資源は、図4の(b)に例示されたように構成することができる。他の例として、各ファンクションユニットが、32bitのデータを処理し、データタイプが、128bitであれば、4個のミニコアが決定される。すなわち、データタイプが、128bitであれば、図4の(a)のように、SIMD資源を構成することができる。一方、図4の(c)のように、ある再構成可能プロセッサで多様なSIMD命令語を処理するために、互いに異なる数のミニコア400cを連結して柔軟なSIMD資源を構成することも可能である。
次いで、処理部101は、決定されたミニコアのファンクションユニットを活性化させうる(段階530)。この際、各ミニコアの活性化されたファンクションユニットは、互いに同じ演算を行うことができる。例えば、図4の(a)を参照すると、4個のミニコア(MC0〜MC3)が、同じコンピューティングパワー、すなわち、同じ演算処理能力を有する。すなわち、ミニコアMC0のファンクションユニット(0、1、2、3)、MC1のファンクションユニット(4、5、6、7)、MC2のファンクションユニット(8、9、10、11)、及びMC3のファンクションユニット(12、13、14、15)は、それぞれ同じ演算(A、B、C、D)を行うことができる。図4の(c)を参照すると、ミニコアMC0ないしMC3のファンクションユニット0、4、8、12は、互いに異なる演算を行い、MC0ないしMC3のファンクションユニット1、5、9、13は、互いに同じ演算を行い、MC0とMC1とのファンクションユニット2と6、及びMC2とMC3とのファンクションユニット10、14は、互いは同じ演算を行うことができる。また、ミニコア(MC0〜MC3)のファンクションユニット3、7、11、及び15は、互いに同じ演算を行う。したがって、このファンクションユニットは、それぞれSIMD資源400cを構成するために組み合わせられ、各SIMD命令語を処理するために活性化されうる。
次いで、処理部101は、活性化されたファンクションユニットを通じてSIMD命令語を行い、その演算結果をローカルレジスタファイルに記録することができる(段階540)。
一方、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを介した伝送)の形態で具現するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
当業者なら、本発明が、その技術的思想や必須的な特徴を変更せずとも、他の具体的な形態で実施されることを理解できるであろう。したがって、前述した実施形態は、あらゆる面で例示的なものであり、限定的ではないということを理解しなければならない。本発明の範囲は、前記詳細な説明よりは後述する特許請求の範囲によって表わされ、特許請求の範囲の意味及び範囲、そして、その均等概念から導出されるあらゆる変更または変形された形態が、本発明の範囲に含まれると解析しなければならない。
本発明は、ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法関連の技術分野に適用可能である。
100 再構成可能プロセッサ
101 処理部
111 CGAモジュール
112 VLIWモジュール
113 構成メモリ
114 VLIWメモリ
115 グローバルレジスタファイル
200 再構成可能プロセッサ
201 ミニコア
202 外部ネットワーク
300 ミニコア
301 ファンクションユニット
303 内部ネットワーク

Claims (20)

  1. 互いに異なる演算を行うファンクションユニット(Function Unit)を含むミニコアと、
    前記ミニコアのうちからSIMD(Single Instruction Multiple Data)命令語の演算を行う2つ以上のミニコアの2つ以上のファンクションユニットを活性化し、前記活性化された2つ以上のファンクションユニットを用いて、前記SIMD命令語を行わせる処理部と、
    を含む再構成可能プロセッサ。
  2. 前記ミニコアのうちの何れか1つに含まれた少なくとも1つのファンクションユニットは、前記ミニコアのうちの少なくとも1つの他のミニコアに含まれた少なくとも1つのファンクションユニットと互いに同じ演算を行う請求項1に記載の再構成可能プロセッサ。
  3. 前記処理部は、
    前記SIMDのデータタイプに基づいて、前記SIMD命令語を行う前記2つ以上のミニコアをさらに決定する請求項1に記載の再構成可能プロセッサ。
  4. 前記各ミニコアは、
    前記SIMD命令語の遂行結果が臨時保存されるローカルレジスタファイルをさらに含む請求項1に記載の再構成可能プロセッサ。
  5. 前記ミニコアを互いに連結するための外部ネットワークをさらに含む請求項1に記載の再構成可能プロセッサ。
  6. 前記各ミニコアは、
    前記各ファンクションユニットを連結するための内部ネットワークをさらに含む請求項1に記載の再構成可能プロセッサ。
  7. 前記処理部は、
    前記ミニコアに基づいたCGA(Coarse Grained Array)プロセッサまたはVLIW(Very Long Intruction Word)プロセッサとして動作する請求項1に記載の再構成可能プロセッサ。
  8. 前記各ミニコアは、
    前記CGAプロセッサまたは前記VLIWプロセッサで設計基本単位または拡張基本単位と定義される請求項7に記載の再構成可能プロセッサ。
  9. 前記CGAプロセッサは、ループ演算を行い、前記VLIWプロセッサは、ループ演算以外の演算を行う請求項7または8に記載の再構成可能プロセッサ。
  10. 前記処理部は、
    前記SIMD命令語のデータタイプを識別し、前記データタイプは、相当量のデータのビットを含む請求項1に記載の再構成可能プロセッサ。
  11. 再構成可能プロセッサのミニコアのうちからSIMD命令語の演算を行う少なくとも2つ以上のミニコアを決定する段階と、
    それぞれSIMD命令語を行う前記決定された2つ以上のミニコアの2つ以上のファンクションユニットを活性化する段階と、
    を含む再構成可能プロセッサを利用した多重データ処理方法。
  12. 前記各ミニコアは、互いに異なる演算を行うファンクションユニットを含む請求項11に記載の再構成可能プロセッサを利用した多重データ処理方法。
  13. 前記ミニコアのうちの何れか1つに含まれた少なくとも1つのファンクションユニットは、前記ミニコアのうちの少なくとも1つの他のミニコアに含まれた少なくとも1つのファンクションユニットと互いに同じ演算を行う請求項11または12に記載の再構成可能プロセッサを利用した多重データ処理方法。
  14. 前記2つ以上のミニコアを決定する段階は、
    前記SIMDのデータタイプに基づいて、前記SIMD命令語を行う2つ以上のミニコアを決定する請求項11に記載の再構成可能プロセッサを利用した多重データ処理方法。
  15. 前記活性化された2つ以上のファンクションユニットを用いて、SIMD命令語を行わせる段階をさらに含む請求項11に記載の再構成可能プロセッサを利用した多重データ処理方法。
  16. 前記SIMD命令語の遂行結果を保存する段階をさらに含む請求項15に記載の再構成可能プロセッサを利用した多重データ処理方法。
  17. ミニコアに基づいたCGAプロセッサまたはミニコアに基づいたVLIWプロセッサとして動作する段階をさらに含む請求項11に記載の再構成可能プロセッサを利用した多重データ処理方法。
  18. 前記CGAプロセッサは、ループ演算を行い、前記VLIWプロセッサは、ループ演算以外の演算を行う請求項17に記載の再構成可能プロセッサを利用した多重データ処理方法。
  19. 相当量のデータのビットを含む前記SIMD命令語のデータタイプを識別する段階をさらに含む請求項11に記載の再構成可能プロセッサを利用した多重データ処理方法。
  20. コンピュータで前記請求項11の方法を具現するための命令語が含まれた多重データを処理するプログラムが記録されたコンピュータで読取り可能な記録媒体。
JP2013098266A 2012-05-24 2013-05-08 ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法 Withdrawn JP2013246816A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120055621A KR20130131789A (ko) 2012-05-24 2012-05-24 미니코어 기반의 재구성 가능 프로세서 및 그 재구성 가능 프로세서를 이용한 유연한 다중 데이터 처리 방법
KR10-2012-0055621 2012-05-24

Publications (1)

Publication Number Publication Date
JP2013246816A true JP2013246816A (ja) 2013-12-09

Family

ID=49622509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013098266A Withdrawn JP2013246816A (ja) 2012-05-24 2013-05-08 ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法

Country Status (4)

Country Link
US (1) US20130318324A1 (ja)
JP (1) JP2013246816A (ja)
KR (1) KR20130131789A (ja)
CN (1) CN103425625A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970720B (zh) * 2014-05-30 2018-02-02 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法
KR102593320B1 (ko) 2016-09-26 2023-10-25 삼성전자주식회사 전자 장치, 프로세서 및 그 제어 방법
CN113867788A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 一种计算装置、芯片、板卡、电子设备和计算方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005041672A1 (de) * 2005-09-01 2007-03-15 Micronas Gmbh SIMD-Prozessorarchitektur bzw. Verfahren zum Verarbeiten von Daten verschiedenen Datentyps in einer SIMD-Prozessorarchitektur
US7584327B2 (en) * 2005-12-30 2009-09-01 Intel Corporation Method and system for proximity caching in a multiple-core system
GB0605349D0 (en) * 2006-03-17 2006-04-26 Imec Inter Uni Micro Electr Reconfigurable multi-processing coarse-grain array

Also Published As

Publication number Publication date
KR20130131789A (ko) 2013-12-04
CN103425625A (zh) 2013-12-04
US20130318324A1 (en) 2013-11-28

Similar Documents

Publication Publication Date Title
US8595280B2 (en) Apparatus and method for performing multiply-accumulate operations
US20130124823A1 (en) Methods, apparatus, and instructions for processing vector data
US20150012723A1 (en) Processor using mini-cores
JP6317065B2 (ja) 再構成可能プロセッサ及びそのコード変換装置及び方法
US9081564B2 (en) Converting scalar operation to specific type of vector operation using modifier instruction
EP3326060B1 (en) Mixed-width simd operations having even-element and odd-element operations using register pair for wide data elements
US20140317626A1 (en) Processor for batch thread processing, batch thread processing method using the same, and code generation apparatus for batch thread processing
US20140317388A1 (en) Apparatus and method for supporting multi-modes of processor
CN107851016B (zh) 向量算术指令
KR101912427B1 (ko) 재구성가능 프로세서 및 재구성가능 프로세서의 미니 코어
JP2013246816A (ja) ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法
JP2013161484A (ja) 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法
Abdelhamid et al. MITRACA: A next-gen heterogeneous architecture
JP2006512661A (ja) 処理システム
US20110271078A1 (en) Processor structure of integrated circuit
CN112486904A (zh) 可重构处理单元阵列的寄存器堆设计方法及装置
GB2540944A (en) Vector operand bitsize control
JP2007334819A (ja) ベクトルリネーミング方式およびベクトル型計算機
JP2004021890A (ja) データ処理装置
US20150006850A1 (en) Processor with heterogeneous clustered architecture
US20100174885A1 (en) Reconfigurable processor and operating method of the same
JPH1091439A (ja) プロセッサ
US20140281368A1 (en) Cycle sliced vectors and slot execution on a shared datapath
US20190087521A1 (en) Stochastic dataflow analysis for processing systems
JP2022546785A (ja) 迅速かつ広範な結果生成のための隣接simdユニットの再利用

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160502

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20160905