Многие слышали о мультиклеточной архитектуре, процессорах а также первых устройствах на них. Особенно продвинутые пользователи опробовали собственные методы. Были совершены первые простые тесты производительности, и пользователь Barsmonster, вытравил кристалл процессора Р1. на данный момент уже проходит первые проверки процессор R1 и не так долго осталось ждать будет дешёв всем. Но ответ на вопрос о том, как трудится мультиклеточная архитектура и в чём её отличие, знают не все.
Постараемся на данный момент ввести в курс дела.
Смотрите кроме этого: Allwinner A33 — четырёхъядерный процессор для бюджетных Android-планшетов
Компания Allwinner представила новый четырехъядерный процессор A33, предназначенный для бюджетных планшетных компьютеров на базе ОС Android. Процессор Allwinner A33 владеет четырьмя ядрами Cortex-A7 и графическим ускорителем Mali-400 MP2. Новинка будет содействовать понижению цен на Android-планшеты благодаря собственной стоимости всего в $4,99.
Allwinner A33 владеет помощью дисплеев с разрешением 1280×800 пикселей и разработкой SmartColor, которая повышает насыщенность изображения.
1.МультиклеточностьМультиклеточное ядро — это несколько аналогичных процессорных блоков(2 и более), объединенных полносвязной однонаправленной коммутационной средой. Особенности сотрудничества процессорных блоков между собой вытекают из представления метода (об этом ниже). Процессорный блок в мультиклеточной архитектуре именуется клеткой.
Комплект команд, что она может делать определяется конкретной реализацией и не зависит от архитектуры.Методы «глазами» мультиклеточного ядраВо-первых. Любую формулу возможно представить в виде ярусно-параллельной формы (ЯПФ). Разглядим несложной пример: g = e*(a+b) + (a-c)*f, в ЯПФ это может смотреться так:Рис 1. Пример ЯПФВ неспециализированном случае, для исполнения операций узлы, расположенные на i-ом ярусе, смогут применять результаты, полученные на ярусах от 1 до (i-1)-го.
Из этого направляться, что команды, находящиеся на одном ярусе, свободны.Любой метод – это множество формул, которое поделено на подмножества — линейные участки, связанные между собой операторами передачи управления. Под линейным участком (ЛУ) понимается такое подмножество формул, которое вычисляется тогда и лишь тогда, в то время, когда управление передано на этот линейный участок.
В линейного участка, информационно несвязанные формулы смогут выполняться в любом порядке.Как мы знаем, итог исполнения процессором любой команды выражается в трансформации состояния процессора. Применение этого нового состояния последующими командами, образует информационную связь между командой–командами и источником результата–приемниками результата.
Такая сообщение возможно как опосредованной (косвенной), так и яркой (прямой).При косвенной связи итог доступен лишь по окончании его отчуждения: записи в общедоступные регистры либо память либо др. устройства. Команда-источник обязана поместить итог в эти устройства, а команда-приемник обязана будет забрать эти оттуда. Имя устройства указывается в качестве операнда.
Такая связь между командами есть базой полностью всех современных процессоров, не считая мультиклеточных.При прямой информационной связи, команды именуются и наряду с этим имена должны идентифицировать фактически команду, а не ее расположение либо другие особенности реализации. Доступ к итогам может осуществляться по именам как команд–источников, так команд–приемников.
В первом случае употребляется широковещательная рассылка с последующим поименным отбором, при которой в поле операнда команды–приемника задают имя команды–источника. Во втором – выполняется поименная рассылка, при которой в команде–источнике задают имя команды–приемника результата.Теоретически узлы ЯПФ мы можем поименовать любым образом. Единственное требование — однозначность.
Для этого в мультиклеточном процессоре команды, при выборке из памяти, приобретают тег (метку) — так им и их итогам дается локальное имя — и потом сотрудничество между командами организовывается через теги. Эти возможно приобретать из любой команды с тегом меньше собственного. Номер тега требуемого результата задается отличием тега тега и значений команды требуемого результата.
К примеру, в случае если в операнде указано @5, а тег команды равен 7, то в качестве операнда употребляется итог команды с тегом 2. Все результаты исполнения команд поступают в коммутационную среду, из которой по тегу отбираются требуемые. Так в мультиклеточном процессоре употребляется широковещательная рассылка результатов с последующим их поименным отбором.Необходимо подчеркнуть, что из-за физических ограничений имеется понятие «окна видимости», которое определяет большое расстояние команды-источника от команды приемника.
Тег в ходе выборки команд изменяется циклически. Его большая величина определяется размером буфера команд. Практически размер тега определяет количество команд, каковые в один момент смогут пребывать на различных этапах выполнения.
Значение тега не может быть использовано, в случае если команда, которой он ранее был присвоен, еще не выполнена. Во-вторых.Мультиклеточный процессор оперирует структурами, каковые мы именуем — параграфами. Параграф — это информационно замкнутая последовательность команд. Параграф есть аналогом команды, по окончании исполнения которой, изменяется состояние процессора и/либо совокупностей в его составе (регистров, шин, ячеек памяти, каналов ввода/вывода и т.д.).
Т.е. для мультиклеточного ядра параграф — это команда.Главная изюминка мультиклеточной архитектуры в том, что она конкретно реализует ЯПФ представления метода. Из для того чтобы понимания метода вытекают многие свойства мультиклеточной архитектуры.2.Свойства мультиклеточной архитектуры
- независимость от кол-ва клеток;
- динамическое распределение вычислительных ресурсов;
- все команды, готовые к исполнению, выполняются в один момент;
- понижение энергопотребления. Трудится тогда, в то время, когда имеется работа;
- масштабируемость, нет ограничений на кол-во клеток.
Разглядим подробнее как будет смотреться параграф для метода, обрисованного в п.2. Для мультиклеточно ядра характерна следующая схема построения параграфа (не есть необходимой, в приведенном примере так же имеется отступления):
- получение данных для работы (команды с тегом 0-2,4,6 в примере);
- процесс обработки данных (команды с тегом 3,5,7-9 в примере);
- сохранение результатов (команда с тегом 10 в примере).
направляться напомнить, что изменение состояния автомобили в мультиклеточном процессоре происходит по финишу параграфа.Метод не зависит от кол-ва клеток.Информационные связи между командами указаны очевидно и нет необходимости знать о количестве процессорных блоков, в то время, когда пишется программа. Команды готовности собственных операндов и затем уходят на выполнение и им не имеет значения кто и в то время, когда им подготовит операнды.
Представьте лейку — вы не вспоминаете какое количество отверстий в ее насадке, в то время, когда поливаете. Клетки аналогичны и нет отличия в какой клетке будет выполняться та либо другая команда.Команды распределяются по клеткам в порядке их следования, 1 команда в 0 клетку, 2 команда в 1 клетку и т. д., в то время, когда передали команду в последнюю имеющуюся клетку — начинаем распределять заново с 0 клетки. Разглядим работу 4-х клеточного ядра.
Параграф, вышеприведенный, будет выполняться следующим образом:Рис 2. Распределение команд по клеткамКол-во в один момент делаемых команд зависит от кол-ва клеток. Выбор оптимального числа клеток для каждой задачи — это задача, которая требует анализа.
Создать универсальную совокупность все равно не окажется, исходя из этого возможно ориентироваться на следующие эти: на неспециализированных задачах хорошо справляются 4 клетки, а с задачами обработки сигналов — 16 клеток, а для обработки видеоизображения их число возможно порядка сотен.Имеете возможность совершить анализ собственного кода и представить каким было бы оптимальное число клеток для них. Для того потребуется представить ваш метод в ЯПФ и подсчитать количество команд в ярусах.
Среднее число команд в них будет намекать на оптимальное количество клеток в вашем конкретном случае.Все команды, готовые к исполнению, выполняются в один момент.Как упоминалось выше, мультиклеточное ядро реализует ЯПФ представление метода, на ярусах находятся свободные команды.Все, что сейчас возможно выполнено — будет выполнено без каких-либо особых указаний со стороны программиста, главное условие — команда обязана взять все сведенья для выполнения.Необходимо принимать в расчет технологические ограничения: кол-во клеток ограничено, исходя из этого выполняться в один момент будет столько команд, сколько клеток в ядре.«Сход-развал» либо динамическое распределение вычислительных ресурсовТ.к. код не зависит от количества клеток, которым он будет исполняться, появляется свойство мультиклеточного ядра к распределению собственных вычислительных ресурсов на протяжении работы, наряду с этим управление происходит программно.Свойство мультиклеточной архитектуры перераспределять собственные ресурсы мы именуем — реконфигурацией. К примеру, клетки мультиклеточного ядра смогут быть, как угодно распределены для исполнения какого-либо метода либо его части.
Несколько (лучше заглавия пока не придумали) — это часть клеток мультиклеточного ядра, каковые связаны между собой для исполнения какого-либо метода либо части метода. В группе может пребывать 1 и более клеток. В то время, когда мультиклеточное ядро разделяет группу на части — это именуется декомпозиция.
Процесс объединения в группу — композиция. На рис 3 ниже продемонстрировано как 4-х клеточное ядро со временем реконфигурируется (пример). Клетки, делающие одну задачу, имеют одно цветовое заполнение.Рис 3. Пример реконфигурации клетокСнижение энергопотребления.
Трудится тогда, в то время, когда имеется работа.Принципиальной базой мультиклеточной архитектуры есть широковещательная рассылка. На сегодня – это до тех пор пока единственная архитектура, применяющая яркую информационную сообщение для передачи данных между командами в программе.В случае если обратить внимание на рис 1, на котором продемонстрирован пример исполнения кода 4-х клеточным процессором, то видно, что клетки делают команды расположенные на ярусах тогда, в то время, когда они готовы быть выполнены.
Итог помещается в коммутационную среду и ожидает собственного потребителя.Мультиклеточное ядро не совершает лишних действий, трудится тогда, в то время, когда имеется работа. В случае если какая-нибудь из составляющих процессора не готовая выполнить команду, то работа с ней приостанавливается до освобождения. Масштабируемость, нет ограничений на кол-во клеток.Архитектура не ограничивает кол-во клеток.
Дело стоит за разработками.Имеется пара вариантов организации солидного числа клеток, но это тема для отдельной статьи, которую подготовим позднее.3.РеализацияМультиклеточный процессор «во-плоти»Мультиклеточный процессор складывается из N аналогичных клеток с номерами от 0 до n-1, объединённых коммутационной средой. Любая клетка содержит блок памяти программ (PM), устройство управления (CU), буферные устройства (BUF), и каждой клетке соответствует коммутационное устройство (SU), совокупность которых образует коммутационную среду (SB).
Процессор кроме этого содержит память данных (DM), блок регистров неспециализированного назначения (GPR) и аккуратно устройство(EU), складывающееся из арифметико-логического устройства для чисел с плавающей запятой(ALU_FLOAT), АЛУ для целых чисел(ALU_INTEGER) и блок доступа к памяти данных(DMS).Программа для мультиклеточного ассемблера складывается из параграфов. К примеру:Paragraph: ;Разные команды jmp paragraph_next ; переход на следующий параграф complete В действительности команда перехода на следующий параграф может находиться в любом месте текущего параграфа, но пока мы не заостряем на этом внимание.
В данном примере параграф – это все команды от метки “Paragragh” до метки финиша участка команд — “complete”.В параграфе команды смогут размешаться в произвольном порядке, команды смогут ссылаться на итог прошлых команд посредством оператора «@», но направляться учитывать, что нельзя сослаться на итог команды, которая выше текущей на 64 команды. Т.е. окно видимости результата для каждой команды равняется 64, наряду с этим размер параграфа не ограничен, т.е. он может состоять хоть из нескольких тысяч команд.
Разглядим пример:Paragraph: getl 2 ;загрузка числа в коммутатор getl 3 ;загрузка числа в коммутатор addl @1, @2 ;сложение 2 + 3 addl @1, @3 ;сложение 5 +2 jmp paragraph2 complete В разглядываемом примере команда addl @1, @2 делает сложение двух прошлых команд, а команда addl @1, @3 делает сложение результата прошлой команды и итог команды, которая на 3 строки выше.Состояние процессора изменяется при переходах от одного параграфа к второму. Записи в память, регистры происходят по финишу параграфа , если контроль чтения записи включён либо не употребляются команды записи и прямого чтения.
Но имеется возможность записи контроля и отключения чтения, т.е. запись в память будет проходить в самом параграфе, не ждя его завершения (в случаях, в то время, когда имеется возможность отключить записи и контроль чтения, при работе с памятью может принести ощутимое повышение производительности). В действительности выжать максимум из мультиклеточного процессора несложно, но это тема для отдельной статьи.Для выполнения контекстно-зависимой программы, команды каждого параграфа последовательно, начиная с одного и того же адреса, являющегося адресом данного параграфа, размещают в PM клеток.
Адрес размещения первого исполняемого параграфа равен адресу, начиная с которого клетки выбирают команды. В следствии, в PM i–ой клетки, начиная с адреса параграфа, последовательно размещаются его команды с номерами i, N+i, 2*N+i,…,. Любая клетка снабжает, начиная с указанного ему адреса, размещение и последовательную выборку команд их на регистре команд для декодирования. Команды клетками выбираются синхронно.
При декодировании каждой очередной выбранной группе из N команд присваивают очередное значение тега (t), а команде из группы и ее результату – номер. декодирование и Выборка команд длится до тех пор, пока не будет выбрана команда, отмеченная управляющим показателем «финиш параграфа»(Complete). Адрес нового параграфа может поступить как в любую секунду выборки команд текущего параграфа, так и по окончании завершения выборки команд. Он поступает всем клеткам в один момент.
В случае если к моменту выборки последней команды параграфа адрес следующего параграфа не вычислен, то выборка приостанавливается до получения адреса. В случае если адрес взят, то выборка длится с этого адреса.
Выбранная команда поступает в буферное устройство, которое складывается из буфера первого операнда, буфера буфера команд и второго операнда (коды операций, теги и т.п.) Буферные устройства формируют команды и передают их соответствующему аккуратному устройству.Операционная часть (буфер команд), не считая кода команды, включает в себя всю нужную служебную данные для приёма и рассылки результатов, в частности, признаки готовности и номер команды первого (второго) операнда для исполнения команды.Буфер хранения операндов имеет ассоциативную адресацию. Ассоциативным адресом есть тег запрашиваемого результата. В качестве операндов при исполнении операций смогут употребляться:
- запрошенные результаты команд–источников, поступающие из коммутатора;
- значения, вычисленные при декодировании командного слова, и конкретно присутствующие в командном слове либо забранные из регистров неспециализированного назначения.
В первом случае показатель готовности данного операнда при записи команды устанавливают в состояние «не готов», а во втором – в состояние «готов». По окончании получения запрошенного результата от коммутационного устройства, показатель, в первом случае, кроме этого устанавливают в состояние «готов». Команда, взявшая все операнды, проходит приоритетный отбор среди вторых готовых команд в буферном устройстве, по окончании чего выдается на выполнение при условии незанятости аккуратного устройства.
В процессоре P1 для каждой клетки был выделен собственный участок памяти, т.е. память и память программ данных не пересекались. В процессоре R1 память и память программ данных находятся в одном адресном пространстве, т.е. у клеток имеется каналы доступа к памяти и памяти программ данных. На рис 4 приведена неспециализированная структура процессора P1.
На рис 5 приведена структура клетки и её описание для процессора R1. Рис 4. Неспециализированная структура мультиклеточного процессораАрифметико-логические устройства (АЛУ), наровне с блоком DMS, входят в состав комплекта аккуратных устройств имеющегося в каждой клетке (CELL). В клетку входят следующие устройства:1. Устройство выборки команд IDU (Instruction Distribution Unit).2.
Устройство управления.3. Коммутационное устройство SU (Switch Unit).4. Буферное устройство.5. Целочисленное АЛУ.6. АЛУ с плавающей точкой.7. Блок доступа к памяти данных DMS (Data Memory Service).8.
Мультиплексор результатов.9. Комплект регистров GPR (General-Purpose Registers).10. Контроллер прерываний IC (Interrupt Controller).11. Отладочный блок JTAG-GPR.Подробная структура клетки представлена на рисунке 5.Рис 5. Структура клетки.Итог исполнения команд аккуратные устройства передают в коммутационное устройство. В случае если в один момент готовы результаты исполнения команд целочисленного АЛУ, АЛУ с плавающей точкой и DMS, коммутационное устройство принимает итог исполнения команды АЛУ с плавающей точкой.
По приоритету чтения результата аккуратные устройства распределяются следующим образом:1.АЛУ с плавающей точкой;2.DMS;3.Целочисленное АЛУ.Аккуратные устройства, итог работы которых на текущем такте не может быть выдан в коммутационное устройство, записывают итог исполнения команды в выходной регистр и ожидают собственной очереди на выдачу результата. Обрисованная выше обстановка имеет следствием то, что количество тактов, нужное для исполнения команды, есть величиной недетерминированной.В каждой клетке имеются два АЛУ: целочисленное АЛУ и АЛУ обработки чисел с плавающей точкой.Целочисленное АЛУ предназначено для исполнения команд над целочисленными операндами, наряду с этим операнды смогут быть представлены в следующих форматах (в зависимости от команды):
- 64-битные;
- 32-битные;
- 16-битные;
- 8-битные;
- упакованные 32-битные;
- упакованные 16-битные.
АЛУ с плавающей точкой предназначено для исполнения команд над операндами, представленными в формате чисел с плавающей запятой одинарной (32 бита) либо двойной точности (64 бита) в соответствии с требованиями стандарта IEEE-754.Структурно АЛУ с плавающей точкой складывается из трёх частей:
- Делитель одинарной точности (деление, извлечение квадратного корня)
- Делитель двойной точности
- Вычислитель (исполнение остальных команд)
В чём отличие мультиклеточных процессоров от многоядерных?В простых процессорах, складывающихся из одного либо нескольких ядер, элементарной единицей выполнения есть команда, делаемая в определённом порядке. В мультиклеточном процессоре элементарной единицей выполнения есть параграф, т.е. линейный участок, складывающийся из неограниченного количества команд, по окончании которых происходит переход на другой линейный участок с заданной меткой.
Команды из этого участка будут выполняться параллельно в том месте, где это вероятно. Распараллеливание происходит аппаратно, т.е. программисту не требуется заботиться в какую клетку попадёт команда. Именно это мы и именуем «естественный параллелелизм». Благодаря этого одинаковый код возможно выполнен на любом количестве клеток.
Ещё одним отличием мультиклеточного процессора есть передача результатов работы команд посредством широковещательной рассылки, в то время как в большое количество и одноядерных совокупностях результаты передаются через регистры и память. Очевидно, в мультиклеточных процессорах имеется регистры и память для передачи данных между линейными участками, но в линейного участка главные операции возможно совершить без применения регистров и памяти.
Этот факт даёт мультиклеточной архитектуре уменьшение обращений и простоту реализации к памяти, как следствие понижение энергопотребления. Помимо этого исполнение одной и той же программы на одной, двух, …, двухсот пятидесяти шести клетках даёт возможности по реконфигурации (объединение клеток в task-группы) клеток, созданию отказоустойчивого процессора и масштабируемости.К вопросам параллелилизма и реконфигурации мы ещё возвратимся потом в данной статье.4.ПримерыМультиклеточный процессор складывается из 4-х клеток (возможно 256 и более), клетки являются всецело равноправными и объединены коммутационной средой (коммутатором).
Итог исполнения команд клетки хранят в коммутаторе.Программа на ассемблере разделяется на секции и на параграфы, каковые содержат команды. Для обмена информацией между клетками помогает коммутатор, а для обмена между параграфами существуют РОНы, индексные регистры, память данных. Для работы с периферией существуют периферийные регистры.Дабы отсеять высказывания вида:
- Пускай кроме того это «страница» памяти, но кто «рулит» всей памятью? Где старшее (верхнее) УУ, управляющее клетками? Кто загружает память клеток?
- Параллелит программист, а не процессор
Разглядим несложную программу:Рис 2. Распределение команд по клеткамКак продемонстрировано на рисунке 2 команды из параграфа будут распределяться по клеткам. Команды в каждых клетках выполняются параллельно («естественный параллелелизм»). Исполнение команд происходит по готовности доводов. В этом случае программу делает группа из 4-х клеток. Программа удачно выполнится как на 4-х, так на любом втором количестве клеток.
Фундаментальный принцип мультиклеточной архитектуры – клетки свободны друг от друга и от кого-либо и однообразны. Этот принцип распространяется и на процессоры с реконфигурацией.Реконфигурация — свойство клеток процессора к композиции (сбор) и декомпозиции (разбор) по группам, т.е. возможность клеток объединяться в группы от одной клетки и до N(для N клеточного процессора) и делать собственный участок кода. По умолчанию при старте любой программы все клетки находятся в одной группе.
Необходимо подчеркнуть, что у каждой группы появляется собственный комплект РОНов, индексных, управляющих регистров, возможно назначить собственный обработчик прерываний.В статье про архитектуру фон-Неймана www.osp.ru/os/2008/06/5340894/ Леонид Черняк выделяет следующие три вида реконфигурируемых процессоров:1)специальные процессоры2)конфигурируемые процессоры3)динамически реконфигурируемые процессоры (как пример приводится единственный класс этого вида, существующий на момент опубликования статьи Л.Черняка — FPGA)Первые два вида покупают собственную специфику в ходе изготовления, а третий может программироваться.Мультиклеточный процессор R1, в соответствии с данной классификацией, относится к динамически реконфигурируемым, но это процессор на кристалле и, благодаря независимости машинного кода, перераспределение ресурсов (клеток) в отличие от FPGA происходит безостановочно либо перезагрузки процессора и без утраты информации. Так, MultiClet R1 представляет собой новый класс третьего вида (наровне с первым – FPGA).
На сегодня в мире таких процессоров не делал никто. Предложенная Л.Черняком классификация, с поправкой на будущее развитие, возможно развита четвертым видом, что сформулируем, как 4) самоадаптирующиеся процессоры,талантливые самостоятельно снабжать работу всех совокупностей, машинально перераспределяя ресурсы.
При повреждении, отказах либо при появлении дополнительных задач процессор либо совокупность из процессоров обязана мочь самоадаптироваться к новым условиям.Первым шагом к созданию таких совокупностей, быть может, станет процессор Multiclet L1 либо СвК на его базе.Разглядим пример декомпозиции (разделения на группы) клеток:В данном примере мы видим разбиение на 3 группы: клетки с номерами 0 и 1 делают вычисления, клетка 2 делает сбор информации с датчиков, а клетка 3 образовывает отчёты о работе и взаимодействует с внешней средой. В случае если произошло так, что клетки 0 и 1 не успевают обрабатывать эти, то клетка 3 может придти им на помощь и окажутся две группы.
Принципиально важно подметить, что сброса процессора для реконфигурации клеток не нужно. Клетка 3 будет говорить на одном языке с клетками 0 и 1, т.е. купит их комплект РОНов, индексных регистров и регистров управления.Несложный пример простой программы на ассемблере (возможно писать и на стандартном Си):.texthabr: getl 4 ;загрузка константы в коммутатор getl 5 ; загрузка константы в коммутатор addl @1, @2 ;сложение 4 + 5 = 9mull @3, @2 ;умножение 4 * 5 = 20subl @1, @2 ;вычитание 20 – 9 = 11slrl @1, 2 ;сдвиг 11 Параграфы находятся в секции размеченной как «.text».
Параграф может содержать неограниченное количество команд (до тех пор пока память программ разрешает), но любая команда может обратиться за результатом лишь к команде, которая выше не более чем на 63 строчки.Для удобства в ассемблере возможно задать метку к каждой команде, к примеру:habr: arg1 := getl 5 ;загрузка константы в коммутатор sum1 := addl @arg1, [10] ;значения и сложение константы из памяти по адресу 10 setl #32, @sum1 ;запись суммы в регистр номер 32 complete В мультиклеточном процессоре нет аппаратных средств, снабжающих обнаружение информационных связей между выбранными операциями (командами) и их распределение по функциональным устройствам, т.е. динамическое распараллеливание отсутствует. Нет и статического распараллеливания, т.к. программа не смотря на то, что и обрисовывает информационные связи, но имеет линейную форму и не содержит каких-либо указаний, что и как возможно делать параллельно.
В этом состоит принципиальное отличие от вторых процессоров. Благодаря данной же особенности, возможно обеспечивается живучесть мультиклеточного процессора, т.е. возможность постоянного выполнения программы без перекомпиляции либо перезагрузки при отказах его отдельных клеток (деградации процессора). Благодаря свойству мультиклеточного процессора динамически распределять собственные ресурсы, мы можем создавать совокупности талантливые делать задачу кроме того при отказах части клеток.Деградация связана с утратой производительности и повышением времени решения задач. Но, для многих встроенных применений, живучесть мультиклеточного процессора разрешает управляемому объекту делать главные функции, или за счет понижения их качества, или за счет отказа от ответа второстепенных задач.Асинхронная и децентрализованная организация мультиклеточного процессора, как на системном уровне – между клетками (при реализации параллелизма), так и на внутриклеточном уровне – между блоками клетки (при реализации команд), дополнительно снабжает:
- минимизацию номенклатуры объектов проектирования и уменьшение их сложности;
- уменьшение площади кристалла процессора (количество оборудования при децентрализованном управлении меньше, чем при централизованном);
- сокращение энергопотребления и увеличение производительности за счет реализации более действенного вычислительного процесса;
- применение личной совокупности синхронизации для каждой клетки при реализации на одном кристалле сотен и десятков клеток.
В следствии, получается прекрасно структурированная и модульная совокупность, разрешающая быстро уменьшить сложность процессора и сократить издержки и повысить уровень качества проектирования. Наряду с этим если сравнивать с фон-неймановской моделью, постоянно совершенствуются и количественные характеристики процессора. Сейчас совершены тесты несложных методов, таких как POCNT и методов шифрования.
Для теста popcnt была разработана программа на ассемблере и итог мы сравнили с несложной программой для Pentium Dual Core 5700 на Си.Результаты тестирования возможно свести в следующую таблицу (количество тактов на один цикл расчёта 32-х бит):Т.е. возможно сделать вывод, что процессор Мультиклет R1 на тесте «table» стремительнее процессора Intel на 15%, а на тесте BitHacks процессор Мультиклет R1 стремительнее чем Intel более чем в 2 раза. Тест popcnt для мультиклеточного процессора был достаточно легко преобразован для параллельных вычислений.
Само собой разумеется, в новых процессорах Intel существует аппаратная реализация popcnt, но в данном тесте мы продемонстрировали возможности отечественных процессоров.5.Что у нас имеется сейчасНа этот момент выпущен процессор Multiclet P1 и он доступен для заказа, и две отладочные платы. Каковые смогут быть использованы как промышленные.Помимо этого на первом мультиклеточном процессоре создано устройство для защиты информации Multiclet Key_P1, первая серийная партия запланирована на сентябрь 2014 года.
Принимаются заказы, более детально тут multiclet.com/index.php/ru/component/content/article/300Помимо этого на базе процессора Р1 был создан и поставляется серийно принтер для тиснения фольгой virshke.ru/ Пользователи деятельно осваивают мультиклеточные процессоры и дополняют библиотеки, и создают новые нужные примеры.Взята первая партия процессоров R1, начато тестирование новых процессоров.Первая ревизия процессора именуется R1-1.Снова же новый процессор – тема для отдельной статьи, характеристики процессора первой ревизии опубликуем чуть позднее.Для данного процессора компания LDM-Systems выпустила отладочную плату, складывающуюся из базисной и процессорной. На фотографии версия с колодкой.
Пользовательская версия будет мало различаться. Комплектацию базисной платы возможно будет выбирать под собственные задачи, в большой комплектации базисная+процессорная платы будут стоить около 10 тысяч рублей.отладочные платы и Процессоры уже доступны для заказа.Набор ПО включает:• Ассемблер• Си компилятор• Функциональная модель• Библиотеки• Отладчик для IDE Geany• ОС FreeRTOS• Примеры программ• ГрафопостроительP.S. В случае если Вам понравилась эта статья не обращая внимания на громадный количество, то могу написать продолжение по программированию процессоров, обзор процессора R1 и правила построения высокопроизводительных совокупностей на мультиклеточных процессорах.
Случайная статья:
Михаил Бахтерев: Архитектура процессоров Мультиклет
Похожие статьи:
-
Как узнать какой у меня процессор?
Процессор компьютера есть его наиболее значимым компонентом, что создаёт все расчеты, нужные для работы той либо другой программы. К примеру, при…
-
В случае если что-то в компьютере претендует на звание «Самый главный элемент», то это центральный процессор. Эта подробность занимается всеми главными…
-
Svchost.exe грузит процессор на windows: решение проблемы
Svchost.exe — исполняемый файл, «напугавший» не одного пользователя. Не смотря на то, что это слово возможно было бы написать и без кавычек. Данный…