Escolar Documentos
Profissional Documentos
Cultura Documentos
INSTITUTO DE INFORMTICA
PROGRAMA DE PS-GRADUAO EM MICROELETRNICA
Trabalho Individual I
TI 01
SUMRIO
1.1
1.2
1.3
1.4
Endereamento ............................................................................................. 14
1.5
1.6
1.7
1.8
REFERNCIAS ...................................................................................................... 48
ASIC
CAM
Content-adressable Memory
CRC
CFI
CPU
DEC
DUT
FCS
FDDI
FIFO
FPGA
FSM
Gbps
HDL
IBM
IEEE
LAN
LLC
LUT
Lookup Table
MAC
MAN
Mbps
MTU
OSI
OUI
PDU
PHY
Physical Interface
RTL
SDU
SRAM
STA
STP
UFRGS
VCD
VLAN
WRR
ZBT
LISTA DE FIGURAS
Figura 1.1 Modelo de referncia OSI e sua relao com o padro IEEE 802.3. ............ 13
Figura 1.2. Encapsulamento dos dados atravs das camadas. ....................................... 14
Figura 1.3. Formato do endereo MAC Ethernet. .......................................................... 15
Figura 1.4. Formato do quadro Ethernet MAC. ............................................................. 16
Figura 1.5. Formato do quadro Ethernet MAC com etiqueta VLAN. ............................ 16
Figura 2.1. Diagrama da plataforma NetFPGA . ............................................................ 22
Figura 2.2. Diagrama da parte operativa do comutador Gigabit Ethernet. ..................... 23
Figura 2.3. Diagrama de tempos da comunicao entre os blocos da parte operativa. .. 23
Figura 3.1. Diagrama de blocos da arquitetura 1. ........................................................... 27
Figura 3.2. Diagrama de estados da FSM do bloco analisador de cabealho................. 28
Figura 3.3. Diagrama de estados da FSM do bloco de encaminhamento e aprendizagem.
........................................................................................................................................ 29
Figura 3.4. Organizao da memria SRAM. ................................................................ 30
Figura 3.5. Organizao do segmento da tabela VLAN na memria SRAM. ............... 31
Figura 3.6. Diagrama de estados da FSM do bloco de envelhecimento. ........................ 32
Figura 3.7. Diagrama de tempos de uma operao de escrita no rbitro SRAM. .......... 33
Figura 3.8. Diagrama de tempos de uma operao de leitura no rbitro SRAM............ 33
Figura 3.9. Diagrama de estados da primeira FSM do rbitro SRAM. .......................... 34
Figura 3.10. Diagrama de estados da segunda FSM do rbitro SRAM.......................... 35
Figura 3.11. Diagrama de estados da FSM do motor de classificao. .......................... 36
Figura 3.12. Diagrama de blocos da arquitetura 2. ......................................................... 37
Figura 3.13. Estrutura de pipeline do rbitro SRAM. .................................................... 38
Figura 3.14. Diagrama de tempos de uma operao de escrita na SRAM. .................... 39
Figura 3.15. Diagrama de tempos de uma operao de leitura na SRAM. .................... 39
Figura 4.1. Arquitetura do testbench descrito em System Verilog................................. 41
Figura 5.1. Placa de desenvolvimento do NetFPGA. ..................................................... 42
Figura 5.2. Diagrama do fluxo de sntese em FPGA. ..................................................... 43
Figura 5.3. Diagrama do fluxo de sntese em ASIC. ...................................................... 44
LISTA DE TABELAS
RESUMO
ABSTRACT
This work presents the design and verification of the main block of a Gigabit
Ethernet switch for an ASIC implementation. The functions of this block are defined in
the IEEE 802.1D standard. The main function of the MAC address classification engine
is to forward Ethernet frames to their corresponding output ports. To accomplish this
task it stores the source MAC address from frames in a SRAM memory and associates it
to one of the input ports. This classification engine uses a hashing scheme that has been
proven to be effective in terms of performance and implementation cost. It can search
effectively 62.5 million frames per second, which is enough to work at wire-speed rate
in a 42-port Gigabit switch. The main challenge was to achieve wire-speed rate during
the learning process using external SRAM memory. This block was designed using
Verilog HDL, targeting the NetFPGA prototype board and an ASIC based on a 180 nm
process from the pure-play foundry TSMC with the Semi-custom methodology based
on standard cells using the CAD tools from Cadence. For the verification stage is used
the System Verilog language. A constrained-random stimulus approach is used in a
layered-testbench environment with self-checking capability using Modelsim simulation
software from Mentor Graphics.
11
1 A TECNOLOGIA ETHERNET
12
13
APLICAO
APRESENTAO
SESSO
TRANSPORTE
REDE
ENLACE DE
DADOS
FSICA
LCC
MAC
802.3 ETHERNET
CANAL
Figura 1.1 Modelo de referncia OSI e sua relao com o padro IEEE 802.3.
Os comutadores so dispositivos da rede que permitem a interligao dos elementos
da rede e estes trabalham basicamente nas duas primeiras camadas apresentadas na
figura anterior.
A primeira a camada fsica. Esta se encarrega das funes de codificao e
decodificao dos sinais, sincronizao dos sinais de relgio entre outras. A
implementao desta camada dependero do canal de comunicao e do mdio fsico
utilizado. Exemplos de interfaces da camada fsica so: Token Ring, Ethernet e FDDI.
Para um dispositivo da rede, esta camada no mudar as funes de alto nvel. Por
exemplo, um comutador trabalhar do mesmo jeito tanto em uma rede Fast Ethernet
(100 Mbps) que utiliza um cabo de par tranado como em uma rede Gigabit Ethernet
(1000 Mbps) que est implementada sobre cabo de fibra tica.
A camada de enlace de dados (camada dois) oferece servios que permitem a
comunicao de dois dispositivos a traves de um canal fsico. A comunicao pode ser
ponto a ponto ou ponto a multiponto. Esta camada deve cumprir trs funes principais:
Em geral a tecnologia LAN trabalha nas duas primeiras camadas do modelo OSI e
os comutadores realizam funes principalmente na camada de enlace. As camadas
superiores oferecem os servios necessrios para estabelecer uma boa comunicao
entre os dispositivos da rede. Alguns exemplos so: o encaminhamento dos pacotes a
traves de varias redes (camada de rede), o ordenamento dos pacotes (camada de
14
Camada N+1
SDU da camada N
Cabealho
Camada N
Fim de carga
til (opcional)
Camada N
PDU da camada N
Cabealho
Camada N -1
Camada N-1
Fim de carga
til (opcional)
Figura 1.2. Encapsulamento dos dados atravs das camadas. (SEIFERT, 2008)
1.4 Endereamento
Uma rede por definio envolve a mais de um dispositivo. O objetivo da rede
habilitar a comunicao entre estes dispositivos. Um endereo o meio para identificar
um dispositivo na rede. Cada protocolo que suporte o intercmbio de informao entre
mltiplas estaes deve ter algum mecanismo de identificao para as estaes.
15
1 byte
2 byte
3 byte
4 byte
5 byte
6 byte
16
SFD
1 byte
DA
6 bytes
SA
6 bytes
LENGTH/TYPE
2 bytes
DADOS
46 ~ 1500 bytes
FCS
4 bytes
Prembulo
7 bytes
SFD
1 byte
DA
6 bytes
SA
6 bytes
VLAN Protocol ID
= 0x8100
Priority CFI
3 bits 1 bit
DADOS
46 ~ 1500 bytes
FCS
4 bytes
VLAN Identifier
12 bits
17
18
19
2.1.1
Encaminhamento
2.1.1.1 Unicast
Encaminhamento unicast um quadro que encaminhado por uma nica porta. Isto
acontece quando o endereo de destino do quadro do tipo unicast e o endereo foi
armazenado na tabela de endereos.
20
2.1.1.2 Multicast
Encaminhamento multicast um quadro que encaminhado por um grupo de portas.
Isto acontece quando o endereo de destino do tipo multicast. Os endereos multicast
so utilizados por alguns protocolos especficos para poder enviar dados a mais de um
dispositivo numa s transmisso. A tabela 2.1 mostra alguns endereos multicast
utilizados.
Uso
01 - 80 - C2 - 00 - 00 - 00
01 - 80 - C2 - 00 - 00 - 01
01 - 80 - C2 - 00 - 00 - 02
01 - 80 - C2 - 00 - 00 - 03
01 - 80 - C2 - 00 - 00 - 0F
2.1.1.3 Flooding
O Flooding quando um quadro encaminhado por todas as portas exceto a porta
de entrada do quadro. Isto acontece quando o comutador no encontra o endereo de
destino armazenado na tabela de endereos.
2.1.1.4 Broadcast
O broadcast um tipo de endereo multicast. Quando o quadro possui o endereo
de destino FF - FF - FF- FF - FF FF, o quadro encaminhado por todas as portas do
comutador exceto a porta de entrada do quadro.
2.1.1.5 Filtering
Filtragem de quadros ou filtering restringir o encaminhamento de quadros que
passam pelo comutador. O mais bsico aquele que impede que um quadro saia pela
porta por onde entrou. Atualmente os comutadores permitem filtros customizados
baseados nos endereos de origem/destino, o protocolo e outros critrios.
21
2.1.2
Aprendizagem
2.1.3
Envelhecimento
2.2.1
Plataforma NetFPGA
22
23
MAC
RxQ
MAC
TxQ
CPU
RxQ
CPU
TxQ
MAC
RxQ
MAC
TxQ
CPU
RxQ
INPUT
ARBITER
OUTPUT
PORT
LOOKUP
FRAME
MARKER
OUTPUT
QUEUES
CPU
TxQ
MAC
RxQ
MAC
TxQ
CPU
RxQ
CPU
TxQ
MAC
RxQ
MAC
TxQ
CPU
RxQ
CPU
TxQ
CLK
RDY
WR
DATA
CTRL
24
Tipo
Descrio
Sada
out_ctrl [7:0]
Sada
out_wr
Sada
out_rdy
Entrada
in_data [63:0]
Entrada
in_ctrl [7:0]
Entrada
in_wr
Entrada
in_rdy
Sada
Entrada
reg_ack_in
Entrada
reg_rd_wr_L_in
Entrada
reg_addr_in [22:0]
Entrada
reg_data_in [31:0]
Entrada
reg_src_in [1:0]
Entrada
25
reg_req_out
Sada
reg_ack_out
Sada
reg_rd_wr_L_out
Sada
reg_addr_out [22:0]
Sada
reg_data_out [31:0]
Sada
reg_src_out [1:0]
Sada
Sada
wr_0_addr [18:0]
Sada
wr_0_data [71:0]
Sada
wr_0_ack
Entrada
rd_0_req
Sada
rd_0_addr
Sada
rd_0_data
Entrada
rd_0_ack
Entrada
rd_0_vld
Entrada
Sada
wr_1_addr [18:0]
Sada
wr_1_data [71:0]
Sada
wr_1_ack
Entrada
rd_1_req
Sada
rd_1_addr
Sada
rd_1_data
Entrada
rd_1_ack
Entrada
rd_1_vld
Entrada
26
27
ARBITRO SRAM
SRAM ZBT
ACESSO
EXTERNO
PROTOCOLO DE
HANDSHAKE
BARRAMENTO
DE DADOS
ANALISADOR
DE
CABEALHO
ENCAMINHAMENTO
& APRENDIZAGEM
ENVELHECIMENTO
BARRAMENTO DE
REGISTROS
BARRAMENTO DE
REGISTROS
REGISTROS
FIFO DE
RESULTADOS
BARRAMENTO DE
DADOS
FIFO DE
ENTRADA
MAQUINA DE
ESTADOS
L2 MOTOR DE CLASSIFICAO
3.2.1
Analisador de cabealho
Este bloco se encarrega de extrair quatro dados do quadro. Estes so: o endereo
MAC de destino, o endereo MAC de origem, a porta de entrada e o VLAN ID quando
contiver. Para realizar esta funo, este bloco possui uma mquina de estados que se
amostra na Figura 3.2.
28
3.2.2
FIFO de entrada
3.2.3
FIFO de resultados
29
3.2.4
Encaminhamento e aprendizagem
30
72 bits
3FF h
(1024 d)
4k, 8k,
32k, 64k
ou 128k
entradas
SEGMENTO DA TABELA DE
ENDEREOS MAC
000 h
31
Campo
Descrio
71:60
VLAN ID
59:12
MAC ADDR
11:4
Port ID
ao
endereo
MAC
utilizando
Reservado
Valid bit
Static bit
Age bit
No utilizado.
8 bits 8 bits
72 bits
Reservado
16 bits
16 bits
16 bits
16 bits
VLAN 4095 VLAN 4094 VLAN 4093 VLAN 4092
1024
endereos
...
Reservado
Membros
VLAN
16 bits
VLAN 3
16 bits
VLAN 2
16 bits
VLAN 1
16 bits
VLAN 0
3.2.5
Envelhecimento
32
3.2.6
rbitro SRAM
33
CLK
WR_REQ
WR_ADDR
A1
A2
A3
A4
WR_DATA
D1
D2
D3
D4
WR_ACK
CLK
RD_REQ
RD_ADDR
A1
A3
A2
RD_ACK
RD_DATA
D1
D2
D3
RD_VLD
34
35
3.2.7
Registros
Descrio
Registro de estado que indica a quantidade de acertos que
teve o motor de classificao na pesquisa de endereos MAC
na tabela.
36
lut_miss
collision_counter
time_to_age
age_change
3.2.8
O motor de classificao possui uma mquina de estados finitos geral para controlar
o fluxo dos quadros no bloco. O diagrama de estados se apresenta na Figura 3.11. No
estado inicial (WAIT_TILL_DONE_DECODE) se espera pela concluso do processo
de pesquisa. O indicador deste evento a bandeira de vazio da FIFO de resultados. No
seguinte estado (WRITE_HDR) se escrevem os resultados da pesquisa (a porta de sada
e as portas tagged no caso de quadros VLAN) no cabealho do quadro. O seguinte
estado (SKIP_HDRS) vai encaminhar os outros cabealhos no quadro para a sada. No
ltimo estado (WAIT_EOP) se espera pelo indicador de fim de quadro no byte de
controle para se assegurar de ter encaminhado tudo o quadro ao seguinte bloco na parte
operativa.
37
ARBITRO SRAM
SRAM ZBT
ACESSO
EXTERNO
PROTOCOLO DE
HANDSHAKE
BARRAMENTO
DE DADOS
ANALISADOR
DE
CABEALHO
ENCAMINHAMENTO
& APRENDIZAGEM
ENVELHECIMENTO
BARRAMENTO DE
REGISTROS
BARRAMENTO DE
REGISTROS
REGISTROS
FIFO DE
RESULTADOS
BARRAMENTO DE
DADOS
FIFO DE
ENTRADA
MAQUINA DE
ESTADOS
L2 MOTOR DE CLASSIFICAO
3.3.1
rbitro SRAM
38
Tabela 3.4. Tabela de ciclos da FSM mostrando as operaes realizadas em cada ciclo.
F1
F1
WR WR
REQ REQ
F0
F0
WR WR
REQ REQ
F1
RD
REQ
F1
RD
REQ
F1
RD
REQ
F1
RD
REQ
F1
RD
REQ
ACESSO
ENVELHEC.
F0
F0
F0
F0
F0
RD
RD
RD
RD
RD
REQ REQ REQ REQ REQ
ACESSO
REGS
Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo Ciclo
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Etapa 1
Etapa 2
Etapa 3
Etapa 4
Etapa 5
Ciclo 1
Ciclo 2
Ciclo 3
Ciclo 4
Ciclo 5
Ciclo 6
WR1 REQ
WR2 REQ
WR3 REQ
RD1 REQ
RD2 REQ
RD3 REQ
WR1
EARLY2
WR2
EARLY2
WR3
EARLY2
RD1
EARLY3
RD2
EARLY3
RD3
EARLY3
WR1
EARLY1
WR2
EARLY1
WR3
EARLY1
RD1
EARLY2
RD2
EARLY2
RD3
EARLY2
WR1
WROTE
WR2
WROTE
WR3
WROTE
RD1
EARLY1
RD2
EARLY1
RD3
EARLY1
WR1
NOP
WR2
NOP
WR3
NOP
RD1 VLD
RD2 VLD
Ciclo 7
Ciclo 8
Ciclo 9
Ciclo 10
RD3 VLD
39
CLK
WE
A0
ADDR
A1
DATA
D0
D1
CLK
WE
ADDR
A0
A1
DATA
A2
D0
D1
D2
3.3.2
Encaminhamento e aprendizagem
Este bloco tambm foi modificado para melhorar o desempenho geral do motor de
classificao. A mquina de estados deste bloco tambm foi modificada para que possa
ser sincronizada com a mquina de estados do rbitro SRAM. Agora a mquina de
estados deste bloco possui 16 estados com 1 ciclo de relgio por estado. Nos 16 estados
se processa 2 quadros Ethernet. Para processar um quadro Ethernet se precisa de 11
ciclos de relgio, portanto para poder processar 2 quadros em 16 ciclos se teve que
colocar cada uma das etapas do processamento do quadro de um modo no qual ambos
processos no se atrapalhem no acesso na memria SRAM. Na tabela 3.5 se apresenta
40
as operaes feitas em cada um dos ciclos da FSM. As duas filas representam os dois
quadros que so possveis de processar.
41
4 VERIFICAO FUNCIONAL
Aps fazer a descrio do motor de classificao, a etapa de verificao tem que ser
feita. A ferramenta utilizada para executar a verificao funcional foi o Modelsim 6.5
SE. O ambiente utilizado para verificar este bloco foi descrito utilizado a linguagem
System Verilog. A metodologia utilizada a apresentada em (SPEAR, 2008). A
metodologia consiste primeiro em criar estmulos aleatrios, neste caso quadros
Ethernet, que sejam inseridos no DUT (Design Under Test), neste caso o motor de
classificao. Logo depois feita uma comparao dos resultados obtidos do DUT com
os resultados obtidos do bloco scoreboard. O scoreboard mtodo para prever o
resultado correto do DUT. Na Figura 4.1 se apresenta a arquitetura completa do
testbench.
AMBIENTE DE
TEST
CONFIG NETFPGA
General
constraints
GERADOR DE
QUADROS
AGENT/
TRANSACTOR
SYSTEM LOG
Detailed
constraints
CHECKER
SCOREBOARD
DRIVER
MONITOR
DATA IN
INTERFACE
DUT
REGISTER
INTERFACE
CLK GEN
Report
DATA OUT
INTERFACE
COBERTURA
FUNCIONAL
- coverage groups
42
43
Especificao
Mapeamento
Projetista
Descrio no nvel de
recursos do FPGA
Microarquitetura
Posicionamento
e Roteamento
Projetista
Cdigo HDL
congelado
Sntese lgica
genrica
Descrio no
nvel de portas
lgicas e registros
Gerao do
Bitstream
Arquivo de configurao do
FPGA
44
Microarquitetura
Posicionamento
Reordenamento da
Cadeia de Scan
Projetista
Cdigo HDL
Congelado
Tecnologia
Sntese da rvore de
Relgio
Sntese Lgica
Roteamento
Restries
Netlist
Portas
Sintetizadas
GDSII
Leiaute
Sign-Off
Front-End Design
Back-End Design
Projetista
Planejamento da
Planta Baixa
Tecnologia
Especificao
45
rea
ASIC (portas
lgicas equiv.*)
Primeira Proposta
Motor de
classificao
859
25,98
3628
40127
rbitro SRAM
567
1,65
370
3070
Motor de
classificao
1065
27,37
3999
34733
rbitro SRAM
647
0,52
465
3155
Segunda Proposta
46
Largura de
Banda
(Gbps)
Tecnologia
Segunda Proposta
500
42
TSMC 180nm
(LAU, 2003)
125
22
180nm
10
180nm
103.5
UMC 130nm
Soluo
(MISHRA, 2003)
(PAPAEFSTATHIOU, 2006)
400
47
48
REFERNCIAS
FRAZIER, H.; JOHNSON, H. Gigabit Ethernet: from 100 to 1,000 Mbps. IEEE Internet
Computing, Piscataway, NJ, USA, v.3, n.1, p.2431, 1999.
HUNTLEY, C.; ANTONOVA, G.; GUINAND, P. Effect of hash collisions on the
performance of LAN switching devices and networks. In: Local Computer Networks,
Proceedings 2006 31st IEEE Conference on. [S.l.: s.n.], 2006. p. 280 284. ISSN 07421303.
IEEE Std 802.1D-2004. IEEE standard for local and metropolitan area networks media
access control (MAC) bridges.p.269,2004.
IEEE Std 802.1Q-2005. IEEE standard for local and metropolitan area networks virtual
bridged local area networks. p. 285, 2005.
IEEE Std 802.3-2005. IEEE standard for information technologytelecommunications
and information exchange between systemslocal and metropolitan area networks
carrier sense multiple access with collision detection (CSMA/CD) access method and
physical layer specifications. Section5, p. 1 417, 2005.
ISO/IEC Standard 7498-1. Information Technology -Open System Interconnection Basic Reference Model: The Basic Model. 1994.
JAIN, R. A comparison of hashing schemes for address lookup in computer networks.
Communications, IEEE Transactions on, v. 40, n. 10, p. 1570 1573, oct 1992. ISSN
0090-6778.
LAU, M. et al. Gigabit ethernet switches using a shared buffer architecture.
Communications Magazine, IEEE, v. 41, n. 12, p. 76 84, dec. 2003. ISSN 0163-6804.
LUO, J. et al. Prototyping fast, simple, secure switches for ethane. In: HighPerformance Interconnects, 2007. HOTI 2007. 15th Annual IEEE Symposium on.[S.l.:
s.n.], 2007. p. 73 82. ISSN 1550-4794.
49
MCAULEY, A.; FRANCIS, P. Fast routing table lookup using cams. In: INFOCOM
93. Proceedings Twelfth Annual Joint Conference of the IEEE Computer and
Communications Societies. Networking: Foundation for the Future. IEEE.[S.l.: s.n.],
1993. p. 1382 1391 vol.3.
METCALFE, R. M.; BOGGS, D. R. Ethernet: distributed packet switching for local
computer networks. Commun. ACM, New York, NY, USA, v.19, n.7, p.395404, 1976.
MISHRA, S. et al. Wire-speed traffic management in ethernet switches. In: Circuits and
Systems, 2003. ISCAS 03. Proceedings of the 2003 International Symposium on.[S.l.:
s.n.], 2003. v. 2, p. II105 II108 vol.2.
NAOUS, J. et al. NetFPGA: reusable router architecture for experimental research. In:
PRESTO 08: Proceedings of the ACM workshop on Programmable routers for
extensible services of tomorrow. NewYork, NY, USA:ACM,2008.p.17.ISBN978-160558-181-1.
NETFPGA. NetFPGA User Guide. Disponvel em: <http://netfpga.org/foswiki/bin/view
/NetFPGA/OneGig/Guide>. Acceso em: Junho 2010.
PAPAEFSTATHIOU, V.; PAPAEFSTATHIOU, I. A hardware-engine for layer-2
classication in low-storage, ultra high bandwidth environments. In: Design,
Automation and Test in Europe, 2006. DATE 06. Proceedings.[S.l.: s.n.], 2006. v. 2, p.
1 6.
SEIFERT, R.; EDWARDS, J. The All-New Switch Book: The Complete Guide to LAN
Switching Technology. Hoboken, NJ: Wiley, 2008.
SPEAR, C. SystemVerilog for Verification, Second Edition: A Guide to Learning the
Testbench Language Features.[S.l.]: Springer Publishing Company, Incorporated, 2008.
ISBN 0387765298, 9780387765297