русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Простейшие схемы ЛЗУ


Дата добавления: 2015-08-14; просмотров: 1050; Нарушение авторских прав


В простейшей схеме ЛЗУ, изображенной на рис. 1, в ЛЗУ загружается целиком блок последовательно расположенных данных из ОЗУ. Размер этого блока определяется размером ЛЗУ.


Рис. 1.

Когда МП запрашивает данные по определенному адресу, контроллер ЛЗУ проверяет, есть ли они в ЛЗУ и в случае "кэш-попадания", возвращает их в МП. В случае "кэш-промаха", контроллер ЛЗУ обновляет полностью все данные в ЛЗУ.

Достоинство данной схемы — ее простота. Недостаток — данные в ЛЗУ обновляются всем блоком. При большом количестве промахов это будет приводить к задержкам в работе ЛЗУ и потере его эффективности.

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

Переключающееся ЛЗУ

Рис. 2.

Идея переключающегося ЛЗУ представлена на рис. 2. По сути дела мы имеем здесь два ЛЗУ, которые работают независимо, но под управлением одного контроллера. Например, одно ЛЗУ может использоваться для данных, другое — для команд. В этом случае вероятность "кэш-промахов" снижается, так как данные и команды как правило лежат компактно, но отдельно.

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

Двухпортовое ЛЗУ

Двухпортовое ЛЗУ строится на основе двухпортового ЗУ, архитектура которого представлена на рис. 3.

Рис. 3.

Двухпортовое ЗУ позволяет выполнять одновременный доступ по двум каналам, например, одновременно считывать и записывать. Таким образом, подкачка данных в ЛЗУ может выполняться одновременно с поиском данных в нем.



Недостатоком двухпортового ЛЗУ является большая стоимость двухпортового ЗУ.

Главной отличительной чертой всех простейших ЛЗУ и их главным недостатком является необходимость переноса из ОЗУ в ЛЗУ сразу целого блока данных. Это приводит к большим потерям времени в случае "кэш-промаха", так как нужно подгружать из ОЗУ большой объем данных.

Ассоциативное ЛЗУ

Попытка уйти от перезагрузки полного блока сделана в архитектуре ассоциативного ЛЗУ. В данном случае из ОЗУ в ЛЗУ может загружаться содержимое отдельной ячейки. Таким образом, каждая ячейка ЛЗУ содержит информацию из какой-либо ячейки ОЗУ. Но в этом случае для каждой ячейки ЛЗУ необходимо хранить адрес той ячейки основного ЗУ, данные которой она содержит. Этот адрес называется тэгом адреса (tag) и хранится он в таблице тэгов.

Рис. 1.

При поступлении от МП запроса на чтение данных, контроллер ЛЗУ проверяет по таблице тэгов, есть ли данные, соответствующие данному адресу, в ЛЗУ. Если есть — они возвращаются МП, если нет (случай "кэш-промаха"), данные загружаются из основной памяти, помещаются в одну из ячеек ЛЗУ и выдаются в МП. Таким образом, в ситуации "кэш-промаха" перезагружается только одна ячейка ЛЗУ. Это экономит время и является главным преимуществом данной архитектуры.

Однако в такой схеме есть один серьезный недостаток. Для того чтобы определить, есть ли нужные данные в ЛЗУ, контроллер должен просмотреть всю таблицу тэгов. Длина ее равна количеству ячеек. Такой поиск может занять сравнительно много времени, сводя таким образом на нет выигрыш, полученный путем минимизации перезагрузок. Именно поэтому такая схема не получила большого распространения на практике и применяется в настоящий момент только в небольшом внутреннем кеше некоторых быстродействующих МП.

Недостатком является также необходимость хранения в таблице тэгов полных адресов ячеек. За счет этого таблица тэгов занимает много места, соответственно полезный объем ЛЗУ (пригодный для хранения данных) уменьшается.



<== предыдущая лекция | следующая лекция ==>
Локальное запоминающее устройство | ЛЗУ прямого отображения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.614 сек.