Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Адресация шин и некоторые характеристики

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

На ША могут выдаваться адреса ячеек памяти, номера регистров ЦП, адреса портов ввода/вывода и т. п. Многообразие видов адресов предполагает наличие дополнительной информации, уточняющей вид, используемый в данной транзакции. Такая информация может косвенно содержаться в самом адресе, но чаще передается по специальным управляющим линиям шины.

Разнообразной может быть и структура адреса. Так, в адресе может конкретизироваться лишь определенная часть ведомого, например, старшие биты адреса могут указывать на один из модулей основной памяти, в то время как младшие биты определяют ячейку внутри этого модуля.

В некоторых шинах предусмотрены адреса специального вида, обеспечивающие одновременный выбор определенной группы ведомых либо всех ведомых сразу (broadcast). Такая возможность обычно практикуется в транзакциях записи (от ведущего к ведомым), однако существует также специальный вид транзакции чтения (одновременно от нескольких ведомых общему ведущему). Английское название такой транзакции чтения broadcall можно перевести как «широковещательный опрос». Информация, возвращаемая ведущему, представляет собой результат побитового логического сложения данных, поступивших от всех адресуемых ведомых.

Число сигнальных линий, выделенных для передачи адреса (ширина шины адреса), определяет максимально возможный размер адресного пространства. Это одна из базовых характеристик шины, поскольку от нее зависит потенциальная емкость адресуемой памяти и число обслуживаемых портов ввода/вывода.

Совокупность линий, служащих для пересылки данных между модулями системы, называют шиной данных (ШД). Важнейшие характеристики шины данных — ширина и пропускная способность.

Ширина шины данных определяется количеством битов информации, которое может быть передано по шине за одну транзакцию (цикл шины). Цикл шины следует отличать от периода тактовых импульсов — одна транзакция на шине может занимать несколько тактовых периодов. В середине 1970-х годов типовая ширина шины данных составляла 8 бит. В наше время это обычно 32,64 или 128 бит. В любом случае ширину шины данных выбирают кратной целому числу байтов, причем это число, как правило, представляет собой целую степень числа 2.

Элемент данных, задействующий всю ширину ШД, принято называть словом, хотя в архитектуре некоторых ВМ понятие «слово» трактуется по-другому, то есть слово может иметь разрядность, не совпадающую с шириной ШД.

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

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

Ширина шины данных существенно влияет на производительность ВМ. Так, если шина данных имеет ширину вдвое меньшую чем длина команды, ЦП в течение каждого цикла команды вынужден осуществлять доступ к памяти дважды.

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

 

Организация памяти ЭВМ

 

В любой ВМ, вне зависимости от ее архитектуры, программы и данные хранятся в памяти. Функции памяти обеспечиваются запоминающими устройствами (ЗУ), предназначенными для фиксации, хранения и выдачи информации в процессе ра­боты ВМ. Процесс фиксации информации в ЗУ называется записью, процесс вы­дачи информации — чтениемили считыванием, асовместно их определяют как процессы обращенияк ЗУ.

В вычислительных системах, объединяющих множество параллельно работающих процессоров или машин, задача правильной организации памяти является одной из важнейших. Различие между быстродействием процессора и памяти всегда было камнем преткновения в однопроцессорных ВМ. Многопроцессорность ВС приводит еще к одной проблеме — проблеме одновременного доступа к памяти со стороны нескольких процессоров.

В зависимости от того, каким образом организована память многопроцессорных (многомашинных) систем, различают вычислительные системы с общей па­мятью (shared memory) и ВС с распределенной памятью (distributed memory). В системах с общей памятью(ее часто называют также совместно используемой или разделяемой памятью) память ВС рассматривается как общий ресурс, и каждый из процессоров имеет полный доступ ко всему адресному пространству. Системы с общей памятью называют сильно связанными(closely coupled systems). Подобное построение вычислительных систем имеет место как в классе SIMD, так и в классе MIMD. Иногда, чтобы подчеркнуть это обстоятельство, вводят специальные под­классы, используя для их обозначения аббревиатуры SM-SIMD (Shared Memory SIMD) и SM-MIMD (Shared Memory MIMD).

В варианте с распределенной памятьюкаждому из процессоров придается соб­ственная память. Процессоры объединяются в сеть и могут при необходимости обмениваться данными, хранящимися в их памяти, передавая друг другу так назы­ваемые сообщения. Такой вид ВС называют слабо связанными(loosely coupled systems). Слабо связанные системы также встречаются как в классе SIMD, так и в классе MIMD, и иной раз, чтобы подчеркнуть данную особенность, вводят подклассы DM-SIMD (Distributed Memory SIMD) и DM-MIMD (Distributed Memory MIMD).

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

Различие между общей и распределенной памятью — это разница в структуре виртуальной памяти, то есть в том, как память выглядит со стороны процессора. Физически почти каждая система памяти разделена на автономные компоненты, доступ к которым может производиться независимо. Общую память от распреде­ленной отличает то, каким образом подсистема памяти интерпретирует поступив­ший от процессора адрес ячейки. Для примера положим, что процессор выполняет команду Load RO, i, означающую «Загрузить регистр R0 содержимым ячейки i». В слу­чае общей памяти i — это глобальный адрес, и для любого процессора указывает на одну и ту же ячейку. В распределенной системе памяти i — это локальный адрес. Если два процессора выполняют команду load RO, i, то каждый из них обращается к i-й ячейке в своей локальной памяти, то есть к разным ячейкам, и в регистры R0 могут быть загружены неодинаковые значения.

Различие между двумя системами памяти должно учитываться программис­том, поскольку оно определяет способ взаимодействия частей распараллеленной программы. В варианте с общей памятью достаточно создать в памяти структуру данных и передавать в параллельно используемые подпрограммы ссылки на эту структуру. В системе с распределенной памятью необходимо в каждой локальной памяти иметь копию совместно используемых данных. Эти копии создаются пу­тем вкладывания разделяемых данных в сообщения, посылаемые другим процес­сорам.

 

Память с чередованием адресов

 

Физически память вычислительной системы состоит из нескольких модулей (бан­ков), при этом существенным вопросом является то, как в этом случае распределе­но адресное пространство (набор всех адресов, которые может сформировать про­цессор). Один из способов распределения виртуальных адресов по модулям памяти состоит в разбиении адресного пространства на последовательные блоки. Если память состоит из п банков, то ячейка с адресом i при поблочном разбиении будет находиться в банке с номером i/n. В системе памяти с чередованием адресов(inter­leaved memory) последовательные адреса располагаются в различных банках: ячей­ка с адресом I находится в банке с номером i mod n. Пусть, например, память состо­ит из четырех банков, по 256 байт в каждом. В схеме, ориентированной на блочную адресацию, первому банку будут выделены виртуальные адреса 0-255, второму - 256-511 и т. д. В схеме с чередованием адресов последовательные ячейки в первом банке будут иметь виртуальные адреса 0, 4, 8, ..., во втором банке — 1, 5, 9 и т. д. (рис. 40, а).

Распределение адресного пространства по модулям дает возможность одновре­менной обработки запросов на доступ к памяти, если соответствующие адреса от­носятся к разным банкам. Процессор может в одном из циклов затребовать доступ к ячейке i, а в следующем цикле — к ячейке j. Если i и j находятся в разных банках, информация будет передана в последовательных циклах. Здесь под циклом пони­мается цикл процессора, в то время как полный цикл памяти занимает несколько циклов процессора. Таким образом, в данном случае процессор не должен ждать, пока будет завершен полный цикл обращения к ячейке i. Рассмотренный прием позволяет повысить пропускную способность: если система памяти состоит из достаточного числа банков, имеется возможность обмена информацией между процессором и памятью со скоростью одно слово за цикл процессора, независимо от I длительности цикла памяти.

 

 

Рис. 40. Память с чередованием адресов: а — распределение адресов; б — элементы, извлекаемые с шагом 9 из массива 8x8

 

Решение о том, какой вариант распределения адресов выбрать (поблочный или I с расслоением), зависит от ожидаемого порядка доступа к информации. Программы компилируются так, что последовательные команды располагаются в ячейках с последовательными адресами, поэтому высока вероятность, что после команды, извлеченной из ячейки с адресом i, будет выполняться команда из ячейки i + 1. Элементы векторов компилятор также помещает в последовательные ячейки, поэтому в операциях с векторами можно использовать преимущества метода чередования. По этой причине в векторных процессорах обычно применяется какой-либо вариант чередования адресов. В мультипроцессорах с совместно используемой памятью тем не менее используется поблочная адресация, поскольку схемы обращения к памяти в MIMD-системах могут сильно различаться. В таких системах целью является соединить процессор с блоком памяти и задействовать максимум находящейся в нем информации, прежде чем переключиться на другой блок памяти.

Системы памяти зачастую обеспечивают дополнительную гибкость при извлечении элементов векторов. В некоторых системах возможна одновременная загрузка каждого n-го элемента вектора, например, при извлечении элементов вектора v, хранящегося в последовательных ячейках памяти при n = 4, память возвратит vО, vA, v8. Интервал между элементами называют шагом по индексу или «стирайдом» (stride). Одним из интересных применений этого свойства может служить доступ к матрицам. Если шаг по индексу на единицу больше числа строк в матрице, одиночный запрос на доступ к памяти возвратит все диагональные элементы матрицы (рис. 40,6). Ответственность за то, чтобы все извлекаемые элементы матрицы располагались в разных банках, ложится на программиста.

 

Последнее изменение этой страницы: 2016-07-23

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...