English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

因為電腦疑似重木馬,我在Prefetch這個檔案裡面有個SVCHOST.EXE-2C4F5983.pf檔,聽說SVCHOST是木馬,在我的電腦當中,在WINDOWS資料夾下,有個Prefetch資料夾,裡面所存取的檔案是什麼作用的呢?麻煩知道的人告訴我謝謝。

2005-05-03 08:39:29 · 6 個解答 · 發問者 Poppy╭☆ 2 in 電腦與網際網路 軟體

6 個解答

svchost.exe是Windows的系統檔案.只是有部份的病毒跟木馬程式會使用它來執行.所以有以下的建議.
如果你是用Windows2000或是XP以上的,請到http: //www.microsoft.com/downloads/details.aspx?FamilyID=321cd7a2-6a57-4c57-a8bd-dbf62eda9671&displaylang=en
下載微軟出的AntiSpyware可以有效掃除這些問題
建議在安全模式下掃除

其實早就有Prefetch了

 

其實我可以這樣講,如果沒有PreFetch,那我們現在的CPU會跑的慢上很多.

大家一定覺得很奇怪,

如果真是這樣,那請問那為什麼Palomino沒有比缺少Hardware prefetch的TB快上很多?

那各位就有所不知了,其實每顆CPU管你裡面有沒有Hardware Prefetch的功能,

每顆現代的CPU早就在享受Prefetch帶來的好處了,只是,不是用"硬體"做的罷了..

 

什麼是 Prefetch.

 

prefetch英翻中,直接的意思也就是"預先提取".其實道理再簡單不過了,也就是說要早在CPU需要那筆資料之前,

就下一筆不是"常態"的指令,

先把它從MainMemory(以後就直接說DRAM好了)提取出來,放在離CPU較近的L2 or L1 Cache中.

那大家一定覺得很怪,幹嘛預先就要?不會到時要喔?這樣有差嗎?

 

 

沒有Prefetch,效能差很多

 

不要忘了,到DRAM抓資料回來Cache至少要30個以上CPU cycles.

也就是如果你現在用這筆資料,不得不去DRAM抓的時候,你要在這裡等個30 Cycle,你才能做下去.

再嚴重點.現在的CPU都是超純量的(SuperScalar,就是多管線的意思啦),

如果今天是一顆4-way(4管)的CPU,正好其他3管的指令,都在等你這管的處理後的資料,(這種叫Dependency),

哇,也就在30個CPU cycle內,沒有一條管線可以跑任何一筆資料,完完全全浪費了這顆CPU的功能.

他的設計原本應該是1個cycle能跑四筆指令的,現在變成1個cycle只能跑1/30個指令.

 

Prefetch的功用

 

那很明顯的,如果在之前,就先發了load的指令讓資料能預先留在cache裡頭,到時候要用時,就可以直接拿來用了.

不過,這很自然的會增加一些指令,甚至有時會抓進去一大堆 到時候根本沒有屁用的資料,看了便知.

當然這是可以"改良"的.

 

Software 和 Hardware prefetch的不同

 

就我所知,Software based的prefetch是必然要用的.也就是程式在寫好,compile之後,他裡面的程式碼早就考慮到prefetch的問題了.

現在的compiler一定都會提供這類的選項,或甚至直接使用.

Compiler很聰明,他會在程式跑到真正需要用到該筆資料之很多行之前,會插入prefetch的指令.

(當然,這些指令不是當初寫程式的人所能知道的).

想想如果沒有Software Prefetch,這真的會是一場災難.因為x86的程式會compile出一大堆Memory指令.

如果每條指令都按步就班,不偷步.那CPU也真的不用SuperScalar了,

就弄一個80386-1000SX好了.

 

Hardware Prefetch

 

當然目的是一樣的,但是作法實在太多種了,簡單到最難,一應具全.

他在L2 Cache旁邊,自己加了一個小buffer.

ok,如果是最簡單的,那他會在Cache miss時,同時把Miss的資料和緊接著幾筆的資料一起抓到Buffer中,

也就是如果第二筆資料就是緊接在第一筆之後的話,那他就可以直接從Buffer中拿,不用還要回DRAM拿了.

當然,天下沒有白吃的事.不是所有的資料都是緊接著的.有時候,他可是有間隔的.

可能是隔4,可能是隔8,看他爽不爽.那你笨笨的隔一個抓豈不儘抓些垃圾,給我滾.

也因此,比較好的Prefetch buffer會有一個"預測"的機構,會把每次資料相差的距離大概記錄一下,再決定下一筆資料

要從那個位址抓過來.這樣當然比較準,但是相對難做很多,甚至Latency變大.

對於Hardware的Prefetch的大概就是這樣.

2005-05-03 10:09:09 · answer #1 · answered by ? 2 · 0 0

請問如果把Prefetch裡的資料都砍掉會發生什麼事

2012-03-17 07:20:52 · answer #2 · answered by ? 1 · 0 0

拜託 他寫超好的好嗎

2011-08-30 00:25:28 · answer #3 · answered by Evanism 2 · 0 0

這還滿容易懂的阿...
簡單來說就是控制CPU內L2快取記憶體的資料存取而已

2009-10-02 08:30:51 · answer #4 · answered by DH 7 · 0 0

不能寫正常人看得懂的話嗎?

2008-08-02 22:01:44 · answer #5 · answered by 天天 2 · 0 0

不好意思,看沒有懂。

2006-10-27 05:32:14 · answer #6 · answered by ? 5 · 0 0

fedest.com, questions and answers