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