Архитектура вычислительных систем. Архитектура вычислительных систем Способы ускорения традиционных архитектур вс
Скачать 1.55 Mb.
|
Рис 3 .Организация адресного пространства при расслоении памяти (а), временная диаграмма работы модулей (б) Все команды и данные размещены в адресном пространстве последовательно. Однако ячейки памяти, имеющие смежные адреса, находятся в различных модулях памяти. Если ОП состоит из 4-х модулей, то номер модуля кодируется двумя младшими разрядами адреса. При этом полные m – разрядные адреса 0,4,8,…. Относятся к блоку 0, адреса 1,5,9,13 – к блоку 1, адреса 2,6,10 – к блоку 2 и адреса 3,7,11,15 – к блоку 3. Т.о., последовательность обращений к адресам 0,1,2,3,4,5,6….будет расслоена между 4 модулями : 0,1,2,3,0,1,2…(см рис 4) 0, 1, 2, 3, 4, 5, 6 0, 1, 2, 3, 0, 1, 2….. Рис. 4 Расслоение последовательности обращений к адресам между модулями памяти Поскольку каждый модуль памяти имеет собственные схемы управления выборкой, можно обращение к следующему модулю производить, не дожидаясь ответа от предыдущего. На временной диаграмме видно, что время доступа к каждому модулю равно: τ =4Т, где Т=t i+1-ti – длительность такта. В каждом такте следуют обращения к модулям памяти в моменты времени t1,t2,t3,…. При наличии 4-х модулей темп выдачи квантов информации из памяти в процессор будет соответствовать 1 такту Т, при этом скорость выдачи информации из каждого модуля в 4 раза ниже, т.е. составит 4Т. Задержка в выдаче кванта информации относительно момента обращения к модулю также составит 4 такта, однако задержка в выдаче каждого последующего кванта относительно момента выдачи предыдущего составит Т. При реализации расслоения по адресам число модулей памяти может быть произвольным и необязательно кратным 2. В некоторых компьютерах предусмотрено произвольное отключение модулей памяти, что позволяет исключить из конфигурации неисправные модули. В современных высокопроизводительных компьютерах число модулей составляет 4-16, но иногда превышает 64. Для повышения производительности мультипроцессорных систем, работающих в многозадачных режимах, применяют другие методы расслоения, при которых разные процессоры обращаются к различным модулям памяти. Необходимо помнить, что процессоры ввода-вывода также занимают циклы памяти и вследствие этого могут сильно влиять на производительность системы. Для уменьшения этого влияния обращения ЦП и процессоров ввода-вывода организуют к разным модулям памяти. Обобщением идеи расслоения памяти является возможность реализации нескольких независимых обращений, когда несколько контролеров памяти позволяют модулям памяти (или группам расслоенных модулей памяти) работать независимо. Прямое уменьшение числа конфликтов чередующихся при обращении к памяти может быть достигнуто путем размещения программ данных в разных модулях. Поскольку обращения к командам и элементам данных чередуются, то разделение памяти на память команд и память данных повышает быстродействие машины подобно рассмотренному выше механизму расслоения. Разделение памяти на память команд и память данных широко используется в системах управления или обработки сигналов. В подобного рода системах в качестве данных используются ПЗУ, цикл которых меньше цикла устройств, допускающих запись. Такое решение делает разделение данных и команд весьма эффективным. Выбор той или иной схемы расслоения для компьютерной и др. вычислительной системы определяется целями (достижение высокой производительности при решении множества задач или высокого быстродействия при решении одной задачи), а также архитектурными и структурными особенностями системы и элементной базой (соотношением длительности циклов памяти и узлов обработки). Кэш-память. В функциональном отношении кэш-память рассматривается как буферное ЗУ, размещённое между основной (оперативной) памятью и процессором. Основное назначение кэш-памяти - кратковременное хранение и выдача активной информации процессору, что сокращает число обращений к основной памяти, скорость работы которой меньше, чем кэш-памяти. За единицу информации при обмене между основной памятью и кэш-памятью принята строка, причём под строкой понимается набор слов, выбираемый из оперативной памяти при одном к ней обращении. Хранимая в оперативной памяти информация представляется, таким образом, совокупностью строк с последовательными адресами. В любой момент времени строки в кэш-памяти представляют собой копии строк из некоторого их набора в ОП, однако расположены они необязательно в такой же последовательности, как в ОП. Построение кэш-памяти может осуществляться по различным принципам, которые будут рассмотрены ниже. Типовая структура кэш-памяти Рассмотрим типовую структуру кэш-памяти (рис. 5), включающую основные блоки, которые обеспечивают её взаимодействие с ОП и центральным процессором. Рис. 5. Типовая структура кэш-памяти Строки, составленные из информационных слов, и связанные с ними адресные теги хранятся в накопителе, который является основой кэш-памяти. Адрес требуемого слова, поступающий от центрального процессора (ЦП), вводится в блок обработки адресов, в котором реализуются принятые в данной кэш-памяти принципы использования адресов при организации их сравнения с адресными тегами. Само сравнение производится в блоке сравнения адресов (БСА), который конструктивно совмещается с накопителем, если кэш-память строится по схеме ассоциативной памяти. Назначение БСА состоит в выявлении попадания или промаха при обработке запросов от центрального процессора. Если имеет место кэш-попадание (т.е. искомое слово хранится в кэш-памяти, о чём свидетельствует совпадение кодов адреса, поступающего от центрального процессора, и одного из адресов некоторого адресного тега), то соответствующая строка из кэш-памяти переписывается в регистр строк. С помощью селектора-демультиплексора из неё выделяется искомое слово, которое и направляется в центральный процессор. В случае промаха с помощью блока формирования запросов осуществляется инициализация выборки из ОП необходимой строки. Адресация ОП при этом производится в соответствии с информацией, поступившей от центрального процессора. Выбираемая из памяти строка вместе со своим адресным тегом помещается в накопитель и регистр строк, а затем искомое слово передается в центральный процессор. Для высвобождения места в кэш-памяти с целью записи выбираемой из ОП строки одна из строк удаляется. Определение удаляемой строки производится посредством блока замены строк, в котором хранится информация, необходимая для реализации принятой стратегии обновления находящихся в накопителе строк. Способы размещения данных в кэш-памяти. Существует четыре способа размещения данных в кэш-памяти: -прямое распределение, -полностью ассоциативное, -частично ассоциативное, -распределение секторов. Рассмотрим подробно каждый способ размещения и механизмы преобразования адресов. Предположим, что кэш содержит 128 строк, размер строки 16 слов, а основная память может содержать 16384 строки. Для адресации основной памяти используется 18 бит. Из них 14 старших показывают адрес строки, а младшие 4 – адрес слова внутри этой строки. Строки КЭШ-памяти указываются 7-разрядными адресами. Прямое распределение. При прямом распределении место хранения строк в кэш-памяти однозначно определяется по адресу строки. Структура кэш-памяти с прямым распределением показана на рис. 6 Рис. 6. Структура кэш-памяти с прямым распределением Адрес основной памяти состоит из 14-ти разрядного адреса строки и 4-х разрядного адреса слова внутри этой строки. Адрес строки подразделяется на старшие 7 бит (тег) и младшие 7 бит (индекс). Для того чтобы поместить в кэш-память строку из основной памяти с адресом АВС, выбирается область внутри кэш-памяти с адресом В, который равен 7 младшим битам адреса строки АВ. Преобразование из АВС в В сводится только к выборке младших 7 бит адреса строки АВ. По адресу В в кэш-памяти может быть помещена любая из 128 строк основной памяти, имеющих адрес, 7 младших бит которого равны адресу В. Для того, чтобы определить, какая именно строка хранится в памяти данных в настоящий момент времени, используется запоминающее устройство емкостью 7*128 слов, в котором помещается по соответствующему адресу в качестве тега 7 старших бит адреса строки, хранящейся в данное время по адресу В кэш-памяти. Это запоминающее устройство называется теговой памятью. Память, в которой хранятся строки, называется памятью данных. Тег из теговой памяти считывается по адресу В, который образует 7 младших бит адреса строки АВ. Параллельно считыванию тега осуществляется доступ к памяти данных с помощью 11 младших бит (ВС) адреса основной памяти АВС. Если тег и старшие 7 бит адреса основной памяти совпадают, значит что данная строка существует в памяти данных (строка-V), то есть осуществляется кэш-попадание. Если же происходит кэш-промах, то есть тег отличается от старших 7 бит, то из основной памяти считывается соответствующая строка, а из кэш-памяти удаляется строка-V, определяемая 7 младшими разрядами адреса строки, а на ее место помещается строка, считанная из основной памяти. Осуществляется также обновление соответствующего тега в теговой памяти. Способ прямого распределения реализуется довольно просто, однако из-за того, что место хранения строки в кэш-памяти однозначно определяется по адресу строки, вероятность сосредоточения областей хранения строк в некоторой части кэш-памяти высока, то есть замены строк будут происходить довольно часто. В этой ситуации эффективность кэш-памяти заметно снижается. Полностью ассоциативное распределение При таком способе размещения данных каждая строка основной памяти может быть размещена на месте любой строки кэш-памяти. Структура кэш-памяти с полностью ассоциативным распределением выглядит как показано на рис 7. Рис. 7. Структура кэш-памяти с полностью ассоциативным распределением При полностью ассоциативном распределении механизм преобразования адресов должен давать ответ на вопрос, существует ли копия строки с произвольным адресом в кэш-памяти, и, если существует, то по какому адресу. Для этого необходимо, чтобы теговая память являлась ассоциативной памятью. Входной информацией для ассоциативной памяти тегов является тег А (14-ти разрядный адрес строки), а выходной информацией – адрес строки внутри кэш-памяти (С). Каждое слово теговой памяти состоит из 14-разрядного тега и 7-разрядного адреса С строки внутри кэш-памяти. Ключом для поиска адреса строки внутри кэш-памяти является тег А (старшие 14 разрядов адреса основной памяти). При совпадении ключа А с одним из тегов Т теговой памяти (случай попадания) происходит выборка соответствующих данному тегу адреса С и обращение к памяти данных. Входной информацией для памяти данных является 11-ти разрядное слово ВС (7 бит адреса строки В + 4 бита адреса слова в данной строке С). В случае несовпадения ключа ни с одним из тегов теговой памяти (случай промаха) формируется запрос к основной памяти на выборку строки с соответствующим адресом и считывание этой строки. По этому способу при замене строк кандидатом на удаление могут быть все строки в кэш-памяти. Частично ассоциативное распределение. При данном способе размещения, несколько соседних строк (фиксированное число, не менее двух) из 128 строк кэш-памяти образуют структуру называемую группой. Структура кэш-памяти, основанная на использовании частично ассоциативного распределения, показана на рис. 8. В данном случае в одну группу Е входят 4 строки А, В, С, D. Рис. 8. Структура кэш-памяти, основанная на использовании частично ассоциативного распределения. Адрес строки НЕ основной памяти (14 бит) разделяется на две части: Н-тег (старшие 9 бит) и Е - адрес группы (младшие 5 бит). Адрес строки внутри кэш-памяти, состоящий из 7 бит, разделяется на адрес группы Е (5 бит) и адрес строки внутри группы (2 бит: 00,01,10,11). Для помещения в кэш-память строки, хранимой в ОП по адресу НЕF, необходимо выбрать группу с адресом Е. При этом не имеет значения, какая из четырех строк в группе может быть выбрана. Для выбора группы используется метод прямого распределения, а для выбора строки в группе используется метод полностью ассоциативного распределения. Когда центральный процессор запрашивает доступ по адресу НЕF, то осуществляется обращение к массиву тегов по адресу Е, выбирается группа из четырёх тегов (а, b, с, d), каждый из которых сравнивается со старшими 9 битами (Н) адреса строки. На выходе четырех схем сравнения формируется унитарный код совпадения ( Н=А – код: 1000, Н=В – код: 0100, Н=С – код: 0010, Н=D – код: 0001), который на шифраторе преобразуется в двухразрядный позиционный код, служащий адресом для выбора банка данных (00,01,10,11) – адрес строки внутри группы. Одновременно осуществляется обращение к массиву данных (банкам V1, V2, V3, V4,) по адресу ЕF (9 бит) и считывание из банка V2 требуемой строки или слова. При пересылке новой строки в кэш-память удаляемая из нее строка выбирается из четырех строк соответствующего набора (группы). Распределение секторов. По этому способу основная память разбивается на секторы, состоящие из фиксированного числа строк, кэш-память также разбивается на секторы, состоящие из такого же числа строк. Допустим, в секторе 16 строк, а в строке – 16 слов. Структура кэш-памяти с распределением секторов представлена на рис. 9 В адресе основной памяти 10 старших бит задают адрес сектора А, следующие 4 бита – адрес строки В в секторе и младшие 4 бита – адрес слова С в строке. При данной организации кэш-памяти, распределение секторов в кэш-памяти и основной памяти осуществлено полностью ассоциативно, то есть, каждый сектор А основной памяти может соответствовать любому сектору D в кэш-памяти. К каждой строке V, хранящейся в кэш-памяти, добавляется один бит достоверности (действительности); он показывает, совпадает или нет содержимое этой строки с содержимым строки в основной памяти, которая в данный момент анализируется на соответствие строки кэш-памяти. Если слова, запрашиваемого центральным процессором при доступе, не существует в кэш-памяти (бит достоверности, выбранный по адресу ВD равен 0), то сначала центральный процессор проверяет, был ли сектор А, содержащий это слово, помещен ранее в кэш-память. Если он отсутствует, то один из секторов кэш-памяти заменяется на этот сектор. Рис. 9. Структура кэш-памяти с распределением секторов. Если все сектора кэш-памяти используются, то выбирается один какой-нибудь сектор, и при необходимости только некоторые строки этого сектора возвращаются в основную память, а этот сектор можно использовать дальше. Когда осуществляется доступ к сектору А в кэш-памяти и строка В, содержащая нужное слово С, пересылается из основной памяти, то бит достоверности устанавливается до пересылки строки. Все биты достоверности других строк этого сектора сбрасываются. Если сектор А, содержащий слово В доступ к которому запрашивается, уже находится в кэш-памяти, то, в том случае когда бит достоверности строки, содержащей это слово, равен 0, этот бит устанавливается и строка пересылается из основной памяти в данную область кэш-памяти. В том случае, когда бит достоверности уже равен 1, нужное слово можно считать из кэш-памяти. Методы обновления строк в основной памяти В таблице 1 приведены условия сохранения и обновления информации в ячейках кэш-памяти и основной памяти. Если процессору требуется информация из некоторой ячейки основной памяти, а копия этой ячейки уже есть в кэш-памяти, то вместо оригинала считывается копия. В этом случае информация ни в кэш-памяти, ни в основной памяти не изменяется. Табл.1. Условия сохранения и обновления информации
При записи строк существует несколько методов обновления старой информации. Эти методы называются стратегией обновления строк основной памяти. Если результат обновления строк кэш-памяти не возвращается в основную память, то содержимое основной памяти становится неадекватным вычислительному процессу. Чтобы избежать таких ошибок, предусмотрены различные методы обновления основной памяти. |