Устройство обработки информации, содержащее постоянное запоминающее устройство, и способ внесения исправлений в постоянное запоминающее устройство

Авторы патента:


 


Владельцы патента RU 2582862:

КРОКУС ТЕКНОЛОДЖИ СА (FR)

Изобретение относится к области обработки информации. Технический результат - обеспечение возможности внесения исправлений в конкретные инструкции ассемблирования или их группы без увеличения объема кода или замедления выполнения программы, когда исправления не внесены. Устройство обработки информации, содержащее постоянное запоминающее устройство, включающее в себя выполняемые инструкции или данные, процессор, обеспечивающий адресацию постоянного запоминающего устройства и выборку выполняемых инструкций или данных через шину, САМ-устройство, подключенное к шине и выполненное с возможностью сравнивать адреса, запрашиваемые процессором, с элементами вектора адресов, которые должны быть исправлены, и если адрес, запрашиваемый процессором, совпадает с одним из элементов вектора, представлять в процессор подстановочную выполняемую инструкцию или данные вместо выполняемой инструкции или данных, адресованных процессором в постоянном запоминающем устройстве; при этом САМ-устройство является MRAM-устройством, содержащим множество ячеек запоминающего MRAM-устройства, причем каждая ячейка запоминающего MRAM-устройства содержит по меньшей мере один магнитный туннельный переход, при этом САМ-устройство выполнено с возможностью прерывать процессор, если адрес, запрашиваемый процессором, совпадает с одним из элементов вектора адресов, которые должны быть исправлены, чтобы предотвращать считывание выполняемой инструкции данных, адресованных процессором. 2 н. и 3 з.п. ф-лы, 3 ил.

 

Область техники, к которой относится изобретение

Варианты осуществления настоящего изобретения относятся к устройству обработки информации, содержащему постоянное запоминающее устройство, содержащее программные инструкции или данные, и второе запоминающее устройство, содержащее инструкции внесения исправлений, корректирующие программу или данные, сохраненные в постоянном запоминающем устройстве. Изобретение также относится к способу внесения исправлений в постоянное запоминающее устройство.

Предшествующий уровень техники

Устройства обработки информации обычно включают в себя процессор и цифровое запоминающее устройство, на котором сохраняется программа, которая выполняется посредством процессора. Программа может включать в себя, например, выполняемые инструкции, которые могут извлекаться и выполняться посредством процессора, а также цифровые данные, требуемые процессором для выполнения намеченных функций. Различные формы цифровых устройств хранения данных доступны и используются в устройствах обработки информации. Постоянное запоминающее устройство (ROM) является запоминающим устройством, которое дает возможность считывания, но не модификации данных, которые оно сохраняет.

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

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

Многие известные способы внесения исправлений основываются на превентивном добавлении специальных программных инструкций во время масочного программирования ROM, чтобы проверять во время выполнения то, должны ли определенные наборы инструкций выполняться по мере того, как они сохраняются в ROM, или вместо этого заменяться посредством исправленных инструкций.

Например, известная система внесения исправлений может вставлять автоматический вызов в функцию check(x) в начале каждой функции. После вставки check(x) жестко кодируется с аргументом x, который представляет функцию, которая внедрена. Функция check(x) выполняет поиск того, совпадает или нет аргумент x с одной записью таблицы непрямого доступа памяти в запоминающем устройстве для внесения исправлений, и, если совпадение найдено, отклоняет выполнение на адрес исправленной процедуры во флэш-памяти, адрес записи которой сохраняется в таблице непрямого доступа памяти, в противном случае возвращает в вызывающий элемент.

Вышеуказанный известный механизм дает возможность отклонять выполнение после масочного программирования ROM, если ошибка обнаруживается в какой-либо конкретной функции кода. Примеры этих и аналогичных технологий можно найти, например, в WO 2009156790, US 6260157 или ссылках в них. Этот способ внесения исправлений, однако, имеет несколько недостатков: он требует специального способа компиляции, чтобы вставлять автоматические вызовы в функцию check(); это приводит к увеличению размера кода и снижению производительности вследствие дополнительных вызовов к функции check() и циклов, расходуемых при проверке таблицы непрямого доступа памяти, даже если исправление не применяется. В отношении вышеописанного, степень детализации способа по необходимости довольно грубая: когда ошибка возникает, зачастую вся функция должна быть перезаписана во флэш-памяти.

US 7596721 описывает способ и структуры для обеспечения исправлений во встроенном микропрограммном обеспечении ROM при исключении издержек и ссылается на использование запоминающего CAM-устройства. US 2010110744 и EP 2270812 описывают троичное ассоциативное MRAM. WO 9854639 описывает способ внесения исправлений в программное обеспечение с использованием запоминающего CAM-устройства. US 2006174244 описывает способ для обеспечения передачи управления в микропрограммном обеспечении через CAM.

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

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

Согласно изобретению эти задачи решаются посредством объекта прилагаемой формулы изобретения и, в частности, посредством устройства обработки информации, включающего в себя постоянное запоминающее устройство 120, включающее в себя выполняемые инструкции или данные, процессор 170, допускающий адресацию упомянутого постоянного запоминающего устройства 120 и выборку упомянутых выполняемых инструкций или данных через шину 28, 48, CAM-устройство 160, подключенное к упомянутой шине и выполненное с возможностью сравнивать адреса, запрашиваемые посредством процессора 170, с элементами вектора xi адресов, которые должны быть исправлены, и если адрес, запрашиваемый процессором, совпадает с одним из элементов вектора xi, представлять в процессор подстановочную выполняемую инструкцию или данные вместо выполняемой инструкции или данных, адресованных процессором 170 в постоянном запоминающем устройстве, и посредством соответствующего способа.

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

Изобретение станет более понятным из описания варианта осуществления, приведенного в качестве примера и проиллюстрированного посредством чертежей, на которых:

Фиг.1 изображает в схематичной упрощенной форме устройство обработки информации согласно аспекту настоящего изобретения;

Фиг.2, 3 схематично иллюстрируют CAM на основе MRAM, используемое в варианте осуществления настоящего изобретения.

Подробное описание вариантов осуществления изобретения

Вариант осуществления настоящего изобретения включает в себя смарт-карту (фиг.1) с процессором 170, который выполняет программное обеспечение, постоянно хранимое в запоминающем устройстве 120. Постоянное запоминающее устройство с масочным программированием является предпочтительным с этой точки зрения благодаря своей привлекательной стоимости.

Традиционно процессор 170 адресует запоминающее устройство 120 через адресную шину 25 и осуществляет выборку соответствующих инструкций или элементов инструкции в шине 28 инструкций/данных. Изобретение может применяться как к процессорам с одним внешним устройством хранения для программных инструкций и данных (архитектура фон Неймана), так и к системам с отдельными запоминающими устройствами для хранения программ и данных (гарвардская архитектура). Следующие примеры рассматривают внесение исправлений в выполняемые инструкции, но следует понимать, что система и способы изобретения могут приспосабливаться и включать в себя также внесение исправлений в данные.

Адрес, записываемый в адресную шину 25, представляется, в дополнение к предоставлению в постоянное запоминающее устройство 120, в устройство 160 CAM (ассоциативное запоминающее устройство), которое сохраняет вектор адресов в ROM, которое должно быть исправлено. Согласно аспекту изобретения CAM-устройство основано на магниторезистивных RAM-ячейках (MRAM CAM). В отличие от RAM, которые осуществляют доступ к слову на основе его адреса, CAM осуществляют доступ к слову на основе его содержимого. CAM сохраняет данные аналогично традиционному RAM. Тем не менее, "считывание" CAM заключает в себе обеспечение входных данных для сопоставления, затем поиск в CAM на предмет совпадения, так что адрес совпадения может выводиться. CAM сконструировано так, что пользователь предоставляет слово данных, и CAM параллельно выполняет поиск по всему своему запоминающему устройству, чтобы проверять то, сохраняется или нет это слово данных где-либо в нем. Если слово данных найдено, CAM возвращает список из одного или более адресов запоминающего устройства, в которых слово найдено.

MRAM CAM описываются, помимо прочего, в европейском патенте EP 2204814, назначенном заявителю, который настоящим полностью содержится по ссылке в данном документе и к которому читатели обращаются за дополнительной информацией.

Фиг.2 и 3 схематично иллюстрируют MRAM-ячейку 10, подходящую для CAM-устройства по изобретению. CAM-ячейка 10 на основе MRAM содержит магнитный туннельный переход 20, сформированный посредством изолирующего слоя 22, расположенного между слоем 23 хранения и считывающим слоем 21. Предпочтительно, слой 23 хранения изготавливается из твердого ферромагнитного материала, в то время как считывающий слой изготавливается из мягкого ферромагнитного материала с низкой коэрцитивностью. Предпочтительно, MRAM-ячейка 10 также включает в себя, ниже слоя 23 хранения, антиферромагнитный фиксирующий слой 24.

Операция записи CAM-ячейки 10 на основе MRAM основана, например, на способе теплового переключения (TAS), как раскрыто, например, в US 6950335. Это получается посредством возбуждения электрического тока 51 в силовой линии 50 и одновременного контроля числовой словарной шины 70, чтобы включать транзистор 60 выбора, позволяя импульсу тока 31 нагрева протекать через туннельный переход 20. Температура магнитного перехода тем самым повышается до определенного высокотемпературного порогового значения в то время, когда переход погружается в магнитное поле, сформированное посредством электрического тока 51 в силовой линии 50. При определенном высокотемпературном пороговом значении намагничивание слоя 23 хранения может совмещаться в магнитном поле. Переход 20 затем охлаждается посредством запрещения перехода импульса 31 тока к низкотемпературному пороговому значению, так что намагничивание слоя 23 хранения приостанавливается в новом хранимом логическом состоянии, традиционно обозначаемом как "1" или "0" согласно направлению намагничивания и полярности тока поля.

В альтернативе вышеуказанному, запись может быть выполнена посредством спин-поляризованного магнитного тока (STT, или переключения с передачей спинового крутящего момента) или посредством схемы токоиндуцированного магнитного переключения (CIMS), которые не основываются на внешнем магнитном поле, или каким-либо другим способом. Эти разновидности также содержатся в пределах объема настоящего изобретения.

Во время операции поиска CAM-ячейки 10 на основе MRAM бит поиска предоставляется в считывающий слой 21 через силовую линию 50. Ток, циркулирующий в силовой линии 50 в ходе операции считывания, формирует магнитное поле, достаточное для того, чтобы модифицировать поляризацию считывающего слоя 21, но не поляризацию слоя 23 хранения. Направление намагничивания считывающего слоя 21 затем сравнивается с направлением намагничивания слоя хранения путем измерения сопротивления магнитного туннельного перехода 20. Низкое сопротивление указывает, что поляризации слоя хранения и считывающего слоя являются параллельными, следовательно, они оба содержат "1" или "0", тогда как во всех случаях измеряется высокое сопротивление. Можно видеть, что CAM-ячейка 10 на основе MRAM, в действительности, реализует X O R ¯ сохраненного бита и бита поиска без дополнительных компонентов. Посредством репликации структуры CAM-ячейки 10 можно реализовывать CAM-устройство, которое может сравнивать на месте и параллельно шаблон поиска с большим числом ключей. Эта операция сопоставления на месте является очень быстрой и типично проводится в одном тактовом цикле микропроцессора.

CAM-устройство на основе MRAM изобретения необязательно может включать в себя вторую силовую линию 40, используемую для того, чтобы поляризовать слой хранения или считывающий слой вдоль направления, ортогонального направлению первой силовой линии 50. Преимущественно, это дает возможность реализации троичных CAM-устройств (TCAM), обеспечивающих третье логическое значение "X", помимо "0" и "1", которое обрабатывается в качестве значения подстановочного символа. Согласно непредставленной разновидности CAM-устройство может использовать дифференциальные ячейки, каждая из которых включает в себя два туннельных перехода.

В непредставленном варианте осуществления TCAM-устройство может содержать так называемый "двойной переход", к примеру, описанный в неопубликованной заявке на европейский патент, поданной настоящим заявителем с номером заявки EP 11290150. Магнитный туннельный переход 20 TCAM-устройства с двойным переходом дополнительно содержит второй слой хранения и второй туннельный барьерный слой, содержащийся между считывающим слоем 21 и вторым слоем хранения. Второй слой хранения имеет намагничивание, которое может быть свободно ориентировано при втором высокотемпературном пороговом значении, типично меньшем низкотемпературного порогового значения. Логическое значение "X" затем может быть получено посредством ориентации намагничивания двух слоев 21 хранения антипараллельно.

Обращаясь снова к фиг.1, адрес, присутствующий в шине 25, также подается на вход CAM-устройства 160 и сравнивается с вектором сохраненных адресов (xi), сохраненным в устройстве. Если адрес не совпадает ни с любым из сохраненных адресов, CAM-устройство не вмешивается, и обработка операции продолжается, как обычно: процессор осуществляет выборку через шину 28 инструкций/данных адресуемой инструкции или элемента инструкции, содержащегося в ROM 120, и выполняет ее.

Если, с другой стороны, адрес, присутствующий в шине 25, совпадает с одним из сохраненных адресов xi, CAM-устройство выдает прерывание 26 (или инструктирует выдачу прерывания) в процессор 28. Как следствие, элемент машинного кода, присутствующий в шине 28, не считывается. Одновременно CAM-устройство 168 выводит адрес yi отклонения, соответствующий адресу xi (например, xi используется в качестве ключа адресации в CAM-устройстве 160, чтобы извлекать адрес yi отклонения), и этот адрес отклонения используется для того, чтобы выбирать положение в запоминающем устройстве 220 для внесения исправлений. Запоминающее устройство 220 для внесения исправлений предпочтительно является энергонезависимым устройством хранения, таким как флэш-память, но также может быть запоминающим MRAM-устройством. В разновидности, CAM-устройство 160 с проверкой на месте и запоминающее устройство 220 для внесения исправлений могут быть интегрированы в одном модуле, который, в случае совпадения с одним из сохраненных адресов xi, выводит непосредственно значение подстановочного элемента машинного кода, а не его адрес.

Исправленный элемент машинного кода затем представляется в процессор (стрелка 48) вместо элемента, который первоначально адресован. Если прерывание 21 неактивно в этот момент, процессор 170 возобновляет выполнение программы, как если бы ROM изначально содержало исправленный код, полностью прозрачным способом.

Относительно предшествующего уровня техники предложенное решение не приводит к увеличению объема кода или потере производительности, если ошибки не исправлены, и не основывается на специальных инструментальных средствах компиляции. Когда ошибка исправляется, издержки производительности минимальны и сокращаются до потери одного тактового цикла, чтобы отбрасывать исходную инструкцию. Кроме того, степень детализации предложенного способа чрезвычайно высока. Если требуется, всего один элемент машинного кода может быть модифицирован без необходимости перезаписывать целые функции. Вследствие энергонезависимой природы MRAM векторы xi, yi сохраняются на постоянной основе при отсутствии питания.

Предложенные CAM-устройства на основе MRAM являются чрезвычайно эффективными в отношении потребления энергии, плотности и затрат и особенно хорошо показывают себя при внесении исправлений в миниатюризированные устройства, устройства с низким уровнем мощности и смарт-карты. Другое преимущество MRAM-устройства хранения в этом случае состоит в том, что оно является энергонезависимым: векторы xi и yi, однажды запрограммированные, сохраняются на постоянной основе также при отсутствии электропитания.

Список ссылочных позиций и символов

xi адрес в ROM-инструкции
yi адрес в запоминающем DRAM-устройстве для внесения исправлений
10 CAM-ячейка на основе MRAM
20 магнитный туннельный переход
21 считывающий слой
22 изолирующий слой
23 слой хранения
24 фиксирующий слой
25 адресная шина
26 Прерывание
28 шина инструкций/данных
31 ток нагрева
38 адресация второго запоминающего устройства
40 вторая силовая линия
48 исправленные инструкции
50 силовая линия
51 электрический ток
60 транзистор выбора
70 числовая шина
120 постоянное запоминающее устройство
160 CAM-устройство с проверкой на месте
170 Процессор
220 запоминающее устройство для внесения исправлений

1. Устройство обработки информации, содержащее постоянное запоминающее устройство, включающее в себя выполняемые инструкции или данные, процессор, обеспечивающий адресацию постоянного запоминающего устройства и выборку выполняемых инструкций или данных через шину, САМ-устройство, подключенное к шине и выполненное с возможностью сравнивать адреса, запрашиваемые процессором, с элементами вектора адресов, которые должны быть исправлены, и если адрес, запрашиваемый процессором, совпадает с одним из элементов вектора, представлять в процессор подстановочную выполняемую инструкцию или данные вместо выполняемой инструкции или данных, адресованных процессором в постоянном запоминающем устройстве; при этом САМ-устройство является MRAM-устройством, содержащим множество ячеек запоминающего MRAM-устройства, причем каждая ячейка запоминающего MRAM-устройства содержит по меньшей мере один магнитный туннельный переход, при этом САМ-устройство выполнено с возможностью прерывать процессор, если адрес, запрашиваемый процессором, совпадает с одним из элементов вектора адресов, которые должны быть исправлены, чтобы предотвращать считывание выполняемой инструкции данных, адресованных процессором.

2. Информационное устройство по п. 1, содержащее второе запоминающее устройство, содержащее исправленные инструкции или данные, в котором САМ-устройство включает в себя целевой вектор, сохраняющий для каждого элемента вектора адресов, которые должны быть исправлены, адрес во втором запоминающем устройстве подстановочной выполняемой инструкции или данных.

3. Информационное устройство по п. 1, которое содержится в смарт-карте.

4. Способ внесения исправлений в выполняемые инструкции или данные в постоянном запоминающем устройстве, доступном посредством процессора, содержащий этапы, на которых: обеспечивают САМ-устройство, сохраняющее вектор адресов ячеек, которые должны быть исправлены в постоянном запоминающем устройстве, сравнивают адреса выполняемых инструкций или данных в постоянном запоминающем устройстве с элементами вектора, сохраненного в САМ-устройстве, представляют в процессор подстановочную выполняемую инструкцию или данные вместо выполняемой инструкции или данных, адресованных посредством процессора в постоянном запоминающем устройстве, если адрес, запрашиваемый процессором, совпадает с одним из элементов в векторе адресов, которые должны быть исправлены; при этом САМ-устройство является MRAM-устройством, предпочтительно MRAM-TCAM-устройством, содержащим множество ячеек запоминающего MRAM-устройства, причем каждая ячейка запоминающего MRAM-устройства содержит по меньшей мере один магнитный туннельный переход, прерывают процессор, если адрес, запрашиваемый процессором, совпадает с одним из элементов вектора, чтобы предотвращать считывание выполняемой инструкции данных, адресованных процессором.

5. Способ по п. 4, содержащий этап, на котором извлекают подстановочную выполняемую инструкцию или данные из второго запоминающего устройства на основе адреса, сохраненного в целевом векторе, включенном в САМ-устройство.



 

Похожие патенты:

Изобретение относится к средствам для регулировки канала I/O на виртуальной платформе, которые применяются в области виртуальной технологии. Технический результат заключается в повышении эффективности распределения ресурсов.

Изобретение относится к обработке виртуализации в компьютерной системе. Технический результат заключается в обеспечении совместимости средств виртуализации с устройствами, использующимися в компьютерной системе.

Изобретение относится к средствам управления виртуализацией для управления аппаратными ресурсами устройства связи. Технический результат заключается в повышении эффективности использования физических ресурсов.

Изобретение относится к области команд процесса компьютерной системы. Техническим результатом является оптимизация выполнения многофункциональных команд в разных машинах.

Изобретение относится к области эмуляции внутри вычислительной среды. Техническим результатом является повышение эффективности эмуляции команд.

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

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности обработки запросов ввода/вывода за счет предоставления переносимой службы для управления запросами ввода/вывода в отношении виртуальных жестких дисков.

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

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

Изобретение относится к компьютерной технике, а именно к загрузке пакетов данных из сети. Техническим результатом является снижение объема данных, хранимых на клиентском компьютере.

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