СПОСОБ СТИРАНИЯ ИНФОРМАЦИИ, ХРАНЯЩЕЙСЯ В ЭНЕРГОНЕЗАВИСИМОЙ ПЕРЕЗАПИСЫВАЕМОЙ ПАМЯТИ, НОСИТЕЛЬ ХРАНЕНИЯ И КОМПЬЮТЕР МОТОРНОГО ТРАНСПОРТНОГО СРЕДСТВА
METHOD OF ERASING INFORMATION STORED IN NONVOLATILE REWRITABLE MEMORY, STORAGE MEDIUM AND MOTOR VEHICLE COMPUTER

Настоящее изобретение принадлежит к области электронных компьютеров и относится, более конкретно, к способу стирания информации, хранящейся в энергонезависимой перезаписываемой памяти, носителю хранения информации и электронному компьютеру, содержащему такой носитель хранения.
Настоящее изобретение находит предпочтительное, хотя ни каким образом не ограничивающее, применение в случае компьютеров моторных транспортных средств.
Электронные компьютеры в моторных транспортных средствах принимают известным образом вид микроконтроллера, содержащего, в дополнение к одному или более микропроцессорам, модули электронной памяти (флэш, EEPROM ["электрически стираемую программируемую постоянную память"], RAM ["оперативную память"] и т.д.), интерфейсные устройства и т.д.
Модули энергонезависимой компьютерной памяти хранят компьютерные программы, или "программное обеспечение", состоящие из набора инструкций программного кода, которые должны быть исполнены микропроцессором для того, чтобы выполнить различные задачи упомянутого компьютера. В общем, в модулях энергонезависимой компьютерной памяти хранятся три основных типа программного обеспечения:
• "загрузочное программное обеспечение", которое должно исполняться, в частности, при запуске электронного компьютера для его инициализации,
• "прикладное программное обеспечение", которое должно исполняться для выполнения конкретных задач электронного компьютера,
• программное обеспечение для перепрограммирования, или "программное обеспечение загрузчика", которое может быть использовано для модификации всей или части информации (в частности, данных программного обеспечения или калибровочных данных), хранящейся в модулях энергонезависимой перезаписываемой памяти электронного компьютера.
Загрузочное программное обеспечение и программное обеспечение для перепрограммирования могут также быть одним и тем же программным обеспечением, известным тогда как "загрузчик".
В настоящее время некоторые электронные компьютеры в моторных транспортных средствах оборудованы модулями энергонезависимой перезаписываемой памяти типа "флэш-память". Известным образом флэш-память в общем разбита на множество сегментов, в которых операции могут совершаться параллельно. Каждый сегмент сам по себе разбит на множество секторов, причем сектор соответствует наименьшему блоку памяти, способному становиться объектом операции стирания. В дополнение, каждый сегмент, в общем, разбит на множество страниц, причем страница соответствует наименьшему блоку памяти, способному становиться объектом операции записи.
Для перепрограммирования флэш-памяти, по сути, содержимое секторов страниц, в которых должна быть записана новая информация, должно быть стерто, затем предоставляется упомянутая новая информация, записанная в страницах.
Когда содержимое сектора стерто, больше невозможно извлечь информацию, которая ранее хранилась в этом секторе. Вследствие этого понятно, что операции стирания должны быть выполнены с осторожностью, для того, чтобы гарантировать, что содержимое одного или более секторов не стерто по ошибке.
Фиг.1 схематично представляет организацию флэш-памяти, содержащей два сектора Sa и Sb, адреса физической памяти которых чередуются.
На самом деле может быть видно, что два сектора Sa и Sb разбиты на множество элементов. Элементы упомянутых секторов Sa и Sb скомпонованы так, чтобы флэш-память содержала в первую очередь первый элемент сектора Sa, затем первый элемент сектора Sb, затем второй элемент сектора Sa, затем второй элемент сектора Sb и т.д.
Обычно, запросы стирания указывают адрес физической памяти начала области памяти, которая должна быть стерта, так же как и размер области памяти, которая должна быть стерта, начиная с этого адреса физической памяти.
Понятно, что такой подход, реализованный для стирания содержимого сектора Sa, влечет за собой риск удаления также содержимого сектора Sb из-за того факта, что эти секторы чередуются.
Настоящее изобретение нацелено на предоставление решения для уменьшения рисков ошибочного стирания секторов, в случае энергонезависимой перезаписываемой памяти, чьи по меньшей мере два сектора содержат чередующиеся адреса физической памяти.
Настоящее изобретение также нацелено на предоставление решения, которое может быть использовано в некоторых случаях для способствования параллельной обработке операций стирания и следовательно уменьшения продолжительности стирания энергонезависимой перезаписываемой памяти, содержимое которой должно быть стерто.
В дополнение, настоящее изобретение нацелено на предоставление решения для обладания ведомым модулем, который взаимодействует напрямую с энергонезависимой перезаписываемой памятью и должен, следовательно, знать ее организацию и тип, предлагая взаимодействовать с ведущим модулем, который отправляет ему запросы стирания, который имеет ту же организацию и тип энергонезависимой перезаписываемой памяти, чье содержимое должно быть стерто.
Согласно первому аспекту, данное изобретение относится к процессу стирания информации, хранящейся в энергонезависимой перезаписываемой памяти электронного компьютера, в котором ведущий модуль отправляет запросы стирания ведомому модулю упомянутого электронного компьютера, причем упомянутая энергонезависимая перезаписываемая память разбита на секторы, соответствующие наименьшему блоку памяти, способному становиться объектом операции стирания, причем по меньшей мере два сектора содержат чередующиеся адреса физической памяти. В дополнение, способ стирания содержит следующие предварительные этапы, на которых:
• определяют адресное пространство виртуальной памяти, ассоциированное с энергонезависимой перезаписываемой памятью, в котором каждый сектор распространяется на конкретный диапазон последовательных адресов виртуальной памяти,
• устанавливают первую функцию соответствия для определения, для каждого диапазона адресов виртуальной памяти из адресного пространства виртуальной памяти, сектора или секторов, ассоциированных с диапазоном адресов виртуальной памяти.
Тогда, способ стирания согласно данному изобретению содержит, для каждого запроса стирания, принятого ведомым модулем, указывающего диапазон адресов виртуальной памяти, этап определения, согласно первой функции соответствия и указанному диапазону адресов виртуальной памяти, сектора или секторов, чье содержимое должно быть стерто ведомым модулем.
В дополнение, согласно способу стирания согласно данному изобретению, энергонезависимая перезаписываемая память содержит множество сегментов, причем упомянутые сегменты являются такими, что операции стирания в отношении сегмента могут быть проведены одновременно с операциями стирания в отношении другого сегмента, причем каждый сегмент разбивается на множество секторов, и по меньшей мере два сегмента, содержат чередующиеся адреса физической памяти. Дополнительно отправляется каждый запрос стирания, отправленный ведущим модулем, указывающий диапазон адресов виртуальной памяти, соответствующий только единственному сегменту энергонезависимой перезаписываемой памяти.
В дополнение, согласно способу стирания согласно данному изобретению, два последовательных запроса стирания, отправленные ведущим модулем, соответственно указывают диапазоны адресов виртуальной памяти, соответствующие разным сегментам энергонезависимой перезаписываемой памяти, причем эти два последовательных запроса стирания нацелены соответственно на первый сегмент и второй сегмент, причем соответствующие операции стирания совершаются параллельно.
Согласно конкретным видам реализации, способ стирания содержит одну или более из следующих характеристик, взятых отдельно или согласно всем технически возможным комбинациям.
Предпочтительно, диапазон адресов виртуальной памяти не перекрывается с диапазоном адресов перезаписываемой физической памяти энергонезависимой перезаписываемой памяти, и способ стирания содержит этап обнаружения использования диапазона адресов виртуальной памяти, причем этап обнаружения сектора исполняется только если был обнаружен диапазон адресов виртуальной памяти.
Предпочтительно, когда множество программных компонентов хранится в энергонезависимой перезаписываемой памяти, способ стирания содержит:
• предварительный этап установки второй функции соответствия для определения, для каждого программного компонента, способного быть стертым, диапазона или диапазонов адресов виртуальной памяти, ассоциированных с программным компонентом,
• этап отправки запроса ведущему модулю для стирания программного компонента посредством инструмента перепрограммирования, соединенного с электронным компьютером,
• этап преобразования ведущим модулем Mm, согласно второй функции соответствия, запроса для стирания программного компонента в запрос для стирания диапазона или диапазонов адресов виртуальной памяти.
Согласно второму аспекту, данное изобретение относится к носителю хранения информации электронного компьютера, хранящему ведомый модуль, подходящий для выполнения операций стирания содержимого адресов физической памяти энергонезависимой перезаписываемой памяти, разбитой на сектора, соответствующие наименьшему блоку памяти, способному становиться объектом операции стирания. В дополнение, носитель хранения хранит первую функцию соответствия для определения, для каждого диапазона адресов виртуальной памяти из предварительно заданного адресного пространства виртуальной памяти, сектора или секторов, ассоциированных с диапазоном адресов виртуальной памяти, и ведомый модуль содержит инструкции, которые, когда они исполняются упомянутым электронным компьютером, определяют, исходя из первой функции соответствия и диапазона адресов виртуальной памяти, указанного в запросе стирания, принятого упомянутым ведомым модулем, сектор или секторы, чье содержимое должно быть стерто, причем диапазон адресов виртуальной памяти не перекрывается с диапазоном адресов перезаписываемой физической памяти энергонезависимой перезаписываемой памяти, и ведомый модуль сконфигурирован для исполнения инструкций определения сектора согласно первой функции соответствия только если был обнаружен диапазон адресов виртуальной памяти.
Согласно конкретным видам вариантов осуществления, носитель хранения содержит одну или более из следующих характеристик, взятых отдельно или согласно всем технически возможным комбинациям.
Предпочтительно, носитель хранения хранит ведущий модуль, сконфигурированный для отправки запросов стирания ведомому модулю, и вторую функцию соответствия для определения, для каждого программного компонента, хранящегося в энергонезависимой перезаписываемой памяти, диапазона или диапазонов адресов виртуальной памяти, ассоциированных с программным компонентом. В дополнение, ведущий модуль содержит инструкции, которые, когда они исполняются электронным компьютером, преобразуют, согласно второй функции соответствия, запрос для стирания программного компонента, принятый упомянутым ведущим модулем, в запрос для стирания диапазона или диапазонов адресов виртуальной памяти.
Согласно третьему варианту осуществления, данное изобретение относится к электронному компьютеру, который содержит носитель хранения информации согласно любому из видов варианта осуществления данного изобретения.
Данное изобретение будет лучше понятно при прочтении нижеследующего описания, данного в качестве неограничивающего примера, и ссылке на фигуры, на которых:
- Фиг.1: приведена ранее, является схематичным представлением двух чередующихся секторов флэш-памяти,
- Фиг.2: является схематичным представлением электронного компьютера в моторном транспортном средстве,
- Фиг.3a и 3b: показывает пример, иллюстрирующий разработку виртуального адресного пространства согласно данному изобретению,
- Фиг.4: является диаграммой, представляющей основные этапы предпочтительного вида реализации способа стирания согласно данному изобретению,
- Фиг.5: является диаграммой, представляющей основные этапы предпочтительного варианта способа стирания на Фиг.4.
Фиг.2 очень схематично представляет электронный компьютер 10 в моторном транспортном средстве.
В более общем смысле, следует отметить, что данное изобретение применимо к любому типу электронного компьютера, который должен быть перепрограммирован посредством внешнего инструмента 20 перепрограммирования.
Известным образом, электронный компьютер 10 содержит микропроцессор 101, соединенный с модулями 102, 103, 104 электронной памяти посредством шины 105 данных.
Электронный компьютер 10 содержит энергонезависимую перезаписываемую память 104, в которой хранится информация, способная перепрограммироваться. Этой информацией могут быть инструкции программного кода, "программное обеспечение", которые должны быть исполнены для выполнения различных задач, назначенных упомянутому электронному компьютеру, и/или данные, используемые упомянутым различным программным обеспечением, такими как калибровочные данные.
Электронный компьютер 10 также содержит энергонезависимую память 103, в которой хранится программное обеспечение для перепрограммирования, которое, когда оно исполняется микропроцессором 101, используется для перепрограммирования содержимого энергонезависимой перезаписываемой памяти 102.
Перепрограммирование энергонезависимой перезаписываемой памяти 102, по сути, содержит этап, на котором стирают область памяти упомянутой энергонезависимой перезаписываемой памяти, затем записывают новую информацию в эту область памяти. Остаточная часть данного раскрытия преимущественно относится к операциям стирания, при том, что операции записи выходят за пределы концепции настоящего изобретения.
Согласно другим видам варианта осуществления электронного компьютера 10, энергонезависимая перезаписываемая память 102 и энергонезависимая память 103 объединены, причем программное обеспечение для перепрограммирования тогда реализовано для перепрограммирования содержимого электронной памяти, в которой оно само хранится.
Электронный компьютер 10 также использует энергозависимую память 104 ("RAM" или "оперативную память", обозначающую память с прямым доступом), в которую информация временно копируется во время работы электронного компьютера 10, с тем, чтобы использоваться микропроцессором 101. Энергонезависимая перезаписываемая память 102 является типом, разбитым на множество секторов. Энергонезависимая перезаписываемая память 102 содержит по меньшей мере два чередующихся сектора. Остаточная часть данного описания относится, неограничивающим образом, к случаю, где энергонезависимой перезаписываемой памятью 102 является флэш-память.
Настоящее изобретение относится к способу 50 (см. фигуры 4 и 5) стирания информации, хранящейся во флэш-памяти 102, реализация которого гарантируется в частности, в настоящем примере, посредством:
• ведущего модуля Mm, способного интегрироваться в программное обеспечение для перепрограммирования или во внешний инструмент 20 перепрограммирования,
• ведомого модуля Me, интегрированного в программное обеспечение для перепрограммирования.
Ведущий модуль Mm и ведомый модуль Me являются программным обеспечением, хранящимся, например, в энергонезависимой памяти 103, содержащим инструкции программного кода, предназначенные для исполнения микропроцессором 101 электронного компьютера 10.
По своей сути, способ 50 стирания основан на разработке адресного пространства виртуальной памяти, ассоциирующей конкретный адрес виртуальной памяти с каждым адресом физической памяти флэш-памяти.
Адреса физической памяти ассоциированы с адресами физической памяти, так что в адресном пространстве виртуальной памяти каждый сектор флэш-памяти 102 распространяется на конкретный диапазон последовательных адресов виртуальной памяти.
Когда два сектора чередуются, т.е. когда эти секторы содержат чередующиеся адреса физической памяти, нет диапазона последовательных адресов физической памяти, такого что:
• все элементы одного из этих секторов включены в этот диапазон последовательных адресов физической памяти,
• не один элемент другого сектора не включен в этот диапазон последовательных адресов физической памяти.
В адресном пространстве виртуальной памяти, наоборот, намеренно, есть конкретный диапазон последовательных адресов виртуальной памяти для каждого сектора флэш-памяти 102, такой что:
• все элементы этого сектора включены в этот диапазон последовательных адресов виртуальной памяти,
• ни один элемент другого сектора не включен в этот диапазон последовательных адресов виртуальной памяти.
Вследствие этого понятно, что возможно, в адресном пространстве виртуальной памяти, однозначно идентифицировать сектор, чье содержимое должно быть стерто, посредством диапазона последовательных адресов виртуальной памяти. В дополнение, использование адресного пространства виртуальной памяти может быть использовано для выдачи запросов стирания, предполагающих, что секторы флэш-памяти 102 не чередуются.
Для этой цели способ 50 стирания информации, хранящейся во флэш-памяти 102, содержит нижеследующие предварительные этапы, на которых:
• 500: определяют адресное пространство виртуальной памяти, в котором каждый сектор распространяется на конкретный диапазон последовательных адресов виртуальной памяти,
• 501: устанавливают первую функцию соответствия для определения, для каждого диапазона адресов виртуальной памяти из адресного пространства виртуальной памяти, сектора или секторов, ассоциированных с данным диапазоном адресов виртуальной памяти. Для стирания содержимого одного или более секторов, ведущий модуль Mm будет отправлять ведомому модулю Me запросы стирания, ссылающиеся на диапазоны адресов виртуальной памяти флэш-памяти 102.
Способ 50 стирания затем содержит, для каждого принятого запроса стирания, указывающего диапазон адресов виртуальной памяти, этап 522 определения сектора или секторов, чье содержимое должно быть стерто. Во время этого этапа ведомый модуль Me использует первую функцию соответствия, сохраненную ранее, например, в энергонезависимой памяти 103, для определения сектора или секторов, ассоциированных с диапазоном адресов виртуальной памяти, указанном в принятом запросе стирания.
В конкретном виде реализации, адресное пространство виртуальной памяти является таким, что каждый сегмент флэш-памяти 102 распространяется на конкретный диапазон последовательных адресов виртуальной памяти.
Как описано ранее, сегменты флэш-памяти 102 являются такими, что операции стирания, выполняемые в отношении одного сегмента, могут быть выполнены одновременно с операциями стирания в отношении другого сегмента флэш-памяти 102.
Предпочтительным образом, ведущий модуль Mm сконфигурирован так, что каждый запрос стирания, который он выдает, указывает один или опционально множество диапазонов адресов виртуальной памяти, которые все соответствуют одному сегменту флэш-памяти 102. Другими словами, каждый запрос стирания, выданный ведущим модулем Mm, нацелен только на один сегмент флэш-памяти 102. В дополнение, ведущий модуль Mm выполнен так, что когда операции стирания должны быть выполнены в отношении по меньшей мере двух сегментов флэш-памяти 102, запросы стирания, отправленные последовательно ведущим модулем Mm, нацелены на два разных сегмента.
Такие компоновки обеспечивают операциям стирания, относящимся к двум последовательным запросам стирания, возможность параллельной обработки, так как упомянутые запросы стирания нацелены на два разных сегмента. Продолжительность стирания будет предпочтительным образом уменьшена из-за того факта, что многочисленные операции стирания могут быть выполнены по существу одновременно, при этом, согласно предшествующему уровню техники, эти операции стирания выполнялись одна за другой, так как они выполнялись сначала для всего первого сегмента, затем для всего второго сегмента и т.д.
Предпочтительно, адреса виртуальной памяти не имеют физического значения для флэш-памяти 102. Другими словами, диапазон адресов виртуальной памяти не перекрывается с диапазоном адресов перезаписываемой физической памяти флэш-памяти 102. Таким образом, адрес виртуальной памяти, если он интерпретируется как являющийся адресом физической памяти флэш-памяти 102, не соответствует адресу памяти, по которому может быть записана информация.
Использование диапазона адресов виртуальной памяти, отличного от диапазона адресов перезаписываемой физической памяти флэш-памяти 102, имеет преимущество в том, что на уровне ведомого модуля Me, будет возможно обнаружить, используется ли диапазон адресов виртуальной памяти или нет, и, следовательно, должна ли первая функция соответствия быть использована для определения сектора или секторов, чье содержимое должно быть стерто, или нет.
Например, если флэш-память 102 также содержит нечередующиеся секторы, стирание этих секторов может опционально быть сделано посредством отправки запросов стирания, прямо указывающих диапазоны адресов физической памяти этих секторов.
Фиг.3a и 3b представляют один пример определения адресного пространства виртуальной памяти, ассоциированного с флэш-памятью 102.
Фиг.3a схематично представляет два сегмента флэш-памяти 102, соответственно обозначенные посредством S1 и S2. Сегмент S1 содержит один сектор Sa, и сегмент S2 содержит один сектор Sb.
Секторы Sa и Sb в дополнение чередуются. Неограничивающим образом, считается, что каждый из секторов Sa и Sb имеет размер памяти 64 байта.
Как проиллюстрировано на Фиг.3a, каждый сектор Sa, Sb разбивается на четыре элемента по 16 байтов в размере памяти (16 Б). Адрес физической памяти 0x00000000 соответствует первому элементу первого сектора Sa, адрес физической памяти 0x00000010 соответствует первому элементу второго сектора Sb, адрес физической памяти 0x00000020 соответствует второму элементу первого сектора Sa, адрес физической памяти 0x00000030 соответствует второму элементу второго сектора Sb и т.д.
Фиг.3b схематично представляет пример адресного пространства виртуальной памяти, способного ассоциироваться с флэш-памятью 102.
В этом примере, диапазон адресов виртуальной памяти, ассоциированный с диапазоном адресов физической памяти 0x00000000 - 0x0000007F, лежит между адресом виртуальной памяти 0xA0000000 и адресом виртуальной памяти 0xA000007F. Этот диапазон адресов виртуальной памяти предпочтительно не перекрывается с диапазоном адресов перезаписываемой физической памяти флэш-памяти 102, для того, чтобы иметь возможность легкого обнаружения на уровне ведомого модуля Me.
В примере, проиллюстрированном на Фиг.3b:
• адрес виртуальной памяти 0xA0000000 ассоциирован с адресом физической памяти 0x00000000, т.е. с первым элементом первого сектора Sa,
• адрес виртуальной памяти 0xA0000010 ассоциирован с адресом физической памяти 0x00000020, т.е. со вторым элементом первого сектора Sa,
• адрес виртуальной памяти 0xA0000020 ассоциирован с адресом физической памяти 0x00000040, т.е. с третьим элементом первого сектора Sa,
• адрес виртуальной памяти 0xA0000030 ассоциирован с адресом физической памяти 0x00000060, т.е. с четвертым элементом первого сектора Sa.
Таким образом, адреса виртуальной памяти из диапазона адресов виртуальной памяти, продолжающегося с 0xA0000000 по 0xA000003F (адрес виртуальной памяти, начинающийся с 0xA0000000, и размер памяти 64 байта), идентифицируют каждый из адресов физической памяти упомянутого первого сектора Sa. Вследствие этого понятно, что запрос для стирания диапазона адресов виртуальной памяти 0xA0000000-0xA000003F может быть интерпретирован однозначно как нацеленный на стирание только содержимого первого сектора Sa. В этом случае, ведомый модуль Me стирает содержимое 16-байтовых элементов с адресами физической памяти 0x00000000, 0x00000020, 0x00000040 и 0x00000060.
Аналогичным образом:
• адрес виртуальной памяти 0xA0000040 ассоциирован с адресом физической памяти 0x00000010, т.е. с первым элементом второго сектора Sb,
• адрес виртуальной памяти 0xA0000050 ассоциирован с адресом физической памяти 0x00000030, т.е. со вторым элементом второго сектора Sb,
• адрес виртуальной памяти 0xA0000060 ассоциирован с адресом физической памяти 0x00000050, т.е. с третьим элементом второго сектора Sb,
• адрес виртуальной памяти 0xA0000070 ассоциирован с адресом физической памяти 0x00000070, т.е. с четвертым элементом второго сектора Sb.
Таким образом, адреса виртуальной памяти из диапазона адресов виртуальной памяти, продолжающегося с 0xA0000040 по 0xA000007F (адрес виртуальной памяти, начинающийся с 0xA0000040, и размер памяти 64 байта), идентифицируют каждый из адресов физической памяти упомянутого второго сектора Sb. Вследствие этого понятно, что запрос для стирания диапазона адресов виртуальной памяти 0xA0000040-0xA000007F может быть интерпретирован однозначно как нацеленный на стирание только содержимого второго сектора Sb. В этом случае, ведомый модуль Me стирает содержимое 16-байтовых элементов с адресами физической памяти 0x00000010, 0x00000030, 0x00000050 и 0x00000070.
Для стирания содержимого как первого сектора Sa, так и второго сектора Sb, первый запрос стирания может указывать диапазон адресов виртуальной памяти 0xA0000000-0xA000003F, тогда как второй запрос стирания может указывать диапазон адресов виртуальной памяти 0xA0000040-0xA000007F. Так как эти два запроса стирания нацелены соответственно на первый сегмент S1 и второй сегмент S2, соответствующие операции стирания могут быть выполнены параллельно.
Следует отметить, что в примере, проиллюстрированном на фиг.3a и 3b, если операции стирания не должны обязательно выполняться параллельно, ни один не включает в себя, для стирания содержимого первого сектора Sa и второго сектора Sb, отправку единственного запроса стирания, указывающего диапазон адресов виртуальной памяти 0xA0000000-0xA000007F.
Первая функция соответствия, которая будет использована ведомым модулем Me, может храниться, например, в виде таблицы соответствий, которая может быть затем выражена, как следует ниже:
Диапазон адресов виртуальной памяти
Сектор, который должен быть стерт
0xA0000000 - 0xA000003F
Sa
0xA0000040 - 0xA000007F
Sb
и т.д.
и т.д.
Понятно, что для первой таблицы соответствий возможны другие форматы, и что конкретный выбор формата составляет только один вариант реализации способа 50 стирания.
Фиг.4 схематично представляет основные этапы предпочтительного вида реализации способа 50 стирания.
Предварительные этапы 500, 501 способа 50 стирания представлены в верхней части Фиг.4.
Для стирания содержимого одного или более секторов флэш-памяти 102, способ 50 стирания предусматривает множество этапов. Этапы, представленные в левой части Фиг.4, исполняются ведущим модулем Mm, тогда как этапы, представленные в правой части Фиг.4, исполняются ведомым модулем Me.
Способ 50 стирания содержит в первую очередь этап 512 отправки запроса стирания посредством ведущего модуля Mm. Запрос стирания указывает один или более диапазонов адресов виртуальной памяти.
Способ 50 стирания содержит затем этап 520 приема запроса стирания ведомым модулем Me.
Предпочтительно, ведомый модуль Me затем исполняет этап 521 обнаружения использования диапазона адресов виртуальной памяти.
Был отправлен запрос стирания, указывающий диапазон или диапазоны адресов виртуальной памяти, ведомый модуль Me обнаруживает (ссылка 521a на Фиг.4), что для определения сектора или секторов, чье содержимое должно быть стерто, должна быть использована первая функция соответствия.
Способ 50 стирания затем содержит этап 522 определения сектора или секторов, ассоциированных с каждым из диапазонов адресов виртуальной памяти, указанным в запросе стирания, согласно первой функции соответствия.
Способ 50 стирания затем содержит этап 523 стирания содержимого сектора или секторов, определенных согласно первой функции соответствия.
Предпочтительно, если указанный диапазон адресов виртуальной памяти является ошибочным в том, что он не охватывает один или более целых секторов, ведомый модуль Me будет иметь возможность его обнаружения согласно первой функции соответствия и отклонения запроса стирания (опционально посредством уведомления о нем ведущего модуля Mm). Этот этап определения, является ли корректным диапазон адресов виртуальной памяти, и, где применимо, этот этап отклонения запроса стирания не представлены на фигурах.
Если запрос стирания был отправлен ведущим модулем, указывающий диапазон адресов физической памяти, этап 521 обнаружения обнаружил бы, что используемый диапазон адресов памяти не был диапазоном адресов виртуальной памяти (ссылка 521b на Фиг.4), что приводит прямо к исполнению этапа 523 стирания содержимого сектора или секторов, ассоциированных с указанным диапазоном адресов физической памяти (например, в случае нечередующихся векторов).
Следуя за отправкой запроса стирания, способ 50 стирания содержит этап 513 определения, исполняемый ведущим модулем Mm, должны ли быть отправлены другие запросы стирания. Если другой запрос стирания не должен быть отправлен (ссылка 513a на Фиг.4), исполнение способа 50 стирания завершается.
Если другой запрос стирания должен быть отправлен (ссылка 513b на Фиг.4), этап 512 отправки исполняется снова для отправки следующего запроса стирания. Нижеследующие этапы способа, на стороне ведомого модуля Me, затем исполняются снова для нового запроса стирания.
Следует отметить, что ведомый модуль Me интегрирован в электронный компьютер 10. Ведущий модуль Mm может быть либо интегрирован в электронный компьютер 10, либо интегрирован в инструмент 20 перепрограммирования, внешний к электронному компьютеру 10 и соединенный с ним посредством шины связи (CAN, Ethernet и т.д.).
Фиг.5 схематично представляет основные этапы предпочтительного варианта реализации способа 50 стирания на Фиг.4, в случае, когда внешний инструмент 20 перепрограммирования отправляет запросы стирания ведущему модулю Mm, интегрированному в электронный компьютер 10.
В этом варианте реализации, считается, что флэш-память 102 хранит множество программных компонентов, которые могут опционально быть стерты, и инструмент 20 перепрограммирования отправляет запросы стирания, указывающие программные компоненты, которые должны быть стерты.
Это является предпочтительным, так как, таким образом, инструмент 20 перепрограммирования должен только знать различные программные компоненты, которые могут быть стерты, и не должен знать ни адресное пространство виртуальной памяти, ни организацию секторов флэш-памяти 20.
Для этой цели, в дополнение ко всем этапам, описанным со ссылкой на Фиг.4, способ 50 стирания, проиллюстрированный на Фиг.5, содержит предварительный этап 502 установки второй функции соответствия для определения, для каждого программного компонента, способного быть стертым, диапазона или диапазонов виртуальных адресов, ассоциированных с данным программным компонентом.
Способ 50 стирания также включает в себя этап 530 отправки запроса инструментом 20 перепрограммирования ведущему модулю Mm для стирания программного компонента.
Способ 50 стирания также содержит этап 510 приема ведущим модулем Mm запроса стирания, отправленного инструментом 20 перепрограммирования.
Способ 50 стирания затем содержит этап 511 преобразования ведущим модулем Mm, согласно второй функции соответствия, запроса для стирания программного компонента в запрос для стирания диапазона или диапазонов адресов виртуальной памяти, ассоциированных с этим программным компонентом, который затем отправляется ведомому модулю Me во время этапа 512 отправки.
Следует отметить, что в ходе этапа 511 преобразования, ведущий модуль Mm может преобразовать запрос для стирания программного компонента в один или более запросов стирания, при этом каждый указывает один или более диапазонов адресов виртуальной памяти.
Настоящее изобретение также относится к носителю хранения информации, в этом случае, энергонезависимой памяти 103, в которой хранится программное обеспечение для перепрограммирования, содержащей ведомый модуль Me, подходящий для реализации этапов способа 50 стирания.
Таким образом, ведомый модуль Me содержит инструкции программного кода, которые, когда они исполняются микропроцессором 101, реализуют в частности этапы 520 приема, 522 определения сектора или секторов, которые должны быть стерты, и 523 стирания. Когда целесообразно, ведомый модуль Me также содержит инструкции, исполнение которых может быть использовано для реализации этапа 521 обнаружения.
Когда целесообразно, программное обеспечение для перепрограммирования, хранящееся в носителе хранения, также содержит ведущий модуль Mm, подходящий для реализации этапов способа 50 стирания.
Таким образом, ведущий модуль Mm содержит инструкции программного кода, которые, когда они исполняются микропроцессором 101, реализуют этапы 512 отправки запроса стирания и 513 определения, должны ли быть отправлены другие запросы стирания. Когда целесообразно, ведущий модуль Mm также содержит инструкции, исполнение которых может быть использовано для реализации этапов 510 приема и 511 преобразования.
Носитель хранения также хранит первую функцию соответствия и, когда целесообразно, вторую функцию соответствия.
Настоящее изобретение также относится к электронному компьютеру 10 в моторном транспортном средстве, содержащем носитель хранения, который описан выше.
В более общем смысле, объем настоящего изобретения не ограничен видами реализации и вариантом осуществления, описанными выше как неограничивающие примеры, а наоборот распространяется на все модификации в рамках объема представлений специалиста в данной области техники.
В частности, понятно, что для каждой из первой и второй функций соответствия возможны форматы, отличные от таблицы соответствий, и что конкретный выбор формата составляет только один вариант реализации способа 50 стирания. Первая функция соответствия может в частности принять форму инструкций программного кода, которые должны быть исполнены для определения сектора или секторов, ассоциированных с диапазоном адресов виртуальной памяти, указанном в запросе стирания. Аналогично, вторая функция соответствия может принять форму инструкций программного кода, которые должны быть исполнены для определения диапазона или диапазонов адресов виртуальной памяти, ассоциированных с программным компонентом, указанным в запросе стирания.
Вышеизложенное описание ясно иллюстрирует, что посредством его различных характеристик и их преимуществ, настоящее изобретение достигает целей, которые были заданы.
В частности, из-за использования адресного пространства виртуальной памяти, в котором секторы флэш-памяти 102 не чередуются, могут быть однозначно идентифицированы секторы, которые должны быть стерты, что ограничивает риски ошибочного стирания одного или более секторов.