BR102014024441A2 - method for parameter optimization on system and device startup using the same - Google Patents

method for parameter optimization on system and device startup using the same Download PDF

Info

Publication number
BR102014024441A2
BR102014024441A2 BR102014024441A BR102014024441A BR102014024441A2 BR 102014024441 A2 BR102014024441 A2 BR 102014024441A2 BR 102014024441 A BR102014024441 A BR 102014024441A BR 102014024441 A BR102014024441 A BR 102014024441A BR 102014024441 A2 BR102014024441 A2 BR 102014024441A2
Authority
BR
Brazil
Prior art keywords
dram
parameter
write
read
dqs
Prior art date
Application number
BR102014024441A
Other languages
Portuguese (pt)
Inventor
Cheng-Hsien Chang
Hsueh-Ling Ko
Huai-Yuan Feng
Original Assignee
Mediatek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Inc filed Critical Mediatek Inc
Publication of BR102014024441A2 publication Critical patent/BR102014024441A2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

método para otimizaçáo de parâmetro em inicializaçao de sistema e aparelho utilizando o mesmo um método para otimização de parâmetro e aparelho associado são fornecidos. o método executa uma calibração de escrita de dram para obter um parâmetro de escrita depois de uma calibração de leitura de dram falhar, em que a calibração de leitura de dram escreve dados de teste para um endereço especifico de uma dram com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da dram. substitui o parâmetro de escrita padrão armazenado em uma memória não volátil com o parâmetro de escrita obtido, onde o parâmetro de escrita padrão é armazenado no carregador de inicialização.Method for parameter optimization on system and device initialization using the same method for parameter optimization and associated apparatus are provided. The method performs a dram write calibration to obtain a write parameter after a dram read calibration fails, where the dram read calibration writes test data to a specific dram address with a default write parameter. and tries to find a read parameter for reading data from dram. replaces the default write parameter stored in nonvolatile memory with the write parameter obtained, where the default write parameter is stored in the boot loader.

Description

MÉTODO PARA OTIMIZAÇÃO DE PARÂMETRO EM INICIALIZAÇÃO DE SISTEMA E APARELHO UTILIZANDO O MESMOMETHOD FOR PARAMETER OPTIMIZATION IN SYSTEM INITIALIZATION AND APPARATUS USING THE SAME

FUNDAMENTOSGROUNDS

CAMPO TÉCNICOTECHNICAL FIELD

[001] A invenção refere-se à inicialização de sistema, e em particular a um método para otimização de parâmetro em sistema de inicialização e aparelhos utilizando o mesmo.[001] The invention relates to system initialization, and in particular to a method for parameter optimization on system initialization and apparatus utilizing the same.

DESCRIÇÃO DA TÉCNICA RELACIONADADESCRIPTION OF RELATED TECHNIQUE

[002] Durante inicialização de sistema em um sistema embutido, uma DRAM (Memória de Acesso Aleatório Dinâmico) deve ser iniciada antes de carregar instruções e dados a partir de uma memória não volátil (por exemplo, memória flash) para a DRAM. Convencionalmente, os sistemas embutidos obtêm diferentes parâmetros de acesso apropriados para diferentes esquemas de PCBs (placas de circuito impresso) a partir de suas memórias não voláteis. Isto exige engenheiros gerarem um novo conjunto de parâmetros de poprifa nadrão na fo rma manual e fo rn ργργ a um cliente de vt w J— JL 1— CΛ fw' Ca VU ~L_ V»/ X X ti JL- w -I— X L L C*X XI tCX X X UX Ci. —U v·* X. θ' X— X X Vt·* 'Ç* -A— C-X νΧΧ V l v—* -X. -X- X X w V—X V-a modo a armazená-los na memória não volátil disposta no esquema de PCB especifico. A técnica convencional requer recursos do engenheiro e espaço de memória não volátil. Por conseguinte, existe uma necessidade de um sistema embutido que fornece a capacidade de calibração de parâmetro de acesso automático de uma DRAM no mesmo na inicialização de sistema.[002] During system startup on an embedded system, a Dynamic Random Access Memory (DRAM) must be started before loading instructions and data from nonvolatile memory (eg flash memory) into the DRAM. Conventionally, embedded systems obtain different access parameters appropriate for different PCB (printed circuit board) schemes from their nonvolatile memories. This requires engineers to generate a new set of default pop-up parameters in the manual form and to rn ργργ to a client of vt w J— JL 1— CΛ fw 'Ca VU ~ L_ V »/ XX ti JL-w -I— XLLC * X XI tCX XX UX Ci. —U v · * X. θ 'X— XX Vt · *' Ç * -A— CX νΧΧ V lv— * -X. -X- X X w V — X V-a to store them in nonvolatile memory arranged in the specific PCB scheme. Conventional technique requires engineer resources and nonvolatile memory space. Therefore, there is a need for a built-in system that provides the automatic access parameter calibration capability of a DRAM on it at system startup.

BREVE SUMÁRIOBRIEF SUMMARY

[003] A invenção descreve um método para otimização de parâmetro em inicialização de sistema, realizado por um microcontrolador ao buscar e executar instruções de um carregador de inicialização é divulgado para incluir pelo menos os seguintes passos. Uma calibração de escrita de DRAM é realizada para obter um parâmetro de escrita após uma calibração de leitura de DRAM falhar, em que a calibração de leitura de DRAM escreve dados de teste para um endereço especifico de uma DRAM com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da DRAM. O parâmetro de escrita padrão armazenado em uma memória não volátil é substituído com o parâmetro de escrita obtido, em que o parâmetro de escrita padrão é armazenado no carregador de inicialização.[003] The invention describes a method for parameter optimization at system startup, performed by a microcontroller in fetching and executing instructions from a boot loader is disclosed to include at least the following steps. A DRAM write calibration is performed to obtain a write parameter after a DRAM read calibration fails, where the DRAM read calibration writes test data to a specific DRAM address with a default write parameter and attempts find a read parameter for reading data from the DRAM. The default write parameter stored in nonvolatile memory is replaced with the write parameter obtained, where the default write parameter is stored in the boot loader.

[004] A invenção descreve ainda um método para otimização de parâmetro em inicialização de sistema, realizado por um microcontrolador ao buscar e executar instruções de um carregador de inicialização, é divulgado para incluir pelo menos os seguintes passos. Uma primeira calibração de leitura de DRAM é executada, em que o microcontrolador escreve dados de teste para um endereço especifico de uma DRAM com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da DRAM. Uma calibração de escrita de DRAM é realizada para obter um novo parâmetro de escrita e um parâmetro de leitura após a primeira calibração de escrita de DRAM falhar.[004] The invention further describes a method for parameter optimization at system startup, performed by a microcontroller in seeking and executing instructions from a boot loader, is disclosed to include at least the following steps. A first DRAM read calibration is performed, wherein the microcontroller writes test data to a specific DRAM address with a default write parameter and attempts to find a read parameter for reading data from the DRAM. A DRAM write calibration is performed to obtain a new write parameter and a read parameter after the first DRAM write calibration fails.

[005] A invenção também descreve um aparelho para otimização de parâmetro em inicialização de sistema é divulgado para incluir pelo menos uma memória não volátil armazenando um carregador de inicialização, e um microcontrolador. O microcontrolador é configurado para duplicar a primeira porção do carregador de inicialização a partir da memória não volátil em uma SRAM (Memória de Acesso Aleatório Estático), buscar e executar instruções da primeira porção do carregador de inicialização a partir da SRAM para realizar uma calibração de escrita de DRAM então para obter um parâmetro de escrita depois de uma primeira calibração de leitura de DRAM falhar, em que a primeira calibração de leitura de DRAM escreve dados de teste para um endereço especifico de uma DRAM com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da DRAM. O microcontrolador é configurado para ainda substituir o parâmetro de escrita padrão armazenado na primeira porção do carregador de inicialização da memória não volátil com o parâmetro de escrita obtido.[005] The invention also describes a parameter boot apparatus for system initialization and is disclosed to include at least one non-volatile memory storing a boot loader, and a microcontroller. The microcontroller is configured to duplicate the first boot loader portion from nonvolatile memory in a Static Random Access Memory (SRAM), fetch and execute instructions from the first boot loader portion from the SRAM to perform a load calibration. DRAM write then to get a write parameter after a first DRAM read calibration fails, where the first DRAM read calibration writes test data to a specific DRAM address with a default write parameter and tries to find a read parameter for reading data from the DRAM. The microcontroller is configured to further replace the default write parameter stored in the first portion of the non-volatile memory boot loader with the write parameter obtained.

[006] Uma descrição detalhada é dada nas seguintes modalidades com referência aos desenhos anexos.[006] A detailed description is given in the following embodiments with reference to the accompanying drawings.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF DRAWINGS

[007] A invenção pode ser totalmente compreendida através da leitura da descrição detalhada subsequente e os exemplos com referências feitas aos desenhos anexos, em que : A Figura 1 mostra uma arquitetura de hardware de um aparelho de acordo com uma modalidade da invenção; A Figura 2 é um fluxograma mostrando um processo de inicialização de acordo com uma modalidade da invenção; A Figura 3 é um diagrama esquemático que ilustra os DQS e DQ após a calibração de leitura de DRAM;[007] The invention can be fully understood by reading the following detailed description and examples with reference to the accompanying drawings, in which: Figure 1 shows a hardware architecture of an apparatus according to one embodiment of the invention; Figure 2 is a flow chart showing an initialization process according to one embodiment of the invention; Figure 3 is a schematic diagram illustrating DQS and DQ after DRAM read calibration;

As Figuras 4A e 4B ilustram um fluxograma de um método de uma calibração de leitura de DRAM de acordo com uma modalidade da invenção; A Figura 5 é um diagrama esquemático que ilustra uma margem esquerda da janela de dados na linha de DQ de acordo com uma modalidade da invenção; A Figura 6 é um diagrama esquemático que ilustra uma margem direita da janela de dados na linha de DQ de acordo com uma modalidade da invenção; A Figura 7 ilustra um fluxograma que mostra um método de uma calibração de acesso de DRAM de acordo com uma modalidade da invenção; e A Figura 8 ilustra um diagrama esquemático de um arquivo binário de acordo com uma modalidade da invenção.Figures 4A and 4B illustrate a flowchart of a method of a DRAM reading calibration according to an embodiment of the invention; Figure 5 is a schematic diagram illustrating a left margin of the data window on the DQ line according to one embodiment of the invention; Figure 6 is a schematic diagram illustrating a right edge of the data window on the DQ line according to one embodiment of the invention; Figure 7 illustrates a flowchart showing a method of a DRAM access calibration according to an embodiment of the invention; and Figure 8 illustrates a schematic diagram of a binary file according to one embodiment of the invention.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[008] 0 que segue é feito com a finalidade de ilustrar os princípios gerais da presente invenção e não devem ser tomados em um sentido limitativo. 0 escopo da invenção é mpl h nr H pf nr mi nadn nor rpf orpnri λ A q rpi vi ndi rsrops snpXris A. I L Vx* JL A W -L- VA U Vx* JL X 11 -J— x x LA \-/ KL L/ X, -L. -L- v» X* w X X —J—. LA LA Λ— V-r ~X~. V -X. X X VA -X- V-* LA VL LA X X V** x X LA LX · [009] A Figura 1 mostra uma arquitetura de hardware de um aparelho 10 de acordo com uma modalidade da invenção. O aparelho 10 pode ser implementado em um SOC (Sistema Em um Chip), que contém pelo menos um microcontrolador 110, uma SRAM (Memória de Acesso Aleatório Estático) 150 e uma memória não volátil 170. Uma DRAM 130 pode ser posicionada no interior ou no exterior do SOC. O microcontrolador 110 acoplado com a DRAM 130, a SRAM 150 e a memória não volátil 170 através de um barramento 190 para acessar instruções e dados relevantes e é configurada para executar tarefas computacionais e de controle a serem descritas abaixo durante uma inicialização de sistema quando executar as instruções com dados relevantes. O sistema de inicialização é o conjunto inicial de operações que um sistema de computador executa depois da energia elétrica para o microcontrolador 110 ser ligada ou quando o aparelho 10 é reiniciado. O processo pode começar quando o aparelho 10 é ligado, ou quando ele é reiniciado, e termina quando o aparelho 10 está pronto para realizar suas operações normais. A memória não volátil 170, como uma memória flash NOR, uma memória flash NAND, uma memória flash EMMC (Cartão Multimídia Embutido), etc., é um dispositivo de armazenamento não volátil, em que os valores não serão perdidos quando a energia é desligada. Um carregador de inicialização 171 e um firmware de sistema (não mostrado) são armazenados na memória não volátil 170, cada um dos quais contém instruções e dados relevantes para a inicialização de sistema. A SRAM 150 pode fornecer uma capacidade de armazenamento menor, por exemplo, 16K bytes, do que oferecida pela DRAM 130. Deve ser entendido que a SRAM 150 não é grande o suficiente para armazenar todo o carregador de inicialização 171. Portanto, o carregador de inicialização 171 pode ser dividido em duas porções, em que uma primeira porção contém pelo menos instruções, um parâmetro de escrita padrão e um parâmetro de leitura padrão para acesso à DRAM 130, e uma segunda porção contém instruções e dados relevantes para as operações restantes da inicialização de sistema. Pode ser vantajoso que colocar o parâmetro de escrita padrão na primeira porção do carregador de inicialização 171 evita o espaço de armazenamento da memória não volátil 170 ser desnecessariamente consumido. Deve ser entendido que a alocação de espaço da memória não volátil 170 pode ser um múltiplo de um tamanho de bloco. Por exemplo, um bloco de uma memória flash NAND tem 512K bytes. Embora o parâmetro de escrita e parâmetro de leitura padrão exijam alguns bytes, por exemplo, dois bytes, ele aloca um adicional de 512K bytes na memória não volátil 170 para armazenar o parâmetro de escrita padrão quando o parâmetro de escrita padrão é armazenado em um arquivo separado e independente do carregador de inicialização 171. Como resultado, a segunda porção do carregador de inicialização 171 (isto é, a maioria das instruções com dados relevantes) pode ser carregada para a DRAM 130 para execução após a DRAM 130 ser iniciada com sucesso.The following is intended to illustrate the general principles of the present invention and should not be taken in a limiting sense. The scope of the invention is mpl h nr H pf nr mi nadn nor rpf orpnri λ A q rpi vi ndi rsrops snpXris A. IL Vx * JL AW -L- VA U * JL X 11 -J— xx LA \ - / KL L / X, -L. -L- v »X * w X X —J—. LA LA Λ— V-r ~ X ~. V -X. X X VA -X- V- * LA VL LA X X V ** x X LA LX · [009] Figure 1 shows a hardware architecture of an apparatus 10 according to one embodiment of the invention. The apparatus 10 may be implemented in a SOC (System On a Chip), which contains at least one microcontroller 110, one SRAM (Static Random Access Memory) 150 and one non-volatile memory 170. A DRAM 130 may be positioned inside or outside the SOC. Microcontroller 110 coupled with DRAM 130, SRAM 150, and nonvolatile memory 170 via a bus 190 to access relevant instructions and data and is configured to perform computational and control tasks to be described below during a system startup when performing instructions with relevant data. The boot system is the initial set of operations that a computer system performs after power to the microcontroller 110 is turned on or when the apparatus 10 is restarted. The process can begin when device 10 is turned on, or when it is restarted, and ends when device 10 is ready to perform its normal operations. Nonvolatile memory 170, such as NOR flash memory, NAND flash memory, EMMC (Embedded Multimedia Card) flash memory, etc., is a nonvolatile storage device where values will not be lost when the power is turned off. . A boot loader 171 and system firmware (not shown) are stored in nonvolatile memory 170, each of which contains instructions and data relevant for system boot. SRAM 150 can provide a smaller storage capacity, for example 16K bytes, than offered by DRAM 130. It should be understood that SRAM 150 is not large enough to store the entire boot loader 171. Therefore, the boot loader 171 171 can be divided into two portions, wherein a first portion contains at least instructions, a default write parameter, and a default read parameter for access to DRAM 130, and a second portion contains instructions and data relevant to the remaining operations of the DRAM 130. system boot. It may be advantageous that placing the default write parameter on the first portion of the boot loader 171 avoids the storage space of nonvolatile memory 170 from being unnecessarily consumed. It should be understood that the non-volatile memory space allocation 170 may be a multiple of a block size. For example, a block of NAND flash memory is 512K bytes. Although the write parameter and default read parameter require some bytes, for example, two bytes, it allocates an additional 512K bytes in nonvolatile memory 170 to store the default write parameter when the default write parameter is stored in a file. separate and independent from boot loader 171. As a result, the second portion of boot loader 171 (that is, most instructions with relevant data) can be loaded into DRAM 130 for execution after DRAM 130 has been successfully started.

[010] Um arquivo de dispersão exemplar de um ligante definindo a primeira porção do carregador de inicialização 171 é apresentado como segue. CARREGADOR 0x0 { RO +0 { Int.o (Init, +FIRST) * (+RO) } RW+0 { * (+RW +ZI) } DRAMPARAM 0x00009800 FIXED PADVALUE OxFFFFFFFF ( * (DRAMPARAM) } } [011] Com referência feita ao arquivo de dispersão, a primeira porção do carregador de inicialização 171 tem seções RO (somente leitura), RW (leitura e escrita), ZI (zero) e DRAMPARAM. A Figura 8 ilustra um diagrama esquemático de um arquivo binário de acordo com uma modalidade da invenção. A seção RO 810 é fornecida para armazenar pelo menos instruções para iniciar a DRAM 130.[010] An exemplary scatter file of a binder defining the first portion of boot loader 171 is shown as follows. CHARGER 0x0 {RO +0 {Int.o (Init, + FIRST) * (+ RO)} RW + 0 {* (+ RW + ZI)} DRAWN 0x00009800 FIXED PADVALUE OxFFFFFFFF (* (DRAMP)}} [011] With With reference to the scatter file, the first portion of boot loader 171 has sections RO (read only), RW (read and write), ZI (zero), and DRAMP Figure 8 illustrates a schematic diagram of a binary file according to with an embodiment of the invention Section RO 810 is provided for storing at least instructions for starting DRAM 130.

Por exemplo, a seção 820 inclui uma seção RW para armazenar variáveis inicializadas, como variáveis globais, e uma seção ZI para armazenar variáveis não inicializadas. A seção DRAMPARAM 830 começa a partir de um endereço predefinido 0x9800 e é fornecida para armazenar os parâmetros de leitura e escrita padrão. A matriz de bytes ou uma estrutura de dados semelhante, mas diferente, pode ser declarada pelas instruções armazenadas na seção RO 810, e é mapeada para a seção DRAMPARAM 830 para indicar os parâmetros de escrita e leitura padrão. Código fonte exemplar é apresentado como segue: static unsígned int _au4DramParams[DRAM_PARAMS_SIZES] _attribute_ ((section (“ D RA M PA RAM ”))) = { 0, 1, 2, 3, 4, 5, 6, 7, } Unsígned int DRAMGeíParameter(char ulParamldx) { return _an4DramParams[ulParamldx]; } [012] A matriz de bytes armazena um parâmetro de escrita padrão de 32 bits indicando um atraso de saida de DQS de nenhum passo, e um parâmetro de leitura padrão de 32 bits indicando um atraso de entrada de DQS para oito passos. Detalhes do atraso de saída de DQS e o atraso de entrada de DQS serão discutidos nos parágrafos seguintes.For example, section 820 includes an RW section for storing initialized variables, such as global variables, and a ZI section for storing uninitialized variables. The DRAMP 8AM section starts from a predefined address 0x9800 and is provided to store the default read and write parameters. The byte array or similar but different data structure can be declared by instructions stored in section RO 810, and is mapped to section DRAMP 830 to indicate the default read and write parameters. Exemplary source code is as follows: static unsígned int _au4DramParams [DRAM_PARAMS_SIZES] _attribute_ ((section (“D RA M PA RAM”))) = {0, 1, 2, 3, 4, 5, 6, 7,} Unsígned int DRAMGeíParameter (char ulParamldx) {return _an4DramParams [ulParamldx]; } [012] The byte array stores a standard 32-bit write parameter indicating a no-step DQS output delay, and a standard 32-bit read parameter indicating an eight-step DQS input delay. Details of DQS output delay and DQS input delay will be discussed in the following paragraphs.

[013] A Figura 2 é um fluxograma mostrando um processo de inicialização de acordo com uma modalidade da invenção. Depois do sistema ser ligado (passo S211), a primeira porção do carregador de inicialização 171 é duplicada a partir da memória não volátil 170 para a SRAM 150, o que é instruído pelo microcontrolador 110 (passo S213). O microcontrolador 110 busca e executa as instruções da primeira porção do carregador de inicialização 171 da SRAM 150 para realizar uma calibração de leitura de DRAM com o parâmetro de escrita padrão da primeira porção do carregador de inicialização 171 (passo S215) . O parâmetro de escrita padrão pode indicar um atraso de saída de DQS para escrita de dados para a memória DRAM 130, denotado como uma quantidade de passos que varia de 0 a 15 ou de 0 a 31, por exemplo, e cada passo pode ser de 15 picossegundos. DQS pode ser um sinal de estrobo bidirecional. Controlador de DRAM (não mostrado) pode acionar o DQS sinalizando a DRAM 130 para obter dados na linha de DQ em transições do DQS, referido como um sinal de estrobo para operações de escrita de dados. A Figura 3 é um diagrama esquemático que ilustra o DQS e DQ após a calibração de leitura de DRAM. A calibração de leitura de DRAM encontra um atraso de saida de DQS para leitura de dados a partir da DRAM 130, de tal modo que os centros das bordas de subida e as bordas de descida do DQS podem ocorrer substancialmente nos centros das janelas de dados 310 na linha de DQ.Figure 2 is a flowchart showing an initialization process according to one embodiment of the invention. After the system is powered on (step S211), the first portion of boot loader 171 is doubled from nonvolatile memory 170 to SRAM 150, which is instructed by microcontroller 110 (step S213). Microcontroller 110 fetches and executes instructions from the first portion of boot loader 171 of SRAM 150 to perform a DRAM read calibration with the default write parameter of the first portion of boot loader 171 (step S215). The default write parameter may indicate a DQS output delay for writing data to DRAM memory 130, denoted as a number of steps ranging from 0 to 15 or from 0 to 31, for example, and each step may be 15 picoseconds. DQS can be a bidirectional strobe signal. DRAM controller (not shown) can trigger DQS by signaling DRAM 130 to obtain data on the DQ line in DQS transitions, referred to as a strobe signal for data write operations. Figure 3 is a schematic diagram illustrating DQS and DQ after DRAM read calibration. DRAM read calibration encounters a DQS output delay for reading data from DRAM 130, such that the centers of the rising edges and the falling edges of the DQS can occur substantially at the data window centers 310. on the DQ line.

[014] Detalhes do passo S215 são discutidos a seguir. As Figuras 4A e 4B ilustram um fluxograma de um método de uma calibração de leitura de DRAM de acordo com uma modalidade da invenção. O processo, realizado pelo microcontrolador 110, começa a escrever dados de teste para um endereço especifico da DRAM 130 com o parâmetro de escrita padrão registrado na primeira porção do carregador de inicialização 171 (passo S411) . Passos S421 a S435 são realizados para, por exemplo, incremento gradual de um atraso de entrada de DQ para leitura de dados a partir da DRAM 130 enquanto um atraso de entrada de DQS é mantido até os dados falharem de serem lidos, e gravar uma quantidade resultante de incrementos com uma magnitude indicando uma margem esquerda da janela de dados 310. Em primeiro lugar, um atraso de entrada de DQS DELAYdqs in é inicializado . Por exemplo, o atraso de entrada de DQS DELAYDQS_in para leitura de dados a partir da DRAM 130 é definido como zero, que é mantido até a magnitude indicando a margem esquerda da janela de dados 310 ser encontrada, (passo S421) e um atraso de entrada de DQ DELAYdq in é definido para zero (passo S423) . Um controlador de DRAM embutido na DRAM 110 pode acionar o DQS sugerindo o microcontrolador 110 buscar os dados na linha de DQ ao detectar uma borda de subida e uma borda de descida do DQS, referido como um sinal de estrobo para operações de leitura de dados. Um ciclo de inspeção incluindo S425 a S433 é executado repetidamente até os dados falharem de serem lidos. No ciclo de inspeção, o microcontrolador 110 tenta ler os dados no endereço especifico a partir da DRAM 130 com os atrasos de entrada de DQS e DQ definidos (passo S425}, determina se a leitura de dados coincide com os dados de teste (passo S431) e incrementa o atraso de entrada dé DQ DELAYDQ_in por um passo para a próxima execução (passo S433) quando a leitura de dados coincide com os dados de teste (o Caminho "Sim" do passo S431). Caso contrário, quando a leitura de dados não coincide com os dados de teste (o caminho "Não" do passo S431), o ciclo de inspeção é saltado e a magnitude MARGINieft indicando a margem esquerda da janela de dados 310 é definida para o atraso de entrada de DQ resultante DELAYDq in (passo S435) . A Figura 5 é um diagrama esquemático que ilustra a inspeção da margem esquerda da janela de dados 310 na linha de DQ de acordo com uma modalidade da invenção. Com os incrementos do atraso de entrada de DQ DELAYDQ_in a partir dos momentos t0, ti a tm, a janela de dados 310 é mais tarde deslocada gradualmente. Após m execuções de deslocamento, os dados não podem ser lidos porque os dados não estão disponíveis na linha de DQ.[014] Details of step S215 are discussed below. Figures 4A and 4B illustrate a flowchart of a method of a DRAM reading calibration according to an embodiment of the invention. The process, performed by microcontroller 110, begins writing test data to a specific DRAM address 130 with the default write parameter recorded in the first portion of boot loader 171 (step S411). Steps S421 through S435 are performed to, for example, incrementally increment a DQ input delay for reading data from DRAM 130 while a DQS input delay is maintained until data fails to be read, and writes an amount. resulting from increments of a magnitude indicating a left margin of data window 310. First, an input delay of DQS DELAYdqs in is initialized. For example, the DQS DELAYDQS_in input delay for reading data from DRAM 130 is set to zero, which is maintained until the magnitude indicating the left margin of data window 310 is found, (step S421) and a delay of DQ input DELAYdq in is set to zero (step S423). An inline DRAM controller 110 may trigger DQS by suggesting that microcontroller 110 fetch data on the DQ line by detecting a rising edge and a falling edge of the DQS, referred to as a strobe signal for data read operations. An inspection cycle including S425 through S433 runs repeatedly until the data fails to be read. In the inspection cycle, microcontroller 110 attempts to read data at the specified address from DRAM 130 with the defined DQS and DQ input delays (step S425}, determines whether the data reading matches the test data (step S431 ) and increments the DQ DELAYDQ_in input delay by one step for the next run (step S433) when reading data matches the test data (the "Yes" Path of step S431), otherwise when reading data does not match the test data (the "No" path from step S431), the inspection cycle is skipped and the magnitude MARGINieft indicating the left margin of the data window 310 is set to the resulting DQ input delay DELAYDq in (Step S435) Figure 5 is a schematic diagram illustrating the left margin inspection of data window 310 on the DQ line according to one embodiment of the invention With the DQ DELAYDQ_in input delay increments from the moments you have it , the data window 310 is later gradually shifted. After m executions, data cannot be read because data is not available on the DQ line.

Assim, uma magnitude indicando a margem esquerda da janela de dados 310 é definida como m. Referindo à Figura 4Δ. Passos S441 a S455 são realizados para incremento gradual do atraso de entrada de DQS para leitura de dados a partir da DRAM 130 enquanto o atraso de entrada de DQ é mantido até os dados não poderem ser lidos, e gravar uma quantidade resultante de incrementos como uma magnitude indicando uma margem direita da janela de dados 310. Inicialmente, um atraso de entrada de DQ DELAYDQ_in é definido para zero, o que é mantido até a magnitude indicando a margem direita da janela de dados 310 ser encontrada, (passo S441) e um atraso de entrada de DQS DELAYDQS_in para leitura de dados a partir da DRAM 130 ser definido para zero (passo S443). Um ciclo de inspeção incluindo S445 a S453 é executado repetidamente até os dados falharem de serem lidos. No ciclo de inspeção, o microcontrolador 110 tenta ler os dados no endereço especifico a partir da DRAM 130 com os atrasos de entrada de DQS e DQ definidos (passo S445), determina se a leitura de dados coincide com os dados de teste (passo S451) e incrementa o atraso de entrada de DQS DELAYDQs_in por um passo para a próxima execução (passo S453) quando a leitura de dados coincide com os dados de teste (o Caminho "Sim" do passo S451). Caso contrário, quando a leitura de dados não coincide com os dados de teste (o caminho "Não" do passo S451), o ciclo de inspeção é saltado e a magnitude MARGINright indicando a margem direita da janela de dados 310 é definida como o atraso de entrada de DQS resultante DELAYDQS_in (passo S455) . A Figura 6 é um diagrama esquemático que ilustra a inspeção da margem direita da janela de dados 310 na linha de DQ de acordo com uma modalidade da invenção. Com os incrementos do atraso de entrada de DQS DELAYDQS_in dos momentos t0, ti a tn, as bordas de subida e descida do sinal de DQS são gradualmente deslocadas mais tarde. Após n execuções de deslocamento, os dados deixam de ser lidos porque os dados não estão prontos na linha de DQ. Assim, magnitude, indicando a margem direita da janela de dados 310 é definida como n. Note que a determinação de margem esquerda foi realizada por passos S421 a S435 e a determinação de margem direita realizada por passos S441 a S455 pode ser trocada, e a invenção não deve ser limitada aos mesmos. Referindo à Figura 4B. Após as magnitudes indicando as margens esquerda e direita da janela de dados 310 serem determinadas, um comprimento da janela de dados LENDw é determinado como a soma das magnitudes MARGINleft e MARGINright (passo S461). Em seguida, determina-se se a janela de dados determinada LENDw ultrapassa um limite predefinido (passo S463). O limite, por exemplo, pode ser predefinido como 8 quando o máximo dos passos de deslocamento permitidos é de 16, e 16 quando o máximo dos passos de deslocamento permitidos é 32. Se assim for (o caminho "Sim" do passo S463), é determinado que a calibração de leitura de DRAM é bem sucedida (passo S471) e o atraso de entrada de DQS final DELAYDQS_in é definido como um inteiro de acordo com as magnitudes determinadas MARGINieft e MARGINright de modo a atingir o objetivo acima referido (passo S473); caso contrário (o caminho "Não" do passo S463), é determinado que a calibração de leitura de DRAM falha (passo S481) . Deve ser entendido que o atraso de entrada de DQS final pode ser considerado como um parâmetro de leitura calibrado e armazenado na SRAM 150 e a memória não volátil 17 0 para substituir os antigos, respectivamente.Thus, a magnitude indicating the left margin of data window 310 is defined as m. Referring to Figure 4Δ. Steps S441 to S455 are performed to gradually increment the DQS input delay for reading data from DRAM 130 while the DQ input delay is maintained until the data cannot be read, and write an incremental amount as a result. magnitude indicating a right margin of data window 310. Initially, an input delay of DQ DELAYDQ_in is set to zero, which is maintained until the magnitude indicating the right margin of data window 310 is found, (step S441) and a DQS input delay DELAYDQS_in for reading data from DRAM 130 be set to zero (step S443). An inspection cycle including S445 to S453 runs repeatedly until data fails to be read. In the inspection cycle, the microcontroller 110 attempts to read data at the specified address from DRAM 130 with the defined DQS and DQ input delays (step S445), determines whether the data reading matches the test data (step S451 ) and increments the input delay of DQS DELAYDQs_in by one step for the next run (step S453) when reading data coincides with the test data (the "Yes" Path of step S451). Otherwise, when the data reading does not match the test data (the "No" path from step S451), the inspection cycle is skipped and the MARGINright magnitude indicating the right margin of data window 310 is set as the delay. DQS input file DELAYDQS_in (step S455). Figure 6 is a schematic diagram illustrating the right edge inspection of data window 310 on the DQ line according to one embodiment of the invention. With the DQS DELAYDQS_in input delay increments of moments t0, ti to tn, the rising and falling edges of the DQS signal are gradually shifted later. After n offset executions, the data is no longer read because the data is not ready on the DQ line. Thus, magnitude indicating the right margin of data window 310 is set to n. Note that left margin determination was performed by steps S421 to S435 and right margin determination performed by steps S441 to S455 can be changed, and the invention should not be limited thereto. Referring to Figure 4B. After the magnitudes indicating the left and right margins of data window 310 are determined, a length of data window LENDw is determined as the sum of magnitudes MARGINleft and MARGINright (step S461). It is then determined whether the given LENDw data window exceeds a predefined threshold (step S463). The limit, for example, can be preset to 8 when the maximum allowed travel steps is 16, and 16 when the maximum allowed travel steps is 32. If so (the "Yes" path of step S463), DRAM read calibration is determined to be successful (step S471) and the final DQS input delay DELAYDQS_in is set to an integer according to the determined magnitudes MARGINieft and MARGINright to achieve the above objective (step S473 ); otherwise (the "No" path from step S463), it is determined that the DRAM read calibration fails (step S481). It should be understood that the final DQS input delay can be considered as a calibrated read parameter stored in SRAM 150 and nonvolatile memory 170 to replace the old ones respectively.

[015] Referindo à Figura 2. Depois de realizar a calibração de leitura de DRAM (passo S215), determina-se se a calibração de leitura de DRAM com o parâmetro de escrita padrão foi bem sucedida (passo S217) . Se assim for (o caminho "Sim" de passo S217), da segunda porção do carregador de inicialização 171 é duplicado a partir da memória não volátil 170 para a DRAM 130 pelo microcontrolador 110 (passo S251), e as instruções da segunda porção do carregador de inicialização 171 são buscadas na DRAM 130 pelo microcontrolador 110, e executadas para realizar a parte restante da inicialização de sistema (passo S253). Quando a realização da calibração de leitura de DRAM com o parâmetro de escrita padrão não for bem sucedida (o caminho "Não" do passo S217), o microcontrolador 110 realiza uma calibração de escrita de DRAM (passo S231). Detalhes do passo S231 são discutidos como segue.[015] Referring to Figure 2. After performing the DRAM read calibration (step S215), it is determined whether the DRAM read calibration with the default write parameter was successful (step S217). If so (the "Yes" path of step S217), the second portion of boot loader 171 is doubled from nonvolatile memory 170 to DRAM 130 by microcontroller 110 (step S251), and the instructions of the second portion of boot loader 171 are fetched from DRAM 130 by microcontroller 110, and executed to perform the remainder of the system boot (step S253). When performing DRAM read calibration with the default write parameter is not successful (the "No" path from step S217), microcontroller 110 performs a DRAM write calibration (step S231). Details of step S231 are discussed as follows.

[016] A Figura 7 ilustra um fluxograma que mostra um método de uma calibração de escrita de DRAM acordo com uma modalidade da invenção. O processo, realizado pelo microcontrolador 110, inicializa um atraso de saida de DQS DELAYDQS_out. Por exemplo, define o atraso de saida de DQS DELAYdqs out para escrever dados na DRAM de 130 para zero (passo S711). Um ciclo de inspeção incluindo S713 a S725 é executado repetidamente até uma condição predefinida ser satisfeita. No ciclo de inspeção, o microcontrolador 110 escreve dados de teste para um endereço especifico na DRAM 130 com o atraso de saida de DQS definido DELAYDQS_0ut (S713), e executa uma calibração de leitura de DRAM modificada com o atraso de saida de DQS definido DELAYdqs Qut (passo S715) . A calibração de leitura de DRAM modificada substancialmente incorpora com passos S411 a S461, e S473. O exame de janela de dados realizado no passo S463 e consequente determinação realizada em passos S471 e S481 pode ser removido a partir da calibração de leitura de DRAM modificada. Em cima disso, passo S411 é modificado para gravar dados de teste para um endereço especifico da DRAM com o atraso de saida de DQS definido DELAYDQs_outr ao invés do padrão. Passo S473 é modificado para ser o próximo passo de S461 sem intervir passos S463 e S471 e para definir o atraso de entrada de DQS DELAYDQS_in (ou seja, um resultado temporário) para um inteiro de acordo com as determinadas magnitudes MARGINieft e MARGINrig}lt. Em seguida, o microcontrolador 110 determina se a janela de dados LENDW determinada na calibração de leitura de DRAM modificada excede um limiar predefinido (isto é, a condição predefinida) (passo S721) . Quando a condição predefinida não é satisfeita (o ramo "não" do passo S721), o microcontrolador 110 incrementa o atraso de saida de DQS DELAYDQS__out por um passo (passo S723), e determina se o atraso de saida de DQS incrementado DELAYDQS_0ut é igual ao valor máximo predefinido (por exemplo, 8) (passo S725) . Se for o caso (o ramo "sim" do passo S725), o microcontrolador 110 determina que a calibração de escrita de DRAM falha; caso contrário (o ramo "NÃO" do passo S725), e o microcontrolador 110 escreve dados de teste para um endereço especifico na DRAM 130 com o atraso de saida de DQS definido DELAYdqs out (S713), e executa a calibração de leitura de DRAM modificada com o atraso de saida de definido DELAYdqs out (passo S715) . Quando a condição predefinida é satisfeita (o ramo "sim" do passo S721), o ciclo de inspeção é saltado para fora. De preferência, depois do ciclo de inspeção, o atraso de saida de DQS DELAYDQs_out e atraso de entrada de DQS DELAYDQS_in atualizados são armazenados na SRAM 150 e / ou a memória não volátil 170 para uso posterior.Figure 7 illustrates a flowchart showing a method of a DRAM write calibration according to an embodiment of the invention. The process, performed by the microcontroller 110, initializes an output delay of DQS DELAYDQS_out. For example, it sets the DQS output delay DELAYdqs out to write data in DRAM from 130 to zero (step S711). An inspection cycle including S713 through S725 is performed repeatedly until a predefined condition is met. In the inspection cycle, microcontroller 110 writes test data to a specific address in DRAM 130 with the set DQS output delay DELAYDQS_0ut (S713), and performs a modified DRAM read calibration with the set DQS output delay DELAYdqs Qut (step S715). The substantially modified DRAM read calibration incorporates with steps S411 through S461, and S473. The data window scan performed at step S463 and consequent determination performed at steps S471 and S481 can be removed from the modified DRAM read calibration. On top of that, step S411 is modified to write test data to a specific DRAM address with the DQS output delay set DELAYDQs_outr instead of the default. Step S473 is modified to be the next step of S461 without intervening steps S463 and S471 and to set the DQS input delay DELAYDQS_in (ie a temporary result) to an integer according to the given magnitudes MARGINieft and MARGINrig} lt. Microcontroller 110 then determines whether the LENDW data window determined in the modified DRAM read calibration exceeds a predefined threshold (that is, the default condition) (step S721). When the predefined condition is not met (the "no" branch of step S721), microcontroller 110 increments the DELAYDQS__out DQS output delay by one step (step S723), and determines whether the DELAYDQS_0ut incremented DQS output delay is equal. to the default maximum value (for example, 8) (step S725). If so (the "yes" branch of step S725), microcontroller 110 determines that DRAM write calibration fails; otherwise (the "NO" branch of step S725), and microcontroller 110 writes test data to a specific address in DRAM 130 with the DQS output delay set DELAYdqs out (S713), and performs DRAM read calibration. modified with the output delay of set DELAYdqs out (step S715). When the predefined condition is met (the "yes" branch of step S721), the inspection cycle is skipped out. Preferably, after the inspection cycle, the DQS DELAYDQs_out output delay and updated DQS DELAYDQS_in input delay are stored in SRAM 150 and / or nonvolatile memory 170 for later use.

[017] Referindo à Figura 2. Após a finalização da calibração de escrita de DRAM, isto é, a DRAM 130 está disponível para acesso, o parâmetro de escrita padrão da primeira porção do carregador de inicialização 171, o qual é armazenado na SRAM 150, é substituído por um novo {passo S233). Além disso, o parâmetro de escrita padrão da primeira porção do carregador de inicialização 171, o qual é armazenado na memória não volátil 170, é substituído por um novo (passo S235). O novo parâmetro de escrita é obtido por realizar a calibração de escrita de DRAM. Em seguida, a segunda porção do carregador de inicialização 171 é duplicada a partir da memória não volátil 170 para a DRAM 130 pelo microcontrolador 110 (passo S251). O microcontrolador 110 busca e executa as instruções da segunda porção da DRAM 130 para terminar a inicialização de sistema (passo S253). Embora a Figura 2 tenha sido descrita com a determinação do passo S217, deve notar-se que a determinação pode ser omitida e a invenção não deve ser limitada a isto. Ou seja, independentemente do resultado da calibração de leitura de DRAM, os passos S231 a S235 podem ser realizados sempre após a calibração de leitura de DRAM.[017] Referring to Figure 2. After DRAM write calibration is completed, that is, DRAM 130 is available for access, the default write parameter of the first portion of boot loader 171, which is stored in SRAM 150 , is replaced by a new one (step S233). In addition, the default write parameter of the first portion of boot loader 171, which is stored in nonvolatile memory 170, is replaced by a new one (step S235). The new write parameter is obtained by performing DRAM write calibration. Then, the second portion of boot loader 171 is doubled from nonvolatile memory 170 to DRAM 130 by microcontroller 110 (step S251). Microcontroller 110 fetches and executes instructions from the second portion of DRAM 130 to complete system initialization (step S253). Although Figure 2 has been described with the determination of step S217, it should be noted that the determination may be omitted and the invention should not be limited thereto. That is, regardless of the result of the DRAM read calibration, steps S231 to S235 can always be performed after the DRAM read calibration.

[018] Embora a invenção tenha sido descrita por meio de exemplo e em termos de modalidades preferidas, é para ser entendido que a invenção não está limitada às modalidades divulgadas. Pelo contrário, ela se destina a cobrir várias modificações e arranjos semelhantes. Portanto, o âmbito das reivindicações anexas deve ser atribuído com a interpretação mais ampla de modo a abranger todas essas modificações e arranjos semelhantes.Although the invention has been described by way of example and in terms of preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. Rather, it is intended to cover various similar modifications and arrangements. Therefore, the scope of the appended claims should be assigned with the broadest interpretation to encompass all such modifications and similar arrangements.

REIVINDICAÇÕES

Claims (21)

1. Método para otimização de parâmetro, realizado por um microcontrolador por buscar e executar instruções de um carregador de inicialização, caracterizado pelo fato de que compreende: efetuar uma calibração de escrita de DRAM para obter um parâmetro de escrita; e substituir o parâmetro de escrita padrão armazenado em uma memória não volátil com o parâmetro de escrita obtido, em que o parâmetro de escrita padrão é colocado no carregador de inicialização.Parameter optimization method, performed by a microcontroller for seeking and executing instructions from a boot loader, characterized in that it comprises: performing a DRAM write calibration to obtain a write parameter; and replacing the default write parameter stored in nonvolatile memory with the write parameter obtained, where the default write parameter is placed in the boot loader. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o parâmetro de escrita padrão associa com um atraso de saida de DQS.Method according to claim 1, characterized in that the default write parameter associates with a DQS output delay. 3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a calibração de escrita de DRAM compreende: inicializar o atraso de saida de DQS; escrever gradualmente dados de teste para o endereço especifico na DRAM com o atraso de saida de DQS para determinar a janela de dados para leitura de dados a partir da DRAM, e incrementar o atraso de saida de DQS até a janela de dados exceder um limite; e determinar o atraso de saida de DQS resultante como o parâmetro de escrita obtido.Method according to claim 2, characterized in that the DRAM write calibration comprises: initializing the DQS output delay; gradually writing test data to the specific address in the DRAM with the DQS output delay to determine the data window for reading data from the DRAM, and incrementing the DQS output delay until the data window exceeds a threshold; and determining the resulting DQS output delay as the write parameter obtained. 4. Método, de acordo com a reivindicação 1, caracteri zado pelo fato de que o parâmetro de leitura associa com um atraso de entrada de DQS.Method according to claim 1, characterized in that the read parameter associates with a DQS input delay. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a calibração de escrita de DRAM é executada depois de uma calibração de leitura de DRAM falhar, e a calibração de leitura de DRAM escreve dados de teste para um endereço especifico de uma DRAM com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da DRAM.Method according to claim 1, characterized in that the DRAM write calibration is performed after a DRAM read calibration fails, and the DRAM read calibration writes test data to a specific address of DRAM. a DRAM with a default write parameter and attempts to find a read parameter for reading data from the DRAM. 6. Método para otimização de parâmetro, realizado por um microcontrolador por buscar e executar instruções de um carregador de inicialização, caracterizado pelo fato de que compreende: realizar uma primeira calibração de leitura de DRAM, em que o microcontrolador grava dados de teste para um endereço específico de uma DRAM com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da DRAM; e efetuar uma calibração de escrita de DRAM para atualizar um parâmetro de escrita e o parâmetro de leitura após a primeira calibração de leitura de DRAM falhar.Parameter optimization method, performed by a microcontroller for seeking and executing instructions from a boot loader, characterized by the fact that it comprises: performing a first DRAM read calibration, where the microcontroller writes test data to an address specific to a DRAM with a default write parameter and attempts to find a read parameter for reading data from the DRAM; and perform a DRAM write calibration to update a write parameter and read parameter after the first DRAM read calibration fails. 7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que compreende ainda: substituir um parâmetro de leitura padrão armazenado em memória não volátil com o parâmetro de leitura, em que o parâmetro de leitura padrão é incluído na primeira porção do carregador de inicialização.A method according to claim 6 further comprising: replacing a standard read parameter stored in non-volatile memory with the read parameter, wherein the standard read parameter is included in the first portion of the loader boot time. 8. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que a calibração de escrita de DRAM compreende: inicializar um atraso de saída de DQS; escrever gradualmente dados de teste para um endereço específico da DRAM com o atraso de saída de DQS, tentando encontrar uma janela de dados para leitura de dados a partir da DRAM, e incrementar o atraso de saida de DQS até a janela de dados exceder um limite; determinar o atraso de saida de DQS como o parâmetro de escrita; e determinar um atraso da entrada de DQS de acordo com a janela de dados como o parâmetro de leitura.Method according to claim 6, characterized in that the DRAM write calibration comprises: initializing a DQS output delay; gradually write test data to a specific DRAM address with the DQS output delay, trying to find a data window for reading data from the DRAM, and increment the DQS output delay until the data window exceeds a threshold. ; determining the DQS output delay as the write parameter; and determining a DQS input delay according to the data window as the read parameter. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende ainda: substituir um parâmetro de escrita padrão armazenado em uma memória não volátil com o parâmetro de escrita obtido, em que o parâmetro de escrita padrão é colocado no carregador de inicialização.A method according to claim 8, further comprising: replacing a default write parameter stored in non-volatile memory with the write parameter obtained, wherein the default write parameter is placed in the loader. startup. 10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a janela de dados resultante é encontrada pelos seguintes passos: gravar dados de teste para o endereço especifico da DRAM com o parâmetro de escrita obtido; definir um atraso de entrada de DQ para zero e um atraso de entrada de DQS para zero; ler gradualmente os dados de teste escritos a partir do endereço especifico da DRAM, e incrementar o atraso de entrada de DQ por uma passo até os dados de teste de escrita falharem para serem lidos a partir da DRAM; determinar passos do atraso de entrada de DQ como uma primeira magnitude indicando uma margem esquerda de uma janela de dados em uma linha de DQ; redefinir o atraso de entrada de DQ para zero e o atraso de entrada de DQS para zero; gradualmente ler os dados de teste escritos a partir do endereço especifico da DRAM, e incrementar o atraso de entrada de DQS até os dados de teste escritos falharem para serem lidos a partir da memória DRAM; e determinar passos do atraso de entrada de DQS como uma segunda magnitude indicando uma margem direita da janela de dados na linha de DQ.Method according to claim 8, characterized in that the resulting data window is found by the following steps: writing test data to the specific DRAM address with the obtained write parameter; set a DQ input delay to zero and a DQS input delay to zero; gradually read test data written from the specific DRAM address, and increment the DQ input delay by one step until the write test data fails to be read from the DRAM; determining steps of the DQ input delay as a first magnitude indicating a left margin of a data window on a DQ line; reset the DQ input delay to zero and the DQS input delay to zero; gradually read the test data written from the specific DRAM address, and increment the DQS input delay until the written test data fails to be read from the DRAM memory; and determining steps of the DQS input delay as a second magnitude indicating a right margin of the data window on the DQ line. 11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que o parâmetro de leitura obtido é usado para alinhar o centro de uma borda de subida e uma borda de descida de um sinal de DQS com um centro de uma janela de dados na linha de DQ substancialmente.Method according to claim 10, characterized in that the read parameter obtained is used to align the center of a rising edge and a falling edge of a DQS signal with a center of a data window. in the DQ line substantially. 12. Aparelho para otimização de parâmetro, caracterizado pelo fato de que compreende: uma memória não volátil armazenando um carregador de inicialização; e um microcontrolador sendo configurado para duplicar uma primeira porção do carregador de inicialização a partir da memória não volátil em uma SRAM (Memória de Acesso Aleatório Estático), buscar e executar uma pluralidade de instruções da primeira porção do carregador de inicialização a partir da SRAM para realizar uma calibração de escrita de DRAM de modo a obter um parâmetro de escrita, e substituir o parâmetro de escrita padrão armazenado na primeira porção do carregador de inicialização da memória não volátil com o parâmetro de escrita.12. Parameter optimization apparatus, characterized in that it comprises: a non-volatile memory storing a boot loader; and a microcontroller being configured to duplicate a first boot loader portion from nonvolatile memory in a Static Random Access Memory (SRAM), fetch and execute a plurality of instructions from the first boot loader portion from SRAM to perform a DRAM write calibration to obtain a write parameter, and replace the default write parameter stored in the first portion of the non-volatile memory boot loader with the write parameter. 13. Aparelho, de acordo com a reivindicação 12, caracterizado pelo fato de que o microcontrolador é ainda configurado para substituir um parâmetro de leitura padrão armazenado na memória não volátil com o parâmetro de leitura obtido, em que o parâmetro de leitura padrão é colocado na primeira porção do carregador de inicialização.Apparatus according to claim 12, characterized in that the microcontroller is further configured to replace a default read parameter stored in non-volatile memory with the read parameter obtained, wherein the default read parameter is placed in the first portion of the boot loader. 14. Aparelho, de acordo com a reivindicação 12, caracterizado pelo fato de que o microcontrolador é ainda configurado para ainda substituir o parâmetro de escrita padrão armazenado na primeira porção do carregador de inicialização a partir da SRAM com o parâmetro de escrita obtido.Apparatus according to claim 12, characterized in that the microcontroller is further configured to further replace the default write parameter stored in the first portion of the boot loader from the SRAM with the write parameter obtained. 15. Aparelho, de acordo com a reivindicação 12, caracterizado pelo fato de que o parâmetro de escrita padrão indica um atraso de saida de DQS.Apparatus according to claim 12, characterized in that the default write parameter indicates a DQS output delay. 16. Aparelho, de acordo com a reivindicação 15, caracterizado pelo fato de que o desempenho da calibração de escrita de DRAM compreende definir o atraso de saida de DQS para zero; escrever gradualmente dados de teste para um endereço específico da DRAM com o atraso de saida de DQS definido, tentar encontrar uma janela de dados para leitura de dados a partir da DRAM, e incrementar o atraso de saida de DQS até a janela de dados exceder um limite; e determinar o atraso de saida de DQS resultante como o parâmetro de escrita.Apparatus according to claim 15, characterized in that the performance of DRAM write calibration comprises setting the DQS output delay to zero; gradually write test data to a specific DRAM address with the DQS output delay set, try to find a data window for reading data from DRAM, and increment the DQS output delay until the data window exceeds one. limit; and determining the resulting DQS output delay as the write parameter. 17. Aparelho, de acordo com a reivindicação 12, caracterizado pelo fato de que o microcontrolador efetua ainda a calibração de escrita de DRAM após uma primeira calibração de leitura de DRAM falhar, em que a primeira calibração de leitura de DRAM escreve dados de teste para um endereço especifico de uma DRAM com um parâmetro de escrita padrão e tenta encontrar um parâmetro de leitura para leitura de dados a partir da DRAM.Apparatus according to claim 12, characterized in that the microcontroller further performs DRAM write calibration after a first DRAM read calibration fails, wherein the first DRAM read calibration writes test data to is a specific address of a DRAM with a default write parameter and attempts to find a read parameter for reading data from the DRAM. 18. Aparelho, de acordo com a reivindicação 17, caracterizado pelo fato de que o parâmetro de leitura indica um atraso de entrada de DQS.Apparatus according to claim 17, characterized in that the read parameter indicates a DQS input delay. 19. Aparelho, de acordo com a reivindicação 17, caracterizado pelo fato de que o microcontrolador é ainda configurado para buscar e executar instruções da primeira porção do carregador de inicialização a partir da SRAM para executar uma segunda calibração de leitura de DRAM com o parâmetro de escrita para obter um parâmetro de leitura.Apparatus according to claim 17, characterized in that the microcontroller is further configured to fetch and execute instructions from the first portion of the boot loader from the SRAM to perform a second DRAM read calibration with the parameter of write to get a read parameter. 20. Aparelho, de acordo com a reivindicação 19, caracterizado pelo fato de que o microcontrolador é ainda configurado para duplicar uma segunda porção do carregador de inicialização a partir da memória não volátil para a memória DRAM após a conclusão da segunda calibração de leitura de DRAM.Apparatus according to claim 19, characterized in that the microcontroller is further configured to duplicate a second portion of the boot loader from non-volatile memory to DRAM memory upon completion of the second DRAM read calibration. . 21. Aparelho, de acordo com a reivindicação 20, caracterizado pelo fato de que o parâmetro de leitura é utilizado para alinhar um centro da borda de subida e a borda de descida de um sinal de DQS com um centro de uma janela de dados na linha de DQ substancialmente.Apparatus according to claim 20, characterized in that the read parameter is used to align a center of the rising edge and the falling edge of a DQS signal with a center of a data window on the line. of DQ substantially.
BR102014024441A 2014-03-26 2014-09-30 method for parameter optimization on system and device startup using the same BR102014024441A2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
MYPI2014700731 2014-03-26

Publications (1)

Publication Number Publication Date
BR102014024441A2 true BR102014024441A2 (en) 2016-08-02

Family

ID=54166044

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102014024441A BR102014024441A2 (en) 2014-03-26 2014-09-30 method for parameter optimization on system and device startup using the same

Country Status (2)

Country Link
CN (1) CN104951376A (en)
BR (1) BR102014024441A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528323B (en) * 2016-11-04 2019-07-30 郑州云海信息技术有限公司 A kind of Nand flash data calibration method and system
CN108646984B (en) * 2018-05-16 2020-01-03 华为技术有限公司 DQS position adjusting method and device
CN111627475B (en) * 2019-04-04 2022-12-13 深圳市晶凯电子技术有限公司 Memory, electronic device thereof, test system, test method and application method thereof
CN110489169B (en) * 2019-08-06 2021-10-19 晶晨半导体(上海)股份有限公司 Quick starting method for memory of system on chip
CN111858195A (en) * 2020-06-10 2020-10-30 瑞芯微电子股份有限公司 Interface parameter adapting method for DRAM interface read check and storage medium
CN114356229B (en) * 2021-12-22 2023-09-22 合肥康芯威存储技术有限公司 Parameter optimization method and system for data storage equipment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567941B1 (en) * 2000-04-12 2003-05-20 Advantest Corp. Event based test system storing pin calibration data in non-volatile memory
US7698589B2 (en) * 2006-03-21 2010-04-13 Mediatek Inc. Memory controller and device with data strobe calibration
US7558132B2 (en) * 2007-03-30 2009-07-07 International Business Machines Corporation Implementing calibration of DQS sampling during synchronous DRAM reads
US7865660B2 (en) * 2007-04-16 2011-01-04 Montage Technology Group Ltd. Calibration of read/write memory access via advanced memory buffer
KR101532529B1 (en) * 2007-12-21 2015-06-29 램버스 인코포레이티드 Method and apparatus for calibrating write timing in a memory system

Also Published As

Publication number Publication date
CN104951376A (en) 2015-09-30

Similar Documents

Publication Publication Date Title
BR102014024441A2 (en) method for parameter optimization on system and device startup using the same
KR101818599B1 (en) Non-volatile temporary data handling
US9292418B2 (en) Determining the vulnerability of multi-threaded program code to soft errors
US10338826B2 (en) Managed-NAND with embedded random-access non-volatile memory
US11042383B2 (en) System and method for boot speed optimization using non-volatile dual in-line memory modules
CN105808455B (en) Memory access method, storage-class memory and computer system
JPH0756818A (en) Method and equipment for testing of system storage device of computer
WO2006133597A1 (en) Using transacted writes and caching mechanism to improve write performance in multi-level cell flash memoty
US20180293163A1 (en) Optimizing storage of application data in memory
WO2013085670A2 (en) Enhanced error correction in memory devices
CN112074820B (en) Memory pool allocation for multi-core systems
EP2778905A1 (en) Integrated circuit with a patching function
RU2002118114A (en) Computer device using non-renewable random access dynamic memory
US20180011660A1 (en) Write tracking for memories
US20190087174A1 (en) Background firmware update
US20080195821A1 (en) Method and system of fast clearing of memory using a built-in self-test circuit
KR20220113850A (en) Techniques to cause a content pattern to be stored to memory cells of a memory device
US10254982B2 (en) System and methodology for low latency error management within a shared non-volatile memory architecture
US8122205B2 (en) Structured virtual registers for embedded controller devices
US11048617B2 (en) Method of accessing metadata when debugging a program to be executed on processing circuitry
CN108628752B (en) Data storage method and device
US20210181978A1 (en) Memory sub-system log synchronization
US11385926B2 (en) Application and system fast launch by virtual address area container
US11200925B2 (en) Read only memory (ROM)-emulated memory (REM) profile mode of memory device
US11328786B2 (en) Memory module storing test pattern information, computer system comprising the same, and test method thereof

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
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]
B11D Dismissal acc. art. 38, par 2 of ipl - failure to pay fee after grant in time