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