KR20110010793A - 메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트 - Google Patents

메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트 Download PDF

Info

Publication number
KR20110010793A
KR20110010793A KR1020107028531A KR20107028531A KR20110010793A KR 20110010793 A KR20110010793 A KR 20110010793A KR 1020107028531 A KR1020107028531 A KR 1020107028531A KR 20107028531 A KR20107028531 A KR 20107028531A KR 20110010793 A KR20110010793 A KR 20110010793A
Authority
KR
South Korea
Prior art keywords
memory device
interface
programmable component
instructions
input signal
Prior art date
Application number
KR1020107028531A
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 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20110010793A publication Critical patent/KR20110010793A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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
    • 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
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Logic Circuits (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 디바이스가 상기 메모리 디바이스의 입력들 또는 동작 환경의 변화에 응답하여, 자신을 적응(adapting)시키거나 리트레이닝(retraining)할 수 있게 하는 시스템 및 방법이 개시된다. DRAM과 같은 상기 메모리 디바이스는, 그것의 인터페이스 내에 임베딩된 프로그램가능 컴포넌트를 포함한다. 상기 프로그램가능 컴포넌트는, 예를 들어, 마이크로프로세서, 마이크로제어기, 또는 마이크로시퀀서일 수 있으며 이에 국한된 것은 아니다. 프로그램가능 컴포넌트는 상기 메모리 디바이스의 환경의 변화에 응답하여 상기 메모리 디바이스의 인터페이스 동작을 변경하도록 프로그래밍된다.

Description

메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트{EMBEDDED PROGRAMMABLE COMPONENT FOR MEMORY DEVICE TRAINING}
본 발명은 메모리 디바이스에 관한 것이며, 메모리 디바이스들의 트레이닝 인터페이스에 관한 것이다.
동작 중에, 동적 랜덤 액세스 메모리(DRAM)와 같은 메모리 디바이스는 주변 조건들에 있어서의 변화를 겪을 수 있다. 예를 들어, 유입 신호의 파형(waveform)이 다소 변경되어, 데이터를 해석하는 것을 더 어렵게 만들 수 있다. 이러한 신호의 데이터 아이(data eye)가 시프트되어, 그 위치를 찾기가 더 어렵게 될 수 있다. 또한, 다른 조건들 역시 변할 수 있다. 예를 들어, 메모리 디바이스의 동작 클럭 속도가 변경될 필요가 있다. 또한, 메모리 디바이스로의 인터페이스에서의 대역폭이 변경 또는 제약되어야 하거나 전력 소비가 조정되어야 한다. 이러한 변화들은 메모리 디바이스의 성능에 영향을 미친다.
이상적으로, 메모리 디바이스는 이러한 변화들이 메모리 디바이스의 성능에 미치는 영향을 최소화하기 위하여 이러한 변화들에 적응하는 능력을 가질 것이다. 그러나, 현재 메모리 디바이스들이 그러한 변화하는 조건들에 응답하는 능력은 제한되어 있다. 또한, 그래픽 더블 데이터 레이트 5(GDDR5)와 같은 새로운 프로토콜들은 다른 프로토콜들보다 빠른 오퍼레이션을 필요로 하며, 이는 메모리 디바이스로하여금 조건들의 변화에 신속하게 적응할 것을 요구할 것이다.
따라서, DRAM과 같은 메모리 디바이스가 그것의 동작 환경에서의 변화 조건들에 응답하여, 자신을 신속하게 적응 또는 리트레이닝(retraining)할 수 있게 하는 시스템 및 방법이 필요하다.
본 발명의 실시예들이 첨부의 도면들을 참조로 설명된다. 도면들에서, 유사한 도면부호들은 동일하거나 기능적으로 비슷한 구성요소들을 나타낸다. 구성요소가 처음 나타나는 도면들은 일반적으로 해당 도면부호의 최좌측(left-most) 숫자에 의해 표시된다.
도 1은 본 발명의 일 실시예에 따라 인터페이스 트레이닝 및 테스트를 하기 위한 프로그램가능 컴포넌트를 구비한 메모리 디바이스의 예시적인 시스템도이다.
도 2는 본 발명의 일 실시예에 따라 프로그램가능 컴포넌트에 의해 메모리 디바이스의 인터페이스 트레이닝을 하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 프로그램가능 컴포넌트가 오퍼레이팅 조건들에서의 변화를 알게될 때, 메모리 인터페이스를 조정하기 위한 예시적인 공정의 흐름도이다.
본 발명의 상세한 설명에서, "일 실시예", "실시예", "예시적인 실시예" 등은, 설명된 실시예가 특정한 피쳐, 구조, 또는 특징을 포함할 수 있지만 모든 실시예가 반드시 그 특정 피쳐, 구조, 또는 특성을 포함할 필요는 없다는 것을 나타낸다. 더욱이, 이러한 표현이 반드시 동일한 실시예만을 지칭해야 하는 것은 아니다. 또한, 명시적으로 설명되든 아니든 특정한 피쳐, 구조, 또는 특성이 임의의 실시예와 관련하여 설명될 때, 이것이 명시적으로 설명되든 아니든 다른 실시예들과 관련하여 그러한 피쳐, 구조, 또는 특성을 가져온다는 것은 당업자가 알고있는 것이다.
본 명세서에 기술된 발명은, 메모리 디바이스가 그것의 입력 또는 동작 환경에서의 변화에 응답하여, 자신을 적응시키거나 리트레이닝할 수 있게하는 시스템 및 방법이다. DRAM과 같은 메모리 디바이스는, 그것의 인터페이스 내에 임베딩된 프로그램가능 컴포넌트를 포함한다. 프로그램가능 컴포넌트는 예를 들어, 마이크로프로세서, 마이크로제어기, 또는 마이크로시퀀서일 수 있지만 이에 국한되지는 않는다. 프로그램가능 컴포넌트는 입력 신호의 변화(예를 들어, 입력 신호의 파형 변화) 및/또는 메모리 디바이스 주변 환경의 변화에 응답하여, 메모리 디바이스의 인터페이스 동작을 변경하도록 프로그램된다.
일 실시예에서, 입력 신호의 파형 변화에 응답하여, 예를 들어, 프로그램가능 컴포넌트가 파형의 변화를 검출하고 메모리 디바이스의 인터페이스를 리트레이닝하도록 프로그램될 수 있다. 상기 리트레이닝은 상기 인터페이스로하여금 변경된 입력 신호의 데이터 아이를 검출할 수 있게 해준다. 이는 메모리 디바이스가 입력 신호 내에 포함된 데이터를 계속해서 수신 및 저장할 수 있게 해준다.
본 발명의 일부 실시예들에서, 프로그램가능 컴포넌트가 주변 환경의 다른 변화들에 응답하도록 프로그래밍될 수 있으므로, 그러한 변화들로인한 메모리 디바이스의 성능에 대한 영향이 최소화될 수 있다. 예를 들어, 동작 중에, 인터페이스에서의 대역폭 요구조건들이 제약(constrained)되거나 변경될 수 있다. 이 경우, 프로그램가능 컴포넌트는 변경된 대역폭 요구조건들에 따라 메모리 디바이스의 인터페이스의 동작 파라미터들을 변경하도록 프로그램된다. 이러한 식으로, 인터페이스에서의 대역폭 파라미터들은 필요한 대역폭 요구조건들을 충족하도록 변경될 수 있다. 유사하게, 프로그램가능 컴포넌트는 클럭율(clock rate) 변화, 또는 전력 소비에 대한 제약과 같은, 환경에 있어서의 다른 변화들에 응답하도록 프로그램될 수 있다. 이 경우에, 프로그램가능 컴포넌트는 메모리 디바이스의 인터페이스에서 효율적으로 동작 파라미터들을 변경하고, 메모리 디바이스가 새로운 조건들하에서 그것의 최적 동작을 계속할 수 있게 할 수 있다. 메모리 디바이스의 인터페이스에서의 동작 파라미터들은 타이밍 파라미터들, 주소 파라미터들, 충전 파라미터들(charging parameters), 리프레시 파라미터들(refreshing parameters), 판독/기록 파라미터들(read/write parameters) 등을 포함할 수 있다. 이 예들은 단지 예시적인것이며 본 발명을 제한하려 의도된 것이 아니다.
시스템 개괄(System Overview)
본 발명의 실시예가 도 1에 도시된다. 도 1은 메모리 디바이스(110)를 보여준다. 메모리 디바이스(110)는, 예를 들어, DRAM 디바이스일 수 있다. 신호(102)가 입력 데이터를 메모리 디바이스(110)에 제공한다. 그러한 데이터는, 예를 들어, 메모리 디바이스(110)에 저장될 데이터를 포함한다. 입력 신호(102)는 인터페이스(112)를 통해 메모리 디바이스(110)로 들어간다. 인터페이스(112)는 프로그램가능 컴포넌트(120)를 포함한다. 도시된 실시예에서, 프로그램가능 컴포넌트(120)는 입력 제어기(114)와 통신하며, 또한 인터페이스(112) 내에 위치한다. 이 예에서, 입력 제어기(114)는 인터페이스(112)의 동작을 제어한다. 입력 제어기(114)는, 그러나, 입력 제어기(114)로 송신되는 프로그램가능 컴포넌트(120)의 출력(예를 들어, 인터페이스에서의 동작 파라미터들(그러나, 이것들에 국한되지는 않음))에 의해 영향을 받는다.
예를 들어, 입력 신호(102)는 일반적으로 디지털 파형일 것이다. 시간이 지남에 따라, 그리고 다수의 프로세싱 및/또는 전송 인자들(transmission factors) 중 어느 것의 결과로 인하여, 입력 신호(102)의 파형이 어느정도 변화될 수 있다. 파형의 변화는 입력 신호(102)의 각각의 비트의 데이터 아이를 찾는 것을 어렵게 만들 수 있다. 용어 "데이터 아이"는 구형파(square wave) 상의 점(point)를 지칭하는바, 상기 점은 찾아져서 샘플링될 때, 관련된 비트를 논리 0 또는 1로서 특징짓는데 사용될 수 있다. n 비트들을 나타내는 신호는 n개의 데이터 아이들을 가져야 한다. 입력 신호(102)는 프로그램가능 컴포넌트(120)에 의해 수신될 것이고, 파형에 대한 그러한 변화들은 프로그램가능 컴포넌트(120)에 의해 검출될 것이다. 프로그램가능 컴포넌트(120)는 입력 신호(102)의 데이터 아이가 보다 잘 검출되도록, 입력 제어기(114)로하여금 상기 입력 제어기(114)의 동작을 변경하도록 지시한다.도시된 실시에에서, 프로그램가능 컴포넌트(120)에 의한 이러한 지시는 입력 제어기(114)로 통신되는 조정 파라미터들(adjusted parameters)(104)의 형태를 취한다. 이것은 입력 신호(102)에 대한 변화들을 처리하기 위한 인터페이스(112)의 리트레이닝을 나타낸다. 결과적으로, 입력 제어기(114)는, 입력 신호(102)를 수신할 때, 신뢰성있게 신호(102)의 데이터 아이를 찾는다. 데이터는 그후 최적화 신호(optimized signal)(108)의 형태로 하나 이상의 메모리 셀들(140)로 포워딩될 것이다.
프로그램가능 컴포넌트(120)는 또한 메모리 디바이스(110)의 동작 환경에 있어서의 다른 변화들에 응답할 수 있다. 예를 들어, 인터페이스(112)에서의 대역폭 요구조건들이 변할 수 있다. 마찬가지로, 전력 요구조건들이 변하거나 인터페이스(112)의 동작 클럭율이 변해야 할 것이다. 동작 환경에서 이러한 변화들은, 일반적으로 상태 모니터(130)로서 식별되는 하나 이상의 컴포넌트들을 통해 메모리 디바이스(112)에 의해 검출된다. 메모리 디바이스(112)의 동작 상태 변화들은 신호(106)를 통해 프로그램가능 컴포넌트(120)로 통신된다. 도시된 실시예에서, 프로그램가능 컴포넌트(120)가 동작 파라미터들을 조정하고, 조정된 동작 파라미터들을 입력 제어기(114)로 통신할 것이다. 이에 응답하여, 제어기(114)는 조정된 동작 파라미터들에 따라 필요한 동작들을 변화시킬 것이다. 이러한 식으로, 동작 환경의 변화에 응답하여, 메모리 디바이스(110)가 리트레이닝(retraining)되거나, 셀프-튜닝(self-tuning)될 것이다.
프로그램가능 컴포넌트(120)는 몇가지 타입들 중 임의의 것일 수 있다. 프로그램가능 컴포넌트(120)는, 예를 들어, 마이크로제어기일 수 있다. 대안적으로, 프로그램가능 컴포넌트(120)는 마이크로시퀀서 또는 마이크로프로세서일 수 있다. 또한, 본 발명의 실시예에서, 프로그램가능 컴포넌트(120)는 감소된 명령어 세트로부터의 명령어들을 사용하여 프로그램될 수 있다. 추가적으로, 도 1의 실시예는 입력 제어기(114)와 프로그램가능 컴포넌트(120)를 개별 컴포넌트들로서 도시한다. 대안적인 실시예에서, 프로그램가능 컴포넌트(120) 및 입력 제어기(114)는 단일 프로그램가능 디바이스로서 구현될 수 있다.
인터페이스 리트레이닝(Interface Retraining)
본 발명의 실시예에 따른 입력 신호 변화들에 대응하는 프로세스가 도 2에 도시된다. 프로세스는 단계(210)에서 시작한다. 단계(220)에서, 메모리 디바이스의 인터페이스 내의 프로그램가능 컴포넌트들에서 마이크로명령어들이 수신된다. 프로그램가능 컴포넌트, 인터페이스, 및 메모리 디바이스는, 예를 들어, 시스템(100)의 프로그램가능 컴포넌트(120), 인터페이스(112), 및 메모리 디바이스(110)일 수 있다. 본 발명의 실시예에서, 마이크로명령어들이 메모리 제어기로부터 수신된다. 이 마이크로명령어들은, 실행될 때, 메모리 디바이스(110)의 인터페이스의 리트레이닝을 수행한다. 인터페이스(112)의 리트레이닝은, 예를 들어, 동작 환경에서의 변화들로 인한 메모리 디바이스(110)의 성능을 최적화하기 위해 인터페이스(112)에서의 동작 파라미터들을 조정하는 것을 포함하나, 이에 국한되지는 않는다. 단계(230)에서, 파형이 변경되어 데이터 아이의 위치가 다시 식별되어야만 하는지를 결정하기 위하여 입력 신호가 프로그램가능 컴포넌트(120)에 의해 분석된다. 입력 신호는, 예를 들어, 도 1에 도시된 입력 신호(102)일 수 있다. 단계(240)에서, 입력 신호(102)의 변화에 근거하여 인터페이스(112)에서의 동작 파라미터들이 조정된다. 조정된 파라미터들은 메모리 디바이스(110)가 변화된 입력 신호의 데이터 아이를 식별할 수 있게 해주며, 따라서 신호를 최적화하게 해줄 것이다. 이러한 식으로, 변화된 입력 신호를 수신하고 저장할 때 메모리 디바이스(110)의 성능이 최적화 될 수 있다. 프로세스는 단계(250)에서 종결된다. 대안적인 실시에에서, 프로그램가능 컴포넌트(120)는 변화된 신호를 최적화하기 위해 입력 제어기(114)로 조정된 파라미터들을 통신할 수 있다.
메모리 디바이스가 이러한 방식으로 리트레이닝되면, 메모리 디바이스의 인터페이스는 입력 신호의 데이터 아이를 더 잘 찾을 수 있다. 당업자에게 잘 알려져 있는 바와 같이, 데이터 아이가 찾아질 수 있는 다수의 잘 알려진 알고리즘들이 존재한다. 예를 들어, 스퀘어 에지(square edge)의 좌측 에지가 찾아질 수 있고, 데이터 아이의 검색은 이 에지의 우측에 포커싱될 것이다. 대안적으로, 데이터 아이는 오버샘플링과 필터링에 의해 찾아질 수 있다.
도 3은 본 발명의 실시예의 프로세싱을 도시하며, 여기서 메모리 디바이스의 인터페이스는 입력 신호의 파형 변화에 응답하는 한편, 메모리 디바이스의 동작 환경 변화에 응답하여 셀프-튜닝한다. 프로세스는 단계(310)에서 시작한다. 단계(315)에서, 마이크로명령어들이 프로그램가능 컴포넌트(120)와 같은 프로그램가능 컴포넌트에서 수신된다. 단계(320)에서, 프로그램가능 컴포넌트가 시스템(100)의 상태 모니터(130)와 같은 상태 모니터로부터, 감소된 전력 소비, 또는 다른 대역폭 또는 클럭 요구조건을 필요로 하는 것과 같은 상태 변화가 있었다는 것을 나타내는 신호를 수신한다. 신호는 도 1에 도시된 상태(106) 변화의 신호일 수 있다. 단계(330)에서, 입력 신호가 프로그램가능 컴포넌트(120)에서 수신되고, 인터페이스(112)가 리트레이닝될 필요가 있는지를 결정하기 위하여, 상태(106)의 변화에 근거하여 입력 신호에 대한 분석이 수행된다. 단계(340)에서, 프로그램가능 컴포넌트(120)는 인터페이스(112)의 동작 파라미터들을 조정하고, 조정된 파라미터들을 인터페이스(112)로 통신한다. 이러한 식으로, 동작 환경에서의 변화에 따라 메모리 디바이스(110)의 성능이 최적화될 수 있다. 프로세스는 단계(350)에서 완결된다.
도 3의 실시예에서, 메모리 디바이스의 인터페이스의 리트레이닝은 입력 신호의 변화들 및 동작 환경에서의 변화들에 응답한다. 본 발명의 대아적인 실시예에서, 메모리 디바이스의 인터페이스는 단지 입력 신호의 변화들에 응답하여 리트레이닝될 수 있다. 본 발명의 또 다른 실시예에서, 메모리 디바이스의 인터페이스는, 상태 모니터를 통해 검출되는 것과 같은, 동작 환경에서의 하나 이상의 변화에 응답하여서만 셀프-튜닝된다.
결론
메모리 디바이스의 성능은 입력 신호 및 그것의 동작 환경에서의 변화에 영향을 받을 수 있다. 메모리 디바이스 상에 임베딩된 프로그램가능 컴포넌트는 이러한 변화들을 분석하고 따라서 메모리 디바이스의 인터페이스에서 동작 파라미터들을 조정할 수 있다. 이러한 식으로, 메모리 디바이스는 조정된 파라미터들을 사용하여 동작할 수 있으며, 따라서 이러한 변화들이 메모리 디바이스의 성능에 최소의 영향을 미칠 것이다.
본 발명은 구체적인 기능들 및 관계들의 구현을 도시하는 기능 빌딩 블록들을 사용하여 설명되었다. 설명의 편의상 이 기능 블록들의 경계들은 본 명세서에서 자의적으로 정의되었다. 특정 기능들 및 그것의 관련기능들이 적절하게 수행되는 한, 대안적인 경계들이 정의될 수 있다. 예를 들어, 본 발명의 다양한 양상들은 소프트웨어, 펌웨어, 하드웨어(또는 예를 들어, 베릴로그(Verilog) 또는 하드웨어 기술 언어(hardware description language) 명령어들) 또는 이것들의 조합에 의해 실시될 수 있다. 예시적인 시스템(100)에서, 본 발명, 또는 본 발명의 일부가 컴퓨터 판독가능 코드로 실시될 수 있다. 본 설명을 읽은 후, 본 발명을 다른 컴퓨터 시스템들 및/또는 컴퓨터 구조들를 사용하여 어떻게 실시하는지는 본 기술 분야의 당업자에게는 자명할 것이다.
일반적인 프로그래밍 언어들(예를 들어, C 또는 C++), 베릴로그 HDL, VHDL, 알테라 HDL(AHDL) 등을 포함하는 하드웨어 기술 언어(HDL)를 포함하는 컴퓨터 판독가능 코드, 또는 다른 사용가능한 프로그래밍 및/또는 스케매틱 캡쳐 툴들(예를 들어, 회로 캡쳐 툴)을 사용하여, 본 발명의 다양한 실시예들의 시뮬레이션, 신세시스, 및/또는 제조가, 부분적으로 달성될 수 있다. 컴퓨터 판독가능 코드는 반도체, 자기 디스크, 광학 디스크(예를 들어, CD-ROM, DVD-ROM) 내에, 컴퓨터 사용가능(예를 들어, 판독가능) 전송 매체(예를 들어, 디지털, 광학, 또는 아날로그-기반의 매체를 포함하는 캐리어 웨이브 또는 임의의 다른 매체)에 포함된 컴퓨터 데이터 신호로서 배치될 수 있다. 따라서, 코드는 인터넷 또는 인터넷을 포함하는 통신 네트워크 상에서 전송될 수 있다. 위에서 설명된 시스템 및 기법들에 의해 제공되는 구조 및/또는 달성되는 기능들은, 프로그램 코드 내에 포함되는 코어(예를 들어, GPU 코어)에 나타날 수 있으며, 집적 회로의 생산물 일부로서 하드웨어로 변환될 수 있다.
전술한 구체적인 실시예들은 본 발명의 일반적인 특징을 완전히 나타내주므로, 당업자는 본 발명의 일반적인 개념으로부터 벗어남 없이 과도한 실험을 행하지 않고도 이러한 본 기술분야의 지식을 적용하여 쉽게 이러한 구체적인 실시예들을 다양한 애플리케이션들을 위해 수정 및/또는 변경할 수 있다. 그러므로, 본 명세서에 제시된 가르침 및 지시에 근거하여, 이러한 변경 및 수정은 개시된 실시예들의 등가의 범주 및 의미 내에 있는 것으로 의도된 것이다. 본 명세서의 어법 및 용어는 설명의 목적이며, 제한하려는 목적이 아님이 이해되어야하며, 본 명세서의 용어 또는 어법은 이러한 가르침 및 지시의 견지에서 해석되어야 한다.
본 발명의 범주 및 폭은 위에서 설명된 임의의 예시적인 실시예들에 국한된 것이 아니며, 첨부의 청구항들 및 그 등가에 의해서만 정의되어야 한다.

Claims (30)

  1. 메모리 디바이스에 있어서,
    하나 이상의 메모리 셀들과; 그리고
    상기 메모리 셀들과 통신하며 입력 신호를 수신하도록 된 인터페이스를 포함하며, 여기서 상기 인터페이스는 프로그램가능 컴포넌트(programmable component)를 포함하고, 상기 프로그램가능 컴포넌트는, 프로그램될 때, 동작 조건(operating condition)에 관하여 상기 인터페이스를 트레이닝(training)하도록 된 프로그램가능 컴포넌트를 포함하는 것을 특징으로 하는 메모리 디바이스.
  2. 제1 항에 있어서,
    상기 입력 신호는 상기 메모리 셀들에 기입될 데이터를 포함하는 것을 특징으로 하는 메모리 디바이스.
  3. 제1 항에 있어서,
    상기 메모리 디바이스는 동적 랜덤 액세스 메모리(DRAM)인 것을 특징으로 하는 메모리 디바이스.
  4. 제1 항에 있어서,
    상기 프로그램가능 컴포넌트는 마이크로프로세서를 포함하는 것을 특징으로 하는 메모리 디바이스.
  5. 제1 항에 있어서,
    상기 프로그램가능 컴포넌트는 마이크로제어기(microcontroller)를 포함하는 것을 특징으로 하는 메모리 디바이스.
  6. 제1 항에 있어서,
    상기 프로그램가능 컴포넌트는 마이크로시퀀서(microsequencer)를 포함하는 것을 특징으로 하는 메모리 디바이스.
  7. 제1 항에 있어서,
    상기 프로그램가능 컴포넌트는 감소된 명령어 세트(reduced instruction set)를 사용하여 동작하도록 된 것을 특징으로 하는 메모리 디바이스.
  8. 제1 항에 있어서,
    상기 조건은 상기 인터페이스에서의 디지털 신호의 수신을 포함하며, 여기서 상기 프로그램가능 컴포넌트는 상기 디지털 신호 내의 데이터 아이(data eye)를 검출하도록 상기 인터페이스를 트레이닝하도록 된 것을 특징으로 하는 메모리 디바이스.
  9. 제8 항에 있어서,
    상기 디지털 신호는 그래픽 더블 데이터 레이트 5(GDDR5) 프로토콜에 따라 포맷되는 것을 특징으로 하는 메모리 디바이스.
  10. 제1 항에 있어서,
    상기 프로그램가능 컴포넌트와 통신하는 상태 모니터(state monitor)를 더 포함하며, 여기서 상기 상태 모니터는 상기 조건을 검출하고 상기 조건을 상기 프로그램가능 컴포넌트에 통지하도록 되어 있으며, 상기 프로그램가능 컴포넌트는 상기 조건에 응답하여 상기 인터페이스를 트레이닝하도록 된 것을 특징으로 하는 메모리 디바이스.
  11. 제10 항에 있어서,
    상기 조건은 대역폭 제약(bandwidth constraint)에 있어서의 변화를 포함하는 것을 특징으로 하는 메모리 디바이스.
  12. 제10 항에 있어서,
    상기 조건은, 전력 제약(power constraint)에 있어서의 변화를 포함하는 것을 특징으로 하는 메모리 디바이스.
  13. 제10 항에 있어서,
    상기 조건은 클럭 속도 제약(clock speed constraint)에 있어서의 변화를 포함하는 것을 특징으로 하는 메모리 디바이스.
  14. 메모리 디바이스의 인터페이스를 트레이닝하는 방법으로서,
    (a) 상기 인터페이스 내의 프로그램 가능 컴포넌트에서 로직을 실행하는 단계와;
    (b) 상기 프로그램가능 컴포넌트에서 출력을 생성하는 단계와, 상기 출력은 상기 실행으로부터 기인한 것이며;
    (c) 상기 프로그램가능 컴포넌트의 출력에 근거하여 상기 메모리 디바이스를 트레이닝하는 단계를 포함하는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  15. 제14 항에 있어서,
    상기 입력 신호는 디지털 신호이며, 상기 단계(c)는 상기 디지털 신호 내에서 데이터 아이를 찾도록 상기 인터페이스를 트레이닝하는 것을 포함하는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  16. 제15 항에 있어서,
    상기 입력 신호는 그래픽 더블 데이타 레이트(GDDR) 5 프로토콜에 따라 포맷되는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  17. 제14 항에 있어서,
    상기 단계 (a)는, 전력 제약에 있어서의 변화에 대한 정보를 수신하는 것을 포함하며, 상기 단계 (c)는, 상기 메모리 디바이스의 전력 소비를 수정하기 위하여 상기 메모리 디바이스를 셀프-튜닝(self-tuning)하는 것을 포함하는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  18. 제14 항에 있어서,
    상기 단계 (c)는, 대역폭 제약에 있어서의 변화에 관한 정보를 수신하는 것을 포함하며, 상기 단계 (c)는 상기 입력 신호의 대역폭을 수정하기 위하여 상기 인터페이스를 셀프-튜닝하는 것을 포함하는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  19. 제14 항에 있어서,
    상기 프로그램가능 컴포넌트는 마이크로제어기를 포함하는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  20. 제19 항에 있어서,
    상기 로직은 감소된 명령어 세트로부터의 명령어들을 포함하는 것을 특징으로 하는 메모리 디바이스의 인터페이스를 트레이닝하는 방법.
  21. 메모리 디바이스의 인터페이스를 수정하기 위한 제어 로직이 저장된 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 제어 로직은,
    상기 인터페이스 내의 프로그램가능 컴포넌트에서 로직이 실행되게 하는 제1 컴퓨터 판독가능 프로그램 코드 수단과;
    상기 프로그램가능 컴퓨넌트에서 출력이 생성되게 하는 제2 컴퓨터 판독가능 프로그램 코드 수단과; 그리고
    상기 프로그램가능 컴포넌트의 출력에 근거하여 상기 메모리 디바이스를 변경 트레이닝(alteration training)되게 하는 제3 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  22. 제21 항에 있어서,
    상기 컴퓨터 프로그램 코드 수단은 상기 프로세서로 하여금,
    상기 인터페이스 내의 프로그램가능 컴포넌트에서 상기 로직이 실행되게 하고;
    상기 프로그램가능 컴포턴트에서 출력이 생성되게 하고, 상기 출력은 상기 실행의 결과이며; 그리고
    상기 프로그램가능 컴포넌트의 출력에 근거하여 상기 메모리 디바이스가 트레이닝되게 하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  23. 제21 항에 있어서,
    상기 컴퓨터 프로그램 코드 수단은 HDL 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  24. 제23 항에 있어서,
    상기 HDL 명령어들은, 프로세싱될 때,
    상기 인터페이스 내의 프로그램가능 컴포넌트에서 프로그램가능 로직이 실행되게 하고;
    상기 프로그램가능 컴포넌트에서 출력이 생성되게 하고; 그리고
    상기 프로그램가능 컴포넌트의 출력에 근거하여 상기 메모리 디바이스의 동작의 변경을 야기시킬 수 있는 프로세서를 제조하는 데 사용되는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  25. 메모리 디바이스에 명령어들을 전송하기 위한 제어 로직이 저장된 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 메모리 디바이스에서의 상기 명령어들의 실행은, 상기 메모리 디바이스 내에 있으며 메모리 셀들과 통신하는 인터페이스로 하여금, 입력 신호를 수신하게 하고, 그리고 동작 조건에 관하여 상기 인터페이스를 트레이닝하게 하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  26. 제25 항에 있어서,
    상기 컴퓨터 프로그램 코드 수단은 프로세서가 상기 명령어들을 상기 메모리 디바이스로 전송하게 하고, 상기 메모리 디바이스에서의 상기 명령어들의 실행은, 상기 메모리 디바이스 내에 있으며 메모리 셀들과 통신하는 인터페이스로 하여금, 입력 신호를 수시하게 하고, 그리고 동작 조건에 관하여 상기 인터페이스를 트레이닝하게 하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  27. 제25 항에 있어서,
    상기 컴퓨터 프로그램 코드 수단은 HDL 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  28. 제27 항에 있어서,
    상기 HDL 명령어들은, 프로세싱될 때, 상기 명령어들을 상기 메모리 디바이스로 전송할 수 있는 프로세서를 제조하는 데 사용되도록 된 것을 특징으로 하는 컴퓨터 프로그램 제품.
  29. 메모리 디바이스에 명령어들을 전송하도록 된 장치로서,
    상기 메모리 디바이스에서의 상기 명령어들의 실행은, 상기 메모리 디바이스 내에 있으며 메모리 셀들과 통신하는 인터페이스로 하여금 입력 신호를 수신하게 하고, 동작 조건에 관하여 상기 인터페이스를 트레이닝하게 하는 것을 특징으로 하는 장치.
  30. 메모리 디바이스와 통신하는 방법으로서,
    상기 메모리 디바이스에 명령어들을 전송하는 단계와, 여기서 상기 메모리 디바이스에서의 상기 명령어들의 실행은 상기 메모리 디바이스 내에 있으며 메모리 셀들과 통신하는 인터페이스로하여금 입력 신호를 수신하게 하고 동작 조건에 관하여 상기 인터페이스를 트레이닝하게 하는 것을 특징으로 하는 메모리 디바이스와 통신하는 방법.
KR1020107028531A 2008-05-29 2009-05-29 메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트 KR20110010793A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7198908P 2008-05-29 2008-05-29
US61/071,989 2008-05-29

Publications (1)

Publication Number Publication Date
KR20110010793A true KR20110010793A (ko) 2011-02-07

Family

ID=41377437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107028531A KR20110010793A (ko) 2008-05-29 2009-05-29 메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트

Country Status (6)

Country Link
US (1) US20090300278A1 (ko)
EP (1) EP2288993A4 (ko)
JP (1) JP2011522324A (ko)
KR (1) KR20110010793A (ko)
CN (1) CN102047229A (ko)
WO (1) WO2009145903A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120095221A (ko) 2011-02-18 2012-08-28 삼성전자주식회사 메모리 소자 및 메모리 컨트롤 유닛
US8819316B2 (en) 2011-06-21 2014-08-26 Taejin Info Tech Co., Ltd. Two-way raid controller with programmable host interface for a semiconductor storage device
US9081666B2 (en) * 2013-02-15 2015-07-14 Seagate Technology Llc Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer
KR20180007374A (ko) 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
US10002651B2 (en) * 2016-10-06 2018-06-19 SK Hynix Inc. Semiconductor devices
US10628049B2 (en) 2017-07-12 2020-04-21 Sandisk Technologies Llc Systems and methods for on-die control of memory command, timing, and/or control signals
KR102433040B1 (ko) 2017-12-12 2022-08-18 삼성전자주식회사 메모리 모듈, 메모리 시스템 및 메모리 모듈의 동작 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513103B1 (en) * 1997-10-10 2003-01-28 Rambus Inc. Method and apparatus for adjusting the performance of a synchronous memory system
US6430696B1 (en) * 1998-11-30 2002-08-06 Micron Technology, Inc. Method and apparatus for high speed data capture utilizing bit-to-bit timing correction, and memory device using same
AU2001243463A1 (en) * 2000-03-10 2001-09-24 Arc International Plc Memory interface and method of interfacing between functional entities
US7571303B2 (en) * 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
US7158536B2 (en) * 2004-01-28 2007-01-02 Rambus Inc. Adaptive-allocation of I/O bandwidth using a configurable interconnect topology
US7246274B2 (en) * 2004-09-10 2007-07-17 Rambus Inc. Method and apparatus for estimating random jitter (RJ) and deterministic jitter (DJ) from bit error rate (BER)
US20060164909A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation System, method and storage medium for providing programmable delay chains for a memory system
KR101377305B1 (ko) * 2005-06-24 2014-03-25 구글 인코포레이티드 집적 메모리 코어 및 메모리 인터페이스 회로
US7225097B2 (en) * 2005-07-28 2007-05-29 International Business Machines Corporation Methods and apparatus for memory calibration
US8121237B2 (en) * 2006-03-16 2012-02-21 Rambus Inc. Signaling system with adaptive timing calibration
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7661010B2 (en) * 2006-05-31 2010-02-09 Mosaid Technologies Incorporated Apparatus and method for interfacing to a memory
US20080168298A1 (en) * 2007-01-05 2008-07-10 Mark David Bellows Methods and Apparatus for Calibrating Heterogeneous Memory Interfaces
DE102007010284A1 (de) * 2007-03-02 2008-09-04 Qimonda Ag Schnittstellenvorrichtung, Schaltungsmodul, Schaltungssystem, Vorrichtung für eine Datenkommunikation und Verfahren zum Kalibrieren eines Schaltungsmoduls
US8207976B2 (en) * 2007-03-15 2012-06-26 Qimonda Ag Circuit
US7865660B2 (en) * 2007-04-16 2011-01-04 Montage Technology Group Ltd. Calibration of read/write memory access via advanced memory buffer
US7877645B2 (en) * 2007-07-30 2011-01-25 Hewlett-Packard Development Company, L.P. Use of operational configuration parameters to predict system failures
US7991573B2 (en) * 2007-12-19 2011-08-02 Qimonda Ag Integrated circuit including calibration circuit

Also Published As

Publication number Publication date
EP2288993A1 (en) 2011-03-02
US20090300278A1 (en) 2009-12-03
WO2009145903A1 (en) 2009-12-03
EP2288993A4 (en) 2012-05-09
CN102047229A (zh) 2011-05-04
JP2011522324A (ja) 2011-07-28

Similar Documents

Publication Publication Date Title
KR20110010793A (ko) 메모리 디바이스 트레이닝을 위한 임베디드 프로그램가능 컴포넌트
US11016790B2 (en) Overflow detection and correction in state machine engines
JP6154824B2 (ja) ステートマシンラチスにおけるブール型論理
TWI515668B (zh) 用於一狀態機中偵測之方法及系統
US9665083B2 (en) Counter operation in a state machine lattice
KR101698237B1 (ko) 계층적 구조를 이용한 데이터 분석
KR102165134B1 (ko) 상태 기계 엔진에서 상태 벡터 데이터를 사용하기 위한 방법들 및 시스템들
KR20150052125A (ko) 상태 기계 엔진들에서의 지시 삽입
JP2006040293A (ja) 直列ataインターフェースのデータ伝送速度の設定装置、及びその方法
RU2416819C2 (ru) Способ, компьютерный программный продукт и устройство для соединения с картой памяти
KR100996900B1 (ko) 메모리 클록 설정 기능을 갖는 정보 처리 장치 및 메모리 클록 설정 방법
WO2020054083A1 (ja) 情報処理装置および情報処理方法
CN111722827B (zh) 一种高效ddr访问方法
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
KR101593835B1 (ko) Plc 시스템
CN110265075B (zh) 一种内存接口的控制方法和系统
CN110362526B (zh) Spi从机设备、存储和适配方法及计算机存储介质
CN104020981B (zh) 一种中央处理器及其指令处理方法
CN111930510A (zh) 电子设备和数据处理方法
CN110704998A (zh) 多媒体ip带宽性能的验证方法及装置
JP7325658B2 (ja) プログラム実行装置、及び、通信方法
US20230244617A1 (en) Memory training method, memory controller, processor, and electronic device
KR100274644B1 (ko) 데이터 인터페이스 장치
EP1460543A2 (en) Method and apparatus of error processing according to data types
KR101964897B1 (ko) 저전력 프로그래밍이 가능한 논리회로로 구현되는 메모리 장치 및 이의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid