新四季網

具有改進的別名隊列和存儲衝突檢測的處理器的製作方法

2023-06-05 20:45:21


本發明總體上涉及確定並減少處理器中的存儲衝突,並且更具體地涉及使用別名隊列確定存儲衝突,該別名隊列存儲用於更準確地預測存儲衝突的加載和存儲指令指針以便減少存儲器違規和加載指令重放(replay)。



背景技術:

亂序(OOO)處理器允許指令被調度以按與由軟體或程序代碼指定的不同順序進行推測性執行(speculative execution)。例如,加載指令(load instruction)可能在之前的存儲指令(store instruction)之前被調度用於執行,儘管該加載指令需要由該存儲指令存儲的數據。加載指令的這種推測性執行導致需要加載指令被重放(replay)的存儲器違規(memory violation)。指令的重放在處理效率方面代價很高,因此期望檢測到隨後的迭代(iteration)中的衝突的加載/存儲指令對並且防止額外的加載指令重放發生。



技術實現要素:

一種根據一個實施例的用於處理器的寄存器別名表包括別名隊列、加載和存儲比較器以及相關性邏輯。別名隊列的每個條目存儲引起存儲器違規的衝突的加載指令和存儲指令對的指令指針以及有效值。存儲比較器將隨後的存儲指令的指令指針與存儲在別名隊列中的那些存儲指令指針進行比較,並且當檢測到匹配時,存儲比較器將在相應的別名隊列條目中的有效值設置為真。加載比較器確定隨後的加載指令的該指令指針是否匹配存儲在該別名隊列中的指令指針。若是,相關性邏輯將隨後的存儲指令的存儲索引(若由有

效值指示為有效的話)提供作為隨後的加載指令的相關性信息。

寄存器別名表可以包括本地存儲器,該本地存儲器存儲之前彼此衝突導致存儲器違規的加載和存儲指令對的ROB索引。寄存器別名表可以進一步包括RAT邏輯,該RAT邏輯將回退的存儲指令的隨後的存儲索引與存儲在本地存儲器中的存儲索引進行比較,並且在匹配的情況下該RAT邏輯擷取並存儲該存儲指令指針。RAT邏輯可以進一步將重放的加載指令的隨後的加載索引與存儲在本地存儲器中的加載索引進行比較,並且在匹配的情況下,擷取加載指令指針、在別名隊列中分配條目並且將加載指令指針和存儲指令指針存儲到別名隊列的經分配的條目中。

根據一個實施例的處理器包括重排序緩衝器和寄存器別名表。重排序緩衝器包括具有多個條目的ROB隊列,其中,每個條目存儲被發射用於執行的相應的指令的指令指針。寄存器別名表包括別名隊列、RAT邏輯、加載和存儲比較器以及相關性邏輯。RAT邏輯接收由之前的加載指令與之前的存儲指令之間的存儲衝突引起的存儲器違規指示。響應於存儲器違規指示,RAT邏輯從ROB隊列中擷取之前的存儲指令的存儲指令指針以及之前的加載指令的加載指令指針,並且將指令指針存儲於別名隊列的條目中。存儲比較器將隨後的存儲指令的存儲指令指針與存儲在別名隊列中的每個存儲指令指針進行比較,並且當檢測到匹配時,存儲比較器將在相應的別名隊列條目中的相應的有效值設置為真。加載比較器將隨後的加載指令的加載指令指針與存儲在別名隊列中的每個加載指令指針進行比較,並且當檢測到與所述相應的別名隊列條目中的加載指令指針匹配時,加載比較器將AQ命中設置為真。當匹配別名隊列條目的有效值和AQ命中都為真時,相關性邏輯將隨後的存儲指令的存儲索引提供為隨後的加載指令的相關性信息。

處理器的重排序緩衝器可以進一步包括ROB邏輯,ROB邏輯按程序順序回退在ROB隊列中的指令並且ROB邏輯向RAT邏輯標識被回退或被重放的指令。RAT邏輯一旦之前的存儲指令被回退就從ROB隊列中擷取之前的存儲指令的存儲指令指針,並且一旦之前的加載指令被重放就從ROB隊列中擷取之前的加載指令的加載指令指針。寄存器別名表可以進一步包括本地存儲器,該本地存儲器存儲衝突的加載和存儲指令的ROB索引以檢測加載和存儲指令的回退和/或重放。處理器可以包括存儲器子系統,該存儲器子系統檢測由之前的加載與存儲指令之間的衝突引起的存儲器違規並且該存儲器子系統將標識之前的加載和存儲指令的存儲器違規指示提供給重排序緩衝器和/或寄存器別名表。

一種根據一個實施例預測加載和存儲相關性以減少存儲器違規的方法,該方法包括:將衝突的加載和存儲指令的指令指針存儲於別名隊列中、將隨後的存儲指令的隨後存儲指令指針與存儲在別名隊列中的每個存儲指令指針進行比較且當發現匹配時指示該隨後的存儲指令的相應的存儲索引是有效的、並且將隨後的加載指令的隨後加載指令指針與存儲在別名隊列中的每個加載指令指針進行比較且當發現匹配時且如果隨後的存儲指令的相應的存儲索引是有效的話則將存儲索引提供作為隨後的加載指令的相關性信息。

該方法可以包括:接收標識衝突的加載和存儲指令的存儲器違規指示、存儲標識衝突的加載指令的加載索引以及存儲標識衝突的存儲指令的存儲索引、並且當衝突的存儲指令回退時擷取並存儲相應的存儲指令指針。該方法可以包括:將加載索引和存儲索引存儲於本地存儲器中、並且從ROB隊列中擷取相應的存儲指令指針並且一旦存儲指令被回退就存儲於本地存儲器中。該方法可以包括一旦該衝突的加載指令被重放就擷取並存儲相應的加載指令指針。該方法可以包括分配在別名隊列中的條目並將擷取的加載指令指針存儲於別名隊列的條目中並且將存儲在本地存儲器中的相應的存儲指令指針存儲在別名隊列的條目中。

附圖說明

藉助以下詳細說明以及附圖將更好地理解本發明的益處、特徵和優點,在附圖中:

圖1是展示根據本發明的實施例實現的具有改進的衝突檢測以減少存儲器違規和加載指令重放的處理器的框圖;

圖2是根據本發明的一個實施例實現的用於檢測並解析由存儲衝突引起的存儲器違規的處理器的多個部分的框圖;

圖3是根據本發明的另一個實施例實現的圖1的用於檢測並減少由存儲衝突引起的存儲器違規的處理器的多個部分的框圖;

圖4是展示由圖1的處理器執行的用於將衝突的加載和存儲指令的指令指針存儲於圖1的別名隊列的條目中的過程的流程圖;並且

圖5是展示由圖1的處理器的寄存器別名表執行的用於檢測存儲在圖1的別名隊列的條目中的相同的加載/存儲衝突指令對的隨後的執行的隨後的存儲衝突的過程的流程圖。

具體實施方式

該發明人已經認識到用於檢測並解析由加載(LD)指令與存儲(ST)指令之間的衝突(以其他方式在此稱為存儲衝突)引起的存儲器違規的常規處理器配置的缺陷。亂序(OOO)處理器允許指令被調度以按與由軟體或程序代碼指定的不同的順序進行推測性執行。在由衝突引起的存儲器違規的情況中,確定加載/存儲衝突指令對之間的距離以檢測在隨後的迭代中的該相同指令對。然而,許多處理器支持融合(fuse)特徵,該融合特徵將多條指令合併到數量減少的指令(或者甚至單條指令)中,由此可能改變衝突的指令對的加載和存儲指令之間的距離。

該發明人因此還開發出具有另一個別名隊列和存儲衝突檢測機制的處理器,該處理器更準確地檢測出加載/存儲衝突指令對以減少存儲器違規和加載重放。衝突指令對的指令指針被存儲並且與相同指令對的隨後的迭代進行比較,而不是依賴於引起存儲器違規的加載和存儲指令之間的距離。當存儲指令的隨後的迭代基於其指令指針被檢測到時,寄存器別名表指示衝突的隨後的存儲指令被檢測到,並且進一步採集並存儲被分配於存儲指令的重排序緩衝器(ROB)索引。當加載指令的隨後的迭代基於其指令指針被檢測到時,隨後的存儲指令的ROB索引被擷取並且被提供作為隨後的加載指令的相關性信息。以此方式,加載/存儲衝突對的檢測是基於存儲指令的ROB索引在當前迭代中的實際確定的而不是基於可能不準確的距離確定的。

圖1是展示根據本發明的實施例實現的具有改進的衝突檢測以減少存儲器違規和加載指令重放的處理器100的框圖。在一個實施例中,處理器100的微體系結構是x86微體系結構。如果處理器可以正確地執行被設計成用於在x86處理器上執行的大多數應用程式,則該處理器具有x86微體系結構。如果應用程式的預期結果被獲得,則該應用程式可以被正確地執行。具體地,處理器100執行x86指令集的指令並且包括x86用戶可見寄存器集。然而,在此描述的存儲器違規重放減少機制可以在其他體系結構(現有的和未來的兩者)的處理器中被採用。在此使用的術語「處理器」指任何類型的處理單元,包括微處理器、中央處理單元(CPU)、處理核、微控制器等。在此使用的術語「處理器」還包括任何類型的處理器配置,如集成在晶片上的處理單元或包括整合在系統晶片(SOC)等中的那些元件的集成電路(IC)。

處理器100包括指令高速緩存102,該指令高速緩存對來自系統存儲器(未示出)的程序指令進行緩存。處理器100還包括指令解碼器104,該指令解碼器接收來自指令高速緩存102的指令並對其進行解碼。在一個實施例中,指令解碼器104包括指令解碼器,該指令解碼器將處理器100的宏指令集(如x86指令集體系結構)的宏指令解碼成處理器100的微指令集體系結構的微指令。具體地,指令解碼器104將如x86MOV、PUSH、POP、CALL、RET等指令的存儲器訪問指令解碼成微指令序列,該微指令序列包括一個或多個加載或存儲微指令,這些微指令在此被簡單地稱為加載指令或存儲指令。在其他實施例中,加載和存儲指令是處理器100的固有指令集的一部分。

處理器100還包括耦接於指令解碼器104的寄存器別名表(RAT)106;耦接於RAT 106的調度器108(以其他方式已知為保留站);耦接於RAT 106和調度器108的重排序緩衝器(ROB)110;耦接於調度器108和ROB 110的執行單元112;以及耦接於ROB 110和執行單元112的寄存器114。處理器100被配置成亂序(OOO)機,其中,指令可以被調度以按與從指令解碼器104接收到的順序不同的順序執行。OOO處理意味著經常按與由原始碼或軟體程序初始指定的不同的順序執行指令。

執行單元110包括存儲器子系統116(也被稱為存儲器排序緩衝器,或MOB),該存儲器子系統116執行在此通常被稱為加載和存儲指令的存儲器訪問指令。具體地,存儲器子系統116響應於加載和存儲指令從耦接於存儲器子系統116的數據高速緩存120中讀寫數據。因此,存儲器子系統116與用於從系統存儲器中讀寫數據的總線接口單元(未示出)相對應。執行單元110還包括執行非存儲器訪問指令的其他執行單元118,如整數執行單元、浮點單元、多媒體單元等。

儘管存儲器子系統116可以接收並執行相對於彼此不按程序順序的加載和存儲指令,存儲器子系統116正確地解析了可能由這種無序執行造成的存儲器違規或衝突。也就是說,存儲器子系統116確保在存儲衝突的情況下每個加載指令具體地從正確的存儲指令(或者在多個存儲指令供應由單個加載指令指定的數據的情況下的存儲指令)中接收正確的數據。舉例來講,在旨在用於為加載指令提供數據的之前的存儲指令之前當亂序執行加載指令時,存儲器子系統116檢測到加載指令還未從存儲指令中接收到正確的數據。由存儲衝突引起的存儲器違規通常是由存儲器子系統116在執行存儲指令時被檢測到。當存儲器子系統116檢測到存儲器違規時,其提供沿著至ROB 110的信號路徑122的存儲器違規(MV)信息以請求ROB 110重放加載指令從而確保其接收來自存儲指令的正確數據。然而,如在此描述的處理器更準確地檢測這種存儲衝突以便減少由存儲器子系統116請求的加載指令重放的次數。還可以利用被示出為虛線的信號路徑122的延伸將MV信息直接提供給RAT 106。

RAT 106按程序順序接收來自指令解碼器104的經解碼的指令並且確定每條指令與處理器100中其他未回退(retire)的指令的相關性。RAT 106存儲與處理器100中的每條未回退的指令相關聯的寄存器重命名信息。寄存器重命名信息結合了指令的程序順序。因此,如在此所述的,RAT 106包括複雜的狀態機或者響應於重命名信息和它的其他輸入來控制處理器100的各動作的類似物。

RAT 106基於其程序順序、基於其指定的源操作數並且基於重命名信息生成每條指令的相關性信息。相關性信息包括指令的每個輸入操作數的標識符,即輸入操作數依賴的被依賴者指令的標識符(如果有的話)。在一個實施例中,標識符是進入ROB 110中的索引(ROB索引,或RIDX),該標識符標識ROB 110中存儲被依賴者指令和與其相關的狀態信息的條目。如在此進一步描述的,RAT 106包括別名隊列(AQ)130,該別名隊列用於標識涉及加載和存儲指令對的之前的存儲衝突、並且用於更新加載指令的相關性以防止由相同的加載和存儲指令的隨後的執行引起的未來的存儲衝突。注意,加載/存儲指令對可以在循環程序中(或者在由循環機制等多次執行的代碼內)被提供。存儲器違規在第一次執行中被檢測到,並且在相同指令的隨後的迭代中被防止。

RAT 106經由一個或多個發射路徑134將經解碼的指令及其相關聯的相關性信息發射(issue)至調度器108。當處理器100同時地或在相同的時鐘周期內並行地發射多條指令時,可以使用多個發射路徑134。在發射一條或多條指令之前,RAT 106針對每條指令分配ROB 110中的條目,其中,ROB中的每個條目由相應的ROB索引標識或以其他方式訪問。當指令被推送到調度器108中時,利用指令和相應的信息分配並更新ROB 110中的相應條目。因此,指令被發射給調度器108並按程序順序被分配到ROB 110中。ROB 110可以被配置成圓形隊列或具有多個條目的類似物,其使得ROB 110能夠保證按程序順序回退指令。

調度器108包括保留從RAT 106接收到的指令和相關性信息的一個或多個隊列(取決於調度器配置)。調度器108還包括調度邏輯,該調度邏輯當其準備被執行時經由一個或多個調度路徑136將指令從隊列調度至執行單元112。當處理器100同時地或在相同的時鐘周期內並行地調度多條指令時,可以使用多個調度路徑136。當其已知的相關性被解析並且當這些執行單元112中的一個合適的執行單元可用時,指令準備被調度並且被執行。當被依賴者指令已經執行時解析指令相關性從而使得其結果對相關的指令可用,即,該結果對執行相關的指令的這些執行單元112中的一個執行單元是可用的。執行單元112可以經由寄存器114或者經由一個或多個寫迴路徑138直接從執行單元112自身接收已執行的指令的結果。寄存器114可以被實現為物理寄存器文件(PRF),該PRF包括物理寄存器集,每個物理寄存器指向物理寄存器索引或以其他方式由物理寄存器索引標識。ROB 110內對應於存儲指令的條目可以存儲標識寄存器114中用於寫結果的物理寄存器的相應的物理寄存器索引。

存儲器子系統116使用由加載和存儲指令指定的源操作數解析(即,計算)加載指令的加載地址並且解析存儲指令的存儲地址。操作數的源可以是寄存器114、常數和/或由指令指定的位移。存儲器子系統116還在計算的加載地址處從數據高速緩存120中讀取加載數據。存儲器子系統116還在計算的存儲地址處將存儲數據寫入數據高速緩存120中。在一個實施例中,存儲器子系統116包括執行加載指令的一個或多個加載單元以及執行存儲指令的一個或多個存儲單元。

如之前提及的,存儲器子系統116檢測存儲器違規並且經由信號路徑122將MV信息提供給ROB 110。在存儲衝突的情況下,MV信息標識必須重放的加載指令,從而使得ROB 110可以用一個需要重放的指示更新有索引的條目。MV信息還標識加載指令與其衝突的存儲指令。在一個實施例中,加載和存儲指令各自被相應的ROB索引標識。在另一個實施例中,每個指令由相應的指令指針(IP)標識,這些IP標識指示指令在系統存儲器和/或指令高速緩存102中的位置。IP當其通過調度器108、ROB 110和執行單元112被處理時通常被標識為為每條指令配備的下一個順序的IP(Next Sequential IP,NSIP)值或類似物。

當其ROB條目被標記為需要被重放的指令是下一個有待回退的指令(即,是最舊的未回退的指令)時,ROB 110重放加載指令。ROB 110可以經由一個或多個重發射路徑140將加載指令重發射(re-issue)至調度器108以等待隨後重新調度至執行單元112並由此重放。在一個實施例中,ROB 110不僅重放加載指令,而且重放比加載指令新的所有指令。當ROB 110重放該加載指令時,ROB 110還經由RAT 106與ROB 110之間的通信路徑142經由相應的重放信號將此事件用信號發送至RAT 106。重放信號標識被重放(例如通過指定加載指令的ROB索引來標識)的加載指令。如在此進一步描述的,ROB 110提供或RAT 106擷取附加的信息以標識存儲器違規從而更新AQ 130。如在此進一步描述的,RAT 106更新被重放重放的加載指令的相關性信息以減少由類似的存儲器衝突引起的重放事件。

圖2是根據本發明的一個實施例實現的用於檢測並解析由加載(LD)指令和存儲(ST)指令之間的衝突引起的存儲器違規的處理器200的多個部分的框圖。處理器200包括通過解析相關性並發射指令執行的、與RAT 106類似功能的RAT 206,以及通過重發射指令並按程序順序回退指令的、執行與ROB 110類似功能的ROB 210。調度器108和存儲器子系統116被包括並且耦接於RAT 206和ROB 210從而按之前描述的類似方式操作。RAT 206包括RAT邏輯202,該RAT邏輯接收來自指令解碼器104的指令,包括加載(LD)指令(包括從數據高速緩存120和/或系統存儲器加載信息的許多不同類型的指令類型中的任何指令)以及存儲(ST)指令(包括將信息存儲至數據高速緩存120和/或系統存儲器中的許多不同類型的指令類型中的任何指令)。NSIP值包括有每條指令,被示出為針對LD指令的LNSIP值和針對ST指令的SNSIP值。RAT邏輯202解析指令相關性並且針對每條指令生成ROB索引(RIDX),用於對在ROB 210內提供的ROB隊列208的已分配的條目進行定位。沿著如之前描述的發射路徑134將準備發射的指令提供給調度器108。當相應的ST和LD指令被發射至調度器108中時,ROB隊列208中的一對條目212和214分別針對ST和LD指令被分配且被更新。如所示,條目212包括針對ST指令的SNSIP值,而條目214包括針對LD指令的LNSIP值。

RAT 206包括存儲列表216,其存儲針對穿過RAT 206直到其被回退的每條存儲指令的條目。如所示的,例如,每個新的存儲指令(示出為ST_N)包括存儲在存儲列表216中的相應的ROB索引SRIDX_N。存儲列表216的大小是任意的並且被示出存儲多達整數N條存儲指令,單獨地示出為ST1、ST2、、…、STN(ST1–STN)。進入存儲列表216中的每條存儲指令包括由RAT邏輯202確定的相應的ROB索引,針對存儲指令ST1–STN分別示出為SRIDX1、SRIDX2、…、SRIDXN(SRIDX1–SRIDXN)。當每條存儲指令隨後被ROB 210回退時,存儲列表216中的相應條目被無效或被清除以接收新的存儲指令。

存儲器子系統116被配置成用於檢測包括LD與ST指令之間的存儲衝突的存儲器違規。儘管ST指令可以首先按程序順序發生以將數據提供給LD指令,OOO操作可能允許LD指令先被執行。當ST指令被執行時,存儲器子系統116檢測到LD指令未接收正確的數據並且經由標識衝突加載和存儲指令的信號路徑122將相應的存儲器違規(MV)信息提供給ROB 210。MV信息可以包括標識衝突的LD和ST指令的每條指令的信息,如相應的ROB索引LRIDX和SRIDX或者相應的NSIP值LNSIP和SNSIP。在一個實施例中,NSIP值相對較大(例如,49位),而ROB索引相對較小(例如,5位)。可以使用NSIP值的縮減版本,如低頁位(例如,12位)和/或附加的高位散列版本。然而,減小的NSIP值仍通常大於ROB索引。ROB索引LRIDX和SRIDX對於分別針對ST和LD指令在ROB隊列208中快速地標識相應的條目212和214是尤其有用的。

在一個實施例中,存儲器子系統116可以直接地訪問ROB隊列208以指示存儲衝突並以防止隨後的存儲器違規。替代地,MV信息被提供給ROB 210的ROB邏輯218,該MV信息訪問並更新ROB隊列208。如所示的,針對LD指令的條目214包括用於標識加載指令LD的欄位、用於存儲NSIP值LNSIP的另一個欄位、存儲重放值RPLY的另一個欄位、以及存儲距離值DST的另一個欄位。附加的欄位可以被提供但是未示出。欄位中的星號「*」指示空或空值。在LD與ST指令之間的存儲衝突的情況中,在針對LD指令的條目214中的RPLY值被更新或被設置成通知ROB 210重放LD指令。此外,LD與ST指令之間的「距離」被計算並被存儲作為條目214中的DST值。DST值可以簡單地是分別針對ST與LD指令的ROB索引SRIDX與LRIDX之間的差值。

ROB邏輯218通過生成指向在ROB隊列208中的最舊的指針的回退指針RP進一步執行回退功能。當由RP指向的最舊的指針準備回退時,ROB邏輯218執行回退指令並且將其從ROB隊列中208中移除所需的功能。然而,如果RPLY值被設置(如針對LD指令的條目214的情況),則ROB邏輯218引起LD指令被重發射至調度器108以重放。LD指令此時未被回退,而是保持在ROB隊列208中直到被存儲器子系統116成功地重放並最終被回退。當LD指令被重發射以重放時,ROB邏輯218還針對RAT 206聲明重放信號,其中,該重放信號進一步將LD標識為被重放的加載指令。在處理器200的配置中,一旦重放LD指令,就將相應的LNSIP和DST值從ROB隊列208中的條目214複製到RAT 206的別名隊列(AQ)222的條目220中。

當新的加載指令被RAT邏輯202接收並處理時,針對每個新的加載指令的每個LNSIP值(示出為LNSIP_N)被提供給在RAT 206內的NSIP比較器224的輸入端。NSIP比較器224將LNSIP_N與存儲在AQ 222內的之前的LNSIP值中的每個值(示出為LNSIP_P)進行比較。當匹配發生時,如當LNSIP_N等於來自AQ 222的LNSIP_P時,NSIP比較器224針對相關性邏輯227的比較邏輯226的一個輸入端聲明AQ_HIT信號為真。同樣,針對每個新的加載指令,相應的ROB索引值(示出為LRIDX_N)被提供給索引計算電路228的一個輸入端,該索引計算電路在另一個輸入端處在AQ 222內接收匹配條目的DST值。索引計算電路228確定LRIDX_N與DST之間的差值以計算可能的衝突存儲指令的相應的ROB索引(示出為SRIDX)。經計算的SRIDX值被提供給存儲列表216,並且存儲列表216將SRIDX與當前在處理器200中處理的相應的存儲指令的存儲的ROB索引SRIDX1-SRIDXN的每個ROB索引進行比較。在匹配的情況下,存儲列表216針對比較邏輯226的另一個輸入端聲明存儲命中值ST_HIT。比較邏輯226被示出為布爾邏輯AND門,從而使得當ST_HIT和AQ_HIT都為真時,比較邏輯226針對相關性邏輯227的傳送邏輯230的輸入端將相關性信號DEP聲明或以其他方式設置為真。同時,經計算的SRIDX值被提供至傳送邏輯230的另一個輸入端。當DEP被設置為真時,傳送邏輯230將作為相關性信息的、經計算的SRIDX值與經由發射路徑134傳送的新的加載指令一起傳送至調度器108。

調度器108包括針對已經從RAT 206發射的指令的多個條目。如所示的,條目232對應於最新發射的示出為微指令LD_N的加載指令。經計算的SRIDX值被提供在條目232的欄位中,該條目指示加載指令LD_N依賴於由SRIDX標識的存儲指令。具體地,SRIDX旨在為加載指令LD_N依賴的ROB隊列208內的存儲指令的ROB索引。調度器108使用此信息以確保加載指令LD_N在其依賴的存儲指令之前不被調度,從而使得針對相同加載/存儲指令對的隨後的迭代不再重複發生存儲器違規。

當NSIP比較器224不檢測與LNSIP_N的匹配時,則AQ_HIT為假從而使得DEP為假(或不被聲明)並且經計算的SRIDX值不被傳送邏輯230傳送至調度器108作為新加載指令的相關性信息。同樣,即使AQ_HIT為真,如果存儲列表216不檢測與經計算的SRIDX的匹配,則經計算的SRIDX被忽略並且不被傳送邏輯230傳送至調度器108作為新加載指令的相關性信息。如在此進一步描述的,然而,DST值可能不準確地反映衝突的加載和存儲指令之間的距離從而使得經計算的SRIDX「遺漏」存儲在存儲列表216中的正確的存儲指令。以此方式,儘管真的衝突LD/ST指令對可能存在,其可能不被檢測到,從而使得針對加載/存儲指令對的下一次迭代再次發生加載重放。

當加載/存儲指令對的存儲指令與加載指令之間的「距離」固定時,處理器200的配置足以標識存儲衝突。然而,指令解碼器104具備融合(fuse)特徵,其將多條指令合併到單條微指令或「μop」中的。考慮以下在軟體程序等的代碼中的指令序列:

MOV[EAX],EDX(ST)

TEST EAX,EBX

JNE

MOV EBP,[EAX](LD)

第一個移動指令(MOV)通常是將寄存器EDX的內容移至在由另一個寄存器EAX的內容標識(例如,使用存儲器指針或存儲器地址等)的系統存儲器中的存儲器位置中的存儲指令(ST)。第二個移動指令通常是將在由EAX寄存器的內容標識的系統存儲器中的存儲器位置的內容移至另一個寄存器EBP中的加載指令(LD)。中間TEST指令將EAX寄存器的內容與EBX寄存器的內容進行比較並且當這些內容彼此相等時置位相應的標誌位或諸如此類。如果EAX寄存器的內容與EBX寄存器的內容不相等,則下一條JNE指令通知處理器跳到另一個程序位置。中間的省略號「…」通常代表可以插入在所列舉的指令之間的任何數量的指令(包括0條指令)。

以上這些指令被指令解碼器104轉換成一系列微指令或「μop」,其中,在ST指令與LD指令之間存在多個μop。如果解碼每次是完全相同的從而使得μop的數量不變化,則被確定為DST值的ST與LD指令之間的「距離」基本上是固定的。當指令之間的距離保持為基本上固定時,處理器200的配置可以很好地工作用於檢測並減少存儲衝突和相應的加載指令重放。然而,TEST和JNE指令可以被解碼成兩個μop或者它們可以在一次或多次迭代過程中使用融合函數合併成單個μop,從而使得ST與LD之間的距離不固定。融合函數可以應用於給定的代碼序列或程序中的代碼的許多其他的組合。通常,使用距離確定的存儲衝突檢測機制不能處理在其中融合函數或任何類似類型的函數導致加載與存儲指令對之間的距離可變的解碼變化的情形。注意的是,處理器200仍可以正確地操作,因為存儲器子系統116檢測存儲器違規並引起重放以最終確保適當操作。處理整體效率然而可以被顯著地降低。

圖3是根據本發明的另一個實施例實現的用於檢測並解析減少由加載(LD)指令和存儲(ST)指令之間的衝突引起的存儲器違規的處理器100的多個部分的框圖。處理器100支持融合特徵,其中,多條指令可以合併成一條微指令或至少數量減少的微指令,從而使得可能衝突的加載指令與存儲指令之間的距離可以變化。RAT 106和ROB 110進一步詳細地示出耦接於調度器108和存儲器子系統116。RAT 106包括RAT邏輯302,該RAT邏輯302接收來自指令解碼器104的指令,包括分別進一步包括LNSIP值和SNSIP值的LD指令和ST指令。RAT邏輯302解析指令相關性並且生成ROB索引(RIDX),該ROB索引用於對在ROB 110內提供的ROB隊列308的已分配的條目進行定位。在一個實施例中,ROB隊列308包括48個條目,儘管針對不同處理器配置可以設想任何其他數量的條目。沿著如之前描述的發射路徑134將準備發射的指令提供給調度器108。當相應的ST和LD指令被發射至調度器108中時,ROB隊列308中的一對條目312和314分別針對ST和LD指令被更新。按照與之前描述的類似的方式,條目312包括針對ST指令的SNSIP值,而條目314包括針對LD指令的LNSIP值。

存儲器子系統116如之前描述的那樣操作,其中,該存儲器子系統檢測包括在LD與ST指令之間的存儲衝突的存儲器違規。如之前所描述的,存儲衝突通常在執行存儲指令時被檢測到,其中,存儲器子系統116檢測之前執行的加載指令未接收正確的數據。存儲器子系統116經由標識衝突的加載和存儲指令的信號路徑122將相應的MV信息提供給ROB 110。衝突的LD和ST指令可以用類似的方式被標識,如通過提供ROB索引或相應的NSIP值或諸如此類。ROB隊列308的條目312和314分別與條目212和214類似,包括用於標識指令的欄位、用於存儲NSIP值的另一個欄位、以及用於存儲重放值RPLY的另一個欄位。然而,用於存儲距離值DST的欄位並非必需的且不被包括。其它欄位可以被提供但是未示出。在如MV信息指示的在LD與ST指令之間的存儲衝突的情況中,存儲器子系統116或ROB邏輯318針對LD指令置位在條目314中的RPLY值以便一旦回退就指令ROB 110重放LD指令。

可以如通過通信路徑122(圖1)直接將MV信息提供給RAT 106的RAT邏輯302,其中,加載/存儲衝突對的ROB索引LRIDX和SRIDX被提供給RAT 106。此外或者替代地,ROB邏輯318通過上報加載/存儲衝突對的加載和存儲ROB索引LRIDX和SRIDX經由通信路徑142將存儲器違規上報至RAT 106的RAT邏輯302。在一個實施例中,RAT 106包括本地存儲器319用於使RAT邏輯302能夠存儲加載/存儲衝突對的ROB索引LRIDX和SRIDX以追蹤最舊的存儲衝突。在由更舊的存儲衝突引起的隨後的存儲器違規(意味著隨後的加載/存儲衝突對的更舊的存儲指令)的情況中,本地存儲器319被RAT邏輯302更新以反映最舊的加載/存儲衝突對。

按照與之前針對ROB邏輯218描述類似的方式,ROB邏輯318通過生成指向在ROB隊列308中的最舊的指針的回退指針RP進一步執行回退功能。當由RP指向的最舊的指針準備回退時,ROB邏輯318執行回退指令並且將其從ROB隊列中308中移除所需的功能。這些功能包括經由通信路徑142將回退的指令的ROB索引上報至RAT 106的RAT邏輯302。當RP指向條目312以回退引起存儲器違規的加載/存儲衝突對的存儲指令時,相應的ROB索引SRIDX被上報至RAT邏輯302。如果RAT 106的本地存儲器319存儲引起存儲器違規的加載/存儲衝突對的有效ROB索引,則RAT邏輯302將回退的存儲指令的SRIDX與存儲在本地存儲器319中的SRIDX進行比較。在匹配的情況中,RAT邏輯302從ROB隊列308中擷取該回退的存儲指令所對應的NSIP值SNSIP並將SNSIP存儲於本地存儲器319中。因為該存儲指令已經被恰當地執行,所以允許回退,並且一旦回退,ROB條目就可用於利用較新的指令進行更新從而使得所存儲的SNSIP在回退該存儲指令之後不可用。因此,回退的存儲指令的SNSIP被暫時地保存於本地存儲器319中。

當RP指向加載指令的條目314時,ROB邏輯318檢測到RPLY值被置位,並且引起LD指令被重發射至調度器108用於重新執行(另外地被稱為重放)。LD指令此時未被回退,而是保持在ROB隊列308中直到被存儲器子系統116成功地重放並最終被回退。儘管如此,ROB 110經由通信路徑142向RAT邏輯302上報LD指令被重放了並且標識被重放的加載指令的ROB索引LRIDX。RAT邏輯302將被重放的加載指令的LRIDX與存儲在本地存儲器319中的LRIDX進行比較。在LRIDX值之間匹配的情況下,RAT邏輯302分配RAT 106的AQ 130的條目320,並且然後將衝突的存儲指令的SNSIP值從本地存儲器319移動或複製到新條目320的欄位中。此外,RAT邏輯302使用加載指令的LRIDX值來從ROB隊列308中擷取加載指令的相應的NSIP值LNSIP並將LNSIP存儲於AQ 130的條目320的另一個欄位中。

AQ 130的每個條目(包括條目320)進一步包括用於存儲一個存儲有效值STVLD的存儲有效欄位。如在所展示的實施例中所示,AQ 130的每個條目(包括條目320)可以進一步包括用於存儲一個存儲ROB索引SRIDX的存儲ROB索引欄位。在另一個實施例中,AQ 130的條目不包括存儲ROB索引欄位並且替代地存儲ROB索引SRIDX被存儲在RAT 106內單獨的存儲器位置中。當響應於衝突加載指令的重放將LNSIP值和SNSIP值傳送至AQ 130中時,條目320的存儲值欄位和存儲ROB索引欄位(如果包括的話)還沒被定義。應注意的是,來自本地存儲器319中的SRIDX未被存儲,因為它是存儲指令的之前的迭代的ROB索引值因此不再有效。代替地,存儲指令的隨後的迭代的ROB索引被存儲在AQ 130(例如,條目320)或者如在此進一步描述的其他存儲位置中。值得注意的是,AQ 130可以包括用於記錄多個衝突加載/存儲指令對的多個條目320。存儲ROB索引欄位可以與每個條目一起被包括。替代地,對應於每個條目的存儲ROB索引SRIDX存儲於單獨的存儲器位置中。

當隨後的(新的)存儲指令被RAT邏輯302接收並處理時,針對每個隨後的存儲指令的每個SNSIP值(示出為SNSIP_N)被提供給在RAT 106內的NSIP比較器324的輸入端。NSIP比較器324類似於NSIP比較器224,其中,NSIP比較器324將SNSIP_N與存儲在AQ 130內的之前的SNSIP值中的每個值(示出為SNSIP_P)進行比較。當匹配發生時,如當SNSIP_N等於來自AQ 130的條目320的SNSIP_P時,那麼這意味著在之前的存儲衝突中涉及的存儲指令在存儲指令的隨後的迭代中被再次執行。在這種情況下,NSIP比較器324將條目320中的STVLD值設置為真以指示在條目320中在衝突的加載/存儲指令對中涉及的存儲指令現在正被再次執行。在一個實施例中,其中,每個條目320進一步包括存儲ROB索引欄位,NSIP比較器324進一步將與SNSIP_N對應的存儲指令的作為ROB索引SRIDX的ROB索引複製到欄位320的存儲ROB索引欄位中。

當隨後的加載指令被RAT邏輯302接收並處理時,針對每個隨後的加載指令的每個LNSIP值(示出為LNSIP_N)被提供給在RAT 106內的另一個NSIP比較器325的輸入端。NSIP比較器325類似於NSIP比較器224,其中,NSIP比較器325將LNSIP_N與存儲在AQ 130內的之前的LNSIP值中的每個值(示出為LNSIP_P)進行比較。當匹配發生時,如當LNSIP_N等於來自AQ 130的條目320的LNSIP_P時,NSIP比較器325針對相關性邏輯327的比較邏輯326的一個輸入端聲明AQ_HIT信號為真。此外,來自匹配條目320的相應的STVLD值被提供給比較邏輯326的另一個輸入端。比較邏輯326被示出為布爾邏輯AND門,從而使得當STVLD和AQ_HIT都為真時,比較邏輯326針對相關性邏輯327的傳送邏輯330的輸入端將相關性信號DEP聲明或以其他方式設置為真。同時,對應於存儲指令指針(NSIP值)SNSIP的命中存儲指令的SRIDX值被提供給傳送邏輯330的另一個輸入端。命中存儲指令的SRIDX值還被存儲在匹配條目320的存儲ROB條目欄位中(如果如在展示的配置中所示的被提供的話),或者在另一個實施例中被存儲在RAT 106的另一個存儲器位置中。當DEP被設置為真時,傳送邏輯330將作為相關性值SRIDX的經擷取的SRIDX值與經由發射路徑134傳送的隨後的加載指令一起傳送至調度器108。

如前,調度器108包括針對已經從RAT 106發射的指令的多個條目。如所示的,條目232對應於最新發射的示出為微指令LD_N的加載指令。SRIDX值被提供在條目232的欄位中,該條目指示加載指令LD_N依賴於由其相應的ROB索引SRIDX標識的存儲指令。調度器108使用此信息以確保加載指令LD_N在其依賴的相應的存儲指令之前不被調度,從而使得針對相同加載/存儲指令對的隨後的迭代不重複存儲器違規。

當與處理器200的配置進行比較時,在圖3中示出的由處理器100執行的存儲衝突配置不依賴於加載和存儲指令對之間的距離,依賴於距離的實施方式在許多情形中(包括當支持融合特徵時)可能是不可靠的。代替地,存儲衝突配置使用指令指針信息(NSIP值)來明確地標識引起存儲器違規的加載/存儲指令對的加載指令和存儲指令兩者,該存儲器違規最初由存儲器子系統116檢測到。當隨後的存儲指令的NSIP值與存儲在AQ 130中的NSIP值匹配時,指示隨後的存儲指令涉及之前的存儲衝突並且現在在此迭代中被檢測到的STVLD值被設置為有效的,並且同時,隨後的存儲指令的實際ROB索引例如被存儲在AQ 130的匹配條目中。當隨後的加載指令的NSIP值與存儲在AQ 130中的NSIP值匹配時,則相應的存儲指令的ROB索引被擷取並且被用作加載指令的相關性信息。以此方式,不管相同的衝突的加載/存儲指令對的下一次迭代之間的中間μop的數量是多少,加載指令被正確地更新以依賴相應的存儲指令。調度器108檢測相關性並且在該存儲指令之前不調度該加載指令,使得存儲器違規在隨後的迭代中被避免。減少存儲衝突的數量進一步減少加載指令重放的次數以提高操作效率。

當NSIP比較器324未檢測到AQ 130內的匹配時,那麼這意味著隨後的存儲指令或者不涉及衝突的加載/存儲指令對,或者其是衝突的加載/存儲指令對的第一次(或可能僅一次)迭代。如果隨後的加載指令實際上不依賴於隨後的存儲指令,並且如果隨後的加載指令然後根據OOO操作在隨後的存儲指令之前被調度,那麼存儲衝突被存儲器子系統116檢測到並且AQ 130利用加載和存儲NSIP信息被更新。以此方式,NSIP比較器324檢測相同存儲指令的下一次迭代(如果有的話)並且通過設置相應的STVLD值為真並進一步存儲相應的存儲ROB索引來更新AQ 130中的相應的條目。NSIP比較器325檢測隨後的加載指令的下一次迭代(加載NSIP匹配)並且聲明AQ_HIT信號為真,並且利用相應的存儲指令的ROB索引更新加載指令的相關性以防止另一個存儲器違規。

當NSIP比較器325未檢測到AQ 130內的匹配時,那麼這意味著隨後的加載指令或者不依賴於之前的存儲指令,或者其是第一次迭代並且還未涉及與存儲指令的衝突。如果隨後的加載指令實際上確實依賴於之前的存儲指令但加載/存儲對還未被執行,並且如果隨後的加載指令然後根據OOO操作在那個存儲指令之前被調度,那麼存儲器衝突被存儲器子系統116檢測到並且AQ 130利用加載和存儲NSIP信息被更新。以此方式,NSIP比較器325檢測同一加載指令的下一次迭代並且聲明AQ_HIT信號為真,並且利用相應的存儲指令的ROB索引更新加載指令的相關性以防止另一個存儲器違規。

注意的是,存儲在本地存儲器319和/或AQ 130中的NSIP值(SNSIP、LNSIP)可以用縮減形式存儲。例如,NSIP值的形成頁內偏移的低位在某些配置中可以是足夠的。此外或替代地,RAT邏輯302可以進一步包括散列函數,該散列函數將每個NSIP值的高位散列成與低頁內偏移位組合的散列值以用於這些存儲NSIP值。AQ 130包括如期望的一樣多的條目用於在操作過程中檢測多個存儲衝突。在一個實施例中,AQ 130的每個條目包括用於存儲LNSIP值和SNSIP值、SRIDX值和相應的有效值STVLD的4個欄位。在如之前描述的另一替代性實施例中,每個條目包括3個欄位,其中,SRIDX值被存儲在RAT 106內的單獨的存儲器位置中。

圖4是展示由處理器100執行的用於將衝突的加載和存儲指令的指令指針存儲於AQ 130的條目中的過程的流程圖。在第一個塊402處,如由存儲器子系統116檢測到引起存儲器違規的存儲衝突。在下一個塊404處,如由存儲器子系統116上報存儲器違規的MV信息,其中,MV信息標識衝突的加載和存儲指令。MV信息可以包括例如相應的NSIP值(LNSIP和SNSIP)或相應的ROB索引(LRIDX和SRIDX)。在下一個塊406處,如通過置位在相應的ROB隊列條目中的重放值RPLY來標記加載指令以在ROB隊列308中重放。在下一個塊408處,RAT 106存儲衝突的LD/ST指令對的ROB索引LRIDX和SRIDX。在一個實施例中,ROB索引LRIDX和SRIDX被存儲在本地存儲器319中。

一旦在塊410處回退每條存儲指令,就將回退的存儲指令的SRIDX與由RAT 106存儲的SRIDX進行比較。如果在下一個查詢塊412處SRIDX值與確定的值不匹配,那麼操作返回至塊410以回退下一條存儲指令。如果在下一個查詢塊412處SRIDX值與確定的值匹配,那麼操作行進至塊414,其中,RAT 106如在本地存儲器319內擷取並存儲回退的存儲指令的NSIP值SNSIP。一旦在塊416處回退每條加載指令,就將回退的加載指令的LRIDX與由RAT 106存儲的LRIDX進行比較。如果在下一個查詢塊418處LRIDX值與確定的值不匹配,那麼操作返回至塊416以回退下一條加載指令。如果在查詢塊418處LRIDX值與確定的值匹配,那麼加載指令實際上被重放並且是存儲的引起存儲器違規的加載/存儲指令對的加載指令,並且操作行進至下一個塊420處。在塊420處,在AQ 130內分配新的條目,使用LRIDX從ROB隊列308中擷取加載指令的LNSID以定位加載指令,並且然後加載/存儲指令對的SNSID值(可能之前存儲於本地存儲器319中)和擷取的LNSID值被存儲在AQ 130的經分配的條目中。操作至少針對一個加載/存儲指令對被完成並且可以針對由存儲衝突引起的隨後的存儲器違規被重複。

圖5是展示由處理器100的RAT 106執行的用於檢測存儲在AQ 130的條目中的相同的加載/存儲衝突指令對的隨後的執行的隨後的存儲衝突的過程的流程圖。在第一塊502處,針對由RAT 106發射的每條存儲指令,將發射的存儲指令的ROB索引SNSIP與存儲在AQ 130內的每個SNSIP進行比較。如果在查詢塊504處SNSIP值與確定的值不匹配,那麼操作返回至塊502用於下一條存儲指令。操作循環直到檢測到匹配。當在查詢塊504處SNSIP值與確定的值匹配時,那麼操作代替地行進至塊506,其中,發射的存儲指令的相應的SRIDX被存儲,並且匹配條目的相應的STVLD值被設置為真。如之前描述的,SRIDX可以被存儲在AQ 130條目中,或者其可以被存儲在RAT 106的另一個存儲器位置中。操作然後返回至塊502以進行下一次發射存儲指令。操作在處理器100的操作過程中重複。

同時,在另一塊510處,針對由RAT 106發射的每條加載指令,將發射的加載指令的ROB索引LNSIP與存儲在AQ 130內的每個LNSIP進行比較。如果在查詢塊512處LNSIP值與確定的值不匹配,那麼操作返回至塊510用於下一條加載指令。操作循環直到檢測到匹配。當在查詢塊512處LNSIP值與確定的值匹配時,那麼操作代替地行進至塊514,其中,AQ_HIT被設置為真並且匹配AQ條目的STVLD值被輸出或以其他方式被提供。SRIDX值還從匹配AQ條目或從其他存儲器位置處輸出。在下一個查詢塊516處,如果AQ_HIT和STVLD如由AND門326確定都為真,那麼操作行進至塊518,其中,DEP信號被聲明。響應於DEP信號,將SRIDX提供為隨後發射的加載指令的相關性信息。例如,SRIDX可以被提供在隨後發射的加載指令的欄位中,從而使得在由ROB隊列308中的SRIDX標識的存儲指令之前,隨後發射的加載指令將不被調度器108調度。以此方式,隨後的存儲器違規和相應的加載重放被避免。操作然後返回至塊510以進行下一次發射加載指令。操作在處理器100的操作過程中重複。

已經呈現前述描述以使得本領域的普通技術人員能夠製造並使用如在特定申請的上下文及其要求中提供的本發明。儘管已經參照其某些優選版本相當詳細地描述了本發明,但是其他版本和變體是有可能且被設想的。對優選實施例的各種修改對於本領域的技術人員將是明顯的,且在此定義的通用原理可以應用於其他實施例。例如,在此描述的電路可以用包括邏輯器件或電路等的任何合適的方式實現。

本領域的技術人員應認識到,他們可以容易使用所披露的概念和特定實施例作為基礎來設計並修改其他結構以在不脫離本發明的精神和範圍的情況下執行本發明的相同目的。因此,本發明不旨在受限於在此示出並描述的具體實施例,而旨在符合與在此披露的原理和新穎特徵一致的最寬範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀