Смекни!
smekni.com

Концепция 8 1 Описание алгоритма в виде «триад» 8 2 Принципы построения процессора 11 (стр. 1 из 7)

Мультиклеточные процессоры

(концепция)


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

С момента создания первого компьютера на этом рынке абсолютно доминирует фон-неймановская архитектура. Но, по мнению экспертного сообщества, эпоха этой архитектуры завершается. Динамика развития рынка требует качественно новой (пост-неймановской) архитектуры, способной на десятилетия определить дальнейшее направление создания микропроцессоров.

Вывод такой архитектуры на рынок создает реальную возможность занятия лидирующих позиций.

Исследования процессорных архитектур, проведенные в ООО «УралАрхЛаб», показывают, что такое пост-неймановское направление всего одно(!) – это создание процессоров с контекстно-зависимой программой. Только они могут решить как существующие проблемы, так и перспективные задачи компьютерной индустрии.

Разработка, при поддержке Фонда «Инновационые технологии», первого мультиклеточного процессора с контекстно-зависимой программой MCp0402100100 подтвердила реализуемость и правильность выбранного направления.

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

СОДЕРЖАНИЕ


ВВЕДЕНИЕ................................................................................................................................................. 4

1 КОНЦЕПЦИЯ......................................................................................................................................... 7

1.1 Описание алгоритма в виде «триад».......................................................................................... 7

1.2 Принципы построения процессора............................................................................................ 10

2 АРХИТЕКТУРА................................................................................................................................... 12

2.1 Схема мультиклеточного процессора..................................................................................... 12

2.2 Исполнение программы.............................................................................................................. 13

2.3 Архитектурные особенности..................................................................................................... 15

ЗАКЛЮЧЕНИЕ....................................................................................................................................... 19

Приложение 1.................................................................................................................................... 20



ВВЕДЕНИЕ

«Фон-неймановская» эпоха в компьютерной индустрии завершается. В International Technology Roadmap for Semiconductors (ITRS) отмечается, что эволюционное развитие, доминирующей последние шестьдесят лет на рынке фон-неймановской модели процессора, сходит на нет [htpp://itrs.net/Links/2005ITRS/Sys Drivers2005.pdf].

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

Учитывая роль архитектуры, создавшуюся ситуацию можно рассматривать как очередную точку бифуркации в развитии компьютерной индустрии. Выход из нее – это поиск качественно нового, пост-неймановского направления развития процессорных архитектур.

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

Начиная с первых вычислительных машин, основной тенденцией развития фон-неймановской архитектуры было увеличение уровня параллелизма при выполнении потока команд. Это стремление неразрывно связано с попытками ослабить или обойти ключевой принцип фон-неймановской архитектуры, а именно, упорядоченное, последовательное размещение команд в программе и их исполнение в порядке размещения. Так, например, конвейер – это частичное совмещение исполнения нескольких команд во времени. Суперскалярная организация процессоров и VLIW-процессоры – это совмещение исполнения нескольких команд не только во времени, но и в пространстве.Требование упорядоченного размещения и исполнения команд – необходимое условие реализации опосредованной формы информационных связей между командами, которая используется в фон-неймановской архитектуре. А именно, результат выполнения любой очередной команды отчуждается, т.е. записывается в общедоступную память машины (регистры, ЗУ), и только после этого он доступен (виден) программисту и может использоваться им в качестве операнда для последующих команд.Наиболее известные попытки уйти от опосредованной формы и, таким образом, обеспечить «естественную» реализацию параллелизма – это потоковые и редукционные машины, использующие не опосредованное, а явное задание информационных связей между командами.Так, в потоковой машине адрес команды, потребителя результата выполнения другой команды, задается непосредственно в командном слове команды-источника этого результата. После выполнения команды-источника результат записывается непосредственно в поле операнда команды-потребителя и становится ее частью.В редукционной машине адрес команды-источника задается в командном слове команды-потребителя, что также обеспечивает непосредственную передачу и использование результата.Информационные связи в обеих машинах определяют порядок исполнения. В итоге, оно становится неупорядоченным – «по готовности» или «по запросу». Это обстоятельство, противоречит модели вычислений используемой в наиболее распространенных императивных языках высокого уровня.Как известно, модель вычислений в императивных языках высокого уровня – это выполнение упорядоченной последовательности операторов. Каждый оператор представляет собой неделимую и целостную языковую конструкцию, описывающую процесс преобразования данных. Порядок выполнения операций внутри оператора задается путем их ранжирования и расстановки скобок, т.е. указанием информационных связей между операциями. Промежуточные результаты вычислений внутри оператора не отчуждаются и программисту не видны. Отчуждается и виден только результат выполнения оператора. Следовательно, для абстрактной машины, непосредственно реализующий некоторый язык высокого уровня, оператор языка является командой.Исходное множество операций любого алгоритмического языка изначально зафиксировано и конечно. Множество операторов, которые теоретически могут быть сконструированы с использованием данных операций — потенциально бесконечно и, соответственно, машина с архитектурой, непосредственно реализующей язык высокого уровня, не имеет фиксированной системы команд.Подобная архитектура лежит в основе принципиально нового направления построения процессоров – мультиклеточных процессоров, качественные и количественные характеристики которых позволяют говорить о появлении нового пост-неймановского поколения и которые были подтверждены разработкой первого мультиклеточного процессора MCp0402100100.

1 КОНЦЕПЦИЯ

1.1 Описание алгоритма в виде «триад»

Любую формулу, например, приведенную на рисунке 1.1(а), можно представить в виде ярусно-параллельной формы так, как показано на рисунке 1.1(б).


(а) (б)

Рисунок 1.1 - Ярусно-параллельное представление формулы: формула(а); ярусно-параллельная форма(б).

Пронумеруем последовательно все узлы ярусно-параллельной формы приведенной на рисунке 1.1(б) каким-либо образом, например, слева направо и сверху вниз. Идентификаторы переменных, если их значения используются другими операциями, будем рассматривать как операции чтения данных переменных. Если идентификатор фиксирует результат выполнения операции, то его будем рассматривать как операцию записи данной переменой. Запишем выполняемые операции в порядке номеров. В качестве операндов выполняемой операции укажем номера операций, результаты исполнения которых являются ее аргументами.

Номер

oc

op1

op2

0

1

2

3

4

5

6

7

8

9

10

RD

RD

RD

+

RD

-

RD

*

/

+

WR

a

b

c

0

e

0

f

3

5

7

9

1

2

4

6

8

g

Рисунок 1.2 - Описание ЯПФ в виде «триад»

Данное описание, показанное на рисунке 1.2, аналогично промежуточному представлению программы в виде «триад», используемому в процессе компиляции программ, написанных на языках высокого уровня. От классической формы этого представления оно отличается использованием операций чтения и записи и ссылок на эти операции вместо непосредственного использования идентификаторов (ссылок на таблицу идентификаторов). Таким образом, его можно рассматривать как машинно-адаптированную форму исходной программы написанной на языке высокого уровня.Программа в этом виде представляется пронумерованной последовательностью триад, которая делится на участки. Каждый участок соответствует, как правило, одному оператору программы и содержит подмножество триад, реализующее этот оператор. Очередность записи участков соответствует очередности записи операторов в программе. Каждая триада описывает выполнение некоторой операции над операндами, заданными идентификаторами или ссылками. Ссылка является номером триады, результат выполнения которой используется в качестве операнда, т.е. ссылка явно задает информационную связь между операциями. При этом результаты триад передаваемые по ссылке не отчуждаются.Так как информационный обмен между операторами опосредован и осуществляется через отчуждение результатов, то подмножество триад реализующих оператор замкнуто. Оно не имеет ссылок на триады других операторов и триады других операторов не ссылаются на триады данного подмножества. Вне своего подмножества конкретная триада смысла не имеет и, следовательно, не может считаться командой, т.е. информационным сообщением, определяющим действия исполнительного устройства и обладающим целостностью и неделимостью (см. приложение 1). Триада обладает неделимостью, но не обладает целостностью.Любая триада имеет смысл и может быть выполнена только в определенном контексте. А именно, только после выполнения триад, результаты которых она использует и до тех триад, которые используют ее результаты, т.е. только в составе своего подмножества. Следовательно, программа образованная последовательностью триад является контекстно-зависимой.Для сравнения, выполнение любой команды в фон-неймановском или потоковом процессоре не зависит от контекста. Программа данных процессоров — контекстно-свободна. Все команды этих процессоров обладают неделимостью и целостностью. Группа команд реализующая оператор обладает целостностью, но не обладает неделимостью.В общем случае триады оператора могут быть размещены на участке произвольным образом. Их размещение, в отличие от фон-неймановской архитектуры, не определяет порядок исполнения. Очередность их исполнения определяется, как уже отмечалось, информационными связями.

Таким образом, если программа в фон-неймановском процессоре однозначно определяет «что» и «как» надо сделать, то программа, представленная в виде триад однозначно определяет только «что» надо сделать. «Как» надо сделать — решается процессором. И, именно это обстоятельство, дает необходимую степень свободы, которая обеспечивает получение качественно новых и улучшение количественных характеристик процессора.