Область техники, к которой относится изобретение
Настоящее раскрываемое изобретение относится в общем к области компьютерных разработок, а более конкретно - к разработке программного обеспечения, включающей в себя координацию взаимозависимых систем с ограничениями.
Уровень техники
Успехи в обработке полупроводников и логическом проектировании позволили увеличить количество логических схем, которое может находиться на устройствах с интегральными схемами. Как следствие этого, конфигурации компьютерных систем эволюционировали от единственной или множественных интегральных схем в системе до множественных ядер, множественных аппаратных потоков обработки и множественных логических процессоров, находящихся на отдельных интегральных схемах, равно как и других интерфейсах, интегрируемых в пределах таких процессоров. Процессор или интегральная схема обычно содержат один физический кристалл процессора, причем этот кристалл процессора может включать в себя любое количество ядер, аппаратных потоков обработки, логических процессоров, интерфейсов, памяти, концентраторов-контроллеров и так далее.
В результате большей возможности вмещать больше вычислительной мощности в меньших по размеру корпусах, выросла популярность малых вычислительных устройств. Количество смартфонов, планшетных компьютеров, ультратонких ноутбуков и другого пользовательского оборудования росло по экспоненте. Однако эти меньшие по размеру устройства полагаются в отношении как хранения данных, так и сложной обработки данных, которая выходит за рамки возможностей этого форм-фактора, на серверы. Следовательно, спрос на рынке высокопроизводительных вычислений (то есть на серверное пространство) также увеличился. Например, в современных серверах обычно имеется не только одиночный процессор с множественными ядрами, но также и множественные физические процессоры (также именуемые как множественные панельки) для увеличения вычислительной мощности. Но по мере того как вместе с количеством устройств в вычислительной системе растут возможности по обработке данных, все более критически важной становится связь между панельками и другими устройствами.
В сущности, межсоединения проделали путь от более традиционных многоотводных шин, которые главным образом имели дело с электрической связью, до архитектур межсоединения, в их полном расцвете, которые облегчают быстрый обмен данными. К сожалению, поскольку от будущих процессоров требуется потреблять данные с еще более высокими скоростями, то соответствующее требование предъявляется и к возможностям существующих архитектур межсоединений.
Краткое описание чертежей
На фиг. 1 проиллюстрирована упрощенная структурная схема системы, включающая в себя двухточечное межсоединение последовательной передачи данных, подсоединяющее устройства ввода-вывода в вычислительной системе в соответствии с одним вариантом реализации изобретения;
На фиг. 2 проиллюстрирована упрощенная блок-схема многоуровневого стека протоколов, соответствующего одному варианту реализации изобретения;
На фиг. 3 проиллюстрирован вариант реализации описателя транзакции.
На фиг. 4 проиллюстрирован вариант реализации двухточечного канала последовательной передачи данных.
На фиг. 5 проиллюстрированы варианты реализации возможных конфигураций системы высокопроизводительных межсоединений (HPI-межсоединений).
На фиг. 6 проиллюстрирован вариант реализации многоуровневого стека протоколов, связанного с HPI-межсоединением.
На фиг. 7 проиллюстрировано представление приводимого в качестве примера конечного автомата.
На фиг. 8 проиллюстрированы приводимые в качестве примера управляющие надпоследовательности.
На фиг. 9 проиллюстрирована схема последовательности операций, представляющая приводимое в качестве примера вхождение в передающее состояние с частичной шириной.
На фиг. 10 проиллюстрировано представление приводимого в качестве примера флита, отправленного по приводимому в качестве примера каналу передачи данных, имеющему двадцать путей передачи данных.
На фиг. 11 проиллюстрировано представление приводимого в качестве примера флита, отправленного по приводимому в качестве примера каналу передачи данных, имеющему восемь путей передачи данных.
На фиг. 12 проиллюстрирован вариант реализации структурной схемы для вычислительной системы, включающей в себя многоядерный процессор.
На фиг. 13 проиллюстрирован другой вариант реализации структурной схемы для вычислительной системы, включающей в себя многоядерный процессор.
На фиг. 14 проиллюстрирован вариант реализации структурной схемы для процессора.
На фиг. 15 проиллюстрирован другой вариант реализации структурной схемы для вычислительной системы, включающей в себя процессор.
На фиг. 16 проиллюстрирован вариант реализации блока для вычислительной системы, включающей в себя множественные сокеты процессоров.
На фиг. 17 проиллюстрирован другой вариант реализации структурной схемы для вычислительной системы.
Одинаковые ссылочные позиции и обозначения на различных чертежах указывают одинаковые элементы.
Подробное описание изобретения
В нижеследующем описании, в целях обеспечения глубокого понимания настоящего изобретения, приводятся многочисленные конкретные подробности, такие как примеры конкретных типов процессоров и конфигураций системы, конкретных конструкций аппаратных средств, конкретных подробностей архитектуры и микроархитектуры, конкретных конфигураций регистров, конкретных типов команд, конкретных компонентов системы, конкретных стадий процессорного конвейера, конкретных слоев внутрисхемных соединений, конкретных конфигураций пакетов/транзакций, конкретных наименований транзакций, обменов данными по конкретным протоколам, конкретных ширин канала передачи данных, конкретных реализаций и функционирования и так далее. Однако специалисту в данной области техники может быть очевидно, что эти конкретные подробности не обязательно должны использоваться для осуществления на практике предмета настоящего раскрываемого изобретения. В других случаях, во избежание излишне затемнения сути настоящего раскрываемого изобретения, не приводится очень детализированное описание известных компонентов или способов, таких как специальные и альтернативные архитектуры процессора, конкретные логические схемы/код для описанных алгоритмов, конкретный микропрограммный код, функционирование межсоединений нижнего уровня, конкретные логические конфигурации, конкретные технологии изготовления и материалы, конкретные реализации компилятора, конкретное выражение алгоритмов в коде, конкретные технология/логика выключения и отпирания и другие подробности функционирования компьютерной системы.
Хотя нижеследующие варианты реализации изобретения могут быть описаны в отношении сохранения энергии, энергетической эффективности, эффективности обработки данных и так далее в специальных интегральных схемах, таких как в вычислительных платформах или микропроцессорах, другие варианты реализации изобретения применимы к другим типам интегральных схем и логических устройств. Технологии и идеи, аналогичные описанным здесь вариантам реализации изобретения, могут быть применены к другим типам схем или полупроводниковых устройств, которые также могут получить пользу от таких характеристик. Например, раскрытые варианты реализации изобретения не ограничены компьютерной системой сервера, настольными компьютерными системами, портативными компьютерами, компьютерами Ultrabooks™ (сверхтонкими "ноутбуками"), но могут также использоваться в других устройствах, таких как карманные устройства, "смартфоны", планшетные компьютеры, другие тонкие "ноутбуки", устройства "систем, встроенных в кристалл" (SOC-систем) и встраиваемые варианты применения. Некоторые примеры карманных устройств включают в себя сотовые телефоны, устройства, поддерживающие интернет-протокол, цифровые фотокамеры, персональные цифровые секретари (PDA) и карманные персональные компьютеры. Здесь, технологии, аналогичные высокопроизводительному межсоединению могут быть применены для того, чтобы повысить производительность (или даже сберечь энергию) в межсоединении с низким энергопотреблением. Встроенные варианты применения обычно включают в себя микроконтроллер, процессор цифровой обработки сигналов (DSP-процессор), внутрикристальную систему, сетевые компьютеры (NetPC (сетевые персональные компьютеры)), телевизионные абонентские приставки, сетевые концентраторы, коммутаторы глобальной сети (WAN) или любую другую систему, которая может выполнять функции и операции, описываемые ниже. Кроме того, описываемые здесь аппараты, способы и системы не ограничены физическими вычислительными устройствами, но могут также относиться к программным оптимизациям для энергосбережения и эффективности. Как можно легко понять из приводимого ниже описания, варианты реализации способов, аппаратов и систем, описываемых здесь (будь то в отношении аппаратных средств, программно-аппаратных средств, программных средств или их сочетания), могут рассматриваться как существенно важные для будущего "зеленой технологии", сбалансированного с соображениями производительности.
По мере развития вычислительных систем компоненты этих систем становятся более сложными. Архитектура межсоединений для сопряжения компонентов и обмена данными между ними также усложняется таким образом, чтобы обеспечивать удовлетворение потребности в ширине полосы пропускания для оптимального функционирования компонентов. Кроме того, различным сегментам рынка требуются, для удовлетворения соответствующего рынка, различные аспекты архитектуры межсоединений. Например, серверам требуется более высокая производительность, в то время как в экосистеме мобильных устройств иногда можно пожертвовать общей производительностью ради сбережения энергии. Тем не менее, единая цель большинства структур заключается в том, чтобы обеспечить максимально возможную производительность при максимальном сбережении энергии. Кроме того, описываемый здесь предмет изобретения может потенциально принести пользу большому разнообразию различных межсоединений.
В соответствии с одним или более принципами, описываемыми здесь среди других примеров, потенциально может быть усовершенствована, среди других примеров, архитектура структуры межсоединения PCIe (Скоростное межсоединение PCI (межсоединение периферийных компонентов)) и архитектура структуры межсоединения QuickPath (межсоединением QPI (Межсоединением тракта быстрой передачи данных)). Например, основная цель межсоединения PCIe заключается в том, чтобы позволить компонентам и устройствам от различных поставщиков взаимодействовать в открытой архитектуре, охватывая множественные сегменты рынка; клиентов (настольные компьютеры и мобильные устройства), серверы (стандартные серверы и серверы предприятий) и встроенные устройства и устройства связи. Межсоединение PCI Express (Скоростное межсоединение периферийных компонентов) представляет собой высокопроизводительное межсоединение ввода-вывода общего назначения, определенное для широкого круга будущих платформ вычисления и связи. Некоторые атрибуты межсоединения PCI, такие как его модели использования, архитектура загрузки-хранения и программируемые интерфейсы, были сохранены при пересмотрах этого стандарта, тогда как существовавшие ранее реализации параллельной шины были заменены значительно расширяемым полностью последовательным интерфейсом. Более свежие версии межсоединения PCI Express используют достижения в области двухточечных межсоединений, технологии на основе переключателя, и пакетизированный протокол для того, чтобы предоставить новые уровни производительности и функциональных возможностей. Среди некоторых из усовершенствованных функциональных возможностей, поддерживаемых межсоединением PCI Express имеются: администрирование энергопотребления, качество обслуживания (QoS), поддержка Hot-Plug/Hot-Swap (подключения устройств без выключения системы/смены устройств без выключения системы), обеспечение целостности данных и обработка ошибок. Хотя основное обсуждение в данном описании относится к новой архитектуре высокопроизводительного межсоединения (HPI-межсоединения), аспекты описываемого здесь изобретения могут быть применены к другим архитектурам межсоединений, таким как PCIe - совместимой архитектуре, QPI - совместимой архитектуре, MIPI - совместимой архитектуре, высокопроизводительной архитектуре или другой известной архитектуре межсоединения.
Обратимся к фиг. 1, на которой проиллюстрирован вариант реализации структуры, составленной из двухточечных каналов передачи данных, которые соединяют между собой некоторый набор компонентов. Система (100) включает в себя процессор (105) и системную память (110), сопряженные с концентратором-контроллером (115). Процессор (105) может включать в себя любой процессорный элемент, такой как микропроцессор, главный процессор, встроенный процессор, сопроцессор или другой процессор. Процессор (105) сопряжен с концентратором-контроллером (115) через управляющую шину (FSB-шину) (106). В одном варианте реализации изобретения FSB-шина (106) представляет собой двухточечное межсоединение последовательной передачи данных, которое описывается ниже. В другом варианте реализации изобретения канал (106) передачи данных включает в себя последовательную, дифференциальную архитектуру межсоединения, которая совместима со стандартом дифференциального межсоединения.
Системная память (110) включает в себя любое запоминающее устройство, такое как оперативное запоминающее устройство (RAM), энергонезависимое (NV) запоминающее устройство или другое запоминающее устройство, доступное для устройств в системе (100). Системная память (110) сопряжена с концентратором-контроллером (115) через интерфейс (116) памяти. Примеры интерфейса памяти включают в себя интерфейс (DDR) памяти с удвоенной скоростью передачи данных, двухканальный интерфейс памяти с удвоенной скоростью передачи данных и интерфейс памяти динамического оперативного запоминающего устройства (DRAM).
В одном варианте реализации изобретения концентратор-контроллер (115) может включать в себя корневой концентратор, корневой комплекс или корневой контроллер, такие как в иерархии межсоединения PCIe. Примеры концентратора-контроллера (115) включают в себя набор микросхем, концентратор-контроллер (МСН) памяти, "северный мост", концентратор-контроллер (ICH) межсоединения, "южный мост" и корневой концентратор-контроллер. Часто термин "набор микросхем" относится к двум физически отдельным концентраторам-контроллерам, например, к концентратору-контроллеру (МСН) памяти, сопряженному с концентратором-контроллером (ICH) межсоединения. Отметим, что имеющиеся в настоящее время системы часто включают в себя концентратор-контроллер (МСН) памяти, интегрированный с процессором (105), в то время как контроллер (115) должен поддерживать связь с устройствами ввода-вывода способом, аналогичным тому, что описан ниже. В некоторых вариантах реализации изобретения, посредством корневого комплекса (115) дополнительно поддерживается одноранговая маршрутизация.
Здесь, концентратор-контроллер (115) сопряжен с переключателем/мостом (120) через канал (119) последовательной передачи данных. Модули (117) и (121) ввода/вывода, которые могут также упоминаться как интерфейсы/порты (117) и (121), могут включать в себя/реализовывать многоуровневый стек протоколов для обеспечения связи между концентратором-контроллером (115) и переключателем (120). В одном варианте реализации изобретения, с переключателем (120) способны сопрягаться множественные устройства.
Переключатель/мост (120) осуществляет маршрутизацию пакетов/сообщений от устройства (125) по восходящему потоку (данных), то есть вверх по иерархии по направлению к корневому комплексу, к концентратору-контроллеру (115), и по нисходящему потоку (данных), то есть вниз по иерархии в направлении от корневого контроллера, от процессора (105) или системной памяти (110) к устройству (125). Переключатель (120), в одном варианте реализации изобретения, упоминается как логический узел множественных виртуальных мостовых устройств "PCI-c-PCI". Устройство (125) включает в себя любое внутреннее или внешнее устройство или компонент, подлежащий сопряжению с электронной системой, такое как устройство ввода/вывода, сетевой интерфейсный контроллер (NIC-контроллер), расширительная плата, процессор обработки звукового сигнала, сетевой процессор, накопитель на жестких магнитных дисках, запоминающее устройство, CD/DVD ROM (постоянное запоминающее устройство на компакт-дисках/универсальных цифровых дисках), монитор, принтер, "мышь", клавиатура, маршрутизатор, портативное запоминающее устройство, устройство Firewire, устройство с универсальной последовательной шиной (USB-шиной), сканер и другие устройства ввода/вывода. Часто в терминологии стандарта PCIe, такого рода устройство упоминается как "конечная точка". Устройство (125) может включать в себя, хотя это особо и не показано, мост (например, мост от PCIe к PCI/PCI - X) для поддержания преемственности или других версий устройств или структур межсоединения, поддерживаемых такими устройствами.
С концентратором-контроллером (115) через канал (132) последовательной передачи данных может также быть сопряжен графический ускоритель (130). В одном варианте реализации изобретения, графический ускоритель (130) сопряжен с концентратором-контроллером (МСН) памяти, который сопряжен с концентратором-контроллером (ICH) межсоединения. Переключатель (120), и, соответственно устройство ввода/вывода (125), в таком случае сопрягаются с концентратором-контроллером (ICH) межсоединения. Модули ввода-вывода (131) и (118) должны также реализовывать многоуровневый стек протоколов для поддержания связи между графическим ускорителем (130) и концентратором-контроллером (115). Аналогично тому, что было сказано выше в отношении концентратора-контроллера (МСН) памяти, сам графический контроллер или графический ускоритель (130) может быть интегрирован в процессор (105).
Обратимся к фиг. 2, на которой проиллюстрирован вариант реализации многоуровневого стека протоколов. Многоуровневый стек (200) протоколов может включать в себя любую форму многоуровневого стека протоколов связи, такую как стек QPI, стек PCIe, стек для межсоединения следующего поколения для высокопроизводительного вычисления (HPI-стек) или другой многоуровневый стек. В одном варианте реализации изобретения, стек (200) протоколов может включать в себя транзакционный уровень (205), канальный уровень (210) и физический уровень (220). Интерфейс, такой как интерфейсы (117), (118), (121), (122), (126) и (131), показанные на фиг. 1, могут быть представлены как стек (200) протоколов связи. Представление в виде стека протоколов связи может также упоминаться как модуль или интерфейс, реализующий/включающий в себя стек протоколов.
Для обмена информацией между компонентами могут использоваться пакеты. Пакеты могут быть сформированы на транзакционном уровне (205) и уровне (210) канала передачи данных для того, чтобы переносить информацию от передающего компонента к принимающему компоненту. Поскольку передаваемые пакеты проходят через другие уровни, то они дополняются дополнительной информацией, используемой для обработки пакетов на этих уровнях. На стороне приема происходит обратный процесс, и пакеты преобразуются из их представления физического уровня (220) в представление уровня канала передачи данных и, наконец (для пакетов транзакционного уровня), в форму, которая может быть обработана на транзакционном уровне (205) принимающего устройства.
В одном варианте реализации изобретения, транзакционный уровень (205) может обеспечивать интерфейс между ядром обработки данных в устройстве и архитектурой межсоединения, такой как уровень (210) канала передачи данных и физический уровень (220). Отметим в этой связи, что основная обязанность транзакционного уровня (205) может включать в себя сборку и разборку пакетов (то есть пакетов транзакционного уровня или TLP-пакетов). Трансляционный уровень (205) может также администрировать управление потоками для TLP-пакетов, основанное на "кредитах" (разрешениях на передачу некоторого количества данных). В некоторых вариантах осуществления изобретения могут, среди других примеров, использоваться "разделенные" транзакции, то есть транзакции с запросом и ответом, разделенными временем, что позволяет каналу передачи данных передавать другой трафик в то время, пока целевое устройство собирает данные для ответа.
Управление потоками, основанное на "кредитах", может быть использовано для того, чтобы реализовывать виртуальные каналы и сети, использующие эту структуру межсоединения. В одном примере, устройство может объявлять некоторое начальное количество "кредитов" для каждого из приемных буферов на транзакционном уровне (205). Внешнее устройство на противоположном конце канала передачи данных, такое как концентратор-контроллер (115), показанный на фиг. 1, может подсчитывать количество "кредитов", потребляемое каждым TLP-пакетом. Транзакция может быть передана в том случае, если транзакция не превышает предел "кредитов". После получения ответа количество "кредита" восстанавливается. Один пример преимущества, среди других потенциальных преимуществ, такой схемы с "кредитами" заключается в том, что время задержки возвращения "кредита" не влияет на производительность, при том условии, что предел "кредитов" не нарушен.
В одном варианте реализации изобретения, четыре транзакционных адресных пространства могут включать в себя адресное пространство конфигурации, адресное пространство памяти, адресное пространство ввода/вывода и адресное пространство сообщений. Транзакции пространства памяти включают в себя один или более запросов чтения и запросов записи для передачи данных в отображенные в памяти места. В одном варианте реализации изобретения, транзакции пространства памяти способны использовать два различных формата адреса, например, короткий формат адреса, такой как 32-разрядный адрес, или длинный формат адреса, такой как 64-разрядный адрес. Транзакции пространства конфигурации могут быть использованы для того, чтобы получать доступ к пространству конфигурации различных устройств, подсоединяемых к межсоединению. Транзакции в отношении пространства конфигурации могут включать в себя запросы чтения и запросы записи. Транзакции пространства сообщений (или просто сообщения) могут также быть определены таким образом, чтобы поддерживать внутриполосную связь между агентами межсоединения. Следовательно, в одном приводимом в качестве примера варианте реализации, транзакционный уровень (205) может осуществлять сборку заголовка/полезных данных (206) пакета.
Быстро рассмотрим фиг. 3, на которой проиллюстрирован приводимый в качестве примера вариант реализации дескриптора пакета транзакционного уровня. В одном варианте реализации изобретения, дескриптор (300) транзакции может представлять собой механизм для передачи информации о транзакции. В этом отношении отметим, что дескриптор (300) транзакции поддерживает идентификацию транзакций в системе. Другие потенциальные варианты использования включают в себя отслеживание изменений упорядочивания транзакции по умолчанию и ассоциативную привязку транзакции к каналам. Например, дескриптор (300) транзакции может включать в себя поле (302) глобального идентификатора, поле (304) атрибутов и поле (306) идентификатора канала. В проиллюстрированном примере поле (302) глобального идентификатора изображено содержащим поле (308) локального идентификатора транзакции и поле (310) идентификатора источника. В одном варианте реализации изобретения, глобальный идентификатор (302) транзакции является уникальным для всех невыполненных запросов.
В соответствии с одним вариантом осуществления изобретения, поле (308) локального идентификатора транзакции представляет собой поле, сгенерированное запрашивающим агентом, и может быть уникальным для всех невыполненных запросов, которые требуют своего завершения для этого запрашивающего агента. Кроме того, в этом примере, идентификатор (310) источника уникальным образом определяет запрашивающего агента в пределах иерархии межсоединений. Соответственно, вместе с идентификатором (310) источника, поле (308) локального идентификатора транзакции обеспечивают глобальную идентификацию транзакции в пределах домена иерархии.
Поле (304) атрибутов определяет характеристики и связи транзакции. В этом отношении отметим, что поле (304) атрибутов потенциально используется для того, чтобы предоставлять дополнительную информацию, которая позволяет изменять обработку транзакций по умолчанию. В одном варианте реализации изобретения, поле (304) атрибутов включает в себя поле (312) приоритета, зарезервированное поле (314), поле (316) упорядочивания и поле (318) защиты от "прослушивания". Здесь, подполе (312) приоритета может быть изменено инициатором для задания приоритета транзакции. Зарезервированное поле (314) атрибутов оставлено зарезервированным для будущего использования или использования, определенного поставщиком оборудования. С использованием зарезервированного поля (314) атрибутов могут быть воплощены возможные модели использования, использующие приоритет или атрибуты секретности.
В этом примере, поле (316) атрибута упорядочивания используется для предоставления дополнительной информации, сообщающей тип упорядочивания, который может изменять правила упорядочивания по умолчанию. В соответствии с одним примером варианта осуществления изобретения, атрибут упорядочивания, составляющий "0", означает то, что должны быть применены правила упорядочивания по умолчанию, тогда как атрибут упорядочивания, составляющий "1", означает смягченное упорядочивание, при котором записи могут обгонять записи в том же самом направлении, а завершения чтения могут обгонять записи в том же самом направлении. Поле (318) атрибута "прослушивания" используется для определения того, не "прослушиваются" ли транзакции. Как показано на фигуре, поле (306) идентификатора канала идентифицирует канал, с которым связана транзакция.
Возвращаясь к обсуждению фиг. 2, отметим, что канальный уровень (210), также именуемый как уровень (210) канала передачи данных, может действовать в качестве промежуточной стадии между транзакционным уровнем (205) и физическим уровнем (220). В одном варианте реализации изобретения, обязанность уровня (210) канала передачи данных заключается в обеспечении надежного механизма для обмена пакетами транзакционного уровня (TLP-пакетами) между двумя компонентами по каналу передачи данных. Одна сторона уровня (210) канала передачи данных принимает TLP-пакеты, собранные на транзакционном уровне (205), применяет идентификатор (211) последовательности пакетов, то есть идентификационный номер или номер пакета, вычисляет и применяет код обнаружения ошибок, то есть циклический избыточный код (212), и представляет измененные TLP-пакеты на физический уровень (220) для передачи на физическом уровне внешнему устройству.
В одном примере, физический уровень (220) включает в себя логический субблок (221) и электрический субблок (222) для физической передачи пакета на внешнее устройство. Здесь, логический субблок (221) ответствен за "цифровые" функции физического уровня (221). В этом отношении отметим, что логический субблок может включать в себя секцию передатчика, предназначенную для подготовки исходящей информации к передаче физическим субблоком (222), и секцию приемника, предназначенную для идентификации и подготовки принятой информации перед передачей ее на канальный уровень (210).
Физический блок (222) включает в себя передатчик и приемник. Логический субблок (221) снабжает передатчик символами, которые трансмиттер преобразовывает в последовательную форму и передает на внешнее устройство. Приемник снабжается преобразованными в последовательную форму символами, поступающими от внешнего устройства, и преобразовывает принятые сигналы в поток битов. Поток битов преобразуется из последовательной формы в параллельную и подается на логический субблок (221). В одном приводимом в качестве примера варианте реализации изобретения используется код передачи 8 битов / 10 битов, при котором передаются/принимаются десятибитовые символы. При этом для того чтобы кадрировать пакет кадрами (223) используются специальные символы. В дополнение к этому, в одном примере приемник также обеспечивает синхронизацию символа, восстанавливаемую из поступающего последовательного потока данных.
Как было сказано выше, хотя в отношении конкретного варианта реализации стека протоколов (такого как стек протоколов стандарта PCIe) рассмотрены транзакционный уровень (205), канальный уровень (210) и физический уровень (220), многоуровневый стек (200) протоколов этим не ограничен. Фактически, любой многоуровневый протокол может быть включен сюда/реализован и наделен обсуждаемыми здесь признаками. В качестве примера, порт/интерфейс, который представлен как многоуровневый протокол, может включать в себя: (1) первый уровень для сборки пакетов, то есть транзакционный уровень; второй уровень для создания последовательности пакетов, то есть канальный уровень; и третий уровень для передачи пакетов, то есть физический уровень. В качестве конкретного примера используется многоуровневый протокол высокопроизводительного межсоединения, который описан в данном описании.
Обратимся далее к фиг. 4, на которой проиллюстрирован приводимый в качестве примера вариант реализации структуры двухточечного канала последовательной передачи данных. Двухточечный канал последовательной передачи данных может включать в себя любой тракт передачи данных, предназначенный для передачи последовательно передаваемых данных. В показанном варианте реализации изобретения, канал передачи данных может включать в себя две сигнальные пары низкого напряжения с дифференциальным возбуждением: передающую пару (406)/(411) и принимающую пару (412)/(407). Соответственно, устройство (405) включает в себя передающую логическую схему (406) для передачи данных на устройство (410) и принимающую логическую схему (407) для приема данных от устройства (410). Другими словами, в состав некоторых вариантов осуществления канала передачи данных входят два передающих тракта, то есть тракты (416) и (417), и два принимающих тракта, то есть тракты (418) и (419).
Термин "тракт передачи данных" относится к любому тракту для передачи данных, такому как линия передачи данных, медная линия, оптическая линия, канал беспроводной связи, канал связи в инфракрасном диапазоне или другой тракт связи. Соединение между двумя устройствами, такими как устройство (405) и устройство (410), именуется как канал передачи данных, такой как канал (415) передачи данных. Канал передачи данных может поддерживать один путь передачи данных - каждый путь передачи данных представляет набор дифференциальных сигнальных пар (одна пара для передачи, одна пара для приема). Для масштабирования ширины полосы пропускания канал передачи данных может объединять множественные пути передачи данных, обозначаемые как xN, где N представляет собой любую поддерживаемую ширину канала передачи данных, такую как 1, 2, 4, 8, 12, 16, 32, 64 или шире.
Дифференциальная пара может относиться к двум трактам передачи данных, таким как линии (416) и (417), для передачи разностных сигналов. В качестве примера, когда линия (416) переключается с низкого уровня напряжения на высокий уровень напряжения, то есть при нарастающем фронте, линия (417) переводится с высокого логического уровня на низкий логический уровень, то есть на падающий фронт. Разностные сигналы потенциально демонстрируют лучшие электрические характеристики, такие как лучшая целостность сигнала, то есть перекрестное взаимодействие, "выброс" напряжения вверх/вниз, "звон", среди других приводимых в качестве примера преимуществ. Это делает возможным лучшее окно синхронизации, которое делает возможным более высокие частоты передачи.
В одном варианте реализации изобретения предлагается новое высокопроизводительное межсоединение (HPI-межсоединение). HPI-межсоединение может включать в себя кэш - когерентное основанное на канале передачи данных межсоединение следующего поколения. В качестве одного примера, HPI-межсоединение может быть использовано на высокопроизводительных вычислительных платформах, таких как рабочие станции или серверы, включая сюда системы, где для соединения процессоров, ускорителей, устройств ввода/вывода и тому подобного обычно используются протокол PCIe (Скоростного межсоединения периферийных компонентов) или другой протокол межсоединения. Однако HPI-межсоединение этим не ограничено. Вместо этого, HPI-межсоединение может быть использовано в любой из описываемых здесь систем или платформ. Кроме того, отдельные разработанные идеи могут быть применены к другим межсоединениям и платформам, таким как PCIe, MIPI, QPI и так далее.
Для поддержания множественных устройств, в одном приводимом в качестве примера варианте осуществления изобретения, HPI-межсоединение может включать в себя агностика архитектуры набора команд (то есть HPI-межсоединение может быть реализовано во множественных различных устройствах). В другом сценарии HPI-межсоединение может также быть использовано для подсоединения высокопроизводительных устройств ввода/вывода, а не только процессоров или ускорителей. Например, высокопроизводительное устройство стандарта PCIe может быть подсоединено к HPI-межсоединению через соответствующий мост преобразования (то есть из HPI в PCIe). Кроме того, каналы передачи данных HPI-межсоединения могут быть использованы многими устройствами, основанными на HPI-межсоединении, такими как процессорами, различными способами (например, звездами, кольцами, многоугольниками и так далее). На фиг. 5 проиллюстрированы приводимые в качестве примера варианты осуществления множественных потенциальных многосортных конфигураций. Двухсокетная конфигурация (505), как изображено на фигуре, может включать в себя два HPI-канала передачи данных (канала передачи данных по HPI-межсоединению); однако в других вариантах осуществления изобретения может использоваться один HPI-канал передачи данных. Для более крупных топологий может быть использована любая конфигурация до тех пор, пока может быть присвоен идентификатор (ID) и есть некоторая форма виртуального тракта, среди других дополнительных признаков или заменяющих признаков. Как показано на фигуре, в одном примере, четырехсокетная конфигурация (510) имеет HPI-канал передачи данных, идущий от каждого процессора к другому. Но на восьмисокетном варианте осуществления изобретения, который показан на конфигурации (515), не каждый сокет напрямую соединен друг с другом через HPI-канал передачи данных. Однако если между процессорами существует некоторый виртуальный тракт или канал, то эта конфигурация поддерживается. Диапазон поддерживаемых процессоров включает в себя 2-32 в собственном домене. Более высокие количества процессоров могут быть достигнуты, среди других примеров, посредством использования множественных доменов или других межсоединений между контроллерами узлов.
Архитектура HPI-межсоединения включает в себя определение многоуровневую архитектуру протоколов, включающую в себя, в некоторых примерах, уровни протоколов (когерентный, некогерентный и, по желанию, другие основанные на памяти протоколы), уровень маршрутизации, канальный уровень и физический уровень. Кроме того, HPI-межсоединение может, среди других примеров, дополнительно включать в себя расширения, связанные с администраторами энергопотребления (такими как звенья управления энергопотреблением (PCU-звенья)), конструкцией для тестирования и отладки (DFT-конструкцией), устранением неисправностей, регистрами, безопасностью. На фиг. 5 проиллюстрирован вариант реализации приводимого в качестве примера многоуровневого стека протоколов HPI-межсоединения. В некоторых вариантах осуществления изобретения, по меньшей мере, некоторые из уровней, проиллюстрированных на фиг. 5, могут быть необязательными. Каждый уровень имеет дело со своим собственным уровнем гранулярности или кванта информации (уровень протокола (605 а, b) - с пакетами, (630), канальный уровень (610 а, b) - с флитами (flit) (635), а физический уровень (605 а, b) - с фитами (phit) (640)). Отметим, что пакет, в некоторых вариантах реализации изобретения, может, основываясь на варианте осуществления, включать в себя неполные флиты, единственный флит или множественные флиты.
В качестве первого примера, ширина фита (640) включает в себя отображение "1 в 1" ширины канала передачи данных на биты (например, 20-битовая ширина канала передачи данных включает в себя фит, составляющий 20 битов, и так далее). Флиты могут иметь больший размер, такой как 184, 192 или 200 битов. Отметим, что если фит (640) имеет ширину 20 битов, а размер флита (635) составляет 184 бита, то для того чтобы передать один флит (635), требуется дробное количество фитов (640) (например, среди других примеров, 9, 2 фитов с 20 битами - для передачи 184-битового флита (635), или 9, 6 при 20 битах - для передачи 192-битового флита). Отметим, что ширина основного канала передачи данных на физическом уровне может варьироваться. Например, количество путей передачи данных, приходящихся на одно направление, может включать в себя 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 и так далее. В одном варианте реализации изобретения, канальный уровень (610 а, b) способен вкладывать в один флит множественные части различных транзакций, и в этот флит могут быть вложены один или множество заголовков (например, 1, 2, 3, 4). В одном примере, HPI-межсоединение разделяет заголовки на соответствующие сегменты для того, чтобы сделать возможными множественные сообщения в флите, предназначенные для различных узлов.
Физический уровень (605 а, b), в одном варианте реализации изобретения, может быть ответственным за быструю передачу информации в физической среде (электрической или оптической и так далее). Физический канал передачи данных может быть двухточечным между двумя объектами канального уровня, такими как уровень (605 а) и (605 b). Канальный уровень (610 а, b) может отделить физический уровень (605 а, b) от верхних уровней и предоставляет возможность надежно передавать данные (равно как и запросы) и администрировать управлением потоками данных между двумя напрямую связанными объектами. Канальный уровень может также быть ответственным за виртуализацию физического канала передачи данных во множественные виртуальные каналы и классы сообщений. Уровень (620 а, b) протокола полагается на канальный уровень (610 а, b) в том, чтобы отображать сообщения протокола на соответствующие классы сообщений и виртуальные каналы перед передачей их на физический уровень (605 а, b) для передачи по физическим каналам передачи данных. Канальный уровень (610 а, b) может поддерживать множественные сообщения, такие как, среди других примеров, запрос, "прослушивание", ответ, обратная запись, некогерентных данных.
Физический уровень (605 а, b) (или PHY-уровень) HPI - межсоединения может быть реализован выше электрического уровня (то есть электрических проводов, соединяющих два компонента) и ниже канального уровня (610 а, b), как это проиллюстрировано на фиг. 6. Физический уровень и соответствующая логика может постоянно находиться на каждом агенте и соединяет канальные уровни на двух агентах (А и В), отделенных друг от друга, (например на устройствах по обеим сторонам канала передачи данных). Местный и удаленный электрические уровни соединены посредством физических сред (например, проводов, проводников, оптической среды и так далее). Физический уровень (605 а, b) в одном варианте реализации изобретения имеет две большие фазы: инициализацию и работу. Во время инициализации соединение непрозрачно по отношению к канальному уровню, и передача сигналов может включать в себя сочетание синхронизированных состояний и событий установления связи. Во время работы, соединение прозрачно по отношению к канальному уровню, и передача сигналов осуществляется на скорости, при этом все пути передачи данных работают вместе как один канал передачи данных. Во время фазы работы, физический уровень транспортирует флиты от агента А агенту В и от агента В агенту А. Это соединение также именуется как канал передачи данных и отделяет некоторые физические аспекты, включая среды, ширину и скорость, от канальных уровней, обмениваясь при этом флитами и данными управления/состояния текущей конфигурации (например, ширины) с канальным уровнем. Фаза инициализации включает в себя младшие фазы, например, опрос, конфигурацию. Фаза работы также включает в себя младшие фазы (например, состояния с администрированием энергопотребления в канале передачи данных).
В одном варианте реализации изобретения, канальный уровень (610 а, b) может быть реализован таким образом, чтобы обеспечивать надежную передачу данных между двумя протоколами или объектами маршрутизации. Канальный уровень может отделять физический уровень (605 а, b) от уровня (620 а, b) протокола, и может быть ответственным за управление потоками данных между двумя агентами (А, В) протокола, и предоставлять сервисы виртуальных каналов уровню протокола (классы сообщений) и уровню маршрутизации (виртуальные сети). Интерфейс между уровнем (620 а, b) протокола и канальным уровнем (610 а) обычно может находиться на пакетном уровне. В одном варианте реализации изобретения, самая малая порция передачи на канальном уровне именуется как флит (flit) с некоторым указанным количеством битов, таким как 192 бита или некоторого другого достоинства. Канальный уровень (610 а, b) полагается на физический уровень (605 а, b) в том, чтобы вместить порцию (фит) передачи на физическом уровне (605 а, b) в порцию (флит) передачи на канальном уровне (610 а, b). В дополнение к этому, канальный уровень (610 а, b) может быть логически разделен на две части, отправитель и приемник. Пара "отправитель/приемник" на одном объекте может быть соединена с парой "приемник/отправитель" на другом объекте. Управление потоками данных часто выполняется на основе как флита, так и пакета. Обнаружение и исправление ошибок также потенциально выполняется на основе уровня флита.
В одном варианте реализации изобретения уровень (615 а, b) маршрутизации может обеспечить гибкий и распределенный способ маршрутизации HPI-транзакций (транзакций HPI-межсоединения) от источника до пункта назначения. Схема является гибкой, поскольку алгоритмы маршрутизации для множественных топологий могут быть указаны посредством программируемых таблиц маршрутизации в каждом маршрутизаторе (программирование в одном варианте реализации изобретения выполняется посредством программно-аппаратных средств, программных средств или их сочетания). Функциональные возможности маршрутизации могут быть распределенными; маршрутизация может быть выполнена посредством ряда этапов маршрутизации, при этом каждый этап маршрутизации определяется посредством просмотра таблицы в маршрутизаторах либо в источнике, промежуточном звене, либо в пункте назначения. Поиск в источнике может быть использован для того, чтобы ввести HPI-пакет (пакет HPI-межсоединения) в структуру HPI-межсоединения. Поиск в промежуточном маршрутизаторе может быть использован для того, чтобы маршрутизировать HPI-пакет от входного порта до выходного порта. Поиск в порту пункта назначения может быть использован для того, чтобы задавать пункт назначения агента HPI-протокола. Отметим, что уровень маршрутизации, в некоторых вариантах осуществления изобретения, может быть тонким, поскольку таблицы маршрутизации и, следовательно, алгоритмы маршрутизации, конкретно не определены техническими требованиями. Это делает возможным гибкость и разнообразие моделей использования, включающих в себя гибкие архитектурные топологии платформ, определяемые при реализации системы. Уровень (615 а, b) маршрутизации полагается на канальный уровень (610 а, b) в обеспечении использования до трех (или более) виртуальных сетей (VN), в одном примере - двух беступиковых виртуальных сетей (VN 0) и (VN 1) с несколькими классами сообщений, определенными в каждой виртуальной сети. На канальном уровне может быть определена совместно используемая адаптивная виртуальная сеть (VNA), но эта адаптивная сеть не может быть непосредственно раскрыта в концепциях маршрутизации, поскольку каждый класс сообщений и виртуальная сеть, могут иметь выделенные ресурсы и гарантированное лидирующее развитие, среди других признаков и примеров.
В некоторых вариантах осуществления, HPI-межсоединение может использовать встроенную синхронизацию. Синхронизирующий сигнал может быть встроен в данные, передаваемые с использованием этого межсоединения. При синхронизирующем сигнале, встроенном в данные, могут быть опущены особые и специально выделенные пути передачи синхронизирующего сигнала. Это может быть полезным, например, поскольку это может позволить выделить большее количество штырьковых контактов в устройстве для передачи данных, особенно в системах, где пространство для штырьковых контактов пользуется большим спросом.
Канал передачи данных может быть установлен между двумя агентами с обеих сторон межсоединения. Агент, отправляющий данные, может быть локальным агентом, а агент, принимающий данные, может быть удаленно расположенным агентом. Оба агента для управления различными аспектами канала передачи данных могут использовать конечные автоматы. В одном варианте реализации изобретения, тракт передачи данных на физическом уровне может передавать флиты с канального уровня на электрический внешний интерфейс. Тракт управления, в одном варианте осуществления изобретения, включает в себя конечный автомат (также именуемый как конечный автомат обучения канала передачи данных или тому подобное). Действия конечного автомата и выходы из состояний могут зависеть от внутренних сигналов, таймеров, внешних сигналов или другой информации. На самом деле, некоторые из состояний, такие как несколько состояний инициализации, могут иметь таймеры для предоставления значения времени ожидания для выхода из некоторого состояния. Отметим, что термин "обнаруживать" в некоторых вариантах реализации изобретения, относится к обнаружению события на обеих ветвях пути передачи данных; но не обязательно одновременно. Однако, в других вариантах реализации изобретения, термин "обнаружить" относится к обнаружению события агентом ссылки. Термин "противодребезговый", в качестве одного примера, относится к устойчивому установлению уровня сигнала. В одном варианте реализации изобретения, HPI-межсоединение поддерживает работу в случае нефункционирующих путей передачи данных. Здесь, в специальных состояниях пути передачи данных могут быть освобождены.
Состояния, определенные в конечном автомате, могут, среди других категорий и подкатегорий, включать в себя состояния сброса, состояния инициализации и рабочие состояния. В одном примере, некоторые состояния инициализации могут иметь вторичный таймер, который используется для того, чтобы выйти из состояния на некотором времени ожидания (по существу аварийное завершение вследствие неудачи в достижении прогресса в состоянии). Аварийное завершение может включать в себя обновление значения регистров, таких как регистра состояния. Некоторые состояния могут также иметь первичный таймер (первичные таймеры), которые используются для синхронизации основных функций в состоянии. Другие состояния могут быть определены, среди других примеров, таким образом, чтобы внутренние или внешние сигналы (такие как протоколы установления связи) переводили транзакцию из состояния в другое состояние.
Конечный автомат может также поддерживать отладку на одном этапе, фиксацию параметров системы при аварийном прекращении инициализации и использование тестеров. При этом выходы из состояний могут быть отложены/задержаны до тех пор, пока не будут готовы программные средства отладки. В некотором случае, выход может быть отложен/задержан до вторичного времени ожидания. Действия и выходы, в одном варианте реализации изобретения, могут быть основаны на обмене обучающими последовательностями. В одном варианте реализации изобретения, конечный автомат ссылки должен работать в локальном домене часов агента, и переход из одного состояния в следующее должно совпадать с границей обучающей последовательности. Для отражения текущего состояния могут быть использованы регистры состояний.
На фиг. 7 проиллюстрировано представление, по меньшей мере, части конечного автомата, используемого агентами на одном приводимом в качестве примера HPI-межсоединении. Следует понимать, что состояния, включенные в состав таблицы состояний, приведенной на фиг. 7, включают в себя неисчерпывающий перечень возможных состояний. Например, некоторые переходы не приводятся для того, чтобы упростить схему. Кроме того, некоторые состояния могут быть объединены, разделены или опущены, в то время как другие могли бы быть добавлены. Такие состояния могут включать в себя:
Состояние сброса по событию: наступает при событии "теплого" или "холодного" сброса. Восстанавливает значения "по умолчанию". Инициализирует счетчики (например, счетчики синхронизации). Может выйти в другое состояние, такое как другое состояние сброса.
Синхронизированное состояние сброса: синхронизированное состояние для внутриполосного сброса. Может приводить в действие предварительно определенный электрический упорядоченный набор (EOS-набор), так что удаленные приемники способны обнаружить этот EOS-набор и также войти в состояние синхронизированного сброса. Приемник имеет пути передачи данных, поддерживающие электрические настройки. Может осуществляться выход на агента для калибровочное состояния сброса.
Калибровочное состояние сброса: калибровка без передачи сигналов по путям передачи данных (например, состояние калибровки приемника) или выключения драйверов. Может быть некоторое предварительно заданное количество времени в состоянии, основанном на таймере. Может задавать рабочую скорость. Может действовать в качестве состояния ожидания, когда порт не разблокирован. Может включать в себя минимальное время пребывания (в этом состоянии). Может происходить основанное на конструкции подготовка приемника к работе или отключение расстройки. Может осуществляться выход в состояние обнаружения приемника после некоторого времени ожидания и/или завершения калибровки.
Состояние обнаружение приемника: обнаружение присутствия приемника на пути (путях) передачи данных. Может осуществляться поиск завершения работы приемника (например, введения отбоя приемника). Может осуществлять выход в калибровочное состояние сброса после установки некоторого указанного значения или когда другое указанное значение не установлено. Если приемник обнаружен или время ожидания достигнуто, то может осуществляться выход в состояние калибровки передатчика.
Состояние калибровки передатчика: для калибровок передатчика. Может представлять собой синхронизированное состояние, выделенное для калибровок передатчика. Может включать в себя передачу сигналов по пути передачи данных. Может непрерывно приводить в действие EOS-набор, такой как электрический упорядоченный набор выхода из простоя (EIEOS-набор). Когда калибровка выполнена, или при истечении времени на таймере может осуществляться выход в состояние согласованности. Если истекло значение счетчика или прошло вторичное время ожидания, то может осуществляться выход в состояние обнаружения передатчика.
Состояние обнаружения передатчика: определяется правильность передачи сигналов. Может представлять собой состояние установления связи, при котором агент завершает действия и осуществляет выход в следующее состояние, основываясь на сигналах удаленного агента. Правильность передачи сигналов из передатчика может определять приемник. Приемник, в одном варианте реализации изобретения, осуществляет поиск сигнала обнаружения "пробуждения", и если тот подвергся противодребезговой обработке на одном или более путях передачи данных, то ищет его на других путях передачи данных. Передатчик порождает сигнал обнаружения. В ответ на завершение противодребезговой обработки для всех путей передачи данных и/или времени ожидания или, если противодребезговая обработка на всех путях передачи данных не завершена и есть время ожидания, может осуществляться выход в состояние опроса. При этом один или более контрольных путей передачи данных могут бодрствовать для противодребезговой обработки сигнала пробуждения. И если они свободны от дребезжания, тогда другие пути передачи данных потенциально являются свободными от дребезжания. Это может сделать возможным сбережение энергии в состояниях низкого энергопотребления.
Состояние опроса: приемник настраивает, инициализирует буфер сдвига и захватывает биты/байты (например, идентифицирует границы символов). Пути передачи данных могут быть выровнены. В ответ на подтверждающее сообщение удаленный агент может вызвать выход в следующее состояние (например, состояние ширины канала передачи данных). Опрос может дополнительно включать в себя синхронизацию обучающей последовательности посредством синхронизации по EOS-набору и заголовку обучающей последовательности. Расфазировка между путями передачи данных на удаленном передатчике может быть покрыта на первой длине для максимальной скорости и второй длине для медленной скорости. Выравнивание может быть выполнено в медленном режиме, так же как и в рабочем режиме. Приемник может иметь специальный максимум для выравнивания расфазировки между путями передачи данных, такой как 8, 16 или 32 интервалов расфазировки. Действия приемника могут включать в себя фиксацию времени задержки. Действия приемника, в одном варианте реализации изобретения, могут быть завершены при успешном выравнивании действующей карты путей передачи данных. Успешное установление связи может быть достигнуто, в одном примере, тогда, когда некоторое количество следующих друг за другом заголовков обучающих последовательностей приняты с подтверждениями, и некоторое количество обучающих последовательностей с подтверждением переданы после того, как приемник завершил свои действия.
Состояние ширины канала передачи данных: агент поддерживает связь с окончательной картой путей передачи данных, ведущей к удаленному передатчику. Приемник принимает информацию и декодирует ее. Приемник может записать сконфигурированную карту путем передачи данных в структуру после контрольной точки предшествующего значения карты путей передачи данных во второй структуре. Приемник может также ответить подтверждением ("АСК"). Может инициировать внутриполосный сброс. В качестве одного примера, первое состояние внутриполосного сброса. В одном варианте реализации изобретения, выход в следующее состояние, такое как состояние конфигурации флита, выполняется в ответ на это подтверждение. Кроме того, перед входом в состояние с низким энергопотреблением, если частота появления сигнала обнаружения пробуждения падает ниже некоторого указанного значения (например, 1 на каждое количество единичных интервалов (UI-интервалов), такое как 4 тысячи единичных интервалов), то также может быть сгенерирован сигнал сброса. Приемник может сохранять текущую и предшествующую карту путей передачи данных. Передатчик может использовать различные группы путей передачи данных, основываясь на обучающих последовательностях, имеющих различные значения. Карта путей передачи данных, может, в некоторых вариантах реализации изобретения, не изменять некоторые регистры состояния.
Состояние конфигурации фиксации флита: вхождение в него осуществляется передатчиком, но это состояние считается покинутым (то есть, режим вторичного времени ожидания), когда как передатчик, так и приемник осуществили выход в состояние блокирования канала передачи данных или другое состояние канала передачи данных. Выход передатчика в состояние канала передачи данных, в одном варианте реализации изобретения, включает в себя границу начала последовательности данных (SDS) и обучающей последовательности (TS-последовательности) после получения сигнала планетарного выравнивания. При этом выход приемника может основываться на приеме SDS от удаленного передатчика. Это состояние может быть мостом от агента к состоянию канала передачи данных. Приемник идентифицирует SDS. Приемник может осуществить выход в состояния блокирования канала передачи данных (BLS-состояние) (или окно управления), если SDS принято после того, как инициализирован дескремблер. Если имеет место время ожидания, то выход может быть в состояние сброса. Передатчик управляет путями передачи данных посредством сигнала конфигурации. Выход передатчика может быть выполнен в сброс, BLS-состояние или другие состояния, основываясь на условиях или временах ожидания.
Передающее состояние канала передачи данных: состояние канала передачи данных. Флиты отправляются удаленному агенту. Может быть введено из состояния блокирования канала передачи данных и возвращается в состояние блокирования канала передачи данных при некотором событии, таком как время ожидания. Передатчик передает флиты. Приемник принимает флиты. Также может осуществляться выход в состояние канала передачи данных, имеющее низкое энергопотребление. В некоторых вариантах осуществления изобретения, передающее состояние канала передачи данных (TLS-состояние) может упоминаться как состояние L0.
Состояние блокирования канала передачи данных: состояние канала передачи данных. Передатчик и приемник работают объединенным образом. Может представлять собой синхронизированное состояние, в течение которого флиты канального уровня удерживаются, в то время как информация физического уровня передается удаленному агенту. Может осуществляться выход в состояние канала передачи данных, имеющее низкое энергопотребление (или другое состояние канала передачи данных, основанное на конструкции). Состояние блокирования канала передачи данных (BLS-состояние), в одном варианте реализации изобретения, имеет место периодически. Этот период именуется как интервал BLS-состояния и может быть синхронизирован, равно как и может различаться между медленной скоростью и рабочей скоростью. Отметим, что канальный уровень может периодически быть блокирован от отправки флитов, так чтобы могла быть отправлена управляющая последовательность физического уровня, имеющая некоторую длину, такая как в течение передающего состояния канала передачи данных или передающего состояния канала передачи данных, имеющего частичную ширину. В некоторых вариантах осуществления изобретения, состояние блокирования канала передачи данных (BLS-состояние) может упоминаться как состояние L0-управления, или состояние L0c.
Состояние канала передачи данных, имеющее частичную ширину: состояние канала передачи данных. Может сберегать энергию благодаря вхождению в состояние с частичной шириной. В одном варианте реализации изобретения асимметричная частичная ширина относится к каждому направлению двунаправленного канала передачи данных, имеющего различные ширины, которые могут поддерживаться в некоторых конструкциях. Пример инициатора, такого как передатчик, отправляющего указание частичной ширины, для вхождения в состояние канала передачи данных, имеющее частичную ширину, показан в примере, приведенном на фиг. 14. При этом указание частичной ширины отправляют, передавая по каналу передачи данных, имеющему первую ширину, для перехода этого канала передачи данных к передаче со второй, новой шириной. Несоответствие может привести к сбросу. Отметим, что скорости не могут быть изменены, но ширина может. Следовательно, флиты потенциально отправляются с различными ширинами. Может быть логически аналогичным передающему состоянию канала передачи данных; и все же, поскольку ширина меньше, то может потребоваться большее время для передачи флитов. Может осуществляться выход в другие состояния канала передачи данных, такие как состояние канала передачи данных, имеющее низкое энергопотребление, - на основе некоторых принятых и отправленных сообщений, или выход из передающего состояния канала передачи данных, имеющего частичную ширину, или из состояния блокирования канала передачи данных, основанный на других событиях. В одном варианте реализации изобретения, передающий порт может выключать бездействующие пути передачи данных в шахматном порядке для того, чтобы обеспечить лучшую целостность сигнала (то есть уменьшение шума). При этом, во время периодов, в которые изменяется ширина канала передачи данных, может использоваться флиты, способные не подвергаться повторной передаче, такие как нулевые флиты. Соответствующий приемник может отбрасывать эти нулевые флиты и выключать бездействующие пути передачи данных в шахматном порядке, так же как и записывать в одну или несколько структур текущую и предшествующую карту путей передачи данных. Отметим, что состояние и связанный с ним регистр состояния могут оставаться неизменными. В некоторых вариантах осуществления изобретения передающее состояние канала передачи данных, имеющее частичную ширину, может упоминаться как частичное состояние L0 или состояние L0p.
Состояние выхода из передающего состояния канала передачи данных, имеющего частичную ширину: выход из состояния с частичной шириной. В некоторых вариантах осуществления изобретения может использовать или может не использовать состояние блокирования канала передачи данных. Передатчик инициирует выход, в одном варианте реализации изобретения, отправляя комбинации выхода из состояния с частичной шириной по бездействующим путям передачи данных для того, чтобы осуществить "обучение" и выравнивание для этих путей. В качестве одного примера, комбинация выхода начинается с EIEOS набора, который обнаруживают и освобождают от дребезжания, для сигнализирования о том, что путь передачи данных готов начать вхождение в полное передающее состояние канала передачи данных, и может заканчиваться сигналом SDS или быстрой обучающей последовательностью (FTS-последовательностью) на бездействующих путях передачи данных. Любой сбой во время последовательности выхода (действия приемника, такие как выравнивание, не завершенные до времени ожидания) останавливают передачу флитов канальному уровню, и заявляют сброс, который обрабатывается посредством осуществления сброса канала передачи данных при следующем возникновении состояния блокирования канала передачи данных. SDS может также задавать скремблеру/дескремблеру на путях передачи данных надлежащие значения.
Состояние канала передачи данных, имеющее низкое энергопотребление: является состоянием с низким энергопотреблением. В одном варианте реализации изобретения, оно имеет более низкое энергопотребление, чем состояние канала передачи данных, имеющее частичную ширину, поскольку передача сигналов в этом варианте реализации изобретения прекращается на всех путях передачи данных и в обоих направлениях. Для запроса состояния канала передачи данных, имеющего низкое энергопотребление, передатчики могут использовать состояние блокирования канала передачи данных. При этом, приемник может декодировать запрос и ответить подтверждением (АСК) или отрицательным квитированием (NAK); в ином случае может быть запущен сброс. В некоторых вариантах осуществления изобретения, состояние канала передачи данных, имеющее низкое энергопотребление, может упоминаться как состояние L1.
В некоторых вариантах осуществления изобретения, переходы из одного состояния в другое состояние могут быть облегчены таким образом, чтобы позволить обходить состояния, например, в случае, когда действия состояний, осуществляемые в этих состояниях, такие как некоторые калибровки и конфигурирования, были уже выполнены. Результаты и конфигурации предшествующего состояния канала передачи данных могут быть сохранены и повторно использоваться в последующих инициализациях и конфигурациях канала передачи данных. Вместо того, чтобы повторять такие конфигурации и действия состояний, соответствующие состояния можно обойти. Однако, традиционные системы, осуществляющие обходы состояний, часто воплощают сложные конструкции и дорогие переходы с оценкой. Вместо того, чтобы использовать традиционный обход, в одном примере, HPI-межсоединение может использовать короткие таймеры в некоторых состояниях, таких как те, в которых действия состояния не должны повторяться. Это, среди других потенциальных преимуществ, может потенциально сделать возможным более однородные и синхронизированные переходы конечного автомата.
В одном примере, контроллер, основанный на программном обеспечении, (например, через внешнюю точку управления для физического уровня) может сделать возможным короткий таймер для одного или более конкретных состояний. Например, для состояния, для которого действия были уже выполнены и сохранены, состояние может быть сокращено во времени для того, чтобы облегчить быстрый выход из этого состояния в следующее состояние. Однако если действие предшествующего состояния не удалось или не может быть применено в пределах короткой продолжительности таймера, то может быть выполнен выход из состояния. Далее, контроллер может блокировать короткий таймер, например, когда действия состояния должны быть выполнены снова. Длинный, или задаваемый по умолчанию, таймер может быть установлен для каждого соответствующего состояния. Если конфигурационные действия в состоянии не могут быть завершены в пределах длинного таймера, то может произойти выход из состояния. Длинный таймер может быть установлен на некоторую разумную продолжительность для того, чтобы позволить завершение действий состояния. В противоположность этому, короткий таймер может быть значительно более коротким, что в некоторых случаях, делает невозможным выполнение действий состояния без повторного обращения, среди других примеров, к ранее выполненным действиям состояния.
В некоторых вариантах осуществления HPI-межсоединения, могут быть определены надпоследовательности, причем каждая надпоследовательность соответствует соответствующему состоянию или входу в соответствующее состояние / выходу из него. Надпоследовательность может включать в себя повторяющуюся последовательность наборов данных и символов. Эти последовательности в некоторых случаях могут повторяться, среди других примеров, до завершения состояния или перехода из одного состояния в другое состояние, или сообщения о соответствующем событии. В некоторых случаях, повторяющаяся последовательность надпоследовательности может повторяться в соответствии с некоторой определенной частотой, такой как определенное количество единичных интервалов (UI-интервалов). Единичный интервал (UI) может соответствовать интервалу времени для передачи одного бита по пути передачи данных в канале передачи данных или системе. В некоторых вариантах осуществления изобретения, повторяющаяся последовательность может начинаться с электрически упорядоченного набора (EOS-набора). Соответственно, можно ожидать, что экземпляр EOS-набора будет повторяться в соответствии с некоторой предварительно заданной частотой. Такие упорядоченные наборы могут быть реализованы, среди других примеров, как определенные 16-байтовые коды, которые могут быть представлены в шестнадцатеричном формате. В одном примере, EOS-набор надпоследовательности может представлять собой электрический упорядоченный набор простоя (или EIEIOS-набор). В одном примере, EIEOS-набор может напоминать низкочастотный синхронизирующий сигнал (например, предварительно заданное количество повторения шестнадцатеричных символов FF00 или FFF000 и так далее). За EOS-набором может следовать некоторый предварительно заданный набор данных, такой как некоторое предварительно заданное количества обучающих последовательностей или других данных. Такие надпоследовательности могут быть использованы, среди других примеров, при переходах из одного состояния в другое состояние, включающих в себя переходы из одного состояния в другое состояние канала передачи данных, так же как и при инициализации.
Как было представлено выше, инициализация, в одном варианте реализации изобретения, может быть выполнена первоначально на медленной скорости, вслед за чем следует инициализация на быстрой скорости. Инициализация на медленной скорости использует для регистров и таймеров значения "по умолчанию". После этого программные средства используют канал передачи данных на медленной скорости для настройки регистров, таймеров и электрических параметров и очищают калибровочные семафоры для того, чтобы проложить путь для инициализации на быстрой скорости. В качестве одного примера, инициализация может состоять из таких состояний или задач, как сброс, обнаружение, опрос и конфигурирования, среди потенциально других состояний или задач.
В одном примере, блокирующая управляющая последовательность канального уровня (то есть, состояние блокирования канала передачи данных (BLS-состояние) или состояние L0c) может включать в себя синхронизированное состояние, в течение которого флиты канального уровня, удерживаются, в то время как информация PHY-уровня передается удаленному агенту. При этом передатчик и приемник могут запустить таймер управляющей последовательности блокирования. И после истечения времени таймеров, передатчик и приемник могут выйти из состояния блокирования и могут предпринять другие действия, такие как выход в сброс, выход в другие состояния канала передачи данных (или другое состояние), включающие в себя состояния, которые позволяют отправку флита по этому каналу передачи данных.
В одном варианте реализации изобретения, может быть обеспечено "обучение" канала передачи данных и оно может включать в себя отправку одного или больше скремблированных обучающих последовательностей, упорядоченных наборов и управляющих последовательностей, таких как в связи с определенной надпоследовательностью. Символ обучающей последовательности может включать в себя одно или более из числа: заголовка, зарезервированных участков, целевого времени задержки, номера пары, код карты физических путей передачи данных опорный путь передачи данных или группа путей передачи данных, и состояния инициализации. В одном варианте реализации изобретения, заголовок, среди других примеров, может быть отправлен с подтверждением или отрицательным квитированием. В качестве примера, обучающие последовательности могут быть отправлены как часть надпоследовательностей и могут быть скремблированы.
В одном варианте реализации изобретения, упорядоченные наборы и управляющие последовательности не скремблируются или сдвигаются и передаются одинаковым образом, одновременно и полностью по всем путям передачи данных. Правильный прием упорядоченного набора может включать в себя проверку по меньшей мере части упорядоченного набора (или всего упорядоченного набора для частичных упорядоченных наборов). Упорядоченные наборы могут включать в себя электрически упорядоченный набор (EOS-набор), такой как электрический упорядоченный набор простоя (EIOS-набор) или EIEOS-набор. Надпоследовательность может включать в себя начало последовательности данных (SDS) или Быструю обучающую последовательность (FTS-последовательность). Такие наборы и управляющие надпоследовательности могут быть предварительно заданными и могут иметь любую структуру или шестнадцатеричное представление, так же как и любую длину. Например, упорядоченные наборы и надпоследовательности могут иметь длину, составляющую 8 байтов, 16 байтов или 32 байта и так далее. FTS-последовательность, в качестве примера, может дополнительно использоваться для быстрого захвата бита во время выхода из передающего состояния канала передачи данных, имеющего частичную ширину. Отметим, что формирование определение FTS-последовательности может быть по пути передачи данных и может использовать повернутую версию FTS-последовательности.
Надпоследовательности, в одном варианте реализации изобретения, могут включать в себя введение EOS-набора, такого как EIEOS-набор, в поток обучающей последовательности. Когда начинается передача сигналов, электропитание путей передачи данных, в одном варианте осуществления изобретения, включается в шахматном порядке. Однако это может в результате привести к тому, что начальные надпоследовательности будут выглядеть усеченными в приемнике на некоторых путях передачи данных. Надпоследовательности могут быть повторены, однако, через короткие интервалы времени (например, приблизительно одну тысячу единичных интервалов (или ~1 KUI)). Обучающие надпоследовательности могут дополнительно использоваться для одного или более из числа: выравнивания конфигурирования, и для сообщения объекта инициализации, карты путей передачи данных и так далее. EIEOS-набор может использоваться, среди других примеров, для одного или более из числа: перевода пути передачи данных из неактивного в активное состояние, отбора хороших путей передачи данных, идентификации границ символа и TS-последовательности (обучающей последовательности).
Обратимся к фиг. 8, на которой показаны представления приводимых в качестве примера надпоследовательностей. Например, может быть определена приводимая в качестве примера надпоследовательность (805) обнаружения. Надпоследовательность (805) обнаружения может включать в себя повторяющуюся последовательность, состоящую из единственного EIEOS-набора (или другого EOS-набора) сопровождаемого некоторым предварительно заданным количеством экземпляров некоторой конкретной обучающей последовательности (TS-последовательности). В одном примере, EIEOS-набор может быть передан, непосредственно сопровождаемым семью повторенными экземплярами TS-последовательности. Когда последние из семи TS-последовательностей отправлены, EIEOS может быть отправлен снова сопровождаемый семью дополнительными экземплярами TS-последовательности и так далее. Эта последовательность может повторяться в соответствии с некоторой конкретной предварительно заданной частотой. В примере, приведенном на фиг. 8, EIEOS-набор может повторно появляться на путях передачи данных приблизительно один раз на каждую тысячу UI-интервалов (~1 KUI) сопровождаемый остальной частью надпоследовательности (805) обнаружения. Приемник может контролировать пути передачи данных на присутствие повторения надпоследовательности (805) обнаружения, и после проверки надпоследовательности (705) может прийти к заключению о том, что удаленный агент присутствует, был добавлен (например, подключен без выключения системы) на путях передачи данных, "пробудился" или повторно инициализируется и так далее.
В другом примере, может быть определена другая надпоследовательность (810) для указания условия или состояния опроса, конфигурирования или кольцевой проверки. Как и в случае с примером надпоследовательности (805) обнаружения, пути передачи данных канала передачи данных могут контролироваться приемником для такого рода надпоследовательности (810) опроса/конфигурирования/кольцевой проверки для того, чтобы идентифицировать состояние опроса, состояние конфигурирования или состояние или условия кольцевой проверки. В одном примере, надпоследовательности (810) опроса/конфигурирования/кольцевой проверки может начинаться с EIEOS-набора, сопровождаемого некоторым предварительно заданным количеством повторенных экземпляров некоторой TS-последовательности. Например, в одном примере EIEOS-набор может сопровождаться тридцатью одним (31) экземпляром TS-последовательности, при этом EIEOS-последовательность повторяется приблизительно каждые четыре тысячи UI-интервалов (например, ~4 KUI).
Кроме того, в другом примере, может быть определена надпоследовательность (815) выхода из передающего состояния с частичной шириной (PWTS-состояния). В одном примере, надпоследовательность выхода из PWTS-состояния может включать в себя начальный EIEOS-набор для повторения с целью предварительно подготовить пути передачи данных заранее, перед отправкой первой полной последовательности в надпоследовательности. Например, последовательность, подлежащая повторению в надпоследовательности (815), может начинаться с EIEOS-набора (для повторения приблизительно один раз каждые 1 тысяча UI-интервалов). Кроме того, могут быть использованы быстрые обучающие последовательности (FTS-последовательности) вместо других обучающих последовательностей (TS-последовательностей), причем FTS-последовательности, сконфигурированные таким образом, чтобы содействовать в более быстром захвате бита, захвате байта и выравнивании. В некоторых вариантах осуществления изобретения, FTS-последовательность может быть разложена на составные части, чтобы далее содействовать в возвращении бездействующих путей передачи данных в активное состояние настолько быстро и безущербно, насколько это возможно. Как и в случае с другими надпоследовательностями, предшествующими входу в передающее состояние канала передачи данных, надпоследовательность (815) может быть прервана и закончена посредством отправки начала последовательности данных (SDS). Кроме того, может быть отправлена частичная FTS-последовательность (FTSp-последовательность) для содействия в синхронизации новых путей передачи данных с активными путями передачи данных, как, например, позволяя, среди других примеров, вычитать биты (или добавлять) к FTSp-последовательности.
Надпоследовательности, такие как надпоследовательность (705) обнаружения и надпоследовательность (710) опроса/конфигурирования/кольцевой проверки, и так далее потенциально могут быть отправлены, по существу, во время инициализации или повторной инициализации канала передачи данных. Приемник, после приема и обнаружения конкретной надпоследовательности может, в некоторых случаях, ответить, осуществив эхопередачу той же самой надпоследовательности на передатчик по путям передачи данных. Прием и проверка конкретной надпоследовательности передатчиком и приемником могут служить в качестве установления связи для подтверждения состояния или условия, сообщенного через надпоследовательность. Например, такое установление связи (например, с использованием надпоследовательности (705) обнаружения) может быть использовано для того, чтобы идентифицировать повторную инициализацию канала передачи данных. В другом примере, такое установление связи может быть использовано, среди других примеров, для того, чтобы указать конец электрического сброса или состояния малого энергопотребления, что в результате приводит к тому, что соответствующие пути передачи данных восстанавливаются. Конец электрического сброса может быть идентифицирован, например, из установления связи между трансмиттером и приемником каждый из которых передает надпоследовательность (705) обнаружения.
В другом примере, пути передачи данных могут контролироваться на надпоследовательности и могут использовать эти надпоследовательности в связи с отбором путей передачи данных для обнаружения, "пробуждения", выходов из состояний и входов в них, среди других событий. Предварительно заданная и предсказуемая природа и форма надпоследовательностей могут, кроме того, использоваться для того, чтобы выполнять такие задачи инициализации как захват бита, захват байта, устранение "дребезжания", дескремблирование, выравнивание, адаптация, фиксирования времени задержки, устанавливая, согласованные запаздывания и другие потенциальные варианты использования. Действительно, пути передачи данных могут, по существу, непрерывно контролироваться на такие события, что ускоряет способность системы реагировать на такие условия и обрабатывать их.
В случае устранения "дребезжания", переходные процессы могут быть созданы на путях передачи данных в результате разнообразных условий. Например, переходные процессы на путь передачи данных могут быть созданы добавлением или включением устройства. В дополнение к этому, на пути передачи данных может иметься неравномерности напряжения по причине плохого качества пути передачи данных или неисправности электрических приборов. В некоторых случаях "дребезжание" на пути передачи данных может создавать ложные положительные величины, такие как ложный EIEOS-набор. Однако в некоторых вариантах осуществления изобретения, хотя надпоследовательности могут начинаться с EIEOS-набора, определенные надпоследовательности могут далее включать в себя дополнительные последовательности данных, так же как и некоторую определенную частоту, с которой будет повторяться EIEOS-набор. В результате этого, даже там, где на пути передачи данных появляется ложный EIEOS-набор, логический анализатор в приемнике может определить, что этот EIEOS-набор является ложной положительной величиной, проверив данные, которые следуют за ложным EIEOS-набором. Например, если ожидаемая TS-последовательность или другие данные не следуют за EIEOS-набором, или EIEOS-набор не повторяется в пределах конкретного одной из предварительно заданных частот одной из предварительно заданных надпоследовательностей, то логический анализатор приемника может признать неудачной проверку принятого EIEOS-набора. Поскольку "дребезжание" может произойти при запуске, когда устройство добавляется в линию, то в результате этого могут также возникнуть ложные отрицательные величины. Например, после добавленных к набору путей передачи данных, устройство может начать отправлять надпоследовательность (705) обнаружения для того, чтобы известить другую сторону канала передачи данных о своем присутствии и начать инициализацию канала передачи данных. Однако переходные процессы, созданные на путях передачи данных, могут разрушить начальный EIEOS, экземпляры TS-последовательности, и другие данные надпоследовательности. Однако, среди других примеров, логический анализатор на приемном устройстве может продолжить контролировать пути передачи данных и идентифицировать следующие EIEOS-наборы, отправленные новым устройством при повторении надпоследовательности (705) обнаружения.
В некоторых вариантах осуществления изобретения, HPI-канал передачи данных (канал передачи данных, относящийся к HPI-межсоединению) способен работать на множественных скоростях, чему способствует встроенная синхронизация. Например, может быть определен медленный режим. В некоторых случаях, медленный режим может быть использован для того, чтобы содействовать в облегчении инициализации канала передачи данных. В калибровку канала передачи данных могут быть вовлечены контроллеры, основанные на программном обеспечении, предоставляющие логику для задания различных калибруемых характеристик канала передачи данных, включающих в себя, среди других потенциальных характеристик, то, какие пути передачи данных должен использовать канал передачи данных, конфигурацию путей передачи данных, рабочую скорость канала передачи данных, синхронизацию путей передачи данных и агентов, выравнивание, целевое время задержки. Такие инструменты, основанные на программном обеспечении, могут использовать внешние точки управления для добавления данных в регистры физического уровня для того, чтобы управлять различными аспектами средств и логики физического уровня.
Рабочая скорость канала передачи данных может быть значительно более быстрой чем эффективная рабочая скорость контроллеров, основанных на программном обеспечении, используемых при инициализации канала передачи данных. Медленный режим может использоваться для того, чтобы позволить использование таких контроллеров, основанных на программном обеспечении, например, среди других случаев, при инициализации или повторной инициализации канала передачи данных. Медленный режим может быть применен к путям передачи данных, соединяющим приемник и передатчик, например, в случае, когда канал передачи данных включается, инициализируется, осуществляется его сброс и так далее, для того чтобы содействовать в облегчении калибровки этого канала передачи данных.
В одном варианте реализации изобретения, синхронизация может быть встроена в данные, так что нет отдельных путей передачи данных для синхронизации. Флиты могут быть отправлены в соответствии со встроенной синхронизацией. Кроме того, флиты, отправляемые по путям передачи данных, могут быть скремблированы для облегчения восстановления синхронизации. Звено восстановления синхронизации приемника, в качестве одного примера, может подавать синхронизирующие импульсы дискретизации приемнику (то есть приемник восстанавливает синхронизацию из данных и использует ее для того, чтобы производить выборку поступающих данных). Приемники в некоторых вариантах осуществления изобретения непрерывно адаптируются к поступающему потоку битов. Благодаря встраиванию синхронизации, количество выходных контактов потенциально можно снизить. Однако встраивание синхронизации во внутриполосные данные может изменить способ, с которым подходят к внутриполосному сбросу. В одном варианте реализации изобретения, после инициализации может быть использовано состояние блокирования канала передачи данных (BLS-состояние). Кроме того, среди других соображений, во время инициализации можно для облегчения сброса использовать надпоследовательности электрических упорядоченных наборов. Встроенная синхронизация может быть общей между устройствами на канале передачи данных, и во время калибровки и конфигурирования канала передачи данных может быть задана общая рабочая синхронизация. Например, HPI-каналы передачи данных могут обращаться к общей синхронизации с буферами сдвига. Такой вариант осуществления изобретения может, среди других потенциальных преимуществ, реализовать более низкое время задержки, чем эластичные буфера, используемые при необщих опорных синхронизирующих импульсах. Кроме того, сегменты распределения опорных синхронизирующих импульсов могут быть согласованы в указанных пределах.
Как было отмечено выше, HPI-канал передачи данных может быть способен работать на множественных скоростях, включающих в себя "медленный режим" для включения питания по умолчанию, инициализации и так далее. Рабочая (или "быстрая") скорость или режим каждого устройства может быть статически задана базовой системой ввода-вывода. Общая синхронизация на канале передачи данных может быть сконфигурирована на основе соответствующих рабочих скоростей каждого устройства с обеих сторон канала передачи данных. Например, среди других примеров, скорость канала передачи данных может быть основана на более медленной из скоростей выполнения операций этими двумя устройствами. Любое изменение рабочей скорости может сопровождаться "теплым" или "холодным" сбросом.
В некоторых примерах, при включении электропитания, канал передачи данных инициализируется в медленный режим со скоростью передачи, составляющей, например, 100 МТ/с. После этого, программные средства устанавливают эти две стороны для рабочей скорости канала передачи данных и начинают инициализацию. В других случаях, для настройки канала передачи данных, включающего в себя общую синхронизацию, может использоваться механизм боковой полосы частот, например, при отсутствии или неготовности медленного режима.
Фаза инициализации медленного режима, в одном варианте реализации изобретения, может использовать то же самое кодирование, скремблирование, обучающие последовательности (TS-последовательности), состояния и так далее, что и рабочая скорость, но с потенциально меньшим количеством функций (например, без настройки электрических параметров, без адаптации и так далее). Фаза работы в медленном режиме потенциально может также использовать то же самое кодирование, скремблирование и так далее (хотя в других вариантах осуществления изобретения может и не использовать), но может иметь меньшее количество состояний и функций по сравнению с рабочей скоростью (например, без состояния низкого энергопотребления).
Кроме того, медленный режим может быть осуществлен с использованием собственной частоты синхронизации системы фазовой автоподстройки частоты (PLL-системы) устройства. Например, HPI-межсоединение может поддерживать эмулированный медленный режим, не изменяя частоту синхронизации PLL-системы. В то время как в некоторых конструкциях могут использоваться отдельные PLL-системы для медленной и быстрой скорости, в некоторых вариантах осуществления HPI-межсоединения эмулированный медленный режим можно достигнуть, позволяя генератору синхронизирующих импульсов PLL-системы функционировать во время медленного режима на той же самой быстрой рабочей скорости. Например, передатчик может эмулировать более медленный синхронизирующий сигнал, повторяя биты множество раз, так чтобы эмулировать медленный высокий синхронизирующий сигнал и затем медленный низкий синхронизирующий сигнал. Приемник может затем передискретизировать принятый сигнал для того, чтобы обнаружить фронты импульсов, эмулированные повторившимися битами и идентифицировать бит. В таких вариантах осуществления изобретения, порты, совместно использующие PLL-систему могут сосуществовать на медленных и быстрых скоростях.
В некоторых вариантах осуществления HPI-межсоединения, может поддерживаться адаптация путей передачи данных в канале передачи данных. Физический уровень может поддерживать и как адаптацию приемника, так и адаптацию передатчика или отправителя. При адаптации приемника, передатчик на пути передачи данных может отправлять приемнику образцы данных, которые логическая схема приемника может обработать с целью идентификации недостатков в электрических характеристиках пути передачи данных и качества сигнала. После этого, приемник может внести корректировки в калибровку пути передачи данных, чтобы, основываясь на анализе принятых образцов данных, оптимизировать путь передачи данных. В случае адаптации передатчика, приемник может снова принять образцы данных и разработать метрики, описывающие качество пути передачи данных, но в этом случае сообщить эти метрики передатчику (например, используя обратный канал, такой как программный, аппаратный, встроенный, боковую полосу частот или другой канал) для того, чтобы, основываясь на этой обратной связи, позволить передатчику внести корректировки в путь передачи данных.
Поскольку оба устройства на канале передачи данных могут работать, исходя из одних и тех опорных синхронизирующих импульсов (например, ref clk), то эластичные буфера могут не предусматриваться (любые эластичные буфера могут быть шунтированы или использованы как буфер сдвига с самым низким временем задержки). Однако регулирование фазы или буфера сдвига могут использоваться на каждом пути передачи данных для того, чтобы переводить поток битов соответствующего приемника из удаленной области синхронизации в локальную область синхронизации. Время задержки буферов сдвига может быть достаточным для обработки суммы сдвига от всех источников в спецификации электрического оборудования (например, напряжения, температуры, остаточного SSC, созданного рассогласованиями маршрутизации опорных синхронизирующих сигналов и так далее), но как можно меньше, для того чтобы снизить транспортное запаздывание. Если буфер сдвига является слишком неглубоким, то в результате могут иметь место ошибки сдвига и проявиться как ряд ошибок контроля циклическим избыточным кодом. Следовательно, в некоторых вариантах осуществления изобретения, среди других примеров, может быть предусмотрена сигнализация об аварийном сдвиге, которая может инициировать сброс физического уровня прежде, чем произойдут реальные ошибки сдвига.
Некоторые варианты осуществления HPI-межсоединения могут поддерживать функционирование этих двух сторон с одной и той же номинальной частотой опорных синхронизирующих импульсов, но с разницей в миллионные доли. В этом случае, среди других примеров, могут потребоваться буфера подстройки частоты (или эластичные буфера), которые могут перенастраиваться во время расширенного окна BLS-состояния или во время специальных последовательностей, которые периодически имели бы место.
Некоторые системы и устройства, использующие HPI-межсоединение, могут быть детерминированными таким образом, что их транзакции и взаимодействия с другими системами, включающие в себя связь по HPI-каналу передачи данных, синхронизированы с конкретными событиями в системе или устройстве. Такая синхронизация может иметь место в соответствии с точкой или сигналом планетарного выравнивания, соответствующими этим детерминированным событиям. Например, сигнал планетарного выравнивания может быть использован для того, чтобы синхронизировать переходы из одного состояния в другое состояние, включающие в себя вхождение в передающее состояние канала передачи данных, с другими событиями на устройстве. В некоторых случаях, для поддержания выравнивания с планетарным выравниванием устройства могут быть использованы синхронизирующие счетчики. Например, каждый агент может включать в себя локальный синхронизирующий счетчик, который инициализируется планетарно выровненным сигналом (то есть общим и одновременным (за исключением фиксированного сдвига) для всех агентов/уровней, которые находятся в синхронизации). Этот синхронизирующий счетчик может правильно отсчитывать точки выравнивания даже в состояниях с выключенным электропитанием или с малым энергопотреблением (например, в состоянии L1), и может быть использован для хронирования процесса инициализации (после сброса или выхода из состояния L1), включая границы (то есть начало или конец) EIEOS-набора (или другого EOS-набора), включенного в состав надпоследовательности, используемой во время инициализации. Такие надпоследовательности могут быть фиксированными по размеру и более длинными чем максимально возможное время задержки в канале передачи данных. Границы EIEOS-TS в надпоследовательности могут, таким образом, использоваться в качестве "заместителя" для значения удаленного синхронизирующего счетчика.
Кроме того, HPI-межсоединение может поддерживать модели "главный-подчиненный", в которой детерминированное главное устройство или система могут управлять синхронизацией взаимодействия с другим устройством в соответствии со своими собственными моментами планетарного выравнивания. Кроме того, в некоторых примерах может поддерживаться детерминизм "главный-главный". Детерминизм "главный-главный" или "главный-подчиненный" может обеспечивать то, что две или больше пары канала передачи данных могут быть жестко синхронизированы на канальном уровне и выше. В детерминизме "главный-главный", выходом каждого направления из инициализации может управлять соответствующий передатчик. В случае детерминизма "главный-подчиненный", главный агент может, например, среди других потенциальных примеров и вариантов осуществления изобретения, управлять детерминизмом пары канала передачи данных (то есть в обоих направлениях), заставляя выход из инициализации подчиненного передатчика ждать выхода из инициализации его приемника.
На некоторых вариантах осуществления изобретения, синхронизирующий (или "sync") счетчик может быть использован в связи с поддержанием детерминизма в среде HPI-межсоединения. Например, синхронизирующий счетчик может быть реализован таким образом, чтобы отсчитывать определенное количество, такое как 256 или 512 UI-интервалов (единичных интервалов). Сброс этого синхронизирующего счетчика может быть осуществлен некоторым асинхронным событием, и он может непрерывно осуществлять отсчет (с опрокидыванием) с того времени (потенциально даже во время состояния канала передачи данных, имеющего низкое энергопотребление). Синхронизирующими событиями, которые осуществляют сброс синхронизирующего счетчика могут, среди другого примера, служить сбросы, основанные на штекере, (например, сброс при включении электропитания, "теплый" сброс). В одном варианте реализации изобретения, эти события могут происходить с двух сторон со сдвигом, меньшим (и, во многих случаях, намного меньшим) чем значение синхронизирующего счетчика. Во время инициализации, начало переданного упорядоченного набора выхода (например, EIEOS-набора), предшествующего обучающей последовательности обучающей надпоследовательности может быть выровнено со значением сброса синхронизирующего счетчика (например, с опрокидыванием синхронизирующего счетчика). Такие синхронизирующие счетчики могут поддерживаться в каждом агенте на канале передачи данных, так чтобы сохранять детерминизм посредством поддержания постоянного времени задержки передач флитов по конкретному каналу передачи данных.
Управляющие последовательности и коды, среди других сигналов, могут быть синхронизированы с сигналом планетарного выравнивания. Например, последовательности EIEOS-набора, BLS-состояние или окно L0c (и включенные в их состав коды), сигналы SDS и так далее могут быть сконфигурированы таким образом, чтобы быть синхронизированными с планетарным выравниванием. Кроме того, сброс синхронизирующих счетчиков может, среди других примеров, осуществляться в соответствии с некоторым внешним сигналом, таким как сигнал планетарного выравнивания, поступающим от устройства, чтобы сам этот счетчик был синхронизирован с планетарным выравниванием.
Синхронизирующие счетчики обоих агентов на канале передачи данных могут быть синхронизированы. Осуществление сброса, инициализация или повторная инициализация канала передачи данных могут включать в себя сброс синхронизирующих счетчиков для повторного выравнивания синхронизирующих счетчиков друг с другом и/или внешним управляющим сигналом (например, сигналом планетарного выравнивания). В некоторых вариантах осуществления изобретения, сброс синхронизирующих счетчиков могут быть осуществлен только посредством вхождения в состояние сброса. В некоторых случаях, детерминизм может быть сохранен, как, например, при возвращении в состояние L0, без сброса синхронизирующего счетчика. Вместо этого, в качестве "заместителя" для сброса могут быть использованы другие сигналы, уже настроенные на планетарное выравнивание, или другое детерминированное событие. В некоторых вариантах осуществления изобретения, при вхождении в детерминированное состояние может быть использован EIEOS-набор. В некоторых случаях, для того чтобы идентифицировать момент синхронизации и синхронизировать синхронизирующие счетчики одного из агентов на канале передачи данных, могут быть использованы граница EIEOS-набора и начальная TS-последовательность надпоследовательности. Конец EIEOS-набора может, среди других примеров, быть использован, например, для того, чтобы избежать потенциала переходных процессов, разрушающих начальную границу EIEOS-набора.
В некоторых вариантах осуществления HPI-межсоединения может также быть предусмотрена фиксация времени задержки. Время задержки может включать в себя не только время задержки, вносимой линией передачи, используемой для передачи флитов, но также и время задержки, получающееся в результате обработки данных агентом на другой стороны канала передачи данных. Время задержки для пути передачи данных может быть определено во время инициализации канала передачи данных. Кроме того, могут также быть определены изменения во времени задержки. Исходя из этого определенного времени задержки, можно инициировать фиксацию времени задержки для того, чтобы компенсировать такие изменения и возвратить время задержки, ожидаемое для этого пути передачи данных, к некоторому постоянному, ожидаемому значению. Поддержание постоянного времени задержки на пути передачи данных может быть критическим для поддержания детерминизма в некоторых системах.
Время задержки может быть зафиксировано на канальном уровне приемника на некотором запрограммированном значении с использованием, в некоторых вариантах осуществления изобретения, буфера времени задержки в сочетании с детерминизмом и может быть задействовано посредством начала обнаружения (например, посредством отправления надпоследовательности обнаружения) при опрокидывании синхронизирующего счетчика. Соответственно, в одном примере, переданный EIEOS-набор (или другой EOS-набор) при опросе и конфигурировании может иметь место при опрокидывании синхронизирующего счетчика. Другими словами, EIEOS-набор может быть точно выровнен с синхронизирующим счетчиком таким образом, что синхронизированный EIEOS-набор (или другой EOS-набор) может служить в качестве "заместителя", в некоторых случаях, для самого значения синхронизирующего счетчика, по меньшей мере, в связи с некоторыми действиями при фиксировании временем задержки. Например, приемник может прибавить достаточно времени задержки к принятому EIEOS-набору таким образом, чтобы он удовлетворял продиктованному целевому времени задержки в интерфейсе физического уровня - канального уровня. В качестве примера, если целевое время задержки составляет 96 UI-интервалов (единичных интервалов) и EIEOS-набор приемника, после выравнивания составляет в синхронизирующем отсчете 80 UI-интервалов, то можно прибавить 16 UI-интервалов времени задержки. По существу, при заданной синхронизации EIEOS-набора, время задержки для пути передачи данных может быть определено на основе запаздывания между тем, когда, как известно, был отправлен EIEOS-набор (например, при некотором конкретном значении синхронизирующего счетчика), и тем, когда этот EIEOS-набор был принят. Кроме того, время задержки может быть зафиксировано с использованием EIEOS-набора (например, посредством прибавления времени задержки к передаче EIEOS-набора для того, чтобы поддерживать целевое время задержки, и так далее).
Фиксация времени задержки может быть использована в рамках контекста детерминизма для того, чтобы позволить внешнему объекту (такому как объект, предоставляющий сигнал планетарного выравнивания) синхронизировать физическое состояние двух агентов на канале передачи данных в двух направлениях. Такого рода признак может быть использован, например, при отладке проблем в полевой обстановке и для поддержания жестко синхронного поведения. Соответственно, такие варианты осуществления изобретения могут включать в себя внешнее управление одним или более сигналами, которые могут заставлять физический уровень переходить в передающее состояние канала передачи данных (TLS-состояние) по двум агентам. Агенты, обладающие возможностями детерминизма могут осуществлять выход из инициализации на границе TS-последовательности, которая потенциально также представляет собой чистую границу флита при или после того, как сигнал утвержден. Детерминизм "главный-подчиненный" может позволить "главному" синхронизировать состояние физического уровня "главного" и "подчиненного" агентов по каналу передачи данных в обоих направлениях. Если это разрешено, то выход "главного" передатчика из инициализации может зависеть (например, следовать за ним или быть скоординированным с ним) от выхода его приемника из инициализации (в дополнение к другим соображениям, основанным на детерминизме). Агенты, которые имеют возможность детерминизма, могут дополнительно, среди других примеров, обладать функциональными возможностями для вхождения в BLS-состояние или окно L0c на чистом флите.
Детерминизм может также упоминаться как автоматическое испытательное оборудование (АТЕ-оборудование), когда используется для синхронизации тестовых комбинаций на АТЕ-оборудовании, при этом проверяемое устройство (DUT-устройство) управляет состоянием физического и канального уровня, фиксируя время задержки в канальном уровне приемника на некотором запрограммированном значении, используя буфер времени задержки.
В некоторых вариантах осуществления изобретения, детерминизм в HPI-межсоединении может включать в себя содействие способности одного агента определять и применять запаздывание, основанное на детерминированном сигнале. "Главный" может отправить удаленному агенту указание целевого времени задержки. Удаленный агент может определить фактическое время задержки на пути передачи данных и применить некоторое запаздывание для того, чтобы скорректировать время задержки таким образом, чтобы оно удовлетворяло целевому времени задержки (например, идентифицированному в TS-последовательности). Корректировка запаздывания или времени задержки может содействовать облегчению возможного синхронизированного вхождения в передающее состояние канала передачи данных, в некоторой точке планетарного выравнивания. Значение запаздывания может быть сообщено "главным" "подчиненному", например, в полезных данных TS-последовательности, входящей в состав надпоследовательности. Это запаздывание может указывать некоторое конкретное количество UI-интервалов (единичных интервалов), определенных для запаздывания. Основываясь на этом определенном времени задержки, "подчиненный" может задержать вхождение в состояние. Такие запаздывания могут, среди других примеров, использоваться, например, для того, чтобы облегчать тестирование, для того, чтобы располагать в шахматном порядке интервалы L0c на путях передачи данных в канале передачи данных.
Как было отмечено выше, выход из состояния может иметь место в соответствии с точкой планетарного выравнивания. Например, SDS может быть отправлено для того, чтобы прервать надпоследовательность состояния для того, чтобы провести переход из этого состояния в другое состояние. Отправка SDS может быть синхронизирована таким образом, чтобы совпасть с точкой планетарного выравнивания, и, в некоторых случаях, в ответ на сигнал планетарного выравнивания. В других случаях, отправку SDS можно синхронизировать с точкой планетарного выравнивания, основываясь на значении синхронизирующего счетчика или другом сигнале, синхронизированном с планетарным выравниванием. SDS можно отправить в любой точке в надпоследовательности, в некоторых случаях, прерывая конкретную TS-последовательность или EIEOS-набор и так далее в надпоследовательности. Это, среди других примеров, может обеспечить то что переход из одного состояния в другое состояние осуществляется с небольшим запаздыванием при сохранении выравнивания с точкой планетарного выравнивания.
В некоторых вариантах осуществления изобретения, HPI-межсоединение может поддерживать флиты с шириной, которая, в некоторых случаях, не является кратным числом номинальной ширины пути передачи данных (например, использование ширины флита, составляющей 192 бита, и 20 путей передачи данных, как просто иллюстративный пример). Действительно, в вариантах осуществления изобретения, допускающих передающие состояния с частичной шириной, количество путей передачи данных, по которым передаются флиты, может колебаться, даже в течение срока службы канала передачи данных. Например, в некоторых случаях, ширина флита может являться кратным числом количества активных путей передачи данных в один момент, но не являться кратным число количества активных путей передачи данных в другой момент (например, когда канал передачи данных изменяет состояние и ширину пути передачи данных). В случаях, при которых количество путей передачи данных не является кратным текущей ширины пути передачи данных (например, пример ширины флита, составляющей 192 битов на 20 путях передачи данных), в некоторых вариантах реализации изобретения могут быть сконфигурированы для передачи следующие друг за другом флиты для того, чтобы накладываться на пути передачи данных, чтобы таким образом сохранить ширину полосы пропускания (например, при передаче пяти следующих друг за другом 192-битовых флитов, наложенных на эти 20 путей передачи данных).
На фиг. 10 проиллюстрировано представление передачи следующих друг за другом флитов, наложенных на ряд путей передачи данных. Например, на фиг. 10 показано представлению пяти 192-битовых флитов наложения, отправляемых по 20 путям передачи данных канала передачи данных (пути передачи данных представлены столбцами 0-19). Каждая ячейка на фиг. 10 представляет соответствующий "полубайт", или группировку из четырех битов (например, биты 4n+3 : 4n), включенный в состав флита, отправленного во временной промежуток из 4 UI-интервалов (единичных интервалов). Например, 192-битовый флит может быть разделен на 48 четырехбитовых полубайта. В одном примере, полубайт 0 включает в себя биты: 0-3, полубайт 1 включает в себя биты: 4-7 и так далее. Биты в полубайтах могут быть отправлены таким образом, чтобы частично перекрываться или быть перемежающимися (например, "смешиваться") таким образом, чтобы поля флита, имеющие более высокий приоритет, были представлены раньше, свойства обнаружения ошибок (например, контроль циклическим избыточным кодом) сохранялись, среди других соображений. На самом деле, схема смешивания может также обеспечивать то, что некоторые полубайты (и их соответствующие биты) отправляются вне очереди (например, как в примерах на фигурах 10 и 11). В некоторых вариантах осуществления изобретения, схема смешивания может зависеть от архитектуры канального уровня и формата флита, используемого в канальном уровне.
Биты (или полубайты) флита с длиной, которая не является кратным числом активных путей передачи данных, могут смешиваться, как, например, в соответствии с примером, показанным на фиг. 10. Например, в течение первых 4 UI-интервалов могут быть отправлены полубайты 1, 3, 5, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44 и 47. В течение следующих 4 UI-интервалов могут быть отправлены полубайты 0, 2, 4, 6, 8, 11, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38, 41, 43, и 46. В UI-интервалах: 8-11, остаются только восемь полубайтов от первого флита. Эти заключительные полубайты (то есть 10, 15, 20, 25, 30, 40, 45) первого флита могут быть отправлены одновременно с первыми полубайтами (то есть полубайтами 2, 4, 7, 9, 12, 16, 20, 25, 30, 35, 40, 45) второго флита, так что первый и второй флит частично перекрываются или смешиваются. При использовании такой технологии, в настоящем примере, пять полных флитов, могут быть представлены в 48 UI-интервалов, при этом каждый флит посылается за дробный период в 9,6 UI-интервалов.
В некоторых случаях, смешивание может привести к периодически "чистым" границам флитов. Например, в примере, показанном на фиг. 10, начальная граница 5 флитов (верхняя строка первого флита), может также именоваться как чистая граница флита, поскольку все пути передачи данных передают начальный полубайт из одного и того же самого флита. Логика канального уровня агента может быть сконфигурирована таким образом, чтобы идентифицировать смешение путей передачи данных, и может реконструировать флит из смешанных битов. В качестве дополнения, логика физического уровня может включать в себя функциональные возможности для идентификации того, когда и как смешивать поток данных флита, основываясь на количестве путей передачи данных, используемых в данный момент времени. На самом деле, при переходе из одного состояния ширины канала передачи данных в другое, агенты могут конфигурировать себя таким образом, чтобы идентифицировать то, каким образом будет использоваться смешивание потока данных. На самом деле, обе стороны канала передачи данных могут идентифицировать схему, подлежащую использованию смешивания потока данных, так чтобы идентифицировать то, каким образом переход из одного состояния в другое состояние ширины канала передачи данных будет влиять на поток данных. В некоторых вариантах осуществления изобретения, для того, чтобы облегчить переход из одного состояния в другое состояние ширины канала передачи данных, осуществляемый на зазубренном краю флита, длина частичной FTS-последовательности (FTSp-последовательности) может быть приспособлена таким образом, чтобы, среди других примеров, выход сигнала был синхронизирован. Кроме того, логика физического уровня может быть сконфигурирована таким образом, чтобы, среди других признаков, сохранять детерминизм, несмотря на зазубренные границы флита, получающиеся в результате смешивания.
Как было отмечено выше, каналы передачи данных могут осуществлять переход между ширинами пути передачи данных, в некоторых случаях работая с исходной, или полной, шириной, а позже переходя к частичной ширине (и от частичной ширины), использующей меньше путей передачи данных. В некоторых случаях, эта определенная ширина флита может делиться без остатка на количество путей передачи данных. Например, пример, показанный на фиг. 11, иллюстрирует такой пример, при котором 192-битовый флит из предшествующих примеров, передается по каналу передачи данных, имеющему 8 путей передачи данных. Как представлено на фиг. 11, 4-битовые полубайты 192-битового флита могут быть равномерно распределены и переданы по 8 путям передачи данных (то есть, поскольку 192 является кратным числом 8). На самом деле, при работе с частичной шириной из 8 путей передачи данных один флит может быть отправлен за 24 UI-интервала. Кроме того, каждая граница флита в примере, показанном на фиг. 11, может быть чистой. В то время как чистые границы флита могут упростить переходы из одного состояния в другое состояние, детерминизм, и другие признаки, разрешение смешивания и случайные зазубренные границы флита могут позволить минимизацию неиспользованной ширины полосы пропускания на канале передачи данных.
В дополнение к этому, хотя в примере, приведенном на фиг. 11, в качестве путей передачи данных, которые оставались активными в состоянии частичной ширины, показаны пути (0-7) передачи данных, потенциально может быть использован любой набор из 8 путей передачи данных. Отметим также, что примеры, приведенные выше, предназначены для целей иллюстрации. Флиты потенциально могут быть определены таким образом, чтобы иметь любую ширину. Каналы передачи данных потенциально могут также иметь любую ширину канала передачи данных. Кроме того, схема смешивания в системе может быть сконструирована гибко в соответствии с форматами и полями флита, предпочтительными ширинами пути передачи данных в системе, среди других соображений и примеров.
Функционирование PHY (физического) логического уровня HPI-межсоединения может быть независимым от лежащих в ее основе передающих сред при том условии, что, среди других соображений, время задержки не приводит в результате к ошибкам фиксирования времени задержки или временам ожидания на канальном уровне.
Для содействия в администрировании физическим уровнем, в HPI межсоединении могут быть предусмотрены внешние интерфейсы. Например, могут быть предусмотрены внешние сигналы (от контактных штырьков, предохранителей, других уровней), таймеры, регистры управления и состояния. Входные сигналы могут изменяться в любое время относительно PHY-состояния (состояния физического уровня), но должны соблюдаться физическим уровнем в специальных точках в соответствующем состоянии. Например, среди других примеров, изменяющийся сигнал выравнивания (как представлено ниже) может быть принят, но не оказывать никакого действия после того, как канал передачи данных вошел в передающее состояние канала передачи данных. Аналогичным образом, значения регистра команд могут соблюдаться объектами физического уровня только в специальных точках во времени. Например, логика физического уровня может сделать моментальный "снимок" этого значения и использовать его в последующих операциях. Следовательно, в некоторых вариантах осуществления изобретения, во избежание аномального поведения обновления в регистры команд, могут быть связанны с ограниченным подмножеством специальных периодов (например, в передающем состоянии канала передачи данных или при удержании в калибровке сброса, в передающем состоянии канала передачи данных, осуществляемом в медленном режиме).
Поскольку значений состояния отслеживают изменения аппаратных средств, то эти значения могут зависеть от того когда они считаны. Однако некоторые значения состояния, такие как карта каналов передачи данных, время задержки, скорости и так далее, могут не изменяться после инициализации. Например, повторная инициализация (или выход из состояния канала передачи данных, имеющего низкое энергопотребление (LPLS-состояния), или состояния L1) представляет собой единственное, что может заставить их измениться (например, среди других примеров, серьезный отказ пути передачи данных в TLS-состоянии может не привести в результате к реконфигурированию канала передачи данных до тех пор, пока не будет запущена повторная инициализация).
Сигналы интерфейса могут включать в себя сигналы, которые являются внешними по отношению к физическому уровню, но воздействуют на его поведение. Такие сигналы интерфейса могут включать в себя, в качестве примера, сигналы кодирования и синхронизации. Сигналы интерфейса могут быть специфическими для конструкции. Эти сигналы могут быть вводом или выводом. Некоторые сигналы интерфейса, такие как названные семафоры и снабженные префиксом ЕО, среди других примеров, могут быть активными один раз по фронту установки уровня сигнала, то есть, для того, чтобы снова оказать воздействие, они могут быть отменены и затем вновь установлены. Например, таблица 1 включает в себя перечень приводимых в качестве примера функций:
Значения "по умолчанию" таймера CSR могут предоставляться в парах - одно для медленного режима и одно для рабочей скорости. В некоторых случаях, значение 0 блокирует таймер (то есть, время ожидания никогда не наступает). Таймеры могут включить в себя те, что показаны в таблице 2, приводимой ниже. Первичные таймеры могут быть использованы для хронирования ожидаемых действий в состоянии. Вторичные таймеры используются для прекращения инициализаций, которые не движутся дальше, или для выполнения направленных вперед переходов из одного состояния в другое состояние в точные моменты времени в режиме автоматического испытательного оборудования (или АТЕ-оборудования). В некоторых случаях, вторичные таймеры могут быть намного большими чем первичные таймеры в состоянии. Наборы экспоненциальных таймеров могут быть снабжены суффиксом exp, и значение таймера возводится в степень 2 для полевого значения. Для линейных таймеров значение таймера и является полевым значением. Любой из этих двух таймеров мог бы использовать различную гранулярность. В дополнение к этому, некоторые таймеры в секции администрирования энергопотребления могут быть в наборе, называемом "временной профиль". Они могут быть связаны с временной диаграммой того же самого названия.
Могут быть предусмотрены регистры команд и управления. Регистры команд могут быть запаздывающего действия и могут считываться или записываться программными средствами в некоторых случаях. Значения запаздывающего действия могут вступать в силу (например, передаваться со стадии, обращенной к программным средствам, на стадию, обращенную к аппаратным средствам), непрерывно во время Сброса. Управляющие семафоры (снабженные префиксом CP) являются RW1S и могут быть очищены аппаратными средствами. Регистры управления могут быть использованы для выполнения любого из описанных здесь пунктов. Их изменение и доступ к ним могут осуществлять аппаратные средства, программные средства, программно-аппаратные средства или их сочетание.
Для отслеживания изменений аппаратных средств (записываемых и используемых аппаратными средствами) могут быть предусмотрены регистры состояния, и они могут быть предназначены только для чтения (но отладочные программные средства может быть также способны и осуществлять запись на них). Такие регистры, могут не оказывать влияния на функциональную совместимость и могут обычно дополняться со многими частными регистрами состояния. Семафоры состояния (снабженные префиксом SP) могут быть обязательными, поскольку они могут очищаться программными средствами для того, чтобы повторно выполнять действия, которые задают состояние. Начальные (при сбросе) значения средств по умолчанию могут быть предоставлены как подмножество этих битов состояния, относящихся к инициализации. При аварийном прекращении инициализации этот регистр может быть скопирован в запоминающую структуру.
Могут быть предусмотрены регистры инструментария. Например, регистры инструментария тестируемости, имеющиеся на физическом уровне, могут обеспечивать генерацию тестовых кодов, проверку тестовых кодов и механизмы управления кольцевой проверкой. Приложения верхнего уровня могут использовать эти регистры наряду с электрическими параметрами для определения пределов рабочего режима. Например, встроенное в тест межсоединение может использовать этот инструментарий для того, чтобы определять пределы рабочего режима. Для адаптации передатчика эти регистры могут использоваться совместно со специальными регистрами, описанными, среди других примеров, в предшествующих секциях.
В некоторых вариантах осуществления изобретения, HPI-межсоединение поддерживает такие характеристики как надежность, готовность, удобство обслуживания (RAS-характеристика), использующие физический уровень. В одном варианте реализации изобретения, HPI-межсоединение поддерживает подключение и отключение устройств без выключения системы, на одном или более уровнях, которые могут включать в себя программные средства. Отключение устройств без выключения системы может включать в себя "замораживание" канала передачи данных, и состояние/сигнал начала инициализация могут быть очищены для агента, подлежащего отключению. Удаленный агент (то есть, агент, который не удаляется (например, агент-хозяин)) может собираться установлен на медленную скорость, и сигнал его инициализации также может быть очищен. Внутриполосный сброс (например, через BLS-состояние) может, среди других примеров и признаков, заставить обоих агентов ждать в состоянии сброса, таком как калибровочное состояния сброса (CRS-состояние); и агент, подлежащий отключению, может быть отключен (или может удерживаться в целевом состоянии сброса от штекера, с выключенным электропитанием). На самом деле, некоторые из вышеупомянутых событий могут быть опущены, а дополнительные события могут быть добавлены.
Добавление устройства без выключения системы может включать в себя то, что скорость инициализации может по умолчанию быть установлена на медленную, и может быть установлен сигнал инициализации на агенте, подлежащем добавлению. Программные средства могут установить скорость на медленную и могут очистить сигнал инициализации на удаленном агенте. Канал передачи данных может начать работу в медленном режиме, и программные средства могут определить рабочую скорость. В некоторых случаях, в этой точке выполняется перезахват фазовой автоподстройки частоты на удаленном агенте. На обоих агентах может быть установлена рабочая скорость, и может быть установлено разрешение на адаптацию (если это не было сделано ранее). Указатель начала инициализация может быть очищен на обоих агентах, и внутриполосный сброс в BLS-состоянии может заставить обоих агентов ждать в CRS-состоянии. Программные средства могут объявить "теплый" сброс (например, целевой или самосброс) агента (подлежащего добавлению), что может вызвать перезахват фазовой автоподстройки частоты. Программные средства могут также зада сигнал начала инициализации посредством любой известной логики и далее установить его на удаленном агенте (таким образом, продвигая его в состояние обнаружения приемника (RDS-состояние)). Программные средства могут отменить "теплый" сброс добавляющегося агента (таким образом, продвигая его в RDS-состояние). Канал передачи данных может затем осуществить, среди других примеров, инициализацию на рабочей скорости, переходя в передающее состояние канала передачи данных (TLS-состояние) (или к кольцевой проверке, если установлен сигнал адаптации). На самом деле, некоторые из вышеупомянутых событий могут быть опущены, а дополнительные события могут быть добавлены.
Может поддерживаться восстановление при отказе пути передачи данных. Канал передачи данных в HPI-межсоединении, в одном варианте реализации изобретения, может быть упругим по отношению к систематической ошибке на одном пути передачи данных, конфигурируя себя до менее чем полной ширины (например, меньше чем половина полной ширины), что может, таким образом, исключить дефектный путь передачи данных. В качестве примера, эта конфигурация может быть выполнена конечным автоматом канала передачи данных, и неиспользуемые пути передачи данных могут быть выключены в состоянии конфигурирования. В результате этого, среди других примеров, флит может быть отправлен по более узкой ширине.
В некоторых вариантах осуществления HPI-межсоединения, на некоторых каналах передачи данных может поддерживаться реверсирование путей передачи данных. Реверсирование путей передачи данных может относиться, например, к путям (0/1/2…) передачи данных, относящимся к передатчику, соединенных с путями (n/n - 1/n - 2…) передачи данных, относящимися к приемнику (например n может равняться 19 или 7 и так далее). Реверсирование путей передачи данных может быть обнаружено в приемнике как идентифицированное в области заголовка TS-последовательности. Приемник может обрабатывать реверсирование путей передачи данных, начав в состоянии опроса с использования физического пути (n…0) передачи данных для логического пути (0…n) передачи данных. Следовательно, ссылки на путь передачи данных могут относиться к номеру логического пути передачи данных. Следовательно, разработчики печатных плат могут более эффективно составлять физическую или электрическую конструкцию, а ΗΡΙ-межсоединение может работать с назначениями виртуальных путей передачи данных, как здесь описано. Кроме того, в одном варианте реализации изобретения, полярность может быть инвертирована (то есть когда +/- дифференциального передатчика связан с -/+ приемника. Полярность также может быть обнаружена в приемнике из одного или более полей заголовка TS-последовательности и обработана, в одном варианте реализации изобретения, в состоянии опроса.
Обратимся к фиг. 12, на которой изображен вариант реализации структурной схемы для вычислительной системы, включающей в себя многоядерный процессор. Процессор (1200) включает в себя любой процессор или процессорное устройство, такое как микропроцессор, встроенный процессор, процессор цифровой обработки сигналов (DSP-процессор), сетевой процессор, портативный процессор, прикладной процессор, сопроцессор, Система, встроенная в кристалл (SOC-система) или другое устройство для исполнения кода. Процессор (1200), в одном варианте реализации изобретения, включает в себя, по меньшей мере, два ядра: ядро (1201) и (1202), которые могут включать в себя асимметричные ядра или симметричные ядра (проиллюстрированный вариант реализации изобретения). Однако процессор (1200) может включать в себя любое количество процессорных элементов, которые могут быть симметричными или асимметричными.
В одном варианте реализации изобретения, термин "процессорный элемент" относится к аппаратным средствам или логике для поддержания потока исполнения программных средств. Примеры аппаратный процессорных элементов включают в себя: звено потока обработки, слот потока обработки, поток обработки, звено процесса, контекст, контекстное звено, логический процессор, аппаратный поток обработки, ядро и/или любой другой элемент, который способен удерживать состояние для процессора, такое как состояния исполнения или архитектурное состояние. Другими словами, термин "процессорный элемент", в одном варианте реализации изобретения, относится к любым аппаратным средствам, способным быть независимо связанными с кодом, таким как программный поток обработки, операционная система, приложение или другой код. Термин "физический процессор" (или процессорный сокет) обычно относится к интегральной схеме, которая потенциально включает в себя любое количество других процессорных элементов, таких как ядра или аппаратные потоки обработки.
Термин "ядро" обычно относится к логике, расположенной на интегральной схеме, способной к поддержанию независимого архитектурного состояния, при этом каждое независимо поддерживаемое состояние архитектурное связано с, по меньшей мере, некоторыми выделенными исполняющими ресурсами. В отличие от ядер, термин "аппаратный поток обработки" обычно относится к любой логике, расположенной на интегральной схеме, способной к поддержанию независимого архитектурного состояния, при этом независимо поддерживаемое архитектурное состояние совместно с другими пользуется доступом к исполняющим ресурсам. Как можно заметить, когда некоторые ресурсы находятся в совместном пользовании, а другие выделены некоторому архитектурному состоянию, линия между терминологией: "аппаратный поток обработки" и "ядро" перекрывается. Все же часто ядро и аппаратный поток обработки рассматриваются операционной системой как индивидуальные логические процессоры, при этом операционная система способна индивидуально планировать операции на каждом логическом процессоре.
Физический процессор (1200), как проиллюстрировано на фиг. 12, включает в себя два ядра: ядро (1201) и (1202). Здесь, ядро (1201) и (1202) считаются симметричными ядрами, то есть ядрами с одними и теми же конфигурациями, функциональными звеньями и/или логикой. В другом варианте реализации изобретения, ядро (1201) включает в себя процессорное ядро с переупорядочением последовательности команд, в то время как ядро (1202) включает в себя процессорное ядро без переупорядочивания последовательности команд. Однако ядра (1201) и (1202) могут быть выбраны индивидуально из любого типа ядра, такого как собственное ядро, программно управляемое ядро, ядро, приспособленное к исполнению собственной архитектуры набора команд (ISA-архитектуры), ядро, приспособленное к исполнению оттранслированной архитектуры набора команд (ISA-архитектуры), ядро совместной разработки или другое известное ядро. В неоднородной среде ядер (то есть при асимметричных ядрах) может быть использована некоторая форма трансляции, такая как двоичная трансляция, для планирования или исполнения кода на одном или обоих ядрах. Все же для продолжения обсуждения отметим, что ниже более подробно описаны функциональные звенья, проиллюстрированные в ядре (1201), поскольку в изображенном варианте реализации изобретения звенья в сердечнике (1202) работают аналогичным образом.
Как изображено на чертеже, ядро (1201) включает в себя два аппаратных потока (1201 а) и (1201 b) обработки, которые могут также упоминаться как слоты (1201 а) и (1201 b) аппаратных потоков обработки. Следовательно, программные объекты, такие как операционная система, в одном варианте реализации изобретения, потенциально рассматривают процессор (1200) как четыре отдельных процессора, то есть, четыре логических процессора или процессорных элементов, способных исполнять четыре программных потока обработки. Как упоминалось выше, первый поток обработки связан с регистрами (1201 а) состояний архитектуры, второй поток обработки может быть связан с регистрами (1201 b) состояний архитектуры, третий поток обработки может быть связан с регистрами (1202 а) состояний архитектуры, а четвертый поток обработки может быть связан с регистрами (1202 b) состояний архитектуры. Здесь, как было описано выше, каждый из регистров (1201 а, 1201 b, 1202 а и 1202 b) состояний архитектуры может упоминаться как процессорные элементы, слоты потока обработки или звенья потока обработки. Как проиллюстрировано на чертеже, регистры (1201 а) состояний архитектуры скопированы в регистрах (1201 b) состояний архитектуры, так что индивидуальные состояния/контексты архитектуры способны быть сохраненными для логического процессора (1201 а) и логического процессора (1201 b). В ядре (1201), другие меньшие ресурсы, такие как указатели команд и переименовывающая логика в распределяющем и переименовывающем блоке (1230), могут также быть скопированы для потоков (1201 а) и (1201 b) обработки. Некоторые ресурсы, такие как переупорядочивающие буфера в звене (1235) переупорядочивания/изъятия, ILTB (1220), буфера загрузки/сохранения и очереди могут находиться в совместном использовании посредством разделения. Другие ресурсы, такие как универсальные внутренние регистры, базовый регистр (базовые регистры) таблиц страниц, низкоуровневый кэш данных и буфер (D-TLB) (1215) преобразования данных, исполняющее звено (звенья) (1240) и части звена (1235) переупорядочения последовательности команд потенциально полностью находятся в совместном использовании.
Процессор (1200) часто включает в себя другие ресурсы, которые могут полностью находиться в совместном использовании, находиться в совместном использовании посредством разделения или быть выделенными процессорными элементами или процессорным элементам. На фиг. 12 проиллюстрирован вариант реализации процессора, приводимого просто в качестве примера, с иллюстративными логическими звеньями/ресурсами процессора. Отметим, что процессор может включать в себя, или не включать в себя, любой из этих функциональных звеньев, так же как включить в себя любые другие известные функциональные звенья, логику или программно-аппаратные средства, не изображенные на чертеже. Как проиллюстрировано на чертеже, ядро (1201) включает в себя упрощенное репрезентативное процессорное ядро с переупорядочением последовательности команд (ООО-ядро). Но в других вариантах реализации изобретения может быть использован процессор без переупорядочения последовательности команд. ООО-ядро включает в себя буфер (1220) меток перехода, предназначенный для предсказывания ветви, которые будут исполняться/браться, и буфер (I-TLB) (1220) трансляции команд, предназначенный для сохранения записей трансляции адресов для команд.
Кроме того, ядро (1201) включает в себя, декодирующий модуль (1225), сопряженный со звеном (1220) выборки, для декодирования выбранных элементов. Логика выборки, в одном варианте реализации изобретения, включает в себя индивидуальные контроллеры последовательности, связанные, соответственно, со слотами (1201 а), (1201 b) потока обработки. Обычно ядро (1201) ассотиативно связано с первой ISA-архитектурой, которая определяет/указывает команды, выполняемые на процессоре (1200). Часто команды в машинном коде, которые являются частью первой ISA-архитектуры, включают в себя часть команды (именуемую как код операции), которая ссылается/указывает на команду или операцию, подлежащую выполнению. Декодирующая логика (1225) включает в себя электрическую схемы, которые распознают эти команды по их кодам операции и передают декодированные команды дальше на конвейер для обработки, которая определена первой ISA-архитектурой. Например, как более подробно обсуждается ниже, декодеры (1225), в одном варианте реализации изобретения, включают в себя логику, спроектированную или приспособленную для того, чтобы распознавать конкретные команды, такие как транзакционная команда. В результате распознавания декодерами (1225), архитектура или ядро (1201) предпринимает конкретные, предварительно определенные действия для выполнения задач, связанных с соответствующей командой. Важно отметить, что любая из задач, блоков, операций и способов, описанных здесь, может быть выполнена в ответ на единственную или множественные команды; некоторые из которых могут быть новыми или старыми командами. Отметим, что декодеры (1226), в одном варианте реализации изобретения, распознают одну и ту же ISA-архитектуру (или ее подмножество). В качестве альтернативы, в неоднородной среде ядер, декодеры (1226) распознают вторую ISA-архитектуру (будь то подмножество первой ISA-архитектуры или отдельная ISA-архитектура).
В одном примере, распределяющий и переименовывающий блок (1230), включает в себя распределитель для резервирования ресурсов, такой как регистровые файлы для хранения результатов обработки команд. Однако потоки (1201 а) и (1201 b) обработки потенциально способны к исполнению с изменением последовательности, при котором распределяющий и переименовывающий блок (1230) также резервирует другие ресурсы, такие как переупорядочивающие буфера для отслеживания результатов команд. Звено (1230) может также включать в себя звено переименования регистров для того, чтобы переименовать регистры ссылок на программы/команды в другие регистры, внутренние по отношению к процессору (1200). Звено (1235) переупорядочивания/изъятия включает в себя компоненты, такие как переупорядочивающие буфера, упомянутые выше, буфера загрузки, и буфера хранения, для поддержки исполнения с изменением последовательности, а после этого изъятие по порядку команд, исполненных с изменением последовательности.
Блок (1240) планировщика и исполняющего звена (исполняющих звеньев), в одном варианте реализации изобретения, включает в себя звено планировщика для того, чтобы распланировать команды/операцию по исполняющим звеньям. Например, команду с плавающей точкой планируется порту исполняющего звена, которое имеет доступное звено исполнения вычислений с плавающей запятой. Для сохранения информационных результатов обработки команд в состав этого блока также включены регистровые файлы связанные с исполняющими звеньями. Приводимые в качестве примера исполняющие звенья включают в себя звено исполнения вычислений с плавающей запятой, звено исполнения целочисленных вычислений, звено исполнения перехода, звено исполнения загрузки, звено исполнения сохранения и другие известные исполняющие звенья.
С исполняющим звеном (исполняющими звеньями) (1240) сопряжены низкоуровневый кэш данных и буфер (D-TLB) (1250) преобразования данных. Кэш данных предназначен для сохранения недавно использованных/подвергшихся операциям элементов, таких как данные - операнды, которые потенциально сохраняют в памяти состояния когерентности. Буфер D-TLB предназначен для сохранения недавних преобразований виртуальных/линейных адресов в физические адреса. В качестве конкретного примера, процессор может включать в себя структуру таблицы страниц для разделения физической памяти на множество виртуальных страниц.
Здесь, ядра (1201) и (1202) совместно осуществляют доступ к кэшу более высокого уровня или более удаленному кэшу, такому как кэш второго уровня связанный со встроенным в кристалл интерфейсом (1210). Отметим, что термины "более высокий уровень" или "более удаленный" относятся к повышению уровней или большему удалению кэша от исполняющего звена (исполняющих звеньев). В одном варианте реализации изобретения, кэш более высокого уровня представляет собой кэш данных последнего уровня - последний кэш в иерархии памяти на процессоре (1200), такой как кэш данных второго или третьего уровня. Однако более высокий уровень кэша этим не ограничен, как поскольку он может быть связан с кэшом команд или включать его в себя. Вместо этого, после декодера (1225) может быть подсоединен трассировочный кэш - некоторый тип кэша команд, предназначенный для сохранения недавно декодированных трассировок. Здесь, термин "команда" потенциально относится к макрокоманде (то есть общей команде, распознанной декодерами), которая может быть декодирована на множество микрокоманд (микроопераций).
В изображенной конфигурации, процессор (1200) также включает в себя встроенное в кристалл интерфейсное звено (1210). Исторически, контроллер памяти, который более подробно описан ниже, был включен в состав вычислительной системы, внешней по отношению к процессору (1200). В этом сценарии, встроенный в кристалл интерфейс (121) должен поддерживать связь с устройствами, внешними по отношению к процессору (1200), такими как системная память (1275), набор микросхем (часто включающий в себя концентратор-контроллер памяти, предназначенный для соединения с памятью (1275), и концентратор-контроллер ввода/вывода, предназначенный для подсоединения периферийных устройств), концентратор-контроллер памяти, северный мост или другую интегральную схему. И в этом сценарии шина (1205) может включать в себя любое известное межсоединение, такое как многоотводная шина, двухточечное межсоединение, последовательное межсоединение, параллельная шина, когерентная (например, когерентная кэшу) шина, многоуровневую архитектуру протоколов, дифференциальная шина и шина GTL.
Память (1275) может быть выделенной для процессора (1200) или совместно использоваться им с другими устройствами в системе. Общие примеры типов памяти (1275) включают в себя DRAM (динамическое оперативное запоминающее устройство), SRAM (статическое оперативное запоминающее устройство), энергонезависимое запоминающее устройство (NV-память) и другие известные запоминающие устройства. Отметим, что устройство (1280) может включать в себя: графический ускоритель, процессор или плату, сопряженную с концентратором-контроллером памяти, запоминающее устройство для данных, сопряженное с концентратором-контроллером ввода/вывода, приемопередатчик беспроводной связи, устройство флеш-памяти, аудиоконтроллер, сетевой контроллер или другое известное устройство.
Однако в последнее время, поскольку все больше логики и устройств интегрируются на одном кристалле, такие как SOC (Система, встроенная в кристалл), каждое из этих устройств может быть включено в состав процессора (1200). Например, в одном варианте реализации изобретения, концентратор-контроллер памяти находится на одном м том же модуле и/или кристалле с процессором (1200). При этом, часть ядра (расположенная на ядре часть) (1210) включает в себя один или более контроллеров для сопряжения посредством интерфейса с другими устройствами, такими как память (1275) или графическое устройство (1280). Конфигурация, включающая в себя межсоединение и контроллеры для сопряжения посредством интерфейса с такими устройствами, часто упоминается как неядерная (или неядерная конфигурация). В качестве примера, встроенный в кристалл интерфейс (1210) включает в себя кольцевое межсоединение для связи в кристалле и высокоскоростной двухточечный канал (1205) последовательной передачи данных для некристальной связи. Все же, в среде SOC-системы, даже еще больше устройств, таких как сетевой интерфейс, сопроцессоры, память (1275), графический процессор (1280) и любые другие известные компьютерные устройства / интерфейс могут быть интегрированы на одном кристалле или интегральной схеме, что обеспечивает малый форм-фактор, высокие функциональные возможности и низкое энергопотребление.
В одном варианте реализации изобретения, процессор (1200) способен исполнять код (1277) компилятора, оптимизации и/или транслятора для того, чтобы компилировать, транслировать и/или оптимизировать код (1276) приложения таким образом, чтобы поддерживать описанные здесь аппарат и способы или взаимодействовать с ними. Компилятор часто включает в себя программу или набор программ для трансляции исходного текста/кода в объектный текст/код. Обычно, компиляция кода программы/приложения посредством компилятора выполняется во множественных фазах и проходах для преобразования кода на языке программирования высокого уровня в код на низкоуровневом машинном языке или языке ассемблера. Все же, для простой компиляции могут, тем не менее, использоваться однопроходные компиляторы. Компилятор может использовать любые известные технологии компиляции и выполнять любые известные операции компилятора, такие как лексического анализа, предварительная обработка, синтаксический анализ, семантический анализ, генерация объектного кода, преобразование кода и оптимизация кода.
Более крупные компиляторы часто включают в себя множественные фазы, но чаще всего эти фазы включены в состав двух общих фаз: (1) предварительной обработки, то есть, при которой обычно могут иметь место синтаксическая обработка, семантическая обработка и некоторые преобразование/оптимизация, и (2) завершающей обработки, то есть, при которой обычно имеет место анализ, преобразования, оптимизация и генерация объектного кода. Некоторые компиляторы прибегают к среднему виду обработки, что иллюстрирует размывание разграничения между предварительной обработкой и завершающей обработкой в компиляторе. В результате этого, обращение к операциям вставке, ассоциации, генерации или другой операции компилятора может иметь место в любой из вышеупомянутых фаз или проходов, так же как и в любых других известных фазах или проходах компилятора. В качестве иллюстративного примера, компилятор потенциально вставляет операции, вызовы, функции и так далее в одной или более фазах компиляции, как, например, введение вызовов/операций в фазе предварительной обработки при компиляции и затем преобразование вызовов/операций в код более низкого уровня во время фазы преобразования. Отметим, что в динамической компиляции, код компилятора или код динамической оптимизации может вставлять такие операции/вызовы, так же как и оптимизировать код для исполнения во время прогона. В качестве конкретного иллюстративного примера, двоичный код (уже оттранслированная программа) может быть динамически оптимизирован во время прогона. Здесь, код программы может включать в себя код динамической оптимизации, двоичный код, или их сочетание.
Аналогично компилятору, транслятор, такой как двоичный транслятор осуществляет трансляцию кода, либо статически, либо динамически, для того, чтобы оптимизировать и/или транслировать код. Следовательно, ссылка на исполнение кода, прикладной код, код программы или другую программную среду может относиться к: (1) исполнению программы (программ) компилятора, оптимизатору кода оптимизации или транслятору, либо динамическому, либо статическому, для компиляции кода программы, для поддержания программных структур, для выполнения других операции, для оптимизации кода или для трансляции кода; (2) исполнению кода основной программы, включающей в себя операции/вызовы, такой как прикладной код, который был оптимизирован/скомпилирован; (3) исполнению другого кода программы, такого как библиотеки, связанные с кодом основной программы, для поддержания программных структур, для выполнения других операций, связанных с программными средствами, или для оптимизации кода; или (4) их сочетанию.
Теперь обратимся к фиг. 13, на которой показана структурная схема варианта реализации многоядерного процессора. Как показано в варианте реализации изобретения, приведенном на фиг. 13, процессор (1300) включает в себя множественные области. В частности, основная область (1330) включает в себя множество ядер (1330 А - 1330 N), область (1360) графики включает в себя одну или более графических машин, имеющих мультимедийную машину (1365), и область (1310) системного агента.
В различных вариантах реализации изобретения, область (1310) системного агента обрабатывает события управления электропитанием и администрирования электропитания, так что индивидуальные звенья областей (1330) и (1360) (например ядра и/или графические машины) могут независимо управляться таким образом, чтобы динамически функционировать в соответствующем режиме/на соответствующем уровне электропитания (например, активном, турбо, "спящем", "дремлющем", "глубоко сна" или в другом состоянии, аналогичном Интерфейсу электропитания усовершенствованной конфигурации) в свете действия (или бездействия) имеющего место в данном звене. Каждая из областей (1330) и (1360) может функционировать с различным напряжением и/или мощностью, и, кроме того, индивидуальные звенья внутри этих областей, потенциально функционируют каждая управляет с независимой частотой и напряжением. Отметим, что хотя показано только три области, понимание объема настоящего изобретение не ограничено в этом отношении, и в других вариантах реализации изобретения могут присутствовать дополнительные области.
Как показано на чертеже, каждое ядро (1330) дополнительно включает в себя каше низкого уровня в дополнение к различным исполняющим звеньям и дополнительным процессорным элементам. При этом различные ядра сопряжены друг с другом и с находящейся в совместном использовании кэш-память, которая сформирована из множества звеньев или секций (1340 А - 1340 N) кэша (LLC) последнего уровня; эти LLC - секции часто включают в себя запоминающее устройство и функциональные возможности контроллера кэш-памяти и совместно используются ядрами, так же как, потенциально, и графическими машинами также.
Как видно на чертеже, кольцевое межсоединение (1350) сопрягает ядра вместе, и обеспечивает межсоединение между областью (1330) ядер, областью (1360) графики и схемами (1310) системного агента через множество кольцевых "остановок" (1352 А) - (1352 N), каждая на сопряжении между LLC-секцией и ядром. Как видно на фиг. 13, межсоединение (1350) используется для того, чтобы переносить различную информацию, включающую в себя информацию адресов, информацию данных, информацию подтверждений и ненужную/недействительную информацию. Хотя проиллюстрировано кольцевое межсоединение, может быть использовано любое известное внутрикристальное межсоединение или структура. В качестве иллюстративного примера, аналогичным образом могут быть использованы некоторые из рассмотренных выше структур, (например, друге внутрикристальное межсоединение, Структура внутрикристальной системы (OSF-структура), межсоединение Усовершенствованной микроконтроллерной шинной архитектуры (АМВА), многомерные структуры с ячейками или другая известная архитектура межсоединения).
Как изображено далее, область (1310) системного агента включает в себя машину (1312) отображения, которая должна обеспечивать управление и интерфейс для связанного с ней устройства отображения. Область (1310) системного агента может включать в себя другие звенья, такие как: интегрированный контроллер (1320) памяти, который обеспечивает интерфейс с системной памятью (например, DRAM (динамическим оперативным запоминающим устройством), реализованным с множественными DIMM-модулями (модулями памяти с двухрядным расположением выводов); логика (1322) когерентности, предназначенная для выполнения операций когерентности памяти. Для того чтобы сделать возможным межсоединение между процессором и другими схемами могут иметься множественные интерфейсы. Например, в одном варианте реализации изобретения предусматривается, по меньшей мере, один Прямой мультимедийный интерфейс (DMI-интерфейс) (1316), так же как один или более интерфейсов PCIe™ (1314). Машина отображения и эти интерфейсы обычно сопрягаются с памятью через мост PCIe™ (1318). Кроме того и в дополнение к этому, для обеспечения связи между другими агентами, такими как дополнительные процессоры или другие схемы, могут быть предусмотрены один или более других интерфейсов.
Теперь обратимся к фиг. 14, на которой показана структурная схема репрезентативного ядра; в частности, логические блоки задней части ядра, такого как ядро (1330) с фиг. 13. Вообще, конструкция, которая показана на фиг. 14, включает в себя процессор с переупорядочением последовательности команд, который имеет звено (1470) передней части, используемое для выборки поступающих команд, выполнения различной обработки данных (например, кэширования, декодирования, предсказания ветви и так далее) и передачу команд/операций далее машине с переупорядочением последовательности команд (ООО-машине) (1480). ООО-машина (1480) выполняет дальнейшую обработку над декодированными командами.
В частности, в варианте реализации изобретения, показанном на фиг. 14, машина (1480) с переупорядочением последовательности команд включает в себя распределяющее звено (1482) для приема декодированных команд, которые могут быть в форме одной или более микрокоманд или uop, от звена (1470) передней части, и распределения их надлежащим ресурсам, таким как регистры и так далее. Затем, команды подаются на станцию (1484) резервации, которая резервирует ресурсы и планирует их для исполнения на одном из множества исполняющих звеньев (1486 А - 1486 N). Могут иметься различные типы исполняющих звеньев, включающие в себя, среди прочих, например, арифметико-логические устройства (ALU-устройства), звенья загрузки и сохранения, устройства векторной обработки данных (VPU-устройства), звенья исполнения вычислений с плавающей запятой. Результаты от этих различных исполняющих звеньев предоставляются в переупорядочивающий буфер (ROB-буфер) (1488), который берет неупорядоченные результаты и возвращает их к правильному порядку программы.
По-прежнему обращаясь к фиг. 14, отметим, что как звено (1470) передней части, так и машина (1480) с переупорядочением последовательности команд сопряжены с различными уровнями иерархии память. В частности, на чертеже показан - кэш (1472) уровня команд, который, в свою очередь, сопряжен с кэшем (1476) среднего уровня, который, в свою очередь, сопряжен с кэшем (1495) последнего уровня. В одном варианте реализации изобретения, кэш (1495) последнего уровня реализован на внутрикристальном (иногда именуемом как неядерное) звене (1490). В качестве примера, звено (1490) аналогичен системному агенту (1310) с фиг. 13. Как было сказано выше, неядро (1490) поддерживает связь с системной памятью (1499), которая, в проиллюстрированном варианте реализации изобретения, реализована посредством оперативного запоминающего устройства ED RAM. Отметим также, что различные исполняющие звенья (1486) в машине (1480) с переупорядочением последовательности команд поддерживают связь с кэшем (1474) первого уровня, который также поддерживает связь с кэшем (1476) среднего уровня. Отметим также, что с кэшем (1495) последнего уровня могут быть сопряжены дополнительные ядра (1430 N - 2) - (1430 N). Несмотря на то, что показано на этом высоком уровне в варианте реализации изобретения, приведенном на фиг. 14, следует понимать, что могут присутствовать различные изменения и дополнительные компоненты.
Обратимся к фиг. 15, на которой проиллюстрирована структурная схема приводимой в качестве примера компьютерной системы, сформированной с процессором, который включает в себя исполняющие звенья для исполнения команды, где одно или более межсоединений реализует одну или более функций в соответствии с одним вариантом реализации настоящего изобретения. Система (1500) включает в себя компонент, такой как процессор (1502), для использования исполняющих звеньев, включающих в себя логику для выполнения алгоритма для обработки данных, в соответствии с настоящим изобретение, такой как в описанном здесь варианте реализации изобретения. Система (1500) является представителем систем обработки данных, основанных на микропроцессорах PENTIUM III™, PENTIUM 4™, Xeon™, Itanium, XScale™ и/или StrongARM™, хотя могут также использоваться другие системы (включающие в себя персональные компьютеры, имеющие другие микропроцессоры, инженерные рабочие станции, телевизионные абонентские приставки и тому подобное). В одном варианте реализации изобретения, приводимая в качестве примера система (1500) исполняет версию операционной системы WINDOWS™, поставляемой Microsoft Corporation, г. Редмонд, Вашингтон, хотя могут также использоваться и другие операционные системы (например, UNIX и Linux), встроенное программное обеспечение и/или графические пользовательские интерфейсы. Таким образом, варианты реализации настоящего изобретение не ограничены никакой конкретной комбинацией схем аппаратных средств и программного обеспечения.
Варианты реализации изобретения не ограничены компьютерными системами. Альтернативные варианты реализации настоящего изобретения могут быть использованы в других устройствах, таких как карманные устройства, и встроенных приложениях. Некоторые примеры карманных устройств включают в себя сотовые телефоны, устройства, поддерживающие Интернет-протокол, цифровые фотокамеры, персональные цифровые секретари (PDA) и карманные персональные компьютеры. Встроенные приложения могут включать в себя микроконтроллер, процессор цифровой обработки сигналов (DSP-процессор), внутрикристальную систему, сетевые компьютеры (NetPC (сетевые персональные компьютеры)), телевизионные абонентские приставки, сетевые концентраторы, коммутаторы глобальной сети (WAN) или любую другую систему, которая может выполнять одну или более команд в соответствии с, по меньшей мере, одним вариантом реализации изобретения.
В этом проиллюстрированном варианте реализации изобретения, процессор (1502) включает в себя один или более исполняющих звеньев (1508) для реализации алгоритма, который должен выполнять по меньшей мере одну команду. Один вариант реализации изобретения может быть описан в контексте однопроцессорного настольного компьютера или системы сервера, но альтернативные варианты реализации изобретения могут быть включены в состав многопроцессорной системы. Система (1500) представляет собой пример архитектуры системы 'концентратор'. Вычислительная система (1500) включает в себя процессор (1502) для обработки сигналов данных. Процессор (1502), в качестве одного иллюстративного примера, включает в себя: процессор компьютера со сложным набором команд (CISC-процессор), процессор для вычисления с сокращенным набором команд (RISC-процессор), процессор с командными словами сверхбольшой длины (VLIW-процессор), процессор, воплощающий комбинацию наборов команд или любое другое процессорное устройство, такое как, например, процессор цифровой обработки сигналов. Процессор (1502) сопряжен с процессорной шиной (1510), которая передает сигналы данных между процессором (1502) и другими компонентами в системе (1500). Элементы системы (1500) (например графический ускоритель (1512), концентратор-контроллер (1516) памяти, память (1520), концентратор-контроллер (1524) ввода/вывода, приемопередатчик (1526) беспроводной связи, система BIOS (базовая система ввода-вывода) (1528), записанная во флеш-памяти, сетевой контроллер (1534), аудиоконтроллер (1536), последовательный порт (1538) расширения, контроллер (1540) ввода/вывода и так далее) выполняют свои традиционные функции, которые хорошо известны специалистам, знакомым с этой областью техники.
В одном варианте реализации изобретения, процессор (1502) включает в себя внутреннюю кэш-память (1504) уровня 1 (L1). В зависимости от архитектуры, процессор (1502) может иметь единственный внутренний кэш или множественные уровни внутренних кэшей. Другие варианты реализации изобретения включают в себя сочетание как внутренних, так и внешних кэшей в зависимости от конкретного варианта осуществления изобретения и потребностей. Регистровый файл (1506) предназначен для того, чтобы сохранять различные типы данных в различных регистрах, включающих в себя целочисленные регистры, регистры с плавающей запятой, векторные регистры, групповые регистры, теневые регистры, регистры контрольных точек, регистры состояния и регистр указателя команды.
В процессоре (1502) также находится исполняющее звено (1508), включающее в себя логику для выполнения целочисленных операций и операций с плавающей запятой. Процессор (1502), в одном варианте реализации изобретения, включает в себя постоянное запоминающее устройство для микрокода (ucode), предназначенное для хранения микрокода, который при своем исполнении, должен выполнять алгоритмы для некоторых макрокоманд или обрабатывать сложные сценарии. При этом микрокод является потенциально обновимым для того, чтобы обрабатывать логическими ошибками/затруднения для процессора (1502). Для одного варианта реализации изобретения, исполняющее звено (1508) включает в себя логику для обработки упакованного набора команд (1509). Благодаря включению упакованного набора команд (1509) в набор команд универсального процессора (1502), наряду со связанными с ним схемами для исполнения этих команд, операции, используемые многими мультимедийными приложениями, могут быть выполнены с использованием упакованных данных в универсальном процессоре (1502). Таким образом, много мультимедийных приложений ускоряются и выполняются более эффективно с использованием для выполнения операций над упакованными данными полной ширины шины данных в процессоре. Это потенциально устраняет необходимость передавать более мелкие порции данных по шины данных в процессоре для того, чтобы выполнить одну или более операций, по одному элементу данных единовременно.
Альтернативные варианты реализации исполняющего звена (1508) могут также использоваться в микро контроллерах, встроенных процессорах, графических устройствах, процессорах цифровой обработки сигналов, и других типах логических схем. Система (1500) включает в себя память (1520). Память (1520) включает в себя динамическое оперативное запоминающее устройство (DRAM) устройство, статическое оперативное запоминающее устройство (SRAM) устройство, устройство с флеш-памятью или другое запоминающее устройство. Память (1520) хранит команды и/или данные, представленные сигналами данных, которые подлежат исполнению процессором (1502).
Отметим, что любой из вышеупомянутых признаков или аспектов изобретения может быть использован в одном или более межсоединениях, проиллюстрированных на фиг. 15. Например, внутрикристальное межсоединение (ODI-межсоединение), которое не показано на чертеже, для сопряжения внутренних звеньев процессора (1502) воплощает один или более аспектов изобретения, описанных выше. Или изобретение связано с процессорной шиной (1510) (например, другим известным высокопроизводительным вычислительный межсоединением), трактом (1518) памяти, имеющим высокую пропускную способность, ведущим к памяти (1520), двухточечным каналом передачи данных графическому ускорителю (1512) (например, структурой, совместимой с стандартом PCIe (Скоростного межсоединения периферийных компонентов), межсоединением (522) концентраторов-контроллеров, межсоединением ввода/вывода или другим межсоединением (например, USB (универсальной последовательной шиной), PCI (Межсоединением периферийных компонентов), PCIe) для сопряжения с другими проиллюстрированными компонентами. Некоторые примеры таких компонентов включают в себя: аудиоконтроллер (1536), программно-аппаратный концентратор (систему BIOS (базовую систему ввода-вывода) (1528), записанную во флеш-памяти), приемопередатчик (1526) беспроводной связи, запоминающее устройство (1524) для данных, унаследованный контроллер (1510) ввода/вывода, содержащий интерфейсы (1542) пользовательского ввода и клавиатуры, последовательный порт (1538) расширения, такой как Универсальная последовательная шина (USB), и сетевой контроллер (1534). Запоминающее устройство (1524) для данных может содержать накопитель на жестких магнитных дисках, накопитель на гибких магнитных дисках, устройство CD-ROM (постоянное запоминающее устройство на компакт-диске), устройство с флеш-памятью или другое запоминающее устройство большой емкости.
Обратимся теперь к фиг. 16, на которой показана структурная схема второй системы (1600) в соответствии с вариантом реализации настоящего изобретение. Как показано на фиг. 16, многопроцессорная система (1600) представляет собой систему с двухточечными межсоединениями, и включает в себя первый процессор (1670) и второй процессор (1680), сопряженные через двухточечное межсоединение (1650). Каждый из процессоров: (1670) и (1680), может представлять собой некоторую версию процессора. В одном варианте реализации изобретения, 1652 и 1654 представляют собой часть структуры последовательного, двухточечного когерентного межсоединения, такого как высокопроизводительная архитектура. В результате, изобретение может быть осуществлено в рамках архитектуры QPI (Межсоединением тракта быстрой передачи данных).
Хотя на чертеже показано только два процессора: (1670), (1680), следует понимать, что объем настоящего изобретения этим не ограничен. В других вариантах реализации изобретения, в данном процессоре могут присутствовать один или более дополнительных процессоров.
Процессорам (1670) и (1680) показаны включающими в себя, соответственно, звенья (1672) и (1682) интегрированных контроллеров памяти. Процессор (1670) также включает в себя, как часть его звеньев - шинный контроллеров, двухточечные (P-Р) интерфейсы (1676) и (1678); аналогичным образом второй процессор (1680) включает в себя интерфейсы (P-Р) (1686) и (1688). Процессоры (1670), (1680) могут обмениваться информацией через двухточечный (P-Р) интерфейс (1650) с использованием схем (1678), (1688) интерфейса (P-Р). Как показано на фиг. 16, IMC-контроллеры (1672) и (1682) (встроенные контроллеры памяти) сопрягают процессоры с соответствующими запоминающими устройствами, а именно, памятью (1632) и памятью (1634), которые может являться частями основной памяти, локально закрепленными за соответствующими процессорами.
Процессоры (1670), (1680) обмениваются каждый информации с набором (1690) микросхем через индивидуальные двухточечные интерфейсы (1652), (1654), использующие схемы (1676), (1694), (1686), (1698) двухточечных интерфейсов. Набор (1690) микросхем также обменивается информацией с высокопроизводительной графической схемой (1638) через схему (1692) интерфейса по высокопроизводительному межсоединению (1639) для графических устройств.
В состав любого из процессоров или вне обоих процессоров может быть введен совместно используемый кэш (не показанный на чертеже); к тому же соединенный с процессорами через двухточечное межсоединение, таким образом, что информация локального кэша любого или обоих процессоров может быть сохранена в этом совместно используемом кэше, если процессор переведен в режим низкого энергопотребления.
Набор (1690) микросхем может быть сопряжен с первой шиной (1616) через интерфейс (1696). В одном варианте реализации изобретения, первая шина (1616) может представлять собой шину (PCI) Межсоединения периферийных компонентов, или шина, такая как шина PCI Express или другая шина межсоединения ввода/вывода третьего поколения, хотя объем настоящего изобретения этим не ограничен.
Как показано на фиг. 16, с первой шиной (1616) сопряжены различные устройства (1614) ввода/вывода, наряду с мостом (1618) между шинами, который сопрягает первую шину (1616) со второй шиной (1620). В одном варианте реализации изобретения, вторая шина (1620) включает в себя шину с малым количеством выводов (LPC-шину). Со второй шиной (1620) сопряжены различные устройства, включающие в себя, например, клавиатуру и/или "мышь" (1622), устройства (1627) связи и запоминающее устройство (1628), такое как дисковода или другое запоминающее устройство большой емкости, которое, в одном варианте реализации изобретения, часто включает в себя команды/код и данные (1630). Кроме того, со второй шиной (1620), как показано, сопряжено устройство (1624) ввода/вывода звука. Отметим, что возможны и другие архитектуры, где входящие в состав системы компоненты и архитектуры межсоединений изменяются. Например, вместо двухточечной архитектуры, показанной на фиг. 16, система может реализовать многоотводную шину или другую такую архитектуру.
Обратимся далее к фиг. 17, на которой изображен вариант реализации конструкции Системы, встроенной в кристалл (SOC-системы) в соответствии с изобретениями. В качестве конкретного иллюстративного примера, SOC-система (1700) включена в состав пользовательского оборудования (UE-оборудования). В одном варианте реализации изобретения, термин "пользовательское оборудование" (UE-оборудование) относится к любому устройству, подлежащему использованию конечным пользователем для связи, такому как карманный телефон, смартфон, планшет, сверхтонкий ноутбук, ноутбук с широкополосным адаптером или любое другое аналогичное устройство связи. Часто пользовательское оборудование соединяется с базовой станцией или узлом, что потенциально соответствует по своей природе мобильной станции (MS-станции) в сети GSM (Глобальной системы мобильной связи).
Здесь, SOC - система (1700) включает в себя 2 ядра: 1706 и 1707. Аналогично рассмотренному выше, ядра (1706) и (1707) могут соответствовать Архитектуре набора команд, как например конструкции процессора на основе Intel® Architecture Core™, процессора Advanced Micro Devices, Inc (AMD), процессора на основе MIPS, процессора на основе ARM, или клиентов этих компаний, так же как их лицензиатов или последователей. Ядра (1706) и (1707) сопряжены со средством (1708) управления кэшем, который связан со звеном (1709) интерфейса шины и кэшем (1711) L2 (второго уровня), для поддержания связи с другими частями системы (1700). Межсоединение (1710) включает в себя внутрикристальное межсоединение, такое как IOSF, АМВА, или другое межсоединение, рассмотренное выше, которое потенциально воплощает один или более аспектов описанного здесь.
Интерфейс (1710) обеспечивает каналы связи с другими компонентами, такими как Модуль идентичности абонента (SIM-модуль) (1730) для сопряжения с SIM-картой, загрузочное постоянное запоминающее устройство (1735) для хранения кода загрузки для исполнения ядрами (1706) и (1707) с целью инициализации и начальной загрузки SOC-системы (1700), контроллер (1740) SDRAM (синхронного динамического оперативного запоминающего устройства) для сопряжения посредством интерфейса с внешней памятью (например, DRAM (Динамическим оперативным запоминающим устройством) (1760)), контроллер (1745) флеш-памяти для сопряжения посредством интерфейса с энергонезависимым запоминающим устройством (например, флеш-памятью (1765)), средства (1750) управления периферийными устройствами (например, Последовательный интерфейс периферийных устройств) для сопряжения посредством интерфейса с периферийными устройствами, кодеки (1720) видеосигнала и видеоинтерфейс (1725) для отображения и приема вводимых данных (например, ввод данных, разрешаемый прикосновением), GPU (Графический пользовательский интерфейс) (1715) для выполнения вычислений, связанных с графикой, и так далее. Любой из этих интерфейсов может включать в себя аспекты описанного здесь изобретения.
В дополнение к этому, система иллюстрирует периферийные устройства для связи, такие как модуль (1770) Bluetooth, 3G модем (1775), GPS (Глобальная система навигации и местоопределения) (1785) и WiFi (1785). Отметим, что, как было сказано выше, пользовательское оборудование включает в себя радиоаппаратуру для связи. В результате этого, эти периферийные модули связи все не требуются. Однако какая-нибудь форма радиоаппаратуры для внешней связи должна быть включена в состав пользовательского оборудования.
Хотя настоящее изобретение было описано в отношении ограниченного количества вариантов его реализации, специалисты в данной области техники оценят его многочисленные модификации и изменения. Подразумевается, что прилагаемая формула изобретения охватывает все такие модификации и изменения, которые находятся в рамках подлинной сущности и объема этого представленного изобретения.
Конструкция может проходить через различные стадии: от создания до моделирования и до изготовления. Данные, представляющие конструкцию, могут представлять конструкцию множеством способов. Сначала, что является полезным при моделировании, аппаратные средства могут быть представлены с использованием языка описания аппаратных средств или другого языка функционального описания. В дополнение к этому, на некоторых стадиях процесса проектирования может быть выполнена модель уровня схем с логикой и/или элементами транзисторной логики. Кроме того, большинство конструкций, на некоторой стадии, достигают уровня данных, представляющих физическое размещение различных устройств в модели аппаратных средств. В случае, при котором используются традиционные технологии производства полупроводников, данные, представляющие модель аппаратных средств, могут быть данными, указывающими на присутствие или отсутствие различных признаков на различных маскирующих слоях для фотошаблонов, используемых для производства интегральной схемы. В любом представлении конструкции данные могут храниться на любой форме машиночитаемого носителя информации. Память или магнитное или оптическое запоминающее устройство, такое как диск, могут являться этим машиночитаемым носителем информации, предназначенным для хранения информации, переданной посредством оптической или электрической волны, модулированной или иным образом сгенерированной для передачи такой информации. Когда осуществляется передача электрической несущей, указывающей или переносящей код или конструкцию, то в той мере, в какой выполняется копирование, буферизация или ретрансляция электрического сигнала, создается новая копия. Таким образом, поставщик услуг связи или поставщик сетевых услуг могут сохранить на материальном, машиночитаемом носителе информации, по меньшей мере временно, некоторую вещь, такую как информация, закодированная в несущей, воплощающую технологии вариантов реализации настоящего изобретения.
Термин "модуль" в том значении, в котором он здесь используется, относится к любому сочетанию аппаратных средств, программных средств и/или программно-аппаратных средств. В качестве примера, модуль включает в себя аппаратные средства, такие как микроконтроллер, связанный с некратковременным носителем информации для хранения кода, приспособленного для того, чтобы быть исполненным микроконтроллером. Следовательно, ссылка на модуль, в одном варианте реализации изобретения, относится к аппаратным средствам, которое специально сконфигурированы таким образом, чтобы распознавать и/или исполнять код, подлежащий хранению на некратковременном носителе информации. Кроме того, в другом варианте реализации изобретения, использование модули относится к некратковременному носителю информации, включающему в себя код, который специально приспособлен для того, чтобы быть исполненным микроконтроллером для выполнения предварительно заданных операций. И, как можно сделать вывод, в еще одном варианте реализации изобретения, термин "модуль" (в этом примере) может относиться к комбинации микроконтроллера и некратковременного носителя информации. Часто границы модуля, которые иллюстрируются как отдельные, обычно, изменяются и потенциально перекрываются. Например, некоторый первый и некоторый второй модуль могут совместно использовать аппаратные средства, программные средства, программно-аппаратные средства, или их сочетание, потенциально сохраняя некоторые независимые аппаратные средства, программные средства или программно-аппаратные средства. В одном варианте реализации изобретения, использование термина "логика" включает в себя аппаратные средства, такие как транзисторы, регистры или другие аппаратные средства, такие как программируемые логические устройства.
Использование фразы 'сконфигурированный таким образом, чтобы', в одном варианте реализации изобретения, относится к размещению, собиранию вместе, изготовлению, предложению для продажи, импортированию и/или проектированию аппарата, аппаратных средств, логики, или элемента для выполнения указанной или определенной задачи. В этом примере, аппарате или его элемент, который не функционирует, все-таки является 'сконфигурированным для того, чтобы' выполнять указанную задачу, если он спроектирован, сопряжен и/или соединен для того, чтобы выполнять упомянутую указанную задачу. В качестве чисто иллюстративного примера, логический элемент может во время операции давать 0 или 1. Но логический элемент 'сконфигурированный таким образом, чтобы' подавать отпирающий сигнал на схему синхронизации не включает в себя каждый потенциальный логический элемент, который может давать 1 или 0. Вместо этого этот логический элемент представляет собой логический элемент, сопряженный некоторым образом, так что во время работы выходы 1 или 0 должны отпирать схему синхронизации. Отметим, что использование термина «сконфигурированный таким образом, чтобы» не требует функционирования, но вместо этого фокусируется на скрытом состоянии аппарата, аппаратных средств и/или элемента, где в этом скрытом состоянии аппарат, аппаратные средства и/или элемент спроектированы таким образом, чтобы выполнять некоторую конкретную задачу тогда, когда этот аппарат, аппаратные средства и/или элемент функционируют.
Кроме того, использование фраз 'для', 'способный к' и или 'способный функционировать таким образом, чтобы' в одном варианте реализации изобретения, относится к некоторому аппарату, логике, аппаратным средствам и/или элементу, спроектированному таким образом, чтобы сделать возможным использование этого аппарата, логики, аппаратных средств и/или элемента указанным образом. Отметим, как и выше, что использования фраз 'для', 'способный к' или 'способный функционировать таким образом, чтобы', в одном варианте реализации изобретения, относится к скрытому состоянию аппарата, логики, аппаратных средств и/или элемента, где этот аппарат, логика, аппаратные средства и/или элемент не функционируют, но спроектированы таким образом, чтобы сделать возможным использование аппарата указанным способом.
Термин "значение", в том виде, в котором он здесь используется, включает в себя любое известное представление числа, состояния, логического состояния или двоичного логического состояния. Часто, использование логических уровней, логических значений или булевых значений также упоминается как единицы и нули, что просто представляет двоичные логические состояния. Например, 1 относится к высокому логическому уровню, а 0 относится к низкому логическому уровню. В одном варианте реализации изобретения, запоминающая ячейка, такая как транзистор или ячейка флеш-памяти, может быть способным хранит единственное логическое значение или множественные логические значения. Однако в компьютерных системах использовались и другие представления значений. Например, десятичное число десять также может быть представлено как двоичное значение 1010 и как шестнадцатеричная буква А. Следовательно, термин "значение" включает в себя любое представление информации, способное храниться в компьютерной системе.
Кроме того, состояния могут быть представлены значениями или долями значений. В качестве примера, некоторое первое значение, такое как логическая единица, может представлять умолчание или исходное состояние, тогда как некоторое второе значение, такое как логический ноль, может представлять состояние не по умолчанию. В дополнение к этому, термины "сброс" и "установка", в одном варианте реализации изобретения, относятся, соответственно к значению или состоянию по умолчанию и обновленному значению или состоянию. Например, значение "по умолчанию" потенциально включает в себя высокое логическое значение, то есть "сброс", в то время как обновленное значение потенциально включает в себя низкое логическое значение, то есть "установку". Отметим, что для представления любого числа состояний может быть использована любая комбинация значений.
Варианты реализации способов, аппаратных средств, программных средств, программно-аппаратных средств или кода, изложенные выше, могут быть осуществлены посредством команд или кода, хранящимся на доступном для машины, машиночитаемом, доступном для компьютера, или читаемом компьютером носителе информации, которые являются исполняемыми процессорным элементом. Некратковременный доступный для машины/машиночитаемый носитель информации включает в себя любой механизм, который предоставляет (то есть, хранит и/или передает) информацию в форме, читаемой машиной, такой как компьютер или электронная система. Например, некратковременный доступный для машины носитель информации включает в себя: оперативное запоминающее устройство (RAM), такое как статическое оперативное запоминающее устройство (SRAM) или динамическое оперативное запоминающее устройство (DRAM); постоянное запоминающее устройство (ROM); магнитный или оптический носитель информации; устройства с флеш-памятью; электрические запоминающие устройства; оптические запоминающие устройства; акустические запоминающие устройства; другую форму запоминающих устройств для хранения информации, принятой от кратковременных (распространяющихся) сигналов (например, несущих, инфракрасных сигналов, цифровых сигналов); и так далее, которые нужно отличить от некратковременных носителей информации, которые могут принимать информацию от них.
Команды, используемые для программирования логики на выполнение вариантов реализации изобретения, могут храниться в памяти в системе, такой как DRAM, кэш, флеш-память или другое запоминающее устройство. Кроме того, эти команды могут быть распространены по сети или посредством других читаемых компьютером носителей информации. Таким образом, машиночитаемый носитель информации может включать в себя любой механизм для хранения или передачи информации в форме, читаемой машиной (например, компьютером), включая, но не в качестве ограничения: гибкие магнитные диски, оптические диски, компакт-диск, постоянное запоминающее устройство (CD-ROMы (постоянные запоминающие устройства на компакт-диске)), и магнитооптические диски, постоянное запоминающее устройство (постоянные запоминающие устройства), оперативное запоминающее устройство (RAM), стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), магнитные или оптические карты, флеш-память или материальное, машиночитаемое запоминающее устройство, используемое при передаче информации по сети "Интернет" через электрические, оптические, акустические или другие формы распространяемых сигналов (например, несущие, инфракрасные сигналы, цифровые сигналы и так далее). Соответственно, читаемый компьютером носитель включает в себя любой тип материального машиночитаемого носителя информации, подходящего для хранения или передачи электронных команд или информации в форме, читаемой машиной (например, компьютером).
Нижеследующие примеры относятся к вариантам реализации изобретения в соответствии с этим описанием. Один или более вариантов реализации изобретения могут предусматривать аппарат, систему, машиночитаемое запоминающее устройство, машиночитаемый носитель информации и способ для предоставления синхронизирующего счетчика и многоуровневого стека, включающего в себя логику физического уровня, логику канального уровня и логику уровня протокола, где логика физического уровня должна синхронизировать сброс синхронизирующего счетчика с некоторым внешним детерминированным сигналом и синхронизировать с этим детерминированным сигналом вхождение в передающее состояние канала передачи данных.
В, по меньшей мере, одном примере, логика физического уровня дополнительно должна инициализировать канал передачи данных, используя одну или более надпоследовательностей.
В, по меньшей мере, одном примере, вхождение в передающее состояние канала передачи данных должно совпасть с началом последовательности данных (SDS), отправленным для окончания инициализации канала передачи данных.
В, по меньшей мере, одном примере, SDS должно быть отправлено в соответствии с детерминированным сигналом.
В, по меньшей мере, одном примере, каждая надпоследовательность включает в себя соответствующую повторяющуюся последовательность, включающую в себя электрический упорядоченный набор выхода из простоя и соответствующее количество обучающих последовательностей.
В, по меньшей мере, одном примере, SDS должно прерывать надпоследовательности.
В, по меньшей мере, одном примере, надпоследовательности каждая включают в себя соответствующую повторяющуюся последовательность, включающую в себя, по меньшей мере, один электрический упорядоченный набор выхода из простоя (EIEOS-набор) и соответствующее количество обучающих последовательностей.
В, по меньшей мере, одном примере, EIEOS-набор надпоследовательности должен быть отправлен таким образом, чтобы совпасть с синхронизирующим счетчиком.
В, по меньшей мере, одном примере, логика физического уровня дополнительно должна синхронизироваться с некоторым детерминированным интервалом, основываясь на принятом EIEOS-наборе.
В, по меньшей мере, одном примере, синхронизация с детерминированным интервалом, основанная на принятом EIEOS-наборе, включает в себя идентификацию границы конца принятого EIEOS-набора.
В, по меньшей мере, одном примере, эта граница конца должна быть использована для синхронизации вхождения в передающее состояние канала передачи данных.
В, по меньшей мере, одном примере, эта граница конца должна быть использована для синхронизации выхода из передающего состояния канала передачи данных, имеющего частичную ширину.
В, по меньшей мере, одном примере, логика физического уровня дополнительно должна сгенерировать некоторую конкретную надпоследовательность и отправить эту конкретную надпоследовательность таким образом, чтобы она была синхронизирована с детерминированным сигналом.
В, по меньшей мере, одном примере, логика физического уровня должна указать некоторое целевое время задержки удаленному агенту, где удаленный агент должен использовать это целевое время задержки для того, чтобы применить некоторое запаздывание для приведения фактического времени задержки в соответствие с этим целевым времени задержки.
В, по меньшей мере, одном примере, это целевое время задержки должно быть сообщено в полезных данных обучающей последовательности.
В, по меньшей мере, одном примере, детерминированный сигнал включает в себя планетарный сигнал выравнивания для устройства.
В, по меньшей мере, одном примере, логика физического уровня дополнительно должна синхронизировать периодическое окно управления, встроенное в поток данных канального уровня, отправляемый по каналу последовательной передачи данных, с детерминированным сигналом, где окно управления сконфигурировано для обмена информацией физического уровня во время передающего состояния канала передачи данных.
В, по меньшей мере, одном примере, эта информация физического уровня включает в себя информацию для использования при инициировании переходов из одного состояния в другое состояние в канале передачи данных.
В, по меньшей мере, одном примере, окна управления встраиваются в соответствии с определенным интервалом управления, и этот интервал управления основан, по меньшей мере частично, на детерминированном сигнале.
Один или более примеров могут дополнительно предусматривать отправку надпоследовательностей удаленному агенту, соединенному с этим каналом передачи данных, во время инициализации канала передачи данных, и, по меньшей мере, один элемент надпоследовательности должен быть синхронизирован с детерминированным сигналом.
В, по меньшей мере, одном примере, этот элемент включает в себя EIEOS-набор.
В, по меньшей мере, одном примере, каждая надпоследовательность включает в себя соответствующую повторяющуюся последовательность, включающую в себя, по меньшей мере, EIEOS - набор и соответствующее количество обучающих последовательностей.
Один или более примеров могут дополнительно предусматривать отправку потока флитов канального уровня в передающем состоянии канала передачи данных.
Один или более примеров могут дополнительно предусматривать синхронизацию периодического окна управления, подлежащего встраиванию в поток данных, с детерминированным сигналом, где окно управления сконфигурировано для обмена информацией физического уровня во время передающего состояния канала передачи данных.
Один или более примеров могут дополнительно предусматривать отправку информации о запаздывании удаленному агенту, соединенному с этим каналом передачи данных, где запаздывание соответствует детерминированному сигналу.
Один или более вариантов реализации изобретения могут предусматривать аппарат, систему, машиночитаемое запоминающее устройство, машиночитаемый носитель информации и способ для того, чтобы идентифицировать целевое время задержки для канала последовательной передачи данных, принимать, по каналу передачи данных, последовательность данных, синхронизированную с синхронизирующим счетчиком, связанным с этим каналом передачи данных, и, используя последовательность данных, поддерживать это целевое время задержки.
В, по меньшей мере, одном примере, эта последовательность данных включает в себя надпоследовательность, которая должна включать в себя повторяющуюся последовательность, где эта последовательность должна повторяться с определенной частотой.
В, по меньшей мере, одном примере, эта последовательность должна включать в себя электрический упорядоченный набор выхода из простоя (EIEOS-набор).
В, по меньшей мере, одном примере, эта последовательность должна начинаться с EIEOS-набора, сопровождаемого предварительно определенным количеством обучающих последовательностей.
В, по меньшей мере, одном примере, по меньшей мере, одна из обучающих последовательностей включает в себя данные, идентифицирующие целевое время задержки.
В, по меньшей мере, одном примере, по меньшей мере, часть этой последовательности должна быть скремблирована с использованием псевдослучайной двоичной последовательности (PRBS).
Один или более примеров могут дополнительно предусматривать определение фактического времени задержки канала передачи данных, основываясь на приеме последовательности данных.
Один или более примеров могут дополнительно предусматривать определение отклонения фактического времени задержки от целевого времени задержки.
Один или более примеров могут дополнительно предусматривать то, чтобы заставлять отклонение быть исправленным.
Один или более вариантов реализации изобретения могут предусматривать аппарат, систему, машиночитаемое запоминающее устройство, машиночитаемый носитель информации и способ для того, чтобы определять то, является ли ширина флитов, подлежащих отправке по каналу последовательной передачи данных, включающему в себя некоторое количество путей передачи данных, кратным числом количеству путей передачи данных, и передавать флиты по каналу последовательной передачи данных, где два флита подлежат отправке таким образом, чтобы перекрываться на путях передачи данных, когда ширина флитов не является кратным числом количества путей передачи данных.
В, по меньшей мере, одном примере, перекрывание включает в себя отправку одного или больше битов первого из этих двух флитов по первой части этого количества путей передачи данных одновременно с отправкой одного или более битов второго из этих двух флитов по второй части этого количества путей передачи данных.
В, по меньшей мере, одном примере, по меньшей мере, некоторые биты флитов должны быть переданы не по порядку.
В, по меньшей мере, одном примере, флиты не перекрываются, когда ширина флитов является кратным числом количества путей передачи данных.
В, по меньшей мере, одном примере, ширина флитов включает в себя 192 бита.
В, по меньшей мере, одном примере, количество путей передачи данных включает в себя 20 путей передачи данных в, по меньшей мере, одном передающем состоянии канала передачи данных.
Один или более примеров могут дополнительно предусматривать переход к другой новой ширине канала передачи данных, включающей в себя некоторое второе количество путей передачи данных.
Один или более примеров могут дополнительно предусматривать определение того, является ли ширина флитов кратным числом второго количества путей передачи данных.
В, по меньшей мере, одном примере, этот переход должен быть выравнен с неперекрывающейся границей флита.
Один или более вариантов реализации изобретения могут предусматривать аппарат, систему, машиночитаемое запоминающее устройство, машиночитаемый носитель информации и способ для того, чтобы предоставлять логику физического уровня для приема потока битов, включающего в себя набор флитов, по каналу последовательной передачи данных, где соответствующие части, по меньшей мере, двух из набора флитов отправляются одновременно по путям передачи данных канала передачи данных, и логику канального уровня для восстановления этого набора флитов из принятого потока битов.
В, по меньшей мере, одном примере, часть набора флитов имеет перекрывающиеся границы.
В, по меньшей мере, одном примере, перекрывающиеся границы включают в себя отправку одного или более заключительных битов первого из этих двух флитов по первой части количества путей передачи данных одновременно с отправкой одного или более начальных битов второго из этих двух флитов по второй части количества путей передачи данных.
В, по меньшей мере, одном примере, ширина флитов не является кратным числом количества путей передачи данных канала передачи данных.
В, по меньшей мере, одном примере, ширина флитов включает в себя 192 бита, а количество путей передачи данных включает в себя 20 путей передачи данных.
В, по меньшей мере, одном примере, по меньшей мере, часть битов флитов передается не по порядку.
Один или более примеров могут дополнительно предусматривать физический уровень (PHY-уровень), сконфигурированный таким образом, чтобы быть сопряженным с каналом передачи данных, причем канал передачи данных включает в себя некоторое первое количество путей передачи данных, где PHY-уровень должен войти в состояние кольцевой проверки, и где PHY-уровень, находясь в состоянии кольцевой проверки, должен ввести специализированные комбинации в канал передачи данных.
Один или более примеров могут дополнительно предусматривать физический уровень (PHY-уровень), сконфигурированный таким образом, чтобы быть сопряженным с каналом передачи данных, причем канал передачи данных включает в себя некоторое первое количество путей передачи данных, где PHY-уровень включает в себя синхронизирующий (sync) счетчик, и где PHY-уровень должен передавать электрически упорядоченный набор выхода из простоя (EIEOS-набор), выровненный с синхронизирующим счетчиком, связанным с обучающей последовательностью.
В, по меньшей мере, одном примере, не осуществляется обмен значением синхронизирующего счетчика от этого синхронизирующего счетчика во время каждой обучающей последовательности.
В, по меньшей мере, одном примере, выравнивание EIEOS-набора с синхронизирующим счетчиком должно действовать в качестве "заместителя" для обмена значением синхронизирующего счетчика от этого синхронизирующего счетчика во время каждой обучающей последовательности.
Один или более примеров могут дополнительно предусматривать физический уровень (PHY-уровень), сконфигурированный таким образом, чтобы быть сопряженным с каналом передачи данных, причем PHY-уровень должен включать в себя конечный автомат PHY-уровня для осуществления перехода между множеством состояний, где конечный автомат PHY-уровня способен осуществлять переход из некоторого первого состояния в некоторое второе состояние, основываясь на событии установления связи, и осуществлять переход PHY-уровня из некоторого третьего состояния в некоторое четвертое состояние, основываясь на событии первичного таймера.
В, по меньшей мере, одном примере, конечный автомат PHY-уровня способен осуществлять переход PHY-уровня из некоторого пятого состояния в некоторое шестое состояние, основываясь на событии первичного таймера в сочетании с событием вторичного таймера.
Еще один или более вариантов реализации изобретения могут предусматривать устройство для того, чтобы предоставлять логику интерфейса, предназначенную для того, чтобы дифференцированно передавать сигналы по нескольким путям передачи данных, логику интерфейса, предназначенную для передачи нескольких флитов, причем несколько флитов содержат несколько полубайтов; и при этом логику интерфейса для передачи нескольких флитов, содержит логику интерфейса для передачи чистой границы флита, по меньшей мере, с участком начальных полубайтов от первого флита из множества флитов по нескольким путям передачи данных в первом единичном интервале (UI); и перекрытие полубайтов, по меньшей мере, от двух флитов из множества флитов по нескольким путям передачи данных во время следующего UI.
В, по меньшей мере, одном примере, множество флитов содержит, по меньшей мере, пять флитов, которые необходимо передать за 48 UI до того, как надо будет передать следующую чистую границу флита.
В, по меньшей мере, одном примере, флит содержит 192 бита, а полубайт содержит 4 бита.
В, по меньшей мере, одном примере, биты каждого флита необходимо передавать по порядку, начиная с бита 4n+3.
В, по меньшей мере, одном примере, несколько путей передачи данных содержат 8 путей или 20 путей.
В, по меньшей мере, одном примере, логика интерфейса содержит логику физического уровня, логику канального уровня и логику уровня протокола.
В, по меньшей мере, одном примере, логика уровня протокола предназначена для того, чтобы поддерживать транзакции с когерентным кэшем.
В, по меньшей мере, одном примере, логика интерфейса входит в процессор, подсоединенный в одно гнездо сервера, имеющего, по меньшей мере, два гнезда.
В, по меньшей мере, одном примере, логика интерфейса входит в систему на кристалле (SoC).
В, по меньшей мере, одном примере, SoC подключена к нескольким другим SoC в микросервере.
В, по меньшей мере, одном примере, устройство дополнительно содержит радио.
Один или более примеров могут дополнительно предусматривать устройство, для того, чтобы предоставлять контроллер для сопряжения между, по меньшей мере, первым процессором для распознавания первого набора команд, и вторым процессором для распознавания второго набора команд, который отличается от первого набора команд, при этом контроллер содержит логическую схему интерфейса для подключения к последовательному дифференциальному межсоединению, содержащему несколько путей передачи данных, логическую схему интерфейса, предназначенную для передачи нескольких флитов, причем несколько флитов содержат несколько полубайтов; и причем передатчик, предназначенный для передачи нескольких флитов содержит: логическую схему интерфейса для передачи чистой границы флита с начальными полубайтами от первого флита из нескольких флитов по каждому из путей из нескольких путей передачи данных в первом единичном интервале (UI); и перекрытие полубайтов, по меньшей мере, от двух флитов из нескольких флитов по нескольким путям передачи данных во время следующего UI.
В, по меньшей мере, одном примере, каждый из нескольких флитов содержит 192 путей или 48 полубайтов.
В, по меньшей мере, одном примере, несколько путей передачи данных содержат 8 путей или 20 путей.
В, по меньшей мере, одном примере, первый и второй процессоры подключены к контроллеру.
В, по меньшей мере, одном примере, первый набор команд содержит набор команд Intel®.
Ссылка повсюду в этом описании на "один вариант реализации изобретения" или "вариант реализации изобретения" означает, что некоторый конкретный признак, структура или характеристика, описанная в связи с этим вариантом реализации изобретения, включены в состав, по меньшей мере, одного варианта реализации настоящего изобретения. Таким образом, появления фраз "в одном варианте реализации" или "в варианте реализации" в различных местах повсюду в этом описании не обязательно все относятся к одному и тому же варианту реализации изобретения. Кроме того, конкретные признаки, структуры или характеристики могут быть объединены любым подходящим образом в одном или более вариантах реализации изобретения.
В вышеприведенном описании было дано детализированное описание в отношении конкретных приводимых в качестве примера вариантов реализации изобретения. Однако должно быть очевидно, что в нем могут быть сделаны различные модификации и изменения, но не выходящие за рамки более широких сущности и объема изобретения, которые сформулированы в прилагаемой формуле изобретения. Описание и чертежи должны, соответственно, рассматриваться в иллюстративном смысле, а не в ограничительном смысле. Кроме того, вышеупомянутое использование выражения "вариант реализации изобретения" и других иллюстративных языковых средств не обязательно относится к одному и тому же самому варианту реализации изобретения или одному и тому же примеру, но может относиться к различным и несовпадающим вариантам реализации изобретения, так же как потенциально и к одному и тому же варианту реализации изобретения.
Изобретение относится к области компьютерных разработок, а более конкретно - к разработке программного обеспечения, включающей в себя координацию взаимозависимых систем с ограничениями. Технический результат - повышение скорости передачи данных в существующих архитектурных межсоединениях. Для этого устройство согласно изобретению содержит: логическую схему интерфейса, предназначенную для того, чтобы дифференцированно передавать сигналы по нескольким путям передачи данных; логическую схему интерфейса, предназначенную для того, чтобы логически группировать данные в кванты информации, причем логическая схема интерфейса предназначена для передачи, по меньшей мере, части первого кванта информации из нескольких квантов информации по нескольким путям передачи информации в течение первого единичного интервала (UI); и, по меньшей мере, части первого кванта информации и второго кванта информации из нескольких квантов информации по нескольким путям передачи данных во время следующего UI. 3 н. и 17 з.п. ф-лы, 17 ил., 2 табл.
1. Устройство передачи, содержащее
логическую схему интерфейса, предназначенную для того, чтобы дифференцированно передавать сигналы по множеству путей передачи данных,
логическую схему интерфейса, предназначенную для передачи множества флитов, причем множество флитов содержит множество полубайтов и каждый из множества флитов содержит соответствующий квант информации уровня протокола;
и при этом логическая схема интерфейса для передачи множества флитов, содержит логическую схему интерфейса для передачи
начальных полубайтов от первого флита из множества флитов по множеству путей передачи данных в первом единичном интервале (UI); и
перекрытия полубайтов, по меньшей мере, от двух флитов из множества флитов по множеству путей передачи данных во время следующего UI.
2. Устройство по п. 1, в котором множество флитов содержит, по меньшей мере, пять флитов, которые необходимо передать за 48 UI до того, как надо будет передать следующую чистую границу флита.
3. Устройство по п. 1, в котором флит содержит 192 бита, а полубайт содержит 4 бита.
4. Устройство по п. 3, в котором биты каждого флита необходимо передавать по порядку начиная с бита 4n+3.
5. Устройство по п. 1, в котором множество путей передачи данных содержит 8 путей или 20 путей.
6. Устройство по п.1, в котором логическая схема интерфейса содержит логику физического уровня, логику канального уровня и логику уровня протокола.
7. Устройство по п. 6, в котором логика уровня протокола предназначена для того, чтобы поддерживать транзакции с когерентным кэшем.
8. Устройство по п. 1, в котором логическая схема интерфейса входит в процессор, подсоединенный в одно гнездо сервера, имеющего, по меньшей мере, два гнезда.
9. Устройство по п. 1, в котором логическая схема интерфейса входит в систему на кристалле (SoC).
10. Устройство по п. 9, в котором SoC подключена к множеству других SoC в микросервере.
11. Устройство по п. 9, дополнительно содержащее радио.
12. Устройство передачи, содержащее
контроллер для сопряжения между, по меньшей мере, первым процессором для распознавания первого набора команд и вторым процессором для распознавания второго набора команд, который отличается от первого набора команд, при этом контроллер содержит логическую схему интерфейса для подключения к последовательному дифференциальному межсоединению, содержащему множество путей передачи данных, логическую схему интерфейса, предназначенную для передачи множества флитов, причем множество флитов содержит множество полубайтов и каждый из множества флитов содержит соответствующий квант информации уровня протокола; и причем передатчик, предназначенный для передачи множества флитов содержит: логическую схему интерфейса для передачи начальных полубайт от первого флита из множества флитов по каждому из путей из множества путей передачи данных в первом единичном интервале (UI); и перекрытия полубайтов, по меньшей мере, от двух флитов из множества флитов по множеству путей передачи данных во время следующего UI.
13. Устройство по п. 12, в котором каждый из множества флитов содержит 192 путей или 48 полубайтов.
14. Устройство по п. 12, в котором множество путей передачи данных содержат 8 путей или 20 путей.
15. Устройство по п. 12, в котором первый и второй процессоры подключены к контроллеру.
16. Устройство по п. 15, в котором первый набор команд содержит набор команд Intel®.
17. Устройство передачи, содержащее
логическую схему интерфейса, предназначенную для того, чтобы дифференцированно передавать сигналы по множеству путей передачи данных,
логическую схему интерфейса, предназначенную для того, чтобы логически группировать данные во множество квантов информации, причем логическая схема интерфейса предназначена для передачи
по меньшей мере, части первого кванта информации из множества квантов информации по множеству путей передачи информации в течение первого единичного интервала (UI); и
по меньшей мере, части первого кванта информации и второго кванта информации из множества квантов информации по множеству путей передачи данных во время следующего UI.
18. Устройство по п. 17, в котором, по меньшей мере, часть первого кванта информации из множества квантов информации по множеству путей передачи данных следует передавать в течение, по меньшей мере, первых четырех единичных интервалов и в котором, по меньшей мере, часть первого кванта информации и второго кванта информации из множества квантов информации следует передавать по множеству путей передачи данных в течение следующих четырех последовательных UI.
19. Устройство по п. 17, в котором первый квант информации включает в себя 192 бита.
20. Устройство по п. 17, в котором логическая схема интерфейса содержит логику уровня протокола, предназначенную для того, чтобы поддерживать транзакции с когерентным кэшем.
СПОСОБЫ И УСТРОЙСТВА ДЛЯ ОСУЩЕСТВЛЕНИЯ КАНАЛА СВЯЗИ ПЕРЕМЕННОЙ РАЗРЯДНОСТИ | 2004 |
|
RU2288542C2 |
US 7957428 B2, 07.06.2011 | |||
US 6449667 B1, 10.09.2002 | |||
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
US 6674720 B1, 06.01.2004. |
Авторы
Даты
2016-10-20—Публикация
2013-03-27—Подача