Раздел 1 Характеристики и классификация вычислительной техники
Тема 1.1 Классификация и поколения электронной вычислительной техники
Э лектронно-вычислительные машины (ЭВМ) — вычислительные машины, основными элементами которых являются электронные приборы, предназначенные для автоматизации процесса обработки информации и вычислений. ЭВМ осуществляет вычислительный процесс по специальной программе. Помимо устройств, предназначенных для выполнения математических вычислений, ЭВМ снабжены запоминающим устройством для храпения программ, исходных данных и промежуточных результатов вычислений, а также устройством управления, обеспечивающим автоматическое выполнение вычислительного процесса. Электронно-вычислительные машины можно объединять в комплексы для переработки информации на разных уровнях или в системы для переработки больших массивов информации.
В зависимости от аппаратной базы различают несколько поколений ЭВМ:
Первое поколение. Релейные и ламповые компьютеры
Второе поколение. Полупроводниковые компьютеры
Третье поколение. Компьютеры на интегральных схемах
Четвёртое поколение. Компьютеры на (сверх)больших интегральных схемах
Пятое поколение. Многопроцессорные компьютеры
Первое поколения ЭВМ
Характеристики | I поколение |
Годы | 1945- 1958 гг. |
Элементная база | Электронно-вакуумные лампы |
Размер (габариты) | Громоздкие сооружения, занимавшие сотни квадратных метров, потреблявшие сотни киловатт электроэнергии и содержащие в себе тысячи ламп. |
Максимальное быстродействие процессора | От нескольких сотен до нескольких десятков тысяч операций в секунду. |
Максимальный объем ОЗУ | Несколько тысяч команд программы |
Периферийные | Перфоленты и перфокарты |
Программное обеспечение | Программы составлялись на языке машинных команд, поэтому программирование было доступно не всеем. Существовали библиотеки стандартных программ. |
Области применения | Инженерные и научные расчеты, не связанные с переработкой больших объемов информации |
Примеры | Mark I, ENIAC, БЭСМ. Машина ENIAC – эта первая электронная ВМ, которая нашла практическое применение и была для своего времени инструментом решения сложных задач. |
Второе поколение ЭВМ
Характеристики | II поколение |
Годы | 1959 – 1963 гг. |
Элементная база | Транзисторы |
Размер (габариты) | Стали компактнее, надежнее, менее энергоемкие |
Максимальное быстродействие процессора | Десятки и сотни тысяч операций в секунду |
Максимальный объем ОЗУ | Увеличился в сотни раз |
Периферийные | Внешняя память на магнитных барабанах и лентах |
Программное обеспечение | Программы и программирование стало проще, понятнее и доступнее. Стали развиваться языки высокого уровня программирования. |
Области применения | Создание информационно-справочных и информационных систем |
Примеры | М-220, Мир, БЭСМ-4, IBM-7094 |
Третье поколение ЭВМ
Характеристики | III поколение |
Годы | 1964 – 1976 гг. |
Элементная база | Интегральные схемы |
Размер (габариты) | ЭВМ делятся на большие, средние, мини и микро |
Максимальное быстродействие процессора | До10 миллионов операций в секунду. |
Максимальный объем ОЗУ | До 16 Мбайт. Появляются ПЗУ |
Периферийные | Внешняя память на магнитных дискетах, дисплей. |
Программное обеспечение | Появились операционные системы и множество прикладных программ. Многопрограммный режим – возможность выполнять несколько программ одновременно. |
Области применения | Базы данных, первые системы искусственного интеллекта, системы автоматизированного управления и проектирования |
Примеры | БЭСМ-6, IBM/360 |
Четвертое поколения ЭВМ
Характеристики | IV поколение |
Годы | 1977 – 1990 гг. |
Элементная база | БИС и СБИС |
Размер (габариты) | Микро ЭВМ – малые габариты, сравнимые с размерами бытового телевизора; суперкомпьютеры – состоят из отдельных блоков и центрального процессора. |
Максимальное быстродействие процессора | От 2,5 МГц и больше. |
Максимальный объем ОЗУ | От 16 Мбайт и больше. |
Периферийные | Цветной графический дисплей, манипуляторы типа «мышь», «джойстик», клавиатура, магнитные и оптические диски, принтеры и пр. |
Программное обеспечение | Пакеты прикладного, сетевого, мультимедиа программного обеспечения |
Области применения | Все сферы научной, производственной и учебной деятельности, отдых и развлечение, Интернет |
Примеры | IBM PC, Macintosh, Cray, Эльбрус |
Пятое поколения ЭВМ
Характеристики | V поколение |
Годы | 1990 – наши дни |
Элементная база | ЭВМ на сверхсложных микропроцессорах с параллельно-векторной структурой, одновременно выполняющих десятки последовательных команд программы; многоядерность |
Размер (габариты) | Появление карманных компьютеров |
Максимальное быстродействие процессора | от 4 ГГц |
Максимальный объем ОЗУ | от 2000Mb и выше |
Периферийные | Картридер, flash- память, геймпады, многофункциональные устройства |
Программное обеспечение | Развитие существующих пакетов прикладного, сетевого, мультимедиа и пр. программного обеспечения |
Области применения | Расширение сферы научной, производственной и учебной деятельности, отдых и развлечение, Интернет |
Примеры | Pentium 4, Athlon |
Системный блок
По форме корпуса бывают:
Desktop – плоские корпуса (горизонтальное расположение), их обычно располагают на столе и используют в качестве подставки для монитора;
Tower - вытянутые в виде башен (вертикальное расположение), обычно располагаются на полу.
Корпуса различаются по размерам, указанные приставки Super, Big, Midi, Micro, Tiny, Flex, Mini, Slim обозначают размеры корпусов.
Порты (каналы ввода - вывода)
На задней стенке корпуса современных ПК размещены (точнее могут размещаться) следующие порты:
- Game - для игровых устройств (для подключения джойстика);
- VGA - интегрированный в материнскую плату VGA – контроллер для подключения монитора для офисного или делового ПК;
- COM - асинхронные последовательные (обозначаемые СОМ1—СОМЗ). Через них обычно подсоединяются мышь, модем и т.д.;
- PS/2 – асинхронные последовательные порты для подключения клавиатура и манипулятора мышь;
- LPT - параллельные (обозначаемые LPT1—LPT4), к ним обычно подключаются принтеры;
- USB - универсальный интерфейс для подключения 127 устройств (этот интерфейс может располагаться на передней или боковой стенке корпуса);
- Разъемы звуковой карты: для подключения колонок, микрофона и линейный выход.
В системном блоке расположены основные узлы компьютера:
- Системная или материнская плата (motherboard), на которой установлены дочерние платы (контроллеры устройств, адаптеры или карты) и другие электронные устройства;
- блок питания, преобразующий электропитание сети в постоянный ток низкого напряжения, для электронных схем компьютера;
- накопитель на жестком магнитном диске, предназначенный для чтения и записи на несъемный жесткий магнитный диск (винчестер);
- накопители на оптических дисках (типа DVD - RW или CD – RW), предназначенные для чтения и записи на компакт – диски;
- накопители (или дисководы) для гибких магнитных дисков, используемые для чтения и записи на дискеты;
- устройства охлаждения;
Клавиатура
Клавиатура - устройство, предназначенное для ввода пользователем информации в компьютер.
Манипулятор мышь
Манипулятор мышь – устройство управления манипуляторного типа. Ввод информации осуществляется перемещением курсора в определенную область экрана и кратковременным нажатием кнопок манипулятора или щелчками (одинарными или двойными). По принципу работы манипуляторы делятся на механические, оптомеханические и оптические.
Мониторы
Мониторы – устройства, которые служат для обеспечения диалогового режима работы пользователя с компьютером путем вывода на экран графической и символьной информации. В графическом режиме экран состоит из точек (пикселей от англ. pixel - picture element, элемент картинки), полученных разбиением экрана на столбцы и строки.
Микропроцессор
Центральный микропроцессор (небольшая микросхема, выполняющая все вычисления и обработку информации) – это ядро ПК.
Компоненты микропроцессора:
- АЛУ выполняет логические и арифметические операции
- Устройство управления управляет всеми устройствами ПК
- Регистры используются для хранения данных и адресов
- Схема управления шиной и портами – осуществляет подготовку устройств к обмену данными между микропроцессором и портом ввода – вывода, а также управляет шиной адреса и управления.
Основные характеристики процессора:
- Разрядность – число двоичных разрядов, одновременно обрабатываемых при выполнении одной команды. Большинство современных процессоров – это 32 – разрядные процессоры, но выпускаются и 64 - разрядные процессоры.
- Тактовая частота – количество циклов работы устройства за единицу времени. Чем выше тактовая частота, тем выше производительность.
- Наличие встроенного математического сопроцессора
- Наличие и размер Кэш- памяти.
Рис.2 Структурная схема ЭВМ
Оперативная память
Оперативное запоминающее устройство (ОЗУ или RAM) - область памяти, предназначенная для хранения информации в течение одного сеанса работы с компьютером. Конструктивно ОЗУ выполнено в виде интегральных микросхем.
Из нее процессор считывает программы и исходные данные для обработки в свои регистры, в нее записывает полученные результаты. Название “оперативная” эта память получила потому, что она работает очень быстро, в результате процессору не приходится ждать при чтении или записи данных в память.
Кэш-память
Компьютеру необходимо обеспечить быстрый доступ к оперативной памяти, иначе микропроцессор будет простаивать, и быстродействие компьютера уменьшится. Поэтому современные компьютеры оснащаются Кэш-памятью или сверхоперативной памятью.
При наличии Кэш-памяти данные из ОЗУ сначала переписываются в нее, а затем в регистры процессора. При повторном обращении к памяти сначала производится поиск нужных данных в Кэш-памяти и необходимые данные из Кэш-памяти переносятся в регистры, поэтому повышается быстродействие.
Контроллеры
Только та информация, которая хранится в ОЗУ, доступна процессору для обработки. Поэтому необходимо, чтобы в его оперативной памяти находились программа и данные.
В ПК информация с внешних устройств (клавиатуры, жесткого диска и т.д.) пересылается в ОЗУ, а информация (результаты выполнения программ) с ОЗУ также выводится на внешние устройства (монитор, жесткий диск, принтер и т.д.).
Таким образом, в компьютере должен осуществляться обмен информацией (ввод-вывод) между оперативной памятью и внешними устройствами. Устройства, которые осуществляют обмен информацией между оперативной памятью и внешними устройствами называются контроллерами или адаптерами, иногда картами. Контроллеры, адаптеры или карты имеют свой процессор и свою память, т.е. представляют собой специализированный процессор.
Контроллеры или адаптеры (схемы, управляющие внешними устройствами компьютера) находятся на отдельных платах, которые вставляются в унифицированные разъемы (слоты) на материнской плате
Системная магистраль
Системная магистраль (шина) - это совокупность проводов и разъемов, обеспечивающих объединение всех устройств ПК в единую систему и их взаимодействие.
Для подключения контроллеров или адаптеров современные ПК снабжены такими слотами как PCI. Слоты PCI – Express для подключения новых устройств к более скоростной шине данных. Слоты AGP предназначены для подключения видеоадаптера
Для подключения накопителей (жестких дисков и компакт-дисков) используются интерфейсы IDE и SCSI. Интерфейс – это совокупность средств соединения и связи устройств компьютера.
Определение микропроцессора
Микропроцессор (МП) - это программно-управляемое электронное цифровое устройство, предназначенное для обработки цифровой информации и управления процессом этой обработки, выполненное на одной или нескольких интегральных схемах с высокой степенью интеграции электронных элементов. [2]
Первые микропроцессоры появились в 1970-х и применялись в электронных калькуляторах, в них использовалась двоично-десятичная арифметика 4-х битных слов. Вскоре их стали встраивать и в другие устройства, например терминалы, принтеры и различную автоматику. Доступные 8-битные микропроцессоры с 16-битной адресацией позволили в середине 1970-х создать первые бытовые микрокомпьютеры.
Долгое время центральные процессоры создавались из отдельных микросхем малой и средней интеграции, содержащих от нескольких единиц до нескольких сотен транзисторов. Разместив целый ЦПУ на одном чипе сверхбольшой интеграции удалось значительно снизить его стоимость. Несмотря на скромное начало, непрерывное увеличение сложности микропроцессоров привело к почти полному устареванию других форм компьютеров (см. историю вычислительной техники), в настоящее время один или несколько микропроцессоров используются в качестве вычислительного элемента во всём, от мельчайших встраиваемых систем и мобильных устройств до огромных мейнфреймов и суперкомпьютеров.
С начала 1970-х широко известно, что рост мощности микропроцессоров следует закону Мура, который утверждает что число транзисторов на интегральной микросхеме удваивается каждые 18 месяцев. В конце 1990-х главным препятствием для разработки новых микропроцессоров стало тепловыделение (TDP) из-за утечек тока и других факторов [1].
Некоторые авторы относят к микропроцессорам только устройства, реализованные строго на одной микросхеме. Такое определение расходится как с академическими источниками, так и с коммерческой практикой (например, варианты микропроцессоров Intel и AMD в корпусах типа SECC и подобных, такие как Pentium II — были реализованы на нескольких микросхемах).
В настоящее время, в связи с очень незначительным распространением процессоров, не являющихся микропроцессорами, в бытовой лексике термины «микропроцессор» и «процессор» практически равнозначны.
Структура микропроцессора
Процессор — основная микросхема компьютера, в которой и производятся все вычисления [3, с.80]. Собственно говоря, процессор в компьютере не один — их может быть целый десяток! Собственным процессором снабжена видеоплата, звуковая плата, множество внешних устройств (например, принтер). И часто по производительности эти микросхемы могут поспорить с главным, Центральным Процессором. Но в отличие от него, все они являются узкими специалистами — один отвечает за обработку звука, другой — за создание трехмерного изображения.
Основное и главное отличие центрального процессора — это его универсальность. При желании (и, разумеется, при наличии необходимой мощности и соответствующего программного обеспечения) центральный процессор может взять на себя любую работу, в то время как процессор видеоплаты при всем желании не сможет раскодировать, скажем, музыкальный файл...
Любой процессор — это выращенный по специальной технологии кристалл кремния (не зря на жаргоне процессор именуется «камнем»). Однако камешек этот содержит в себе множество отдельных элементов — транзисторов, соединенных металлическими мостиками-контактами. Именно они и наделяют компьютер способностью «думать». Точнее, вычислять, производя определенные математические операции с числами, в которые преобразуется любая поступающая в компьютер информация.
Безусловно, один транзистор никаких особых вычислений произвести не может. Единственное, на что способен этот электронный переключатель — это пропустить сигнал дальше или задержать его, в зависимости от подаваемого на его «затвор» напряжения. Наличие сигнала дает логическую единицу (да); его отсутствие — логический же ноль (нет).
Однако процессор — это не просто скопище транзисторов, а целая система множества важных устройств [4, с.38]. В состав микропроцессора входят следующие устройства.
1. Арифметико-логическое устройство предназначено для выполнения всех арифметических и логических операций над числовой и символьной информацией.
2. Устройство управления координирует взаимодействие различных частей компьютера. Выполняет следующие основные функции:
• формирует и подает во все блоки машины в нужные моменты времени определенные сигналы управления (управляющие импульсы), обусловленные спецификой выполнения различных операций;
• формирует адреса ячеек памяти, используемых выполняемой операцией, и передает эти адреса в соответствующие блоки компьютера;
• получает от генератора тактовых импульсов обратную последовательность импульсов.
3. Микропроцессорная память предназначена для кратковременного хранения, записи и выдачи информации, используемой в вычислениях непосредственно в ближайшие такты работы машины. Микропроцессорная память строится на регистрах и используется для обеспечения высокого быстродействия компьютера, так как основная память не всегда обеспечивает скорость записи, поиска и считывания информации, необходимую для эффективной работы быстродействующего микропроцессора [5]. Важно также отметить, что данные, попавшие в некоторые регистры, рассматриваются не как данные, а как команды, управляющие обработкой данных в других регистрах [3, с.80].
4. Кэш-память. Буферная память — своеобразный накопитель для данных. В современных процессорах используется два типа кэш-памяти: первого уровня — небольшая (несколько десятков килобайт) сверхбыстрая память, и второго уровня — чуть помедленнее, зато больше — от 128 килобайт до 2 Мб [4, с.38].
5. Процессор связан несколькими группами проводников называемых шинами. С остальными устройствами компьютера, и в первую очередь с оперативной памятью. Основных шин три: шина данных, адресная шина и командная шина.
1. Адресная шина. Шина или часть шины, предназначенная для передачи адреса, а именно используется ЦП для выбора требуемой ячейки памяти или устройства ввода-вывода путем установки на шине конкретного адреса, соответствующего одной из ячеек памяти или одного из элементов ввода-вывода, входящих в систему.
2. Шина команд. По ней передаются управляющие сигналы, предназначенные памяти и устройствам ввода-вывода. Эти сигналы указывают направление передачи данных (в процессор или из него).
3. Шина данных — информационная магистраль, благодаря которой процессор может обмениваться данными с другими устройствами компьютера [3, с.80].
Трудно поверить, что все эти устройства размешаются на кристалле площадью не более 4—6 квадратных сантиметров! Только под микроскопом мы можем разглядеть крохотные элементы, из которых состоит микропроцессор, соединяющие их металлические «дорожки» (для их изготовления сегодня используется алюминий, однако уже приходит медь) [4, с.38].
Емкость памяти
Емкость памяти-определяется числом бит хранимой информации. Емкость кристалла обычно выражается также в битах и составляет 1024 бита, 4К бит, 16 К бит, 64К бит и т.п. Важной характеристикой кристалла является информационная организация кристалла памяти M x N, где M - число слов, N - разрядность слова.
Флэш-память.
Особо следует рассказать о флэш-памяти. Flash по-английски – это "вспышка, проблеск". Флэш-память является энергонезависимой памятью, (как и ПЗУ и ППЗУ). При выключении компьютера ее содержимое сохраняется. Однако содержимое flash-памяти можнр многократно перезаписывать, не вынимая ее из компьютера (в отличие от ППЗУ). Запись происходит медленнее, чем считывание, и осуществляется импульсами повышенного напряжения. Вследcтвие этого, а также из-за ее стоимости, флэш память не заменит микросхемы ОЗУ.
CMOS-память.
CMOS-память – энергозависимая, перезаписываемая память, которая при своей работе , однако, почти не потребляет энергии. CMOS переводится как complementary metal oxode semiconductor – "комплиментарный металл - оксид - полупроводниковый". Достоинства этой памяти – низкое потребление энергии, высокое быстродействие. В CMOS - памяти компьютера находятся важные для его работы настройки, которые пользователь может менять для оптимизации работы компьютера. Питается эта память от небольшого аккумулятора, встроенного в материнскую плату.
Потеря данных в CMOS.
Компьютеры с ISA шиной (содержащие процессоры вплоть до i80286), имели минимум настроек. Часто они вполне нормально работали в своей основной конфигурации.
Ситуация изменилась после появления на компьютерах памяти более чем 16 Мбайт, ШВУ контроллеров и PCI-шины. Как выяснилось, в большинстве случаев стандартная настройка материнской платы стала неприменимой. Для сохранения настроек пользователя их стали хранить в CMOS-памяти.
Иногда содержимое CMOS-памяти разрушается. Это возможно в следующих случаях:
1. Воздействие вируса. При своей работе вирус может специально внедряться в CMOS-память, чтобы обеспечиватиь лучшие условия для его распространения либо специально вывести компьютер из строя.
2. Неисправность аккумулятора. В некоторых случаях аккумулятор CMOS-памяти может разряжаться (от времени или короткого замыкания на плате.) В этом случаесодержимое CMOS может разрушиться не сразу, а по прошествии двух - трех суток.
3. Скачок напряжения при работе с CMOS. В этом случае последствия непредсказуемы.
4. Установка пароля на загрузку. Иногда пользователь для защиты от несанкционированного доступа устанавливает "пароль на загрузку". Если он потом забудет пароль, то для запуска компьютера будет необходим сброс параметров CMOS-памяти путем короткого замыкания ее аккумулятора.
Для восстановления параметров CMOS-памяти после ее сброса существуют опции "стандартной" и безопасной" настройки этой памяти на материнской плате. Пользователю в этом случае придется восстанавливать не все, а только часть параметров. Опции "стандартной" и "безопасной" настройки хранятся в ПЗУ и изменить их невозможно!
Тема 3.4 Буферная память
Буферная память – это быстрая промежуточная память (обычно стандартный тип оперативной памяти), служащая для нивелирования (сглаживания) разницы между скоростями чтения, записи и передачи по интерфейсу данных во время работы диска. Кэш винчестера может быть использован для хранения последних считаных данных, но еще не переданных для обработки или тех данных, которые могут быть запрошены повторно.
В предыдущем разделе мы уже отмечали разницу между производительностью жесткого диска и пропускной способностью интерфейса. Именно этим фактом и обусловлена необходимость транзитного хранилища в современных винчестерах. Таким образом, пока происходит запись или считывание данных с магнитных пластин, система для своих нужд может использовать информацию, хранящуюся в кэше, не простаивая в ожидании.
Величина буфера обмена у современных жестких дисков, выполненных в форм-факторе 2,5”, может быть 8, 16, 32 или 64 Мб. У старших 3,5-дюймовых собратьев максимальное значение буферной памяти достигает уже 128 Мб. В мобильном секторе наиболее распространены диски с кэшем 8 и 16 Мб. Среди винчестеров для настольных ПК самыми распространенными объемами буфера являются 32 и 64 Мб.
Чисто теоретически, кэш большего размера, должен обеспечивать дискам большую производительность. Но на практике это далеко не всегда так. Существуют различные операции с диском, при которых буфер обмена практически не влияет на производительность винчестера. Например, это может происходить при последовательном чтении данных с поверхности пластин или при работе с файлами большого размера. Кроме этого, на эффективность работы кэша влияют алгоритмы, способные предотвращать ошибки при работе с буфером. И здесь диск с более маленьким кэшем, но продвинутыми алгоритмами его работы, может оказаться производительнее конкурента, имеющим больший буфер обмена.
Таким образом, гнаться за максимальным объемом буферной памяти не стоит. Тем более если за большую емкость кэша нужно ощутимо переплачивать. К тому же, производители стараются сами оснащать свои продукты наиболее эффективным объемом кэша, исходя из класса и характеристик определённых моделей дисков.
Тема 3.5 Стековая память
Стековая память. Стековой называют память, доступ к которой организован по принципу: "последним записан - первым считан" (Last Input First Output - LIFO). Использование принципа доступа к памяти на основе механизма LIFO началось с больших ЭВМ. Применение стековой памяти оказалось очень эффективным при построении компилирующих и интерпретирующих программ, при вычислении арифметических выражений с использованием польской инверсной записи. В малых ЭВМ она стала широко использоваться в связи с удобствами реализации процедур вызова подпрограмм и при обработке прерываний.
Принцип работы стековой памяти состоит в следующем. Когда слово А помещается в стек, оно располагается в первой свободной ячейке памяти. Следующее записываемое слово перемещает предыдущее на одну ячейку вверх и занимает его место и т.д. Запись 8-го кода, после H, приводит к переполнению стека и потере кода A. Считывание слов из стека осуществляется в обратном порядке, начиная с кода H, который был записан последним. Заметим, что выборка, например, кода E невозможна до выборки кода F, что определяется механизмом обращения при записи и чтении типа LIFO. Для фиксации переполнения стека желательно формировать признак переполнения.
Рис. 1 Принцип работы стековой памяти
Перемещение данных при записи и считывании информации в стековой памяти подобно тому, как это имеет место в сдвигающих регистрах. С точки зрения реализации механизма доступа к стековой памяти выделяют аппаратный и аппаратно-программный (внешний) стеки.
Аппаратный стек представляет собой совокупность регистров, связи между которыми организованы таким образом, что при записи и считывании данных содержимое стека автоматически сдвигается. Обычно емкость аппаратного стека ограничена диапазоном от нескольких регистров до нескольких десятков регистров, поэтому в большинстве МП такой стек используется для хранения содержимого программного счетчика и его называют стеком команд. Основное достоинство аппаратного стека - высокое быстродействие, а недостаток - ограниченная емкость.
Наиболее распространенным в настоящее время и, возможно, лучшим вариантом организации стека в ЭВМ является использование области памяти. Для адресации стека используется указатель стека, который предварительно загружается в регистр и определяет адрес последней занятой ячейки. Помимо команд CALL и RET, по которым записывается в стек и восстанавливается содержимое программного счетчика, имеются команды PUSH и POP, которые используются для временного запоминания в стеке содержимого регистров и их восстановления, соответственно. В некоторых МП содержимое основных регистров запоминается в стеке автоматически при прерывании программ. Содержимое регистра указателя стека при записи уменьшается, а при считывании увеличивается на 1 при выполнении команд PUSH и POP, соответственно.
Мультипрограммирование
Мультипрограммирование - это режим обработки данных, при котором ресурсы вычислительной системы предоставляются каждому процессу из группы процессов обработки данных, находящихся в ВС, на интервалы времени, длительность и очередность предоставления которых определяется управляющей программой этой системы с целью обеспечения одновременной работы в интерактивном режиме.
Режим реального времени
Режим реального времени - режим обработки данных, при котором обеспечивается взаимодействие вычислительной системы с внешними по отношению к ней процессами в темпе, соизмеримом со скоростью протекания этих процессов.
Этот режим обработки данных широко используется в системах управления и информационно-поисковых системах.
Режим пакетной обработки
В зависимости от того, в каком порядке при мультипрограммном режиме выполняются программы пользователей, различают режимы пакетной обработки задач и коллективного доступа.
В режиме пакетной обработки задачи выстраиваются в одну или несколько очередей и последовательно выбираются для их выполнения.
Режим коллективного доступа
В режиме коллективного доступа каждый пользователь ставит свою задачу на выполнение в любой момент времени, то есть для каждого пользователя в такой ВС реализуется режим индивидуального пользования. Это осуществляется обычно с помощью квантования машинного времени, когда каждой задаче, находящейся в оперативной памяти ЭВМ, выделяется квант времени. После окончания кванта времени процессор переключается на другую задачу или продолжает выполнение прерванной в зависимости от ситуации в ВС. Вычислительные системы, обеспечивающие коллективный доступ пользователей с квантованием машинного времени, называют ВС с разделением времени.
Синтаксис
Единого стандарта для синтаксиса языков ассемблера не существует, конкретный разработчик волен установить свои собственные синтаксические правила. Однако существуют традиционные подходы, которых придерживаются языки ассемблера для наиболее распространённых процессорных архитектур, своего рода стандарт de facto. Так основными стандартами являются стандарты — Intel и AT&T.
Каждая инструкция записывается в отдельной строке.
Полный формат каждой строки инструкций следующий:
label: code ; comment
где label — название метки; code — собственно, инструкция языка ассемблера; comment — комментарий.
При этом один или два компонента строки могут отсутствовать, то есть строка может состоять, к примеру, только из комментария, или содержать только метку или инструкцию.
Объекты, над которыми производятся действия, это регистры процессора и участки оперативной памяти. Обозначения для них также являются частью синтаксиса.
Ассемблерная инструкция, состоит из мнемоники команды и списка аргументов через запятую (один, два или три в зависимости от инструкции). Мнемоникой команды служит трёх- или четырёхбуквенными сокращениями их аналогов, обычно на английском языке, например:
jmp — продолжать выполнение с нового адреса памяти (от англ. jump - прыжок)
mov — переместить данные (от англ. move - передвинуть)
sub — получить разность двух значений (от англ. subtract - вычесть)
xchg — обменять значения в регистрах/ячейках памяти (от англ. exchange - обмен)
От ассемблера к ассемблеру меняется синтаксис аргументов, но мнемоники, обычно, остаются одинаковыми (такими какие используются в оригинальной спецификации процессора), за исключением двух случаев: Если ассемблер использует кроссплатформенный AT&T-синтаксис, то оригинальные мнемоники приводятся к синтаксису AT&T.
Если изначально существовало два стандарта записи мнемоник (система команд была наследована от процессора другого производителя).
Например процессор Zilog Z80 наследовал систему команд Intel i8080, расширил ее и поменял мнемоники (и обозначения регистров) на свой лад. Например сменил интеловские «mov» на «ld» (команда перемещения данных). Процессоры Motorola Fireball наследовали систему команд Z80, несколько её урезав. Вместе с тем, Motorola официально вернулась к мнемоникам Intel. И в данный момент половина ассемблеров для Fireball работает с интеловскими мнемониками, а половина с мнемониками Zilog.
Текст программ может быть дополнен директивами ассемблера (параметры, влияющие на процесс ассемблирования и свойства выходного файла).
Каждый ассемблер имеет собственные директивы.
Для упрощения и ускорения написания программ на языке ассемблера служат макросы.
Недостатки
Большие объемы кода, большое число дополнительных мелких задач, меньшее количество доступных для использования библиотек, по сравнению с языками высокого уровня
Трудоёмкость чтения и поиска ошибок (хотя здесь многое зависит от комментариев и стиля программирования)
Зачастую компилятор языка высокого уровня, благодаря современным алгоритмам оптимизации, даёт более эффективную программу (по соотношению качество/время разработки).
Непереносимость на другие платформы (кроме совместимых).
Ассемблер более сложен для совместных проектов.
Пример программы на языке ассемблера
Пример программы для операционной системы DOS на процессоре семейства Intel x86, выдающей на экран приветствие (написан на TASM):
mov bx,1 ; указание направления вывода (на экран)
mov cx,13 ; указание количества символов строки
mov dx,offset msg ; поместить в регистр DX смещение строки
mov ah,40h ; выбор функции вывода строки
int 21h ; вызов прерывания DOS "Набор процедур" для вывода строки
int 20h ; вызов прерывания DOS (завершение программы)
msg DB 'Hello, World!$'
msg — метка (идентификатор), упрощающая доступ к данным
Происхождение и критика термина «язык ассемблера»
Данный тип языков получил свое название от названия транслятора (компилятора) с этих языков — ассемблера (англ. assembler — сборщик). Название последнего обусловлено тем, что на древних компьютерах не существовало языков более высокого уровня, и единственной альтернативой созданию программ с помощью ассемблера было программирование непосредственно в кодах.
Язык ассемблера в русском языке часто называют «ассемблером» (а что-то связанное с ним — «ассемблерный»), что, согласно английскому переводу слова, неправильно, но вписывается в правила русского языка. Однако, сам ассемблер (программу) тоже называют просто «ассемблером», а не «компилятором языка ассемблера» и т.п.
Команды пересылки данных:
mov <операнд назначения>,<операнд-источник>
xchg <операнд1>,<операнд2> ; двунаправленный обмен данными а:=в; в:=с; с:=а
xchg dl,dh; меняет местами данные
Команды ввода-вывода в порт
in аккумулятор,номер_порта — ввод в аккумулятор из порта
out порт,аккумулятор — вывод содержимого аккумулятора в порт
Команды работы со стеком
Для работы со стеком предназначены три регистра:
ss — сегментный регистр стека;
sp/esp — регистр указателя стека;
bp/ebp — регистр указателя базы кадра стека.
push источник — запись значения источник в вершину стека.
Команда push используется совместно с командой pop для записи значений в стек и извлечения их из стека
pop назначение — запись значения из вершины стека по месту, указанному операндом назначение. Значение при этом “снимается” с вершины стека.
Логические команды
Любая логическая команда меняет значение следующих флагов of, sf, zf, pf, cf (переполнение, знак, нуля, паритет, перенос)
and операнд_1,операнд_2 — операция логического умножения (И - конъюнкция).
оп1:=оп1 ٧ оп2
and ah, 0a1h; ah:=ah٧0ah
and bx, cx; bx:=bx٧cx
and dx, x1; dx:=dx٧x1
or операнд_1,операнд_2 — операция логического сложения (ИЛИ - дизъюнкцию)
or al, x1; оп1:=оп1 & оп2
or eax,edx
or dx, x1
xor операнд_1,операнд_2 — операция логического исключающего сложения (исключающего ИЛИ ИЛИ-НЕ)
test операнд_1,операнд_2 — операция “проверить” (способом логического умножения).
Команда выполняет поразрядно логическую операцию И над битами операндов операнд_1 и операнд_2. Состояние операндов остается прежним, изменяются только флаги zf, sf, и pf, что дает возможность анализировать состояние отдельных битов операнда без изменения их состояния.
not операнд — операция логического отрицания. Команда выполняет поразрядное инвертирование (замену значения на обратное) каждого бита операнда. Результат записывается на место операнда.
Команды сдвига
Все команды сдвига обеспечивают манипуляции над отдельными битами операндов, они перемещают биты в поле операнда влево или вправо в зависимости от кода операции.
Все команды сдвига устанавливают флаг переноса cf.
shl операнд,счетчик_сдвигов (Shift Logical Left) - логический сдвиг влево. Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчик_сдвигов. Справа (в позицию младшего бита) вписываются нули;
shr операнд,счетчик_сдвигов — логический сдвиг вправо.
Алгоритм работы команд:
- очередной “выдвигаемый” бит устанавливает флаг cf;
- бит, вводимый в операнд с другого конца, имеет значение 0;
- при сдвиге очередного бита он переходит во флаг cf, при этом значение предыдущего сдвинутого бита теряется!
sal операнд,счетчик_сдвигов (Shift Arithmetic Left)
sar операнд,счетчик_сдвигов
арифметический сдвиг влево/вправо. Содержимое операнда сдвигается влево/ вправо на количество битов, определяемое значением счетчик_сдвигов. Справа/ Слева в операнд вписываются нули.
Команда sal не сохраняет знака, но устанавливает флаг cf в случае смены знака очередным выдвигаемым битом. В остальном команда sal полностью аналогична команде shl;
Команда sar сохраняет знак, восстанавливая его после сдвига каждого очередного бита.
Команды циклического сдвига
rol операнд,счетчик_сдвигов (Rotate Left) — циклический сдвиг влево.
Содержимое операнда сдвигается влево на количество бит, определяемое операндом счетчик_сдвигов. Сдвигаемые влево биты записываются в тот же операнд справа.
ror операнд,счетчик_сдвигов (Rotate Right) — циклический сдвиг вправо.
Команды циклического сдвига через флаг переноса cf отличаются от команд простого циклического сдвига тем, что сдвигаемый бит не сразу попадает в операнд с другого его конца, а записывается сначала в флаг переноса cf. Лишь следующее исполнение данной команды сдвига (при условии, что она выполняется в цикле) приводит к помещению выдвинутого ранее бита с другого конца операнда (см. рис. 4).
rcl операнд,счетчик_сдвигов (Rotate through Carry Left) — циклический сдвиг влево через перенос.
Содержимое операнда сдвигается влево на количество бит, определяемое операндом счетчик_сдвигов. Сдвигаемые биты поочередно становятся значением флага переноса cf.
rcr операнд,счетчик_сдвигов (Rotate through Carry Right) — циклический сдвиг вправо через перенос.
Содержимое операнда сдвигается вправо на количество бит, определяемое операндом счетчик_сдвигов. Сдвигаемые биты поочередно становятся значением флага переноса cf.
Команды передачи управления
По принципу действия, команды микропроцессора, обеспечивающие организацию переходов в программе, можно разделить на три группы:
1. Команды безусловной передачи управления:
- команда безусловного перехода; jmp
- вызова процедуры и возврата из процедуры; call, ret
- вызова программных прерываний и возврата из программных прерываний. Int, iret
2. Команды условной передачи управления:
- команды перехода по результату команды сравнения cmp;
- команды перехода по состоянию определенного флага;
- команды перехода по содержимому регистра ecx/cx.
3. Команды управления циклом:
- команда организации цикла со счетчиком ecx/cx;
- команда организации цикла со счетчиком ecx/cx с возможностью досрочного выхода из цикла по дополнительному условию.
jmp адрес_перехода - безусловный переход без сохранения информации о точке возврата. Аналог goto.
jmp m1 m4:
… …
m1: jmp m4
Условные переходы
Команды условного перехода имеют одинаковый синтаксис:
jcc метка_перехода
Мнемокод всех команд начинается с “j” — от слова jump (прыжок), cc — определяет конкретное условие, анализируемое командой. Что касается операнда метка_перехода, то эта метка может находится только в пределах текущего сегмента кода, межсегментная передача управления в условных переходах не допускается.
Для того чтобы принять решение о том, куда будет передано управление командой условного перехода, предварительно должно быть сформировано условие, на основании которого и будет приниматься решение о передаче управления. Источниками такого условия могут быть:
- любая команда, изменяющая состояние арифметических флагов;
- команда сравнения cmp, сравнивающая значения двух операндов;
- состояние регистра ecx/cx.
Организация циклов
loop метка_перехода (Loop) — повторить цикл
Работа команды заключается в выполнении следующих действий:
- декремента регистра ecx/cx;
- сравнения регистра ecx/cx с нулем:
- если (ecx/cx) > 0, то управление передается на метку перехода;
- если (ecx/cx) = 0, то управление передается на следующую после loop команду
mov cx, количество циклов
м1: тело цикла
loop m1
loope/loopz метка_перехода (Loop till cx <> 0 or Zero Flag = 0) — повторить цикл, пока cx <> 0 или zf = 0.
loopne/loopnz метка_перехода (Loop till cx <> 0 or Not Zero flag=0) — повторить цикл пока cx <> 0 или zf = 1
Недостаток команд организации цикла loop, loope/loopz и loopne/loopnz в том, что они реализуют только короткие переходы (от –128 до +127 байт).
Раздел 1 Характеристики и классификация вычислительной техники
Дата: 2019-02-19, просмотров: 298.