目前,硬盘驱动器采用的主流接口是高技术配置接口标准(ATA),即IDE接口,而且绝大多数硬盘驱动器都采用了并行ATA接口。部分硬盘驱动器同时也支持CF (Compact Flash)规范、安全数字输入/输出(SDIO)标准和串行ATA规范。由于并行ATA和CF是便携手持市场的最普遍的两个标准,因此本文侧重讨论这两个规范。CF 3.0规范能够在与标准IDE完全相同的真IDE模式下操作。与CF2.1相比,CF3.0增加了极端直接内存访问(Ultra DMA)模式。
通常,硬盘驱动器并不需要支持所有的模式。目前,1.8英寸硬盘能够支持所有的模式,1英寸硬盘能支持到UDMA4模式。考虑到便携消费类市场对尺寸和功耗的要求,因此本文侧重于讨论1.8英寸或更小尺寸的硬盘驱动器。这些微硬盘的实际数据吞吐量远小于他们的理论值。硬盘的直径直接影响了数据传输率。例如,1英寸硬盘驱动器比2.5英寸硬盘驱动器要慢许多,这是因为硬盘外直径变小,意味着外围磁轨的最快线速度也将同样变小。
图1主ATA控制与CPLD解决方案:采用一个外部总线接口或
GPIO端口和一个用于连接逻辑电路的CPLD,主CPU控制ATA
时序和与硬盘相关的任务。
目前,大多数便携式低功耗嵌入式处理器都支持CF接口,但是缺乏专用的IDE控制器。虽然CF3.0支持真IDE模式和ATA规范的部分标准,但是这种方法必须依靠处理器本身来控制ATA时序和建立数据连接。而且从系统角度来看,这种模式在传输大量数据时效率不高。在嵌入式领域,当设计师采用硬盘驱动器技术时,可以选用CF接口、通用I/O端口或者一个带有用于连接某些逻辑电路的CPLD的外部总线接口等方案来实现连接。这使得他们可以采用现有的主处理器架构和软件环境来更快地推出产品,取得市场先机。尽管这种方法简单且经济,但在采用这种方法前,设计师必须充分理解它对系统性能的影响。因此,在选择一个特定的系统方案之前,有必要为终端应用确定一个清晰的、可量化的性能目标。因为只有这样,才能够应用该目标来指导系统划分过程和决定是否有必要改善性能。
图2 局部总线接口和QuickLogic IDE控制:采用一个外部总线接口
或GPIO端口和外部硬件中的专用QuickLogic IDE控制器来加速对
硬盘驱动器(HDD)的读写。
外部总线接口与CPLD
优点
本方案只需要控制信号和主处理器的部分寻址信号与CPLD连接,来产生硬盘驱动器所需的接口信号。当系统中存在其他设备共享数据总线时,还需要额外的分离逻辑部件将总线与系统的其他部分分离开来。从硬件角度来讲,这个方案非常简单、直接而且提供了应用所需的存储。然而,系统设计是需要考虑数据吞吐量的可能瓶颈和对主处理器的影响。若要设计一个性价比高和有竞争力的解决方案,需要满足以下两条件中至少一个:硬盘读写的数据中不包括极大数量的数据文件或丰富的多媒体内容;性能和数据吞吐量不是系统的关键性要求。
缺点
当处理器负责产生和控制ATA时序的时候,它将浪费额外的周期来处理时序和数据移动。系统中,性能瓶颈的多少取决于是否存在DMA控制器,以及主处理器在外部总线接口和主内存之间的数据传输效率。如果再加上微处理器在每次数据读写中对来自硬盘驱动器的IO-RDY信号反应的等待时间,将形成一个很严重的性能瓶颈。由于本方案直接与每个驱动器相关的任务挂钩,因此对CPU占用率产生了很大的影响。主CPU的绝大多数时间将被用来为硬盘服务,而不是执行与应用相关的任务。实际应用中,数据传输的最大速率请参见表1。
外部总线接口和
QuickLogic IDE控制器
优点
本方案通过在硬件中增加一个外部IDE控制器,来加速硬盘驱动器数据传输和读写控制,从而降低了流程中主处理器的负载。在本方案中,只有主处理器的本地存储器总线连接到IDE桥接设备。外部IDE控制器拥有一片用于数据双向传输缓冲的容量为512字节的嵌入式内存。缓冲内存使得主处理器实现了直接在512字节扇区内执行读写操作而不必等待中断或外部连接IDE设备的准备。在等待中断信号或者IDE控制器发送的512字节扇区数据准备完毕信号的同时,主处理器可以不间断地运行其他任务。
在数据扇区准备好后,再调用中断机制,这使得系统可以实现比轮流检测机制更好的性能。与中断机制不同,轮流检测在增加了软件投入的同时也降低了系统的性能。
如果在CPU中,存在供外部设备使用的DMA控制器,通过对主内存数据扇区的DMA操作,可以进一步提升系统性能。由于硬盘消耗大量的静态电流,因此微瓦FPGA能够关闭硬盘的电源来降低不读取数据时硬盘的功耗。同样的机理也被iPOD所采用。使用微瓦FPGA来控制硬盘功耗的主要优点是,可以在数据传输完成以后,切断电流关闭硬盘来节省功耗。理论上,它还可以被用来在上电的同时,启动硬盘驱动器和初始化寄存器。在该流程完成后,它将发送一个中断信号到CPU,以减少处理器在处理断电和上电任务的负载。由于不需要CPU参与这个过程,从而在更高程度上实现了无缝连接。
使用QuickLogic超低功耗IDE控制器设备作为低功耗嵌入式处理器的配套芯片,大大提高了整体的系统吞吐量、降低了硬盘驱动器相关任务的CPU占用率、通过降低硬盘驱动器的工作时间来降低系统功耗。相对基于SRAM和Flash技术,QuickLogic低功耗Vialink互联技术大大降低了功耗。采用SRAM和Flash技术方案的设计将消耗几百mA的电流。对简单CPLD方案而言,只需要增加少量成本,采用低功耗IDE桥控制器就可以实现提升高能效系统性能,最终改善终端用户的使用效果。
图3 采用专用的QuickLogic IDE与SDRAM控制:通过对主存储
器的直接存取,采用外部硬件中专用的QuickLogic IDE与
SDRAM控制器来加速硬盘驱动器的读写速率。
缺点
本硬件方案既简单又直接,但设计师需要考虑与主微处理器架构和等待时间相关的数据吞吐量的潜在瓶颈。因此必须认真考虑平台的系统性能。例如,在便携式媒体处理器中,有可能存在图像处理器共享同一个总线。因此,如果希望得到更高的性能,可以考虑采用Quick Logic IDE与SDRAM控制器设计方案。
QuickLogic IDE与
SDRAM控制器
优点
如果主处理器的本地总线或SDRAM控制器,允许外部设备来控制总线并直接向主存储器写入数据,那么桥接器可以向主存储器直接存取512字节扇区的数据。这样将大大节省主处理器的周期,消除主处理器对局部总线进行传输请求的响应等待时间,并且可以减少微处理器进行磁盘相关数据传输操作的执行时间。这使得主处理器可以同时运行其他系统进程或降低操作速度来节省功耗。主处理器并不积极地参与跟硬盘驱动器之间的数据传输。预先在主存储器中写入数据,可以防止在执行中出现遗漏。主存储器更快且更有效的数据传输,可降低硬盘驱动器的活动时间以及硬盘驱动器的整体功耗。根据具体应用的不同,功耗降低的程度也不相同。一个完整的单芯片配套解决方案是由硬件来控制数据的传输,从而大大增强系统的性能。由于基本数据的传输都在硬件中进行处理,不必再担心中断反应时间和中断堆栈。UDMA的ATA-66也应能够在这方案中被实现,而且更能有效地提高系统性能。
缺点
一般情况下,只有一个外部主设备可以对SDRAM进行直接访问。大部分具有外部图形协处理器或者其他相关硬件加速器的CPU,都具有专供该外部设备使用的SDRAM控制,使得IDE失去了用武之地。虽然可编程QuickLogicIDE桥接处理器中使用的某些仲裁逻辑可以允许超过一个总线主控,但是一般情况下,系统要求专用硬件加速器必须具有优先级别和总线读写。本方案有利于提升系统性能和驱动程序开发,但是随着系统内存总线速率的提升和向DDR SDRAM技术的转移,允许外部内存总线主控的CPU已经不再是主流产品。而且,由于SDRAM控制器和用于控制的外部总线接口,这种方案还需要配备更多的逻辑电路,这就不可避免地增加了该设计的成本。
性能测试
用于低功耗应用领域的嵌入式处理器缺乏硬盘控制器,这使得系统设计师不得不自己解决连接性难题。 支持下一代迷你硬盘的标准如CE-ATA(类似SDIO协议)和iVDR(基于串行ATA)可能进一步延缓在新SoC上硬盘驱动器控制器的出现。
然而,由于处理器和硬盘消耗了大量的系统功耗,因此,要想实现主内存和硬盘驱动之间的更有效的信息传递必然会影响电池的寿命。巧妙地采用桥接器,可以提高主内存和硬盘驱动这两个子系统处于节电状态的时间百分比,从而实现更高的电池效率。
QuickLogic提供了超低功耗的IDE桥接控制器作为配套芯片来连接低功耗嵌入式处理器,从而在提升系统性能的同时减少了硬盘存储相关作业的CPU占用率,最大限度地降低了功耗。QuickLogic提供的IDE桥接器可以在实际应用中实现10Mbps~13Mbps的数据传输速率。尤其是该产品基于QuickLogic 微瓦FPGA技术,这意味着移动平台系统设计师可以跨越基于传统SRAM的FPGA造成的功耗限制和CPLD性能的挑战。同时它还遵循正兴起的总线标准,并具有整合额外系统功能的能力。
人们越来越意识到,在便携式系统增加额外系统功能的同时,必须注意其对电池寿命的影响。系统性能和功耗的最佳搭配,是通过在基于可编程逻辑的配套设备中,用硬件方法实现大量的数学算法和数据通道管理,而不是在嵌入式处理器上用软件的方法来实现。QuickLogic配套芯片方法可以为系统设计师提供更多的工具来权衡系统性能和功耗,从而实现最佳搭配。■