KR102071454B1 - 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들 - Google Patents

공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들 Download PDF

Info

Publication number
KR102071454B1
KR102071454B1 KR1020187014702A KR20187014702A KR102071454B1 KR 102071454 B1 KR102071454 B1 KR 102071454B1 KR 1020187014702 A KR1020187014702 A KR 1020187014702A KR 20187014702 A KR20187014702 A KR 20187014702A KR 102071454 B1 KR102071454 B1 KR 102071454B1
Authority
KR
South Korea
Prior art keywords
memory
target
data
source
bus
Prior art date
Application number
KR1020187014702A
Other languages
English (en)
Other versions
KR20180064542A (ko
Inventor
이화 장
제임스 쿡
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20180064542A publication Critical patent/KR20180064542A/ko
Application granted granted Critical
Publication of KR102071454B1 publication Critical patent/KR102071454B1/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/40Bus structure
    • G06F13/4004Coupling between buses
    • 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
    • G06F13/1694Configuration of memory controller to different memory types
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Dram (AREA)

Abstract

공유 버스를 가진 디바이스들 간에 직접 데이터 전달은 디바이스들과 연관된 제어기로부터의 감소된 개입으로 구현될 수 있다. 제어기, 소스 메모리 디바이스, 및 타겟 메모리 디바이스는 공유 버스와 결합될 수 있다. 제어기는 타겟 메모리 디바이스로 전달될 데이터에 대한 소스 메모리 디바이스내 소스 어드레스를 식별할 수 있다. 제어기는 또한 타겟 메모리 디바이스내 타겟 어드레스를 식별하며, 소스 및 타겟 메모리 디바이스 양쪽 모두에서 수신되는 명령을 통해 소스로부터 타겟으로의 직접 데이터 전달을 개시할 수 있다. 명령에 응답하여, 소스 메모리 디바이스는 버스로 나가는 데이터를 판독할 수 있으며, 타겟 메모리는 제어기로부터의 추가 명령들 없이 버스로부터 데이터를 판독하며 타겟 어드레스에서 시작하여 데이터를 저장할 수 있다.

Description

공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들
상호 참조들
특허에 대한 본 출원은 그 양수인에게 양도되며, 여기에서 참조로서 명확하게 통합된, 2015년 10월 30일에 출원된, "공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들"이라는 제목의, Zhang 외에 의한 미국 특허 출원 번호 제14/928,988호에 대한 우선권을 주장한다.
이하는 전반적으로 디바이스들 간에 데이터 전달에 관한 것이며 보다 구체적으로 공유 버스 상에서 다수의 디바이스들을 위한 데이터 전달 기술들에 관한 것이다.
메모리 디바이스들은 컴퓨터들, 무선 통신 디바이스들, 카메라들, 디지털 디스플레이들 등과 같은, 다양한 전자 디바이스들에 정보를 저장하기 위해 광범위하게 사용된다. 정보는 메모리 디바이스의 상이한 상태들을 프로그램함으로써 저장된다. 예를 들면, 이진 디바이스들은, 종종 로직 "1" 또는 로직 "0"에 의해 표시된, 두 개의 상태들을 갖는다. 다른 시스템들에서, 두 개 이상의 상태들이 저장될 수 있다. 저장된 정보를 액세스하기 위해, 전자 디바이스는 메모리 디바이스에서 저장된 상태를 판독하거나, 또는 감지할 수 있다. 정보를 저장하기 위해, 전자 디바이스는 메모리 디바이스에서 상태를 기록하거나, 또는 프로그램할 수 있다.
랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 RAM(DRAM), 동기식 동적 RAM(SDRAM), 강유전성 RAM(FeRAM), 자기 RAM(MRAM), 저항성 RAM(RRAM), 플래시 메모리, 및 기타를 포함한, 다수의 유형들의 메모리 디바이스들이 존재한다. 메모리 디바이스들은 휘발성이거나 또는 비-휘발성일 수 있다. 비-휘발성 메모리, 예로서 플래시 메모리는 외부 전원의 부재 시에도 확장된 시간 기간들 동안 데이터를 저장할 수 있다. 휘발성 메모리 디바이스들, 예로서 DRAM은 그것들이 외부 전원에 의해 주기적으로 리프레시되지 않는다면 시간에 걸쳐 그것들의 저장된 데이터를 잃을 수 있다. 휘발성 메모리의 특정한 양상들은, 보다 빠른 판독 또는 기록 속도들과 같은, 성능 이점들을 제공할 수 있는 반면, 주기적인 리프레싱 없이 데이터를 저장하기 위한 능력과 같은, 비-휘발성의 양상들이 유리할 수 있다.
디바이스들 간에 데이터를 전달할 때, 메모리 제어기는 소스 디바이스로부터 메모리 제어기 내에서의 데이터 저장 장치로 데이터를 판독하며, 그 후 메모리 제어기 내에서의 데이터 저장 장치로부터 타겟 디바이스로 데이터를 기록할 수 있다. 부가적으로, 많은 경우들에서 메모리 제어기는 휘발성 메모리 및 비-휘발성 메모리와 같은, 상이한 저장 디바이스들에 대한 상이한 유형들의 인터페이스들을 가질 수 있다. 이러한 설계들은 또한 메모리 제어기가 데이터의 전달을 가능하게 하기 위해 완전히 관여되는 것을 야기할 수 있다. 따라서, 상이한 전자 디바이스들 사이에서 강화된 메모리 제어기 효율 및 데이터 전송 효율을 허용하는 기술들을 제공하는 것이 유리할 수 있다.
본 개시의 실시예들은 다음의 도면들을 참조하여 설명된다:
도 1은 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 데이터 저장 구성요소들 간에 직접 데이터 전달을 지원하는, 메모리 시스템을 포함한, 디바이스의 블록도를 예시한다;
도 2는 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 데이터 저장 구성요소들 간에 직접 데이터 전달을 지원하는 메모리 시스템의 블록도를 예시한다;
도 3은 본 개시의 다양한 실시예들에 따른 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 제공하는 다수의 데이터 저장 디바이스들에 대한 타이밍 도를 예시한다;
도 4는 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 데이터 저장 구성요소들 간에 직접 데이터 전달을 지원하는 전자 시스템의 블록도를 예시한다;
도 5 내지 도 7은 본 개시의 다양한 실시예들에 따른 공유 버스를 사용하여 데이터 저장 구성요소들 간에 직접 데이터 전달을 위한 방법들을 예시하는 흐름도들이다.
본 개시의 다양한 실시예들은 제어기로부터의 감소된 개입을 갖고, 버스를 공유하는 디바이스들 간에 직접 데이터 전달을 위해 제공한다. 몇몇 실시예들에서, 메모리 제어기와 같은 제어기, 소스 메모리 디바이스, 및 타겟 메모리 디바이스는 공유 버스와 결합될 수 있다. 몇몇 예들에서, 공유 버스는 직렬 주변기기 인터페이스(SPI) 버스일 수 있지만, 다른 유형들의 버스들이 또한 사용될 수 있다. 몇몇 예들에서, 제어기는 프로세서(예로서, 마이크로프로세서)를 포함할 수 있거나, 또는 프로세서의 제어 하에서 동작될 수 있다. 제어기는 타겟 메모리 디바이스로 전달될 데이터에 대한 소스 어드레스를 소스 메모리 디바이스에서 식별할 수 있다. 제어기는 또한 타겟 메모리 디바이스내 타겟 어드레스를 식별하며, 버스를 통해 소스 메모리 디바이스로부터 타겟 메모리 디바이스로 직접 데이터의 전달을 개시할 수 있다. 제어기는 또한, 제 2 메모리 디바이스에서 수신될 수 있는, 데이터를 판독하기 위해 명령을 제 1 메모리 디바이스로 전송할 수 있다. 명령에 응답하여, 소스 메모리 디바이스는 버스로 나가는 데이터를 판독할 수 있으며, 타겟 메모리는 제어기로부터의 추가 명령들 없이 버스로부터 데이터를 판독하며 타겟 어드레스에서 시작하여 데이터를 저장할 수 있다. 몇몇 실시예들에서, 제 1 메모리 디바이스로부터의 데이터를 판독하기 위한 명령은 프로토콜 또는 명령 세트에 따른 제 1 메모리 디바이스에 대한 판독 명령일 수 있으며 제 2 메모리 디바이스가 제 1 메모리 디바이스에 의해 제공된 데이터를 저장하게 하기 위해 제 2 메모리 디바이스에 대한 특수 프로그램 명령일 수 있다.
몇몇 예들에서, 제어기는 인에이블 신호를 타겟 메모리 디바이스에 제공하며 타겟 어드레스를 타겟 메모리 디바이스에 타겟 어드레스 레지스터에 기록할 수 있다. 제어기는 그 후 판독 명령을 전송하는 것과 함께 인에이블 신호를 소스 메모리 디바이스 및 타겟 메모리 디바이스 양쪽 모두에 제공할 수 있다. 제어기는 또한 소스 메모리 디바이스 및 타겟 메모리 디바이스로 클록을 제공할 수 있고, 소스 메모리 디바이스는 버스로 나가는 데이터를 판독할 수 있으며, 타겟 메모리 디바이스는, 클록이 계속해서 제공되는 한, 버스로부터 데이터를 판독할 수 있다. 따라서, 제어기, 및/또는 제어기를 관리하는 프로세서는, 소스 및 타겟 어드레스들, 판독 명령, 및 인에이블 및 클록 신호들을 간단히 제공하는 것을 통해 데이터 전달에서 감소된 개입을 가질 수 있다. 이것은 다른 프로세싱 태스크들에 대한 리소스들을 자유롭게 함으로써 시스템 동작을 강화할 뿐만 아니라, 제어기가 사실상 메모리 디바이스들 간에 전달될 데이터를 수신하는 기술들에 따라 제어기에서 요구될 수 있는, 캐시 메모리 또는 버퍼 메모리와 같은, 내부 메모리의 양을 감소시킬 수 있다. 더욱이, 이러한 기술들은 데이터 전달을 위한 다른 기술들에 비해 시스템 전력 및 프로세싱 시간을 감소시킬 수 있다.
상기 소개된 본 개시의 실시예들은 디바이스들 간에 전달될 데이터를 가질 수 있는 상이한 디바이스들을 가진 전자 시스템의 맥락에서 이하에서 추가로 설명된다. 특정 예들은 감소된 메모리 제어기 개입을 가진 직접 데이터 전달 기술들을 이용할 수 있는 메모리 시스템들에 대해 설명된다. 본 개시의 이들 및 다른 실시예들은 공유 버스를 사용한 디바이스들 간에 직접 데이터 전달과 관련되는 장치 다이어그램들, 시스템 다이어그램들, 및 흐름도들에 의해 추가로 예시되며 그것을 참조하여 설명된다.
도 1은 본 개시의 다양한 실시예들에 따른 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 지원하는 시스템(100)의 다이어그램을 도시한다. 시스템(100)은 다양한 구성요소들을 연결하거나 또는 물리적으로 지원하기 위해 인쇄 회로 보드이거나 또는 이를 포함할 수 있는, 디바이스(105)를 포함할 수 있다. 디바이스(105)는 프로세서(110), BIOS 구성요소(115), 주변 구성요소(들)(120), 및 입력/출력 제어 구성요소(125), 및 메모리 시스템(150)을 포함할 수 있다. 디바이스(105)의 구성요소들은 디바이스 버스(130)를 통해 서로 전자 통신할 수 있다. 도 1의 예시적인 시스템(100)에서, 메모리 시스템(150)은 메모리 제어기(155), 휘발성 메모리(160), 및 비-휘발성 메모리(165)를 포함할 수 있으며, 이것은 공유 버스(170)에 의해 메모리 제어기(155)와 결합될 수 있다.
프로세서(110)는 메모리 제어기(155)를 통해 메모리 시스템(150)과 인터페이스하도록 구성될 수 있다. 몇몇 경우들에서, 프로세서(110)는 메모리 제어기(155)의 기능들을 수행할 수 있으며, 다른 경우들에서 메모리 제어기(155)는 프로세서(110)로 통합될 수 있다. 프로세서(110)는 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션-특정 집적 회로(ASIC), 필드-프로그램 가능한 게이트 어레이(FPGA) 또는 다른 프로그램 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소들일 수 있거나, 또는 그것은 이들 유형들의 구성요소들의 조합일 수 있으며, 프로세서(110)는 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 포함하여, 여기에서 설명된 다양한 기능들을 수행할 수 있다. 프로세서(110)는, 예를 들면, 디바이스(105)가 다양한 기능들 또는 태스크들을 수행하게 하기 위해 메모리 시스템(150)에 저장된 컴퓨터-판독 가능한 지시들을 실행하도록 구성될 수 있다.
BIOS 구성요소(115)는 시스템(100)의 다양한 하드웨어 구성요소들을 초기화하고 구동할 수 있는, 펌웨어로서 동작된 기본 입력/출력 시스템(BIOS : basic input/output system)을 포함하는 소프트웨어 구성요소일 수 있다. BIOS 구성요소(115)는 또한 프로세서(110) 및 다양한 구성요소들, 예로서 주변 구성요소들(120), 입력/출력 제어기(125) 등 사이에서의 데이터 흐름을 관리할 수 있다. BIOS 구성요소(115)는 판독 전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 비-휘발성 메모리에 저장된 프로그램 또는 소프트웨어를 포함할 수 있다.
주변 구성요소(들)(120)는, 디바이스(105)로 통합되는, 임의의 입력 또는 출력 디바이스, 또는 이러한 디바이스들을 위한 인터페이스일 수 있다. 예들은 디스크 제어기들, 사운드 제어기, 그래픽스 제어기, 이더넷 제어기, 모뎀, USB 제어기, 직렬 또는 병렬 포트, 또는 주변 구성요소 상호 접속(PCI) 또는 가속 그래픽스 포트(AGP) 슬롯들과 같은 주변 장치 카드 슬롯들을 포함할 수 있다.
입력/출력 제어기(125)는 프로세서(110) 및 주변 구성요소(들)(120), 입력 디바이스들(135), 또는 출력 디바이스들(140) 사이에서 데이터 통신을 관리할 수 있다. 입력/출력 제어기(125)는 또한 디바이스(105)로 통합되지 않은 주변 장치들을 관리할 수 있다. 몇몇 경우들에서, 입력/출력 제어기(125)는 외부 주변 장치로의 물리적 연결 또는 포트를 나타낼 수 있다.
입력(135)은 디바이스(105) 또는 그것의 구성요소들로 입력을 제공하는 디바이스(105)의 외부에 있는 신호 또는 디바이스를 나타낼 수 있다. 이것은 사용자 인터페이스 또는 다른 디바이스들과의 또는 그 사이에서의 인터페이스를 포함할 수 있다. 몇몇 경우들에서, 입력(135)은 주변 구성요소(들)(120)를 통해 디바이스(105)와 인터페이스하는 주변 장치일 수 있거나 또는 입력/출력 제어기(125)에 의해 관리될 수 있다.
출력 디바이스(140)는 디바이스(105) 또는 그것의 구성요소들 중 임의의 것으로부터 출력을 수신하도록 구성된 디바이스(105)의 외부에 있는 신호 또는 디바이스를 나타낼 수 있다. 출력 디바이스(140)의 예들은 디스플레이, 오디오 스피커들, 인쇄 디바이스, 또 다른 프로세서 또는 인쇄 회로 보드 등을 포함할 수 있다. 몇몇 경우들에서, 출력(140)은 주변 구성요소(들)(120)를 통해 디바이스(105)와 인터페이스하는 주변 장치일 수 있거나 또는 입력/출력 제어기(125)에 의해 관리될 수 있다.
상기 언급된 바와 같이, 메모리 시스템(150)은 메모리 제어기(155), 휘발성 메모리(160), 및 비-휘발성 메모리(165)를 포함할 수 있으며, 이것은 공유 버스(170)에 의해 메모리 제어기(155)와 결합될 수 있다. 몇몇 예들에서, 공유 버스(170)는 SPI 버스일 수 있으며, 메모리 제어기(155)는 휘발성 메모리(160) 및 비-휘발성 메모리(165) 양쪽 모두를 액세스하기 위해 단일 SPI 인터페이스를 사용할 수 있다. 메모리 제어기들에 대한 다양한 기존의 설계들은 휘발성 및 비-휘발성 메모리를 위해 별개의 인터페이스들을 사용할 수 있으며, 단일 인터페이스를 가진 공유 버스(170)를 사용하는 것은 보다 효율적이고 덜 복잡한 설계를 제공할 수 있다.
다양한 예들의 SPI 버스는 모두가 하나의 명령 시퀀스에 있는, 지시, 및 어드레스, 및 데이터를 포함하는 프로토콜을 사용할 수 있다. 이러한 명령 시퀀스는 칩 인에이블 또는 칩 선택 신호를 특정한 구성요소(예로서, 휘발성 메모리(160) 및/또는 비-휘발성 메모리(165))에 제공하는 것을 통해 개시되며, 칩 인에이블 또는 칩 선택 신호를 선택 해제하는 것을 통해 완료될 수 있다. SPI 프로토콜의 지시는 수행될 동작(예로서, 메모리 판독)을 정의할 수 있으며, 어드레스는 지시와 연관된 데이터가 위치되거나 또는 기록될 곳을 식별할 수 있다. 예를 들면, 지시는 판독 지시일 수 있으며 어드레스는 휘발성 메모리(160) 또는 비-휘발성 메모리(165)로부터 판독될 데이터의 시작 메모리 위치를 표시한 소스 어드레스일 수 있다. 다양한 예들에서, 지시에 이어서, SPI 프로토콜은 메모리 또는 다른 디바이스가 출력 전에 데이터를 감지하도록(예로서, 메모리 어레이에서의 특정한 위치에 저장된 데이터를 감지하도록) 허용하기 위해 어드레스를 제공하는 것 및 데이터의 출력 사이에서 더미 사이클들을 제공할 수 있다. 여기에 제공된 기술들은, SPI 공유 버스를 사용하는 시스템들에 관하여, 여러 개의 예들에 대해 설명된다. 그러나, 이러한 기술들은 모두가 동일한 칩 선택 이벤트에 있는 명령, 어드레스 및 데이터를 포함할 수 있는 유사한 명령 시퀀스들을 가진 다른 유형들의 공유 버스들을 사용하는 시스템들에서 사용될 수 있다.
이제 도 2를 참조하면, 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 지원하는 시스템(200)의 보다 구체적인 예가, 본 개시의 다양한 실시예들에 따라, 논의된다. 시스템(200)은 도 1의 메모리 시스템(150)의 예일 수 있는, 메모리 시스템(150-a)을 포함할 수 있다. 메모리 시스템(150-a)은 도 1의 공유 버스(170)의 예일 수 있는, 공유 버스(170-a)와 결합되는, 도 1의 메모리 제어기(155)의 예일 수 있는, 메모리 제어기(155-a)를 포함할 수 있다. 또한, 각각, 도 1의 휘발성 메모리(160) 및 비-휘발성 메모리(165)의 예들일 수 있는, 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a)가 공유 버스(170-a)와 결합된다.
휘발성 메모리(160-a)는 제 1 동작 지시 디코더(205), 제 1 타겟 어드레스 레지스터(210), 휘발성 메모리 어레이(215), 및 제 1 칩 인에이블(220)을 포함할 수 있다. 휘발성 메모리(160-a)는, 예를 들면, 메모리 시스템(150-a)에 포함된, 단일 집적 회로, 또는 칩일 수 있다. 몇몇 예들에서, 휘발성 메모리(160-a)는 상기 설명된 바와 같은 구성요소들을 포함하는 보다 큰 집적 회로의 메모리 모듈일 수 있다. 다른 예들에서, 제 1 동작 지시 디코더(205), 제 1 타겟 어드레스 레지스터(210), 및 휘발성 메모리 어레이(215)는 메모리 모듈에 포함된 이산 구성요소들(예로서, 인쇄 회로 보드 상에 장착된 구성요소들)일 수 있으며, 제 1 칩 인에이블(220)은 메모리 모듈의 이들(및 다른) 구성요소들을 가능하게 하기 위해 사용될 수 있다.
제 1 동작 지시 디코더(205)는 공유 버스(170-a)를 통해 수신되는 지시들을 디코딩하며 그에 따라 디코딩된 지시들에 따라 동작할 수 있다. 제 1 타겟 어드레스 레지스터(210)는 메모리 제어기(155-a)가 휘발성 메모리(160-a)로 전송될 데이터에 대한 타겟 어드레스를 제공할 수 있는 레지스터일 수 있다. 휘발성 메모리 어레이(215)는 메모리 셀들의 어레이(예로서, DRAM 또는 SRAM 어레이)를 포함할 수 있다. 제 1 타겟 어드레스 레지스터(210)가 휘발성 메모리 어레이(215)로부터 분리된 것으로 예시되지만, 몇몇 예들에서 제 1 타겟 어드레스 레지스터(210)는 휘발성 메모리 어레이(215)의 일 부분일 수 있다. 제 1 칩 인에이블(220)은 휘발성 메모리(160-a)로 하여금 지시들을 실행하며 공유 버스(170-a)를 통해 다른 구성요소들과 통신하게 하는 인에이블 라인일 수 있다.
유사하게, 비-휘발성 메모리(165-a)는 제 2 동작 지시 디코더(225), 제 2 타겟 어드레스 레지스터(230), 비-휘발성 메모리 어레이(235), 및 제 2 칩 인에이블(240)을 포함할 수 있다. 비-휘발성 메모리(165-a)는, 예를 들면, 메모리 시스템(150-a)에 포함된, 단일 집적 회로, 또는 칩일 수 있다. 몇몇 예들에서, 비-휘발성 메모리(165-a)는 상기 설명된 바와 같은 구성요소들을 포함하는 보다 큰 집적 회로의 메모리 모듈일 수 있다. 다른 예들에서, 제 2 동작 지시 디코더(225), 제 2 타겟 어드레스 레지스터(230), 및 비-휘발성 메모리 어레이(235)는 메모리 모듈에 포함된 이상 구성요소들(예로서, 인쇄 회로 보드 상에 장착된 구성요소들)일 수 있으며, 제 2 칩 인에이블(240)은 메모리 모듈의 이들(및 다른) 구성요소들을 가능하게 하기 위해 사용될 수 있다.
제 2 동작 지시 디코더(225)는 공유 버스(170-a)를 통해 수신되는 지시들을 디코딩하며 그에 따라 디코딩된 지시들에 따라 동작할 수 있다. 제 2 타겟 어드레스 레지스터(230)는 메모리 제어기(155-a)가 비-휘발성 메모리(165-a)로 전달될 데이터에 대한 타겟 어드레스를 제공할 수 있는 레지스터일 수 있다. 비-휘발성 메모리 어레이(235)는 비-휘발성 메모리 셀들의 어레이(예로서, EEPROM 또는 플래시 메모리 어레이)를 포함할 수 있다. 제 2 타겟 어드레스 레지스터(230)가 비-휘발성 메모리 어레이(235)로부터 분리된 것으로 예시되지만, 몇몇 예들에서 제 2 타겟 어드레스 레지스터(230)는 비-휘발성 메모리 어레이(235)의 일 부분일 수 있다. 제 2 칩 인에이블(240)은 비-휘발성 메모리(165-a)로 하여금 지시들을 실행하며 공유 버스(170-a)를 통해 다른 구성요소들과 통신하게 하는 인에이블 라인일 수 있다. 도 2의 예는 예시 및 논의 목적들을 위해 제공되며, 다른 예들은 다른 또는 부가적인 구성요소들을 포함할 수 있다는 것이 주의된다. 예를 들면, 휘발성 메모리(160-a) 및 비-휘발성 메모리(165)는 이 예에서 교환될 수 있거나, 또는 부가적인 메모리들 또는 인터페이스들이 공유 버스(170-a)와 결합될 수 있어서 공유 버스(170-a) 상에서의 상이한 디바이스들 간에 부가적인 통신들을 허용한다.
이 예에서 메모리 제어기(155-a)는 메모리 관리기(245) 및 칩 인에이블(CE) 관리기(255)를 포함할 수 있다. 메모리 관리기(245)는 SPI 프로토콜에 따른 명령 시퀀스들과 같은, 지시들을 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a)로 제공할 수 있다. 메모리 제어기(155-a)는 메모리 시스템(150-a)으로부터 다른 구성요소들로 데이터를 제공하거나, 또는 메모리 시스템(150-a)에 저장될 다른 구성요소들로부터 데이터를 수신하기 위해 다른 외부 구성요소들과 결합될 수 있다. CE 관리기(255)는 제 1 칩 인에이블 라인(246)을 통해 휘발성 메모리(160-a)의 제 1 칩 인에이블(220)과 결합될 수 있으며, 제 2 칩 인에이블 라인(250)을 통해 비-휘발성 메모리(165-a)의 제 2 칩 인에이블(240)과 결합될 수 있다. 메모리 제어기(155-a)는 또한 클록(260)을 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a)에 제공할 수 있다.
상기 언급된 바와 같이, 공유 버스(170-a)는 다양한 예들에 따른, SPI 버스일 수 있다. 본 개시의 다양한 실시예들은 SPI 버스의 직렬 프로토콜을 사용하며 메모리 제어기(155-a), 휘발성 메모리(160-a), 및 비-휘발성 메모리(165-a) 간에 데이터의 전달을 위해 강화된 기술들을 제공한다. 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a) 양쪽 모두는, 메모리 제어기(155-a)에 의해 별도로 액세스될 수 있는 그것들 개개의 칩 인에이블들(220 및 240)을 갖는, 메모리 제어기(155-a)의 서번트(servant)들일 수 있다. 몇몇 예들에서, 예를 들면, 메모리 시스템의 외부에 있는 프로세서에 의해 실행될 프로그램 지시들과 같은, 데이터는 비-휘발성 메모리(165-a)로부터 휘발성 메모리(160-a)로 로딩될 수 있다. 이러한 전달을 위한 로드 데이터 프로세스는 메모리 제어기(155-a)로부터의 제한된 개입을 갖고 비-휘발성 메모리(165-a)로부터 휘발성 메모리(160-a)로 직접 데이터를 이동시킬 수 있다. 유사하게, 휘발성 메모리(160-a)로부터의 특정한 데이터는 메모리 제어기(155-a)로부터의 제한된 개입을 갖고 휘발성 메모리(160-a)로부터 비-휘발성 메모리(165-a)로 직접 데이터를 이동시킬 수 있는 후기록(write-back) 데이터 프로세스를 통해 비-휘발성 메모리(165-a)로 기록될 필요가 있을 수 있다. 명료함을 위해, 이러한 로드 데이터 및 후기록 프로세스들은 별도로 설명되지만, 이들 동작들은 몇몇 예들에서 조합될 수 있다.
데이터 로드 프로세스에 대해, 메모리 제어기(155-a)는, 몇몇 예들에서, 휘발성 메모리(160-a)로 로딩될 데이터에 대한 비-휘발성 메모리(165-a)에서의 소스 어드레스를 결정할 수 있다. 메모리 제어기는 또한 휘발성 메모리(160-a)에서 데이터를 저장하기 위한 타겟 어드레스를 결정할 수 있다. 메모리 제어기(155-a)는 제 1 타겟 어드레스 레지스터(210)에 타겟 어드레스를 설정함으로써(예로서, 제 1 칩 인에이블(220)을 가능하게 하고, 제 2 타겟 어드레스 레지스터(210)에 타겟 어드레스를 기록하며, 제 1 칩 인에이블(220)을 디스에이블(disable)시킴으로써) 데이터 로드 프로세스를 개시할 수 있다. 메모리 제어기(155-a)는 그 후 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a) 양쪽 모두에서 수신되는 명령 시퀀스를 공유 버스(170-a)를 통해 전송할 수 있다. 이러한 명령은, 몇몇 예들에서, SPI 프로토콜에 따라 수립된 판독 명령일 수 있으며 판독 명령 및 소스 어드레스를 포함할 수 있다. 상기 언급된 바와 같이, 비-휘발성 메모리(165-a)로부터 휘발성 메모리(160-a)로 데이터를 이동시키기 위한 기존의 기술들은 소스 어드레스에서 시작한 데이터를 메모리 제어기(155-a)에서의 데이터 캐시로 이동시키는 판독 명령을 포함할 수 있다. 여기에서 설명된 기술들에 따르면, 그러나, 비-휘발성 메모리(165-a) 및 휘발성 메모리(160-a) 양쪽 모두는 판독 명령을 수신하며 명령 시퀀스를 청취할 수 있고, 메모리 제어기(155-a)에 저장되거나, 또는 데이터의 실제 움직임과 연관된 메모리 제어기(155-a)를 가진 데이터 없이 직접 데이터를 전달할 수 있다.
몇몇 예들에서, 메모리 관리기(245)는, CE 관리기(255)를 통해, 제 1 칩 인에이블(220) 및 제 2 칩 인에이블(240) 양쪽 모두로 칩 인에이블 신호를 제공할 수 있으며, 이것은 비-휘발성 메모리(165-a) 및 휘발성 메모리(160-a) 양쪽 모두로 하여금 판독 명령을 청취하도록 허용한다. 언급된 바와 같이, 판독 명령은, 휘발성 메모리가 무시할 수 있는, 소스 어드레스로 이어질 수 있으며, 메모리 제어기(155-a)는 비-휘발성 메모리(165-a) 및 휘발성 메모리(160-a)의 각각으로 클록을 제공할 수 있다. 제 2 동작 지시 디코더(225)에서 디코딩되는 판독 명령에 따른, 비-휘발성 메모리(165-a)는, 비-휘발성 메모리 어레이(235)로부터 소스 어드레스에서 시작하는 데이터를 출력할 수 있으며 클록(260)이 메모리 제어기(155-a)에 의해 계속해서 제공되는 한 소스 어드레스로부터 연속된 메모리 위치들에서 계속해서 데이터를 출력할 수 있다. 휘발성 메모리(160-a)에서 제 1 동작 지시 디코더(205)는 또한 판독 명령을 수신 및 디코딩하고, 소스 어드레스를 무시하며, 비-휘발성 메모리(165-a)에 의해 공유 버스(170-a)로 제공된 데이터를 타겟 어드레스의 위치에서 시작하는 휘발성 메모리 어레이(215)에 저장할 수 있다. 데이터의 판독, 및 데이터의 대응하는 저장은, 클록(260)이 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a)에 제공되는 시간 지속 기간 동안 계속된다. 이러한 방식으로, 메모리 제어기(155-a)는 메모리 제어기(155-a)의 제한된 개입을 갖고, 및 그것에서의 캐시 또는 버퍼에서 데이터의 저장 없이 비-휘발성 메모리(165-a)로부터 휘발성 메모리(160-a)로 직접 데이터를 이동시킬 수 있다. 유사한 동작들이, 제 2 타겟 어드레스 레지스터(230)에 저장된 후기록 데이터에 대한 타겟 어드레스 및 휘발성 메모리(160-a)로부터 공유 버스(170-a)로 데이터를 판독하기 위해 발행된 판독 명령을 갖고, 비-휘발성 메모리(165-a)로부터 휘발성 메모리(160-a)로 후기록 동작들을 위해 사용될 수 있다.
논의된 바와 같이, 본 개시의 다양한 실시예들에 대해 설명된 기술들은 양쪽 모두가 메모리 제어기(155-a)로부터 명령들을 수신하는 제 1 동작 지시 디코더(205) 및 제 2 동작 지시 디코더(225)를 수반한다. 데이터 로드 프로세스에 대해, 휘발성 메모리(160-a)가 지시를 기록 동작으로서 처리하는 동안 비-휘발성 메모리(165-a)는 그것을 판독 동작으로서 처리할 수 있다. 유사하게, 후기록 프로세스에 대해, 비-휘발성 메모리(165-a)가 지시를 기록 동작으로서 처리하는 동안 휘발성 메모리(160-a)는 그것을 판독 동작으로서 처리할 수 있다. 이들 지시들은 휘발성 메모리(160-a)) 및 비-휘발성 메모리(165-a) 양쪽 모두에 대한 타이밍 요건을 충족시키기 위해 정의될 수 있다. 이들 지시들은 또한 이러한 지시들이 각각의 부분에 고유한 한 SPI 프로토콜에서 정의된 기존의 비-휘발성 및 휘발성 메모리 판독 명령들을 이용할 수 있다. 예를 들면, "0Bh" 지시(SPI 플래시 비-휘발성 메모리에서의 기존의 FAST 판독 명령)가 임의의 SPI 동작에 대해 휘발성 메모리 측에서 사용되지 않았다면, 이 명령은 휘발성 메모리 측에서 기록 명령으로서 정의될 수 있다. 제 1 지시 디코더(205)는 그 후, 비-휘발성 메모리(165-a)로부터 예상된 데이터 출력에 대한 지식으로, FAST 판독 명령을 이해하고 명령 시퀀스를 기록 시퀀스로 변환할 수 있으며, 정확한 클록 및 타이밍을 갖고 공유 버스(170-a)에 제공된 데이터를 래치할 수 있다.
뿐만 아니라, 언급된 바와 같이, 휘발성 메모리(160-a) 및 비-휘발성 메모리(165-a)의 각각은 타겟 어드레스 레지스터를 가질 수 있다. 이러한 어드레스 레지스터는 타겟 어드레스가 제공되지 않는 동안 소스 어드레스가 명령 시퀀스에 제공되기 때문에 사용될 수 있다. 예를 들면 로드 데이터 프로세스에서, 명령 시퀀스는 비-휘발성 메모리(165-a)가 발송할 필요가 있는 어드레스를 포함하지만, 그것은 메모리 제어기(155-a)가 휘발성 메모리(160-a) 상에서 요구하는 타겟 어드레스가 아닐 수 있다. 따라서, 자동 동작 전에, 메모리 제어기(155-a)는 비-휘발성 메모리(165-a)로부터의 데이터가 로딩될 타겟 어드레스를 휘발성 메모리(160-a)에 제공한다. 후기록 동작에 대해 유사하게, 메모리 제어기(155-a)는 휘발성 메모리(160-a)로부터의 데이터가 정확한 위치로 다시 기록될 수 있도록 비-휘발성 메모리(165-a)를 제 2 타겟 어드레스 레지스터(230)에 설정한다. 몇몇 예들에서, 소스 및 타겟 어드레스들 양쪽 모두를 포함하는 새로운 명령 시퀀스들이 정의될 수 있다. 그러나, 타겟 어드레스 레지스터를 사용하는 것은 기존의 프로토콜에 대한 변화를 감소시킬 수 있으며 강화된 유연성을 제공할 수 있다. 비-휘발성 메모리(165-a)로부터 휘발성 메모리(160-a)로의 데이터 섀도잉 동작을 위한 동작들이 유사하게 예시될 수 있다.
도 3은 메모리 제어기로부터 본 개시의 다양한 실시예들에 따른 공유 버스를 사용하여 직접 데이터 전달을 지원하는 메모리 디바이스들로 제공된 신호들의 타이밍 도(300)를 도시한다. 타이밍 도(300)의 신호들은, 예를 들면, 도 1 및 도 2에 대하여 상기 논의된 바와 같이 메모리 제어기(155)에 의해, 제공될 수 있다. 도 3의 예에서, 비-휘발성 메모리 칩 인에이블 신호(305)(CE#_NVM)는 도 1 또는 도 2의 비-휘발성 메모리(165-a)와 같은, 비-휘발성 메모리로 제공될 수 있다. 휘발성 메모리 칩 인에이블 신호(310)(CE#_RAM)는 도 1 또는 도 2의 휘발성 메모리(160-a)와 같은, 휘발성 메모리로 제공될 수 있다. 데이터 신호(315)(DQ[x:0])는 도 1 또는 도 2의 공유 버스(170)와 같은, 공유 버스 상에서 제공될 수 있다. 클록(320)이 또한 제공될 수 있다. 도 3의 예에서, 휘발성 메모리로부터 비-휘발성 메모리로의 후기록 동작을 위한 동작들이 예시된다.
처음에, 시간(325)에서, 제어기는 비-휘발성 메모리가 데이터 신호(315)로부터 데이터를 래치하게 하는 비-휘발성 메모리로 로우 칩 인에이블 신호(305)를 제공할 수 있다. 이 예에서, 데이터 신호(315)는 제 1 시간 기간(335) 동안, 타겟 어드레스와 함께, 타겟 어드레스를 설정하기 위해 지시를 제공할 수 있다. 뿐만 아니라, 이러한 제 1 시간 기간(335) 동안, 칩 인에이블(310)은 하이이며, 이것은 휘발성 메모리로 하여금 인에이블되지 않은 채로 있으며 따라서 이러한 지시를 수신하지 않게 한다. 이러한 지시를 따르면, 칩 인에이블 신호(305)는 하이로 어서팅 해제되며, 그 후 칩 인에이블 신호들(305 및 310) 양쪽 모두는, 비-휘발성 메모리 및 휘발성 메모리 양쪽 모두를 가능하게 하기 위해, 시간(330)에 로우가 되도록 설정된다. 클록(320)는, 시간 기간(345) 동안, 또한 양쪽 모두에 제공되며, 여기에서 제어기는 판독 지시를 공유 버스 상에서 데이터 신호(315)로서 제공하며, 이것은 비-휘발성 메모리 및 휘발성 메모리 양쪽 모두에서 수신된다. 비-휘발성 메모리는 지시를 디코딩하고, 후기록 지시로서 지시를 인식하고, 지시에서 제공된 소스 어드레스를 무시하며, 그 후 휘발성 메모리로부터 버스로 출력된 데이터에 대한 공유 버스를 감지한다. 비-휘발성 메모리는 타겟 어드레스내 식별된 위치에서 시작하여 감지 데이터를 저장한다. 휘발성 메모리는 또한 공유 버스 상에서 데이터 신호(315)의 판독 지시를 디코딩하고, 지시로부터의 소스 어드레스를 디코딩하고, 소스 어드레스 위치에서 시작하는 저장 데이터를 감지하기 시작하며, 이러한 데이터를 공유 버스로 출력한다. 상기 언급된 바와 같이, 메모리 제어기로부터의 명령 시퀀스는 휘발성 메모리가 저장 데이터를 감지하도록 허용하는 다수의 더미 사이클들을 포함할 수 있으며, 휘발성 메모리 및 비-휘발성 메모리 양쪽 모두는 데이터 전달을 위한 적절한 타이밍을 제공하도록 더미 사이클들의 수를 알고 있다. 이들 동작들은 시간 기간(345)의 지속 기간 동안 계속된다. 시간 기간(345)이 시간(340)에서 만료될 때, 메모리 제어기는 칩 인에이블 신호들(305 및 310) 양쪽 모두를 선택 해제하며, 클록(320)을 제공하는 것을 중단할 수 있다.
상기 예들은 공유 버스와 결합될 수 있는 상이한 메모리 구성요소들을 설명하지만, 여기에서 설명된 기술들은 이러한 디바이스들 간에 데이터의 직접 전달을 위해 메모리 디바이스들 외에 다른 디바이스들에 의해 사용될 수 있다. 예를 들면, 이러한 기술들은 몇 가지 예를 들자면, 센서들, 보안 디지털 카드들, 및 액정 디스플레이들을 포함할 수 있는 내장 시스템들에서 사용될 수 있다. 이러한 전자 디바이스들은 제어기로부터의 제한된 개입을 갖고 데이터의 전송을 위해 여기에서 설명된 바와 같은 기술들을 사용할 수 있다.
도 4는 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 상이한 유형들의 디바이스들 간에 직접 데이터 전달을 지원하는 시스템(400)을 예시한다. 시스템(400)은 디바이스(405)를 포함할 수 있으며, 이것은 다양한 구성요소들을 연결하거나 또는 물리적으로 지원하기 위해 인쇄 회로 보드이거나 또는 이를 포함할 수 있다. 디바이스(405)는 제어기(420), 제 1 전자 디바이스(425), 제 2 전자 디바이스(430), 입력/출력 제어 구성요소(435), 및 선택적으로 하나 이상의 다른 구성요소들(440)을 포함할 수 있다. 디바이스(405)의 구성요소들은 도 1 또는 도 2의 공유 버스(170)의 예일 수 있는, 공유 버스(445)를 통해 서로 전자 통신할 수 있다. 도 4의 예시적인 시스템(400)에서, 제 1 전자 디바이스(425)는 제 1 데이터 저장 영역(450) 및 칩-인에이블/클록 입력(455)을 포함할 수 있다. 유사하게, 제 2 전자 디바이스(430)는 제 2 데이터 저장 영역(460) 및 연관된 칩-인에이블/클록 입력(465)을 포함할 수 있다.
제어기(420)는 공유 버스(445)를 통해 제 1 전자 디바이스(425), 제 2 전자 디바이스(430), 입력/출력 제어 구성요소(435), 및/또는 다른 구성요소들(440)과 인터페이스하도록 구성될 수 있다. 제어기는, 몇몇 예들에서, 상기 설명된 것과 같은 방식으로 디바이스들 간에 직접 데이터 전달을 개시할 수 있다. 몇몇 경우들에서, 제어기(420)는 도 1 내지 도 3에 대하여 상기 설명된 바와 같이 메모리 제어기(155)의 기능들을 수행할 수 있다. 제어기(420)는 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션-특정 집적 회로(ASIC), 필드-프로그램 가능한 게이트 어레이(FPGA) 또는 다른 프로그램 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소들일 수 있거나, 또는 그것은 이들 유형들의 구성요소들의 조합일 수 있으며, 제어기(420)는 공유 버스(445)를 사용하여 디바이스들 간에 직접 데이터 전달을 포함하여, 여기에서 설명된 다양한 기능들을 수행할 수 있다. 제어기(420)는, 예를 들면, 디바이스(405)가 다양한 기능들 또는 태스크들을 수행하게 하기 위해 컴퓨터-판독 가능한 지시들을 실행하도록 구성될 수 있다.
입력/출력 제어 구성요소(435)는 제어기(420) 내지 외부 구성요소들 간에 데이터 통신을 관리할 수 있으며 외부 구성요소들로의 물리적 연결 또는 포트를 나타낼 수 있다. 입력(410)은 디바이스(405) 또는 그것의 구성요소들로 입력을 제공하는 디바이스(405)의 외부에 있는 신호 또는 디바이스를 나타낼 수 있다. 이것은 사용자 인터페이스 또는 다른 디바이스들과의 또는 그 사이에서의 인터페이스를 포함할 수 있다. 몇몇 경우들에서, 입력(435)은 디바이스(405)와 인터페이스하는 주변 장치일 수 있거나 또는 입력/출력 제어 구성요소(435)에 의해 관리될 수 있다. 출력 디바이스(415)는 디바이스(405) 또는 그것의 구성요소들 중 임의의 것으로부터 출력을 수신하도록 구성된 디바이스(405)의 외부에 있는 신호 또는 디바이스를 나타낼 수 있다. 출력 디바이스(415)의 예들은 디스플레이, 오디오 스피커들, 인쇄 디바이스, 또 다른 프로세서 또는 인쇄 회로 보드 등을 포함할 수 있다. 몇몇 경우들에서, 출력(415)은 디바이스(405)와 인터페이스하는 주변 장치일 수 있다.
상기 언급된 바와 같이, 제어기(420)는 디바이스(405)의 하나 이상의 구성요소들이 디바이스(405)의 하나 이상의 다른 구성요소들로 데이터를 직접 전달하게 할 수 있다. 몇몇 예들에서, 제어기(420)는, CE/클록 구성요소(460)를 통해, 칩 인에이블 신호들 및 클록 신호들을 데이터를 전달할 디바이스들로 제공할 수 있다. 도 4의 예에서, 제 1 전자 디바이스(425)는 소스 디바이스일 수 있으며, 제 2 전자 디바이스(430)는 타겟 디바이스일 수 있다. 따라서, 제 1 데이터 저장 영역(450)에 저장된 데이터는 공유 버스(445)를 통해 제 2 전자 디바이스의 제 2 데이터 저장 영역(460)으로 전달될 수 있다. 이 예에서, 제 1 전자 디바이스(425)는 칩 인에이블/클록 입력(455)을 포함할 수 있으며, 제 2 전자 디바이스(430)는 또한 칩 인에이블/클록 입력(465)을 포함할 수 있다. 제어기는 제 1 전자 디바이스(425) 및 제 2 전자 디바이스(430)를 선택하고 클로킹하기 위해 CE/클록 구성요소(460)를 사용하며, 도 1 내지 도 3에 대하여 상기 논의된 것과 유사한 방식으로 제 1 전자 디바이스(425) 및 제 2 전자 디바이스(430) 사이에서 직접 데이터 전달들을 개시하고 완료하기 위해, 지시들 및 어드레스들을 공유 버스(445)에 제공할 수 있다.
도 5는 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 위한 흐름도(500)의 예를 예시한다. 흐름도(500)는 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달의 실시예들을 예시할 수 있으며 도 1 내지 도 4를 참조하여 상기 설명된 바와 같이 디바이스(105), 메모리 시스템(150), 또는 디바이스(405)에서 구현될 수 있다.
몇몇 예들에서, 메모리 제어기(155) 또는 제어기(420)와 같은, 디바이스는 블록(505)에서 표시된 바와 같이, 타겟 메모리로 전달될 데이터에 대한 소스 메모리내 소스 어드레스를 식별할 수 있다. 이러한 식별은, 예를 들면, 메모리 관리기(245)와 같은 메모리 관리기에 의해 이루어질 수 있으며, 도 1 내지 도 4에 대하여 상기 논의된 바와 같이, 소스 디바이스에 저장된 데이터에 대한 시작 어드레스를 식별할 수 있다. 예를 들면, 소스 메모리 디바이스는 소스 디바이스에서 비-휘발성 메모리에 저장되는 프로그램 코드를 프로세서에 의한 실행을 위해 포함할 수 있다. 프로세서는 프로세서에서 실행될 프로그램 코드를 식별하며 이러한 정보를 메모리 관리기로 제공할 수 있으며, 이것은 그 후 비-휘발성 메모리로부터 프로그램 코드의 실행을 위해 프로세서에 의해 보다 쉽게 액세스될 수 있는 휘발성 메모리, 또는 타겟 메모리로 식별된 데이터를 이동시키기 위해 소스 어드레스를 식별할 수 있다. 몇몇 예들에서, 제어기, 소스 메모리, 및 타겟 메모리는 버스 상에서의 디바이스들 간에 명령들 및 데이터를 전달하기 위해 사용될 수 있는 공유 버스와 결합될 수 있다.
블록(510)에서, 디바이스는 도 1 내지 도 4에 대하여 상기 논의된 바와 같이, 소스 메모리로부터 타겟 메모리로 직접 데이터의 전달을 개시하기 위해 타겟 어드레스를 타겟 메모리로 전송할 수 있다. 디바이스는, 예를 들면, 소스 메모리로부터의 데이터가 타겟 메모리에 저장되는 어드레스로서 타겟 어드레스를 식별할 수 있다. 예를 들면, 메모리 제어기는 프로세서에 의해 실행될 프로그램 코드의 저장을 위해 휘발성 메모리의 영역을 지정할 수 있으며, 식별된 영역의 시작 어드레스를 타겟 어드레스로서 사용할 수 있다. 제어기는, 몇몇 예들에서, 타겟 메모리에서 칩 인에이블을 선택하고, 클록을 타겟 메모리에 제공하고, 타겟 메모리에서의 타겟 어드레스 레지스터에 타겟 어드레스를 설정하기 위해 명령을 공유 버스로 출력하며, 타겟 어드레스를 출력함으로써, 타겟 어드레스를 타겟 메모리로 전송할 수 있다. 타겟 메모리는 명령을 디코딩하고, 공유 버스로부터 데이터를 래치하며, 타겟 메모리에서의 타겟 어드레스 레지스터에 데이터를 저장할 수 있다. 소스 메모리는, 몇몇 예들에서, 비-휘발성 메모리일 수 있으며, 타겟 메모리는 휘발성 메모리일 수 있지만, 다수의 다른 예들이 다른 유형들의 디바이스들(예로서, 디스플레이들, 센서들, 카드들 등)의 다른 유형들의 메모리 또는 데이터 저장 구성요소들인 소스 메모리 및 타겟 메모리를 제공할 수 있다.
블록(515)에서, 디바이스는 도 1 내지 도 4에 대하여 상기 논의된 바와 같이, 소스 메모리로부터 데이터를 판독하기 위해 판독 명령을 소스 메모리로 전송할 수 있다. 판독 명령은 데이터가 소스 메모리로부터 판독된다는 표시를 포함할 수 있으며, 판독될 데이터에 대한 시작 어드레스를 포함할 수 있다. 제어기는, 몇몇 예들에서 소스 메모리에서 및 타겟 메모리에서 칩 인에이블을 선택하고, 클록을 소스 메모리 및 타겟 메모리로 제공하고, 데이터 출력 지시를 공유 버스로 출력하며, 소스 어드레스를 출력함으로써, 판독 명령을 전송할 수 있다. 소스 메모리는 명령을 디코딩하고(예로서, 동작 지시 디코더에서), 공유 버스로부터 데이터를 래치하며, 소스 어드레스에서 시작하는 데이터를 공유 버스로 전달하기 시작할 수 있다. 부가적으로, 칩 인에이블 및 클록이 소스 메모리에 제공되는 칩 인에이블 및 클록과 동시에 타겟 메모리에 제공될 수 있으므로, 타겟 메모리는 판독 명령을 디코딩하고, 데이터의 전달을 개시한 것으로 판독 명령을 식별하고, 판독 명령에서 소스 어드레스를 무시하며, 소스 메모리에 의해 공유 버스로 제공된 데이터를 저장하기 시작할 수 있다.
블록(520)에서, 소스 메모리는 도 1 내지 도 4에 대하여 상기 논의된 바와 같이, 소스 메모리로부터 타겟 메모리로 직접 데이터를 전달할 수 있다. 소스 메모리는 타겟 메모리에 의해 공유 버스로부터 판독될 수 있는, 데이터를 공유 버스에 제공함으로써 전달을 수행할 수 있다. 이러한 데이터는 이전에 타겟 메모리에 제공된 타겟 어드레스에서 시작하여 타겟 메모리에 저장될 수 있다. 이러한 전달은 그 후, 몇몇 예들에 따라, 클록이 소스 메모리 및 타겟 메모리에 제공되는 한 계속될 수 있다. 따라서, 메모리 제어기와 같은 디바이스는 소스 메모리로부터 판독될 데이터의 양 및 데이터가 소스 메모리로부터 판독되는 레이트 또는 데이터가 타겟 메모리로 기록될 수 있는 레이트에 기초하여 클록을 제공하기 위한 시간 지속 기간을 결정할 수 있다.
도 6은 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 위한 흐름도(600)의 예를 예시한다. 흐름도(600)는 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달의 실시예들을 예시할 수 있으며 도 1 내지 도 4를 참조하여 상기 설명된 바와 같이 디바이스(105), 메모리 시스템(150), 또는 디바이스(405)에서 구현될 수 있다.
몇몇 예들에서, 메모리 제어기(155) 또는 제어기(420)와 같은, 디바이스는, 블록(605)에서 표시된 바와 같이, 칩 인에이블 및 클록을 타겟 디바이스로 제공할 수 있다. 칩 인에이블, 또는 칩 선택, 및 클록은, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 공유 버스로부터 하나 이상의 명령들 및/또는 데이터를 판독하기 시작하도록 타겟 디바이스를 촉구할 수 있다. 공유 버스는, 몇몇 예들에서, 상기 논의된 것과 같은, SPI 버스, 또는 명령 시퀀스에서 명령 및 후속 데이터를 제공하는 연관된 프로토콜을 가진 다른 유형의 버스일 수 있다.
블록(610)에서, 디바이스는 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 타겟 디바이스에 어드레스 레지스터를 설정할 수 있다. 디바이스는, 예를 들면, 소스 디바이스(예로서, 소스 메모리 디바이스) 메모리로부터의 데이터가 타겟 디바이스(예로서, 타겟 메모리 디바이스)에 저장될 어드레스로서 타겟 어드레스를 식별하며, 이러한 타겟 어드레스를 갖는 어드레스 레지스터를 설정할 수 있다. 예를 들면, 메모리 제어기는 프로세서에 의해 실행될 프로그램 코드의 저장을 위해 휘발성 메모리의 영역을 지정할 수 있으며, 식별된 영역의 시작 어드레스를 타겟 어드레스로서 사용할 수 있다.
블록(615)에서, 디바이스는 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 타겟 디바이스에 대한 칩 인에이블 및 클록을 디스에이블시킬 수 있다. 디바이스는, 예를 들면, 타겟 어드레스 레지스터에 저장을 위해 타겟 어드레스를 제공한 후, 타겟 디바이스(예로서, 타겟 메모리 디바이스)를 선택 해제하고 그에 따라 어드레스 레지스터를 설정하기 위해 타겟 디바이스에 제공되는 명령 시퀀스를 완성할 수 있다.
블록(620)에서, 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 소스 디바이스로 및 타겟 디바이스로 칩 인에이블 및 클록을 제공할 수 있다. 또한, 상기 논의된 바와 같이, 소스 및 타겟 디바이스들의 각각으로 칩 인에이블 및 클록을 제공하는 것은, 소스 및 타겟 디바이스들 양쪽 모두가 공유 버스 상에 제공된 명령 및 명령에 이은 임의의 데이터를 디코딩하며, 디바이스들에 대한 새로운 명령 시퀀스를 개시하려고 시도하는 것을 야기한다.
블록(625)에서, 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 판독 명령을 또한 타겟 디바이스에서 수신되는 소스 디바이스로 전송할 수 있다. 소스 디바이스 및 타겟 디바이스 양쪽 모두가 가능해지고 클로킹됨에 따라, 판독 명령은 각각의 디바이스에서 수신될 수 있다. 몇몇 예들에서, 각각의 디바이스에서의 동작 지시 디코더는 판독 명령을 디코딩할 수 있으며, 이것은 데이터가 소스 디바이스 및 타겟 디바이스 사이에서 전달됨을 디바이스에 표시할 수 있다.
블록(630)에서, 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 전달될 데이터의 양에 대응하는 시간 지속 기간 동안 소스 디바이스 및 타겟 디바이스로 칩 인에이블 및 클록을 제공할 수 있다. 소스 디바이스 및 타겟 디바이스는 따라서 데이터의 직접 전달을 제공할 수 있으며, 소스 디바이스는 타겟 디바이스에 의해 공유 버스로부터 판독될 수 있는, 데이터를 공유 버스에 제공한다. 이러한 데이터는 블록(610)에서 어드레스 레지스터에 제공된 어드레스에서 시작하는 타겟 디바이스에 저장될 수 있다. 디바이스(예로서, 메모리 제어기(155) 또는 제어기(420))에 의해 클록 및 칩 인에이블을 제공하기 위한 시간 지속 기간은 소스 디바이스로부터 판독될 데이터의 양 및 데이터가 소스 디바이스로부터 판독되는 레이트 또는 데이터가 타겟 디바이스로 기록될 수 있는 레이트에 기초할 수 있다.
블록(635)에서, 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 시간 지속 기간의 만료를 따라 소스 디바이스 및 타겟 디바이스에 대한 칩 인에이블 및 클록을 디스에이블시킬 수 있다. 시간 지속 기간 후에, 디바이스(예로서, 메모리 제어기(155) 또는 제어기(420))는 데이터가 모두 전송되었다고 결정할 수 있으며, 제 1 메모리 디바이스 및 제 2 메모리 디바이스를 선택 해제할 수 있다.
도 7은 본 개시의 다양한 실시예들에 따른, 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달을 위한 흐름도(700)의 예를 예시한다. 흐름도(700)는 공유 버스를 사용하여 디바이스들 간에 직접 데이터 전달의 실시예들을 예시할 수 있으며 도 1 내지 도 4를 참조하여 상기 설명된 바와 같이 디바이스(105), 메모리 시스템(150), 또는 디바이스(405)에서 구현될 수 있다.
몇몇 예들에서, 타겟 디바이스(예로서, 비-휘발성 메모리(165), 휘발성 메모리(160), 또는 제 2 전자 디바이스(430))는 블록(705)에서 표시된 바와 같이 및 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 제어기(예로서, 메모리 제어기(155) 또는 제어기(420))로부터 타겟 어드레스를 수신할 수 있다. 제어기는, 몇몇 예들에서, 디바이스와 연관된 칩 인에이블을 선택하고, 클록을 디바이스에 제공하고, 타겟 디바이스내 타겟 어드레스 레지스터에 타겟 어드레스를 설정하기 위해 명령을 공유 버스로 출력하며, 타겟 어드레스를 출력함으로써, 타겟 어드레스를 전송할 수 있다. 타겟 디바이스는, 다양한 예들에 따라, 명령을 디코딩하고, 공유 버스로부터 데이터를 래치하며, 데이터를 타겟 어드레스 레지스터에 저장할 수 있다.
블록(710)에서, 타겟 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게 제어기로부터 소스 디바이스로 전송된 판독 명령을 디코딩할 수 있다. 판독 명령은 데이터가 소스 디바이스로부터 판독된다는 표시를 포함할 수 있으며, 판독될 데이터에 대한 시작 어드레스를 포함할 수 있다. 타겟 디바이스는 명령을 디코딩하고(예로서, 동작 지시 디코더에서), 공유 버스로부터 데이터를 래칭하며, 타겟 어드레스에서 시작하여 데이터를 저장할 수 있다.
블록(715)에서, 타겟 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 명령에 포함된 소스 어드레스를 무시할 수 있다. 상기 논의된 바와 같이, 타겟 디바이스는 타겟 어드레스 레지스터에 저장된 그것의 타겟 어드레스를 가질 수 있으며, 타겟 어드레스는 데이터가 소스 디바이스에서 저장되는 소스 어드레스와 상이할 수 있다. 따라서, 명령이 소스 어드레스를 포함하면, 타겟 디바이스는 그것이 타겟 디바이스에 관련되지 않았으므로 이 정보를 간단히 무시할 수 있다. 상기 언급된 바와 같이, 몇몇 다른 예들에서 명령 시퀀스는 소스 및 타겟 어드레스 양쪽 모두를 포함할 수 있으며, 이 경우들에서 블록들(710 및 715)의 동작들은 조합될 수 있으며, 각각의 소스 또는 타겟 디바이스는 다른 디바이스와 연관된 어드레스를 무시할 수 있다. 예를 들면, 명령 시퀀스는 형태 "<CMDcode|Add1|Add2>"에 있을 수 있으며 여기에서 Add1은 소스 어드레스일 것이며 Add2는 타겟 어드레스일 것이다. 이러한 예에서, 소스 및 타겟 디바이스들은 칩 인에이블을 갖고 가능해질 수 있으며, 어떤 디바이스가 소스이며 어떤 디바이스가 타겟인지를 지정할 수 있는(또는 이러한 지정은 미리 이루어질 수 있다), CMDcode를 디코딩할 수 있다.
블록(720)에서, 타겟 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 소스 디바이스로부터 버스 상에서 이용 가능한 데이터를 식별할 수 있다. 버스 상에서 이용 가능한 데이터는 소스 디바이스로부터(예로서, 제어기에 의해 소스 디바이스로 전송된 판독 명령에 기인한) 공유 버스로 전달된 데이터일 수 있다. 몇몇 예들에서, 타겟 디바이스는 소스 어드레스를 공유 버스에 제공하는 것과 연관된 미리 결정된 수의 클록 사이클들 및 소스 어드레스에 저장된 데이터를 감지하기 위해 소스 디바이스에 대한 충분한 시간을 제공하기 위한 더미 사이클들을 기다리며, 소스 디바이스로부터 전달된 데이터로서 공유 버스 상에서의 후속 정보를 식별할 수 있다.
블록(725)에서, 타겟 디바이스는, 도 1 내지 도 4에 대하여 상기 논의된 것과 유사하게, 타겟 어드레스에서 시작하는 소스 디바이스로부터 버스로 전달된 데이터를 저장할 수 있다. 이러한 전달은 그 후, 몇몇 예들에 따라, 클록이 소스 디바이스 및 타겟 디바이스에 제공되는 한 계속될 수 있다. 따라서, 메모리 제어기와 같은 디바이스는 소스 디바이스로부터 판독될 데이터의 양 및 데이터가 소스 디바이스로부터 판독되는 레이트 또는 데이터가 타겟 디바이스로 기록될 수 있는 레이트에 기초하여 클록을 제공하기 위한 시간 지속 기간을 결정할 수 있다.
따라서, 방법들(500, 600, 및 700)은 공유 버스를 사용한 직접 데이터 전달을 위해 제공할 수 있다. 방법들(500, 600, 및 700)은 가능한 구현들을 설명하며, 동작들 및 단계들은 다른 구현들이 가능하도록 재배열되거나 또는 그 외 수정될 수 있다는 것이 주의되어야 한다. 몇몇 예들에서, 방법들(500, 600, 및 700) 중 둘 이상으로부터의 양상들이 조합될 수 있다.
방법이 설명된다. 몇몇 예들에서, 이 방법은, 메모리 제어기에서, 타겟 메모리로 전달될 데이터에 대한 소스 메모리내 소스 어드레스를 식별하는 수단을 포함할 수 있고, 메모리 제어기, 소스 메모리 및 타겟 메모리는 버스와 각각 결합된다. 몇몇 예들에서, 이 방법은, 메모리 제어기에 의해, 버스를 통해 소스 메모리로부터 타겟 메모리로 직접 데이터의 전달을 개시하기 위해 타겟 어드레스를 타겟 메모리로 전송하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 소스 메모리로부터 버스로 데이터를 판독하기 위해 판독 명령을 소스 메모리로 전송하는 수단을 포함할 수 있다.
몇몇 예들에서, 이 방법은, 소스 메모리에 의해, 소스 어드레스에서 시작하는 데이터를 버스로 전달하는 수단을 포함할 수 있다. 몇몇 예들에서, 판독 명령은 버스를 통해 소스 메모리로 전송될 수 있다. 몇몇 예들에서, 이 방법은, 버스를 통해 타겟 메모리에 의해, 판독 명령을 수신하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 타겟 어드레스에서 시작하여 타겟 메모리에, 소스 메모리로부터 버스로 제공된 후속 데이터를 저장하는 수단을 포함할 수 있다.
몇몇 예들에서, 판독 명령은 데이터 출력 지시 및 소스 어드레스를 포함할 수 있다. 몇몇 예들에서, 이 방법은, 데이터의 전달을 개시할 때의 판독 명령을 식별하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 소스 어드레스를 무시하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 소스 메모리 및 타겟 메모리 각각으로 칩 인에이블 신호(chip enable signal)를 제공하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 시간 지속 기간 동안 소스 메모리 및 타겟 메모리로 클록을 제공하는 수단을 포함할 수 있다.
몇몇 예들에서, 시간 지속 기간은 소스 메모리로부터 타겟 메모리로 전달될 데이터의 양에 대응한다. 몇몇 예들에서, 버스는 직렬 주변기기 상호 접속(SPI : serial peripheral interconnect) 버스를 포함할 수 있다. 몇몇 예들에서, 소스 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함할 수 있으며, 타겟 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함할 수 있다.
방법이 설명된다. 몇몇 예들에서, 이 방법은, 타겟 메모리 및 소스 메모리와 결합되는 버스를 통해 타겟 메모리에서 수신될 데이터의 저장을 위해 타겟 메모리에서 타겟 어드레스를 설정하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 소스 메모리로부터 버스로 데이터를 판독하며 버스로부터의 데이터를 타겟 메모리에 저장하기 위해 명령을 소스 메모리 및 타겟 메모리 각각으로 전송하는 수단을 포함할 수 있다. 몇몇 예들에서, 타겟 어드레스를 설정하는 것은, 타겟 어드레스를 타겟 메모리의 타겟 어드레스 레지스터로 제공하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 타겟 메모리의 동작 지시 디코더에서, 명령을 수신하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 타겟 메모리에서, 타겟 어드레스에서 시작하여, 명령을 따른 버스로부터의 데이터의 저장을 개시하는 수단을 포함할 수 있다.
몇몇 예들에서, 이 방법은, 소스 메모리에 의해, 소스 어드레스에서 시작하는 데이터를 버스로 전달하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 타겟 메모리에 의해, 버스로부터의 데이터를 저장하는 수단을 포함할 수 있다. 몇몇 예들에서, 명령은 소스 메모리 및 타겟 메모리 각각에서 수신되는 단일 명령 시퀀스를 포함할 수 있다. 몇몇 예들에서, 이 방법은, 칩 인에이블 신호를 소스 메모리 및 타겟 메모리 각각에 제공하는 수단을 포함할 수 있다. 몇몇 예들에서, 이 방법은, 시간 지속 기간 동안 클록을 소스 메모리 및 타겟 메모리에 제공하는 수단을 포함할 수 있다.
몇몇 예들에서, 시간 지속 기간은 소스 메모리로부터 타겟 메모리로 전달될 데이터의 양에 대응한다. 몇몇 예들에서, 버스는 직렬 주변기기 상호 접속(SPI) 버스를 포함할 수 있다. 몇몇 예들에서, 소스 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함할 수 있으며, 타겟 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함할 수 있다.
장치가 설명된다. 몇몇 예들에서, 이 장치는 버스와 결합된 제 1 전자 디바이스를 포함할 수 있고, 제 1 전자 디바이스는 제 1 데이터 저장 영역을 포함한다. 몇몇 예들에서, 이 장치는 버스와 결합된 제 2 전자 디바이스를 포함할 수 있고, 제 2 전자 디바이스는 제 2 데이터 저장 영역을 포함한다. 몇몇 예들에서, 이 장치는, 버스와 결합되며 제 1 전자 디바이스 및 제 2 전자 디바이스와 전자 통신하는 제어기를 포함할 수 있고, 이 제어기는, 제 1 데이터 저장 영역으로부터 제 2 데이터 저장 영역으로 전달될 데이터에 대한 제 1 데이터 저장 영역내 소스 어드레스를 식별하는 수단을 지원한다. 몇몇 예들에서, 이 제어기는 제 2 데이터 저장 영역내 타겟 어드레스를 식별하는 수단을 지원할 수 있다. 몇몇 예들에서, 이 제어기는, 버스를 통해 제 1 전자 디바이스로부터 제 2 전자 디바이스로 직접 데이터의 전달을 개시하는 수단을 지원할 수 있다.
몇몇 예들에서, 제 2 전자 디바이스는 타겟 어드레스 레지스터를 포함할 수 있고, 제어기는 전달될 데이터의 저장을 위해 타겟 어드레스 레지스터에 타겟 어드레스를 설정하는 수단을 또한 지원한다. 몇몇 예들에서, 제 2 전자 디바이스는 데이터의 전달을 개시하기 위해 제어기로부터 판독 명령을 수신하도록 동작 가능한 동작 지시 디코더를 포함할 수 있다. 몇몇 예들에서, 제어기는 제 1 전자 디바이스 및 제 2 전자 디바이스 각각에 액세스하기 위해 버스와의 단일 인터페이스를 포함할 수 있다.
몇몇 예들에서, 제어기는, 제 1 전자 디바이스 및 제 2 전자 디바이스 각각에 칩 인에이블 신호를 제공하는 수단을 지원할 수 있다. 몇몇 예들에서, 제어기는, 제 1 데이터 저장 영역으로부터 제 2 데이터 저장 영역으로 전달될 데이터의 양에 대응하는 시간 지속 기간 동안 제 1 전자 디바이스 및 제 2 전자 디바이스 각각으로 클록을 제공하는 수단을 지원할 수 있다. 몇몇 예들에서, 제 1 전자 디바이스는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함할 수 있으며, 제 2 전자 디바이스는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함할 수 있다.
장치가 설명된다. 몇몇 예들에서, 이 장치는 버스와 결합된 소스 메모리 모듈을 포함할 수 있다. 몇몇 예들에서, 이 장치는 버스와 결합된 타겟 메모리 모듈을 포함할 수 있다. 몇몇 예들에서, 이 장치는, 버스와 결합되며 소스 메모리 모듈 및 타겟 메모리 모듈과 전자 통신하는 제어기를 포함할 수 있고, 이 제어기는, 버스를 통해 타겟 메모리 모듈에서 수신될 데이터의 저장을 위해 타겟 메모리 모듈내 타겟 어드레스를 설정하는 수단을 지원한다. 몇몇 예들에서, 이 제어기는, 소스 메모리 모듈로부터 버스로 데이터를 판독하기 위해 판독 명령을 소스 메모리 모듈로 전송하는 수단을 지원할 수 있다. 몇몇 예들에서, 타겟 메모리 모듈은 버스를 통해 직접 소스 메모리 모듈로부터 판독된 데이터를 수신하도록 동작 가능하다.
몇몇 예들에서, 타겟 메모리 모듈은 타겟 어드레스 레지스터를 포함할 수 있으며, 제어기는 전달될 데이터의 저장을 위해 타겟 어드레스 레지스터에 타겟 어드레스를 설정하는 수단을 지원한다. 몇몇 예들에서, 타겟 메모리 모듈은 제어기로부터 판독 명령을 수신하도록 동작 가능한 동작 지시 디코더를 포함할 수 있다. 몇몇 예들에서, 제어기는, 소스 메모리 모듈 및 타겟 메모리 모듈 각각으로 칩 인에이블 신호를 제공하는 수단을 지원할 수 있다. 몇몇 예들에서, 제어기는, 소스 메모리 모듈로부터 타겟 메모리 모듈로 전달될 데이터의 양에 대응하는 시간 지속 기간 동안 소스 메모리 모듈 및 타겟 메모리 모듈 각각으로 클록을 제공하는 수단을 지원할 수 있다. 몇몇 예들에서, 버스는 직렬 주변기기 상호 접속(SPI) 버스를 포함할 수 있다.
여기에서의 설명은 예들을 제공하며, 청구항들에서 제시된 범위, 적용 가능성, 또는 예들의 제한이 아니다. 변화들이 본 개시의 범위로부터 벗어나지 않고 논의된 요소들의 배열 및 기능에서 이루어질 수 있다. 다양한 예들은 적절하다면 생략하고, 대체하거나, 또는 다양한 절차들 또는 구성요소들을 부가할 수 있다. 또한, 몇몇 예들에 대하여 설명된 피처들은 다른 예들에서 조합될 수 있다.
수반되는 도면들과 관련되어, 여기에서 제시된 설명은 예시적인 구성들을 설명하며 구현될 수 있거나 또는 청구항들의 범위 내에 있는 예들 모두를 나타내지 않는다. 여기에서 사용된 바와 같이, 용어들("예" 및 "대표적인")은 "선호된" 또는 "다른 예들에 비해 유리한"이 아닌, "예, 인스턴스, 실시예, 또는 예시로서 작용하는"을 의미한다. 상세한 설명은 설명된 기술들의 이해를 제공할 목적으로 특정 세부사항들을 포함한다. 그러나, 이들 기술들은 이들 특정 세부사항들 없이 실시될 수 있다. 몇몇 인스턴스들에서, 잘 알려진 구조들 및 디바이스들은 설명된 예들의 개념들을 모호하게 하는 것을 피하기 위해 블록도 형태로 도시된다.
수반되는 도면들에서, 유사한 구성요소들 또는 피처들은 동일한 참조 라벨을 가질 수 있다. 뿐만 아니라, 동일한 유형의 다양한 구성요소들은 대시 기호에 의한 참조 라벨 및 유사한 구성요소들을 구별하는 제 2 라벨을 따름으로써 구별될 수 있다. 제 1 참조 라벨이 명세서에서 사용될 때, 설명은 제 2 참조 라벨에 관계없이 동일한 제 1 참조 라벨을 가진 유사한 구성요소들 중 임의의 것에 적용 가능하다.
여기에서 설명된 정보 및 신호들은 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다. 예를 들면, 상기 설명 전체에 걸쳐 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학 필드들 또는 입자들, 또는 그것의 임의의 조합에 의해 표현될 수 있다. 몇몇 도면들은 단일 신호로서 신호들을 예시할 수 있지만; 신호는 신호들의 버스를 나타낼 수 있으며, 여기에서 버스는 다양한 비트 폭들을 가질 수 있다는 것이 이 기술분야의 숙련자에 의해 이해될 것이다.
용어("전자 통신")는 구성요소들 간에 전자 흐름을 지원하는 구성요소들 간에 관계를 나타낸다. 이것은 구성요소들 간에 직접 연결을 포함할 수 있거나 또는 중간 구성요소들을 포함할 수 있다. 전자 통신에서의 구성요소들은 전자들 또는 신호들을 능동적으로 교환할 수 있거나(예로서, 활성화된 회로에서) 또는 전자들 또는 신호들을 능동적으로 교환하지 않을 수 있지만(예로서, 비활성화된 회로에서) 회로가 활성화될 때 전자들 또는 신호들을 교환하도록 구성되며 동작 가능할 수 있다. 예로서, 스위치(예로서, 트랜지스터)를 통해 물리적으로 연결된 두 개의 구성요소들은 스위치의 상태(즉, 개방 또는 폐쇄)에 관계없이 전자 통신에 있다.
여기에서 논의된 디바이스들은 실리콘, 게르마늄, 실리콘-게르마늄 합금, 갈륨 비소, 갈륨 질화물 등과 같은, 반도체 기판상에 형성될 수 있다. 몇몇 경우들에서, 기판은 반도체 웨이퍼이다. 다른 경우들에서, 기판은 실리콘-온-글래스(SOG) 또는 실리콘-온-사파이어(SOP)와 같은, 실리콘-온-절연체(SOI) 기판, 또는 또 다른 기판상에서의 반도체 재료들의 에피택셜 층들일 수 있다. 기판의 전도율, 또는 기판의 서브-영역들은, 이에 제한되지 않지만, 인, 붕소, 또는 비소를 포함한, 다양한 화학적 종들을 사용하여 도핑을 통해 제어될 수 있다. 도핑은, 이온-주입에 의해, 또는 임의의 다른 도핑 수단들에 의해, 기판의 초기 형성 또는 성장 동안 수행될 수 있다.
여기에서의 개시와 관련되어 설명된 다양한 예시적인 블록들, 구성요소들, 및 모듈들은 여기에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그램 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소들, 또는 그것의 임의의 조합을 갖고 구현되거나 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 기계일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합(예로서, DSP 및 마이크로프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성)으로서 구현될 수 있다.
여기에서 설명된 기능들은 하드웨어, 프로세서에 의해 실행된 소프트웨어, 펌웨어, 또는 그것의 임의의 조합으로 구현될 수 있다. 프로세서에 의해 실행된 소프트웨어에서 구현된다면, 기능들은 컴퓨터-판독 가능한 매체상에서 하나 이상의 지시들 또는 코드로서 그것 상에서 저장되거나 또는 송신될 수 있다. 다른 예들 및 구현들은 본 개시 및 첨부된 청구항들의 범위 내에 있다. 예를 들면, 소프트웨어의 특징으로 인해, 상기 설명된 기능들은 프로세서에 의해 실행된 소프트웨어, 하드웨어, 펌웨어, 하드와이어링, 또는 이들 중 임의의 것의 조합을 사용하여 구현될 수 있다. 기능들을 구현한 피처들은 또한, 기능들의 부분들이 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함하여, 다양한 위치들에서 물리적으로 위치될 수 있다. 또한, 청구항들에서를 포함한, 여기에서 사용된 바와 같이, 아이템들의 리스트(예를 들면, "~ 중 적어도 하나" 또는 " ~ 중 하나 이상"과 같은 구절에 의해 시작된 아이템들의 리스트)에서 사용된 바와 같이 "또는"은 예를 들면, A, B, 또는 C 중 적어도 하나의 리스트가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C)를 의미하도록 포괄적 리스트를 나타낸다.
컴퓨터-판독 가능한 미디어는 하나의 장소에서 또 다른 장소로 컴퓨터 프로그램의 전달을 가능하게 하는 임의의 매체를 포함하는 통신 미디어 및 비-일시적 컴퓨터 저장 미디어 양쪽 모두를 포함한다. 비-일시적 저장 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 예로서, 및 제한 없이, 비-일시적 컴퓨터-판독 가능한 미디어는 RAM, ROM, 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM), 컴팩트 디스크(CD) ROM 또는 다른 광학 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 디바이스들, 또는 지시들 또는 데이터 구조들의 형태로 원하는 프로그램 코드 수단들을 운반하거나 또는 저장하기 위해 사용될 수 있으며 범용 또는 특수-목적 컴퓨터, 또는 범용 또는 특수-목적 프로세서에 의해 액세스될 수 있는 임의의 다른 비-일시적 매체를 포함할 수 있다.
또한, 임의의 연결은 컴퓨터-판독 가능한 매체로 적절히 칭하여진다. 예를 들면, 소프트웨어가 동축 케이블, 광 섬유 케이블, 꼬임 쌍선, 디지털 가입자 라인(DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신된다면, 동축 케이블, 광 섬유 케이블, 꼬임 쌍선, 디지털 가입자 라인(DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 여기에서 사용된 바와 같이, 디스크(disk 및 disc)는 디스크들이 보통 데이터를 자기적으로 재생하는 CD, 레이저 디스크, 광학 디스크, 디지털 다목적 디스크(DVD), 플로피 디스크 및 블루-레이 디스크를 포함하는 반면, 디스크들은 레이저들을 갖고 광학적으로 데이터를 재생한다. 상기의 조합들은 또한 컴퓨터-판독 가능한 미디어의 범위 내에 포함된다.
여기에서의 설명은 이 기술분야의 숙련자가 본 개시를 만들거나 또는 사용할 수 있게 하기 위해 제공된다. 본 개시에 대한 다양한 수정들은 이 기술분야의 숙련자들에게 쉽게 명백할 것이며, 여기에서 정의된 일반적인 원리들은 본 개시의 범위로부터 벗어나지 않고 다른 변형들에 적용될 수 있다. 따라서, 본 개시는 여기에서 설명된 예들 및 설계들에 제한되지 않으며 여기에서 개시된 원리들 및 신규 특징들과 일치하는 가장 광범위한 범위를 부여 받을 것이다.

Claims (37)

  1. 메모리 시스템을 동작시키는 방법에 있어서,
    메모리 제어기에서, 타겟 메모리로 전달될 데이터에 대한 소스 메모리 내의 소스 어드레스를 식별하는 단계로서, 상기 메모리 제어기, 상기 소스 메모리 및 상기 타겟 메모리는 각각 버스와 결합되는, 상기 식별 단계; 및
    상기 메모리 제어기에 의해, 상기 버스를 통해 상기 소스 메모리로부터 상기 타겟 메모리로 직접 상기 데이터의 전달을 개시하기 위해 타겟 어드레스를 포함하는 명령을 상기 타겟 메모리로 전송하는 단계를 포함하고, 상기 명령은 상기 소스 메모리 및 상기 타겟 메모리 양쪽 모두에서 수신되는 단일 명령 시퀀스를 포함하고, 상기 단일 명령 시퀀스는 상기 소스 메모리에서의 판독 동작 및 상기 타겟 메모리에서의 기록 동작을 지시하고, 상기 판독 동작 및 상기 기록 동작은 동시에 일어나는, 메모리 시스템을 동작시키는 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 소스 메모리에 의해, 상기 소스 어드레스에서 시작하는 데이터를 상기 버스로 전달하는 단계를 더 포함하는, 메모리 시스템을 동작시키는 방법.
  4. 청구항 3에 있어서,
    상기 명령은 상기 버스를 통해 상기 소스 메모리로 전송되며, 상기 방법은:
    상기 버스를 통해 상기 타겟 메모리에 의해, 상기 명령을 수신하는 단계; 및
    상기 타겟 어드레스에서 시작하여 상기 타겟 메모리에, 상기 소스 메모리로부터 상기 버스로 제공된 후속 데이터를 저장하는 단계를 더 포함하는, 메모리 시스템을 동작시키는 방법.
  5. 청구항 4에 있어서,
    상기 명령은 데이터 출력 지시 및 상기 소스 어드레스를 포함하며, 상기 타겟 메모리에 의해 상기 명령을 수신하는 단계는:
    상기 데이터의 전달을 개시할 때의 상기 명령을 식별하는 단계; 및
    상기 소스 어드레스를 무시하는 단계를 포함하는, 메모리 시스템을 동작시키는 방법.
  6. 청구항 1에 있어서,
    상기 명령을 전송하는 단계는:
    상기 소스 메모리 및 상기 타겟 메모리 양쪽 모두로 칩 인에이블 신호(chip enable signal)를 제공하는 단계; 및
    시간 지속 기간 동안 상기 소스 메모리 및 상기 타겟 메모리로 클록을 제공하는 단계를 더 포함하는, 메모리 시스템을 동작시키는 방법.
  7. 청구항 6에 있어서,
    상기 시간 지속 기간은 상기 소스 메모리로부터 상기 타겟 메모리로 전달될 데이터의 양에 대응하는, 메모리 시스템을 동작시키는 방법.
  8. 청구항 1에 있어서,
    상기 버스는 직렬 주변기기 상호 접속(SPI : serial peripheral interconnect) 버스를 포함하는, 메모리 시스템을 동작시키는 방법.
  9. 청구항 1에 있어서,
    상기 소스 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함하며, 상기 타겟 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함하는, 메모리 시스템을 동작시키는 방법.
  10. 메모리 시스템을 동작시키는 방법에 있어서,
    타겟 메모리 및 소스 메모리와 결합되는 버스를 통해 상기 타겟 메모리에서 수신될 데이터의 저장을 위해 상기 타겟 메모리에서 타겟 어드레스를 설정하는 단계; 및
    상기 소스 메모리로부터 상기 버스로 데이터를 판독하며 상기 버스로부터의 상기 데이터를 상기 타겟 메모리에 저장하기 위해 명령을 상기 소스 메모리 및 상기 타겟 메모리 양쪽 모두로 전송하는 단계를 포함하고, 상기 명령은 상기 소스 메모리 및 상기 타겟 메모리 양쪽 모두에서 수신되는 단일 명령 시퀀스를 포함하고, 상기 단일 명령 시퀀스는 상기 소스 메모리에서의 판독 동작 및 상기 타겟 메모리에서의 기록 동작을 지시하고, 상기 판독 동작 및 상기 기록 동작은 동시에 일어나는, 메모리 시스템을 동작시키는 방법.
  11. 청구항 10에 있어서,
    상기 타겟 어드레스를 설정하는 단계는:
    상기 타겟 어드레스를 상기 타겟 메모리의 타겟 어드레스 레지스터로 제공하는 단계를 포함하는, 메모리 시스템을 동작시키는 방법.
  12. 청구항 11에 있어서,
    상기 타겟 메모리의 동작 지시 디코더에서, 상기 명령을 수신하는 단계; 및
    상기 타겟 메모리에서, 상기 타겟 어드레스에서 시작하여, 상기 명령에 이은 상기 버스로부터의 데이터의 저장을 개시하는 단계를 더 포함하는, 메모리 시스템을 동작시키는 방법.
  13. 청구항 12에 있어서,
    상기 소스 메모리에 의해, 소스 어드레스에서 시작하는 데이터를 상기 버스로 전달하는 단계; 및
    상기 타겟 메모리에 의해, 상기 버스로부터의 상기 데이터를 저장하는 단계를 더 포함하는, 메모리 시스템을 동작시키는 방법.
  14. 삭제
  15. 청구항 10에 있어서,
    칩 인에이블 신호를 상기 소스 메모리 및 상기 타겟 메모리 양쪽 모두에 제공하는 단계; 및
    시간 지속 기간 동안 클록을 상기 소스 메모리 및 상기 타겟 메모리에 제공하는 단계를 더 포함하는, 메모리 시스템을 동작시키는 방법.
  16. 청구항 15에 있어서,
    상기 시간 지속 기간은 상기 소스 메모리로부터 상기 타겟 메모리로 전달될 데이터의 양에 대응하는, 메모리 시스템을 동작시키는 방법.
  17. 청구항 10에 있어서,
    상기 버스는 직렬 주변기기 상호 접속(SPI) 버스를 포함하는, 메모리 시스템을 동작시키는 방법.
  18. 청구항 10에 있어서,
    상기 소스 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함하며, 상기 타겟 메모리는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함하는, 메모리 시스템을 동작시키는 방법.
  19. 데이터 전달을 위한 장치에 있어서,
    버스와 결합된 제 1 전자 디바이스로서, 상기 제 1 전자 디바이스는 제 1 데이터 저장 영역을 포함하는, 상기 제 1 전자 디바이스;
    상기 버스와 결합된 제 2 전자 디바이스로서, 상기 제 2 전자 디바이스는 제 2 데이터 저장 영역을 포함하는, 상기 제 2 전자 디바이스; 및
    상기 버스와 결합되며 상기 제 1 전자 디바이스 및 상기 제 2 전자 디바이스와 전자 통신하는 제어기로서, 상기 제어기는:
    상기 제 1 데이터 저장 영역으로부터 상기 제 2 데이터 저장 영역으로 전달될 데이터에 대한 상기 제 1 데이터 저장 영역 내의 소스 어드레스를 식별하고,
    상기 제 2 데이터 저장 영역 내의 타겟 어드레스를 식별하며,
    상기 제 1 전자 디바이스 및 상기 제 2 전자 디바이스 양쪽 모두에서 수신되는 단일 명령 시퀀스를 포함하는 명령을 통하여, 상기 버스를 통해 상기 제 1 전자 디바이스로부터 상기 제 2 전자 디바이스로 직접 상기 데이터의 전달을 개시하도록 동작 가능한, 상기 제어기를 포함하고, 상기 단일 명령 시퀀스는 상기 제 1 전자 디바이스에서의 판독 동작 및 상기 제 2 전자 디바이스에서의 기록 동작을 지시하고, 상기 판독 동작 및 상기 기록 동작은 동시에 일어나는, 데이터 전달을 위한 장치.
  20. 청구항 19에 있어서,
    상기 제 2 전자 디바이스는 타겟 어드레스 레지스터를 포함하며, 상기 제어기는 또한 전달될 상기 데이터의 저장을 위해 상기 타겟 어드레스 레지스터에 상기 타겟 어드레스를 설정하도록 동작 가능한, 데이터 전달을 위한 장치.
  21. 청구항 19에 있어서,
    상기 제 2 전자 디바이스는 상기 데이터의 전달을 개시하기 위해 상기 제어기로부터 상기 명령을 수신하도록 동작 가능한 동작 지시 디코더를 포함하는, 데이터 전달을 위한 장치.
  22. 청구항 19에 있어서,
    상기 제어기는 상기 제 1 전자 디바이스 및 상기 제 2 전자 디바이스 양쪽 모두를 액세스하기 위해 상기 버스와의 단일 인터페이스를 포함하는, 데이터 전달을 위한 장치.
  23. 청구항 19에 있어서,
    상기 제어기는 또한:
    상기 제 1 전자 디바이스 및 상기 제 2 전자 디바이스 양쪽 모두에 칩 인에이블 신호를 제공하며;
    상기 제 1 데이터 저장 영역으로부터 상기 제 2 데이터 저장 영역으로 전달될 데이터의 양에 대응하는 시간 지속 기간 동안 상기 제 1 전자 디바이스 및 상기 제 2 전자 디바이스 양쪽 모두로 클록을 제공하도록 동작 가능한, 데이터 전달을 위한 장치.
  24. 청구항 19에 있어서,
    상기 제 1 전자 디바이스는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함하며, 상기 제 2 전자 디바이스는 비-휘발성 메모리 또는 휘발성 메모리 중 하나를 포함하는, 데이터 전달을 위한 장치.
  25. 전자 메모리 장치에 있어서,
    버스와 결합된 소스 메모리 모듈;
    상기 버스와 결합된 타겟 메모리 모듈; 및
    상기 버스와 결합되며 상기 소스 메모리 모듈 및 상기 타겟 메모리 모듈과 전자 통신하는 제어기로서, 상기 제어기는:
    상기 버스를 통해 상기 타겟 메모리 모듈에서 수신될 데이터의 저장을 위해 상기 타겟 메모리 모듈 내의 타겟 어드레스를 설정하며,
    상기 소스 메모리 모듈로부터 상기 버스로의 데이터를 판독하기 위해 명령을 상기 소스 메모리 모듈로 전송하도록 동작 가능한, 상기 제어기를 포함하며,
    상기 타겟 메모리 모듈은 상기 버스를 통해 직접 상기 소스 메모리 모듈로부터 판독된 데이터를 수신하도록 동작 가능하고, 상기 명령은 상기 소스 메모리 모듈 및 상기 타겟 메모리 모듈 양쪽 모두에서 수신되는 단일 명령 시퀀스를 포함하고, 상기 단일 명령 시퀀스는 상기 소스 메모리 모듈에서의 판독 동작 및 상기 타겟 메모리 모듈에서의 기록 동작을 지시하고, 상기 판독 동작 및 상기 기록 동작은 동시에 일어나는, 전자 메모리 장치.
  26. 청구항 25에 있어서,
    상기 타겟 메모리 모듈은 타겟 어드레스 레지스터를 포함하며, 상기 제어기는 또한 전달될 상기 데이터의 저장을 위해 상기 타겟 어드레스 레지스터에 상기 타겟 어드레스를 설정하도록 동작 가능한, 전자 메모리 장치.
  27. 청구항 26에 있어서,
    상기 타겟 메모리 모듈은 상기 제어기로부터 상기 명령을 수신하도록 동작 가능한 동작 지시 디코더를 더 포함하는, 전자 메모리 장치.
  28. 청구항 25에 있어서,
    상기 제어기는 또한:
    상기 소스 메모리 모듈 및 상기 타겟 메모리 모듈 양쪽 모두로 칩 인에이블 신호를 제공하며;
    상기 소스 메모리 모듈로부터 상기 타겟 메모리 모듈로 전달될 데이터의 양에 대응하는 시간 지속 기간 동안 상기 소스 메모리 모듈 및 상기 타겟 메모리 모듈 양쪽 모두로 클록을 제공하도록 동작 가능한, 전자 메모리 장치.
  29. 청구항 25에 있어서,
    상기 버스는 직렬 주변기기 상호 접속(SPI) 버스를 포함하는, 전자 메모리 장치.
  30. 전자 메모리 장치에 있어서,
    타겟 어드레스 레지스터 및 동작 지시 디코더를 포함하는 휘발성 메모리;
    상기 휘발성 메모리로 전달될 데이터를 포함하는 비-휘발성 메모리;
    상기 휘발성 메모리 및 상기 비-휘발성 메모리 양쪽 모두와 결합된 직렬 주변기기 상호 접속(SPI) 버스; 및
    상기 SPI 버스와 결합되며 상기 타겟 어드레스 레지스터에 타겟 어드레스를 설정하고, 상기 SPI 버스로의 상기 데이터의 전달을 개시하기 위해 명령을 상기 비-휘발성 메모리로 전송하도록 동작 가능한 제어기를 포함하며,
    상기 동작 지시 디코더는 상기 명령을 디코딩하며 상기 SPI 버스로부터 직접 비-휘발성 메모리 모듈로부터 데이터를 수신하고 상기 타겟 어드레스에서 시작하여 상기 데이터를 저장하고, 상기 명령은 상기 휘발성 메모리 및 상기 비-휘발성 메모리 양쪽 모두에서 수신되는 단일 명령 시퀀스를 포함하고, 상기 단일 명령 시퀀스는 상기 비-휘발성 메모리에서의 판독 동작 및 상기 휘발성 메모리에서의 기록 동작을 지시하고, 상기 판독 동작 및 상기 기록 동작은 동시에 일어나는, 전자 메모리 장치.
  31. 청구항 30에 있어서,
    상기 휘발성 메모리는 제 1 인에이블 라인을 더 포함하며, 상기 제어기는 또한 상기 제 1 인에이블 라인을 활성화하며 타겟 어드레스 레지스터에서 상기 타겟 어드레스를 설정하기 위해 상기 타겟 어드레스를 상기 SPI 버스에 제공하도록 동작 가능한, 전자 메모리 장치.
  32. 청구항 31에 있어서,
    상기 비-휘발성 메모리는 제 2 인에이블 라인을 더 포함하며, 상기 제어기는 또한:
    상기 제 1 인에이블 라인 및 상기 제 2 인에이블 라인 양쪽 모두를 활성화하며,
    상기 휘발성 메모리 및 상기 비-휘발성 메모리 양쪽 모두에서 판독될 상기 명령을 상기 SPI 버스에 제공하도록 동작 가능한, 전자 메모리 장치.
  33. 청구항 32에 있어서,
    상기 제어기는 또한:
    상기 휘발성 메모리로부터 상기 비-휘발성 메모리로 전달될 데이터의 양에 대응하는 시간 지속 기간 동안 상기 휘발성 메모리 및 상기 비-휘발성 메모리 양쪽 모두로 클록을 제공하도록 동작 가능한, 전자 메모리 장치.
  34. 전자 디바이스에 있어서,
    타겟 어드레스 레지스터;
    메모리 어레이;
    버스 상에서 이용 가능한 데이터를 상기 타겟 어드레스 레지스터 내의 어드레스에서 시작하는 상기 메모리 어레이에 저장하기 위한 명령으로서 수신된 단일 시퀀스의 지시를 디코딩하기 위한 동작 지시 디코더를 포함하며, 상기 단일 시퀀스의 지시는 소스 메모리에서의 판독 동작 및 타겟 메모리에서의 기록 동작을 지시하고, 상기 판독 동작 및 상기 기록 동작은 동시에 일어나고,
    상기 수신된 지시는 제 2 디바이스에 대한 지시인, 전자 디바이스.
  35. 청구항 34에 있어서,
    상기 전자 디바이스는 상기 지시와 함께 수신된 소스 어드레스를 무시하도록 구성되는, 전자 디바이스.
  36. 청구항 34에 있어서,
    상기 동작 지시 디코더는 타겟 어드레스를 수신하며 상기 타겟 어드레스로 상기 타겟 어드레스 레지스터를 설정하도록 구성되는, 전자 디바이스.
  37. 청구항 34에 있어서,
    상기 메모리 어레이는 비-휘발성 메모리 어레이 또는 휘발성 메모리 어레이 중 하나를 포함하는, 전자 디바이스.
KR1020187014702A 2015-10-30 2016-10-26 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들 KR102071454B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,988 2015-10-30
US14/928,988 US10162558B2 (en) 2015-10-30 2015-10-30 Data transfer techniques for multiple devices on a shared bus
PCT/US2016/058898 WO2017075073A1 (en) 2015-10-30 2016-10-26 Data transfer techniques for multiple devices on a shared bus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002240A Division KR102189018B1 (ko) 2015-10-30 2016-10-26 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들

Publications (2)

Publication Number Publication Date
KR20180064542A KR20180064542A (ko) 2018-06-14
KR102071454B1 true KR102071454B1 (ko) 2020-01-30

Family

ID=58631094

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187014702A KR102071454B1 (ko) 2015-10-30 2016-10-26 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들
KR1020207002240A KR102189018B1 (ko) 2015-10-30 2016-10-26 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207002240A KR102189018B1 (ko) 2015-10-30 2016-10-26 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들

Country Status (7)

Country Link
US (5) US10162558B2 (ko)
EP (1) EP3368991A4 (ko)
JP (4) JP2019500669A (ko)
KR (2) KR102071454B1 (ko)
CN (2) CN108369563B (ko)
TW (1) TWI645294B (ko)
WO (1) WO2017075073A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10502622B2 (en) * 2016-06-30 2019-12-10 U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration Detector control and data acquisition with custom application specific integrated circuit (ASIC)
US20180039596A1 (en) * 2016-08-04 2018-02-08 Qualcomm Incorporated Supporting internal resistive memory functions using a serial peripheral interface (spi)
CN109791522B (zh) * 2017-09-05 2021-01-15 华为技术有限公司 数据迁移的方法、系统及智能网卡
US10877678B2 (en) 2018-05-17 2020-12-29 Micron Technology, Inc. Selection component that is configured based on an architecture associated with memory devices
KR102585883B1 (ko) * 2018-09-18 2023-10-10 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 메모리 시스템
US11670123B2 (en) 2018-10-03 2023-06-06 Micron Technology, Inc. Automatic collection of autonomous vehicle logging data
US11086803B2 (en) 2018-10-05 2021-08-10 Micron Technology, Inc. Dynamically configuring transmission lines of a bus
US11182986B2 (en) * 2018-10-10 2021-11-23 Micron Technology, Inc. Real-time selection of data to collect in autonomous vehicle
US11126251B2 (en) * 2019-03-01 2021-09-21 Micron Technology, Inc. Power management in memory
US10936234B2 (en) * 2019-05-22 2021-03-02 Macronix International Co., Ltd. Data transfer between memory devices on shared bus
US11301132B2 (en) 2019-08-30 2022-04-12 Micron Technology, Inc. Scheduling media management operations based on provided host system usage requirements
US11003384B2 (en) 2019-08-30 2021-05-11 Micron Technology, Inc. Scheduling media management operations based on determined host system usage requirements
US11243804B2 (en) * 2019-11-19 2022-02-08 Micron Technology, Inc. Time to live for memory access by processors
US11392547B2 (en) 2020-04-09 2022-07-19 Micron Technology, Inc. Using prefix-delete operations for data containers
US11893276B2 (en) * 2020-05-21 2024-02-06 Micron Technology, Inc. Apparatuses and methods for data management in a memory device
US20220121612A1 (en) * 2020-10-20 2022-04-21 Micron Technology, Inc. Static identifiers for a synchronous interface
CN113282239A (zh) * 2021-05-21 2021-08-20 维沃移动通信有限公司 数据迁移方法、存储器及控制器

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US6040997A (en) 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
US6219725B1 (en) * 1998-08-28 2001-04-17 Hewlett-Packard Company Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations
TW515949B (en) * 2000-06-08 2003-01-01 Via Tech Inc Method for scheduling run sequence of read and write requests
US6678758B2 (en) * 2001-02-05 2004-01-13 Fujitsu Limited Dynamic queuing for read/write requests
JP4017177B2 (ja) 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
WO2002071409A1 (de) 2001-03-02 2002-09-12 Infineon Technologies Ag Verfahren zum einspeichern einer datenmenge in einen zielspeicherbereich und speichersystem
US20050138233A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Direct memory access control
KR100695890B1 (ko) * 2004-10-29 2007-03-19 삼성전자주식회사 멀티 칩 시스템 및 그것의 데이터 전송 방법
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
WO2007036050A1 (en) * 2005-09-30 2007-04-05 Mosaid Technologies Incorporated Memory with output control
US7652922B2 (en) * 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
KR100843280B1 (ko) 2006-12-07 2008-07-04 삼성전자주식회사 메모리 시스템 및 그것의 데이터 전송 방법
WO2008131058A2 (en) 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US7564391B2 (en) * 2007-11-28 2009-07-21 Texas Instruments Incorporated Sigma delta modulator summing input, reference voltage, and feedback
US8219778B2 (en) * 2008-02-27 2012-07-10 Microchip Technology Incorporated Virtual memory interface
WO2010032226A2 (en) * 2008-09-22 2010-03-25 Nxp B.V. Data processing system comprising a monitor
US8255674B2 (en) * 2009-01-28 2012-08-28 International Business Machines Corporation Implied storage operation decode using redundant target address detection
TWI394050B (zh) 2009-09-29 2013-04-21 Hon Hai Prec Ind Co Ltd 基於串列週邊介面匯流排的設備及其資料傳輸方法
KR101626084B1 (ko) * 2009-11-25 2016-06-01 삼성전자주식회사 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
US8938589B2 (en) * 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
JP5886450B2 (ja) * 2012-03-22 2016-03-16 インテル コーポレイション ハイブリッドのエミュレーション及びカーネル関数処理のシステム及び方法
JP2015056105A (ja) 2013-09-13 2015-03-23 株式会社東芝 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
JP2022132562A (ja) 2022-09-08
EP3368991A4 (en) 2019-07-31
JP2024105616A (ja) 2024-08-06
KR102189018B1 (ko) 2020-12-10
JP2021068463A (ja) 2021-04-30
US20180136873A1 (en) 2018-05-17
US10671310B2 (en) 2020-06-02
TW201719430A (zh) 2017-06-01
US20240103748A1 (en) 2024-03-28
US20170123715A1 (en) 2017-05-04
US20200326875A1 (en) 2020-10-15
JP2019500669A (ja) 2019-01-10
US11762570B2 (en) 2023-09-19
US10162558B2 (en) 2018-12-25
KR20200011587A (ko) 2020-02-03
CN108369563A (zh) 2018-08-03
WO2017075073A1 (en) 2017-05-04
CN108369563B (zh) 2021-07-30
JP7111849B2 (ja) 2022-08-02
TWI645294B (zh) 2018-12-21
KR20180064542A (ko) 2018-06-14
EP3368991A1 (en) 2018-09-05
CN113407473A (zh) 2021-09-17
JP7525554B2 (ja) 2024-07-30
US20190138238A1 (en) 2019-05-09
US10635342B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
KR102071454B1 (ko) 공유 버스 상에서의 다수의 디바이스들을 위한 데이터 전달 기술들
US12050773B2 (en) Completion flag for memory operations
CN113168290A (zh) 命令阻止管理
US11763861B2 (en) Reduced pin status register
WO2022170303A1 (en) Speed bins to support memory compatibility
WO2022126578A1 (en) Dynamic interval for memory device to enter low power state
CN109508305B (zh) 存储器装置和包括存储器装置的存储器系统
US20230229348A1 (en) Metadata implementation for memory devices
CN113721981B (zh) 用于存储器装置的指令高速缓存方案
US12112060B2 (en) Multi-host communications
US11972144B2 (en) Dynamic status registers array
US20230239062A1 (en) Techniques for enabling and disabling of a serializer/deserializer
WO2022120325A1 (en) Queue configuration for host interface
US8971135B2 (en) Semiconductor memory device receiving data in response to data strobe signal, memory system including the same and operating method thereof
CN116057506A (zh) 用于存储器装置的低功率模式的安全技术

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant