BR112019010936A2 - geração para habilitar o chaveamento de relógio - Google Patents

geração para habilitar o chaveamento de relógio Download PDF

Info

Publication number
BR112019010936A2
BR112019010936A2 BR112019010936A BR112019010936A BR112019010936A2 BR 112019010936 A2 BR112019010936 A2 BR 112019010936A2 BR 112019010936 A BR112019010936 A BR 112019010936A BR 112019010936 A BR112019010936 A BR 112019010936A BR 112019010936 A2 BR112019010936 A2 BR 112019010936A2
Authority
BR
Brazil
Prior art keywords
clock
clock signal
counter
packets
thread
Prior art date
Application number
BR112019010936A
Other languages
English (en)
Inventor
Andrew Zerwick Adam
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 BR112019010936A2 publication Critical patent/BR112019010936A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/04Clock gating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Image Processing (AREA)
  • Information Transfer Systems (AREA)
  • Power Sources (AREA)

Abstract

em uma modalidade, um sistema de chaveamento de relógio para um encadeamento inclui um dispositivo de chaveamento de relógio configurado para chavear ou passar um sinal de relógio para o encadeamento, e um controlador de relógio. o controlador de relógio é configurado para rastrear vários pacotes de entrada em uma entrada do encadeamento, para rastrear vários pacotes de saída em uma saída do encadeamento, para determinar se chaveia ou passa o sinal de relógio com base no número dos pacotes de entrada e no número dos pacotes de saída, instruir o dispositivo de chaveamento de relógio para passar o sinal de relógio se uma determinação for feita para passar o sinal de relógio, e instruir o dispositivo de chaveamento de relógio para chavear o sinal de relógio se uma determinação for feita para chavear o sinal de relógio.

Description

GERAÇÃO PARA HABILITAR O CHAVEAMENTO DE RELÓGIO
REFERÊNCIA CRUZADA AOS PEDIDOS RELACIONADOS [0001]Este pedido reivindica prioridade e o beneficio de Pedido Provisório N2 62/433,547 depositado no Escritório de Marcas e Patentes dos EUA em 13 de dezembro de 2016, e Pedido Não Provisório N2 15/666,107 depositado na Escritório de Marcas e Patentes dos EUA em 01 de agosto de 2017, o conteúdo total dos quais são incorporados aqui por referência.
FUNDAMENTOS
Campo [0002]Os aspectos da presente divulgação correspondem a chaveamento de relógio, e mais particularmente a geração para habilitar o chaveamento de relógio. Fundamentos [0003]Reduzir o consumo de energia em um dispositivo móvel é importante para estender a vida útil da batería do dispositivo móvel. Um contribuidor significativo para consumo de energia de um chip (matriz) em um dispositivo móvel é a energia dinâmica, que é devido a comutação de transistores no chip. A este respeito, vários esquemas de redução de energia foram desenvolvidos para reduzir o consumo de energia dinâmica em um chip. Um esquema envolve chavear um sinal de relógio para um circuito (por exemplo, um encadeamento) no chip quando o circuito não está em uso (por exemplo, não processando os dados) . Chavear o sinal de relógio para o circuito para transistores no circuito de comutação, desse modo reduzindo a energia dinâmica.
Petição 870190049977, de 28/05/2019, pág. 5/51
2/27
SUMÁRIO [0004]O seguinte apresenta um resumo simplificado de uma ou mais modalidades de modo a fornecer um entendimento básico de tais modalidades. Este resumo não é uma visão geral abrangente de todas as modalidades consideradas, e não é intencionado a identificar elementos chave ou críticos de todas as modalidades nem delinear o escopo de qualquer ou todas as modalidades. O seu único propósito é apresentar alguns conceitos de uma ou mais modalidades em uma forma simplificada como um prelúdio para a descrição mais detalhada que é apresentada mais tarde.
[0005]Um aspecto refere-se a um sistema de chaveamento de relógio para um encadeamento. O sistema de chaveamento de relógio inclui um dispositivo de chaveamento de relógio configurado para chavear ou passar um sinal de relógio para o encadeamento, e um controlador de relógio. O controlador de relógio é configurado para rastrear vários pacotes de entrada em uma entrada do encadeamento, para rastrear vários pacotes de saída em uma saída do encadeamento, para determinar se chaveia ou passa o sinal de relógio com base no número dos pacotes de entrada e no número dos pacotes de saída, para instruir o dispositivo de chaveamento de relógio para passar o sinal de relógio se uma determinação for feita para passar o sinal de relógio, e para instruir o dispositivo de chaveamento de relógio para chavear o sinal de relógio se uma determinação for feita para chavear o sinal de relógio.
[0006]Um segundo aspecto refere-se a um método para chaveamento de relógio. O método inclui rastrear vários pacotes de entrada em uma entrada de um
Petição 870190049977, de 28/05/2019, pág. 6/51
3/27 encadeamento, rastrear vários pacotes de saída em uma saída do encadeamento, e determinar se chaveia ou passa um sinal de relógio para o encadeamento com base no número dos pacotes de entrada e no número dos pacotes de saída. 0 método também inclui passar o sinal de relógio para o encadeamento se uma determinação for feita para passar o sinal de relógio, e chavear o sinal de relógio se uma determinação for feita para chavear o sinal de relógio.
[0007]Para a realização dos fins anteriores e relacionados, a uma ou mais modalidades incluem as características em seguida completamente descritas e particularmente destacadas nas reivindicações. A seguinte descrição e os desenhos anexos apresentam em detalhe certos aspectos ilustrativos da uma ou mais modalidades. Estes aspectos são indicativos, entretanto, de apenas algumas das várias maneiras em que os princípios de várias modalidades podem ser utilizados e as modalidades descritas são intencionadas a incluir todos os tais aspectos e seus equivalentes .
BREVE DESCRIÇÃO DOS DESENHOS [0008]A Figura 1 mostra um exemplo de um encadeamento de processamento de imagem.
[0009]A Figura 2A mostra um exemplo de um sistema de chaveamento de relógio que inclui uma máquina de estado finito.
[0010]A Figura 2B mostra um diagrama de estado exemplificativo para a máquina de estado finito na Figura 2A.
[0011]A Figura 3 mostra um exemplo de um sistema de chaveamento de relógio configurado para verificar dados
Petição 870190049977, de 28/05/2019, pág. 7/51
4/27 válidos e/ou um sinal pronto em cada estágio de um encadeamento.
[0012]A Figura 4 mostra um exemplo de um sistema de chaveamento de relógio de acordo com os aspectos da presente divulgação.
[0013]A Figura 5 mostra uma implementação exemplificativa de um controlador de relógio de acordo com certos aspectos da presente divulgação.
[0014]A Figura 6 mostra um exemplo em que o controlador de relógio na Figura 5 recebe um sinal de relógio para as operações de temporização do controlador de relógio de acordo com certos aspectos da presente divulgação.
[0015]A Figura 7 é uma tabela que mostra Exemplos de áreas de chip para diferentes métodos de chaveamento de relógio e diferentes profundidades de encadeamento.
[0016]A Figura 8 mostra um exemplo de uma célula de chaveamento de relógio (CGC) que pode ser usada em um sistema de chaveamento de relógio de acordo com certos aspectos da presente divulgação.
[0017]A Figura 9 é um fluxograma que ilustra um método para chaveamento de relógio de acordo com certos aspectos da presente divulgação.
DESCRIÇÃO DETALHADA [0018]A descrição detalhada apresentada abaixo, em relação aos desenhos anexos, é intencionada como uma descrição de várias configurações e não é intencionada a representar as únicas configurações em que os conceitos descritos aqui podem ser praticados. A descrição detalhada inclui detalhes específicos para o propósito de fornecer
Petição 870190049977, de 28/05/2019, pág. 8/51
5/27 uma compreensão completa dos vários conceitos. Entretanto, será evidente para a pessoa versada na técnica que estes conceitos podem ser praticados sem estes detalhes específicos. Em alguns casos, estruturas e componentes bem conhecidos são mostrados em forma de diagrama de bloco de modo a evitar obscurecer tais conceitos.
[0019]Um sistema pode incluir um encadeamento configurado para processar dados de uma fonte de dados, e emitir os dados processados para um depósito de dados. O encadeamento inclui múltiplos estágios de encadeamento (também denominado como unidades ou elementos de processamento) que processam os dados (por exemplo, sequencialmente). Um encadeamento pode ser usado, por exemplo, para processar dados de imagem de uma fonte de dados de imagem, tal como um sensor de câmera ou uma memória.
[0020]A este respeito, a Figura 1 mostra um exemplo de um encadeamento de processamento de imagem 110 (também denominado como um módulo de processamento de sinal de imagem (ISP)) . O encadeamento de processamento de imagem 110 recebe dados (por exemplo, dados de imagem) de uma fonte de dados 105 (por exemplo, um sensor de câmera, uma memória, etc.). O encadeamento de processamento de imagem 110 processa os dados recebidos, e emite os dados processados (por exemplo, dados processados de imagem) para um depósito de dados 115 (por exemplo, um processador de exibição, uma unidade de processamento central (CPU), uma memória, etc.). O encadeamento de processamento de imagem 110 inclui múltiplos estágios de encadeamento para processar os dados. O processamento de imagem pode incluir
Petição 870190049977, de 28/05/2019, pág. 9/51
6/27 um ou mais dos seguintes: filtragem de ruido, correção de cor, mapeamento de tom, correção cromática, etc.
[0021]0 encadeamento de processamento de imagem 110 recebe um sinal de relógio (denotado clk) para operações de temporização do encadeamento de processamento de imagem 110. O sinal de relógio clk é necessário para o encadeamento de processamento de imagem 110 para processar os dados. Entretanto, existem certos períodos de tempo (por exemplo, entre quadros) durante os quais não existe dados no encadeamento de processamento de imagem 110 que necessitam ser processados. Durante estes períodos de tempo, é desejável chavear (desabilitar) o sinal de relógio clk para o encadeamento de processamento de imagem 110 para conservar a energia. Chavear o sinal de relógio clk reduz o consumo de energia dinâmica parando-se a comutação de transistores no encadeamento de processamento de imagem 110 quando não existe dados no encadeamento 110 que necessitam ser processados.
[0022]A Figura 2A mostra um exemplo de chaveamento de relógio de acordo com um método. Neste método, um sistema de chaveamento de relógio 215 inclui um relógio que habilita a máquina de estado finito (FSM) 220, e um dispositivo de chaveamento de relógio 225. O dispositivo de chaveamento de relógio 225 é configurado para chavear seletivamente o sinal de relógio clk para o encadeamento de processamento de imagem 210 sob o controle da FSM 220, como discutido mais abaixo.
[0023]Neste exemplo, o encadeamento de
processamento de imagem 210 recebe dados válidos (por
exemplo, dados de pixel) a partir da fonte de dados (não
Petição 870190049977, de 28/05/2019, pág. 10/51
7/27 mostrada na Figura 2A) em quadros, em que cada quadro inclui múltiplas linhas de dados válidos. Na Figura 2A, os dados válidos recebidos pelo encadeamento de processamento de imagem 210 a partir da fonte de dados é denotado rx_vld, e a saída de dados válidos pelo encadeamento de processamento de imagem 210 para o depósito de dados (não mostrado na Figura 2A) é denotado tx_vld.
[0024]Neste exemplo, o encadeamento de processamento de imagem 210 recebe um sinal de controle de recepção (denotado rx_ctrl) a partir da fonte de dados, e emite um sinal de controle de transmissão (denotado tx_ctrl) para o depósito de dados. O sinal de controle de recepção rx_ctrl inclui marcadores que indicam o início de um quadro de entrada (denotado rxSOf) , o final de um quadro de entrada (denotado rxeOf) o início de uma linha de entrada (denotado rxsoi) , e o final de uma linha de entrada (denotado rxeoi) . O sinal de controle de transmissão tx_ctrl inclui marcadores que indicam o início de um quadro de saída (denotado txSOf) , o final de um quadro de saída (denotado txeOf) , o início de uma linha de saída (denotado txeOf) , e o final de uma linha de saída (denotado txeoi) .
[0025]Em operação, a FSM 220 recebe o sinal de controle de recepção rx_ctrl e o sinal de controle de transmissão tx_ctrl, e determina se instrui o dispositivo de chaveamento de relógio 225 para chavear (desabilitar) o sinal de relógio clk ou passar (habilitar) o sinal de relógio clk com base nos sinais de controle recebidos. Por exemplo, a FSM 220 pode instruir o dispositivo de chaveamento de relógio 225 para chavear (desabilitar) o
Petição 870190049977, de 28/05/2019, pág. 11/51
8/27 sinal de relógio clk entre o final de um quadro de saida (txeOf) e o inicio do próximo quadro de entrada (rxsof) , assumindo que não existe dados válidos entre quadros adjacentes. A FSM 220 também pode instruir o dispositivo de chaveamento de relógio 225 para chavear (desabilitar) o sinal de relógio clk entre o final de uma linha de saida (tXeoi) e o inicio da próxima linha de entrada (rxsol) , assumindo que não existe dados válidos entre linhas adjacentes. Assim, a FSM 220 pode chavear (desabilitar) o sinal de relógio clk entre quadros adjacentes e entre linhas adjacentes dentro de um quadro para reduzir o consumo de energia. A Figura 2B mostra um diagrama de máquina de estado exemplificativo para a FSM 220 de acordo com certos aspectos, em que o sinal de relógio clk é processado por porta no estado inativo.
[0026]Um inconveniente deste método é que a FSM 220 não chaveia (desabilita) o sinal de relógio clk quando existem uma ou mais bolhas dentro de uma linha ativa, em que uma bolha é um intervalo sem dados válidos. Assim, este método perde oportunidades para chavear (desabilitar) o sinal de relógio clk durante certos períodos de tempo quando não existe dados válidos no encadeamento 210, desse modo desperdiçando energia.
[0027]A Figura 3 mostra um exemplo de chaveamento de relógio de acordo com um outro método. Neste método, o encadeamento de processamento de imagem 310 recebe dados válidos rx_vld a partir da fonte de dados (não mostrada na Figura 3), e emite dados válidos tx_vld para o depósito de dados (não mostrado na Figura 3) . Além disso, o encadeamento de processamento de imagem 310 emite um sinal
Petição 870190049977, de 28/05/2019, pág. 12/51
9/27 de pronto recebimento (denotado rx_rdy) para a fonte de dados para indicar à fonte de dados que o encadeamento de processamento de imagem 310 está pronto para receber dados válidos a partir da fonte de dados. 0 encadeamento de processamento de imagem 310 também recebe um sinal de pronta transmissão (denotado tx_rdy) do depósito de dados que indica que o depósito de dados está pronto para receber dados válidos do encadeamento de processamento de imagem 310 .
[0028]Neste exemplo, o encadeamento de processamento de imagem 310 inclui trincos 315 - 1 a 315 3 para trancar dados válidos (por exemplo, dados de pixel) em diferentes pontos no encadeamento de processamento de imagem 310, e unidades de processamento 320 - 1 a 320 - 3 (por exemplo, lógica combinacional) configurada para processar os dados válidos em diferentes estágios de encadeamento. O encadeamento de processamento de imagem 310 também inclui lógica 325 - 1 a 325 - 3 para gerar o sinal de pronto recebimento rx_rdy. Por exemplo, a lógica 325 - 1 a 325 - 3 pode verificar os trincos para dados válidos e verificar o sinal de pronta transmissão tx_rdy para determinar se o encadeamento 310 está pronto para receber mais dados válidos a partir da fonte de dados. Por exemplo, a lógica 325 - 1 a 325 - 3 pode não afirmar o sinal de pronto recebimento rx_rdy se os trincos estiverem cheios e o sinal de pronta transmissão tx_rdy não estiver afirmado. Neste caso, o encadeamento 310 pode estar cheio e habilitado para emitir (transmitir) dados válidos para o depósito de dados para dar espaço no encadeamento 310 para mais dados válidos. Os trincos 315 - 1 a 315 - 3, as
Petição 870190049977, de 28/05/2019, pág. 13/51
10/27 unidades de processamento 320 - 1 a 320 - 3 e/ou a lógica 325 - 1 a 325 - 3 podem ser temporizados usando o sinal de relógio clk (não mostrado na Figura 3).
[0029]Neste exemplo, o sistema de chaveamento de relógio inclui lógica de controle de chaveamento de relógio 330 (representada como uma porta OR na Figura 3) que verifica se existe quaisquer dados válidos no encadeamento 310. A lógica de controle de chaveamento de relógio 330 faz isso verificando-se cada um dos estágios de encadeamento para dados válidos e/ou um sinal pronto. Se a lógica de controle de chaveamento de relógio 330 detecta dados válidos e/ou um sinal pronto em pelo menos um dos estados de encadeamento, em seguida, a lógica de controle de chaveamento de relógio 330 habilita (passa) o sinal de relógio clk para o encadeamento de processamento de imagem 310. Se a lógica de controle de chaveamento de relógio 330 não detectar quaisquer dados válidos e/ou sinal pronto, em seguida, a lógica de controle de chaveamento de relógio 330 desabilita (chaveia) o sinal de relógio clk.
[0030]Ao contrário do método de chaveamento de relógio anterior discutido acima com referência à Figura 2A, este método é capaz de chavear (desabilitar) o relógio de sinal de relógio clk durante uma bolha (intervalo sem dados válidos) dentro de uma linha ativa. Isso é porque esse método chaveia (desabilita) o relógio de sinal de relógio clk quando não existe dados válidos no encadeamento 310. Entretanto, esse método pode potencialmente levar a problemas relacionados a temporização quando a profundidade de encadeamento é grande, frequências de relógio são altas, etc. Isso é porque o ventilador (isto é, número de
Petição 870190049977, de 28/05/2019, pág. 14/51
11/27 entradas) para a lógica de controle de chaveamento de relógio 330 aumenta conforme a profundidade de encadeamento (número de estágios de encadeamento) aumenta. O aumento no ventilador aumenta os atrasos de propagação na lógica de controle de chaveamento de relógio 330, que torna mais difícil para a lógica de controle de chaveamento de relógio 330 para atender certos requisitos de temporização para a operação apropriada, especialmente em altas frequências. Como um resultado, é difícil aumentar o encadeamento 310 usando esse método.
[0031]A Figura 4 mostra um sistema de chaveamento de relógio 415 de acordo com certos aspectos da presente divulgação. O sistema de chaveamento de relógio 415 inclui um controlador de relógio 420, e um dispositivo de chaveamento de relógio 425. O dispositivo de chaveamento de relógio 425 é configurado para chavear seletivamente o sinal de relógio clk para o encadeamento de processamento de imagem 410 sob o controle do controlador de relógio 420, como discutido mais abaixo.
[0032]Em operação, o encadeamento de processamento de imagem 410 recebe dados válidos (por exemplo, dados de pixel) a partir da fonte de dados em pacotes e emite dados válidos (por exemplo, dados de pixel) para o depósito de dados em pacotes. Cada pacote pode incluir bits N de dados válidos (por exemplo, 8 a 14 bits). O controlador de relógio 420 rastreia o número de pacotes de entrada na entrada do encadeamento de processamento de imagem 410 (número de pacotes recebidos pelo encadeamento de processamento de imagem 410) . O controlador de relógio 420 também rastreia o número de pacotes de saída na saída
Petição 870190049977, de 28/05/2019, pág. 15/51
12/27 do encadeamento de processamento de imagem 410 (número de pacotes emitidos pelo encadeamento de processamento de imagem 410) . Em um exemplo, o controlador de relógio 420 rastreia o número de pacotes de entrada quando o sinal de pronto recebimento rx_rdy é afirmado, e rastreia o número de pacotes de saida quando o sinal de pronta transmissão tx_rdy é afirmado. Em um outro exemplo, o controlador de relógio 420 rastreia o número de pacotes de entrada e rastreia o número de pacotes de saida independente do sinal de pronto recebimento rx_rdy e sinal de pronta transmissão tx_rdy, respectivamente.
[0033]O controlador de relógio 420, em seguida, compara o número de pacotes de entrada com o número de pacotes de saida para determinar se o encadeamento de processamento de imagem 410 está vazio (sem dados válidos no encadeamento 410). Por exemplo, o controlador de relógio 420 pode determinar que o encadeamento 410 está vazio quando o número de pacotes de entrada e o número de pacotes de saida correspondem, e determinar que o encadeamento 410 não está vazio quando o número de número de pacotes de entrada e o número de pacotes de saida não correspondem.
[0034]Se o controlador de relógio 420 determinar que o encadeamento 410 está vazio, em seguida, o controlador de relógio 420 pode instruir o dispositivo de chaveamento de relógio 425 para chavear (desabilitar) o sinal de relógio clk para o encadeamento 410 para conservar a energia. Em um exemplo, depois de determinar que o encadeamento 410 está vazio, o controlador de relógio 420 também pode verificar se existe um pacote de entrada de dados válidos na entrada do encadeamento 410. Se o
Petição 870190049977, de 28/05/2019, pág. 16/51
13/27 controlador de relógio 420 não detectar um pacote de entrada de dados válidos, em seguida, o controlador de relógio 420 pode instruir o dispositivo de chaveamento de relógio 425 para chavear (desabilitar) o sinal de relógio clk para o encadeamento 410.
[0035]Se o controlador de relógio 420 determinar que o encadeamento 410 não está vazio, em seguida, o controlador de relógio 420 pode deixar o sinal de relógio clk habilitado (não chavear).
[0036]Depois do sinal de relógio clk para o encadeamento 410 ser chaveado (desabilitado), o controlador de relógio 420 pode monitorar a entrada do encadeamento 410 para um pacote de entrada de dados válidos. Se o controlador de relógio 420 detectar um pacote de entrada, em seguida, o controlador de relógio 420 habilita (passa) o sinal de relógio clk de modo que o encadeamento 410 pode iniciar o processamento do pacote de entrada. Se o controlador de relógio 420 não detectar um pacote de entrada, em seguida, o controlador de relógio 420 deixa o sinal de relógio clk desabilitado (chaveado). Em um exemplo, o controlador de relógio 420 monitora a entrada do encadeamento 410 para um pacote de entrada quando o pronto
recebimento rx_rdy é afirmado. Neste exemplo, o
encadeamento 410 mantem o sinal de pronto recebimento
rx_rdy quando o sinal de relógio clk é chaveado. Em um
outro exemplo , o controlador de relógio 420 monitora a
entrada do encadeamento 410 para um pacote de entrada independente do sinal de pronto recebimento rx_rdy.
[0037]O controlador de relógio 420 é vantajoso em relação ao primeiro método de chaveamento de relógio
Petição 870190049977, de 28/05/2019, pág. 17/51
14/27 discutido acima com referência à Figura 2A em que o controlador de relógio 420 é capaz de chavear o sinal de relógio clk durante uma bolha dentro de uma linha ativa. Isso é porque o controlador de relógio 420 chaveia o sinal de relógio clk quando o encadeamento 410 fica vazio durante a bolha.
[0038]Além disso, o controlador de relógio 420 é vantajoso em relação ao segundo método de chaveamento de relógio discutido acima com referência à Figura 3 em que o controlador de relógio 420 tem um pequeno ventilador (número de entradas) em comparação com a lógica de controle de chaveamento de relógio 330 mostrada na Figura 3. Isso é porque o controlador de relógio 420 verifica a entrada e saida do encadeamento 410 em vez de verificar cada estágio de encadeamento do encadeamento 410 para dados válidos e/ou um sinal pronto. Como um resultado, o ventilador do controlador de relógio 420 não necessita aumentar conforme mais estágios de encadeamento são adicionados, tornando esse método mais escalonável. O ventilador relativamente pequeno desse método mitiga os problemas de temporização associados com o segundo método de chaveamento de relógio discutido acima.
[0039]A Figura 5 mostra uma implementação exemplificativa do controlador de relógio 420 de acordo com certos aspectos da presente divulgação. Neste exemplo, o controlador de relógio 420 inclui um primeiro dispositivo de controle 510, um primeiro contador 520, um segundo dispositivo de controle 515, um segundo contador 525, um dispositivo de comparação 540 e um dispositivo de controle de relógio 550. O primeiro contador 520 é configurado para
Petição 870190049977, de 28/05/2019, pág. 18/51
15/27 contar vários pacotes de entrada, e o segundo contador 515 é configurado para contar vários pacotes de saída, como discutido mais abaixo. Cada contador pode ser um reinicio cíclico de contador que reinicia de forma cíclica quando um valor de contador máximo é atingido.
[0040]Em operação, o primeiro dispositivo de controle 510 monitora a entrada do encadeamento 410 para pacotes de entrada de dados válidos (por exemplo, quando o sinal de pronto recebimento rx_rdy é afirmado). Por exemplo, cada pacote de entrada pode ser indicado por um indicador de pacote (por exemplo, delimitador). O indicador de pacote pode ser localizado no início do pacote ou da final do pacote. Neste exemplo, o primeiro dispositivo de controle 510 pode detectar um pacote de entrada detectandose o respectivo indicador de pacote. O primeiro dispositivo de controle 510 pode incrementar o valor de contagem do primeiro contador 520 cada vez que o primeiro dispositivo de controle 510 detecta um pacote de entrada. Assim, neste exemplo, o primeiro contador 520 rastreia vários pacotes de entrada.
[0041]O segundo dispositivo de controle 515 monitora a saída do encadeamento 410 para pacotes de saída de dados válidos (por exemplo, quando o sinal de pronta transmissão tx_rdy é afirmado). Por exemplo, cada pacote de saída pode ser indicado por um indicador de pacote (por exemplo, delimitador). O indicador de pacote pode ser localizado no início do pacote ou no final do pacote. Neste exemplo, o segundo dispositivo de controle 515 pode detectar um pacote de saída detectando-se o respectivo indicador de pacote. O segundo dispositivo de controle 515
Petição 870190049977, de 28/05/2019, pág. 19/51
16/27 pode incrementar o valor de contagem do segundo contador 525 cada vez que o segundo dispositivo de controle 515 detecta um pacote de saída. Assim, neste exemplo, o segundo contador 525 rastreia vários pacotes de saída.
[0042]0 dispositivo de comparação 540 compara o valor de contagem do primeiro contador 520 com o valor de contagem do segundo contador 525. Se os valores de contagem correspondem, em seguida, o dispositivo de comparação 540 determina que o encadeamento 410 está vazio. Se os valores de contagem não correspondem, em seguida, o dispositivo de comparação 540 determina que o encadeamento 410 não está vazio. O dispositivo de comparação 540 em seguida, gera um indicador vazio com base na comparação, em que o indicador vazio indica se o encadeamento 410 está vazio. Por exemplo, o indicador vazio pode ter um primeiro valor lógico (por exemplo, um) quando uma determinação é feita quando o encadeamento 410 está vazio, e um segundo valor lógico (por exemplo, zero) quando uma determinação é feita quando o encadeamento 410 não está vazio.
[0043]O dispositivo de controle de relógio 550 é configurado para receber o indicador vazio do dispositivo de comparação 540. Se o indicador vazio indicar que o encadeamento não está vazio, em seguida, o dispositivo de controle de relógio 550 pode deixar o sinal de relógio clk habilitado (não chavear). Neste caso, o dispositivo de chaveamento de relógio 425 passa o sinal de relógio clk para o encadeamento 410. Se o indicador vazio indicar que o encadeamento está vazio, em seguida, o dispositivo de controle de relógio 550 pode instruir o dispositivo de chaveamento de relógio 425 para chavear (desabilitar) o
Petição 870190049977, de 28/05/2019, pág. 20/51
17/27 sinal de relógio clk para o encadeamento 410. Em um exemplo, se o indicador vazio indicar que o encadeamento está vazio, em seguida, o dispositivo de controle de relógio 550 também pode verificar se existe um pacote de entrada de dados válidos na entrada do encadeamento 410. Se o dispositivo de controle de relógio 550 não detectar um pacote de entrada de dados válidos, em seguida, o dispositivo de controle de relógio 550 pode instruir o dispositivo de chaveamento de relógio 425 para chavear (desabilitar) o sinal de relógio clk para o encadeamento 410. Neste exemplo, o dispositivo de controle de relógio 550 pode detectar um pacote de entrada detectando-se o respectivo indicador de pacote (por exemplo, delimitador). Quando o dispositivo de chaveamento de relógio 425 chaveia (desabilita) o sinal de relógio clk, o dispositivo de chaveamento de relógio 425 emite um estado de lógica constante (zero ou um) para o encadeamento 410 independente do estado de lógica do sinal de relógio clk.
[0044]Depois do sinal de relógio clk para o encadeamento 410 ser chaveado (desabilitado), o dispositivo de controle de relógio 550 pode monitorar a entrada do encadeamento 410 para um pacote de entrada de dados válidos. Se o dispositivo de controle de relógio 550 detectar um pacote de entrada, em seguida, o dispositivo de controle de relógio 550 habilita (passa) o sinal de relógio clk. Se o dispositivo de controle de relógio 550 não detectar um pacote de entrada, em seguida, o dispositivo de controle de relógio 550 deixa o sinal de relógio clk desabilitado (chaveado).
[0045]Em um exemplo, o dispositivo de controle de
Petição 870190049977, de 28/05/2019, pág. 21/51
18/27 relógio 550 pode ser configurado para emitir um primeiro valor lógico (por exemplo, um) para o dispositivo de chaveamento de relógio 425 para permitir o sinal de relógio clk, e para emitir um segundo valor lógico (por exemplo, zero) para o dispositivo de chaveamento de relógio 425 para chavear (desabilitar) o sinal de relógio clk. Neste exemplo, o dispositivo de controle de relógio 550 emite o primeiro valor lógico quando o indicador vazio indicar que o encadeamento não está vazio. O dispositivo de controle de relógio 500 pode emitir o segundo valor lógico quando o indicador vazio indicar que o encadeamento está vazio. Em um exemplo, o dispositivo de controle de relógio 550 pode emitir o segundo valor lógico quando ambos os indicadores vazios indicam que o encadeamento 410 está vazio e nenhum pacote de entrada é detectado na entrada do encadeamento. Depois do sinal de relógio clk ser chaveado, o dispositivo de controle de relógio 550 pode monitorar a entrada do encadeamento para um pacote de entrada, e mudar sua saída do segundo valor lógico para o primeiro valor lógico após a detecção de um pacote de entrada para reabilitar o sinal de relógio clk.
[0046]O controlador de relógio 420 também pode receber o sinal de relógio clk para operação de tempo do controlador de relógio 420. A este respeito, a Figura 6 mostra um exemplo em que o primeiro dispositivo de controle 510, o primeiro contador 520, o segundo dispositivo de controle 515, o segundo contador 525, e o dispositivo de comparação 540 recebem o sinal de relógio clk a partir da saída do dispositivo de chaveamento de relógio 425. Assim, neste exemplo, quando o sinal de relógio clk para o
Petição 870190049977, de 28/05/2019, pág. 22/51
19/27 encadeamento 420 está desabilitado (chaveado), o sinal de relógio elk para o primeiro dispositivo de controle 510, ο primeiro contador 520, o segundo dispositivo de controle 515, o segundo contador 525 e o dispositivo de comparação 540 também é chaveado para conservar a energia. O primeiro e segundo contadores 520 e 525 podem manter seus valores de contagem atuais quando o sinal de relógio clk é chaveado. Neste exemplo, cada um do primeiro e do segundo contadores 520 e 525 podem recomeçar a contagem a partir do valor de contagem mantido quando o sinal de relógio clk é reativado. Alternativamente, os contadores 520 e 525 podem ser repostos quando o sinal de relógio clk é chaveado. Neste exemplo, cada um do primeiro e do segundo contadores 520 e 525 podem iniciar a contagem a partir de um valor de contagem reposto (por exemplo, zero) quando o sinal de relógio clk é reativado.
[0047]O sinal de relógio clk para o dispositivo de controle de relógio 550 pode bypassar o dispositivo de chaveamento de relógio 425 de modo que o sinal de relógio clk para o dispositivo de controle de relógio 550 não é chaveado quando o sinal de relógio clk para o encadeamento 410 é chaveado. Neste exemplo, o sinal de relógio clk pode ser usado para a operação de tempo do dispositivo de controle de relógio 550 usado para detectar um pacote de entrada na entrada do encadeamento 410 e, após a detecção de um pacote de entrada, para habilitar (passar) o sinal de relógio clk para o encadeamento 410. Em um outro exemplo, o dispositivo de controle de relógio 550 pode incluir uma ou mais porta lógica que não necessita do sinal de relógio clk para habilitar o sinal de relógio clk quando um pacote de
Petição 870190049977, de 28/05/2019, pág. 23/51
20/27 entrada está presente na entrada do encadeamento 410. Neste caso, o sinal de relógio clk não necessita ser fornecido para o dispositivo de chaveamento de relógio 425.
[0048]Vários componentes do controlador de relógio 420 podem ser implementados usando componentes de um controlador primeiro a entrar, primeiro a sair sincrono (FIFO), como discutido mais abaixo.
[0049]Um controlador FIFO sincrono controla a gravação de dados e a leitura de dados de uma memória FIFO. A este respeito, um controlador FIFO pode incluir um contador de escrita, um contador de leitura e um dispositivo de comparação. O valor de contagem do contador de escrita é incrementado quando dados são inseridos na memória FIFO, e é usado para gerar um apontador de escrita que especifica a localização (endereço) na memória FIFO em que os dados são gravados. O valor de contagem do contador de leitura é incrementado quando os dados são lidos a partir da memória FIFO, e é usado para gerar um apontador de leitura que especifica a localização (endereço) na memória FIFO a partir da qual os dados são lidos. O dispositivo de comparação compara o apontador de escrita com o apontador de leitura para determinar se a memória FIFO está vazia, e emite um indicador vazio com base na comparação que indica se a memória FIFO está vazia. Por exemplo, o dispositivo de comparação pode determinar que a memória FIFO está vazia quando o apontador de escrita e o apontador de leitura correspondem.
[0050]Em um exemplo, o primeiro contador 520, o segundo contador 525 e o dispositivo de comparação 540 do controlador de relógio 420 podem ser implementados usando
Petição 870190049977, de 28/05/2019, pág. 24/51
21/27 um contador de escrita, um contador de leitura e um dispositivo de comparação de um controlador FIFO. Neste exemplo, o encadeamento 410 é tratado como uma memória FIFO para o propósito de determinar se o encadeamento 410 está vazio. Isso permite que o controlador de relógio 420 reuse os componentes (por exemplo, contador de escrita, contador de leitura e dispositivo de comparação) de um controlador FIFO usado para gerar o indicador vazio para o controlador FIFO para gerar o indicador vazio para o controlador de relógio 420.
[0051]Deve ser observado que, embora o encadeamento 410 seja tratado como uma memória FIFO para o propósito de determinar se o encadeamento 410 está vazio no exemplo acima, o encadeamento difere de uma memória FIFO em outros aspectos. Por exemplo, o encadeamento 410 processa os dados enquanto uma memória FIFO simplesmente armazena dados (por exemplo, buffers).
[0052]A Figura 7 é uma tabela 700 que mostra Exemplos de áreas de chip para os três diferentes métodos de chaveamento de relógio discutidos para diferentes profundidades de encadeamento (isto é, diferentes números de estágios de encadeamento). As primeiras quatro linhas na tabela 700 mostram Exemplos de áreas de chip para o método de FSM (mostrado na Figura 2A) para profundidades de encadeamento de 2, 50, 100 e 500. As próximas quatro linhas na tabela 700 mostram Exemplos de áreas de chip para o método de porta OR (mostrado na Figura 3) para profundidades de encadeamento de 2, 50, 100 e 500. As últimas quatro linhas na tabela 700 mostram Exemplos de áreas de chip para o método FIFO (mostrado nas Figuras 4 a
Petição 870190049977, de 28/05/2019, pág. 25/51
22/27
6) para profundidades de encadeamento de 2, 50, 100 e 500.
[0053] Como mostrado na Figura 7, a área de chip para o método de FSM não aumenta conforme a profundidade de encadeamento sobe. Ao contrário, a área de chip para o método de porta OR aumenta aproximadamente linearmente com o aumento em profundidade de encadeamento. Isso é porque uma entrada adicional é adicionada à porta OR para cada estágio de encadeamento adicional. O método de porta OR não é muito escalonável porque aumenta na profundidade de encadeamento pode resultar em aumento significante na área de chip tomada pela Porta OR. Os aumentos significante em área de chip não são apenas assumem estados valiosos reais no chip, mas também traduz em um aumento significante em consumo de energia.
[0054] A área de chip para o método FIFO aumenta levemente com o aumento em profundidade de encadeamento. O aumento na área de chip é devido aos bits extras necessários para rastrear um número maior de entrada e pacotes de saida conforme a profundidade de encadeamento aumenta. A escala de bits extra com log2 (isto é, base 2 logaritmo) da profundidade de encadeamento. Como mostrado na tabela 700, o aumento em área de chip para o método FIFO é significantemente menor do que o método de porta OR. Assim, como a profundidade de encadeamento aumenta, o método FIFO exige significantemente menos área e energia do que o método de porta OR.
[0055] O método FIFO ocupa mais área de chip do que o método de FSM no exemplo mostrado na Figura 7. Entretanto, o método FIFO é capaz de chavear o sinal de relógio clk durante as bolhas em linhas ativas, enquanto o
Petição 870190049977, de 28/05/2019, pág. 26/51
23/27 método de FSM não chaveia o sinal de relógio clk durante as bolhas, como discutido acima. Assim, o método FIFO é capaz de chavear o sinal de relógio mais frequentemente (isto é, explorar mais oportunidades para chavear o sinal de relógio), resultando em mais economia de energia de chaveamento de relógio.
[0056]0 dispositivo de chaveamento de relógio 425 pode ser implementado usando qualquer uma de várias células de chaveamento de relógio (CGCs) conhecidas na técnica. Por exemplo, a biblioteca de célula padrão para um chip (matriz) tipicamente inclui uma ou mais CGCs. Neste exemplo, uma das CGCs na biblioteca de célula pode ser selecionada para implementar o dispositivo de chaveamento de relógio 425.
[0057]A este respeito, a Figura 8 mostra uma célula de chaveamento de relógio exemplificativa (CGC) 810 que pode ser usada para implementar o dispositivo de chaveamento de relógio 425. Neste exemplo, a CGC 810 inclui um trinco acionado por borda negativa 820 e uma porta E 830. A CGC 810 tem uma entrada de controle de porta 812 que recebe um sinal de controle de porta do dispositivo de controle de relógio 550, uma entrada de relógio 814 que recebe o sinal de relógio clk, e uma saida 816 acoplada à entrada de relógio do encadeamento 410. O trinco 820 tem uma entrada de controle 822 que recebe o sinal de controle de porta, uma entrada de relógio 824 que receber o sinal de relógio clk, e uma saida 826. A porta E 830 tem uma primeira entrada 832 acoplada à saida 826 do trinco 820, uma segunda entrada 834 que recebe o sinal de relógio clk, e uma saida 836 acoplada à saida 816 da CGC 810.
Petição 870190049977, de 28/05/2019, pág. 27/51
24/27 [0058]Neste exemplo, a CGC 810 chaveia o sinal de relógio elk quando o sinal de controle de porta do dispositivo de controle de relógio 550 é baixo (lógica zero) . Neste caso, a CGC 810 emite uma lógica zero para o encadeamento 410 independentemente do estado de lógica do sinal de relógio elk. A CGC 810 passa o sinal de relógio clk para o encadeamento 410 quando o sinal de controle de porta for alta (lógica um) . O sinal de controle de porta também pode ser denominado como o sinal habilitado de relógio visto que controla se o sinal de relógio clk para o encadeamento está habilitado.
[0059]Em operação, o trinco 820 trava o valor lógico do sinal de controle de porta em uma borda descendente do sinal de relógio clk, e emite o valor lógico trancado do sinal de controle de porta para a primeira entrada 832 da porta E 830. Se o valor lógico trancado do sinal de controle de porta for lógica um, em seguida, a porta E 830 passa o sinal de relógio clk para a saida 816 da CGC 810. Se o valor lógico trancado do sinal de controle de porta for lógica zero, em seguida, a porta E 830 emite uma lógica zero independentemente do estado de lógica do sinal de relógio clk, eficazmente chavear o sinal de relógio clk. Neste exemplo, o trinco 820 é usado para evitar falhas na saida 816 da CGC 810. Deve ser avaliado que a CGC 810 mostrada na Figura 8 é apenas exemplificativa, e que o dispositivo de chaveamento de relógio 425 pode ser implementado usando outras CGCs conhecidas na técnica.
[0060]A Figura 9 ilustra um método 900 para chaveamento de relógio de acordo com certos aspectos da
Petição 870190049977, de 28/05/2019, pág. 28/51
25/27 presente divulgação. 0 método 900 pode ser realizado pelo controlador de relógio 420 e o dispositivo de chaveamento de relógio 425.
[0061]Na etapa 910, vários pacotes de entrada em uma entrada de um encadeamento são rastreados. Por exemplo, o número de pacotes de entrada pode ser rastreado incrementando-se um valor de contagem de um primeiro contador (por exemplo, primeiro contador 520) para cada pacote de entrada.
[0062]Na etapa 920, vários pacotes de saida em uma saida do encadeamento são rastreados. Por exemplo, o número de pacotes de entrada pode ser rastreado incrementando-se um valor de contagem de um segundo contador (por exemplo, segundo contador 525) para cada pacote de saída.
[0063]Na etapa 930, uma determinação é feita se chavear ou passar um sinal de relógio para o encadeamento com base no número de entrada os pacotes e no número dos pacotes de saída. Por exemplo, uma determinação pode ser feita para chavear o sinal de relógio se o número dos pacotes de entrada e o número dos pacotes de saída correspondem, e uma determinação pode ser feita para passar o sinal de relógio para o encadeamento se o número dos pacotes de entrada e o número dos pacotes de saída não correspondem.
[0064]Na etapa 940, o sinal de relógio é passado para o encadeamento se uma determinação for feita para passar o sinal de relógio.
[0065]Na etapa 950, o sinal de relógio é chaveado se uma determinação é feita para chavear o sinal de
Petição 870190049977, de 28/05/2019, pág. 29/51
26/27 relógio .
[0066]0 controlador de relógio 420 discutido acima pode ser implementado com um processador de uso geral, um processador de sinal digital (DSP), uma circuito integrado de aplicação especifica (ASIC), uma matriz de porta programável em campo (FPGA) ou outro dispositivo de lógica programável, componentes de hardware discretos (por exemplo, porta lógica), ou qualquer combinação dos mesmos projetados para realizar as funções descritas aqui. Um processador pode realizar as funções descritas aqui executando-se software que compreende código para realizar as funções. O software pode ser armazenado em um meio de armazenamento legível por computador, tal como uma RAM, uma ROM, um EEPROM, um disco óptico, e/ou um disco magnético.
[0067]Dentro da presente divulgação, a palavra exemplificativo é usada para significar servir como um exemplo, caso ou ilustração. Qualquer implementação ou aspecto descrito aqui como exemplificativo não é necessariamente para ser interpretado como preferido ou vantajoso sobre outros aspectos da divulgação. Do mesmo modo, o termo aspectos não requer que todos os aspectos da divulgação incluam as característica discutidas, vantagem ou modo de operação.
[0068]Embora a presente divulgação seja discutida acima usando o exemplo de um encadeamento de processamento de imagem, deve ser avaliado que a presente divulgação não é limitada a este exemplo. As modalidades da presente divulgação podem ser aplicada a outros tipos de encadeamentos que processa dados para chavear o sinal de relógio para os outros tipos de encadeamentos.
Petição 870190049977, de 28/05/2019, pág. 30/51
27/27 [0069]A descrição anterior da divulgação é fornecida para permitir que qualquer pessoa versada na técnica faça ou use a divulgação. Várias modificações para a divulgação serão prontamente evidentes para a pessoa versada na técnica, e os princípios genéricos definidos aqui podem ser aplicados a outras variações sem se afastar a partir do espírito ou escopo da divulgação. Assim, a divulgação não é intencionada a ser limitada aos exemplos descritos aqui mas é para estar de acordo com o escopo mais amplo compatível com os princípios e novas características divulgadas aqui.

Claims (20)

1. Sistema de chaveamento de relógio para um encadeamento, que compreende:
um dispositivo de chaveamento de relógio configurado para passar ou chavear um sinal de relógio para o encadeamento; e um controlador de relógio configurado para rastrear vários pacotes de entrada em uma entrada do encadeamento, para rastrear vários pacotes de saída em uma saída do encadeamento, para determinar se passa ou aciona o sinal de relógio com base no número dos pacotes de entrada e no número dos pacotes de saída, para instruir o dispositivo de chaveamento de relógio a passar o sinal de relógio se uma determinação for feita para passar o sinal de relógio, e para instruir o dispositivo de chaveamento de relógio para chavear o sinal de relógio se uma determinação for feita para chavear o sinal de relógio.
2. Sistema de chaveamento de relógio, de acordo com a reivindicação 1, em que o controlador de relógio compreende:
um primeiro contador;
um primeiro dispositivo de controle configurado para detectar os pacotes de entrada na entrada do encadeamento, e incrementar um valor de contagem do primeiro contador para cada um dos pacotes de entrada detectados, em que o valor de contagem do primeiro contador indica o número dos pacotes de entrada;
um segundo contador; e um segundo dispositivo de controle configurado para detectar os pacotes de saída na saída do encadeamento,
Petição 870190049977, de 28/05/2019, pág. 32/51
2/6 e incrementar um valor de contagem do segundo contador para cada um dos pacotes de saída detectados, em que o valor de contagem do segundo contador indica o número dos pacotes de saída.
3. Sistema de chaveamento de relógio, de acordo com a reivindicação 2, em que o controlador de relógio compreende ainda:
um dispositivo de comparação configurado para comparar o valor de contagem do primeiro contador com o valor de contagem do segundo contador, e para gerar um indicador com base na comparação, em que o indicador indica se o encadeamento está vazio; e um dispositivo de controle de relógio configurado para instruir o dispositivo de chaveamento de relógio para passar o sinal de relógio se o indicador não indicar que o encadeamento está vazio, e para instruir o dispositivo de chaveamento de relógio para chavear o sinal de relógio se o indicador indicar que o encadeamento está vazio.
4. Sistema de chaveamento de relógio, de acordo com a reivindicação 3, em que o indicador indica que o encadeamento está vazio se o valor de contagem do primeiro contador e o valor de contagem do segundo contador correspondem.
5. Sistema de chaveamento de relógio, de acordo com a reivindicação 4, em que o indicador não indica que o encadeamento está vazio se o valor de contagem do primeiro contador e o valor de contagem do segundo contador não correspondem.
6. Sistema de chaveamento de relógio, de acordo com a reivindicação 2, em que o primeiro dispositivo de
Petição 870190049977, de 28/05/2019, pág. 33/51
3/6 controle é configurado para detectar cada um dos pacotes de entrada detectando-se um delimitador do pacote de entrada.
7. Sistema de chaveamento de relógio, de acordo com a reivindicação 6, em que o segundo dispositivo de controle é configurado para detectar cada um dos pacotes de saida detectando-se um delimitador do pacote de saida.
8. Sistema de chaveamento de relógio, de acordo com a reivindicação 1, em que o controlador de relógio é configurado para instruir o dispositivo de chaveamento de relógio para chavear o sinal de relógio se o número dos pacotes de entrada corresponder ao número dos pacotes de saida, e instruir o chaveamento de relógio dispositivo para passar o sinal de relógio se o número dos pacotes de entrada não corresponder ao número dos pacotes de saida.
9. Sistema de chaveamento de relógio, de acordo com a reivindicação 8, em que, depois de instruir o dispositivo de chaveamento de relógio para chavear o sinal de relógio, o controlador de relógio é ainda configurado para monitorar a entrada do encadeamento para um próximo pacote de entrada, e, após a detecção do próximo pacote de entrada, instruir o dispositivo de chaveamento de relógio para passar o sinal de relógio.
10. Sistema de chaveamento de relógio, de acordo com a reivindicação 1, em que o encadeamento é um encadeamento de processamento de imagem.
11. Método para chaveamento de relógio, que compreende:
rastrear vários pacotes de entrada em uma entrada de um encadeamento;
rastrear vários pacotes de saida em uma saida do
Petição 870190049977, de 28/05/2019, pág. 34/51
4/6 encadeamento;
determinar se chaveia ou passa um sinal de relógio para o encadeamento com base no número dos pacotes de entrada e no número dos pacotes de saida;
passar o sinal de relógio para o encadeamento se uma determinação for feita para passar o sinal de relógio; e chavear o sinal de relógio se uma determinação for feita para chavear o sinal de relógio.
12. Método, de acordo com a reivindicação 11, em que rastrear o número dos pacotes de entrada compreende incrementar um valor de contagem de um primeiro contador para cada um dos pacotes de entrada, e rastrear o número dos pacotes de saida compreende incrementar um valor de contagem de um segundo contador para cada um dos pacotes de saida.
13. Método, de acordo com a reivindicação 12, em que incrementar o valor de contagem do primeiro contador inclui:
detectar cada um dos pacotes de entrada na entrada do encadeamento detectando-se um delimitador do pacote de entrada; e incrementar o valor de contagem do primeiro contador para cada um dos pacotes de entrada detectados.
14. Método, de acordo com a reivindicação 12, em que incrementar o valor de contagem do segundo contador inclui:
detectar cada um dos pacotes de saida na saida do encadeamento detectando-se um delimitador do pacote de saida; e
Petição 870190049977, de 28/05/2019, pág. 35/51
5/6 incrementar o valor de contagem do segundo contador para cada um dos pacotes de saída detectados.
15. Método, de acordo com a reivindicação 12, em que determinar se chaveia ou passa o sinal de relógio compreende:
comparar o valor de contagem do primeiro contador com o valor de contagem do segundo contador; e determinar se chaveia ou passa o sinal de relógio com base na comparação.
16. Método, de acordo com a reivindicação 15, em que determinar se chaveia ou passa o sinal de relógio compreende determinar chavear o sinal de relógio se o valor de contagem do primeiro contador e o valor de contagem do segundo contador correspondem.
17. Método, de acordo com a reivindicação 16, em que determinar se chaveia ou passa o sinal de relógio compreende determinar passar o sinal de relógio se o valor de contagem do primeiro contador e o valor de contagem do segundo contador não correspondem.
18. Método, de acordo com a reivindicação 11, em que determinar se chaveia ou passa o sinal de relógio compreende:
determinar chavear o sinal de relógio se o número dos pacotes de entrada corresponder ao número dos pacotes de saída; e determinar passar o sinal de relógio se o número dos pacotes de entrada não corresponder ao número dos pacotes de saída.
19. Método, de acordo com a reivindicação 19, que compreende ainda:
Petição 870190049977, de 28/05/2019, pág. 36/51
6/6 depois de chavear o sinal de relógio, monitorar a entrada do encadeamento para um próximo pacote de entrada; e passar o sinal de relógio após a detecção do próximo pacote de entrada.
20. Método, de acordo com a reivindicação 11, em que o encadeamento é um encadeamento de processamento de imagem.
BR112019010936A 2016-12-13 2017-11-27 geração para habilitar o chaveamento de relógio BR112019010936A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662433547P 2016-12-13 2016-12-13
US15/666,107 US10761559B2 (en) 2016-12-13 2017-08-01 Clock gating enable generation
PCT/US2017/063306 WO2018111526A1 (en) 2016-12-13 2017-11-27 Clock gating enable generation

Publications (1)

Publication Number Publication Date
BR112019010936A2 true BR112019010936A2 (pt) 2019-10-01

Family

ID=62489120

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019010936A BR112019010936A2 (pt) 2016-12-13 2017-11-27 geração para habilitar o chaveamento de relógio

Country Status (11)

Country Link
US (1) US10761559B2 (pt)
EP (1) EP3555726B1 (pt)
JP (1) JP6746791B2 (pt)
KR (1) KR102143089B1 (pt)
CN (1) CN110073311B (pt)
AU (1) AU2017377949B2 (pt)
BR (1) BR112019010936A2 (pt)
ES (1) ES2801598T3 (pt)
HU (1) HUE050331T2 (pt)
TW (1) TWI722258B (pt)
WO (1) WO2018111526A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11114057B2 (en) * 2018-08-28 2021-09-07 Samsung Display Co., Ltd. Smart gate display logic
US11099602B2 (en) * 2019-04-30 2021-08-24 International Business Machines Corporation Fault-tolerant clock gating
CN112462845B (zh) * 2020-11-25 2024-06-18 海光信息技术股份有限公司 数据传输时钟控制电路、方法和处理器
US12081214B2 (en) 2021-12-07 2024-09-03 Mediatek Inc. Clock gating cells

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636074B2 (en) 2002-01-22 2003-10-21 Sun Microsystems, Inc. Clock gating to reduce power consumption of control and status registers
JP2004078581A (ja) 2002-08-19 2004-03-11 Nec Corp 通信データ処理回路
JP2004274099A (ja) 2003-03-05 2004-09-30 Nec Corp パケット処理回路
TWI253556B (en) * 2003-06-11 2006-04-21 Faraday Tech Corp Pipeline-based circuit with a postponed clock-gating mechanism for reducing power consumption and related driving method thereof
US6822481B1 (en) * 2003-06-12 2004-11-23 Agilent Technologies, Inc. Method and apparatus for clock gating clock trees to reduce power dissipation
US7594200B2 (en) * 2005-12-19 2009-09-22 International Business Machines Corporation Method for finding multi-cycle clock gating
US7949887B2 (en) * 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7797561B1 (en) * 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating
US7802118B1 (en) * 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US8073669B2 (en) * 2007-08-21 2011-12-06 International Business Machines Corporation Method and apparatus for detecting clock gating opportunities in a pipelined electronic circuit design
US7861192B2 (en) * 2007-12-13 2010-12-28 Globalfoundries Inc. Technique to implement clock-gating using a common enable for a plurality of storage cells
JP5007703B2 (ja) 2008-05-19 2012-08-22 日本電気株式会社 パケット処理装置、パケット制御方法及びパケット制御プログラム
WO2010080176A1 (en) * 2009-01-12 2010-07-15 Rambus Inc. Mesochronous signaling system with multiple power modes
JP2011061457A (ja) * 2009-09-09 2011-03-24 Elpida Memory Inc クロック生成回路及びこれを備える半導体装置並びにデータ処理システム
US9557795B1 (en) 2009-09-23 2017-01-31 Xilinx, Inc. Multiprocessor system with performance control based on input and output data rates
US20110202788A1 (en) 2010-02-12 2011-08-18 Blue Wonder Communications Gmbh Method and device for clock gate controlling
US8533648B2 (en) * 2010-05-13 2013-09-10 Oracle International Corporation Automatic clock-gating propagation technique
US9444440B2 (en) * 2011-06-30 2016-09-13 Stmicroelectronics International N.V. Transition detector
JP2013125436A (ja) 2011-12-15 2013-06-24 Panasonic Corp 画像処理回路および半導体集積回路
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US20140225655A1 (en) * 2013-02-14 2014-08-14 Qualcomm Incorporated Clock-gated synchronizer
WO2015047422A1 (en) * 2013-09-30 2015-04-02 Intel Corporation Early wake-warn for clock gating control
GR20130100707A (el) * 2013-12-23 2015-07-31 Arm Limited, Μεταφραση διευθυνσης σε μια συσκευη επεξεργασιας δεδομενων
US9154130B2 (en) * 2014-01-14 2015-10-06 Analog Devices, Inc. Four-state input detection circuitry
US10204532B2 (en) * 2015-09-25 2019-02-12 Intel Corporation Multiple input cryptographic engine

Also Published As

Publication number Publication date
US20180164846A1 (en) 2018-06-14
KR20190094364A (ko) 2019-08-13
TW201826710A (zh) 2018-07-16
EP3555726A1 (en) 2019-10-23
JP6746791B2 (ja) 2020-08-26
HUE050331T2 (hu) 2020-11-30
AU2017377949A1 (en) 2019-05-16
ES2801598T3 (es) 2021-01-11
CN110073311B (zh) 2023-03-24
WO2018111526A1 (en) 2018-06-21
KR102143089B1 (ko) 2020-08-10
JP2020513628A (ja) 2020-05-14
US10761559B2 (en) 2020-09-01
EP3555726B1 (en) 2020-04-22
TWI722258B (zh) 2021-03-21
AU2017377949B2 (en) 2021-08-19
CN110073311A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
BR112019010936A2 (pt) geração para habilitar o chaveamento de relógio
US6823224B2 (en) Data processing system having an on-chip background debug system and method therefor
US7529955B2 (en) Dynamic bus parking
US7379383B2 (en) Methods of DDR receiver read re-synchronization
US7363436B1 (en) Collision detection in a multi-port memory system
CN106371898B (zh) 事件队列管理
WO2014035542A1 (en) Performing cross-domain thermal control in a processor
US20190237123A1 (en) Pseudo static random access memory and control method thereof
KR100476446B1 (ko) 라운드 로빈 및 로킹 캐시 대체 수행 방법 및 장치
US6000037A (en) Method and apparatus for synchronizing data transfer
US7405995B2 (en) Semiconductor storage device
US20120151243A1 (en) Synchronization circuit that facilitates multiple parallel reads and writes
CN107565936B (zh) 一种输入时钟稳定电路的逻辑实现装置
US9466396B2 (en) Semiconductor devices and semiconductor systems including the same
US10187045B2 (en) Balancing delay associated with dual-edge trigger clock gaters
US6026473A (en) Method and apparatus for storing data in a sequentially written memory using an interleaving mechanism
US9129661B2 (en) Single port memory that emulates dual port memory
US20140115358A1 (en) Integrated circuit device and method for controlling an operating mode of an on-die memory
US7587650B2 (en) Clock jitter detector
US20080238490A1 (en) Semiconductor device and method for driving the same
US8578219B2 (en) Monitoring and verifying a clock state of a chip
US20090002032A1 (en) Data synchronizer
JP2006113732A (ja) キャッシュメモリのヒット率測定回路、プロセッサ及び方法

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06W Patent application suspended after preliminary examination (for patents with searches from other patent authorities) chapter 6.23 patent gazette]