CPU i wyłączenie cache
Moderatorzy: Moderatorzy, Administratorzy
CPU i wyłączenie cache
Czy można z userspace wyłączyć cache CPU? Tak, żeby w ogóle nie było używane.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
Re: CPU i wyłączenie cache
Nie napisałeś, w jakim CPU chcesz wyłączyć cache (nios2?).
Wydaje mi się, że jeśli procesor ma MMU pozwalającą na ochronę zasobów, to chyba nie można wyłączyć cache z userspace bez modyfikacji kernela.
Jeśli procesor nie pozwala na ochronę zasobów (brak MMU lub specjalizowana MMU) lub system operacyjny (ucLinux?) nie korzysta, to z userspace można zrobić, to co da się zrobić z poziomu kernelspace.
Nie wszystkie CPU pozwalają na globalne wyłączenie cache. Standardowy Nios II nie pozwala. Oczywiście istnieją mechanizmy pozwalające pominiąć cache dla niektórych dostępów do pamięci. Można np. umieścić kod i dane wysoko w przestrzeni adresowej, tak aby najstarszy bit był ustawiony (to nie działa we wszystkich odmianach Niosa).
Wydaje mi się, że jeśli procesor ma MMU pozwalającą na ochronę zasobów, to chyba nie można wyłączyć cache z userspace bez modyfikacji kernela.
Jeśli procesor nie pozwala na ochronę zasobów (brak MMU lub specjalizowana MMU) lub system operacyjny (ucLinux?) nie korzysta, to z userspace można zrobić, to co da się zrobić z poziomu kernelspace.
Nie wszystkie CPU pozwalają na globalne wyłączenie cache. Standardowy Nios II nie pozwala. Oczywiście istnieją mechanizmy pozwalające pominiąć cache dla niektórych dostępów do pamięci. Można np. umieścić kod i dane wysoko w przestrzeni adresowej, tak aby najstarszy bit był ustawiony (to nie działa we wszystkich odmianach Niosa).
- Nightwalker
- Użytkownik
- Posty: 545
- Rejestracja: 2006-01-02, 01:23
- Lokalizacja: Bytom
- Kontakt:
Re: CPU i wyłączenie cache
Taki mały OT, ale związany z tematem:
Procesory identyczne (ta sama seria i model), ale zwróćcie uwagę na cache
Stało się to nagle.
Kod: Zaznacz cały
nightwalker@mononoke ~ $ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 7
model name : Pentium III (Katmai)
stepping : 3
cpu MHz : 449.249
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 899.04
clflush size : 32
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 7
model name : Pentium III (Katmai)
stepping : 3
cpu MHz : 449.249
cache size : 32 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 899.54
clflush size : 32
Stało się to nagle.
Na górze fiołki, na dole las, all your base are belong to us
[ [url=http://forum.slackware.pl/viewtopic.php?p=142666]Darmowy shell[/url] ]
[ [url=http://forum.slackware.pl/viewtopic.php?p=142666]Darmowy shell[/url] ]
Re: CPU i wyłączenie cache
Nightwalker, wsysło Ci cache
Chciałem wyłączyć cache procka (tak, jest to NIOS2), bo mam problemy z konfiguracją FPGA. Tak jakby gdzieś adresy rejestrów (albo przynajmniej jednego) się pozmieniały. Przy cachowaniu dodawany jest jakoś offset i myślałem, że tutaj jest problem. Wygląda jednak na to, że:
a) cache nie wyłączę, bo jest ono inicjalizowane przez kod obsługi CPU na bardzo niskim poziomie;
b) problem leży prawdopodobnie w zmianach poczynionych przez Altere, gdyż zmieniłem core na nowsze, a jak to zwykle bywa, brak reference design dla nowej wersji, a support po stronie Altera milczy jak grób.
Chciałem wyłączyć cache procka (tak, jest to NIOS2), bo mam problemy z konfiguracją FPGA. Tak jakby gdzieś adresy rejestrów (albo przynajmniej jednego) się pozmieniały. Przy cachowaniu dodawany jest jakoś offset i myślałem, że tutaj jest problem. Wygląda jednak na to, że:
a) cache nie wyłączę, bo jest ono inicjalizowane przez kod obsługi CPU na bardzo niskim poziomie;
b) problem leży prawdopodobnie w zmianach poczynionych przez Altere, gdyż zmieniłem core na nowsze, a jak to zwykle bywa, brak reference design dla nowej wersji, a support po stronie Altera milczy jak grób.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso