TWI467579B - 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 - Google Patents
電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TWI467579B TWI467579B TW100101524A TW100101524A TWI467579B TW I467579 B TWI467579 B TW I467579B TW 100101524 A TW100101524 A TW 100101524A TW 100101524 A TW100101524 A TW 100101524A TW I467579 B TWI467579 B TW I467579B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- gate flash
- memory
- code
- read command
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明係與反及閘快閃記憶體(NAND flash memory)相關,並且尤其與自動偵測反及閘快閃記憶體之讀取命令序的方法相關。
反及閘快閃記憶體具有容量大、成本低、存取速度快等優點,因此被廣泛應用在多種消費性電子產品中。除了儲存使用者資料外,反及閘快閃記憶體亦常被用以存放作業系統等佔用大量記憶體空間的軟體資料與程式。然而,受限於反及閘快閃記憶體以相同腳位做為位址傳輸埠和資料傳輸埠的特性,利用反及閘快閃記憶體儲存軟體資料與程式的電子裝置被開機或重置時,電子裝置中的控制器無法直接自反及閘快閃記憶體取得軟體資料與程式。更明確地說,只有在正確地發送讀取命令序後,控制器才能自反及閘快閃記憶體取得資料;問題在於,控制器在剛被啟動的情況下並不能得知該讀取命令序為何。
依容量大小,不同的反及閘快閃記憶體有不同的讀取命令序。就一種現行的反及閘快閃記憶體而言,讀取命令序分為四種:第一種是在命令00後加上三個位元組的位址,第二種是在命令00後加上四個位元組的位址,第三種是在命令00後依序加上四個位元組的位址及命令30,第四種是在命令00後依序加上五個位元組的位址及命令30。上述命令00和命令30皆為以十六進位制表示的命令,長度不等的位址則為控制器希望讀取之資料存放的位址。
針對從反及閘快閃記憶體開機時,控制器無法得知其讀取命令序為何的問題,目前有幾種替代方案,分述如下。
第一種解決方案為使用反或閘(NOR)快閃記憶體開機。電子裝置被開機或重置後,其中的控制器被設定為首先自反或閘快閃記憶體讀取第一段軟體程式,藉此初始化硬體系統(例如設定動態隨機存取記憶體控制器),並自反及閘快閃記憶體取得後續軟體資料與程式。反或閘快閃記憶體的內容可被重複修改,因此反及閘快閃記憶體適用的讀取命令序可被寫入上述第一段軟體程式中,使控制器能正確地存取反及閘快閃記憶體。這種方案的缺點有二。其一,反或閘快閃記憶體的價格較高,採用反或閘快閃記憶體會增加電子裝置的成本。其二,一旦電子裝置製造商因為庫存或備料等因素選用不同容量的反及閘快閃記憶體,反或閘快閃記憶體中的軟體程式必須相對應地更新,因此造成人力和時間的浪費,甚至可能延遲供貨進度。
另一種現行方案為使用OneNandTM
快閃記憶體開機。此種記憶體是將反及閘快閃記憶體晶片、靜態隨機存取記憶體晶片和邏輯晶片整合成單一晶片,並採用反或閘快閃記憶體介面。電子裝置被開機或重置後,OneNandTM
快閃記憶體偵測到電壓升緣,隨即進入冷重置模式(cold reset mode),將反及閘快閃記憶體晶片中最前端一千位元的資料搬移至靜態隨機存取記憶體,讓控制器經由反或閘快閃記憶體介面存取此資料。上述一千位元的資料即為初始化硬體系統的第一段軟體程式,可協助控制器自反及閘快閃記憶體取得後續軟體資料與程式,繼續開機流程。這種方案的缺點有二。其一,OneNandTM
快閃記憶體價格較高,會增加電子裝置的成本。其二,一旦採用OneNandTM
快閃記憶體之後,若電子裝置製造商決定改採其他種類的記憶體,即須重新設計、製作電路板系統;調整硬體的彈性因此受到極大限制。
尚有另一種替代方案為使用eMMC記憶體開機。eMMC記憶體是將反及閘快閃記憶體晶片和控制晶片包裹在一起,並利用多媒體記憶卡(MultiMediaCard)介面與外部處理器溝通。第4.3版之後的eMMC記憶體具有一開機模式,可讓外部處理器從eMMC記憶體讀取軟體資料與程式,以進行開機流程。這種方案同樣存在成本過高且硬體調整彈性低的缺點。此外,目前不同廠牌的eMMC記憶體被啟動後之反應時間有差異,增加了控制器設計上的複雜度和誤判風險。
為解決上述問題,本發明提出一種新的記憶體控制方案,藉由自動偵測程序,找出電子裝置中之反及閘快閃記憶體所適用的讀取命令序。經過適當的設計,本方案可適用於所有種類的反及閘快閃記憶體;即使電子裝置製造商因為庫存或備料等因素選用不同容量的反及閘快閃記憶體,該自動偵測程序同樣可找出相對應的讀取命令序,不須人力介入。除了可省去以人力修改設定所耗費的時間和金錢,本方案亦提供電子裝置製造商選用硬體的彈性空間。
根據本發明之一具體實施例為一電子裝置,其中包含一反及閘快閃記憶體、一輔助記憶體及一控制器。該反及閘快閃記憶體具有一讀取命令序。該輔助記憶體中儲存有用以偵測該讀取命令序之程式碼。於該電子裝置之一啟動程序中,該控制器自該輔助記憶體讀取並執行該程式碼,藉此取得該讀取命令序,並能根據該讀取命令序存取該反及閘快閃記憶體之一儲存內容。
根據本發明之另一具體實施例為應用於一電子裝置之啟動程序中的記憶體控制方法。該電子裝置包含一反及閘快閃記憶體及一輔助記憶體。該方法包含首先執行讀取儲存於該輔助記憶體中之一程式碼的步驟;該程式碼係用以偵測該反及閘快閃記憶體之讀取命令序。後續的步驟為執行該程式碼以取得該讀取命令序以及根據該讀取命令序存取該反及閘快閃記憶體之一儲存內容。
根據本發明之另一具體實施例為一電腦可讀取儲存媒體,其中儲存有可由一控制器讀取並執行之程式碼。於一電子裝置之啟動程序中,該程式碼係用以偵測一反及閘快閃記憶體之一讀取命令序。該程式碼包含:用以對該反及閘快閃記憶體發送一候選讀取命令序之第一子程式碼、用以偵測該反及閘快閃記憶體是否產生一回應訊號之第二子程式碼,以及用以重複執行第二子程式碼,直到該反及閘快閃記憶體產生該回應訊號之第三子程式碼。若第二子程式碼中之偵測結果為否,該第二子程式碼包含對該反及閘快閃記憶體發送另一候選讀取命令序。
除了讀取命令序之外,根據本發明之自動偵測程序亦可用以判斷反及閘快閃記憶體之資料匯流排寬度。該自動偵測程序的程式碼可以被存放在價格較低、不可重複修改的唯讀記憶體中,藉此降低電子裝置的硬體成本。上述以程式碼實現的自動偵測程序方便而快速。相較於先前技術,根據本發明之記憶體控制方案具有成本低且彈性高等優點。關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
圖一所示之電子裝置為根據本發明之第一具體實施例。電子裝置10包含一反及閘(NAND)快閃記憶體12、一輔助記憶體14及一控制器16。舉例而言,電子裝置10可為數位攝影機、行動通訊裝置、攜帶型電腦、桌上型電腦或是外接式儲存裝置等各種採用反及閘快閃記憶體12的裝置,但不以此為限。
反及閘快閃記憶體12具有一適用的讀取命令序。輔助記憶體14中儲存有用以偵測該讀取命令序之一程式碼。如圖一所示,控制器16分別連接至反及閘快閃記憶體12與輔助記憶體14。電子裝置10被啟動(例如開機或重置)後,控制器16即自輔助記憶體14讀取該程式碼並執行該程式碼,藉此取得反及閘快閃記憶體12之讀取命令序。以下將說明控制器16取得該讀取命令序的詳細實施方式。
如先前所述,就現行的反及閘快閃記憶體而言,讀取命令序分為四種:第一種是在命令00後加上三個位元組的位址,第二種是在命令00後加上四個位元組的位址,第三種是在命令00後依序加上四個位元組的位址及命令30,第四種是在命令00後依序加上五個位元組的位址及命令30。以下說明以反及閘快閃記憶體12適用之讀取命令序屬於N種讀取命令序之一的情況為例,N為一正整數。
圖二為輔助記憶體14中儲存的程式碼所對應之一偵測程序範例。首先,該程式碼令控制器16執行步驟S21,對反及閘快閃記憶體12發送一重置信號及N種讀取命令序中的第一種候選讀取命令序。以該第一種候選讀取命令序為命令00加上三個位元組之位址的情況為例,其中三個位元組代表的位址可以是反及閘快閃記憶體12中第一個區塊之第一資料列的位址,但不以此為限。該重置信號係用以令反及閘快閃記憶體12重新進入接收外部指令的初始狀態。
接著,在步驟S22中,控制器16開始等待並偵測反及閘快閃記憶體12是否產生一回應訊號。實務上,各類反及閘快閃記憶體皆具有一就緒/忙碌(ready/busy)輸出腳位(簡稱R/B腳位),其電壓通常被預設為高準位,表示該反及閘快閃記憶體處於不忙碌而可接受讀取命令序的狀態。當R/B腳位的電壓為低準位,表示該反及閘快閃記憶體已接受外部傳來適用之讀取命令序,並且正在將該讀取命令序指定之位址所對應的資料載入該反及閘快閃記憶體內部的暫存記憶區,準備供外部電路讀取。在資料載入暫存記憶區的動作完成後,R/B腳位的電壓又重新回到高準位。於此實施例中,控制器16即藉由偵測反及閘快閃記憶體12的R/B腳位之電壓來判斷反及閘快閃記憶體12是否產生一回應訊號。更明確地說,若R/B腳位之電壓出現由高轉低再轉高的變化可做為反及閘快閃記憶體12產生一回應訊號的表示。
若反及閘快閃記憶體12所適用之讀取命令序為上述第一種候選讀取命令序,在步驟S21後,反及閘快閃記憶體12的R/B腳位之電壓會出現上述由高轉低再轉高的變化。相對地,若反及閘快閃記憶體12所適用之讀取命令序並非第一種候選讀取命令序,反及閘快閃記憶體12的R/B腳位之電壓就會維持在高準位,不發生變化。
實務上,控制器16可利用如圖三所示之正反器電路來偵測R/B腳位的電壓變化。正反器34及36的輸出端Q原本都被重置信號Reset設定為0,並且都是接受時脈端clk的正緣變化觸發。正反器34的時脈端clk係接收經過反相器32反相之R/B腳位信號,正反器36的時脈端clk則是直接接收R/B腳位信號。R/B腳位的電壓出現由高至低的轉換時,正反器34的輸出端Q將由0變為1。接著,R/B腳位的電壓出現由低至高的轉換時,正反器36的輸出端Q也變為1。及閘38的輸出信號Out會因此由0變換為1,指出反及閘快閃記憶體12已提供回應訊號。
承上所述,若步驟S22的判斷結果為是,控制器16即於步驟S23中判定反及閘快閃記憶體12所適用之讀取命令序為第一種候選讀取命令序。相對地,若步驟S22的判斷結果為否,控制器16將繼續執行步驟S24,判斷是否N種候選讀取命令序都曾被發送至反及閘快閃記憶體12進行測試。若步驟S24的判斷結果為否,步驟S25將被執行,對反及閘快閃記憶體12發送重置信號及該N種候選讀取命令序中未經測試的另一種候選讀取命令序。接著,控制器16會重新執行步驟S22,等待並偵測反及閘快閃記憶體12是否產生一回應訊號。若步驟S24的判斷結果為是,表示反及閘快閃記憶體12適用之讀取命令序並非該N種候選讀取命令序之一,控制器16將執行步驟S26,停止開機程序。
舉例而言,該程式碼可被設計為令控制器16逐一嘗試先前所述之第一種到第四種讀取命令序,直到偵測到反及閘快閃記憶體12產生一回應訊號,或直到各種讀取命令序皆不能令反及閘快閃記憶體12產生回應為止。在確認反及閘快閃記憶體12之讀取命令序後,控制器16即可根據此讀取命令序存取反及閘快閃記憶體12中的儲存內容,繼續進行開機程序或其他後續運作。舉例而言,控制器16由反及閘快閃記憶體12中所取得者可能是動態隨機存取記憶體控制器的參數。控制器16可據此初始化動態隨機存取記憶體控制器,接著再將自反及閘快閃記憶體12取得的後續軟體程式載入動態隨機存取記憶體中執行。上述程式碼可被設計為在及閘38的輸出信號Out由0變換為1之後,隨即通知控制器16開始自反及閘快閃記憶體12讀取資料,藉此提升電子裝置10的開機速度。
由以上說明可知,無論電子裝置10中選用的反及閘快閃記憶體12是哪一種,控制器16皆可利用同一程式碼偵測並得知其讀取命令序。換句話說,該程式碼的內容不需要隨著反及閘快閃記憶體12的種類變動而調整。因此,於實際應用中,用以儲存該程式碼的輔助記憶體14可為不容許重複修改的唯讀記憶體,例如遮罩式唯讀記憶體(Mask ROM)。相較於先前技術中所採用的反或閘快閃記憶體、OneNandTM
快閃記憶體或eMMC記憶體,唯讀記憶體的價格低廉許多。藉此,電子裝置10整體的硬體成本可較未採用上述方案時大幅降低。
此外,若將各種讀取命令序的可能性皆納入該程式碼中,上述方案即可適用於所有種類的反及閘快閃記憶體。即使電子裝置製造商因庫存或備料等因素選用不同容量的反及閘快閃記憶體,該自動偵測程序同樣可找出相對應的讀取命令序。除了可省去以人力修改軟體程式所耗費的時間和金錢、提升出貨效率,上述方案亦保留調整硬體的彈性空間。
另一方面,輔助記憶體14中所儲存者亦可進一步包含協助控制器16偵測反及閘快閃記憶體12之資料匯流排(Data Bus)寬度的第二程式碼,令控制器16在步驟S23後繼續執行圖四所示之流程。舉例而言,反及閘快閃記憶體12的資料匯流排(埠)寬度可能為8位元或16位元。於此範例中,步驟S41係預設反及閘快閃記憶體12的資料匯流排(埠)寬度為8位元,並且對反及閘快閃記憶體12發送一讀取命令。在步驟S42中,控制器16讀取反及閘快閃記憶體12回應於該讀取命令所提供之儲存內容。一般而言,資料被寫入反及閘快閃記憶體12時都會經過錯誤校正程序,此程序產生的資料校正碼也會被一併儲存。控制器16讀取到的儲存內容也同樣會包含該資料校正碼。
在步驟S43中,控制器16針對該儲存內容進行適用於資料匯流排(埠)寬度為8位元之錯誤校正程序,產生另一資料校正碼,與該儲存內容中所包含的資料校正碼比對。若兩者的差異在可容許的範圍內,控制器16即判定該儲存內容通過錯誤校正檢查。如圖四所示,若步驟S44的判斷結果為是,控制器16將執行步驟S45,判定反及閘快閃記憶體12之資料匯流排寬度為預設的資料匯流排(埠)寬度(即8位元)。相對地,若步驟S44的判斷結果為否,控制器16將執行步驟S46,判定反及閘快閃記憶體12之資料匯流排(埠)寬度為另一種資料匯流排(埠)寬度(即16位元)。須說明的是,上述程式碼亦可被調整以配合具有其他資料匯流排(埠)寬度的反及閘快閃記憶體12,不以8位元和16位元為限。
根據本發明之另一具體實施例為一種應用於一電子裝置10之啟動程序(例如開機或重置)中的記憶體控制方法。該電子裝置10包含一反及閘快閃記憶體12及一輔助記憶體14。實務上,該輔助記憶體14可為一唯讀記憶體。圖五為該方法的流程圖。首先,讀取儲存於該輔助記憶體14中之一程式碼的步驟S51被執行;該程式碼係用以偵測該反及閘快閃記憶體12之讀取命令序。接著,步驟S52為執行該程式碼以取得該讀取命令序。步驟S53則是根據該讀取命令序存取該反及閘快閃記憶體12中的儲存內容。圖二即為上述程式碼可對應之一偵測程序的流程範例。
圖六係繪示上述程式碼可對應之另一偵測程序的流程範例。此偵測程序的概念亦為嘗試對反及閘快閃記憶體12發送各種可能的讀取命令序組合。本範例與前兩個範例的主要差異在於,本範例中的程序係根據由反及閘快閃記憶體12之暫存記憶區讀取的資料是否通過錯誤校正檢查來判斷目前嘗試的讀取命令序是否正確。舉例而言,所謂各種可能的讀取命令序組合可包含以下幾個條件的變換組合:該讀取命令序的結尾是否包含命令30、該讀取命令序的位址部份包含幾個位元組,以及該位址部份係對應於反及閘快閃記憶體12中的哪一個資料列。
如圖六所示,步驟S61為對反及閘快閃記憶體12發送第一種候選讀取命令序。於此範例中,該第一種候選讀取命令序的位址部份包含三個位元組、結尾不包含命令30,且位址部份係對應於反及閘快閃記憶體12中第一個區塊之第一資料列。如果該反及閘快閃記憶體12所適用的讀取命令序即為目前嘗試的候選讀取命令序,其R/B腳位的電壓會轉換為低準位,並且於第一個區塊之第一資料列中的資料已載入暫存記憶區後回到高準位,指出資料已就緒。步驟S62係等待一段時間,確認反及閘快閃記憶體12之R/B腳位的電壓為高準位。接著,步驟S63為讀取反及閘快閃記憶體12之暫存記憶區。步驟S64則是針對由暫存記憶區讀取的資料進行錯誤校正程序。
步驟S65係根據步驟S64的結果判斷上述由暫存記憶區讀取的資料是否通過錯誤校正檢查。若步驟S65的判斷結果為是,表示該反及閘快閃記憶體12所適用的讀取命令序即為目前嘗試的候選讀取命令序。因此,步驟S66為根據目前嘗試的讀取命令序開始自反及閘快閃記憶體12讀取後續資料。相對地,若該反及閘快閃記憶體12所適用的讀取命令序並非目前嘗試的讀取命令序,反及閘快閃記憶體12不會將其第一個區塊之第一資料列中的資料載入暫存記憶區。因此,步驟S63中由暫存記憶區讀取的資料(讀取結果可能是各位元皆為0)便無法通過錯誤校正檢查。如圖七所示,若步驟S65的判斷結果為否,步驟S67將被執行,以判斷是否各種候選讀取命令序皆已被嘗試。
若步驟S67的判斷結果為否,步驟S68將被執行,對反及閘快閃記憶體12發送重置訊號及一未嘗試過的候選讀取命令序。若步驟S67的判斷結果為是,表示各種候選讀取命令序組合皆已嘗試完畢,步驟S69將被執行,以停止該電子裝置10的開機程序。於實際應用中,步驟S67之判斷結果為是的情況可能會發生在反及閘快閃記憶體12存在異常問題時。
圖七為嘗試候選讀取命令序之一詳細流程範例。於此範例中,圖六中的步驟S67和步驟S68係以步驟S71~S76實現。首先,在步驟S61之前的步驟S72、S74和S76分別為設定後選讀取命令序中是否包含命令30、設定位址之位元數,以及設定位址部份所對應的資料列。舉例而言,透過步驟S72、S74和S76,第一種候選讀取命令序可被設定為「位址位元組數為3、結尾不包含命令30,且位址部份對應於第一個區塊之第一資料列」。若步驟S65的判斷結果為否,步驟S71首先被執行,以判斷是否「位址位元組數為3、結尾包含/不含命令30,且位址部份對應於第一個區塊之第一資料列」的兩種組合皆已嘗試。若步驟S71的判斷結果為否,步驟S72將被執行,將下一個將被發送的候選讀取命令序修改為「位址位元組數為3、結尾包含命令30,且位址部份對應於第一個區塊之第一資料列」。
若步驟S71的判斷結果為是,表示「位址位元組數為3、結尾包含/不含命令30,且位址部份對應於第一個區塊之第一資料列」的兩種組合皆已嘗試,步驟S73將被執行,以判斷是否先前已嘗試至最後一種位址位元組數,例如是否位址位元組數為3、4、5的情況皆已嘗試。若步驟S73的判斷結果為否,步驟S74將被執行,將下一個將被發送的候選讀取命令序之位址位元組數設定為未經嘗試者。相對地,若步驟S73的判斷結果為是,表示「位址位元組數為3/4/5、結尾包含/不含命令30」的六種組合皆已嘗試,步驟S75將被執行,以判斷是否先前已嘗試至最後一種資料列位址,例如是否已嘗試至反及閘快閃記憶體中最後一個區塊之第一資料列。若步驟S75的判斷結果為否,步驟S76將被執行,將下一個將被發送的候選讀取命令序之資料列位址修改為對應於下個區塊之第一資料列。若步驟S75的判斷結果為是,步驟S69將被執行,以停止該電子裝置10的開機程序。
實務上,在圖五的流程之後,圖四所示之關於反及閘快閃記憶體12之資料匯流排寬度的偵測程序可接續著被執行。易言之,於根據本發明之實施例中,儲存於該輔助記憶體14中之程式碼可負責依序偵測反及閘快閃記憶體12的讀取命令序及資料匯流排寬度。如先前所述,用以儲存該程式碼的輔助記憶體14可為唯讀記憶體,藉此降低電子裝置10的硬體成本。須說明的是,圖五~圖七所示之流程都可應用於圖一所示之電子裝置10中,亦即由圖一的控制器16執行。
根據本發明之另一具體實施例為一種電腦可讀取儲存媒體,其中儲存有可由一控制器16讀取並執行之一第一程式碼,用以偵測一反及閘快閃記憶體12之讀取命令序。舉例而言,該電腦可讀取儲存媒體可為圖一所示之輔助記憶體14,亦可為一光學儲存媒體、一軟碟片或一硬碟,但不以此為限。該第一程式碼包含:用以對該反及閘快閃記憶體12發送一候選讀取命令序之第一子程式碼、用以偵測該反及閘快閃記憶體12是否產生一回應訊號之第二子程式碼,以及用以重複執行第二子程式碼,直到該反及閘快閃記憶體12產生該回應訊號之第三子程式碼。若第二子程式碼中之偵測結果為否,該第二子程式碼包含對該反及閘快閃記憶體12發送另一候選讀取命令序。
實務上,上述電腦可讀取儲存媒體可進一步儲存一第二程式碼,用以偵測反及閘快閃記憶體12之資料匯流排寬度。該第二程式碼包含:用以對該反及閘快閃記憶體12發送一讀取命令之第四子程式碼、用以讀取該反及閘快閃記憶體12所提供之儲存內容的第五子程式碼,以及用以判斷該儲存內容是否通過一錯誤校正檢查的第六子程式碼。第六子程式碼亦包含:若該儲存內容通過錯誤校正檢查,判定該反及閘快閃記憶體12之該資料匯流排寬度為一預設資料匯流排寬度。
如上所述,本發明提出一種新的記憶體控制方案,令控制器執行一自動偵測程序,找出電子裝置中之反及閘快閃記憶體12係採用何種讀取命令序。經過適當的設計,本方案可適用於所有種類的反及閘快閃記憶體12;即使電子裝置製造商因為庫存或備料等因素選用不同容量的反及閘快閃記憶體12,該自動偵測程序同樣可找出相對應的讀取命令序。除了可省去以人力修改軟體程式所耗費的時間和金錢,本方案亦保留調整硬體的彈性空間。此外,該自動偵測程序的程式碼可以被存放在價格較低、不可重複修改的唯讀記憶體中,藉此降低電子裝置10的硬體成本。上述以程式碼實現的自動偵測程序方便而快速。相較於先前技術,根據本發明之記憶體控制方案具有成本低且彈性高等優點。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
本案圖式中所包含之各元件列示如下:
10...電子裝置
12...反及閘快閃記憶體
14...輔助記憶體
16...控制器
S21~S26...流程步驟
32...反相器
34、36...正反器
38...及閘
S41~S46...流程步驟
S51~S53...流程步驟
S61~S69...流程步驟
S71~S76...流程步驟
本案得藉由下列圖式及說明,俾得一更深入之了解:
圖一為根據本發明之一具體實施例中之電子裝置方塊圖。
圖二為根據本發明之程式碼所對應之一讀取命令序偵測程序範例。
圖三為用以偵測反及閘快閃記憶體之回應訊號的偵測電路範例。
圖四為根據本發明之程式碼所對應之一資料匯流排寬度偵測程序範例。
圖五為根據本發明之一具體實施例中之記憶體控制方法的流程圖。
圖六及圖七為根據本發明之程式碼所對應之讀取命令序偵測程序的流程範例。
10...電子裝置
12...反及閘快閃記憶體
14...輔助記憶體
16...控制器
Claims (14)
- 一種電子裝置,包含:一反及閘快閃記憶體,具有一讀取命令序;一輔助記憶體,儲存有用以偵測該讀取命令序之一第一程式碼;以及一控制器,分別連接至該反及閘快閃記憶體與該輔助記憶體,於該電子裝置之一啟動程序中,該控制器自該輔助記憶體讀取並執行該第一程式碼,以取得該讀取命令序,並根據該讀取命令序存取該反及閘快閃記憶體之一儲存內容。
- 如申請專利範圍第1項所述之電子裝置,其中該輔助記憶體為一唯讀記憶體。
- 如申請專利範圍第1項所述之電子裝置,其中該輔助記憶體亦儲存有一第二程式碼,用以偵測該反及閘快閃記憶體之一資料匯流排寬度。
- 一種應用於一電子裝置之一啟動程序中的記憶體控制方法,該電子裝置包含一反及閘快閃記憶體及一輔助記憶體,該方法包含下列步驟:讀取儲存於該輔助記憶體中之一第一程式碼;執行該第一程式碼,以偵測該反及閘快閃記憶體之一讀取命令序;以及根據該讀取命令序存取該反及閘快閃記憶體之一儲存內容。
- 如申請專利範圍第4項所述之記憶體控制方法,其中該輔助記憶體為一唯讀記憶體。
- 如申請專利範圍第4項所述之記憶體控制方法,其中該第一程式碼係對應於一偵測程序,該偵測程序包含下列步驟:(a1)對該反及閘快閃記憶體發送一候選讀取命令序;(a2)偵測該反及閘快閃記憶體是否產生一回應訊號,若否,對該反及閘快閃記憶體發送另一候選讀取命令序;以及(a3)重複執行步驟(a2),直到該反及閘快閃記憶體產生該回應訊號。
- 如申請專利範圍第6項所述之記憶體控制方法,其中該回應訊號係於一就緒/忙碌(R/B)輸出腳位之一電壓發生由高轉低並且再由低轉高之變化時產生。
- 如申請專利範圍第4項所述之記憶體控制方法,其中該第一程式碼係對應於一偵測程序,該偵測程序包含下列步驟:(b1)對該反及閘快閃記憶體發送複數種候選讀取命令序中之一候選讀取命令序;(b2)讀取該反及閘快閃記憶體之一暫存記憶區中之資料,並判斷該資料是否通過一錯誤校正檢查;(b3)若步驟(b2)之判斷結果為否,判斷該複數種候選讀取命令序是否皆已嘗試;以及(b4)若步驟(b3)之判斷結果為否,對該反及閘快閃記憶體發送另一候選讀取命令序,並重複執行步驟(b2)~(b3)。
- 如申請專利範圍第4項所述之記憶體控制方法,更包含 下列步驟:讀取儲存於該輔助記憶體中之一第二程式碼,該第二程式碼係用以偵測該反及閘快閃記憶體之一資料匯流排寬度;以及執行該第二程式碼,以取得該資料匯流排寬度。
- 如申請專利範圍第9項所述之記憶體控制方法,其中該第二程式碼係對應於一偵測程序,該偵測程序包含下列步驟:對該反及閘快閃記憶體發送一讀取命令;讀取該反及閘快閃記憶體所提供之該儲存內容;以及判斷該儲存內容是否通過一錯誤校正檢查,若是,判定該反及閘快閃記憶體之該資料匯流排寬度為一預設資料匯流排寬度。
- 一種電腦可讀取儲存媒體,其儲存有能由一控制器讀取並執行之一第一程式碼,於一電子裝置之一啟動程序中,該第一程式碼係用以偵測一反及閘快閃記憶體之一讀取命令序,該第一程式碼包含:一第一子程式碼,用以對該反及閘快閃記憶體發送一候選讀取命令序;一第二子程式碼,用以偵測該反及閘快閃記憶體是否產生一回應訊號,若否,對該反及閘快閃記憶體發送一另一候選讀取命令序;以及一第三子程式碼,用以重複執行第二子程式碼,直到該反及閘快閃記憶體產生該回應訊號。
- 如申請專利範圍第11項所述之電腦可讀取儲存媒體,其中更儲存有一第二程式碼,用以偵測該反及閘快閃記憶體之一資料匯流排寬度,該第二程式碼包含:一第四子程式碼,用以對該反及閘快閃記憶體發送一讀取命令;一第五子程式碼,用以讀取該反及閘快閃記憶體所提供之一儲存內容;以及一第六子程式碼,用以判斷該儲存內容是否通過一錯誤校正檢查,若是,判定該反及閘快閃記憶體之該資料匯流排寬度為一預設資料匯流排寬度。
- 如申請專利範圍第11項所述之電腦可讀取儲存媒體,其中該反及閘快閃記憶體包含一就緒/忙碌輸出腳位,該回應訊號係於一就緒/忙碌(R/B)輸出腳位之一電壓發生由高轉低並且再由低轉高之變化時產生。
- 如申請專利範圍第13項所述之電腦可讀取儲存媒體,其中該控制器包含一正反器電路,連接於該就緒/忙碌輸出腳位,該正反器電路具有一輸出端,依據該就緒/忙碌輸出腳位之該電壓以提供該回應訊號。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100101524A TWI467579B (zh) | 2011-01-14 | 2011-01-14 | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 |
US13/167,797 US8656089B2 (en) | 2011-01-14 | 2011-06-24 | Electronic device, memory controlling method thereof and associated computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100101524A TWI467579B (zh) | 2011-01-14 | 2011-01-14 | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201230043A TW201230043A (en) | 2012-07-16 |
TWI467579B true TWI467579B (zh) | 2015-01-01 |
Family
ID=46491633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100101524A TWI467579B (zh) | 2011-01-14 | 2011-01-14 | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8656089B2 (zh) |
TW (1) | TWI467579B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715427B2 (en) * | 2012-11-05 | 2017-07-25 | Mitsubishi Electric Corporation | Memory control apparatus |
WO2014204331A1 (en) * | 2013-06-17 | 2014-12-24 | Llc "Topcon Positioning Systems" | Nand flash memory interface controller with gnss receiver firmware booting capability |
JP6402432B2 (ja) * | 2016-09-06 | 2018-10-10 | 株式会社アクセル | 情報処理装置、及び情報処理方法 |
TWI673716B (zh) * | 2018-10-09 | 2019-10-01 | 慧榮科技股份有限公司 | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 |
US11238940B1 (en) * | 2020-11-19 | 2022-02-01 | Micron Technology, Inc. | Initialization techniques for memory devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005875A1 (en) * | 2005-07-01 | 2007-01-04 | Takashi Oshima | Memory card using flash memory and method of controlling the same |
US7320045B2 (en) * | 2004-02-05 | 2008-01-15 | Research In Motion Limited | Automatic detection of the bit width of a data bus |
US20080148132A1 (en) * | 2006-10-26 | 2008-06-19 | Mavila Rajith K | Error detection and correction scheme for multi-level cell NAND flash |
US20080244179A1 (en) * | 2007-03-30 | 2008-10-02 | Kealy Kevin P | Memory device with a built-in memory array and a connector for a removable memory device |
US20100162126A1 (en) * | 2008-12-23 | 2010-06-24 | Palm, Inc. | Predictive cache techniques |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02311194A (ja) * | 1989-05-24 | 1990-12-26 | Texas Instr Japan Ltd | 駆動電圧制御回路 |
US5428579A (en) * | 1992-03-31 | 1995-06-27 | Intel Corporation | Flash memory card with power control register and jumpers |
US5267218A (en) * | 1992-03-31 | 1993-11-30 | Intel Corporation | Nonvolatile memory card with a single power supply input |
US5524231A (en) * | 1993-06-30 | 1996-06-04 | Intel Corporation | Nonvolatile memory card with an address table and an address translation logic for mapping out defective blocks within the memory card |
JPH0844628A (ja) * | 1994-08-03 | 1996-02-16 | Hitachi Ltd | 不揮発性メモリ、およびそれを用いたメモリカード、情報処理装置、ならびに不揮発性メモリのソフトウェアライトプロテクト制御方法 |
US5860112A (en) * | 1995-12-27 | 1999-01-12 | Intel Corporation | Method and apparatus for blending bus writes and cache write-backs to memory |
US5974499A (en) * | 1997-04-23 | 1999-10-26 | Micron Technology, Inc. | Memory system having read modify write function and method |
JP2003223412A (ja) * | 2002-01-30 | 2003-08-08 | Oki Electric Ind Co Ltd | 半導体集積回路 |
EP1497929A2 (de) * | 2002-04-10 | 2005-01-19 | Nanotron Technologies GmbH | Sende-empfangsvorrichtung |
US6762701B2 (en) * | 2002-12-16 | 2004-07-13 | Broadcom | Scalable gray code counter and applications thereof |
US20040128465A1 (en) * | 2002-12-30 | 2004-07-01 | Lee Micheil J. | Configurable memory bus width |
US20040128464A1 (en) * | 2002-12-30 | 2004-07-01 | Lee Micheil J. | Memory reclamation |
US7148825B2 (en) * | 2004-05-10 | 2006-12-12 | Broadcom Corporation | Data interface including gray coding |
US8429313B2 (en) * | 2004-05-27 | 2013-04-23 | Sandisk Technologies Inc. | Configurable ready/busy control |
KR20060009446A (ko) * | 2004-07-22 | 2006-02-01 | 삼성전자주식회사 | 프로세서의 오동작을 방지할 수 있는 정보 처리 장치 |
US7971046B2 (en) * | 2005-01-14 | 2011-06-28 | Telefonaktiebolaget L M Ericsson (Publ) | Method and device for initializing a booting procedure of a mobile device |
JP2008084184A (ja) * | 2006-09-28 | 2008-04-10 | Toshiba Corp | メモリコントローラ |
US20080183948A1 (en) * | 2007-01-31 | 2008-07-31 | Satoshi Sugawa | Flash memory system with higher data transmission rate and method thereof |
US7873779B2 (en) * | 2007-05-14 | 2011-01-18 | Qualcomm Incorporated | Memory page size auto detection |
KR101393306B1 (ko) * | 2007-07-13 | 2014-05-09 | 삼성전자주식회사 | 보안기능을 갖는 레지스터 및 이를 구비하는 컴퓨터 시스템 |
JP4382842B2 (ja) * | 2007-09-18 | 2009-12-16 | 富士通株式会社 | メモリ制御回路,遅延時間制御装置,遅延時間制御方法および遅延時間制御プログラム |
US8213229B2 (en) * | 2008-08-22 | 2012-07-03 | HGST Netherlands, B.V. | Error control in a flash memory device |
KR20110046243A (ko) * | 2009-10-27 | 2011-05-04 | 삼성전자주식회사 | 사용자 장치 및 그것의 맵핑 데이터 관리 방법 |
KR101616099B1 (ko) * | 2009-12-03 | 2016-04-27 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 방법 |
-
2011
- 2011-01-14 TW TW100101524A patent/TWI467579B/zh not_active IP Right Cessation
- 2011-06-24 US US13/167,797 patent/US8656089B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7320045B2 (en) * | 2004-02-05 | 2008-01-15 | Research In Motion Limited | Automatic detection of the bit width of a data bus |
US20070005875A1 (en) * | 2005-07-01 | 2007-01-04 | Takashi Oshima | Memory card using flash memory and method of controlling the same |
US20080148132A1 (en) * | 2006-10-26 | 2008-06-19 | Mavila Rajith K | Error detection and correction scheme for multi-level cell NAND flash |
US20080244179A1 (en) * | 2007-03-30 | 2008-10-02 | Kealy Kevin P | Memory device with a built-in memory array and a connector for a removable memory device |
US20100162126A1 (en) * | 2008-12-23 | 2010-06-24 | Palm, Inc. | Predictive cache techniques |
WO2010075272A2 (en) * | 2008-12-23 | 2010-07-01 | Palm, Inc. | Cache techniques |
Also Published As
Publication number | Publication date |
---|---|
US20120185639A1 (en) | 2012-07-19 |
US8656089B2 (en) | 2014-02-18 |
TW201230043A (en) | 2012-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2402804C2 (ru) | Способ загрузки хостового устройства из устройства mmc/sd, хостовое устройство, загружаемое из устройства mmc/sd, и устройство mmc/sd, из которого может быть загружено хостовое устройство | |
JP4945186B2 (ja) | 記憶装置およびこれを含むメモリシステム | |
US7676640B2 (en) | Flash memory controller controlling various flash memory cells | |
US20060075395A1 (en) | Flash card system | |
CN102135927B (zh) | 一种基于nand flash的系统引导方法和装置 | |
US20030188091A1 (en) | Exchanging operation parameters between a data storage device and a controller | |
TWI467579B (zh) | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 | |
JP2010527484A (ja) | メモリページサイズの自動検出 | |
CN114138333B (zh) | 程序加载的方法及相关装置 | |
CN101477838B (zh) | 一种与非快闪记忆体状态检测装置、系统及电子设备 | |
US8438374B2 (en) | Computer system and control method of the same | |
US20050207232A1 (en) | Access method for a NAND flash memory chip, and corresponding NAND flash memory chip | |
CN112148649B (zh) | 一种u-boot系统下的eMMCHS400传输模式实现方法及装置 | |
US7281113B2 (en) | Microcomputer with built-in electrically rewritable nonvolatile memory | |
US11755439B2 (en) | Memory controller, test device and link identification method | |
US20080071979A1 (en) | Automatically detecting types of external data flash devices | |
CN110209433B (zh) | 一种识别不同型号集中器的方法 | |
CN118051268A (zh) | 电子设备及其启动方法 | |
US7278015B2 (en) | Methods and devices for DRAM initialization | |
US6516398B2 (en) | Program-downloadable data processing system and method for accessing memory by using a unified memory space therein | |
JP4291368B2 (ja) | メモリバスチェック手順 | |
CN102609242B (zh) | 电子装置及其内存控制方法以及相关计算机可读取储存媒体 | |
CN103455454A (zh) | 一种控制存储器启动的方法和装置 | |
US8656063B1 (en) | Method of detecting addressing mode and electronic system thereof | |
CN116069387B (zh) | 存储设备的适配方法、适配装置、存储设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |