h emps p latform n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
H emps P latform PowerPoint Presentation
Download Presentation
H emps P latform

Loading in 2 Seconds...

play fullscreen
1 / 74

H emps P latform - PowerPoint PPT Presentation


  • 83 Views
  • Updated on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - 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