WO2014209286A1 - Reconfiguration with virtual machine switching - Google Patents

Reconfiguration with virtual machine switching Download PDF

Info

Publication number
WO2014209286A1
WO2014209286A1 PCT/US2013/047650 US2013047650W WO2014209286A1 WO 2014209286 A1 WO2014209286 A1 WO 2014209286A1 US 2013047650 W US2013047650 W US 2013047650W WO 2014209286 A1 WO2014209286 A1 WO 2014209286A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
accelerator
map
processor
trigger
Prior art date
Application number
PCT/US2013/047650
Other languages
English (en)
French (fr)
Inventor
Ezekiel Kruglick
Original Assignee
Empire Technology Development, Llc
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 Empire Technology Development, Llc filed Critical Empire Technology Development, Llc
Priority to US14/233,848 priority Critical patent/US9619265B2/en
Priority to CN201380077736.2A priority patent/CN105393218B/zh
Priority to PCT/US2013/047650 priority patent/WO2014209286A1/en
Publication of WO2014209286A1 publication Critical patent/WO2014209286A1/en

Links

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/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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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

Definitions

  • multiple processor cores may be included in a single integrated circuit die or on multiple integrated circuit dies that are arranged in a single chip package.
  • a cache may be used to store data for access by one or more of the processor cores.
  • An accelerator may be a special purpose processor focused on one or more applications.
  • the methods may include detecting a trigger.
  • the trigger may indicate a command has been sent to a processor to switch from execution of a first virtual machine to a second virtual machine.
  • the methods may include, in response to detecting the trigger, selecting a programmable circuit and a program for the programmable circuit, where the programmable circuit is associated with the second virtual machine.
  • the methods may further include generating a write command to write the program to the programmable circuit.
  • the devices may include a memory, a switch detector, and a second processor.
  • the switch detector may be effective to detect a trigger.
  • the trigger may indicate that a command has been sent to a first processor to switch from execution of a first virtual machine to a second virtual machine.
  • the second processor may be configured to be in communication with the memory and the switch detector.
  • the second processor may be effective to detect the trigger.
  • the second processor may be effective to identify an accelerator and accelerator map for the programmable circuit associated with the second virtual machine.
  • the second processor may be effective to generate a write command to write the accelerator map to the accelerator.
  • the systems may include a first processor, a virtual machine manager, a programmable circuit, and a reconfiguration device.
  • the virtual machine manager may be effective to send a command to the first processor to switch from execution of a first virtual machine to a second virtual machine.
  • the virtual machine manager may further be effective to generate a trigger in response to the command.
  • the reconfiguration device may include a memory, a switch detector, and a second processor.
  • the second processor may be effective to detect the trigger.
  • the second processor may be effective to identify the programmable circuit and a map associated with the second virtual machine.
  • the second processor may be effective to generate a write command to write the map to the programmable circuit.
  • Fig. 1 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching
  • Fig. 2 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching
  • Fig. 3 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching
  • Fig. 4 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching
  • Fig. 5 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching
  • Fig. 6 depicts a flow diagram for an example process for implementing reconfiguration with virtual machine switching
  • Fig. 7 illustrates a computer program product that can be utilized to implement reconfiguration with virtual machine switching
  • Fig. 8 is a block diagram illustrating an example computing device that is arranged to implement reconfiguration with virtual machine switching
  • This disclosure is generally drawn, inter alia, to methods, apparatus, systems, devices, and computer program products related to reconfiguration with virtual machine switching.
  • An accelerator reconfiguration device may detect a trigger.
  • the trigger may indicate that a command has been sent to a processor to switch from execution of a first virtual machine to a second virtual machine.
  • the reconfiguration device may identify a programmable circuit and a program for the programmable circuit associated with the second virtual machine.
  • the reconfiguration device may further generate a write command to write the program to the programmable circuit.
  • FIG. 1 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching arranged in accordance with at least some embodiments described herein.
  • An example system 100 may include a processor core 108, a programmable circuit such as an accelerator 102, a
  • programmable circuit such as an accelerator 104, a programmer such as an accelerator programmer 112, a virtual machine manager 120 and/or an accelerator reconfiguration device 116 all arranged in communication with one another.
  • Accelerator programmer 112 may be a dedicated unit or a general purpose processor.
  • Processor core 108 may include a memory 106 effective to store information that may be used by processor core 108 during operation. Accelerators 102 or 104 may be configured or reconfigured by a map 114 to be operable to execute a particular application or code.
  • processor core 108, reconfigurable accelerators 102, 104, accelerator programmer 112, virtual machine manager 120 and/or an accelerator reconfiguration device 116 may be located on the same die 110.
  • one or more of processor core 108, reconfigurable accelerators 102, 104, accelerator programmer 112, virtual machine manager 120 and/or an accelerator reconfiguration device 116 may be located on different dies.
  • Accelerator reconfiguration device 116 may be implemented as software, hardware, or a combination of software and hardware. Accelerator reconfiguration device 116 may be part of virtual machine manager 120. Processor core 108 may be configured to use one or more of reconfigurable accelerator 102, 104 to perform operations or tasks..
  • Accelerator programmer 112 may include accelerator maps 114.
  • Accelerator maps 114 may correspond to one or more programs for reconfigurable accelerators 102, 104. Accelerator maps 114 may include binary data that may be streamed into gates of reconfigurable accelerators. Accelerator programmer 112 may be configured to program reconfigurable accelerators 102, 104 based on accelerator maps 114.
  • Accelerator programmer 112 may be configured to program
  • accelerator maps 114 may be effective to define states of gates or switches in an FPGA (field programmable gate array), EEPROM (electrically erasable
  • processor core 108 may control accelerator programmer 112 to load a requested accelerator map 114 into reconfigurable accelerator 102, 104 based on an execution queue.
  • virtual machine manager 120 may send a command to processor core 108 to implement a first virtual machine. After a period of time, virtual machine manager 120 may send a switch command 142 to processor core 108 to implement a second virtual machine.
  • Virtual machine manager 120 may be, for example, a hypervisor.
  • switch command 142 may be effective to implement a context switch in processor core 120 or a world switch in processor core 120.
  • processor core 108 may stop processing instructions that correspond to the first virtual machine and may start processing instructions that correspond to the second virtual machine.
  • a state of processor core 108 may remain unaltered.
  • the state of processor core 108 may correspond to the state registers, buffers, caches etc. of processor core 108.
  • Context switching may be used in situations where resources are shared between operations and those resources modify user memory but not low level system state.
  • Virtual machine manager 120 may be used to implement a world switch in situations where a virtual machine being implemented by processor core 108 requests access to low level system states. In world switching, processing states may be captured and saved and then replaced with a saved state of another virtual machine or "world”.
  • virtual machine manager 120 may be configured to send switch command 142 to processor core 108.
  • Switch command 142 may be a command to processor core 108 to switch from a first virtual machine to a second virtual machine.
  • Switch command 142 may be, for example, a world switch command or a context switch command
  • information in registers and queues of processor core 108, and information regarding states, and other processor core information may be saved by virtual machine manager 120 and stored in VMM memory 118. Prior information relating to the second virtual machine may be transferred from VMM memory 118 to processor core 108 by virtual machine manager 120.
  • Accelerator reconfiguration device 116 may be configured to detect switch command 142.
  • Accelerator reconfiguration device 116 may further be configured to reconfigure one or more of reconfigurable accelerators 102, 104 in response detecting switch command 142.
  • FIG. 2 illustrates an example system that can be utilized to implement reconfiguration with virtual machine switching arranged in accordance with at least some embodiments described herein. Those components in Fig. 2 that are labeled identically to components of Fig. 1 will not be described again for the purposes of clarity.
  • accelerator programmer 112 may load map 224 to reconfigurable accelerator 102. Accelerator programmer 112 may also load map 226 to
  • reconfigurable accelerator 104 When accelerator programmer 112 loads maps 224, 226 to reconfigurable accelerators 102, 104, a map copy 228, that includes a copy of map 224 and/or 226, may be sent to accelerator reconfiguration device 116.
  • virtual machine manager 120 may also send a trigger 222 to accelerator reconfiguration device 116.
  • Trigger 222 may indicate that virtual machine manager 120 has sent switch command 142 to processor core 108.
  • accelerator reconfiguration device 116 may send a write command 238 to an appropriate reconfigurable accelerator 102, 104.
  • Write command 238 may be a command to write the map in map copy 228 to an applicable reconfigurable accelerator 102, 104.
  • Reconfiguration memory 336 may be adapted to store active accelerator maps 330 and/or virtual machine to accelerator relationships data 332.
  • accelerator reconfiguration device 116 receives map copy 228, copies of maps for reconfigurable accelerators 102, 104 may be stored in active accelerator maps 330.
  • Processor 340 may determine an active virtual machine at a time when maps 224, 226 are sent to reconfigurable accelerators 102, 104.
  • a program executing within a virtual machine may recognize accelerator maps that are active.
  • Processor 340 may store an association between the active virtual machine and active accelerator maps 224, 226 in virtual machine to accelerator relationships data 332.
  • Virtual machine to accelerator relationships data 332 may include a table identifying relationships between virtual machines, accelerators, and accelerator maps.
  • Virtual machine switch detector 334 may be configured to detect switch command 142 such as by detecting trigger 222.
  • processor 340 may identify the particular virtual machine identified in switch command 142.
  • trigger 222 may be a signal sent from virtual machine manager 120 and may identify the particular virtual machine in switch command 142.
  • Processor 340 may then analyze virtual machine to accelerator relationships data 332 to identify a particular reconfigurable accelerator associated with the particular virtual machine.
  • Processor 340 may also identify the particular accelerator map from active accelerator maps 330 associated with the particular virtual machine.
  • Processor 340 may generate write command 238 to write the particular accelerator map to the particular reconfigurable accelerator.
  • processor 340 may identify which virtual machine is under execution by processor core 108. For example, processor 340 may communicate with virtual machine manager 120 and/or processor core 108 to identify the virtual machine under execution. Alternatively, virtual machine manager 120 may send a signal, such as trigger 222, to accelerator reconfiguration device 116 indicating what virtual machine is under execution. Processor 340 may then update virtual machine to accelerator relationships data 332 to associate the virtual machine under execution with the corresponding accelerator and map.
  • a direct memory access environment may be used to wall off location ranges in memory 106 so that those ranges belong to particular virtual machines and are inaccessible to other virtual machines.
  • Virtual machine to accelerator relationship data 332 may store associations between virtual machines and memory location ranges.
  • Processor 340 may then analyze virtual machine to accelerator relationship data 332 and detect that processor core 108 has switched to executing a different virtual machine based upon memory locations being accessed. For example, a first virtual machine may be associated memory locations 1 through 5 of memory 106.
  • a second virtual machine may be associated with memory locations 6 through 10 in memory 106.
  • Virtual machine to accelerator relationship data 332 may be configured to store indications of a virtual machine, an associated accelerator, a map, and a range of memory locations in memory 106.
  • Fig. 4 illustrates an example system that can be utilized to implement accelerator reconfiguration with virtual machine switching arranged in accordance with at least some embodiments described herein. Those components in Fig. 4 that are labeled identically to components of Figs. 1, 2 and 3 will not be described again for the purposes of clarity.
  • a system in accordance with the disclosure may be able to allow virtual machines to effectively work with relevant reconfigurable accelerators.
  • Virtual machines may be prevented from working with accelerators associated with, or configured for, other virtual machines.
  • Security may be improved in that a virtual machine may avoid working with a processor with an accelerator used by a prior virtual machine.
  • processor 804 may be of any type including but not limited to a microprocessor ( ⁇ ), a microcontroller ( ⁇ ), a digital signal processor (DSP), or any combination thereof.
  • Processor 804 may include one more levels of caching, such as a level one cache 810 and a level two cache 812, a processor core 814, and registers 816.
  • An example processor core 814 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof.
  • Processor 804 may include a programmable circuit 817 such as reconfigurable accelerators 102 and/or 104.
  • An example memory controller 818 may also be used with processor 804, or in implementations memory controller 818 may be an internal part of processor
  • the network communication link may be one example of a

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
PCT/US2013/047650 2013-06-25 2013-06-25 Reconfiguration with virtual machine switching WO2014209286A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/233,848 US9619265B2 (en) 2013-06-25 2013-06-25 Reconfiguration with virtual machine switching
CN201380077736.2A CN105393218B (zh) 2013-06-25 2013-06-25 用来重构可编程电路的方法、设备以及系统
PCT/US2013/047650 WO2014209286A1 (en) 2013-06-25 2013-06-25 Reconfiguration with virtual machine switching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/047650 WO2014209286A1 (en) 2013-06-25 2013-06-25 Reconfiguration with virtual machine switching

Publications (1)

Publication Number Publication Date
WO2014209286A1 true WO2014209286A1 (en) 2014-12-31

Family

ID=52142430

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/047650 WO2014209286A1 (en) 2013-06-25 2013-06-25 Reconfiguration with virtual machine switching

Country Status (3)

Country Link
US (1) US9619265B2 (zh)
CN (1) CN105393218B (zh)
WO (1) WO2014209286A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018148082A1 (en) * 2017-02-10 2018-08-16 Xilinx, Inc. Migrating accelerators between compute systems

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3089035A1 (en) * 2015-04-30 2016-11-02 Virtual Open Systems Virtualization manager for reconfigurable hardware accelerators
US10860357B1 (en) 2017-04-18 2020-12-08 Amazon Technologies, Inc. Secure reconfiguring programmable hardware with host logic comprising a static portion and a reconfigurable portion
US10338592B2 (en) 2017-08-24 2019-07-02 Saudi Arabian Oil Company High accuracy remote coordinate machine
US10776142B1 (en) * 2017-12-13 2020-09-15 Amazon Technologies, Inc. Reconfiguring programmable hardware when a virtual machine is active
CN109039711B (zh) * 2018-07-12 2021-01-15 联想(北京)有限公司 一种硬件加速器的更换方法、装置及服务器
CN109976876B (zh) * 2019-03-20 2021-11-16 联想(北京)有限公司 加速器管理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132363A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US20070192765A1 (en) * 2006-02-15 2007-08-16 Fujitsu Limited Virtual machine system
US20130152086A1 (en) * 2011-12-09 2013-06-13 Jung-hyun Yoo Apparatus and method for managing virtual memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438737B1 (en) * 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US8020176B2 (en) 2000-04-06 2011-09-13 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US7703107B2 (en) 2000-04-06 2010-04-20 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US7260794B2 (en) * 2002-12-20 2007-08-21 Quickturn Design Systems, Inc. Logic multiprocessor for FPGA implementation
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7383374B2 (en) * 2005-03-31 2008-06-03 Intel Corporation Method and apparatus for managing virtual addresses
CN101383688B (zh) * 2007-09-06 2013-12-04 艾优克服务有限公司 数据通信装置及保持数据通信装置高可用性的方法
US8082418B2 (en) 2007-12-17 2011-12-20 Intel Corporation Method and apparatus for coherent device initialization and access
US9058183B2 (en) * 2009-12-29 2015-06-16 Advanced Micro Devices, Inc. Hypervisor isolation of processor cores to enable computing accelerator cores
US8776060B2 (en) * 2010-11-04 2014-07-08 Lsi Corporation Methods and structure for near-live reprogramming of firmware in storage systems using a hypervisor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132363A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US20070192765A1 (en) * 2006-02-15 2007-08-16 Fujitsu Limited Virtual machine system
US20130152086A1 (en) * 2011-12-09 2013-06-13 Jung-hyun Yoo Apparatus and method for managing virtual memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018148082A1 (en) * 2017-02-10 2018-08-16 Xilinx, Inc. Migrating accelerators between compute systems
US10740146B2 (en) 2017-02-10 2020-08-11 Xilinx, Inc. Migrating virtual machines between compute systems by transmitting programmable logic accelerator state

Also Published As

Publication number Publication date
CN105393218B (zh) 2019-03-01
US20150205629A1 (en) 2015-07-23
CN105393218A (zh) 2016-03-09
US9619265B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
US9619265B2 (en) Reconfiguration with virtual machine switching
US8954993B2 (en) Local message queue processing for co-located workers
JP4690988B2 (ja) 持続的なユーザレベルスレッド用の装置、システムおよび方法
US9792062B2 (en) Acceleration of memory access
US9529615B2 (en) Virtual device emulation via hypervisor shared memory
US9201823B2 (en) Pessimistic interrupt affinity for devices
US9483318B2 (en) Distributed procedure execution in multi-core processors
WO2017112149A1 (en) Thread and/or virtual machine scheduling for cores with diverse capabilities
US9003094B2 (en) Optimistic interrupt affinity for devices
EP2936317A1 (en) In-place change between transient and persistent state for data structures in non-volatile memory
US20140344550A1 (en) Core affinity bitmask translation
US10409350B2 (en) Instruction optimization using voltage-based functional performance variation
US9898307B2 (en) Starting application processors of a virtual machine
WO2015009288A1 (en) Processor identification for virtual machines
WO2017160427A1 (en) Wireless component state based power management
WO2013191673A1 (en) Virtual machine migration in a cloud fabric
US9710303B2 (en) Shared cache data movement in thread migration
US9766917B2 (en) Limited virtual device polling based on virtual CPU pre-emption
US9298502B2 (en) Pausing virtual machines using API signaling
US8868800B2 (en) Accelerator buffer access
US9965310B2 (en) Virtual machine exit analyzer

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201380077736.2

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 14233848

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13887785

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13887785

Country of ref document: EP

Kind code of ref document: A1