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
Download

noc - Unicamp