KR100998412B1 - 데이터 레인들로부터 순환 중복 코드 레인들을 오프셋하는것에 의한 대기 시간 개선 - Google Patents

데이터 레인들로부터 순환 중복 코드 레인들을 오프셋하는것에 의한 대기 시간 개선 Download PDF

Info

Publication number
KR100998412B1
KR100998412B1 KR1020080045131A KR20080045131A KR100998412B1 KR 100998412 B1 KR100998412 B1 KR 100998412B1 KR 1020080045131 A KR1020080045131 A KR 1020080045131A KR 20080045131 A KR20080045131 A KR 20080045131A KR 100998412 B1 KR100998412 B1 KR 100998412B1
Authority
KR
South Korea
Prior art keywords
crc
bits
delete delete
read data
host
Prior art date
Application number
KR1020080045131A
Other languages
English (en)
Other versions
KR20080101741A (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 KR20080101741A publication Critical patent/KR20080101741A/ko
Application granted granted Critical
Publication of KR100998412B1 publication Critical patent/KR100998412B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Memory System (AREA)

Abstract

본 발명의 실시예들은 일반적으로 데이터로부터 순환 중복 검사 레인들을 오프셋함으로써 대기 시간을 증가시키기 위한 시스템, 방법 및 장치에 관한 것이다. 몇몇 실시예들에서, 메모리 장치는 판독 데이터 비트들을 제공하는 메모리 어레이 및 판독 데이터 비트들에 대응하는 CRC(cyclic redundancy code) 비트들을 생성하는 CRC 생성기를 포함한다. 또한, 메모리 장치는 판독 데이터 비트들 및 CRC 비트들을 호스트로 전송하는 전송 프레이밍 유닛을 포함할 수 있고, 전송 프레이밍 유닛은 CRC 비트들의 전송을 오프셋 값에 적어도 부분적으로 기초하여 판독 데이터 비트들의 전송으로부터 오프셋하는 로직을 포함한다. 다른 실시예들이 설명되고 청구된다.
CRC 생성기, 전송 프레이밍 유닛, 메모리 어레이, 오프셋

Description

데이터 레인들로부터 순환 중복 코드 레인들을 오프셋하는 것에 의한 대기 시간 개선{IMPROVING LATENCY BY OFFSETTING CYCLIC REDUNDANCY CODE LANES FROM DATA LANES}
본 발명의 실시예들은 일반적으로 집적 회로 분야에 관한 것으로, 더 구체적으로, 데이터 레인들로부터 순환 중복 코드 레인들(cyclic redundancy code lanes)을 오프셋하는 것에 의해 대기 시간(latency)을 개선하는 시스템들, 방법들, 및 장치들에 관한 것이다.
DRAM(dynamic random access memory) 채널들에서 사용되는 전송 속도(transfer rate)가 계속해서 증가하고 있다. 전송 속도가 빨라질수록 DRAM 채널에서의 전송 오류들의 가능성이 증가한다. 일부 종래의 시스템들은 순환 중복 코드(cyclic redundancy code; CRC)를 사용하여 DRAM 채널에서 전송되는 데이터에 대한 오류 보호를 제공한다. CRC 비트들을 생성해서 프레임에 포함시키는 것은 DRAM 판독 대기 시간을 증가시킨다. 판독 데이터를 확인하기 위해 CRC 체크섬(checksum)을 재생함으로써 호스트측에서 추가적인 대기 시간이 발생한다.
본 발명의 실시예들은 일반적으로 데이터로부터 순환 중복 코드 레인들을 오프셋하는 것에 의해 대기 시간을 개선하는 시스템들, 방법들, 및 장치들에 관한 것이다.
일부 실시예들에서는, 메모리 장치가 판독 데이터 비트들을 제공하는 메모리 어레이, 및 판독 데이터 비트들에 대응하는 CRC 비트들을 생성하는 순환 중복 코드(CRC) 생성기를 포함한다. 또한, 메모리 장치는 판독 데이터 비트들 및 CRC 비트들을 호스트에 전송하는 전송 프레이밍 유닛(transmit framing unit)을 포함할 수 있다. 도 1 내지 도 7을 참조하여 이하에서 더 논의되는 바와 같이, 일부 실시예들에서, 전송 프레이밍 유닛은 적어도 부분적으로 오프셋 값에 기초하여 판독 데이터 비트들의 전송으로부터 CRC 비트들의 전송을 오프셋하는 로직을 포함한다.
본 발명에 따르면, 데이터로부터 순환 중복 코드 레인들을 오프셋하는 것에 의해 대기 시간이 개선된다.
도 1은 본 발명의 실시예에 따라 구현된 컴퓨팅 시스템의 선택된 양태들을 예시하는 고레벨의 블록도이다. 예시된 실시예에서, 시스템(100)은 호스트(110)(예를 들어, 메모리 컨트롤러) 및 메모리 장치(120)(예를 들어, DRAM)를 포함한다. 대안적인 실시예들에서, 시스템(100)은 더 많은 요소, 더 적은 요소, 및/또 는 상이한 요소들을 포함할 수 있다.
메모리 장치(120)는 오프셋 로직(122)을 포함한다. 일부 실시예들에서, 오프셋 로직(122)은 메모리 장치(120)가 판독(RD) 데이터 비트들로부터 CRC 비트들의 전송을 오프셋할 수 있게 한다. 예를 들어, 일부 실시예들에서, 메모리 장치(120)는 CRC 체크섬이 생성되기 전에 RD 데이터 프레임의 전송을 개시한다. 이로써, 메모리 장치(120)는 CRC 체크섬을 생성하는 것으로 인해 야기되는 대기 시간을 줄일 수 있다.
일부 실시예들에서, CRC 비트들의 전송은 적어도 부분적으로 오프셋 값에 기초하여 데이터 비트들의 전송으로부터 오프셋된다. 일부 실시예들에서, 오프셋 값은 고정된다(예를 들어, 1/2 프레임, 3/4 프레임 등). 이러한 실시예들에서, 오프셋 값은 CRC 체크섬을 생성하는 데 필요한 시간의 길이에 의해 결정될 수 있다(예를 들어, CRC 대기 시간). 대안적인 실시예들에서, 오프셋 값은 프로그램 가능하다. 오프셋 로직(122)은 도 2를 참조하여 이하에서 더 설명된다.
커맨드/어드레스(Command/Address: C/A) 레인들(102)은 메모리 장치(120)에 커맨드들 및 어드레스들을 전송하기 위한 복수의 레인을 제공한다. DQ 레인들(104)은 양방향 판독/기입 데이터 버스를 제공한다. CRC 레인들(106)은 CRC 체크섬 비트들을 전송하기 위해 양방향 버스를 제공한다. 대안적인 실시예들에서, DQ 레인들(104) 및/또는 CRC 레인들(106)은 단방향일 수 있다. 설명의 용이함을 위하여, 본 발명의 실시예들은 x8 메모리 장치를 참조하여 설명된다. 그러나, 본 발명의 실시예들은 x4, x16, x32 등과 같은 다른 장치 데이터 폭들을 포함할 수 있 다는 것을 알 것이다.
호스트(110)는 메모리 장치(120)로/로부터의 데이터의 전송을 제어한다. 일부 실시예들에서, 호스트(110)는 하나 이상의 프로세서로서 동일한 다이 상에 집적된다. 호스트(110)는 CRC 생성기(114)를 포함한다. CRC 생성기(114)는 메모리 장치(120)로부터의 CRC 체크섬과 비교될 수 있는 로컬 CRC를 생성하여, 전송된 데이터가 손상되었는지 여부를 판정한다. 더 설명되는 바와 같이, 일부 실시예들에서, CRC 생성기(114)는 메모리 장치(120)로부터 CRC 체크섬을 수신하기 전에 로컬 CRC 체크섬의 생성을 개시한다. 호스트(110)는 원격으로 생성된 CRC 체크섬을 수신하기 전에 로컬 CRC 체크섬을 생성할 수 있기 때문에, CRC 체크섬들을 생성하고 비교하는 것에 의해 생기는 대기 시간을 감소시킨다.
일부 실시예들에서, 호스트(110)는 또한 CRC 체크섬들이 비교되기 전에 메모리 장치(120)로부터 수신된 데이터를 추론적으로 이용하는 로직(112)을 포함할 수 있다. 이러한 실시예들에서, CRC 체크섬 비교 전의 데이터의 추론적인 이용은 CRC 비교들로 인해 생기는 대기 시간을 더 감소시킨다. 데이터의 추론적 이용은 도 3을 참조하여 이하에서 더 설명된다.
도 2는 본 발명의 실시예에 따라 구현된 메모리 장치의 선택된 양태들을 예시하는 블록도이다. 메모리 장치(200)는 특히 메모리 어레이(202), 전송(TX) 프레이밍 유닛(204), 및 CRC 생성기(208)를 포함한다. 대안적인 실시예들에서, 메모리 장치(200)는 더 많은 요소, 더 적은 요소, 및/또는 상이한 요소를 포함할 수 있다. 일부 실시예들에서, 메모리 장치(200)는 DRAM(dynamic random access memory device)이다.
동작시, 메모리 장치(200)는 C/A 버스(예를 들어, C/A 버스(102))에서 호스트(예를 들어, 호스트(110))로부터의 RD 커맨드를 수신한다. 데이터는 메모리 어레이(202)로부터 판독되어 TX 프레이밍 유닛(204)으로 제공된다. 판독 데이터는 또한 CRC 체크섬을 계산하는 CRC 생성기(208)에 제공된다. 일부 실시예들에서는, XOR 트리들의 6 레벨을 이용하여 CRC 체크섬을 계산한다. 대안적인 실시예들에서, 상이한 수의 XOR 트리 또는 상이한 알고리즘을 이용하여 CRC 체크섬을 생성할 수 있다. CRC 체크섬을 위한 계산 시간은 CRC_latency로서 정의될 수 있다. 일부 실시예들에서, CRC_latency는 1.25 나노초 정도이다. 일부 실시예들에서, RD 데이터의 길이는 64비트이고, CRC 체크섬의 길이는 8비트이다. 그러나, 대안적인 실시예들에서는, RD 데이터 및/또는 CRC 체크섬의 길이들이 상이할 수 있다는 것을 알 것이다.
TX 프레이밍 유닛(204)은 DQ 및 CRC 레인들(예를 들어, DQ 레인들(104) 및 CRC 레인들(106)) 상에서 호스트로 전달되는 데이터 프레임을 생성한다. 일부 실시예들에서, TX 프레이밍 유닛(204)은 오프셋 로직(206)을 포함한다. 오프셋 로직(206)은 적어도 부분적으로 오프셋 값(210)에 기초하여 RD 데이터 비트들에 대하여 CRC 비트들의 전송을 오프셋시킨다(예를 들어, 지연시킨다). 그러므로, 본 발명의 일부 실시예들에서, RD 데이터 비트들은 TX 프레이밍 유닛(204)에 대해 이용가능하게 되어 CRC 생성기(208)로부터의 CRC 비트들을 기다리기 위해 스톨(stall)되지 않게 되자마자 전송된다. 일부 실시예들에서, RD 데이터 비트들은 CRC를 구 현하지 않는 메모리 장치에 의해 생기는 대기 시간에 필적하는 대기 시간에 전송된다.
오프셋 값(210)은, CRC 비트들이 CRC_latency와 실질적으로 동일한 양만큼 오프셋되도록 선택될 수 있다. 일부 실시예들에서, 오프셋 값(210)은 메모리 장치(200) 내로 하드 코딩된(hard coded) 고정 값이다. 이러한 실시예들에서, 오프셋 값(210)은 RD 데이터 프레임 크기의 일부분(예를 들어, 1/2 프레임, 1/3 프레임, 3/4 프레임 등)일 수 있다.
대안적인 실시예들에서, 오프셋 값(210)은 프로그램가능하다. 예를 들면, 오프셋 값(210)은 메모리 장치(200) 상의 레지스터(예를 들면, 레지스터(212)) 내로 프로그램될 수 있다. 일부 실시예에서, BIOS(basic input/output system)는 오프셋 값(210)을 설정한다. 대안적인 실시예들에서, 트레이닝 시퀀스가 오프셋 값(210)을 판정하고 설정하는 데 사용될 수 있다.
메모리 장치(200)는 CRC 디스에이블 로직(CRC disable logic)(214)을 포함한다. 일부 실시예에서, CRC 디스에이블 로직(214)은 메모리 장치(200)에 의한 CRC의 사용을 디스에이블한다. 그리하여, 일부 실시예에서, 메모리 장치(200)는 RD 데이터에 의한 CRC 체크섬을 이용하도록 구성되거나 RD 데이터에 의한 CRC 체크섬을 이용하지 않도록 구성될 수 있다.
도 3은 본 발명의 실시예에 따라 구현된 호스트의 선택된 양태들을 예시하는 블록도이다. 호스트(300)는, 특히, 데이터 인터페이스(I/F)(308), CRC I/F(310), CRC 생성기(306), 비교기(304) 및 로직(302)을 포함한다. 대안적인 실시예에서, 호스트(300)는 더 많은 요소들, 더 적은 요소들, 및/또는 상이한 요소들을 포함한다. 데이터 인터페이스(308)는 호스트(300)와 DQ 레인들(104) 사이의 인터페이스를 제공한다. 유사하게 CRC 인터페이스(310)는 호스트(300)와 CRC 레인들(106) 사이의 인터페이스를 제공한다. 인터페이스들(308 및 310)은 다수의 드라이버들, 수신기들, 클록 회로들 등을 포함할 수 있다.
동작시, RD 데이터는 DQ 레인들(104)을 통해 호스트(300)에 도착한다. CRC 생성기(306)는 RD 데이터를 수신하여 "로컬(local)" CRC 체크섬을 계산한다. "로컬"이라는 용어는 호스트에 의해 생성된 CRC 체크섬과 메모리 장치에 의해 생성된 CRC 체크섬을 구별하기 위해 사용된다. CRC 비트들은 DQ 레인들(104)과 상이한 CRC 레인(106)을 통하여 도착한다.
비교기(304)는 (예를 들면, CRC 생성기(306)로부터의) 로컬 CRC 체크섬과 메모리 장치로부터 수신된 CRC 체크섬을 비교한다. 만약 그들이 일치하면, 출력(312)은 데이터가 유효함을 지시한다. 만약 그들이 일치하지 않으면, 출력(312)은 오류 신호를 제공할 수 있다.
일부 실시예에서, 호스트(300)는 로직(314)을 포함한다. 로직(314)은 호스트(300)가 로컬 CRC를 메모리 장치로부터 수신된 CRC와 비교하기 전에 RD 데이터를 추론적으로 이용할 수 있게 한다. 그러한 실시예에서, 만약 CRC 오류가 발생한다면, 로직(314)은 RD 데이터의 사용을 중단하고 이전 상태를 복구하려고 시도할 수 있다.
도 4는 본 발명의 실시예에 따라 구현된 RD 데이터 프레임 포맷의 선택된 양 태를 도시한다. 도 4에 도시된 바와 같이, RD 데이터 프레임(402)은 사용자 간격들 0 내지 7에 걸쳐 전송된 8바이트의 데이터를 포함한다. 일부 실시예에서, TX 프레이밍 유닛(예를 들면, 도 2에 도시된 TX 프레이밍 유닛(204))은 RD 데이터 프레임(402)이 이용가능해지자마자 RD 데이터 프레임(402)을 전송한다. 그러나 CRC 비트들(404)은 오프셋(406) 발생 후에 전송된다. 예시된 실시예에서, 오프셋은 4 UI 또는 프레임 폭의 절반이다. 대안적인 실시예에서, 오프셋은 더 적거나 더 많을 수 있다.
도 5는 본 발명의 실시예에 따라 데이터 레인들로부터 CRC 레인을 오프셋하는 방법의 선택된 양태들을 예시하는 흐름도이다. 프로세스 블록(502)을 참조하면, 메모리 장치(예를 들면, 도 2에 도시된 메모리 장치(200))는 메모리 상호접속부로부터(예를 들면, 도 1에 도시된 C/A 버스(102)로부터) RD 커맨드를 수신한다. 메모리 장치는 504에서 그것의 메모리 어레이로부터 적절한 RD 데이터를 획득하고 506에서 프레이밍 유닛(예를 들면, TX 프레이밍 유닛(204))으로 RD 데이터를 보낸다. RD 데이터는 또한 프레이밍 유닛으로 보내지는 것과 (거의) 동시에 CRC 생성기(예를 들면, CRC가 인에이블되는 경우, CRC 생성기(208))로 보내질 수 있다 (508).
프로세스 블록(510)을 참조하면, 프레이밍 유닛은 대응하는 CRC 비트들이 생성되기를 기다리지 않고 RD 데이터가 이용가능해지자마자 RD 데이터를 호스트로 전송한다. 일부 실시예에서, 프레이밍 유닛은 오프셋이 도착할 때까지 CRC 비트들을 보내는 것을 지연한다 (512). 오프셋은 길이에 있어서 CRC_latency에 필적하기 때 문에 프레이밍 유닛은 CRC 비트들이 이용가능해진 후에 곧(또는 바로) CRC 비트들을 전송할 수 있다. 일부 실시예들에서, 오프셋은 고정된 양이다. 대안적인 실시예들에서, 오프셋은 프로그램가능하다. 프레이밍 유닛은 514에서 CRC 비트들의 전송을 개시한다.
도 6은 본 발명의 일 실시예에 따른 오프셋 CRC 레인에 기초하여 호스트에서 대기 시간을 감소시키기 위한 방법의 선택된 양태를 도시하는 흐름도이다. 프로세스 블록(602)을 참조하면, 호스트는 메모리 장치로부터 RD 데이터를 수신한다(예를 들면, 도 1에 도시된 DQ 레인들(104)을 통하여). 일부 실시예에서, 호스트는 메모리 장치로부터 모든 RD 데이터를 수신하기 전에(예를 들면, 도 4에 도시된 모든 프레임(402)을 수신하기 전에) 로컬 CRC 체크섬을 계산하기 시작한다. 대안적인 실시예들에서, 호스트는 RD 데이터의 전송을 완료한 후에(예를 들면, 프레임(402)이 전송된 후에) 로컬 CRC를 계산하기 시작한다. 일부 실시예에서, 호스트는 CRC 체크가 완료되기 전에 RD 데이터를 추론저긍로 사용하는 로직을 포함한다(606).
호스트는 608에서, 메모리 장치로부터 수신된 CRC를 로컬 CRC와 비교한다. 만약 그들이 일치한다면, 612에 의해 도시된 바와 같이 데이터는 유효하다고 간주된다. 만약 그들이 일치하지 않으면, 오류 신호가 생성될 수 있다. 호스트가 RD 데이터를 추론적으로 사용하고 있고 CRC들이 일치하지 않으면, 데이터의 사용은 중단될 수 있고 호스트는 그의 상태를 복구하려고 시도할 수 있다.
도 7은 본 발명의 실시예에 따른 버스 턴어라운드(turnaround) 주기 최적화의 선택된 양태들을 예시한다. 트랜잭션(700)은 끊임없는 전송을 갖는 메모리 장 치(예를 들면, DRAM)로부터의 연속적인 판독의 예를 예시한다. 예를 들면, RD 데이터 프레임 1은 RD 데이터 프레임 0 직후에 보내진다. CRC 비트들이 상이한 레인을 통해 전송되기 때문에, CRC 0 및 CRC 1은 RD 데이터 프레임의 전송을 방해하지 않으면서 오프셋에 의해 각각 지연될 수 있다.
트랜잭션(710)은 RD 데이터 프레임의 전송에 후속하여 전송되는 기입(WR) 데이터 프레임의 예를 예시한다. 일부 실시예에서, RD 데이터 프레임 0의 전송 후에, WR 데이터 프레임 1을 전송하기 전에 "버스 턴어라운드 시간"(712-1)의 지연이 존재한다. 유사하게, RD CRC 0의 전송 후에, WR CRC 1을 전송하기 전에 "버스 턴어라운드 시간"(712-2)의 지연이 존재한다. 버스 턴어라운드 시간(712)에 의해 WR 데이터 프레임 1(및 기입 CRC 1)의 전송을 지연시키는 이유는 판독 전송들과 기입 전송들 사이의 전환시 버스 상에서 신호들이 안정되게 하기 위해서이다.
본 발명의 실시예들의 요소들은 머신-실행가능 명령어(machine-executable instruction)들을 저장하기 위한 머신-판독가능 매체(machine-readable medium)로서 제공될 수도 있다. 머신-판독가능 매체는 플래시 메모리, 광학 디스크들, CD-ROM(compact disks-read only memory), DVD(digital versatile/video disks) ROM, RAM(random access memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 자기 또는 광학 카드들, 전파 매체 또는 전자 명령어들을 저장하기에 적합한 다른 유형의 머신 판독가능 매체를 포함할 수 있지만, 그것으로 제한되지는 않는다. 예를 들면, 본 발명의 실시예들은 반송파 또는 다른 전파 매체로 구현되는 데이터 신호들에 의해 통 신 링크(예를 들면, 모뎀 또는 네트워크 접속)를 통하여 원격 컴퓨터(예를 들면, 서버)로부터 요청 컴퓨터(예를 들면, 클라이언트)로 전송될 수 있는 컴퓨터 프로그램으로서 다운로드될 수 있다.
본 명세서 전체에 걸쳐 "하나의 실시예" 또는 "실시예"에 대한 언급은 실시예와 관련하여 기술된 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미함을 인식해야 한다. 그리하여, 본 명세서의 다양한 부분에서의 "실시예" 또는 "일 실시예" 또는 "대안적인 실시예"에 대한 둘 이상의 언급이 반드시 모두 동일한 실시예를 언급할 필요는 없다는 것이 강조되고 이해되어야 한다. 더욱이, 특별한 특징들, 구조들 또는 특성들은 적합하다면 본 발명의 하나 이상의 실시예에서 결합될 수 있다.
유사하게, 본 발명의 실시예들의 이전의 설명에서, 하나 이상의 다양한 발명의 양태의 이해를 돕는 개시물을 간소화하기 위해 다양한 특징들이 단일 실시예, 도면, 또는 그들의 설명에서 종종 함께 그룹화된다는 것을 인식해야 한다. 그러나 이러한 개시 방법은 청구된 발명이 각 청구항에서 명백하게 인용된 것보다 더 많은 특징들을 요구한다는 의도를 반영하는 것으로서 해석되어서는 안된다. 오히려, 다음의 청구범위가 반영하는 것과 같이, 앞서 개시된 단일 실시예의 모든 특징보다 적게 발명의 양태들이 존재한다. 그리하여 상세한 설명 다음의 청구범위는 그에 의해 명백하게 상세한 설명에 포함된다.
본 발명의 실시예들은, 한정을 위해서가 아니라 예시를 위해서 첨부 도면들에 예시되어 있으며, 첨부 도면들에서 동일한 참조 번호들은 유사한 요소들을 나타낸다.
도 1은 본 발명의 실시예에 따라 구현된 컴퓨팅 시스템의 선택된 양태들을 예시하는 고레벨의 블록도.
도 2는 본 발명의 실시예에 따라 구현된 메모리 장치의 선택된 양태들을 예시하는 블록도.
도 3은 본 발명의 실시예에 따라 구현된 호스트의 선택된 양태들을 예시하는 블록도.
도 4는, 본 발명의 실시예에 따라 구현된, 판독 데이터 프레임 포맷 및 대응하는 오프셋 CRC 비트들의 선택된 양태들을 예시하는 도면.
도 5는 본 발명의 실시예에 따라 데이터 레인들로부터 CRC 레인을 오프셋하기 위한 방법의 선택된 양태들을 예시하는 흐름도.
도 6은 본 발명의 실시예에 따라 오프셋 CRC 레인에 기초하여 호스트에서 대기 시간을 감소시키기 위한 방법의 선택된 양태들을 예시하는 흐름도.
도 7은 본 발명의 실시예에 따라 버스 턴어라운드 주기들(bus turnaround cycles)을 최적화하는 선택된 양태들을 예시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
100: 시스템
110: 호스트
120: 메모리 장치
122: 오프셋 로직
200: 메모리 장치
202: 메모리 어레이
204: 전송(TX) 프레이밍 유닛
206: 오프셋 로직
208: CRC 생성기

Claims (23)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 메모리 장치; 및
    호스트
    를 포함하고,
    상기 메모리 장치는,
    판독 커맨드에 응답하여 판독 데이터 비트들을 제공하는 메모리 어레이,
    상기 메모리 어레이에 의해 제공되는 상기 판독 데이터 비트들에 대응하는 원격으로 생성되는 CRC(cyclic redundancy code) 비트들을 생성하는 CRC 생성기; 및
    상기 판독 데이터 비트들 및 상기 원격으로 생성되는 CRC 비트들을 상기 호스트에 전송하는 전송 프레이밍 유닛
    을 포함하고,
    상기 전송 프레이밍 유닛은 오프셋 값에 적어도 부분적으로 기초하여 상기 판독 데이터 비트들의 전송의 시작으로부터 상기 원격으로 생성된 CRC 비트들의 전송의 시작을 오프셋하는 로직을 포함하고,
    상기 호스트는,
    상기 메모리 장치로부터 상기 판독 데이터 비트들을 수신하는 인터페이스 회로;
    상기 인터페이스 회로와 연결되어 상기 판독 데이터 비트들에 적어도 부분적으로 기초하여 로컬 CRC 비트들을 생성하는 CRC 생성기;
    상기 판독 데이터 비트들을 포괄하는 상기 원격으로 생성된 CRC 비트들을 상기 메모리 장치로부터 수신하는 다른 인터페이스 회로; 및
    상기 로컬 CRC 비트들을 생성하는 CRC 생성기 및 상기 다른 인터페이스 회로와 연결되어 상기 로컬 CRC 비트들과 상기 원격으로 생성된 CRC 비트들을 비교하는 비교기
    를 포함하고,
    상기 로컬 CRC 비트들을 생성하는 CRC 생성기는 상기 원격으로 생성된 CRC 비트들을 수신하기 전에 상기 로컬 CRC 비트들을 생성하기 시작하는 시스템.
  18. 제17항에 있어서,
    상기 오프셋 값은 고정 오프셋 값인 시스템.
  19. 제17항에 있어서,
    상기 오프셋 값은 1/2 프레임 오프셋인 시스템.
  20. 제17항에 있어서,
    상기 오프셋 값은 프로그램가능 오프셋 값인 시스템.
  21. 삭제
  22. 제17항에 있어서,
    상기 호스트는,
    상기 로컬 CRC 비트들을 상기 원격으로 생성된 CRC 비트들과 비교하기 전에 상기 판독 데이터 비트들에 대해 추론적으로 동작하는 로직을 더 포함하는 시스템.
  23. 제22항에 있어서,
    상기 호스트는 메모리 컨트롤러를 포함하는 시스템.
KR1020080045131A 2007-05-15 2008-05-15 데이터 레인들로부터 순환 중복 코드 레인들을 오프셋하는것에 의한 대기 시간 개선 KR100998412B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/803,734 US7644344B2 (en) 2007-05-15 2007-05-15 Latency by offsetting cyclic redundancy code lanes from data lanes
US11/803,734 2007-05-15

Publications (2)

Publication Number Publication Date
KR20080101741A KR20080101741A (ko) 2008-11-21
KR100998412B1 true KR100998412B1 (ko) 2010-12-03

Family

ID=39571339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080045131A KR100998412B1 (ko) 2007-05-15 2008-05-15 데이터 레인들로부터 순환 중복 코드 레인들을 오프셋하는것에 의한 대기 시간 개선

Country Status (5)

Country Link
US (1) US7644344B2 (ko)
KR (1) KR100998412B1 (ko)
CN (1) CN101325090B (ko)
GB (1) GB2449348B (ko)
TW (1) TWI378467B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996731B2 (en) 2005-11-02 2011-08-09 Advanced Micro Devices, Inc. Error detection in high-speed asymmetric interfaces
KR101688051B1 (ko) * 2010-11-08 2016-12-20 삼성전자 주식회사 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치
US8738993B2 (en) * 2010-12-06 2014-05-27 Intel Corporation Memory device on the fly CRC mode
US8984488B2 (en) 2011-01-14 2015-03-17 Honeywell International Inc. Type and range propagation through data-flow models
CN104471645B (zh) * 2012-03-26 2017-04-12 英特尔公司 采用检错编码的事务的存储器设备的定时优化装置和方法
US9299400B2 (en) 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
MY180992A (en) 2013-03-13 2020-12-15 Intel Corp Memory latency management
WO2014158130A1 (en) * 2013-03-25 2014-10-02 Hewlett-Packard Development Company, L.P. Memory device having error correction logic
US10331513B2 (en) * 2015-07-28 2019-06-25 Microchip Technology Incorporated Zero overhead code coverage analysis
US20180357121A1 (en) * 2017-06-09 2018-12-13 Qualcomm Incorporated Error correction calculation upon serial bus abort
US11513893B2 (en) 2020-12-21 2022-11-29 Intel Corporation Concurrent compute and ECC for in-memory matrix vector operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108611A1 (en) * 2003-11-14 2005-05-19 Intel Corporation Early CRC delivery for partial frame
US20070055796A1 (en) * 2004-02-19 2007-03-08 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638518A (en) * 1994-10-24 1997-06-10 Lsi Logic Corporation Node loop core for implementing transmission protocol in fibre channel
US5844923A (en) * 1996-10-24 1998-12-01 At&T Corp Fast framing of nude ATM by header error check
KR100605978B1 (ko) * 1999-05-29 2006-07-28 삼성전자주식회사 부호분할다중접속 이동통신시스템의 불연속 전송모드에서 연속적인 외부순환 전력제어를 위한 송수신 장치 및 방법
US6829315B1 (en) * 2000-01-19 2004-12-07 Mindspeed Technologies, Inc. Alignment of parallel data channels using header detection signaling
KR100393460B1 (ko) * 2001-05-29 2003-08-02 전자부품연구원 전력선 통신을 위한 적응형 수신신호 검출장치 및 검출방법
CN100489797C (zh) * 2001-10-11 2009-05-20 阿尔特拉公司 可编程逻辑设备上的错误检测
US8892963B2 (en) * 2005-11-10 2014-11-18 Advanced Micro Devices, Inc. Error detection in high-speed asymmetric interfaces utilizing dedicated interface lines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108611A1 (en) * 2003-11-14 2005-05-19 Intel Corporation Early CRC delivery for partial frame
US20070055796A1 (en) * 2004-02-19 2007-03-08 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data

Also Published As

Publication number Publication date
GB2449348B (en) 2012-05-23
KR20080101741A (ko) 2008-11-21
TWI378467B (en) 2012-12-01
CN101325090B (zh) 2013-01-02
TW200910372A (en) 2009-03-01
GB0808759D0 (en) 2008-06-18
US7644344B2 (en) 2010-01-05
GB2449348A (en) 2008-11-19
CN101325090A (zh) 2008-12-17
US20080288848A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
KR100998412B1 (ko) 데이터 레인들로부터 순환 중복 코드 레인들을 오프셋하는것에 의한 대기 시간 개선
KR101251100B1 (ko) 별도의 순환 중복 코드 프레임들을 이용하는 효율적인 대역내 신뢰도
US7836378B2 (en) System to detect and identify errors in control information, read data and/or write data
KR101080498B1 (ko) 동일 계층 레벨에 휘발성 및 비휘발성 메모리 장치들을 구비하는 메모리 시스템 및 방법
US7821919B2 (en) Data processing apparatus and data processing method
US7287103B2 (en) Method and apparatus for generating a mask value and command for extreme data rate memories utilizing error correction codes
US7810013B2 (en) Memory device that reflects back error detection signals
US20090183051A1 (en) Memory System with Cyclic Redundancy Check
JP2008299855A (ja) エンベデッドメモリを利用したマルチチャンネルエラー訂正コーダを備えたメモリシステム及びその方法
US8132048B2 (en) Systems and methods to efficiently schedule commands at a memory controller
KR102094878B1 (ko) 반도체 메모리 장치 및 동작 방법
US9852811B2 (en) Device and method for detecting controller signal errors in flash memory
US20170033955A1 (en) Methods and apparatus to perform serial communications
JP2012512467A (ja) エラー検出方法および1つまたは複数のメモリデバイスを含むシステム
US20210042189A1 (en) Methods for error detection and correction and corresponding systems and devices for the same
KR102420641B1 (ko) 에러정정방법 및 이를 이용한 반도체장치
US8484546B2 (en) Information processing apparatus, information transmitting method, and information receiving method
US20230032989A1 (en) Serial data communication with in-frame response
US20170141878A1 (en) Systems and methods for sending data from non-volatile solid state devices before error correction

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131101

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 10