調(diào)節(jié)存儲(chǔ)器激活率的制作方法
【專利說明】
【背景技術(shù)】
[0001]許多現(xiàn)實(shí)世界分析學(xué)應(yīng)用處理大量的數(shù)據(jù)集。例如,出于允許在線業(yè)務(wù)達(dá)到在線市場(chǎng)中更好位置本身的目的,可以將機(jī)器學(xué)習(xí)應(yīng)用于大數(shù)據(jù)集。以該方式,在線業(yè)務(wù)可以由于通過其在線目錄的銷售和/或通過由用戶點(diǎn)擊出現(xiàn)在商業(yè)的web站點(diǎn)上的廣告產(chǎn)生的收入的銷售而接收收入。出于理解在線用戶的期望和傾向的目的,可以發(fā)掘(mine)描述該活動(dòng)的大數(shù)據(jù)集。
【附圖說明】
[0002]圖1是根據(jù)示例實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)的示意圖。
[0003]圖2是根據(jù)示例實(shí)現(xiàn)的圖1的計(jì)算機(jī)系統(tǒng)的激活率調(diào)節(jié)系統(tǒng)的示意圖。
[0004]圖3是描繪根據(jù)示例實(shí)現(xiàn)的用以調(diào)節(jié)存儲(chǔ)器的激活率的技術(shù)的流程圖。
[0005]圖4是圖示根據(jù)示例實(shí)現(xiàn)的在圖1的計(jì)算機(jī)系統(tǒng)的控制器和檢測(cè)陣列之間的交互的示意圖。
【具體實(shí)施方式】
[0006]處理大量數(shù)據(jù)集由于與該處理相關(guān)的對(duì)相同或者附近存儲(chǔ)器位置的大量潛在的重復(fù)的訪問而在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器上可能是相當(dāng)繁重的。如果不針對(duì)本文公開的系統(tǒng)和技術(shù),則重復(fù)的訪問可以處于大到足夠潛在地影響存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)的完整性的率。
[0007]更具體地,電荷被選擇性地存儲(chǔ)在動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(DRAM)設(shè)備的基于電容器的存儲(chǔ)器單元中以表示相應(yīng)的存儲(chǔ)數(shù)據(jù)。因?yàn)樾孤╇娏魇勾鎯?chǔ)的電荷降級(jí)(degrade),所以DRAM設(shè)備的存儲(chǔ)器單元被周期性刷新,這涉及讀存儲(chǔ)在DRAM的設(shè)備存儲(chǔ)器單元中的數(shù)據(jù)并且將數(shù)據(jù)重寫回到存儲(chǔ)器單元。然而,刷新DRAM設(shè)備的率可能不足以維持用于某個(gè)活動(dòng)的電荷水平。以該方式,出于訪問DRAM設(shè)備的存儲(chǔ)器單元的行的目的,可以發(fā)出被稱為“激活命令”的命令以打開用于訪問的行。即使周期性地刷新這些字行,以足夠高的率的給定行的重復(fù)激活(例如,每刷新周期大約數(shù)千次的激活)可能使存儲(chǔ)在相鄰字行中的數(shù)據(jù)降級(jí)(歸因于DRAM特征的相對(duì)緊密的間距的DRAM中的自然發(fā)生)。換言之,當(dāng)激活率超過某閾值時(shí),周期性的刷新間隔可能不足以維持存儲(chǔ)的數(shù)據(jù)。
[0008]出于控制可能否則由于在給定的刷新周期期間的給定行的重復(fù)激活而發(fā)生的降級(jí)的目的,本文公開了針對(duì)頻繁訪問的DRAM行使用高速緩存條目來存儲(chǔ)數(shù)據(jù)內(nèi)容的系統(tǒng)和技術(shù)。
[0009]更具體地,本文公開了系統(tǒng)和技術(shù),用于監(jiān)視針對(duì)對(duì)應(yīng)于被監(jiān)視的系統(tǒng)地址池的存儲(chǔ)器位置的激活率。該地址池繼而可以包含比被高速緩存作為目標(biāo)的地址的數(shù)量顯著更大數(shù)量的地址?;卺槍?duì)池的地址的監(jiān)視的激活率來更新被高速緩存作為目標(biāo)的地址。例如,如果池中被監(jiān)視的地址中的一個(gè)具有超過預(yù)定的刷新率閾值的相關(guān)聯(lián)的激活率,則可以更新高速緩存以隨后處理對(duì)該存儲(chǔ)器位置的訪問,使得此后不超過存儲(chǔ)器位置的刷新率閾值。同樣地,現(xiàn)在可以較不頻繁地訪問被頻繁訪問并且當(dāng)前被高速緩存的存儲(chǔ)器位置。針對(duì)該情況,可以更新高速緩存以逐出或者移除對(duì)應(yīng)于較不頻繁地訪問的存儲(chǔ)器位置的條目。
[0010]作為更具體的示例,圖1描繪了示例計(jì)算機(jī)系統(tǒng)100。針對(duì)該示例,計(jì)算機(jī)系統(tǒng)100包括處理器包120 (在圖1中兩個(gè)處理器包120-1和120-2被描繪作為示例)。一般地,處理器包120可以是包括一個(gè)或多個(gè)處理器核130的半導(dǎo)體包(例如,球(ball)和網(wǎng)格包)。除(一個(gè)或多個(gè))處理器核130之外,處理器包120還可以包括存儲(chǔ)器控制器160,所述存儲(chǔ)器控制器160 —般地控制存儲(chǔ)和取回在共同形成存儲(chǔ)器180的存儲(chǔ)器模塊182(作為示例,雙列直插存儲(chǔ)器模塊(DIMM))中的數(shù)據(jù)。如在圖1中描繪的那樣,在示例實(shí)現(xiàn)中,每個(gè)處理器包120可以具有相關(guān)聯(lián)的存儲(chǔ)器180,所述存儲(chǔ)器180可以充當(dāng)例如用于計(jì)算機(jī)系統(tǒng)100的本地和共享的存儲(chǔ)器兩者。設(shè)想在所附權(quán)利要求書的范圍內(nèi)的其他實(shí)現(xiàn)。
[0011]根據(jù)示例實(shí)現(xiàn),出于限制可以以其激活存儲(chǔ)器180的任何給定位置的率的目的,處理器包120包括控制器164。應(yīng)注意控制器164可以是存儲(chǔ)器控制器160的部分(如在圖1中作為示例描繪的那樣)或者可以與存儲(chǔ)器控制器160分離。此外,控制器164可以被實(shí)現(xiàn)為CPU包的部分(S卩,通過由CPU執(zhí)行機(jī)器可執(zhí)行指令實(shí)現(xiàn)的);可以使用在CPU包外部的電路(例如,一個(gè)或多個(gè)集成電路)被實(shí)現(xiàn);或者取決于特定實(shí)現(xiàn)可以是上文的組合。
[0012]不論其特定形式,出于檢測(cè)何時(shí)激活對(duì)應(yīng)于在給定地址池內(nèi)的地址的存儲(chǔ)器位置的目的,控制器164監(jiān)視與存儲(chǔ)器180的事務(wù)。取決于特定實(shí)現(xiàn),位置可以包括存儲(chǔ)器180的連續(xù)和/或非連續(xù)的位置。
[0013]根據(jù)示例實(shí)現(xiàn),出于確定何時(shí)給定地址在地址的池內(nèi)的目的,控制器164使用檢測(cè)陣列140。作為示例,檢測(cè)陣列140—般地包含存儲(chǔ)器180的最頻繁地激活的地址(例如,與高速緩存行相關(guān)聯(lián)的最頻繁地激活的地址)。根據(jù)示例實(shí)現(xiàn),控制器164控制哪些地址屬于池。以該方式,根據(jù)示例實(shí)現(xiàn),控制器164基于觀察的針對(duì)地址的激活率選擇性地向固定數(shù)池(作為示例)逐出和增加地址。
[0014]當(dāng)?shù)刂返某氐慕o定地址超過預(yù)定義閾值(例如,與在可能發(fā)生存儲(chǔ)器降級(jí)之前每刷新周期的確定的激活的最大數(shù)量一致的閾值)時(shí),出于減少訪問相關(guān)聯(lián)的存儲(chǔ)器位置的率的目的,控制器164采取修正動(dòng)作。如本文進(jìn)一步公開的那樣,以該方式,控制器164響應(yīng)于檢測(cè)針對(duì)池的相關(guān)聯(lián)的地址的激活率已經(jīng)被超過來更新高速緩存150以在此后跟蹤地址,即控制器164更新相應(yīng)的高速緩存標(biāo)記(tag)地址以將該地址作為目標(biāo),使得與該地址相關(guān)聯(lián)的清潔數(shù)據(jù)被存儲(chǔ)在高速緩存150的行中。通過配置高速緩存150來高速緩存頻繁訪問的存儲(chǔ)器地址,顯著減少了相應(yīng)存儲(chǔ)器位置的激活率,因?yàn)閺母咚倬彺?50供應(yīng)大多數(shù)訪問。
[0015]因此,參考圖2,根據(jù)示例實(shí)現(xiàn),激活率調(diào)節(jié)系統(tǒng)200監(jiān)視不被控制器204高速緩存的請(qǐng)求220,所述請(qǐng)求220可以是例如在存儲(chǔ)器總線操作中傳送的請(qǐng)求并且其可以涉及激活命令的傳送??刂破?04將與請(qǐng)求220相關(guān)聯(lián)的存儲(chǔ)器地址與監(jiān)視的地址212的池210相比較,所述請(qǐng)求220與激活命令相關(guān)聯(lián)。以該方式,針對(duì)監(jiān)視的地址212,控制器204維持相應(yīng)的激活率214的日志。此外,控制器204維持哪些地址212屬于池210,使得池210 —般包含最頻繁激活的地址212。一般地,存儲(chǔ)器250因此包括具有相應(yīng)地址264的存儲(chǔ)器位置260,其中最頻繁激活的地址264對(duì)應(yīng)于池210的跟蹤的地址212。
[0016]當(dāng)給定激活率214超過預(yù)定義閾值時(shí),控制器204更新高速緩存270以逐出高速緩存270的高速緩存條目276中的一個(gè)并且以對(duì)應(yīng)于具有已經(jīng)被超過的激活率214的地址212的高速緩存條目276代替被逐出的高速緩存條目276。出于該目的,高速緩存270可以更新相應(yīng)的標(biāo)記地址條目274,使得高速緩存270存儲(chǔ)針對(duì)新地址212的數(shù)據(jù)。
[0017]因此,參考圖3,根據(jù)示例實(shí)現(xiàn)的技術(shù)300包括監(jiān)視(框302)與存儲(chǔ)器地址的池相關(guān)聯(lián)的存儲(chǔ)器位置的激活率。技術(shù)300包括調(diào)節(jié)(框304)激活率,包括將高速緩存到高速緩存訪問選擇性地配置到被太頻繁激活的存儲(chǔ)器地址。
[0018]—般地,通過對(duì)被最頻繁激活的地址高速緩存來降低激活率。例如,根據(jù)示例實(shí)現(xiàn),如果最大激活率是每刷新間隔一百萬次激活并且問題發(fā)生在每刷新間隔二十萬次激活,則高速緩存270包含針對(duì)至少五個(gè)地址的高速緩存條目,即1M/200K = 5個(gè)地址。在這樣的情況下,在系統(tǒng)上運(yùn)行的應(yīng)用可以迅速地訪問五個(gè)地址并且不命中(hit)存儲(chǔ)器250。如果應(yīng)用假設(shè)迅速訪問六個(gè)地址,則存儲(chǔ)器250將得到最頻繁激活的每六個(gè)中的一個(gè),并且這將處于低到足以不引起問題的率。
[0019]參考圖4,作為更具體的示例,根據(jù)某些實(shí)現(xiàn),檢測(cè)陣列140可以包括與被監(jiān)視的地址的池相關(guān)聯(lián)的N個(gè)條目402 (在圖4中被描繪為示例的N個(gè)條目402-1、402-2……402-N)。根據(jù)示例實(shí)現(xiàn),檢測(cè)陣列可以包括對(duì)應(yīng)于監(jiān)視的地址的十六個(gè)條目402。
[002