Flash的擦除操作是以block塊為單位的,與此相對應的是其他很多存儲設備,是以bit位為最小讀取/寫入的單位,Flash是一次性地擦除整個塊:在發送一個擦除命令后,一次性地將一個block,常見的塊的大小是128KB/256KB。全部擦除為1,也就是里面的內容全部都是0xFF了,由于是一下子就擦除了,相對來說,擦除用的時間很短,可以用一閃而過來形容,所以,叫做Flash Memory。中文有的翻譯為(快速)閃存。 【Flash相對于普通設備的特殊性】 1. 上面提到過的,Flash最小操作單位,有些特殊。 一般設備,比如硬盤/內存,讀取和寫入都是以bit位為單位,讀取一個bit的值,將某個值寫入對應的地址的位,都是可以按位操作的。 但是Flash由于物理特性,使得內部存儲的數據,只能從1變成0,這點,可以從前面的內部實現機制了解到,只是方便統一充電,不方便單獨的存儲單元去放電,所以才說,只能從1變成0,也就是釋放電荷。 所以,總結一下Flash的特殊性如下:
| | | | | | | | | | | | | | 將整個塊都擦除成全是1,也就是里面的數據都是0xFF③ | | | |
表2.Flash和普通設備相比所具有的特殊性 注: ①之所以將寫操作叫做編程,是因為,flash和之前的EPROM,EEPROM繼承發展而來,而之前的EEPROM(Electrically Erasable Programmable Read-Only Memory),往里面寫入數據,就叫做編程Program,之所以這么稱呼,是因為其對數據的寫入,是需要用電去擦除/寫入的,就叫做編程。 ②對于目前常見的頁大小是2K/4K的Nand Flash,其塊的大小有128KB/256KB/512KB等。而對于Nor Flash,常見的塊大小有64K/32K等。 ③在寫數據之前,要先擦除,內部就都變成0xFF了,然后才能寫入數據,也就是將對應位由1變成0。
|