2011. Машбук (1114722), страница 16
Текст из файла (страница 16)
контроллеры прямого доступа к памяти(DMA — Direct Memory Access, Рис. 42). Контроллеры данного типа исключилицентральный процессор из обработки потока данных, взяв эту функцию на себя. В данноймодели предполагается, что центральный процессор занимается лишь обработкой потокомуправляющей информации, а данные перемещаются между ВЗУ и ОЗУ уже без егоучастия.ОЗУDMA-контроллер+контроллер илипроцессорввода-выводаВнешнееустройствоЦПРис. 42. Использование контроллера прямого доступа к памяти (DMA) или процессора(канала) ввода-вывода при обмене.И, наконец, последняя модель основана на использовании процессора или каналаввода-вывода (Рис.
42). В этом случае предполагается наличие специализированногокомпьютера, который имеет свой процессорный элемент, свою оперативную память,который функционирует под управлением своей ОС, и этот компьютер располагаетсялогически между центральным процессором и внешними устройствами. В функцииподобных процессоров или каналов входит высокоуровневое управление внешнихустройств.
В этом случае центральный процессор оперирует с внешними устройствами вформевысокоуровневыхзаказовнаобмен.Соответственно,реализациянепосредственного управления конкретным ВЗУ осуществляется в процессоре вводавывода (в частности, в нем может происходить многоуровневая фиксация ошибок, онможет осуществлять аппаратное кэширование обменов к конкретному устройству и пр.).1.2.5 Иерархия памятиРассматривая вычислительную систему (или компьютер) можно выстроитьнекоторую последовательность устройств, предназначенных для хранения информации внекотором ранжированном порядке – иерархии. Этот порядок можно определять на53основе различных критериев: например, по стоимости хранения единицы информации илипо скорости доступа к данным, но так или иначе устройства будут располагатьсяпримерно в одном порядке (Рис.
43).Рис. 43. Иерархия устройств хранения информации.Самой дорогостоящей и наиболее высокопроизводительной памятью являетсяпамять, которая размещается в центральном процессоре (это регистровая память и КЭШпервого уровня (L1)).Следующим звеном в этой иерархии может являться КЭШ второго уровня (L2).Это устройство логически располагается между процессором и оперативной памятью, оноявляется более дешевым и менее скоростным, чем КЭШ первого уровня, но более дорогоеи более скоростное, чем ОЗУ, которое располагается на следующей ступени иерархии.Одним из основных свойств оперативной памяти является то, что в ней располагаетсяисполняемая центральным процессором в данный момент программа, т.е. процессор«берет» очередные операнды и команды для исполнения именно из оперативной памяти.Ниже ОЗУ в приведенной иерархии следуют устройства, предназначенные дляоперативного хранения программной информации пользователей и ОС.
Сначалаестественным образом следуют ВЗУ прямого доступа с внутренней КЭШбуферизацией. Это дорогостоящие устройства, они предназначены для наиболееоперативного обмена. Так, на этих устройствах операционная система может размещатьсвои всякого рода информационные таблицы.Следом за предыдущим типом устройств следуют ВЗУ прямого доступа безКЭШ-буферизации, которые также обеспечивают оперативных доступ, но уже на болеенизких скоростях. На подобных устройствах может находиться файловая системапользователей, код ОС (поскольку для системного устройства, с которого происходитзагрузка ОС, скорость не особенно актуальна в отличие от устройства, хранящего данныеработающей ОС).И в самом низу иерархии располагаются ВЗУ долговременного храненияданных. Это системы резервирования, системы архивирования и т.д. Назначения данногокласса устройств могут быть самыми разными, но все они характеризуются низкойскоростью доступа к данным и достаточно низкой стоимостью хранения единицыинформации.541.2.6 Аппаратная поддержкапрограммированияоперационнойсистемыисистемЕсли мы обратим свое внимание на рассмотрение компьютеров первого поколения,то это были компьютеры (computer — вычислитель) в прямом смысле слова, т.е.производители первых компьютеров ставили перед собой цель создание автоматическихвычислений (причем достаточно в большом количестве).
Но со временем кругпользователей расширялся, что привело к возникновению необходимости в присутствии ваппаратуре компьютера компонентов, предназначенных не столько для организацииавтоматизации вычислений, сколько для организации управления этими вычислениями.Этот раздел посвящен таким компонентам компьютера, которые изначальнопредназначались для аппаратной поддержки функционирования программногообеспечения (ПО), в частности, операционной системы и систем программирования.Мы можем проследить историческую цепочку событий, связанных с развитиемаппаратной поддержки ПО. Первый шаг – это появление программируемого компьютера,т.е. устройства, которое умеет исполнять программу. Второй шаг – это появлениерегистров общего назначения, которые позволили на программном уровне сгладитьразницу производительности центрального процессора и оперативной памяти.
Третий шаг– это появление аппарата прерываний, который позволил организовать асинхроннуюработу с внешними устройствами и т.д. Вообще, концепция аппаратной поддержки ПОвсё более и более распространяется в современной архитектуре. Вспомним, например,теги, которые присутствуют в ячейках памяти. Теги используются как для контролясодержимого, целостности данных, так и для возможности «раскрашивания» данных потипам.
Давайте продолжим эту цепочку в связи со средствами поддержкимультипрограммного режима работы вычислительной системы.1.2.6.1 Требования к аппаратуре для поддержки мультипрограммного режимаВыше уже шла речь о мультипрограммном режиме – режиме работы ВС, прикотором в каждый момент времени в системе могут обрабатываться две и более программпользователей (эти программы иногда называют смесью программ). Каждая из этихпрограмм может находиться в одном из трех состояний: во-первых, программа можетвыполняться на процессоре (т.е. ее команды исполняются центральным процессором), вовторых, программа может ожидать завершения запрошенного ею обмена (дляпродолжения ее выполнения необходимо окончания обмена), и, наконец, в-третьих,программы могут находиться в ожидании освобождения центрального процессора (этипрограммы готовы к выполнению на процессоре, но процессор в данный момент занятиной программой). Мультипрограммный режим — это режим наиболее эффективнойзагрузки центрального процессора.
На сегодняшний день мультипрограммный режимпозволяет обрабатываться на компьютере большому числу процессов (задач),предоставляющих пользователю широкий круг различных услуг.Рассмотрим схему организации мультипрограммного режима (Рис. 44). Пусть вначальный момент времени на процессоре обрабатывается Программа 1, которая внекоторый момент времени t1 выдает запрос на обмен, при этом дальнейшая обработка напроцессоре невозможна до завершения этого обмена.
В случае синхронной организацииПрограмма 1 будет приостановлена, и процессор будет простаивать до завершения обменаПрограммы 1. Соответственно, со временем последовало естественное предложениезапускать на обработку центральным процессором другие программы, пока Программа 1ожидает завершения своего обмена. На Рис. 44 проиллюстрирована ситуация, когда призапуске обмена для Программы 1 на счет ставится Программа 2, которая выполняется донекоторого момента времени t2, после чего она приостанавливается по тем или инымпричинам, и запускается Программа 3.
После завершения обмена на обработку вновьставится Программа 1, сменяя Программу 3 в момент времени t3.55Программа 3Программа 2Программа 1Программа 1t1t2t3время обмена Программы 1(операции ввода-вывода)Рис. 44. Мультипрограммный режим.Естественно, для предложенного подхода возникает вопрос, какие аппаратныесредства необходимы для корректного функционирования указанной системы.
Подкорректным функционированием мы будем понимать, что в независимости от степенимультипрограммирования (от количества обрабатываемых в системе программ) результатработы конкретной программы не зависит от наличия и деятельности других программ.Чтобы понять, какие требования предъявляются подобным системам, разберем сначала,какие трудности и проблемы могут возникнуть при мультипрограммном режиме. Этопроблемы, связанные, в первую очередь, с «общим ведением хозяйства», т.е.
когдаобрабатываемые программы претендуют на доступ к одним и тем же ресурсам ВС.Возникает ситуация конкуренции – поэтому для корректной работы необходимообеспечивать ограничение доступа.Первая проблема, которая может возникнуть, — это влияние программ друг надруга. Очень нежелательна ситуация, когда одна программа может обратиться в адресноепространство другой программы и считать оттуда данные (поскольку все-такинеобходимо обеспечивать конфиденциальность информации), и уж совсем плохо, когдадругая программа может что-то записать в чужое адресное пространство. Соответственно,для корректного мультипрограммирования система должна обеспечивать программамэксклюзивное владение выделенными им участками памяти.
Если возникает задачаобеспечения множественного доступа к памяти, то это должно осуществляться с согласиявладельца этой памятью. Итак, первое требование к системе — это наличие т.н. аппаратазащиты памяти обрабатываемых программ. Это аппаратно-программное средствокомпьютера. Это означает, что операционная система, когда загружает программу воперативную память, настраивает работу процессора, т.е. устанавливает в специальныерегистры процессора режимы, которые ограничивают использование данной программойоперативной памяти. Сразу отметим, что режим защиты памяти нельзя делать чистопрограммным способом, поскольку если данный режим будет обеспечивать операционнаясистема (т.е. каждый раз сравнивать получаемый исполнительный адрес – не вышел ли онза границы дозволенного программе диапазона адресов), то производительностьвычислительной системы в целом будет крайне низкой.Реализация аппарата защиты памяти может быть достаточно простой: в процессоремогут быть специальные регистры (регистры границ), в которых устанавливаютсяграницы диапазона доступных для исполняемой задачи адресов оперативной памяти.Соответственно, когда устройство управления в центральном процессоре вычисляеточередной исполнительный адрес (это может быть адрес следующей команды или жеадрес необходимого операнда), автоматически проверяется, принадлежит ли полученныйадрес заданному диапазону.