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

一種多處理器緩存一致性處理方法及裝置的制造方法

文檔序號(hào):9921918閱讀:477來(lái)源:國(guó)知局
一種多處理器緩存一致性處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種多處理器緩存一致性處理方法及裝置。
【背景技術(shù)】
[0002] 半導(dǎo)體工藝的進(jìn)步使得單位面積的集成電路上晶體管的數(shù)量在2013年以后仍 能以三年一番的速度進(jìn)行增長(zhǎng)。為充分利用工藝進(jìn)步而增加的晶體管,處理器生產(chǎn)商均 從單核處理器設(shè)計(jì)轉(zhuǎn)向多核/眾核處理器設(shè)計(jì),從而通過(guò)挖掘線程級(jí)并行(Thread Level Parallelism,TLP)來(lái)提高系統(tǒng)的整體性能。與此同時(shí),制造商還將多個(gè)處理器芯片集成 在一個(gè)系統(tǒng)上以取得更高的性能,這種設(shè)計(jì)的系統(tǒng)被稱(chēng)為多處理器系統(tǒng)。例如:目前先進(jìn) 的處理器芯片可以含有12個(gè)處理器,而且4塊這樣的處理器芯片可以集成在一起,最后形 成一個(gè)48核的服務(wù)器級(jí)運(yùn)算系統(tǒng)。多核、眾核以及多處理器結(jié)構(gòu)統(tǒng)稱(chēng)為多處理體系結(jié)構(gòu) (multi-processing architecture)〇
[0003] 雖然多處理體系結(jié)構(gòu)使得計(jì)算機(jī)系統(tǒng)的性能得到了進(jìn)一步的提升,該設(shè)計(jì)也面 臨著許多單核處理器設(shè)計(jì)中不曾遇到的問(wèn)題,其中之一就是緩存一致性的設(shè)計(jì),當(dāng)今的計(jì) 算機(jī)系統(tǒng)經(jīng)常由多個(gè)處理器組成,并且一個(gè)處理器中也存在多個(gè)處理器。讓處理器協(xié)同 工作,其正確性成為了首要的問(wèn)題。該問(wèn)題可細(xì)分為兩個(gè)子問(wèn)題,即:存儲(chǔ)一致性(memory consistency)和緩存一致性(cache coherence) 〇
[0004] 存儲(chǔ)一致性又稱(chēng)為存儲(chǔ)一致性模型,它定義了在共享存儲(chǔ)中被允許地讀寫(xiě)操作的 行為和順序。在所有存儲(chǔ)一致性模型中,最嚴(yán)格也是最直接的一致性模型被稱(chēng)為順序一致 性模型(Sequential Consistency,SC)。而在目前主通用的多核/多處理器中(如x86, x8664和SPARC),采用的順序一致性的一種近似模型全存儲(chǔ)序(Total Store 0rder,TS0)。
[0005] 順序一致性模型和TS0模型的引入,極大地方便了程序員的編程操作。目前通用 的處理器大多實(shí)現(xiàn)了 TS0模型。但是,這兩種模型對(duì)高速緩存的設(shè)計(jì)提出了一些新的要求, 即要求滿(mǎn)足緩存一致性(cache coherence)。緩存一致性要求一個(gè)計(jì)算機(jī)系統(tǒng)內(nèi)的多個(gè)緩 存滿(mǎn)足"單寫(xiě)者多讀者"的要求。即在任何時(shí)間,對(duì)于任何數(shù)據(jù),若要對(duì)其進(jìn)行寫(xiě)操作,只有 進(jìn)行寫(xiě)操作的處理器可以緩存該數(shù)據(jù);但是,若要對(duì)其進(jìn)行讀操作,多個(gè)處理器可以同時(shí)緩 存該數(shù)據(jù)。在通用計(jì)算機(jī)系統(tǒng)中,正確高效的緩存一致性設(shè)計(jì)是一個(gè)非常重要的課題。
[0006] 隨著系統(tǒng)內(nèi)集成的處理器數(shù)的增加,如何更高效地維護(hù)各個(gè)處理器之間的緩存一 致性成為了學(xué)術(shù)界和工業(yè)界共同關(guān)心的一個(gè)課題。維護(hù)緩存一致性有兩種基本的協(xié)議方 式一偵聽(tīng)協(xié)議(snoop)和目錄協(xié)議(directory)。由于目錄協(xié)議在擴(kuò)展性方面優(yōu)于偵聽(tīng)協(xié) 議,其經(jīng)常被使用在大規(guī)模/超大規(guī)模系統(tǒng)中。
[0007] 圖1給出了一個(gè)采用目錄協(xié)議系統(tǒng)的邏輯結(jié)構(gòu),該系統(tǒng)有一個(gè)目錄硬件,通過(guò)網(wǎng) 絡(luò)同所有的處理器緩存相連接,所有對(duì)一致性狀態(tài)的更新操作都必須經(jīng)過(guò)目錄硬件。當(dāng)處 理器A需要對(duì)緩存塊Μ的進(jìn)行讀操作,首先處理器A會(huì)發(fā)送一個(gè)讀請(qǐng)求給目錄硬件;目錄硬 件查找發(fā)現(xiàn)處理器B的緩存內(nèi)有這個(gè)數(shù)據(jù),因此會(huì)發(fā)消息給處理器B的緩存;處理器B的緩 存接收到消息后,會(huì)把數(shù)據(jù)發(fā)送給處理器A的緩存。
[0008] 現(xiàn)有技術(shù)中提供一種稀疏目錄(sparsedirectory)方案解決緩存一致非一致性 內(nèi)存訪問(wèn)(Cache Coherent Non-Uniform Memory Access,ccNUMA)系統(tǒng)中緩存一致性問(wèn) 題。如圖2所示,稀疏目錄在處理器系統(tǒng)的片內(nèi)以組相聯(lián)的形式存儲(chǔ)目錄信息,由于其組織 形式很接近高速緩存的結(jié)構(gòu),所以又稱(chēng)被為目錄緩存(directory cache)。
[0009] 同樣是處理器A需要對(duì)緩存塊Μ進(jìn)行讀操作,首先處理器A會(huì)發(fā)送一個(gè)讀請(qǐng)求給 稀疏目錄A ;目錄查找發(fā)現(xiàn)處理器B的緩存內(nèi)有這個(gè)數(shù)據(jù),因此會(huì)發(fā)消息給處理器B的緩 存;處理器B的緩存接收到消息后,會(huì)把數(shù)據(jù)發(fā)送給處理器A的緩存。
[0010] 稀疏目錄可以采用很低的相聯(lián)度,因此其訪問(wèn)能耗較低。但是由于稀疏目錄是組 相聯(lián)設(shè)計(jì),因此其目錄組(directory sets)之間的訪問(wèn)存在不平衡性,從而造成某些訪 問(wèn)壓力大的組形成目錄沖突(directory conflicts)。目錄沖突需要將一些目錄塊替換 (replace)出稀疏目錄,為維護(hù)系統(tǒng)的一致性,需要將被替換目錄塊對(duì)應(yīng)的緩存數(shù)據(jù)無(wú)效掉 (invalidate)。此外,系統(tǒng)還需要專(zhuān)門(mén)拿出一定的存儲(chǔ)空間保存Cache -致性信息,該方法 中的Directory Cache占用了大量的片上存儲(chǔ)面積。

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

[0011] 本發(fā)明提供一種多處理器緩存一致性處理方法及裝置,本發(fā)明所提供的方法和裝 置解決現(xiàn)有多處理器系統(tǒng)中維護(hù)系統(tǒng)的一致性的方法浪費(fèi)大量的片上存儲(chǔ)面積的問(wèn)題。
[0012] 一方面,本發(fā)明提供一種多處理器緩存一致性處理方法,該方法應(yīng)用于多處理器 系統(tǒng)中,該多處理器系統(tǒng)包括多個(gè)處理器、最后一級(jí)緩存LLC、內(nèi)存和目錄緩存,其中,最后 一級(jí)緩存分別和多個(gè)處理器、內(nèi)存和目錄緩存相連,該方法包括:
[0013] 最后一級(jí)緩存接收到所述多處理器中的第一處理器對(duì)一緩存塊進(jìn)行讀操作的第 一請(qǐng)求后,從所述內(nèi)存中讀取所述緩存塊對(duì)應(yīng)的第一頁(yè)描述符;
[0014] 根據(jù)所述第一頁(yè)描述符確定所述第一處理器為第一個(gè)訪問(wèn)所述緩存塊的處理器, 則添加頁(yè)標(biāo)簽到所述第一頁(yè)描述符中得到第二頁(yè)描述符;所述頁(yè)標(biāo)簽標(biāo)示第一處理器為第 一次訪問(wèn)所述緩存塊的處理器。
[0015] 結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,該方法進(jìn)一步包括:
[0016] 當(dāng)接收到第二處理器對(duì)所述緩存塊進(jìn)行讀操作的第二請(qǐng)求,根據(jù)所述第二請(qǐng)求獲 取所述第二頁(yè)描述符;
[0017] 對(duì)所述第二頁(yè)描述符中的頁(yè)標(biāo)簽進(jìn)行更新,得到第三頁(yè)描述符;更新后的頁(yè)標(biāo)簽 標(biāo)示第一處理器為第一次訪問(wèn)所述緩存塊的處理器,并且該緩存塊被多個(gè)處理器操作;
[0018] 發(fā)送目錄分配消息到目錄緩存,使得目錄緩存分配目錄項(xiàng),所述目錄項(xiàng)用于記錄 訪問(wèn)所述緩存塊的處理器。
[0019] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述得到 第三頁(yè)描述符之后,進(jìn)一步包括:
[0020] 存儲(chǔ)所述第三頁(yè)描述符,并將所述第三頁(yè)描述符發(fā)送到所述第一處理器和所述第 二處理器存儲(chǔ)。
[0021] 結(jié)合第一方面,或者第一方面的第一至二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí) 現(xiàn)方式中,所述頁(yè)標(biāo)簽包括:訪問(wèn)記錄FA用于標(biāo)示是否有處理器訪問(wèn)過(guò)緩存塊;處理器標(biāo) 識(shí)用于標(biāo)示第一次訪問(wèn)緩存塊的處理器的唯一標(biāo)識(shí);一致性范圍SH用于記錄緩存塊是在 一個(gè)還是多個(gè)處理器之間維護(hù)一致性。
[0022] 結(jié)合第一方面,或者第一方面的第一至三種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí) 現(xiàn)方式中,對(duì)所述緩存塊對(duì)應(yīng)的頁(yè)描述符進(jìn)行更新后,該方法進(jìn)一步將更新后的頁(yè)描述符 寫(xiě)回到所述內(nèi)存中。
[0023] 第二方面,本發(fā)明還提供一種多處理器緩存一致性處理裝置,該裝置應(yīng)用于多處 理器系統(tǒng)的最后一級(jí)緩存中,該多處理器系統(tǒng)包括多個(gè)處理器、最后一級(jí)緩存、內(nèi)存和目錄 緩存,其中,最后一級(jí)緩存分別和多個(gè)處理器、內(nèi)存和目錄緩存相連,該裝置包括:
[0024] 讀取單元,用于接收到所述多處理器中的第一處理器對(duì)一緩存塊進(jìn)行讀操作的第 一請(qǐng)求后,從所述內(nèi)存中讀取所述緩存塊對(duì)應(yīng)的第一頁(yè)描述符;
[0025] 更新單元,用于根據(jù)所述第一頁(yè)描述符確定所述第一處理器為第一個(gè)訪問(wèn)所述緩 存塊的處理器,則添加頁(yè)標(biāo)簽到所述第一頁(yè)描述符中得到第二頁(yè)描述符;所述頁(yè)標(biāo)簽標(biāo)示 第一處理器為第一次訪問(wèn)所述緩存塊的處理器。
[0026] 結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述更新單元還用于當(dāng)接收到第二 處理器對(duì)所述緩存塊進(jìn)行讀操作的第二請(qǐng)求,根據(jù)所述第二請(qǐng)求獲取所述第二頁(yè)描述符; 對(duì)所述第二頁(yè)描述符中的頁(yè)標(biāo)簽進(jìn)行更新,得到第三頁(yè)描述符;更新后的頁(yè)標(biāo)簽標(biāo)示第一 處理器為第一次訪問(wèn)所述緩存塊的處理器,并且該緩存塊被多個(gè)處理器操作;
[0027] 則該裝置還包括:
[0028] 目錄緩存請(qǐng)求單元,用于發(fā)送目錄分配消息到目錄緩存,使得目錄緩存分配目錄 項(xiàng),所述目錄項(xiàng)用于記錄訪問(wèn)所述緩存塊的處理器。
[0029] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,該裝置還 包括:
[0030] 同步單元,用于在得到第三頁(yè)描述符之后,存儲(chǔ)所述第三頁(yè)描述符,并將所述第三 頁(yè)描述符發(fā)送到所述第一處理器和所述第二處理器存儲(chǔ)。
[0031] 結(jié)合第一方面第一種可能的實(shí)現(xiàn)方式或者第二種可能的實(shí)現(xiàn)方式,在第三種可能 的實(shí)現(xiàn)方式中,所述更新單元用于對(duì)所述頁(yè)標(biāo)簽中包含的訪問(wèn)記錄FA、處理器標(biāo)識(shí)和一致 性范圍SH進(jìn)行更新,用于標(biāo)示是否有處理器訪問(wèn)過(guò)緩存塊;處理器標(biāo)識(shí)用于標(biāo)示第一次訪 問(wèn)緩存塊的處理器的唯一標(biāo)識(shí);一致性范圍SH用于記錄緩存塊是在一個(gè)還是
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1