КОМПАКТНОЕ ХРАНЕНИЕ ПРОГРАММНОГО КОДА НА МОБИЛЬНЫХ ТЕРМИНАЛАХ
COMPACT STORAGE OF PROGRAM CODE ON MOBILE TERMINALS

Область техники, к которой относится изобретение
Изобретение относится к электронному оборудованию беспроводной связи, в частности, к электронному оборудованию беспроводной связи, использующему энергонезависимое запоминающее устройство для хранения программных данных.
Уровень техники
Современное электронное оборудование беспроводной связи, такое как, к примеру, переносное оборудование для радиосвязи, например, мобильные телефоны, пейджеры или коммуникационные устройства, к примеру, электронные органайзеры, смартфоны, PDA (персональные цифровые устройства) или другая аналогичная аппаратура беспроводной связи, оснащено энергонезависимым запоминающим устройством, хранящим данные, даже в состоянии отключения питания, для хранения данных программного кода, необходимых для работы соответствующего электронного оборудования. Обычно исполняемый программный код имеет достаточно большой размер. Следовательно, хранение программного кода в энергонезависимых запоминающих устройствах, к примеру, флэш-памяти, существенно повышает стоимость изготовления мобильного терминала. Термин "мобильный терминал" при использовании в контексте данного подробного описания является синонимом "электронного оборудования беспроводной связи" и подчеркивает, что соответствующее оборудование выступает в качестве терминала в системе связи. Запоминающие устройства, которые могут быть использованы в качестве энергонезависимых средств хранения в мобильном терминале, доступны только в конкретных размерах, таких как единицы емкости хранения в 16 МБ, 32 МБ и целочисленные множители этих значений. Если объем сохраняемой версии программы превышает емкость планируемого запоминающего устройства, и вместо него должно быть использовано большее по размеру запоминающее устройство, следствием становится существенное увеличение стоимости изготовления. Допустим, что программный код примерно в 16 МБ сжимается примерно на 50%, то может быть использована флэш-память типа NAND емкостью 8 МБ, что сэкономит затраты на изготовление примерно на 1 доллар в расчете на один мобильный терминал.
Следовательно, цель настоящего изобретения заключается в предоставлении компактного хранения программного кода в электронном оборудовании беспроводной связи.
Сущность изобретения
Изобретение осуществляется посредством электронного оборудования беспроводной связи и способа экономичного хранения программного кода в электронном оборудовании беспроводной связи, что излагается в прилагаемой формуле изобретения.
В частности, настоящее изобретение осуществляется электронным оборудованием беспроводной связи, содержащим первое средство хранения для энергонезависимого хранения данных, при этом данные программного кода хранятся в первом средстве хранения, и второе средство хранения, приспособленное для предоставления возможности исполнения исполняемого экземпляра данных программного кода. При этом данные программного кода, сохраненные в первом средстве хранения, содержат первые данные программного кода в сжатой форме и дополнительные данные программного кода в несжатой форме, причем дополнительные данные кода содержат вторые данные программного кода, которые приспособлены для преобразования первых данных программного кода в их исполняемый экземпляр и переноса упомянутого исполняемого экземпляра во второе средство хранения.
Следует подчеркнуть, что термины "содержит" и "содержащий" при использовании в данном подробном описании используются, чтобы задавать наличие изложенных признаков, целых частей, этапов или компонентов, однако не препятствуют наличию или добавлению одного или более других признаков, целых частей, этапов, компонентов или их групп.
Способ экономичного хранения программного кода в электронном оборудовании беспроводной связи, который дополнительно осуществляет вышеуказанную цель, содержит этапы, на которых подготавливают первые данные программного кода, представляющие первый программный код, подготавливают дополнительные данные программного кода, содержащие вторые данные программного кода, представляющие второй программный код, сжимают первые данные программного кода и переносят сжатые первые данные программного кода и дополнительные данные кода в энергонезависимое запоминающее устройство электронного оборудования беспроводной связи. Вторые данные программного кода при этом содержат логику, которая при исполнении на электронном оборудовании беспроводной связи выполняет преобразование сжатых первых данных программного кода в исполняемый экземпляр первых данных программного кода и перенос исполняемого экземпляра первых данных программного кода в запоминающее устройство, приспособленное для исполнения программного кода.
Настоящее изобретение предоставляет эффективное использование дорогой энергонезависимой емкости хранения на мобильных терминалах, а также раскрывает возможности оптимизации общих затрат на запоминающее устройство. Оно позволяет хранить программный код, размер исполняемого экземпляра которого превышает доступный объем энергонезависимого запоминающего устройства, без необходимости перехода на запоминающее устройство большей емкости.
Дополнительные преимущества и усовершенствования изложены в зависимых пунктах формулы изобретения, представленной ниже.
В преимущественном варианте осуществления изобретения экономия затрат достигается за счет предоставления энергозависимого запоминающего устройства для размещения на нем, по меньшей мере, первой части второго средства хранения. Первое средство хранения экономически эффективно размещается в запоминающем устройстве с последовательным доступом, поскольку соответствующие запоминающие устройства доступны по очень приемлемым ценам. Альтернативно, оптимизация затрат на запоминающие устройства достигается посредством размещения первого средства хранения в запоминающем устройстве с произвольным доступом, поскольку оно позволяет исполнять, по меньшей мере, часть программного кода на дополнительной емкости запоминающего устройства, которая не занята сохраненным программным кодом или другими данными.
В частности, во втором случае, когда первое средство хранения сформировано посредством запоминающего устройства с произвольным доступом, первое средство хранения и дополнительная часть второго средства хранения могут быть дополнительно размещены в том же физическом устройстве хранения для обеспечения оптимизированного использования общей доступной емкости памяти. При этом дополнительные данные кода дополнительно содержат третьи данные программного кода, которые хранятся в дополнительной части второго средства хранения и которые приспособлены для исполнения "на месте" для полного использования общей доступной емкости хранения. Третьи данные программного кода предпочтительно заключены в дополнительных кодовых данных, которые должны исполняться "на месте" в энергонезависимом запоминающем устройстве.
Вторые данные программного кода, в сущности, запускаются посредством использования кода начальной загрузки, предусмотренного в постоянном запоминающем устройстве (ПЗУ) электронного оборудования беспроводной связи. Дополнительно, вторые данные программного кода преимущественно могут запускаться посредством использования контроллера, приспособленного для исполнения сегмента кода, который хранится в контроллере и который обеспечивает запуск вторых данных программного кода.
Снижение стоимости изготовления наиболее эффективно при реализации электронного оборудования в форме мобильного радиотерминала, поскольку эти устройства предоставляют достаточное число различных признаков, к примеру, органайзеры, игры, синтезаторы и т.п., которые требуют хранения объемного программного кода в энергонезависимых запоминающих устройствах малой емкости.
Экономичное хранение программного кода преимущественно может быть улучшено за счет дополнительного этапа способа, на котором сцепляют сжатые первые данные программного кода и дополнительные данные кода в набор программных данных и переносят сжатые первые данные программного кода и вторые данные программного кода в форме набора программных данных в энергонезависимое запоминающее устройство электронного оборудования беспроводной связи.
Для предоставления сертификации первые данные программного кода и вторые данные программного кода или набор программных данных (если доступен) подписываются с помощью сертификата.
Краткое описание чертежей
В последующем описании изобретение поясняется более подробно относительно конкретных вариантов осуществления и в связи с прилагаемыми чертежами, на которых:
фиг.1 - это блок-схема, иллюстрирующая функциональные блоки электронного оборудования беспроводной связи согласно настоящему изобретению,
фиг.2 - это блок-схема последовательности операций способа, иллюстрирующая базовые этапы для компактного хранения программного кода согласно одному варианту осуществления настоящего изобретения,
фиг.3 - это блок-схема последовательности операций способа, иллюстрирующая базовые этапы, необходимые для исполнения программного кода, сохраненного согласно способу по фиг.2,
фиг.4a-4d иллюстрируют управление запоминающим устройством в соответствии со способом по фиг.3,
фиг.5 - это блок-схема последовательности операций способа, иллюстрирующая базовые этапы для компактного хранения программного кода согласно дополнительному варианту осуществления настоящего изобретения,
фиг.6 - это блок-схема последовательности операций способа, иллюстрирующая базовые этапы, необходимые для исполнения программного кода, сохраненного согласно способу по фиг.5,
фиг.7a-7b иллюстрируют управление запоминающим устройством в соответствии со способом по фиг.6.
Осуществление изобретения
Мобильный терминал 1 согласно настоящему изобретению показан в форме блок-схемы на фиг.1. Мобильным терминалом 1 может быть переносное оборудование радиосвязи, такое как сотовый мобильный терминал или мобильный телефон, соответственно, пейджер или другой вид коммуникационного устройства, такой как, например, электронный органайзер, смартфон, PDA или другая аналогичная аппаратура беспроводной связи. На фиг.1 проиллюстрированы только те элементы мобильного терминала, которые важны для понимания настоящего изобретения. Дополнительные элементы, такие как, к примеру, средство кодирования, средство модуляции и т.п., которые также необходимы для работы электронного оборудования 1, целиком представлены в обобщенном виде посредством операционного средства 6 и не поясняются для простоты.
Мобильный терминал согласно настоящему изобретению содержит первое средство 2 хранения и второе средство 3 хранения, при этом первое средство 2 хранения сформировано в энергонезависимом запоминающем устройстве мобильного терминала 1. Второе средство 3 хранения сформировано в запоминающем устройстве, предпочтительно предоставляющем произвольный доступ. Как подробнее описывается ниже, второе средство 2 хранения может быть распределено по различным запоминающим устройствам, так, чтобы, к примеру, одна часть второго средства хранения была сформирована в энергонезависимом запоминающем устройстве, а другая часть - в энергозависимом оперативном запоминающем устройстве, к примеру, ДОЗУ. Электронное оборудование беспроводной связи 1 дополнительно содержит ПЗУ 4 и, возможно, контроллер 5, которые необходимы для начальной загрузки системы обработки данных в мобильном терминале 1.
В настоящее время, как правило, используются два различных способа исполнения программного кода в мобильных терминалах 1. Первый способ исполняет программный код "на месте" (XIP), т.е. в энергонезависимом запоминающем устройстве, обычно во флэш-памяти. Сегодня все большую значимость приобретает дополнительный способ, согласно которому исполняемые данные программного кода хранятся в энергонезависимом запоминающем устройстве, таком как NAND-запоминающее устройство, из которого создается исполняемый экземпляр программного кода в оперативном запоминающем устройстве (ОЗУ), при этом исполнение программного кода начинается с него.
Флэш-память NAND представляет недорогой тип запоминающего устройства в сравнении с другими энергонезависимыми запоминающими устройствами, доступными в настоящее время для мобильных терминалов. Но флэш-память NAND в настоящее время не оптимальна для исполнения программного кода, так как вследствие последовательного метода доступа к данным исполнение программы существенно медленнее в сравнении с произвольным доступом. Другой тип энергонезависимых устройств, часто используемых в мобильных терминалах 1, это флэш-память NOR. Она поддерживает высокоскоростной произвольный доступ с помощью параллельной архитектуры памяти NOR. Ее основной недостаток заключается в относительно высокой цене, которая сегодня значительно выше, чем цена флэш-памяти NAND той же емкости.
С возрастанием функций, предоставляемых мобильным терминалом 1, исполняемый программный код в этом электронном оборудовании имеет достаточно большой размер. Хранение программного кода во флэш-памяти в значительной степени определяет затраты на изготовление соответствующего мобильного терминала 1. Флэш-память доступна в возрастающих емкостях, при этом емкость следующего размера превышает предыдущую вдвое. Когда исполняемый программный код превышает размер запоминающего устройства, изначально предназначенного для хранения кода, переход к следующему большему запоминающему устройству существенно повышает затраты на изготовление мобильного терминала 1. Для более эффективного использования доступной емкости памяти данные программного кода сжимаются до групповой записи (флэш), т.е. сохранения в энергонезависимом запоминающем устройстве мобильного терминала. Поскольку невозможно непосредственно исполнять сжатый программный код, сжатый код сначала распаковывается и затем загружается в ОЗУ готовым к исполнению. В зависимости от используемого энергонезависимого устройства предусмотрено два сценария эффективного использования емкости памяти, доступной в мобильном терминале.
Базовые этапы первого варианта осуществления настоящего изобретения для предоставления компактного хранения данных программного кода показаны в блок-схеме последовательности операций способа по фиг.2. Сжатие исполняемых данных программного кода является частью процесса разработки программного обеспечения и изготовления мобильного терминала 1. После инициализации способа предоставления компактной формы программного кода, используемого в мобильном терминале, на этапе S0, образ до исполнения создается на этапе S1. Термин "образ" или "образ программного обеспечения" используется для описания исполняемого двоичного экземпляра программного обеспечения, т.е. исполняемого экземпляра данных программного кода. Образ программного обеспечения до исполнения содержит инициализационную часть, содержащую логику для распаковки сжатого программного кода и копирования несжатого кода в ОЗУ для запуска оттуда. Образ программного обеспечения до исполнения исполняет программный код без какого-либо доступа к операционной системе.
Операционная система и все запущенные на ней приложения являются частью главного образа программного обеспечения, который создается на этапе S2. Затем главный образ сжимается на этапе S3, и сжатый главный образ после этого сцепляется с образом до исполнения на этапе S4 до групповой записи в энергонезависимое запоминающее устройство мобильного терминала 1 на этапе S5. Дополнительно, образ программного обеспечения может быть подписан с помощью сертификата, при этом подписываются с помощью сертификата либо образ до исполнения и главный образ программного обеспечения, либо альтернативно набор программных данных, сформированный посредством сцепления образа до исполнения и сжатого главного образа программного обеспечения.
Процедура, необходимая для формирования исполняемого экземпляра программного кода, содержащегося в сцепленном образе в мобильном терминале 1, проиллюстрирована на фиг.3. Процедура начинается на этапе S10 с исполнения кода начальной загрузки, предусмотренного в ПЗУ 4 мобильного терминала 1. Код загрузки из ПЗУ копирует образ до исполнения в ОЗУ и запускает исполнение программного кода до исполнения из ОЗУ на этапе S11. На следующем этапе S12 логика распаковки образа до исполнения распаковывает основной образ, и на этапе S13 распакованный главный код копируется в ОЗУ, откуда в итоге начинается исполнение главного кода на этапе S14. В завершение, более не требуемый код до исполнения удаляется из ОЗУ на этапе S15.
При использовании части флэш-памяти NAND для хранения сцепленного образа в мобильном терминале 1 последовательность загрузки может, по меньшей мере, частично исполняться контроллером, предоставляемым некоторым из поставщиков NAND. Эти типы контроллеров позволяют хранить небольшой сегмент кода, дающий возможность копирования большего сегмента кода из флэш-памяти NAND в ОЗУ, что позволяет исполнять более сложную логику запуска из ОЗУ.
Фиг.4a-4d иллюстрируют управление запоминающим устройством согласно процессу, показанному на фиг.3. Постоянное запоминающее устройство, показанное на фиг.4a, соответствует первому средству 2 хранения по фиг. 1. При этом используется флэш-память NAND. Запоминающее устройство содержит код 100 до исполнения и сжатый главный образ 101, которые совместно формируют сцепленный образ. Оставшаяся часть 102 постоянного запоминающего устройства используется для других данных, таких как, к примеру, файловая система. В правой части показано энергозависимое ОЗУ, которое соответствует второму средству 3 хранения по фиг.1. Когда питание мобильного терминала отключено, второе средство 3 хранения пусто. Когда питание мобильного терминала включается, копия 100* кода 100 до исполнения помещается в ОЗУ посредством кода начальной загрузки ПЗУ или контроллера, как показано на фиг.4b. Затем, как показано на фиг.4c, код 100 до исполнения исполняется для распаковки сжатого главного образа 101 и сохранения копии 101* сжатого главного образа в дополнительной секции энергозависимого ОЗУ. В завершение, копия 100* кода до исполнения удаляется из энергозависимого ОЗУ, и главный образ исполняется так, как показано на фиг.4d. Оставшаяся емкость 104 ОЗУ используется для других целей, таких как, к примеру, сохранение стеков, "куч" и т.п.
Некоторые энергонезависимые запоминающие устройства, такие как, к примеру, флэш-память NOR, позволяют исполнять программный код "на месте", т.е. в рамках самого энергонезависимого запоминающего устройства. Использование емкости, доступной в энергонезависимом запоминающем устройстве, обеспечивает возможность оптимизированного использования всей емкости памяти, доступной в мобильном терминале 1. Обратимся к фиг.5, на которой показано, что при запуске на этапе S20 подготовки программного обеспечения на этапе S21 создается не только образ 100' до выполнения, но и образ энергонезависимого программного обеспечения, который содержит образ 100' до исполнения и определенные данные 103 программного кода, которые предназначены для исполнения в рамках емкости памяти, доступной в энергонезависимом запоминающем устройстве. Образ до исполнения содержит логику того, как распакованный код должен копироваться и исполняться в области энергонезависимого ОЗУ, а также как запускать весь программный код 103 и 101'*, в данный момент распределенный между энергонезависимым запоминающим устройством и энергозависимым ОЗУ, как показано на фиг.7a и 7b. Далее на этапе S22 создается образ 101'* ОЗУ, который содержит часть главного программного кода, которая должна исполняться в области энергозависимого ОЗУ мобильного терминала. Этот образ ОЗУ далее сжимается на этапе S23 и сцепляется с энергонезависимым образом на этапе S24 до групповой записи сцепленного образа 100'+103+101' в мобильный терминал на этапе S25.
Фиг.6 иллюстрирует этапы, необходимые для исполнения программного кода, содержащегося в сцепленном образе, сохраненном в энергонезависимом запоминающем устройстве мобильного терминала 1. Код загрузки, предусмотренный, к примеру, в области ПЗУ мобильного терминала, запускается на этапе S30 и передает на этапе S31 управление логике до исполнения, которая далее исполняется в рамках энергонезависимого первого средства 2 хранения. Логика распаковки, которая присутствует в коде до исполнения, распаковывает образ ОЗУ на этапе S32 и загружает распакованный образ 101'* ОЗУ на этапе S33 постепенно в энергозависимое ОЗУ. В завершение на этапе S34 код до исполнения запускает исполнение главного кода 103+101'* как в энергонезависимом запоминающем устройстве, так и в энергозависимом ОЗУ.
Управление запоминающим устройством в соответствии со способом по фиг.6 проиллюстрировано на фиг.7a и 7b. Фиг.7a показывает занятость запоминающего устройства мобильного терминала при отключенном питании, тогда как фиг.7b показывает занятость запоминающего устройства мобильного терминала при включении питания. В отключенном состоянии энергонезависимое, т.е. постоянное запоминающее устройство мобильного терминала, которое приспособлено для исполнения программ "на месте", содержит сцепленный образ 100'+103+101' программного обеспечения и часть 102', которая доступна для других данных, таких как, к примеру, файловая система. Сцепленный образ программного обеспечения содержит три секции (код 100' до исполнения, сжатая часть 101' главного образа программного обеспечения и несжатая часть 103 главного образа программного обеспечения), которые должны исполняться в энергонезависимом запоминающем устройстве. На этой стадии энергозависимое запоминающее устройство пусто. Когда питание мобильного терминала включается, сжатая часть 101' главного образа распаковывается и копируется в область в энергозависимом ОЗУ, которая в данный момент формирует одну часть второго средства 3 хранения, показанного на фиг.1. Оставшаяся незанятая часть 104 ОЗУ обычно используется для хранения стеков и "куч" и т.п. Несжатая часть 103 главного образа исполняется "на месте" в постоянном запоминающем устройстве, так что емкость, занимаемая ей в энергонезависимом запоминающем устройстве, теперь изменяется с части первого средства 2 хранения до части второго средства 3 хранения, как схематически показано на фиг.1. Таким образом, исполнение данных главного программного кода разделяется между энергонезависимым постоянным запоминающим устройством и энергозависимым ОЗУ, что обеспечивает возможность раздельного исполнения главного программного кода.
Настоящее изобретение предоставляет возможность компактного хранения программного обеспечения, необходимого для работы электронного оборудования беспроводной связи, в постоянном запоминающем устройстве соответствующей аппаратуры. При использовании, например, флэш-памяти NAND емкость хранения, необходимая для исполняемого программного кода, может быть уменьшена примерно на 50%. При допущении, что размер программного кода составляет примерно 16 МБ, и можно сжимать программный код на 50%, может быть использована флэш-память NAND емкостью 8 МБ, что соответствует экономии затрат на изготовление, по меньшей мере, на 1 доллар в расчете на один мобильный терминал.
При использовании флэш-памяти NOR методика сжатия согласно настоящему изобретению предоставляет полную гибкость в разделении исполняемого программного кода между флэш-памятью и энергозависимым ОЗУ, что позволяет оптимизировать совокупную стоимость запоминающего устройства.