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

面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法及裝置的制作方法

文檔序號(hào):6383769閱讀:169來源:國知局
專利名稱:面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及共享存儲(chǔ)眾核處理器體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域,具體涉及一種面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法及裝置。
背景技術(shù)
一)共享存儲(chǔ)片上眾核處理器
近30多年來,隨著集成電路實(shí)現(xiàn)工藝的進(jìn)步,高性能通用微處理器芯片上晶體管的數(shù)目一直遵從摩爾定律接近每18個(gè)月左右翻一番。當(dāng)前主流高端處理器芯片上的晶體管數(shù)目已經(jīng)達(dá)到10億量級(jí)。如何利用如此大量的晶體管資源設(shè)計(jì)實(shí)現(xiàn)高性能通用微處理器是當(dāng)前學(xué)術(shù)界和產(chǎn)業(yè)界普遍關(guān)注的問題。共享多級(jí)存儲(chǔ)層次的片上眾核處理器體系結(jié)構(gòu),是當(dāng)前及未來相當(dāng)長(zhǎng)時(shí)期內(nèi)通用高性能微處理器的主流體系結(jié)構(gòu)。這種高性能微處理器體系結(jié)構(gòu)的抽象模型如圖1所示。圖1中將L3級(jí)高速緩存用虛框表示的原因是具體實(shí)現(xiàn)的時(shí)候,該級(jí)高速緩存不一定實(shí)現(xiàn)或者不一定實(shí)現(xiàn)在芯片內(nèi)。在這種處理器體系結(jié)構(gòu)中,對(duì)于應(yīng)用程序中的鎖變量,作為一般的數(shù)據(jù)對(duì)待。對(duì)高并發(fā)應(yīng)用的性能降低主要來自兩個(gè)方面
I)處理器對(duì)于鎖變量的訪問需要進(jìn)入處理器的各級(jí)高速緩存(Cache),那么對(duì)于多個(gè)處理器核上的多個(gè)線程并發(fā)訪問鎖變量的時(shí)候,要頻繁作廢掉處理器核中的LI級(jí)高速緩存中的鎖變量,對(duì)高并發(fā)的應(yīng)用而言會(huì)引起較大的性能降低。例如,處理器核0上運(yùn)行的線程對(duì)一個(gè)64位的鎖變量加一(這在柵欄同步中非常常見),那么如果處理器核I上的線程也要接下來對(duì)鎖變量加一,就必須等到處理器核0將最新的鎖變量的值寫入L2級(jí)高速緩存后再從L2級(jí)高速緩存讀入處理器核I的LI級(jí)高速緩存,然后再讀入寄存器完成寫操作,同時(shí)作廢掉其他處理器核的LI級(jí)高速緩存中的該變量。這在眾多線程并發(fā)讀寫鎖變量的時(shí)候會(huì)引起大量的LI級(jí)高速緩存作廢操作,使高并發(fā)應(yīng)用的性能降低。2)將鎖變量作為一般的數(shù)據(jù)變量對(duì)待,需要按照統(tǒng)一的虛存管理機(jī)制管理鎖變量所處的虛存頁面,那么,鎖變量所處的虛存頁面很可能會(huì)被換出處理器的主存儲(chǔ)器,影響高并發(fā)應(yīng)用并發(fā)訪問鎖變量的性能。而且,由于和普通數(shù)據(jù)采用同樣的存儲(chǔ)管理方式,對(duì)鎖變量的訪問也要經(jīng)過和數(shù)據(jù)變量一樣的虛實(shí)地址轉(zhuǎn)換過程,在眾多線程并發(fā)訪問鎖變量的時(shí)候會(huì)極大地降低性能。二)鎖變量訪問是高并發(fā)環(huán)境下制約性能提升的重要因素
對(duì)于圖1這種共享存儲(chǔ)片上眾核處理器,多線程并行是最直接最高效的并行執(zhí)行模式,甚至其中的處理器核本身就可能在硬件層面上支持多線程。因此,該類處理器是一種高并發(fā)度的片上并行系統(tǒng)?;阪i的同步機(jī)制是共享存儲(chǔ)片上眾核處理器中最廣泛使用的同步機(jī)制,有大量的遺留軟件使用這種同步方式。鎖是多線程并行程序在用戶數(shù)據(jù)空間中定義的數(shù)據(jù)元素,各個(gè)并發(fā)的線程利用處理器提供的比較并交換指令完成加鎖/解鎖原子操作。因此在海量線程高度并發(fā)的條件下,大量線程對(duì)鎖變量的并發(fā)訪問開銷是高并發(fā)并行程序同步開銷的主體。在如圖1所示的結(jié)構(gòu)中,通常鎖變量在所有處理器核共享的存儲(chǔ)層次中維持一致性,目前的多核和眾核處理器通常在所有處理器核共享的L2級(jí)高速緩存中維持鎖變量的一致性。以最簡(jiǎn)單的鎖變量為例,處理器核上執(zhí)行的線程必須訪問L2級(jí)高速緩存中的鎖變量(如果該變量不在L2中則必須從主存儲(chǔ)器中取)。那么,每個(gè)線程的加鎖解鎖過程幾乎都會(huì)引發(fā)對(duì)L2級(jí)高速緩存甚至是主存儲(chǔ)器的訪問。目前,在通用的高并發(fā)度程序中,鎖變量和用戶程序空間的數(shù)據(jù)變量采用同樣的處理方式,這對(duì)于提高鎖變量訪問的性能有以下兩點(diǎn)制約1)鎖變量不能總是在訪問速度最快的共享存儲(chǔ)層次中存在;2)鎖變量和一般的數(shù)據(jù)變量訪問頻度不同,但是采用同樣的存儲(chǔ)管理機(jī)制,嚴(yán)重影響高并發(fā)應(yīng)用的性能;例如按照L2級(jí)高速緩存替換策略,鎖變量可能會(huì)經(jīng)常替換出高速緩存進(jìn)入主存儲(chǔ)器,并且虛存管理策略也可能將鎖變量所在的存儲(chǔ)器頁面替換到外存儲(chǔ)器,因此會(huì)嚴(yán)重影響性能。三)相關(guān)的研究和實(shí)現(xiàn)工作
提高鎖變量并發(fā)訪問的性能是硬件實(shí)現(xiàn)的分布共享存儲(chǔ)系統(tǒng)和共享存儲(chǔ)片上眾核系統(tǒng)中共同關(guān)注的關(guān)鍵問題之一。例如美國2010年公示的專利申請(qǐng)《硬件存儲(chǔ)器鎖(Hardware Memory Locks))) (US 2010/0115195 Al)記載了用一個(gè) SOC (片上系統(tǒng),System-On-Chip)協(xié)助管理對(duì)存儲(chǔ)器中鎖變量的訪問、實(shí)現(xiàn)硬件支持的鎖變量快速訪問的技術(shù)方案,該技術(shù)方案適用于多處理器構(gòu)成的分布共享存儲(chǔ)器并行計(jì)算系統(tǒng)中。但是,該技術(shù)方案并不適用于片上眾核的處理器體系結(jié)構(gòu),同時(shí)該專利并沒有將鎖變量存儲(chǔ)器映射到全局地址空間中,因此在訪問鎖變量時(shí)還需要進(jìn)行復(fù)雜的虛實(shí)地址轉(zhuǎn)換,鎖變量訪問性能較低。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種鎖變量并發(fā)訪問性能高、鎖變量訪問延遲低、鎖變量并發(fā)訪問開銷小、使用簡(jiǎn)單方便的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法及裝置。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為
一種面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法,其實(shí)施步驟如下
1)預(yù)先在眾核處理器芯片上建立用于存儲(chǔ)鎖變量的全局編址片上鎖存儲(chǔ)器,將所述全局編址片上鎖存儲(chǔ)器分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接應(yīng)用程序時(shí)將鎖變量分配到鎖變量獨(dú)占的地址空間;
2)加載應(yīng)用程序時(shí),操作系統(tǒng)將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)剿鋈志幹菲湘i存儲(chǔ)器中,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與所述全局編址片上鎖存儲(chǔ)器的虛實(shí)地址轉(zhuǎn)換關(guān)系;在應(yīng)用程序訪問鎖變量時(shí),旁路各個(gè)處理器核內(nèi)部的高速緩存,將各個(gè)處理器核對(duì)所述全局編址片上鎖存儲(chǔ)器的訪問請(qǐng)求進(jìn)行仲裁,將仲裁后得到的唯一的訪問請(qǐng)求加入所述全局編址片上鎖存儲(chǔ)器的訪問隊(duì)列,并根據(jù)先來先服務(wù)的策略執(zhí)行所述訪問隊(duì)列中的訪問請(qǐng)求對(duì)鎖變量進(jìn)行讀取或者修改;在應(yīng)用程序結(jié)束時(shí),刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),結(jié)束鎖變量所在頁面虛地址到所述全局編址片上鎖存儲(chǔ)器的映射。作為本發(fā)明面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法的進(jìn)一步改進(jìn) 所述步驟2)中將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)剿鋈志幹菲湘i存儲(chǔ)器中具體是指以直接存儲(chǔ)器訪問的方式將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)剿鋈志幹菲湘i存儲(chǔ)器中。所述全局編址片上鎖存儲(chǔ)器通過控制通路和地址/數(shù)據(jù)通路分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;所述控制通路為16位,其中6位用于表示處理器核的編號(hào),I位用于讀寫表示,9位用于鎖變量尋址;所述地址/數(shù)據(jù)通路為64位。所述片上鎖存儲(chǔ)器的存儲(chǔ)容量是眾核處理器的存儲(chǔ)器頁面大小的整數(shù)倍。本發(fā)明還提供一種面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置,包括 存儲(chǔ)體,用于存儲(chǔ)應(yīng)用程序的鎖變量;
訪問控制器,用于在應(yīng)用程序運(yùn)行時(shí)控制對(duì)鎖變量的讀取和修改;
所述存儲(chǔ)體和訪問控制器設(shè)于眾核處理器芯片上,所述存儲(chǔ)體通過訪問控制器分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接應(yīng)用程序時(shí)將鎖變量分配到鎖變量獨(dú)占的地址空間;加載應(yīng)用程序時(shí),操作系統(tǒng)將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從主存儲(chǔ)器傳輸?shù)酱鎯?chǔ)體中,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與存儲(chǔ)體的虛實(shí)地址轉(zhuǎn)換關(guān)系;在應(yīng)用程序訪問鎖變量時(shí),所述訪問控制器旁路各個(gè)處理器核內(nèi)部的高速緩存,將各個(gè)處理器核的鎖變量訪問請(qǐng)求進(jìn)行仲裁將仲裁后得到的唯一的訪問請(qǐng)求加入訪問隊(duì)列,并根據(jù)先來先服務(wù)的策略執(zhí)行所述訪問隊(duì)列中的訪問請(qǐng)求對(duì)鎖變量進(jìn)行讀取或者修改;在應(yīng)用程序結(jié)束時(shí),所述訪問控制器刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),結(jié)束鎖變量所在頁面虛地址到存儲(chǔ)體的映射。作為本發(fā)明面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置的進(jìn)一步改進(jìn)
所述存儲(chǔ)體通過直接存儲(chǔ)器訪問控制器與片外主存儲(chǔ)器相連,所述操作系統(tǒng)在加載應(yīng)
用程序時(shí)以直接存儲(chǔ)器訪問的方式將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)酱鎯?chǔ)體中。所述訪問控制器通過地址/數(shù)據(jù)通路和控制通路分別與眾核處理器上各個(gè)處理器核的取存單元直接相連,所述地址/數(shù)據(jù)通路為64位;所述控制通路為16位,其中6位用于表示處理器核的編號(hào),I位用于讀寫表示,9位用于鎖變量尋址。所述存儲(chǔ)體的存儲(chǔ)容量是眾核處理器的存儲(chǔ)器頁面大小的整數(shù)倍。本發(fā)明面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法具有下述優(yōu)點(diǎn)1、本發(fā)明通過預(yù)先在眾核處理器芯片上建立用于存儲(chǔ)鎖變量的全局編址片上鎖存儲(chǔ)器,通過獨(dú)立的全局編址片上鎖存儲(chǔ)器來實(shí)現(xiàn)鎖變量的存儲(chǔ),因此對(duì)于鎖變量的讀寫操作不涉及對(duì)L1/L2級(jí)高級(jí)緩存的操作,能夠降低鎖變量并發(fā)訪問的開銷,提高共享存儲(chǔ)眾核處理器的并行性能。2、本發(fā)明通過預(yù)先在眾核處理器芯片上建立用于存儲(chǔ)鎖變量的全局編址片上鎖存儲(chǔ)器,本發(fā)明為鎖變量提供上述獨(dú)特的存儲(chǔ)處理方式,不會(huì)由于高速緩存(Cache )的一致性維護(hù)和替換而降低鎖變量訪問的性能,通過獨(dú)立的全局編址片上鎖存儲(chǔ)器來實(shí)現(xiàn)鎖變量的存儲(chǔ),鎖變量始終存儲(chǔ)在全局編址片上鎖存儲(chǔ)器中而不會(huì)被替換出眾核處理器芯片的高速緩存,簡(jiǎn)化了鎖變量的操作,也能夠提高眾核處理器芯片的各級(jí)高速緩存的利用率,因此能夠有效提高眾核處理器芯片的鎖變量并發(fā)訪問性能以及提高高速緩存的利用率。
3、本發(fā)明通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與存儲(chǔ)體的虛實(shí)地址轉(zhuǎn)換關(guān)系,因此鎖變量的訪問直接訪問轉(zhuǎn)換后援緩沖表項(xiàng)即可,不需要經(jīng)過虛實(shí)地址轉(zhuǎn)換過程,在眾多線程并發(fā)訪問鎖變量時(shí)能夠極大地提高鎖變量的訪問性能。4、本發(fā)明在編譯和鏈接應(yīng)用程序時(shí)通過少量修改將鎖變量分配到鎖變量獨(dú)占的地址空間即可,對(duì)應(yīng)用程序的編譯、鏈接和加載機(jī)制進(jìn)行少量的修改即可實(shí)現(xiàn)基于鎖變量的高性能并發(fā)執(zhí)行,能夠使高并發(fā)度的應(yīng)用程序使用片上鎖存存儲(chǔ)并發(fā)訪問的鎖變量,而對(duì)應(yīng)用程序開發(fā)而言,僅僅需要在構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注即可,對(duì)于現(xiàn)有的應(yīng)用程序也僅僅需要簡(jiǎn)單增加鎖變量標(biāo)注并重新編譯、鏈接即可,具有使用簡(jiǎn)單方便、應(yīng)用程序開發(fā)難度較低、應(yīng)用程序兼容性好的優(yōu)點(diǎn)。本發(fā)明面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置具有上述面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法相同的技術(shù)效果,在此不再贅述。


圖1為現(xiàn)有技術(shù)的共享存儲(chǔ)多核處理器的體系結(jié)構(gòu)示意圖。圖2為本發(fā)明實(shí)施例的方法流程示意圖。圖3為本發(fā)明實(shí)施例的框架結(jié)構(gòu)示意圖。圖4為應(yīng)用本發(fā)明實(shí)施例鎖變量全局編址存儲(chǔ)裝置的共享存儲(chǔ)多核處理器的體系結(jié)構(gòu)不意圖。
具體實(shí)施例方式如圖2所示,本實(shí)施例面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法的實(shí)施步驟如下
1)預(yù)先在眾核處理器芯片上建立用于存儲(chǔ)鎖變量的全局編址片上鎖存儲(chǔ)器,將全局編址片上鎖存儲(chǔ)器分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接應(yīng)用程序時(shí)將鎖變量分配到鎖變量獨(dú)占的地址空間;
2)加載應(yīng)用程序時(shí),操作系統(tǒng)將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)饺志幹菲湘i存儲(chǔ)器中,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖(TLB)表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與全局編址片上鎖存儲(chǔ)器的虛實(shí)地址轉(zhuǎn)換關(guān)系;在應(yīng)用程序訪問鎖變量時(shí),旁路各個(gè)處理器核內(nèi)部的高速緩存,將各個(gè)處理器核對(duì)全局編址片上鎖存儲(chǔ)器的訪問請(qǐng)求進(jìn)行仲裁,將仲裁后得到的唯一的訪問請(qǐng)求加入全局編址片上鎖存儲(chǔ)器的訪問隊(duì)列,并根據(jù)先來先服務(wù)的策略執(zhí)行訪問隊(duì)列中的訪問請(qǐng)求對(duì)鎖變量進(jìn)行讀取或者修改;在應(yīng)用程序結(jié)束時(shí),刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖(TLB)表項(xiàng),結(jié)束鎖變量所在頁面虛地址到全局編址片上鎖存儲(chǔ)器的映射。本實(shí)施例中,步驟2)中將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)饺志幹菲湘i存儲(chǔ)器中具體是指以直接存儲(chǔ)器訪問(DMA)的方式將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)饺志幹菲湘i存儲(chǔ)器中。本實(shí)施例中,全局編址片上鎖存儲(chǔ)器通過控制通路和地址/數(shù)據(jù)通路分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;控制通路為16位,其中8位用于表示處理器核的編號(hào),I位用于讀寫表示,I位用于保留,6位用于鎖變量尋址;地址/數(shù)據(jù)通路為64位。本實(shí)施例中,全局編址片上鎖存儲(chǔ)器的存儲(chǔ)容量是眾核處理器的存儲(chǔ)器頁面大小的整數(shù)倍。如圖3所示,本實(shí)施例面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置包括 存儲(chǔ)體1,用于存儲(chǔ)應(yīng)用程序的鎖變量;
訪問控制器2,用于在應(yīng)用程序運(yùn)行時(shí)控制對(duì)鎖變量的讀取和修改;
存儲(chǔ)體I和訪問控制器2設(shè)于眾核處理器芯片上,存儲(chǔ)體I通過訪問控制器2分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接應(yīng)用程序時(shí)將鎖變量分配到鎖變量獨(dú)占的地址空間;加載應(yīng)用程序時(shí),操作系統(tǒng)將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從主存儲(chǔ)器傳輸?shù)酱鎯?chǔ)體I中,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與存儲(chǔ)體I的虛實(shí)地址轉(zhuǎn)換關(guān)系;在應(yīng)用程序訪問鎖變量時(shí),訪問控制器2旁路各個(gè)處理器核內(nèi)部的高速緩存,將各個(gè)處理器核的鎖變量訪問請(qǐng)求進(jìn)行仲裁將仲裁后得到的唯一的訪問請(qǐng)求加入訪問隊(duì)列,并根據(jù)先來先服務(wù)的策略執(zhí)行訪問隊(duì)列中的訪問請(qǐng)求對(duì)鎖變量進(jìn)行讀取或者修改;在應(yīng)用程序結(jié)束時(shí),訪問控制器2刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),結(jié)束鎖變量所在頁面虛地址到存儲(chǔ)體I的映射。本實(shí)施例中,存儲(chǔ)體I為集中式的快速存儲(chǔ)邏輯電路,具體采用目前常用的SRAM(靜態(tài)隨機(jī)訪問存儲(chǔ)器)實(shí)現(xiàn)。存儲(chǔ)體I的存儲(chǔ)容量可根據(jù)需要選擇為眾核處理器的存儲(chǔ)器頁面大小的整數(shù)倍,本實(shí)施例中眾核處理器的存儲(chǔ)器頁面大小為8KB,存儲(chǔ)體I的存儲(chǔ)容量為32KB (即存儲(chǔ)體I的存儲(chǔ)容量為眾核處理器的存儲(chǔ)器頁面大小的4倍)。為了使應(yīng)用程序中的鎖變量在整個(gè)應(yīng)用程序的運(yùn)行期間一直在存儲(chǔ)體I中,本實(shí)施例中對(duì)轉(zhuǎn)換后援緩沖表項(xiàng)(TLB)采用存儲(chǔ)器頁面鎖定機(jī)制,即對(duì)存在于存儲(chǔ)體I的頁面進(jìn)行虛實(shí)地址轉(zhuǎn)換進(jìn)行特殊處理,構(gòu)建專用頁表項(xiàng)專門完成虛地址到存儲(chǔ)體I的映射將鎖變量所在頁面虛地址映射到存儲(chǔ)體1,并保持這種映射直到應(yīng)用程序結(jié)束,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),將鎖變量所在頁面虛地址映射到存儲(chǔ)體1,因此鎖變量的訪問不需要經(jīng)過虛實(shí)地址轉(zhuǎn)換過程,在眾多線程并發(fā)訪問鎖變量時(shí)能夠極大地提高鎖變量的訪問性能。本實(shí)施例中,訪問控制器2通過地址/數(shù)據(jù)通路和控制通路分別與眾核處理器上各個(gè)處理器核的取存單元直接相連,地址/數(shù)據(jù)通路為64位;控制通路為16位,其中6位用于表示處理器核的編號(hào),I位用于讀寫表示,9位用于鎖變量尋址。訪問控制器2對(duì)控制通路中傳來的6位進(jìn)行鎖變量尋址的地址進(jìn)行擴(kuò)展,后面增加6個(gè)0,因?yàn)殒i變量按64位整數(shù)處理。訪問控制器2主要包括兩個(gè)方面的訪問控制:2k)片上處理器核對(duì)存儲(chǔ)體I的讀取控制。2B)存儲(chǔ)體I和片外主存儲(chǔ)器數(shù)據(jù)傳輸控制。訪問控制器2針對(duì)各個(gè)處理器核的取存單元(LSU)對(duì)存儲(chǔ)體I的并發(fā)訪問需求,訪問控制器2實(shí)現(xiàn)了如下控制機(jī)制1)訪問請(qǐng)求仲裁,保證同一時(shí)刻只能接收到來自一個(gè)來自取存單元(LSU)的訪問請(qǐng)求;2)將取存單元(LSU)的讀寫請(qǐng)求在訪問控制器2中的訪問隊(duì)列中排隊(duì);3)按照先來先服務(wù)的策略執(zhí)行訪問隊(duì)列中的訪問請(qǐng)求。存儲(chǔ)體I的作用是在高并發(fā)強(qiáng)同步應(yīng)用程序運(yùn)行時(shí)存儲(chǔ)應(yīng)用程序空間中的鎖變量;因此,在程序加載時(shí)需要將程序中鎖變量所在的存儲(chǔ)器頁面的內(nèi)容加載到存儲(chǔ)體I中;本實(shí)施例存儲(chǔ)體I通過直接存儲(chǔ)器訪問控制器(DMA控制器)與片外主存儲(chǔ)器相連,操作系統(tǒng)在加載應(yīng)用程序時(shí)以直接存儲(chǔ)器訪問的方式將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)酱鎯?chǔ)體I中。本實(shí)施例借助直接存儲(chǔ)器訪問控制器(DMA控制器)實(shí)現(xiàn)了存儲(chǔ)體I和片外主存儲(chǔ)器之間的存儲(chǔ)器直接傳輸(DMA)機(jī)制,將片外主存儲(chǔ)器中的頁面按照直接存儲(chǔ)器訪問機(jī)制直接拷貝到存儲(chǔ)體I中,因此存儲(chǔ)體I和片外主存儲(chǔ)器數(shù)據(jù)傳輸控制不需要依賴眾核處理器芯片上處理器核,傳輸效率更高。如圖4所示,本實(shí)施例在共享存儲(chǔ)眾核處理器中設(shè)計(jì)了基于全局編址的鎖變量全局編址存儲(chǔ)裝置,即圖4中的全局編址片上鎖存器(Global Addressing On-Chip MemoryfOr Lock,為了描述方便,下文中簡(jiǎn)稱為GA0CM0L)。本實(shí)施例GA0CM0L (GA0CM0L的存儲(chǔ)體I)通過該直接存儲(chǔ)器訪問控制器(即圖4中的DMA)與片外主存儲(chǔ)器相連。GA0CM0L包括在眾核處理器芯片上設(shè)計(jì)的獨(dú)立于各級(jí)高速緩存的專門用來存儲(chǔ)鎖變量的存儲(chǔ)體I和用于在應(yīng)用程序運(yùn)行時(shí)控制對(duì)鎖變量的讀取和修改的訪問控制器2。存儲(chǔ)體I專門用于存儲(chǔ)高并發(fā)應(yīng)用中的鎖變量,存儲(chǔ)體I的地址空間處于用戶程序空間并全局編址,占用全局虛地址空間中的一部分,并用獨(dú)立的轉(zhuǎn)換后援緩沖(TLB)表項(xiàng)進(jìn)行虛實(shí)地址轉(zhuǎn)換,在程序運(yùn)行期間不進(jìn)行虛存頁面替換操作,其中存儲(chǔ)的鎖變量一直存在于處理器芯片上,對(duì)其中鎖變量的訪問也旁路各個(gè)處理器核內(nèi)部的高速緩存。本實(shí)施例在傳統(tǒng)的共享存儲(chǔ)眾核處理器基礎(chǔ)上,在眾核處理器芯片上實(shí)現(xiàn)全局編址的用于存儲(chǔ)頻繁訪問的鎖變量的GA0CM0L,并實(shí)現(xiàn)眾核處理器對(duì)存儲(chǔ)體I的并發(fā)訪問機(jī)制、片上鎖存空間內(nèi)存儲(chǔ)器頁面的轉(zhuǎn)換后援緩沖(TLB)表項(xiàng)控制機(jī)制、存儲(chǔ)器頁面裝載入片上的控制機(jī)制。GA0CM0L和處理器上各個(gè)處理器核的取存單元(LSU)間實(shí)現(xiàn)共享的數(shù)據(jù)通路,訪問控制器2則主要實(shí)現(xiàn)LSU對(duì)GA0CM0L訪問的控制機(jī)制、GA0CM0L訪問片外存儲(chǔ)器的控制機(jī)制。針對(duì)LSU對(duì)GA0CM0L的并發(fā)訪問需求,訪問控制器2實(shí)現(xiàn)了如下控制機(jī)制1)GA0CM0L訪問控制器中實(shí)現(xiàn)訪問請(qǐng)求仲裁,保證同一時(shí)刻只能接收到來自一個(gè)LSU的訪問請(qǐng)求;2)LSU的讀寫請(qǐng)求在GA0CM0L的訪問控制器中排隊(duì);3)按照先來先服務(wù)的策略執(zhí)行LSU發(fā)來的訪問請(qǐng)求。GA0CM0L的作用是在高并發(fā)強(qiáng)同步應(yīng)用程序運(yùn)行時(shí),存儲(chǔ)應(yīng)用程序空間中的鎖變量;因此,在程序加載時(shí)需要將程序中鎖變量所在的存儲(chǔ)器頁面的內(nèi)容加載到GA0CM0L中;本實(shí)施例在GA0CM0L的訪問控制器中設(shè)計(jì)了存儲(chǔ)器直接傳輸機(jī)制,將主存儲(chǔ)器中的頁面按照直接存儲(chǔ)器訪問機(jī)制直接拷貝到GA0CM0L的存儲(chǔ)體I中。本實(shí)施例中,應(yīng)用程序構(gòu)造和加載的過程具體包括4.1、應(yīng)用程序構(gòu)造過程中,需要特殊標(biāo)識(shí)鎖變量,實(shí)現(xiàn)方式是在程序語言中對(duì)鎖變量采用獨(dú)特的說明方式,與傳統(tǒng)的將鎖變量聲明為一般的整數(shù)變量相區(qū)別;4. 2、編譯器識(shí)別鎖變量的特殊說明,在地址空間分配中,將鎖變量單獨(dú)分配到虛存空間中;4. 3、鏈接器將整個(gè)程序的鎖變量所在的存儲(chǔ)空間管理為獨(dú)立的程序數(shù)據(jù)段;4. 4、應(yīng)用程序加載時(shí),加載器將鎖變量所在的虛存儲(chǔ)器頁面?zhèn)鬏數(shù)酱鎯?chǔ)體I中,并設(shè)置相應(yīng)的頁表項(xiàng);4. 5、應(yīng)用程序運(yùn)行過程中,對(duì)鎖變量的訪問直接映射到對(duì)存儲(chǔ)體I的訪問。程序加載時(shí),多線程共享的鎖變量所在的存儲(chǔ)器頁面由操作系統(tǒng)通過片上鎖存控制機(jī)制加載到眾核處理器芯片上的鎖存空間中,并設(shè)置轉(zhuǎn)換后援緩沖(TLB)表項(xiàng)強(qiáng)制指定鎖變量所在地址的虛實(shí)轉(zhuǎn)換時(shí)直接映射到片上鎖存空間(存儲(chǔ)體I)中;程序運(yùn)行時(shí),LSU通過訪問控制器2實(shí)現(xiàn)對(duì)存儲(chǔ)器I的讀取和修改,多個(gè)線程(運(yùn)行于相同或不同處理器核上)對(duì)共享的鎖變量的讀/寫操作直接映射為對(duì)片上鎖存空間(存儲(chǔ)體I)相應(yīng)位置的讀寫;鎖變量不緩存在任何一級(jí)高速緩存中。在應(yīng)用程序結(jié)束時(shí),刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),結(jié)束鎖變量所在頁面虛地址到存儲(chǔ)體I的映射。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法,其特征在于實(shí)施步驟如下 1)預(yù)先在眾核處理器芯片上建立用于存儲(chǔ)鎖變量的全局編址片上鎖存儲(chǔ)器,將所述全局編址片上鎖存儲(chǔ)器分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接應(yīng)用程序時(shí)將鎖變量分配到鎖變量獨(dú)占的地址空間; 2)加載應(yīng)用程序時(shí),操作系統(tǒng)將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)剿鋈志幹菲湘i存儲(chǔ)器中,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與所述全局編址片上鎖存儲(chǔ)器的虛實(shí)地址轉(zhuǎn)換關(guān)系;在應(yīng)用程序訪問鎖變量時(shí),旁路各個(gè)處理器核內(nèi)部的高速緩存,將各個(gè)處理器核對(duì)所述全局編址片上鎖存儲(chǔ)器的訪問請(qǐng)求進(jìn)行仲裁,將仲裁后得到的唯一的訪問請(qǐng)求加入所述全局編址片上鎖存儲(chǔ)器的訪問隊(duì)列,并根據(jù)先來先服務(wù)的策略執(zhí)行所述訪問隊(duì)列中的訪問請(qǐng)求對(duì)鎖變量進(jìn)行讀取或者修改;在應(yīng)用程序結(jié)束時(shí),刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),結(jié)束鎖變量所在頁面虛地址到所述全局編址片上鎖存儲(chǔ)器的映射。
2.根據(jù)權(quán)利要求1所述的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法,其特征在于所述步驟2)中將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)剿鋈志幹菲湘i存儲(chǔ)器中具體是指以直接存儲(chǔ)器訪問的方式將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)剿鋈志幹菲湘i存儲(chǔ)器中。
3.根據(jù)權(quán)利要求1或2所述的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法,其特征在于所述全局編址片上鎖存儲(chǔ)器通過控制通路和地址/數(shù)據(jù)通路分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;所述控制通路為16位,其中6位用于表示處理器核的編號(hào),I位用于讀寫表示,9位用于鎖變量尋址;所述地址/數(shù)據(jù)通路為64位。
4.根據(jù)權(quán)利要求3所述的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法,其特征在于所述全局編址片上鎖存儲(chǔ)器的存儲(chǔ)容量是眾核處理器的存儲(chǔ)器頁面大小的整數(shù)倍。
5.一種面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置,其特征在于包括 存儲(chǔ)體(1),用于存儲(chǔ)應(yīng)用程序的鎖變量; 訪問控制器(2 ),用于在應(yīng)用程序運(yùn)行時(shí)控制對(duì)鎖變量的讀取和修改; 所述存儲(chǔ)體(1)和訪問控制器(2 )設(shè)于眾核處理器芯片上,所述存儲(chǔ)體(I)通過訪問控制器(2)分別與眾核處理器上各個(gè)處理器核的取存單元直接相連;構(gòu)造應(yīng)用程序時(shí)在應(yīng)用程序中對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接應(yīng)用程序時(shí)將鎖變量分配到鎖變量獨(dú)占的地址空間;加載應(yīng)用程序時(shí),操作系統(tǒng)將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從主存儲(chǔ)器傳輸?shù)酱鎯?chǔ)體(1)中,通過構(gòu)建應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng)指定鎖變量所在存儲(chǔ)器頁面虛地址與存儲(chǔ)體(1)的虛實(shí)地址轉(zhuǎn)換關(guān)系;在應(yīng)用程序訪問鎖變量時(shí),所述訪問控制器(2)旁路各個(gè)處理器核內(nèi)部的高速緩存,將各個(gè)處理器核的鎖變量訪問請(qǐng)求進(jìn)行仲裁將仲裁后得到的唯一的訪問請(qǐng)求加入訪問隊(duì)列,并根據(jù)先來先服務(wù)的策略執(zhí)行所述訪問隊(duì)列中的訪問請(qǐng)求對(duì)鎖變量進(jìn)行讀取或者修改;在應(yīng)用程序結(jié)束時(shí),所述訪問控制器(2)刪除應(yīng)用程序?qū)S玫霓D(zhuǎn)換后援緩沖表項(xiàng),結(jié)束鎖變量所在頁面虛地址到存儲(chǔ)體(1)的映射。
6.根據(jù)權(quán)利要求5所述的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置,其特征在于所述存儲(chǔ)體(1)通過直接存儲(chǔ)器訪問控制器與片外主存儲(chǔ)器相連,所述操作系統(tǒng)在加載應(yīng)用程序時(shí)以直接存儲(chǔ)器訪問的方式將應(yīng)用程序的鎖變量所在的虛擬存儲(chǔ)器頁面從片外主存儲(chǔ)器傳輸?shù)酱鎯?chǔ)體(I)中。
7.根據(jù)權(quán)利要求5或6所述的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置,其特征在于所述訪問控制器(2)通過地址/數(shù)據(jù)通路和控制通路分別與眾核處理器上各個(gè)處理器核的取存單元直接相連,所述地址/數(shù)據(jù)通路為64位;所述控制通路為16位,其中6位用于表示處理器核的編號(hào),I位用于讀寫表示,9位用于鎖變量尋址。
8.根據(jù)權(quán)利要求7所述的面向眾核處理器的片上鎖變量全局編址存儲(chǔ)裝置,其特征在于所述存儲(chǔ)體(I)的存儲(chǔ)容量是眾核處理器的存儲(chǔ)器頁面大小的整數(shù)倍。
全文摘要
本發(fā)明公開了一種面向眾核處理器的片上鎖變量全局編址存儲(chǔ)方法及裝置,方法步驟如下1)預(yù)先建立全局編址片上鎖存儲(chǔ)器;構(gòu)造應(yīng)用程序時(shí)對(duì)鎖變量進(jìn)行標(biāo)注,在編譯和鏈接時(shí)將鎖變量分配到獨(dú)占的地址空間;2)加載應(yīng)用程序時(shí),將鎖變量所在頁面用DMA方式傳入全局編址片上鎖存儲(chǔ)器;在應(yīng)用程序訪問鎖變量時(shí)將訪問請(qǐng)求仲裁并加入訪問隊(duì)列,根據(jù)先來先服務(wù)的策略執(zhí)行訪問請(qǐng)求;在應(yīng)用程序結(jié)束時(shí)結(jié)束鎖變量的映射;裝置包括設(shè)于眾核處理器芯片上的用于存儲(chǔ)應(yīng)用程序的鎖變量的存儲(chǔ)體和用于在應(yīng)用程序運(yùn)行時(shí)控制對(duì)鎖變量的讀取和修改的訪問控制器。本發(fā)明具有鎖變量并發(fā)訪問性能高、鎖變量訪問延遲低、鎖變量并發(fā)訪問開銷小、使用簡(jiǎn)單方便的優(yōu)點(diǎn)。
文檔編號(hào)G06F12/08GK103034593SQ20121053085
公開日2013年4月10日 申請(qǐng)日期2012年12月11日 優(yōu)先權(quán)日2012年12月11日
發(fā)明者李春江, 王永文, 楊燦群, 馮華, 高軍, 唐滔 申請(qǐng)人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1