2011. Машбук (1114722), страница 12
Текст из файла (страница 12)
Более подробно использование счетчика команд проиллюстрируем несколькопозднее при рассмотрении рабочего цикла процессора. Указатель стека — регистр,содержимое которого в каждый момент времени указывает на адрес слова в областипамяти, являющегося вершиной стека. Обычно данный регистр присутствует в38процессорах, система команд которых поддерживает работу со стеком (операции чтения изаписи данных из/в стек с автоматической коррекцией значения указателя стека). Словосостояния процессора — регистр, содержимое которого определяет режимы работыпроцессора, значения кодов результата операций и т.п.1.2.3.2 Устройство управления.
Арифметико-логическое устройствоУстройство управления (control unit) — устройство, которое координируетвыполнение команд программы процессором. Арифметико-логическое устройство(arithmetic/logic unit) обеспечивает выполнение команд, предусматривающихарифметическую или логическую обработку операндов. Эти устройства являются своегорода «мозгом» процессора, т.к. именно функционирование устройства управления иарифметико-логического устройства обеспечивают выполнение программы.
Рассмотримупрощенную (без анализа нештатных ситуаций) схему выполнения процессоромпрограммы (Рис. 27) в модельном компьютере.Анализ кода операцииАЛУВыполнениекомандыЛогическая илиарифметическаяоперацияВычисление адресовоперандов и их значенийУсловиеложноВыборка команды по значению СчК,формирование адреса следующей команды:СчК = СчК + 1ПередачауправленияАнализ условияпереходаВычислениеисполнительногоадреса операндаAперехода,СчК = AпереходаУсловиеистинноРис. 27. Алгоритм выполнения процессором программы (рабочий цикл ЦП).Пусть в начальный момент времени в счетчике команд СчК находится адреспервой команды программы. Для упрощения изложения будем считать, что системакоманд компьютера и система адресации оперативной памяти таковы, что любая командаразмещается в одном машинном слове и адреса соседних машинных слов отличаются наединицу.
Итак, рассмотрим последовательность действий в устройстве управленияпроцессора при выполнении программы.1.По содержимому счетчика команд СчК из ОП выбирается команда длявыполнения. Формируется адрес следующей команды: СчК = СчК + 1.2.Осуществляется анализ кода операции:Если это код арифметической или логической операции, то вычисляютсяисполнительные адреса операндов, выбираются значения операндов, команда передаетсядля исполнения в арифметико-логическое устройство (передается код операции изначения операндов).
В арифметико-логическом устройстве происходит выполнениекоманды, а также происходит формирование кода признака результата в регистре словасостояния процессора или в специальном регистре результата. Переход на п.1.Если это команда передачи управления, то происходит анализ условий перехода(анализируется содержимое кода признака результата предыдущей арифметикологической команды с условиями перехода, соответствующими команде).
Если условиеперехода не выполняется, то переход на п.1. Иначе, вычисляется исполнительный адресоперанда Аперехода , затем: СчК = Аперехода и осуществляется переход на п.1.39Если команда загрузки данных из памяти в регистры общего назначения, товычисляются исполнительные адреса операндов, выбираются значения операндов изпамяти, значения записываются в соответствующие регистры.
Переход на п.1.Последовательность действий, происходящая в процессоре при выполнениипрограммы, называется рабочим циклом процессора. По ходу рассмотрения материаламы будем уточнять рабочий цикл нашего обобщенного модельного компьютера.1.2.3.3 КЭШ-памятьКлючевой проблемой функционирования компьютеров является проблеманесоответствия производительности центрального процессора и скорости доступа кинформации, размещенной в оперативной памяти.
Мы рассмотрели аппаратные ипрограммно-аппаратные средства, применение которых позволяет частично сократитьэтот дисбаланс. Однако, ни организация расслоения памяти, ни использование регистровобщего назначения для размещения наиболее часто используемых операндов непредоставили кардинального решения проблемы. Решение, которое на сегодняшний деньявляется наиболее эффективным, основывается на аппаратных средствах, позволяющихпри выполнении программы автоматически минимизировать количество реальныхобращений в оперативную память за операндами и командами программы за счеткэширования памяти — размещения части данных в более высокоскоростномзапоминающем устройстве.
Таким средством является КЭШ-память (cache memory) —высокоскоростное устройство хранения данных, используемое для буферизации работыпроцессора с оперативной памятью. В общем случае, кэш представляет собою аппаратную«емкость», в которой аккумулируются наиболее часто используемые данные изоперативной памяти. Скорость доступа к информации, размещённой в КЭШе, соизмеримасо скоростью обработки информации в ЦП.
Обмен данными при выполнении программы(чтение команд, чтение значений операндов, запись результатов) происходит не сячейками оперативной памяти, а с содержимым КЭШа. При необходимости из КЭШа«выталкивается» часть данных в ОЗУ или загружаются из ОЗУ новые данные. Варьируяразмеры КЭШа, можно существенно минимизировать частоту реальных обращений коперативной памяти. Размещение и команд, и данных в одном КЭШе может приводить ктому, что команды и данные начинают вытеснять друг друга, увеличивая при этомобращения к оперативной памяти. Для исключения недетерминированной конкуренции вКЭШе между командами программы и обрабатываемыми данными современныекомпьютеры имеют два независимых КЭШа: КЭШ данных и КЭШ команд, каждый изкоторых работает со своим потоком информации — потоком команд и потокомоперандов.Рис.
28. Общая схема работы КЭШа.40Общая схема работы КЭШа следующая (Рис. 28).1.Условно, вся память разделяется на блоки одинакового размера. Обменданными между КЭШем и оперативной памятью осуществляется блокамификсированного объёма. Здесь мы можем видеть возможное проявление преимуществаиспользования памяти с расслоением, так как загрузка блока из оперативной памяти вКЭШ осуществляется с использованием параллелизма работы «расслоенной» оперативнойпамяти.2.Каждый блок имеет спецификатор доступа – тэг, в котором находитсяслужебная информация, характеризующая данный блок. В тэге может содержатьсяинформация о том, какой области ОП соответствует содержимое данного блока, занят илисвободен блок, производились изменения в данном блоке или нет. Когда процессорунужно обратиться за командой или за данными в ОП, сначала происходит обращение кКЭШу.
По содержимому адресного тэга можно однозначно адресовать содержимое блока.Анализ тэгов блоков КЭШа производится аппаратно. Таким образом, после вычисленияисполнительного адреса операнда или команды устройство управления может определить,находится ли соответствующая информация в одном из блоков КЭШ-памяти или нет.Факт нахождения искомых данных в КЭШе называется попаданием (hit) – в этом случаеданные берутся из КЭШа, и обращение в ОП не осуществляется. Если искомых данныхнет в КЭШе, то фиксируется промах (cache miss).3.При возникновении промаха происходит вытеснение – обновлениесодержимого КЭШа. Для этого выбирается блок-претендент на вытеснение, т.е.
блок,содержимое которого будет заменено. Стратегия этого выбора зависит от конкретнойорганизации процессора. Существуют КЭШи, вытеснение блоков которыхосуществляется случайным образом, т.е. номер блока, который должен быть вытеснен,определяется с использованием встроенного генератора случайных чисел.
Альтернативойслучайного вытеснения является вытеснение наименее «популярного» блока КЭШа, т.е.блока, к содержимому которого происходило наименьшее число обращений (LRU —Least-Recently Used).4.Отдельно следует обратить внимание на организацию вытеснения блока вКЭШе данных, т.к. содержимое блоков КЭШа может не соответствовать содержимомупамяти (это возникает при обработке команд записи данных в память). В этом случаетакже возможно использование нескольких стратегий вытеснения.
Первая — сквозноекэширование (write-through caching): при выполнении команды записи данныхобновление происходит как в КЭШе, так и в оперативной памяти. Таким образом, привытеснении блока из КЭШа происходит только загрузка содержимого нового блока.Данная стратегия оправдана, т.к. статистические исследования показывают, что частотачтения данных превосходит частоту их записи на порядок. Другой стратегией являетсякэширование с обратной связью (write-back caching), суть которой заключается виспользовании специального тега модификации (dirty bit). При выполнении командызаписи по адресу, содержимое которого кэшируется в одном из блоков, происходитобновление соответствующей этому адресу информации только в блоке КЭШа, а такжеустановка в блоке тега модификации. Соответственно, при вытеснении блокаосуществляется контроль за содержимым тега.
Если тег модификации установлен, тосодержимое блока перед вытеснением «сбрасывается» в память. Тем самымминимизируется частота выполнения операции записи в память.Использование КЭШ-памяти позволяет получить следующие преимущества. Вопервых, сокращается количество обращений к ОЗУ – обращений, как по выборке команд,так и по выборке операндов.