KR102030126B1 - 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법 - Google Patents

판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법 Download PDF

Info

Publication number
KR102030126B1
KR102030126B1 KR1020130027798A KR20130027798A KR102030126B1 KR 102030126 B1 KR102030126 B1 KR 102030126B1 KR 1020130027798 A KR1020130027798 A KR 1020130027798A KR 20130027798 A KR20130027798 A KR 20130027798A KR 102030126 B1 KR102030126 B1 KR 102030126B1
Authority
KR
South Korea
Prior art keywords
data
read
signal
bus
clock
Prior art date
Application number
KR1020130027798A
Other languages
English (en)
Other versions
KR20130111301A (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 KR20130111301A publication Critical patent/KR20130111301A/ko
Application granted granted Critical
Publication of KR102030126B1 publication Critical patent/KR102030126B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/22Means for limiting or controlling the pin/gate ratio
    • 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 위한 방법 및 장치가 개시된다. 상기 인터페이스는 주변 디바이스가 활성화되는 때를 표시하는 칩 선택 신호를 전달하기 위한 칩 선택을 포함하며, 여기서 상기 버스 인터페이스는, 호스트 디바이스와 상기 주변 디바이스 사이의 통신을 제공한다. 상기 인터페이스는 또한 차동 클럭 신호를 운반하기 위한 차동 클럭 쌍을 포함한다. 판독 데이터 스트로브는 상기 주변 디바이스로부터 판독 데이터 스트로브 신호를 전달하기 위한 인터페이스에 포함된다. 상기 인터페이스는 명령, 어드레서, 및 데이터 정보를 운반하기 위한 데이터 버스를 포함한다. 상기 판독 데이터 스트로브는 상기 데이터 버스 상에 유효 데이터가 존재하는 때를 표시한다.

Description

판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(RPC) 메모리 버스 인터페이스를 위한 장치 및 방법{APPARATUS AND METHOD FOR A REDUCED PIN COUNT(RPC) MEMORY BUS INTERFACE INCLUDING A READ DATA STROBE SIGNAL}
본 발명은 일반적으로 통신 버스에 관한 것이다.
대부분의 마이크로컨트롤러 및 마이크로프로세서 디바이스들은 오프-칩(off-chip) 주변 디바이스들과 통신하기 위한 버스 인터페이스를 포함한다. 이들 버스 인터페이스는 메모리, 아날로그-디지털 컨버터, 디지털-아날로그 컨버터, 액정 디스플레이(LCD) 제어기 및 무수한 다른 주변 디바이스들을 지원한다.
특정 카테고리의 주변 디바이스들을 타겟으로 하는 고유한 특성들을 가진 다양한 주변 버스 인터페이스들이 존재한다. 종래 기술에서 이용가능한 버스 인터페이스들은 구현 비용과 버스의 성능을 균형 맞추고자 한다. 호스트 마이크로컨트롤러 구현 비용은 인터페이스 신호 개수, I/O 드라이버들의 물리적 특성 및 마이크로컨트롤러에 집적된 버스 제어기의 복잡도를 포함하는 다수의 특성들을 커버한다.
필요한 핀들의 수와 주변 버스에 의해 제공되는 성능 수준 사이의 균형 조정(balancing act)가 종종 행해진다. 보다 구체적으로, 버스 인터페이스들은 일반적으로 핀 카운트를 최소화하거나 또는 데이터 산출량을 최대화하는 것에 중점을 둔다. 한편으로, 시스템 레벨 하드웨어 오버헤드를 최소화하기 위하여 더 높은 레이턴시의 버스들이 더 적은 버스 신호들을 사용하여 종종 구현된다. 예를 들어, 직렬 주변 버스 인터페이스들은 일반적으로 낮은 핀 카운트를 갖고 설계되나, 더 느린 데이터 레이트를 가진다. 예로서, I2C 버스는 호스트 디바이스와 주변 디바이스 사이의 통신을 지원하기 위하여 단지 두 개의 핀만을 필요로 하는 저속 인터페이스이다. 반면에, 낮은-레이턴시 및 높은-산출량 주변 버스들은 일반적으로 호스트 마이크로컨트롤러와 주변 장치 사이의 인터페이스를 지원하기 위하여 다수의 신호들을 요구한다. 예를 들어, 병렬 주변 버스 인터페이스들이 고속 데이터 전송 레이트용으로 설계된다. 예를 들어, 오프-칩 DRAM 메모리 디바이스들에 높은 데이터 처리량을 제공하기 위하여 동적 랜덤 액세스 메모리(DRAM) 버스 인터페이스들이 사용된다.
따라서, 본 발명의 실시예들은 버스 성능과 요구되는 버스 신호들의 개수 사이에 균형을 맞추는 메모리 버스 인터페이스를 제공한다. 일 실시예에서, 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 위한 장치가 기술된다. 상기 인터페이스는 주변 디바이스가 활성화될 때를 표시하는 칩 선택 신호를 전달(deliver)하기 위한 칩 선택(chip select)을 포함하며, 여기서 버스 인터페이스가 호스트 디바이스와 주변 디바이스 사이의 통신을 제공한다. 상기 인터페이스는 또한 차동 클럭 신호를 전달하기 위한 차동 클럭 쌍을 포함한다. 판독 데이터 스트로브는 주변 디바이스로부터 판독 데이터 스트로브 신호를 전달하기 위한 인터페이스에 포함된다. 상기 인터페이스는 명령어, 어드레스, 및 데이터 정보를 전달하기 위한 데이터 버스를 포함한다. 판독 데이터 스트로브는 유효 데이터가 주변 디바이스에의해 데이터 버스 상으로 출력될 때를 표시한다.
다른 실시예에서, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하는 방법이 개시된다. 버스 인터페이스는 호스트 디바이스와 주변 디바이스 사이의 통신을 제공한다. 본 방법은 칩 선택 신호의 전달을 용이하게 해주도록(facilitate) 칩 선택을 구성하는 단계를 포함하며, 여기서 상기 칩 선택 신호는 주변 디바이스가 활성화되는 때를 표시한다. 본 방법은 차동 클럭 신호를 인에이블 하기 위하여 제1 클럭 신호와 제2 클럭 신호를 전달하는 차동 클럭 쌍을 구성하는 단계를 더 포함한다. 본 방법은 주변 디바이스로부터 판독 데이터 스트로브 신호로서 소스 동기화 출력 클럭을 전달하기 위한 판독 데이터 스트로브를 구성하는 단계를 더 포함한다. 데이터 버스는 또한 명령어, 어드레스, 및 데이터 정보를 전달하도록 구성된다. 차동 클럭들 및 판독 데이터 스트로브의 쌍은 판독 트랜잭션 및 기록 트랜잭션을 위하여 이중 데이터 레이트(DDR) 방식으로 데이터의 전송을 가능하게 해준다.
또 다른 실시예에서, 호스트 디바이스와 주변 디바이스 사이의 통신을 제공하는 메모리 버스 인터페이스를 사용하여 판독 트랜잭션을 수행하기 위한 방법이 개시된다. 버스 인터페이스는 유효 데이터가 존재할 때를 표시하는 차동 클럭 신호 쌍 및 판독 데이터 스트로브 신호를 포함한다. 차동 클럭 신호 및 판독 데이터 스트로브는 판독 트랜잭션을 위해 DDR 방식으로 데이터 버스 상에서 데이터의 전송을 가능하게 한다. 보다 구체적으로, 메모리 버스 상에서 판독 트랜잭션을 수행하기 위한 방법은 제1 클럭 신호 및 제2 클럭 신호가 상보적(예를 들어, 제1 클럭 신호가 LOW이고 제2 클럭 신호가 HIGH)인 동안 칩 선택 신호를 (예를 들어, LOW로) 어써팅함으로써 호스트 디바이스에서 판독 트랜잭션을 개시하는 단계를 포함한다. 또한, 본 방법은 데이터 버스를 통해 차동 클럭 신호 내의 3 클럭 사이클들 동안 호스트 디바이스로부터 주변 디바이스로 판독 명령어 및 타겟 어드레스를 송신하는 단계를 포함한다. 본 방법은 또한 호스트 디바이스에서 데이터 버스를 통해 주변 디바이스로부터 데이터를 수신하는 단계, 및 주변 디바이스에서 발신되는 판독 데이터 스트로브 신호를 판독 데이터 스트로브 인터페이스를 통해 호스트 디바이스에서 수신하는 단계를 포함한다. 본 방법은 또한 호스트 디바이스에서 판독 데이터 스트로브 신호의 리딩 에지로 시작하는 데이터를 검색하는 단계를 더 포함하며, 여기서 상기 판독 데이터 스트로브 신호는 소스 동기화 출력 클럭을 포함한다.
또 다른 실시예에서, 호스트 디바이스와 주변 디바이스 사이의 통신을 제공하는 메모리 버스 인터페이스를 사용하여 기록 트랜잭션을 수행하기 위한 방법이 개시된다. 버스 인터페이스는 유효 데이터가 존재하는 ?를 표시하는 판독 데이터 스트로브 신호 및 차동 클럭 신호를 제공하는 클럭 신호 쌍을 포함한다. 차동 클럭 신호 및 판독 데이터 스트로브는 판독 트랜잭션을 위해 DDR 방식으로 데이터 버스 상에서의 데이터 전송을 가능하게 한다. 보다 구체적으로, 메모리 버스 상에서 기록 트랜잭션을 수행하기 위한 방법은, 호스트 디바이스에서 제1 클럭 신호가 LOW이고 제2 클럭 신호가 HIGH인 동안 칩 선택을 LOW로 천이시킴으로써 기록 트랜잭션의 시작을 표시하는 단계를 포함한다. 본 방법은 또한 데이터 버스를 통해 차동 클럭 신호에서의 3 클럭 사이클들 동안 기록 명령어 및 타겟 어드레스를 송신하는 단계를 포함한다. 본 방법은 데이터 버스를 통해 호스트 디바이스로부터 데이터를 송신하는 단계를 포함한다.
본 발명은 첨부의 도면에서 제한이 아닌 예시로 설명되며, 첨부 도면에서 유사한 참조 번호는 유사한 구성요소를 나타낸다.
도 1은 본 발명에서 청구되는 내용의 실시예들이 구현될 수 있는 컴퓨팅 시스템의 블록도이다.
도 2a는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 감소된 핀 카운트 인터페이스의 도면이다.
도 2b는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법을 도시하는 흐름도이다.
도 3a는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 사용하는 판독 트랜잭션을 수행하기 위한 방법을 도시하는 흐름도이다.
도 3b는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 통한 판독 트랜잭션을 도시하는 타이밍도이다.
도 3c는 본 발명의 일 실시예에 따른, 도 3b의 타이밍도에 비해, RPC 메모리 인터페이스 버스를 통해 명령 및 어드레스 정보를 전달하기 위해 더 적은 비트를 필요로 하는 메모리 버스 인터페이스를 통한 판독 트랜잭션을 도시하는 다른 타이밍도이다.
도 4a는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 통한 판독 트랜잭션을 도시하는 타이밍도이다.
도 4b는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 통한 판독 트랜잭션을 도시하는 타이밍도이다.
도 5는 본 발명의 일 실시예에 따라, 주변 디바이스 내의 서로 다른 타겟 어드레스들의 레이턴시 특성들을 결정하고 그리고 상기 레이턴시 특성들에 근거하여 유효 데이터가 데이터 버스 상에 존재할 때를 표시하는 판독 데이터 스트로브를 트리거하도록 된 주변 디바이스의 주변 디바이스 제어기(pheripheral controller)의 블록도이다.
도 6은 본 발명의 일 실시예에 따라, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 통한 버스 트랜잭션을위한 판독 또는 기록 트랜잭션들 동안의 비트 배치(bit placement)를 도시하는 도이다.
도 7은 본 발명의 일 실시예에 따라, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스 상에서 버스 트랜잭션에 대한 비트 기능을 표시하는 표이다.
이제 본 발명의 실시예들이 상세히 참조될 것이며, 그 예시가 첨부의 도면에 도시된다. 본 발명이 하기의 실시예들과 함께 논의될 것이나, 이 실시예들이 본 발명을 이 실시예들만으로 제한하려 의도된 것이 아님이 이해될 것이다. 반대로, 본 발명은 첨부된 청구항들에 의해 정의된 것과 같은 본 발명의 정신 및 범주 내에 포함될 수 있는 대안, 수정, 및 등가를 포함하도록 된 것이다. 또한, 본 발명의 다음의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위하여 많은 구체적인 세부사항들이 설명된다. 그러나, 본 발명의 실시예들은 이들 구체적인 세부사항들 없이도 실시될 수 있다. 다른 예들에서, 본 발명의 양상들을 불필요하게 모호하게 만들지 않기 위하여, 잘 알려진 방법, 과정, 구성요소, 및 회로들이 상세히 설명되지 않는다. 예를 들어, 본 발명을 모호하게 만드는 것을 피하기 위하여, 일부 잘 알려진 시스템 구성 및 공정 단계들은 상세히 개시되지 않는다. 마찬가지로, 본 발명의 실시예들을 보여주는 도면은 준 도면(semi-diagrammatic)이고 크기조정되도록 그려지지 않았으며, 특히, 치수들 중 일부는 설명의 명료성을 위해 도면에서 과장되게 도시된다.
따라서, 본 발명의 실시예들은 버스 성능과 요구되는 버스 신호들의 수 사이에 고유한 균형을 제공하는 장치 및 방법을 제공한다. 본 발명의 다른 실시예들은 위의 이점을 제공하며, 또한 낮은 초기 레이턴시(initial latencies) 및 높은 지속 처리량(sustained throughput)을 보이는 감소된 핀 카운트 메모리 버스 인터페이스를 구현하는 방법을 제공한다. 본 발명의 또 다른 실시예들은 위의 이점을 제공하고, 그리고 또한 유효 데이터가 버스를 통해 전달될 때를 표시하기 위한 데이터 스트로브 신호의 사용을 구현하는 메모리 버스 인터페이스 상에서의 가변 레이턴시 기법의 구현을 제공하며, 그럼으로써 지금까지 데이터 버스를 통해 정보를 전달할 때 기존의 가변 레이턴시 버스 프로토콜들과 관련되었던 전용의 "READY" 또는 "WAIT" 신호들에 대한 필요성을 없애준다.
도 1은 본 발명의 실시예들이 구현될 수 있는 컴퓨팅 시스템(100)의 블록도이다. 예로서, 컴퓨팅 시스템(100)은 메모리를 제공하기 위한 메모리 SOC와 같은 시스템 온 칩(SOC)을 포함할 수 있다. 도 1에서 컴퓨팅 시스템(100)이 특정 개수 및 특정 유형의 소자들을 갖는 것으로 도시되나, 실시예들이 반드시 이 예시적인 구현으로 제한될 필요는 없다. 즉, 컴퓨팅 시스템(100)은 도시된 것과 다른 소자들을 포함할 수 있고, 도시된 소자들을 하나 보다 많이 포함할 수 있다. 예를 들어, 컴퓨팅 시스템(100)은 도시된 일 프로세서(110)보다 훨씬 더 많은 수의 프로세싱 유닛들을 포함할 수 있다. 마찬가지로, 다른 예에서, 컴퓨팅 시스템(100)은 도 1에 도시되지 않은 추가의 구성들을 포함할 수 있다.
가장 기본적인 구성에서, 컴퓨팅 시스템(100)은 일반적으로 적어도 하나의 프로세서(110)와 메모리 디바이스(104)를 포함한다. 컴퓨팅 디바이스의 정확한 구성 및 유형에 따라, 메모리 디바이스(104)는 휘발성(예컨대, RAM), 비휘발성(예컨대, ROM, 플래시 메모리, 등) 또는 이 둘의 어떤 조합일 수 있다. 일 실시예에서, 메모리 디바이스(104)는 NOR 플래시 메모리 어레이를 포함한다. 컴퓨팅 시스템(100)은 또한, 자기 또는 광학 디스크 또는 테이프를 포함하나 이것들로 제한되지는 않는 추가의 저장장치(112)(착탈식(removable) 및/또는 비-착탈식(non-removable))를 포함할 수 있다. 저장장치 매체는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 실현된 휘발성 및 비휘발성 저장장치, 착탈식 및 비-착탈식 저장장치를 포함한다. 제한이 아닌 예로서, 저장장치 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 비디오 디스크(DVD) 또는 다른 광학 저장장치, 자기 카세트, 자기 케이프, 자기 디스크 저장장치 또는 다른 자기 저장장치 디바이스, 또는 컴퓨팅 시스템(100)에 의해 액세스될 수 있고 원하는 정보를 저장하는데 사용될 수 있는 임의의 다른 매체를 포함한다.
추가적으로, 컴퓨팅 시스템(100)은 메모리 버스 인터페이스(120)를 통해 메모리 디바이스(104)에 연결되는 호스트 디바이스(106)를 포함할 수 있고, 상기 버스는 호스트 디바이스(106)와 메모리 디바이스(104)와 하나 이상의 주변 장치들 사이의 트랜잭션을 가능하게 해준다. 하기에서 논의되는 바와 같이, 메모리 디바이스 인터페이스(120)는 유효 데이터가 버스 상에서 사용가능할 때를 표시하기 위한 판독 데이터 스트로브를 사용하는 데이터의 전달을 가능하게 한다.
컴퓨팅 시스템(100)은 또한 상기 컴퓨팅 시스템(100)을 다른 시스템들과 통신할 수 있게 하는 통신 연결(들)(118)을 포함할 수 있다. 통신 연결(들)(118)은 통신 매체의 예이다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접-유선 연결; 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다.
컴퓨팅 시스템(100)은 키보드, 마우스, 펜, 음성 입력 디바이스, 게임 입력 디바이스(예를 들어, 조이스틱, 게임 제어 패드, 및/또는 다른 타입의 게임 입력 디바이스), 터치 입력 디바이스 등과 같은 입력 디바이스(들)을 포함할 수 있다. 추가적으로, 컴퓨팅 시스템(100)은 또한 디스플레이(예를 들어, 컴퓨터 모니터 및/또는 프로젝션 시스템), 스피커, 프린터, 네트워크 주변장치 등과 같은 출력 디바이스(들)을 포함할 수 있다.
도 2a는 본 발명의 일 실시예에 따른, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브(230)를 포함하는 감소된 핀 카운트(RPC) 메모리 버스 인터페이스(210)의 도면(200)이다. 본 맥락에서, 도 2의 버스 인터페이스(210)는 도 1의 버스(120)와 유사한 기능을 제공하며, 호스트 디바이스와 주변 디바이스 (예컨대, 도 1에 도시된 것과 같은 호스트 디바이스(106)와 주변 디바이스(130 또는 135) 및/또는 컴퓨팅 시스템(100)의 메모리 디바이스(104))사이의 통신을 용이하게 하도록 동작한다. 일 실시예에서, RPC 메모리 버스 인터페이스는 병렬 인터페이스를 포함한다. 다른 실시예에서, RPC 메모리 버스 인터페이스는 직렬 버스 인터페이스를 포함한다.
구체적으로, RPC 메모리 버스 인터페이스(210)는 칩 선택(CS#) 신호를 전달하도록 된 칩 선택 라인(215)을 포함한다. CS# 신호는 대응하는 주변 디바이스가 주어진 트랜잭션에 대해 활성화되는 때를 식별하기 위해 사용되는 디바이스 인에이블 신호를 포함한다. 예를 들어, 칩 선택 라인(215)은 주변 디바이스가 활성화되는 때를 표시하는 CS# 신호를 전달하도록 되어있다. 보다 구체적으로, CS# 신호가 인에이블되어, 주변 디바이스에 판독 또는 기록 트랜잭션 또는 트랜잭션이 요청됨을 통지한다.
추가적으로, RPC 인터페이스(210)는 제1 클럭 라인(223) 및 제2 클럭 라인(225)을 포함하는 라인들(220)의 차동 클럭 쌍(differential clock pair)을 포함한다. 보다 구체적으로, 차동 클럭 쌍(220)은 두 개의 클럭 소스들을 포함하는 차동 기준 클럭 신호를 전달하도록 되어 있다. 즉, 차동 클럭 신호는 제1 클럭 라인(223)을 통해 전달되는 제1 클럭(CK) 신호, 제2 클럭 라인(225)을 통해 전달되는 제2 클럭(CK#) 신호에 기초하며 이 신호들을 포함한다. CK 및 CK# 신호를 포함하는 차동 클럭은 버스 인터페이스(210) 상에서 언제 특정한 명령어(command specific), 어드레스, 및 데이터 정보를 캡쳐할지를 식별하기 위해 사용된다. 다른 실시예들에서, 클럭 피쳐의 기능(functionality)은 단일 종단형(single ended) 또는 차동형(differential)이다.
RPC 인터페이스(210)는 또한 판독 데이터 스트로브 라인(230)을 포함한다. 일 실시예에서, 판독 데이터 스트로브 라인(230)은 선택적으로 주변 디바이스로부터 판독 데이터 스트로브(RDS) 신호를 전달하도록 되어있다. RDS 신호는 일 실시예에서 소스 동기 출력 클럭을 포함한다. 또한, RDS 신호는 데이터 버스(235) 상에서 판독 데이터가 유효할 때를 표시하기 위해 주변 디바이스에 의해 사용된다. 실시예들에서, RDS 신호의 기능은 단일 종단형, 또는 차동형이거나, 전혀 존재하지 않는다.
추가로, RPC 인터페이스(210)는 데이터 버스(235)를 포함한다. 데이터 버스(235)는 도 7과 관련하여 더 설명될 바와 같이, 명령어 특정 식별자들(command specific identifiers), 어드레스 정보, 및 데이터 정보를 전달하도록 구성된다. 일 실시예에서, 데이터 버스(235)는 차동 클럭 신호의 모든 에지 상에서 데이터의 일 바이트(예를 들어, 8 비트)를 전달할 수 있는 8 라인 폭 데이터 버스로서 구성된다. 따라서, RPC 메모리 버스 인터페이스(210)는, 최소, 12 라인 활성 신호(active signal) 버스 인터페이스 상에서, 낮은 초기 레이턴시 및 높은 지속 처리량을 제공한다.
일 실시예에서, CK 및 CK# 신호를 포함하는 차동 클럭 및 RDS 신호의 사용은 데이터를 이중 데이터 레이트(DDR) 방식으로 전송될 수 있게 하며, 일 실시예에서 데이터는 보통의 클럭 사이클마다 두번 전송된다. 보다 구체적으로, 차동 클럭 및 RDS 신호는 데이터 버스(235)를 통해 DDR 방식으로 트랜잭션 및 명령어 특정 식별자들, 어드레스 정보, 및 데이터 정보의 전송을 가능하게 해준다. 다른 실시예들에서, CK 및 CK# 신호 대신, 하나의 클럭 신호만이 단일 데이터 레이트 방식으로 데이터를 전달하기 위해 사용된다.
도 2a에 도시된 것과 같이, 추가의 신호들을 위해 추가의 라인들 및/또는 핀들이 사용가능하다. 예를 들어, 하나 이상의 전력 라인들 및/또는 핀들이 컴퓨팅 시스템(예를 들어, 도 1의 시스템(100)) 및/또는 메모리 칩과 같은 칩에 전력을 전달하기 위해 제공된다. 전력 라인들 및/또는 핀들은 시스템 전체에 전력을 분배(distribute)하기 위한 하나 이상의 Vcc라인들, 및 칩 상의 입/출력 부품들에 제2 전력을 분배하기 위한 하나 이상의 VIO 라인들을 포함한다. 추가로, 기록 보호(write protect) 라인은 메모리에서 기록 기능을 디스에이블시키는 기록 보호(WP#) 신호를 전달하도록 구성된다. 또한, 리셋 라인 또는 핀이 칩을 초기화하여 다시 리셋 또는 초기 상태로 놓기 위한 리셋(RESET#) 신호를 전달하도록 구성된다. 또한, 컴퓨팅 시스템(예를 들어, 도 1의 시스템(100)) 및/또는 메모리 칩에 접지를 제공하기 위하여 하나 이상의 접지 라인들 및/또는 핀들이 제공된다. 예를 들어, 하나 이상의 VSSIO 접지 라인들이 시스템 또는 칩 상에 입력/출력 컴포넌트들에 접지를 제공한다. 또한, 하나 이상의 VSS 접지 라인들은 시스템 전체에 걸친 접지(system wide ground)를 시스템 또는 칩에 제공한다.
도 2b는 본 발명의 일 실시예에 따라, 유효 데이터가 존재할 때를 나타내는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 사용한 트랜잭션들을 수행하기 위한 방법을 도시하는 흐름도(200B)이다. 일 실시예에서, 순서도(200B)에서 수행되는 트랜잭션들이 도 2a의 RPC 버스 인터페이스(210) 상에서 수행되어, 호스트 디바이스와 주변 디바이스 및/또는 (시스템 또는 칩 상의) 메모리 디바이스 사이의 통신을 용이하게 할 때 은 초기 레이턴시들 및 높은 지속 처리량을 제공한다.
단계(260)에서, RPC 인터페이스는 칩 선택 라인을 포함하도록 구성되며, 여기서 상기 라인은 칩 선택(CS#) 신호의 전달을 용이하게 하도록 구성된다. 도 4b, 4c, 및 5b와 관련하여 하기에서 더 설명되는 바와 같이, CS# 신호는 판독 또는 기록 트랜잭션과 같은 주어진 트랜잭션에 대해 주변 디바이스가 활성화될 때를 표시한다.
단계(265)에서, RPC 인터페이스는 클럭 라인들의 쌍을 포함하도록 구성되며, 여기서 클럭 라인들은, 차동 클럭 신호를 용이하게 하도록, 제1 클럭 신호 및 제2 클럭 신호를 전달하도록 구성된다. 따라서, 클럭 라인들의 쌍은 언제 버스 인터페이스 상에서 특정 명령(command specific), 어드레스, 및 데이터 정보를 캡쳐할 지를 식별하기 위하여 사용되는 차동 기준 클럭을 전달하도록 구성된다.
단계(270)에서, RPC 인터페이스는 판독 데이터 스트로브 라인을 포함하도록 구성되고, 여기서 판독 데이터 스트로브 라인은 주변 디바이스로부터 소스 동기 출력 클럭을 판독 데이터 스트로브(RDS) 신호로서 전달하도록 구성된다. RDS 신호가 주변 디바이스에 의해 사용되어, 데이터 버스 상에서 판독 데이터가 유효할 때를 표시한다. 또한, 다른 실시예에서, RDS 신호는 양방향(bi-directional)이고 호스트 디바이스에 의해 사용되어 데이터 버스 상에서 기록 데이터가 유효한 때를 표시한다. 앞에서 기술한 바와 같이, 신호들의 차동 클럭 쌍 및 RDS 신호는 데이터가 데이터 버스 상에서 DDR 방식으로 전송될 수 있게 한다.
단계(275)에서, RPC 인터페이스는 데이터 버스를 포함하도록 구성되며, 여기서 데이터 버스는 명령어 특정 식별자들, 어드레스, 및 데이터 정보를 전달하도록 구성된다. 예를 들어, 명령어 식별자들은 현재의 트랜잭션이 판독 트랜잭션인지 또는 기록 트랜잭션인지를 표시한다. 일 실시예에서, 데이터 버스는 한번에 8비트의 데이터를 전달할 수 있는 8 라인 폭 데이터 버스로서 구성된다.
도 3a 및 3b는 조합하여, 도 2a의 인터페이스(210)과 같은 RPC 메모리 버스 인터페이스를 사용하여 판독 트랜잭션을 수행하기 위한 방법을 도시한다. 특히, 도 3a는 호스트 디바이스와 메모리 디바이스 사이의 통신을 가능하게 해주는 메모리 버스 인터페이스를 사용하는 판독 트랜잭션을 수행하기 위한 방법을 도시한다. 도 3b는 본 개시의 일 실시예에 따라, RPC 메모리 버스 인터페이스 상에서 도 3a에 아웃라인된 판독 트랜잭션의 실시예를 도시하는 타이밍도(300b)이다. 즉, 타이밍도(300b)는 판독 트랜잭션을 위해 사용되는 버스 신호 프로토콜을 도시한다. 더욱 구체적으로, RPC 메모리 버스 인터페이스는 유효 데이터가 데이터 버스 상에 존재하는 때를 표시하는 판독 데이터 스트로브를 포함한다. 또한, 차동 클럭 및 데이터 스트로브 신호의 사용은, 명령어, 어드레스, 및 데이터 정보가 더 높은 클럭 레이트에서 DDR 방식으로 전송될 수 있게 한다.
일 실시예에서, 흐름도(300a)에서 수행되며 타이밍도(300B)에서 개괄된 트랜잭션들이 도 2a의 RPC 버스 인터페이스(210) 상에서 수행되어 시스템 또는 칩 상에서 호스트 디바이스와 주변 장치 및/또는 메모리 디바이스 사이의 통신을 용이하게 해줄 때, 낮은 초기 레이턴시 및 높은, 지속 처리량을 제공한다. 즉, 흐름도(300a)에서 수행되는 트랜잭션들은 컴퓨팅 시스템 상에서 주변 디바이스들로서 동작하는 메모리 디바이스와 호스트 디바이스 사이의 판독 트랜잭션의 구현을 도시한다.
단계(310)에서, 호스트 디바이스에서, 판독 트랜잭션은, 클럭 신호들이 서로 반대의 전압들(opposing voltages)(예를 들어, HIGH 및 LOW)을 가지는 동안, RPC 인터페이스의 칩 선택(CS#) 신호(예를 들어, HIGH 또는 LOW)의 어써션(assertion) 및 데이터 버스를 통한 명령어 및 어드레스 정보의 전달을 통해 호스트 디바이스에 의해 개시된다. 설명을 위하여, 타이밍도(300B)에 도시된 바와 같이, 판독 요청이 호스트 디바이스로부터 메모리 디바이스로 전달되는 판독 트랜잭션의 시작시, 제1 클럭 신호(CK)가 LOW로 어써팅되어 있고, 제2 클럭 신호(CK#)가 HIGH로 어써팅되어 있는 동안, 칩 선택(CS#) 신호가 LOW로 어써팅된다. 또한, 일 실시예에서, 판독 트랜잭션의 기간 전체에 걸쳐, 칩 선택(CS#) 신호는 LOW로 어써팅되어 있다.
단계(320)에서, 판독 명령 및 타겟 어드레스 정보가 제1의 6개의 클럭 천이들(예컨대, 3개의 클럭 사이클들)에 따라 데이터 버스를 통해 호스트 디바이스로부터 전달된다. 즉, 주변 메모리 디바이스에 트랜잭션 특성들을 표시하기 위하여 호스트에 의해 6개의 클럭 에지들이 사용된다. 실시예들에서, 하나 이상의 명령어 및 어드레스(CAx) 비트들이 호스트 디바이스로부터 주변 메모리 디바이스로 전달되어 트랜잭션 특성들을 표시하며, 트랜잭션 특성들을 표시하기 위하여 하나 이상의 클럭 천이들이 요구될 수 있다. 설명을 위하여, 도 7과 관련하여 더 기술될 바와 같이, RPC 버스 인터페이스를 통한 판독 트랜잭션의 초기 부분 동안, 일 실시예에서 타이밍도(300b)에 도시된 바와 같이, 48 CAx 비트들이 제시된다. 구체적으로, 트랜잭션은 제1의 6개의 클럭 에지들 동안 DDR 방식으로 DQ[7-0] 데이터 버스 상에서 호스트 디바이스로부터 주변 장치로 전송되는 6 바이트 너비의 값들로 식별된다. 수신 주변 메모리 디바이스가 현재의 트랜잭션이 판독 요청임을 이해하도록, 이들 CAx 비트들이 현재의 트랜잭션이 판독 트랜잭션임을 표시한다. 추가로, 정보는 데이터가 검색될 그리고 주변 메모리 디바이스에 의해 호스트 디바이스로 다시 전달될 메모리 내의 타겟 어드레스를 포함한다. 따라서, 주변 디바이스는 메모리로부터 요청된 데이터에 액세스하고 상기 요청된 데이터를 RPC 인터페이스의 데이터 버스 DQ[7-0]를 통해 호스트 디바이스로 다시 송신한다.
도 3c에서, 타이밍도(300C)는, 본 개시의 일 실시예에 따라, 트랜잭션 특성들을 표시하기 위해 필요한 명령 및 어드레스 비트들의 수의 변동을 나타내는 RPC 메모리 버스 인터페이스 상의 판독 트랜잭션을 도시한다. 타이밍도(300C)는 본 개시의 일 실시예에 따라 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브(RDS)를 포함한다. 도시된 바와 같이, 타이밍도(300C)는 도 3b의 타이밍도(300B)에 포함된 것보다 적은 명령 및 어드레스 비트들을 포함한다. 즉, 어드레스 비트들이 타이밍도(300c) 내의 4 개의 클럭 에지들을 통해 전달되고, 여기서 필요한 명령 및 어드레스 비트들을 전달하기 위하여 타이밍 도(300B)에 6 개의 클럭 에지들이 요구된다. 구체적으로, 타이밍도(300C)와 관련된 타겟 주변 메모리 디바이스는 타이밍도(300B)와 관련된 메모리 디바이스에 비해, 더 적은 어드레스 비트들을 요구하는 더 낮은 밀도의 디바이스일 수 있다. 따라서, 더 낮은 밀도의 디바이스는 또한, 명령 및 어드레스 위치 정보를 정의하기 위하여 더 적은 클럭 에지들 및/또는 사이클들을 요구한다.
단계(330)에서, 데이터 버스를 통해 주변 메모리 디바이스에 의해 데이터가 전달되어 호스트 디바이스에서 수신된다. 타이밍도(300b)에 도시된 바와 같이, 데이터(Dn ...)가 주변 메모리 디바이스에 의해 출력된다.
추가로, 단계(340)에서, 판독 데이터 스트로브(RDS) 신호가 주변 메모리 디바이스에 의해 전달되어 호스트 디바이스에 의해 수신된다. 일 실시예에서, RDS 신호는 소스 동기 출력 클럭을 포함한다. RDS 신호는 데이터 버스 상에서 요청된 데이터가 유효하고 사용가능할 때를 표시하기 위하여 사용된다. 보다 구체적으로, 단계(350)에서, 데이터는 RDS 신호에 의해 표시된 것과 같이 호스트 디바이스에 의해 검색된다. 데이터는 에지 정렬된(edge aligned) RDS 신호를 사용하여 호스트 디바이스에 의해 검색된다. 일 실시예에서, 데이터는, 타이밍도(300B)에 도시된 것과 같이, RDS 신호의 리딩 에지(leading edge)로 시작하여 검색된다.
도 3b에 도시된 바와 같이, 일 실시예에서, 요청된 데이터가 리턴되기 전에 레이턴시(latency)가 고려된다. 데이터 버스를 통해 호스트 디바이스로의 전달을 준비하는 중에 주변 메모리 디바이스로 하여금 메모리 어레이의 타겟 어드레스로부터 데이터를 검색하여 상기 데이터를 주변 디바이스의 출력 버퍼들로 이동시킬 수 있게 하기 위하여 레이턴시(예를 들어, 하나 이상의 더미 클럭 사이클들)가 요구된다. 실시예들에서, 레이턴시 기간은 주변 디바이스에 의해 결정된다. 레이턴시 기간 후, 요청된 데이터가 데이터 버스를 통해 주변 디바이스에 의해 호스트 디바이스로 전달되고 판독 데이터 스트로브(RDS) 신호가 어써팅(예를 들어, HIGH 또는 LOW)되어 유효 데이터를 표시한다. 일 실시예에서, 레이턴시는 하드 카운트 레이턴시 기간이다(예를 들어, 도 3b에 도시된 것과 같은 2 클럭 사이클 레이턴시 시간, 10 클럭 사이클, 등). 예를 들어, 하드 카운트는 주변 메모리 디바이스의 최대 가능한 레이턴시 시간을 고려한다. 즉, 레이턴시는 주변 디바이스의 모든 섹션들의 최대 레이턴시를 고려하는 최대 레이턴시 시간이다. 또 다른 실시예에서, 레이턴시는 최적화된 레이턴시 카운트 기간이다. 즉, 레이턴시 기간은 디바이스 또는 디바이스 섹션 특정(device section specific)된 것일 수 있고, 도 5와 관련하여 더 설명될 바와 같이, 어떤 주변 디바이스 또는 주변 디바이스의 어떤 섹션이 요청된 데이터를 전달하고 있는지에 따라 달라질 수 있다. 도 5와 관련하여 더 기술될 바와 같이, 레이턴시 기간이 주변 디바이스에 의해 결정되어 하나 이상의 레이턴시 레지스터들에 저장될 수 있다. 또 다른 실시예에서, 주변 디바이스는 본질적으로(innately) 레이턴시 기간을 알고, 이 레이턴시 기간은 임의의 레이턴시 카운터를 참조하고/하거나 레이턴시 기간에 대해 등록(register)하지 않는다. 즉, 주변 디바이스(예를 들어, 요청된 데이터의 출력 버퍼로의 전송을 관리하는 컴포넌트들 및/또는 컴포넌트 회로)는 본질적으로 요청된 데이터가 언제 검색되어 출력 버퍼 상에 로딩되었는지를 알고, 임의의 소정의 레이턴시 시간과 관계 없이, 데이터 버스 상에서 전달할 준비가 된다. 따라서, 주변 데이터가, 데이터가 전달되도록 이용가능하다는 것을 알자마자, 주변 디바이스는 임의의 소정의 레이턴시 기간과 상관없이 데이터 버스를 통해 요청된 데이터를 전달하도록 구성된다.
타이밍도(300B)에 도시된 것과 같이, 일 실시예에서, RDS 신호는 CS# 신호의 어써션 후 즉시 LOW로 드라이브된다. 또 다른 실시예에서, RDS 신호는, 주변 메모리 디바이스가 데이터의 전달에 따라 RDS 신호를 HIGH로 드라이브할 때까지 Hi-z 상태로 유지된다. 또 다른 실시예에서, RDS 신호는 CS# 신호의 어써션후 즉시 HIGH로 드라이브된다.
일 실시예에서, 판독 버스트는 RPC 호스트 제어기 및 RPC 제어 디바이스의 구성에 따라 단일 데이터 바이트 또는 일련의 데이터 바이트들을 검색할 수 있다. 다중-바이트 버스트 시나리오에서, CK, CK#, 및 RDS 신호들이 각각의 새 데이터 값에 대해 계속해서 토글한다.
도 3a로 다시 돌아가면, 단계(360)에서, 제1 클럭 신호가 LOW이고 제2 클럭 신호가 HIGH인 동안, 칩 선택 신호(CS#)를 HIGH로 어써팅함으로써 호스트 디바이스에서 판독 동작의 종료가 표시된다. 예를 들어, 타이밍도(300B)에 도시된 바와 같이, 판독 트랜잭션은, CK 신호가 LOW로 어써팅되고 CK# 신호가 HIGH로 어써팅된 동안, CS# 신호가 HIGH로 되돌아간 상태에서 종료된다. 다른 실시예에서, CK 신호와 CK# 신호가 반대의 전압들(예를 들어, HIGH 및 LOW)을 갖는 동안 CS# 신호가 LOW로 되돌아간 상태로 종료를 표시하는 것과 같은 다른 조합들이 지원된다.
도 4a 및 4b는 조합하여, 도 2a의 인터페이스(210)와 같은 RPC 메모리 버스 인터페이스를 사용하는 기록 트랜잭션을 수행하기 위한 방법을 도시한다. 구체적으로, 도 4a는 호스트 디바이스와 메모리 디바이스 사이의 통신을 용이하게 해주는 메모리 버스 인터페이스를 사용하여 기록 트랜잭션을 수행하기 위한 방법을 도시하는 흐름도(400A)이다. 도 4b는, 본 발명의 일 실시예에 따라, RPC 메모리 버스 인터페이스 상에서, 도 4a에 아웃라인된 기록 트랜잭션의 구현을 도시하는 타이밍도(400B)이다. 즉, 타이밍도(400B)는 기록 트랜잭션을 위해 사용되는 버스 신호 프로토콜을 도시한다. 또한, 차동 클럭 및 데이터 스트로브 신호의 사용은, 명령, 어드레스, 및 데이터 정보가 더 높은 클럭 레이트에서 DDR 방식으로 전송될 수 있게 해준다.
단계(410)에서, 호스트 디바이스에서, 호스트 디바이스와 메모리 디바이스 사이에서 기록 트랜잭션이 수행되고 있다는 표시가 RPC 인터페이스의 칩 선택 라인 상에 제시된다. 보다 구체적으로, 기록 트랜잭션은 클럭 신호들이 반대의 전압들(예를 들어, HIGH 및 LOW)을 가지는 동안, 칩 선택 (CS#) 신호를 (예를 들어, HIGH 또는 LOW로) 어써팅함으로써 호스트 디바이스에 의해 개시된다. 설명을 위하여, 타이밍도(400B)에 도시된 것과 같이, 기록 명령이 호스트 디바이스로부터 메모리 디바이스로 전달되는 기록 트랜잭션의 시작시에, 제1 클럭 신호(CK)가 LOW로 어써팅되고 제2 클럭 신호(CK#)가 HIGH인 동안. CS# 신호가 LOW로 어써팅된다. 또한, 기록 트랜잭션의 지속기간에 걸쳐, 일 실시예에서, 칩 선택(CS#) 신호가 LOW로 어써팅된다.
단계(420)에서, 기록 명령어 및 타겟 어드레스 정보가 첫번째 6개의 클럭 천이들(예를 들어, 3개의 클럭 사이클) 후 데이터 버스를 통해 호스트 디바이스로부터 전달된다. 즉, 호스트에 의해 6개의 클럭 에지들이 사용되어, 주변 메모리 디바이스에 트랜잭션 특성들을 표시한다. 실시예들에서, 하나 이상의 명령 및 어드레스(CAx) 비트들이 호스트 디바이스로부터 주변 메모리 디바이스로 전달되어 트랜잭션 특성을 표시하며, 상기 트랜잭션 특성들을 표시하기 위해 하나 이상의 클럭 천이들을 요구할 수 있다. 설명의 목적으로, 타이밍도(400B)에 도시된 것과 같이, RPC 버스 인터페이스를 통해 기록 트랜잭션의 초기 부분 동안 48개의 CAx 비트들이 제시되며, 도 7과 관련하여 추가로 기술될 것이다. 구체적으로, 기록 트랜잭션은 첫번째 6 개의 클럭 에지들 동안 DDR 방식으로 DQ[7-0] 데이터 버스 상에서 호스트 디바이스로부터 주변 디바이스로 전송되는 6 바이트 폭 값들을 이용하여 식별된다. 이들 CA 비트들은 현재 트랜잭션이 기록 트랜잭션임을 표시한다. 추가로, 정보는 데이터가 주변 디바이스에 기록되는 메모리 내의 타겟 어드레스를 포함한다.
단계(430)에서, 데이터가 데이터 버스를 통해 호스트 디바이스에 의해 주변 메모리 디바이스로 전달된다. 기록 트랜잭션에서 어떠한 레이턴시도 요구되지 않는다. 타이밍도(400B)에 도시된 바와 같이, 데이터(Dn ...)는 CK와 CK# 신호의 교차(crossing)와 중심 정렬되고, 호스트 디바이스에 의해 출력되어, 주변 디바이스에 기록된다.
타이밍도(400B)에 도시된 바와 같이, 일 실시예에서, CS# 신호의 어써션 후 즉시 RDS 신호가 어써팅된다(예를 들어, LOW 또는 HIGH로 드라이브됨). 이 경우에, RDS 신호는 기록 트랜잭션의 지속기간 전체에 걸쳐 그것의 어써팅된 상태로 유지된다. 또 다른 실시예에서, RDS 신호는 기록 트랜잭션 전체에 걸쳐 Hi-z 상태로 유지된다.
일 실시예에서, 기록 버스트가, RPC 호스트 제어기 및 RPC 주변 디바이스의 구성에 따라 단일 데이터 바이트 또는 일련의 데이터 바이트들을 검색할 수 있다. 다중-바이트 버스트 시나리오에서, CK 및 CK# 신호가 각각의 새 데이터 값에 대해 토글을 계속한다.
도 4a로 다시 돌아가면, 단계(440)에서, 제1 클럭 신호가 LOW이고 제2 클럭 신호가 HIGH인 동안 칩 선택 신호(CS#)를 HIGH로 어써팅함으로써 기록 동작의 종료가 호스트 디바이스에 의해 표시된다. 예를 들어, 타이밍도(400b)에 도시된 바와 같이, 기록 트랜잭션은, CK 신호가 LOW로 어써팅되고 그리고 CK# 신호가 HIGH로 어써팅된 동안, CS# 신호가 HIGH로 유지된 상태에서 종료된다.
도 5는, 본 발명의 일 실시예에 따라, 유효 데이터가 존재하는 때를 표시하기 위하여 가변 레이턴시 게이팅 메커니즘으로서 그리고 데이터 스트로브로서 RDS 신호를 사용할 수 있는 주변 제어기를 도시한다. 예를 들어, 도 5는 RPC 버스 인터페이스 상에서 가변 레이턴시 판독 트랜잭션들을 구현하도록 구성된 RPC 주변 디바이스(530)의 블록도이다.
구체적으로, 도 5는, 본 발명의 일 실시예에 따라, RPC 메모리 버스 인터페이스(560) 상에서 호스트 디바이스와 주변 디바이스 사이의 가변 레이턴시 판독 트랜잭션들을 구현하도록 구성된 컴퓨팅 시스템(505)(예를 들어, 호스트 디바이스)의 RPC 주변 디바이스(530)의 블록도이다. 일 실시예에서, 주변 디바이스(530)는, 판독 데이터 전송을 시작하기 위하여 고정 개수의 클럭 사이클들을 대기해야만 하는 것이 아니라, 데이터가 출력될 준비가 되는 즉시 RDS 신호의 어써팅을 시작하도록 구성된다. 즉, 각각의 새 데이터 값이 데이터 버스(DQ[7 .. 0]) 상에 제시되는 때를 호스트 디바이스에 표시하기 위하여 RDS 신호가 사용된다. 또한, 본 발명의 실시예들은 데이터 버스 상에서 유효 데이터가 사용가능한 때를 표시하기 위한 레거시 가변 레이턴시 버스 프로토콜들(lagacy variable latency bus protocols)과 관련된 전용 READY 또는 WAIT 신호에 대한 필요를 없앤다.
도 5에 도시된 바와 같이, 컴퓨팅 시스템(505)(예컨대, 호스트 디바이스)는 주변 디바이스(530)와 RPC 메모리 버스 인터페이스(560)를 통한 통신을 조정하기 위 RPC 주변 인터페이스(530)를 포함한다. 컴퓨팅 시스템(505)은 중앙 처리 유닛(540), 예컨대 임베디드된 랜덤 액세스 메모리(ROM)(550) 및/또는 임베딩된 정적 랜덤 액세스 메모리(SRAM)(555)에 임베딩된 명령어들을 저장하기 위한 메모리를 포함한다. 컴퓨팅 시스템(505)은 또한 xDRAM(535)과 같은 메모리 디바이스를 제어하기 위한 xDRAM 제어기(537)를 포함할 수 있다.
보다 구체적으로, RPC 주변 디바이스(530)는 주변 디바이스의 서로 다른 섹션들로부터 판독된 데이터를 즉시 사용가능하게 할 수 있는 가변 레이턴시 피쳐를 제공한다. 즉, 주변 디바이스(530)는, 그 데이터를 데이터 버스 상에서 사용가능하게 만들 때 타겟 어드레스의 특성들에 따라 주변 디바이스의 서로 다른 섹션들의 가변 초기 액세스 시간들을 결정 및 처리할 수 있다. 즉, 주변 디바이스(530)는 본 개시의 일 실시예에 따라, 주변 디바이스 내에서 서로 다른 타겟 어드레스들의 레이턴시 특성들을 결정할 수 있고, 레이턴시 특성들에 근거하여 유효 데이터가 데이터 버스 상에 존재할 때를 표시하는 판독 데이터 스트로브를 트리거할 수 있다.
예를 들어, 타겟 어드레스가 식별될 때와 데이터가 제시될 때 사이에 걸린 시간이 초기 레이턴시로서 정의된다. 주변 디바이스는 타겟 어드레스에 따라 많은 서로 다른 내부 레이턴시들을 가질 수 있지만, 다양한 실시예들에서, 데이터 버스 상에 초기 데이터 값을 배치하기 전에 결정된 레이턴시가 경과될 때까지 데이터가 내부적으로 스톨(stall)된다.
예로서, 플래시 메모리 디바이스들은 몇개의 서로 다른 타겟 어드레스 초기 레이턴시 특성들을 가진다. 판독 동작들은, 상태 레지스터들, SRAM 버퍼들, 메인 플래시 어레이, 보조 플래시 어레이 및 ROM 어레이들을 포함하는 서로 다른 메모리 영역들에 액세스할 수 있다. 이들 서로 다른 메모리 영역들 전부는 현저하게 다른 특성 액세스 시간을 갖는다. 본 개시의 가변 레이턴시 메커니즘은 단축된 시간 내에 타겟 데이터가 호스트로 리턴될 수 있게 함으로써 전체 성능이 더 나아지게 할 수 있다.
더욱 구체적으로, 주변 디바이스(530)는 데이터 버스 상에 유효 데이터가 존재할 때를 표시하는 데이터 스트로브 함수를 제공함은 물론 가변 레이턴시 게이팅 함수를 수행하도록 구성된다. 구체적으로, 일 실시예에서, 주변 디바이스(530)는 데이터가 제시될 준비가 되는 즉시 (예를 들어, LOW에서 HIGH0로의) 초기 RDS 천이 에지를 개시할 것이다. 예를 들어, 도 5b의 타이밍도(500B)는 RPC 버스 인터페이스 상에서의 판독 트랜잭션을 도시하며, 여기서 RDS의 초기 천이가 두 개의 클럭 초기 레이턴시로서 도시된다. 따라서, 본 발명의 실시예들은 RDS 신호의 제1 상승 에지가 타겟 어드레스의 레이턴시 특성에 따라 더 먼저 또는 더 늦게 천이되게 한다.
도 5에 도시된 바와 같이, 주변 디바이스(530)는 레이턴시 타이머(515) 및 하나 이상의 레이턴시 레지스터들(520)를 포함한다. 일 실시예에서, 레이턴시 타이머(515)는 서로 다른 어드레스들, 또는 서로 다른 메모리 영역들에 대해 클럭 주파수와는 관계없이 최적의 초기 레이턴시 타이밍을 결정할 수 있다. 따라서, 더 높은 클럭 레이트가 더 큰 레이턴시 카운트를 사용하고, 반면 더 낮은 클럭 레이트는 더 작은 레이턴시 카운트를 사용한다.
일 실시예에서, 레이턴시 타이머(515)는 주변 디바이스(530) 내의 가장 느린 타겟 위치에 대해 최악의 경우의 레이턴시를 결정할 수 있다. 즉, 레이턴시 레지스터(520)에는 모든 메모리 위치들에 대해 일반화된 레이턴시 카운트가 로딩된다. 레이턴시 카운트는 타겟 어드레스가 식별될 때와 초기 데이터가 출력될 때 사이에 요구되는 클럭 사이클들의 수를 표시한다. 따라서, 주변 디바이스는, 타겟 위치 및/또는 어드레스에 대한 대응하는 레이턴시 카운트, 및 타겟 어드레스의 상대적인 속도에 의존하여, 언제 데이터를 출력(그리고 RDS 신호를 토글)하기 시작할지를 조정하도록 구성된다.
또 다른 실시예에서, 레이턴시 타이머(515)는 특정 타겟 위치에 대한 레이턴시를 결정할 수 있으며, 여기서 상기 위치는 하나 이상의 메모리 어드레스들과 관련된다. 결정된 레이턴시는 대응하는 타겟 위치에 대한 레이턴시 레지스터(520)에 저장될 수 있다. 즉, 레이턴시 레지스터(520)에는, 타겟 어드레스가 식별될 때와 대응하는 타겟 어드레스들에 대해 초기 데이터가 출력될 ? 사이에 요구되는 클럭 사이클들의 수를 표시하는 하나 이상의 레이턴시 카운트들이 로딩된다. 따라서, 주변 디바이스는 타겟 어드레스 영역들 각각과 관련된 개별 레이턴시 레지스터들에 액세스하며, 여기서 서로 다른 어드레스 영역들은 서로 다른 초기 애겟스 시간 특성들을 갖는다. 레이턴시 레지스터들(520)에는 데이터 산출량을 최적화하기 위한 특성 값들이 로딩된다. 이러한 방식으로, 주변 디바이스(530)는 서로 다른 타겟 어드레스들의 레이턴시 특성들을 결정하고 그리고 상기 레이턴시 특성들에 근거하여 유효 데이터가 데이터 버스 상에 존재할 때를 표시하는 판독 데이터 스트로브를 트리거하도록 구성된다.
도 6은 본 개시의 일 실시예에 따라, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브를 포함하는 메모리 버스 인터페이스를 통한 버스 트랜잭션에서의 판독 또는 기록 트랜잭션들 동안의 비트 배치를 도시하는 비트 다이어그램(600)이다. 비트 다이어그램(600)에 도시된 비트 배치는 RPC 버스 인터페이스를 통해 수행되는 판독 및 기록 트랜잭션들의 초기 부분들 동안에 전송되는 정보를 나타내며, 이들 모두는 앞서 도 1 내지 5에서 논의되었다.
도 6에 도시된 바와 같이, RPC 주변 디바이스에 의해 수행될 버스 트랜잭션을 정의하기 위하여 호스트 RPC 제어기에 의해 출력되는 명령어 및 어드레스 정보에 대해 비트 할당이 기술된다. 상기 명령어 및 어드레스 정보는, RPC 트랜잭션의 첫번째 6 클럭 에지들 동안에 전송되는 첫번째 6개의 바이트들을 통해 데이터 버스 상에서 운반된다. 특히, RPC 버스 트랜잭션(예를 들어, 판독 트랜잭션 또는 기록 트랜잭션)의 초기 부분 동안 48 CAx 비트들이 제시된다. 즉, 6 바이트 정보가 도 6에 제시된다. 예를 들어, 제6 바이트(610)는 비트들(47-40)을 포함하고 그리고 CK 신호의 제1 상승 에지(rising edge)에서 트리거되며, 제5 바이트(615)는 비트들(39-32)을 포함하고 CK 신호의 제1 하강 에지(falling edge)되고, 제4 바이트(620)는 비트들(31-24)을 포함하고 CK 신호의 제2 상승 에지에서 트리거되고; 제3 바이트(625)는 비트들(23-16)을 포함하고 CK 신호의 제2 하강 에지에서 트리거되고; 제2 바이트(630)는 비트들(15-8)을 포함하고 CK 신호의 제3 상승 에지에서 트리거되고; 그리고 제1 바이트(635)는 비트들(7-0)을 포함하고 CK 신호의 제3 하강 에지에서 트리거된다.
도 7은 본 개시의 일 실시예에 따라, 유효 데이터가 존재할 때를 표시하는 판독 데이터 스트로브(RDS)를 포함하는 메모리 버스 인터페이스 상의 버스 트랜잭션에 대한 비트 기능을 표시하는 테이블(700)이다. 표(700)이 비트 기능은 도 6에 도시된 비트 할당을 나타내고, 그리고 RPC 주변 디바이스에 의해 수행될 버스 트랜잭션을 정의하기 위하여 호스트 RPC 제어기에 의해 출력되는 명령어 및 주소 정보를 기술한다.
보다 구체적으로, 비트(47)(R/W#)는 판독 또는 기록 트랜잭션으로서 트랜잭션을 식별한다. 예를 들어, R/W#=1일 때, 이는 판독 트랜잭션을 표시하고, 반면에 R/W# 값=0은 기록 트래잭션을 표시한다. 또한, 비트(46)(타겟)은 주 메모리 또는 레지스터 공간에서와 같은 타겟 어드레스가 위치된 곳을 표시한다. 예를 들어, 0의 타겟 값은 메모리 스페이스를 표시하고 반면 1의 타겟 값은 레지스터 공간을 표시한다. 비트(45-16)은 미래의 행 어드레스 확장을 위해 예약(reserve)된다.
비트들(37-16)(행 어드레스)은 타겟 어드레스의 행 요소를 위한 정보를 제공한다. 행 어드레스 비트들은 메모리 어레이로부터 어떤 32 바이트들이 액세스될 지를 식별한다.
비트(15)(버스트 타입)는 트랜잭션 출력의 버스트가 연속적인지 또는 래핑되는지를 표시한다. 예를 들어, 0의 버스트 타입 값은 래핑된 버스트를 표시하나, 반면 1의 값은 연속적인 버스트를 포시한다. 더욱 구체적으로, 래핑된 버스트는, 버스트 길이 또는 행 내의 요구되는 시작 어드레스를 액세스하여, 32 바이트 행으로서 구성된 어레이에 대해 정보의 32 바이트의 끝에 도달할 때까지 버스트 길이의 끝까지 계속하고 버스트 길이의 시작부로 랩 어라운드(wrap around)한다.
반면에, 연속적인 버스트 타입은 다시 요구되는 시작 어드레스에 액세스하여 연속적인 버스트 길이의 끝까지 계속한다. 이후 현재의 버스트 길이를 연장하기 위하여 메모리 어레이 내의 데이터의 다음 그룹을 출력 버퍼로 투기적으로(speculatively) 가져온다. 이 투기적인 어레이 판독은 칩 선택이 HIGH로 되돌아올 때 판독 버스트의 종료(termination)시까지 계속된다.
비트(14-13)는 RPC RAM 디바이스에서 사용되는 바이트 인에이블을 위해 예약된다. 01의 바이트 인에이블 값은 비트들(15-8)이 마스크됨을 표시하고; 10의 바이트 인에이블 값은 비트들(7-0)이 마스크됨을 표시한다. 바이트 인에이블 값들은 RPC 플래시 디바이스에서 11로 드라이브된다. 추가로, 비트들(12-4)이 추후의 열 어드레스 확장을 위해 예약된다.
비트(3-0)(행 어드레스)는 열 어드레스 정보를 제공한다. 즉, 열 어드레스 비트들은 메모리 어레이 내의 타겟 어드레스의 열 요소를 제공한다. 일 실시예에서, 인터페이스는 8, 16, 또는 32 비트 워드 인터페이스를 지원한다. 그러한 방식으로, 판독과 기록이 대칭적으로 밸런스된다. 또 다른 실시예에서, 16 비트 인터페이스에 대해, 어떤 바이트 또는 바이트들(상위 또는 하위 또는 둘 모두)이 유용한지를 표시하는 표시자 및/또는 비트(예를 들어, 비트 값(21))이 존재한다.
따라서, 본 발명의 실시예들은 유효 데이터가 버스를 통해 전달될 때를 표시하기 위하여 데이터 스트로브 신호의 사용을 구현하는 메모리 버스 인터페이스를 통한 가변 레이턴시 기법의 구현을 제공하는 감소된 핀 카운트 메모리 버스 인터페이스에 대해 제공한다.
상술한 본 발명의 상세한 설명, 실시예들은 실시예에 따라 달라질 수 있는 다양한 구체적인 세부사항들을 참조로 기술되었다. 따라서, 출원인이 의도한, 본 발명이 무엇인지에 대한 완전한 그리고 배타적인 지표는, 본 출원에서 제시하는 청구항들의 세트로서, 임의의 후속적인 정정을 포함하여, 그러한 청구항들이 제시하는 구체적 형태로의 청구항들의 세트이다. 그러므로, 청구항에 명시적으로 기재되지 않은 한정사항, 요소, 특징, 피쳐, 이점, 또는 속성은 어떠한 식으로든 이러한 청구항의 범주를 제한하지 않는다. 따라서, 본 명세서 및 도면은 제한적인 의미보다는 예시적인 것으로서 고려되어야 한다.

Claims (20)

  1. 메모리 버스 인터페이스로서,
    주변 디바이스가 활성화 될 때를 표시하는 칩 선택 신호를 전달(deliver)하기 위한 칩 선택(chip select) - 상기 메모리 버스 인터페이스는 호스트 디바이스와 상기 주변 디바이스 사이의 통신을 제공함 -;
    제1 클럭 신호와 제2 클럭 신호를 포함하는 차동 클럭 신호(differential clock signal)를 전달하기 위한 차동 클럭 쌍(pair);
    상기 주변 디바이스로부터의 판독 데이터 스트로브 신호를 전달하기 위한 판독 데이터 스트로브; 및
    명령, 어드레스, 및 데이터 정보를 전달하기 위한 데이터 버스를 포함하고,
    상기 데이터 버스는 8 라인 폭(line wide) 데이터 버스를 포함하고, 그리고 상기 메모리 버스 인터페이스는 12 라인 인터페이스를 포함하는, 메모리 버스 인터페이스.
  2. 제1 항에 있어서,
    상기 차동 클럭들의 쌍 및 상기 판독 데이터 스트로브는 이중 데이터 레이트(DDR) 방식으로 데이터의 전송을 가능하게 하는, 메모리 버스 인터페이스.
  3. 삭제
  4. 제1 항에 있어서,
    판독 트랜잭션에서, 상기 차동 클럭 쌍의 교차(crossing)들이 상기 명령 및 상기 어드레스 정보의 전달을 표시하고, 그리고 상기 판독 데이터 스트로브 신호의 천이(transition)들이 상기 데이터 정보의 전달을 표시하는, 메모리 버스 인터페이스.
  5. 제1 항에 있어서,
    기록 트랜잭션에서, 상기 차동 클럭 쌍의 교차들은 상기 명령, 어드레스, 및 데이터 정보의 전달을 표시하는, 메모리 버스 인터페이스.
  6. 제1 항에 있어서,
    상기 클럭 쌍의 기능(functionality)은 단일 종단형(single ended) 또는 차동형(differential)인, 메모리 버스 인터페이스.
  7. 제1 항에 있어서,
    상기 판독 데이터 스트로브의 기능은 단일 종단형 또는 차동형인, 메모리 버스 인터페이스.
  8. 제1 항에 있어서,
    상기 데이터 버스는 단일 데이터 레이트 버스 또는 이중 데이터 레이트 버스로서 동작하는, 메모리 버스 인터페이스.
  9. 삭제
  10. 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법으로서,
    주변 디바이스가 활성화될 때를 표시하는 칩 선택 신호의 전달을 용이하게 하도록 칩 선택을 구성하는 단계 - 상기 메모리 버스 인터페이스는 호스트 디바이스와 상기 주변 디바이스 사이의 통신을 제공함 -;
    차동 클럭 신호를 인에이블(enable)하기 위하여 제1 클럭 신호 및 제2 클럭 신호를 전달하기 위한 차동 클럭 쌍을 구성하는 단계;
    소스 동기 출력 클럭을 전달하기 위한 판독 데이터 스트로브를 상기 주변 디바이스로부터의 판독 데이터 스트로브 신호로서 구성하는 단계;
    명령 타입, 어드레스, 및 데이터 정보를 전달하기 위한 데이터 버스를 구성하는 단계 - 상기 차동 클럭들의 쌍 및 상기 판독 데이터 스트로브는 판독 트랜잭션 및 기록 트랜잭션을 위해 이중 데이터 레이트(DDR) 방식으로 데이터를 전송할 수 있게함 -; 및
    상기 판독 트랜잭션을 수행하는 단계를 포함하고,
    상기 판독 트랜잭션을 수행하는 단계는,
    상기 제1 클럭 신호 및 상기 제2 클럭 신호의 전압들이 LOW 및 HIGH인 동안 상기 칩 선택 신호를 어써팅(asserting)함으로써 상기 호스트 디바이스에서 상기 판독 트랜잭션을 개시하는 단계;
    상기 데이터 버스를 통해 상기 차동 클럭 신호 내의 3 개의 클럭 사이클들에 걸쳐 판독 타입 명령 및 타겟 어드레스를 송신하는 단계 - 상기 판독 타입 명령은 상기 트랜잭션이 판독 타입을 포함함을 나타냄 -;
    상기 판독 트래잭션이 연속적인 버스트 타입에 속하는지 또는 랩핑된(wrapped) 버스트 타입에 속하는지를 표시하는 단계;
    상기 호스트 디바이스에서, 상기 데이터 버스를 통해 상기 주변 디바이스로부터 데이터를 수신하는 단계;
    상기 호스트 디바이스에서 상기 판독 데이터 스트로브를 통해 판독 데이터 스트로브 신호를 수신하는 단계;
    상기 호스트 디바이스에서, 상기 판독 데이터 스트로브 신호의 리딩 에지(leading edge)로 시작하여 상기 데이터를 검색(retrieve)하는 단계를 포함하며,
    상기 판독 데이터 스트로브 신호는 소스 동기 출력 클럭을 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  11. 제10 항에 있어서,
    상기 데이터 버스를 통해 6 클럭 천이들에 걸쳐 상기 판독 타입 명령 및 상기 타겟 어드레스를 송신하는 단계; 및
    상기 데이터를 검색하는 단계 전에 상기 판독 데이터 스트로브 신호의 천이를 대기하는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  12. 제10 항에 있어서,
    다중-바이트(multi-bye) 버스트 모드에서 각각의 데이터 값에 대해 상기 차동 클럭 신호와 상기 판독 데이터 스트로브 신호를 토글링(toggling)하는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  13. 제10 항에 있어서,
    상기 제1 클럭 신호가 LOW이고 그리고 상기 제2 클럭신호가 HIGH인 동안, 상기 칩 선택 신호를 HIGH로 어써팅함으로써 상기 판독 트랜잭션을 종료하는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  14. 제10 항에 있어서,
    상기 데이터가 준비되는 즉시 상기 주변 디바이스에서 상기 판독 데이터 스트로브 신호를 트리거링하는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  15. 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법으로서,
    주변 디바이스가 활성화될 때를 표시하는 칩 선택 신호의 전달을 용이하게 하도록 칩 선택을 구성하는 단계 - 상기 메모리 버스 인터페이스는 호스트 디바이스와 상기 주변 디바이스 사이의 통신을 제공함 -;
    차동 클럭 신호를 인에이블(enable)하기 위하여 제1 클럭 신호 및 제2 클럭 신호를 전달하기 위한 차동 클럭 쌍을 구성하는 단계;
    소스 동기 출력 클럭을 전달하기 위한 판독 데이터 스트로브를 상기 주변 디바이스로부터의 판독 데이터 스트로브 신호로서 구성하는 단계;
    명령 타입, 어드레스, 및 데이터 정보를 전달하기 위한 데이터 버스를 구성하는 단계 - 상기 차동 클럭들의 쌍 및 상기 판독 데이터 스트로브는 판독 트랜잭션 및 기록 트랜잭션을 위해 이중 데이터 레이트(DDR) 방식으로 데이터를 전송할 수 있게함 -; 및
    상기 기록 트랜잭션을 수행하는 단계를 포함하고,
    상기 기록 트랜잭션을 수행하는 단계는,
    상기 제1 클럭 신호가 LOW이고 그리고 상기 제2 클럭 신호가 HIGH인 동안 상기 칩 선택을 LOW로 천이시켜 상기 호스트 디바이스에서 상기 기록 트랜잭션의 시작을 표시하는 단계;
    상기 데이터 버스를 통해 상기 차동 클럭 신호 내의 3 개의 클럭 사이클들에 걸쳐 기록 타입 명령 및 타겟 어드레스를 송신하는 단계 - 상기 기록 타입 명령은 상기 트랜잭션이 기록 타입을 포함함을 나타냄 -;
    상기 기록 트랜잭션이 연속적인 버스트 타입에 속하는지 또는 랩핑된 버스트 타입에 속하는지를 표시하는 단계; 및
    상기 데이터 버스를 통해 상기 호스트 디바이스로부터 데이터를 송신하는 단계를 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  16. 제15 항에 있어서,
    상기 명령, 어드레스 및 데이터 정보를, 상기 제1 및 제2 클럭 신호들의 신호 교차부(signal crossing)들과 중심 정렬(center align)시키는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  17. 제15 항에 있어서,
    다중-바이트 버스트 모드에서 각각의 데이터 값에 대해 상기 차동 클럭 신호를 토글링하는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  18. 제15 항에 있어서,
    상기 제1 클럭 신호가 LOW이고 그리고 상기 제2 클럭 신호가 HIGH인 동안, 상기 칩 선택 신호를 HIGH로 어써팅함으로써 상기 기록 트랜잭션을 종료하는 단계를 더 포함하는, 메모리 버스 인터페이스를 사용하여 트랜잭션들을 수행하기 위한 방법.
  19. 장치로서,
    호스트 디바이스;
    데이터를 저장하도록 동작가능한 메모리 어레이를 포함하는 메모리 디바이스;
    프로세서; 및
    상기 메모리 디바이스와 상기 호스트 디바이스 사이의 연결성을 제공하는 버스 인터페이스를 포함하고,
    상기 버스 인터페이스는,
    주변 디바이스가 활성화될 때를 표시하는 칩 선택 신호를 전달하기 위한 칩 선택 - 상기 버스 인터페이스는 호스트 디바이스와 상기 주변 디바이스 사이의 통신을 제공함 -;
    제1 클럭 신호와 제2 클럭 신호를 포함하는 차동 클럭 신호를 전달하기 위한 차동 클럭 쌍;
    상기 주변 디바이스로부터의 판독 데이터 스트로브 신호를 전달하기 위한 판독 데이터 스트로브; 및
    명령, 어드레스, 및 데이터 정보를 전달하기 위한 데이터 버스를 포함하고,
    상기 데이터 버스는 8 라인 폭(line wide) 데이터 버스를 포함하고, 그리고 상기 메모리 버스 인터페이스는 12 라인 인터페이스를 포함하는, 장치.
  20. 제19 항에 있어서,
    상기 판독 데이터 스트로브는 상기 판독 데이터 정보의 전달을 나타내는, 장치.
KR1020130027798A 2012-03-30 2013-03-15 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법 KR102030126B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/435,445 2012-03-30
US13/435,445 US8966151B2 (en) 2012-03-30 2012-03-30 Apparatus and method for a reduced pin count (RPC) memory bus interface including a read data strobe signal

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190121705A Division KR20190116212A (ko) 2012-03-30 2019-10-01 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130111301A KR20130111301A (ko) 2013-10-10
KR102030126B1 true KR102030126B1 (ko) 2019-10-08

Family

ID=48326627

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020130027798A KR102030126B1 (ko) 2012-03-30 2013-03-15 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법
KR1020190121705A KR20190116212A (ko) 2012-03-30 2019-10-01 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020190121705A KR20190116212A (ko) 2012-03-30 2019-10-01 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법

Country Status (6)

Country Link
US (1) US8966151B2 (ko)
JP (1) JP6196447B2 (ko)
KR (2) KR102030126B1 (ko)
CN (1) CN103366794B (ko)
GB (1) GB2500818B (ko)
TW (1) TWI547807B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281005B2 (en) 2014-05-01 2016-03-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Multiplexed communication in a storage device
US9430148B2 (en) 2014-05-01 2016-08-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Multiplexed synchronous serial port communication with skew control for storage device
US9343103B2 (en) * 2014-07-11 2016-05-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Serial port communication for storage device using single bidirectional serial data line
KR102235521B1 (ko) 2015-02-13 2021-04-05 삼성전자주식회사 특정 패턴을 갖는 저장 장치 및 그것의 동작 방법
US10002102B2 (en) * 2015-03-13 2018-06-19 Microchip Technology Incorporated Low-pin microcontroller device with multiple independent microcontrollers
US9812183B2 (en) 2016-03-04 2017-11-07 Adesto Technologies Corporation Read latency reduction in a memory device
US10613763B2 (en) 2016-04-21 2020-04-07 Adesto Technologies Corporation Memory device having multiple read buffers for read latency reduction
US10380060B2 (en) 2016-06-17 2019-08-13 Etron Technology, Inc. Low-pincount high-bandwidth memory and memory bus
KR20180046428A (ko) 2016-10-27 2018-05-09 삼성전자주식회사 메모리 장치 및 그것의 트레이닝 방법
KR20180070743A (ko) * 2016-12-16 2018-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
WO2019050534A1 (en) * 2017-09-08 2019-03-14 Etron Technology America, Inc. MEMORY BUS AND MEMORY WITH LARGE BAND WIDTH AND LOW NUMBER OF PINS
US11681352B2 (en) 2019-11-26 2023-06-20 Adesto Technologies Corporation Standby current reduction in memory devices
CN111538686A (zh) * 2020-03-31 2020-08-14 广东高云半导体科技股份有限公司 少管脚存储器的控制系统、fpga芯片和存储系统
US11366774B2 (en) 2020-09-24 2022-06-21 Adesto Technologies Corporation Memory latency reduction in XIP mode
US11704258B2 (en) 2021-08-11 2023-07-18 Dialog Semiconductor US Inc. Latency reduction in SPI flash memory devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2337618A (en) * 1998-04-02 1999-11-24 Hyundai Electronics Ind Semiconductor memory device, system or method

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3348716B2 (ja) * 1998-06-25 2002-11-20 富士通株式会社 半導体記憶装置
JP3853537B2 (ja) * 1999-04-30 2006-12-06 株式会社日立製作所 半導体メモリファイルシステム
US7000065B2 (en) * 2002-01-02 2006-02-14 Intel Corporation Method and apparatus for reducing power consumption in a memory bus interface by selectively disabling and enabling sense amplifiers
US6886067B2 (en) * 2002-05-23 2005-04-26 Seiko Epson Corporation 32 Bit generic asynchronous bus interface using read/write strobe byte enables
US6996016B2 (en) * 2003-09-30 2006-02-07 Infineon Technologies Ag Echo clock on memory system having wait information
US7009894B2 (en) * 2004-02-19 2006-03-07 Intel Corporation Dynamically activated memory controller data termination
CN1787110A (zh) * 2005-10-28 2006-06-14 杭州华为三康技术有限公司 一种实现接口的方法和装置
WO2007125519A2 (en) * 2006-05-03 2007-11-08 Nxp B.V. Latency optimized resynchronization solution for ddr/ddr2 sdram read path
WO2008022454A1 (en) * 2006-08-22 2008-02-28 Mosaid Technologies Incorporated Scalable memory system
US7890684B2 (en) * 2006-08-31 2011-02-15 Standard Microsystems Corporation Two-cycle return path clocking
US7613049B2 (en) * 2007-01-08 2009-11-03 Macronix International Co., Ltd Method and system for a serial peripheral interface
US7920431B2 (en) * 2008-06-02 2011-04-05 Micron Technology, Inc. Asynchronous/synchronous interface
US8098539B2 (en) * 2009-08-26 2012-01-17 Qualcomm Incorporated Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation
JP5453449B2 (ja) * 2009-11-13 2014-03-26 パナソニック株式会社 インターフェース回路、及びインターフェースシステム
US8593902B2 (en) * 2011-09-06 2013-11-26 Mediatek Inc. Controller and access method for DDR PSRAM and operating method thereof
US8738852B2 (en) * 2011-08-31 2014-05-27 Nvidia Corporation Memory controller and a dynamic random access memory interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2337618A (en) * 1998-04-02 1999-11-24 Hyundai Electronics Ind Semiconductor memory device, system or method

Also Published As

Publication number Publication date
GB201305446D0 (en) 2013-05-08
KR20130111301A (ko) 2013-10-10
GB2500818B (en) 2015-12-23
KR20190116212A (ko) 2019-10-14
GB2500818A (en) 2013-10-02
JP6196447B2 (ja) 2017-09-13
CN103366794B (zh) 2018-06-05
US20130262907A1 (en) 2013-10-03
US8966151B2 (en) 2015-02-24
TWI547807B (zh) 2016-09-01
JP2013214284A (ja) 2013-10-17
TW201339847A (zh) 2013-10-01
CN103366794A (zh) 2013-10-23

Similar Documents

Publication Publication Date Title
KR102030126B1 (ko) 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법
KR102401271B1 (ko) 메모리 시스템 및 그 동작 방법
KR100633828B1 (ko) 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템
US8281101B2 (en) Dynamic random access memory with shadow writes
JP4507186B2 (ja) モードレジスタにおけるバースト長設定の変更を行わずに、異なるバースト長のアクセスをサポートするdram
TWI695267B (zh) 記憶體系統、記憶體模組及其操作方法
US12088291B2 (en) Apparatus for transmitting and receiving a signal, a method of operating the same, a memory device, and a method of operating the memory device
JP2008532140A (ja) 複数内部データバス及びメモリバンクインターリービングを有するメモリデバイス及び方法
KR20170005900A (ko) 플래시 메모리 제어기
KR102168487B1 (ko) 높은 클럭 속도에서 연속하는 판독 버스트 지원
CN110633229A (zh) 用于高带宽存储器通道的dimm
JPH06231075A (ja) ゼロ潜伏性ループアービトレーションの方法及び装置
US10162522B1 (en) Architecture of single channel memory controller to support high bandwidth memory of pseudo channel mode or legacy mode
JP6370528B2 (ja) メモリデバイス群間でのチェックビットメモリデバイスの共有
CN118069037A (zh) 存储器控制器、电子系统和控制存储器访问的方法
KR102700109B1 (ko) 적응형 메모리 액세스 관리
CN113454720B (zh) 存储设备及其控制方法
US9646656B2 (en) Time-multiplexed communication protocol for transmitting a command and address between a memory controller and multi-port memory
US6757775B2 (en) Batch method for accessing IDE device task registers
US8402233B2 (en) Method and apparatus for high throughput mass storage device interface in a microprocessor for handheld systems
US20190096459A1 (en) Memory devices for performing multiple write operations and operating methods thereof
JP2009237980A (ja) マルチポートメモリおよび情報処理システム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant