基于閃存的星載大容量存儲(chǔ)器的研究和實(shí)現(xiàn)
3 系統(tǒng)的基本工作原理下面以閃存的寫(編程)操作為線索,闡述系統(tǒng)的基本工作原理。
3.1 寫操作的準(zhǔn)備和啟動(dòng)
1394高速總線上的串行數(shù)據(jù)通過(guò)一定的接口芯片變換成并行數(shù)據(jù)。當(dāng)大容量存儲(chǔ)器接收到外部1394高速總線上的數(shù)據(jù)存儲(chǔ)握手信號(hào)時(shí),1394接口控制子模塊利用握手信號(hào)產(chǎn)生一定的時(shí)鐘和控制信號(hào),控制高速數(shù)據(jù)緩存入32位的輸入FIFO。當(dāng)輸入FIFO的存儲(chǔ)量達(dá)到一次8級(jí)流水運(yùn)行的數(shù)據(jù)量時(shí),就向CPU發(fā)出中斷,申請(qǐng)寫操作啟動(dòng)。
3.2 寫流水操作的加載和自動(dòng)編程
存儲(chǔ)區(qū)的尋址采用內(nèi)存尋址方式,即為FLASH存儲(chǔ)區(qū)分配一段內(nèi)存空間,CPU象訪問(wèn)內(nèi)存一樣對(duì)其進(jìn)行尋址,大小為2M,共21根地址線,其中高3位是子模塊選擇,選擇8級(jí)流水中的某一級(jí);低18位是子模塊的每塊芯片的頁(yè)(行)地址。對(duì)于芯片內(nèi)的列地址,由于向每一頁(yè)寫入數(shù)據(jù)時(shí),總是從頁(yè)的起始處開始寫,即列地址(頁(yè)內(nèi)編程起始地址)是固定的,因此可以直接由FPGA給出。當(dāng)CPU接收到寫操作啟動(dòng)的中斷申請(qǐng)時(shí),給出寫操作命令,并進(jìn)行地址譯碼。存儲(chǔ)區(qū)控制子模塊將CPU給出的命令和地址經(jīng)過(guò)一定的邏輯轉(zhuǎn)換成片選、命令、地址及控制信號(hào),依次對(duì)8級(jí)存儲(chǔ)子模塊進(jìn)行片選并完成各級(jí)命令和內(nèi)部地址的加載工作。然后再由存儲(chǔ)區(qū)控制子模塊產(chǎn)生一定的控制信號(hào),控制輸入FIFO啟動(dòng)對(duì)8級(jí)存儲(chǔ)子模塊的數(shù)據(jù)加載工作:首先對(duì)第一級(jí)進(jìn)行片選,數(shù)據(jù)流由輸入FIFO經(jīng)存儲(chǔ)區(qū)數(shù)據(jù)子模塊驅(qū)動(dòng)后輸入第一級(jí)存儲(chǔ)子模塊,經(jīng)過(guò)512個(gè)寫周期后(頁(yè)有效數(shù)據(jù)),完成對(duì)四片并行的FLASH芯片的頁(yè)加載,加載完成后由存儲(chǔ)區(qū)控制子模塊給出自動(dòng)編程的起始指令10H,第一級(jí)子模塊的四片芯片就開始將加載到頁(yè)寄存器的數(shù)據(jù)寫入到芯片內(nèi)部,進(jìn)行自動(dòng)編程工作。頁(yè)編程操作時(shí)序圖如圖4所示,這時(shí)它們的片選可以無(wú)效。然后使第二級(jí)片選信號(hào)有效,開始對(duì)第二級(jí)進(jìn)行數(shù)據(jù)加載。依次下去,完成8級(jí)存儲(chǔ)子模塊的數(shù)據(jù)加載。
3.3 檢驗(yàn)寫流水操作是否成功
第一級(jí)存儲(chǔ)子模塊在完成了數(shù)據(jù)加載后開始自動(dòng)編程,待到8級(jí)的數(shù)據(jù)加載都完成后,其自動(dòng)編程已接近尾聲。此時(shí)不斷檢測(cè)該級(jí)四片芯片的忙/閑端口,一旦它們都處于“閑”狀態(tài)時(shí),說(shuō)明自動(dòng)編程都已經(jīng)結(jié)束。這時(shí)由存儲(chǔ)區(qū)控制子模塊的控制邏輯產(chǎn)生片選信號(hào),選通第一級(jí)存儲(chǔ)子模塊并發(fā)讀狀態(tài)命令70H,通過(guò)采樣四片芯片的I/O端口的“0”狀態(tài)來(lái)檢測(cè)編程是否成功,并將檢測(cè)結(jié)果鎖存進(jìn)FPGA內(nèi)部的寄存器;然后按同樣的方式對(duì)第二級(jí)存儲(chǔ)子模塊進(jìn)行檢測(cè),依次下去,直到“記錄”下8級(jí)存儲(chǔ)子模塊的編程成功與否的狀態(tài)信息后,向CPU申請(qǐng)中斷并將這些狀態(tài)值返回給CPU。CPU則根據(jù)這些狀態(tài)值更新無(wú)效塊映射表,并將無(wú)效塊映射到冗余區(qū),對(duì)編程出錯(cuò)的存儲(chǔ)子模塊重新編程。重新編程與正常編程的工作原理是一致的 只不過(guò)數(shù)據(jù)是由SRAM輸出給FLASH,且不能進(jìn)行流水操作。
評(píng)論