chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何處理CPU亂序調度中的內存數(shù)據(jù)依賴

數(shù)字芯片實驗室 ? 來源:數(shù)字芯片實驗室 ? 2024-08-06 11:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

要處理CPU亂序調度中的內存數(shù)據(jù)依賴,通常涉及兩個步驟:

1.計算內存訪問的有效地址

2.檢查所有未處理完的load/store的地址,并確保沖突的load/store不能亂序執(zhí)行

A Load / Store Processing Model

load/store處理模型,如下圖所示。

a459f9f4-4019-11ef-b8af-92fbcf53809c.jpg

load和store指令首先發(fā)給reservation station ,然后發(fā)送到load單元或store 單元。

在store單元中,store 指令首先經(jīng)過有效的地址計算和地址轉換,然后駐留在“Finished ”store 緩沖區(qū)中。 “completed ”store 緩沖區(qū)中的store 指令最終會提交到內存中。

同樣,load指令首先通過地址生成和翻譯,并最終讀取數(shù)據(jù)cache 以從內存中獲取數(shù)據(jù)。

我們可以做出的一個假設是,store 指令需要按程序順序完成,因此WAW數(shù)據(jù)依賴性是默認強制執(zhí)行的。從本質上講,處理數(shù)據(jù)依賴項可以簡化為處理load/store 依賴項(RAW和WAR)。

Handling Data Dependencies with In-order Load / Store Dispatch

最直接的解決方案是按程序順序向公共reservation station 發(fā)出load/store 指令,并從reservation station 按FIFO順序發(fā)送。只有當store 緩沖區(qū)為空時,才能發(fā)送load。然而,load指令的延遲很長,不可預測。盡早執(zhí)行l(wèi)oad至關重要。

改進的方案是支持不同地址的load bypass ,如果store 緩沖區(qū)中有地址匹配,則stall load指令。因此,不同地址的load可以繼續(xù)進行。

a4732afa-4019-11ef-b8af-92fbcf53809c.jpg

為了進一步加快load。如果存在地址匹配,但store buffer數(shù)據(jù)不可用,則load stall;如果存在地址匹配和store 數(shù)據(jù)可用,則將數(shù)據(jù)直接forward 到load。由于load直接從store buffer接收數(shù)據(jù),因此可以盡早執(zhí)行l(wèi)oad指令,并避免數(shù)據(jù)cache 訪問。

a4872be0-4019-11ef-b8af-92fbcf53809c.jpg

Handling Data Dependencies with Out-of-order Load / Store Dispatch

如果我們亂序調度load/store,可以在store之前發(fā)放load。由于無法檢查地址匹配,因此存在潛在的RAW依賴關系。

a4b2721e-4019-11ef-b8af-92fbcf53809c.jpg

與store指令類似,如果從reservation station 發(fā)送的store在“finished ”load buffer中發(fā)現(xiàn)匹配的load,則應刷新所有指令。

這種放松也引入了可能的WAR數(shù)據(jù)依賴性。load地址可能與后續(xù)store的地址匹配,因此會觸發(fā)不正確的數(shù)據(jù)forward 。一個簡單的解決方案是stall 匹配地址的“finished ” store的load,僅具有匹配地址的“completed ”store上數(shù)據(jù)forward 給load。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11187

    瀏覽量

    221296
  • 內存
    +關注

    關注

    8

    文章

    3156

    瀏覽量

    75882
  • 數(shù)據(jù)依賴

    關注

    0

    文章

    2

    瀏覽量

    5735

原文標題:CPU面試題Q7:如何處理內存中的數(shù)據(jù)依賴?

文章出處:【微信號:數(shù)字芯片實驗室,微信公眾號:數(shù)字芯片實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Cjson協(xié)議申請不到內存何處理

    最近用原子哥的ucosII例程做個東西,使用到Cjson協(xié)議,其中使用到了申請內存內存回收的問題,用的是原子哥的內存管理函數(shù),前幾次還可以,通信幾次就申請不到內存了,感覺好像是
    發(fā)表于 04-26 21:22

    何處理好FPGA設計跨時鐘域間的數(shù)據(jù)

    跨時鐘域處理是FPGA設計中經(jīng)常遇到的問題,而如何處理好跨時鐘域間的數(shù)據(jù),可以說是每個FPGA初學者的必修課。如果是還是在校的學生,跨時鐘域處理也是面試中經(jīng)常常被問到的一個問題。在本篇
    發(fā)表于 07-29 06:19

    labview寫入access數(shù)據(jù)亂序問題

    用database insert 插入數(shù)據(jù),移位寄存器當作順序編號,發(fā)現(xiàn)不管循環(huán)框頻率設多少,到編號713這里必定會跳到737,然后中間這段會在1035后出現(xiàn),其他地方也有類似的亂序,多次寫入亂序
    發(fā)表于 08-09 10:23

    何處理存儲在非易失性設備內存數(shù)據(jù)集損壞

    保護您的嵌入式軟件免受內存損壞本文的目的是提供一種軟件方法,解釋如何處理存儲在非易失性設備(如小型 EEPROM 或閃存)內存數(shù)據(jù)集損壞
    發(fā)表于 12-24 07:27

    何處理才能使CPU的效率更高呢?

    ,大家都知道,當按鍵按下之后需要抖動處理,一般會延時20MS再判斷按鍵是否有效,如果這20MS內處在原地踏步的等待狀態(tài),那么效率會非常低。如何處理才能使CPU的效率更高呢?采用時間片輪轉算法可以解決這個
    發(fā)表于 01-27 07:28

    stm32如何處理數(shù)組數(shù)據(jù)

    更新一下博客,最近有一些朋友問我如何處理數(shù)組數(shù)據(jù),順便發(fā)一下教程,代碼如下if(UartHandle->Instance == USART3)//stm32的串口
    發(fā)表于 02-21 07:09

    編譯器優(yōu)化的靜態(tài)調度介紹

      指令調度簡介  指令調度是指對程序塊或過程的操作進行排序以有效利用處理器資源的任務。指令調度的目的就是通過重排指令,提高指令級并行性,
    發(fā)表于 03-17 17:07

    什么是CPU分枝/亂序執(zhí)行?

    什么是分枝/亂序執(zhí)行?   分枝(branch)是指程序運行時需要改變的節(jié)點。分枝有無條件分枝和有條件分枝,其中無條件分枝只
    發(fā)表于 02-04 10:49 ?1028次閱讀

    何處理cpu風扇轉速過快

    何處理cpu風扇轉速過快 問:我前天在電腦城組裝了一臺電腦,機器運轉還算好,可是CPU風扇聲音很大。CPU溫度在39℃~40℃的時候,
    發(fā)表于 02-25 10:23 ?1w次閱讀

    小型Hadoop集群的數(shù)據(jù)分層調度處理算法分析

    調度處理的要求也在逐漸提高,僅依靠CPU主頻的提升并不能快速的處理數(shù)據(jù)帶來的壓力,快速有效的算法成為目前
    發(fā)表于 11-03 15:02 ?1次下載
    小型Hadoop集群的<b class='flag-5'>數(shù)據(jù)</b>分層<b class='flag-5'>調度</b><b class='flag-5'>處理</b>算法分析

    基于GPU/CPU的流程序多粒度劃分與調度

    并實現(xiàn)了面向GPU/CPU混合架構的數(shù)據(jù)流程序任務劃分方法和多粒度調度策略,包括任務的分類處理、GPU端任務的水平分裂和CPU端離散任務的均
    發(fā)表于 11-23 14:29 ?0次下載

    互聯(lián)車輛如何處理數(shù)據(jù):3個常見問題

    互聯(lián)車輛如何處理數(shù)據(jù):3個常見問題
    發(fā)表于 10-31 08:23 ?0次下載
    互聯(lián)車輛如<b class='flag-5'>何處理</b><b class='flag-5'>數(shù)據(jù)</b>:3個常見問題

    Redis服務器的內存耗盡后,Redis會如何處理呢?

    作為一臺服務器來說,內存并不是無限的,所以總會存在內存耗盡的情況,那么當 Redis 服務器的內存耗盡后,如果繼續(xù)執(zhí)行請求命令,Redis 會如何處理呢?
    的頭像 發(fā)表于 03-08 09:26 ?877次閱讀

    證明CPU指令是亂序執(zhí)行的

    雙擊QQ.exe從磁盤加載到內存里面,內存里面就會有了一個進程,進程產生的時候會產生一個主線程,就是main方法所在的線程,cpu會找到main開始的地方,把它的指令讀取過來放到程序計數(shù)器,把
    的頭像 發(fā)表于 03-15 09:13 ?1298次閱讀

    當我們在談論cpu指令亂序的時候,究竟在談論什么?

    知道指令的亂序策略很重要,原因是這樣我們就能夠通過barrier(內存屏障)等指令,在正確的位置告訴cpu或者是編譯器,這里我可以接受亂序,那里我不能接受
    的頭像 發(fā)表于 05-19 14:42 ?1953次閱讀
    當我們在談論<b class='flag-5'>cpu</b>指令<b class='flag-5'>亂序</b>的時候,究竟在談論什么?