我在西班牙語版閱讀「計算機組織和設計硬件/軟件界面」,我遇到了一個我無法解決的練習。這個練習關於內存層次結構,特別是緩存。CPU緩存命中時間
演習說:
如果2.5納秒需要訪問N路關聯高速緩存標籤,4納秒的訪問數據,1納秒的命中/失敗比較和1納秒返回數據如果成功,則由處理器選擇。
高速緩存命中的關鍵路徑是由確定是否有成功或時間數據訪問的時間給出的?
什麼是緩存命中延遲? (成功案例)。
如果對標籤和數據矩陣的訪問時間都是3 ns,那麼高速緩存成功的延遲是多少?
我會盡量回答所有我知道的記憶問題。
要訪問保存在緩存中的數據,我必須做的第一件事是找到使用某個地址的索引字段的行。一旦內存系統找到了該行,我需要將我的地址的標籤字段與緩存的標籤字段進行比較。如果它們匹配,那麼它是一個命中,我必須返回數據,並且將由地址的偏移字段確定的行中的一定數量的數據取代,然後將數據返回給處理器。
這意味着緩存需要8.5 ns。但是我一直在用另一種方式來思考,chaches可以做到這一點:如果我得到所需的線(2.5 ns),那麼現在我可以訪問de數據,並且可以同時評估iquality的條件。所以,時間將會是4.5納秒。所以,其中之一是第二個問題的結果。哪些結果是正確的?
對於第一個問題,關鍵路徑將是需要更多時間的操作;如果緩存需要4.5來獲取數據,那麼關鍵路徑將訪問緩存中的標籤 - 比較 - 返回數據。否則,這將是整個過程。
對於最後一個問題,如果關鍵路徑是整個過程,則需要8ns。否則,它需要5ns(標籤訪問緩存,比較,返回數據)。
這是真的嗎?和一個完全相關的緩存?和一個直接映射緩存?
問題是我不知道緩存先做什麼以及下一步或並行執行什麼操作。
優秀的答案!謝謝 –