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

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

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

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

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

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

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

dec dl; X-1

add al,dh

adc ah,0; ax:=80*(Y-1)+(X-1)

mov bx,ax; Спасём на bx

Теперь необходимо переслать содержимое регистров bl и bh соответственно в регистры R15 и R14 дисплея. Для этого мы будем использовать два порта дисплея (в каждый можно записывать для передачи дисплею операнд размером в байт). Порт с шестнадцатеричным номером 3D4h позволяет выбрать номер регистра дисплея, в который будет производиться очередная запись данных. Для этого в этот порт необходимо записать номер соответствующего регистра (у нас это номера 15 и 14). После выбора номера регистра запись в него нового значения производится посредством посылки байта в "транспортировочный" порт дисплея с номером 3D5h. В итоге получается следующий фрагмент программы:

mov dx,3D4h; Порт выбора регистра

mov al,15

out dx,al; Выбираем R15

inc dx; Порт записи в регистр

mov al,bl; младший байт BX

out dx,al; Запись в R15

dec dx; Порт выбора регистра

mov al,14

out dx,al; Выбираем R14

inc dx; Порт записи в регистр

mov al,bh; старший байт BX

out dx,al; Запись в R14

Вот теперь курсор будет установлен в нужное место экрана, и можно возвращаться на команду, следующую за системным вызовом int 10h . Разумеется, наш алгоритм весьма примитивен. На­пример, после записи в 15-й регистр дисплея и до записи в 14-й регистр курсор прыгнет в непредсказуемое место экрана, так что по-хорошему надо было бы на время работы нашего фрагмента заблокировать для контроллера чтение данных из регистров дисплея. Это, разумеется, делается записью некоторого значения в определённый управляющий регистр дисплея, для чего понадобятся и другие команды in и out. Кроме того, хорошо бы предварительно убедиться, что дисплей вообще включён и работает в нужном нам режиме, для чего потребуется, например, считать некоторые флаги состояния дисплея .

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

15.2.2. Достоинства и недостатки архитектуры с общей шиной.

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

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

Исходя из таких очевидных недостатков архитектуры с общей шиной была разработана и другая архитектура связи устройств компьютера между собой. Обычно она называется архитектурой с каналами ввода/вывода.

15.2.3. Архитектура ЭВМ с каналами ввода/вывода.

Архитектура ЭВМ с каналами ввода/вывода предполагает возможность параллельной работы нескольких устройств. Поймём сначала, какие же работы нам надо производить параллельно. Оказывается, что нужно обеспечить параллельный обмен данными нескольких устройств с оперативной памятью. Действительно, когда мы рассматривали мультипрограммный режим работы ЭВМ, мы говорили, что для эффективного использования ресурсов необходимо обеспечить как можно более полную загрузку всех устройств компьютера.

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

Как мы знаем, центральный процессор выполняет обращения к оперативной памяти, подчиняясь командам выполняемой программы. Ясно, что и все другие обмены данными с оперативной памятью должны выполняться под управлением достаточно "интеллектуальных" устройств ЭВМ. Вот эти устройства и называются каналами ввода/вывода, так как они управляют обменом данными между оперативной памятью и, как говорят, периферией. По-существу, канал ввода/вывода является специализированным процессором со своей системой команд (своим машинным языком).

В современной литературе по архитектуре ЭВМ у термина "канал ввода/вывода" есть много синонимов. Часто их называют процессорами ввода/вывода или периферийными процессорами (смысл этих названий легко понять из назначения данных устройств). Наиболее "навороченные" каналы называют иногда машинами переднего плана (front-end computer), здесь имеется в виду, что все внешние устройства, а, следовательно, и пользователи, могут общаться с центральной частью компьютера только через эти каналы. Кроме того, машины передного плана могут разгрузить центральный процессор, взяв на себя, например, обработку прерываний от внешних устройств, весь диалог с пользователями, компиляцию программ в объектный код и т.д. Центральный процессор при этом будет выполнять только свою основную работу – быстрый счёт программ пользователей.

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

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

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

Совершенно по-другому производится обработка системного вызова на компьютере с каналами ввода/вывода. После того, как программа пользователя произведёт системный вызов, вызванная процедура-обработчик прерывания посылает соответствующему каналу приказ начать выполнение программы канала, реализующей требуемое действие, после чего производится немедленный возврат на выполнение программы пользователя. Далее начинается параллельная работа центрального процессора по выполнению программы пользователя и канала, выполняющего свою собственную программу по обмену с внешними устройствами, например, по чтению массива с диска в оперативную память. 86

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

15.3. Уровни параллелизма.

Как мы знаем, первые компьютеры удовлетворяли почти всем принципам Фон Неймана. В этих компьютерах поток последовательно выполняемых в центральном процессоре команд обрабатывал поток данных. ЭВМ такой простой архитектуры носят в литературе сокращённое название ОКОД (Один поток Команд обрабатывает Один поток Данных – английское сокращение SISD: Single Instruction Single Data). В настоящее время компьютеры, однако, нарушают почти все принципы Фон Неймана. Дело в том, что вычислительная мощность современных компьютеров базируется как на скорости работы всех узлов ЭВМ, так и, в значительной степени, на параллельной обработке данных. В заключение нашего краткого изучения архитектуры современных ЭВМ рассмотрим классификацию способов параллельной обработки данных на компьютере.

  • Параллельное выполнения программ может производиться на одном компьютере, если он имеет несколько центральных процессоров. Как правило, в этом случае компьютер имеет и несколько периферийных процессоров (каналов). Существуют ЭВМ, у которых могут быть от нескольких десятков до нескольких сотен и даже тысяч центральных процессоров. В таких компьютерах много потоков команд одновременно обрабатывают много потоков данных, в научной литературе это обозначается сокращением МКМД (или по-английски MIMD).

  • Параллельные процессы в рамках одной программы. Программа пользователя может породить несколько параллельных процессов обработки данных, каждый такой процесс для операционой системы является самостоятельной единицей работы. Процессы одной задачи могут псевдопараллельно выполняться в мультипрограммном режиме точно так же, как и задачи независимых пользователей.

В качестве примера рассмотрим случай, когда программисту необходимо вычислить сумму значений двух функций F(x)+G(x), причём каждая из этих функций для своего вычисления требует больших затрат процессорного времени и производит много обменов данными с внешними запоминающими устройствами. В этом случае программисту выгодно распараллелить алгоритм решения задачи и породить в своей программе два параллельных вычислительных процесса, каждому из которых поручить вычисления одной из этих функций. Можно понять, что в этом случае вся программа будет посчитана за меньшее физическое время, чем при использовании одного вычислительного процесса. Действительно пока один процесс будет производить обмен данными с медленными внешними устройствами, другой процесс может продолжать выполняться на центральном процессоре, а в случае с одним процессом вся программа была бы вынуждена ждать окончания обмена с внешним устройством. Стоит заметить, что скорость счёта программы с несколькими параллельными процессами ещё больше возрастёт на компьютерах, у которых более одного центрального процессора.

Подробно параллельные процессы Вы будете изучать в следующем семестре.

  • Параллельное выполнение нескольких команд одной программы производится конвейером центрального процессора. В мощных ЭВМ центральный процессор может содержать несколько конвейеров. Например, один из конвейеров выполняет команды целочисленной арифметики, другой предназначен для обработки вещественных чисел, а третий – для всех остальных команд.

  • Параллельная обработка данных в программе производится на так называемых векторных ЭВМ. У таких ЭВМ наряду с обычными (скалярными) регистрами есть и векторные регистры, которые могут хранить и выполнять операции над векторами целых или вещественных чисел. Пусть, например, у такой ЭВМ есть регистры axv и bxv, каждый из которых может хранить вектор из 64 чисел, тогда команда векторного сложения addv axv,bxv будет производить параллельное покомпонентное сложение всех элементов таких векторов по схеме axv[i]:=axv[i]+bxv[i]. Можно сказать, что на векторных ЭВМ один поток (векторных) команд обрабатывает много потоков данных (поток векторных данных). Отсюда понятно сокращённое название ЭВМ такой архитектуры – ОКМД (по-английски SIMD).87

Параллельная обработка команд и данных позволяет значительно увеличить производительность компьютера. Необходимо сказать, что в современных компьютерах обычно реализуется сразу несколько из рассмотренных выше уровней параллелизма. Познакомится с историей развития параллельной обработки данных можно, например, по книге [15]. Заметим, однако, что, несмотря на непрерывный рост мощности компьютеров, постоянно появляются всё новые задачи, для счёта которых необходимы ещё более мощные ЭВМ. Таким образом, к сожалению, рост сложности задач опережает рост производительности компьютеров.

Список литературы.

  1. Г. Майерс. Архитектура современных ЭВМ (в 2-х книгах). – Мир, 1985.

  2. Burks A.W., Goldstine H.H., von Neumann J. Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. – Pt. I, vol. I, Institutefor Advanced Study, Princeton, NJ, 1946.

  3. Королёв Л.Н. Структуры ЭВМ и их математическое обеспечение. – Наука, 1978.

  4. Любимский Э.З., Мартынюк В.В., Трифонов Н.П. Программирование. – Наука, 1980.

  5. Пильщиков В.Н. Программирование на языке Ассемблера IBM PC. – Диалог-МИФИ, 1994.

  6. Скэлтон Л.Дж. Персональная ЭВМ IBM PC и XT. Программирование на языке Ассемблера. – Радио и связь, 1991.

  7. Абель П. Язык Ассемлера для IBM PC и программирования. – Высшая школа, 1992.

  8. Нортон П., Соухэ Д. Язык Ассемблера IBM PC. – Компьютер, 1993.

  9. Ю-Чжень Лю, Гибсон Г. Микропроцессоры семейства 8086/8088. – Радио и связь, 1987.

  10. Донован Дж. Системное программирование. – Мир, 1975.

  11. Брусенцов Н.П. Миникомпьютеры. – Наука, 1976, 272с.

  12. Дейт К. Введение в системы баз данных. – Наука, 1980.

  13. Успенский В.А. Нестандартный, или нетрадиционный анализ. – Знание, серия Математика, кибернетика № 8, 1983.

  14. Девис М. Прикладной нестандартный анализ. – Мир, 1980.

  15. Головкин Б.А. Параллельные вычислительные системы. – Наука, 1980.

Список литературы.

  1. Г. Майерс. Архитектура современных ЭВМ (в 2-х книгах). – Мир, 1985.

  2. Burks A.W., Goldstine H.H., von Neumann J. Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. – Pt. I, vol. I, Institutefor Advanced Study, Princeton, NJ, 1946.

  3. Королёв Л.Н. Структуры ЭВМ и их математическое обеспечение. – Наука, 1978.

  4. Любимский Э.З., Мартынюк В.В., Трифонов Н.П. Программирование. – Наука, 1980.

  5. Пильщиков В.В. Программирование на языке Ассемблера IBM PC. – Диалог-МИФИ, 1994.

  6. Скэлтон Л.Дж. Персональная ЭВМ IBM PC и XT. Программирование на языке Ассемблера. – Радио и связь, 1991.

  7. Абель П. Язык Ассемлера для IBM PC и программирования. – Высшая школа, 1992.

  8. Нортон П., Соухэ Д. Язык Ассемблера IBM PC. – Компьютер, 1993.

  9. Ю-Чжень Лю, Гибсон Г. Микропроцессоры семейства 8086/8088. – Радио и связь, 1987.

  10. Донован Дж. Системное программирование. – Мир, 1975.

  11. Брусенцов Н.П. Миникомпьютеры. – Наука, 1976, 272с.

  12. Дейт К. Введение в системы баз данных. – Наука, 1980.

  13. Успенский В.А. Нестандартный, или нетрадиционный анализ. – Знание, серия Математика, кибернетика № 8, 1983.

  14. Девис М. Прикладной нестандартный анализ. – Мир, 1980.

1 В области компьютеров и программного обеспечения такие уровни используются, например, при описании структуры баз данных, где описания данных (схемы данных) могут рассматриваться на внешнем, концептуальном и внутреннем уровнях [12].

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