實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多種設(shè)備的方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的方法和裝置,以減小上層軟件處理的復(fù)雜性。所述方法包括:將同一MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū);為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體;將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。本發(fā)明提供的方法可以使不同類型的芯片掛接在同一個(gè)父MTD分區(qū)的不同子MTD分區(qū)下,但對上層軟件只體現(xiàn)為一個(gè)父MTD分區(qū),能夠滿足為了降低上層軟件的復(fù)雜性而在同一MTD分區(qū)下掛接不同類型芯片的MTD原始存儲(chǔ)器件這一應(yīng)用場景的需求,同時(shí)為產(chǎn)品進(jìn)行芯片選型增加了靈活性,降低芯片選型的成本。
【專利說明】實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多種設(shè)備的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多種設(shè)備的方法和裝置。
【背景技術(shù)】
[0002]內(nèi)存技術(shù)設(shè)備(Memow Technology Device,MTD)是用于訪問內(nèi)存設(shè)備的Linux的子系統(tǒng)。MTD的主要目的是為了使新的內(nèi)存設(shè)備的驅(qū)動(dòng)更加簡單,為此它在硬件和上層之間提供了一個(gè)抽象的接口。每個(gè)MTD原始存儲(chǔ)器件有一個(gè)mtd_info結(jié)構(gòu)體即struct mtd_info mtd,每種芯片也有用于描述每個(gè)Flash芯片專有信息的結(jié)構(gòu)體,例如,描述NAND芯片的結(jié)構(gòu)體為struct nand_chipchip,而描述MTD原始存儲(chǔ)器件的結(jié)構(gòu)體與描述芯片專有信息的結(jié)構(gòu)體--對應(yīng),例如,struct mtd_info mtd 和 struct nand_chip chip--對應(yīng)。
[0003]由于存在上述MTD原始存儲(chǔ)器件的結(jié)構(gòu)體與描述芯片專有信息的結(jié)構(gòu)體對應(yīng)的關(guān)系,即,一個(gè)MTD分區(qū)的原始存儲(chǔ)器件必須是同一屬性的,因此,同一個(gè)MTD分區(qū)下全部掛接同種類型芯片,不同屬性的原始存儲(chǔ)器件(對應(yīng)于不同類型芯片)不能掛接在同一MTD分區(qū)下。例如,假設(shè)MTDl分區(qū)已經(jīng)掛接了 NAND Flash,則MTDl分區(qū)下只能掛接NANDFlash,不能掛接其他類型的芯片,例如NOR Flash或NVRAM Flash,要掛接NOR Flash或NVRAMFlash,只能在另一 MTD分區(qū)下掛接。
[0004]按照現(xiàn)有的上述同種類型芯片的MTD原始存儲(chǔ)器件只能掛接在同一MTD分區(qū)下或者由于不同類型芯片的MTD原始存儲(chǔ)器件只能分別掛接到不同的MTD分區(qū)下這一架構(gòu),當(dāng)為了降低上層軟件的復(fù)雜性(例如,減少對MTD分區(qū)的管理),需要在同一 MTD分區(qū)下掛接不同類型芯片的MTD原始存儲(chǔ)器件時(shí),現(xiàn)有技術(shù)的架構(gòu)就無法實(shí)現(xiàn)這一需求。
【發(fā)明內(nèi)容】
`[0005]本發(fā)明實(shí)施例提供實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多種設(shè)備的方法和裝置,以增加同一 MTD分區(qū)的應(yīng)用場景。
[0006]本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的方法,所述方法包括:將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū);為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體;將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。
[0007]可選地,所述芯片描述信息體為描述芯片屬性的結(jié)構(gòu)體,所述MTD存儲(chǔ)器件廠商所提供的私有描述信息體為MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
[0008]可選地,所述為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體包括:構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體;將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體。
[0009]可選地,所述為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體包括:構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體;將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體;所述將所述每個(gè)芯片描述信息體分別與需要掛接的MTD原始設(shè)備的廠商代碼私有描述信息體關(guān)聯(lián)包括:將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
[0010]本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置,所述裝置包括:分區(qū)擴(kuò)展模塊,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū);適配模塊,用于為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體;關(guān)聯(lián)模塊,用于將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。
[0011]可選地,所述芯片描述信息體為描述芯片屬性的結(jié)構(gòu)體,所述MTD存儲(chǔ)器件廠商所提供的私有描述信息體為MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
[0012]可選地,所述適配模塊包括:結(jié)構(gòu)體構(gòu)造單元,用于構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體;第一建鏈單元,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體。
[0013]可選地,所述關(guān)聯(lián)模塊包括:第二建鏈單元,用于將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
[0014]從上述本發(fā)明實(shí)施例可知,由于同一 MTD分區(qū)被擴(kuò)展成為多個(gè)子MTD分區(qū),如此,同一 MTD分區(qū)可以容納不同屬性的MTD存儲(chǔ)器件,而每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體,并分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。因此,本發(fā)明實(shí)施例提供的方法可以使不同類型的芯片掛接在同一個(gè)父MTD分區(qū)的不同子MTD分區(qū)下,但對上層軟件仍然只體現(xiàn)為一個(gè)父MTD分區(qū),能夠滿足為了降低上層軟件的復(fù)雜性而在同一 MTD分區(qū)下掛接不同類型芯片的MTD原始存儲(chǔ)器件這一應(yīng)用場景的需求,同時(shí)也為產(chǎn)品進(jìn)行芯片選型增加了靈活性,可以降低芯片選型的成本。
【專利附圖】
【附圖說明】
[0015]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對現(xiàn)有技術(shù)或?qū)嵤├枋鲋兴枰褂玫母綀D作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,還可以如這些附圖獲得其他的附圖。
[0016]圖1是本發(fā)明實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的方法流程示意圖;
[0017]圖2是本發(fā)明實(shí)施例提供的將同一同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)示意圖;
[0018]圖3是本發(fā)明實(shí)施例提供的各個(gè)結(jié)構(gòu)體的指向關(guān)系示意圖;
[0019]圖4是本發(fā)明實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置結(jié)構(gòu)示意圖;
[0020]圖5是本發(fā)明另一實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置結(jié)構(gòu)示意圖;[0021]圖6 (a)是本發(fā)明另一實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置結(jié)構(gòu)示意圖;
[0022]圖6 (b)是本發(fā)明另一實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0024]請參閱附圖1,是本發(fā)明實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的方法流程示意圖,主要包括步驟S101、步驟S102和步驟S103:
[0025]SlOl,將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)。
[0026]在本發(fā)明實(shí)施例中,不再是以一個(gè)MTD分區(qū)為最小操作單位,而是將一個(gè)MTD分區(qū)拆分為若干個(gè)子MTD分區(qū),如此,可以以子MTD分區(qū)為最小顆粒對多個(gè)子MTD分區(qū)進(jìn)行操作。將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)后,擴(kuò)展所得的多個(gè)子MTD分區(qū)和被擴(kuò)展的MTD分區(qū)是隸屬關(guān)系。如圖2所示,擴(kuò)展所得的η個(gè)子MTD分區(qū)隸屬于同一 MTD分區(qū)即父MTD分區(qū)。
[0027]需要說明的是,盡管同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū),但內(nèi)核對上層的接口層仍然是父MTD分區(qū)所屬層,對上層體現(xiàn)為一個(gè)相應(yīng)的結(jié)構(gòu)體,例如,structmtd_info mtd ;上層對MTD分區(qū)的操作仍然是先調(diào)用該父MTD分區(qū)所屬層提供的接口來實(shí)現(xiàn)。
[0028]S102,為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體。
[0029]如前所述,同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)后,可以以子MTD分區(qū)為最小顆粒對多個(gè)子MTD分區(qū)進(jìn)行操作。由于每一種MTD原始設(shè)備的屬性主要體現(xiàn)于其芯片屬性抽象的數(shù)據(jù)描述上,而為了使得每個(gè)子MTD分區(qū)掛接一種(個(gè))MTD原始設(shè)備,從而實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)掛接多種屬性的MTD原始設(shè)備,在將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)后,需要為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體。
[0030]作為本發(fā)明一個(gè)實(shí)施例,芯片描述信息體可以為描述芯片屬性的結(jié)構(gòu)體。例如,對于NAND Flash,芯片描述信息體可以以struct nand_chip chip這一結(jié)構(gòu)體描述其屬性,如
果有多個(gè),可以以 struct nand_chip chip [O]、struct nand_chipchip [I]、......、struct
nand_chip chip[n]等加以區(qū)別;描述芯片屬性的結(jié)構(gòu)體為直接讀寫芯片數(shù)據(jù)提供了一個(gè)接口層,而接口層就對應(yīng)一種屬性。
[0031]在本發(fā)明實(shí)施例中,為多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體包括:構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體,然后,將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體。
[0032]換言之,同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)被擴(kuò)展成多少個(gè)子MTD分區(qū),就相應(yīng)地構(gòu)造多少個(gè)芯片屬性的結(jié)構(gòu)體。每一個(gè)芯片屬性的結(jié)構(gòu)體至少包括一個(gè)能夠指向下一層結(jié)構(gòu)體的成員指針,例如,對于描述NAND屬性的結(jié)構(gòu)體structnand_chip chip,其應(yīng)當(dāng)包含成員指針*priv ;*priv用于指向下一層結(jié)構(gòu)體,例如,MTD的廠商代碼私有描述信息體。
[0033]由于父MTD分區(qū)相應(yīng)的結(jié)構(gòu)體原本就有指向下一層結(jié)構(gòu)體的成員指針,因此,當(dāng)分別構(gòu)造了與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體后,可以使用父MTD分區(qū)相應(yīng)結(jié)構(gòu)體的成員指針指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體;于是,父MTD分區(qū)相應(yīng)結(jié)構(gòu)體指向隸屬于其的每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體。
[0034]S103,將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。
[0035]作為本發(fā)明一個(gè)實(shí)施例,MTD存儲(chǔ)器件廠商所提供的私有描述信息體可以是MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體,其包含具體存儲(chǔ)器件的信息,例如器件大小、最小讀寫單位、擦除單位和讀寫函數(shù)等等,以及兩個(gè)成員:mtd_info和chip,以實(shí)現(xiàn)與存儲(chǔ)芯片的IO相關(guān)操作。例如,對于NAND的MTD存儲(chǔ)器件,其廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體可以以structfsl_elbc_mtd nandpriv這一結(jié)構(gòu)體描述其屬性;如果有多個(gè),可以以
structfsl_elbc_mtd nandpriv[O]>struct fsl_elbc_mtd nandpriv[I]>......、structfsl_
elbc_mtd nandpriv[n]等加以區(qū)別。當(dāng)構(gòu)造了分別與多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體,并將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體后,可以將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。具體地,可以通過將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體內(nèi)的成員指針分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體來實(shí)現(xiàn)。
[0036]當(dāng)用戶執(zhí)行分區(qū)操作時(shí),程序?qū)嶓w將父MTD按照“父MTD_>子MTD_>MTD存儲(chǔ)器件”的方式進(jìn)行MTD分區(qū)的擴(kuò)展和結(jié)構(gòu)體掛接,如此,父MTD可以包含多中屬性的MTD存儲(chǔ)器件,并將用戶需要訪問的地址根據(jù)各子MTD分區(qū)大小,換算為對應(yīng)的某子MTD分區(qū)中對應(yīng)地址,并根據(jù)子MTD屬性(例如,具體掛接的讀寫函數(shù))進(jìn)行訪問。
[0037]以下以同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為2個(gè)子MTD分區(qū)為例,說明本發(fā)明實(shí)施例提供的上述實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)掛接多屬性設(shè)備的方法。
[0038]假設(shè)同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)下需要掛接NAND芯片和NOR芯片的存儲(chǔ)器件,則按照上述方法,可以為隸屬于父MTD分區(qū)的第O號(hào)子MTD分區(qū)即MTDO和第I號(hào)子MTD分區(qū)即MTDl分別適配相應(yīng)的芯片描述信息體,即先構(gòu)造描述芯片屬性的結(jié)構(gòu)體struct nand_chipchip [O]和 struct nor_chip chip[I] ;structnand_chip chip [0]和 struct nor_chipchip[l]均擁有指向下一層結(jié)構(gòu)體的成員指針*priv。然后,將父MTD分區(qū)相應(yīng)的結(jié)構(gòu)體struct mtd_info mtd所擁有的成員指針*priv指向 struct nand_chip chip [O]和 structnor_chip chip [I];將所述 structnand_chip chip [0]和 struct nor_chip chip[l]分另 Ij 指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體,即,將struct nand_chip chip [O]的成員指針*priv指向需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體 struct fsl_elbc_mtd nandpriv [O],將 struct nor_chip chip [I]的成員指針*priv指向需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體struct fsl_elbc_mtdnorpriv[l]。其完整的結(jié)構(gòu)體如下:[0039]nandpriv[O]->mtd=mtd ;
[0040]norpriv[I]->mtd=mtd ;
[0041]nandpriv[0]->chip=chip[0];
[0042]norpriv[I]->chip=chip[I];
[0043]chip [0]->priv=nandpriv[0];
[0044]chip[I]->priv=norpriv[I];
[0045]mtd->priv=chip[0];
[0046]或者
[0047]mtd->priv=chip[I];
[0048]各個(gè)結(jié)構(gòu)體的指向關(guān)系如附圖3所示。
[0049]需要說明的是當(dāng)子MTDO或子MTDl分區(qū)的結(jié)構(gòu)體指針成員(struct mtd_info*mtd)指向父MTD分區(qū)對應(yīng)的結(jié)構(gòu)體struct mtd_info mtd時(shí),MTD分區(qū)之間相當(dāng)于構(gòu)成一個(gè)循環(huán)鏈表,使得程序在處理時(shí),可以根據(jù)原始MTD設(shè)備相應(yīng)的結(jié)構(gòu)體struct fsl_elbc_mtd nandpriv [0]或 struct fsl_elbc_mtd nordpriv [I]來找到父 MTD 的地址,因?yàn)槠渲袚碛杏衜td_info這一成員。
[0050]上層應(yīng)用程序通過MTD接口訪問時(shí),根據(jù)實(shí)際訪問地址,動(dòng)態(tài)切換掛接mtd_>priv指向chip [O]或者mtd->priv指向chip [I],從而實(shí)現(xiàn)多個(gè)不同屬性的存儲(chǔ)器件掛接在同一個(gè)MTD分區(qū)下。
[0051]從上述本發(fā)明實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的方法可知,由于同一 MTD分區(qū)被擴(kuò)展成為多個(gè)子MTD分區(qū),如此,同一 MTD分區(qū)可以容納不同屬性的MTD設(shè)備,而每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體,并分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。因此,本發(fā)明實(shí)施例提供的方法可以使不同類型的芯片掛接在同一個(gè)父MTD分區(qū)的不同子MTD分區(qū)下,但對上層軟件仍然只體現(xiàn)為一個(gè)父MTD分區(qū),能夠滿足為了降低上層軟件的復(fù)雜性而在同一 MTD分區(qū)下掛接不同類型芯片的MTD原始存儲(chǔ)器件這一應(yīng)用場景的需求,同時(shí)為產(chǎn)品進(jìn)行芯片選型增加了靈活性,可以降低芯片選型的成本。
[0052]請參閱附圖4,是本發(fā)明實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置結(jié)構(gòu)示意圖。為了便于說明,僅僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。附圖4示例的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置包括分區(qū)擴(kuò)展模塊401、適配模塊402和關(guān)聯(lián)模塊403,其中:
[0053]分區(qū)擴(kuò)展模塊401,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)。
[0054]在本附圖4示例的裝置中,不再是以一個(gè)MTD分區(qū)為最小操作單位,而是將一個(gè)MTD分區(qū)拆分為若干個(gè)子MTD分區(qū),如此,可以以子MTD分區(qū)為最小顆粒對多個(gè)子MTD分區(qū)進(jìn)行操作。分區(qū)擴(kuò)展模塊401將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)后,擴(kuò)展所得的多個(gè)子MTD分區(qū)和被擴(kuò)展的MTD分區(qū)是隸屬關(guān)系。如圖2所示,擴(kuò)展所得的η個(gè)子MTD分區(qū)隸屬于同一 MTD分區(qū)即父MTD分區(qū)。
[0055]需要說明的是,盡管分區(qū)擴(kuò)展模塊401將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū),但內(nèi)核對上層的接口層仍然是父MTD分區(qū)所屬層,對上層體現(xiàn)為一個(gè)相應(yīng)的結(jié)構(gòu)體,例如,struct mtd_info mtd ;上層對MTD分區(qū)的操作仍然是先調(diào)用該父MTD分區(qū)所屬層提供的接口來實(shí)現(xiàn)。
[0056]適配模塊402,用于為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體。
[0057]關(guān)聯(lián)模塊403,用于將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。
[0058]需要說明的是,以上實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置的實(shí)施方式中,各功能模塊的劃分僅是舉例說明,實(shí)際應(yīng)用中可以根據(jù)需要,例如相應(yīng)硬件的配置要求或者軟件的實(shí)現(xiàn)的便利考慮,而將上述功能分配由不同的功能模塊完成,即將所述實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。而且,實(shí)際應(yīng)用中,本實(shí)施例中的相應(yīng)的功能模塊可以是由相應(yīng)的硬件實(shí)現(xiàn),也可以由相應(yīng)的硬件執(zhí)行相應(yīng)的軟件完成,例如,前述的分區(qū)擴(kuò)展模塊,可以是具有執(zhí)行前述將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū)的硬件,例如分區(qū)擴(kuò)展器,也可以是能夠執(zhí)行相應(yīng)計(jì)算機(jī)程序從而完成前述功能的一般處理器或者其他硬件設(shè)備;再如前述的適配模塊,可以是具有執(zhí)行前述為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體功能的硬件,例如適配器,也可以是能夠執(zhí)行相應(yīng)計(jì)算機(jī)程序從而完成前述功能的一般處理器或者其他硬件設(shè)備(本說明書提供的各個(gè)實(shí)施例都可應(yīng)用上述描述原則)。
[0059]在本附圖4示例的裝置中,芯片描述信息體可以為描述芯片屬性的結(jié)構(gòu)體。例如,對于NAND Flash,芯片描述信息體可以以struct nand_chip chip這一結(jié)構(gòu)體描述其屬性,
如果有多個(gè),可以以 struct nand_chip chip [O]、struct nand_chipchip [I]、......>struct
nand_chip chip[n]等加以區(qū)別;描述芯片屬性的結(jié)構(gòu)體為直接讀寫芯片數(shù)據(jù)提供了一個(gè)接口層,而接口層就對應(yīng)一種屬性。附圖4示例的適配模塊402可以包括結(jié)構(gòu)體構(gòu)造單元501和第一建鏈單元502,如附圖5所示本發(fā)明另一實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置,其中:
[0060]結(jié)構(gòu)體構(gòu)造單元501,用于構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體;
[0061]第一建鏈單元502,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體。
[0062]在本附圖4示例的裝置中,芯片描述信息體可以為描述芯片屬性的結(jié)構(gòu)體,MTD存儲(chǔ)器件廠商所提供的私有描述信息體可以為MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體,對于NAND的MTD存儲(chǔ)器件,其廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體可以以struct fsl_elbc_mtd nandpriv這一結(jié)構(gòu)體描述其屬性。
[0063]附圖4示例的關(guān)聯(lián)模塊403可以包括第二建鏈單元601,如附圖6 (a)所示本發(fā)明另一實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置。第二建鏈單元601,用于將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
[0064]附圖4示例的適配模塊402可以包括結(jié)構(gòu)體構(gòu)造單元501和第一建鏈單元502,關(guān)聯(lián)模塊403可以包括第二建鏈單元601,如附圖6 (b)所示本發(fā)明另一實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置,其中:[0065]結(jié)構(gòu)體構(gòu)造單元501,用于構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體;
[0066]第一建鏈單元502,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體;
[0067]第二建鏈單元601,用于將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
[0068]需要說明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明方法實(shí)施例相同,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
[0069]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,比如以下各種方法的一種或多種或全部:
[0070]將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū);
[0071]為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體;
[0072]將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。
[0073]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccess Memory)、Flash設(shè)備、磁盤或光盤等。
[0074]以上對本發(fā)明實(shí)施例提供的實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多種設(shè)備的方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的方法,其特征在于,所述方法包括: 將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū); 為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體; 將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的私有描述信息體關(guān)聯(lián)。
2.如權(quán)利要求1所述的方法,其特征在于,所述芯片描述信息體為描述芯片屬性的結(jié)構(gòu)體,所述MTD存儲(chǔ)器件廠商所提供的私有描述信息體為MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
3.如權(quán)利要求2所述的方法,其特征在于,所述為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體包括: 構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體; 將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體。
4.如權(quán)利要求2或3所述的方法,其特征在于,所述將所述每個(gè)芯片描述信息體分別與需要掛接的MTD原始設(shè)備的廠商代碼私有描述信息體關(guān)聯(lián)包括: 將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
5.一種實(shí)現(xiàn)同一內(nèi)存技術(shù)設(shè)備分區(qū)掛接多屬性設(shè)備的裝置,其特征在于,所述裝置包括: 分區(qū)擴(kuò)展模塊,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)擴(kuò)展為多個(gè)子MTD分區(qū); 適配模塊,用于為所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)適配一個(gè)相應(yīng)的芯片描述信息體; 關(guān)聯(lián)模塊,用于將所述每個(gè)芯片描述信息體分別與需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有描述信息體關(guān)聯(lián)。
6.如權(quán)利要求5所述的裝置,其特征在于,所述芯片描述信息體為描述芯片屬性的結(jié)構(gòu)體,所述MTD存儲(chǔ)器件廠商所提供的私有描述信息體為MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
7.如權(quán)利要求6所述的裝置,其特征在于,所述適配模塊包括: 結(jié)構(gòu)體構(gòu)造單元,用于構(gòu)造分別與所述多個(gè)子MTD分區(qū)中每一個(gè)子MTD分區(qū)相應(yīng)的芯片屬性的結(jié)構(gòu)體; 第一建鏈單元,用于將同一內(nèi)存技術(shù)設(shè)備MTD分區(qū)相應(yīng)的結(jié)構(gòu)體指向所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體。
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述關(guān)聯(lián)模塊包括: 第二建鏈單元,用于將所述構(gòu)造的多個(gè)芯片屬性的結(jié)構(gòu)體中的每一個(gè)結(jié)構(gòu)體分別指向所述需要掛接的MTD存儲(chǔ)器件廠商所提供的代碼私有數(shù)據(jù)結(jié)構(gòu)體。
【文檔編號(hào)】G06F3/06GK103853496SQ201210495019
【公開日】2014年6月11日 申請日期:2012年11月28日 優(yōu)先權(quán)日:2012年11月28日
【發(fā)明者】羅曉雁, 陳慈沼, 周博, 陳凡 申請人:華為技術(shù)有限公司