硬盤驅(qū)動器接口技術(shù)與嵌入式應(yīng)用整合方案
目前,硬盤驅(qū)動器采用的主流接口是高技術(shù)配置接口標(biāo)準(zhǔn)(ATA),即IDE接口,而且絕大多數(shù)硬盤驅(qū)動器都采用了并行ATA接口。部分硬盤驅(qū)動器同時也支持CF (Compact Flash)規(guī)范、安全數(shù)字輸入/輸出(SDIO)標(biāo)準(zhǔn)和串行ATA規(guī)范。由于并行ATA和CF是便攜手持市場的最普遍的兩個標(biāo)準(zhǔn),因此本文側(cè)重討論這兩個規(guī)范。CF 3.0規(guī)范能夠在與標(biāo)準(zhǔn)IDE完全相同的真IDE模式下操作。與CF2.1相比,CF3.0增加了極端直接內(nèi)存訪問(Ultra DMA)模式。
通常,硬盤驅(qū)動器并不需要支持所有的模式。目前,1.8英寸硬盤能夠支持所有的模式,1英寸硬盤能支持到UDMA4模式。考慮到便攜消費(fèi)類市場對尺寸和功耗的要求,因此本文側(cè)重于討論1.8英寸或更小尺寸的硬盤驅(qū)動器。這些微硬盤的實(shí)際數(shù)據(jù)吞吐量遠(yuǎn)小于他們的理論值。硬盤的直徑直接影響了數(shù)據(jù)傳輸率。例如,1英寸硬盤驅(qū)動器比2.5英寸硬盤驅(qū)動器要慢許多,這是因?yàn)橛脖P外直徑變小,意味著外圍磁軌的最快線速度也將同樣變小。
圖1主ATA控制與CPLD解決方案:采用一個外部總線接口或GPIO端口和一個用于連接邏輯電路的CPLD,主CPU控制ATA時序和與硬盤相關(guān)的任務(wù)。
目前,大多數(shù)便攜式低功耗嵌入式處理器都支持CF接口,但是缺乏專用的IDE控制器。雖然CF3.0支持真IDE模式和ATA規(guī)范的部分標(biāo)準(zhǔn),但是這種方法必須依靠處理器本身來控制ATA時序和建立數(shù)據(jù)連接。而且從系統(tǒng)角度來看,這種模式在傳輸大量數(shù)據(jù)時效率不高。在嵌入式領(lǐng)域,當(dāng)設(shè)計師采用硬盤驅(qū)動器技術(shù)時,可以選用CF接口、通用I/O端口或者一個帶有用于連接某些邏輯電路的CPLD的外部總線接口等方案來實(shí)現(xiàn)連接。這使得他們可以采用現(xiàn)有的主處理器架構(gòu)和軟件環(huán)境來更快地推出產(chǎn)品,取得市場先機(jī)。盡管這種方法簡單且經(jīng)濟(jì),但在采用這種方法前,設(shè)計師必須充分理解它對系統(tǒng)性能的影響。因此,在選擇一個特定的系統(tǒng)方案之前,有必要為終端應(yīng)用確定一個清晰的、可量化的性能目標(biāo)。因?yàn)橹挥羞@樣,才能夠應(yīng)用該目標(biāo)來指導(dǎo)系統(tǒng)劃分過程和決定是否有必要改善性能。
圖2 局部總線接口和QuickLogic IDE控制:采用一個外部總線接口或GPIO端口和外部硬件中的專用QuickLogic IDE控制器來加速對硬盤驅(qū)動器(HDD)的讀寫。
外部總線接口與CPLD
優(yōu)點(diǎn)
本方案只需要控制信號和主處理器的部分尋址信號與CPLD連接,來產(chǎn)生硬盤驅(qū)動器所需的接口信號。當(dāng)系統(tǒng)中存在其他設(shè)備共享數(shù)據(jù)總線時,還需要額外的分離邏輯部件將總線與系統(tǒng)的其他部分分離開來。從硬件角度來講,這個方案非常簡單、直接而且提供了應(yīng)用所需的存儲。然而,系統(tǒng)設(shè)計是需要考慮數(shù)據(jù)吞吐量的可能瓶頸和對主處理器的影響。若要設(shè)計一個性價比高和有競爭力的解決方案,需要滿足以下兩條件中至少一個:硬盤讀寫的數(shù)據(jù)中不包括極大數(shù)量的數(shù)據(jù)文件或豐富的多媒體內(nèi)容;性能和數(shù)據(jù)吞吐量不是系統(tǒng)的關(guān)鍵性要求。
缺點(diǎn)
當(dāng)處理器負(fù)責(zé)產(chǎn)生和控制ATA時序的時候,它將浪費(fèi)額外的周期來處理時序和數(shù)據(jù)移動。系統(tǒng)中,性能瓶頸的多少取決于是否存在DMA控制器,以及主處理器在外部總線接口和主內(nèi)存之間的數(shù)據(jù)傳輸效率。如果再加上微處理器在每次數(shù)據(jù)讀寫中對來自硬盤驅(qū)動器的IO-RDY信號反應(yīng)的等待時間,將形成一個很嚴(yán)重的性能瓶頸。由于本方案直接與每個驅(qū)動器相關(guān)的任務(wù)掛鉤,因此對CPU占用率產(chǎn)生了很大的影響。主CPU的絕大多數(shù)時間將被用來為硬盤服務(wù),而不是執(zhí)行與應(yīng)用相關(guān)的任務(wù)。實(shí)際應(yīng)用中,數(shù)據(jù)傳輸?shù)淖畲笏俾收垍⒁姳?。
外部總線接口和QuickLogic IDE控制器
優(yōu)點(diǎn)
本方案通過在硬件中增加一個外部IDE控制器,來加速硬盤驅(qū)動器數(shù)據(jù)傳輸和讀寫控制,從而降低了流程中主處理器的負(fù)載。在本方案中,只有主處理器的本地存儲器總線連接到IDE橋接設(shè)備。外部IDE控制器擁有一片用于數(shù)據(jù)雙向傳輸緩沖的容量為512字節(jié)的嵌入式內(nèi)存。緩沖內(nèi)存使得主處理器實(shí)現(xiàn)了直接在512字節(jié)扇區(qū)內(nèi)執(zhí)行讀寫操作而不必等待中斷或外部連接IDE設(shè)備的準(zhǔn)備。在等待中斷信號或者IDE控制器發(fā)送的512字節(jié)扇區(qū)數(shù)據(jù)準(zhǔn)備完畢信號的同時,主處理器可以不間斷地運(yùn)行其他任務(wù)。
在數(shù)據(jù)扇區(qū)準(zhǔn)備好后,再調(diào)用中斷機(jī)制,這使得系統(tǒng)可以實(shí)現(xiàn)比輪流檢測機(jī)制更好的性能。與中斷機(jī)制不同,輪流檢測在增加了軟件投入的同時也降低了系統(tǒng)的性能。
如果在CPU中,存在供外部設(shè)備使用的DMA控制器,通過對主內(nèi)存數(shù)據(jù)扇區(qū)的DMA操作,可以進(jìn)一步提升系統(tǒng)性能。由于硬盤消耗大量的靜態(tài)電流,因此微瓦FPGA能夠關(guān)閉硬盤的電源來降低不讀取數(shù)據(jù)時硬盤的功耗。同樣的機(jī)理也被iPOD所采用。使用微瓦FPGA來控制硬盤功耗的主要優(yōu)點(diǎn)是,可以在數(shù)據(jù)傳輸完成以后,切斷電流關(guān)閉硬盤來節(jié)省功耗。理論上,它還可以被用來在上電的同時,啟動硬盤驅(qū)動器和初始化寄存器。在該流程完成后,它將發(fā)送一個中斷信號到CPU,以減少處理器在處理斷電和上電任務(wù)的負(fù)載。由于不需要CPU參與這個過程,從而在更高程度上實(shí)現(xiàn)了無縫連接。
使用QuickLogic超低功耗IDE控制器設(shè)備作為低功耗嵌入式處理器的配套芯片,大大提高了整體的系統(tǒng)吞吐量、降低了硬盤驅(qū)動器相關(guān)任務(wù)的CPU占用率、通過降低硬盤驅(qū)動器的工作時間來降低系統(tǒng)功耗。相對基于SRAM和Flash技術(shù),QuickLogic低功耗Vialink互聯(lián)技術(shù)大大降低了功耗。采用SRAM和Flash技術(shù)方案的設(shè)計將消耗幾百mA的電流。對簡單CPLD方案而言,只需要增加少量成本,采用低功耗IDE橋控制器就可以實(shí)現(xiàn)提升高能效系統(tǒng)性能,最終改善終端用戶的使用效果。
圖3 采用專用的QuickLogic IDE與SDRAM控制:通過對主存儲器的直接存取,采用外部硬件中專用的QuickLogic IDE與SDRAM控制器來加速硬盤驅(qū)動器的讀寫速率。[!--empirenews.page--]
缺點(diǎn)
本硬件方案既簡單又直接,但設(shè)計師需要考慮與主微處理器架構(gòu)和等待時間相關(guān)的數(shù)據(jù)吞吐量的潛在瓶頸。因此必須認(rèn)真考慮平臺的系統(tǒng)性能。例如,在便攜式媒體處理器中,有可能存在圖像處理器共享同一個總線。因此,如果希望得到更高的性能,可以考慮采用Quick Logic IDE與SDRAM控制器設(shè)計方案。
QuickLogic IDE與SDRAM控制器
優(yōu)點(diǎn)
如果主處理器的本地總線或SDRAM控制器,允許外部設(shè)備來控制總線并直接向主存儲器寫入數(shù)據(jù),那么橋接器可以向主存儲器直接存取512字節(jié)扇區(qū)的數(shù)據(jù)。這樣將大大節(jié)省主處理器的周期,消除主處理器對局部總線進(jìn)行傳輸請求的響應(yīng)等待時間,并且可以減少微處理器進(jìn)行磁盤相關(guān)數(shù)據(jù)傳輸操作的執(zhí)行時間。這使得主處理器可以同時運(yùn)行其他系統(tǒng)進(jìn)程或降低操作速度來節(jié)省功耗。主處理器并不積極地參與跟硬盤驅(qū)動器之間的數(shù)據(jù)傳輸。預(yù)先在主存儲器中寫入數(shù)據(jù),可以防止在執(zhí)行中出現(xiàn)遺漏。主存儲器更快且更有效的數(shù)據(jù)傳輸,可降低硬盤驅(qū)動器的活動時間以及硬盤驅(qū)動器的整體功耗。根據(jù)具體應(yīng)用的不同,功耗降低的程度也不相同。一個完整的單芯片配套解決方案是由硬件來控制數(shù)據(jù)的傳輸,從而大大增強(qiáng)系統(tǒng)的性能。由于基本數(shù)據(jù)的傳輸都在硬件中進(jìn)行處理,不必再擔(dān)心中斷反應(yīng)時間和中斷堆棧。UDMA的ATA-66也應(yīng)能夠在這方案中被實(shí)現(xiàn),而且更能有效地提高系統(tǒng)性能。
缺點(diǎn)
一般情況下,只有一個外部主設(shè)備可以對SDRAM進(jìn)行直接訪問。大部分具有外部圖形協(xié)處理器或者其他相關(guān)硬件加速器的CPU,都具有專供該外部設(shè)備使用的SDRAM控制,使得IDE失去了用武之地。雖然可編程QuickLogicIDE橋接處理器中使用的某些仲裁邏輯可以允許超過一個總線主控,但是一般情況下,系統(tǒng)要求專用硬件加速器必須具有優(yōu)先級別和總線讀寫。本方案有利于提升系統(tǒng)性能和驅(qū)動程序開發(fā),但是隨著系統(tǒng)內(nèi)存總線速率的提升和向 DDR SDRAM技術(shù)的轉(zhuǎn)移,允許外部內(nèi)存總線主控的CPU已經(jīng)不再是主流產(chǎn)品。而且,由于SDRAM控制器和用于控制的外部總線接口,這種方案還需要配備更多的邏輯電路,這就不可避免地增加了該設(shè)計的成本。
性能測試
用于低功耗應(yīng)用領(lǐng)域的嵌入式處理器缺乏硬盤控制器,這使得系統(tǒng)設(shè)計師不得不自己解決連接性難題。 支持下一代迷你硬盤的標(biāo)準(zhǔn)如CE-ATA(類似SDIO協(xié)議)和iVDR(基于串行ATA)可能進(jìn)一步延緩在新SoC上硬盤驅(qū)動器控制器的出現(xiàn)。
然而,由于處理器和硬盤消耗了大量的系統(tǒng)功耗,因此,要想實(shí)現(xiàn)主內(nèi)存和硬盤驅(qū)動之間的更有效的信息傳遞必然會影響電池的壽命。巧妙地采用橋接器,可以提高主內(nèi)存和硬盤驅(qū)動這兩個子系統(tǒng)處于節(jié)電狀態(tài)的時間百分比,從而實(shí)現(xiàn)更高的電池效率。
QuickLogic提供了超低功耗的IDE橋接控制器作為配套芯片來連接低功耗嵌入式處理器,從而在提升系統(tǒng)性能的同時減少了硬盤存儲相關(guān)作業(yè)的CPU占用率,最大限度地降低了功耗。QuickLogic提供的IDE橋接器可以在實(shí)際應(yīng)用中實(shí)現(xiàn)10Mbps~13Mbps的數(shù)據(jù)傳輸速率。尤其是該產(chǎn)品基于QuickLogic 微瓦FPGA技術(shù),這意味著移動平臺系統(tǒng)設(shè)計師可以跨越基于傳統(tǒng)SRAM的FPGA造成的功耗限制和CPLD性能的挑戰(zhàn)。同時它還遵循正興起的總線標(biāo)準(zhǔn),并具有整合額外系統(tǒng)功能的能力。
人們越來越意識到,在便攜式系統(tǒng)增加額外系統(tǒng)功能的同時,必須注意其對電池壽命的影響。系統(tǒng)性能和功耗的最佳搭配,是通過在基于可編程邏輯的配套設(shè)備中,用硬件方法實(shí)現(xiàn)大量的數(shù)學(xué)算法和數(shù)據(jù)通道管理,而不是在嵌入式處理器上用軟件的方法來實(shí)現(xiàn)。QuickLogic配套芯片方法可以為系統(tǒng)設(shè)計師提供更多的工具來權(quán)衡系統(tǒng)性能和功耗,從而實(shí)現(xiàn)最佳搭配。