1 / 74

H emps P latform

Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil. H emps P latform. guilherme.castilhos@acad.pucrs.br fernando.moraes@pucrs.br. Guilherme M. Castilhos Fernando G.Moraes. Outline. Visão Geral do Sistema Camadas Envolvidas na Comunicação Serviços do Microkernel

Télécharger la présentation

H emps P latform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil HempsPlatform guilherme.castilhos@acad.pucrs.br fernando.moraes@pucrs.br Guilherme M. Castilhos Fernando G.Moraes

  2. Outline 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

  3. VisãoGeral do Sistema • MPSoC HeMPS • MPSoC Homegêneo baseado em NoC • HERMES NoC • Plasma-IP (Plasma, Interface de Rede, DMA e RAM)

  4. North ControlLogic West East Local South F F F F F VisãoGeral do Sistema • HERMES NoC • Topologia 2D mesh • Router • Controle Lógico Centralizado • Até cinco portas bi-direcionais • Buffers de entrada

  5. VisãoGeral do Sistema (controlecentralizado) • arquitetura MIPS • código aberto • pipeline 3 estágios • compilador gcc • interrupções • 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

  6. VisãoGeral do Sistema (controledistribuído) • O MPSoC contém três tipos de PEs: • 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) : responsáveis pelo controle dos clusters • Escravos (SP) : responsáveis pela execução das tarefas

  7. VisãoGeral do Sistema • Memória de cada processador • Organizada em páginas • A primeira página contém o microkernel multitarefa

  8. VisãoGeral do Sistema 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

  9. Níveis de Abstração 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 OVP (NoC and CPU) - untimed simulation + smaller simulation time + higher debuggability + modeling flexibility

  10. MPSoC HeMPS 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

  11. Outline 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

  12. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • 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

  13. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • Microkernel (software) • Gerenciamento das tarefas • Trata interrupções, chamadas de sistema e escalona tarefas • Monta pacotes com mensagens e envia à NI

  14. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • 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

  15. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • NoC (hardware) • Realiza a interconexão dos processadores • Encaminha os flits dos pacotes ao processador destino

  16. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • Wrapper • Recebe da NoC flits referentes ao pacote • Armazena-os no buffer de recebimento • Interrompe o processador para passar o pacote ao microkernel

  17. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • Microkernel • Lê o pacote da NI • Identifica a tarefa • Escreve na memória da aplicação

  18. Camadas envolvidas na comunicação Aplicação Aplicação Microkernel Microkernel NI Processador  NoC NI Processador  NoC Meio de Interconexão - NoC • Aplicação • Recebe a mensagem através do pedido de leitura da mensagem

  19. Outline 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

  20. Serviços do Microkernel • 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

  21. Serviços do Microkernel • Múltiplas tarefas: organizadas em páginas Instrução no mkernel executada após interrupção ou escalonamento: mtc0 offset,$10

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

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

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

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

  26. Serviços do Microkernel • Task Control Blocks (TCBs) • Informações da tarefa necessárias para seu controle typedef struct{ unsigned int reg[30]; unsigned int pc; unsigned int offset; unsigned int id; unsigned int status; }TCB; • Estado da Tarefa ready running waiting terminated

  27. tx ty tz Serviços do Microkernel • 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)

  28. Serviços do Microkernel • 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. Serviços do Microkernel • 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. Serviços do Microkernel • Comunicação entre tarefas • ocorre através de pipes • Espaço de memória reservada para armazenamento de mensagens • primitivas que geramchamadas de sistema • WritePipe(&mensagem, id_destino) • ReadPipe(&mensagem, id_fonte)

  31. Serviços do Microkernel typedefstruct { unsigned intremote_addr; /* Remote processor address */ unsigned intpkt_size; /* NoC packet size (flits) */ unsigned int service; /* Service identifier */ unsigned intlocal_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]; enumPipeSlotStatus status; } PipeSlot; PipeSlotStatus {EMPTY, LOCKED, USED};

  32. Serviços do Microkernel • Comunicação Local • Tarefas da mesma CPU • t3 tenta enviar msg para t2

  33. Serviços do Microkernel • 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. Serviços do Microkernel • Comunicação Local • Tarefas da mesma CPU • t2 tenta receber a msg de t3

  35. Serviços do Microkernel • Comunicação Local • Tarefas da mesma CPU • t2 tenta receber a msg de t3 • Microkernel • t3 é local?

  36. Serviços do Microkernel • 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. Serviços do Microkernel • Comunicação Remota • t2 tenta enviar msg para t5

  38. Serviços do Microkernel • Comunicação Remota • t2 tenta enviar msg para t5 • Microkernel • tem espaço no pipe? • Copia msg para o pipe

  39. Serviços do Microkernel • Comunicação Remota • t5 tenta receber msg de t2 • Microkernel • t2 é local?

  40. Serviços do Microkernel • Comunicação Remota • t5 tenta receber msg de t2 • Microkernel • t2 é local? • Requisita mensagem

  41. Serviços do Microkernel • 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. Serviços do Microkernel • 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. Serviços do Microkernel • 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. Serviços do Microkernel • 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. Outline 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

  46. Integração do Processador à NoC • Envolve: • NI– hardware de interface • Drivers – software de comunicação

  47. Integração do Processor à NoC • NI • Interface entre o processador e a NoC • Receber dados do processador e enviar para a NoC • Dividindoos dados em flits • Receber dados da NoC e entregaraoprocessador

  48. Integração do Processor à NoC tx: informa à NoC que tem dados a enviar data_out: dado a ser enviado credit_i: informa se a NoC pode receber dados • NI • Interface com a NoC – envio de dados

  49. Integração do Processor à NoC rx: é informado pela NoC que tem dados para receber data_in: dado recebido credit_o: informa à NoC se pode receber dados • NI • Interface com a NoC – recebimento de dados

  50. Integração do Processor à NoC Enviando dados ao wrapper: la $9, ADDR_WRITE sw $4, 0($9) • NI • Como o processador“conversa” com o wrapper • Instruções de leitura/escritaemmemória

More Related