JP2017102923A - 加速器コントローラ及びその加速器ロジックローディング方法 - Google Patents

加速器コントローラ及びその加速器ロジックローディング方法 Download PDF

Info

Publication number
JP2017102923A
JP2017102923A JP2016229897A JP2016229897A JP2017102923A JP 2017102923 A JP2017102923 A JP 2017102923A JP 2016229897 A JP2016229897 A JP 2016229897A JP 2016229897 A JP2016229897 A JP 2016229897A JP 2017102923 A JP2017102923 A JP 2017102923A
Authority
JP
Japan
Prior art keywords
dram
accelerator
logic
array
memory
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
JP2016229897A
Other languages
English (en)
Other versions
JP2017102923A5 (ja
JP6738262B2 (ja
Inventor
宏 忠 ズン,
Hongzhong Zheng
宏 忠 ズン,
牧 天 張,
Mu-Tien Chang
牧 天 張,
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 JP2017102923A publication Critical patent/JP2017102923A/ja
Publication of JP2017102923A5 publication Critical patent/JP2017102923A5/ja
Application granted granted Critical
Publication of JP6738262B2 publication Critical patent/JP6738262B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Logic Circuits (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】高い密度、低い費用、そしてさらによい柔軟性を提供するDRAM基盤の再構成可能なロジックを提供する。【解決手段】加速器コントローラ406は検出器407とローダー408とを含む。検出器は仮想マシン又はアプリケーションのランタイム特徴409を検出し、検出されたランタイム特徴に対応するアプリケーション又は仮想マシンと関連された加速器ロジック410を特定する。ローダーは特定された加速器ロジックを少なくとも1つのDRAMにロードする。少なくとも1つのDRAMのアレイは特定された加速器ロジックに基づいてLUT(Look−Up Table)として動作するか、DRAMメモリアレイとして動作するか、選択的に再構成可能である。【選択図】図4

Description

本発明はシステム構造に係り、より詳しくは、加速器コントローラ及びその加速器ロジックローディング方法に関する。
従来のプロセシング加速器(Processing Accelerator)は効率的な加速器ロジックを提供するためにFPGA(Field Programmable Gate Array)又はGPU(Graphics Processing Unit)のようなPLD(Programmable Logic Device)によって具現される。データセンターとモバイル装置向けのアプリケーションはますますデータ集中型になっており、プロセシング加速器を使用するアプリケーションに対して、従来のメモリ階層(Hierarchy)は良い性能とエネルギー効率とを提供できなかった。従来のメモリ階層内のプロセシング加速器の最大効率はオフチップ(即ち、非CPU)メモリアクセス等によって低下する。効率を改善するため、メモリ近傍に加速器ロジックを設置しても、高い費用と性能が次善に過ぎないとの理由により、今まで限定的な成功のみしか達成できなかった。さらに、仮に加速器ロジックがDRAM(Dynamic Random Access Memory)のようなメモリの近傍に具現される場合、DRAM半導体ダイ(Die)上に集積された非DRAMである加速器ロジックによってDRAM容量が減少する。
一般的に、PLDは再構成が可能なデジタル回路を構成するために使用される電子的な構成要素である。一般的に、機能が固定されるロジックゲート又はロジック回路と異なり、PLDは伝統的に製造の時には定義されない機能を有する。また、しばしばPLDが回路に使用される前に、PLDは望む機能を遂行するためにプログラムされるか、或いは再構成されなければならない。
伝統的に、PLDはロジック装置及びメモリ装置の組合せを含む。メモリは一般的に望む機能を定義するプログラミングパターンを格納するために使用される。集積回路内にデータを格納するのに使用される大部分のテクニックは、シリコンアンチヒューズ(Silicon Anti−Fuses)、SRAM(Static Random Access Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electronically EPROM)、そして不揮発性RAM(Non−Volatile RAM)等のようにPLD内において使用されるために変更されて適用されて来た。大部分のPLDは一般的にPLD内部の変更するべき(to be modified)シリコン領域にわたって特別な電圧(非通常動作電圧すなわち高電圧)を印加してプログラムされる構成要素を含む。このような特別な電圧は、使われる技術に依存するが、よって電気的連結を切るか、繋ぐかにより、PLDの電気回路のレイアウト(Layout)を変更する。
PLDの最も共通的なタイプの1つはFPGA(Field−Programmable Gate Array)である。FPGAは生産された後に顧客又は設計者によって構成されるように設計された集積回路である。このような意味により“Field−Programmable(現場でプログラムできる)”と称する。FPGAはプログラム可能なロジックブロックのアレイ、及びブロックをワイヤドORにより互いに連結するようにする再構成可能なインターコネクト(Interconnect)の階層を含む。FPGAのロジックブロックは、複雑な組合せ論理関数、又は、AND、XOR等の単純なロジックゲートを具現するように構成される。
米国特許公開第2014/814503号明細書
本発明は上述した技術的課題を解決するためのものであって、本発明の目的は検出器とローダーとを含む加速器コントローラ及びその加速器ロジックローディング方法を提供することにある。
本発明の実施形態に係る加速器コントローラは検出器とローダーとを含む。検出器は仮想マシン(Virtual Machine)又はアプリケーションのランタイム(Runtime)特徴を検出し、検出されたランタイム特徴に対応するアプリケーション又は仮想マシンと関連した加速器ロジックを特定(identify)する。ローダーは特定された加速器ロジックを少なくとも1つのDRAM(Dynamic Random Access Memory)にロード(Load)する。少なくとも1つのDRAMのアレイ(Array)は特定された加速器ロジックに基づいてLUT(Look−Up Table)として動作するか、又はDRAMメモリアレイとして動作するか、選択的に再構成可能である。
本発明の他の実施形態に係る加速器コントローラは、検出器とローダーとを含む。検出器はアプリケーション又は仮想マシンのランタイム特徴を検出する。ローダーは検出されたランタイム特徴に対応する加速器ロジックを少なくとも1つのDRAMにロード(Load)する。ここで、前記のランタイム特徴は、アプリケーション又は仮想マシンの予め定義されたID(Identification)、機能活用度、中央処理活用度、メモリ活用度、そしてアプリケーション又は仮想マシンと関連したレイテンシの中の少なくとも1つに基づく。また、前記少なくとも1つのDRAMのアレイ(Array)はランタイム特徴により特定された加速器ロジックに基づいて、LUT(Look−Up Table)として動作するか、DRAMメモリアレイとして動作するか、選択的に再構成される。
本発明の他の実施形態に係る方法は、OS環境内において実行されるアプリケーション又は仮想マシンのランタイム特徴を検出する段階、検出されたランタイム特徴に対応する加速器ロジックを特定する段階、そしてロード(Load)及び格納コマンドを使用して特定された加速器ロジックを少なくとも1つのDRAMのサブアレイ(Sub−array)内にロード(Load)する段階を含む。
本発明の実施形態によれば、DRAM基盤の再構成可能なロジックが提供される。提供されたロジックによって、従来のFPGAに比べて高い密度、低い費用、そしてさらによい柔軟性(Flexibility)が提供される。
本発明の実施形態に係る再構成可能なメモリロジック装置を示す図面である。 本発明の他の実施形態に係る再構成可能なメモリロジック装置を示すブロックダイヤグラムである。 本発明に係る1つ以上のDRAM−FPGAを含むDIMMを示すブロック図である。 本発明に係るメモリチャンネル内において1つ以上のDRAM−FPGAを使用するシステム構造を示す機能ブロック図である。 本発明に係る仮想マシン又はアプリケーションのランタイム特徴を検出し、再構成可能なDRAMサブアレイ内の仮想マシン又はアプリケーションに対応する加速器ロジックを格納する方法を示す順序図である。 本発明に係るメモリチャンネル内において1つ以上のDRAM−FPGAを使用するQPI基盤のシステム構造を示すブロック図である。 本発明に係るメモリチャンネル内において1つ以上のDRAM−FPGAを含むシステム構造を使用できる情報処理システムを示す機能ブロック図である。
以下においては、本発明の技術分野の通常の知識を有する者が本発明を容易に実施できる程度に、本発明の実施形態を明確かつ詳細に説明する。
本明細書に記載された技術的な特徴はメモリチャンネル内に1つ以上のDRAM−FPGA(Dynamic Random Access Memory Field Programmable Gate array)を使用するシステム構造に関する。DRAM−FPGAは選択的に再構成可能なDRAMセルアレイをLUT(Lookup Table)に使用し、再構成可能なロジックをメモリ近傍に具現する。また、DRAM−FPGAは任意のロジックデザインにより再構成可能である。
さらに、このようなDRAM基盤の再構成可能なロジックはDRAM製造工程と互換され、インメモリ(In−Memory)プロセシングに対する1つの良い候補である。従来のFPGAと比較して、DRAM基盤の再構成可能なロジックはより高い密度(Density)、低い費用、そしてさらによい柔軟性(Flexibility)を提供する。即ち、さらによい柔軟性はウェアハウススケール(Warehouse−Scale)のデータセンター内の他の演算ノード(Node)の間における速い移動(Migration)を提供する自体変形(Self−Modify)及び速い動的再構成を意味する。
FPGAの形態を有するPLDを使用する従来のシステム構造は一般的にPCIe(Peripheral Component Interconnect−express)スロット内にFPGAを位置させる。PCIeスロットはキャッシュ一貫性(Cach−Coherent)アドレス空間に位置せず、低い通信バンド幅(Bandwidth)を提供する。また、PCIeスロット内のFPGA内の加速器ロジックの動作はドライバーによって提供される明示的な命令によって遂行される。
図1は本発明の実施形態に係る再構成可能なメモリロジック装置100を示す図面である。再構成可能なメモリロジック装置100はLUT(Look−up Table)モード又は正規(Regular)DRAM(Dynamic Random Access Memory)モードの2つのモードにより動作するように構成され、連結される。再構成可能なメモリロジック装置100は1つ以上のサブアレイ101、I/Oインターフェイス102、及び構成インターフェイス103を含む。サブアレイ101は複数の行及び列に整列される。サブアレイ101の各々は多数のメモリセル(図示せず)を含み、多数のメモリセルはまた複数の行及び列アレイに整列される。再構成可能なメモリロジック装置100は図1に図示されない他の構成要素及び/又は部品を含む。
一実施形態として、サブアレイ101はDRAMを含む。LUT又は従来のDRAMサブアレイのように動作するために、1つ以上のサブアレイ101は一般的なメモリアクセス動作を利用して選択的に再構成されるか、或いは再びプログラムされる。再構成可能なメモリロジック装置100はここでFPGAとして示す。DRAMを含むサブアレイ101を含む再構成可能なメモリロジック装置100の実施形態に対して、再構成可能なメモリロジック装置100は本明細書において“DRAM−FPGA”と称する。
一実施形態として、LUT又はRAM(Random Access Memory)により構成されたサブアレイ101の数は必要によって動的に調整される。他の実施形態として、1つ以上のサブアレイ101は再構成が不可能であるか、或いは従来のメモリサブアレイのように構成される反面、1つ以上のサブアレイ101はLUT又は従来のメモリサブアレイのように動作するために再構成される。LUT又は従来のメモリサブアレイのように動作するように再構成可能なサブアレイはRLUT(Reconfigurable LUT)サブアレイと称する。
仮にサブアレイ101がLUTのように動作するように構成される場合、LUT動作は算術論理機能(足し算、掛け算等)、ロジック機能(AND、OR、XOR等)、又はこれらの組合せ等のロジック機能を具現する。但し、本発明はこれに制限されない。ロジック機能はサブアレイ上にメモリ書込み動作又は特別な書込み動作を遂行することによって変更される。したがって、再構成可能なメモリロジック装置100の動作中に、ロジック機能は動的に再構成されるか、或いは変更される。特別な書込み動作は書込み動作が特定サブアレイと連関されることを表示する識別子を含む。従来の書込み動作(又は類似な動作)の使用はEEPROM等のプログラムのために使用されるような特別な電圧(非動作電圧又は高い電圧)の必要無しでも選択されたサブアレイ101が再プログラミングされるようにする。
RLUTサブアレイ及びRAMサブアレイの混合(Co−mingling)は幾つか長所を提供する。例えば、RAMサブアレイ内に格納されたデータに隣接する場合、RLUTサブアレイによって遂行される計算が速くなり、電力要求量が減少する。これはデータが個別の構成要素の間のバスを通じて移動する必要がないためである。さらに、一実施形態として、1つ以上のサブアレイ101は1回によりアクセスされる。したがって、パワー消耗及び再構成可能なメモリロジック装置100の計算複雑度が減少する。このように、DRAM RLUTによって提供される近距離データコンピューティングはさらに速くてさらに効率的である。
プロセッサ(図示せず)とメモリ(図示せず)とを製造するために使用されたのと類似するDRAM技術上のRLUTサブアレイに基づき、RLUTサブアレイはプロセッサ及び/又はメモリとして同一ダイ(Die)又はパッケージ内に存在する。同一の製造工程を使用すれば、本発明に係る1つのメモリチャンネル内に1つ以上のRLUTを使用するシステムの製造費用が低下できる。さらに、DRAMサブアレイ上のRLUTサブアレイに基づくことによって、SRAM基盤のFPGAの密度と比較して相対的に高密度が達成される。例えば、SRAM基盤のFPGAがメモリセル又はビット単位の情報当たり(Per)6個のトランジスタ6Tを要求する反面、DRAM基盤のRLUTはメモリセル又はビット単位の情報当たり(Per)単に1つのトランジスタ及び1つのキャパシター1T1Cを要求する。その上、DRAM基盤のRLUTはSRAM又はフラッシュ基盤のFPGAと比較して費用を低下させる。
I/Oインターフェイス102は選択されたサブアレイ101を読み出すか、或いは書き込むように構成される。書込みアクセスはサブアレイ101に対する書込み動作を含む。これはサブアレイ101がLUTとして動作するか否か又は従来のDRAMサブアレイとして動作するか否かを定義するためである。一部の実施形態において、すべてのメモリアクセス又は動作はI/Oインターフェイス102を通過する。仮にメモリアクセスがRAMサブアレイ又はRAMサブアレイとして構成されたRLUTサブアレイのリバイバル(Revival)のためにデータを格納するサブアレイに対するアクセスである場合、I/Oインターフェイス102は単純に従来のメモリアクセスとして読出し/書込み要請を処理する。しかし、仮にメモリアクセスがLUTとして構成されたRLUTサブアレイに対するアクセスである場合、I/Oインターフェイス102はプロセシングするためにメモリアクセスを構成インターフェイス103に通過させる。
構成インターフェイス103は全体的に再構成可能なメモリロジック装置100内の信号のルーティング(Routing)を調整するか、又は各々のサブアレイ101内の信号のルーティングを調整するよう構成される。例えば、構成インターフェイス103はRLUT及び/又はRAMにより構成された複数のサブアレイ101の間の信号のルーティングを調整するように構成される。一実施形態として、I/Oインターフェイス102はサブアレイ101に対するデータアクセスを管理するように構成される。例えば、一実施形態として、I/Oインターフェイス102はプロセッサ(図示せず)から構成情報を受信する。構成情報はサブアレイ101に対するI/Oアクセスを制御するためにI/Oインターフェイス102を構成するのに使用され、これにサブアレイ101内のメモリの位置はアドレス化可能な(Addressable)レジスターとして示される。構成インターフェイス103は各々のサブアレイ101の間のインターコネクト(Interconnects)と信号ルーティングとを管理するように構成される。例えば、このようなインターコネクトと信号ルーティングとはポイントツーポイント(Point−to−Point)ルーティング、アドレス基盤のルーティング、又はこれらの組合せ等によって構成される。例えば、一実施形態として、構成情報は構成インターフェイス103を構成するのに使用されるI/Oインターフェイス102によって受信され、これにサブアレイ101は複数のサブアレイ101にわたって複雑な論理動作を遂行する。一実施形態として、I/Oインターフェイス102は構成インターフェイス103を含む。
メモリアクセスは特定サブアレイ101内のルックアップテーブル(Look−up Table)を格納する書込み動作を含む。また、メモリアクセスはLUTの大きさにしたがって一連のメモリアクセスを含む。一部の実施形態において、特定メモリアクセスはLUTに対する入力数とLUTからの出力数を示す。また、追加的なメモリアクセスはサブアレイ101に対する信号ルーティング情報及び/又は2つ以上のサブアレイ101がロジック機能(加算器等)を遂行するためにカスケード(Cascade)されているか、或いは共にルーティングされているか否かを示す。サブアレイ101によって提供される論理機能の詳細説明は本明細書の参考として引用した特許文献1に開示されている。又は、メモリアクセスはサブアレイ101を従来のRAMサブアレイとして動作するように再構成する書込み動作を含む。
図2は本発明の他の実施形態に係る再構成可能なメモリロジック装置200を示すブロックダイヤグラムである。図2を参照すれば、再構成可能なメモリロジック装置200は独立したダイ(Die)や単一ダイの一部として具現される。単一ダイの一部として具現される場合、再構成可能なメモリロジック装置200は共有ダイ(システムオンチップ、プロセッサキャッシュ等)上において他の構成要素(図示せず)と共に集積される。但し、共有ダイの種類はこれに限定されない。再構成可能なメモリロジック装置200は1つ以上のサブアレイ201、複数の通信バス202、入力信号パッド203、そして出力信号パッド204を含む。再構成可能なメモリロジック装置200はバス基盤のインターコネクションとルーティング方式により具現される。通信バス202はサブアレイ201の間のルーティング方式がサブアレイ201の間の信号を再びルーティングするために動的に変更されるようにする。
仮にサブアレイ201がLUTのように動作するように構成される場合、LUT動作は算術論理機能(足し算、掛け算等)、ロジック機能(AND、OR、XOR等)、又はこれらの組合せ等のロジック機能を具現する。サブアレイ201によって提供される数ある論理機能の詳細説明は本明細書の参考に引用された特許文献1に開示されている。ロジック機能はサブアレイ201にメモリ書込み動作又は特別な書込み動作を遂行して変更される。したがって、これは再構成可能なメモリロジック装置200の動作の中においてロジック機能を動的に再構成するか、或いは変更する。特別な書込み動作は書込み動作が特定サブアレイと連関されることを表示する識別子を含む。
一実施形態にしたがって、図1の1つ以上のサブアレイ101及び/又は図2の1つ以上の再構成可能なメモリロジック装置200はDIMM(Dual In−line Memory Module)内において使用される。即ち、1つ以上の正規DRAMモジュールと共に、DIMMは1つ以上のDRAM−FPGAモジュール、1つ以上のRLUTモジュール、1つ以上のDRAM−FPGAモジュールと1つ以上のRLUTモジュールとの組合せ、又は1つ以上のDRAM−FPGAモジュール及び/又は1つ以上のRLUTモジュールの組合せを含むように構成される。
図3(a)乃至(d)は本発明に係る1つ以上のDRAM−FPGAを含むDIMMを示すブロック図である。
図3(a)を参照すれば、DIMM300は複数のDRAM−FPGAモジュール301を含む。ここで、4つのDRAM−FPGAモジュール301を図示した。したがって、DIMM300の特定実施形態に対して、すべてのモジュール位置はDRAM−FPGAモジュール301によって満たされる。又は、すべてのモジュール位置はRLUTモジュールによって満たされ、RLUTモジュールの各々はRLUT(Reconfigurable Look−Up Table)を含む。
図3(b)を参照すれば、DIMM310は1つ以上のDRAM−FPGAモジュール301と1つ以上の正規DRAMモジュール302とを含む。ここで、2つのDRAM−FPGAモジュール301と2つの正規DRAMモジュール302とを図示した。DIMM310の特定実施形態に対して、DRAM−FPGAモジュール301と正規DRAMモジュール302との物理的な配置は何らかの順序も含む。又は、DIMM310の構成は1つ以上のRLUTモジュールと1つ以上の正規DRAMモジュール302である。
図3(c)を参照すれば、DIMM320は複数のハイブリッドDRAM−FPGAモジュール303を含む。ここで、4つのハイブリッドDRAM−FPGAモジュール303を図示した。ハイブリッドDRAM−FPGAモジュール303はLUT又は従来のDRAMサブアレイのように動作するように再構成可能な1つ以上のサブアレイを含み、従来のDRAMサブアレイのように動作する再構成が不可能である1つ以上のサブアレイを含む。即ち、DIMM320の構成はハイブリッドDRAM−FPGAモジュール303のみを含む。
図3(d)を参照すれば、DIMM330は1つ以上のハイブリッドDRAM−FPGAモジュール303と1つ以上の正規DRAMモジュール302とを含む。ここで、2つのハイブリッドDRAM−FPGAモジュール303と2つの正規DRAMモジュール302とを図示した。DIMM330の特定実施形態に対して、ハイブリッドDRAM−FPGAモジュール303と正規DRAMモジュール302との物理的配置は何らかの順序も含む。
DIMMは他の構成も含む。即ち、本発明は1つ以上のDRAM−FPGAモジュール、1つ以上の正規DRAMモジュール、1つ以上のハイブリッドDRA−FPGAモジュール及び/又は1つ以上のRLUTモジュールを含むDIMM構成が可能となるが、これに制限されない。
図4は本発明に係るメモリチャンネル内において1つ以上のDRAM−FPGAを使用するシステム構造400を示す機能ブロック図である。図5は本発明に係る仮想マシン又はアプリケーションのランタイム特徴を検出し、再構成可能なDRAMサブアレイ内の仮想マシン又はアプリケーションに対応する加速器ロジックを格納する方法500を示す順序図である。順序図500のS501乃至S504の段階は図5を参照して説明する。
図4を参照すれば、システム構造400はRAM(Random Access Memory)のようなシステムメモリ及び1つ以上の大容量ストレージ装置403に連結されたCPU401(Central Processing Unit)を含む。例えば、CPU401はメモリチャンネル402を通じてシステムメモリと連結される。システムメモリのRAMはSRAM(Static RAM)及び/又はDRAM(Dynamic RAM)を含む。一実施形態として、図4に図示したように、システムメモリは1つ以上のDIMM404内のDRAMを含む。一実施形態として、1つ以上の正規DRAMモジュールと共に、DIMM404は1つ以上のDRAM−FPGAモジュール、1つ以上のRLUTモジュール、1つ以上のDRAM−FPGAモジュールと1つ以上のRLUTモジュールの組合せ、又は1つ以上のDRAM−FPGAモジュール及び/又は1つ以上のRLUTモジュールの組合せを含むように構成される。メモリチャンネル内のDRAM−FPGAは1つ以上のDIMM404により具現される。
OS405(Operating System)はCPU401上において実行される。OS405はUnix基盤のOS、Unixと類似なOS、リナックス(登録商標)基盤のOS、クロム基盤のOS又はウインドー基盤のOS等である。但し、本発明はこれに制限されない。1つ以上の仮想マシン(VM:Virtual Machine)はOS405上において実行される。図4に図示したように、仮想マシンVM1乃至VMnはOS405上において実行される。システム構造400がデータセンター環境において具現される状況において、仮想マシンVM1乃至VMnはデータセンターアプリケーションを意味する。システム構造400がモバイル装置環境により具現される状況において、仮想マシンVM1乃至VMnはモバイル装置アプリケーションを意味する。
OS405は加速器コントローラ406を含む。加速器コントローラ406は実体化された(instantiated)仮想マシンVMと関連されたランタイム特徴を検出器407により仮想マシンVMの実体を検出する。ここで使用したように、仮想マシンVMの“ランタイム特徴”という用語は動作特性を意味する。例えば、動作特性は仮想マシンVMのID(Identity)及び/又は特定設定構成である。但し、本発明はこれに制限されない。一実施形態として、加速器コントローラ406はソフトウェア基盤、ハードウェア基盤、又はこれらの組せによって具現される。一実施形態として、加速器コントローラ406はOS405内のソフトウェアモジュールを含む。他の実施形態として、加速器コントローラ406はメモリコントローラ(図示せず)内のハードウェアモジュールを含む。
一実施形態として、加速器コントローラ406は検出器407とローダー408(Loader)とを含む。検出器407はアプリケーション又は仮想マシンVMのランタイム特徴409を検出し、検出されたランタイム特徴409に対応するアプリケーション又は仮想マシンと関連された加速器ロジック410を特定する。他の実施形態として、加速器コントローラ406はランタイムの時に仮想マシンVM又はアプリケーションをプロファイル(Profile)し、ランタイム署名(Signature)を収集し、加速器ロジック410の保管場所を探すためにランタイム署名を利用する。ランタイム署名は機能活用度、CPU活用度、レイテンシ(Latency)、及び/又は他のマイクロ構造(Micro−architecture)統計等を含む。但し、本発明はこれに制限されない。一実施形態として、仮想マシンVM又はアプリケーションのランタイム特徴を検出するのに使用されるアプリケーションのランタイム特徴409は加速器コントローラ406内に格納されるか、或いは加速器コントローラ406の一部に格納される。例えば、他の実施形態として、ランタイム特徴409は大容量ストレージ装置403内に格納され、加速器コントローラ406が初期化される時、加速器ロジック406にロード(Load)される。
仮想マシンVM又はアプリケーションの検出されたランタイム特徴409に基づいて、加速器コントローラ406はローダー408を選択し、加速器ロジック410を回収し、仮想マシンVMのための加速器ロジック410をメモリチャンネル格納命令を利用してDRAM−FPGA411内にロードする。加速器ロジック410は大容量ストレージ装置403内に格納され、仮想マシンによって利用される。一実施形態として、回収された加速器ロジック410は仮想マシンVMによって要請されるか、又は選択的に仮想マシンVMによって要請される。他の実施形態として、加速器ロジック410はOS405又はユーザーによって要請されるか、或いは勧奨(Recommend)される。他の実施形態として、加速器コントローラ406は仮想マシンVMnに対する加速器ロジック410を特定し、仮想マシンVMnはメモリチャンネル格納命令を利用して加速器ロジック410を回収してDRAM−FPGA411内に格納する。加速器ロジック410がシステム構造400のメモリチャンネル402内にあるDRAM−FPGA411内に格納されるので、これにしたがって加速器ロジック410はCPU401によって直接アクセスされるキャッシュ一貫性(Cache−Coherent)アドレス空間内に格納される。このような点において、加速器ロジック410はOS405によってアクセス可能なキャッシュ一貫性(Cach−Coherent)アドレス空間内に格納される。
図4を参照すれば、仮想マシンVMn、ランタイム特徴409、加速器ロジック410、加速器ロジック410が格納された特定DRAM−FPGA411、そして仮想マシンVMnに対するDRAM−FPGAドライバー412は左側上から右側下までのハッチング(Crosshatching)によって表示する。他の仮想マシン、その各々のランタイム特徴、加速器ロジックとDRAM−FPGA配置もまた類似に対応するハッチングによって表示する。一実施形態として、加速器コントローラ406は仮想マシンVMと対応するDRAM−FPGAドライバー412のアドレスを仮想マシンVMに伝達する。仮想マシンVMがDRAM−FPGAドライバー412にアクセスすることによって、DRAM−FPGAドライバー412はDRAM−FPGA411に格納された仮想マシンVMに対する加速器ロジック410にアクセスする。
図5は本発明に係る仮想マシン又はアプリケーションのランタイム特徴を検出し、再構成可能なDRAMサブアレイ内の仮想マシン又はアプリケーションに対応する加速器ロジックを格納する方法を示す順序図である。図4を参照して、ここで仮想マシンVMnが図5のS501段階において実体化された場合を仮定する。
S501段階において、加速器コントローラ406は仮想マシンVMnが仮想マシンVMnと関連されたランタイム特徴409に基づいて実体化されたかを検出する。S502段階において、加速器コントローラ406は仮想マシンVMnに対する加速器ロジック410を選択し、回収する。
S503段階において、加速器コントローラ406のローダー408はメモリチャンネル格納命令を利用してDRAM−FPGA411内に選択された加速器ロジック410を格納する。他の実施形態において、S503段階において加速器コントローラ406は仮想マシンVMnに対する加速器ロジック410を特定する。そして、仮想マシンVMnは図4の502aのメモリチャンネル格納命令を利用してDRAM−FPGA411内の加速器ロジック410を回収し、格納する。
S504段階において、仮想マシンVMnはDRAM−FPGAドライバー412を通じてDRAM−FPGA411内の加速器ロジック410にアクセスする。他の実施形態として、システム構造400はQPI(Quick Path Interconnect)環境のようなポイントツーポイント(Point−to−Point)プロセッサインターコネクト環境に適用される。但し、本発明はこれに制限されない。
図6は本発明に係るメモリチャンネル内において1つ以上のDRAM−FPGAを使用するQPI基盤のシステム構造600を示すブロック図である。図6を参照すれば、システム構造600はメモリチャンネル602を通じてRAM(Random Access Memory)のようなシステムメモリに、そして1つ以上の大容量ストレージ装置603に連結された2つのCPU601を含む。システムメモリのRAMはSRAM及び/又はDRAMを含む。一実施形態として、システムメモリは1つ以上のDIMM604(Dual In−line Memory Module)内に具現されたDRAMを含む。1つ以上のDRAM−FPGA605はCPU601の各々のメモリチャンネル602内において使用される。CPU601は互いにQPI基盤のインターコネクト606を通じて連結される。
図7は本発明に係るメモリチャンネル内において1つ以上のDRAM−FPGAを含むシステム構造を使用できる情報処理システム700を示す機能ブロック図である。情報処理システム700は本発明によって構成された1つ以上の装置を含む。
多様な実施形態において、情報処理システム700はコンピューティング装置として具現される。例えば、コンピューティング装置はラップトップ(Laptop)、デスクトップコンピュータ(Desktop)、ワークステーション(Workstation)、サーバー(Server)、ブレードサーバー(Blade Server)、個人用デジタル補助機(Personal Digital Assistant)、スマートフォン、タブレット(Tablet)、そして他の多様なコンピュータ、又は仮想マシンやそれらの仮想コンピューティング装置を含む。多様な実施形態において、情報処理システム700はユーザー(図示せず)によって使用される。
情報処理システム700はCPU(Central Processing Unit)、ロジック、又はプロセッサ710をさらに含む。一部の実施形態において、プロセッサ710は1つ以上のFUB(Functional Unit Block)又はCLB(Combinational Logic Block)715を含む。このような実施形態において、CLB715は多様なブール(Boolean)ロジック演算(NAND、NOR、NOT、XOR等)、安定化されたロジック装置(フリップフラップ、ラッチ等)、他のロジック装置、又はこれらの組合せを含む。組合せ論理演算(Combinational Logic Operation)は望む結果を得るために入力信号を処理するために単純であるか、或いは複雑な形態として構成される。ここで、同期化された組合せ論理演算の実施形態を記述したが、本発明はこれに制限されず、非同期化された組合せ論理演算又はこれらの組合せを含むことは容易に理解される。
一実施形態において、組合せ論理演算は複数のCMOS(Complementary Metal Oxide Semiconductors)トランジスタを含む。多様な実施形態において、このようなCMOSトランジスタはロジック演算を遂行するゲート(Gate)として配置される。但し、他の技術が使用でき、他の技術が本発明の範囲内にあることは容易に理解される。他の実施形態において、プロセッサ710を含む本発明に係る加速器コントローラを具現する構成要素をさらに含む。
本発明に係る情報処理システム700はRAMのような揮発性メモリ720をさらに含む。揮発性メモリ720はメモリチャンネルを通じてプロセッサ710によってアクセス可能である。本発明に係る情報処理システム700はハードドライブ、光学メモリ、NAND又はフラッシュメモリ等の不揮発性メモリ730をさらに含む。一部の実施形態において、揮発性メモリ720、不揮発性メモリ730、又はこれらの組合せや部分的な組合せの全ては‘記憶媒体’と称される。多様な実施形態において、揮発性メモリ720及び/又は不揮発性メモリ730は半永久的(Semi−Permanent)又は実質的に永久的な形態としてデータを格納するように構成される。
多様な実施形態において、上述した1つ以上のRLUTは揮発性メモリ720又は不揮発性メモリ730内に含まれる。上述したように、RLUTはDRAM又は他のメモリの一部として含まれる。上述したように、一部の実施形態において、揮発性メモリ720又は不揮発性メモリ730の一部分はデータを格納するのに使用され、他の部分はRLUTとして使用される。一部の実施形態において、RLUTはまたプロセッサ710及び/又はロジックの一部として看做される。上述したように、RLUTは1つ以上のロジック機能を遂行し、これにしたがって命令を遂行する。
多様な実施形態において、情報処理システム700は1つ以上のネットワークインターフェイス740を含む。ネットワークインターフェイス740は情報処理システム700が通信ネットワークの一部になるように構成され、また通信ネットワークを通じて通信するように構成される。例えば、Wi−FiプロトコルはIEEE(Institute of Electrical and Electronics Engineers)802.11g、IEEE802.11n等を含む。例えば、セルラー(Cellular)プロトコルはIEEE802.16m(Wireless−MAN(Metropolitan Area Network)Advancedとして公知される)、LTE(Long Term Evolution) Advanced、EDGE(Enhanced Data rates for GSM(登録商標)(Global System for Mobile Communications) Evolution)、HSPA+(Evolved High−Speed Packet Access)等を含む。例えば、有線プロトコルはIEEE802.3(Ethernetと公知される)、ファイバ(Fibre)チャンネル、電力ライン通信(HomePlug、IEEE1901等)等を含む。但し、本発明は上述した例に制限されない。
本発明に係る情報処理システム700はユーザーインターフェイスユニット750を含む。ユーザーインターフェイスユニット750はディスプレイアダプタ(Display Adapter)、ハプティック(Haptic)インターフェイス、ヒューマン(Human)インターフェイス装置等を含む。多様な実施形態において、ユーザーインターフェイスユニット750はユーザーから入力を受信し、又はユーザーに出力を提供するように構成される。同様に、他の形態の装置はユーザーとの相互作用を提供するために使用される。例えば、ユーザーに提供されるフィードバック(Feedback)は視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック等の何らかの形態の感覚上の(Sensory)フィードバックである。例えば、ユーザーからの入力は音響、音声、又は触覚入力等を含む何らかの形態としても受信される。
多様な実施形態において、情報処理システム700は1つ以上の他の装置又はハードウェア構成要素760を含む。ハードウェア構成要素760はディスプレイ又はモニター、キーボード、マウス、カメラ、指紋認識器、ビデオプロセッサ等を含む。但し、本発明はこれに制限されない。
本発明に係る情報処理システム700は1つ以上のシステムバス705をさらに含む。このような実施形態において、システムバス705は通信の観点で(Communicatively)プロセッサ710、揮発性メモリ720、不揮発性メモリ730、ネットワークインターフェイス740、ユーザーインターフェイスユニット750、そして1つ以上のハードウェア構成要素760と連結されるように構成される。プロセッサ710によって処理されるデータ又は不揮発性メモリ730の外部からのデータ入力は不揮発性メモリ730又は揮発性メモリ720の中の1つの内部に格納される。
多様な実施形態において、情報処理システム700は1つ以上のソフトウェア構成要素770を含むか、或いは実行する。一部の実施形態において、ソフトウェア構成要素770はOS及び/又はアプリケーションを含む。一部の実施形態において、OSはアプリケーションに1つ以上のサービスを提供するように構成され、情報処理システム700の多様なハードウェア構成要素(プロセッサ710、ネットワークインターフェイス740等)とアプリケーションとの間の仲介者(Intermediary)として動作するか、或いはこれを制御するように構成される。このような実施形態において、情報処理システム700は1つ以上のネイティブ(Native)アプリケーションを含む。ネイティブアプリケーションは不揮発性メモリ730等のように地域的に(Locally)設置され、プロセッサ710によって実行されるように構成されてOSと直接相互作用する。このような実施形態において、ネイティブアプリケーションは予めコンパイル(Compile)された機械実行(Machine−executable)コードを含む。一部の実施形態において、ネイティブアプリケーションはスクリプトインタプリタ(Script Interpreter)(C shell(csh)、AppleScript、AutoHotkey等)又は仮想実行マシンVM(Java(登録商標) Virtual Machine、Microsoft Common Language Runtime等)を含み、このようなスクリプトインタプリタ又は仮想実行マシンはソースコード又はオブジェクト(Object)コードをプロセッサ710によって実行される実行可能なコードにより翻訳するように構成される。一部の実施形態において、1つ以上のソフトウェア構成要素770は本発明の実施形態に係る加速器コントローラを具現する実行可能な命令語を含む。
上述した内容は本発明を実施するための具体的な例である。本発明には上述した実施形態のみでなく、単純に設計変更するか、或いは容易に変更できる実施形態も含む。また、本発明には上述した実施形態を利用して将来に容易に変形して実施できる技術も含む。
100、200 再構成可能なメモリロジック装置
101、201 サブアレイ
102 I/Oインターフェイス
103 構成インターフェイス
202 通信バス
203 入力信号パッド
204 出力信号パッド
300、310、320、330、404、604 DIMM
301 DRAM−FPGAモジュール
302 正規DRAMモジュール
303 ハイブリッドDRAM−FPGAモジュール
400、600 システム構造
401、601 CPU
402 メモリチャンネル
403 大容量ストレージ装置
404 DIMM
405 OS
406 加速器コントローラ
407 検出器
408 ローダー
409 ランタイム特徴
410 加速器ロジック
411、605 DRAM−FPGA
412 DRAM−FPGAドライバー
602 メモリチャンネル
603 ストレージ装置
606 インターコネクト
700 情報処理システム
705 システムバス
710 プロセッサ
715 CLB
720 揮発性メモリ
730 不揮発性メモリ
740 ネットワークインターフェイス
750 ユーザーインターフェイスユニット
760 ハードウェア構成要素
770 ソフトウェア構成要素

Claims (17)

  1. 仮想マシン(Virtual Machine)又はアプリケーションのランタイム(Runtime)特徴を検出し、前記検出されたランタイム特徴に対応する前記アプリケーション又は前記仮想マシンと関連した加速器ロジックを特定(identify)する検出器と、
    前記特定された加速器ロジックを少なくとも1つのDRAM(Dynamic Random Access Memory)にロード(Load)するローダーと、を含み、
    前記少なくとも1つのDRAMのアレイ(Array)は、前記特定された加速器ロジックに基づいてLUT(Look−Up Table)として動作するか、又は、DRAMメモリアレイとして動作するか、選択的に再構成可能であることを特徴とする加速器コントローラ。
  2. 前記少なくとも1つのDRAMをさらに含むことを特徴とする請求項1に記載の加速器コントローラ。
  3. 前記少なくとも1つのDRAMの前記アレイは、オペレーティングシステム環境のキャッシュ一貫性(Cache−Coherent)アドレス空間内にあることを特徴とする請求項1に記載の加速器コントローラ。
  4. 前記ランタイム特徴は、前記アプリケーション又は前記仮想マシンの予め定義されたID(Identification)に基づくことを特徴とする請求項1に記載の加速器コントローラ。
  5. 前記ランタイム特徴は、機能活用度(Function Utilization)、中央処理(Central Processing)活用度、メモリ活用度、そして前記アプリケーション又は前記仮想マシンと関連されたレイテンシ(Latency)の中の少なくとも1つに基づくことを特徴とする請求項1に記載の加速器コントローラ。
  6. 前記特定された加速器ロジックは、ロード(Load)及び格納コマンドを使用して前記少なくとも1つのDRAMの前記アレイ内にロード(Load)されることを特徴とする請求項1に記載の加速器コントローラ。
  7. アプリケーション又は仮想マシンのランタイム特徴を検出する検出器と、
    前記検出されたランタイム特徴に対応する加速器ロジックを少なくとも1つのDRAMにロード(Load)するローダーと、を含み、
    前記ランタイム特徴は、前記アプリケーション又は前記仮想マシンの予め定義されたID(Identification)、機能活用度、中央処理活用度、メモリ活用度、そして前記アプリケーション又は前記仮想マシンと関連したレイテンシの中の少なくとも1つに基づき、
    前記少なくとも1つのDRAMのアレイ(Array)は、ランタイム特徴により特定された加速器ロジックに基づいて、LUT(Look−Up Table)として動作するか、DRAMメモリアレイとして動作するか、選択的に再構成可能であることを特徴とする加速器コントローラ。
  8. 前記検出器は、前記検出されたランタイム特徴に対応する前記アプリケーション又は前記仮想マシンと関連された加速器ロジックを特定することを特徴とする請求項7に記載の加速器コントローラ。
  9. 前記少なくとも1つのDRAMの前記アレイは、オペレーティングシステム環境のキャッシュ一貫性アドレス空間内にあることを特徴とする請求項7に記載の加速器コントローラ。
  10. 前記加速器ロジックは、LUT(Look−Up Table)を含むことを特徴とする請求項1又は7に記載の加速器コントローラ。
  11. 前記少なくとも1つのDRAMの前記アレイは、DIMM(Dual In−line Memory Module)の一部であることを特徴とする請求項1又は7に記載の加速器コントローラ。
  12. 前記DIMMは、LUT又はDRAMメモリアレイのように動作するように選択的に再構成可能ではない少なくとも1つのDRAMアレイをさらに含むことを特徴とする請求項11に記載の加速器コントローラ。
  13. OS環境内において実行されるアプリケーション又は仮想マシンのランタイム特徴を検出する段階と、
    前記検出されたランタイム特徴に対応する加速器ロジックを特定する段階と、
    ロード(Load)及び格納コマンドを使用して前記特定された加速器ロジックを少なくとも1つのDRAMのサブアレイ(Sub−array)内にロード(Load)する段階と、を含むことを特徴とする加速器ロジックローディング方法。
  14. 前記少なくとも1つのDRAMの前記サブアレイは、選択的にLUT(Look−Up Table)として動作するか、DRAMメモリアレイとして動作するか、選択的に再構成可能であり、
    前記少なくとも1つのDRAMの前記サブアレイは、LUTのように動作するように構成され、
    前記少なくとも1つのDRAMの前記サブアレイは、DIMMの一部であり、
    前記検出されたランタイム特徴は、前記アプリケーション又は前記仮想マシンの予め定義されたID(Identification)、機能活用度、中央処理活用度、メモリ活用度、そして前記アプリケーション又は前記仮想マシンと関連されたレイテンシの中の少なくとも1つに基づくことを特徴とする請求項13に記載の加速器ロジックローディング方法。
  15. 前記加速器ロジックは、LUTを含むことを特徴とする請求項13に記載の加速器ロジックローディング方法。
  16. 前記特定された加速器ロジックは、加速器コントローラによって前記少なくとも1つのDRAMの前記サブアレイにロードされることを特徴とする請求項13に記載の加速器ロジックローディング方法。
  17. 前記特定された加速器ロジックは、前記アプリケーション又は前記仮想マシンによって前記少なくとも1つのDRAMにロードされることを特徴とする請求項13に記載の加速器ロジックローディング方法。

JP2016229897A 2015-11-30 2016-11-28 加速器コントローラ及びその加速器ロジックローディング方法 Active JP6738262B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562261306P 2015-11-30 2015-11-30
US62/261306 2015-11-30
US15/086010 2016-03-30
US15/086,010 US10013212B2 (en) 2015-11-30 2016-03-30 System architecture with memory channel DRAM FPGA module

Publications (3)

Publication Number Publication Date
JP2017102923A true JP2017102923A (ja) 2017-06-08
JP2017102923A5 JP2017102923A5 (ja) 2019-12-05
JP6738262B2 JP6738262B2 (ja) 2020-08-12

Family

ID=58777561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016229897A Active JP6738262B2 (ja) 2015-11-30 2016-11-28 加速器コントローラ及びその加速器ロジックローディング方法

Country Status (5)

Country Link
US (1) US10013212B2 (ja)
JP (1) JP6738262B2 (ja)
KR (1) KR102380776B1 (ja)
CN (1) CN106814662B (ja)
TW (1) TWI706256B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099894B2 (en) * 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10423438B2 (en) 2016-09-30 2019-09-24 Amazon Technologies, Inc. Virtual machines controlling separate subsets of programmable hardware
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10747565B2 (en) * 2017-04-18 2020-08-18 Amazon Technologies, Inc. Virtualization of control and status signals
US10503551B2 (en) * 2017-06-07 2019-12-10 Dell Products L.P. Coordinating FPGA services using cascaded FPGA service managers
CN108897706B (zh) * 2018-05-10 2021-07-23 北京融芯微科技有限公司 一种加速器接口
KR102615443B1 (ko) * 2018-05-25 2023-12-20 에스케이하이닉스 주식회사 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
US10884949B2 (en) * 2019-04-05 2021-01-05 International Business Machines Corporation On-chip logic accelerator
US11403111B2 (en) 2020-07-17 2022-08-02 Micron Technology, Inc. Reconfigurable processing-in-memory logic using look-up tables
CN112580285A (zh) * 2020-12-14 2021-03-30 深圳宏芯宇电子股份有限公司 嵌入式服务器子系统及其配置方法
US11355170B1 (en) 2020-12-16 2022-06-07 Micron Technology, Inc. Reconfigurable processing-in-memory logic
CN112947282B (zh) * 2021-03-08 2023-06-20 电子科技大学 一种应用于电源门控fpga结构中的新型隔离单元

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10285014A (ja) * 1997-04-11 1998-10-23 Nec Corp メモリ付加型プログラマブルロジックlsi
JPH11232309A (ja) * 1998-02-10 1999-08-27 Fuji Xerox Co Ltd 情報処理システム
JP2000010770A (ja) * 1998-06-17 2000-01-14 Fuji Xerox Co Ltd 情報処理システム、回路情報管理方法および回路情報記憶装置
JP2008112508A (ja) * 2006-10-30 2008-05-15 Elpida Memory Inc メモリ回路、半導体装置及びメモリ回路の制御方法
JP2012084220A (ja) * 2011-10-25 2012-04-26 Fujitsu Semiconductor Ltd メモリシステム
CN103959245A (zh) * 2011-12-02 2014-07-30 英派尔科技开发有限公司 作为服务的集成电路
JP2016123092A (ja) * 2014-12-16 2016-07-07 三星電子株式会社Samsung Electronics Co.,Ltd. Dram基盤の再構成可能なロジック装置及び方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195784B2 (en) 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US7206899B2 (en) * 2003-12-29 2007-04-17 Intel Corporation Method, system, and program for managing data transfer and construction
US20060129762A1 (en) * 2004-12-10 2006-06-15 Via Technologies, Inc. Accessible buffer for use in parallel with a filling cacheline
DE112006002300B4 (de) 2005-09-02 2013-12-19 Google, Inc. Vorrichtung zum Stapeln von DRAMs
US20070129926A1 (en) * 2005-12-01 2007-06-07 Verheyen Henry T Hardware acceleration system for simulation of logic and memory
CN101354677B (zh) * 2008-09-11 2014-12-03 青岛海信移动通信技术股份有限公司 一种应用程序运行状态的检测方法及装置
CN101477831A (zh) * 2009-01-22 2009-07-08 上海广电(集团)有限公司中央研究院 一种基于fpga器件的dram控制器
CN101924550A (zh) * 2009-06-11 2010-12-22 复旦大学 一种采用增益单元eDRAM的查找表
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
CN101717817B (zh) * 2009-07-17 2011-11-23 中国人民解放军国防科学技术大学 对基于随机上下文无关文法的rna二级结构预测进行加速的方法
US8589851B2 (en) * 2009-12-15 2013-11-19 Memoir Systems, Inc. Intelligent memory system compiler
CN104205042B (zh) * 2012-03-30 2019-01-08 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
US10558490B2 (en) * 2012-03-30 2020-02-11 Intel Corporation Mechanism for issuing requests to an accelerator from multiple threads
US9697147B2 (en) * 2012-08-06 2017-07-04 Advanced Micro Devices, Inc. Stacked memory device with metadata management
US8984368B2 (en) * 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US8880809B2 (en) 2012-10-29 2014-11-04 Advanced Micro Devices Inc. Memory controller with inter-core interference detection
US9098402B2 (en) * 2012-12-21 2015-08-04 Intel Corporation Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US9274951B2 (en) * 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10285014A (ja) * 1997-04-11 1998-10-23 Nec Corp メモリ付加型プログラマブルロジックlsi
JPH11232309A (ja) * 1998-02-10 1999-08-27 Fuji Xerox Co Ltd 情報処理システム
JP2000010770A (ja) * 1998-06-17 2000-01-14 Fuji Xerox Co Ltd 情報処理システム、回路情報管理方法および回路情報記憶装置
JP2008112508A (ja) * 2006-10-30 2008-05-15 Elpida Memory Inc メモリ回路、半導体装置及びメモリ回路の制御方法
JP2012084220A (ja) * 2011-10-25 2012-04-26 Fujitsu Semiconductor Ltd メモリシステム
CN103959245A (zh) * 2011-12-02 2014-07-30 英派尔科技开发有限公司 作为服务的集成电路
JP2015507234A (ja) * 2011-12-02 2015-03-05 エンパイア テクノロジー ディベロップメント エルエルシー サービスとしての集積回路
JP2016123092A (ja) * 2014-12-16 2016-07-07 三星電子株式会社Samsung Electronics Co.,Ltd. Dram基盤の再構成可能なロジック装置及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
柴田裕一郎、外3名: "HOSMII: DRAM混載型FPGAに基づく仮想ハードウェアシステム", 電子情報通信学会技術研究報告, vol. 第97巻,第225号, JPN6020006732, 19 August 1997 (1997-08-19), JP, pages 69 - 76, ISSN: 0004218372 *

Also Published As

Publication number Publication date
CN106814662B (zh) 2019-06-25
KR20170063334A (ko) 2017-06-08
US20170153854A1 (en) 2017-06-01
KR102380776B1 (ko) 2022-04-01
TW201723865A (zh) 2017-07-01
US10013212B2 (en) 2018-07-03
CN106814662A (zh) 2017-06-09
TWI706256B (zh) 2020-10-01
JP6738262B2 (ja) 2020-08-12

Similar Documents

Publication Publication Date Title
JP6738262B2 (ja) 加速器コントローラ及びその加速器ロジックローディング方法
JP6594762B2 (ja) Dram基盤の再構成可能なロジック装置及び方法
US11016906B2 (en) GPU virtualisation
CN109508316B (zh) 异构计算环境的设备和系统
TWI825033B (zh) 用於查找計算人工智慧加速器的裝置及多晶片模組
US11237757B2 (en) Data storage for accelerating functions
JP7132043B2 (ja) リコンフィギュラブルプロセッサ
Konishi et al. PCA-1: A fully asynchronous, self-reconfigurable LSI
KR102500357B1 (ko) 메모리 로드 및 산술 로드 유닛 융합
JP5336398B2 (ja) 半導体集積回路、半導体集積回路の構成変更方法
CN107544819B (zh) 一种用于可编程器件的业务实现方法、装置和通信终端
KR101275628B1 (ko) 듀얼 포트 메모리 기반의 영역 크기 가변이 가능한 tcm 메모리 구조의 전자칩
JP2006345349A (ja) プログラマブルロジックデバイスを搭載する半導体集積回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191017

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191017

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200717

R150 Certificate of patent or registration of utility model

Ref document number: 6738262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250