Placa de Interface ATM para PC - Instituto de Telecomunicações

Transcrição

Placa de Interface ATM para PC - Instituto de Telecomunicações
Placa de Interface ATM para PC
Carlos Ribeiro1, Tiago Sá1, José Vilela2 e Henrique Silva3
Departamento de Engenharia Electrotécnica, Universidade de Coimbra
Instituto de Telecomunicações - Pólo de Coimbra
Pólo II, Pinhal de Marrocos, 3030 COIMBRA
Tel.: +351-39-7006230, Fax: +351-39-7006293, Email: [email protected]
Sumário
Foi concebido e construído um interface ATM para PC,
cumprindo as recomendações do ITU-T para RDIS de banda
larga, ao nível do interface rede-utilizador (UNI, User-toNetwork ATM Interface Card), utilizando o bus ISA [1], com
um débito de 51.840 Mbps.
O projecto consistiu no desenvolvimento de um protótipo
de uma placa de rede ATM (hardware) baseado nos chipsets
SARA [2] e CDB [3] da Transwitch, complementado por um
driver de pacotes que possibilite a utilização da placa para
aplicações de rede em ambiente Windows.
1. INTRODUÇÃO
Com o aumento de serviços disponíveis, com diferentes
requisitos de largura de banda e qualidade de serviço, a
proliferação de redes de banda larga, com capacidade de os
integrar, é uma realidade incontestável que representa o futuro
das redes de comunicação. O protocolo ATM [4] é a solução
emergente que congrega todos os serviços.
O tamanho das células ATM, 53 bytes, sendo 5 bytes para o
cabeçalho e 48 bytes para informação, foi escolhido para
permitir a transmissão de grandes blocos de dados bem como
informação sensível a atraso (tal como voz ou vídeo).
O protocolo ATM tem o seu modelo de referência descrito
na recomendação ITU-T I.321 [5]. Engloba o plano de controlo
para controlo de ligações, o plano de utilizador para transmitir
dados dos utilizadores e o plano de gestão para controlo da
rede ATM, como se verifica na figura 1.
A camada de adaptação divide-se na subcamada de
convergência, que desempenha funções de multiplexagem,
detecção de perda e recuperação de células, e na subcamada de
segmentação e reassemblagem, que é responsável pela
fragmentação das unidades de dados em células no emissor e
pela operação inversa no receptor. A camada ATM tem como
funções o controlo do fluxo de dados, o processamento do
cabeçalho, a translação de VPI e VCI e a multiplexagem e
desmultiplexagem de células. A camada física é constituída
pela subcamada do meio físico e pela subcamada de
convergência de transmissão. A primeira garante às camadas
superiores o acesso ao meio físico (transmissão e recepção de
bits), enquanto a segunda encarrega-se da geração e verificação
do HEC, enquadramento das células e sincronização com a
camada superior.
1
Estudante
de
Engenharia
Electrotécnica
ramo
de
Telecomunicações e Electrónica - da Faculdade de Ciências e
Tecnologia da Universidade de Coimbra
2
Investigador do Instituto de Telecomunicações - Pólo de Coimbra
3
Professor Auxiliar do Dep. de Eng. Electrotécnica, Univ. de
Coimbra; responsável pela Linha de Comunicações Ópticas do Pólo
de Coimbra do Instituto de Telecomunicações
Figura 1 - Modelo do protocolo ATM e correspondência dos
componentes principais do adaptador
O ATM funciona em modo de ligação, sendo estabelecida
uma ligação, à qual é associada um VCI/VPI, antes de ser
iniciada a transmissão de células. A relação entre as duas
formas de comunicação existentes, por Canal Virtual (VC) e
por Caminho Virtual (VP), é revelada pela figura 2. Uma
ligação por caminho virtual pode conter vários conjuntos de
ligações por canal virtual que são comutadas em conjunto,
como sendo apenas uma.
VC
VP
VP
VC
VC
VP
VP
VC
VC
VP
VP
VC
ATM Physical Link
Figura 2 - Relação entre canal virtual e caminho virtual
O adaptador ATM desenvolvido utiliza a camada de
adaptação 5 (AAL5). Esta camada foi desenvolvida para tornar
mais eficiente as comunicações de dados. O tamanho máximo
do quadro AAL5 é de 64 kB e tem de ser múltiplo de 48 bytes
para ser, facilmente, fraccionado no campo de informação das
células ATM.
2. DESCRIÇÃO DO ADAPTADOR
Assumiu-se que o protótipo deveria minimizar a utilização
dos recursos do computador hospedeiro. Em consequência, a
placa dispõe de memórias próprias para o armazenamento de
dados em trânsito e respectivas estruturas de controlo. A placa
executa todas as funções necessárias ao estabelecimento,
manutenção e corte de ligações, monitorização dos
parâmetros de transmissão e comunicação com o PC.
O diagrama de blocos do adaptador é apresentado na
figura 3. A figura 1 apresenta a localização dos componentes
da placa nas camadas do protocolo ATM.
1
O elemento principal do adaptador, o chipset SARA da
Transwitch, implementa as camadas ATM, AAL3/4 e AAL5
do protocolo ATM. Este chipset cumpre as recomendações
I.150 [5] e I.361 [5] do ITU-T para RDIS banda larga. A
implementação realizada pelo chipset para as camadas
AAL3/4 e AAL5 segue, respectivamente, as normas ANSI
T1S1.5/92-003R2 e T1S1.5/92-010.
Para se conseguir um desempenho mais eficiente cada
SARA tem associada uma memória de pacote e uma memória
de controlo. As memórias de controlo são implementadas em
RAMs dual port estáticas e as memórias de pacote em video
RAMs NEC [6] com portos de acesso duais. Cada uma das
memórias de pacotes pode armazenar 8 buffers de 64 kB
(buffers usados pela AAL5). As memórias de controlo são
usadas pelas SARAs para guardar estruturas relacionadas com
a segmentação e remontagem dos pacotes, bem como para a
comunicação com o PC. Para implementar as funções de
controlo optou-se por lógica programável MACH [7] da
AMD.
O bloco de interface da placa com o bus ISA é apresentado
na figura 4. Este interface descodifica os endereços, localiza a
placa no endereço seleccionado do espaço de endereçamento
de memória e selecciona a interrupção que é utilizada pela
placa para comunicar com o hospedeiro.
Todos os componentes da placa à excepção de quatro
registos estão localizados no espaço de endereçamento de
memória do computador. É reservado 1 MB de memória para
a placa. Os registos referidos são acedidos através do espaço
de I/O e permitem escolher o endereço base de memória da
placa e a interrupção a enviar ao hospedeiro.
As funções da subcamada de convergência de transmissão
são executadas pelo chipset CDB da Transwitch. Este
componente executa o enquadramento das células ATM de
acordo com a norma I.432 [5] do ITU-T. É utilizado o modo
de transmissão STS-1. Para desempenhar as funções da
subcamada do meio físico utiliza-se o chipset TAXI [8] da
AMD. O meio de transmissão utilizado é o UTP5 com
conector RJ 45.
Physical line
transceiver
(Am7968/Am7969)
CELL INTERFACE - TRANSMITTER
CELL INTERFACE - RECEIVER
Cell Delineation Block
(TXC-05150)
Control Memory
SARA-S
(IDT7026)
16 bits
Control Memory
SARA-R
(IDT7026)
16 bits
SARA-S control*
memory controller
SARA-R control**
memory controller
CONGESTION INFORMATION
16 bits
SARA-S
(TXC-05501)
16 bits
HOST INTERFACE
SARA-R packet**
memory controller
SARA-S packet*
memory controller
SARA-S packet
memory
(2 x MT42C8256)
SARA-R
(TXC-05601)
HOST INTERFACE
16 bits
SARA-R packet
memory
(2 x MT42C8256)
16 bits
16 bits
DRAM address
ISA bus
interface
(MACH435 + buffers)
* - BLOCKS IMPLEMENTED
IN MACH220
Dynamic memory
controller
(MACH435)
** - BLOCKS IMPLEMENTED
IN MACH435
REPRESENTS CONTROL
SIGNALS
16-bit ISA bus
Figura 3 - Diagrama de blocos do adaptador
IOCHRDY
MEMCS16
IRQ10
IRQ11
IRQ12
3. O PROTOCOLO ATM NA PLACA
O chipset SARA da Transwitch, presente na placa, é
composto por dois componentes: a SARA de segmentação e a
SARA de reassemblagem.
As principais estruturas de dados da SARA de
segmentação estão esquematizadas na figura 5. A memória de
pacotes armazena os pacotes de dados a transmitir pela rede
provenientes das diversas aplicações e, opcionalmente, contém
uma FIFO para o tráfego CBR.
A memória de controlo armazena a informação necessária
para processar os diversos pacotes, usando para este efeito
várias estruturas de dados representadas na figura 5. Estas
estruturas contêm a informação de segmentação, localização,
tamanho, tipo de tráfego, destino, etc., e a informação de
overhead para composição do header das células.
AEN
IOW
MEMR
MEMW
RESET
B
U
S
SARA-S CONTROL M
CE
OE
R/W
SARA-R CONTROL M
CE S
CE R
LA[23..17]
LATCH
COMBINATORIAL*
LOGIC
BLOCK
BALE
SARA-S
CS
WRT
RDY
SARA-R
COMRDYCOMMON READY LIN
Vcc
SARAINT INTERRUPT FROM SA
OE
DIR
TO THE
COMPONENTS
OF THE BOARD
SEL[1..0]
TO THE
COMPONENTS
OF THE BOARD
BASE*
REGISTER
CONFIG.*
REGISTER
4b
DAT[15..0]
BUFFER
STRBBASE
STRBCFG
DATA BUFFER CONT
RST CTRL
CARD RESET SIGNAL
RST ATM
DIP[9..8]
STRBBASE
STRBCFG
I/O REGISTERS STRO
STRBRST
STRBENB
BASE[3..0]
OE
SIGNALS FOR PACKE
DRAM CONTROLLER
CS
WRT
RDY
CS CDB CELL DELINEATION B
SA[19..0]
BUFFER
I
S
A
CE
OE
R/W
RSTALL
RSTATM EN
RESET*
REGISTER
2b
STRBRST
ENABLE*
REGISTER
2b
1b
STRBENB
DIR
* Encontra-se num PLD
Figura 4 - Bloco de interface com o bus ISA
2
H O S T IN T E R F A C E
CBR
C E LLS
PACKET
BU FFER S
HOST INTERFACE
PACKET MEMORY
CBR
CELLS
RAW
CELLS
T ransm it
C om plete
Q ueue
P acket
R eady
Q ueue
PACKET
BUFFERS
Packet
Complete
Queue
Exception
Queue
Packet
Memory
Interface
P ac k et
M em ory
Interfac e
Large Free
Descriptor
Queue
V C T able
Congestion Control Interface
Registers
C onges tion C ontrol Interfac e
H ost
Interface
C ons tant B it R ate Interfac e
CBR
S egm entation
SARA
Small Free
Descriptor
Queue
Host
Interface
R egisters
C ontrol
M em ory
Interfac e
B uffer
D escriptor
T able
Constant Bit Rate Interface
CBR
Reassembly
SARA
Control
Memory
Interface
VC Table
CONTROL M EM ORY
VP Table
C ell
Interfac e
Buffer
Descriptor
Table
Figura 5 - Estruturas de dados da SARA de segmentação
Cell
Interface
Para enviar um pacote, o processador começa por obter um
buffer na memória de pacotes. Obtido o buffer livre e a sua
localização, coloca na memória o pacote a transmitir e informa
a SARA de segmentação desta nova condição, para que esta
inicie o processo de segmentação e envio dos dados. O
procedimento para transmissão de células de operação e
manutenção OAM é idêntico ao do envio de células de
utilizador.
Para transmitir uma célula CBR, esta deverá ser colocada
na memória de pacotes, na FIFO reservada para o efeito, e
sinalizada a sua presença para envio. As células CBR têm
prioridade sobre os pacotes AAL5 em segmentação e o seu
ritmo de transmissão é regulado pelo driver.
Tal como no caso da SARA de segmentação, também a
SARA de reassemblagem dispõe de uma memória de pacotes e
de uma memória de controlo, com funcionalidades idênticas à
anterior, com algumas estruturas idênticas como se pode
facilmente verificar pela figura 6.
A memória de pacotes armazena os pacotes de dados que
estão a ser remontados para enviar ao processador. A memória
de controlo armazena a informação necessária para a
remontagem dos pacotes.
A memória de pacotes tem 3 estruturas de dados: duas
obrigatoriamente presentes, os buffers para os pacotes e uma
fila para as células cruas (raw cells), e uma opcional, a fila
para o tráfego CBR.
Os buffers irão conter os pacotes que estão a ser
remontados ou que já acabaram de ser remontados e ainda não
foram processados pelo computador hospedeiro. O tráfego
CBR é passado ao processador através da fila existente na
memória de pacotes. A fila de células cruas guarda as células
OAM F5, as notificações de congestão e as células cruas
(incluindo as células OAM F4). A memória de controlo tem
várias estruturas de dados que contêm a informação de
overhead e de remontagem.
Reassembly
Table
CONTROL MEMORY
Figura 6 - Estruturas de dados da SARA de reassemblagem
Como existem vários tipos de tráfego, e dentro de cada tipo
de tráfego existem várias condições a verificar (por exemplo,
quando uma célula é recebida, a SARA verifica se pertence a
um circuito virtual válido e, se pertence, direcciona a célula
consoante o tipo de tráfego que lhe está associado), quando
uma célula é recebida, a SARA executa o seguinte
procedimento:
1.Se for uma célula dormente (idle cell), é eliminada (as
células dormentes eliminadas não são contadas).
2.Se for uma célula de notificação de congestão, essa
informação é passada à SARA de segmentação, para
que esta abrande o ritmo de transmissão no circuito
virtual que originou a célula.
3.Se for uma célula crua , é guardada na fila de células
cruas na memória de pacotes.
4.Se não é nenhuma das células anteriores, então esta
célula é passada por um filtro para determinar a entrada
apropriada que deve ser lida na tabela de circuitos
virtuais (VC's) ou na tabela de caminhos virtuais
(VP's):
• Se a entrada indica um VC ou um VP inválido, a
célula é descurada e é comunicado o erro.
• Senão a entrada apropriada na tabela de
remontagem (uma das estruturas de dados da
memória de controlo que contém informação sobre
o estado e o tipo de pacote - AAL3/4, AAL5, CBR
ou células cruas - que está a ser remontado) é lida.
∗ Se a entrada indica uma ligação CBR, a célula é
escrita na fila de células CBR.
∗ Se a entrada indica uma ligação de células cruas,
a célula é escrita na fila de células cruas.
∗ Senão é processada como sendo uma célula
pertencente a um pacote AAL5.
3
Na recepção de um início de pacote (a célula de início de
pacote), a SARA de reassemblagem obtém um buffer na sua
memória de pacotes e remonta-o. Quando o pacote está
completo, ou ocorreram erros na sua remontagem, gera uma
interrupção de pacote recebido, para dar conhecimento ao
processador que um novo pacote foi recebido. Se não foram
encontrados erros, o pacote pode ser processado e
disponibilizado para as camadas superiores.
Quando é recebida uma célula CBR, ou uma célula de
notificação de congestão, a SARA escreve os 48 bytes do
payload da célula na fila de tráfego CBR, ou na fila de células
cruas, e gera uma interrupção para notificar o processador da
nova condição.
4. DRIVER DE PACOTES
Aplicação x para
Windows
Aplicação y para
Windows
para uma função da aplicação previamente passado por esta,
aquando do estabelecimento do acesso.
Os pacotes a enviar pela rede, e os correspondentes
parâmetros da ligação associada, são escritos pelo driver nas
memórias e registos existentes no interface de rede, não se
consumindo, assim, os recursos do PC e minimizando-se a
carga computacional para o computador hospedeiro, que não
executa, por exemplo, quaisquer funções de segmentação ou
reassemblagem de pacotes. O driver contém um módulo de
sinalização que realiza o estabelecimento e corte de ligações.
Para sinalizar uma nova condição, por exemplo, a chegada
de um pacote, a placa de rede gera uma interrupção (de
hardware) detectada por uma função TSR - Terminate and
Stay Resident - do driver.
Este driver é perfeitamente compatível com as aplicações
de rede correntes para MS - Windows, permitindo utilizar os
vulgares serviços conhecidos para navegar na Internet, como o
Telnet, o FTP, o E-mail, etc.
5. CONCLUSÕES
Windows sockets
TCP/IP
Driver de pacotes da placa de rede
ATM
Foram realizados testes utilizando um protótipo que
realizava, simultaneamente, as funções de emissor e receptor.
Seria interessante realizar uma evolução deste adaptador para
o bus PCI, permitindo um melhor desempenho. Para tornar a
placa mais económica, poder-se-ia optar por utilizar a memória
do hospedeiro para o armazenamento inerente aos processos
de segmentação e remontagem dos pacotes, o que implicaria
uma diminuição de perfomance.
6. REFERÊNCIAS
Placa de rede ATM
Figura 7 - Interface entre o PC e adaptador ATM
A comunicação entre o PC e o adaptador ATM é realizada
por intermédio de um driver de pacotes [9], como evidencia a
figura 7. Estes drivers providenciam um interface simples, e
comum em placas de rede, que permite que as várias
aplicações o partilhem ao nível da ligação lógica (data link
level).
A pilha protocolar TCP/IP tem embutidas as funções que
comunicam com este tipo de driver o que simplifica a sua
programação; este apenas tem de cumprir as trocas de
primitivas com a camada superior definidas pela especificação,
não tendo, assim, esta camada a necessidade de conhecer as
características do interface de rede utilizado.
O driver de pacotes é chamado pelas aplicações através de
uma interrupção de software configurável entre 60 hex e 80
hex. A capacidade de configurar a interrupção a utilizar deve
ser prevista para evitar conflitos com outros drivers idênticos
já instalados no PC. O mecanismo de chamada do driver fica
completo com a colocação no registo AH do código
correspondente à função que se pretende utilizar.
No sentido inverso de comunicação, quando o driver tem
pacotes para passar às aplicações, este recorre a um far pointer
[1] E. Solari, “ISA & EISA Theory and Operation”,
Annabooks;
[2] TranSwitch, “SARA Chipset Technical Manual TCX95000-TM”, 1995;
[3] TranSwitch, “CDB Device Preliminary Data Sheet TXC05150-MB”, 1994
[4] L. G. Cuthbert, J. C. Spanel, “ATM the Broadband
Telecommunications Solution”, The Institution do
Electrical Engineers, 1993;
[5] Recomendações ITU: I.150, I.321, I.361, I.363, I.432,
I.610
[6] NEC, "Application Specific Memory Data Book", 1995;
[7] AMD, “MACH® 3 and 4 Family Data Book”, 1993;
[8] AMD, “Am7968/AM7969 TAXIchipTM Handbook”, 1992;
[9] FTP Software, Inc., “PC/TCP Version 1.08 Packet Driver
Specification”, Dezembro/1988;
4