ЦСРС_1 / Grebeshkov_Tehnika_mikroproz_sistem_v_kommutazii_uchebnik_dlya_vuzov_2011
.pdf
Техника микропроцессорных систем в коммутации
создающая возможность проведения обработки информации и получения результата в необходимой форме. Архитектура фон Неймана была разработана на основе нескольких базовых принципов. Принцип программного управления означал, что программа для ЭВМ, которую обрабатывает ЦПУ, состоит из последовательности машинных команд, выбираемых из памяти с помощью счѐтчика команд. Счѐтчик (счетчик команд) – регистр, значение которого либо автоматически увеличивается на единицу, либо его состояние меняется принудительно при выполнении команд условного или безусловного перехода. Принцип однородности памяти означал, что программы и данные хранятся в одной и той же памяти. Над кодами команд можно выполнять те же действия, что и над кодами данных. В процессе выполнения можно изменять последовательность выполнения отдельных частей программы, например организовывать циклы, переход к подпрограммам, возврат из подпрограмм. Подпрограмма – часть программы для ЭВМ, имеющая самостоятельное значение и применяемая при решении различных задач одного класса. Подпрограмма, как правило, описывает самостоятельный этап вычислительного процесса и может быть использована неоднократно в одной или нескольких различных программах для ЭВМ. Типичные подпрограммы используются для вычисления элементарных функций, управление вводом-выводом. Для того, чтобы обратиться к подпрограмме а потом вернуться в основную программу применяется механизм как стек. Стек – это совокупность ячеек памяти, которые используются для сохранения адреса возврата из подпрограммы, для передачи параметров в подпрограммы. Для работы со стеком в системе команд микропроцессора есть специальные команды, а в программной архитектуре МПр имеются специальные регистры.
Ещѐ одним принципом фон Неймана являлся принцип адресности, суть которого в том, что основная физическая память процессора должна состоять из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так, чтобы к хранимым
вних данным можно было бы впоследствии обращаться. Каждая команда загружаемой в микропроцессор программы для ЭВМ хранится
вячейке физической памяти с уникальным адресом. Архитектура
21
Техника микропроцессорных систем в коммутации
фон Неймана предусматривает, что программа для ЭВМ и обрабатываемые данные загружаются в общую физическую оперативную память с помощью устройств ввода/вывода. При этом вся информация, поступающая в процессор, кодируется с помощью двоичных сигналов. В результате аппаратная часть процессора является неизменной величиной, а вот программа – в силу возможности модификации – величина переменная. В соответствии с изложенными принципами и подходами, в состав вычислительной машины фон Неймана были включены АЛУ, физическая память, устройства вво- да-вывода (см. рис. 1.1).
|
ЦПУ |
|
|
Устройство |
Регистры |
АЛУ |
|
управления |
процессора |
||
|
Физическая |
|
Устройства |
оперативная память |
|
ввода- |
(запоминающее устройство) |
|
вывода |
|
|
|
Условные обозначения:
– сигналы передачи данных и команд
– сигналы управления
Рис. 1.1 – Структура вычислительной машины
В состав ЦПУ входят следующие устройства – устройство управления, регистры процессора. Устройство управления ЦПУ [13,22] считывает команды из ОЗУ и организует их выполнение в соответствии с порядком выполнения команд, заданных программой. Таким образом, устройство управления ЦПУ в строгой последовательности, в рамках тактовых и цикловых временных интервалов работы микропроцессора осуществляет:
выборку команды;
интерпретацию команды с целью анализа формата,
22
Техника микропроцессорных систем в коммутации
служебных признаков и вычисления адреса операнда (операндов);
установление номенклатуры и временной последовательности всех функциональных управляющих сигналов;
генерацию управляющих импульсов/сигналов и передачу их на управляющие шины функциональных частей МПр и вентили между ними;
анализ результата операции и изменение своего состояния так, чтобы определить месторасположение (адрес) следующей команды.
Регистры процессора (регистры общего назначения) – про- граммно-доступные ячейки памяти в составе ЦПУ для сверхоперативного хранения данных длиной 8, 16, 32, 64 и даже 128 бит. Регистры могут быть универсальными или специализированными, например регистры операции ввода-вывода, регистр таймера, регистр счѐтчика, использование регистров только в командах умноженияделения. В состав ЦПУ также может включаться быстродействующее постоянное запоминающее устройство (ПЗУ).
Физическую оперативную память можно представить как матрицу, состоящую из m строк с n двоичными разрядами в каждой строке. Строка имеет уникальный идентификатор – адрес. Один разряд на пересечении строки и столбца способен хранить информацию размером (объѐмом) в 1 бит и называется запоминающим элементом. Совокупность из 8, 16 запоминающих элементов образуют ячейку памяти, способную хранить 1 или 2 байта информации соответственно.
По физической природе запоминающие элементы могут быть полупроводниковыми, оптическими, ферромагнитными и электровакуумными. Для организации взаимного обмена внешние устройства, память и микропроцессор физически соединяются электрическими цепями (проводниками), формирующими физические связи межу устройствами. Эти проводники называются линиями, линии формируют среду передачи и интерфейсы между устройствами. Интерфейс есть граница и способ адаптации между двумя взаимодейст-
23
Техника микропроцессорных систем в коммутации
вующими системами (устройствами), определенный общими функциональными, конструктивными характеристиками, требованиями к протоколу обмена. Также интерфейс – совокупность средств и правил, обеспечивающих взаимодействие устройств вычислительной машины или системы обработки информации и (или) программ.
Часть линий, сгруппированных по функциональному назначению, называется шиной. Различают внутренние шины и внешние шины. К внутренним шинам относятся:
Локальная шина/локальная шина памяти (примеры: QPI, FSB, HyperTransport, VL-bus, первичная PCI-шина) –
подключена к контактам МПр и работает на его частоте, может соединять МПр с ОЗУ или соединять МПр с системным контроллером памяти/контроллером общей системной шины (мостом).
Общая системная шина (примеры: вторичная PCI-шина, PCIExpress, в некоторых вариантах Infiniband) – соединяет МПр с ограниченным числом высокоскоростных внешних устройств через мост/шлюз, а также соединяет внешние по отношению к ЦПУ высокоскоростные устройства с физической оперативной памятью. В случае шины PCI-Express соединение осуществляется через коммутатор.
Шина расширения, например ISA и EISA, используются при наличии шины PCI и соединяет общую системную шину с относительно низкоскоростными внешними устройствами. В 1980-е…1990-е годы шины ISA и EISA рассматривались как стандарты для общей системной шины.
К внешним шинам относятся шины ввода/вывода для подключения внешних устройства с различными интерфейсами, такими как
SCSI, Serial ATA, Serial Attached SCSI (SAS), USB, FireWire/IEEE 1394
(см. рис. 1.2).
В свою очередь шины ввода-вывода через специальное объединяющее устройство – мост – соединяются с общей системной шиной. Допускается, что при наличии, например, специальных адаптеров PCI, устройства могут подключаться к общей системной шине непосредственно.
24
Техника микропроцессорных систем в коммутации
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Микропроцесссор |
|
Встроенный |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
контроллер |
|
|
|
|
|
|||||||
|
|
Видеоадаптер |
|
|
|
|
|
|
|
|
|
памяти |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Локальная |
Локальная |
|
||||||||||||||
|
|
|
|
|
шина памяти |
||||||||||||||||
|
|
|
|
|
|
|
шина |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
FSB, QPI |
|
|
|
|
|
Модуль ОЗУ |
|||||||||
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
Микросхемный |
|
|
|
|
|
Системный |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
набор шины |
|
|
|
|
|
контроллер |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
кэш-памяти и ОЗУ |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
видеоадаптера |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
Локальная |
|
(«северный» мост) |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Модуль ОЗУ |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
шина |
|
|
|
Общая |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
видеоадаптера |
|
|
системная |
|
|
|
|
|||||||||||
|
|
Системное |
|
|
|
|
|
|
|
|
шина или |
||||||||||
|
|
|
|
|
|
|
|
|
|
локальное |
|||||||||||
|
|
устройство |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
соединение |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
(DMI) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Системное |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
устройство |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
Общая |
|
|
Системный |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
системная |
|
контроллер ввода- |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
шина |
|
|
вывода и шин |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
расширения |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
(«южный» мост) |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Шины ввода- |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
вывода и шины |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
расширения |
|
|
|
|
|
|
|||||
Устройство |
|
|
Устройство |
|
|||||
ввода- |
|
|
ввода- |
|
|||||
вывода |
|
|
вывода |
|
|||||
|
|
|
|
|
|
|
|
|
|
Рис. 1.2 – Шины современной вычислительной машины
Наличие тех или иных видов шин, их объединение зависит от конструкции микропроцессорной системы. В современных МПр общая системная шина заменяется на участке между контроллерами внутренним локальным соединением, например высокоскоростным соединение DMI производства компании Intel между «северным» и «южным» мостом. Одновременно «мосты» приобретают функции концентраторов (hub) для высокоскоростных подключений, что позволяет осуществлять высокоскоростную передачу информации между компонентами вычислительной машины без промежуточных преобразований и переприемов. С другой стороны, контроллер опе-
25
Техника микропроцессорных систем в коммутации
ративной памяти (а также и контроллер видеоядра) в настоящее время непосредственно располагается на кристалле МПр. Это первоначально было сделано для МПр типа Athlon 64, далее это было реализовано для микропроцессорной архитектуры Intel Nehalem Core i7 компании Intel.
В результате системный контроллер кэш-памяти и ОЗУ выполняет функции управления высокоскоростными потоками видеоинформации. Следует отметить, что локальная шина в современных МПр (на примере Intel Core i7 и AMD Athlon64) применяется также для связи между отдельными процессорами по схеме «точка–точка». К примеру, разрядность локальной шины QPI на передачу и на прием соответственно равна 20 и 20 разрядов, из них 16 разрядов предназначено для передачи данных и 4 бита для коррекции ошибок, тактовая частот до 3,2 ГГц, скорость передачи до 25,6 Гбайт/с в обоих направлениях. Еще одной технологией современных локальных шин является технология HyperTransport. В версии 3.1 данной технологии от 2009 года эта локальная шина, которая может объединять ядра МПр (см. главу 5) и устройства ввода-вывода, работает на тактовой частоте до 3,2 ГГц и поддерживает скорость передачи до 56 Гб/с в обе стороны.
Различают одномагистральную и многомагистральную структуру вычислительных машин. В одномагистральной структуре микропроцессор, ОЗУ, устройства ввода-вывода подключаются к одной шине. В многомагистральной структуре МПр, ОЗУ и системный контроллер соединяются локальной шиной, высокоскоростные внешние устройства с МПр и ОЗУ соединяются через мост и общую системную шину, а прочие внешние устройства сначала подключаются к шине ввода-вывода, а шина ввода-вывода подключается к шине расширения или к общей системной шине. Шины отличаются друг от друга проводностью, скоростью передачи. В шинах выделяют линии данных, линии адресов, линии управления, линии прерывания, используемые для передачи соответственно данных, адресов, сигналов управления и информации, включая прерывания.
Вся совокупность линий шин, формирующих интерфейс между компонентами микропроцессорной системы называется магистралью (pipeline). Условно можно выделить две магистрали: магистраль ин-
26
Техника микропроцессорных систем в коммутации
формационного канала и магистраль управления информационным каналом [43]. По магистрали информационного канала передаются коды данных, коды адресов, коды команд и коды состояний устройств. Аналогичные наименования присваиваются соответствующим шинам, реализующим интерфейс. Коды данных представляют информацию, относящуюся к содержанию процессов в программной системе; здесь используется двоичное кодирование в формате машинного кода. Коды данных передаются по шине данных. Коды адресов предназначены для выбора, с помощью магистрали, заданных устройств или ячеек памяти для записи или считывания данных. Обычно для адресации используется двоичный номер объекта; есть варианты, когда каждому устройству выделяется отдельная линия адреса. Коды адресов передаются по шине адреса. Коды команд используются для управления функционированием устройств и обеспечения сопряжения между ними. Существует минимально необходимый набор команд, который может быть расширен пользователем за счет резервных полей в кодах команд. Различают команды управления обменом информации между устройствами, команды изменения состояния и изменения режимов работы. К наиболее распространенным командам относятся: «Чтение», «Запись», «Конец передачи», «Запуск». Коды состояния представляют собой сообщения, описывающие состояния устройств сопряжения. Коды формируются в ответ на действия команд или являются отображением состояний функционирования устройства, таких как «Занятость устройства», «Наличие ошибки», «Готовность устройства» к приему или передаче информации и т. п. В большинстве случаев коды данных, адресов, команд и состояний передаются по шинам с разделением времени за счет мультиплексирования шин. Это достигается введением дополнительных линий для обозначения типа передаваемой информации, называемых линиями идентификации. Их применение позволяет существенно сократить общее число линий информационной магистрали, однако при этом происходит снижение быстродействия передачи информации. Рассмотрим две основные шины, формирующие магистраль информационного канала.
Шина данных (data bus) — двунаправленная (дуплексная) шина, предназначена для передачи данных, закодированных двоич-
27
Техника микропроцессорных систем в коммутации
ным кодом, между компонентами МПр, оперативной памятью и внешними устройствами. Разрядность т.е. количество линий шины определяет скорость и эффективность информационного обмена, а также максимально возможное количество команд. Обычно шина данных имеет 8, 16, 20, 32 или 64 линии/разряда. За один цикл обмена по 64-разрядной шине может передаваться 8 байт информации, а по 8-разрядной — только один байт. Под машинным циклом здесь и далее понимается время, в течении которого производится выборка двух операндов из регистров, выполнение операции в АЛУ и запоминание результатов в регистре. Машинный цикл выполняется в течении нескольких тактовых импульсов (тактов), поступающих от генератора тактовой частоты МПр.
Шина адреса (address bus) предназначена для передачи кода адреса ячейки физической памяти. Разрядность шины адреса определяет максимально возможное количество адресов физических ячеек и, следовательно, максимально возможный размер хранимой программы и объем запоминаемых данных. Количество адресов, обеспечиваемых шиной адреса, определяется как 2N, где N — количество разрядов шины. Например, 16-разрядная шина адреса обеспечивает адресацию (обращение) к 65 536 уникальным адресам ячеек физической памяти. Разрядность шины адреса обычно кратна 4 и может достигать 32 и даже 64.
Шина адреса может быть однонаправленной и в этом случае шиной всегда управляет только микропроцессор. Шина может быть двунаправленной и в этом случае процессор может временно передавать управление шиной другому устройству, например контроллеру внешнего устройства.
Магистраль управления информационным каналом по своему функциональному назначению тоже делится на ряд шин:
шина управления обменом;
шина передачи управления;
шина прерывания;
шина специальных управляющих сигналов.
Шина управления обменом включает в себя линии синхронизации передачи информации. В зависимости от принятого принципа
28
Техника микропроцессорных систем в коммутации
обмена (асинхронного, синхронного) число линий может изменяться от одной до, по крайней мере, трех. Асинхронная передача происходит при условии подтверждения приемником готовности к приему и завершается подтверждением о приеме данных. При синхронной передаче темп выдачи и приема данных задается регулярной последовательностью сигналов. Шина передачи управления выполняет операции приоритетного занятия магистрали информационного канала.
Наличие этой шины определяется тем, что взаимодействие в большинстве интерфейсов выполняется по принципу «ведущийведомый», при котором «ведущее» устройство может брать управление шиной на себя в определенные моменты времени. При наличии в системе нескольких устройств, способных выполнять функции «ведущего», возникает проблема приоритетного распределения ресурсов шины (арбитража).
Шина прерывания применяется в основном в машинных интерфейсах ЭВМ и программно-модульных системах. Основная ее функция — идентификация устройства, запрашивающего сеанс обмена информацией. Идентификация состоит в определении контроллером (процессором ввода-вывода) исходной информации о запрашиваемом устройстве. В качестве информации об устройстве используется адрес источника прерывания либо адрес программы обслуживания прерывания (вектор прерывания).
Шина специальных управляющих сигналов включает в себя линии, предназначенные для обеспечения работоспособности и повышения надежности устройств интерфейса. К этим линиям относятся: линии питания, контроля источника питания, тактирующих импульсов, защиты памяти, общего сброса, контроля информации и т. п. Среди перечисленных сигналов магистрали управления наиболее часто используются следующие:
RD (read) – сигнал чтения из памяти;
WR (write) – сигнал записи в память;
MREQ (memory request) – сигнал инициализации памяти МПр;
IORQ (input – output request) – сигнал инициализации портов ввода-вывода;
29
Техника микропроцессорных систем в коммутации
READY – сигнал готовности;
RESET – сигнал сброса.
Способ организации магистрали управления информационным каналом оказывает существенное влияние на архитектуру и производительность процессора.
Однако исторически главным признаком для формирования различных архитектур МПр является способ организации хранения программ (команд) и данных в памяти микропроцессора. С точки зрения организации памяти выделяют две основные архитектуры МПр:
архитектура фон Неймана (принстонская архитектура) с общей физической оперативной памятью;
гарвардская архитектура, предложенная Говардом Айкеном (Howard Aiken) с разделяемой физической оперативной памятью.
Архитектура фон Неймана с общей памятью представлена на рис. 1.3.
Физическая |
Шина адреса |
|
|
память |
|
Данные и команды |
Шина данных |
|
|
|
|
Центральное
процессорное
устройство
Рис. 1.3 – Архитектура процессора с общей памятью
Эта архитектура является наиболее универсальной по способу применения и отличается гибкостью при использовании различных программных средств.
Недостатком рассматриваемой архитектуры можно считать некоторое снижение быстродействия для поиска нужной ячейки в общей памяти данных и команд. Это обусловлено тем, что быстродействие ЦПУ в несколько раз больше быстродействия физической памяти. Кроме того, пропускная способность шин ограничена.
В качестве логического развития архитектуры на рис. 1.3. была предложена Гарвардская архитектура, представленная на рис. 1.4.
30
