Организация памяти компьютера
Реферат
Изобретение относится к созданию памяти в компьютере. Техническим результатом является расширение функциональных возможностей. Устройство содержит флэш-память, оперативную память, отдельную энергонезависимую память, средство для копирования страницы флэш-памяти в виде образа страницы в оперативную память и обновления этого образа страницы, средство для записи обновленного образа страницы назад во флэш-память на свободную страницу, средство для обновления главной таблицы записи в энергонезависимой памяти. Способ описывает работу данного устройства. 4 с. и 25 з.п.ф-лы, 10 ил.
Изобретение относится к памяти компьютера и, более конкретно, к разделению областей памяти и/или обновлению содержимого флэш-памяти. Оно находит конкретное применение в приемнике-декодере в системе вещания и приема, в частности приемнике-декодере интерактивной спутниковой системы цифрового телевидения и/или радио. Однако будет понятно, что применение настоящего изобретения не ограничивается этой системой или системами данного типа, а вообще применимо к широкому классу компьютерных систем.
В компьютерных системах, в частности системах, где компьютерная система является частью некоторой большей системы, такой как приемник-декодер для системы цифрового телевидения или радио, размер памяти часто ограничен. Это означает, что память должна быть организована таким образом, чтобы использование пространства памяти различными функциями, запрашиваемыми системой, было минимизировано. Кроме этого, может также потребоваться минимизировать время, необходимое для доступа хотя бы к некоторым частям памяти. Один аспект предлагаемого изобретения касается, в частности, обеспечения или организации буферов в памяти. Традиционный метод организации буферов - динамическая система выделения требуемых буферов. Однако в данном контексте эта стандартная система будет иметь некоторые недостатки. Она имеет тенденцию приводить к фрагментации памяти, и ее быстродействие ограничивается необходимостью в выполнении дополнительных избыточных операций. Кроме того, при возникновении необходимости расширения буфера может потребоваться перемещение блоков памяти для создания пространства для расширения. Согласно одному аспекту настоящего изобретения предлагается система для определения и адресации буферов в области памяти компьютерной системы, содержащая средство хранения размеров пулов для сохранения множества размеров пулов; средство хранения размера буферов для сохранения размера буферов для каждого пула; вычислительное средство для вычисления, исходя их указанных средств, адреса в желаемом буфере в желаемом пуле. Предпочтительно предусмотрено средство для определения размеров пулов в кумулятивной форме и сохранения их в этой форме в средстве хранения размеров пулов. В начале каждого пула может быть определена зарезервированная область и предусмотрено средство, предназначенное для выбора либо непосредственно кумулятивного размера пула, либо выхода вычислительного средства. Желаемый номер пула, желаемый номер буфера и желаемый байт могут быть проверены на выход за границу допустимого диапазона. В настоящее время существует множество типов компьютерной памяти. Важнейшим различием между различными видами памяти является различие между энергозависимой и энергонезависимой памятью. Энергозависимая память сохраняет свое содержимое только до тех пор, пока на нее подается напряжение, и теряет свое содержимое, как только напряжение отключается, в то время как энергонезависимая память сохраняет свое содержимое неограниченно долго даже после отключения питания. Еще одним важным различием является различие между записываемой памятью и памятью, доступной только для чтения. Энергозависимая память обычно представляется оперативной памятью (RAM), в то время как существуют различные виды энергонезависимой памяти. Оперативная память обычно записываемая, в то время как память только для чтения представляется постоянным запоминающим устройством (ПЗУ или ROM). Последнее различие не обязательно является жестким. Конечно, любая память является в некотором смысле записываемой, хотя бы один раз, но некоторые виды ПЗУ допускают изменение своего содержимого, хотя и с некоторыми затруднениями. Так, существуют такие типы памяти только для чтения, как ППЗУ (программируемое (то есть записываемое) запоминающее устройство (PROM)), электрически стираемое ППЗУ (EEPROM) и флэш-память. Различные типы памяти имеют разные характеристики (например, разное время чтения и разную стоимость), поэтому во многих случаях желательно использовать комбинацию нескольких разных типов в одной компьютерной системе. Другой аспект предлагаемого изобретения касается флэш-памяти. Флэш-память, вообще говоря, относится к ПЗУ-подобным устройствам памяти в том смысле, что она энергонезависима. Она также обычно предназначена для использования ПЗУ-подобным образом, для считывания из нее, но без записи в нее. В то же время флэш-память может записываться, хотя и с некоторыми затруднениями. В частности, флэш-память обычно разделяется на страницы, каждая из которых многокилобайтного размера, и запись во флэш-память осуществляется страницами. Более подробно, для записи во флэш-память необходимо сначала стереть целую страницу и затем записать новое содержимое в стертую страницу; кроме этого, запись должна быть обязательно одной непрерывной операцией (естественно, между стиранием и записью может быть задержка). В принципе, информация во флэш-памяти может быть организована в виде блоков любого размера, от одного слова и больше. Однако на практике она обычно организовывается в виде блоков значительного размера. Блок может содержать данные, например, таблицы постоянной или полупостоянной информации, программу или подпрограмму. Размеры блоков обычно выбираются меньше, чем размер страницы (если блок больше, чем страница, он обычно просто разделяется на подблоки, которые меньше размера страницы). Обычно при обновлении флэш-памяти желательно сохранять некоторую из уже имеющейся в ней информацию. Для этого необходимо подлежащую обновлению страницу считать в оперативную память в виде образа страницы; затем этот образ в оперативной памяти может быть обновлен путем вставки новой информации, подлежащей вводу в эту страницу. В это же время из страницы может быть удалена любая информация, которая больше не нужна. Затем обновленный образ может быть записан обратно во флэш-память. В общем случае размер блока не фиксирован, то есть разные блоки могут быть разных размеров. Очевидно, что это может вызвать затруднения в случае, когда некоторые существующие блоки должны быть удалены и новые блоки добавлены. Эти затруднения в значительной мере можно преодолеть, если обеспечить возможность перемещения блоков, таким образом, что при обновлении страницы блоки, которые должны остаться в этой странице, переупорядочиваются, так что происходит слияние всех неиспользуемых участков в один большой неиспользуемый участок. Если блоки перемещаемые, то к ним нельзя адресоваться с помощью фиксированных адресов. Вместо этого необходимо поддерживать некоторую структуру данных местоположения или адресации блоков, чтобы блоки можно было легко находить с помощью некоторого имени или дескриптора. При использовании блоков разного размера для этого требуется информация как о расположении, так и о природе содержимого блоков. Это может быть достигнуто разными путями. Так, можно поддерживать в начале флэш-памяти подробный каталог блоков (их расположение и природа содержимого), или каталог расположения блоков может поддерживаться в начале флэш-памяти, и каждый блок может содержать заголовок, отражающий природу содержимого блока. Как альтернатива, для каждой страницы флэш-памяти можно поддерживать отдельную структуру данных местоположения блоков. Все эти структуры данных местоположения блоков имеют общую особенность, состоящую в том, что обновление флэш-памяти необходимо при любом изменении ее содержимого. Очевидно, что запись нового блока требует обновления флэш-памяти; удаление блока точно так же требует обновления. Хотя в физическом удалении блока нет необходимости, нужно обновлять структуру данных местоположения блоков, чтобы указать, что блок более недействителен. Было замечено, что необходимость обновления флэш-памяти может быть ограничена случаем добавления новых блоков; другими словами, блоки могут эффективно удаляться без необходимости обновления флэш-памяти. Для обеспечения этого структура данных местоположения блоков содержится, хотя бы частично, во внешней памяти за пределами самой флэш-памяти, предпочтительно, в памяти электрически стираемого ППЗУ. Внешняя память может содержать, по существу, всю структуру данных местоположения блоков, то есть адреса блоков и дескрипторы. Как альтернатива, внешняя память может содержать только адреса расположения блоков во флэш-памяти, а дескрипторы блоков содержатся во флэш-памяти в качестве заголовков самих блоков. В обоих случаях, внешний каталог может быть организован либо как одна структура для флэш-памяти в целом, либо используя постраничный подход. В то же время предпочтительно минимизировать размер внешней памяти путем хранения в ней только признаков действительности каждого блока, а адреса блоков и дескрипторы блоков хранить в самой флэш-памяти. Это уменьшает внешнюю память до размеров битового массива признаков действительности. Чтобы удалить блок из флэш-памяти, все, что требуется, - это изменить бит для данного блока во внешней памяти со значения "действителен" на "недействителен". Возвращаясь к описанной выше процедуре обновления страницы, отметим, что в ней имеется проблема. Если во время этой процедуры произойдет прерывание питания системы (или произойдет другое серьезное прерывание работы системы, или произойдет аварийный останов), содержимое оперативной памяти будет потеряно, поэтому обновленный образ страницы флэш-памяти, подлежащий записи во флэш-память, будет потерян. Информация, ранее подлежащая обновлению в соответствующей странице флэш-памяти, будет стерта перед записью обновленной страницы обратно во флэш-память (и обновленная страница будет записана обратно во флэш-память только частично, так что часть ее содержимого будет утеряна; и, поскольку точный момент, в который произошел сбой питания, в общем случае неизвестен, обычно не будет достоверно известно, какая часть содержимого обновленной страницы была записана во флэш-память). Одной из целей настоящего изобретения является смягчение или преодоление данной проблемы. В соответствии с этим аспектом, настоящим изобретением предлагается система флэш-памяти в компьютере, в которой флэш-память разделяется на отдельно записываемые страницы, содержащая: средство для копирования страницы флэш-памяти в виде образа страницы в оперативную память и обновления образа страницы; средство для записи образа страницы назад, в другую страницу во флэш-памяти; главную таблицу записи, хранящуюся в отдельной энергонезависимой памяти, указывающую действительные страницы во флэш-памяти; и средство для обновления главной таблицы записи в энергонезависимой памяти после обновления страницы во флэш-памяти. Предпочтительно память, в которой хранится главная таблица записи, - электрически стираемое ППЗУ. Доступ к флэш-памяти обычно будет осуществляться с помощью главной таблицы записи. При нормальном режиме функционирования главная таблица записи будет отмечать некоторые страницы флэш-памяти как действительные, а остальные как недействительные; термин "недействительная" означает, что страница не содержит информации, подлежащей использованию. Страница может считаться недействительной по разным причинам; например, она может быть пустой, она может быть успешно скопирована в другую страницу, или при ее записи имел место сбой. В предложенной системе обновление страницы включает копирование этой подлежащей обновлению страницы из существующей страницы во флэш-памяти в другую страницу (причем копирование включает обновление содержимого страницы). Таким образом, предлагаемая система должна всегда поддерживать хотя бы одну страницу как недействительную; такая недействительная страница (или страницы) может быть также названа как "свободная". При обновлении страницы главная таблица записи обновляется только после того, как копирование страницы завершено. Таким образом, если копирование страницы прерывается, главная таблица записи останется неизменной, так что оригинальная страница останется действительной, а новая страница останется отмеченной как свободная. Затем можно повторить попытку копирования или отказаться от нее. Даже в только что описанной системе остаются потенциальные проблемы. Только что описанная система полагается на обновление главной таблицы записи. Следовательно, важно гарантировать высокую степень целостности этой главной таблицы записи. Поскольку обновление главной таблицы записи будет очень быстрым по сравнению с обновлением страницы флэш-памяти, может обеспечиваться возможность проверки состояния источника питания непосредственно перед обновлением главной таблицы записи и использование источника питания, который имеет достаточную емкость для поддержания системы в рабочем состоянии, по крайней мере, столько времени, сколько необходимо для обновления главной таблицы записи. Однако предпочтительно главная таблица записи содержит секцию обнаружения ошибок и целиком копируется в резервную копию таблицы записи сразу же после обновления. Система тогда будет содержать средство для проверки главной таблицы записи на наличие в ней ошибок при использовании ее для доступа к флэш-памяти, а также для использования резервной копии таблицы записи в случае наличия ошибок в главной таблице записи. Таким образом, если главная таблица записи содержит ошибку, система рассматривает последнее обновление флэш-памяти как недействительное, как будто обновление было прервано. Конечно, существует вероятность того, что копирование главной таблицы записи в резервную копию таблицы записи будет прервано. Такое копирование, однако, осуществляется только после завершения обновления главной таблицы записи. Любой последующий доступ к флэш-памяти будет включать проверку главной таблицы записи; эта главная таблица записи не будет содержать ошибок, поэтому необходимости доступа к резервной копии таблицы записи не будет, и ее сбойное состояние ни на что не повлияет. Однако во время следующего обновления флэш-памяти главная таблица записи будет обновляться. Как описано выше, это обновление может быть прервано и, если это произойдет, для доступа к флэш-памяти в ее состоянии до обновления должна будет использоваться резервная копия таблицы записи. Следовательно, нежелательно допускать ситуации, при которых резервная копия таблицы записи была бы сбойной. Это обычно не допускается путем копирования главной таблицы записи в резервную копию таблицы записи в качестве первого шага обновления флэш-памяти (или, по крайней мере, перед записью обновленного образа страницы из оперативной памяти в свободную страницу флэш-памяти). Из приведенного выше описания следует, что информация или блоки данных во флэш-памяти не располагаются в фиксированных позициях. По мере обновления страниц флэш-памяти блоки данных в них перемещаются с одной страницы на другую, и могут также менять свое положение в странице. Поэтому для того, чтобы при необходимости эти блоки данных могли быть найдены, требуется какой-нибудь каталог. Информация такого каталога может содержаться в таблице записи или в самих страницах флэш-памяти, или быть разделена между ними. Было отмечено, что информация каталога, в общем, обычно не изменяется, если только не изменяются сами блоки данных, так что ее удобно хранить вместе с блоками данных во флэш-памяти. Однако существует один тип информации каталога, которая может изменяться, когда сами данные остаются неизменными; это информация о том, является ли блок данных действительным. Следовательно, информацию о действительности блока данных удобно хранить в таблице записи. Это позволяет эффективно удалять блоки данных без обновления флэш-памяти; все, что для этого необходимо, - это изменить значение индикатора данного блока с действительного на недействительное. Конечно, если страница с этим блоком через некоторое время обновляется, блоки с недействительным значением признаков не будут скопированы из страницы в образ страницы в оперативной памяти, так что они будут физически удалены в этот момент (фактически они останутся в старой странице, которая станет новой свободной страницей, но там они уже будут недоступны, и когда эта новая свободная страница будет использоваться для следующего обновления флэш-памяти, их физическое удаление будет завершено). Следовательно, таблица записи предпочтительно содержит для каждой страницы набор признаков действительности блоков данных, которые могут представлять собой отдельные биты. Это увеличивает размер таблицы записи, что, в свою очередь, означает, что для обеспечения секции обнаружения ошибок могут использоваться различные стандартные методики; предпочтительно использовать контроль циклическим избыточным кодом (CRC), хотя может использоваться код обнаружения или исправления ошибок, или функции хеширования. Признаки действительности блоков для страницы в таблице записи должны, естественно, быть связаны с соответствующими блоками в данной странице флэш-памяти. Этого можно добиться путем хранения в странице флэш-памяти блоков в такой же последовательности, что и индикаторов в таблице записи. Однако предпочтительно иметь заголовок каждой страницы во флэш-памяти, который содержит набор указателей на фактические местоположения блоков в данной странице; этим обеспечивается большая гибкость в упорядочении самих блоков в странице. Идентифицирующая информация (например, имя блока) для каждого блока на странице может содержаться либо в заголовке страницы, либо располагаться в начале самого блока как заголовок блока. В предпочтительной реализации используется второй из указанных вариантов. Такая идентифицирующая информация может содержать информацию для связи блока, так что большие объемы данных могут быть разбиты на 2 или более блоков. В дополнительном аспекте данного изобретения предлагается приемник/декодер для использования в цифровой системе вещания и приема, содержащий упомянутую систему, или систему памяти, или флэш-память, как описано выше. Предпочтительно приемник-декодер дополнительно содержит средство для приема сжатого сигнала MPEG-типа (то есть сигнала, сжатого в соответствии с алгоритмом сжатия подвижного изображения и звука MPEG), средство для декодирования принятых сигналов с целью получения телевизионного видео- и/или радиосигнала и средство для передачи этого сигнала в телевизор и/или радиоприемник. Предпочтительные характеристики предлагаемого изобретения будут описаны ниже, исключительно в виде примера, со ссылкой на прилагаемые чертежи, где: на фиг. 1 представлена общая архитектура системы цифрового телевидения согласно предпочтительной реализации настоящего изобретения; на фиг.2 - архитектура интерактивной системы в системе цифрового телевидения; на фиг.3 - расположение файлов в загружаемом в приемник/декодер модуле; на фиг.4 - упрощенная функциональная схема соответствующих частей компьютерной системы; на фиг.5 - схема организации части оперативной памяти; на фиг.6 - структура команды "Задать Буферы"; на фиг.7 - структура устройства управления памятью; на фиг.8 - функциональная схема системы; на фиг.9 - логическая структура флэш-памяти и таблиц записи; на фиг.10 - логическая структура страницы флэш-памяти и подсекции таблицы записи. Общая структура системы вещания и приема цифрового телевидения 1000 согласно данному изобретению приведена на фиг.1. Изобретение включает самую обычную систему цифрового телевидения 2000, которая использует известную систему сжатия MPEG-2 для передачи сжатых цифровых сигналов. Более подробно, устройство сжатия MPEG-2 2002 в центре вещания принимает поток цифровых сигналов (обычно поток видеосигналов). Устройство сжатия 2002 подключается к мультиплексору и скремблеру 2004 с помощью канала 2006. Мультиплексор 2004 принимает множество входных сигналов, собирает один или несколько несущих потоков и передает сжатые цифровые сигналы в передатчик 2008 центра вещания через канал 2010, тип которого, естественно, может быть различным, включая каналы телекоммуникаций. Передатчик 2008 передает электромагнитные сигналы через канал "земля-спутник" 2012 на спутниковый ретранслятор 2014, где выполняется их обработка электронными средствами и вещание через виртуальный канал "спутник-земля" 2016 на наземный приемник 2018, обычно имеющий форму тарелки, принадлежащий конечному пользователю или арендуемый им. Сигналы, принимаемые приемником 2018, передаются в совмещенный приемник-декодер 2020, принадлежащий конечному пользователю или арендуемый им и подключенный к телевизору 2022 конечного пользователя. Приемник-декодер 2020 декодирует сжатый MPEG-2 сигнал в телевизионный сигнал для телевизора 2022. Система условного доступа 3000 подключается к мультиплексору 2004 и приемнику-декодеру 2020 и располагается частично в центре вещания и частично в декодере. Она позволяет конечному пользователю осуществлять доступ к вещательным передачам цифрового телевидения от одного или нескольких операторов вещания. В приемник-декодер 2020 может устанавливаться смарт-карта, которая может декодировать сообщения, относящиеся к коммерческим предложениям (одна или несколько телевизионных программ, продаваемых оператором вещания). С использованием декодера и смарт-карты пользователь может покупать передачи в режиме подписки или оплаты за просмотр (PPV). Интерактивная система 4000, также подключенная к мультиплексору 2004 и приемнику-декодеру 2020 и также располагающаяся частично в центре вещания и частично в декодере, позволяет конечному пользователю взаимодействовать с различными приложениями через модемный обратный канал 4002. На фиг. 2 приведена общая структура телевизионной интерактивной системы 4000 системы цифрового телевидения 1000 в соответствии с настоящим изобретением. Например, интерактивная система 4000 позволяет конечному пользователю покупать товары по экранным каталогам, просматривать локальные новости и карты погоды по запросу и играть в игры, используя свой телевизор. Интерактивная система 4000 содержит, вообще говоря, четыре основных элемента: - средство разработки 4004 в центре вещания или в другом месте, позволяющее оператору вещания создавать, разрабатывать, отлаживать и тестировать приложения; - сервер приложений и данных 4006 в центре вещания, соединенный со средством разработки 4004, для предоставления оператору вещания возможности подготавливать, удостоверять подлинность и форматировать приложения и данные для отправления в мультиплексор и скремблер 2004 для вставки его в несущий поток MPEG-2 (обычно в его приватную секцию), подлежащий вещанию для конечного пользователя; - виртуальную машину, содержащую подсистему реального времени (RTE - Real Time Engine) 4008, которая представляет собой исполняемый код, инсталлированный в приемнике-декодере 2020, принадлежащем конечному пользователю или арендуемом им, для обеспечения конечному пользователю возможности принимать, удостоверять подлинность, разворачивать и загружать приложения в рабочую память декодера 2020 для выполнения. Подсистема 4008 также выполняет резидентные приложения общего назначения. Подсистема 4008 не зависит от аппаратного обеспечения и операционной системы; - обратный модемный канал 4002 между приемником-декодером 2020 и сервером приложений и данных 4006 для подачи сигналов, указывающих серверу 4006 вставлять данные и приложения в несущий поток MPEG-2 по требованию конечного пользователя. Телевизионная интерактивная система работает с использованием т.н. "приложений", которые управляют функционированием приемника-декодера и различными устройствами, входящими в его состав. Приложения представлены в подсистеме 4008 как т.н. "файлы ресурсов". "Модуль" - это набор файлов ресурсов и данных. Для формирования одного приложения могут использоваться несколько модулей. "Том памяти" приемника-декодера - это пространство для хранения модулей. Для загрузки модулей используют "интерфейсы". Модули могут загружаться в приемник/декодер 2020 из несущего потока MPEG-2. Понятия, упомянутые в предыдущем абзаце, ниже будут описаны подробнее. Применительно к данному описанию, приложение - это фрагмент компьютерного кода для управления высокоуровневыми операциями приемника-декодера 2020. Например, когда конечный пользователь позиционирует фокус устройства дистанционного управления 2026 (подробно показанный на фиг.4) на объекте кнопки, видимом на экране телевизора 2022, и нажимает клавишу подтверждения, выполняется последовательность инструкций, соответствующая этой кнопке. Интерактивное приложение обеспечивает меню и исполняет команды по соответствующему запросу конечного пользователя и предоставляет данные в соответствии с назначением данного приложения. Приложения могут быть либо резидентными приложениями, т.е. хранящимися в ПЗУ (либо в FLASH памяти, либо другой энергонезависимой памяти) приемника-декодера 2020, либо передающимися путем вещания и загружаемыми в ОЗУ (или FLASH) декодера 2020. Примерами приложений являются: - Приложение инициализации. Приемник-декодер 2020 снабжен резидентным приложением инициализации, которое является адаптируемым набором модулей (более подробно этот термин поясняется ниже) и позволяет приемнику-декодеру 2020 быть непосредственно готовым к работе в среде MPEG-2. Это приложение предоставляет базовые функции, которые могут быть при необходимости модифицированы оператором вещания. Оно предоставляет также интерфейс между резидентными приложениями и загружаемыми приложениями. - Приложение запуска. Приложение запуска позволяет выполняться в приемнике-декодере 2020 любому приложению, либо загружаемому, либо резидентному. Это приложение работает как программа начальной загрузки, выполняемая при поступлении услуги для того, чтобы запустить приложение. Приложение запуска загружается в оперативную память и, следовательно, может быть легко обновлено. Оно может быть сконфигурировано таким образом, что интерактивные приложения, доступные по разным каналам, могут быть выбраны и выполнены либо сразу же после загрузки, либо после предварительной загрузки. В случае предварительной загрузки приложение загружается в память 2024 и активируется приложением запуска по необходимости. - Руководство по программам. Руководство по программам - это интерактивное приложение, которое предоставляет полную информацию по программам. Например, оно может содержать информацию, скажем, о программе телевизионных передач на неделю, предоставляемых каждым каналом из пакета ("букета") каналов цифрового телевидения. Нажатием на клавишу устройства дистанционного управления 2026 конечный пользователь получает доступ к добавочному экрану, который с перекрытием накладывается на передачу, которая демонстрируется в данный момент на экране телевизора 2022. Этот добавочный экран представляет собой средство просмотра, предоставляющее информацию о текущих и последующих передачах каждого канала букета цифрового ТВ. С помощью нажатия на другую клавишу устройства дистанционного управления 2026 конечный пользователь получает доступ к приложению, которое выдает на экран информацию о программе передач на неделю. Конечный пользователь может также производить поиск и сортировку программ по простым и индивидуальным критериям. Конечный пользователь может также получать доступ непосредственно к выбранному каналу. - Приложение PPV (PPV - Pay Per View, оплата производится за каждую просмотренную передачу). Приложение PPV - это интерактивная услуга, имеющаяся на каждом PPV канале букета цифрового ТВ с системой условного доступа 3000. Конечный пользователь может получать доступ к указанному приложению с использованием ТВ меню или броузера каналов. Кроме того, это приложение запускается автоматически, как только на PPV канале обнаруживается PPV передача. Затем конечный пользователь может купить текущую программу либо с помощью его дочерней смарт-карты 3020, или с помощью сервера связи 3022 (с использованием модема, телефона и DTMF кодов (кодов тонового набора), MINITEL, или другим подобным образом). Это приложение может быть резидентным в ПЗУ приемника-декодера 2020 или загружаться в оперативную память приемника-декодера 2020. - Приложение загрузки в ПК. Конечный пользователь может по запросу загружать компьютерное программное обеспечение с использованием приложения загрузки в ПК. - Приложение просмотра журнала. Приложение просмотра журнала обеспечивает периодическое вещание видеоизображений с обеспечением пользователю возможности навигации с помощью кнопок на экране. - Приложение телевикторины. Приложение телевикторины предпочтительно синхронизируется с вещаемой программой телевикторины. Например, на экран телевизора 2022 выдаются несколько возможных ответов, и пользователь может выбрать ответ с помощью устройства дистанционного управления 2026. Приложение телевикторины может информировать пользователя, правилен его ответ или нет, и может подсчитывать набранные пользователем очки. - Приложение дистанционных покупок. В одном из примеров приложения дистанционных покупок предложения товаров к продаже транслируются на приемник-декодер 2020 и затем выдается на экран телевизора 2022. С помощью устройства дистанционного управления пользователь может выбрать для покупки какой-либо конкретный товар. Заказ на этот товар передается через обратный модемный канал 4002 в сервер приложений и данных 4006 или в отдельную систему продаж, номер телефона которой был загружен в приемник-декодер, возможно - с поручением дебетовать счет кредитной карты, которая установлена в одном из устройств считывания карты 4036 приемника-декодера 2020. - Приложение дистанционных банковских услуг. В одном из примеров приложения дистанционных банковских услуг пользователь устанавливает банковскую карту в одно из устройств считывания карты 4036 приемника-декодера 2020. Приемник-декодер 2020 звонит банку пользователя с использованием номера телефона, записанного в банковской карте пользователя или хранящегося в приемнике-декодере, и затем приложение предоставляет набор средств, которые могут быть выбраны с помощью устройства дистанционного управления 2026, например, для загрузки по телефонной линии отчета о состоянии счета, перевода средств с одного счета на другой, запрашивания чековой книжки и т.д. - Приложение Интернет-броузера. В одном примере приложения Интернет-броузера инструкции от пользователя, такие как запрос просмотра веб-страницы, имеющей конкретный URL, вводятся с использованием устройства дистанционного управления 2026, и они пересылаются по обратному модемному каналу 4002 в сервер приложений и данных 4006. Соответствующая веб-страница затем включается в транслируемые из центра вещания данные, принимаемые приемником-декодером 2020 через канал "земля-спутник" 2012, ретранслятор 2014 и канал "спутник-земля" 2016, и затем выдается на экран телевизор 2022. Приложения сохраняются в ячейке памяти приемника-декодера 2020 и представляются в виде файлов ресурсов. Под файлами ресурсов понимают файлы библиотек описаний графических объектов, файлы библиотек блоков переменных, файлы последовательностей команд, файлы приложений и файлы данных. Файлы библиотек описаний графических объектов описывают экраны, человеко-машинный интерфейс приложения. Файлы библиотек блоков переменных описывают структуры данных, которыми оперирует приложение. Файлы последовательностей команд описывают функциональные действия, выполняемые приложением. Файлы приложений предоставляют точки входа для приложений. Приложения, составляемые таким способом, могут использовать файлы данных, такие как файлы библиотек пиктограмм, файлы изображений, файлы шрифтов, файлы таблиц цветов и файлы текстов ASCII. Интерактивное приложение может также получать оперативные данные, задействуя входы и/или выходы. Подсистема 4008 загружает в свою память только те файлы ресурсов, которые необходимы ей в данное время. Эти файлы ресурсов считываются из файлов библиотек описаний графических объектов, файлов последовательностей команд и файлов приложений; файлы библиотек блоков переменных записываются в память после вызова процедуры загрузки модулей и остаются там до тех пор, пока не будет произведен специальный вызов процедуры выгрузки модулей. Со ссылкой на фиг.3, модуль 4010, как, например, модуль дистанционных покупок, представляет собой набор файлов ресурсов и данных, содержащий следующее: один файл приложения 4012; неопределенное количество файлов библиотек описаний графических объектов 4014; неопределенное количество файлов библиотек блоков переменных 4016; неопределенное количество файлов последовательностей команд 4018; и если необходимо, файлы данных 4020, такие как файлы библиотек пиктограмм, файлы изображений, файлы шрифтов, файлы таблиц цветов и файлы текстов ASCII. В потоке данных MPEG каждый модуль образует группу MPEG таблиц. Каждая MPEG таблица может быть отформатирована в виде некоторого числа секций. В потоке данных MPEG каждая секция имеет размер до 4 кбайт. Для данных, передаваемых, например, через последовательный или параллельный порт модули точно так же разделяются на таблицы и секции, и размер секции варьируется в зависимости от среды передачи. Модули передаются в потоке данных MPEG в форме пакетов данных, обычно размером 188 байт, в потоках данных соответствующего типа, например, потоках видеоданных, потоках аудиоданных и потоках данных телетекста. Каждому пакету предшествует идентификатор пакета (PID) из 13 битов, по одному PID для каждого пакета, передаваемого в потоке данных MPEG. Таблица распределения программы (РМТ - Programme Map File) содержит список различных потоков данных и определяет содержимое каждого потока данных, согласно соответствующему PID. Благодаря PID устройство может узнавать о наличии приложений в потоке данных, указанный PID идентифицируется с использованием РМТ. Как показано на фиг. 4, приемник-декодер содержит оперативную память 4022, соединенную с микропроцессором 20, который также соединен с флэш-памятью 4024, электрически стираемой памятью ППЗУ 4026' и памятью ПЗУ 4026 посредством шины 21. Оперативная память 4022 подключена также к устройству DMA 22 (устройству прямого доступа к памяти), через которое данные (например, поток данных MPEG) могут вводиться непосредственно в оперативную память. Оперативная память имеет размер 256 кбайт и разделена на 3 области: область 24, которая зарезервирована для использования изготовителем системы; область 25, которая зарезервирована для использования виртуальной машиной (VM), и область пользователя 26, которая используется для размещения различной информации, такой как буферы, приложения 30, 30', 30", данные и т.д. Упомянутая система определяется функциональной спецификацией, предоставляющей изготовителю значительную свободу в проектировании аппаратного обеспечения для реализации самой системы; область памяти 24 используется, в сущности, в качестве интерфейса между функциями, определяемыми функциональной спецификацией, и аппаратными средствами. VM в области 25, в сущности, является видом операционной системы для компьютерной системы, и VM и микропроцессор 20 могут совместно рассматриваться как подсистема реального времени (RTE) 4008. В различные моменты времени в память могут загружаться разные приложения. Между VM и приложениями необходимо обеспечить возможность обмена информацией, как и между самими различными приложениями. Эта возможность обеспечивается в основном с помощью буферов, которые являются общими для VM и различных приложений. В предложенной системе для определения области буферов 32 в области памяти пользователя 26 и разделения области