TWI537826B - 主晶片開機方法 - Google Patents

主晶片開機方法 Download PDF

Info

Publication number
TWI537826B
TWI537826B TW100115845A TW100115845A TWI537826B TW I537826 B TWI537826 B TW I537826B TW 100115845 A TW100115845 A TW 100115845A TW 100115845 A TW100115845 A TW 100115845A TW I537826 B TWI537826 B TW I537826B
Authority
TW
Taiwan
Prior art keywords
flash memory
boot
nand
type flash
page
Prior art date
Application number
TW100115845A
Other languages
English (en)
Other versions
TW201246074A (en
Inventor
辛家宏
Original Assignee
聯詠科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯詠科技股份有限公司 filed Critical 聯詠科技股份有限公司
Priority to TW100115845A priority Critical patent/TWI537826B/zh
Priority to US13/311,539 priority patent/US20120284497A1/en
Publication of TW201246074A publication Critical patent/TW201246074A/zh
Priority to US14/812,597 priority patent/US10146433B2/en
Application granted granted Critical
Publication of TWI537826B publication Critical patent/TWI537826B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

主晶片開機方法
本發明是有關於一種主晶片開機方法。
在一般利用NAND型快閃記憶體進行開機的流程中,主晶片(main chip)需要知道NAND型快閃記憶體的配置資訊(包括頁大小(page size)、區塊大小(block size)及錯誤校正碼(error correction code,ECC)型態才能初始化NAND型快閃記憶體,繼而才能下達指令以讀取NAND型快閃記憶體。
傳統獲得NAND型快閃記憶體的配置資訊之方法有二:其一,可利用主晶片上的5根通用型輸入輸出(general purpose I/O,GPIO)腳位連接至NAND型快閃記憶體以獲得配置資訊。其中,2根通用型輸入輸出腳位用以獲得頁大小的資訊,2根通用型輸入輸出腳位用以獲得區塊大小的資訊,而剩餘的1根通用型輸入輸出腳位用以獲得錯誤校正碼型態的資訊。之後,主晶片即可依據由通用型輸入輸出腳位獲得的配置資訊初始化NAND型快閃記憶體。然而,利用通用型輸入輸出腳位將導致無法降低封裝成本。
其二,可將現有的NAND型快閃記憶體的辨識碼(identification,ID)及對應的配置資訊建成一開機表,並將此開機表記錄於一唯讀記憶體中。當利用NAND型快閃記憶體進行開機時,主晶片可從NAND型快閃記憶體讀取其辨識碼,再依據此辨識碼對唯讀記憶體中的開機表進行查表的動作,以得到對應的配置資訊。之後,主晶片即可依據由開機表獲得的配置資訊初始化NAND型快閃記憶體。然而,開機表所能記錄的僅為現有的NAND型快閃記憶體,故其不具擴充性,無法支援未來開發的新型的NAND型快閃記憶體。
本揭露是有關於一種主晶片開機方法,藉由將對應的開機表放置於NAND型快閃記憶體內,並利用軟體演算法進行開機,可以支援所有類型的NAND型快閃記憶體。
根據本揭露之第一方面,提出一種主晶片開機方法,包括下列步驟。主晶片搜尋一NAND型快閃記憶體之一當前區塊以從當前區塊之一當前頁讀取一開機表並驗證開機表之一開機檔頭。當開機檔頭通過驗證,主晶片檢查開機表之辨識碼是否相同於NAND型快閃記憶體之辨識碼。當開機表之辨識碼相同於NAND型快閃記憶體之辨識碼,主晶片讀取當前區塊之一下一頁並檢查儲存於當前頁與該下一頁之資料是否相同。當儲存於當前頁與下一頁之資料相同,主晶片讀取開機表之一配置資訊以初始化NAND型快閃記憶體並進行開機。
為了對本揭露之上述及其他方面有更佳的瞭解,下文特舉一實施例,並配合所附圖式,作詳細說明如下:
本揭露所提出之主晶片(main chip)開機方法,藉由將對應的開機表(boot table)放置於NAND型快閃記憶體(NAND Flash)內,並利用軟體演算法進行開機,可以支援所有類型的NAND型快閃記憶體。
請參照第1圖,其繪示依照一實施例之主晶片開機方法之流程圖。第1圖所揭露之主晶片開機方法實質上利用一NAND型快閃記憶體進行開機,此NAND型快閃記憶體具有M個區塊(block),每一個區塊包括N頁(page),M及N為正整數。在NAND型快閃記憶體的單一區塊中的每一頁實質上記錄相同的資料。
於步驟S100中,主晶片搜尋NAND型快閃記憶體之一第X區塊以從一第Y頁讀取一開機表,X跟Y為分別小於M及N之非負整數。在本揭露中,開機表例如包括一開機檔頭(boot header)、辨識碼(identification,ID)及對應此辨識碼之NAND型快閃記憶體的配置資訊(configuration information)等。其中,配置資訊至少包括NAND型快閃記憶體之頁大小(page size)、區塊大小(block size)或錯誤校正碼型態(ECC type)等。此開機表在本揭露中例如儲存於NAND型快閃記憶體的至少二區塊的前1024位元組中。此外,由於利用錯誤校正碼,故可以克服傳統利用NAND型快閃記憶體儲存資料容易產生資料遺失的缺點。
於步驟S110中,主晶片對開機表的開機檔頭進行驗證的動作。驗證的動作例如為判斷開機檔頭是否包含一驗證字串“BootFromNAND”。當開機檔頭未通過驗證,則表示目前的第X區塊並不是開機區塊,於是進入步驟S120,將X加1,再於步驟S125,判斷X是否等於M,若否,再回到步驟S100以對下一區塊進行搜尋。當開機檔頭通過驗證,則表示第X區塊為開機區塊。若X等於M,則代表所有區塊均非為開機區塊,故結束。
接續步驟S130,主晶片會從NAND型快閃記憶體讀取NAND型快閃記憶體之辨識碼,並檢查開機表之辨識碼是否相同於NAND型快閃記憶體之辨識碼。當開機表之辨識碼不同於NAND型快閃記憶體之辨識碼,則表示在第X區塊中的開機表記錄的資料可能產生錯誤,因此進入步驟S120,將X加1再回到步驟S100搜尋下一個開機區塊以讀取正確的開機表。
當開機表之辨識碼相同於NAND型快閃記憶體之辨識碼,則接續步驟S140,主晶片讀取第(Y+1)頁的資料。基於NAND型快閃記憶體的特性,同在第X區塊的第Y頁與第(Y+1)頁應儲存相同的資料。故於步驟S150中,主晶片檢查儲存在不同頁的資料是否相同。若不同,則進入步驟S152,將Y加1,再於步驟S154,判斷Y是否等於N,若否,則重復步驟S140及S150,直到有二頁儲存的資料是相同的。基於NAND型快閃記憶體的特性,步驟S140及S150更進一步地提高了在本揭露中NAND型快閃記憶體儲存資料的正確性。當Y等於N時,即表示當前區塊(block)的頁數(page)已經找到結尾還是沒有相符合的資料,故回到步驟S120找下一個區塊。
當儲存在不同頁的資料相同,例如第Y頁與第(Y+1)頁儲存的資料相同,則於步驟S160中,主晶片讀取相同頁資料中的開機表記錄的配置資訊以初始化NAND型快閃記憶體。之後,於步驟S170中,主晶片即可以進行開機。觀察上述本揭露之主晶片開機方法,內建在NAND型快閃記憶體的開機表只需記錄其自身的辨識碼及配置資訊,相較於傳統內建在唯讀記憶體之開機表需要記錄多數現有不同類型NAND型快閃記憶體的辨識碼及配置資訊,本揭露之主晶片開機方法節省了大量的記憶空間。
本案上述實施例所揭露之主晶片開機方法,藉由將對應的開機表放置於NAND型快閃記憶體內,故可節省大量記憶空間並解決傳統方法不具擴充性的問題。同時,本揭露利用錯誤校正碼(例如每512位元資料對應15位元錯誤校正碼)提高了資料的正確性,克服傳統NAND型快閃記憶體易產生資料遺失的問題。此外,由於本案之主晶片開機方法實質上利用軟體演算法進行開機,故不需要使用額外的通用型輸入輸出腳位,可節省腳位並降低封裝成本。
綜上所述,雖然本發明已以多個實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
第1圖繪示依照一實施例之主晶片開機方法之流程圖。

Claims (6)

  1. 一種用以初始化一NAND型快閃記憶體之方法,包括:提供該NAND型快閃記憶體,該NAND型快閃記憶體儲存一開機表,且該開機表係由該NAND型快閃記憶體的辨識碼來標記;搜尋該NAND型快閃記憶體之一當前區塊以讀取該開機表;以及讀取該開機表的配置資訊以初始化該NAND型快閃記憶體。
  2. 如申請專利範圍第1項所述之方法,其中該配置資訊至少包括該NAND型快閃記憶體之頁大小、區塊大小以及錯誤校正碼型態至少其一。
  3. 如申請專利範圍第1項所述之方法,更包括:驗證該開機表之一開機檔頭;當該開機檔頭未通過驗證,該主晶片搜尋一下一區塊以從該下一區塊讀取該開機表並驗證該開機檔頭。
  4. 如申請專利範圍第1項所述之方法,更包括:當該開機表之辨識碼不同於該NAND型快閃記憶體之該辨識碼,該主晶片搜尋一下一區塊以從該下一區塊讀取該開機表並驗證一開機檔頭。
  5. 如申請專利範圍第1項所述之方法,更包括:檢查該開機表之辨識碼是否相同於該NAND型快閃記憶體之該辨識碼;當該開機表之該辨識碼相同於該NAND型快閃記憶 體之該辨識碼,讀取該當前區塊之一下一頁並檢查儲存於該當前區塊之一當前頁與該下一頁之資料是否相同;當儲存於該當前頁與該下一頁之資料不同,讀取該當前區塊之另一頁並檢查儲存於該另一頁之資料是否相同於儲存於該當前頁或該下一頁之資料。
  6. 如申請專利範圍第1項所述之方法,其中該開機表儲存於該NAND型快閃記憶體的至少二區塊的前1024位元組中。
TW100115845A 2011-05-05 2011-05-05 主晶片開機方法 TWI537826B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW100115845A TWI537826B (zh) 2011-05-05 2011-05-05 主晶片開機方法
US13/311,539 US20120284497A1 (en) 2011-05-05 2011-12-05 Booting method of main chip
US14/812,597 US10146433B2 (en) 2011-05-05 2015-07-29 Method for initializing NAND flash serving as a booting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100115845A TWI537826B (zh) 2011-05-05 2011-05-05 主晶片開機方法

Publications (2)

Publication Number Publication Date
TW201246074A TW201246074A (en) 2012-11-16
TWI537826B true TWI537826B (zh) 2016-06-11

Family

ID=47091054

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100115845A TWI537826B (zh) 2011-05-05 2011-05-05 主晶片開機方法

Country Status (2)

Country Link
US (2) US20120284497A1 (zh)
TW (1) TWI537826B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI537826B (zh) * 2011-05-05 2016-06-11 聯詠科技股份有限公司 主晶片開機方法
TWI573033B (zh) * 2016-01-14 2017-03-01 群聯電子股份有限公司 資料搜尋方法、記憶體儲存裝置及記憶體控制電路單元
CN106991036B (zh) * 2016-01-20 2020-04-24 阿里巴巴集团控股有限公司 一种信息输入异常的提示方法和系统
CN106055361B (zh) * 2016-05-31 2020-04-17 深圳市同泰怡信息技术有限公司 基于bmc的多种不同机型的集成式固件实现方法及系统
CN109976815B (zh) * 2019-03-20 2022-03-29 深圳忆联信息系统有限公司 一种加速Nandboot的方法及其系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287154B1 (en) * 2004-02-02 2007-10-23 Trimble Navigation Limited Electronic boot up system and method
JP4357331B2 (ja) * 2004-03-24 2009-11-04 東芝メモリシステムズ株式会社 マイクロプロセッサブートアップ制御装置、及び情報処理システム
EP1681628B1 (en) * 2005-01-14 2016-11-02 Telefonaktiebolaget LM Ericsson (publ) Method and device for initializing a booting procedure of a mobile device
KR100708128B1 (ko) * 2005-04-30 2007-04-17 삼성전자주식회사 낸드 플래시 메모리 제어 장치 및 방법
US8429326B2 (en) 2005-09-12 2013-04-23 Mediatek Inc. Method and system for NAND-flash identification without reading device ID table
JP4999325B2 (ja) * 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
KR100880379B1 (ko) * 2006-05-25 2009-01-23 삼성전자주식회사 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템
US7765393B1 (en) * 2006-07-11 2010-07-27 Network Appliance, Inc. Method and system of embedding a boot loader as system firmware
US8051204B2 (en) * 2007-04-05 2011-11-01 Hitachi, Ltd. Information asset management system, log analysis server, log analysis program, and portable medium
US7979667B2 (en) * 2007-12-10 2011-07-12 Spansion Llc Memory array search engine
US8171277B2 (en) * 2008-07-02 2012-05-01 Apple Inc. Method and apparatus for booting from a flash memory without prior knowledge of flash parameter information
CN102043651B (zh) 2009-10-22 2013-07-03 鸿富锦精密工业(深圳)有限公司 Nand闪存及其数据更新管理方法
US8443135B2 (en) * 2009-10-27 2013-05-14 Texas Instruments Incorporated Exhaustive parameter search algorithm for interface with nand flash memory
US8051329B1 (en) * 2010-02-05 2011-11-01 Netapp, Inc. Method and system for initializing a computing system
TWI456577B (zh) * 2010-08-10 2014-10-11 Hon Hai Prec Ind Co Ltd 反及閘快閃記憶體啓動裝置及使用方法
US8621194B2 (en) * 2010-08-31 2013-12-31 Conexant Systems, Inc. Processor NAND flash boot system and method
US8417880B2 (en) * 2010-11-01 2013-04-09 Hong Kong Applied Science and Technology Research Institute Company Limited System for NAND flash parameter auto-detection
TWI537826B (zh) * 2011-05-05 2016-06-11 聯詠科技股份有限公司 主晶片開機方法
CN103902461A (zh) * 2012-12-27 2014-07-02 中兴通讯股份有限公司 不同Nand闪存兼容方法及装置

Also Published As

Publication number Publication date
TW201246074A (en) 2012-11-16
US20120284497A1 (en) 2012-11-08
US10146433B2 (en) 2018-12-04
US20150378609A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
TWI646783B (zh) 解碼方法及儲存控制器
TWI591631B (zh) 更新記憶體內讀取電壓之系統與方法
CN101427323B (zh) 读取非易失性计算机存储器的系统和方法
JP4933268B2 (ja) フラッシュメモリシステムの起動動作
TWI537826B (zh) 主晶片開機方法
US9431069B2 (en) Management method for nonvolatile memory system following power-off
TWI661303B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US20130268746A1 (en) System-on-chip and booting method thereof
US9519436B1 (en) Memory erasing method, memory controller, and memory storage apparatus
US9274891B2 (en) Decoding method, memory storage device, and memory controlling circuit unit
US9553608B2 (en) Data storage device decoder and method of operation
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
US20080072119A1 (en) Allowable bit errors per sector in memory devices
CN106776105B (zh) 一种系统启动文件的校验及编译方法
TWI594188B (zh) 系統單晶片及其開機方法
TW201913380A (zh) 資料儲存裝置以及其操作方法
TW201833421A (zh) 可更新韌體的電子鎖系統
TWI658402B (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
TWI474163B (zh) 基本輸入輸出系統的存取系統及方法
JP2008262574A (ja) 高信頼性ファイルシステム
TWI698748B (zh) 資料儲存裝置、存取裝置及資料處理方法
JP4656063B2 (ja) メモリカードの特定方法
JP4157575B2 (ja) ウエアレベリング可能なファイルシステム
CN102779049B (zh) 主芯片开机方法
CN110391815B (zh) 解码方法及储存控制器

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees