Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2001 №4

Микросхемы многопортовой памяти фирмы IDT

Мамаева Татьяна


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

Структура двухпортового статического ОЗУ (рис. 1) содержит единый массив памяти (COMMON CENTRAL MEMORY) и два независимых порта (PORT_L и PORT_R) для обращения к этому массиву.

Рис. 1. Структура двухпортового статического ОЗУ
Рис. 1. Структура двухпортового статического ОЗУ

В отличие от статического элемента обычного ОЗУ (рис. 2, а) элементарная ячейка двухпортовой памяти реализована на шести транзисторах (рис. 2, б). Основу ячейки составляет статический триггер, выполненный на транзисторах Q1, Q2. Ключевыми транзисторами Q3, Q4 триггер соединен с разрядными шинами P_L, P'_L, а ключевыми транзисторами Q5, Q6 — с разрядными шинами P_R, P'_R. Информация подводится к триггеру при записи и отводится при считывании по этим шинам. Ключевые транзисторы затворами соединены с шинами выбора строки ROW SELECT_L и ROW SELECT_R соответственно. При возбуждении строки одним из сигналов выборки ключевые транзисторы открываются и подключают входы/выходы триггера к разрядным шинам.

1. Классификация многопортовой памяти производства IDT Inc

Среди микросхем многопортовой памяти, производимых IDT Inc., насчитывается более 100 разновидностей. По способу исполнения внешнего интерфейса среди них можно выделить следующие семейства: Asynchronous Dual-Port RAMs, Synchronous Dual-Port RAMs, Bank-Switchable Dual-Port RAMs, FourPort RAMs и SARAMs. В табл. 1 приведены краткие характеристики каждого семейства.

Таблица 1
Семейства Краткие характеристики
Asynchronous
IDT7132(M) IDT7133(M)
IDT7142(S) IDT7143(S)
IDT7134 IDT7024
IDT7005 IDT7025
IDT7006 IDT7026
IDT7007 IDT7027
IDT7008 IDT7028
  • 3,3 В и 5 В, х8, х9, х16, х18, х36, tA = 10 нc, до 4 Мбит;
  • два независимых интерфейса для доступа к ячейкам памяти;
  • встроенная арбитражная логика ;
  • семафоры для синхронизации параллельного доступа к банкам данных в массиве памяти;
  • линии формирования запросов на прерывания;
  • система «ведущий/ведомый» для наращивания разрядности
  • Synchronous
    IDT709079 IDT70V3379
    IDT709089 IDT70V3389
    IDT709099 IDT70V3399
    IDT70914 IDT70V3319
    IDT709189 IDT70V3569
    IDT709199 IDT70V3579
  • 3,3 В и 5 В, х8, х9, х16, х18, х36, до 166 МГц, до 4 Мбит;
  • два независимых интерфейса для доступа к ячейкам памяти;
  • раздельные сигналы синхронизации для каждого из портов;
  • внутренние счетчики для выполнения операций пакетного считывания и записи данных
  • FourPort
    IDT7052 IDT7054
  • 5 В, х8, tA = 20 нc, до 32 Кбит;
  • четыре независимых интерфейса для доступа к ячейкам памяти;
  • встроенная арбитражная логика;
  • Bank-Switchable
    IDT70V7399 IDT707278
    IDT70V7319 IDT707288
  • 3,3 В и 5В, х16, х18, х36, до 166 МГц, до 9 Мбит;
  • два независимых интерфейса для доступа к банкам памяти
  • SARAM
    IDT70824 IDT70825
  • 5 В, х16, tA = 20 нc, до 128 Кбит;
  • два независимых интерфейса для доступа к ячейкам памяти: синхронный интерфейс c последовательным доступом (FIFO) и асинхронный интерфейс с произвольным доступом (SRAM)
  • Рис. 2. Статический элемент обычного (а)
    Рис. 2. Статический элемент обычного (а)
    Рис. 2. Статический элемент двухпортового (б) ОЗУ
    Рис. 2. Статический элемент двухпортового (б) ОЗУ

    2. Принцип работы асинхронного двухпортового ОЗУ

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

    • запись через порт L — запись через порт R;
    • запись через порт L — чтение через порт R.

    При выполнении операции «запись через порт L — запись через порт R» состояние ячейки памяти будет оставаться неопределенным до тех пор, пока одно из активных устройств не завершит обращение к ней и не закончатся переходные процессы. В этом случае триггер (рис. 2, б) примет устойчивое состояние, определенное «опоздавшим» устройством. При строго одновременном обращении триггер может принять любое состояние. При выполнении операции «запись через порт L — чтение через порт R» неопределенность существует только в отношении считываемых данных. С одинаковой вероятностью может быть считано как предыдущее значение ячейки памяти, так и вновь записанное в процессе текущего цикла обращения к памяти. Архитектура двухпортовой памяти предусматривает несколько способов разрешения таких конфликтных ситуаций: с помощью арбитражной логики, семафоров или запросов на прерывания.

    Арбитражная логика. Арбитр двухпортового ОЗУ устраняет конфликты следующим образом. Сигналы адресных линий портов ADDRESS_L и ADDRESS_R поступают с двух направлений, и если их значения совпадают, то арбитр посылает одному из активных устройств сигнал BUSY' («запрет доступа»). Этот сигнал поступает в опоздавшее к моменту арбитража активное устройство, а при строго одновременных обращениях — в устройство, выбранное случайным образом. Сигнал BUSY' удерживается все время, пока не закончится операция обращения к памяти. Дополнительно с сигналом BUSY' внутри кристалла памяти формируется сигнал INTERNAL WRITE INHIBIT («блокировка записи»). При выполнении операции типа «чтение через порт R — чтение через порт L» арбитр также формирует сигналы занятости, но блокирование сигналов чтения не производится, и информация считывается одновременно через оба порта. Если адреса запрашиваемых ячеек разные, то доступ к содержимому ячейки памяти также производится одновременно через оба порта, так как в этом случае конфликты не возникают. Арбитр содержит элементы задержки DELAY, схему сравнения адресных линий ADD_COMP, логические элементы три И-НЕ, соединенные по схеме триггера, логические элементы для формирования сигналов занятости (рис. 3). Сигналы CE_L = 0 и CE_R = 0 вызывают формирование сигналов BUSY_L' = 1 и BUSY_R' = 1, что соответствует отсутствию запрета доступа к ОЗУ со стороны обоих активных устройств.

    Рис. 3. Схема арбитражной логики
    Рис. 3. Схема арбитражной логики

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

    • активное устройство формирует запрос на обращение к банку памяти путем записи «0» в соответствующую ячейку, используемую как семафор;
    • активное устройство считывает состояние семафора, сравнивает полученный код с нулевым кодом и, если банк занят (код ненулевой), переходит в состояние ожидания;
    • если банк свободен, активное устройство получает доступ к его содержимому;
    • активное устройство заканчивает обмен и освобождает занимаемый банк памяти путем записи «1» в соответствующий семафор.
    /p>

    Семафорная логика содержит два триггера-защелки и логические элементы два И-НЕ, соединенные по схеме триггера для формирования сигналов занятости банка GRANT' (рис. 4).

    Рис. 4. Схема формирования сигналов занятости банка памяти
    Рис. 4. Схема формирования сигналов занятости банка памяти

    Прерывания. Интерфейс системы прерываний асинхронных двухпортовых ОЗУ содержит буфер сообщений и логику формирования запросов на прерывания INTERRUPT TO L(R) SIDE (рис. 5). Например, запрос на прерывание INTERRUPT TO R SIDE формируется в случае записи данных через порт L в ячейку памяти с адресом 1FFFh («буфер сообщений»). Считывание содержимого этой ячейки памяти через порт R приведет к автоматическому снятию этого запроса. По аналогии, при записи данных через порт R в ячейку памяти с адресом 1FFEh внутрисхемной логикой формируется запрос на прерывания INTERRUPT TO L SIDE. Ячейки, используемые в качестве буферов сообщений, входят в рабочее пространство памяти. В тех случаях, когда обслуживание по прерываниям не требуется, они используются как ячейки общего назначения.

    Рис. 5. Схема формирования сигналов запросов на прерывания
    Рис. 5. Схема формирования сигналов запросов на прерывания

    Система ведущий/ведомый. Наращивание информационной емкости двухпортовых ОЗУ достигается путем соединения всех одноименных выводов микросхем, кроме CE' («выбор кристалла»). Сигнал CE' обеспечивает обращение только к одному устройству в модуле памяти в каждый момент времени. Выводы сигналов занятости в этом случае соединяются по схеме «монтажное ИЛИ».

    Рис. 6. Наращивание разрядности двухпортовых ОЗУ
    Рис. 6. Наращивание разрядности двухпортовых ОЗУ

    Наращивание разрядности шин данных (рис. 6) осуществляется путем соединения всех одноименных входов микросхем, кроме информационных, и характеризуется одной особенностью: c целью предотвращения тупиковых ситуаций (одновременная выдача сигналов занятости для обоих портов) используется система «ведущий/ведомый», предусматривающая применение микросхем двухпортовых статических ОЗУ с различной реализацией арбитражной логики. Первый тип арбитражной логики носит название «MASTER» и обеспечивает возможность работы микросхем памяти в режимах «обычный» или «ведущий» (формирует сигналы BUSY'_L, BUSY'_R). Второй тип носит название «SLAVE» и обеспечивает возможность работы только в режиме «ведомый» (принимает сигналы занятости, сформированные ведущим устройством). В качестве примеров «MASTER/SLAVE» устройств можно привести следующие: IDT7130(M)/ IDT7140(S), IDT7132(M)/ IDT7142(S), IDT7133(M)/ IDT7143(S).

    Дополнительные функции. Большинство микросхем двухпортовой памяти поддерживает организацию обмена данными между шинами с разным форматом слова. Для этого в составе памяти предусмотрена возможность независимого обращения к байтам в слове данных. Требуемая разрядность шины данных каждого порта задается аппаратно с помощью специальных управляющих выводов. В качестве примера рассмотрим, как реализована эта функция в микросхеме IDT70V657S 32Kx36 DUAL-PORT RAM. Под управлением сигналов BE3', BE2', BE1' и BE0' задается следующий порядок доступа к данным в памяти:

    • BE3' = 1, BE2' = 1, BE1' = 1 и BE0' = 0 — разрешение доступа к байту 0;
    • BE3' = 1, BE2' = 1, BE1' = 0 и BE0' = 1 — разрешение доступа к байту 1;
    • BE3' = 1, BE2' = 0, BE1' = 1 и BE0' = 1 — разрешение доступа к байту 2;
    • BE3' = 1, BE2' = 1, BE1' = 0 и BE0' = 1 — разрешение доступа к байту 3;
    • BE3' = 1, BE2' = 1, BE1' = 0 и BE0' = 0 — разрешение доступа к двум младшим байтам;
    • BE3' = 0, BE2' = 0, BE1' = 1 и BE0' = 1 — разрешение доступа к двум старшим байтам;
    • BE3' = 0, BE2' = 0, BE1' = 0 и BE0' = 0 — разрешение доступа ко всему слову.

    Подводя итог, назовем основные области применения микросхем многопортовой памяти — это сетевые устройства с разделяемыми ресурсами и многопроцессорные устройства обработки данных. В качестве примеров можно привести коммутаторы и маршрутизаторы ATM и Ethernet, базовые станции, устройства промышленной автоматики на базе DSP.

    В следующем номере журнала мы продолжим рассмотрение классов многопортовой памяти производства корпорации IDT, описав структуру и принцип работы устройств Synchronous Dual-Port RAMs, Bank-Switchable Dual-Port RAMs и SARAMs.

    Скачать статью в формате PDF  Скачать статью Компоненты и технологии PDF

     


    Другие статьи по данной теме:

    Сообщить об ошибке