Способ и устройство для сжатия микропрограммы, способ и устройство для распаковки микропрограммы - RU2628482C1

Код документа: RU2628482C1

Чертежи

Показать все 7 чертежа(ей)

Описание

Перекрестная ссылка на родственные заявки

[0001] Это заявка основана и притязает на приоритет заявки на патент Китая № 201510044885.X, поданной 29 января 2015 года, содержание которой полностью включено в настоящий документ по ссылке.

Область техники

[0002] Настоящее раскрытие в целом относится к области компьютерной технологии и, в частности, к способу и устройству для сжатия микропрограммы и к способу и устройству для распаковки микропрограммы.

Уровень техники

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

[0004] Чтобы уменьшить пространство памяти, занятое микропрограммой в электронном устройстве, на предшествующем уровне техники микропрограмма будет сжата как единое целое. Прежде чем электронное устройство выполнит микропрограмму, оно распаковывает сжатую микропрограмму. Затем на основе первого адреса распаковки, соответствующего распакованному кодовому участку, распакованный кодовый участок микропрограммы копируется по первому адресу распаковки; и на основе второго адреса распаковки, соответствующего распакованному участку с данными, распакованный участок с данными копируется по второму адресу распаковки.

Сущность изобретения

[0005] Настоящее раскрытие обеспечивает способ и устройство для сжатия микропрограммы и способ и устройства для распаковки микропрограммы. Техническое решение представлено ниже.

[0006] В соответствии с первым аспектом вариантов осуществления настоящего раскрытия обеспечен способ сжатия микропрограммы, включающий в себя:

[0007] сбор информации кодового участка и участка с данными микропрограммы;

[0008] отдельное сжатие кодового участка и участка с данными; и

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

[0010] Факультативно сбор информации кодового участка и участка с данными микропрограммы включает в себя:

[0011] определение третьего адреса области памяти кодового участка и четвертого адреса области памяти участка с данными; и

[0012] извлечение кодового участка на основе третьего адреса области памяти и извлечение участка с данными на основе четвертого адреса области памяти.

[0013] Факультативно определение третьего адреса области памяти кодового участка и четвертого адреса области памяти участка с данными включает в себя:

[0014] извлечение вторых данных описания, соответствующих микропрограмме;

[0015] когда вторые данные описания содержат третий адрес области памяти и четвертый адрес области памяти, определение третьего адреса области памяти и четвертого адреса области памяти из извлеченных вторых данных описания; и

[0016] когда вторые данные описания содержат первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными, определение третьего адреса области памяти на основе извлеченного первоначального адреса области памяти кодового участка и извлеченного размера кодового участка и определение четвертого адреса области памяти на основе извлеченного первоначального адреса области памяти участка с данными и извлеченного размера участка с данными.

[0017] Факультативно конфигурирование первых данных описания, соответствующих микропрограмме, включает в себя:

[0018] конфигурирование первого адреса области памяти, где сжатый кодовый участок хранится в электронном устройстве, и второго адреса области памяти, где сжатый участок с данными хранится в электронном устройстве, взятие первого адреса области памяти в качестве первых данных адреса и взятие второго адреса области памяти в качестве вторых данных адреса; или

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

[0020] конфигурирование первого адреса распаковки и второго адреса распаковки.

[0021] Факультативно конфигурирование первых данных описания, соответствующих микропрограмме, также включает в себя:

[0022] сбор информации размера кодового участка и размера участка с данными; и

[0023] сохранение размера кодового участка и размера участка с данными в первых данных описания.

[0024] Факультативно отдельное сжатие кодового участка и участка с данными включает в себя:

[0025] разделение по меньшей мере одного участка из кодового участка и участка с данными;

[0026] отдельное сжатие m сегментов кодового участка и сжатие участка с данными, если кодовый участок разделен на m сегментов;

[0027] отдельное сжатие n сегментов участка с данными и сжатие кодового участка, если участок с данными разделен n сегментов; и

[0028] отдельное сжатие m сегментов кодового участка и отдельное сжатие n сегментов участка с данными, если кодовый участок разделен на m сегментов, и участок с данными разделен на n сегментов.

[0029] В соответствии со вторым аспектом вариантов осуществления настоящего раскрытия обеспечен способ распаковки микропрограммы, включающий в себя:

[0030] извлечение первых данных описания, соответствующих микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве;

[0031] сбор информации сжатого кодового участка на основе первых данных адреса и сбор информации сжатого участка с данными на основе вторых данных адреса; и

[0032] распаковку сжатого кодового участка по первому адресу распаковки и распаковку сжатого участка с данными по второму адресу распаковки.

[0033] Факультативно сбор информации сжатого кодового участка на основе первых данных адреса и сбор информации сжатого участка с данными на основе вторых данных адреса включают в себя:

[0034] определение первого адреса области памяти на основе первых данных адреса и определение второго адреса области памяти на основе вторых данных адреса; и

[0035] извлечение сжатого кодового участка из первого адреса области памяти и извлечение сжатого участка с данными из второго адреса области памяти.

[0036] Факультативно определение первого адреса области памяти на основе первых данных адреса и определение второго адреса области памяти на основе вторых данных адреса включают в себя:

[0037] если первые данные адреса представляют собой первый адрес области памяти, и вторые данные адреса представляют собой второй адрес области памяти, определение первого адреса области памяти и второго адреса области памяти на основе извлеченных первых данных описания; и

[0038] если первые данные адреса представляют собой первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка, и вторые данные адреса представляют собой первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными, определение первого адреса области памяти на основе первоначального адреса области памяти и размера сжатого кодового участка и определение второго адреса области памяти на основе первоначального адреса области памяти и размера сжатого участка с данными.

[0039] Факультативно первые данные описания дополнительно содержат размер несжатого кодового участка микропрограммы и размер несжатого участка с данными микропрограммы, и способ дополнительно включает в себя:

[0040] вычисление полного размера несжатого кодового участка и несжатого участка с данными;

[0041] обнаружение, превышает ли полный размер пространство для выполнения микропрограммы в электронном устройстве; и

[0042] если полный размер превышает пространство для выполнения микропрограммы, сообщение об ошибке микропрограммы.

[0043] В соответствии с третьим аспектом вариантов осуществления настоящего раскрытия обеспечено устройство для сжатия микропрограммы, включающее в себя:

[0044] модуль сбора, выполненный с возможностью собирать информацию кодового участка и участка с данными микропрограммы;

[0045] модуль сжатия, выполненный с возможностью отдельно сжимать кодовый участок и участок с данными; и

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

[0047] Факультативно модуль сбора включает в себя:

[0048] подмодуль определения адреса, выполненный с возможностью определять третий адрес области памяти кодового участка и четвертый адрес области памяти участка с данными; и

[0049] подмодуль извлечения, выполненный с возможностью извлекать кодовый участок на основе третьего адреса области памяти и извлекать участок с данными на основе четвертого адреса области памяти.

[0050] Факультативно подмодуль определения адреса включает в себя:

[0051] блок извлечения данных описания, выполненный с возможностью извлекать вторые данные описания, соответствующие микропрограмме;

[0052] первый блок определения, выполненный с возможностью, когда вторые данные описания содержат третий адрес области памяти и четвертый адрес области памяти, определять третий адрес области памяти и четвертый адрес области памяти из извлеченных вторых данных описания; и

[0053] второй блок определения, выполненный с возможностью, когда вторые данные описания содержат первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными, определять третий адрес области памяти на основе извлеченного первоначального адреса области памяти кодового участка и извлеченного размера кодового участка и определять четвертый адрес области памяти на основе извлеченного первоначального адреса области памяти участка с данными и извлеченного размера участка с данными.

[0054] Факультативно, модуль конфигурирования данных описания включает в себя:

[0055] первый подмодуль конфигурирования, выполненный с возможностью конфигурировать первый адрес области памяти, где сжатый кодовый участок храниться в электронном устройстве, и второй адрес области памяти, где сжатый участок с данными хранится в электронном устройстве, брать первый адрес области памяти в качестве первых данных адреса и брать второй адрес области памяти в качестве вторых данных адреса; или

[0056] конфигурировать первоначальный адрес области памяти сжатого кодового участка в электронном устройстве и первоначальный адрес области памяти сжатого участка с данными в электронном устройстве, собирать информацию размера сжатого кодового участка и размера сжатого участка с данными; брать первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка в качестве первых данных адреса; и брать первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными в качестве вторых данных адреса; и

[0057] второй подмодуль конфигурирования, выполненный с возможностью конфигурировать первый адрес распаковки и второй адрес распаковки.

[0058] Факультативно модуль конфигурирования данных описания также включает в себя:

[0059] подмодуль сбора информации размера, выполненный с возможностью собирать информацию размера кодового участка и размера участка с данными; и

[0060] подмодуль сохранения размера, выполненный с возможностью сохранять размер кодового участка и размер участка с данными в первых данных описания.

[0061] Факультативно модуль сжатия включает в себя:

[0062] подмодуль разделения, выполненный с возможностью разделять по меньшей мере один участок из кодового участка и участка с данными;

[0063] первый подмодуль сжатия, выполненный с возможностью отдельно сжимать m сегментов кодового участка и сжимать участок с данными, если кодовый участок разделен на m сегментов;

[0064] второй подмодуль сжатия, выполненный с возможностью отдельно сжимать n сегментов участка с данными и сжимать кодовый участок, если участок с данными разделен на n сегментов; и

[0065] третий подмодуль сжатия, выполненный с возможностью отдельно сжимать m сегментов кодового участка и отдельно сжимать n сегментов участка с данными, если кодовый участок разделен на m сегментов, и участок с данными разделен на n сегментов.

[0066] В соответствии с четвертым аспектом вариантов осуществления настоящего раскрытия обеспечено устройство для распаковки микропрограммы, включающее в себя:

[0067] модуль извлечения данных описания, выполненный с возможностью извлекать первые данные описания, соответствующие микропрограмме, первые данные описания, содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве;

[0068] модуль сбора, выполненный с возможностью собирать информацию сжатого кодового участка на основе первых данных адреса и собирать информацию сжатого участка с данными на основе вторых данных адреса; и

[0069] модуль распаковки, выполненный с возможностью распаковывать сжатый кодовый участок по первому адресу распаковки и распаковывать сжатый участок с данными по второму адресу распаковки.

[0070] Факультативно модуль сбора включает в себя:

[0071] подмодуль определения адреса, выполненный с возможностью определять первый адрес области памяти на основе первых данных адреса и определять второй адрес области памяти на основе вторых данных адреса; и

[0072] подмодуль извлечения, выполненный с возможностью извлекать сжатый кодовый участок из первого адреса области памяти и извлекать сжатый участок с данными из второго адреса области памяти.

[0073] Факультативно подмодуль определения адреса включает в себя:

[0074] первый блок определения, выполненный с возможностью, если первые данные адреса представляют собой первый адрес области памяти и вторые данные адреса представляют собой второй адрес области памяти, определять первый адрес области памяти и второй адрес области памяти на основе извлеченных первых данных описания; и

[0075] второй блок определения, выполненный с возможностью, если первые данные адреса представляют собой первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка, и вторые данные адреса представляют собой первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными, определять первый адрес области памяти на основе первоначального адреса области памяти и размера сжатого кодового участка и определять второй адрес области памяти на основе на первоначального адреса области памяти и размера сжатого участка с данными.

[0076] Факультативно первые данные описания дополнительно содержат размер несжатого кодового участка микропрограммы и размер несжатого участка с данными микропрограммы, и устройство дополнительно включает в себя:

[0077] модуль вычисления, выполненный с возможностью вычислять полный размер несжатого кодового участка и несжатого участка с данными;

[0078] модуль обнаружения, выполненный с возможностью обнаруживать, превышает ли полный размер пространство для выполнения микропрограммы в электронном устройстве; и

[0079] модуль сообщения, выполненный с возможностью сообщать об ошибке микропрограммы, если полный размер превышает пространство для выполнения микропрограммы.

[0080] Техническая схема в соответствии с вариантами осуществления настоящего раскрытия может иметь следующие полезные эффекты.

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

[0082] Следует понимать, что приведенное выше общее описание и последующее подробное описание являются лишь иллюстративными и пояснительными и не ограничивают заявленное изобретение.

Краткое описание чертежей

[0083] Прилагаемые чертежи, которые включены в это описание и составляют его часть, иллюстрируют варианты осуществления, совместимые с изобретением, и вместе с описанием служат для того, чтобы разъяснить принципы изобретения.

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

[0085] Фиг. 2А - блок-схема последовательности операций, показывающая способ сжатия микропрограммы в соответствии с другим иллюстративным вариантом осуществления.

[0086] Фиг. 2B - блок-схема последовательности операций, показывающая процесс для определения третьего адреса области памяти и четвертого адреса области памяти в соответствии с другим иллюстративным вариантом осуществления.

[0087] Фиг. 2C - блок-схема последовательности операций, показывающая процесс для формирования первых данных описания в соответствии с другим иллюстративным вариантом осуществления.

[0088] Фиг. 2D - блок-схема последовательности операций, показывающая другой процесс для формирования первых данных описания в соответствии с другим иллюстративным вариантом осуществления.

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

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

[0091] Фиг. 4А - блок-схема последовательности операций, показывающая способ распаковки микропрограммы в соответствии с другим иллюстративным вариантом осуществления.

[0092] Фиг. 4B - блок-схема последовательности операций, показывающая процесс для определения первого адреса области памяти и второго адреса области памяти в соответствии с другим иллюстративным вариантом осуществления.

[0093] Фиг. 4C – блок-схема последовательности операций, показывающая процесс для обнаружения ошибки микропрограммы в соответствии с другим иллюстративным вариантом осуществления.

[0094] Фиг. 5 - блок-схема устройства для сжатия микропрограммы в соответствии с иллюстративным вариантом осуществления.

[0095] Фиг. 6А - блок-схема устройства для сжатия микропрограммы в соответствии с другим иллюстративным вариантом осуществления.

[0096] Фиг. 6B - блок-схема подмодуля определения адреса в соответствии с другим иллюстративным вариантом осуществления.

[0097] Фиг. 6C - блок-схема модуля сжатия в соответствии с другим иллюстративным вариантом осуществления.

[0098] Фиг. 7 – блок-схема устройства для распаковки микропрограммы в соответствии с иллюстративным вариантом осуществления.

[0099] Фиг. 8А - блок-схема устройства для распаковки микропрограммы в соответствии с другим иллюстративным вариантом осуществления.

[00100] Фиг. 8B - блок-схема подмодуля определения адреса в соответствии с другим иллюстративным вариантом осуществления.

[00101] Фиг. 9 - блок-схема устройства для сжатия микропрограммы в соответствии с иллюстративным вариантом осуществления.

[00102] Фиг. 10 - блок-схема устройства для распаковки микропрограммы в соответствии с иллюстративным вариантом осуществления.

Подробное описание

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

[00104] Сначала для простоты понимания кратко описаны термины, использованные в вариантах осуществления.

[00105] Кодовый участок, также называемый сегментом txt, содержит в себе исполняемые коды микропрограммы.

[00106] Участок с данными, также называемый участком данных, содержит в себе глобальные статические данные, требуемые при выполнении кодов микропрограммы.

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

[00108] На этапе 101 собирается информация кодового участка и участка с данных микропрограммы.

[00109] На этапе 102 отдельно сжимаются кодовый участок и участок с данными.

[00110] На этапе 103 конфигурируются первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.

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

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

[00113] На этапе 201 определяются третий адрес области памяти кодового участка и четвертый адрес области памяти участка с данными.

[00114] Если микропрограмма хранится на сервере и включает в себя кодовый участок и участок с данными, когда необходимо сжать микропрограмму, сервер может определить третий адрес области памяти кодового участка на сервере и четвертый адрес области памяти участка с данными в сервере.

[00115] Согласно фиг. 2B настоящий этап может включать в себя следующие этапы.

[00116] На этапе 201a извлекаются вторые данные описания, соответствующие микропрограмме.

[00117] Сервер может хранить вторые данные описания, соответствующие микропрограмме, вместе с сохраненной микропрограммой. Вторые данные описания могут содержать третий адрес области памяти и четвертый адрес области памяти или они могут содержать первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными. Таким образом, сервер может определить третий адрес области памяти и четвертый адрес области памяти посредством извлечения вторых данных описания.

[00118] На этапе 201b, когда вторые данные описания содержат третий адрес области памяти и четвертый адрес области памяти, третий адрес области памяти и четвертый адрес области памяти определяются из извлеченных вторых данных описания.

[00119] На этапе 201c, когда вторые данные описания содержат первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными, третий адрес области памяти определяется на основе извлеченного первоначального адреса области памяти кодового участка и извлеченного размера кодового участка, и четвертый адрес области памяти определяется на основе извлеченного первоначального адреса области памяти участка с данными и извлеченного размера участка с данными.

[00120] Например, если вторые данные описания содержат первоначальный адрес D1 области памяти кодового участка, размер S1 кодового участка, пространство памяти, требуемое для хранения кодового участка, имеющего размер S1, будет равно d1, и третий адрес области памяти может быть определен как D1~D1+d1.

[00121] На этапе 202 кодовый участок извлекается на основе третьего адреса области памяти, и участок с данными извлекается на основе четвертого адреса области памяти.

[00122] После определения третьего адреса области памяти и четвертого адреса области памяти сервер может извлечь кодовый участок из третьего адреса области памяти и извлечь участок с данными из четвертого адреса области памяти.

[00123] Например, сервер может извлечь кодовый участок из адреса D1~D1+d1.

[00124] На этапе 203 кодовый участок и участок с данными сжимаются отдельно.

[00125] Сервер сжимает извлеченный кодовый участок и сжимает извлеченный участок с данными.

[00126] На этапе 204 конфигурируются первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.

[00127] После отдельного сжатия кодового участка и участка с данными сервер может сконфигурировать соответствующие первые данные описания.

[00128] Согласно фиг. 2C настоящий этап может включать в себя следующие этапы.

[00129] На этапе 204a конфигурируются первый адрес области памяти, где сжатый кодовый участок хранится в электронном устройстве, и второй адрес области памяти, где сжатый участок с данными хранится в электронном устройстве, первый адрес области памяти берется в качестве первых данных адреса, и второй адрес области памяти берется в качестве вторых данных адреса; или конфигурируются первоначальный адрес области памяти сжатого кодового участка в электронном устройстве и первоначальный адрес области памяти сжатого участка с данными в электронном устройстве, собирается информация размера сжатого кодового участка и размера сжатого участка с данными; первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка берутся в качестве первых данных адреса; и первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными берутся в качестве вторых данных адреса.

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

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

[00132] На этапе 204b конфигурируются первый адрес распаковки и второй адрес распаковки.

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

[00134] Следует отметить, что в настоящем варианте осуществления в качестве примера этап 204a выполняется перед этапом 204b. Факультативно сервер может выполнить этап 204a и этап 204b одновременно или выполнить этап 204b перед этапом 204a, и это не ограничено в настоящем варианте осуществления.

[00135] Также следует отметить, что в настоящем варианте осуществления в качестве примера первые данные описания конфигурируются отдельно. Факультативно сервер также может сконфигурировать содержание первых данных описания во вторых данных описания. Это не ограничено в настоящем раскрытии.

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

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

[00138] Следует отметить, что, как показано в фиг. 2D, в упомянутых выше вариантах осуществления этап, на котором сервер конфигурирует первые данные описания, соответствующие микропрограмме, дополнительно включает в себя следующие этапы.

[00139] На этапе 204c собирается информация размера кодового участка и размера участка с данными.

[00140] Сервер также может собрать информацию размера несжатого кодового участка и размер несжатого участка с данными.

[00141] Факультативно, когда оба из размеров содержатся во вторых данных описания, сервер может извлечь упомянутое выше содержание от вторых данных описания.

[00142]Когда вторые данные описания содержат третий адрес области памяти кодового участка и четвертый адрес области памяти участка с данными, сервер может определить размер кодового участка из диапазона третьего адреса области памяти и определить размер участка с данными из диапазона четвертого адреса области памяти. Это не ограничено в настоящем варианте осуществления.

[00143] На этапе 204d размер кодового участка и размер участка с данными сохраняются в первых данных описания.

[00144] Сервер может сохранить в первых данных описания собранную информацию размера кодового участка и размера участка с данными.

[00145] Однако, если содержание первых данных описания непосредственно конфигурируется во вторых данных описания, сервер может сохранить во вторых данных описания собранную информацию размера кодового участка и размера участка с данными. Это не ограничено в настоящем варианте осуществления. Кроме того, если вторые данные описания уже содержали оба упомянутых выше размера, сервер может пропустить этап 204c и этап 204d. Это также не ограничено в настоящем варианте осуществления.

[00146] Кроме того, в настоящем варианте осуществления выполнение последовательности этапа 204a, этап 204b и этап 204c не ограничены, и сервер может осуществить выполнение в соответствии с другими последовательностями в зависимости от практического применения.

[00147] Также следует отметить, что в упомянутом выше варианте осуществления, как показано на фиг. 2E, этап 203 может включать в себя следующие этапы.

[00148] На этапе 203a по меньшей мере один из кодового участка и участка с данными разделяется.

[00149] После сбора информации кодового участка и участка с данными микропрограммы сервер может разделить кодовый участок или участок с данными или может разделить их оба.

[00150] Например, сервер делит кодовый участок и может разделить кодовый участок на m сегментов.

[00151] Факультативно после разделения каждый сегмент кодового участка может иметь одну и ту же длину или разные длины. Аналогичным образом, после разделения каждый сегмент участка с данными может иметь одну и ту же длину или разные длины.

[00152] На этапе 203b, если кодовый участок разделен на m сегментов, m сегментов кодового участка сжимаются отдельно, и сжимается участок с данными.

[00153] Если сервер разделяет кодовый участок на m сегментов, сервер может сжать m сегментов кодового участка отдельно и затем сжать участок с данными.

[00154] Соответственно, первые данные адреса, конфигурируемые сервером, могут включать в себя данные адреса каждого из m сжатых сегментов в электронном устройстве, и первый распакованный адрес, сконфигурированный сервером, включает в себя адрес распаковки, соответствующий каждому из m сжатых сегментов в электронном устройстве.

[00155] На этапе 203c, если участок с данными разделен на n сегментов, n сегментов участка с данными сжимаются отдельно, и сжимается кодовый участок.

[00156] Если сервер разделяет участок с данными на n сегментов, сервер может сжать n сегментов участка с данными отдельно и сжать кодовый участок.

[00157] Соответственно, вторые данные адреса, конфигурируемые сервером, могут включать в себя данные адреса каждого из n сжатых сегментов в электронном устройстве, и второй распакованный адрес, сконфигурированный сервером, включает в себя адрес распаковки, соответствующий каждому из n сжатых сегментов в электронном устройстве.

[00158] На этапе 203d, если кодовый участок разделен на m сегментов и участок с данными разделен на n сегментов, m сегментов кодового участка сжимаются отдельно, и n сегментов участка с данными сжимаются отдельно.

[00159] Аналогичным образом, если кодовый участок разделен на m сегментов и участок с данными разделен на n сегментов, сервер может сжать m сегментов разделенного кодового участка отдельно и сжать n сегментов разделенного участка с данными отдельно.

[00160] Соответственно, в этом случае первые данные адреса, конфигурируемые сервером, могут включать в себя данные адреса каждого из m сжатых сегментов в электронном устройстве; первый распакованный адрес, конфигурируемый сервером, включает в себя адрес распаковки, соответствующий каждому из m сжатых сегментов в электронном устройстве; вторые данные адреса, конфигурируемые сервером, могут включать в себя данные адреса каждого из n сжатых сегментов в электронном устройстве; и второй распакованный адрес, конфигурируемый сервером, включает в себя адрес распаковки, соответствующий каждому из n сжатых сегментов в электронном устройстве.

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

[00162] На этапе 301 извлекаются первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.

[00163] На этапе 302 информация сжатого кодового участка собирается на основе первых данных адреса, и информация сжатого участка с данными собирается на основе вторых данных адреса.

[00164] На этапе 303 сжатый кодовый участок распаковывается по первому адресу распаковки, и сжатый участок с данными распакован по второму адресу распаковки.

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

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

[00167] На этапе 401 извлекаются первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.

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

[00169] Когда необходимо выполнить микропрограмму, электронное устройство может извлечь первые данные описания.

[00170] На этапе 402 первый адрес области памяти определяется на основе первых данных адреса, и второй адрес области памяти определяется на основе вторых данных адреса.

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

[00172] Согласно фиг. 4B настоящий этап может включать в себя:

[00173] На этапе 402a, если первые данные адреса представляют собой первый адрес области памяти, и вторые данные адреса представляют собой второй адрес области памяти, первый адрес области памяти и второй адрес области памяти определяются на основе извлеченных первых данных описания.

[00174] На этапе 402b, если первые данные адреса представляют собой первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка, и вторые данные адреса представляют собой первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными, первый адрес области памяти определяется на основе первоначального адреса области памяти и размера сжатого кодового участка, и второй адрес области памяти определяется на основе первоначального адреса области памяти и размера сжатого участка с данными.

[00175] Настоящий этап аналогичен этапу 201c в описанном выше варианте осуществления и не будет повторяться в настоящем варианте осуществления.

[00176] На этапе 403 сжатый кодовый участок извлекается из первого адреса области памяти, и сжатый участок с данными извлекается из второго адреса области памяти.

[00177] На этапе 404 сжатый кодовый участок распаковывается по первому адресу распаковки, и сжатый участок с данными распаковывается по второму адресу распаковки.

[00178] После извлечения сжатого кодового участка и сжатого участка с данными электронное устройство может распаковать сжатый кодовый участок по первому адресу распаковки и распаковать сжатый участок с данными по второму адресу распаковки.

[00179] После распаковки сжатого кодового участка и сжатого участка с данными электронное устройство может вернуться к началу кодового участка для выполнения кодового участка.

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

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

[00182] Следует отметить, что, как показано на фиг. 4C, в описанном выше варианте осуществления первые данные описания также могут содержать размер несжатого кодового участка и размер несжатого участка с данными, и способ дополнительно включает в себя следующие этапы.

[00183] На этапе 405 вычисляется полный размер несжатого кодового участка и несжатого участка с данными.

[00184] Когда первые данные описания также содержат размер несжатого кодового участка и размер несжатого участка с данными, после извлечения первых данных описания электронное устройство может вычислить сумму размера несжатого кодового участка и размера несжатого участка с данными, чтобы получить полный размер несжатого кодового участка и несжатого участка с данными.

[00185] На этапе 406 обнаруживается, превышает ли полный размер пространство для выполнения микропрограммы в электронном устройстве.

[00186] Обнаруживается, превышает ли вычисленный полный размер зарезервированное пространство для выполнения микропрограммы в электронном устройстве. Пространство для выполнения микропрограммы относится к пространству памяти, зарезервированному электронным устройством для выполнения микропрограммы.

[00187] На этапе 407, если полный размер превышает пространство для выполнения микропрограммы, выдается ошибка микропрограммы.

[00188] Если электронное устройство обнаруживает, что полный размер превышает пространство для выполнения микропрограммы, это означает, что микропрограмма не адаптирована к электронному устройству такого типа, и затем электронное устройство может выдать ошибку микропрограммы.

[00189] Следует отметить, что описанные выше этапы обычно выполняются перед этапом 404. Если будет обнаружено, что полный размер превышает пространство для выполнения микропрограммы, то электронное устройство не будет выполнять этап 404, и только когда будет обнаружено, что полный размер не превышает пространство для выполнения микропрограммы, электронное устройство выполнит этап 404. Это не ограничено в настоящем варианте осуществления.

[00190] В настоящем варианте осуществления вычисляется полный размер кодового участка и участка с данными, и тем самым можно сообщить пользователю, имеет ли микропрограмма ошибку.

[00191] Также следует отметить, что этап 402 может включать в себя следующие этапы.

[00192] Если первые данные адреса содержат данные адреса каждого из m сжатых сегментов, электронное устройство может определить адрес области памяти каждого сегмента на основе данных адреса сегмента. То есть первый адрес области памяти содержит данные хранения каждого из m сжатых сегментов в электронном устройстве.

[00193] Затем электронное устройство может извлечь сегмент кода, сохраненный в каждом адресе области памяти, и распаковать извлеченный сегмент кода по адресу распаковки в первом адресе распаковки, который соответствует этому сегменту кода. Например, для i-го сегмента кода из m сегментов на основе данных адреса i-го сегмента кода в первых данных адреса электронное устройство может определить адрес области памяти i-го сегмента кода, затем извлечь i-й сегмент кода из адреса области памяти i-го сегмента кода и распаковать извлеченный i-й сегмент кода по адресу распаковки в первом адресе распаковки, который соответствует i-му сегменту кода.

[00194] Аналогичным образом, если вторые данные адреса содержат данные адреса каждого из n сегментов сжатого участка с данными, электронное устройство может определить адрес области памяти каждого сегмента на основе данных адреса сегмента. То есть, второй адрес области памяти содержит данные хранения каждого из n сжатых сегментов в электронном устройстве.

[00195] Затем электронное устройство может извлечь сегмент данных, сохраненный в каждом адресе области памяти, и распаковать извлеченный сегмент данных по адресу распаковки во втором адресе распаковки, который соответствует этому сегменту данных. Это аналогично процессу из m сегментов сжатого кодового участка и не будет повторяться в настоящем варианте осуществления.

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

[00197] В следующих вариантах осуществления устройств в соответствии с настоящим раскрытием устройства могут быть выполнены с возможностью выполнять способ в описанных выше вариантах осуществления настоящего раскрытия. За подробностями, не раскрытыми в вариантах осуществления устройств, можно обратиться к вариантам осуществления способов.

[00198] Фиг. 5 является блок-схемой устройства для сжатия микропрограммы в соответствии с иллюстративным вариантом осуществления. Как показано на фиг. 5, устройство для сжатия микропрограммы может включать в себя, но без ограничения: модуль 510 сбора, модуль 520 сжатия и модуль 530 конфигурирования данных описания.

[00199] Модуль 510 сбора выполнен с возможностью собирать информацию кодового участка и участка с данными микропрограммы;

[00200] модуль 520 сжатия выполнен с возможностью отдельно сжимать кодовый участок и участок с данными; и

[00201] модуль 530 конфигурирования данных описания выполнен с возможностью конфигурировать первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.

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

[00203] Фиг. 6А являются блок-схемой устройства для сжатия микропрограммы в соответствии с иллюстративным вариантом осуществления. Как показано на фиг. 6А, устройство для сжатия микропрограммы может включать в себя, но без ограничения: модуль 610 сбора, модуль 620 сжатия и модуль 630 конфигурирования данных описания.

[00204] Модуль 610 сбора выполнен с возможностью собирать информацию кодового участка и участка с данными микропрограммы;

[00205] модуль 620 сжатия выполнен с возможностью отдельно сжимать кодовый участок и участок с данными; и

[00206] модуль 630 конфигурирования данных описания выполнен с возможностью конфигурировать первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.

[00207] Факультативно модуль 610 сбора включает в себя:

[00208] подмодуль 611 определения адреса, выполненный с возможностью определять третий адрес области памяти кодового участка и четвертый адрес области памяти участка с данными; и

[00209] подмодуль 612 извлечения, выполненный с возможностью извлекать кодовый участок на основе третьего адреса области памяти и извлекать участок с данными на основе четвертого адреса области памяти.

[00210] Факультативно, как показано на фиг. 6B, подмодуль 611 определения адреса включает в себя:

[00211] блок 611a извлечения данных описания, выполненный с возможностью извлекать вторые данные описания, соответствующие микропрограмме;

[00212] первый блок 611b определения, выполненный с возможностью, когда вторые данные описания содержат третий адрес области памяти и четвертый адрес области памяти, определять третий адрес области памяти и четвертый адрес области памяти из извлеченных вторых данных описания; и

[00213] второй блок 611c определения, выполненный с возможностью, когда вторые данные описания содержат первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными, определять третий адрес области памяти на основе извлеченного первоначального адреса области памяти кодового участка и извлеченного размера кодового участка и определять четвертый адрес области памяти на основе извлеченного первоначального адреса области памяти участка с данными и извлеченного размера участка с данными.

[00214] Факультативно модуль 630 конфигурирования данных описания включает в себя:

[00215] первый подмодуль 631 конфигурирования, выполненный с возможностью конфигурировать первый адрес области памяти, где сжатый кодовый участок храниться в электронном устройстве, и второй адрес области памяти, где сжатый участок с данными хранится в электронном устройстве, брать первый адрес области памяти в качестве первых данных адреса и брать второй адрес области памяти в качестве вторых данных адреса; или

[00216] конфигурировать первоначальный адрес области памяти сжатого кодового участка в электронном устройстве и первоначальный адрес области памяти сжатого участка с данными в электронном устройстве, собирать информацию размера сжатого кодового участка и размера сжатого участка с данными; брать первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка в качестве первых данных адреса; и брать первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными в качестве вторых данных адреса; и

[00217] второй подмодуль 632 конфигурирования, выполненный с возможностью конфигурировать первый адрес распаковки и второй адрес распаковки.

[00218] Факультативно модуль 630 конфигурирования данных описания также включает в себя:

[00219] подмодуль 633 сбора информации размера, выполненный с возможностью собирать информацию размера кодового участка и размера участка с данными; и

[00220] подмодуль 634 сохранения размера, выполненный с возможностью сохранять размер кодового участка и размер участка с данными в первых данных описания.

[00221] Факультативно, как показано на фиг. 6C, модуль 620 сжатия включает в себя:

[00222] подмодуль 621 разделения, выполненный с возможностью разделять по меньшей мере один участок из кодового участка и участка с данными;

[00223] первый подмодуль 622 сжатия, выполненный с возможностью отдельно сжимать m сегментов кодового участка и сжимать участок с данными, если кодовый участок разделен на m сегментов;

[00224] второй подмодуль 623 сжатия, выполненный с возможностью отдельно сжимать n сегментов участка с данными и сжимать кодовый участок, если участок с данными разделен на n сегментов; и

[00225] третий подмодуль 624 сжатия, выполненный с возможностью отдельно сжимать m сегментов кодового участка и отдельно сжимать n сегментов участка с данными, если кодовый участок разделен на m сегментов, и участок с данными разделен на n сегментов.

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

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

[00228] Фиг. 7 является блок-схемой устройства для распаковки микропрограммы в соответствии с иллюстративным вариантом осуществления. Как показано на фиг. 7, устройство для распаковки микропрограммы может включить в себя, но без ограничения: модуль 710 извлечения данных описания, модуль 720 сбора и модуль 730 распаковки.

[00229] Модуль 710 извлечения данных описания выполнен с возможностью извлекать первые данные описания, соответствующие микропрограмме, первые данные описания, содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве;

[00230] модуль 720 сбора выполнен с возможностью собирать информацию сжатого кодового участка на основе первых данных адреса и собирать информацию сжатого участка с данными на основе вторых данных адреса; и

[00231] модуль 730 распаковки выполнен с возможностью распаковывать сжатый кодовый участок по первому адресу распаковки и распаковывать сжатый участок с данными по второму адресу распаковки.

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

[00233] Фиг. 8А является блок-схемой устройства для распаковки микропрограммы в соответствии с иллюстративным вариантом осуществления. Как показано на фиг. 8А, устройство для распаковки микропрограммы может включать в себя, но без ограничения: модуль 810 извлечения данных описания, модуль 820 сбора и модуль 830 распаковки.

[00234] Модуль 810 извлечения данных описания выполнен с возможностью извлекать первые данные описания, соответствующие микропрограмме, первые данные описания, содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве;

[00235] модуль 820 сбора выполнен с возможностью собирать информацию сжатого кодового участка на основе первых данных адреса и собирать информацию сжатого участка с данными на основе вторых данных адреса; и

[00236] модуль 830 распаковки выполнен с возможностью распаковывать сжатый кодовый участок по первому адресу распаковки и распаковывать сжатый участок с данными по второму адресу распаковки.

[00237] Факультативно модуль 820 сбора включает в себя:

[00238] подмодуль 821 определения адреса, выполненный с возможностью определять первый адрес области памяти на основе первых данных адреса и определять второй адрес области памяти на основе вторых данных адреса; и

[00239] подмодуль 822 извлечения, выполненный с возможностью извлекать сжатый кодовый участок из первого адреса области памяти и извлекать сжатый участок с данными из второго адреса области памяти.

[00240] Факультативно, как показано на фиг. 8B, подмодуль 821 определения адреса включает в себя:

[00241] первый блок 821a определения, выполненный с возможностью, если первые данные адреса представляют собой первый адрес области памяти и вторые данные адреса представляют собой второй адрес области памяти, определять первый адрес области памяти и второй адрес области памяти на основе извлеченных первых данных описания; и

[00242] второй блок 821b определения, выполненный с возможностью, если первые данные адреса представляют собой первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка, и вторые данные адреса представляют собой первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными, определять первый адрес области памяти на основе первоначального адреса области памяти и размера сжатого кодового участка и определять второй адрес области памяти на основе на первоначального адреса области памяти и размера сжатого участка с данными.

[00243] Факультативно первые данные описания дополнительно содержат размер несжатого кодового участка микропрограммы и размер несжатого участка с данными микропрограммы, и устройство дополнительно включает в себя:

[00244] модуль 840 вычисления, выполненный с возможностью вычислять полный размер несжатого кодового участка и несжатого участка с данными;

[00245] модуль 850 обнаружения, выполненный с возможностью обнаруживать, превышает ли полный размер пространство для выполнения микропрограммы в электронном устройстве; и

[00246] модуль 860 сообщения, выполненный с возможностью сообщать об ошибке микропрограммы, если полный размер превышает пространство для выполнения микропрограммы.

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

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

[00249] Что касается устройств в описанных выше вариантах осуществления, конкретные методы для выполнения операций для индивидуальных модулей были подробно описаны в вариантах осуществления относительно соответствующих способов, которые не будут здесь прорабатываться.

[00250] Фиг. 9 является блок-схемой устройства 900 для сжатия микропрограммы в соответствии с иллюстративным вариантом осуществления. Например, устройство 900 может быть обеспечено как сервер. Согласно фиг. 9 устройство 900 включает в себя компонент 922 обработки, который дополнительно включает в себя один или более процессоров, и ресурсы памяти, представленные памятью 932 для хранения команд, исполняемых компонентом 922 обработки, таких как прикладные программы. Прикладные программы, сохраненные в памяти 932, могут включать в себя один или более модулей, каждый из которых соответствует набору команд. Кроме того, компонент 922 обработки выполнен с возможностью исполнять команды для выполнения описанного выше способа сжатия микропрограммы.

[00251] Устройство 900 также может включать в себя компонент 926 электропитания, выполненный с возможностью выполнять управление питанием устройства 900, проводной или беспроводной сетевой интерфейс (интерфейсы) 950, выполненный с возможностью соединять устройство 900 с сетью, и интерфейс 958 ввода/вывода (I/O). Устройство 900 может работать на основе операционной системы, хранящейся в памяти 932, такой как Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™ и т.п.

[00252] Фиг. 10 является блок-схемой устройства 1000 для распаковки микропрограммы в соответствии с иллюстративным вариантом осуществления. Например, устройство 1000 может представлять собой мобильный телефон, компьютер, терминал цифрового вещания, устройство обмена сообщениями, игровую консоль, планшет, медицинское устройство, тренажерное оборудование, карманный персональный компьютер и т.п.

[00253] Согласно фиг. 10 устройство 1000 может включать в себя один или более следующих компонентов: компонент 1002 обработки, память 1004, компонент 1006 электропитания, мультимедийный компонент 1008, звуковой компонент 1010, интерфейс 1012 ввода/вывода (I/O), компонент 1014 датчика и компонент 1016 связи.

[00254] Компонент 1002 обработки обычно управляет всеми операциями устройства 1000, такими как операции, связанные с отображением, телефонными вызовами, передачей данных, операции камеры и операции записи. Компонент 1002 обработки может включать в себя один или несколько процессоров 1018 для исполнения команд для выполнения всех или части этапов в описанных выше способах. Кроме того, компонент 1002 обработки может включать в себя один или несколько модулей, которые обеспечивают возможность взаимодействия между компонентом 1002 обработки и другими компонентами. Например, компонент 1002 обработки может включать в себя мультимедийный модуль для обеспечения возможности взаимодействия между мультимедийным компонентом 1008 и компонентом 1002 обработки.

[00255] Память 1004 выполнена с возможностью хранить различные типы данных для поддержки работы устройства 1000. Примеры таких данных включают в себя команды для любых приложений или способов, работающих на устройстве 1000, контактные данные, данные телефонной книги, сообщения, изображения, видеоданные и т.д. Память 1004 может быть реализована с использованием устройств энергозависимой или энергонезависимой памяти любого типа или их комбинации, таких как статическое оперативное запоминающее устройство (СОЗУ; SRAM), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ; EEPROM), стираемое программируемое постоянное запоминающее устройство (СППЗУ; EPROM), программируемое постоянное запоминающее устройство (ППЗУ), постоянное запоминающее устройство (ПЗУ), магнитная память, флэш-память, магнитный или оптический диск.

[00256] Компонент 1006 электропитания обеспечивает электропитание различным компонентам устройства 1000. Компонент 1006 электропитания может включать в себя систему управления питанием, один или несколько источников питания и любые другие компоненты, связанные с генерированием, управлением и распределением электропитания в устройстве 1000.

[00257] Мультимедийный компонент 1008 включает в себя экран, обеспечивающий интерфейс вывода между устройством 1000 и пользователем. В некоторых вариантах осуществления экран может включать в себя жидкокристаллический дисплей (LCD) и сенсорную панель (TP). Если экран включает в себя сенсорную панель, экран может быть реализован как сенсорный экран для приема входных сигналов от пользователя. Сенсорная панель включает в себя один или более сенсорных датчиков для восприятия прикосновений, скольжений и жестов на сенсорной панели. Сенсорные датчики могут воспринимать не только границу прикосновения или действие скольжения, но также воспринимать промежуток времени и давление, связанные с прикосновением или действием скольжения. В некоторых вариантах осуществления мультимедийный компонент 1008 включает в себя фронтальную камеру и/или камеру заднего вида. Фронтальная камера и камера заднего вида могут принимать внешние мультимедийные данные, в то время как устройство 1000 находится в режиме работы, таком как режим фотографирования или режим видео. Каждая камера из фронтальной камеры и камеры заднего вида может являться системой с фиксированной оптической линзой или иметь возможность фокусировки и оптического масштабирования.

[00258] Звуковой компонент 1010 выполнен с возможностью выводить и/или вводить звуковые сигналы. Например, звуковой компонент 1010 включает в себя микрофон (MIC), выполненный с возможностью принимать внешний звуковой сигнал, когда устройство 1000 находится в режиме работы, таком как режим вызова, режим записи и режим распознавания речи. Принятый звуковой сигнал затем может быть сохранен в памяти 1004 или передан через компонент 1016 связи. В некоторых вариантах осуществления звуковой компонент 1010 дополнительно включает в себя динамик для вывода звуковых сигналов.

[00259] Интерфейс 1012 ввода/вывода обеспечивает интерфейс между компонентом 1002 обработки и модулями периферийного интерфейса, такими как клавиатура, круг с кнопками, кнопки и т.п. Кнопки могут включать в себя, но без ограничения, кнопку возврата на домашнюю страницу, кнопку громкости, кнопку запуска и кнопку блокировки.

[00260] Компонент 1014 датчика включает в себя один или более датчиков для обеспечения оценки статуса различных аспектов устройства 1000. Например, компонент 1014 датчика может обнаружить открытый/закрытый статус устройства 1000, относительное расположение компонентов, например, дисплея и кнопочной панели устройства 1000, изменение позиции устройства 1000 или компонента устройства 1000, наличие или отсутствие контакта пользователя с устройством 1000, ориентацию или ускорение/замедление устройства 1000 и изменение температуры устройства 1000. Компонент 1014 датчика может включать в себя датчик близости, выполненный с возможностью обнаруживать присутствие находящихся рядом объектов без физического контакта. Компонент 1014 датчика также может включать в себя светочувствительный датчик, такой как датчик изображений на комплементарных металлооксидных полупроводниках (КМОП; CMOS) или на приборах с зарядовой связью (ПЗС; CCD), для использования в приложениях обработки изображений. В некоторых вариантах осуществления компонент 1014 датчика также может включать в себя акселерометр, гиродатчик, магнитный датчик, датчик давления или датчик температуры.

[00261] Компонент 1016 связи выполнен с возможностью обеспечивать проводную или беспроводную связь между устройством 1000 и другими устройствами. Устройство 1000 может осуществлять доступ к беспроводной сети на основе стандарта связи, такого как WiFi, 2G или 3G, или их комбинации. В одном иллюстративном варианте осуществления компонент 1016 связи принимает сигнал вещания или информацию широковещательной передачи от внешней системы управления широковещательной передачи через канал широковещания. В одном иллюстративном варианте осуществления компонент 1016 связи дополнительно включает в себя модуль связи малого радиуса действия (NFC), чтобы обеспечить возможность ближней связи. Например, модуль NFC может быть реализован на основе технологии радиочастотной идентификации (RFID), технологии ассоциации передачи данных в инфракрасном диапазоне (IrDA), технологии ультраширокополосной передачи (UWB), технологии Bluetooth (BT) и других технологий.

[00262] В иллюстративных вариантах осуществления устройство 1000 может быть реализовано с помощью одной или более специализированных интегральных схем (СИС; ASIC), процессоров цифровой обработки сигналов (ПЦОС; DSP), устройств цифровой обработки сигналов (УЦОС; DSPD), программируемых логических интегральных схем (ПЛИС; PLD), программируемых пользователем вентильных матриц (ППВМ; FPGA), контроллеров, микроконтроллеров, микропроцессоров или других электронных компонентов для выполнения описанных выше способов.

[00263] В иллюстративных вариантах осуществления также обеспечен непереходный машиночитаемый запоминающий носитель, включающий в себя команды, такие как включенные в память 1004, исполнимые процессором 1018 в устройстве 1000, для выполнения описанных выше способов. Например, непереходный энергонезависимый машиночитаемый запоминающий носитель может представлять собой ПЗУ, ОЗУ, компакт-диск только для чтения (CD-ROM), магнитную ленту, гибкий диск, оптическое устройство хранения данных и т.п.

[00264] В иллюстративных вариантах осуществления также обеспечен непереходный машиночитаемый запоминающий носитель, хранящий команды, такие как хранимые в памяти 504, исполнимые процессором 822 в устройстве 800, для выполнения описанных выше способов. Например, непереходный энергонезависимый машиночитаемый запоминающий носитель может представлять собой ПЗУ, ОЗУ, компакт-диск только для чтения (CD-ROM), магнитную ленту, гибкий диск, оптическое устройство хранения данных и т.п.

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

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

Реферат

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

Формула

1. Способ сжатия микропрограммы, содержащий этапы, на которых:
собирают информацию кодового участка и участка с данными микропрограммы;
отдельно сжимают кодовый участок и участок с данными; и
конфигурируют первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.
2. Способ по п. 1, в котором сбор информации кодового участка и участка с данными микропрограммы содержит этапы, на которых:
определяют третий адрес области памяти кодового участка и четвертый адрес области памяти участка с данными; и
извлекают кодовый участок на основе третьего адреса области памяти и извлекают участок с данными на основе четвертого адреса области памяти.
3. Способ по п. 2, в котором определение третьего адреса области памяти кодового участка и четвертого адреса области памяти участка с данными содержит этапы, на которых:
извлекают вторые данные описания, соответствующие микропрограмме;
когда вторые данные описания содержат третий адрес области памяти и четвертый адрес области памяти, определяют третий адрес области памяти и четвертый адрес области памяти из извлеченных вторых данных описания; и
когда вторые данные описания содержат первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными, определяют третий адрес области памяти на основе извлеченного первоначального адреса области памяти кодового участка и извлеченного размера кодового участка и определяют четвертый адрес области памяти на основе извлеченного первоначального адреса области памяти участка с данными и извлеченного размера участка с данными.
4. Способ по п. 1, в котором конфигурирование первых данных описания, соответствующих микропрограмме, содержит этапы, на которых:
конфигурируют первый адрес области памяти, где сжатый кодовый участок хранится в электронном устройстве, и второй адрес области памяти, где сжатый участок с данными хранится в электронном устройстве, брать первый адрес области памяти в качестве первых данных адреса и брать второй адрес области памяти в качестве вторых данных адреса; или
конфигурируют первоначальный адрес области памяти сжатого кодового участка в электронном устройстве и первоначальный адрес области памяти сжатого участка с данными в электронном устройстве, собирать информацию размера сжатого кодового участка и размера сжатого участка с данными; брать первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка в качестве первых данных адреса; и брать первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными в качестве вторых данных адреса; и
конфигурируют первый адрес распаковки и второй адрес распаковки.
5. Способ по любому из пп. 1-4, в котором конфигурирование первых данных описания, соответствующих микропрограмме далее, содержит этапы, на которых:
собирают информацию размера кодового участка и размера участка с данными; и
сохраняют размер кодового участка и размер участка с данными в первых данных описания.
6. Способ по любому из пп. 1-4, в котором отдельное сжатие кодового участка и участка с данными содержит этапы, на которых:
разделяют по меньшей мере один участок из кодового участка и участка с данными;
отдельно сжимают m сегментов кодового участка и сжимают участок с данными, если кодовый участок разделен на m сегментов;
отдельно сжимают n сегментов участка с данными и сжимают кодовый участок, если участок с данными разделен на n сегментов; и
отдельно сжимают m сегментов кодового участка и отдельно сжимают n сегментов участка с данными, если кодовый участок разделен на m сегментов, и участок с данными разделен на n сегментов.
7. Способ распаковки микропрограммы, содержащий этапы, на которых:
извлекают первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве;
собирают информацию сжатого кодового участка на основе первых данных адреса и собирают информацию сжатого участка с данными на основе вторых данных адреса; и
распаковывают сжатый кодовый участок по первому адресу распаковки и распаковывают сжатый участок с данными по второму адресу распаковки.
8. Способ по п. 7, в котором сбор информации сжатого кодового участка на основе первых данных адреса и сбор информации сжатого участка с данными на основе вторых данных адреса содержат этапы, на которых:
определяют первый адрес области памяти на основе первых данных адреса и определяют второй адрес области памяти на основе вторых данных адреса; и
извлекают сжатый кодовый участок из первого адреса области памяти и извлекают сжатый участок с данными из второго адреса области памяти.
9. Способ по п. 8, в котором определение первого адреса области памяти на основе первых данных адреса и определение второго адреса области памяти на основе вторых данных адреса содержат этапы, на которых:
если первые данные адреса представляют собой первый адрес области памяти, и вторые данные адреса представляют собой второй адрес области памяти, определяют первый адрес области памяти и второй адрес области памяти на основе извлеченных первых данных описания; и
если первые данные адреса представляют собой первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка, и вторые данные адреса представляют собой первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными, определяют первый адрес области памяти на основе первоначального адреса области памяти и размера сжатого кодового участка и определяют второй адрес области памяти на основе первоначального адреса области памяти и размера сжатого участка с данными.
10. Способ по любому из пп. 7-9, в котором первые данные описания дополнительно содержат размер несжатого кодового участка микропрограммы и размер несжатого участка с данными микропрограммы, и способ дополнительно содержит этапы, на которых:
вычисляют полный размер несжатого кодового участка и несжатого участка с данными;
обнаруживают, превышает ли полный размер пространство для выполнения микропрограммы в электронном устройстве; и
если полный размер превышает пространство для выполнения микропрограммы, сообщают об ошибке микропрограммы.
11. Устройство для сжатия микропрограммы, содержащее:
модуль сбора, выполненный с возможностью собирать информацию кодового участка и участка с данными микропрограммы;
модуль сжатия, выполненный с возможностью отдельно сжимать кодовый участок и участок с данными; и
модуль конфигурирования данных описания, выполненный с возможностью конфигурировать первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве.
12. Устройство по п. 11, в котором модуль сбора содержит:
подмодуль определения адреса, выполненный с возможностью определять третий адрес области памяти кодового участка и четвертый адрес области памяти участка с данными; и
подмодуль извлечения, выполненный с возможностью извлекать кодовый участок на основе третьего адреса области памяти и извлекать участок с данными на основе четвертого адреса области памяти.
13. Устройство по п. 12, в котором подмодуль определения адреса содержит:
блок извлечения данных описания, выполненный с возможностью извлекать вторые данные описания, соответствующие микропрограмме;
первый блок определения, выполненный с возможностью, когда вторые данные описания содержат третий адрес области памяти и четвертый адрес области памяти, определять третий адрес области памяти и четвертый адрес области памяти из извлеченных вторых данных описания; и
второй блок определения, выполненный с возможностью, когда вторые данные описания содержат первоначальный адрес области памяти кодового участка, размер кодового участка, первоначальный адрес области памяти участка с данными и размер участка с данными, определять третий адрес области памяти на основе извлеченного первоначального адреса области памяти кодового участка и извлеченного размера кодового участка и определять четвертый адрес области памяти на основе извлеченного первоначального адреса области памяти участка с данными и извлеченного размера участка с данными.
14. Устройство по п. 11, в котором модуль конфигурирования данных описания содержит:
первый подмодуль конфигурирования, выполненный с возможностью конфигурировать первый адрес области памяти, где сжатый кодовый участок хранится в электронном устройстве, и второй адрес области памяти, где сжатый участок с данными хранится в электронном устройстве, брать первый адрес области памяти в качестве первых данных адреса и брать второй адрес области памяти в качестве вторых данных адреса; или
конфигурировать первоначальный адрес области памяти сжатого кодового участка в электронном устройстве и первоначальный адрес области памяти сжатого участка с данными в электронном устройстве, собирать информацию размера сжатого кодового участка и размера сжатого участка с данными; брать первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка в качестве первых данных адреса; и брать первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными в качестве вторых данных адреса; и
второй подмодуль формирования, выполненный с возможностью формировать первый адрес распаковки и второй адрес распаковки.
15. Устройство по любому из пп. 11-14, в котором модуль формирования данных описания дополнительно содержит:
подмодуль сбора информации размера, выполненный с возможностью собирать информацию размера кодового участка и размера участка с данными; и
подмодуль сохранения размера, выполненный с возможностью сохранять размер кодового участка и размер участка с данными в первых данных описания.
16. Устройство по любому из пп. 11-14, в котором модуль сжатия содержит:
подмодуль разделения, выполненный с возможностью разделять по меньшей мере один участок из кодового участка и участка с данными;
первый подмодуль сжатия, выполненный с возможностью отдельно сжимать m сегментов кодового участка и сжимать участок с данными, если кодовый участок разделен на m сегментов;
второй подмодуль сжатия, выполненный с возможностью отдельно сжимать n сегментов участка с данными и сжимать кодовый участок, если участок с данными разделен на n сегментов; и
третий подмодуль сжатия, выполненный с возможностью отдельно сжимать m сегментов кодового участка и отдельно сжимать n сегментов участка с данными, если кодовый участок разделен на m сегментов, и участок с данными разделен на n сегментов.
17. Устройство для распаковки микропрограммы, содержащее:
модуль извлечения данных описания, выполненный с возможностью извлекать первые данные описания, соответствующие микропрограмме, первые данные описания содержат первые данные адреса относительно того, где сжатый кодовый участок микропрограммы хранится в электронном устройстве, вторые данные адреса относительно того, где сжатый участок с данными микропрограммы хранится в электронном устройстве, первый адрес распаковки, где сжатый кодовый участок должен быть распакован в электронном устройстве, и второй адрес распаковки, где сжатый участок с данными должен быть распакован в электронном устройстве;
модуль сбора, выполненный с возможностью собирать информацию сжатого кодового участка на основе первых данных адреса и собирать информацию сжатого участка с данными на основе вторых данных адреса; и
модуль распаковки, выполненный с возможностью распаковывать сжатый кодовый участок по первому адресу распаковки и распаковывать сжатый участок с данными по второму адресу распаковки.
18. Устройство по п. 17, в котором модуль сбора содержит:
подмодуль определения адреса, выполненный с возможностью определять первый адрес области памяти на основе первых данных адреса и определять второй адрес области памяти на основе вторых данных адреса; и
подмодуль извлечения, выполненный с возможностью извлекать сжатый кодовый участок из первого адреса области памяти и извлекать сжатый участок с данными из второго адреса области памяти.
19. Устройство по п. 18, в котором подмодуль определения адреса содержит:
первый блок определения, выполненный с возможностью, если первые данные адреса представляют собой первый адрес области памяти и вторые данные адреса представляют собой второй адрес области памяти, определять первый адрес области памяти и второй адрес области памяти на основе извлеченных первых данных описания; и
второй блок определения, выполненный с возможностью, если первые данные адреса представляют собой первоначальный адрес области памяти сжатого кодового участка и размер сжатого кодового участка, и вторые данные адреса представляют собой первоначальный адрес области памяти сжатого участка с данными и размер сжатого участка с данными, определять первый адрес области памяти на основе первоначального адреса области памяти и размера сжатого кодового участка и определять второй адрес области памяти на основе первоначального адреса области памяти и размера сжатого участка с данными.
20. Устройство по любому из пп. 17-19, в котором первые данные описания дополнительно содержат размер несжатого кодового участка микропрограммы и размер несжатого участка с данными микропрограммы, и устройство дополнительно содержит:
модуль вычисления, выполненный с возможностью вычислять полный размер несжатого кодового участка и несжатого участка с данными;
модуль обнаружения, выполненный с возможностью обнаруживать, превышает ли полный размер пространство для выполнения микропрограммы в электронном устройстве; и
модуль сообщения, выполненный с возможностью сообщать об ошибке микропрограммы, если полный размер превышает пространство для выполнения микропрограммы.

Авторы

Патентообладатели

Заявители

СПК: G06F8/654 G06F9/44

Публикация: 2017-08-17

Дата подачи заявки: 2015-10-29

0
0
0
0
Невозможно загрузить содержимое всплывающей подсказки.
Поиск по товарам