1. Eğitimci Aydınlar
1.2. Ibıray (Ġbrahim) Altınsarin (1841-1889)
4.4.1 Aplicação
O modelo de aplicação proposto é composto por um conjunto de tarefas que executam em elementos de processamento da arquitetura. Cada tarefa possui parâmetros individuais apresentados a seguir, além de seu código e dados que implementam sua funcionalidade. Uma tarefa é definida por uma n-upla τi =< idi, uidi, pi, ei, di, lci, pwri, cdi, dti, ctxi > sendo idi sua identificação local,
uidi sua identificação única, pi seu período; ei o tempo de execução ou capacidade no período; di
seu deadline; lci o volume de dados gerado pelo envio de mensagens; pwri o consumo de energia
médio; cdi o tamanho do segmento de código, dti o tamanho do segmento de dados e ctxi o seu
Os parâmetros pi, ei e di são regidos por uma política de escalonamento de tempo real e
descritos em uma unidade de tempo abstrata, denominada tick1. Algumas dessas políticas estão
descritas em [40, 36, 39, 24, 3, 79]. Os parâmetros pwri, cdi e dti são dependentes de tecnologia,
compilador utilizado e algoritmo, e precisam ser posteriormente caracterizados. Cada tarefa τi é
preemptiva e gera jobs a cada pi ticks, sendo que estes jobs possuem um tempo de execução ei
que precisa ser completado antes do próximo período para que não ocorram perdas de deadline. O
overhead em virtude de trocas de contexto e algoritmo de escalonamento são incluídos no tempo
de execução da tarefa, afetando seu progresso de execução de maneira proporcional.
Cada tarefa, a qual executa de acordo com o modelo de tarefas, é atribuída a um único nodo, e cada nodo pode executar uma ou mais tarefas que compartilham tempo de processador de acordo com os parâmetros citados anteriormente. O conjunto de tarefas a ser executado nos nodos que compõem a arquitetura implementam a aplicação multiprocessada. Diversas aplicações podem executar em uma mesma arquitetura, compartilhando recursos. Como cada nodo possui um escalonador de tarefas local, são utilizadas duas identificações para uma mesma tarefa sendo idi sua
identificação local, que indica um índice em uma lista de tarefas e apenas é relevante no contexto do nodo em que determinada tarefa executa e uidi sua identificação única ou global.
Tarefas podem não ter especificados seus parâmetros pi, ei e di, e neste caso são definidas
como tarefas de melhor esforço. Este tipo de tarefa executa aperiodicamente, e somente quando houver tempo de processamento livre, ou seja, o tempo de processamento é inicialmente reservado às tarefas de tempo real. Tarefas de melhor esforço compartilham o tempo livre entre si, e são escalonadas com um algoritmo rotativo [74, 19], onde cada uma executa por um tick. Em virtude da reserva para as tarefas de tempo real, tarefas de melhor esforço podem ter postergada sua execução indefinidamente.
O acesso a recursos compartilhados (regiões críticas) são mutualmente exclusivos por natureza. Dessa forma, o acesso precisa ser serializado. Primitivas de sincronização como semáforos e mutexes devem ser utilizados para esse fim. Apesar das tarefas serem preemptivas no presente modelo, em virtude do compartilhamento de recursos tarefas podem ser bloqueadas por outras de menor prioridade (problema da inversão de prioridade). Este é um problema que deve ser resolvido em nível de aplicação ou com a utilização de mecanismos que fogem ao escopo do presente trabalho.
Definição. O modelo de tarefas proposto assume que: (i) as tarefas podem ser periódicas
(tarefas de tempo real) ou de melhor esforço; (ii) o deadline relativo de uma tarefa de tempo real é igual ao seu período; (iii) as tarefas que compõem diferentes aplicações são independentes, ou seja, não possuem precedência; (iv) tarefas podem ser inicialmente mapeadas em um determinado elemento de processamento e posteriormente realocadas; (v) tarefas podem entrar e sair do sistema a qualquer momento.
1Tick é considerada a unidade mínima de escalonamento. Todos os parâmetros de tempo real são representados
A comunicação entre tarefas é representada pela tupla cij =< τj, ωij >, onde τj é a tarefa
alvo e ωij o volume de dados gerado especificamente para a tarefa alvo. Como a soma dos dados
transmitidos por uma tarefa é composto por uma ou múltiplas comunicações (sendo esta uma lista de comunicações), o total de dados enviado pela tarefa geradora do tráfego é representado por lci,
assumindo n como sendo o número de comunicações:
lci =
Pn u=1ωij
O processo de realocação de tarefas a diferentes nodos em tempo de execução é referen- ciado como migração no contexto deste trabalho. Tarefas podem ser migradas de um nodo a outro desde que tenham sido configuradas como não fixas. Este tipo de informação é armazenada no contexto da tarefa.
4.4.2 Arquitetura
A arquitetura proposta é composta por elementos de processamento conectados através de filas a uma rede-intra-chip (NoC) com estrutura regular em uma malha de duas dimensões, roteamento determinístico XY e chaveamento de pacotes utilizando o método wormhole. Com o intuito de facilitar a validação e prototipação, além dos motivos anteriormente citados, será utilizada uma arquitetura homogênea composta por processadores simples2. O modelo, no entanto, é genérico
o suficiente para incorporar parâmetros necessários para a representação de plataformas MPSoC heterogêneas. A modelagem de ambientes MPSoC heterogêneos, no entanto, foge ao escopo do presente trabalho.
As características de um nodo da arquitetura são representadas pela n-upla µm =<
ctm, fm, lm, ntm, spm, om, msm, iqm, oqm, vm > sendo ctm o tipo de processador; fm a frequência
de operação em MHz; lm a carga de processador resultante dos parâmetros das tarefas que exe-
cutam no mesmo; ntm o número de tarefas presentes; spm a política de escalonamento utilizada
pelo sistema operacional; om o overhead (entre 0 e 1) do sistema operacional; msm o tamanho da
memória de programa e dados (em bytes); iqm o tamanho da fila de entrada da interface de rede,
oqm o tamanho da fila de saída da interface de rede (ambas as filas tem seu tamanho especificado
em flits) e vm o volume de dados enviado, onde vm = vm1...vml é a soma de todos os volumes entre
nodos m e n originados em m.
Para cada canal de comunicação3 originado no nodo, seus parâmetros são representados
pela tripla vmn =< µn, dvmn, hmn >, sendo µn o processador alvo, dvmn volume de dados transmitido
e hmno número de saltos entre os nodos utilizando o roteamento XY. O volume de dados transmitido
pelo nodo em um determinado canal de comunicação é constituido pela soma de lci de todas as
tarefas de m que transmitem dados para um mesmo nodo n destino:
2Processadores que implementam um conjunto de instruções regular, não possuem cache nem mecanismos de
gerência de memória em hardware como uma unidade MMU.
3Entende-se por canal de comunicação um caminho virtual estabelecido entre dois nodos, de forma que entre eles
dvmn=Pru=1lci
onde r é o último elemento de uma lista composta por tarefas de m que enviam dados para tarefas de n. Parâmetros como o nodo alvo e o número de saltos são caracterizados após a etapa de mapeamento. O volume total de dados em um enlace entre roteadores da rede é composto pela soma de todos os volumes de dados vmn que percorrem o enlace por estarem no caminho de
comunicação, e este total é representado por tvkl. Assim, a largura de banda bwkl necessária em
um enlace deve ser tal que tvkl ≤ bwkl.
O mapeamento dos elementos de processamento a tiles4 é feito de maneira estática no
contexto deste trabalho, uma vez que os elementos de processamento são idênticos e o efeito do mapeamento e agrupamento de tarefas é realizado em nível de aplicação.