"ARQUITETURA DE CONECTOR UNIFICADO" CAMPO DA INVENÇÃO A invenção refere-se à implementação de uma arquitetura de conector unificado através de um sistema computacional.
HISTÓRICO DA INVENÇÃO A arquitetura atual de plataforma de computador apresenta uma variedade de controladores hospedeiros (host) para implementar diversos tipos diferentes de 1/0 entre as plataformas e periféricos de computador que são conectados às plataformas. Por exemplo, um controlador hospedeiro de gráficos tem potencialmente portas analógicas e digitais com interfaces de conexão correspondentes (isto é, os plugues nas extremidades dos cabos que conectam um dispositivo de exibição a uma plataforma de computador. Os controladores de rede de área local dentro da plataforma apresentam geralmente uma ou mais tomadas de Ethernet. 0 subsistema de barramento serial universal (USB) apresenta diversas interfaces de plugue USB associadas. 0 Firewire IEEE 1394 também pode ter uma ou mais interfaces de plugue. A lista de portas separadas e distintas e as interfaces de hardware associadas para plugar periféricos em uma plataforma de computador é incessante. As plataformas de computador com todas estas interfaces e tomadas/plugues de hardware correspondentes têm uma exigência significativa por grande quantidade de placa-mãe e demandam imóveis para ter todo deste hardware em um ponto. Isto limitou a capacidade de que os computadores móveis tenham um complemento total destas interfaces e painel traseiro de interface periférica em muitos sistemas de desktop cresceu infelizmente no tamanho também.
BREVE DESCRIÇÃO DOS DESENHOS A presente invenção é ilustrada de modo exemplar e não limitada pelos desenhos, em que referências semelhantes indicam elementos similares, e em que: A Figura 1 descreve uma modalidade de uma implementação em nível de sistema de uma arquitetura de conector unificado. A Figura 2 descreve uma modalidade de um roteador da arquitetura de conector unificado (UCA) e da lógica de arquitetura de conector unificado acompanhante. A Figura 3 descreve uma modalidade do conector de slot de arquitetura de conector unificado para placas gráficas e de rede de área local (LAN) discretas. A Figura 4 descreve uma modalidade da arquitetura de conector unificado estendida em um dispositivo periférico. A Figura 5 é um fluxograma de uma modalidade de um processo para rotear pacotes de dados em um ambiente de arquitetura de conector unificado.
DESCRIÇÃO DETALHADA DA INVENÇÃO
As modalidades de um sistema, dispositivo, e método para implementar uma arquitetura de conector unificado em uma plataforma de computador são descritas. Na seguinte descrição, numerosos detalhes específicos são determinados. Entretanto, compreende-se que as modalidades podem ser praticadas sem estes detalhes específicos. Em outros exemplos, os elementos, as especificações, e os protocolos bem conhecidos não foram discutidos em detalhes a fim de evitar obscurecer a presente invenção. A Figura 1 descreve uma modalidade de uma implementação em nível de sistema de uma arquitetura de conector unificado. Em muitas modalidades, o sistema inclui um ou mais processadores, tal como a unidade central de processamento (CPU) 100. Em modalidades diferentes, a CPU 100 pode incluir um núcleo ou múltiplos núcleos. Em algumas modalidades, o sistema é um sistema de multiprocessador (não mostrado) onde cada um dos processadores apresenta um núcleo ou múltiplos núcleos. A CPU 100 é acoplada à memória de sistema 102 por meio de uma ou mais ligações de alta velocidade (isto é, interconexões, barramentos, etc.). A memória de sistema 102 é capaz de armazenar a informação que a CPU 100 utiliza para operar e executar programas e sistemas operacionais. Em modalidades diferentes, a memória de sistema 102 pode ser qualquer tipo útil de memória legível e gravável tal como uma forma de memória de acesso aleatório dinâmico (DRAM).
Em algumas modalidades, a CPU 100 também é acoplada a um controlador de gráficos discreto 104 por meio de uma ligação de alta velocidade adicional. O controlador de gráficos discreto 104 pode ser fisicamente acoplado a uma placa-mãe ou à outra placa de circuito impresso por meio de um conector de slot. Em muitas modalidades, o controlador de gráficos discreto pode ser uma placa/controlador de gráficos PCI Express® que é plugado em um conector de slot de gráficos PCI Express®. Neste caso, o controlador/placa de gráficos PCI Express® pode estar de acordo com uma revisão da especificação, tal como a PCI Express® Base Specification, Rev. 2.0, publicada em 20 de Dezembro de 2006. Em outras modalidades, o controlador de gráficos discreto utiliza um protocolo diferente do PCI Express®. Em algumas modalidades, a CPU 100 é acoplada a múltiplos controladores de gráficos discretos (modalidades com múltiplos controladores de gráficos discretos não são mostradas).
Em muitas modalidades a CPU 100 também é acoplada ao complexo de I/O 106. O complexo de I/O 106 pode abrigar um ou mais controladores de I/O hospedeiros, cada qual controla uma ou mais ligações de I/O que permitem que a CPU 100 se comunique com os periféricos de I/O presos ao sistema computacional. Os periféricos de I/O tais como o display 108, o display 110, e o roteador sem fio 112 são exemplos dos periféricos de I/O que podem ser presos ao sistema computacional.
Em muitas modalidades o complexo de I/O 106 é acoplado a um controlador de interface de rede (NIC) discreto 114. 0 NIC discreto 114 é capaz de prover uma interface entre o sistema computacional e uma ou mais redes externas ao sistema computacional. Estas redes podem incluir redes tais como redes sem fio e cabeadas de intranet dentro de um domínio em que o computador está localizado ou podem também incluir a própria Internet.
Em muitas modalidades, o sistema da Figura 1 inclui um roteador de arquitetura de conector unificado (UCA) 116, que é acoplado a uma ou mais portas de conector unificado por meio de uma ou mais ligações de alta velocidade. Dessa forma, quatro portas de conector unificado são mostradas: porta 118, porta 120, porta 122, e porta 124. 0 roteador UCA 116 é acoplado também ao complexo de I/O 106 com uma ou mais ligações de I/O, como mencionado acima. Estes incluem as ligações de I/O tais como o barramento serial universal (USB) e/ou quaisquer outras ligações de I/O potenciais. A Figura 1 mostra três de tais ligações: ligação de I/O 126, ligação de I/O 128, e ligação de I/O 130.
Em muitas modalidades o roteador UCA 116 é um componente discreto na placa-mãe 136 no sistema computacional. Em outras modalidades, o roteador UCA pode ser integrado no complexo de 1/0 106 (estas modalidades não são mostradas).
Em sistemas computacionais previamente implementados, um ponto de extremo de uma ligação de I/O, oposto ao complexo de I/O 106, seria uma porta de protocolo específico que permitisse que um periférico compatível fosse preso à porta (isto é, um dispositivo de teclado USB seria plugado em uma porta USB, um dispositivo de roteador sem fio seria plugado em uma porta LAN/Ethernet, etc.). Qualquer porta única seria limitada a dispositivos com um plugue compatível e um protocolo compatível. Uma vez que um dispositivo compatível é plugado na porta, uma ligação de comunicação seria estabelecida entre o complexo de I/O e o periférico.
No sistema computacional como descrito na modalidade mostrada na Figura 1, as ligações de I/O (126-130) acoplam o complexo de I/O 106 com o roteador UCA 116, o roteador encapsula então os pacotes de dados, enviados originalmente no formato de pacote de dados do protocolo de controlador hospedeiro específico, a um formato de pacote de dados do protocolo de conector unificado. A seguir, o roteador UCA 116 roteia o pacote de dados de protocolo de conector unificado à porta de conector unificado que apresenta o periférico alvo preso (isto é, acoplado, plugado nele). Assim, nestas modalidades, periféricos de I/O tais como display 108, o display 110, e o roteador sem fio 112 são todos compatíveis com o protocolo de conector unificado e possuem plugues de fator de forma de conector unificado para plugar em qualquer uma das portas de conector unificado (118-124).
Adicionalmente, o roteador UCA 116 traduz os pacotes de dados de protocolo de conector unificado que vêm de quaisquer dos periféricos conectados ao protocolo que é nativo ao controlador hospedeiro de 1/0 alvo dentro do complexo de 1/0.
Dessa forma, os dados de 1/0 (por exemplo, display, trabalhos em rede, USB, etc.), enviados a partir do sistema computacional a um periférico e enviados a partir de um periférico ao sistema computacional, são empacotados e encapsulados na camada física dentro de cada pacote de dados de protocolo de conector unificado. Com respeito aos gráficos discretos e aos controladores NIC discretos, estes controladores geram e recebem os dados de 1/0 que são formatados de acordo com as camadas físicas definidas por suas respectivas pilhas de protocolo. Quando estes dados são carregados por de uma porta de conector unificado, é encapsulado adicionalmente dentro de um formato de pacote (isto é, formato de quadro) definido pelo protocolo de dados de conector unificado. A implementação específica de como o roteador UCA 116 realiza o encapsulamento e o empacotamento é descrita em detalhes abaixo com referência à Figura 2.
Fazendo referência novamente à Figura 1, em muitas modalidades as ligações dedicadas adicionais são mostradas diretamente acoplando o controlador de gráficos discreto 104, bem como o NIC discreto 114, ao roteador UCA 116. Estas ligações são mostradas como as ligações com linhas pontilhadas 132 e 134 respectivamente. As ligações com linhas pontilhadas do display e da rede permitem que um dispositivo de exibição e/ou um dispositivo de rede sejam plugados no sistema computacional através de uma porta de conector unificado (por exemplo, uma dentre as portas de conector unificado 118-124). As ligações 132 e 134 removem os locais previamente necessários de acoplamento do display e da rede das portas presas diretamente às placas discretas. Por exemplo, um periférico de exibição foi plugado previamente diretamente na porta de display na placa de gráficos. Com a implementação de arquitetura de conector unificado, os dispositivos de exibição e de rede são presos a uma porta de conector unificado, que está localizada na placa-mãe do sistema 136 em vez de na placa discreta do controlador de gráficos 104. A Figura 2 descreve uma modalidade de um roteador de arquitetura de conector unificado (UCA) e de lógica de arquitetura de conector unificado acompanhante. O roteador UCA 116 é mostrado, como na Figura 1, acoplado a diversos controladores hospedeiros (controladores de display 2 00, 202, e 2 04, NICs 2 06 e 208, e controlador hospedeiro USB 210). Adicionalmente, o roteador UCA 116 também é acoplado a diversas portas de conector unificado (portas 212-220). Ademais, diversos periféricos são presos a várias portas. O periférico 1 (Pl) , câmera web 222, é acoplado ao periférico 2 (P2), monitor de exibição 224, que é acoplado à porta de conector unificado 212. 0 periférico 3 (P3), monitor de exibição 226, é acoplado à porta de conector unificado 214. O periférico 4 (P4) , roteador sem fio 228, é acoplado à porta de conector unificado 218. Finalmente, o periférico 5 (P5), impressora USB 230, é acoplado à porta de conector unificado 220.
Em muitas modalidades, a arquitetura de conector unificado emprega uma comunicação por comutação de pacotes para trocar dados entre os controladores hospedeiros (200-210) e os periféricos presos (222-230). A comutação de pacotes é um método comum de transmissão por pacotes entre um controlador hospedeiro e um dispositivo periférico. Um protocolo comum de descoberta é utilizado para enumerar os periféricos conectados à plataforma e também para detectar qualquer plugue recente dos periféricos. Uma vez que os periféricos são enumerados, um protocolo de transferência de dados é usado para trocar dados de I/O do aplicativo entre um controlador hospedeiro especifico e um periférico específico. Em algumas modalidades, a descoberta de arquitetura de conector unificado e protocolos de transferência de dados podem ser extensões das respectivas contrapartes do protocolo USB 2.0 (como definido na USB Specification, Revision 2.0, publicada em 27 de Abril de 2000) . Em outras modalidades, a descoberta de arquitetura de conector unificado e os protocolos de transferência de dados podem ser uma extensão de qualquer outro tipo de descoberta de dispositivo praticável e protocolo de transferência de dados disponível. A enumeração dos periféricos presos (222-230) é realizada por um gerenciador de conexão 232. Em modalidades diferentes, o gerenciador de conexão 232 pode ser implementado como uma peça de firmware de baixo nível, como a lógica dentro do roteador UCA 116, como parte da BIOS de sistema (sistema de entrada/saída básico) , ou dentro de um sistema operacional que funciona no sistema computacional. O gerenciador de conexão 232 é responsável por identificar o tipo do periférico conectado a uma porta de conector unificado (por exemplo, um display, um dispositivo de rede, um dispositivo USB, etc.) e atribuir um endereço único ao periférico. Em muitas modalidades, dispositivos de múltiplas funções são atribuídos a múltiplos endereços.
Em muitas modalidades, a associação entre cada periférico (P1-P5) e o controlador hospedeiro específico (um dentre 200-210) que gerencia os dados de I/O do periférico é definida em uma tabela de ligação 234. A tabela de ligação pode ser implementada em qualquer tipo de memória dentro do sistema, tal como a memória de sistema, um cache, um buffer, etc. O roteador UCA 116 usa a tabela de ligação para encontrar o alvo de transmissão de pacote de dados correto (isto é, quadro). Ao utilizar a tabela de ligação, o alvo de transmissão é dependente das origens do pacote/quadro que está sendo enviado. Se o roteador recebe um pacote de dados a partir de um controlador hospedeiro (isto é, o controlador de display, controlador de rede, controlador de I/O, etc.), o alvo é a porta onde o periférico alvo pretendido é acoplado (isto é, plugado). Se o roteador recebe um pacote de dados de protocolo de conector unificado a partir da porta de conector unificado (isto é, o pacote de dados inicia a partir do dispositivo periférico acoplado a porta), o alvo é o controlador hospedeiro ligado àquele periférico. Por exemplo, o controlador de display 200 envia um pacote de dados de exibição destinados ao display P2 224, o roteador UCA 116 recebe o pacote, determina o periférico (P2) alvo usando a tabela de ligação (por exemplo, P2 é ligado à ligação A, que é acoplado ao controlador de display 200), encapsula o pacote de dados em um pacote de dados de protocolo de conector unificado, e envia o pacote a P2 através da porta de conector unificado 212. Em muitas modalidades, os periféricos podem estar encadeados para fora de uma porta única, tal como o PI sendo encadeado a P2, que é acoplado à porta de conector unificado 212. A Figura 2 mostra que um exemplo da tabela de ligação que esclarece que Pl é ligado à ligação F (controlador hospedeiro USB 210) , P2 é ligado à ligação A (controlador de display 200), P3 é ligado à ligação C (controlador de display 204) , P4 é ligado à ligação D (controlador de interface de rede 206) , e P5 também é ligado à ligação F (controlador hospedeiro USB 210) .
Em muitas modalidades, a tabela de ligação é configurada inicialmente pelo gerenciador de conexão na inicialização do sistema (isto é, quando ocorre o ciclo de energia do sistema, ou quando o sistema operacional de controle realiza um reinicio via software do computador) . Também pode ser re-mapeado durante o tempo de execução pelo software do sistema (um sistema operacional ou um gerenciador de máquina virtual) para implementar os modelos em uso substitutos baseados na comutação dinâmica de fluxos de I/O do sistema. Por exemplo, em uma plataforma móvel, um periférico de display pode ser associado a um controlador de gráficos discreto quando o sistema é plugado e pode ser comutado dinamicamente a um controlador de gráficos integrado quando o sistema está funcionando em uma bateria por re-mapeamento da informação de ligação. O roteador UCA 116 também é responsável pelo empacotamento e o encapsulamento de dados de I/O do display e da rede. Em muitas modalidades, o roteador UCA 116 apresenta um ou mais buffers internos para manter um fluxo contínuo de dados de exibição ao construir um pacote de dados de protocolo de conector unificado (isto é, quadro). Dessa forma, a lógica dentro do roteador UCA 116 pode armazenar um fluxo em um buffer, construir quadros individuais fora da informação de fluxo armazenada, e enviar quadros quando estão completos. Em outras modalidades, um ou mais dos controladores hospedeiros (200-210), têm o conhecimento do roteador UCA 116 e do formato de protocolo de conector unificado. Nestas modalidades onde os controladores hospedeiros têm o conhecimento do roteador UCA 116, os próprios controladores hospedeiros com conhecimento podem construir os pacotes de dados de protocolo de conector unificado e trocar quadros nativos de protocolo de conector unificado com o roteador UCA 116, assim aliviando o roteador UCA 116 da tarefa de tradução/comutação. Neste cenário, pode ser requerido que o roteador UCA 116 apenas encaminhe estes quadros de pacote de dados pré-encapsulados aos periféricos alvos.
Em muitas modalidades, o roteador UCA 116 também é responsável pela desconstrução de pacotes de dados de protocolo de conector unificado em pacotes de dados de formato de controlador hospedeiro nativo correspondente. Isto ocorre quando o periférico, ligado a um controlador hospedeiro especifico, envia um pacote de dados de protocolo de conector unificado objetivando o controlador hospedeiro. Este pacote chega a partir do periférico na porta de conector unificado, onde o roteador UCA 116 toma o pacote e desconstrói o pacote de volta em um formato nativo para o controlador hospedeiro e então transmite o pacote de dados nativo desconstruído ao controlador hospedeiro alvo. A Figura 3 descreve uma modalidade do conector de slot de arquitetura de conector unificado para placas gráficas e de rede de área local (LAN) discretas. Para ilustrar as modificações das placas gráficas e de LAN discretas atuais, a Figura 3 mostra uma versão atual de cada placa de lado-a-lado com uma versão de arquitetura de conector unificado (UCA) de cada placa. Os exemplos mostrados na Figura 3 utilizam PCI Express®, embora qualquer outro protocolo relevante possa ser usado.
Uma versão atual de uma placa gráfica discreta PCI Express® 300 é mostrada. A placa gráfica 300 inclui os pinos conectores de slot 302 como mostrados. Adicionalmente, a placa gráfica 300 tem um conector periférico de display externo 304. Nos cenários atuais de gráficos discretos de PCI Express®, os dados da CPU e a memória de sistema são enviados à placa gráfica 300 através de uma ligação PCI Express® que é acoplada fisicamente aos pinos conectores de slot 302 quando a placa gráfica 300 é plugada no slot da placa gráfica PCI Express® na placa-mãe do sistema computacional. A placa gráfica 300 opera então sobre estes dados recebidos e os envia a um periférico de display plugado no conector periférico de display externo 304.
Partindo agora para a placa gráfica discreta com a UCA 306, na modalidade mostrada na Figura 3, uma placa gráfica capaz de UCA 306 inclui os pinos conectores de slot 308, similares à placa gráfica da versão atual 300. Embora, em vez de ter um conector periférico de display externo, a placa gráfica discreta com UCA 306 tem os pinos extras de conector de slot 310. Uma vez que a placa gráfica discreta com UCA 306 recebeu dados da ligação de PCI Express® (a partir dos pinos conectores de slot 3 08) e operou nos dados recebidos, a placa gráfica capaz de UCA 306 envia os dados a um periférico de display plugado em uma porta de conector unificado na placa-mãe. Especificamente, os dados são enviados através de pistas adicionais da ligação de PCI Express® e são roteados a partir do conector de slot ao roteador UCA no sistema (este é mostrado como a ligação 132 na Figura 1) . Estas pistas de ligação adicionais são acopladas fisicamente aos pinos extras de conector de slot 310.
Em seguida, a Figura 3 mostra uma versão atual da placa de LAN discreta PCI Express® 312 (que tem um NIC integrado na placa) . A placa de LAN 312 inclui os pinos conectores de slot 314 como mostrado. Adicionalmente, a placa de LAN 312 apresenta um conector de LAN/Ethernet externo 316. Em cenários atuais de placa de LAN PCI Express® discretas, os dados da CPU e da memória de sistema são enviados à placa de LAN 312 através da ligação PCI Express® que está acoplada fisicamente aos pinos conectores de slot 314 quando a placa de LAN 312 for plugada em um slot da placa de LAN PCI Express® na placa-mãe do sistema computacional. A seguir, a placa de LAN 312 empacota estes dados recebidos e os envia pela rede que o conector de LAN/Ethernet 316 está plugado.
Finalmente, partindo agora para a placa de LAN discreta com a UCA 318, na modalidade mostrada na Figura 3, uma placa de LAN capaz de UCA 318 inclui os pinos conectores de slot 320, semelhantes à placa de LAN 312 da versão atual. Embora, em vez de ter um conector de LAN/Ethernet externo, a placa de LAN discreta com UCA 318 apresenta pinos extras de conectores de slot 310. Uma vez que a placa de LAN discreta com UCA 312 recebeu dados da ligação PCI Express® (a partir dos pinos conectores de slot 320) e empacotou os dados recebidos, a placa de LAN capaz de UCA 318 envia os dados a um cabo Ethernet plugado em uma porta de conector unificado na placa-mãe. Especificamente, os dados enviados através das pistas de ligação PCI Express® adicionais são roteados a partir do conector de slot ao roteador UCA no sistema (isto é mostrado como a ligação 134 na Figura 1) . Estas pistas de ligação adicionais são acopladas fisicamente aos pinos extras de conectores de slot 322. A Figura 4 descreve uma modalidade de arquitetura de conector unificado estendida em um dispositivo periférico. Em muitas modalidades, o sistema computacional 400 que emprega a arquitetura de conector unificado inclui todos os componentes específicos descritos nas Figuras 1 a 3. Especificamente, o roteador UCA 116 está presente e é acoplado a um ou mais controladores hospedeiros (que incluem potencialmente controladores hospedeiros de I/O, controladores de display, controladores de rede, etc.) bem como a uma ou mais portas de conector universal (neste exemplo há quatro portas: as portas de conector universal 402, 404, 406 e 408).
Em muitas modalidades, um dispositivo periférico 410 é acoplado ao sistema computacional 400 através de um cabo 412 plugado na porta de conector universal 404. No lado do dispositivo periférico 410, o cabo 412 é plugado na porta de conector universal 414, que pode ter um fator de forma idêntico à porta de conector universal 404. 0 dispositivo periférico 410 apresenta um dispositivo de lógica UCA integrado 416. Em algumas modalidades, o dispositivo de lógica UCA 416 apresenta a mesma funcionalidade que o roteador UCA 116 no sistema computacional 400 (por exemplo, tal como dentro um display de múltiplas funções com portas USB) . Em outras modalidades, o dispositivo de lógica UCA 416 é um conversor de protocolo simples que converte os pacotes de dados do protocolo de conector unificado aos pacotes de dados do protocolo nativo do dispositivo periférico, e vice versa. O dispositivo de lógica UCA 416 no dispositivo periférico 410 recebe os pacotes de dados de protocolo de conector unificado enviados a partir do roteador UCA 116 no sistema computacional 400 objetivando o dispositivo periférico. Em algumas modalidades, o dispositivo de lógica UCA 416 também recebe pacotes de dados no formato nativo de dispositivo periférico a partir da lógica interna de dispositivo periférico 418. Em outras modalidades, a lógica interna de dispositivo periférico 418 compreende o formato de pacote de dados de protocolo de conector unificado nativo, que permite que a lógica interna construa os pacotes de dados de protocolo de conector unificado e os envie nesse formato ao dispositivo de lógica UCA 416. Nestas modalidades, não é requerido que o dispositivo de lógica UCA 416 realize qualquer trabalho de encapsulamento para os pacotes de dados (isto, é quadros) que percorrem em uma ou outra direção (isto é, a partir da lógica interna de dispositivo periférico 418 ao sistema computacional 400 e vice versa). Em vez disso, nestas modalidades, o roteador UCA 416 simplesmente encaminha os pacotes de dados ao alvo apropriado conforme os recebe. A Figura 5 é um fluxograma de uma modalidade de um processo para rotear pacotes de dados em um ambiente de arquitetura de conector unificado. O processo pode ser realizado por hardware, por software, ou por uma combinação de tais. Seguindo agora para a Figura 5, o processo começa pela lógica de processamento que determina se um dispositivo periférico foi plugado em uma porta de conector unificado (bloco de processamento 500). "Plugar" se refere ao dispositivo periférico sendo acoplado ou conectado à porta de conector unificado. Em modalidades diferentes, o "plugar" pode ocorrer a qualquer hora, tal como antes da inicialização ou durante a operação total do sistema quando plugue novo é permitido. A seguir, se nenhum dispositivo periférico foi plugado o bloco de processamento 500 repete (isto é, a porta de conector unificado é designada - continuamente ou uma designação pode ocorrer uma vez a cada período de tempo ajustado).
Em seguida, uma vez que a lógica de processamento detectou que o dispositivo foi plugado, a lógica de processamento, a seguir, enumera o dispositivo periférico (bloco de processamento 502). Então, a lógica de processamento liga o dispositivo periférico a um controlador hospedeiro presente no sistema (bloco de processamento 504) . O dispositivo periférico é ligado ao controlador hospedeiro e é compatível com o mesmo (isto é, compartilham do mesmo protocolo) .
Após a ligação, a lógica de processamento determina se um pacote de dados foi recebido (bloco de processamento 506) . Se um pacote de dados não foi recebido, a lógica de processamento determina se houve uma mudança/modificação no dispositivo periférico (bloco de processamento 508). Por exemplo, um primeiro dispositivo periférico foi desplugado e um segundo dispositivo periférico foi plugado na mesma porta de conector unificado. Se não há nenhuma mudança no status do dispositivo periférico, a lógica de processamento retorna ao bloco de processamento 506 e verifica novamente se um pacote de dados foi recebido. Caso contrário, se uma mudança foi detectada com o dispositivo periférico, a lógica de processamento retorna ao bloco de processamento 500 para verificar novamente se um dispositivo periférico é plugado na porta de conector unificado.
Retornando ao bloco de processamento 506, se um pacote de dados foi recebido, a lógica de processamento determina se o pacote de dados foi recebido a partir do dispositivo periférico ou do controlador hospedeiro (bloco de processamento 510) . Se o pacote de dados foi recebido a partir do dispositivo periférico, o pacote de dados é um pacote de dados de protocolo de conector unificado e a lógica de processamento prossegue para desconstruir o pacote de dados de protocolo de conector unificado em um ou mais pacotes de dados nativos de controlador hospedeiro que são compatíveis com o protocolo do controlador hospedeiro (bloco de processamento 512). Após a lógica de processamento desconstruir o pacote de dados de protocolo de conector unificado em pacotes de dados nativos de protocolo do controlador hospedeiro, a lógica de processamento, a seguir, transmite os pacotes de dados de controlador hospedeiro nativo para o controlador hospedeiro (bloco de processamento 514) . Então, a lógica de processamento retorna ao bloco de processamento 506 para verificar se algum outro pacote de dados foi recebido.
Retornando ao bloco de processamento 510, se o * pacote de dados é do controlador hospedeiro então o pacote de dados está no formato de protocolo nativo do controlador hospedeiro e a lógica de processamento prossegue para encapsular o pacote de dados nativo de controlador hospedeiro em um pacote de dados de protocolo de conector unificado (bloco de processamento 516) . Uma vez que o pacote de dados de protocolo de conector unificado foi criado, a lógica de processamento transmite o pacote de dados de protocolo de conector unificado à porta de conector unificado objetivando o dispositivo periférico plugado na porta (bloco de processamento 518). Finalmente, a lógica de processamento retorna ao bloco de processamento 506 para verificar se algum outro pacote de dados foi recebido e o processo é terminado.
Assim, são descritas as modalidades de um sistema, de um dispositivo, e de um método para implementar uma arquitetura de conector unificado em uma plataforma de computador. Estas modalidades foram descritas em referência às modalidades exemplares específicas dos mesmos. Será evidente às pessoas que têm o benefício desta descrição que as várias modificações e mudanças podem ser realizadas a estas modalidades sem se afastar do espírito e do escopo mais amplo das modalidades descritas neste relatório. A especificação e os desenhos são, consequentemente, para serem considerados em um sentido ilustrativo em vez de restritivo.
REIVINDICAÇÕES