240-1952 (Электронный документооборот страхового общества), страница 6

2016-07-31СтудИзба

Описание файла

Документ из архива "Электронный документооборот страхового общества", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "240-1952"

Текст 6 страницы из документа "240-1952"

Разработчики процессоров стремятся создавать чипы, содержащие как можно больше функциональных узлов — что позволяет обрабатывать больше команд параллельно — но одновременно приходится существенно усложнять управляющие цепи для распределения потока команд по обрабатывающим узлам. На данный момент лучшие процессоры не могут выполнять более четырёх команд одновременно, при этом управляющая логика занимает слишком много места на кристалле.

В то же время, последовательная структура кода программ и большая частота ветвлений делают задачу распределения потока команд крайне сложной. Современные процессоры содержат огромное количество управляющих элементов для того, чтобы минимизировать потери производительности, связанные с ветвлениями, и извлечь как можно больше «скрытого параллелизма» из кода программ. Они изменяют порядок команд во время исполнения программы, пытаются предсказать, куда необходимо будет перейти в результате очередного ветвления, и выполняют команды до вычисления условий ветвления. Если путь ветвления предсказан неверно, процессор должен сбросить полученные результаты, очистить конвейеры и загрузить нужные команды, что требует достаточно большого числа тактов. Таким образом, процессор, теоретически выполняющий четыре команды за такт, на деле выполняет менее двух.

Проблему ещё осложняет тот факт, что микросхемы памяти не успевают за тактовой частотой процессоров. Когда Intel разработала архитектуру х86, процессор мог извлекать данные из памяти с такой же скоростью, с какой он их обрабатывал. Сегодня процессор тратит сотни тактов на ожидание загрузки данных из памяти, даже несмотря на наличие большой и быстрой кэш–памяти.

Говоря о том, что CISC– и RISC–архитектуры исчерпали себя, Intel и HP имеют в виду обе эти проблемы. В двух пространных интервью журналу BYTE они раскрыли некоторые детали архитектуры IA-64:

  1. Команды в формате IA–64 упакованы по три в 128–битный пакет для быстрейшей обработки. Обычно это называют «LIW encoding» (русский аналог подобрать сложно, наиболее адекватно перевести как «кодирование в длинные слова команд»). Однако компания Intel избегает такого названия, заявляя, что с ним связаны «негативные ассоциации» (negative connotation). По той же причине Intel не любит называть сами команды RISC–подобными (RISC–like), даже несмотря на то, что они имеют фиксированную длину и предположительно оптимизированы для исполнения за один такт в ядре, не нуждающемся в микрокоде. Intel предпочитает называть свою новую LIW–технологию Explicitly Parallel Instruction Computing или EPIC (Полностью Параллельного Выполнения Команд). В любом случае формат команд IA–64 не имеет ничего общего с х86. Команды х86 могут иметь длину от 8 до 108 бит, и процессор должен последовательно декодировать каждую команду после определения её границ.

  2. Каждый 128–битный пакет содержит шаблон (template) длиной в несколько бит, помещаемый в него компилятором, который указывает процессору, какие из команд могут выполняться параллельно. Теперь процессору не нужно будет анализировать поток команд в процессе выполнения для выявления «скрытого параллелизма». Вместо этого наличие параллелизма определяет компилятор и помещает информацию в код программы. Каждая команда (как для целочисленных вычислений, так и для вычислений с плавающей точкой) содержит три 7–битных поля регистра общего назначения (РОН). Из этого следует, что процессоры архитектуры IA–64 содержат 128 целочисленных РОН и 128 регистров для вычислений с плавающей точкой. Все они доступны программисту и являются регистрами с произвольным доступом (programmer-visible random–access registers). По сравнению с процессорами х86, у которых всего восемь целочисленных РОН и стек глубины 8 для вычислений с плавающей точкой, IA–64 намного «шире» и, соответственно, будет намного реже простаивать из-за «нехватки регистров».

  3. Компиляторы для IA–64 будут использовать технологию «отмеченных команд» (predication) для устранения потерь производительности из–за неправильно предсказанных переходов и необходимости пропуска участков кода после ветвлений. Когда процессор встречает «отмеченное» ветвление в процессе выполнения программы, он начинает одновременно выполнять все ветви. После того, как будет определена «истинная» ветвь, процессор сохраняет необходимые результаты и сбрасывает остальные.

  4. Компиляторы для IA–64 будут также просматривать исходный код с целью поиска команд, использующих данные из памяти. Найдя такую команду, они будут добавлять пару команд — команду предварительной загрузки (speculative loading) и проверки загрузки (speculative check). Во время выполнения программы первая из команд загружает данные в память до того, как они понадобятся программе. Вторая команда проверяет, успешно ли произошла загрузка, перед тем, как разрешить программе использовать эти данные. Предварительная загрузка позволяет уменьшить потери производительности из-за задержек при доступе к памяти, а также повысить параллелизм.

Из всего вышесказанного следует, что компиляторы для процессоров архитектуры IA-64 должны быть намного «умнее» и лучше знать микроархитектуру процессора, код для которого они вырабатывают. Существующие чипы, в том числе и RISC–процессоры, производят гораздо больше оптимизации на этапе выполнения программ, даже при использовании оптимизирующих компиляторов. IA–64 перекладывает практически всю работу по оптимизации потока команд на компилятор. Таким образом, программы, скомпилированные для одного поколения процессоров архитектуры IA–64, на процессорах следующего поколения без перекомпиляции могут выполняться неэффективно. Это ставит перед поставщиками нелёгкую задачу по выпуску нескольких версий исполняемых файлов для достижения максимальной производительности.

Другим не очень приятным следствием будет увеличение размеров кода, так как команды IA–64 длиннее, чем 32–битные RISC–команды (порядка 40 бит). Компиляция при этом будет занимать больше времени, поскольку IA–64, как уже было сказано, требует от компилятора гораздо больше действий. Intel и HP заявили, что уже работают совместно с поставщиками средств разработки над переработкой этих программных продуктов.

Технология «отмеченных команд» является наиболее характерным примером «дополнительной ноши», перекладываемой на компиляторы. Эта технология является центральной для устранения ветвлений и управления параллельным выполнением команд.

Обычно компилятор транслирует оператор ветвления (например, IF–THEN–ELSE) в блоки машинного кода, расположенные последовательно в потоке. В зависимости от условий ветвления процессор выполняет один из этих блоков и перескакивает через остальные. Современные процессоры стараются предсказать результат вычисления условий ветвления и предварительно выполняют предсказанный блок. При этом в случае ошибки много тактов тратится впустую. Сами блоки зачастую весьма малы — две или три команды — а ветвления встречаются в коде в среднем каждые шесть команд. Такая структура кода делает крайне сложным его параллельное выполнение.

Когда компилятор для IA–64 находит оператор ветвления в исходном коде, он исследует ветвление, определяя, стоит ли его «отмечать». Если такое решение принято, компилятор помечает все команды, относящиеся к одному пути ветвления, уникальным идентификатором, называемым предикатом (predicate). Например, путь, соответствующий значению условия ветвления TRUE, помечается предикатом Р1, а каждая команда пути, соответствующего значению условия ветвления FALSE — предикатом Р2. Система команд IA–64 определяет для каждой команды 6–битное поле для хранения этого предиката. Таким образом, одновременно могут быть использованы 64 различных предиката. После того, как команды «отмечены», компилятор определяет, какие из них могут выполняться параллельно. Это опять требует от компилятора знания архитектуры конкретного процессора, поскольку различные чипы архитектуры IA–64 могут иметь различное число и тип функциональных узлов. Кроме того, компилятор, естественно, должен учитывать зависимости в данных (две команды, одна из которых использует результат другой, не могут выполняться параллельно). Поскольку каждый путь ветвления заведомо не зависит от других, какое–то «ко­ли­чест­во параллелизма» почти всегда будет найдено.

Заметим, что не все ветвления могут быть отмечены: так, использование ди­на­ми­ческих методов вызова приводит к тому, что до этапа выполнения невозможно определить, возникнет ли исключение. В других случаях применение этой технологии может привести к тому, что будет затрачено больше тактов, чем сэкономлено.

После этого компилятор транслирует исходный код в машинный и упаковывает команды в 128–битные пакеты. Шаблон пакета (bundle's template field) указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллельно. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет зависимые и независимые команды, поскольку возможность па­рал­лельного выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверхдлинными словами команд (VLIW), IA–64 не добавляет команд «нет операции» (NOPS) для дополнения пакетов.

Во время выполнения программы IA–64 просматривает шаблоны, выбирает взаимно независимые команды и распределяет их по функциональным узлам. После этого производится распределение зависимых команд. Когда процессор обнаруживает «отмеченное» ветвление, вместо попытки предсказать значение условия ветвления и перехода к блоку, соответствующему предсказанному пути, процессор начинает параллельно выполнять блоки, соответствующие всем возможным путям ветвления. Таким образом, на машинном уровне ветвления нет.

Разумеется, в какой-то момент процессор наконец вычислит значение условия ветвления в операторе IF–THEN–ELSE. Предположим, оно равно TRUE, сле­до­ва­тельно, правильный путь отмечен предикатом Р1. 6–битному полю предиката соответствует набор из 64 предикатных регистров (predicate registers) Р0–Р63 длиной 1 бит. Процессор записывает 1 в регистр Р1 и 0 во все остальные.

К этому времени процессор, возможно, уже выполнил некоторое количество ко­манд, соответствующих обоим возможным путям, но до сих пор не сохранил результат. Перед тем, как сделать это, процессор проверяет соответствующий предикатный ре­гистр. Если в нём 1 — команда верна и процессор завершает её выполнение и со­храняет результат. Если 0 — результат сбрасывается.

Технология «отмеченных команд» существенно снижает негативное влияние ветвлений на машинном уровне. В то же время, если компилятор не «отметил» ветвление, IA–64 действует практически так же, как и современные процессоры: пытается предсказать путь ветвления и т.д. Испытания показали, что описанная технология позволяет устранить более половины ветвлений в типичной программе, и, следовательно, уменьшить более чем в два раза число возможных ошибок в пред­ска­за­ниях.

Другой ключевой особенностью IA–64 является предварительная загрузка дан­ных. Она позволяет не только загружать данные из памяти до того, как они по­на­до­бятся программе, но и генерировать исключение только в случае, если загрузка прошла неудачно. Цель предварительной загрузки — разделить собственно загрузку и ис­пользование данных, что позволяет избежать простоя процессора. Как и в технологии «отмеченных команд» здесь также сочетается оптимизация на этапе компиляции и на этапе выполнения.

Сначала компилятор просматривает код программы, определяя команды, ис­пользующие данные из памяти. Везде, где это возможно, добавляется команда пред­ва­ри­тельной загрузки на достаточно большом расстоянии перед командой, ис­пользу­ющей данные и команда проверки загрузки непосредственно перед командой, ис­пользу­ющей данные.

На этапе выполнения процессор сначала обнаруживает команду предварительной за­грузки и, соответственно, пытается загрузить данные из памяти. Иногда попытка ока­зывается неудачной — например, команда, требующая данные, находится после ветвления, условия которого ещё не вычислены. «Обычный» процессор тут же генерирует исключение. IA–64 откладывает генерацию исключения до того момента, когда встретит соответствующую команду проверки загрузки. Но к этому времени условия ветвления, вызывавшего исключение, уже будут вычислены. Если команда, инициировавшая предварительную загрузку, относится к неверному пути, загрузка признается неудачной и генерируется исключение. Если же путь верен, то исключение вообще не генерируется. Таким образом, предварительная загрузка в архитектуре IA–64 работает аналогично структуре типа TRY–CATCH.

Возможность располагать команду предварительной загрузки до ветвления очень существенна, так как позволяет загружать данные задолго до момента использования (напомним, что в среднем каждая шестая команда является командой ветвления).

В 80–е годы некоторые разработчики RISC–процессоров высмеивали CISC–ар­хи­тек­туру и предрекали скорую погибель семейству х86. Но технологии и бизнес — раз­ные вещи. Несмотря на технологические преимущества RISC–архитектуры, огромные ре­сурсы корпорации Intel и господство операционных систем DОS и Windows привели к тому, что процессоры архитектуры х86 остаются конкурентоспособными до сих пор. Теперь уже Intel заявляет, что RISC–архитектура устарела. В любом случае, до выхода в свет первого процессора архитектуры IA–64 остаётся ещё два года, и у конкурентов есть время принять ответные меры.

Материнские платы, наборы микросхем

Intel 430TX PCIset

18 марта 1997 г. официально появились пробные образцы нового чипсета пятого поколения от Intel — 430TX. Этот чипсет рассчитан для применения в настольных и мобильных системах. Для изготовления применена передовая двухчиповая технология — TDP:82439TX, PIIX4:82371AB.

Этот чипсет приходит на смену i430VX, но к сожалению не на смену i430HX. Новый чипсет не поддерживает (официально) более 66MHz по шине, и не кэширует более 64Mb оперативной памяти. Однако уменьшено, как и ожидалось, количество тактов на синхронной памяти.

Характеристика i430TX:

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее