一种SmartRack系统硬件循环冗余校验的方法与流程

文档序号:11176975阅读:925来源:国知局
一种SmartRack系统硬件循环冗余校验的方法与流程

本发明主要涉及smartrack及校验领域,尤其涉及一种smartrack系统硬件循环冗余校验的方法。



背景技术:

循环冗余校验(cyclicredundancycheck,crc)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,常见的有奇偶校验、因特网校验和、循环冗余校验等。

出于简便和成本考虑,一般利用软件来实现大部分操作,但是需要更高的速度来满足性能指标时,虽然软件可以优化,但有时是不够的。



技术实现要素:

为了解决上述问题,本发明提供了一种smartrack系统硬件循环冗余校验的方法,通过利用硬件模块来替代软件算法和fpga可编程的特性,可以充分利用硬件所固有的快速特性和软件可编程的特点,大大提升smartrack处理crc或者其他复杂问题的性能。

本发明采用以下技术方案:

一种smartrack系统硬件循环冗余校验的方法,其特征在于,所述的方法包括以下步骤:

步骤1:选择检验模式;

步骤2:根据选择的校验模式,将crc算法功能转移到硬件电路中并运行校验。

进一步的,校验模式的类型包括以下两种:定制指令校验模式、外围电路校验模式。

进一步的,步骤1的具体实现过程为:

1)预设校验模式类型和基准周期t;

2)获取实时计算周期t;

3)比较实时计算周期t和预设基准周期t,若t<t,则选择定制指令校验模式;若t≧t,则选择外围电路校验模式。

优选的,基准周期t为3次。

进一步的,定制指令校验模式下步骤2的具体实现过程为:

1)crc寄存器初始化;

2)装载crc标准;

3)根据crc标准编写指令并映射成实际电路;

4)利用生成的实际电路完成crc校验。

进一步的,外围电路校验模式下步骤2的具体实现过程为:

1)利用dma技术将数据从存储器转移到外围电路;

2)利用外围电路实现crc校验。

进一步的,利用dma技术将数据从存储器转移到外围电路的过程中,获取数据的存储器包括:控制寄存器、状态寄存器和数据寄存器。

本发明的有益效果是:

1、crc算法由连续的异或和移位操作构成,用很少的逻辑即可在硬件crc中简单实现。这一硬件crc模块仅需几个周期来计算crc,无须涉及系统中任何其它外围电路或存储器,仅需要一个微处理器来支持定制指令即可。该实现方式要比逐位实现的方法快27倍。

2、将crc算法通过硬件外围电路来实现,并利用dma将数据从存储器转移到外围电路,这样还可以进一步提高速度,并且dma可在此外围电路完成前一次crc计算的时钟周期内提供新的数据,省去处理器为每次计算而装载数据所需要的额外周期。

附图说明

图1是本发明方法流程图;

图2是步骤1的具体流程图;

图3是定制指令校验模式下步骤2的具体流程图;

图4是外围电路校验模式下步骤2的具体流程图。

具体实施方式

如图1所示,一种smartrack系统硬件循环冗余校验的方法,其特征在于,所述的方法包括以下步骤:

步骤1:选择检验模式,校验模式的类型主要有两种:定制指令校验模式和外围电路校验模式,选择检验模式的具体实现过程如图2所示,具体为:

1)预设基准周期t,一般设置t为3次;

2)获取实时计算周期t;

3)比较实时计算周期t和预设基准周期t,若t<t,则选择定制指令校验模式;若t≧t,则选择外围电路校验模式。

步骤2:根据选择的校验模式,将crc算法功能转移到硬件电路中并运行校验。由于存在两种校验模式,因此,处理的原理和步骤均不相同,下面对两种模式的具体原理和实现过程进行详细阐述。

定制指令校验模式

定制指令校验模式基于fpga来实现,fpga全称可编程逻辑单元阵列,内部包括可配置逻辑模块clb、输入输出模块和内部连线三个部分,其特点就是可以利用可编程性实现硬件电路,使用高级语言vhdl直接实现逻辑硬件。

基于fpga的系统时,在设计周期之初不必为每个模块做出用硬件还是软件的选择。如果在设计中间阶段需要一些额外的crc校验,则可以利用fpga中现有的硬件crc资源来加速。由于fpga中的逻辑单元是可编程的,仅使用所需要的硬件即可,而不必做出任何板级变动。

fpga使软件模块和硬件模块的相互交换更加简便,不必改变处理器或进行板级变动。设计者可以在速度、硬件逻辑、存储器、代码大小和成本之间做出折衷。利用fpga可以设计定制的嵌入式系统,以增加新的功能特性及优化性能。现在,利用可编程逻辑作为硬件的基础可使这一切都变成现实。低成本可编程逻辑在嵌入式系统中应用得越来越普遍,这为系统设计者提供了一个无需对处理器或架构进行大的改动即可获得更高性能的可选方案。可编程逻辑可将计算密集型功能转换为硬件功能。从软件的角度看,这只是简单地将一个函数调用做进一个定制的硬件模块中,但运行速度要比通过汇编语言优化的相同代码或将算法转换为查找表要快得多。

crc算法由连续的异或和移位操作构成,用很少的逻辑即可在硬件crc中简单实现。这一硬件crc模块仅需几个周期来计算crc,无须涉及系统中任何其它外围电路或存储器,仅需要一个微处理器来支持定制指令即可。

定制指令是作为算术逻辑单元(alu)的扩展而添加的。处理器只知道定制指令就像其它指令一样,包括拥有自己的操作代码。从而使得使用该定制指令跟调用函数一样。定制指令需要几个时钟周期才能完成,而且要连续调用它,则可以流水线式定制指令来实现。可以在每个时钟周期产生一个结果,不过开始时有些延迟。

定制指令实现的具体流程如图3所示,在启动crc计算之前,定制指令内的crc寄存器需要先初始化。装载初始值是crc标准的一部分,而且每种crc标准都不一样。接着,循环将为数据模块中的每16位数据调用一次crc定制指令。定制指令指通过一系列高级语言编写的指令映射成实际电路,通过该电路完成crc校验,这种定制指令实现方式要比逐位实现的方法快27倍。

外围电路校验模式

使用外围硬件电路实现crc,数据不是传递给软件函数,而是写入存储器映射的硬件crc外围电路中。计算是在cpu之外完成的,因此在外围电路工作的同时cpu可以继续运行代码。其实代替软件算法的只是一个普通的硬件crc外围电路。与定制指令的另一个不同之处是硬件crc外围电路可以访问系统中的其它外围电路或存储器,而无须cpu介入。如果计算需要几个周期,实施外围电路比较好,因为它不会影响cpu流水线。

将crc算法通过硬件外围电路来实现,使用外围电路搭建crc校验时,其主要利用dma(直接内存存取)技术将数据从存储器转移到外围电路而不通过cpu,可以不用等待cpu指令周期,直接进行crc校验,如图4所示。smartrack系统自带控制寄存器、状态寄存器和数据寄存器,利用dma调用这些寄存器外围设备完成crc校验。这种方法中,pch通过dma调用外围4位寄存器芯片74ls194直接移位,dma可在此外围电路完成前一次crc计算的时钟周期内提供新的数据,省去处理器为每次计算而装载数据所需要的额外周期。

在64kb数据模块上,利用带dma的定制外围电路可获得比逐位计算的纯软件算法快500倍的性能。要知道,随着数据模块规模的增加,使用dma所获得的性能也随之提高。这是因为设置dma仅需很少的开销,设置之后dma运行得特别快,因为每个周期它都可以传递数据。crc算法所用的硬件越多,算法速度越快,用硬件资源来换取速度。

尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1