Главная » Все файлы » Просмотр файлов из архивов » Документы » В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования

В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования.doc), страница 33

2019-04-28СтудИзба

Описание файла

Документ из архива "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования.doc", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования"

Текст 33 страницы из документа "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования"

Механизм защиты памяти на современных ЭВМ устроен весьма сложно и часто связан с механизмом так называемой виртуальной памяти, с которым Вы познакомитесь в следующем семестре. Сейчас мы рассмотрим одну из простейших реализаций механизма защиты памяти, так эта защита была сделана на некоторых первых ЭВМ 3-го поколения, способных работать в мультипрограммном режиме.

В центральный процессор добавляются два новых регистра защиты памяти, обозначим их Анач и Акон. На каждый из этих регистров можно загрузить любой адрес оперативной памяти. Предположим теперь, что после загрузки программы в оперативную память она занимает сплошной участок памяти с адресами от 20000010 до 50000010 включительно. Тогда загрузчик, перед передачей управления на первую команду программы (у нас это часто была команда с меткой Start), присваивал регистрам защиты памяти соответственно значения

Анач:=20000010 и Акон:=50000010

Далее, в центральный процессор добавлена способность, перед каждым обращением в оперативную память по физическому адресу Афиз автоматически проверять условие

Анач  Афиз  Акон

Если условие истинно, т.е. программа обращается в свою область памяти, выполняется требуемое обращение к памяти по записи или чтению данных. В противном случае доступ в оперативную память не производится и вырабатывается сигнал прерывания по событию "попытка нарушения защиты памяти".

Описанный механизм защиты памяти очень легко реализовать, однако он обладает существенным недостатком: каждая программа может занимать только один сплошной участок в оперативной памяти. В то же время, как мы знаем, архитектура нашего компьютера допускает, чтобы каждый сегмент программы мог быть размещён на любом свободном месте оперативной памяти. В современных ЭВМ реализован специальный механизм виртуальной памяти, который позволяет выделять для программы любые участки адресов памяти, независимо от того, заняты ли эти, как говорят, логические адреса другими программами или нет.

14.1.3. Аппарат привилегированных команд.

Сейчас мы рассмотрим ещё одно необходимое свойство аппаратуры, без которого невозможно реализовать мультипрограммный режим работы ЭВМ. Это свойство заключается в следующем: все команды, которые может выполнять центральный процессор, разбиваются на два класса. Команды из одного класса называются обычными командами или командами пользователя, а команды из другого класса – привилегированными или запрещёнными командами.

Далее, в центральном процессоре располагается специальный одноразрядный регистр режима работы, который может, естественно, принимать только два значения. Значение этого регистра и определяют тот режим, в котором в данный момент работает центральный процессор: обычный режим (или режим пользователя) или привилегированный режим.76 В привилегированном режиме центральному процессору разрешается выполнять все команды языка машины, а в режиме пользователя – только обычные (не привилегированные) команды. При попытке выполнить привилегированную команду в пользовательском режиме вырабатывается сигнал прерывания, а сама команда, естественно, не выполняется. Из этого правила выполнения команд легко понять и другое название для привилегированных команд – запрещённые команды, так как их выполнение запрещено в режиме пользователя. Объясним теперь, почему без аппарата привилегированных команд невозможно реализовать мультипрограммный режим работы ЭВМ.

Легко понять, что, например, команды, которые заносят на регистры защиты памяти Анач и Акон новые значения, должны быть привилегированными. Действительно, если бы это было не так, то любая программа могла бы занести на эти регистры адреса начала и конца оперативной памяти, после чего получила бы возможность записывать данные в любые области памяти.

Привилегированными должны быть и все команды, которые обращаются к внешним (периферийным) устройствам. Например, нельзя разрешать запись на диск в режиме пользователя, так как диск – это тоже общая память для всех программ, только внешняя, и одна программа может испортить на диске данные, принадлежащие другим программам. То же самое относится и к печатающему устройству: если разрешить всем программам бесконтрольно выводить свои данные на печать, то, конечно, разобраться в том, что же получится на бумаге, будет невозможно.

Итак, в мультипрограммном режиме программе пользователя запрещается выполнять команды, работающие с внешними устройствами (дисками, принтерами, линиями связи и т.д.). Как же быть, если программе необходимо, например, считать данные из своего файла на диске в оперативную память? Выход один – программа пользователя должна обратиться к служебной процедуре с просьбой, выполнить для неё ту работу, которую сама программа пользователя сделать не в состоянии. Служебная программа, естественно, должна работать в привилегированном режиме. Перед выполнением запроса служебная процедура проверяет, имеет ли программы пользователя право на запрашиваемое действие, например, что эта программа имеет необходимые полномочия на чтение из указанного файла.77

Переключение из привилегированного режима в режим пользователя обычно производится по специальной (не привилегированной) машинной команде. Значительно сложнее обстоит дело с такой опасной операцией, как переключение центрального процессора в привилегированный режим работы. Это переключение невозможно выполнить по какой-либо машинной команде (поймите, почему это так!). Обычно переключение в привилегированный режим производится автоматически при обработке центральным процессором сигнала прерывания, а иногда – при вызове специальных системных процедур, которые имеют полномочия для работы в привилегированном режиме.

14.1.4. Таймер.

Встроенные в компьютер электронные часы (таймер) появились ещё до возникновения мультипрограммного режима работы. Тем не менее, легко понять, что без таймера мультипрограммный режим невозможен. Действительно, это единственное внешнее устройство, которое гарантированно и периодически посылает центральному процессору сигналы прерываний. Без таких сигналов некоторые программы могли бы войти в выполнение бесконечного цикла (как говорят программисты – зациклиться), и ничто не могло бы вывести компьютер из этого состояния.

Итак, мы рассмотрели аппаратные средства, необходимые для обеспечения мультипрограммного режима работы ЭВМ. Остальные аппаратные возможности ЭВМ, которые часто называют студенты при ответе на этот вопрос (такие, как большая оперативная память, высокое быстродействие центрального процессора и другие) являются, конечно, желательными, но не необходимыми.

Разумеется, кроме перечисленных аппаратных средств, для обеспечения мультипрограммной работы совершенно необходимы и специальные программные средства, прежде всего операционная система, поддерживающая режим мультипрограммной работы. Такая операционная система является примерно на порядок более сложной, чем её предшественницы – операционные системы, не поддерживающие мультипрограммный режим работы. Всё это, однако, тема Вашего следующего семестра, а мы продолжаем изучать архитектуру современных ЭВМ.

15. Архитектурные особенности современных ЭВМ.

Исследуем сейчас следующий вопрос: оценим скорость работы различных устройств ЭВМ. Оперативная память современных ЭВМ способна читать и записывать данные примерно каждые 10 наносекунд (нс), 1 нс = 10-9 сек., а центральный процессор может выполнить команду примерно за 1–2 нс. После некоторого размышления становится понятным, что "что-то здесь не так".

Действительно, рассмотрим, например, команду add ax,X . Для выполнения этой команды центральный процессор должен сначала считать из оперативной памяти саму команду (это 4 байта), затем операнд X (это ещё 2 байта), потом произвести операцию сложения. Таким образом, центральный процессор потратит на выполнение этой команды 6*10+2=62 нс. Спрашивается, зачем делать центральный процессор таким быстрым, если всё равно 97% своего времени он будет ждать, пока команды и данные не будут считаны из оперативной памяти на регистры? Налицо явное несоответствие в скорости работы оперативной памяти и центрального процессора ЭВМ.

Данная проблема на современных ЭВМ решается несколькими способами, которые мы сейчас рассмотрим. Сначала оперативную память стали делать таким образом, чтобы за одно обращение к ней она выдавала не по одному байту, а по несколько байт сразу. Для этого оперативную память разбивают на блоки (обычно называемые банками памяти), которые могут работать параллельно. Этот приём называют расслоением памяти. Например, если память разбита на 8 блоков, то за одно обращение к ней можно сразу считать 8 байт, при этом байты с последовательными адресами располагается в разных блоках. Таким образом, за одно обращение к памяти можно считать несколько команд или данных.

Скорость работы оперативной памяти современных ЭВМ так велика, что требуется какое-то образное сравнение, чтобы это почувствовать. Легко подсчитать, что за одну секунду из памяти можно прочитать 8*108 байт. Если считать каждый байт символом текста и учесть, что на стандартной странице книги помещается примерно 2000 символов, то получается, что за 1 секунду центральный процессор можно прочитать целую библиотеку из 80 томов по 500 страниц в каждом томе.

Легко, однако, вычислить, что, несмотря на такую огромную скорость, оперативная память продолжает тормозить работу центрального процессора. Проведя заново расчёт времени выполнения команды add ax,X мы получим:

10 нс (чтение команды) + 10 нс (чтение числа) + 2 нс (выполнение команды) = 22 нс.

Как видим, хотя ситуация и несколько улучшилась, однако всё ещё примерно 90% своего времени центральный процессор вынужден ждать, пока из оперативной памяти поступят нужные команды и данные. Для того, чтобы исправить эту неприятную ситуацию, в архитектуру компьютера встраивается специальная память, которую называют памятью типа кэш, или просто кэшем.

Кэш работает так же быстро, как и центральный процессор, т.е. может, например, выдавать по 8 байт каждые 1-2 нс. Для программиста кэш является невидимой памятью в том смысле, что эта память не адресуемая, к ней нельзя обратиться из программы по какой-либо команде чтения или записи.78 Центральный процессор работает с кэшем по следующей схеме.

Когда центральному процессору нужна какая-то команда или данное, то сначала он смотрит, не находится ли эта команда или данные в кэше, и, если они там есть, читает их оттуда, не обращаясь к оперативной памяти. Разумеется, если требуемой команды или данных в кэше нет, то центральный процессор вынужден читать их из относительно медленной оперативной памяти, однако копию прочитанного он обязательно оставляет в кэше. Аналогично, при записи данных центральный процессор помещает их в кэш. Особая ситуация складывается, если требуется что-то записать в кэш, а там нет свободного места. В этом случае по специальным алгоритмам, которые Вы будете изучать в следующем семестре, из кэша удаляются некоторые данные, обычто те, к которым дольше всего не было обращения. Таким образом, в кэше накапливаются, в частности, наиболее часто используемые команды и данные, например, все команды не очень длинных циклов после их первого выполнения будут находиться в памяти типа кэш.79

Память типа кэш строится из очень быстрых и, следовательно, дорогих интегральных схем, поэтому её объём сравнительно невелик, примерно 5% от объёма оперативной памяти. Однако, несмотря на свой относительно малый объём, кэш вызывает значительное увеличение скорости работы ЭВМ, так как по статистике примерно 90-95% всех обращений за командами и данными производится в память типа кэш. Теперь наша команда add ax,X будет выполняться за 2+2+2=6 нс.80 Как видим, ситуация коренным образом улучшилась, хотя всё равно получается, что центральный процессор работает только 30% от времени выполнения команды, а остальное время ожидает поступления команд и данных. Для того, чтобы исправить эту ситуацию, нам придётся снова существенно изменить архитектуру центрального процессора.

15.1. Конвейерные ЭВМ.

Как мы уже говорили, современные ЭВМ могут одновременно выполнять несколько команд, для этого они должны иметь несколько центральных процессоров, либо центральный процессор такого компьютера строится по так называемой конвейерной (pipeline) архитектуре. Рассмотрим схему работы таких конвейерных ЭВМ.

Выполнение каждой команды любым центральным процессором можно разбить на несколько шагов. Можно выделить следующие основные шаги выполнения команды.

  • Выбор команды из оперативной памяти (или кэша) на регистр команд.

  • Определение кода операции (так называемое декодирование команды).

  • Вычисление исполнительных адресов операндов.

  • Выбор операндов из оперативной памяти (или кэша) на регистры арифметико-логического устройства.

  • Выполнение требуемой операции (сложение, умножение, сдвиг и т.д.) над операндами на регистрах арифметико-логического устройства.

  • Запись результата операции и выработка флагов.

В конвейерных ЭВМ центральный процессор состоит из нескольких блоков, каждый из которых выполняет один из перечисленных выше шагов команды. Теперь понятно, что эти блоки можно заставить работать параллельно, обеспечивая, таким образом, одновременное выполнение центральным процессором нескольких последовательных команд программы. На рис. 15.1 приведена схема работы центрального процессора конвейерной ЭВМ, направление движения команд на конвейере показано толстой стрелкой. Одновременно на нашем конвейере находится шесть команд.

И
з показанной схемы понятно, почему такие ЭВМ называются конвейерными. Как, например, на конвейере автомобильного завода одновременно находятся несколько машин в разной стадии сборки, так и на конвейере центрального процессора находятся несколько команд в разной стадии выполнения. Отметим хорошее свойство любого конвейера: хотя выполнение каждой команды, как в нашем примере, занимает шесть шагов, однако на каждом шаге с конвейера "сходит" полностью выполненная команда. Таким образом, использование такого рода конвейера позволяет, в принципе, в шесть раз повысить скорость выполнения программы.

Вот теперь мы достигли соответствия скорости работы центрального процессора и памяти. Действительно, предположим для простоты, что каждое из шести устройств на конвейере выполняет свой этап обработки команды за 1 нс, тогда каждая команда выполняется за 6 нс и за это время она успевает произвести все необходимые обмены командами и данными с памятью. В то же время, как мы уже отмечали, скорость выполнения потока команд центральным процессором получается в 6 раз больше за счёт работы конвейера.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
421
Средний доход
с одного платного файла
Обучение Подробнее