Скачать 1.25 Mb.
|
39. Ввод-вывод на уровне команд В современных персональных компьютерах используются три различные схемы ввода-вывода:
Наиболее простым является программируемый ввод-вывод, который часто применяется в дешевых микропроцессорах Между фиксированным регистром в процессоре и выбранным устройством ввода-вывода передается один символ. Процессор должен выполнять определенную последовательность команд при каждом считывании или записи символа. Для каждого устройства (ввода и вывода) используется пара регистров: регистр состояния (РС) и регистр данных (РД). процессор анализирует готовность устройства (проверяя некоторые разряды РС) и при готовности считывает (при вводе) или записывает (при выводе) очередной байт или слово регистра данных. Основной недостаток программируемого ввода-вывода заключается в том, что центральный процессор проводит большую часть времени в цикле ожидания готовности устройства. Такой процесс называется активным ожиданием. Ввод-вывод с управлением по прерываниям избавляет процессор от активного ожидания. В этом режиме центральный процессор запускает устройство ввода-вывода и далее занимается своей работой. По завершении операции ввода/вывода устройство выдает запрос на прерывание. Разрешением прерываний управляет программа (т.е. фактически процессор), устанавливая, например, бит разрешения прерываний в регистре устройства. Недостатки: прерывание происходит для каждого передаваемого символа, что нерационально. Часто требуется обрабатывать результаты ввода лишь по заполнении целого буфера. Решение состоит в возвращении к программируемому вводу-выводу, но осуществляется он независимо отдельным устройством - контроллером прямого доступа к памяти (ПДП), который имеет прямой доступ к шине. Микросхема ПДП может иметь 4 регистра, которые загружаются выполняемой центральным процессором программой. Первый регистр хранит адрес памяти для обмена данными, второй - количество передаваемых байтов или слов. Третий регистр содержит номер или адрес соответствующего устройства ввода-вывода. Четвертый регистр сообщает, должны данные считываться с устройства или записываться на него. При наличии контроллера ПДП центральному процессору достаточно инициализировать несколько регистров. После этого он может выполнять другую работу до тех пор, пока передача данных не завершится. По окончании передачи данных центральный процессор получает сигнал прерывания от контроллера ПДП. Некоторые контроллеры ПДП содержат два, три и более наборов регистров, которые могут управлять несколькими процессами передачи данных одновременно. Этот режим также имеет недостатки. Если некоторое высокоскоростное устройство, например диск, будет запускаться контроллером ПДП, то потребуется много циклов шины для обращений к памяти. ПДП имеет более высокий приоритет на доступ к шине, чем центральный процессор, поскольку устройства ввода-вывода обычно не допускают задержек. Во время этих циклов центральный процессор будет простаивать. Ситуация отбирания контроллером ПДП циклов шины у центрального процессора называется захватом цикла. (на обороте…) | |||
40. Команды процессора Pentium II Многие команды Pentium II обращаются к одному или к двум операндам, которые находятся в регистрах или в памяти. Большинство команд имеют несколько различных кодировок в зависимости от природы операндов. В таблице для операндов используются обозначения SRC - источник информации (SOURCE, не меняется данной командой), и DST - приемник (DESTINATION, изменяется командой). Существуют правила относительно того, что может быть источником, а что приемником, но мы здесь о них не говорим. Многие команды имеют три варианта: для 8-, 16- и 32-битных операндов соответственно. Они различаются по коду операции и/или по одному биту в команде. Здесь приведены в основном 32-битные команды. Команды в таблице разделены на несколько групп. Первая содержит команды, перемещения данных. Ко второй относятся арифметические операции со знаком и без него. Для умножения и деления 64-битное произведение или делимое хранится в двух регистрах: ЕАХ (младшие биты) и EDX (старшие биты). Третья группа включает двоично-десятичную арифметику. Здесь каждый байт рассматривается как две 4-битные десятичные цифры. Комбинации битов от 1010 до 1111 не используются. Такая форма хранения неэффективна, но она устраняет необходимость преобразовывать десятичные входные данные в двоичные и обратно. Эти команды широко используются в программах на языке COBOL. Логические команды и команды сдвига манипулируют битами в слове или байте. Следующие две группы связаны с проверкой, сравнением и осуществлением перехода в зависимости от полученного результата. Результаты проверки и сравнения хранятся в различных битах регистра EFLAGS. Значок Jxx заменяет набор команд, которые совершают условный переход в зависимости от результатов предыдущего сравнения (то есть в зависимости от битов в регистре EFLAGS). В Pentium II есть несколько команд для загрузки, сохранения, перемещения, сравнения и сканирования цепочек символов или слов. Перед этими командами может стоять специальный префиксный байт REP (повторение), который заставляет команду повторяться до тех пор, пока не будет выполнено определенное условие (например, пока регистр ЕСХ, значение которого уменьшается на 1 после каждого повторения, не будет равен 0). Таким образом, различные действия (перемещение, сравнение и т. д.) могут производиться над произвольными блоками данных. Последняя группа содержит команды, которые не вошли ни в одну из предыдущих групп. Это команды перекодирования, управления, ввода-вывода и остановки процессора. +ТАБЛ(Р2) | 41. Команды процессора UltraSPARC II Ниже приведены целочисленные команды пользовательского режима UltraSPARC II. Отсутствуют команды с плавающей точкой, управления Нет также команд, манипулирующих непользовательскими адресными пространствами, а также устаревших. Набор команд достаточно мал: UltraSPARC II - это процессор типа RISC. Команды типа LOAD и STORE имеют варианты для 1, 2, 4 и 8 байтов. Если в 64-разрядный регистр загружается меньшее число, оно может быть расширено по знаку либо дополнено нулями. Существуют команды для обоих вариантов. Следующая группа команд выполняет арифметические операции. Команды с буквами СС в названии устанавливают биты кода условия, другие - нет. Наличие двух вариантов дает больше возможностей компилятору в плане оптимального перемещения команд. Например, если есть команды А, В, С, причем А устанавливает коды условия, а В проверяет их, то компилятор не может вставить С между А и В, если С также устанавливает условные коды. Имеются команды умножения, а также деления со знаком и без знака. Кроме этого, поддерживается специальный формат 30-битных чисел с автоматическим опознаванием типа данных за счет поля тега. Он используется для таких языков, как Smalltalk и Prolog, в которых тип переменных может меняться во время выполнения программы. При наличии таких чисел компилятор может породить команду ADD, а во время выполнения программы машина определяет, нужна ли в данном случае целочисленная команда ADD или команда ADD с плавающей точкой. Группа команд сдвига включает одну команду сдвига влево и две команды сдвига вправо. Каждая из них имеет два варианта: 32-битный и 64-битный. Далее см таблицу Обозначения: SRC - входной регистр; DST - выходной регистр; R1 - входной регистр; S2 - регистр-источник или непосредственный операнд; ADDR - адрес памяти; R - выходной регистр; TRAP# - номер системного прерывания; FCN - код функции; MASK - тип операции; CON - константа; V - указатель регистра; СС - набор кодов условия; cc - условие; r – условие. Группа логических команд включает команды AND (И), OR (ИЛИ), XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ), ANDN (НЕ-И), ORN (НЕ-ИЛИ) и XNOR (ИСКЛЮЧАЮЩЕЕ НЕ-ИЛИ). Полезность последних трех команд спорна, но они могут выполняться за один цикл и не требуют дополнительного аппаратного обеспечения, поэтому часто включаются в набор команд. (на обороте…) | 42. Команды компьютера picoJava II В этом компьютере реализован полный набор команд JVM (226 команд), а также 115 дополнительных команд, предназначенных для С/C++ и операционной системы. Мы рассмотрим в основном команды JVM, компилятор Java производит только эти команды. Как уже говорилось, архитектура команд JVM не содержит регистров, доступных пользователю. Большинство команд JVM помещают слова в стек, оперируют ими и выталкивают слова из стека. для полноценной работы JVM требуется небольшая система уровня команд, но она гораздо меньше по объему, чем интерпретатор JVM, и вызывается она только в редких случаях. Набор всех команд JVM за исключением некоторых расширенных, коротких и быстрых вариантов команд, приведен в нижеследующей таблице. Команды JVM типизированы. Одну и ту же операцию с разными типами данных выполняют разные команды. Например, ILOAD помещает в стек целое 32-битное число, а ALOAD помещает в стек 32-битный указатель. Такое строгое разделение кажется избыточным, поскольку в обоих случаях в стек передаются 32 бита памяти. Оно требуется для того, чтобы во время выполнения программы можно было проверить, не нарушены ли какие-либо ограничения Перейдем к конкретным командам JVM. Первая из них - typeLOAD IND8. Фактически это не одна команда, а шаблон для записи 4-х команд. Команды JVM регулярны, поэтому вместо перечисления всех команд в ряде случаев можно сообщать правило для порождения команд. Существуют еще четыре команды загрузки typeALOAD, которые помещают в стек элемент массива. Во всех случаях в стек загружаются указатель на массив и индекс его элемента. Затем эти команды выталкивают индекс и указатель, производят вычисление и помещают в стек сам элемент. Размер элементов определяется по типу. Эти команды получают индекс массива из стека, поэтому сама команда не содержит операнда. Далее см таблицу Обозначения: IND8/16 – индекс локальной переменной; CON8/16, D, ATYPE = константа; type, х, у - I, L, F, D; OFFSET16 – смещение для команд перехода. Последние четыре команды этой группы также предназначены для работы с элементами массива, но только специализированных типов. Они поддерживают byte, short (16 битов), char (символ - 16 битов) и pointer (указатель - 32 бита). (на обороте…) | |
43. Поток управления. Виды процедур Поток управления - это последовательность, в которой выполняются команды программы. При отсутствии переходов и вызовов процедур команды выбираются из последовательных ячеек памяти. Вызов процедуры изменяет поток управления: выполняемая в данный момент процедура останавливается, и начинается выполнение вызванной процедуры. Существует несколько видов процедур, отличающихся способом организации вызова: подпрограммы, сопрограммы, ловушки и прерывания. Большинство команд программы не меняет поток управления. В таких случаях счетчик команд представляет собой линейную функцию времени, Если программа содержит переходы, то счетчик команд уже не является монотонно возрастающей функцией времени. Один из наиболее важных способов структурирования программ представляет подпрограмма. С одной стороны, вызов подпрограммы изменяет поток управления, но в отличие от команды перехода после выполнения задачи управление возвращается к точке вызова. С этой точки зрения вызов процедуры можно считать отдельной командой, даже если процедура сложна. Сопрограммы: существует различие между вызывающей и вызываемой процедурами. Пусть есть процедура A, которая вызывает процедуру В. После полного выполнения В управление возвращается в А к точке вызова. Если процедура A вызывает процедуру В много раз, то процедура В каждый раз начинается с начала, а процедура А уже никогда больше с начала не начинается. Режим работы сопрограмм состоит в том, что A и B более или менее равноправны. Они попеременно вызывают друг друга. Управление каждый раз возвращается к точке последнего вызова. Когда процедура А передает управление процедуре В, оно переходит не к началу В (за исключением первого раза), а к тому месту, на котором произошел предыдущий вызов А. Сопрограммы обычно используются для того, чтобы производить (псевдо) параллельную обработку данных на одном процессоре. Ловушка (trap) - это особый тип вызова процедуры, который происходит при определенном событии, созданном выполняемой программой. Один из примеров такого события - переполнение. В большинстве процессоров, если результат выполнения арифметической операции превышает самое большое допустимое число, срабатывает ловушка. Это выражается в переходе потока управления на некоторую фиксированную ячейку памяти. В этой ячейке находится команда вызова специальной процедуры (обработчика системных прерываний), которая выполняет определенное действие, например печатает сообщение об ошибке. Ловушки экономят время и память по сравнению с регулярной проверкой кода условия под контролем программы. (на обороте…) | 44. Обзор архитектуры Intel IA-64 новая 64-разрядная компьютерная архитектура, которая создавалась совместно компаниями Intel и Hewlett Packard. Первым процессором этого типа является Merced, имеющий высокую производительность. архитектура IA-32 имеет много серьезных проблем, главной предпосылкой которых является длительность периода разработок с поддержкой обратной совместимости. Огромное количество транзисторов в процессорах Pentium предназначено для преобразования CISC-команд в современные RISC-команды, разрешения конфликтов, прогнозирования переходов, исправления неправильных предсказаний и решения многих других задач подобного рода, при этом остается лишь незначительное число транзисторов на долю реальной работы, нужной пользователю. Поэтому компания Intel пришла к следующему выводу: нужно выбросить IA-32 и начать все заново. Явный параллелизм Merced - это двухрежимный процессор, который может выполнять как программы IA-32, так и программы IA-64 Это архитектура типа загрузка/сохранение с 64-битными адресами и регистрами. В ней имеется 64 регистра общего назначения, доступных для программ IA-64 (и дополнительные регистры для программ IA-32). Все отдельные команды имеют фиксированный формат: код операции, два 6-битных поля для задания входных регистров, одно 6-битное поле для указания выходного регистра и еще одно дополнительное 6-битное поле. Большинство команд оперируют двумя регистровыми операндами-источниками и помещают результат в третий регистр-приемник. Имеется много функциональных блоков для параллельного выполнения операций. Новой здесь является концепция пучка связанных команд. Команды поступают на выполнение пучками - обычно группами по три штуки. Каждый 128-битный пучок содержит три 40-битные команды фиксированного формата и 8-битный шаблон. Пучки могут быть связаны вместе (при этом используется бит конца пучка), поэтому в одном пучке может присутствовать и более трех команд. Формат содержит информацию о том, какие команды могут выполняться параллельно. При такой системе и при наличии большого числа регистров компилятор может выделять блоки команд и сообщать процессору о том, какие из них можно выполнять параллельно. Таким образом, компилятор должен переупорядочивать команды, проверять, нет ли взаимозависимостей, проверять доступность функциональных блоков и т. д. вместо аппаратного обеспечения. Идея состоит в том, что работа упорядочивания и распределения RISC-команд передается от аппаратного обеспечения компилятору. Эта технология названа EPIC Есть несколько причин, по которым упорядочивание команд во время компиляции более эффективно, чем при выполнении. Во-первых, поскольку теперь основную работу выполняет компилятор, аппаратное обеспечение можно упростить, используя миллионы транзисторов для других полезных функций Во-вторых, для любой программы распределение должно производиться только один раз (во время компиляции). В-третьих, можно использовать различное ПО (компиляторы) для разноплановой оптимизации программ. (на обороте…) |
Учебной дисциплины «Архитектура ЭВМ и вычислительных систем» предназначена... Учебная дисциплина «Архитектура ЭВМ и вычислительных систем» является общепрофессиональной дисциплиной, формирующей базовый уровень... | Перечень тем для реферата Архитектура ЭВМ. Принцип Неймана. Основные устройства эвм, их назначение и характеристики | ||
«архитектура ЭВМ и систем» Новосибирск сгга содержание Эвм различных классов; параллельные системы понятие о многомашинных и многопроцессорных вычислительных системах; матричные и ассоциативные... | Учебно-методический комплекс дисциплины архитектура компьютера (Архитектура... Рындина Татьяна Николаевна, ст преподаватель кафедры Физики, информатики и информационных технологий | ||
Темы рефератов по дисциплине: “Архитектура эвм” | Реферат по курсу: Архитектура вс на тему: Архитектура квантовых компьютеров Квантовые компьютеры на основе молекул органических жидкостей с косвенным скалярным взаимодействием между ними и методов ядерного... | ||
Реферат по курсу: Архитектура вс на тему: Архитектура квантовых компьютеров Квантовые компьютеры на основе молекул органических жидкостей с косвенным скалярным взаимодействием между ними и методов ядерного... | Архитектура эвм, ос, вирусы В программа, выполняющая тестирование компьютерной системы после включения компьютера | ||
Конспект лекций по курсу "Микропроцессоры и микро-эвм в Персональной... Целью настоящего курса является дать понятие о микропроцессорах и однокристальных микро-эвм, области их применения, дать основы функционирования... | «Архитектура эвм» Цель дисциплины: формирование систематизированных знаний в области архитектуры компьютера, организации компьютерных систем, программирования... | ||
Техническое обеспечение кит реферат Сша и предназначалась для баллистических расчётов при стрельбе. Первая отечественная цифровая ЭВМ «мэсм» создана в 1950 г. Ход развития... | Архитектура ЭВМ и систем конспект лекций Обучающие: Учить детей понимать эмоциональное состояние героев постановки, придавать физическим действиям куклы максимум выразительности... | ||
Реферата. Список элементов библиографической записи Максимов, Н. В. Архитектура ЭВМ и вычислительных систем [Текст]: учеб для вузов / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. — М.:... | Рабочая программа дисциплины «архитектура ЭВМ и вычислительных систем» (наименование дисциплины) Составлена в соответствии с государственными требованиями к минимуму содержания и уровню подготовки выпускников по специальности... | ||
Программа по формированию навыков безопасного поведения на дорогах... При этом на первый план выдвинулась концепция их взаимодействия. Так возникло принципиально новое понятие архитектура ЭВМ | “Внешние устройства персонального компьютера.” Пу обеспечить поступление в ЭВМ из окружающей среды программ и данных для обработки, а также выдачу результатов работы ЭВМ в виде,... |