Организация памяти с точки зрения построения доступа (электроника)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:59, 7 января 2015.

Дисциплины доступа

  1. Очередь FIFO (длина)
  2. Стек FILO (глубина)
  3. Ассоциативный (последовательного доступа)


Добавление новой операции: удаление из ассоциативной памяти.


Доступ к данным через ключ, для чтения информации нужен ключ.


Производство ключей не != количеству ЯП. Можно посчитать ПКлючей:

Количество ЯП, разряд ключа, разряд данных - основные параметры.


Key-адрес ассоциативный способ доступа.


Схема очереди с организацией 4х4

Рис. 1. Схема очереди с организацией 4х4


  • WR/RD - стробы для записи/чтения.
  • D0 - D3 - входы для записи.
  • Y0 - Y3 - выходы для чтения.
  • 2 выходных сигнала EMPTY и FULL.
  • Схема реализована на 4 регистрах D1 - D4.
  • D5 - счётчик, подсчитывающий количество элементов, записанных в очередь (реверсивный)
  • D10 - для формирования сигнала FULL и EMPTY
  • S0,S1 - на входы управления
  • D6- D8 - служат для выбора значения из очереди.
  • D6 - выбор нулевого разряда


Основа: Очередь характеризуется

  • головой очереди
  • длиной очереди


Можем фиксировать голову или хвост очереди. В данном случае фиксирован хвост (информация записывается в D1, а то, что хранилось в D1 - перезаписывается в D2 и т.д. Из D4 информация теряется, т.е. в D1 хранится последний записанный элемент)


Каждый мультиплексор выбирает свой бит из очереди (при поступлении сигнала WR счётчик увеличивается на 1).

Использовать мультиплексор на 5 входов нецелесообразно.

У D5 - модуль пересчёта.


Наличие двух шин не позволит производить разрушение информации

Запись 1
Запись 2
Запись 3
Запись 4
Запись 5
Чтение 4
Чтение 3
Чтение 2
Чтение 1

При чтении 1 формируется EMPTY


Оптимизация стека 4х4

Рис. 2. Оптимизация стека 4х4


Стек: LIFO (структура):

  • D0 - D3 входы для записи информации.
  • Y0 - Y3 - выходы для чтения.
  • WR/RD - стробы чтения/записи.
  • EMPTY/FULL - обозначение пустого или полного стека.
  • Регистр хранит соответствующий бит стека (D1 - для нулевого, D4 - для третьего). Сдвиг влево информации при входном записывающем сигнале (0 - в 1 и т.д.). При чтении сдвиг обратно. Т.е. значение в нулевом разряде - последнее поступившее значение. Т.е. стек зависит от разрядности регистра. Для увеличения длины - добавить регистры.

Ассоциативная организация доступа к памяти

Характеризуется:

  • количеством ячеек;
  • разрядностью ключа;
  • разрядностью данных;

Осуществляемые операции:

  • чтение информации;
  • запись информации
  • удаление информации;
Чтение
На вход подаётся ключ, затем поиск ключа в памяти. Если его нет, то память выдаёт отсутствие информации.
Запись
  1. Просматривает пространство ключей, чтобы выяснить есть ли такой ключ в памяти , если есть, то модификация, связанная с ключом защиты.
  2. Если ключа нет, то берём свободную ячейку (если такая есть), создаём ключ, связанный с ней и запоминаем информацию.
Удаление
Если есть соответствующий ключ, то соответствующую ячейку помечаем, как неиспользуемую (свободную). Иначе - выдаём, что информацию удалить нельзя.


Рассмотрим набросок: Чтение из ассоциативной памяти

Рис. 3. Ассоциативная организация доступа к памяти


  • D3 - память хранения ключей (по 5 бит).
  • D8 - память хранения защиты (по 6 бит каждый).

Т.е., если находим ключ, то его адрес - адрес записанного, т.е. имеем однозначное соответствие.


  • B0 - B4 - входы для задания ключа.
  • D0 - D5 - выходы для защиты.
  • START - управляющий сигнал.
  • RESET - сигнал для инициализации схемы (сброса).
  • K0 - K4 - наш ключ (предваряет RESET и START)
  • START - установка D6 (хранит признак - просмотренное условие или ключ), затем на D2 поступают счётные импульсы.


На выходе CMP :

"1" - если данные совмещены;
"0" - иначе;


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

При переходе из 5 в 0 (данные не были найдены) счётчик D2 останавливается (сигнал через D6 - D9 запись прохождения сигнала). Запись в D7 того, что данные не найдены.


D7 = "1", если данные не найдены.

D6 - для сигнализации, проходил ли синхронизация или нет.

BUSY - сигнал занятости


Общее количество ключей превосходит объём защиты.


Пример использования - кэш-память.

Ключ - адрес, по которому происходит обращение. Данные - операция, вычисляемая процессором.


Память разбивается на блоки (как правило, по 4Кб)

4Кб = 24 бита. - адрес, рабочего номера 4Кб-ного блока. Тот самый ключ для счёта.

Вся информация распространяется в использовании (статическая память очень быстродействующая). Если счёт закончен, то распознаёт, что надо удалить (т.е. из него в основную память, а на её место новая информация).

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

Жёсткий блок: время, WR, RD - намного больше, что время WR, RD и ОП. Хотим сделать время WR, RD b ж.д. таким же, как и ОП.


Рис. 4. Пример использования

Вся информация передаётся последовательно (по 512 б).


Если делаем аппаратно:

Ключ - номер селектора

> 4 запросов не может быть. Не надо хранить > 4 ключей. Из всего Тб надо сохранить 4 сектора по 512 Б - порядка 1 Гб. (т.е. рассчитываем с 1 Тб, как и с Гб по быстродействию).


Компаратор делает всё "прозрачным" для процессора. (он не загадывает откуда считывает селектор и т.д.)

  • № сектора
  • Смещение сектора (минимально 9 б - определеляется внутри сектора. Остальные байты определяют место на диске).


Увеличение быстродействия (вся работа в ОП, а не на жёстком диске)

Использование ассоциативной памяти (делает выборку из общего объёма).