Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 11
Текст из файла (страница 11)
25.ОЗУ с расслоением памяти — каждый банк обслуживает отдельный контроллер.Другие свойства и характеристики оперативного запоминающего устройства мы будемрассматривать позднее по мере знакомства с основами архитектуры компьютеров и организациейи функционированием компонентов операционных систем.1.2.3Центральный процессорПроцессор, или центральный процессор (ЦП), компьютера обеспечиваетпоследовательное выполнение машинных команд, составляющих программу, размещенную воперативной памяти. Термин «центральный процессор» соответствует ситуации сегодняшнегодня, когда современный компьютер имеет в своем составе значительное количествоспециализированных управляющих компьютеров.
Подобные компьютеры могут осуществлятьуправление контроллерами устройств, быть встроены в сами устройства, выполнятьспециализированные операции над данными программы.Рассмотрим основные компоненты обобщенной структурной организации центральногопроцессора (1.2.3).КЭШ-памятьКЭШданныхКЭШкомандУУАЛУРегистровая памятьРис. 26.Структура организации центрального процессора.1.2.3.1Регистровая памятьРегистровый файл (register file), или регистровая память, — совокупность устройствпамяти процессора — т.н. регистров, предназначенных для временного хранения управляющейинформации, операндов и/или результатов выполняемых команд.
Регистровый файл обычновключает в себя регистры общего назначения (general-purpose register) и специальныерегистры (special-purpose register).37Регистры общего назначения (РОН) состоят из доступных для программ пользователейрегистров, предназначенныхдля хранения операндов, адресов операндов, результатоввыполнения команд. Скорость доступа к содержимому регистров сравнима со скоростьюобработки информации процессором, поэтому одной из основных причин появления регистровобщего назначения было сглаживание дисбаланса в производительности процессора и скоростидоступа к оперативной памяти. Наиболее часто используемые в программе операнды размещалисьна регистрах общего назначения, тем самым происходило сокращение количества реальныхобращений в оперативную память, что, в итоге, повышало суммарную производительностькомпьютера.
Состав регистров общего назначения существенно зависит от архитектурыконкретного компьютера.Специальныерегистрыпредназначеныдля координацииинформационноговзаимодействия основных компонентов процессора. В их состав могут входить специальныерегистры, обеспечивающие управление устройствами компьютера, регистры, содержимое которыхиспользуется для представления информации об актуальном состоянии выполняемой процессоромпрограммы и т.д. Так же, как и в случае регистров общего назначения, состав специальныхрегистров определяется архитектурой конкретного процессора. К наиболее распространеннымспециальным регистрам относятся: счетчик команд (program counter), указатель стека (stackpointer), слово состояния процессора (processor status word).
Счетчик команд — специальныйрегистр, в котором размещается адрес очередной выполняемой команды программы. Счетчиккоманд изменяется в устройстве управления согласно алгоритму, заложенному в программу. Болееподробно использование счетчика команд проиллюстрируем несколько позднее при рассмотрениирабочего цикла процессора. Указатель стека — регистр, содержимое которого в каждый моментвремени указывает на адрес слова в области памяти, являющегося вершиной стека.
Обычноданный регистр присутствует в процессорах, система команд которых поддерживает работу состеком (операции чтения и записи данных из/в стек с автоматической коррекцией значенияуказателя стека). Слово состояния процессора — регистр, содержимое которого определяетрежимы работы процессора, значения кодов результата операций и т.п.1.2.3.2Устройство управления. Арифметико-логическое устройствоУстройство управления (control unit) — устройство, которое координирует выполнениекоманд программы процессором. Арифметико-логическое устройство (arithmetic/logic unit)обеспечивает выполнение команд, предусматривающих арифметическую или логическуюобработку операндов.
Эти устройства являются своего рода «мозгом» процессора, т.к. именнофункционирование устройства управления и арифметико-логического устройства обеспечиваютвыполнение программы. Рассмотрим упрощенную схему выполнения программы (1.2.3.2) вмодельном компьютере.38АЛУАнализ кода операцииВыполнениекомандыЛогическая илиарифметическаяоперацияВычисление адресовоперандов и их значенийУсловиеложноВыборка команды по значению СчК,формирование адреса следующей команды:СчК = СчК + 1ПередачауправленияАнализ условияпереходаВычислениеисполнительногоадреса операндаAперехода ,СчК = AпереходаУсловиеистинноРис. 27.Схема выполнения программы.Пусть в начальный момент времени в счетчике команд СчК находится адрес первойкоманды программы.
Для упрощения изложения будем считать, что система команд компьютера исистема адресации оперативной памяти таковы, что любая команда размещается в одноммашинном слове, адреса соседних машинных слов отличаются на единицу. Итак, рассмотримпоследовательность действий в устройстве управления процессора при выполнении программы.1. По содержимому счетчика команд СчК выбирается команда для выполнения.
Формируетсяадрес следующей команды: СчК = СчК + 1.2. Осуществляется анализ кода операции:− Если это код арифметической или логической операции, то вычисляютсяисполнительные адреса операндов, выбираются значения операндов, команда передаетсядля исполнения в арифметико-логическое устройство (передается код операции изначения операндов). В арифметико-логическом устройстве происходит выполнениекоманды, а также происходит формирование кода признака результата в регистре словасостояния процессора или в специальном регистре результата. Переход на п.1.2.3.2.− Если это команда передачи управления, то происходит анализ условий перехода(анализируется содержимое кода признака результата предыдущей арифметикологической команды с условиями перехода, соответствующими команде).
Если условиеперехода не выполняется, то переход на п.1.2.3.2. Иначе, вычисляется исполнительныйадрес операнда Аперехода , затем: СчК = Аперехода, переход на п.1.2.3.2.− Если команда загрузки данных из памяти в регистры общего назначения, то вычисляютсяисполнительные адреса операндов, выбираются значения операндов из памяти, значениязаписываются в соответствующие регистры. Переход на п.1.2.3.2.Последовательность действий, происходящая в процессоре при выполнении программы,называется рабочим циклом процессора.
По ходу рассмотрения материала мы будем уточнятьрабочий цикл нашего обобщенного модельного компьютера.1.2.3.3КЭШ-памятьКлючевой проблемой функционирования компьютеров является проблема несоответствияпроизводительности центрального процессора и скорости доступа к информации, размещенной воперативной памяти. Мы рассмотрели аппаратные и программно-аппаратные средства,применение которых позволяет частично сократить этот дисбаланс.
Однако, ни организациярасслоения памяти, ни использование регистров общего назначения для размещения наиболеечасто используемых операндов не предоставили кардинального решения проблемы. Решение,которое на сегодняшний день является наиболее эффективным, основывается на аппаратныхсредствах, позволяющих при выполнении программы автоматически минимизировать количество39реальных обращений в оперативную память за операндами и командами программы за счеткэширования памяти — размещения части данных в более высокоскоростном запоминающемустройстве. Таким средством является КЭШ-память (cache memory) — высокоскоростноеустройство хранения данных, используемое для буферизации работы процессора с оперативнойпамятью. В общем случае, кэш представляет собою аппаратную «емкость», в которойаккумулируются наиболее часто используемые данные из оперативной памяти.
Обмен даннымипри выполнении программы (чтение команд, чтение значений операндов, запись результатов)происходит не с ячейками оперативной памяти, а с содержимым КЭШа. При необходимости изКЭШа «выталкивается» часть данных в ОЗУ или загружаются из ОЗУ новые данные. Варьируяразмеры КЭШа, можно существенно минимизировать частоту реальных обращений к оперативнойпамяти. Размещение и команд, и данных в одном КЭШе может приводить к тому, что команды иданные начинают вытеснять друг друга, увеличивая при этом обращения к оперативной памяти.Для исключения недетерминированной конкуренции в КЭШе между командами программы иобрабатываемыми данными современные компьютеры имеют два независимых КЭШа: КЭШданных и КЭШ команд, каждый из которых работает со своим потоком информации — потокомкоманд и потоком операндов.ОЗУКЭШhitтэгиcache missОбновлениеКЭШаУУРис. 28.Общая схема работы КЭШа.Общая организация КЭШа следующая (1.2.3.3).1.
Условно, вся память разделяется на блоки одинакового размера. Обмен данными междуКЭШем и оперативной памятью осуществляется блоками (размер блока можетсоответствовать машинному слову или группе машинных слов). Здесь мы можем видетьвозможное проявление преимущества использования памяти с расслоением, так как загрузкаблока из оперативной памяти в КЭШ осуществляется с использованием параллелизма работы«расслоенной» оперативной памяти.2.
Каждому блоку КЭШа ставится в соответствие адресный тег, по содержимому котороговозможно однозначно адресовать содержимое блока. Таким образом, после вычисленияисполнительного адреса операнда или команды устройство управления может определить,находится ли соответствующая информация в одном из блоков КЭШ-памяти или нет. Фактнахождения искомых данных в КЭШе называется попаданием (hit). Если искомых данных нетв КЭШе, то фиксируется промах (cache miss).3.