① 硬碟工具MHDD ERASE擦除 與 HPA剪切 命令的區別
MHDD的ERASE指令的作用之一是將指定扇區的內容清零,也就是我們常說的擦除。
作用之二是激活冗餘扇區替換機制,把發現的有缺陷的扇區記入G表,並用剩餘的有效空間替代當前發現的缺陷扇區(壞扇區),以保持磁碟的有效容量不會改變。這就是MHDD的
ERASE指令消除壞道的基本原理。
HPA指令是用於修改磁碟有效扇區數量的一個指令。如果通過發現壞扇區集中在磁碟後部的話,可以通過HPA指令更改磁碟的總扇區數,把這一部分有缺陷的空間封閉起來不再使用,以保證其他空間存儲數據的安全。
至於你所說的排序,那是對扇區的編號而言的。事實上,真正的扇區ID號(如LBA)在物理上可以是不連載的。但這並不影響扇區之間的邏輯排位。
② 硬碟erase有什麼作用
硬碟是電腦最重要的外存儲器,他具有容量大速度快等優點。 硬碟有很多指標,它是一個機械部件,指標有主軸轉速,尋道時間。在性能方面,有單碟容量,內部傳輸速率等。 現在硬碟子系統是限制電腦性能的最大瓶頸,硬碟雖是較快的外存,但它的速度與CPU內存相比實在很慢。 於是萬轉硬碟,RAID,iRAM不斷出現。 硬碟速度提升之後,系統的整體性能會大幅提高。 見過iRAM(用內存作虛擬硬碟)的都會有此感覺,3Gb/s的速率是什麼硬碟都趕不上的,進入系統,游戲,程序的時間明顯減少,測試得分明顯提高。%D%A
③ Nand flash為什麼要選擇write和erase單位不對稱的讀寫機制
根本原因是一個erase的原理需要加高電壓在atub. Atub 是很多block 共連的. Block 是最小的可以控制的erase 單元. Write的話電壓可以只apply 在需要寫的block 裡面單獨的wordline. 所以兩者無法對稱
④ C++11 vector erase傳參後自增迭代器的效果和原理
不可以,erase一個元素以後,原先指向該元素的迭代器就已失效,不能繼續使用。
⑤ 關於固態硬碟
固態硬碟是由控制單元和固態存儲單元(DRAM或FLASH晶元)組成的硬碟。由於固態硬碟沒有普通硬碟的旋轉介質,因而抗震性極佳。
目前由於成本較高,正在逐漸普及到DIY市場。 由於固態硬碟技術與傳統硬碟技術不同,所以產生了不少新興的存儲器廠商。廠商只需購買NAND存儲器,再配合適當的控制晶元,就可以製造固態硬碟了。新一代的固態硬碟普遍採用SATA-2介面。
固態硬碟的存儲介質分為兩種,一種是採用快閃記憶體(FLASH晶元)作為存儲介質,另外一種是採用DRAM作為存儲介質。
固態硬碟與普通硬碟比較,擁有以下優點:
啟動快
沒有電機加速旋轉的過程。
讀取延遲小
不用磁頭,快速隨機讀取,讀延遲極小。根據相關測試:兩台電腦在同樣配置的電腦下,搭載固態硬碟的筆記本從開機到出現桌面一共只用了18秒,而搭載傳統硬碟的筆記本總共用了31秒,兩者幾乎有將近一半的差距。
碎片不影響讀取時間
相對固定的讀取時間。由於定址時間與數據存儲位置無關,因此磁碟碎片不會影響讀取時間。
寫入速度快
基於DRAM的固態硬碟寫入速度極快。
無噪音
因為沒有機械馬達和風扇,工作時噪音值為0分貝。某些高端或大容量產品裝有風扇,因此仍會產生噪音。
發熱量較低
低容量的基於快閃記憶體的固態硬碟在工作狀態下能耗和發熱量較低,但高端或大容量產品能耗會較高。
不會發生機械故障
內部不存在任何機械活動部件,不會發生機械故障,也不怕碰撞、沖擊、振動。這樣即使在高速移動甚至伴隨翻轉傾斜的情況下也不會影響到正常使用,而且在筆記本電腦發生意外掉落或與硬物碰撞時能夠將數據丟失的可能性降到最小。
工作溫度范圍更大
典型的硬碟驅動器只能在5到55℃范圍內工作。而大多數固態硬碟可在-10~70℃工作,一些工業級的固態硬碟還可在-40~85℃,甚至更大的溫度范圍下工作(e.g: RunCore軍工級產品溫度為-55~135℃)。
體積小重量輕
低容量的固態硬碟比同容量硬碟體積小、重量輕。但這一優勢隨容量增大而逐漸減弱。直至256GB,固態硬碟仍比相同容量的普通硬碟輕。
[編輯本段]固態硬碟的缺點
固態硬碟與傳統硬碟比較,擁有以下缺點:
成本高
每單位容量價格是傳統硬碟的5~10倍(基於快閃記憶體),甚至200~300倍(基於DRAM)。
容量低
目前固態硬碟最大容量遠低於傳統硬碟。傳統硬碟的容量仍在迅速增長,據稱IBM已測試過4TB的傳統硬碟。
易受外界影響
由於不像傳統硬碟那樣屏蔽於法拉第籠中,固態硬碟更易受到某些外界因素的不良影響。如斷電(基於DRAM的固態硬碟尤甚)、磁場干擾、靜電等。
寫入壽命有限
寫入壽命有限(基於快閃記憶體)。一般快閃記憶體寫入壽命為1萬到10萬次,特製的可達100萬到500萬次,然而整台計算機壽命期內文件系統的某些部分(如文件分配表)的寫入次數仍將超過這一極限。特製的文件系統或者固件可以分擔寫入的位置,使固態硬碟的整體壽命達到20年以上。
數據難以恢復
數據損壞後難以恢復。一旦在硬體上發生損壞,如果是傳統的磁碟或者磁帶存儲方式,通過數據恢復也許還能挽救一部分數據。但是如果是固態存儲,一但晶元發生損壞,要想在碎成幾瓣或者被電流擊穿的晶元中找回數據那幾乎就是不可能的。當然這種不足也是可以犧牲存儲空間來彌補的,主要用RAID 1來實現的備份,和傳統的存儲的備份原理相同。由於目前SSD的成本較高,採用這種方式備份還是價格不菲。
電池航程較短
根據實際測試,使用固態硬碟的筆記本電腦在空閑或低負荷運行下,電池航程短於使用5400RPM的2.5英寸傳統硬碟。
能耗較高
基於DRAM的固態硬碟在任何時候的能耗都高於傳統硬碟,尤其是關閉時仍需供電,否則數據丟失。
⑥ 基於flash存儲器的文件系統有哪些
Flash 存儲器( Flash Memory) 是一種高可靠性、高密度的固態存儲器件。 其存儲方式是完全非易失性的,掉電後可以保存數據;可以在線寫入,並可按頁連續位元組寫入,存取速度快,所以嵌入式系統通常使用Flash 存儲器作為存儲設備。 但Flash存儲器也存在著兩個主要缺陷:一是在重寫之前必須進行擦除,因為Flash 存儲器劃分成很多擦除塊(SectorOErase) ,對任何一位數據進行修改必須先擦除整個塊(Sector) ;二是擦除塊的擦除次數有限,當一個塊提前達到擦除次數上限時, 將導致整個Flash 存儲器無法使用。 所以,目前PC 機上很多成熟的基於磁碟的文件系統在Flash 存儲器上使用都存在著不足。
嵌入式系統應具有的特點: 一是高可靠性,在惡劣環境下系統仍能正常工作;二是低消耗,受成本限制系統設計必須量體裁衣,去除冗餘;三是高效率,在佔用較少資源情況下保證功能需求,這樣就要求演算法簡單,效率高。 而日誌文件系統(Log-St ruct ured File System) 在數據更新時無需將數據寫入原存儲區域,適應Flash 存儲器無法進行重寫這一特點。 目前,針對Flash 存儲器的缺陷而設計的Linux 下的J FFS 文件系統,就是採用簡化的日誌文件系統。 J FFS 文件系統將磨損均衡集成於清除機制之中,在帶來掉電可恢復功能的同時,大大減少了塊擦除的次數,提高了文件系統的存取速度和效率。 但是,J FFS 文件系統無法單獨使用,或者使用於其它實時操作系統中。 對由於受成本和實時性限制而無法使用Linux 的一些嵌入式系統,也就無法使用J FFS 文件系統。基於上述分析,該嵌入式文件系統適合在開源實時操作系統(如μC/OS-II) 和無操作系統的情況下使用。
嵌入式文件系統原理
在日誌文件系統中,一個文件被修改後不是被寫入到原來的存儲空間,而是被加到所有內容的後面,象日誌一樣被更新,這就是日誌文件系統的基本原理。 由於同一個文件在文件系統中會留下不同的版本,所以系統需要設置一張表標注文件的最新與以前的版本。 在內容不斷添加時為不將存儲空間占滿,系統設計了一種回收機制,回收無效內容佔用的空間。
日誌文件系統在文件更新時不用將文件寫回原來的地址,這對Flash 存儲器這種存儲介質最為適合。 文中所設計的嵌入式文件系統採用了日誌文件系統的設計原理,以及J FFS 文件系統將磨損均衡集成於清除機制之中的方法。 該系統將一個可擦寫塊平分為多個簇,文件的讀寫以簇為單位進行。簇的狀態有3 種:臟、干凈和空。 臟表示所存內容已被置為無效;干凈表示所存數據有效;空表示可以寫入數據。 文件和目錄在該系統中被作為節點,一個節點佔用若干個簇,節點中的內容連續存儲,但不能越過塊邊界存儲。 該系統設置一個索引節點,保存整個系統的信息,其中包含保存有各簇狀態的簇狀態表。
每一次文件更新後內容都將被添加至末尾處,索引節點也被更新,總是佔用最末尾的干凈簇。 回收臟簇時,將所要擦除塊中的干凈簇重寫到空簇中,再進行塊擦除。 當內容寫至存儲體末端,則從頭部重新開始循環存儲。 所設計的文件系統的操作過程見圖1。
ic72新聞中心
嵌入式文件系統設計
Flash 存儲器中的存儲結構
Flash 存儲器中的存儲結構見圖2。 該存儲器中每個簇的第一個字作為簇的狀態字,表示此簇是否為一個節點的首簇或空簇。 每個節點的首部存放此節點屬性(文件/目錄/索引節點) 和節點標識號。
ic72新聞中心
索引節點
索引節點存放該文件系統的大部分信息。 包括32 位的索引節點更新號、一張簇狀態表、下一個要被擦除塊的塊號、給下一個新建節點(文件或目錄) 的節點編號、系統根目錄信息表。系統每一次更新都會產生新的索引節點,索引節點更新號加1。 按照Flash 存儲器的使用壽命10 年計算,需要每秒更新136 次以上,才能達到索引節點更新號的上限,所以認為擁有最大更新號的索引節點為最新的索引節點。 簇狀態表中對應每一個簇有兩個Bit 位,表示各個簇的狀態(干凈01 ,臟11 ,空00) 。 根目錄信息表存放根目錄下的各個目錄項,每個目錄項包括:屬性(文件0x1/目錄0x0) 、文件名或目錄名、節點編號、此文件(或目錄) 對應節點的起始簇地址、根目錄表的大小可變。
目錄節點
目錄節點存放的內容有目錄名,目錄項個數,及所有目錄項信息。 文件節點存放文件名,文件大小,文件屬性及文件內容,內存中的目錄結構見圖3。
ic72新聞中心
內存數據結構及基本操作
該文件系統載入(Mount ) 後,會在內存中建立一個系統的映象。 該映象包括:索引節點中的信息、目錄及文件信息、每個可擦寫塊中包含的節點信息、未存檔的節點信息。 簇狀態表、索引節點更新號、新節點編號、下一擦除塊號等索引節點中的內容,在內存中均作為不同的變數。 內存中為每個文件和目錄都建立了映象,數據結構見圖4 和圖5。
ic72新聞中心
ic72新聞中心
內存中的文件節點不包含文件真正的數據,而使用指針。 文件被打開時,在內存中創建一塊新存儲區域存放數據,數據指針便指向此存儲區,未被打開時,此指針指向空。 對於每個目錄有1 個目錄層數,表示此目錄的深度,如根目錄的目錄層數為0 ,根目錄的下一級目錄則為1 ,依此類推。 存儲地址保存文件或目錄在Flash 中的地址。 文件和目錄都被存在上一級目錄下,所屬目錄指針即指向上一級目錄在內存中的數據結構,根目錄的所屬目錄指針即為空。 對於同目錄下的不同節點,在內存中使用鏈表將其串聯,同目錄文件指針即聯成鏈表。 鏈表的首指針保存在上一級目錄中,首目錄項指針即指向鏈表的首項。 為提高塊擦寫的效率,存儲在同一個可擦寫塊中的各個節點在內存中也建立一個鏈表,塊隊列指針即用於連成此鏈表。 為標識被修改的節點,利用一個未保存隊列,未保存隊列指針即用來建立此隊列。
該文件系統載入(mount ) 時,首先順序掃描Flash 中的每個索引節點,查找出最大的索引節點更新號,此更新號對應的索引節點即為最新的索引節點。 查找到最新索引節點後,將簇狀態表等信息映射到內存的數據結構中。 依據索引節點中的根目錄信息,遍歷所有節點,建立內存中的目錄文件結構,並將節點添加到對應的擦寫塊隊列中。 對一個文件編輯並保存的過程見圖6。
ic72新聞中心
文件打開時,先在內存中分配一塊空間作為數據區,將內容寫入,並定位文件節點的數據指針指向該內存中的數據區。 如果文件內容被修改,就將文件節點添加到未存檔隊列,依次寫入Flash 存儲器中,並修改簇狀態表。 保存時將內存中數據區內容寫入Fhttp://www.xiupin365.net/sitemap.html?lash 中,釋放申請的內存空間,修改節點中的數據指針和簇狀態表,再將文件的所有上級目錄重新寫入Flash ,最後將更新後的索引節點內容寫入Flash。 如果文件未被修改,則只需修改數據指針即可。
節點加入未存檔隊列的順序按照目錄層數的大小排列,文件節點排在隊列首,目錄層數最大的排在其後,目錄層數為1 的排在隊列末尾,根目錄不加入未存檔隊列。
嵌入式文件系統特殊處理機制
均衡擦寫機制
為了避免任意一個可擦除塊因擦寫次數過多而過早報廢,文件系統對Flash擦寫時採用了均衡擦寫機制。 考慮到系統的精簡性,擦寫在整片Flash 的各塊中依次進行,一塊擦寫完後,下一個被擦寫的塊即為後一個塊,在系統的索引節點中保存了下一個要擦除的塊號。 當文件系統中的剩餘空間減少到設定值時,系統會擦除此塊,以回收臟簇佔用的空間。 對應每個可擦寫塊都有一個節點隊列,此塊中包含的節點都加入其中。塊擦除的流程見圖7。
ic72新聞中心
首先,將未保存於隊列中的節點保存,清未保存隊列。 然後將塊隊列中的所有文件節點轉移到空簇中,同時將文件路徑上的各級目錄加入到未存檔隊列中。 對於塊隊列中的目錄節點,則將它和其路徑上的各級目錄加入未存檔隊列中,按照未保存隊列的順序,依次將各個目錄寫入Flash 中,最後寫入最新的索引節點。 因為目錄節點加入未存檔隊列時,按照目錄層數的大小排列,所以按照未保存隊列的順序寫入時,可以保證當一個目錄要被寫入Flash 時,它的所有下級目錄已被寫入Flash 中。 所有下級目錄在Flash 中的存儲地址都已確定。當該文件系統的空間將達到存儲上限時,可能會出現特殊情況,即廢簇回收時,空簇的空間不足,無法將所有干凈簇重寫。 文件系統為此建立了應急機制,先將文件節點內容存在內存中,這時新建一個臨時未保存隊列,專門保存文件節點,在塊擦寫完成後,將剩餘的文件節點寫入新的空簇中,其演算法與圖7 所示流程大致相同。 但是,一旦在擦寫時斷電,會導致該塊上的所有數據丟失。
斷電錯誤處理機制
當系統遭遇斷電重新啟動後,索引節點中的信息會與系統中的狀態不符,這時便需要錯誤處理機制。 錯誤一般是索引節點中標注的空簇已被寫入了數據,錯誤處理就是將此簇標志為臟簇,並查找下一個空簇重新寫入。
多任務處理機制
該文件系統允許同時打開多個文件,在多任務操作系統下,為了避免沖突建立了多任務處理機制。 系統允許打開的多個文件在內存中同時被編輯修改,但是對Flash 寫入操作有限制。 處理方法是設立Flash 寫入保護區,在此區中只允許當前正在執行的任務執行Flash 寫入操作。 實現Flash 寫入保護區的方法是建立一個初始值為1 的信號量,當一個節點需要Flash 寫入時,首先申請信號量,完成後再釋放信號量。 Flash 寫入保護區見圖6 、圖7。在圖6 中,空操作語句是用來對多個文件的保存進行同步。 例如,有文件1 和文件2 需要保存,先將文件1 的內容寫入Flash 中,文件1 路徑下的目錄節點被添加到未保存隊列中,再將文件2 的內容寫入Flash 中,文件2 路徑下的目錄節點也被添加到未保存隊列中,最後將未保存隊列中的所有節點都寫入Flash 中。 這樣,如果同一路徑下的兩個文件同時存檔,可避免路徑下的相同目錄節點被寫入兩次,從而提高了效率。 不足之處在於,如果很多文件同時存檔,會導致索引節點在一段時間內都無法寫入Flash 存儲器,有斷電丟失的危險。 但對於一般嵌入式系統來說,很少會碰到這種情況。 當進行Flash存儲器擦寫時,在取塊隊列首節點至索引節點寫入完成這段時間內都不允許進行其他Flash 存儲器的寫入操作,這是為了保證數據的完整性,同時也提高了文件系統的穩定性。
無目錄文件系統的優化
許多嵌入式系統設計中雖沒有目錄管理的要求,但是對執行效率和資源消耗的要求較高。 對於不要求有目錄管理的精簡文件系統,在設計時也進行了優化。 精簡文件系統在Flash 中的存儲格式與上述設計相同,文件系統中的所有文件信息都保存在索引節點的根目錄信息表中。 精簡文件系統在內存中的映象則要簡單很多,只包含索引節點中的信息,包括簇狀態表、下一個擦除塊、下一個新節點的標號和根目錄信息,而不用為每個文件都建立內存中的映象,節省大量的內存空間。 文件的編輯存檔過程簡化為:打開文件、編輯、將文件寫入Flash 存儲器、將修改後的索引節點寫入Flash 存儲器。 擦寫則只需通過查詢根目錄信息表中的各個目錄項,將塊中的所有文件節點寫入空簇即可。在無目錄管理的情況下,精簡文件系統佔用的內存資源可以減少,操作也可便捷,提高了效率。 對於大量只需要按名存取的簡單文件管理的小型嵌入式系統而言,針對Flash 存儲器的簡單文件系統將佔用資源少,執行效率高,有很大的應用價值。
嵌入式文件系統實現及性能分析
該文件系統的實現採用了分層方法,分為3 層4 個部分:應用程序介面、文件系統核心、操作系統調用介面、Flash 存儲器驅動,實現結構見圖8。
ic72新聞中心
實現平台中RTOS 為μC/OSOII 實時操作系統,CPU 使用三星S4510B作為處理器,Flash 存儲器晶元為FUJ ITSU 的29LV160 TE。 針對不同的實時操作系統和Flash 存儲器晶元需要實現不同的操作系統介面和Flash 存儲器驅動。
針對μC/ OSOII 編寫操作系統調用介面,包括5個函數: ①系統調用介面初始化FS_Sys_Interface_Init ( ) ,創建互斥信號量和內存分區; ② Flash 寫入關閉FS_Sys_Write_Lock ( ) ,禁止Flash 寫入操作,調用μC/OS-II 中OSMutePend ( ) ; ③ Flash寫入打開FS_Sys_Write_Unlock ( ) ,重新允許Flash 寫入操作,調用μC/OS-II 中OSMutePost() ; ④內存空間申請FS_Sys_Mem_Alloc( ) 和內存空間添加FS_Sys_Mem_Add ( ) , 都調用OSMemGet ( ) 來完成; ⑤內存空間釋放FS_Sys_Mem_Free ( ) ,調用OSMemPut ( ) 完成,將申請的內存塊全部釋放。針對29LV160 TE 這款Flash 存儲器晶元,定義一個FlashDef 結構體的全局變數, 用於存儲Flash 器件信息,並且編寫針對此款Flash 的塊擦寫函數FS_Device_Sector_Erase ( ) 和數據寫入函數FJ FS_Device_Write ( ) 。
完成這兩部分的實現後,該系統就可運行調試。 測試應用程序介面(API) 。 應該提供的各部分功能,並在突然斷電情況下,測試文件系統的恢復情況。無目錄管理的精簡文件系統的載入,可在2μs內完成,文件寫入耗時主要為快閃記憶體的等待時間,系統本身只佔用不到200 個位元組的內存,產生的代碼段大小為7 K。 完整的文件系統載入時,需要建立內存中映象,耗時根據文件數量的多少而不同,一般為10μs ,產生的代碼段大小為11 K。 系統寫入效率較高,在無目錄管理的配置下尤其明顯。 試驗中系統在多次斷電的情況下,系統仍能恢復至上次存檔的狀態,雖會導致個別文件未更新,但不會導致文件系統崩潰。
⑦ 運行MHDD硬碟掃描的時候可以低格,那個命令是多少
ERASE 擦除。
效果和LFORMAT幾乎一樣。
經過ERASE處理後數據全部丟失,無法恢復。
擦除需要很長時間,如果是中了邏輯鎖之類的,可以執行ERASE,輸入開始和結束LBA,運行到2%左右停止就行了。
80G硬碟4個小時能完成就不錯,沒大問題不用這個命令,可以用F4功能里的ERASE,對壞道進行擦除。
(7)存儲器erase原理擴展閱讀:
AAM:自動噪音管理。可以用AAM(自動噪音管理)命令「所聽即所得」式的調節硬碟的噪音。按F2鍵後如果有AAM字樣,就表示硬碟支持噪音調節。鍵入AAM命令後,會顯示出當前硬碟的噪音級別,並且可以馬上就聽到硬碟的讀寫噪音。
要注意硬碟的噪音和性能是成正比的,噪音越大,性能越高,反之亦然。進入AAM命令後,按0鍵可以關閉AAM功能,按M鍵可以將噪音調至最小(性能最低),按P鍵可以將噪音調至最大(性能最高),按+加號和-減號可以自由調整硬碟的噪音值。
按L鍵可以獲得噪音和性能的中間值(對某些硬碟如果按+加號和-減號無效,而又不想讓噪音級別為最大或最小,可以按L鍵取噪音中間值),按D鍵表示關閉AAM功能,按ENTER鍵表示調整結束。