Микросхемы процессоров и шины

Цоколёвка - обозначение функций контактов по их номерам.

Микросхемы процессоров

Вывода микросхемы ЦП можно разделить на 3 тип:

  • адресные

  • информационные

  • управляющие

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

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

Число адресных выводов и число информационных выводов — два ключевых параметра, которые определяют производительность процессора. Микросхема, содержащая mm адресных выводов, может обращаться к 2m2^m ячейкам памяти. Обычно m=16,32,64m = 16,32,64. Микросхема, содержащая nn информационных выводов, может считывать или записывать n-разрядное слово за одну операцию. Обычно n=8,32,64n=8, 32,64. Центральному процессору с 88 информационными выводами понадобится 44 операции, чтобы считать 32-разрядное слово, тогда как процессор, имеющий 3232 информационных вывода, может сделать ту же работу в рамках одной операции. Следовательно, микросхема с 3232 информационными выводами работает гораздо быстрее, но и стоит гораздо дороже.

Управляющие выводы позволяют регулировать и синхронизировать поток данных к процессору и от него, а также выполнять другие функции. Все процессоры содержат выводы для питания(обычно +1.2В+1.5В+1.2В + 1.5В), заземления и синхронизирующего сигнала(меандра). Их можно разделить на несколько категорий:

  • управление шиной

  • прерывания

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

  • сигналы сопроцессора

  • состояние

  • разное

Ниже схема типичного ЦП в котором используются эти типы сигналов.

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

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

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

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

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

Компьютерные шины

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

  • Внутренние шины(по отношению к процессору) служит для передачи данных в АЛУ и из АЛУ

  • Внешние шины(по отношению к процессору) связывают процессор с памятью или устройствами ввода-вывода.

Первые персональные компьютеры имели одну внешнюю шину, которая называлась системной. Она состояла из нескольких медных проводов (от 50 до 100), которые встраивались в материнскую плату. На материнской плате на одинаковых расстояниях друг от друга находились разъемы для микросхем памяти и устройств ввода-вывода. Современные персональные компьютеры обычно содержат специальную шину между центральным процессором и памятью и покрайней мере еще одну шину для устройств ввода-вывода

  • Нежирная стрелка рисуется, когда тип все битов одинаков(например, все адресные или все информационные)

  • Жирная стрелка рисуется, когда включаются адресные лини, линии данных и управления.

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

Как работают шины? Некоторые устройства, соединенные с шиной, являются активными и могут инициировать передачу информации по шине, другие являются пассивными и ждут запросов. Активное устройство называется задающим, пассивное — подчиненным. Когда центральный процессор требует от контроллера диска считать или записать блок информации, центральный процессор действует как задающее устройство, а контроллер диска — как подчиненное. Контроллер диска может действовать как задающее устройство, когда он командует памяти принять слова, которые считал с диска. Также устройства ввода-вывода могут вызывать прерывания. Память ни при каких обстоятельствах не может быть задающим устройством.

Примеры задающих и подчиненных устройств.

Задающее устройство

Подчиненное устройство

Пример

Центральный процессор

Память

Вызов команд и данных

Центральный процессор

Устройство ввода-вывода

Инициализация передачи данных

Центральный процессор

Сопроцессор

Передача команды от процессора к сопроцессору

Устройство ввода-вывода

Память

Прямой доступ к памяти

Сопроцессор

Центральный процессор

Вызов сопроцессором операндов из центрального процессора

Двоичным сигналам, которые выдают устройства компьютера, часто не хватает мощности для активизации шины, особенно если она достаточно длинная и если к ней подсоединено много устройств. По этой причине большинство задающих устройств шины обычно связаны с ней через микросхему, которая называется драйвером шины и по существу является цифровым усилителем. Сходным образом большинство подчиненных устройств связаны с шиной приемником шины. Для устройств, которые могут быть и задающим, и подчиненным устройством, используется приемопередатчик, или трансивер, шины. Эти микросхемы, предназначенные для взаимодействия с шиной, часто являются устройствами с тремя состояниями, что дает им возможность отсоединяться, когда они не нужны. Иногда они подключаются через открытый коллектор, что дает сходный эффект. Когда одно или несколько устройств на открытом коллекторе требуют доступа к шине в одно и то же время, результатом является булева операция ИЛИ над всеми этими сигналами. Такое соглашение называется монтажным ИЛИ. В большинстве шин одни линии являются устройствами с тремя состояниями, а другие, которым требуется свойство монтажного ИЛИ, — открытым коллектором.

Шина имеет адресные, информационные линии и управляющие линии. Между выводами процессора и сигналами шины может и не быть взаимно однозначного соответствия. Например, некоторые процессоры содержат три вывода, которые выдают сигнал чтения из памяти или записи в память, чтения устройства с ввода-вывода, записи на устройство ввода-вывода или выполнения какой-либо другой операции. Обычная шина может содержать одну линию для чтения из памяти, вторую — для записи в память, третью — для чтения с устройства ввода-вывода, четвертую — для записи на устройство ввода-вывода и т. д. Тогда связывать процессор с такой шиной должна микросхема-декодер, призванная преобразовывать 3-разрядный кодированный сигнал в отдельные сигналы, которые могут управлять линиями шины.

В следующих подразделах будут рассмотрены основные вопросы, связанные с проектирование шины.

Ширина шины

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

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

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

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

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

Шины можно разделить на две категории в зависимости от их синхронизации.

  • Синхронная шина содержит линию, которая запускается кварцевым генератором. Сигнал на этой линии представляет собой меандр с частотой обычно от 55 до 133133 МГц. Любое действие шины занимает целое число так называемых циклов шины.

  • Асинхронная шина не содержит задающего генератора. Циклы шины могут быть произвольными и не обязательно одинаковыми для всех пар устройств. Далее мы рассмотрим каждый тип шины отдельно.

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

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

Асинхронная шина

(из интернета)При асинхронном обмене процессор заканчивает обмен только тогда, когда устройство-исполнитель подтверждает выполнение операции специальным сигналом (так называемый режим handshake — рукопожатие).

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

Если появляются несколько задающих устройств, в дело вступает арбитраж шины, который решает кому дать доступ. Арбитраж делится на два типа:

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

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

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

Обычно за раз передается одно слово. При использовании кэш-памяти желательно сразу вызывать всю строку кэш-памяти (то есть 16 последовательных 64-разрядных слов). Однако часто передача блоками может быть более эффективна. Когда начинается чтение блока, задающее устройство сообщает подчиненному устройству, сколько слов нужно передать (например, помещая общее число слов на информационные линии в период T1). Вместо того чтобы выдать в ответ одно слово, задающее устройство выдает одно слово в течение каждого цикла до тех пор, пока не будет передано требуемое количество слов. Сигнал BLOCK\overline{BLOCK} указывает, что запрашивается передача блока. В данном примере считывание блока из четырех слов занимает 6 циклов вместо 12-ти.

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

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

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

Поскольку может сложиться ситуация, когда несколько устройств одновременно захотят выполнить прерывание, здесь имеют место те же проблемы разрешения конфликтных ситуаций, что и в обычных циклах шины. Чтобы избежать таких проблем, нужно каждому устройству приписать определенный приоритет и для распределения приоритетов поддерживать централизованный арбитраж. Для этих целей существует стандартный, широко используемый интерфейс прерываний. В компьютерах IBM PC и последующих моделях для этого служит микросхема Intel 8259A.

До восьми контроллеров ввода-вывода могут быть непосредственно связаны с восемью входами IRx (Interrupt Request — запрос прерывания) микросхемы 8259A. Когда любое из этих устройств решит произвести прерывание, оно запускает свою линию входа. При активизации одного или нескольких входов контроллер 8259A выдает сигнал INT (INTerrupt — прерывание), который подается на соответствующий вход центрального процессора. Если центральный процессор способен обработать прерывание, он посылает микросхеме 8259A импульс через вывод INTA (INTerrupt Acknowledge — подтверждение прерывания). В этот момент микросхема 8259A должна определить, на какой именно вход поступил сигнал прерывания. Для этого она помещает номер входа на информационную шину. Эта операция требует особого цикла шины. Центральный процессор использует этот номер для обращения к таблице указателей, которую называют таблицей векторов прерываний, чтобы найти адрес процедуры обработки этого прерывания.

Микросхема 8259A содержит несколько регистров, которые центральный процессор может считывать и записывать, используя обычные циклы шины и выводы RD\overline{RD}(ReaD — чтение), WR\overline{WR}(WRite — запись), CS\overline{CS}(Chip Select — выбор элемента памяти) и $$\overline{A_0}. Когда программное обеспечение обработало прерывание и готово получить следующее, оно записывает специальный код в один из регистров, который вызывает сброс сигнала INT микросхемой 8259A, если не появляется другое прерывание. Регистры также могут записываться для того, чтобы перевести микросхему 8259A в один из нескольких режимов, и для выполнения некоторых других функций.

При наличии более 8 устройств ввода-вывода, микросхемы 8259A могут соединяться каскадом. В самой экстремальной ситуации все 8 входов могут быть связаны с выходами еще 8 микросхем 8259A, соединяя до 64 устройств ввода-вывода в двухступенчатую систему обработки прерываний. Контроллер-концентратор ввода/вывода Intel ICH10 I/O, одна из микросхем чипсета Core i7, содержат два контроллера прерываний 8259A. Таким образом, ICH10 имеет 15 внешних прерываний — на 1 меньше 16 прерываний двух контроллеров 8259A, так как одно из прерываний используется для каскадного подключения второго контроллера 8259A. Микросхема 8259A содержит несколько выводов для каскадного соединения, но мы их опустили ради простоты. В наши дни 8259A является составной частью другой микросхемы

Last updated