Правильная ссылка на эту страницу
http://az-design.ru/Support/HardWare/NEC/D19890216Elc008.shtml

Контроллер кэш-памяти с возможностью подключения к любой микропроцессорной системе

УДК 681.326.3

Дейв Бёрски (Dave Bursky)
Редакция Electronics

Dave Bursky. Cache controller ties into any microprocessor system, ED, 1988, No.18, pp.75—78.

Фирма NEC предлагает однокристальный контроллер кэш-памяти, предусматривающий режимы одно-, двух- или трехканального множественно-ассоциативного доступа; контроллер рассчитан на адресацию 128 кбайт и обеспечивает постепенное ухудшение параметров (деградацию) при отказах памяти.

Разработчики микропроцессорных систем стремятся свести к минимуму непроизводительные расходы подсистем памяти, экономя каждый такт, поэтому они уделяют особое внимание эффективности кэш-памяти и увеличению коэффициента попадания для кэш-памяти. Увеличение емкостей кэш-памяти и организация многоканального множественно-ассоциативного доступа способствуют росту коэффициентов попадания, т.е. позволяют чаше находить нужные слова в кэш-памяти, однако лишь немногие однокристальные контроллеры кэш-памяти являются с точки зрения разработчиков оптимальными по обоим аспектам. Большинство подобных контроллеров либо предоставляют лишь ограниченные возможности множественно-ассоциативного доступа, либо рассчитаны на максимальную емкость кэш-памяти, равную всего 32 кбайт.

Гораздо менее жесткие ограничения характерны для кристалла µPD71641, контроллера кэшпамяти фирмы NEC, который может управлять высокоскоростным статическим ЗУПВ кэш-памяти емкостью 128 кбайт. Однокристальный КМОП-контроллер работает в режимах одно-, двух- или четырехканального множественно-ассоциативного доступа (режим одноканального доступа — это режим прямого отображения). При увеличении емкостей кэш-памяти предусматривается возможность каскадного включения нескольких контроллеров.

ИС µPD71641 содержит также некоторые другие средства, повышающие его гибкость. Чтобы быть уверенным, что система будет функционировать даже в случае отказов определенных секций памяти, контроллер предусматривает переключение в режимы работы «с деградацией». Кроме того, контроллер выполняет автоматически тесты самодиагностики для проверки работоспособности размещенной на кристалле памяти справочника-каталога. При обнаружении неисправимой ошибки в данных контроллер может заблокировать кэш-память и при этом указать область памяти с неверными данными, что упрощает поиск неисправностей.

Подобно другим контроллерам кэш-памяти, предлагаемым компаниями Austek, Intel и некоторыми другими, кристалл фирмы NEC реализует при управлении замещением содержимого кэш-памяти алгоритм LRU (дольше всего не использовавшиеся данные замещаются первыми). Чтобы обеспечить непротиворечивость данных, контроллер следит за работой шины и реализует обновление содержимого основной памяти по способу сквозной записи, гарантируя, что изменяемые данные будут переноситься в основную память при первой возможности. Как и другие подобные ИС, контроллер фирмы NEC по своему быстродействию соответствует процессорам, работающим с тактовыми частотами до 20 МГц,— общее время доступа к памяти составляет около 35 нс (10 нс затрачивается на установление адреса и 25 нс — задержка до получения действительного значения и сигнала готовности Ready).

Однако кроме этих немногих функциональных возможностей, общих с другими контроллерами кэш-памяти, кристалл µPD71641 характеризуется большими гибкостью и пространством кэш-памяти, чем любой другой прибор, если не считать схему, разработанную компанией National Semiconductor для своего микропроцессора NS32532. И действительно, однокристальный контроллер фирмы NEC имеет даже «унифицированный» интерфейс, который, хотя и оптимизирован для микропроцессоров V60/70 и 80386, может работать с большинством 16- или 32-разрядных устройств. Для большинства систем применение кэш-памяти позволяет также значительно повысить скорость операций прямого доступа к памяти (ПДП). В системе без кэш-памяти во время передачи данных в режиме ПДП приходится, как правило, останавливать ЦП на один такт шины, в то время как при наличии кэш-памяти работа шины ЦП и передача данных в режиме ПДП могут происходить параллельно.

В 16-разрядной машине, если используются 256-кбит статические ЗУПВ со словом длиной в 1 байт, для построения кэш-памяти прямого отображения (одноканальной) нужны два кристалла памяти, для построения двухканальной множественно-ассоциативной кэш-памяти — четыре кристалла, а для четырехканальной кэш-памяти — восемь кристаллов. В случае 32-разрядных машин число кристаллов ЗУПВ, необходимых для построения кэш-памяти каждого типа, удваивается. Наличие средств прямого, двух- или четырехканального отображения предоставляет архитектору системы возможность организовывать кэш-память с 1024 множествами при одном уровне, 512 множествами при двух уровнях или 256 множествами при четырех уровнях — с двумя подблоками в каждом случае. Можно программировать любые емкости блоков от 8 до 128 кбайт.

На кристалле контроллера размещаются три блока памяти управления кэш-ЗУ, необходимые для хранения всех тегов и информации управления,— это справочник-каталог ассоциативной кэш-памяти (21 бит*256 элементов на четыре направления), память LRU (6 бит*256 элементов) и матрица флажков-признаков действительности данных (2 бит*256 строк на четыре направления) (см. рисунок). Последняя матрица памяти служит для хранения битов флажков-признаков, указывающих для каждого блока, является ли его содержимое действительным или нет. Эти флажки-признаки устанавливаются каждый раз, когда завершается замещение подблока, и сбрасываются при обнаружении совпадения адресов (monitor hit).

Контроллер кэш-памяти µPD71641 фирмы NEC содержит памяти справочника-каталога кэш-ЗУ, регистрации дольше всего не использовавшихся данных и флажков-пр
Контроллер кэш-памяти µPD71641 фирмы NEC содержит памяти справочника-каталога кэш-ЗУ, регистрации дольше всего не использовавшихся данных и флажков-признаков действительности данных; схемы контроля ошибок, например сдвоенные компараторы и генератор признаков четности, гарантируют, что ошибки адресации не будут приводить к нарушению работоспособности системы.

На кристалле имеются два компаратора, один для контроля адресов ЦП, а другой для контроля адресов шины. Это позволяет производить контроль адресов параллельно и способствует повышению быстродействия системы. Компаратор, обслуживающий ЦП, сравнивает адресный тег справочника-каталога с адресом, используемым для доступа к системной шине, и формирует сигнал разрешения для кэш-памяти при совпадении адресов. Второй компаратор сравнивает адрес системной шины с адресом справочника-каталога и при обнаружении совпадения сбрасывает соответствующий флажок-признак действительности, показывая тем самым, что данные в основной памяти устарели.

Чтобы гарантировать безошибочную работу системы, контроллер кэш-памяти предусматривает возможность «очистки»; по команде очистки осуществляется сброс флажков-признаков действительности данных для всех блоков, а также сброс различных режимов обнаружения ошибок и средств управления функциональной деградацией. Подобные возможности обработки ошибок весьма важны, поскольку восстановление программной обстановки системы, в которой возникла ошибка, с целью воспроизведения-повторения или обнаружения этой ошибки, может оказаться очень сложной задачей.

На кристалле контроллера имеется генератор сигналов четности, связанный с входными линиями адресов процессора; генератор вырабатывает бит четности для адресного тега, относящегося к текущей операции доступа для ЦП. Этот бит сравнивается с битом четности адреса, хранящимся в справочнике-каталоге, чтобы убедиться в том, что проверка на совпадение производится для правильного адреса. При помощи дополнительных аппаратных средств производится сравнение выходов обоих внутренних компараторов на совпадение друг с другом — это контроль на «непопадание» (на отсутствие нужных данных в кэш-памяти). Кроме того, осуществляется контроль на «дублирование» (multi hit), чтобы установить, не вырабатываются ли выходные сигналы-признаки совпадения двумя или более компараторами адресов на различных уровнях в режиме множественно-ассоциативного доступа.

Когда в процессе чтения кэш-памяти из ЦП обнаруживаются внутренние ошибки, контроль определяет их как «псевдонепопадание». Если возникают подобные ситуации, то выполняется процедура замещения для блоков всех уровней, кроме уровня, на котором присходят ошибки. При последующих процедурах замещения уровень, где возникают ошибки, выбираться не будет, и он не сможет участвовать в определении наличия или отсутствия данных в кэш-памяти. Подобное «отключение» неработоспособного уровня называется функциональной деградацией, поскольку упомянутый механизм дает возможность кэш-памяти продолжать выполнять свои функции после выхода из строя какой-либо секции, причем гарантируя правильность работы; благодаря этому ухудшение характеристик системы сводится к минимуму.

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

Кристалл имеет несколько сигнальных выводов, предназначаемых для выдачи сообщений об ошибках в главную машину. Один из таких выводов служит либо для выдачи сигнала «четность данных» (DRAP — Data Parity), требующего блокировки обращений к кэш-памяти для чтения, либо для приема сигнала, заставляющего механизм функциональной деградации кристалла отключить один уровень-секцию отображения. Еще один вывод служит для уведомления о том, что в процессе выполнения процедуры замещения подблока возникла ошибка шины (BERR — Bus Error). Другие выводы позволяют передавать главному компьютеру дополнительные признаки, характеризующие состояние деградации. Кристалл контроллера выдает сигнал «неисправность» (Fault), если механизм функциональной деградации отключил несколько уровней-секций, и сигнал «отказ» (Fatal), если кэш-память оказывается вообще заблокированной ввиду отсутствия работоспособных уровней-секций. Главный компьютер имеет возможность доступа к четырем внутренним регистрам, содержащим информацию состояния кристалла.

На кристалле контроллера размещаются также схемы самодиагностики, в том числе генератор псевдослучайных последовательностей. При помощи этих схем может осуществляться контроль двухпортовой памяти справочника-каталога кэш-ЗУ памяти LRU и памяти флажков-признаков действительности данных. Результаты контроля запоминаются в одном из регистров состояния и ошибок. Чтобы проконтролировать все памяти, необходимо 21 504 такта (это приблизительно 1 мс при частоте 20 МГц).

Справочник-каталог кэш-памяти разделен на 1024 блока. В зависимости от числа каналов множественно-ассоциативного доступа эти блоки могут быть организованы как 1024*1, 512*2 или 256*4. Чтобы сократить время замещения при отсутствии нужных данных в кэш-памяти, каждый блок реально обрабатывается как два подблока. Один подблок — это минимальное количество данных, которое передается в процессе частичного замещения содержимого кэш-памяти.

Кроме того, фактическое число байтов, передаваемых в составе подблока, определяется количеством тактов шины, которое разработчик выбрал при реализации системы — от 1 до 16. Поскольку такой выбор требует также определенных изменений адресации, размер подблока нельзя легко менять динамически во время работы системы.

Чтобы упростить загрузку кэш-памяти, контроллер предусматривает режим группового обмена, при котором он берет на себя управление шиной основной памяти и производит загрузку кэш-памяти, переписывая данные указанного диапазона адресов. Кристалл имеет две шины адресов по 29 линий; одна из этих шин относится к главному компьютеру, а вторая служит для контроля системы памяти. По пяти четырехлинейным шинам передаются строб-сигналы для линий записи и чтения кэш-памяти, значения адресов и счетчиков для памяти и сигналы управления для подсистемы кэш-памяти. Еще 25 линий используются для передачи системных сигналов управления, а остальные выводы 132-контактного корпуса матричного типа отведены для питания, земли или внутренних связей. Важно отметить, что, хотя контроллер изготавливается по КМОП-технологии, из-за наличия многих линий управления и высокой тактовой частоты его рабочий ток составляет около 300 мА. Вследствие этого мощность рассеяния кристалла находится на уровне приблизительно 1,5 Вт.

Контроллер кэш-памяти µPD71641 в 132-контактном керамическом корпусе с матричным расположением выводов продается за 125 долл. при заказах партиями по 100 шт. В небольших количествах контроллер поставляется сразу по получении заказа. Обращаться следует по адресу:

NEC Electronics Inc., 401 Ellis St.,
 Mountain View, CA 94039

Выходные данные:

Журнал "Электроника" том 61, No.21 (800), 1988г - пер. с англ. М.: Мир, 1988, стр.21

Electronic Design No.18 August 11, 1988 VNU Business Publication Inc.

Dave Bursky. Cache controller ties into any microprocessor system, ED, 1988, No.18, pp.75—78.

Раздел: МЕТОДЫ, СХЕМЫ, АППАРАТУРА

Тема:     Контроллеры





Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:44 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/HardWare/NEC/D19890216Elc008.shtml