stringtranslate.com

Масштабируемый когерентный интерфейс

Масштабируемый когерентный интерфейс или Scalable Coherent Interconnect ( SCI ) — это стандарт высокоскоростного соединения для многопроцессорной обработки общей памяти и передачи сообщений. Целью было хорошее масштабирование, обеспечение общесистемной согласованности памяти и простой интерфейс; т.е. стандарт для замены существующих шин в многопроцессорных системах шинами, не имеющими присущих ему ограничений масштабируемости и производительности.

Стандарт IEEE Std 1596-1992, стандарт IEEE для масштабируемого когерентного интерфейса (SCI), был одобрен советом по стандартизации IEEE 19 марта 1992 года. [1] Он использовался в течение 1990-х годов, но так и не получил широкого распространения и был заменен другие системы начала 2000-х годов.

История

Вскоре после выхода в 1987 году проекта Futurebus (IEEE 896) Fastbus (IEEE 960) некоторые инженеры предсказывали , что к моменту его выхода в начале 1990-х годов он уже будет слишком медленным для рынка высокопроизводительных вычислений . В ответ в ноябре 1987 года была сформирована исследовательская группа Superbus. В июле 1988 года была выделена еще одна рабочая группа ассоциации стандартов Института инженеров по электротехнике и электронике (IEEE), чтобы сформировать стандарт, ориентированный на этот рынок. [2] По сути, это было подмножество функций Futurebus, которые можно было легко реализовать на высокой скорости, наряду с небольшими дополнениями, упрощающими подключение к другим системам, таким как VMEbus . Большинство разработчиков имели опыт работы с высокоскоростными компьютерными шинами . Среди представителей компаний компьютерной индустрии и исследовательского сообщества были Amdahl, Apple Computer, BB&N , Hewlett-Packard , CERN, Dolphin Server Technology, Cray Research , Sequent, AT&T, Digital Equipment Corporation, McDonnell Douglas, National Semiconductor, Стэнфордский центр линейных ускорителей, Tektronix, Texas Instruments, Unisys, Университет Осло, Университет Висконсина .

Первоначальной целью был единый стандарт для всех шин компьютера. [3] Вскоре рабочей группе пришла в голову идея использовать связь «точка-точка» в виде вставных колец. Это позволило избежать сосредоточенной емкости, ограниченной физической длины/скорости света и тупиковых отражений, а также обеспечить возможность параллельных транзакций. Использование вставных колец приписывают Манолису Катевенису, который предложил его на одном из первых заседаний рабочей группы. Рабочую группу по разработке стандарта возглавляли Дэвид Б. Густавсон (председатель) и Дэвид В. Джеймс (заместитель председателя). [4]

Дэвид В. Джеймс внес основной вклад в написание спецификаций, включая исполняемый C-код. [ нужна цитация ] Группа Штейна Йессинга в Университете Осло использовала формальные методы для проверки протокола когерентности, а Dolphin Server Technology реализовала микросхему контроллера узла, включающую логику когерентности кэша.

Блок-схема одного примера

Различные версии и производные SCI были реализованы такими компаниями, как Dolphin Interconnect Solutions , Convex, Data General AViiON (с использованием чипов контроллера кэша и контроллера каналов от Dolphin), Sequent и Cray Research. Компания Dolphin Interconnect Solutions реализовала производную версию SCI, связанную с PCI и PCI-Express, которая обеспечивает некогерентный доступ к общей памяти. Эта реализация использовалась Sun Microsystems для своих высокопроизводительных кластеров, Thales Group и некоторых других, включая объемные приложения для передачи сообщений в кластерах HPC и медицинских изображений. SCI часто использовался для реализации неоднородных архитектур доступа к памяти. Она также использовалась Sequent Computer Systems в качестве шины памяти процессора в своих системах NUMA-Q. Numascale разработала производную версию для связи с когерентным HyperTransport .

Стандарт

Стандарт определил два уровня интерфейса:

Эта структура позволила легко адаптировать новые разработки в области технологий физического интерфейса без каких-либо изменений на логическом уровне.

Масштабируемость для больших систем достигается за счет модели согласованности кэша на основе распределенных каталогов . (Другие популярные модели согласованности кэша основаны на общесистемном перехвате (отслеживании) транзакций памяти – схема, которая не очень масштабируема.) В SCI каждый узел содержит каталог с указателем на следующий узел в связанном списке, который разделяет определенную строку кэша.

SCI определяет 64-битное плоское адресное пространство (16 эксабайт), где 16 бит используются для идентификации узла (65 536 узлов) и 48 бит для адреса внутри узла (256 терабайт). Узел может содержать множество процессоров и/или памяти. Стандарт SCI определяет сеть с коммутацией пакетов .

Топологии

SCI можно использовать для построения систем с различными типами топологий коммутации от централизованной до полностью распределенной коммутации:

Самый распространенный способ описания этих многомерных топологий — это k-арные n-кубы (или торы). В стандартной спецификации SCI в качестве примеров упоминается несколько таких топологий.

Двумерный тор представляет собой комбинацию колец в двух измерениях. Переключение между двумя измерениями требует небольшой коммутационной способности в узле. Это можно расширить до трех или более измерений. Концепция складных колец также может быть применена к топологиям Тора, чтобы избежать длинных соединительных сегментов.

Транзакции

SCI отправляет информацию пакетами. Каждый пакет состоит из непрерывной последовательности 16-битных символов. Символ сопровождается битом флага. Переход бита флага с 0 на 1 указывает на начало пакета. Переход от 1 к 0 происходит за 1 (для эхо) или 4 символа до конца пакета. Пакет содержит заголовок с адресной командой и информацией о состоянии, полезную нагрузку (от 0 до необязательной длины данных) и символ проверки CRC. Первый символ в заголовке пакета содержит адрес узла назначения. Если адрес находится за пределами домена, обслуживаемого принимающим узлом, пакет передается на выход через обходной FIFO. В другом случае пакет подается в очередь приема и может быть передан в кольцо в другом измерении. Все пакеты помечаются, когда они проходят скруббер (узел устанавливается как скруббер при инициализации кольца). Пакеты без действительного адреса назначения будут удаляться при повторном прохождении скруббера, чтобы избежать заполнения кольца пакетами, которые в противном случае циркулировали бы бесконечно.

Согласованность кэша

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

Вместо этого SCI использует протокол согласованности кэша на основе распределенных каталогов со связанным списком узлов, содержащих процессоры, которые совместно используют определенную строку кэша. Каждый узел содержит каталог основной памяти узла с тегом для каждой строки памяти (той же длины строки, что и строка кэша). Тег памяти содержит указатель на заголовок связанного списка и код состояния строки (три состояния — исходное, свежее, ушедшее). С каждым узлом также связан кэш для хранения удаленных данных с каталогом, содержащим прямые и обратные указатели на узлы в связанном списке, разделяющие строку кэша. Тег для кэша имеет семь состояний (недействительный, только свежий, заголовок свежий, только грязный, заголовок грязный, средний действительный, хвостовой действительный).

Распределенный каталог является масштабируемым. Накладные расходы на согласованность кэша на основе каталогов представляют собой постоянный процент от памяти и кэша узла. Этот процент составляет порядка 4% для памяти и 7% для кэша.

Наследие

SCI — это стандарт для соединения различных ресурсов в многопроцессорной компьютерной системе, и он не так широко известен публике, как, например, семейство Ethernet для соединения различных систем. Разные поставщики систем реализовали разные варианты SCI для своей внутренней системной инфраструктуры. Эти различные реализации взаимодействуют с очень сложными механизмами процессоров и систем памяти, и каждый поставщик должен сохранять некоторую степень совместимости как для аппаратного, так и для программного обеспечения.

Густавсон возглавлял группу под названием «Ассоциация пользователей, разработчиков и производителей масштабируемого когерентного интерфейса и последовательного экспресса» и поддерживал веб-сайт, посвященный этой технологии, начиная с 1996 года. [3] В течение 1999 года была проведена серия семинаров. После первого издания 1992 года [ 1] последующие проекты определили общие форматы данных в 1993 году, [5] версию, использующую низковольтную дифференциальную сигнализацию в 1996 году, [6] и интерфейс памяти, известный как Ramlink, позже в 1996 году. [7] В январе 1998 года была создана SLDRAM . Корпорация была создана для получения патентов на попытку определить новый интерфейс памяти, который был связан с другой рабочей группой под названием SerialExpress или Local Area Memory Port. [8] [9] Однако к началу 1999 года от нового стандарта памяти отказались. [10]

В 1999 году серия статей была опубликована в виде книги по SCI. [11] Обновленная спецификация была опубликована в июле 2000 года Международной электротехнической комиссией (IEC) Международной организации по стандартизации (ISO) как ISO/IEC 13961. [12]

Смотрите также

Рекомендации

  1. ^ ab Стандарт IEEE для масштабируемого когерентного интерфейса (SCI). Совет по стандартам IEEE. 1992. ISBN 9780738129501.
  2. ^ Дэвид Б. Густавсон (сентябрь 1991 г.). «Масштабируемый когерентный интерфейс и связанные с ним проекты стандартов» (PDF) . Публикация SLAC 5656 . Стэнфордский центр линейных ускорителей . Проверено 31 августа 2013 г.
  3. ^ ab «Масштабируемый когерентный интерфейс и Ассоциация пользователей, разработчиков и производителей Serial Express». Веб-сайт группы . Проверено 31 августа 2013 г.
  4. ^ «РГ 1596 — Рабочая группа по масштабируемому когерентному интерфейсу» . Сайт рабочей группы . Проверено 31 августа 2013 г.
  5. ^ Стандарт IEEE для форматов общих данных, оптимизированных для процессоров масштабируемого когерентного интерфейса (SCI). Совет по стандартам IEEE. 25 апреля 1994 г. ISBN. 9780738112091.
  6. ^ Стандарт IEEE для низковольтных дифференциальных сигналов (LVDS) для масштабируемого когерентного интерфейса (SCI). Совет по стандартам IEEE. 31 июля 1996 г. ISBN. 9780738131368.
  7. ^ Стандарт EEE для высокоскоростного интерфейса памяти на основе технологии сигнализации масштабируемого когерентного интерфейса (SCI) (RamLink). Совет по стандартам IEEE. 16 сентября 1996 г. ISBN. 9780738131375.
  8. ^ Дэвид Б. Густавсон (10 февраля 1999 г.). «Организация альтернатив».
  9. ^ Дэвид В. Джеймс; Дэвид Б. Густавсон; Б. Флейшер (май – июнь 1998 г.). «SerialExpress — высокопроизводительное межсетевое соединение для рабочих станций». IEEE микро . 18 (3). ИИЭР: 54–65. дои : 10.1109/40.683105.
  10. Дэвид Ламмерс (19 февраля 1999 г.). «ISSCC: группа SLDRAM преобразуется в DDR II». ЭЭ Таймс .
  11. ^ Герман Хелльвагнер; Александр Райнефельд, ред. (1999). SCI: Масштабируемый когерентный интерфейс: архитектура и программное обеспечение для высокопроизводительных вычислительных кластеров . Конспекты лекций по информатике. Спрингер. ISBN 978-3540666967.
  12. ^ Масштабируемый когерентный интерфейс (SCI) (PDF) . Международный стандарт ISO/IEC 13961 IEEE Std 1596. 10 июля 2000 г.