Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зачет по Ефимцу.docx
Скачиваний:
3
Добавлен:
13.09.2019
Размер:
833.7 Кб
Скачать

3.Simd Команды

SIMD (Single Instruction Stream/Multiple Data Stream) - одиночный поток команд и множественный поток данных (рис. 10.5, в). ВМ данной архитектуры позволяют выполнять одну арифметическую операцию сразу над многими данными — элементами вектора. Бесспорными представителями класса SIMD считаются матрицы процессоров, где единое управляющее устройство контролирует множество процессорных элементов. Все процессорные элементы получают от устройства управления одинаковую команду и выполняют ее над своими локальными данными. В принципе в этот класс можно включить и векторно-конвейерные ВС, если каждый элемент вектора рассматривать как отдельный элемент потока данных.

рис. 10.5

4.. Упакованныецелые числа

В АСК современныхмикропроцессоровимеютсякоманды, оперирующиецелыми числами, представленными в упакованномвиде. Связаноэто с обработкоймуль-тимедийнойинформации. Формат предполагает упаковку в пределахдостаточнодлинного слова несколькихнебольшихцелых чисел, а соответствующиекомандыобрабатывают все эти числа параллельно. Есликаждоеиз чисел состоитизчетырехдвоичныхразрядов, то в 64-разрядное слово можнопоместить до 16 таких чисел.

13.Упакованные числа с плавающейзапятой

В последнихверсиях АСК, предусматривающихособыекомандыдля обработкимультимедийнойинформации,

помимоупакованныхцелых чисел используются и упакованные числа с плавающейзапятой.Команды, служащие для увеличения производительности систем при обработке трехмерных приложений работает с двумя операндами с плавающей запятой одинарной точности. Операнды упаковываются в 64-разрядные группы:

5. Ієра́рхія па́м'яті — термін, використовуваний в обчислювальній техніці при проектуванні і низькорівневому програмуванні ЕОМ (комп'ютерів).

Означає, що різні види пам'яті утворюють ієрархію, на різних рівнях якої розташовані пам'яті з різними часом доступу, складністю, вартістю та обсягом. Можливість побудови ієрархії пам'яті викликана тим, що більшість алгоритмів звертаються в кожний проміжок часу до невеликого набору даних, який може бути поміщений у швидшу, але дорожчу і тому невелику, пам'ять. Використання швидшої пам'яті збільшує продуктивність обчислювального комплексу. Під пам'яттю в даному разі мається на увазі пристрій (пристрої) зберігання даних в обчислювальній техніці або комп'ютерна пам'ять.

При проектуванні високопродуктивних комп'ютерів і систем необхідно вирішити безліч компромісів, наприклад, розміри і технології для кожного рівня ієрархії. Можна розглядати набір різних пам'ятей (m1, m2, …, mn), що знаходяться в ієрархії, тобто кожен mi рівень є як би підлеглим для mi-1 рівня ієрархії. Для зменшення часу очікування на вищих рівнях, нижчі рівні можуть готувати дані укрупненими частинами з буферизацією і, після наповнення буфера, сигналізувати верхньому рівню про можливість отримання даних.

Часто виділяють 4 основних (укрупнених) рівня ієрархії:

1) Внутрішня пам'ять процесора (регістри, організовані в регістровий файл і кеш процесора).

2) ОЗП системи (RAM) і допоміжних карт пам'яті.

3) Накопичувачі з «гарячим» доступом — або вторинна комп'ютерна пам'ять. Жорсткі диски і твердотільні накопичувачі, які не потребують тривалих (секунди і більше) дій для початку отримання даних.

4) Накопичувачі, що вимагають переключення носіїв (Off-line bulk storage) — або третинна пам'ять. Сюди відносяться магнітні стрічки, стрічкові і дискові бібліотеки, які потребують тривалого перемотування або механічного (або ручного) перемикання носіїв інформації.

6. КОМПИЛЯЦИЯ (compilation) — трансляция программы (кода) или отдельного программного модуля, составленных на языке программирования высокого уровня (исходная программа, исходный модуль) в программу или модуль на машинном языке или языке, близком к машинному (объектная программа, объектный модуль). В процессе компиляции программа преобразуется в промежуточную форму, к которой впоследствии необходимо присоединить библиотечные средства, содержащие стандартные подпрограммы и процедуры, а если нужно, то можно добавить любые другие модули, написанные самим пользователем, и скомпилированные в объектные модули, возможно, с иных языков высокого уровня.

Виды компиляции:

  • Пакетная. Компиляция нескольких исходных модулей в одном пункте задания.

  • Построчная. То же, что и интерпретация.

  • Условная. Компиляция, при которой транслируемый текст зависит от условий, заданных в исходной программе директивами компилятора. Так, в зависимости от значения некоторой константы, можно включать или выключать трансляцию части текста программы.

Процесс компиляции состоит из следующих фаз:

  • Лексический анализ. На этой фазе последовательность символов исходного файла преобразуется в последовательность лексем.

  • Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в древо разбора.

  • Семантический анализ. Древо разбора обрабатывается с целью установления его семантики (смысла) — например, привязка идентификаторов к их определениям, типам данных, проверка совместимости типов данных, определение результирующих типов данных выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным древом разбора, новым древом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки.

  • Оптимизация. Удаляются избыточные команды и упрощается (где это возможно) код с сохранением его смысла, то есть реализуемого им алгоритма (в том числе предвычисляются (то есть вычисляются на фазе трансляции) выражения, результаты которых практически являются константами). Оптимизация может быть на разных уровнях и этапах — например, над промежуточным кодом или над конечным машинным кодом.

  • Генерация кода. Из промежуточного представления порождается код на целевом языке (в том числе выполняется компоновка программы).

В конкретных реализациях компиляторов эти фазы могут быть разделены или, наоборот, совмещены в том или ином виде.

7.