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