БЛОК УПРАВЛЕНИЯ ПАМЯТЬЮ УНИВЕРСАЛЬНОГО МИКРОКОНТРОЛЛЕРА

Полезная модель представляет собой блок управления памятью, который может быть использован в составе ядра 8-разрядных или 16-разрядных микроконтроллеров, предназначенный для осуществления доступа к данным, расположенным в памяти программ и памяти данных. Отличительной особенностью полезной модели является уменьшенное время выполнения команд перехода, вызова подпрограмм и возврата из подпрограмм.
Желаемый технический результат достигается благодаря расширению шины доступа к памяти за счет разделения блока памяти на части. Блок управления памятью обеспечивает одновременный доступ к двум соседним инструкциям, адресуемой в данный момент времени и следующей за ней. Технический эффект достигается путем чередования блоков памяти команд при записи инструкций в них, а также чередования блоков памяти команд при считывании инструкций из них. Аналогичные действия выполняются и с данными, поступающими из памяти или в память данных.
Известны ядра 8-разрядных микроконтроллеров зарубежных производителей [1]. Особенностью этих ядер является непосредственный доступ к командам по адресу, сформированному ядром микроконтроллера. В таблице показано время выполнения команд перехода микроконтроллера ATmega128 с ядром AVR.
Таблица
Операция
Длина команды слов
Количество периодов тактового сигнала
1
2
3
Переход
2
3
Вызов подпрограммы
2
4
Относительный переход
1
2
Непрямой переход
1
2
Относительный вызов подпрограммы
1
3
1
2
3
Непрямой вызов подпрограммы
1
3
Возврат из подпрограммы
1
4
Возврат из прерывания
1
4
Недостатком таких ядер является то, что для получения адреса перехода необходим дополнительный период тактового сигнала, обусловленный наличием адреса перехода во втором слове команды, а также дополнительный период тактового сигнала, затрачиваемый на сохранение счетчика команд в стеке. Это не позволяет ускорить выполнения операций, воспользовавшись технологическими процессами с малым временем задержек элементов.
Полезная модель может быть использована в составе ядра 8-разрядных или 16-разрядных микроконтроллеров и выполняет дешифрацию адреса для блоков памяти, что позволяет сократить время ожидания адреса при выполнении команд перехода и вызова подпрограмм. Блок управления формирует свой адрес для каждого из блоков памяти, что позволяет ядру получить одновременно доступ к коду команды и адресу перехода. Контроль над памятью данных позволяет сократить время ожидания при записи или считывании адреса возврата из подпрограмм.
На фиг. представлена структура полезной модели.
1. Блок управления памятью универсального микроконтроллера.
2. Формирователь адреса памяти команд.
3. Мультиплексор команд.
4. Мультиплексор данных.
5. Формирователь адреса данных.
6. Формирователь управляющих сигналов.
7. Шина адреса памяти команд.
8. Шина команд.
9. Дополнительная шина команд.
10. Шина данных.
11. Дополнительная шина данных.
12. Шина адреса памяти данных.
13. Шина управления памяти данных.
14. Шина адреса блока памяти команд 1.
15. Шина команд блока памяти команд 1.
16. Шина адреса блока памяти команд 2.
17. Шина команд блока памяти команд 2.
18. Шина данных блока памяти данных 1.
19. Шина адреса блока памяти данных 1.
20. Шина управления блока памяти данных 1.
21. Шина данных блока памяти данных 2.
22. Шина адреса блока памяти данных 2.
23. Шина управления блока памяти данных 2.
24. Ядро микроконтроллера.
25. Память команд.
26. Память данных.
27. Блок памяти команд 1.
28. Блок памяти команд 2.
29. Блок памяти данных 1.
30. Блок памяти данных 2.
Блоки памяти команд соединены выходными шинами команд с мультиплексором команд. Мультиплексор команд соединен с ядром микроконтроллера шиной команд и дополнительной шиной команд. На шине команд формируется адресуемая инструкция, а на дополнительной шине команд - следующая за ней инструкция. Аналогичным образом строится схема для памяти данных.
Полезная модель выполняет следующие функции:
1. Формирование адреса доступа к блокам памяти программ при чтении ядром кода команды, состоящей из одного слова.
2. Формирование адреса доступа к блокам памяти программ при чтении ядром кода команды, состоящей из двух слов.
3. Формирование адреса доступа к блокам памяти данных при чтении ядром памяти данных в режиме увеличения адреса.
4. Формирование адреса доступа к блокам памяти данных при чтении ядром памяти данных в режиме увеличения адреса, при чтении адреса возврата из процедуры.
5. Формирование адреса доступа к блокам памяти данных при записи ядром памяти данных в режиме увеличения адреса.
6. Формирование адреса доступа к блокам памяти данных при записи ядром памяти данных в режиме уменьшения адреса, при записи адреса возврата из процедуры.
7. Перенаправление команд поступающих от блоков памяти команд 1 и 2 на шину команд ядра микроконтроллера и дополнительную шину команд ядра микроконтроллера.
8. Перенаправление данных поступающих от ядра на блоки памяти данных 1 и 2.
9. Перенаправление данных поступающих от блоков памяти данных 1 и 2 на шину данных ядра микроконтроллера и дополнительную шину данных ядра микроконтроллера.
10. Формирование управляющих сигналов записи, чтения блоков памяти данных 1 и 2.
Литература:
1. ATmega128/ATmega128L 8-bit Microcontroller. User's manual. Rev.2467B-09/01.