RU2015134102A - Общий способ построения виртуального pci-устройства и виртуального mmio-устройства - Google Patents

Общий способ построения виртуального pci-устройства и виртуального mmio-устройства Download PDF

Info

Publication number
RU2015134102A
RU2015134102A RU2015134102A RU2015134102A RU2015134102A RU 2015134102 A RU2015134102 A RU 2015134102A RU 2015134102 A RU2015134102 A RU 2015134102A RU 2015134102 A RU2015134102 A RU 2015134102A RU 2015134102 A RU2015134102 A RU 2015134102A
Authority
RU
Russia
Prior art keywords
virtual
pci
compatible
address
determining
Prior art date
Application number
RU2015134102A
Other languages
English (en)
Other versions
RU2611018C2 (ru
Inventor
Вэй Ян
Чао СЮЙ
Ли Лян
Original Assignee
Интел Корпорейшн
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 Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2015134102A publication Critical patent/RU2015134102A/ru
Application granted granted Critical
Publication of RU2611018C2 publication Critical patent/RU2611018C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Claims (60)

1. Устройство для построения виртуального устройства, содержащее
память; и
устройство обработки, коммуникативно связанное с этой памятью, причем устройство обработки выполнено с возможностью:
приема запроса межсоединения периферийных компонентов (PCI) для устройства, совместимого с PCI;
построения виртуального устройства на основе этого устройства, совместимого с PCI, при этом виртуальное устройство построено, по меньшей мере, как одно из виртуального PCI-устройства или виртуального устройства ввода/вывода (I/O).
2. Устройство по п. 1, в котором устройство, совместимое с PCI, связано с драйвером программного обеспечения, в котором драйвер программного обеспечения представляет совместимый с PCI запрос доступа в виртуальное устройство, и в котором виртуальное устройство представляет этот совместимый с PCI запрос доступа в функциональный блок, и в котором функциональный блок связывается с устройством, совместимым с PCI, на основе этого совместимого с PCI запроса доступа.
3. Устройство по п. 1, в котором операционная система должна быть загружена из устройства, совместимого с PCI, с использованием виртуального устройства.
4. Устройство по п. 1, в котором для построения виртуального устройства на основе устройства, совместимого с PCI, устройство обработки должно:
после определения того, что устройство, совместимое с PCI, связано с функциональным блоком, который не является совместимым с PCI, построить виртуальное устройство как виртуальное PCI-устройство; и
после определения того, что устройство, совместимое с PCI, связано с операционной системой, подлежащей загрузке с этого устройства, совместимого с PCI, построить виртуальное устройство как виртуальное I/O-устройство.
5. Устройство по п. 4, в котором построение виртуального устройства как виртуального PCI-устройства содержит
определение идентификатора поставщика для виртуального устройства;
определение информации об устройстве для виртуального устройства; и
определение информации об адресах для виртуального устройства.
6. Устройство по п. 5, в котором устройство обработки дополнительно выполнено с возможностью в качестве реакции на запрос для устройства, совместимого с PCI, послать идентификатор поставщика для виртуального устройства, информацию об устройстве для виртуального устройства и информацию об адресах для этого устройства.
7. Устройство по п. 4, в котором построение виртуального устройства как виртуального I/О-устройства содержит игнорирование запроса PCI-нумерации для устройства, совместимого с PCI; и определение диапазона I/О-адресов для виртуального устройства.
8. Устройство по п. 1, в котором устройство обработки дополнительно выполнено с возможностью получить доступ к памяти для I/О-адреса; определить, связан ли этот I/О-адрес с виртуальным устройством, когда виртуальное устройство построено как виртуальное I/О-устройство; и
после определения того, что этот I/О-адрес связан с виртуальным устройством, когда виртуальное устройство построено как виртуальное I/О-устройство, определить PCI-адрес, связанный с PCI-устройством, соответствующий этому I/O-адресу.
9. Устройство по п. 1, в котором виртуальное I/О-устройство является виртуальным устройством ввода/вывода с отображением на оперативное запоминающее устройство (MMIO).
10. Способ построения виртуального устройства, способ содержащий
прием, посредством устройства обработки, запроса межсоединения периферийных компонентов (PCI) для устройства, совместимого с PCI; и
построение, посредством этого устройства обработки, виртуального устройства на основе этого устройства, совместимого с PCI, в котором виртуальное устройство строится, по меньшей мере как одно из виртуального PCI-устройства или виртуального устройства ввода/вывода (I/O).
11. Способ по п. 10, в котором устройство, совместимое с PCI, связано с драйвером программного обеспечения, в котором драйвер программного обеспечения должен передать совместимый с PCI запрос доступа в виртуальное устройство, в котором это виртуальное устройство представляет совместимый с PCI запрос доступа для функционального блока, и где функциональный блок связывается с устройством, совместимым с PCI, на основе этого совместимого с PCI запроса доступа.
12. Способ по п. 10, в котором операционная система должна загружаться из устройства, совместимого с PCI, с использованием виртуального устройства.
13. Способ по п. 10, в котором построение виртуального устройства на основе устройства, совместимого с PCI, предусматривает
после определения, что устройство, совместимое с PCI, связано с функциональным блоком, который не является совместимым с PCI, построение виртуального устройства как виртуального PCI-устройства; и
после определения, что устройство, совместимое с PCI, связано с операционной системой, подлежащей загрузке из этого устройства, совместимого с PCI, построение виртуального устройства как виртуального I/O-устройства.
14. Способ по п. 13, в котором построение виртуального устройства как виртуального PCI-устройства содержит
определение идентификатора поставщика для виртуального устройства;
определение информации об устройстве для виртуального устройства; и
определение информации об адресах для виртуального устройства.
15. Способ по п. 14, дополнительно содержащий
в качестве реакции на запрос для устройства, совместимого с PCI, посылку идентификатора поставщика для виртуального устройства, информации об устройстве для виртуального устройства и информации об адресах для этого устройства.
16. Способ по п. 13, в котором построение виртуального устройства как виртуального I/O-устройства содержит
игнорирование запроса PCI-нумерации для устройства, совместимого с PCI; и
определение диапазона I/О-адресов для виртуального устройства.
17. Способ по п. 10, дополнительно содержащий
получение доступа к памяти для I/O-адреса;
определение, связан ли этот I/O-адрес с виртуальным устройством, когда виртуальное устройство строится как виртуальное I/O-устройство; и
после определения, что этот I/O-адрес связан с виртуальным устройством, когда виртуальное устройство строится как виртуальное I/O-устройство, определение PCI-адреса, связанного с PCI-устройством, соответствующего этому I/O-адресу.
18. Способ по п. 10, в котором запрос является запросом PCI-нумерации для устройства, совместимого с PCI.
19. Постоянный машинодоступный носитель данных, содержащий инструкции, которые при их выполнении компьютерной системой побуждают компьютерную систему к выполнению следующих операций:
прием запроса межсоединения периферийных компонентов (PCI) для устройства, совместимого с PCI; и
построение виртуального устройства на основе этого устройства, совместимого с PCI, в котором виртуальное устройство строится, по меньшей мере как одно из виртуального PCI-устройства или виртуального устройства ввода/вывода (I/O).
20. Постоянный машинодоступный носитель данных по п. 19, в котором устройство, совместимое с PCI, связано с драйвером программного обеспечения, в котором драйвер программного обеспечения должен передать совместимый с PCI запрос доступа в виртуальное устройство, в котором это виртуальное устройство представляет совместимый с PCI запрос доступа для функционального блока, и где функциональный блок связывается с устройством, совместимым с PCI, на основе этого совместимого с PCI запроса доступа.
21. Постоянный машинодоступный носитель данных по п. 19, в котором операционная система должна загружаться из устройства, совместимого с PCI, с использованием виртуального устройства.
22. Постоянный машинодоступный носитель данных по п. 19, в котором построение виртуального устройства на основе устройства, совместимого с PCI, предусматривает:
после определения, что устройство, совместимое с PCI, связано с функциональным блоком, который не является совместимым с PCI, построение виртуального устройства как виртуального PCI-устройства; и
после определения, что устройство, совместимое с PCI, связано с операционной системой, подлежащей загрузке из этого устройства, совместимого с PCI, построение виртуального устройства как виртуального I/O-устройства.
23. Постоянный машинодоступный носитель данных по п. 22, в котором построение виртуального устройства как виртуального PCI-устройства содержит
определение идентификатора поставщика для виртуального устройства;
определение информации об устройстве для виртуального устройства; и
определение информации об адресах для виртуального устройства.
24. Постоянный машинодоступный носитель данных по п. 22, в котором построение виртуального устройства как виртуального I/O-устройства содержит
игнорирование запроса PCI-нумерации для устройства, совместимого с PCI; и
определение диапазона I/O-адресов для виртуального устройства.
25. Постоянный машинодоступный носитель данных по п. 19, в котором операции дополнительно содержат
получение доступа к памяти для I/O-адреса;
определение, связан ли этот I/O-адрес с виртуальным устройством, когда виртуальное устройство строится как виртуальное I/O-устройство; и
после определения, что этот I/O-адрес связан с виртуальным устройством, когда виртуальное устройство строится как виртуальное I/O-устройство, определение PCI-адреса, связанного с PCI-устройством, соответствующего этому I/O-адресу.
RU2015134102A 2013-03-14 2013-03-14 Общий способ построения виртуального pci-устройства и виртуального mmio-устройства RU2611018C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/072583 WO2014139115A1 (en) 2013-03-14 2013-03-14 Generic method to build virtual pci device and virtual mmio device

Publications (2)

Publication Number Publication Date
RU2015134102A true RU2015134102A (ru) 2017-02-16
RU2611018C2 RU2611018C2 (ru) 2017-02-17

Family

ID=51535808

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015134102A RU2611018C2 (ru) 2013-03-14 2013-03-14 Общий способ построения виртуального pci-устройства и виртуального mmio-устройства

Country Status (7)

Country Link
US (1) US20150026379A1 (ru)
EP (1) EP2972922A1 (ru)
KR (1) KR101698707B1 (ru)
CN (1) CN104995613B (ru)
RU (1) RU2611018C2 (ru)
TW (1) TWI528290B (ru)
WO (1) WO2014139115A1 (ru)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983893B2 (en) 2013-10-01 2018-05-29 Red Hat Israel, Ltd. Handling memory-mapped input-output (MMIO) based instructions using fast access addresses
US9454394B2 (en) * 2013-11-22 2016-09-27 Red Hat Israel, Ltd. Hypervisor dynamically assigned input/output resources for virtual devices
US9916173B2 (en) * 2013-11-25 2018-03-13 Red Hat Israel, Ltd. Facilitating execution of MMIO based instructions
CN106648878B (zh) * 2015-10-29 2021-08-20 华为技术有限公司 一种系统及其动态分配mmio资源的方法
US9846610B2 (en) 2016-02-08 2017-12-19 Red Hat Israel, Ltd. Page fault-based fast memory-mapped I/O for virtual machines
US10055160B2 (en) 2016-04-11 2018-08-21 Dell Products L.P. Systems and methods for BIOS emulation of PCIe device
KR102331926B1 (ko) 2017-11-17 2021-11-29 삼성전자주식회사 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법
CN112988272A (zh) * 2021-03-22 2021-06-18 成都申威科技有限责任公司 一种在uboot中支持多路pcie rc的方法、装置及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664124A (en) * 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
US6823418B2 (en) * 2001-06-29 2004-11-23 Intel Corporation Virtual PCI device apparatus and method
US7546599B2 (en) * 2004-12-20 2009-06-09 Intel Corporation Method, apparatus and system for instructing a virtual device from a virtual machine
CN101676894B (zh) * 2008-08-15 2011-08-17 北京北大众志微系统科技有限责任公司 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法
US20110106522A1 (en) * 2009-11-05 2011-05-05 Chinya Gautham N virtual platform for prototyping system-on-chip designs
US8996734B2 (en) * 2010-08-19 2015-03-31 Ineda Systems Pvt. Ltd I/O virtualization and switching system
US8769175B2 (en) * 2011-03-09 2014-07-01 International Business Machines Corporation Adjustment of post and non-post packet transmissions in a communication interconnect
KR20120132820A (ko) * 2011-05-30 2012-12-10 삼성전자주식회사 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법
US20130346584A1 (en) * 2011-06-02 2013-12-26 Hitachi, Ltd. Control method for virtual computer, and virtual computer system
US9411654B2 (en) * 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9760661B2 (en) * 2012-04-26 2017-09-12 Hewlett-Packard Development Company, L.P. Providing virtual optical disk drive

Also Published As

Publication number Publication date
EP2972922A1 (en) 2016-01-20
CN104995613B (zh) 2018-02-16
RU2611018C2 (ru) 2017-02-17
KR20150103373A (ko) 2015-09-10
TW201502992A (zh) 2015-01-16
US20150026379A1 (en) 2015-01-22
KR101698707B1 (ko) 2017-01-20
TWI528290B (zh) 2016-04-01
CN104995613A (zh) 2015-10-21
WO2014139115A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
RU2015134102A (ru) Общий способ построения виртуального pci-устройства и виртуального mmio-устройства
CN106155933B (zh) 一种基于KSM及Pass-through相结合的虚拟机内存共享方法
JP5706036B2 (ja) 複合仮想グラフィクスデバイス
WO2016066073A1 (zh) 支持sr-iov的存储资源访问方法、存储控制器及存储设备
US9413765B2 (en) Multinode hubs for trusted computing
JP2018514028A5 (ru)
JP2016507849A5 (ru)
BR112017022547A2 (pt) método para acessar memória estendida, dispositivo e sistema
BRPI0600347A (pt) métodos e sistema para virtualização de endereços fìsicos de convidado em ambiente de máquina virtual
WO2016033039A3 (en) Routing direct memory access requests in a virtualized computing environment
JP2015526829A5 (ru)
JP2011526390A5 (ru)
JP2016525255A5 (ru)
JP2016535373A5 (ru)
JP2015534691A5 (ru)
EP2669807A3 (en) Processor resource and execution protection methods and apparatus
RU2014118856A (ru) Определение длины группы символьных данных, содержащей символ окончания
JP2016517992A5 (ru)
JP2018538630A5 (ru)
US9436751B1 (en) System and method for live migration of guest
GB2520856A (en) Enabling Virtualization of a processor resource
WO2008005825A3 (en) Methods, systems, and computer program products for providing access to addressable entities using a non-sequential virtual address space
US9424155B1 (en) Use efficiency of platform memory resources through firmware managed I/O translation table paging
JP2016513835A5 (ru)
WO2016118031A3 (en) Computer security systems and methods using hardware-accelerated access to guest memory from below the operating system

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180315