Сайт о телевидении

Сайт о телевидении

» » Hd 6850 сравнение. Тестовая конфигурация, инструментарий и методика тестирования. Залог высокой производительности

Hd 6850 сравнение. Тестовая конфигурация, инструментарий и методика тестирования. Залог высокой производительности

Любое устройство (компьютер, сервер, принтер, накопитель и т. д.), имеющее возможность обмениваться данными с использованием технологии Fibre Channel, называется N_порт (Node port) или просто узел. В настоящее время межузловой обмен происходит по полнодуплексным последовательным соединениям со скоростью 1.0625 GBit/s.

Множество связанных между собой N_портов Fibre Channel образуют среду распространения сигнала. Во избежание смешения с устоявшимися понятиями разработчики данной технологии решили не использовать для ее обозначения слово «network», и предпочли ввести новый термин «fabric». Учитывая, что нам до сих пор ни разу не попадались удачные примеры перевода этого слова на русский язык, предлагаем хотя бы в рамках данной статьи называть такую среду распространения «решеткой».

Понятие решетки аппаратно независимо и не рассматривает топологию физических межсоединений между ее отдельными узлами. Единственное ограничение заключается в максимально допустимом размере адресного пространства 2 24 , т. е. более 16 миллионов узлов (эквивалентно сети класса A).

Архитектурная модель Fibre Channel в деталях описывает параметры соединений и протоколы обмена между отдельными узлами решетки. Примерно как и в случае сетевых протоколов, эта модель может быть представлена в виде многослойного стека функциональных уровней, хотя и без непосредственного соответствия с OSI. Пять функциональных уровней архитектуры Fibre Channel определяют физический интерфейс, схему кодировки, сигнальный протокол, общие процедуры и связь с приложениями. Нумерация идет от самого низкого аппаратного уровня FC-0, отвечающего за параметры физического соединения до верхнего программного FC-4, взаимодействующего с приложениями более высокого уровня.

Среда передачи и физические интерфейсы (fc-0)

На данном уровне задаются физические параметры полнодуплексного последовательного соединения между портами. В качестве среды передачи может быть использована витая пара, коаксиальный или твинаксиальный кабели, а также многомодовое или одномодовое волокно. Источниками света могут служить как мощные длинноволновые OFC лазеры, так и менее дорогие non-OFC. Для снижения задержек и уменьшения электрических и температурных перепадов по соединению идет постоянная и равномерная передача и прием сигнала. Кроме того, в целях предотвращения низкочастотных токов структура передаваемого сигнала должна быть сбалансирована постоянным чередованием 0 и 1 вне зависимости от присутствия в нем полезных данных, что упрощает точное распознавание сигнала и снижает количество ошибок. Упрощенно говоря, в FC-0 определяется способ передачи полученных с более высокого уровня бинарных последовательностей. Нелишне также отметить, что именно данный уровень позволяет изменять скорости передачи от 250 Mbit/s до 8 Gbit/s, не затрагивая остальные более высокие уровни.

Протокол передачи (fc-1)

Протокол передачи определяет, как «вплести» данные в нижележащие сигналы FC-0, как установить соединения между портами и как, в случае необходимости, исправить обнаруженную ошибку. На этом уровне с помощью кодировки IBM 8b/10b 8-битовые порции данных преобразуются в 10-битовые сбалансированные по количеству 0 и 1 последовательности, что требуется для корректной работы FC-0. Для этого каждый планируемый к передаче байт (любой из 256 символов ASCII) преобразуется в четыре возможных комбинации для 10-битового представления, после чего выбираются две наиболее сбалансированные. Здесь действуют два простых правила - не менее 4 нулей и единиц в 10-битовой последовательности и не более четырех 0 или 1 подряд. В итоге, из двух предложенных ему на выбор 10-битовых последовательностей уровень FC-0 передает ту, первый символ которой отличается от последнего символа предыдущей. Таким образом, кодировка 8b/10b выполняет функцию НЧ фильтра, не пропуская низкочастотную составляющую и существенно облегчая работу приемника.

На этом уровне также используется символ K28.5 (только не спрашивайте нас, что означает K28.5, лучше сразу звоните на IBM:-). Эта 10-битовая последовательность не может быть получена из символов ASCII путем преобразования 8b/10b, поэтому может смело применяться в качестве служебной. Разумеется, для соответствия объявленным правилам передачи и этот символ существует как в виде позитива (1100000101), так и негатива (0011111010). В соответствии с теми же правилами последовательность из пяти 0 или 1 не может встретиться при передаче данных и однозначно определяется, как служебный сигнал.

В результате применяемых на уровнях FC-0/1 алгоритмов вероятность возникновения ошибки на переданный бит (BER - Bit Error Rate) составляет ничтожную величину 10 -12 , что на три порядка лучше, чем для применяемых в SCSI или Ethernet асинхронных способов передачи.

Сигнальный протокол (fc-2)

Вот мы и дошли до самого интересного, составляющего основное ядро Fibre Channel. Сигнальный протокол определяет иерархическую структуру посылок для установления связей между работающими через FC-AL приложениями. Основными объектами этого уровня являются слова (words), кадры (frames), пакеты (sequences) и обмены (exchanges).

Базовым элементом и минимальной единицей передачи является слово, но пересылка данных между узлами FC-AL требует помещения слов в некий контейнер. Ничего удивительного, что такой контейнер назван кадром.

Один или несколько последовательных кадров, несущих помещенную в них связанную информацию в виде файла данных, графики, программы или же IP-пакета, называются пакетом, который представляет из себя однонаправленную посылку от передающего узла принимающему.

Набор пакетов, которыми обмениваются узлы для обслуживания работающего через них приложения, называется обменом. Обмен, понимаемый как диалог между двумя приложениями высокого уровня, является двунаправленным, и после своего начала может оставаться открытым сколь угодно долго. Такая синтаксическая конструкция является отличительной чертой Fibre Channel и позволяет ему поддерживать огромное количество протоколов одновременно.
Здесь нужно обратить внимание, что сама решетка Fiber Channel умеет работает исключительно с кадрами, доставляя их между отправляющим и получающим узлами. Она даже не подозревает о более сложных синтаксических конструкциях в виде пакетов или обменов, которые создаются и разбираются самими узлами.

Слова (words)

Передача в Fibre Channel идет строго 4-байтовыми словами, т. е. 40-битовыми последовательностями на уровне FC-0. Слова идут слитно и постоянно вне зависимости от наличия информации для передачи, когда передающий порт генерирует слова-пустышки (IDLE) в соответствии с требованиями уровня FC-0.

Для пересылки данных все байты представлены в виде символов ASCI. Если первый байт слова, вернее даже, его первые 10 бит на уровне FC-1 замещаются на служебный символ K28.5, то оно распознается, как служебное (ordered set) и, в зависимости от содержимого трех остальных байт, приобретает различную смысловую нагрузку. Примерами служебных слов могут быть IDLE (постоянная передача, когда все равно больше нечем заняться), ARB (запрос на арбитраж в петле), SOF (начало кадра) и EOF (конец кадра).

Кадры (frames)

Служат «транспортными контейнерами» для пересылок между отдельными узлами решетки. Начало кадра определяется служебным словом SOF (Start Of Frame), структуру которого мы рассматривали ранее. Непосредственно за SOF располагаются шесть слов заголовка и от 0 до 528 смысловых слов. Кадр завершается контрольным словом CRC (Cyclic Redundancy Check) и EOF (End Of Frame). Другими словами, размер каждого кадра может варьировать от 9 до 537 слов, что позволяет его гибко подстраивать под объем передаваемой информации.

Следующее сразу за SOF первое слово заголовка (header word 0) содержит адрес маршрутизации по решетке Fibre Channel. Остальные пять слов заголовка содержат уникальные идентификаторы последовательностей (header word 1), обменов (header word 2), определяют номер кадра в этих конструкциях (header word 3), относительное смещение в оперативной памяти (header word 4) и тип сообщений (header word 5) - SCSI, IP, AV, VI etc.

Далее размещаются смысловые слова, ради которых все это и затевалось. Их количество в кадре может варьировать от 0 до 528 и определяется передающим портом с учетом собственных возможностей и возможностей остальных портов, информацию о чем он получает во время процедуры подключения (log-in).

Служебное слово CRC является всегда предпоследним в кадре и служит для проверки правильности передачи заголовка и смысловых слов на основе содержащихся в нем контрольных 4 байт (32 бит).

Как уже все догадались, кадр закрывается с помощью слова EOF. И только после получения EOF порт опознает предыдущее слово, как CRC, ведь в нем все 4 байта являются контрольными и служебному символу K28.5 попросту не хватило места.

После столь детального разбора структуры кадра пришло время рассказать про одну маленькую деталь, о которой обычно умалчивают разработчики Fibre Channel в публикациях, рассчитанных на массовую аудиторию потенциальных пользователей. Ее некоторая скандальность заключается в том, что после завершения кадра N_порт обязан также передать не меньше 6 слов IDLE.

В основе требования передачи шести слов IDLE между кадрами заложена та же самая идея, что и при выборе кодировки 8b/10b - пожертвовать некоторой частью полосы канала для получения простого, недорогого и вместе с тем надежного механизма передачи. Кодировка 8b/10b «съедает» 20% пропускной способности канала в обмен на простой и надежный механизм распознавания слов. Шесть слов IDLE между кадрами делают примерно то же самое для обработки самих кадров. Дело в том, что в процессе передвижения кадра по решетке все встречающиеся ему на пути узлы имеют слегка отличающиеся собственные опорные частоты. В итоге, узел с несколько меньшей собственной частотой посылает кадры несколько медленнее, чем принимает, поэтому во избежание «наползания» кадров друг на друга он просто время от времени выкидывает слова IDLE между ними. C той же целью более «быстрый» узел также время от времени может вставлять недостающие IDLE, чтобы «не наступать на пятки» своему соседу.

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

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

Если вспомнить о 20% избыточности 8b/10b, то в данном случае 1 Gbit/s = 100 MBytes/s. А чтобы иметь возможность обеспечить поток пользовательских данных 100 MBytes/s с учетом избыточности CRC, адресных заголовков и других служебных слов, сейчас на уровне FC-0 используется скорость аппаратной передачи 1.0625 Gbit/s.

Таким образом, учитывая полнодуплексную реализацию Fibre Channel, можно говорить о представлении пользователю 200 MBytes/s в случае симметичности потоков данных, т. е. в контексте технологии FC-AL 1.0625 Gbit/s = 200 MBytes/s.

Пакеты (sequences)

Синтаксическая конструкция пакетов FC-AL определяется как серия из одного или нескольких кадров, несущих отдельные порции единого блока информации. К примеру, SCSI команда вполне помещается в один кадр и, в данном случае, рассматривается, как пакет. Совершенно такая же ситуация и с 2 GB блоком данных, только пакет в этом случае будет состоять из 960 млн кадров. Блок данных всегда передается последовательно, что определяется протоколами более высокого уровня. Тем не менее, если при движении по решетке некоторые кадры будут задержаны, принимающий порт способен корректно собрать принятые кадры в блок данных на основании содержащихся в заголовке SEQ_ID (идентификатор последовательности) и SEQ_CNT (порядковый номер кадра в последовательности).

Обмены (exchanges)

Каждое взаимодействие между приложениями через Fibre Channel происходит в контексте обмена. Каждый обмен имеет инициатора (originator) и ответчика (responder). Для начала обмена инциатор посылает первый кадр первого пакета обмена ответчику. Содержимое кадра может составлять, к примеру, SCSI команду. В заголовке этого кадра инициатор присваивает значение OX_ID (exchange originator identification). После этого все кадры данного обмена будут возвращаться от ответчика с этим же OX_ID, что позволит инициатору получать контекстную информацию о приложениях и протоколах более высокого уровня из собственной таблицы соответствий. Одновременно с этим ответчик приваивает собственное значение RX_ID (exchange responder identification) в первом кадре своего первого пакета в пределах данного обмена. После получения этого кадра инициатором все дальнейшие кадры содержат уникальные идентификаторы сторон в контексте данного обмена, что позволяет точно установить принадлежность кадров при нескольких одновременных обменах. К примеру, кадры пакетов обмена SCSI командами могут приходить вперемешку с кадрами пакетов обмена IP, но порт сможет рассортировать их «на лету», отделив мух от котлет. Когда обмен завершен, соответствующие значения OX_ID и RX_ID освобождаются для использования в будущих обменах. Таким образом N_порт FC-AL может рассматриваться, как многопротокольный маршрутизатор.

Каждый порт способен начать и поддерживать до 64 тыс. конкурентных обменов. Одновременно с этим он способен отвечать еще на 64 тыс. обменов с их поддержкой.

Оригинальность синтаксической структуры Fiber Channel, поддерживаемая словами 1-5 заголовка, разительно отличает его от остальных протоколов передачи. Во-первых, порт имеет возможность конкурентной поддержки различных протоколов высокого уровня. Во-вторых, управление типами передачи выполняется на аппаратном уровне с минимальными микросекундными задержками. И, самое главное, все это происходит без участия системной шины, центрального процессора и операционной системы, т. е. не создавая потенциально узкие места.

Общие процедуры (fc-3)

Этот уровень зарезервирован под описание общих процедур при наличии двух или более N_портов в хосте. Одним из примеров такой процедуры является образование «группы захвата» (hunt group), когда два или более N_портов объединяются под единым адресом, что позволяет увеличить пропускную способность канала от порта до Fibre Channel решетки.

Отображение протоколов (fc-4)

Как и все предыдущие уровни, FC-4 также является чисто аппаратным и отвечает за преобразование различных протоколов в сигнальный протокол FC-AL и обратно. На основании заголовка пришедшего кадра содержащиеся в нем данные преобразуются и помещаются в область оперативной памяти, выделенную для приложения. Понятно, что вряд-ли эта функция может быть реализована программно при скоростях обмена 200 Mbytes/s, вследствие чего на этом уровне хранится аппаратный набор логических матриц (profiles), определяющих бинарное соответствие FC-AL и наследуемых протоколов высокого уровня.

По нашему глубокому убеждению, именно качество стандартизации логических матриц данного уровня будет определять коммерческий успех технологии Fibre Channel в целом. Дело в том, что преобразование одного протокола в другой может производиться различными методами и на первых порах производителям не всегда удавалось договориться, чей же метод эффективнее и быстрее, особенно когда каждый из них уже потратил деньги на разработку собственного набора микросхем. Тем не менее, на сегодняшний день методы преобразования SCSI (для жестких дисков) и IP уже определены и приняты в виде стандарта. В ближайшее время будет завершена работа по принятию таких же единых методов преобразования для недисковых устройств SCSI, а также FDDI, Token Ring, ATM, AV, VI, IBM SBCCS, HIPPI и многих других. После того, как метод преобразования конкретного протокола принимается, его алгоритм становится доступным для любого производителя, что делает бессмысленным использование собственного метода и гарантирует совместимость различных устройств.

1. В много линейной реализации канала связи скремблеры, связанные с каждой линией должны работать согласованно, поддерживая одно и то же значение одновременно во всех LFSR

2. Скремблирование применяется к ‘D’ знакам, составляющим пакеты TLP(DLL) и DLLP, включая последовательность логического ожидания (00h).

3. ‘D’ знаки в командных наборах TS1 и TS2 не скремблируются.

4. ‘K’ знаки и знаки в командных наборах, таких как TS1, TS2, SKIP, FTS и электрическое ожидание не скремблируются. Эти знаки минуют логику скремблирования.

5. Знаки, относящиеся к последовательностям согласования не скремблируются.

6. Когда знак COM выходит из скремблера (СОМ не скремблируется) он инициализирует LFSR. Инициализированное значение 16-тибитного LFSR равно FFFFh. Таким же образом, на стороне приемника, когда знак СОМ входит в дескремблер, он инициализируется.

7. С одним исключением LFSR последовательно продвигается восемь раз для передачи каждого знака (D или K знака). LFSR не продвигается на SKP знаках, принадлежащих командным набором SKIP. Причина этого состоит в том, что приемник входящего пакета может добавлять или удалять SKP символы, чтобы произвести подстройку тактового генератора. Изменение числа знаков в приемнике по сравнению с переданным числом знаков приведет к потере синхронизации между значениями LFSR приемника и передатчика.

После скремблирования 8-битные знаки (8b знаки) кодируются в 10-битные символы (10b символы) с помощью логики 8b/10b кодера . При этом, конечно, происходит 25%-ная потеря реальной скорости передачи из-за расширения каждого 8b знака в 10b символ. Знак определяется как 8-битный не кодированный байт из пакета. Знак поставляется в 8b/10b кодер вместе с сигналом, показывающим является ли он знаком данных (D) или управляющим знаком (К).

Вопрос 28

Основная задача 8b/10b кодирования знаков пакета состоит в том, чтобы создать достаточную плотность переходов 1-в-0 и 0-в-1 в битовом потоке символов так, чтобы приемник смог выделить в потоке символов синхросигнал с помощью контура фазовой автоподстройки частоты (PLL) и тем самым решить задачу битовой синхронизации потока символов на входе приемника и задачу кадровой синхронизации входящих пакетов.



Ниже перечисляются преимущества кодирования 8b/10b:

Встроенный синхросигнал;- баланс постоянного тока;

Кодирование специальных управляющих знаков;- обнаружение ошибок.

Недостаток8b/10b кодирования состоит в том, что из-за расширения каждого 8-ми битного знака в 10-ти битный символ перед передачей, реальная скорость передачи уменьшается на 25% .

Свойства 10-тибитных (10b) символов - При передаче 10-ти битных символов, среднее число передаваемых единиц за период времени равно числу передаваемых нулей, вне зависимости от того, какой 8-ми битный знак передается, то есть передача символов сбалансирована по постоянному току.

Битовый поток 10- битного символа никогда не содержит более пяти последовательных единиц или нулей;- Каждый 10-ти битный символ содержит четыре 0 и шесть 1 (не обязательно смежных) или шесть 0 и четыре 1 (не обязательно смежных) или пять 0 и пять 1(не обязательно смежных).

Каждый 10-ти битный символ разделен на два блока: первый длиной шесть бит и второй длиной четыре бита. В 6-ти битном блоке не более четырех 1 или четырех 0. В 4-х битном блоке не более трех 1 или трех 0.

Любой символ, не обладающий вышеописанными свойствами, считается ошибочным и преемник сообщает об ошибке.

Понятие неравенство символов относится к разности между числом единиц и нулей в 10-тибитном символе.

Когда в символе число нулей больше, чем число единиц – это отрицательное неравенство (например, 0101000101b). Когда в символе число единиц больше, чем число нулей – это положительное неравенство (например, 1001101110b). Когда в символе одинаковое число единиц и нулей – это нейтральное неравенство (например, 0110100101b).

Каждый 10-ти битный символ содержит одно из следующих количеств нулей и единиц (не обязательно последовательных):

Четыре 0 и шесть 1 (+ неравенство)- шесть 0 и четыре 1 (- неравенство); - пять 0 и пять 1 (нейтральное неравенство)

Кодер на выходе выдает эквивалентный 10-ти битный символ вместе с текущей проверкой четности (Current Running Disparity, CRD), или текущим неравенством символа, которое отражает баланс общего числа единиц и нулей, переданных по линии с момента ее инициализации, и имеет следующие характеристики:

Текущее состояние CRD отражает баланс единиц и нулей, переданных с момента инициализации линии;

Начальное состояние CRD (перед передачей данных) может быть положительным (+) или отрицательным (–);

Текущее состояние CRD может быть положительным (+), если передано больше единиц, чем нулей, или отрицательным (-), если передано больше нулей, чем единиц;

Каждый знак конвертируется по таблице, учитывая текущее состояние CRD;

После того, как закодирован последний символ, CRD остается таким же, если сгенерированный 10-ти битный символ имеет нейтральное неравенство (н), или меняется на противоположную полярность, если сгенерированный символ имеет положительное (+) или отрицательное (-) неравенство .

Процедура кодирования 8b/10b

Кодирование производится путем просмотра двух пар таблиц (одна пара для кодирования знаков данных, другая пара для кодирования знаков команд), рис.2.5.15. Выбор пары таблиц определяется значением D/K знака. Как для знаков данных, так и для знаков команд биты кодируемого знака ABCDE, поступающие на вход кодера из скремблера, с учетом значения CRD, вычисленного по результатам кодирования предшествующего знака, определяют по соответствующей таблице значения битов abcdei части символа (таблица 5b/6b кодирования). Как для знаков данных, так и для знаков команд биты кодируемого знака FGH, поступающие на вход кодера из скремблера, с учетом значения CRD, вычисленного по результатам кодирования предшествующей части abcdei знака, определяют по соответствующей таблице значения битов fghj части символа (таблица 3b/4b кодирования). Совокупность битов abcdeifghj образует символ знака D/K ABCDEFGH. По совокупности битов abcdeifghj также вычисляется текущее неравенство символа, которое в свою очередь определяет значение CRD для кодирования следующего знака.

Вопрос 29

В отличие от интерфейсов с топологией связей типа общая магистраль, таких как PCI и PCI-X, где информационный поток виден каждому устройству, и где задачами маршрутизации “озабочены” главным образом мосты, устройства интерфейса PCI-XP, для которых характерна древовидная топология связей (топология связей состоит из независимых двухточечных дифференциальных линий связи, соединяющих каждое устройство с одним или несколькими соседями), вынуждены решать задачу маршрутизации .

Отметим, что только пакеты TLP используют информацию о маршрутизации, которая содержится в заголовке пакета, в то время, как пакеты DLLP и PLP образуют местный трафик связи между соседними устройствами и поэтому такие пакеты информации о маршрутизации не содержат. Поэтому говоря о маршрутизации, будем иметь в виду маршрутизацию транзакционных пакетов.

Когда пакет TLP(PL) достигает приемного устройства, последнее проверяет пакет на отсутствие ошибок в нем, а затем принимает одно из трех решений:

Принять и использовать пакет;

Переслать пакет на соответствующий выходной порт;

Не принимать пакет, поскольку устройство не является ни адресатом пакета, ни переключателем, за которым находится адресат пакета.

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

В интерфейсе PCI-XP адресация поддерживается в четырех независимых адресных пространствах: адресное пространство памяти, адресное пространство устройств ввода-вывода, адресное пространство конфигурации и адресное пространство сообщений. Доступ к этим адресным пространствам выполняется с использованием разделенных (Split) транзакционных запросов и транзакций выполнения, смотри табл.2.5.1.

Все варианты TLP, нацеленные на любое из адресных пространств, используют одну из трех возможных схем маршрутизации :

Адресная маршрутизация,

ID маршрутизация (определяемая индентификационным номером ID)

Неявная маршрутизация.

Адресная маршрутизация предполагает, что в заголовке пакета TLP указывается конкретный адрес, а каждое устройство PCI-XP системы “знает“ свой массив адресного пространства и “ разбирает ” пакеты из общего трафика, адресованные только ему. ID маршрутизация использует номер шины, номер устройства и номер функции для адресации кокретного устройства PCI-XP системы.Неявная маршрутизация основывается на информации, закодированной в заголовке пакета, указывающей на предназначенность пакета устройству с известным положением (например, корневому комплексу, следующему приемнику).