Tópicos em System-Level Design Interconexão em SoCs Sandro Rigo [email protected] 2o Semestre de 2006 MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 1 Desafios de Projeto • Tradicionalmente, computação era mais cara que comunicação • Com o avanço da tecnologia esse fato vem mudando – Mais de 100 M transistores: ULSI , DPM (deep submicron designs) – Computação está barata – Comunicação enfrenta várias barreiras físicas: tempo de propagação, consumo de energia em fios longos • Comunicação on-chip é mais barata que off-chip – Atualmente há espaço para muitos fios nos chips MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 2 Desafios de Projeto • Comunicação on-chip é mais cara em termos de velocidade e energia • Ponto onde os atrasos em fios passam a dominar os atrasos nos gates: – CMOS: 0.25 µm (alumínio) e 0.18 µm (cobre) • O tempo de processamento local dimuniu, mas o tamanho dos fios não – Em DSM o efeito da interconexão passa a dominar o desempenho MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 3 Desafios de Projeto LSI VLSI ULSI MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 4 Desafios de Projeto • O aumento no número de blocos e na velocidade torna difícil a sincronização – Sincronismo global, através de um único clock, enfrenta problemas com clock skew • Surge os sistemas GALS (Global Asynchronous Locally Synchronous) – Ilhas síncronas que se comunicam assíncronamente – Reduz o problema para sincronização de partes menores – Facilita reuso e integração de sistemas com IPs heterogêneos – SoCs se tornam sistemas distribuídos MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 5 Desafios de Projeto • Controle Global do tráfego é improvável – O sistema teria que monitorar o estado de cada componente – Cada componente iniciará sua transferência • MPSoCs complexos exigem um padrão de interface (socket) para comunicação/conexão – Facilitar o reuso de IPs de fabricantes diferentes – Facilitar a criação de ferramentas ESL – Única maneira de fazer um uso inteligente da enorme quantidade de recursos disponíveis no chip dada a escalada da tecnologia MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 6 Exemplos de Interconexões MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 7 Point-to-point • São ótimos em: – Bandwidth – Potência – Latência – Simples de projetar e verificar • Contras: – O número de links necessários aumenta exponencialmente com o número de cores – Gera problemas de área e roteamento • Nos anos 90, nos primeiros SoCs, era comum um mix de bus+point-to-point MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 8 Bus x Network MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 9 Esforço de Projeto • Sistemas com poucos cores podem ter uma estrutura de comunicação ad-hoc • Para escalabilidade e flexibilidade é necessário uma estrutura global compartilhada • Isto se traduz em uma rede, constituída de links e nós roteadores MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 10 Tecnologia • DSM: fios longos devem ser segmentados para evitar degradação • Barramentos são multiplexados – Desempenho – Tempo de resposta Difícil de analisar, customizar e verificar! MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 11 Network-on-chip • Estrutura de comunicação segmentada • É vista como uma unificação de conceitos • Naturalmente escalável • Permite operações em paralelo • Aproveita o tradicional modelo em camadas de redes MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 12 Network-on-chip • Duas visões: 1. NoC é um subconjunto de SoC – NoC é definida como a infraestrutura de transmissão de dados, isto é, a rede e os métodos usados para acesso à rede. 2. NoC é uma extensão de SoC – NoC se torna algo mais abrangente – Engloba questões da aplicação, arquitetura do sistema e seu impacto na comunicação etc. MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 13 Exemplo Interface IP/NoC Canais Lógicos/Físicos MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 14 Influência da Arquitetura do Sistema • Propriedades da arquitetura influenciam na rede de comunicação • Dois importantes pontos: – Homogenidade – Granularidade • Um ponto onde NoC diferem de redes gerais: – Redes para computadores paralelos tradicionais são mais homogêneas MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 15 Influência da Arquitetura do Sistema NoC Geral MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 16 Influência da Arquitetura do Sistema • Clustering: – Localidade de partes do sistema – Pode ser física ou lógica – Clusterização lógica pode ser uma importante ferramenta de programação – Clusterização física necessita de conhecimento prévio sobre o padrão de comunicação – Pode minimizar a comunicação global, conseqüentemente minimizando o custo de comunicação – Também tem impacto no desempenho e consumo de energia MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 17 Influência da Arquitetura do Sistema • Reconfigurabilidade: – Habilidade de alocar recursos para fins específicos – NoCs: como o sistema pode ser reconfigurável do ponto de vista da aplicação – Reconfiguração se dá em roteadores e fios – Semelhante ao caso da FPGA mas em uma granularidade muito mais alta • O conceito de NoC abriu um espaço de soluções centradas na comunicação MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 18 Influência da Arquitetura do Sistema Processador: •ALUs, memórias, FPGA, etc •Clustering, hierarquia •Pleiades[Zhang 2000] Multicore MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 19 Abstração em Camadas MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 20 Nomenclatura • Sistema – Aplicações e arquitetura (cores+rede) – Detalhes de implementação escondidos • Network Adapter (NA) – Separa a rede dos cores – Encapsula mensagens ou transações – Cria os pacotes – Primeiro nível que leva detalhes da rede • Network – Topologia, protocolo – Roteadores, links MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 21 Nomenclatura • Link – Flits (flow control units): unidades atômicas das quais são feitas os pacotes – Phits (physical units): mínimo tamanho de dado que pode passar pelo link físico – É comum os dois serem equivalentes • Essa é uma nomenclatura bem aceita, porém não existe padrão oficial • A relação com redes OSI é conceitual MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 22 NoCs x Redes OSI NoC OSI • Composição do sistema é conhecida previamente • Conhecimento dos níveis mais baixos pode levar a ganhos de desempenho • Níveis são muito mais próximos: determinismo • São feitas para permitir a comunicação entre sistemas desenvolvidos independentemente • Um nível não tem conhecimento do nível abaixo: abstração MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 23 NoCs x Redes OSI NoC OSI • Restrições: consumo de energia, tempo de projeto • Somente a interface com os cores requer padronização • Pode ser customizada para uma aplicação ou nicho de aplicações • Fortemente padronizada • Enfatizam comunicação de propósito geral • Não levam em conta a aplicação final MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 24 Especialização Reconfigurabilidade Fluxo de Projeto MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 25 Network Adapter MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 26 Network Adapter (NA) • Duas interfaces: – Core interface (CI) – Network interface (NI) • Fornece ao core serviços de alto nível para comunicação usando os serviços primitivos providos pela rede • Desacopla o core da rede – Quanto mais desacoplado mais facilita reuso – Facilita o projeto em camadas MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 27 Network Adapter (NA) • Por outro lado, um menor desacoplamento do core tende a fazer melhor uso dos recursos da rede – Trade off!! • SOCKETS – Interface, conectores – O CI do NA pode aderir a um padrão de socket – Ortogonaliza comunicação e computação – Deveriam ser independentes da rede – Cores aderem ao padrão de socket – OCP MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 28 Network Adapter (NA) • Serviços: – Encapsulamento: controla o fluxo na rede, criação de pacotes, endereçamento global, gerenciamento de buffer – Gerenciamento: configuração de redes circuit-switched, monitorar conexões, casamento de requisições e respostas, negociação de serviços requisitados pelo core (banda, latência) • Implementação – Sincronização – Wrappers assíncronos para sistema tipo GALS – Pacotes são criados sincronamente e transmitidos assincronamente – Inclusão de interface padrão pode trazer overhead MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 29 Camada de Rede • Tem o papel de transportar as mensagens • Deve parecer um “fio lógico” aos clientes • Basicamente definida por: – Topologia: layout e conectividade dos nós e links – Protocolo: dita como os nós e links são usados MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 30 Topologia Escalam previsivelmente com respeito a área e consumo de energia com o aumento do tamanho MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 31 Topologia • Formas regulares: – Maioria das NoC implementa formas regulares – São facilmente colocadas na superfície do chip (2D) – Tipo grid: k-ary n-cube • k: grau de cada dimensão • n: número de dimensões • Exemplo: – 4-ary 2-cube mesh – 4-ary 2-cube torus – 2-ary (binária) tree – Meshs tendem a usar melhor os links, árvores exploram localidade MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 32 Topologia Escalam não linearmente com respeito a área e consumo de energia com o aumento do tamanho MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 33 Topologia • Formas irregulares – Normalmente utilizam clustering – Uma pequena rede privada (bus) para comunicação local ligada a um sistema global tipo k-ary 2-cube é uma solução comum • Pode haver classificações alternativas: – Culler[1998]: combina protocolo e geometria para criar uma nova classificação MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 34 Protocolo • Estratégia de movimentação dos dados através da NoC • Switching: – Transporte dos dados • Routing: – “Inteligência” por trás desse processo – Determina o caminho a ser seguido MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 35 Protocolo • Circuit switching: – Envolve todo o circuito entre fonte e destino – Esse circuito é definido e reservado até o final do transporte dos dados • Packet switching: – Feito de maneira “per-hop” – Hop é uma ação básica de comunicação, nó/switch ou switch/switch – Cada pacote contém informação de roteamento além dos dados MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 36 Protocolo • Orientado à conexão: – Envolve todo um caminho (lógico) dedicado estabelecido previamente – Essa conexão termina ao final da transmissão • Sem conexão: – Não tem acordo prévio entre sender e receiver – Ocorre dinamincamente • Circuit-switched devem ser sempre orientadas à conexão MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 37 Protocolo • Roteamento determinístico: – Determinado pela fonte e destino – Source routing: a fonte especifica a rota – X-Y: o pacote atravessa as linhas primeiro, depois as colunas até o destino • Roteamento Adaptativo: – Determinado dinamicamente – Envolve mecanismos de arbitragem – Pode levar em conta congestionamento – Leva a uma implementação mais complexa, que pode ser mais eficiente MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 38 Protocolo • Roteamento mínimo ou não-mínimo: – Sempre determina o caminho mínimo ou não • Atraso vs Perda: – No modelo com atraso, dados nunca são perdidos – No modelo com perdas, dados podem ser descartados – Descarte de pacotes pode ajudar a resolver congestionamento – Introduz um overhead para controle de status da transmissão MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 39 Protocolo • O protocolo define o uso dos recursos disponíveis • Os fatores listados anteriormente influenciam na implementação dos roteadores MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 40 Roteador Genérico Link controllers buffers Conecta input e output buffers Algoritmo que controla conexões MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 41 Estratégias de Roteamento • Store-and-forward: – Protocolo do tipo packet-switched – Um nó armazena todo o pacote e depois o transmite baseado em seu cabeçalho – O pacote pode encalhar caso o nó roteador seguinte não tenha espaço suficiente em seu buffer de entrada MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 42 Estratégias de Roteamento • Wormhole: – Combina packet switching com características de circuit switching – Um nó olha o cabeçalho do pacote e o retransmite imediatamente – Os flits subseqüentes são transmitidos assim que chegam – O pacote preenche seu caminho através da rede (worm) – Possivelmente ocupa vários nós simultaneamente – Se o pacote encalha, pára todos os links que ele ocupa MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 43 Estratégias de Roteamento • Virtual cut-through: – Similar ao wormhole – Porém, antes de transmitir o primeiro flit do pacote, um nó espera que o nó seguinte possa receber o pacote todo – Se o pacote encalha, ele não pára nenhum link MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 44 Estratégias de Roteamento • Redes gerais normalmente usam storeand-forward • NoCs normalmente usam wormhole • Vantagens: diminuir a latência e evitar buffers grandes que custam em termos de área MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 45 Links • Sincronização: – GALS torna possível implementar links com técnicas de circuitos assíncronos – Vantagem: Não consome energia quando links estão inativos – Ajuda a conter o crescimento do consumo conforme o tamanho do chip cresce – Desvantagem: Inclui algum overhead dinâmico em termos de área e energia dado ao controle de handshake MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 46 Links • Implementação: – DSM: o efeito dos fios em atrasos e consumo de energia aumenta – Segmentação dos fios. Os desafios são interconexões: • Rápidas, confiáveis e de “longo” alcance • Colocar repetidores em intervalos regulares – Pipeline: alternativa a segmentação • Quebra longas interconexões em estágios • Handshake tende a ficar mais curto • Maiores latência e área, estágios de pipelines são mais complexos que repetidores MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 47 Modelagem de NoCs • Possui vastos espaços de projeto e de implementação a serem explorados • Modelagem e simulação são importantes para projeto, integração e verificação • Objetivos: – Explorar o espaço de projeto – Avaliar trade-offs entre área, consumo de energia, tempo de projeto, etc – Respeitando as restrições da aplicação e da tecnologia MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 48 Modelagem de NoCs • 3 principais aspectos: – Ambiente (framework) – Níveis de abstração – Análise dos resultados • Em nível de sistema – Tipicamente usa-se modelos TLM para modelagem de comunicação – send()/receive() síncronos ou assíncronos – Endereçamento pode ser necessário para identificar unicamente o caminho de transmissão, para prover os serviços de NoC MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 49 Modelagem de NoCs MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 50 Caracterização do Tráfego • Latência crítica: – Restrições severas de latência; • Data Streams: – Demandam QoS em termos de banda – Normalmente altas taxas fixas – MPEG, DMA • Miscelânea: – Sem requisitos específicos – Não exigem nenhum comprometimento da rede MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 51 Projeto e Exploração • Parametrização do sistema: – Facilidade com que características da NoC podem ser mudadas em cada instanciação – Número de slots no switch – Número de portas – Número de estágios de pipeline nos links • Granularidade: – Nível em que a NoC e seus componentes estão descritos – A NoC toda é um core ou deve ser montada a partir de blocos em baixo nível MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 52 Espaço de Exploração MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 53 Referências • A Survey of Research and Practises of Network-on-chip. T. Bjerregaard and S. Mahadevan. ACM Computing Surveys, Vol. 38, March 2006. • NoCs: Vision, reality, trends. Luca Benini. NoC Wokshop. DATE 2004. • Network on Chips: A new SoC paradigm. Luca Benini and Giovanni de Micheli. IEEE Computer 2002 MO801: Tópicos em Arquitetura e Hardware http://www.ic.unicamp.br/~sandro 54