Организация шин
Языки микропрограммирования
Для детализированного задания микропрограмм используют языки микропрограммирования. Языки микропрограммирования (ЯМП) обеспечивают описание функционирования ВМ в терминах микроопераций.
Если средства языка ориентированы на запись микропрограммы без привязки к конкретным структурам для реализации этой микропрограммы, то такой ЯМП называют языком, функционального микропрограммирования, а соответствующие микропрограммы — функциональными микропрограммами . Функциональная микропрограмма используется как исходная форма для описания функционирования ВМ.
В случае когда средства языка нацелены на описание микропрограмм, привязанных к конкретной реализующей их структуре, ЯМП называют языком структурно-функционального микропрограммирования.
Совокупность трактов, объединяющих между собой основные устройства ВМ (центральный процессор, память и модули ввода/вывода), образует структуру взаимосвязей вычислительной машины. Структура взаимосвязей должна обеспечивать обмен информацией между:
· центральным процессором и памятью;
· центральным процессором и модулями ввода/вывода;
· памятью и модулями ввода/вывода.
Информационные потоки, характерные для основных устройств ВМ, показаны на рис.32.
Рис.32. Информационные потоки в вычислительной машине
С развитием вычислительной техники менялась и структура взаимосвязей устройств ВМ (рис.33). На начальной стадии преобладали непосредствен мыс связи между взаимодействующими устройствами ВМ. С появлением мини-ЭВМ, и особенно первых микроЭВМ, все более популярной становится схема с одной общей шиной. Последовавший за этим быстрый рост производительности практически всех устройств ВМ привел к неспособности единственной шины справиться с возросшим трафиком, и ей на смену приходят структуры взаимосвязей на базе нескольких шин. Дальнейшие перспективы повышения производительности вычислений связаны не столько с однопроцессорными машинами, сколько с многопроцессорными вычислительными системами. Способы взаимосвязей в таких системах значительно разнообразнее. Возвращаясь к вычислительным машинам, более внимательно рассмотрим вопросы, связанные с организацией взаимосвязей на базе шин.
Рис. 33. Эволюция структур взаимосвязей (ЦП – центральный процессор, МОП– модуль основной памяти, МВВ – модуль ввода/вывода)
Взаимосвязь частей ВМ и ее «общение» с внешним миром обеспечиваются системой шин. Большинство машин содержат несколько различных шин, каждая из которых оптимизирована под определенный вид коммуникаций. Часть шин скрыта внутри интегральных микросхем или доступна только в пределах печатной платы. Некоторые шины имеют доступные извне точки, с тем чтобы к ним легко можно было подключить дополнительные устройства, причем большинство таким шин не просто доступны, но и отвечают определенным стандартам, что позволяет подсоединять к шине устройства различных производителей.
Чтобы охарактеризовать конкретную шину, нужно описать (рис.34):
· совокупность сигнальных линий;
· физические, механические и электрические характеристики шины;
Рис.34. Параметры, характеризующие шины
· используемые сигналы арбитража, состояния, управления и синхронизации;
· правила взаимодействия подключенных к шине устройств (протокол шины).
Шину образует набор коммуникационных линий, каждая из которых способна передавать сигналы, представляющие двоичные цифры 1 и 0. По линии может пересылаться развернутая во времени последовательность таких сигналов. При совместном использовании несколько линий могут обеспечить одновременную (параллельную) передачу двоичных чисел. Физически линии шины реализуются в виде отдельных проводников, как полоски проводящего материала на монтажной плате либо как алюминиевые или медные проводящие дорожки па кристалле микросхемы.
Операции на шине называют транзакциями. Основные виды транзакций — транзакции чтения и транзакции записи. Если в обмене участвует устройство ввода/вывода, можно говорить о транзакциях ввода и вывода, по сути эквивалентных транзакциям чтения и записи соответственно. Шинная транзакция включает в себя две части: посылку адреса и прием (или посылку) данных.
Когда два устройства обмениваются информацией по шине, одно из них должно инициировать обмен и управлять им. Такого рода устройства называют ведущими (bus master). В компьютерной терминологии «ведущий» — это любое устройство, способное взять на себя владение шиной и управлять пересылкой данных. Ведущий не обязательно использует данные сам. Он, например, может захватить управление шиной в интересах другого устройства. Устройства, не обладающие возможностями инициирования транзакции, носят название ведомых (bus slave). В принципе к шине может быть подключено несколько потенциальных ведущих, но в любой момент времени активным может быть только один из них, т.к. если несколько устройств передают информацию одновременно, их сигналы перекрываются и искажаются. Для предотвращения одновременной активности нескольких ведущих в любой шине предусматривается процедура допуска к управлению шиной только одного из претендентов (арбитраж). В то же время некоторые шины допускают широковещательный режим записи, когда информация одного ведущего передается сразу нескольким ведомым (здесь арбитраж не требуется). Сигнал, направленный одним устройством, доступен всем остальным устройствам, подключенным к шине.
Английский эквивалент термина «шина» — «bus» — восходит к латинскому слову omnibus, означающему «для всего». Этим стремятся подчеркнуть, что шина ведет себя как магистраль, способная обеспечить всевозможные виды трафика.