国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      持久存儲器中數(shù)據(jù)的觀察的制作方法

      文檔序號:9620868閱讀:725來源:國知局
      持久存儲器中數(shù)據(jù)的觀察的制作方法
      【技術領域】
      [0001] 本發(fā)明涉及計算系統(tǒng),并且更具體而言,涉及可靠地使用數(shù)據(jù)存儲介質。
      【背景技術】
      [0002] 各種產(chǎn)品既使用通用處理器又使用特定于應用的處理器。這些產(chǎn)品的例子包括臺 式計算機、服務器、蜂窩電話或智能電話、平板計算機、個人數(shù)字助理(PDA)設備,可以包括 用于醫(yī)療應用、汽車應用、家庭影院應用的嵌入式處理器的裝備和設備,等等。通用處理器 在處理軟件應用中所包括的算法和方法期間訪問用于數(shù)據(jù)和指令的主存儲器。類似地,特 定于應用的處理器訪問主存儲器。特定于應用的處理器可以包括單指令多數(shù)據(jù)(snffi)處 理器、專用集成電路(ASIC)、數(shù)字信號處理芯片(DSP),等等。
      [0003] 主存儲器可以被一個或多個處理器訪問。數(shù)據(jù)可以以持久的方式被存儲。當電力 被除去時,持久數(shù)據(jù)仍然被存儲。當電力恢復后,持久數(shù)據(jù)可以被一個或多個處理器訪問并 再次使用。但是,以非持久方式存儲的數(shù)據(jù)在電力被除去時丟失并且在電力恢復時不可用。
      [0004] 以持久方式存儲的數(shù)據(jù)存儲在非易失性數(shù)據(jù)存儲介質上,諸如硬盤驅動器(HDD)、 固態(tài)驅動器(SSD)及閃存存儲器。這些類型的存儲介質利用大的、速度慢的數(shù)據(jù)傳輸,這增 加了訪問時間并降低了性能。因此,存儲器層次結構被用來在多級易失性存儲器中臨時緩 沖數(shù)據(jù),其中易失性存儲器利用比非易失性存儲器相對更小和更快的數(shù)據(jù)傳輸。易失性存 儲器的類型包括一級或多級高速緩存和動態(tài)隨機存取存儲器(DRAM)。
      [0005] 被用作持久存儲器的其它類型的非易失性數(shù)據(jù)存儲介質包括相變存儲器(PCM)、 自旋力矩轉移RAM以及憶阻器。這些類型的數(shù)據(jù)存儲介質也使用比HDD、SDD和閃存非易失 性存儲器相對更小和更快的數(shù)據(jù)傳輸。這種類型的持久存儲器可以與DRAM并排放在印制 電路板、印制電路卡或硅管芯上。這種類型的持久存儲器可以對一個或多個處理器可用,每 個處理器執(zhí)行一個或多個線程。
      [0006] 用于從第一線程到持久存儲器,諸如PCM,的第一存儲(寫)操作的存儲數(shù)據(jù)可由 其它線程觀察。所述其它線程可以在相同的處理器上和在任何其它處理器上。有可能同一 處理器上或不同處理器上的第二線程讀取存儲數(shù)據(jù)、基于該存儲數(shù)據(jù)更新另一變量,并通 過向持久存儲器發(fā)送第二存儲操作來強制更新后的變量被持久化。第二存儲操作可以在第 一存儲操作完成之前完成并導致更新后的變量在來自第一線程的存儲數(shù)據(jù)被持久化之前 持久化。之后,由于來自第一線程的存儲數(shù)據(jù)還沒有持久化,因此電源故障或系統(tǒng)復位將由 于不一致的數(shù)據(jù)被存儲在持久存儲器中而導致數(shù)據(jù)損壞。
      [0007] 鑒于上述情況,用于可靠地使用數(shù)據(jù)存儲介質的方法和機制是期望的。

      【發(fā)明內容】

      [0008] 構想到用于可靠地使用數(shù)據(jù)存儲介質的系統(tǒng)和方法。在一種實施例中,一種計算 系統(tǒng)包括用于生成存儲器訪問請求的多個源。源可以包括處理器中的多個線程。此外,源 可以包括多個處理器。系統(tǒng)中的一個或多個處理器被耦合到持久存儲器。這一個或多個處 理器經(jīng)由一級或多級高速緩存發(fā)送對持久存儲器的讀和寫訪問請求。
      [0009] 對于對應于對持久存儲器的寫訪問請求的給定數(shù)據(jù)塊,高速緩存控制器阻止對關 聯(lián)的高速緩存中該給定數(shù)據(jù)塊的拷貝的任何讀訪問。高速緩存控制器可以在檢測到還未接 收到給定數(shù)據(jù)塊存儲在持久存儲器中的確認時阻止任何讀訪問。高速緩存控制器和關聯(lián)的 高速緩存可以處于高速緩存存儲器子系統(tǒng)的選定級別。選定級別的例子包括由多個處理器 共孚的尚速緩存級或者共孚尚速緩存級的如一級。
      [0010] 在接收到確認之前,高速緩存控制器可以只對特定的源允許對關聯(lián)的高速緩存中 給定數(shù)據(jù)塊的拷貝的寫訪問。該特定的源可以是最初發(fā)送寫訪問請求的線程。高速緩存控 制器可以使關聯(lián)的高速緩存之下的任何高速緩存級中給定數(shù)據(jù)塊的任何拷貝失效。此外, 高速緩存控制器可以阻止給定數(shù)據(jù)塊到指示該給定數(shù)據(jù)塊既臟又可讀訪問的相干狀態(tài)的 相干狀態(tài)過渡。
      [0011] 參考以下描述和附圖,這些和其它實施例將變得顯然。
      【附圖說明】
      [0012] 圖1是示出訪問持久存儲器的一種實施例的一般化框圖。
      [0013] 圖2是示出訪問持久存儲器的另一種實施例的一般化框圖。
      [0014] 圖3是示出訪問持久存儲器的還有另一種實施例的一般化框圖。
      [0015] 圖4是示出訪問持久存儲器的還有另一種實施例的一般化框圖。
      [0016] 圖5是示出用于可靠地使用持久數(shù)據(jù)的方法的一種實施例的一般化流程圖。
      [0017] 圖6是示出示例性節(jié)點的一種實施例的一般化框圖。
      [0018] 圖7是不出不例性高速緩存的一種實施例的一般化框圖。
      [0019] 圖8是示出用于可靠地處理持久存儲指令的方法的一種實施例的一般化流程圖。
      [0020] 本發(fā)明容易有各種修改和備選形式,其具體實施例通過示例在附圖中示出并且在 本文中詳細描述。但是,應當理解,附圖和對其的詳細描述不是要將本發(fā)明限定到所示出的 特定形式,相反,本發(fā)明是要覆蓋屬于由所附權利要求限定的本發(fā)明精神和范圍之內的所 有修改、等同物和備選方案。
      【具體實施方式】
      [0021] 在下面的描述中,許多具體細節(jié)被闡述,以提供對本發(fā)明的透徹理解。但是,本領 域普通技術人員應當認識到,本發(fā)明沒有這些具體細節(jié)也可以實踐。在一些情況下,眾所周 知的電路、結構、信號、計算機程序指令和技術沒有詳細示出,以避免模糊本發(fā)明。
      [0022] 參考圖1,示出了示出訪問持久存儲器的一種實施例的一般化框圖。示出了一系列 序列1-11。兩個請求者110-112生成對其它請求者中的本地(高速緩存)數(shù)據(jù)和對持久存 儲器130中的持久數(shù)據(jù)的讀和寫訪問請求。這些訪問請求當中的一些被發(fā)送到持久存儲器 130。當電力被除去時,持久數(shù)據(jù)保持存儲在持久存儲器。當電力恢復后,持久數(shù)據(jù)可以被 請求者110-112訪問并再次使用。
      [0023] 請求者110產(chǎn)生或創(chuàng)建對應于要被存儲在隊列120的條目0中的記錄A的數(shù)據(jù)。 例如,請求者110可以對對應于記錄A的數(shù)據(jù)執(zhí)行算術運算,作為結果。請求者110可以被 稱為生產(chǎn)者110。類似地,請求者112可以被稱為消費者112。隊列120可以是被用來在 兩個不同的請求者,諸如兩個不同的執(zhí)行線程或兩個不同的處理器或兩個不同的處理器核 心,之間進行異步通信的數(shù)據(jù)結構,諸如循環(huán)緩沖區(qū)。隊列120中的多個條目0-N當中每一 個可以存儲數(shù)據(jù)的記錄。
      [0024] 指針122-124可以被用來指示循環(huán)緩沖區(qū)的開始和結束。例如,IN指針122可以 指示用于存儲記錄的下一個可用條目。OUT指針124可以指示要解除分配并除去記錄的下 一個條目。生產(chǎn)者110可以將記錄存儲到隊列120中并在記錄被存儲之后使IN指針122 前進。消費者112可以從隊列120提取記錄并在記錄被處理之后使OUT指針124前進。當 IN指針122和OUT指針124存儲相同的值時,隊列120可以被認為是空的。在由IN指針 122指向的條目之前和由OUT指針124指向的條目之后的條目可以被認為在隊列120中等 待。
      [0025] 持久存儲器130可以是利用諸如相變存儲器(PCM)、自旋力矩轉移RAM、憶阻器等 等數(shù)據(jù)存儲技術的數(shù)據(jù)存儲介質。這些類型的數(shù)據(jù)存儲介質使用比硬盤驅動器(HDD)、固態(tài) 驅動器(SSD)和閃存非易失性存儲器相對更小和更快的數(shù)據(jù)傳輸。例如,持久存儲器的上 述例子可字節(jié)尋址并且執(zhí)行比HDD和閃存存儲器快幾個數(shù)量級的數(shù)據(jù)傳輸。
      [0026] 在一些實施例中,請求者110-112包括處理器上的多個線程。作為替代,請求者 110-112包括微處理器中的多個處理器核心。在其它實施例中,請求者110-112包括多節(jié)點 系統(tǒng)的節(jié)點中的多個處理器。雖然示出了兩個請求者,但是任何數(shù)目的請求者都可以在計 算系統(tǒng)中被使用。計算系統(tǒng)中的每個請求者110-112可以被耦合到相應的管芯外存儲器。 相應的管芯外存儲器可以包括動態(tài)隨機存取存儲器(DRAM),為了便于說明,DRAM沒有被示 出。
      [0027] 通過相干鏈路的使用,每個處理器被連接到計算系統(tǒng)中的一個或多個其它處理 器,并且能訪問這一個或多個其它處理器的管芯上高速緩存和相應的管芯外存儲器。不管 是使用插座還是表面貼裝技術,處理器及其相應的管芯外存儲器都可以被稱為節(jié)點。給定 節(jié)點內的處理器可以通過一條或多條相干鏈路訪問其它節(jié)點的管芯上高速緩存和管芯外 存儲器中數(shù)據(jù)的最近更新拷貝。
      [0028] 一般而言,處理器包括一個或多個通用處理器核心和一個或多個布置在高速緩存 層次結構子系統(tǒng)中的管芯上高速緩存。通用處理器核心可以根據(jù)給定的通用指令集執(zhí)行指 令。作為替代,處理器可以包括異構核心,諸如一個或多個通用核心和一個或多個特定于應 用的核心。特定于應用的核心可以包括圖形處理單元(GPU)、數(shù)字信號處理器(DSP)、各種 單指令多數(shù)據(jù)(snffi)芯片之一,等等。
      [0029] 編號的序列1至11示出了當不一致的數(shù)據(jù)可以存儲在持久存儲器中時的狀況。 例如,在值作為持久數(shù)據(jù)被存儲之前,請求者110,或生產(chǎn)者110,產(chǎn)生計劃要作為由請求者 112,或消費者112,觀察的持久數(shù)據(jù)被存儲的值。消費者112可以觀察或讀取該值、修改該 值的拷貝,并計劃將該值的修改后的拷貝作為持久數(shù)據(jù)保存在持久存儲器中。該值的修改 后的拷貝可以在原始值作為持久數(shù)據(jù)被存儲之前作為持久數(shù)據(jù)被存儲。如果電源故障發(fā) 生,則持久存儲器存儲不一致的數(shù)據(jù)。
      [0030] 類似地,消費者112可以讀取由生產(chǎn)者110產(chǎn)生的第一個值,基于該第一個值的拷 貝根據(jù)算法采取步驟,以及修改不同的第二個值。消費者112可以計劃修改后的第二個值 作為持久數(shù)據(jù)被存儲在持久存儲器130中。修改后的第二個值可以在原始值作為持久數(shù)據(jù) 被存儲之前作為持久數(shù)據(jù)被存儲。再次,如果電源故障發(fā)生,則持久存儲器存儲不一致的數(shù) 據(jù)。
      [0031] 在繼續(xù)關于序列1-11的所示例子之前,簡要地描述不用持久存儲器共享數(shù)據(jù)的 例子。從第一處理器到存儲器的存儲(寫)請求被發(fā)送到第一處理器的高速緩存。最終, 修改后的高速緩存行可以從第一處理器的高速緩存被清除到DRAM。如果第二處理器在修改 后的高速緩存行被發(fā)送到DRAM之前發(fā)送對該修改后的高速緩存行的加載(讀)操作,則第 二處理器從第一處理器的高速緩存獲得修改后的高速緩存行。因此,修改后的高速緩存行 在該修改后的高速緩存行存儲在DRAM中之前被觀察到或讀取。如果電源故障發(fā)生,則修改 后的高速緩存行以及存儲在DRAM中的所有內容丟失。因此,當電源恢復時,在DRAM中不會 保留不一致的數(shù)據(jù)。但是,對于持久存儲器,由于電源故障之前的事件,不一致的數(shù)據(jù)會在 電力恢復后觀察到。
      [0032] 返回到序列1至11,在序列1中,生產(chǎn)者110可以執(zhí)行將對應于記錄A的數(shù)據(jù)發(fā)送 到持久存儲器130進行存儲的存儲(寫)指令。高速緩存控制器、存儲器控制器或者這兩 者可以包括為DRAM和持久存儲器130當中每一個確定相應的地址空間的邏輯。這兩個地 址空間可以在啟動序列時被編程和加載。因此,已知被給定存儲指令作為目標的是哪個存 儲器,DRAM還是持久存儲器130。存儲指令可以在完成其操作之前被發(fā)送到幾個硬件單元 并且讓記錄A實際存儲在持久存儲器130中。用來發(fā)送和處理存儲指令的這些單元和步驟 的例子在后面的例子中進一步描述。
      [0033] 多個線程當中的每個線程可以能夠執(zhí)行同步指令,諸如持久存儲器屏障指令。持 久存儲器屏障指令可以迫使到持久存儲器130的所有先前的存儲指令將數(shù)據(jù)提交到持久 存儲器130并且在持久存儲器屏障
      當前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1