日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

syslog 向内存中缓存_漫谈缓存(Cache)、大规模芯片系统的存储层次结构优化以及开源仿真工具ZSim...

發布時間:2025/5/22 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 syslog 向内存中缓存_漫谈缓存(Cache)、大规模芯片系统的存储层次结构优化以及开源仿真工具ZSim... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次的話題將從緩存開始,以一種易于理解的方式向大家呈現緩存的基本概念,然后拓展至大規模芯片系統的非均一訪問延時的緩存訪問問題,最后簡要介紹一種緩存仿真工具——ZSim。

緩存的概念

處理器和內存之間存在巨大的速度差距。

處理器可以稱得上是整個計算系統中最勤勞的成員:它的終生目標就是每個周期不停地取指令、解決依賴、計算、存取數據。然而,當處理器伸手向內存索取數據時,內存卻需要讓它等待上百個周期。巧婦難為無米之炊,在等待內存返回數據之前,處理器只能干等著,或者嘗試完成其他的計算(亂序執行處理器)。

毫無疑問的是,如果每次處理器訪問內存均需等待上百個周期,那這處理器的最終表現也好不到哪去了。為了“喂飽”處理器的數據需求,架構師們向處理器中添加了緩存結構。

緩存(Cache)是利用處理器訪問內存的局部性而設計的硬件結構,緩存的基石是概率,緩存比內存小得多,多采用SRAM。一般地,處理器訪問地址會有以下規律:時間局部性,即訪問了該地址之后,還有較大可能會訪問該地址;空間局部性,即訪問了該地址之后,還有較大可能會訪問相鄰地址。緩存的終極目標是盡可能把處理器將要訪問的所有內存地址上的數據都準備好:一旦處理器需要這些數據,緩存可以在幾個周期內就將數據雙手奉上,也就是緩存命中。如果處理器需要的數據不在緩存中,就會發生緩存缺失。

用一個形象的比喻:小明想在家里看書。當他想閱讀某系列的某一本書時,需要從一千米遠的圖書館找到該書,然后拿著書回到家并開始閱讀。于是每次他都要去圖書館拿書,閱讀后返回圖書館,將書放回,還要加上二千米的路程。如此操作實再太過麻煩,以至于小明終于想到了一個辦法:每次取書都抱著整個系列的書回家,把多余的書放在自己的書柜上,拿起一本并開始閱讀。假設圖書館沒有借書限制。

在這個比喻中,小明好比處理器,小明的書柜充當著緩存的角色,而圖書館就算內存了。書柜中放著整個系列的書,是因為小明在讀完當前這一本后,還有很大的可能讀系列中其余幾本(空間局部性);小明讀完當前這一本后,還有很大的可能還要再回顧這一本書(時間局部性)。而一旦小明能夠在自己的書柜上拿到接下來要讀的書,就無需再到圖書館去取(緩存命中),節省了時間;而小明讀完了整個系列的書,想要讀其他系列的書,就無法從書柜上獲得(緩存缺失),于是還要前往圖書館。

回到緩存本身。緩存中保存的數據實際是所有內存數據的一個子集。這個子集的厲害之處在于經常能覆蓋處理器所需要訪問的地址。為了使這個子集能夠生效,緩存還需要做到以下幾點:

  • 緩存保存數據的基本單位是緩存塊(緩存塊為64Byte是很常見的大小),也稱為緩存行。
  • 由于緩存數據是內存數據的子集,其索引位數會很少。為了保證索引到的數據確實為處理器想要的數據,還要進行標簽比對。把處理器發出的內存地址,從最低位開始刨去幾位作為塊內偏移,這就得到了塊地址;再刨去幾位作為緩存索引,剩下的就可以通通放到標簽中。
  • 緩存保存的數據需要經常更新替換。
  • 對以上第三點作一個說明。還是小明,如果他想閱讀的書的系列或者種類發生了變化,就還是必須去圖書館取書,而不是從書架上找。

    正如從書柜上取書很快一樣,緩存的快速正是因為緩存比內存小得多,譯碼電路簡單;此外,緩存所采用的SRAM本身的速度也遠遠快于內存常使用的DRAM。如果小明的書柜與圖書館一樣大,那找本書估計也會相當費時。但是緩存的小容量同樣也容易導致緩存缺失。增大緩存會增加緩存命中延時,但有助于減少緩存缺失,因而形成了一個折中問題:要保證命中延時不太大的同時,緩存缺失的頻率也可以接受。該折中問題常常受處理器周期長度的影響。

    有一天,小明覺得自己的書柜太小,以至于他還是要經常跑圖書館。聰明的小明在自家的倉庫里又放了一個大書柜。當小明無法在自己的書柜上找到想要的書時,他會去倉庫的書柜中尋找。如此,小明去圖書館的次數更少了。

    這就形成兩級緩存:小明的書柜是一級緩存,而倉庫里的大書柜是二級緩存。一般地,從最靠近處理器流水線的緩存開始,每一級的緩存都依次增大,命中延時也相應增加。在當前緩存中發生了緩存缺失的地址,有可能在下一級緩存發生緩存命中,就能避免造訪內存。

    對于大規模芯片系統,緩存結構需要解決什么問題?

    在大規模芯片系統(核心數量巨大)的情況下,為了提高緩存的利用率,通常多個核心會共享最外層緩存。核心的增多,使得共享的緩存不斷增大,以至于該級緩存命中延時太高、功耗明顯增加,使得該級緩存失去了意義。

    以上所述的情況,緩存均為一整塊,而訪問緩存中的某個數據,發生緩存命中時均造成固定的延時。因此這種鐵板一塊的緩存也被稱為均一訪問延時(Uniform Cache Access, UCA)的緩存。

    為了降低這個臃腫的最外層共享緩存的命中延時,架構師們將它掰成多塊,每個處理器核心附近都放一塊。處理器核心和它的私有緩存和一部分的共享緩存形成了一個可以重復的單元,就好像整齊平鋪的瓦片(Tile)一樣。一個片上網絡連接這些不同的瓦片,實現消息互通。因為片上網絡帶來的不確定延時,緩存的這種組織方式稱為非均一訪問延時(Non-Uniform Cache Access,NUCA)。具體表現在:在發生緩存命中時,某核心訪問它本地的這部分共享緩存,與訪問其它核心擁有的共享緩存的延時不同;某核心訪問與它較接近的共享緩存,與訪問與它較遠的共享緩存的延時不同。

    既然NUCA擁有一個分布式的最外側緩存,如何將地址映射到這些可重復的單元(Tile)上,是一個問題。經典的做法是將數據以地址交錯(Address-Interleaved)的形式,依次落到不同核心所在的Tile。

    此例中,對于特定的地址,NUCA只會將其映射到一個邏輯上確定的Tile上,因而稱為靜態(Static)NUCA。既然有靜態NUCA那就必然有動態(Dynamic)NUCA——基本思路是打破地址與Tile的確定關系,“動態”體現在要依靠程序運行期間被緩存收集的信息來完成地址到Tile的映射。動態NUCA,以引入一層額外邏輯的代價,以優化地址映射的形式,達到減少NUCA訪問延時的目的。動態NUCA的具體實現方式千差萬別,有興趣的小伙伴可以尋找一些相關文獻深入研究。緩存一致性(Cache Coherency)在多/眾核的情形下,也是一個需要額外注意的問題,但此處篇幅所限,暫且留作日后討論。

    緩存仿真工具——ZSim

    大規模芯片系統的開發周期很長,我們不能等到整個系統的電路都確定之后,再回過頭去修改并優化緩存的層次。也就是說,我們需要一個方法能夠快速得到某個多/眾核系統的大致性能表現。在這種需求的推動下,Daniel Sanchez在斯坦福大學開發了ZSim,用于快速實現大型異構芯片的架構探索和設計[1]。之后,ZSim又陸續經過幾次功能增強。ZSim以一種垂直的方式對多級緩存構成的存儲器層次結構建模,每級緩存之間均以父子關系相互指向,因而能用于多核甚至眾核情形下的仿真。

    現在,ZSim是一個開源的,基于Pin的x86緩存仿真工具,它的優勢有:

  • 速度快,在主流性能的主機上,仿真速度可達到幾百兆條指令每秒。
  • 延展性好,仿真耗時幾乎與核心數量呈線性關系。
  • 提供配置示例,上手簡單。
  • 支持大型異構系統的仿真。
  • 內置實現了一致性協議,并且用戶可以根據實際需要進行修改。
  • 筆者從ZSim提供的Vagrant file中總結了搭建方法:

    系統要求:Ubuntu 12(理論上其他Ubuntu系統也可,但Ubuntu12搭建不容易出錯)

    export DEBIAN_FRONTEND=noninteractive apt-get -y update apt-get -y dist-upgrade

    安裝依賴

    apt-get -y install build-essential g++ git scons apt-get -y install libelfg0-dev libhdf5-serial-dev libconfig++-dev apt-get -y install gfortran openjdk-7-jdk

    安裝vim

    apt-get -y install vim

    安裝pin

    sudo wget http://software.intel.com/sites/landingpage/pintool/downloads/pin-2.14-71313-gcc.4.4.7-linux.tar.gz sudo tar xzf pin-2.14-71313-gcc.4.4.7-linux.tar.gz echo "export PINPATH=~/pin-2.14-71313-gcc.4.4.7-linux" >> ~YOUR_USERNAME/.bashrc

    注意pin的版本,以及設置環境變量時你的用戶名

    設置Linux內存參數,以及進程監視權限

    sysctl -w kernel.shmmax=1073741824 sysctl -w kernel.yama.ptrace_scope=0

    安裝ZSim

    git clone https://github.com/s5z/zsim.git cd zsim scons -jN

    運行例程

    ./build/opt/zsim tests/simple.cfg

    ZSim將打印出一個out.cfg文件,其中記載了仿真的系統的詳細配置情況。同時ZSim也提供HDF5格式的輸出,供數據處理之用。

    注意安裝ZSim時要保證gcc版本至少為4.6。篇幅所限,更詳細的配置和運行指導請參閱ZSim目錄的md文件。此外,要設計額外的緩存模型需要先閱讀源碼。幾句話送給準備閱讀ZSim源碼(C++)的小伙伴們:

  • 源碼中緩存的層次使用的是parents和children的相互指向,其中upper level在ZSim中特指較外側(離核心較遠的)緩存或者內存,lower level反之;
  • 緩存模型中標簽信息與一致性信息并非存放在一處。
  • 緩存模型的各種延時均需要顯式給出,作為參數或者返回值在不同的函數調用中流動。
  • 本篇小結

    緩存的設計,與內存、地址翻譯等問題交雜在一起,形成體系結構中一塊很大的領域——存儲器層次結構。通過閱讀本篇文章,小伙伴們應該對緩存的存在意義和基本工作原理有了一定的認識。然而,正如某位大牛說的,"The devil is in the details.",緩存的狀態更新并不是原子的,因而需要面臨過渡態和冒險等等實際問題。所以還是那句話:千里之行,始于足下。

    參考

  • ^D. Sanchez and C. Kozyrakis, “ZSim: Fast and Accurate Microarchitectural Simulation of Thousand-Core Systems,” in Proc. ISCA-40, 2013.
  • 總結

    以上是生活随笔為你收集整理的syslog 向内存中缓存_漫谈缓存(Cache)、大规模芯片系统的存储层次结构优化以及开源仿真工具ZSim...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国内自拍亚洲 | 在线观看99 | 国产在线毛片 | 免费视频99 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 涩涩视频在线观看 | 国产免费三片 | 特级淫片裸体免费看 | 欧美高清视频一区二区三区 | 夜夜操免费视频 | 亚洲激情啪啪 | 日本成人一区二区 | 男女午夜视频在线观看 | 日韩tv | 91色视频 | 国产成年人免费视频 | 涩色网| 美国一级大黄一片免费中文 | 久久国产精品影院 | 欧美成人一二三区 | 永久免费的av网站 | 永久免费AV无码网站韩国毛片 | 爱色成人网 | 尤物精品视频在线观看 | 操日韩| 午夜精品电影 | 免费看a网站 | 国产三级91 | 久久久久99精品国产片 | 麻豆成人精品国产免费 | 青青草华人在线 | 麻豆成人av | 国产三级理论片 | 一本大道久久久久精品嫩草 | 成人作爱视频 | 国产免费福利 | 精品国产乱码久久久久久闺蜜 | 性生交大片免费看l | 日本内谢少妇xxxxx少交 | 91黄色免费视频 | 成人7777| 九九久久国产精品 | 欧美在线导航 | 国产精品久久久久久无人区 | 青草国产视频 | 久久久久久久久久久国产精品 | 精品国产精品 | 97超碰在线免费 | 五月久久| 韩国电影一区 | 清纯唯美亚洲 | 亚洲日本三级 | 欧美三级黄 | 国产一级片免费 | 91黄色视屏| 伊人五月婷婷 | 黄色一级大片免费版 | 嫩色av | 国产精品va无码一区二区 | 日本偷拍一区 | 一级特黄色片 | 男男av网站 | 久久波多野结衣 | 尤物视频在线播放 | 伊人超碰 | 男女在楼梯上高潮做啪啪 | 在线视频欧美一区 | 九色在线 | 最新中文字幕在线视频 | 欧美肉大捧一进一出免费视频 | 精品国模一区二区三区 | 欧美日韩少妇精品 | 国产一级黄色电影 | 成人性生生活性生交3 | 久久久精品人妻无码专区 | 亚洲日本在线观看视频 | 国产精品视频久久久久久 | 青青草免费看 | 天天色一色 | 欧美精品乱码久久久久久按摩 | 色七七视频 | 老汉色老汉首页av亚洲 | 亚洲色图综合 | 熟女熟妇伦久久影院毛片一区二区 | 国产一级视频在线播放 | 欧美精品一区二区三区四区 | 午夜日韩福利 | 一级不卡毛片 | 国产又大又粗又硬 | 91视频免费入口 | 国产亚洲精品久久久久久久久动漫 | 亚洲成在线 | 亚洲欧美激情另类校园 | 欧美午夜精品久久久久久孕妇 | 国产精品系列在线 | 欧美一区二区三区黄色 | 国产一区二区啪啪啪 | 麻豆一区在线 | 欧美日韩激情网 |