ВИРТУАЛЬНАЯ МАШИНА ДЛЯ ВИРТУАЛИЗАЦИИ ГРАФИЧЕСКИХ ФУНКЦИЙ

1. Главный компьютер (200) для эмулирования целевой системы (99), содержащий:
главную память (208), хранящую библиотеку графических функций (218) и виртуальную машину (VM) (216), при этом виртуальная машина включает в себя раздел эмулированной памяти (222), хранящий целевой код (124), выполненный с возможностью его исполнения в целевой системе;
центральный процессор (CPU) (202), выполненный с возможностью исполнения виртуальной машины для эмулирования целевой системы, при этом виртуальная машина выполнена с возможностью:
исполнения целевого кода,
перехвата обращения к графической функции в целевом коде и
перенаправления обращения к графической функции к соответствующей графической функции в библиотеке графических функций, сохраненных в главной памяти; и
главный графический процессор (GPU) (206), выполненный с возможностью исполнения соответствующей графической функции для определения по меньшей мере одного элемента, выполненного с возможностью его отрисовки на дисплее (210), соединенном с главным графическим процессором.
2. Главный компьютер (200) по п. 1, в котором целевой код (124) содержит двоичный код, включающий в себя множество обращений к графической функции, направленных к целевому графическому процессору (110) целевой системы (99).
3. Главный компьютер (200) по п. 2, в котором виртуальная машина (216) включает в себя второй раздел эмулированной памяти (222), хранящий отображение адресов (228), соответствующих указанному множеству обращений к графической функции в целевом коде (124), на множество функций (226) перехвата графики, которые включают в себя обращения по меньшей мере к одной соответствующей графической функции в библиотеке графических функций (218), сохраненных в главной памяти (208) и нацеленных на главный графический процессор (206).
4. Главный компьютер (200) по п. 2, в котором главная память (208) хранит карту отображения адресов, соответствующих указанному множеству обращений к графической функции в целевом коде (124), на множество функций (226) перехвата графики, которые включают в себя обращения по меньшей мере к одной соответствующей графической функции в библиотеке графических функций (218), сохраненных в главной памяти и нацеленных на главный графический процессор (206).
5. Главный компьютер (200) по любому из предшествующих пунктов, в котором главная память (208) хранит библиотеку функций (218) OpenGL, нацеленных на главный графический процессор (206).
6. Главный компьютер (200) по любому из предшествующих пунктов, дополнительно содержащий графический интерфейс (212), соединенный с главным графическим процессором (206) и выполненный с возможностью соединения главного графического процессора с дисплеем (210).
7. Главный компьютер (200) по п. 6, дополнительно содержащий дисплейное устройство (102, 210) авиационного электронного оборудования, соединенное с графическим интерфейсом (212).
8. Способ (500) исполнения обращений к графической функции в виртуальной машине (VM) (216), эмулирующей целевую систему (99), причем способ включает:
исполнение (502) виртуальной машины на главном компьютере (200), включающем в себя главный графический процессор (GPU) (206);
исполнение (504) целевого кода (124) для целевой системы в виртуальной машине,
при этом целевой код включает в себя обращение к первой графической функции для первой графической функции, назначенной первому адресу в эмулированной памяти (222) виртуальной машины;
отображение (506) первого адреса на первую функцию (226) перехвата графики, включающую в себя обращение по меньшей мере к одной соответствующей графической функции в библиотеке графических функций (218), сохраненных в главной памяти (208) главного компьютера и нацеленных на главный графический процессор;
перехват (508) обращения к первой графической функции с первым адресом в эмулированной памяти виртуальной машины и
исполнение (510), на основании отображения, указанной по меньшей мере одной соответствующей графической функции для определения по меньшей мере одного элемента, выполненного с возможностью его отрисовки на дисплее (210), соединенном с главным графическим процессором.
9. Способ (500) по п. 8, дополнительно включающий синтаксический анализ целевого кода (124) на наличие множества обращений к графической функции, осуществляемых к множеству соответствующих графических функций, включающих в себя обращение к первой графической функции для первой графической функции, и идентификацию соответствующих адресов в эмулированной памяти (222) виртуальной машины (216), назначенных для указанного множества соответствующих графических функций.
10. Способ (500) по п. 9, дополнительно включающий задание множества функций (226) перехвата графики, соответствующих указанному множеству соответствующих графических функций, и отображение соответствующих адресов в эмулированной памяти (222) виртуальной машины (216), на указанное множество функций перехвата графики.
11. Способ (500) по п. 10, дополнительно включающий сохранение в эмулированной памяти (222) виртуальной машины (216) таблицы, отображающей (228) соответствующие адреса в эмулированной памяти виртуальной машины, назначенные для указанного множества соответствующих графических функций, на указанное множество функций (226) перехвата графики.
12. Способ (500) по любому из пп. 8-11, согласно которому исполнение (502) виртуальной машины (216) на главном компьютере (200) включает эмулирование аппаратных компонентов целевой системы (99), при этом аппаратные компоненты не включают в себя целевой графический процессор (110) целевой системы.
13. Компьютерочитаемая память (208), соединенная с центральным процессором (CPU) (202), главным графическим процессором (GPU) (206) и оперативной памятью (ОЗУ) (204) главного компьютера (200) и содержащая:
раздел (124) для целевого кода, хранящий целевой код, выполненный с возможностью его исполнения посредством целевой системы (99);
библиотеку графических функций (218), нацеленных на главный графический процессор;
раздел (216) для виртуальной машины (VM), хранящий виртуальную машину, которая при ее исполнении центральным процессором назначает множество адресных пространств в ОЗУ, соответствующих графическим функциям, вызванным целевым кодом, при этом раздел для виртуальной машины включает в себя:
множество функций (226) перехвата графики, включающих в себя обращения по меньшей мере к одной соответствующей графической функции в библиотеке графических функций, нацеленных на главный графический процессор; и
отображение графических функций (228), вызванных целевым кодом, на указанное множество функций перехвата графики, причем исполнение целевого кода посредством виртуальной машины приводит к перехвату вызовов графических функций в целевом коде и перенаправлению вызовов по меньшей мере к одной соответствующей графической функции, нацеленной на главный графический процессор, для определения по меньшей мере одного элемента, выполненного с возможностью его отрисовки на дисплее (210), соединенном с главным графическим процессором.
14. Компьютерочитаемая память (208) по п. 13, в которой раздел (216) для виртуальной машины хранит эмуляции (230) аппаратных компонентов целевой системы (99).
15. Компьютерочитаемая память (208) по любому из пп. 13, 14, в которой перехват вызовов графических функций в целевом коде (124) происходит статически перед исполнением целевого кода.
16. Компьютерочитаемая память (208) по любому из пп. 13-15, в которой перехват вызовов графических функций в целевом коде (124) происходит при запуске целевого кода.
17. Компьютерочитаемая память (208) по любому из пп. 13-16, в которой перехват вызовов графических функций в целевом коде (124) происходит динамически во время выполнения целевого кода.
18. Компьютерочитаемая память (208) по любому из пп. 13-17, в которой библиотека графических функций (218) включает в себя библиотеку OpenGL.
19. Компьютерочитаемая память (208) по любому из пп. 13-18, в которой библиотека графических функций (218) включает в себя библиотеку DirectX.
20. Компьютерочитаемая память (208) по любому из пп. 13-19, в которой библиотека графических функций (218) включает в себя библиотеку Metal.
21. Виртуальная машина (VM) (216) для эмулирования целевой системы (99), содержащая:
эмулированную память (222), хранящую целевой код (124), выполненный с возможностью его исполнения в целевой системе; и
эмулированный центральный процессор (CPU) (230), выполненный с возможностью:
исполнения целевого кода,
перехвата обращения к графической функции в целевом коде и
перенаправления обращения к графической функции к соответствующей графической функции в библиотеке графических функций (218), направленных на главный графический процессор (GPU) (206).
22. Виртуальная машина (216) по п. 21, в которой целевой код (124) содержит двоичный код, включающий в себя множество обращений к графической функции, нацеленных на целевой графический процессор (110) устройства авиационного электронного оборудования.
23. Виртуальная машина (216) по любому из пп. 21, 22, в которой виртуальная машина (216) включает в себя второй раздел эмулированной памяти (222), хранящий отображение (228) адресов, соответствующих множеству обращений к графической функции в целевом коде (124), на множество функций (226) перехвата графики, которые включают в себя обращения по меньшей мере к одной соответствующей графической функции в библиотеке графических функций (218), нацеленных на главный графический процессор (206).
24. Виртуальная машина (216) по любому из пп. 21-23, в которой эмулированный центральный процессор (230) дополнительно выполнен с возможностью перехвата обращения к графической функции в целевом коде (124) перед исполнением целевого кода.
25. Виртуальная машина (216) по любому из пп. 21-24, в которой эмулированный центральный процессор (230) дополнительно выполнен с возможностью перехвата обращения к графической функции в целевом коде (124) при запуске целевого кода.
26. Виртуальная машина (216) по любому из пп. 21-25, в которой эмулированный центральный процессор (230) дополнительно выполнен с возможностью перехвата обращения к графической функции в целевом коде (124) во время исполнения целевого кода.