KR20160003839A - 비휘발성 메모리 인터페이스 - Google Patents

비휘발성 메모리 인터페이스 Download PDF

Info

Publication number
KR20160003839A
KR20160003839A KR1020157034230A KR20157034230A KR20160003839A KR 20160003839 A KR20160003839 A KR 20160003839A KR 1020157034230 A KR1020157034230 A KR 1020157034230A KR 20157034230 A KR20157034230 A KR 20157034230A KR 20160003839 A KR20160003839 A KR 20160003839A
Authority
KR
South Korea
Prior art keywords
volatile memory
bus
request
indication
memory
Prior art date
Application number
KR1020157034230A
Other languages
English (en)
Other versions
KR101836219B1 (ko
Inventor
엥 훈 우이
로버트 제이. 2세 로이어
마이클 더블유. 윌리엄스
제프리 알. 윌콕스
리테쉬 비. 트리베디
블레이즈 패닝
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 KR20160003839A publication Critical patent/KR20160003839A/ko
Application granted granted Critical
Publication of KR101836219B1 publication Critical patent/KR101836219B1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

일 실시예에서, 메모리 인터페이스는 요청이 송신되고 있다는 표시를 송신할 수 있다. 이 표시는 메모리 인터페이스와 비휘발성 메모리 사이의 점대점 버스를 통해 비휘발성 메모리로 송신될 수 있다. 메모리 인터페이스는 요청을 버스를 통해 비휘발성 메모리로 송신할 수 있다. 요청은 데이터를 저장하거나 판독하기 위한 위치를 식별하는 데 사용될 수 있는 주소를 포함할 수 있다. 비휘발성 메모리는 버스로부터 요청을 획득하고 요청을 처리할 수 있다. 요청을 처리한 후에, 비휘발성 메모리는 비휘발성 메모리가 메모리 인터페이스로 송신할 응답을 가지고 있다는 것을 나타내는 표시를 메모리 인터페이스로 송신할 수 있다. 메모리 인터페이스는 버스에 대한 액세스를 비휘발성 메모리에 부여할 수 있다. 버스에 대한 액세스를 부여받은 후에, 비휘발성 메모리는 응답을 메모리 인터페이스로 송신할 수 있다.

Description

비휘발성 메모리 인터페이스{NON-VOLATILE MEMORY INTERFACE}
컴퓨팅 디바이스는 정보를 저장하는 데 사용될 수 있는 저장소를 포함할 수 있다. 정보는, 예를 들어, 데이터 및/또는 실행 가능 명령어들을 포함할 수 있다. 저장소는 주 저장소(primary storage) 및 보조 저장소(secondary storage)를 포함할 수 있다. 주 저장소는, 예를 들어, 프로세서에 대한 내부 저장소(internal storage)를 제공할 수 있다. 보조 저장소는, 예를 들어, 프로세서에 대한 외부 저장소(external storage)를 제공할 수 있다. 프로세서는 하나 이상의 버스들을 통해 저장소에 액세스할 수 있다. 버스들은 프로세서와 저장소 사이에서 정보를 전송하는 데 사용될 수 있다.
본 명세서에 포함되어 그의 일부를 구성하는 첨부 도면들은 본 명세서에 기술된 하나 이상의 실시예들을 나타내고, 이 설명과 함께, 이 실시예들을 설명한다.
도 1은 컴퓨팅 디바이스의 일례의 블록도.
도 2는 트랜잭션(transaction)들과 연관되어 있을 수 있는 단계(phase)들의 예들을 나타낸 도면.
도 3은 판독 트랜잭션(read transaction)과 연관되어 있을 수 있는 타이밍도의 일례를 나타낸 도면.
도 4는 기입 트랜잭션(write transaction)과 연관되어 있을 수 있는 타이밍도의 일례를 나타낸 도면.
도 5a 및 도 5b는 판독 트랜잭션 동안 호스트에 의해 수행될 수 있는 예시적인 동작들의 흐름도.
도 6a 및 도 6b는 판독 트랜잭션 동안 클라이언트에 의해 수행될 수 있는 예시적인 동작들의 흐름도.
도 7a 및 도 7b는 기입 트랜잭션 동안 호스트에 의해 수행될 수 있는 예시적인 동작들의 흐름도.
도 8a 및 도 8b는 판독 트랜잭션 동안 클라이언트에 의해 수행될 수 있는 예시적인 동작들의 흐름도.
도 9는 컴퓨팅 디바이스의 다른 예의 블록도.
이하의 상세한 설명은 첨부 도면들을 참조한다. 상이한 도면들에서의 동일한 참조 번호들은 동일하거나 유사한 요소들을 나타낼 수 있다. 또한, 이하의 상세한 설명은 본 발명을 제한하지 않는다.
컴퓨팅 디바이스는 컴퓨팅 디바이스가 정보(예컨대, 데이터, 컴퓨터 실행 가능 명령어들)를 저장하기 위해 사용할 수 있는 저장소를 포함할 수 있다. 저장소는 휘발성 및/또는 비휘발성일 수 있다. 휘발성 저장소는 컴퓨팅 디바이스로부터 전원이 제거될 때 상실될 수 있는 정보를 저장하는 데 사용될 수 있다. 비휘발성 저장소는 컴퓨팅 디바이스에 대한 전원이 상실된 후에 존속(유지)되어야 하는 정보를 저장하는 데 사용될 수 있다.
예를 들어, 컴퓨팅 디바이스는 CPU(central processing unit) 및 저장소를 포함할 수 있다. 저장소는, 예를 들어, 휘발성 메모리 및 비휘발성 메모리(non-volatile memory)(NVM)를 포함할 수 있다. 휘발성 메모리는 컴퓨팅 디바이스로부터 전원이 제거된 후에 상실될 수 있는 정보의 저장을 제공할 수 있다. 반면에, NVM은 컴퓨팅 디바이스로부터 전원이 제거된 후에 유지되어야 하는 정보의 저장을 제공할 수 있다. 컴퓨팅 디바이스에 대한 전원이 복구된 후에, CPU는 유지된 정보를 NVM으로부터 검색할 수 있다.
저장소는 정보를 저장하는 데 사용될 수 있는 하나 이상의 메모리 디바이스들을 포함할 수 있다. 메모리 디바이스는 하나 이상의 어레이들을 포함할 수 있고, 여기서 어레이는 메모리 디바이스에 정보를 저장하는 데 사용될 수 있는 하나 이상의 메모리 셀들을 포함할 수 있다.
메모리 셀은 주소와 연관되어 있을 수 있다. 주소는 메모리 셀을 식별하는 데 사용될 수 있다. 정보가 주소를 사용하여 메모리 셀에 기입되고 그리고/또는 그로부터 판독될 수 있다. 예를 들어, 메모리 디바이스 내의 메모리 셀은 특정의 주소(예컨대, 0x100)와 연관되어 있을 수 있다. 기입 트랜잭션은 주소 및 메모리 셀에 기입될 데이터를 명시할 수 있다. 주소는 메모리 셀을 식별하는 데 사용될 수 있고, 주소가 식별된 후에 데이터가 메모리 셀에 기입될 수 있다.
저장소를 포함할 수 있는 디바이스에 대해 명령을 발행하는 것에 의해 저장소가 액세스(예컨대, 판독, 기입)될 수 있다. 명령은 버스를 통해 디바이스에 전송될 수 있는 트랜잭션의 일부일 수 있다. 명령과 연관된 데이터도 버스를 통해 전송될 수 있다. 버스는 명령 및/또는 데이터를 디바이스로 전송하기 위한 설비(provisions)(예컨대, 배선)를 포함할 수 있다.
예를 들어, 컴퓨팅 디바이스는 CPU 및 NVM을 포함할 수 있다. CPU는 버스를 통해 NVM에 결합될 수 있다. 버스는 CPU와 NVM 사이에서 명령들 및/또는 데이터를 전송하는 데 사용될 수 있다. 버스는, 예를 들어, 명령들 및/또는 데이터를 전송하는 데 사용될 수 있는 하나 이상의 배선들을 포함할 수 있는 점대점 버스(point-to-point bus)일 수 있다.
저장소는 하나 이상의 저장 모듈들을 포함할 수 있다. 저장 모듈들은 저장소에 포함된 하나 이상의 메모리 디바이스들을 포함할 수 있다. 저장 모듈들의 예들은 DIMM(dual in-line memory module), SD(secure digital) 카드, MMC(multimedia card), CF(CompactFlash) 카드, 메모리 스틱, 및 SIMM(single in-line memory module)을 포함할 수 있지만, 이들로 제한되지 않는다.
본 명세서에 기술된 기법들은 컴퓨팅 디바이스에서 구현될 수 있다. 본 명세서에 기술된 기법들을 구현할 수 있는 컴퓨팅 디바이스들의 예들은 스마트폰, 태블릿, 울트라북, 랩톱, 메인프레임, 서버, 및 데스크톱 컴퓨터를 포함할 수 있지만, 이들로 제한되지 않는다.
도 1은 본 명세서에 기술된 다양한 기법들을 구현할 수 있는 컴퓨팅 디바이스(100)의 일례의 블록도를 나타낸 것이다. 도 1을 참조하면, 컴퓨팅 디바이스(100)는, 예를 들어, 휘발성 메모리(120), 처리 로직(130), HC(host controller)(140), 및 비휘발성 메모리(150)와 같은 다양한 구성요소들을 포함할 수 있다.
유의할 점은, 도 1이 컴퓨팅 디바이스(100)의 예시적인 실시예를 나타낸다는 것이다. 컴퓨팅 디바이스(100)의 다른 실시예들은 도 1에 예시된 구성요소들보다 더 많은 구성요소들 또는 더 적은 구성요소들을 포함할 수 있다. 게다가, 구성요소들이 도 1에 예시된 것과 상이한 방식으로 배열될 수 있다. 예를 들어, 컴퓨팅 디바이스(100)의 일 실시예는 인터넷과 같은 네트워크와 통신하는 데 사용될 수 있는 통신 인터페이스를 포함할 수 있다. 또한, 유의할 점은, 컴퓨팅 디바이스(100)의 다른 실시예들에 포함된 다양한 구성요소들에 의해 수행되는 기능들이 본 명세서에 기술된 것과 상이한 방식으로 구성요소들 간에 분산되어 있을 수 있다는 것이다.
휘발성 메모리(120)는 컴퓨팅 디바이스(100)에 대한 저장소를 제공할 수 있다. 이 저장소는, 예를 들어, 데이터 및/또는 컴퓨터 실행 가능 명령어들과 같은 정보를 저장하는 데 사용될 수 있다. 이 저장소는, 예를 들어, 컴퓨팅 디바이스(100)에 대한 캐시 메모리[예컨대, 레벨 2(L2) 캐시]를 구현할 수 있는 고속 저장소일 수 있다. 휘발성 메모리(120)는, 예를 들어, 정보를 저장하는 데 사용될 수 있는 메모리 디바이스들과 같은, 하나 이상의 디바이스들을 포함할 수 있다.
비휘발성 메모리(150)도 컴퓨팅 디바이스(100)에 대한 저장소를 제공할 수 있다. 이 저장소는, 예를 들어, 휘발성 메모리(120)보다 더 느릴 수 있고 더 높은 저장 용량을 가질 수 있다. 이 저장소는 정보를 저장하는 데 사용될 수 있다. 정보는 비휘발성 메모리(150)에 포함된 하나 이상의 디바이스들 상에 저장될 수 있다. 이 디바이스들은, 예를 들어, 하나 이상의 메모리 디바이스들을 포함할 수 있다.
휘발성 메모리 디바이스는, 메모리 디바이스로부터 전원이 제거될 때, 메모리 디바이스에 저장된 정보를 상실할 수 있는 메모리 디바이스일 수 있다. 비휘발성 메모리 디바이스는, 메모리 디바이스로부터 전원이 제거될 때, 메모리 디바이스에 저장된 정보를 유지할 수 있는 메모리 디바이스일 수 있다. 메모리 디바이스들의 예들은 DRAM(dynamic RAM) 디바이스, 플래시 메모리 디바이스, SRAM(static RAM) 디바이스, ZRAM(zero-capacitor RAM) 디바이스, TTRAM(twin transistor RAM) 디바이스, ROM(read-only memory) 디바이스, FeTRAM(ferroelectric transistor RAM) 디바이스, MRAM(magneto-resistive RAM) 디바이스, 3D(three dimensional) 교차점 메모리(cross point memory) 디바이스[예컨대, PCM(phase change memory) 디바이스], 나노 와이어 기반 디바이스, RRAM(resistive RAM) 디바이스, SEEPROM(serial electrically erasable programmable ROM) 디바이스, STT(spin transfer torque) MRAM 디바이스, 및 직렬 플래시 디바이스를 포함한다.
처리 로직(130)은 정보를 해석하고, 실행하며, 그리고/또는 다른 방식으로 처리하기 위한 로직을 포함할 수 있다. 정보는, 예를 들어, 휘발성 메모리(120) 및/또는 비휘발성 메모리(150)에 저장될 수 있다. 정보는, 예를 들어, 데이터 및/또는 컴퓨터 실행 가능 명령어들을 포함할 수 있다.
처리 로직(130)은 각종의 이질적 하드웨어를 포함할 수 있다. 예를 들어, 하드웨어는, 예를 들어, 정보를 해석하고, 실행하며, 조작하고, 그리고/또는 다른 방식으로 처리할 수 있는, 하나 이상의 프로세서들, 마이크로프로세서들, FPGA(field programmable gate array)들, ASIP(application specific instruction set processor)들, ASIC(application specific integrated circuit)들, CPLD(complex programmable logic device)들, GPU(graphics processing unit)들, 및/또는 다른 유형들의 처리 로직의 어떤 조합을 포함할 수 있다. 처리 로직(130)은 단일의 코어 또는 다수의 코어들을 포함할 수 있다.
버스들(160, 170, 180, 및 190)은 점대점 버스들일 수 있다. 버스들(160, 170, 180, 및 190)은 구성요소들 사이에서 다양한 신호들을 전달하는 데 사용될 수 있는 전기 도체들(예컨대, 배선들)을 포함할 수 있다. 신호들은, 예를 들어, 제어 신호들 및/또는 데이터를 포함할 수 있다. 예를 들어, 버스(190)는 비휘발성 메모리 인터페이스(NMI)(146)와 비휘발성 메모리(150) 사이에서 신호들을 전달하는 데 사용될 수 있는 복수의 배선들을 포함할 수 있는 점대점 버스일 수 있다. 신호들은 다양한 제어 신호들 및 데이터를 포함할 수 있다. 신호들은 개별적인 배선들에 의해 전달될 수 있다. 예를 들어, 제1 배선은 NMI(146)와 비휘발성 메모리 사이에서 요청 및 데이터 정보를 전달하는 데 사용될 수 있다. 제2 배선은 요청 및 데이터 정보를 획득(예컨대, 판독, 수신)하기 위해 사용될 수 있는 스트로브 정보를 전달하는 데 사용될 수 있다. 제3 배선은 비휘발성 메모리(150)가 비휘발성 메모리(150)로부터 NMI(146) 등으로 정보를 전송하기 위해 제1 및 제2 배선들의 소유권을 부여받았는지를 나타내는 데 사용될 수 있다.
HC(140)는 컴퓨팅 디바이스(100) 내의 다양한 구성요소들 사이에서 정보가 전송되게 할 수 있는 로직을 포함할 수 있다. 구성요소들은, 예를 들어, 휘발성 메모리(120), 처리 로직(130) 및/또는 비휘발성 메모리(150)를 포함할 수 있다. 정보는 구성요소들을 HC(140)와 결합시킬 수 있는 버스들(160, 170, 180, 및 190)을 통해 구성요소들 사이에서 전송될 수 있다.
HC(140)는 컴퓨팅 디바이스(100) 내의 다양한 구성요소들 사이의 인터페이스들로서 사용될 수 있는 로직을 포함할 수 있다. 인터페이스들은 정보가 구성요소들 사이에서 교환(예컨대, 전송)되게 할 수 있다. 인터페이스들은, 예를 들어, 휘발성 메모리 인터페이스(VMI)(142) 및 NMI(146)를 포함할 수 있다. VMI(142)는 처리 로직(130)과 휘발성 메모리(120)를 인터페이스 하기 위해 사용될 수 있다. NMI(146)는 처리 로직(130)과 비휘발성 메모리(150)를 인터페이스 하기 위해 사용될 수 있다.
VMI(142)는 정보가 버스들(160 및 170)을 통해 휘발성 메모리(120)와 처리 로직(130) 사이에서 전달(예컨대, 전송)되게 할 수 있는 로직을 포함할 수 있다. 구체적으로는, VMI(142)는 정보가 버스(160)를 통해 VMI(142)와 휘발성 메모리(120) 사이에서 전달되게 할 수 있는 로직을 포함할 수 있다. 더욱이, VMI(142)는 정보가 버스(170)를 통해 처리 로직(130)과 VMI(142) 사이에서 전달되게 할 수 있는 로직을 포함할 수 있다. 정보는, 예를 들어, 명령들 및/또는 데이터를 포함할 수 있다. VMI(142)에 포함될 수 있는 로직의 예들은 상태 기계(state machines), 버스 송수신기, 레지스터, 및/또는 다른 로직을 포함할 수 있다.
NMI(146)는 정보가 버스들(180 및 190)을 통해 비휘발성 메모리(150)와 처리 로직(130) 사이에서 전달되게 할 수 있는 로직을 포함할 수 있다. 구체적으로는, NMI(146)는 버스(180)를 통해 NMI(146)와 처리 로직(130) 사이에서 정보를 전달하는 데 사용될 수 있는 로직을 포함할 수 있다. 더욱이, NMI(146)는 버스(190)를 통해 비휘발성 메모리(150)와 NMI(146) 사이에서 정보를 전달하는 데 사용될 수 있는 로직을 포함할 수 있다. NMI(146)에 포함될 수 있는 로직은, 예를 들어, 상태 기계, 버스 송수신기, 레지스터, 및/또는 다른 로직을 포함할 수 있다.
정보는, 예를 들어, 요청들 및/또는 데이터를 포함할 수 있다. 요청들은 명령 정보(예컨대, 판독 명령, 기입 명령) 및/또는 주소 정보(예컨대, 판독될 주소, 기입될 주소)를 포함할 수 있다. 정보는 트랜잭션들을 사용하여 전달될 수 있다.
트랜잭션은 버스를 통해 2개의 엔티티들 사이에서 정보를 전달하는 데 사용될 수 있다. 예를 들어, 정보는 트랜잭션들을 사용하여 버스(190)를 통해 NMI(146)와 비휘발성 메모리(150) 사이에서 전달될 수 있다. 트랜잭션을 사용하여 전달되는 정보는, 예를 들어, 요청, 데이터, 및/또는 응답 정보를 포함할 수 있다.
트랜잭션은 특정 유형일 수 있다. 예를 들어, 트랜잭션은 기입 트랜잭션 또는 판독 트랜잭션일 수 있다. 기입 트랜잭션은, 예를 들어, 정보를 비휘발성 메모리(150)와 같은 저장소에 기입하는 데 사용될 수 있다. 판독 트랜잭션은, 예를 들어, 정보를 비휘발성 메모리(150)와 같은 저장소로부터 판독하는 데 사용될 수 있다.
트랜잭션은 다수의 단계들을 포함할 수 있다. 예를 들어, 트랜잭션은 요청 단계(request phase), 데이터 단계(data phase), 및/또는 응답 단계(response phase)를 포함할 수 있다. 단계는 그 단계 동안 엔티티들 사이에서 전송될 수 있는 특정 유형들의 정보를 수반할 수 있다. 예를 들어, 요청 단계 동안, 명령 및/또는 주소 정보가 엔티티들 사이에서 전송될 수 있다.
도 2는 버스(190)와 같은 버스를 통해 NMI(146) 및 비휘발성 메모리(150)와 같은 엔티티들 사이에서 전송될 수 있는 판독 트랜잭션 및 기입 트랜잭션과 연관되어 있을 수 있는 예시적인 단계들을 나타낸 것이다. 도 2를 참조하면, 참조 번호(220)는 판독 트랜잭션 동안 전송될 수 있는 (1) 타임라인(timeline) 및 (2) 정보를 포함한다. 참조 번호(260)는 기입 트랜잭션과 연관되어 있을 수 있는 단계들에서 전송될 수 있는 (1) 타임라인 및 (2) 정보를 포함한다.
판독 트랜잭션은 요청 단계, 데이터 단계, 및 응답 단계를 포함할 수 있다. 요청 단계는 시각(230a)에서 일어날 수 있다. 요청 단계는 버스를 통해 엔티티들 사이에서 요청(240a)을 전송하는 것을 포함할 수 있다. 요청(240a)은, 예를 들어, 프리앰블(preamble), 명령, 및/또는 주소를 포함할 수 있다. 명령은 수행되어야 하는 동작(이 예에서, 판독 동작)을 식별해줄 수 있다. 주소는 판독되어야 하는 위치를 식별해줄 수 있다.
프리앰블은 요청(240a)을 획득할 준비를 하는 데 사용될 수 있다. 준비하는 것은, 예를 들어, 버스로부터 요청(240a)을 획득하는 훈련을 하기 위해 프리앰블을 사용하는 것을 포함할 수 있다. 프리앰블은 훈련을 수행하는 데 사용될 수 있는 사전 정의된 비트 시퀀스를 포함할 수 있다.
예를 들어, 엔티티들이 NMI(146) 및 비휘발성 메모리(150)를 포함하고, 버스가 버스(190)를 포함하는 것으로 가정한다. 요청 단계 동안, 요청(240a)이 버스(190)를 통해 NMI(146)로부터 비휘발성 메모리(150)로 송신될 수 있다. 요청(240a)은 프리앰블, 명령, 및 주소를 포함할 수 있다. 프리앰블은 버스(190)로부터 명령 및 주소를 수신할 준비를 하기 위해 비휘발성 메모리(150)에 의해 사용될 수 있는 사전 정의된 비트 시퀀스를 포함할 수 있다. 명령은 비휘발성 메모리(150)에 의해 수행되어야 하는 판독 동작을 식별해줄 수 있다. 주소는 판독되어야 하는 비휘발성 메모리(150)에서의 위치를 식별해줄 수 있다.
데이터 단계는 요청 단계 후에 시작될 수 있다. 데이터 단계는 엔티티가 요청을 처리할 수 있는 시각(230b)을 포함할 수 있다. 예를 들어, 데이터 단계 동안, 비휘발성 메모리(150)는 이상의 요청을 처리할 수 있다. 여기서, 처리는, 예를 들어, 주소에 의해 식별된 위치에서 비휘발성 메모리(150)로부터 데이터(240b)를 판독하는 것을 포함할 수 있다.
데이터 단계는 또한 데이터(240b)가 엔티티들 사이에서 전송되는 시각(230c)을 포함할 수 있다. 예를 들어, 데이터(240b)를 판독한 후에, 데이터(240b)는 버스(190)를 통해 비휘발성 메모리(150)로부터 NMI(146)로 전송될 수 있다.
시각(230d)에서, 요청은 응답 단계에 진입할 수 있다. 응답 단계는 요청에 대한 응답(240c)을 송신하는 것을 포함할 수 있다. 응답(240c)은 요청이 처리되었다는 표시를 제공할 수 있다. 응답(240c)을 획득할 준비를 하는 데 사용될 수 있는 프리앰블이 응답(240c)보다 선행할 수 있다. 프리앰블은 응답(240c)을 획득할 준비를 하는 데 사용될 수 있다. 준비하는 것은, 예를 들어, 버스로부터 응답(240c)을 획득하는 훈련을 하기 위해 프리앰블을 사용하는 것을 포함할 수 있다. 프리앰블은 훈련을 수행하는 데 사용될 수 있는 사전 정의된 비트 시퀀스를 포함할 수 있다.
예를 들어, 응답 단계 동안, 응답(240c) 및 프리앰블이 비휘발성 메모리(150)로부터 버스(190)를 거쳐 NMI(146)로 송신될 수 있다. 응답(240c)은 요청이 비휘발성 메모리(150)에 의해 처리되었다는 표시를 NMI(146)에 제공할 수 있다. 응답(240c)은, 예를 들어, 판독 요청과 연관되어 있을 수 있는 상태를 포함할 수 있다. 상태는 비휘발성 메모리(150)에서 수행된 판독 동작이 성공적으로 수행되었는지 여부를 나타낼 수 있다. 프리앰블이 응답(240c)보다 선행할 수 있다. NMI(146)는 버스(190)로부터 응답(240c)을 수신할 준비를 하기 위해 프리앰블을 사용할 수 있다. 준비하는 것은, 앞서 기술된 것과 같이, 훈련하는 것을 포함할 수 있다.
이제 참조 번호(260)를 참조하면, 기입 트랜잭션도 요청 단계, 데이터 단계, 및 응답 단계를 포함할 수 있다. 시각(270a)에서, 요청 단계는 요청(280a)을 포함할 수 있다. 요청(280a)은, 예를 들어, 프리앰블, 명령, 및/또는 주소를 포함할 수 있다. 프리앰블은 명령 및/또는 주소를 수신하는 데 사용될 수 있다. 명령은 기입 동작이 수행되어야 한다는 것을 나타낼 수 있고, 주소는 데이터가 기입되어야 하는 위치를 식별해줄 수 있다.
예를 들어, 엔티티들이 NMI(146) 및 비휘발성 메모리(150)를 포함하고, 버스가 버스(190)를 포함하는 것으로 가정한다. 요청 단계 동안, 요청(280a)이 버스(190)를 통해 NMI(146)로부터 비휘발성 메모리(150)로 송신될 수 있다. 요청(280a)은 프리앰블, 명령, 및 주소를 포함할 수 있다. 프리앰블은 명령 및 주소를 수신할 준비를 하기 위해 비휘발성 메모리(150)에 의해 사용될 수 있다. 준비하는 것은, 앞서 기술된 것과 같이, 훈련하는 것을 포함할 수 있다. 명령은 비휘발성 메모리(150)에 의해 수행되어야 하는 기입 동작을 식별해줄 수 있다. 주소는 기입되어야 하는 비휘발성 메모리(150)에서의 위치를 식별해줄 수 있다.
데이터 단계는 요청 단계 후에 일어날 수 있다. 데이터 단계 동안, 시각(270b)에 나타낸 바와 같이, 기입될 데이터(280b)가 엔티티들 사이에서 전송될 수 있다. 또한, 데이터 단계 동안, 시각(270c)에서, 데이터가, 예를 들어, 요청(280a)에서 식별된 위치에 기입될 수 있다.
예를 들어, 데이터 단계 동안, 데이터(280b)가 버스(190)를 통해 NMI(146)로부터 비휘발성 메모리(150)로 전송될 수 있다. 데이터(280b)를 수신한 후에, 비휘발성 메모리(150)는 데이터를 요청(280a)에 포함된 주소를 사용하여 식별될 수 있는 비휘발성 메모리(150)에서의 위치에 기입할 수 있다.
응답 단계는, 시각(270d)에 나타낸 바와 같이, 데이터 단계에 후속할 수 있다. 응답 단계 동안, 응답(280c)이 엔티티들 사이에서 전송될 수 있다. 응답(280c)은, 예를 들어, 기입 요청과 연관된 상태를 포함할 수 있다. 상태는, 예를 들어, 기입 요청이 성공적으로 완료되었는지 여부를 나타낼 수 있다.
예를 들어, 비휘발성 메모리(150)는 기입 동작이 성공적이었는지 여부를 나타낼 수 있는 상태를 포함할 수 있는 응답(280c)을 생성할 수 있다. 응답 단계 동안, 비휘발성 메모리(150)는 응답(280c)을 버스(190)를 거쳐 NMI(146)로 전송할 수 있다.
다양한 신호들이 버스(190)를 통해 NMI(146)와 비휘발성 메모리(150) 사이에서 전송될 수 있다. 버스(190)는 연결된 버스(예컨대, 점대점 버스)일 수 있고, 신호들 각각은, 예를 들어, 버스(190)에 포함될 수 있는 개별적인 연결들(예컨대, 전기 전도성 배선들, 광 연결들)을 통해 전달될 수 있다. 신호들은, 예를 들어, 이하의 표에 열거된 신호들을 포함할 수 있다.
Figure pct00001
유의할 점은, 이상의 표가 NMI(146)와 비휘발성 메모리(150) 사이에서 전송될 수 있는 신호들의 예들을 제공한다는 것이다. 예를 들어, 버스(190)를 통해 NMI(146)와 비휘발성 메모리(150) 사이에서 다른 신호들도 전송될 수 있다. 이 신호들은, 예를 들어, NMI(146) 및/또는 비휘발성 메모리(150)의 동작을 리셋시키는 데 사용될 수 있는 신호, 임피던스 교정(impedance calibration)을 위한 기준을 제공할 수 있는 신호 및/또는 예를 들어, 버스(190)를 통해 전송되는 정보의 오류 검출 및/또는 정정을 제공할 수 있는 검사 비트 신호들을 포함할 수 있다.
또 다른 신호들은, 예를 들어, 전력 관리를 위해 사용될 수 있는 신호들을 포함할 수 있다. 예를 들어, 비휘발성 메모리(150)에 저전력 상태에 진입하라고 지시하기 위해 NMI(146)에 의해 사용될 수 있는 신호가 포함될 수 있다. 비휘발성 메모리(150)에 저전력 상태로부터 이탈하라고 지시하기 위해 NMI(146)에 의해 사용될 수 있는 다른 신호가 포함될 수 있다.
유의할 점은, 버스(190)를 통해 신호들을 전달하는 배선들이, 예를 들어, 비휘발성 메모리(150) 및/또는 NMI(146)의 상태에 기초하여 특정 신호들을 전달하도록 용도 변경될 수 있다는 것이다. 예를 들어, ACT 및 RRDY를 전달하는 배선들이, 앞서 기술된 것과 같은, 비휘발성 메모리(150)와 연관된 전력 상태를 관리하는 데 사용하기 위해 용도 변경될 수 있다.
비휘발성 메모리(150)와 NMI(146) 사이에서 전송되는 신호들이 트랜잭션 동안 다양한 표시들을 제공하기 위해 다양한 때에 어써트(assert)되고 디어써트(deassert)될 수 있다. 도 3은, 예를 들어, NMI(146)와 비휘발성 메모리(150) 사이의 판독 트랜잭션 동안 신호들의 예시적인 동작의 타이밍도(300)를 나타낸 것이다. 신호들이 버스(190)를 통해 비휘발성 메모리(150)와 NMI(146) 사이에서 전송될 수 있다.
도 3을 참조하면, 시각(330a)은 판독 트랜잭션 이전의 신호들의 상태를 나타낼 수 있다. 구체적으로는, 시각(330a)에서, 앞서 기술된 ACT, RGRANT, RQRDY, 및 RRDY 신호들이 디어써트될 수 있다. 그에 부가하여, 앞서 기술된 DQ 및 DQS가, 다이어그램(300)에서 파선들로 나타낸 바와 같이, 고임피던스 상태에 있을 수 있다.
시각(330b)에서, NMI(146)는 NMI(146)가 송신하라는 요청을 가지고 있다는 것을 비휘발성 메모리(150)에 알려주기 위해 ACT 신호를 어써트할 수 있다. ACT를 어써트하는 것은 판독 트랜잭션의 요청 단계에 진입했다는 것을 나타낼 수 있다. 비휘발성 메모리(150)는 ACT가 어써트되어 있다는 것을 검출하고 DQS를 통해 요청과 연관된 프리앰블을 수신할 준비를 할 수 있다. 시각(330c)에서, NMI(146)는 DQS를 통해 프리앰블을 전송하기 시작할 수 있다. 비휘발성 메모리(150)는 프리앰블을 수신하고 NMI(146)로부터 요청을 수신할 준비를 할 수 있다. 준비하는 것은, 앞서 기술된 것과 같이, 훈련하는 것을 포함할 수 있다.
시각(330d) 및 시각(330e)에서, NMI(146)는 DQ를 통해 요청을 전송할 수 있다. 그에 부가하여, NMI(146)는 비휘발성 메모리(150)가 DQ로부터 요청을 획득하는 데 사용할 수 있는 스트로브 신호를 DQS를 통해 제공할 수 있다. 비휘발성 메모리(150)는 스트로브 신호를 획득하고, 시각(330d) 및 시각(330e) 동안 DQ로부터 요청을 획득하기 위해, 스트로브 신호를 사용할 수 있다.
시각(330e)에서, NMI(146)는 RQRDY를 디어써트할 수 있다. 비휘발성 메모리(150)는 NMI(146)가 RQRDY를 디어써트했다는 것을 검출하고 DQ로부터 요청을 획득하는 것을 중단할 수 있다. 더욱이, 시각(330f) 및 시각(330g)에서, NMI(146)는 포스트앰블(post-amble)을 DQS를 통해 비휘발성 메모리(150)로 전송할 수 있다. 비휘발성 메모리(150)는 포스트앰블을 획득하고 요청 단계로부터 이탈한 것으로 결정할 수 있다.
시각(330h)에서, 비휘발성 메모리(150)는 요청을 처리할 수 있다. 여기서, 처리하는 것은 요청이 판독 요청이라고 결정하는 것 및 요청에서 식별된 위치에서 비휘발성 메모리(150)로부터 데이터를 판독하는 것을 포함할 수 있다.
데이터가 판독된 후에, 비휘발성 메모리(150)는 비휘발성 메모리(150)가 정보를 NMI(146)로 송신할 준비가 되어 있다는 것을 NMI(146)에 알려주기 위해, 시각(330i)에 나타낸 바와 같이, RRDY를 어써트할 수 있다. 정보는, 예를 들어, 비휘발성 메모리(150)로부터 판독된 데이터를 포함할 수 있다. 여기서, RRDY를 어써트하는 것은 판독 트랜잭션의 데이터 단계에 진입하는 것을 나타낼 수 있다.
NMI(146)는 RRDY가 어써트된 것으로 결정하고, 시각(330j)에 나타낸 바와 같이, DQ의 소유권이 부여되었다는 표시를 비휘발성 메모리(150)로 송신하기 위해 RGRANT를 어써트할 수 있다.
RGRANT가 어써트되었다는 것을 검출하고, RGRANT가 어써트된 것에 기초하여, 비휘발성 메모리(150)가 DQ의 소유권을 부여받은 것으로 결정한 후에, 비휘발성 메모리(150)는, 시각(330k)에 나타낸 바와 같이, 프리앰블을 DQS를 통해 전송하기 시작할 수 있다. NMI(146)는 프리앰블을 획득하고 DQ를 통해 데이터를 수신할 준비를 할 수 있다. 준비하는 것은, 앞서 기술된 것과 같이, 훈련하는 것을 포함할 수 있다. 시각(330m) 및 시각(330n)에서, 비휘발성 메모리(150)는 데이터 및 연관된 스트로브 정보를, 각각, DQ 및 DQS를 통해 전송할 수 있다. NMI(146)는 DQ로부터 데이터를 획득하기 위해 스트로브 정보를 사용할 수 있다.
시각(330o)에서, 비휘발성 메모리(150)는 데이터 단계로부터 이탈했다는 것과 판독 트랜잭션의 응답 단계에 진입했다는 것을 알려주기 위해 RRDY를 디어써트할 수 있다. RRDY를 디어써트한 후에, 비휘발성 메모리(150)는 응답 정보를 DQ를 통해 전송할 수 있다. 응답 정보는, 예를 들어, 요청과 연관된 상태를 포함할 수 있다. 상태는, 예를 들어, 요청이 비휘발성 메모리(150)에 의해 성공적으로 처리되었는지 여부를 나타낼 수 있다. NMI(146)는 DQ로부터 응답 정보를 획득하고 이를 처리할 수 있다. 여기서, 처리하는 것은, 예를 들어, 요청이 비휘발성 메모리(150)에 의해 성공적으로 처리되었는지 여부를 결정하는 것을 포함할 수 있다.
시각(330o) 및 시각(330p)에서, 비휘발성 메모리(150)는 포스트앰블을 DQS를 통해 전송할 수 있다. NMI(146)는 포스트앰블을 획득하고 응답 단계로부터 이탈한 것으로 결정할 수 있다. 응답 단계로부터 이탈한 것으로 결정한 후에, NMI(146)는, 시각(330q)에 나타낸 바와 같이, RGRANT 신호를 디어써트할 수 있다.
도 4는, 예를 들어, NMI(146)와 비휘발성 메모리(150) 사이의 기입 트랜잭션 동안 신호들의 예시적인 동작의 타이밍도(400)를 나타낸 것이다. 신호들이 버스(190)를 통해 NMI(146)와 비휘발성 메모리(150) 사이에서 전송될 수 있다.
도 4를 참조하면, 시각(430a)은 기입 트랜잭션 이전의 신호들의 상태를 나타낼 수 있다. 구체적으로는, 시각(430a)에서, 앞서 기술된 ACT, RGRANT, RQRDY, 및 RRDY 신호들이 디어써트될 수 있다. 그에 부가하여, 앞서 기술된 DQ 및 DQS가, 다이어그램(400)에서 파선들로 나타낸 바와 같이, 고임피던스 상태에 있을 수 있다.
시각(430b)에서, NMI(146)는 NMI(146)가 송신하라는 요청을 가지고 있다는 것을 비휘발성 메모리(150)에 알려주기 위해 ACT 신호를 어써트할 수 있다. ACT를 어써트하는 것은 기입 트랜잭션의 요청 단계에 진입했다는 것을 나타낼 수 있다. 비휘발성 메모리(150)는 ACT가 어써트되어 있다는 것을 검출하고 DQS를 통해 요청과 연관된 프리앰블을 획득할 준비를 할 수 있다. 시각(430c)에서, NMI(146)는 DQS를 통해 프리앰블을 전송하기 시작할 수 있다. 비휘발성 메모리(150)는 프리앰블을 획득하고 NMI(146)로부터 요청을 획득할 준비를 할 수 있다. 준비하는 것은, 앞서 기술된 것과 같이, 프리앰블을 사용하여 훈련하는 것을 포함할 수 있다.
시각(430d) 및 시각(430e)에서, NMI(146)는 DQ를 통해 요청을 전송할 수 있다. 요청은 명령, 및 주소를 포함할 수 있다. 명령은 요청을 기입 요청으로서 식별할 수 있고, 주소는 데이터로 기입되어야 하는 비휘발성 메모리(150)에서의 위치를 식별해줄 수 있다. NMI(146)는 비휘발성 메모리(150)가 DQ로부터 요청을 획득하는 데 사용할 수 있는 스트로브 신호를 DQS를 통해 제공할 수 있다. 비휘발성 메모리(150)는 스트로브 신호를 수신하고, 시각(430d) 및 시각(430e) 동안 DQ로부터 요청을 획득하기 위해, 스트로브 신호를 사용할 수 있다.
시각(430f)에서, NMI(146)는 RQRDY를 디어써트할 수 있다. 비휘발성 메모리(150)는 NMI(146)가 RQRDY를 디어써트했다는 것을 검출하고 DQ로부터 요청을 획득하는 것을 중단할 수 있다. 유의할 점은, 요청이 NMI(146)에 의해 DQ를 통해 전송될 것인 때에 대해 RQRDY가 어써트될 수 있고 DQ가 요청 정보를 포함하고 있지 않은 때에 디어써트된다는 것이다. 비휘발성 메모리(150)는 DQ가 더 이상 어써트되어 있지 않다는 것을 검출하고, 기입 트랜잭션의 요청 단계로부터 이탈했고 트랜잭션이 데이터 단계에 진입하고 있는 것으로 결정할 수 있다.
또한, 시각(430f)에서, NMI(146)는 DQ를 통해 데이터를 전송할 수 있다. 비휘발성 메모리(150)는 NMI(146)에 의해 DQS를 통해 제공될 수 있는 스트로브를 사용하여 DQ로부터 데이터를 획득할 수 있다. 데이터는 비휘발성 메모리(150)에 기입될 데이터를 포함할 수 있다. 시각(430g)에서, NMI(146)는 DQ를 통해 데이터를 전송하는 것을 완료할 수 있다.
시각(430g)에서, NMI(146)는 ACT를 디어써트할 수 있고, 이는 NMI(146)가 더 이상 DQ의 소유권을 갖지 않는다는 것을 나타낼 수 있다. ACT를 디어써트한 후에, NMI(146)는, 시각(430g) 및 시각(430h)에 나타낸 바와 같이, 포스트앰블을 DQS를 통해 전송할 수 있다. 비휘발성 메모리(150)는 포스트앰블을 획득하고 기입 트랜잭션의 데이터 단계로부터 이탈한 것으로 결정할 수 있다.
시각(430j)에서, 비휘발성 메모리(150)는 데이터를 요청에 의해 명시된 주소에 의해 식별될 수 있는 비휘발성 메모리(150)에서의 위치에 기입할 수 있다. 그 후에, 시각(430k)에서, 비휘발성 메모리(150)는 비휘발성 메모리(150)가 응답을 송신할 준비가 되어 있다는 것을 NMI(146)에 알려주기 위해 RRDY를 어써트할 수 있다. 이 시점에서, 기입 트랜잭션은 응답 단계에 진입할 수 있다.
NMI(146)는 RRDY가 어써트되어 있다는 것을 검출할 수 있고, 시각(430m)에서, RGRANT를 어써트하는 것에 의해 DQ의 소유권을 비휘발성 메모리(150)에 부여할 수 있다. 비휘발성 메모리(150)는 RGRANT가 어써트되어 있다는 것을 검출하고 비휘발성 메모리(150)가 DQ의 소유권을 부여받은 것으로 결정할 수 있다. 시각(430n) 및 시각(430o)에서, 비휘발성 메모리(150)는 프리앰블을 DQS를 통해 전송할 수 있다. NMI(146)는 프리앰블을 획득하고 DQ를 통해 응답을 획득할 준비를 할 수 있다. 준비하는 것은, 앞서 기술된 것과 같이, 훈련하는 것을 포함할 수 있다.
시각(430p)에서, 비휘발성 메모리(150)는 응답을 DQ를 통해 전송할 수 있다. 그에 부가하여, 시각(430q)에서, 비휘발성 메모리(150)는 패딩 정보(padding information)[다이어그램(400)에서 "P"로 나타냄]를 DQ를 통해 송신할 수 있다. 패딩 정보는 응답을 특정 길이(예컨대, 특정 수의 바이트)로 "부풀리기(pad out)" 위해 사용될 수 있다.
NMI(146)는 DQ를 통해 응답 및 패딩 정보를 획득하기 위해 비휘발성 메모리(150)에 의해 DQS를 통해 제공된 스트로브들을 사용할 수 있다. NMI(146)는 응답을 처리할 수 있다. 여기서, 처리하는 것은, 예를 들어, 응답이 요청이 성공적으로 수행되었다고 나타내는지 여부를 결정하는 것을 포함할 수 있다.
시각(430q) 및 시각(430r)에서, 비휘발성 메모리(150)는 포스트앰블을 DQS를 통해 송신할 수 있다. NMI(146)는 포스트앰블을 수신하고 기입 트랜잭션의 응답 단계로부터 이탈한 것으로 결정할 수 있다. 그 후에, 시각(430s)에서, NMI(146)는 비휘발성 메모리(150)가 더 이상 DQ의 소유권을 갖지 않는다는 것을 알려주기 위해 RGRANT를 디어써트할 수 있다.
컴퓨팅 디바이스(100)(도 1)에서, NMI(146)는 비휘발성 메모리(150)에 대한 호스트인 것으로 간주될 수 있고, 비휘발성 메모리(150)는 NMI(146)의 클라이언트인 것으로 간주될 수 있다. 이 관계는, 예를 들어, 어느 엔티티가 DQ의 소유권을 제어할 수 있는지에 기초하여 설정될 수 있다. 앞서 기술한 바와 같이, NMI(146)는, 소유권을 먼저 요청함이 없이, DQ의 소유권을 취득할 수 있다. 비휘발성 메모리(150)는, 그와 달리, DQ의 소유권을 요청하기 위해 RRDY를 어써트하고, 비휘발성 메모리(150)가 DQ의 소유권을 취득하기 전에 NMI(146)가 소유권을 부여할 때까지 기다린다. NMI(146)가 어느 엔티티가 DQ의 소유권을 가지는지를 제어한다고 말해질 수 있다. 이와 같이, 이 거동에 기초하여, NMI(146)가 NMI(146)의 클라이언트인 비휘발성 메모리(150)에 대한 호스트라고 말해질 수 있다.
버스(190)를 통한 NMI(146)와 비휘발성 메모리(150) 사이의 통신은 프로토콜을 준수할 수 있다. 이 프로토콜은 하나 이상의 규칙들을 따를 수 있다. 예를 들어, 이 프로토콜은 하기의 규칙들 중 하나 이상을 따를 수 있다:
1) 비휘발성 메모리(150)에 의한 RRDY 어써션(assertion)은 RGRANT가 디어써트된 것으로 비휘발성 메모리(150)에 의해 샘플링되는 것에 의존할 수 있다.
2) NMI(146)에 의한 RGRANT 어써션은 ACT 및 RQRDY가 디어써트되는 것과 함께 RRDY가 어써트된 것으로 NMI(146)에 의해 샘플링되는 것에 의존할 수 있다. 최소 어써션 지속기간은 NMI(146)와 연관된 클럭(NMI 클럭)의 미리 결정된 수의 클럭 사이클들 동안일 수 있다. 예를 들어, NMI(146)는 NMI 클럭의 최소 2 클럭 사이클들 동안 RGRANT를 어써트할 수 있다;
3) 비휘발성 메모리(150)는 비휘발성 메모리(150)와 연관된 클럭(비휘발성 메모리 클럭)의 미리 결정된 수의 클럭 사이클들 동안 RGRANT 어써션을 샘플링한 후에 DQS를 통해 프리앰블을 전송하기 시작할 수 있다. 예를 들어, 비휘발성 메모리(150)는 비휘발성 메모리 클럭의 하나의 클럭 사이클 동안 RGRANT 어써션을 샘플링한 후에 DQS를 통해 프리앰블을 전송하기 시작할 수 있다;
4) RRDY가 디어써트되기 전에 RGRANT가 NMI(146)에 의해 디어써트될 수 있다. 대안적으로, NMI(146)가 RRDY가 디어써트된 것을 검출한 후에 RGRANT가 디어써트될 수 있다.
5) 트랜잭션이 완료된 후에, 또는 트랜잭션이 완료되기 전에 NMI(146)가 버스 소유권을 재획득한 것에 응답하여, RRDY 디어써션(deassertion)이 일어날 수 있다.
6) NMI(146)는 미리 결정된 수의 NMI 클럭 사이클들(예컨대, 하나의 NMI 클럭 사이클) 동안 RRDY를 디어써트된 것으로 샘플링한 후에 DQS를 통해 프리앰블을 송신하기 시작할 수 있다. 프리앰블이 송신되고 나서 미리 결정된 시간 후에, NMI(146)는 DQ를 통해 정보를 송신하기 시작할 수 있다;
7) RGRANT가 비휘발성 메모리(150)에 의해 디어써트된 것으로 샘플링된 후에, RRDY가 비휘발성 메모리(150)에 의해 디어써트될 수 있다. 그에 부가하여, 비휘발성 메모리(150)는 DQ 및 DQS를 통해 정보를 전송하는 것을 종료할 수 있다. 정보의 전송이 정보와 연관된 특정의 경계(예컨대, 64-바이트 경계)에서 종료될 수 있다. RRDY의 디어써션은, 예를 들어, 비휘발성 메모리(150)에 의한 전송의 종료를 나타낼 수 있다;
8) RQRDY 어써션은 NMI(146)에 의해 DQ를 통해 전송되는 정보를 내포(envelope)할 수 있다. 예를 들어, RQRDY 어써션은 판독 트랜잭션에서 NMI(146)에 의해 DQ를 통해 전송되는 명령 정보를 내포할 수 있다;
9) RQRDY가 미리 결정된 지속기간 동안(예컨대, 2개의 NMI 클럭들 동안) 디어써트될 수 있다. 요청 단계들이 연속되어(back-to-back) 있는 경우, RQRDY가 어써트된 채로 있고 단계들 사이에서 디어써트되지 않을 수 있다;
10) NMI(146)는, 판독 트랜잭션의 요청 단계가 완료된 후 그리고/또는 기입 트랜잭션의 데이터 단계 후에, DQ 및/또는 DQS를 3-상태(tri-state)로 만들 수 있다;
11) ACT 어써션은 RGRANT 및 RRDY가 디어써트되는 것에 의존할 수 있다; 그리고/또는
12) ACT의 디어써션이 미리 결정된 수의 NMI 클럭 사이클들 후에 일어날 수 있다. 예를 들어, ACT의 디어써션이 NMI 클럭의 하나의 클럭 사이클 후에 일어날 수 있다.
도 5a 및 도 5b는, 예를 들어, NMI(146)와 같은 호스트에 의해 수행될 수 있는, 판독 트랜잭션과 연관된 예시적인 동작들의 흐름도를 나타낸 것이다. 도 5a를 참조하면, 블록(510)에서, 호스트가 송신하라는 요청을 가지고 있다는 표시가 클라이언트로 송신될 수 있다. 예를 들어, 호스트가 NMI(146)이고 클라이언트가 비휘발성 메모리(150)인 것으로 가정한다. 블록(510)에서, NMI(146)는 NMI(146)가 비휘발성 메모리(150)로 송신하라는 요청을 가지고 있다는 것을 비휘발성 메모리(150)에 알려주기 위해 ACT를 어써트할 수 있다.
블록(520)에서, 판독 요청이 버스를 통해 송신되고 있음을 나타내는 표시가 클라이언트로 송신된다. 예를 들어, NMI(146)는 판독 요청이 DQ를 통해 비휘발성 메모리(150)로 송신되고 있음을 비휘발성 메모리(150)에 알려주기 위해 RQRDY를 어써트할 수 있다. 블록(530)에서, 판독 요청이 버스를 통해 클라이언트로 송신될 수 있다. 예를 들어, NMI(146)는 판독 요청을 DQ를 통해 비휘발성 메모리(150)로 송신할 수 있다.
블록(540)에서, 클라이언트가 정보를 송신할 준비가 되어 있다는 표시가 획득될 수 있다. 예를 들어, 비휘발성 메모리(150)는 판독 요청을 수신하고 그를 처리할 수 있다. 처리하는 것은, 예를 들어, 비휘발성 메모리(150)에서의 위치로부터 데이터를 판독하는 것을 포함할 수 있고, 여기서 이 위치는 판독 요청에 포함될 수 있는 주소에 기초하여 식별될 수 있다. 데이터가 판독된 후에, 비휘발성 메모리(150)는 비휘발성 메모리(150)가 데이터를 NMI(146)로 송신할 준비가 되어 있다는 것을 알려주기 위해 RRDY를 어써트할 수 있다.
블록(550)(도 5b)에서, 클라이언트가 버스의 소유권을 가진다는 표시가 송신될 수 있다. 예를 들어, NMI(146)는 비휘발성 메모리(150)가 DQ의 소유권을 가진다는 것을 비휘발성 메모리(150)에 알려주기 위해 RGRANT를 어써트할 수 있다. 블록(560)에서, 클라이언트로부터의 정보가 버스를 통해 획득될 수 있다. 예를 들어, RGRANT가 어써트되었다는 것을 검출한 후에, 비휘발성 메모리(150)는 데이터를 DQ를 통해 NMI(146)로 송신하기 시작할 수 있고, NMI(146)는, 예를 들어, DQS를 통해 비휘발성 메모리(150)에 의해 송신되는 스트로브 신호를 사용하여 DQ로부터 데이터를 판독할 수 있다. 더욱이, 비휘발성 메모리(150)는 응답 정보를 DQ를 통해 NMI(146)로 전송할 수 있고, NMI(146)는, 앞서 기술된 바와 같이, DQ로부터 응답 정보를 판독할 수 있다.
블록(570)에서, 버스를 통해 클라이언트로부터 호스트로 정보가 더 이상 송신되지 않고 있다는 표시가 클라이언트로부터 획득될 수 있다. 예를 들어, 응답 정보를 송신한 후에, 비휘발성 메모리(150)는 포스트앰블을 DQS를 통해 송신할 수 있다. 포스트앰블은 비휘발성 메모리(150)에 의해 DQ를 통해 정보가 더 이상 송신되고 있지 않다는 것을 나타낼 수 있다.
블록(580)에서, 클라이언트가 버스의 소유권을 더 이상 갖지 않는다는 것을 나타내는 표시가 송신될 수 있다. 예를 들어, NMI(146)는 비휘발성 메모리(150)가 DQ의 소유권을 더 이상 갖지 않는다는 것을 비휘발성 메모리(150)에 알려주기 위해 RGRANT를 디어써트할 수 있다.
도 6a 및 도 6b는 클라이언트에 의해 수행될 수 있는, 판독 트랜잭션과 연관된 예시적인 동작들의 흐름도를 나타낸 것이다. 도 6a를 참조하면, 블록(610)에서, 호스트가 클라이언트로 송신하라는 요청을 가지고 있다는 표시가 호스트로부터 획득될 수 있다. 예를 들어, 호스트가 NMI(146)이고 클라이언트가 비휘발성 메모리(150)인 것으로 가정한다. 블록(610)에서, NMI(146)는 NMI(146)가 비휘발성 메모리(150)로 송신하라는 요청을 가지고 있다는 것을 알려주기 위해 ACT를 어써트할 수 있다. 비휘발성 메모리(150)는 ACT가 어써트되어 있다는 것을 검출하고, NMI(146)가 비휘발성 메모리(150)로 송신하라는 요청을 가지고 있는 것으로 결정할 수 있다.
블록(620)에서, 판독 요청이 버스를 통해 송신되고 있다는 표시가 호스트로부터 획득될 수 있다. 예를 들어, NMI(146)는 판독 요청이 NMI(146)에 의해 DQ 버스를 통해 송신되고 있음을 비휘발성 메모리(150)에 알려주기 위해 RQRDY를 어써트할 수 있다. 블록(630)에서, 판독 요청이 버스를 통해 호스트로부터 획득된다. 예를 들어, 비휘발성 메모리(150)는, 예를 들어, DQS를 통해 NMI(146)에 의해 송신되는 스트로브 신호를 사용하여 DQ로부터 판독 요청을 판독할 수 있다.
블록(640)에서, 판독 요청에 기초하여 데이터가 판독될 수 있다. 예를 들어, 판독 요청은 주소를 포함할 수 있다. 비휘발성 메모리(150)는 데이터를 포함하는 비휘발성 메모리(150)에서의 위치를 식별하기 위해 주소를 사용할 수 있다. 비휘발성 메모리(150)는 비휘발성 메모리(150)에서의 식별된 위치로부터 데이터를 판독할 수 있다.
블록(650)(도 6b)에서, 클라이언트가 정보를 송신할 준비가 되어 있다는 표시가 송신될 수 있다. 예를 들어, 비휘발성 메모리(150)로부터 데이터를 판독한 후에, 비휘발성 메모리(150)는 RRDY를 어써트할 수 있다. NMI(146)는 RRDY가 어써트되었다는 것을 검출하고, 비휘발성 메모리(150)가 요청된 데이터를 송신할 준비가 되어 있는 것으로 결정할 수 있다.
블록(660)에서, 클라이언트가 버스의 소유권을 가진다는 표시가 획득될 수 있고, 정보가 버스를 통해 호스트로 송신될 수 있다. 예를 들어, NMI(146)는, 앞서 기술된 바와 같이, RGRANT를 사용하여 DQ의 소유권을 비휘발성 메모리(150)에 부여할 수 있다. 비휘발성 메모리(150)가 자신이 DQ의 소유권을 가지는 것으로 결정한 후에, 비휘발성 메모리(150)는, 앞서 기술된 바와 같이, 데이터를 DQ를 통해 NMI(146)로 송신할 수 있다.
블록(670)에서, 버스를 통해 정보가 더 이상 송신되지 않고 있다는 표시가 송신된다. 예를 들어, 비휘발성 메모리(150)는, DQ를 통해 정보가 더 이상 송신되고 있지 않다는 것을 알려주기 위해, 포스트앰블을 DQS를 통해 NMI(146)로 송신할 수 있다.
블록(680)에서, 클라이언트가 버스의 소유권을 더 이상 갖지 않는다는 것을 나타내는 표시가 호스트로부터 획득될 수 있다. 예를 들어, NMI(146)는 비휘발성 메모리(150)가 DQ의 소유권을 더 이상 갖지 않는다는 것을 비휘발성 메모리(150)에 알려주기 위해 RGRANT를 디어써트할 수 있다.
도 7a 및 도 7b는 호스트에 의해 수행될 수 있는, 기입 트랜잭션과 연관된 예시적인 동작들의 흐름도를 나타낸 것이다. 도 7a를 참조하면, 블록(710)에서, 호스트가 송신하라는 요청을 가진다는 표시가 송신될 수 있다. 예를 들어, 호스트가 NMI(146)이고 클라이언트가 비휘발성 메모리(150)인 것으로 가정한다. 블록(710)에서, NMI(146)는 NMI(146)가 비휘발성 메모리(150)로 송신하라는 요청을 가지고 있다는 것을 비휘발성 메모리(150)에 알려주기 위해 ACT를 어써트할 수 있다. 비휘발성 메모리(150)는 ACT가 어써트되어 있다는 것을 검출하고, NMI(146)가 송신하라는 요청을 가지고 있는 것으로 결정할 수 있다.
블록(720)에서, 요청이 버스를 통해 송신되고 있다는 표시가 송신된다. 예를 들어, NMI(146)는 요청이 QD를 통해 송신되고 있음을 비휘발성 메모리(150)에 알려주기 위해 RQRDY를 어써트할 수 있다. 블록(730)에서, 요청 및 기입될 정보가 버스를 통해 송신된다. 예를 들어, RQRDY를 어써트한 후에, NMI(146)는 요청을 QD를 통해 비휘발성 메모리(150)로 송신할 수 있다. 요청이 송신된 후에, NMI(146)는 RQRDY를 디어써트할 수 있다. NMI(146)는 이어서 기입될 데이터를 QD를 통해 비휘발성 메모리(150)로 송신할 수 있다.
블록(740)에서, 응답이 클라이언트로부터 호스트로 송신될 준비가 되어 있다는 것을 나타낼 수 있는 표시가 획득될 수 있다. 예를 들어, 데이터를 비휘발성 메모리(150)에 기입한 후에, 비휘발성 메모리(150)는 응답을 NMI(146)로 송신하기 위해 QD에 대한 액세스를 요청하기 위해 RRDY를 어써트할 수 있다. NMI(146)는 RRDY가 어써트되어 있다는 것을 검출하고, 비휘발성 메모리(150)가 응답을 송신할 준비가 되어 있는 것으로 결정할 수 있다.
블록(750)(도 7b)에서, 클라이언트가 버스의 소유권을 부여받았다는 것을 나타내는 표시가 클라이언트로 송신될 수 있다. 예를 들어, RRDY가 어써트되어 있다는 것을 검출한 후에, NMI(146)는 버스의 소유권을 비휘발성 메모리(150)에 부여하기 위해 RGRANT를 어써트할 수 있다.
블록(760)에서, 응답이 버스를 통해 획득될 수 있다. 예를 들어, 비휘발성 메모리(150)는 RGRANT가 어써트되어 있다는 것을 검출하고 NMI(146)가 QD의 소유권을 비휘발성 메모리(150)에 부여한 것으로 결정할 수 있다. 비휘발성 메모리(150)는 응답을 QD를 통해 NMI(146)로 송신할 수 있다. NMI(146)는, 앞서 기술된 바와 같이, QD로부터 응답을 수신할 수 있다.
블록(770)에서, 버스를 통해 응답이 더 이상 송신되지 않고 있다는 표시가 획득될 수 있다. 예를 들어, 응답을 송신한 후에, 비휘발성 메모리(150)는 포스트앰블을 QDS를 통해 송신할 수 있다. NMI(146)는 포스트앰블을 검출하고 버스를 통해 응답이 더 이상 송신되지 않고 있다는 것으로 결정할 수 있다.
블록(780)에서, 클라이언트가 버스의 소유권을 더 이상 갖지 않는다는 표시가 송신될 수 있다. 예를 들어, NMI(146)는 비휘발성 메모리(150)가 DQ의 소유권을 더 이상 갖지 않는다는 것을 비휘발성 메모리(150)에 알려주기 위해 RGRANT를 디어써트할 수 있다.
도 8a 및 도 8b는 클라이언트에 의해 수행될 수 있는, 기입 트랜잭션과 연관된 예시적인 동작들의 흐름도를 나타낸 것이다. 도 8a를 참조하면, 블록(810)에서, 호스트가 송신하라는 요청을 가진다는 표시가 획득될 수 있다. 예를 들어, 호스트가 NMI(146)이고 클라이언트가 비휘발성 메모리(150)인 것으로 가정한다. NMI(146)는 NMI(146)가 송신하라는 요청을 가지고 있다는 것을 알려주기 위해 ACT를 어써트할 수 있다. 비휘발성 메모리(150)는 ACT가 어써트되어 있다는 것을 검출하고, NMI(146)가 송신하라는 요청을 가지고 있는 것으로 결정할 수 있다.
블록(820)에서, 기입 요청이 버스를 통해 송신되고 있다는 표시가 획득될 수 있고, 블록(830)에서, 기입 요청 및 데이터가 획득될 수 있다. 예를 들어, NMI(146)는 요청이 DQ를 통해 송신되고 있음을 알려주기 위해 RQRDY를 어써트할 수 있다. 비휘발성 메모리(150)는, 앞서 기술된 바와 같이, RQRDY가 어써트되어 있다는 것을 검출하고, 요청을 DQ로부터 판독할 수 있다. NMI(146)는, 예를 들어, 요청의 명령 부분이 송신되었다는 것과 요청의 데이터 부분이 QD를 통해 송신되고 있음을 알려주기 위해 RQRDY를 디어써트할 수 있다. 비휘발성 메모리(150)는, 앞서 기술된 바와 같이, RQRDY가 디어써트되었다는 것을 검출하고, 데이터를 DQ로부터 판독할 수 있다.
블록(840)에서, 데이터가 비휘발성 메모리에 기입된다. 예를 들어, 요청을 획득한 후에, 비휘발성 메모리(150)는 요청을 처리할 수 있다. 여기서, 처리하는 것은 요청이 기입 요청인 것으로 결정하는 것을 포함할 수 있다. 비휘발성 메모리(150)는 또한 요청에 포함될 수 있는 주소에 기초하여 기입될 비휘발성 메모리(150)에서의 위치를 식별할 수 있다. DQ로부터 데이터를 판독한 후에, 비휘발성 메모리(150)는 비휘발성 메모리(150)에서의 식별된 위치에 데이터를 기입할 수 있다.
블록(850)(도 8b)에서, 기입 요청에 대한 응답이 송신될 준비가 되어 있다는 것을 나타내는 표시가 송신될 수 있다. 예를 들어, 비휘발성 메모리(150)는 비휘발성 메모리(150)가 DQ를 통해 송신할 응답을 가지고 있다는 것을 알려주기 위해 RRDY를 어써트할 수 있다. NMI(146)는 RRDY가 어써트되었다는 것을 검출하고, 비휘발성 메모리(150)가 송신할 응답을 가지고 있는 것으로 결정할 수 있다.
블록(860)에서, 버스의 소유권이 클라이언트에 부여되었다는 것을 나타낼 수 있는 표시가 획득될 수 있다. 그에 부가하여, 블록(860)에서, 응답이 클라이언트에 의해 호스트로 송신될 수 있다. 예를 들어, NMI(146)가 비휘발성 메모리(150)가 송신할 응답을 가지고 있는 것으로 결정한 후에, NMI(146)는 DQ의 소유권을 비휘발성 메모리(150)에 부여하기 위해 RGRANT를 어써트할 수 있다. 비휘발성 메모리(150)는 RGRANT가 어써트되어 있다는 것을 검출하고 비휘발성 메모리(150)가 DQ의 소유권을 가지는 것으로 결정할 수 있다. 이 결정을 한 후에, 비휘발성 메모리(150)는, 앞서 기술된 바와 같이, 응답을 DQ를 통해 NMI(146)로 송신할 수 있다.
블록(870)에서, 버스를 통해 응답이 더 이상 송신되고 있지 않다는 것을 나타내는 표시가 송신될 수 있다. 예를 들어, 비휘발성 메모리(150)는, DQ를 통해 응답이 더 이상 송신되고 있지 않다는 것을 알려주기 위해, 포스트앰블을 DQS를 통해 송신할 수 있다.
블록(880)에서, 버스의 소유권이 클라이언트에 더 이상 부여되어 있지 않다는 것을 나타내는 표시가 획득될 수 있다. 예를 들어, NMI(146)는 비휘발성 메모리(150)가 DQ의 소유권을 더 이상 갖지 않는다는 것을 비휘발성 메모리(150)에 알려주기 위해 RGRANT를 디어써트할 수 있다. 비휘발성 메모리(150)는 RGRANT가 더 이상 어써트되어 있지 않다는 것을 검출하고 비휘발성 메모리(150)가 DQ의 소유권을 더 이상 갖지 않는 것으로 결정할 수 있다.
도 9는 본 명세서에 기술된 기법들을 구현할 수 있는 컴퓨팅 디바이스(900)의 다른 예시적인 실시예의 블록도를 나타낸 것이다. 도 9를 참조하면, 컴퓨팅 디바이스(900)는, 예를 들어, 로직(920), 주 저장소(930), 보조 저장소(950), 하나 이상의 입력 디바이스들(960), 하나 이상의 출력 디바이스들(970), 및/또는 하나 이상의 통신 인터페이스들(980)과 같은 다양한 구성요소들을 포함할 수 있다.
유의할 점은, 도 9가 컴퓨팅 디바이스(900)의 예시적인 실시예를 나타낸다는 것이다. 컴퓨팅 디바이스(900)의 다른 실시예들은 도 9에 예시된 구성요소들보다 더 많은 구성요소들 또는 더 적은 구성요소들을 포함할 수 있다. 게다가, 구성요소들이 도 9에 예시된 것과 상이한 방식으로 배열될 수 있다.
예를 들어, 컴퓨팅 디바이스(900)의 일 실시예에서, 보조 저장소(950)는 "클라우드" 저장소를 제공하는 원격 사이트에 포함될 수 있다. 이 사이트는, 예를 들어, 인터넷과 같은 통신 네트워크를 통해 컴퓨팅 디바이스(900)에 의해 액세스 가능할 수 있다. 통신 인터페이스(980)는 컴퓨팅 디바이스(900)와 통신 네트워크를 인터페이스 하기 위해 사용될 수 있다.
또한, 유의할 점은, 컴퓨팅 디바이스(900)의 다른 실시예들에 포함된 다양한 구성요소들에 의해 제공되는 특징들이 본 명세서에 기술된 것과 상이한 방식으로 구성요소들 간에 분산되어 있을 수 있다는 것이다.
컴퓨팅 디바이스(900)는 컴퓨팅 디바이스(900) 내의 구성요소들 간의 통신을 가능하게 할 수 있는 입출력(I/O) 버스(910)를 포함할 수 있다. 구성요소들은, 예를 들어, 로직(920), 보조 저장소(950), 하나 이상의 입력 디바이스들(960), 하나 이상의 출력 디바이스들(970), 및/또는 하나 이상의 통신 인터페이스들(980)을 포함할 수 있다. 통신은, 예를 들어, I/O 버스(910)를 통해 구성요소들 간에 제어 신호들 및/또는 데이터를 전송하는 것을 포함할 수 있다. I/O 버스(910)를 구현하는 데 사용될 수 있는 I/O 버스들은, 예를 들어, SATA(serial AT attachment), PCI(peripheral component interconnect), PCI-e(PCI express), USB(universal serial bus), SCSI(small computer system interface), SAS(serial attached SCSI), 또는 어떤 다른 I/O 버스를 포함할 수 있다.
입력 디바이스들(960)은 정보를 컴퓨팅 디바이스(900)에 입력하는 데 사용될 수 있는 하나 이상의 디바이스들을 포함할 수 있다. 이 디바이스들은, 예를 들어, 키보드, 컴퓨터 마우스, 마이크, 카메라, 트랙볼, 자이로스코픽 디바이스(gyroscopic device)(예컨대, 자이로스코프), 미니마우스, 터치 패드, 스타일러스, 그래픽 태블릿, 터치 패드, 조이스틱[등장성(isotonic) 또는 등척성(isometric)], 포인팅 스틱, 가속도계, 손바닥 마우스(palm mouse), 발 마우스(foot mouse), 퍽(puck), 안구 제어 디바이스, 손가락 마우스, 라이트 펜(light pen), 라이트 건(light gun), 신경 디바이스, 눈 추적 디바이스, 조종 핸들(steering wheel), 요크(yoke), 조그 다이얼(jog dial), 스페이스 볼(space ball), 방향 패드, 댄스 패드, 비누 마우스(soap mouse), 햅틱 디바이스, 촉각 디바이스, 신경 디바이스, 다중점 입력 디바이스, 개별 포인팅 디바이스(discrete pointing device), 및/또는 어떤 다른 입력 디바이스를 포함할 수 있다.
정보는, 예를 들어, 컴퓨터 마우스와 같은 포인팅 디바이스를 사용하여 컴퓨팅 디바이스(900)에 입력될 수 있는 공간(예컨대, 연속적, 다차원) 데이터를 포함할 수 있다. 정보는 또한, 예를 들어, 키보드를 사용하여 입력될 수 있는 텍스트와 같은 다른 형태들의 데이터를 포함할 수 있다.
출력 디바이스들(970)은 정보를 컴퓨팅 디바이스(900)로부터 출력할 수 있는 하나 이상의 디바이스들을 포함할 수 있다. 이 디바이스들은, 예를 들어, CRT(cathode ray rube), 플라즈마 디스플레이 디바이스, LED(light-emitting diode) 디스플레이 디바이스, LCD(liquid crystal display) 디바이스, VFD(vacuum florescent display) 디바이스, SED(surface-conduction electron-emitter display) 디바이스, FED(field emission display) 디바이스, 햅틱 디바이스, 촉각 디바이스, 프린터, 스피커, 비디오 프로젝터, 입체 디스플레이 디바이스, 플로터, 터치 스크린, 및/또는 어떤 다른 출력 디바이스를 포함할 수 있다.
출력 디바이스들(970)은, 예를 들어, 정보를 컴퓨팅 디바이스(900)로부터 출력하라고 로직(920)에 의해 지시받을 수 있다. 출력 디바이스(970) 상에 정보를 출력하는 것은, 예를 들어, 정보를 출력 디바이스(970) 상에 제시(예컨대, 디스플레이, 인쇄)하는 것을 포함할 수 있다. 정보는, 예를 들어, 텍스트, GUI(graphical user interface) 요소들(예컨대, 창, 위젯, 및/또는 다른 GUI 요소들), 오디오(예컨대, 음악, 사운드), 및/또는 출력 디바이스들(970)에 의해 출력될 수 있는 다른 정보를 포함할 수 있다.
통신 인터페이스들(980)은 컴퓨팅 디바이스(900)와, 예를 들어, 하나 이상의 통신 네트워크들을 인터페이스 하기 위한 로직을 포함할 수 있고, 컴퓨팅 디바이스(900)가 통신 네트워크들에 결합된 하나 이상의 엔티티들(예컨대, 노드들)과 통신하게 할 수 있다. 통신 네트워크들은, 예를 들어, 인터넷, WAN(wide-area network), LAN(local area network), 3G 및/또는 4G[예컨대, 4G LTE(long-term evolution)] 네트워크들을 포함할 수 있다.
통신 인터페이스들(980)은 컴퓨팅 디바이스(900)가 통신 네트워크들에 결합된 엔티티들과 통신하게 할 수 있는 하나 이상의 송수신기-유사 메커니즘들(transceiver-like mechanisms)을 포함할 수 있다. 통신 인터페이스들(980)의 예들은 내장된 네트워크 어댑터, NIC(network interface card), PCMCIA(Personal Computer Memory Card International Association) 네트워크 카드, 카드 버스 네트워크 어댑터, 무선 네트워크 어댑터, USB(Universal Serial Bus) 네트워크 어댑터, 모뎀, 및/또는 컴퓨팅 디바이스(100)와 통신 네트워크를 인터페이스 하기에 적합한 다른 디바이스를 포함할 수 있다.
주 저장소(930) 및/또는 보조 저장소(950)는, 예를 들어, 앞서 기술된 저장 모듈들과 같은 하나 이상의 저장 모듈들을 포함할 수 있다. 컴퓨팅 디바이스(900)는 주 저장소(930)에 저장된 정보가 로직(920)과 주 저장소(930) 사이에서 전송되게 할 수 있는 메모리 버스(990)를 포함할 수 있다. 정보는, 예를 들어, 로직(920)에 의해 실행, 조작, 및/또는 다른 방식으로 처리될 수 있는 컴퓨터 실행 가능 명령어들 및/또는 데이터를 포함할 수 있다.
주 저장소(930)는 메모리 버스(990)를 통해 로직(920)에 의해 액세스 가능할 수 있다. 주 저장소(930)는 정보를 저장할 수 있는 유형적 비일시적 저장소일 수 있다. 정보는 OS(operating system)(932) 및 APP(application)(934) 또는 그의 일부들을 구현할 수 있는 컴퓨터 실행 가능 명령어들 및/또는 데이터를 포함할 수 있다. 정보는 로직(920)에 의해 실행, 해석, 조작, 및/또는 다른 방식으로 처리될 수 있다. 주 저장소(930)는 정보를 저장할 수 있는 하나 이상의 메모리 디바이스들을 사용하여 구현될 수 있다. 메모리 디바이스들은 앞서 기술된 바와 같은, 휘발성 및/또는 비휘발성 메모리 디바이스들을 포함할 수 있다.
OS(932)는, 예를 들어, (1) 로직(920) 상에서 실행할(예컨대, 그에 의해 실행될) APP(934)의 하나 이상의 부분들을 스케줄링하는 것, (2) 주 저장소(930)를 관리하는 것, 및 (3) 컴퓨팅 디바이스(900) 내의 다양한 구성요소들[예컨대, 입력 디바이스들(960), 출력 디바이스들(970), 통신 인터페이스들(980), 보조 저장소(950)] 및 이 구성요소들에 의해 수신 및/또는 전송되는 정보에 대한 액세스를 제어하는 것을 포함할 수 있는 다양한 종래의 운영 체제 기능들을 구현할 수 있는 종래의 운영 체제일 수 있다.
OS(932)를 구현하는 데 사용될 수 있는 운영 체제들의 예들은 Linux 운영 체제, Microsoft Windows 운영 체제, Symbian 운영 체제, Mac OS 운영 체제, 및 Android 운영 체제를 포함할 수 있다. 사용될 수 있는 Linux 운영 체제의 배포판(distribution)은 미국 노스캐롤라이나주 롤리 소재의 Red Hat Corporation으로부터 입수 가능한 Red Hat Linux이다. 사용될 수 있는 Microsoft Windows 운영 체제의 버전들은 미국 워싱턴주 레드몬드 소재의 Microsoft Inc.로부터 입수 가능한 Microsoft Windows Mobile, Microsoft Windows 8, Microsoft Windows 7, Microsoft Windows Vista, 및 Microsoft Windows XP 운영 체제들을 포함한다. Symbian 운영 체제는 아일랜드 더블린 소재의 Accenture PLC로부터 입수 가능하다. Mac OS 운영 체제는 미국 캘리포니아주 쿠퍼티노 소재의 Apple, Inc.로부터 입수 가능하다. Android 운영 체제는 미국 캘리포니아주 멘로파크 소재의 Google. Inc.로부터 입수 가능하다.
APP(934)는 컴퓨팅 디바이스(900) 상의 OS(932)의 제어 하에서 실행될 수 있는 소프트웨어 애플리케이션일 수 있다. APP(934) 및/또는 OS(932)는 정보를 보조 저장소(950)에 저장하는 것을 포함할 수 있는 트랜잭션들을 처리하기 위한 대책들을 포함할 수 있다. 이 대책들은 APP(934) 및/또는 OS(932)에 포함된 데이터 및/또는 컴퓨터 실행 가능 명령어들을 사용하여 구현될 수 있다.
보조 저장소(950)는 컴퓨팅 디바이스(900)에 대한 정보를 저장할 수 있는 유형적 비일시적 저장소일 수 있다. 정보는, 예를 들어, 컴퓨터 실행 가능 명령어들 및/또는 데이터를 포함할 수 있다. 정보는 로직(920)에 의해 실행, 해석, 조작, 및/또는 다른 방식으로 처리될 수 있다.
보조 저장소는 정보를 저장할 수 있는 하나 이상의 저장 디바이스들(952)을 포함할 수 있다. 저장 디바이스들(952)은 I/O 버스(910)를 통해 로직(920)에 의해 액세스 가능할 수 있다. 저장 디바이스들(952)은 휘발성 또는 비휘발성일 수 있다. 저장 디바이스들(952)의 예들은 자기 디스크 드라이브, 광 디스크 드라이브, RAM(random access memory) 디스크 드라이브, 플래시 드라이브, SSD(solid-state disk), 및/또는 하이브리드 드라이브(hybrid drive)를 포함할 수 있다. 정보는 저장 디바이스들(952)에 포함된 하나 이상의 유형적 비일시적 컴퓨터 판독 가능 매체 상에 저장될 수 있다. 저장 디바이스들에 포함될 수 있는 유형적 비일시적 컴퓨터 판독 가능 매체의 예들은 자기 디스크, 광 디스크, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스를 포함할 수 있다.
로직(920)은 정보를 해석하고, 실행하며, 그리고/또는 다른 방식으로 처리하기 위한 처리 로직(processing logic)(PL)(922)을 포함할 수 있다. 이 정보는 주 저장소(930) 및/또는 보조 저장소(950)에 저장될 수 있는 정보를 포함할 수 있다. 그에 부가하여, 이 정보는 하나 이상의 입력 디바이스들(960) 및/또는 통신 인터페이스들(980)에 의해 획득(예컨대, 판독, 수신)될 수 있는 정보를 포함할 수 있다.
PL(922)은 각종의 이질적 하드웨어를 포함할 수 있다. 예를 들어, 하드웨어는, 예를 들어, 정보를 해석하고, 실행하며, 조작하고, 그리고/또는 다른 방식으로 처리할 수 있는, 하나 이상의 프로세서들, 마이크로프로세서들, FPGA(field programmable gate array)들, ASIP(application specific instruction set processor)들, ASIC(application specific integrated circuit)들, CPLD(complex programmable logic device)들, GPU(graphics processing unit)들, 및/또는 다른 유형들의 처리 로직의 어떤 조합을 포함할 수 있다. 로직(920)은 단일의 코어 또는 다수의 코어들을 포함할 수 있다.
로직(920)은 또한 처리 로직과 주 저장소(930)를 인터페이스 할 수 있는 인터페이스 로직(interface logic)(IL)(924)을 포함할 수 있다. IL(924)은 버스(990)를 통해 주 저장소(930)와 로직(920) 사이에서 전송될 정보를 전송하기 위한 설비들(provisions)을 포함할 수 있다. 이 정보는 앞서 기술된 기법들과 같은 다양한 기법들을 이용하여 전송될 수 있다.
예를 들어, 일 실시예에서, 주 저장소(930)는 버스(990)를 통해 로직(920)에 의해 액세스 가능할 수 있는 비휘발성 메모리를 포함할 수 있다. IL(924)은 앞서 기술된 기법들과 같은 다양한 기법들을 사용하여 버스(990)를 통해 주 저장소(930)에 포함된 비휘발성 메모리와 PL(922) 사이에서 정보를 전달하기 위해 사용될 수 있는 로직을 포함할 수 있다. IL(924)에 포함될 수 있는 로직은, 예를 들어, 비휘발성 메모리와 PL(922) 사이에서 정보의 전송을 가능하게 하는 데 사용될 수 있는, 상태 기계, 버스 송수신기, 레지스터, 및/또는 다른 로직을 포함할 수 있다. 이 정보는, 예를 들어, 앞서 기술된 바와 같이, 요청들 및/또는 데이터를 포함할 수 있다.
실시예들에 대한 이상의 설명은 예시 및 설명을 제공하기 위한 것이고, 전수적이거나 본 발명을 개시된 정확한 형태로 제한하기 위한 것이 아니다. 수정들 및 변형들이 이상의 개시 내용을 바탕으로 실시 가능하거나, 본 발명의 실시로부터 획득될 수 있다. 예를 들어, 일련의 동작들이 도 5a, 도 5b, 도 6a, 도 6b, 도 7a, 도 7b, 도 8a, 및 도 8b와 관련하여 앞서 기술되어 있지만, 다른 구현예들에서, 동작들의 순서가 수정될 수 있다. 게다가, 비의존적인 동작들이 병렬로 수행될 수 있다.
또한, 본 명세서에서 사용되는 "사용자"라는 용어는 달리 언급되지 않는 한, 예를 들어, 컴퓨팅 디바이스(예컨대, 고정식 컴퓨팅 디바이스 또는 모바일 컴퓨팅 디바이스) 또는 컴퓨팅 디바이스의 사용자를 포함하도록 광의적으로 해석되는 것으로 의도되어 있다.
본 명세서에 기술된 하나 이상의 실시예들이 많은 상이한 형태들의 소프트웨어 및/또는 하드웨어로 구현될 수 있다는 것이 명백할 것이다. 본 명세서에 기술된 실시예들을 구현하는 데 사용되는 소프트웨어 코드 및/또는 특수 하드웨어가 본 발명을 제한하지 않는다. 따라서, 실시예들의 동작 및 거동이 특정 소프트웨어 코드 및/또는 특수 하드웨어를 참조하지 않고 기술되었고, 본 명세서에서의 설명에 기초하여 실시예들을 구현하도록 소프트웨어 및/또는 하드웨어를 설계할 수 있다는 것을 잘 알 것이다.
게다가, 본 발명의 특정 특징들은, 예를 들어, 처리 로직(130) 또는 처리 로직(922)과 같은, 처리 로직에 의해 실행될 수 있는 컴퓨터 실행 가능 명령어들을 사용하여 구현될 수 있다. 컴퓨터 실행 가능 명령어들은 하나 이상의 비일시적 유형적 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다. 이 매체는 휘발성 또는 비휘발성일 수 있고, 예를 들어, DRAM, SRAM, 플래시 메모리, 이동식 디스크, 비이동식 디스크 등을 포함할 수 있다.
본 명세서에서 사용되는 어떤 구성요소, 동작 또는 명령어도, 명시적으로 그와 같이 기술되지 않는 한, 본 발명에 중요하거나 필수적인 것으로 해석되어서는 안된다. 또한, 본 명세서에서 사용되는 바와 같이, "단수" 수식어는 하나 이상의 항목들을 포함하는 것으로 의도되어 있다. 단지 하나의 항목이 의도되어 있는 경우, 용어 "하나" 또는 유사한 표현이 사용될 수 있다. 게다가, 문구 "~에 기초하여"는, 명확히 달리 언급되지 않는 한, "~에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도되어 있다.
본 발명이 앞서 개시된 특정의 실시예들로 제한되지 않고, 본 발명이 이하의 첨부된 청구범위의 범주 내에 속하는 모든 특정의 실시예들 및 등가물들을 포함하는 것으로 의도되어 있다.

Claims (24)

  1. 방법으로서,
    요청이 송신되고 있다는 표시를 송신하는 단계 - 상기 표시는 메모리 인터페이스와 비휘발성 메모리 사이의 버스를 통해 상기 비휘발성 메모리로 송신됨 -;
    상기 요청을 상기 버스를 통해 상기 비휘발성 메모리로 송신하는 단계 - 상기 요청은 판독될 데이터를 포함하는 상기 비휘발성 메모리에서의 위치를 식별하기 위한 주소를 포함함 -;
    상기 비휘발성 메모리가 정보를 송신할 준비가 되어 있다는 표시를 상기 버스를 통해 획득하는 단계;
    상기 버스에 대한 액세스가 상기 비휘발성 메모리에 부여되었다는 표시를 상기 버스를 통해 송신하는 단계; 및
    상기 정보를 상기 버스를 통해 상기 비휘발성 메모리로부터 획득하는 단계 - 상기 정보는 상기 데이터를 포함함 -
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 요청은 판독 동작이 상기 비휘발성 메모리에 의해 수행되어야 한다는 것을 나타내는 명령을 포함하는, 방법.
  3. 제1항에 있어서, 상기 메모리 인터페이스가 송신하라는 요청을 가지고 있다는 표시를 상기 버스를 통해 송신하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서, 상기 버스를 통해 상기 비휘발성 메모리로 프리앰블을 송신하는 단계를 더 포함하며, 상기 프리앰블은 상기 버스로부터 상기 요청을 획득할 준비를 하기 위해 상기 비휘발성 메모리에 의해 사용되는, 방법.
  5. 제1항에 있어서,
    스트로브 신호(strobe signal)를 상기 버스로부터 획득하는 단계; 및
    상기 획득된 스트로브 신호를 사용하여 상기 정보를 상기 버스로부터 획득하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서, 상기 버스는 복수의 배선들을 포함하며,
    상기 복수의 배선들 중 동일한 배선을 통해 그 판독 요청이 송신되고 상기 비휘발성 메모리로부터의 상기 정보가 획득되는, 방법.
  7. 제1항에 있어서, 상기 비휘발성 메모리가 상기 버스의 소유권을 가진다는 것을 나타내는 표시를 상기 버스를 통해 송신하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서, 상기 비휘발성 메모리가 상기 정보를 상기 버스를 통해 더 이상 송신하지 않고 있다는 표시를 상기 버스로부터 획득하는 단계를 더 포함하는, 방법.
  9. 제8항에 있어서, 상기 비휘발성 메모리가 상기 정보를 상기 버스를 통해 더 이상 송신하지 않고 있다는 상기 표시는 포스트앰블(post-amble)을 포함하는, 방법.
  10. 제8항에 있어서, 상기 버스는 복수의 배선들을 포함하며, 상기 비휘발성 메모리에 의해 송신된 상기 정보는 상기 복수의 배선들 중 제1 배선을 통해 획득되고, 상기 비휘발성 메모리가 상기 정보를 더 이상 송신하지 않고 있다는 상기 표시가 상기 복수의 배선들 중 제2 배선을 통해 획득되는, 방법.
  11. 방법으로서,
    메모리 인터페이스와 비휘발성 메모리 사이의 버스를 통해 상기 비휘발성 메모리에서 표시를 획득하는 단계 - 상기 표시는 상기 메모리 인터페이스로부터 상기 버스를 통해 상기 비휘발성 메모리로 요청이 송신되고 있음을 나타냄 -;
    상기 요청을 상기 버스를 통해 상기 비휘발성 메모리에서 획득하는 단계 - 상기 요청은 판독될 데이터를 포함하는 상기 비휘발성 메모리에서의 위치를 식별하기 위한 주소를 포함함 -;
    상기 주소에 기초하여 판독될 상기 비휘발성 메모리에서의 위치를 상기 비휘발성 메모리에서 식별하는 단계;
    상기 비휘발성 메모리에서의 상기 위치로부터 데이터를 판독하는 단계;
    상기 비휘발성 메모리가 정보를 상기 메모리 인터페이스로 송신할 준비가 되어 있다는 것을 나타내는 표시를 상기 버스를 통해 상기 비휘발성 메모리로부터 상기 메모리 인터페이스로 송신하는 단계;
    상기 버스의 소유권이 상기 비휘발성 메모리에 부여되었다는 표시를 상기 버스를 통해 상기 메모리 인터페이스로부터 획득하는 단계; 및
    상기 정보를 상기 버스를 통해 상기 비휘발성 메모리로부터 상기 메모리 인터페이스로 송신하는 단계 - 상기 정보는 상기 데이터를 포함함 -
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 메모리 인터페이스가 송신하라는 요청을 가지고 있다는 표시를 상기 버스를 통해 상기 메모리 인터페이스로부터 획득하는 단계를 더 포함하는, 방법.
  13. 제11항에 있어서, 상기 버스를 통해 정보가 더 이상 송신되고 있지 않다는 것을 나타내는 표시를 상기 버스를 통해 상기 메모리 인터페이스로 송신하는 단계를 더 포함하는, 방법.
  14. 제11항에 있어서, 상기 버스를 통해 상기 메모리 인터페이스로 프리앰블을 송신하는 단계를 더 포함하며, 상기 프리앰블은 상기 버스로부터 상기 정보를 획득할 준비를 하기 위해 상기 메모리 인터페이스에 의해 사용되는, 방법.
  15. 제11항에 있어서, 상기 버스는 복수의 배선들을 포함하며,
    상기 복수의 배선들 중 동일한 배선을 통해 상기 요청이 획득되고 상기 정보가 송신되는, 방법.
  16. 방법으로서,
    요청이 송신되고 있다는 표시를 송신하는 단계 - 상기 표시는 메모리 인터페이스와 비휘발성 메모리 사이의 버스를 통해 상기 비휘발성 메모리로 송신됨 -;
    상기 요청을 상기 버스를 통해 상기 비휘발성 메모리로 송신하는 단계 - 상기 요청은 기입될 상기 비휘발성 메모리에서의 위치를 식별하는 데 사용하기 위한 주소를 포함함 -;
    기입될 데이터를 상기 버스를 통해 상기 비휘발성 메모리로 송신하는 단계;
    상기 비휘발성 메모리가 상기 버스를 통해 상기 메모리 인터페이스로 송신할 응답을 가지고 있다는 표시를 획득하는 단계;
    상기 버스에 대한 액세스를 상기 비휘발성 메모리에 부여하는 단계 - 상기 액세스는 상기 버스를 통해 부여됨 -; 및
    상기 버스를 통해 상기 비휘발성 메모리로부터 응답을 획득하는 단계 - 상기 응답은 상기 요청과 연관된 상태를 포함함 -
    를 포함하는, 방법.
  17. 제16항에 있어서, 상기 버스를 통해 상기 비휘발성 메모리로 프리앰블을 송신하는 단계를 더 포함하며, 상기 프리앰블은 상기 버스로부터 상기 요청을 획득할 준비를 하기 위해 상기 비휘발성 메모리에 의해 사용되는, 방법.
  18. 제16항에 있어서, 상기 버스는 복수의 배선들을 포함하며,
    상기 복수의 배선들 중 동일한 배선을 통해 상기 요청이 획득되고 상기 데이터가 송신되는, 방법.
  19. 방법으로서,
    요청이 메모리 인터페이스에 의해 비휘발성 메모리로 송신되고 있다는 표시를 획득하는 단계 - 상기 표시는 상기 메모리 인터페이스와 상기 비휘발성 메모리 사이의 버스를 통해 획득됨 -;
    상기 요청을 상기 버스를 통해 획득하는 단계 - 상기 요청은 주소를 포함함 -;
    기입될 데이터를 상기 메모리 인터페이스로부터 획득하는 단계 - 상기 데이터는 상기 버스를 통해 획득됨 -;
    상기 주소에 기초하여 기입될 상기 비휘발성 메모리에서의 위치를 식별하는 단계;
    상기 데이터를 상기 비휘발성 메모리에서의 상기 식별된 위치에 기입하는 단계;
    상기 비휘발성 메모리가 응답을 송신할 준비가 되어 있다는 표시를 송신하는 단계 - 상기 표시는 상기 버스를 통해 상기 비휘발성 메모리로부터 상기 메모리 인터페이스로 송신됨 -;
    상기 버스의 소유권이 상기 비휘발성 메모리에 부여되었다는 표시를 상기 버스를 통해 획득하는 단계; 및
    상기 응답을 상기 버스를 통해 상기 비휘발성 메모리로부터 상기 메모리 인터페이스로 송신하는 단계
    를 포함하는, 방법.
  20. 제19항에 있어서, 프리앰블을 상기 버스를 통해 상기 메모리 인터페이스로 송신하는 단계를 더 포함하고, 상기 프리앰블은 상기 버스로부터 상기 응답을 획득할 준비를 하기 위해 상기 메모리 인터페이스에 의해 사용되는, 방법.
  21. 제19항에 있어서, 상기 버스는 복수의 배선들을 포함하며,
    상기 복수의 배선들 중 동일한 배선을 통해 상기 요청이 획득되고 상기 응답이 송신되는, 방법.
  22. 제19항에 있어서, 상기 응답은 상기 데이터를 상기 비휘발성 메모리에서의 상기 식별된 위치에 기입하는 것과 연관된 기입 동작의 상태를 포함하는, 방법.
  23. 장치로서,
    인터페이스를 포함하고, 상기 인터페이스는
    요청이 비휘발성 메모리로 송신되고 있다는 표시를 송신하고 - 상기 표시는 상기 인터페이스와 상기 비휘발성 메모리 사이의 버스를 통해 상기 비휘발성 메모리로 송신됨 -,
    상기 요청을 상기 버스를 통해 상기 비휘발성 메모리로 송신하며 - 상기 요청은 판독될 데이터를 포함하는 상기 비휘발성 메모리에서의 위치를 식별하기 위한 주소를 포함함 -,
    상기 비휘발성 메모리가 정보를 송신할 준비가 되어 있다는 표시를 상기 버스를 통해 획득하고,
    상기 버스에 대한 액세스가 상기 비휘발성 메모리에 부여되었다는 표시를 상기 버스를 통해 송신하며,
    상기 정보를 상기 버스를 통해 상기 비휘발성 메모리로부터 획득 - 상기 정보는 상기 데이터를 포함함 - 하기 위한 것인, 장치.
  24. 제23항에 있어서, 상기 인터페이스는, 추가로,
    상기 버스를 통해 상기 비휘발성 메모리로 프리앰블을 송신하고, 상기 프리앰블은 상기 버스로부터 상기 요청을 획득할 준비를 하기 위해 상기 비휘발성 메모리에 의해 사용되는, 장치.
KR1020157034230A 2013-07-26 2013-07-26 비휘발성 메모리 인터페이스 KR101836219B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2013/002080 WO2015011516A1 (en) 2013-07-26 2013-07-26 Non-volatile memory interface

Publications (2)

Publication Number Publication Date
KR20160003839A true KR20160003839A (ko) 2016-01-11
KR101836219B1 KR101836219B1 (ko) 2018-04-19

Family

ID=52391475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034230A KR101836219B1 (ko) 2013-07-26 2013-07-26 비휘발성 메모리 인터페이스

Country Status (8)

Country Link
US (2) US9535829B2 (ko)
EP (1) EP3025239B1 (ko)
JP (1) JP6192192B2 (ko)
KR (1) KR101836219B1 (ko)
CN (1) CN105308584B (ko)
BR (1) BR112015032519B1 (ko)
RU (1) RU2623801C1 (ko)
WO (1) WO2015011516A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112015032519B1 (pt) 2013-07-26 2021-11-09 Intel Corporation Método e aparelho para interface de memória não volátil
US10127184B2 (en) 2016-09-27 2018-11-13 Intel Corporation Low overheard high throughput solution for point-to-point link
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US11347477B2 (en) 2019-09-27 2022-05-31 Intel Corporation Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989251A (en) * 1988-05-10 1991-01-29 Diaphon Development Ab Hearing aid programming interface and method
US5293495A (en) * 1992-06-29 1994-03-08 Xerox Corporation Method of addressing devices and transferring data on a bus
JPH06231074A (ja) * 1993-01-29 1994-08-19 Nec Corp システムバスの多重アクセス方式
JP3403284B2 (ja) * 1995-12-14 2003-05-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム及びその制御方法
EP1033855A1 (en) * 1999-03-03 2000-09-06 Deutsche Thomson-Brandt Gmbh Method and apparatus for transferring data on a bus to or from a device to be controlled by said bus
TW523672B (en) * 1999-04-23 2003-03-11 Via Tech Inc Bus system delayed transaction method and device applying the method
JP2004280191A (ja) * 2003-03-12 2004-10-07 Matsushita Electric Ind Co Ltd データ転送制御方法および装置
US20050071707A1 (en) 2003-09-30 2005-03-31 Hampel Craig E. Integrated circuit with bi-modal data strobe
JP2005242414A (ja) * 2004-02-24 2005-09-08 Sony Corp 情報処理装置および方法、並びにプログラム
CA2563277C (en) * 2004-07-12 2013-01-08 Kabushiki Kaisha Toshiba Storage device and host apparatus
US7310260B2 (en) * 2005-03-23 2007-12-18 Seiko Epson Corporation High performance register accesses
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7496719B2 (en) * 2005-07-26 2009-02-24 Intel Corporation Universal nonvolatile memory boot mode
US7694099B2 (en) * 2007-01-16 2010-04-06 Advanced Risc Mach Ltd Memory controller having an interface for providing a connection to a plurality of memory devices
JP2009015566A (ja) * 2007-07-04 2009-01-22 Panasonic Corp データ転送装置
US9342445B2 (en) * 2009-07-23 2016-05-17 Hgst Technologies Santa Ana, Inc. System and method for performing a direct memory access at a predetermined address in a flash storage
KR101616097B1 (ko) * 2009-11-11 2016-04-28 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US8310880B2 (en) * 2010-03-05 2012-11-13 248 Solid State, Inc. Virtual channel support in a nonvolatile memory controller
JP5547154B2 (ja) * 2011-09-21 2014-07-09 株式会社東芝 メモリ・デバイス
BR112015032519B1 (pt) 2013-07-26 2021-11-09 Intel Corporation Método e aparelho para interface de memória não volátil

Also Published As

Publication number Publication date
US20170212832A1 (en) 2017-07-27
KR101836219B1 (ko) 2018-04-19
CN105308584B (zh) 2019-07-16
US20150032941A1 (en) 2015-01-29
EP3025239B1 (en) 2018-12-26
JP6192192B2 (ja) 2017-09-06
CN105308584A (zh) 2016-02-03
US9910771B2 (en) 2018-03-06
EP3025239A1 (en) 2016-06-01
BR112015032519B1 (pt) 2021-11-09
BR112015032519A2 (pt) 2017-07-25
EP3025239A4 (en) 2017-04-05
WO2015011516A1 (en) 2015-01-29
US9535829B2 (en) 2017-01-03
RU2623801C1 (ru) 2017-06-29
JP2016525237A (ja) 2016-08-22

Similar Documents

Publication Publication Date Title
KR102238652B1 (ko) 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템의 작동 방법
US11573915B2 (en) Storage device for interfacing with host and method of operating the host and the storage device
US20240028207A1 (en) Near-memory compute module
US9256384B2 (en) Method and system for reducing write latency in a data storage system by using a command-push model
KR100909119B1 (ko) 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법
US9280497B2 (en) Systems and methods for support of non-volatile memory on a DDR memory channel
JP6196447B2 (ja) 読み取りデータ・ストローブ信号を含む低減ピン・カウント(rpc)メモリ・バス・インターフェースのための装置及び方法
US20160259568A1 (en) Method and apparatus for storing data
US10153015B2 (en) Managing disturbance induced errors
US20140136738A1 (en) Emulated legacy bus operation over a bit-serial bus
KR101925870B1 (ko) Ssd 콘트롤러 및 그의 제어 방법
US9910771B2 (en) Non-volatile memory interface
CN108228483B (zh) 处理原子写命令的方法和设备
KR102634776B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
KR102482527B1 (ko) 시리얼 인터페이스를 사용하는 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US9280298B2 (en) Storage device and storage system
EP3974954A1 (en) Storage device, operating method of storage device, and operating method of computing device including storage device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant