МИКРОКОМПЬЮТЕР Российский патент 2003 года по МПК G06F15/00 G06F12/14 

Описание патента на изобретение RU2198424C2

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

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

Возможностью таких защитных мер является применение блока управления памятью (memory management unit - MMU), который, например, имеется в процессоре JAPX286 фирмы INTEL. Это устройство, главным образом, применяется тогда, когда должны выполняться не только программы изготовителя микропроцессора, но и пользовательские программы, которые могли бы использоваться неправомерным способом. Блок управления памятью размещается между центральным процессором (CPU) компьютера и шиной, связывающей его с другими блоками, например запоминающими устройствами.

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

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

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

В патенте США 5452431 описана интегральная схема с CPU, которая через адресную шину подключена к программному запоминающему устройству, которое имеет несколько зон для пользовательских программ. Области запоминающего устройства для пользовательских программ соответствует зональная область запоминающего устройства, в которой в табличном виде занесены начальный и конечный адреса и опорный код пользовательских программ. При выполнении пользовательской программы начальный и конечный адреса зоны запоминающего устройства этой программы сравниваются с действительно вызываемыми адресами, причем вызываемый адрес, который находится вне зоны, определенной начальным и конечным адресами, приводит к прерыванию программы. Этот механизм защиты действует в рамках возможностей, устанавливаемых блоком управления памятью.

В документе DE 3709205 A1 в связи с цитированным в нем документом DE 3533787 A1 описана схема для защиты данных, находящихся в зоне запоминающего устройства. Зоне запоминающего устройства поставлен в соответствие дескриптор, в котором записаны свойства этой области. Он также содержит преамбулу, указывающую на то, идет ли речь о защищенных данных. Помимо того, преамбула содержит вектор, который при каждой адресации этой зоны запоминающего устройства заносится в промежуточное запоминающее устройство. После положительной проверки права доступа к защищенным данным вектор передается к процессору, управляющему запоминающим устройством, который затем вызывает программу для обработки защищенных данных, место размещения которых в запоминающем устройстве указывается вектором. Таким образом обеспечивается то, что защищенные данные не могут обрабатываться произвольным образом, а обрабатываются только этой определенной программой.

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

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

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

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

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

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

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

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

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

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

В микрокомпьютере, соответствующем изобретению, невозможен непосредственный переход к библиотечной программе. Вместо этого в команде вызова, кроме обозначения описывающего библиотечную программу сегментного дескриптора блока управления памятью (MMU), задается векторный номер. Обозначением сегментного дескриптора может, например, быть номер или имя.

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

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

На фиг. 1 схематично показаны составные части микрокомпьютера. Центральный процессор (CPU) через адресную шину соединен с блоком управления памятью (MMU). Блок управления памятью (MMU), в свою очередь, связан с внутренней адресной шиной микрокомпьютера, к которой подключены постоянное запоминающее устройство (ROM = ПЗУ), запоминающее устройство с произвольной выборкой (RAM = ЗУПВ) и электрически стираемое программируемое постоянное запоминающее устройство (EEPROM = ЭСППЗУ), а также блок входа/выхода (I/O). Могут также иметься и другие обычные для микрокомпьютеров блоки, которые, однако, не представлены, так как они не имеют отношения к изобретению. Также не представлены шины контроля и данных. Во всяком случае, микрокомпьютер, выполненный в соответствии с изобретением, должен иметь все необходимые для его функционирования известные из уровня техники составные части.

Центральный процессор (CPU) вводит логические адреса в блок управления памятью (MMU), в то время как MMU устанавливает по ним физические адреса и вводит их в запоминающие устройства. Блок управления памятью MMU оснащен, как представлено на фиг. 2 слева, ячейками памяти для сегментных дескрипторов, в которые занесены соответствующие пользовательской программе А, В начальный адрес, длина и право доступа. MMU, кроме того, имеет не показанный на чертеже сумматор, чтобы иметь возможность по логическим адресам установить физические адреса путем добавления начального адреса пользовательской программы. Для примера показаны сегменты для двух пользовательских программ А и В, причем программа А начинается с адреса 50000 и имеет длину 3500 адресов, в то время как программа В начинается с адреса 120000 и имеет длину 5000 адресов.

При выполнении программы А в центральный процессор (CPU) вызываются в соответствии с длиной программы адреса от 0 до 3499. Эти логические адреса подаются в блок управления памятью (MMU), который добавляет к ним начальное значение 50000, и подают получающийся таким образом физический адрес во внутреннюю адресную шину. Сначала блок управления памятью проверяет, находится ли логический адрес в адресной зоне, которая соответствует длине, запомненной в сегментном дескрипторе. Сегментный дескриптор может быть выполнен, например, как регистры запоминающего устройства. В блоке управления памятью для этой проверки имеются (не представленные на чертеже) сравнивающие устройства, на которые подаются действующие адреса и граничные адреса действующей программы. Если программой вызывается более высокий или более низкий адрес, происходит прерывание или выдается сообщение об ошибке.

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

Для вышеизложенного несущественно, находятся ли пользовательские программы в RAM, в EEPROM или в запоминающем устройстве другого типа, и к каким ячейкам памяти должен осуществляться доступ посредством пользовательской программы.

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

В качестве примеров на фиг. 3 в запоминающем устройстве библиотечных программ по адресам 1050 и 3000 представлены программа записи и программа стирания.

В способе, соответствующем изобретению, пользовательская программа не может непосредственно переходить к этим адресам, так как иначе также был бы возможен неопределенный переход, в обход мер защиты, к этим программам. Вместо этого предусмотрена зона векторного запоминающего устройства, в которой записаны номера векторов и присвоенные им начальные адреса библиотечных программ в качестве целей перехода (векторов) 1050, 3000. Альтернативно мог бы также запоминаться адрес команды перехода, ведущей к подпрограмме. Кроме того, может записываться имя подпрограммы в качестве кодового обозначения, как представлено на фиг. 3. Однако это не является необходимым.

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

Каждая зона запоминающего устройства библиотечных программ так же, как любая другая программа, может записываться в блок управления памятью (MMU). В способе, соответствующем изобретению, каждой зоне запоминающего устройства библиотечных программ поставлена в соответствие зона векторного запоминающего устройства, в которой записаны векторы для перехода к библиотечным программам, находящимся в зоне запоминающего устройства библиотечных программ. Запись производится путем задания начального адреса и длины зоны векторного запоминающего устройства
Альтернативно, зона векторного запоминающего устройства может также записываться в сегментный дескриптор блока управления памятью, причем в этом случае начальный адрес и длина зоны запоминающего устройства библиотечных программ записываются в сегментном дескрипторе. Кроме того, можно объединить зону векторного запоминающего устройства и зону запоминающего устройства библиотечных программ и задать в сегментном дескрипторе начальный адрес и две длины.

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

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

название год авторы номер документа
ПОЛУПРОВОДНИКОВОЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО 1997
  • Цеттлер Томас
  • Покрандт Вольфганг
  • Виннерл Йозеф
  • Георгакос Георг
RU2169951C2
ЭЛЕКТРОННОЕ УСТРОЙСТВО И СИСТЕМА ОБРАБОТКИ ДАННЫХ 1998
  • Седлак Хольгер
RU2188447C2
СПОСОБ ДИСТАНЦИОННОГО ЗАПРОСА ИНФОРМАЦИИ, СОХРАНЕННОЙ В ТЕЛЕКОММУНИКАЦИОННОМ УСТРОЙСТВЕ, И ТЕЛЕКОММУНИКАЦИОННОЕ УСТРОЙСТВО С ФУНКЦИОНАЛЬНОЙ ВОЗМОЖНОСТЬЮ ДИСТАНЦИОННОГО ЗАПРОСА СОХРАНЕННОЙ ИНФОРМАЦИИ 2005
  • Ейина Игор
RU2358407C2
СПОСОБ ГЕНЕРАЦИИ КОМПОНОВКИ СТРАНИЧНЫХ ФАЙЛОВ, ФОРМАТИРОВАННЫХ НА ЯЗЫКЕ СТРАНИЧНОЙ РАЗМЕТКИ 1998
  • Крузиус Фридберт
RU2193229C2
ИЗМЕРИТЕЛЬНОЕ СРЕДСТВО ДЛЯ ФУНКЦИЙ АДАПТЕРА 2010
  • Питер Кеннет Швед
  • Дейвид Краддок
  • Томас Грегг
  • Бет Гленденнинг
  • Эрик Норман Лейс
  • Стивен Гленн Уилкинс
  • Фрэнк Уилльям Брайс Джр.
RU2523194C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ОТОБРАЖЕНИЯ СЕТЕВЫХ ЗАГОЛОВКОВ НА MPLS-ЗАГОЛОВКИ В АРХИТЕКТУРАХ КАНАЛОВ-НОСИТЕЛЕЙ 2002
  • Гриммингер Йохен
RU2299518C2
ПРЕОБРАЗОВАНИЕ ИНИЦИИРУЕМОГО СООБЩЕНИЯМИ ПРЕРЫВАНИЯ В УВЕДОМЛЕНИЕ О ГЕНЕРИРОВАННОМ АДАПТЕРОМ ВВОДА-ВЫВОДА СОБЫТИИ 2010
  • Густав Ситтманн Iii
  • Дейвид Краддок
  • Томас Грегг
  • Марк Фаррелл
  • Джанет Истон
  • Эрик Норман Лейс
RU2546561C2
ОПРЕДЕЛЕНИЕ ФОРМАТОВ ТРАНСЛЯЦИИ ДЛЯ ФУНКЦИЙ АДАПТЕРА ВО ВРЕМЯ ВЫПОЛНЕНИЯ 2010
  • Дейвид Краддок
  • Томас Грегг
  • Дан Грейнер
  • Эрик Норман Лейс
  • Доналд Уилльям Шмидт
RU2556418C2
КОНТРОЛЛЕР 1991
  • Россинский В.П.
RU2012043C1
Управляющая векторная вычислительная система 1982
  • Прангишвили Ивери Варламович
  • Бабичева Елена Владимировна
  • Малюгин Владимир Дмитриевич
  • Соколов Владимир Владимирович
  • Денисенко Сергей Васильевич
  • Вейц Александр Вениаминович
  • Иванов Александр Иванович
  • Шкатулла Анатолий Иванович
  • Зверков Борис Семенович
  • Зрелова Татьяна Ивановна
  • Левертов Яков Анатольевич
  • Тодуа Джондо Альпезович
  • Гоголадзе Омар Васильевич
  • Вепхвадзе Анзор Николаевич
  • Гудушаури Гмаи Шалвович
  • Голубев Александр Павлович
  • Березенко Александр Иванович
  • Корягин Лев Николаевич
SU1120340A1

Иллюстрации к изобретению RU 2 198 424 C2

Реферат патента 2003 года МИКРОКОМПЬЮТЕР

Изобретение относится к вычислительной технике. Техническим результатом заявленного изобретения является обеспечение защиты микропроцессора от манипуляций при осуществлении микропроцессором доступа к библиотечным программам через пользовательские программы. Для этого программное запоминающее устройство содержит зону векторного запоминающего устройства, в которой записаны начальные адреса библиотечных программ в качестве целей перехода (векторы: 1050, 3000). Вызов библиотечной программы производится путем задания номера вектора (0...n), по которому блок управления памятью устанавливает соответствующий адрес в зоне векторного запоминающего устройства. 7 з.п.ф-лы, 3 ил.

Формула изобретения RU 2 198 424 C2

1. Микрокомпьютер с центральным процессором (CPU), который через блок управления памятью (MMU) соединен с адресной шиной (BUS), к которой подключено по меньшей мере одно программное запоминающее устройство (ROM, EEPROM), имеющее по меньшей мере одну зону запоминающего устройства для пользовательских программ (А, В), причем каждой пользовательской программе (А или В) в блоке управления памятью (MMU) приведен в соответствие сегментный дескриптор, в котором запомнены по меньшей мере начальный адрес (ANFA или ANFB), длина (LA или LB) и право доступа (ZRA или ZRB) пользовательской программы (А или В), и по меньшей мере одну другую зону запоминающего устройства для библиотечных программ (WRITE, ERASE) и зону векторного запоминающего устройства, при этом в блоке управления памятью (MMU) сегментный дескриптор описывает соотнесение зоны векторного запоминающего устройства и зоны запоминающего устройства библиотечных программ, в зоне векторного запоминающего устройства сохранен по меньшей мере номер вектора (0...n) и соотнесенный с ним вектор (1050, 3000), вызов библиотечной программы (WRITE, ERASE) посредством пользовательской программы (А, В) должен содержать по меньшей мере обозначение сегментного дескриптора блока управления памятью и номер вектора (0. . . n), с которым посредством блока управления памятью (MMU) соотнесен вектор, посредством которого производится переход к вызываемой библиотечной программе (WRITE, ERASE). 2. Микрокомпьютер по п.1, отличающийся тем, что соотнесение зоны векторного запоминающего устройства и зоны запоминающего устройства библиотечных программ осуществляется путем задания начального адреса и длины зоны векторного запоминающего устройства в сегментном дескрипторе блока управления памятью, соотнесенном с зоной запоминающего устройства библиотечных программ. 3. Микрокомпьютер по п.1, отличающийся тем, что соотнесение зоны векторного запоминающего устройства и зоны запоминающего устройства библиотечных программ осуществляется путем задания начального адреса и длины зоны запоминающего устройства библиотечных программ в сегментном дескрипторе блока управления памятью, соотнесенном с зоной векторного запоминающего устройства. 4. Микрокомпьютер по п.1, отличающийся тем, что соотнесение зоны векторного запоминающего устройства и зоны запоминающего устройства библиотечных программ осуществляется посредством связи обеих зон с общей зоной запоминающего устройства, которая описана путем задания начального адреса и двух длин в соответствующем сегментном дескрипторе блока управления памятью. 5. Микрокомпьютер по любому из пп.1-4, отличающийся тем, что вектор образован адресом перехода. 6. Микрокомпьютер по любому из пп.1-4, отличающийся тем, что вектор образован адресом команды перехода, приводящей к библиотечной программе. 7. Микрокомпьютер по любому из пп.1-6, отличающийся тем, что номер вектора (0...n) определяется по относительному положению вектора (1050, 3000) в зоне векторного запоминающего устройства. 8. Микрокомпьютер по любому из пп.1-6, отличающийся тем, что номер вектора (0. ..n) состоит из нескольких байтов и действующий вектор определяется путем сравнения номеров векторов (0...n), содержащихся в зоне векторного запоминающего устройства, с номером вектора, содержащимся в вызове.

Документы, цитированные в отчете о поиске Патент 2003 года RU2198424C2

US 5452431 А, 19.09.1995
US 4087856 А, 02.05.1978
ПЕРСОНАЛЬНАЯ КОМПЬЮТЕРНАЯ СИСТЕМА 1991
  • Алан Фредерик Арнольд[Us]
  • Джеймс Таи[Us]
  • Артур Рэймонд Уилер[Us]
RU2072553C1
ПЕРСОНАЛЬНАЯ КОМПЬЮТЕРНАЯ СИСТЕМА 1991
  • Алан Фридерик Арнольд[Us]
  • Джеймс Таи[Us]
  • Артур Раймонд Виллер[Us]
RU2068578C1
US 5325496 А, 28.06.1994
DE 3709205 A1, 29.09.1988.

RU 2 198 424 C2

Авторы

Седлак Хольгер

Брюкльмайр Франц-Йозеф

Даты

2003-02-10Публикация

1998-02-05Подача