KR20220120611A - Automatic memory overclocking - Google Patents

Automatic memory overclocking Download PDF

Info

Publication number
KR20220120611A
KR20220120611A KR1020227025079A KR20227025079A KR20220120611A KR 20220120611 A KR20220120611 A KR 20220120611A KR 1020227025079 A KR1020227025079 A KR 1020227025079A KR 20227025079 A KR20227025079 A KR 20227025079A KR 20220120611 A KR20220120611 A KR 20220120611A
Authority
KR
South Korea
Prior art keywords
memory
overclocked
frequency setting
settings
profile
Prior art date
Application number
KR1020227025079A
Other languages
Korean (ko)
Inventor
윌리엄 알. 알버슨
아미타브 메흐라
아닐 하르와니
제리 에이. 아렌스
그랜트 이. 레이
자에쉬 조쉬
Original Assignee
어드밴스드 마이크로 디바이시즈, 인코포레이티드
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 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20220120611A publication Critical patent/KR20220120611A/en

Links

Images

Classifications

    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12015Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

자동 메모리 오버클록킹은 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계; 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계; 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하는 단계를 포함한다. Automatic memory overclocking includes increasing the memory frequency setting for the memory module until the memory stability test fails; determining an overclocked memory frequency setting comprising a highest memory frequency setting that passes a memory stability test; and creating a profile including the overclocked memory frequency setting.

Description

자동 메모리 오버클록킹Automatic memory overclocking

메모리 모듈에 대한 설정들은 공급업체 프로파일 또는 사용자 입력 사양에 따라 구성할 수 있다. 이러한 프로파일은 종종 사용자 시스템과 상이한 시스템 구성을 사용하여 생성 및 테스트된다. 또한, 사용자 입력 사양은 이러한 상이한 시스템 구성을 사용하여 결정되고 테스트된 마진을 사용하여 제한될 수 있다.Settings for memory modules can be configured according to vendor profiles or user input specifications. These profiles are often created and tested using a system configuration that is different from the user's system. In addition, user input specifications may be constrained using margins determined and tested using these different system configurations.

도 1은 일부 실시예들에 따른 자동 메모리 오버클록킹(overclocking)을 위한 예시적인 프로세서의 블록도이다.
도 2는 일부 실시예들에 따른 자동 메모리 오버클록킹을 위한 예시적인 방법의 흐름도이다.
도 3는 일부 실시예들에 따른 자동 메모리 오버클록킹을 위한 예시적인 방법의 흐름도이다.
도 4는 일부 실시예들에 따른 자동 메모리 오버클록킹을 위한 예시적인 방법의 흐름도이다.
도 5는 일부 실시예들에 따른 자동 메모리 오버클록킹을 위한 예시적인 방법의 흐름도이다.
1 is a block diagram of an exemplary processor for automatic memory overclocking in accordance with some embodiments.
2 is a flow diagram of an exemplary method for automatic memory overclocking in accordance with some embodiments.
3 is a flow diagram of an exemplary method for automatic memory overclocking in accordance with some embodiments.
4 is a flow diagram of an exemplary method for automatic memory overclocking in accordance with some embodiments.
5 is a flow diagram of an exemplary method for automatic memory overclocking in accordance with some embodiments.

일부 실시예들에서, 자동 메모리 오버클록킹 방법은 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계; 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계; 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하는 단계를 포함한다.In some embodiments, the automatic memory overclocking method includes increasing a memory frequency setting for a memory module until a memory stability test fails; determining an overclocked memory frequency setting comprising a highest memory frequency setting that passes a memory stability test; and creating a profile including the overclocked memory frequency setting.

일부 실시예들에서, 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계는 하나 이상의 메모리 타이밍 설정들을 결정하는 단계를 포함하고, 방법은 오버클록킹된 메모리 주파수 설정에 대응하는 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계를 더 포함하고; 여기서, 프로파일을 생성하는 단계는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 프로파일을 생성하는 단계를 포함한다. 일부 실시예들에서, 하나 이상의 메모리 타이밍 설정들은 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함한다. 일부 실시예들에서, 방법은 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 오버클록킹된 메모리 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하는 단계를 더 포함하고; 여기서, 프로파일을 생성하는 단계는 하나 이상의 서브타이밍 설정들을 포함하는 프로파일을 생성하는 단계를 포함한다. 일부 실시예들에서, 하나 이상의 서브타이밍 설정들은 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 메모리 타이밍 설정들에 적용된 하나 이상의 규칙들에 기초한다. 일부 실시예들에서, 방법은 스토리지 위치에 프로파일을 저장하는 단계를 더 포함한다. 일부 실시예에서, 방법은 스토리지 위치로부터 프로파일을 로딩하는 단계; 및 프로파일을 메모리 모듈에 적용하는 단계를 포함한다.In some embodiments, increasing the memory frequency setting for the memory module until the memory stability test fails comprises determining one or more memory timing settings, the method corresponding to the overclocked memory frequency setting determining one or more overclocked memory timing settings including one or more memory timing settings; Here, generating the profile includes generating a profile including one or more overclocked memory timing settings. In some embodiments, the one or more memory timing settings are: column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) ) delay (read), low precharge time, and/or low active time. In some embodiments, the method further comprises determining one or more subtiming settings based on the overclocked memory frequency setting and/or one or more overclocked memory timing settings; Here, generating the profile includes generating a profile including one or more subtiming settings. In some embodiments, the one or more subtiming settings are based on an overclocked memory frequency setting and/or one or more rules applied to the one or more memory timing settings. In some embodiments, the method further comprises storing the profile in a storage location. In some embodiments, the method includes loading a profile from a storage location; and applying the profile to the memory module.

일부 실시예들에서, 자동 메모리 오버클록킹을 위한 장치는 다음을 포함하는 단계들을 수행하고, 단계들은 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계; 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계; 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하는 단계를 포함한다.In some embodiments, an apparatus for automatic memory overclocking performs steps comprising: increasing a memory frequency setting for a memory module until a memory stability test fails; determining an overclocked memory frequency setting comprising a highest memory frequency setting that passes a memory stability test; and creating a profile including the overclocked memory frequency setting.

일부 실시예들에서, 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계는 하나 이상의 메모리 타이밍 설정들을 결정하는 단계를 포함하고, 단계들은 오버클록킹된 메모리 주파수 설정에 대응하는 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계를 더 포함하고; 여기서, 프로파일을 생성하는 단계는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 프로파일을 생성하는 단계를 포함한다. 일부 실시예들에서, 하나 이상의 메모리 타이밍 설정들은 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함한다. 일부 실시예들에서, 단계들은 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 오버클록킹된 메모리 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하는 단계를 더 포함하고; 여기서, 프로파일을 생성하는 단계는 하나 이상의 서브타이밍 설정들을 포함하는 프로파일을 생성하는 단계를 포함한다. 일부 실시예들에서, 하나 이상의 서브타이밍 설정들은 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 메모리 타이밍 설정들에 적용된 하나 이상의 규칙들에 기초한다. 일부 실시예들에서, 단계들은 스토리지 위치에 프로파일을 저장하는 단계를 더 포함한다. 일부 실시예에서, 단계들은 스토리지 위치로부터 프로파일을 로딩하는 단계; 및 프로파일을 메모리 모듈에 적용하는 단계를 포함한다.In some embodiments, increasing the memory frequency setting for the memory module until the memory stability test fails comprises determining one or more memory timing settings, wherein the steps correspond to the overclocked memory frequency setting. determining one or more overclocked memory timing settings including one or more memory timing settings; Here, generating the profile includes generating a profile including one or more overclocked memory timing settings. In some embodiments, the one or more memory timing settings are: column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) ) delay (read), low precharge time, and/or low active time. In some embodiments, the steps further comprise determining one or more subtiming settings based on the overclocked memory frequency setting and/or one or more overclocked memory timing settings; Here, generating the profile includes generating a profile including one or more subtiming settings. In some embodiments, the one or more subtiming settings are based on an overclocked memory frequency setting and/or one or more rules applied to the one or more memory timing settings. In some embodiments, the steps further comprise storing the profile in a storage location. In some embodiments, the steps include loading a profile from a storage location; and applying the profile to the memory module.

일부 실시예들에서, 비일시적 컴퓨터 판독가능 매체 상에 배치된 컴퓨터 프로그램 제품은, 실행될 때, 컴퓨터로 하여금 다음을 포함하는 단계들을 수행하게 하는 자동 메모리 오버클록킹을 위한 컴퓨터 프로그램 명령어들을 포함하고, 단계들은 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계; 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계; 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하는 단계를 포함한다.In some embodiments, a computer program product disposed on a non-transitory computer-readable medium comprises computer program instructions for automatic memory overclocking that, when executed, cause a computer to perform steps comprising: The steps include increasing the memory frequency setting for the memory module until the memory stability test fails; determining an overclocked memory frequency setting comprising a highest memory frequency setting that passes a memory stability test; and creating a profile including the overclocked memory frequency setting.

일부 실시예들에서, 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계는 하나 이상의 메모리 타이밍 설정들을 결정하는 단계를 포함하고, 단계들은 오버클록킹된 메모리 주파수 설정에 대응하는 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계를 더 포함하고; 여기서, 프로파일을 생성하는 단계는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 프로파일을 생성하는 단계를 포함한다. 일부 실시예들에서, 하나 이상의 메모리 타이밍 설정들은 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함한다. 일부 실시예들에서, 단계들은 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 오버클록킹된 메모리 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하는 단계를 더 포함하고; 여기서, 프로파일을 생성하는 단계는 하나 이상의 서브타이밍 설정들을 포함하는 프로파일을 생성하는 단계를 포함한다. 일부 실시예들에서, 하나 이상의 서브타이밍 설정들은 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 메모리 타이밍 설정들에 적용된 하나 이상의 규칙들에 기초한다. 일부 실시예들에서, 단계들은 스토리지 위치에 프로파일을 저장하는 단계를 더 포함한다. 일부 실시예에서, 단계들은 스토리지 위치로부터 프로파일을 로딩하는 단계; 및 프로파일을 메모리 모듈에 적용하는 단계를 포함한다.In some embodiments, increasing the memory frequency setting for the memory module until the memory stability test fails comprises determining one or more memory timing settings, wherein the steps correspond to the overclocked memory frequency setting. determining one or more overclocked memory timing settings including one or more memory timing settings; Here, generating the profile includes generating a profile including one or more overclocked memory timing settings. In some embodiments, the one or more memory timing settings are: column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) ) delay (read), low precharge time, and/or low active time. In some embodiments, the steps further comprise determining one or more subtiming settings based on the overclocked memory frequency setting and/or one or more overclocked memory timing settings; Here, generating the profile includes generating a profile including one or more subtiming settings. In some embodiments, the one or more subtiming settings are based on an overclocked memory frequency setting and/or one or more rules applied to the one or more memory timing settings. In some embodiments, the steps further comprise storing the profile in a storage location. In some embodiments, the steps include loading a profile from a storage location; and applying the profile to the memory module.

본 개시에 따른 자동 메모리 오버클록킹은 일반적으로 컴퓨터들로, 즉 자동화된 컴퓨팅 기계로 구현된다. 따라서, 추가적인 설명을 위해, 도 1은 자동 메모리 오버클록킹을 위해 구성된 예시적인 컴퓨터(100)를 포함하는 자동화된 컴퓨팅 기계의 블록도를 제시한다. 도 1의 컴퓨터(100)는, 고속 메모리 버스(106) 및 버스 어댑터(108)를 통해 프로세서(102)에 그리고 컴퓨터(100)의 다른 컴포넌트들에 연결되는 랜덤 액세스 메모리(104)(RAM)뿐만 아니라 적어도 하나의 컴퓨터 프로세서(102) 또는 'CPU'를 포함한다.Automatic memory overclocking according to the present disclosure is generally implemented with computers, ie with automated computing machines. Accordingly, for further explanation, FIG. 1 presents a block diagram of an automated computing machine that includes an exemplary computer 100 configured for automatic memory overclocking. The computer 100 of FIG. 1 includes a random access memory 104 (RAM) coupled to the processor 102 and other components of the computer 100 via a high-speed memory bus 106 and a bus adapter 108 , as well as a random access memory 104 (RAM). but at least one computer processor 102 or 'CPU'.

RAM(104)에는 운영 체제(110)가 저장된다. 자동 메모리 오버클록킹을 위해 구성된 컴퓨터에 유용한 운영 체제는 UNIXTM, LinuxTM, Microsoft WindowsTM, 및 당업자에게 알려진 다른 것을 포함한다. 도 1의 예의 운영 체제(110)는 RAM(104)에 도시되어 있지만, 이러한 소프트웨어의 많은 컴포넌트는 전형적으로 비휘발성 메모리, 예컨대, 예를 들어, 디스크 드라이브와 같은 데이터 스토리지(112)에 또한 저장된다. 또한, 자동 메모리 오버클록킹을 위한 모듈인 구성 모듈(114)이 RAM에 저장된다.The RAM 104 stores the operating system 110 . Useful operating systems for computers configured for automatic memory overclocking include UNIX(TM), Linux(TM), Microsoft Windows(TM), and others known to those skilled in the art. Although the operating system 110 of the example of FIG. 1 is shown in RAM 104, many components of such software are typically also stored in non-volatile memory, eg, data storage 112, such as, for example, a disk drive. . In addition, a configuration module 114, a module for automatic memory overclocking, is stored in RAM.

도 1의 컴퓨터(100)는 확장 버스(118) 및 버스 어댑터(108)를 통해 프로세서(102) 및 컴퓨터(100)의 다른 컴포넌트들에 연결되는 디스크 드라이브 어댑터(116)를 포함한다. 디스크 드라이브 어댑터(116)는 비휘발성 데이터 스토리지를 데이터 스토리지(112) 형태로 컴퓨터(100)에 연결한다. 자동 메모리 오버클록킹을 위해 구성된 컴퓨터들에 유용한 디스크 드라이브 어댑터들은 집적 드라이브 전자 장치(IDE) 어댑터들, 소형 컴퓨터 시스템 인터페이스(SCSI) 어댑터들, 및 당업자에게 알려진 다른 것들을 포함한다. 일부 실시예들에서, 비휘발성 컴퓨터 메모리는 광학 디스크 드라이브, 전기적으로 소거가능한 프로그램가능한 판독 전용 메모리(소위 'EEPROM' 또는 '플래시 메모리'), RAM 드라이브들, 및 당업자에게 알려진 것 등으로서 구현된다.The computer 100 of FIG. 1 includes an expansion bus 118 and a disk drive adapter 116 that is coupled to the processor 102 and other components of the computer 100 via a bus adapter 108 . Disk drive adapter 116 connects non-volatile data storage to computer 100 in the form of data storage 112 . Disk drive adapters useful for computers configured for automatic memory overclocking include integrated drive electronic device (IDE) adapters, small computer system interface (SCSI) adapters, and others known to those skilled in the art. In some embodiments, non-volatile computer memory is implemented as an optical disk drive, electrically erasable programmable read-only memory (so-called 'EEPROM' or 'flash memory'), RAM drives, and those known to those skilled in the art, and the like.

도 1의 예시적인 컴퓨터(100)는 하나 이상의 입력/출력(I/O) 어댑터(120)를 포함한다. I/O 어댑터는 예를 들어, 컴퓨터 디스플레이 스크린과 같은 디스플레이 디바이스로의 출력, 및 키보드 및 마우스와 같은 사용자 입력 디바이스(122)로부터의 사용자 입력을 제어하기 위한 소프트웨어 드라이버 및 컴퓨터 하드웨어를 통한 사용자-지향 입력/출력을 구현한다. 도 1의 예시적인 컴퓨터(100)는 디스플레이 스크린 또는 컴퓨터 모니터와 같은 디스플레이 디바이스(126)로의 그래픽 출력을 위해 특별히 설계된 I/O 어댑터의 예인 비디오 어댑터(124)를 포함한다. 비디오 어댑터(124)는 고속 비디오 버스(128), 버스 어댑터(108), 및 또한 고속 버스인 프론트 사이드 버스(130)를 통해 프로세서(102)에 연결된다.The example computer 100 of FIG. 1 includes one or more input/output (I/O) adapters 120 . The I/O adapter is user-oriented, for example, through software drivers and computer hardware, for controlling output to a display device, such as a computer display screen, and user input from user input devices 122, such as a keyboard and mouse. Implement input/output. The example computer 100 of FIG. 1 includes a video adapter 124 , which is an example of an I/O adapter specifically designed for graphics output to a display device 126 , such as a display screen or computer monitor. The video adapter 124 is coupled to the processor 102 via a high-speed video bus 128 , a bus adapter 108 , and a front side bus 130 , which is also a high-speed bus.

도 1의 예시적인 컴퓨터(100)는 다른 컴퓨터와의 데이터 통신 및 데이터 통신 네트워크와의 데이터 통신을 위한 통신 어댑터(132)를 포함한다. 이러한 데이터 통신은 RS-232 연결을 통해, 범용 직렬 버스(USB)와 같은 외부 버스를 통해, IP 데이터 통신 네트워크와 같은 데이터 통신 네트워크를 통해, 및/또는 당업자에게 알려진 다른 방식으로 직렬로 수행된다. 통신 어댑터는 하나의 컴퓨터가 데이터 통신을 다른 컴퓨터로 직접 또는 데이터 통신 네트워크를 통해 발송하는 데이터 통신의 하드웨어 레벨을 구현한다. 자동 메모리 오버클록킹용으로 구성된 컴퓨터에서 유용한 통신 어댑터의 예로는 유선 전화 접속 통신용 모뎀, 유선 데이터 통신용 이더넷(IEEE 802.3) 어댑터 및 무선 데이터 통신용 802.11 어댑터가 있다.The exemplary computer 100 of FIG. 1 includes a communication adapter 132 for data communication with other computers and data communication with a data communication network. Such data communication is performed serially via an RS-232 connection, via an external bus, such as a Universal Serial Bus (USB), via a data communication network, such as an IP data communication network, and/or in other manners known to those skilled in the art. A communication adapter implements the hardware level of data communication, in which one computer sends data communication to another computer, either directly or through a data communication network. Examples of communication adapters useful in computers configured for automatic memory overclocking include modems for wired dial-up communications, Ethernet (IEEE 802.3) adapters for wired data communications, and 802.11 adapters for wireless data communications.

추가적인 설명을 위해, 도 2는 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 (예를 들어, 구성 모듈(114)에 의해) 증가시키는 단계(202)를 포함하는 자동 메모리 오버클록킹을 위한 예시적인 방법을 예시하는 흐름도를 제시한다. 메모리 모듈은 동일한 회로 보드(예를 들어, 동일한 듀얼 인-라인 메모리 모듈(DIMM)) 내의 하나 이상의 랜덤 액세스 메모리 칩들의 세트이다. 메모리 주파수 설정은 메모리 모듈에 대한 클록 속도(예를 들어, 1000 메가헤르츠, 3000 메가헤르츠 등)이다.For further clarification, FIG. 2 illustrates automatic memory overclocking that includes increasing 202 (eg, by configuration module 114 ) a memory frequency setting for the memory module until the memory stability test fails. A flowchart illustrating an example method for a king is presented. A memory module is a set of one or more random access memory chips within the same circuit board (eg, the same dual in-line memory module (DIMM)). The memory frequency setting is the clock rate (eg, 1000 megahertz, 3000 megahertz, etc.) for the memory module.

예를 들어, 구성 모듈(114)은 기준(baseline) 메모리 주파수 설정(예를 들어, 메모리 모듈에 대한 현재 메모리 주파수 설정, 미리 정의된 최소 주파수 설정 등)으로부터 시작하는 미리 정의된 간격(예를 들어, 100 메가헤르츠, 또는 다른 간격)에서 메모리 주파수 설정을 증가시킨다. 메모리 주파수 설정을 증가시킨 후, 구성 모듈(114)은 메모리 모듈에 대해 하나 이상의 메모리 안정성 테스트를 수행한다. 메모리 안정성 테스트들은 오류 정정 코드 체크들 또는 인식될 수 있는 바와 같이 비트 오류들을 검출하기 위한 다른 접근법들을 포함하는 하나 이상의 데이터 무결성(integrity) 체크들에 기초한다. 예를 들어, 구성 모듈(114)은 메모리 모듈에 대한 데이터의 하나 이상의 판독 및/또는 기록을 수행하고 판독 및/또는 기록된 데이터에서 오류가 발견되었는지를 결정할 수 있다.For example, the configuration module 114 may configure a predefined interval (eg, a baseline memory frequency setting) starting from a baseline memory frequency setting (eg, a current memory frequency setting for the memory module, a predefined minimum frequency setting, etc.). , 100 MHz, or other intervals) increase the memory frequency setting. After increasing the memory frequency setting, the configuration module 114 performs one or more memory stability tests on the memory module. Memory stability tests are based on one or more data integrity checks including error correcting code checks or other approaches for detecting bit errors as can be recognized. For example, the configuration module 114 may perform one or more reads and/or writes of data to the memory module and determine whether errors were found in the read and/or written data.

메모리 모듈이 하나 이상의 메모리 안정성 테스트를 통과하면, 구성 모듈(114)은 메모리 주파수 설정을 증가시키고 하나 이상의 메모리 안정성 테스트를 수행한다. 이 프로세스는 메모리 안정성 테스트가 실패할 때까지 반복된다. 일부 실시예들에서, 메모리 안정성 테스트 실패에 응답하여, 구성 모듈(114)은 메모리 주파수 설정을 메모리 안정성 테스트들을 마지막으로 통과한 메모리 주파수 설정보다 크지만 메모리 안정성 테스트를 실패한 메모리 주파수 설정보다 작은 메모리 주파수 설정으로 감소시킨다. 예를 들어, 메모리 모듈이 2800 MHZ에서 메모리 안정성 테스트를 통과한다고 가정한다. 메모리 주파수 설정을 미리 정의된 200 메가헤르츠 간격으로 증가시킨 후, 메모리 모듈은 3000 메가헤르츠에서 메모리 안정성 테스트에 실패한다. 그런 다음, 구성 모듈(114)은 메모리 주파수 설정을 2900 메가헤르츠로 감소시키고 메모리 안정성 테스트를 수행한다. 당업자는 그러한 접근법이 메모리 안정성 테스트들을 통과할 최고 메모리 주파수 설정을 효과적으로 검색하기 위해 반복적으로 수행될 수 있음을 이해할 것이다. If the memory module passes one or more memory stability tests, the configuration module 114 increases the memory frequency setting and performs one or more memory stability tests. This process is repeated until the memory stability test fails. In some embodiments, in response to a memory stability test failure, the configuration module 114 sets the memory frequency setting to a memory frequency setting that is greater than the memory frequency setting that last passed the memory stability tests but less than the memory frequency setting that failed the memory stability test. Decrease by setting. For example, suppose a memory module passes the memory stability test at 2800 MHZ. After increasing the memory frequency setting in predefined 200 MHz increments, the memory module fails the memory stability test at 3000 MHz. Then, the configuration module 114 reduces the memory frequency setting to 2900 MHz and performs a memory stability test. Those skilled in the art will appreciate that such an approach can be performed iteratively to effectively search for the highest memory frequency setting that will pass memory stability tests.

도 2의 방법은 또한 (예를 들어, 구성 모듈(114)에 의해) 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계(204)를 포함한다. 예를 들어, 구성 모듈(114)이 100 메가헤르츠의 간격으로 메모리 모듈에 대한 메모리 주파수 설정을 증가시킨다고 가정하면, 2900 메가헤르츠에 대한 메모리 주파수 설정은 3000 메가헤르츠에 대한 설정이 실패하는 동안 메모리 안정성 테스트를 통과한다. 오버클록킹된 메모리 주파수 설정은 204에서 2900 MHZ로 결정된다.The method of FIG. 2 also includes determining ( 204 ) an overclocked memory frequency setting that includes the highest memory frequency setting that passes the memory stability test (eg, by the configuration module 114 ). For example, suppose the configuration module 114 increases the memory frequency setting for the memory module in steps of 100 megahertz, the memory frequency setting for 2900 megahertz will result in memory stability while the setting for 3000 megahertz fails. pass the test The overclocked memory frequency setting is determined from 204 to 2900 MHZ.

도 2의 방법은 또한 (예를 들어, 구성 모듈(114)에 의해) 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일(208)을 생성하는 단계(206)를 포함한다. 예를 들어, 프로파일(208)은 오버클록킹된 메모리 주파수 설정을 포함하는 메모리 모듈에 대한 하나 이상의 설정을 표시하는 데이터로서 생성된다(206). 당업자는 도 2의 방법이 컴퓨팅 시스템 내의 각각의 메모리 모듈에 대해 반복되어 프로파일(208)이 각각의 메모리 모듈에 대해 생성되거나, 프로파일(208)이 각각의 메모리 모듈에 대한 설정을 표시하는 것으로 생성될 수 있음을 이해할 것이다. 구성 모듈(114)은 (예를 들어, 랜덤 액세스 메모리(104)에서 구현되는) 소프트웨어-기반 프로세스로서 설명된다. 당업자는, 대안적인 실시예에서, 구성 모듈(114)이 메모리 제어기 또는 다른 하드웨어 컴포넌트에 적어도 부분적으로 구현된다는 것을 이해할 것이다.The method of FIG. 2 also includes generating 206 a profile 208 that includes the overclocked memory frequency settings (eg, by the configuration module 114 ). For example, profile 208 is generated 206 as data indicative of one or more settings for the memory module, including overclocked memory frequency settings. One of ordinary skill in the art would recognize that the method of FIG. 2 may be repeated for each memory module in the computing system so that a profile 208 is generated for each memory module, or a profile 208 is generated indicating the settings for each memory module. you will understand that you can The configuration module 114 is described as a software-based process (eg, implemented in the random access memory 104 ). Those skilled in the art will appreciate that, in alternative embodiments, the configuration module 114 is implemented at least in part in a memory controller or other hardware component.

추가적인 설명을 위해, 도 3은 메모리 안정성 테스트가 실패할 때까지 (예를 들어, 구성 모듈(114)에 의해) 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계(202); 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계(204); 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일(208)을 생성하는 단계(206)를 포함하는 자동 메모리 오버클록킹을 위한 예시적인 방법을 예시하는 흐름도를 제시한다. For further illustration, FIG. 3 illustrates (eg, by configuration module 114 ) increasing ( 202 ) the memory frequency setting for the memory module until the memory stability test fails; determining (204) an overclocked memory frequency setting comprising a highest memory frequency setting that passes the memory stability test; A flow diagram is presented illustrating an example method for automatic memory overclocking that includes generating ( 206 ) a profile 208 that includes an overclocked memory frequency setting.

도 3의 방법은 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계(202)가 또한 하나 이상의 메모리 타이밍 설정을 결정하는 단계(302)를 포함한다는 점에서 도 2와 상이하다. 메모리 타이밍 설정들은 예를 들어, 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함한다. The method of FIG. 3 differs from FIG. 2 in that increasing the memory frequency setting 202 for the memory module until the memory stability test fails also includes determining 302 one or more memory timing settings. do. Memory timing settings are, for example, column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) delay (read out). ), a low precharge time, and/or a low active time.

일 실시예에서, 하나 이상의 메모리 타이밍 설정들을 결정하는 단계(302)는 하나 이상의 메모리 타이밍 설정들을 하나 이상의 최소 타이밍 설정들로서 결정하는 단계(302)를 포함한다. 예를 들어, 메모리 모듈은 메모리 타이밍 설정들 중 하나 이상에 대한 기본(default) 최소 임계치들을 포함한다. 그런 다음, 메모리 타이밍 설정들 중 하나 이상이 최소 임계치로서 결정된다. 일 실시예에서, 하나 이상의 메모리 타이밍 설정들을 결정하는 단계(302)는 하나 이상의 다른 최소 타이밍 설정들의 함수로서 메모리 타이밍 설정들 중 하나 이상을 결정하는 단계(302)를 포함한다. 예를 들어, 제1 메모리 타이밍 설정은 최소 타이밍 설정으로서 결정되고, 제2 메모리 타이밍 설정은 (예를 들어, 공식 또는 다른 규칙들을 사용하여) 제1 메모리 타이밍 설정의 함수로서 결정된다. 하나 이상의 최소 타이밍 설정들을 결정한 후(302), 메모리 타이밍 설정들은 하나 이상의 메모리 타이밍 설정들을 수행하기 전에 메모리 모듈에 적용된다. In one embodiment, determining 302 one or more memory timing settings includes determining 302 one or more memory timing settings as one or more minimum timing settings. For example, the memory module includes default minimum thresholds for one or more of the memory timing settings. Then, one or more of the memory timing settings is determined as a minimum threshold. In one embodiment, determining 302 one or more memory timing settings includes determining 302 one or more of the memory timing settings as a function of one or more other minimum timing settings. For example, the first memory timing setting is determined as the minimum timing setting, and the second memory timing setting is determined as a function of the first memory timing setting (eg, using a formula or other rules). After determining 302 one or more minimum timing settings, the memory timing settings are applied to the memory module prior to performing the one or more memory timing settings.

일 실시예에서, 주어진 주파수에서 메모리 안정성 테스트에 실패한 후, 구성 모듈(114)은 메모리 타이밍 설정에 대한 임계치에 도달할 때까지, 또는 메모리 안정성 테스트가 통과될 때까지 메모리 타이밍 설정들 중 하나 이상을 증가시킨다. 따라서, 메모리 주파수 설정은 증가된 메모리 타이밍 설정들을 사용하여 메모리 안정성 테스트를 통과한다.In one embodiment, after failing the memory stability test at a given frequency, the configuration module 114 configures one or more of the memory timing settings until a threshold for the memory timing setting is reached, or the memory stability test passes. increase Thus, the memory frequency setting passes the memory stability test using the increased memory timing settings.

도 3의 방법은 또한 오버클록킹된 메모리 주파수 설정에 대응하는 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계를 포함한다. 다시 말해서, 하나 이상의 오버클록킹된 메모리 타이밍 설정들은 오버클록킹된 메모리 주파수 설정이 메모리 안정성 테스트를 통과할 때 메모리 모듈에 적용되는 그러한 최소 메모리 타이밍 설정들이다.The method of FIG. 3 also includes determining one or more overclocked memory timing settings including one or more memory timing settings corresponding to the overclocked memory frequency setting. In other words, the one or more overclocked memory timing settings are those minimum memory timing settings applied to the memory module when the overclocked memory frequency setting passes the memory stability test.

도 3의 방법은 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일(208)을 생성하는 단계(206)가 또한 하나 이상의 오버클록킹된 메모리 타이밍 설정을 포함하는 프로파일(208)을 생성하는 단계(306)를 포함한다는 점에서 도 2와 추가로 상이하다. 따라서, 생성된(206) 프로파일(208)은 메모리 모듈에 대한 오버클록킹된 메모리 주파수 설정 및 하나 이상의 오버클록킹된 메모리 타이밍 설정을 표시한다.The method of FIG. 3 includes the steps of generating ( 206 ) the profile 208 including the overclocked memory frequency settings, and also generating ( 306 ) the profile 208 including one or more overclocked memory timing settings. ) is further different from FIG. 2 in that it includes. Accordingly, the generated 206 profile 208 indicates an overclocked memory frequency setting and one or more overclocked memory timing settings for the memory module.

추가적인 설명을 위해, 도 4는 하나 이상의 메모리 타이밍 설정들을 결정하는 단계(302)를 포함하는 메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 (예를 들어, 구성 모듈(114)에 의해) 증가시키는 단계(202) ; 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계(204); 오버클록킹된 메모리 주파수 설정에 대응하는 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계(304); 그리고, 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 프로파일을 생성함으로써 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일(208)을 생성하는 단계(206)를 포함하는 자동 메모리 오버클록킹을 위한 예시적인 방법을 예시하는 흐름도를 제시한다. For further illustration, FIG. 4 illustrates a memory frequency setting (eg, to configuration module 114 ) for a memory module until a memory stability test that includes determining one or more memory timing settings ( 302 ) fails. by) increasing 202 ; determining (204) an overclocked memory frequency setting comprising a highest memory frequency setting that passes the memory stability test; determining (304) one or more overclocked memory timing settings including one or more memory timing settings corresponding to the overclocked memory frequency setting; and generating a profile 208 comprising the overclocked memory frequency setting by generating a profile comprising the one or more overclocked memory timing settings; A flow chart illustrating the method is presented.

도 4의 방법은 도 4의 방법이 오버클록킹된 메모리 주파수 설정 및/또는 하나 이상의 오버클록킹된 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하는 단계(402)를 또한 포함한다는 점에서 도 3과 상이하다. 서브타이밍 설정들의 예로는 페이지 타임라인 기간 설정; RAS 대 RAS 지연, 상이한 뱅크 그룹 설정(예를 들어, 상이한 뱅크 그룹에 걸친 2개 로우(row) 활성화 사이의 지연), RAS 대 RAS 지연, 동일한 뱅크 그룹 설정(예를 들어, 동일한 뱅크 그룹 내에서 2개 로우 활성화 사이의 지연) ; 4개의 활성화 윈도우 설정(예를 들어, 동일한 랭크 내에서 4개의 로우 활성화가 발생할 수 있는 시간); 기록 대 판독 지연, 상이한 뱅크 그룹 설정(예를 들어, 상이한 뱅크 그룹에 걸쳐 성공적인 기록 명령과 판독 명령 사이의 지연); 기록 대 판독 지연, 동일한 뱅크 그룹 설정(예를 들어, 동일한 뱅크 그룹 내의 성공적인 기록 명령과 판독 명령 사이의 지연); 기록 복구 시간 설정(예를 들어, 성공적인 기록 명령과 프리차징되는 활성 뱅크 사이의 지연), 및 인식될 수 있는 다른 설정들은 포함한다. The method of FIG. 4 is that the method of FIG. 4 also includes determining 402 one or more subtiming settings based on the overclocked memory frequency setting and/or one or more overclocked timing settings. different from FIG. 3 . Examples of subtiming settings include: page timeline duration settings; RAS to RAS delay, different bank group settings (eg delay between activation of two rows across different bank groups), RAS to RAS delay, same bank group setting (eg within the same bank group) delay between two row activations) ; setting four activation windows (eg, the time during which four row activations can occur within the same rank); write-to-read delays, different bank group settings (eg, delay between successful write and read commands across different bank groups); write-to-read delay, setting the same bank group (eg, the delay between a successful write command and a read command within the same bank group); Write recovery time settings (eg, delay between a successful write command and the active bank being precharged), and other settings that may be recognized.

일 실시예에서, 하나 이상의 서브타이밍 설정들은 오버클록킹된 메모리 타이밍 설정들 중 하나 이상에 기초하여 결정된다. 예를 들어, 오버클록킹된 메모리 주파수 설정에서 로우 프리차지 시간 설정과 로우 어드레스 스트로브(Row Address Strobe, RAS) 활성 시간 설정의 합으로 로우 사이클 시간 설정이 결정된다. 일 실시예에서, 하나 이상의 서브타이밍 설정들은 하나 이상의 임계치들에 기초하여 결정된다. 예를 들어, 임계치 미만인 수식을 통해 결정된 설정이 대신에 임계치 양(threshold amount)으로 결정될 수도 있다. 일 실시예에서, 하나 이상의 다른 서브타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들이 결정된다. 예를 들어, 4개의 활성화 윈도우 설정은 RAS 대 RAS 지연, 상이한 뱅크 그룹 설정의 4배로 결정된다. 다시 말해서, 하나 이상의 서브타이밍 설정은 하나 이상의 규칙에 기초하여 결정된다.In one embodiment, the one or more subtiming settings are determined based on one or more of the overclocked memory timing settings. For example, in the overclocked memory frequency setting, the row cycle time setting is determined by the sum of the row precharge time setting and the row address strobe (RAS) active time setting. In one embodiment, the one or more subtiming settings are determined based on one or more thresholds. For example, a setting determined through a formula that is less than a threshold may be determined as a threshold amount instead. In one embodiment, one or more subtiming settings are determined based on one or more other subtiming settings. For example, a setting of 4 activation windows is determined by RAS to RAS delay, 4 times the setting of different bank groups. In other words, the one or more subtiming settings are determined based on the one or more rules.

도 4의 방법은 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일(208)을 생성하는 단계(206)가 또한 하나 이상의 서브타이밍 설정을 포함하는 프로파일(208)을 생성하는 단계(404)를 포함한다는 점에서 도 3과 추가로 상이하다. 따라서, 생성된(206) 프로파일(208)은 메모리 모듈에 대한 오버클록킹된 메모리 주파수 설정, 하나 이상의 오버클록킹된 메모리 타이밍 설정, 및 하나 이상의 서브타이밍 설정을 표시한다.The method of FIG. 4 states that generating ( 206 ) the profile 208 including the overclocked memory frequency settings also includes generating ( 404 ) the profile 208 including one or more subtiming settings. It differs further from FIG. 3 in that it is. Accordingly, the generated 206 profile 208 indicates an overclocked memory frequency setting, one or more overclocked memory timing settings, and one or more subtiming settings for the memory module.

추가적인 설명을 위해, 도 5는 메모리 안정성 테스트가 실패할 때까지 (예를 들어, 구성 모듈(114)에 의해) 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계(202); 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계(204); 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일(208)을 생성하는 단계(206)를 포함하는 자동 메모리 오버클록킹을 위한 예시적인 방법을 예시하는 흐름도를 제시한다. For further clarification, FIG. 5 illustrates incrementing ( 202 ) a memory frequency setting for a memory module (eg, by configuration module 114 ) until the memory stability test fails; determining (204) an overclocked memory frequency setting comprising a highest memory frequency setting that passes the memory stability test; A flow diagram is presented illustrating an example method for automatic memory overclocking that includes generating ( 206 ) a profile 208 that includes an overclocked memory frequency setting.

도 5의 방법은 도 5의 방법이 또한 프로파일을 스토리지 위치(504)에 저장하는 단계(502)를 포함한다는 점에서 도 2와 상이하다. 일 실시예에서, 스토리지 위치(504)는 메모리 모듈(예를 들어, 디스크 스토리지, 기본 입력/출력 시스템 스크래치 테이블 등)을 포함하는 컴퓨팅 시스템의 비휘발성 메모리를 포함한다. 다른 실시예에서, 스토리지 위치(504)는 온-모듈(예를 들어, 듀얼 인-라인 메모리 모듈(DIMM) 상에서) SPD(Serial Presence Detect) EEPROM(Electrically Erasable Programmable Read-Only Memory)과 같은 메모리 모듈 자체 상의 비휘발성 스토리지를 포함한다.The method of FIG. 5 differs from FIG. 2 in that the method of FIG. 5 also includes a step 502 of storing the profile in a storage location 504 . In one embodiment, storage location 504 includes non-volatile memory of the computing system including memory modules (eg, disk storage, basic input/output system scratch tables, etc.). In another embodiment, the storage location 504 is an on-module (eg, on a dual in-line memory module (DIMM)) a memory module, such as a Serial Presence Detect (SPD) Electrically Erasable Programmable Read-Only Memory (EEPROM). It includes non-volatile storage on its own.

도 5의 방법은 또한 스토리지 위치(504)로부터 프로파일을 로딩하는 단계(506)를 포함한다. 예를 들어, 프로파일(208)은 메모리 모듈을 포함하는 컴퓨팅 시스템의 부트 프로세스의 일부로서 스토리지 위치(504)로부터 로딩된다(506). 도 5의 방법은 또한 프로파일(208)을 메모리 모듈에 적용하는 단계(508)를 포함한다. 프로파일(208)을 메모리 모듈에 적용하는 단계(508)는 프로파일(208)에 표시된 설정들(예를 들어, 오버클록킹된 메모리 주파수 설정, 오버클록킹된 메모리 타이밍 설정들, 및/또는 서브타이밍 설정들)을 사용하여 동작하도록 메모리 모듈을 구성하는 단계를 포함한다.The method of FIG. 5 also includes loading 506 the profile from the storage location 504 . For example, the profile 208 is loaded 506 from the storage location 504 as part of a boot process of a computing system including the memory module. The method of FIG. 5 also includes applying 508 the profile 208 to the memory module. Step 508 of applying the profile 208 to the memory module includes the settings indicated in the profile 208 (eg, overclocked memory frequency settings, overclocked memory timing settings, and/or subtiming settings). configuring the memory module to operate using the settings).

기존 솔루션에서 메모리 모듈은 메모리 모듈의 제조업체 또는 공급업체가 제공하는 프로파일을 사용하여 구성되며, 최종 사용자(예를 들어 상이한 칩 또는 마더보드 제조업체 또는 설계자)와 다를 수 있는 구성 설정 하에서 테스트된다. 사용자는 이러한 프로파일에서 설정을 수정할 수 있지만, 이들은 이러한 상이한 구성 설정들에 기초하여 마진(margin)을 사용하는 것이 제한된다. 위에서 설명된 접근법을 사용하여, 메모리 모듈의 구성 설정들은 메모리 모듈이 구현되는 컴퓨팅 시스템의 실제 능력(capabilities)들에 기초하여 결정되고 최적화된다.In traditional solutions, memory modules are configured using profiles provided by the memory module's manufacturer or vendor, and tested under configuration settings that may differ from the end user (eg different chip or motherboard manufacturer or designer). Users can modify settings in these profiles, but they are limited to using margins based on these different configuration settings. Using the approach described above, the configuration settings of the memory module are determined and optimized based on the actual capabilities of the computing system in which the memory module is implemented.

위에 제시된 설명을 고려하여, 독자는 자동 메모리 오버클록킹의 이점은 다음을 포함한다는 것을 인식할 것이다:In view of the description presented above, the reader will recognize that the benefits of automatic memory overclocking include:

● 현재 사용자 시스템 구성 및 운영 환경을 반영하도록 메모리 오버클록킹 설정을 최적화하여 컴퓨팅 시스템의 성능을 향상.● Improve the performance of your computing system by optimizing memory overclocking settings to reflect your current system configuration and operating environment.

본 개시내용의 예시적인 실시예들은 자동 메모리 오버클록킹을 위한 완전한 기능의 컴퓨터 시스템과 관련하여 주로 설명된다. 그러나, 당업자는, 본 개시가 또한 임의의 적합한 데이터 프로세싱 시스템과 함께 사용하기 위해 컴퓨터 판독가능 스토리지 매체 상에 배치된 컴퓨터 프로그램 제품으로 구현될 수 있다는 것을 인식할 것이다. 이러한 컴퓨터 판독가능 스토리지 매체는 자기 매체, 광학 매체, 또는 다른 적합한 매체를 포함하는, 기계 판독가능 정보를 위한 임의의 스토리지 매체일 수 있다. 이러한 매체의 예는 하드 드라이브 또는 디스켓에 있는 자기 디스크, 광학 드라이브용 컴팩트 디스크, 자기 테이프, 및 당업자에게 알려진 기타를 포함한다. 당업자는 적합한 프로그래밍 수단을 갖는 임의의 컴퓨터 시스템이 컴퓨터 프로그램 제품에 구현된 바와 같은 본 개시의 방법의 단계를 실행할 수 있을 것이라는 것을 즉시 인식할 것이다. 당업자는 본 명세서에서 설명된 예시적인 실시예들 중 일부가 컴퓨터 하드웨어 상에 설치되고 실행되는 소프트웨어에 지향되지만, 그럼에도 불구하고, 펌웨어 또는 하드웨어로서 구현되는 대안적인 실시예들이 본 개시의 범위 내에 잘 있다는 것을 또한 인식할 것이다.Exemplary embodiments of the present disclosure are primarily described in the context of a full-featured computer system for automatic memory overclocking. However, those skilled in the art will recognize that the present disclosure may also be embodied as a computer program product disposed on a computer readable storage medium for use with any suitable data processing system. Such computer-readable storage media can be any storage media for machine-readable information, including magnetic media, optical media, or other suitable media. Examples of such media include magnetic disks on hard drives or diskettes, compact disks for optical drives, magnetic tapes, and others known to those skilled in the art. Those skilled in the art will readily recognize that any computer system having suitable programming means will be capable of carrying out the steps of the methods of the present disclosure as embodied in a computer program product. Those skilled in the art will appreciate that while some of the exemplary embodiments described herein are directed to software installed and executed on computer hardware, nevertheless alternative embodiments implemented as firmware or hardware are well within the scope of the present disclosure. will also recognize that

본 개시는 시스템, 방법, 및/또는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 프로그램 제품은 프로세서로 하여금 본 개시의 양태들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령어들을 갖는 컴퓨터 판독가능 스토리지 매체(또는 매체들)를 포함할 수 있다.The present disclosure may be a system, method, and/or computer program product. A computer program product may include a computer readable storage medium (or media) having computer readable program instructions for causing a processor to perform aspects of the present disclosure.

컴퓨터 판독 가능 스토리지 매체는 명령어 실행 디바이스에 의한 사용을 위해 명령어를 보유 및 저장할 수 있는 유형의 디바이스일 수 있다. 컴퓨터 판독가능 스토리지 매체는 예를 들어 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광학 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 이들의 임의의 적합한 조합일 수 있지만, 이에 제한되지 않는다. 컴퓨터 판독가능 스토리지 매체의 더 구체적인 예들의 비배타적인 리스트는 다음을 포함한다: 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), EPROM(erasable programmable read-only memory) 또는 플래시 메모리(flash memory), SRAM(static random access memory), CD-ROM(portable compact disk read-only memory), DVD(digital versatile disk), 메모리 스틱(memory stick), 플로피 디스크, 펀치 카드(punch-card)와 같은 기계적으로 인코딩된 디바이스 또는 명령어가 기록된 홈 내의 융기 구조물, 및 이들의 임의의 적절한 조합이 제공된다. 본 명세서에서 사용되는 컴퓨터 판독가능 스토리지 매체는, 그 자체가, 전파 또는 다른 자유롭게 전파하는 전자기파들, 도파관 또는 다른 송신 매체를 통해 전파하는 전자기파들(예를 들어, 광섬유 케이블을 통과하는 광 펄스들), 또는 와이어를 통해 송신되는 전기 신호들과 같은 일시적 신호들인 것으로 해석되지 않는다.A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exclusive list of more specific examples of computer-readable storage media includes: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) ) or flash memory, static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, punch card ( mechanically encoded devices, such as punch-cards, or raised structures in grooves on which instructions are recorded, and any suitable combination thereof. A computer-readable storage medium as used herein includes, per se, propagating or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (eg, light pulses passing through a fiber optic cable). , or electrical signals transmitted over wires.

본 명세서에 설명된 컴퓨터 판독가능 프로그램 명령어들은 컴퓨터 판독가능 스토리지 매체로부터 각각의 컴퓨팅/프로세싱 디바이스들에, 또는 네트워크, 예를 들어, 인터넷, 로컬 영역 네트워크, 광역 네트워크 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 스토리지 디바이스로 다운로드될 수 있다. 네트워크는 구리 송신 케이블, 광 송신 섬유, 무선 송신, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함할 수 있다. 각각의 컴퓨팅/프로세싱 디바이스 내의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독가능 프로그램 명령어들을 수신하고, 각각의 컴퓨팅/프로세싱 디바이스 내의 컴퓨터 판독가능 스토리지 매체에 저장하기 위해 컴퓨터 판독가능 프로그램 명령어들을 포워딩한다.The computer readable program instructions described herein can be transmitted from a computer readable storage medium to respective computing/processing devices, or to an external computer via a network, eg, the Internet, a local area network, a wide area network, and/or a wireless network. Alternatively, it may be downloaded to an external storage device. The network may include copper transmission cables, optical transmission fibers, radio transmissions, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in each computing/processing device.

본 개시의 동작들을 수행하기 위한 컴퓨터 판독가능 프로그램 명령어들은 어셈블러 명령어들, 명령어 세트 아키텍처(ISA) 명령어들, 머신 명령어들, 머신 종속 명령어들, 마이크로코드, 펌웨어 명령어들, 상태-설정 데이터, 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차적 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어들의 임의의 조합으로 기록된 소스 코드 또는 객체 코드일 수 있다. 컴퓨터 판독가능 프로그램 명령어들은 전적으로 사용자의 컴퓨터 상에서, 부분적으로 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터 상에서 그리고 부분적으로 원격 컴퓨터 상에서 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 로컬 영역 네트워크(LAN) 또는 광역 네트워크(WAN)를 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, (예를 들어, 인터넷 서비스 공급자를 사용하는 인터넷을 통해) 외부 컴퓨터에 연결이 이루어 질 수 있다. 일부 실시예들에서, 예를 들어, 프로그램가능 로직 회로부, 필드 프로그램가능 게이트 어레이들(FPGA), 또는 프로그램가능 로직 어레이들(PLA)을 포함하는 전자 회로부는, 본 개시의 양상들을 수행하기 위해, 전자 회로부를 개인화하기 위해 컴퓨터 판독가능 프로그램 명령어들의 상태 정보를 이용함으로써 컴퓨터 판독가능 프로그램 명령어들을 실행할 수 있다.Computer readable program instructions for performing the operations of this disclosure include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or Smalltalk , source code or object code written in any combination of one or more programming languages, including an object-oriented programming language such as , C++, and the like, and conventional procedural programming languages such as the "C" programming language or similar programming languages. . The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or (eg, the Internet using an Internet service provider). ), a connection can be made to an external computer. In some embodiments, for example, programmable logic circuitry, field programmable gate arrays (FPGA), or electronic circuitry including programmable logic arrays (PLA), to perform aspects of the present disclosure, The computer readable program instructions may be executed by using the state information of the computer readable program instructions to personalize the electronic circuitry.

본 개시내용의 양태들은 방법들, 장치(시스템들), 및 컴퓨터 프로그램 제품들의 흐름도 예시들 및/또는 블록도를 레퍼런스하여 본 명세서에서 설명된다. 흐름도 예시들 및/또는 블록도들의 각각의 블록, 및 흐름도 예시들 및/또는 블록도들에서의 블록들의 조합들은 컴퓨터 판독가능 프로그램 명령어들에 의해 구현될 수 있다는 것이 이해될 것이다.Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer readable program instructions.

이들 컴퓨터 판독가능 프로그램 명령어들은, 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치의 프로세서를 통해 실행되는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 수단을 생성하도록, 기계를 생성하기 위해 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그램가능 데이터 프로세싱 장치의 프로세서에 제공될 수 있다. 이들 컴퓨터 판독가능 프로그램 명령어들은 또한 컴퓨터, 프로그래밍가능한 데이터 프로세싱 장치, 및/또는 다른 디바이스들이 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 스토리지 매체에 저장될 수 있어서, 그 안에 저장된 명령어들을 갖는 컴퓨터 판독가능 스토리지 매체는 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능/동작의 양태들을 구현하는 명령어들을 포함하는 제조 물품을 포함한다.These computer readable program instructions are such that the instructions, which are executed by a processor of a computer or other programmable data processing apparatus, produce means for implementing the functions/acts specified in the flowchart and/or block or blocks in the block diagrams. , may be provided on the processor of a general purpose computer, special purpose computer, or other programmable data processing device to create a machine. These computer readable program instructions may also be stored on a computer readable storage medium capable of instructing a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable program having the instructions stored therein The capable storage medium includes an article of manufacture comprising instructions implementing aspects of the function/acting specified in the block or blocks of the flowchart and/or block diagrams.

컴퓨터 판독가능 프로그램 명령어들은 또한 컴퓨터, 다른 프로그램가능 데이터 프로세싱 장치, 또는 다른 디바이스 상에 로딩될 수 있어, 컴퓨터 구현된 프로세스를 생성하기 위해 컴퓨터, 다른 프로그램가능 장치, 또는 다른 디바이스 상에서 일련의 동작 단계들이 수행되게 하고, 이로 인하여 컴퓨터, 다른 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능들/동작들을 구현한다.The computer readable program instructions may also be loaded on a computer, other programmable data processing apparatus, or other device, such that a series of operational steps on the computer, other programmable apparatus, or other device to create a computer implemented process is performed. be performed, whereby instructions executed on a computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block or blocks in the block diagram.

도면들에서의 흐름도 및 블록도들은 다양한 실시예들에 따른 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 가능한 구현예들의 아키텍처, 기능성, 및 동작을 예시한다. 이와 관련하여, 흐름도 또는 블록도에서의 각 블록은 모듈, 세그먼트, 또는 특정된 논리 기능(들)를 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 명령어들의 일부를 나타낼 수 있다. 일부 대안적인 구현예들에서, 블록에 언급된 기능들은 도면들에 언급된 순서를 벗어나서 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록들은, 사실상, 실질적으로 동시에 실행될 수 있거나, 블록들은, 수반되는 기능성에 따라, 때때로 역순으로 실행될 수 있다. 또한, 블록도들 및/또는 흐름도 예시의 각각의 블록, 및 블록도들 및/또는 흐름도 예시에서의 블록들의 조합들은 특정 기능들 또는 동작들을 수행하거나 특수 목적 하드웨어 및 컴퓨터 명령어들의 조합들을 수행하는 특수 목적 하드웨어 기반 시스템들에 의해 구현될 수 있다는 점에 유의할 것이다.The flowchart and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products in accordance with various embodiments. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions recited in the blocks may occur out of the order recited in the figures. For example, two blocks shown in succession may, in fact, be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality involved. In addition, each block in the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be specific to perform specific functions or operations or perform combinations of special purpose hardware and computer instructions. It will be noted that the purpose may be implemented by hardware-based systems.

본 개시의 다양한 실시예에서 수정들 및 변경이 이루어질 수 있음은 전술한 설명으로부터 이해될 것이다. 본 명세서의 설명은 단지 예시를 위한 것이며 제한적인 의미로 해석되어서는 안 된다. 본 개시내용의 범위는 다음 청구범위의 언어에 의해서만 제한된다.It will be understood from the foregoing description that modifications and variations may be made in various embodiments of the present disclosure. The description herein is for illustrative purposes only and should not be construed in a limiting sense. The scope of the present disclosure is limited only by the language of the following claims.

Claims (20)

자동 메모리 오버클록킹 방법으로서,
메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계;
상기 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계; 및
상기 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하는 단계를 포함하는, 방법.
A method for automatic memory overclocking, comprising:
increasing the memory frequency setting for the memory module until the memory stability test fails;
determining an overclocked memory frequency setting comprising the highest memory frequency setting that passes the memory stability test; and
and generating a profile comprising the overclocked memory frequency setting.
제1항에 있어서,
상기 메모리 안정성 테스트가 실패할 때까지 상기 메모리 모듈에 대한 상기 메모리 주파수 설정을 증가시키는 단계는 하나 이상의 메모리 타이밍 설정들을 결정하는 단계를 포함하고, 상기 방법은:
상기 오버클록킹된 메모리 주파수 설정에 대응하는 상기 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계를 더 포함하고; 및
여기서, 상기 프로파일을 생성하는 단계는 상기 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 상기 프로파일을 생성하는 단계를 포함하는, 방법.
According to claim 1,
Increasing the memory frequency setting for the memory module until the memory stability test fails comprises determining one or more memory timing settings, the method comprising:
determining one or more overclocked memory timing settings comprising the one or more memory timing settings corresponding to the overclocked memory frequency setting; and
wherein generating the profile comprises generating the profile including the one or more overclocked memory timing settings.
제2항에 있어서,
상기 하나 이상의 메모리 타이밍 설정들은 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함하는, 방법.
3. The method of claim 2,
The one or more memory timing settings may include column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) delay (read). , a low precharge time, and/or a low active time.
제2항에 있어서,
상기 오버클록킹된 메모리 주파수 설정 및 상기 하나 이상의 오버클록킹된 메모리 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하는 단계를 더 포함하고; 및
여기서, 상기 프로파일을 생성하는 단계는 상기 하나 이상의 서브타이밍 설정들을 포함하는 상기 프로파일을 생성하는 단계를 포함하는, 방법.
3. The method of claim 2,
determining one or more subtiming settings based on the overclocked memory frequency setting and the one or more overclocked memory timing settings; and
wherein generating the profile comprises generating the profile including the one or more subtiming settings.
제4항에 있어서,
상기 하나 이상의 서브타이밍 설정들은 상기 오버클록킹된 메모리 주파수 설정 및/또는 상기 하나 이상의 메모리 타이밍 설정들에 적용되는 하나 이상의 규칙들에 기초하는, 방법.
5. The method of claim 4,
wherein the one or more subtiming settings are based on the overclocked memory frequency setting and/or one or more rules applied to the one or more memory timing settings.
제1항에 있어서,
상기 프로파일을 스토리지 위치에 저장하는 단계를 더 포함하는, 방법.
According to claim 1,
and storing the profile in a storage location.
제6항에 있어서,
상기 스토리지 위치에서 상기 프로파일을 로딩하는 단계; 및
상기 프로파일을 상기 메모리 모듈에 적용하는 단계를 더 포함하는, 방법.
7. The method of claim 6,
loading the profile from the storage location; and
and applying the profile to the memory module.
자동 메모리 오버클록킹을 위한 장치로서, 상기 장치는,
메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키고;
상기 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하고; 및
상기 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하도록 구성되는, 장치.
A device for automatic memory overclocking, the device comprising:
increase the memory frequency setting for the memory module until the memory stability test fails;
determine an overclocked memory frequency setting comprising a highest memory frequency setting that passes the memory stability test; and
and generate a profile comprising the overclocked memory frequency setting.
제8항에 있어서,
상기 메모리 안정성 테스트가 실패할 때까지 상기 메모리 모듈에 대한 상기 메모리 주파수 설정을 증가시키는 것은 하나 이상의 메모리 타이밍 설정들을 결정하는 것을 포함하고, 상기 장치는 또한,
상기 오버클록킹된 메모리 주파수 설정에 대응하는 상기 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하도록 구성되고; 및
여기서, 상기 프로파일을 생성하는 것은 상기 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 상기 프로파일을 생성하는 것을 포함하는, 장치.
9. The method of claim 8,
Increasing the memory frequency setting for the memory module until the memory stability test fails comprises determining one or more memory timing settings, the apparatus further comprising:
determine one or more overclocked memory timing settings comprising the one or more memory timing settings corresponding to the overclocked memory frequency setting; and
wherein generating the profile comprises generating the profile including the one or more overclocked memory timing settings.
제9항에 있어서,
상기 하나 이상의 메모리 타이밍 설정들은 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함하는, 장치.
10. The method of claim 9,
The one or more memory timing settings may include column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) delay (read). , a low precharge time, and/or a low active time.
제9항에 있어서,
상기 오버클록킹된 메모리 주파수 설정 및 상기 하나 이상의 오버클록킹된 메모리 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하도록 더 구성되고; 및
여기서, 상기 프로파일을 생성하는 것은 상기 하나 이상의 서브타이밍 설정들을 포함하는 상기 프로파일을 생성하는 것을 포함하는, 장치.
10. The method of claim 9,
further configured to determine one or more subtiming settings based on the overclocked memory frequency setting and the one or more overclocked memory timing settings; and
wherein generating the profile comprises generating the profile including the one or more subtiming settings.
제11항에 있어서,
상기 하나 이상의 서브타이밍 설정들은 상기 오버클록킹된 메모리 주파수 설정 및/또는 상기 하나 이상의 메모리 타이밍 설정들에 적용되는 하나 이상의 규칙들에 기초하는, 장치.
12. The method of claim 11,
wherein the one or more subtiming settings are based on the overclocked memory frequency setting and/or one or more rules applied to the one or more memory timing settings.
제8항에 있어서,
상기 프로파일을 스토리지 위치에 저장하도록 더 구성되는, 장치.
9. The method of claim 8,
and store the profile in a storage location.
제13항에 있어서,
상기 스토리지 위치에서 상기 프로파일을 로딩하고; 및
상기 프로파일을 상기 메모리 모듈에 적용하도록 더 구성되는, 장치.
14. The method of claim 13,
load the profile from the storage location; and
and apply the profile to the memory module.
비-일시적 컴퓨터 판독 가능 매체 상에 배치된 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은, 실행될 때, 컴퓨터로 하여금 단계들을 수행하게 하는 자동 메모리 오버클록킹을 위한 컴퓨터 프로그램 명령어들을 포함하고, 상기 단계들은:
메모리 안정성 테스트가 실패할 때까지 메모리 모듈에 대한 메모리 주파수 설정을 증가시키는 단계;
상기 메모리 안정성 테스트를 통과하는 최고 메모리 주파수 설정을 포함하는 오버클록킹된 메모리 주파수 설정을 결정하는 단계; 및
상기 오버클록킹된 메모리 주파수 설정을 포함하는 프로파일을 생성하는 단계를 포함하는, 컴퓨터 프로그램 제품.
A computer program product disposed on a non-transitory computer readable medium, the computer program product comprising computer program instructions for automatic memory overclocking that, when executed, cause a computer to perform steps comprising: :
increasing the memory frequency setting for the memory module until the memory stability test fails;
determining an overclocked memory frequency setting comprising the highest memory frequency setting that passes the memory stability test; and
and generating a profile comprising the overclocked memory frequency setting.
제15항에 있어서,
상기 메모리 안정성 테스트가 실패할 때까지 상기 메모리 모듈에 대한 상기 메모리 주파수 설정을 증가시키는 단계는 하나 이상의 메모리 타이밍 설정들을 결정하는 단계를 포함하고, 상기 단계들은:
상기 오버클록킹된 메모리 주파수 설정에 대응하는 상기 하나 이상의 메모리 타이밍 설정들을 포함하는 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 결정하는 단계를 더 포함하고; 및
여기서, 상기 프로파일을 생성하는 단계는 상기 하나 이상의 오버클록킹된 메모리 타이밍 설정들을 포함하는 상기 프로파일을 생성하는 단계를 포함하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
Increasing the memory frequency setting for the memory module until the memory stability test fails includes determining one or more memory timing settings, the steps comprising:
determining one or more overclocked memory timing settings comprising the one or more memory timing settings corresponding to the overclocked memory frequency setting; and
wherein generating the profile comprises generating the profile comprising the one or more overclocked memory timing settings.
제16항에 있어서,
상기 하나 이상의 메모리 타이밍 설정들은 컬럼 액세스 스트로브(CAS) 레이턴시, 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(기록), 로우 어드레스 스트로브(RAS) 대 컬럼 어드레스 스트로브(CAS) 지연(판독), 로우 프리차지 시간, 및/또는 로우 활성 시간 중 하나 이상을 포함하는, 컴퓨터 프로그램 제품.
17. The method of claim 16,
The one or more memory timing settings may include column access strobe (CAS) latency, row address strobe (RAS) to column address strobe (CAS) delay (write), row address strobe (RAS) to column address strobe (CAS) delay (read). , a low precharge time, and/or a low active time.
제16항에 있어서, 상기 단계들은:
상기 오버클록킹된 메모리 주파수 설정 및 상기 하나 이상의 오버클록킹된 메모리 타이밍 설정들에 기초하여 하나 이상의 서브타이밍 설정들을 결정하는 단계를 더 포함하고; 및
여기서, 상기 프로파일을 생성하는 단계는 상기 하나 이상의 서브타이밍 설정들을 포함하는 상기 프로파일을 생성하는 단계를 포함하는, 컴퓨터 프로그램 제품.
17. The method of claim 16, wherein the steps are:
determining one or more subtiming settings based on the overclocked memory frequency setting and the one or more overclocked memory timing settings; and
wherein generating the profile comprises generating the profile comprising the one or more subtiming settings.
제18항에 있어서,
상기 하나 이상의 서브타이밍 설정들은 상기 오버클록킹된 메모리 주파수 설정 및/또는 상기 하나 이상의 메모리 타이밍 설정들에 적용되는 하나 이상의 규칙들에 기초하는, 컴퓨터 프로그램 제품.
19. The method of claim 18,
wherein the one or more subtiming settings are based on the overclocked memory frequency setting and/or one or more rules applied to the one or more memory timing settings.
제15항에 있어서,
상기 단계들은 스토리지 위치에 상기 프로파일을 저장하는 단계를 더 포함하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
wherein the steps further comprise storing the profile in a storage location.
KR1020227025079A 2019-12-30 2020-12-21 Automatic memory overclocking KR20220120611A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/729,702 2019-12-30
US16/729,702 US11262924B2 (en) 2019-12-30 2019-12-30 Automatic memory overclocking
PCT/US2020/066464 WO2021138123A1 (en) 2019-12-30 2020-12-21 Automatic memory overclocking

Publications (1)

Publication Number Publication Date
KR20220120611A true KR20220120611A (en) 2022-08-30

Family

ID=74191938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227025079A KR20220120611A (en) 2019-12-30 2020-12-21 Automatic memory overclocking

Country Status (6)

Country Link
US (2) US11262924B2 (en)
EP (1) EP4085465A1 (en)
JP (1) JP2023508519A (en)
KR (1) KR20220120611A (en)
CN (1) CN114902340A (en)
WO (1) WO2021138123A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11977757B2 (en) 2022-04-29 2024-05-07 Advanced Micro Devices, Inc. Real time profile switching for memory overclocking

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1368684A (en) * 2001-01-31 2002-09-11 伟格科技股份有限公司 Frequency multiplying method and system for CPU
TWI387973B (en) * 2008-10-30 2013-03-01 Silicon Motion Inc Data storage apparatus, data storage controller, and related automated testing method
TWI414925B (en) * 2008-11-27 2013-11-11 Asustek Comp Inc Methods and apparatuses for determining quality parameters of control signals of memory modules
CN103915119B (en) * 2013-07-11 2017-02-15 威盛电子股份有限公司 Data storage device and flash memory control method
TWI635382B (en) 2016-12-30 2018-09-11 技嘉科技股份有限公司 Memory overclocking method and computer device
TWI635383B (en) 2016-12-30 2018-09-11 技嘉科技股份有限公司 Memory clock frequency adjusting method, mainboard and computer operating system
CN112074793A (en) * 2018-06-21 2020-12-11 惠普发展公司,有限责任合伙企业 Increasing CPU clock speed to improve system performance

Also Published As

Publication number Publication date
WO2021138123A1 (en) 2021-07-08
JP2023508519A (en) 2023-03-02
US20220155982A1 (en) 2022-05-19
EP4085465A1 (en) 2022-11-09
CN114902340A (en) 2022-08-12
US20210200456A1 (en) 2021-07-01
US11262924B2 (en) 2022-03-01
US11720266B2 (en) 2023-08-08

Similar Documents

Publication Publication Date Title
US10134455B2 (en) Efficient calibration of a data eye for memory devices
KR102273191B1 (en) Storage device and data training method thereof
KR20090118863A (en) Reducing power-on time by simulating operating system memory hot add
US10365132B2 (en) Methods and systems for performing test and calibration of integrated sensors
JP2016540291A (en) Control signal training method based on strobe signal in memory module
US20130304954A1 (en) Dynamically Optimizing Bus Frequency Of An Inter-Integrated Circuit ('I2C') Bus
US11960902B2 (en) Chip booting control method, chip, and display panel
US9106458B2 (en) Method for detecting phase and phase detecting system
US7984326B2 (en) Memory downsizing in a computer memory subsystem
US11720266B2 (en) Automatic memory overclocking
TWI553641B (en) Data storage device and mode detection method thereof
US20140317334A1 (en) Storage of gate training parameters for devices utilizing random access memory
US20210065756A1 (en) Selectively squelching differential strobe input signal in memory-device testing system
US20150154082A1 (en) Provisioning memory in a memory system for mirroring
US9043586B2 (en) Memory training results corresponding to a plurality of memory modules
KR20150142921A (en) Semiconductor memory device, memory system including the same and operating method thereof
US9058863B2 (en) Reference frequency setting method, memory controller and memory storage apparatus
US20220236905A1 (en) Adaptive sram memory control
US20210117206A1 (en) System and method for retraining memory in an information handling system
KR20220064404A (en) Voltage Profiles for Reduction of Read Disturbances in Memory Cells
US20240143424A1 (en) Fence randomization with inter-chip fencing constraints
US11435806B2 (en) Automatic voltage reconfiguration
US20230125412A1 (en) Autonomous dimm write leveling training
CN111090391B (en) Method and server for improving performance of solid state disk array

Legal Events

Date Code Title Description
A201 Request for examination