Примеры центральных процессоров Pentium II

advertisement
Примеры центральных процессоров
Pentium II
Pentium II — прямой потомок процессора 8088, который использовался в первой модели IBM
PC. Он полностью совместим с 8088 и может выполнять программы, написанные для 8088.
С точки зрения программного обеспечения, Pentium II представляет собой 32-разрядную
машину. Он содержит ту же архитектуру системы команд, что и процессоры 80386, 80486, Pentium и
Pentium Pro, включая те же регистры, те же команды и такую же встроенную систему с плавающей
точкой стандарта IEEE 754.
С точки зрения аппаратного обеспечения, Pentium II представляет собой нечто большее,
поскольку он может обращаться к 64 Гбайт физической памяти и передавать данные в память и из
памяти блоками по 64 бита. Программист не видит этих передач по 64 бита, но такая машина
работает быстрее, чем 32-разрядная. На микроархитектурном уровне Pentium II представляет собой
Pentium Pro с командами ММХ. Команды вызываются из памяти заранее и разбиваются на
микрооперации. Эти микрооперации хранятся в буфере, и как только одна из них получает
необходимые ресурсы для выполнения, она может начаться. Если в одном цикле может начинаться
несколько микроопераций, Pentium II является суперскалярной машиной.
Pentium II имеет двухуровневую кэш-память. Кэш-память первого уровня содержит 16 Кбайт
для команд и 16 Кбайт для данных, а смежная кэш-память второго уровня — еще 512 Кбайт. Строка
кэш-памяти состоит из 32 байт. Тактовая частота кэш-памяти второго уровня в два раза меньше
тактовой частоты центрального процессора. Тактовая частота центрального процессора — 233 МГц и
выше. В системах с процессором Pentium II используются две внешние шины, обе они синхронные.
Шина памяти используется для доступа к главному динамическому ОЗУ; шина PCI используется для
сообщения с устройствами ввода-вывода. Иногда к шине PCI подсоединяется унаследованная (то
есть прежняя) шина, чтобы можно было подключать старые периферические устройства.
Система Pentium II может содержать один или два центральных процессора, которые
разделяют общую память. В системе с двумя процессорами может возникнуть одна неприятная
ситуация. Слово, считанное в одну из микросхем кэш-памяти и измененное там, может не записаться
обратно в память, и если второй процессор попытается считать это слово, он получит неправильное
значение. Чтобы предотвратить такую ситуацию, существуют специальные системы поддержки.
Pentium II существенно отличается от своих предшественников компоновкой. Все процессоры,
начиная с 8088 и заканчивая Pentium Pro, были обычными микросхемами с выводами по бокам или
снизу, которые вставлялись в разъемы. Микропроцессор Pentium II представляет собой так
называемый SEC (Single Edge Cartridge — картридж с однорядным расположением контактов). Этот
картридж представляет собой довольно большую пластиковую коробку, содержащую центральный
процессор, двухуровневую кэш-память и торцевой соединитель для передачи сигналов. Он содержит
242 контакта.
Цоколевка процессора Pentium II
Из 242 контактов картриджа SEC 170 используются для сигналов, 27 для питания (с различной
мощностью), 35 для «земли» и еще 10 остаются на будущее. Для некоторых логических сигналов
используется два и более выводов (например, для запроса адреса памяти), поэтому существует
только 53 типа выводов. Цоколевка в несколько упрощенном виде представлена на рис. 3.41. С
левой стороны рисунка показано 6 основных групп сигналов шины памяти; с правой стороны
расположены прочие сигналы.
Компания Intel использует одно соглашение, которое важно понимать. Поскольку микросхемы
разрабатываются с использованием компьютеров, нужно каким-то образом представлять названия
сигналов в виде текста ASCII. Использовать черту над названиями сигналов, запускаемых низким
напряжением, слишком сложно, вместо этого компания Intel помещает после названия сигнала знак
#.
Рис. 3.41. Цоколевка процессора Pentium II.
Pentium II может осуществлять прерывания тем же способом, что и процессор 8088 (это
требуется в целях совместимости), или использовать новую систему прерывания с устройством APIC
(Advanced Programmable Interrupt Controller — встроенный контроллер прерываний).
Конвейерный режим шины памяти процессора Pentium II
Современные процессоры, например Pentium II, работают гораздо быстрее современных
динамических ОЗУ. Чтобы процессор не простаивал, необходима максимально возможная
производительность памяти. По этой причине шина памяти процессора Pentium II работает в
конвейерном режиме, при этом в шине происходит одновременно 8 операций.
Обращения процессора к памяти, которые называются транзакциями, имеют 6 стадий:
1. Фаза арбитража шины.
2. Фаза запроса.
3. Фаза сообщения об ошибке.
4. Фаза проверки на наличие нужного слова в другом процессоре.
5. Фаза ответа.
6. Фаза передачи данных.
Наличие всех шести фаз необязательно. На фазе арбитража шины определяется, какое из
задающих устройств будет следующим. На фазе запроса на шину передается адрес. На фазе
сообщения об ошибке подчиненное устройство передает сигнал об ошибке четности в адресе или о
наличии каких-либо других неполадок. На следующей фазе центральный процессор проверяет, нет
ли нужного ему слова в другом процессоре. Эта стадия нужна только в многопроцессорных системах.
В следующей фазе задающее устройство узнает, где взять необходимые данные. На последней
стадии осуществляется передача данных.
Фаза арбитража шины не всегда нужна. Например, если устройство, обладающее в данный
момент шиной хочет произвести еще одну транзакцию, ему не требуется заново получать доступ к
шине. Ему нужно запрашивать шину заново только в том случае, если он уступает ее другому
устройству.
В системе с процессором Pentium II на каждой стадии используются определенные сигналы,
отличные от сигналов других стадий, поэтому каждая из них не зависит от остальных.
UltraSPARC II
Семейство UltraSPARC — это серия 64-разрядных процессоров SPARC. Эти процессоры
полностью соответствуют архитектуре Version 9 SPARC, которая также подходит для 64-разрядных
процессоров. Они используются в рабочих станциях и серверах Sun, а также во многих других
системах. Семейство включает в себя процессоры UltraSPARC I, UltraSPARC II и UltraSPARC III, которые
имеют сходную архитектуру, но различаются датой выпуска и тактовой частотой. Ниже мы будем
говорить о процессоре UltraSPARC II.
UltraSPARC II представляет собой машину типа RISC. Он полностью совместим с 32-разрядным
SPARC V8. Единственное, чем UltraSPARC II отличается от SPARC V9, — это наличием команд VIS,
которые разработаны для графических приложений, кодировки MPEG в реальном времени и т. п.
Процессор UltraSPARC II был разработан для создания 4-узловых мультипроцессоров с
разделенной памятью без добавления внешних схем, а также для создания более крупных
мультипроцессоров с минимальным добавлением внешних схем. Иными словами, в каждую
микросхему UltraSPARC II включены связующие элементы, необходимые для построения
мультипроцессора.
В отличие от структуры Pentium II SEC, процессор UltraSPARC II представляет собой
относительно большую самостоятельную микросхему, содержащую 5,4 млн транзисторов.
Микросхема содержит 787 выводов, расположенных снизу, как показано на рис. 3.43. Такое большое
число выводов объясняется, с одной стороны, использованием 64 битов для адресов и 128 битов для
данных. С другой стороны, это объясняется особенностями работы кэш-памяти. Кроме того, многие
выводы являются резервными. Число 787 было выбрано для того, чтобы промышленность могла
производить стандартные модули.
Рис. 3.43. Микросхема процессора UltraSPARC II
Процессор UltraSPARC II содержит 2 внутренних блока кэш-памяти: 16 Кбайт для команд и 16
Кбайт для данных. Как и у Pentium II, здесь вне кристалла процессора расположена кэш-память
второго уровня, но, в отличие от Pentium II, процессор UltraSPARC II не упакован в один картридж с
кэш-памятью второго уровня, поэтому разработчики вправе выбирать любые микросхемы для кэшпамяти второго уровня.
Решение объединить кэш-память второго уровня с процессором или разделить ее с
процессором обусловлено выбором между различными техническими преимуществами, а также
особенностями компаний Intel и Sun. Внешняя кэш-память более гибкая (кэш-память процессора
UltraSPARC II можно расширить с 512 Кбайт до 16 Мбайт; кэш-память процессора Pentium II имеет
фиксированный объем 512 Кбайт), но при этом она работает медленнее из-за того, что расположена
дальше от процессора. Для обращения к внешней кэш-памяти требуется больше сигналов (у
картриджа SEC нет контактов для связи с кэш-памятью, поскольку в данном случае кэш-память
встроена прямо в картридж), но среди 787 выводов процессора UltraSPARC II обязательно должны
быть выводы для управления кэш-памятью.
Большинство рабочих станций Sun содержат синхронную шину на 25 МГц, которая называется
Sbus. К этой шине могут подсоединяться устройства ввода-вывода. Однако шина Sbus работает
слишком медленно и не подходит для памяти, поэтому компания Sun придумала другой механизм
для соединения процессоров UltraSPARC II с памятью: UPA (Ultra Port Architecture —
высокоскоростной пакетный коммутатор). UPA может воплощаться в виде шины, переключателя
или сочетания того и другого.
Рис. 3.44. Основная структура системы UltraSPARC II
На рис. 3.44. также изображена микросхема UDB II (UltraSPARC II Data Buffer II. Data Buffer —
буфер данных). Данные из памяти могут поступать блоками по 8 байтов. Они содержат 16-битный
код с исправлением ошибок для большей надежности. Можно запрашивать весь блок кэш-памяти, 8
байтов или даже меньше. Все входные данные поступают в буфер UDB и хранятся там. Буфер UDB
нужен для того, чтобы дать возможность центральному процессору и памяти работать асинхронно.
Например, если центральному процессору необходимо записать слово или строку кэш-памяти в
основную память, он может не ждать доступа к UPA, а сразу записать данные в буфер UDB, который
доставит их в память позднее. UDB также генерирует код с исправлением ошибок.
PicoJava II
Традиционно встроенные процессоры программировались на языке ассемблер, но так как с
течением времени приборы усложнялись и последствия сбоев программного обеспечения
становились более серьезными, появились другие подходы. Особенно удобно использовать в
качестве языка программирования для встроенных систем язык Java, поскольку он относительно
прост и программы занимают мало места. К достоинствам также можно отнести независимость
базовых программных средств. Однако у этого языка есть и недостатки. Во-первых, чтобы
использовать язык Java во встроенных системах, требуется большой интерпретатор для выполнения
кода JVM. (Программу на языке Java в код JVM преобразует специальныйкомпилятор.) Во-вторых,
процесс интерпретации занимает много времени.
Чтобы разрешить эту проблему, Sun и другие компании разработали процессоры со
встроенным набором команд JVM. При таком подходе сочетаются и простота использования языка
Java, и мобильность, и небольшой размер бинарного кода JVM, порождаемого компилятором, и
высокая скорость выполнения операций, которая достигается благодаря особенностям аппаратного
обеспечения.
Речь идет о процессоре picojava II, который составляет основу микросхемы microjava 701.
Микросхема была разработана компанией Sun, но другие компании также имеют право
использовать эту разработку. Это однокристальный процессор с двумя интерфейсами шины: один из
них предназначен для шины памяти шириной в 64 бита, а другой — для шины PCI, как показано на
рис. 3.45. Как Pentium II и UltraSPARC II, данный процессор может содержать кэш-память первого
уровня (до 16 Кбайт для команд и до 16 Кбайт для данных). Но, в отличие от этих двух процессоров,
он не имеет кэш-памяти второго уровня, поскольку низкая стоимость является ключевым
параметром при разработке встроенных систем. Ниже мы рассмотрим микросхему microjava II 701.
Она небольшого размера: содержит всего 2 млн транзисторов плюс еще 1, 5 млн для кэш-памяти.
Рис. 3.45. Система microjava H 701
На рис. 3.45 видны три особенности микросхемы.
Во-первых, в микросхеме microjava 701 используется шина PCI (на частоте 33 МГц или 66 МГц).
Преимущество шины PCI состоит в том, что она является стандартной, и поэтому не нужно каждый
раз разрабатывать новую шину.
Во-вторых, система microjava II701 обычно содержит флэш-память. Дело в том, что в прибор
должна быть встроена если не вся программа, то по крайней мере ее большая часть. Флэш-память
хорошо подходит для хранения программы, поэтому полезно иметь соответствующий интерфейс.
Другая микросхема (на рисунке она не показана), которую можно добавить к системе, содержит
последовательные и параллельные интерфейсы ввода-вывода.
В-третьих, microjava 701 содержит 16 программируемых линий ввода-вывода, которые можно
связать с кнопками, переключателями и лампочками прибора.
Микросхема microjava 701 выпускается в стандартном корпусе BGA (Ball Grid Array — корпус с
выводами в виде сетки крошечных шариков). Он содержит 316 выводов. Из них 59 выводов
связаны с шиной PCI. Ниже в этой главе мы рассмотрим шину PCI подробно. Еще 123 вывода
предназначены для шины памяти, среди них есть 64 двунаправленных вывода для передачи данных,
а также отдельные адресные выводы. Остальные выводы используются для управления (7),
синхронизирующих импульсов (3), прерываний (11), проверки (10), ввода-вывода(16). Некоторые из
оставшихся выводов используются для питания и «земли», а остальные вообще не используются.
Другие производители процессора picojava II вправе выбирать иную шину, компоновку и т. д.
Примеры шин
Шины соединяют компьютерную систему в одно целое.
Шина ISA
Шина IBM PC была неофициальным стандартом систем с процессором 8088, поскольку
практически все производители клонов скопировали ее, чтобы иметь возможность использовать в
своих системах платы ввода-вывода от различных поставщиков. Шина содержала 62 сигнальные
линии, из них 20 для адреса ячейки памяти, 8 для данных и по одной для сигналов считывания
информации из памяти, записи информации в память, считывания с устройства ввода-вывода и
записи на устройство ввода-вывода. Имелись и сигналы для запроса прерываний и их разрешения, а
также для прямого доступа к памяти. Шина была очень примитивной.
Когда компания IBM разрабатывала компьютер PC/AT с процессором 80286, она столкнулась с
некоторыми трудностями, связанными с взаимодействием нового процессора со старой шиной и
несоответствием их производительности.
В результате было принято решение расширить старую шину. Сменные платы персональных
компьютеров содержали краевой разъем (62 контакта), но этот краевой разъем проходил не по всей
длине платы. Поэтому на плате поместили еще один краевой разъем, смежный с главным. Кроме
того, схемы PC/AT были разработаны таким образом, чтобы можно было подсоединять платы обоих
типов.
Второй краевой разъем шины PC/AT содержит 36 линий. Из них 31 предназначена для
дополнительных адресных линий, информационных линий, линий прерывания, каналов ПДП
(прямого доступа к памяти), а также для питания и «земли». Остальные связаны с различиями между
8-битными и 16-битными передачами. Когда компания IBM выпустила серию компьютеров PS/2,
пришло время начать разработку шины заново. С одной стороны, это решение было обусловлено
чисто техническими причинами (шина PC к тому времени уже устарела). Но с другой стороны, оно
было вызвано желанием воспрепятствовать компаниям, выпускавшим клоны, которые в то время
заполонили компьютерный рынок. Поэтому компьютеры PS/2 с высокой и средней
производительностью были оснащены абсолютно новой шиной MCA (MicroChannel Architecture),
которая была защищена патентами.
Компьютерная промышленность отреагировала на такой шаг введением своего собственного
стандарта, шины ISA (Industry Standard Architecture — стандартная промышленная архитектура),
которая, по существу, представляет собой шину PC/AT, работающую при частоте 8,33 МГц.
Преимущество такого подхода состоит в том, что при этом сохраняется совместимость с
существующими машинами и платами.
Позднее шина ISA была расширена до 32 разрядов. У нее появились некоторые новые
особенности (например, возможность параллельной обработки). Такая шина называлась EISA
(Extended Industry Standard Architecture — расширенная архитектура промышленного стандарта).
Для нее было разработано несколько плат.
Шина PCI
В 1990 году компания Intel разработала новую шину с гораздо более высокой пропускной
способностью, чем у шины EISA. Эту шину назвали PCI (Peripheral Component Interconnect—
взаимодействие периферийных компонентов). Компания Intel запатентовала шину PCI и сделала
все патенты всеобщим достоянием, так что любая компания могла производить периферические
устройства для этой шины без каких-либо выплат за право пользования патентом.
Первая шина PCI передавала 32 бита за цикл и работала с частотой 33 МГц (время цикла 30 нc),
общая пропускная способность составляла 133 Мбайт/с. В 1993 году появилась шина PCI 2.0, а в 1995
году - PCI 2.1. Шина PCI 2.2 подходит и для портативных компьютеров (где требуется экономия
заряда батареи). Шина PCI работает с частотой 66 МГц, способна передавать 64 бита за цикл, а ее
общая пропускная способность составляет 528 Мбайт/с. При такой производительности
полноэкранное видеоизображение вполне достижимо (предполагается, что диск и другие устройства
системы справляются со своей работой). Во всяком случае, шина PCI не будет ограничивать
производительность системы.
Хотя 528 Мбайт/с — достаточно высокая скорость передачи данных, все же здесь есть
некоторые проблемы. Во-первых, этого не достаточно для шины памяти. Во-вторых, эта шина не
совместима со всеми старыми картами ISA. По этой причине компания Intel решила разрабатывать
компьютеры с тремя и более шинами, как показано на рис. 3.47. Здесь мы видим, что центральный
процессор может обмениваться информацией с основной памятью через специальную шину памяти
и что шину ISA можно связать с шиной PCI. Такая архитектура используется фактически во всех
компьютерах Pentium II, поскольку она удовлетворяет всем требованиям.
Рис. 3.47. Архитектура типичной системы Pentium И. Чем толще стрелка, обозначающая шину, тем
выше пропускная способность этой шины
Ключевыми компонентами данной архитектуры являются мосты между шинами (эти
микросхемы выпускает компания Intel — отсюда такой интерес к проекту). Мост PCI связывает
центральный процессор, память и шину PCI. Мост ISA связывает шину PCI с шиной ISA, а также
поддерживает один или два диска IDE.
Шины PCI являются синхронными, как и все шины PC, восходящие к первой модели IBM PC. Все
транзакции в шине PCI осуществляются между задающим и подчиненным устройствами. Чтобы не
увеличивать число выводов на плате, адресные и информационные линии объединяются. При этом
достаточно 64 выводов для всей совокупности адресных и информационных сигналов, даже если PCI
работает с 64-битными адресами и 64-битными данными.
Объединенные адресные и информационные выводы функционируют следующим образом.
При операции считывания во время цикла 1 задающее устройство передает адрес на шину. Во время
цикла 2 задающее устройство удаляет адрес и шина реверсируется таким образом, чтобы
подчиненное устройство могло ее использовать. Во время цикла 3 подчиненное устройство выдает
запрашиваемые данные. При операциях записи шине не нужно переключаться, поскольку задающее
устройство помещает на нее и адрес, и данные. Тем не менее минимальная транзакция занимает три
цикла. Если подчиненное устройство не может дать ответ в течение трех циклов, то вводится режим
ожидания. Допускаются пересылки блоков неограниченного размера, а также некоторые другие
типы циклов шины.
Арбитраж шины PCI
Чтобы передать по шине PCI какой-нибудь сигнал, устройство сначала должно получить к ней
доступ. Шина PCI управляется централизованным арбитром, как показано на рис. 3.48. В
большинстве случаев арбитр шины встраивается в один из мостов между шинами. От каждого
устройства PCI к арбитру тянутся две специальные линии. Одна из них (REQ#) используется для
запроса шины, а вторая (GNT#) — для получения разрешения на доступ к шине.
Рис. 3.48. В шине PCI используется централизованный арбитр
Алгоритм, которым руководствуется арбитр, не зависит от технических характеристик шины
PCI. Допустим арбитраж по кругу, по приоритету и другие схемы арбитража.
Шина предоставляется для одной транзакции, хотя продолжительность этой транзакции
теоретически произвольна. Если устройству нужно совершить вторую транзакцию и ни одно другое
устройство не запрашивает шину, оно может занять шину снова, хотя обычно между транзакциями
нужно вставлять пустой цикл. Однако при особых обстоятельствах (при отсутствии конкуренции на
доступ к шине) устройство может совершать последовательные транзакции без пустых циклов между
ними. Если задающее устройство осуществляет очень длительную передачу, а какое-нибудь другое
устройство выдало запрос на доступ к шине, арбитр может сбросить линию GNT#. Предполагается,
что задающее устройство следит за линией GNT#. Если линия сбрасывается, устройство должно
освободить шину в следующем цикле.
Сигналы шины PCI
Шина PCI содержит ряд обязательных сигналов (табл. 3.5) и ряд факультативных сигналов
(табл. 3.6). Оставшиеся выводы используются для питания, «земли» и разнообразных связанных
сигналов. В столбцах «Задающее устройство» и «Подчиненное устройство» указывается, какое из
устройств устанавливает сигнал при обычной транзакции. Если сигнал выдается другим устройством
(например, CLK), оба столбца остаются пустыми.
Таблица 3.5. Обязательные сигналы шины PCI
Таблица 3.6. Факультативные сигналы шины PCI
Транзакции шины PCI
Шина PCI в действительности очень проста. Чтобы лучше понять это, рассмотрим временную
диаграмму на рис. 3.49. Здесь мы видим транзакцию чтения, за ней следует пустой цикл и транзакция
записи, которая осуществляется тем же задающим устройством.
Во время цикла T1 на заднем фронте синхронизирующего сигнала задающее устройство
помещает адрес на линии AD и команду на линии С/ВЕ#. Затем задающее устройство устанавливает
сигнал FRAME#, чтобы начать транзакцию.
Во время цикла Т2 задающее устройство переключает шину, чтобы подчиненное устройство
могло воспользоваться ею во время цикла Т3. Задающее устройство также изменяет сигнал С/ВЕ#,
чтобы указать, какие байты в слове ему нужно считать.
Во время цикла Т3 подчиненное устройство устанавливает сигнал DEVSEL#. Этот сигнал
сообщает задающему устройству, что подчиненное устройство получило адрес и собирается
ответить. Подчиненное устройство также помещает данные на линии AD и выдает сигнал TRDY#,
который сообщает задающему устройству о данном действии. Если подчиненное устройство не
может ответить быстро, оно не снимает сигнал DEVSEL#, который сообщает о его присутствии, но при
этом не устанавливает сигнал TRDY# до тех пор, пока не сможет передать данные. При такой
процедуре вводится один или несколько периодов ожидания.
Рис. 3.49. Примеры 32-битных транзакций в шине PCI. Во время первых трех циклов происходит
операция чтения.
Шина USB
В середине 90-х годов представители семи компаний (Compaq, DEC, IBM, Intel, Microsoft, NEC и
Nothern Telecom) собрались вместе, чтобы разработать шину, оптимально подходящую для
подсоединения низкоскоростных устройств. Потом к ним примкнули сотни других компаний.
Результатом их работы стала шина USB (Universal Serial Bus — универсальная последовательная
шина), которая сейчас широко используется в персональных компьютерах.
Некоторые требования, изначально составляющие основу проекта:
1. Пользователи не должны устанавливать переключатели и перемычки на платах и
устройствах.
2. Пользователи не должны открывать компьютер, чтобы установить новые устройства
ввода-вывода.
3. Должен существовать только один тип кабеля, подходящий для подсоединения всех
устройств.
4. Устройства ввода-вывода должны получать питание через кабель.
5. Необходима возможность подсоединения к одному компьютеру до 127 устройств.
6. Система должна поддерживать устройства реального времени (например, звук, телефон).
7. Должна быть возможность устанавливать устройства во время работы компьютера.
8. Должна отсутствовать необходимость перезагружать компьютер после установки нового
устройства.
9. Производство новой шины и устройств ввода-вывода для нее не должно требовать
больших затрат.
Шина USB удовлетворяет всем этим условиям. Она разработана для низкоскоростных устройств
(клавиатур, мышей, фотоаппаратов, сканеров, цифровых телефонов и т. д.). Общая пропускная
способность шины изначально составляла 1, 5 Мбайт/с (в настоящее время до 640 мбайт/с). Этого
достаточно для большинства таких устройств. Предел был выбран для того, чтобы снизить стоимость
шины.
Шина USB состоит из центрального хаба, который вставляется в разъем главной шины (см. рис.
3.47). Этот центральный хаб (часто называемый корневым концентратором) содержит разъемы для
кабелей, которые могут подсоединяться к устройствам ввода-вывода или к дополнительным хабам,
чтобы обеспечить большее количество разъемов. Таким образом, топология шины USB представляет
собой дерево с корнем в центральном хабе, который находится внутри компьютера.
Кабель состоит из четырех проводов: два из них предназначены для передачи данных, один —
для источника питания (+5 В) и один — для «земли». Система передает 0 изменением напряжения, а
1 — отсутствием изменения напряжения, поэтому длинная последовательность нулей порождает
поток регулярных импульсов.
Когда подсоединяется новое устройство ввода-вывода, центральный хаб (концентратор)
распознает это и прерывает работу операционной системы. Затем операционная система
запрашивает новое устройство, что оно собой представляет и какая пропускная способность шины
для него требуется. Если операционная система решает, что для этого устройства пропускной
способности достаточно, она приписывает ему уникальный адрес (1-127) и загружает этот адрес и
другую информацию в регистры конфигурации внутри устройства. Таким образом, новые устройства
могут подсоединяться «на лету».
Шина USB представляет собой ряд каналов от центрального хаба к устройствам ввода-вывода.
Каждое устройство может разбить свой канал максимум на 16 подканалов для различных типов
данных (например, аудио и видео). В каждом канале или подканале данные перемещаются от
центрального концентратора к устройству или обратно. Между двумя устройствами ввода-вывода
обмена информацией не происходит. Ровно через каждую миллисекунду (±0,05 мс) центральный
концентратор передает новый кадр, чтобы синхронизировать все устройства во времени.
Шина USB поддерживает 4 типа кадров: кадры управления, изохронные кадры, кадры
передачи больших массивов данных и кадры прерывания. Кадры управления используются для
конфигурации устройств, передачи команд устройствам и запросов об их состоянии. Изохронные
кадры предназначены для устройств реального времени (микрофонов, акустических систем и
телефонов), которые должны принимать и посылать данные через равные временные интервалы.
Задержки хорошо прогнозируются, но в случае ошибки такие устройства не производят повторной
передачи. Кадры следующего типа используются для передач большого объема от устройств и к
устройствам без требований реального времени (например, принтеров). Наконец, кадры последнего
типа нужны для того, чтобы осуществлять прерывания, поскольку шина USB не поддерживает
прерывания.
Download