- •Магомедов и. А. Микропроцессорные системы. Аппаратные и программные средства.
- •Глава 1. Микропроцессоры
- •Глава II. Программирование микропроцессоров
- •Глава III. Лабораторный практикум по программированию мп i80х86
- •Глава 1. Микропроцессоры
- •1.1. Назначение микропроцессоров
- •1.2. Универсальные микропроцессоры
- •1.2.2. Микропроцессоры компании amd
- •1.2.3. Микропроцессоры компании Cyrix
- •1.2.4. Микропроцессоры с архитектурой Alpha
- •1.2.5. Микропроцессоры с архитектурой sparc
- •1.2.6. Микропроцессоры Hewlett-Packard ра-8000
- •1.3. Микропроцессоры обработки сигналов
- •1.3.1. Сигнальные микропроцессоры компании
- •1.3.2. Сигнальные микропроцессоры компании Motorola
- •1.3.3. Микропроцессоры семейства dsp 560хх
- •1.4. Медийные микропроцессоры
- •1.5. Транспьютероподобные микропроцессоры
- •1.6. Нейропроцессоры
- •Глава II. Программирование микропроцессоров
- •2.1. Программная модель 32-разрядных процессоров
- •2.1.2. Типы данных
- •2.1.3. Регистры процессора
- •2.2. Форматы команд
- •2.3. Выбор операнда
- •2.4. Режимы адресации
- •Вопросы для самоконтроля к главе 2
- •Глава III. Лабораторный практикум по программированию мп i86
- •Обобщенная структурная схема микропроцессора х86
- •Организация основной памяти и средства аппаратной поддержки управления памятью
- •Выполнение программы
- •Формат операторов ассемблера
- •Определение полей памяти для размещения данных.
- •3.2. Операнды команд ассемблера
- •Команда пересылки данных
- •Команда загрузки исполнительного адреса
- •Команды загрузки указателя.
- •Команда записи в стек
- •Команда обмен данными
- •Команды сложения/ Команды вычитания
- •Команда изменения знака
- •Команда добавления /вычитания единицы
- •Команда сравнения
- •Команды умножения/ деления
- •Команда преобразования байта в слово, а слова - в двойное слово.
- •Команды передачи управления
- •Команды условного перехода
- •Команды организации циклической обработки
- •Команда перехода по обнуленному счетчику
- •Команды организации цикла с условием
- •Команды вызова подпрограмм
- •Команда возврата управления
- •Команды обработки строк
- •Логические команды
- •2. Программирование циклических процессов.
- •3. Моделирование одномерных массивов
- •4. Моделирование матриц
- •5. Преобразования ввода-вывода.
- •3.4. Основные команды отладчика afd
- •Fspec определяет имя файла, наименованного в соответствии с соглашениями dos. Для команды l расширением по умолчанию является “exe”;
- •String задает список значений или ascii строк (строка заключена в кавычки) разделенных пробелами или запятой.
- •Например: 1234 bx, ‘tromb’ ff.
- •Лабораторная работа № 1 Создание выполнимого файла, работа в отладчике, изучение оператора пересылки mov
- •Оператор mov
- •Индивидуальные задания
- •Лабораторная работа № 2 Сегментация памяти, директивы ассемблера
- •Прямая адресация
- •Косвенная адресация
- •Директива assume
- •Индивидуальные задания
- •Лабораторная работа №.3 Директивы equ, label, команды сложения и вычитания Директива equ
- •Директива label
- •Команды сложения и вычитания
- •Индивидуальные задания Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •Лабораторная работа № 4 Изучение операторов обмена xchg и xlat
- •Индивидуальные задания Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •Система команд процессораi486
- •П1. Команды пересылки данных
- •П2. Арифметические команды
- •П3. Логические команды
- •П4. Команды переходов
- •П5. Команды процессора i486
1.2.5. Микропроцессоры с архитектурой sparc
SPARC (Scalable Processor ARChitecture - масштабируемая процессорная архитектура) - архитектура RISC-микропроцессоров, первоначально разработанная в 1985 году компанией Sun Microsystems.
Линия процессоров с архитектурой SPARC включает 32-разрядные микропроцессоры MicroSPARC, SuperSPARC, HiperSPARC и 64-разрядный микропроцессор UltraSPARC [8, 20, 21]. Традиционно системы на основе SPARC микропроцессоров - это высокопроизводительные рабочие станции для научных расчетов и Unix-серверы. С выпуском нового поколения микропроцессоров значительно улучшились возможности SPARC-систем по обработке графики и видеоизображений. UltraSPARC представляет собой один из первых процессоров общего назначения, в котором эти функции реализованы аппаратно. Он имеет специальный модуль для обработки видеоданных и графики, представленной в RGB и альфа-формате. Функции обработки видеоизображений могут работать сразу с 8 элементами изображения. Обработка изображений выполняется в блоке FPU, который обычно выполняет операции над 64-битовыми данными с плавающей точкой. В этом блоке выполняется логическое сложение и умножение элементов изображения. В систему команд микропроцессора включен набор команд (VIS – Visual Instruction Set), позволяющий загружать и обрабатывать данные в виде 64-битовых блоков. VIS насчитывает 30 команд для эффективной обработки мультимедиа, графики, изображений и других алгоритмов, ориентированных на целочисленную обработку. Команды VIS включают в себя сложение, умножение и вычитание, что позволяет параллельно выполнять за один такт до 8 целочисленных операций над байтами или полусловами.
При реализации алгоритма компрессии-декомпрессии MPEG больше всего времени требует та часть алгоритма, которая выполняет анализ движения и сравнение каждой части текущего кадра с предыдущим. Благодаря наличию специальных команд в UltraSPARC эти действия выполняются как одна графическая операция. Специальная подсистема памяти автоматически загружает элемент изображения в 8-байтовые блоки. Для этого не требуется выполнения отдельной команды. При конвейеризации этих специальных команд микропроцессор будет выполнять одну операцию за такт. Использование таких специализированных команд обеспечивает 80-кратное повышение скорости выполнения обработки изображений по сравнению с другими SPARC-процессорами.
UltraSPARC имеет также несколько специальных средств, улучшающих его работу с памятью. Это повышает производительность программ мультимедиа и других системных задач. Самым крупным изменением является новая команда перемещения блока данных по шине «процессор-память» со скоростью 600 Мбайт/с. Это позволяет основному процессору работать как видеопроцессор, передавая данные с экрана на экран. Перемещение блока можно с выгодой использовать и в других приложениях, например, в сетевом программном обеспечении для перемещения пакетов данных.
В настоящее время выпускаются разновидности микропроцессоров [8, 20, 21].
UltraSPARC оснащен кэшем данных и кэшем команд по 16К каждый. Оба Кэша имеют собственный буфер трансляции адресов TLB (Translation Look-aside Buffer). UltraSPARC содержит встроенный контроллер кэша второго уровня. Выборка команд тесно интегрирована с кэшем команд первого уровня. Команды сохраняются в кэше и для ускорения обработки предварительно декодируются. Каждые 2 инструкции в кэше ассоциируются с 2 битами, которые используются для предсказания переходов. 2 бита позволяют отслеживать 4 различных состояния, кодирующих последние 2 перехода, выполняемых по этим командам. Механизм предвыборки использует эти биты для динамического упреждения переходов. UltraSPARC способен предсказывать переход с вероятностью 0,88 на тесте SPECint92 и с вероятностью 0,94 на тесте SPECfp92 [8].
Обрабатывающий конвейер UltraSPARC имеет 9 этапов и позволяет выполнять до 4 команд за один такт. Первые два этапа стандартные – это выборка и декодирование команд. На третьем этапе группируются все команды, которые можно передать следующему блоку. Микропроцессор не изменяет порядка выполнения этих команд. Задача планирования загрузки исполнительных модулей решается статически на этапе компиляции. В каждом такте могут выбираться на выполнение 2 целочисленные команды, 2 команды с плавающей точкой или графические команды, одна команда загрузки/записи в память или одна команда перехода. Таким образом, при 6 возможных командах одновременно могут выполняться лишь 4. На этом же этапе происходит получение информации из регистров.
После выбора команды конвейер разделяется на 3 части. Одна ветвь обрабатывает целочисленные команды и команды работы с памятью, а другая - команды с плавающей точкой и графические команды. Команды с плавающей точкой передаются в трехэтапный конвейер, который выполняет всю обработку, кроме деления с плавающей точкой и вычисления квадратного корня. Эти функции выполняет отдельный блок. Хотя микропроцессор подает команды поочередно, результаты не обязательно поступают в том же порядке. Базовые целочисленные команды выполняются за 1 такт. Другие, такие как целочисленное умножение и деление, могут иметь переменную длительность. Остальные этапы целочисленного конвейера выполняют загрузку/запись в память.
Структура микропроцессора UltraSPARC показана на рис. 3.8.
Процессоры с архитектурой SPARC - это на сегодняшний день единственные процессоры, использующие концепцию регистровых окон. Вместо 32 базовых регистров эти микропроцессоры предлагают 8 перекрывающихся окон регистров по 24 регистра каждое. С началом новой процедуры или ветви обработки окно не требуется записывать в память – новый контекст просто будет использовать новое окно регистров. Однако на практике число доступных окон быстро иссякает, и в этом случае приходится записывать информацию в память. Однозначного мнения о достоинствах и недостатках подобной модели пока не существует.
В UltraSPARC-2 добавлен дополнительный механизм, благодаря которому при каждом прерывании становится доступным новое окно из 8 регистров. Такое решение должно значительно увеличить скорость выполнения мультипроцессорного программного кода.
Структура микропроцессора UltraSPARC приведена на рис. 1.10.
Для получения высокой пропускной способности UltraSPARC использует иерархию шин. 128-разрядная шина памяти работает с тактовой частотой самого процессора. Для выполнения ввода-вывода на периферийные устройства используется шина SBus. Sun Microsystems реализует интерфейс с этой шиной на аппаратном уровне с помощью микросхемы коммутации магистрали, входящей в набор микросхем процессора. Она позволяет изолировать шину памяти от шины ввода-вывода и выполнять операции чтения из памяти одновременно с вводом-выводом на периферийные устройства. В результате достигается высокий коэффициент использования шины и пропускная способность 1,3 Гбит/с.
По состоянию на июль 2009 только один суперкомпьютер на процессорах SPARC включён в список самых быстрых компьютеров TOP500. Находящийся на 28 месте суперкомпьютер Fujitsu FX1 использует четырёхядерные микропроцессоры SPARC64 VII 2.52 GHz и имеет производительность 121282 GFLOPS. Он установлен в Японском агентстве аэрокосмических исследований [22].
