首页 / 纠错装置和纠错方法

纠错装置和纠错方法公开 发明

技术领域

[0002] 发明构思涉及纠错装置,并且更具体地,涉及被配置为针对剩余错误执行纠错的纠错装置。

相关背景技术

[0003] 包括在电子装置中的诸如存储器装置、处理器和显示器的装置可彼此发送数据。由于技术的发展导致的通信速率和数据发送量的增加可能导致在数据中包括的比特上发生的错误的数量的增加。诸如纠错码(ECC)的代码可用于纠正数据中的这样的错误。当错误未通过这样的纠错方法纠正时,已经接收到数据的装置可请求数据重传。数据重传的性能花费比纠错的时间段相对长的时间段,并且因此电子装置中的通道宽带宽度减小。因此,存在对开发更安全地纠正数据中的错误的方法的需求。

具体实施方式

[0020] 在下文中,将参照附图详细描述发明构思的实施例。相同的参考标号始终表示相同的元件。
[0021] 图1是根据示例实施例的电子装置10的框图。
[0022] 参照图1,根据实施例的电子装置10可包括第一装置100、第二装置200和通道300。
[0023] 在实施例中,电子装置10可包括智能电话、平板计算机、智能TV、移动电话、个人数字助理(PDA)、膝上型计算机、媒体播放器、微服务器、全球定位系统(GPS)装置、电子书终端、数字广播终端、导航装置、自主服务终端(kiosks)、MP3播放器、数码相机、家用电器和其他移动或非移动计算装置中的任何一个,但是发明构思不限于此。另外,电子装置10可包括具有数据处理功能的可穿戴装置(诸如,手表、眼镜、发带和戒指),但是发明构思不限于此,并且电子装置10可包括使用处理器基于操作系统(OS)操作的任何类型的装置。
[0024] 第一装置100和第二装置200可包括通常包括在电子装置10中的装置中的任何一个,诸如,包括在电子装置10中的中央处理器(CPU)、图形处理器(GPU)、应用处理器(AP)、动态随机存取存储器(DRAM)、非易失性存储器装置、存储器控制器、显示器等。
[0025] 第一装置100可对发送数据进行编码,并且可通过通道300将发送数据发送到第二装置200。因此,第一装置100可被称为发送装置。
[0026] 作为将由第一装置100发送到第二装置200的数据的发送数据可包括多个符号。在一个实施例中,符号可包括使用脉冲幅度调制4(PAM4)方法调制的符号,并且例如,符号可包括一个字节。
[0027] 第一装置100可包括循环冗余校验(CRC)编码器110和纠错码(ECC)编码器120。
[0028] CRC编码器110可通过生成与发送数据对应的CRC符号生成CRC码字。
[0029] 更具体地,CRC编码器110可通过针对发送数据执行CRC编码操作生成CRC符号。CRC编码器110可通过将已经生成的CRC符号与发送数据进行组合生成CRC码字。
[0030] 在实施例中,CRC编码器110可使用通过将发送数据除以CRC生成码而获得的结果的余数生成CRC码字。
[0031] ECC编码器120可通过生成分别与CRC码字对应的ECC符号来生成多个ECC码字。
[0032] 更具体地,ECC编码器120可将CRC码字解交织为多个码字。ECC编码器120可通过针对对CRC码字解交织而生成的多个码字中的每个执行ECC编码操作,来生成多个ECC符号。ECC编码器120可通过将多个ECC符号与通过使CRC码字解交织而生成的多个码字分别组合,来生成多个ECC码字。
[0033] 在实施例中,ECC编码器120可使用里德所罗门代码(Reed Solomon code)执行ECC编码运算。例如,ECC编码器120可使用下面的等式1执行ECC编码运算。
[0034] 【等式1】
[0035]
[0036] 在上面的等式1中,α是在伽罗瓦域(GF)28空间中定义的元素,n是包括在将被编码的码字中的符号的数量,矩阵B是具有包括在将被编码的码字中的符号作为分量的n×1矩阵,并且P和C是作为左侧运算的结果而生成的符号,可均被用作多个ECC符号。通过ECC编码,ECC编码器120可生成包括矩阵B中的分量以及矩阵P和矩阵C作为符号的ECC码字。
[0037] 当使用里德所罗门代码时,第二装置200可对任意位置处的符号发生的错误进行纠正。另外,当使用里德所罗门代码时,第二装置200可对特定位置处的两个符号发生的错误进行纠正。
[0038] 尽管图1中未示出,但是第一装置100可包括发送器。发送器可通过通道300将由ECC编码器120生成的多个ECC码字发送到第二装置200。
[0039] 通道300可用作第一装置100与第二装置200之间的数据发送路径。通道300可将从第一装置100发送的多个ECC码字传送到第二装置200。例如,通道300可以是物理发送介质,数据或信息信号可通过该物理发送介质由一个或多个发送器(例如,第一装置100)发送并且由一个或多个接收器(例如,第二装置200)接收。物理发送介质可包括例如电缆路径(例如,电线、电缆、光纤等)或广播路径(例如,无线电、卫星、微波、红外等)。
[0040] 通道300可包括一个或多个线路。从第一装置100发送的多个ECC码字可通过一个或多个线路发送到第二装置200。第一装置100可对多个ECC码字进行交织以对应于包括在通道300中的线路的数量,并将多个ECC码字输出到一个或多个线路。
[0041] 当多个ECC码字通过通道300从第一装置100发送到第二装置200时,一些数据可能发生错误。例如,这样的错误可被称为发送错误或通道错误。
[0042] 第二装置200可通过对由通道300从第一装置100接收到的多个ECC码字进行编码,来恢复发送数据。因此,第二装置200可被称为接收装置。
[0043] 第二装置200可包括ECC解码器210、CRC校验器220、回读(post)ECC解码器230和回读CRC校验器240。
[0044] ECC解码器210可通过针对多个ECC码字执行纠错,来生成第一CRC码字。ECC解码器210可通过针对多个ECC码字中的每个执行纠错,来生成多个回读ECC码字。ECC解码器210可通过使多个回读ECC码字交织来生成第一CRC码字。
[0045] CRC校验器220可确定第一CRC码字中是否存在错误。CRC校验器220可针对第一CRC码字执行CRC校验,以确定第一CRC码字中是否存在错误。
[0046] 当确定第一CRC码字中存在错误时,回读ECC解码器230可基于纠错结果信息针对多个回读ECC码字执行纠错。
[0047] 当确定第一CRC码字中存在错误时,回读ECC解码器230可基于从ECC解码器210接收到的纠错结果信息估计剩余错误位置。另外,回读ECC解码器230可通过基于剩余错误位置针对多个回读ECC码字执行剩余纠错,来生成第二CRC码字。这里,剩余错误指示尽管由ECC解码器210进行纠错也包括在多个回读ECC码字中的错误,并且剩余错误位置可表示多个回读ECC码字中存在剩余错误的符号的位置。
[0048] 回读CRC校验器240可确定第二CRC码字中是否存在错误。回读CRC校验器240可针对第二CRC码字执行CRC校验,以确定第二CRC码字中是否存在错误。
[0049] 可参照图2进一步描述第二装置200的构造和操作。
[0050] 图2是根据发明构思的示例实施例的第二装置200的框图。
[0051] 参照图2,根据发明构思的示例实施例的第二装置200可包括接收器205、ECC解码器210、CRC校验器220和回读ECC解码器230。另外,根据发明构思的示例实施例的第二装置200还可包括交织器235、回读CRC校验器240和选择电路250。
[0052] 接收器205可通过包括一个或多个线路的通道300接收从外部装置(例如,图1中所示出的的第一装置100)发送的多个ECC码字。
[0053] 接收器205可从外部装置接收多个ECC码字。多个ECC码字可由外部装置交织并通过一个或多个线路发送到接收器205。参照图3进一步描述通过接收器205接收到的多个ECC码字的示例;并且参照图4进一步描述多个ECC码字被交织到一个或多个线路的示例。
[0054] 图3是根据发明构思的示例实施例的由装置接收到的多个ECC码字的示例的示图。
[0055] 参照图3,可看到多个ECC码字的示例。在发明构思的实施例中,多个ECC码字可包括第一ECC码字、第二ECC码字和第三ECC码字。
[0056] 在发明构思的实施例中,第一ECC码字、第二ECC码字和第三ECC码字可均包括多个事务层包(TLP)符号、多个数据链路包(DLP)符号、多个CRC符号和多个ECC符号。
[0057] 在发明构思的实施例中,多个TLP符号可包括每个符号1字节的二百三十六个符号,并且可按顺序被称为TLP 0、TLP 1、TLP 2、……、和TLP 235。多个DLP符号可包括每个符号1字节的六个符号,并且可按顺序被称为DLP 0、DLP 1、DLP 2、……、和DLP 5。在发明构思的实施例中,多个CRC符号可包括每个符号1字节的8个符号,并且可按顺序被称为CRC 0、CRC 1、CRC 2、……、和CRC 7。多个ECC符号可包括每个符号1字节的六个符号,并且可被称为ECC 0A、ECC 0B、ECC 0C、ECC 1A、ECC 1B和ECC 1C。
[0058] 在实施例中,第一ECC码字可包括被称为TLP 0、TLP 3、TLP 6、……、和TLP 234的多个TLP符号。第二ECC码字可包括被称为TLP 1、TLP 4、TLP 7、……、和TLP 235的多个TLP符号。第三ECC码字可包括被称为TLP 2、TLP 5、TLP 8、……、和TLP 233的多个TLP符号。
[0059] 在实施例中,第一ECC码字可包括被称为DLP 1和DLP 4的多个DLP符号。第二ECC码字可包括被称为DLP 2和DLP 5的多个DLP符号。第三ECC码字可包括被称为DLP 0和DLP 3的多个DLP符号。
[0060] 在一个实施例中,第一ECC码字可包括被称为CRC 1、CRC 4和CRC 7的多个CRC符号。第二ECC码字可包括被称为CRC 2和CRC 5的多个CRC符号。第三ECC码字可包括被称为CRC 0、CRC 3和CRC 6的多个CRC符号。
[0061] 这里,当CRC码字由图1中所示出的ECC编码器120解交织时,多个TLP符号、多个DLP符号和多个CRC符号可交叉插入多个ECC码字中。
[0062] 在发明构思的实施例中,第一ECC码字可包括被称为ECC 0C和ECC 1C的多个ECC符号。第二ECC码字可包括被称为ECC 0A和ECC 1A的多个ECC符号。第三ECC码字可包括被称为ECC 0B和ECC 1B的多个ECC符号。
[0063] 这里,多个ECC符号作为针对由图1中所示出的ECC编码器120对CRC码字进行解交织而生成的多个码字的ECC编码操作的结果被生成。因此,由相同ECC编码操作生成的多个ECC符号可插入相同的ECC码字中。
[0064] 上述多个ECC码字可由外部装置交织,并通过一个或多个线路发送到接收器205。可参照图4进一步描述其细节。
[0065] 图4是根据示例实施例的由装置接收到的多个ECC码字被交织到多个线路的示例的示图。
[0066] 参照图4,表指示包括在多个ECC码字中的符号被交织到第一线路至第四线路的方法。尽管图4示出了多个ECC码字被交织到四个线路,但是实施例不限于此,并且多个ECC码字可根据包括在通道300中的线路的数量以与稍后描述的方法类似的方法交织。
[0067] 在实施例中,多个ECC码字可被交织到第一线路至第四线路,使得包括在相同ECC码字中的符号不通过邻近线路同时发送。另外,多个ECC码字可以以包括在相同ECC码字中的符号不通过同一线路连续发送的方案交织到第一线路至第四线路。
[0068] 例如,包括在第一ECC码字中的TLP 0符号可通过第一线路发送。同时,包括在第二ECC码字中的TLP 1符号可通过第二线路发送,包括在第三ECC码字中的TLP 2符号可通过第三线路发送,并且包括在第一ECC码字中的TLP 3符号可通过第四线路发送。这里,包括在不同ECC码字中的符号可通过邻近线路发送。
[0069] 接下来,包括在第二ECC码字中的TLP 4符号可通过第一线路发送。同时,包括在第三ECC码字中的TLP 5符号可通过第二线路发送,包括在第一ECC码字中的TLP 6符号可通过第三线路发送,并且包括在第二ECC码字中的TLP 7符号可通过第四线路发送。这里,包括在不同ECC码字中的符号可通过邻近线路发送,并且包括在相同ECC码字中的符号不可通过同一线路连续地发送。
[0070] 根据上述方法,TLP 8符号至TLP 235符号可通过第一线路至第四线路发送,并且多个DLP符号、多个CRC符号和多个ECC符号可通过第一线路至第四线路发送。
[0071] 再次参照图2,接收器205可对通过一个或多个线路接收到的多个ECC码字进行解交织,并将解交织的ECC码字发送到ECC解码器210。如图4的实施例中所示出的,接收器205可对已经交织和发送的多个ECC码字进行解交织,并且可将如图3的实施例中所示出的解交织的ECC码字发送到ECC解码器210。然而,实施例不限于此,并且不同于上述实施例,多个ECC码字可由稍后描述的ECC解码器210解交织。
[0072] ECC解码器210可通过针对多个ECC码字执行纠错生成第一CRC码字。
[0073] ECC解码器210可从接收器205接收已解交织的多个ECC码字。ECC解码器210可针对多个ECC码字中的每个执行ECC解码操作,从而对多个ECC码字中的每个中的错误进行纠正并生成多个回读ECC码字。
[0074] 在实施例中,ECC解码器210可使用里德所罗门代码执行ECC解码操作。例如,ECC解码器210可通过使用多个ECC码字中的每个执行如等式1中的运算来执行ECC解码操作。ECC解码器210可通过对ECC码字的分量进行纠正以满足等式1,来对多个ECC码字中的每个中的错误进行纠正。
[0075] 根据该方法,ECC解码器210可针对多个ECC码字中的每个对任意位置处的符号发生的错误进行纠正。例如,ECC解码器210可对包括在第一ECC码字中的符号中的任何一个发生的错误、包括在第二ECC码字中的符号中的任何一个发生的错误和/或包括在第三ECC码字中的符号中的任何一个发生的错误进行纠正。
[0076] 在实施例中,ECC解码器210可包括第一ECC解码器211、第二ECC解码器212和第三ECC解码器213。第一ECC解码器211可针对第一ECC码字执行ECC解码操作,从而对第一ECC码字中的错误进行纠正并生成第一回读ECC码字。第二ECC解码器212可针对第二ECC码字执行ECC解码操作,从而对第二ECC码字中的错误进行纠正并生成第二回读ECC码字。第三ECC解码器213可针对第三ECC码字执行ECC解码操作,从而对第三ECC码字中的错误进行纠正并生成第三回读ECC码字。
[0077] 在发明构思的实施例中,ECC解码器210可包括交织器214。交织器214可通过对多个回读ECC码字进行交织来生成第一CRC码字。ECC解码器210可通过对多个回读ECC码字之中除了多个ECC符号之外的符号进行交织来生成第一CRC码字。第一CRC码字可包括多个TLP符号、多个DLP符号和多个CRC符号。第一CRC码字可以与由图1中所示出的CRC编码器110生成的CRC码字相同;然而,当第一CRC码字包括错误时,第一CRC码字可以与由图1中所示出的CRC编码器110生成的CRC码字不同。
[0078] 尽管图2示出了交织器214包括在ECC解码器210中的实施例,但是实施例不限于此,并且交织器214可单独地设置在ECC解码器210外部,或者可被包括在稍后描述的CRC校验器220中。
[0079] ECC解码器210可针对多个ECC码字中的每个执行纠错,并且可生成纠错结果信息。
[0080] 纠错结果信息可指示纠错事项和纠错位置,纠错事项指示包括在多个ECC码字中的每个中的错误是否已经被纠正,纠错位置指示多个ECC码字之中的已经经历纠错的ECC码字中的其错误已经被纠正的符号的位置。纠错结果信息可用于由稍后将被描述的回读ECC解码器230执行纠错。纠错事项可以是指示包括在多个ECC码字中的每个中的错误是否已经被纠正的数据或信息。
[0081] CRC校验器220可确定第一CRC码字中是否存在错误。CRC校验器220可基于第一CRC码字和CRC生成代码执行CRC校验操作,并且可确定是否存在错误。
[0082] 在实施例中,CRC校验器220可基于通过将第一CRC码字除以由图1中所示出的CRC编码器110使用的CRC生成代码而获得的结果的余数是否为零来确定第一CRC码字中是否存在错误。当通过将第一CRC码字除以CRC生成代码而获得的结果的余数为零时,CRC校验器220可确定在第一CRC码字中不存在错误。相反,当通过将第一CRC码字除以CRC生成代码而获得的结果的余数不为零时,CRC校验器220可确定第一CRC码字中存在错误。
[0083] CRC校验器220可将通过从第一CRC码字去除多个CRC符号而获得的第一恢复数据输出到稍后将被描述的选择电路250。另外,当确定第一CRC码字中存在错误时,CRC校验器220可将通知第一CRC码字中存在错误的信号发送到回读ECC解码器230。
[0084] 回读ECC解码器230可从CRC校验器220接收指示第一CRC码字中是否存在错误的信号。另外,回读ECC解码器230可从ECC解码器210接收已经经历纠错的多个ECC码字和纠错结果信息。
[0085] 当基于从CRC校验器220接收到的信号确定第一CRC码字中存在错误时,回读ECC解码器230可基于从ECC解码器210接收到的纠错结果信息估计剩余错误位置。另外,回读ECC解码器230可基于剩余错误位置针对多个回读ECC码字执行剩余纠错。如上所述,根据实施例,ECC解码器210可针对多个ECC码字执行纠错,并且回读ECC解码器230可针对多个回读ECC码字执行剩余纠错。
[0086] 回读ECC解码器230可包括ECC码字选择器231、剩余错误位置估计器232和擦除解码器233。
[0087] ECC码字选择器231可基于包括在从ECC解码器210接收到的纠错结果信息中的纠错事项从多个回读ECC码字之中选择纠正目标ECC码字。
[0088] 更具体地,基于纠错事项,ECC码字选择器231可从多个回读ECC码字之中选择其错误尚未被纠正的ECC码字作为纠正目标ECC码字。例如,当第二ECC码字和第三ECC码字中的错误由ECC解码器210纠正并且第一ECC码字中的错误未被纠正时,ECC码字选择器231可选择第一ECC码字作为纠正目标ECC码字。
[0089] 剩余错误位置估计器232可基于包括在从ECC解码器210接收到的纠错结果信息中的纠错位置来估计纠正目标ECC码字中的剩余错误位置。
[0090] 剩余错误位置估计器232可估计与纠错位置对应的错误模式。在实施例中,错误模式可包括突发错误模式、第一串扰错误模式和第二串扰错误模式。突发错误模式可指示通过同一线路连续发送的符号发生错误的错误模式。第一串扰错误模式可指示通过不同线路在不同时间点分别发送的符号发生错误的错误模式。第二串扰错误模式可指示通过不同线路在相同时间点发送的符号发生错误的错误模式。
[0091] 剩余错误位置估计器232可基于错误模式估计剩余错误位置。稍后参照图5至图7描述由剩余错误位置估计器232基于错误模式的类型估计剩余错误位置的方法。
[0092] 擦除解码器233可通过基于剩余错误位置针对多个回读ECC码字执行剩余纠错来生成第二CRC码字。这里,擦除解码器233可通过基于剩余错误位置针对多个回读ECC码字之中的纠正目标ECC码字执行剩余纠错来生成第二CRC码字。
[0093] 在实施例中,擦除解码器233可使用里德所罗门代码执行ECC解码操作。例如,擦除解码器233可使用下面的等式2和等式3执行ECC解码操作。
[0094] 【等式2】
[0095]
[0096] 【等式3】
[0097]
[0098] 在等式2和等式3中,α可指示在GF 28空间中定义的元素,n是包括在将被解码的码字中的符号的数量,d1至dn指示包括在ECC码字中的多个TLP符号、多个DLP符号和多个CRC符e e号,P和C是作为通过计算等式的左侧获得的结果而生成的符号,P和C指示包括在ECC码字中的多个ECC符号,并且dn‑1'和dm‑1'可包括已经经历剩余纠错的符号。
[0099] 更具体地,擦除解码器233可使用等式2首先计算Pe和Ce。这里,在等式2中,与d1至dn(等式2中的dn‑1和dm‑1)之中的剩余错误位置对应的符号可被设置为零。
[0100] 另外,擦除解码器233可通过使用在等式2中计算的Pe和Ce搜索满足等式3的dn‑1'和dm‑1'并将纠正目标ECC码字的dn‑1和dm‑1纠正为dn‑1'和dm‑1',来对纠正目标码字的剩余错误进行纠正。如上所述,擦除解码器233可对特定位置处的两个符号发生的剩余错误进行纠正。
[0101] 如上所述,擦除解码器233可通过对纠正目标ECC码字进行纠正并且对其剩余错误已经被纠正的多个回读ECC码字进行交织,来生成第二CRC码字。然而,与实施例不同,当第二装置200包括如图2中所示出的实施例中的交织器235时,擦除解码器233可通过将其剩余错误已被纠正的多个回读ECC码字发送到交织器235来生成第二CRC码字,并且可通过交织器235对多个回读ECC码字进行交织。
[0102] 回读CRC校验器240可确定第二CRC码字中是否存在错误。回读CRC校验器240可使用由CRC校验器220执行的方法相同方法确定第二CRC码字中存在错误。
[0103] 回读CRC校验器240可将通过从第二CRC码字去除多个CRC符号而获得的第二恢复数据输出到稍后将被描述的选择电路250。另外,当确定第二CRC码字中存在错误时,回读CRC校验器240可将重传请求发送到外部装置。例如,当即使回读ECC解码器230未全部纠正多个ECC码字中的错误时,针对多个ECC码字的重传请求可被发送到外部装置。
[0104] 选择电路250可基于由CRC校验器220和回读CRC校验器240确定的结果来选择并输出基于第一CRC码字生成的第一恢复数据和基于第二CRC码字生成的第二恢复数据中的一个。例如,当通过CRC校验器220确定不存在错误时,选择电路250可选择并输出第一恢复数据。另外,当通过CRC校验器220确定存在错误并且通过回读CRC校验器240确定不存在错误时,选择电路250可选择并输出第二恢复数据。
[0105] 使用根据实施例的前述装置,即使当确定在第一CRC码字中存在错误时,也不请求重传,并且基于纠错结果信息而执行剩余纠错,因此,可更安全地纠正数据发生的错误。另外,执行剩余纠错以更安全地纠正错误而不发送重传请求,并且通过这样做,可降低数据重传率,并且可防止由于数据重传导致的通道宽带宽度的减小。
[0106] 图5是用于描述根据示例实施例的在由装置接收到的数据发生突发错误模式的错误时估计剩余错误位置的方法的示图。
[0107] 参照图2和图5,可在图5的上部分看到指示第一ECC码字至第三ECC码字被交织到第一线路至第四线路的表,并且可在图5的下部分看到指示第一ECC码字至第三ECC码字被解交织的表。
[0108] 如由图5的上部分中的表中的虚线所示出的,可看出图5中所示出的实施例是通过第一线路发送的TLP 0符号、TLP 4符号、TLP 8符号和TLP 12符号发生突发错误模式的错误的实施例。如上所述,当在多个ECC码字中发生错误时,第一ECC码字可包括TLP 0符号和TLP 12符号中的错误,第二ECC码字可包括TLP 4符号中的错误,并且第三ECC码字可包括TLP 8符号中的错误。
[0109] 这里,ECC解码器210可对任意位置处的符号发生的错误进行纠正,并且因此,可对第二ECC码字的TLP 4符号发生的错误和第三ECC码字的TLP 8符号发生的错误进行纠正。然而,ECC解码器210可能无法对第一ECC码字的TLP 0符号和TLP 12符号中发生的错误进行纠正。如上所述,当错误由ECC解码器210纠正时,CRC校验器220确定错误存在于第一CRC码字中,并且剩余纠错可由回读ECC解码器230执行。
[0110] 回读ECC解码器230可基于从ECC解码器210接收到的纠错结果信息执行剩余纠错。
[0111] 回读ECC解码器230的ECC码字选择器231可选择尚未经历纠错的第一回读ECC码字作为纠正目标ECC码字。
[0112] 接下来,回读ECC解码器230的剩余错误位置估计器232可基于纠错位置估计错误模式。剩余错误位置估计器232可检查出纠错位置包括第二ECC码字的TLP 4符号和第三ECC码字的TLP 8符号,可检查出通过同一线路连续发送的符号发生错误,并且可估计错误模式包括突发错误模式。
[0113] 另外,剩余错误位置估计器232可估计纠正目标ECC码字中的剩余错误位置,并且基于估计的剩余错误位置将错误模式估计为突发错误模式。这里,剩余错误位置估计器232可估计在与第二ECC码字的TLP 4符号和第三ECC码字的TLP 8符号被发送的时间点邻近的时间点发送并且与包括在第一回读ECC码字中的TLP 0符号和TLP 12符号对应的位置作为剩余错误位置。
[0114] 擦除解码器233可通过针对与纠正目标ECC码字的剩余错误位置对应的第一回读ECC码字的TLP 0符号和TLP 12符号执行剩余纠错来生成第二CRC码字。可对特定位置处的两个符号发生的错误进行纠正的擦除解码器233可成功地完成针对第一回读ECC码字的TLP 0符号和TLP 12符号的剩余纠错。
[0115] 如上所述,通过使用根据实施例的第二装置200,可纠正四个连续符号发生的突发错误模式的错误,并且因此,可更安全地纠正错误,并且如此,可降低数据重传率,并且可防止由于数据重传而导致的通道宽带宽度的减小。
[0116] 图6是用于描述根据发明构思的示例实施例的在由装置接收到的数据发生第一串扰模式的错误时估计剩余错误位置的方法的示图。
[0117] 参照图2和图6,可在图6的上部分看到指示第一ECC码字至第三ECC码字被交织到第一线路至第四线路的表,并且可在图6的下部分看到指示第一ECC码字至第三ECC码字被解交织的表。
[0118] 如图6的上部分的表中使用虚线标记的,可看出图6中所示出的实施例是通过第二线路和第三线路发送的TLP 9符号、TLP 10符号、TLP 13符号和TLP 14符号发生第一串扰错误模式的错误的实施例。如上所述,当多个ECC码字发生错误时,第一ECC码字可包括TLP 9符号中的错误,第二ECC码字可包括TLP 10符号和TLP 13符号中的错误,并且第三ECC码字可包括TLP 14符号中的错误。
[0119] 这里,可对任意位置处的符号发生的错误进行纠正的ECC解码器210可对第一ECC码字的TLP 9符号发生的错误和第三ECC码字的TLP 14符号中发生的错误进行纠正。然而,ECC解码器210可能无法对第二ECC码字的TLP 10符号和TLP 13符号发生的错误进行纠正。如上所述,错误由ECC解码器210纠正,并且CRC校验器220确定错误存在于第二CRC码字中,因此,剩余纠错可由回读ECC解码器230执行。
[0120] 回读ECC解码器230可基于从ECC解码器210接收到的纠错结果信息执行剩余纠错。
[0121] 回读ECC解码器230的ECC码字选择器231可选择尚未经历纠错的第二回读ECC码字作为纠正目标ECC码字。
[0122] 接下来,回读ECC解码器230的剩余错误位置估计器232可基于纠错位置估计错误模式。剩余错误位置估计器232可检查出纠错位置包括第一ECC码字的TLP 9符号和第三ECC码字的TLP 14符号,可检查出通过不同线路在不同时间点连续发送的符号发生错误,并且可估计错误模式包括第一串扰错误模式。
[0123] 另外,剩余错误位置估计器232可估计纠正目标ECC码字中的剩余错误位置,并且基于估计的剩余错误位置将错误模式估计为第一串扰错误模式。这里,剩余错误位置估计器232可估计通过与第一ECC码字的TLP 9符号和第三ECC码字的TLP 14符号被发送的线路邻近的线路发送并且与包括在第二回读ECC码字中的TLP 10符号和TLP 13符号对应的位置作为剩余错误位置。
[0124] 擦除解码器233可通过针对与纠正目标ECC码字的剩余错误位置对应的第二回读ECC码字的TLP 10符号和TLP 13符号执行剩余纠错,来生成第二CRC码字。可纠正在特定位置处的两个符号发生的错误的擦除解码器233可成功地完成针对第二回读ECC码字的TLP 10符号和TLP 13符号的剩余纠错。
[0125] 如上所述,通过使用根据实施例的装置,通过两个邻近线路连续发送的四个符号发生的第一串扰错误模式的错误可被纠正,并且数据发生的错误可被更安全地纠正。如此,可降低数据重传速率,并且可防止由于数据重传而导致的通道宽带宽度的减小。
[0126] 图7是用于描述根据示例实施例的在由装置接收到的数据发生第二串扰模式的错误时估计剩余错误位置的方法的示图。
[0127] 参照图2和图7,可在图7的上部分看到指示第一ECC码字至第三ECC码字被交织到第一线路至第四线路的表,并且可在图7的下部分看到指示第一ECC码字至第三ECC码字被解交织的表。
[0128] 如图7的上部分中的表中使用虚线标记的,可看出图7中所示出的实施例是通过第一线路至第四线路发送的TLP 0符号、TLP 1符号、TLP 2符号和TLP 3符号发生第二串扰错误模式的错误的实施例。如上所述,当多个ECC码字发生错误时,第一ECC码字可包括TLP 0符号和TLP 3符号中的错误,第二ECC码字可包括TLP 1符号中的错误,并且第三ECC码字可包括TLP 2符号中的错误。
[0129] 这里,ECC解码器210可对任意位置处的符号发生的错误进行纠正,并且因此,可对第二ECC码字的TLP 1符号发生的错误和第三ECC码字的TLP 2符号发生的错误进行纠正。然而,ECC解码器210可能无法对第一ECC码字的TLP 0符号和TLP 3符号发生的错误进行纠正。如上所述,错误由ECC解码器210纠正,并且CRC校验器220确定错误存在于第二CRC码字中,因此,剩余纠错可由回读ECC解码器230执行。
[0130] 回读ECC解码器230可基于从ECC解码器210接收到的纠错结果信息执行剩余纠错。
[0131] 回读ECC解码器230的ECC码字选择器231可选择尚未经历纠错的第一回读ECC码字作为纠正目标ECC码字。
[0132] 接下来,回读ECC解码器230的剩余错误位置估计器232可基于纠错位置估计错误模式。剩余错误位置估计器232可检查出纠错位置包括第二ECC码字的TLP 1符号和第三ECC码字的TLP 2符号,可检查出通过不同线路在相同时间点同时发送的符号发生错误,并且可估计错误模式包括第二串扰错误模式。
[0133] 另外,剩余错误位置估计器232可估计纠正目标ECC码字中的剩余错误位置,并且基于估计的剩余错误位置,将错误模式估计为第二串扰错误模式。这里,剩余错误位置估计器232可估计通过与第二ECC码字的TLP 1符号和第三ECC码字的TLP 2符号被发送的线路邻近的线路发送并且与包括在第一回读ECC码字中的TLP 0符号和TLP 3符号对应的位置作为剩余错误位置。
[0134] 擦除解码器233可通过针对与纠正目标ECC码字的剩余错误位置对应的第一回读ECC码字的TLP 0符号和TLP 3符号执行剩余纠错来生成第二CRC码字。可对特定位置处的两个符号发生的错误进行纠正的擦除解码器233可成功地完成针对第一回读ECC码字的TLP 0符号和TLP 3符号的剩余纠错。
[0135] 如上所述,通过使用根据实施例的装置,可纠正通过四个邻近线路发送的四个符号发生的第二串扰错误模式的错误,并且可更安全地纠正数据发生的错误。通如此,可降低数据重传率,并且可防止由于数据重传而导致的通道宽带宽度的减小。
[0136] 图8是根据示例实施例的方法的流程图。
[0137] 参照图8,根据实施例的方法可包括由图2中所示出的第二装置200以时间序列执行的操作。
[0138] 在操作S810中,接收器205可接收多个ECC码字。接收器205可通过包括一个或多个线路的通道300接收从外部装置发送的多个ECC码字。
[0139] 在操作S820中,ECC解码器210可生成第一CRC码字。ECC解码器210可针对多个ECC码字中的每个执行ECC解码操作,从而对多个ECC码字中的每个中的错误进行纠正,生成多个回读ECC码字,并且可基于多个回读ECC码字生成第一CRC码字。
[0140] 在操作S830中,CRC校验器220可确定第一CRC码字中是否存在错误。CRC校验器220可通过基于第一CRC码字和CRC生成代码执行运算,来确定是否存在错误。
[0141] 当CRC校验器220确定第一CRC码字中不存在错误时,可结束所述方法。
[0142] 在可选项中,当CRC校验器220确定第一CRC码字中存在错误时,可执行操作S840。
[0143] 在操作S840中,回读ECC解码器230可估计剩余错误位置。可参照图9进一步详细描述由回读ECC解码器230估计剩余错误位置的方法。
[0144] 图9是用于进一步描述根据示例实施例的方法中的估计剩余错误位置的方法的流程图。
[0145] 参照图9,根据实施例的方法可包括由图2中所示出的第二装置200以时间序列执行的操作。
[0146] 在操作S910中,回读ECC解码器230可选择纠正目标ECC码字。基于包括在纠错结果信息中的纠错事项,回读ECC解码器230可从多个回读ECC码字之中选择其错误尚未被纠正的ECC码字作为纠正目标ECC码字。
[0147] 在操作S920中,回读ECC解码器230可估计错误模式。回读ECC解码器230可基于包括在纠错结果信息中的剩余错误位置估计纠正目标ECC码字中发生的错误的错误模式。
[0148] 在操作S930中,回读ECC解码器230可估计剩余错误位置。回读ECC解码器230可基于上面估计的错误模式估计剩余错误位置。基于错误模式估计剩余错误位置的方法可与参照图5至图7详细描述的方法相同。
[0149] 再次参照图8,在操作S850中,ECC回读解码器230可生成第二CRC码字。回读ECC解码器230可针对纠正目标ECC码字执行ECC解码操作,从而对纠正目标ECC码字中的错误进行纠正并生成第二CRC码字。
[0150] 在操作S860中,回读CRC校验器240可确定第二CRC码字中是否存在错误。回读CRC校验器240可通过基于第二CRC码字和CRC生成代码执行运算,来确定是否存在错误。
[0151] 当回读CRC校验器240确定第二CRC码字中不存在错误时,可结束所述方法。
[0152] 在可选项中,当回读CRC校验器240确定第二CRC码字中存在错误时,可执行操作S870。
[0153] 在操作S870中,回读CRC校验器240可将重传请求发送到外部装置。当即使回读ECC解码器230未全部纠正多个ECC码字中的错误时,回读CRC校验器240也可将针对多个ECC码字的重传请求发送到外部装置。
[0154] 使用根据实施例的方法,即使当确定第一CRC码字中存在错误时,也不请求重传,而基于剩余纠错结果信息执行剩余纠错,因此,可更安全地纠正数据中发生的错误。另外,执行剩余纠错以更安全地纠正错误而不发送重传请求,并且通过这样做,可降低数据重传率,并且可防止由于数据重传而导致的通道宽带宽度的减小。
[0155] 图10是根据发明构思的示例实施例的装置的框图。
[0156] 参照图10,根据示例实施例的第二装置400可包括接收器405、ECC解码器410和CRC校验器420。
[0157] 这里,接收器405的操作可与图2中所示出的接收器205的操作基本相同,并且参照图2描述的细节也可被应用于本实施例。
[0158] ECC解码器410可包括第一ECC解码器411、第二ECC解码器412、第三ECC解码器413和交织器414。
[0159] 这里,第一ECC解码器411、第二ECC解码器412、第三ECC解码器413和交织器414的操作可与图2中所示出的第一ECC解码器211、第二ECC解码器212、第三ECC解码器213和交织器214的操作基本相同,并且参照图2描述的细节也可被应用于本实施例。
[0160] ECC解码器410可包括ECC码字选择器415、剩余错误位置估计器416和擦除解码器417。这里,ECC码字选择器415、剩余错误位置估计器416和擦除解码器417的操作可与图2中所示出的ECC码字选择器231、剩余错误位置估计器232和擦除解码器233的操作基本相同,并且参照图2描述的细节也可被应用于本实施例。
[0161] 因此,ECC解码器410的操作可与图2中所示出的回读ECC解码器230的操作相同。
[0162] CRC校验器420可执行图2中所示出的CRC校验器220和回读CRC校验器240两者的操作。
[0163] 根据实施例的第二装置400可通过根据图2中所示出的实施例的第二装置200的ECC解码器210和回读ECC解码器230的组合以及CRC校验器220和回读CRC校验器240的组合而被实现为单个主体。
[0164] 图11是根据示例实施例的系统1000的主组件的示图。
[0165] 参照图11,系统1000可包括相机1100、显示器1200、音频处理器1300、调制解调器1400、DRAM 1500a和1500b、闪存1600a和1600b、输入/输出(I/O)装置1700a和1700b以及应用处理器(AP)1800。系统1000可被实现为智能电话、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IoT)装置。另外,系统1000可被实现为服务器或PC。
[0166] 相机1100可在用户的控制下捕获静态图像或动态图像,并存储捕获的图像和图像数据,或者将捕获的图像和图像数据发送到显示器1200。音频处理器1300可处理包括在闪存1600a和1600b或网络内容中的音频数据。
[0167] 调制解调器1400可调制和发送用于发送/接收有线/无线数据的信号,并且可将由接收器接收到的信号解调为原始信号。I/O装置1700a和1700b可包括被配置为提供数字输入和/或输出功能的装置(诸如,通用串行总线(USB)、存储设备、数码相机、安全数字(SD)卡、数字通用盘(DVD)、网络适配器和触摸屏)。
[0168] AP 1800可控制系统1000的所有操作。AP 1800可控制显示器1200,使得存储在闪存1600a和1600b中的内容中的一些被显示在显示器1200上。当AP 1800通过I/O装置1700a和1700b接收用户的输入时,AP 1800可执行与用户的输入对应的控制操作。AP 1800可包括作为用于人工智能(AI)数据操作的专用电路的加速器块,或者加速器芯片1820可与AP 1800分开提供。DRAM 1500b还可安装在加速器块或加速器芯片1820中。加速器块可以是用于AP 1800的特定功能的专用功能块,并且包括GPU、神经处理器(NPU)和数据处理器(DPU)。
GPU可以是被配置为处理图形数据的专用功能块,NPU可以是被配置为执行AI计算和推断的专用块,并且DPU可以是被配置为发送数据的专用块。
[0169] 系统1000可包括DRAM 1500a和1500b。AP 1800可通过使用符合电子器件工程联合委员会(JEDEC)标准的命令和模式寄存器集(MRS)信号来控制DRAM 1500a和1500b,或者可通过设置DRAM接口协议以使用企业专用功能(例如,低电压/高速度/可靠性)和CRC/ECC功能来与DRAM 1500a和1500b通信。例如,AP 1800可通过符合JEDEC标准规范的接口与DRAM 1500a通信,并且加速器块或加速器芯片1820可设置新的DRAM接口协议并执行通信以控制DRAM 1500b,DRAM 1500b用于加速器块并且具有比DRAM 1500a的宽带宽度大的宽带宽度。
[0170] 尽管图11仅示出了DRAM 1500a和1500b,但是实施例不限于此,并且只要AP 1800或加速器芯片1820的宽带宽度、反应速率和电压条件被满足,例如相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、电阻随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)或混合RAM的任何存储器就可被使用。与I/O装置1700a和1700b或闪存1600a和1600b相比,DRAM 1500a和1500b具有较少的延迟时间和较小的宽带宽度。可在系统1000通电时使DRAM 1500a和1500b中的每个初始化。DRAM 1500a和1500b可用作操作系统和应用数据被加载的临时存储设备,或者用作各种软件码的执行空间。
[0171] 加法/减法/乘法/除法运算、向量运算、地址运算或快速傅里叶变换(FFT)运算可在DRAM 1500a和1500b中被执行。另外,用于推断的功能可由DRAM 1500a和1500b执行。这里,可使用人工神经网络在深度学习算法中执行推断。深度学习算法可包括使用各种数据对模型进行训练的训练操作和基于经训练模型识别数据的推断操作。作为实施例,由用户通过相机1100捕获的图像可被信号处理并存储在DRAM 1500b中。加速器块或加速器芯片1820可通过使用存储在DRAM 1500b中的数据和用于推断的功能执行用于识别数据的AI数据操作。
[0172] 系统1000可包括多个存储设备或多个闪存装置,其具有比DRAM 1500a和1500b大的容量。加速器块或加速器芯片1820可使用闪存1600a和1600b执行训练操作和AI数据计算。在一个实施例中,闪存1600a和1600b可使AP 1800和/或加速器芯片1820能够通过使用包括在存储器控制器1610中的计算装置有效地执行训练操作和推断AI数据操作。闪存1600a和1600b中的每个可存储由相机1100捕获的图像或者存储通过数据网络接收到的图像。例如,闪存1600a和1600b中的每个可存储增强现实/虚拟现实内容和/或高清(HD)或超高清(UHD)内容。
[0173] 包括在系统1000中的装置(即,相机1100、显示器1200、音频处理器1300、调制解调器1400、DRAM 1500a和1500b、闪存1600a和1600b、I/O装置1700a和1700b以及AP 1800)可通过包括根据图2中所示出的实施例的第二装置200或根据图10中所示出的实施例的第二装置400的构造而被配置。如此,可更安全地纠正在通过通道发送数据的处理中发生的错误,可降低数据重传率,并且可防止由于数据重传而导致的通道宽带宽度的减小。
[0174] 虽然已经参照发明构思的实施例具体示出并描述了发明构思,但是在不脱离所附权利要求的精神和范围的情况下,可在其中做出形式上和细节上的各种改变。

当前第1页 第1页 第2页 第3页