• Nenhum resultado encontrado

METODOLOGIA PROPOSTA PARA A IMPLEMENTAÇÃO DA SEGURANÇA DA NOC

3. Incremento do buffer na porta de saída do roteador: O buffer na porta de saída do roteador permite a comutação de novos pacotes enquanto o pacote, previamente

4.6.2. MAPEAMENTO DOS COMPONENTES DA NoC

O mapeamento dos componentes consiste em estabelecer a ligação entre os diferentes componentes das estruturas de computação e comunicação. O mapeamento é considerado um problema NP-hard [GAR79], onde o espaço de busca cresce de forma fatorial segundo o número de componentes da estrutura de computação.

Trabalhos prévios utilizam heurísticas para definir mapeamentos que otimizem uma única métrica: potência ou latência. Segundo [JEN07], a otimização de uma única métrica pode ser desfavorável, uma vez que a instância da NoC resultante pode ser inapropriada, ou mesmo proibitiva, para outra métrica importante no projeto da rede. Para superar esta limitação, foram propostos algoritmos multi-objetivo. Este tipo de algoritmo encontra um conjunto de alternativas de mapeamento. Algoritmos multi- objetivo genéticos e branch-and-bound são utilizados em [JEN07] e [ASC05] para encontrar o mapeamento que minimiza de forma simultânea a latência e o consumo de potência.

Os algoritmos genéticos mostram ser superiores àqueles do tipo branch-and-bound, porém, a pressão da seleção nos algoritmos genéticos pode reduzir a detecção do número de mínimos locais [DEB99]. Resultados anteriores mostraram a habilidade dos algoritmos baseados nos princípios do sistema imune (AIS do inglês artificial immune systems) na exploração minuciosa do espaço de soluções, superando os algoritmos genéticos tanto em velocidade de convergência como na diversidade de soluções [DEB99], [KIN00].

98 O método 2 proposto em nosso trabalho utiliza MAIA (Multi-objective Adaptive Immune Algorithn), um algoritmo evolutivo, descrito em C++, que utiliza os princípios do sistema imune para realizar o mapeamento dos componentes da estrutura de computação do SoC na rede intrachip. MAIA permite realizar o mapeamento de um conjunto de IPs de um SoC que utiliza uma NoC como estrutura de comunicação. As melhores topologias são testadas no framework APOLLO [SEP06].

O sistema imune (SI) de um organismo é constituído por um conjunto de mecanismos que protegem o organismo contra um número ilimitado de atacantes biológicos (antígenos), como microorganismos, parasitas e vírus [KIN00]. O sistema imune possui duas linhas de defesa: 1) inato, que utiliza substâncias químicas e glóbulos brancos; e 2) adaptativo, que cria um conjunto de anticorpos capazes de reconhecer43 o antígeno que não foi eliminado pelo SI inato. O SI adaptativo utiliza os seguintes mecanismos: reconhecimento de padrões, seleção clonal, supressão clonal, maturação, aprendizagem e memória. Para executar MAIA são necessárias as seguintes informações:

a) Resultado da síntese da computação: Define o conjunto de módulos IP da

estrutura de computação.

b) Instância da NoC-QoSS: Resultado da execução da terceira etapa

(implementação) de nossa metodologia.

c) Funções objetivo: que permitem a otimização das métricas.

d) População: Número de alternativas de mapeamento avaliadas por iteração.

e) Probabilidade de mutação: Utilizada na construção de novas alternativas de

mapeamento.

99

f) Critério de parada: Critério usado para parar a busca de alternativas de

mapeamento.

Durante a execução de MAIA, diferentes soluções de mapeamento são criadas e avaliadas. O algoritmo permite, mediante um conjunto de métricas, comparar várias soluções de mapeamento na NoC. As metáforas utilizadas do sistema imune biológico são apresentadas na Tabela 4.5.

Tabela 4.5. Metáforas utilizadas do sistema imune biológico.

Sistema Imune Mapeamento

Antígeno Característica da aplicação.

Anticorpo Soluções de mapeamento da NoC.

Afinidade Calculo das funções objetivo.

Seleção clonal

Classificação e modificação dos mapeamentos segundo resultados das funções objetivo.

Mutação Operação aleatória dos mapeamentos da NoC.

Aprendizagem e memória Conjunto das melhores soluções de mapeamento.

Supressão clonal Eliminação dos mapeamentos não satisfatórios.

O algoritmo MAIA é apresentado na Figura 4.10. As etapas de MAIA são explicadas a seguir:

O antígeno (Ag) codifica as características da aplicação (quantidade e conexão entre os IPs e o seu volume de comunicação). Já, os anticorpos (Ab) representam as soluções de mapeamento dos componentes da estrutura de computação na rede. No algoritmo MAIA, o conjunto de mapeamentos iniciais (população inicial) é constituído por mapeamentos aleatórios e sugestões do projetista.

O calculo das funções objetivo quantifica o valor das métricas que buscam ser otimizadas. O valor das funções objetivo é utilizado para classificar os mapeamentos. A classificação é baseada no resultado da soma ponderada dos resultados das funções objetivo (EVAi). Ver Equação 4.7. Os pesos da Equação 4.7 (wi) são fornecidos pelo

100 Figura 4.10. Algoritmo MAIA.

EVAi = wi . Objetivo i Equação 4.7

Do conjunto inicial de mapeamentos, os melhores mapeamentos prosseguem para a seleção clonal. O restante entrará no processo de qualificação dos anticorpos (no lado direito do algoritmo). A seleção clonal é constituída pelas seguintes tarefas :

 Clonar: As soluções de mapeamento são copiadas. A solução de mapeamento original é armazenada na Memória enquanto que as cópias são modificadas no bloco Mutar.

101  Memória: Armazena as melhores soluções de mapeamento (também denominadas de conjunto de Pareto). Este conjunto é continuamente avaliado e classificado.

 Classificação: Organiza os mapeamentos segundo o valor das funções objetivo.  Seleção: As melhores soluções são mantidas na memória. As soluções

descartadas são enviadas ao bloco apoptose.  Apoptose: Elimina as soluções de mapeamento.

 Mutar: Modifica as soluções de mapeamento mediante dois operadores: deslocamento e mutação de ponto. O deslocamento permite que os componentes de computação do SoC sejam mudados N posições com respeito aos roteadores da NoC. O deslocamento é aplicado a uma solução de mapeamento. Na Figura 4.11 o mapeamento M1 é deslocado duas posições. O resultado é o mapeamento M2. A mutação de ponto permite a permutação de posição de dois componentes da estrutura de computação na rede. A Figura 4.12 apresenta a permutação dos IPs 2 e 6. O resultado é o mapeamento M2.

A etapa de qualificação dos anticorpos avalia a similaridade das soluções de mapeamento. Este é um ponto essencial na execução de um algoritmo baseado em sistema imune e faz parte da vantagem deste tipo de algoritmo sobre os algoritmos genéticos.

102 Figura 4.12. Mutação de ponto do mapeamento.

A função de qualificação de cada mapeamento (Qi), na Equação 4.8, corresponde à divisão entre o resultado da sua função EVA (Equação 4.7) com a similaridade (SIM), na Equação 4.9.

Equação 4.8

Equação 4.9

Nab é o número de soluções de mapeamento que entraram no bloco de qualificação e dij corresponde à distância euclidiana entre duas soluções. O valor de Qi é utilizado para determinar a probabilidade de uma solução de mapeamento ser escolhida para formar parte da seguinte população de soluções avaliadas na seguinte iteração do algoritmo.

A seguinte etapa no algoritmo é a construção de nova população. Para criar a nova população são utilizados os clones mudados das soluções e as soluções rejeitadas. Nesta etapa são selecionados os mapeamentos que serão modificados, assim como o operador que será aplicado ao mapeamento (deslocamento, mutação de ponto ou cruzamento). O deslocamento e mutação de ponto são apresentados nas Figuras 4.11-4.12.

103 Figura 4.13. Cruzamento entre soluções de mapeamento.

O critério de parada corresponde a um número de iterações estabelecidas pelo projetista. Em MAIA este critério pode ser determinado pelo projetista ou pelo critério usado em [HU03] que para a execução do algoritmo quando não é esperada uma otimização significativa na iteração seguinte.

M2AIA

MAIA também pode ser utilizado em sistemas de múltiplas aplicações. Este tipo de sistemas é a tendência dos atuais sistemas eletrônicos, os quais são capazes de integrar múltiplas aplicações num mesmo dispositivo. Plataformas como os MPSoCs são passiveis de atualização, permitem implementar múltiplas aplicações, reduzindo assim o custo e tempo de desenvolvimento.

M2AIA é uma versão da MAIA que permite o mapeamento dos componentes IP para sistemas de múltiplas aplicações. A Figura 4.14. apresenta o diagrama de blocos de

104 M2AIA. Da mesma forma que MAIA, M2AIA analisa as características das aplicações descritas sob a forma de APCGs. Como resultado, M2AIA gera o pior APCG (P-APCG), onde para cada fluxo de comunicação entre qualquer par de IPs, os requisitos mais estritos entre todas as aplicações do sistema são selecionados. A Figura 4.15 apresenta um exemplo da construção do P-APCG para um sistema com 6 IPs e 2 aplicações.

Figura 4.14. Diagrama de blocos de M2AIA.

O P-APCG é utilizado como a entrada do algoritmo MAIA. Como resultado é obtido um conjunto de soluções de mapeamento dos componentes IP na NoC (conjunto de Pareto) que satisfazem os requisitos de todas as aplicações e que otimizam os índices de potência e latência.

105 Figura 4.15 Geração do pior APCG (P-APCG).