我正在學習即將到來的考試的舊考試,最終問題包括題目描述的內容。現在,我熟悉彙編語言指令,並且我知道代碼的含義。但考試問題實際上讓我做的是令人困惑。如果有人能爲我解釋這個問題,我會非常感激。 因此,問題然後:計算緩存內存命中和Miss,並計算緩存中的行數
我給了一個緩存內存,有512個字節的空間,每行是8個字節長。內存直接配置,地址長度爲32位。此外,緩存內存從一開始就是空的。 之後,我得到一些指示,我會解釋它是否會緩存命中或-miss。還應該假定順序指令和指令中添加的所有數據都存在於下一個指令中。
我得到的指令是
- MOVIA R8,0xBEDA12C4
- LDW R10,0(R 8)
- LDW R11,8(R 8)
- STW R10,16(R 8)
- LDW R10,24(R 8)
- LDW R18,32(R 8)
現在,如果有人能夠向我解釋詳細信息,我將非常感激: - 緩存內存共有512字節空間。這是什麼?它能存儲的總內存是多少?另外,我從某處聽說,這是您在緩存中計算行的方式。例如512字節的內存和每一行是16字節。緩存中512/16 = 32行。對於這個例子512/8 = 64行。這是什麼意思!?
它還規定每行是16字節長。我看過TAG,ROW,BYTE的例子,他們試圖說明緩存。但是,我怎麼在這裏理解每行16個字節?至少它似乎沒有佔用TAG,ROW,BYTE的一部分長度。這個是來做什麼的?
直接配置緩存。我對此有所瞭解。它只是一排排空的或不是耶?我在這裏找到了一些關於這方面的信 http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/direct.html
現在的主要部分。如果每條指令都是緩存缺失或命中,我該如何計算?可能第一條指令應該是一個錯過,因爲問題表明高速緩存從一開始就是空的。第二個也必須是cachemiss,但從這一點上我不確定如果我的實際緩存命中或未命中,我將如何計算。說實話,我甚至不知道會有什麼打擊。
我真的很感激有人可以告訴我如何計算每一步,以及我如何知道它的緩存命中或錯過。我們得到的用於計算這個指令的指令非常混亂。非常感謝!