Скалярный процессор что это
Скалярный процессор — Скалярный процессор это простейший класс микропроцессоров.[1] Скалярный процессор обрабатывает один элемент данных за одну инструкцию (SISD, Single Instruction Single Data), типичными элементами данных могут быть целые или числа с плавающей … Википедия
POWER — (сокр. от англ. Performance Optimization With Enhanced RISC) микропроцессорная архитектура с ограниченным набором команд (RISC), разработанная и развиваемая компанией IBM. Название позже было расшифровано как Performance Optimization… … Википедия
Микроархитектура — Схема, иллюстрирующая место микроархитектурного уровня в многоуровневой структуре компьютера. В компьютерной инженерии … Википедия
Список микропроцессоров Intel — Информация в этой статье или некоторых её разделах устарела. Вы можете помочь проекту … Википедия
HyperSPARC — (кодовое имя «Pinnacle») микропроцессор, использующий систему команд SPARC V8, разработанный компанией Ross Technology для Cypress Semiconductor. hyperSPARC был представлен в 1993 и соперничал с микропроцессором SuperSPARC от Sun… … Википедия
ShenWei — (кит. 申威) семейство микропроцессоров, разработанных китайской компанией Jiāngnán Computing Lab (кит. 江南计算技术研究所) из Уси. Содержание 1 Микропроцессор ShenWei SW1600 2 … Википедия
X86 — 80486 DX2 x86 (Intel 80x86) аппаратная платформа: архитектура микропроцессора и соответствующий набор инструкций, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей (AMD, VIA … Википедия
x86 — 80486 DX2 x86 (англ. Intel 80x86) архитектура процессора c одноимённым наборо … Википедия
Список микропроцессоров AMD — Ниже приведён список микропроцессоров, выпущенных или запланированных к выпуску компанией AMD. Список отсортирован по поколениям в хронологическом порядке. Содержание 1 Процессоры 8080 и AMD Am9080 2 Процессоры собственной архитектуры AMD … Википедия
Pentium III — > Центральный процессор Производство … Википедия
Часть компьютера,которая позволяет ему функционировать, выполняя указания различных программ — центральный процессор (Процессор).Центральный процессор,также называемый процессор, это программа которая получает инструкции,декодирует эти инструкции,разбивая их на отдельные части,выполняет данные инструкции и делает отчеты о результатах,записывая их обратно в память.Процессор поставляется в одном из двух основных типов: векторные и скалярные процессоры.Разница между ними в том, что скалярные процессоры работают только на одну точку данных одновременно,в то время как векторные процессоры работают на массив данных.
Скалярный процессор самый простой тип процессора.Этот процесс имеет по одному объекту,как правило,целые числа или числа с плавающей точкой,которые являются числами слишком большими или малыми,что бы быть представлены целыми числами. Так как каждая команда обрабатывается последовательно,основная скалярная обработка может занять некоторое время.Большинство современных компьютеров имеют тип скалярного процессора.
В отличие от этого, векторный процессор работает на массив точек данных.Это означает,что вместо обработки каждого элемента по отдельности,векторный процессор обрабатывает сразу несколько элементов,имеющих одинаковые инструкции,которые могут быть обработаны одновременно.Это может сэкономить время по сравнению с скалярной обработкой,но также добавляет сложности к системе,которая может замедлить другие функции.Векторная обработка данных работает лучше всего, когда есть большой объем данных,подлежащих обработке групп,которые могут обрабатываться одной инструкцией.
Векторные и скалярные процессоры различаются также и в их времени запуска.Векторный процессор зачастую требует длительной загрузки компьютера,поскольку он выполняет много задач,которые нужно выполнить.Скалярные процессоры запускают компьютер в гораздо более короткий промежуток времени, поскольку выполняются только одна задача.
Суперскалярный процессор имеет элементы каждого типа и объединяет их для еще более быстрой обработки.Использование параллелизма на уровне инструкций,позволяет суперскалярную обработку выполнять за несколько операций одновременно.Это позволяет процессору выполнять гораздо быстрее задачи,чем обычный скалярный процессор,без дополнительных сложностей и других ограничений векторного процессора.Но с этим типом процессора могут быть проблемы,так как он должен определить, какие задачи могут выполняться параллельно,которые зависят от других задач, на стадии завершения первой задачи.
Векторные и скалярные процессоры по прежнему используются на ежедневной основе.Некоторые игровые приставки, например,используют сочетание обоих и векторных и скалярных процессоров.Векторная обработка данных рассматривается в перспективе при работе с мультимедийными задачами, в которой одна команда может решить большой объем данных, необходимых для видео и аудио.
[share-locker locker_id=»ead8c8d037f1fbbd8″ theme=»blue» message=»Если Вам понравилась эта статья,нажмите на одну из кнопок ниже.СПАСИБО!» facebook=»true» likeurl=»CURRENT» vk=»true» vkurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»true» linkedin=»true» linkedinurl=»CURRENT» ][/share-locker]
Векторный процессор является одним из двух различных типов компьютерных процессоров: векторные и скалярные.Векторный процессор отличается от скалярного процессора в том,что он выполняет вычисления вектора в целом.Вектор-это одномерный массив, или один ряд значений,таких как список номеров. Скалярный процессор работает с каждым из чисел по отдельности;он может делать разные вещи с многими разными номерами.Векторный процессор,с другой стороны,выполняет ту же самую процедуру для всех сразу номеров.
Этот тип процессора,является более специализированным,чем скалярный процессор,что делает его менее популярным выбором для среднего компьютера.Средний компьютер выполняет широкий спектр задач,и самый быстрый способ сделать много разных типов задач с помощью скалярных процессоров.Это потому, что процессор может переключаться между задачами гораздо быстрее.Векторный процессор используется в высококвалифицированной специализированной электронике,такой как супер-компьютеры.Эти процессоры являются гораздо более эффективными,когда используются для крупномасштабных проблем.Небольшие задачи,такие как открытие документа word или воспроизведение видео,могут быть выполнены с помощью скалярного процессора быстрее, чем векторный процессор.
Помимо суперкомпьютеров,есть и другое широкое применение для векторных процессоров.Векторные процессоры используются в военных целях.Они очень хороши для кодирования и декодирование ультразвуковых локаторов и радарных сигналов и, как правило,могут обработать сигнал гораздо быстрее,чем скалярный процессор.Эти процессоры также хорошо симулируют различные события,такие,как тип погоды,физические тесты,и всё остальное,для чего требуется огромное количество скорости выполнения задач.
Часто существует большое количество векторных процессоров,которые используются в сочетании.Эти процессоры хорошо работают вместе,и с большим количеством процессоров, для решения же задач,при этом затраченное время резко сокращается. Такая работа как супер-ЭВМ имеет огромное количество процессоров соединённых вместе, чтобы решить общие проблемы.
Векторные процессоры являются примером того,как специализированные устройства работают над конкретной задачей, чем многофункциональное устройство. Векторный процессор был специально построен для обработка больших объёмов данных и является очень эффективным в этом.Улучшения в скалярной технологии,особенно с точки зрения микропроцессоров влечёт за собой общее снижение в использовании векторных процессоров, даже в супер-компьютерах.
[share-locker locker_id=»4161e690f6eaad9ad» theme=»blue» message=»Если Вам понравилась эта статья,нажмите на одну из кнопок ниже.СПАСИБО!» facebook=»true» likeurl=»CURRENT» vk=»true» vkurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»true» linkedin=»true» linkedinurl=»CURRENT» ][/share-locker]
Суперскалярный процессор может самостоятельно выполнять несколько инструкций за один раз в течение одного такта.Он включает избыточные ресурсы исполнения,например,несколько плавающих точек единиц,arithmetic logic узлов и целочисленные шрифты.Этот тип процессора предназначен для параллельных вычислений и выполнения задач без специального программного обеспечения.Это может повысить скорость выполнения многих ресурсоемких приложений путём манипулирования и изменяя кода.Суперскалярный процессор часто используется в нескольких классах компьютеров,в том числе серверах,настольных компьютерах и даже ноутбуках.
Хотя некоторые аспекты архитектуры использовались в процессорах,начиная с 1960-х годов,правда о суперскалярных процессорах не была освобождена значительно позже.Некоторые Reduced Instruction Set Computing (RISC) процессоры,проданные в конце 1980-х и начале 1990-х годов были суперскалярными процессорами.Их простые ядра и фиксированная длина указаний, диспетчеризация и планирование параллельных инструкций,выполнялись относительно легко.Многие не RISC-процессоры,изготовленные с конца 1990-х годов, имели суперскалярную архитектуру.Суперскалярный процессор встроенный с низким энергопотреблением,работает и в сочетании с другими специализированными процессорами часто как исключение, другие аспекты оптимизации их конструкции вместо параллельного выполнения.
Некоторые процессоры могут совместно использовать один трубопровод с инструкциями из нескольких потоков выполнения, известный как супер-threading.Если функциональный блок находится в режиме ожидания, потому что он находится в состоянии ожидания по настоящее время потока выполнения,он может одновременно выполнять инструкции из другого потока.Эта методика помогает в полной мере использовать суперскалярный процессор,но не так эффективно,как одновременная многопоточность (SMT). Один суперскалярный процессор может с помощью SMT выполнять несколько инструкций из нескольких потоков одновременно.Одновременно выполняющиеся потоки могут конкурировать с системой и ресурсами процессора, что может привести к замедлению системы.
Процессоры с многоступенчатыми трубопроводами могут одновременно выполнять несколько инструкций,когда они находятся на разных стадиях исполнения.В отличие от этого,ряд инструкций может выполняться на той же стадии,одновременно суперскалярным процессором.Хотя есть большое сходство между этим типом процессоров и многоядерными процессорами,но они не совпадают.Многоядерный процессор в одном устройстве содержит несколько процессоров,называемых ядра.Каждое ядро многоядерного процессора,как правило,суперскалярный процессор и может включать несколько параллельных трубопроводов.
Ключевая особенность суперскалярного процессора является его способность выполнять программный код.Чтобы сделать это,ему должны быть известны какие-либо инструкции в зависимости от других.Если инструкция влияет на результаты или использует ресурсы другого процессора,весьма вероятно, что два процесса не должны выполняться параллельно.Существуют методы, чтобы устранить некоторые виды зависимостей, но другие должны отложить обработку до тех пор, пока ресурсы доступны.
Если в системе происходит прерывание,out-of-order execution также должны быть в состоянии гарантировать надлежащее содержание регистров,флагов и других ресурсов.В этом случае система должна выглядеть так же, как если бы код был выполнен последовательно, как было задумано.Ещё одно соображение заключается в том,как многие команды процессора,которые необходимо изучить,чтобы найти возможности для параллельного выполнения.Чем больше число,тем эффективнее может быть исполнение.Это также включает в себя выполнение инструкций на другой стороне каждого процессора в исследуемом коде.
[share-locker locker_id=»efca9b9de0a3f239a» theme=»blue» message=»Если Вам понравилась эта статья,нажмите на одну из кнопок ниже.СПАСИБО!» facebook=»true» likeurl=»CURRENT» vk=»true» vkurl=»CURRENT» google=»true» googleurl=»CURRENT» tweet=»true» tweettext=»» tweeturl=»CURRENT» follow=»true» linkedin=»true» linkedinurl=»CURRENT» ][/share-locker]
Наверное, ни для кого из хабралюдей не будет новостью то, что основополагающие идеи и принципы, заложенные в нынешней цифровой технике и ее компонентах, родом из далекого по компьютерным меркам прошлого, а именно – из середины предыдущего века. Именно тогда были придуманы те основы, которые вот уже 50 лет с успехом разрабатывают, совершенствуют и продают крупнейшие (и не столь большие) компании сектора IT – в их строю, конечно, и Intel. Однако при всей очевидности данное положение навевает определенно пессимистический настрой: неужели все великие идеи закончились, и наше поколение обречено на мелочное ковыряние в Великом Наследии Прошлого?
Рассмотрим один конкретный и неудивительный для этого блога пример – заглянем в мысли тех, кто думает об усовершенствовании процессорных архитектур.
Для начала дадим необходимое пояснение – определение суперскалярности. В простейшем скалярном вычислительном действии участвуют два операнда; в векторном операция производится над двумя наборами чисел. Имеется и промежуточный (или смешанный) вариант: одновременно производятся различные операции над разными парами скаляров за счет наличия избыточного количества ячеек обработки – такой подход и называется суперскалярным.
Принципиальная схема суперскалярного исполнения команд
Не будем углубляться в вопрос, кто первый создал суперскалярный процессор – были ли это американские или советские ученые, и в каком году это произошло. Важнее то, что суперскаляр на сегодняшний момент рулит, и реального оппонента ему пока не видно. Однако прямолинейное развитие суперскалярного принципа уперлось сейчас в идеологический предел – при нынешнем подходе большего мы из него не выжмем. Суперскалярный подход, в принципе, одинаково применим и к RISC, и к CISC архитектуре. RISC, в силу более простой системы команд, пока еще имеет потенциал для разгона в рамках классической методики развития – это мы наблюдаем сейчас на примере ARM, динамика роста вычислительной мощности которых впечатляет. Однако и там, и там «кризис жанра» неизбежен, ибо он определяется самой сущностью суперскалярности.
В чем состоит проблема? В сложности задачи, которую берет на себя процессор. Суперскаляр на ходу распараллеливает последовательный код. Но этот процесс распараллеливания слишком трудоемок даже для нынешних процессорных мощностей, и именно он ограничивает производительность машины. Делать это преобразование быстрее определенного количества команд за такт невозможно. Можно сделать больше, но при этом упадет тактовая чистота – такой подход, очевидно, бессмысленнен. Разумный предел количества команд в настоящее время изучен со всех сторон и пересмотру не подлежит.
Суперскаляр вполне можно назвать гениальной архитектурой, но она есть предельно хорошая реализация программы, которая написана последовательно. Беда не в самом суперскаляре, а в представлении программ. Программы представлены последовательно, и их нужно во время исполнения преобразовывать в параллельное выполнение. Главная проблема суперскаляра – в неприспособленности входного кода к его нуждам. Имеется параллельный алгоритм работы ядра и параллельно организованная аппаратная часть. Однако между ними, по середине, находится некая бюрократическая организация – последовательная система команд. Компилятор преобразует программу в последовательную систему команд; от той последовательности, в какой он это сделает, будет зависеть общая скорость процесса. Но компилятор не знает в точности, как работает машина. Поэтому, вообще говоря, работа компилятора сегодня – это шаманство. Он просто смотрит: «если так переставить, то быстрее будет». Наверное.
Вот поучительный пример. Программная предзагрузка (prefetch) – технология, позволяющая предварительно считывать данные в кеш процессора. Она была придумана около 10 лет назад и считалась весьма благотворно действующей на производительность системы. А потом оказалось, что после отключения prefetch, компьютер начинает работать в 1,5 раза быстрее. Все дело в том, что prefetch отлаживался на одной модели CPU, а используется на других (где процессором выполняется некоторый автоматический prefetch), и проще его просто отключить, чем приспособить к нынешнему многообразию процессорного парка. И такие случаи сейчас происходят сплошь и рядом.
«Эльбрус-1КБ» – советская суперскалярная ЭВМ
Можно представить, как сложно компилятору делать программу для суперскаляра. Но аппаратуре приходится еще труднее. Смотрите, что делает суперскаляр: последовательное представление команд выполнения он начинает превращать в параллельное. При последовательном представлении все зависимости данных убираются. Однако по-прежнему необходимо в правильной последовательности обращаться к регистру: не переставлять обращения к одному и тому же регистру. А для того чтобы переставить команды суперскаляру, ему нужно знать все зависимости. Поэтому он все вычислительный поток преобразовывает обратно. Ужас – страшнее не придумаешь. И попытки его оптимизировать похожи скорее на латание дыр, нежели на принципиальные изменения.
Еще 30 лет назад советские разработчики компьютерной техники, проектируя системы Эльбрус , понимали, что суперскаляр – хорошая архитектура, но сложная, необоснованно сложная. И, кроме того, имеющая пределы по скорости. Нужен был принципиально новый подход, и, самое главное, необходимо было убрать камень преткновения – последовательное представление команды. Нужно, чтобы машина получила все в параллельном виде – и это будет очень простое решение. То есть совершенное. А проблему совместимости старого кода и новой архитектуры можно решить с помощью двоичной компиляции.
Еще одна возможность подобного подхода – возможность использовать более, чем одно ядро. Это не планирование вычислений, а просто разделение ресурсов. Ресурсы делим статически на «вычислительные порции»; суперскаляр такого делать не может, так как чтобы хорошо разделить на порции, нужно заглядывать вперед (это может сделать только программа). Фактически, вместо одного потока имеет место явный параллелизм. Это может избавить от большого количества ограничений.
Варианты аппаратного параллелизма в процессорах многократно опробовались различными исследовательскими группами, естественно, ведутся такие разработки и в Intel; одним из их результатов стал процессор Itanium, использующий архитектуру VLIW (very long instruction word — очень длинное слово команды). VLIW представляет собой химически чистую реализацию идеи, высказанной выше, когда вся нагрузка по созданию параллелизма ложится на плечи компилятора, а в процессор поступает уже аккуратно и грамотно распараллеленный поток команд.
Процессор Intel Itanium 2
Другое перспективное направление движения к параллельному будущему – процессоры с большим количеством микроядер, где многопоточность достигается самым что ни на есть аппаратным способом, причем каждое ядро поддерживает также механизм суперскалярности. В Intel подобного рода разработки ведутся под флагом MIC (Many Integrated Core Architecture). Проект прошел несколько ступеней развития, при переходе от одной к другой несколько менялись приоритеты и позиционирование продукта – обо всем этом вскорости будет отдельный рассказ.
Подведем промежуточный итог. Ведутся ли сейчас фундаментальные разработки, способные в будущем кардинально изменить нашу жизнь/представление о процессоре? Да, несомненно, многое из того, о чем мы говорили сегодня, через 50 лет войдет в учебники по истории цифровой техники. Ну а мы в блоге Intel (где же еще!) обязуемся, не дожидаясь этого срока, информировать и дальше о вестях с процессорных фронтов.
Читайте также: