BRPI0009250B1 - aparelho de interface elástica, método para o mesmo e respectivo sistema - Google Patents

aparelho de interface elástica, método para o mesmo e respectivo sistema Download PDF

Info

Publication number
BRPI0009250B1
BRPI0009250B1 BRPI0009250A BR0009250A BRPI0009250B1 BR PI0009250 B1 BRPI0009250 B1 BR PI0009250B1 BR PI0009250 A BRPI0009250 A BR PI0009250A BR 0009250 A BR0009250 A BR 0009250A BR PI0009250 B1 BRPI0009250 B1 BR PI0009250B1
Authority
BR
Brazil
Prior art keywords
data
clock
output
input
latch
Prior art date
Application number
BRPI0009250A
Other languages
English (en)
Other versions
BR0009250A (pt
Inventor
Daniel Mar Dreps
Frank David Ferraiolo
Kevin Charles Gower
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of BR0009250A publication Critical patent/BR0009250A/pt
Publication of BRPI0009250B1 publication Critical patent/BRPI0009250B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/104Delay lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Telephone Function (AREA)
  • Chair Legs, Seat Parts, And Backrests (AREA)
  • Pens And Brushes (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Absorbent Articles And Supports Therefor (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)
  • Communication Control (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Electric Clocks (AREA)

Abstract

patente de invenção: "aparelho de interface elástica e método para o mesmo". um aparelho e método de interface elástica são implementados. a interface elástica inclui uma pluralidade de unidades de armazenamento para armazenar um fluxo de valores de dados, onde cada unidade de armazenamento seqüencialmente armazena membros dos respectivos conjuntos de valores de dados. cada valor de dados é armazenado para um número predeterminado de períodos de um clock local. o circuitamento de seleção pode ser acoplado com as unidades de armazenamento para selecionar os respectivos valores de dados a partir do fluxo de dados para armazenamento na unidade de armazenamento correspondente. os dados são seqüencialmente emitidos a partir de cada unidade de armazenamento em sincronia com o clock local em um ciclo alvo do clock local.

Description

Relatório Descritivo da Patente de Invenção para: "APARELHO DE INTERFACE ELÁSTICA, MÉTODO PARA O MESMO e RESPECTIVO SISTEMA".
Campo Técnico A presente invenção refere-se em geral a sistemas de processamento de dados e em particular, à interface entre chips de circuito integrado dinâmicos ou sincronizados. Informação de Fundamento Os sistemas de processamento de dados modernos requerem a transferência de dados entre circuitos dinâmicos ou sincronizados em vários chips no sistema. Por exemplo, os dados podem precisar ser transferidos entre unidades centrais de processamento (CPUs) em um sistemas com várias CPUs, ou entre uma CPU e o sistema de memória que pode incluir um controlador de memória e um cache "off-chip". As transferências dos dados são sincronas e os dados são esperados de serem entregues para o conjunto de circuitos no chip em um ciclo predeterminado do sistema. À medida que as velocidades da CPU têm aumentado, a velocidade da interface entre os chips (tempo de ciclo do barramento) tem se tornado o constrangimento de limitação à medida que a latência através da interface excede o periodo de clock do sistema. De modo a manter a sincronização do sistema, o projetista do sistema deve diminuir a velocidade do barramento de modo que o ciclo no qual os dados chegam, não seja ambíguo.
Isto pode ser adicionalmente entendido pela referência à figura IA, na qual é representada, em forma de diagrama de blocos, uma interface da técnica anterior entre dois chips de circuito integrado, o chip 102 e o chip 104, em um sistema de processamento de dados. Cada um dos chips 102 e 104 recebe um clock de referência 106 acoplado com um circuito de bloqueio de fase, PLL 108. O PLL 103 gera um clock local, clock 110, no chip 102 e o clock 111 no chip 104, bloqueado para o clock de referência 106. O clock de referência 106 proporciona uma referência de "tempo zero", e pode ser declarado para vários períodos dos clocks locais 110 e 111, dependendo da multiplicação do PLL 108. O clock do barramento 113 é derivado a partir do clock de referência 106 pela divisão do clock local 110 por um número inteiro predeterminado, N, no divisor 112. Os dados a serem enviados a partir do chip 102 para o chip 104 são mantidos ("latched") em uma borda predeterminada do clock local dividido 111 e direcionado para a linha de dados 116 via o driver 18. Os dados são recebidos no receptor (RX) 120 e capturados no latch 132 em uma borda predeterminada do clock local dividido 110 no chip 104. Devido à separação física do chip 102 e do chip 104, os dados aparecem na entrada 124 do latch de destino 122 retardados em tempo. (A contribuição do RX 120 para a latência é tipicamente pequena em relação ao retardo devido à transferência dos dados). 0 retardo de tempo é referido como latência e será discutido adicionalmente em conjunto com a figura 1B.
De forma similar, o chip 104 envia dados para o chip 102 via a linha de dados 126. Os dados a serem enviados do chip 104 são mantidos no latch 128 em uma borda predeterminada do sinal de saida a partir do divisor 130 que divide o clock local 111 por N. Os dados são direcionados para a linha de dados 126 via o driver 132 e capturados no latch destino 134 via o receptor 136. A entrada de dados para o chip 102 é capturada dentro do latch dos dados 134 em uma borda predeterminada de uma saida do divisor 130 que também divide o clock local 110 por N.
Na figura 1B, é ilustrado um diagrama de sincronização ilustrativo para a interface 100 da figura IA, de acordo com a técnica anterior. Os dados 115 enviados a partir do chip 104 são mantidos, no latch 114, em uma borda ascendente, tl, do clock dc barramento 113. O clock do barramento 113 é gerado pela divisão do clock local 110 por N nos divisores 112 e 130 no chip 102. Seguindo-se a um retardo pela latência, Tl, os dados 117 aparecem em uma entrada para o latch destino 122 e são mantidos na borda ascendente t2 do ciock do barramento 123. 0 clock do barramento 123 é gerado pela divisão do clock local 111 por N nos divisores 112 e 130 no chip 104. Portanto, na técnica anterior, de acordo com a figura 1B, os dados 125 aparecem no chip 104 um ciclo do barramento seguindo-se a sua emissão a partir do chip 102. Na figura 1B, existe um desvio zero entre o clock do barramento 113 e o clock do barramento 123.
Se, na interface 100 na figura IA, a velocidade do clock do barramento for aumentada, a latência pode exceder um ciclo do clock do barramento. Então pode resultar o diagrama de sincronização ilustrativo ilustrado na figura 1C. Como antes, os dados 115 foram mantidos na borda tl do clock do barramento 113. Os dados 117 aparecem na entrada 124 do latch destino 122 após o tempo de latência, Tl, que é mais longo do que o periodo do clock do barramento 113 e do clock do barramento 123. Os dados 117 são mantidos na borda t3 do clock do barramento 123 no chip 104 para proporcionar os dados 125 no chip 104. Se a interface 100 entre os chips 102 e 104 representar a interface possuindo a latência mais longa entre uma pluralidade de interfaces entre o chip 102 e a pluralidade de outros chips dentro de um sistema de processamento de dados, então a latência de dois ciclos ilustrada na figura 1C representa o ciclo "alvo" para a transmissão e captura dos dados entre os chips, tal como o chip 102 e o chip 104. O ciclo alvo é o ciclo predeterminado no qual os dados são esperados pelo chip. As interfaces possuindo uma latência mais curta podem precisar ser enchidas, de acordo com a técnica anterior, de modo a garantir a operação síncrona. O enchimento garante que caminhos mais rápidos na interface 100 possuam latências maiores do que um ciclo do clock do barramento e menos do que dois ciclos do clock do barramento, por meio do qual a sincronização dos dados pode ser mantida.
Isto pode ser adicionalmente entendido pela referência agora à figura 1D, ilustrando uma pluralidade 101 de chips, chips 102, 103 e 104. O chip 102 e o chip 104 estão acoplados no caminho "lento" 152 possuindo uma latência longa, Ts. O chip 103 está acoplado com o chip 102 via o caminho "rápido" 154 possuindo um periodo de latência curto, TF. Um caminho "nominal" acoplando a pluralidade 101 de chips 102 até 105 possui a latência TM, tal como a latência no caminho 156 entre o chip 102 e o chip 105. O diagrama de sincronização na figura 1E proporciona detalhes adicionais. A figura 1E ilustra um diagrama de sincronização similar a este na figura 1C no qual o ciclo alvo para a captura dos dados dentro de um chip de recepção é dois ciclos do barraraento. Na figura 1E, a latência nominal, TM, é apresentada como sendo 1,5 ciclos do barraraento, a latência do caminho rápido, TF, é ilustrada como sendo apenas maior do que um ciclo do barraraento e a latência do caminho lento, TS, é apresentada como sendo ligeiramente menor do que dois ciclos do barraraento. Neste caso, cada uma da pluralidade de chips 101 na figura 1D captura dados no ciclo alvo, dois ciclos do barramento após a emissão dos dados.
Entretanto, se o caminho rápido for mais curto, ilustrado pela latência do caminho rápido, a sincronização dos dados é perdida. Neste caso, os dados chegam no chip 103 antes da transição t2 do clock do barramento do chip 103 como ilustrado pela parre rracejada dos dados 117 no chip 103 e são mantidos dentro do chip 103 após um ciclo do barramento. Isto é ilustrado pela parte tracejada dos dados 125 no chip 103. De modo a restaurar a sincronização, o caminho rápido, caminho 154, entre os chips 102 e 103 iriam requerer o enchimento para aumentar a latência do caminho rápido, a partir de TF. Por consequência, a sincronização de tal interface da técnica anterior é sintonizada com uma faixa de operação especifica, um comprimento particular da interface e somente é válida para a tecnologia para a qual o projeto foi cronometrado e analisado.
Da mesma forma, o aumento da velocidade do clock dos chips na figura 1D irá resultar em uma perda de sincronização. Isto pode ser entendido pela consideração de um exemplo explicito. 0 tempo do ciclo do clock local que primeiro é considerado possui um período de 1 nanosegundo (ns). O clock do barramento irá possuir um período que é um múltiplo fixo, que será considerado como sendo duas vezes o do clock local. Deixe a latência nominal da interface, TM, ser 3 ns com +/- 0,99 ns de variação de sincronização, isto é, o melhor caso ou caminho rápido, Tr, é 2 ns e o pior caso, ou caminho lento, Ts, é 4 ns, Os dados irão chegar após dois ns e antes de quatro ns. Por consequência, a interface irá operar sob todas as condições, isto é, é garantido que os dados irão chegar após o primeiro ciclo do barramento e antes do segundo ciclo do barramento. Entretanto, se a velocidade dos chips for aumentada para um. tempo de ciclo de 0,9 ns, o tempo do ciclo do barramento é alterado para 1,8 ns . De modo a garantir tempo suficiente para os dados se propagarem através da interface sob as condições do pior caso, os dados não devem ser capturados antes de 2,5 ciclos do barramento, ou 4,5 ns, porque dois ciclos do barramento é menor do que o tempo do caminho lento, TS, ou 4 ns. Então, de modo a operar um ciclo do barramento de 1,8 ns, os dados mais rápidos que podem chegar são 1,5*1,8 = 2,7 ns (um ciclo do barramento mais cedo), para garantir que os dados cheguem no mesmo ciclo para todas as condições. Entretanto, os dados mais antigos que podem chegar a partir do números de latência acima é via o caminho rápido com um Tr de 3 ns a 0,99 ns = 2,01 ns. Portanto, a operação em um tempo do ciclo do barramento de 1,8 ns não pode ser suportada em um projeto sincrono convencional. De modo a operar de forma sincrona, a proporção do barramento para o processador deve ser diminuída para pelo menos 3:1 e operar em um tempo de ciclo de 2,7 ns (2,7 ns * 1,5 ciclos = 4,05 ns e 2,7 ns * 0,5 ciclos = 1,35 ns) que pesa contra o aumento na velocidade do clock.
Portanto, existe uma necessidade na técnica por um aparelho e método para acomodar as transferências de dados entre chips em um sistema de processamento de dados possuindo velocidades de clock crescentes. Em particular, existe uma necessidade por métodos e aparelhos para garantir a sincronização dos dados entre os chips nos sistemas de processamento de dados nos quais as latências do caminho variam acima de mais do que um ciclo do barramento e nos quais a necessidade de enchimento do hardware especifico do projeto seja eliminada. É um objetivo da presente invenção proporcionar uma técnica que supere os inconvenienues acima.
Sumário da Invenção De acordo com a presente invenção, os inventores proporcionam um aparelho de interface compreendendo: um primeiro dispositivo de armazenamento operável para armazenar um primeiro conjunto de valores de dados; um segundo dispositivo de armazenamento operável para armazenar um segundo conjunto de valores de dados; conjunto de circuitos acoplado com os ditos primeiro e segundo dispositivos de armazenamento operável para sequencialmente emitir um primeiro valor de dados a partir dc dito primeiro dispositivo de armazenamento e um segundo valor de dados a partir do dito segundo dispositivo de armazenamento em resposta a pelo menos um sinal de controle, onde os ditos primeiro e segundo dispositivos de armazenamento mantêm valores de dados para um número predeterminado de ciclos de um primeiro clock.
Além disso, de acordo com a presente invenção, os inventores proporcionam um método para fazer a interface de dispositivos de circuito integrado compreendendo as etapas de: armazenar um primeiro conjunto de valores de dados em um primeiro elemento de armazenamento, onde cada valor de dados do dito primeiro conjunto é armazenado para um número predeterminado de ciclos de um primeiro clock; armazenar um segundo conjunto de valores de dados em um segundo conjunto de elementos de armazenamento, cada valor de dados do dito segundo conjunto é armazenado para um número predeterminado de ciclos de um primeiro clock; e sequencialmente emitir um primeiro valor de dados a partir do dito primeiro dispositivo de armazenamento e um segundo valor de dados a partir do dito segundo dispositivo de armazenamento em resposta a pelo menos um sinal de controle. O dito anteriormente esboçou um tanto amplamente os aspectos e as vantagens técnicas da presente invenção de modo que a descrição detalhada da invenção que se segue pode ser melhor entendida. Aspectos e vantagens adicionais da invenção serão descritos daqui para frente, os quais formam o assunto das reivindicações da invenção.
Breve Descrição dos Desenhos Para um entendimento mais completo da presente invenção e das vantagens da mesma, é agora feita referência às descrições seguintes feitas em conjunto com os desenhos acompanhantes, nos quais: A figura IA ilustra uma interface do chip de acordo com a técnica anterior; A figura 1B ilustra esquematicamente um diagrama de sincronização para uma modalidade da interface do chip da figura IA, de acordo com a técnica anterior; A figura 1C ilustra um diagrama de sincronização para outra modalidade da interface do chip da figura IA, de acordo com a técnica anterior; A figura 1D ilustra uma pluralidade de chips interconectados em um sistema de processamento de dados; A figura 1E ilustra de forma esquemática um diagrama de sincronização para uma modalidade da pluralidade de chips interconectados da figura 1D; A figura 2 ilustra, em forma de diagrama de blocos, um ambiente de hardware representativo para a prática da invenção; A figura 3 ilustra de forma em diagrama de blocos, uma interface do chip de acordo com uma modalidade da presente invenção; A figura 4A ilustra, em forma de diagrama de blocos, uma interface elástica de acordo com uma modalidade da presente invenção; A figura 4B ilustra de forma esquemática um diagrama de sincronização da modalidade da presente invenção da figura 3A; A figura 5 ilustra uma modalidade alternativa de uma interface do chip de acordo coma a presente invenção; A figura 6A ilustra outra modalidade alternativa de uma interface elástica de acordo com a presente invenção; A figura 6B ilustra de forma esquemática um diagrama de sincronização da interface elástica da figura 5A; A figura 7A ilustra outra modalidade alternativa de uma modalidade elástica de acordo com a presente invenção; A figura 7B ilustra de forma esquemática um diagrama de sincronização para a modalidade da figura 7A; A figura 8A ilustra em forma de diagrama de blocos ainda outra modalidade da interface elástica de acordo com a presente invenção; e A figura 8B ilustra de forma esquemática um diagrama de sincronização para a modalidade da figura 8A.
Descrição Detalhada A presente invenção proporciona um mecanismo de interface elástica que implementa a sincronização entre uma pluralidade de chips de processamento de dados em um sistema de processamento de dados. A sincronização dos dados é realizada sem a necessidade de enchimento que de outro modo complica a instalação física e adiciona complexidade para o projeto do hardware. A "elasticidade" da interface leva em consideração a diferença física entre os caminhos acoplando os chips de processamento de dados no sistema. Pela captura dos dados recebidos dentro de uma pluralidade de elementos de armazenamento e seletivamente conduzir os dados mantidos, a sincronização dos dados é proporcionada em um sistema de processamento de dados possuindo latências que variam por mais do que um ciclo do clock do barramento. A sincronização pode ser estabelecida dinamicamente pela execução de um procedimento de alinhamento da inicialização, quando da ativação ou seguindo-se a uma reinicialização. Deste modo, a sincronização dos dados pode ser realizada de acordo com os princípios da presente invenção sem a necessidade de uma análise da sincronização do projeto da placa e do enchimento do caminho rápido.
Na descrição seguinte, vários detalhes específicos são expostos tal como as frequências do clock do barramento e ciclos de sincronização, bordas do clock, etc., para proporcionar um entendimento completo da presente invenção. Entretanto, será óbvio para os versados na técnica que a presente invenção pode ser praticada sem tais detalhes específicos. Em outros casos, circuitos bem conhecidos foram apresentados em forma de diagrama de blocos de modo a não obscurecer a presente invenção com detalhes desnecessários.
Refira-se agora às figuras 2 até 9, onde os elementos representados não são necessariamente apresentados em escala e onde elementos iguais ou similares são designados pelo mesmo número de referência através das várias vistas.
Um ambiente de hardware representativo para a prática da presente invenção é representado na figura 2, a qual ilustra uma configuração de hardware tipica do sistema de processamento de dados 213 de acordo com a presente invenção possuindo uma unidade central de processamento (CPU) 210, tal como um microprocessador convencional e uma série de outras unidades interconectadas via o barramento do sistema 212. O sistema de processamento de dados 213 inclui a memória de acesso randômico (RAM) 214, a memória somente para leitura (ROM) 216 e o adaptador de entrada/saída (1/0) 218 para conectar os dispositivos periféricos tais como as unidades de disco 220 e os drivers de fita 240 para o barramento 212, o adaptador da interface com o usuário 222 para conectar o teclado 224, o mouse 226 e/ou outros dispositivos de interface com o usuário tal como um dispositivo de tela de toque (não apresentado) com o barramento 212, o adaptador de comunicação 234 para conectar a estação de trabalho 213 com uma rede de processamento de dados e o adaptador de video 236 para conectar o barramento 212 com o dispositivo de vídeo 238. A CPU 210 pode incluir outros conjunto de circuitos não apresentados aqui dentro, os quais irão incluir o conjunto de circuitos normalmente encontrado dentro de um microprocessador, por exemplo, a unidade de execução, a unidade de interface do barramento, a unidade de lógica aritmética, etc. A interface da presente invenção pode ser incluída na CPU 210. Adicionalmente, a presente invenção pode ser incorporada dentro dos dispositivos de armazenamento, tal como a RAM 214 (que pode incluir o conjunto de circuitos de controle de memória, não apresentado aqui) . A CPU 110 também pode residir em um circuito integrado único.
Referindo-se agora à figura 3 na qual está ilustrada uma interface 300 de acordo com a presente invenção. A Interface 300 está incorporada em cada um entre o chip 302 e o chip 304 que comunicam dados um com o outro via uma respectiva interface 300. (Apesar da modalidade da presente invenção ser descrita no contexto de uma interface de chip para chip, os princípios da presente invenção podem ser incorporados em uma interface entre qualquer par de latches sincronizados). Os dados são transferidos entre os chips 302 e 304 em uma taxa determinada por um clock do barramento, os clocks do barramento 306 e 308. Os clocks do barramento 306 e 308 são nominalmente a mesma frequência e são derivados a partir do clock de referência 310 proporcionado para uma PLL. A PLL 312 ein cada um dos chips 302 e 304. Em uma modalidade da presente invenção, o clock: de referência 310 pode ser um clock do sistema. Cada uma das PLL 312 emite um clock local, o clock local 314 no chip 302 e o clock local 316 no chip 304, o qual é travado em fase com o clock de referência 310 e pode ser um inteiro pré-selecionado, M, múltiplo do período do clock de referência 310. 0 clock local 314 é colocado no buffer pelo driver 318 para proporcionar o clock do barramento 306 a partir do chip 302. De forma similar, o clock local 316 é colocado no buffer pelo driver 320 para proporcionar o clock do barramento 308 a partir do chip 304. O clock do barramento é proporcionado junto com os dados comunicados a partir do chip. Os dados 322 a partir do chip 302 são mantidos dentro do latch de saída 324 e acionados e colocados no buffer pelo driver 326. Os dados são mantidos em uma borda pré-selecionada do clock local 314. Os dados são recebidos via o multiplexador (MUX) 328. O MUX 328 também recebe um padrão de sincronização predeterminado em conjunto com um procedimento de alinhamento. Estes serão adicionalmente descritos abaixo.
Os dados 322 são colocados no buffer pelo receptor (RX) 330 e proporcionados para uma unidade de interface elástica 332. O clock do barramento 306, enviado junto com os dados 322, é colocado no buffer pela RX 334, cuja saída forma o clock de 1/0 336, também proporcionado para a interface elástica 332. Os dados do chip 304 sendo enviados para o chip 302, junto com o clock do barramento 308, são de forma similar recebidos pela interface 300 no chip 302 e seria entendido que a descrição do dispositivo elástico 332 a seguir aplica-se igualmente bem na recepção dos dados pelo chip 302 a partir do chip 304. A unidade de ciclo alvo 339 estabelece o ciclo alvo no qual os dados são mantidos pelo clock local no chip de recepção, tal como o clock local 316 no chip 306. 0 ciclo alvo discutido em detalhes em conjunto com as figuras 4A/B, ilustrando uma interface 322 possuindo uma elasticidade de dois. Para uma interface possuindo uma elasticidade, E, a unidade do ciclo alvo pode incluir um circuito de dividido por E. Adicionalmente, a unidade do ciclo alvo 339 pode incluir urn registro de programação para manter o valor predeterminado do ciclo alvo, que pode ser carregado via o programa alvo 341. 0 ciclo alvo programado na unidade de ciclo alvo 339 no chip 302 pode ser diferente do ciclo alvo programado na unidade de ciclo alvo 339 no chip 304. A unidade de ciclo alvo 339 emite o controle de seleção 343 que pode incluir uma pluralidade de sinais, dependendo da modalidade da unidade de interface 322 e da elasticidade correspondente, E. O controle de seleção 343 será adicionalmente descrito em conjunto com as figuras 4A até 8B nas quais as modalidades da unidade de interface 332 são ilustradas.
Refira-se agora à figura 4A ilustrando uma modalidade de uma unidade de interface elástica 332 de acordo com a presente invenção. A unidade 332 inclui o MUX 402 possuindo uma entrada 404 que recebe dados a partir da RX 330. A saida 406 do MUX 402 está acoplada com a entrada de dados (D) do latch 408. O latch 408 está sincronizado pelo clock de i/o 336. O latch 408 mantém o estado especifico dos dados na entrada D do mesmo em uma borda crescente do clock 436 e mantém os dados até uma próxima borda crescente do clock 336. A saida 410 do latch 408 está acoplada de volta com uma segunda entrada, a entrada 412 do MUX 402. O MUX 402 seleciona entre a entrada 404 e a entrada 412 para emitir na saida 406 em resposta ao gate 414. O gate 414 é derivado a partir do clock do barramento 306 e possui duas vezes o periodo do clock do barramento 306. O gate 414 pode ser gerado utilizando um circuito de trava de retardo (DLL) . Uma modalidade de um DLL que pode ser utilizada na presente invenção é revelada no pedido copendente normalmente exposto entitulado "Dynamic Wave Pipelined Interface Apparatus and Method Therefor", incorporado aqui dentro por referência. A fase do gate 414 é estabelecida durante o procedimento de alinhamento de inicialização discutido abaixo e a operação do gate 414 será adicionalmente descrita em conjunto com a figura 4B.
Os dados a partir do RX 330 são também alimentado em paralelo com um segundo MUX, MUX 416, na entrada 418. A salda 420 do MUX 416 está acoplada com uma entrada D de um segundo latch, latch 422, que também está sincronizado pelo clock de I/O 336 e mantém os dados em uma borda crescente do clock de I/O 336 e mantém os dados até uma borda crescente subsequente do clock. A saida 424 do latch 422 está acoplada com uma segunda entrada, entrada 426 do MUX 416. O MUX 416 seleciona entre a entrada 418 e a entrada 426 em resposta ao complemento do gate 414, gate 428. Portanto, quando um dos MUXs 402 e 416 está selecionando em relação aos dados recebidos a partir do RX 330, o outro está selecionando em relação aos dados mantidos em seu latch correspondente, um dos latch 408 e 422. Deste modo, um bit de dados anteríormente armazenado em um dos latch 408 e 422 é mantido em relação a um ciclo adicional do clock de I/O 336.
Por consequência, dois fluxos de dados são criados, cada um dos quais é válido para dois períodos do clock de 1/0 336. Por causa da reversão de fase entre o gate 414 e o gate 428, os dois fluxos de dados são deslocados um do outro por uma largura temporal de um valor de dado, ou seja, um ciclo do clock de 1/0 336.
Isto pode ser adicionalmente entendido pela referência à figura 4B ilustrando um diagrama de sincronização de acordo com a unidade de interface elástica 332 na figura 4A„ Como anteriormente descrito, os dados 325 mantidos no latch de saída 324 são emitidos em sincronia com o clock local 314 no chip 202. Os dados, dados 332, são recebidos no RX 230 no chip 204, são retardados pela latência representada pelo caminho entre os chips 202 e 204, como discutido acima aqui dentro em conjunto com a figura 1D. Na borda crescente tl do clock de I/O 336, o valor de dado "a" dos dados 322 é capturado pelo latch 408 via a saída 406 do MUX 402. Pelo fato do gate 414 estar declarado, ou "aberto", os dados do RX 330 na entrada 404 são por meio disso selecionados para emissão pelo MUX 402. (Um gate será denominado aberto quando o MUX correspondente seleciona em relação a entrada recebendo o fluxo de dados que chega. Apesar disto estar associado com um estado lógico "alto" na modalidade da figura 4, seria entendido que uma modalidade alternativa na qual um gate aoerto correspondeu a um nivel "lógico" baixo estaria dentro do espirito e do escopo da presente invenção).
Ao contrário, o gate 428 é negado. Em resposta, o MUX 416 seleciona um valor de dado anterior mantido no latch 422, que está acoplado de volta com a entrada D do latch 422 através do MUX 416. Portanto, o valor dos dados mantido no latch 422 é retido durante um periodo adicional do clock de 1/0 336 que proporciona o sinal de clock para ambos os latch 408 e 322, como descrito em conjunto com a figura 4A. O clock de 1/0 335 é obtido a partir do clock do barramento 306, como apresentado na figura 3. É assumido que, na emissão, o clock do barramento 306 está centrado em uma janela de dados válida, como ilustrado na figura 4B. A centralização do clock do barramento é descrita no pedido copendente normalmente exposto intitulado: "Dynamlc Wave Pipelined Interface Apparatus and Method Therefor", incorporada aqui dentro por referência. O clock do barramento 306 sofre um retardo através da interface igualmente ao que os dados sofrem. A latência no clock do barramento 306 no chip 304 pode ser comprável com TI e isto é refletido no clock de 1/0 336 que é por meio disso centrado em relação aos dados 322. O gate 414 é gerado de modo que as bordas do gate 414 sejam coerentes em fase com as bordas caindo do clock de 1/0 336. Na borda t2 do clock de 1/0 336, o gate 414 cai, borda t3. Em resposta, o MUX 402 seleciona em relação a saída 410 do latch 408, acoplada com a entrada 412 do MUX 402, para emissão na saída 406. À medida que o gate 414 é negado,/gate 428 é declarado, por meio do que o MUX 416 seleciona em relação a emissão na salda 420 dos dados a partir do RX 330 na entrada 418. Esta está acoplada com a entrada D do latch 422. Os dados recebidos a partir do RX 330 agora correspondem ao valor de dado "b" dos dados 322.
Na borda t4 do clock de I/O 336, os latch 408 e 422 mantém o estado específico dos dados em suas respectivas entradas D. No latch 408, isto corresponde ao valor de dados anteriormente mantido, valor a dos dados 322, que é então mantido durante um período adicional do clock local 416. O latch 422 mantém o estado específico do valor de dados b em sua entrada D via o MUX 416 na saída 424.
Na próxima transição do clock de 1/0 336, t7, o valor de dados "c" é capturado. Pelo fato de que, na borda t7, o gate 414 é declarado, o valor de dados c nos dados 322 aparece na saída 406 do MUX 402. O valor de dados b é retido no latch 422 porque/gate 428 é negado, sendo o complemento do gate 414. À medida que um fluxo de dados continua a chegar nos dados 322, o dispositivo elástico 332 continua, deste modo, para gerar dois fluxos de dados nas sardas 410 e 424 dos latch 408 e 422, respectivamente. Os dois fluxos de dados contém partes alternadas do fluxo de dados de entrada chegando nos dados 422 que são válidas para dois períodos do clock local 416, como ilustrado na figura 4B. A estrutura do fluxo de dados de entrada é restaurada por alternativamente selecionar valores de um dos dois fluxos de dados em sincronia com o clock local 416. Um ciclo alvo do clock local é selecionado. O ciclo alvo do clock local é o ciclo no qual os dados são para ser capturados dentro de um latch de destino pelo clock local, tal como o clock local 316 nas figuras 3 e 4. 0 ciclo alvo é determinado por análise. 0 ciclo alvo deve ser mais tardio em tempo do que a latência do pior caso através da interface. Por exemplo, na modalidade representada na figura 4B, o ciclo alvo foi estabelecido como sendo três periodos do clock local 316, correspondendo à borda t8. 0 ciclo alvc é medido a partir da referência de tempo zero determinada pelo clock de referência 310, como anteriormente descrito em conjunto com o clock de referência 106 na figura IA. Na modalidade de elasticidade dois da figura 4A/B, a chegada dos dados pode ser tanto quanto dois ciclos do clock local anterior do que o ciclo alvo. Em tal modalidade, a unidade do ciclo alvo 339 na figura 3 inclui um circuito de divide por dois.
Com o ciclo alvo estabelecido, os dados são selecionados para captura dentro do latch destino 430, em resposta ao clock local 316, via o MUX 432 . 0 MUX 432 possui um par de entradas, 434 e 436. A entrada 434 está acoplada com a saída 410 do latch 408 e a entrada 436 está acoplada com a salda 424 do latch 422. O MUX 422 seleciona em relação a emissão de um dos dois fluxos de dados representados pela saída dos latch 408 e 422 em resposta ao controle de seleção 343. Quando o controle de seleção 343 possui um primeiro estado lógico, "alto" na modalidade da figura 4B, o MUX 432 proporciona os dados na entrada 434 para a entrada D do latch 430 e quando o controle de seleção 343 possui um segundo estado lógico predeterminado, "baixo" na modalidade da figura 4B, os dados na entrada 436 do MUX 432 são proporcionados para a entrada D do latch 430. O controle de seleção 343 possui um periodo que é duas vezes o periodo do clock local 316 e está em síncrono em fase com o clock local 316 de modo que o controle de seleção 343 possui o primeiro'estado lógico e está centrado no ciclo alvo. Portanto, na figura 4B, na borda t8 do clock local 316, o valor de dado a na saída 410 está acoplado, via o MUX 432, com a entrada D do latch 430 e está mantido no estado especifico pela borda t8 do clock local 316. Na próxima borda positiva do clock local 316, t9, a próxima parte do fluxo de dados transmitido está mantido na condição específica dentro do latch destino 430. O controle de seleção 343 avançou em fase por metade do período e portanto, possui o segundo estado lógico, por meio do qual a saída 424 do latch 422 está acoplada com a entrada D do latch 432 via o MUX 432. Na borda t5, o valor de dados b na saída 424 do latch 422 está mantida na condição específica dentro do latch 432 e o valor de dado b aparece na saída de dados 338. Nos ciclos subsequentes do clock local 316, a interface elástica 332 restaura o fluxo de dados 225 por alternativaraente selecionar entre a salda 410 do latch 408 e a saida 424 do latch 422.
Antes que os dados possam ser transmitidos através da interface elástica 322, o gate 414 (e concomitantemente o complemento,/gate 428) devem ser inicializados. Pelo fato da latência através da interface poder variar por mais do que um periodo do clock local, o gate 414 deve ser inicializado com a fase apropriada. Como anteriormente descrito, o período do gate 414 é duas vezes este do clock de I/O 336 e do clock local 316. 0 gate 414 é síncrono em fase com o clock de 1/0 316 de modo que as partes de porta- aviões do gate 414 são centradas em bordas pré-selecionadas do clock de 1/0 336, as bordas positivas na modalidade da figura 4B. O gate 414 pode ser inicializado, em uma modalidade da presente invenção, pela transmissão de um padrão de sincronização (sync) quando da ativação ou da reinicialização. Referindo-se novamente à figura 3, em resposta a uma reinicialização ou ativação do sistema de processamento de dados, o sinal do modo de procedimento de alinhamento de inicialização (IAP) 340 é declarado, por meio do qual o MUX 328 seleciona em relação a emitir um padrão sync predeterminado. O sinal do modo IAP 340 pode ser declarado, em uma modalidade da presente invenção, pela CPU 210 em resposta às instruções BIOS incluídas na ROM 216.
Na modalidade da unidade de interface elástica 322 ilustrada na figura 4A, os dados podem chegar em uma janela de dois ciclos sem criar problemas de sincronização, como anteriormente descrito. A unidade de interface elástica 322 na figura 4A é referida como possuindo uma elasticidade de dois. No IAP, o padrão de sincronização é requerido para ser periódico com um período P, igual ou maior do que a elasticidade do dispositivo elástico. Portanto, para a unidade de interface elástica 332 da figura 4B, um padrão de sincronização adequado seria uma pluralidade de bits alternando entre "1" e "0" com um bit inicial de "1". Modalidades de interfaces elásticas possuindo elasticidades diferentes do que dois serão descritas abaixo e o padrão de sincronização será por consequência modificado. Por exemplo, para uma interface elástica possuindo uma elasticidade N (discutida em conjunto com as figura 8A/B abaixo), um padrão adequado seria um bit inicial de "1" seguido por N-l bits de "0", padrão este que se repete. Outros padrões de bit também podem ser utilizados. Por exemplo, padrões de bit complementares aos padrões ilustrativos acima aqui dentro podem alternativamente ser utilizados.
Ao estabelecer a fase do gate 414, a saída 410 do latch 408 pode ser amostrada enquanto o padrão sync está sendo enviado. O gate 414 é inicializado com uma fase pré-selecionada. Se, para o padrão sync descrito aqui dentro acima para a unidade de interface elástica 332 possuindo a elasticidade dois, um "1" for detectado na saída 410, então o gate 414 e concomitantemente o/gate 428m, são apropriadamente colocados em fase. Caso contrário, a fase do gate 414 e de forma correspondente do/gate 428, devem ser deslocadas pela metade do período do clock de I/O 336. Como discutido anteriormente, o gate 414 pode ser gerado utilizando um DLL, uma modalidade de um DLL é revelada no pedido normalmente designado copendente referenciado acima intitulado "Dynamic Wave Pipelined Interface Apparatus and Method Therefor", incorporado aqui dentro por referência. A operação de uma interface elástica de acordo com os princípios da presente invenção, tal como a interface elástica 300, pode ser adicionalmente entendida por referência agora à figura 5. Na figura 5, o chip 302 troca dados com o chip 304, como na figura 3 e adicionalmente com o chip 306. 0 chip 302 inclui duas das interfaces 300, uma das quais acopla o chip 302 com o chip 304 via uma interface 300 incluída no chip 304 e a segunda das quais acopla o chip 302 com o chip 306 que também inclui uma interface 300 de acordo com uma modalidade da presente invenção. O caminho 502, acoplando os chips 302 e 304 pode ser um caminho rápido, similar ao caminho 154 na figura 1D possuindo uma latência TF e o caminho 504 acoplando o chip 302 com o chip 306 pode ser um caminho lento, tal como o caminho 152 na figura 1D com uma latência TS. Em uma interface de acordo com a técnica anterior, se a diferença de latência entre os caminhos 502 e 504 exceder um período do clock do barramento, o caminho 502 iria requerer o enchimento de modo a manter a sincronização dos dados, como anteriormente descrito. Entretanto, as interfaces 300 incorporando a unidade de interface elástica 332 acomodam as diferenças nas latências entre o caminho 502 e 504. Por estabelecer o ciclo alvo em cada uma das interfaces elásticas 332 nos chips 304 e 306 para ser o mesmo ciclo, como descrito acima aqui dentro, a sincronia dos dados entre os chips 302, 304 e 306 é mantida.
Modalidades alternativas da presente invenção podem ser implementadas. Uma modalidade alternativa da unidade de interface 332 possuindo uma elasticidade de dois é ilustrada na figura 6A. A modalidade da interface elástica 232 apresentada na figura 6A inclui os MUXs 402 e 416 acionando os latch 408 e 422 como na modalidade da interface elástica 232 ilustrada na figura 4A. Entretanto, a unidade de interface 332 da figura 6Ά inclui um segundo latch de captura, latch 628, sincronizado pelo clock local 316, em adição ao latch 630 que corresponde ao latch 430 na modalidade apresentada na figura 4A. Adicionalmente, o MUX de saida 632 correspondendo ao MUX 432 na figura 4A foi movido a jusante dos latch de captura, na modalidade da unidade de interface 332 na figura 6A.
Isto reduz a latência através da própria interface. As entradas D dois latch 628 e 630 são acopladas com as saídas 424 e 410 dos latch 422 e 408, respectivamente. Os dados nas entradas D dos latch 628 e 630 são sincronizadas dentro dos latch pelo clock local 316. Portanto, os dados são capturados no clock local 316 à frente do MUX 632. O fluxo de dados 322 é restaurado pela seleção em relação a emissão de uma das saldas 634 e 636 dos latch 628 e 630 via o MUX 632, sob o controle do controle de seleção 343. Isto é similar a ação do MUX de saida 432 na modalidade da figura 4A, entretanto, o controle de seleção 343 é deslocado em fase por metade do periodo se comparado com o controle de seleção 343 na figura 4Ά. Na modalidade da interface 322 na figura 6A, os dados são mantidos em uma borda crescente do clock local 316. Seria entendido, entretanto, por um versado na técnica que modalidades alternativas podem manter os dados em uma borda que cai posto que outros sinais de controle são apropriadamente ajustados em fase. Por exemplo, em uma modalidade na qual os latch 628 e 630 mantém na borda que cai do clock local 316, o controle de seleção 343 teria sua fase deslocada por metade do periodo. A operação da modalidade da unidade de interface 332 da figura 6A pode ser adicionalmente entendida pela referência agora à figura 6B ilustrando um diagrama de sincronização para a mesma. Pelo fato dos MUXs 402 e 416 e dos latch 408 e 422, bem como o clock de I/O 336 e o clock local 316 serem comuns às modalidades da unidade de interface 332 nas figuras 4A e 4B, a parte do diagrama de sincronização ilustrada na figura 6B relacionada com estas estruturas não será discutida novamente, no interesse de brevidade.
Focando a parte do diagrama de sincronização da figura 6B associada com os latch 628 e 630 e com o MUX 632, o valor de dado a é mantido no estado especifico na saída 634 do latch 630 na borda t8 do clock local 316. De forma similar, o valor de dado b é mantido na condição especifica na saída 636 do latch 628 na borda t9 do clock local 316. De modo a que os dados apareçam na saída de dados 338 no ciclo alvo, a borda crescente do controle de seleção 343 deve ser retardada até a borda t8 do clock local 316, que coincide com o ciclo alvo. Portanto, o valor de dado a aparece na salda de dados 338 a partir do MUX 632 na borda tlO do controle de seleção 343. Por consequência, o controle de seleção 343 está síncrono em fase com o clock local 316, possuindo porta-aviões centrados entre as transições crescentes do clock local 316. De forma similar, o valor de dado b aparece na salda de dados 338 na borda que cai tll do controle de seleção 343 e o fluxo de dados 322 continua a ser restaurado depois disso em transições subsequentes do controle de seleção 343.
Adicionalmente, modalidades da interface elástica 232 possuindo outras elasticidades predeterminadas podem ser implementadas de acordo com a presente invenção. Estas podem incluir elasticidades de meio período. Uma modalidade da presente invenção possuindo uma elasticidade de 1,5 períodos é ilustrada na figura 7A. Os dados 322 estão acoplados com as entradas D dos latch 702 e 704. Os latch 702 e 704 são latches de "manutenção de polaridade" ou de "descarga". Tais latches também podem ser referidos como latches "transparentes". Quando o clock (c) no latch 702 possui um primeiro estado lógico predeterminado, ou nível, os dados na entrada D descarregam-se através da saida 706. Na transição do clock do primeiro estado para um segundo estado lógico predeterminado, o latch 702 mantém o estado específico dos dados na entrada D e os dados na saída 7 06 são mantidos até a transição subsequente do clock do segundo estado para o primeiro estado. (Na modalidade da figura /, o primeiro estado corresponde a um nível lógico "baixo" e o segundo estado correspondente a um nível lógico "alto", por meio do qual a transição constitui uma borda crescente. Entretanto, uma modalidade alternativa possuindo os estados lógicos complementares estariam dentro do espírito e do escopo da presente invenção). 0 latch 704 descarrega os dados na sua entrada D através da saída 708 quando seu clock, C, possui o segundo nível lógico. Os dados são mantidos na transição do segundo nível lógico para o primeiro nível lógico do clock e mantidos até as transições do clock do segundo nivel lógico para o primeiro nível lógico, que na modalidade da figura 7, é "baixo". A propriedade de descarga direta permite aos dados tornarem-se disponíveis sem ter que aguardar ate que um latch seja sincronizado, desse modo implementando uma modalidade de "baixa latência - baixa elasticidade" da unidade de interface 332.
Na modalidade da interface elástica 322 ilustrada na figura 7A, os latches 702 e 704 são sincronizados pelo clock de I/O 726. A interface elástica 322 da figura 7A é um dispositivo de taxa de dados dupla (DDR) pelo fato de que os dados são mantidos dentro de um dos latches 702 e 704 em cada transição do clock de 1/0 726 e o período do clock de 1/0 726 é duas vezes este dos clocks locais, o clock local 314 e o clock local 316 e do barramento do clock 306. O clock do barramente 306 está centrado em uma janela de dados que é dois períodos do clock local em largura. A modalidade da unidade de interface elástica 332 na figura 7A pode ser adicionalmente entendida pela referência ao diagrama de sincronização correspondente apresentado na figura 7B. Quando o valor de dado a chega na unidade de interface elástica 332, ele descarrega-se através da saída 706 do latch 702 porque o clock de I/O 716 é baixo, no "porta-aviões" 752. Em outras palavras, o valor de dados a aparece na saída 706 do latch 702 antes da borda tl do clock de 1/0 716. A parte de dados a precede a transição tl pelo período de um-quarto do clock de I/O 336 o que corresponde à metade do período do clock local 316. O clock de I/O 336 é derivado do clock do barramento e é deslocado em fase em relação ao clock do barramento na ativação pela latência do caminho entre os chips, como anteriormente descrito.
Adicionalmente, é dado um avanço de fase de um-quarto do período para o clock 716. Na borda tl, o valor de dados a é mantido na condição específica por meio do que ele é mantido para um período do clock local 316.
De forma similar, o valor de dados b descarrega diretamente para a saída 708 do latch 704 quando ele chega na unidade de interface elástica 322 a partir do RX 230 porque o clock de I/O 716 é alto, no porta-aviões 754. O valor de dados b é então mantido na saída 708 pela borda negativa t2 do clock de 1/0 716. O valor de dados b é mantido por um período do clock local 316. Desse modo, os valores de dados aparecem nas saldas 706 e 708 dos latches 702 e 704, respectivamente, para 1,5 períodos do clock local, que é a elasticidade da modalidade da interface elástica 332 da figura 7A. 0 fluxo de dados 332 é reconstruído na sarda 338 pelos latches 710 e 712 e pelo MUX 714. Os dois fluxos de dados representados pelas saldas 706 e 708 são, respectivamente, mantidos dentro dos latches 710 e 712 pelo clock local 316. Os dados são mantidos em uma borda predeterminada (positiva na modalidade da figura 7) do clock local 316 onde o ciclo alvo pode ser estabelecido para ocorrer em qualquer lugar dentro de um e meio ciclos da elasticidade do valor de dados a, anteriormente descrito. Portanto, o valor de dados a, de acordo com o diagrama de sincronização na figura 7B, é mantido no estado especifico dentro do latch 710 na borda tl do clock local 316 e trocado nos dados 338 via o MUX 714 em resposta ao controle de seleção 343. Os dados são selecionados a partir do latch 710 em resposta ao controle de seleção 343 possuindo um primeiro valor predeterminado e selecionado a partir do latch 712 quando o controle de seleção 343 possui um segundo valor predeterminado. O primeiro valor é "alto" e o segundo "baixo" na modalidade da figura 7, entretanto, seria entendido que outros valores predeterminados estão dentro do espirito e do escopo da presente invenção. Na borda t4, do clock local 316, o valor de dados b é mantido no estado especifico dentro do latch 712 e trocado nos dados 338 em resposta ao controle de seleção 343 ter o segundo valor. Os valores de dados subsequentes são então sequencialmente emitidos na saida 338 por alternativamente selecionar a saida a partir dos latches 710 e 712 via o MUX 714, como ilustrado na figura 7B.
Adicionalmente, as interfaces elásticas de acordo com os princípios da presente invenção são expansíveis, por meio do que as elast icidades podem ser aumentadas pela adição dos elementos de condução e de armazenamento. Uma modalidade de uma interface elástica possuindo uma elasticidade de N-l períodos do clock do barramento é ilustrada na figura 8A. A unidade de interface 32 inclui uma pluralidade, N, de MUXs 802. Uma primeira entrada 704 em cada MUX recebe o fluxo de dados 322 a partir do RX 330. Uma segunda entrada 806 recebe um sinal emitido por um latch correspondente entre os latches 808 até 818. Cada um dos latches 808 até 818 inclui um par de latches. Nos latches 808, 812 e 816, os pares de latches possuem uma saída interna de um primeiro dos pares acoplados com uma saída interna de um segundo par, no modo mestre-escravo. Os latches 808, 812 e 816 proporcionam uma saída 820 a partir da parte escrava para uma saída 806 do MUX 802 correspondente. A parte escrava dos latches 808, 812 e 816 mantém na condição especifica os dados na entrada D em uma borda crescente do clock de 1/0 336. Os latches 808, 812 e 816 possuem suas respectivas entradas D acopladas com a saída de um MUX correspondente 802. Os latches 810, 814 e 818 acopla a saída 822 a partir do primeiro dos pares de latches com a entrada 806 de um MUX 802 correspondente. O primeiro dos pares de latches é transparente e os dados em uma primeira entrada 828 descarreçam-se através da saída 822 em, um "porta-aviões" do clock de I/O 336. A saída 828 em cada um dos latches 810, 814 e 818 está acoplada com uma saída correspondente 826 a partir do segundo dos pares de latches. Adicionalmente, uma entrada 830 para o segundo dos pares está acoplada com uma saída do MUX 802 correspondente. 0 segundo dos pares de latches também é transparente e descarrega os dados através de um porta-aviões do clock de 1/0 336. O primeiro e o segundo dos pares formando os latches 810, 814 e 818 descarregam os dados através dos porta-aviões do clock de 1/0 336 possuindo polaridades opostas.
Os MUX 802 selecionam entre os sinais nas entradas 804 e 806 em resposta a um sinal do gate correspondente, os gates 832 até 842. Os sinais do gate 832 até 840 serão discutidos adicionalmente em conjunto com um diagrama de sincronização ilustrado na figura 8B.
Os dados são mantidos dentro do clcck local via os latches de dados 844, cada um dos quais recebe um sinal de saída a partir de um dos latches correspondente 808 até 818. Os dados sãc mantidos dentro dos latches de dados 844 pelo clock local 316. A saída 824 dos latches 808, 812 e 816 é proporcionada para a entrada D de um latch de dados correspondente 844. As saídas 824 são obtidas a partir da parte mestre dos latches 808, 812 e 816, que é transparente, como anteriormente descrito. Os restantes dos latches de dados 844 recebem em suas entradas D o sinal a partir da salda 826 a partir do segundo dos pares de latches formando os latches correspondentes 810, 814 e 816. Este segundo dos pares de latches também é um latch transparente via a descarga dos dados direta em uma polaridade do clock de 1/0 336 oposta a esta na qual os dados descarregam-se direto no primeiro dos pares de latches. O MUX 846 seleciona um dos sinais mantidos nos latches de dados 844 para emissão. Uma saída de cada um dos latches de dados 844 está acoplada com uma entrada correspondente, uma das entradas 848 até 858. O sinal é emitido para o chip, tal como o chip 302 ou 304 na saída 860 do MUX 846. O MUX 846 seleciona entre as entradas 848 até 858 via o controle de seleção 343. 0 controle de seleção 343 inclui K sinais, onde 2K é igual a N.
Uma modalidade alternativa possuindo uma elasticidade de N pode ser implementada utilizando-se o conjunto de circuitos apresentado na figura 8A. Pelo acoplamento das respectivas entradas D dos latches de dados 844 com as saidas 820 dos latches correspondentes entre os latches 808, 812 e 816 e com as saidas 826 do latch correspondente entre os latches 810, 814 e 818 (ao invés das saidas 824 e 822 como apresentado na figura 8A), uma elasticidade de N é obtida. 0 conjunto de circuitos da unidade de interface 332 na figura 8A está de outro modo inalterado.
Refira-se agora à figura 8B ilustrando um diagrama de sincronização para a unidade de interface 332 ilustrada na figura 8A. O valor de dado a chega no fluxo de dados nos dados 322 após a latência da interface de TI e em resposta à declaração do gare 832 proporcionada para o MUX correspondente entre os MUX 802, representado pelo "porta-aviões" 862, o valor de dados a é passado através do MUX correspondente 802 para a entrada D do latch 808. Na borda tl do clock de I/O 336, o latch 808 mantém o valor de dados a que está acoplado de volta na saída 820 do latch 808 com a entrada 806 do MUX correspondente dos MUX 802. Na borda t2 do gate 832, o MUX correspondente 802 seleciona em relação ao sinal na entrada 806 que possui o valor de dados a. 0 gate 832 é negado durante N-l períodos do clock do barramento 306, por meio do que o valor de dados a é mantido na entrada D do latch 808 e portanto, na saída 824 do latch 808. 0 valor de dados a é mantido durante um ciclo adicional do clock do barramento 306 pela transição t3 do clock de 1/0 336, após o que a transição t4 do gate 832 troca o MUX correspondente 802 para selecionar em relação ao fluxo de dados nos dados 322, por meio do que na borda C5 do clock de I/O 336 o (N + 2)o valor de dado nos dados 2 é mantido no estado específico dentro do latch 808 no borda t5 do clock de I/O 336. 0 valor de dado a é capturado dentro do latch de dados 844 recebendo a saída 824 do latch 808 na borda t6 do clock local 316 e aparece na saída 848. O valor de dados a é mantido na saída 848 durante N períodos do clock do barramento 306.
Um próximo valor de dados nos dados 332, o valor de dados b, é de forma similar mantido durante N períodos do c.ock do barramento 306 no latch de dados 844 acoplado com o latch 810. Quando o valor de dados b chega na unidade 332, o gate 834 é declarado, representando pelo "porta-aviões" 864 e seleciona em relação aos dados 332 na entrada 804 do MUX correspondente 802. 0 valor de dados b aparece na entrada 830 do latch 810 e é mantido pela borda t7 do clock de 1/0 336, por meio do que o valor de dados b aparece na saída 826 do latch 810. A saída 826 do latch 810 é alimentada de volta para a entrada 828 do latch 810. Pelo fato do clock de I/O 336 ser negado seguindo-se a borda t7, o valor de dados b na saída 826 do latch 10 cai direto para a saída 822 do latch 810, onde ele é acoplado de volta com a entrada 806 do MUX correspondente 802. Na borda t8 do clock de I/O 336, o valor de dados b é mantido na salda 822 do latch 810. Na borda t9 do gate 834, o MUX correspondente 802 troca e seleciona a entrada 806 em relação a emissão do valor de dados b mantido na saída 822 do latch 810 dentro da entrada 830 do latch 810. O valor de dados b então cai direto para a saída 826 do latch 810 onde ele é acoplado de volta dentro da entrada 828 do latch 810 e o valor de dados b continua a ser alimentado de volta para a entrada 806 do MUX correspondente recebendo o sinal do gate 834. Portanto, o valor de dados b é mantido na saída 826 no latch 810 durante N + 1 períodos do clock do barramento 306, um período do clock após as transições do gate 834 na borda tio. O gate 836 é retardado em fase em relação ao gate 834 por um período do clock de I/O 836 e de forma similar cada sinal do gate sucessivo 838 até 842 é retardado em fase por um período do clock de I/O 336 em relação ao sinal do gate precedente na cadeia. Deste modo, cada latch sucessivo 808 até 818 armazena o valor de dados sucessivo nos dados 332 e mantém o valor do dado durante N + 1 periodos do clock do barramento 306. Cada valor de dados no respectivo latch 808 até 810 é então mantido no estado especifico no latch de dados correspondente 44 cada período do clock local 316. Portanto, o valor de dados b é mantido no estado específico dentro do latch de dados correspondente 844 na borda tll do clock local 316 e aparece na saída 850 e igualmente o valor de dados c é sincronizado dentro de seu respectivo latch de dados 844 na borda tl2 do clock local 316 e aparece na saída 852. O último latch de dados 844, acoplado com o latch 818, mantém no estado específico o (N+l)o valor de dados na borda t 12 do clock local 316.
Os dados são emitidos a partir do MUX 846 em resposta ao controle de seleção 343 que inclui K sinais. Cada um dos k sinais do controle de seleção 343 é periódico. O "zeroo" sinal, denotado S(0), possui um meio periodo que é igual ao período do clock do barramento 306. 0 (k-l)o sinal possui um meio periodo que é N períodos do clock do barramento. Cada sinal na sequência entre S(0) e S{N) possui uma periodicidade que é duas vezes o período do sinal precedente. O valor de dados armazenado nos latches de dados 844, aparecendo em uma entrada correspondente 848 até 858 no MUX 84 6 são sequencialmente sincronizados na saida de dados 860 em resposta ao controle de seleção 343. 0 valor de dados a é sincronizado no ciclo alvo, possuindo uma elasticidade N-l na borda tl4 do S (N) no controle de seleção 343. Os valores de dados restantes são sequencialmente sincronizados em resposta às transições cíclicas dos k sinais no controle de seleção 343. Apesar do sinais constituindo o controle de seleção 343 terem sido apresentados como possuindo sincronia de fase em uma borda crescente, seria entendido por um versado na técnica comum que a fase complementar pode ser utilizada em uma modalidade alternativa. A unidade 332 ilustrada na figura 8 é inicializada durante um IAP como anteriormente descrito aqui dentro acima em conjunto com a figura 4. Um padrão de inicialização adequado pode possuir uma periodicidade de N-1 para uma modalidade com elasticidade de N-l, correspondendo a elasticidade da modalidade da unidade 332 ilustrada na figura 8. Para uma modalidade alternativa possuindo uma elasticidade de N, como descrito aqui dentro acima, o padrão sync pode possuir uma periodicidade N. Durante a inicialização, para um padrão sync possuindo um "1" seguido por uma pluralidade de "0", o "1" seria amostrado no latch 808 quando os sinais na seleção 343 forem apropriadamente sequenciados.
Deste modo, um mecanismo para manter a sincronia dos dados através das interfaces em um sistema de processamento de dados foi proporcionado. Os dados recebidos são capturados dentro de uma pluralidade de elementos de armazenamento e seletivamente conduzidos para dentro do chip de recepção em um ciclo alvo pré-selecionado que está sincronizado com o clock do chip. A sincronização inicial é estabelecida dinamicamente pela execução de um IAP. O mecanismo da presente invenção proporciona a sincronização dos dados em um sistema de processamento de dados possuindo latências que variam por mais do que um ciclo do clock do barramento.

Claims (26)

1. Aparelho de interface compreendendo: um primeiro dispositivo de armazenamento (408) operável para armazenar um primeiro conjunto de valores de dado s; um segundo dispositivo de armazenamento (422) operável para armazenar um segundo conjunto de valores de dados; conjunto de circuitos (432) acoplado com os ditos primeiro e segundo dispositivos de armazenamento operável para sequencialmente emitir um primeiro valor de dados a partir do dito primeiro dispositivo de armazenamento (408) e um segundo valor de dados a partir do dito segundo dispositivo de armazenamento (422) em resposta a pelo menos um sinal de controle (343), onde os ditos primeiro e segundo dispositivos de armazenamento (408, 422) mantêm os valores de dados para um número predeterminado de ciclos de um primeiro clock, o aparelho de interface caracterizado pelo fato de que compreende: primeiro e o segundo conjunto de circuitos de seleção (402, 416), cada um possuindo uma salda respectivamente acoplada com as entradas correspondentes dos ditos primeiro e segundo dispositivos de armazenamento, os ditos primeiro e segundo conjuntos de circuitos de seleção, cada um possuindo uma primeira entrada operável para receber um fluxo de dados e uma segunda entrada acoplada com uma respectiva saída dos ditos primeiro e segundo dispositivos de armazenamento, onde os ditos primeiro e segundo conjunto de circuitos de seleção são operáveis para selecionar e emitir um sinal em uma das ditas primeira e segunda entradas em resposta a um primeiro e segundo sinal de controle (414, 428).
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a dita emissão é síncrona com um segundo clock.
3. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o dito segundo clock possui um período igual ao período do dito primeiro clock.
4. Aparelho, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que os ditos primeiro e segundo dispositivos de armazenamento são operáveis para receber um fluxo de dados compreendendo uma pluralidade de valores de dados.
5. Aparelho, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o dito primeiro dispositivo de armazenamento mantém o estado específico dos dados em uma primeira borda predeterminada de um segundo clock e o dito segundo dispositivo de armazenamento mantém os dados em uma segunda borda predeterminada do dito segundo clock.
6. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que o dito segundo clock é derivado a partir de um sinal de clock recebido a partir de um dispositivo de envio.
7. Aparelho, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que cada um dos ditos primeiro e segundo sinais de controle possui um periodo duas vezes um periodo do dito primeiro clock e onde o dito segundo sinal de controle é um complemento do dito primeiro sinal de controle.
8. Aparelho, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que os ditos primeiro e segundo conjunto de circuitos de seleção respectivamente compreendem os primeiro e segundo multiplexadores.
9. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o dito conjunto de circuitos operável para seletivamente sequencialmente emitir os primeiro e segundos valores de dados compreende um multiplexador possuindo uma primeira entrada operável para receber o dito primeiro valor de dados e uma segunda entrada operável para receber o dito segundo valor de dados, onde o dito multiplexador seleciona para emissão um dos ditos primeiro e segundo valores de dados em resposta a um sinal de controle de seleção possuindo um periodo que é um múltiplo predeterminado de um periodo do dito primeiro clock.
10. Aparelho, de acordo com a reivindicação 9, caracterizado pelo fato de que o dito periodo do dito sinal de controle de seleção é duas vezes o periodo do dito primeiro clock.
11. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o dito conjunto de circuitos operável para seletivamente emitir o primeiro e o segundo valores de dados compreende: um primeiro latch possuindo uma entrada operável para receber o dito primeiro valor de dado; um segundo latch possuindo uma entrada operável para receber o dito segundo valor de dados; e um multiplexador possuindo uma primeira entrada acoplada com uma saída do dito primeiro latch e uma segunda entrada acoplada com uma salda do dito segundo latch, o dito multiplexador sendo operável, para selecionar para emissão um dos ditos primeiro e segundo valores de dados em resposta a um sinal de controle de seleção possuindo um período que é um múltiplo predeterminado de um período do dito primeiro clock e onde os ditos primeiro e segundo latches mantém os dados nos primeiro e segundo níveis predeterminados do dito primeiro clock.
12. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o dito primeiro elemento de armazenamento compreende um terceiro latch e o dito segundo elemento de armazenamento compreende um quarto latch, o dito terceiro sendo um latch transparente mantendo os dados em um primeiro nível predeterminado de um segundo clock e o dito quarto latch sendo um latch transparente mantendo um nível complementar para o dito primeiro nível de clock predeterminado.
13. Aparelho, de acordo com a reivindicação 12, caracterizado pelo fato de que adicionalmente compreende o terceiro e o quarto multiplexadores possuindo saídas respectivamente acopladas com os ditos terceiro e quarto latches, os ditos terceiro e quarto multiplexadores possuindo uma primeira entrada operável para receber um fluxo de valores de dados e uma segunda entrada respectivamente acoplada com uma saída dos ditos terceiro e quarto latches, o dito terceiro multiplexador operável para selecionar entre as ditas primeira e segunda entradas em resposta a um primeiro sinal do gate e o dito quarto multiplexador operável para selecionar entre as ditas primeira e segunda entradas era resposta a um segundo sinal do gate, complementar ao dito primeiro sinal do gate.
14. Aparelho de interface, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende: uma pluralidade, M, de primeiros multiplexadores, cada um possuindo uma primeira entrada operável para receber um fluxo de dados e uma saída; uma pluralidade, M, de primeiros latches, cada um possuindo uma entrada acoplada com a saida de um primeiro multiplexador correspondente, cada dito primeiro latch possuindo uma primeira saida e uma segunda saída acoplada a uma segunda entrada do dito primeiro multiplexador correspondente; uma pluralidade, M, de segundos multiplexadores, cada um possuindo uma primeira entrada operável para receber o dito fluxo de dados e uma saída; uma pluralidade, M, de segundos latches, cada segundo latch compreendendo um par de latches, onde uma entrada de um dito primeiro do dito par está acoplada a uma saida de um segundo multiplexador correspondente e possui uma saída e um segundo do dito par possui uma entrada acoplada à dita saida do dito primeiro do dito par e uma saída acoplada a uma segunda entrada do dito segundo multiplexador correspondente; uma pluralidade de terceiros latches possuindo uma entrada acoplada à dita primeira saida de um latch correspondente dos ditos primeiros latches e uma saida acoplada a uma entrada correspondente de um terceiro multiplexador; uma pluralidade de quartos latches possuindo uma entrada acoplada à dita saida do dito primeiro do par de latch e uma saida acoplada com a entrada correspondente do dito terceiro multiplexador, o dito terceiro multiplexador operável para emitir uma sequência de valores de dados em resposta a um controle de seleção, o dito controle de seleção compreendendo uma pluralidade, k, de sinais, onde um primeiro sinal da dita pluralidade de k sinais possui um meio periodo igual a um periodo de um primeiro clock, onde cada um dos ditos primeiro e segundo latches é operável em resposta a um segundo sinal de clock possuindo um meio periodo igual ao periodo do dito primeiro clock e onde cada um dos ditos terceiros latches é operável em resposta ao dito primeiro clock.
15. Aparelho, de acordo com a reivindicação 14, caracterizado pelo fato de que o dito primeiro clock compreende um clock local do chip e o dito segundo clock compreende um clock de entrada/saida (1/0).
16. Aparelho, de acordo com a reivindicação 14, caracterizado pelo fato de que 2(k-l) é igual a M.
17. Método para fazer a interface de dispositivos de circuito integrado compreendendo as etapas de: armazenar um primeiro conjunto de valores de dados em um primeiro dispositivo de armazenamento (408), onde cada valor de dados do dito primeiro conjunto é armazenado para um número de ciclos predeterminado de um primeiro clock; armazenar um segundo conjunto de valores de dados em um segundo dispositivo de armazenamento (422), onde cada valor de dados do dito segundo conjunto é armazenado para um número de ciclos predeterminado de um primeiro clock; sequencialmente emitir um primeiro valor de dados a partir do dito primeiro dispositivo de armazenamento e um segundo valor de dados a partir do dito segundo dispositivo de armazenamento pelo acoplamento de um circuito (432) com os ditos primeiro e segundo dispositivos de armazenamento (408, 422) e proporcionando um sinal de controle (343) para o dito circuito, onde o dito sinal de controle possui um periodo que é um múltiplo predeterminado de um período do dito primeiro clock; o método caracterizado pelo fato de que compreende as etapas de: receber um fluxo de dados (Rx 330) em uma primeira entrada (404, 418) de cada um de um primeiro e de um segundo conjunto de circuitos de seleção (402, 4016) ; proporcionar os sinais de salda dos ditos primeiro e segundo dispositivos de armazenamento para uma segunda entrada de cada um dos respectivos primeiro e segundo conjunto de circuitos de seleção; emitir cada um do dito primeiro conjunto de valores de dados para o dito primeiro dispositivo de armazenamento a partir do dito primeiro conjunto de circuitos de seleção em resposta a um primeiro sinal de seleção (414); e emitir cada um do dito conjunto de valores de dados para o dito segundo dispositivo de armazenamento a partir do dito segundo conjunto de circuitos de seleção em resposta a um segundo sinal de seleção (428)
18. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que os ditos primeiro e segundo conjuntos de valores de dados compreendem uma pluralidade de valores de dados recebidos em um fluxo de dados.
19. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que os ditos primeiro e segundo sinais de seleção são sinais complementares.
20. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que os ditos primeiro e segundo sinais de seleção possuem um período que é duas vezes um período de um período do dito primeiro clock.
21. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que os ditos primeiro e segundo sinais de seleção possuem um período que é um múltiplo predeterminado de um período do dito primeiro clock.
22. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que adicionalmente compreende a etapa de: inicializar os ditos primeiro e segundo sinais de seleção.
23. Método, de acordo com a reivindicação 22, caracterizado pelo fato de que a dita etapa de inicializar os ditos primeiro e segundo sinais de seleção compreende as etapas de: enviar um fluxo de dados pré-selecionado; e ajustar uma fase de cada um dos ditos primeiro e segundo sinais de seleção em resposta ao dito fluxo de dados pré-selecionado.
24. Método, de acordo com a reivindicação 23, caracterizado pelo fato de que a dita etapa de ajustar a dita fase de cada um dos ditos sinais de seleção adicionalmente inclui a etapa de selecionar uma fase onde um primeiro valor de dados predeterminado no dito fluxo de dados é capturado no dito primeiro elemento de armazenamento e um segundo valor de dados predeterminado é capturado no dito segundo elemento de armazenamento.
25. Método, de acordo com a reivindicação 23, caracterizado pelo fato de que o dito fluxo de dados compreende um padrão de sincronização (sync).
26. Sistema de processamento de dados caracterizado pelo fato de que compreende: um primeiro dispositivo de processamento de dados; e um segundo dispositivo de processamento de dados acoplado ao dito primeiro dispositivo de processamento de dados via uma interface elástica, a dita interface elástica incluindo o aparelho definido nas reivindicações 1 a 13.
BRPI0009250A 1999-03-05 2000-03-03 aparelho de interface elástica, método para o mesmo e respectivo sistema BRPI0009250B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/263,661 US6334163B1 (en) 1999-03-05 1999-03-05 Elastic interface apparatus and method therefor
PCT/GB2000/000754 WO2000054163A1 (en) 1999-03-05 2000-03-03 Elastic interface apparatus and method therefor

Publications (2)

Publication Number Publication Date
BR0009250A BR0009250A (pt) 2001-11-27
BRPI0009250B1 true BRPI0009250B1 (pt) 2016-08-23

Family

ID=23002731

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0009250A BRPI0009250B1 (pt) 1999-03-05 2000-03-03 aparelho de interface elástica, método para o mesmo e respectivo sistema

Country Status (17)

Country Link
US (2) US6334163B1 (pt)
EP (1) EP1166210B1 (pt)
JP (1) JP4384819B2 (pt)
KR (1) KR100457868B1 (pt)
CN (1) CN1129853C (pt)
AT (1) ATE239945T1 (pt)
AU (1) AU2925000A (pt)
BR (1) BRPI0009250B1 (pt)
CA (1) CA2366898C (pt)
CZ (1) CZ302550B6 (pt)
DE (1) DE60002571T2 (pt)
ES (1) ES2193940T3 (pt)
HU (1) HUP0200283A3 (pt)
IL (2) IL145275A0 (pt)
PL (1) PL200520B1 (pt)
RU (1) RU2212048C2 (pt)
WO (1) WO2000054163A1 (pt)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE232317T1 (de) * 1997-10-10 2003-02-15 Rambus Inc Verfahren und vorrichtung zur ausfallsicheren resynchronisation mit minimaler latenzzeit
US6636980B1 (en) * 1999-08-19 2003-10-21 International Business Machines Corporation System for launching data on a bus by using first clock for alternately selecting data from two data streams and using second clock for launching data thereafter
US6775339B1 (en) * 1999-08-27 2004-08-10 Silicon Graphics, Inc. Circuit design for high-speed digital communication
US6542999B1 (en) * 1999-11-05 2003-04-01 International Business Machines Corp. System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US6571346B1 (en) * 1999-11-05 2003-05-27 International Business Machines Corporation Elastic interface for master-slave communication
US6675331B1 (en) * 1999-12-22 2004-01-06 Texas Instruments Incorporated Testable transparent latch and method for testing logic circuitry that includes a testable transparent latch
US7031420B1 (en) 1999-12-30 2006-04-18 Silicon Graphics, Inc. System and method for adaptively deskewing parallel data signals relative to a clock
JP2001195355A (ja) * 2000-01-14 2001-07-19 Sony Corp データ処理回路
US6977979B1 (en) * 2000-08-31 2005-12-20 Hewlett-Packard Development Company, L.P. Enhanced clock forwarding data recovery
US7117126B2 (en) * 2001-09-05 2006-10-03 International Business Machines Corporation Data processing system and method with dynamic idle for tunable interface calibration
JP3798292B2 (ja) * 2001-10-31 2006-07-19 富士通株式会社 データ同期化回路及び通信インターフェース回路
US6661726B2 (en) * 2002-01-09 2003-12-09 International Business Machines Corporation Multiple mode elastic data transfer interface
US6954870B2 (en) * 2002-03-12 2005-10-11 International Business Machines Corporation Method for receiver delay detection and latency minimization for a source synchronous wave pipelined interface
US6934867B2 (en) * 2002-05-17 2005-08-23 International Business Machines Corporation Digital system having a multiplicity of self-calibrating interfaces
US6891406B2 (en) * 2003-01-09 2005-05-10 International Business Machines Corporation Method and apparatus for supplying a reference voltage for chip-to-chip communication
US7313210B2 (en) * 2003-02-28 2007-12-25 Hewlett-Packard Development Company, L.P. System and method for establishing a known timing relationship between two clock signals
US7143304B2 (en) 2003-05-30 2006-11-28 Sun Microsystems, Inc. Method and apparatus for enhancing the speed of a synchronous bus
US20060031618A1 (en) * 2004-05-20 2006-02-09 Hansquine David W Single wire and three wire bus interoperability
KR100594294B1 (ko) * 2004-09-21 2006-06-30 삼성전자주식회사 메모리 장치 및 데이터 트레이닝 방법
US7254656B2 (en) 2004-11-13 2007-08-07 International Business Machines Corporation Method and service and computer program code for broadcast of interface group bring-up in a multiprocessor computer system having multiple nodes
US7412618B2 (en) * 2005-02-11 2008-08-12 International Business Machines Corporation Combined alignment scrambler function for elastic interface
US20060188046A1 (en) * 2005-02-24 2006-08-24 Broadcom Corporation Prediction of an optimal sampling point for clock resynchronization in a source synchronous data channel
US7684534B2 (en) * 2005-07-11 2010-03-23 International Business Machines Corporation Method and apparatus for handling of clock information in serial link ports
US20070098020A1 (en) * 2005-10-27 2007-05-03 Yee Ja Methods and arrangements to model an asynchronous interface
US7882322B2 (en) * 2006-06-27 2011-02-01 International Business Machines Corporation Early directory access of a double data rate elastic interface
US7739538B2 (en) * 2006-06-27 2010-06-15 International Business Machines Corporation Double data rate chaining for synchronous DDR interfaces
US7752475B2 (en) * 2006-06-27 2010-07-06 International Business Machines Corporation Late data launch for a double data rate elastic interface
US7783911B2 (en) * 2006-06-27 2010-08-24 International Business Machines Corporation Programmable bus driver launch delay/cycle delay to reduce elastic interface elasticity requirements
US7734944B2 (en) * 2006-06-27 2010-06-08 International Business Machines Corporation Mechanism for windaging of a double rate driver
US7739545B2 (en) * 2006-09-13 2010-06-15 International Business Machines Corporation System and method to support use of bus spare wires in connection modules
US7979616B2 (en) * 2007-06-22 2011-07-12 International Business Machines Corporation System and method for providing a configurable command sequence for a memory interface device
US7624244B2 (en) * 2007-06-22 2009-11-24 International Business Machines Corporation System for providing a slow command decode over an untrained high-speed interface
JP5921264B2 (ja) * 2012-03-09 2016-05-24 キヤノン株式会社 シリアル通信システムおよびその通信初期化の方法、並びにシリアル通信装置およびその通信初期化の方法
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
EP2946254B1 (de) * 2013-04-16 2017-06-21 Siemens Aktiengesellschaft Speicherprogrammierbare steuerung mit geringer latenzzeit
CN104348889B (zh) * 2013-08-09 2019-04-16 鸿富锦精密工业(深圳)有限公司 切换开关及电子装置
US9547609B2 (en) * 2013-10-25 2017-01-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Data interface for point-to-point communications between devices
DE102017217051A1 (de) 2017-09-26 2019-03-28 Spinner Gmbh Vorrichtung und Verfahren zur Übertragung von Daten zwischen zwei physikalischen Schnittstellen

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060280A (en) * 1986-09-30 1991-10-22 Canon Kabushiki Kaisha Masking control for image processing systems
RU2022345C1 (ru) * 1990-01-09 1994-10-30 Альберт Никитович Фойда Устройство сопряжения интерфейсов
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5560017A (en) * 1990-11-09 1996-09-24 Wang Laboratories, Inc. System with clock frequency controller responsive to interrupt independent of software routine and software loop repeatedly executing instruction to slow down system clock
DE4345604B3 (de) * 1992-03-06 2012-07-12 Rambus Inc. Vorrichtung zur Kommunikation mit einem DRAM
US5229668A (en) 1992-03-25 1993-07-20 North Carolina State University Of Raleigh Method and apparatus for high speed digital sampling of a data signal
US5424996A (en) * 1992-09-29 1995-06-13 Hewlett-Packard Company Dual transparent latch
US5649162A (en) * 1993-05-24 1997-07-15 Micron Electronics, Inc. Local bus interface
GB9316996D0 (en) * 1993-08-16 1993-09-29 D2B Systems Co Ltd Communication bus system and station for use in such system
US5394106A (en) * 1993-08-31 1995-02-28 Gadzoox Microsystems Apparatus and method for synthesis of signals with programmable periods
US5509038A (en) * 1994-04-06 1996-04-16 Hal Computer Systems, Inc. Multi-path data synchronizer system and method
JPH07311735A (ja) 1994-05-18 1995-11-28 Hitachi Ltd データ転送装置
US5598113A (en) * 1995-01-19 1997-01-28 Intel Corporation Fully asynchronous interface with programmable metastability settling time synchronizer
US5603050A (en) * 1995-03-03 1997-02-11 Compaq Computer Corporation Direct memory access controller having programmable timing
US5835729A (en) * 1996-09-13 1998-11-10 Silicon Graphics, Inc. Circuit to separate and combine color space component data of a video image
US5915128A (en) * 1997-01-29 1999-06-22 Unisys Corporation Serial speed-matching buffer utilizing plurality of registers where each register selectively receives data from transferring units or sequentially transfers data to another register
US5838936A (en) 1997-03-10 1998-11-17 Emulex Corporation Elastic bus interface data buffer
US6031847A (en) 1997-07-01 2000-02-29 Silicon Graphics, Inc Method and system for deskewing parallel bus channels
US6041417A (en) * 1998-06-04 2000-03-21 Hewlett-Packard Company Method and apparatus for synchronizing data received in an accelerated graphics port of a graphics memory system

Also Published As

Publication number Publication date
IL145275A (en) 2006-08-01
CZ302550B6 (cs) 2011-07-13
JP4384819B2 (ja) 2009-12-16
EP1166210A1 (en) 2002-01-02
KR100457868B1 (ko) 2004-11-18
HUP0200283A2 (hu) 2002-05-29
CA2366898C (en) 2005-04-12
BR0009250A (pt) 2001-11-27
PL200520B1 (pl) 2009-01-30
DE60002571T2 (de) 2004-04-29
US20020013875A1 (en) 2002-01-31
KR20010102501A (ko) 2001-11-15
US6671753B2 (en) 2003-12-30
IL145275A0 (en) 2002-06-30
EP1166210B1 (en) 2003-05-07
AU2925000A (en) 2000-09-28
JP2002539525A (ja) 2002-11-19
WO2000054163A1 (en) 2000-09-14
CA2366898A1 (en) 2000-09-14
CN1343335A (zh) 2002-04-03
HUP0200283A3 (en) 2004-12-28
ES2193940T3 (es) 2003-11-16
RU2212048C2 (ru) 2003-09-10
US6334163B1 (en) 2001-12-25
CN1129853C (zh) 2003-12-03
ATE239945T1 (de) 2003-05-15
DE60002571D1 (de) 2003-06-12
PL350133A1 (en) 2002-11-04

Similar Documents

Publication Publication Date Title
BRPI0009250B1 (pt) aparelho de interface elástica, método para o mesmo e respectivo sistema
JP6389188B2 (ja) 同期型デジタルシステムにおけるチップ間通信のための多重周波数クロックスキュー制御
US6268749B1 (en) Core clock correction in a 2/n mode clocking scheme
JP3644827B2 (ja) 外部負荷を考慮したdll回路
US5914996A (en) Multiple clock frequency divider with fifty percent duty cycle output
KR101014440B1 (ko) 슬레이브 qdr2 호환 보조프로세서
RU2213992C2 (ru) Динамический волновой конвейерный интерфейс и способ его применения
KR930005797B1 (ko) 마이크로 프로세서 리세트회로 및 방법과 컴퓨터시스템
US6114887A (en) Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme
CN1475012A (zh) 用于在缓冲存储系统中提供可靠传输的系统和方法
US5862373A (en) Pad cells for a 2/N mode clocking scheme
US7436917B2 (en) Controller for clock synchronizer
US6542999B1 (en) System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US5821784A (en) Method and apparatus for generating 2/N mode bus clock signals
US20030072400A1 (en) Programmable feedback delay phase-locked loop for high-speed input/output timing budget management and method of operation thereof
US20250007522A1 (en) Phase aligning multiple channel dividers without stopping vco root clock

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]

Free format text: INDEFIRO O PEDIDO DE ACORDO COM O ARTIGO 8O COMBINADO COM ARTIGO 13 DA LPI.

B12B Appeal against refusal [chapter 12.2 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 23/08/2016, OBSERVADAS AS CONDICOES LEGAIS.