两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

指令次序?qū)嵤┲噶顚?、處理器、方法和系統(tǒng)的制作方法_2

文檔序號:9493650閱讀:來源:國知局
的操作和/或方法可以由類似或不同的處理器執(zhí)行和/或在類似或不同的處理器內(nèi)執(zhí)行。而且,圖1的處理器可以執(zhí)行與圖2的那些相同、類似或不同的操作和/或方法。
[0035]方法包括在框227處接收指令次序?qū)嵤┲噶顚?。在各種方面中,可以在處理器或其部分(例如指令提取單元、指令高速緩存、解碼器等)處接收指令對。在各種方面中,可以從管芯外源(例如從存儲器、管芯外互連等)或從管芯上源(例如從指令高速緩存)接收指令。指令次序?qū)嵤┲噶顚梢允翘幚砥鞯闹噶罴牟糠?。在一些實施例中,指令次序?qū)嵤┲噶顚梢园せ钪噶詈蛯嵤┲噶睢3R姷?,激活指令可以以程序次序出現(xiàn)在實施指令之前。
[0036]方法包括在框228處響應于指令次序?qū)嵤┲噶顚?,防止以程序次序出現(xiàn)在實施指令之后的指令在處理器的無序部分中在激活指令之前被處理。在一些實施例中,這可以包括在處理器的流水線的第一級(例如處理器的有序前端中的級)處響應于激活指令而激活指令次序?qū)嵤?。在一些實施例中,在激活指令次序?qū)嵤┑耐瑫r,方法可以包括通過防止實施指令和以程序次序出現(xiàn)在實施指令之后的指令前進超出流水線的第二級(例如處理器的有序前端中的級)來實施指令次序。在一些實施例中,實施指令可以(例如在流水線的第二級中)被滯留在隊列中,并且可以防止以程序次序在實施指令之后的指令前進繞過實施指令。一段時間之后可以去激活指令次序?qū)嵤?,并且然后實施指令和實施指令之后的指令可以繼續(xù)進行通過流水線。
[0037]已經(jīng)以相對簡單的格式示出和描述了方法,但是操作可以可選地添加到方法和/或從方法移除。例如,在其它實施例中,方法可以可選地包括提取指令、解碼指令、調(diào)度指令(例如無序地調(diào)度激活指令)、運行指令、執(zhí)行與運行指令相關聯(lián)的微架構操作(例如修改一個或多個位,編程或激活計數(shù)器等)、提交指令等。
[0038]圖3是合適的指令次序?qū)嵤┠K310的第一示例實施例的框圖。在一些實施例中,指令次序?qū)嵤┠K310可以被包括在圖1的處理器中和/或可以用于執(zhí)行圖2的(一個或多個)操作或方法??商鎿Q地,指令次序?qū)嵤┠K310可以被包括在類似或不同的處理器中和/或可以用于執(zhí)行類似或不同的操作或方法。而且,圖1的處理器可以包括與圖3的那個類似或不同的指令次序?qū)嵤┠K和/或圖2的(一個或多個)操作或方法可以由與圖3的那個類似或不同的指令次序?qū)嵤┠K執(zhí)行。
[0039]指令次序?qū)嵤┠K310包括激活模塊330。激活模塊可操作成在處理器的流水線的第一級332處響應于激活指令316而發(fā)起或激活指令次序?qū)嵤?。如所示,在一些實施例中,第一?32可以在有序前端304內(nèi),盡管本發(fā)明的范圍不因此受限。通過示例的方式,有序前端內(nèi)的第一級的合適示例包括但不限于提取級、解碼級和分配級或其之間的各種點??商鎿Q地,可以可選地使用有序前端中的其它級或處理器的另一部分。例如,第一級可以是運行級、調(diào)度級或另一級。在一些實施例中,激活可以在有序前端中,而去激活可以在有序前端、無序區(qū)段或有序后端中。如果激活和實施指令自身所使用的流水線級不保證足夠的次序以避免死鎖場景(例如如果激活和實施指令以將會導致問題的方式脫離次序),則可以在處理器中包括某個其它機制以提供對避免這樣的死鎖場景的足夠次序的保證。
[0040]在該第一示例實施例中,指令次序?qū)嵤┑募せ钍峭ㄟ^一個或多個指令次序?qū)嵤┛刂莆?34。如所示,激活模塊可以與一個或多個控制位334耦合。在一些實施例中,激活模塊可以可操作成將一個或多個控制位334從第一狀態(tài)(例如起始二進制值)修改或改變?yōu)榈诙煌瑺顟B(tài)(例如不同的二進制值)以激活指令次序?qū)嵤?。作為一個特定示例,激活模塊可以可操作成將單個位設置成二進制一以激活指令次序?qū)嵤斎ゼせ钸@樣的指令次序?qū)嵤r單個位可以否則被清空成二進制零。
[0041]指令次序?qū)嵤┠K310還包括阻擋模塊336。阻擋模塊可操作成響應于激活和實施指令,在指令次序?qū)嵤┍患せ畹耐瑫r實施指令次序。在一些實施例中,阻擋模塊可以可操作成阻擋或防止實施指令和以程序次序出現(xiàn)在實施指令之后的其它指令前進超出流水線的第二級340。如所示,在一些實施例中,第二級可以在與激活模塊分離的級處,并且阻擋模塊可以與激活模塊耦合。在其它實施例中,第二級和/或阻擋模塊可以與激活模塊在相同級處。通過示例的方式,用于阻擋模塊的合適級包括但不限于提取級、解碼級、分配級、調(diào)度級、運行級和其之間的各種點??商鎿Q地,可以可選地使用其它級。
[0042]如所示,在該第一示例實施例中,阻擋模塊可以包括與控制位耦合的控制位校驗邏輯338??刂莆恍r炦壿嫼?或阻擋模塊可以可操作成讀取或訪問控制位以確定當前是否激活指令次序?qū)嵤H邕M一步所示,在該第一示例實施例中,阻擋模塊可以包括指令保持邏輯337 (例如由來自兩個或更多線程的指令共享的隊列、多線程資源等),其可操作成保持實施指令。在一些實施例中,當確定激活指令次序?qū)嵤r,指令保持邏輯和/或阻擋邏輯可以可操作成將實施指令保持在第二級340處,并且防止以程序次序在實施指令之后的其它指令前進繞過實施指令和/或移動超出第二級。用于具有激活和實施指令以及實施指令之后的指令的線程的流水線運行可以基本上停止或暫停一段時間。在這段時間期間,可以可選地將來自其它線程的指令放置到流水線中以利用未使用的時隙或流水線級。
[0043]在該第一示例實施例中,指令次序?qū)嵤┠K310還可以包括去激活模塊342。在一些實施例中,去激活模塊可以可操作成在流水線的第三級344處響應于激活指令316而去激活指令次序?qū)嵤?。如所示,在一些實施例中,去激活模塊可以與一個或多個指令次序?qū)嵤┛刂莆?34耦合。在一些實施例中,去激活模塊可以將控制位334從用于指示激活的第二狀態(tài)改變或修改為用于指示去激活的另一狀態(tài)(例如第一狀態(tài))。如所示,在一些實施例中,第三級可以在有序后端308內(nèi),盡管本發(fā)明的范圍不因此受限。通過示例的方式,有序后端中的合適點包括但不限于提交級、其中存儲全局可見并且已知要出現(xiàn)但是尚未實際出現(xiàn)的提交之后的點、其中存儲已經(jīng)實際出現(xiàn)的提交之后的點以及其間的各種點??商鎿Q地,可以可選地使用處理器流水線中的其它點或級。在去激活之后,可以允許實施指令和以程序次序的其它后續(xù)指令繼續(xù)進行或前進通過流水線。作為另一選項,在一些實施例中,實施指令可以此后在第二級或后續(xù)級處被視為不操作(Ν0Ρ)。
[0044]圖4是合適的指令次序?qū)嵤┠K410的第二示例實施例的框圖。在一些實施例中,指令次序?qū)嵤┠K410可以被包括在圖1的處理器中和/或可以用于執(zhí)行圖2的(一個或多個)操作或方法??商鎿Q地,指令次序?qū)嵤┠K410可以被包括在類似或不同的處理器中和/或可以用于執(zhí)行類似或不同的操作或方法。而且,圖1的處理器可以包括與圖4的那個類似或不同的指令次序?qū)嵤┠K和/或圖2的(一個或多個)操作或方法可以由與圖4的那個類似或不同的指令次序?qū)嵤┠K執(zhí)行。
[0045]指令次序?qū)嵤┠K410包括激活模塊430。激活模塊可操作成在處理器的流水線的第一級432處響應于激活指令416而發(fā)起或激活指令次序?qū)嵤?。如所示,在一些實施例中,第一?32可以在有序前端404內(nèi),盡管本發(fā)明的范圍不因此受限。通過示例的方式,有序前端內(nèi)的第一級的合適示例包括但不限于提取級、解碼級和分配級或者其間的各種點??商鎿Q地,可以可選地使用有序前端中的其它級或者處理器的另一部分。例如,第一級可以是運行級、調(diào)度級或另一級。
[0046]在該第二實施例中,指令次序?qū)嵤┑募せ钍峭ㄟ^指令次序?qū)嵤┯嫈?shù)器448的。如所示,激活模塊430可以與計數(shù)器448耦合。在一些實施例中,激活模塊可以可操作成激活或發(fā)起計數(shù)器開始計數(shù)到給定或預確定的值以便激活指令次序?qū)嵤Mㄟ^示例的方式,計數(shù)器可以從初始值(例如零)向上計數(shù)到給定或預確定的停止值,或者從初始、給定或預確定的值向下計數(shù)到停止值(例如零)。在一些實施例中,給定或預確定值對于激活指令可以是固定或恒定的(例如對于激活指令的操作碼是固定的,不能夠由激活指令指定或改變,基于解碼器對操作碼解碼而可確定等)。在其它實施例中,激活指令可以具有操作數(shù)以顯式指定用于計數(shù)器的值或者以其它方式指示用于計數(shù)器的值(例如可以具有從數(shù)個預確定值選擇的一個或多個位)。有利地,這可以允許編程者或軟件利用對于特定實現(xiàn)方式而言恰當?shù)撵`活值對計數(shù)器進行編程。
[0047]指令次序?qū)嵤┠K410還包括阻擋模塊436。阻擋模塊可操作成在指令次序?qū)嵤┍患せ畹耐瑫r響應于激活和實施指令而實施指令次序。在一些實施例中,阻擋模塊可以可操作成阻擋或防止實施指令和以程序次序在實施指令之后出現(xiàn)的其它指令前進超出流水線的第二級440。如所示,在一些實施例中,第二級可以在與激活模塊分離的級處,并且阻擋模塊可以與激活模塊耦合。在其它實施例中,第二級和/或阻擋模塊可以在與激活模塊相同的級處。通過示例的方式,用于阻擋模塊的合適的級包括但不限于提取級、解碼級、分配級、調(diào)度級、運行級和其間的各種點??商鎿Q地,可以可選地使用其它級。
[0048]如所示,在該第二實施例中,阻擋模塊可以包括與計數(shù)器448耦合的計數(shù)器校驗邏輯438。計數(shù)器校驗邏輯和/或阻擋模塊可以可操作成讀取、校驗或訪問計數(shù)器以確定當前是否激活指令次序?qū)嵤?商鎿Q地,計數(shù)器可以被配置成發(fā)信號通知阻擋模塊以指示當前是否激活指令次序?qū)嵤?。如進一步所示,在該第一示例實施例中,阻擋模塊可以包括指令保持邏輯437 (例如由來自兩個或更多線程的指令共享的隊列、多線程資源等),其可操作成保持實施指令。在一些實施例中,當確定激活指令次序?qū)嵤r,指令保持邏輯和/或阻擋模塊可以可操作成將實施指令保持在第二級440處,并且防止以程序次序在實施指令之后的其它指令前進繞過實施指令和/或移動超出第二級。
[0049]在該第二實施例中,指令次序?qū)嵤┛梢栽谟嫈?shù)器計數(shù)到給定或預確定的值時被自動去激活。在去激活之后,可以允許實施指令和其它后續(xù)指令繼續(xù)進行或前進通過流水線(例如通過無序運行部分406和有序后端408)。作為另一選項,在一些實施例中,實施指令可以此后可選地在流水線的第二級或后續(xù)級處被視為不操作(Ν0Ρ)。
[0050]圖5A-C是圖示了實現(xiàn)指令排序的激活、實施和去激活的合適流水線級的若干實施例的框圖。在這些圖中,從左向右示出的流水線級包括提取、長度解碼、解碼、分配(alloc.)、重命名、調(diào)度、寄存器/存儲器讀取、運行、寫回/存儲器寫入、異常處理和提交。不要求這些特定流水線級。本領域中已知的任何其它流水線級通常應當是合適的。
[0051]圖5A圖示了流水線502A的實施例,其中指令排序的激活550在分配級處,指令排序的實施或阻擋551也在分配級處,并且指令排序的去激活552在提交級處。圖5B圖示了流水線502B的實施例,其中指令排序的激活553在提取級處,指令排序的實施或阻擋554在分配級處,并且指令排序的去激活555在提交級處在其中存儲是全局可見的點處。圖5C圖示了流水線502C的實施例,其中指令排序的激活556在調(diào)度級處,指令排序的實施或阻擋557在提取級處,并且指令排序的去激活558在提交級處。要領會的是,這些僅僅是幾個說明性實施例。本領域的并且受益于本公開的技術人員將領會到,可以可替換地使用各種其它流水線級和/或流水線級的組合。
[0052]圖6是合適的激活指令格式660的第一實施例的框圖。激活指令格式包括操作代碼或操作碼662。操作碼可以表示可操作成標識要被執(zhí)行的指令和/或操作的多個位或一個或多個字段。在一些實施例中,激活指令格式還可以可選地包括指定或以其它方式指示要用于激活指令次序?qū)嵤┯嫈?shù)器的值的一個或多個操作數(shù)664。一個或多個操作數(shù)可以包括一個或多個字段或位。在一些實施例中,一個或多個操作數(shù)可以顯式地指定或以其它方式指示直接在指令內(nèi)的值。例如,立即值(例如4位或8位立即值)可以顯式指定值或者選擇多個預確定值中的一個。在一些實施例中,值可以表示要計數(shù)的時鐘循環(huán)的數(shù)目,盡管本發(fā)明的范圍不因此受限。在其它實施例中,一個或多個操作數(shù)可以指示用于存儲值的一個或多個寄存器或其它存儲位置。在再其它的實施例中,具有值的寄存器或其它存儲位置對指令可能是隱式的而不需要被指定。
[0053]圖7A是合適的激活指令格式760的第二實施例的框圖。在一些實施例中,激活指令格式可以可選地包括前綴766以指示指令是激活指令次序?qū)嵤┑募せ钪噶?。激活指令格式還包括操作代碼或操作碼761。在一些實施例中,操作碼可以標識除激活指令次序?qū)嵤?其為前綴的功能)之外要執(zhí)行的指令和/或操作。而是,通過示例的方式,操作碼可以指示算術、邏輯、存儲
當前第2頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
富平县| 九龙县| 镇沅| 邹平县| 灵武市| 许昌市| 康平县| 宿迁市| 新干县| 曲沃县| 隆昌县| 肥西县| 绥棱县| 玉屏| 讷河市| 宁德市| 定陶县| 柞水县| 剑川县| 蛟河市| 乐陵市| 原平市| 曲松县| 东方市| 疏附县| 宁晋县| 同心县| 余江县| 剑川县| 吴旗县| 涿鹿县| 余姚市| 长丰县| 江都市| 庐江县| 新密市| 蒲城县| 扶风县| 巴楚县| 蒲江县| 开化县|