
發布
注冊
/
登錄I/O模型的案例
I/O多路復用到底是怎么一回事?一文讀懂
高性能架構設計主要集中在兩方面:
盡量提升單服務器的性能,將單服務器的性能發揮到極致
如果單服務器無法支撐性能,設計服務器集群方案
單服務器高性能的關鍵之一就是服務器采取的網絡編程模型。服務器如何管理連接,如何處理請求等。這兩個設計點最終都和操作系統的I/O模型及進程模型相關。
I/O模型:阻塞、非阻塞、同步、異步。
進程模型:單進程、多進程、多線程。
我們所說的I/O模型是指網絡I/O模型,就是服務端如何管理連接,如何請求連接的措施,是用一個進程管理一個連接(PPC),還是一個線程管理一個連接(TPC),亦或者一個進程管理多個連接(Reactor)。
因此,IO多路復用中,多路就是多個TCP連接(或多個Channel),復用就是指復用一個或少量線程,理解起來就是多個網路IO復用一個或少量線程來處理這些連接。
什么是IO操作
我們都知道在Unix環境下,一切皆文件,而文件就是一串二進制流。在信息 交換的過程中,我們都是對這些流進行數據的收發操作,簡稱為I/O操作(input and output),往流中讀出數據,系統調用read,寫入數據,系統調用write。
文件描述符
可是在實際操作過程中,計算機里面有那么多流,我們怎么知道該造作的是哪個流呢?
展開 【CAE案例】換熱器多尺度建模耦合
圖1 換熱器尺寸變化
圖2 換熱器尺度分區
02
模型建立
本案例選取了如圖所示的換熱器幾何模型作為研究對象,由于換熱器是對稱的,只需研究一半的換熱器。該模型的上表面為對稱面,模型包含6個熱通道和6.5個冷通道,通道之間由12個固體片隔開。熱流體的流動方向為x,冷流體的流動方向為-z。
圖3 換熱器幾何模型
首先對通道外的區域構建流體仿真網格,通道內區域寬度方向用一層網格來模擬,得到整個通道的平均量。過渡區網格如下圖所示,模型共包含為3 000 000單元。
圖4 過渡區網格
對于通道內的流體,我們構建了一個元模型(Metamodel),建立了一個鏈接輸入和輸出的I/O近似模型。對單個通道單獨建模,使用多孔介質模型模擬單個通道內流體流動,多孔介質的參數如圖2所示,得到通道內流體溫度分布如圖5所示。同時得到了輸出參數Nu和Cf與輸入的關系。使用克里金法(Kriging)對48次單通道模擬得到的Nu值和139次模擬得到的Cf值進行插值,得到Re=8000時的響應平面,結果如圖6所示。
圖5 多孔介質模型模擬通道內流體溫度分布結果
圖6 Re=8000時的響應平面
通過在每次流體計算結束后,根據得到的結果,獲取Re。調用我們構建的元模型,將獲得的Re作為輸入,得到Nu和Cf。將獲得的Nu和Cf給的流體計算區,得到換熱系數和壓頭損失。
展開 技術分享丨淺談SiP系列-常用軟件工具篇(上)
Cadence針對封裝SIP的仿真分析工具主要分為三大類:一是封裝模型的提取、建模工具,二是信號完整性工具,第三類為電源完整性工具,具體如下:
模型提取
? XtractIM
XtractIM 是一款專門針對IC封裝的寬帶模型提取及封裝性能評估工具。XtractIM能夠生成標準的IBIS格式和SPICE子電路格式的封裝模型。提取出的模型可以是各引腳或各網絡的RLC網表,可以是帶耦合參數的矩陣,也可以是Pi/T型SPICE子電路。XtractIM生成的模型可以用來評估封裝模型電性能的好壞,也可用于系統級的SI和PI的仿真。
? XcitePI
XcitePI 是以芯片為中心的仿真和模型提取工具,可以用來設計和驗證電源分配網絡(PDN)和高速I/O。XcitePI可以提取芯片PDN模型和I/O互連模型。用戶可以選擇對部分結構或者整個芯片提取模型。模型提取考慮到整個芯片電源網格所有導體的寄生電阻,電容和電感的耦合。XcitePI提取的模型可以進一步用在系統級分析或者芯片-封裝-PCB的協同設計。XcitePI還支持時域和頻域的芯片PDN仿真,評估I/O電源地和信號的性能。
? PowerSI
PowerSI 可以為PCB和IC封裝提供快速準確的通用頻域電磁場分析,如S參數、Z參數的模型提取,空間模式下的噪聲耦合分析,EMC/EMI分析,諧振模式分析,走線阻抗和耦合檢查等。從而有助于解決高速電路設計中日益突出的各種PI和SI問題:如信號和電源網絡布線質量的定量分析和耦合分析,電源平面的噪聲分布和去耦電容的放置,封裝的電磁輻射,封裝結構中可能存在的諧振模式,以及走線的整體阻抗檢查和耦合分析等。PowerSI可以在布局布線前用于創建PI和SI的布線規范,也可以在布局布線后用于發現或改善潛在的設計風險。
展開 五分鐘看完SiP設計EDA流程
04、與Cadence 自身的Sigrity系列,Celcius系列,Clarity系列仿真軟件無縫集成,軟件內部的模型參數導出工具可將基板參數直接在仿真工具中進行編輯,縮短了仿真驗證前期準備的耗時。
05、其具有的3D編輯器與主流仿真軟件的仿真模型一體化關聯,保證了SiP封裝在2.5D/3D熱仿真,3D力學仿真驗證領域數據的一致性與準確性。
06、支持多用戶在同一界面下完成設計及檢查。
(裸芯疊構示意)
(Wire Bond 設置)
(3D檢查)
在SiP設計完成后,我們通常需要對SiP封裝的電性能及熱性能進行電熱協同仿真,以保證封裝產品的可靠性。針對封裝SIP的仿真分析工具主要分為四大類:一是封裝模型的提取、建模工具,二是電源完整性及信號完整性分析工具,第三類為電熱協同仿真工具,最后則為熱力結合仿真工具。
--------模型提取工具--------
◆ XtractIM 是一款專門針對IC封裝的寬帶模型提取及封裝性能評估工具。XtractIM能夠生成標準的IBIS格式和SPICE子電路格式的封裝模型。提取出的模型可以是各引腳或各網絡的RLC網表,可以是帶耦合參數的矩陣,也可以是Pi/T型SPICE子電路。XtractIM生成的模型可以用來評估封裝模型電性能的好壞,也可用于系統級的SI和PI的仿真。
◆ XcitePI 是以芯片為中心的仿真和模型提取工具,可以用來設計和驗證電源分配網絡(PDN)和高速I/O。XcitePI可以提取芯片PDN模型和I/O互連模型。用戶可以選擇對部分結構或者整個芯片提取模型。模型提取考慮到整個芯片電源網格所有導體的寄生電阻,電容和電感的耦合。XcitePI提取的模型可以進一步用在系統級分析或者芯片-封裝-PCB的協同設計。
展開 
自動駕駛軟件架構之:中間件與SOA(一)
2.7 異步IO與任務調度
分布式中間件必然涉及到大量的網絡I/O 操作。為了保證I/O 操作不阻塞用戶線程的執行,中間件對異步I/O的支持就非常重要。中間件對異步I/O 的支持體現在兩個方向,一個是如何充分利用操作系統提供的異步I/O機制(如Linux 的 epoll),一個是如何提供方便的程序語言特定的API。
操作系統提供的異步I/O的基本能力及相關的系統調用,各語言都有自己的異步I/O庫來給用戶提供更好用的API接口。
圖2. 11中間件與異步I/O
圖2. 11列舉了用戶代碼、中間件Runtime、異步I/O庫以及操作系統接口之間的關系。例如:Thrift 的C++ 版本基于 libevent庫實現,gRPC的C/C++ 實現使用了libuv,而Java 實現使用了 Netty。
中間件在這里其了一個作用,就是不讓用戶直接使用異步I/O庫的代碼,用戶進行數據通信時直接訪問代碼是中間件根據IDL定義生成的代碼。用戶不需要了解太多異步I/O編程的知識,這些復雜性由中間件Runtime和生成的代碼來處理。
同時中間件 Runtime 還要處理與異步I/O相關的線程模型和任務調度機制,在下文4.3.3 節有更詳細的討論。
2.8 QoS
服務質量策略(QoS)是分布式通訊中一個比較重要的概念。一方面通訊通道會有各種現實的物理約束,比如數據傳輸會出錯,帶寬有限,帶寬會有波動,通訊會有延遲、擁塞;另一方面通訊參與者對傳輸的及時性、可靠性的需求是不同的,不同類型數據的重要性也不一樣。
展開