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

Иллюстрации

Показать все

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

Реферат

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

[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, в упомянутых выше вариантах осуществления эта