BR112019021554B1 - Método de renovação de memória, controlador de memória, aparelho de renovação de memória, sistema de computador e meio de armazenamento legível por computador - Google Patents

Método de renovação de memória, controlador de memória, aparelho de renovação de memória, sistema de computador e meio de armazenamento legível por computador Download PDF

Info

Publication number
BR112019021554B1
BR112019021554B1 BR112019021554-9A BR112019021554A BR112019021554B1 BR 112019021554 B1 BR112019021554 B1 BR 112019021554B1 BR 112019021554 A BR112019021554 A BR 112019021554A BR 112019021554 B1 BR112019021554 B1 BR 112019021554B1
Authority
BR
Brazil
Prior art keywords
access
rank
renewal
threshold
memory
Prior art date
Application number
BR112019021554-9A
Other languages
English (en)
Other versions
BR112019021554A2 (pt
Inventor
Xing Hu
Chuanzeng Liang
Shihai Xiao
Kanwen Wang
Original Assignee
Huawei Technologies Co., Ltd
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 Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112019021554A2 publication Critical patent/BR112019021554A2/pt
Publication of BR112019021554B1 publication Critical patent/BR112019021554B1/pt

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

Este pedido fornece uma tecnologia de renovação de memória e um sistema de computador. A tecnologia de renovação de memória é aplicada a um sistema de computador incluindo um controlador de memória e uma memória de acesso aleatório dinâmica DRAM. De acordo com a tecnologia de renovação de memória, o controlador de memória recebe solicitações de acesso. Quando uma quantidade das solicitações de acesso para acessar uma primeira classificação na DRAM que estão nas solicitações de acesso recebidas é maior que 0 e menor que um segundo limiar, o controlador de memória renova a primeira classificação. De acordo com a tecnologia de renovação de memória fornecida neste pedido, a primeira classificação pode ser renovada no tempo mesmo que a primeira classificação não possa estar em um estado inativo. Portanto, o impacto causado no desempenho de sistema de computador por um aumento nas renovações passivas causado por adiamentos de renovação é atenuado, flexibilidade de renovação de memória é aprimorada, e sobrecargas de renovação são reduzidas.

Description

CAMPO TÉCNICO
[001] Este pedido refere-se ao campo de tecnologias de computador e, em particular, a uma tecnologia de renovação de memória e um sistema de computador.
ANTECEDENTES
[002] Uma memória principal convencional de um sistema geralmente inclui uma memória de acesso aleatório dinâmica (Dynamic Random Access Memory, DRAM). Uma DRAM possui uma estrutura simples e uma alta velocidade de leitura. A unidade de armazenamento mais fundamental de uma DRAM é uma célula DRAM, e cada célula DRAM inclui um transistor e um capacitor. A célula DRAM indica 0 ou 1 usando uma quantidade de cargas no capacitor. Dessa maneira, uma célula DRAM pode armazenar um bit (bit). As cargas no capacitor podem vazar, e cargas insuficientes no capacitor podem resultar em um erro em dados armazenados. Portanto, durante aplicação real, o capacitor precisa ser carregado periodicamente para reter informação armazenada no capacitor. Essa ação de carregar o capacitor na DRAM é referida como uma renovação.
[003] As células DRAM na DRAM são organizadas em uma matriz. Essa matriz é chamada de banco DRAM. Qualquer bit no banco DRAM pode ser posicionado usando um decodificador de linha e coluna correspondente. Uma pluralidade de bancos DRAM pode formar um chip DRAM, uma pluralidade de chips DRAM pode formar uma classificação DRAM, e uma pluralidade de classificações DRAM pode ser integrada a um módulo de memória em linha dupla (Dual In-line Memory Modules, DIMM). As células DRAM são renovadas por um amplificador de detecção (Sense Amp) em uma base por linha. Em um processo de renovação, linhas em um ou mais bancos podem ser renovadas de acordo com um comando de renovação. Durante aplicação real, uma renovação geralmente é realizada usando uma classificação como unidade. Especificamente, as linhas de todos os bancos na classificação precisam ser renovadas pelo menos uma vez dentro de um tempo de retenção (retention time). O tempo de retenção é um tempo no qual os dados em uma célula DRAM podem ser retidos sem uma operação de renovação.
[004] Uma pessoa versada na técnica pode saber que, um controlador de memória verifica, em intervalos de um tempo tREFI, se uma classificação precisa ser renovada. Cada renovação precisa consumir um tempo tRFC. tREFI é usado para indicar um intervalo de renovação médio (average refresh interval), e tRFC é usado para indicar um tempo de ciclo de renovação (Refresh Cycle Time) de linha. Em outras palavras, tREFI é usado para indicar um intervalo médio no qual o controlador de memória envia um comando de renovação, e tRFC é usado para indicar um tempo necessário para executar um comando de renovação em uma classificação DRAM. Em uma solução de renovação da técnica anterior, quando a classificação está inativa, o controlador de memória renova a classificação; ou quando a classificação não está inativa, o controlador de memória adia a renovação da classificação. Quando um tempo de adiamento excede um limiar, o controlador de memória renova forçosamente a classificação, e executa uma renovação de composição para a renovação adiada. Portanto, uma quantidade relativamente grande de renovações é causada dentro de um período de tempo, exigindo uma renovação de composição. Em um processo de renovação, dentro de uma janela de tempo de tRFC, uma classificação que está sendo renovada não pode responder a outra solicitação de operação. Portanto, uma tal renovação de composição forçada pode resultar em sobrecargas de renovação relativamente altas de um sistema.
SUMÁRIO
[005] Este pedido fornece uma tecnologia de renovação de memória e um sistema de computador, de modo a reduzir uma perda de renovação de um sistema, e melhorar o desempenho do sistema de computador em um processo de renovação.
[006] De acordo com um primeiro aspecto, uma modalidade da presente invenção fornece um método de renovação de memória. O método é aplicado a um sistema de computador incluindo um controlador de memória e uma memória de acesso aleatório dinâmica DRAM. No método, o controlador de memória recebe solicitações de acesso. Quando uma quantidade das solicitações de acesso para acessar uma primeira classificação na DRAM que estão nas solicitações de acesso recebidas é maior que 0 e menor que um segundo limiar, o controlador de memória renova a primeira classificação.
[007] No método de renovação de memória nesta modalidade da presente invenção, para mitigar o impacto causado no desempenho do sistema de computador por um processo de renovação de memória, tanto um status das solicitações de acesso recebidas quanto um status de uma classificação alvo a-ser-acessada são amplamente considerados para determinar se a classificação alvo precisa ser renovada.Especificamente, quando a quantidade das solicitações de acesso para acessar a primeira classificação na DRAM que estão nas solicitações de acesso recebidas é maior que 0 e menor que o segundo limiar, o controlador de memória pode renovar a primeira classificação. Dessa maneira, a primeira classificação pode ser renovada ativamente, mesmo que a primeira classificação não esteja no estado inativo. Portanto, quando o tráfego de acesso é relativamente pesado, a primeira classificação pode ser renovada no tempo mesmo se a primeira classificação não possa estar em um estado inativo. O impacto causado no desempenho de sistema de computador por uma renovação passiva causada por um adiamento da renovação é atenuado, e a flexibilidade de renovação de memória é aprimorada. Portanto, desempenho de sistema pode ser aprimorado, e sobrecargas de renovação podem ser reduzidas.
[008] Em uma primeira implementação possível, a renovação, pelo controlador de memória, da primeira classificação inclui: renovar, pelo controlador de memória, a primeiraclassificação em um intervalo T / N quando uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado, onde T é utilizado para indicar um intervalo de renovação médio padrão, e N é um número inteiro maior que 1.
[009] Nesta modalidade da presente invenção, em um processo de renovação de memória, um modo de renovação pode ser ainda selecionado com base em uma distribuição das classificações alvo a-serem-acessadas das solicitações de acesso e uma proporção de leitura ou escrita nas solicitações de acesso. Especificamente, quando as classificações alvo a serem- acessadas são relativamente concentradas e a proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é relativamente grande, um intervalo entre renovações individuais pode ser reduzido, isto é, a primeira classificação é renovada em uma frequência de renovação superior. Como um intervalo de renovação médio é relativamente curto e o tempo necessário para uma única renovação também é relativamente curto, em um único processo de renovação, o sistema é menos afetado por uma limitação de tFAW, e o desempenho de sistema geral é menos reduzido. Dessa maneira, impacto causado no sistema em um processo de renovação pela limitação de tFAW no protocolo DDR pode ser mitigado, e o desempenho de sistema pode ser aprimorado.
[0010] Com referência ao primeiro aspecto e a primeira implementação possível do primeiro aspecto, em uma segunda implementação possível, em um processo no qual o controlador de memória renova a primeira classificação, o controlador de memória recebe uma primeira solicitação de acesso para acessar a primeira classificação e, em seguida, o controlador de memória armazena em buffer a primeira solicitação de acesso em uma fila de buffer configurada. O controlador de memória inclui pelo menos a fila de buffer e uma fila de escalonamento, a fila de buffer é utilizada para armazenar em buffer uma solicitação de acesso para uma classificação na qual uma operação de renovação está sendo executada, e a fila de escalonamento é utilizada para armazenar em buffer uma solicitação de acesso a ser enviada para uma classificação na qual uma operação de renovação não está sendo executada. Desta maneira, a solicitação de acesso, recebida em um processo de renovar a primeira classificação, para a primeira classificação pode ser impedida de congestionar a fila de escalonamento e de afetar processamento, pelo controlador de memória, em uma solicitação de acesso de outra classificação. A eficiência de processamento de todo o sistema de computador é adicionalmente aprimorada.
[0011] Com referência à segunda implementação possível do primeiro aspecto, em uma terceira implementação possível, o controlador de memória ainda recebe uma segunda solicitação de acesso para acessar uma segunda classificação na DRAM. O controlador de memória armazena em buffer a segunda solicitação de acesso na fila de escalonamento quando a segunda classificação não está sendo renovada.
[0012] Com referência a qualquer um do primeiro aspecto ou da primeira à terceira implementações possíveis do primeiro aspecto, em uma quarta implementação possível, o método inclui ainda: renovar, pelo controlador de memória, a segunda classificação quando uma quantidade de solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na segunda classificação é maior que um terceiro limiar especificado. O terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
[0013] Com referência a qualquer um do primeiro aspecto ou da primeira à quarta implementações possíveis do primeiro aspecto, em uma quinta implementação possível, o método inclui ainda: pular, pelo controlador de memória, a execução de uma operação de renovação em uma terceira classificação quando uma quantidade de solicitações de acesso para acessar a terceira classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na terceira classificação não é maior que o terceiro limiar especificado. O terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
[0014] Com referência ao primeiro aspecto, em uma sexta implementação possível, a renovar, pelo controlador de memória, a primeira classificação inclui: renovar, pelo controlador de memória, a primeira classificação em um intervalo T quando uma quantidade classificações alvo das solicitações de acesso recebidas não é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso não é maior que um quinto limiar especificado. T é utilizado para indicar um intervalo de renovação médio padrão.
[0015] Com referência a qualquer um do primeiro aspecto ou da primeira à sexta implementações possíveis do primeiro aspecto, em uma sétima implementação possível, o método inclui ainda: renovar, pelo controlador de memória, a terceira classificação quando o controlador de memória determina que uma quantidade das solicitações de acesso recebidas em outro período de tempo não é maior que um primeiro limiar e uma quantidade das solicitações de acesso para acessar a terceira classificação na DRAM é maior que 0 se uma quantidade de renovações adiadas na terceira classificação é maior que o terceiro limiar especificado. O terceiro limiar é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de renovar imediatamente a terceira classificação.
[0016] Com referência a qualquer um do primeiro aspecto ou da primeira à sétima implementações possíveis do primeiro aspecto, em uma oitava implementação possível, o método inclui ainda: pular, pelo controlador de memória, renovação da segunda classificação quando o controlador de memória determina que uma quantidade das solicitações de acesso recebidas dentro de outro período de tempo não é maior que o primeiro limiar e uma quantidade das solicitações de acesso para acessar a segunda classificação na DRAM é maior que 0 se uma quantidade de renovações adiadas na segunda classificação não é maior que o terceiro limiar especificado. O terceiro limiar é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de renovar imediatamente a segunda classificação.
[0017] De acordo com um segundo aspecto, este pedido fornece um sistema de computador. O sistema de computador inclui um controlador de memória e uma memória de acesso aleatório dinâmica DRAM conectada ao controlador de memória. O controlador de memória é configurado para executar o método de acordo com qualquer um do primeiro aspecto ou com as implementações possíveis do primeiro aspecto.
[0018] De acordo com um terceiro aspecto, este pedido fornece um controlador de memória. O controlador de memória é configurado para renovar uma memória de acesso aleatório dinâmica DRAM em um sistema de computador. O controlador de memória inclui uma interface de comunicações e um circuito de renovação. A interface de comunicações é configurada para receber solicitações de acesso enviadas por um processador no sistema de computador. O circuito de renovação é configurado para renovar a primeira classificação quando uma quantidade de solicitações de acesso para acessar a primeira classificação na memória de acesso aleatório dinâmica DRAM no sistema de computador que estão nas solicitações de acesso recebidas é maior que 0 e menor que um segundo limiar.
[0019] Com referência ao terceiro aspecto, em uma primeira implementação possível, o circuito de renovação é configurado especificamente para renovar a primeira classificação em um intervalo T / N quando uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado, onde T é utilizado para indicar um intervalo de renovação médio padrão, e N é um número inteiro maior que 1.
[0020] Com referência ao terceiro aspecto e à primeira implementação possível do terceiro aspecto, em uma segunda implementação possível, a interface de comunicações é ainda configurada para: em um processo no qual o circuito de renovação renova a primeira classificação, recebe uma primeira solicitação de acesso para acessar a primeira classificação. O controlador de memória inclui ainda um buffer, onde o buffer é configurado para armazenar em buffer a primeira solicitação de acesso em uma fila de buffer configurada. O buffer inclui pelo menos a fila de buffer e uma fila de escalonamento, a fila de buffer é utilizada para armazenar em buffer uma solicitação de acesso para uma classificação na qual uma operação de renovação está sendo executada, e a fila de escalonamento é utilizada para armazenar em buffer uma solicitação de acesso a ser enviada para uma classificação na qual uma operação de renovação não está sendo executada.
[0021] Com referência à segunda implementação possível do terceiro aspecto, em uma terceira implementação possível, a interface de comunicações é ainda configurada para receber uma segunda solicitação de acesso para acessar uma segunda classificação na DRAM. O buffer é ainda configurado para armazenar em buffer a segunda solicitação de acesso na fila de escalonamento quando a segunda classificação não está sendo renovada.
[0022] Com referência a qualquer um do terceiro aspecto ou a primeiro à terceira implementações possíveis do terceiro aspecto, em uma quarta implementação possível, o circuito de renovação é ainda configurado para renovar a segunda classificação quando uma quantidade de solicitações de acesso para acessar segunda classificação na DRAM que está nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na segunda classificação é maior que um terceiro limiar especificado. O terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
[0023] Com referência a qualquer um do terceiro aspecto ou da primeira à quarta implementações possíveis do terceiro aspecto, em uma quinta implementação possível, o circuito de renovação é ainda configurado para pular a execução de uma operação de renovação em uma terceira classificação quando uma quantidade de solicitações de acesso para acessar a terceira classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na terceira classificação não é maior que o terceiro limiar especificado, onde o terceiro limiar não é menor que 1 e menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
[0024] Com referência ao terceiro aspecto, em uma sexta implementação possível, o circuito de renovação é configurado especificamente para renovar a primeira classificação em um intervalo T quando uma quantidade de classificações alvo das solicitações de acesso recebidas não é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso não excede um quinto limiar especificado, onde T é utilizado para indicar um intervalo de renovação médio padrão.
[0025] De acordo com um quarto aspecto, este pedido fornece ainda um aparelho de renovação de memória. O aparelho de renovação de memória é configurado para renovar uma memória de acesso aleatório dinâmica DRAM em um sistema de computador. O aparelho de renovação de memória inclui módulos de função configurados para executar o método de acordo com qualquer um do primeiro aspecto ou as implementações possíveis do primeiro aspecto.
[0026] De acordo com um quinto aspecto, este pedido fornece ainda um produto de programa de computador, incluindo código de programa, onde instruções incluídas no código de programa são executadas por um computador, para implementar o método de acordo com qualquer um do primeiro aspecto ou implementações possíveis do primeiro aspecto.
[0027] De acordo com um sexto aspecto, este pedido fornece ainda um meio de armazenamento legível por computador, onde o meio de armazenamento legível por computador é configurado para armazenar o código de programa, e instruções incluídas no código de programa são executadas por um computador, para implementar o método de acordo com qualquer um do primeiro aspecto ou as implementações possíveis do primeiro aspecto.
BREVE DESCRIÇÃO DOS DESENHOS
[0028] Para descrever as soluções técnicas nas modalidades da presente invenção mais claramente, o seguinte descreve brevemente os desenhos anexos necessários para descrever as modalidades. Aparentemente, os desenhos anexos na descrição a seguir mostram apenas algumas modalidades da presente invenção.
[0029] A Figura 1 é um diagrama arquitetural esquemático de um sistema de computador de acordo com uma modalidade da presente invenção; A Figura 2 é um diagrama estrutural esquemático de um controlador de memória de acordo com uma modalidade da presente invenção; A Figura 3 é um fluxograma esquemático de um método de renovação de memória de acordo com uma modalidade da presente invenção; e A Figura 4 é um diagrama estrutural esquemático de um aparelho de renovação de memória de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DAS MODALIDADES
[0030] Para fazer com que uma pessoa versada na técnica compreenda melhor as soluções técnicas na presente invenção, o seguinte descreve claramente as soluções técnicas nas modalidades da presente invenção com referência aos desenhos anexos nas modalidades da presente invenção. Aparentemente, as modalidades descritas são apenas algumas, mas não todas, modalidades da presente invenção.
[0031] A Figura 1 é um diagrama arquitetural esquemático de um sistema de computador de acordo com uma modalidade da presente invenção. Como mostrado na Figura 1, um sistema de computador 100 pode incluir pelo menos um processador 102, um controlador de memória 106 e uma memória 108. Geralmente, o controlador de memória 106 pode ser integrado ao processador 102. Deve ser notado que, no sistema de computador fornecido nesta modalidade da presente invenção, além dos componentes mostrados na Figura 1, o sistema de computador 100 pode ainda incluir outros componentes, como uma interface de comunicações e um disco magnético que serve como armazenamento externo. Nenhuma limitação é imposta aqui.
[0032] O processador (processor) 102 é uma unidade de computação e uma unidade de controle (Control Unit) do sistema de computador 100. O processador 102 pode incluir uma pluralidade de núcleos de processador (core) 104. O processador 102 pode ser um circuito integrado de muito grande escala. Um sistema operacional e outro programa de software são instalados no processador 102, de modo que o processador 102 possa acessar a memória 108, um buffer e um disco magnético. Pode ser entendido que, nesta modalidade da presente invenção, o núcleo 104 do processador 102 pode ser, por exemplo, uma unidade de processamento central (Central Processing Unit, CPU), ou pode ser outro circuito integrado de aplicação específica (Application-Specofic Integrated Circuit, ASIC).
[0033] O controlador de memória (Memory Controller) 106 é um controlador de circuito de barramento que está dentro do sistema de computador 100 e que controla a memória 108 e é configurado para gerenciar e planejar a transmissão de dados da memória 108 para o núcleo 104. A memória 108 pode trocar dados com o núcleo 104 através do controlador de memória 106. O controlador de memória 106 pode ser um chip separado e conectado ao núcleo 104 através de um barramento de sistema. Uma pessoa habilitada na técnica pode saber que o controlador de memória 106 pode ser integrado ao processador 102 (como mostrado na Figura 1), ou pode ser construído em uma ponte norte. Uma localização específica do controlador de memória 20 não está limitada nesta modalidade da presente invenção. Durante a aplicação real, o controlador de memória 106 pode controlar a lógica necessária para gravar dados na memória 108 ou ler dados a partir da memória 108.
[0034] A memória 108 é uma memória principal do sistema de computador 100. A memória 108 é conectada ao processador 102 através de um barramento de taxa de dados dupla (double data rate, DDR). A memória 108 é geralmente configurada para armazenar vários softwares atualmente em execução no sistema operacional, dados de entrada e saída, e informação trocada com o armazenamento externo. Para aumentar uma velocidade de acesso do processador 102, a memória 108 precisa ter uma vantagem de uma alta velocidade de acesso. Em uma arquitetura de sistema de computador convencional, uma memória de acesso aleatório dinâmica (Dynamic Random Access Memory, DRAM) é normalmente usada como memória 108. Através do controlador de memória 106, o processador 102 pode acessar a memória 108 em alta velocidade, e executar uma operação de leitura e operação de escrita em qualquer unidade de armazenamento na memória 108.
[0035] Nesta modalidade da presente invenção, que a memória 108 é uma DRAM é usado como um exemplo para descrição. Portanto, a memória 108 também pode ser referida como DRAM108. Os dados são armazenados em uma unidade de armazenamento (que também pode ser referida como uma célula DRAM) da DRAM 108. Nesta modalidade da presente invenção, a unidade de armazenamento é uma unidade de armazenamento mínima (cell) para armazenar dados. Geralmente, uma unidade de armazenamento pode armazenar dados de 1 bit (bit). Certamente, algumas unidades de armazenamento podem, alternativamente, armazenar uma pluralidade de valores. Como descrito acima, a DRAM indica os dados 0 ou 1 usando uma quantidade de cargas em um capacitor. A cargas no capacitor podem vazar, e cargas insuficientes no capacitor podem resultar em um erro em dados armazenados. Portanto, o controlador de memória 106 renova dados na DRAM 108 em intervalos de um período de tempo, para evitar uma perda de dados na DRAM 108. Além disso, a DRAM 108 é volátil e, quando o sistema de computador 100 está desligado, informação na DRAM 108 não é mais salva.
[0036] Durante a aplicação real, as células DRAM na DRAM 108 são dispostas em uma matriz. Essa matriz é chamada de banco DRAM. Qualquer bit no banco DRAM pode ser posicionado pelo controlador de memória 106 usando um decodificador de linha e coluna correspondente. Uma pluralidade de bancos DRAM pode formar um chip DRAM (que também pode ser chamado de chip de memória), e uma pluralidade de chips DRAM pode formar uma classificação DRAM. Uma pluralidade de classificações DRAM pode ser integrada em um módulo de memória em linha duplo (Dual In-line Memory Modules, DIMM). Por exemplo, como mostrado na Figura 1, a DRAM 108 pode incluir uma pluralidade de canais (channel) 110. Cada canal 110 pode incluir pelo menos uma classificação, e cada classificação pode incluir pelo menos um banco. Cada banco inclui uma pluralidade de unidades de armazenamento para armazenar dados. Uma pessoa versada na técnica pode saber que, uma classificação é chips de memória (chip) conectados a um mesmo sinal de seleção de chips (chip select). O controlador de memória pode executar uma operação de escrita em chips em uma mesma classificação, e chips em uma mesma classificação compartilham um mesmo sinal de controle. O controlador de memória 106 pode acessar dados separadamente nas unidades de armazenamento em cada canal na DRAM 108 através de um barramento de memória.
[0037] Uma pessoa versada na técnica pode saber que, um ciclo de renovação de um chip DRAM está associado a um tempo de retenção (retention time) de cada unidade de armazenamento no chip DRAM. Atualmente, os ciclos de renovação padrão dos chips DRAM comumente vistos são todos fixos. Geralmente, um ciclo de renovação padrão é de 64 ms. Em uma solução de renovação da técnica anterior, um controlador de memória verifica, em intervalos de um tempo tREFI, se uma classificação precisa ser renovada. Cada renovação precisa consumir um tempo tRFC. tREFI é um intervalo de renovação médio (average refresh interval) de uma memória. Em outras palavras, tREFI é usado para indicar um intervalo médio no qual o controlador de memória envia um comando de renovação. O tREFI pode ser determinado com base em um ciclo de renovação e uma quantidade de comandos de renovação a serem enviados em um ciclo de renovação. Por exemplo, tREFI pode ser 64 ms / 8192 = 7,8 μs, onde 64 ms é um ciclo de renovação, e 8192 é uma quantidade de comandos de renovação a serem enviados em um ciclo de renovação. tRFC é um tempo de ciclo de renovação de linha (Row Refresh Cycle Time). Em outras palavras, tRFC é usado para indicar um tempo necessário para executar um comando de renovação em uma classificação DRAM. Geralmente, um tREFI mais longo indica um tRFC maior; um tREFI mais curto indica um tRFC menor. Dentro de um tempo tRFC em um processo de renovação, uma classificação que está sendo renovada não pode responder a uma solicitação para a classificação. Portanto, uma frequência de renovação pode ser ajustada para reduzir o impacto causado no desempenho de sistema por uma renovação.
[0038] Uma pessoa versada na técnica pode saber que, diferentes modos de renovação têm diferentes frequências de renovação. O protocolo de taxa de dados dupla (double data rate, DDR) especifica três modos de renovação: um modo 1X, um modo 2X e um modo 4X. No modo 1X, as operações de renovação são executadas em um chip de memória em intervalos de tREFI (base) especificados no protocolo DDR, e um tempo para executar uma solicitação de renovação é tRFC1. No modo 2X, as operações de renovação são executadas em um chip de memória em intervalos de tREFI (base) / 2, e um tempo para executar uma solicitação de renovação é tRFC2. No modo 4X, as operações de renovação são executadas em um chip de memória em intervalos de tREFI (base) / 4, e um tempo para executar uma solicitação de renovação é tRFC3. tRFC1 > tRFC2 > tFRC3. tREFI (base) é usado para indicar um intervalo de renovação médio padrão definido no protocolo DDR com o qual o sistema de computador está em conformidade. Geralmente, tREFI (base) é usado para indicar tREFI no modo 1X em uma condição que uma temperatura de superfície de chip DRAM está dentro de um intervalo de temperatura normal (0° C a 85° C). De acordo com o padrão DDR4, valores de tREFI e tRFC podem ser definidos dependendo do status real. Por exemplo, para um chip DRAM com capacidade de 8 Gb, em uma configuração 1X, tREFI pode ser 7,8 μs, e tRFC pode ser 350 ns. Em uma configuração 4X, tREFI pode ser 1,95 μs, e tRFC pode ser 160 ns. O ajuste de modo de renovação dinâmico é suportado no protocolo DDR4. De acordo com o protocolo DDR4, em um processo de renovação de memória, um modo de renovação de memória pode ser comutado a partir de um para outro entre o modo 1X, o modo 2X e o modo 4X.
[0039] Como descrito acima, na técnica anterior, um controlador de memória verifica, em intervalos de um tempo tREFI, se uma classificação precisa ser renovada. Se a classificação estiver no estado inativo, o controlador de memória renova a classificação; se a classificação não estiver em um estado inativo, o controlador de memória adia a renovação da classificação. Quando um tempo de adiamento excede um limiar, o controlador de memória renova forçadamente a classificação. No entanto, quando o tráfego na memória é relativamente pesado, uma classificação raramente está no estado inativo, e é possível que a classificação não possa estar no estado inativo. Se a classificação for renovada somente depois que a classificação estiver inativa, uma renovação precisa ser adiada continuamente. No passado, quando uma renovação precisa ser feita para evitar uma perda de dados, não apenas uma renovação que deve ser realizada dentro de um período de tempo atual precisa ser executada, mas também uma renovação de composição para uma renovação anteriormente adiada precisa ser realizada. Portanto, uma quantidade relativamente grande de renovações é causada dentro de um período de tempo, exigindo uma renovação de composição. Nesse caso, uma renovação precisa ser executada mesmo se um intervalo de renovação médio tREFI não for atingido. Em outras palavras, quando uma renovação de composição precisa ser executada, é causado um aumento nas renovações passivas. Como uma resposta a uma solicitação de acesso à classificação não pode ser feita a tempo durante uma renovação, quando há uma quantidade relativamente grande de renovações passivas, o tempo de interrupção de um serviço de acesso aumenta. Consequentemente, o processador pode travar, ou operar com menor eficiência. Nesse caso, o desempenho de sistema é mais afetado, e custos de renovação relativamente altos são gerados.
[0040] Uma pessoa versada na técnica pode saber que, operações de renovação nas classificações na memória 108 são independentes. Em um processo de pesquisa, se encontrado que, em um processo de renovar a DRAM, um classificação sendo renovada não pode responder a uma solicitação no processo de renovação, resultando em sobrecargas de renovação de um sistema; adicionalmente, no processo de renovação, solicitações para a classificação sendo renovada congestionam uma fila de escalonamento, fazendo com que uma solicitação para outra classificação não possa entrar na fila de escalonamento a ser enviada para a outra classificação no tempo. Essa também é uma causa que afeta o desempenho geral do sistema. Além disso, no processo de renovação, diferentes modos de renovação têm diferentes frequências de renovação, e diferentes frequências de renovação resultam em diferentes taxas de utilização de barramento. Portanto, no processo de renovação, seleção de modo de renovação também afeta o desempenho de sistema.
[0041] Para reduzir as sobrecargas de renovação do sistema de computador, e melhorar o desempenho geral do sistema de computador em um processo de renovação, uma modalidade da presente invenção fornece um método de renovação de memória, de modo a melhorar uma política de escalonamento de memória e evitar falhas na execução de uma solicitação para outra classificação devido ao congestionamento das operações de renovação em uma fila de escalonamento. Além disso, uma taxa de utilização de barramento de sistema pode ser melhorada ainda mais, ajustando dinamicamente uma frequência de renovação. O seguinte descreve em detalhes uma solução de renovação de memória no sistema de computador fornecido nesta modalidade da presente invenção com referência à Figura 1.
[0042] A Figura 2 é um diagrama estrutural esquemático de um controlador de memória 106 de acordo com uma modalidade da presente invenção. Para uma descrição clara, a Figura 2 também mostra esquematicamente conexões entre o controlador de memória 106 e um núcleo de processador 104 e entre o controlador de memória 106 e uma memória 108. A memória 108 pode incluir uma pluralidade de classificações, como uma classificação 0, uma classificação 1 e uma classificação 2. Como mostrado na Figura 2, o controlador de memória 106 pode incluir uma interface de comunicações 1061, um módulo de estatística 1062, um circuito de renovação 1064, uma fila de buffer 1066, uma fila de escalonamento 1068 e um escalonador 1069.
[0043] Nesta modalidade da presente invenção, a interface de comunicações 1061 no controlador de memória 106 pode incluir uma interface de terminal frontal conectada a um processador 102 em um computador, e também pode incluir uma interface de terminal traseiro conectada à memória 108 Especificamente, o controlador de memória 106 pode receber, através da interface de comunicações 1061, uma solicitação de acesso enviada por um processador (por exemplo, um núcleo 104 na Figura 1) em um sistema de computador. Através da interface de comunicações 1061, o controlador de memória 106 pode armazenar dados na memória 108 ou ler dados a partir da memória 108.
[0044] O módulo de estatística 1062 pode incluir funções estatísticas em dois aspectos. Em primeiro lugar, o módulo de estatística 1062 pode ser configurado para coletar dados estatísticos sobre uma distribuição de classificações alvo de solicitações de acesso recebidas pelo controlador de memória 106 e os tipos de operação das solicitações de acesso. A classificação alvo é uma classificação a ser acessada usando uma solicitação de acesso. Os tipos de operação das solicitações de acesso podem incluir tipos como operação de leitura e operação de escrita. Especificamente, o módulo de estatística 1062 pode coletar estatísticas sobre as classificações alvo de solicitações de acesso, e obter tipos de operação nas solicitações de acesso. Segundo, o módulo de estatística 1062 pode ainda coletar estatísticas sobre uma quantidade das solicitações de acesso recebidas pelo controlador de memória 106. Especificamente, o módulo de estatística 1062 pode coletar estatísticas sobre uma quantidade das solicitações de acesso para cada classificação a-ser-acessada e uma quantidade total de solicitações de acesso recebidas pelo controlador de memória 106. O módulo de estatística 1062 pode coletar estatísticas com base em solicitações de acesso armazenadas em buffer na fila de buffer 1066 e na fila de escalonamento 1068. Durante a aplicação real, o módulo de estatística 1062 pode ser implementado por um contador. Em outras palavras, o módulo de estatística 1062 pode incluir um ou mais contadores. Nesta modalidade da presente invenção, a solicitação de acesso é uma solicitação do processador para acessar a memória. A solicitação de acesso pode incluir uma solicitação de leitura, uma solicitação de escrita e similares. Em outras palavras, o processador pode ler dados da memória ou escrever dados na memória de acordo com a solicitação de acesso.
[0045] O circuito de renovação 1064 é configurado para determinar, em um intervalo de um tempo tREFI com base em um resultado de estatística do módulo de estatística 1062, se deve gerar uma solicitação de renovação, e colocar a solicitação de renovação gerada na fila de escalonamento. Por exemplo, quando o módulo de estatística 1062 obtém, através da coleta de estatísticas, que uma quantidade das solicitações de acesso para uma classificação é menor que um limiar especificado, o circuito de renovação 1064 pode gerar uma solicitação de renovação para a classificação, e colocar a solicitação de renovação na fila de escalonamento 1068. Pode ser entendido que, durante a aplicação real, a solicitação de renovação gerada pelo circuito de renovação 1064 pode, alternativamente, ser enviada diretamente para o escalonador 1069, de modo que o escalonador 1069 envie a solicitação de renovação gerada para a memória 108, e a memória 108 executa uma operação de renovação na classificação correspondente de acordo com a solicitação de renovação gerada. Note que, tREFI é usado para indicar um intervalo de renovação médio. Durante a aplicação real, o circuito de renovação 1064 pode, alternativamente, gerar uma solicitação de renovação em um intervalo menor que tREFI. Por exemplo, quando uma renovação de composição precisa ser executada, o circuito de renovação 1064 pode gerar uma solicitação de renovação em um intervalo menor que tREFI.Além disso, uma pessoa versada na técnica pode saber que o tREFI varia com os diferentes modos de renovação.
[0046] A fila de buffer 1066 é configurada para: em um processo de executar uma operação de renovação em uma classificação, armazenar em buffer uma solicitação de acesso, enviada pelo núcleo 104, para a classificação. Por exemplo, a classificação 0 na memória 108 é usada como um exemplo. Em um processo de executar uma operação de renovação na classificação 0, se o controlador de memória 106 recebe uma solicitação de leitura a partir do núcleo 104 para a classificação 0, a solicitação de leitura pode ser armazenada em buffer na fila de buffer 1066, em vez da fila de escalonamento 1068. Durante a aplicação real, uma prioridade de escalonamento pode ser ainda ajustada para uma solicitação de acesso na fila de buffer 1066. Por exemplo, algumas solicitações de acesso podem ser definidas para ser escalonamento preferencial ou escalonamento normal.
[0047] A fila de escalonamento 1068 é configurada para armazenar em buffer solicitações de operação tais como uma solicitação de acesso enviada pelo núcleo 104 e uma solicitação de renovação enviada pelo circuito de renovação 1064. O escalonador 1069 é configurado para enviar a solicitação de operação (incluindo, pelo menos, a solicitação de acesso e a solicitação de renovação) na fila de escalonamento 1068 para a memória 108, de modo a implementar uma operação, por exemplo, acessar ou renovar a memória 108. Nesta modalidade da presente invenção, a fila de buffer 1066 é um buffer superior frontal da fila de escalonamento 1068. Dessa maneira, a fila de buffer 1066 pode ser configurada para armazenar em buffer uma solicitação de acesso que deve entrar na fila de escalonamento 1068.Nesta modalidade da presente invenção, para descrição conveniente, que dois níveis de buffers incluindo a fila de buffer 1066 e a fila de escalonamento 1068 são configurados é usado como um exemplo nesta modalidade da presente invenção. Durante a aplicação real, mais níveis de buffers podem ser configurados dependendo de um requisito. Por exemplo, mais níveis de filas de buffer 1066 podem ser configurados antes da fila de escalonamento 1068.
[0048] O seguinte descreve em detalhes um método de renovação de memória fornecido em uma modalidade da presente invenção com referência à Figura 3. A Figura 3 é um fluxograma de um método de renovação de memória de acordo com uma modalidade da presente invenção. O método de renovação de memória mostrado na Figura 3 pode ser realizado pelo controlador de memória 106 mostrado na Figura 1 e Figura 2. Como mostrado na Figura 3, o método pode incluir os seguintes passos.
[0049] No passo 301, o controlador de memória 106 recebe solicitações de acesso enviadas por um núcleo 104. Nesta modalidade da presente invenção, a solicitação de acesso é uma solicitação utilizada para acessar uma memória 108. O controlador de memória 106 pode ler dados a partir da memória 108 ou escrever dados na memória 108 de acordo com a solicitação de acesso. Os tipos de operação das solicitações de acesso podem incluir tipos, tais como operação de leitura e operação de escrita. Durante a aplicação real, através de uma interface de comunicações 1061 entre o controlador de memória 106 e o núcleo 104, o controlador de memória 106 pode receber a solicitação de acesso enviada pelo núcleo 104.
[0050] No passo 302, o controlador de memória 106 determina se uma quantidade das solicitações de acesso recebidas é maior que um primeiro limiar. Como descrito acima, para evitar uma perda de dados na memória, o controlador de memória 106 verifica, em intervalos de um tempo tREFI, se uma classificação precisa ser renovada. Nesta modalidade da presente invenção, para descrição conveniente, um processo no qual o controlador de memória 106 verifica se uma classificação precisa ser renovada é referido como um processo de pesquisa de renovação. Um tempo tREFI é referido como um período de tempo. Em outras palavras, o controlador de memória 106 realiza pesquisa de renovação uma vez em intervalos de um tempo tREFI. Especificamente, em um caso, em um processo de pesquisa de renovação, o controlador de memória 106 pode determinar, com base em uma quantidade, obtida pelo módulo de estatística 1062 através da coleta de estatísticas, de solicitações de acesso a-serem-processadas armazenadas em buffer no controlador de memória 106, se a quantidade das solicitações de acesso é maior que o primeiro limiar. Em outro caso, o controlador de memória 106 pode determinar, com base em uma quantidade, obtida pelo módulo de estatística 1062 através da coleta de estatísticas, de solicitações de acesso recebidas pelo controlador de memória 106 dentro de um período de tempo especificado, se a quantidade das solicitações de acesso é maior que o primeiro limiar. O período especificado pode ser um período não superior a tREFI. O primeiro limiar é superior a 0. O primeiro limiar pode ser predefinido com base em uma magnitude de tráfego durante a aplicação real. Por exemplo, o primeiro limiar pode ser definido como 100. Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 é maior que o primeiro limiar, indicando que há uma quantidade relativamente grande de solicitações de acesso, o método avança para passo 304. Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 não é maior que o primeiro limiar, o método prossegue para o passo 306.
[0051] No passo 304, o controlador de memória 106 determina se uma quantidade das solicitações de acesso para uma primeira classificação a-ser-acessada é maior que um segundo limiar. A primeira classificação pode ser qualquer classificação na memória 108. Nesta modalidade da presente invenção, o controlador de memória 106 pode determinar, com base em uma quantidade, obtida pelo módulo de estatística 1062 através da coleta de estatísticas, de solicitações de acesso para a primeira classificação, se a quantidade das solicitações de acesso para a primeira classificação é menor que o segundo limiar. O segundo limiar pode ser definido especificamente de acordo com um cenário de aplicação, e o segundo limiar é maior que 1. Por exemplo, o segundo limiar pode ser definido como 20. Quando a quantidade das solicitações de acesso para acessar a primeira classificação é menor que o segundo limiar, o método prossegue para o passo 310. Quando a quantidade das solicitações de acesso para acessar a primeira classificação é maior que o segundo limiar, o método prossegue para o passo 308. Deve ser notado que, a quantidade das solicitações de acesso para a primeira classificação pode ser uma quantidade das solicitações de acesso para a primeira classificação que são recebidas pelo controlador de memória 106 dentro do período especificado no passo 302, ou pode ser uma quantidade das solicitações de acesso a-serem-processadas para a primeira classificação que são armazenadas em buffer no controlador de memória 106.
[0052] No passo 306, o controlador de memória 106 determina se uma primeira classificação está em um estado inativo. Especificamente, quando no passo 302, o controlador de memória 106 determina que a quantidade das solicitações de acesso recebidas é maior que o primeiro limiar, indica que toda a memória possui tráfego de acesso relativamente pesado e, nesse caso, o controlador de memória 106 precisa determinar ainda mais se a primeira classificação precisa ser renovada. Se a primeira classificação está em um estado inativo, em outras palavras, se a quantidade das solicitações de acesso para acessar a primeira classificação que estão na fila de escalonamento do controlador de memória é 0, o método prossegue para o passo 310. Se a primeira classificação não está em um estado inativo, em outras palavras, se a quantidade das solicitações de acesso para acessar a primeira classificação que estão na fila de escalonamento do controlador de memória não é 0, o método prossegue para o passo 308.
[0053] No passo 308, o controlador de memória 106 determina se uma quantidade de renovações adiadas na primeira classificação é maior que um terceiro limiar especificado. Quando o controlador de memória 106 determina que a quantidade de renovações adiadas na primeira classificação é maior que o terceiro limiar, o método prossegue para o passo 310. Quando o controlador de memória 106 determina que a quantidade de renovações adiadas na primeira classificação não é maior que o terceiro limiar, o método prossegue para o passo 312. Nesta modalidade da presente invenção, o terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado. O valor de aviso pode ser determinado com base em uma quantidade máxima de comandos de renovação que podem ser adiados para a classificação (comandos de renovação de adiamento). Por exemplo, de acordo com o protocolo DDR4, um máximo de oito comandos de renovação podem ser adiados para uma classificação; em outras palavras, o valor de aviso é 8, e o terceiro limiar precisa ser menor que 8. Por exemplo, o terceiro limiar pode ser definido como 6.
[0054] Nesta modalidade da presente invenção, um contador de adiamento (não mostrado na Figura 2) pode ser disposto no circuito de renovação 1064, e o contador de adiamento pode ser configurado para coletar estatísticas sobre a quantidade das renovações adiadas na primeira classificação. Durante a aplicação real, o contador de adiamento pode, alternativamente, ser disposto independentemente do circuito de renovação 1064. Em outro caso, um contador de adiamento pode não ser descartado e, em vez disso, a quantidade de renovações adiadas na primeira classificação é obtida usando o software através de coleta de estatísticas. Nesta modalidade da presente invenção, nenhuma limitação é imposta em uma maneira como a quantidade de renovações adiadas na primeira classificação é especificamente obtida através da coleta de estatísticas.
[0055] No passo 310, o controlador de memória 106 renova a primeira classificação. Especificamente, em um caso, o circuito de renovação 1064 no controlador de memória 106 pode gerar uma solicitação de renovação de acordo com um modo de renovação padrão. Em outro caso, o circuito de renovação 1064 no controlador de memória 106 pode determinar um modo de renovação com base na quantidade das solicitações de acesso, tipos de solicitações de acesso, e uma distribuição de classificações alvo que são obtidos pelo módulo de estatística 1062 por meio de coleta de estatísticas, e gera uma solicitação de renovação de acordo com o modo de renovação determinado, para renovar a primeira classificação de acordo com a solicitação de renovação gerada.
[0056] Como descrito acima, o protocolo de taxa de dados dupla (double data rate, DDR) especifica três modos de renovação: um modo 1X, um modo 2X e um modo 4X. Nesta modalidade da presente invenção, o modo de renovação pode incluir pelo menos um primeiro modo de renovação e um segundo modo de renovação. No primeiro modo de renovação, o controlador de memória executa renovações em intervalos de tREFI (base) / N. No segundo modo de renovação, o controlador de memória executa renovações em intervalos de tREFI (base). Por exemplo, o primeiro modo de renovação pode ser o modo 4X ou 2X, e o segundo modo de renovação pode incluir o modo 1X. tREFI (base) é utilizado para indicar um intervalo de renovação médio padrão definido no protocolo DDR, e N é um número inteiro maior do que 1. Normalmente, tREFI (base) é utilizado para indicar tREFI no modo 1X em uma condição que uma temperatura de superfície de chip DRAM está dentro de um intervalo de temperatura normal (0° C a 85° C). Para uma descrição conveniente, tREFI (base) também pode ser indicado por T nesta modalidade da presente invenção.
[0057] Para um sistema de memória, uma diminuição na frequência de renovação é mais importante para a melhoria do desempenho de sistema do que uma diminuição nas renovações adiadas. Portanto, geralmente, executar renovações es no modo 4x resulta em menor desempenho de sistema de do que executar renovações no modo 1X. Além disso, quando a proporção de altas solicitações de leitura ou solicitações de escrita nas solicitações de acesso é relativamente alta, a memória 108 tem uma taxa de utilização de largura de banda relativamente alta devido a uma quantidade relativamente pequena de comutadores entre leitura e escrita. No entanto, em um processo de implementação da presente invenção, verifica-se que, porque o protocolo DDR especifica uma janela quatro ativa (Four Active Window, tFAW), quando houver uma quantidade relativamente pequena de classificações alvo a serem acessadas por uma pluralidade de solicitações de acesso, em outras palavras, quando uma pluralidade de solicitações de acesso concentram em uma quantidade relativamente pequena de classificações na memória 108, na janela de tempo tFAW, uma quantidade de linhas em um classificação que são simultaneamente operáveis é limitada, e portanto, o desempenho geral do sistema diminui. tFAW significa que dentro da janela de tempo tFAW, uma classificação permite que um máximo de quatro comandos de ativar linha sejam enviados. Tome duas classificações na memória 108 como exemplo. Quando uma proporção de solicitações de leitura ou solicitações de escrita é relativamente alta e solicitações de acesso concentram-se em uma das classificações, a outra classificação está sendo renovada. Um tempo de renovação mais longo indica maior duração de acesso de classificação única, e uma diminuição maior no desempenho geral do sistema.
[0058] Em um processo de implementação da presente invenção, verifica-se que, em comparação entre o modo 4X e o modo 1X, porque um único tempo de renovação tRFC3 para uma renovaçãono modo 4X é relativamente pequeno, em um único processo de renovação, o impacto causado em um sistema por uma limitação de tFAW é relativamente pequeno, e uma diminuição no desempenho geral do sistema é relativamente pequena. Portanto, nesta modalidade da presente invenção, para melhorar o desempenho geral do sistema e reduzir a limitação de tFAW no sistema, um modo de renovação é ajustado dinamicamente nesta modalidade da presente invenção. Especificamente, em um dos casos, quando o circuito de renovação 1064 determina, com base no resultado de estatística do módulo de estatística 1062, que uma quantidade de classificações alvo a-serem-acessadas das solicitações de acesso é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado, o circuito de renovação 1064 pode determinar a renovação da primeira classificação no modo 4X. Em outras palavras, quando as classificações alvo a- seremacessadas das solicitações de acesso recebidas pelo controlador de memória 106 são relativamente concentradas e a proporção de solicitações de leitura ou solicitações de escrita é relativamente alta, a primeira classificação pode ser renovada na 4X modo. Durante a aplicação real, o quarto limiar pode ser determinado com base em uma quantidade total de classificações na memória 108. Por exemplo, quando a memória 108 inclui quatro classificações, o quarto limiar pode ser definido como 2. O quinto limiar pode ser 60%. Pode ser entendido que, nesta modalidade da presente invenção, uma classificação alvo é uma classificação a ser acessada usando uma solicitação de acesso. Uma quantidade de classificações alvo é uma quantidade de classificações a serem acessadas usando solicitações de acesso.
[0059] Em outro caso, se classificações alvo a- seremacessadas das solicitações de acesso recebidas pelo controlador de memória 106 são relativamente dispersas, ou uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso recebidas pelo controlador de memória 106 não é maior que um quinto limiar, o circuito de renovação 1064 pode renovar a primeira classificação no modo 1X. Pode ser entendido que, nesta modalidade da presente invenção, o quarto limiar é maior que 0 e o quarto limiar é menor que a quantidade total de classificações na memória 108. Durante a aplicação real, o quarto limiar pode ser determinado com base na quantidade total de classificações na memória 108. Por exemplo, o quarto limiar pode ser definido como metade de uma quantidade total de todas as classificações em uma DRAM. O quinto limiar pode ser definido para uma proporção relativamente alta. Por exemplo, quando a proporção de solicitações de leitura é medida por uma proporção de uma quantidade de solicitações de leitura na quantidade total das solicitações de acesso recebidas, o quinto limiar pode ser 60%.
[0060] Nesta modalidade da presente invenção, a proporção de solicitações de leitura é usada para indicar uma proporção de solicitações de leitura nas solicitações de acesso recebidas. A proporção de solicitações de escrita é usada para indicar uma proporção de solicitações de escrita nas solicitações de acesso recebidas. Por exemplo, a proporção de solicitações de leitura pode ser representada por uma proporção de uma quantidade de solicitações de leitura na quantidade total das solicitações de acesso. A proporção de solicitações de escrita pode ser representada por uma proporção de uma quantidade de solicitações de escrita na quantidade total das solicitações de acesso. Durante a aplicação real, a proporção de solicitações de leitura pode ser representada por uma proporção de uma quantidade de solicitações de leitura para uma quantidade de solicitações de escrita. As solicitações de escrita podem ser representadas por uma proporção de uma quantidade de solicitações de escrita para uma quantidade de solicitações de leitura. Nenhuma limitação é imposta aqui, desde que a proporção de solicitações de leitura ou solicitações de escrita possa ser determinada.
[0061] No passo 310, após o circuito de renovação 1064 determinar o modo de renovação, o circuito de renovação 1064 gera uma solicitação de renovação correspondente de acordo com o modo de renovação determinado (por exemplo, o modo 1X ou o modo 4X), e coloca a solicitação de renovação gerada para a fila de escalonamento 1068 (como mostrado na Figura 2), de modo que o escalonador 1069 possa enviar a solicitação de renovação para a memória 108, e a memória 108 possa executar uma operação de renovação na primeira classificação de acordo com a solicitação de renovação gerada pelo controlador de memória 106. Durante a aplicação real, após gerar a solicitação de renovação, o circuito de renovação 1064 pode, em alternativa, enviar diretamente a solicitação de renovação gerada para o escalonador 1069, e o escalonador 1069 envia a solicitação de renovação gerada para a primeira classificação.
[0062] Pode ser entendido que, quando o controlador de memória 106 determina que uma operação de renovação deve ser realizada na primeira classificação, se o controlador de memória 106 está executando uma solicitação de acesso para a primeira classificação, ou a fila de escalonamento ainda tem uma solicitação de acesso para a primeira classificação, o controlador de memória 106 pode enviar a solicitação de renovação somente após tanto a solicitação de acesso sendo executada para a primeira classificação e a solicitação de acesso para a primeira classificação na fila de escalonamento serem processadas, para evitar afetar o desempenho de sistema.
[0063] No passo 312, o controlador de memória 106 adia uma operação de renovação na primeira classificação. Especificamente, quando no passo 308, o controlador de memória 106 determina que uma quantidade de operações adiadas na primeira classificação não é maior que o terceiro limiar, o controlador de memória adia a operação de renovação na primeira classificação, e adiciona 1 a um valor do contador de adiamento. Em outras palavras, quando o controlador de memória 106 determina através do passo 306 que a primeira classificação não está em um estado inativo, isto é, quando uma solicitação de acesso para a primeira classificação está sendo processada ou a fila de escalonamento ainda inclui uma solicitação de acesso para a primeira classificação, se uma quantidade de adiamentos para a primeira classificação não atingir o terceiro limiar, pode ser considerado que há uma quantidade relativamente grande de solicitações de acesso para a primeira classificação. Para evitar afetar o desempenho, a operação de renovação não é executada na primeira classificação, de modo a executar a operação de renovação na primeira classificação em um processo de pesquisa subsequente. Como descrito acima, o terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado. O valor de aviso pode ser determinado com base em uma quantidade máxima de comandos de renovação que podem ser adiados para a primeira classificação. O valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na primeira classificação. Em outras palavras, o valor de aviso é utilizado para instruir o controlador de memória 106 a executar forçadamente uma operação de renovação na primeira classificação.
[0064] Pode ser entendido que, quando uma operação de renovação é executada forçadamente na primeira classificação, uma renovação de composição precisa ser executada para uma renovação adiada anteriormente. Portanto, uma quantidade relativamente grande de renovações é causada dentro de um período de tempo, exigindo uma renovação de composição. Dentro de um período de renovação de composição específico, em um aspecto, pode ocorrer uma falha na execução de uma solicitação de acesso, colocada na fila de escalonamento, para a primeira classificação; consequentemente, o espaço da fila de escalonamento 1068 é ocupado por um tempo relativamente longo, e uma solicitação de acesso para outra classificação não pode entrar na fila de escalonamento, afetando o desempenho de todo o sistema de computador. Em outro aspecto, um serviço de sistema pode ser interrompido devido a um aumento nas renovações dentro de um curto período de tempo. Em resumo, a renovação forçada da primeira classificação aumenta o consumo de potência de renovação do sistema de computador 100 e afeta o desempenho de sistema.
[0065] Em conclusão, no método de renovação fornecido nesta modalidade da presente invenção, em um processo de pesquisa de tREFI, os vários casos a seguir podem existir em relação à operação de renovação na primeira classificação.
[0066] Caso 1: Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 é maior que o primeiro limiar e a quantidade das solicitações de acesso para acessar a primeira classificação é menor que o segundo limiar, o controlador de memória 106 executa diretamente a operação de renovação na primeira classificação. Em outras palavras, quando o tráfego de acesso do sistema de computador 100 é relativamente pesado, desde que a quantidade das solicitações de acesso para acessar a primeira classificação seja relativamente pequena, o controlador de memória 106 pode ativamente executar a operação de renovação na primeira classificação, em vez de executar a operação de renovação na primeira classificação somente depois que a primeira classificação estiver em um estado inativo. Isso ocorre porque quando o tráfego de acesso do sistema de computador 100 é relativamente pesado, é muito improvável que a primeira classificação esteja no estado inativo e se uma renovação é adiada continuamente, durante uma renovação forçada subsequente para evitar a perda de dados, um aumento em renovações passivas pode ser causado dentro de um determinado período. Uma tal maneira de renovação ativa fornecida nesta modalidade da presente invenção pode atenuar o impacto causado no desempenho de sistema de computador por um aumento nas renovações passivas causadas por adiamentos de renovação, e melhorar a flexibilidade de renovação de memória. Portanto, o desempenho de sistema de computador pode ser aprimorado, e as sobrecargas de renovação podem ser reduzidas. Certamente, pode ser entendido que, nesta modalidade da presente invenção, que a quantidade das solicitações de acesso para acessar a primeira classificação é menor que o segundo limiar especificado inclui um caso em que a primeira classificação é inativa.
[0067] Caso 2: Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 é maior que o primeiro limiar, a quantidade das solicitações de acesso para acessar a primeira classificação não é menor que o segundo limiar, e a quantidade das renovações adiadas na primeira classificação é maior que o terceiro limiar, o controlador de memória 106 executa diretamente a operação de renovação na primeira classificação. Em outras palavras, quando o tráfego de acesso de memória no sistema de computador 100 é relativamente pesado e a quantidade das solicitações de acesso para a primeira classificação também é relativamente grande, se a quantidade de adiamentos para a primeira classificação é maior que o terceiro limiar, a operação de renovação precisa ser executada imediatamente na primeira classificação, para evitar a possibilidade de executar uma renovação forçada, porque a quantidade de renovações adiadas na primeira classificação atinge o valor de aviso, e atenua o impacto causado no desempenho de sistema de computador por uma quantidade relativamente grande de renovações passivas, melhorando assim a flexibilidade de renovação de memória. Pode ser entendido que, o terceiro limiar é um limiar especificado com referência ao valor de aviso durante a aplicação real, de modo que o sistema de computador possa adiar uma renovação dentro de um intervalo específico sem afetar o desempenho, melhorando assim a flexibilidade de renovação de memória.
[0068] Caso 3: Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 é maior que o primeiro limiar, a quantidade das solicitações de acesso para acessar a primeira classificação não é menor que o segundo limiar, e a quantidade das renovações adiadas na primeira classificação não é maior que o terceiro limiar, a operação de renovação na primeira classificação pode ser adiada. Em outras palavras, nesta modalidade da presente invenção, quando o tráfego de acesso de memória no sistema de computador 100 é relativamente pesado e a quantidade das solicitações de acesso para a primeira classificação é também relativamente grande, desde que a quantidade das renovações adiadas na primeira classificação não alcance o terceiro limiar predefinido, para evitar afetar o processamento em uma solicitação de acesso para a primeira classificação na fila de escalonamento 1068, a operação de renovação na primeira classificação pode ser adiada.
[0069] Caso 4: Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 não é maior que o primeiro limiar e a primeira classificação está em um estado inativo, o controlador de memória 106 pode executar diretamente a operação de renovação na primeira classificação. Em outras palavras, quando o tráfego de memória do sistema de computador 100 é relativamente leve e a primeira classificação está em um estado inativo, a operação de renovação na primeira classificação causa um impacto relativamente pequeno no desempenho de sistema de computador. Por conseguinte, a operação de renovação pode ser realizada diretamente na primeira classificação.
[0070] Caso 5: Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 não é maior que o primeiro limiar, a primeira classificação não está em um estado inativo, e a quantidade de renovações adiadas na primeira classificação é maior que o terceiro limiar, o controlador de memória 106 precisa executar ativamente a operação de renovação na primeira classificação. Em outras palavras, quando o tráfego de memória do sistema de computador 100 é relativamente leve, mas a primeira classificação é relativamente ocupada, para evitar uma renovação forçada na primeira classificação, a operação de renovação precisa ser executada na primeira classificação no processo de pesquisa atual, de modo a evitar um aumento de renovações passivas no sistema porque a quantidade de renovações adiadas atinge o valor de aviso, e atenua o impacto no desempenho de sistema de computador pelas renovações passivas.
[0071] Caso 6: Quando a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 não é maior que o primeiro limiar, a primeira classificação não está em um estado inativo, e a quantidade de renovações adiadas na primeira classificação não é maior que o terceiro limiar, o controlador de memória 106 pode adiar a operação de renovação na primeira classificação. Em outras palavras, quando o tráfego de memória do sistema de computador 100 é relativamente leve, mas a primeira classificação é relativamente ocupada, para processar solicitações de acesso para a primeira classificação o máximo possível, quando a quantidade de adiamentos para a primeira classificação ainda não é maior que o terceiro limiar, a operação de renovação na primeira classificação pode ser adiada.
[0072] Pode ser entendido que, todas as descrições acima sobre o método de renovação de memória fornecido nesta modalidade da presente invenção são feitas usando a operação de renovação na primeira classificação na memória 108 em um processo de pesquisa de renovação como exemplo. Durante a aplicação real, em cada processo de pesquisa de renovação, o controlador de memória pode determinar, de acordo com o método fornecido acima, se diferentes classificações precisam ser renovadas. Por exemplo, em um primeiro processo de pesquisa de renovação, o controlador de memória 106 pode determinar renovar a primeira classificação de acordo com o caso 1, renovar uma segunda classificação na memória 108 de acordo com o caso 2, e adiar uma operação de renovação em uma terceira classificação na memória 108 de acordo com o caso 3. Em um segundo processo de pesquisa de renovação, o controlador de memória 106 pode adiar a renovação da primeira classificação de acordo com o caso 6, e renovar a segunda classificação de acordo com o caso 5.
[0073] Além disso, o controlador de memória 106 não pode responder a uma solicitação de acesso para a primeira classificação ou dentro do período de tempo tRFC em que a operação de renovação está sendo executada na primeira classificação. Por conseguinte, para evitar a solicitação de acesso para a primeira classificação de congestionar a fila de escalonamento 1068, fazer com que uma solicitação de acesso para um outro valor (por exemplo, a segunda classificação) não possa entrar na fila de escalonamento 1068 e afetar o desempenho de sistema, nesta modalidade da presente invenção, quando a operação de renovação está sendo executada na primeira classificação, se o controlador de memória 106 recebe uma solicitação de acesso para a primeira classificação, o controlador de memória 106 pode colocar a solicitação de acesso para a primeira classificação na fila de buffer 1066. Após o controlador de memória 106 executar a operação de renovação na primeira classificação, a solicitação de acesso para a primeira classificação na fila de buffer 1066 é colocada a partir da fila de buffer 1066 na fila de escalonamento 1068. Além disso, nesta modalidade da presente invenção, após a execução da operação de renovação na primeira classificação, o controlador de memória 106 pode colocar diretamente uma solicitação de acesso recém-recebida posteriormente para a primeira classificação na fila de escalonamento 1068 em vez da fila de buffer 1066.
[0074] Pode ser entendido que, nesta modalidade da presente invenção, quando a operação de renovação está sendo executada na primeira classificação, se nenhuma operação de renovação está sendo executada na segunda classificação na memória 108, o controlador de memória 106 pode colocar diretamente uma solicitação de acesso recebida para a segunda classificação na fila de escalonamento 1068. Nesta maneira de escalonamento, classificações alvo de solicitações de acesso na fila de escalonamento podem ser distribuídas em uma maneira dispersa, de modo que em um processo de executar a operação de renovação na primeira classificação, o controlador de memória 106 pode processar solicitações de acesso de diferentes classificações tantos quanto possível, de forma a reduzir sobrecargas de sistema do sistema de computador 100 em um processo de operação de renovação, e melhorar eficiência de execução do sistema de computador 100.
[0075] Pode ser aprendido a partir do método de renovação fornecido nesta modalidade da presente invenção que, nesta modalidade da presente invenção, para mitigar o impacto causado no desempenho de sistema de computador por um processo de renovação de memória, ambos um status das solicitações de acesso recebidas pelo sistema e um status de uma classificação alvo a-ser-acessada são amplamente considerados para determinar se a classificação alvo precisa ser renovada. Dessa maneira, ao gerenciar um tempo de renovação do controlador de memória, com base na compatibilidade com o protocolo DDR existente, impacto no desempenho de sistema de computador por um aumento nas renovações passivas causado por adiamentos é reduzido, flexibilidade de renovação de memória é aprimorada, e sobrecargas de renovação são reduzidas. Além disso, nesta modalidade da presente invenção, quando a operação de renovação precisa ser realizada na primeira classificação, um modo de renovação diferente pode ser ainda selecionado com base em uma distribuição de classificações alvo e uma distribuição de tipo das solicitações de acesso, para melhorar eficiência renovação do controlador de memória, e melhorar o desempenho de sistema de computador.
[0076] Além disso, nesta modalidade da presente invenção, para melhorar a simultaneidade de solicitações de acesso, de modo que a operação de renovação na primeira classificação não afete o processamento em uma solicitação de acesso para outra classificação, uma pluralidade de níveis de buffer pode ser configurada no controlador de memória. Por exemplo, a fila de escalonamento e a fila de buffer podem ser configuradas separadamente. Dessa maneira, uma solicitação de acesso para a primeira classificação que é recebida dentro do período de tempo tRFC no qual a operação de renovação está sendo executada na primeira classificação pode ser armazenada em buffer na fila de buffer, de modo a impedir a solicitação de acesso para a primeira classificação que é recebida dentro do período de tempo tRFC de congestionar a fila de escalonamento e de afetar o processamento do controlador de memória na solicitação de acesso para o outro valor. A eficiência de processamento de todo o sistema de computador é adicionalmente aprimorada.
[0077] Deve ser notado que, durante a aplicação real, cada passo na modalidade mostrada na Figura 3 não é necessariamente realizado. Por exemplo, o método de renovação de memória é descrito com referência a uma magnitude do tráfego de acesso em todo o sistema na modalidade mostrada na Figura 3, por exemplo, em um processo de pesquisa, o passo 302 pode ser realizado primeiro para determinar se a quantidade das solicitações de acesso recebidas pelo controlador de memória 106 é maior que o primeiro limiar. No entanto, durante a aplicação real, uma magnitude do tráfego de acesso em todo o sistema pode não ser diferenciada, mas, em vez disso, o processamento é executado diretamente com base no status de tráfego de acesso de uma classificação a-ser-renovada. Neste caso, o passo 302 na modalidade da Figura 3 não é necessário. Em outras palavras, o método de renovação fornecido nesta modalidade da presente invenção pode ser usado tanto em um caso de tráfego de acesso pesado de um sistema quanto em um caso de tráfego de acesso leve de um sistema. Nenhuma limitação é imposta aqui.
[0078] A Figura 4 é um diagrama estrutural esquemático de um aparelho de renovação de memória de acordo com uma modalidade da presente invenção. O aparelho de renovação de memória 400 é configurado para renovar a memória 108 mostrada na Figura 1. Como mostrado na Figura 4, o aparelho de renovação de memória 400 pode incluir um módulo de recepção 402, um módulo de estatística 404, um módulo de determinação 406 e um módulo de renovação 408.
[0079] O módulo de recepção 402 é configurado para receber solicitações de acesso. Especificamente, o módulo de recepção 402 pode receber solicitações de acesso enviadas por um ou mais núcleos 104 em um sistema de computador 100. Pode ser entendido que, o módulo de recepção 402 pode ser ainda configurado para receber dados retornados pela memória 108. O módulo de recepção 402 inclui especificamente uma interface de comunicações entre um controlador de memória 106 e o núcleo 104 e uma interface de comunicações entre o controlador de memória 106 e a memória 108.
[0080] O módulo de estatística 404 é configurado para coletar dados de estatísticas sobre uma quantidade das solicitações de acesso recebidas pelo módulo de recepção 402. Durante a aplicação real, o módulo de estatística 404 pode coletar dados de estatísticas sobre uma quantidade das solicitações de acesso para acessar cada nível.
[0081] O módulo de determinação 406 é configurado para determinar se uma quantidade de solicitações de acesso para acessar uma primeira classificação que estão nas solicitações de acesso recebidas é maior que 0 e menor que um segundo limiar. A primeira classificação é qualquer classificação na memória. Durante a aplicação real, o módulo de determinação 406 pode executar a determinação com base em um resultado de estatística do módulo de estatística 404.
[0082] O módulo de renovação 408 é configurado para renovar a primeira classificação quando a quantidade das solicitações de acesso para acessar a primeira classificação que estão nas solicitações de acesso recebidas é maior que 0 e menor que o segundo limiar. Como descrito acima, durante a aplicação real, em um caso, o módulo de renovação 408 pode gerar uma solicitação de renovação de acordo com um modo de renovação especificado, e renovar a primeira classificação de acordo com a solicitação de renovação gerada. Em outro caso, o módulo de renovação 408 pode determinar dinamicamente um modo de renovação com base na quantidade das solicitações de acesso e uma distribuição de classificações alvo a- seremacessadas que são obtidas pelo módulo de estatística 404 através de uma coleta de estatísticas, e gerar uma renovação de solicitação de acordo com o modo de renovação determinado, para renovar a primeira classificação de acordo com a solicitação de renovação gerada. Especificamente, o módulo de renovação 408 pode enviar a solicitação de renovação gerada para a memória 108, de modo que a memória 108 possa renovar a primeira classificação de acordo com a solicitação de renovação.
[0083] Em um possível caso, o módulo de determinação 406 é ainda configurado para determinar se uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado, e se uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado. O módulo de renovação 408 é configurado para renovar a primeira classificação em um intervalo T / N quando a quantidade de classificações alvo das solicitações de acesso recebidas é menor que o quarto limiar especificado, e a proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que o quinto limiar especificado. T é utilizado para indicar um intervalo de renovação médio padrão, e N é um número inteiro maior que 1. Especificamente, o módulo de renovação 408 pode gerar uma primeira solicitação de renovação de acordo com um primeiro modo de renovação, e renovar a primeira classificação de acordo com a primeira solicitação de renovação gerada. No primeiro modo de renovação, o controlador de memória renova a primeira classificação no intervalo T / N. Durante a aplicação real, T pode ser tREFI (base) especificado no protocolo DDR.
[0084] Em um caso possível, o aparelho de renovação de memória 400 pode incluir ainda um módulo de buffer 410. O módulo de buffer 410 é configurado para armazenar em buffer as solicitações de acesso recebidas pelo módulo de recepção 402 em uma fila de buffer ou em uma fila de escalonamento. Durante a aplicação real, o módulo de buffer 410 pode incluir a fila de buffer e a fila de escalonamento. A fila de buffer é uma fila superior frontal da fila de escalonamento.
[0085] Em um possível caso, o módulo de recepção 402 é ainda configurado para: em um processo de renovar a primeira classificação, receber uma primeira solicitação de acesso para acessar a primeira classificação. O módulo de buffer 410 é configurado para armazenar em buffer a primeira solicitação de acesso em uma fila de buffer configurada. O módulo de buffer 410 inclui a fila de buffer e uma fila de escalonamento, a fila de buffer é utilizada para armazenar em buffer uma solicitação de acesso recém-recebida para uma classificação na qual uma operação de renovação está sendo executada, e a fila de escalonamento é usada para armazenar em buffer uma solicitação de acesso a ser enviada para uma classificação na qual uma operação de renovação não está sendo executada.
[0086] Em outro caso possível, o módulo de recepção 402 é ainda configurado para receber uma segunda solicitação de acesso para acessar uma segunda classificação em uma DRAM. O módulo de buffer 410 é ainda configurado para armazenar em buffer a segunda solicitação de acesso na fila de escalonamento configurada quando nenhuma operação de renovação está sendo executada na segunda classificação.
[0087] Opcionalmente, o módulo de determinação 406 é ainda configurado para determinar se uma quantidade de solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas é menor que o segundo limiar. O módulo de renovação 408 é ainda configurado para renovar a segunda classificação quando a quantidade das solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na segunda classificação é maior que um terceiro limiar especificado. O terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
[0088] Em outro caso possível, o módulo de determinação 406 é ainda configurado para determinar se uma quantidade de solicitações de acesso para acessar uma terceira classificação na DRAM que estão nas solicitações de acesso recebidas é menor que o segundo limiar. O módulo de renovação 408 é ainda configurado para saltar execução de uma operação de renovação na terceira classificação quando a quantidade das solicitações de acesso para acessar terceira classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na terceira classificação não é maior que o terceiro limiar especificado, onde o terceiro limiar não é menor que 1 e é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
[0089] Em outro caso possível, o módulo de determinação 406 é ainda configurado para determinar se uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado, e se uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado. O módulo de renovação 408 é ainda configurado para renovar a primeira classificação quando a quantidade de classificações alvo das solicitações de acesso recebidas não é menor que o quarto limiar especificado e a proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso não é maior que o quinto limiar especificado, que inclui especificamente: renovar a primeira classificação em um intervalo T, onde T é utilizado para indicar um intervalo de renovação médio padrão.
[0090] Em outro caso possível, o módulo de renovação 408 é ainda configurado para saltar execução de uma operação de renovação na segunda classificação quando a quantidade das solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas é maior que 0 e menor que o segundo limiar especificado e a quantidade das renovações adiadas na segunda classificação não é maior que o terceiro limiar especificado, onde o terceiro limiar não é menor que 1 e é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
[0091] Em outro caso possível, o módulo de renovação 408 é ainda configurado para renovar a terceira classificação quando a quantidade das solicitações de acesso para acessar terceira classificação na DRAM que estão nas solicitações de acesso recebidas é maior que 0 e a quantidade das renovações adiadas na terceira classificação é maior que o terceiro limiar especificado, onde o terceiro limiar não é menor que 1 e é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
[0092] Pode ser entendido que os módulos no aparelho de renovação de memória 400 mostrados na Figura 4 podem ser localizados separadamente em um ou mais componentes no controlador de memória mostrado na Figura 2. Nesta modalidade da presente invenção, alguns ou todos os módulos na modalidade mostrada na Figura 4 podem ser selecionados dependendo de um requisito real para alcançar um objetivo da solução nesta modalidade. Para conteúdo que não é descrito em detalhes na modalidade da Figura 4, consulte a descrição relacionada na modalidade de método mostrada na Figura 3.
[0093] Pode ser entendido que as modalidades de aparelho descritas são meramente exemplos. Por exemplo, a divisão de módulo é meramente uma divisão de função lógica e pode ser outra divisão na implementação real. Por exemplo, uma pluralidade de módulos ou componentes pode ser combinada ou integrada em outro sistema, ou alguns recursos podem ser ignorados ou não executados. Além disso, conexões entre os módulos discutidas nas modalidades anteriores podem ser em forma elétrica, mecânica, ou outras formas. Os módulos descritos como partes separadas podem ou não estar fisicamente separados, e partes exibidas como módulos podem ou não ser módulos físicos. Além disso, os módulos de função nas modalidades deste pedido podem existir independentemente, ou podem ser integrados em um módulo de processamento. Por exemplo, os módulos de função mostrados na Figura 4 podem ser integrados ao controlador de memória mostrado na Figura 2.
[0094] Uma modalidade da presente invenção fornece ainda um produto de programa de computador para processamento de dados, incluindo um meio de armazenamento legível por computador armazenando código de programa, onde as instruções incluídas no código de programa são usadas para executar o processo de método descrito em qualquer uma das modalidades de método anteriores. Uma pessoa de conhecimentos normais na técnica pode entender que o meio de armazenamento anterior pode incluir qualquer meio legível por máquina não transitório (non-transitory) capaz de armazenar código de programa, tal como uma pen drive USB, um disco rígido removível, um disco magnético, um disco ótico, uma memória de acesso aleatório (Random-Access Memory, RAM), um disco de estado sólido (Solid State Disk, SSD) ou uma memória não volátil (non-volatile memory).
[0095] Deve ser notado que as modalidades fornecidas neste pedido são meramente exemplos. Uma pessoa habilitada na técnica pode saber claramente que, para conveniência e concisão da descrição, nas modalidades anteriores, as modalidades enfatizam aspectos diferentes e, para uma parte não descrita em detalhes em uma modalidade, pode ser feita referência à descrição relevante de outra modalidade. As modalidades da presente invenção, reivindicações e recursos divulgados nos desenhos anexos podem existir independentemente, ou existir em uma combinação. Os recursos descritos em uma forma de hardware nas modalidades da presente invenção podem ser executados por software e vice- versa, o que não é limitado aqui.

Claims (23)

1. Método de renovação de memória, em que o método é aplicado a um sistema de computador compreendendo um controlador de memória e uma memória de acesso aleatório dinâmica DRAM, e o método caracterizado pelo fato de que compreende: receber (301), pelo controlador de memória, solicitações de acesso para acessar a DRAM, em que as solicitações de acesso para acessar a DRAM compreendem solicitações de acesso para acessar uma primeira classificação da DRAM; determinar (302), pelo controlador de memória, se uma quantidade de solicitações de acesso recebidas para acessar a DRAM é maior que um primeiro limite; se a quantidade de solicitações de acesso recebidas para acessar a DRAM for maior que o primeiro limite, determinar (304), pelo controlador de memória, se uma quantidade de solicitações de acesso para acessar a primeira classificação é maior que um segundo limite; e renovar (310), pelo controlador de memória, a primeira classificação quando uma quantidade de solicitações de acesso para acessar a primeira classificação é maior que 0 e menor que o segundo limiar em um caso em um intervalo de renovação médio padrão, em outro caso, com base na quantidade de solicitações de acesso, em um intervalo T/N, em que T é o intervalo de renovação médio padrão, e N é um número inteiro maior que 1.
2. Método de renovação de memória, de acordo com a reivindicação 1, caracterizado pelo fato de que a renovação, pelo controlador de memória, da primeira classificação compreende: renovar, pelo controlador de memória, a primeira classificação no intervalo T / N quando uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado, em que as classificações alvo são classificações a serem acessadas usando as solicitações de acesso recebidas para acessar a DRAM.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que compreende ainda: em um processo no qual o controlador de memória renova a primeira classificação, receber, pelo controlador de memória, uma primeira solicitação de acesso para acessar a primeira classificação; e armazenar em buffer, pelo controlador de memória, a primeira solicitação de acesso em uma fila de buffer configurada, em que o controlador de memória compreende pelo menos a fila de buffer e uma fila de escalonamento, a fila de buffer é utilizada para armazenar em buffer uma solicitação de acesso para uma classificação na qual uma operação de renovação está sendo executada, e a fila de escalonamento é utilizada para armazenar em buffer uma solicitação de acesso a ser enviada para uma classificação na qual uma operação de renovação não está sendo executada.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende ainda: receber, pelo controlador de memória, uma segunda solicitação de acesso para acessar uma segunda classificação na DRAM; e armazenar em buffer, pelo controlador de memória, a segunda solicitação de acesso na fila de escalonamento quando a segunda classificação não está sendo renovada.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que compreende ainda: renovar, pelo controlador de memória, a segunda classificação quando uma quantidade de solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na segunda classificação é maior que um terceiro limiar especificado, em que o terceiro limiar não é menor que 1 e é menor que um valor de aviso determinado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que compreende ainda: pular, pelo controlador de memória, execução de uma operação de renovação em uma terceira classificação quando uma quantidade de solicitações de acesso para acessar a terceira classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na terceira classificação não é maior que o terceiro limiar especificado, em que o terceiro limiar não é menor que 1 e é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
7. Método de renovação de memória, de acordo com a reivindicação 1, caracterizado pelo fato de que a renovação, pelo controlador de memória, da primeira classificação compreende: renovar, pelo controlador de memória, a primeira classificação em um intervalo T quando uma quantidade de classificações alvo das solicitações de acesso recebidas não é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso não é maior que um quinto limiar especificado, em que T é utilizado para indicar um intervalo de renovação médio padrão.
8. Controlador de memória (106), caracterizado pelo fato de que compreende: uma interface de comunicações (1061), configurada para receber solicitações de acesso para acessar uma memória dinâmica de acesso aleatório, DRAM, em que as solicitações de acesso para acessar a DRAM compreendem solicitações de acesso para cessar a uma primeira classificação na DRAM; em que o controlador de memória é configurado para determinar se uma quantidade de solicitações de acesso recebidas para acessar a DRAM é maior que um primeiro limite; e determinar se uma quantidade de solicitações de acesso para acessar a primeira classificação é maior que um segundo limite se a quantidade de solicitações de acesso recebidos para acessar a DRAM for maior que o primeiro limite; e o controlador de memória (106) compreende ainda um circuito de renovação (1064), configurado para renovar a primeira classificação quando uma quantidade de solicitações de acesso para acessar a primeira classificação é maior que 0 e menor que o segundo limiar em um caso, em um intervalo de renovação médio padrão, em outro caso, com base na quantidade de solicitações de acesso, em um intervalo T/N, em que T é o intervalo de renovação médio padrão e N é um número inteiro maior que 1.
9. Controlador de memória (106), de acordo com a reivindicação 8, caracterizado pelo fato de que o circuito de renovação (1064) é configurado especificamente para: renovar a primeira classificação em um intervalo T / N quando uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado, as classificações alvo são classificações a serem acessadas usando a solicitação de acesso recebida para acessar a DRAM.
10. Controlador de memória (106), de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que: a interface de comunicações (1061) é ainda configurada para: em um processo no qual o circuito de renovação renova a primeira classificação, receber uma primeira solicitação de acesso para acessar a primeira classificação; e o controlador de memória (106) compreende ainda: um buffer, configurado para armazenar em buffer a primeira solicitação de acesso em uma fila de buffer configurada, em que o buffer compreende pelo menos a fila de buffer e uma fila de escalonamento, a fila de buffer é utilizada para armazenar em buffer uma solicitação de acesso para uma classificação na qual uma operação de renovação está sendo executada, e a fila de escalonamento é utilizada para armazenar em buffer uma solicitação de acesso a ser enviada para uma classificação na qual uma operação de renovação não está sendo executada.
11. Controlador de memória (106), de acordo com a reivindicaçãolO, caracterizado pelo fato de que a interface de comunicações (1061) é ainda configurada para receber uma segunda solicitação de acesso para acessar uma segunda classificação na DRAM; e o buffer é ainda configurado para armazenar em buffer a segunda solicitação de acesso na fila de escalonamento quando a segunda classificação não está sendo renovada.
12. Controlador de memória (106), de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pelo fato de que o circuito de renovação (1064) é ainda configurado para: renovar a segunda classificação quando uma quantidade de solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na segunda classificação é maior que um terceiro limiar especificado, em que o terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
13. Controlador de memória (106), de acordo com qualquer uma das reivindicações 8 a 12, caracterizado pelo fato de que o circuito de renovação (1064) é ainda configurado para: saltar execução de uma operação de renovação em uma terceira classificação quando uma quantidade de solicitações de acesso para acessar a terceira classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na terceira classificação não é maior que o terceiro limiar especificado, em que o terceiro limiar não é menor que 1 e é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
14. Controlador de memória (106), de acordo com a reivindicação 8, caracterizado pelo fato de que o circuito de renovação (1064) é configurado especificamente para: renovar a primeira classificação em um intervalo T quando uma quantidade de classificações alvo das solicitações de acesso recebidas não é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso não é maior que um quinto limiar especificado, em que T é utilizado para indicar um intervalo de renovação médio padrão.
15. Aparelho de renovação de memória (400), caracterizado pelo fato de que o aparelho de renovação de memória (400) é configurado para renovar uma memória de acesso aleatório dinâmica DRAM (108) em um sistema de computador (100), e compreende: um módulo de recepção (402), configurado para receber solicitações de acesso para acessar a DRAM, em que as solicitações de acesso para acessar a DRAM compreendem solicitações de acesso para acessar a uma primeira classificação na DRAM; um módulo de estatística (404), configurado para determinar se uma quantidade de solicitações de acesso recebidas para acessar a DRAM é maior que um primeiro limite, e se a quantidade de solicitações de acesso recebidas para acessar a DRAM é maior que o primeiro limite, determina se uma quantidade de solicitações de acesso para acessar a primeira classificação é maior que um segundo limite; e um módulo de renovação (408), configurado para renovar a primeira classificação quando uma quantidade de solicitações de acesso para acessar a primeira classificação na DRAM que estão nas solicitações de acesso recebidas é maior que 0 e menor que o segundo limiar em um caso, em um intervalo de renovação médio padrão, em outro caso, com base na quantidade de solicitações de acesso, em um intervalo T/N, em que T é o intervalo de renovação médio padrão e N é um número inteiro maior que 1.
16. Aparelho de renovação de memória (400), de acordo com a reivindicação 15, caracterizado pelo fato de que: o módulo de renovação (408) é configurado especificamente para renovar a primeira classificação em um intervalo T / N quando uma quantidade de classificações alvo das solicitações de acesso recebidas é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso é maior que um quinto limiar especificado, as classificações alvo são classificações a serem acessadas usando a solicitação de acesso recebida para acessar a DRAM.
17. Aparelho de renovação de memória (400), de acordo com a reivindicação 15, caracterizado pelo fato de que: o módulo de recepção (402) é ainda configurado para: em um processo de renovar a primeira classificação, receber uma primeira solicitação de acesso para acessar a primeira classificação; e o aparelho de renovação de memória (400) compreende ainda: um módulo de buffer (410), configurado para armazenar em buffer a primeira solicitação de acesso em uma fila de buffer configurada, em que o módulo de buffer compreende pelo menos a fila de buffer e uma fila de escalonamento, a fila de buffer é utilizada para armazenar em buffer uma solicitação de acesso para uma classificação na qual uma operação de renovação está sendo executada, e a fila de escalonamento é utilizada para armazenar em buffer uma solicitação de acesso a ser enviada para uma classificação na qual uma operação de renovação não está sendo executada.
18. Aparelho de renovação de memória (400), de acordo com a reivindicação 17, caracterizado pelo fato de que: o módulo de recepção (402) é ainda configurado para receber uma segunda solicitação de acesso para acessar uma segunda classificação na DRAM; e o módulo de buffer (410) é ainda configurado para armazenar em buffer a segunda solicitação de acesso na fila de escalonamento quando a segunda classificação não está sendo renovada.
19. Aparelho de renovação de memória (400), de acordo com qualquer uma das reivindicações 15 a 18, caracterizado pelo fato de que: o módulo de renovação (408) é ainda configurado para renovar a segunda classificação quando uma quantidade de solicitações de acesso para acessar a segunda classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na segunda classificação é maior que um terceiro limiar especificado, em que o terceiro limiar não é menor que 1 e é menor que um valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na segunda classificação.
20. Aparelho de renovação de memória (400), de acordo com qualquer uma das reivindicações 15 a 19, caracterizado pelo fato de que:o módulo de renovação (408) é ainda configurado para pular renovação da terceira classificação quando uma quantidade de solicitações de acesso para acessar a terceira classificação na DRAM que estão nas solicitações de acesso recebidas não é menor que o segundo limiar e uma quantidade de renovações adiadas na terceira classificação não é maior que o terceiro limiar especificado, em que o terceiro limiar não é menor que 1 e é menor que o valor de aviso especificado, e o valor de aviso é utilizado para indicar uma necessidade de executar imediatamente uma operação de renovação na terceira classificação.
21. Aparelho de renovação de memória (400), de acordo com a reivindicação 15, caracterizado pelo fato de que:o módulo de renovação (408) é configurado especificamente para renovar a primeira classificação em um intervalo T quando uma quantidade de classificações alvo das solicitações de acesso recebidas não é menor que um quarto limiar especificado e uma proporção de solicitações de leitura ou solicitações de escrita nas solicitações de acesso não é maior que um quinto limiar especificado, em que T é utilizado para indicar um intervalo de renovação médio padrão.
22. Sistema de computador, caracterizado pelo fato de que compreende um controlador de memória e uma memória de acesso aleatório dinâmica, DRAM, conectada ao controlador de memória, em que o controlador de memória é configurado para executar o método, conforme definido em qualquer uma das reivindicações 1 a 7.
23. Meio de armazenamento legível por computador, caracterizado pelo fato de que compreende uma ou mais instruções executáveis por computador, em que quando a uma ou mais instruções executáveis por computador são executadas por um computador, o computador executa o método, conforme definido em qualquer uma das reivindicações 1 a 7.
BR112019021554-9A 2017-04-14 2017-04-14 Método de renovação de memória, controlador de memória, aparelho de renovação de memória, sistema de computador e meio de armazenamento legível por computador BR112019021554B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/080640 WO2018188085A1 (zh) 2017-04-14 2017-04-14 内存刷新技术及计算机系统

Publications (2)

Publication Number Publication Date
BR112019021554A2 BR112019021554A2 (pt) 2020-05-12
BR112019021554B1 true BR112019021554B1 (pt) 2024-02-27

Family

ID=63792104

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019021554-9A BR112019021554B1 (pt) 2017-04-14 2017-04-14 Método de renovação de memória, controlador de memória, aparelho de renovação de memória, sistema de computador e meio de armazenamento legível por computador

Country Status (10)

Country Link
US (1) US20200066330A1 (pt)
EP (1) EP3605542B1 (pt)
JP (1) JP7043515B2 (pt)
KR (1) KR102258360B1 (pt)
CN (1) CN110546707B (pt)
AU (1) AU2017409368B2 (pt)
BR (1) BR112019021554B1 (pt)
CA (1) CA3058778C (pt)
SG (1) SG11201908892TA (pt)
WO (1) WO2018188085A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244717B2 (en) 2019-12-02 2022-02-08 Micron Technology, Inc. Write operation techniques for memory systems
KR20220031793A (ko) 2020-09-03 2022-03-14 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법
US11798604B2 (en) * 2021-09-01 2023-10-24 Dell Products L.P. Memory architecture having ranks with variable data widths
CN113741820B (zh) * 2021-09-18 2023-10-03 青岛海信传媒网络技术有限公司 一种数据从内存刷新到eMMC存储器的方法及显示设备
US20230236653A1 (en) * 2022-01-26 2023-07-27 Samsung Electronics Co.,Ltd. Power reduction for systems having multiple ranks of memory
US20230359373A1 (en) * 2022-05-03 2023-11-09 Qualcomm Incorporated Selective refresh for memory devices
CN115148248B (zh) * 2022-09-06 2022-11-08 北京奎芯集成电路设计有限公司 基于深度学习的dram刷新方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0349094A (ja) * 1989-07-18 1991-03-01 Toshiba Corp メモリ制御装置
JPH10149311A (ja) * 1996-11-20 1998-06-02 Ricoh Co Ltd メモリ制御装置
JP4154010B2 (ja) * 1997-07-17 2008-09-24 キヤノン株式会社 メモリ制御装置およびメモリ制御方法
CN101000798B (zh) * 2007-01-12 2010-05-19 威盛电子股份有限公司 存储器刷新方法及存储器刷新系统
WO2009139109A1 (ja) * 2008-05-13 2009-11-19 パナソニック株式会社 メモリ制御装置、およびこれを備えた情報処理装置
US8639874B2 (en) * 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
JP5155221B2 (ja) * 2009-03-11 2013-03-06 ルネサスエレクトロニクス株式会社 メモリ制御装置
US8489807B2 (en) * 2010-12-03 2013-07-16 International Business Machines Corporation Techniques for performing refresh operations in high-density memories
US8775725B2 (en) * 2010-12-06 2014-07-08 Intel Corporation Memory device refresh commands on the fly
US8539146B2 (en) * 2011-11-28 2013-09-17 International Business Machines Corporation Apparatus for scheduling memory refresh operations including power states
US9269418B2 (en) * 2012-02-06 2016-02-23 Arm Limited Apparatus and method for controlling refreshing of data in a DRAM
US8909874B2 (en) * 2012-02-13 2014-12-09 International Business Machines Corporation Memory reorder queue biasing preceding high latency operations
US9196347B2 (en) * 2013-03-14 2015-11-24 International Business Machines Corporation DRAM controller for variable refresh operation timing
CN104143355B (zh) * 2013-05-09 2018-01-23 华为技术有限公司 一种刷新动态随机存取存储器的方法和装置
CN108231109B (zh) * 2014-06-09 2021-01-29 华为技术有限公司 动态随机存取存储器dram的刷新方法、设备以及系统
US9685219B2 (en) * 2015-05-13 2017-06-20 Samsung Electronics Co., Ltd. Semiconductor memory device for deconcentrating refresh commands and system including the same
US9576637B1 (en) * 2016-05-25 2017-02-21 Advanced Micro Devices, Inc. Fine granularity refresh
CN106875971B (zh) * 2017-02-16 2021-01-22 上海兆芯集成电路有限公司 动态随机存取存储器控制器及其控制方法
EP3605541A4 (en) * 2017-04-14 2020-04-01 Huawei Technologies Co., Ltd. MEMORY REFRESHING TECHNOLOGY AND COMPUTER SYSTEM
US10236035B1 (en) * 2017-12-04 2019-03-19 Nanya Technology Corporation DRAM memory device adjustable refresh rate method to alleviate effects of row hammer events
US10969997B2 (en) * 2018-11-07 2021-04-06 Intel Corporation Memory controller that filters a count of row activate commands collectively sent to a set of memory banks

Also Published As

Publication number Publication date
AU2017409368A1 (en) 2019-10-24
JP7043515B2 (ja) 2022-03-29
WO2018188085A1 (zh) 2018-10-18
AU2017409368B2 (en) 2022-07-07
CA3058778C (en) 2023-02-21
CN110546707A (zh) 2019-12-06
CA3058778A1 (en) 2018-10-18
EP3605542B1 (en) 2021-07-21
CN110546707B (zh) 2021-10-19
KR20190126888A (ko) 2019-11-12
BR112019021554A2 (pt) 2020-05-12
EP3605542A1 (en) 2020-02-05
SG11201908892TA (en) 2019-11-28
JP2020517024A (ja) 2020-06-11
EP3605542A4 (en) 2020-05-20
US20200066330A1 (en) 2020-02-27
KR102258360B1 (ko) 2021-05-31

Similar Documents

Publication Publication Date Title
BR112019021554B1 (pt) Método de renovação de memória, controlador de memória, aparelho de renovação de memória, sistema de computador e meio de armazenamento legível por computador
US11705180B2 (en) Memory refresh technology and computer system
US20190146684A1 (en) System and method for qos over nvme virtualization platform using adaptive command fetching
US10268382B2 (en) Processor memory architecture
US9268720B2 (en) Load balancing scheme in multiple channel DRAM systems
US9710192B2 (en) Apparatuses and methods for providing data from a buffer
US20190198081A1 (en) Selective refresh with software components
US10991412B2 (en) Storage device and method for operating storage device
WO2022155970A1 (zh) 一种内存控制方法及内存控制装置
US20220108743A1 (en) Per bank refresh hazard avoidance for large scale memory
US20230376427A1 (en) Memory system and computing system including the same
EP4174666A1 (en) Memory management technology and computer system
CN117075795A (zh) 存储器系统以及包括其的计算系统
TW202333060A (zh) 用於在動態隨機存取記憶體記憶體控制器中高效更新管理之訊務感知可適性預充電排程器
CN115185866A (zh) 一种内存控制器、访问内存的控制方法及存储设备
CN118193212A (zh) 一种内存带宽调节方法及相关设备

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]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 14/04/2017, OBSERVADAS AS CONDICOES LEGAIS