CN101896978A - 错误应答命令协议的前向纠错 - Google Patents
错误应答命令协议的前向纠错 Download PDFInfo
- Publication number
- CN101896978A CN101896978A CN200880120247.XA CN200880120247A CN101896978A CN 101896978 A CN101896978 A CN 101896978A CN 200880120247 A CN200880120247 A CN 200880120247A CN 101896978 A CN101896978 A CN 101896978A
- Authority
- CN
- China
- Prior art keywords
- memory device
- order
- replying
- integrated circuit
- parity
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明的实施例总体上涉及用于错误应答命令协议的前向纠错编码的系统、方法和装置。在一些实施例中,主机向存储器件发送命令,并且监视错误信号以确定存储器件是否无误地接收到所述命令。在一些实施例中,如果主机检测到错误,则它为错误应答命令提供前向纠错码。还描述并且声明了其它实施例。
Description
技术领域
本发明的实施例总体上涉及集成电路的领域,并且更具体地涉及用于错误应答命令协议(error acknowledge command protocol)的前向纠错的系统、方法和装置。
背景技术
存储器子系统通常包括以随着时间而必然增长的传输速率向彼此传输信息的两个或更多集成电路。例如,主机(例如,存储器控制器)可以通过命令互连向存储器件传输命令。向存储器件传输命令的可靠性特别地重要,这是因为如果有错误发生,则存储器中存储的数据会被破坏。
附图说明
在附图中,通过示例而非通过限制的方式来说明本发明的实施例,其中,相同或相似的附图标记是指相同或相似的元件。
图1是说明了根据本发明的实施例实现的计算系统的选定方面的框图。
图2是说明了根据本发明的实施例的前向纠错逻辑的选定方面的框图。
图3是说明了根据本发明的实施例实现的高性能计算系统的选定方面的框图。
图4是说明了根据本发明的实施例的用于错误应答命令的前向纠错的方法的选定方面的流程图。
具体实施方式
本发明的实施例总体上涉及用于错误应答命令协议的前向纠错的系统、方法和装置。在一些实施例中,主机向存储器件发送命令,并且监视命令错误信号以确定是否发生了传输错误。如果命令错误信号被置为有效(asserted),则主机可以实现用于错误应答命令的前向纠错协议。给定的协议比传统手段更有效,这是因为,由于主机可以假定错误应答命令是被无误地接收的,所以它可以无延迟地重新发送出错的命令。此外,主机的硬件实现可以更简单(和/或更小),因为可以使用更小的缓冲器来存储需要重发的命令。
图1是说明了根据本发明的实施例实现的计算系统的选定方面的高级别框图。在所说明的实施例中,系统100包括主机110(例如,存储器控制器)、存储器件120(例如,动态随机存取存储器件或“DRAM”)、和N比特宽命令(CMD)互连130。为了便于讨论,图1仅示出了单个主机和单个存储器件。但是,应当理解,系统100可以具有几乎任意数量的主机和/或存储器件。例如,系统100可以具有大量的主机和/或存储器件以支持高性能计算应用。在替代实施例中,系统100可以包括更多的元件、更少的元件、和/或不同的元件。
CMD互连130可以包括许多信号线以传送命令、地址等。在一些实施例中,CMD互连130是单向的。CMD互连130可以具有多种拓扑结构中的任意拓扑结构,包括点对点、多点等。
主机110控制到达和来自存储器件120的数据的传输。在一些实施例中,主机110与一个或更多处理器被集成到同一管芯上。在替代实施例中,主机110可以位于封装有一个或更多处理器的管芯上。在另外的替代实施例中,主机110是系统100的芯片组的一部分。
主机110包括核心逻辑112、输入/输出(IO)电路114、和前向纠错逻辑(FEC)116。核心逻辑112几乎可以是用于集成电路的任何核心逻辑,其包括例如用于实现一个或更多存储器控制器功能的核心逻辑。IO电路114可以包括驱动器、缓冲器、延迟锁定环路、锁相环等,以经由互连130将命令发送到存储器件120。
总起来,奇偶校验线132、CMD互连130、和CMD奇偶校验错误信号线134提供了(在某种程度上)易发生错误的高速数字接口。CMD互连130提供了单向的N比特(例如,1、2、3、……、N)宽互连以传输命令。主机110生成一个或更多奇偶校验比特以覆盖(cover)所述命令(例如,使用奇偶校验逻辑118)。可以经由线132来传输奇偶校验比特。如下文进一步讨论的,如果存储器件120检测到奇偶校验错误,则它可以在线134上将CMD奇偶校验错误信号置为有效。
在一些实施例中,存储器件120为系统100(至少部分地)提供了主系统存储器。在替代实施例中,存储器件120为系统100(至少部分地)提供了存储器高速缓存。存储器件120包括存储器阵列122、IO电路124、解码逻辑126、和奇偶校验逻辑128。IO电路124可以包括锁存器、缓冲器、延迟锁定环路、锁相环等,以从主机110接收一个或更多信号。在替代实施例中,存储器件120可以包括更多的元件、更少的元件、和/或不同的元件。
存储器件120使用奇偶校验逻辑128来确定通过互连130传输的命令是否存在奇偶校验错误。如果存储器件120检测到奇偶校验错误,则它将CMD奇偶校验错误信号置为有效。主机110监视接口以检测CMD奇偶校验错误信号(或,简单地说,错误信号)是否被置为有效。
在一些实施例中,如果主机检测到错误信号被置为有效,则当发送错误应答命令(CMD)时,它使用前向纠错协议。例如,在一些实施例中,前向纠错逻辑116用纠错码来对错误应答CMD进行编码。可以经由CMD互连130来“带内”地将已编码的错误应答CMD传输到存储器件120。
在所说明的实施例中,存储器件120包括解码逻辑126以对已编码的错误应答CMD进行解码。下文将参照图2来进一步讨论FEC逻辑116和解码逻辑126。
图2是说明了根据本发明的实施例的前向纠错逻辑的选定方面的框图。前向纠错逻辑116接收错误应答命令作为输入,并且提供用纠错码进行编码的错误应答命令作为输出。在一些实施例中,纠错码是汉明码(Hamming code)。在替代实施例中,可以使用不同的纠错码。在所说明的实施例中,错误应答是单比特,而已编码的应答是M比特(例如,2、3、4、5……M)。应当理解,用于对错误应答CMD进行编码的比特的数量将取决于实现而改变。在一些实施例中,逻辑116实现3比特汉明码。在替代实施例中,错误应答命令可以包括3个或更多比特。
解码逻辑116接收已编码的错误应答命令作为输入,并且提供已解码的错误应答命令作为输出。在一些实施例中,解码逻辑116提供与逻辑116相反的功能。例如,如果逻辑116提供3比特汉明码以对其输入进行编码,则逻辑126可以提供3比特汉明码以对其输入进行解码。
图3是说明了根据本发明的实施例实现的高性能计算系统的选定方面的框图。系统300是适合执行例如数千个teraflop(或每秒万亿次浮点运算)的高性能计算平台。系统300包括并行工作的大量处理器302。在一些实施例中,每个处理器可以包括通过易于发生错误的互连130连接的主机110和一个或更多DRAM 120。由系统300执行的大量并行操作大大增加了在互连130上发生错误的可能性。例如,在传统应用(例如,PC)中仅会在数年运转之后才可能发生的错误会在系统300中在数小时(或者数天)内发生。通过在错误应答命令上使用前向纠错而提供的增强的可靠性改善了系统300的误比特率(BER)。
图4是说明了根据本发明的实施例的用于错误应答命令的前向纠错的方法的选定方面的流程图。参照处理框402,主机(例如,图1中所示的主机110)向存储器件(例如,图1中所示的存储器件120)发送一个或更多命令。在一些实施例中,如果存储器件检测到一个或更多出错的命令,则它将命令奇偶校验错误信号(或者,简单地说,错误信号)置为有效(406、408)。
在404处,主机对接口进行监视以确定错误信号是否被置为有效。参照处理框408,存储器件检测到错误并且将错误信号置为有效。主机检测到该错误信号,并且在410处用纠错码来对错误应答命令(或者,简单地说,应答)进行编码。在一些实施例中,纠错码是汉明码。
参照处理框412,主机将已编码的应答传输到存储器件。在一些实施例中,通过命令互连来传输该应答。在替代实施例中,经由专用管脚(和信号线)来传输该应答。在另外的替代实施例中,在另一个导线上多路复用该应答。
参照处理框414,主机重发出错的命令,而不用确认存储器件接收到已编码的应答。例如,主机可以在发送已编码的应答之后,在下一时钟周期开始重发出错的命令,这是因为有理由确信已编码的应答将会到达存储器件(其中要么没有发生传输错误,要么发生的错误可以被纠正(由于纠错码的存在))。在一些情况下,因为在发送已编码的应答之后主机不需要等待,所以提高了系统的性能。
还可以将本发明的实施例的部件以用于存储机器可执行指令的机器可读介质来提供。机器可读介质可以包括但并不限于闪速存储器、光盘、光盘只读存储器(CD-ROM)、数字多用途/视频盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、传播介质或其它类型的适合于存储电子指令的机器可读介质。例如,本发明的实施例可以被作为计算机程序来下载,其可以是经由通信链路(例如,调制解调器或网络连接)通过在载波或其它传播介质中包含的数据信号从远程计算机(例如,服务器)传输到请求方计算机(例如,客户机)的。
在上述描述中,使用某些术语来描述本发明的实施例。例如,术语“逻辑”代表用于执行一个或更多功能的硬件、固件、软件(或其任意组合)。例如,“硬件”的示例包括但并不限于集成电路、有限状态机、或者甚至是组合逻辑。集成电路可以采用处理器(例如,微处理器)、专用集成电路、数字信号处理器、微控制器等的形式。
应当理解,贯穿本说明书提及的“一个实施例”或“实施例”意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。所以,需要强调并且应当理解的是,在本说明书的各个部分中两次或更多次提及的“实施例”、或“一个实施例”或“替代实施例”并非必然都是指同一实施例。此外,在本发明的一个或更多实施例中,可以适当组合特定特征、结构或特性。
类似地,应当理解,在本发明的实施例的上述描述中,出于简化本公开从而帮助理解各种发明方面中的一个或更多的目的,有时将各种特征一起组合在单个实施例、图或其说明中。但是,这种公开方式并不应当被解释为反映了以下意图:所要求保护的主题需要比在每个权利要求中明确记载的特征更多的特征。而是,如以下权利要求所反映的,各发明方面在于比单个上述公开的实施例的所有特征更少的特征。因此,跟在该详细描述后面的权利要求被特此明确地并入到该详细描述中。
Claims (20)
1.一种集成电路,包括:
核心逻辑;
输入/输出(IO)电路,其耦合到所述核心逻辑,所述IO电路通过N比特宽命令互连来向存储器件提供命令;
奇偶校验逻辑,其用于提供一个或更多奇偶校验比特以覆盖在所述N比特宽命令互连上提供的所述命令,其中,所述存储器件用于如果检测到奇偶校验错误,则提供命令奇偶校验错误信号;以及
逻辑,其用于响应于接收到所述命令奇偶校验错误信号,用纠错码来对应答进行编码并且向所述存储器件提供所述应答,其中,所述应答是用于应答所述命令奇偶校验错误信号的一个或更多比特。
2.如权利要求1所述的集成电路,其中,经由所述N比特宽命令互连将所述应答提供到所述存储器件。
3.如权利要求1所述的集成电路,其中,所述核心逻辑向所述存储器件重新发送一个或更多命令,而不用确定所述存储器件是否接收到所述应答。
4.如权利要求3所述的集成电路,其中,所述核心逻辑包括存储器控制器。
5.如权利要求4所述的集成电路,其中,所述核心逻辑还包括处理器。
6.如权利要求1所述的集成电路,其中,所述纠错码包括汉明码。
7.如权利要求1所述的集成电路,其中,所述存储器件是动态随机存取存储器件(DRAM)。
8.一种方法,包括:
经由命令互连从主机向存储器件发送一个或更多命令,其中,所述一个或更多命令中的至少一些由一个或更多奇偶校验比特来覆盖;
监视来自所述存储器件的命令奇偶校验错误信号的输入;
如果所述存储器件检测到奇偶校验错误,则从所述存储器件接收所述命令奇偶校验错误信号;
用纠错码对应答进行编码,其中,所述应答是用于应答所述命令奇偶校验错误信号的一个或更多比特;以及
向所述存储器件发送所述应答。
9.如权利要求8所述的方法,其中,用所述纠错码对所述应答进行编码包括:
用汉明码对所述应答进行编码。
10.如权利要求8所述的方法,其中,向所述存储器件发送所述应答包括:
经由所述命令互连向所述存储器件发送所述应答。
11.如权利要求8所述的方法,还包括:
向所述存储器件重新发送一个或更多命令,而不用确定所述存储器件是否接收到所述应答。
12.如权利要求8所述的方法,其中,所述主机包括存储器控制器。
13.如权利要求8所述的方法,其中,所述存储器件包括动态随机存取存储器件(DRAM)。
14.一种系统,包括:
第一集成电路,其用于从第二集成电路接收一个或更多命令;以及
所述第二集成电路,其经由N比特宽命令互连与所述第一集成电路耦合,所述第二集成电路包括,
核心逻辑;
输入/输出(IO)电路,其耦合到所述核心逻辑,所述IO电路用于通过所述N比特宽命令互连向所述第一集成电路提供所述一个或更多命令;
奇偶校验逻辑,其用于提供一个或更多奇偶校验比特以覆盖在所述N比特宽命令互连上提供的命令,其中,所述第一集成电路用于如果检测到奇偶校验错误,则提供命令奇偶校验错误信号;以及
逻辑,其用于响应于接收到所述命令奇偶校验错误信号,用纠错码对应答进行编码并且向存储器件提供所述应答,其中,所述应答是用于应答所述命令奇偶校验错误信号的一个或更多比特。
15.如权利要求14所述的系统,其中,所述第一集成电路是存储器件。
16.如权利要求15所述的系统,其中,经由所述N比特宽命令互连将所述应答提供到所述存储器件。
17.如权利要求15所述的系统,其中,所述核心逻辑向所述存储器件重新发送一个或更多命令,而不用确定所述存储器件是否无误地接收到所述应答。
18.如权利要求14所述的系统,其中,所述核心逻辑包括存储器控制器。
19.如权利要求14所述的系统,其中,所述存储器件包括动态随机存取存储器件(DRAM)。
20.如权利要求19所述的系统,其中,所述DRAM包括用于对所述应答进行解码的逻辑。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/954,776 | 2007-12-12 | ||
US11/954,776 US20090158122A1 (en) | 2007-12-12 | 2007-12-12 | Forward error correction of an error acknowledgement command protocol |
PCT/US2008/084071 WO2009076023A2 (en) | 2007-12-12 | 2008-11-19 | Forward error correction of an error acknowledgement command protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101896978A true CN101896978A (zh) | 2010-11-24 |
CN101896978B CN101896978B (zh) | 2013-03-06 |
Family
ID=40754910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880120247.XA Expired - Fee Related CN101896978B (zh) | 2007-12-12 | 2008-11-19 | 错误应答命令协议的前向纠错 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090158122A1 (zh) |
KR (1) | KR101141437B1 (zh) |
CN (1) | CN101896978B (zh) |
TW (1) | TWI398873B (zh) |
WO (1) | WO2009076023A2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862973B2 (en) * | 2009-12-09 | 2014-10-14 | Intel Corporation | Method and system for error management in a memory device |
US9158616B2 (en) | 2009-12-09 | 2015-10-13 | Intel Corporation | Method and system for error management in a memory device |
US9569308B1 (en) | 2013-07-15 | 2017-02-14 | Rambus Inc. | Reduced-overhead error detection and correction |
KR20150064452A (ko) | 2013-12-03 | 2015-06-11 | 에스케이하이닉스 주식회사 | 내장형 셀프 테스트 회로 및 이를 포함한 반도체 장치 |
US9912355B2 (en) | 2015-09-25 | 2018-03-06 | Intel Corporation | Distributed concatenated error correction |
US9979566B2 (en) * | 2016-09-27 | 2018-05-22 | Intel Corporation | Hybrid forward error correction and replay technique for low latency |
KR20210157863A (ko) | 2020-06-22 | 2021-12-29 | 에스케이하이닉스 주식회사 | 메모리, 메모리 시스템 및 메모리의 동작 방법 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4672613A (en) * | 1985-11-01 | 1987-06-09 | Cipher Data Products, Inc. | System for transferring digital data between a host device and a recording medium |
EP0813324A1 (de) * | 1996-06-13 | 1997-12-17 | Cerberus Ag | Serieller Datenbus und dessen Verwendung |
US20020184208A1 (en) * | 2001-04-24 | 2002-12-05 | Saul Kato | System and method for dynamically generating content on a portable computing device |
US7389465B2 (en) * | 2004-01-30 | 2008-06-17 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
KR100604836B1 (ko) * | 2004-02-26 | 2006-07-26 | 삼성전자주식회사 | 어드레스 버스 라인 상에 동시 양방향 입출력(sbdi/o)회로를 채용하는 메모리 시스템 |
US7203890B1 (en) * | 2004-06-16 | 2007-04-10 | Azul Systems, Inc. | Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits |
EP1657845A3 (en) * | 2004-11-10 | 2012-03-07 | Alcatel Lucent | Dynamic retransmission mode selector |
JP2006222908A (ja) * | 2005-02-14 | 2006-08-24 | Canon Inc | 再送方式 |
JP4734003B2 (ja) * | 2005-03-17 | 2011-07-27 | 富士通株式会社 | ソフトエラー訂正方法、メモリ制御装置及びメモリシステム |
JP4941954B2 (ja) * | 2005-07-25 | 2012-05-30 | ルネサスエレクトロニクス株式会社 | データエラー検出装置およびデータエラー検出方法 |
JP4547313B2 (ja) * | 2005-08-01 | 2010-09-22 | 株式会社日立製作所 | 半導体記憶装置 |
US7227797B2 (en) * | 2005-08-30 | 2007-06-05 | Hewlett-Packard Development Company, L.P. | Hierarchical memory correction system and method |
TWI420851B (zh) * | 2006-10-27 | 2013-12-21 | Lg Electronics Inc | 用於控制通道和廣播多播信號之輔助確認通道回饋 |
US7937641B2 (en) * | 2006-12-21 | 2011-05-03 | Smart Modular Technologies, Inc. | Memory modules with error detection and correction |
US20080259891A1 (en) * | 2007-04-17 | 2008-10-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Multiple packet source acknowledgement |
-
2007
- 2007-12-12 US US11/954,776 patent/US20090158122A1/en not_active Abandoned
-
2008
- 2008-11-19 CN CN200880120247.XA patent/CN101896978B/zh not_active Expired - Fee Related
- 2008-11-19 WO PCT/US2008/084071 patent/WO2009076023A2/en active Application Filing
- 2008-11-19 KR KR1020107012897A patent/KR101141437B1/ko not_active IP Right Cessation
- 2008-11-25 TW TW097145498A patent/TWI398873B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20090158122A1 (en) | 2009-06-18 |
TW200935434A (en) | 2009-08-16 |
WO2009076023A3 (en) | 2009-08-06 |
KR101141437B1 (ko) | 2012-05-04 |
WO2009076023A2 (en) | 2009-06-18 |
TWI398873B (zh) | 2013-06-11 |
CN101896978B (zh) | 2013-03-06 |
KR20100084572A (ko) | 2010-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669379B2 (en) | Controller that receives a cyclic redundancy check (CRC) code for both read and write data transmitted via bidirectional data link | |
CN101896978B (zh) | 错误应答命令协议的前向纠错 | |
EP2297641B1 (en) | Efficient in-band reliability with separate cyclic redundancy code frames | |
US7644347B2 (en) | Silent data corruption mitigation using error correction code with embedded signaling fault detection | |
US7810013B2 (en) | Memory device that reflects back error detection signals | |
US20040117722A1 (en) | Performance of communication systems using forward error correction | |
CN105474190A (zh) | 包括不兼容的存储器技术或与不兼容的存储器技术接合的存储器模块的应答控制 | |
CN101325090A (zh) | 通过使循环冗余码线路相对于数据线路偏移改善等待时间 | |
US7461321B2 (en) | Error detection | |
US7436777B2 (en) | Failed link training | |
US9571231B2 (en) | In-band status encoding and decoding using error correction symbols | |
US20050160328A1 (en) | Corrupt data | |
US20050152386A1 (en) | Successful transactions | |
US7613958B2 (en) | Error detection in a system having coupled channels | |
US20050152268A1 (en) | Link failures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 Termination date: 20151119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |