<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 探索內存架構:處理性能的基石

探索內存架構:處理性能的基石

作者: 時(shí)間:2007-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏
處理器架構的一個(gè)主要性能特點(diǎn)是單位時(shí)間內能執行多少專(zhuān)用工作。EEMBC (微處理器基準協(xié)會(huì ))基準與Dhrystone MIPS (每秒百萬(wàn)次指令) 評分不同,它描述了在系統應用中執行任務(wù)的處理器性能。EEMBC 基準的1.0版本并未涉及對處理器性能系統級的影響,如內存子系統,因為該基準經(jīng)常在處理器的第一內起作用。但EEMBC的第二代針對網(wǎng)絡(luò )與數字娛樂(lè )的系統級基準,更實(shí)際地強調具有較大內存的處理器。

處理器內存子系統的系統級影響越來(lái)越重要,因為內存類(lèi)型和大小及系統中的存取方式規定了處理器內核性能的上限。據 ARM處理器部門(mén)的Gerard Williams III認為,理 想內存系統的處理器必然要采用,并有理想的存取總線(xiàn)的方式。芯片設計師必須首先了解處理器的IPC (每周期指令)能力,然后嘗試實(shí)現能將性能損失降到最低的內存架構。這種性能損失可能來(lái)自緩存或內存存取影響,如由于容量損失、緩存大小或沖突失效形成的丟失率。

匹配良好的內存子系統可以保持處理器的最大IPC 率,而匹配不好的內存子系統會(huì )空置內核的執行單元,而大大地降低處理器的性能。雖然構建與實(shí)現內存子系統不會(huì )影響處理器內核的性能,但還是具有很大的挑戰性,因為在處理器邏輯與內存間存在的性能差異正隨著(zhù)每次工藝技術(shù)的變化而逐步增大。實(shí)際上,內存存取延遲的改進(jìn)及每個(gè)工藝技術(shù)步驟接收內存請求的時(shí)間都比處理器內核邏輯的同量時(shí)鐘速率提高要少。

同樣,軟件開(kāi)發(fā)人員通過(guò)有預見(jiàn)性地在內存子系統中安置編程指令與數據,可實(shí)現的最佳性能影響,就是保持處理器的最大IPC率。然而,在設備使用情況下,內存子系統中匹配不當的程序指令和數據,會(huì )極大地降低處理器的性能。Freescale關(guān)于防止M1存儲沖突的應用注釋提供了一個(gè)范例,說(shuō)明了由于存儲沖突會(huì )造成54% 處理器性能下降,開(kāi)發(fā)人員可通過(guò)更好地安置數據器來(lái)避免發(fā)生這種情況(參考文獻1)。

一般而言,編譯器與仿真工具以全局的優(yōu)化對在內存中放置指令和數據可提供有限的幫助。Green Hills的優(yōu)化編譯器支持內存中的功能重新安排,以?xún)?yōu)化緩存命中率。Texas Instruments的CodeSizeTune 基于仿真的編譯工具可幫助開(kāi)發(fā)人員探索配置,采用影響代碼大小和執行速度的不同的編譯器設置自動(dòng)構建和仿真不同版本軟件(圖1)。一般來(lái)說(shuō),對許多高效和實(shí)時(shí)約束系統來(lái)說(shuō),軟件開(kāi)發(fā)人員的困難就是要了解內存子系統以避免由于系統不能有效地使用處理與內存資源,而承擔不必要的BOM (物料清單)成本。

延遲容差

在實(shí)現內存架構時(shí)最主要的擔心就是使處理器能夠對系統使用的內存的存取延遲實(shí)現容差。設計合理的內存子系統可以掩藏系統多數的內存存取延遲,并能提供足夠的讀/寫(xiě)吞吐速率,即相同數據模塊中隨后發(fā)生的數據內存存取時(shí)間,以支持連續存取。這種情況避免了空置處理器的執行單位的指令和數據。內存設計人員必須根據內存的芯片面積、內存消耗的總功率、軟件開(kāi)發(fā)人員對內存使用的方便性及工具等因素對內存存取延遲進(jìn)行權衡(參見(jiàn)附文1“方便使用”)。

內存存取延遲的直接誘因為用來(lái)執行地址解碼、激活適當字線(xiàn)、檢測位線(xiàn)及驅動(dòng)檢測放大器輸出的時(shí)間。地址解碼延遲為鎖定地址,確定哪個(gè)字線(xiàn)需要激活的時(shí)間,此過(guò)程將O(n log n) 時(shí)間作為內存行與列尋址大小的函數。因此,隨著(zhù)內存結構的擴大,解碼與尋址所需的時(shí)間也相應增加。字線(xiàn)激活延遲是字線(xiàn)上升所需的時(shí)間,主要是與線(xiàn)長(cháng)相關(guān)的RC 延遲,線(xiàn)長(cháng)越長(cháng)則延遲越長(cháng)。位線(xiàn)檢測延遲是檢測放大器檢測單元內容所需的時(shí)間。位線(xiàn)架構、檢測驅動(dòng)線(xiàn)的RC、單元與位的容量比、及檢測放大器拓撲等都會(huì )影響位線(xiàn)檢測延遲。輸出驅動(dòng)延遲是一種RC 延遲,驅動(dòng)從檢測放大器到輸出端傳送數據的時(shí)間。

內存與管理內存的邏輯占用了許多基于處理器設備的芯片面積。結果,內存可以是設備的芯片成本最大的部件,也是系統中消耗動(dòng)態(tài)和靜態(tài)功率最大的部件。許多類(lèi)型的易失與非易失內存各有好壞,系統設計人員必須要兼顧并管理重要的參數,以較低的成本和功耗來(lái)實(shí)現足夠好的內存性能。

為了兼顧掩藏內存存取延遲、芯片成本及功耗,基于處理器的設備通常都依賴(lài)一個(gè)多層內存結構,將少量快速而昂貴的內存靠近處理器內核,而將大量慢速內存遠離處理器內核(圖2)。處理器寄存器是系統中最快且最難得的內存資源,內存體系還可以使用局部?jì)却婊騎CM(緊密耦合的內存)、多階緩存、及易失性與非易失性片上內存與片外內存。

現代的優(yōu)化編譯器在管理使用處理器寄存器方面很合適,但在管理與優(yōu)化其它內存上則較差。這種情況部分是由于利用本地查看程序代碼,優(yōu)化使用寄存器與戰術(shù)實(shí)施配合良好。為了在基于處理器的系統中優(yōu)化使用其它內存結構,如TCM,需要更具全局性地查看系統,此功能正出現在多數的編譯器中。

局部?jì)却婊蜻B接到處理器核的TCM通過(guò)局部或專(zhuān)門(mén)的內存總線(xiàn)來(lái)存取類(lèi)似于緩存的性能。內存存取確定機制為T(mén)CM與緩存間的主要區別。人工暫時(shí)鎖定緩存線(xiàn)可在線(xiàn)級使能緩存,使其作為一個(gè)TCM。程序指令與通過(guò)TCM實(shí)施代碼存取具有確定的能力,但對于緩存,設計人員必須考慮緩存丟失的最壞情況?!皩τ诰彺鎭G失處理的典型經(jīng)驗法則是,存取延遲比前一級別增長(cháng)一個(gè)數量級”Innovative Silicon的架構總監David Fisch 說(shuō)?!癓2 內存存取延遲是L1 緩存存取延遲的10 倍,而L3緩存存取延遲又是L2 內存存取延遲的10倍?!笔褂肨CM將任務(wù)加給軟件開(kāi)發(fā)人員手動(dòng)的管理內存空間,通常是使用DMA 控制器,以便在處理器 需要時(shí),使必要的代碼和數據在TCM 中。

緩存由速度稍慢的內存構成來(lái)掩藏大量速度較慢內存的延遲。較慢的內存密度更大,所以也更便宜。緩存依賴(lài)暫存的空間局部區域來(lái)掩藏較慢內存的存取延遲?!皶捍婢植啃浴?描述了這種區域特點(diǎn):如果處理器請求一些數據,那么,處理器很快又需要相同的數據。通過(guò)在存儲中保留數據復本,緩存可以避免數據進(jìn)入較慢的內存中?!翱臻g局部性” 描述了區域的另一種特性:即處理器請求在某個(gè)內存位置的代碼,而下一處理器請求為下一內存位置或與其相近位置的代碼。利用在初始取數同時(shí)預取靠近當前請求數據的一定量的數據,緩存在其存儲中就可以有下幾個(gè)數據位置,而不會(huì )從較慢內存中發(fā)生另一取數的延遲。

較大緩存通常意味著(zhù)犧牲更多芯片面積而實(shí)現較少的緩存丟失。提高表示特定的內存可存在于緩存中的位置數的緩存相關(guān)性,幾乎總能減少緩存丟失。緩存線(xiàn)長(cháng)度可根據應用的特性作正向或反向變化。Tensilica首席架構師Bill Huffman告訴我們:“配置緩存是一項迭代任務(wù),它高度依賴(lài)可在處理器中執行的應用集?!?/P>

平衡各種緩存參數是一個(gè)復雜的過(guò)程,涉及到在芯片面積與丟失率間的取舍(圖3)。圖中列出了JPEG編碼應用的緩存配置范圍:從負載丟失率為13.4% 的4k字節直接映射的16 字節線(xiàn)的配置,到負載丟失率為1.9%的32k字節、四路相關(guān)的64 字節線(xiàn)的配置(參考文獻2)。盡管緩存越大越好,但對32k字節緩存有優(yōu)勢收益遞減的趨勢。提高緩存線(xiàn)大小所具有的性能優(yōu)勢比緩存大小增加一倍所提高的性能更多,緩存線(xiàn)越長(cháng),芯片成本越小。盡管大緩存相關(guān)性越高越好,但在此例中,從兩路到四路相關(guān)性能產(chǎn)生的優(yōu)勢很少。簡(jiǎn)而言之,對于配置緩存并沒(méi)有明確的經(jīng)驗法則。

決策驅動(dòng)器


處理器內核架構為內存架構選項中設計人員的第一選擇。原因是設計人員構建內核時(shí)假定了內存組件與內核如何接口并對其如何補充。Von Neumann 和Harvard 架構為兩種常見(jiàn)的處理器架構,分別模仿并實(shí)施不同的方法來(lái)查看和存取內存?;趘on Neumann 架構模型的處理器將系統內存建模成保存程序指令和數據的單一存儲結構,并有單一總線(xiàn)接口服務(wù)所有程序和數據存取?;贖arvard 架構的處理器對系統內存建模,程序指令和數據作為物理和邏輯分離存儲結構,以不同的總線(xiàn)接口,一個(gè)用于指令,另一個(gè)用于數據。Harvard 架構支持同時(shí)存取程序指令與數據,而von Neumann 架構則不會(huì )。

為了選擇一個(gè)優(yōu)化的內存設計 ,設計人員還必須了解應用的特點(diǎn)和要求。對內存設計的考慮有: 應用的數據如何進(jìn)出系統,處理器能否直接加載數據或外部代理,DMA控制器能否將數據載入處理器的局部RAM中?同時(shí)也必須對輸出提出類(lèi)似的問(wèn)題:處理器會(huì )不會(huì )直接驅動(dòng)輸出端口?或由外部代理,如DMA 控制器來(lái)驅動(dòng),能否將數據從處理器的局部RAM 傳輸到I/O 接口中?其它問(wèn)題包括:什么是應用的啟動(dòng)過(guò)程?系統能否有效地利用特殊內存接口?片上內存資源能否容納所有的代碼與應用數據,還是僅能容納性能敏感的代碼與數據?

應用啟動(dòng)要求從何處存儲初始化代碼,以及系統通過(guò)什么接口進(jìn)行存取。片上OTP(一次性可編程)ROM很小且具有較高的芯片密度,所以對于儲存啟動(dòng)代碼非常有用。它支持快速啟動(dòng),因為在啟動(dòng)后到開(kāi)始執行不需要等待時(shí)間。初始化代碼可能在閃存中的某個(gè)位置駐存并執行,也可以存在于芯片外內存中,也可映射到片上指令RAM中,這可造成系統啟動(dòng)時(shí)間較長(cháng)。如果應用代碼和數據能駐存于片上內存中,就沒(méi)有必要支持片外內存接口。如果性能敏感的程序代碼可載入局部?jì)却嬷?,設計人員就不需要實(shí)施緩存了。

設計人員可根據已知應用的約束條件調整處理器,這些處理器僅包括應用所需的隨機和非易失性?xún)却媪?。TCM的大小和參數、緩存或特殊內存都是針對應用而設計的。針對較寬應用的處理器通常實(shí)施一個(gè)普通的內存架構,這些架構包括應用的最大資源要求,以提供較少資源的各種設備來(lái)滿(mǎn)足較低的成本要求。對于采用類(lèi)似處理器核架構的系統,內存子系統成為更高級的驅動(dòng)器,以提供系統可交付的處理性能、功耗及價(jià)格(參見(jiàn)附文2“多種選擇”)。

內存控制器對所服務(wù)的內存模塊的實(shí)現進(jìn)行抽象處理,使其成為對處理器系統的數據管道。它們包含讀取內存模塊所必須的邏輯,根據所服務(wù)內存的類(lèi)型,還包括寫(xiě)入、刷新、測試與校正錯誤內存等。對于片上內存,內存控制器能夠顯示公司的專(zhuān)有發(fā)明,它的處理器設備不同于競爭者的類(lèi)似設備。結果,多數的處理器廠(chǎng)商不愿過(guò)于詳細地討論其內存控制器。他們指出了一種用于內存控制器的技術(shù),包括使用寬數據總線(xiàn),多路復用或交錯式存取內存庫、、流水線(xiàn)、交易記錄以及專(zhuān)門(mén)和不確定的存取模式等。

除了實(shí)現的內存的特性外,影響內存控制器設計和效率的系統級因素還包括物理尋址如何映射到內部演示內存系統上,尋址模式的類(lèi) 型(如突發(fā)、隨機與并行存取模式)、混合讀寫(xiě)、未使用的內存如何進(jìn)入低功耗模式。其主要的使用模型通常確定了內存控制器的架構,以使圖形或多媒體控制器可優(yōu)化進(jìn)行序列存取,而通訊系統的內存控制器可在較大的內存范圍內優(yōu)化隨機存取。對于有系統級可靠性要求的嵌入式內存,針對額外的復雜性,內存控制器可提供ECC(錯誤糾正代碼)保護。

內存控制器的流量模式在單核處理器系統與多核處理系統之間有很大區別。單核系統的內存處理器可使用一個(gè)數據流,但在多核心系統中的共享內存,內存控制器需要有處理多個(gè)數據流及隨機流量的能力。對于多核設計,內存架構必須支持快速及有效的信息傳遞,以及處理器間的數據共享。盡管不同的方法可實(shí)現這些目標,但沒(méi)有單一配置對所有類(lèi)型的通信都有效??焖俚狞c(diǎn)對點(diǎn)通道及隊列,對交換短小且重要的信息非常重要,然而共享內存對于共享較大的數據結構更為有益。當使用共享內存時(shí),用戶(hù)需要對同步和內存管理的編程支持。

隨著(zhù)越來(lái)越多的嵌入式系統組合到多內核作為設計的一部分,特別的異構內核,開(kāi)發(fā)工具的發(fā)展會(huì )更好地協(xié)助開(kāi)發(fā)人員從空間和時(shí)間上安置代碼和數據,來(lái)實(shí)現更好的延遲容差,并使復雜性越來(lái)越高的設計發(fā)揮出最佳性能。開(kāi)發(fā)工具必須可協(xié)助開(kāi)發(fā)人員更好地了解系統的全局行為。并將該行為與系統中可用的內存子系統進(jìn)行匹配。否則,內存和芯片設計人員必須繼續將更復雜的控制算法組合到內存控制器中,以明確地補償軟件設計人員和開(kāi)發(fā)工具對內存系統的行為缺少可視性的缺點(diǎn)。

參考文獻
1. Schuchmann, David, “Tuning an Application to Prevent M1 Memory Contention,” Application Note AN3076, Freescale Semiconductor Inc, May 2006.
2. “How to Optimize SOC Performance Through Memory Tuning,” White Paper, Tensilica.

附文1:方便使用

編程的簡(jiǎn)易性對軟件開(kāi)發(fā)人員來(lái)說(shuō)是一種十分重要的特性??呻[藏內存體系的平坦的地址空間,便于開(kāi)發(fā)人員進(jìn)行編程。Microchip Technology數字信號控制器部門(mén)的技術(shù)人員Brian Boles 說(shuō),“一般來(lái)講,將應用針對通用的內存架構而設計編譯器比較容易些?!币尵幾g器最佳地將代碼和數據分配到專(zhuān)用的內存結構,而對應用代碼的全局的動(dòng)態(tài)特性沒(méi)有可視性是比較困難的。

對于操作系統的復雜應用,如Linux,內存架構需要支持虛擬尋址。然而,使用大型操作系統滿(mǎn)足上市時(shí)間表壓力的開(kāi)發(fā)人員來(lái)說(shuō),可能會(huì )失去對如何分隔軟件利用片上資源來(lái)節能和節省成本的深入考慮。沖突的某些問(wèn)題是權衡與確定有多少片上內存需要操作系統通過(guò)片上內存運行,以及這種方法留給應用的內存數量?!暗侥壳盀橹?,通用操作系統沒(méi)有什么虛假的連接規定完整的物理到內存系統的映射,促進(jìn)基礎內存系統最佳使用?!盜ntel嵌入式與通訊集團營(yíng)銷(xiāo)經(jīng)理Phil Ames說(shuō)?!叭欢?,在嵌入式設計中采用手動(dòng)調整軟件,使內存系統得到最佳使用是十分普遍的?!?BR>
管理各種不同類(lèi)別的內存需要專(zhuān)門(mén)的軟件。例如,小容量NAND閃存(528 字節/每頁(yè))與大容量 NAND 閃存(2112 字節/每頁(yè))通常需要不同的閃存管理軟件。一個(gè)解決這種情況的方法是將軟件設計成模塊化嵌入層中,以使軟件開(kāi)發(fā)人員在必須修改時(shí),盡量減少重寫(xiě)量。Toshiba內存產(chǎn)品集團的技術(shù)人員Doug Wong說(shuō):“NAND 閃存為最早的商品化內存,將重要的智能特性加入內存設備中,以使其更易使用?!盩oshiba的LBA-NAND 與兼容eMMC的嵌入式NAND 中都含有可執行NAND管理功能的內置控制器,如模塊管理、損耗均衡、及邏輯到物理模塊的轉換及自動(dòng)錯誤校正等。這種方法明顯地降低了系統架構師或軟件工程師在對FFS(閃存文件系統)或FTL(閃存轉換層)管理NAND閃存設備的負擔。

附文2:多種選擇

以下的范例使用基于A(yíng)RM7的NXP LPC2129 處理器內核,說(shuō)明了某些處理器核架構對內存架構可能的第一決策影響(圖A)。ARM7 為三級流水線(xiàn)von Neumann架構機器,有一個(gè)端口通過(guò)AHB(高級高性能總線(xiàn))橋連接到ARM 高性能總線(xiàn)。該橋是提供在處理器與外設頻率間同步的必要途徑。以容納處理器接口,或作為與多個(gè)主控設備總線(xiàn)的接口。盡管該橋非常必要,但當處理器通過(guò)AHB存取任何數據時(shí),應用一個(gè)雙時(shí)鐘延遲處理,如果地址超出序列,則應用一個(gè)額外的性能處理。

一個(gè)放置程序和數據內存的明顯位置是在A(yíng)HB 一側的總線(xiàn)上,以便處理器可存取內存,且外設可直接存取內存數據。但是,AHB 橋還是應用了兩周期的延遲處理。為了優(yōu)化 處理性能,設計人員將程序內存放置在A(yíng)HB橋的處理器的局部總線(xiàn)一側。盡管這種結構提高了處理性能,但其它總線(xiàn)主控設備不能直接存取此內存,迫使設計人員將更多的內存放置在DMA 主控設備的AHB 一側。這種方法增加了舊工藝的成本,但在深亞微米工藝中,性能增加比成本增長(cháng)更重要。

閃存比6T(6個(gè)三極管)SRAM 單元速度慢,但由于閃存具有非易失性、固態(tài)可靠性、較低的功耗及設計靈活性,所以在嵌入系統中使用閃存非常重要。在單一內存類(lèi)型內的許多子體系結構允許你調整架構以滿(mǎn)足應用的需求。這些需求包括存取速度、編程速度、讀電壓功耗水平及成本等。其它對閃存的重要考慮有,使用年限及支持的擦除次數。

嵌入式閃存的隨機存取速度約為50 ns、商業(yè)閃存約85 ns,在針對速度超過(guò)100 MHz的處理器時(shí)就會(huì )出現問(wèn)題。然而,因為存取嵌入式閃存并不受針腳限制,嵌入式閃存子系統可使用帶有某些接口邏輯的較寬的位寬來(lái)提高性能。在此例中,128 位的寬度允許系統同時(shí)存取四個(gè)處理器數據字,該數據字為線(xiàn)性碼提供了80 MHz 的有效存取頻率。將以可邏輯四字的存取與讀取結合,在以閃存執行時(shí),可允許分支預測實(shí)現可接受的性能。這種方法實(shí)現了更為節省成本和功耗的SRAM 或閃存作為本地內存以隨機存取數據,多數為程序代碼的線(xiàn)性存取,而不僅是SRAM 實(shí)現。

有多種選擇可以實(shí)現總線(xiàn)架構來(lái)支持高帶寬外設。一種是使用多層總線(xiàn),它是一種矩陣,允許多個(gè)主控設備以不同方式存取內存資源。另一種方法是設計一個(gè)AHB至AHB 橋,這樣就有兩個(gè)或更多的獨立總線(xiàn)。由于局部?jì)却鍿RAM 并不支持DMA,不論選擇哪種方法,任何高帶寬外設(如以太網(wǎng)或USB)都應有專(zhuān)門(mén)的內存資源可直接存取內存。所存儲的數據包和幀的數量、數據速率及處理器速度決定著(zhù)專(zhuān)用內存的大小。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 緩存 緩沖

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>