本技術(shù)涉及固態(tài)硬盤,尤其涉及一種數(shù)據(jù)緩存空間的管理方法、系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在芯片設(shè)計(jì)流程中,數(shù)據(jù)緩存buffer占據(jù)著重要的作用,合理高效的利用數(shù)據(jù)緩存buffer大小,能夠大大的減少整個(gè)芯片的成本。
2、在傳統(tǒng)的芯片設(shè)計(jì)中,當(dāng)存在多個(gè)外部模塊訪問同一塊數(shù)據(jù)緩存buffer的時(shí)候,通常會(huì)提前給每個(gè)外部模塊分配一塊固定大小的緩存bufffer,讓各個(gè)外部模塊能夠訪問自己的緩存空間,這樣既可以保證各個(gè)外部模塊的訪問速率,又能做到較好的隔離。但是這種設(shè)計(jì)會(huì)造成數(shù)據(jù)緩存buffer的浪費(fèi)。因?yàn)樵趯?shí)際芯片運(yùn)行過程中,并不是所有的外部模塊都會(huì)同時(shí)工作,若某個(gè)外部模塊未運(yùn)行,則該外部模塊會(huì)在數(shù)據(jù)buffer中始終占據(jù)著一部分未被使用的緩存空間,從而造成資源的浪費(fèi),增加芯片的成本。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的主要目的在于提供一種數(shù)據(jù)緩存空間的管理方法、系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì),旨在解決如何高效利用緩存資源的技術(shù)問題。
2、本技術(shù)第一方面提供了一種數(shù)據(jù)緩存空間的管理方法,該數(shù)據(jù)緩存空間的管理方法包括:
3、若獲取到第一外部模塊的寫訪問請(qǐng)求,則獲取寫訪問請(qǐng)求中待寫入數(shù)據(jù)的第一總長度;
4、獲取數(shù)據(jù)緩存空間的當(dāng)前空閑地址信息;
5、根據(jù)第一外部模塊的訪問速率和第一總長度將待寫入數(shù)據(jù)分批寫入至當(dāng)前空閑地址信息對(duì)應(yīng)的空閑數(shù)據(jù)緩存空間,存儲(chǔ)每次寫入的子數(shù)據(jù)所在的子緩存空間的緩存地址,存儲(chǔ)同一個(gè)寫訪問請(qǐng)求中相鄰兩次寫入的子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系。
6、可選的,在本技術(shù)第一方面的第一種實(shí)現(xiàn)方式中,根據(jù)第一外部模塊的訪問速率和第一總長度將待寫入數(shù)據(jù)分批寫入至當(dāng)前空閑地址信息對(duì)應(yīng)的空閑數(shù)據(jù)緩存空間,存儲(chǔ)每次寫入的子數(shù)據(jù)所在的子緩存空間的緩存地址,存儲(chǔ)同一個(gè)寫訪問請(qǐng)求中相鄰兩次寫入的子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系,包括:
7、獲取空閑數(shù)據(jù)緩存空間的起始寫地址;
8、根據(jù)第一外部模塊的訪問速率,將待寫入數(shù)據(jù)中的第一批待寫入子數(shù)據(jù)作為當(dāng)前待寫入子數(shù)據(jù),將起始寫地址作為當(dāng)前待寫入地址;
9、將當(dāng)前待寫入子數(shù)據(jù)寫入至當(dāng)前待寫入地址對(duì)應(yīng)的子緩存空間;
10、存儲(chǔ)當(dāng)前待寫入子數(shù)據(jù)與當(dāng)前待寫入地址之間的映射關(guān)系;
11、根據(jù)待寫入數(shù)據(jù)的第一總長度和已寫入子數(shù)據(jù)的長度,計(jì)算剩余寫長度;
12、若剩余寫長度不為0,則獲取當(dāng)前待寫入子數(shù)據(jù)的下一待寫入子數(shù)據(jù)及對(duì)應(yīng)的下一待寫入地址;
13、存儲(chǔ)當(dāng)前待寫入地址與下一待寫入地址之間的關(guān)聯(lián)關(guān)系;
14、將下一待寫入子數(shù)據(jù)作為當(dāng)前待寫入子數(shù)據(jù),將下一待寫入地址作為當(dāng)前待寫入地址,執(zhí)行將當(dāng)前待寫入子數(shù)據(jù)寫入至當(dāng)前待寫入地址對(duì)應(yīng)的子緩存空間的步驟及后續(xù)步驟,直到剩余寫長度為0。
15、可選的,在本技術(shù)第一方面的第二種實(shí)現(xiàn)方式中,數(shù)據(jù)緩存空間的管理方法還包括:
16、若獲取到第二外部模塊的讀訪問請(qǐng)求,則獲取讀訪問請(qǐng)求中待讀出數(shù)據(jù)的第二總長度和起始讀地址;
17、根據(jù)第二總長度、第二外部模塊的訪問速率及待讀出數(shù)據(jù)中各個(gè)待讀出子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系,從起始讀地址開始從數(shù)據(jù)緩存空間依次讀取各個(gè)待讀出子數(shù)據(jù)。
18、可選的,在本技術(shù)第一方面的第三種實(shí)現(xiàn)方式中,根據(jù)第二總長度、第二外部模塊的訪問速率及待讀出數(shù)據(jù)中各個(gè)待讀出子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系,從起始讀地址開始從數(shù)據(jù)緩存空間依次讀取各個(gè)待讀出子數(shù)據(jù),包括:
19、將起始讀地址作為當(dāng)前待讀出地址;
20、根據(jù)當(dāng)前待讀出地址和第二外部模塊的訪問速率從數(shù)據(jù)緩存空間中讀取當(dāng)前待讀出子數(shù)據(jù),將讀出的當(dāng)前子數(shù)據(jù)傳輸給第二外部模塊;
21、根據(jù)待讀出數(shù)據(jù)的第二總長度和已讀出子數(shù)據(jù)的長度,計(jì)算剩余讀長度;
22、若剩余讀長度不為0,則根據(jù)當(dāng)前待讀出子數(shù)據(jù)與下一待讀出子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系,獲取當(dāng)前待讀出地址的下一待讀出地址;
23、將下一待讀出地址作為當(dāng)前待讀出地址,執(zhí)行根據(jù)當(dāng)前待讀出地址和第二外部模塊的訪問速率從數(shù)據(jù)緩存空間中讀取當(dāng)前待讀出子數(shù)據(jù),將讀出的當(dāng)前子數(shù)據(jù)傳輸給第二外部模塊的步驟及后續(xù)步驟,直到剩余讀出長度為0。
24、可選的,在本技術(shù)第一方面的第四種實(shí)現(xiàn)方式中,數(shù)據(jù)緩存空間的管理方法還包括:
25、對(duì)已讀出子數(shù)據(jù)的子緩存空間進(jìn)行回收。
26、可選的,在本技術(shù)第一方面的第五種實(shí)現(xiàn)方式中,在獲取數(shù)據(jù)緩存空間的當(dāng)前空閑地址信息之前,數(shù)據(jù)緩存空間的管理方法還包括:
27、根據(jù)數(shù)據(jù)的訪問顆粒度將數(shù)據(jù)緩存空間劃分為多個(gè)子緩存空間,并為每個(gè)子緩存空間分配唯一的緩存地址。
28、本技術(shù)還提供一種數(shù)據(jù)緩存空間的管理系統(tǒng),該數(shù)據(jù)緩存空間的管理系統(tǒng)包括:寫命令控制模塊、第一地址控制模塊和第二地址控制模塊;
29、寫命令控制模塊,用于若獲取到第一外部模塊的寫訪問請(qǐng)求,則獲取寫訪問請(qǐng)求中待寫入數(shù)據(jù)的第一總長度;
30、寫命令控制模塊,還用于通過第一地址控制模塊獲取數(shù)據(jù)緩存空間的當(dāng)前空閑地址信息;
31、寫命令控制模塊,還用于根據(jù)第一外部模塊的訪問速率和第一總長度將待寫入數(shù)據(jù)分批寫入至當(dāng)前空閑地址信息對(duì)應(yīng)的空閑數(shù)據(jù)緩存空間;
32、第一地址控制模塊,用于存儲(chǔ)每次寫入的子數(shù)據(jù)所在的子緩存空間的緩存地址;
33、第二地址控制模塊,用于存儲(chǔ)同一個(gè)寫訪問請(qǐng)求中相鄰兩次寫入的子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系。
34、可選的,在本技術(shù)第二方面的第一種實(shí)現(xiàn)方式中,數(shù)據(jù)緩存空間的管理系統(tǒng)還包括:讀命令控制模塊;
35、讀命令控制模塊,用于若獲取到第二外部模塊的讀訪問請(qǐng)求,則獲取讀訪問請(qǐng)求中待讀出數(shù)據(jù)的第二總長度和起始讀地址;
36、讀命令控制模塊,還用于根據(jù)第二總長度、第二外部模塊的訪問速率及從第二地址控制模塊獲取的待讀出數(shù)據(jù)中各個(gè)待讀出子數(shù)據(jù)的緩存地址之間的關(guān)聯(lián)關(guān)系,從起始讀地址開始從數(shù)據(jù)緩存空間依次讀取各個(gè)待讀出子數(shù)據(jù)。
37、本技術(shù)第三方面提供了一種計(jì)算機(jī)設(shè)備,包括:存儲(chǔ)器和至少一個(gè)處理器,存儲(chǔ)器中存儲(chǔ)有指令;至少一個(gè)處理器調(diào)用存儲(chǔ)器中的指令,以使得計(jì)算機(jī)設(shè)備執(zhí)行上述的數(shù)據(jù)緩存空間的管理方法。
38、本技術(shù)的第四方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行上述的數(shù)據(jù)緩存空間的管理方法。
39、本技術(shù)基于外部模塊的訪問請(qǐng)求,可以根據(jù)實(shí)際需求靈活地為任意外部模塊配置緩存空間大小,如果某些外部模塊不再使用,其不會(huì)占用緩存空間,高效地利用了緩存空間,既滿足了各個(gè)外部模塊的訪問速率,又可以有效避免緩存空間的浪費(fèi),節(jié)省了緩存空間,保證了緩存資源的充分利用,降低了芯片成本,實(shí)現(xiàn)了對(duì)緩存空間的共享管理。本技術(shù)還將同一個(gè)訪問請(qǐng)求存儲(chǔ)于不同子緩存空間的子數(shù)據(jù)通過緩存地址關(guān)聯(lián)起來,有效保證了數(shù)據(jù)的完整性。