Шины ieee 1394. FireWire или чем ещё помогла цифровому миру компания Apple

Что такое IEEE 1394?

Интерфейс IEEE 1394

Немного истории. 10 лет назад, на выставке IFA’95 в Берлине фирма Sony продемонстрировала первые промышленные модели цифровых видеокамер формата mini-DV. Это были камеры DCR-XV700 и DCR-XV1000 с выходным цифровым интерфейсом IEEE 1394 (FireWire) и новым для видеотехники 4-контактным разъемом DV Out. Уже в следующем году цифровые видеокамеры стали выпускаться и другими фирмами, в частности, появилась модель Panasonic NV-DS1, оснащенная двунаправленным интерфейсом DV In/Out и способная к цифровой записи как собственных съемок, так и аналоговых видеосигналов, поступающих на собственные разъемы Video и S-Video для композитного и раздельных видеосигналов.

С тех пор популярность интерфейса IEEE 1394, известного также как FireWire и i-Link, стала стремительно возрастать. Он стал обязательным для любой цифровой видеокамеры и поддерживается в большинстве современных ноутбуков.

А начиналось все гораздо раньше, когда Комитет по стандартам для микрокомпьютеров Института инженеров по электротехнике и электронике (IEEE) решил объединить имеющиеся наработки по последовательной шине и создать быстродействующий универсальный интерфейс, обеспечивающий работу с мультимедийной информацией, накопителями, формирователями, визуализаторами и синтезаторами данных. Ведущим разработчиком такого интерфейса была фирма Apple, которая решила применять его в своих компьютерах под названием FireWire. В процессе выполнения этих работ организовался консорциум с участием компаний Compaq, Matsushita, Philips, Sony, Toshiba и др., в результате чего в конце 1995 года IEEE принял соответствующий стандарт под порядковым номером 1394. Любопытно, что в цифровых камерах Sony интерфейс IEEE 1394 появился под названием i-Link раньше этого события.

Что такое IEEE 1394? Это стандартная технология шины последовательной передачи данных для соединения компьютера с периферией. При этом обеспечиваются следующие преимущества:

· высокая скорость (100, 200, или 400 Мб/с для IEEE 1394a; 800 Мб/с для IEEE 1394b, в перспективе 1,6 и 3,2 Гб/с);

· поддержка “горячего” (Fire) подключения и отключения. Автоматическое распознавание присоединения и отсоединения аппаратуры и возможности делать это при работающем компьютере, т.е. даже тогда, когда шина работает в полном режиме;

· возможности общения аппаратуры с IEEE 1394 In/ Out между собой без компьютера. Широко применяется, например, для редактирования при прямой перезаписи информации с одной видеокамеры на другую;

· простота конфигурирования и широта возможностей . Шина позволяет подключать до 63 устройств без применения концентраторов. На одном устройстве может быть до 27 разъемов для подключения к компьютеру и другим устройствам. Шина поддерживает конфигурирование Plug&Play;

· использование кабелей малого диаметра и миниатюрных разъемов (4 или 6 контактов). Интересно, что разъем был заимствован у компьютерной игры Nintendo Gameboy, так как показал высокую износостойкость в условиях беспощадной эксплуатации;

· пакетная передача данных. Мультимедийные данные, например видеофильм, разбиваются на пакеты с интервалами между ними. Число пакетов определяется тем, какой длины фильм посылается, а в интервалах посылается служебная информация, например, «Стоп» или «Пуск».

· поддержка асинхронной и изохронной передачи данных. При асинхронной передаче получение каждого пакета данных проверяется, и, если он не получен или принят с повреждением, передача повторяется и ошибки исправляются;

· питание внешних устройств через кабель IEEE 1394.

Составляющие IEEE 1394. Функциональная схема интерфейса IEEE 1394 показана на рисунке 1. Здесь внизу находится физический уровень, на котором происходит перевод стыкуемых мультимедийных сигналов в компьютерные форматы или наоборот, с формированием, кодированием/декодированием и арбитражем, определяющим, в каком порядке устройства IEEE 1394, составляющие сеть, могут работать.

Рис. 1 Функциональная схема интерфейса IEEE 1394

На уровне обрабатываются и формируются пакеты данных, организуется их прием и передача. Этих уровней достаточно для изохронной передачи данных, когда контроль за передаваемой и получаемой информацией не ведется. При асинхронной передаче данных такой контроль производится на программном уровне обработке, где данные проверяются и отправляются потребителю, если ошибок не обнаружено. В противном случае процедуры на нижнем уровне повторяются до устранения ошибок. Физический уровень может содержать несколько разъемов FireWire, причем два любых устройства IEEE 1394 могут соединяться между собой “точка в точку”(point-to-point).

Как работает IEEE 1394? Процесс инициализации интерфейса начинается со сброса шины. При этом выясняется, один или несколько портов в системе имеется, и к каким из них подключены родительские и дочерние устройства. По этим данным строится дерево и определяется корневой узел сети.

Рис. 2. Дерево узлов IEEE 1394


Каждое из IEEE 1394-устройств получает идентификационный номер и данные, на каких скоростях могут работать его прямые соседи. Используется 64-битная прямая адресация (48 бит на узел и 16 для идентификации шины), позволяющая реализовать иерархическую адресацию для 63 узлов на 1023 шинах. По завершении инициализации начинает работать арбитраж, следящий за тем, чтобы работающие устройства друг другу не мешали. Поэтому устройство, готовое начать передачу, сначала посылает сигнал запроса своему родительскому устройству в дереве. Это устройство, получив запрос, формирует сигал запрета своим дочерним устройствам и передает запрос дальше, своему родительскому устройству и так далее, пока запрос не дойдет до корневого устройства. В свою очередь корневое устройство формирует сигнал, разрешающий передачу устройству, выигравшему арбитраж по времени, т.е. тому, запрос от которого получен первым. При этом устройство, проигравшее арбитраж, ждет, пока шина не освободится.

По сигналу разрешения начинается работа на уровне компоновки, где формируются пакеты данных по 512 байт с интервалами между ними и определяется их адресация. 160 бит в каждом пакете занимает заголовок, куда входит информация об отправителе и получателе пакетов, а также о циклическом коде CRC исправления ошибок. Передача данных начинается по получению ответа о готовности запрашиваемого устройства к приему информации.

В течении времени до 0,75 мс после отправки каждого пакета данных ожидается получение подтверждения об их получении в виде байтовой посылки. Далее следует интервал > 1 мс, разделяющий пакеты, и т. д.

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

Изохронная передача данных применяется, например, в мультимедийных приложениях, когда приоритетом является минимум задержки на получение информации по сравнению с возможной потерей или ошибками какой-то ее части. В изохронном режиме данные передаются пакетами длительностью по 125 мс, т.е. чем выше скорость, тем больше данных может быть передано за это время. Пакеты следуют друг за другом, не ожидая байтов подтверждения получения. Для идентификации пакетов изохронной и асинхронной передачи промежуток между ними в первом случае короче, чем во втором. Это позволяет комбинировать и различать изохронные и асинхронные данные в каждом сеансе. На изохронные данные выделено до 85 % канала передачи, из которых устройство может занимать не более 65 %.

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

Кабели и разъемы. Для работы интерфейса на высоких скоростях потребовались кабели с временем распространения сигнала, не превосходящим допустимых пределов. Для IEEE 1394 это 144 нс, после чего принимается решение о недоступности адресуемого устройства. Устройство кабеля для IEEE 1394 поясняется рисунке 3.

Рис. 3. Разрез кабеля FireWire

Диаметр этого кабеля равен 6 мм, и он содержит три витые пары проводников диаметром 0,87 мм:, одна из которых типа 22 AWG предназначена для питания от 8 до 30 В внешней нагрузки до 1,5 А, а две другие - раздельно экранированные пары сигнальных проводов типа 28 AWG. Все проводники с изолирующим заполнением заключены в экранирующую фольгу и оболочку из поливинилхлорида. Таким образом, кабель имеет сложную конструкцию, и изготовить его самостоятельно вряд ли возможно.

Рис. 4. Разъемы IEEE 1394 (6 контактов)
А) блочный б) кабельный

На фотографиях разъемов IEEE 1394 (рис. 4), заимствованных у компьютерной игры Nintendo Gameboy, видно, что контакты здесь находятся в середине разъемов и по бокам защищены от доступа металлическим ободком и изолирующей прокладкой у кабельного разъема. Пара проводов, предназначенная для питания внешних устройств, например сканера, не требуется при работе с цифровыми видеокамерами, имеющими собственное питание.

Рис. 5. Кабель IEEE 1394 i-Link

Для такого применения IEEE 1394 разработаны однорядные 4-контактные разъемы и кабели, вид одного из которых, i-Link Sony, показан на фотографии (рис. 5). Длина этого кабеля 96 см.

IEEE 1394 a. Хотя шина FireWire оказалась очень удобной, работы по ее совершенствованию продолжаются. Так, 2000 году был утвержден стандарт IEEE 1394а с дополнениями, целесообразность которых выяснилась в процессе эксплуатации. В частности, введено время ожидания 1/3 секунды на сброс шины, пока не закончится переходной процесс установки надежного подсоединения или отсоединения устройства. Без этого иногда возникал не один, а целая серия сбросов шины по подключению нового устройства. Практика показала, что устройства IEEE 1394 могут быть несовместимыми, если пакеты в серии передаются с разной скоростью. По IEEE 1394а эта проблема решена добавлением сигнала скорости в каждый пакет, если скорость его передачи отличается от предыдущей. Предусмотрены также возможности программного отключения порта FireWire, включения аппаратуры и перевода ее в дежурный режим. Большое внимание разработчики уделили повышению эффективности шины за счет уменьшения общей длительности технологических промежутков, разделяющих пакеты записи. С этой целью по IEEE 1394а:

· Повторные байты подтверждения получения не ожидаются, после первого обнаружения такого байта передача продолжается без прерываний.

· Введена возможность неоднократного запроса на передачу одного устройства в одном цикле, если другим устройствам шина не нужна.

· Уменьшено время на сброс шины . По IEEE 1394 передающее устройство не обнаруживает сигнал сброса, пока не закончится передача текущего пакета данных. Поэтому сигнал сброса поддерживался в течение времени, большего, чем максимальное время передачи одного пакета. Если же сигнал сброса формируется по признаку выигрыша устройством арбитража, в этом нет необходимости, и по IEEE 1394a сброс шины выполняется по завершению передачи этого устройства.

· Предусмотрены возможности прикрепления пакетов информации к уже передающимся . За счет этого достигается экономия на времени арбитража.

IEEE 1394 b. Этот стандарт, первая версия которого принята в 2002 году, относится к последовательной шине с увеличенной до 800 Мб/с и 1,6 Гб/с пропускной способностью. В перспективе пропускная способность может возрасти и до 3,2 Гб/с. Основой интерфейса IEEE 1394b является кодирование 8В10В в соответствии с алгоритмами, применяемыми в оборудовании для гигабайтных сетей, и оптоволоконные линии связи. Введено также измерение времени отклика. Введение такого измерения позволило узнавать время поступления ответа и увеличить длину кабелей. По IEEE1394b она может достигать 100 метров, правда для этого должен применяться стеклянный оптоволоконный кабель. При использовании пластикового оптоволокна максимальная длина кабеля уменьшается до 50 метров, а пропускная способность до 200 Мб/с. Изменились и разъемы: теперь это 9-контактные двухрядные разъемы. Вид разъемов на кабельном переходнике 9↔4 контактов показан на рисунке 6.

Рис. 6. Кабельный переходник IEEE 1394

Этот переходник и ему аналогичный 9↔6 контактов обеспечивает кабельную совместимость шины IEEE 1394b с предшествующими версиями IEEE 1394. В новом стандарте предусмотрено два режима передачи данных: β-режим, когда общаются устройства, поддерживающие IEEE 1394b, и режим обратной совместимости, при котором возможно подключение к шине устройств IEEE 1394a и максимальная скорость автоматически уменьшается до 400 Мб/с.

Из других особенностей IEEE 1394b следует отметить новый способ арбитража. Если в предшествующих стандартах функцию арбитража выполняло корневое устройство, то теперь такую функцию выполняет любое устройство, постоянно посылающее сигналы запроса на передачу. Новый метод арбитража называется Bus Owner/Supervisor/Selector (BOSS). Его логическая схема показана на схеме, а принцип работы заключается в следующем.

Рис. 7. Арбитраж BOSS IEEE 1394b

Устройство, готовое к передаче данных, постоянно посылает сигналы запроса, но передача данных блокируется, пока на соответствующей шине присутствуют сигналы, передаваемые другим устройством. Как только последние прекращаются, по этой шине начинают передаваться сигналы ждущего устройства, в свою очередь блокирующего режимы передачи других устройств. Очевидно, что для работы системы арбитража BOSS шина данных должна быть двунаправленной. Поэтому такой арбитраж работает только в среде IEEE 1394b. Если в нее входит хотя бы одно другое устройство, для арбитража применяется ранее рассмотренный метод.

USB 2.0 и IEEE 1394а. Все современные компьютеры оснащены портами USB 2.0, которые являются быстродействующей версией получивших массовое распространение портов USB 1.1. Основная сфера применения USB 2.0 осталась прежней. Это подключение периферийных устройств типа мышек, цифровых фотокамер, картридеров и других устройств, не требующих гарантированно постоянной пропускной способности. USB 2.0 как и USB 1.1 использует 4-контактные разъемы, полностью совместимые между собой. Единственное отличие в подключении USB 2.0 и USB 1.1 заключается в том, что новый стандарт требует экранированных кабелей. Теоретическая скорость по USB 2.0 составляет 480 Мб/с, максимальная передаваемая мощность на питание внешних устройств - 2,5 Вт. Общение устройств стандарта USB 2.0 происходит по схеме Master/Slave, т. е. все потоки данных управляются компьютером, что замедляет работу интерфейса. Длина кабеля для соединения двух устройств по шине USB 2.0 не должна превышать 5 метров. Преимуществами USB 2.0 является большая распространенность, совместимость с USB 1.1 и дешевизна.

С продвижением USB 2.0 на рынке стали появляться устройства, например, внешние жесткие диски со сдвоенным интерфейсом или одни и те же модели с разными интерфейсами. Казалось бы, по USB 2.0 они должны работать быстрее, чем по IEEE 1394a, но на практике, при прочих равных условиях производительность по FireWire 400 получается лучше, причем почти без проблем с “горячим” подключением. Вероятно, новая версия USB будет работать стабильней, но IEEE 1394a к тому времени несколько устареет и будет заменяться на IEEE 1394b. Кроме того, архитектура USB 2.0 по гибкости несопоставима с IEEE 1394, особенно при работе с мультимедийной аппаратурой.

Таким образом, шина USB 2.0 эффективна для компьютерной периферии, низкоскоростной и со средними требованиями к пропускной способности. Она дешева и достаточно производительна для большинства задач. Шина FireWire гораздо гибче и отлично подходит для работы с мультимедиа. Цифровые видеокамеры и телевизоры, DVD-проигрыватели и игровые приставки - все это при наличии портов FireWire легко соединить между собой, причем не обязательно вокруг компьютера.

Высокопроизводительная последовательная шина (High Performance Serial Bus) IEEE 1394 — FireWire создавалась как более дешевая и удобная альтернатива параллельным шинам (SCSI) для соединения равноранговых устройств. Шина позволяет связать до 63 устройств без применения дополнительной аппаратуры (хабов). Устройства бытовой электроники — цифровые камкордеры (записывающие видеокамеры), камеры для видеоконференций, фотокамеры, приемники кабельного и спутникового телевидения, цифровые видеоплееры (CD и DVD), акустические системы, цифровые музыкальные инструменты, а также периферийные устройства компьютеров (принтеры, сканеры, устройства хранения данных) и сами компьютеры могут объединяться в единую сеть. Шина не требует управления со стороны компьютера. Шина поддерживает динамическое реконфигурирование — возможность «горячего» подключения и отключения устройств. События подключения/отключения вызывают сброс и реинициализацию: определение структуры шины (дерева), назначение физических адресов всем узлам и, если требуется, выборы мастера циклов, диспетчера изохронных ресурсов и контроллера шины. Через доли секунды после сброса все ресурсы становятся доступными для последующего использования, и каждое устройство имеет полное представление обо всех подключенных устройствах и их возможностях. Благодаря наличию линий питания, интерфейсная часть устройства может оставаться подключенной к шине даже при отключении питания функциональной части устройства.

По инициативе VESA шина позиционируется как основа «домашней сети», объединяющей всю бытовую и компьютерную технику в единый комплекс. Эта сеть является одноранговой (peer-to-peer), чем существенно отличается от USB .

Основные свойства шины FireWire перечислены далее:

Шина IEEE 1394 поддерживает два типа передач данных:

  • асинхронные передачи без каких-либо требований к скорости и задержке доставки. Целостность данных контролируется CRC-кодом. По адресации различают две разновидности:
  1. направленная асинхронная передача адресуется конкретному узлу, гарантированную доставку обеспечивает механизм квитирования и повторов;
  2. широковещательная асинхронная передача адресуется всем узлам и выполняется без гарантии доставки (квитирование и повторы не применяются).
  • Изохронные передачи с гарантированной пропускной способностью. Целостность данных контролируется CRC-кодом, гарантии доставки нет — квитирование и повторы не применяются.

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

Изохронные передачи представляют собой потоки пакетов данных. Эти передачи ведутся широковещательно и адресуются через номер канала, передаваемый в каждом пакете. На шине может быть организовано до 64 изохронных каналов, передачи всех каналов «слышат» все устройства шины, но из всех пакетов принимают только данные интересующих их каналов. По шине могут передаваться и асинхронные потоки, для которых, в отличие от изохронных, не предоставляется гарантированная полоса пропускания.

Арбитраж определяет, какому из узлов, запрашивающих передачу, предоставляется это право. Арбитраж обеспечивает гарантированную пропускную способность для изохронных передач и справедливое предоставление доступа узлам для асинхронных транзакций. Арбитраж на шине IEEE 1394 выполняется перед посылкой любого пакета запроса (синхронного или изохронного) или ответа. Исключением является соединенная (concatenated) форма выполнения транзакций. Пакеты квитирования посылаются без арбитража — право на их передачу разыгрывать не надо, поскольку квитанцию посылает только тот единственный узел, к которому адресовался подтверждаемый пакет запроса или ответа.

Арбитражем занимается физический уровень каждого узла шины. Арбитраж выполняется распределенно иерархически: им занимаются все узлы, «верховным» арбитром является корневой узел (root node), автоматически выбираемый на этапе конфигурирования шины.

Физический уровень (PHY) предоставляет канальному уровню (LINK) следующие сервисы арбитража, перечисленные в порядке нарастания приоритетности:

  • справедливый арбитраж (fair arbitration service), используемый для передачи обычных асинхронных пакетов;
  • приоритетный арбитраж (priority arbitration service), используемый для передачи пакетов начала цикла и приоритетных асинхронных пакетов;
  • немедленный арбитраж (immediate arbitration service), используемый для передачи пакетов квитирования;
  • изохронный арбитраж (isochronous arbitration service), используемый для передачи изохронных пакетов.

Приоритет в арбитраже на шине IEEE 1394 определяется длительностью зазора арбитража (arbitration gap) — временем, в течение которого узел наблюдает покой шины перед началом передачи запроса арбитража. Чем меньше этот зазор, тем больше шансов у узла получить право на передачу. Исходная схема арбитража 1394 усовершенствовалась дважды: в 1394a были введены механизмы ускоренного арбитража, а в 1394b с его дуплексными соединениями был введен новый механизм — BOSS-арбитраж. Все усовершенствования направлены на снижение непродуктивных затрат времени.

Если на шине используются изохронные передачи, то все транзакции организуются в последовательность циклов — интервалов времени с номинальной длительностью 125 мкс. Начало каждого цикла отмечается широковещательным пакетом начала цикла (Cycle Start). Эти пакеты посылает узел, являющийся мастером циклов. Право на передачу этого пакета мастер получает через арбитраж, используя высокий приоритет. Организация циклов представлена на рисунке, где изображена работа двух изохронных каналов (Ch#J и Ch#K) и передача асинхронных пакетов A и B. После пакета начала цикла каждый узел, которому выделены изохронные каналы, имеет право передать по одному пакету для каждого канала (до прихода следующего пакета начала цикла). Для изохронных передач используется короткий зазор арбитража, так что асинхронные транзакции, использующие более длинный зазор, в изохронную часть цикла вклиниться не могут. После того как иссякнут изохронные пакеты данного цикла, выполняются асинхронные передачи, у которых для арбитража используются более длинные зазоры. Когда наступает пора посылки следующего пакета начала цикла, мастер цикла, дождавшись освобождения шины, снова получает право доступа (пользуясь своим приоритетом, обусловленным его положением в корне дерева) и посылает следующий пакет начала цикла. Таким образом, длительность цикла может отклоняться от номинального значения 125 мкс. Отклонения длительности цикла от номинального не страшны, поскольку пакет начала цикла несет значение системного времени точно на момент фактической передачи этого пакета.

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

Конфигурирование шины IEEE 1394 выполняется в различных ситуациях:

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

Конфигурирование состоит из трех последовательных этапов.

  1. Сброс (Bus Reset), с момента которого прекращается передача полезного трафика.
  2. Идентификация дерева (Tree Identification), во время которой узлы выстраиваются в иерархическую структуру.
  3. Самоидентификация узлов (Self Identification), во время которой узлы присваивают себе уникальные физические идентификаторы.

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

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

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

Шина IEEE 1394, обеспечивая равноранговые взаимодействия между узлами, нуждается в централизованном управлении некоторыми функциями. Управляющие функции могут брать на себя разные узлы шины; в зависимости от наличия реализации тех или иных функций различают следующие варианты шины IEEE 1394:

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

Мастер циклов

Мастер циклов (Cycle Master) отвечает за регулярную передачу пакетов начала цикла. Для этого он должен быть устройством с поддержкой изохронных обменов, иметь регистры CYCLE_TIME и BUS_TIME. В информационном блоке BUS_INFO_BLOCK его памяти конфигурации должен быть установлен бит cmc (Cycle Master Capable) — признак способности к исполнению этой роли. Текущим мастером циклов является узел, у которого в регистре состояния (STATE) установлен бит cmstr (Cycle Master). Все узлы, кроме корневого, во время идентификации дерева (после сброса) должны обнулить у себя этот бит; корневой узел должен сохранять значение, которое было до сброса.

Если выбранный корневой узел не способен быть мастером циклов, а требуются изохронные передачи, то из узлов, способных быть мастером (судя по биту cmc), выбирается новый кандидат на роль корня. Для этого посылается широковещательный PHY-пакет конфигурирования с идентификатором нового кандидата и установленным битом R. Этот узел установит у себя бит RHB, а остальные его сбросят, что и обеспечит выбор данного узла новым корнем во время идентификации, вызванной посылкой этого пакета.

Мастер циклов является источником системного времени; для этого он имеет регистры CYCLE_TIME и BUS_TIME. Текущее значение регистра CYCLE_TIME передается мастером циклов в пакетах начала цикла. Сброс на шине (в любой форме) на значения этих регистров не влияет.

Регистр CYCLE_TIME (32 бита, рис. а) состоит из трех полей, соответствующих значениям трех счетчиков, соединенных каскадно:

  • cycle_offset — 12-битный счетчик по модулю 3072 (максимальное значение 3071, после него обнуляется), считающий импульсы с частотой 24,576 МГц. Период этого счетчика соответствует номинальной длительности цикла — 125 мкс;
  • cycle_count — 13-битный счетчик по модулю 8000, считающий циклы. Период этого счетчика — 1 с;
  • second_count — 7-битный счетчик, считающий секунды; период счета — 128 с.

Регистр BUS_TIME (32 бита, рис. б) содержит значение системного времени в секундах. Его младшие 7 бит (second_count_lo) отображают поле second_count предыдущего регистра. Остальные 25 бит (second_count_hi) отсчитывают 128-секундные интервалы. Период счетчика составляет 232 = 4 294 967 296 с (около 136 лет).

Внешний вид современного персонального компьютера радует глаз. Серенькие китайские «тазики» давно канули в Лету. Фирмы-производители корпусов соревнуются, предлагая покупателю ультрасовременный дизайн на любой вкус, но если посмотреть на заднюю стенку «системника», создается впечатление, что за последние 10-15 лет ничего не изменилось: та же путаница кабелей, множество разъемов самых разных форм и размеров…

В декабре 1995 года был утверждён стандарт под названием IEEE-1394 (IEEE – Institute of Electrical and Electronic Engineers, 1394 – порядковый номер стандарта). Новый стандарт сулил фантастические по тем временам скорости обмена и удобство подключения оборудования.

Такое положение дел – следствие идеологической ошибки, допущенной на самых ранних этапах развития персоналок. Тогда никому и в голову не приходила идея о необходимости создания единого программно-аппаратного интерфейса для связи ПК с периферийным оборудованием. Для клавиатуры использовали разъем DIN, для принтера – LPT, для мыши – COM, причем разъемы COM существовали в двух конструктивах. Потом для подключения мыши и клавиатуры стали использовать разъемы mini-DIN (PS/2), свои разъемы устанавливались на звуковых картах для джойстиков и на SCSI-контроллерах. Словом, подключение периферийного оборудования к ПК стало для пользователей причиной изрядной головной боли, а для производителей периферии сложившаяся ситуация грозила падением объема продаж и снижением доходов. Со всей остротой встал вопрос о создании единого программно-аппаратного интерфейса для подключения к ПК любого периферийного оборудования.

В середине 90-х годов фирма Intel объявила о создании USB – Universal Serial Bus и начала активно продвигать свою разработку на рынок, однако первой была все-таки не она.

Для цифровых видеокамер IEEE-1394 оказался единственно возможным внешним интерфейсом.

Еще в 1986 году Комитет по стандартам микрокомпьютеров поставил перед своими специалистами задачу по созданию универсального I/O (Input/Output) внешнего интерфейса, пригодного как для работы с мультимедиа, так и для работы с накопителями данных и другой периферией вроде принтеров и сканеров. В результате почти десятилетней работы в декабре 1995 года был утверждён стандарт под названием IEEE-1394 (IEEE – Institute of Electrical and Electronic Engineers, 1394 – порядковый номер стандарта). Новый стандарт сулил фантастические по тем временам скорости обмена и удобство подключения оборудования. Пожалуй, главный вклад в разработку нового стандарта внесла американская фирма Apple, которая традиционно считается законодателем мод в области ПК. Вскоре Apple зарегистрировала товарный знак «FireWire» и начала использовать новый стандарт в своих компьютерах. В апреле 1997 года поддержка FireWire впервые появилась в составе операционной системы Mac OS, а массовое появление периферии с интерфейсом FireWire началось в 1999 году, когда он стал стандартным компонентом всех профессиональных компьютеров Power Macintosh G3 и G4, а с осени – потребительских систем iMac DV.

Распространению FireWire в значительной степени способствовало то обстоятельство, что для цифровых видеокамер IEEE-1394 оказался единственно возможным внешним интерфейсом, и было принято решение использовать IEEE-1394 как стандартный интерфейс для них. Первыми цифровыми камерами с FireWire были модели DCR-VX1000 и DCR-VX700 фирмы Sony, но вскоре, оценив преимущества нового интерфейса, его стали использовать и другие производители. В настоящее время все современные цифровые видеокамеры имеют интерфейс IEEE-1394.

Что представляет собой FireWire

FireWire – это по сути высокоскоростная последовательная шина, обеспечивающая «горячее» подключение до 63 устройств с полной поддержкой принципа Plug-and-Play. Передача данных осуществляется по тонкому и гибкому кабелю длиной до 4,5 метров со скоростью 50 МБ/с (400 Мбит/с).


Интерфейс IEEE-1394 условно разбит на три уровня: физический уровень, уровень компоновки данных и уровень обработки.

Главными особенностями IEEE-1394 являются:

  • Высокая скорость передачи данных;
  • Поддержка «горячего» («fire», то есть без отключения питания и/или перезагрузки операционной системы) подключения периферийного оборудования;
  • Возможность питания подключаемых устройств от блока питания компьютера через IEEE-1394 кабель;
  • Возможность строить сети различной конфигурации из самых разных устройств. Это означает, что оборудование с интерфейсом IEEE-1394 можно соединять не только с ПК, но и друг с другом, причем конфигурирование сети выполняется автоматически;
  • Использование последовательной шины вместо параллельного интерфейса. Благодаря этому стало возможным использовать тонкие (диаметром всего лишь 6 мм) кабели и миниатюрные разъемы;
  • Поддержка асинхронной и синхронной передачи данных. Синхронная передача данных, как правило, применяется в мультимедийных приложениях, где временные задержки недопустимы, а асинхронная – при передаче файлов, где потеря даже одного пакета является критичной.

Интерфейс IEEE-1394 условно разбит на три уровня: физический уровень, уровень компоновки данных и уровень обработки (см. рис 1).


Рис. 1 Функциональная схема интерфейса IEEE 1394

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

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

Физический уровень и уровень компоновки данных являются аппаратными (Hardware) и представляют собой специализированные микросхемы.

На уровне обработки происходит проверка наличия и целостности полученных пакетов. Если какой-либо пакет не принят или принят с ошибками, осуществляется возврат на физический уровень и повторное получение данных.

Если к ПК подключено более одного FireWire-устройства, автоматически создается логическая сеть

Если к ПК подключено более одного FireWire-устройства, автоматически создается логическая сеть по следующему алгоритму.

При подключении или отключении какого-либо FireWire-устройства происходит инициализация сети, которая начинается со сброса шины. Затем по определенному алгоритму строится логическое дерево и определяется корневой узел сети. Одно из устройств будет являться родительским, а остальные – дочерними, причем для каждого порта строится свое дерево. На этапе самоидентификации каждое устройство получает свой идентификационный номер (ID) в пределах дерева. Одновременно определяются скорости передачи информации, которые может обеспечить каждое устройство.


Рис. 2. Дерево узлов IEEE 1394

После окончания инициализации сеть переходит в рабочий режим. Арбитраж работы в сети осуществляет родительское устройство. Дочернее устройство, пославшее запрос на канал первым, выигрывает арбитраж и получает доступ к каналу. Одновременно остальным дочерним устройствам доступ к нему запрещается. Для того чтобы какое-нибудь одно устройство монопольно не захватило канал, введены специальные интервалы равнодоступности (fairness interval). В течение одного интервала каждое устройство получает однократную возможность передачи данных. После передачи порции данных доступ устройства к шине блокируется. Чтобы вновь получить доступ к шине, ему необходимо дождаться конца интервала равнодоступности и начала следующего цикла.

По сигналу разрешения начинается работа на уровне компоновки, где формируются пакеты данных по 512 байт с интервалами между ними, и определяется их адресация. 160 бит в каждом пакете занимает заголовок, куда входит информация об отправителе и получателе пакетов, а также о циклическом коде CRC исправления ошибок. Передача данных начинается по получению ответа о готовности запрашиваемого устройства к приему информации.

В течение времени до 0,75 мс после отправки каждого пакета данных ожидается получение подтверждения об их получении в виде байтовой посылки. Далее следует интервал > 1 мс, разделяющий пакеты, и т. д.

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

Синхронная передача данных применяется, как уже говорилось, в мультимедийных приложениях, когда приоритетом является минимум задержки на получение информации по сравнению с возможной потерей или ошибками какой-то ее части. В этом режиме данные передаются пакетами длительностью по 125 мс, т.е. чем выше скорость, тем больше данных может быть передано за это время. Пакеты следуют друг за другом, не ожидая байтов подтверждения получения. Для идентификации пакетов синхронной и асинхронной передачи промежуток между ними в первом случае короче, чем во втором. Это позволяет комбинировать и различать синхронные и асинхронные данные в каждом сеансе. На синхронные данные выделено до 85% канала передачи, из которых устройство может занимать не более 65%.

Интерфейсом IEEE1394 допускается одновременная передача информации на разных скоростях от разных устройств, причем способности их общения на какой-либо из скоростей определяются автоматически.

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

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

Кабели и разъемы

Поскольку скорость передачи информации весьма высока, для IEEE-1394 используют специальные кабели (см. рис. 3). Диаметр такого кабеля равен 6 мм, он содержит три витые пары проводников диаметром 0,87 мм, одна из которых типа 22 AWG предназначена для питания напряжением от 8 до 30 В и током до 1,5 А внешней нагрузки, а две другие – раздельно экранированные пары сигнальных проводов типа 28 AWG. Все шесть жил кабеля закрыты общим плетеным металлическим экраном и защищены изоляцией из ПВХ.


Рис. 3. Разрез кабеля FireWire

После долгих поисков удалось подобрать прочный и компактный разъем, который можно подключать вслепую. Его взяли от игровой приставки Nintendo GameBoy. По конструкции разъем напоминает отечественный разъем типа РША: силовые и сигнальные контакты размещены по центру и защищены прочным прямоугольным пластмассовым кожухом, два угла которого скошены, чтобы исключить неправильное подключение (рис. 4, 5).

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

Для устройств, не использующих питание по кабелю FireWire, в частности для цифровых видеокамер, предусмотрели облегченный четырехжильный кабель с миниатюрным разъемом. Длина такого кабеля равна 96 см. Как правило, материнские платы компьютеров, поддерживающие FireWire, имеют в комплекте планку с обоими типами разъемов (рис. 6).


Рис. 6. Кабель IEEE 1394 i-Link

IEEE 1394a

При переносе FireWire с «Маков» на платформу РС появились неприятные проблемы, связанные с совместимостью «железа». Поэтому в 2000 году была принята новая редакция стандарта – IEEE 1394a. Стандарт стал более четким, в него были внесены усовершенствования, улучшившие производительность. В частности, было введено время ожидания 1/3 секунды на сброс шины до окончания переходного процесса подключения или отключения устройств. Без этого иногда возникал не один, а целая серия сбросов шины по подключению нового устройства.

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

Практика показала, что устройства IEEE 1394 могут оказаться несовместимыми, если пакеты в серии передаются с разной скоростью. В IEEE 1394а эта проблема решена путем добавления сигнала скорости в каждый пакет, если скорость его передачи отличается от предыдущей. Предусмотрены также возможности программного отключения порта FireWire, включения аппаратуры и перевода ее в дежурный режим. Большое внимание разработчики уделили повышению эффективности шины за счет уменьшения общей длительности технологических промежутков, разделяющих пакеты записи. С этой целью по IEEE 1394а:

  • Повторные байты подтверждения получения не ожидаются, после первого обнаружения такого байта передача продолжается без остановок;
  • Введена возможность неоднократного запроса на передачу от одного устройства в одном цикле, если другим устройствам шина не нужна;
  • Уменьшено время на сброс шины. В IEEE 1394 передающее устройство не обнаруживает сигнал сброса, пока не закончится передача текущего пакета данных. Поэтому сигнал сброса поддерживался в течение времени, большего, чем максимальное время передачи одного пакета. Если же сигнал сброса формируется по признаку выигрыша устройством арбитража, в этом нет необходимости, и в IEEE 1394a сброс шины выполняется по завершению передачи этого устройства;
  • Предусмотрены возможности прикрепления пакетов информации к уже передающимся пакетам, за счет чего достигается экономия на времени арбитража.

IEEE 1394b

Эта версия стандарта, принятая в 2002 году, рассчитана на последовательную шину с увеличенной до 800 Мб/с и 1,6 Гб/с пропускной способностью. В перспективе пропускная способность может возрасти и до 3,2 Гб/с. Основой интерфейса IEEE 1394b является кодирование 8В10В в соответствии с алгоритмами, применяемыми в оборудовании для гигабайтных сетей и в оптоволоконных линиях связи. Введено измерение времени отклика, что позволило работать со стеклянными оптоволоконными кабелями длиной до 100 метров. При использовании пластикового оптоволокна максимальная длина кабеля уменьшается до 50 метров, а пропускная способность до 200 Мб/с. Изменились и разъемы: теперь это 9-контактные двухрядные разъемы. Вид разъемов на кабельном переходнике 9↔4 контактов показан на рисунке 7.


Рис. 7. Кабельный переходник IEEE 1394

Этот переходник и ему аналогичный 9↔6 контактов обеспечивает кабельную совместимость шины IEEE 1394b с предшествующими версиями IEEE 1394. В новом стандарте предусмотрено два режима передачи данных: β‑режим, когда общаются устройства, поддерживающие IEEE 1394b, и режим обратной совместимости, при котором возможно подключение к шине устройств IEEE 1394a и максимальная скорость автоматически уменьшается до 400 Мб/с.

Из других особенностей IEEE 1394b следует отметить новый способ арбитража. Если в предшествующих стандартах функцию арбитража выполняло корневое устройство, то теперь такую функцию выполняет любое устройство, постоянно посылающее сигналы запроса на передачу. Новый метод арбитража называется Bus Owner/Supervisor/Selector (BOSS). Его логическая схема показана на рисунке 8, а принцип работы заключается в следующем.


Рис. 8. Арбитраж BOSS IEEE 1394b

В новом стандарте предусмотрено два режима передачи данных: β-режим, когда общаются устройства, поддерживающие IEEE 1394b, и режим обратной совместимости, при котором возможно подключение к шине устройств IEEE 1394a и максимальная скорость автоматически уменьшается до 400 Мб/с.

Устройство, готовое к передаче данных, постоянно посылает сигналы запроса, но передача данных блокируется, пока на соответствующей шине присутствуют сигналы, передаваемые другим устройством. Как только последние прекращаются, по этой шине начинают передаваться сигналы ждущего устройства, в свою очередь блокирующего режимы передачи других устройств. Очевидно, что для работы системы арбитража BOSS шина данных должна быть двунаправленной. Поэтому такой арбитраж работает только в среде IEEE 1394b. Если в нее входит хотя бы одно другое устройство, для арбитража применяется ранее рассмотренный метод.

USB 2.0 и IEEE 1394а

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

Все современные компьютеры оснащены портами USB 2.0, которые являются быстродействующей версией получивших массовое распространение портов USB 1.1. Основная сфера применения USB 2.0 осталась прежней. Это подключение периферийных устройств типа мышей, цифровых фотокамер, картридеров и других устройств, не требующих гарантированно постоянной пропускной способности. USB 2.0, как и USB 1.1, использует 4-х контактные разъемы, полностью совместимые между собой. Единственное отличие в подключении USB 2.0 и USB 1.1 заключается в том, что новый стандарт требует экранированных кабелей. Теоретическая скорость по USB 2.0 составляет 480 Мб/с, максимальная передаваемая мощность на питание внешних устройств – 2,5 Вт. Общение устройств стандарта USB 2.0 происходит по схеме Master/Slave, т. е. все потоки данных управляются компьютером, что замедляет работу интерфейса. Длина кабеля для соединения двух устройств по шине USB 2.0 не должна превышать 5 метров. Преимуществами USB 2.0 является большая распространенность, совместимость с USB 1.1 и дешевизна.

Теоретическая скорость по USB 2.0 составляет 480 Мб/с, максимальная передаваемая мощность на питание внешних устройств – 2,5 Вт.


Преимуществами USB 2.0 является большая распространенность, совместимость с USB 1.1 и дешевизна.

С продвижением USB 2.0 на рынке стали появляться устройства, например, внешние жесткие диски со сдвоенным интерфейсом или одни и те же модели с разными интерфейсами. Казалось бы, по USB 2.0 они должны работать быстрее, чем по IEEE 1394a, но на практике, при прочих равных условиях производительность по FireWire 400 получается лучше, причем почти без проблем с «горячим» подключением. Вероятно, новая версия USB будет работать стабильней, но и IEEE 1394a к тому времени несколько устареет и будет заменяться на IEEE 1394b. Кроме того, архитектура USB 2.0 по гибкости несопоставима с IEEE 1394, особенно при работе с мультимедийной аппаратурой.

Таким образом, шина USB 2.0 эффективна для компьютерной периферии, низкоскоростной и со средними требованиями к пропускной способности. Она дешева и достаточно производительна для большинства задач. Шина FireWire гораздо гибче и отлично подходит для работы с мультимедиа. Цифровые видеокамеры и телевизоры, DVD-проигрыватели и игровые приставки – все это при наличии портов FireWire легко соединить между собой, причем не обязательно вокруг компьютера.


Следовало бы начать с перечисления правил, которым нужно следовать при захвате видео с цифровой видеокамеры. Но все гораздо проще! Правило одно — захват производится только по интерфейсу IEEE 1394 (он же FireWire , он же iLink ). За путаницу в названиях можно поблагодарить пиар-технологов компаний, пытавшихся в свое время перетянуть одеяло на себя, «застолбив» за фирмой свое, собственное имя стандарта. К великой радости новичков, данный интерфейс все чаще называют с виду безликим IEEE 1394 , и все реже мелькают сбивающие с толку «фирменные» наименования.

Возможно, кто-то спросит: а как же порт USB? С какой целью производитель добавил в камеру еще и этот интерфейс? А предназначен он всего лишь для копирования цифровых фото с карты памяти, редкая камера теперь не обладает возможностью делать цифровые снимки. Если же у кого-то из читателей «знакомый недавно слил видео по USB», совет один: осторожно поинтересуйтесь, уж не на мобильном ли своем телефоне ваш знакомый просматривает такое видео?

И все же, «справедливости ради и порядка для»: USB и карты памяти используются не только ИСКЛЮЧИТЕЛЬНО для фотографий. Дело в том, что некоторые модели камер всё же позволяют при помощи фирменных утилит захватывать DV-видео по USB2.0, хотя правильным назвать этот способ можно с большой с натяжкой.

В любой цифровой видеокамере присутствует гнездо, внешне напоминающее порт mini-USB, однако оно имеет меньшие размеры и часто обозначается буквами DV и рядышком i . Тем, у кого есть не очень старый ноутбук, не приходится задумываться — скорее всего в нем уже есть встроенный порт IEEE 1394, а в комплекте с таким ноутбуком имеется и шнур. Только подключай! Но что же делать владельцам стандартных коробок из магазина, называемых «домашний компьютер»? Редко у кого из них на материнской плате присутствует такой порт. Да и при покупке компьютера, конечно же, не задумывались о возможности обработки видео. Решение — на рисунке. Стандартная PCI плата IEEE-1394 и шнур к ней, производитель себя не называет (видимо, из скромности).

С виду — сама невзрачность, да и стоимость такого добра нынче около $10-15. Но это — все, что требуется для «правильного» перегона цифрового видео на жесткий диск компьютера для дальнейшей обработки. Если вы, конечно, запаслись необходимой программой. Впрочем, дальнейшие искания убедят вас, что пресловутый захват вполне можно производить и с помощью «программ-комбайнов», а то и вовсе с помощью встроенного в Windows XP хоть и примитивного, но видеоредактора, называемого Windows Movie Maker .

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

И, наконец, последний совет (если вы еще не ушли в магазин). Захватите с собой вашу видеокамеру. Дело в том, что производители встраивают в камеры разные типы портов IEEE 1394: 4 или 6-пиновые. Соответственно, в продаже могут быть и разные платы, разные кабели. Попросите продавца подобрать вам такую плату и такой кабель, которые подходят друг к другу, и, разумеется, к вашей камере.

Остается лишь вставить плату в PCI-слот компьютера (в Windows XP драйверы установятся автоматически), и подключить камеру. Имейте в виду: чтобы ваша камера опозналась системой как цифровое видеоустройство, она должна быть включенной и находиться в режиме Play, при этом те камеры, где есть переключатель режимов Video/Memory, должны быть включены в режим Video. В процессе установки драйверов могут быть затребованы необходимые файлы, находящиеся на диске с драйверами к вашей камере.

Если вы подключили все как полагается, в Диспетчере устройств появятся два новых пункта:

А в трее рядом с часами появится значок, обозначающий готовое к работе цифровое видеоустройство:

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



В продолжение темы:
Windows

Часть вторая : "Важнейшие характеристики каждого семейства процессоров Intel Core i3/i5/i7. Какие из этих чипов представляют особый интерес" Введение Сначала мы приведём...

Новые статьи
/
Популярные