Код документа: RU2154857C2
Область изобретения
Настоящее изобретение относится к
области компьютерных системных шин. Конкретнее, это изобретение относится к инициализации средств в системе шин.
Предпосылки изобретения
В современных компьютерных системах
часто к одной шине подсоединяются несколько средств и применяется арбитраж для использования этой шины.
Используется схема арбитража, которая определяет, какому из средств, подсоединенных к шине, следует предоставить ее в пользование в любой данный момент. Компьютерная система может включать несколько процессоров или подобных им устройств, которые подобны друг другу с точки зрения требований к использованию шины. Несколько таких процессоров называются "симметричными средствами".
В некоторых схемах арбитража центральный арбитр следит, какому из средств была дана в пользование шина. В других системах - с распределенным арбитражем - каждое средство, подсоединенное к шине, следит за тем, какое средство являлось последним или является текущим владельцем шины, давая возможность тем самым каждому средству знать, какому средству в следующий раз будет дан приоритет для пользования шиной.
В схемах арбитража, где каждое средство следит за последним либо текущим владельцем шины, может возникнуть необходимость инициализировать каждое средство при сбросе системы, так чтобы все средства пришли к соглашению о том, кто имеет приоритет на владение шиной.
Такая инициализация средства должна быть выполнена правильно, однако часто бывает желательно уменьшить размер устройства, необходимого для выполнения инициализации, в связи с низкой частотой ее использования. То есть, инициализация чаще всего происходит только при сбросе системы; таким образом, нежелательно значительно увеличивать затраты на обеспечение схем инициализации.
Один из известных способов инициализации средств для арбитража заключается в установке перемычки на каждом средстве. То есть, каждое средство, принимающее участие в арбитраже для шины, имеет набор контактных штырей, доступных пользователю системы. Соединив с помощью перемычки контактные штыри в необходимой комбинации, пользователь системы имеет возможность присвоить этому средству конкретный арбитражный идентификатор.
Для того, чтобы изменить арбитражный идентификатор для этого конкретного средства, пользователь должен изменить установку перемычки. Кроме того, в системах, где требуется, чтобы каждое средство имело индивидуальный арбитражный идентификатор, пользователь системы должен обеспечить, чтобы перемычки для любых двух средств не были бы установлены одинаково, что дает им одинаковый арбитражный идентификатор.
Таким образом, для того, чтобы изменить арбитражные идентификаторы для всех средств, подсоединенных к шине, необходимо физическое манипулирование каждой перемычкой на каждом средстве.
В другом способе инициализации средств для арбитража используется сигнал, посылаемый к нескольким средствам в течение нескольких синхроциклов. В течение первого синхроцикла информация, указывающая арбитражный идентификатор для первого средства, подается в первое средство через один (или возможно больше) из контактных штырей средства.
Во время второго синхроцикла информация, указывающая арбитражный идентификатор для второго средства, фиксируется во втором средстве через аналогичный контактный штырь на втором средстве.
Таким образом, в каждом синхроцикле к общему входному штырю другого процессора подводится каждый раз другой входной канал. Эта последовательность продолжается в течение стольких синхроциклов, сколько необходимо для фиксации данных по арбитражному идентификатору для каждого средства.
Одним из недостатков этого способа является то, что для инициализации всех средств для арбитража на шине требуется несколько синхроциклов.
В современных компьютерных системах все возрастающее значение имеет быстродействие системы. Таким образом, желательно обеспечить способ инициализации средств арбитража, который мог бы быть реализован за минимальное время.
Кроме того, многие современные компьютерные системы могут иметь разное количество средств, подсоединенных к шине. Количество средств на конкретной шине может изменяться от системы к системе или может изменяться во времени для данной системы.
Таким образом, желательно обеспечить гибкую систему, которая обслуживает переменное число средств с минимальным объемом дополнительных устройств и минимальными затратами и функционирование которой не зависит от количества средств.
Кроме этого, во многих современных компьютерных системах расположение средств на шине может отличаться. Таким образом, желательно обеспечить механизм инициализации, идентичный для каждого средства и который обеспечивал бы каждое средство индивидуальным идентификатором в системе.
Настоящее изобретение решает проблемы предыдущих разработок.
Сущность и цели изобретения
Описывается механизм инициализации для средств с симметричным арбитражем.
Несколько средств подсоединены к шине через набор арбитражных контактных штырей. Каждое средство на шине имеет арбитражный счетчик, который используется для слежения за тем, какое из средств является
текущим или являлось последним владельцем шины.
Все средства на шине приходят к соглашению о том, какое из них станет приоритетным при сбросе системы и, таким образом, какому из них первому будет предоставлена возможность воспользоваться шиной. Арбитражный счетчик каждого средства инициализируется при сбросе системы, так что все средства дают приоритетному средству возможность первому воспользоваться шиной.
Каждое средство инициализирует свой арбитражный счетчик в соответствии со своим идентификатором. Каждое средство определяет свой собственный идентификатор при сбросе системы на основе одного сигнала, подаваемого на один из его арбитражных контактных штырей. Арбитражные штыри соединяются между средствами так, что каждое средство определяет для себя индивидуальный идентификатор.
Это определение происходит на основе того, какой из арбитражных контактных штырей активизируется при системном сбросе, и количества шинных средств, разрешенных на шине.
После определения своего идентификатора каждое шинное средство инициализирует свой арбитражный счетчик, так что каждое средство дает согласие на то, какое средство станет приоритетным. Эта инициализация происходит на основе идентификации приоритетного средства, инициализированного средства и максимального количества средств, разрешенных на шине.
Краткое описание рисунков
Настоящее изобретение иллюстрируется примером и не ограничивается фигурами на сопроводительных рисунках, в которых одинаковые цифровые ссылки указывают на
одинаковые элементы и где:
на фиг. 1 в качестве примера показан общий вид мультипроцессорной компьютерной системы настоящего изобретения;
на фиг. 2 изображена в качестве примера
блок-схема системы шинных кластеров настоящего изобретения;
на фиг. 3 показаны в качестве примера соединения между шинными средствами настоящего изобретения и
на фиг. 4 представлена
блок-схема, описывающая шаги инициализации шинного средства настоящего изобретения.
Детальное описание изобретения
В последующем детальном описании введены пронумерованные
отдельные детали для обеспечения полного понимания изобретения. Однако специалистам должно быть понятно, что настоящее изобретение может быть практически воплощено и без этих конкретных деталей.
В других примерах, чтобы не затемнять смысл настоящего изобретения, не дается детальное описание хорошо известных способов, процедур, узлов и схем.
Некоторые фрагменты последующего детального описания представлены в виде алгоритмов и символических описаний операций над битами данных в компьютерной памяти. Эти алгоритмические описания и представления представляют собой средства, используемые специалистами по обработке данных для наиболее эффективной передачи сущности настоящей разработки другим специалистам.
Здесь и в общем случае под алгоритмом понимается самосогласующаяся последовательность шагов, ведущая к желаемому результату. Шаги представляют собой необходимые физические преобразования физических величин. Обычно, хотя и необязательно, эти величины принимают вид электрических либо магнитных сигналов, способных хранить, передавать, комбинировать, сравнивать и выполнять другие виды преобразования. Доказано, что главным образом по причинам всеобщего применения удобно представлять эти сигналы в виде бит, числовых значений, элементов, символов, индексов, цифр или т.п.
Однако следует иметь ввиду, что все эти и подобные им термины должны быть привязаны к соответствующим физическим величинам и иметь однозначные удобные обозначения, используемые для этих величин. Если конкретно не установлено другое, очевидное из следующего описания, предполагается, что проходящие через все описание настоящего изобретения такие термины, как "обработка", "вычисление", "расчет", "определение" или "отображение" или т. п. обозначают действия или процессы в компьютерной системе или подобном электронном вычислительном устройстве, которое манипулирует и преобразовывает данные, представленные в виде физических (электронных) величин в регистрах компьютерной системы и устройствах памяти, в другие данные, представляемые подобным же образом в виде физических величин в устройствах памяти компьютерной системы или регистрах либо других подобных устройствах хранения, передачи и отображения информации.
На фиг. 1 в качестве примера показан общий вид мультипроцессорной компьютерной системы настоящего изобретения.
В общем случае компьютерная система содержит шину "процессор-память" либо другое средство обмена 101 для информационного обмена между одним или несколькими процессорами 102, 103, 104 и 105. Шина "процессор-память" 101 включает адресную, информационную и управляющую шины.
Процессоры со 102 по 105 могут иметь небольшого объема сверхбыструю внутреннюю кэш-память, обычно обозначаемую как кэш-память первого уровня (L1), для временного хранения в микросхеме данных и команд.
Кроме того, большего размера более медленная кэш-память 106 второго уровня (L2) может быть подсоединена к процессору, например к процессору 105, для временного хранения данных и команд для их использования процессором 105.
В одном режиме настоящее изобретение может включать микропроцессоры Intel архитектуры в качестве процессоров 102-105; однако в настоящем изобретении может быть использован любой тип архитектуры микропроцессора либо любой из множества цифровых процессоров.
Процессор 102, 103 или 104 может содержать параллельный процессор, подобный либо точно такой же, как процессор 105. Как вариант, процессор 102, 103 или 104 может включать сопроцессор в виде цифрового процессора. Кроме того, процессоры 102-105 могут содержать процессоры других типов.
Процессор 102 подсоединен к шине "процессор-память" 101 через шину запроса 137 и шину 138. Процессор 102 содержит также арбитражный блок 320, который осуществляет управление как тогда, когда процессор 102 просит доступ к шине "процессор-память" 101, так и тогда, когда процессору 102 предоставлена в пользование шина 101.
Шина запроса 137 передает сигналы, относящиеся к шинному арбитражу, между процессором 102 и остальными средствами, подсоединенными к шине "процессор-память" 101. Остальные сигналы, передаваемые между процессором 102 и шиной "процессор-память" 101, передаются по шине 138. Эти основные сигналы включают информационные сигналы, адресные сигналы и дополнительные управляющие сигналы. В одном варианте реализации шина запроса 137 и шина 138 являются частью шины "процессор-память" 101.
Другие процессоры 103-105 также включают арбитражный блок 320 и подсоединены к шине "процессор-память" 101 с помощью шины запроса 137 и шины 138 так же, как показано для процессора 102.
В одном варианте реализации арбитражный блок 320 имеется только в симметричных средствах, подсоединенных к шине "процессор-память" 101. В альтернативном варианте все средства, подсоединенные к шине "процессор-память" 101, имеют арбитражный блок 320.
Шина "процессор-память" 101 обеспечивает системный доступ к памяти и подсистемам ввода/вывода (1/0). Контроллер памяти 122 подсоединен к шине "процессор-память" 101 для управления доступом к памяти с произвольным доступом (RAM) или другому устройству динамической памяти 121 (обычно называемому главной памятью) для хранения данных и команд для процессоров 102-105.
К шине "процессор-память" 101 могут быть подсоединены имеющее массовое распространение устройство памяти 125, например магнитный диск с приводом диска, для хранения данных и команд и устройство отображения 123, такое как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD) и т.п., для отображения информации пользователю компьютера.
Блок сопряжения ввода/вывода (1/0) 124 может быть подсоединен к шине "процессор-память" 101 и шине системы ввода/вывода (1/0) 131 для обеспечения связи или интерфейса для устройств либо к шине "процессор-память" 101 или шине ввода/вывода (1/0) 131 для доступа или передачи данных между устройствами на другой шине.
По существу устройство сопряжения 124 является интерфейсом между шиной системы ввода/вывода (1/0) 131 и шиной "процессор-память" 101.
Шина "процессор-память" 101 осуществляет обмен информацией между периферийными устройствами в компьютерной системе. Устройства, которые могут быть подсоединены к системной шине 131, включают устройство отображения 132, такое как электронно-лучевая трубка, жидкокристаллический дисплей и т.п., алфавитно-цифровое устройство ввода 133, имеющее алфавитно-цифровые и другие клавиши, и т.п., для обмена информацией и выбора команд для других устройств компьютерной системы (например, процессора 102) и устройство управления курсором 134 для управления перемещением курсора.
Кроме того, к системной шине 131 могут быть подсоединены: устройство создания твердых копий 135, например плоттер и принтер для обеспечения визуального представления компьютерных изображений, и широко распространенное устройство памяти 136, например магнитный диск с приводом диска для хранения информации и команд.
В некоторых вариантах реализации может не потребоваться устройство для отображения информации. Некоторые варианты реализации настоящего изобретения могут включать дополнительные процессоры или другие блоки.
Кроме того, в некоторых вариантах реализации настоящего изобретения может не понадобиться включение всех вышеупомянутых блоков. Например, к шине "процессор-память" 101 могут быть не подсоединены процессоры 102-104, устройство отображения 123 или широко распространенное устройство памяти 125.
Кроме того, периферийные устройства, подсоединенные, как показано, к системной шине ввода/вывода (1/0) 131, могут быть подсоединены к шине "процессор-память" 101; вдобавок к этому в некоторых вариантах реализации может быть только одна шина с процессорами 102-105, контроллером памяти 122 и периферийными устройствами 132-136, подсоединенными к единственной шине.
На фиг. 2 показана в качестве примера блок-схема системы шинных кластеров настоящего изобретения. Настоящее изобретение может быть применено к мультипроцессорным компьютерным системам, имеющим одну или более групп процессоров (кластеров).
На фиг. 2 показаны два таких кластера 201 и 202. Каждый из этих кластеров состоит из нескольких средств. Например, кластер 201 содержит четыре средства 203-206 и устройство управления кластером 207, которое может включать другую кэш-память (не показана), подсоединенную к шине 212.
Средства 203-206 могут включать микропроцессоры, сопроцессоры, цифровые процессоры и т. д. , например, средства 203-206 могут быть такими же, как процессор 102, показанный на фиг. 1, который подсоединен к шине 212 через шину запроса 137 и шину 138.
Устройство управления кластером 207 и его кэш-память используются совместно этими четырьмя средствами 203-206. Каждый кластер подсоединен к шине памяти системы 208, которая в одном варианте реализации является шиной "процессор-память" 101 на фиг. 1. Эти кластеры 201-202 подсоединены к другим компонентам компьютерной системы через системный интерфейс 209.
Системный интерфейс 209 включает интерфейс 210 высокоскоростного ввода/вывода (1/0) для связи с компьютерной системой с внешней средой и интерфейс памяти 211, который обеспечивает доступ к главной памяти, такой как динамическая матричная память с произвольным доступом (DRAM) (эти интерфейсы более детально описаны на фиг. 1).
В одном варианте реализации интерфейс 210 высокоскоростного ввода/вывода (1/0) является устройством сопряжения 124 на фигуре 1, а интерфейс памяти 211 является контроллером памяти 122 на фигуре 1.
Некоторые варианты реализации настоящего изобретения необязательно включают все вышеуказанные блоки. Например, кластер 201 или 202 может состоять менее чем из четырех средств, Вдобавок, некоторые варианты реализации настоящего изобретения могут включать дополнительные процессоры либо другие блоки.
В одном варианте каждый кластер включает также локальный контроллер памяти и/или локальное устройство сопряжения ввода/вывода (1/0). Например, кластер 201 может включать локальный контроллер памяти 265, подсоединенный к процессорной шине 212.
Локальный контроллер памяти 265 разрешает доступ к RAM либо другому устройству динамической памяти 266, находящемуся в кластере 201. Кластер 201 может также включать локальное устройство сопряжения ввода/вывода (1/0) 267, подсоединенное к процессорной шине 212.
Локальное устройство сопряжения ввода/вывода (1/0) 267 обеспечивает доступ к устройствам ввода/вывода (1/0) в кластере, таким как широко распространенное устройство памяти 268, или к шине ввода/вывода (1/0), такой как шина 131 системного ввода/вывода (1/0) на фиг. 1.
На фиг. 3 в качестве примера показано подсоединение четырех или более симметричных средств, подключенных к шине, а именно к шине "процессор-система" 101 на фиг. 1 или к шине 212 на фиг. 2.
Следует отметить, что соединения на фиг. 3 являются лишь примером; сфера действия настоящего изобретения не ограничивается показанным подсоединением. Могут быть использованы другие схемы подсоединения, не выходящие за рамки смысла и сферы действия настоящего изобретения. Процессоры 302-305 приведены только для примера; средства, показанные на фиг. 3, могут включать микропроцессоры, сопроцессоры, цифровые процессоры и т.п.
Кроме того, другие средства, кроме процессоров, могут осуществлять арбитраж с целью доступа к шине, например устройство управления кластером 207 на фиг. 2. В одном варианте эти другие средства подсоединены так, как показано на фиг. 3. В альтернативном варианте эти другие средства подсоединяются к средствам 302-305 посредством отдельного арбитражного устройства (не показано).
В одном варианте настоящего изобретения адресные, информационные и большинство управляющих сигналов используют вместе шинное подсоединение. То есть, адресные или информационные сигналы, выдаваемые одним процессором, принимаются идентичными контактными штырями на каждом другом процессоре, подсоединенном к шине.
Однако управляющие сигналы, относящиеся к шинному арбитражу, не используют вместе шинное подсоединение; эти управляющие сигналы используют шинное подсоединение путем использования схемы, которая называется "круговое подсоединение".
На фиг. 3 показана схема кругового подсоединения шины запроса 137. Адресные сигналы, информационные сигналы и дополнительные управляющие сигналы подаются к другим средствам, подсоединенным к шине "процессор-память" 101 на фиг. 1 (или шине 212 на фиг. 2) через шину 138. В одном варианте шина запроса 137 и шина 138 являются частью шины "процессор-память" 101, показанной на фиг. 1. В альтернативном варианте реализации шина запроса 137 и шина 138 являются частью шины 212, показанной на фиг. 2. Сюда не включены дополнительные детали шины "процессор-память" 101 и шины 212, чтобы не загромождать рисунки и не затмить смысл настоящего изобретения.
На фиг. 3 показана схема кругового подсоединения. Как показано на фиг. 3, процессоры 302, 303, 304 и 305 подсоединены с помощью набора каналов управления 311, 312, 313 и 314. В одном варианте реализации эти каналы управления обозначены как "BREQ#" каналы управления. В одном режиме "BREQ#" каналы управления 311-314 являются шиной запроса 137 на фиг. 1.
Процессор 302, показанный на фиг. 3, описывается более детально. Дополнительные элементы, показанные в процессоре 302, включены также во все остальные процессоры 303-305, однако эти дополнительные детали не показаны в процессорах 303-305, чтобы на загромождать рисунок.
Процессор 302 содержит арбитражный блок 330, который служит в качестве арбитражного интерфейса между шиной, то есть шиной "процессор-система" 101, и остальной частью процессора 302, то есть внутренним логическим устройством процессора, показанным пунктирной линией 315.
Арбитражный блок 320 получает сигнал от внутреннего логического устройства процессора 315, когда процессор 302 выдает запрос на доступ к шине 101, то есть на выполнение операции считывания памяти; затем арбитражный блок 320 дает разрешение на то, когда процессору 302 можно воспользоваться шиной.
Другие управляющие, адресные и информационные сигналы, которые используются для целей, отличных от шинного арбитража, также передаются между шиной 101 и процессором 302 с помощью другого устройства интерфейса, однако эти дополнительные сигналы не показаны, чтобы не загромождать рисунок и не затмить смысл настоящего изобретения.
В одном варианте представленного изобретения между арбитражным блоком 320 и BREQ[3:1]# контактными штырями процессора 302 имеется дополнительное устройство интерфейса. Это дополнительное устройство может изменять пути прохождения арбитражных сигналов между BREQ[3: 1]# контактными штырями и арбитражным блоком 320.
В одном варианте реализации арбитражный блок 320 содержит двоичный идентификатор средства 325, двоичный арбитражный счетчик 330, логическое устройство инициализации 335, компаратор 340, устройство изменения состояния счетчика 360 и устройство освобождения шины 365.
Арбитражный блок 320 выдает сигнал на контактный штырь BR0#, когда процессор 302 подает запрос на пользование шиной, а также получает запросы на пользование шиной от шинных средств, поступающие на контактные штыри BR[3:0]#.
Следует отметить, что, когда арбитражный блок 320 выдает сигнал запроса шины на свой контактный штырь BR0#, арбитражный блок 320 также принимает этот сигнал в качестве входного. В добавок арбитражным блоком 320 через один из контактных штырей BR[3:0]# также принимаются сигналы во время системного сброса, как будет более детально описано ниже.
Компаратор 340 определяет, владеет ли процессор 302 шиной, когда этот процессор выдает запрос на пользование шиной. В одном варианте реализации компаратор 340 определяет, разрешено ли процессору 302 воспользоваться шиной, путем сравнения содержимого арбитражного счетчика 330 с нулем. Если значение арбитражного счетчика равно нулю, процессору 302 разрешается пользоваться шиной, как в деталях будет описано ниже.
Как вариант, компаратор 340 может определять, что процессору 302 разрешено пользоваться шиной, если значение арбитражного счетчика 330 равно любому конкретному ненулевому значению.
Устройство изменения состояния счетчика 360 изменяет состояние арбитражного счетчика 330, когда симметричное средство освобождает шину, как будет более детально описано ниже. В одном варианте устройство изменения состояния счетчика 360 изменяет состояние счетчика 330 так, что следующему симметричному средству, выдающему запрос на пользование шиной согласно схеме циклического перехода по модулю 4, предоставляется в пользование шина. В альтернативном варианте устройство изменения состояния счетчика 360 увеличивает содержимое арбитражного счетчика 330 на единицу в циклическом переходе по модулю 4.
Однако специалистам должно быть понятно, что можно использовать и другие алгоритмы изменения, лежащие в рамках сути и сферы действия настоящего изобретения.
Устройство освобождения шины 365 определяет момент, когда текущий владелец шины ее освобождает. В одном режиме освобождение шины симметричным средством устанавливается путем непрерывного контроля за тем, на каких BREQ# каналах управляющей шины 137 появляются сигналы. Как вариант, это может быть определено с помощью отдельного сигнала, подаваемого на процессор 302 от текущего владельца шины.
Логическое устройство инициализации 335 инициализирует как идентификатор для шинного средства 325, так и арбитражный счетчик 330. В одном варианте реализации эта инициализация выполняется при системном сбросе. Устройство инициализации идентификатора средства 345 определяет нужный идентификатор для шинного средства 325 на основе контактного штыря BR[3:0]#, который активизируется при подаче сигнала RESET#, как будет детально описано ниже. Устройство инициализации арбитражного счетчика 350 определяет начальное значение для арбитражного счетчика 330 при установлении сигнала RESET# на основе идентификатора для шинного средства, определяемого устройством инициализации идентификатора для шинного средства 345 и значением приоритета для шинного средства 355, как будет детально описано ниже.
Таким образом логическое устройство инициализации 335 рассчитывает значение идентификатора для шинного средства для процессора 302 и рассчитывает и запоминает начальное значение арбитражного счетчика в качестве состояния арбитражного счетчика 330.
Для того, чтобы участвовать в шинном арбитраже, каждое шинное средство на шине содержит арбитражный счетчик. Арбитражный счетчик информирует свое шинное средство о том, какое шинное средство владеет шиной. Каждое шинное средство изменяет состояние своего арбитражного счетчика, когда шинное средство на шине освобождает шину, как описано выше.
В одном варианте представленного изобретения на шине может находиться одно или более дополнительных несимметричных средств с высоким приоритетом. Это "высокоприоритетное" средство получает доступ к шине при запросе через симметричное средство с наивысшим приоритетом. Симметричные средства не изменяют состояния своих арбитражных счетчиков в ответ на освобождение шин "высокоприоритетным" средством.
В схеме арбитража, поддерживаемой одним режимом настоящего изобретения, каждое средство приводит в действие один канал запроса на пользование шиной, наблюдая в то же время за каналами запроса от других средств на шине.
Как показано в варианте на фиг. 3, каждое средство имеет четыре арбитражных контактных штыря: BR0# штырь, BR1# штырь, BR2# штырь и BR3# штырь. Для выполнения запроса на пользование шиной средство возбуждает свой канал запроса, BR0#.
Как можно видеть из фиг. 3, контактный штырь BR0# каждого средства подсоединен к различным входным штырям каждого другого средства. Таким образом, каждое средство получает сигнал от контактного штыря BR0# запрашивающего средства на отличный от других входной штырь.
Каждое средство определяет владельца шины по значению своего собственного арбитражного счетчика. Как будет описано более детально ниже, арбитражные счетчики для каждого средства обращаются к одному и тому же средству, даже если значения счетчиков различны. Средство узнает, что это последний или текущий владелец шины, когда значение его арбитражного счетчика равно нулю.
Средство с наивысшим приоритетом (то есть средство, которое будет первым при следующем использовании шины) является средством, чье значение арбитражного счетчика плюс один равно нулю. Таким образом, когда значение арбитражного счетчика средства равно нулю, средство имеет право пользования шиной, если положить, что оно в данный момент выдает запрос на пользование шиной.
Специалистам понятно, что для указания приоритета можно использовать и другое значение, отличное от нуля, и что можно использовать варианты, отличающиеся от описанной схемы, такие как отсчет вниз к трем вместо отсчета вверх к нулю или что-либо подобное.
Однако арбитражные счетчики внутри каждого шинного средства должны вести счет для схемы кругового подсоединения. Например, если значение арбитражного счетчика процессора 303 равно трем, тогда, используя систему циклического перехода по данному модулю, значение его арбитражного счетчика плюс один равно нулю.
Таким образом, процессор 303 явится средством с наивысшим приоритетом. Однако каждое средство 302-305 получает входные сигналы от каждого другого средства через разные контактные штыри BR[3:0]#. Таким образом, выход от BR0# процессора 303 принимается в качестве входного сигнала на BR3# процессора 304.
Поскольку процессор 303 является средством с наивысшим приоритетом и процессор 304 получает входные сигналы от процессора 303 на своем контактном штыре BR3# , значение арбитражного счетчика процессора 304 плюс один равно трем. Таким образом, текущее значение арбитражного счетчика процессора 304 равно двум.
То есть, процессор 304 инициализирует свой арбитражный счетчик так, что средством с наивысшим приоритетом становится процессор 303. Процессор 304 получает арбитражный вход от процессора 303 через контактный штырь BR3#, так что после того, как значения арбитражных счетчиков возросли, значение арбитражного счетчика процессора 304 станет равным трем.
Это указывает процессору 304, что средство, подсоединенное к его контактному штырю BR3#, имеет в данный момент наивысший приоритет, то есть это процессор 303.
Кроме того, следуя схеме циклического перехода по данному модулю арбитражной системы, когда процессор 303 завершит пользование шиной, процессор 304 станет средством с наивысшим приоритетом.
Таким образом, значение его арбитражного счетчика было правильно оценено как два, поскольку оно возросло бы до трех, когда процессор 303 завладел бы шиной, затем уменьшилось бы до нуля для следующего владельца шины, который контролирует сам себя (потому что значение его арбитражного счетчика равно нулю).
Из вышеприведенного обсуждения можно видеть, что каждый процессор на шине следит за средством, которое владеет шиной, согласно следующим правилам: если значение арбитражного счетчика средства равно нулю, тогда средство контролирует себя как владельца шины (если оно возбуждает свой канал BR0#); если значение арбитражного счетчика средства равно n, где n не равно нулю, тогда средство следит за владельцем шины, а именно за средством, подсоединенным к его контактному штырю BRn#.
Таким образом, каждый процессор разрешает средству, подсоединенному к его контактному штырю BRn# , завладеть шиной, когда значение арбитражного счетчика процессора равно n. Однако, если через контактный штырь BRn# сигнал не получен, то процессор узнает, что средство, которое осуществляет запрос на пользование шиной через этот контактный штырь, в данный момент не выдает запрос на пользование шиной.
Один вариант подсоединения BR# контактных штырей между средствами 302-305 показан в таблице 1. В ней также показаны BREQ# каналы управления с 311 по 314, которые соединяют BR# контактные штыри.
В одном варианте реализации настоящего изобретения логическое устройство подключения 310 устанавливает набор сигналов инициализации во время системного сброса, который обеспечивает каждое средство на шине соответствующими значениями для конфигурации.
В одном режиме системный сброс распознается процессорами 302-305 путем выдачи сигнала RESET# , который является входным для каждого процессора и логического устройства подключения 310. Сигнал RESET# выдается компьютерной системой, например, в момент, когда система включается либо когда реально существующий переключатель "сброс" приводится в действие.
Как вариант, сигнал RESET# может выдаваться по любому заданному событию, например в определенное время каждый день, или по случайному событию, например после того, как система проработала в течение произвольного периода времени.
Сигналы инициализации, устанавливаемые устройством подключения 310, содержат, например, сигналы, указывающие идентификаторы для каждого процессора, сигналы, указывающие конфигурации контроля ошибок для системы и т.п. Размещение устройства подключения 310 внутри системы может быть разным.
В одном варианте настоящего изобретения устройство подключения 310 находится внутри контроллера памяти 122 на фиг. 1. В альтернативном варианте устройство подключения 310 размещается внутри другого средства на шине "процессор-система" 101, а именно в одном из процессоров 102-105 на фиг. 1 или в устройстве управления кластером 207 на фиг. 2, или в специальном средстве арбитража.
Арбитражный счетчик каждого средства инициализируется при системном сбросе согласно рассмотренной выше схеме кругового подсоединения. Начальное значение арбитражного счетчика для данного средства основывается на идентификаторе для этого средства.
Каждый арбитражный счетчик средства инициализируется с индивидуальным значением, для того чтобы обеспечить работу схемы арбитража, описанной выше. Если арбитражные счетчики для двух средств были инициализированы с одним и тем же значением, то в конце концов значения двух арбитражных счетчиков для двух средств оба станут равными нулю. Поскольку каждое средство владеет шиной, когда значение его арбитражного счетчика равно нулю, может возникнуть конфликт сигналов между двумя средствами на шине. Следовательно, этой ситуации следует избегать.
Инициализация арбитражного счетчика для данного средства зависит от идентификатора этого средства. Таким образом, присвоение каждому средству на шине индивидуального идентификатора обеспечивает то, что арбитражные счетчики инициализируются с различными значениями для каждого средства.
При системном сбросе устройство подключения 310 устанавливает набор сигналов инициализации. Среди этого набора есть сигнал по одному из следующих каналов управления: BREQ0# каналу управления 311, BREQ1# каналу управления 312, BREQ2# каналу управления 313 или BREQ3# каналу управления 314.
В одном варианте то, какой из каналов управления с 311 по 314 будет активизирован, заранее предопределено в устройстве подключения 310. То есть, устройство подключения 310 предварительно конфигурируется для активизации одного и того же канала управления при каждом системном сбросе.
В одном варианте то, какой канал управления будет активизирован устройством подключения 310, жестко устанавливается аппаратурным способом в устройстве подключения 310. В альтернативном варианте на устройстве подключения 310 устанавливается перемычка; положение этой перемычки может быть разным в различных системах либо изменяться внутри одной и той же системы в промежутках между системными сбросами.
В альтернативном варианте устройство подключения 310 предварительно не конфигурируется для задания одного и того же BREQ# канала управления 311-314 при каждом системном сбросе.
В одном варианте то, какой канал управления будет активизирован, определяется значением, хранящимся в отдельном регистре; любое произвольно определенное значение в регистре в момент системного сброса определяет, какой из каналов управления будет активизирован.
В другом варианте устройство флэш-памяти (электрически стираемое ППЗУ) указывает, какой канал управления задать при сбросе; устройство флэш-памяти может указывать при каждом сбросе один и тот же канал управления либо, как альтернативный вариант, после каждого системного сброса менять задаваемый канал управления.
Каждое средство изначально присваивает себе индивидуальное значение
идентификатора на основе BREQ# канала управления, который активизируется при системном сбросе. В одном режиме идентификатор средства определяется согласно следующей формуле:
id =
n(MOD)max_agents, (1)
где id - идентификатор средства,
n - номер BRn# контактного штыря, активизированного при системном сбросе, и
max_ agents - максимальное количество
симметричных средств на шине, которое может принимать участие в арбитраже.
Таким образом, когда средство активизирует один из своих BR# контактных штырей при системном сбросе, оно присваивает себе значение идентификатора на основе формулы (1).
В одном режиме настоящего изобретения шина 101 имеет максимум четыре подсоединенных к ней процессора с 302 по 306. Таким образом, значение max_agents равно четырем, что реализовано аппаратным способом в каждом процессоре с 302 по 305.
Следует отметить, что значение max_agents является максимальным числом симметричных средств, которые могут принимать участие в арбитраже шины, но не является количеством средств, действительно подсоединенных к шине.
Кроме того, в значение max_agents не включаются какие-либо "высокоприоритетные" средства, подсоединенные к шине, как обсуждалось выше. Хотя аппаратным путем и реализовано число "четыре", к шине может быть подсоединено меньше четырех процессоров.
Например, если процессор 305 на фигуре 3 не подсоединен к шине 101, то тогда сигнал запроса на пользование шиной не будет установлен на BREQ3# канале управления 314. Таким образом, когда значение арбитражного счетчика процессора 304 равно единице, он не получает входной сигнал на свой BR1# контактный штырь.
В итоге, как было установлено выше, соответственно изменяется состояние арбитражного счетчика. Таким образом, средства по существу просто игнорируют процессор, который не подсоединен к шине.
Специалистам должно быть понятно, что максимальное количество процессоров, которое может принимать участие в арбитраже, может быть легко изменено для приспособления к большему количеству процессоров. Должно быть понятно, что компьютерная система настоящего изобретения может иметь более четырех процессоров в многоуровневой шинной иерархии, как показано на фиг. 2.
Следует заметить, что в многоуровневой шинной иерархической структуре, показанной на фиг. 2, каждое средство на шине имеет индивидуальный идентификатор для этой шины (то есть шины, доступ к которой происходит через арбитраж). Однако этот идентификатор может быть продублирован другим средством на другой шине.
Например, одно из средств, подсоединенных к шине 212 на фиг. 2, может иметь значение идентификатора, равное трем. Кроме того, одно из средств, подсоединенных к шине 213, также может иметь значение идентификатора, равное трем.
Для определения своего идентификатора каждое средство использует формулу (1). Тем не менее, результирующее значение отличается для каждого средства благодаря схеме кругового подсоединения. Идентификация средства для каждого процессора с 302 по 305 на фиг. 3, на основе которой активизируются BREQ# каналы управления, показана в табл. 2.
Следует отметить, что, если к шине подсоединено менее четырех симметричных средств, то идентификаторы средств останутся теми же, что показаны в табл. 2 для тех средств, которые подсоединены к шине. Например, если к шине были подсоединены только процессоры 302 и 304 и активизирован канал управления BREQ0# при системном сбросе, тогда идентификатор процессора 302 имеет значение ноль, а идентификатор процессора 304 - два.
Определение владельца шины происходит так же, как было описано выше.
Шаги для инициализации средства согласно настоящему изобретению представлены на фиг. 4. Устройство подключения 310 активизирует один из BREQ# каналов управления 311-314 при системном сбросе, шаг 410. При активизации сигнала RESET# и BREQ# канала управления каждое средство на шине определяет свой идентификатор, шаг 415, как было описано выше.
Поскольку идентификатор средства определен, каждое средство инициализирует свой собственный арбитражный счетчик, шаг 420. В одном режиме арбитражный счетчик средства инициализируется
согласно следующей формуле:
counter value = (priority_agent_agent_id-1) MOD max_agents, (2)
где counter value - значение арбитражного счетчика средства при системном сбросе,
priority_agent - средство, которое первым владеет шиной,
agent_ad - идентификатор средства для того конкретного средства, которое определено на шаге 415, и
max_agents - максимальное
количество средств на шине, которое может принимать участие в арбитраже, как было описано выше.
priority_ agent - это значение идентификатора средства, относящееся к средству, которое имеет наивысший приоритет для владения шиной после системного сброса, не считая "высокоприоритетных" средств, если они есть.
Согласно формуле (2) средство, чей идентификатор имеет такое же значение, как идентификатор приоритетного средства, рассчитывает значение своего арбитражного счетчика, чтобы оно было на единицу меньше значения max_agents (то есть "три" в вышеуказанных примерах, где max_agents равно четырем).
Таким образом, когда арбитражные счетчики в каждом средстве уменьшают свои значения, чтобы определить, какое средство имеет наивысший приоритет для владения шиной, значение арбитражного счетчика приоритетного средства уменьшается до нуля (указывая тем самым, что приоритетное средство имеет наивысший приоритет).
Значение идентификатора приоритетного средства согласовывается всеми средствами на шине. То есть, каждое средство на шине предварительно конфигурируется со значением идентификатора приоритетного средства; в одном варианте реализации значение идентификатора приоритетного средства реализуется аппаратным способом в каждом средстве.
В альтернативном варианте приоритетное средство определяется с помощью сдвигового регистра, состояние которого изменяется после каждого сброса. Как вариант, приоритетное средство может определяться произвольно для каждого сброса.
Следует заметить, что приоритетное средство в формуле (2) - это значение идентификатора средства, которое будет владеть шиной первым после сброса (если не принимать в расчет какие-либо "высокоприоритетные средства", рассмотренные выше).
Процессор или средство, соответствующее приоритетному средству, может меняться. Например, предположим, что каждое средство имеет значение идентификатора приоритетного средства, установленное аппаратным способом по средству 0. Однако то, такой из процессоров 302-305 действительно является средством 0, зависит от BREQ# канала управления 311-314, активизированного при системном сбросе.
Таким образом, хотя значение идентификатора приоритетного средства может быть фиксированным, процессор, который в действительности имеет этот идентификатор, может быть различным. Таким образом, любой процессор на шине может быть приоритетным средством.
Например, на фиг. 3, если приоритетное средство является средством со значением идентификатора, равным единице, то таблица 3 показывает начальные значения счетчика для каждого процессора 302-305 согласно формуле (2) в зависимости от того, какой BREQ# канал управления 311-314 активизирован при системном сбросе.
Таким образом, из табл. 3 можно видеть, что любой процессор на шине может иметь наивысший приоритет при системном сбросе.
Следовательно, как вытекает из вышеприведенного описания, в одном варианте средства на шине, подсоединенные по круговой схеме, инициализируются посредством активизации BREQ# канала управления либо другого подходящего сигнала во время системного сброса. То есть, одна активизация одного сигнального канала инициализирует все средства на шине для проведения арбитража независимо от количества средств.
Специалистам будет понятно, что, хотя в вышеприведенном описании ссылаются на установление уровня (активизацию) различных сигналов, использование сброса тех же самых сигналов может привести к тому же самому результату. Это может быть выполнено, например, путем инвертирования сигналов либо в месте их появления, либо в месте их приема, либо посредством использования дифференцированных сигналов.
Хотя после прочтения представленного описания специалистами может быть предложено множество изменений и модификаций, должно быть понятно, что конкретные варианты, показанные и описанные посредством иллюстраций, нельзя рассматривать в качестве ограничения.
Таким образом, подразумевается, что ссылки на детали конкретных вариантов реализации не выходят за рамки сути формулы изобретения, в которой изложены только те отличительные признаки, которые отражают сущность изобретения.
Таким образом, здесь был описан механизм инициализации для средств с симметричным арбитражем.
Надписи на рисунках
Фиг. 1:
101 - шина "процессор-память", 102-105
- процессор (...), 106 - L2 кэш-память, 121 - главная память, 122 - контроллер памяти, 123 - устройство отображения, 124 - устройство сопряжения, 125 - устройство памяти массового применения, 131
- шина системы ввода/вывода (1/0), 132 - устройство отображения, 133 - клавиатура, 134 - управление курсором, 135 - устройство для создания твердых копий, 136 - устройство памяти массового применения,
310 - устройство подключения, 320 - арбитражный блок.
Фиг. 2:
203-206 - средство ..., 207 - устройство управления кластером, 208 - шина "память-система", 210 - интерфейс
высокоскоростного ввода/вывода, 211 - интерфейс памяти.
Фиг. 3:
137 - шина запроса, 302-305 - процессор (...), RESET# - сброс, 310 - устройство подключения, 320 - арбитражный
блок, 325 - идентификатор средства, 330 - арбитражный счетчик, 335 - устройство инициализации, 340 - компаратор, 345 - устройство инициализации идентификатора средства, 350 - устройство инициализации
арбитражного счетчика, 355 - значение приоритетного средства, 360 - изменение состояния счетчика, 365 - устройство освобождения шины.
Фиг. 4:
НАЧАЛО; 410 - активизация BREQ#
канала при сбросе, 415 - определение идентификаторов средств, 420 - инициализация значений арбитражных счетчиков, КОНЕЦ.
Изобретение относится к области компьютерных системных шин, а именно к инициализации средств в системе шин. Техническим результатом является повышение быстродействия компьютерной системы. Компьютерная система содержит одно или более шинных средств, логическое устройство для управления шиной, причем шинное средство содержит арбитражный счетчик, логическое устройство инициализации. Способ инициализации шинного средства заключается в том, что подают сигнал инициализации на шинное средство, определяют идентификатор для шинного средства, определяют начальное значение арбитражного счетчика на основе идентификатора и максимального количества шинных средств, которые могут быть подсоединены к шине. Устройство для инициализации реализует указанный способ. 3 с. и 19 з.п.ф-лы. 4 ил., 3 табл.