Программа, написанная на языке ассемблера, точно так же, как программа написанная на любом другом языке программирования, выполняется не сама по себе, а в среде той или иной операционной системы. Операционная система выделяет область памяти для программы, загружает её, передаёт ей управление и отвечает на её запросы, обеспечивая тем самым взаимодействие с устройствами ввода-вывода, другими программами и прочими компонентами.
Самая простая операционная система для ЭВМ, основанных на процессорах семейства IA-32, — DOS. Она по сей день распространяется как сама по себе несколькими производителями, так и в виде части ОС Microsoft Windows.
DOS предоставляет программам полную свободу действий, никак не ограничивая их доступ к памяти и внешним устройствам, позволяя им самим управлять процессором и всеми остальными компонентами. По этой причине DOS достаточно удобен для изучения устройства ЭВМ.
Итак, чтобы программа выполнилась любой ОС, она должна быть скомпилирована в исполняемый файл. В DOS есть два формата исполняемых файлов: COM и EXE.
Файлы типа COM содержат только код программы без какой-либо дополнительной информации. Такая программа имеет только один сегмент, в котором размещаются код, данные и стек. Размер сегмента не может превышать 64 Кб.
Файлы типа EXE, помимо кода программы, содержат заголовок, где описывается размер файла, требуемый объём памяти, список команд в программе, использующих абсолютные адреса, и потому требующих настройки и другое. Программа типа EXE может иметь любое количество сегментов и любой размер. Формат EXE используется также для исполняемых файлов в различных вариантах расширителей DOS и Microsoft Windows, но с большими изменениями.
Кроме обычных исполняемых программ, DOS может загружать также драйверы — специальные программы, используемые для упрощения доступа к внешним устройствам.
Примечание. Несмотря на то, что программам типа COM принято давать расширение com, а программам типа EXE — exe, DOS не использует расширение для определения типа исполнимого модуля. Модуль считается имеющим тип EXE, если одновременно выполнены два условия:
— первые два байта в файле — «MZ» или «ZM»;
— длина файла больше порогового значения.
Пороговое значение отличается в разных версиях DOS.
При невыполнении хотя бы одного условия программа считается имеющей тип COM.
Параллельную обработку данных обычно разделяют на два типа: параллелизм на уровне команд и параллелизм на уровне процессоров. Граница между тем и другим весьма нечёткая, но к первому типу относят одновременное выполнение нескольких действий одним процессором, а ко второму — одновременную работу различных процессоров.
10.1. Общие принципы
10.1.1. Конвейеры
10.1.2. Суперскалярная архитектура
10.1.3. Предсказание ветвлений
10.2. Микроархитектура процессоров семейства P6
10.2.1. Краткие характеристики
10.2.2. Блок выборки и декодирования
10.2.3. Блок исполнения
10.2.4. Блок возврата
[5, 9, 13]
Первым препятствием повышению скорости выполнения команд является их вызов из памяти. Для преодоления этого препятствия было разработано средство для вызова команд из памяти заранее, чтобы они имелись в наличии в тот момент, когда будут необходимы. Эти команды помещаются в специальный набор регистров, называемый буфером выборки с упреждением. Таким образом, когда нужна команда, она вызывается прямо из буфера, находящегося внутри процессора, и нет необходимости ждать, пока она считается из ОЗУ. Эта идея использовалась ещё при разработке IBM Stretch, которая была сконструирована в 1959 году.
Процесс выборки с упреждением подразделяет выполнение команды на два этапа: выборку и собственно выполнение. Конвейеризация — это дальнейшее развитие той же идеи. Здесь выполнение команды подразделяется не на два, а большее количество этапов, каждый из которых выполняется определённым блоком процессора, причём все эти блоки могут работать параллельно.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.