- •1, 2,... Данная совокупность ячеек называется оперативной памятью.
- •I80386 первым из семейства процессоров Intel стал поддерживать возможность
- •23Формирование адреса. Сегментная адресация в реальном и защищенном режимах. Размер сегмента. Адресное пространство.
- •I80386 с 32-разрядной шиной команд и данных в целях совместимости программ
- •II локальная дескрипторная таблица (Local Descriptor Table, ldt), ее адрес хра-
- •24.Формирование адреса. Страничная адресация.
- •Is Первую группу образуют пользовательские регистры, к которым относятся:
- •Il указателей на ячейки памяти.
- •II регистр-счетчик (Count register) ecx/cx/ch/cl применяется в командах, произ-
- •26Дескрипторы сегментов. Глобальные и локальные таблицы дескрипторов. Регистры gdtr и ldtr. Селекторы.
- •34Команды безусловной передачи управления. Команды вызова процедур и возврата из процедуры.
- •II промежуточный вариант — внутри другой процедуры или основной программы (в этом случае необходимо предусмотреть обход процедуры с помощью команды безусловного перехода j м р);
- •35Команды условной передачи управления. Команды организации циклов.
- •Как видите, большая часть полей предназначена для хранения содержимого регистров общего назначения и сегментных регистров
Архитектура процессоров семейства х86. Процессор 8086. Процессор 80386. Организация стека.
Архитектура ЭВМ
Однозначно определить понятие архитектуры ЭВМ довольно трудно, потому что
при желании в него можно включить все, что связано с компьютерами вообще и ка-
кой-то конкретной моделью компьютера в частности. Попытаемся все же его фор-
мализовать.
Архитектура ЭВМ — это абстрактное представление ЭВМ, которое отражает
ее структурную, схемотехническую и логическую организацию. Понятие архитек-
туры ЭВМ является комплексным, в него входят:
структурная схема ЭВМ;
средства и способы доступа к элементам структурной схемы ЭВМ;
организация и разрядность интерфейсов ЭВМ;
набор и доступность регистров;
организация и способы адресации памяти;
способы представления и форматы данных ЭВМ;
набор машинных команд ЭВМ;
форматы машинных команд;
правила обработки нештатных ситуаций (прерываний).
Таким образом, описание архитектуры включает в себя практически всю необ-
ходимую для программиста информацию о компьютере. Понятие архитектуры
ЭВМ — иерархическое. Допустимо вести речь как об архитектуре компьютера в це-
лом, так и об архитектуре отдельных его составляющих, например, архитектуре
процессора или архитектуре подсистемы ввода-вывода.
Все современные компьютеры обладают некоторыми общими и индивидуаль-
ными архитектурными свойствами. Индивидуальные свойства присущи только
конкретной модели компьютера и отличают ее от своих больших и малых собрать-
ев. Общие архитектурные свойства, наоборот, присущи некоторой, часто доволь-
но большой группе компьютеров. На сегодняшний день общие архитектурные
свойства большинства современных компьютеров подпадают под понятие фон-ней-
мановской архитектуры. Так названа архитектура по имени ученого фон Нейма-
на. Когда фон Нейман начал заниматься компьютерами, программирование по-
следних осуществлялось способом коммутирования. В первых ЭВМ для генерации
нужных сигналов необходимо было с помощью переключателей выполнить руч-
ное программирование всех логических схем. В первых машинах использовали де-
сятичную логику, при которой каждый разряд представлялся десятичной цифрой
и моделировался 10 электронными лампами. В зависимости от нужной цифры одна
лампа включалась, остальные девять оставались выключенными. Фон Нейман
предложил схему ЭВМ с программой в памяти и двоичной логикой вместо деся-
тичной. Логически машину фон Неймана составляли пять блоков (рис. 2.1): опе-
ративная память, арифметико-логическое устройство (АЛУ) с аккумулятором,
блок управления, устройства ввода и вывода. Особо следует выделить роль акку-
мулятора. Физически он представляет собой регистр АЛУ. Для процессоров Intel,
в которых большинство команд — двукоперандные, его роль не столь очевидна. Но
существовали и существуют процессорные среды с однооперандными машинны-
ми командами. В них наличие аккумулятора играет ключевую роль, так как боль-
шинство команд используют его содержимое в качестве либо второго, либо един-
ственного операнда команды.
Схема машины фон Неймана
Ниже описаны свойства и принципы работы машины фон Неймана.
Линейное пространство памяти. Для оперативного хранения информации компь-
ютер имеет совокупность ячеек с последовательной нумерацией (адресами) О,
1, 2,... Данная совокупность ячеек называется оперативной памятью.
Принцип хранимой программы. Согласно этому принципу, код программы и ее
данные находятся в одном и том же адресном пространстве оперативной
памяти.
Принцип микропрограммирования. Суть этого принципа заключается в том, что
машинный язык еще не является той конечной субстанцией, которая физически
Архитектура 1А-32 29
приводит в действие процессы в машине. В состав процессора (см. главу 1) вхо-
дит устройство микропрограммного управления, поддерживающее набор дей-
ствий-сигналов, которые нужно сгенерировать для физического выполнения
каждой машинной команды.
в Последовательное выполнение программ. Процессор выбирает из памяти коман-
ды строго последовательно. Для изменения прямолинейного хода выполнения
программы или осуществления ветвления необходимо использовать специаль-
ные команды. Они называются командами условного и безусловного переходов.
* Отсутствие разницы между данными и командами в памяти. С точки зрения
процессора, нет принципиальной разницы между данными и командами. Дан-
ные и машинные команды находятся в одном пространстве памяти в виде по-
следовательности нулей и единиц. Это свойство связано с предыдущим. Про-
цессор, поочередно обрабатывая некоторые ячейки памяти, всегда пытается
трактовать содержимое ячеек как коды машинных команд, а если это не так, то
происходит аварийное завершение программы. Поэтому важно всегда четко
разделять в программе пространства данных и команд.
ii Безразличие к назначению данных. Машине все равно, какую логическую на-
грузку несут обрабатываемые ею данные.
Данный учебник посвящен вопросам программирования процессоров фирмы
Intel и Intel-совместимых процессоров других фирм. Поэтому в качестве примера
индивидуальных архитектурных принципов компьютера, в силу иерархичности
этого понятия, рассмотрим индивидуальные архитектурные принципы и свойства
процессоров Intel. Их полное рассмотрение не является нашей целью, уделим вни-
мание лишь тем их них, которые наиболее характерны и понадобятся нам для даль-
нейшего изложения. Более подробно вопросы организации архитектуры компью-
тера описаны в [7].
Согласно материалам фирмы Intel, индивидуальные архитектурные свойства
и принципы работы всех ее процессоров, начиная с i8086 и заканчивая Pentium IV,
выстроены в рамках единой архитектуры, которая позже получила название IA-32
(32-bit Intel Architecture). Эта архитектура не является «закостенелым» образова-
нием. В процессе эволюции процессоров Intel она постоянно изменяется и разви-
вается. Каждый из процессоров вносил в IA-32 одно или несколько архитектур-
ных новшеств. Несмотря на то, что датой рождения архитектуры IA-32 нужно
считать дату появления на свет процессора i80386, предыдущие модели процессо-
ров также внесли существенный вклад в представление ее принципов и свойств.
Если вернуться к материалу главы 1, то можно проследить за вкладом, который
внес каждый из процессоров Intel в ходе своей эволюции в формирование элемен-
тов архитектуры IA-32. Так, благодаря процессорам 18086/88 в IA-32 существует
сегментация памяти, i80286 ввел защищенный режим и т. д.
Очередной революционный процессор Intel — 18086 — появился в 1978 г. Его
основные характеристики —наличие 16-разрядных регистров, 16-разрядной шины
данных. Поддержка сегментной организации памяти наряду с 20-разрядной ши-
ной адреса позволяла организовать адресацию памяти в пределах 1 Мбайт при до-
ступности адресного пространства размером 256 Кбайт. С целью занятия более
широкой ниши на рынке Intel вскоре представила более дешевый вариант этого
процессора —18088. При внутренней 16-разрядной архитектуре 18086 он имел 8-раз-
рядную шину данных, вследствие чего был менее производителен. Важно отме-
тить, что дешевизна достигалась в основном не за счет дешевизны самого процес-
сора, а за счет удешевления конечного продукта — компьютера на его основе. Другой
причиной появления и широкого распространения 18088 было наличие большого
количества 8-разрядных внешних устройств. 8-разрядная шина данных 18088 по-
зволяла упростить процесс сопряжения с этими устройствами. Отметим, что од-
ним из внешних устройств, поддерживаемых процессорами 18086/88, был матема-
тический сопроцессор 18087, который мог устанавливаться в специальный разъем
материнской платы. Это позволяло более эффективно выполнять операции с пла-
вающей точкой в соответствии со стандартом IEEE-754. Важно также подчерк-
нуть, что, начиная с 18086/88, все процессоры Intel совместимы «снизу вверх».
Следствием этого является гарантированная возможность запуска на современ-
ном процессоре Pentium практически любой программы, написанной для 18086/88
(естественно, при соответствующей поддержке системного программного обеспе-
чения).
Мощным стимулом к развитию многозадачных систем стали возможности, пре-
доставляемые новым процессором i80386, выпущенным Intel в 1985 г. Это был
первый 32-разрядный процессор, который положил начало семейству процессо-
ров IA-32 (32-bit Intel Architecture). Главные отличительные особенности: 32-раз-
рядные шины адреса и данных (адресация оперативной памяти — до 4 Гбайт);
увеличенная до 32 битов разрядность внутренних регистров процессора; введение
третьего режима работы процессора (режима виртуального процессора 8086); под-
держка страничной адресации памяти, благодаря которой стало возможном за счет
дисковой памяти виртуализировать доступ к оперативной памяти и теоретически
расширить ее рамки вплоть до 4 Гбайт. Аналогично ситуации с 18086 и 18088, одно-
временно был выпущен более дешевый вариант процессора i80386 (180386-DX)
с 16-разрядной шиной данных — 180386-SX. При необходимости на материнскую
плату можно было установить и математический сопроцессор 180387. Процессор