Виртуализация массового запоминающего устройства для облачных вычислений

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в облегчении доступа к большим программам, требующим специализированных платформ, например видеоиграм, без увеличения времени отклика. Интерфейсное устройство содержит первый коммуникационный интерфейс, представляющий собой интерфейс массового запоминающего устройства; второй коммуникационный интерфейс, представляющий собой интерфейс расширения; и специализированный процессор, функционально связанный с указанными коммуникационными интерфейсами и содержащий контроллер массового запоминающего устройства, соединенный с первым коммуникационным интерфейсом, и интерфейс доступа к памяти, соединенный со вторым коммуникационным интерфейсом, причем контроллер массового запоминающего устройства выполнен с возможностью приема запроса данных массового запоминающего устройства через первый коммуникационный интерфейс, при этом интерфейс доступа к памяти выполнен с возможностью уведомления хост-системы о запросе данных массового запоминающего устройства через второй коммуникационный интерфейс. 3 н. и 22 з.п. ф-лы, 7 ил.

Реферат

ИСПРАШИВАНИЕ ПРИОРИТЕТА

На настоящую заявку испрашивается преимущество приоритета по принадлежащей тому же правообладателю одновременно находящейся на рассмотрении обычной заявке на патент США с номером 14/135,213 на имя Roelof Roderick Colenbrander под названием "MASS STORAGE VIRTUALIZATION FOR CLOUD COMPUTING" (номер в патентном реестре SCEA13031US00), поданной 19 декабря 2013 г., содержимое которой целиком включено в настоящий документ посредством ссылки.

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ

Данная заявка соотносится с принадлежащей тому же правообладателю, одновременно находящейся на рассмотрении заявкой на патент США с номером 14/135,374 на имя Roelof Roderick Colenbrander под названием " VIDEO LATENCY REDUCTION" (номер в патентном реестре SCEA13037US00), поданной 19 декабря 2013 г., содержимое которой целиком включено в настоящий документ посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ

Аспекты настоящего раскрытия изобретения относятся к виртуализации запоминающего устройства. Другие аспекты настоящего раскрытия относятся к виртуализации запоминающего устройства для приложений облачных вычислений, разработанных для встроенных платформ.

УРОВЕНЬ ТЕХНИКИ

В условиях продолжающегося расширения диапазона передачи и повышения скоростей передачи данных телекоммуникационных систем потребность в современных вычислительных ресурсах часто смещается в сторону распределенных компьютерных систем на сетевой основе, получивших общее название "облачных вычислений". В общем смысле, облачные вычисления включают в себя передачу определенных задач компьютерных ресурсов одному или большему количеству удаленных компьютерных ресурсов и использование удаленных компьютерных ресурсов для предоставления сервисов локальному устройству. Облачные вычисления часто реализуются в виде модели "клиент-сервер", в которой удаленный сервер предоставляет требуемые возможности компьютерных ресурсов локальному клиентскому устройству, избавляя локальное клиентское устройство от необходимости выполнять определенные задачи компьютерных ресурсов своими силами. Во многих случаях компьютерные ресурсы могут быть перенесены на сервер целиком или почти целиком, и при этом клиент выполняет функции всего лишь или не более чем пользовательского интерфейса в отношении задачи облачных вычислений, предоставляя теоретическую возможность любому устройству, подключенному к Интернету, действовать в качестве клиента для конкретного приложения.

Облачные вычисления нашли применение в широком диапазоне компьютерных сервисов, включая решения по удаленному хранению данных, сервисы потоковой передачи музыки и видео и решения широкого разнообразия других задач потребительского и делового сектора. В целом, облачные вычисления обеспечивают ряд хорошо известных преимуществ, включая повышенную эффективность работы за счет использования общих ресурсов, повышенную гибкость при доступе к контенту без ограничений для конкретного устройства, уменьшенные начальные капитальные затраты при появлении обновлений аппаратных средств и другие преимущества.

Областью, в которой облачные вычисления имеют большие перспективы расширения применения, является неизменно популярная область компьютерных видеоигр. Видеоигры, включая игры на персональных компьютерах (ПК), домашние игровые приставки, мобильные игровые приставки и т.п., остаются популярным источником развлечений среди потребителей. В условиях большого и непрерывно расширяющегося разнообразия названий доступных видеоигр облачные вычисления являются особенно привлекательным решением по многим запросам на видеоигры. В идеальном случае пользователь в среде облачных игровых услуг должен иметь возможность моментально получать доступ к любому названию видеоигры среди огромной коллекции удаленно сохраняемых названий без необходимости физического копирования игры, без необходимости загрузки названия и без необходимости на месте иметь аппаратные средства или ресурсы для прогона игры. К сожалению, реализация данного типа сервиса в рамках традиционного построения сервера облачных вычислений связана с рядом технических проблем, которые до настоящего времени препятствовали широкомасштабному применению облачных игровых услуг в качестве платформ многих видеоигр.

Одна проблема состоит в том, что современные видеоигры очень динамичны по событиям и являются играми с активными действиями на основе современной графики, для работы которой требуется значительный объем компьютерных ресурсов. В частности, в конструкции сервера, являющегося основой для потоковой видеопередачи, в котором все игровые вычисления и вычисления по работе графики выполняются дистанционно, должна быть обеспечена возможность во время игры выполнять все эти задачи и доставлять сжатый поток аудио/видеосигналов клиентскому устройству с минимальной или практически неощутимой задержкой в ответ на управляющие входные сигналы. В противном случае может быть оборван отсчет времени для игрока и нарушена способность воспроизвести чувствительность игрового сеанса, традиционно реализуемого на локальном уровне.

Другая проблема проистекает из того, что традиционно существовало различие между, с одной стороны, играми на ПК, которые разработаны для их выполнения на персональных компьютерах, переносных компьютерах и в других компьютерных системах универсального характера, и, с другой стороны, консольными играми, которые разработаны для их выполнения в специализированных системах, известных под названием игровых видеоприставок. Игровые видеоприставки обычно конструируются в виде встраиваемых платформ, имеющих единственные в своем роде архитектуры компьютерных ресурсов, специально адаптированные к среде видеоигр. При использовании специализированных консольных аппаратных средств в качестве платформы для видеоигр обеспечивается ряд преимуществ, в частности, в части оптимизации аппаратных средств при высоких потребностях в вычислительных ресурсах со стороны процессов графического отображения и игровых вычислений, требуемых для реализации многих современных видеоигр. Как следствие этого, несмотря на приобретение играми на ПК определенной популярности, консольные игры заняли традиционно доминирующее положение на рынке видеоигр и могут продолжить это доминирование в будущем.

Однако адаптация видеоигровых приставок и других встраиваемых платформ к облачному потоковому сервису сопряжена с несколькими проблемами. Внесение масштабных изменений в архитектуру аппаратных средств или программного обеспечения специализированной платформы может вызвать проблемы совместимости с приложениями, разработанными для специализированной платформы. В результате традиционные методы виртуализации сервера хранения данных и запоминающего устройства не являются жизнеспособным решением для основывающейся на облачных сервисах потоковой передачи приложений, разработанных для многих из этих платформ.

Именно в данном контексте представляется настоящее раскрытие изобретения.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

Вариант реализации раскрываемого здесь изобретения может включать в себя интерфейсное устройство, содержащее первый коммуникационный интерфейс, второй коммуникационный интерфейс и специализированный процессор, функционально связанный с указанными коммуникационными интерфейсами. Первый коммуникационный интерфейс представляет собой интерфейс массового запоминающего устройства. Второй коммуникационный интерфейс представляет собой интерфейс расширения. Специализированный процессор включает в себя контроллер массового запоминающего устройства, соединенный с первым коммуникационным интерфейсом, и подсистему прямого доступа к памяти (DMA), соединенную со вторым коммуникационным интерфейсом. Контроллер массового запоминающего устройства выполнен с возможностью приема запроса данных массового запоминающего устройства через первый коммуникационный интерфейс. Подсистема прямого доступа к памяти выполнена с возможностью уведомления хост-системы через второй коммуникационный интерфейс о запросе данных массового запоминающего устройства.

Другой вариант реализации раскрываемого здесь изобретения может включать в себя систему, содержащую центральное процессорное устройство; первый блок памяти, функционально связанный с центральным процессорным устройством; процесс сохранения данных, реализуемый в первом блоке памяти и исполняемый центральным процессорным устройством (ЦПУ); первый коммуникационный интерфейс и специализированный процессор, функционально связанный с первым коммуникационным интерфейсом. Первый коммуникационный интерфейс представляет собой интерфейс массового запоминающего устройства.

Специализированный процессор содержит контроллер массового запоминающего устройства, соединенный с первым коммуникационным интерфейсом, и интерфейс доступа к памяти, функционально связанный с ЦПУ. Контроллер массового запоминающего устройства выполнен с возможностью приема запроса данных массового запоминающего устройства через первый коммуникационный интерфейс. Интерфейс доступа к памяти выполнен с возможностью уведомления процесса сохранения данных о запросе данных массового запоминающего устройства. Процесс сохранения данных выполнен с возможностью обработки запроса данных путем доступа к системе хранения данных.

Еще один вариант реализации может представлять собой способ, включающий в себя: а) прием от первого вычислительного устройства запроса данных массового запоминающего устройства в контроллере массового запоминающего устройства; b) уведомление (с помощью интерфейса доступа к памяти, соединенного с контроллером массового запоминающего устройства) процесса сохранения данных, осуществляемого во втором вычислительном устройстве, о запросе данных; с) выполнение доступа (с помощью процесса сохранения данных из второго вычислительного устройства) к системе хранения данных, содержащей данные, соответствующие запросу данных; d) запоминание (с помощью процесса сохранения данных из второго вычислительного устройства) данных, соответствующих запросу данных, в первом блоке памяти; е) программирование (с помощью процесса сохранения данных из второго вычислительного устройства) контроллера массового запоминающего устройства на доступ к данным из первого блока памяти с целью выполнения запроса данных.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Идеи раскрываемого здесь изобретения могут быть легко усвоены путем рассмотрения следующего подробного описания в сочетании с сопроводительными чертежами, среди которых:

Фиг. 1 представляет собой схематическое изображение примера осуществления потоковой передачи в сети.

Фиг. 2 представляет собой схематическое изображение другого примера осуществления потоковой передачи в сети.

Фиг. 3 представляет собой схематическое изображение примера построения хост-системы, содержащей интерфейсную карту, обеспечивающую виртуализацию памяти для терминальной системы.

Фиг. 4А-4В представляют собой схематическое изображение примера компьютерной архитектуры для хост-системы, связанной с терминальной системой. Фиг. 4А представляет собой схематическое изображение примера архитектуры терминальной системы. Фиг. 4В представляет собой схематическое изображение архитектуры хост-системы и интерфейсной карты.

Фиг. 5 представляет собой схематическое изображение конструкции интерфейсной карты, содержащей специализированный процессор.

Фиг. 6 представляет собой схематическое изображение способа эмуляции массового запоминающего устройства.

ПОДРОБНОЕ ОПИСАНИЕ

Несмотря на то что следующее подробное описание содержит множество конкретных деталей в иллюстративных целях, любому специалисту со средним уровнем знаний в данной области техники будет понятно, что допускается множество вариаций и изменений указываемых далее деталей без отступления от области действия изобретения. Соответственно, описываемые далее примеры осуществления изобретения приводятся без отступления от общей идеи и без ввода ограничений в отношении изобретения, определяемого формулой изобретения.

Введение

Аспекты настоящего раскрытия изобретения относятся к системам и способам для виртуализации массового запоминающего устройства с использованием интерфейсной карты или другого специального аппаратного блока, функционально связанного с хост-системой. В различных вариантах осуществления интерфейсное устройство и хост-система могут совместно эмулировать массовое запоминающее устройство для другой "терминальной" вычислительной системы в форме, являющейся прозрачной для терминальной системы. Кроме того, в различных вариантах осуществления массовое запоминающее устройство может быть эмулировано способом, являющимся прозрачным для терминальной системы, без необходимости внесения изменений в аппаратные средства терминальной платформы или в архитектуру программного обеспечения.

Специалисты в данной области могут быть знакомы с программным обеспечением 'виртуальной машины', таким как VMWare, VirtualBox или Parallels, которое позволяет выполнять сеанс операционной системы давно известного типа (например, Windows ХР) внутри сеанса более новой операционной системы (например, Windows 7). Программное обеспечение виртуальной машины часто используется для имитации физических компонентов аппаратных средств, таких как дисководы, сетевые карты, видеокарты в программном обеспечении в целях совместимости. Согласно аспектам настоящего раскрытия специализированные аппаратные и программные средства имеют возможность виртуализировать массовое запоминающее устройство в ситуациях, когда использование для этой цели только программного обеспечения является непрактичным.

Подробности реализации

Для более понятной демонстрации различных аспектов настоящего раскрытия изобретения приводится первый иллюстративный пример распределенной вычислительной системы 100 на фиг. 1. Распределенная система 100, изображенная на фиг. 1, содержит множество вычислительных устройств 102, 104, соединенных через сеть 106, например сеть Интернет.

В примере распределенной системы потоковый сервер 102 выполняет программу 108 с целью обеспечить поток выходных данных программы в реальном времени дистанционно подключенному клиентскому устройству 104 по сети 106. В иллюстративном схематическом изображении на фиг. 1 программой 104 может являться программа видеоигры, которая обрабатывает входные управляющие сигналы, поступающие от клиентского устройства 104, и посылает сжатый поток аудио- и видеосигналов клиентскому устройству 104 в соответствии с выполнением программы 108. Пользователь, находящийся на клиентской стороне, может взаимодействовать с программой через пользовательский интерфейс клиентского устройства 104, например, путем выдачи управляющих входных сигналов и приема аудио- и видеовыходных игровых сигналов на дисплее и/или на динамиках, подсоединенных к клиентскому устройству 104. В примере на фиг. 1 вычислительная нагрузка для обработки входных сигналов, отображающих графику видеоигры, и подобная нагрузка могут быть целиком переданы потоковому серверу 102 для дистанционного выполнения. Чтобы реализовать облачные игровые сервисы с помощью системы 100, показанной на фиг. 1, потоковый сервер 102 может быть настроен не только на выполнение игровой программы 108, но потоковый сервер 102 может также осуществлять "процесс потокового сервера" 110, реализованный в сервере 102 и способный выполнять различные функции с целью координации входных/выходных данных программы для обеспечения связи между клиентским устройством 104 и потоковым сервером 102 по сети 106. Например, процесс 110 потокового сервера может быть реализован в одном или большем количестве приложений, выполняемых на потоковом сервере 102 во взаимодействии с игровым программным обеспечением 108. Дистанционное выполнение игровой программы 108 вместе с процессом 110 потокового сервера может быть обеспечено с минимальным или нулевым временем запаздывания между входными и выходными сигналами в клиентском устройстве 104 так, что в восприятии пользователя на клиентской стороне программа 108 выполняется в локальном режиме. Кроме того, доступной для выполнения может быть обширная коллекция дистанционно сохраненных программ. Например, в приложении облачного игрового сервиса пользователю понадобится способность выбрать любую игру, разработанную для соответствующей платформы видеоигр, и удаленный сервер окажется в состоянии загрузить игру, выполнить ее и осуществить потоковую передачу ее выходных сигналов клиентскому устройству в соответствии с входными сигналами, полученными от пользователя, без ощутимого времени запаздывания между принятыми входными сигналами и выходными аудио/видеосигналами.

В примере, иллюстрируемом фиг. 1, это может быть осуществлено путем выполнения как процесса 110 потокового сервера, так и игрового кода 108 в одном и том же вычислительном устройстве, например в потоковом сервере 102. Потоковый сервер может осуществлять выборку нужной программы теоретически из любого запоминающего устройства, такого как массовое запоминающее устройство с локальным подключением, сервер хранения данных, сетевой накопитель и т.п. с помощью соответствующего соединения. Для облачных игровых сервисов и других вариантов облачных вычислений это может быть легко реализовано, если программное приложение 108, выполняемое на сервере 102 для клиента 104, разработано для работы с архитектурой персонального компьютера (ПК) или другой компьютерной архитектурой, аналогичной архитектуре сервера Streamliner 102. В качестве примера, не подразумевающего никаких ограничений, можно использовать для реализации облачных игровых сервисов на ПК легкодоступный сервер на основе платформы х86 не только для реализации процесса 110 потокового сервера, но также для исполнения игровой программы 108 на ПК сразу после доступа к ней сервера 102.

Однако пример работы системы 100, проиллюстрированный фиг. 1, может не подходить для определенных вариантов применения, в которых программа 108 разработана для выполнения во встроенных платформах и других специализированных архитектурах. Например, если требуемая программа представляет собой программу видеоигры, разработанную для специализированной консольной программы, игровое программное обеспечение может оказаться не пригодным к выполнению в архитектуре сервера без определенного типа эмулятора. К сожалению, в среде облачных вычислений, в которой главным предметом заботы является минимизация времени запаздывания, программный эмулятор, выполненный на потоковом сервере, может быть нежелательным решением, особенно в приложениях с интенсивной графикой, в которых интерпретация кода эмулятором во время выполнения привела бы к внесению ощутимой задержки. Кроме того, во многих случаях было бы непрактичным создавать специализированный сервер применительно к каждой уникальной архитектуре, для которой требуется облачный сервис. В других ситуациях эмулятор мог бы быть желательным решением, но не удается получить соответствующий эмулятор.

С целью решения этих проблем может понадобиться использование дополнительного вычислительного устройства на стороне сервера для выполнения программы, причем дополнительное вычислительное устройство выполняет требуемую программу одновременно с тем, как связанный с ним потоковый сервер выполняет свои обычные функции по сопряжению с клиентским устройством. Пример, иллюстрирующий построение распределенной системы 200, в которой используется такой способ работы, приведен на фиг. 2, где "терминальная система" 212 соединена с потоковым сервером 202, и терминальная система выполняет требуемую прикладную программу 208.

Потоковый сервер способен обеспечить ресурсы для сетевого хранения и для сжатия видеосигналов в том случае, если в ином варианте терминальная система не обладает свободными ресурсами, достаточными для выполнения этих функций.

В определенных вариантах реализации терминальная система 212 может представлять собой встроенную систему или другую вычислительную систему, имеющую специализированную архитектуру, такую как архитектура видеоигровой приставки, в то время как основу потокового сервера 202 может оставлять любая архитектура вычислительного устройства, например архитектура с набором команд х86, адаптированная к предоставлению потоковых сервисов и необязательно являющаяся аналогом архитектуры терминальной системы 212. Потоковый сервер 202 может быть настроен на выполнение процесса 202 потокового сервера и предоставление обычных облачных сервисов для программы 208 терминальной системы, а вычислительные устройства на стороне сервера (например, потоковый сервер 202 и терминальная система 212) могут совместно работать по предоставлению потоковых сервисов видеоигр для клиентского устройства 204.

Конфигурация, схематически представленная в упрощенном виде на фиг. 2, может обеспечить практичное и гибкое решение для сервера, который в этом случае может быть легко приспособлен к множеству различных программных платформ, разработанных для множества различных компьютерных архитектур. Например, теоретически любой потоковый сервер 202 можно было бы адаптировать к потоковым программным приложениям, разработанным для множества различных компьютерных архитектур, путем локального подключения терминальной системы, выполняющей программное обеспечение.

Однако выполнение требуемого программного обеспечения в терминальной системе 212 на стороне сервера может привести к определенным проблемам внутри интегрированной среды облачных вычислений. Например, терминальная система 212 может быть способна к выполнению любой программы, выбираемой из множества различных программ, для текущего потокового сеанса аналогично процессу, описанному выше применительно к примеру построения, приведенному на фиг. 1. Аналогично, любые операции считывания/записи данных в запоминающем устройстве, требуемом программе 208, выполняемой в терминальной системе 212, можно было бы освободить от ограничений, сопутствующих работе терминальной системы с локальной памятью. Запросы данных запоминающего устройства обычно выполняются путем подключения массового запоминающего устройства в терминальной системе 212, например, через последовательный интерфейс присоединения по стандарту ATA (Advanced Technology Attachment; SATA) или через другой интерфейс массового ЗУ. Было бы желательно обеспечить решение по виртуализированному запоминающему устройству для терминальной системы без необходимости внесения изменений в архитектуру ее аппаратных средств или расходования дополнительных компьютерных ресурсов процессом виртуализации памяти.

Для более понятного изложения проблемы в контексте среды облачных игровых сервисов далее приводится пример, иллюстрирующий возможность использования сервера в комплектации, показанной на фиг. 2, в конкретном примере реализации облачных игровых сервисов. В частности, для сеанса игровых сервисов "облачной терминальной системе" 212 может быть назначен пользователь на клиентском устройстве 204. Когда пользователь запускает начало игры 208, он желает иметь доступ к игре в облачной терминальной системе 212. Аналогично, когда завершается игровой сеанс и пользователь отключается, терминальная система 212 должна быть возвращена в исходное состояние для возможности использования в следующем сеансе другим пользователем, возможно, с выбором другой игры.

К сожалению, виртуализация памяти игровых данных таким способом с использованием программного обеспечения виртуализации памяти внутри терминальной системы 212 привела бы к расходованию ценных компьютерных ресурсов (ЦПУ и памяти) и, возможно, к проблемам совместимости с игровыми сервисами. Кроме того, в приложении, связанном с высокой вычислительной нагрузкой, какая имеет место во многих современных видеоиграх, заключающих в себе задачи современной графики и другие задачи с интенсивным использованием ресурсов, расходование дополнительных ресурсов из терминальной системы для виртуализации памяти вряд ли является жизнеспособным решением.

Пример, иллюстрирующий методику виртуализации запоминающего устройства согласно различным реализациям раскрываемого здесь изобретения, приведен на фиг. 3. В примере методики виртуализации, представленном на фиг. 3, массовое запоминающее устройство эмулировано с использованием "хост-системы", содержащей специализированный набор аппаратных средств, такой при котором возможна эмуляция массового запоминающего устройства для терминальной системы, подключенной к хост-системе. Методика, пример которой представлен на фиг. 3, может быть реализована в облачном потоковом приложении, аналогичном тому, которое представлено на фиг. 2 и в котором терминальная система может представлять собой специализированную систему, выполняющую требуемую прикладную программу, а хост-системой для эмуляции массового запоминающего устройства является потоковый сервер. Однако следует понимать, что виртуализация запоминающего устройства в соответствии с изложенными здесь принципами может быть осуществлена в других контекстах, включающих в себя приложения облачных вычислений наряду с игровыми потоковыми операциями, и в режимах локальной реализации, в которых требуется виртуализация запоминающего устройства для вычислительного устройства, в частности, без внесения изменений в вычислительное устройство.

При более подробном рассмотрении фиг. 3 видно, что виртуализированное запоминающее устройство предоставляется терминальной системе 312 с использованием специализированного интерфейса 320, связанного с хост-системой 302 для интерфейсного устройства, каковым в данном случае является потоковый сервер. Интерфейсное устройство 320 совместно с процессом 322 сохранения данных, реализованным в хост-системе 302, может выполнять различные запросы данных массового запоминающего устройства, получаемые от терминальной системы 312. В примере, иллюстрируемом фиг. 3, интерфейсное устройство 320 может являться частью аппаратных средств, воспринимаемой терминальной системой в качестве реального массового запоминающего устройства, однако при более пристальном рассмотрении его данные могут поступать от сервера сохранения данных (не показан). Для обычного массового запоминающего устройства, как правило, используется соединение через интерфейс SATA или через другой стандартный интерфейс массового ЗУ. Чтобы эмулировать массовое запоминающее устройство и получать запросы данных, интерфейсное устройство 320, показанное на фиг. 3, может содержать аналогичное соединение через SATA или другой коммуникационный интерфейс массового ЗУ, совместимый с коммуникационным интерфейсом массового запоминающего устройства (ЗУ) терминальной системы, наряду с дополнительными компонентами, такими как специализированный процессор, память и другие компоненты.

Чтобы в различных вариантах реализации оптимизировать простое интегрирование функционала виртуализации запоминающего устройства в вычислительную систему, такую как потоковый сервер или другая "хост" система, интерфейсное устройство 320 может быть исполнено в виде расширительной карты, например расширительной платы PGI-Express, которая может быть подсоединена к хост-системе 302 через интерфейс расширения хост-системы. Во время работы интерфейс может принимать запросы чтения с диска и/или записи на диск от терминальной системы через свое соединение с массовым запоминающим устройством (например, через SATA-порт). Эти запросы доступа к данным могут быть в крайнем случае обработаны приложением 322 сохранения данных в хост-системе 302, и приложение сохранения данных может получать доступ к данным из файла, севера сохранения данных или из иного источника.

Возможно опциональное оснащение интерфейсного устройства 320 дополнительными компонентами для обеспечения дополнительного функционала, который может быть особо полезен в контексте облачных потоковых операций, хотя данная опция не требуется функционалу виртуализации запоминающего устройства. Например, для поддержки функционала потоковых операций в хост-системе возможно опциональное добавление в интерфейсное устройство 320 одного или большего количества дополнительных интерфейсов для передачи аудио- и/или видеоинформации, а также соответствующего функционала для поддержки потоковой передачи аудио/видео (A/V) информации посредством потокового процесса хост-системы 302 с целью поддержки облачных игровых сервисов или других вариантов реализации облачных вычислений. Опциональный A/V-интерфейс интерфейсного устройства 320 может быть совместим с терминальной системой 312 и может быть настроен в соответствии с любым из множества стандартов на A/V-интерфейс, таких как HDMI, интерфейс для композитного видеосигнала, интерфейс для компонентного видеосигнала, интерфейс для сигнала раздельного видео (S-video) или другой коммуникационный A/V интерфейс.

На фиг. 4А и 4В представлен более подробный обзор иллюстративной архитектуры аппаратных средств/программного обеспечения интерфейсного устройства и определенных вычислительных устройств согласно различным реализациям настоящего раскрытия изобретения. Фиг. 4А иллюстрирует архитектуру вычислительных устройств для примера терминальной системы в соответствии с различными аспектами настоящего раскрытия изобретения. Фиг. 4В иллюстрирует архитектуру вычислительных устройств для примера хост-системы, содержащей пример интерфейсного устройства согласно различным реализациям настоящего раскрытия изобретения. В некоторых реализациях терминальная система может представлять собой существующую встроенную систему, видеоигровую приставку или другое вычислительное устройство, имеющее специализированную архитектуру. В некоторых реализациях хост-системой может являться потоковый сервер, настроенный на потоковую передачу приложения, выполняемого в терминальной системе, клиентскому устройству, например, как показано на фиг. 2.

Пример терминальной системы 412 может включать в себя хост-контроллер 424 массового запоминающего устройства (именуемый также хост-адаптером или хост-адаптером шины), каковым может являться, например, хост-контроллер SATA (AHCI), хост-контроллер USB или хост-контроллер для другого стандарта на коммуникационный интерфейс массового ЗУ. Терминальная система 412 может содержать также соответствующий драйвер 426 массового запоминающего устройства, совместимый с хост-контроллером 424 массового ЗУ и облегчающий передачу через интерфейс ЗУ. Для подключения к массовому запоминающему устройству обычно следует подсоединять хост-контроллер 424 к массовому ЗУ с использованием соответствующего соединителя (такого, как соединитель SATA-кабеля, USB-кабеля или другой соединитель в зависимости от интерфейса массового ЗУ терминальной системы). В частности, хост-контроллер 424 следует подсоединять к контроллеру массового ЗУ (именуемому также иногда "контроллером диска", хотя массовым ЗУ может являться твердотельный накопитель или другое ЗУ, в котором не используется диск) конкретного массового ЗУ, к которому подсоединяется хост-контроллер. В примере системы, иллюстрируемом фиг. 4А-4В, хост-контроллер 424 вместо указанного выше соединения подсоединяется к интерфейсному устройству 420, которое вместе со своей хост-системой 402 эмулирует массовое запоминающее устройство для терминальной системы 412.

Интерфейсное устройство 420 может содержать коммуникационный интерфейс для соединений массового ЗУ, совместимый с коммуникационным интерфейсом памяти, используемым терминальной системой 412. Коммуникационный интерфейс интерфейсного устройства может содержать один или большее количество портов 414 массового запоминающего устройства, таких как один или большее количество SATA-портов, USB-портов или других совместимых аппаратных средств интерфейса массового ЗУ. Интерфейсное устройство 402 может содержать специализированный процессор, функционально связанный с аппаратным интерфейсом массового запоминающего устройства, причем специализированный процессор содержит логику 428, которая назначена выполнению функций, связанных с эмуляцией массового ЗУ, и опционально других функций для сигналов, получаемых через соединитель запоминающего устройства от терминальной системы 402. Логика 428 может поддерживать также связь с хост-системой 402 через дополнительный коммуникационный интерфейс, который может взаимодействовать с периферийной шиной хост-системы 402 с целью сопряжения с процессом сохранения данных, реализованным в хост-системе. В качестве примера, не подразумевающего никаких ограничений, интерфейсным устройством 420 может являться расширительная карта, взаимодействующая с шиной обработки данных хост-системы 402 через интерфейс расширения, такой как интерфейс межсоединения периферийных компонентов (peripheral component interconnect; PCI), расширенного PCI (PCI-eXtended; PCI-X), PCI-Express (PCIe) или другой интерфейс, облегчающий связь с хост-системой 402, например, по периферийной шине. Хост-система может содержать драйвер 426 интерфейсного устройства для поддержки обмена сигналами через интерфейсное устройство 420.

В определенных вариантах реализации специализированный процессор может быть выполнен в виде программируемой пользователем вентильной матрицы (FPGA), специализированной заказной интегральной схемы (ASIC) или другого специализированного блока обработки, содержащего выделенные элементы логики, сконфигурированные в соответствии с изложенными здесь принципами. Логические элементы 428 специализированного процессора могут также включать в себя специализированную логику, поддерживающую облачные поточные операции в дополнение к виртуализации запоминающего устройства, такие как считывание аудио/видеоинформации выходных данных из приложения 408, выполняемого в терминальной системе 402, что может облегчить потоковую передачу аудио/видеовыходной информации по сети посредством хост-системы 402 в вариантах реализации, включающих в себя облачные игровые сервисы. Интерфейсная карта 402 может включать в себя коммуникационный интерфейс аудио/видео (AV) передачи, например один или большее количество портов HDMI или других A/V-портов, а также совместимый A/V-приемник 430 для приема выходных A/V-сигналов приложения, выполняемого в терминальной системе, через соответствующий A/V-соединитель.

В примере, иллюстрируемом фиг. 4А-4В, контроллер массового запоминающего устройства, реализованный в логике 428 специализированного процессора, работает под управлением драйвера 426 интерфейсного устройства в хост-системе 402, и процесс 432 сохранения данных, реализованный в хост-системе 402, например программное приложение, выполняемое в центральном процессоре 404 может обеспечить сервисы пересылки данных для драйвера 426 интерфейсного устройства.

Например, если терминальная система 412 запрашивает считывание данных из своего дискового накопителя данных или из другого массового запоминающего устройства, подсоединенного к ней через интерфейс массового ЗУ, в данном запросе это может быть реализовано через хост-контроллер 424 массового ЗУ, контроллер массового ЗУ, содержащийся в логике 428, драйвер 426 интерфейсного устройства к процессу 432 сохранения данных, реализованному в хост-системе. Далее процесс 432 сохранения данных может выбирать данные, доступные ему из различных источников. Например, процесс 432 сохранения данных может извлекать данные из дискового накопителя или из другого массового запоминающего устройства, подсоединенного к главному компьютеру, или может извлекать данные из дисководов или серверов сохранения данных по сети. Независимо от того, какой способ используется процессом сохранения данных, этот способ прозрачен для терминальной системы 402.

В определенных вариантах реализации возможно опциональное использование в качестве хост-системы 402 потокового сервера, адаптированного к передаче по сети потока выходных данных от приложения 408, выполняемого в терминальной системе 412. Например, хост-система 402 может включать в себя аудио/видео (A/V) процесс 434, который может являться приложением, выполняемым в хост-системе 402. Процесс сбора A/V-данных