- •Введение
- •1. Архитектура ЭВМ
- •1.1. Структура МПС
- •1.2. Основные понятия в архитектуре МПС
- •1.3. Архитектура фон Неймана
- •1.4. Гарвардская архитектура
- •1.5. Параллельная архитектура
- •1.6. Конвейерная архитектура
- •1.7. Суперскалярная архитектура
- •1.8. Архитектура VLIW
- •1.9. Архитектуры CISC, RISC
- •1.10.2. Язык Ассемблер
- •1.10.4. API функции
- •1.11. Сообщения Windows
- •1.12. Версии ассемблеров
- •1.12.1. Microsoft Macro Assembler (MASM)
- •1.12.2. Flat assembler (FASM)
- •1.12.3. NASM (Netwide Assembler)
- •1.12.4. Turbo Assembler (TASM)
- •1.12.5. GoAsm
- •1.13. Среды разработки
- •1.13.1. RadASM
- •1.13.2. WinAsm Studio
- •1.13.3. Easy Code
- •2. Представление данных в ЭВМ
- •2.1. Системы счисления и преобразования между ними
- •2.2. Форматы представления чисел
- •2.2.1. Форматы представления двоичных чисел
- •2.2.2. Формат с плавающей точкой
- •2.3. Типы адресаций операндов
- •2.4. Интерфейсы
- •2.4.1. Последовательный интерфейс RS-232C
- •2.4.2. Интерфейс параллельного порта
- •2.4.3. Инфракрасный интерфейс
- •2.4.4. Интерфейс Bluetooth
- •2.4.5. Интерфейс USB
- •2.4.6. Интерфейс IEEE 1394 - FireWire
- •2.4.7. Сопроцессоры
- •2.4.8. Система прерываний и исключений
- •2.4.9. Интерфейс JTAG
- •3. Архитектура CISC от Intel
- •3.1. Введение
- •3.2. Микроархитектура Intel
- •3.2.1. Микроархитектура Р6
- •3.2.2. Микроархитектура NetBurst
- •3.2.3. Микроархитектура Pentium 4
- •3.2.4. Микроархитектура Intel Core
- •3.2.5. Микроархитектура Intel Core Duo
- •3.2.6. Микроархитектура Intel Nehalem
- •3.2.7. Микроархитектура Intel Sandy Bridge
- •3.2.8. Архитектура Haswell
- •3.2.9. Микроархитектура Intel Itanium
- •3.2.10. Микроархитектура Intel IA-64
- •3.3. Программная модель IA-32
- •3.3.1. Адресация памяти в IA_32
- •3.3.2. Наборы регистров
- •3.4. Целочисленный процессор
- •3.4.1. Регистры общего назначения (РОН)
- •3.4.2. Регистры флагов EFLAGS
- •3.4.3. Регистр указателя команд
- •3.4.4. Сегментные регистры
- •3.4.5. Управляющие регистры
- •3.4.6. Системные адресные регистры
- •3.4.7. Прямой и обратный порядок следования байтов
- •3.4.8. Виды адресации операндов в памяти
- •3.4.9. Цикл выполнения команды
- •3.4.10. Распределение адресного простраства
- •3.4.11. Образ программы в памяти.
- •3.4.12. Стек
- •3.5. Математический сопроцессор
- •3.6. MMX-технология
- •3.7. XMM технология
- •3.8.2. Классификация команд
- •3.8.3. Целочисленный процессор
- •3.8.4. Сопроцессор с плавающей точкой
- •3.8.5. Целочисленное MMX расширение
- •3.8.6. XMM расширение с плавающей точкой
- •3.9. Цикл трансляции, компоновки и выполнения
- •3.10. Ассемблер CISC
- •3.10.1. Введение
- •3.10.2. Средства программирования и отладки
- •3.11. Описание MASM
- •3.12. Структура программы на ассемблере
- •3.13. Типы данных
- •3.14. Макросредства
- •3.15. Директивы
- •4. Архитектура RISC
- •5. Архитектура VLIW
- •5.1. Архитектура вычислительных систем со сверхдлинными командами
- •5.2. Архитектура IA-64
- •5.3. Itanium
- •6. Многоядерные архитектуры
- •7.1.1. Основные параметры
- •7.1.2. Семейства
- •7.1.3. Описание выводов
- •7.1.4. Обзор архитектуры
- •7.1.5. Структура памяти
- •7.1.6. Режимы адресации
- •7.2. Ассемблер
- •7.2.1. Команды ассемблера
- •7.2.2. Директивы ассемблера
- •7.2.3. Выражения
- •7.3. ИСР AVR Studio
- •8.2. Архитектура F28x
- •8.3. Инструментальные средства разработки ПО
- •8.4. Ассемблер
- •8.5. Команды ассемблера
- •8.5.1. Операции с регистрами XAR0-XAR7
- •8.5.2. Операции загрузки регистра DP
- •8.5.3. Операции с регистром SP
- •8.5.4. Операции с регистрами AX (AH, AL)
- •8.5.5. Операции с регистрами ACC
- •8.5.6. Операции с регистрами P или XT
- •8.5.7. Операции прямого доступа к памяти
- •8.5.8. Операции ввода вывода
- •8.5.9. Операции с памятью программ
- •8.5.10. Операции ветвления, вызова, возврата
- •8.5.11. Математические
- •8.5.12. Ветвления
- •8.5.13. Основные инструкции для работы с регистрами
- •8.5.14. Основные команды для работы с вещественными числами
- •8.6. Листинги программ
- •8.7. Формат объектного файла
- •8.8. Директивы ассемблера
- •8.8.1. Разделы
- •8.8.2. Константы
- •8.8.3. Выравнивания
- •8.8.4. Листинг
- •8.8.5. Файлы
- •8.8.6. Условная трансляция
- •8.8.7. Структуры
- •8.8.8. Символы во время трансляции
- •8.8.9. Разные директивы
- •8.9. Макроязык и макрокоманды
- •8.10. Компоновщик
- •8.11. Архиватор
- •8.12. Абсолютный листер
- •8.13. Листер перекрестных ссылок
- •8.14. Утилита 16-ричного преобразования
- •8.15. Согласование заголовочных C/C++ файлов с ассемблером
- •8.16. ИСР Code Composer Studio (CCS)
- •9.1. Архитектура VelociTI
- •9.2. Структура и состав ЦСП С6x
- •9.3. Средства разработки ЦСП С6x
- •9.4. Ассемблер ЦСП С6x
- •9.5. Команды ассемблера
- •9.5.1. Основные команды для работы с целыми числами
- •9.5.2. Основные команды для работы с вещественными числами
- •9.6. Константы
- •9.7.2. Условные выражения
- •9.7.3. Законные выражения
- •9.8. Листинги
- •9.9. Листинги программ
- •9.9.1. Листинг перекрестных ссылок
- •9.10. Директивы ассемблера
- •9.10.1. Директивы, которые определяют разделы
- •9.10.2. Директивы, которые инициализируют константы (данные и память)
- •9.10.3. Директивы, которые выравнивают счетчик команд раздела (SPC)
- •9.10.4. Директивы, которые форматируют выходной листинг
- •9.10.5. Директивы, которые ссылаются на другие файлы
- •9.10.6. Директивы, которые допускают условную трансляцию
- •9.10.7. Директивы, которые определяют символы во время трансляции
- •9.11. Макроязык и макрокоманды
- •9.12. Компоновщик
- •9.13. Утилиты
- •9.13.1. Архиватор
- •9.13.2. Утилита 16-ричного преобразования
- •10.2. Встроенные платы для ЦСП ‘C6x
Даже если последующая операция никак не зависит от предыдущих, процессор вынужден ожидать сохранения результатов их выполнения.
По некоторым данным, порядка 97 процентов инструкций в окне команд никак не связаны с предшествующими и могут исполняться независимо от них. Тем не менее, в архитектурах Р6 и NetBurst предполагалось, что эти связи существуют, и это предположение вело к неоправданному снижению производительности. Технология устранения неоднозначности как раз и пытается определять подобные ложные связи, что позволяет повысить производительность работы чипа.
Решение проблемы заключается в том, чтобы дать процессору "понять" зависимости между исполняемыми инструкциями. Для этого и применяется технология устранения неоднозначности: при помощи особых алгоритмов предпринимаются попытки предсказания последовательности загрузки последующих инструкций ещё до сохранения предыдущих. В худшем случае операции выполняются, как и раньше, после сохранения, а при удачном исходе предсказания - одновременно с сохранением данных о результатах выполнения предыдущих операций. Разумеется, подобные алгоритмы применимы не во всех ста процентах случаев, но в целом их использование позволит заметно увеличить производительность процессора.
3.2.5. Микроархитектура Intel Core Duo
Core 2 — шестое поколение микропроцессоров архитектуры x86-64 корпорации Intel, основанное на процессорной архитектуре Intel Core. Это потомок микроархитектуры Intel P6, на которой, начиная с процессора Pentium Pro, построено большинство микропроцессоров Intel, исключая процессоры с архитектурой NetBurst. Введя новый бренд, от названий Pentium и Celeron Intel не отказалась, в 2007 году переведя их также на микроархитектуру Core, и на данный момент доступны процессоры Pentium Dual-Core (не путать с Pentium D) и Core Celeron (400-я серия). Но теперь воссоединились мобильные и настольные серии продуктов (разделившиеся на Pentium M и Pentium 4 в 2003 году).
Первые процессоры Core 2 официально представлены 27 июля 2006 года. Также как и их предшедственники, процессоры Intel Core, они делятся на модели Solo (одноядерные), Duo (двухъядерные), Quad (четырёхъядерные) и Extreme (двухили четырёхъядерные с повышенной частотой и разблокированным множителем). Процессоры получили следующие кодовые названия — «Conroe» (двухъядерные процессоры для настольного сегмента), «Merom» (для порта-
тивных ПК), «Kentsfield» (четырёхъядерный Conroe) и «Penryn» (Merom, выпол-
ненный по 45 нанометровому техпроцессу). Хотя процессоры «Woodcrest» так-
103
же основаны на архитектуре Core, они выпускаются под маркой Xeon.[1]. С декабря 2006 года все процессоры Core 2 Duo производятся на пластинах диаметром 300 миллиметров на заводе Fab 12 в Аризоне, США и на заводе Fab 24-
2 в County Kildare, Ирландия.
В отличие от процессоров архитектуры NetBurst (Pentium 4 и Pentium D), в архитектуре Core 2 ставка делается не на повышение тактовой частоты, а на улучшение других параметров процессоров, таких как кэш, эффективность и количество ядер. Рассеиваемая мощность этих процессоров значительно ниже, чем у настольной линейки Pentium. С параметром TDP, равным 65 Вт, процессор Core 2 имеет наименьшую рассеиваемую мощность из всех доступных в продаже настольных чипов, в том числе на ядрах Prescott (в системе кодовых имён Intel) с TDP, равным 130 Вт, и на ядрах San Diego’s (в системе кодовых имён AMD) с TDP, равным 89 Вт.
3.2.6. Микроархитектура Intel Nehalem
Архитектура Nehalem была представлена в 2008 как архитектура, которая может адаптироваться для нужд всех трех основных рынков: мобильного, настольного и серверного.
Архитектура Nehalem названа именем одного из индейских племен и отличается рядом принципиальных новшеств:
Все ядра размещены на одном кристалле.
На самом процессоре расположен двухканальный или трехканальный контроллер оперативной памяти DDR3.
В чип интегрирована системная шина QPI или DMI, заменившая FSB.
МП содержит общую для всех ядер кеш - память третьего уровня.
В МП может быть встроено графическое ядро.
Энергопотребление стало на 30% меньше благодаря использованию в Nehalem набору инструкций SSE 4.2, вновь стала использоваться технология HyperThreading, позволяющая представить одно физическое ядро как два виртуальных. В первых процессорах Nehalem использовалась технология 45-нм, а с 2010 стали применять технологию 32-нм. Процессоры устанавливаются в материнские платы, имеющие рпзъем LGA1156 или LGA1366.
Nehalem изначально была разработана модульной — набор базовых "кирпичей", которые можно собирать, чтобы создавать разные версии архитектуры.
104
3.2.7. Микроархитектура Intel Sandy Bridge
Sandy Bridge — микроархитектура процессоров, разработанная фирмой Intel. Она основана на 32-нм технологическом процессе, анонсирована 3.01.2011. Процессоры этой архитектуры будут продаваться на рынке под торговыми мар-
ками Core i7/i5/i3/Pentium/Celeron.
Первый дизайн ядер на основе этой архитектуры представляет собой сочетание центрального процессора CPU с частотой до 3,5 ГГц (обладающего 2—4 ядрами) и всокопроизводительного графического процессора GPU с частотой до 1,35 ГГц. Также в чип интегрирован северный мост набора системной логики (контроллер PCI Express 2.0 и двухканальный контроллер памяти стандарта DDR3 SDRAM с частотой до 1333 МГц). Каждое ядро имеет по 256 КБ кеша второго уровня и до 8 МБ объединенного кеша третьего уровня. Процессор находится на одной кремниевой подложке площадью 216 кв.мм. Энергопотребление данного дизайна не выходит за пределы 95 Вт для топовых моделей. До конца 2011 года Intel планирует перевести процессоры всех ценовых сегментов на архитектуру Sandy Bridge.
Новая микроархитектура несёт поддержку новых SIMD (инструкций для работы с векторными вычислениями Advanced Vector Extensions, AVX), которые дополнят расширения SSE (новый набор, оставаясь обратно совместимым с SSE, увеличивает разрядность рeгистров в два раза — до 256 бит, а также даёт в распоряжение программистов дополнительные трёх- и четырёхоперандные команды). При этом Intel обещает, что использование AVX будет способно поднять скорость работы некоторых алгоритмов на величину, достигающую 90 %.
3.2.8. Архитектура Haswell
Революционные изменения произойдут в 2012 году с появлением процессора с кодовым именем Haswell. Хотя базовое количество ядер в CPU останется равным 8, нас ожидает кардинальная переделка архитектуры кэш-памяти и внедрение принципиально новых механизмов энергосбережения. Также предполагается, что Haswell получит интегрированный векторный сопроцессор. Пересмотр ожидает и набор базовых инструкций, к которым добавятся команды семейства FMA (Fused Multiply-Add), позволяющие работать с четырьмя операндами и совершать одновременное умножение и сложение.
Haswell — кодовое название процессорной микроархитектуры, разрабатываемой Intel, которая планируется как преемница Sandy Bridge. Разработана для
105
22-нанометровой производственной технологии. Релиз планируется в 2012 году. Первые процессоры на данной архитектуре ожидается в 1 квартале 2013 года.
3.2.9. Микроархитектура Intel Itanium
В чем заключается революционность Itanium?
Сама Intel по праву называет Itanium «самой значительной новой разработкой Intel в области микропроцессорной архитектуры с момента выпуска процессора i386 в 1985 году». Революционность состоит в отказе от давно морально устаревшей системы команд x86 (она в ходу с 1978 года) и в радикальном переходе к новой архитектуре, свободной от «пережитков прошлого». Революционной в Itanium является не только 64-разрядность (у 32-разрядных процессоров теоретическое ограничение объема адресуемой оперативной памяти составляет 4 Гбайт, а у 64-битных — несколько терабайт), но и явный параллелизм EPIC
(Explicity Parallel Instruction Computing). По сути, архитектура IA-64 (именно так называется технология, по которой проектируются процессоры Itanium, MсKinley и последующие) впитала в себя все лучшие идеи:
VLIW (Very Long Instruction Word, архитектура с длинными командами),
устранение ветвлений,
улучшенный механизм предварительной подачи данных и пр.
Среди характеристик первого процессора архитектуры IA-64 можно также отметить увеличенное адресное пространство, обнаружение и исправление ошибок. В принципе, о силиконовой составляющей процессора Itanium давно уже известно многое. Думаю, что к моменту выхода эта информация будет разниться только в деталях: станет известна точная частота (Intel может, к примеру, выдать не обещанные 800, а все 1000 МГц) и будет определена ценовая политика. Картридж Itanium предназначен для установки в Slot M — комбинированный процессорный разъем, сочетающий достоинства как Socket, так и Slot. Сигнальная матрично-штырьковая часть разведена с силовой частью, по которой подается питание, с тем чтобы исключить помехи. На обратной стороне процессорного картриджа расположена массивная теплоотводная пластина, позволяющая равномерно распределять по всей поверхности процессора ватты, излучаемые в воздух. К тому же сильно нагревающиеся блоки процессора тоже размещены равномерно. Согласно предварительным данным Itanium поддерживает частоту шины памяти 266 МГц. Архитектура Itanium подразумевает использование 2 или 4 Мбайт кэш-памяти третьего уровня. Статическая кэш-память новой конструкции размещена на одной плате с ядром процессора и работает с ним на одинаковой тактовой частоте.
106