Околения компьютеров
Скачать 1.67 Mb.
|
Процессор или центральный процессор (ЦП) компьютера обеспечивает последовательное выполнение машинных команд, составляющих программу, размещенную в оперативной памяти. Структура организации центрального процессора Регистровая память – совокупность устройств памяти ЦП,предназначенных для временного хранения операндов, информации, результатов операций. Устройство управления (control unit)– координирует выполнение команд программы процессором. Арифметико-логическое устройство (arithmetic/logic unit) –обеспечивает выполнение команд, предусматривающих арифметическую или логическую обработку операндов. Рабочий цикл процессора – последовательность действий, происходящая в процессоре во время выполнения программы. Рабочий цикл процессора определяет основной алгоритм работы процессора и его устройств при выполнении программы. В регистре счетчика команд находится адрес первой команды программы. 1. по содержимому счетчика команд выбирается машинное слово, в котором находится очередная команда. 2. счетчик команд увеличиваем на 1. 3. анализируем код операции команды. Если код операции команды некорректный, то происходит прерывание. 4. Если код операции корректный, то происходит анализ типа этой операции. 5. Вычисление адресов операндов. 6. Выбираются значения операндов, которые помещаются в арифметико-логическое устройство. 7. Выполнение команды. Если выполняемая команда есть команда передачи управления, то она передается в устройство управления и, если условия выполняются, то вычисляется исполнительный адрес (адрес перехода), который заносится в счетчик команд.Переход на начало, к шагу 1. Билет №7 Основы архитектуры компьютера. Оперативное запоминающее устройство. Расслоение памяти. ОЗУ - устройство, предназначенное для хранения оперативной информации.(ОЗУ – хранение программы, выполняющейся в компьютере) В ОЗУ размещается исполняемая в данный момент программа и используемые ею данные. ОЗУ состоит из ячеек памяти, содержащей поле машинного слова и поле служебной информации. Машинное слово – поле программно изменяемой информации, в машинном слове могут располагаться машинные команды (или части машинных команд) или данные, с которыми может оперировать программа. Машинное слово имеет фиксированный для данной ЭВМ размер (обычно размер машинного слова – это количество двоичных разрядов, размещаемых в машинном слове). Служебная информация (иногда ТЭГ) – поле ячейки памяти, в котором схемами контроля процессора и ОЗУ автоматически размещается информация, необходимая для осуществления контроля за целостностью и корректностью использования данных, размещаемых в машинном слове. В поле служебной информации могут размещаться: разряды контроля четности машинного слова (при записи машинного слова подсчет числа единиц в коде машинного слова и дополнение до четного или нечетного в контрольном разряде), при чтении контроль соответствия; разряды контроля данные-команда (обеспечение блокировки передачи управления на область данных программы или несанкционированной записи в область команд); машинный тип данных – осуществление контроля за соответствием машинной команды и типа ее операндов; Конкретная структура, а также наличие поля служебной информации зависит от конкретной ЭВМ. N-1 1 Служ.инф. Машинное слово 0 В ОЗУ все ячейки памяти имеют уникальные имена, имя - адрес ячейки памяти. Обычно адрес – это порядковый номер ячейки памяти (нумерация ячеек памяти возможна как подряд идущими номерами, так и номерами, кратными некоторому значению). Доступ к содержимому машинного слова осуществляется посредством использования адреса. Обычно скорость доступа к данным ОЗУ существенно ниже скорости обработки информации в ЦП. Необходимо, чтобы итоговая скорость выполнения команды процессором как можно меньше зависела от скорости доступа к коду команды и к используемым в ней операндам из памяти. Это составляет проблему, которая системным образом решается на уровне архитектуры ЭВМ. 1. Расслоение ОЗУ – один из аппаратных путей решения проблемы дисбаланса в скорости доступа к данным, размещенным в ОЗУ и производительностью ЦП. Суть расслоения ОЗУ состоит в следующем. Все ОЗУ состоит из k блоков, каждый из которых может работать независимо. Ячейки памяти распределены между блоками таким образом, что у любой ячейки ее соседи размещаются в соседних блоках. Контроль за целостностью данных. 2. Контроль доступа к командам/данными. Контроль осуществляется при помощи тегов. Если команда захочет рассмотреть данные в качестве команда то будет прерывание. Происходит проверка на семантическую правильность. 3. Контроль доступа к машинным типам данных. Тип данных – определенный формат данных, с конкретным набором операций, известных для этого формата. Наличие и формат тега зависит от реализации. Доступ к содержимому машинного слова может быть прямым или косвенным. Производительность оперативной памяти - скорость доступа процессора к данным, размещенным в ОЗУ: •время доступа (access time- taccess) - время между запросом на чтение слова из оперативной памяти и получением содержимого этого слова. •длительность цикла памяти (cycle time - tcycle) - минимальное время между началом текущего и последующего обращения к памяти. (tcycle>taccess) Расслоение памяти Расслоение ОЗУ - один из путей аппаратного решения проблемы дисбаланса между скоростью доступа к данным, находящимся в ОП, и производительностью процесса. Так же используются контроллеры. Использование расслоения памяти. Физически ОЗУ представимо в виде объединения k устройств, способных хранить одинаковое количество информации и способных взаимодействовать с процессором независимо друг от друга. При этом адресное пространство ВС организовано таким образом, что подряд идущие адреса, или ячейки памяти, находятся в соседних устройствах (блоках) оперативной памяти. Программа состоит (в большей степени) из линейных участков. Если использовать этот параллелизм, то можно организовать в процессоре еще один буфер, который организован так же, но в котором размещаются машинные команды. За счет того, что есть параллельно работающие устройства, то этот буфер автоматически заполняется вперед. Т.е. за одно обращение можно прочесть k машинных слов и разместить их в этом буфере. Далее, действия с буфером команд похожи на действия с буфером чтения/записи. Когда нужна очередная команда (ее адрес находится в счетчике команд), происходит ее поиск (по адресу) в буфере, и если такая команда есть, то она считывается. Если такой команды нет, то опять-таки работает внутренний алгоритм выталкивания строки, новая строка считывается из памяти и копируется в буфер команд. Расслоение памяти в идеале увеличивает скорость доступа в k раз, плюс буфер команд позволяет сократить обращения к ОЗУ. Билет №8 Основы архитектуры компьютера. Основные компоненты и характеристики. Кэширование ОЗУ Вернемся к проблеме дисбаланса скорости доступа к ОЗУ и скорости обработки информации ЦП. Первое решение – использовать программные средства. Программист может разместить наиболее часто используемые операнды в РОН, тем самым сокращается количество «медленных» обращений в ОЗУ. Результат решения во многом зависит от качества программирования. Второе решение – использование в архитектуре ЭВМ специальных регистровых буферов или КЭШ памяти. Регистровые буфера или КЭШ память предназначены для разрешения проблемы несоответствия скоростей работы ОЗУ и ЦП, на аппаратном уровне, т.е. эта форма оптимизации в системе организована аппаратно и работает всегда, вне зависимости от исполняемой программы. Следует отметить, что результат этой оптимизации, в общем случае зависит от характеристик программы (об этом несколько позднее). Традиционно, в развитых ЭВМ используется аппаратная буферизация доступа к операндам команд, а также к самим командам. Буферизация работы с операндами Буфер операндов – аппаратная таблица, логически являющаяся компонентом ЦП (физически это может быть и отдельное от ЦП устройство), призванная аппаратно минимизировать количество обращений к «медленному» ОЗУ при записи и чтении операндов. Таблица состоит из фиксированного числа строк. Каждая строка имеет следующие поля: адрес – физический адрес машинного слова в ОЗУ; значение – значение машинного слова, соответствующего адресу; признак изменения – код, характеризующий факт изменения поля значения (в соответствующей ячейке ОЗУ значение отличается от значения в таблице); код старения – код, характеризующий интенсивность обращений к данной строке. По значению поля определяются наиболее «популярные» строки. Конкретный алгоритм изменения данного поля зависит от ЭВМ. Примерные алгоритмы использования буфера операндов Алгоритм для чтения данных из ОЗУ Пусть имеется команды чтения данных из машинного слова по физическому адресу Aисп. 1. Поиск по таблице строки, содержащей адрес, совпадающий с Aисп. Если такой строки нет, то на п. 3. Код стирания Признак изменения Значение Адрес 2. Происходит обновление кода старения. Результатом команды чтения является содержимое поля «Значение». 3. По значениям поля «Код старения» осуществляется поиск строки, используемой наименее интенсивно. 4. Анализируется код изменения. Если значение изменялось в таблице, то происходит запись значения по адресу в ОЗУ. 5. Считывается машинное слово из ОЗУ по адресу Aисп и заполняется данная строка. 6. Считанное значение является результатом выполнения команды чтения. Алгоритм для записи данных в ОЗУ Пусть имеется команда записи значения в машинное слово по физическому адресу Aисп. 1. Поиск по таблице строки, содержащей адрес, совпадающий с Aисп. Если такой строки нет, то на п. 3. 2. Значение записывается в поле «Значение». Происходит обновление полей «Признак изменения», «Код старения». Выполнения команды записи завершено. 3. По значению поля «Код старения» осуществляется поиск строки, используемое наименее интенсивно. 4. Анализируется код изменения. Если значение изменялось в таблице, то происходит запись значения по адресу в ОЗУ. 5. Происходит обновление содержимого полей строки в соответствии с командой записи. Выполнение команды завершено. Буферизация выборки команд Буфер команд – минимизация обращений в ОЗУ за машинными командами. Интерпретация одноименных полей аналогична буферу операндов. Примерный алгоритм использования Центральному процессору требуется для выполнения машинная команда, размещенная по физическому адресу ОЗУ Aисп. 1. Поиск по таблице строки, содержащей Aисп. Если такой не то на п. 3. 2. Обновление поля «Код старения», чтение поля «Значение» и передача его процессору для исполнения. 3. Поиск наименее интенсивно используемой строки. Чтение машинного слова из ОЗУ по адресу Aисп и заполнение всех полей строки. Передача процессору значения для исполнения. Конкретные реализация и алгоритмы зависят от архитектуры ЭВМ. Возможно, например, использование одного буфера. (Регистры буферной памяти (Cache, КЭШ). Код старения Значение Адрес Следующая группа регистров — регистры, относящиеся к т.н. буферной памяти. Мы возвращаемся к проблеме взаимодействия процессора и оперативной памяти и сглаживанию скоростей доступа в оперативную память. Предположим, у нас есть некоторая программа, которая производит вычисление некоторого выражения, при этом, процесс вычисления этого выражения будет представим следующим образом. В какие-то моменты идут обращения за операндами в оперативную память, в какие-то моменты обработанные данные записываются в оперативную память. Есть один из нескольких путей, которые сглаживают несоответствие скоростей процессора и оперативной памяти, который заключается в сокращении реальных обращений к оперативной памяти. Процессоры содержат быстродействующую регистровую память, призванную буферизовать обращения к оперативной памяти. Алгоритм чтения из оперативной памяти следующий: Проверяется наличие в специальном регистровом буфере строчки, в которой находится исполнительный адрес, совпадающий с исполнительным адресом требуемого операнда. Если такая строчка имеется, то соответствующее этому адресу значение, считается значением операнда и передается в процессор для обработки (т.е. обращение в оперативную память не происходит). Если такой строчки нет, то происходит обмен с оперативной памятью, и копия полученного значения помещается в регистровый буфер и помечается исполнительным адресом этого значения в оперативной памяти. Содержимое операнда поступает в процессор для обработки. При этом решается проблема размещения новой строчки. Аппаратно ищется свободная строка (но она может быть только в начале работы машины), и если таковая не найдена, запускается аппаратный процесс вытеснения из этого буфера наиболее “старой” строчки. “Старость” определяется по некоторому предопределенному критерию. Например, признаком старения может быть количество обращений к этому буферу, при котором нет обращений к этой строчке. В каждом таком случае число в третьем столбце таблицы увеличивается на единицу. Короче говоря, аппаратура решает, какую из строк надо вытолкнуть из таблицы, чтобы на ее место записать новое содержимое. При этом учитывается информация о том, были ли обращения к данной строке с использованием команд записи в память. Если такие обращения были, то перед выталкиванием происходит запись в ОЗУ по исполнительному адресу содержимого нашей строчки. Алгоритм записи в оперативную память симметричен. Когда в программе встречается команда записи операнда в память, аппаратура выполняет следующие действия. Проверяется наличие в буфере строки с заданным исполнительным адресом. Если такая строка есть, то в поле “Содержимое” записывается новое значение и аппаратно корректируется признак старения строк. Если такой строчки нет, то запускается описанный выше процесс выталкивания, и затем информация размещается в освободившейся строке. Этот буфер чтения/записи служит достаточно мощным средством для минимизации обращений к ОЗУ. Наибольший эффект достигается при небольших циклах, когда все операнды размещаются в буфере, и после этого циклический процесс работает без обращений к ОЗУ. Иногда эти буфера называют КЭШ-буферами, а также ассоциативной памятью, потому что доступ к этой памяти осуществляется не по адресу (как в ОЗУ), а по значению поля. Реально, все механизмы могут быть устроены иначе, чем мы здесь изучаем, т.к. мы изучаем некоторую обобщенную систему. Билет №9 Основы архитектуры компьютера. Аппарат прерываний. Последовательность действий в вычислительной системе при обработке прерываний Аппарат прерываний ЭВМ - возможность аппаратуры ЭВМ стандартным образом обрабатывать возникающие в вычислительной системе события. Данные события будем называть прерываниями. Определение. Последовательность действий при обработке Итак, прерывание - одно из событий в вычислительной системе, на возникновение которого предусмотрена стандартная реакция аппаратуры ЭВМ. Количество различных типов прерываний ограничено и определяется при разработке аппаратуры ЭВМ. в н у т р е н н и е п е р е п о л н е н и е А У д е л е н и е н а 0 з а щ и т а д а н н ы х п р е р ы в а н и я в н е ш н и е у п р а в л я ю щ и е в о з д е й с т в и я о т В У Прерывания можно разделить на две группы внутренние и внешние. Внутренние прерывания инициируются схемами контроля работы процессора. Это может быть реакция ЦП на программную ошибку. Например, деление на ноль. Внешние прерывания – это средство, позволяющее ЭВМ корректно взаимодействовать с внешними устройствами. Это может быть событие, связанное с поступлением новой информации от ВУ или возникновение ошибки во ВУ. Аппарат прерываний ЦП обеспечивает стандартную реакцию аппаратуры при возникновении прерывания. Тем самым обеспечивается возможность корректной обработки прерываний в ВС. Рассмотрим обобщенную (и упрощенную) модель последовательности действий, происходящих в ВС при возникновении прерывания. я д р о п р о г р а м м а (п р о ц е с с ) т о ч к а в о з н и к н о в е н и я п р е р ы в а н и я т о ч к а в х о д а в о б р а б о т ч и к п р е р ы в а н и й Э т а п а п п а р а т н о й о б р а б о т к и п р е р ы в а н и й Б л о к и р о в к а п р е р ы в а н и й " М а л о е у п р я т ы в а н и е " П е р е д а ч а у п р а в л е н и я н а т о ч к у в х о д а в о б р а б о т ч и к п р е р ы в а н и й Э т а п п р о г р а м м н о й о б р а б о т к и п р е р ы в а н и й А н а л и з и п р е д в а р и т е л ь н а я о б р а б о т к а п р е р ы в а н и я П о л н о е у п р я т ы в а н и е " О т к р ы т и е " п р е р ы в а н и й З а в е р ш е н и е о б р а б о т к и п р е р ы в а н и я При обработке события, связанного с возникновением прерывания на первом этапе работает аппаратура ВС. При этом аппаратно (без участия программы) выполняются следующие действия: 1. Включается режим блокировки прерываний. При этом режиме в системе запрещается инициализация новых прерываний. Возникающие в это время прерывания могут либо игнорироваться, либо откладываться (зависит от конкретной аппаратуры ЭВМ и типа прерывания). 2. Обработка прерывания предполагает сохранение возможности корректного продолжения прерванной программы (процесса) с точки прерывания. Поэтому следующий шаг аппаратной обработки – “малое упрятывание“ – копирование в специальную регистровую память ЦП (регистровый буфер, таблицу) минимального количества регистров и настроек ЦП, достаточных для запуска программы ОС, обрабатывающей прерывания. Это заведомо счетчик команд, регистр результата, некоторое количество регистров общего назначения. Следует отметить, что возможно организовать копирование (или упрятывание) всех регистров, используемых программой, но это, в общем случае, нецелесообразно, так как может потребовать значительных объемов регистровой памяти, а также потребует значительного времени работы в режиме блокировки прерываний. 3. Следующим шагом является переход на программный режим обработки прерываний. Для этих целей в аппаратуру ВМ обычно жестко “зашивается” адрес точки в ОЗУ, начиная с которой предполагается размещение части ОС, занимающейся программной обработкой прерываний – точка входа в обработчик прерываний. (Возможно определение не одной, а группы таких точек – по одной на тип или группу прерываний). Переход на программный этап обработки прерываний есть передача управления на точку входа в обработчик прерываний. Этот переход осуществляется не программно (за счет исполнения одной из команд передачи управления), а аппаратно (например, аппаратной записью в счетчик команд адреса точки входа). Второй этап. Программная обработка прерывания. Управление передано на точку ОС, занимающуюся обработкой прерывания. При входе в эту точку часть ресурсов ЦП, используемых программами освобождена (результат малого упрятывания). Поэтому будет запущена программа ОС, которая может использовать только освобожденные малым упрятыванием ресурсы ЦП (перечень доступных в этот момент ресурсов – характеристика аппаратуры). Выполняется следующая последовательность действий: 1. Анализ и предварительная обработка прерывания. Происходит идентификация типа прерывания, определяются причины. Если прерывание " короткое" обработка не требует дополнительных ресурсов ЦП и времени, то прерывание обрабатывается, происходит разблокировка прерываний и возврат в первоначальную программу (не вдаваясь в подробности, эта последовательность действий организована так, что гарантируется корректное восстановление всех регистров и настроек ЦП). Если прерывание требует использования всех ресурсов ЦП, то переходим к следующему шагу. 2. “Полное упрятывание” осуществляется полное упрятывание состояния всех ресурсов ЦП, использовавшихся прерванной программой (все регистры, настройки, режимы и т.д.) в специальную программную таблицу (в контекст процесса или программы – о нем позже). То есть в данную таблицу копируется содержимое аппаратной таблицы, содержащей сохраненные значения ресурсов ЦП после малого упрятывания, а также копируются все оставшиеся ресурсы ЦП используемые программно, но не сохраненные при малом упрятывании. После данного шага программе обработки прерываний становятся доступны все ресурсы ЦП, а прерванная программа получает статус ожидания завершения обработки прерывания. В общем случае программ или процессов, ожидающих завершения обработки прерывания может быть произвольное количество. 3. До данного момента времени все действия происходили в режиме блокировки прерываний. Почему? Потому что режим блокировки прерываний – единственная гарантия оттого, что не придет новое прерывание и при его обработке не потеряются данные, необходимые для продолжения прерванной программы (регистры, режимы, таблицы ЦП). После полного упрятывания разблокируются прерывания (то есть включается стандартный режим при котором возможно появление прерываний). 4. Заключительный этап – завершение обработки прерывания. Вот упрощенная схема обработки прерывания, в реальных системах она может иметь отличия и быть сложнее. Но основные идеи обычно остаются неизменными. Аппарат прерываний позволяет системе фиксировать и корректно обрабатывать различные события, возникающие как внутри системы, так вне нее. |