4. Система шин МП.
Система шин обеспечивает связь устройств микропроцессора между собой и с внешней средой.
2.3.1.3 Программно-логическая модель центрального
процессора
На рисунке 2.11 показана логическая организация МП Intel 8086 (КР1810ВМ86). Он широко применяется в ПЭВМ семейств IBM PC, IBM PC/XT, PCjr, PS/2 (модели 25, 30). Некоторые из перечисленных машин построены на базе МП Intel 8088, который отличается количеством внешних линий данных (имеются и другие отличия, например сокращение длины очереди команд, но они не могут считаться принципиальными).
В составе МП имеется 14 программно-доступных регистров. Он манипулирует логическими адресами, содержащими 16-раз-рядный сегментный (базовый) адрес и 16-разрядное внутрисегментное смещение. Сегментные адреса находятся в одном из четырех регистров: CS – код (программа); DS – данные, SS – стек; ES – экстракод (дополнительные данные).
В состав блока регистров общего назначения (РОН) входят восемь 16-разрядных регистров, из них четыре (SP, BP, SI, DI) предназначены для хранения внутрисегментных смещений. Все РОН участвуют в выполнении арифметических и логических операций, представляя операнды и фиксируя результат.
Регистр адреса команд (счетчик адреса) IP используется для выбора команд программы в текущем сегменте кода CS.
Особо необходимо отметить назначение регистра признаков (флагов).
Как уже отмечалось, регистр признаков (флагов) предназначен для хранения данных о различных ситуациях, возникающих в программе. Младший байт регистра признаков устанавливается арифметическими или логическими операциями МП:
− признак SF принимает единичное значение при отрицательном и нулевое значение при положительном результате;
− флаг ZF принимает значение "1" при нулевом результате последней операции;
− PF устанавливает "1", если результат последней операции имеет четное число единиц;
− признак CF используется для различных целей. Он устанавливает "1" при сложении 16-битовых чисел в случае возникновения переноса и при вычитании аналогичных чисел для указания необходимости заема "1" из старшего разряда. Программа может использовать этот флаг для определения соотношения двух чисел: и . Если выполняется операция и CF = 1, то (если CF = 0, то );
− признак AF позволяет МП выполнять операции десятичной арифметики, когда данные хранятся в двоично-десятичном коде;
− флаг переполнения OF показывает, что результат арифметической операции вышел за пределы диапазона чисел, представленных в дополнительном коде.
Остальные признаки регистра устанавливаются программистом:
− если IF = 0, то никакие внешние прерывания (за исключением немаскируемых) не смогут возникнуть;
− после занесения в TF единицы при завершении каждой команды возникает прерывание работы МП. Это помогает на этапе отладки программы;
− когда IF = 1, МП будет реагировать на внешние прерывания;
− признак DF используется при обработке блоков данных.
Для указания объектов (байтов или слов) в каждом блоке применяются индексные регистры. После обработки объекта МП изменяет содержимое индексных регистров для выбора следующего элемента данных:
− если DF = 0, то команды, работающие с блоками, увеличивают содержимое индексных регистров, при DF = 1 содержимое этих регистров уменьшается.
Рис. 2.11. Логическая организация МП Intel 8086
Шесть 8-разрядных регистров очереди команд являются программно-недоступными. Они организованы по принципу "первый пришел – первый вышел".
Схемы управления координируют работу МП.
Арифметико-логическое устройство (АЛУ) выполняет арифметически и логические операции над различными операндами.
2.2.1.4 Особенности процессоров фирмы Intel
В 1969 г. компания Biscom заключила контракт с тогда еще малоизвестной фирмой Intel на разработку комплекта микросхем для калькуляторов. Разработчики применили новый подход и спроектировали универсальную микросхему – процессорный элемент, который заменил собой большое количество дискретных компонентов. Он составил основу созданного набора из четырех микросхем. Фирма Intel выкупила у Biscom права на эту микросхему и, немного усовершенствовав, в 1971 г. выпустила ее под индексом i4004. С этого скромного 4-разрядного процессорного элемента, содержавшего на кристалле 2 300 транзисторов и имевшего производительность 60 тыс. операций в секунду, началась эпоха микропроцессоров. Позже появилось устройство под номером i8008. Оно имело 8 линий данных и по производительности превосходило i4004 в несколько раз.
Первым микропроцессором, на базе которого был построен компьютер, стал i8080. Он был выпущен в 1974 г., имел 8-раз-рядную шину данных и 16-разрядную шину адреса. Для него была разработана простая и удобная система команд на 256 операций.
В целях построения на его основе компактной компьютерной системы был разработан целый комплект сопутствующих микросхем и специализированных программируемых периферийных контроллеров. Каждая из этих микросхем заменяла целый компьютерный блок, и их применение при разработке вычислительных устройств позволило резко уменьшить их размеры.
В 1979 г. фирма Intel открыла следующую страницу в истории микропроцессоров. Она предложила на суд пользователей процессор i8086, значительно отличавшийся от предшественников, которому суждено было стать родоначальником целого направления среди микропроцессоров.
МП i8086 имел 16-разрядную внутреннюю архитектуру, внешнюю шину данных той же разрядности, 20-разрядную шину адреса, позволявшую работать с адресным пространством в 1 Мбайт. В нем была реализована новая система команд, не совместимая с набором МП 8080.
Для обеспечения функционирования МП i8086 фирма выпустила набор сопутствующих микросхем и программируемых контроллеров, продолжая серию, начатую для МП 8080.
Через год фирма представила модель процессора i8088 с той же 16-разрядной архитектурой, но с 8-разрядной внешней шиной данных. Начальные модификации МП работали с частотой 4,77 МГц, у последующих она была повышена до 8 МГц. Знаменитым этот кристалл сделало то, что фирма IBM выбрала его для создания своего первого компьютера массового применения PC, а позднее и PC XT.
Процессор Intel 80286. Выпущен в 1984 г., имел 16-разрядную внутреннюю архитектуру, 16-разрядную внешнюю шину данных и 24-разрядную внешнюю шину адреса. Увеличение разрядности шины адреса увеличило адресное пространство до 16 Мбайт. Для него разработан математический сопроцессор i80287. На базе процессора 80286 построен компьютер PC AT.
Этот процессор может работать в двух режимах:
− в рабочем ("реальном") он ведет себя как процессор 8088 с расширенным набором команд и поэтому может иметь доступ только к первому мегабайту памяти;
− в "защищенном" режиме работы процессор имеет 24-раз-рядную адресную шину, что в 3 раза больше, чем у процессора 8088, следовательно, в "защищенном" режиме он может иметь доступ непосредственно к 16 Мбайт памяти.
Процессор Intel 80386DX. Замечательной особенностью этого процессора является его 32-разрядная архитектура: 32 линии передачи данных и 32 адресные линии. Таким образом, этот процессор может параллельно передавать 4 байт данных и адресовать оперативную память объемом до 4 Гбайт. Компьютеры, оснащенные такими процессорами, могут удовлетворить высоким требованиям, предъявляемым к управлению программами и большими массивами данных.
Другими преимуществами процессора 80386, по сравнению с процессором 80286, являются доступ к расширенному набору команд и использование системы мультипрограммирования. Одновременно может выполняться несколько прикладных программ. Еще одно преимущество работы процессора 80386 – это "виртуальный" режим, раскрывающий истинные достоинства этого процессора. В "виртуальном" режиме одновременно могут быть запущены несколько программ, которые выполняются как бы различными процессорами 8088, т. е. становится возможным многозадачный режим, реализуемый с помощью разработанной для процессоров 8088 операционной системы MS-DOS.
Процессор Intel 80486 DX. Этот 32-разрядный процессор работает с тактовой частотой до 50 МГц до появления процессора Pentium представлял собой самый совершенный процессор из семейства Intel 8086. В апреле 1989 г. он был представлен на широкое обозрение и уже полгода спустя в больших количествах стал доступен изготовителям компьютеров. По сравнению с предшественником (80386) процессор 80486 имеет большую скорость обработки основных команд, использует новый улучшенный интерфейс с оперативной памятью и встроенный сопроцессор. Повышение производительности процессора 80486 обусловлено рядом усовершенствований, в том числе встроенным сопроцессором и интегрированной кэш-памятью объемом 8 кбайт. Размещение сопроцессора на общем чипе в отличие от прежних моделей, основанных на использовании центрального процессора и дополнительного сопроцессора, имеет много преимуществ.
Процессор Pentium. Pentium 60 с тактовой частотой 66 МГц представляет собой суперскалярный 32-разрядный процессор, построенный по субмикронной технологии с комплементарной МОП-структурой (0,8 мкм) и состоящий из 3,1 млн транзисторов. Он поддерживает команды процессора 80486 и, подобно предшественнику, имеет внутренний блок для проведения операций с плавающей точкой, а также кэш-память на 16 кбайт, устройство управления па-мятью (MMU) и интеллектуальный буфер – предсказания ветвлений (branch target buffer).
Процессор Pentium имеет два 32-битовых адресных пространства (логическое и физическое) и 64-разрядную шину данных, что объясняет отчасти повышение производительности процессора. При этом центральный процессор имеет две конвейерные линии обработки команд, работающие параллельно и тем самым позволяющие процессору выполнять два набора команд за один такт. Благодаря разделению кэш-памяти (8 кбайт для команд и 8 кбайт для данных) исключаются наложения команд данных.
2.4 Запоминающие устройства
2.4.1 Организация оперативной памяти
2.4.1.1 Организация доступа памяти в Intel-совместимых процессорах
Местоположение любого байта внутри адресного пространства размером в 1 Мбайт микропроцессора 8086 определяется двумя величинами: адресами сегмента и смещения, формирующими сегментный адрес.
МП манипулирует логическими адресами, содержащими 16-разрядный сегментный (базовый) адрес и 16-разрядное внутрисегментное смещение. Механизм сегментации предполагает разбиение всего адресуемого пространства на области (сегменты) по 64 кбайт каждая.
Физический адрес (рис. 2.12) получается из адреса сегмента и
Рис. 2.12. Вычисление физического адреса в реальном режиме
процессора 8086
смещения следующим образом: над адресом сегмента выполняется операция арифметического сдвига влево на 4 бит (к двоичному представлению числа справа дописывается 4 нулевых бита), а затем к полученному числу прибавляется значение смещения.
Сегментация памяти в процессоре 8086 обладает следующими особенностями, которые можно считать ее недостатками с точки зрения разработчиков многозадачных систем:
1. Сегменты памяти имеют всего два атрибута: начальный адрес и максимальный размер 64 кбайт. Никаких аппаратных средств контроля правильности использования сегментов нет.
2. Размещение сегментов памяти произвольно: они могут частично или полностью перекрываться (поскольку начальный адрес сегмента совпадает с адресом параграфа, кратного 16) или не иметь общих областей.
2.4.1.2 Области памяти IBM-совместимых персональных
компьютеров
Свои первые компьютеры фирма IBM спроектировала на базе МП J8086/88. Процессор имел адресное пространство 1 Мбайт, что в сравнении с 64 кбайт у его предшественника МП 08080 было очень много. Адресное пространство было разделено на две области (рис. 2.13).
Рис. 2.13. Логическая структура адресного пространства ПК класса XT
Назначение областей оперативной памяти:
1. Базовая память (Conventional Memory Area – CMA) располагается по адресам от 0000h до FFFFh (здесь и далее числа h на конце представлены в шестнадцатеричной системе счисления), т. е. имеет размер 640 кбайт. В ней может размещаться резидентная часть MS-DOS, а также резидентные и нерезидентные программы пользователя, которым размера CMA достаточно для работы. В ней могут размещаться как коды исполняемых программ, так и данные к ним.
2. Верхняя память (Upper Memory Area – UMA) располагается по адресам с 10000h по FFFFFh (от 640 кбайт до первого мегабайта), ее размер составляет 384 кбайт, без специальных драйверов она не доступна. В базовой памяти выделены рабочие области для операционной системы, размещения драйверов и пользовательских программ.
Адресное пространство в 1 Мбайт – это совсем немного, а процессоры Intel 8086/88 могли работать только с 1-мегабайтным адресным пространством. Возникла необходимость организации дополнительного объема памяти вне этой области. За решение данной задачи взялись совместно фирмы Lotus, Intel, Microsoft. Результатом их деятельности стала спецификация доступа к дополнительной памяти LIM EMS (Lotus, Intel, Microsoft Expanded Memory Specification). Был разработан стандарт организации дополнительной памяти (Expanded Memory Specification – EMS). EMS версии 3.2 обеспечивала поддержку 8 Мбайт дополнительной памяти, a EMS версии 4.0 обеспечивала поддержку 32 Мбайт.
Был предложен механизм создания дополнительной памяти (EMA), находящейся вне адресного поля. Для ее построения в системный разъем вставляется плата, содержащая дополнительный объем памяти (рис. 2.14).
Следующий процессор i80286 имел 16-мегабайтное адресное пространство. Весь объем ОЗУ "выше" одного мегабайта получил название расширенной памяти (XMA) (рис. 2.15). Использование расширенной памяти получило название стандарта (XMS). К моменту появления процессора уже был накоплен довольно большой объем программного обеспечения. Для того чтобы новый МП мог его использовать, в пределах первого мегабайта ОЗУ он должен был работать так же, как и его предшественник. Исходя из этого процессор построен таким образом, что он может функционировать в двух режимах:
− реальный, когда он работает как обычный i8086/88;
− защищенный, позволяющий ему вести обмен с расширенной памятью.
Поддержка этих двух режимов сохранена во всех последующих моделях процессоров.
Позже обнаружилась возможность обращения к первым 64 кбайт расширенной памяти, не выходя из реального режима. Этот участок адресного пространства получил название "область старшей памяти" (HMA), или "старшие адреса" (рис. 2.15).
Рис. 2.14. Структура памяти ПК Рис. 2.15. Логическая структура
в соответствии с концепцией EMS адресного пространства ПК класса АТ по концепции XMS)
В результате структура памяти компьютера может быть организована из четырех областей, различающихся местоположением в адресном пространстве, и одной дополнительной области, находящейся вне адресного поля. Необходимую для работы комбинацию этих областей пользователь определяет и выстраивает сам.
Организация памяти компьютера из нескольких областей, имеющих различное назначение, создавала большие сложности в работе. Место, где размещаются все исполняемые программы (базовая память), эксплуатируется очень интенсивно, а по размеру оно невелико; остальной объем (расширенная память) может быть значительно больше, но используется мало и только для сохранения данных или программ. С этим приходилось мириться. Несмотря на очевидные неудобства и сложности в работе, подобная структура памяти сохранялась на IBM-совместимых машинах весь период времени, когда в качестве операционной системы (ОС) использовалась MS-DOS. Отказ от нее стал возможен только с появлением ОС нового типа Windows 95/98.
В настоящее время проблема распределения памяти потеряла остроту. Однако большинству пользователей в той или иной степени все равно придется с этим столкнуться.
Краткая характеристика областей памяти в случае исполь-зования MS-DOS:
Базовая память (Base, Conventional) – основная память компьютера; занимает в массиве ОЗУ первые 640 кбайт (адреса 000 000–655 359), условно разбитые на 10 сегментов (0–9) по 64 кбайт каждый: в нее загружается DOS (рис. 2.16).
В первых двух килобайтах 0-го сегмента (адреса 0000–2048) размещены рабочие области DOS и BIOS, буферы устройств, таблицы векторов прерываний. Следующие несколько десятков килобайт используются для размещения драйверов операционной системы.
Оставшийся массив базовой памяти считается свободным и может быть использован прикладными (пользовательскими) программами. Объем свободной базовой памяти имеет для пользователя большое практическое значение. Многие программы предъявляют жесткие требования: "объем базовой памяти не менее ..." Если в компьютере на момент запуска этой программы памяти хотя бы чуть-чуть меньше, то работать она не станет. Для того чтобы освободить максимально возможный объем базовой памяти, используются всевозможные ухищрения. Например, драйверы устройств стремятся разместить в верхней памяти (UMA) или старших адресах (НМА).
Рис. 2.16. Структура базовой памяти
Верхняя память (UMA – Upper Memory Area) – область ОЗУ между 640 кбайт и 1 Мбайт (1024 кбайт). Она зарезервирована для служебных целей.
Адресное поле сегментов А и В используется для размещения ОЗУ видеоконтроллеров (рис. 2.17).
Свободные области UMA, сегменты С, D, Е и F обычно используются программами-админи-страторами расширенной памяти для помещения в них резидентных программ и ядра DOS. Свободных фрагментов в UMA несколько, они называются блоками верхней памяти (Upper Memory Blocks – UMB). Поскольку размеры блоков UMA невелики, то нерезидентные программы туда обычно не загружаются, так как их код должен занимать непрерывную область памяти.
В настоящее время в этой области только два участка жестко закреплены за конкретными устройствами:
- в адресном пространстве сегмента С размещено ПЗУ видеоконтроллера (контроллер EGA использует 16 кбайт, VGA – 32 кбайт);
Рис. 2.17. Организация верхней памяти
- пространство сегмента F занято системным ПЗУ, находящимся на материнской плате.
Оставшиеся участки могут использоваться пользователем по своему усмотрению. В верхней памяти может быть создана теневая память (Shadow), т. е. в некоторых участках адресного пространства верхней памяти оказались параллельно подключенными оперативная память и блоки ПЗУ, находящиеся на материнской плате и контроллерах. Таких участков в настоящее время два: сегмент F и частично сегмент С. Обычно работает ПЗУ. Проектировщиками материнских плат был предложен вариант функционирования системы, при котором вместо медленного ПЗУ применяется более быстрое ОЗУ. По желанию пользователя возможен режим начальной загрузки компьютера, когда содержимое блоков ПЗУ переписывается в параллельные области ОЗУ, и в дальнейшем обращение идет к ним. Фактически в оперативной памяти создается копия – "тень" ПЗУ, отсюда и название режима. Управление работой теневой памяти выполняется через программу Setup.
Свободные участки в сегментах С, D и Е могут быть преобразованы при помощи утилиты EMM386.exe в блоки, пригодные для хранения информации. В них как правило размещены системные программы и драйверы. Весь объем верхней памяти, находящейся под управлением EMM386.exe, получил название UMB.
На 286-й и 386-й материнских платах с верхней памятью может быть выполнена переадресация (remaping). В аппаратной части этих плат была заложена возможность программного переключения (условного перемещения) части верхней памяти в область расширенной (сразу после первого мегабайта). Такой режим давал возможность на материнских платах, реально имеющих всего 1 Мбайт ОЗУ, создать область расширенной памяти и устанавливать на компьютер ОС Windows. На некоторых платах при создании режима Shadow переадресацию выполнить нельзя.
Расширенная память (EMA – Extended Memory Area) – весь объем ОЗУ "выше, старше" первого мегабайта. Доступ к ней организуется при помощи драйвера HIMEM.sys (область, находящаяся под его управлением, получила название XMS – Extended Memory Specification).
В системах "под DOS" возможности этого вида памяти ограничены:
− в расширенной памяти не может находиться операционная система;
− в ней невозможно создание рабочих областей устройств;
− находящиеся в EMA программы не могут быть выполнены.
В основном расширенная память используется для сохранения данных и программ. В составе ОС MS-DOS есть драйверы RAMDRIVE.sys и SMARTDRV.exe, ориентированные на работу с EMA. Для записи в расширенную память или считывания оттуда они переводят МП в защищенный режим, а затем возвращают в реальный.
Область старшей памяти, старшие адреса (НМА – High Memory Area) – область первых 64 кбайт (без 16 байт) расширенной памяти, доступ к которым можно получить без выхода из реального режима. Это дополнительный участок ОЗУ, пригодный для размещения компонентов операционной системы.
Для того чтобы объяснить, откуда появились эти 64 кбайт памяти, вспомним, как формируется адрес в МП. Если в старшие 16 разрядов сегментного регистра загрузить максимальное значение FFFF16 (a 4 младших автоматически устанавливаются в нуль) и задать смещение FFFF16, можно получить предельный адрес равный l'0FFEF16 (рис. 2.18). Адресный интервал 10000016 – l'0FFEF16 и составляет область старшей памяти. Управление размещением данных в старших адресах возложено на драйвер HIMEM.sys.
Рис. 2.18. Формирование адресного интервала области старшей памяти
Дополнительная память (Expanded Memory Area).
В компьютере доступ к дополнительной памяти (LIM EMS) реализует драйвер EMM386.exe. Для него необходим свободный участок ОЗУ размером в 64-килобайтный страничный блок (обычно он берется в верхней памяти – окно EMA). В процессе работы он делится на четыре 16-килобайтные логические страницы. На такие же по размеру страницы делится весь имеющийся объем дополнительной памяти. В логические страницы заносится информация, требующая сохранения. После этого их содержимое путем определенной программной процедуры копируется на одну из страниц дополнительной памяти. Затем в логические страницы помещается следующая порция данных и процедура повторяется. Страничный блок как перемещающееся смотровое окошко имеет доступ к любой точке области дополнительной памяти. Через него производится как запись, так и считывание.
Дополнительная память может быть использована для хранения данных и программ. С помощью драйверов RAMDRIVE.sys и SMARTDRV.exe в ней могут быть созданы электронный диск и буферы дисковых накопителей. Спецификацией EMS могут пользоваться только специально разработанные для этого программы. В связи с необходимостью частого переключения страниц и копирования их в UMA отображаемая память работает довольно медленно.
Электронный диск – программно построенная структура, по организации и принципу работы с ним идентичная логическому диску на винчестере. Доступ к нему при записи или чтении выполняется быстрее, так как нет медленной операции перемещения головок. Емкость невелика (не может превосходить по объему расширенную память). На электронном диске удобно держать короткие часто исполняемые программы. При выключении компьютера все содержимое диска теряется.
Виртуальная память – это такая система организации выполнения задания, при которой часть программы располагается в быстродействующей памяти (микросхемах), а часть – на некотором более медленном и дешевом запоминающем устройстве (например, жестком диске). Виртуальная организация памяти позволяет программисту работать, не заботясь о емкости реальной памяти. В системах виртуальной памяти диск превращается в основную память, а RAM (реальная память) содержит код и данные, используемые процессорами.
Механизм виртуальной памяти, реализованный на процессоре 80286, позволяет организовать виртуальную память большого объема при относительно небольших размерах оперативной и дисковой памяти. Основная идея виртуальной памяти заключается в хранении и обновлении на диске сегментов программы и загрузки их в оперативную память по мере необходимости. Процесс загрузки и выгрузки сегментов называется свопингом.
В версиях DOS6.x появилась утилита MEMMAKER, которая автоматически оптимизирует использование верхней памяти. Поскольку эта память фрагментирована, то не всегда удается вручную загрузить туда все желаемые резиденты. Кроме того, некоторые резидентные программы могут менять свой размер после загрузки. MEMMAKER просчитывает все возможные комбинации распределения программ по блокам верхней памяти (их может быть несколько десятков тысяч) и выбирает из них оптимальную. Следует отметить, что с этой задачей MEMMAKER справляется далеко не лучшим образом, поскольку он не обрабатывает командные файлы, вызываемые из файла AUTOEXEC.BAT, а также не способен изменить порядок загрузки драйверов и резидентов, что могло бы привести к более удачному варианту их размещения в верхней памяти. Однако существует специально разработанные драйверы оптимизации, позволяющие добиться лучших результатов: QEMM386, 386MAX и др.
... вычислительной техники, а также принципы функционирования этих средств и методы управления ими. Из этого определения видно, что информатика очень близка к технологии, поэтому ее предмет нередко называют информационной технологией. Предмет информатики составляют следующие понятия: а) аппаратное обеспечение средств вычислительной техники; б) программное обеспечение средств вычислительной техники ...
... – набор утилит и некоторые инструментальные программы (пользовательский интерфейс). К третьему уровню относятся все остальные программы. Программы второго и третьего уровней хранятся в файлах. Программное обеспечение первого уровня является машинно-зависимым [computer-independent]. То есть для каждого микропроцессора или семейства ЭВМ набор данных программ уникален. Операционная система имеет ...
... Вы сможете работать на своем компьютере. От выбора ОС зависят также производительность вашей работы, степень защиты Ваших данных, необходимые аппаратные средства и т.д. [9] 5. Персональная ЭВМ: развернутая структура; структура программного обеспечения; выбор ПЭВМ (если возможно, то по прайс-листу некоторой фирмы). Развернутая структура (тонкие линии показывают управляющие связи, толстые – ...
... » (Zero Administration Initiative), которая будет реализована во всех следующих версиях Windows. SMS- сервер управления системами У SMS две задачи — централизовать управление сетью и упростить распространение программного обеспечения и его модернизацию на клиентских системах. SMS подойдет и малой, и большой сети — это инструмент управления сетью на базе Windows NT, эффективно использующий ...
0 комментариев