一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于Expander的CRC数据校验方法和校验电路与流程

2022-04-09 06:51:08 来源:中国专利 TAG:

一种应用于expander的crc数据校验方法和校验电路
技术领域
1.本发明属于磁盘校验技术领域,特别涉及一种应用于expander的crc数据校验方法和校验电路。


背景技术:

2.sas(串行连接scsi)采用串行接口以获得较高的传输速度,通过stp协议(sata通道协议)实现sas控制器和sata设备之间的互联和数据传输。sas控制器通过一级或多级expander(磁盘扩展器)扩展支持大规模磁盘的管理,提供高性能、高灵活度的存储扩展方案。
3.对于expander来说,首先会将接收到的数据存入至接收队列(fifo)中,然后将fifo中的数据读出,进行解扰(descramble)以及crc校验,从而建立外部设备与expander的数据链接。整个过程如图1和2所示。但是由于在frame中间会随机地插入原语(primitive),所以如何正确定位到crc数据所在的位置是校验电路的设计关键。
4.在crc数据定位的问题上,现有技术主要基于fifo的存入排序和数据缓存来执行。expander在存储输入数据时会将输入数据延时一个时钟(clock)再存储,然后将延时的数据与输入的数据相比较,如果是原语,则立即存入至fifo中,如果是字节数据则将延时的数据存储至fifo中,然后再将数据进行缓存,以保证在eof/eoaf之前的一个字段是crc数据。此后,将解扰后的数据发送给crc校验模块,根据校验模块生成的crc数据与上述接收到的crc数据的比较结果来确认crc数据是否校验正确。
5.可见,现有技术中的expander不仅对所有类型的帧包括数据帧和地址帧都进行crc校验,而且在查找和存储crc数据时已耗费多个时钟周期,这明显延长了建链时间。若在fifo外部设置crc排序电路,则同时会增大电路面积,从而影响整个系统性能。


技术实现要素:

6.本发明的目的之一在于,基于expander的数据帧特性,提供一种在expander应用的crc数据校验方法及其校验电路,以减少在expander中进行crc校验所花费的时间,提高expander系统的建链效率。
7.根据本发明的第一方面,首先提供了一种应用于expander的crc数据校验方法,包括:
8.步骤101、接收来自外部设备的输入数据,将所述输入数据直接写入expander的接收fifo中,所述输入数据包括crc数据;
9.步骤102、从所述接收fifo中读出已写入的输入数据,并判断所述输入数据的帧类型;
10.步骤103、仅当读出的输入数据为地址帧时,将所述输入数据发送到解扰器;
11.步骤104、从所述输入数据中过滤原语信息;
12.步骤105、对过滤后的输入数据进行解扰,利用计数器定位所述输入数据中的crc
数据,并利用所述crc数据对解扰数据进行crc校验。
13.优选地,所述将所述输入数据直接写入expander的接收fifo中,进一步包括:
14.将所述输入数据直接写入接收fifo写入模块,而不对所述写入操作施加延迟。
15.优选地,所述帧类型包括数据帧和地址帧,所述判断输入数据的帧类型,进一步包括:
16.根据所述输入数据的帧头和帧尾信息的内容,判断所述输入数据的帧类型;
17.如果所述帧头信息是soaf或所述帧尾信息是eoaf,则判断所述输入数据是地址帧;
18.如果所述帧头信息是sof或所述帧尾信息是eof,则判断所述输入数据是数据帧。
19.优选地,在所述判断输入数据的帧类型之后,进一步包括:
20.当读出的输入数据为数据帧时,将所述输入数据直接路由到expander的输出端口。
21.优选地,所述从输入数据中过滤原语信息,进一步包括:
22.如果当前接收的字段的k码为1,则确定该字段为原语信息,并跳过对所述原语信息的解扰和crc校验。
23.根据本发明的第二方面,相应地,提供了一种应用于expander的crc数据校验电路,包括:
24.fifo写入模块,被配置为接收来自外部设备的输入数据,将接收到的输入数据直接写入expander的接收fifo中;
25.fifo读出模块,被配置为从所述接收fifo中读出已写入的输入数据,将输入数据发送到帧类型判断逻辑;
26.所述帧类型判断逻辑,被配置为判断所述输入数据的帧类型,并且在所述帧类型为地址帧时,将所述输入数据发送到解扰器;
27.所述解扰器,进一步包括:
28.识别逻辑,被配置为在数据解扰之前从所述输入数据中识别原语信息并进行过滤;
29.解扰电路,对过滤后的数据执行解扰处理;
30.计数器,被配置为定位所述输入数据中的crc数据;以及
31.crc校验器,被配置为利用所述crc数据对所述解扰电路输出的解扰数据进行crc校验。
32.优选地,来自外部设备的输入数据直接与所述fifo写入模块的输入端相连接,以使所述输入数据直接写入接收fifo,而不对写入操作施加延迟。
33.优选地,所述帧类型判断逻辑进一步被配置为:
34.根据所述输入数据的帧头和帧尾信息的内容,判断所述输入数据的帧类型;
35.如果所述帧头信息是soaf或所述帧尾信息是eoaf,则判断所述输入数据是地址帧;
36.如果所述帧头信息是sof或所述帧尾信息是eof,则判断所述输入数据是数据帧。
37.优选地,所述帧类型判断逻辑进一步被配置为:
38.如果判断所述输入数据为数据帧,则将所述输入数据直接路由到expander的输出
端口。
39.优选地,所述识别逻辑进一步被配置为:
40.如果当前接收的字段的k码为1,则确定该字段为原语信息,将所述原语信息直接路由到输出端口,而不发送到所述解扰电路。
41.相比于现有技术,本发明的应用于expander的crc数据校验方法和校验电路,利用expander自身的特性对帧进行分类,对数据帧进行直接转发,对地址帧则进行解扰和crc校验,接收到的外部输入数据不用进行排序而直接进入fifo中,而且使用计数器以及k码来准确定位crc数据,不仅缩短了expander建链时间,而且减少了电路面积,提高了整个expander系统的建链效率。
42.本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得对本领域技术普通人员显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获取。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
44.图1示出了根据现有技术的expander与外部设备连接结构的示意图。
45.图2示出了根据现有技术的expander内部的crc校验电路结构的模块图。
46.图3示出了根据本发明的应用于expander的crc数据校验方法的流程图。
47.图4示出了不同类型的帧数据的具体字段结构示意图。
48.图5示出了根据本发明的expander内部的crc数据校验电路的模块图。
49.图6示出了根据本发明的crc数据校验电路中的解扰器和crc校验器的功能示意图。
具体实施方式
50.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
51.针对帧内crc数据校验问题,本发明使用针对数据帧(data frame)和地址帧(address frame)的crc校验策略,旨在提高crc校验调度和管理的灵活性,并通过消除对crc数据排序的限制,缩短建链时间。
52.参见图3的流程图,根据本发明第一方面的应用于expander的crc数据校验方法,包括:
53.步骤101、接收来自外部设备的输入数据,将接收到的输入数据直接写入expander的接收fifo中。
54.结合图5示出的expander内部的crc数据校验电路的模块图,本发明的实施例中,
expander从外部设备接收待校验的数据之后,将数据即时或实时地存储至fifo中。如图5所示,外部输入数据data_in连接于写入模块(rx fifo write)的输入端,以将外部输入数据data_in直接写入接收fifo写入模块(rx fifo write),而取消了图2所示的crc检测逻辑(crc detect)。不同于传统技术中将输入数据通过crc detect模块延时一个时钟再存储,本发明通过将零延迟的数据即时存储到fifo,可以减少数据存储所占用的时钟周期。
55.步骤102、从所述接收fifo中读出已写入的输入数据,并判断所述输入数据的帧类型。
56.具体参见图5,fifo读出模块(rx fifo read)的输入端连接于接收fifo。通过fifo读出模块(rx fifo read)获取已写入接收fifo的输入数据data_in,并判断其类型。expander中接收的帧(frame)包括地址帧(address frame)和数据帧(data frame),具体区分如图4所示。外部设备首先将identify address frame传输给expander,在双方相互认证之后,接下来会将open address frame(opaf)传输给expander,当建立链接(connect)之后,外部设备可以开始传输数据帧(data frame)。因此,地址帧的传输直接影响到建链的效率。
57.由于soaf/eoaf仅存在于地址帧中,而sof/eof仅存在于数据帧中,本发明的实施例中,具体可以通过判断帧头和帧尾信息的内容是soaf/eoaf还是sof/eof,来确定该帧信息是数据帧(data frame)还是地址帧(address frame)。
58.步骤103、仅当读出的输入数据为地址帧时,将所述输入数据发送到解扰器。
59.由于在expander中,主要依赖地址帧进行建链和路由,因此需要将地址帧进行解扰和校验,而对数据帧直接进行转发处理。如果在步骤102中,判断帧类型为地址帧(address frame),则需要对其依次进行解扰与crc校验,即将该帧数据发送到解扰器(descrambler)。如果是数据帧(data frame),则无需进行解扰与crc校验,因此可以直接将数据帧路由到expander的输出端口。
60.步骤104、从所述输入数据中过滤原语信息。
61.参见图5和6所示,将从接收fifo中读出之后的输入数据串行地发送到解扰器中。根据协议规定,字节数据(dword)的k码为0。只有原语(primitive)的k码为1。因此本发明的实施例中,在解扰器中可以通过k码来区分输入数据中的字段是需要校验的字节数据(dword)还是原语(primitive),如果k码为0,则表示接收的字段为dword,可以继续执行解扰和crc校验;如果k码为1,则表示接收的字段为原语。原语不需要参与解扰和crc校验。为提高校验效率,若判断当前字段为原语,则可以跳过解扰和校验过程,直接输出到端口,并继续处理后续的字段数据。
62.步骤105、对过滤后的输入数据进行解扰,利用计数器定位所述输入数据中的crc数据,并利用所述crc数据对解扰数据进行crc校验。
63.如图6所示,当检测到所述k码为0时,将串行的32bit数据输入解扰器模块执行解扰操作。由于在起始原语和结束原语之间的数据(包括crc数据)均被加扰,因此,解扰操作得出的解扰结果应当包括两部分,分别为解扰后的原始数据(data dword)和解扰后的crc数据。然后,可以将原始数据输入crc生成器(crc generate),运算得到crc校验值,最终,可以将crc校验值与解扰得到的crc数据进行比较。若两者一致,表明校验通过;否则校验失败。
64.根据图4所示的地址帧的信息结构,帧信息中的crc数据始终位于7个字段dword 0-dword 6之后。因此在本发明优选的实施例中,当解扰电路检测到soaf原语后,可以立即启动计数器counter。每当计数器检测到输入的字段内容为data dword时,计数器counter的值增1,同时可以将输入的字段转发到crc生成器中,开始产生crc校验数据。当所述计数器counter的值达到7时,可以将crc generate生成的crc校验数据进行存储。接下来,当计数器counter的值达到8时,表明已经定位到解扰后的crc数据,可以将上述存储的crc校验数据与接收到的解扰后的crc数据进行比较。若两者一致,表明校验通过;否则校验失败。
65.从以上实施例中可以看出,本发明应用于expander的crc数据校验方法,主要用于优化expander系统中的建链时间,提高整个系统的建链效率。首先,利用expander自身的特性对帧进行分类。然后对数据帧进行直接转发,对地址帧则进行解扰和crc校验,从而缩短了电路建链时间。其次,接收到的外部输入数据不需要进行预排序而直接进入fifo中。利用expander处理数据的特性并省略了排序电路,从而减少了电路面积。第三,本发明使用计数器以及k码来定位crc数据,运算速度快,减少了数据暂存以及延时存储,提高整个expander系统的建链效率。
66.相应地,参见图5,本发明在第二方面提供了一种应用于expander的crc数据校验电路,包括:
67.fifo写入模块(rx fifo write),被配置为接收来自外部设备的输入数据,将接收到的输入数据直接写入expander的接收fifo中;
68.fifo读出模块(rx fifo read),被配置为从所述接收fifo中读出已写入的输入数据,并判断所述输入数据的帧类型;
69.帧类型判断逻辑(frame select),被配置为在读出的输入数据为地址帧时,将所述输入数据发送到解扰器(descambler);
70.所述解扰器(descambler),进一步包括:
71.识别逻辑,被配置为在数据解扰之前从所述输入数据中识别原语信息并进行过滤;
72.解扰电路,对过滤后的数据执行解扰处理;
73.计数器,被配置为定位所述输入数据中的crc数据;以及
74.crc校验器(crc check),被配置为利用所述crc数据对所述解扰电路输出的解扰数据进行crc校验。
75.如图5所示,其中来自外部设备的输入数据直接与所述fifo写入模块(rx fifo write)的输入端相连接,以使在expander从外部设备接收待校验的数据之后,将输入数据直接写入接收fifo,而不对写入操作施加延迟,而是即时或实时地存储至fifo中。通过取消了图2所示的crc检测逻辑(crc detect),减少了数据存储所占用的时钟周期。
76.所述fifo读出模块(rx fifo read)具体用于获取事先写入接收fifo的输入数据data_in,并利用帧类型判断逻辑来判断其类型。本发明的实施例中,具体可以通过判断帧头和帧尾信息的内容是soaf/eoaf还是sof/eof,来确定该帧信息是数据帧(data frame)还是地址帧(address frame)。
77.对于所述帧类型判断逻辑(frame select),如果判断帧类型为地址帧(address frame),则需要对该帧依次进行解扰与crc校验,即将该数据发送到解扰器。如果是数据帧
(data frame),则无需进行解扰与crc校验,直接将数据帧路由到expander的输出端口。
78.如图5和6所示,所述帧类型判断逻辑(frame select)进一步配置为,将从接收fifo中读出之后的输入数据串行地发送到解扰电路中。在此之前,识别逻辑可以通过k码来区分输入数据中的字段是需要校验的字节数据(dword)还是原语(primitive),如果k码为0,则表示接收的字段为dword,将该字段发送到解扰电路,继续执行解扰和crc校验;如果k码为1,则表示接收的字段为原语(primitive)。此时可以跳过解扰和校验过程,直接将原语输出到端口,并继续处理后续的字段数据。
79.如图6所示,当识别逻辑检测到所述k码为0时,将串行的32bit数据输入解扰电路descambler进行解扰操作。由于在起始原语和结束原语之间的数据包括crc值均被加扰,因此,解扰电路输出的解扰结果应当包括两部分,分别为解扰后的原始数据(data dword)和解扰后的crc数据。然后可以将原始数据输入crc生成器(crc generate),运算得到crc校验值,最终,将crc校验值与解扰得到的crc数据同时输入crc比较器,将两者进行比较。若一致,表明校验通过;否则校验失败。
80.在本发明优选的实施例中,帧信息中的crc数据始终位于7个字段dword 0-dword 6之后。当解扰电路检测到soaf原语后,可以立即启动计数器counter。每当计数器检测到输入的字段内容为data dword时,计数器counter的数值增1,同时可以将输入的字段转发到crc生成器中,开始产生crc校验数据。当计数器counter达到7时,可以将crc generate生成的crc校验数据进行存储。接下来,当计数器counter达到8时,表明已经定位到解扰后的crc数据,此时可以将存储的crc校验数据与解扰后的crc数据同时输入crc比较器进行比较。若两者一致,表明校验通过;否则校验失败。
81.从以上实施例中可以看出,本发明应用于expander的crc数据校验电路,利用expander自身的特性对帧进行分类。然后对数据帧进行直接转发,对地址帧则进行解扰和crc校验,从而缩短了电路建链时间。接收到的外部输入数据不需要进行预排序而直接进入fifo中,省略了排序电路,从而减少了电路面积。使用计数器以及k码来定位crc数据,运算速度快,减少了数据暂存以及延时存储,提高整个expander系统的建链效率。
82.需要说明的是,以上所示的流程图或结构图仅用于说明而非限定本发明的技术方案。本领域技术人员可以理解,在本发明基础上可以根据实际需要而上述方法流程细节等做出容易想到的任意调整,而不应将本发明限于上述示例的具体结构或参数。
83.尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献