KR20210026353A - 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템 - Google Patents

메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템 Download PDF

Info

Publication number
KR20210026353A
KR20210026353A KR1020190107008A KR20190107008A KR20210026353A KR 20210026353 A KR20210026353 A KR 20210026353A KR 1020190107008 A KR1020190107008 A KR 1020190107008A KR 20190107008 A KR20190107008 A KR 20190107008A KR 20210026353 A KR20210026353 A KR 20210026353A
Authority
KR
South Korea
Prior art keywords
memory device
training
prediction model
statistical prediction
adjusted
Prior art date
Application number
KR1020190107008A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020190107008A priority Critical patent/KR20210026353A/ko
Priority to US16/906,023 priority patent/US11461113B2/en
Priority to CN202010883429.5A priority patent/CN112447259A/zh
Publication of KR20210026353A publication Critical patent/KR20210026353A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • 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
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • 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 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • 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/5004Voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

통계예측모델을 이용하여 트레이닝에 소요되는 시간을 감축시키는 메모리 장치 트레이닝 방법을 포함하는 전자 기기가 제공된다. 상기 전자 기기는 데이터가 저장되는 메모리 장치, 메모리 장치에 대한 제1 트레이닝 파라미터에 대응하고 메모리 장치의 전압을 달리하여 모델링된 제1 통계예측모델과, 메모리 장치에 대한 제2 트레이닝 파라미터에 대응하고 메모리 장치의 온도를 달리하여 모델링된 제2 통계예측모델이 저장된 펌웨어를 포함하는 비휘발성 저장 장치 및 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되, 펌웨어는 제1 통계예측모델을 메모리 장치의 전압 특성을 반영하는 제1 조정 통계예측모델로 조정하는 제1 트레이닝을 수행하고, 제2 통계예측모델을 메모리 장치의 온도 특성을 반영하는 제2 조정 통계예측모델로 조정하는 제2 트레이닝을 수행하고, 메모리 컨트롤러는, 제1 조정 통계예측모델의 제1 조정 트레이닝 파라미터와, 제2 조정 통계예측모델의 제2 조정 트레이닝 파라미터를 메모리 장치에 맵핑한다.

Description

메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템{METHOD OF MEMORY DEVICE TRAINING AND ELECTRONIC DEVICES AND ELECTRONIC SYSTEMS INCLUDING THE METHOD}
본 발명은 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템에 관한 것이다.
메모리/메모리 컨트롤러 트레이닝(Training)은 동작 속도의 증가에 따라 더 세밀한 트레이닝 알고리즘을 요하고, 랭크(Rank)의 증가에 따라 긴 오픈 타임을 갖게 된다. 따라서 짧은 오픈 타임을 요구하는 메모리 시스템에서 풀 트레이닝(Full Training)을 수행하기엔 적합하지 않고, 트레이닝은 전자 기기가 구동되는 동안 주기적으로 수행되는데 메모리/메모리 컨트롤러 트레이닝을 수행하기 위해서 메모리 시스템은 진행하던 동작을 정지시켜야 하고, 이는 시스템의 성능에 영향을 주게 된다.
이 외에도 메모리 장치에 가해지는 전압과 온도가 수시로 변경되는 환경에서 전압과 온도 또한 트레이닝에 영향을 끼치는 요인이다. 트레이닝은 이를 반영하여 수행되는데, 전압과 온도가 수시로 변경되는 환경에서 이를 즉각적으로 반영하는 트레이닝에 대한 연구가 진행되고 있다.
본 발명이 해결하고자 하는 기술적 과제는, 트레이닝 수행시간을 줄여주는 전자 기기를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 트레이닝 수행시간을 줄여주는 메모리 장치 트레이닝 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 트레이닝 수행시간을 줄여주는 전자 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시 예에 따른 전자 기기는, 데이터가 저장되는 메모리 장치, 메모리 장치에 대한 제1 트레이닝 파라미터에 대응하고 메모리 장치의 전압을 달리하여 모델링된 제1 통계예측모델과, 메모리 장치에 대한 제2 트레이닝 파라미터에 대응하고 메모리 장치의 온도를 달리하여 모델링된 제2 통계예측모델이 저장된 펌웨어를 포함하는 비휘발성 저장 장치 및 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되, 펌웨어는 제1 통계예측모델을 메모리 장치의 전압 특성을 반영하는 제1 조정 통계예측모델로 조정하는 제1 트레이닝을 수행하고, 제2 통계예측모델을 메모리 장치의 온도 특성을 반영하는 제2 조정 통계예측모델로 조정하는 제2 트레이닝을 수행하고, 메모리 컨트롤러는, 제1 조정 통계예측모델의 제1 조정 트레이닝 파라미터와, 제2 조정 통계예측모델의 제2 조정 트레이닝 파라미터를 메모리 장치에 맵핑한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시 예에 따른 메모리 장치 트레이닝 방법은, 통계예측모델이 저장된 저장부와 메모리 장치를 제공하고, 제1 부트 업(Boot up)을 수행하고, 제2 부트 업을 수행하는 것을 포함하되, 제1 부트 업이 수행된 후, 메모리 장치의 트레이닝 파라미터에 대응하는 저장부에 저장된 통계예측모델을, 메모리 장치의 특성을 반영하고 조정 트레이닝 파라미터에 대응하는 조정 통계예측모델로 조정하는 트레이닝이 수행되고, 제2 부트 업이 수행된 후, 트레이닝이 수행되지 않는 것을 포함한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시 예에 따른 전자 시스템은, 제1 메모리 장치와, 제1 메모리 장치의 제1 트레이닝 파라미터에 대응하는 제1 통계예측모델이 저장된 제1 펌웨어와, 제1 메모리 장치를 제어하는 제1 메모리 컨트롤러를 포함하는 제1 전자 기기 및 제2 메모리 장치와, 제2 메모리 장치의 제1 트레이닝 파라미터에 대응하는 제1 통계예측모델이 저장된 제2 펌웨어와, 제2 메모리 장치를 제어하는 제2 메모리 컨트롤러를 포함하고 제1 전자 기기와 분리된 제2 전자 기기를 포함하되, 제1 펌웨어는, 제1 통계예측모델을 제1 메모리 장치의 특성을 반영하는 제1 조정 통계예측모델로 조정하는 제1 트레이닝을 수행하고, 제2 펌웨어는 제1 통계예측모델을 제2 메모리 장치의 특성을 반영하는 제2 조정 통계예측모델로 조정하는 제2 트레이닝을 수행하고, 제1 메모리 컨트롤러는 제1 조정 통계예측모델의 제1 조정 트레이닝 파라미터를 제1 메모리 장치에 맵핑하고, 제2 메모리 컨트롤러는 제2 조정 통계예측모델의 제2 조정 트레이닝 파라미터를 제2 메모리 장치에 맵핑한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
몇몇 실시예에 따른 전자 기기는, 기기, 전압 및 온도를 달리하여 모델링한, 트레이닝 파라미터에 대한 통계예측모델을 미리 저장시킴으로써, 부팅 시간을 감소시킬 수 있고, 주기적으로 트레이닝 파라미터를 조정할 경우, 트레이닝하는 시간을 감소시켜 메모리 장치의 오픈 타임을 줄여줄 수 있다.
하지만 몇몇 실시예에 따른 효과들은 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 몇몇 실시 예에 따른 전자 기기를 개략적으로 도시한 블록도이다.
도 2는 몇몇 실시 예에 따른 전자 기기의 호스트의 구조를 예시적으로 도시한 블록도이다.
도 3은 몇몇 실시 예에 따른 메모리 장치 트레이닝 방법을 나타낸 흐름도이다.
도 4는 몇몇 실시 예에 따른 통계예측모델링 전 데이터 수집을 예시적으로 설명하기 위한 도면이다.
도 5은 몇몇 실시예에 따른 통계예측모델링을 예시적으로 설명하기 위한 도면이다.
도 6 및 도 7은 도 3의 트레이닝의 과정을 설명하기 위한 도면들이다.
도 8은 도 3의 맵핑 단계에서의 일 실시예를 설명하기 위한 도면이다.
도 9는 도 3의 맵핑 단계에서의 일 실시예를 설명하기 위한 도면이다.
도 10은 도 8의 실시예에 따른 효과를 설명하기 위한 타이밍도이다.
도 11은 도 9의 실시예에 따른 효과를 설명하기 위한 타이밍도이다.
이하, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다.
도 1은 몇몇 실시 예에 따른 전자 기기를 개략적으로 도시한 블록도이다.
도 1을 참조하면, 전자 기기는 호스트(100)와 메모리 장치(200)를 포함할 수 있다. 호스트(100)와 메모리 장치(200) 사이에는 신호 및 데이터 교환을 위한 채널(300)이 제공될 수 있다.
호스트(100)는 사용자의 요청에 따라 다양한 애플리케이션(Application)을 실행할 수 있다. 호스트(100)는 애플리케이션을 수행하기 위해, 메모리 장치(200)에 애플리케이션을 로드(Load)하고 실행할 수 있다. 호스트(100)는 운영체제(OS)를 구동할 수 있고, 운영체제(OS) 상에서 다양한 애플리케이션들을 실행할 수 있다. 이러한 동작을 위해 호스트(100)는 메모리 장치(200)에 데이터를 쓰거나 또는 메모리 장치(200)에 저장된 데이터를 읽을 수 있다.
호스트(100)는 부팅이나 특정 상황에서 메모리 장치(200)에 대한 트레이닝(Training)을 수행할 수 있다. 본 발명에서 사용되는 용어 '트레이닝'은 최적의 신뢰성을 제공하기 위한 메모리 채널의 레이턴시(latency) 또는 신호 레벨을 탐색하는 동작을 의미한다. 트레이닝을 통해서 호스트(100)는 메모리 장치(200)와의 데이터나 신호 교환의 신뢰성을 높일 수 있다. 예를 들면, 호스트(100)는 트레이닝 데이터(Training Data: TD)를 다양한 조건에서 메모리 장치(200)에 기입하거나 독출하여 최적의 클록 타이밍이나 레퍼런스 레벨을 결정할 수 있다.
특히, 본 발명의 호스트(100)는 트레이닝을 수행하기 위한 트레이닝 코드(Training Code: 이하, TC)를 메모리 장치(200)에 로드할 수 있다. 트레이닝 코드(TC)는 실질적으로 트레이닝을 수행하기 위한 실행 코드에 해당한다. 만일, 트레이닝 코드에 오류가 발생하면, 제반 트레이닝 동작은 실패(Failure)하게 될 것이다. 따라서, 데이터나 신호의 신뢰성을 확보하기 위한 트레이닝 코드(TC)의 안정성 확보가 필요하다.
메모리 장치(200)는 전자 기기의 메인 메모리로서 구동된다. 메모리 장치(200)에는 전자 기기의 부팅시에 운영 체제(OS)나 기본 응용 프로그램들이 로드될 것이다.
예를 들면, 호스트(100)의 부팅시에 비휘발성 메모리(미도시)에 저장된 OS 이미지가 부팅 시퀀스에 의거하여 메모리 장치(200)에 로드될 수 있다. 운영 체제에 의해서 호스트(100)의 제반 입출력 동작들이 지원될 수 있다.
마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스제공을 위해서 응용 프로그램들이 메모리 장치(200)에 로드될 수 있다. 메모리 장치(200)는 이뿐 아니라, 카메라와 같은 이미지 센서로부터 제공되는 영상 데이터를 저장하는 버퍼 메모리로 사용될 수도 있을 것이다.
메모리 장치(200)는 바이트 단위 액세스(Byte Access)가 가능한 다이나믹 랜덤 액세스 메모리(DRAM)일 수 있다. 메모리 장치(200)는 덮어쓰기가 가능한 비휘발성 메모리 장치로 제공될 수도 있다.
예를 들면, 메모리 장치(200)는 PRAM, MRAM, ReRAM, FRAM, NOR 플래시와 같은 비휘발성 램으로 구성될 수 있다. 메모리 장치(200)에는 전자 기기의 구동시에 운영 체제(OS), 구동중인 응용 프로그램(Application Program), 업데이트되는 데이터등이 저장된다. 메모리 장치(200)는 멀티-칩이 적층되는 멀티칩 패키지 또는 모듈 형태로 제공될 수 있을 것이다. 하지만, 메모리 장치(200)의 구성 방식은 여기의 게시에 국한되지 않는다.
채널(300)은 호스트(100)와 메모리 장치(200)상에 데이터나 신호의 전송 경로를 제공할 수 있다. 도 1에서는 단수로 도시돼 있으나, 복수인 경우도 포함한다. 채널(300)이 복수인 경우, 채널 인터리빙(Channel Interleaving) 방식에 따라 메모리 장치(200)에 대해 제어할 수 있고, 복수의 채널 각각 독립적으로 메모리 장치(200)와 호스트(100)가 데이터를 전송할 수 있다.
도 2는 몇몇 실시 예에 따른 전자 기기의 호스트의 구조를 예시적으로 도시한 블록도이다.
도 2를 참조하면, 시스템 온 칩(SoC)은 CPU(110), 메모리 컨트롤러(120), GPU(130), 사용자 인터페이스 컨트롤러(140), 비휘발성 메모리 인터페이스(150), 가속기(160) 등을 포함할 수 있다.
시스템 온 칩(SoC)의 구성 요소들은 도시된 구성 요소들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 시스템 온 칩(SoC)은 영상 데이터를 처리하기 위한 하드웨어 코덱, 보안 블록 등을 더 포함할 수 있다.
CPU(110)는 호스트(100)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행한다. CPU(110)는 메모리 장치(200)에 로드되는 운영 체제(OS)를 실행할 것이다. CPU(110)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 것이다. 특히, CPU(110)는 메모리 장치(200)에 로드되는 트레이닝 코드(TC)를 패치하여 실행할 것이다.
CPU(110)는 트레이닝 코드(TC)의 실행에 따라 요청되는 메모리 장치(200)의 트레이닝 동작을 수행하도록 메모리 컨트롤러(120)를 제어할 것이다. CPU(110)는 동종 멀티-코어 프로세서(Homogeneous Multi-Core Processor) 또는 이종 멀티-코어 프로세서(Heterogeneous Multi-Core Processor)로 제공될 수 있다.
메모리 컨트롤러(120)는 메모리 장치(200)를 제어하기 위해 호스트에 포함될 수 있다. 호스트는 메모리 장치(200)에 저장된 데이터를 읽기 위해 메모리 컨트롤러(120)에 읽기 요청을 전달할 수 있다. 메모리 컨트롤러(120)는 호스트가 요청한 데이터를 읽기 위해서 메모리 장치(200)에 접근할 것이다. 호스트는 적어도 하나의 채널을 통하여 메모리 장치(200)에 연결될 수 있다.
따라서 메모리 컨트롤러(120)는 메모리 장치(200)와 시스템 온 칩(SoC) 사이에서 인터페이싱을 제공할 수 있다. 메모리 컨트롤러(120)는 CPU(110)나 다른 기능 블록(IP)의 요청에 따라 메모리 장치(200)를 액세스할 것이다.
예를 들면, 메모리 컨트롤러(120)는 CPU(110)의 쓰기 요청에 따라 데이터를 메모리 장치(200)에 기입할 수 있다. 또는, 메모리 컨트롤러(120)는 메모리 장치(200)로부터 데이터를 읽어내어 CPU(100)나 비휘발성 메모리 인터페이스(150)에 전달할 수 있다. 메모리 컨트롤러(120)는 트레이닝 동작시, CPU(110)의 요청에 따라 채널 인터리빙을 해제하거나 채널 인터리빙의 단위를 조정할 수 있다.
또한 메모리 컨트롤러(120)는 호스트의 다양한 마스터 기능 블록(Master IP)의 요청에 따라 메모리 장치(200)에 접근할 수 있다. 메모리 컨트롤러(120)는 예를 들면, 메모리 장치(200)로의 접근 요청에 따라 데이터(DQ)를 스트로브 신호(DQS)에 동기하여 전달할 수 있다. 또는, 스트로브 신호(DQS)에 동기되어 메모리 장치(200)로부터 출력되는 데이터(DQ)를 수신할 수 있다.
GPU(130)는 CPU(110)의 요청에 따라 다양한 그래픽 연산을 수행한다. 즉, GPU(130)는 처리 요청된 데이터를 디스플레이(미도시)에 적합한 데이터로 변환할 수 있다. GPU(130)는 유사한 연산을 반복해서 처리하는 병렬 처리에 유리한 연산 구조를 가질 수 있다.
사용자 인터페이스 컨트롤러(140)는 사용자 인터페이스 장치들(예를 들면, 키보드나 터치 패널, 또는 디스플레이)로부터의 사용자 입력 및 출력을 제어한다. 예를 들면, 사용자 인터페이스 컨트롤러(140)는 CPU(110)의 제어에 따라 디스플레이(미도시)에 데이터를 입력하기 위한 키보드 화면 등을 표시할 수 있다. 또는, 사용자 인터페이스 컨트롤러(140)는 사용자가 요청한 데이터를 표시하도록 디스플레이를 제어할 수 있다. 사용자 인터페이스 컨트롤러(140)는 키보드, 마우스, 터치 패널과 같은 사용자 입력 수단으로부터의 제공되는 데이터를 사용자 입력 데이터로 디코딩할 수 있다.
비휘발성 메모리 인터페이스(150)는 CPU(110)의 요청에 따라 비휘발성 메모리(180)를 액세스한다. 즉, 비휘발성 메모리 인터페이스(150)는 시스템 온 칩(SoC)과 비휘발성 메모리(180) 사이의 인터페이스를 제공한다. 예를 들면, CPU(110)에 의해서 처리된 데이터가 비휘발성 메모리 인터페이스(150)를 통해 비휘발성 메모리(180)에 저장된다. 더불어, 비휘발성 메모리(180)에 저장된 데이터는 비휘발성 메모리 인터페이스(150)를 통해 CPU(110)에 제공될 수 있다.
가속기(160)는 멀티미디어 또는 멀티미디어 데이터의 처리 속도를 향상하기 위한 별도의 기능 블록으로 제공된다. 예를 들면, 가속기(160)는 텍스트(Text), 오디오(Audio), 정지 영상들(Still images), 애니메이션(Animation), 비디오(Video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 기능 블록(IP)으로 제공될 수 있다.
시스템 인터커넥터(170)는 시스템 온 칩(SoC)의 내부에서 온칩 네트워크를 제공하기 위한 시스템 버스(System Bus)이다. 시스템 인터커넥터(170)는 예를 들면, 데이터 버스(Data bus), 어드레스 버스(Address bus) 및 컨트롤 버스(Control bus)를 포함할 것이다. 데이터 버스(Data bus)는 데이터가 이동하는 경로이다. 데이터 버스(Data bus)는 주로, 메모리 장치(200)나 비휘발성 메모리(180)로의 메모리 접근 경로를 제공할 것이다. 어드레스 버스(Address bus)는 기능 블록들(IPs) 간의 어드레스 교환 경로를 제공한다. 컨트롤 버스(Control bus)는 기능 블록들(IPs) 간의 제어 신호를 전달하는 경로를 제공한다. 하지만, 시스템 인터커넥터(170)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
비휘발성 메모리(180)는 호스트의 저장 매체(Storage Medium)로서 제공된다. 비휘발성 메모리(180)는 펌웨어(FW), 응용 프로그램들, 운영 체제 이미지(OS Image) 및 각종 데이터를 저장할 수 있다. 특히, 비휘발성 메모리(180)의 특정 영역에는 메모리 장치(200)를 트레이닝하기 위한 트레이닝 코드(TC)가 저장될 수 있다. 하지만, 트레이닝 코드(TC)는 비휘발성 메모리(180)가 아닌 다른 비휘발성 메모리에 저장될 수도 있고 뿐만 아니라 몇몇 실시예에 따른 펌웨어(FW)에 저장될 수 있다. 상기 펌웨어(FW)는 다시 비휘발성 메모리(180)에 저장될 수 있다. 비휘발성 메모리(180)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 비휘발성 메모리(180)는 대용량의 저장능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다.
또는, 비휘발성 메모리(180)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 비휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다. 본 발명의 다른 실시 예에서는 비휘발성 메모리(180)는 시스템 온 칩(SoC)의 내부에 구비되는 내장 메모리일 수 있다.
도 3은 몇몇 실시 예에 따른 메모리 장치 트레이닝 방법을 나타낸 흐름도이다.
도 2 및 도 3을 참조하여, 몇몇 실시예에 따른 메모리 장치(200)의 트레이닝 방법이 설명될 수 있다.
먼저 메모리 장치의 전압과 온도에 따라 달리하는 트레이닝 파라미터를 각각의 전자 기기의 비휘발성 메모리에 저장한다(S110). 상기 단계(S110)에서 몇몇 실시예에 따른 비휘발성 메모리에 펌웨어(FW)가 저장될 수 있다.
각각의 전자 기기마다 메모리 장치(200)의 전압 및 온도를 달리하여 저장된 트레이닝 파라미터가 전자 기기에 저장될 수 있다. 몇몇 실시예에 따른 펌웨어(FW)는 상기 전압, 온도 및 트레이닝 파라미터를 저장할 수 있다. 실시예에 따라 트레이닝 데이터가 저장된 펌웨어(FW)는 비휘발성 메모리에 저장될 수 있다.
펌웨어(FW)는 펌웨어(FW)에 저장된 전압, 온도 및 전압, 온도에 대응하는 트레이닝 파라미터를 서버에 전송한다(S120). 비휘발성 메모리(180)에 저장된 펌웨어(FW)는 전압, 온도 및 트레이닝 파라미터를 저장하고, 저장된 데이터를 서버로 전송할 수 있다. 앞서 언급한 바, 비휘발성 메모리 인터페이스(150), 시스템 인터커넥터(170)를 통해, 서버에 전송될 수 있으나 실시예에 따라 그 전송 방식이 달라질 수 있다.
서버는 상기 단계(S120)에서 전송된 전압 및 온도에 대한 트레이닝 파라미터에 대해 통계예측모델링을 수행한다(S130). 메모리 장치(200)에 대해서 실시예에 따라 복수의 트레이닝 파라미터가 존재할 수 있다. 서버는 각각의 트레이닝 파라미터에 대해 전압, 온도를 독립변수로 하여 개별적으로 통계예측모델링을 수행할 수 있다.
펌웨어(FW)는 통계예측모델을 각각의 전자 기기의 비휘발성 메모리(180)에 저장한다(S140). 몇몇 실시예에 따른 트레이닝 방법은 생성된 통계예측모델을 펌웨어(FW)에 저장하고, 통계예측모델을 저장한 펌웨어를 비휘발성 메모리(180)에 저장하는 것을 포함할 수 있다. 실시예에 따라 펌웨어(FW)에 저장되지 않고 직접 비휘발성 메모리(180)에 저장될 수 있다.
펌웨어(FW)는 각각의 메모리 장치(200)의 특징에 맞게 저장된 통계예측모델을 트레이닝을 수행한다(S150). 몇몇 실시예에 따른 트레이닝 방법에서 펌웨어(FW)는 저장된 통계예측모델에 대하여 조정하는 트레이닝을 수행할 수 있다. 트레이닝에 대해서는 도 6에서 후술한다.
메모리 컨트롤러(120)는 조정된 통계예측모델을 사용하여 메모리 장치(200)에 메모리 장치(200)의 전압 및 온도에 대응하는 트레이닝 파라미터를 맵핑을 수행한다(S160). 몇몇 실시예에 따른 맵핑은 전자 기기가 부트 업되는 경우 및 전자 기기가 구동 중 주기적으로 메모리 장치의 전압 및 온도가 센싱되는 경우를 포함할 수 있다.
도 4는 몇몇 실시 예에 따른 통계예측모델링 전 데이터 수집을 예시적으로 설명하기 위한 도면이다.
도 3 및 도 4를 참조하면, 도 4는 도 3의 S110, S120 단계를 예시적으로 설명한다. S110 단계에서 제1 전자기기(Device1)부터 제M 전자기기(DeviceM)까지 총 M개의 전자 기기가 제공될 수 있다. 제공의 방식은 생산을 포함한 다양한 형태로 이뤄질 수 있다.
각각의 제1 전자기기(Device1) 부터 제M 전자기기(DeviceM) 중 하나인 임의의 전자기기 제m 전자기기(Devicem, 1≤m≤M)가 제공될 수 있다.
제1 전자 기기(Device1)는 제1 메모리 장치(200_1), 제1 메모리 컨트롤러(120_1), 제1 비휘발성 메모리(180_1)를 포함하며, 제1 비휘발성 메모리(180_1)는 제1 펌웨어(FW1 1)를 저장하고, 제1 펌웨어(FW1)는 제1 메모리 장치(200_1)의 제1 전압(V1), 제1 온도(T1)와 제1 전압(V1), 제1 온도(T1)에 대응하는 제1 트레이닝 파라미터(TP1 1)를 제1 펌웨어(FW1)에 저장할 수 있다.
제1 메모리 컨트롤러(120_1)는 제1 메모리 장치(200_1)의 제1 전압(V1), 제1 온도(T1)와 제1 트레이닝 파라미터(TP1 1)를 제1 비휘발성 메모리(180_1)에 전송할 수 있고, 전송 받은 데이터는 제1 펌웨어(FW1)에 저장될 수 있으며, 제1 펌웨어(FW1)는 서버(500)로 제1 전압(V1), 제1 온도(T1)와 제1 트레이닝 파라미터(TP1 1)를 전송할 수 있다.
제M 전자 기기(DeviceM)는 제M 메모리 장치(200_M), 제M 메모리 컨트롤러(120_M), 제M 비휘발성 메모리(180_M)를 포함하며, 제M 비휘발성 메모리(180_M)는 제1 펌웨어(FW1)를 저장하고, 제1 펌웨어(FW1)는 제M 메모리 장치(200_M)의 제M 전압(VM), 제M 온도(TM)와 제M 전압(VM), 제M 온도(TM)에 대응하는 제M 트레이닝 파라미터(TP1 M)를 제1 펌웨어(FW1)에 저장할 수 있다.
제M 메모리 컨트롤러(120_M)는 제M 메모리 장치(200_M)의 제M 전압(VM), 제M 온도(TM)와 제M 트레이닝 파라미터(TP1 M)를 제M 비휘발성 메모리에 전송할 수 있고, 전송 받은 데이터는 제1 펌웨어(FW1)에 저장될 수 있으며, 제1 펌웨어(FW1)는 서버(500)로 제M 전압(VM), 제M 온도(TM)와 트레이닝 파라미터(TP1 M)를 전송할 수 있다.
제m 전자 기기(Devicem)는 제m 메모리 장치(200_m), 제m 메모리 컨트롤러(120_m), 제m 비휘발성 메모리(180_m)를 포함하며, 제m 비휘발성 메모리(180_m)는 제1 펌웨어(FW1)를 저장하고, 제1 펌웨어(FW1)는 제m 메모리 장치(200_m)의 제m 전압(Vm), 제m 온도(Tm)와 제m 전압(Vm), 제m 온도(Tm)에 대응하는 트레이닝 파라미터(TP1 m)를 제1 펌웨어(FW1)에 저장할 수 있다.
제m 메모리 컨트롤러(120_m)는 제m 메모리 장치(200_m)의 제m 전압(Vm), 제m 온도(Tm)와 제m 트레이닝 파라미터(TP1 m)를 비휘발성 메모리에 전송할 수 있고, 전송 받은 데이터는 제1 펌웨어(FW1)에 저장될 수 있으며, 제1 펌웨어(FW1)는 서버(500)로 제m 전압(Vm), 제m 온도(Tm)와 제m 트레이닝 파라미터(TP1 m)를 전송할 수 있다.
제1 전압(V1), 제m 전압(Vm)과 제M 전압(VM)은 서로 같거나 다를 수 있다. 제1 온도(T1), 제m 온도(Tm)와 제M 온도(TM)는 서로 같거나 다를 수 있다. 도 4의 트레이닝 파라미터(TP1)는 메모리 장치(200)의 복수의 트레이닝 파라미터(TP) 중 하나로서 일 예시로 표현되고 있다.
도 5은 몇몇 실시예에 따른 통계예측모델링을 예시적으로 설명하기 위한 도면이다.
도 4 및 도 5를 참조하면, 서버(500)는 트레이닝 파라미터(TP1)에 대해 M개의 데이터 그룹(V, T, TP1)을 저장할 수 있다. V-T 그래프 영역에 M개의 점들이 존재할 수 있고, V-T영역에서 각각의 점들은 겹칠 수 있다.
일 예시로, 도 5처럼 (Vm, Tm)와 (Vn, Tn)이 V-T영역에서 동일할 수 있으나, TP1 m와 TP1 n 가 같거나 상이한 경우 모두 포함될 수 있다. 서버(500)는 이러한 M개의 데이터 그룹(V, T, TP1)을 대상으로 통계예측모델링을 수행할 수 있다.
통계예측모델링 기법에는 Akaike Information Criterion (AIC), AIC correction (AICc), Bayesian Information Criterion, Maximum Likelihood Estimation (MLE), Bayesian 방법일 수 있다. 하지만 해당 실시예의 통계예측모델링은 위의 모델링 방법에 한정되지 않는다. 위 방법들은 주어진 데이터로부터 후보 모델의 우도함수값을 이용하여 후보 모델 중 가장 적합한 모델을 선택하는 방법이며, 방법에 따라 데이터 수 혹은 파라미터의 수를 고려하여 상기 제시된 모델과 다른 모델이 선정될 수 있다.
M개의 데이터 그룹(V, T, TP1)에 대한 통계예측모델링을 실시한 후, 서버(500)는 전압-온도(V-T), 트레이닝 파라미터(TP1)와 관련된 통계예측모델(
Figure pat00001
TP1)
Figure pat00002
을 제공할 수 있다.
도 6 및 도 7은 도 3의 트레이닝의 과정을 설명하기 위한 도면들이다. 도 6 및 도 7은 도 3의 S150을 세부적으로 설명하기 위한 도면들이다.
도 2, 도 6 및 도 7를 참조하면, 메모리 컨트롤러(120)는 제2 펌웨어(FW2)에 저장된 통계예측모델(
Figure pat00003
TP1)과 트레이닝 코드(TC1)를 메모리 장치(200)에 로드한다(S151).
도 7을 참조하면, 제m 전자 기기(Devicem)에 포함된 제m 비휘발성 메모리(180_m)에 저장된 제2 펌웨어(FW2)에 도 5에서 모델링된 통계예측모델(
Figure pat00004
TP1)과 트레이닝 파라미터(TP1)에 관한 트레이닝 코드(TC1)가 저장될 수 있다. 제2 펌웨어(FW2)는 제m 메모리 컨트롤러(120_m)에 이를 전송하고, 제m 메모리 컨트롤러(120_m)는 통계예측모델과 트레이닝 코드(TC1)를 제m 메모리 장치(200_m)에 업로드할 수 있다.
CPU(110)는 로드된 통계예측모델(
Figure pat00005
TP1)에 대하여 트레이닝을 수행한다(S152). 제m CPU(110_m)는 로드된 통계예측모델(
Figure pat00006
TP1)에 대하여 트레이닝 코드(TC1)를 이용하여 제m 메모리 컨트롤러(120_m)를 통해 제m 메모리 장치(200_m)가 트레이닝을 수행할 수 있도록 한다. S152 단계의 트레이닝은 제m 전자 기기(Devicem)의 제m 메모리 장치(200_m)의 특성을 반영할 수 있다. 트레이닝의 대상이 되는 통계예측모델(
Figure pat00007
TP1)과 이에 대응하는 트레이닝 파라미터(TP1)는 복수로 존재할 수 있다.
트레이닝 파라미터(TP)는 커맨드 버스 트레이닝(Command Bus Training), 라이트 레벨링(Write leveling), 라이트 트레이닝(Write Training), 리드 트레이닝(Read Training), 기준 전압 트레이닝(Vref Training)이 있으며, 실시예에 따른 트레이닝 파라미터는 이에 한정되지 않는다. 이 외에도 메모리 장치(200)에 대해 트레이닝이 요구되는 파라미터는 실시예에 따른 파라미터에 포함될 수 있다.
몇몇 실시예에 따른 트레이닝 방법에서 S152는 트레이닝 중에서 소프트웨어 트레이닝(S/W Training)으로 수행될 수 있다. 소프트웨어 트레이닝(S/W training)은 하드웨어 트레이닝(H/W training)에 의해서 결정된 파라미터를 보다 미세하게 조정하기 위한 파인 트레이닝(Fine training)에 해당한다. 소프트웨어 트레이닝(S/W training)은 데이터의 타이밍을 최적의 신뢰성을 제공하기 위한 값으로 하드웨어 트레이닝(H/W training)에 의해서 설정된 파라미터를 재조정하기 위한 절차이다. 다만 트레이닝의 목적 및 그 효율을 고려할 때 다른 트레이닝을 수행해야 하는 경우, S152에서의 트레이닝을 소프트웨어 트레이닝(S/W training)로 한정하지 않는다.
제2 펌웨어(FW2)는 트레이닝이 수행된 조정 통계예측모델(
Figure pat00008
TP'1)을 비휘발성 메모리(180)에 저장한다(S153).
몇몇 실시예에 따른 제2 펌웨어(FW2)는 프로덕트 펌웨어가 사용할 수 있도록, 조정 통계예측모델(
Figure pat00009
TP'1)을 약속된 위치에 저장할 수 있다.
도 8은 도 3의 맵핑 단계에서의 일 실시예를 설명하기 위한 도면이다.
도 8을 참조하여, 도 3에서의 S160의 일 실시예를 설명할 수 있다. 제m 전자 기기(Device-m)가 부트 업(Boot-up) 될 경우, 제m 메모리 장치(200_m)의 부트 업 전압(V)과 부트 업 온도가 제2 펌웨어(FW2)에 전송되고, 이에 대응하는 트레이닝 파라미터(TP'1)를 제m 메모리 컨트롤러(120_m)에 전송될 수 있다.
제m 메모리 컨트롤러(120-_m)는 전송받은 트레이닝 파라미터(TP'1)를 제m 메모리 장치(200_m)에 맵핑될 수 있다. 트레이닝 코드를 이용하여 트레이닝을 수행하지 않고, 상기 맵핑은 트레이닝과 같은 조정이 가능할 수 있다.
도 9는 도 3의 맵핑 단계에서의 일 실시예를 설명하기 위한 도면이다.
도 9을 참조하여, 도 3에서의 S160의 일 실시예를 설명할 수 있다. 센서(400)는 제m 전자 기기(Device-m)가 구동되는 동안 주기적으로 제m 메모리 장치(200_m)의 전압(V) 및 온도(T)를 센싱할 수 있다. 센싱 시, 제m 메모리 장치(200_m)의 전압(V) 및 온도(T)에 변화가 있다면, 센서(400)는 변화된 전압(V) 및 온도(T)를 제2 펌웨어(FW2)에 전송할 수 있다.
전송된 이후, 동작은 도 8과 동일하다.
도 10은 도 8의 실시예에 따른 효과를 설명하기 위한 타이밍도이다.
도 3 및 도 10을 참조하면, 일반적인 종래의 트레이닝(Conventional Training)에서 전자 기기의 부트 업(B1, B2, B3)이 존재할 수 있다. 복수의 부트 업(B1, B2, B3)이후, 트레이닝(Tr)을 수행한다. 상기 전자 기기의 전원 turn-off는 트레이닝(Tr) 이후 다음 부트 업 사이에 발생한다고 볼 수 있다. 상기 트레이닝(Tr)은 트레이닝 코드를 이용하여 트레이닝 파라미터를 조정하는 것을 포함할 수 있다. 따라서 제1 부트 업(B1), 제2 부트 업(B2), 제3 부트 업(B3) 이후 트레이닝(Tr)에 트레이닝 파라미터를 조정하는데 소요되는 시간은 동일할 수 있다.
몇몇 실시예에 따른 트레이닝 방법(Example Embodiments)에 있어서, 복수의 부트 업(B'1, B'2, B'3)가 존재할 수 있다. 실시예의 제1 부트 업(B'1) 이후에 트레이닝(Tr')이 존재하고, 그 이후는 실시예의 제2 부트 업(B'2)이후에 맵핑(M)이 발생되고, 실시예의 제3 부트 업(B'3)이후에 맵핑(M)이 발생될 수 있다.
실시예의 제1 부트 업(B'1) 이후 트레이닝(Tr')은 도 3의 S140 내지 S160을 포함하는 방법일 수 있고, 맵핑(M)은 도 3에서 S160만을 포함할 수 있다. 몇몇 실시예에 따른 트레이닝 방법은 도 3의 S140, S150의 단계를 1회 수행한 이후, 맵핑(M)만으로 전압 및 온도 변화에 따라 트레이닝 파라미터를 조정할 수 있다. 따라서 제2 부트 업(B'2) 이후, 트레이닝 파라미터를 조정하는 시간이 단축될 수 있다.
도 11은 도 9의 실시예에 따른 효과를 설명하기 위한 타이밍도이다.
도 3 및 도 11을 참조하면, 일반적인 종래의 트레이닝(Conventional Training)에서 복수의 전자 기기의 부트 업(B1, B2)가 존재할 수 있다. 제2 부트 업(B2) 이후, 제1 전압온도 변화(C1), 제2 전압온도 변화(C2)가 존재할 수 있다. 그리고 각각의 제2 및 제3 전압온도 변화(C1, C2) 이후 메모리 장치에 대한 제1 전압온도 센싱(S1), 제2 전압온도 센싱(S2)이 수행될 수 있다. 전압온도 센싱(S1, S2)는 주기적으로 수행될 수 있으며 그 주기는 제한되지 않을 수 있다.
복수의 부트 업(B1, B2)와 복수의 메모리 장치에 대한 전압온도 센싱(S1, S2)이후 트레이닝(Tr)이 수행되고, 상기 트레이닝(Tr)은 트레이닝 코드를 이용하여 트레이닝 파라미터를 조정하는 것을 포함할 수 있다. 따라서 제1 부트 업(B1), 제2 부트 업(B2), 제1 전압온도 센싱(S1) 및 제2 전압온도 센싱(S2) 이후 트레이닝(Tr)에 있어서 트레이닝 파라미터를 조정하는데 소요되는 시간은 동일할 수 있다.
몇몇 실시예에 따른 트레이닝 방법(Example Embodiments)에 있어서, 복수의 전자 기기의 부트 업(B'1, B'2)가 존재할 수 있다. 제2 부트 업(B'2) 이후, 제1 전압온도 변화(C'1), 제2 전압온도 변화(C'2)가 존재할 수 있다. 그리고 각각의 제2 및 제3 전압온도 변화(C'1, C'2) 이후 메모리 장치에 대한 제1 전압온도 센싱(S'1), 제2 전압온도 센싱(S'2)이 수행 될 수 있다. 전압온도 센싱(S'1, S'2)은 주기적으로 수행될 수 있으며 주기는 제한되지 않을 수 있다.
도 10과 마찬가지로, 실시예의 제1 부트 업(B'1) 이후 트레이닝(Tr')은 도 3의 S140 내지 S160을 포함하는 방법일 수 있고, 맵핑(M)은 도 3에서 S160만을 포함할 수 있다. 몇몇 실시예에 따른 트레이닝 방법은 도 3의 S140, S150의 단계를 수행한 이후, 맵핑(M)만으로 전압 및 온도 변화에 따라 트레이닝 파라미터를 조정할 수 있다. 따라서 제2 부트 업(B'2) 이후, 트레이닝 파라미터를 조정하는 시간이 단축될 수 있다.
100: 호스트 110: CPU
120: 메모리 컨트롤러 130: GPU
140: 사용자 인터페이스 컨트롤러 150: 비휘발성 메모리 인터페이스
160: 가속기 170: 시스템 인터커넥터
180: 비휘발성 메모리 200: 메모리 장치
300: 채널 400: 센서
500: 서버

Claims (10)

  1. 데이터가 저장되는 메모리 장치;
    상기 메모리 장치에 대한 제1 트레이닝 파라미터에 대응하고 상기 메모리 장치의 전압을 달리하여 모델링된 제1 통계예측모델과, 상기 메모리 장치에 대한 제2 트레이닝 파라미터에 대응하고 상기 메모리 장치의 온도를 달리하여 모델링된 제2 통계예측모델이 저장된 펌웨어를 포함하는 비휘발성 저장 장치; 및
    상기 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되,
    상기 펌웨어는,
    상기 제1 통계예측모델을 상기 메모리 장치의 전압 특성을 반영하는 제1 조정 통계예측모델로 조정하는 제1 트레이닝을 수행하고,
    상기 제2 통계예측모델을 상기 메모리 장치의 온도 특성을 반영하는 제2 조정 통계예측모델로 조정하는 제2 트레이닝을 수행하고,
    상기 메모리 컨트롤러는,
    상기 제1 조정 통계예측모델의 제1 조정 트레이닝 파라미터와, 상기 제2 조정 통계예측모델의 제2 조정 트레이닝 파라미터를 상기 메모리 장치에 맵핑하는 전자 기기.
  2. 제1항에 있어서,
    상기 메모리 장치는 디램(DRAM)이고,
    상기 메모리 컨트롤러는 디램 컨트롤러인 전자 기기.
  3. 제2항에 있어서,
    상기 디램 컨트롤러는 상기 전자 기기가 부트 업(Boot up)이 수행된 후 상기 제1 및 제2 조정 통계예측모델을 이용하여 상기 디램의 부트 업 전압, 부트 업 온도에 대응하는 상기 제1 및 제2 조정 트레이닝 파라미터를 상기 디램에 맵핑하는 전자 기기.
  4. 제2항에 있어서,
    상기 전자 기기가 구동되는 동안 주기적으로 상기 디램의 동작 전압 및 동작 온도를 센싱하는 센서를 더 포함하는 전자 기기.
  5. 제4항에 있어서,
    상기 디램 컨트롤러는 상기 제1 및 제2 조정 통계예측모델을 이용하여 상기 센서가 측정한 상기 동작 전압 및 동작 온도에 대응하는 상기 제1 및 제2 조정 트레이닝 파라미터를 디램에 맵핑하는 전자 기기.
  6. 통계예측모델이 저장된 저장부와 메모리 장치를 제공하고,
    제1 부트 업(Boot up)을 수행하고,
    제2 부트 업을 수행하는 것을 포함하되,
    상기 제1 부트 업이 수행된 후,
    상기 메모리 장치의 트레이닝 파라미터에 대응하는 상기 저장부에 저장된 통계예측모델을, 상기 메모리 장치의 특성을 반영하고 조정 트레이닝 파라미터에 대응하는 조정 통계예측모델로 조정하는 트레이닝이 수행되고,
    상기 제2 부트 업이 수행된 후, 상기 트레이닝이 수행되지 않는 메모리 장치 트레이닝 방법.
  7. 제6항에 있어서,
    상기 통계예측모델을 상기 조정 통계예측모델로 조정하는 상기 트레이닝이 수행되는 것은,
    상기 통계예측모델을 상기 저장부로부터 가져오고,
    상기 메모리 장치의 전압과 온도를 달리하며 상기 메모리 장치에 대한 미세 트레이닝(fine training)을 수행하고,
    상기 트레이닝이 수행된 상기 트레이닝 파라미터에 관한 조정 통계예측모델을 상기 저장부에 저장하는 것을 포함하는 메모리 장치 트레이닝 방법.
  8. 제7항에 있어서,
    상기 트레이닝이 수행된 후, 상기 메모리 장치의 전압 및 온도에 대응하는 상기 조정 트레이닝 파라미터를 상기 메모리 장치에 맵핑하고,
    상기 제2 부트 업이 수행된 후, 상기 메모리 장치의 전압 및 온도에 대응하는 상기 조정 트레이닝 파라미터를 상기 메모리 장치에 맵핑하는 것을 더 포함하는 메모리 장치 트레이닝 방법.
  9. 제1 메모리 장치와, 상기 제1 메모리 장치의 제1 트레이닝 파라미터에 대응하는 제1 통계예측모델이 저장된 제1 펌웨어와, 상기 제1 메모리 장치를 제어하는 제1 메모리 컨트롤러를 포함하는 제1 전자 기기; 및
    제2 메모리 장치와, 상기 제2 메모리 장치의 상기 제1 트레이닝 파라미터에 대응하는 상기 제1 통계예측모델이 저장된 제2 펌웨어와, 상기 제2 메모리 장치를 제어하는 제2 메모리 컨트롤러를 포함하고 상기 제1 전자 기기와 분리된 제2 전자 기기를 포함하되,
    상기 제1 펌웨어는,
    상기 제1 통계예측모델을 상기 제1 메모리 장치의 특성을 반영하는 제1 조정 통계예측모델로 조정하는 제1 트레이닝을 수행하고,
    상기 제2 펌웨어는,
    상기 제1 통계예측모델을 상기 제2 메모리 장치의 특성을 반영하는 제2 조정 통계예측모델로 조정하는 제2 트레이닝을 수행하고,
    상기 제1 메모리 컨트롤러는,
    상기 제1 조정 통계예측모델의 제1 조정 트레이닝 파라미터를 상기 제1 메모리 장치에 맵핑하고,
    상기 제2 메모리 컨트롤러는,
    상기 제2 조정 통계예측모델의 제2 조정 트레이닝 파라미터를 상기 제2 메모리 장치에 맵핑하는 전자 시스템.
  10. 제9항에 있어서,
    상기 제2 조정 통계예측모델은 상기 제1 조정 통계예측모델과 다른 전자 시스템.













KR1020190107008A 2019-08-30 2019-08-30 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템 KR20210026353A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190107008A KR20210026353A (ko) 2019-08-30 2019-08-30 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템
US16/906,023 US11461113B2 (en) 2019-08-30 2020-06-19 Training method of memory device and electronic device and electronic system including the same
CN202010883429.5A CN112447259A (zh) 2019-08-30 2020-08-28 存储器设备的训练方法、电子设备和包括其的电子系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190107008A KR20210026353A (ko) 2019-08-30 2019-08-30 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템

Publications (1)

Publication Number Publication Date
KR20210026353A true KR20210026353A (ko) 2021-03-10

Family

ID=74679779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190107008A KR20210026353A (ko) 2019-08-30 2019-08-30 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템

Country Status (3)

Country Link
US (1) US11461113B2 (ko)
KR (1) KR20210026353A (ko)
CN (1) CN112447259A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722242A (zh) * 2021-08-31 2021-11-30 龙芯中科技术股份有限公司 内存配置方法、装置、电子设备及可读介质
WO2023080624A1 (ko) * 2021-11-04 2023-05-11 삼성전자 주식회사 휘발성 메모리의 동작을 제어하는 전자 장치와 이의 동작 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230133234A1 (en) * 2021-11-04 2023-05-04 Samsung Electronics Co., Ltd. Electronic device controlling an operation of a volatile memory and method for operating the same
CN117076081A (zh) * 2023-08-22 2023-11-17 上海合芯数字科技有限公司 存储器训练方法、设备、存储介质及程序产品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007028870A1 (de) * 2007-06-22 2009-01-02 Qimonda Ag Speicherbauteil, Datenverarbeitungssystem, Verfahren zum Einstellen von Betriebsparametern eines Speichers und Computerprogramms
KR100910852B1 (ko) 2007-12-26 2009-08-06 주식회사 하이닉스반도체 반도체 메모리 소자
US20120284576A1 (en) 2011-05-06 2012-11-08 Housty Oswin E Hardware stimulus engine for memory receive and transmit signals
KR101603718B1 (ko) 2015-04-30 2016-03-17 대한민국 북극해빙농도 통계예측 방법 및 시스템
KR102519663B1 (ko) * 2015-07-31 2023-04-07 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 시스템 및 그것의 동작 방법
KR102389820B1 (ko) 2015-09-22 2022-04-22 삼성전자주식회사 트레이닝 동작을 제어하는 메모리 컨트롤러, 메모리 시스템 및 그의 동작방법
KR20180007374A (ko) * 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
KR20180083975A (ko) 2017-01-13 2018-07-24 삼성전자주식회사 트레이닝 동작을 수행하는 메모리 시스템
KR102273191B1 (ko) 2017-09-08 2021-07-06 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
KR102447493B1 (ko) 2017-12-04 2022-09-26 삼성전자주식회사 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법
KR102407439B1 (ko) 2017-12-05 2022-06-10 삼성전자주식회사 메모리 장치의 구동 강도, odt 트레이닝 방법, 이를 수행하는 컴퓨팅 시스템 및 시스템 온 칩

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722242A (zh) * 2021-08-31 2021-11-30 龙芯中科技术股份有限公司 内存配置方法、装置、电子设备及可读介质
CN113722242B (zh) * 2021-08-31 2023-12-08 龙芯中科技术股份有限公司 内存配置方法、装置、电子设备及可读介质
WO2023080624A1 (ko) * 2021-11-04 2023-05-11 삼성전자 주식회사 휘발성 메모리의 동작을 제어하는 전자 장치와 이의 동작 방법

Also Published As

Publication number Publication date
US11461113B2 (en) 2022-10-04
US20210064390A1 (en) 2021-03-04
CN112447259A (zh) 2021-03-05

Similar Documents

Publication Publication Date Title
KR20210026353A (ko) 메모리 장치 트레이닝 방법 및 이를 포함한 전자 기기 및 전자 시스템
US10991446B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
US9996460B2 (en) Storage device, system including storage device and method of operating the same
TWI704457B (zh) 用以存取異質記憶體組件的記憶體虛擬化
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
US11663153B2 (en) Access optimization in aggregated and virtualized solid state drives
US20210382864A1 (en) Key-value storage device and operating method thereof
CN107179996A (zh) 数据存储装置和其操作方法
KR20210019576A (ko) 메모리 액세스 가속화를 위한 예측 페이징
US20140078344A1 (en) Device and method processing continuous shooting image data
KR20100116396A (ko) 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법
US20070067603A1 (en) Nonvolatile memory device and the method of generation of the address translation table
CN110162491B (zh) 存储器控制器及其操作方法、应用处理器和数据处理系统
US9875044B2 (en) Data storage device compensating for initial threshold voltage distribution shift, method of operating the same, and data processing system including the same
US20170212835A1 (en) Computing system with memory management mechanism and method of operation thereof
CN111414133A (zh) 操作存储器控制器和存储器系统的方法以及存储器系统
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110069427A (zh) 存储器控制器以及存储器控制器的操作方法
US11797219B2 (en) Storage device, server device including the storage device and method of operating the storage device
KR20210042192A (ko) 반도체 메모리 장치, 전자 장치, 및 그것의 설정 방법
US12001413B2 (en) Key-value storage device and operating method thereof
US20220308920A1 (en) Task scheduling method, and computing device and application processor using the same
KR20240049864A (ko) 메모리 시스템 및 그 동작 방법
CN116661582A (zh) 片上系统、该片上系统的总线电力门控方法和总线
KR20240011406A (ko) 순차 리드 성능 향상을 위해 리드 대기 시간을 결정하는 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination