Мікрокомп’ютер з диспетчером пам’яті
Формула / Реферат
1. Мікрокомп'ютер з центральним процесором (CPU), який через диспетчер пам'яті (MMU) з'єднаний з адресною шиною (BUS), до якої підключений принаймні один запам'ятовуючий пристрій (ROM, EEPROM) для програм, що має принаймні одну область пам'яті для програм користувача (А, В),
причому кожній програмі користувача (А або В) в диспетчері пам'яті (MMU) підпорядковано один сегментний дескриптор, в якому зберігаються принаймні початкова адреса (ANFA або ANFB), довжина (LA або LB) та право на доступ (ZRA або ZRB) програми користувача (А або В), та
з принаймні однією іншою областю пам'яті для бібліотечних програм (WRITE, ERASE) та однією векторною областю пам'яті,
причому в диспетчері пам'яті (MMU) сегментний дескриптор описує підпорядкованість векторної області пам'яті та області пам'яті бібліотечної програми,
причому в векторній області пам'яті зберігається принаймні векторний номер (0...n) та підпорядкований йому вектор (1050, 3000),
причому виклик бібліотечної програми (WRITE, ERASE) через програму користувача (А, В) мусить містити в собі принаймні назву сегментного дескриптора MMU, а також векторний номер (0...n), що через диспетчер пам'яті (MMU) підпорядковується вектору, через який здійснюється перехід до викликаної бібліотечної програми (WRITE, ERASE).
2. Мікрокомп'ютер за п. 1, який відрізняється тим, що узгодження векторної області пам'яті та області пам'яті бібліотечної програми здійснюється через подання початкової адреси та довжини векторної області пам'яті в сегментний дескриптор MMU, підпорядкований області пам'яті бібліотечних програм.
3. Мікрокомп'ютер за п. 1, який відрізняється тим, що узгодження векторної області пам'яті та області пам'яті бібліотечної програми здійснюється через подання початкової адреси та довжини області пам'яті в сегментний дескриптор MMU, підпорядкований векторній області пам'яті.
4. Мікрокомп'ютер за п. 1, який відрізняється тим, що узгодження векторної області пам'яті та області пам'яті бібліотечної програми здійснюється шляхом об'єднання обох областей в єдину область пам'яті, яка описується поданням початкової адреси та двох даних довжини в підпорядкованому сегментному дескрипторі MMU.
5. Мікрокомп'ютер за будь-яким з пунктів 1-4, який відрізняється тим, що вектор утворений за допомогою адреси переходу.
6. Мікрокомп'ютер за будь-яким з пунктів 1-4, який відрізняється тим, що вектор утворений за допомогою адреси команди переходу, яка веде до бібліотечної програми.
7. Мікрокомп'ютер за будь-яким з пунктів 1-6, який відрізняється тим, що векторний номер (0...n) отримується з відносної позиції вектора (1050, 3000) в векторній області пам'яті.
8. Мікрокомп'ютер за будь-яким з пунктів 1-6, який відрізняється тим, що векторний номер (0...n) складається з декількох байтів, а актуальний вектор отримується шляхом порівняння векторного номера (0...n), що знаходиться в векторній області пам'яті, з векторним номером, що міститься у виклику.
Текст
1 Мікрокомп'ютер з центральним процесором (CPU), який через диспетчер пам'яті (MMU) з'єднаний з адресною шиною (BUS), до якої підключений принаймні один запам'ятовуючий пристрій (ROM, EEPROM) для програм, що має принаймні одну область пам'яті для програм користувача (А, В), причому кожній програмі користувача (А або В) в диспетчері пам'яті (MMU) підпорядковано один сегментний дескриптор, в якому зберігаються принаймні початкова адреса (ANFA або ANFB), довжина (LA або LB) та право на доступ (ZRA або ZRB) програми користувача (А або В), та з принаймні однією іншою областю пам'яті для бібліотечних програм (WRITE, ERASE) та однією векторною областю пам'яті, причому в диспетчері пам'яті (MMU) сегментний дескриптор описує підпорядкованість векторної області пам'яті та області пам'яті бібліотечної програми, причому в векторній області пам'яті зберігається принаймні векторний номер (0 п) та підпорядкований йому вектор (1050, 3000), причому виклик бібліотечної програми (WRITE, ERASE) через програму користувача (А, В) мусить містити в собі принаймні назву сегментного дескриптора MMU, а також векторний номер (0 п), що через диспетчер пам'яті (MMU) підпорядковується вектору, через який здійснюється перехід до викликаної бібліотечної програми (WRITE, ERASE) 2 Мікрокомп'ютер за п 1, який відрізняється тим, що узгодження векторної області пам'яті та області пам'яті бібліотечної програми здійснюється через подання початкової адреси та довжини векторної області пам'яті в сегментний дескриптор MMU, підпорядкований області пам'яті бібліотечних програм 3 Мікрокомп'ютер за п 1, який відрізняється тим, що узгодження векторної області пам'яті та області пам'яті бібліотечної програми здійснюється через подання початкової адреси та довжини області пам'яті в сегментний дескриптор MMU, підпорядкований векторній області пам'яті 4 Мікрокомп'ютер за п 1, який відрізняється тим, що узгодження векторної області пам'яті та області пам'яті бібліотечної програми здійснюється шляхом об'єднання обох областей в єдину область пам'яті, яка описується поданням початкової адреси та двох даних довжини в підпорядкованому сегментному дескрипторі MMU 5 Мікрокомп'ютер за будь-яким з пунктів 1-4, який відрізняється тим, що вектор утворений за допомогою адреси переходу 6 Мікрокомп'ютер за будь-яким з пунктів 1-4, який відрізняється тим, що вектор утворений за допомогою адреси команди переходу, яка веде до бібліотечної програми 7 Мікрокомп'ютер за будь-яким з пунктів 1-6, який відрізняється тим, що векторний номер (0 п) отримується з відносної позиції вектора (1050, 3000) в векторній області пам'яті 8 Мікрокомп'ютер за будь-яким з пунктів 1-6, який відрізняється тим, що векторний номер (0 п) складається з декількох байтів, а актуальний вектор отримується шляхом порівняння векторного номера (0 п), що знаходиться в векторній області пам'яті, з векторним номером, що міститься у виклику В мікрокомп'ютері працююча на даний момент програма здійснює контроль над комп'ютером або над розміщеними в ньому чи приєднаними до нього запам'ятовуючими пристроями (ЗП) або (24)15 04 2003 (86) PCT/DE98/00319, 05 02 1998 (31)197 09 975 0 (32)11 03 1997 (33) DE о ю ю ю 55445 іншими периферійними приборами Це поміж іншим означає, що завжди спрацьовує адреса ЗП, яка міститься в програмній команді, незалежно від того, чи повинна область пам'яті, яка містить в собі цю адресу, знаходитись в розпорядженні програми, чи ні Оскільки В багатьох випадках це не так - адже таким чином можна було б отримувати інформацію з областей пам'яті з суто секретним вмістом ЗП -, то вживаються запобіжні заходи Можливість ДЛЯ таких запобіжних заходів надається застосуванням диспетчера пам'яті (Memory Managment Unit), який надалі позначатиметься як MMU, який, наприклад, має місце в ІАРХ286 фірми INTEL Здебільшого він застосовується тоді, коли повинні працювати не лише програми виготовлення (чіпа), але й програми користувача, які можуть бути введені в дію неправильно MMU розміщують між центральним блоком обробки, який надалі позначатиметься як CPU, комп'ютера та шиною, котра з'єднує його з іншими блоками, такими як ЗП Кожне користування отримує введення в MMU, причому фіксується, в якому ЗП знаходиться користування, з якої адреси розпочинається, яку має довжину, та які існують права на доступ Ці дані користувач мусить вносити в ЗП свого комп'ютера при записі свого користування або ж своєї програми Лише тоді програма користувача має права,на доступ до областей пам'яті, які знаходяться в рамках, визначених попередньо заданою початковою адресою та довжиною Отже, введення в MMU описує властивість програми, збереженої в сегменті запам'ятовування даних Тому область, в якій знаходиться це внесення в MMU, називають сегментним дескриптором Кожний виклик адреси через програму перевіряється в MMU, і тільки якщо адреса знаходиться в дозволеній області, виклик приймається, в іншому ж випадку відбувається вихід з циклу програми або сигнал збою В тому випадку, коли в ЗП знаходяться програми різних користувачів, для кожного з них створена гарантія, що ІНШІ користувачі не зможуть вивчати або навіть змінити його програму, тому що кожна програма користувача може діяти лише в рамках області, визначеної при записі програми самим користувачем Документ US 5 452 431 описує логічну мікросхему з CPU, яка через адресну шину підключається до програмного ЗП, що має багато областей для програм користувача Області пам'яті для програми користувача підпорядкована область пам'яті, в якій в вигляді таблиці відкладаються початкова та кінцева адреси та опорний код програми користувача В ході роботи програми користувача початкова та кінцева адреса області пам'яті цієї програми порівнюються з адресами актуального виклику, причому викликана адреса, що знаходиться поза областю, визначеною початковою та кінцевою адресою, призводить до виходу програми з циклу Однак цей запобіжний механізм не виходить за межі захисних можливостей, створених за допомогою MMU Документ DE 3 709 205 А1 разом з процитованим в ньому DE 3 533 787 А1 описує запобіжну схему для захисту даних, що знаходяться в області пам'яті Області пам'яті підпорядковано дескриптор, до якого занесені властивості цієї області Крім того, він містить преамбулу, до якої занесено, чи про захищені дані йдеться Крім того, преамбула містить вектор, який при адресуванні цієї області пам'яті відкладається в проміжній пам'яті Після позитивного результату перевірки права на доступ до захищених даних вектор переноситься до обчислювальновирішального блоку, який керує пам'яттю і потім викликає програму для обробки захищених даних, місце пам'яті якої вказане вектором Таким чином гарантується, що захищені дані не можуть оброблятися якимось іншим шляхом, а лише за допомогою цієї визначеної програми Зазвичай програми користувача мають ще й підпрограми При цьому часто буває, що різні користувачі мають потребу в однакових підпрограмах, і тому завдяки описаним вище запобіжним заходам ці підпрограми мають місце в багатьох екземплярах Для цього потрібен занадто великий обсяг пам'яті Тому було б бажано і доцільно передбачити в області пам'яті мікрокомп'ютера бібліотеки підпрограм, до яких могли б мати доступ різні програми користувачів, за певних обставин з застосуванням спеціальних запобіжних заходів, таких, наприклад, як перевірка персонального ідентифікаційного номера Але відтак знову виникають описані вище проблеми, які полягають в тому, що якийсь користувач з недобрими намірами може проникнути в будь-яку бібліотечну програму, обминувши рутинну перевірку Задача даного винаходу полягає в тому, щоб створити1 мікропроцесор, який дозволяв би доступ до бібліотечних програм через програму користувача, але при цьому був захищений від маніпуляцій Задача вирішується за допомогою мікрокомп'ютера за пунктом 1 формули винаходу Інші наділені перевагами варіанти рішення приведені в залежних пунктах формули винаходу В мікрокомп'ютері згідно з винаходом безпосередній перехід до бібліотечної програми є неможливим Замість цього в CALL-команду окрім позначення сегментного дескриптора MMU, який описує бібліотечну програму, вводять векторний номер Позначенням сегментного дескриптора MMU може бути , наприклад, номер або ім'я За допомогою MMU перевіряють, чи заданий векторний номер взагалі є наявним та чи належить він до викликаної бібліотечної програми При позитивному результаті перевірки дозволяється доступ до векторної області пам'яті, початкову адресу та довжину якої містить в собі сегментний дескриптор MMU Лише в тій векторній області пам'яті, де знаходиться векторний номер, знаходиться і адреса переходу або адреса команди для переходу - тобто вектор - на початкову адресу бібліотечної програми Таким чином ефективно виключається ситуація, коли користувач може безпосередньо переходити до 55445 бібліотечної програми, обминаючи рутинні запобіжні заходи В подальшому винахід пояснюється більш детально на основі прикладів виконання за допомогою фігур Вони зображують фігура 1 схематично блок-схему програми мікрокомп'ютера, фігура 2 - схематично розподіл програм користувача серед ВМІСТІВ сегментних дескрипторів MMU фігура 3 - схематично тип та спосіб виклику бібліотечної програми Фігура 1 показує в дуже схематичному вигляді складові частини мікрокомп'ютера Центральний блок обробки CPU через адресну шину з'єднується з диспетчером пам'яті MMU 3 свого боку MMU з'єднаний з внутрішньою адресною шиною мікрокомп'ютера, до якої підключені блоки пам'яті ROM, RAM і EEPROM, а також блок вводу/виводу I/O Можуть бути наявними ІНШІ ЗВИЧНІ ДЛЯ мікрокомп'ютера блоки, які тут не зображені, оскільки не мають відношення до винаходу Відмовилися також і від зображення шини даних і контролю В будь-якому випадку мікрокомп'ютер згідно з винаходом може включати в себе всі необхідні для свого функціонування та ВІДОМІ З рівня техніки складові частини Блок CPU передає ЛОГІЧНІ адреси до MMU, тоді як MMU отримує з них фізичні адреси і передає їх до пам'яті Для цього MMU, як зображено на ЛІВІЙ частині фігури 2, обладнано комірками пам'яті для сегментних дескрипторів, куди введені підпорядковані програмі користувача А, В початкова адреса, довжина та право на доступ Крім того, MMU може мати не зображений суматор, призначений для того, щоб можна було з логічної адреси шляхом додавання початкової адреси програми користувача вивести фізичну адресу Для прикладу зображені сегменти для двох програм користувача А і В, причому програма А починається з адреси 50 000 і має довжину в З 500 адрес, в той час як програма В починається з адреси 120 000 і має довжину в 5 000 адрес В ході програми А в CPU згідно з довжиною програми викликаються адреси від О до 3 499, Ці ЛОГІЧНІ адреси поступають до MMU, який додає до них початкове значення 50 000 і отриману таким чином фізичну адресу передає на внутрішню адресну шину MMU заздалегідь перевіряє, чи знаходиться логічна адреса в області адрес, що відповідає збереженій в сегментному дескрипторі MMU довжині Сегментний дескриптор MMU може бути виконаний, наприклад, в формі запам'ятовуючого регістра Для такої перевірки в MMU передбачені порівнювальні блоки, до яких з одного боку поступає актуальна адреса, а з іншого боку граничні адреси актуальної програми В випадку, коли через програму викликається більш висока або більш низька адреса, то відбувається вихід з циклу або має місце сигнал збою або щось подібне В іншу область сегментного дескриптора MMU введені права на доступ, завдяки чому може бути встановлено, який доступ може бути здійснений до певних адресних областей - тільки для читання чи для читання і запису Для попереднього викладу не має значення, в якому ЗП знаходяться програми користувача - в RAM, в EEPROM чи в якомусь іншому, і до яких комірок пам'яті можна дістати доступ через одну програму Фігура 3 зображує вдосконалений згідно з винаходом відомий мікрокомп'ютер Тут поруч з іншим передбачено область пам'яті для підпрограм, що є доступними для всіх користувачів, тобто область пам'яті для бібліотечних програм Для цього може бути використаний будь-який ЗП Фігура 3 як приклад зображує в ЗП бібліотечних програм на адресах 1 050 та 3 000 програму WRITE та ERASE Згідно З винаходом тепер програма користувача не може безпосередньо перейти до цих адрес, інакше можливим став би і необумовлений вхід в ці програми - шляхом обминання запобіжних заходів Замість цього передбачено векторну область пам'яті, в яку вводяться векторні номери та підпорядковані їм початкові адреси бібліотечної програми як мета переходу (вектори) 1050, 3000 Альтернативно може бути збережена в пам'яті також адреса команди переходу, який веде до підпрограми Крім того, може бути введена назва підпрограми в вигляді характеристики, як це зображено в фігурі З Та це необов'язково Користувач не може дізнатися про фактичну, фізичну адресу бібліотечної програми Окрім захисного аспекту це має ще й ту перевагу, що таку програму при необхідності можна усунути з робочої системи, не призводячи до змін в програмі користувача Тут потрібно лише змінити мету переходу в векторній області пам'яті Кожна область пам'яті бібліотечної програми може бути введена в MMU як будь-яка інша програма Згідно з винаходом кожній області пам'яті бібліотечної програми підпорядковано векторну область пам'яті, де вектори вводяться до бібліотечних програм, що знаходяться в області пам'яті бібліотечної програми Введення відбувається шляхом подання початкової адреси та довжини векторної області пам'яті Альтернативно векторна область пам'яті може бути введена також в сегментний дескриптор MMU, причому в цьому випадку в сегментний дескриптор вводять початкову адресу та довжину області пам'яті бібліотечної програми Крім того, можна об'єднати векторну область пам'яті та область пам'яті бібліотечної програми і ввести в сегментний дескриптор одну початкову адресу та дві довжини Виклик бібліотечної програми через програму користувача здійснюється шляхом введення назви сегментного дескриптора MMU, такої як ім'я бібліотечної програми або число та номер вектора Потім MMU перевіряє, чи векторний номер взагалі існує в векторній області пам'яті, і чи співпадає викликана назва програми з введенням, підпорядкованим векторному номеру Тільки при позитивному результаті перевірки відбувається вибір відповідної адреси в векторній області пам'яті, а вже після цього здійснюється перехід до бібліотечної програми 55445 ROM CPU / 1 RAM - MMU EP O ER M BUS I/O Фіг.1 z.B. EEPROM 50.000 1 QQ O35 Q: 5 . Q |.O | 53,500' 120.000125.000 У//У/Л У7Ж/Л Фіг.2 Область пам'яті для бібліотек t векторна область пам'яті Область пам'яті для програм користувача •чо- 0 W I E Goto 1 5 T 00 го- E R E G to 3 0 A 1 RS o 00 2 п! 1050 Call WRITE.Q І • /W I E Z. RT W У/ERASEV/ MMU O.R. WRITE 10 ERASE 20 0 ... 1 ... Фіг.З Підписано до друку 05 05 2003 p Тираж 39 прим ТОВ "Міжнародний науковий комітет" вул Артема, 77, м Київ, 04050, Україна (044)236-47-24
ДивитисяДодаткова інформація
Назва патенту англійськоюMicrocomputer with a memory management unit
Назва патенту російськоюМикрокомпьютер с устройством управления памятью
МПК / Мітки
МПК: G06F 21/00, G06F 12/14, G06F 9/40
Мітки: мікрокомп'ютер, пам'яті, диспетчером
Код посилання
<a href="https://ua.patents.su/4-55445-mikrokompyuter-z-dispetcherom-pamyati.html" target="_blank" rel="follow" title="База патентів України">Мікрокомп’ютер з диспетчером пам’яті</a>
Попередній патент: Спосіб переробки відходів металів платинової групи та їх сплавів
Наступний патент: Автобалансувальний пристрій ротора
Випадковий патент: Мембранна машина