Лекция_5. Стандарты шин ввода-вывода

XT-Bus. Одной из популярных шин персональных компьютеров была системная шина IBM PC/XT, обеспечивавшая передачу 8 бит данных. Кроме того, эта шина включала 20 адресных линий, которые ограничивали адресное пространство пределом в 1 Мбайт. Для работы с внешними устройствами в этой шине были предусмотрены также 4 линии аппаратных прерываний (IRQ) и 4 линии для требования внешними устройствами прямого доступа к памяти (DMA). Для подключения плат расширения использовались специальные 62-контактные разъемы. При этом системная шина и микропроцессор синхронизировались от одного тактового генератора с частотой 4.77 МГц. Таким образом, теоретическая скорость передачи данных могла достигать немногим более 4 Мбайт/с.

 

Системная шина ISA (Industry Standard Architecture) впервые стала применяться в персональных компьютерах IBM PC/AT на базе процессора i286. Эта системная шина отличалась наличием второго, 36-контактного дополнительного разъема для соответствующих плат расширения. За счет этого количество адресных линий было увеличено на 4, а данных - на 8, что позволило передавать параллельно 16 бит данных и обращаться к 16 Мбайт системной памяти. Количество линий аппаратных прерываний в этой шине было увеличено до 15, а каналов прямого доступа - до 7. Системная шина ISA полностью включала в себя возможности старой 8-разрядной шины. Шина ISA позволяет синхронизировать работу процессора и шины с разными тактовыми частотами. Она работает на частоте 8 МГц, что соответствует максимальной скорости передачи 16 Мбайт/с.

С появлением процессоров i386, i486 и Pentium шина ISA перестала удовлетворять потребности периферийного оборудования. Новая системная шина EISA (Extended Industry Standard Architecture), появившаяся в конце 1988 года, обеспечивает адресное пространство в 4 Гбайта, 32-битовую передачу данных (в том числе и в режиме DMA), улучшенную систему прерываний и арбитраж DMA, автоматическую конфигурацию системы и плат расширения. Устройства шины ISA могут работать на шине EISA.

ISA (от англ. Industry Standard Architecture, ISA bus, произносится как ай-сэй) — 8-ми или 16-ти разрядная шина ввода/вывода IBM PC-совместимых компьютеров. Служит для подключения плат расширения стандарта ISA. Конструктивно выполняется в виде 62-х или 98-контактного разъёма на материнской плате. С появлением материнских плат формата ATX шина ISA перестала широко использоваться в компьютерах, хотя встречаются ATX-платы с AGP 4x, 6 PCI и одним (или двумя) портами ISA. Но пока её ещё можно встретить в старых AT-компьютерах, а также в промышленных компьютерах.

Шина EISA (Enhanced ISA - расширенная ISA)предусматривает централизованное управление доступом к шине за счет наличия специального устройства - арбитра шины. Bus Mastering - режим управления шиной со стороны любого из устройств на шине, имеет систему арбитража для управления доступом устройств к шине, позволяет автоматически настраивать параметры устройств, возможно разделение каналов IRQ и DMA. Шина EISA тактируется частотой около 8 МГц и имеет максимальную теоретическую скорость передачи данных 33 Мбайт/с (при обмене 32-разрядными словами ~ около 20 МБ/с).

EISA (англ. Extended Industry Standard Architecture) — шина для IBM-совместимых компьютеров. Была анонсирована в конце 1988 группой производителей IBM-совместимых компьютеров в ответ на введение фирмой IBM закрытой шины MCA в компьютерах серии PS/2.

EISA расширяет распространённую шину ISA до 32 разрядов и позволяет подключать к шине более одного ЦПУ. Адресное пространство, по сравнению с ISA, увеличено до 4 ГБ. Кроме того, шина поддерживает bus mastering. EISA является надмножеством ISA, поэтому, в отличие от MCA, к ней можно подключать старые платы, предназначенные для работы с 8- и 16- разрядными версиями ISA: имеется как электрическая, так и механическая совместимость.

Хотя шина EISA менее совершенна, чем MCA, она была принята многими производителями, так как шина MCA являлась закрытой и все права на неё принадлежали IBM. В конце концов, даже компания IBM выпустила несколько машин, которые использовали шину EISA. Использование шины EISA было дорогостоящим (хотя и дешевле MCA), так что EISA не получила распространения в персональных компьютерах. Однако, она получила распространение в серверах, так как была приспособлена для задач, требующих большой пропускной способности шины (например, обмен с НЖМД и работа в сети). Большинство выпущенных EISA карт были либо контроллерами шины SCSI либо сетевыми контроллерами. EISA нашла применение в некоторых компьютерах, не использовавших x86-совместимые процессоры:

  • серия серверов AlphaServer на базе процессоров Alpha;
  • рабочие станции HP 9000-D на базе процессоров PA-RISC;
  • рабочие станции SGI Indigo2 и MIPS Magnum на базе процессоров с архитектурой MIPS.

Шина MCA (Micro Channel Architecture - микроканальная архитектура) - шина компьютеров PS/2 фирмы IBM. Не совместима ни с одной другой, разрядность - 32/32, (базовая – 8(данные)/24(адрес), остальные - в качестве расширений)., тактируется частотой 10 МГц. Поддерживает Bus Mastering, имеет арбитраж и автоматическую конфигурацию, синхронная (жестко фиксирована длительность цикла обмена), предельная пропускная способность - 40 Мб/с. Конструктив - одно-трехсекционный разъем (такой же, как у VLB). Первая, основная, секция - 8-разрядная (90 контактов), вторая - 16-разрядное расширение (22 контакта), третья - 32-разрядное расширение (52 контакта). В основной секции предусмотрены линии для передачи звуковых сигналов. Дополнительно рядом с одним из разъемов может устанавливаться разъем видеорасширения (20 контактов). EISA и MCA во многом похожи, появление EISA было обусловлено собственностью IBM на архитектуру MCA.

 

PS/2 (Personal System) — серия персональных компьютеров компании IBM на процессорах Intel 286 и 386 серий, выпускавшаяся с апреля 1987 г. Основной рыночной задачей серии PS/2 было вытеснение с рынка персональных IBM-совместимых компьютеров других производителей. Главным способом достижения этой цели стало использование закрытых стандартов, в том числе шины MCA, не допускающих их использование сторонними разработчиками без дорогого лицензирования. Однако ожидания компании не оправдались — старые открытые технологии были усовершенствованы конкурентами IBM и оказались более живучими.

 

Шина VLB (VESA Local Bus - локальная шина стандарта VESA), предложенная ассоциацией VESA (Video Electronics Standard Association) - 32-разрядное дополнение к шине ISA, предназначалась для увеличения быстродействия видеоадаптеров и контроллеров дисковых накопителей. Конструктивно представляет собой дополнительный разъем (116-контактный, как у MCA) при разъеме ISA. Разрядность – 32(данные)/32(адрес), тактовая частота - 25..50 МГц, максимальная скорость передачи данных - 130 Мб/с (на практике 80 Мб/с), позволяет подключать до трех периферийных устройств, в качестве которых наряду с видеоадаптерами и дисковыми контроллерами могут выступать и сетевые адаптеры. Электрически шина выполнена в виде расширения локальной шины процессора - большинство входных и выходных сигналов процессора передаются непосредственно VLB-платам без промежуточной буферизации. Из-за этого возрастает нагрузка на выходные каскады процессора, ухудшается качество сигналов на локальной шине и снижается надежность обмена по ней. Поэтому VLB имеет жесткое ограничение на количество устанавливаемых устройств: при 33 МГц - три, 40 МГц - два, и при 50 МГц - одно, причем желательно - интегрированное в системную плату.

После появления процессора Pentium ассоциация VESA приступила к работе над новым стандартом VL-bus версии 2, который предусматривает использование 64-битовой шины данных и увеличение количества разъемов расширения. Ожидаемая скорость передачи данных - до 400 Мбайт/с.

 

Video Electronics Standards Association (VESA) — ассоциация стандартизации видео-электроники, основанная в поздних 80-х компанией NEC Home Electronics и восемью другими производителями видеоадаптеров. Первоначальной задачей ставилось создание стандарта SVGA (800x600 пикселей) для видеодисплеев. После этого, VESA продолжила создавать стандарты, в основном относящиеся к функционированию видео периферии в IBM-совместимых компьютерах

 

Шина PCI (Peripheral Component Interconnect - соединение внешних компонент) так же, как и шина VL-bus, поддерживает 32-битовый канал передачи данных между процессором и периферийными устройствами. Не совместима ни с какими другими, разрядность – 32(данные)/32(адрес) (расширенный вариант - 64/64), тактовая частота - до 33 МГц (PCI 2.1 - до 66 МГц), максимальная пропускная способность - до 132 Мб/с (264 Мб/с для 32/32 на 66 МГц и 528 Мб/с для 64/64 на 66 МГц). Шина децентрализована, нет главного устройства, любое устройство может стать инициатором транзакции. Для выбора инициатора используется арбитраж с отдельно стоящей логикой арбитра. Арбитраж «скрытый», не отбирает времени — выбор нового инициатора происходит во время транзакции, исполняемой предыдущим инициатором. Транзакция состоит из 1 или 2 циклов адреса (2 цикла адреса используются для передачи 64-битных адресов, поддерживаются не всеми устройствами, дают поддержку DMA на памяти более 4 Гб) и одного или многих циклов данных. Транзакция со многими циклами данных называется «взрывной» (burst), понимается как чтение/запись подряд идущих адресов и даёт более высокую скорость — один цикл адреса на несколько, а не на каждый цикл данных, и отсутствие простоев (на «успокоение» проводников) между транзакциями. Специальные типы транзакций используются для обращений к конфигурационному пространству устройства. «Взрывная» транзакция может быть временно приостановлена обоими устройствами из-за отсутствия данных в буфере или его переполнения. Поддерживаются «расщеплённые» транзакции.

Количество разъемов шины на одном сегменте ограничено четырьмя. Сегментов может быть несколько, они соединяются друг с другом посредством мостов (bridge). Сегменты могут объединяться в различные топологии (дерево, звезда и т.п.). Самая популярная шина в настоящее время, используется также на других компьютерах. Разъем похож на MCA/VLB, но чуть длиннее (124 контакта). 64-разрядный разъем имеет дополнительную 64-контактную секцию с собственным ключом. Все разъемы и карты к ним делятся на поддерживающие уровни сигналов 5 В, 3.3 В и универсальные; первые два типа должны соответствовать друг другу, универсальные карты ставятся в любой разъем. При работе с процессорами i486 шина PCI дает примерно те же показатели производительности, что и шина VL-bus. Однако, в отличие от последней, шина PCI не зависит от процессора (шина VL-bus подключается непосредственно к процессору i486 и только к нему). Ее легко подключить к различным центральным процессорам. В их числе Pentium, Alpha, R4400 и PowerPC.

 

Шина AGP предназначена для улучшения работы видеоадаптеров, или точнее, 3D-акселераторов, требующих большие объемы видеопамяти для обработки и вывода изображения. Шина AGP была разработана для того, чтобы дать возможность хранить часть информации (текстуры) в дешевой системной памяти, и иметь к ней быстрый доступ, а не увеличивать количество дорогой памяти непосредственно на видеокарте. В отличие от PCI, шина AGP способна передавать два блока данных за один 66 MHz цикл (AGP 2x). В ней устранена мультиплексированность (нет коммутации одной из входных линий к единой выходной) линий адреса и данных (в PCI для удешевления конструкции адрес и данные передавались по одним и тем же линиям). Конвейеризация операций чтения/записи позволяет устранить влияние задержек в модулях памяти на скорость выполнения этих операций. В результате пропускная способность шины составляет до 500 Мб/с (AGP 2.0 - 1Гб/с).

 

Сводная таблица по шинам применяемым в ПК

Bus Шина Bus Frequency Частота шины   (MHz)   Транзакций за такт Width Ширина (данные/адрес) (bit) Bandwidth Пропускная способность шины   (MHz) Data Transfer Rate Скорость передачи данных   (MByte/sec)
XT-bus 4,77 1 8/20 4,77 4,77
ISA 8 1 16/24 8 16
EISA 8 1 32/32 8 32
MCA 10 1 32/32 10 40
VLB 25..50 1 32/32 25..50 200
PCI 33 1 32/32 33 133
AGP 1X 66 1 32 66 266
AGP 2X 66 2 32 133 512
AGP 4X 66 4 32 266 1024
AGP 8X (Pro) 66 8 32 533 2048

PCMCIA (Personal Computer Memory Card International Association - ассоциация производителей плат памяти для персональных компьютеров) - внешняя шина компьютеров класса Notebook. Другое название модуля PCMCIA - PC Card. Предельно проста, разрядность – 16(данные)/26(адрес) (адресное пространство - 64 Мб), поддерживает автоконфигурацию, возможно подключение и отключение устройств в процессе работы компьютера. Конструктив - миниатюрный 68-контактный разъем.

 

В однопроцессорных и многопроцессорных рабочих станциях и серверах на основе микропроцессоров SPARC одновременно используются несколько типов шин: SBus, MBus и XDBus, причем шина SBus применяется в качестве шины ввода/вывода, а MBus и XDBus - в качестве шин для объединения большого числа процессоров и памяти.

Шина SBus (известная также как стандарт IEEE-1496) имеет 32-битовую и 64-битовую реализацию, работает на частоте 20 и 25 МГц и имеет максимальную скорость передачи данных в 32-битовом режиме равную соответственно 80 или 100 Мбайт/с. Шина предусматривает режим групповой пересылки данных с максимальным размером пересылки до 128 байт. Она может работать в двух режимах передачи данных: режиме программируемого ввода/вывода и в режиме прямого доступа к виртуальной памяти (DVMA). Последний режим особенно эффективен при передаче больших блоков данных.

Шина MBus работает на тактовой частоте 50 МГц в синхронном режиме с мультиплексированием адреса и данных. Общее число сигналов шины равно 100, а разрядность шины данных составляет 64 бит. По шине передаются 36-битовые физические адреса. Шина обеспечивает протокол поддержания когерентного состояния кэш-памяти нескольких (до четырех) процессоров, имеет максимальную пропускную способность в 400 Мбайт/с, а типовая скорость передачи составляет 125 Мбайт/с. Отличительными свойствами шины MBus являются: возможность увеличения числа процессорных модулей, поддержка симметричной мультипроцессорной обработки, высокая пропускная способность при обмене с памятью и подсистемой ввода/вывода, открытые (непатентованные) спецификации интерфейсов.

 

 

 

 


SCSI. Существует три стандарта SCSI:

SE (англ. single-ended) - асимметричный SCSI, для передачи каждого сигнала используется отдельный проводник.

LVD (англ. low-voltage-differential) — интерфейс дифференциальной шины низкого напряжения, сигналы положительной и отрицательной полярности идут по разным физическим проводам - витой паре. На один сигнал приходится по одной витой паре проводников. Используемое напряжение при передаче сигналов ±1,8 В.

HVD (англ. high-voltage-differential) — интерфейс дифференциальной шины высокого напряжения, отличается от LVD повышенным напряжением и специальными приемопередатчиками.

Первый стандарт SCSI имеет 50-контактный неэкранированный разъем для внутрисистемных соединений и аналогичный экранированный разъем типа Centronics (Alternative 2) для внешних подключений. Передача сигналов осуществляется 50 контактным кабелем типа - A-50 на 8 разрядной (битной) шине.

Но надо иметь ввиду, что до появления SCSI, имевшего 50-контактный разъём, и даже одновременно с ним был более старый SCSI, имевший 25-контактный разъём, почти такой, как разъём LPT (например, в теперь уже почти вышедшем из употребления сканере Mustek 1200 FS есть одновременно три разъёма: OPTION на 26 контактов, SCSI на 25 контактов, SCSI на 50 контактов).

В стандарте SCSI-2 для 8 битной шины предусматривался кабель, который как и в SCSI-1 поддерживал 50-контактными разъемами с уменьшенным шагом выводов (Alternative 1). Разъемы типа Centronics (Alternative 2) в SCSI-2 построены по 8 и 16 битной шине. Передача информации осуществляется по 68-контактным кабелям типа - A-68 и P-68 (Wide). Для 32 битной версии шины был предусмотрен другой тип кабеля, который должен был параллельно подключаться одновременно с предусмотренным по предыдущему стандарту в одно устройство. Однако кабель не получил широкого признания и из стандарта SCSI-3 исключен.

В стандарте SCSI-3 кабели A-68 и P-68 поддерживались экранированными, либо неэкранированными разъемами. Кабели в SCSI-3 снабжены фиксаторами-защелками, а не проволочными кольцами, как разъемы Centronics. Начиная с этой версии SCSI в массивах накопителей используется 80-контактный разъем, называемый Alternative 4. Накопители с таким разъемом поддерживают "горячее" подключение устройств, т.е. устройства SCSI можно подключать и отключать при включенном питании.

Основные реализации SCSI (в хронологическом порядке):

 

Обзор интерфейсов SCSI

Наименование Разрядность шины Частота шины Пропускная способность Максимальная длина кабеля Максимальное количество устройств
SCSI 8 бит 5 МГц 5 МБайт/сек 6 м (25 м с HVD) 8
Fast SCSI 8 бит 10 МГц 10 МБайт/сек 3 м (25 м с HVD) 8
Wide SCSI 16 бит 10 МГц 20 МБайт/сек 3 м (25 м с HVD) 16
Ultra SCSI 8 бит 20 МГц 20 МБайт/сек 1,5—3 м (25 м с HVD) 4—8
Ultra Wide SCSI 16 бит 20 МГц 40 МБайт/сек 1,5—3 м (25 м с HVD) 4—16
Ultra2 SCSI 8 бит 40 МГц 40 МБайт/сек 12 м (25 м с HVD) 8
Ultra2 Wide SCSI 16 бит 40 МГц 80 МБайт/сек 12 м (25 м с HVD) 16
Ultra3 SCSI 16 бит 40 МГц DDR 160 МБайт/сек 12 м 16
Ultra-320 SCSI 16 бит 80 МГц DDR 320 МБайт/сек 12 м 16
Ultra-640 SCSI 16 бит 160 МГц DDR 640 МБайт/сек   16

Протокол команд SCSI

В терминологии SCSI взаимодействие идёт между инициатором и целевым устройством. Инициатор посылает команду целевому устройству, которое затем отправляет ответ инициатору.

Команды SCSI посылаются в виде блоков описания команды (англ. Command Descriptor Block, CDB). Длина каждого блока может составлять 6, 10, 12 или 16 байт. В последних версиях SCSI блок может иметь переменную длину. Блок состоит из однобайтового кода команды и параметров команды.

После получения команды целевое устройство возвращает значение 00h в случае успешного получения, 02h в случае ошибки или 08h в случае, если устройство занято. В случае, если устройство вернуло ошибку, инициатор обычно посылает команду запроса состояния. Устройство возвращает Key Code Qualifier (KCQ).

Все команды SCSI делятся на четыре категории: N (non-data), W (запись данных от инициатора целевым устройством), R (чтение данных) и B (двусторонний обмен данными). Всего существует порядка 60 различных команд SCSI, из которых наиболее часто используются:

  • Test unit ready — проверка готовности устройства, в т.ч. наличия диска в дисководе.
  • Inquiry — запрос основных характеристик устройства.
  • Send diagnostic — указание устройству провести самодиагностику и вернуть результат.
  • Request sense — возвращает код ошибки предыдущей команды.
  • Read capacity — возвращает ёмкость устройства.
  • Format Unit
  • Read (4 варианта) — чтение.
  • Write (4 варианта) — запись.
  • Write and verify — запись и проверка.
  • Mode select — установка параметров устройства.
  • Mode sense — возвращает текущие параметры устройства.

Каждое устройство на SCSI-шине имеет как минимум один номер логического устройства (LUN — англ. Logical Unit Number). В некоторых более сложных случаях одно физическое устройство может представляться набором LUN.

Для возможности работы нескольких независимых целевых устройств SCSI, в UNIX-подобных операционных системах применяется адресация из произвольно назначаемого драйвером идентификатора целевого устройства (SCSI target id) и номера LUN, сконфигурированного на нём.

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

Одним из последних является MMC – Multimedia Command Set, полностью описывающий систему команд приводов CD/DVD/Blu-Ray, в том числе их разновидностей с возможностью записи. Некоторые приводы, например, производства Asus и Pioneer, используют конкурирующий стандарт Mt. Fuji, отличающийся от MMC в некоторых нюансах.

Терминирование

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

PCI Express. Для подключения устройства PCI Express используется двунаправленное последовательное соединение типа точка-точка, называемое линией (англ. lane — полоса, ряд); это резко отличается от PCI, в которой все устройства подключаются к общей 32-разрядной параллельной двунаправленной шине.

Соединение (англ. link — связь, соединение) между двумя устройствами PCI Express и состоит из одной (x1) или нескольких (x2, x4, x8, x12, x16 и x32) двунаправленных последовательно соединённых линий. Каждое устройство должно поддерживать соединение по крайней мере с одной линией (x1).

На электрическом уровне каждое соединение использует низковольтную дифференциальную передачу сигнала (LVDS), приём и передача информации производится каждым устройством PCI Express по отдельным двум проводникам, таким образом, в простейшем случае, устройство подключается к коммутатору PCI Express всего лишь четырьмя проводниками.

Использование подобного подхода имеет следующие преимущества:

  • карта PCI Express помещается и корректно работает в любом слоте той же или большей пропускной способности (например, карта x1 будет работать в слотах x4 и x16);
  • слот большего физического размера может использовать не все линии (например, к слоту x16 можно подвести проводники передачи информации, соответствующие x1 или x8, и всё это будет нормально функционировать; однако, при этом необходимо подключить все проводники питания и заземления, необходимые для слота x16).

В обоих случаях, на шине PCI Express будет использоваться максимальное количество линий, доступных как для карты, так и для слота. Однако это не позволяет устройству работать в слоте, предназначенном для карт с меньшей пропускной способностью шины PCI Express. Например, карта x4 физически не поместится в стандартный слот x1, несмотря на то, что она могла бы работать в слоте x4 с использованием только одной линии. На некоторых материнских платах можно встретить нестандартные слоты x1 и x4, у которых отсутствует крайняя перегородка, таким образом, в них можно устанавливать карты большей длины чем разъем. При этом не обеспечивается питание и заземление выступающей части карты, что может привести к различным проблемам.

PCI Express пересылает всю управляющую информацию, включая прерывания, через те же линии, что используются для передачи данных. Последовательный протокол никогда не может быть заблокирован, таким образом задержки шины PCI Express вполне сравнимы с таковыми для шины PCI (заметим, что шина PCI для передачи сигнала о запросе на прерывание использует отдельные физические линии IRQ#A, IRQ#B, IRQ#C, IRQ#D).

Во всех высокоскоростных последовательных протоколах (например, гигабитный Ethernet), информация о синхронизации должна быть встроена в передаваемый сигнал. На физическом уровне, PCI Express использует метод канального кодирования 8b/10b (8 бит в десяти, избыточность — 20%) для устранения постоянной составляющей в передаваемом сигнале и для встраивания информации о синхронизации в поток данных. В PCI Express 3.0 используется более экономное кодирование 128b/130b с избыточностью 1,5%.

Некоторые протоколы (например, SONET/SDH) используют метод, который называется скремблинг (англ. scrambling) для встраивания информации о синхронизации в поток данных и для "размывания" спектра передаваемого сигнала. Спецификация PCI Express также предусматривает функцию скремблинга, но скремблинг PCI Express отличается от такового для SONET.

Пропускная способность PCIe 1.0 составляет 2,5 Гбит/с. Для расчёта пропускной способности шины необходимо учесть дуплексность и избыточность 8b/10b (8 бит в десяти). Например, дуплексная пропускная способность соединения x1 составляет:

2,5 · 2 · 0,8 = 4 Гбит/с

§ где 2,5 — битрейт, Гбит/с;

§ 2 — учёт дуплексности (двунаправленности);

§ 0,8 — учёт избыточности 8b/10b для 1.0 и 2.0; 0,985 — для 3.0;

В одну/обе стороны, Гбит/с

 

Связей

 
x1 x2 x4 x8 x12 x16 x32  
PCIe 1.0 2/4 4/8 8/16 16/32 24/48 32/64 64/128  
PCIe 2.0 4/8 8/16 16/32 32/64 48/96 64/128 128/256  
PCIe 3.0 8/16 16/32 32/64 64/128 96/192 128/256 256/512  

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: