论文部分内容阅读
摘要:在当今信息时代里,信息的安全保护已经成为一个越来越重要的技术。然而面对信息社会里海量的数据,如何对种类繁多的浩如烟海的这些数据进行快速而有效的安全处理成为一个重要的行业,一个事关到国家安全、金融安全、网络安全、个人信心安全的重要行业。而加密设备的开发便是这个行业之中非常重要的一个环节。
关键词:PCI;PCI-X;PCI Expres;FPGA;IP core;Local bus;FIFO;信息安全
中图分类号:TP334.7 文献标识码:A 文章编号:1671-7597(2011)0220174-01
在信息浩如烟海的今天,信息安全已经变得愈来愈重要了,如何确保信息的安全已经成为了一个重要的行业。目前在信息安全行业,与计算机相关的加密设备接口的类型有USB接口、PCI、PCI-X、PCI express、COM。在本文章里,将重点介绍一下PCI、PCI-X、PCI Express接口在提升设备性能方面的方法。由于水平所限,请大家参考阅读。
1、产品研发时接口类型的选择
在计算机领域里的科学技术方面,我国的科学技术水平大概要落后于国际领先水平20-30年,因此不可避免的,与计算机相关的行业我们也落后国外发达国家不少。在一些高端的场合,我们的设备还无法与国外的设备进行竞争,基于这一密码行业是我国控制比较严格的一个行业。因此下面的一些方法也仅仅适用于国内一个很小的范围。
一个项目开發时,肯定是要面向需求的,目前密码设备大约分为高中低三个层次,高中低三个层次肯定对应着不一样的产品成本。设备其不同的应用场合造成了不一样的市场需求。而需求又分为性能方面和功能方面。性能方面从设备对数据的处理速度上提出了不一样的层次要求:功能方面对支持的密码算法,密钥的如何管理,权限的如何控制也提出了不一样的层次要求。本文只是从性能方面着手来进行讲解,然而实际上又不能单单地仅从性能方面来讲,因为设备的开发又必须要遵循着计算机接口的发展趋势。
PCI-X是向下兼容PCI总线的,假设已经基于FPGAB术实现了PCI-X,今后新的PCI设备的研发就可以脱离现成的IC产品,进而利用FPGA的技术来进行实现。利用FPGA这一技术是有很多优势的。减少一个IC,能虽小PCB面积、降低产品成本、增加接口的灵活性、在相同总线的基础上能更大地发挥算法芯片的性能。密码设备一个最起码的要求是兼容性和稳定性,基于普通IC进行设计满足兼容性和稳定性的要求。但利用FPGA实现总线接口会面临着在兼容性和稳定性方面上的一些技术困难,因此在设计水平有限以及研发周期不充裕的前提下不建议在此基础上进行开发。
PCI express总线相对于PCI、PCI-X总线设计上难度有了一定的增加,不过在上层驱动方面,对开发者来讲是透明的。但是在开发的过程中,在驱动层还会遇到一些新的问题。例如在windows vista之前的系统,对pci express总线支持并不是很好。如果没有遇到,那只是没有遇到特定的需求。
2、总线带宽确定的情况下提高设备的数据处理性能
在总线已经确定的情况下,算法芯片等芯片确定的情况下,不同的硬件设计人员所设计出来的设备的性能也会存在着很大的差别,因为在设计时还有很多的设计方面的技巧需要采纳。下面谈一个设计方法:
利用FIFO,尽量减小总线带宽带来的性能降低。
假如有4KB的数据需要传给卡设备进行处理,那么串行的设计理念是待4KB的数据全部传入到卡设备后,然后再对这4KB的数据来进行处理。待4KB的数据全部处理完以后,再启动数据从卡设备到内存的操作。在这种串行的操作方式下:卡设备上所有的总线带宽对性能都发挥了拉低性能的作用。
下面介绍利用双FIFO来达到提升设备性能的思路:
数据从主机内存区向卡设备接收FIFO进行传送的时候,卡设备控制器检测到接收FIFO非空时就可以来进行数据的处理,这个处理不必等主机端所有的数据都全部传入到接收FIFO后才开始。控制器将已经处理好的数据存放到返回FIFO里。待数据接收完毕,返回FIFO不空时就可以将返回FIFO中的数据回传到主机的内存区。
串行的设计理念是:数据接收完毕,卡设备控制器开始处理,数据处理完毕,回传。这种并行流水线处理的方式,与老的串行处理的方式相比较,会在性能方面有很大的提高,从理论上计算,可以对数据从主机内存传入到接收FIFO的时间损耗忽略不计。
以上是对双FIFO设计的理念做的一个大体的介绍,但由于涉及到工作性质,所以不便于将所有的技术实现的细节一一进行详解。另外在真正的系统设计中,有时候单纯的FIFO方案设计是无法满足整个系统的要求的,也许还需要加入进多口RAM的设计。鉴于FIFO的特性,其接口有利于性能的提高,但对于要重复利用的数据还是用RAM的好,因为FIFO中的数据读出以后就不再继续存在了。因此一个设计中,一般情况下可能是FIFO和RAM并存,板卡设计要再另外根据自己的需要来选择数据存储的地方。
利用FIFO来进行数据的处理要求对信号的控制更加地严格,因为FIFO里的数据并不是即读即有的。如果在不该读的时候读了,就造成了数据的丢失。在不该写的时候写了,就会造成数据重复或者造成数据的错误。数据处理控制状态机的转移、对接收FIFO进行读、对返回FIFO进行写、将返回FIFO数据返回的时机的选择。根据以上的这些问题,就需要对信号进行合理而又严格的控制。如果在设备中既有RAM又有FIFO,那么何时利用RAM,何时利用FIFO,这又会添加很多的控制信号,不过要是RAM和FIFO是基于FPGA内部资源实现的话,应该就会比较容易来实现,也不会在PCB板上出现过多的元器件。
本文在以上的文章内容里简要地介绍了在总线带宽确定的情况下,提高设备的数据处理性能的两个小方法。对于硬件设计的人员来讲,以上的方法对于设备的设计方案来说是属于一个比较宏观的设计。其实更好的提升一个设备的性能,对于许多小的设计方面的细节,设计人员也是不能够掉以轻心的。驱动的设计,卡设备主控器的程序控制,都需要由程序的编写人员对程序精雕细琢和认真揣摩来进行实现。而且在程序实现同样功能的前提下,采取什么样的流程会更快,也需要不断地慢慢地进行一些经验上的积累。
文中从PCI、PCI-X、PCI express接口卡设备的基础上讲起,总结了本人在产品研发实践中的一些设计的经验,希望能帮助刚入行的同行们,高手看了也希望能指点一二,不胜感谢。
关键词:PCI;PCI-X;PCI Expres;FPGA;IP core;Local bus;FIFO;信息安全
中图分类号:TP334.7 文献标识码:A 文章编号:1671-7597(2011)0220174-01
在信息浩如烟海的今天,信息安全已经变得愈来愈重要了,如何确保信息的安全已经成为了一个重要的行业。目前在信息安全行业,与计算机相关的加密设备接口的类型有USB接口、PCI、PCI-X、PCI express、COM。在本文章里,将重点介绍一下PCI、PCI-X、PCI Express接口在提升设备性能方面的方法。由于水平所限,请大家参考阅读。
1、产品研发时接口类型的选择
在计算机领域里的科学技术方面,我国的科学技术水平大概要落后于国际领先水平20-30年,因此不可避免的,与计算机相关的行业我们也落后国外发达国家不少。在一些高端的场合,我们的设备还无法与国外的设备进行竞争,基于这一密码行业是我国控制比较严格的一个行业。因此下面的一些方法也仅仅适用于国内一个很小的范围。
一个项目开發时,肯定是要面向需求的,目前密码设备大约分为高中低三个层次,高中低三个层次肯定对应着不一样的产品成本。设备其不同的应用场合造成了不一样的市场需求。而需求又分为性能方面和功能方面。性能方面从设备对数据的处理速度上提出了不一样的层次要求:功能方面对支持的密码算法,密钥的如何管理,权限的如何控制也提出了不一样的层次要求。本文只是从性能方面着手来进行讲解,然而实际上又不能单单地仅从性能方面来讲,因为设备的开发又必须要遵循着计算机接口的发展趋势。
PCI-X是向下兼容PCI总线的,假设已经基于FPGAB术实现了PCI-X,今后新的PCI设备的研发就可以脱离现成的IC产品,进而利用FPGA的技术来进行实现。利用FPGA这一技术是有很多优势的。减少一个IC,能虽小PCB面积、降低产品成本、增加接口的灵活性、在相同总线的基础上能更大地发挥算法芯片的性能。密码设备一个最起码的要求是兼容性和稳定性,基于普通IC进行设计满足兼容性和稳定性的要求。但利用FPGA实现总线接口会面临着在兼容性和稳定性方面上的一些技术困难,因此在设计水平有限以及研发周期不充裕的前提下不建议在此基础上进行开发。
PCI express总线相对于PCI、PCI-X总线设计上难度有了一定的增加,不过在上层驱动方面,对开发者来讲是透明的。但是在开发的过程中,在驱动层还会遇到一些新的问题。例如在windows vista之前的系统,对pci express总线支持并不是很好。如果没有遇到,那只是没有遇到特定的需求。
2、总线带宽确定的情况下提高设备的数据处理性能
在总线已经确定的情况下,算法芯片等芯片确定的情况下,不同的硬件设计人员所设计出来的设备的性能也会存在着很大的差别,因为在设计时还有很多的设计方面的技巧需要采纳。下面谈一个设计方法:
利用FIFO,尽量减小总线带宽带来的性能降低。
假如有4KB的数据需要传给卡设备进行处理,那么串行的设计理念是待4KB的数据全部传入到卡设备后,然后再对这4KB的数据来进行处理。待4KB的数据全部处理完以后,再启动数据从卡设备到内存的操作。在这种串行的操作方式下:卡设备上所有的总线带宽对性能都发挥了拉低性能的作用。
下面介绍利用双FIFO来达到提升设备性能的思路:
数据从主机内存区向卡设备接收FIFO进行传送的时候,卡设备控制器检测到接收FIFO非空时就可以来进行数据的处理,这个处理不必等主机端所有的数据都全部传入到接收FIFO后才开始。控制器将已经处理好的数据存放到返回FIFO里。待数据接收完毕,返回FIFO不空时就可以将返回FIFO中的数据回传到主机的内存区。
串行的设计理念是:数据接收完毕,卡设备控制器开始处理,数据处理完毕,回传。这种并行流水线处理的方式,与老的串行处理的方式相比较,会在性能方面有很大的提高,从理论上计算,可以对数据从主机内存传入到接收FIFO的时间损耗忽略不计。
以上是对双FIFO设计的理念做的一个大体的介绍,但由于涉及到工作性质,所以不便于将所有的技术实现的细节一一进行详解。另外在真正的系统设计中,有时候单纯的FIFO方案设计是无法满足整个系统的要求的,也许还需要加入进多口RAM的设计。鉴于FIFO的特性,其接口有利于性能的提高,但对于要重复利用的数据还是用RAM的好,因为FIFO中的数据读出以后就不再继续存在了。因此一个设计中,一般情况下可能是FIFO和RAM并存,板卡设计要再另外根据自己的需要来选择数据存储的地方。
利用FIFO来进行数据的处理要求对信号的控制更加地严格,因为FIFO里的数据并不是即读即有的。如果在不该读的时候读了,就造成了数据的丢失。在不该写的时候写了,就会造成数据重复或者造成数据的错误。数据处理控制状态机的转移、对接收FIFO进行读、对返回FIFO进行写、将返回FIFO数据返回的时机的选择。根据以上的这些问题,就需要对信号进行合理而又严格的控制。如果在设备中既有RAM又有FIFO,那么何时利用RAM,何时利用FIFO,这又会添加很多的控制信号,不过要是RAM和FIFO是基于FPGA内部资源实现的话,应该就会比较容易来实现,也不会在PCB板上出现过多的元器件。
本文在以上的文章内容里简要地介绍了在总线带宽确定的情况下,提高设备的数据处理性能的两个小方法。对于硬件设计的人员来讲,以上的方法对于设备的设计方案来说是属于一个比较宏观的设计。其实更好的提升一个设备的性能,对于许多小的设计方面的细节,设计人员也是不能够掉以轻心的。驱动的设计,卡设备主控器的程序控制,都需要由程序的编写人员对程序精雕细琢和认真揣摩来进行实现。而且在程序实现同样功能的前提下,采取什么样的流程会更快,也需要不断地慢慢地进行一些经验上的积累。
文中从PCI、PCI-X、PCI express接口卡设备的基础上讲起,总结了本人在产品研发实践中的一些设计的经验,希望能帮助刚入行的同行们,高手看了也希望能指点一二,不胜感谢。