全文預覽已結束
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3 5 卷 V o L 3 5 第7 期 N 0 0 計算機工程 C o m p u t e rE n g i n e e r i n g 2 0 0 9 年4 月 A p r i l2 0 0 9 開發(fā)研究與設計技術 文章編號 l o o 岫4 2 8 2 0 眇 0 7 珈2 8 0 珈3文獻標識碼 A中田分類號tT P 3 1 1 5 2 基于龍芯處理器的二進制翻譯器優(yōu)化 蔡嵩橙L 2 劉奇2 王翻2 劉金啊1 1 首都師范大學和中國科學院計算技術研究所計算機科學聯(lián)合研究院 北京1 0 0 0 3 7 2 中國科學院計算技術研究所 北京1 0 0 0 8 0 蔓 二進制翻譯是實現(xiàn)系統(tǒng)遷移的主要方法 但基于通用平臺的僅靠軟件實現(xiàn)的二進制翻譯性能不高 該文以龍芯2 F 處理器為實現(xiàn) 平臺 提出一種Q E M U 二進制翻譯器并進行優(yōu)化 其中包括編譯環(huán)境的優(yōu)化以及二進制翻譯器本身的優(yōu)化2 個方面 對后者的優(yōu)化主要 涉及寄存器直接映射和多媒體指令的改進 實驗結果表明 通過寄存器映射優(yōu)化后 系統(tǒng)能夠獲得i 4 5 的加速比 通過多媒體優(yōu)化后 多 媒體程序的執(zhí)行能達到本地機器執(zhí)行的8 0 的性能 關翻 龍芯2 F 處理器 二進制翻譯器 寄存器 堆棧 O p t i m i z a t i o no fB i n a r yT r a n s l a t o rB a s e do nG O D S O NC P U C A IS o n g s o n g L 2 L I UQ i 2 W A N GJ i a n 2 L I UJ i n g a n 9 1 1 J o i n t A c a d e m e o f C o m p u t e r S c i e n c e C a p i t a lN o r m a lU n i v e r s i t y I n s t i t u t e o f C o m p u t i n g T e c h n o l o g y C h i n e s e A c a d e m y o f S c i e n c e s B e i j i n g1 0 0 0 3 7 2 I n s t i t u t eo fC o m p u t i n gT e c h n o l o g y C h i n e s eA c a d e m yo fS c i e n c e s B e i j i n g1 0 0 0 8 0 A b s t r a c t B i n a r yt r a n s l a t i o ni st h em o s ti m p o r t a n ta p p r o a c ht oa c h i e v es y s t e mm i g r a t i o n b u tt h eo n eb a s e do ng e n e r a la r c h i t e c t u r a la n ds o f t w a r e s u f f e r sf r o mp o o rp e r f o r m a n c e T h i sp a p e ri n t r o d u c e sa no p t i m i z a t i o nm e t h o do fQ E M Ub i n a r yt r a n s l a t i o nb a s e do nG O D S O N 2 FC P U T h i s o p t i m i z a t i o nm a i n l yc o n t a i n st w oa s p e c t s t o o lc h a i na n dQ E M Ub i n a r yt r a n s l a t o ri t s e l f A i m i n ga tt h el a t t e ro n e t h em e t h o d sa r ed i r e c tm a p p i n go f r e g i s t e r sa n dt h eo p t i m i z a t i o nt oM u l t i m e d i aE x t e n s i o n s M M X i n s t r u c t i o n s E x p e r i m e n t a lr e s u l t ss h o wt h a tt h eO So b t a i n ss p e e d u po f1 4 5t h r o u g h d i r e c tm a p p i n go fr e g i s t e r s a n dt h eM M Xp r o g r a m sa t t a i n s8 0 p e r f o r m a n c eo ft h eh o s tm a c h i n et h r o u g ht h eo p t i m i z a t i o nt oM M Xi n s t r u c t i o n s K e yw o r d s G O D S O N 2 FC P U b i n a r yt r a n s l a t o r r e g i s t e r s t a c k l 概述 目前X 8 6 處理器在應用中占據(jù)豐導地位 這是因為在服 務器領域中 大量應用都是X 8 6 架構 R I S C 架構的微處理 器為了能夠廣泛地運行服務器類的成用 實現(xiàn)與X 8 6 架構的 兼容就成為系統(tǒng)實現(xiàn)的旨要任務 另外 X 8 6 架構的桌面應 用程序更加多樣化 很多商業(yè)軟件都基于X 8 6 架構的 所以 R I S C 微處理器嚶想更廣泛地運行多樣化的桌面應用 就需要 實現(xiàn)對X 8 6 的兼容 而二進制翻譯是實現(xiàn)系統(tǒng)遷移的霞要方 法 因此 二進制翻譯器的應用也就越來越廣泛 虛擬機卞要分為2 類 進程級虛擬機和系統(tǒng)級虛擬機 進程級虛擬機提供A B I 級的支持 包括用戶指令及運行環(huán)境 U S R 和系統(tǒng)調用 S Y S C A L L 系統(tǒng)級虛擬機支持完整的 I S A 包括用戶指令及運行環(huán)境 U S R 和特權指令及運行環(huán)境 P R V 實現(xiàn)不同系統(tǒng)的遷移是模擬器的工作 2 J 模擬器的實現(xiàn) 有2 種方法 解釋執(zhí)行和翻譯執(zhí)行 解釋執(zhí)行就是單條指令 的解釋 每次解釋一條目標指令代碼為本地指令代碼 然后 執(zhí)行這條指令 這樣一條一條指令地執(zhí)行完所有程序 翻譯 執(zhí)行是按照指令塊進行翻澤 翻譯好的指令塊存入 T r a n s l a t i o nB l o c k T B 中 以后每執(zhí)行到這段代碼時就到T B 中取指令 從而省去二次翻澤的過程 在指令多次霞復執(zhí)行 的情況下 效率相對于單條指令的解釋執(zhí)行有較大提升 Q E M U 是個二進制動態(tài)翻澤器p l 它有系統(tǒng)級和進程級 2 種工作模式 且叮以實現(xiàn)多種異構平臺的映射 具有依賴 平臺多樣 翻澤效率車H 對較高 開源易移植等優(yōu)點 因此 一2 8 口一 選擇Q E M U 作為二進制翻譯的主要媒介 并在此基礎上針對 龍芯2 F 處理器作相應優(yōu)化 以達到龍芯處理器兼容X 8 6 應 用程序的目的 2 Q E M u 到龍芯的移植 Q E M U 開源代碼中自 支持X 8 6 架構的穩(wěn)定版本 由于龍 芯2 F 是基于M I P S 架構的 而從X 8 6 糾M I P S 程序在控制行 為 最主要的差別就是程序的調用方式 因此將這個版本移 植到龍芯2 F 上的主要工作是消除它們程序調用方式的差異 X 8 6 程序在函數(shù)調用時 返 u l 地址保存在堆棧中 函數(shù) 返回時從返回地址出棧即可 而M I P S 程序在函數(shù)調用時 將返 u j 地址保存在3 l 號寄存器中 返回時由跳轉指令跳轉到 基j 叁項目 國家 9 7 3 計劃基金資助項日 町擴展 叮蓖構片上并 行體系結構與原型芯片設計 2 0 0 5 C B 3 2 1 6 0 1 國家 8 6 3 計劃基 金資助重點項目 低成本先進計算機單機 2 0 0 6 A A 0 1 0 2 0 i 國家 8 6 3 計劃基金資助重點項目 大規(guī)模片上多處理器高性能存儲系 統(tǒng)研究 2 0 0 7 A A 0 1 Z I l 4 國家自然科學摹金資助項目 共享二級 C a c h e 的片l z 多處理器C a c h e 塊分布技術研究 6 0 7 0 3 0 1 7 國家自 然科學基金資助項F I 高性能片I 存儲系統(tǒng) 6 0 7 3 6 0 1 2 園家E l 然 科學基金資助項日 資源有效的單片多處理器結構研究 6 0 6 7 3 1 4 6 北京市自然科學基金資助項日 一種創(chuàng)新的同時多個微線程處理器 關鍵技術研究 4 0 7 2 0 2 4 作者倚介 蔡嵩松 1 9 8 6 男 碩 研究生 主研方向 計算機體 系結構 劉奇 博上研究生 王劍 副研究員 劉金博4 教授 博 l 二生導師 收稿日期 2 0 0 8 0 8 3 0E m a i l c a i s o n g s o n g i c t a c c n 萬方數(shù)據(jù) 3 l 號寄存器保存的地址 M I P S 的這種函數(shù)調用的方式會引 發(fā)一系列問題 二進制翻譯器上層的程序在函數(shù)調用時 返 回地址使用3 1 號寄存器 這就會破壞Q E M U 本身的狀態(tài) Q E M U 的函數(shù)調用返回時就會出現(xiàn)錯誤 因此 本文在二進制翻譯器上運行的程序調用點做標記 每出現(xiàn)這樣的調用 返回地址保存在內存中 而不是3 1 號寄 存器中 返回時從內存中返回 這就可以保持Q E M U 本身的 狀態(tài) 3 編譯環(huán)境的優(yōu)化 在對Q E M U 結構優(yōu)化之前 先針對龍芯2 F 的結構1 4 弓1 優(yōu)化編譯環(huán)境 使得編譯環(huán)境在編譯Q E M U 時能夠編譯出針 對龍芯2 F 處理器更有效率的Q E M U 代碼 這也是提高Q E M U 性能的一個重要方面 龍芯2 F 使用G N Ub i n u t i l s G C C 和G L I B C 作為基本的編 譯環(huán)境 對于G N Ub i n u t i l s 匯編器 在匯編器的g a s 中加入龍芯 2 F 自定義的多媒體指令 從而手工編寫的多媒體指令就可以 由編譯器編譯成目標代碼 為Q E M U 多媒體指令的優(yōu)化做準 備 對于G C C 根據(jù)龍芯2 F 處理器中指令的特點 在G C C 中加入新的指令模板和指令流水線描述 使G C C 編譯出的匯 編指令更適合于龍芯2 F 處理器 對于G L I B C 庫 通過p r o f i l e 統(tǒng)計G L I B C 中使用次數(shù) 頻繁的函數(shù) 根據(jù)龍芯2 F 的結構蘑新改寫這些函數(shù) 為充分利用龍芯2 F 處理器6 4b i t 的資源 編譯工具鏈使 用N 3 2 的A B I 取代原來的0 3 2 的A B I 工具鏈 0 3 2 的工具 鏈編譯的目標程序把處理器看作3 2b i t 而N 3 2 的工具鏈編 譯的目標程序把處理器看作6 4b i t 雖然0 3 2 的工具鏈具有 兼容性好的優(yōu)點 但在資源利用方面顯然后者更出色 更有 助于發(fā)掘出處理器最大的性能 經(jīng)過上述對編譯環(huán)境的優(yōu)化 編譯Q E M U 得到的目標代 碼性能會有大幅度提高 4 Q E M U 二進鍘翻譯器結構優(yōu)化 4 1 寄存器分配優(yōu)化 Q E M U 采用固定寄存器分配方法 這種方法將目標機的 寄存器固定地映射到本機相應的寄存器或者內存中的某個地 址 Q E M U 對于大部分的本地機器 它只是將臨時變量保存 在本地機器的3 個寄存器中 其他大部分的目標寄存器映射 到內存中 臨時變量對于不同的本地機器分配到不同的寄存 器中 這種方法的優(yōu)點是簡便并且可移植性好 但是這樣做 的性能開銷太大 由于在本機是用內存模擬的目標寄存器 當用到目標寄存器時 就會出現(xiàn)大量的訪存操作 因此勢必 會降低二進制翻譯器的效率 一種可行的做法是對于某種特 定結構 盡町能地將目標機程序最常用的寄存器固定映射到 本地機器地寄存器中 這樣寄存器操作時的多余訪存就呵以 避免 這是種犧牲二進制翻譯器的靈活性而達到提高性能目 的的方法 針對龍芯2 F 處理器優(yōu)化Q E M U 讓Q E M U 局限于該結 構即可 從而可以將X 8 6 目標機的寄存器固定一對一映射于 龍芯2 F 的寄存器上 X 8 6 共有8 個通用寄存器 分別為E A X E B X E C X E D X E S E D I E S P 和E B P 通過對Q E M U 二進制翻譯器上 W i n d o w s 9 8 操作系統(tǒng)啟動過程的p r o f i l e 得到X 8 6 架構下操 作系統(tǒng)啟動過程對這8 個通用寄存器的訪問次數(shù)及其所占百 分比 如表l 所示 裹1X 8 6 架構下O S 啟動過程對寄存暑昀訪問顫度 由上述結果可以得到操作系統(tǒng)在X 8 6 架構運行時最常用 的通用寄存器是E A X E S P E B P 所以 將這3 個最常用的 寄存器映射于s 4 s 5 和s 6 寄存器 另外定義s 0 s l s 2 和s 3 4 個寄存器保存臨時變量 并且修改編譯器 使得其他程序 盡量不使用這7 個寄存器 如果其他程序使用這些寄存器 需要首先把這些寄存器中的值保存到內存中 程序退出后再 將這些寄存器的值從內存中恢復回來 對于寄存器關聯(lián)的這種優(yōu)化 可以使運行在Q E M U 上的 X 8 6 系統(tǒng)或程序在使用E A X E S P E B P 這3 個寄存器時 省 去不必要的訪存操作 從而提高目標機寄存器操作的效率 4 2 多媒體處理優(yōu)化 多媒體技術是I n t e l 公司在處理器中為增強處理器的媒 體處理能力而引入的一項技術 分為M M X S S E S S E 2 和 S S E 34 類 M M X 技術是I n t e l 公司在奔騰I I 的I A 一3 2 架構中 引入的 它實現(xiàn)了單指令流多數(shù)據(jù)流 S I M D 增強了媒體處 理的性能 龍芯2 F 處理器中定義自己的多媒體指令 這些多媒體指 令一對一實現(xiàn)M M X 指令的所有功能 因此 可以使用龍芯 2 F 處理器中的這些多媒體指令對Q E M U 二進制翻譯器中的 多媒體處理部分進行優(yōu)化 Q E M U 中對于多媒體處理部分是軟件模擬 每條X 8 6 的 多媒體指令都是用一個相應的函數(shù)來實現(xiàn) 一條指令經(jīng)過翻 譯后會變成很多條指令 這會影響二進制翻譯器的效率 這 種做法是通用的做法 擴展性好 可以適用于X 8 6 架構到其 他多種架構的翻譯 但是它是以犧牲性能為代價的 由于龍芯2 F 處理器中定義了跟M M X 指令相似的多媒體 指令 因此可以對Q E M U 進行優(yōu)化 把Q E M U 中多媒體指 令用相應的龍芯指令來實現(xiàn) 而放棄原有的函數(shù)實現(xiàn) 這樣 一條X 8 6 的M M X 指令就可以翻譯成為一條對應的龍芯指令 了 從而二進制翻譯器的性能可以大幅提高 翻譯出來的代 碼的性能幾乎可以達到本地機器t 執(zhí)行相應代碼的性能 這 種做法使Q E M U 固定于特定的龍芯處硼器 但是二進制翻譯 器的媒體處理部分性能可以得到大幅度的提高 例如 一條x 8 6 的多媒體指令 p u n p c k l w dm m 0 m m l 該指令實現(xiàn)將M M X 寄存器0 和l 中的數(shù)據(jù)按一定順序 進行拼接 結果存放在M M X 寄存器0 中 優(yōu)化前 二進制翻譯器僅靠軟件的方法翻譯為以下一段 代碼 S W O 2 4 4 1 9 S W 0 2 5 6 1 9 S W O 2 6 0 1 9 l u i 6 0 x 0 o r i 6 6 0 x 1 0 8 2 8 l 一 萬方數(shù)據(jù) a d d u 6 6 1 9 l h u 2 0 6 a d d i u 1 0 1 0 一1 6 s h 2 8 l O l u i 5 O x O o r i 5 5 0 xl1 0 a d d u 5 5 1 9 l h u 2 O 5 n o p s h 2 1 0 l O l h u 3 2 6 1 w 2 8 I O s h 3 1 2 1 0 I h u 4 2 5 h o p s h 4 1 4 1 0 1 w 3 1 2 l O a d d i u 1 0 1 0 1 6 s w 2 O 6 s w 3 4 f 6 1 由于僅靠軟件翻譯 因此一條X 8 6 指令翻譯后會產生 2 5 條M I P S 代碼 翻譯效率比較低 優(yōu)化后 二進制翻譯器翻譯得到如下指令 該指令是與 原X 8 6 指令一一對應的龍芯2 F 的多媒體指令 g s p u n p c k l w d f 2 0 f 2 0 f 2 2 5 測試結果 5 1 潮試環(huán)境 本文在龍芯2 F 處理器卜進行數(shù)據(jù)測試 龍芯2 F 處理器 是款6 4b i t p l j 發(fā)射 亂序執(zhí)行的R I S C 處理器 實現(xiàn)M I P S1 1 1 指令集 該處理器采用先進的亂序執(zhí)行技術 如寄存器重命 名 轉移預測和動態(tài)調度等 和C a c h e 技術 如非阻塞C a c h e l o a d 猜測 動態(tài)內存相關和寫合并技術等 并集成片上二級 C a c h e D D R 2 內存控制器和I O 控制器來提高流水線效率及 I O 能力 5 2 結果分析 5 2 1 寄存器優(yōu)化測試結果 由于通用寄存器影響的主要是系統(tǒng)進程切換時的性能 為測試寄存器映射部分的優(yōu)化效果 選擇使用在Q E M U 上操 作系統(tǒng)啟動和關機時間來肘比優(yōu)化前后的二進制翻譯器的效 率 在 二進制翻譯器上運行W i n d o w s 9 8 操作系統(tǒng) 并且設置 系統(tǒng)啟動后馬上自動關閉 計算系統(tǒng)從開始啟動到關閉的時 間 測試結果如表2 所示 裹2 寄存謄優(yōu)化部分測試結果 經(jīng)過優(yōu)化后 系統(tǒng)在使用目標寄存器E A X E B P 和E S P 時不需要進行訪存操作 而足直接使用龍芯2 F 的s 4 s 5 和s 6 寄存器 因此 減少了系統(tǒng)的啟動關閉時間 獲得較高的加 速比 5 2 2 多媒體部分優(yōu)化測試結果 為測試Q E M U 多媒體部分優(yōu)化的效果 選擇3 個典型應 一2 8 2 一 用的M M X 算法加以實現(xiàn) 分別是圖像壓縮中的I D C T 算法 快速傅里葉算法以及像素轉換的Y U V 2 R G B 算法 這3 個算 法用X 8 6M M X 匯編指令手工實現(xiàn) 將程序用優(yōu)化過的 Q E M U 進行翻譯 翻譯過的代碼提取后在龍芯2 F 處理器七 運行 把這個性能同沒有優(yōu)化過的Q E M U 上翻譯的代碼進行 比較 從而計算加速比 另外 將這3 個算法用M I P SM M X 匯編指令在龍芯2 F 上手工實現(xiàn) 得到本機執(zhí)行的理想時間 定義優(yōu)化過的翻譯代碼的執(zhí)行時間和奉機執(zhí)行的理想時間的 比率為二進制翻澤器的效率 各種測試結果如表3 所示 表3 多媒體優(yōu)化部分測試結果 經(jīng)過優(yōu)化后 這幾個程序翻澤得到的代碼接近千一條 M I P S 指令對應于一條X 8 6 指令 所以 優(yōu)化后的結果很接 近于理想情況 這就是優(yōu)化后二進制翻譯器效率較高的原因 優(yōu)化前的二進制翻譯器僅僅利用軟件翻譯 一條X 8 6 指令翻 譯出的代碼往往對應 f 十幾條甚蠆幾十條M I P S 指令 導致 效率的低下 這也是優(yōu)化后加速比較高的原因 6 結束語 由于Q E M U 二進制翻澤器的內部結構本身支持多f 臺 翻譯結構采用軟件模擬 岡此一條目標指令翻譯后通常會變 成兒十條本地指令 另外 對于目標機各種結構的處理也是 軟件模擬 這會導致翻譯效率低下 本文針對龍芯2 F 處理器 的特定結構 從各方面描述Q E M U 二進制翻譯器針對龍芯 2 F 處理器特定結構的優(yōu)化 在系統(tǒng)方面 優(yōu)化編譯器環(huán)境 使編澤出的Q E M U 代碼 更適合十龍芯2 F 的結構 在Q E M U 本身方面 進行寄存器 映射和M M X 指令2 方面的優(yōu)化 雖然使Q E M U 儀限于龍芯 2 F 處理器 但提高了翻譯效率 參考文獻 1 A n t o nC M a r kH F X1 3 2 AP r o f i l e d i r e c t e dB i n a r yT r a n s l a t o r J I E E EM i c r o 1 9 9 8 18 2 5 6 6 4 2 1L e o n i dB T e v iD I A 一3 2E x e c u t i o nL a y e r AT w o p h a s eD y n a m i c T r a n s l a t o rD e s i g n e dt oS u p p o r tI A 3 2A p p l i c a t i o n so nI t a n i u m b a s e dS y s t e m s C P r o c o f t h e3 6 t hA n n u a lI E E E A C MI n t 1S y m p o nM i c r o a r c h i t e c t u r e S 1 I E E EP r e s s 2 0 0 3 3 F a b r i c eB Q E M U AF a s ta n dP o r t a b l eD y n a m i cT r a n s l a t o r C P r o c o ft h e2 0 0 5U S E N I XA n n u a IT e c h n i c a lC o n f e l e n c e B e r l i n G e r m a n y s p n n g e r V e r l a g 2 0 0 5 4 H uW e i w u Z h a n gF u x i n L iZ u s o n g M i c r o a r c h i t e c t u r eo f t h e G o o d s o n 一2P r o c e s s o r l J J o u r n a lo fC o m p u t e rS c i e n c ea n d T e c h n o l o g y 2 0 0 5 加 2 2 4 3 2 4 9 5 H uW e i w u T a n gZ h i m i n M i c r o a r c h i t e c t u r eD e s i g no ft h eG o d s o n I P r o c e s s o r i nC h i n e s e J C h i n e s eJ o u r n a lo fC o m p u t e r s 2 0 0 3 2 6 4 3 8 5 3 9 6 編輯陳文 萬方數(shù)據(jù) 基于龍芯處理器的二進制翻譯器優(yōu)化基于龍芯處理器的二進制翻譯器優(yōu)化 作者 蔡嵩松 劉奇 王劍 劉金剛 CAI Song song LIU Qi WANG Jian LIU Jin gang 作者單位 蔡嵩松 CAI Song song 首都師范大學和中國科學院計算技術研究所計算機科學聯(lián)合研究院 北京 100037 中國科學院計算技術研究所 北京 100080 劉奇 王劍 LIU Qi WANG Jian 中國科學院計算技術研究所 北京 100080 劉金剛 LIU Jin gang 首都師范大學和 中國科學院計算技術研究所計算機科學聯(lián)合研究院 北京 100037 刊名 計算機工程 英文刊名 COMPUTER ENGINEERING 年 卷 期 2009 35 7 被引用次數(shù) 0次 參考文獻 5條 參考文獻 5條 1 Anton C Mark H FX 32 A Profile directed Binary Translator 1998 02 2 Leonid B Tevi D IA 32 Execution Layer A Two phase Dynamic Translator Designed to Support IA 32 Applications on Itanium based Systems 2003 3 Fabrice B QEMU A Fast and Portable Dynamic Trans
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人機動車抵押借款合同2024樣式版B版
- 2025年度新能源車輛設備租賃服務合同范本4篇
- 二零二五版新能源電站安全生產運營服務合同3篇
- 二零二五年度文化演出擔保期限與票務銷售協(xié)議4篇
- 二零二五年阿里巴巴電商店鋪全面托管與運營合同范本3篇
- 2025年度園林景觀樹木養(yǎng)護管理合同協(xié)議4篇
- 科技企業(yè)中的精細化飼料管理模式構建
- 2025版美食廣場食品安全責任書4篇
- 2025年度磁性材料環(huán)保認證與采購合同3篇
- 二零二五版拆房工程噪音污染防治合同3篇
- (二統(tǒng))大理州2025屆高中畢業(yè)生第二次復習統(tǒng)一檢測 物理試卷(含答案)
- 口腔執(zhí)業(yè)醫(yī)師定期考核試題(資料)帶答案
- 2024人教版高中英語語境記單詞【語境記單詞】新人教版 選擇性必修第2冊
- 能源管理總結報告
- 充電樁巡查記錄表
- 阻燃材料的阻燃機理建模
- CJT 511-2017 鑄鐵檢查井蓋
- 配電工作組配電網(wǎng)集中型饋線自動化技術規(guī)范編制說明
- 2024高考物理全國乙卷押題含解析
- 介入科圍手術期護理
- 青光眼術后護理課件
評論
0/150
提交評論