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

非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置的制作方法

文檔序號:6366680閱讀:124來源:國知局
專利名稱:非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置的制作方法
技術領域
本發(fā)明涉及嵌入式處理器,尤其是一種存儲器訪問執(zhí)行裝置。
背景技術
目前,包括嵌入式處 理器在內的所有微處理器都使用流水線技術提高指令執(zhí)行的并行性以提高處理效率。程序中存在大量的載入/存儲指令,其訪問造成高速緩存缺失、回填和數(shù)據(jù)更新操作會占用高速緩存訪問通路,阻塞后續(xù)載入/存儲指令對高速緩存的訪問,嚴重影響載入/存儲指令的執(zhí)行效率,進而影響整個處理器的性能。由于載入/存儲指令造成的延時在很大程度上影響了處理器的性能,為提高高速緩存的訪問效率,目前的常見解決方法是為采用非阻塞的高速緩存技術來加速載入/存儲指令的處理。這種方法一般需要較大的硬件開銷和復雜的高速緩存訪問協(xié)議,同時高速緩存容量越大,這樣的開銷就越大。

發(fā)明內容
為了克服已有嵌入式處理器的存儲器訪問技術復雜度較高、硬件開銷大的不足,本發(fā)明提供一種結構簡單、有效降低硬件開銷的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置。本發(fā)明解決其技術問題所采用的技術方案是一種非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,包括高速緩存器,存儲指令指對高速緩存進行寫的指令,載入指令表示對高速緩存進行讀的指令;所述存儲器訪問執(zhí)行裝置還包括載入/存儲指令發(fā)射隊列,用以緩存取指單元取到的載入/存儲指令,并將得到源操作數(shù)的載入/存儲指令發(fā)射,計算訪問地址并進行后續(xù)的高速緩存訪問;載入/存儲指令緩沖隊列,用以在高速緩存器數(shù)據(jù)通路出現(xiàn)訪問沖突時緩存載入/存儲指令發(fā)射隊列發(fā)射并完成地址計算的載入/存儲指令;載入/存儲指令重排序隊列,用以記錄載入/存儲指令的地址、訪問類型、高速緩存命中狀態(tài)和指令實際順序信息,檢查亂序執(zhí)行的正確性;將高速緩存命中的載入指令得到的數(shù)據(jù)直通到前級流水線,派發(fā)高速緩存缺失的載入指令到高速緩存回填隊列中,派發(fā)所有存儲指令的到高速緩存更新隊列中;高速緩存回填隊列,用以緩存高速緩存缺失的載入指令,向下級存儲器發(fā)起的請求,獲得缺失的高速緩存行并回填高速緩存;高速緩存更新隊列,用以緩存高速緩存命中的存儲指令并按序更新高速緩存;高速緩存回寫隊列,用以緩存高速緩存缺失的存儲指令和被替換的臟緩存行的數(shù)據(jù),并按序更新下級存儲器。進一步,所述載入/存儲指令發(fā)射隊列中,按照指令實際順序緩存載入/存儲指令,載入/存儲指令在載入/存儲指令發(fā)射隊列中等待其源操作數(shù)準備完畢,載入/存儲指令發(fā)射隊列會監(jiān)視隊列中載入/存儲指令的操作數(shù)是否已準備好,同時將操作數(shù)準備好的最老的載入/存儲指令亂序發(fā)射到后級流水線。再進一步,高速緩存器通路會被多種訪問請求占用,按優(yōu)先級從高到低依次為1)高速緩存回填隊列回填高速緩存的請求,2)載入/存儲指令緩沖隊列指令訪問高速緩存的請求,3)高速緩存更新隊列中存儲指令更新高速緩存的請求,4)高速緩存回填隊列讀取臟緩存行的請求。更進一步,所述載入/ 存儲指令緩沖隊列記錄載入指令或存儲指令的類型、訪存寬度、符號擴展、數(shù)據(jù)所在的高速緩存器區(qū)塊位置以及該指令在載入指令/存儲指令重排序隊列中的記錄引索,載入/存儲指令緩沖隊列入口同時包括一個用于載入/存儲指令訪問地址的計算的地址加法器。所述載入/存儲指令重排序隊列記錄載入/存儲指令的地址、訪問類型、高速緩存命中狀態(tài)和指令實際順序信息,檢查亂序執(zhí)行的正確性;在載入/存儲指令進入載入/存儲指令發(fā)射隊列的同時需要在載入/存儲指令重排序隊列中創(chuàng)建相應的載入/存儲指令表項,并記錄載入/存儲指令的實際順序。高速緩存回填隊列判斷被替換緩存行是否為臟,將臟緩存行填入高速緩存回寫隊列以更新下一級存儲器,之后按照實際指令順序向下級存儲器發(fā)起請求,獲得缺失的高速緩存行并回填高速緩存。所述載入/存儲指令緩沖隊列中,當高速緩存器通路沒有被其他訪問請求占用時,若載入/存儲指令緩沖隊列為空,載入/存儲指令發(fā)射隊列發(fā)射并完成地址計算的指令將不進入載入/存儲指令緩沖隊列,直接訪問高速緩存器;若載入/存儲指令緩沖隊列中有被緩沖指令,載入/存儲指令發(fā)射隊列發(fā)射并完成地址計算的指令將進入載入/存儲指令緩沖隊列中排隊。當高速緩存器通路被其他訪問請求占用時,完成地址計算的指令將進入載入/存儲指令緩沖隊列中排隊。檢查亂序執(zhí)行的正確性的過程為若一條載入指令在另一條存儲指令被發(fā)射到存儲訪問單元之前就結束了對高速緩存器的訪問,而該存儲指令的實際順序在載入指令之前并且兩者地址相同,則載入指令的提前執(zhí)行投機失敗,重新執(zhí)行實際指令順序中存儲指令以后的所有指令;正在訪問高速緩存器的載入指令,若其地址與高速緩存更新隊列中高速緩存命中的存儲指令相同,則該載入指令在該存儲指令更新高速緩存器時旁路獲得其數(shù)據(jù);若載入/存儲指令重排序隊列中指令的地址與高速緩存回填隊列中回填緩存行的地址相同,則將該載入/存儲指令的高速緩存命中狀態(tài)改為高速緩存命中;若載入/存儲指令重排序隊列中指令的地址與高速緩存回填隊列中被替換緩存行的地址相同,則將該載入/存儲指令的高速緩存命中狀態(tài)改為高速緩存缺失;若載入/存儲指令重排序隊列中的載入指令地址與高速緩存回填隊列中回填緩存行地址相同,則該載入指令旁路獲得高速緩存回填隊列中的回填數(shù)據(jù);若載入/存儲指令重排序隊列中的載入指令地址與高速緩存更新隊列中高速緩存命中的存儲指令地址相同,則該載入指令旁路獲得高速緩存更新隊列中高速緩存命中的存儲指令的數(shù)據(jù)。本發(fā)明的技術構思為利用載入/存儲指令重排序隊列記錄載入/存儲指令發(fā)射隊列發(fā)射的指令,利用高速緩存回填隊列緩存高速緩存缺失的載入指令,利用高速緩存更新隊列緩存高速緩存命中的存儲指令,消除對高速緩存器通路的阻塞,加速高速緩存命中的載入指令的數(shù)據(jù)獲得,從而加速載入/存儲指令發(fā)射隊列及其他指令發(fā)射隊列中指令的操作數(shù)獲得,提高不同執(zhí)行單元的并行性。本發(fā)明的有益效果主要表現(xiàn)在結構簡單,在進行高效的載入/存儲指令非阻塞發(fā)射和執(zhí)行的同時開銷較小。


圖I是非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置的結構圖。
具體實施例方式下面結合附圖對本發(fā)明作進一步描述。參照附圖1,一種非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,所述存儲器訪問執(zhí)行裝置包括高速緩存器,包括標志位陣列存儲器、數(shù)據(jù)陣列存儲器、臟數(shù)據(jù)位陣列存儲器;存儲指令指對聞速緩存進行與的指令,載入指令表不對聞速緩存進行讀的指令;所述存儲器訪問執(zhí)行裝置還包括載入/存儲指令發(fā)射隊列,如圖I。取指單元取到指令后進行解碼,若該指令為載入/存儲指令,則按序將其發(fā)射到載入/存儲指令發(fā)射隊列。載入/存儲指令在載入/存儲指令發(fā)射隊列中等待其源操作數(shù)準備完畢。對于載入指令來說,源操作數(shù)包括基址寄存器、地址偏移量立即數(shù)/地址偏移量寄存器;對于存儲指令來說,源操作數(shù)包括基址寄存器、地址偏移量立即數(shù)/地址偏移量寄存器、數(shù)據(jù)寄存器。但為了加速存儲指令的發(fā)射,存儲指令的數(shù)據(jù)操作數(shù)即使沒有準備好也會發(fā)射。載入/存儲指令發(fā)射隊列會監(jiān)視隊列中載入/存儲指令的操作數(shù)是否已準備好,同時將操作數(shù)準備好的最老的載入/存儲指令亂序發(fā)射到后級流水線。高速緩存器通路會被載入/存儲指令緩沖隊列指令訪問高速緩存的請求、高速緩存回填隊列讀取臟緩存行的請求、高速緩存回填隊列回填高速緩存的請求、高速緩存更新隊列中存儲指令更新高速緩存的請求占用。請求的優(yōu)先級從高到低為1)高速緩存回填隊列回填高速緩存的請求,2)載入/存儲指令緩沖隊列指令訪問高速緩存的請求,3)高速緩存更新隊列中存儲指令更新高速緩存的請求,4)高速緩存回填隊列讀取臟緩存行的請求。載入/存儲指令緩沖隊列,如圖1,用于記錄和緩沖高速緩存器訪問指令的訪問類型、訪存寬度、符號擴展、數(shù)據(jù)所在的高速緩存器區(qū)塊位置、該指令在載入/存儲指令重排序隊列中的記錄弓I索等信息。載入/存儲指令緩沖隊列入口同時包括一個地址加法器用于載入/存儲指令訪問地址的計算,其中一個操作數(shù)根據(jù)訪問寬度進行不同位數(shù)的位移。載入/存儲指令由載入/存儲指令發(fā)射隊列發(fā)射時,由加法器計算訪問地址。當訪問寬度為半字、字或雙字時,其中一個操作數(shù)分別位移一位、兩位或三位。當高速緩存器通路沒有被其他訪問請求占用,若載入/存儲指令緩沖隊列中無指令,則計算完地址的指令將旁路載入/存儲指令緩沖隊列并立即得到高速緩存器的訪問通路;若載入/存儲指令緩沖隊列中存在指令,完成地址計算的指令將進入載入/存儲指令緩沖隊列中排隊,同時在載入/存儲指令緩沖隊列中記錄該指令的訪問類型、訪存寬度、符號擴展、數(shù)據(jù)所在的高速緩存器區(qū)塊位置、該指令在載入/存儲指令重排序隊列中的記錄引索等信息,載入/存儲指令緩沖隊列中等待的指令將按序出隊訪問高速緩存器。當高速緩存器通路被其他訪問請求占用時,完成地址計算的指令將進入載入/存儲指令緩沖隊列中排隊。載入/存儲指令重排序隊列,如圖1,用以記錄載入/存儲指令的地址、訪問類型、高速緩存命中狀態(tài)。由于載入/存儲指令會被載入/存儲指令發(fā)射隊列亂序地發(fā)射,因此在載入/存儲指令進入載入/存儲指令發(fā)射隊列的同時需要在載入/存儲指令重排序隊列中創(chuàng)建相應的載入/存儲指令表項,并記錄載入/存儲指令的實際順序。載入/存儲指令重排序隊列中記錄了指令的實際順序。由于載入/存儲指令的亂序發(fā)射,指令訪問高速緩存器的順序可能會與指令實際順序不同,指令執(zhí)行的同時需要檢查和糾正亂序發(fā)射執(zhí)行可能引入的錯誤。如果一條載入指令在另一條存儲指令被發(fā)射到存儲訪問單元之前就結束了對高速緩存器的訪問,而該存儲指令的實際順序在載入指令之前 并且兩者地址相同,則載入指令的提前執(zhí)行被認為是一次投機失敗,需要重新執(zhí)行實際指令順序中存儲指令以后的所有指令。由于沒有準備好數(shù)據(jù)操作數(shù)的存儲指令也會被載入/存儲指令發(fā)射隊列發(fā)射,所以載入/存儲指令重排序隊列會繼續(xù)監(jiān)視其數(shù)據(jù)操作數(shù)的是否準備好并旁路獲得該數(shù)據(jù)。載入/存儲指令重排序隊列將高速緩存命中的載入指令得到的數(shù)據(jù)直通到前級流水線,因此可以盡可能的加速高速緩存命中的載入指令數(shù)據(jù)的獲得,加速與其有數(shù)據(jù)依賴的其他指令的發(fā)射執(zhí)行。高速緩存回填隊列,如圖1,用以緩存高速緩存缺失的載入指令,以便消除其對高速緩存器通路的阻塞。載入/存儲指令重排序隊列將高速緩存缺失的載入指令按照實際指令順序發(fā)射到高速緩存回填隊列中。高速緩存回填隊列會判斷被替換緩存行是否為臟,將臟緩存行填入高速緩存回寫隊列以更新下一級存儲器,之后按照實際指令順序向下級存儲器發(fā)起請求、獲得缺失的高速緩存行并回填高速緩存。高速緩存更新隊列,如圖1,用以緩存高速緩存命中的存儲指令,以便消除其對高速緩存器通路的阻塞。載入/存儲指令重排序隊列將高速緩存命中的存儲指令按照實際指令順序發(fā)射到高速緩存更新隊列中。高速緩存更新隊列中的指令將按序更新高速緩存。高速緩存回寫隊列,如圖1,用以緩存高速緩存缺失的存儲指令和被替換的臟緩存行的數(shù)據(jù),以便消除對高速緩存器通路的阻塞。載入/存儲指令重排序隊列將高速緩存缺失的存儲指令和被替換的臟緩存行的數(shù)據(jù)按照實際指令順序發(fā)射到高速緩存回寫隊列中。高速緩存回寫隊列將按序更新下級存儲器。由于指令的亂序執(zhí)行,正在訪問高速緩存器的載入指令,若其地址與高速緩存更新隊列中高速緩存命中的存儲指令相同,則需要該載入指令在該存儲指令更新高速緩存器的同時旁路獲得其數(shù)據(jù)以保證載入指令獲得的數(shù)據(jù)的正確性。同樣的,訪問高速緩存器后進入載入/存儲指令重排序隊列的載入/存儲指令的命中信息可能不準確,需要監(jiān)視高速緩存回填隊列予以糾正。若載入/存儲指令重排序隊列中指令的地址與高速緩存回填隊列中回填緩存行的地址相同,則需要將該載入/存儲指令的高速緩存命中狀態(tài)改為高速緩存命中;若載入/存儲指令重排序隊列中指令的地址與高速緩存回填隊列中被替換緩存行的地址相同,則需要將該載入/存儲指令的高速緩存命中狀態(tài)改為高速緩存缺失。同時,載入/存儲指令重排序隊列中的載入指令地址若與高速緩存回填隊列中回填緩存行地址相同,則該載入指令需要旁路獲得高速緩存回填隊列中的回填數(shù)據(jù)以保證正確性;載入/存儲指令重排序隊列中的載入指令地址若與高速 緩存更新隊列中高速緩存命中的存儲指令地址相同,則該載入指令需要旁路獲得高速緩存更新隊列中高速緩存命中的存儲指令的數(shù)據(jù)以保證正確性。
權利要求
1.一種非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,包括高速緩存器,存儲指令指對高速緩存進行寫的指令,載入指令表示對高速緩存進行讀的指令;其特征在于所述存儲器訪問執(zhí)行裝置還包括 載入/存儲指令發(fā)射隊列,用以緩存取指単元取到的載入/存儲指令,并將得到源操作數(shù)的載入/存儲指令發(fā)射,計算訪問地址并進行后續(xù)的高速緩存訪問; 載入/存儲指令緩沖隊列,用以在高速緩存器數(shù)據(jù)通路出現(xiàn)訪問沖突時緩存載入/存儲指令發(fā)射隊列發(fā)射并完成地址計算的載入/存儲指令; 載入/存儲指令重排序隊列,用以記錄載入/存儲指令的地址、訪問類型、高速緩存命中狀態(tài)和指令實際順序信息,檢查亂序執(zhí)行的正確性;將高速緩存命中的載入指令得到的數(shù)據(jù)直通到前級流水線,派發(fā)高速緩存缺失的載入指令到高速緩存回填隊列中,派發(fā)所有存儲指令的到高速緩存更新隊列中; 高速緩存回填隊列,用以緩存高速緩存缺失的載入指令,向下級存儲器發(fā)起的請求,獲得缺失的高速緩存行并回填高速緩存; 高速緩存更新隊列,用以緩存高速緩存命中的存儲指令并按序更新高速緩存; 高速緩存回寫隊列,用以緩存高速緩存缺失的存儲指令和被替換的臟緩存行的數(shù)據(jù),并按序更新下級存儲器。
2.如權利要求I所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于所述載入/存儲指令發(fā)射隊列中,按照指令實際順序緩存載入/存儲指令,載入/存儲指令在載入/存儲指令發(fā)射隊列中等待其源操作數(shù)準備完畢,載入/存儲指令發(fā)射隊列會監(jiān)視隊列中載入/存儲指令的操作數(shù)是否已準備好,同時將操作數(shù)準備好的最老的載入/存儲指令亂序發(fā)射到后級流水線。
3.如權利要求I或2所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于高速緩存器通路會被多種訪問請求占用,按優(yōu)先級從高到低依次為1)高速緩存回填隊列回填高速緩存的請求,2)載入/存儲指令緩沖隊列指令訪問高速緩存的請求,3)高速緩存更新隊列中存儲指令更新高速緩存的請求,4)高速緩存回填隊列讀取臟緩存行的請求。
4.如權利要求I或2所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于所述載入/存儲指令緩沖隊列記錄載入指令或存儲指令的類型、訪存寬度、符號擴展、數(shù)據(jù)所在的高速緩存器區(qū)塊位置以及該指令在載入指令/存儲指令重排序隊列中的記錄引索,載入/存儲指令緩沖隊列入ロ同時包括ー個用于載入/存儲指令訪問地址的計算的地址加法器。
5.如權利要求I或2所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于所述載入/存儲指令重排序隊列記錄載入/存儲指令的地址、訪問類型、高速緩存命中狀態(tài)和指令實際順序信息,檢查亂序執(zhí)行的正確性;在載入/存儲指令進入載入/存儲指令發(fā)射隊列的同時需要在載入/存儲指令重排序隊列中創(chuàng)建相應的載入/存儲指令表項,并記錄載入/存儲指令的實際順序。
6.如權利要求I所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于高速緩存回填隊列判斷被替換緩存行是否為臟,將臟緩存行填入高速緩存回寫隊列以更新下一級存儲器,之后按照實際指令順序向下級存儲器發(fā)起請求,獲得缺失的高速緩存行并回填高速緩存。
7.如權利要求I或2所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于所述載入/存儲指令緩沖隊列中,當高速緩存器通路沒有被其他訪問請求占用時,若載入/存儲指令緩沖隊列為空,載入/存儲指令發(fā)射隊列發(fā)射并完成地址計算的指令將不進入載入/存儲指令緩沖隊列,直接訪問高速緩存器;若載入/存儲指令緩沖隊列中有被緩沖指令,載入/存儲指令發(fā)射隊列發(fā)射并完成地址計算的指令將進入載入/存儲指令緩沖隊列中排隊。
當高速緩存器通路被其他訪問請求占用時,完成地址計算的指令將進入載入/存儲指令緩沖隊列中排隊。
8.如權利要求,5所述的非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,其特征在于檢查亂序執(zhí)行的正確性的過程為 若一條載入指令在另一條存儲指令被發(fā)射到存儲訪問單元之前就結束了對高速緩存器的訪問,而該存儲指令的實際順序在載入指令之前并且兩者地址相同,則載入指令的提前執(zhí)行投機失敗,重新執(zhí)行實際指令順序中存儲指令以后的所有指令; 正在訪問高速緩存器的載入指令,若其地址與高速緩存更新隊列中高速緩存命中的存儲指令相同,則該載入指令在該存儲指令更新高速緩存器時旁路獲得其數(shù)據(jù); 若載入/存儲指令重排序隊列中指令的地址與高速緩存回填隊列中回填緩存行的地址相同,則將該載入/存儲指令的高速緩存命中狀態(tài)改為高速緩存命中;若載入/存儲指令重排序隊列中指令的地址與高速緩存回填隊列中被替換緩存行的地址相同,則將該載入/存儲指令的高速緩存命中狀態(tài)改為高速緩存缺失; 若載入/存儲指令重排序隊列中的載入指令地址與高速緩存回填隊列中回填緩存行地址相同,則該載入指令旁路獲得高速緩存回填隊列中的回填數(shù)據(jù);若載入/存儲指令重排序隊列中的載入指令地址與高速緩存更新隊列中高速緩存命中的存儲指令地址相同,則該載入指令旁路獲得高速緩存更新隊列中高速緩存命中的存儲指令的數(shù)據(jù)。
全文摘要
一種非阻塞發(fā)射和執(zhí)行的存儲器訪問執(zhí)行裝置,包括高速緩存器;載入/存儲指令發(fā)射隊列,用以緩存取指單元取到的載入/存儲指令,并將得到源操作數(shù)的載入/存儲指令發(fā)射,計算訪問地址并進行后續(xù)的高速緩存訪問;載入/存儲指令緩沖隊列,用以在高速緩存器數(shù)據(jù)通路出現(xiàn)訪問沖突時緩存載入/存儲指令發(fā)射隊列發(fā)射的指令;載入/存儲指令重排序隊列,用以記錄載入/存儲指令的高速緩存命中狀態(tài)、指令實際順序信息,檢查亂序執(zhí)行的正確性,將高速緩存命中的載入指令得到的數(shù)據(jù)直通到前級流水線,派發(fā)高速緩存缺失的載入指令和所有存儲指令的到相應的高速緩存回填隊列、高速緩存更新隊列和高速緩存回寫隊列。本發(fā)明結構簡單、有效降低硬件開銷。
文檔編號G06F9/38GK102662634SQ20121007623
公開日2012年9月12日 申請日期2012年3月21日 優(yōu)先權日2012年3月21日
發(fā)明者冷冰, 葛海通, 鄢傳卿, 黃歡歡 申請人:杭州中天微系統(tǒng)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1