計算機的硬件速度總結

計算機的硬件速度總結
CPU-3GHZ
    每秒執行    3*10^9次/s,也就是1ns執行3次,時鐘週期約0.3ns
    光速是        3*10^8m/s=0.3m/ns        0.3ns光行走0.1m=10cm
    L1 cache        32k        3     cycles        1ns
    L2 cache        6M        14     cycles        4.7ns
    L3 cache:                 25     cycles
    memory                    100 cycles
    正常情況下,當CPU操作一塊內存區域時,其中的信息要麼已經保存在L1/L2 cache,
    要麼就需要將之從系統主存中調入cache,然後再處理
    
    cpu從cache取數據最小單位cache line 64bytes和DDR3 4一次訪問數據大小一致
    memory從ssd拿數據最小單位通常是4k bytes

北橋芯片    bindwidth 10Gb/s
    DDR3主存        1333Mhz    ,250個時鐘週期     83ns
    pci express        x16        8Gb/s
    
    CPU緩存基本由SRAM不需要刷新時間所以凸顯其數據傳輸速度很快
    DRAM只含一個晶體管和一個電容器,集成度非常高,靠電容器來儲存信息,
    所以需要不斷刷新補充電容器的電荷


南橋芯片    bindwidth 1Gb/s
    pci express        x1        500Mb/s
    wired ethernet    1G        100Mb/s
    wireless 802.11b        1Mb/s
    wireless 802.11g        2.5Mb/s
    internet    latency        80ms
    SATA                    300Mb/s
    7200 RPM    16M Cache    60Mb/s
    USB        1.0                1Mb/s
    USB     2.0             30MB/s

網卡
    10G網卡接口每秒需要處理接近15M個packet,15M packets * 8 bit * 84 byte
    1個packet處理時間需要在70ns之內

TLB
    每個進程需要解決虛擬地址到物理地址的映射問題
    4k爲一個頁表,頁表項4bytes表示,4G內存需要2^20個頁表項,約4M內存
    多級頁表查詢會比較慢,一級頁表可以直接獲得物理內存地址。
    二級頁表先確定一級再確定二級然後獲得物理地址,二級頁表2^10+2^10個頁表項,約8k內存
    
    64位系統更大內存,支持成千上萬個進程,需要方案折中
    4級頁表2^9 個PGD + 2^9 個PUD + 2^9 個PMD + 2^9 個PTE = 2048個頁表項
    可以支持2^36個頁表等於256T內存,一個頁表8bytes,需要16K內存,5次內存IO訪問一個物理內存
    
    TLB訪問速度非常快,和寄存器相當,比L1訪問還快。類似cache,全相連,直接匹配,組相連
    1.CPU產生一個虛擬地址
    2.MMU從TLB中獲取頁表,翻譯成物理地址
    3.MMU把物理地址發送給L1/L2/L3/內存
    4.L1/L2/L3/內存將地址對應數據返回給CPU
    perf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses -p $PID

硬盤
    硬盤驅動器(HDD)
        在旋轉盤片上以磁性方式存儲數據,尋道找到磁盤上數據存儲
        成本低
    而固態驅動器(SSD)
        在半導體電路上以電子方式存儲數據,通過電學信號的傳輸完成對閃存芯片。
        主控緩存和閃存組成,由於不存在機械結構;
        受到讀寫次數的限制,固態硬盤的使用壽命比較短
        比機械硬盤更容易受到外界的干擾,而且數據損壞是難以修復的
    固態硬盤讀取數據的時間一般都在0.1ms以下,而機械硬盤讀取數據的時間一般在10ms
    

Numbers Everyone Should Know

L1 cache reference 讀取CPU的一級緩存    0.5 ns
Branch mispredict(轉移、分支預測)        5 ns
L2 cache reference 讀取CPU的二級緩存    7 ns
Mutex lock/unlock 互斥鎖\解鎖            100 ns
Main memory reference 讀取內存數據        100 ns
Compress 1K bytes with Zippy 1k字節壓縮    10,000 ns
Send 2K bytes over 1 Gbps network 在1Gbps的網絡上發送2k字節            20,000 ns
Read 1 MB sequentially from memory 從內存順序讀取1MB                250,000 ns
Round trip within same datacenter 從一個數據中心往返一次,ping一下    500,000 ns
Disk seek  磁盤搜索                                                    10,000,000 ns 
Read 1 MB sequentially from network 從網絡上順序讀取1兆的數據        10,000,000 ns
Read 1 MB sequentially from disk 從磁盤裏面讀出1MB                    30,000,000 ns 
Send packet CA->Netherlands->CA 一個包的一次遠程訪問                150,000,000 ns

DPDK
https://www.slideshare.net/garyachy/dpdk-44585840

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章