[英]Is port blocked when data is fetching from cache or memory in CPU microarchitecture?
Intel Skylake 內核有兩個相同的 memory 讀端口(端口 2 和 3)和一個寫端口(端口 4)。 假設有兩條加載指令並行發給端口2和端口3: 當兩個數據都可以從 L1 緩存中獲取時(大約 ~10ns),端口 2 和 3 是否會被阻塞,直到數據被獲取並且加載指令退出? 如果數據在緩 ...
[英]Is port blocked when data is fetching from cache or memory in CPU microarchitecture?
Intel Skylake 內核有兩個相同的 memory 讀端口(端口 2 和 3)和一個寫端口(端口 4)。 假設有兩條加載指令並行發給端口2和端口3: 當兩個數據都可以從 L1 緩存中獲取時(大約 ~10ns),端口 2 和 3 是否會被阻塞,直到數據被獲取並且加載指令退出? 如果數據在緩 ...
[英]Is machine code and assembly code part of the architecture?
匯編代碼和機器代碼是否由體系結構指定? 我知道你如何實現架構是你的(微架構可以實現架構)。 但是我不明白是程序集還是機器碼是架構指定的? ...
[英]How does the Program read 32 bit from the memory in a single clock cycle?
所以,我有這個任務,我需要設計一個 RISC-32 位 5 級流水線。 我必須支持至少 32 個(32 位)指令和 32 個(32 位)數據值。 memory 應在 1 個時鍾周期內讀取。 現在,為此,我使用了一個可尋址的字 memory(1 個地址將包含 32 位)。 但是,我想讓這個字節可尋 ...
[英]Does storing false bool values cost less electrical energy?
今晚要睡覺了,我一直在想:如果bool ,例如在 C++ 中,設置為false ,這意味着它的所有(8 或 16)位都設置為 0(似乎是)。 據我所知,零位意味着某些晶體管中沒有電流流動,因此, false bool會在某些電池低於true的設備中浪費能量? 因此,如果是,最好在函數中將默認值 b ...
[英]Memory loads experience different latency on the same core
我正在嘗試在 C 中實現一個基於緩存的隱蔽通道,但發現了一些奇怪的東西。 發送方和接收方之間的物理地址通過使用映射到具有MAP_SHARED選項的同一文件的 mmap() 調用來共享。 下面是發送方進程的代碼,它從緩存中刷新地址以傳輸 1,並將地址加載到緩存中以傳輸 0。它還測量了兩種情況下的加載延 ...
[英]Do memory instructions pass through the load-store queue and issue queue in the microarchitecture
內存指令的 issue 隊列和 lsq 隊列有什么區別? 內存指令是通過兩個隊列,還是只通過 lsq 隊列。 如果他們通過兩個隊列,他們的順序是什么? ...
[英]Does L1 cache accept new incoming requests while its Line Fill Buffers (LFBs) are fully exhausted?
我想知道 L1 緩存是否仍會接收到命中 L1D 的新請求,當 Line Fill Buffers(LFB 或 MSHR)已滿時,是否會為管道向前推進? 或者任何人都可以幫我寫一個可以告訴我是否可以的微基准? 我知道如何使 LFB 飽和(即跨步間接訪問、哈希表……),並且現代英特爾 CPU 中有一 ...
[英]vtune memory-access report showing incorrect output
我正在運行vtune -collect memory-access./main並收到下面的 output。 main二進制文件在較大的虛擬和物理 memory 范圍內進行大量隨機 memory 訪問。 輸入似乎不正確,因為實際上有很多 LLC 未命中,並且uarch-exploration報告顯 ...
[英]How can I add a decorator pattern to a chain of responsibility?
我創建了以下 UML。 它基本上是一個貨幣轉換器。 就像現在一樣,它是一個責任鏈。 但現在我想添加一個裝飾器模式。 因此,例如,添加一個固定的處理量。 如何在此處插入裝飾器模式? 謝謝您的幫助! ...
[英]Temporality of ST64B and MOVDIR64B
x86_64 有一條指令movdir64b ,據我所知,這是一個 64 字節(高速緩存行)的非臨時副本(好吧,至少存儲是)。 AArch64 似乎有一個類似的指令st64b ,它執行相同大小的原子存儲。 但是,官方 ARMv9 文檔並不清楚st64b是否也是非臨時存儲。 Intel 的movd ...
[英]icc: increase in runtime in one part while changing a different and independent part of code
我有一個奇怪的問題,也許你們中的一個人知道那里發生了什么。 我正在處理的代碼是一個冗長而復雜的模擬代碼。 我有一個 function matrixSetup,它在開始時被調用,我在那里測量它的運行時間。 在設置好矩陣並做了許多其他事情之后,我正在運行我的求解器等等。 現在我更改了我的求解器代碼,這應 ...
[英]Based Indexed Addressing Mode Memory Sum
我有一條指令: ADD [BX][SI] + 5FFDH, EABFH ,我想知道它是如何在 8086 微處理器上運行的。 我已經意識到這條指令ADD [BX][SI] + 5FFDH, EABFH以這種方式工作: 2 個字節的數據從數據總線和 go 到達指令隊列。 指令隊列中可用的數據進入指令 ...
[英]What's the microarchitecture used in the MIPS I.S.A?
我相信 MIPS 微處理器中使用的微架構是流水線,但我可能錯了? 提前感謝您的回答! ...
[英]Why does a loop transitioning from having its uops fed by the Uop Cache to LSD cause a spike in branch-misses?
所有基准測試均在Icelake或Whiskey Lake (在 Skylake Family 中)上運行。 概括我看到一個奇怪的現象,當循環從耗盡Uop 緩存轉換為耗盡LSD(循環 Stream 檢測器)時,分支未命中會出現峰值,這可能會導致嚴重的性能下降。 我在 Icelake 和 Whiske ...
[英]How to figure out disabled cores in a CPU?
我需要找出 CPU 上禁用了哪些內核。 如何以 C/C++ 方式執行此操作? 我知道讀取 CAPID6 寄存器是其中一種方法,但我不確定如何完成它。 我需要注意任何系統調用或技巧嗎? 我的操作系統是 Ubuntu。 我有 Xeon Skylake CPU。 我可以通過檢查 /sys/devices ...
[英]What are the “long” and “short” scoreboard w.r.t. MIO/L1TEX?
借助最近的 NVIDIA 微架構,出現了一種新的 (?) 翹曲停止原因/翹曲調度程序狀態分類法。 此分類中的兩個項目是: Short scoreboard - 記分板依賴於 MIO 隊列操作。 長記分牌- 記分牌依賴於 L1TEX 操作。 其中,我認為“記分板”是指亂序執行數據依賴跟蹤的含義(參 ...
[英]How does Load Store Queue work in the presence of MSHR?
我了解加載存儲隊列的基本工作原理,即當負載計算它們的地址時,它們會檢查存儲隊列中是否存在相同地址的任何先前存儲,如果有,則它們從最近的存儲中獲取數據,否則從寫緩沖區或數據緩存中獲取數據。 當商店計算他們的地址時,他們檢查加載隊列是否有任何加載違規我的疑問是當在第一種情況下,由於存儲隊列中的一些未解 ...
[英]How does write-invalidate policy work with set-associative caches?
我正在閱讀 Norman P. Jouppi 的Cache Write Policies論文,我理解為什么 write-invalidate(在第 193 頁定義)適用於直接映射緩存,這是因為能夠寫入檢查標簽的數據,如果發現如果未命中,則緩存行無效,因為它已被寫入損壞。 這可以在一個周期內完成。 ...
[英]How to look up what form of an instruction is used, by opcode or disassembly?
https://uops.info/和 Agner Fog 的指令表等網站,甚至英特爾自己的手冊,都列出了同一指令的各種 forms。 例如在 uops.info 上add m, r (在 Agner 的表格中)或add (m64, r64) ,或者在英特爾手冊中ADD r/m64, r64 ( ...
[英]L1 caches usually have split design, but L2, L3 caches have unified design, why?
我正在閱讀此線程中緩存的拆分設計與統一設計的優缺點。 根據我的理解,拆分設計的主要優點是:拆分設計使我們能夠將指令緩存放置在靠近取指單元的位置,將數據緩存放置在靠近內存單元的位置,從而同時降低兩者的延遲。 主要缺點是:指令和數據緩存的組合空間可能無法有效利用。 模擬表明,相同總大小的統一緩存具有更 ...