Низкое количество контактов - Low Pin Count - Wikipedia

Низкое количество контактов
Низкое количество контактов
Год создания1998
СделаноIntel
ЗаменяетСтандартная отраслевая архитектура
ЗамененоУлучшенная шина последовательного периферийного интерфейса (2016)
Ширина в битах4
Скорость33 МГц
СтильПараллельный
Интерфейс горячего подключениянет
Внешний интерфейснет
Интерфейс с низким числом выводов Чип Winbond
Модуль Trusted Platform Module, установленный на материнской плате и использующий шину LPC

В Низкое количество контактов автобус, или LPC автобус, это компьютерный автобус используется на IBM-совместимый персональные компьютеры для подключения устройств с низкой пропускной способностью к ЦПУ, такой как загрузочное ПЗУ, "устаревшие" устройства ввода-вывода (интегрированные в Супер ввод / вывод, Встроенный контроллер или же IPMI чип), и Модуль доверенной платформы (TPM).[1] «Устаревшие» устройства ввода-вывода обычно включают серийный и параллельно порты, PS / 2 клавиатура, PS / 2 мышь, и контроллер гибких дисков.

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

Обзор

Схема, показывающая шину LPC, соединяющую южный мост, флэш-ПЗУ и микросхему Super I / O

Шина LPC была представлена Intel в 1998 году как программно-совместимый заменитель Стандартная отраслевая архитектура (ISA) автобус. Это похоже на программное обеспечение ISA, хотя физически это совсем другое. Автобус ISA имеет 16 бит шина данных и 24-битная адресная шина, которые могут использоваться как для 16-битных Ввод / вывод адреса портов и 24-битные адреса памяти; оба работают со скоростью до 8,33МГц. Шина LPC использует много мультиплексированный четырехбитный - широкая шина, работающая с четырехкратной тактовой частотой (33,3 МГц) для передачи адресов и данных с аналогичной производительностью.

Основное преимущество LPC заключается в том, что для базовой шины требуется всего семь сигналов, что значительно сокращает количество выводов, необходимых для периферийных микросхем. Интегральной схеме, использующей LPC, потребуется на 30–72 контактов меньше, чем у ее эквивалента ISA. На современных материнских платах, которые часто переполнены, также проще проложить маршрут. Тактовая частота была выбрана, чтобы соответствовать PCI для дальнейшего облегчения интеграции. Кроме того, LPC задуман как шина только для материнской платы. Разъем не определен, и периферийное устройство LPC отсутствует дочерние платы доступны, за исключением доверенных платформенных модулей (TPM) с дочерней платой TPM, распиновка которой является собственностью производителя материнской платы[1] и ПОЧТОВЫЕ карты для отображения диагностических кодов BIOS. Обнаружение устройств не поддерживается; поскольку подключены только устройства материнской платы или определенные модели TPM, микропрограмма хоста (BIOS, UEFI ) изображение будет включать статическое описание любых устройств и их адресов ввода-вывода, которые должны присутствовать на конкретной материнской плате.

Сигналы

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

  • LCLK: Частота 33,3 МГц, предоставленная хостом. Может быть подключен к обычный PCI clock (PCICLK), поэтому не требуется выделенный контакт на хосте (южный мост).
  • LRESET #: Сброс шины с активным низким уровнем. Может быть подключен к PCIRST #.
  • LFRAME #: Этот сигнал активного низкого уровня указывает на начало транзакции шины LPC. Управляется только хозяином.
  • LAD [3: 0]: Эти четыре двунаправленных сигнала несут мультиплексированный адрес, данные и другую информацию. Как и два предыдущих управляющих сигнала, эти сигналы имеют слабую подтягивающие резисторы на них, поэтому они останутся в состоянии «все единицы», если не будут активно управляться устройством.

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

  • LDRQ #: Запрос мастера DMA / шины. Это вывод от устройства, которое хочет выполнить прямой доступ к памяти, либо через Intel 8237 совместимый контроллер DMA или протокол ведущего устройства шины, специфичный для LPC. Хост должен предоставить один соответствующий входной контакт для каждого устройства, которое в нем нуждается (минимум два).
  • SERIRQ: Серийный номер Intel 8259 совместимый сигнал прерывания.[2] Одна линия используется всеми устройствами LPC и хостом.
  • CLKRUN #: Открытый коллектор сигнал, используемый для перезапуска часов в системах, которые могут останавливать их для управления питанием. Не требуется, если хост не останавливает часы. Может быть подключен к эквивалентному сигналу PCI.
  • LPME #: Событие управления питанием с открытым коллектором, чтобы вывести систему из спящего режима. Эквивалентно сигналу PME # шины PCI.
  • LPCPD #: Дополнительный вывод от хоста для предупреждения устройства LPC о том, что питание скоро будет отключено, и он не должен делать никаких прерываний или запросов DMA.
  • LSMI №: Прерывание управления системой запрос. Это требуется только в том случае, если устройству LPC необходимо инициировать SMI # в ответ на доступ к шине (например, для выполнения программной эмуляции отсутствующего периферийного оборудования). В противном случае для запроса SMI можно использовать более медленный протокол SERIRQ.

Сроки и производительность

Шина LPC выводит свои электрические условные обозначения из обычный PCI. В частности, он разделяет ограничение, заключающееся в том, что требуется два цикла холостого хода, чтобы «развернуть» любой сигнал шины, чтобы другое устройство «разговаривало». В первом автобус активно ездят высоко. Во втором случае шина отключена и удерживается подтягивающими резисторами. Новое устройство может начать отправку данных по шине в третьем цикле. Операции LPC тратят большую часть своего времени на выполнение таких операций.

Как уже упоминалось, шина LPC разработана так, чтобы иметь производительность, аналогичную шине ISA. Точная скорость передачи данных зависит от типа доступа к шине (ввод / вывод, память, DMA, прошивка ) выполняется и скоростью хоста и устройства LPC. Все циклы шины, за исключением 128-байтового цикла чтения микропрограммного обеспечения, в котором 256 из 273 тактовых импульсов, потребляемых этим циклом, фактически используются для передачи данных, чтобы получить пропускную способность 15,63 МБ / с, большую часть времени тратят на накладные расходы, а не на Передача данных.[3] Следующий самый быстрый цикл шины, 32-битный цикл записи DMA в стиле ISA, который определен в этом стандарте, может передавать до 6,67 МБ / с, потому что только 8 из 20 тактов синхронизации, используемых в этом цикле шины, фактически передают данные с остальными циклов накладные.[3]

Один из самых медленных циклов шины - это простое чтение или запись в память, когда только 2 из 17 тактов (плюс любые состояния ожидания, наложенные устройством) передают данные со скоростью 1,96 МБ / с.

Приложения

Intel разработала шину LPC таким образом, чтобы образ BIOS системы мог храниться в одной микросхеме флэш-памяти, напрямую подключенной к шине LPC. Intel также сделала возможным размещать образы операционной системы и программные приложения на одной микросхеме флэш-памяти, напрямую подключенной к шине LPC, в качестве альтернативы. Параллельный ATA порт.[4]

А CPLD или же FPGA может реализовать хост LPC или периферийное устройство.[5]

Оригинальная игровая консоль Xbox имеет LPC. порт отладки который можно использовать, чтобы заставить Xbox загрузить новый код.[6][7]

ISA-совместимая операция

Все транзакции шины LPC инициируются хостом, который на короткое время устанавливает низкий уровень LFRAME #, по крайней мере, на один цикл. Во время последнего цикла с низким значением LFRAME # (называемого полем START) хост переводит LAD [3: 0] в нулевое значение, чтобы указать, что за ним последует ISA-совместимая транзакция.[3] Во время первого цикла с LFRAME # снова высокий, хост запускает поле «тип / направление цикла» (CTDIR): три бита, указывающие тип (ввод / вывод, память или DMA) и направление (чтение с устройства или запись в устройство) последующей передачи. Обычно за ним следует поле адреса передачи. Размер адреса зависит от типа цикла:

  • Для доступа ввода / вывода адрес составляет 16 бит, в течение 4 циклов первым передается старший полубайт.
  • Для доступа к системной памяти адрес составляет 32 бита, в течение 8 циклов первым передается старший полубайт.
  • Доступ к DMA в стиле ISA не имеет адреса как таковой, но два тактовых цикла передают полубайт, содержащий номер канала DMA, и второй полубайт, дающий размер передачи. Адрес памяти программируется в контроллере DMA в стиле ISA в наборе микросхем или в ЦП вне шины LPC. Увидеть раздел о прямом доступе к памяти ниже.

ISA-совместимое чтение и запись

Доступ к памяти и вводу-выводу разрешен только как однобайтовый.

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

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

После любого включения устройства следует как минимум один цикл SYNC. Количество переменное, под контролем устройства добавить как можно больше состояния ожидания как это нужно. Битовые комбинации 0101 и 0110 указывают, что циклы синхронизации будут продолжаться. Ожидание заканчивается, когда устройство запускает шаблон 0000 (готово) или 1010 (ошибка) на шине LAD в течение одного цикла.

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

Затем устройство снова поворачивает шину к хосту (еще два цикла), и передача завершается; хост может отправить поле START другой передачи в следующем цикле.

Если хост пытается выполнить передачу на неиспользуемый адрес, ни одно устройство не будет запускать циклы SYNC, и хост увидит 1111 на шине LAD. После просмотра трех циклов 1111 (два цикла разрешены, в дополнение к двум циклам поворота, для медленного устройства, чтобы декодировать адрес и начать управление шаблонами SYNC), хост прерывает операцию.

ISA-совместимый DMA

В Концентратор контроллера платформы (PCH) или южный мост Чип действует как хост и управляет шиной LPC. Он также действует как центральный контроллер DMA для устройств на этой шине, если контроллер памяти находится в наборе микросхем. В ЦП, которые содержат собственный контроллер (-ы) памяти, контроллер DMA расположен в ЦП. Для совместимости с программным обеспечением, изначально написанным для систем с шиной ISA, контроллер DMA содержит схемы, эквивалентные «устаревшим» встроенным периферийным устройствам IBM PC / AT архитектура, например, два программируемые контроллеры прерываний, то программируемый интервальный таймер, и два Контроллеры ISA DMA, которые все участвуют в "DMA в стиле ISA ".

ISA-совместимый DMA использует контроллер DMA, совместимый с Intel 8237, на хосте, который отслеживает расположение и длину буфера памяти, а также направление передачи. Устройство просто запрашивает обслуживание у заданного номера канала DMA, а хост выполняет доступ DMA на шине LPC.

Запросы DMA выполняются с использованием сигнала устройства LDRQ #. Обычно высокий уровень, устройство может указать переход на ISA-совместимой линии DRQ, отправив 6-битный запрос: начальный бит 0, 3-битный номер канала DMA (старший бит первым), один бит нового уровня запроса ( почти всегда 1, указывая, что требуется передача DMA) и последний стоповый бит. Затем хост выполняет цикл DMA. Циклы DMA называются в зависимости от доступа к памяти, поэтому «чтение» - это передача из памяти в устройство, а «запись» - это передача от устройства в память.

«Адрес» состоит из двух циклов: 3-битного номера канала и 1-битной индикации счетчика клемм (вывод TC шины ISA или выход EOP # 8237), за которыми следует 2-битный размер передачи.

По умолчанию каналы DMA 0–3 выполняют 8-битные передачи, а каналы 5-7 - 16-битные передачи; но специфичное для LPC расширение позволяет передавать 1, 2 или 4 байта по любому каналу. Когда выполняется многобайтовая передача, каждый байт имеет собственное поле SYNC, как описано ниже. Передачи DMA допускают дополнительное значение поля SYNC: образец 1001 указывает, что устройство готово с текущим байтом, а также желает передать больше байтов. Стандартный шаблон «готов» 0000 указывает, что это последний байт.

Обычный шаблон SYNC «готово» 0000 (или шаблон ошибки 1010) требует, чтобы хост остановил DMA после следующего за ним байта, пока устройство не сделает другой запрос DMA через сигнал LDRQ #. Шаблон 1001 указывает, что хост должен считать запрос DMA устройства все еще активным; хост продолжит передачу оставшихся байтов или начнет другую передачу, в зависимости от ситуации, без отдельного запроса через LDRQ #.

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

Сериализованные прерывания

Сериализованные прерывания передаются по одной общей линии SERIRQ с помощью часов. Каждому запросу прерывания выделяется временной интервал, при этом начальная синхронизация выполняется хостом.[2] В качестве упрощенного примера:

  • Хост устанавливает низкий уровень на линии SERIRQ в течение восьми тактов, затем высокий уровень для другого, и позволяет шине плавать в течение последнего цикла обработки.
  • Если устройству необходимо запросить IRQ №6, оно ожидает 6 × 3 = 18 тактов, затем устанавливает низкий уровень SERIRQ для одного тактового сигнала и высокий для другого.

Устройства могут синхронизироваться на первом этапе, потому что линия может быть переведена на низкий уровень только в течение двух или более последовательных тактов хостом: никакое другое устройство не устанавливает низкий уровень более чем на один такт. Хост распознает источники прерываний, наблюдая за линией и подсчитывая количество тактов: если он видит, что линия SERIRQ переведена на низкий уровень на восемнадцатом тактовом сигнале, то устанавливается IRQ 18/3 = 6.

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

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

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

Циклы LPC без ISA

Значения поля START, отличные от 0000, используются для обозначения различных несовместимых с ISA передач.[3] Поддерживаемые переводы:

СТАРТ = 1101, 1110
Память прошивки чтения и записи
Это позволяет размещать микропрограмму (BIOS) за пределами обычного адресного пространства периферийных устройств. Эти передачи аналогичны ISA-совместимым передачам, за исключением того, что:
  • Нет поля CTDIR; направление кодируется в поле START (1101 для чтения, 1110 для записи).
  • Поле выбора микросхемы из 4 бит позволяет выбрать один концентратор микропрограммного обеспечения из многих. Например, второй концентратор микропрограмм может использоваться для хранения резервной BIOS на случай, если основной BIOS поврежден вредоносным ПО или плохой прошивкой.
  • Адрес 28 бит. Первым передается старший полубайт.
  • За адресом следует поле размера. Поддерживаемые размеры чтения / записи - 1, 2 и 4 байта. Поддерживаемые размеры только для чтения - 16 или 128 байт.
  • Данные передаются одним непрерывным пакетом без состояний ожидания. Для всей передачи существует только одно поле SYNC.
СТАРТ = 0010, 0011
Мастер шины DMA
До двух устройств на шине LPC могут запросить передачу мастера шины, используя сигнал LDRQ # для запроса использования зарезервированного канала DMA 4. В этом случае хост начнет передачу со специальным полем START 0010 для мастера шины. 0 или 0011 для мастера шины 1, за которым сразу же следуют два цикла обработки, чтобы передать шину устройству, запрашивающему цикл DMA мастера шины. После циклов обработки передача происходит очень похоже на инициированную хостом передачу, совместимую с ISA, с измененными ролями:
  • Устройство отправляет одноцикловое поле CTDIR (разрешены только типы ввода-вывода и передачи памяти).
  • Устройство отправляет адрес (16 или 32 бита, в зависимости от типа). Первым передается старший полубайт.
  • Устройство отправляет поле размера передачи за один цикл, кодируя 8, 16 или 32 бита.
  • В случае записи следуют данные. В отличие от циклов DMA, совместимых с ISA, данные передаются одним пакетом без каких-либо состояний ожидания.
  • Затем идут два цикла оборота, когда шина LAD возвращается хосту.
  • Под управлением хоста вставляется поле SYNC переменной длины.
  • В случае чтения следуют данные, предоставленные хостом.
  • Это отличается от управления 16-битной шиной ISA, поскольку для управления шиной LPC требуется 32-битный адрес памяти при выполнении передачи в память, не используется канал DMA в стиле ISA и может поддерживаться 8, 16 или 32-битная передача; в то время как для управления 16-битной шиной ISA требуется 24-битный адрес памяти при выполнении передачи в память, требуется использование канала DMA в стиле ISA и не может выполняться 32-битная передача.[8]
СТАРТ = 1111
Прерывание транзакции
В любое время, хотя обычно в ответ на ошибку устройства во время поля SYNC, хост может прервать текущую транзакцию, установив LFRAME # в низкий уровень, не дожидаясь завершения текущей транзакции. Он должен удерживать его на низком уровне не менее 4 циклов, а затем вернуть его на высокий уровень с помощью специального значения поля START 1111. Это выполняет мягкий сброс шины LPC и оставляет шину в состоянии ожидания до тех пор, пока не будет начата следующая передача, снова установив LFRAME # на низкий уровень. .
СТАРТ = 0101
Доступ к местоположению TPM
Последние спецификации Trusted Platform Module определяют специальные циклы TPM-Read и TPM-Write, которые основаны на циклах ввода-вывода и записи ввода-вывода.[9] Эти циклы используют поле START с ранее зарезервированным значением 0101 и помещают 16-битное смещение адреса памяти в поле адреса.[9] Эти циклы используются при использовании средства определения местоположения TPM.[9]

Поддерживаемые периферийные устройства

Спецификация шины LPC ограничивает типы периферийных устройств, которые могут быть к ней подключены. Это разрешает только устройства, принадлежащие к следующим классам устройств: супер устройства ввода / вывода, интегрированный звук включая либо AC'97 устройства или устройства, которые реализовали Sound Blaster интерфейс, память общих приложений, включая энергонезависимая память BIOS, концентраторы прошивки и встроенные контроллеры. Более того, каждый класс ограничен тем, какие циклы шины разрешены для каждого класса.[3]

Устройствам супер-ввода-вывода и аудиоустройствам разрешено принимать циклы ввода-вывода, принимать сторонние циклы DMA в стиле ISA и генерировать мастер-циклы шины. Устройства памяти общего назначения, такие как энергонезависимая память BIOS и флеш-устройства LPC могут принимать циклы памяти. Концентраторам микропрограмм разрешено принимать циклы памяти микропрограмм. Встроенным контроллерам разрешено принимать циклы ввода-вывода и генерировать мастер-циклы шины. Некоторые циклы ISA, которые считались бесполезными для этих классов, были удалены. Они включают инициируемые хостом двухбайтовые циклы памяти и двухбайтовые циклы ввода-вывода, инициируемые хостом. Эти удаленные типы передачи могут быть инициированы хостом на шинах ISA, но не на шинах LPC. Хост должен моделировать двухбайтовые циклы, разделяя их на два однобайтовых цикла. Шина ISA имеет аналогичную концепцию, потому что исходная 8-битная шина ISA требовала 16-битных циклов для разделения. Следовательно, 16-битная шина ISA автоматически разделяет 16-битные циклы на 8-битные циклы в интересах 8-битных периферийных устройств ISA, если только устройство ISA, на которое нацелена 16-битная память или цикл ввода-вывода, не подтвердит сигнал, сообщающий шину, чтобы он мог принять запрошенную 16-битную передачу без помощи разделителя цикла ISA.[8] Управление шиной в стиле ISA было заменено в шине LPC протоколом управления шиной, который вообще не полагается на контроллеры DMA в стиле ISA. Это было сделано для того, чтобы снять ограничение ISA на то, какие циклы мастера шины могут инициировать устройство на каком канале DMA. Циклы шины в стиле ISA, унаследованные LPC от ISA, представляют собой однобайтовые циклы шины ввода-вывода, инициируемые хостом, однобайтовые циклы памяти, инициированные хостом, и одно- или двухбайтовые циклы DMA в стиле ISA, инициированные хостом. .[3]

Однако были добавлены некоторые циклы шины, отличные от ISA. Циклы, которые были добавлены для повышения производительности устройств помимо концентраторов микропрограмм, включают в себя циклы памяти мастера с одной, двумя и четырьмя байтами в стиле LPC; одно-, двух- и четырехбайтовые циклы ввода-вывода мастера шины; и 32-битный сторонний DMA, который соответствует всем ограничениям стороннего DMA в стиле ISA, за исключением того факта, что он может выполнять 32-битную передачу. Любое устройство, которому разрешено принимать традиционный DMA в стиле ISA, также может использовать этот 32-битный DMA в стиле ISA. Хост мог инициировать 32-битные циклы DMA в стиле ISA, а периферийные устройства могли инициировать циклы мастера шины. Концентраторы микропрограмм потребляли циклы микропрограмм, которые были разработаны только для концентраторов микропрограмм, так что адреса микропрограмм и обычные адреса ввода-вывода, отображаемые в памяти, могли перекрываться без конфликтов. При чтении из памяти микропрограммного обеспечения можно было прочитать 1, 2, 4, 16 или 128 байтов за один раз. При записи в память микропрограмм можно записывать один, два или четыре байта одновременно.[3]

Смотрите также

Рекомендации

  1. ^ а б Йоханнес Винтер (2011). "Угонщик автобуса LPC". tugraz.at. Получено 2013-12-19.
  2. ^ а б Поддержка Serialized IRQ для систем PCI (Редакция 6.0; 1 сентября 1995 г.)
  3. ^ а б c d е ж грамм «Спецификация интерфейса Intel Chipsets Low Pin Count». www.intel.com. Intel. В архиве из оригинала от 14.02.2017.
  4. ^ Даган, Шарон (2002-05-03). «Альтернативы флэш-памяти для шины с малым числом выводов (LPC)». EE Times.
  5. ^ "Контроллер шины LPC. Эталонный проект RD1049". www.latticesemi.com. Решетчатый полупроводник. Архивировано из оригинал (PDF) на 2013-08-07.
  6. ^ Хуанг, Эндрю (2003). Взлом Xbox: введение в обратный инжиниринг. С. 48, 151. ISBN  1-59327-029-1.
  7. ^ О. Тайс.«Модификация XBox». раздел «Детали ЛКП».
  8. ^ а б Intel Corp. (25 апреля 2003 г.), «Глава 12: Автобус ISA» (PDF), Архитектура ПК для технических специалистов: уровень 1, получено 2015-01-27
  9. ^ а б c "Спецификация профиля TPM (PTP) клиентской платформы TCG для ПК" (PDF). Группа доверенных вычислений. 26 января 2015. С. 29, 123–124.. Получено 5 октября, 2016..

внешняя ссылка