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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
The Block I/O Layer Rafael Lopes Bezerra.
Sistemas Operacionais
Capitulo 6: Entrada e Saída
Sistemas Operacionais Gerência de Processador
Arquitetura de Computadores
Sistemas Operacionais
A Interface entre Processadores e Periféricos
Sistemas Cliente/Servidor Introdução
Arquitetura e organização de computadores.
Técnicas para operações E/S
Profa. Priscila Facciolli
MPSoC HeMPS Guilherme Castilhos
Arquitetura de Sistemas Operacionais
Padrão MPI – Message Passing Interface
Sistemas Operacionais
Problemas com Entrada e Saída
Banco de Dados Oracle AESO.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC541 - SISTEMAS OPERACIONAIS I Aula.
Sistemas Operacionais
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Estruturas de Controle
1 COS 773- SISTEMAS OPERACIONAIS Prof: Vitor BLOCK I/O Cristiane Magalhães.
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Mobilidade Cláudia Ribeiro.
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Prof. Felipe Ferreira de Oliveira
Unidade 1-1 Processos e Threads
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais I
Sistemas Operacionais Profª Adriana Vettorazzo
MapReduce Conceitos e Aplicações
Organização e Arquitetura de Computadores
Conteúdo Processos e threads Partes do processo
Sistemas Operacionais
Processos.
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Geração de Código aula-12-geração-de-código.pdf.
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
2.5 Processos no Minix 1. gerenciamento de processos:
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
SISTEMAS OPERACIONAIS I
Pontifical Catholic University of Rio Grande do Sul Porto Alegre, Brazil.
Subsistema de Entrada e Saída do Kernel
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
Infra-Estrutura de Software
Capítulo 4: Processos.
Processador 2014/2015 Comunicação de Dados Ricardo Bento 12ºL.
SISTEMAS OPERACIONAIS
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Estrutura de Interconexão
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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)

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

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

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

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

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

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

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

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

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

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

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?

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

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

HeMPS Plataform 44 Lista de Serviços MESSAGE_REQUEST 0x MESSAGE_DELIVERY 0x TASK_ALLOCATION 0x TASK_ALLOCATED 0x TASK_REQUEST 0x TASK_TERMINATED 0x TASK_DEALLOCATED 0x LOAN_PROCESSOR_RELEASE 0x DEBUG_MESSAGE 0x LOCATION_REQUEST 0x NEW_TASK 0x APP_TERMINATED 0x NEW_APP 0x INITIALIZE_CLUSTER 0x INITIALIZE_SLAVE 0x TASK_TERMINATED_OTHER_CLUSTER 0x LOAN_PROCESSOR_REQUEST 0x LOAN_PROCESSOR_DELIVERY 0x

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

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

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

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

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

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)

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)

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

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

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

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

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

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

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

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

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 ( )  Processador fonte: 0011  Tarefa destino: 1  Tarefa fonte: 5 ◦ NoC com flit de 16 bits 60

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

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

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

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

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

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

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

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

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

HeMPS Plataform 70

HeMPS Plataform 71

HeMPS Plataform 72

HeMPS Plataform 73

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

HeMPS Plataform 75

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 Config File APP0 APP1 APPN 7

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

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 Page 1 Page 2 Kernel RAM 5 4

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

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

HeMPS Plataform 81