BR112016007492B1 - Método e aparelho para otimização de recurso de memória - Google Patents

Método e aparelho para otimização de recurso de memória Download PDF

Info

Publication number
BR112016007492B1
BR112016007492B1 BR112016007492-0A BR112016007492A BR112016007492B1 BR 112016007492 B1 BR112016007492 B1 BR 112016007492B1 BR 112016007492 A BR112016007492 A BR 112016007492A BR 112016007492 B1 BR112016007492 B1 BR 112016007492B1
Authority
BR
Brazil
Prior art keywords
program
partitioning
llc
policy
working set
Prior art date
Application number
BR112016007492-0A
Other languages
English (en)
Other versions
BR112016007492B8 (pt
BR112016007492A8 (pt
BR112016007492A2 (pt
Inventor
Lei Liu
Chengyong Wu
Xiaobing Feng
Yungang BAO
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 BR112016007492A2 publication Critical patent/BR112016007492A2/pt
Publication of BR112016007492A8 publication Critical patent/BR112016007492A8/pt
Publication of BR112016007492B1 publication Critical patent/BR112016007492B1/pt
Publication of BR112016007492B8 publication Critical patent/BR112016007492B8/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0653Monitoring storage devices or systems
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

MÉTODO E APARELHO PARA OTIMIZAÇÃO DE RECURSO DE MEMÓRIA. As modalidades da presente invenção fornecem um método e um aparelho para otimização de recurso de memória, referem-se ao campo de computadores, resolvem um problema que é o de recursos de memória multinível existentes afetarem uns aos outros, e otimizam um mecanismo de particionamento avulso existente. Uma solução específica é: obter dados de desempenho de cada programa em um conjunto de trabalho usando-se uma tecnologia de coloração de página, obter uma categoria de cada programa à luz de uma frequência de acesso à memória, selecionar, de acordo com a categoria de cada programa, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, e escrever a política de particionamento com base em coloração de página para um cerne do sistema de operação, para completar processamento de particionamento com base em coloração correspondente. A presente invenção é usada para eliminar ou reduzir interferência mútua de processos ou cadeias em um recurso de armazenamento à luz de uma característica do conjunto de trabalho, desse modo aperfeiçoando o desempenho geral de um computador.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção se relaciona ao campo de computadores, e em particular, a um método e um aparelho para otimização de recurso de memória.
ANTECEDENTES
[0002] Atualmente, um computador multinúcleo de alto desempenho (Multi-core High Performance Computer) é aplicado mais largamente. Além disso, como uma quantidade de unidades de cálculo (núcleos) em um processador continua a aumentar, um fenômeno de contenção de acesso à memória entre múltiplos núcleos complica ainda mais um problema. Em qualquer período de tempo de execução concorrente, solicitações de acesso à memória a partir de diferentes núcleos podem disputar por acesso à memória com recursos de memória global, desencadeando adicionalmente um conflito por recursos tais como um controlador de memória (Memory Controller, MC), largura de banda (Bandwidth), e um banco de memória de acesso aleatório dinâmica (DRAM Bank); o resultado é que a utilização de recurso é afetada.
[0003] O acesso a uma memória principal é usado como um exemplo. Normalmente, um transistor avulso é usado como uma unidade de armazenamento, N*M unidades de armazenamento formam uma matriz de armazenamento, e diversas matrizes de armazenamento constituem um banco (Bank). Cada Banco tem um armazenador em linha (Row-Buffer); quando dados devem ser acessados, os dados em uma linha alvo podem ser lidos apenas após os dados serem movidos para o armazenador em linha. Um sistema DRAM moderno normalmente usa múltiplos Bancos, e respectivas solicitações de acesso à memória são processadas independentemente ao mesmo tempo. Entretanto, se duas solicitações de acesso à memória que são de diferentes processos ou cadeias acessam diferentes linhas de um mesmo Banco de DRAM, um conflito (ou chamado de um conflito de armazenador em linha) no Banco de DRAM pode ser gerado, e há um aumento no retardo de acesso à memória. Um cache (Cache) é usado para minorar um intervalo entre uma unidade de cálculo e uma memória principal. Uma vez que o cache está mais perto da unidade de cálculo que a memória principal, o cache afeta o desempenho de cálculo mais facilmente. Os processadores existentes basicamente usam uma estrutura de compartilhar um cache de último nível (Last Level Cache, LLC) entre múltiplos núcleos. Entretanto, o LLC também é intensamente disputado entre múltiplos programas ou cadeias concorrentes. Se nenhuma política de gerenciamento adequada é usada, é muito fácil causar uma séria deterioração no desempenho.
[0004] Na técnica anterior, o LLC ou o Banco de DRAM é particionado usando-se coloração de página (Page-Coloring). Com relação ao particionamento de LLC com base em coloração de página, um recurso de Cache é particionado em diversas partes independentes em uma maneira de realizar coloração de página em bits de índice de um conjunto de cache (Cache Set) em um endereço físico, e as partes são atribuídas a diferentes cadeias separadamente. Portanto, a disputa dentro da cadeia devido ao compartilhamento de um Cache desaparece. Similar ao particionamento de LLC, bits de índice do Banco de DRAM também podem ser refletidos em um endereço físico, e o Banco de DRAM também pode ser particionado em diversos grupos independentes realizando-se coloração de acordo com esses bits de endereço; portanto, a disputa interprograma no Banco de DRAM desaparece. Para alguns conjuntos de trabalho, um efeito de melhora no desempenho relativamente bom pode ser alcançado.
[0005] Entretanto, quando uma tecnologia de coloração de página é usada para particionar um recurso em um nível, um impacto negativo é causado na utilização de um recurso em outro nível. Por exemplo, o trabalho relacionado ao particionamento de LLC tem uma restrição na melhora de desempenho de um recurso de Banco de DRAM; similarmente, o trabalho relacionado ao particionamento de Banco de DRAM também afeta o desempenho de um recurso de LLC. Além disso, uma vez que a execução de um sistema de computador moderno exige vários conjuntos de trabalho, um mecanismo de particionamento existente com base em coloração de página para um recurso em um nível é difícil de encaixar nas características de diferentes conjuntos de trabalho; o resultado é que um efeito de particionamento ótimo não pode ser alcançado, e a melhora no desempenho geral do computador é limitada.
[0006] CN 10719105 A1 se relaciona a um método de otimização e um sistema de otimização para acesso à memória em um sistema de multinúcleos.
[0007] US 7434002 B se relaciona a utilizar informações de cache para gerenciar acesso à memória e utilização de cache.
[0008] US 2013/275649 A se relaciona a um método de otimização de acesso para uma base de dados de memória principal com base em coloração de página.
[0009] US 2008/313420 A se relaciona a um método para gerenciar uso de conjunto de trabalho de um cache através de coloração de página. Especificamente, US 2008/313420 revela que um cache de processador é indexado por um grupo de cores de página distintas. O uso deste cache por conjuntos de trabalho diferentes é controlado usando coloração de página.
SUMÁRIO
[0010] Modalidades da presente invenção fornecem um método e um aparelho para otimização de recurso de memória, fornecem uma política de particionamento colaborativa entre um LLC e um Banco de DRAM, onde a política é combinada com uma característica de um conjunto de trabalho, e podem resolver um problema que é o de processos ou cadeias afetarem mutuamente uns aos outros quando compartilham recursos de memória, de modo que o desempenho geral de um computador seja aperfeiçoado. A presente invenção é conforme definida nas reivindicações independentes 1, 8 e 15 anexadas. Implantações adicionais são reveladas nas reivindicações dependentes, relatório, e desenhos anexados.
[0011] Para alcançar os supracitados objetivos, as soluções técnicas a seguir são usadas na modalidade da presente invenção:
[0012] De acordo com um primeiro aspecto, um método de otimização de recurso de memória é fornecido, onde o método inclui: adquirir dados de desempenho de cada programa em um conjunto de trabalho, e categorizar cada programa comparando-se os dados de desempenho de cada programa e uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com um limite predefinido, onde os dados de desempenho de cada programa são uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado; selecionar, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, onde a política de particionamento com base em coloração de página inclui uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto no LLC quanto no banco de memória de acesso aleatório dinâmica Banco de DRAM; e escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho em um kernel de sistema operacional, onde o kernel de sistema operacional realiza um processamento de particionamento com base em coloração de página correspondente.
[0013] Com referência ao primeiro aspecto, em uma primeira maneira de implantação, a aquisição de dados de desempenho de cada programa em um conjunto de trabalho inclui: particionar o recurso de LLC em N porções usando-se uma tecnologia de coloração de página, tomar 1/N de uma capacidade máxima do recurso de LLC como um nível, alocar a capacidade máxima do recurso de LLC para cada programa no começo, e diminuir a capacidade do recurso de LLC alocado para cada programa em um nível em cada ajuste, até que a capacidade seja diminuída para 1/N da capacidade máxima do recurso de LLC; e monitorar uma variação que é gerada quando o indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste, e usar a variação como os dados de desempenho de cada programa, onde o indicador de desempenho predefinido é uma razão de aceleração de cada programa.
[0014] Com referência ao primeiro aspecto ou à primeira maneira de implantação possível do primeiro aspecto, em uma segunda maneira de implantação possível, a categorização de cada programa comparando-se os dados de desempenho de cada programa e uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com um limite predefinido inclui: contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio predefinido de um processo de execução, para se obter a frequência de acesso à memória de cada programa; comparar os dados de desempenho de cada programa e a frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com o limite predefinido, onde o limite predefinido inclui um primeiro limite, um segundo limite e um terceiro limite, o primeiro limite e o segundo limite são limites de dados de desempenho, e o terceiro limite é uma frequência de acesso à memória; e se os dados de desempenho de um programa forem maiores que o primeiro limite, categorizar o programa como um tipo de demanda alta; se os dados de desempenho de um programa forem menores que o primeiro limite e maiores que o segundo limite, categorizar o programa como um tipo de demanda média; ou se os dados de desempenho de um programa forem menores que o segundo limite e uma frequência de acesso à memória for maior que o terceiro limite, categorizar o programa como um tipo de demanda baixa e intensiva.
[0015] Com referência ao primeiro aspecto, em uma terceira maneira de implantação possível, a política de decisão predefinida é uma árvore de decisão política de particionamento no kernel de sistema operacional, e a árvore de decisão política de particionamento é implantada no kernel de sistema operacional na forma de algoritmo; e a seleção, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, de uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho inclui: entrar com a categorização de cada programa no conjunto de trabalho para o kernel de sistema operacional, e buscar na árvore de decisão de política de particionamento no kernel de sistema operacional por um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho.
[0016] Com referência à terceira maneira de implantação possível do primeiro aspecto, em uma quarta maneira de implantação possível, a política de particionamento com base em coloração de página inclui a política de particionamento colaborativa com base em coloração de página e uma política de particionamento não colaborativa com base em coloração de página; a política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice do Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM; e a política de particionamento colaborativa com base em coloração de página inclui: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC; e a política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados e inclui: uma política Apenas de Cache, na qual o particionamento com base em coloração é realizado no LLC usando-se o bit de índice do LLC, e o particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e o particionamento com base em coloração não é realizado no LLC.
[0017] Com referência à terceira maneira de implantação possível do primeiro aspecto ou à quarta maneira de implantação possível do primeiro aspecto, em uma quinta maneira de implantação possível, a busca da árvore de decisão de política de particionamento no kernel de sistema operacional para um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho inclui: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta, selecionar a política Apenas de Banco; se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a C-MMCP, onde N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média e não há tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a B-MMCP, onde N é uma quantidade de núcleos de um processador.
[0018] De acordo com um segundo aspecto, um aparelho de otimização de recurso de memória é fornecido, onde o aparelho inclui: uma unidade de extremidade frontal, configurada para adquirir dados de desempenho de cada programa em um conjunto de trabalho, e categorizar cada programa comparando os dados de desempenho de cada programa e uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com um limite predefinido, onde os dados de desempenho de cada programa são uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado; uma unidade de tomada de decisão, configurada para selecionar, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, onde a política de particionamento com base em coloração de página inclui uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto no LLC quanto no banco de memória de acesso aleatório dinâmica Banco de DRAM; e uma unidade de particionamento, configurada para escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, onde o kernel de sistema operacional realiza um processamento de particionamento com base em coloração de página correspondente.
[0019] Com referência ao segundo aspecto, em uma primeira maneira de implantação, a unidade de extremidade frontal inclui uma unidade de coleta de dados, onde a unidade de coleta de dados é especificamente configurada para: particionar o recurso de LLC em N porções usando-se uma tecnologia de coloração de página, tomar 1/N de uma capacidade máxima do recurso de LLC como um nível, alocar a capacidade máxima do recurso de LLC para cada programa no começo, e diminuir a capacidade do recurso de LLC alocado para cada programa em um nível em cada ajuste, até que a capacidade seja diminuída para 1/N da capacidade máxima do recurso de LLC; e monitorar uma variação que é gerada quando o indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste, e usar a variação como os dados de desempenho de cada programa, onde o indicador de desempenho predefinido é uma razão de aceleração de cada programa.
[0020] Com referência ao segundo aspecto ou à primeira maneira de implantação possível do segundo aspecto, em uma segunda maneira de implantação possível, a unidade de extremidade frontal adicionalmente inclui uma unidade de categorização, onde a unidade de categorização é especificamente configurada para: contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio predefinido de um processo de execução, para se obter a frequência de acesso à memória de cada programa; comparar os dados de desempenho de cada programa e a frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com o limite predefinido, onde o limite predefinido inclui um primeiro limite, um segundo limite e um terceiro limite, o primeiro limite e o segundo limite são limites de dados de desempenho, e o terceiro limite é um limite de frequência de acesso à memória; e se os dados de desempenho de um programa forem maiores que o primeiro limite, categorizar o programa como um tipo de demanda alta; se os dados de desempenho de um programa forem menores que o primeiro limite e maiores que o segundo limite, categorizar o programa como um tipo de demanda média; ou se os dados de desempenho de um programa forem menores que o segundo limite e uma frequência de acesso à memória for maior que o terceiro limite, categorizar o programa como um tipo de demanda baixa e intensiva.
[0021] Com referência ao segundo aspecto, em uma terceira maneira de implantação possível, a política de decisão predefinida é uma árvore de decisão de política de particionamento no kernel de sistema operacional, e a árvore de decisão de política de particionamento é implantada no kernel de sistema operacional em forma de algoritmo, e a unidade de tomada de decisão é especificamente configurada para: entrar com a categorização de cada programa no conjunto de trabalho para o kernel de sistema operacional, e buscar na árvore de decisão de política de particionamento no kernel de sistema operacional por um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho.
[0022] Com referência à terceira maneira de implantação possível do segundo aspecto, em uma quarta maneira de implantação possível, a política de particionamento com base em coloração de página inclui a política de particionamento colaborativa com base em coloração de página e uma política de particionamento não colaborativa com base em coloração de página; a política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice do Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM; e a política de particionamento colaborativa com base em coloração de página inclui: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC; e a política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados e inclui: uma política Apenas de Cache, na qual particionamento com base em coloração é realizado no LLC usando-se o bit de índice do LLC, e particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e particionamento com base em coloração não é realizado no LLC.
[0023] Com referência à terceira maneira de implantação possível do segundo aspecto ou à quarta maneira de implantação possíveis do segundo aspecto, em uma quinta maneira de implantação possível, a unidade de tomada de decisão é adicionalmente especificamente configurada para: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta, selecionar a política Apenas de Banco; se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar uma C-MMCP, onde N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média e não há tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a B-MMCP, onde N é uma quantidade de núcleos de um processador.
[0024] De acordo com o método e o aparelho para otimização de recurso de memória fornecidos nas modalidades da presente invenção, um recurso de LLC é particionado usando-se uma tecnologia de coloração de página, os dados de desempenho de cada programa em um conjunto de trabalho são adquiridos, uma categoria de cada programa é obtida à luz de uma frequência de acesso à memória, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho é selecionada de acordo com a categoria de cada programa, e a política de particionamento com base em coloração de página é escrita para um kernel de sistema operacional, para completar o processamento de particionamento com base em coloração de página correspondente. Desse modo, uma política de particionamento colaborativa entre o LLC e um Banco de DRAM é implantada à luz de uma característica do conjunto de trabalho, e a interferência mútua de processos ou cadeias em um recurso de memória pode ser reduzida e mesmo eliminada, desse modo aperfeiçoando o desempenho geral de um computador.
BREVE DESCRIÇÃO DOS DESENHOS
[0025] Para descrever as soluções técnicas nas modalidades da presente invenção ou na técnica anterior mais claramente, o que vem a seguir apresenta resumidamente os desenhos anexos exigidos para descrever as modalidades ou a técnica anterior. Evidentemente, os desenhos anexos na descrição a seguir mostram meramente algumas modalidades da presente invenção, e uma pessoa de habilidade comum na técnica pode ainda derivar outros desenhos a partir desses desenhos anexos sem esforços criativos.
[0026] A Figura 1 é um fluxograma esquemático de um método de otimização de recurso de memória de acordo com uma modalidade da presente invenção;
[0027] A Figura 2 é um fluxograma esquemático de outro método de otimização de recurso de memória de acordo com uma modalidade da presente invenção;
[0028] A Figura 3 é um diagrama esquemático de um efeito de categorização de programa de acordo com uma modalidade da presente invenção;
[0029] A Figura 4 é um diagrama estrutural esquemático 1 de um aparelho de otimização de recurso de memória de acordo com uma modalidade da presente invenção;
[0030] A Figura 5 é um diagrama estrutural esquemático 2 de um aparelho de otimização de recurso de memória de acordo com uma modalidade da presente invenção; e
[0031] A Figura 6 é um diagrama estrutural esquemático 3 de um aparelho de otimização de recurso de memória de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DE MODALIDADES
[0032] O exposto a seguir descreve clara e completamente as soluções técnicas nas modalidades da presente invenção com referência aos desenhos anexos nas modalidades da presente invenção. Evidentemente, as modalidades descritas são meramente algumas, mas não todas as modalidades da presente invenção. Todas as outras modalidades obtidas por uma pessoa de habilidade comum na técnica com base nas modalidades da presente invenção sem esforços criativos estarão abrangidas pelo escopo de proteção da presente invenção.
[0033] Uma modalidade da presente invenção fornece um método de otimização de recurso de memória. Conforme mostrado na Figura 1, o método inclui:
[0034] S101: Adquirir dados de desempenho de cada programa em um conjunto de trabalho, e categorizar cada programa comparando-se os dados de desempenho de cada programa e uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com um limite predefinido, onde os dados de desempenho de cada programa são uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado.
[0035] S102: Selecionar, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, onde a política de particionamento com base em coloração de página inclui uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto em um LLC quanto em um banco de memória de acesso aleatório dinâmica Banco de DRAM.
[0036] S103: Escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, onde o kernel de sistema operacional realiza um processamento de particionamento com base em coloração de página correspondente.
[0037] De acordo com o método de otimização de recurso de memória fornecido nessa modalidade da presente invenção, dados de desempenho de cada programa em um conjunto de trabalho são adquiridos, uma categoria de cada programa é obtida à luz de uma frequência de acesso à memória, uma política de particionamento com base em coloração de página do conjunto de trabalho é selecionada de acordo com a categoria de cada programa, e a política de particionamento com base em coloração de página é escrita para um kernel de sistema operacional, para completar processamento de particionamento com base em coloração de página correspondente. Desse modo, uma política de particionamento colaborativa entre um LLC e um Banco de DRAM é implantada à luz de uma característica do conjunto de trabalho, e interferência mútua de processos ou cadeias em um recurso de memória pode ser reduzida e mesmo eliminada, desse modo aperfeiçoando o desempenho geral de um computador.
[0038] Para permitir a uma pessoa versada na técnica que entenda as soluções técnicas fornecidas pelas modalidades da presente invenção mais claramente, a seguir se descreve outro método de otimização de recurso de memória fornecido por uma modalidade da presente invenção em detalhe usando-se um exemplo específico. Conforme mostrado na Figura 2, o método inclui:
[0039] S201: Adquirir dados de desempenho de cada programa em um conjunto de trabalho.
[0040] Especificamente, um recurso de LLC é particionado usando-se uma tecnologia de coloração de página, o recurso de LLC é particionado em N porções, e 1/N de uma capacidade máxima do recurso de LLC é tomado como um nível. A capacidade máxima do recurso de LLC é alocada para cada programa no começo, e a capacidade do recurso de LLC alocada para cada programa é diminuída em um nível em cada ajuste, até que o recurso de LLC alocado para cada programa é diminuído até 1/N da capacidade máxima do recurso de LLC; uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste é monitorado, e a variação é usada como os dados de desempenho de cada programa.
[0041] Exemplificativamente, em um processador de núcleo quádruplo, N pode ser 8, 1/8 de uma capacidade máxima de um recurso de LLC é tomado como um nível, uma capacidade do recurso de LLC alocado para cada programa em um conjunto de trabalho é ajustada, e a capacidade do recurso de LLC alocado para cada programa no conjunto de trabalho é diminuída em um nível em cada ajuste, até que a capacidade do recurso de LLC alocado para cada programa é diminuído para 1/8 da capacidade máxima do recurso de LLC; uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado no supracitado processo de ajuste é monitorado.
[0042] O indicador de desempenho predefinido de cada programa pode ser uma razão de aceleração de normalização, a variação que é gerada quando a razão de aceleração de normalização de cada programa varia com a capacidade do recurso de LLC alocado em todo o processo de ajuste é adquirida, e a variação é usada como os dados de desempenho de cada programa.
[0043] S202: Determinar uma categoria à qual cada programa pertence à luz de uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa no conjunto de trabalho.
[0044] Especificamente, um contador de desempenho de hardware é usado para contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio ou período de tempo predefinidos de um processo de execução, para se obter a frequência de acesso à memória de cada programa.
[0045] Então, a categoria à qual cada programa pertence é determinada à luz dos dados de desempenho de cada programa e da frequência de acesso à memória de cada programa e de acordo com um limite predefinido.
[0046] O limite predefinido inclui um primeiro limite, um segundo limite e um terceiro limite, onde o primeiro limite e o segundo limite são limites de dados de desempenho, e o terceiro limite é um limite de frequência de acesso à memória.
[0047] Exemplificativamente, os dados de desempenho são uma variação que é gerada quando a razão de aceleração de normalização de cada programa varia com a capacidade do recurso de LLC alocado para cada programa. Em um processo no qual a capacidade do LLC alocado para cada programa é ajustada e diminuída da capacidade máxima do LLC até 1/N da capacidade máxima do LLC, tomando-se um computador de núcleo quádruplo como um exemplo, onde N é 8, conforme mostrado na Figura 3, uma curva na qual a razão de aceleração de normalização de cada programa varia com a capacidade do recurso de LLC alocado para cada programa é obtida. Portanto, pode ser aprendido que uma maneira de categorização principal é como a seguir: se uma razão de aceleração de normalização de um programa é maior que o primeiro limite, pode ser conhecido que a deterioração em desempenho de um programa como esse é muito considerável quando a capacidade do recurso de LLC diminui, isto é, o desempenho de um programa como esse é significativamente afetado pela capacidade do recurso de LLC alocado, e um programa como esse é categorizado como um tipo de demanda alta 031; se uma razão de aceleração de normalização de um programa é menor que o primeiro limite e maior que o segundo limite, pode ser conhecido que a deterioração em desempenho de um programa como esse é moderada quando a capacidade do recurso de LLC diminui, isto é, o desempenho de um programa como esse é moderadamente afetado pela capacidade do recurso de LLC alocado, e um programa como esse é categorizado como um tipo de demanda média 032; ou se uma razão de aceleração de normalização de um programa for menor que o segundo limite e uma frequência de acesso à memória for maior que o terceiro limite, pode ser conhecido que uma faixa de variação de desempenho de um programa como esse é muito pequena quando a capacidade do recurso de LLC diminui, e que a frequência de acesso à memória do programa é alta, isto é, o desempenho de um programa como esse é relativamente pouco afetado pela capacidade do recurso de LLC alocado, e o programa é de um tipo de demanda baixa 033; entretanto, uma vez que o desempenho de um programa como esse é significativamente afetado por uma capacidade da memória principal, o programa é de um tipo de acesso à memória intensivo; portanto, um programa como esse é categorizado como um tipo de demanda baixa e intensiva.
[0048] Exemplificativamente, o supracitado tipo de demanda alta 031 pode adicionalmente incluir especificamente instalação de cache de último nível (LLC Fitting, LLCF) e amigável ao cache de último nível (LLC Friendly, LLCFR); o supracitado tipo de demanda média 032 pode incluir especificamente balanço de cache de último nível (LLC Swing, LLCS); o supracitado tipo de demanda baixa 033 pode incluir especificamente: instalação de cache de núcleo (Core Cache Fitting, CCF) e sobrecarga de LLC (LLC Thrashing, LLCT).
[0049] S203: Selecionar uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho de acordo com a categoria à qual cada programa no conjunto de trabalho pertence.
[0050] Especificamente, a categoria à qual cada programa no conjunto de trabalho pertence é escrita para um kernel de sistema operacional, e então a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho é selecionada de acordo com uma política de decisão predefinida.
[0051] A categoria à qual cada programa no conjunto de trabalho pertence pode ser escrita para o kernel de sistema operacional usando-se um mecanismo /proc. A política de decisão predefinida pode ser uma árvore de decisão de política de particionamento no kernel de sistema operacional, e a árvore de decisão de política de particionamento é implantada no kernel de sistema operacional em forma de algoritmo.
[0052] Especificamente, a categorização de cada programa no conjunto de trabalho é escrita para o kernel de sistema operacional, a árvore de decisão de política de particionamento no kernel de sistema operacional é buscada por um nó correspondente à luz da categoria de cada programa no conjunto de trabalho, de modo a determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho. A política de particionamento com base em coloração de página inclui uma política de particionamento colaborativa com base em coloração de página e uma política de particionamento não colaborativa com base em coloração de página.
[0053] A política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice de um Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM.
[0054] A política de particionamento colaborativa com base em coloração de página inclui: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC.
[0055] A política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados e inclui: uma política Apenas de Cache, na qual o particionamento com base em coloração é realizado no LLC usando-se o bit de índice do LLC, e particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e particionamento com base em coloração não é realizado no LLC.
[0056] Exemplificativamente, os bits O-bits de endereço de índice sobrepostos do LLC e o Banco de DRAM podem ser o 14o e o 15o bits no quadro de página física, e quatro cores, isto é, 00, 01, 10, e 11, podem ser obtidas por meio de particionamento usando-se os dois bits de índice. Além disso, bits de índice 16°, 17° e 18° do LLC e os bits de índice 21° e 22° do Banco de DRAM também existem no quadro de página física.
[0057] Na A-MMCP, particionamento com base em coloração é realizado apenas pelo uso dos O-bits, isto é, o 14o e o 15o bits, o LLC pode ser particionado em 4 porções iguais, e o Banco de DRAM pode ser particionado em 4 porções iguais.
[0058] Na B-MMCP, particionamento com base em coloração é realizado usando-se os O-bits e um dos bits de índice do Banco de DRAM, isto é, o 14o, 15o, e 21o bits, o LLC pode ser particionado em 4 porções iguais, e o Banco de DRAM pode ser particionado em 8 porções iguais.
[0059] Na C-MMCP, particionamento com base em coloração é realizado usando-se os O-bits e um dos bits de índice do LLC, isto é, o 14o, 15o, e 16o bits, o LLC pode ser particionado em 8 porções iguais, e o Banco de DRAM pode ser particionado em 4 porções iguais.
[0060] Especificamente, o fato de que a árvore de decisão de política de particionamento é implantada no kernel de sistema operacional em forma de algoritmo inclui: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta 031, a política Apenas de Banco é selecionada; se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, uma quantidade de programas no conjunto de trabalho é determinada adicionalmente; e se a quantidade de programas for menor que ou igual a N, a A-MMCP é selecionada; caso contrário, a C-MMCP é selecionada, onde N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média 032 e não há tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, uma quantidade de programas no conjunto de trabalho é determinada adicionalmente; e se a quantidade de programas for menor que ou igual a N, a A-MMCP é selecionada; caso contrário, a B-MMCP é selecionada, onde N é uma quantidade de núcleos de um processador.
[0061] S204: Escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, onde o kernel de sistema operacional realiza um processamento de particionamento com base em coloração de página correspondente.
[0062] Especificamente, a política de particionamento com base em coloração de página selecionada pode ser escrita para o kernel de sistema operacional usando-se o mecanismo /proc, e um sistema amigo (Buddy System) em um sistema operacional ajusta um mecanismo de alocação de memória, para completar um particionamento com base em operação de coloração.
[0063] Exemplificativamente, um mecanismo de gerenciamento e um mecanismo de recuperação no sistema amigo podem completar gerenciamento e recuperação em uma página exigida para coloração; o sistema amigo pode ajustar o mecanismo de alocação de memória, para permitir que o mecanismo de alocação de memória comute entre várias políticas de particionamento.
[0064] De acordo com o método de otimização de recurso de memória fornecido nessa modalidade da presente invenção, um recurso de LLC é particionado usando-se uma tecnologia de coloração de página, dados de desempenho de cada programa em um conjunto de trabalho são adquiridos, uma categoria de cada programa é obtida à luz de uma frequência de acesso à memória, uma política de particionamento com base em coloração de página do conjunto de trabalho é selecionada de acordo com a categoria de cada programa, e a política de particionamento com base em coloração de página é escrita para um kernel de sistema operacional, para completar processamento de particionamento com base em coloração de página correspondente. Desse modo, uma política de particionamento colaborativa entre um LLC e um Banco de DRAM é implantada à luz de uma característica do conjunto de trabalho, e a interferência mútua de processos ou cadeias em um recurso de memória pode ser reduzida e mesmo eliminada, desse modo aperfeiçoando o desempenho geral de um computador.
[0065] Uma modalidade da presente invenção fornece um aparelho de otimização de recurso de memória 00. Conforme mostrado na Figura 4, o aparelho inclui: uma unidade de extremidade frontal 001, configurada para adquirir dados de desempenho de cada programa em um conjunto de trabalho, e categorizar cada programa comparando-se os dados de desempenho de cada programa e uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com um limite predefinido, onde os dados de desempenho de cada programa são uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado; uma unidade de tomada de decisão 002, configurada para selecionar, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, onde a política de particionamento com base em coloração de página inclui uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto em um LLC quanto em um banco de memória de acesso aleatório dinâmica Banco de DRAM; e uma unidade de particionamento 003, configurada para escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, onde o kernel de sistema operacional realiza um processamento de particionamento com base em coloração de página correspondente.
[0066] Conforme mostrado na Figura 5, a unidade de extremidade frontal 001 pode incluir uma unidade de coleta de dados 0011 e uma unidade de categorização 0012.
[0067] Opcionalmente, a unidade de coleta de dados 0011 é configurada para particionar o recurso de LLC em N porções usando uma tecnologia de coloração de página, tomar 1/N de uma capacidade máxima do recurso de LLC como um nível, alocar a capacidade máxima do recurso de LLC para cada programa no começo, e diminuir a capacidade do recurso de LLC alocado para cada programa em um nível em cada ajuste, até que a capacidade seja diminuída para 1/N da capacidade máxima do recurso de LLC; e monitorar uma variação que é gerada quando o indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste, e usar a variação como os dados de desempenho de cada programa, onde o indicador de desempenho predefinido é uma razão de aceleração de cada programa.
[0068] Opcionalmente, a unidade de categorização 0012 é configurada para contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio predefinido de um processo de execução, para se obter a frequência de acesso à memória de cada programa; comparar os dados de desempenho de cada programa e a frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com o limite predefinido, onde o limite predefinido inclui um primeiro limite, um segundo limite e um terceiro limite, o primeiro limite e o segundo limite são limites de dados de desempenho, e o terceiro limite é um limite de frequência de acesso à memória; e se os dados de desempenho de um programa forem maiores que o primeiro limite, categorizar o programa como um tipo de demanda alta; se os dados de desempenho de um programa forem menores que o primeiro limite e maiores que o segundo limite, categorizar o programa como um tipo de demanda média; ou se os dados de desempenho de um programa forem menores que o segundo limite e uma frequência de acesso à memória for maior que o terceiro limite, categorizar o programa como um tipo de demanda baixa e intensiva.
[0069] Opcionalmente, a política de decisão predefinida é uma árvore de decisão de política de particionamento no kernel de sistema operacional, e a árvore de decisão de política de particionamento é implantada no kernel de sistema operacional em forma de algoritmo; a unidade de tomada de decisão 002 é especificamente configurada para: escrever a categorização de cada programa no conjunto de trabalho para o kernel de sistema operacional, e buscar na árvore de decisão de política de particionamento no kernel de sistema operacional um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho.
[0070] Opcionalmente, a política de particionamento com base em coloração de página inclui a política de particionamento colaborativa com base em coloração de página e uma política de particionamento não colaborativa com base em coloração de página, onde, especificamente: a política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice do Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM, onde a política de particionamento colaborativa com base em coloração de página inclui: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC; e a política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados e inclui: uma política Apenas de Cache, na qual particionamento com base em coloração é realizado no LLC usando-se o bit de índice do LLC, e particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e particionamento com base em coloração não é realizado no LLC.
[0071] Opcionalmente, a unidade de tomada de decisão 002 é adicionalmente especificamente configurada para: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta, selecionar a política Apenas de Banco; se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a C-MMCP, onde N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média e não há tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a B-MMCP, onde N é uma quantidade de núcleos de um processador.
[0072] De acordo com o aparelho de otimização de recurso de memória fornecido nessa modalidade da presente invenção, um recurso de LLC é particionado usando-se uma tecnologia de coloração de página, dados de desempenho de cada programa em um conjunto de trabalho são adquiridos, uma categoria de cada programa é obtida à luz de uma frequência de acesso à memória, uma política de particionamento com base em coloração de página do conjunto de trabalho é selecionada de acordo com a categoria de cada programa, e a política de particionamento com base em coloração de página é escrita para um kernel de sistema operacional, para completar o processamento de particionamento com base em coloração de página correspondente. Desse modo, uma política de particionamento colaborativa entre um LLC e um Banco de DRAM é implantada à luz de uma característica do conjunto de trabalho, e a interferência mútua de processos ou cadeias em um recurso de memória pode ser reduzida e mesmo eliminada, desse modo aperfeiçoando o desempenho geral de um computador.
[0073] Uma modalidade da presente invenção adicionalmente fornece um aparelho de otimização de recurso de memória 01. Conforme mostrado na Figura 6, o aparelho de otimização de recurso de memória 01 inclui: um barramento 011, e um processador 012, uma memória 013, e uma interface 014 conectados ao barramento 011, onde a interface 014 é configurada para se comunicar com um dispositivo externo.
[0074] A memória 013 é configurada para armazenar uma instrução. O processador 012 é configurado para executar a instrução, e é configurado para adquirir dados de desempenho de cada programa em um conjunto de trabalho, e categorizar cada programa comparando os dados de desempenho de cada programa e uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com um limite predefinido, onde os dados de desempenho de cada programa é uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado.
[0075] O processador 012 executa a instrução, e é adicionalmente configurado para selecionar, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, onde a política de particionamento com base em coloração de página inclui uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto em um LLC quanto em um banco de memória de acesso aleatório dinâmica Banco de DRAM.
[0076] O processador 012 executa a instrução, e é adicionalmente configurado para escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, onde o kernel de sistema operacional realiza um processamento de particionamento com base em coloração de página correspondente.
[0077] Nessa modalidade da presente invenção, opcionalmente, o processador 012 executa a instrução, e pode ser especificamente configurado para: particionar o recurso de LLC em N porções usando uma tecnologia de coloração de página, tomar 1/N de uma capacidade máxima do recurso de LLC como um nível, alocar a capacidade máxima do recurso de LLC para cada programa no começo, e diminuir a capacidade do recurso de LLC alocado para cada programa em um nível em cada ajuste, até que a capacidade seja diminuída para 1/N da capacidade máxima do recurso de LLC; e monitorar uma variação que é gerada quando o indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste, e usar a variação como os dados de desempenho de cada programa, onde o indicador de desempenho predefinido é uma razão de aceleração de cada programa.
[0078] Nessa modalidade da presente invenção, opcionalmente, o processador 012 executa a instrução, e pode ser especificamente configurado para: contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio predefinido de um processo de execução, para se obter a frequência de acesso à memória de cada programa; comparar os dados de desempenho de cada programa e a frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa com o limite predefinido, onde o limite predefinido inclui um primeiro limite, um segundo limite e um terceiro limite, o primeiro limite e o segundo limite são limites de dados de desempenho, e o terceiro limite é um limite de frequência de acesso à memória; e se os dados de desempenho de um programa forem maiores que o primeiro limite, categorizar o programa como um tipo de demanda alta; se os dados de desempenho de um programa forem menores que o primeiro limite e maiores que o segundo limite, categorizar o programa como um tipo de demanda média; ou se os dados de desempenho de um programa forem menores que o segundo limite e uma frequência de acesso à memória for maior que o terceiro limite, categorizar o programa como um tipo de demanda baixa e intensiva.
[0079] Nessa modalidade da presente invenção, opcionalmente, a política de decisão predefinida é uma árvore de decisão de política de particionamento no kernel de sistema operacional, e a árvore de decisão de política de particionamento é implantada no kernel de sistema operacional em forma de algoritmo. O processador 012 executa a instrução, e pode ser especificamente configurado para: escrever a categorização de cada programa no conjunto de trabalho para o kernel de sistema operacional, e buscar na árvore de decisão de política de particionamento no kernel de sistema operacional um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho.
[0080] Nessa modalidade da presente invenção, opcionalmente, a política de particionamento com base em coloração de página inclui a política de particionamento colaborativa com base em coloração de página e uma política de particionamento não colaborativa com base em coloração de página, onde, especificamente: a política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice do Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM, onde a política de particionamento colaborativa com base em coloração de página inclui: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC; e a política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados e inclui: uma política Apenas de Cache, na qual particionamento com base em coloração é realizado no LLC usando-se o bit de índice do LLC, e particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e particionamento com base em coloração não é realizado no LLC.
[0081] Nessa modalidade da presente invenção, opcionalmente, o processador 012 executa a instrução, e pode ser especificamente configurado para: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta, selecionar a política Apenas de Banco; se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a C-MMCP, onde N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média e não há tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a B-MMCP, onde N é uma quantidade de núcleos de um processador.
[0082] De acordo com o aparelho de otimização de recurso de memória fornecido nessa modalidade da presente invenção, um recurso de LLC é particionado usando-se uma tecnologia de coloração de página, dados de desempenho de cada programa em um conjunto de trabalho são adquiridos, uma categoria de cada programa é obtida à luz de uma frequência de acesso à memória, uma política de particionamento com base em coloração de página do conjunto de trabalho é selecionada de acordo com a categoria de cada programa, e a política de particionamento com base em coloração de página é escrita para um kernel de sistema operacional, para completar processamento de particionamento com base em coloração de página correspondente. Desse modo, uma política de particionamento colaborativa entre um LLC e um Banco de DRAM é implantada à luz de uma característica do conjunto de trabalho, e interferência mútua de processos ou cadeias em um recurso de memória pode ser reduzida e mesmo eliminada, desse modo aperfeiçoando o desempenho geral de um computador.
[0083] Nas diversas modalidades fornecidas no presente pedido, deve ser entendido que o aparelho e o método revelados podem ser implantados de outras maneiras. Por exemplo, as modalidades de aparelho descritas são meramente exemplificativas. Por exemplo, a divisão de módulo é meramente uma divisão de função lógica, e pode haver outras maneiras de divisão em uma implantação efetiva. Além disso, as conexões entre módulos exibidas ou discutidas podem ser implantadas usando-se algumas interfaces, e podem ser implantadas em formas eletrônicas, mecânicas ou outras.
[0084] Os módulos podem ser fisicamente separados ou não, e podem ser ou não unidades físicas. Alguns dos ou todos os módulos podem ser selecionados de acordo com exigências efetivas para alcançar os objetivos das soluções das modalidades.
[0085] Além disso, módulos funcionais nas modalidades da presente invenção podem ser integrados em um módulo de processamento, ou cada um dos módulos pode existir por si só fisicamente, ou dois ou mais módulos são integrados em um módulo. O módulo integrado pode ser implantado em uma forma de hardware, ou pode ser implantado em uma forma de hardware somado a um módulo funcional de software.
[0086] Quando o supracitado módulo integrado é implantado em uma forma de uma unidade funcional de software, a unidade integrada pode ser armazenada em uma mídia de armazenamento legível por computador. O módulo funcional de software é armazenado em uma mídia de armazenamento e inclui diversas instruções para instruir um dispositivo de computador (que pode ser um computador pessoal, um servidor, ou um dispositivo de rede) para realizar algumas das etapas dos métodos descritos nas modalidades da presente invenção. A supracitada mídia de armazenamento inclui: qualquer mídia que possa armazenar código de programa, tal como um pen drive USB, um disco rígido removível, uma memória apenas para leitura (Read-Only Memory, ROM), uma memória de acesso aleatório (Random Access Memory, RAM), um disco magnético, ou um disco óptico.
[0087] As supracitadas descrições são meramente maneiras de implantação específicas da presente invenção, mas não são destinadas a limitar o escopo de proteção da presente invenção. Qualquer variação ou substituição prontamente percebida por uma pessoa versada na técnica dentro do escopo técnico revelado na presente invenção estará abrangida pelo escopo de proteção da presente invenção. Portanto, o escopo de proteção da presente invenção estará sujeito ao escopo de proteção das reivindicações.

Claims (15)

1. Método de otimização de recurso de memória, CARACTERIZADO pelo fato de que o método compreende: adquirir (S101) dados de desempenho de cada programa em um conjunto de trabalho; categorizar (S101) cada programa de acordo com os dados de desempenho de cada programa e com uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa, em que os dados de desempenho de cada programa são uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado; selecionar (S102), à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, em que a política de particionamento com base em coloração de página compreende uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto em um LLC quanto em um banco de memória de acesso aleatório dinâmica Banco de DRAM; e escrever (S103) a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, em que o kernel de sistema operacional realiza processamento de particionamento com base em coloração de página correspondente.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a aquisição (S101) de dados de desempenho de cada programa em um conjunto de trabalho compreende: particionar o recurso de LLC em N porções, tomando 1/N de uma capacidade máxima do recurso de LLC como um nível, alocar a capacidade máxima do recurso de LLC para cada programa no começo, e diminuir a capacidade do recurso de LLC alocado para cada programa em um nível em cada ajuste, até que a capacidade seja diminuída para 1/N da capacidade máxima do recurso de LLC; e monitorar uma variação que é gerada quando o indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste, e usar a variação como os dados de desempenho de cada programa, em que o indicador de desempenho predefinido é uma razão de aceleração de cada programa.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que a política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice do Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM; e a política de particionamento colaborativa com base em coloração de página compreende: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a categorização (S101) de cada programa de acordo com os dados de desempenho de cada programa e com uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa compreende: contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio predefinido de um processo de execução, para se obter a frequência de acesso à memória de cada programa; comparar os dados de desempenho de cada programa com um limite de dados de desempenho predefinidos, em que o limite de dados de desempenho compreende um primeiro limite e um segundo limite, e o primeiro limite é maior que o segundo limite; e se os dados de desempenho de um programa forem maiores que o primeiro limite, categorizar o programa como um tipo de demanda alta; se os dados de desempenho de um programa forem menores que o primeiro limite e maiores que o segundo limite, categorizar o programa como um tipo de demanda média; ou se os dados de desempenho de um programa forem menores que o segundo limite e uma frequência de acesso à memória do programa for maior que um limite de frequência de acesso à memória predefinido, categorizar o programa como um tipo de demanda baixa e intensiva.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a seleção (S102), à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, de uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho compreende: se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a C-MMCP, em que N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média e não há nenhum tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas é menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a B-MMCP, em que N é uma quantidade de núcleos de um processador.
6. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a política de particionamento com base em coloração de página adicionalmente compreende uma política de particionamento não colaborativa com base em coloração de página, a política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados, e a política de particionamento não colaborativa com base em coloração de página compreende: uma política Apenas de Cache, na qual particionamento com base em coloração de página é realizado no LLC usando-se o bit de índice do LLC, e particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e particionamento com base em coloração não é realizado no LLC; e a seleção (S102), à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, de uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho adicionalmente compreende: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta, selecionar a política Apenas de Banco.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que a política de decisão predefinida é uma árvore de decisão de política de particionamento no kernel de sistema operacional, e a árvore de decisão de política de particionamento é implementada no kernel de sistema operacional em forma de algoritmo; e a seleção (S102), à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, de uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho compreende: entrar com a categorização de cada programa no conjunto de trabalho para o kernel de sistema operacional, e buscar na árvore de decisão de política de particionamento no kernel de sistema operacional um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho.
8. Aparelho de otimização de recurso de memória, CARACTERIZADO pelo fato de que o aparelho compreende: uma unidade de coleta de dados (0011), configurada para adquirir dados de desempenho de cada programa em um conjunto de trabalho; uma unidade de categorização (0012), configurada para categorizar cada programa de acordo com os dados de desempenho de cada programa e com uma frequência de acesso à memória, obtida por meio de coleta de estatísticas, de cada programa, em que os dados de desempenho de cada programa são uma variação que é gerada quando um indicador de desempenho predefinido de cada programa varia com uma capacidade de um recurso de cache de último nível LLC alocado; uma unidade de tomada de decisão (002), configurada para selecionar, à luz de categorização de cada programa no conjunto de trabalho e de uma política de decisão predefinida, uma política de particionamento com base em coloração de página correspondente ao conjunto de trabalho, em que a política de particionamento com base em coloração de página compreende uma política de particionamento colaborativa com base em coloração de página para realizar particionamento com base em coloração de página tanto no LLC quanto no banco de memória de acesso aleatório dinâmica Banco de DRAM; e uma unidade de particionamento (002), configurada para escrever a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho para um kernel de sistema operacional, em que o kernel de sistema operacional realiza processamento de particionamento com base em coloração de página correspondente.
9. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que a unidade de coleta de dados (0011) é especificamente configurada para: particionar o recurso de LLC em N porções, tomar 1/N de uma capacidade máxima do recurso de LLC como um nível, alocar a capacidade máxima do recurso de LLC para cada programa no começo, e diminuir a capacidade do recurso de LLC alocado para cada programa em um nível em cada ajuste, até que a capacidade seja diminuída para 1/N da capacidade máxima do recurso de LLC; e monitorar uma variação que é gerada quando o indicador de desempenho predefinido de cada programa varia com a capacidade do recurso de LLC alocado em um processo de ajuste, e usar a variação como os dados de desempenho de cada programa, em que o indicador de desempenho predefinido é uma razão de aceleração de cada programa.
10. Aparelho, de acordo com a reivindicação 8 ou 9, CARACTERIZADO pelo fato de que a política de particionamento colaborativa com base em coloração de página é uma política de particionamento de usar bits O-bits de endereço de índice sobrepostos como bits de índice de particionamento com base em coloração de página, e os O-bits são bits de endereço sobrepostos de bits de índice do LLC e bits de índice do Banco de DRAM em um quadro de página física, e são usados para indexar particionamento com base em coloração de página tanto para o LLC quanto para o Banco de DRAM; e a política de particionamento colaborativa com base em coloração de página compreende: uma política de particionamento colaborativa de memória multinível categoria A A-MMCP, na qual os O-bits são usados como bits de índice de particionamento, e o LLC e o Banco de DRAM são particionados em uma mesma quantidade de porções iguais; uma política de particionamento colaborativa de memória multinível categoria B B-MMCP, na qual os O-bits e um bit de índice do Banco de DRAM são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é maior que uma quantidade de porções iguais particionadas do LLC; e uma política de particionamento colaborativa de memória multinível categoria C C-MMCP, na qual os O-bits e um bit de índice do LLC são usados como bits de índice de particionamento, o LLC e o Banco de DRAM são particionados em diferentes quantidades de porções iguais, e uma quantidade de porções iguais particionadas do Banco de DRAM é menor que uma quantidade de porções iguais particionadas do LLC.
11. Aparelho, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a unidade de categorização (0012) é especificamente configurada para: contar uma quantidade de vezes que cada programa acessa uma memória principal em um estágio predefinido de um processo de execução, para se obter a frequência de acesso à memória de cada programa; comparar os dados de desempenho de cada programa com um limite de dados de desempenho predefinido, em que o limite de dados de desempenho compreende um primeiro limite e um segundo limite, e o primeiro limite é maior que o segundo limite; e se os dados de desempenho de um programa forem maiores que o primeiro limite, categorizar o programa como um tipo de demanda alta; se os dados de desempenho de um programa forem menores que o primeiro limite e maiores que o segundo limite, categorizar o programa como um tipo de demanda média; ou se os dados de desempenho de um programa forem menores que o segundo limite e uma frequência de acesso à memória do programa for maior que um limite de frequência de acesso à memória predefinida, categorizar o programa como um tipo de demanda baixa e intensiva.
12. Aparelho, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que a unidade de tomada de decisão (002) é especificamente configurada para: se há o tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a C-MMCP, em que N é uma quantidade de núcleos de um processador; ou se há o tipo de demanda média e não há tipo de demanda baixa e intensiva em uma categoria à qual cada programa no conjunto de trabalho pertence, determinar adicionalmente uma quantidade de programas no conjunto de trabalho; e se a quantidade de programas for menor que ou igual a N, selecionar a A-MMCP; caso contrário, selecionar a B-MMCP, em que N é uma quantidade de núcleos de um processador.
13. Aparelho, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a política de particionamento com base em coloração de página adicionalmente compreende uma política de particionamento não colaborativa com base em coloração de página, a política de particionamento não colaborativa com base em coloração de página é uma política de particionamento na qual os O-bits não são usados, e a política de particionamento não colaborativa com base em coloração de página compreende: uma política Apenas de Cache, na qual particionamento com base em coloração é realizado no LLC usando-se o bit de índice do LLC, e particionamento com base em coloração não é realizado no Banco de DRAM; e uma política Apenas de Banco, na qual particionamento com base em coloração é realizado no Banco de DRAM usando-se o bit de índice do Banco de DRAM, e particionamento com base em coloração não é realizado no LLC; e a unidade de tomada de decisão (002) é adicionalmente configurada para: se cada categoria à qual cada programa no conjunto de trabalho pertence for do tipo de demanda alta, selecionar a política Apenas de Banco.
14. Aparelho, de acordo com qualquer uma das reivindicações 8 a 13, CARACTERIZADO pelo fato de que a política de decisão predefinida é uma árvore de decisão de política de particionamento no kernel de sistema operacional, e a árvore de decisão de política de particionamento é implementada no kernel de sistema operacional em forma de algoritmo; e a unidade de tomada de decisão (002) é especificamente configurada para: entrar com a categorização de cada programa no conjunto de trabalho para o kernel de sistema operacional, e buscar na árvore de decisão de política de particionamento no kernel de sistema operacional um nó correspondente à luz de uma categoria de cada programa no conjunto de trabalho, para determinar a política de particionamento com base em coloração de página correspondente ao conjunto de trabalho.
15. Mídia de armazenamento legível por computador, CARACTERIZADA pelo fato de que compreende um conjunto de instruções executáveis, que, quando executadas em um computador, fazem com que o computador realize o método conforme definido em qualquer uma das reivindicações 1 a 7.
BR112016007492A 2013-10-23 2014-10-22 Método e aparelho para otimização de recurso de memória BR112016007492B8 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310503238.1A CN104572493A (zh) 2013-10-23 2013-10-23 一种存储器资源优化方法和装置
CN201310503238.1 2013-10-23
PCT/CN2014/089194 WO2015058695A1 (zh) 2013-10-23 2014-10-22 一种存储器资源优化方法和装置

Publications (4)

Publication Number Publication Date
BR112016007492A2 BR112016007492A2 (pt) 2017-08-01
BR112016007492A8 BR112016007492A8 (pt) 2020-03-03
BR112016007492B1 true BR112016007492B1 (pt) 2022-07-12
BR112016007492B8 BR112016007492B8 (pt) 2022-07-26

Family

ID=52992282

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016007492A BR112016007492B8 (pt) 2013-10-23 2014-10-22 Método e aparelho para otimização de recurso de memória

Country Status (12)

Country Link
US (2) US9857980B2 (pt)
EP (2) EP3040868B1 (pt)
JP (1) JP6143277B2 (pt)
KR (1) KR101761301B1 (pt)
CN (3) CN104572493A (pt)
AU (1) AU2014339450B2 (pt)
BR (1) BR112016007492B8 (pt)
CA (1) CA2927372C (pt)
MX (1) MX356304B (pt)
RU (1) RU2631767C1 (pt)
SG (1) SG11201602325VA (pt)
WO (1) WO2015058695A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572493A (zh) * 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
CN105068940B (zh) * 2015-07-28 2018-07-31 北京工业大学 一种基于Bank划分的自适应页策略确定方法
CN106919516B (zh) * 2015-12-24 2020-06-16 辰芯科技有限公司 Ddr地址映射系统和方法
CN107797941B (zh) * 2016-09-06 2020-07-07 华为技术有限公司 针对查找树的缓存着色内存分配方法和装置
US10515017B2 (en) * 2017-02-23 2019-12-24 Honeywell International Inc. Memory partitioning for a computing system with memory pools
US20190095329A1 (en) * 2017-09-27 2019-03-28 Intel Corporation Dynamic page allocation in memory
US10366007B2 (en) 2017-12-11 2019-07-30 Honeywell International Inc. Apparatuses and methods for determining efficient memory partitioning
US10679173B2 (en) 2018-02-19 2020-06-09 Rpmanetworks Holdings End to end logistic chain tracking and control of shipping containers
US10895985B1 (en) * 2018-05-29 2021-01-19 Amazon Technologies, Inc. Real-time estimation of working sets
KR102340444B1 (ko) 2019-12-24 2021-12-16 고려대학교 산학협력단 모놀리식 3D 집적 기술 기반 NoC 구조를 활용한 GPU 캐시 바이패스 방법 및 장치
JP2021170241A (ja) * 2020-04-16 2021-10-28 富士通株式会社 情報処理装置及び制御プログラム
CN112540934B (zh) * 2020-12-14 2022-07-29 山东师范大学 保证多个延迟关键程序共同执行时服务质量的方法及系统
US12026393B2 (en) 2020-12-17 2024-07-02 Electronics And Telecommunications Research Institute Apparatus and method for selecting storage location based on data usage
CN112799809B (zh) * 2021-01-26 2023-12-26 南京大学 基于高速缓存着色的资源共享和隔离的混合关键实时系统
CN112799817A (zh) * 2021-02-02 2021-05-14 中国科学院计算技术研究所 一种微服务资源调度系统和方法
KR102558935B1 (ko) * 2021-08-09 2023-07-24 (주)에스유지 블록체인을 이용한 수산물 이력관리 및 통계분석 시스템

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339220A (ja) * 1999-05-27 2000-12-08 Nippon Telegr & Teleph Corp <Ntt> キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム
US6654859B2 (en) * 2001-07-26 2003-11-25 International Business Machines Corporation NUMA page selection using coloring
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US8914606B2 (en) * 2004-07-08 2014-12-16 Hewlett-Packard Development Company, L.P. System and method for soft partitioning a computer system
US7664796B2 (en) * 2004-10-13 2010-02-16 Microsoft Corporation Electronic labeling for offline management of storage devices
US20060259733A1 (en) 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
US20070143315A1 (en) * 2005-12-21 2007-06-21 Alan Stone Inter-partition communication in a virtualization environment
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
US7581064B1 (en) * 2006-04-24 2009-08-25 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7434002B1 (en) * 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7512768B2 (en) * 2006-07-21 2009-03-31 Intel Corporation Dynamically sharing a stack between different code segments
US7747820B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Managing working set use of a cache via page coloring
JP5293611B2 (ja) 2007-12-12 2013-09-18 日本電気株式会社 メモリ再配置システム
US8209493B2 (en) * 2008-03-26 2012-06-26 Intel Corporation Systems and methods for scheduling memory requests during memory throttling
US8274521B2 (en) 2009-05-08 2012-09-25 Oracle America, Inc. System available cache color map
US8549249B1 (en) * 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8880682B2 (en) * 2009-10-06 2014-11-04 Emc Corporation Integrated forensics platform for analyzing IT resources consumed to derive operational and architectural recommendations
CN101719105B (zh) * 2009-12-31 2012-01-04 中国科学院计算技术研究所 一种多核系统中对内存访问的优化方法和系统
US8327085B2 (en) * 2010-05-05 2012-12-04 International Business Machines Corporation Characterizing multiple resource utilization using a relationship model to optimize memory utilization in a virtual machine environment
CN101916230A (zh) * 2010-08-11 2010-12-15 中国科学技术大学苏州研究院 基于划分感知和线程感知的末级高速缓存的性能优化方法
US20120079501A1 (en) * 2010-09-27 2012-03-29 Mark Henrik Sandstrom Application Load Adaptive Processing Resource Allocation
US20120059983A1 (en) * 2010-09-03 2012-03-08 David Wilkins Nellans Predictor-based management of dram row-buffers
US8621649B1 (en) * 2011-03-31 2013-12-31 Emc Corporation Providing a security-sensitive environment
US8966171B2 (en) * 2012-04-16 2015-02-24 Renmin University Of China Access optimization method for main memory database based on page-coloring
CN102663115B (zh) * 2012-04-16 2015-01-14 中国人民大学 基于页面染色技术的内存数据库访问优化方法
CN103077128B (zh) * 2012-12-29 2015-09-23 华中科技大学 一种多核环境下的共享缓存动态划分方法
CN103136120B (zh) * 2012-12-31 2016-01-27 北京北大众志微系统科技有限责任公司 行缓冲管理策略确定方法和装置、bank划分方法和装置
CN104572493A (zh) * 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置

Also Published As

Publication number Publication date
SG11201602325VA (en) 2016-05-30
CA2927372C (en) 2018-02-13
CN104572493A (zh) 2015-04-29
EP3388947A1 (en) 2018-10-17
BR112016007492B8 (pt) 2022-07-26
AU2014339450B2 (en) 2016-11-10
US9983793B2 (en) 2018-05-29
JP6143277B2 (ja) 2017-06-07
CA2927372A1 (en) 2015-04-30
CN108845960A (zh) 2018-11-20
MX356304B (es) 2018-05-23
RU2631767C1 (ru) 2017-09-26
CN108845960B (zh) 2023-12-29
BR112016007492A8 (pt) 2020-03-03
MX2016005088A (es) 2016-08-03
KR101761301B1 (ko) 2017-07-25
EP3040868A4 (en) 2016-11-23
US20160239213A1 (en) 2016-08-18
EP3040868B1 (en) 2017-12-13
CN105359103A (zh) 2016-02-24
WO2015058695A1 (zh) 2015-04-30
BR112016007492A2 (pt) 2017-08-01
US20180011638A1 (en) 2018-01-11
EP3040868A1 (en) 2016-07-06
KR20160055273A (ko) 2016-05-17
AU2014339450A1 (en) 2016-04-21
EP3388947B1 (en) 2020-01-15
US9857980B2 (en) 2018-01-02
CN105359103B (zh) 2018-06-26
JP2016540290A (ja) 2016-12-22

Similar Documents

Publication Publication Date Title
BR112016007492B1 (pt) Método e aparelho para otimização de recurso de memória
RU2607984C1 (ru) Способ и соответствующее устройство для определения режима управления страницей совместно используемой виртуальной памяти
US9824011B2 (en) Method and apparatus for processing data and computer system
Liu et al. A software memory partition approach for eliminating bank-level interference in multicore systems
KR20210021302A (ko) 메모리 제어기에서의 리프레시 방식
US20110087843A1 (en) Monitoring cache usage in a distributed shared cache
CN103235764B (zh) 线程感知多核数据预取自调方法
CN103136120B (zh) 行缓冲管理策略确定方法和装置、bank划分方法和装置
US9727465B2 (en) Self-disabling working set cache
US9128856B2 (en) Selective cache fills in response to write misses
US20170199819A1 (en) Cache Directory Processing Method for Multi-Core Processor System, and Directory Controller
JP2018136922A (ja) メモリープールを有するコンピューティングシステムのためのメモリー分割
Liu et al. Locality-aware bank partitioning for shared DRAM MPSoCs
US7603522B1 (en) Blocking aggressive neighbors in a cache subsystem
WO2023051917A1 (en) Memory controller and data processing system with memory controller
CN106874106A (zh) 一种主存bank划分方法及装置
EP4174666A1 (en) Memory management technology and computer system
CN114780249A (zh) 一种缓存管理方法、系统、设备及介质
WO2022235611A1 (en) Systems and methods for profiling host-managed device memory
Grøvdal A Comparative Analysis of Shared Cache Management Techniques for Chip Multiprocessors
Ebrahimi et al. Fairness via Source Throttling
BR112017017306A2 (pt) método para acessar diretório de dados de visitante em um sistema com múltiplos núcleos, dispositivo, sistema com múltiplos núcleos e unidade de armazenagem de diretório
CN108628797A (zh) 一种实现体划分的方法及装置

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 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 22/10/2014, OBSERVADAS AS CONDICOES LEGAIS

B16C Correction of notification of the grant [chapter 16.3 patent gazette]

Free format text: REF. RPI 2688 DE 12/07/2022 QUANTO AO INVENTOR.