亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Simd向量的同步化的制作方法

文檔序號(hào):9371899閱讀:221來(lái)源:國(guó)知局
Simd向量的同步化的制作方法
【技術(shù)領(lǐng)域】
[0001] 本公開涉及微處理器及其它處理裝置,更具體來(lái)說(shuō),涉及SHffi向量的同步化。
【背景技術(shù)】
[0002] 在例如包括多線程化處理器、多個(gè)處理裝置和/或多核處理器的系統(tǒng)中的多個(gè)線 程和/或處理單元(下文稱為代理)常常需要共享資源以及存儲(chǔ)在該系統(tǒng)中的數(shù)據(jù)。注意要 確保代理訪問最近更新的數(shù)據(jù),并確保代理不會(huì)訪問和修改當(dāng)前與另一個(gè)代理相關(guān)聯(lián)的數(shù) 據(jù)。使這種數(shù)據(jù)和資源共享進(jìn)一步復(fù)雜化的是,大多數(shù)現(xiàn)代處理裝置包括一個(gè)或多個(gè)專用 高速緩存存儲(chǔ)器。在多處理器和多核系統(tǒng)內(nèi),這些芯片上高速緩存將通常并且實(shí)際上一般 的確包含某個(gè)數(shù)據(jù)項(xiàng)的多個(gè)副本。因此,當(dāng)代理訪問某個(gè)數(shù)據(jù)項(xiàng)的副本時(shí),要確保讀取經(jīng)過 更新的或有效的數(shù)據(jù)值。
[0003] 因此,在這些系統(tǒng)中保持"高速緩存一致性"。高速緩存一致性是指從高速緩存存 儲(chǔ)器寫入或讀取到高速緩存存儲(chǔ)器的數(shù)據(jù)的同步化,以使得線程或處理器所訪問的存儲(chǔ)在 高速緩存中的任何數(shù)據(jù)項(xiàng)是該數(shù)據(jù)項(xiàng)的最新副本。此外,從高速緩存寫回到主存儲(chǔ)器的任 何數(shù)據(jù)值應(yīng)當(dāng)是最當(dāng)前的數(shù)據(jù)。
[0004] 一種保持高速緩存一致性并確保當(dāng)代理需要數(shù)據(jù)項(xiàng)時(shí)訪問的是該數(shù)據(jù)項(xiàng)的最新 值的方法是實(shí)現(xiàn)信號(hào)量(semaphore)(例如,標(biāo)志或鎖)。例如,鎖包括響應(yīng)代理(例如,在加 載操作中)對(duì)來(lái)自存儲(chǔ)器的特定數(shù)據(jù)項(xiàng)的請(qǐng)求而執(zhí)行以確保處理器和/或線程之間的同步 的過程。一般來(lái)說(shuō),鎖與包括讀/加載指令、修改數(shù)據(jù)項(xiàng)的指令和寫/存儲(chǔ)指令的指令集相 關(guān)聯(lián)。鎖在本文中又稱為"鎖序列"或"鎖操作",它可包括例如:獲取存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器位 置的所有權(quán);對(duì)數(shù)據(jù)執(zhí)行原子操作,同時(shí)防止其它進(jìn)程對(duì)該數(shù)據(jù)進(jìn)行操作;以及在執(zhí)行原 子操作之后釋放該存儲(chǔ)器位置的所有權(quán)。原子操作是以非中斷方式按順序執(zhí)行并且此外還 確保其完成或根本不完成的操作(即,該操作不可分割)。

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

[0005] 本發(fā)明涉及一種方法,包括: 通過處理裝置中的解碼器解碼單個(gè)指令,所述單個(gè)指令對(duì)第一存儲(chǔ)位置、第二存儲(chǔ)位 置和第三存儲(chǔ)位置之間的多個(gè)數(shù)據(jù)元素指定向量比較和交換操作; 發(fā)出所述單個(gè)指令以供所述處理裝置中的執(zhí)行單元執(zhí)行;以及響應(yīng)所述單個(gè)指令的執(zhí) 行, 將來(lái)自所述第一存儲(chǔ)位置的數(shù)據(jù)元素與所述第二存儲(chǔ)位置中的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行比 較;以及響應(yīng)確定存在匹配, 用來(lái)自所述第三存儲(chǔ)位置的對(duì)應(yīng)數(shù)據(jù)元素替換來(lái)自所述第一存儲(chǔ)位置的所述數(shù)據(jù)元 素。
[0006] 本發(fā)明涉及一種處理器,包括: 存儲(chǔ)位置,配置成存儲(chǔ)多個(gè)第一數(shù)據(jù)元素、多個(gè)第二數(shù)據(jù)元素和多個(gè)第三數(shù)據(jù)元素,所 述多個(gè)第二和第三數(shù)據(jù)元素中的每個(gè)對(duì)應(yīng)于所述多個(gè)第一數(shù)據(jù)元素中的一個(gè); 解碼器,配置成解碼單個(gè)指令,所述單個(gè)指令對(duì)所述多個(gè)第一、第二和第三數(shù)據(jù)元素指 定向量比較和交換操作;以及 執(zhí)行單元,耦合到所述解碼器以接收經(jīng)解碼的指令,并耦合到所述存儲(chǔ)位置以執(zhí)行所 述向量比較和交換操作; 其中,響應(yīng)所述向量比較和交換操作的執(zhí)行,所述執(zhí)行單元配置成: 比較來(lái)自所述多個(gè)第一和第二數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素;以及響應(yīng)確定存在匹配, 用來(lái)自所述多個(gè)第三數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素替換來(lái)自所述多個(gè)第一數(shù)據(jù)元素的數(shù) 據(jù)元素。
[0007] 本發(fā)明涉及一種系統(tǒng),包括: 存儲(chǔ)器控制器,耦合到配置成存儲(chǔ)多個(gè)第一數(shù)據(jù)元素的第一存儲(chǔ)位置;以及 耦合到所述存儲(chǔ)器控制器的處理器,所述處理器包括: 寄存器文件,配置成存儲(chǔ)多個(gè)第二數(shù)據(jù)元素和多個(gè)第三數(shù)據(jù)元素,所述多個(gè)第二和第 三數(shù)據(jù)元素中的每個(gè)對(duì)應(yīng)于所述多個(gè)第一數(shù)據(jù)元素中的一個(gè); 解碼器,配置成解碼單個(gè)指令,所述單個(gè)指令對(duì)所述多個(gè)第一、第二和第三數(shù)據(jù)元素指 定向量比較和交換操作;以及 執(zhí)行單元,耦合到所述解碼器以接收經(jīng)解碼的指令,并耦合到所述第一存儲(chǔ)位置和所 述寄存器文件以執(zhí)行所述向量比較和交換操作; 其中,響應(yīng)所述向量比較和交換操作的執(zhí)行,所述執(zhí)行單元配置成: 比較來(lái)自所述多個(gè)第一和第二數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素;以及響應(yīng)確定存在匹配, 用來(lái)自所述多個(gè)第三數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素替換來(lái)自所述多個(gè)第一數(shù)據(jù)元素的數(shù) 據(jù)元素;以及響應(yīng)確定不存在匹配, 用來(lái)自所述多個(gè)第一數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素替換來(lái)自所述多個(gè)第二數(shù)據(jù)元素的數(shù) 據(jù)元素。
[0008] 本發(fā)明涉及一種其上存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì),所述指令可進(jìn)行操作以使處 理器裝置: 解碼單個(gè)指令,所述單個(gè)指令對(duì)多個(gè)數(shù)據(jù)元素指定向量比較和交換操作,每個(gè)數(shù)據(jù)元 素具有對(duì)應(yīng)的測(cè)試元素、替換元素和掩碼元素; 如果相應(yīng)掩碼元素激活,則將數(shù)據(jù)元素與對(duì)應(yīng)的測(cè)試元素進(jìn)行比較;以及響應(yīng)確定所 有比較指示匹配, 設(shè)置標(biāo)志,并用對(duì)應(yīng)的替換元素替換所比較的數(shù)據(jù)元素;以及響應(yīng)確定所有比較指示 不匹配, 將標(biāo)志清零,并用對(duì)應(yīng)的數(shù)據(jù)元素替換所比較的測(cè)試元素。
【附圖說(shuō)明】
[0009] 圖1示出計(jì)算系統(tǒng)的框圖。
[0010] 圖2是如圖1所示的處理裝置的示意圖。
[0011] 圖3示出單指令多數(shù)據(jù)(SHffi)向量比較和交換指令的編碼方案。
[0012] 圖4是用于實(shí)現(xiàn)如圖3所示的指令格式的第一示范性計(jì)算機(jī)系統(tǒng)的框圖。
[0013] 圖5是用于實(shí)現(xiàn)如圖3所示的指令格式的第二示范性計(jì)算機(jī)系統(tǒng)的框圖。
[0014] 圖6是用于實(shí)現(xiàn)如圖3所示的指令格式的第三示范性計(jì)算機(jī)系統(tǒng)的框圖。
[0015] 圖7是用于實(shí)現(xiàn)如圖3所示的指令格式的第四示范性計(jì)算機(jī)系統(tǒng)的框圖。
[0016] 根據(jù)描述和附圖以及權(quán)利要求,其它特征和優(yōu)點(diǎn)將顯而易見。
【具體實(shí)施方式】
[0017] 在以下描述中,闡述了眾多具體細(xì)節(jié),例如特定指令、指令格式、諸如寄存器和存 儲(chǔ)器的裝置等,以便充分理解本文提供的實(shí)例。但是,本領(lǐng)域技術(shù)人員將明白,沒有這些具 體細(xì)節(jié)也可實(shí)現(xiàn)本發(fā)明。
[0018] -種用于確定信號(hào)量是否加鎖(和/或使它加鎖)的方法是通過使用讀-修改-寫 序列(或操作)。但是,讀-修改-寫實(shí)現(xiàn)的一個(gè)問題是信號(hào)量機(jī)制本身的獲取和釋放。即, 當(dāng)一個(gè)進(jìn)程試圖獲得對(duì)共享存儲(chǔ)器空間的控制權(quán)時(shí),它首先讀取鎖值,檢查和修改(如果允 許的話)該值,并將修改值寫回到該鎖。一般希望將讀-修改-寫操作作為原子操作來(lái)執(zhí)行 (即,一旦開始執(zhí)行便不中斷地完成)以防止其它進(jìn)程修改鎖值。通過利用原子操作,進(jìn)程可 獲取(讀取)信號(hào)量,修改該值(如果允許的話),并通過啟動(dòng)寫來(lái)釋放信號(hào)量以在另一進(jìn)程 試圖獲取該鎖之前完成該操作。
[0019] 現(xiàn)在參考圖1,示出計(jì)算機(jī)系統(tǒng)10,計(jì)算機(jī)系統(tǒng)10具有通過總線13耦合到存儲(chǔ)器 12 (例如,寄存器、高速緩存、RAM等)的多個(gè)處理單元11 (例如,處理器、核、執(zhí)行單元等)。 其中一個(gè)或多個(gè)處理單元11與一個(gè)或多個(gè)線程相關(guān)聯(lián)。因此,計(jì)算機(jī)系統(tǒng)10包括任何合 適數(shù)量的處理單元11,每個(gè)處理單元11具有任何合適數(shù)量的線程。處理單元11均可形成 獨(dú)立的集成電路裝置的一部分,或者所有處理單元11 (或其一部分)可形成在單個(gè)管芯上。 在該特定計(jì)算機(jī)系統(tǒng)中,示出作為系統(tǒng)10的部分的四個(gè)處理單元11 (指示為P1、P2、P3和 P4)。所有這四個(gè)處理單元11都耦合到存儲(chǔ)器12,具體來(lái)說(shuō)是耦合到存儲(chǔ)器12內(nèi)的共享存 儲(chǔ)器空間15。
[0020] 將明白,存儲(chǔ)器12能以各種方式進(jìn)行配置。盡管示為單個(gè)存儲(chǔ)器,但存儲(chǔ)器12可 包括多個(gè)內(nèi)部和/或外部存儲(chǔ)器。在特定實(shí)例中,所有四個(gè)處理單元11都訪問存儲(chǔ)器12, 并且指示為共享空間15的存儲(chǔ)器12的一部分供多于一個(gè)處理單元11訪問??赡艿氖牵?儲(chǔ)器12內(nèi)存在其它共享區(qū)域,其中兩個(gè)或兩個(gè)以上處理單元11具有訪問這些共享區(qū)域的 能力。存儲(chǔ)器12的非共享區(qū)域一般降級(jí)(relegate)為只供一個(gè)處理單元11訪問。
[0021] 如圖1所示的計(jì)算機(jī)系統(tǒng)10意在是示范性計(jì)算機(jī)系統(tǒng),并且可包括許多額外組 件,為清楚起見,省略了這些額外組件。舉例來(lái)說(shuō),計(jì)算機(jī)系統(tǒng)10可包括DM (直接存儲(chǔ)器 訪問)控制器、網(wǎng)絡(luò)接口(如網(wǎng)絡(luò)卡)、與其中一個(gè)或多個(gè)處理單元11相關(guān)聯(lián)的芯片組、以及 額外的信號(hào)線和總線。并且,應(yīng)了解,計(jì)算機(jī)系統(tǒng)10可以不包括如圖1所示的所有組件。
[0022] 在圖1中,所采用的信號(hào)量是鎖(或鎖變量)16,指定它們以控制對(duì)一個(gè)或多個(gè)相應(yīng) 共享空間15的訪問(如虛線14所示)。鎖16是指定包含與獲得對(duì)共享空間15的訪問權(quán)相 關(guān)聯(lián)的值的存儲(chǔ)器中的特定位置。因此,為了使處理單元11之一訪問共享空間15,它首先 訪問對(duì)應(yīng)鎖16,并測(cè)試存儲(chǔ)在鎖位置16中的數(shù)據(jù)的狀態(tài)(值)。在最簡(jiǎn)單的格式中,可為鎖 16指定兩個(gè)值。第一個(gè)值指示共享空間可供訪問,第二個(gè)值指示共享空間當(dāng)前正在使用并 且因此不可供訪問。再者,在最簡(jiǎn)單的實(shí)施例中,可對(duì)鎖16的加鎖和解鎖狀態(tài)使用位狀態(tài) 1和0〇
[0023] 將明白,鎖16的實(shí)際鎖值和鎖狀態(tài)只是一種設(shè)計(jì)選擇,并且可以設(shè)想許多改變。 并且,鎖16的位置無(wú)需在存儲(chǔ)器12本身內(nèi)。此外,參考圖1將明白,存儲(chǔ)器12可以是各種 存儲(chǔ)器裝置之一。還可能的是,其中一個(gè)或多個(gè)處理單元11可以用同樣訪問存儲(chǔ)器的一個(gè) (或多個(gè))存儲(chǔ)器訪問裝置(諸如直接存儲(chǔ)器訪問控制器的裝置)替換。在這些示例中,這些 裝置將與本文描述的處理單元11類似地起作用以獲得對(duì)共享空間15的訪問權(quán)。最后,盡 管只示出單個(gè)總線13,但在與總線13相同或不同的層級(jí)上可以有多個(gè)總線以用于耦合這 些各種裝置。
[0024] 處理單元11訪問存儲(chǔ)器12以進(jìn)行數(shù)據(jù)傳輸通常涉及加載和存儲(chǔ)操作的使用。加 載操作傳送來(lái)自被訪問的存儲(chǔ)器位置的存儲(chǔ)器內(nèi)容,而存儲(chǔ)操作則將數(shù)據(jù)傳送到被訪問的 存儲(chǔ)器位置。因此,加載/存儲(chǔ)操作用于訪問存儲(chǔ)器12和鎖16以在處理單元11與存儲(chǔ)器 12之間進(jìn)行數(shù)據(jù)傳輸。加載和存儲(chǔ)訪問又分別稱為讀
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1