用于仿真共享內(nèi)存架構(gòu)中的長延遲操作的架構(gòu)的制作方法
【專利摘要】用于仿真共享內(nèi)存(ESM)架構(gòu)的處理器架構(gòu)布置,包括若干多線程處理器,優(yōu)選地多個(gè)多線程處理器,每個(gè)多線程處理器設(shè)置有交錯(cuò)的線程間流水線,其中流水線包括多個(gè)串聯(lián)布置的用于對(duì)數(shù)據(jù)執(zhí)行算數(shù)、邏輯以及可選地其它操作的多個(gè)功能單元,其中較低延遲的一個(gè)或多個(gè)功能單元被放置在所述流水線中位于內(nèi)存訪問區(qū)段之前,并且用于執(zhí)行與較長延遲相關(guān)聯(lián)的較復(fù)雜操作的一個(gè)或多個(gè)長延遲單元(LLU)被放置成操作上與內(nèi)存訪問區(qū)段并行。在一些實(shí)施方案中,流水線可以包含與內(nèi)存訪問區(qū)段并行的多個(gè)分支,每個(gè)分支包含至少一個(gè)長延遲單元。
【專利說明】
用于仿真共享內(nèi)存架構(gòu)中的長延遲操作的架構(gòu)
技術(shù)領(lǐng)域
[0001]本發(fā)明總體上涉及計(jì)算機(jī)科學(xué)和計(jì)算機(jī)架構(gòu)。具體而言,本發(fā)明涉及與仿真共享內(nèi)存架構(gòu)有關(guān)的長延遲操作的執(zhí)行。
【背景技術(shù)】
[0002]在SMA(共享內(nèi)存架構(gòu))中,數(shù)據(jù)和程序分區(qū)通常通過將需要多線程處理的數(shù)據(jù)放進(jìn)共享內(nèi)存并且將程序更加獨(dú)立地劃分給處理器來實(shí)現(xiàn),由此使得與消息傳遞(MPA)架構(gòu)相比而言編程更容易,在消息傳遞架構(gòu)中,處理始終在本地發(fā)生并且程序員相應(yīng)地負(fù)責(zé)將數(shù)據(jù)四處移動(dòng)。遺憾地是,大多數(shù)SMA使用由多個(gè)互聯(lián)的處理器-緩存器對(duì)組成的分布式共享內(nèi)存架構(gòu),這使得緩存器一致性(以及延時(shí)容許度)和同步性維護(hù)非常昂貴。這甚至可能破壞它們?cè)谕ㄐ琶芗蛦栴}方面的表現(xiàn)。
[0003]為解決例如上述問題,已經(jīng)引入了仿真共享內(nèi)存(ESM)或共享內(nèi)存仿真、架構(gòu)。它們包括經(jīng)由高吞吐互通網(wǎng)絡(luò)連接到通常一致且同步可訪問的共享內(nèi)存的一組多線程處理器。通過重疊的正在進(jìn)行的內(nèi)存引用隱藏了內(nèi)存系統(tǒng)延時(shí),并且建立了保證機(jī)器指令級(jí)的同步性的特殊的低成本同步機(jī)制。雖然實(shí)際的硬件架構(gòu)包括物理分布式內(nèi)存,但是ESM系統(tǒng)為用戶提供了理想的共享內(nèi)存感知。從理論的角度看,這些架構(gòu)試圖模擬抽象的并行隨機(jī)存取機(jī)(PRAM),該并行隨機(jī)存取機(jī)由于它的簡單性和表現(xiàn)力而通常被用作用于描述和分析計(jì)算問題的內(nèi)在并行性以及執(zhí)行并行算數(shù)的性能和成本的模型。PRAM模型通常指的是一組在相同時(shí)鐘下工作的處理器以及與處理器連接的統(tǒng)一單步可訪問的共享內(nèi)存。
[0004]因此,ESM是一種解決關(guān)于片上多處理器(CMP)的可編程性和性能可擴(kuò)展性問題的可行技術(shù),因?yàn)镋SM產(chǎn)生了在機(jī)器指令的執(zhí)行中隱含的同步性、有效的延時(shí)隱藏技術(shù)以及足夠的帶寬來路由即使具有大量隨機(jī)和并發(fā)訪問的工作負(fù)荷的所有內(nèi)存引用。同步執(zhí)行被認(rèn)為使編程更加容易,因?yàn)槌绦騿T不需要在每次全局內(nèi)存訪問后明確地同步執(zhí)行的線程,而是能夠依靠硬件來自動(dòng)地處理此事,然而例如在消息傳遞架構(gòu)(MPA)中,程序員負(fù)責(zé)明確地定義通信、同步子任務(wù)以及描述線程之間數(shù)據(jù)和程序化分,這使得MPA編程困難。在共享內(nèi)存仿真中使用的延時(shí)隱藏使用高吞吐計(jì)算方案,其中當(dāng)線程引用全局共享內(nèi)存時(shí)執(zhí)行其他線程。由于吞吐量計(jì)算方案采用從可用線程級(jí)并行中讀取的并行寬松度,該吞吐量計(jì)算方案被認(rèn)為與傳統(tǒng)的對(duì)稱多處理器和非統(tǒng)一內(nèi)存訪問(NUMA)系統(tǒng)而言提供了增強(qiáng)的可擴(kuò)展性,所述傳統(tǒng)的對(duì)稱多處理器和非統(tǒng)一內(nèi)存訪問(NUMA)系統(tǒng)依靠窺探或基于目錄的緩存器一致性機(jī)制并且因此遭受到有限帶寬或目錄訪問延時(shí)以及繁重的一致性通信維護(hù)的問題。
[0005]最近,已經(jīng)提出可擴(kuò)展的ESM架構(gòu)包含步驟緩存器(step caches)來實(shí)現(xiàn)PRAM的并行讀并行寫(CRCW)內(nèi)存訪問變型,這進(jìn)一步地簡化了編程并且在某些情況下通過對(duì)數(shù)因子增強(qiáng)了性能。在附著至步驟緩存器以約束步驟緩存器的關(guān)聯(lián)性的暫存器的幫助下還實(shí)現(xiàn)了一種支持常量執(zhí)行時(shí)間多(-前置)操作的機(jī)制,該機(jī)制實(shí)現(xiàn)PRAM模型的更強(qiáng)大的多操作并行讀并行寫(MCRCW)變型。例如,出版物1:M.Forsell,Step Caches一a Novel Approach toConcurrent Memory Access on Shared Memory MP-SOCs(步驟緩存器--一種在共享內(nèi)存多處理器-片上系統(tǒng)上并行內(nèi)存訪問的新方法),第23次IEEE NORCHIP會(huì)議記錄,2005年11 月21-22 日,Oulu,芬蘭,74-77; 2:M.Forsell ,Reducing the associativity and sizeof step caches in CRCff operat1n(減少CRCW操作中步驟緩存器的關(guān)聯(lián)性和大小),第8屆并行分布式計(jì)算模型研究進(jìn)展研討會(huì)(聯(lián)合第20屆IEEE國際并行分布式處理專題研討會(huì),IPDPS,06),2006年4月25 日,Rhodes,希臘;3:M.Forsell ,Realizing Mult1perat1nsfor Step Cached MP_S0Cs(實(shí)現(xiàn)用于步驟緩存多處理器-片上系統(tǒng)的多操作),2006年片上系統(tǒng)(S0C’06)國際研討會(huì)會(huì)議記錄,2006年11月14-16日,Tampere,芬蘭,77-82.;4:M.Forsell,TOTAL ECLIPSE—An Efficient Architectural Realizat1n of theParallel Random Access Machine(T0TAL ECLIPSE一一種高效的并行隨機(jī)存取機(jī)的結(jié)構(gòu)實(shí)現(xiàn)),由Alberto Ros主編的Parallel and Distributed Computing(并行與分布式計(jì)算),INTECH,維也納,2010,39-64 ;以及5:M.ForselI和J.Roivainen,Supporting OrderedMultiprefix Operat1ns in Emulated Shared Memory CMPs(在仿真共享內(nèi)存CMP中支持有序多前置操作),2011年并行和分布式處理技術(shù)與應(yīng)用國際會(huì)議(PDPTA’ll)的會(huì)議記錄,2011年7月18-21日,洛杉磯,美國,506-512,上述出版物考慮了這樣的解決方案的不同方面并且它們的全部內(nèi)容通過引用方式納入本文。多(_前置)操作能夠被定義為用于許多基礎(chǔ)操作(例如ADD、SUB、MAX等),并且由于能夠表達(dá)并行算法,多(-前置)操作被認(rèn)為是并行主類型(primitives)。多(-前置)操作能夠用于被多個(gè)處理器同時(shí)訪問的同步和并行數(shù)據(jù)結(jié)構(gòu),而沒有競爭情況和異步執(zhí)行線程的架構(gòu)的其他異常情況。
[0006]圖1中,示出了在硅平臺(tái)上仿真共享內(nèi)存的可擴(kuò)展架構(gòu)的高級(jí)例示圖。該架構(gòu)包括經(jīng)由物理可擴(kuò)展高帶寬互聯(lián)網(wǎng)絡(luò)108連接到物理上分布式但是邏輯上共享的(數(shù)據(jù))內(nèi)存皿1、]?2、]\0、‘"、]\^112的一組處理器(核)?1、?2、?3、‘"、??102。與數(shù)據(jù)內(nèi)存112連接的主動(dòng)內(nèi)存單元110能夠被認(rèn)為是用于處理內(nèi)存引用的內(nèi)存控制邏輯單元。例如,主動(dòng)內(nèi)存單元110被布置用于管理在例如多(_前置)操作期間涉及其中多個(gè)內(nèi)存引用指向相同內(nèi)存位置的情況的計(jì)算。指令內(nèi)存模塊Ι1、Ι2、Ι3、...、Ιρ 104被配置用于為每個(gè)處理器102存儲(chǔ)程序代碼。為了通過基于分布式內(nèi)存的實(shí)現(xiàn)方式有效地仿真共享內(nèi)存,處理器102是利用Tp-階段循環(huán)的、交錯(cuò)的線程間的流水線(Tp多網(wǎng)絡(luò)平均延時(shí))變成多線程的。PRAM模型與架構(gòu)鏈接,使得流水線中完整的周期通常對(duì)應(yīng)于單個(gè)PRAM步驟。在多線程執(zhí)行的步驟中(關(guān)于流水線整體,即包括實(shí)際執(zhí)行階段的所有流水線階段),CMP的每個(gè)處理器的每個(gè)線程執(zhí)行包括至多一個(gè)共享內(nèi)存引用子指令的指令。因此步驟持續(xù)多個(gè)、至少Τρ+l個(gè)時(shí)鐘周期。
[0007]在所描述的架構(gòu)中,步驟緩存器是其中數(shù)據(jù)僅持續(xù)有效到正在進(jìn)行的多線程執(zhí)行步驟結(jié)束的總體關(guān)聯(lián)式內(nèi)存緩沖區(qū)。步驟緩存器對(duì)并發(fā)訪問的主要貢獻(xiàn)在于它們對(duì)于每個(gè)引用內(nèi)存位置步進(jìn)式地過濾掉除了首次引用之外的所有東西。這將每個(gè)位置的請(qǐng)求數(shù)量從P Tp減少到P,假定Tp多P,允許在單端口內(nèi)存模塊上順序處理所述請(qǐng)求。暫存器是如下的可尋址內(nèi)存緩沖區(qū),其在處理用于多操作的實(shí)際的處理器內(nèi)部和處理器間的計(jì)算的步驟緩存器以及最少的核上與核外ALU(算數(shù)邏輯單元)的幫助下,用于存儲(chǔ)內(nèi)存訪問數(shù)據(jù)以保持在實(shí)現(xiàn)多操作中受限制的步驟緩存器的關(guān)聯(lián)性。暫存器可以與步驟緩存器聯(lián)合以建立所謂的暫存器步驟緩存器單元S1、S2、S3、…、Sp 106。
[0008]上述方案的一個(gè)基礎(chǔ)的想法實(shí)際是為每個(gè)處理器核102分配一組以交錯(cuò)的方式高效執(zhí)行的線程并且隱藏網(wǎng)絡(luò)延時(shí)。隨著一個(gè)線程產(chǎn)生內(nèi)存引用,所執(zhí)行的線程被改變并且下一個(gè)線程能夠產(chǎn)生其內(nèi)存請(qǐng)求依次類推。只要線程的內(nèi)存引用的應(yīng)答在線程返回執(zhí)行前到達(dá)處理器核,將不發(fā)生內(nèi)存延遲。這需要網(wǎng)絡(luò)帶寬足夠高并且在流水線內(nèi)存訪問通信中能夠避開熱點(diǎn)。例如,通過使用在步驟間的彈性同步波能夠保證接連指令間的同步。
[0009]圖2以200示出了ESMCMP架構(gòu)的一個(gè)實(shí)例,該架構(gòu)包含例如與數(shù)據(jù)內(nèi)存模塊112和暫存器206B連接的上述主動(dòng)內(nèi)存單元112B(具有ALU以及指令讀取器)。網(wǎng)絡(luò)108可以是充當(dāng)作為具有開關(guān)108B的高帶寬流水線內(nèi)存系統(tǒng)的網(wǎng)格狀互聯(lián)網(wǎng)絡(luò)。當(dāng)線程經(jīng)由網(wǎng)絡(luò)108引用相同的可訪問的分布式共享內(nèi)存時(shí),通過執(zhí)行其他線程來隱藏內(nèi)存訪問延時(shí)。通過有效死鎖自由互通架構(gòu)來避免通信中引用和熱點(diǎn)的堵塞,該架構(gòu)的特征在于具有高帶寬(對(duì)分帶寬多P/4)以及在分布式內(nèi)存模塊上內(nèi)存位置隨機(jī)哈希(hashing)。對(duì)應(yīng)于其中每個(gè)線程執(zhí)行單個(gè)指令的單個(gè)PRAM步驟,指令執(zhí)行逐步發(fā)生。
[0010]盡管具有上述許多優(yōu)點(diǎn),ESM系統(tǒng)已經(jīng)顯現(xiàn)出難于以真正最佳方式實(shí)現(xiàn)。利用步驟緩存器和暫存器技術(shù)支持猛烈并發(fā)的內(nèi)存訪問和多(前置)操作的物理可行內(nèi)存單元(MU)很容易理解為強(qiáng)大的仿真共享內(nèi)存架構(gòu)如REPLICE(消除片上多處理器的性能和可編程性局限的架構(gòu))的一個(gè)關(guān)鍵組成部分,所述REPLICA本質(zhì)上是一種可配置的ESM。例如,這樣的MU可以被配置成將傳出的內(nèi)存引用發(fā)送到共享內(nèi)存系統(tǒng),并且等待和接收來自該共享內(nèi)存系統(tǒng)的可能的應(yīng)答。
[0011]圖3以300示出了利用例如步驟緩存器的典型MCRCWESM處理器的高級(jí)方框圖和流水線。在基于步驟緩存器的MCRCw(C)ESM CMP中的處理器包括a ALU、M內(nèi)存單元(MU)、分布式或統(tǒng)一寄存器塊、序列發(fā)生器和一些膠合邏輯。圖中,Ax 302指的是ALU x,IF 308指的是指令讀取邏輯,MEM 304指的是內(nèi)存單元級(jí)數(shù),OS 306指的是操作數(shù)選擇邏輯,以及SEQ 310指的是序列器。如圖中所示,ALU 302邏輯上位于內(nèi)存單元等待段之前和之后。
[0012]一般而言,在現(xiàn)代處理器架構(gòu)中由ALU負(fù)責(zé)的基于整數(shù)的算術(shù)運(yùn)算包括加、減、乘以及除。而且,ALU通常負(fù)責(zé)執(zhí)行邏輯運(yùn)算,該邏輯運(yùn)算可以包括將例如兩個(gè)數(shù)據(jù)元素互相比較以區(qū)分哪個(gè)更小/更大或它們是否相等,以及根據(jù)這種比較的結(jié)果做出相關(guān)的決定。
[0013]然而,可以分配專用功能單元用于執(zhí)行例如涉及特別復(fù)雜性的計(jì)算的某些具體任務(wù)和操作。這種復(fù)雜或者其他方面特殊的操作的執(zhí)行可能要求額外的邏輯或硬件,并且例如與基礎(chǔ)ALU操作相比,需要更多數(shù)量的時(shí)鐘周期或大體上只是需要更長時(shí)間完成,S卩,導(dǎo)致較長延遲。
[0014]在處理器架構(gòu)中,可以設(shè)置數(shù)個(gè)并列處理路徑,每個(gè)路徑潛在地設(shè)置有利用在該具體路徑上布置的硬件實(shí)施的特殊目的或?qū)iT任務(wù)。然而,由相關(guān)聯(lián)元件和路徑中發(fā)生的相關(guān)處理導(dǎo)致的延遲通常會(huì)增加處理器流水線結(jié)構(gòu)中指令進(jìn)程的總體執(zhí)行時(shí)間。
【發(fā)明內(nèi)容】
[0015]本發(fā)明的目的在于至少緩解通過已知的ESM布置還未完全滿意解決的一個(gè)或多個(gè)上述問題,并且提供用于為此有效地執(zhí)行長延遲操作諸如除法或應(yīng)用專用操作的可行解決方案。
[0016]所述目的通過根據(jù)本發(fā)明的處理器架構(gòu)的實(shí)施方案來實(shí)現(xiàn)。
[0017]因此,在本發(fā)明的一個(gè)方面,一種用于仿真共享內(nèi)存(ESM)架構(gòu)的處理器架構(gòu)布置,包括:
[0018]若干多線程處理器,優(yōu)選地多個(gè)多線程處理器,每個(gè)多線程處理器設(shè)置有交錯(cuò)的線程間流水線,
[0019]其中流水線包括多個(gè)串聯(lián)布置的用于對(duì)數(shù)據(jù)執(zhí)行算數(shù)、邏輯以及可選地其它操作的多個(gè)功能單元,其中較低延遲的一個(gè)或多個(gè)功能單元被放置在所述流水線中位于內(nèi)存訪問區(qū)段之前,并且用于執(zhí)行與較長延遲相關(guān)聯(lián)的較復(fù)雜操作的一個(gè)或多個(gè)長延遲單元被放置成操作上與內(nèi)存訪問區(qū)段并行。
[0020]可選地,還存在多個(gè)功能單元中的一個(gè)或多個(gè)功能單元功能上被定位在內(nèi)存訪問區(qū)段之后,這些一個(gè)或多個(gè)功能單元優(yōu)選至少大體上具有較低延遲,即關(guān)于至少大部分所述單元。
[0021]在一個(gè)實(shí)施方案中,多個(gè)功能單元包括若干ALU。
[0022]在另一個(gè)補(bǔ)充或替代實(shí)施方案中,包括至少一個(gè)單元的另外若干個(gè)長延遲單元被放置成操作上與上述一個(gè)或多個(gè)長延遲單元并行??蛇x地,流水線從而至少在內(nèi)存訪問區(qū)段(與其并行)期間可以包含兩個(gè)或更多個(gè)分支或分支部分,其中,每個(gè)分支包括被配置成在內(nèi)存訪問期間操作的至少一個(gè)專用長延遲單元。邏輯上,這些相互并行的分支可以被定位成與內(nèi)存訪問區(qū)段之前和之后的剩余功能單元串聯(lián)。
[0023]在另外一個(gè)實(shí)施方案中,所包括的長延遲單元中的至少兩個(gè)或更多個(gè)鏈接在一起成為至少一個(gè)鏈,其中數(shù)據(jù)可以從一個(gè)單元傳遞至另一個(gè)單元。鏈接的功能單元可被配置成例如對(duì)輸入數(shù)據(jù)(操作數(shù))執(zhí)行相互不同的操作。
[0024]然而,在另外一個(gè)實(shí)施方案中,通過預(yù)定(子)指令操作字段和指令或“指令字”中設(shè)置的關(guān)聯(lián)值控制至少部分功能單元。
[0025]在又一個(gè)實(shí)施方案中,用于功能單元的操作數(shù)是在流水線的操作數(shù)選擇階段中根據(jù)指令(字)中給定的操作數(shù)選擇字段(數(shù)值)確定的。用于功能單元的操作數(shù)還可以從同一鏈中連接至該功能單元的前一個(gè)功能單元繼承。功能單元之間的連接可以通過經(jīng)由指令字控制的若干多路復(fù)用器實(shí)現(xiàn)。
[0026]在另外一個(gè)實(shí)施方案中,至少一個(gè)長延遲單元被配置成執(zhí)行除法、平方根或應(yīng)用專用操作。長延遲單元可以補(bǔ)充(更傳統(tǒng)的)ALU,帶來各種各樣的算數(shù)或大體上帶來對(duì)流水線和討論的整個(gè)處理器架構(gòu)的操作支持。
[0027]在另外一個(gè)實(shí)施方案中,至少一個(gè)長延遲單元內(nèi)部有流水線。
[0028]本發(fā)明的用途是根據(jù)實(shí)施方案從各種特性中顯露出來的。本發(fā)明基本上允許在仿真共享內(nèi)存計(jì)算機(jī)中單個(gè)步驟的多線程內(nèi)執(zhí)行長延遲操作(諸如除法),即便這些操作通常需要多個(gè)執(zhí)行步驟。因?yàn)榱魉€的內(nèi)存等待區(qū)段可以實(shí)際上與實(shí)現(xiàn)長延遲操作的邏輯融合,程序員領(lǐng)會(huì)在單個(gè)步驟中執(zhí)行的長延遲操作,并且在任何情況下,由執(zhí)行所引起的延遲隱藏在由內(nèi)存訪問所引起的延遲內(nèi)。所獲取的性能增加方面的益處在例如基于多核處理器計(jì)算機(jī)和它們的編程的背景下是明顯的。
[0029]短語“若干(anumber of)”在本文中指從一(I)開始的任何正整數(shù),例如一、二或
_- O
[0030]短語“多個(gè)(aplurality of)”在文中指從二(2)開始的任何正整數(shù),例如二、三或四。
[0031 ]術(shù)語“操作上(operatively)”、“邏輯上(logically)”以及“功能上(funct1nally)”在本文中可替換地使用,尤其是與“并行(parallelism)”、“并行元件(parallel elements)”或“并行功能(parallel funct1nalities)”相關(guān)的短語連用時(shí),以區(qū)分于物理的或者僅物理的并行,即單元的僅物理并行布局。
[0032]在從屬權(quán)利要求中公開了本發(fā)明的不同實(shí)施方案。
【附圖說明】
[0033]接下來,將參照附圖詳細(xì)地描述本發(fā)明,在附圖中:
[0034]圖1為在硅平臺(tái)上仿真共享內(nèi)存的可行的可擴(kuò)展架構(gòu)的方框圖。
[0035]圖2為可行的ESM架構(gòu)(本質(zhì)上是CMPESM架構(gòu))的另一個(gè)示意圖。
[0036]圖3為MCRCWESM處理器的一個(gè)實(shí)施方案的高級(jí)方框圖和流水線圖示。
[0037]圖4示出了根據(jù)本發(fā)明的流水線架構(gòu)的一個(gè)實(shí)施方案。
[0038]圖5示出了根據(jù)本發(fā)明的流水線架構(gòu)的另一個(gè)實(shí)施方案。
【具體實(shí)施方式】
[0039]在上文中已結(jié)合與本發(fā)明的由來相關(guān)的【背景技術(shù)】和歷史數(shù)據(jù)兩者的描述考慮了圖1至圖3。
[0040]圖4示出了本發(fā)明的一個(gè)實(shí)施方案,包括ESM流水線架構(gòu)400,該ESM流水線架構(gòu)400具有多個(gè)(N個(gè))長延遲單元(LLU)402b以及其他功能單元(FU)諸如(普通或較低延遲)ALU402、402c。這些其他功能單元諸如ALU可以放置在402之前和402c之后的內(nèi)存訪問區(qū)段412,從而在LLU 402b處。
[0041 ]圖中功能單元402、402b、402c的布局僅僅是示例性的,并且在其他實(shí)施方案中,其放置位置、數(shù)量和性質(zhì)/延遲可以不同于所示出的放置位置、數(shù)量和性質(zhì)/延遲。功能單元402、402b、402c已設(shè)置有與通用標(biāo)識(shí)符A(LU)和LLU相關(guān)的唯一標(biāo)識(shí)符,以表明下述事實(shí):單元402、402b、402c可以也在相同通用類型(A/LLU)內(nèi)在結(jié)構(gòu)和/或功能方面相互不同。然而,單元402、402b、402c中的至少一些可以在結(jié)構(gòu)和/或操作方面相互類似。
[0042]IF 408指的是指令讀取邏輯,MEM 412a指通常持續(xù)一時(shí)鐘周期的單個(gè)內(nèi)存單元階段,以及OS 406指具有寄存器文件讀/寫訪問動(dòng)作的操作數(shù)選擇邏輯。SEQ 410指序列發(fā)生器。
[0043]一般而言,操作數(shù)是由流水線開始處的負(fù)責(zé)邏輯406根據(jù)指令字中對(duì)應(yīng)的操作數(shù)選擇字段被選擇的。可以將操作數(shù)經(jīng)由若干寄存器管道傳遞至功能單元。
[0044]如上所述,長延遲單元402b已被設(shè)計(jì)用于執(zhí)行較復(fù)雜操作,例如除法和應(yīng)用專用操作,并且潛在地被組織為一個(gè)或多個(gè)單元鏈駐留在與內(nèi)存單元等待區(qū)段并行并且連接在整個(gè)ALU鏈或流水線結(jié)構(gòu)414的中間。
[0045]通過將至少一些長延遲單元402b布置為功能上且臨時(shí)地與包括多個(gè)內(nèi)存(等待)階段412a的內(nèi)存訪問區(qū)段412并行,如圖所示,長延遲操作的執(zhí)行時(shí)間可以減少到單個(gè)ESM步驟。LLU 402b可以有利地與內(nèi)存訪問操作同時(shí)執(zhí)行它們的任務(wù)。
[0046]更加詳細(xì)地考慮涉及LLU的指令的執(zhí)行過程,正如ESM中剩余功能單元一樣,LLU402b優(yōu)選地通過指令字中的專用字段被控制。用于這些操作的操作數(shù)可以在流水線的操作數(shù)選擇(OS)階段406中被選擇,或者它們可以替代地從由駐留在內(nèi)存等待區(qū)段412之前的鏈中的ALU 402產(chǎn)生的結(jié)果繼承。
[0047]然后按照LLU 402b的放置和/SLLU 402b之間的連接所指定的順序,執(zhí)行長延遲操作。
[0048]一般而言,兩個(gè)或更多個(gè)功能單元402、402b、402c(相互相似或相互不同)諸如LLU或例如ALU 402、402c與LLU 402b的組合,可以鏈接在一起,使得數(shù)據(jù)可以從一個(gè)單元傳遞至另一個(gè)單元。鏈接的功能單元可以被配置成對(duì)輸入數(shù)據(jù)(操作數(shù))執(zhí)行相互不同的操作。
[0049]長延遲操作的結(jié)果可以例如用作用于剩余ALU402c或序列發(fā)生器410的操作數(shù)。為了具有整個(gè)吞吐量,LLU 402b應(yīng)當(dāng)內(nèi)部有流水線。
[0050]因此,程序員可以在單個(gè)執(zhí)行步驟期間應(yīng)用最多達(dá)N個(gè)長延遲操作。如果這些操作被相應(yīng)地放置到單元鏈中,它們可以甚至相互依賴。值得注意的是,提議的解決方案一般不會(huì)增加處理器流水線的長度。本質(zhì)上,執(zhí)行的內(nèi)存操作應(yīng)當(dāng)獨(dú)立于在執(zhí)行步驟期間所執(zhí)行的長延遲操作。
[0051 ] 所描述的代表功能單元諸如LLU 402b以及ALU 402、402c的實(shí)體的不同物理尺寸表明下述事實(shí):所應(yīng)用的LLU 402b和/或其他功能單元402、402c的復(fù)雜性或延遲也可以相互不同。矩形所覆蓋的區(qū)域/矩形在豎直方向的長度暗示了對(duì)應(yīng)單元的執(zhí)行時(shí)間或延遲,即與較短延遲相關(guān)聯(lián)的ALU402、402c被描述成較短/較小矩形,和LLU 402b—樣。
[0052]在一些實(shí)施方案中,若干功能單元諸如LLU402b可被引入流水線,使得較大復(fù)雜性/導(dǎo)致較大延遲的單元在流水線中位于較少復(fù)雜性/延遲的單元后面(考慮到執(zhí)行流程)。特別是參照內(nèi)存訪問區(qū)段412,例如,較大復(fù)雜單元可以布置為基本上與較簡單單元之后的區(qū)段的端部部分并行。
[0053]圖5示出了根據(jù)本發(fā)明的流水線架構(gòu)500的另一個(gè)實(shí)施方案。
[0054]同樣在該實(shí)施方案中,IF408指的是指令讀取邏輯,MEM 412a指通常持續(xù)一時(shí)鐘周期的單個(gè)內(nèi)存單元階段,OS 406指具有寄存器文件讀/寫訪問動(dòng)作的操作數(shù)選擇邏輯,以及SEQ 410指序列發(fā)生器。
[0055]在該實(shí)施方案中,流水線分別包括長延遲單元(LLU)502a、502b的分立的、功能上和邏輯上并行的分支500a、500b,以實(shí)施相關(guān)長延遲操作。分支502a、502b可以包括僅一個(gè)LLU或多個(gè)LLU和可選地一個(gè)或多個(gè)其他功能單元(FU)諸如多個(gè)ALU,以對(duì)提供至其的數(shù)據(jù)執(zhí)行操作諸如預(yù)定算數(shù)和邏輯操作。分支可以具有限制的長度并且之前和/或之后可以具有公共共享流水線區(qū)段。
[0056]流水線的并行分支500a、500b可以僅與內(nèi)存訪問區(qū)段412并行(所看到的情況),或延伸超過內(nèi)存訪問區(qū)段412,從而還潛在地在內(nèi)存訪問區(qū)段412之前或之后。在一些實(shí)施方案中,另一方面分支可以限定比內(nèi)存訪問區(qū)段412短的流水線區(qū)段。因此,位于并行分支500a中的實(shí)際功能單元諸如LLU還可以被配置成如附圖所示的基本上相互(功能上/臨時(shí)地)并行,其中LLU 502a、502b已被描述成相對(duì)于流水線完全并行。
[0057]通過示例,在圖中通過對(duì)應(yīng)塊的尺寸或長度再次描述了每個(gè)具體功能單元的延遲或復(fù)雜性。在所示出的實(shí)施方案中,分支包括相等數(shù)量的相等復(fù)雜(導(dǎo)致相同或相似延遲)LLU 502,但是本領(lǐng)域技術(shù)人員當(dāng)然意識(shí)到在各種其他可行實(shí)施方案中,分支內(nèi)和/或分支之間的若干LLU可以具有相互不同復(fù)雜性/延遲。在一些實(shí)施方案中,放置在分支中的LLU被選擇,使得并行分支所造成的延遲基本上相等和/或保留在內(nèi)存訪問區(qū)段412的整個(gè)持續(xù)時(shí)間內(nèi)。在一些實(shí)施方案中,具有較長延遲的LLU被布置在流水線中晚于具有較短延遲的LLU。
[0058]布置在每個(gè)分支500a、500b中的兩個(gè)或更多個(gè)(可選地所有)LLU 502a、502b可以根據(jù)上文闡述的原則被鏈接以在其間傳遞數(shù)據(jù)等。鏈接可以通過利用可用虛擬指令層面的并行而增加所獲取的性能。
[0059]一般而言,可以通過例如VLIW樣式的子指令操作字段對(duì)功能單元402、402b、402c、502a、502b進(jìn)行控制。在已通過功能單元執(zhí)行目標(biāo)操作之后,其結(jié)果可以經(jīng)由如下元件提供給在相應(yīng)鏈中位于該單元之后的功能單元,所述元件包括例如通過當(dāng)前指令字被控制的多路復(fù)用器。
[0060]最終,根據(jù)本公開文本和常用知識(shí),本領(lǐng)域技術(shù)人員可以應(yīng)用所提供的教導(dǎo)以在每個(gè)具體的使用情況下通過必要的修改、刪除以及添加(如果有的話),實(shí)現(xiàn)由所附的權(quán)利要求限定的本發(fā)明的范圍。大體上,正如本領(lǐng)域技術(shù)人員容易理解的,本文中闡述的各項(xiàng)原則也可以至少選擇性地用在未落在本文采用的ESM定義下的處理器架構(gòu)中。
【主權(quán)項(xiàng)】
1.一種用于仿真共享內(nèi)存(ESM)架構(gòu)的處理器架構(gòu)布置,包括: 若干個(gè)多線程處理器,優(yōu)選地多個(gè)多線程處理器,每個(gè)多線程處理器設(shè)置有交錯(cuò)的線程間流水線(400、500), 其中所述流水線(400、500)包括多個(gè)串聯(lián)布置的用于對(duì)數(shù)據(jù)執(zhí)行算數(shù)、邏輯以及可選地其它操作的多個(gè)功能單元(402、40213、402(3、502&),其中較低延遲的一個(gè)或多個(gè)功能單元(402)被放置在所述流水線中位于內(nèi)存訪問區(qū)段(412)之前,并且用于執(zhí)行與較長延遲相關(guān)聯(lián)的較復(fù)雜操作的一個(gè)或多個(gè)長延遲單元(402b、502a)被放置為操作上與所述內(nèi)存訪問區(qū)段(412)并行。2.根據(jù)權(quán)利要求1所述的處理器架構(gòu)布置,其中,若干功能單元(402c)功能上被放置在所述流水線中位于所述內(nèi)存訪問區(qū)段(412)之后。3.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,其中,至少兩個(gè)長延遲單元鏈接在一起,其中,一長延遲單元被配置成將操作結(jié)果作為操作數(shù)傳遞至鏈中的后續(xù)單元。4.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,其中,較低延遲的一個(gè)或多個(gè)功能單元包括至少一個(gè)ALU用于整數(shù)算數(shù)。5.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,其中,所述流水線包括至少兩個(gè)并行分支(500a、500b),每個(gè)分支包括與所述內(nèi)存訪問區(qū)段(412)并行的至少一個(gè)長延遲單元(502a、502b)。6.根據(jù)權(quán)利要求5所述的處理器架構(gòu)布置,其中,至少兩個(gè)分支相對(duì)于所述流水線延伸超過所述內(nèi)存訪問區(qū)段,延伸在所述內(nèi)存訪問區(qū)段之前和/或之后。7.根據(jù)權(quán)利要求6所述的處理器架構(gòu)布置,其中,分支中的若干功能單元功能上基本上被放置在所述內(nèi)存訪問區(qū)段之前和/或之后。8.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,包括在操作執(zhí)行延遲方面具有相互不同復(fù)雜性的與所述內(nèi)存訪問區(qū)段并行的至少兩個(gè)長延遲單元(402b)。9.根據(jù)權(quán)利要求8所述的處理器架構(gòu)布置,其中,與較長延遲相關(guān)聯(lián)的長延遲單元邏輯上被定位為與內(nèi)存存儲(chǔ)區(qū)段的端部部分并行并且在與較短延遲相關(guān)聯(lián)的長延遲單元之后。10.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,其中,一個(gè)或多個(gè)功能單元通過指令字的若干操作選擇字段(408)被控制。11.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,其中,用于功能單元的若干操作數(shù)是根據(jù)指令字中給定的若干操作數(shù)選擇字段在所述流水線的操作數(shù)選擇階段(406)中被確定的。12.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,其中,至少一個(gè)長延遲單元被設(shè)計(jì)用于除法、根計(jì)算或應(yīng)用專用目的。13.根據(jù)前述權(quán)利要求任一項(xiàng)所述的處理器架構(gòu)布置,包括被配置用于對(duì)輸入數(shù)據(jù)執(zhí)行一個(gè)或多個(gè)操作的至少一個(gè)長延遲單元和被配置用于對(duì)輸入數(shù)據(jù)執(zhí)行一個(gè)或多個(gè)其他操作的至少一個(gè)其他長延遲單元。
【文檔編號(hào)】G06F9/38GK106030517SQ201480070278
【公開日】2016年10月12日
【申請(qǐng)日】2014年12月16日
【發(fā)明人】馬爾蒂·佛塞爾
【申請(qǐng)人】芬蘭國家技術(shù)研究中心股份公司