A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil.

Apresentações semelhantes


Apresentação em tema: "Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil."— Transcrição da apresentação:

1 Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil

2 HeMPS Plataform  Visão Geral do Sistema  Camadas Envolvidas na Comunicação  Serviços do Microkernel  Integração Processador à NoC  Gerência Distribuída de Recursos  Framework for MPSoC Generation 2

3 HeMPS Plataform  MPSoC HeMPS ◦ MPSoC Homegêneo baseado em NoC ◦ HERMES NoC ◦ Plasma-IP (Plasma, Interface de Rede, DMA e RAM) 3

4 HeMPS Plataform  HERMES NoC ◦ Topologia 2D mesh ◦ Router  Controle Lógico Centralizado  Até cinco portas bi-direcionais  Buffers de entrada 4 North Local West South East Control Logic F F F F F

5 HeMPS Plataform  Plasma-IP ◦ Separação entre comunicação e computação ◦ NI/DMA: envia e recebe pacotes ◦ PLASMA: executa a tarefa ◦ RAM: true dual port memory 5 arquitetura MIPS código aberto pipeline 3 estágios compilador gcc interrupções

6 HeMPS Plataform  O MPSoC contém três tipos de PEs: ◦ Mestre Global (GMP) ◦ Mestre Global (GMP) :  contém todas as funções do LMP, e as funções relacionadas com a gerência global do sistema  Acesso ao Repositório de Aplicações ◦ Mestres Locais (LMP) ◦ Mestres Locais (LMP) : responsáveis pelo controle dos clusters ◦ Escravos (SP) ◦ Escravos (SP) : responsáveis pela execução das tarefas 6

7 HeMPS Plataform  Memória de cada processador ◦ Organizada em páginas ◦ A primeira página contém o microkernel multitarefa 7

8 HeMPS Plataform  Aplicações modeladas através de grafo de tarefas  Cada aplicação possue seu próprio grafo de tarefas  Tarefas iniciais não possuem dependências 8

9 HeMPS Plataform OVP (NoC and CPU) - untimed simulation + smaller simulation time + higher debuggability + modeling flexibility 9 RTL SystemC NoC + ISS (CPU) + platform clock accurate intermediate simulation time - lower debuggability RTL VHDL implementation + platform clock accurate + area and power references - higher simulation time - lower debuggability

10 HeMPS Plataform Características relevantes do MPSoC HeMPS: ◦ Processamento homogêneo ◦ Utilização de rede intrachip (NoC) ◦ Memória distribuída ◦ Comunicação por troca de mensagens ◦ Organização de memória paginada 10

11 HeMPS Plataform  Visão Geral do Sistema  Camadas Envolvidas na Comunicação  Serviços do Microkernel  Integração Processador à NoC  Gerência Distribuída de Recursos  Framework for MPSoC Generation 11

12 HeMPS Plataform  Aplicação (software) ◦ Composta por tarefas ◦ Comunica-se com o microkernel através de chamadas de sistema (envio e recebimento de mensagens)  Ex: Envio de mensagem para outro processador 12 Aplicação Microkernel NI Processador  NoC Aplicação Microkernel NI Processador  NoC Meio de Interconexão - NoC

13 HeMPS Plataform Microkernel  Microkernel (software) ◦ Gerenciamento das tarefas ◦ Trata interrupções, chamadas de sistema e escalona tarefas  Monta pacotes com mensagens e envia à NI 13 Aplicação NI Processador  NoC Aplicação Microkernel NI Processador  NoC Meio de Interconexão - NoC

14 HeMPS Plataform NI Processador  NoC Microkernel  NI(hardware) ◦ Interface de comunicação entre o processador e a NoC ◦ Recebe o pacote do MicroKernel armazenando-o em um buffer ◦ Envia o pacote através da NoC dividindo-o em flits  NI realiza segmentação/remontagem 14 Aplicação Microkernel NI Processador  NoC Meio de Interconexão - NoC

15 HeMPS Plataform Meio de Interconexão - NoC NI Processador  NoC Microkernel  NoC (hardware) ◦ Realiza a interconexão dos processadores ◦ Encaminha os flits dos pacotes ao processador destino 15 Aplicação Microkernel NI Processador  NoC

16 HeMPS Plataform NI Processador  NoC Meio de Interconexão - NoC NI Processador  NoC Microkernel  Wrapper ◦ Recebe da NoC flits referentes ao pacote ◦ Armazena-os no buffer de recebimento ◦ Interrompe o processador para passar o pacote ao microkernel 16 Aplicação Microkernel

17 HeMPS Plataform Microkernel NI Processador  NoC Meio de Interconexão - NoC NI Processador  NoC Microkernel  Microkernel ◦ Lê o pacote da NI ◦ Identifica a tarefa ◦ Escreve na memória da aplicação 17 Aplicação

18 HeMPS Plataform Aplicação Microkernel NI Processador  NoC Meio de Interconexão - NoC NI Processador  NoC Microkernel  Aplicação ◦ Recebe a mensagem através do pedido de leitura da mensagem 18 Aplicação

19 HeMPS Plataform  Visão Geral do Sistema  Camadas Envolvidas na Comunicação  Serviços do Microkernel  Integração Processador à NoC  Gerência Distribuída de Recursos  Framework for MPSoC Generation 19

20 HeMPS Plataform  Carregamento de códigos-objeto ◦ O microkernel e as tarefas são implementados em linguagem C e Assembly ◦ Cada código objeto é carregado em uma página 20

21 HeMPS Plataform 21 Instrução no  kernel executada após interrupção ou escalonamento: mtc0 offset,$10 Múltiplas tarefas: organizadas em páginas

22 HeMPS Plataform typedef struct{ unsigned int reg[30]; unsigned int pc; unsigned int offset; unsigned int id; unsigned int status; }TCB; 22 Task Control Blocks (TCBs) Informações da tarefa necessárias para seu controle  Registradores da tarefa Argumentos Retorno Temporários Salvos

23 HeMPS Plataform typedef struct{ unsigned int reg[30]; unsigned int pc; unsigned int offset; unsigned int id; unsigned int status; }TCB; 23 Task Control Blocks (TCBs) Informações da tarefa necessárias para seu controle  Program Counter Última instrução executada

24 HeMPS Plataform typedef struct{ unsigned int reg[30]; unsigned int pc; unsigned int offset; unsigned int id; unsigned int status; }TCB; 24 Task Control Blocks (TCBs) Informações da tarefa necessárias para seu controle  Endereço da memória onde inicia a tarefa Indica a página

25 HeMPS Plataform typedef struct{ unsigned int reg[30]; unsigned int pc; unsigned int offset; unsigned int id; unsigned int status; }TCB; 25 Task Control Blocks (TCBs) Informações da tarefa necessárias para seu controle  Identificador da tarefa Numérico Global

26 HeMPS Plataform typedef struct{ unsigned int reg[30]; unsigned int pc; unsigned int offset; unsigned int id; unsigned int status; }TCB; 26 Task Control Blocks (TCBs) Informações da tarefa necessárias para seu controle  Estado da Tarefa ready terminated runningwaiting

27 HeMPS Plataform 27 Escalonamento preemptivo sem prioridades algoritmo Round Robin somente tarefas no estado ready são escalonadas Controlado por interrupção um timer define o momento do escalonamento o tempo por tarefa é denominado timeslice (parametrizável) txtx tyty tztz

28 HeMPS Plataform 28 Tratamento de interrupções –interrupções advindas do contador de timeslice da NoC (chegada de pacotes) do software (chamadas de sistema) –Exemplo: operações de escrita/leitura nos pipes de mensagens –rotina de tratamento: endereço fixo 0x3C para contador de timeslice e chegada de pacotes 0x4C para chamadas de sistema

29 HeMPS Plataform 29 Para fim de timeslice e interrupções da NoC –1º passo: –salvamento dos registradores e pc no TCB da tarefa suspensa –2º passo: –Identificar a interrupção ocorrida e tratá-la »Fim de timeslice: escalonamento »Interrupção da NoC (chegada de pacotes): driver de comunicação –3º passo: –Carregamento do TCB da tarefa escalonada (escalonamento) ou suspensa (chegada de pacotes)

30 HeMPS Plataform 30 Comunicação entre tarefas –ocorre através de pipes Espaço de memória reservada para armazenamento de mensagens –primitivas que geram chamadas de sistema WritePipe(&mensagem, id_destino) ReadPipe(&mensagem, id_fonte)

31 HeMPS Plataform 31 typedef struct { unsigned int remote_addr; /* Remote processor address */ unsigned int pkt_size; /* NoC packet size (flits) */ unsigned int service; /* Service identifier */ unsigned int local_addr; /* Local processor address */ unsigned int target;/* Target task */ unsigned int source;/* Source task */ unsigned int length;/* Message lenght (32 bits words)*/ unsigned int message[MSG_SIZE]; enum PipeSlotStatus status; } PipeSlot; PipeSlotStatus {EMPTY, LOCKED, USED};

32 HeMPS Plataform 32 Comunicação Local –Tarefas da mesma CPU  t3 tenta enviar msg para t2

33 HeMPS Plataform 33 Comunicação Local –Tarefas da mesma CPU  t3 tenta enviar msg para t2  Microkernel  tem espaço no pipe?  Copia msg para o pipe

34 HeMPS Plataform 34 Comunicação Local –Tarefas da mesma CPU  t2 tenta receber a msg de t3

35 HeMPS Plataform 35 Comunicação Local –Tarefas da mesma CPU  t2 tenta receber a msg de t3  Microkernel  t3 é local?

36 HeMPS Plataform 36 Comunicação Local –Tarefas da mesma CPU  t2 tenta receber a msg de t3  Microkernel  t3 é local?  tem msg de t3 para t2?  Copia msg do pipe para página da tarefa

37 HeMPS Plataform 37 Comunicação Remota  t2 tenta enviar msg para t5

38 HeMPS Plataform 38 Comunicação Remota  t2 tenta enviar msg para t5  Microkernel  tem espaço no pipe?  Copia msg para o pipe

39 HeMPS Plataform 39 Comunicação Remota  t5 tenta receber msg de t2  Microkernel  t2 é local?

40 HeMPS Plataform 40 Comunicação Remota  t5 tenta receber msg de t2  Microkernel  t2 é local?  Requisita mensagem

41 HeMPS Plataform 41 Comunicação Remota  t5 tenta receber msg de t2  Microkernel  t2 é local?  Driver requisita mensagem  Driver destino recebe requisição  Tem msg para t5?

42 HeMPS Plataform 42 Comunicação Remota  t5 tenta receber msg de t2  Microkernel  t2 é local?  Driver requisita mensagem  Driver destino recebe requisição  Tem msg para t5?  Envia msg para t5  Driver recebe msg

43 HeMPS Plataform 43 Comunicação Remota  t5 tenta receber msg de t2  Microkernel  t2 é local?  Driver requisita mensagem  Driver destino recebe requisição  Tem msg para t5?  Envia msg para t5  Driver recebe msg  Copia para a página de t5

44 HeMPS Plataform 44 Lista de Serviços MESSAGE_REQUEST 0x00000010 MESSAGE_DELIVERY 0x00000020 TASK_ALLOCATION 0x00000040 TASK_ALLOCATED 0x00000050 TASK_REQUEST 0x00000060 TASK_TERMINATED 0x00000070 TASK_DEALLOCATED 0x00000080 LOAN_PROCESSOR_RELEASE 0x00000090 DEBUG_MESSAGE 0x00000100 LOCATION_REQUEST 0x00000120 NEW_TASK 0x00000130 APP_TERMINATED 0x00000140 NEW_APP 0x00000150 INITIALIZE_CLUSTER 0x00000160 INITIALIZE_SLAVE 0x00000170 TASK_TERMINATED_OTHER_CLUSTER 0x00000180 LOAN_PROCESSOR_REQUEST 0x00000190 LOAN_PROCESSOR_DELIVERY 0x00000200

45 HeMPS Plataform  Visão Geral do Sistema  Camadas Envolvidas na Comunicação  Serviços do Microkernel  Integração Processador à NoC  Gerência Distribuída de Recursos  Framework for MPSoC Generation 45

46 HeMPS Plataform  Envolve: ◦ NI– hardware de interface ◦ Drivers – software de comunicação 46

47 HeMPS Plataform  NI ◦ Interface entre o processador e a NoC  Receber dados do processador e enviar para a NoC  Dividindo os dados em flits  Receber dados da NoC e entregar ao processador 47

48 HeMPS Plataform  NI ◦ Interface com a NoC – envio de dados 48 tx: informa à NoC que tem dados a enviar data_out: dado a ser enviado credit_i: informa se a NoC pode receber dados

49 HeMPS Plataform  NI ◦ Interface com a NoC – recebimento de dados 49 rx: é informado pela NoC que tem dados para receber data_in: dado recebido credit_o: informa à NoC se pode receber dados

50 HeMPS Plataform  NI ◦ Como o processador “conversa” com o wrapper  Instruções de leitura/escrita em memória 50 Enviando dados ao wrapper: la$9, ADDR_WRITE sw$4, 0($9)

51 HeMPS Plataform  NI ◦ Como o processador “conversa” com o wrapper  Instruções de leitura/escrita em memória 51 Lendo dados ao wrapper: la$9, ADDR_READ lw$13, 0($9)

52 HeMPS Plataform  NI ◦ Os dados recebidos da NoC são armazenados em um buffer circular 52 LAST: Escreve no buffer um dado (flit) proveniente da NoC LAST 32 bits

53 HeMPS Plataform  NI ◦ Os dados recebidos da NoC são armazenados em um buffer circular 53 LAST: Escreve no buffer um dado (flit) proveniente da NoC LAST 32 bits

54 HeMPS Plataform  NI ◦ Os dados recebidos da NoC são armazenados em um buffer circular 54 LAST: Escreve no buffer um dado (flit) proveniente da NoC LAST 32 bits

55 HeMPS Plataform  NI ◦ Os dados recebidos da NoC são armazenados em um buffer circular 55 LAST: Escreve no buffer um dado (flit) proveniente da NoC LAST 32 bits

56 HeMPS Plataform  NI ◦ Quando houver um pacote completo ou o buffer estiver cheio a NI interrompe a CPU 56 FIRST: Lê do buffer um dado e o transfere para o processador 32 bits FIRST

57 HeMPS Plataform  NI ◦ Quando houver um pacote completo ou o buffer estiver cheio a NI interrompe a CPU 57 FIRST: Lê do buffer um dado e o transfere para o processador 32 bits FIRST

58 HeMPS Plataform  NI ◦ Quando houver um pacote completo ou o buffer estiver cheio a NI interrompe a CPU 58 FIRST: Lê do buffer um dado e o transfere para o processador 32 bits FIRST

59 HeMPS Plataform  Driver de comunicação ◦ localizado no microkernel ◦ envio e recebimento de pacotes ◦ monta pacotes ◦ Serviços:  Message_Request  Message_Deliver 59

60 HeMPS Plataform  Ni segmenta o pacote em flits  Exemplo: ◦ O código C ReadPipe(&msg,5) da tarefa 1 gera um pacote de requisição de dados:  Processador destino: 0010  Tamanho do pacote: 8  Serviço: Message_Request (00000010)  Processador fonte: 0011  Tarefa destino: 1  Tarefa fonte: 5 ◦ NoC com flit de 16 bits 60

61 HeMPS Plataform  Visão Geral do Sistema  Camadas Envolvidas na Comunicação  Serviços do Microkernel  Integração Processador à NoC  Gerência Distribuída de Recursos  Framework for MPSoC Generation 61

62 HeMPS Plataform  Divide o MPSoC em n clusters com tamanhos iguais, definidos em tempo de projeto. 62

63 HeMPS Plataform  Vantagens do abordagem proposta: ◦ O número de PEs dedicados à função de gerência é limitado ao número de clusters. ◦ A abordagem clusterizada reduz o número de hops entre tarefas pertencentes a uma mesma aplicação ◦ Não é necessário criar/destruir agentes toda a vez que uma nova aplicação entra/deixa o sistema 63

64 HeMPS Plataform 64 GMP INFORMA TODOS OS LMPs QUAL REGIÃO ELE IRA GERENCIAR CADA LMP INFORMA PARA SEUS SPS, QUE ELE IRA SER SEU GERENTE

65 HeMPS Plataform 65 app Requisição de uma nova Aplicação GMP executa a heurística de “Seleção de Cluster” GMP encontra uma Cluster para a Aplicação GMP obtem a Descrição da Aplicação no Repositório de Aplicações GMP programa o módulo de DMA para enviar para o LMP do Cluster escolhido LMP procura um SP para Mapear as Tarefas Inicias da Aplicação LMP encontra um SP disponível LMP envia uma mensagem para o GMP mapear a Tarefa GMP obtém o código objeto da Tarefa no Repositório de Aplicações GMP programa o módulo de DMA para alocar a Tarefa no SP selecionado

66 HeMPS Plataform 66 SP requesita uma Tarefa para o seu LMP LMP executa a heurística de Mapeamento de Tarefas LMP escolhe um PE para mapear a Tarefa LMP requisite a alocação da Tarefa para o GMP O GMP obtém o código- objeto da Tarefa O GMP aloca a Tarefa no PE selecionado O LMP informa para os PES as posições das Tarefas

67 HeMPS Plataform Processo de Reclusterização: Ajuste em tempo de execução do tamanho de um determinado cluster. ◦ aumento do tamanho do cluster, por indisponibilidade de recursos ◦ migrar tarefas que foram mapeadas em clusters vizinhos, com o objetivo de melhorar o desempenho das aplicações 67

68 HeMPS Plataform 68 SP requesita uma Tarefa para o seu LMP LMP executa a heurística de Mapeamento de Tarefas LMP não encontrou recursos disponíveis em seu Cluster LMP envia uma “Requisição de Empréstimo” para seus Clusters vizinhos Os LMPs vizinhos buscam recursos em seus clusters Os LMPs vizinhos respondem a “Requisição de Empréstimo” Os LMPs reservam seus recursos O LMP recebe todas as mensagens e escolhe qual recurso irá usar O LMP libera os recursos que não utilizará O LMP requisite para o GMP a alocação da Tarefa O GMP aloca a Tarefa no SP selecionado

69 HeMPS Plataform 69 redução do número de hops É condicionado não apenas à existência de recursos livres, mas também ao ganho de desempenho pela redução do número de hops entre as tarefas comunicantes Características da Migração de tarefas: migradas a qualquer momento  As tarefas podem ser migradas a qualquer momento contexto, código dados  Migração de tarefa completa, incluindo contexto, código e dados entregues em ordem  Mensagens são entregues em ordem, conforme foram criadas

70 HeMPS Plataform 70

71 HeMPS Plataform 71

72 HeMPS Plataform 72

73 HeMPS Plataform 73

74 HeMPS Plataform  Visão Geral do Sistema  Camadas Envolvidas na Comunicação  Serviços do Microkernel  Integração Processador à NoC  Gerência Distribuída de Recursos  Framework for MPSoC Generation 74

75 HeMPS Plataform 75

76 HeMPS Plataform Phase 1 Scenario Configuration  Application set that will be evaluated  described using message passing (MPI-like)  MPSoC configuration (text file)  memory, management policy, size 76 Scenario Generation Scenario Generator Master Addr Page Size Mem Size MPSoC Size Cluster Size Project Name 1 2 3 4 5 6 Config File APP0 APP1 APPN 7

77 HeMPS Plataform Phase 2 MPSoC Generation  Generation of the platform (hardware)  Compilation of the software  Requires ◦ MPSoC configuration, hardware description (VHDL/SystemC/OVP), Microkernel (OS) code, applications’ files (C code) 77 GENERATION MPSoC Generation MPSoC Description (SystemC files) microKernel files Application Task1.c Task2.c TaskN.c

78 HeMPS Plataform Phase 3 Scenario Simulation  Simulates each scenario (third party simulator)  Performance reports for each processing element  Task mapping, initial and final execution time for each task 78 SP LMP SP GMP SP LMPSP LMPSP Application Repository Network Interface Plasma DMA 7 2 3 6 Page 1 Page 2 Kernel RAM 5 4

79 HeMPS Plataform Phase 4 Scenario Evaluation  A script reads the performance reports for each scenario  Graphical view where each task was mapped, together with the initial and final execution time 79

80 HeMPS Plataform Phase 5 Regression Evaluation  Executes automatically the previous steps for different scenarios  Generates reports, charts and tables of simulated scenarios 80

81 HeMPS Plataform 81


Carregar ppt "Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil."

Apresentações semelhantes


Anúncios Google