亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種Flash控制器數(shù)據(jù)處理方法及裝置的制造方法

文檔序號(hào):10552670閱讀:360來(lái)源:國(guó)知局
一種Flash控制器數(shù)據(jù)處理方法及裝置的制造方法
【專利摘要】本發(fā)明公開(kāi)了一種Flash控制器數(shù)據(jù)處理方法及裝置,該方法包括:接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;判斷所述當(dāng)前處理通道是否處于閑置狀態(tài);如果是,則通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作;操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法及裝置,將Flash控制器劃分為多個(gè)獨(dú)立的數(shù)據(jù)通道,利用流水線控制方式,讓每個(gè)通道并行工作,從而提高SSD主控制器訪問(wèn)Flash顆粒接口的數(shù)據(jù)帶寬。
【專利說(shuō)明】
一種FI ash控制器數(shù)據(jù)處理方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及Flash控制器技術(shù)領(lǐng)域,特別是涉及一種Flash控制器數(shù)據(jù)處理方法及
目.ο
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)系統(tǒng)的發(fā)展,云數(shù)據(jù)的增長(zhǎng),大數(shù)據(jù)應(yīng)用等互聯(lián)網(wǎng)技術(shù)、新一代信息技術(shù)的快速發(fā)展,硬盤(pán)的容量雖有很大提升,但訪問(wèn)速度一直沒(méi)有很大突破,從而阻礙了信息化的發(fā)展。隨著半導(dǎo)體技術(shù)的快速發(fā)展,NAND Flash作為存儲(chǔ)介質(zhì)已經(jīng)應(yīng)用到SSD(SolidState Drive,SSD)存儲(chǔ)芯片陣列中。在目前互聯(lián)網(wǎng)市場(chǎng)中,固態(tài)硬盤(pán)有取代傳統(tǒng)機(jī)械硬盤(pán)的趨勢(shì)。
[0003]SSD(固態(tài)硬盤(pán))主要采用NAND Flash作為存儲(chǔ)介質(zhì),SSD主控制器主要對(duì)NANDFlash介質(zhì)進(jìn)行讀、寫(xiě)、擦除等操作。Flash控制器訪問(wèn)Flash顆粒的性能將直接影響SSD(固態(tài)硬盤(pán))的性能。如何進(jìn)一步提高S SD控制器的性能是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是提供一種Flash控制器數(shù)據(jù)處理方法及裝置,目的在于將Flash控制器劃分為多個(gè)獨(dú)立的數(shù)據(jù)通道,利用流水線控制方式,讓每個(gè)通道并行工作,從而提高SSD主控制器訪問(wèn)Flash顆粒接口的數(shù)據(jù)帶寬。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種Flash控制器數(shù)據(jù)處理方法,包括:
[0006]接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;
[0007]對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;
[0008]判斷所述當(dāng)前處理通道是否處于閑置狀態(tài);
[0009]如果是,則通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作;
[0010]操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0011]可選地,在所述將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊之后還包括:
[0012]所述信息控制管理模塊接收所述完成隊(duì)列信息后,釋放與所述完成隊(duì)列信息相關(guān)聯(lián)的請(qǐng)求命令隊(duì)列。
[0013]可選地,所述操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊包括:
[0014]若多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),當(dāng)前命令隊(duì)列完成后不發(fā)送當(dāng)前的完成隊(duì)列信息,釋放當(dāng)前請(qǐng)求命令隊(duì)列,并繼續(xù)執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,直到相關(guān)聯(lián)的所述請(qǐng)求命令隊(duì)列完成時(shí),將所有請(qǐng)求命令隊(duì)列的完成執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0015]可選地,所述請(qǐng)求命令隊(duì)列信息包括命令隊(duì)列ID號(hào)、Flash操作、Flash地址信息、每次操作的數(shù)據(jù)量以及Flash通道信息。
[0016]可選地,所述操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊包括:
[0017]操作執(zhí)行完成后,讀取Flash狀態(tài)位來(lái)判斷操作是否正確;
[0018]將執(zhí)行結(jié)果打包為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊,所述完成隊(duì)列信息包括:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成請(qǐng)求以及執(zhí)行結(jié)果。
[0019]本發(fā)明還提供了一種Flash控制器數(shù)據(jù)處理裝置,包括:
[0020]接收模塊,用于接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;
[0021]解析模塊,用于對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;
[0022]判斷模塊,用于判斷所述當(dāng)前處理通道是否處于閑置狀態(tài);
[0023]執(zhí)行模塊,用于當(dāng)判定所述當(dāng)前處理通道處于閑置狀態(tài)時(shí),通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作;
[0024]發(fā)送模塊,用于操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0025]可選地,還包括:
[0026]釋放模塊,用于在所述將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊之后,所述信息控制管理模塊接收所述完成隊(duì)列信息后,釋放與所述完成隊(duì)列信息相關(guān)聯(lián)的請(qǐng)求命令隊(duì)列。
[0027]可選地,所述發(fā)送模塊具體用于:
[0028]若多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),當(dāng)前命令隊(duì)列完成后不發(fā)送當(dāng)前的完成隊(duì)列信息,釋放當(dāng)前請(qǐng)求命令隊(duì)列,并繼續(xù)執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,直到相關(guān)聯(lián)的所述請(qǐng)求命令隊(duì)列完成時(shí),將所有請(qǐng)求命令隊(duì)列的完成執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0029]可選地,所述請(qǐng)求命令隊(duì)列信息包括命令隊(duì)列ID號(hào)、Flash操作、Flash地址信息、每次操作的數(shù)據(jù)量以及Flash通道信息。
[0030]可選地,所述發(fā)送模塊包括:
[0031 ]判斷單元,用于在操作執(zhí)行完成后,讀取Flash狀態(tài)位來(lái)判斷操作是否正確;
[0032]發(fā)送單元,用于將執(zhí)行結(jié)果打包為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊,所述完成隊(duì)列信息包括:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成請(qǐng)求以及執(zhí)行結(jié)果。
[0033]本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法及裝置,通過(guò)接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;對(duì)接收到的請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;判斷當(dāng)前處理通道是否處于閑置狀態(tài);如果是,則通過(guò)當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行待處理操作;操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至信息控制管理模塊。本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法及裝置,采用多個(gè)請(qǐng)求命令隊(duì)列和多個(gè)完成隊(duì)列來(lái)達(dá)到信息控制管理模塊與Flash控制器進(jìn)行控制信息通訊的目的,使復(fù)雜系統(tǒng)管理簡(jiǎn)單化,便于系統(tǒng)管理。同時(shí),F(xiàn)lash控制器采用多級(jí)流水線操作來(lái)完成對(duì)NAND Flash存儲(chǔ)陣列的控制,從而達(dá)到Flash通道之間并行工作。在信息管理上采用多請(qǐng)求命令隊(duì)列和完成隊(duì)列,在實(shí)際執(zhí)行中單個(gè)通道采用多級(jí)流水執(zhí)行,利用各個(gè)Flash通道之前并行工作來(lái)提升SSD控制器的性能。
【附圖說(shuō)明】
[0034]為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法的一種【具體實(shí)施方式】的流程圖;
[0036]圖2為本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法的另一種【具體實(shí)施方式】的流程圖;
[0037]圖3為本發(fā)明實(shí)施例提供的Flash控制器數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
[0038]圖4為本發(fā)明所提供的SSD控制器存儲(chǔ)介質(zhì)的示意圖;
[0039]圖5為本發(fā)明Flash控制器接收到的請(qǐng)求命令隊(duì)列示意圖;
[0040]圖6為本發(fā)明Flash控制器發(fā)出完成隊(duì)列示意圖;
[0041 ]圖7為本發(fā)明8通道Flash流水線操作示意圖;
[0042]圖8為本發(fā)明Flash控制器的命令隊(duì)列處理流程圖;
[0043]圖9為本發(fā)明多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián)流程圖。
【具體實(shí)施方式】
[0044]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法的一種【具體實(shí)施方式】的流程圖如圖1所示,該方法包括:
[0046]步驟SlOl:接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;
[0047]具體地,請(qǐng)求命令隊(duì)列信息可以包括命令隊(duì)列ID號(hào)、Flash操作、Flash地址信息、每次操作的數(shù)據(jù)量以及Flash通道信息,當(dāng)然還可以包括其他信息,并不限于上述幾種。
[0048]步驟S102:對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;
[0049]步驟S103:判斷所述當(dāng)前處理通道是否處于閑置狀態(tài);
[0050]步驟S104:如果是,則通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作;
[0051]步驟S105:操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0052]本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法,通過(guò)接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;對(duì)接收到的請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;判斷當(dāng)前處理通道是否處于閑置狀態(tài);如果是,則通過(guò)當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行待處理操作;操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至信息控制管理模塊。本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法,采用多個(gè)請(qǐng)求命令隊(duì)列和多個(gè)完成隊(duì)列來(lái)達(dá)到信息控制管理模塊與Flash控制器進(jìn)行控制信息通訊的目的,使復(fù)雜系統(tǒng)管理簡(jiǎn)單化,便于系統(tǒng)管理。同時(shí),F(xiàn)lash控制器采用多級(jí)流水線操作來(lái)完成對(duì)NAND Flash存儲(chǔ)陣列的控制,從而達(dá)到Flash通道之間并行工作。在信息管理上采用多請(qǐng)求命令隊(duì)列和完成隊(duì)列,在實(shí)際執(zhí)行中單個(gè)通道采用多級(jí)流水執(zhí)行,利用各個(gè)Flash通道之前并行工作來(lái)提升SSD控制器的性能。
[0053]需要指出的是,本實(shí)施例中請(qǐng)求命令隊(duì)列為一個(gè)固定大小的環(huán)形緩存區(qū),由信息控制管理模塊把請(qǐng)求發(fā)送給Flash控制器,同時(shí)把信息任務(wù)和Flash地址存放在請(qǐng)求命令隊(duì)列中,由Flash控制器解析信息任務(wù)并按任務(wù)命令執(zhí)行Flash操作。
[0054]命令完成隊(duì)列也是一個(gè)固定大小的環(huán)形緩存區(qū),存儲(chǔ)每個(gè)已經(jīng)完成的命令隊(duì)列所對(duì)應(yīng)的完成包,為請(qǐng)求命令隊(duì)列發(fā)布完成狀態(tài),一個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),也可以多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián)。
[0055]在上述實(shí)施例的基礎(chǔ)上,本實(shí)施例還可以進(jìn)一步包括:
[0056]所述信息控制管理模塊接收所述完成隊(duì)列信息后,釋放與所述完成隊(duì)列信息相關(guān)聯(lián)的請(qǐng)求命令隊(duì)列。
[0057]釋放的過(guò)程可以具體為:
[0058]若多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),當(dāng)前命令隊(duì)列完成后不發(fā)送當(dāng)前的完成隊(duì)列信息,釋放當(dāng)前請(qǐng)求命令隊(duì)列,并繼續(xù)執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,直到相關(guān)聯(lián)的所述請(qǐng)求命令隊(duì)列完成時(shí),將所有請(qǐng)求命令隊(duì)列的完成執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0059]如果是一個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián)時(shí),當(dāng)信息控制管理模塊接收到完成隊(duì)列時(shí)必須釋放當(dāng)前請(qǐng)求命令隊(duì)列,并按完成隊(duì)列信息的執(zhí)行狀態(tài)進(jìn)行正確處理;如果多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián)時(shí),當(dāng)前隊(duì)列完成時(shí)不用發(fā)送完成隊(duì)列給信息控制管理模塊就可以釋放當(dāng)前請(qǐng)求命令隊(duì)列,緊接著執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,這樣不用信息控制管理模塊來(lái)處理之后釋放請(qǐng)求命令隊(duì)列,能夠加速處理請(qǐng)求命令隊(duì)列的速度,從而進(jìn)一步加速了SSD主控制器對(duì)Flash存儲(chǔ)陣列的訪問(wèn)。
[0060]本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法的另一種【具體實(shí)施方式】的流程圖如圖2所示,該方法包括:
[0061 ]步驟S201:接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;
[0062]步驟S202:對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;
[0063]步驟S203:判斷所述當(dāng)前處理通道是否處于閑置狀態(tài);
[0064]步驟S204:如果是,則通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作;
[0065]步驟S205:操作執(zhí)行完成后,讀取Flash狀態(tài)位來(lái)判斷操作是否正確;
[0066]步驟S206:將執(zhí)行結(jié)果打包為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊,所述完成隊(duì)列信息包括:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成請(qǐng)求以及執(zhí)行結(jié)果。
[0067]本發(fā)明方法命令發(fā)送和接收基于多隊(duì)列傳遞方式,使得系統(tǒng)管理更加方便,降低了系統(tǒng)控制的復(fù)雜度。此外,本發(fā)明基于流水線操作和多通道并行存儲(chǔ)方式,提高了存儲(chǔ)操作的并行度,從而提高了 SSD的系統(tǒng)性能。
[0068]下面對(duì)本發(fā)明實(shí)施例所提供的Flash控制器數(shù)據(jù)處理裝置進(jìn)行介紹,下文描述的Flash控制器數(shù)據(jù)處理裝置與上文描述的Flash控制器數(shù)據(jù)處理方法可相互對(duì)應(yīng)參照。
[0069]圖3為本發(fā)明實(shí)施例提供的Flash控制器數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖,參照?qǐng)D3Flash控制器數(shù)據(jù)處理裝置可以包括:
[0070]接收模塊100,用于接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息;
[0071]解析模塊200,用于對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道;
[0072]判斷模塊300,用于判斷所述當(dāng)前處理通道是否處于閑置狀態(tài);
[0073]執(zhí)行模塊400,用于當(dāng)判定所述當(dāng)前處理通道處于閑置狀態(tài)時(shí),通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作;
[0074]發(fā)送模塊500,用于操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0075]作為一種【具體實(shí)施方式】,本發(fā)明所提供的Flash控制器數(shù)據(jù)處理裝置還可以進(jìn)一步包括:
[0076]釋放模塊,用于在所述將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊之后,所述信息控制管理模塊接收所述完成隊(duì)列信息后,釋放與所述完成隊(duì)列信息相關(guān)聯(lián)的請(qǐng)求命令隊(duì)列。
[0077]其中,若多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),當(dāng)前命令隊(duì)列完成后不發(fā)送當(dāng)前的完成隊(duì)列信息,釋放當(dāng)前請(qǐng)求命令隊(duì)列,并繼續(xù)執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,直到相關(guān)聯(lián)的所述請(qǐng)求命令隊(duì)列完成時(shí),將所有請(qǐng)求命令隊(duì)列的完成執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。
[0078]上述實(shí)施例中,本發(fā)明所提供的Flash控制器數(shù)據(jù)處理裝置的請(qǐng)求命令隊(duì)列信息包括命令隊(duì)列ID號(hào)、Flash操作、Flash地址信息、每次操作的數(shù)據(jù)量以及Flash通道信息。
[0079]作為一種【具體實(shí)施方式】,本發(fā)明所提供的Flash控制器數(shù)據(jù)處理裝置中,發(fā)送模塊500可以具體包括:
[0080]判斷單元,用于在操作執(zhí)行完成后,讀取Flash狀態(tài)位來(lái)判斷操作是否正確;
[0081]發(fā)送單元,用于將執(zhí)行結(jié)果打包為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊,所述完成隊(duì)列信息包括:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成請(qǐng)求以及執(zhí)行結(jié)果。
[0082]本發(fā)明所提供的Flash控制器數(shù)據(jù)處理裝置,采用多個(gè)請(qǐng)求命令隊(duì)列和多個(gè)完成隊(duì)列來(lái)達(dá)到信息控制管理模塊與Flash控制器進(jìn)行控制信息通訊的目的,使復(fù)雜系統(tǒng)管理簡(jiǎn)單化,便于系統(tǒng)管理。同時(shí),F(xiàn)lash控制器采用多級(jí)流水線操作來(lái)完成對(duì)NAND Flash存儲(chǔ)陣列的控制,從而達(dá)到Flash通道之間并行工作。在信息管理上采用多請(qǐng)求命令隊(duì)列和完成隊(duì)列,在實(shí)際執(zhí)行中單個(gè)通道采用多級(jí)流水執(zhí)行,利用各個(gè)Flash通道之前并行工作來(lái)提升SSD控制器的性能。
[0083]如圖4本發(fā)明所提供的SSD控制器存儲(chǔ)介質(zhì)的示意圖所示,下面對(duì)本發(fā)明所提供的SSD控制器存儲(chǔ)介質(zhì)進(jìn)行進(jìn)一步詳細(xì)闡述。存儲(chǔ)介質(zhì)可以具體由N(N是2x,x為整數(shù))個(gè)通道所組成,每個(gè)通道獨(dú)立完成讀、寫(xiě)、擦除等操作,每一個(gè)通道由M個(gè)Flash Target所組成,F(xiàn)lash Target之間的數(shù)據(jù)總線復(fù)用、控制總線復(fù)用,由片選來(lái)控制各自的Flash Target操作。本實(shí)施例中以N為8,M為8為例,可以根據(jù)實(shí)際情況選用其他數(shù)字,這均不影響本發(fā)明的實(shí)現(xiàn)。
[0084]本發(fā)明采用多命令隊(duì)列方式控制Flash控制器,如圖5所示,由信息控制管理模塊發(fā)出命令隊(duì)列信息給Flash控制器,隊(duì)列信息包含:命令隊(duì)列ID號(hào);讀、寫(xiě)、擦除、Copy-Back等Flash操作;Flash地址信息;每次操作的數(shù)據(jù)量,以4Kbyte為增量;以及Flash通道,為在N個(gè)通道中指定的某一個(gè)通道。
[0085]Flash控制器接收請(qǐng)求命令隊(duì)列信息之后進(jìn)行命令解析,同時(shí)判斷當(dāng)前所對(duì)應(yīng)的Flash通道是否處于忙狀態(tài),如果處于閑置狀態(tài),對(duì)當(dāng)前通道的Flash Target執(zhí)行該操作。該操作執(zhí)行完畢后,讀取Flash狀態(tài)位來(lái)判斷其操作是否正確,并把其操作的執(zhí)行結(jié)果打包成完成隊(duì)列信息發(fā)送給信息控制管理模塊,如圖6所示。其完成隊(duì)列信息包含:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成情況以及執(zhí)行結(jié)果。
[0086]當(dāng)信息控制管理模塊接收到完成隊(duì)列信息時(shí),釋放當(dāng)前隊(duì)列,并按當(dāng)前完成隊(duì)列信息來(lái)判斷當(dāng)前執(zhí)行情況來(lái)做適當(dāng)處理。
[0087]用流水線的示意圖來(lái)說(shuō)明其加速性能,如圖7所示,假如一個(gè)8通道的Flashtarget,隊(duì)列深度為8的單通道flash執(zhí)行操作分為3級(jí)流水,從圖7不難看出,在同一個(gè)時(shí)間內(nèi)有8個(gè)Flash通道同時(shí)在工作。以此類(lèi)推,假如Flash通道數(shù)N為64,同樣得出,在同一個(gè)時(shí)間內(nèi)有64個(gè)Flash通道在同時(shí)并行工作。在流水示意圖來(lái)看數(shù)據(jù)讀或者寫(xiě)Flash的性能,如果通道數(shù)為8,同一時(shí)刻讀或者寫(xiě)8個(gè)Flash頁(yè)面操作,其性能提升8倍;如果通道數(shù)N為64,同一時(shí)刻讀或者寫(xiě)64個(gè)Flash頁(yè)面操作,其性能提升64倍。由此推算,隨著通道數(shù)N的增加,其性能也成N倍數(shù)提升,但是設(shè)計(jì)SSD主控制器上復(fù)雜性也隨著提升。
[0088]Flash控制器的命令隊(duì)列處理流程圖如圖8所示,示意圖列舉了 3種Flash操作。
[0089]第一種是寫(xiě)Flash操作:
[°09°]在信息控制管理模塊發(fā)出請(qǐng)求寫(xiě)Flash操作時(shí),Flash控制器接收寫(xiě)請(qǐng)求,判斷當(dāng)前Flash通道是否閑置或者即將閑置,如果當(dāng)前通道不忙或者即將閑置的時(shí)候,響應(yīng)寫(xiě)應(yīng)答信號(hào),F(xiàn)lash控制器接收命令隊(duì)列,下一時(shí)鐘周期解析當(dāng)前命令隊(duì)列的信息,按命令指導(dǎo)執(zhí)行,讀取即將寫(xiě)入Flash頁(yè)面的數(shù)據(jù),對(duì)其數(shù)據(jù)進(jìn)行ECC編碼,產(chǎn)生ECC校驗(yàn)信息,把原數(shù)據(jù)寫(xiě)入Flash數(shù)據(jù)區(qū),ECC產(chǎn)生的校驗(yàn)位信息寫(xiě)入Spare區(qū)。當(dāng)前頁(yè)面寫(xiě)操作完畢時(shí),讀取當(dāng)前Flash寫(xiě)狀態(tài)寄存器值判斷是否寫(xiě)正確,如果寫(xiě)正確標(biāo)記為I,否則為O。把標(biāo)記位值與當(dāng)前命令隊(duì)列ID打包成完成隊(duì)列信息發(fā)送給信息控制管理模塊,信息控制管理模塊接收完成隊(duì)列信息后釋放當(dāng)前請(qǐng)求命令隊(duì)列,并對(duì)完成隊(duì)列進(jìn)行處理,判斷當(dāng)前操作是否執(zhí)行成功,如果寫(xiě)Flash不成功需要采取適當(dāng)?shù)拇胧┲貙?xiě),如果寫(xiě)Flash成功,表示此操作已經(jīng)結(jié)束。
[0091]第二種是讀Flash操作:
[0092]在信息控制管理模塊發(fā)出請(qǐng)求讀Flash操作時(shí),Flash控制器接收讀請(qǐng)求,在當(dāng)前通道閑置或者即將閑置的時(shí)候,響應(yīng)讀應(yīng)答信號(hào),Flash控制器接收命令隊(duì)列,下一時(shí)鐘周期解析命令隊(duì)列,按當(dāng)前任務(wù)命令指導(dǎo),讀取當(dāng)前Flash頁(yè)面數(shù)據(jù)和Spare區(qū)的信息,并對(duì)其當(dāng)前頁(yè)面的數(shù)據(jù)與Spare區(qū)的信息進(jìn)行ECC算法解碼來(lái)發(fā)現(xiàn)原數(shù)據(jù)是否有錯(cuò)誤存在,通過(guò)算法對(duì)錯(cuò)誤的位進(jìn)行糾錯(cuò);如果數(shù)據(jù)位錯(cuò)誤數(shù)量超出ECC糾錯(cuò)算法范圍外,F(xiàn)lash控制器將采用2種情況來(lái)進(jìn)行處理:
[0093]一種是直接確定原數(shù)據(jù)有錯(cuò)誤;
[0094]另一種是進(jìn)入Rety模式,再次讀取Flash頁(yè)面數(shù)據(jù)和Spare區(qū)域信息,再次進(jìn)行ECC糾錯(cuò)算法進(jìn)行位數(shù)據(jù)糾錯(cuò),如有位錯(cuò)誤數(shù)超出糾錯(cuò)范圍外,再次進(jìn)入Rety模式,以此循環(huán),當(dāng)循環(huán)次數(shù)超出預(yù)設(shè)定次數(shù)時(shí),原數(shù)據(jù)位錯(cuò)誤數(shù)依然超出糾錯(cuò)范圍外,表示當(dāng)前頁(yè)面數(shù)據(jù)有錯(cuò)誤,原數(shù)據(jù)無(wú)法恢復(fù)。
[0095]如果當(dāng)前讀操作flash頁(yè)面數(shù)據(jù)位錯(cuò)誤沒(méi)有超出糾錯(cuò)范圍外,通過(guò)糾錯(cuò)算法能把錯(cuò)誤位正常糾正,標(biāo)志為0,否則為I;并把數(shù)據(jù)出錯(cuò)標(biāo)志位信息與當(dāng)作操作的命令隊(duì)列ID打包成完成隊(duì)列信息發(fā)送給信息控制管理模塊,并釋放當(dāng)前請(qǐng)求命令隊(duì)列,信息控制管理模塊接收完成隊(duì)列信息并進(jìn)行正確處理。
[0096]第三種是對(duì)Flash進(jìn)行塊擦除操作:
[0097]當(dāng)SSD系統(tǒng)要對(duì)Flash塊進(jìn)行擦除操作時(shí),由信息控制管理模塊向Flash控制器發(fā)出請(qǐng)求命令隊(duì)列,F(xiàn)lash控制器接收請(qǐng)求,在當(dāng)前Flash通道閑置或者即將閑置時(shí),響應(yīng)塊請(qǐng)求應(yīng)答信號(hào),F(xiàn)lash控制器接收命令隊(duì)列,下一時(shí)鐘周期解析命令隊(duì)列,按命令指示對(duì)Flash進(jìn)行塊擦除。當(dāng)塊擦除操作擦除完畢時(shí),讀取Flash狀態(tài)寄存器查看擦除操作是否成功,如果擦除成功標(biāo)志位0,否則為I;并把其標(biāo)志位信息與當(dāng)前隊(duì)列ID打包成完成隊(duì)列信息發(fā)送給信息控制管理模塊,并釋放當(dāng)前請(qǐng)求命令隊(duì)列,信息控制管理模塊接收完成隊(duì)列信息并進(jìn)行正確處理。
[0098]如圖9八個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián)流程圖所示,當(dāng)?shù)谝粋€(gè)請(qǐng)求命令隊(duì)列進(jìn)入Flash控制器后,當(dāng)前命令隊(duì)列處理完畢時(shí)不用發(fā)送當(dāng)前的完成隊(duì)列給信息控制管理模塊就能釋放當(dāng)前請(qǐng)求命令隊(duì)列,同時(shí)開(kāi)啟接收第二個(gè)請(qǐng)求命令隊(duì)列。以此類(lèi)推,直到第八個(gè)請(qǐng)求命令隊(duì)列完成時(shí),再把所有的請(qǐng)求命令隊(duì)列ID號(hào)和每一個(gè)隊(duì)列完成執(zhí)行結(jié)果標(biāo)志打包成一個(gè)完成隊(duì)列發(fā)送給信息控制管理模塊進(jìn)行批處理,由信息控制管理模塊來(lái)分析判斷當(dāng)前所有請(qǐng)求命令隊(duì)列執(zhí)行情況做正確的處理。這樣設(shè)置的好處是加快了系統(tǒng)對(duì)命令隊(duì)列的發(fā)送,加速了 Flash控制器對(duì)命令隊(duì)列的響應(yīng)、執(zhí)行,從而進(jìn)一步提升了 SSD性能。
[0099]本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
[0100]專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0101]結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(R0M)、電可編程R0M、電可擦除可編程R0M、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0102]以上對(duì)本發(fā)明所提供的Flash控制器數(shù)據(jù)處理方法及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種Flash控制器數(shù)據(jù)處理方法,其特征在于,包括: 接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息; 對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道; 判斷所述當(dāng)前處理通道是否處于閑置狀態(tài); 如果是,則通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作; 操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。2.如權(quán)利要求1所述的Flash控制器數(shù)據(jù)處理方法,其特征在于,在所述將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊之后還包括: 所述信息控制管理模塊接收所述完成隊(duì)列信息后,釋放與所述完成隊(duì)列信息相關(guān)聯(lián)的請(qǐng)求命令隊(duì)列。3.如權(quán)利要求1或2所述的Flash控制器數(shù)據(jù)處理方法,其特征在于,所述操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊包括: 若多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),當(dāng)前命令隊(duì)列完成后不發(fā)送當(dāng)前的完成隊(duì)列信息,釋放當(dāng)前請(qǐng)求命令隊(duì)列,并繼續(xù)執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,直到相關(guān)聯(lián)的所述請(qǐng)求命令隊(duì)列完成時(shí),將所有請(qǐng)求命令隊(duì)列的完成執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。4.如權(quán)利要求3所述的Flash控制器數(shù)據(jù)處理方法,其特征在于,所述請(qǐng)求命令隊(duì)列信息包括命令隊(duì)列ID號(hào)、Flash操作、Flash地址信息、每次操作的數(shù)據(jù)量以及Flash通道信息。5.如權(quán)利要求4所述的Flash控制器數(shù)據(jù)處理方法,其特征在于,所述操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊包括: 操作執(zhí)行完成后,讀取Flash狀態(tài)位來(lái)判斷操作是否正確; 將執(zhí)行結(jié)果打包為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊,所述完成隊(duì)列信息包括:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成請(qǐng)求以及執(zhí)行結(jié)果。6.一種Flash控制器數(shù)據(jù)處理裝置,其特征在于,包括: 接收模塊,用于接收信息控制管理模塊發(fā)送的請(qǐng)求命令隊(duì)列信息; 解析模塊,用于對(duì)接收到的所述請(qǐng)求命令隊(duì)列信息進(jìn)行解析,獲取待處理操作,并從控制器存儲(chǔ)介質(zhì)的多個(gè)可獨(dú)立并行處理的通道中確定當(dāng)前處理通道; 判斷模塊,用于判斷所述當(dāng)前處理通道是否處于閑置狀態(tài); 執(zhí)行模塊,用于當(dāng)判定所述當(dāng)前處理通道處于閑置狀態(tài)時(shí),通過(guò)所述當(dāng)前處理通道采用多級(jí)流水方式執(zhí)行所述待處理操作; 發(fā)送模塊,用于操作執(zhí)行完成后,將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。7.如權(quán)利要求6所述的Flash控制器數(shù)據(jù)處理裝置,其特征在于,還包括: 釋放模塊,用于在所述將執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊之后,所述信息控制管理模塊接收所述完成隊(duì)列信息后,釋放與所述完成隊(duì)列信息相關(guān)聯(lián)的請(qǐng)求命令隊(duì)列。8.如權(quán)利要求6或7所述的Flash控制器數(shù)據(jù)處理裝置,其特征在于,所述發(fā)送模塊具體用于: 若多個(gè)請(qǐng)求命令隊(duì)列與一個(gè)完成隊(duì)列相關(guān)聯(lián),當(dāng)前命令隊(duì)列完成后不發(fā)送當(dāng)前的完成隊(duì)列信息,釋放當(dāng)前請(qǐng)求命令隊(duì)列,并繼續(xù)執(zhí)行下一個(gè)請(qǐng)求命令隊(duì)列,直到相關(guān)聯(lián)的所述請(qǐng)求命令隊(duì)列完成時(shí),將所有請(qǐng)求命令隊(duì)列的完成執(zhí)行結(jié)果作為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊。9.如權(quán)利要求8所述的Flash控制器數(shù)據(jù)處理裝置,其特征在于,所述請(qǐng)求命令隊(duì)列信息包括命令隊(duì)列ID號(hào)、Flash操作、Flash地址信息、每次操作的數(shù)據(jù)量以及Flash通道信息。10.如權(quán)利要求9所述的Flash控制器數(shù)據(jù)處理裝置,其特征在于,所述發(fā)送模塊包括: 判斷單元,用于在操作執(zhí)行完成后,讀取Flash狀態(tài)位來(lái)判斷操作是否正確; 發(fā)送單元,用于將執(zhí)行結(jié)果打包為完成隊(duì)列信息發(fā)送至所述信息控制管理模塊,所述完成隊(duì)列信息包括:當(dāng)前請(qǐng)求命令隊(duì)列的ID、當(dāng)前隊(duì)列完成請(qǐng)求以及執(zhí)行結(jié)果。
【文檔編號(hào)】G06F3/06GK105912307SQ201610270491
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2016年4月27日
【發(fā)明人】廖紅輝
【申請(qǐng)人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1