PT103744A - Arquitectura de acesso ao núcleo de rede. - Google Patents
Arquitectura de acesso ao núcleo de rede. Download PDFInfo
- Publication number
- PT103744A PT103744A PT103744A PT10374407A PT103744A PT 103744 A PT103744 A PT 103744A PT 103744 A PT103744 A PT 103744A PT 10374407 A PT10374407 A PT 10374407A PT 103744 A PT103744 A PT 103744A
- Authority
- PT
- Portugal
- Prior art keywords
- core
- access
- cores
- network
- protocol
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
A
Description
1
DESCRIÇÃO "ARQUITECTURA DE ACESSO A NÚCLEOS POR REDE"
Campo da Invenção
Esta invenção está relacionada na generalidade com o projecto, verificação e teste de sistemas integrados (SI) ou, em inglês, Systems on a Chip (SoCs), baseados em núcleos de propriedade intelectual (NPI) ou, em inglês, IP cores, e em particular ao acesso a NPIs para entrada e saida de dados, configurações, controlo e observação, através de redes de comunicação multi-utilizador.
Antecedentes da invenção
Um circuito integrado que implementa um SI complexo necessita de ser acedido para operações funcionais e não funcionais por inúmeras razões, nomeadamente: configuração a partir do exterior, observação e controlo, manutenção e actualizações.
Os Sis tem de se adaptar às mais variadas circunstâncias externas, ambientes envolventes e normas existentes. Para conseguir esta flexibilidade, registos de configuração são usados para guardar valores de configuração que influenciam o comportamento dos NPIs. Adicionalmente, é muitas vezes necessário emitir comandos durante o funcionamento do NPI e monitorar o seu estado; isto é normalmente conseguido à custa de registos de controlo e de estado. Informação detalhada sobre o estado do sistema ou programação extensa pode ser obtida descarregando ou carregando todo o conteúdo de memórias internas. 2
Esquemas anteriores foram propostos para aceder a circuitos integrados para controlo, observação e configuração. Estas funções tendem a ser separadas de outras funções de comunicação e de usar pinos específicos. Os esquemas tradicionais são normalmente protocolos série de baixa velocidade, os quais evitam usar muitos pinos do SI. Exemplos bem conhecidos de esquemas desses são o barramento I2C da Philips [1] ou o barramento SPI da Motorola [2]. 0 Standard JTAG, inicialmente desenvolvido para fins de teste, também se tornou um dos principais métodos para configuração e verificação, e constitui a norma IEEE 1149.1 [3] .
As Matrizes de Portas Programáveis no Terreno (MPPT) ou, em inglês, Field Programmable Gate Array (FPGA), utilizam o JTAG para configuração do SI. Sendo as MPPTs totalmente configuráveis, necessitam de quantidades massivas de dados de configuração, os quais, quando introduzidos por JTAG, levam um tempo longo a carregar no SI.
Os fornecedores de MPPTs desenvolveram métodos de configuração diferentes do JTAG de modo a reduzir o tempo de configuração. Estes esquemas usam normalmente uma interface paralela e carregam os dados de configuração de uma memória externa não volátil, o que é menos flexível do que obter os dados de configuração de um computador, como acontece com o JTAG.
Uma dificuldade conhecida ao utilizar JTAG é quando apenas parte da MPPT necessita de ser reconfigurada. Para resolver este problema os fornecedores de MPPTs oferecem esquemas de reconfiguração parcial que dividem a MPPT em regiões e permitem a reconfiguração individual de cada região. 3
Contudo, estas regiões devem ser amplas ou de outro modo o encargo com o tempo de preparação da configuração fica demasiado dispendioso. Por outro lado, o I2C e o SPI podem ser usados para ler ou escrever pequenos registos de configuração, mas falta-lhes a habilidade para lidar com grande quantidades de dados de reconfiguração. Uma caracteristica ainda mais avançada é a possibilidade de reconfiguração durante a execução de programas. Em algumas apl icações, tem-se verificado que é vantajosa a reconfiguração total ou parcial do circuito integrado enquanto o programa está em execução. Isto rentabiliza melhor a lógica disponível, poupa área e melhora o desempenho. A infra-estrutura necessária para a reconfiguração em execução tem de ser suficientemente rápida para que não tenha impacto no tempo de computação. Acresce, que a reconfiguração deve ocorrer sincronamente com o relógio de sistema, o que é dificil de garantir dado que as técnicas habituais de reconfiguração usam o seu próprio relógio. As técnicas habituais de configuração são desadequadas para este fim, dado que são e série, lentas e precisam de relógios dedicados, diferentes do relógio do sistema.
Nas técnicas de configuração tradicionais, um dispositivo configurável pode ser programado pela rede se estiver ligado a um computador que por sua vez está ligado à rede. Porém, como as técnicas de configuração tradicionais são lentas, qualquer função que exija que dados sejam enviados ou recebidos a alta velocidade, a partir do dispositivo, não pode ser executada. Neste conjunto de funções incluem-se a verificação, inspecção para procura de erros, teste, 4 reconfiguração parcial ou total, rápida, e enquanto o programa está em execução.
As técnicas referidas têm como objectivo aceder a circuitos integrados. Com a densidade de integração possível hoje em dia, os circuitos impressos têm gradualmente vindo a ser substituídos por Sis, onde os circuitos integrados são agora substituídos por blocos funcionais, todos embebidos e integrados num único cristal de silício. Assim, em vez de acedermos a circuitos integrados independentes, surge e necessidade de aceder a blocos no interior dum sistema integrado, SI. A norma IEEE 1500, extensão da norma IEEE 1149, propõe um método de aceder a blocos embebidos num sistema integrado, porém apenas para teste. Esta norma tem a limitação de implementar um protocolo série, o que implica a existência de registos de leitura longos dentro do circuito integrado (SI). A consequência é lentidão tanto da aplicação dos estímulos como da leitura dos resultados. Por outro lado, os registos de leitura não replicam a natureza hierárquica da estrutura dos circuitos digitais, sendo necessário os mecanismos previstos na patente US2003/120986, para que um funcionamento hierárquico seja possível. A invenção agora apresentada endereça todos os problemas referidos, embebendo estruturas de controlo, observação e configuração na estrutura de comunicação do próprio circuito integrado, e usando para isso uma interface de rede normalizada no interior do próprio sistema. Deste modo a comunicação para o exterior do circuito integrado é série e de alta velocidade, porém a comunicação interna entre blocos é paralela, de baixa velocidade e em mapa de memória. Usando a técnica proposta, a controlabilidade, 5 observabilidade e configuração do sistema integrado é conseguida sem a necessidade de equipamento externo adicional como fichas e cabos JTAG. Consegue-se assim uma taxa de transferência de dados semelhante à duma rede de comunicação, o que significa uma largura de banda muito superior às conferidas pelas técnicas de acesso tradicionais. Esta técnica facilita também a reconfiguração dado que é hierárquica e dado que os registos internos são endereçáveis. A reconfiguração com o programa em execução é também simplificada dado que todo o sistema é síncrono. Com esta invenção os diversos NPIs dentro dum sistema integrado, ficam interligados com uma rede. Assim, estes blocos podem ser directamente acedidos para verificação, teste, manutenção e actualização.
Resumo da invenção A arquitectura proposta está integrada num Sistema Integrado (SI) genérico e consiste numa interface de rede expandida e uma inf ra-estrutura de acesso aos NPIs no sistema. Serve para auxiliar o desenvolvimento de novos núcleos ou à integração de blocos existentes, programação e configuração de blocos no sistema, verificação da funcionalidade de NPIs, teste de NPIs, inspecção para procura de erros em NPIs, manutenção e actualização. A presente invenção pode também ser usada como uma interface de rede simplificada para transferência de dados, que não precisa dum processador embebido e do respectivo programa. Pelo facto de se fornecer uma interface com infra-estrutura de rede, todas as actividades enumeradas anteriormente podem ser realizadas duma forma colaborante, permitindo que equipas dispersas geograficamente possam realizar as suas tarefas em simultâneo. A arquitectura pode ainda ser usada para gerar estímulos e observar resultados durante a fase 6 de desenvolvimento dum bloco de IP usando placas de prototipagem com FPGAs. A arquitectura pode ser usada para programar processadores embebidos através de uma rede ou para configurar dispositivos programáveis embebidos tais como FPGAs embebidas. A arquitectura pode ser usada para configurar vários registos de controlo ou observar vários registos de estado do sistema. O invento pode ser usado para temporariamente substituir a entrada e saida de dados normal de um NPI por estímulos e respostas usadas para verificação funcional. A arquitectura pode ser usada para substituir a miriade de protocolos série e paralelo existentes com diferentes finalidades, contribuindo para unificar as interfaces entrada/saída. O invento pode ser usado para temporariamente substituir a entrada e saída de dados normal de um núcleo por estímulos e respostas usadas para teste, i.e., para detectar a presença de defeitos físicos que ocorram na fabricação. O invento pode ser usado para temporariamente substituir a entrada e saída de dados normal de um núcleo por estímulos e respostas usadas para estimular e detectar a presença de erros de projecto. O invento pode ser usado para temporariamente substituir a entrada e saída de dados normal de um núcleo por estímulos e respostas usadas para diagnóstico e correcção de problemas que ocorram durante a sua operação. A arquitectura pode ser usada para actualizar remotamente as versões de configuração e de firmware de sistemas em funcionamento. A arquitectura implementa acesso paralelo a núcleos, formando uma árvore de acesso paralelo no sistema, com raiz no núcleo de interface de rede. A arquitectura permite que o SI comunique com uma estação de trabalho ligada à rede de comunicações. O invento disponibiliza funções básicas de software para a estação de trabalho baseadas em protocolos de comunicação normalizados para 7 gestão da infra-estrutura de acesso ao núcleo e para comunicação com os restantes núcleos existentes no SI.
Breve descrição das figuras
Fig. 1- Panorâmica da Tecnologia de Acesso a Núcleos por Rede
Fig. 2- Hierarquia de acesso ao núcleo
Fig. 3- Interface externa simplificada do núcleo de interface de rede
Fig. 4- Diagrama de blocos do núcleo de interface de rede
Fig. 5- Detalhe da interface entre a núcleo de interface de rede e os núcleos do sistema
Fig. 6- Estrutura preferencial para uma palavra de ligação
Fig. 7- Detalhe da interface preferencial de um núcleo do utilizador para o núcleo de interface de rede
Fig. 8- Acesso aos registos dos núcleos filhos
Fig. 9- Pilha do protocolo de rede para a realização preferencial
Fig. 10- Formato dos pacotes CADP
Descrição detalhada da realização preferencial A Fig. 1 representa uma perspectiva geral do invento, o qual consiste em componentes de hardware e software. Os 8 componentes de hardware são aplicados a um SI do utilizador e consistem numa interface dedicada designada núcleo de interface de rede (NIR) e numa árvore de acesso a núcleos. A componente de software corre numa estação de trabalho do utilizador e consiste numa biblioteca de funções para acesso ao NIR, aplicações de software especificas para cada núcleo, as quais devem ser integradas numa aplicação do sistema.
Este invento permite que os núcleos embebidos num SI, não necessariamente processadores embebidos, sejam acedidos através de uma rede de comunicações. Na realização preferencial será utilizada a Ethernet, mas este invento aplica-se a outros tipos de redes, desde que um núcleo de interface de rede e aplicações de software equivalentes sejam desenvolvidos para o tipo de rede em questão.
Durante o normal funcionamento o NIR pode ser usado como se fosse um núcleo de controlo do acesso ao meio, em inglês, Médium Access Control (MAC), ligado a um processador embebido, utilizando um interface MAC (ver Fig. 1). O processador embebido normalmente implementa as camadas superiores da pilha de protocolos: IP (Internet Protocol), TCP (Transport Control Protocol), IJDP (User Datagram Protocol), etc.
Num modo especial de funcionamento, o modo de acesso a núcleos, o NIR comunica com núcleos no SI. estão ligados de ligações onde o par de link i n (í) . 0
Na Fig. 1, os núcleos IP1, IP3 e IP4 directamente ao NIR. Existem N pares directamente ligados aos núcleos individuais ligações i tem a designação llnk_out (1) e 9 NIR tem igualmente uma interface com o núcleo ou o chip externo responsável pela implementação da camada fisica do protocolo - tal como o dispositivo PHY que se pode ver na Fig. 1. O NIR é acedido remotamente através de um computador do utilizador, onde o controlador de software da arquitectura está instalado. O controlador é implementado no topo do protocolo UDP, usando comunicação por sockets. As funções mais básicas do controlador de software permitem enviar/receber pacotes de informação para/de um núcleo em particular no SI, incluindo o próprio NIR.
Alguns núcleos podem comunicar indirectamente com o NIR. Na
Fig. 1, o núcleo IP2 está indirectamente ligado ao NIR através do núcleo IP1. 0 esquema de acesso é recursivo formando um acesso em árvore: núcleos directamente ligados ao NIR são denominados núcleos de nível 1; núcleos ligados a núcleos de nível 1 são de nível 2, na generalidade núcleos ligados a núcleos de nível j são núcleos de nível j+1. Preferencialmente, a ligação entre um núcleo do nível j e os núcleos no nível j+1 devem imitar a ligação entre o NIR e os núcleos de nível 1. Na Fig. 2 está representada a árvore de acesso. A interface externa do NIR é representada na Fig. 3 e um diagrama simplificado do NIR está representado na Fig. 4.
Quer no acesso em modo normal quer no acesso aos núcleos, os blocos Ethernet e ARP (Address Resolution Protocol), tanto receptor (RX) como transmissor (TX) são utilizados. 10
Durante o normal funcionamento a interface habitual de MAC está activa e os pacotes Ethernet são encaminhados por norma a um processador embebido, o qual implementa as camadas superiores da pilha de protocolos: UDP/IP, TCP/IP, etc.
No modo de acesso a núcleos, a interface MAC está desactivada e os protocolos de camadas superiores são efectuados a nivel de hardware. São fornecidos, na realização preferencial, descrições dos blocos de hardware para versões simplificadas dos protocolos IP e UDP. A invenção adiciona uma camada particular à pilha de camadas, denominada Core Access Datagram Protocol (CADP), a qual é implementada pelos blocos CADP RX e TX conforme se mostra na Fiq. 4. 0 bloco CADP RX recebe informação da rede e fornece-se aos núcleos. 0 bloco CADP TX passa informação recebida dos núcleos à rede. Seguidamente faz-se uma descrição sistemática de cada bloco da Fig. 4:
Ethernet RX: Módulo da camada de ligação que permite receber informação utilizando o protocolo MAC e a extracção do ARP ou os pacotes IP dentro dos pacotes MAC. Internamente verifica a integridade dos dados através do CRC (Cyclic Redundancy Check) .
Ethernet TX: Módulo de ligação que permite a transmissão de informação utilizando o protocolo MAC através do encapsulamento de pacotes ARP ou IP adicionando cabeçalhos MAC. Internamente calcula o CRC e anexa-o ao endereço do pacote enviado. 11 ARP RX: Módulo da camada de ligação que permite receber mensagens utilizando ARP e detectar o tipo de mensagem (pedido ARP ou resposta ARP). Internamente este módulo mantém uma tabela de 2 endereços de Ethernet indexados pelo endereço de IP, a qual é consultada pelo módulo de ARP TX. ARP TX: Módulo da camada de ligação que permite enviar mensagens (pedido ARP ou resposta ARP) utilizando o protocolo ARP. Estas mensagens são enviadas a pedido dos módulos ARP RX (mensagens de resposta ARP) e IP TX (mensagens de pedidos ARP). IP RX: Módulo da camada de rede que permite receber pacotes de dados IP desencapsulando os pacotes UDP enviados como carregamentos de pacotes IP. Quaisquer outros tipos de carregamentos são ignorados. IP TX: Módul o de bloco de rede que permite enviar pacotes de dados IP inserindo cabeçalhos IP nos pacotes UDP provenientes do módulo UDP TX. UDP RX: Módulo da camada de transporte que permite receber dados através do protocolo UDP, extraindo os pacotes CADP desses dados. Estes pacotes são reencaminhados para o módulo CADP RX responsável pelas últimas operações na recepção de pacotes. UDP TX: Módulo da camada de transporte que permite enviar dados CADP encapsulados em pacotes UDP, através da inserção de cabeçalhos UDP nos pacotes vindos do módulo CADP TX. 12 CADP RX: Recebe pacotes GADP de dados e controlo vindos do módulo UDP RX. Este módulo analisa os campos CADP e faz o seguinte: (1) envia os dados acabados de receber para um dos interfaces línk out í e pede ao modulo CADP TX para enviar o pacote que confirmação respectivo; (2) descarta e reenvia a confirmação de pacotes retransmitidos; (3) informa o módulo CADP TX das confirmações recebidas; (4) reage a comandos CADP. CADP TX: Envia pacotes CADP de dados e controlo para o módulo UDP TX. Este módulo faz o seguinte: (1) recebe os dados das interfaces para os NPI e insere-os em pacotes CADP de até 240 palavras; (2) envia pacotes CADP de confirmação após pedido do módulo CADP RX; (3) verifica os pacotes de confirmação recebidos pelo CADP RX, reenviando o ultimo pacote quando se verificam inconsistências no pacote de confirmação recebido ou se o pacote de confirmação não for recebido dentro de um limite de tempo pré-estabelecido.
Os sinais ilustrados na Fig. 5 são utilizados para trocar informação entre o NIR e os núcleos. Para enviar informação através da ligação i, o NIR utiliza um sinal de pedido link_out_req_i, um sinal de confirmação link_out_ack_i e uma palavra de dados línk_out_word_í. A palavra de dados línk_out_word_í é válida apenas quando o sinal línk out req í está activo. O núcleo receptor deve gerar o sinal de confirmação línk out ack_i para validar os dados recebidos e permitir a recepção da próxima palavra. Para receber informação através da ligação i, o NIR utiliza um sinal de pedido línk in req i, um sinal de confirmação línk in ack i, e uma palavra de dados link_in_word_í. A palavra de dados é válida apenas quando o sinal de pedido línk ín req í está activo. Como o NIR pode estar ocupado 13 enviando ou reenviando um pacote anterior, o sinal link_in_ack_i é utilizado para confirmar ou não a última palavra recebida. Rajadas de dados são suportadas em ambas as direcções activando o sinal de confirmação de forma continua, onde o sinal de confirmação num ciclo corresponde ao sinal de pedido recebido no ciclo anterior. A estrutura preferencial de uma palavra de dados está ilustrada na Fig. 6. Esta é constituída por três campos: endereço, leitura/escrita e dados. 0 único campo obrigatório é o campo de dados. Endereço e leitura/escrita podem ser omitidos se não forem necessários. Cada ligação tem como destino um conjunto de registos que podem ser acedidos para leitura e escrita. Se o NIR enviar um pedido através da ligação link_out_i ele irá colocar o endereço de leitura no campo de endereço e definir o sinal de leitura/escrita de acordo com a operação desejada. O núcleo ao receber este pedido, irá responder colocando o valor do registo endereçado no campo de dados do link_in_i. O tamanho em bits dos campos de endereço não está definido, e depende apenas das necessidades das entidades que estão a trocar esses dados. um
Os sinais que ligam um núcleo em particular ao NIR são ilustrados na Fig. 7. Nas palavras que chegam ao núcleo e são enviadas pelo núcleo temos os três campos recomendados: endereço, escrita/1eitura, e dados. A ligação de entrada pode escrever ou ler os diferentes endereços. No caso de uma leitura, o núcleo retorna os dados lidos no campo de dados da ligação de sarda. 0 endereço de sarda pode ser utilizado, por exemplo, para distinguir as respostas a pedido recebido de um pedido efectuado pelo núcleo. 14
Cada núcleo inclui obrigatoriamente um registo com informação de identificação (Core ID Register) que pode ser endereçado para leitura em cada ligação utilizada por esse núcleo. Este registo deve identificar univocamente o núcleo, e a ligação, no caso de o núcleo possuir mais de uma ligação de entrada. Outros registos endereçáveis, recomendados mas não obrigatórios, são os seguintes: 1. Registos de Controlo: utilizados para receber comandos da interface de acesso núcleo. 2. Registos de Estado: utilizados para informar sobre o estado do núcleo 3. Registos de Configuração: utilizados para estabelecer o modo de operação a ser utilizado nas operações seguintes 4. Registos de Dados: utilizados para enviar/receber informação funcional ou de verificação para/de os núcleos 5. Outros registos do utilizador O registo de identificação do núcleo deve também informar sobre o número de núcleos de propriedade intelectual que se encontram ligados ao próprio, com a finalidade de esses serem potencialmente acedidos. Notar que o esquema de acesso que se está a propor é do tipo hierárquico como mostrado na Fig. 2. No caso em que um núcleo de propriedade intelectual esteja ligado a outros núcleos filhos ou pais, é imperativo que este tenha de conter um outro registo, o Registo de Selecção de Filho, que possa ser escrito de forma a ser seleccionado um núcleo filho específico a que se pretenda aceder. A sequência de passos necessários para aceder a um núcleo filho é ilustrada na Fig. 8. Em primeiro lugar o Registo de Identificação do núcleo pai deverá ser 15 lido para identificação do número de ligações a núcleos filhos. Em segundo lugar, o número do núcleo filho é escrito no Registo de Selecção de Filho para escolher o Núcleo Filho gue se pretende aceder. Em terceiro lugar, a partir desse momento o NIR passa a aceder aos registos no interior do núcleo filho, e não aos do núcleo pai. Em quarto lugar, para voltar a ganhar acesso ao núcleo pai, bastará escrever o número -1 no Registo de Selecção de Filho do próprio núcleo filho. A partir deste momento o NIR comunica novamente com o núcleo pai. A forma como o núcleo filho é acedido pelo NIR não é especificada neste documento, mas poderá ser efectuada através de um comportamento transparente por parte do núcleo pai ou através de registos em série (pipeline). A hierarquia das camadas do protocolo é mostrada na Fig. 9, começando pela camada Ethernet e acabando na camada CADP. A camada física foi excluída para simplificação. No caminho de recepção, as camadas retiram sucessivamente os cabeçalhos e os rodapés dos pacotes, processando a informação contida nos mesmos, até que a informação chegue aos núcleos na forma de palavras de ligação. No caminho de transmissão, a informação é enviada a partir dos núcleos na forma de palavras de ligação que por sua vez são transformada pelas camadas, onde vão sendo adicionados os cabeçalhos e os rodapés respectivos a cada camada.
Os formatos possíveis do pacote CADP são mostrados na Fig. 10. Existem no momento três formatos para esses pacotes: o pacote de palavra única, o pacote de palavras múltiplas e o pacote de envio de comandos. Os campos de um pacote CADP são explicados no texto em baixo: 16 Número do Pacote [16 bits]: todos os pacotes são numerados para evitar a perda de dados usando um mecanismo simples de pedido e confirmação (handshaking).
Tipo cio Pacote [16 bits]: Identifica a função do pacote, que correntemente poderá ser uma das seguintes: o Pacote de palavra única - contem uma única palavra de ligação de 48 bits. o Pacote de palavras múltiplas - Contém até 240 palavras de ligação. o Início de Ligação - inicia o NIR para comunicação, colocando-o em modo de acesso aos núcleos. Este tipo de pacote apenas pode ter como fonte uma estação de trabalho (computador) de um utilizador, o Fim de Ligação - desactiva o NIR para fins de comunicação, colocando-o em modo normal de operação. Este tipo de pacote apenas pode ter como fonte uma estacão de trabalho de um utilizador.
No futuro podem ser adicionados outros tipos de pacotes de forma a implementar novas funções.
Identificação da Ligação [16 bits]: identifica a fonte ou o destino da ligação.
Palavra de ligação [48 bits]: contem a informação recebida ou entregue à ligação. 0 NIR é acedido remotamente a partir de uma estacão de trabalho onde o programa que controla o NIR está instalado. 0 controlador está implementado no topo do protocolo UDP, usando comunicações baseadas em sockets. 17 0 pseudo código das funções básicas do programa que controla o NIR é: CADP^send (buffer_out){ //buffer out is {packet_type, packet^number, link_id, link_data}; while (!(buffer^in.packet_number — buffer_out.packet_number && buffer_in.packet_type == ack)){ send (socket, buffer_out); while (receive (socket, buffer_in) == 0) sleep(TIMEOUT); } buffer_out .packet_number ++; CADP_ receive (buffer_in){ while (receive (socket, buffer_in)){ if( buffer_in.packet^type != ack ) break; sleep(TIMEOUT); } buffer_out = {ack, buffer^in.packet number}; send (socket, buffer_out);
Este pseudo código descreve as funções CADP send() e CADP_receive () para enviar/receber pacotes de informação para/de um núcleo particular de um SI, incluindo o próprio NIR. As funções CADP_send() e CADP_receíve () usam as funções de baixo nível send() e receive () do sistema operativo, que utilizam comunicação baseada em sockets e 18 recorrem ao conhecido protocolo UDP. A implementação das camadas ARP, IP e UDP no hardware do NIR é a que permite mais facilmente uma comunicação com ele utilizando operações padrão de chamadas ao sistema numa estação de trabalho remota. Utilizando um protocolo de comunicação de baixo nível é possível reduzir o hardware necessário no NIR. No entanto, isto requer o conhecimento detalhado do controlador da interface de rede da estação de trabalho, o que pode ir para além do que o sistema operativo oferece e tornar-se, consequentemente, dependente do sistema. A utilização das funções do sistema operativo garante a independência do sistema. A função C/]iDP_send () assume que o pacote a ser enviado já se encontra formatado e pronto na estrutura buffer_out. Envia o pacote para fora e espera até receber o pacote de confirmação de recepção desse pacote: verifica se o pacote recebido é do tipo ack e se o número corresponde ao número do pacote enviado para fora. Quaisquer outros tipos de pacote recebidos entretanto são descartados, e após TIMEOUT segundos tenta reenviar o pacote. Este processo é repetido até receber o pacote de confirmação de recepção do pacote que se está a transmitir. A função CADP receive() tenta receber um pacote que não seja um pacote de confirmação de recepção. Se for um pacote de confirmação de recepção este será descartado e após TIMEOUT segundos tenta receber de novo um pacote que não seja de confirmação de recepção. Depois receber e tratar um pacote que não seja de confirmação de recepção a função envia um pacote de confirmação de recepção correspondente ao pacote que acabou de receber. 19
Funções de mais alto nivel para controlo do dispositivo NIR podem ser construídas a partir das funções básicas CADP_send() e CADP_receíve () . Algumas funções de mais alto nivel importantes são: • set_NIR_mode(mode): altera o NIR para o modo de acesso a núcleos ou modo de operação normal conforme o valor do argumento mode
• list_level l_cores() : lista os identificadores (IDs) dos núcleos que se encontram conectados directamente às ligações do NIR
• list_children (link_id) : lista os identificadores dos núcleos filho que estão ligados ao núcleo que se encontra actualmente conectado à ligação link id do NIR • push_path (link_id, child_link_id): altera o núcleo actualmente conectado à ligação link_id para o núcleo filho conectado ao chíld link id • pop_path (link id): altera o núcleo actualmente conectado na ligação link_id para o seu núcleo pai • extract access tree(): pesquisa todos os nós e ramificações da árvore de acesso e constrói uma representação dessa árvore compreensível pelo utilizador.
No futuro novas funções avançadas podem ser construídas utilizando a biblioteca de funções existente.
Referênci as [1] IEEE Std 1149.1 Standard Test Access Port and
Boundary-Scan Architecture 20 [2] Philips Semiconductors, "The I2C Bus
Specification", Version 2.1, January 2000.
[3] Motorola, SPI bus specifications [4] Xilinx, "Architecting Systems for Upgradabi1ity with IRL (Internet Reconfigurable Logic)", application note XAPP412, Version 1.0, June, 2001.
[5] IEEE Std 1500 Standard for Embedded Core Test
Lisboa, 12 de Junho de 2007
Claims (14)
1 HEIVINDICAÇÕES 1. A arquitectura de acesso a núcleos por rede para aceder a núcleos de propriedade intelectual individuais em sistemas integrados, para finalidades funcionais e não funcionais, através de uma rede de comunicação, caracterizada por incluir: • o Núcleo de Interface de Rede que em funcionamento normal é utilizado como um vulgar núcleo de controlo de acesso ao meio ligado a um processador embebido que implementa as camadas mais altas do protocolo de comunicação: protocolo de Internet, protocolo de controlo de transporte, protocolo de datagrama do utilizador, utilizando um vulgar interface de controlo do acesso ao meio e no modo de operação de acesso ao núcleo comunica com núcleos de propriedade intelectual do sistema integrado; tem ainda uma interface para o núcleo ou para um circuito externo responsável pela implementação da camada física do protocolo; • uma árvore de acesso a núcleos de propriedade intelectual onde os núcleos que estão directamente ligados ao NIR são designados por núcleos de nível 1 e, generalizando, os núcleos ligados a núcleos de nível j são núcleos de nível j+1; • uma estação de trabalho que consiste numa biblioteca de funções de acesso a núcleos e aplicações em software remotas de núcleos de propriedade intelectual individuais, que acedem remotamente ao software que controla a arquitectura de acesso e é implementada em cima do 2 protocolo de datagrama do utilizador, utilizando uma comunicação baseada em sockets.
2. 0 núcleo de interface de rede, de acordo com a reivindicação 1, caracterizada por o protocolo de pilha implementado no hardware consistir numa camada superior de protocolo projectada para interagir com outros núcleos, à excepção de processadores embebidos, chamado Protocolo de Datagrama de Acesso ao Núcleo, CADP, que consiste num bloco CADP Rx que entrega a informação recebida da rede aos núcleos e num bloco CADP Tx que entrega a informação recebida dos núcleos à rede.
3. A camada superior do protocolo, de acordo com a reivindicação 2, caracterizada por compreender pacotes de informação constituídos pelos seguintes campos: tipo do pacote, número do pacote, identificador de ligação e pelo menos uma palavra da ligação.
4. A árvore de acesso a núcleos, de acordo com a reivindicação 1, caracterizada por em cada ramo da árvore consistir numa interface paralela bidireccional, com sinais de pedido e confirmação em cada sentido.
5. A interface paralela de acordo com a reivindicação 4, caracterizada por cada palavra ser constituída por campos de endereço, de escrita/leitura e de dados.
6. A arquitectura de acesso, de acordo com a reivindicação 1, caracterizada por os núcleos 3 acessíveis conterem obrigatoriamente um registo de identificação do núcleo e um registo de selecção de filho para fins de acesso à informação dos filhos ou do pai, à excepção do núcleo da interface de rede, na árvore de acesso.
7. A arquitectura de acesso, de acordo com a reivindicação 1, caracterizada por ser permitido estabelecer ou desfazer um caminho de comunicação da raiz da árvore do núcleo de interface de rede ao núcleo alvo escrevendo no registo de selecção de filho de cada núcleo no trajecto.
8. Uma arquitectura de software que funciona num terminal de trabalho remoto do utilizador, de acordo com a reivindicação 1, caracterizada por permitir que aplicações do utilizador naveguem através da arquitectura de acesso, descobrindo núcleos ligados à árvore de acesso, e permitindo que aplicações especificas a esses núcleos comuniquem com eles.
9. A arquitectura de software, de acordo com a reivindicação 8, caracterizada por compreender funções básicas de controlador para enviar e receber pacotes para arquitectura de acesso.
10. A arquitectura de software, de acordo com a reivindicação 9, caracterizada por compreender funções de mais alto nível que as funções básicas do controlador, incluindo funções para programar o modo de operação do núcleo de interface de rede; listar núcleos do nível 1; listar os filhos do núcleo alvo; 4 obter a árvore de acesso completa; ligar a um filho de um núcleo; e retomar a ligação com o núcleo pai.
11. O núcleo de interface de rede, de acordo com a reivindicação 1, caracterizado por compreender um protocolo de rede de alta velocidade, incluindo uma rede local Ethernet multi-giga bit.
12. A arquitectura de acesso a núcleos por rede, de acordo com a reivindicação 1, caracterizado por os núcleos acessíveis conterem registos de configuração de múltiplo endereçamento, que permitem reconfiguração parcial do núcleo efectuando a reconfiguração acedendo aos núcleos separadamente.
13. A arquitectura de acesso a núcleos por rede, de acordo com a reivindicação 1, caracterizado por os núcleos acessíveis serem acedidos usando os seus relógios de sistema internos, não necessitando de nenhum relógio específico para propósitos de configuração, simplificando deste modo a reconfiguração durante a execução, se for necessária.
14. A arquitectura de acesso a núcleos, de acordo com a reivindicação 1, caracterizado por os núcleos de propriedade intelectual serem acedidos para configuração, verificação ou propósitos de teste, sem hardware externo para detecção de erros, acessórios de teste, invólucros ou cabos especiais. Lisboa, 12 de Junho de 2007
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PT103744A PT103744A (pt) | 2007-05-16 | 2007-05-16 | Arquitectura de acesso ao núcleo de rede. |
EP08008501A EP2003571A3 (en) | 2007-05-16 | 2008-05-06 | Network core access architecture |
US12/121,194 US8019832B2 (en) | 2007-05-16 | 2008-05-15 | Network core access architecture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PT103744A PT103744A (pt) | 2007-05-16 | 2007-05-16 | Arquitectura de acesso ao núcleo de rede. |
Publications (1)
Publication Number | Publication Date |
---|---|
PT103744A true PT103744A (pt) | 2008-11-17 |
Family
ID=39892233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PT103744A PT103744A (pt) | 2007-05-16 | 2007-05-16 | Arquitectura de acesso ao núcleo de rede. |
Country Status (3)
Country | Link |
---|---|
US (1) | US8019832B2 (pt) |
EP (1) | EP2003571A3 (pt) |
PT (1) | PT103744A (pt) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112087421A (zh) * | 2020-07-27 | 2020-12-15 | 北京空间机电研究所 | 一种多路串行图像数据到千兆网口快速输出的转换系统及方法 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005089241A2 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method for providing object triggers |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
US8271980B2 (en) | 2004-11-08 | 2012-09-18 | Adaptive Computing Enterprises, Inc. | System and method of providing system jobs within a compute environment |
US8631130B2 (en) | 2005-03-16 | 2014-01-14 | Adaptive Computing Enterprises, Inc. | Reserving resources in an on-demand compute environment from a local compute environment |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
CA2603577A1 (en) | 2005-04-07 | 2006-10-12 | Cluster Resources, Inc. | On-demand access to compute resources |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US8473661B2 (en) * | 2009-08-14 | 2013-06-25 | Cadence Design Systems, Inc. | System and method for providing multi-process protection using direct memory mapped control registers |
US9876735B2 (en) | 2009-10-30 | 2018-01-23 | Iii Holdings 2, Llc | Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect |
US8599863B2 (en) | 2009-10-30 | 2013-12-03 | Calxeda, Inc. | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric |
US9077654B2 (en) | 2009-10-30 | 2015-07-07 | Iii Holdings 2, Llc | System and method for data center security enhancements leveraging managed server SOCs |
US9069929B2 (en) | 2011-10-31 | 2015-06-30 | Iii Holdings 2, Llc | Arbitrating usage of serial port in node card of scalable and modular servers |
US20130107444A1 (en) | 2011-10-28 | 2013-05-02 | Calxeda, Inc. | System and method for flexible storage and networking provisioning in large scalable processor installations |
US9465771B2 (en) | 2009-09-24 | 2016-10-11 | Iii Holdings 2, Llc | Server on a chip and node cards comprising one or more of same |
US20110103391A1 (en) | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
US9054990B2 (en) | 2009-10-30 | 2015-06-09 | Iii Holdings 2, Llc | System and method for data center security enhancements leveraging server SOCs or server fabrics |
US9680770B2 (en) | 2009-10-30 | 2017-06-13 | Iii Holdings 2, Llc | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric |
US9648102B1 (en) | 2012-12-27 | 2017-05-09 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US9311269B2 (en) | 2009-10-30 | 2016-04-12 | Iii Holdings 2, Llc | Network proxy for high-performance, low-power data center interconnect fabric |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8395416B2 (en) * | 2010-09-21 | 2013-03-12 | Intel Corporation | Incorporating an independent logic block in a system-on-a-chip |
WO2013095411A1 (en) * | 2011-12-21 | 2013-06-27 | Intel Corporation | INCORPORATING ACCESS CONTROL FUNCTIONALITY INTO A SYSTEM ON A CHIP (SoC) |
CN104811431B (zh) | 2014-01-29 | 2018-01-16 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6611531B1 (en) | 1998-09-30 | 2003-08-26 | Cisco Technology, Inc. | Method and apparatus for routing integrated data, voice, and video traffic |
US6446192B1 (en) * | 1999-06-04 | 2002-09-03 | Embrace Networks, Inc. | Remote monitoring and control of equipment over computer networks using a single web interfacing chip |
US6993740B1 (en) * | 2000-04-03 | 2006-01-31 | International Business Machines Corporation | Methods and arrangements for automatically interconnecting cores in systems-on-chip |
US6877122B2 (en) * | 2001-12-21 | 2005-04-05 | Texas Instruments Incorporated | Link instruction register providing test control signals to core wrappers |
US20030229714A1 (en) | 2002-06-05 | 2003-12-11 | Amplify.Net, Inc. | Bandwidth management traffic-shaping cell |
GB2395639A (en) * | 2002-11-21 | 2004-05-26 | Matsushita Electric Ind Co Ltd | System operable in either architecture reconfiguration mode or processing mode depending on the contents of a frame header |
US7324458B2 (en) | 2003-03-21 | 2008-01-29 | Intel Corporation | Physical layer loopback |
JP2007524947A (ja) * | 2004-02-17 | 2007-08-30 | アンスティテュ ナシオナル ポリテクニーク ド グレノーブル | 集積回路のipコアのテスト手段のリモート制御を行うことができる通信手段を備える集積回路チップ |
US7626931B2 (en) | 2005-03-23 | 2009-12-01 | Microsoft Corporation | Systems and methods for coordinating wireless traffic for heterogeneous wireless devices |
US7308668B2 (en) * | 2005-06-30 | 2007-12-11 | International Business Machines Corporation | Apparatus and method for implementing an integrated circuit IP core library architecture |
US7401315B2 (en) * | 2005-11-14 | 2008-07-15 | Avago Technologies General Ip Pte Ltd | System and method for implementing package level IP preverification for system on chip devices |
-
2007
- 2007-05-16 PT PT103744A patent/PT103744A/pt not_active IP Right Cessation
-
2008
- 2008-05-06 EP EP08008501A patent/EP2003571A3/en not_active Withdrawn
- 2008-05-15 US US12/121,194 patent/US8019832B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112087421A (zh) * | 2020-07-27 | 2020-12-15 | 北京空间机电研究所 | 一种多路串行图像数据到千兆网口快速输出的转换系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080288652A1 (en) | 2008-11-20 |
EP2003571A2 (en) | 2008-12-17 |
US8019832B2 (en) | 2011-09-13 |
EP2003571A3 (en) | 2010-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
PT103744A (pt) | Arquitectura de acesso ao núcleo de rede. | |
US7444454B2 (en) | Systems and methods for interconnection of multiple FPGA devices | |
US10185672B2 (en) | Multiprocessor system with improved secondary interconnection network | |
US7500046B1 (en) | Abstracted host bus interface for complex high performance ASICs | |
US11907140B2 (en) | Serial interface for semiconductor package | |
US9665453B2 (en) | Launch vehicle testing system | |
US20140233566A1 (en) | Directed route load/store packets for distributed switch initialization | |
US20050223303A1 (en) | Memory channel self test | |
US11294602B2 (en) | Ethernet enabled solid state drive (SSD) | |
BRPI0709055A2 (pt) | processo de comunicação de dados entre os sistemas de tratamento heterogêneos conectados em rede local e sistema de comunicação utilizando este processo | |
Osterloh et al. | Architecture verification of the SoCWire NoC approach for safe dynamic partial reconfiguration in space applications | |
US8949105B2 (en) | Hardware interface board for connecting an emulator to a network | |
Cisco | CIP Microcode Release Note and Upgrade Instructions | |
JP2021036425A (ja) | テスト機能を持つ装置およびそのテストの方法 | |
Johansson et al. | Fakernet--small and fast FPGA-based TCP and UDP communication | |
Kamp | AXI over Ethernet; a protocol for the monitoring and control of FPGA clusters | |
RU2509349C2 (ru) | Устройство массовой памяти и система хранения данных | |
Yuehua et al. | Distributed storage system for satellite platform based on SpaceWire network: SpaceWire missions and applications, short paper | |
Michel et al. | The SoCWire protocol (SoCP): A flexible and minimal protocol for a Network-on-Chip | |
US20060222004A1 (en) | Methods and apparatus for transferring data | |
US20240329129A1 (en) | Technologies for a unified test and debug architecture | |
Liu et al. | Building an Onboard Software Reconfiguration Network Based on SpaceWire | |
WO2024205614A1 (en) | Technologies for a unified test and debug architecture | |
Nejedlý | Simulink External Mode for Rapid Prototyping Platform | |
Petrochenkov et al. | Verification of system on chip integrated communication controllers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
BB1A | Laying open of patent application |
Effective date: 20070710 |
|
MM3A | Annulment or lapse |
Free format text: LAPSE DUE TO NON-PAYMENT OF FEES Effective date: 20131118 |