午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

利用用于聚結(jié)內(nèi)存事務(wù)的指示的方法和系統(tǒng)的制作方法_2

文檔序號:8395768閱讀:來源:國知局
一半 導(dǎo)體芯片或裸片(die)中,諸如處理器可以被稱為微處理器。隨后開發(fā)的處理器包括多個 IPU,這種處理器通常被稱為多處理器。所述多處理器計算機(jī)系統(tǒng)(處理器)中的每個這 種處理器可以包括單個或共享超高速緩沖器、內(nèi)存接口、系統(tǒng)總線、地址轉(zhuǎn)換機(jī)構(gòu)等等。虛 擬機(jī)和指令集架構(gòu)(ISA)仿真器將一層軟件添加給處理器,其按照單一硬件處理器中單一 IPU的時間片的利用率為該虛擬機(jī)提供多個"虛擬處理器"(也稱為處理器)。隨著技術(shù)進(jìn) 一步演進(jìn),開發(fā)了多線程處理器,其使得具有單一多線程IPU的單個硬件處理器能夠提供 一種同時執(zhí)行不同程序的線程的能力,因此,多線程處理器的每個線程對操作系統(tǒng)看起來 像一個處理器。隨著技術(shù)進(jìn)一步演進(jìn),能夠?qū)⒍鄠€處理器(每個都具有IPU)置于單個半導(dǎo) 體芯片或裸片(die)上。這些處理器被稱為處理器核或僅僅稱為核。因此諸如例如處理器、 中央處理單元、處理單元、微處理器、核、處理器核、處理器線程以及線程的術(shù)語通常被可互 換地使用。在不脫離此處的教導(dǎo)的情況下,可以通過包括前面所示的那些術(shù)語的任何或所 有處理器來實施此處實施例的方面。其中此處使用術(shù)語"線程"或"處理器線程",期望的是, 在處理器線程實施方式中可以具有該實施例的具體優(yōu)點。
[0031] 基于Inte「K的實施例中的事務(wù)執(zhí)行
[0032] 在通過整體引用包含在此處的2012年2月披露的" IntelK Architecture Instruction Set Extensions Programming Reference (Intel?:架構(gòu)指令集擴(kuò)展編程參 考)"319433-012A中,第8章教導(dǎo)了多線程應(yīng)用利用數(shù)量增加的CPU核來獲得更高的性能。 不過,多線程應(yīng)用的寫入需要編程者理解并考慮到在多線程之間的數(shù)據(jù)共享。對共享數(shù)據(jù) 的存取通常需要同步機(jī)制。這些同步機(jī)制被用于通常通過使用受到鎖定保護(hù)的關(guān)鍵部分確 保多線程通過對被應(yīng)用到共享數(shù)據(jù)的操作串行化更新共享數(shù)據(jù)。由于串行化限制并行性, 程序員試圖限制由于同步性導(dǎo)致的開銷。
[0033] Imel'K)事務(wù)同步擴(kuò)展(Intel? TSX)容許處理器動態(tài)確定線層是否必須通過鎖定 保護(hù)關(guān)鍵部分而被串行化,并且僅僅在需要的時候執(zhí)行該船漢化。這使得處理器因為動態(tài) 地不必要的同步化而暴露和實施被隱藏在應(yīng)用中的并行性。
[0034] 采用英特爾TSX,專用于程序員的代碼區(qū)域(也稱為"事務(wù)區(qū)域"或僅僅稱為"事 務(wù)")被事務(wù)性地執(zhí)行。如果事務(wù)執(zhí)行成功完成,則在事務(wù)區(qū)域內(nèi)執(zhí)行的所有內(nèi)存操作從其 它處理器角度看將看起來已經(jīng)即時發(fā)生。處理器使得在事務(wù)區(qū)域內(nèi)執(zhí)行的被執(zhí)行事務(wù)的內(nèi) 存操作,僅僅在成功提交發(fā)生時,即,在所述事務(wù)成功地完成執(zhí)行時,對其它處理器是可見 的。該處理通常被成為原子提交(commit)。
[0035] 因特爾TSX提供兩個軟件接口來指定用于事務(wù)執(zhí)行的代碼的區(qū)域。硬件鎖省略 (Hardware Lock Elision(HLE))是一種老式(legacy)可兼容指令集擴(kuò)展(包括XACQUIRE 和XRELEASE前綴),用于指定事務(wù)區(qū)域。受限事務(wù)內(nèi)存(Restricted Transactional Memory (RTM)是一種用于程序員以比可能采用HLE更靈活的方式限定事務(wù)區(qū)域的新指令集 接口(包括XBEGIN、XEND以及XAB0RT指令)。所述HLE用于更喜歡普通互斥編程模型的 向后兼容性并且愿意在老式硬件上運行HLE使能軟件并且也愿意在具有HLE支持的硬件上 利用新鎖定省略能力的程序員。RTM用于更喜歡靈活接口而不喜歡事務(wù)執(zhí)行硬件的程序員。 此外,因特爾TSX還提供了 XTEST指令。該指令容許軟件查詢邏輯處理器是否正在由HLE 或RTM所識別的事務(wù)區(qū)域中執(zhí)行。
[0036] 由于成功的事務(wù)執(zhí)行確保原子(atomic)提交,處理器在沒有明確同步的情況下 最有利地執(zhí)行代碼區(qū)域。如果對該具體執(zhí)行而言同步?jīng)]有必要,則執(zhí)行可以在沒有任何交 叉線程(cross-thread)串行化的情況下提交。如果處理器不能原子化地提交,則該樂觀 (optimistic)執(zhí)行失敗。當(dāng)發(fā)生這種情況時,處理器將回滾該執(zhí)行,一種被稱為事務(wù)中止 的處理。在事務(wù)中止時,處理器將放棄在由該事務(wù)所使用的內(nèi)存區(qū)域內(nèi)執(zhí)行的所有更新,恢 復(fù)架構(gòu)狀態(tài)以便看起來就像從來沒有發(fā)生過最有利執(zhí)行一樣,并且非事務(wù)性地繼續(xù)開始執(zhí) 行。
[0037] 處理器可能會因為各種原因而執(zhí)行事務(wù)中止。中止事務(wù)的主要原因是源于在正在 事務(wù)地執(zhí)行的邏輯處理器和另一個邏輯處理器之間的沖突內(nèi)存訪問。這種沖突內(nèi)存訪問會 防止成功事務(wù)執(zhí)行。在事務(wù)區(qū)域內(nèi)的從其中讀取的內(nèi)存地址構(gòu)成事務(wù)區(qū)域的讀取集而事務(wù) 區(qū)域內(nèi)向其中寫入的地址構(gòu)成該事務(wù)區(qū)域的寫入集。因特爾TSX以超高速緩存線的粒度維 持所述讀取集和寫入集。如果另一個邏輯處理器讀取作為事務(wù)區(qū)域的寫入集的部分的位置 或者寫入作為事務(wù)區(qū)域的讀取集或?qū)懭爰牟糠值奈恢?,則出現(xiàn)沖突內(nèi)存訪問。沖突訪問 通常意味著對該代碼區(qū)域需要串行化。由于英特爾TSX以超高速緩存線的粒度檢測數(shù)據(jù)沖 突,因此被置于相同超高速緩存線中的不相關(guān)數(shù)據(jù)位置將被檢測為沖突,其將導(dǎo)致事務(wù)中 止。事務(wù)中止也會由于受限的事務(wù)資源的出現(xiàn)。例如,在區(qū)域中的被訪問的數(shù)據(jù)量可能被 超過專用實施方式的容量。此外,指令和系統(tǒng)事件可能會導(dǎo)致事務(wù)中止。頻繁的事務(wù)中止 導(dǎo)致循環(huán)浪費和效率日益低下。
[0038] 硬件鎖省略
[0039] 硬件鎖省略(HLE)為程序員提供一種老式可兼容指令集接口以便使用事務(wù)執(zhí)行。 HLE提供兩個新指令前綴提示(prefix hint) :XACQUIRE和XRELEASE.
[0040] 采用HLE,程序員將XACQUIRE前綴添加到指令的前部,其被用來獲取正在保護(hù)關(guān) 鍵部分的鎖。處理器將所述前綴當(dāng)作提示(hint)以便省略所述鎖獲取操作。即使所述鎖 獲取具有對該鎖的相關(guān)聯(lián)寫入操作,該處理器既不將所述鎖的地址添加到所述事務(wù)區(qū)域的 寫入集,其也不向該鎖發(fā)出任何寫入請求。相反,該所的地址被添加到所述讀取集。邏輯處 理器進(jìn)入事務(wù)執(zhí)行。如果在加有前綴XACQUIRE指令之前可以獲得所述鎖,那么所有其他處 理器之后將繼續(xù)將該鎖視為可用。由于所述正事務(wù)地執(zhí)行的邏輯處理器既不將所述鎖的地 址添加到其寫入集也不對該鎖外部地執(zhí)行可視寫入操作,因此其它邏輯處理器能夠讀取該 鎖而不導(dǎo)致數(shù)據(jù)沖突。這使得其它邏輯處理器也進(jìn)入和并行執(zhí)行受到所述鎖保護(hù)的關(guān)鍵部 分。處理器自動檢測在事務(wù)執(zhí)行期間發(fā)生的任何數(shù)據(jù)沖突并且將在必要時執(zhí)行事務(wù)中止。
[0041] 盡管所述省略的處理器不對所述鎖執(zhí)行任何外部寫入操作,但是該硬件確保在該 鎖上的操作的程序順序。如果該省略的處理器自身讀取所述鎖在該關(guān)鍵(critical)部分 中的值,其將顯得就像該處理器已經(jīng)獲取了所述鎖一樣,即,該讀取將返回非省略值。這種 特性使得HLE執(zhí)行在功能上等同于沒有HLE前綴的執(zhí)行。
[0042] XRELEASE前綴能夠被加載指令的前部,其被用于釋放保護(hù)關(guān)鍵部分的鎖。釋放所 述鎖包括對鎖的寫入。如果該指令將恢復(fù)該鎖的值到該鎖在對同一鎖的加有前綴XACQUIRE 的鎖獲取操作之前所具有的值,則處理器省略與該鎖的釋放相關(guān)聯(lián)的外部寫入請求,并且 不將該鎖的地址添加到所述寫入集。隨后處理器試圖提交所述事務(wù)執(zhí)行。
[0043] 采用HLE,如果多線程執(zhí)行受
當(dāng)前第2頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1