国产成人福利在线视频播放下载,成人无码www免费视频在线看,放荡的美妇在线播放,大地资源网最新更新,国产成人精品日本亚洲网站

泡泡網(wǎng)CPU頻道 PCPOP首頁      /      CPU     /      評測    /    正文

輕松讀懂移動處理器 CPU微架構全解析

無論是馮·諾依曼還是哈佛結構的處理器,最理想的情況下當然是有無限大的存儲空間和 0 時延的存儲系統(tǒng)了,不過這顯然是無法做到的,因此人們就提出了分層式的存儲系統(tǒng)結構,從寄存器開始每往下一層容量就更大,但是速度也更慢:

Memory Hierarchy

例如對于 ARM Cortex-A9(四核 Tegra 3 的批發(fā)報價一般為 15~21 美元)來說:

物理寄存器堆大小是 56*32-bit = 224 字節(jié)

L1 cache 是 32-KiB(時延 4 周期)

L2 Cache 是 1-MiB,不同大小區(qū)段的時延是:

  • 64 KiB - 128KiB = L1C + L2C = 4 + 19 = 23 周期
  • 256 KiB - 512 KiB = L1_C + L2_C + TLB_L1 = 4 + 19 + 7 = 30 周期
  • 1 MiB = L1_C + L2_C + TLB_L1 + TLB_L2 = 4 + 19 + 7 +7 = 37 周期

不同型號的產(chǎn)品,搭配的內存容量不盡相同,以 華為 Ascend P1 XL 為例,搭配的內存大小為 1GiB,時延大概是 L2 + 110ns,帶寬一般都有 1000MiB/s 以上。

基本上所有的手機都是采用 NAND 型閃存或者閃存卡作為 DASD(直接存取存儲設備)來存放程序和數(shù)據(jù),大小一般在 4 GiB 以上,如果搭配 Class 4 的 8 GiB microSD 卡的話讀寫帶寬一般只有 1.x MiB/ss~3.x MiB/s(傳輸數(shù)據(jù)塊大小為 4KiB 時)和 0.005 MiB/s~1.x MiB/s,價格一般為 20 元人民幣左右 。

這里說的時延是從數(shù)據(jù)載入指令發(fā)出到數(shù)據(jù)抵達處理單元所需的時間,這通常并不難理解。

那么這里的 TLB 時延(TLB_L1/TLB_L2)又是怎么回事呢?這是因為虛擬內存的存在。

虛擬內存(virtual memory)的作用一般有兩個:確保多個程序之間可以有效、安全地實現(xiàn)內存共享;讓程序以為有大一塊連續(xù)的內存空間(例如虛擬內存空間地址有 64-bit,但是我們的物理內存實際上只有 16GiB 或者說系統(tǒng)中的物理地址空間只有 34-bit,又或者是虛擬內存空間是 32-bit,而物理定址空間是 40-bit)。

對于用戶程序在虛擬內存空間里操作的處理器,是需要把虛擬內存空間地址轉換為物理內存空間地址,這就需要進行地址轉換了。負責這個功能的單元一般被稱作內存管理單元(MMU),有時候它又被稱作分頁內存管理單元,當然 MMU 的功能不僅僅是地址轉換(否則就不會被蓋這么大的名頭了)。

內存的基本管理單位被稱作 page(頁面,或者說頁塊),不同處理器支持的頁面大小不一樣,一般都是 4KiB(在 ARMv7a 里還有 64 KiB、1MiB、16 MiB 等),性能導向型的處理器頁面正變得越來越大,而嵌入式處理器似乎有 1KiB 大小的。

記錄物理內存和虛擬內存關系里的數(shù)據(jù)列表被稱作分頁表,這些分頁表也都是放在主內存(物理內存)中的,但是如果每次讀寫內存都要訪問兩次主內存的話效率太低了,所以人們引入了名為 TLB(Translate Look-aside Buffer,轉換后緩存)的 cache 來改善這個問題。

不同的處理器 TLB 大小都不一樣,以我們這里舉例的 Cortex-A9 為例,本身就存在多種 TLB 配置形式,它的 L1 D-TLB 是 32 個條目(或者說分頁地址映射),而 L1 I-TLB 可以配置為 32 或者 64 條目。

總之,早期的單周期式架構效率很差,因此人們引入了流水線設計,可以充分使用各級工位,各工位執(zhí)行時間越短自然 CPU 的頻率可以更快;然后人們又引入了超標量設計,讓 CPU 上可以同時跑幾條指令,隨之而來的相依性等問題讓架構師們想出了分支預測、亂序執(zhí)行、寄存器重命名等等技術來保證處理器的指令執(zhí)行效率。

除了提高指令并行度來改善處理器性能外,還有數(shù)據(jù)并行、線程化并行等方法,但是后兩者都需要程序員和編譯器協(xié)助,并非免費。

影響處理器性能還有內存的帶寬和時延問題,因為取指和數(shù)據(jù)讀寫都必須透過內存訪問來完成,層階式設計是目前成本最為合理的方式。

2人已贊

關注我們

泡泡網(wǎng)

手機掃碼關注