СКИПОДы конспект лекций (1127769), страница 5
Текст из файла (страница 5)
Выполнение команд, не входящих в этотсостав производится программно, для этого в архитектуре предусматривается развитый механизмреализации подпрограмм: реализация запоминания-восстановления регистров, стеки и т.д. Упрощениеоборудования, конвейеризация выполнения команд позволило RISC процессорам резко повыситьпроизводительность. Недостатки данной архитектуры: отсутствие операций регистр-память вызываютнеобходимость подкачки данных командами обмена между регистровым файлом процессора и оперативнойпамятью, а ограниченный формат команд не позволяют минимизировать объем исполняемого кода.Наиболее известны следующие типовые архитектуры RISC процессоров микропроцессоров(МП): PowerPC,PA-RISC, Alpha, SPARC (Scalable Processor Architecture) - МП с изменяемой архитектурой, разработанный в80 годы в Калифорнийском университете (Беркли); MIPS (Mikroprocessor without Interlocked Pipeline Stages)- МП без блокировки конвейера, разработанный в 80 годы в Стенфордском университете, архитектуразапатентована в 1990г.10.
Внеочередное и спекулятивное выполнения команд.Внеочередное выполнение команд – см. Вопрос 6.В конвейерных архитектурах устройство выборки команд является таким же конвейером, как и другиефункциональные устройства. Так, для условного операторы: IF (A<B) GO TO L:S1;L:S2 еще до вычислениязначения условного выражения А<В необходимо решать задачу о заполнении конвейера команд кодами S1или S2 – спекулятивного выполнения программы (чтобы не было пропуска тактов конвейера из-заневерно выбранной ветки, коды которой потребуется убирать из конвейера). Про механизмы предсказанияпереходов см. Вопрос 11.11. Механизмы предсказания переходов.Проблема: при выполнении переходов (условных) надо заранее поместить в конвейер то, что будетвыполняться далее.
Тривиальное решение состоит в выборе кода, текстуально следующего за командойусловного перехода. Для такого оборудования компиляторы могут формировать объектный код сразмещением наиболее вероятно выполняемым фрагменте программы непосредственно за командойусловного перехода. Так, для циклических конструкций, вероятность перехода на повторение цикла выше10вероятности выхода из него. Некоторые системы программирования дают возможность программистууказывать вероятность перехода по метке в условном переходе.Аппаратный механизм учета вероятности перехода состоит из блока предсказания переходов.
Этот блок,кроме (вместо) статически определенных предпочтений для ветвлений, имеет таблицу переходов, в которойхранится история переходов для каждого (в рамках объема таблицы) перехода программы. Большинствасовременных микропроцессоров обещают точность предсказаний переходов этим способом выше 90%.Причина повышенного внимания к этому вопросу обусловлена большими задержками, возникающими приневерном предсказании переходов, что грозит существенной потерей производительности.
Используемые вмикропроцессорах методы предсказания переходов, как уже было сказано, бывают статические идинамические. Как динамический, так и статический подходы имеют свои преимущества и недостатки.Статические методы предсказания используются реже. Такие предсказания делаются компилятором ещедо момента выполнения программы.
Соответствующие действия компилятора можно считать оптимизациейпрограмм. Такая оптимизация может основываться на сборе информации, получаемой при тестовом прогонепрограммы (Profile Based Optimisation, PBO) или на эвристических оценках. Результатом деятельностикомпилятора являются "советы о направлении перехода", помещаемые непосредственно в кодывыполняемой программы. Эти советы использует затем аппаратура во время выполнения.
В случае, когдапереход происходит, или наоборот - как правило, не происходит, советы компилятора часто бывают весьматочны, что ведет к отличным результатам. Преимущество статического подхода - отсутствие необходимостиинтегрировать на чипе дополнительную аппаратуру предсказания переходов.Большинство производителей современных микропроцессоров снабжают их различными средствамидинамического предсказания переходов, производимого на базе анализа "предыстории". Тогда аппаратурасобирает статистику переходов, которая помещается в таблицу истории переходов BHT (Branch HistoryTable).В обоих случаях компилятор не может выработать эффективные рекомендации на этапе трансляциипрограммы.
В то же время схемы динамического предсказания переходов легко справляются с такимизадачами. В этом смысле динамическое предсказание переходов "мощнее" статического. Однако удинамического предсказания есть и свои слабые места - это проблемы, возникающие из-за ограниченностиресурсов для сбора статистики.12.
Управление виртуальной памятью.Адресация памяти производится с точностью до байта, длина адреса, его разрядность, определяетпространство памяти, которое может быть доступно ("видимо") в программе. Так 32 разрядныйвиртуальный адрес охватывает пространство в 4 Гбайта. Это виртуальное пространство математическая память программы может не совпадать с реальным, физическим пространством памятиЭВМ.Адреса виртуального пространства памяти - виртуальные адреса, а адреса физического пространства физические адреса.Механизм виртуальной памяти позволяет:- снять ограничения, связанные с объемом памяти, при разработки алгоритмов;- предоставлять программисту область памяти в виде логически непрерывного пространства;- способствовать более эффективному управлению физической памятью.Процесс преобразование виртуальных адресов в физические при выполнении программы называетсятрансляцией адресов, наиболее распространенный механизм для этого - страничная память.
Механизмывиртуальной памяти реализуется путем разбиения памяти и виртуальной и физической на одинаковыестраницы, обычно, размером 4 Кбайта. Адрес разделяется на две части в соответствии с принятой длинойстраницы: номер страницы (а) и адрес внутри страницы - сдвиг, смещение (б ). Трансляция адресаВиртуальный адресФизический адреса б->с бАппаратно трансляция адресов производится при помощи таблицы страниц. Каждой странице виртуальнойпамяти соответствует строка в таблице страниц, объем которой соответствует числу страниц виртуальнойпамяти. В i строке таблицы хранится: N страницы (блока) физической памяти, которая соответствует даннойвиртуальной, статус доступа (чтение, запись), признак записи. Полный физический адрес получаетсядобавлением к физическому адресу, полученного из таблице страниц, смещения внутри страницы (б).Реальная структура таблицы страниц имеет более сложный вид.13.
Ассоциативная память.Оперативную память (ОП) можно представить в виде двумерной таблицы, строки которой хранят вдвоичном коде команды и данные. Обращения за содержимом строки производится заданием номера(адреса) нужной строки. При записи, кроме адреса строки указывается регистр, содержимое которогоследует записать в эту строку. Запись занимает больше времени, чем чтение.
Пусть в памяти из трех строкхранятся номера телефонов.19240219448304113336167Для получения номера телефона второго абонента следует обратиться: load (2) и получить в регистреответа R = 9448304. Такой вид памяти, при котором необходимая информация определяется номером строкипамяти, называется адресной. Другой вид оперативной памяти – ассоциативной можно рассматривать такжекак двумерную таблицу, но у каждой строки которой есть дополнительное поле, поле ключа.
Например:КлючСодержимоеИванов1924021Петров9448304Сидоров 3336167После обращение к ассоциативной памяти с запросом : load (Петров) для данного примера получим ответ: R= 9448304. Здесь задание координаты строки памяти производится не по адресу, а по ключу. Но присостоянии ассоциативной памяти:КлючСодержимое119240212944830433336167можно получить номер телефона из второй строки запросом: load (2). Таким образом на ассоциативнойпамяти можно моделировать работу адресной. Ассоциативная память имеет очевидное преимущества передадресной, однако, у нее есть большой недостаток - ее аппаратная реализация невозможна для памятибольшого объема.ВОПРОС: Предложите схему реализации модели ассоциативной памяти при помощи адресной.Ответ: Область памяти делим ровно пополам. Первая половина заполняется ключами, втораясоответствующими ключам значениями.
Когда найден ключ, известен его адрес как смещение относительноначала памяти. Тогда адрес содержимого по ключу – это смещение + размер области ключей, то есть адресячейки из второй половины памяти, которая соответствует ключу.14. Назначение и структура кэш-памяти.Для ускорения доступа к оперативной памяти используется буферизация данных и объектного кода впамяти, скорость которой значительно выше основной. Если бы доступ к любым типам данных былслучайным, то буферизация была бы бесполезным.
Эффект от буферизации можно определить среднемувремени выборки: t = t2*p+ t1*(1-p), где t1 - среднее время доступа к данным основной памяти, t2 - среднеевремя доступа к данным из буфера (t2<t1), p - вероятность наличия данного в буфере. Очевидно, среднеевремя зависит от вероятности р и изменяется от среднего времени доступа к основной памяти (при p=0) досреднего времени доступа непосредственно в буфер (при p=1). Кэш (cache, cache memory) память, какправило, на порядок более быстрая, чем основная, размещается в качестве буферной, между процессором иосновной памятью и служит для временного хранения (в рамках своего объема) всех данных, потребляемыхили генерирумых процессором.