專(zhuān)利名稱(chēng):一種基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種屬于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)中的多線程并行編程模型,特別涉及一種基 于眾核處理器和分區(qū)結(jié)構(gòu)的硬件型事務(wù)存儲(chǔ)方法。
背景技術(shù):
隨著處理器的迅速發(fā)展,多核處理器成為當(dāng)今處理器發(fā)展的主流,即便是對(duì)性能 要求較低的桌面型應(yīng)用也已經(jīng)進(jìn)入了多核時(shí)代。業(yè)界已經(jīng)推出了幾款眾核處理器,計(jì)算核 的數(shù)目進(jìn)一步增加。在處理器已經(jīng)提供了充裕的硬件并行能力的情況下硬件系統(tǒng)對(duì)上層軟 件提出了更高的要求,即軟件能夠有效利用處理器所提供的并行處理能力。目前,多線程編 程中關(guān)鍵的共享資源同步技術(shù)仍然在鎖機(jī)制的基礎(chǔ)上實(shí)現(xiàn),如信號(hào)量、互斥量等。然而基于 鎖的同步機(jī)制存在著死鎖、優(yōu)先權(quán)倒置、編程困難的缺點(diǎn),這使得面向眾核的并行程序的編 寫(xiě)難度和調(diào)試復(fù)雜性相對(duì)于串行程序都要高很多。事務(wù)存儲(chǔ)(Transactional Memory, TM)模型借鑒了數(shù)據(jù)庫(kù)中“事務(wù)”的 概念,提供了 一種在 CMP(Chip multiprocessors,片上多處理)/SMP(Symmetrical Multi-Processing,對(duì)稱(chēng)多處理)結(jié)構(gòu)上程序并行執(zhí)行和同步的方法,將程序中的有限機(jī) 器指令序列作為一個(gè)事務(wù),在系統(tǒng)結(jié)構(gòu)層面保證事務(wù)執(zhí)行的原子性,并提供相應(yīng)的操作原 語(yǔ),如提交、放棄,以及配套的回滾操作。它能夠解決鎖機(jī)制帶來(lái)的種種問(wèn)題,極大地提高了 多線程編程的正確性和效率,使得程序員可以集中精力于多核程序的設(shè)計(jì)。由于采用硬件 機(jī)制能夠帶來(lái)速度和效率的優(yōu)勢(shì),目前已有大量的研究工作致力于多核環(huán)境的硬件型事務(wù) 存儲(chǔ)模型(Hardware Transactional Memory, HTM)的研究?,F(xiàn)有的硬件事務(wù)存儲(chǔ)結(jié)構(gòu)是基于多核處理器結(jié)構(gòu),在處理器核內(nèi)增加支持事務(wù)執(zhí) 行的硬件部件,處理器核的其他部分與傳統(tǒng)處理器保持一致。然而這種結(jié)構(gòu)擴(kuò)展到眾核結(jié) 構(gòu)時(shí)將面臨資源浪費(fèi)、緩沖區(qū)利用率低的問(wèn)題和緩沖區(qū)溢出的問(wèn)題,因此,針對(duì)眾核處理器 環(huán)境,設(shè)計(jì)一種有效的事務(wù)存儲(chǔ)結(jié)構(gòu)是有十分重要的。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法,該方法將 事務(wù)緩沖區(qū)同二級(jí)共享高速緩存一樣組織成一定數(shù)量的單元,由處理器芯片上所有處理核 共享使用,為每個(gè)執(zhí)行事務(wù)的線程在事務(wù)緩沖區(qū)中劃分一部分連續(xù)可用空間,并可以根據(jù) 事務(wù)讀寫(xiě)集合的大小在一定范圍內(nèi)動(dòng)態(tài)調(diào)整空間大小,解決了硬件型事務(wù)存儲(chǔ)系統(tǒng)中資源 浪費(fèi)、緩沖區(qū)利用率低的問(wèn)題,解決了事務(wù)緩沖區(qū)不支持線程切換和遷移的問(wèn)題,一定程度 上緩解了事務(wù)緩沖區(qū)溢出問(wèn)題。本發(fā)明的一種基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法,該方法是通過(guò)構(gòu)建系 統(tǒng)結(jié)構(gòu)、定制分區(qū)機(jī)制和事務(wù)執(zhí)行模式三部分實(shí)現(xiàn),具體有下列步驟步驟一構(gòu)建系統(tǒng)結(jié)構(gòu)建模步驟1-1,眾核處理器采用瓦片化結(jié)構(gòu),每個(gè)節(jié)點(diǎn)為瓦片TileITL1, TL2, TL3I中的一種,所有瓦片通過(guò)片上網(wǎng)絡(luò)互連到一起,每種瓦片的數(shù)量可根據(jù)應(yīng)用需要調(diào)整;其中 L2cache瓦片TL2與事務(wù)緩沖區(qū)瓦片TL3供所有處理器核共享使用,處理器核內(nèi)還存在支持 事務(wù)執(zhí)行的其他硬件如事務(wù)狀態(tài)寄存器、檢查點(diǎn)寄存器等;建模步驟1-2,新增事務(wù)緩沖區(qū),其結(jié)構(gòu)與L2CaChe類(lèi)似,數(shù)據(jù)的存儲(chǔ)以行為單位, 但同時(shí)保持事務(wù)數(shù)據(jù)的新舊版本,讀寫(xiě)集合由新增的R/W位表示,事務(wù)緩沖區(qū)采用數(shù)據(jù)表 項(xiàng)進(jìn)行事務(wù)緩存;建模步驟1-3,執(zhí)行事務(wù)的處理器節(jié)點(diǎn)不使用L2CaChe,而由事務(wù)緩沖區(qū)代替 L2cache緩存事務(wù)數(shù)據(jù);建模步驟1-4,Llcache通過(guò)Write-through方法,修改的事務(wù)數(shù)據(jù)直接更新到事 務(wù)緩沖區(qū)中;步驟二 定制分區(qū)機(jī)制分區(qū)步驟2-1,對(duì)事務(wù)緩沖區(qū)的分配以分區(qū)單元(partition unit,PU)為單位,PU 在事務(wù)緩沖區(qū)中對(duì)應(yīng)連續(xù)的多行,其大小為事務(wù)緩沖區(qū)容量/處理器核數(shù),一個(gè)分區(qū)可以 包含一個(gè)或多個(gè)連續(xù)的PU,初始分配時(shí)每個(gè)分區(qū)含一個(gè)PU ;分區(qū)步驟2-2,每個(gè)事務(wù)線程分配一個(gè)分區(qū),分區(qū)的大小根據(jù)事務(wù)讀寫(xiě)集合的增長(zhǎng) 動(dòng)態(tài)調(diào)整,事務(wù)線程首次執(zhí)行事務(wù)時(shí)創(chuàng)建分區(qū),事務(wù)線程終止時(shí)回收分區(qū);分區(qū)步驟2-3,對(duì)分區(qū)的管理需要硬件記錄分區(qū)與事務(wù)線程的關(guān)聯(lián)關(guān)系,如每個(gè)事 務(wù)線程的分區(qū)在事務(wù)緩沖區(qū)中的起始位置和空間大小,以便于事務(wù)提交或回滾時(shí)的訪問(wèn)操 作;分區(qū)步驟2-4,當(dāng)事務(wù)讀寫(xiě)集合過(guò)大導(dǎo)致分區(qū)不夠使用時(shí),如果從該分區(qū)末尾起存 在連續(xù)的PU大小的空間,那么可分配給該事務(wù)線程,否則,事務(wù)采取基于事務(wù)提交鎖的部 分提交進(jìn)行處理;步驟三事務(wù)執(zhí)行模式執(zhí)行步驟3-1,處理器執(zhí)行事務(wù)前訪問(wèn)的數(shù)據(jù)可能會(huì)在事務(wù)代碼中再次訪問(wèn)到,因 此事務(wù)開(kāi)始前先將各級(jí)高速緩存中的數(shù)據(jù)依次寫(xiě)回下一級(jí)存儲(chǔ)器中,即Llcache中數(shù)據(jù)寫(xiě) 回L2CaChe,L2cache中數(shù)據(jù)寫(xiě)回主存,然后置Llcache中各行無(wú)效,此后,處理器的訪存開(kāi) 始使用事務(wù)緩沖區(qū);執(zhí)行步驟3-2,事務(wù)在執(zhí)行過(guò)程中,由Llcache和事務(wù)緩沖區(qū)緩存事務(wù)預(yù)測(cè)執(zhí)行的 數(shù)據(jù),讀缺失或?qū)懭笔У膬?nèi)存塊依次加載到事務(wù)緩沖區(qū)和Llcache中,事務(wù)緩沖區(qū)中的數(shù) 據(jù)保存為old版本,對(duì)Llcache更改過(guò)的行直接更新到事務(wù)緩沖區(qū)中,對(duì)事務(wù)數(shù)據(jù)的所有讀 寫(xiě)操作,在事務(wù)緩沖區(qū)中記錄相應(yīng)的R/W位,事務(wù)修改的數(shù)據(jù)還要在事務(wù)緩沖區(qū)new版本中 寫(xiě)入新值;執(zhí)行步驟3-3,事務(wù)提交時(shí)將事務(wù)緩沖區(qū)中本分區(qū)內(nèi)的新值寫(xiě)入主存;執(zhí)行步驟3-4,事務(wù)因沖突而需要回滾時(shí),清除事務(wù)緩沖區(qū)中的R/W標(biāo)志位,同時(shí) 將各行數(shù)據(jù)從old拷到new中,置Llcache中各行無(wú)效;執(zhí)行步驟3-5,采用事務(wù)沖突檢測(cè)策略來(lái)檢測(cè)事務(wù)執(zhí)行過(guò)程中與其他節(jié)點(diǎn)是否存 在的沖突;所述的事務(wù)沖突檢測(cè)策略(a)第一處理器P為空閑狀態(tài)時(shí),目錄Directory為空閑狀態(tài)Idle ; (b)當(dāng)處理器P寫(xiě)缺失時(shí),向目錄Directory發(fā)出請(qǐng)求寫(xiě)GETX,則目錄Directory響應(yīng)其請(qǐng)求,并將數(shù)據(jù)DATA發(fā)給處理器P ;處理器P收到數(shù)據(jù)DATA后發(fā)送確認(rèn)消息ACK給 目錄Directory,同時(shí)將事務(wù)緩沖區(qū)中W位置位;(c)當(dāng)?shù)诙幚砥鱍請(qǐng)求讀GETS—個(gè)被處理器P修改的數(shù)據(jù)塊時(shí),目錄Directory 轉(zhuǎn)發(fā)請(qǐng)求Fwd_GETS至處理器P,由于存在讀寫(xiě)沖突因此拒絕處理器Q的請(qǐng)求,處理器Q向目 錄Directory發(fā)送失敗消息NACK ; (d)當(dāng)處理器P讀缺失時(shí),向目錄Directory發(fā)出請(qǐng)求讀GETS,則目錄Directory 響應(yīng)其請(qǐng)求,并將數(shù)據(jù)DATA發(fā)給處理器P ;處理器P收到數(shù)據(jù)DATA后發(fā)送確認(rèn)消息ACK給 目錄Directory,同時(shí)將事務(wù)緩沖區(qū)中R位置位;(e)當(dāng)?shù)诙幚砥鱍請(qǐng)求讀GETS—個(gè)被處理器P修改的數(shù)據(jù)塊時(shí),目錄Directory 轉(zhuǎn)發(fā)請(qǐng)求Fwd_GETS至處理器P,由于不存在讀寫(xiě)沖突則發(fā)送消息ACK給目錄Directory ;目 錄Directory向第二處理器Q發(fā)送數(shù)據(jù)DATA,處理器Q收到數(shù)據(jù)后向目錄Directory發(fā)送 消息ACK進(jìn)行確認(rèn)。本發(fā)明基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法的優(yōu)點(diǎn)在于①本發(fā)明基于片上網(wǎng)絡(luò)的眾核處理器結(jié)構(gòu),并利用事務(wù)緩沖區(qū)同二級(jí)共享高速緩 存一樣組織成單元陣列形式由所有核共享,改變了現(xiàn)有的每個(gè)處理器核擁有一個(gè)事務(wù)緩沖 區(qū)的結(jié)構(gòu)。本發(fā)明一方面解決了資源浪費(fèi)、緩沖區(qū)利用率低的問(wèn)題,另一方面分區(qū)結(jié)構(gòu)便于 事務(wù)線程切換和遷移。②本發(fā)明分區(qū)機(jī)制能夠?yàn)槊總€(gè)執(zhí)行事務(wù)的線程在緩沖區(qū)內(nèi)劃分一個(gè)分區(qū),分區(qū)的 大小可在一定范圍內(nèi)動(dòng)態(tài)增長(zhǎng),每個(gè)處理器核擁有的緩沖區(qū)容量不再是固定大小,在一定 程度上緩解了緩沖區(qū)溢出問(wèn)題。
圖1是本發(fā)明事務(wù)存儲(chǔ)方法的流程圖。圖2是處理器芯片上的網(wǎng)絡(luò)陣列結(jié)構(gòu)圖。圖3是本發(fā)明事務(wù)沖突檢測(cè)的過(guò)程圖。
具體實(shí)施例方式本發(fā)明是基于片上網(wǎng)絡(luò)的眾核處理器結(jié)構(gòu)的,并利用事務(wù)緩沖區(qū)同二級(jí)共享高速 緩存(L2CaChe) —樣組織成單元(bank)陣列形式由所有核共享,改變了現(xiàn)有的每個(gè)處理器 核擁有一個(gè)事務(wù)緩沖區(qū)的結(jié)構(gòu)。本發(fā)明一方面解決了資源浪費(fèi)、緩沖區(qū)利用率低的問(wèn)題,另 一方面分區(qū)結(jié)構(gòu)便于事務(wù)線程切換和遷移。參見(jiàn)圖1所示,本發(fā)明是一種基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法,該方 法通過(guò)構(gòu)建系統(tǒng)結(jié)構(gòu)、定制分區(qū)機(jī)制和事務(wù)執(zhí)行模式三部分實(shí)現(xiàn),具體有下列處理步驟步驟一構(gòu)建系統(tǒng)結(jié)構(gòu)建模步驟1-1,眾核處理器采用瓦片化結(jié)構(gòu),每個(gè)節(jié)點(diǎn)為瓦片TileITL1, TL2, TL3I 中的一種,所有瓦片通過(guò)片上網(wǎng)絡(luò)互連到一起,每種瓦片的數(shù)量可根據(jù)應(yīng)用需要調(diào)整;其中 L2cache瓦片TL2與事務(wù)緩沖區(qū)瓦片TL3供所有處理器核共享使用,處理器核內(nèi)還存在支持 事務(wù)執(zhí)行的其他硬件如事務(wù)狀態(tài)寄存器、檢查點(diǎn)寄存器等。所述的瓦片TileITL1, TL2, TL3I中的物理意義為
TL1表示處理器核瓦片,包含處理器核與一級(jí)私有高速緩存(Llcache)及片上路 由;TL2表示二級(jí)共享高速緩存(L2CaChe)瓦片(簡(jiǎn)稱(chēng)為L(zhǎng)2CaChe瓦片),包含二級(jí)共 享高速緩存的一個(gè)單元與片上路由;TL3表示事務(wù)緩沖區(qū)瓦片,包含事務(wù)緩沖區(qū)的一個(gè)單元(bank)與片上路由。參見(jiàn)圖2所示的片上網(wǎng)絡(luò)陣列結(jié)構(gòu)圖,、表示位于陣列結(jié)構(gòu)中第i行第j列的節(jié) 點(diǎn)路由器,且i = l,2,……,m,j = l,2,……,n,m和η分別表示陣列結(jié)構(gòu)的行列數(shù)。每 個(gè)Ru連接在片上資源上,片上資源包括處理器核、一級(jí)私有高速緩存(Llcache)、二級(jí)共享 高速緩存(L2cache)、事務(wù)緩沖區(qū)。建模步驟1-2,新增事務(wù)緩沖區(qū),其結(jié)構(gòu)與L2CaChe類(lèi)似,數(shù)據(jù)的存儲(chǔ)以行為單位, 但同時(shí)保持事務(wù)數(shù)據(jù)的新舊版本,讀寫(xiě)集合由新增的R/W位表示,事務(wù)緩沖區(qū)采用數(shù)據(jù)表 項(xiàng)進(jìn)行事務(wù)緩存,所述的數(shù)據(jù)表項(xiàng)具有如下結(jié)構(gòu)形式;
權(quán)利要求
1. 一種基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法,其特征在于該方法是通過(guò)構(gòu)建系 統(tǒng)結(jié)構(gòu)、定制分區(qū)機(jī)制和事務(wù)執(zhí)行模式三部分實(shí)現(xiàn),具體有下列步驟 步驟一構(gòu)建系統(tǒng)結(jié)構(gòu)建模步驟1-1,眾核處理器采用瓦片化結(jié)構(gòu),每個(gè)節(jié)點(diǎn)為瓦片TileITL1, TL2, TL3I中 的一種,所有瓦片通過(guò)片上網(wǎng)絡(luò)互連到一起,每種瓦片的數(shù)量可根據(jù)應(yīng)用需要調(diào)整;其中 L2cache瓦片TL2與事務(wù)緩沖區(qū)瓦片TL3供所有處理器核共享使用,處理器核內(nèi)還存在支持 事務(wù)執(zhí)行的其他硬件如事務(wù)狀態(tài)寄存器、檢查點(diǎn)寄存器等;建模步驟1-2,新增事務(wù)緩沖區(qū),其結(jié)構(gòu)與L2cache類(lèi)似,數(shù)據(jù)的存儲(chǔ)以行為單位,但同 時(shí)保持事務(wù)數(shù)據(jù)的新舊版本,讀寫(xiě)集合由新增的R/W位表示,事務(wù)緩沖區(qū)采用數(shù)據(jù)表項(xiàng)進(jìn) 行事務(wù)緩存;建模步驟1-3,執(zhí)行事務(wù)的處理器節(jié)點(diǎn)不使用L2cache,而由事務(wù)緩沖區(qū)代替L2cache 緩存事務(wù)數(shù)據(jù);建模步驟1-4,Llcache通過(guò)Write-through方法,修改的事務(wù)數(shù)據(jù)直接更新到事務(wù)緩 沖區(qū)中;步驟二 定制分區(qū)機(jī)制分區(qū)步驟2-1,對(duì)事務(wù)緩沖區(qū)的分配以分區(qū)單元(partition unit,PU)為單位,PU在事 務(wù)緩沖區(qū)中對(duì)應(yīng)連續(xù)的多行,其大小為事務(wù)緩沖區(qū)容量/處理器核數(shù),一個(gè)分區(qū)可以包含 一個(gè)或多個(gè)連續(xù)的PU,初始分配時(shí)每個(gè)分區(qū)含一個(gè)PU ;分區(qū)步驟2-2,每個(gè)事務(wù)線程分配一個(gè)分區(qū),分區(qū)的大小根據(jù)事務(wù)讀寫(xiě)集合的增長(zhǎng)動(dòng)態(tài) 調(diào)整,事務(wù)線程首次執(zhí)行事務(wù)時(shí)創(chuàng)建分區(qū),事務(wù)線程終止時(shí)回收分區(qū);分區(qū)步驟2-3,對(duì)分區(qū)的管理需要硬件記錄分區(qū)與事務(wù)線程的關(guān)聯(lián)關(guān)系,如每個(gè)事務(wù)線 程的分區(qū)在事務(wù)緩沖區(qū)中的起始位置和空間大小,以便于事務(wù)提交或回滾時(shí)的訪問(wèn)操作;分區(qū)步驟2-4,當(dāng)事務(wù)讀寫(xiě)集合過(guò)大導(dǎo)致分區(qū)不夠使用時(shí),如果從該分區(qū)末尾起存在連 續(xù)的PU大小的空間,那么可分配給該事務(wù)線程,否則,事務(wù)采取基于事務(wù)提交鎖的部分提 交進(jìn)行處理;步驟三事務(wù)執(zhí)行模式執(zhí)行步驟3-1,處理器執(zhí)行事務(wù)前訪問(wèn)的數(shù)據(jù)可能會(huì)在事務(wù)代碼中再次訪問(wèn)到,因此 事務(wù)開(kāi)始前先將各級(jí)高速緩存中的數(shù)據(jù)依次寫(xiě)回下一級(jí)存儲(chǔ)器中,即Llcache中數(shù)據(jù)寫(xiě)回 L2cache, L2cache中數(shù)據(jù)寫(xiě)回主存,然后置Llcache中各行無(wú)效,此后,處理器的訪存開(kāi)始 使用事務(wù)緩沖區(qū);執(zhí)行步驟3-2,事務(wù)在執(zhí)行過(guò)程中,由Llcache和事務(wù)緩沖區(qū)緩存事務(wù)預(yù)測(cè)執(zhí)行的數(shù) 據(jù),讀缺失或?qū)懭笔У膬?nèi)存塊依次加載到事務(wù)緩沖區(qū)和Llcache中,事務(wù)緩沖區(qū)中的數(shù)據(jù) 保存為old版本,對(duì)Llcache更改過(guò)的行直接更新到事務(wù)緩沖區(qū)中,對(duì)事務(wù)數(shù)據(jù)的所有讀寫(xiě) 操作,在事務(wù)緩沖區(qū)中記錄相應(yīng)的R/W位,事務(wù)修改的數(shù)據(jù)還要在事務(wù)緩沖區(qū)new版本中寫(xiě) 入新值;執(zhí)行步驟3-3,事務(wù)提交時(shí)將事務(wù)緩沖區(qū)中本分區(qū)內(nèi)的新值寫(xiě)入主存; 執(zhí)行步驟3-4,事務(wù)因沖突而需要回滾時(shí),清除事務(wù)緩沖區(qū)中的R/W標(biāo)志位,同時(shí)將各 行數(shù)據(jù)從old拷到new中,置Llcache中各行無(wú)效;執(zhí)行步驟3-5,采用事務(wù)沖突檢測(cè)策略來(lái)檢測(cè)事務(wù)執(zhí)行過(guò)程中與其他節(jié)點(diǎn)是否存在的沖突;所述的事務(wù)沖突檢測(cè)策略(a)第一處理器P為空閑狀態(tài)時(shí),目錄Directory為空閑狀態(tài)Idle;(b)當(dāng)處理器P寫(xiě)缺失時(shí),向目錄Directory發(fā)出請(qǐng)求寫(xiě)GETX,則目錄Directory響應(yīng) 其請(qǐng)求,并將數(shù)據(jù)DATA發(fā)給處理器P ;處理器P收到數(shù)據(jù)DATA后發(fā)送確認(rèn)消息ACK給目錄 Directory,同時(shí)將事務(wù)緩沖區(qū)中W位置位;(c)當(dāng)?shù)诙幚砥鱍請(qǐng)求讀GETS—個(gè)被處理器P修改的數(shù)據(jù)塊時(shí),目錄Directory轉(zhuǎn) 發(fā)請(qǐng)求Fwd_GETS至處理器P,由于存在讀寫(xiě)沖突因此拒絕處理器Q的請(qǐng)求,處理器Q向目錄 Directory發(fā)送失敗消息NACK ;(d)當(dāng)處理器P讀缺失時(shí),向目錄Directory發(fā)出 請(qǐng)求讀GETS,則目錄Directory響應(yīng) 其請(qǐng)求,并將數(shù)據(jù)DATA發(fā)給處理器P ;處理器P收到數(shù)據(jù)DATA后發(fā)送確認(rèn)消息ACK給目錄 Directory,同時(shí)將事務(wù)緩沖區(qū)中R位置位;(e)當(dāng)?shù)诙幚砥鱍請(qǐng)求讀GETS—個(gè)被處理器P修改的數(shù)據(jù)塊時(shí),目錄Directory轉(zhuǎn) 發(fā)請(qǐng)求Fwd_GETS至處理器P,由于不存在讀寫(xiě)沖突則發(fā)送消息ACK給目錄Directory ;目錄 Directory向第二處理器Q發(fā)送數(shù)據(jù)DATA,處理器Q收到數(shù)據(jù)后向目錄Directory發(fā)送消 息ACK進(jìn)行確認(rèn)。
全文摘要
本發(fā)明公開(kāi)了一種基于眾核處理器和分區(qū)結(jié)構(gòu)的事務(wù)存儲(chǔ)方法,該方法中眾核處理器采用瓦片化結(jié)構(gòu),每個(gè)節(jié)點(diǎn)為瓦片Tile{TL1,TL2,TL3}中的一種,所有瓦片通過(guò)片上網(wǎng)絡(luò)互連到一起,每種瓦片的數(shù)量可根據(jù)應(yīng)用需要調(diào)整。線程執(zhí)行事務(wù)時(shí)不再使用L2cache,片上路由將處理器事務(wù)讀寫(xiě)請(qǐng)求路由至事務(wù)緩沖區(qū)存儲(chǔ),由分區(qū)策略為該事務(wù)線程劃分一部分可用區(qū)域,對(duì)事務(wù)的讀寫(xiě)操作記錄在事務(wù)緩沖區(qū)中,并根據(jù)事務(wù)讀寫(xiě)集合的增長(zhǎng)動(dòng)態(tài)擴(kuò)充分區(qū)大小。本發(fā)明的事務(wù)存儲(chǔ)方法解決了硬件型事務(wù)存儲(chǔ)系統(tǒng)中資源浪費(fèi)、緩沖區(qū)利用率低的問(wèn)題,解決了事務(wù)緩沖區(qū)不支持線程切換和遷移的問(wèn)題,一定程度上緩解了事務(wù)緩沖區(qū)溢出問(wèn)題。
文檔編號(hào)G06F9/38GK102110019SQ20101061753
公開(kāi)日2011年6月29日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者劉軼, 王永會(huì), 王琳, 錢(qián)德沛 申請(qǐng)人:北京航空航天大學(xué)