发明名称 一种基于FPGA的FC I/O并行处理方法
摘要 种基于FPGA的FC I/O并行处理方法,涉及计算机存储技术,采用本方法的FC控制器功能模块以FPGA硬件实现,并且,通过输出交换处理单元将SCSII/O操作映射到帧序列和帧交换上,并组建相应的输出帧;以输入交换处理单元将接收到帧序列和帧交换映射到相应的SCSII/O操作上,并将不同输入帧存储在内存中相应的位置;这两部分相互独立,并行处理数据。FC协议内交换和序列管理以及帧的封装和重组都在FPGA内完成,而CPU则负责启动和处理完成的I/O操作,这样使用该方法的FC控制器可以同时处理多个I/O请求,从而可以提高数据传输性能。
申请公布号 CN102185833B 申请公布日期 2014.03.12
申请号 CN201110077837.2 申请日期 2011.03.30
申请人 无锡众志和达数据计算股份有限公司 发明人 张庆敏;张衡;胡刚;李天仁
分类号 H04L29/06(2006.01)I;H04L12/70(2013.01)I 主分类号 H04L29/06(2006.01)I
代理机构 江苏英特东华律师事务所 32229 代理人 邵鋆
主权项 一种基于FPGA的FC I/O并行处理方法,采用本方法的FC控制器由输出交换处理单元、输出存储单元、输出帧处理单元、高速传输单元、输入交换处理单元、输入帧存储单元、输入帧处理单元、高速接收单元、交换完成通知单元和寄存器配置单元组成;所述的FC控制器的这些功能模块以FPGA硬件实现,通过数据总线连接主机系统,通过光纤线或者其它媒介连接存储网络,并且通过输出交换处理单元将SCSI I/O操作映射到帧序列和帧交换上,并组建相应的输出帧;以输入交换处理单元将接收到帧序列和帧交换映射到相应的SCSI I/O操作上,并将不同输入帧存储在内存中相应的位置;这两部分相互独立,并行处理数据,其特征是:输出交换处理单元包括输出请求检测模块、总线访问控制模块、帧封装模块、交换信息管理模块以及输出帧信息暂存模块;其中交换信息管理模块的内部处理方法是:当它接收到总线访问控制模块请求之后,判断交换对应的交换和序列管理块内需要发送的是单个FC帧还是多个FC帧;对于只有一个FC帧的交换,则将该FC帧头部各个字段初始化,并将之按照顺序传递给帧封装模块,之后通过总线访问控制模块请求读取存储在内存中数据,在该FC帧发送出去之后,向交换完成通知单元发送一个输出交换完成消息请求;对于包括多个FC帧的交换,交换信息管理模块负责不断更新帧头部内的字段信息,包括序列计数、偏移以及帧开始定界符和帧结束定界符;当所有数据发送完毕之后,再向交换完成通知单元发送一个输出交换完成消息请求;当接收到输出帧信息暂存模块的重新发送请求,交换信息管理模块按照重新发送请求提供的字段信息,重新从内存中读取交换需要重新发送的数据,在帧封装模块内重新封装并发送出去;输入交换处理单元包括帧读取模块、帧头部分析模块、数据传输模块和交换信息获取模块;其中交换信息获取模块的处理方法是:当它获得来自帧头部分析模块传递的头部字段后,获取交换对应的交换和序列管理块;之后通过比较接收FC帧的字段和交换和序列管理块的字段信息,判断该FC帧是否为异常帧或者错误帧,若是,则通知帧头部分析模块将该FC帧放入控制帧接收队列,由软件进行处理;之后进一步判断该FC帧是否按正常顺序到达,若为期望到达的FC帧,则获取当前内存空间的地址,并将之传递给数据传输模块;若该FC帧为乱序帧,则根据当前期望偏移或者序列计数与FC帧的偏移或者序列计数,在地址/长度列表内查询,找出当前FC帧的数据应该存放的位置的地址信息,并将之传递给数据传输模块;当交换信息获取模块检测到一个交换的所有数据接收完毕之后,将通知交换完成通知单元发送一个输入交换完成消息。
地址 214000 江苏省无锡市新区震泽路18号江苏软件外包产业园金牛座A栋6层