BRPI0708189A2 - gravaÇÕes cooperativas atravÉs do canal de endereÇo de um barramento. - Google Patents

gravaÇÕes cooperativas atravÉs do canal de endereÇo de um barramento. Download PDF

Info

Publication number
BRPI0708189A2
BRPI0708189A2 BRPI0708189-8A BRPI0708189A BRPI0708189A2 BR PI0708189 A2 BRPI0708189 A2 BR PI0708189A2 BR PI0708189 A BRPI0708189 A BR PI0708189A BR PI0708189 A2 BRPI0708189 A2 BR PI0708189A2
Authority
BR
Brazil
Prior art keywords
payload
channel
bus
address
receiving device
Prior art date
Application number
BRPI0708189-8A
Other languages
English (en)
Inventor
Richard Gerard Hofmann
Terence J Lohman
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0708189A2 publication Critical patent/BRPI0708189A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

"GRAVAÇÕES COOPERATIVAS ATRAVES DO CANAL DE ENDEREÇO DE UM BARRAMENTO" É revelado um sistema de processamento e método para comunicação em um sistema de processamento através de um barramento. O sistema de processamento inclui um dispositivo de recepção, um barramento tendo primeiro, segundo e terceiro canais, e um dispositivo de envio configurado para endereçar o dispositivo de recebimento no primeiro canal, e ler uma carga útil a partir do dispositivo de recepção no segundo canal, o dispositivo de envio configurado ainda para gravar uma primeira parte de uma carga útil para o dispositivo de recepção no primeiro canal e uma segunda parte da carga útil para o dispositivo de recepção no terceiro canal.

Description

"GRAVAÇÕES COOPERATIVAS ATRAVÉS DO CANAL DE ENDEREÇO DE UM BARRAMENTO"
PEDIDOS RELACIONADOS
No presente pedido de patente reivindica prioridade para o Pedido Provisório 60/776.529 intitulado "Cooperative Writes Over Address Channel" depositado em 24 de fevereiro de 2006 e atribuído a este cessionário e aqui expressamente incorporado mediante referência.
O presente Pedido de Patente é relacionado aos seguintes pedidos co-pendentes de patente dos Estados Unidos:
"Auxiliary Writes Over Address Channel" tendo número de registro do representante 060485, depositado simultaneamente com o presente, atribuído ao cessionário do mesmo, e expressamente incorporado aqui como referência.
FUNDAMENTOS
Campo
A presente revelação se refere geralmente aos sistemas de processamento e, mais especificamente, aos sistemas e às técnicas para realizar gravações auxiliares através do canal de endereço de um barramento. Fundamentos
No âmago dos sistemas de processamento mais modernos está uma interconexão referida como barramento. O barramento move informações entre várias entidades de processamento no sistema. Atualmente, a maioria das arquiteturas de barramento é razoavelmente padronizada. Essas arquiteturas de barramento padronizadas têm, tipicamente, canais separados de leitura, gravação e endereço.
Esse tipo de arquitetura de barramento freqüentemente é encontrado nos sistemas de processamento com um ou mais processadores de uso geral suportados pela memória. Nesses sistemas, a memória provê um meio de armazenamento que mantém os programas e dados necessários pelos processadores para realizar suas funções. Um processador pode ler ou gravar a partir da/na memória mediante colocação de um endereço no canal de endereço1 e envio do sinal de controle de leitura/gravação, apropriado. Dependendo do estado do controle de leitura/gravação, o processador ou grava na memória através do canal de gravação ou lê a partir da memória através do canal de leitura. Nesses tipos de sistemas de processamento, assim como em muitos outros, é conveniente reduzir a latência de gravação e aumentar a largura de banda de gravação.
SUMÁRIO
É revelado um aspecto de um sistema de processamento. O sistema de processamento inclui um dispositivo de recepção, um barramento tendo primeiro, segundo e terceiro canais, e um dispositivo de envio configurado para endereçar o dispositivo de recepção no primeiro canal, e ler uma carga útil a partir do dispositivo de recepção do segundo canal, o dispositivo de envio configurado adicionalmente para gravar uma primeira parte de uma carga útil do dispositivo de recepção no primeiro canal e uma segunda parte da carga útil do dispositivo de recepção no terceiro canal.
É revelado outro aspecto de um sistema de processamento. Um sistema de processamento inclui um dispositivo de recepção, um barramento tendo primeiro, segundo e terceiro canais, meios para endereçar o dispositivo de recepção no primeiro canal, meios para ler uma carga útil a partir do dispositivo de recepção no segundo canal, e meios para gravar uma primeira parte de uma carga útil para o dispositivo de recepção no primeiro canal e uma segunda parte da carga útil para o dispositivo de recepção no terceiro canal.
Um aspecto de um método de comunicação entre um dispositivo de envio em um dispositivo de recepção através de um barramento é revelado. 0 barramento inclui primeiro, segundo e terceiro canais. 0 método inclui endereçar um dispositivo de recepção no primeiro canal, ler uma carga útil a partir do dispositivo de recepção no segundo canal, e gravar uma primeira parte de uma carga útil para o dispositivo de recepção no primeiro canal e uma segunda parte da carga útil para o dispositivo de recepção no terceiro canal.
Um aspecto de um dispositivo mestre de barramento é revelado. O dispositivo mestre de barramento inclui um processador, e uma interface de barramento configurada para estabelecer interface do processador com um barramento tendo primeiro, segundo e terceiro canais, a interface de barramento configurada adicionalmente para endereçar um dispositivo escravo no primeiro canal, receber uma carga útil a partir do dispositivo escravo no segundo canal, e gravar uma primeira parte de uma carga útil para o dispositivo escravo no primeiro canal e uma segunda parte da carga útil para o dispositivo escravo no terceiro canal.
Outro aspecto de um dispositivo mestre de barramento é revelado. O dispositivo mestre de barramento inclui um processador, e meios para estabelecer interface do processador com um barramento tendo primeiro, segundo e terceiro canais, os meios para estabelecer interface do processador com o barramento compreendendo meios para endereçar um dispositivo escravo no primeiro canal, meios para receber uma carga útil a partir do dispositivo escravo no segundo canal, e meios para gravar uma primeira parte de uma carga útil para o dispositivo escravo no primeiro canal e uma segunda parte da carga útil para o dispositivo escravo no terceiro canal.
Um aspecto de um dispositivo escravo é revelado. O dispositivo escravo inclui memória, e uma interface de barramento configurada para estabelecer interface da memória com um barramento tendo primeiro, segundo e terceiro canais, a interface de barramento configurada para receber um endereço e uma primeira parte de uma carga útil a partir de um dispositivo mestre de barramento no primeito canal, enviar uma carga útil para o dispositivo mestre de barramento no segundo canal, e receber uma segunda parte da carga útil a partir do dispositivo mestre de barramento no terceiro canal.
Outro aspecto de um dispositivo escravo é revelado. O dispositivo escravo inclui memória, e meios para estabelecer interface da memória com um barramento tendo primeiro, segundo e terceiro canais, os meios para estabelecer interface da memória com o barramento compreendendo meios para receber um endereço e uma primeira parte de uma carga útil a partir do dispositivo mestre de barramento no primeiro canal, meios para enviar uma carga útil para o dispositivo mestre de barramento no segundo canal, e meios para receber uma segunda parte da carga útil a partir do dispositivo mestre de barramento no terceiro canal.
Entende-se que outras modalidades da presente invenção serão facilmente evidentes para aqueles versados na técnica a partir de descrição detalhada seguinte, em que várias modalidades da invenção são mostradas e descritas como ilustração. Como será percebido, a invenção é capaz de outras e diferentes modalidades e seus vários detalhes são capazes de modificação em vários outros aspectos, todos sem divergir da presente invenção. Conseqüentemente, os desenhos e a descrição detalhada devem ser considerados de natureza ilustrativa e não restritiva.
BREVE DESCRIÇÃO DOS DESENHOS
Aspectos da presente invenção são ilustrados por intermédio de exemplo, e não como limitação, nos desenhos anexos onde:
A Figura 1 é um diagrama simplificado de blocos ilustrando um exemplo de dois dispositivos em um sistema de processamento se comunicando através de um barramento;
A Figura 2 é uma ilustração mostrando informações fluindo nos canais de endereço e gravação de um barramento no sistema de processamento da Figura 1 com o canal de endereço proporcionando um meio genérico para os endereços e dados.
A Figura 3 é um diagrama de temporização mostrando três operações de gravação através de um barramento no sistema de processamento da Figura 1;
A Figura 4 é um diagrama simplificado de blocos ilustrando um sistema de processamento coerente de cache 20 um recurso compartilhado através de uma interconexão de barramento;
A Figura 5 é uma ilustração mostrando as informações fluindo nos canais de endereço de gravação entre um dispositivo de processamento e a interconexão de barramento no sistema de processamento coerente de cache da Figura 4;
A Figura 6 é um diagrama simplificado de blocos ilustrando um exemplo de dois dispositivos em um sistema de processamento se comunicando através de um barramento de quatro canais; e
A Figura 7 é uma ilustração mostrando informações fluindo nos canais de endereço e gravação de um barramento de quatro canais no sistema de processamento da Figura 6 com os canais de endereço de leitura e gravação proporcionando uma mídia genérica para endereços e dados.
DESCRIÇÃO DETlVLHADA
A descrição detalhada apresentada abaixo em conexão com os desenhos anexos tem a finalidade de descrição de várias modalidades da presente invenção e não pretende representar as únicas modalidades nas quais a presente invenção pode ser praticada. A descrição detalhada inclui detalhes específicos com o propósito de prover um entendimento completo da presente invenção. Contudo, será evidente para aqueles versados na técnica que a presente invenção pode ser praticada sem esses detalhes específicos. Em alguns casos, estruturas e componentes conhecidos são mostrados na forma de diagrama de blocos para evitar obscurecer os conceitos da presente invenção.
A Figura 1 é um diagrama de blocos simplificado ilustrando um exemplo de dois dispositivos em um sistema de processamento se comunicando através de um barramento. 0 sistema de processamento 100 pode ser um conjunto de dispositivos de hardware que cooperam para formar uma ou mais funções de processamento. Aplicações típicas do sistema de processamento 100 incluem, mas não são limitadas aos computadores de mesa, computadores laptop, servidores, telefones celulares, assistentes pessoais digitais (PDA), consoles de jogos, pagers, modems, equipamento de áudio, dispositivos de uso médico, equipamento automotivo, equipamento de vídeo, equipamento industrial, ou qualquer outra máquina ou dispositivo capaz de processar, recuperar e armazenar informações.
O sistema de processamento 100 é mostrado com um dispositivo de envio 102 em comunicação com um dispositivo de recepção 104 através de um barramento 106. O barramento 106 inclui três canais: um canal de endereço 106a, um canal de gravação 106b, e um canal de leitura 106c. Um "canal" é definido como um conjunto de condutores elétricos usados para transportar informações entre dois dispositivos e o qual tem um conjunto de sinais de controle comuns. Nesse exemplo, cada canal tem 32 bits de largura. Tipicamente, uma interconexão de barramento (não mostrado) será usada para estabelecer um percurso de comunicação de ponto a ponto entre o dispositivo de envio 102 e o dispositivo de recepção 104 através do barramento 106. Alternativamente, o barramento 106 pode ser um barramento dedicado, um barramento compartilhado, ou qualquer outro tipo de arquitetura de barramento adequada.
O dispositivo de envio 102 pode ser qualquer tipo de dispositivo mestre de barramento. Nesse exemplo, o dispositivo de envio 102 inclui um processador 108 e uma interface de barramento 110. O processador 108 pode ser um processador de uso geral, tal como um microprocessador, um processador de uso especial, tal como um processador de sinal digital (DSP), um circuito integrado de aplicação especifica (ASIC), um controlador de acesso direto à memória (DMA), uma ponte, um componente lógico programável, ou qualquer outra entidade que requer acesso ao barramento 106. A interface de barramento 110 é usada para acionar os canais de endereço e gravação 106a, 106b, assim como para prover sinais de controle apropriados. A interface de barramento 110 também serve como um receptor para o canal de leitura 106c.
O dispositivo de recepção 104 pode ser qualquer tipo de dispositivo escravo. O dispositivo de recepção 104 pode ser memória temporária, tal como SDRAM, DRAM, ou RAM, ou um dispositivo de armazenamento de prazo mais longo tal como memória flash, memória ROM, memória EPROM, memória EEPROM, CD-ROM, DVD, disco magnético, disco ótico regravável, etc. Alternativamente, o dispositivo de recepção 104 pode ser uma ponte ou qualquer outro dispositivo capaz de recuperar e armazenar informações.
Nesse exemplo, o dispositivo de recepção 104 inclui uma interface de barramento 112 e memória 114. A interface be barramento 112 é usada para acionar o canal de leitura 106c e os sinais de controle apropriados. A interface de barramento 112 também serve como um receptor para os canais de endereço e gravação 106a, 106b. A memória 114 pode ser qualquer dispositivo cujo conteúdo possa ser acessado (isto é, lido a partir de, e gravado em) aleatoriamente.
Nessa arquitetura de barramento, o dispositivo de envio 102 pode ler ou gravar no dispositivo de recepção 104. Quando o dispositivo de envio 102 realiza uma operação de gravação, ele envia o endereço para o dispositivo de recepção 104 no canal de endereço 106a com os sinais de controle apropriados. A carga útil pode ser enviada seja no canal de endereço 106a, no canal de gravação 106b, ou em ambos. A "carga útil" se refere aos dados associados com uma operação especifica de leitura ou gravação, e nesse caso, uma operação de gravação. Quando o dispositivo de envio realiza uma operação de leitura, ele envia o endereço para o dispositivo de recepção 104 no canal de endereço 106a com os sinais de controle apropriados. Em resposta, o dispositivo de recepção 104 envia a carga útil para o dispositivo de envio 102 no canal de leitura 106c.
Um exemplo de duas operações de gravação será descrita agora com referência à Figura 2. A Figura 2 é uma ilustração mostrando as informações fluindo nos canais de endereço e gravação. Nesse exemplo, o dispositivo de envio inicia duas operações de gravação de 16 bytes. Com referência à Figura 2, no primeiro ciclo de relógio 202, o dispositivo de envio inicia a primeira operação de gravação de 16 bytes mediante envio de um endereço Al de 4-bytes para o dispositivo de recepção no canal de endereço 10 6a com sinais de controle apropriados. Durante o mesmo ciclo de relógio 202, o dispositivo Ide envio também envia os primeiros 4-bytes da primeira carga útil Wl(I) para o dispositivo de recepção no canal de gravação 106b.
No segundo ciclo de relógio 204, o dispositivo de envio utiliza ambos, o canal de endereço 106a e o canal de gravação 106b para enviar dados. O dispositivo de envio envia os segundos 4-bytes da primeira carga útil Wl(2) do canal de gravação 106b e os terceiros 4-bytes da primeira carga útil Wl(3) no canal de endereço 106a.
O dispositivo de envio inicia a próxima operação de gravação de 16 bytes durante o terceiro ciclo de relógio 206 mediante envio de um endereço de 4-bytes A2 para o dispositivo de recepção no canal de endereço 106a com sinais de controle apropriados. O dispositivo de envio completa a transmissão da primeira carga útil durante o mesmo ciclo de relógio da próxima operação de gravação mediante envio dos 4-bytes finais Wl(4) para o dispositivo de recepção no canal de gravação 106b.
O dispositivo de envio então utiliza os próximos dois ciclos de relógio para enviar a segunda carga útil para o dispositivo de recepção. No quarto ciclo de relógio 208, o dispositivo de envio envia para o dispositivo de recepção os primeiros 4-bytes da segunda carga útil W2(l) no canal de gravação 106b e os segundos quatro bytes da segunda carga útil W2(2) no canal de endereço 106a. No próximo ciclo de relógio 210, o dispositivo de envio envia para o dispositivo de recepção os terceiros 4-bytes da segunda carga útil W2(3) no canal de gravação 106b e os 4- bytes finais da segunda carga útil W2(4) no canal de endereço 106a.
Dois tipos de sinais de controle podem ser usados para suportar um meio para transmissão de endereços e dados. O primeiro sinal de controle, referido como um sinal "Endereço/Dados", é usado no canal de endereço 106a para indicar se as informações transmitidas são um endereço pu dados. Nesse exemplo, guando o sinal de Endereço/Dados é declarado, um endereço está sendo transmitido no canal de endereço 106a. Inversamente, guando o sinal de Endereço/Dados não declarado, os dados estão sendo transmitidos no canal de endereço 106a.
O segundo sinal de controle, referido como um "ID de Batimento", é utilizado em ambos, no canal de endereço 106a e no canal de gravação 106b para indicar o batimento da carga útil atual transmitida. Deve ser observado gue o "ID de Batimento" é um indicador baseado em zero de tal modo gue um valor de "0" indica o primeiro batimento da carga útil transmitida. Nesse exemplo, cada carga útil é transmitida em sua totalidade antes da próxima carga útil ser transmitida e, portanto, não existe a necessidade de sinalizar para identificar cada carga útil. Nas modalidades alternativas do sistema de processamento, onde as cargas úteis são transmitidas fora de ordem, ou os batimentos de diferentes cargas úteis são intercalados, a sinalização pode incluir números de següência de carga útil.
Um exemplo ilustrando como esses sinais de controle podem ser usados será descrito agora com referência à Figura 3. O protocolo de barramento para os canais de endereço e de gravação 106a, 106b é mostrado abaixo na Tabela 1. Esse protocolo de barramento está sendo usado para ilustrar os aspectos inventivos de um sistema de processamento, com o entendimento de que tais aspectos inventivos podem ser usados com outros protocolos de barramento. Aqueles versados na técnica facilmente serão capazes de variar e/ou adicionar sinais a esse protocolo na implementação efetiva das arquiteturas de barramento aqui descritas.
Tabela 1
<table>table see original document page 12</column></row><table> <table>table see original document page 13</column></row><table>
TABELA 2
<table>table see original document page 13</column></row><table> <table>table see original document page 14</column></row><table>
A Figura 3 é u diagrama de temporização mostrando a sinalização de controle para as mesmas duas operações de gravação de 16-bytes descritas acima em conexão com a Figura 2. Um Relógio de Sistema 306 pode ser usado para sincronizar as comunicações entre os dispositivos de envio e recepção. O Relógio de Sistema 306 é mostrado com cinco ciclos de relógio, com cada ciclo de Relógio numerado seqüencialmente.
A operação de gravação pode ser iniciada no canal de endereço 106a pelo dispositivo de envio durante o primeiro ciclo de relógio 301. Essa operação de gravação é realizada mediante transmissão do endereço Al para a primeira operação de gravação no meio de endereço de 32 bits 308. O dispositivo de envio declara o sinal AValido 312 para indicar que informações válidas estão sendo transmitidas no canal de endereço 106a. O dispositivo de envio 102 também declara o sinal Endereço/Dados 313 para indica que as informações transmitidas no canal de endereço 106a são um endereço. 0 dispositivo de envio 102 não declara o sinal de Leitura/Gravação 316 para solicitar uma operação de gravação. O sinal de Tamanho de Carga Útil 318 pode ser usado para indicar o tamanho da carga útil, o qual nesse caso é de 16-bytes. O estado do ID de Batimento de endereço 314 pode ser ignorado durante um tempo de posse de endereço no canal de endereço 106a.
Durante o mesmo primeiro ciclo de relógio 301, o dispositivo de envio utiliza o meio de gravação 320 para transmitir os primeiros 4-bytes da primeira carga útil Wl(I) e ajusta o ID de Batimento de gravação 326 para "00". O dispositivo de envio também declara o sinal WVálido 324 para indicar que informações válidas estão sendo transmitidas no canal de gravação 106b.
No fim do primeiro ciclo de relógio 301, o dispositivo de envio verifica um sinal de Confirmação de Transferência de Endereço Declarado 310 para confirmar o fornecimento bem-sucedido do endereço Al através do canal de endereço 106a para o dispositivo de recepção. 0 dispositivo de envio também verifica no sentido de um sinkl de Confirmação de Transferência de Gravação Declarado 322 para confirmar o fornecimento bem-sucedido dos primeiros 4 bytes da primeira carga útil Wl(I) através do canal de gravação 106b para o dispositivo de recepção.
No segundo ciclo de relógio 302, o dispositivo de envio utiliza o meio de gravação 320 para enviar os segundos 4-bytes da primeira carga útil Wl(2) e ajusta o ID de Batimento de gravação 326 para "01". O dispositivo de envio também declara o sinal de WVálido 324 para indicar que informações válidas estão sendo transmitidas no canal de gravação 106b.
Durante o mesmo segundo ciclo de relógio 302, o dispositivo de envio transmite os terceiros 4-bytes da primeira carga útil Wl(3) para o dispositivo de recepção no meio de endereço 308 e ajusta o ID de Batimento de endereço 314 para "10". 0 dispositivo de envio também declara o sinal de AVálido 312 para indicar que a informações válidas estão sendo transmitidas no canal de endereço 106a e não declara o sinal de Endereço/Dados 313 para indicar que as informações transmitidas no canal de endereço 106a são dados. O estado do sinal de Leitura/Gravação 316 e Tamanho de Carga Útil 318 pode ser ignorado durante o tempo de posse de dados no canal de endereço 106a. Na Figura 3, o sinal de Leitura/Gravação 316 e o Tamanho de Carga Útil 318 permanecem inalterados, porém poderiam ser ajustados para qualquer estado.
No fim do segundo ciclo de relógio 302, o dispositivo de envio verifica no sentido de um sinal de Confirmação de Transferência de Gravação declarado 322 para confirmar o fornecimento bem-sucedido dos segundos 4-bytfes da primeira carga útil Wl(2) através do canal de gravação 106b para o dispositivo de recepção. O dispositivo de envio também verifica no sentido de um sinal de confirmação de transferência de endereço declarado 310 para confirmar o fornecimento bem-sucedido dos terceiros 4-bytes da primeira carga útil Wl (3) através do canal de endereço 106a para o dispositivo de recepção.
No terceiro ciclo de relógio 303, o dispositivo de envio utiliza o meio de gravação 320 para enviar os 4- bytes finais da primeira carga útil Wl(4) e ajusta o ID de Batimento de gravação 326 para "11". O dispositivo de envio também declara o sinal de WVálido 324 para indicar que as informações válidas estão sendo transmitidas no canal de gravação 106b. Durante o mesmo terceiro ciclo de relógio 303 conforme concluindo a primeira operação de gravação, o dispositivo de envio transmite o endereço A2 para a segunda operação de gravação de 16-bytes no meio de endereço 308. O dispositivo de envio declara o sinal de AVálido 312 para indicar que informações válidas estão sendo transmitidas no canal de endereço 106a. O dispositivo de envio 102 também declara o sinal de Endereço/Dados 313 para indicar que as informações transferidas no canal de endereço 106a são um endereço A2. O dispositivo de envio 102 não declara o sinal de Leitura/Gravação 316 para solicitar uma operação de gravação. O sinal de Tamanho de Carga Útil 318 pode ser usado para indicar o tamanho da carga útil, o qual nesse caso é de 16 bytes. O estado do ID de Batimento de endereço 314 pode ser ignorado durante um tempo de posse de endereço no canal de endereço 106a.
No fim do terceiro ciclo de relógio 303, o dispositivo de envio verifica no sentido de um sinal de confirmação de transferência de endereço declarado 310 para confirmar o fornecimento bem-sucedido do endereço A2 através do canal de endereço 106a para o dispositivo de recepção. O dispositivo de envio também verifica no sentido de um sinal de confirmação de transferência de gravação declarado 322 para confirmar o fornecimento bem-sucedido dos 4 bytes finais da primeira carga útil Wl(4) através do canal de gravação 106b para o dispositivo de recepção.
O dispositivo de envio utiliza os próximos dois ciclos de relógio para enviar a segunda carga útil para o dispositivo de recepção. No quarto ciclo de relógio 304, o dispositivo de envio envia os primeiros 4-bytes da segunda carga útil W2(l) para o dispositivo de recepção utilizando o meio de gravação 320 e ajusta o ID de Batimento de gravação 326 para "00". 0 dispositivo de envio continua a declarar o sinal de WVálido 324 para indicar que informações válidas estão sendo transmitidas no canal de gravação 106b.
Durante o mesmo quarto ciclo de relógio 304, o dispositivo de envio transmite os segundos 4-bytes da segunda carga útil W2(2) no meio de Endereço 308, e ajusta o ID de Batimento de Endereço 314 para "01". O dispositivo de envio também declara o sinal de AValido 312 para indicar que as informações válidas estão sendo transmitidas no canal de endereço 106a e não declara o sinal de Endereço/Dados 313 para indicar que as informações transmitidas no canal de endereço 106a são dados. O estado do sinal de Leitura/Gravação 316 e o Tamanho de Carga Útil 318 podem ser ignorados durante um tempo de posse de dados no canal de endereço 106a.
No fim do quarto ciclo de relógio 304, o dispositivo de envio verifica no sentido de um sinal de Confirmação de Transferência de Gravação declarado 322 para confirmar o fornecimento bem-sucedido dos primeiros 4-bytes da segunda carga útil W2(1) através do canal de gravação 106b para o dispositivo de recepção. O dispositivo de envio também verifica no sentido de um sinal de Confirmação de Transferência de Endereço declarado 310 para confirmar o fornecimento bem-sucedido dos segundos 4-bytes da segunda carga útil W2(2) através do canal de endereço 106a para o dispositivo de recepção.
No quinto ciclo de relógio 305, o dispositivo de envio envia os terceiros 4-bytes da segunda carga útil W2(3) para o dispositivo de recepção utilizando o meio de gravação 320 e ajusta o ID de Batimento de gravação 326 para "10". O dispositivo de envio declara o sinal de WVálido 324 para indicar que informações válidas estão sendo transmitidas no canal de gravação 106b.
Durante o mesmo quinto ciclo de relógio 305, o dispositivo de envio transmite os 4-bytes finais da segunda carga útil W2 (4) no meio de endereço 308 e ajusta o ID de Batimento de endereço 314 para "11". O dispositivo de envio também declara o sinal AVálido 312 para indicar que informações válidas estão sendo transmitidas no canal de endereço 106a e não declara o sinal de Endereço/Dados 313 para indicar que as informações transmitidas no canal de endereço 106a. são dados. O estado do sinal de leitura/gravação 316 e o tamanho de carga útil 318 podem ser ignorados durante um tempo de posse de dados no canal de endereço 106ya. No fim do quinto ciclo de relógio 305, o dispositivo de envio verifica no sentido de um sinal de confirmação de transferência de gravação declarado 322 para confirmar o fornecimento bem-sucedido dos terceiros 4-bytes da segunda carga útil W2(3) através do canal de gravaçao 106b para o dispositivo de recepção. O dispositivo de envio também verifica no sentido de um sinal de Confirmação de Transferência de Endereço declarado 310 para confirmar o fornecimento bem-sucedido dos 4-bytes finais da segunda carga útil W2(4) através do canal de endereço 106a para o dispositivo de recepção.
Uma redução em sinalização pode ser realizada mediante substituição do ID de Batimento com um esquema de endereçamento implícito. Um exemplo de tal esquema de endereçamento implícito é mostrado na Figura 2. Nesse exemplo, o esquema de endereçamento implícito requer que a próxima seqüência de 4-bytes da carga útil atual seja transmitida no ciclo de relógio mais antigo disponível, com preferência dada para o canal de gravação 106b em relação ao canal de endereço 10 6a.
Com referência à Figura 2, o ciclo de relógio mais antigo disponível para enviar os primeiros 4-bytes da primeira carga útil W1(1) é o primeiro ciclo de relógio 202 e o canal de cjravação 106b está disponível durante aquele ciclo de relógio 202. O ciclo de relógio mais antigo disponível para enviar os segundos 4-bytes da primeira carga útil Wl(2) é o segundo ciclo de relógio 204, e outra vez o canal de gravação 106b está disponível. O segundo ciclo de relógio 204 também está disponível para transmitir os terceiros 4-bytes da primeira carga útil W1(3), porém o canal de gravação 106b não está disponível. Desse modo, os terceiros 4-bytes da primeira carga útil W1(3) são transmitidos no canal de endereço 106a. O ciclo de relógio mais antigo disponível para enviar os 4-bytes finais da primeira carga útil Wl(4) é o terceiro ciclo de relógio 206, e outra vez o canal de gravação 106b está disponível.
Durante o terceiro ciclo de relógio 206, o endereço A2 da segunda operação de gravação é transmitida para o dispositivo de recepção. Contudo, o canal (de gravação 106a não está disponível para enviar os primeiros 4-bytes da segunda carga útil W2(l) porque é necessário durante o terceiro ciclo de relógio 206 enviar os 4-bytes finais da primeira carga útil Wl(4). O ciclo de relógio mais antigo disponível para enviar os primeiros 4-bytes da segunda carga útil W2(l) é o quarto ciclo de relógio 208 e o canal de gravação 106b está disponível durante aquele ciclo de relógio 208. O quarto ciclo de relógio 208 também está disponível para transmitir os segundos 4-bytes da segunda carga útil W2(2), porém o canal de gravação 106b não está disponível. Desse modo, os segundos quatro bytes da segunda carga útil W2(2) são transmitidos no canal de endereço 106a. O ciclo de relógio mais antigo disponível para envio dos 8-bytes finais da segunda carga útil W2 (3)., W2(4) é o quinto ciclo de relógio 210. Os terceiros 4-bytes da segunda carga útil W2(3) são transmitidos no canal de gravação 106b, isto é, o canal preferido, e os 4-bytes finais da segunda carga útil W2(4) são transmitidos no canal de endereço 106a.
O uso do canal de endereço como um meio para transmitir endereços e dados pode ser empregado em vários ambientes de processamento. Como exemplo, essa técnica pode ser usada para reduzir a quantidade de tempo que leva para que um processador adquira uma linha de cache a partir de outro processador em um sistema coerente de cache imposto por hardware. Esse exemplo será descrito adicionalmente com referência à Figura 4. O sistema de processamento coerente de cache 400 é mostrado na Figura 4 com dois dispositivos de processamento 402a, 402b em comunicação com um recurso compartilhado, tal como um dispositivo de memória 404, através de uma interconexão de barramento 406. Nesse exemplo o primeiro dispositivo de processamento 402a lê j a partir do dispositivo de memória 404 mediante colocação de um endereço em seu canal de endereço 406ai com os sinais de controle apropriados. O endereço é enviado para o dispositivo de memória 404 pela interconexão de barramento 406 no canal de endereço 406a3 da memória. Em resposta, a interface de barramento 408 recupera um bloco de dados a partir da memória 410 e coloca o mesmo no canal de leitura 4O6C3 da memória. A interconexão de barramento 406 envia os dados a partir do dispositivo de memória 404 para o primeiro dispositivo de processamento 402a através do primeiro canal de leitura 406ci do dispositivo processador. Quando recebidos pelo primeiro dispositivo de processamento 402a, os dados podem ser colocados em cache 412, modificados por um processador 414 e gravados de volta para o dispositivo de memória 404 pela interface de barramento 416. A operação de gravação pode ser realizada da mesma maneira conforme descrito acima em conexão com as Figuras 2 e 3.
A coerência de cache lida com a situação onde o segundo dispositivo de processamento 402b subseqüentemente tenta ler a partir do mesmo endereço. Sem um mecanismo para garantir coerência de cache, o segundo dispositivo de processamento 402b poderia receber dados antiquados a partir do dispositivo de memória 404 se os dados no cache 412 do primeiro dispositivo de processamento 402a tivessem sido modificados, porém ainda não gravados de volta para o dispositivo de memória 404. Um processo referido como "espionagem" é comumente usado para manter coerência entre o cache e a memória. Espionagem é o processo onde um dispositivo de processamento, tal como o segundo dispositivo de processamento 402b nesse exemplo, expede uma solicitação de leitura para um endereço que pode ser armazenado em cache no dispositivo de memória 404 não-presente em seu próprio cache 418, o que faz com que a interconexão de barramento 406 transmita um endereço de espionagem para os outros dispositivos de processamento no sistema antes de enviar a solicitação de leitura para o dispositivo de memória 404 para os dados. Se outros dispositivos de processamento, tal como o primeiro dispositivo de processamento 402a, tiver os dados solicitados armazenados em seu cache 412 em um estado modificado, ele gravará os dados modificados de volta para o dispositivo de memória 404. Simultaneamente, a interconexão de barramento 406 enviará os dados modificados para o segundo dispositivo de processamento 402b através do canal de leitura 406c2 entre os mesmos. O segundo dispositivo de processamento 402b colocará os dados modificados no cache 418 para uso pelo processador 422.
A Figura 5 é uma ilustração mostrando as informações fluindo nos canais de endereço e de gravação 406a1^1, 406bi entre o primeiro dispositivo de processamento 402a e a interconexão de barramento 406. Com referência às Figuras 4 e 5, o primeiro dispositivo de processamento 402a grava uma carga útil de 32-bytes a partir de seu cache 412 para o dispositivo de memória 404 em resposta a um endereço de espionagem transmitido pela interconexão de barramento 406. A operação de gravação é realizada mediante envio da carga útil de 32-bytes para a interconexão de barramento 406 utilizando ambos os canais de endereço e de gravação 406ai, 406bi. No primeiro ciclo de relógio 502, o primeiro dispositivo de processamento 402a envia o endereço A espionado para a interconexão de barramento 406 em seu canal de endereço 406ai com os sinais de controle apropriados. Durante o mesmo ciclo de relógio 502, os primeiros 4-bytes da carga útil W(I) são enviados pelo primeiro dispositivo de processamento 402a para a interconexão de barramento 406 no canal de gravação 406bi.
O restante da carga útil é enviado a partir do primeiro dispositivo de processamento 402a para a interconexão de barramento 406 através dos próximos quatro ciclos de relógio. No segundo ciclo de relógio 504, o primeiro dispositivo de processamento 402a envia os segundos 4-bytes da carga útil W (2) no canal de gravação 406bi e terceiros 4-bytes da carga útil W (3) no canal de endereço 406ai. Os quartos 4-bytes da carga útil W(4), os sextos 4-bytes da carga útil W(6), e os 4-bytes finais da carga útil W (8) são enviados pelo primeiro dispositivo de processamento 402a para a interconexão de barramento 406 no canal de gravação 406bi através dos próximos três ciclos de relógio 506, 508 e 510. Os quintos 4-bytes da carga útil W (5) e os sétimos 4-bytes da carga útil W (7) são enviados pelo primeiro dispositivo de processamento 402a para interconexão de barramento 406 no canal de endereço 406ai através dos próximos dois ciclos de relógio 506, 508.
A interconexão de barramento 406 pode enviar a carga útil de 32-bytes para o dispositivo de memória 404 de uma maneira similar utilizando ambos os canais de endereço e gravação 406a3, 406b3 para enviar a carga útil em cinco ciclos de relógio. A interconexão de barramento 406 também envia a carga útil de 32-bytes para o segundo dispositivo de processamento 402b no canal de leitura 406c2 em oito ciclos de relógio em resposta à solicitação de leitura original do dispositivo de processamento 402b. A transmissão da carga útil de 32-bytes para o dispositivo de memória 404 e o segundo dispositivo de processamento 402 pode sobrepor-se ou seguir a transmissão da carga útil a partir do primeiro dispositivo de processamento 402a e da interconexão de barramento 406.
Uma explanação da sinalização de controle, a qual foi descrita em detalhe em conexão com a Figura 3, não será agora repetida aqui exceto para dizer que o ID de Batimento para ambos os canais de endereço de gravação 406ai, 406bi não precisará ser expandido para um código de 3 bits para lidar com uma carga útil de 8 batimentos.
A Figura 6 é um diagrama de blocos simplificado ilustrando um exemplo de dois dispositivos em um sistema de processamento 600 se comunicando através de um barramento de 4 canais. Um canal de endereço separado e independente é provido para cada canal de leitura e gravação. Nesse exemplo, cada canal tem 32 bits de largura, porém pode ser qualquer largura na prática dependendo da aplicação especifica e de limitações de projeto em geral. Uma operação de gravação através do barramento de 4 canais pode ser realizada mediante envio para o dispositivo de recepção 604 de um endereço no canal de endereço de gravação 606a e dados no canal de endereço de gravação 606a, o canal de gravação 606b, e/ou o canal de endereço de leitura 606d.
Uma operação de leitura através do barramento de 4 canais é realizada mediante envio para o dispositivo de recepção 604 de um endereço em um canal de endereço de leitura 606d. Em resposta, o dispositivo de recepção 604 envia a carga útil para o dispositivo de envio 602 no canal de leitura 606c.
A Figura 7 é uma ilustração mostrando as informações fluindo no endereço de gravação, endereço de leitura, e canais de gravação entre o dispositivo de envio e o dispositivo de recepção através de um barramento de 4 canais. No primeiro ciclo de relógio 702, o dispositivo de envio inicia a primeira operação de gravação de 16-bytes mediante envio de um endereço Al de 4-bytes para o dispositivo de recepção no canal de endereço de gravação 606a com sinais de controle apropriados. Durante o mesmo ciclo de relógio 7 02, o dispositivo de envio também transmite os primeiros 4-bytes da primeira carga útil Wl(I) no canal de gravação 606b e os segundos 4-bytes da mesma carga útil Wl(2) no canal de endereço de leitura 606d.
No segundo ciclo de relógio 704, o restante da primeira carga útil é enviado pelo dispositivo de envio para o dispositivo de recepção. Mais especificamente, no segundo ciclo de relógio 704 quando concluindo a primeira operação de gravação, o dispositivo de envio transmite os terceiros 4-bytes da primeira carga útil Wl(3) no canal de gravação 606b e os 4-bytes finais da primeira carga útil Wl(4) no canal de endereço de leitura 606d. Durante o mesmo ciclo de relógio 704, o dispositivo de envio envia o endereço A2 para a segunda operação de gravação de 16-bytes para o dispositivo de recepção no canal de endereço de gravação 606a.
O dispositivo de envio então utiliza os próximos dois ciclos de relógio para enviar a segunda carga útil para o dispositivo de recepção. No terceiro ciclo de relógio 706, o dispositivo de envio envia para o dispositivo de recepção os primeiros 4-bytes da segunda carga útil W2(l) no canal de gravação 606b, os segundos 4- bytes da segunda carga útil W2(2) no canal de endereço de leitura 606d, e os terceiros 4-bytes da segunda carga útil W2(3) no canal de endereço de gravação 606a. No próximo ciclo de relógio 708, o dispositivo de envio envia os 4- bytes finais da segunda carga útil W2(4) no canal de gravação 606b para o dispositivo de recepção. Os vários blocos lógicos ilustrativos, módulos e circuitos descritos em conexão com as modalidades aqui reveladas podem ser implementados ou realizados com um processador de uso geral, um processador de sinal digital (DSP), um circuito integrado de aplicação especifica (ASIC), um arranjo de portas programáveis em campo (FPGA) ou outro componente lógico programável, lógica de transistor ou porta discreta, componentes discretos de hardware, ou qualquer combinação dos mesmos, projetados para realizar as funções aqui descritas. Um processador de uso geral pode ser um microprocessador, porém na alternativa, o processador pode ser qualquer processador convencional, controlador, microcontrolador, ou máquina de estado. Um processador também pode ser implementado como uma combinação de componentes de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra tal configuração.
Os métodos ou algoritmos descritos em conexão com as modalidades aqui reveladas podem ser incorporados diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação dos dois. Um módulo de software pode residir em memória RAM, memória flash, memória ROM, memória EPROM, memória EEPROM, registradores, disco rigido, um disco removível, um CD-ROM, ou qualquer outra forma de meio de armazenamento conhecido na técnica. Um meio de armazenamento pode ser acoplado ao processador de tal modo que o processador pode ler informações a partir do meio de armazenamento e gravar informações no meio de armazenamento. Na alternativa, o meio de armazenamento pode ser integral ao processador. 0 processador e o meio de armazenamento podem residir em um ASIC. O ASIC pode residir no componente de envio e/ou de recepção, ou em outro lugar. Na alternativa o processador, e o meio de armazenamento, podem residir como componentes discretos no componente de envio e/ou recepção, ou em outro lugar.
A descrição anterior das modalidades reveladas é provida para habilitar aqueles versados na técnica a realizar ou utilizar a presente invenção. Várias modificações dessas modalidades serão facilmente evidentes por aqueles versados na técnica, e os princípios genéricos aqui definidos podem ser aplicados a outras modalidades sem se afastar do espírito ou escopo da invenção. Desse modo, não se pretende que a presente invenção seja limitada às modalidades aqui mostradas, porém deve ser concedido o mais amplo escopo compatível com os princípios e características novéis aqui revelados.

Claims (42)

1. Um sistema de processamento, compreendendo: um dispositivo de recepção; um barramento possuindo primeiro, segundo e terceiro canais; e um dispositivo de envio configurado para endereçar um dispositivo de recepção no primeiro canal, e ler uma carga útil a partir do dispositivo de recepção no segundo canal, o dispositivo de envio configurado adicionalmente para gravar uma primeira parte de uma carga útil para o dispositivo de recepção no primeiro canal e uma segunda parte da carga útil para o dispositivo de recepção no terceiro canal.
2. O sistema de processamento, de acordo com a reivindicação 1, em que o dispositivo de envio é configurado adicionalmente para gravar simultaneamente as primeira e a segunda partes da carga útil para o dispositivo de recepção.
3. O sistema de processamento, de acordo com a reivindicação 1, em que o dispositivo de envio é configurado adicionalmente para endereçar simultaneamente o dispositivo de recepção e gravar a segunda parte da carga útil para o dispositivo de recepção.
4. O sistema de processamento, de acordo com a reivindicação 1, em que o dispositivo de envio é configurado adicionalmente para gravar as primeira e segunda partes da carga útil para um primeiro endereço do dispositivo de recepção, o dispositivo de envio configurado adicionalmente para enviar um segundo endereço para o dispositivo de recepção no primeiro canal simultaneamente com a gravação da segunda parte da carga útil para o dispositivo de recepção.
5. O sistema de processamento, de acordo com a reivindicação 1, em que o dispositivo de envio compreende um primeiro dispositivo de processamento e o dispositivo de recepção compreende uma interconexão de barramento, o sistema de processamento compreendendo adicionalmente um segundo dispositivo de processamento, a interconexão de barramento configurada para conectar os primeiro e segundo dispositivos de processamento para um recurso compartilhado, e em que o primeiro dispositivo de processamento é configurado adicionalmente para gravar as primeira e segunda partes de uma carga útil para a interconexão de barramento em resposta a um endereço de espionagem a partir do segundo dispositivo de processamento.
6. O sistema de processamento, de acordo com a reivindicação 1, em que o barramento compreende adicionalmente um quarto canal, o dispositivo de envio configurado adicionalmente para endereçar o dispositivo de recepção no primeiro canal para gravar operações e endereçar o dispositivo de recepção no quarto canal para operações de leitura, e em que o dispositivo de envio é' configurado adicionalmente para gravar uma terceira parte da carga útil para o dispositivo de recepção no quarto canal.
7. O sistema de processamento, de acordo com a reivindicação 6, em que o dispositivo de envio é configurado adicionalmente para simultaneamente gravar a primeira, segunda e terceira partes da carga útil para o dispositivo de recepção.
8. O sistema de processamento, de acordo com a reivindicação 6, em que o dispositivo de envio é configurado adicionalmente para gravar as primeira, segunda e terceira partes da carga útil para um primeiro endereço do dispositivo de recepção, o dispositivo de envio configurado adicionalmente para enviar um segundo endereço para o dispositivo de recepção no primeiro canal simultaneamente com a gravação da segunda ou terceira parte da carga útil para o dispositivo de recepção.
9. O sistema de processamento, de acordo com a reivindicação 1, em que o dispositivo de envio é adicionalmente configurado para prover um sinal de controle para o dispositivo de recepção indicando se o primeiro canal está sendo atualmente utilizado para endereçar o dispositivo de recepção ou gravar a primeira parte da carga útil para o dispositivo de recepção.
10. O sistema de processamento, de acordo com a reivindicação 1, em que o dispositivo de envio é adicionalmente configurado para prover um sinal de controle em cada um dentre os primeiro e terceiro canais para o dispositivo de recepção, cada um dentre os sinais de controle identificando a parte da carga útil enviada em seu canal correspondente.
11. Um sistema de processamento, compreendendo: um dispositivo de recepção; um barramento possuindo primeiro, segundo e terceiro canais; meios para endereçar o dispositivo de recepção no primeiro canal; meios para ler uma carga útil a partir do dispositivo de recepção no segundo canal; e meios para gravar uma primeira parte de uma carga útil para o dispositivo de recepção no primeiro canal e uma segunda parte da carga útil para o dispositivo de recepção no terceiro canal.
12. Um método de comunicação entre um dispositivo de envio e um dispositivo de recepção através da um barramento, o barramento compreendendo primeiro, segundo e terceiro canais, o método compreendendo: endereçar um dispositivo de recepção no primeiro canal; ler uma carga útil a partir do dispositivo de recepção no segundo canal; e gravar uma primeira parte de uma carga útil para o dispositivo de recepção no primeiro canal e uma segunda parte da carga útil para o dispositivo de recepção no terceiro canal.
13. O método, de acordo com a reivindicação 12, em que as primeira e a segunda partes da carga útil são gravadas simultaneamente para o dispositivo de recepção.
14. O método, de acordo com a reivindicação 12, em que o dispositivo de recepção é endereçado simultaneamente com a gravação da segunda parte da carga útil para o dispositivo de recepção.
15. O método, de acordo com a reivindicação 12, em que as primeira e a segunda partes da carga útil são gravadas para um primeiro endereço do dispositivo de recepção, o endereçamento do dispositivo de recepção compreendendo adicionalmente enviar um segundo endereço para o dispositivo de recepção no primeiro canal simultaneamente com a gravação da segunda parte da carga útil para o dispositivo de recepção.
16. O método, de acordo com a reivindicação 12, em que o dispositivo de envio compreende um primeiro dispositivo de processamento e o dispositivo de recepção compreende uma interconexão de barramento, o sistema de processamento compreendendo adicionalmente um segundo dispositivo de processamento, a interconexão de barramento configurada para conectar os primeiro e o segundo dispositivos de processamento a um recurso compartilhado, e em que as primeira e segunda partes de uma carga útil são gravadas para a interconexão de barramento em resposta a um endereço de espionagem a partir do segundo dispositivo de processamento.
17. O método, de acordo com a reivindicação 12, em que o barramento compreende adicionalmente um quarto canal, o endereçamento do dispositivo de recepção no primeiro canal para operações de gravação, o método compreendendo adicionalmente endereçar o dispositivo de recepção no quarto canal para operações de leitura, e gravar uma terceira parte da carga útil para o dispositivo de recepção no quarto canal.
18. O método, de acordo com a reivindicação 17, em que o dispositivo de envio é adicionalmente configurado para simultaneamente gravar as primeira, segunda e terceira partes da carga útil para o dispositivo de recepção.
19. O método, de acordo com a reivindicação 18, em que as primeira, segunda e terceira partes da carga útil são gravadas para um primeiro endereço do dispositivo de recepção, o método compreendendo adicionalmente enviar um segundo endereço para o dispositivo de recepção no primeiro canal simultaneamente com a gravação da segunda ou terceira parte da carga útil para o dispositivo de recepção.
20. O método, de acordo com a reivindicação 12, compreendendo adicionalmente prover um sinal de controle para o dispositivo de recepção indicando se o primeiro canal está sendo atualmente utilizado para endereçar o dispositivo de recepção ou gravar a primeira parte da carga útil para o dispositivo de recepção.
21. O método, de acordo com a reivindicação 12, compreendendo adicionalmente um sinal de controle em cada um dentre os primeiro e terceiro canais para o dispositivo de recepção, cada um dentre os sinais de controle identificando a parte da carga útil enviada em seu canal correspondente.
22. Um dispositivo mestre de barramento, compreendendo: um processador; e uma interface de barramento configurada para realizar interface do processador com um barramento possuindo primeiro, segundo e terceiro canais, a interface de barramento configurada adicionalmente para endereçar um escravo no primeiro canal, receber uma carga útil a partir do escravo no segundo canal, e gravar uma primeira parte da carga útil para o escravo no primeiro canal e uma segunda parte da carga útil para o escravo no terceiro canal.
23. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que a interface de barramento é adicionalmente configurada para gravar simultaneamente as primeira e a segunda partes da carga útil para o escravo.
24. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que a interface de barramento é configurada adicionalmente para endereçar simultaneamente o escravo e gravar a segunda parte da carga útil para o escravo.
25. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que a interface de barramento é configurada adicionalmente para gravar as primeira e a segunda partes da carga útil para um primeiro endereço do escravo, a interface de barramento configurada adicionalmente para enviar um segundo endereço para o escravo no primeiro canal simultaneamente com a gravação da segunda parte da carga útil para o escravo.
26. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que o escravo compreende uma interconexão de barramento configurada para conectar o dispositivo mestre de barramento e um segundo dispositivo mestre de barramento a um recurso compartilhado, e em que o dispositivo mestre de barramento é configurado adicionalmente para gravar a primeira e segunda partes de uma carga útil para a interconexão de barramento em resposta a um endereço de espionagem a partir do segundo dispositivo mestre de barramento.
27. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que o barramento compreende adicionalmente um quarto canal, a interface de barramento configurada adicionalmente para endereçar o escravo no primeiro canal para operações de gravação e endereçar o escravo no quarto canal para operações de leitura, e em que a interface de barramento é configurada adicionalmente para gravar uma terceira parte da carga útil para o escravo no quarto canal.
28. O dispositivo mestre de barramento, de acordo com a reivindicação 27, em que a interface de barramento é configurada adicionalmente para simultaneamente gravar as primeira, segunda e terceira partes da carga útil para o escravo.
29. O dispositivo mestre de barramento, de acordo com a reivindicação 27, em que a interface de barramento é configurada adicionalmente para gravar as primeira, segunda e terceira partes da carga útil para um primeiro endereço do escravo, a interface de barramento configurada adicionalmente para enviar um segundo endereço para o escravo no primeiro canal simultaneamente com a gravação da segunda ou terceira parte da carga útil para o escravo.
30. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que a interface de barramento é adicionalmente configurada para prover um sinal de controle para o escravo indicando se o primeiro canal está sendo atualmente utilizado para endereçar o escravo ou gravar a primeira parte da carga útil para o escravo.
31. O dispositivo mestre de barramento, de acordo com a reivindicação 22, em que a interface de barramento é adicionalmente configurada para prover um sinal de controle em cada um dentre os primeiro e terceiro canais para * o escravo, cada um dentre os sinais de controle identificando a parte da carga útil enviada em seu canal correspondente1.
32. Um dispositivo mestre de barramento, compreendendo: um processador; e meios para realizar interface do processador com um barramento possuindo primeiro, segundo e terceiro canais, os meios para realizar interface do processador com o barramento compreendendo meios para endereçar um escravo no primeiro canal, meios para receber uma carga útil a partir do escravo no segundo canal, e meios para gravar uma primeira parte de uma carga útil para o escravo no primeiro canal e uma segunda parte da carga útil para o escravo no terceiro canal,.
33. Um dispositivo escravo, compreendendo: memória; e uma interface de barramento configurada para realizar interface da memória com um barramento possuindo primeiro, segundo e terceiro canais, a interface de barramento configurada para receber um endereço e uma primeira parte de uma carga útil a partir de um dispositivo mestre de barramento no primeiro canal, enviar uma carga útil para o dispositivo mestre de barramento no segundo canal, e receber uma segunda parte da carga útil a partir do dispositivo mestre de barramento no terceiro.
34. O dispositivo escravo, de acordo com a reivindicação 33, em que a interface de barramento é configurada adicionalmente para receber simultaneamente as primeira e segunda partes da carga útil.
35. O dispositivo escravo, de acordo com a reivindicação 33, em que a interface de barramento é configurada adicionalmente para receber simultaneamente o endereço e a segunda parte da carga útil.
36. Odispositivo escravo, de acordo com a reivindicação 33, em que a interface de barramento ; é configurada adicionalmente para gravar as primeira e segunda partes da carga útil para um primeiro endereço na memória, a interface de barramento configurada adicionalmente para receber um segundo endereço no primeiro canal simultaneamente com a segunda parte da carga útil.
37. O dispositivo escravo, de acordo com a reivindicação 33, em que o barramento compreende adicionalmente um quarto canal, a interface de barramento configurada adicionalmente para receber o endereço no primeiro canal para operações de gravação e receber um endereço no quarto canal para uma operação de leitura, e em que a interface de barramento é configurada adicionalmente para receber uma terceira parte da carga útil a partir do dispositivo mestre de barramento no quarto canal.
38. O dispositivo escravo, de acordo com a reivindicação 37, em que a interface de barramento é configurada adicionalmente para receber simultaneamente as primeira, segunda e terceira partes da carga útil.
39. O dispositivo escravo, de acordo com a reivindicação 37, em que a interface de barramento é configurada adicionalmente para gravar as primeira, segunda e terceira partes da carga útil para um primeiro endereço na memória, a interface de barramento configurada adicionalmente para receber um segundo endereço a partir do dispositivo mestre de barramento no primeiro canal simultaneamente com o recebimento da segunda ou terceira parte da carga útil.
40. O dispositivo escravo, de acordo com a reivindicação 33, em que a interface de barramento ■ é configurada adicionalmente para receber um sinal de controle a partir do dispositivo mestre de barramento indicando se o primeiro canal está sendo atualmente utilizado para enviar o endereço ou a primeira parte da carga útil.
41. O dispositivo escravo, de acordo com a reivindicação 33, em que a interface de barramento é configurada adicionalmente para receber um sinal de controle em cada um dentre os primeiro e terceiro canais a partir do dispositivo mestre de barramento, cada um dentre os sinais de controle identificando a parte da carga útil enviada em seu canal correspondente.
42. Um dispositivo escravo, compreendendo: memória; e meios para realizar, interface da memória com um barramento possuindo primeiro, segundo e terceiro canais, os meios para realizar interface da memória com o barramento compreendendo meios para receber um endereço e uma primeira parte de uma carga útil a partir de um dispositivo mestre de barramento no primeiro canal, meios para enviar uma carga útil para o dispositivo mestre de barramento no segundo canal, e meios para receber uma segunda parte da carga útil a partir do dispositivo mestre de barramento no terceiro canal.
BRPI0708189-8A 2006-02-24 2007-02-23 gravaÇÕes cooperativas atravÉs do canal de endereÇo de um barramento. BRPI0708189A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US77652906P 2006-02-24 2006-02-24
US60/776,529 2006-02-24
US11/468,908 US8107492B2 (en) 2006-02-24 2006-08-31 Cooperative writes over the address channel of a bus
US11/468,908 2006-08-31
PCT/US2007/062761 WO2007101134A1 (en) 2006-02-24 2007-02-23 Cooperative writes over the address channel of a bus

Publications (1)

Publication Number Publication Date
BRPI0708189A2 true BRPI0708189A2 (pt) 2012-06-12

Family

ID=38123722

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0708189-8A BRPI0708189A2 (pt) 2006-02-24 2007-02-23 gravaÇÕes cooperativas atravÉs do canal de endereÇo de um barramento.

Country Status (11)

Country Link
US (2) US8107492B2 (pt)
EP (2) EP2360599A3 (pt)
JP (1) JP5254044B2 (pt)
KR (2) KR101081301B1 (pt)
CN (1) CN104199798B (pt)
BR (1) BRPI0708189A2 (pt)
CA (1) CA2640317C (pt)
MX (1) MX2008010822A (pt)
RU (1) RU2405195C2 (pt)
TW (1) TWI341468B (pt)
WO (1) WO2007101134A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108563B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Auxiliary writes over address channel
US8107492B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Cooperative writes over the address channel of a bus
WO2008013968A2 (en) 2006-07-28 2008-01-31 Vast Systems Technology Corporation Virtual processor generation model for co-simulation
WO2008091575A2 (en) * 2007-01-22 2008-07-31 Vast Systems Technology Corporation Method and system for modeling a bus for a system design incorporating one or more programmable processors
JP4862100B1 (ja) * 2011-03-25 2012-01-25 好一 北岸 中央演算処理装置及びマイクロコンピュータ
US8516225B2 (en) 2011-03-25 2013-08-20 Koichi Kitagishi Central processing unit and microcontroller
KR101178293B1 (ko) 2011-03-25 2012-08-29 마사미 후쿠시마 중앙 처리 장치 및 마이크로컨트롤러
US9258244B1 (en) 2013-05-01 2016-02-09 Sandia Corporation Protocol for communications in potentially noisy environments
KR102206313B1 (ko) * 2014-02-07 2021-01-22 삼성전자주식회사 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법
DE102018001574B4 (de) * 2018-02-28 2019-09-05 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0202485B1 (en) * 1985-04-22 1993-11-18 Nec Corporation Method of determining optimal transmission channel in multistation communications system
JPS62231365A (ja) 1986-04-01 1987-10-09 Mitsubishi Electric Corp 情報処理方式
SU1550524A1 (ru) 1988-06-27 1990-03-15 Предприятие П/Я А-3886 Устройство дл сопр жени процессора с внешним устройством
JPH0736166B2 (ja) 1988-06-29 1995-04-19 日本電気株式会社 データ転送方式
JPH0225958A (ja) 1988-07-15 1990-01-29 Fuji Electric Co Ltd 高速データ転送システム
RU1807493C (ru) 1991-02-04 1993-04-07 Харьковское Научно-Производственное Объединение По Системам Автоматизированного Управления Система обмена данными в вычислительной сети
US5255376A (en) 1992-01-14 1993-10-19 Sun Microsystems, Inc. Method and apparatus for supporting a dual bit length protocol for data transfers
GB2285524B (en) 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
US5544163A (en) 1994-03-08 1996-08-06 Excel, Inc. Expandable telecommunications system
JPH0830546A (ja) * 1994-07-20 1996-02-02 Nec Niigata Ltd バス制御装置
US5612742A (en) 1994-10-19 1997-03-18 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US6434638B1 (en) * 1994-12-09 2002-08-13 International Business Machines Corporation Arbitration protocol for peer-to-peer communication in synchronous systems
GB2304210B (en) * 1995-08-11 2000-02-16 Fujitsu Ltd Data receiving devices
US6044225A (en) * 1996-03-13 2000-03-28 Diamond Multimedia Systems, Inc. Multiple parallel digital data stream channel controller
US7002964B1 (en) * 1998-02-24 2006-02-21 Canon Kabushiki Kaisha Communication system, method for a communication system and controller for a communication system
US6292873B1 (en) 1998-05-22 2001-09-18 Hewlett-Packard Company Dual-ported electronic random access memory that does not introduce additional wait states and that does not cause retransmission of data during shared access
US6163835A (en) 1998-07-06 2000-12-19 Motorola, Inc. Method and apparatus for transferring data over a processor interface bus
US6151262A (en) 1998-10-28 2000-11-21 Texas Instruments Incorporated Apparatus, system and method for control of speed of operation and power consumption of a memory
JP2000215183A (ja) 1999-01-01 2000-08-04 Seiko Epson Corp メモリポ―ト仲裁方法
US7243185B2 (en) 2004-04-05 2007-07-10 Super Talent Electronics, Inc. Flash memory system with a high-speed flash controller
CN1129071C (zh) 1999-10-27 2003-11-26 盖内蒂克瓦尔有限公司 元件之间的通道传输结构及其传输方法
US6769046B2 (en) 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
JP2003050742A (ja) 2001-08-07 2003-02-21 Sony Corp 情報処理装置及び情報処理方法、プログラム格納媒体並びにプログラム
US6868464B2 (en) 2002-01-03 2005-03-15 Intel Corporation Method, apparatus, and system for multi-line communication
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US7213092B2 (en) * 2004-06-08 2007-05-01 Arm Limited Write response signalling within a communication bus
US7392353B2 (en) * 2004-12-03 2008-06-24 International Business Machines Corporation Prioritization of out-of-order data transfers on shared data bus
US8108563B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Auxiliary writes over address channel
US8107492B2 (en) 2006-02-24 2012-01-31 Qualcomm Incorporated Cooperative writes over the address channel of a bus

Also Published As

Publication number Publication date
KR20080097481A (ko) 2008-11-05
US8107492B2 (en) 2012-01-31
TW200809520A (en) 2008-02-16
US20120096201A1 (en) 2012-04-19
EP2360599A2 (en) 2011-08-24
JP5254044B2 (ja) 2013-08-07
CN104199798A (zh) 2014-12-10
CA2640317C (en) 2012-01-31
US20070201506A1 (en) 2007-08-30
US8675679B2 (en) 2014-03-18
TWI341468B (en) 2011-05-01
EP2360599A3 (en) 2019-01-16
WO2007101134A1 (en) 2007-09-07
MX2008010822A (es) 2008-09-05
RU2008137971A (ru) 2010-03-27
EP2002345B1 (en) 2020-04-29
KR20100135332A (ko) 2010-12-24
RU2405195C2 (ru) 2010-11-27
JP2009528597A (ja) 2009-08-06
EP2002345A1 (en) 2008-12-17
KR101081301B1 (ko) 2011-11-08
CA2640317A1 (en) 2007-09-07
CN104199798B (zh) 2017-04-12

Similar Documents

Publication Publication Date Title
BRPI0708189A2 (pt) gravaÇÕes cooperativas atravÉs do canal de endereÇo de um barramento.
US9558146B2 (en) IWARP RDMA read extensions
US7822903B2 (en) Single bus command having transfer information for transferring data in a processing system
TWI246648B (en) Memory system with burst length shorter than prefetch length
TWI344087B (en) Serial ata port addressing
TWI431475B (zh) 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法
TW200305808A (en) ATA/SATA combined controller
TW201616355A (zh) 在記憶體與主機系統之間交換錯誤校正碼元資料之技術
TW200935233A (en) System and method for data read of a synchronous serial interface NAND
US20050251611A1 (en) Transmitting peer-to-peer transactions through a coherent interface
WO2020000482A1 (zh) 一种基于NVMe的数据读取方法、装置及系统
KR20170086484A (ko) 기록 요청 처리 방법, 프로세서, 그리고 컴퓨터
US8521914B2 (en) Auxiliary writes over address channel
TWI280483B (en) Method, system, and computer readable recording medium for memory based data transfer
Tanabe et al. Preliminary evaluations of a FPGA-based-prototype of DIMMnet-2 network interface

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]
B09B Patent application refused [chapter 9.2 patent gazette]

Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL