KR20210136480A - 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법 - Google Patents

프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법 Download PDF

Info

Publication number
KR20210136480A
KR20210136480A KR1020200054780A KR20200054780A KR20210136480A KR 20210136480 A KR20210136480 A KR 20210136480A KR 1020200054780 A KR1020200054780 A KR 1020200054780A KR 20200054780 A KR20200054780 A KR 20200054780A KR 20210136480 A KR20210136480 A KR 20210136480A
Authority
KR
South Korea
Prior art keywords
memory
module
training
computing system
memory module
Prior art date
Application number
KR1020200054780A
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 KR1020200054780A priority Critical patent/KR20210136480A/ko
Priority to US17/115,924 priority patent/US11620135B2/en
Priority to TW110109551A priority patent/TWI806018B/zh
Priority to CN202110286953.9A priority patent/CN113626264A/zh
Priority to SG10202103077YA priority patent/SG10202103077YA/en
Publication of KR20210136480A publication Critical patent/KR20210136480A/ko

Links

Images

Classifications

    • 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/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • 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/4401Bootstrapping
    • 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
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • 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/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)

Abstract

프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법이 개시된다. 컴퓨팅 시스템은 파워-업 후, 메모리 모듈에서 프로세싱 장치에 의해 복수개의 메모리 장치들에 대한 제1 메모리 트레이닝을 수행하고, 제1 메모리 트레이닝 완료를 나타내는 모듈 레디 신호를 생성하고, 모듈 레디 신호를 호스트 장치로 전송한다. 호스트 장치는 컴퓨팅 시스템의 하드웨어 구성 요소들에 대한 아이디 정보들을 독출하고 모듈 레디 신호가 수신되기를 기다리고, 모듈 레디 신호가 수신되면 메모리 모듈의 복수개의 메모리 장치들에 대한 제2 메모리 트레이닝을 수행한다.

Description

프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법 {Booting method of computing system including memory module mounted processing unit}
본 발명은 컴퓨팅 시스템들에 관한 것으로서, 더욱 상세하게는 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법에 관한 것이다.
컴퓨팅 시스템들은 구조적인 구성들(architectural configurations)에 따라 능력들(capabilities)과 기능들(functions)을 제공한다. 고성능 및/또는 그래픽스 알고리즘들과 같은 어플리케이션들은 데이터- 및 컴퓨터-집약적(data- and compute-intensive) 이다. 딥 뉴럴 네트워크들과 같은 어플리케이션들은 보다 정확하게 다른 데이터 셋트들을 훈련(train) 또는 학습(learn)하기 위하여, 대용량 연산 및 메모리 능력을 갖는 컴퓨팅 시스템을 필요로 한다. 이러한 컴퓨팅 시스템은 훈련 데이터 세트들의 증가, 모델 파라미터들의 증가, 그리고 프로세싱의 중간 결과들의 증가 등을 고려하여, 메모리 중심적인 DRAM(Dynamic Random Access Memory)들과 함께 연산이 무거운 신경망 또는 인공 지능 훈련에 사용되는 프로세싱 장치가 실장된 메모리 모듈을 포함할 수 있다.
컴퓨팅 시스템의 부팅 시, 파워-온 셀프 테스트(Power On Self Test: POST)의 일부로서 컴퓨팅 시스템에 포함된 메모리 모듈에 대한 트레이닝 및/또는 테스트가 수동적으로 수행된다. 이러한 통상의 메모리 모듈과는 달리, 프로세싱 장치가 포함된 메모리 모듈은 메모리 모듈 내에서 프로세싱 장치와 DRAMs 사이에 인터페이스 튜닝 작업들이 필요하다. 또한, 프로세싱 장치와 DRAMs 사이의 인터페이스 튜닝 작업들이 완료된 후 이를 호스트 장치에게 알려줄 필요가 있다. 이에 따라, 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템은 부팅 시 새로운 부트 시퀀스를 필요로 한다.
본 발명의 목적은 프로세싱 장치가 실장된 메모리 모듈, 이 메모리 모듈을 포함하는 컴퓨팅 시스템 및 이 컴퓨팅 시스템의 부팅 방법을 제공하는 데 있다.
본 발명의 실시예들에 따른 메모리 모듈은, 인쇄 회로 기판, 인쇄 회로 기판에 결합된 복수개의 메모리 장치들, 그리고 인쇄 회로 기판에 결합되고 복수개의 메모리 장치들과 연결되는 프로세싱 장치를 포함한다. 프로세싱 장치는 메모리 모듈이 파워-업 될 때, 복수개의 메모리 장치들에 대한 메모리 트레이닝을 수행하고, 메모리 트레이닝을 완료한 후 모듈 레디 신호를 생성하고, 모듈 레디 신호를 메모리 모듈 외부로 출력한다.
본 발명의 실시예들에 따른 컴퓨팅 시스템은, 보드, 보드에 장착된 호스트 장치, 보드에 장착되고 호스트 장치에 연결되고 복수개의 메모리 장치들 및 복수개의 메모리 장치들과 연결되는 프로세싱 장치를 포함하는 메모리 모듈, 그리고 컴퓨팅 시스템을 부팅하기 위한 바이오스(BIOS) 코드를 저장하는 BIOS 메모리를 포함한다. 메모리 모듈의 프로세싱 장치는 컴퓨팅 시스템이 파워-업 될 때, 복수개의 메모리 장치들에 대한 메모리 트레이닝을 수행하고, 메모리 트레이닝을 완료한 후 모듈 레디 신호를 생성하고, 모듈 레디 신호를 호스트 장치로 전송한다.
본 발명의 실시예들에 따른 복수개의 메모리 장치들 및 복수개의 메모리 장치들과 연결된 프로세싱 장치를 포함하는 메모리 모듈을 장착한 컴퓨팅 시스템의 부팅 방법은, 컴퓨팅 시스템이 파워-업 되는 단계, 파워-업 후 메모리 모듈에서 프로세싱 장치에 의해 복수개의 메모리 장치들에 대한 제1 메모리 트레이닝을 수행하고 제1 메모리 트레이닝 완료를 나타내는 모듈 레디 신호를 생성하는 단계, 파워-업 후 컴퓨팅 시스템에 포함된 바이오스(BIOS) 메모리의 BIOS 코드를 실행하는 호스트 장치에 의해 제1 부팅 시퀀스를 수행하는 단계, 제1 부팅 시퀀스 수행 후 호스트 장치에서 메모리 모듈로부터 모듈 레디 신호가 수신되기를 기다리는 단계, 그리고 호스트 장치에서 모듈 레디 신호를 수신하고 모듈 레디 신호에 기초하여 제2 부팅 시퀀스를 수행하는 단계를 포함한다.
본 발명의 실시예들에 따른 컴퓨팅 시스템의 부팅 방법은, 메모리 모듈 내 프로세싱 장치와 메모리 장치들 사이에서 메모리 트레이닝을 1차적으로 수행하고 나서 메모리 모듈의 모듈 레디 신호를 호스트의 CPU에게 알려줌에 따라, 최소 부팅 시간을 보장할 수 있다. 또한, 메모리 모듈의 메모리 장치들이 프로세싱 장치에 의한 1차 메모리 트레이닝 후, 호스트의 CPU에 의한 2차 메모리 트레이닝이 수행되므로 메모리 트레이닝이 2번에 걸쳐 수행됨에 따라, 컴퓨팅 시스템의 안정성을 보장할 수 있다.
도 1은 본 발명의 실시예들에 따른 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템을 개념적으로 설명하는 블락 다이어그램이다.
도 2는 도 1의 메모리 모듈을 예시하는 블락 다이어그램이다.
도 3은 본 발명의 실시예들에 따른 컴퓨팅 시스템의 부팅 방법을 설명하는 순서도이다.
도 4는 도 3의 메모리 모듈에서 프로세싱 장치에 의한 제1 메모리 트레이닝을 구체적으로 설명하는 순서도이다.
도 5는 도 3의 CPU에 의해 수행되는 제1 부팅 시퀀스를 구체적으로 설명하는 순서도이다.
도 6은 도 3의 CPU에 의해 수행되는 제2 부팅 시퀀스를 구체적으로 설명하는 순서도이다.
도 1은 본 발명의 실시예들에 따른 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템을 개념적으로 설명하는 블락 다이어그램이다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 보드(101)에 장착되는 호스트 장치(110), 메모리 모듈(120) 및 바이오스(BIOS: Basic Input/Output System) 메모리(150)를 포함할 수 있다. 호스트 장치(110)는 메모리 버스(140)를 통하여 메모리 모듈(120)과 통신적으로 연결(communicatively connected)될 수 있다.
일부 예는 "연결된(connected)" 및/또는 "결합된(coupled)" 이라는 표현을 그들의 파생어들과 함께 사용하여 설명될 수 있다. 이들 용어가 서로에 대해 꼭 동의어로서 의도된 것은 아니다. 예를 들어, "연결된" 및/또는 "결합된" 이라는 용어들을 이용한 설명은, 2개 이상의 요소가 서로 직접적으로 물리적 또는 전기적 접촉하는 것을 나타낼 수 있다. 또한, 용어 "연결" 및/또는 "결합"은 2개 이상의 요소가 서로 직접 접촉하고 있지 않지만 여전히 서로 협력하거나 상호 작용하는 것도 의미할 수 있다.
호스트 장치(110)는 예시적으로, 랩탑 컴퓨터, 데스크탑 컴퓨터, 서버 컴퓨터, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 스마트 폰, 테블릿 PC, 그리고 다른 적절한 컴퓨터들 등과 같은 컴퓨팅 장치, 가상 기계 또는 그것의 가상 컴퓨팅 장치일 수 있다. 또는 호스트 장치(110)는 그래픽스 카드와 같은 컴퓨팅 시스템(100)에 포함된 구성 요소들 중 일부일 수 있다.
호스트 장치(110)는 컴퓨팅 시스템(100) 내 일반적인 컴퓨터 동작을 수행하는 기능 블락(functional block)으로서, 중앙 처리 유닛(Central Processing Unit: CPU), 디지털 신호 프로세서(Digital Signal Processor: DSP) 또는 어플리케이션 프로세서(Application Processor: AP)에 해당될 수 있다. 본 명세서에서 호스트 장치(110)는 CPU(110)로 지칭될 수 있다.
CPU(110)는 하나 또는 그보다 많은 기계로 실행 가능한 명령들 또는 소프트웨어, 펌웨어 또는 이들의 조합의 조각들을 실행하도록 구성될 수 있다. CPU(110)는 임의의 숫자의 프로세서 코어를 포함할 수 있다. 예를 들어, CPU(110)는 단일 코어(Single-Core)를 포함하거나 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Cire) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 도 1에는 하나의 CPU(110)를 포함하는 컴퓨팅 시스템(100)이 도시되어 있으나, 실시예에 따라, 컴퓨팅 시스템(100)은 복수의 CPU들을 포함할 수 있다. CPU(110)는 직렬 주변 인터페이스(Serial Peripheral Interface: SPI) 또는 로우 핀 카운트(Low Pin Count: LPC) 버스와 같은 다양한 인터페이스를 통하여 BIOS 메모리(150)와 연결될 수 있다.
BIOS 메모리(150)는 컴퓨팅 시스템(100)을 부팅하기 위한 BIOS 코드를 저장할 수 있다. BIOS 메모리(150)는 비휘발성 메모리 장치로 구현될 수 있다. 비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(Flash Memory), RRAM(Resistive RAM), MRAM(Magnetic RAM), PRAM(Phase change RAM), FRAM(Ferroelectric RAM), NFGM(Nano Floating Gate Memory), PoRAM(Polymer RAM) 또는 이와 유사한 메모리로 구현될 수 있다.
BIOS 코드는 보드(101), 메모리 모듈(120), 키보드, 디스크 드라이브 등과 같은 컴퓨팅 시스템(100)의 하드웨어들을 감지하고, 이들이 정상적으로 동작하는지를 확인하기 위한 POST 코드 및/또는 POST 코드의 일부이다. BIOS 코드는 메모리 모듈(120)의 초기화를 위한 메모리 참조 코드(Memory Reference Code: MRC)를 포함할 수 있다. MRC는 CPU(110)가 메모리 모듈(120)과 정상적으로 상호 동작(interoperate)할 수 있도록 구성되는 다양한 알고리즘들을 포함할 수 있다.
CPU(110)에 의해 실행되는 MRC에 의해, 메모리 모듈(120)의 에스피디(Serial Presence Detect: SPD) 메모리 장치(104)에 저장된 SPD 데이터가 메모리 버스(140)를 통하여 독출되고, SPD 데이터를 이용하여 메모리 모듈(120)을 제어하기 위한 주파수, 타이밍, 구동, 상세 동작 파라미터 등이 설정될 수 있다. SPD 데이터는 메모리 모듈(120)의 종류, 메모리 모듈(120)에 포함된 메모리 장치의 종류, 동작 타이밍 정보, 제조 정보, 리비전 코드, 시리얼 넘버 등을 포함할 수 있다. MRC 코드에 의해 메모리 모듈(120)의 BIST 및/또는 메모리 트레이닝이 수행될 수 있다.
메모리 버스(140)는, 도면의 간결성을 위하여, CPU(110)와 메모리 모듈(120)의 커넥팅 핀들(106) 사이에 하나의 신호 라인으로 연결되는 것으로 도시되고 있으나, 실제로는 복수의 신호 라인들을 통해 연결될 수 있다. 메모리 버스(140)는 복수의 신호선들을 포함하는 하나의 채널로 구현될 수 있고, 또는 복수의 채널들로 구현될 수 있다. 또한, 각 채널에는 하나 이상의 메모리 모듈(120)이 연결될 수 있다.
메모리 버스(140)는 커맨드/어드레스를 전송하는 커맨드/어드레스 신호 라인들과 데이터를 전송하는 데이터 라인들로 구성될 수 있다. 또한, 메모리 버스(140)에는 메모리 모듈(120)에서 CPU(110)로 전송되는 모듈 레디 신호(RDY_DIMM, 도 2) 라인(250, 도 2)를 포함할 수 있다. 모듈 레디 신호(RDY_DIMM)는 컴퓨팅 시스템(100)의 부팅 동작에서 메모리 모듈(120) 내 프로세싱 장치(130)와 메모리 장치들(121-129) 사이에 메모리 트레이닝이 수행된 후, 프로세싱 장치(130)에 의한 메모리 트레이닝이 완료되었음을 나타내는 신호이다. 모듈 레디 신호(RDY_DIMM)는 메모리 모듈(120)의 메모리 장치들(121~129)이 프로세싱 장치(130)에 의한 1차적인 메모리 트레이닝 후, CPU(110)에 의한 2차적인 메모리 트레이닝을 수행할 준비가 되어 있음을 나타내는 기초 신호로 작용할 수 있다.
메모리 모듈(120)은 프로세싱 기능을 수행하도록 구성되며, 인쇄 회로 기판(102)에 결합되는 프로세싱 장치(130), 다수개의 메모리 장치들(121~129) 및 SPD 메모리 장치(104)를 포함할 수 있다. 메모리 모듈(120)은 임의의 유형의 메모리 모듈로 구현될 수 있다. 예컨대, 메모리 모듈(120)은 RDIMM(Registered DIMM), LRDIMM(Load Reduced DIMM), FBDIMM(Fully Buffered DIMM), SODIMM(Small Outline DIMM) 등으로 구현될 수 있다.
프로세싱 장치(130)는 CPU(110)에 대한 엑셀레이터(accelerator) 또는 코프로세서(co-processor)로 동작할 수 있다. 프로세싱 장치(130)는 다양한 기능 블록들 및/또는 복수의 IP들을 하나의 반도체 집적 회로에 집적한 시스템-온 칩(System-on Chip: SoC)으로 구현될 수 있다. IP는 SoC에 집적될 수 있는 회로, 로직, 또는 이들의 조합을 말한다.
프로세싱 장치(130)는 CPU(110)의 특정 기능을 전문적으로 수행하는 엑셀레이터로서, 그래픽 데이터 처리를 전문적으로 수행하는 기능 블럭인 GPU(Graphic Processing Unit), AI 계산과 인퍼런스(Inference)를 전문적으로 수행하기 위한 블럭인 NPU(Neural Processing Unit), 및/또는 데이터 전송을 전문적으로 하는 블록인 DPU(Data Processing Unit)를 포함할 수 있다.
프로세싱 장치(130)는 메모리 장치들(121~129)로/로부터 데이터 송수신을 제어하는 메모리 콘트롤러(132)를 포함할 수 있다. 메모리 콘트롤러(132)는 프로세싱 장치(130)의 메모리 리퀘스트에 따라 메모리 장치들(121~129)을 억세스할 수 있다. 실시예에 따라, 메모리 콘트롤러(132)는 CPU(110)의 메모리 리퀘스트에 따라 메모리 장치들(121~129)을 억세스할 수 있다. 이 경우, 메모리 콘트롤러(132)는 CPU(110)에 의해 제어되는 메모리 장치들(121~129)의 억세스가 프로세싱 장치(130)에 대해 투명하게(transparently) 수행하도록 구성될 수 있다.
메모리 콘트롤러(132)는 메모리 위치에 대응하는 로우 및 칼럼을 선택하는 것, 메모리 위치에 데이터를 기입하는 것 또는 기입된 데이터를 독출하는 것과 같은 메모리 장치들(121~129)과 인터페이싱을 위한 메모리 물리 계층 인터페이스(Memory Physical Layer Interface, 234, 도 2)를 포함할 수 있다. 통상적으로, 메모리 물리 계층 인터페이스(234)는 메모리 PHY(234) 라고 지칭된다.
메모리 장치들(121~129)은 프로세싱 장치(130) 내 메모리 콘트롤러(132)의 제어에 따라 데이터를 기입하거나 데이터를 독출할 수 있다. 예시적으로, 메모리 장치들(121~129)은 DRAM 장치들일 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 장치들(121~129)은 SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), LPDDR SDRAM (Low Power Double Data Rate SDRAM), GDDR SDRAM (Graphics Double Data Rate SDRAM), DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, DDR5 SDRAM, Wide I/O DRAM, HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube) 등과 같은 휘발성 메모리 장치들 중 어느 하나일 수 있다. 이하, 설명의 편의를 위하여 메모리 장치들(121~129)은 DRAMs(121-129)로 통칭한다.
도 2는 도 1의 메모리 모듈을 예시하는 블락 다이어그램이다.
도 2를 참조하면, 메모리 모듈(120)은 메모리 콘트롤러(132)를 포함하는 프로세싱 장치(130) 및 DRAMs(121-129)을 포함할 수 있다. 메모리 콘트롤러(132)는 레지스터 제어 워드(Register Control Word: RCW, 230, 이하 'RCW'라고 칭한다), 트레이닝 회로부(232) 및 메모리 PHY(234)를 포함할 수 있다.
RCW(230)는 메모리 모듈(120)의 초기화 및/또는 동작 특성에 맞게 제어하기 위하여 제공될 수 있다. RCW(230)는 메모리 콘트롤러(132)가 DRAMs(121~129)과 정상적으로 상호 동작할 수 있도록 메모리 콘트롤러(132)를 구성(configure)하는 다양한 알고리즘들을 포함할 수 있다. 예컨대, RCW(230)에는 DRAMs(121~129)의 주파수, 타이밍, 구동, 상세 동작 파라미터 등을 나타내는 코드들이 설정될 수 있다. RCW(230) 코드에 따라 DRAMs(121~129)의 메모리 트레이닝이 수행될 수 있다.
트레이닝 회로부(232)는 메모리 콘트롤러(132)의 제어에 의해 DRAMs(121~129)의 메모리 코어와 연계된 메모리 코어 파라미터 트레이닝 및/또는 메모리 코어를 제외한 나머지 주변 회로들에 대한 주변 회로 파라미터 트레이닝을 수행할 수 있다. 트레이닝 회로부(232)는 DRAMs(121~129)의 메모리 코어 파라미터들 및/또는 주변 회로 파라미터들에 대한 최적의 파라미터들을 결정할 수 있다. 트레이닝 회로부(232)는 메모리 콘트롤러(132)가 주체가 되어 DRAMs(121~129)의 메모리 트레이닝을 수행할 수 있다.
메모리 PHY(234)는 메모리 콘트롤러(132)와 DRAMs(121~129) 사이의 효율적인 통신에 요구되는 신호들, 주파수, 타이밍, 구동, 상세 동작 파라미터 및 기능성(functionality)을 위해 제공되는 물리적 또는 전기적 계층과 논리적 계층을 포함할 수 있다. 메모리 PHY(234)는 JEDEC(Joint Electron Device Engineering Council) 표준의 DDR 및/또는 LPDDR 프로토콜의 특징들을 지원할 수 있다.
메모리 PHY(234)는 메모리 인터페이스(240)를 통해 메모리 콘트롤러(132)와 DRAMs(121~129)를 연결할 수 있다. 도면의 간결성을 위하여, 메모리 콘트롤러(132)와 DRAMs(121~129) 사이에 메모리 인터페이스(240)가 하나의 신호 라인으로 연결되는 것으로 도시되고 있으나, 실제로는 복수의 신호 라인들을 통해 연결될 수 있다. 메모리 인터페이스(240)는 메모리 콘트롤러(132)와 DRAMs(121~129)를 연결하기 위한 위한 커넥터들을 포함할 수 있다. 커넥터들은 핀들, 볼들, 신호 라인들, 또는 다른 하드웨어 컴포넌트들로서 구현될 수 있다. 예를 들어, 클럭, 커맨드, 어드레스, 데이터 등이 메모리 인터페이스(240)를 통해 메모리 콘트롤러(132)와 DRAMs(121~129) 사이에서 송수신될 수 있다.
DRAMs(121~129) 각각은, 모드 레지스터 세트(Mode Register Set: MRS, 220, 이하 'MRS'로 칭한다), 메모리 코어 그리고 메모리 코어를 제외한 나머지 주변 회로들을 포함할 수 있다. 메모리 코어는 메모리 셀 어레이, 로우 디코더, 칼럼 디코더 및 센스 앰프부를 포함할 수 있다. 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들, 그리고 워드라인들과 비트라인들이 교차하는 지점에 형성되는 복수의 메모리 셀들을 포함할 수 있다. 로우 디코더는 로우 어드레스에 대응하는 워드라인을 인에이블시키고, 센스 앰프부는 인에이블된 워드라인에 연결된 메모리 셀들의 데이터를 감지 증폭하여 비트라인들로 전송하고, 칼럼 디코더는 버스트 모드에서 수신된 칼럼 어드레스를 점진적으로 증가시키고, 점진적으로 증가된 칼럼 어드레스에 대응하는 비트라인들을 선택할 수 있다.
MRS(220)는 DRAM의 복수개 동작 옵션들, 다양한 기능들, 특성들 그리고 모드들을 셋팅하기 위해 프로그램될 수 있다. MRS(220)는 메모리 콘트롤러(132)로부터 MRS 커맨드가 발행될 때 메모리 인터페이스(240)의 어드레스 버스로 제공되는 적절한 비트 값들로 프로그램될 수 있다.
예시적으로, MRS(220)는 버스트 길이(BL), 카스 레이턴시(CL), 라이트 레벨링(Write Leveling) 인에이블/디세이블, 데이터 터미널 기준 전압(VrefDQ) 트레이닝 등을 제어하기 위해 사용될 수 있다. 버스트 길이(BL)는 독출 및/또는 기입 커맨드에 대하여 억세스할 수 있는 칼럼 로케이션들의 최대 수를 셋팅하기 위해 제공될 수 있다. 카스 레이턴시(CL)는 독출 커맨드와 유효한 출력 데이터의 첫번째 비트 사이의 클럭 사이클 지연을 정의하기 위해 제공될 수 있다. 라이트 레벨링은 기입 동작 시 클럭 신호와 데이터 스트로브 신호 사이의 스큐 보상을 인에이블 또는 디세이블시키기 위해 제공될 수 있다. VrefDQ 트레이닝은 데이터(DQ) 단자들로 입력 또는 출력되는 데이터를 판독하는 기준 전압을 설정하기 위해 제공될 수 있다. VrefDQ 트레이닝은 DQ 단자들에 연결되는 입출력 버퍼들을 구동하는 전원 전압(VDDQ)을 기준으로 트레이닝될 수 있다.
또한, MRS(220)는 DRAM의 일반적인 기능들, 특성들 그리고 모드들과 연관되는 DLL(Delay Locked Loop) 리셋, DLL 인에이블/디세이블, 출력 드라이브 세기, 어디티브 레이턴시, 터미네이션 데이터 스트로브(TDQS) 인에이블/디세이블, 입출력 버퍼 인에이블/디세이블, 카스 라이트 레이턴시, 다이나믹 터미네이션, 라이트 CRC(Cyclic Redundancy Check), MPR(Multi Purpose Register) 로케이션 기능, MPR동작 기능, 기어 다운 모드, MPR 독출 포맷, 파워다운 모드, Vref 모니터링, 독출 프리앰블 트레이닝 모드, 독출 프리앰블 기능, 기입 프리앰블 기능, C/A(Command and Addresss) 패리티 기능, CRC 에러 상태, C/A패리티 에러 상태, ODT(On Die Termination) 기능, 데이터 마스크 기능, 기입 DBI(Data Bus Inversion) 기능, 독출 DBI 기능, EDC(Error Detection Code) 홀드 패턴 등을 제어하기 위해 사용될 수 있다.
메모리 모듈(120)은 컴퓨팅 시스템(100)이 파워-업 되면, 메모리 모듈(120) 내부에서 프로세싱 장치(130)에 의해 DRAMs(121~129)에 대한 제1 메모리 트레이닝을 수행할 수 있다. 이와 동시에, 컴퓨팅 시스템(100)은 파워-업에 따라 CPU(110)에 의해 BIOS 코드 일부를 실행하는 부팅 동작들을 실행할 수 있다.
한편, CPU(110)에 의해 BIOS 코드를 실행하는 부팅 동작들 중에는 메모리 모듈(120)의 DRAMs(121~129)에 대한 제2 메모리 트레이닝이 포함될 수 있다. CPU(110)에 의한 DRAMs(121~129)에 대한 제2 메모리 트레이닝은, 프로세싱 장치(130)에 의한 DRAMs(121~129)에 대한 제1 메모리 트레이닝이 완료된 후에, 즉, 메모리 모듈(120)이 레디 상태임을 확인한 후에 수행되는 것이 컴퓨팅 시스템(100)의 부팅 시간을 줄이는 데 유익(beneficial)할 수 있다. 또한, 메모리 모듈(120)의 레디 상태를 CPU(110)에게 알려줌에 따라, 최소 부팅 시간을 보장할 수 있다.
메모리 모듈(120)의 메모리 콘트롤러(132)는 프로세싱 장치(130)에 의한 DRAMs(121~129)에 대한 제1 메모리 트레이닝이 완료된 후 모듈 레디 신호(RDY_DIMM)를 출력할 수 있다. 트레이닝 회로부(232)는 DRAMs(121~129)의 제1 메모리 트레이닝을 수행함으로써 메모리 트레이닝 완료를 나타내는 모듈 레디 신호(RDY_DIMM)을 생성할 수 있다. 메모리 모듈(120)은 메모리 모듈(120)의 커넥팅 핀들(106) 중 사용되지 않는 핀을 통하여 모듈 레디 신호(RDY_DIMM)를 메모리 모듈(120) 외부로 출력할 수 있다. 실시예에 따라, 메모리 모듈(120)은 메모리 모듈(120)의 커넥팅 핀들(106) 중 모듈 레디 신호 전용의 핀을 통하여 모듈 레디 신호(RDY_DIMM)를 출력할 수 있다.
메모리 모듈(120)에서 출력되는 모듈 레디 신호(DRY_DIMM)는 컴퓨팅 시스템(100)의 보드(101) 상에 형성되어 있는 전용의 신호 라인(250)을 통해 CPU(110)로 전송될 수 있다. 모듈 레디 신호(DRY_DIMM) 라인(250)은 메모리 버스(140)에 포함되어 CPU(110)로 전송될 수 있다.
실시예에 따라, 모듈 레디 신호(DRY_DIMM)는 컴퓨팅 시스템(100)의 보드(101) 상에 형성되어 있는 인터럽트 신호 라인을 통하여 CPU(110)로 전송될 수 있다. CPU(110)는 시스템 관리 모드(SMM)를 포함하는 데, SMM은 CPU(110)로 하여금 시스템 자원들과 전력 이용을 모니터 및 관리하는 데 이용되는 대안적인 환경에서 동작할 수 있게 하고, 예를 들어 특정의 시스템 레벨 코드를 작동시킬 수 있게 한다. 전형적으로, SMM은 시스템 관리 인터럽트(SMI)를 통해 들어갈 수 있다. CPU(110)는 SMI 패키지 핀을 포함하는데, SMI 패키지 핀은 인터럽트 신호 라인과 연결될 수 있다. CPU(110)는 인터럽트 신호 라인 및 SMI 패키지 핀을 통해 모듈 레디 신호(DRY_DIMM)를 수신할 수 있다. 보드(101) 내 기존의 인터럽트 신호 라인의 재사용은 보드(101) 내의 상당한 점유 공간을 절감하고, CPU(110)에 대한 추가적인 와이어를 연장하는 비용을 회피(avoid)할 수 있다. 또한, 추가적인 와이어를 회피하는 것은 추가적인 와이어의 존재로부터 발생할 가능성있는 전자기 간섭(Electro-Magnetic Interference: EMI)을 제거할 수 있다.
도 3은 본 발명의 실시예들에 따른 컴퓨팅 시스템의 부팅 방법을 설명하는 순서도이다.
도 1 및 도 2와 연계하여, 도 3을 참조하면, 컴퓨팅 시스템(100)으로 전원이 공급되고 컴퓨팅 시스템(100)이 파워-업 될 수 있다(S100). S100 단계는 컴퓨팅 시스템(100)이 리셋되거나, 또는 컴퓨팅 시스템(100)의 전원 상태가 천이된 경우를 포함할 수 있다. 실시예에 따라, 컴퓨팅 시스템(100)이 파워-업 되면, 컴퓨팅 시스템(100)의 올바른 동작을 위해 컴퓨팅 시스템(100)의 하드웨어 구성 요소들에 대한 파워 온 리셋(Power-On-Reset: POR) 동작을 수행할 수 있다. 예시적으로, 메모리 모듈(120)로 제공되는 전원 전압 레벨이 안정적으로 일정하게 유지되면, 메모리 모듈(120)의 올바른 동작을 위해 프로세싱 장치(130)와 DRAMs(121~129)은 POR 동작을 수행할 수 있다.
컴퓨팅 시스템(100)이 파워-업 된 후, 컴퓨팅 시스템(100)의 부팅 동작은 메모리 모듈(120) 내 프로세싱 장치(130)에 의해 실행되는 제1 부팅 동작들(S320, S322)과 BIOS 메모리(150)에서 독출된 BIOS 코드가 CPU(110)에 의해 실행되는 제2 부팅 동작들(S330, S332, S334, S336, S338)로 분리되어 진행될 수 있다. 프로세싱 장치(130)에 의해 실행되는 제1 부팅 동작들은 CPU(110)에 의해 실행되는 제2 부팅 동작들 중 일부와 동시에 진행될 수 있다. CPU(110)에 의해 실행되는 제2 부팅 동작들의 나머지는 메모리 모듈(1220)의 모듈 레디 상태를 확인한 후에 진행될 수 있다.
컴퓨팅 시스템(100)이 파워-업 된 후, 메모리 모듈(120)은 프로세싱 장치(130)에 의해 제1 메모리 트레이닝을 수행할 수 있다(S320). 프로세싱 장치(130) 내 메모리 콘트롤러(132)의 트레이닝 회로부(232)는 DRAMs(121~129)에 대한 트레이닝을 수행할 수 있다. 예를 들어, 클럭 트레이닝, 어드레스 트레이닝, 기입/독출 레벨링, 기입/독출 리-센터(Re-Center) 트레이닝 등을 수행할 수 있다. S320 단계의 프로세싱 장치(130)에 의한 제1 메모리 트레이닝에 대한 상세한 설명은 도 4에서 설명될 것이다.
메모리 모듈(120)은 프로세싱 장치(130)에 의한 제1 메모리 트레이닝(S320)이 완료되면, 모듈 레디 신호(RDY_DIMM)를 생성할 수 있다(S322). 모듈 레디 신호(RDY_DIMM)는 트레이닝 회로부(232)에서 DRAMs(121~129)에 대한 제1 메모리 트레이닝을 완료한 후, 제1 메모리 트레이닝이 완료되었음을 나타내는 신호이다. 모듈 레디 신호(RDY_DIMM)는 CPU(110)로 전송될 수 있다.
컴퓨팅 시스템(100)이 파워-업 된 후, CPU(110)는 컴퓨팅 시스템(100)에 대한 제1 부팅 시퀀스를 수행할 수 있다(S330). 제1 부팅 시퀀스는 CPU(110), 메모리 모듈(120) 및 컴퓨팅 시스템 보드(101)에 대한 저장된 아이디 정보들을 독출하도록 구성될 수 있다. 실시예에 따라, 저장된 아이디 정보들은 메모리 모듈(120)에 포함된 SPD 메모리 장치(104)로부터 독출되거나 BIOS 메모리(150)로부터 독출될 수 있다. BIOS 메모리(150)에 포함된 BIOS 코드는 CPU(110), 메모리 모듈(120) 및 컴퓨터 시스템 보드에 대한 저장된 아이디 정보들을 독출하는 명령(instruction)을 포함할 수 있다. CPU(110)는 BIOS 코드를 실행함으로써 CPU(110), 메모리 모듈(120) 및 컴퓨팅 시스템 보드(101)에 대한 아이디들, 예컨대, 시리얼 넘버들을 추출할 수 있다. S330 단계의 제1 부팅 시퀀스에 대한 상세한 설명은 도 5에서 설명될 것이다.
CPU(110)는 제1 부팅 시퀀스를 수행한 후(S330), 메모리 모듈(120)로부터 모듈 레디 신호(RDY_DIMM)가 수신되었는지 여부를 확인할 수 있다(S332). 모듈 레디 신호(RDY_DIMM)가 수신되지 않은 경우(S332: 아니오), 즉, 메모리 모듈(120) 내 프로세싱 장치(130)에 의한 DRAMs(121~129)에 대한 제1 메모리 트레이닝이 완료되지 않은 경우, CPU(110)는 프로세싱 장치(130)에 의한 제1 메모리 트레이닝이 완료되어 모듈 레디 신호(RDY_DIMM)가 수신될 때까지, S332 및 S334 루프로 나타낸 바와 같이, 기다릴 수 있다(S334).
메모리 모듈(120)로부터 모듈 레디 신호(RDY_DIMM)가 수신된 경우(S332: 예), 즉, 메모리 모듈(120) 내 프로세싱 장치(130)에 의한 DRAMs(121~129)에 대한 제1 메모리 트레이닝이 완료된 경우, CPU(110)는 컴퓨팅 시스템(100)에 대한 제2 부팅 시퀀스를 수행할 수 있다(S336). 제2 부팅 시퀀스는 CPU(110)에 의한 메모리 모듈(120)의 초기화 및 DRAMs(121~129)에 대한 제2 메모리 트레이닝을 수행하도록 구성될 수 있다. CPU(110)에 의한 DRAMs(121~129)에 대한 제2 메모리 트레이닝은, S320 단계에서 수행된 프로세싱 장치(130)에 의한 DRAMs(121~129)에 대한 제1 메모리 트레이닝과 유사할 수 있다. CPU(110)에 의한 DRAMs(121~129)에 대한 제2 메모리 트레이닝은, 예를 들어, 클럭 트레이닝, 어드레스 트레이닝, 기입/독출 레벨링, 기입/독출 리-센터(Re-Center) 트레이닝 등을 포함할 수 있다. S360 단계의 제2 부팅 시퀀스에 대한 상세한 설명은 도 6에서 설명될 것이다.
CPU(110)에 의한 컴퓨팅 시스템(100)에 대한 제2 부팅 시퀀스가 성공적으로 완료되고 하드웨어 오동작이 검출되지 않으면, 부팅된 컴퓨팅 시스템(100)이 작동된다. 컴퓨팅 시스템(100)은 다양한 컴퓨팅 기능들을 실행할 수 있다.
상술한 컴퓨팅 시스템의 부팅 방법은, 메모리 모듈(120) 내 프로세싱 장치(130)와 DRAMs(121~129) 사이에서 1차적으로 메모리 트레이닝을 수행한 후, CPU(110)와 DRAMs(121~129) 사이에서 2차적으로 메모리 트레이닝을 수행한다. DRAMs(121~129)의 메모리 트레이닝이 2번에 걸쳐 수행됨에 따라, 컴퓨팅 시스템의 안정성을 보장할 수 있다.
도 4는 도 3의 메모리 모듈에서 프로세싱 장치에 의한 제1 메모리 트레이닝(S320)을 구체적으로 설명하는 순서도이다.
도 2, 도 3 및 도 4를 참조하면, 컴퓨팅 시스템(100)이 파워-업 됨에 따라 메모리 모듈(120)이 파워-업 될 수 있다(S310). 메모리 모듈(120)이 파워-업 된 후, 메모리 콘트롤러(132)는 DRAMs(121~129)의 초기화 및/또는 동작 특성에 맞도록 제어하기 위한 RCW(230)를 셋팅할 수 있다(S401). 메모리 콘트롤러(132)는 DRAMs(121~129)과 정상적으로 상호 동작하도록 DRAMs(121~129)의 주파수, 타이밍, 구동, 상세 동작 파라미터 등을 나타내는 코드들을 RCW(230)에 저장할 수 있다.
DRAMs(121~129)는 DRAMs(121~129)의 복수개 동작 옵션들, 다양한 기능들, 특성들 그리고 모드들을 설정하는 MRS(220)를 셋팅할 수 있다(S402). MRS(220)에는 버스트 길이(BL), 카스 레이턴시(CL), MPR 동작 기능, MPR 독출 포맷, 라이트 레벨링, VrefDQ 트레이닝, 독출/기입 DBI 기능 등을 설정하는 코드들이 셋팅될 수 있다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 제어 신호들(CTL)에 대한 클럭 트레이닝을 수행할 수 있다(S403). 제어 신호들(CTL)에는 칩 선택 신호(CS), 클럭 인에이블 신호(CKE), 로우 어드레스 스트로브 신호(RAS), 칼럼 어드레스 스트로브 신호(CAS), 기입 인에이블 신호(WE) 등이 포함될 수 있다. 메모리 콘트롤러(132)에서 전송되는 제어 신호들(CTL)이 클럭 신호(CLK)에 동기되어 DRAMs(121~129)로 수신될 수 있도록 클럭 트레이닝이 수행될 수 있다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 커맨드들(CMD)에 대한 클럭 트레이닝을 수행할 수 있다(S404). 커맨드들(CMD)에는 프리차지 커맨드, 액티브 커맨드, 독출 커맨드, 기입 커맨드 등이 포함될 수 있다. 메모리 콘트롤러(132)에서 전송되는 커맨드들(CMD)이 클럭 신호(CLK)에 동기되어 DRAMs(121~129)로 수신될 수 있도록 클럭 트레이닝이 수행될 수 있다.
메모리 콘트롤러(132)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)로 수신되는 신호를 인지하기(recognize) 위한 수신 인에이블을 트레이닝할 수 있다(S405). DRAMs(121~129)는 메모리 콘트롤러(132)에서 전송되는 신호들의 수신을 인지하는 수신 인에이블 신호를 트레이닝 회로부(232)에 제공할 수 있다. 트레이닝 회로부(232)는 수신 인에이블 신호의 선언(assertion)이 메모리 콘트롤러(132)로부터 신호의 전송과 일치하도록 유지하는 버퍼링 및 타이밍 회로를 포함할 수 있다. 트레이닝 회로부(232)에서 수신 인에이블 신호의 선언 타이밍이 수신 인에이블 트레이닝 과정에서 결정될 수 있다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)로부터 출력되는 데이터(DQ)에 대한 기본적인 데이터 스트로브 신호(DQS) 트레이닝을 수행할 수 있다(S406). 트레이닝 회로부(232)는 DRAMs(121~129)의 데이터 스트로브 신호(DQS)가 데이터(DQ)와 함께 메모리 콘트롤러(132)로 출력될 때, 데이터 스트로브 신호(DQS) 에지가 데이터(DQ) 윈도우에 센터링되도록 독출 리-센터 트레이닝할 수 있다.
S403단계의 제어 신호들(CTL)에 대한 클럭 트레이닝, S404 단계의 커맨드들(CMD)에 대한 클럭 트레이닝, S405 단계의 수신 인에이블 트레이닝 및/또는 S406 단계의 데이터(DQ)에 대한 데이터 스트로브 신호(DQS) 트레이닝은, MRS(220)의 MPR 동작 기능 및 MPR 독출 포맷을 이용하여 트레이닝될 수 있다. 제어 신호들(CTL)에 대한 클럭 트레이닝, 커맨드들(CMD)에 대한 클럭 트레이닝, 그리고 수신 엔에이블 트레이닝은, MPR에 미리 설정된 타이밍 캘리브레이션 비트 시퀀스를 독출하여 트레이닝될 수 있다. 그리고, 데이터(DQ)에 대한 데이터 스트로브 신호(DQS) 트레이닝은 MPR에 미리 설정된 데이터 패턴을 독출하여 트레이닝될 수 있다. S403 내지 S406 단계들의 트레이닝들은 DRAMs(121~129)의 메모리 코어를 이용하지 않고, MPR을 이용한 주변 회로에서의 파라미터 트레이닝들이다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)의 기입 동작과 연계하는 라이트 레벨링 커맨드를 입력받아, 수신되는 클럭 신호(CLK)와 데이터 스트로브 신호(DQS) 사이의 스큐를 보상하는 라이트 레벨링을 수행할 수 있다(S407). 라이트 레벨링은 메모리 콘트롤러(132)로부터 출력되는 데이터 스트로브 신호(DQS)를 클럭 신호(CLK)로 샘플링하고, 데이터 스트로브 신호(DQS)와 클럭 신호(CLK)의 위상 관계를 검출하여 데이터 스트로브 신호(DQS)의 지연 시간을 조정하는 기능이다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)로 입력되는 데이터(DQ)에 대한 데이터 스트로브 신호(DQS)의 트레이닝을 수행할 수 있다(S408). DRAMs(121~129)는 메모리 콘트롤러(132)에서 데이터 스트로브 신호(DQS)가 데이터(DQ)와 함께 입력될 때, 데이터 스트로브 신호(DQS) 에지가 데이터(DQ) 윈도우에 센터링되도록 기입 리-센터 트레이닝할 수 있다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)들 사이의 데이터 입력/출력 시간 차이를 줄일 수 있는 기입/독출 데이터 디스큐 동작을 수행할 수 있다(S409). DRAMs(121~129)는 기입 모드에서 기입 데이터(DQ)들 사이에 스큐가 증가되면 유효 데이터 윈도우가 감소되기 때문에, 유효 데이터 마진을 확보하기 위해 데이터 스큐를 보상하는 기입 데이터 디스큐 동작을 수행할 수 있다. DRAMs(121~129)는 독출 모드에서 독출 데이터(DQ)들 사이에 스큐가 증가되면 유효 데이터 윈도우가 감소되기 때문에, 유효 데이터 마진을 확보하기 위해 데이터 스큐를 보상하는 독출 데이터 디스큐 동작을 수행할 수 있다.
메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)를 판독하는 기준 전압(VrefDQ) 레벨을 설정하기 위해 VrefDQ 트레이닝을 수행할 수 있다(S410). DRAMs(121~129)는 기준 전압(VrefDQ)의 트레이닝 값, VrefDQ 트레이닝 레인지 등을 트레이닝할 수 있다. DRAMs(121~129)는 다수의 데이터(DQ) 천이들의 중첩으로 보여지는 데이터(DQ) 아이 다이어그램(eye diagram)의 중간에 기준 전압(VrefDQ) 레벨이 오도록 VREFDQ 트레이닝을 수행할 수 있다.
메모리 콘트롤러(132)가 DRAMs(121~129)로부터 독출된 데이터를 적절히 식별(properly identify)하기 위해서는 독출 데이터가 유효한 시간을 결정하는 것이 중요하다. DRAMs(121~129)가 메모리 콘트롤러(132)로부터 수신된 기입 데이터를 적절히 식별하기 위해서도 기입 데이터가 유효한 시간을 결정하는 것이 중요하다. 이를 위하여, 데이터 스트로브 신호(DQS)에 데이터(DQ) 입력 또는 출력 전에 데이터(DQ)가 유효한지를 나타내는 소정의 프리앰블(preamble) 시간이 설정될 수 있다. 메모리 콘트롤러(132)의 트레이닝 회로부(232)는 메모리 인터페이스(240)를 통해 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)에 대한 고급적인 데이터 스트로브 신호(DQS) 트레이닝을 수행할 수 있다(S411).
트레이닝 회로부(232)는 기입 커맨드에 따른 데이터(DQ) 입력 전에 또는 독출 커맨드에 따른 데이터(DQ) 출력 전에, 데이터 스트로브 신호(DQS)가 1 클럭 사이클 또는 2 클럭 사이클 프리앰블 시간을 갖도록 인에이블 트레이닝 할 수 있다. 데이터 스트로브 신호(DQS)에 대한 인에이블 트레이닝은, 인에이블 신호의 선언이 데이터 스트로브 신호(DQS)에 있는 프리앰블 지시(preamble indication)와 일치할 때까지 DLL의 지연을 조절하는 동작을 수행할 수 있다.
S408 내지 S411 단계들의 트레이닝들은 DRAMs(121~129)의 메모리 코어를 이용한 코어 파라미터 트레이닝들이다. 트레이닝 회로부(232)는 DRAMs(121~129)의 주변 회로 파라미터 트레이닝 및 코어 파라미터 트레이닝을 완료하고, 최적화된 주변 회로 파라미터 및 코어 파라미터를 파라미터 저장 영역에 저장할 수 있다. 파라미터 저장 영역은, 예컨대 확장된 모드 레지스터 세트(EMRS)이거나 별도의 파라미터 레지스터부, 또는 불휘발성 메모리 예컨대, 플래시 메모리, EPROM, EEPROM 등일 수 있다. DRAMs(121~129)는 파라미터 저장 영역에 저장된 최적화된 주변 회로 파라미터 및 코어 파라미터로 셋팅된 환경에서 데이터를 기입하거나 독출할 수 있다.
도 5는 도 3의 CPU에 의해 수행되는 제1 부팅 시퀀스(S330)를 구체적으로 설명하는 순서도이다.
도 1, 도 3 및 도 5를 참조하면, 컴퓨팅 시스템(100)이 파워-업 된 후, CPU(110)는 컴퓨팅 시스템(100)의 하드웨어 구성들을 감지할 수 있다. CPU(110)는 하드웨어 구성들 중 메모리 모듈(120)의 구성을 감지할 수 있다(S501). CPU(110)는 메모리 모듈(120)의 유형 및/또는 메모리 속성(memory attribute)을 확인할 수 있다. 메모리 모듈(120)의 유형은 RDIMM, LRDIMM, FBDIMM 및 SODIMM 중 어느 하나일 수 있다. 메모리 속성은 랭크 수, 데이터 너비(data width), 데이터 밴드위스 등으로 구성될 수 있다. 예시적으로, 1 Rank, x4, 1600MHz 등으로 구성될 수 있다.
CPU(110)는 컴퓨팅 시스템(100)의 올바른 동작을 위하여, 파워-업 후 컴퓨팅 시스템(100)의 하드웨어 구성 요소들에서 수행되는 파워 온 리셋(POR) 동작을 확인할 수 있다(S502). 특히, CPU(110)는 메모리 모듈(120)의 올바른 동작을 위하여 프로세싱 장치(130)와 DRAMs(121~129)에 수행되는 POR 동작을 확인할 수 있다.
CPU(110)는 컴퓨팅 시스템(100)의 DDR(Double-Data-Rate) 클럭들을 초기화할 수 있다(S503). CPU(110)는 컴퓨팅 시스템(100)의 전원 전압(VDD)과 메모리 모듈(120)의 랭크를 확인할 수 있다(S504). CPU(110)는 메모리 모듈(120)에 포함된 SPD 메모리 장치(104)에 저장된 SPD 데이터를 획득할 수 있다(S505). SPD 데이터는 메모리 모듈(120)의 종류, 메모리 모듈(120)에 포함된 메모리 장치의 종류, 동작 타이밍 정보, 제조 정보, 리비전 코드, 시리얼 넘버 등을 포함할 수 있다.
컴퓨팅 시스템(100)의 파워- 업 후, CPU에 의해 수행되는 제1 부팅 시퀀스(S330)는 메모리 모듈(120)의 구성을 감지하는 단계(S501), POR 동작을 확인하는 단계(S502), DDR클럭들을 초기화하는 단계(S503), 전원 전압(VDD)과 메모리 모듈(120)의 랭크를 확인하는 단계(S504). 그리고 SPD 데이터를 획득하는 단계(S505)를 포함할 수 있다. 본 실시예에서는 CPU에 의해 수행되는 제1 부팅 시퀀스(S330)가 5 단계들인 것으로 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 제1 부팅 시퀀스(S330)는 다양한 단계들을 더 포함할 수 있다.
CPU(110)는 제1 부팅 시퀀스를 수행한 후(S330), 메모리 모듈(120)로부터 모듈 레디 신호(RDY_DIMM)가 수신되었는지 여부를 확인하고(S332), 모듈 레디 신호(RDY_DIMM)가 수신될 때까지 기다렸다가(S334). 모듈 레디 신호(RDY_DIMM)가 수신되면 제2 부팅 시퀀스(S336)를 수행할 수 있다.
도 6은 도 3의 CPU에 의해 수행되는 제2 부팅 시퀀스(S336)를 구체적으로 설명하는 순서도이다.
도 1, 도 3 및 도 6을 참조하면, CPU(110)는 메모리 모듈(120)로부터 모듈 레디 신호(RDY_DIMM)가 수신되었음을 확인하고(S332: 예), 컴퓨팅 시스템(100)의 구성 요소들을 테스트할 수 있다(S601). 예를 들어, CPU(110)는 컴퓨팅 시스템(100)의 구성 요소들에 제공되는 클럭들에 대하여 거친 테스트(coarse test)를 수행할 수 있다. CPU(110)는 거친 테스트를 수행하여 클럭 신호들의 위상을 동기화시키고 동작 주파수를 일정하게 유지할 수 있다.
CPU(110)는 메모리 모듈(120)의 DRAMs(121~129)의 입출력 인터페이스를 초기화할 수 있다(S602). 이 때, 메모리 모듈(120)의 메모리 콘트롤러(132)는 CPU(110)에 의해 제어되는 DRAMs(121~129)의 입출력 인터페이스가 메모리 모듈(120)의 프로세싱 장치(130)에 대해 투명하게 수행하도록 구성될 수 있다.
메모리 모듈(120)의 DRAMs(121~129)의 입출력 인터페이스가 초기화된 후(S602), CPU(110)는 DRAMs(121~129)에 대한 제2 메모리 트레이닝을 수행할 수 있다. CPU(110)에 의한 DRAMs(121~129)에 대한 입출력 인터페이스 초기화 및 제2 메모리 트레이닝은, 도 4에서 설명된 메모리 모듈(120)의 프로세싱 장치(130)에 의한 DRAMs(121~129)에 대한 제1 메모리 트레이닝(S320)과 유사할 수 있다.
CPU(110)에 의한 DRAMs(121~129)의 입출력 인터페이스를 초기화하는 단계(S602)는, 도 4의 S401 단계의 메모리 콘트롤러(132)가 DRAMs(121~129)의 초기화 및/또는 동작 특성에 맞도록 RCW(230)를 셋팅하는 동작 및 S402 단계의 DRAMs(121~129)의 복수개 동작 옵션들, 다양한 기능들, 특성들 그리고 모드들을 설정하는 MRS(220)를 셋팅하는 동작과 유사한 동작들을 포함할 수 있다.
이 후, CPU(110)는 DRAMs(121~129)에 대한 제2 메모리 트레이닝을 수행할 수 있다. CPU(110)는 DRAMs(121~129)의 제어 신호들(CTL)에 대한 클럭 트레이닝을 수행할 수 있다(S603). CPU(110)에 의한 DRAMs(121~129)의 제어 신호들(CTL)에 대한 클럭 트레이닝을 수행하는 단계(S603)은, 도 4의 S403 단계의 메모리 콘트롤러(132)에서 전송되는 제어 신호들(CTL)이 클럭 신호(CLK)에 동기되어 DRAMs(121~129)로 수신될 수 있도록 수행되는 클럭 트레이닝 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)의 커맨드들(CMD)에 대한 클럭 트레이닝을 수행할 수 있다(S604). CPU(110)에 의한 DRAMs(121~129)의 커맨드들(CMD)에 대한 클럭 트레이닝을 수행하는 단계(S604)는, 도 4의 S404 단계의 메모리 콘트롤러(132)에서 전송되는 커맨드들(CMD)이 클럭 신호(CLK)에 동기되어 DRAMs(121~129)로 수신될 수 있도록 수행되는 클럭 트레이닝 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)에 수신되는 신호를 인지하기 위한 수신 인에이블 트레이닝을 수행할 수 있다(S605). CPU(110)에 의한 DRAMs(121~129)에 수신되는 신호를 인지하기 위한 수신 인에이블 트레이닝을 수행하는 단계(S605)는, 도 4의 S405 단계의 메모리 콘트롤러(132)에서 전송되는 신호들의 수신을 인지하는 수신 인에이블 신호의 선언이 메모리 콘트롤러(132)로부터 신호의 전송과 일치하도록 수행되는 수신 인에이블 트레이닝 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)에서 출력되는 데이터(DQ)에 대한 기본적인 데이터 스트로브 신호(DQS) 트레이닝을 수행할 수 있다(S606). CPU(110)에 의한 DRAMs(121~129)에서 출력되는 데이터(DQ)에 대한 기본적인 데이터 스트로브 신호(DQS) 트레이닝을 수행하는 단계(S606)는, 도 4의 S406 단계의 DRAMs(121~129)의 데이터 스트로브 신호(DQS)가 데이터(DQ)와 함께 메모리 콘트롤러(132)로 출력될 때, 데이터 스트로브 신호(DQS) 에지가 데이터(DQ) 윈도우에 센터링되도록 수행되는 독출 리-센터 트레이닝 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)의 기입 동작과 연계하는 라이트 레벨링을 수행할 수 있다(S607). CPU(110)에 의한 DRAMs(121~129)의 기입 동작과 연계하는 라이트 레벨링을 수행하는 단계(S607)은, 도 4의S407 단계의 메모리 콘트롤러(132)로부터 출력되는 데이터 스트로브 신호(DQS)를 클럭 신호(CLK)로 샘플링하고, 데이터 스트로브 신호(DQS)와 클럭 신호(CLK)의 위상 관계를 검출하여 데이터 스트로브 신호(DQS)의 지연 시간을 조정하는 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)로 입력되는 데이터(DQ)에 대한 데이터 스트로브 신호(DQS)의 트레이닝을 수행할 수 있다(S608). CPU(110)에 의한 DRAMs(121~129)로 입력되는 데이터(DQ)에 대한 데이터 스트로브 신호(DQS)의 트레이닝을 수행하는 단계(S608)는 도 4의 S408 단계의 DRAMs(121~129)으로 메모리 콘트롤러(132)에서 데이터 스트로브 신호(DQS)가 데이터(DQ)와 함께 입력될 때, 데이터 스트로브 신호(DQS) 에지가 데이터(DQ) 윈도우에 센터링되도록 기입 리-센터 트레이닝을 수행하는 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)들 사이의 데이터 입력/출력 시간 차이를 줄일 수 있는 기입/독출 데이터 디스큐 동작을 수행할 수 있다(S609). CPU(110)에 의한 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)들 사이의 데이터 입력/출력 시간 차이를 줄일 수 있는 기입/독출 데이터 디스큐 동작을 수행하는 단계(S609)는, 도 4의 S409 단계의 기입 데이터 디스큐 동작과 독출 데이터 디스큐 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)를 판독하는 기준 전압(VrefDQ) 레벨을 설정하기 위해 VrefDQ 트레이닝을 수행할 수 있다(S610). CPU(110)에 의한 DRAMs(121~129)로/로부터 입력 또는 출력되는 데이터(DQ)를 판독하는 기준 전압(VrefDQ) 레벨을 설정하기 위해 VrefDQ 트레이닝을 수행하는 단계(S610)는, 도 4의 S410 단계의 데이터(DQ) 아이 다이어그램(eye diagram)의 중간에 기준 전압(VrefDQ) 레벨이 오도록 VREFDQ 트레이닝을 수행하는 동작과 유사할 수 있다.
CPU(110)는 DRAMs(121~129)의 데이터 스트로브 신호(DQS)에 데이터(DQ) 입력 또는 출력 전에 데이터(DQ)가 유효한지를 나타내는 소정의 프리앰블 시간을 설정하기 위해 데이터 스트로브 신호(DQS) 트레이닝을 수행할 수 있다(S611). CPU(110)에 의한 DRAMs(121~129)의 데이터 스트로브 신호(DQS)에 데이터(DQ) 입력 또는 출력 전에 데이터(DQ)가 유효한지를 나타내는 소정의 프리앰블 시간을 설정하기 위해 데이터 스트로브 신호(DQS) 트레이닝을 수행하는 단계(S611)는, 도 4의 S411 단계의 기입 커맨드에 따른 데이터(DQ) 입력 전에 또는 독출 커맨드에 따른 데이터(DQ) 출력 전에, 데이터 스트로브 신호(DQS)가 1 클럭 사이클 또는 2 클럭 사이클 프리앰블 시간을 갖도록 인에이블 트레이닝하고, 인에이블 신호의 선언이 데이터 스트로브 신호(DQS)에 있는 프리앰블 지시와 일치할 때까지 DLL의 지연을 조절하는 동작과 유사할 수 있다.
메모리 콘트롤러(132)는 CPU(110)에 의한 DRAMs(121~129)의 제2 메모리 트레이닝을 완료하고, DRAMs(121~129)의 최적화된 주변 회로 파라미터 및 코어 파라미터를 파라미터 저장 영역에 저장할 수 있다.
본 개시는 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 컴퓨팅 시스템에 있어서,
    보드;
    상기 보드에 장착된 호스트 장치;
    상기 보드에 장착되고, 상기 호스트 장치에 연결되고, 복수개의 메모리 장치들과 상기 복수개의 메모리 장치들과 연결되는 프로세싱 장치를 포함하고 메모리 모듈; 및
    상기 컴퓨팅 시스템을 부팅하기 위한 바이오스(BIOS) 코드를 저장하는 BIOS 메모리를 포함하고,
    상기 메모리 모듈의 상기 프로세싱 장치는 상기 컴퓨팅 시스템이 파워-업 될 때, 상기 복수개의 메모리 장치들에 대한 메모리 트레이닝을 수행하고, 상기 메모리 트레이닝을 완료한 후 모듈 레디 신호를 생성하고, 상기 모듈 레디 신호를 상기 호스트 장치로 전송하는 것을 특징으로 하는 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 메모리 모듈은 상기 메모리 모듈의 커넥팅 핀들 중 사용되지 않는 핀을 통하여 상기 모듈 레디 신호를 상기 메모리 모듈 외부로 출력하는 것을 특징으로 하는 컴퓨팅 시스템.
  3. 제1항에 있어서,
    상기 메모리 모듈은 상기 메모리 모듈의 커넥팅 핀들 중 상기 모듈 레디 신호 전용의 핀을 통하여 상기 모듈 레디 신호를 상기 메모리 모듈 외부로 출력하는 것을 특징으로 하는 컴퓨팅 시스템.
  4. 제1항에 있어서,
    상기 모듈 레디 신호는 상기 보드 상에 형성되어 있는 인터럽트 신호 라인을 통하여 상기 호스트 장치로 전달되는 것을 특징으로 하는 컴퓨팅 시스템.
  5. 제1항에 있어서,
    상기 모듈 레디 신호는 상기 보드 상에 형성된 모듈 레디 신호 라인을 통하여 상기 호스트 장치로 전달되는 것을 특징으로 하는 컴퓨팅 시스템.
  6. 복수개의 메모리 장치들과 연결된 프로세싱 장치를 포함하는 메모리 모듈을 장착한 컴퓨팅 시스템의 부팅 방법에 있어서,
    상기 컴퓨팅 시스템이 파워-업 되는 단계;
    상기 파워-업 후, 상기 메모리 모듈에서 상기 프로세싱 장치에 의해 상기 복수개의 메모리 장치들에 대한 제1 메모리 트레이닝을 수행하고, 상기 제1 메모리 트레이닝 완료를 나타내는 모듈 레디 신호를 생성하는 단계;
    상기 파워-업 후, 상기 컴퓨팅 시스템에 포함된 바이오스(BIOS) 메모리의 BIOS 코드를 실행하는 호스트 장치에 의해 제1 부팅 시퀀스를 수행하는 단계;
    상기 제1 부팅 시퀀스 수행 후, 상기 호스트 장치에서 상기 메모리 모듈로부터 상기 모듈 레디 신호가 수신되기를 기다리는 단계; 및
    상기 호스트 장치에서 상기 모듈 레디 신호를 수신하고, 상기 모듈 레디 신호에 기초하여 제2 부팅 시퀀스를 수행하는 단계를 포함하는 컴퓨팅 시스템의 부팅 방법.
  7. 제6항에 있어서, 상기
    상기 제1 메모리 트레이닝을 수행하는 단계와 상기 제1 부팅 시퀀스를 수행하는 단계는 병렬적으로 수행되는 것을 특징으로 하는 컴퓨팅 시스템의 부팅 방법.
  8. 제6항에 있어서,
    상기 제1 부팅 시퀀스는 상기 컴퓨팅 시스템의 하드웨어 구성 요소들에 대한 아이디 정보들을 독출하도록 구성되고,
    상기 제1 부팅 시퀀스는 상기 메모리 모듈의 에스피디(SPD) 메모리로부터 상기 메모리 모듈의 타입 및 메모리 속성을 확인하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 부팅 방법.
  9. 제8항에 있어서,
    상기 메모리 모듈은 DIMM 타입인 것을 특징으로 하는 컴퓨팅 시스템의 부팅 방법.
  10. 제6항에 있어서,
    상기 제2 부팅 시퀀스는 상기 호스트 장치에 의해 상기 메모리 모듈의 상기 복수개의 메모리 장치들에 대한 제2 메모리 트레이닝을 수행하는 단계를 포함하고,
    상기 호스트 장치에 의해 수행되는 상기 제2 메모리 트레이닝은 상기 프로세싱 장치에 대해 투명하게 수행하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템의 부팅 방법.
KR1020200054780A 2020-05-07 2020-05-07 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법 KR20210136480A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200054780A KR20210136480A (ko) 2020-05-07 2020-05-07 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법
US17/115,924 US11620135B2 (en) 2020-05-07 2020-12-09 Booting method of computing system including memory module with processing device mounted
TW110109551A TWI806018B (zh) 2020-05-07 2021-03-17 記憶體模組以及計算系統
CN202110286953.9A CN113626264A (zh) 2020-05-07 2021-03-17 存储器模块、计算系统以及计算系统的启动方法
SG10202103077YA SG10202103077YA (en) 2020-05-07 2021-03-25 Memory module, computing system and booting method of computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200054780A KR20210136480A (ko) 2020-05-07 2020-05-07 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법

Publications (1)

Publication Number Publication Date
KR20210136480A true KR20210136480A (ko) 2021-11-17

Family

ID=78377868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200054780A KR20210136480A (ko) 2020-05-07 2020-05-07 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법

Country Status (5)

Country Link
US (1) US11620135B2 (ko)
KR (1) KR20210136480A (ko)
CN (1) CN113626264A (ko)
SG (1) SG10202103077YA (ko)
TW (1) TWI806018B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230025601A1 (en) * 2021-07-23 2023-01-26 Micron Technology, Inc. Initializing memory systems
US12001356B2 (en) * 2021-08-31 2024-06-04 Micron Technology, Inc. Delay elements for command timing in a memory device
US11875875B2 (en) * 2021-12-29 2024-01-16 Advanced Micro Devices, Inc. Variable tick for DRAM interface calibration
US11823770B1 (en) * 2022-05-03 2023-11-21 Realtek Semiconductor Corporation Memory system and memory access interface device thereof
US20230386563A1 (en) * 2022-05-25 2023-11-30 Samsung Electronics Co., Ltd. Memory device, electronic device including the same, and operating method of electronic device
US20230386534A1 (en) * 2022-05-25 2023-11-30 Samsung Electronics Co., Ltd. Methods of operating a near memory processing-dual in-line memory module (nmp-dimm) for performing a read operation and an adaptive latency module and a system thereof
CN116738237B (zh) * 2023-08-11 2023-11-24 芯耀辉科技有限公司 一种存储器系统的训练方法及系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647467B1 (en) * 2006-05-25 2010-01-12 Nvidia Corporation Tuning DRAM I/O parameters on the fly
TW201013686A (en) 2008-09-26 2010-04-01 Asustek Comp Inc Method of detecting memory training result applied to a computer system
KR20120085968A (ko) * 2011-01-25 2012-08-02 삼성전자주식회사 컴퓨팅 시스템의 부팅 방법 및 이를 수행하는 컴퓨팅 시스템
US20120284576A1 (en) * 2011-05-06 2012-11-08 Housty Oswin E Hardware stimulus engine for memory receive and transmit signals
US9684520B2 (en) * 2011-10-20 2017-06-20 Smart Modular Technologies, Inc. Computing system with non-disruptive fast memory restore mechanism and method of operation thereof
CN103197933A (zh) 2012-01-06 2013-07-10 华硕电脑股份有限公司 计算机及其快速启动方法
US20140032826A1 (en) * 2012-07-25 2014-01-30 Samsung Electronics Co., Ltd. Method of training memory core and memory system
US9317212B2 (en) 2012-12-18 2016-04-19 Intel Corporation Method and apparatus for controlling a storage device
US9552176B2 (en) 2013-04-12 2017-01-24 Microsoft Technology Licensing, Llc Block storage using a hybrid memory device
US9146848B2 (en) * 2013-04-30 2015-09-29 Hewlett-Packard Development Company, L.P. Link training for a serdes link
US9477409B2 (en) 2014-06-27 2016-10-25 Intel Corporation Accelerating boot time zeroing of memory based on non-volatile memory (NVM) technology
US9639495B2 (en) * 2014-06-27 2017-05-02 Advanced Micro Devices, Inc. Integrated controller for training memory physical layer interface
US9990448B2 (en) 2015-03-17 2018-06-05 Ca, Inc. Data center floor plan mapping using location-aware device
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9792190B2 (en) 2015-06-26 2017-10-17 Intel Corporation High performance persistent memory
US9959918B2 (en) * 2015-10-20 2018-05-01 Samsung Electronics Co., Ltd. Memory device and system supporting command bus training, and operating method thereof
CN107393578B (zh) * 2016-05-16 2020-07-28 中国长城科技集团股份有限公司 一种内存训练的方法和装置
US10163485B2 (en) * 2016-05-25 2018-12-25 Mediatek Inc. Memory module, memory controller and associated control method for read training technique
KR20180007374A (ko) * 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
KR20180083975A (ko) * 2017-01-13 2018-07-24 삼성전자주식회사 트레이닝 동작을 수행하는 메모리 시스템
US10719058B1 (en) * 2017-09-25 2020-07-21 Cadence Design Systems, Inc. System and method for memory control having selectively distributed power-on processing
WO2019061227A1 (en) 2017-09-29 2019-04-04 Intel Corporation FIRST PRIMING WITH A MEMORY CHANNEL
US10890963B2 (en) 2017-11-24 2021-01-12 Insyde Software Corp. System and method for platform sleep state enhancements using non-volatile dual in-line memory modules
US10431305B2 (en) 2017-12-14 2019-10-01 Advanced Micro Devices, Inc. High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)
JP2020047340A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 不揮発性メモリ及びメモリシステム
US11894084B2 (en) * 2019-02-08 2024-02-06 Intel Corporation Selective margin testing to determine whether to signal train a memory system
KR20210033719A (ko) * 2019-09-19 2021-03-29 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20210349730A1 (en) 2021-11-11
TW202143038A (zh) 2021-11-16
TWI806018B (zh) 2023-06-21
CN113626264A (zh) 2021-11-09
SG10202103077YA (en) 2021-12-30
US11620135B2 (en) 2023-04-04

Similar Documents

Publication Publication Date Title
US11620135B2 (en) Booting method of computing system including memory module with processing device mounted
US10679698B2 (en) Memory preset adjustment based on adaptive calibration
US10621121B2 (en) Measurement and optimization of command signal timing margins
US9971975B2 (en) Optimal data eye for improved Vref margin
US11675716B2 (en) Techniques for command bus training to a memory device
US20150003172A1 (en) Memory module including buffer chip controlling refresh operation of memory devices
US10599206B2 (en) Techniques to change a mode of operation for a memory device
US10957414B1 (en) Method of test and repair of memory cells during power-up sequence of memory device
US9064603B1 (en) Semiconductor memory device and memory system including the same
US11983410B2 (en) Method optimizing DQ calibration pattern for memory device and computing system performing same
US11573916B2 (en) Apparatuses and methods for writing data to a memory
US20220139485A1 (en) Memory device capable of outputting fail data in parallel bit test and memory system including the memory device
CN115223649A (zh) 信息检测方法及装置、电子设备
US20220393682A1 (en) Unidirectional command bus phase drift compensation
EP4020480A1 (en) Dynamic detection and dynamic adjustment of sub-threshold swing in a memory cell sensing circuit
EP3822797B1 (en) Operation method of system-on-chip configured to control memory device
KR20230006325A (ko) 클록 트레이닝 시간을 줄이기 위한 장치, 메모리 장치 및 방법
KR102458340B1 (ko) 메모리 장치
US20240079049A1 (en) Memory device and memory controller configured to perform re-training based on temperature information and electronic device including the same
EP4250124A1 (en) Memory device, operation method of a memory device, and operation method of a memory controller
US11328786B2 (en) Memory module storing test pattern information, computer system comprising the same, and test method thereof
US20240118970A1 (en) Techniques for memory scrubbing associated with reliability availability and serviceability features
KR20240034087A (ko) 온도 정보를 참조하여 리트레이닝을 수행하는 메모리 장치 및 메모리 컨트롤러, 그리고 이들을 포함하는 전자 장치
KR20230138370A (ko) 메모리 장치, 메모리 장치의 동작 방법, 및 메모리 컨트롤러의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination