Memoria kerdes
Andras Tantos
andras_tantos at yahoo.com
Thu Jun 17 00:35:30 CEST 2004
Hali!
> Arra van tipped, hogy az eldugott memoriat hogy lehet elerni?
Nincs.
> Vagy az is jo lenne, ha nem dugnank el, latna a win, de 1.7-et vissza
> is kernenk tole... Ezt a sok memoriat nem lehet kilapozni, DMA altal
> elerhetonek kell lennie. Ezt meg lehet oldani?
Ezt kellene megoldani, szerintem. Ha user-mode-bol teszed, akkor a lock utan
mar meg van a memoria logiaki cime (ezt adja vissza a virtual-lock), csak az
a kerdes, hogy hogy lesz ebbol fizikai cim. Ha kernel-modeban dolgozol,
akkor meg nem jo a VirtualLock hivas: a kernel driverek teljesen mas API-t
hasznalnak. Ott pl. a MmAllocateNonCachedMemory hivas valo a
memoria-foglalasra. De ott egy teljes API van a DMA kezelsre, aminek a
doksijaban ugy latom a memoria-foglalas is reszletezve van. Amugy meg
http://msdn.microsoft.com/library/
A szokasos megoldas amugy azt hiszem az, hogy a user-level program foglalja
a memoriat, ennek a cimet atadja a kernel-mode driver-nek, aki aztan ezzel
inicializalja fel a DMA muveleteket.
> Nem ismerem pontosan a windoz lelket, nem en fogom irni a progit,
> remelhetoleg... Hogy hivjak azt a memoriat, amit DMA buffernek lehet
> hasznalni? Es a driver a fizikai cimen keresztul eri el.
> Ha jol tudom, kernel modban, ahogy a driverek futnak, nincs cimforditas
> egyaltalan. Lehet hogy igy az 'eldugott' memoriat is lehetne hasznalni,
> vagy az MMU a kezemre csap?
Ez az eldugas nem a legjobb otlet, plane, ha termeket akarsz csinalni, es
nem csak 'egyszer kiprobalni valamit'. Meg kell beszelni a Windows-al, hogy
neked sok memoria kell, es kesz.
> Tok jo. Tudtam hogy el lehet dugni, mert szamos regebbi digitalizalo
> kartya ugy mukodott, hogy lefoglalta a memoria nagy reszet, es azt nem
> adta oda a windoznak.
Az mas volt, ha jol emlekszem, es meg az ISA/Win3.1-es idokben volt ra
szukseg.
> Ez reszben azert is kellett, mert a kartya nem
> tudott scatter/gather DMA-t, ezert egybefuggo blokk kellett neki.
Meg mert a 16-bites DMA kontrollereknek mindenfele nyavajaja volt, ami miatt
szornyen nehez volt megfelelo memoriat foglalni nekik, ha mar egyszer
felallt a rendszer.
> Nekem nem kell egybefuggo blokk, remelhetoleg fogom tudni a scatter DMA-t,
> kell viszont osszesen majd 2G mem.
> Es windoz alatt 2 vagy 3G felett a kernel terulet van, oda nem lehet
> user memoriat mappelni. Es csak 4G a cimtartomany, ezt bonyolult
> meghakkolni, de meg lehet.
> Ugy hallottam, hogy alapbol 2G fole nem lehet memoriat tenni, az mar
> egy trukk, hogy 2G user memoria, es 3G felett kernel.
> NT alatt allitolag olyan opcio is van, hogy minden memoriat 4G fole
> mappel, es 64 bites cimzest hasznal mindenhol.
http://www.sysinternals.com/ntw2k/info/bootini.shtml
/PAE:
This has NTLDR load ntkrnlpa.exe, which is the version of the x86 kernel
that is able to take advantage of Intel Physical Address Extensions (PAE),
even when a system doesn't have more than 4GB of physical memory. PAE
permits an x86 sytem to have up to 64GB of physical memory, but an operating
system must be specially coded to use memory beyond 4GB (the standard x86
limit). The PAE-version of the Win2K kernel presents 64-bit physical
addresses to device drivers, so this switch is helpful for testing device
driver support for large memory systems.
Ugyhogy, igen, jol hallottad: 4GB fizikai memoriaval mindenkeppen ezt a
modot hasznalja, es ezzel a boot-opcioval kevesebb memoria mellett is
kiprovokalhato ez az uzemmod.
> Masok szerint 2G memoriatol a windoz egyszeruen meghal, nem tud ennyit
> kezelni. Olyan irdatlan sok bejegyzes kene a page table-be, hogy belehal.
Ez biztos marhasag. Az en tapasztalatom is mas.
> Es regebben valoban volt is ilyen baj, jokat mosolyogtam a too much
> memory error c. hibauzeneten.
Igy mar talan igaz lehet.
> Olyat is hallottam, hogy ma mar nem problema, 64G-t is kezel.
> Senki sem tud biztosat...
Na, ez az amit nem ertek. A google elso talata volt a fenti oldal. Az
MSDN-en itt van ugyanez leirva:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools/hh/ddtools/bootini_28hf.asp
Azert ez nem olyan eldugott informacio...
> A 2G memcsi meg lesz veve mindenkeppen, kiprobaljuk.
> Nekem mar az is gaz, ha 64 bites cimzest kell csinalni PCI master modban.
> Kegyetlenul tulmereteztem mindent, de ez rengeteg makrocellaba fog
kerulni.
Hat pedig, ha ilyen dolgokba kezdesz, akkor azert a 64-bit mar elegge
realitas. Ugy ertem, aki ilyen kartyat akar hasznalni, mar jo esellyel 4GB
koruli memorival fog dolgozni, esetleg eleve 64-bites procin.
--
Udv,
Tantos Andras
<http://andrast.tantos.homedns.org>
More information about the Elektro
mailing list