Project

General

Profile

Реконфигурация » History » Version 14

krufter_multiclet, 07/11/2014 04:47 PM

1 1 krufter_multiclet
h1. Реконфигурация
2 1 krufter_multiclet
3 4 krufter_multiclet
+*Введение*+
4 2 krufter_multiclet
5 2 krufter_multiclet
*Мультиклеточное ядро* — это группа идентичных процессорных блоков(2 и более), объединенных полносвязной однонаправленной коммутационной средой.
6 2 krufter_multiclet
Процессорный блок в мультиклеточной архитектуре называется клеткой. Набор команд, который она может выполнять определяется конкретной реализацией и не зависит от архитектуры.
7 2 krufter_multiclet
8 2 krufter_multiclet
Т.к. код не зависит от количества клеток, которым он будет исполняться, появляется способность мультиклеточного ядра к распределению своих вычислительных ресурсов во время работы, при этом управление происходит программно.
9 2 krufter_multiclet
Способность мультиклеточной архитектуры перераспределять свои ресурсы мы называем — *реконфигурацией*. Например, клетки мультиклеточного ядра могут быть, как угодно распределены для выполнения какого-либо алгоритма или его части. Группа (лучше названия пока не придумали) — это часть клеток мультиклеточного ядра, которые связаны между собой для выполнения какого-либо алгоритма или части алгоритма. В группе может находиться 1 и более клеток. Когда мультиклеточное ядро разделяет группу на части — это называется декомпозиция. Процесс объединения в группу — композиция.
10 8 krufter_multiclet
!rcfg.jpg!
11 9 krufter_multiclet
На рисунке С0 - С3 это клетки.
12 5 krufter_multiclet
Больше теории по архитектуре можно почитать тут http://habrahabr.ru/post/226773/
13 2 krufter_multiclet
14 4 krufter_multiclet
+*Теория*+
15 2 krufter_multiclet
16 3 krufter_multiclet
*Реконфигурация* — способность клеток процессора к композиции (сбор) и декомпозиции (разбор) по группам, т.е. возможность клеток объединяться в группы от одной клетки и до N(для N клеточного процессора) и выполнять свой участок кода. По умолчанию при старте любой программы все клетки находятся в одной группе. Стоит отметить, что у каждой группы появляется свой набор РОНов, индексных, управляющих регистров, можно назначить свой обработчик прерываний.
17 10 krufter_multiclet
18 10 krufter_multiclet
Для совершения операций по реконфигурации клеток используются два системных регистра: NEWADDR, ICR.
19 11 krufter_multiclet
Рассмотрим регистр *NEWADDR*:
20 10 krufter_multiclet
Регистр предназначен для формирования адреса перехода на следующий параграф для группы клеток.
21 10 krufter_multiclet
|номер бита|63...36|35|34|33|32|31...0|
22 10 krufter_multiclet
|описание|резерв|C0|C1|C2|C3|NEWADDR|
23 10 krufter_multiclet
24 10 krufter_multiclet
В битах C0-C3 необходимо отметить клетки группы для которых назначается адрес перехода.
25 10 krufter_multiclet
NEWADDR - адрес параграфа на который будет переход выбранной группы.
26 10 krufter_multiclet
27 11 krufter_multiclet
Рассмотрим регистр *ICR*:
28 1 krufter_multiclet
Регистр предназначен для формирования групп клеток.
29 1 krufter_multiclet
|номер бита|63...36|35|34|33|32|31...4|3|2|1|0|
30 11 krufter_multiclet
|описание|резерв|C0_Г|C1_Г|C2_Г|C3_Г|резерв|C0|C1|C2|C3|
31 11 krufter_multiclet
32 11 krufter_multiclet
В битах C0_Г - C3_Г необходимо отметить клетки формируемой группы.
33 11 krufter_multiclet
В битах С0 - С3 необходимо выставить соответствующим клеткам группы разрешение работы.
34 11 krufter_multiclet
35 11 krufter_multiclet
+Примечание:+ важно заметить, что если будет выставлена "1", например в поле C0_Г, а в поле С0 будет 
36 11 krufter_multiclet
установлено значение "0", то клетка будет полностью отключена до следующей перезагрузки процессора.
37 11 krufter_multiclet
Поэтому в большинстве случаев значение С0_Г - С3_Г совпадает со значение битов C0 - C3
38 11 krufter_multiclet
39 14 krufter_multiclet
+Реконфигурация в принципе состоит из двух при декомпозиции и трёх параграфов при композиции:+
40 13 krufter_multiclet
41 11 krufter_multiclet
1) В первом параграфе необходимо выставить в PSW биты 7,8 для группы клеток с которыми необходимо провести операции
42 11 krufter_multiclet
композиции и декомпозиции.
43 11 krufter_multiclet
- Бит 7 системного регистра PSW позволяет группе клеток заявить о готовности к реконфигурации.
44 11 krufter_multiclet
- Бит 8 системного регистра PSW запрещает выборку следующего параграфа, пока не выполняться команды текущего параграфа.
45 1 krufter_multiclet
46 14 krufter_multiclet
1+) При композиции необходимо сделать для группы которую мы присоединяем ещё один параграф без адреса перехода.
47 14 krufter_multiclet
48 14 krufter_multiclet
2)Во втором параграфе необходимо сформировать группы клеток и назначить адреса перехода для каждой новой группы. 
49 14 krufter_multiclet
50 14 krufter_multiclet
51 14 krufter_multiclet
Т.е. выбрали группу для реконфигурации, сформировали новые группы и задали адреса. Затем новые группы независимо друг от друга пойдут
52 14 krufter_multiclet
по своим параграфам. При это у каждой группы появится своя набор РОНов, управляющих регистров, обработчиков прерываний и т.д.
53 14 krufter_multiclet
Но при этом любая группа клеток может беспрепятственно обращаться к памяти или периферии.
54 14 krufter_multiclet
55 14 krufter_multiclet
+Композиция+
56 14 krufter_multiclet
57 14 krufter_multiclet
Группы клеток могут быть объединены в новую группу. При это те клетки, которые были присоединены к текущей группе из которой и проходил процесс
58 14 krufter_multiclet
композиции приобретут полный набор РОНов, управляющих регистров, обработчиков прерываний и т.д от группы клеток к которой они присоединились.
59 14 krufter_multiclet
60 14 krufter_multiclet
*Особенности реконфигурации*
61 14 krufter_multiclet
62 14 krufter_multiclet
В первых двух ревизиях процессора R1 присутствуют некоторые особенности процесса реконфигурации. 
63 14 krufter_multiclet
64 14 krufter_multiclet
65 14 krufter_multiclet
66 14 krufter_multiclet
67 14 krufter_multiclet
68 14 krufter_multiclet
69 14 krufter_multiclet
70 14 krufter_multiclet