Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
335
Добавлен:
01.06.2015
Размер:
19.51 Mб
Скачать

Многопортовые озу

Стандартное однопортовое ОЗУ имеет по одной шине адреса, данных и управления и в каждый момент времени обеспечивает доступ к ячейке памяти только одному устройству. Структура запоминающего элемента (ЗЭ) такого ОЗУ приведена на рис. 5.12, а.

В отличие от стандартного в n-портовом ОЗУ имеется п независимых наборов шин адреса, данных и управления, гарантирующих одновременный и независимый доступ к ОЗУ п устройствам. Данное свойство позволяет существенно упростить создание многопроцессорных и многомашинных вычислительных систем, где многопортовое ОЗУ выступает в роли общей или совместно используемой памяти. В рамках одной ВМ подобное ОЗУ может обеспечивать обмен информацией между ЦП и УВВ (например, контроллером магнитного диска) намного эффективней, чем прямой доступ к памяти. В настоящее время серийно выпускаютсядвух- и четырехпортовые микросхемы, среди которых наиболее распространены первые. Поскольку архитектурные решения в обоих случаях схожи, дальнейшее изложение будет вестись применительно к двухпортовым ОЗУ.

ЗЭ двухпортового ОЗУ (см. рис.5.12,б) также содержит шесть транзисторов, но в отличие от стандартного ЗЭ (см. рис.5.12,а) транзисторы Q3 служат не в качестве резисторов, a предоставляют доступ к элементу с двух направлений.

В двухпортовой памяти имеются два набора адресных, информационных, управляющих сигнальных шин, каждый из которых обеспечивает доступ к общему массиву ЗЭ (рис. 5.13). Поскольку двухпортовому ОЗУ свойственна симметричная структура, в дальнейшем наборы шин будем называть «левым» (Л) и «правым» (П). В целом организация матрицы ЗЭ остается традиционной.

Доступ к ячейкам возможен как через левую, так и через правую группу шин, причем если Л- и П-адреса различны, никаких конфликтов не возникает. Проблемы потенциально возможны, когда Л- и П-устройства одновременно обращаются по одному и тому же адресу и хотя бы одно из этих устройств пытается выполнить операцию записи. В этом случае, если один из портов читает информацию, а другой производит запись в ту же ячейку, вероятно считывание недостоверной информации. При попытке единовременного ввода в ячейку с двух направлений в нее может быть занесена неопределенная комбинация из записываемых слов. Несмотря на то что вероятность подобных ситуаций по оценкам не превышает 0,1% такой вариант необходимо учитывать, для чего в двухпортовой памяти имеется схема арбитража с использованием сигналов «Занято».

Рис.5.14. Логика арбитража в микросхеме реализована аппаратными средствами.

Схема обеспечивает формирование сигнала «Занято», запрещающего запись в ячейку для той половины, на которой адрес появится позже, а также принятие решения в пользу одного из входных портов при одновременном поступлении адресов. Арбитр содержит два компаратора адресов (КЛ и КП), два буфера задержки (БЗЛ и БЗП), триггер-защелку (ТЗ), образованный перекрестно связанными схемами «И-НЕ», и формирователи сигналов «Занято» (ЗЛ и ЗП)

Рис. 5.14. Логика арбитража с использованием сигнала «Занято»

Выявление адреса, поступившего первым, производится за счет буферов задержки и компараторов адресов. Так, если информация на адресной шине Ал уже стабилизировалась, а на шине Ап имеет тенденцию совпасть с Ал, то на выходе Кп сигнал «1» появится немедленно, как только адреса совпадут, в то время как на выходе К„ он сформируется с некоторой задержкой, определяемой БЗЛ. Эта ситуация фиксируется триггером-защелкой, на выходе которого возможны три комбинации сигналов: ТЗЛ = ТЗП = 1, ТЗЛ = 0 и ТЗП = 1, ТЗЛ =1 и ТЗП = 0. В исходном состоянии ТЗЛ = ТЗП = 1, поскольку на выходах обоих компараторов 0. В нашем случае при поступлении от Кп сигнала 1 на выходе ТЗП установится значение 0, в то время как выход ТЗЛ по-прежнему останется в состоянии 1, так как с Кл единица придет позже. В результате будет сформирован сигнал, запрещающий запись через правый порт, а также сигнал Занятоп, который поступает на устройство, подключенное к правому порту микросхемы, и может быть использован для задержки или повторения обращения к ячейке.

Если обращения к одной и той же ячейке происходят строго одновременно, сигналы с выходов Кл и Кп поступят на входы ТЗ также одновременно. Схема ТЗ реализована таким образом, что триггер и в этом случае установится в какое-то одно из двух своих нормальных состояний, что гарантирует принятие положительного решения на доступ к ячейке в пользу только одного из портов.

Сигналы выбора микросхемы ВМЛ и ВМ„ поступают непосредственно на ТЗ, благодаря чему при наличии обращения только от одного из портов арбитраж не производится.

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

В системе прерываний двухпортовой памяти две последних ячейки микросхемы (с наибольшими адресами) используются в качестве «почтовых ящиков» для обмена сообщениями между устройствами, подключенными к Л- и П-портам. Сообщению от левого устройства выделена ячейка с четным адресом (если емкость памяти равна 1К, то это будет адрес 3FF16), а от правого — с нечетным (3FE16). Когда устройство записывает информацию в свой «почтовый ящик», формируется запрос прерывания к устройству, подключенному к противоположному порту. Этот сигнал автоматически сбрасывается, когда адресат считывает информацию из своего «почтового ящика».

Система семафоров — это имеющийся в двухпортовой памяти набор из восьми триггеров, состояние которых может быть прочитано и изменено со стороны любого из портов. Триггеры играют роль программных семафоров или флагов, с помощью которых Л- и П-устройства могут извещать друг друга о каких-то событиях. Сущность этих событий не зафиксирована и определяется реализуемыми программами. Обычно семафоры нужны для предоставления одному из процессоров монопольного права работы с определенным блоком данных до завершения всех необходимых операций с этим блоком. В этом случае процессор, монополизирующий блок данных, устанавливает один из семафоров в состояние 1, а по завершении — в 0. Второй процессор, прежде чем обратиться к данному блоку, считывает семафор и при единичном состоянии последнего повторяет считывание и анализ семафора до тех пор, пока первый процессор не установит его в состояние 0. Естественно, что в программном обеспечении Л- и П-процессоров распределение и правила использования семафоров должны быть согласованы.

Зачастую одной микросхемы многопортовой памяти не хватает из-за недостаточной емкости одной ИМС или ввиду малой разрядности ячеек. В обоих случаях необходимо соединить несколько микросхем, соответственно параллельно или последовательно. Если несколько микросхем объединяются в цепочку для достижения нужной разрядности слова, возникает проблема с арбитражем при одновременном обращении к одной и той же ячейке. В этих случаях в разных ИМС цепочки, в силу разброса их параметров, предпочтение может быть отдано разным портам, в то время как решение должно быть единым. Для исключения подобной ситуации микросхемы многопортовой памяти выпускаются в двух вариантах: ведущие (master) и ведомые (slave). Принятие решения производится только в ведущих микросхемах, а ведомые функционируют в соответствии с инструкцией, полученной от ведущего. Таким образом, в цепочке используется только одна микросхема типа «ведущий», а все прочие ИМС должны иметь тип «ведомый».