Микрокомпьютер

 

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

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

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

Возможностью таких защитных мер является применение блока управления памятью (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 проверяет тогда, существует ли вообще этот номер вектора в зоне векторного запоминающего устройства и совпадает ли вызываемое обозначение программы с записью, соотнесенной с векторным номером. Только при положительном результате проверки происходит адресация к соответствующему адресу в зоне векторного запоминающего устройства и только оттуда происходит переход к самой библиотечной программе.

Формула изобретения

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), содержащихся в зоне векторного запоминающего устройства, с номером вектора, содержащимся в вызове.

РИСУНКИ

Рисунок 1, Рисунок 2, Рисунок 3



 

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

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

Изобретение относится к системам обработки данных

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

Изобретение относится к объединению сети Интернет с телефонными системами

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

Изобретение относится к области вычислительной и организационной техники и может быть использовано при изготовлении персональных компьютеров

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

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

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

Изобретение относится к вычислительной технике

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

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

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

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

Изобретение относится к электронному устройству обработки данных

Изобретение относится к компьютерной технике

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

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

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