目前,硬盤(pán)驅(qū)動(dòng)器采用的主流接口是高技術(shù)配置接口標(biāo)準(zhǔn)(ATA),即IDE接口,而且絕大多數(shù)硬盤(pán)驅(qū)動(dòng)器都采用了并行ATA接口。部分硬盤(pán)驅(qū)動(dòng)器同時(shí)也支持CF (Compact Flash)規(guī)范、安全數(shù)字輸入/輸出(SDIO)標(biāo)準(zhǔn)和串行ATA規(guī)范。由于并行ATA和CF是便攜手持市場(chǎng)的最普遍的兩個(gè)標(biāo)準(zhǔn),因此本文側(cè)重討論這兩個(gè)規(guī)范。CF 3.0規(guī)范能夠在與標(biāo)準(zhǔn)IDE完全相同的真IDE模式下操作。與CF2.1相比,CF3.0增加了極端直接內(nèi)存訪問(wèn)(Ultra DMA)模式。
通常,硬盤(pán)驅(qū)動(dòng)器并不需要支持所有的模式。目前,1.8英寸硬盤(pán)能夠支持所有的模式,1英寸硬盤(pán)能支持到UDMA4模式。考慮到便攜消費(fèi)類市場(chǎng)對(duì)尺寸和功耗的要求,因此本文側(cè)重于討論1.8英寸或更小尺寸的硬盤(pán)驅(qū)動(dòng)器。這些微硬盤(pán)的實(shí)際數(shù)據(jù)吞吐量遠(yuǎn)小于他們的理論值。硬盤(pán)的直徑直接影響了數(shù)據(jù)傳輸率。例如,1英寸硬盤(pán)驅(qū)動(dòng)器比2.5英寸硬盤(pán)驅(qū)動(dòng)器要慢許多,這是因?yàn)橛脖P(pán)外直徑變小,意味著外圍磁軌的最快線速度也將同樣變小。
圖1主ATA控制與CPLD解決方案:采用一個(gè)外部總線接口或GPIO端口和一個(gè)用于連接邏輯電路的CPLD,主CPU控制ATA時(shí)序和與硬盤(pán)相關(guān)的任務(wù)。
目前,大多數(shù)便攜式低功耗嵌入式處理器都支持CF接口,但是缺乏專用的IDE控制器。雖然CF3.0支持真IDE模式和ATA規(guī)范的部分標(biāo)準(zhǔn),但是這種方法必須依靠處理器本身來(lái)控制ATA時(shí)序和建立數(shù)據(jù)連接。而且從系統(tǒng)角度來(lái)看,這種模式在傳輸大量數(shù)據(jù)時(shí)效率不高。在嵌入式領(lǐng)域,當(dāng)設(shè)計(jì)師采用硬盤(pán)驅(qū)動(dòng)器技術(shù)時(shí),可以選用CF接口、通用I/O端口或者一個(gè)帶有用于連接某些邏輯電路的CPLD的外部總線接口等方案來(lái)實(shí)現(xiàn)連接。這使得他們可以采用現(xiàn)有的主處理器架構(gòu)和軟件環(huán)境來(lái)更快地推出產(chǎn)品,取得市場(chǎng)先機(jī)。盡管這種方法簡(jiǎn)單且經(jīng)濟(jì),但在采用這種方法前,設(shè)計(jì)師必須充分理解它對(duì)系統(tǒng)性能的影響。因此,在選擇一個(gè)特定的系統(tǒng)方案之前,有必要為終端應(yīng)用確定一個(gè)清晰的、可量化的性能目標(biāo)。因?yàn)橹挥羞@樣,才能夠應(yīng)用該目標(biāo)來(lái)指導(dǎo)系統(tǒng)劃分過(guò)程和決定是否有必要改善性能。
圖2 局部總線接口和QuickLogic IDE控制:采用一個(gè)外部總線接口或GPIO端口和外部硬件中的專用QuickLogic IDE控制器來(lái)加速對(duì)硬盤(pán)驅(qū)動(dòng)器(HDD)的讀寫(xiě)。
外部總線接口與CPLD
優(yōu)點(diǎn)
本方案只需要控制信號(hào)和主處理器的部分尋址信號(hào)與CPLD連接,來(lái)產(chǎn)生硬盤(pán)驅(qū)動(dòng)器所需的接口信號(hào)。當(dāng)系統(tǒng)中存在其他設(shè)備共享數(shù)據(jù)總線時(shí),還需要額外的分離邏輯部件將總線與系統(tǒng)的其他部分分離開(kāi)來(lái)。從硬件角度來(lái)講,這個(gè)方案非常簡(jiǎn)單、直接而且提供了應(yīng)用所需的存儲(chǔ)。然而,系統(tǒng)設(shè)計(jì)是需要考慮數(shù)據(jù)吞吐量的可能瓶頸和對(duì)主處理器的影響。若要設(shè)計(jì)一個(gè)性價(jià)比高和有競(jìng)爭(zhēng)力的解決方案,需要滿足以下兩條件中至少一個(gè):硬盤(pán)讀寫(xiě)的數(shù)據(jù)中不包括極大數(shù)量的數(shù)據(jù)文件或豐富的多媒體內(nèi)容;性能和數(shù)據(jù)吞吐量不是系統(tǒng)的關(guān)鍵性要求。
缺點(diǎn)
當(dāng)處理器負(fù)責(zé)產(chǎn)生和控制ATA時(shí)序的時(shí)候,它將浪費(fèi)額外的周期來(lái)處理時(shí)序和數(shù)據(jù)移動(dòng)。系統(tǒng)中,性能瓶頸的多少取決于是否存在DMA控制器,以及主處理器在外部總線接口和主內(nèi)存之間的數(shù)據(jù)傳輸效率。如果再加上微處理器在每次數(shù)據(jù)讀寫(xiě)中對(duì)來(lái)自硬盤(pán)驅(qū)動(dòng)器的IO-RDY信號(hào)反應(yīng)的等待時(shí)間,將形成一個(gè)很?chē)?yán)重的性能瓶頸。由于本方案直接與每個(gè)驅(qū)動(dòng)器相關(guān)的任務(wù)掛鉤,因此對(duì)CPU占用率產(chǎn)生了很大的影響。主CPU的絕大多數(shù)時(shí)間將被用來(lái)為硬盤(pán)服務(wù),而不是執(zhí)行與應(yīng)用相關(guān)的任務(wù)。