Курсовая работа: Анализ состояния и перспективы развития в области создания компьютерных шин

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

• PCI Express (PCIe)- последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии.

• SPI(Serial Peripheral Interface Bus)- последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным(англ. four-wire) интерфейсом.

• DMI (Direct Media Interface)- используется в чипсетах семейства Intel 915 с южным мостом ICH6 в 2004 году

• QPI (Intel QuickPath Interconnect)- используется только в сериях процессоров Xeon и Core i7 с ядром Nehalem для разъема LGA 1366, а также будет использоваться в следующем поколении Itanium (ядро Tukwila)

• SATA/SAS- является развитием параллельного интерфейса ATA (IDE), который после появления SATA был переименован в PATA (Parallel ATA).

Примеры внешних компьютерных шин:

• ATA (Advanced Technology Attachment) (также известна, как PATA, IDE, EIDE, ATAPI) -- в 1990-е годы был стандартом на платформе IBM PC; SATA, Serial ATA -- современный вариант ATA

• USB(Universal Serial Bus)- поддержка USB вышла в виде патча к Windows 95b, в дальнейшем она вошла в стандартную поставку Windows 98 FireWire, i.Link, IEEE 1394

• HIPPI (HIgh Performance Parallel Interface)-

• IEEE-488, GPIB (General-Purpose Instrumentation Bus), HPIB, (HewlettPackard Instrumentation Bus)- разработана для использования в автоматизированном измерительном оборудовании под названием интерфейсная шина Hewlett-Packard (англ. Hewlett-Packard Interface Bus, HP-IB)

• PC card, ранее известная как PCMCIA, часто используется в ноутбуках и других портативных компьютерах, но теряет своё значение с появлением USB и встраиванием сетевых карт и модемов

• SCSI (Small Computer System Interface)- применяться в компьютерах Sun Microsystems.

Примеры универсальных компьютерных шин:

• Futurebus- скоростная шина, предназначенная для пересылки данных между компьютерами и внешними устройствами, число которых может достигать 32. Пересылка данных по шине осуществляется в асинхронном режиме передачей кадров с установлением соединений.

• InfiniBand- высокоскоростная коммутируемая последовательная шина, применяющаяся как для внутренних (внутрисистемных), так и для межсистемных соединений.

• SCI (Scalable Coherent Interface) -- компьютерная сеть, используемая для построения кластеров.

3. Описание компьютерных шин

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

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

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

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

Некоторые виды скоростных шин (Fibre Channel, InfiniBand, скоростной Ethernet, SDH) для передачи сигналов используют не электрические соединения, а оптические. Присоединители к шине, разнообразные разъёмы, как правило унифицированы и позволяют подключить различные устройства к шине. Управление передачей по шине реализуется как на уровне прохождения сигнала (мультиплексоры, демультиплексоры, буферы, регистры, шинные формирователи), так и со стороны ядра операционной системы -- в таком случае в его состав входит соответствующий драйвер.

Как правило, шины ПК можно представить в виде некой иерархической структуры - шинной архитектуры. Особенностью современных ПК является наличие шины ISA, унаследованной от самых первых моделей IBM PC. Кроме нее, в ПК применяются шины EISA, MCA, VLB, PCI, PCMCIA (CardBus) и AGP.

4. Технические характеристики компьютерных шин и принцип действия

Ширина шины

Ширина шины (количество адресных линий) - самый очевидный параметр при разработке. Чем больше адресных линий содержит шина, тем к большему объему памяти может обращаться процессор. Если шина содержит п адресных линий, то процессор может использовать ее для обращения к 2п различным ячейкам памяти. Для памяти большой емкости необходимо много адресных линий. Это звучит достаточно просто.

Проблема заключается в том, что для широких шин требуется больше проводов, чем для узких. Они занимают больше физического пространства (например, на материнской плате), и для них нужны разъемы большего размера. Все эти факторы делают шину дорогостоящей. Следовательно, необходим компромисс между максимальным объемом доступной памяти и стоимостью системы. Система с шиной, содержащей 64 адресные линии, и памятью в 232 байт будет стоить дороже, чем система с шиной, содержащей 32 адресные линии, и такой же памятью в 232 байт. Дальнейшее расширение не бесплатное.

Синхронизация шины

Шины можно разделить на две категории в зависимости от их синхронизации. Синхронная шина содержит линию, которая запускается кварцевым генератором. Сигнал на этой линии представляет собой меандр с частотой обычно от 5 до 100 МГц. Любое действие шины занимает целое число так называемых циклов шины. Асинхронная шина не содержит задающего генератора. Циклы шины могут быть произвольными и не обязательно одинаковыми для всех пар устройств. Далее мы рассмотрим каждый тип шины отдельно.

Синхронные шины

В качестве примера того, как работает асинхронная шина, рассмотрим временную диаграмму на рис. 3.35. В этом примере мы будем использовать задающий генератор на 100 МГц, который дает цикл шины в 10 не. Хотя может показаться, что шина работает медленно по сравнению с процессорами на 3 ГГц и выше, не многие современные шины работают быстрее. Например, популярная шина PCI работает с частотой 33 МГц или 66 МГц. О причинах такой низкой скорости современных шин: такие технические проблемы, как перекос шины и необходимость совместимости.

Асинхронные шины

Хотя использовать синхронные шины благодаря дискретным временным интервалам достаточно удобно, здесь все же есть некоторые проблемы. Например, если процессор и память способны закончить передачу за 3,1 цикла, они вынуждены продлить ее до 4,0 циклов, поскольку неполные циклы запрещены.

Еще хуже то, что если однажды был выбран определенный цикл шины и в соответствии с ним разработана память и карты ввода-вывода, то в будущем трудно делать технологические усовершенствования. Например, предположим, что через несколько лет после выпуска системы, появилась новая память с временем доступа не 15, а 8 не. Это время позволяет избавиться от периода ожидания и увеличить скорость работы машины. А теперь представим, что появилась память с временем доступа 4 не. При этом улучшения производительности уже не будет, поскольку в данной разработке минимальное время чтения - 2 цикла.

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

Арбитраж шины

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

Арбитраж может быть централизованным или децентрализованным. Рассмотрим сначала централизованный арбитраж. Простой пример один арбитр шины определяет, чья очередь следующая. Часто механизм арбитража встраивается в микросхему процессора, но иногда используется отдельная микросхема. Шина содержит одну линию запроса (монтажное ИЛИ), которая может запускаться одним или несколькими устройствами в любое время. Арбитр не может определить, сколько устройств запрашивают шину. Он может определить только факт наличия или отсутствия запросов.

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

Принципы работы шины

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

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

Существуют также другие типы циклов шины. Например, если речь идет о системах с двумя или несколькими центральными процессорами на одной шине, нужно быть уверенным, что в конкретный момент только один центральный процессор может использовать определенную структуру данных в памяти. Чтобы упорядочить этот процесс, в памяти должна содержаться переменная, которая принимает значение 0, когда центральный процессор использует структуру данных, и 1, когда структура данных не используется. Если центральному процессору нужно получить доступ к структуре данных, он должен считать переменную и, если она равна 0, придать ей значение 1. Проблема заключается в том, что два центральных процессора могут считывать переменную на последовательных циклах шины. Если каждый процессор обнаружит, что переменная равна О, а затем поменяет значение переменной на 1, как будто только он один использует эту структуру данных, то такая последовательность событий приведет к хаосу.

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

Еще один важный цикл шины - цикл обработки прерываний. Когда центральный процессор командует устройству ввода-вывода выполнить какое-то действие, он ожидает прерывания после завершения работы. Для сигнала прерывания нужна шина.

5. Внутренние шины

В первых персональных компьютерах использовалась шина ISA, которая затем была заменена шиной РСI, а она в свою очередь постепенно вытесняется шиной PCIExpress (этот процесс начался в 2005 году). Однако замена стандарта шины обычно растягивается на несколько лет, поэтому системные платы поддерживают сразу нескольких типов шин.

ISA

Шина ISA была единственной периферийной шиной для компьютеров 1980-х годов, но в начале 1990-х ее возможностей уже явно не хватало для подключения скоростных устройств. Поскольку для этой шины было выпущено большое количество плат расширения, она довольно долго существовала параллельно с шиной PCI. Лишь в платах последних лет выпуска разъемов для ISA нет.

ISA BUS (Industry Standard Architecture) -стандартные шины IBM PC XT (8 бит) и AT (16 бит).

Шина XT имеет:

• 8-битовую шину данных;

• 20-битовую шину адреса, что позволяет адресоваться к 220 бит (1 Мбайт) памяти;

• три канала прямого доступа к памяти (DMA);

• тактовую частоту 8 МГц;

• пропускную способность 4 Мбайт/с;

• 62-контактный разъем.

В настоящее время XT практически не применяется. В компьютерах AT шину расширили до 16 бит данных и 24 бит адреса. В таком виде она существует и поныне как самая распространенная шина для периферийных адаптеров.

Шина AT имеет:

• 6-битовую шину данных;

• 24-битовую шину адреса, что позволяет адресовать 16 Мбайт памяти;

• 8 каналов прямого доступа (DMA);

• тактовую частоту 8-16 МГц. PCI

Шина PCI (Peripheral Component Interconnect - соединение периферийных компонентов) -- наиболее популярный способ для подключения различных плат расширения. Она была разработана в 1992 году компанией Intel для замены медленной шины ISA. Следует отметить, что для тех же целей были созданы шины EISA, VLB и MCA, но они оказались менее удачными и уже давно не используются, a PCI успешно применяется и сегодня.