- iPad topik
- Hobby elektronika
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Philips LCD és LED TV-k
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen házat vegyek?
- Steam Deck
- Milyen billentyűzetet vegyek?
- Amlogic S905, S912 processzoros készülékek
Aktív témák
-
MoonFace
csendes tag
Az eredetileg feltett kérdésekre adandó válaszok sajnos megkövetelnek némi háttérinformációt a szinkron-memóriák müködéséröl, úgyhogy attól tartok ez egy kicsit hosszú lesz...
A szinkron RAM-ok gyakorlati müködése valami ilyesmi 4-bankos SDRAM-ot, és kezdetben inaktív bankokat feltételezve:
- Elsö lépésben a Bank Activate / Row Address Select parancsot kell kiadni (vagyis elöször a sorcímet adjuk meg, valamint az ''eredeti'' lineáris címböl valamelyik 2 bit kerül Bank Select (B0/B1) jelként ide).
- A RasToCas Delay által meghatározott órajelszám után kell kiadni a Read/Write parancsot az aktivált bankra (a B0/B1 itt is érvényes, de már aktív bankra kell hivatkoznia), illetve az oszlopcímet megadni (Coloumn Address Select), valamint ha memóriaírásról van szó, akkor már ebben az órajelben az elsö érvényes adatnak a D0-Dx vezetéken kell lennie (írásnál nincs CAS Latency).
- Memóriaolvasás esetén a CAS Latency által meghatározott órajellel késöbb kerül az elsö adat a D0-Dx vezetékekre, majd ez után az aktuális datarate-nek megfelelöen (SDR: 1X, DDR: 2X) az ezt követö címekre vonatkozó a Burst Lenght által meghatározott számú további adatblokk kerül átvitelre további vezérlöjelek kiadása nélkül (illetve a megkezdett tranzakció megszakítható egy Burst Terminate paranccsall).
- Az átvitel után (illetve a specifikáció alapján meghatározott mennyiségü órajellel akár korábban) kiadható a Bank Close / Row Precharge parancs, ez után az illetö bank a Precharge Time által meghatározott minimális órajelig nem elérhetö. Ez utóbbi parancs kiadása késleltethetö szintén a specifikációban meghatározott (általában 100000-es nagyságrendü órajeles) maximális ideig, illetve létezik egy un. Auto Precharge mód is, ahol minden tranzakció végén automatikusan végrehajtásra kerül a precharge parancs (tipikusan NoteBook-ok használják a kisebb teljesítményfelvétel érdekében, hogy egy bank minimális ideig legyen aktív).
Amennyiben a kezdeményezett tranzakció (írás/olvasás) egy már aktív bankra történik, úgy az elsö pont és a RasToCas delay kimarad (a klasszikus fast-page mode analógiájára), tehát a memóriavezérlönek érdemes optimalizálva menedzselnie a Bank Activate / Close parancsokat a maximális teljesítmény érdekében.
A parancsok közti ''üres'' órajelekben más bankokra vonatkozó parancsok kiadhatók, vagyis a tranzakciók átlapolhatóak a maximális átviteli sebesség érdekében (végülis ezért van a multibank), tehát a memóriavezérlö ma már nem egy buta jószág...
A memória-idözítési paraméterek (pl. a CAS latency) a memóriachip-en speciális parancsok által beállítható paraméter, tehát attól függetlenül, hogy a BIOS-on keresztül állítod be, egy érték gyakorlati alkalmazhatóságát alapvetöen maga a memória befolyásolja. A legjobb példa pont a CAS latency, amiböl tipikusan kétféle (egy gyorsabb és egy lassabb) értéket támogatnak a memóriák, vagyis a BIOS-ban hiába lehet pl: 1.5/2/2.5/3 órajelet is beállítani, ha a memória csak a 2/2.5-et támogatja...
A Bank-interleaveing-röl:
Egy SDRAM chip teljes címtarománya 4 bankba van szervezve. Egy meghatározott adat teljes címzéséhez 3 információra van szükség:
- Bank select (B0/B1)
- Row address (A0-Ar)
- Coloumn address (A0-Ac)
Ez a gyakorlatban azt jelenti, hogy a memória címtartományból két bit az aktuális bank-ot választja ki, az viszont kizárólag a memóriakontrolleren múlik, hogy ez a teljes (eredeti lineáris) cím melyik két bitje. Legegyszerübb esetben (interleave nélkül) a cím legfelsö két bitjét kötik a bank-select lábakra. Ez a gyakorlatban azt eredményezi, hogy pl. egy 256Mb-es chip alsó 64Mb-jét a Bank0, a következöt a Bank1, satöbbi blokkok adják. Ennek hátránya, hogy mivel a programok adatai általában többé-kevésbé lokálisan helyezkednek el, így az esetek döntö többségében csak egy bank-ot használunk, ami egyrészt jó a kisebb teljesítményfelvétel, másrészt rossz a kihasználatlan multi-banking képesség miatt.
Bank interleave úgy érhetö el, hogy azokat a címbiteket kötjük a B0/B1 lábakra, amik pl. lapméretenkénti bankváltást okoznak (vagyis a sor és az oszlopcím bitjei közé rakjuk a bank-select biteket). Ez a ma alkalmazott memóriák esetén tipikusan 2kB-onkénti (jellemzö lapméret) bankváltást okoz, ami egyrészt javítja a bankok párhuzamos kihasználhatóságát, másrészt a lapméretet látszólag megtöbbszörözve (az interleave faktorral) javítja a sokkal gyorsabb Fast-page elérések valószinüségét.
Na, ha ezen átrágtátok magatokat, és még van kérdés, akkor bátran...
Aktív témák
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- DELL PowerEdge R740 rack szerver - 2xGold 6130 (16c/32t, 2.1/3.7GHz), 64GB RAM, 10Gbit HBA330, áfás
- Fujitsu LIFEBOOK E449 i3-8130U 8GB 256GB 14" FHD 1 év garancia
- Honor 90 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- Nintendo Switch Joy-Con pair kontrollerek
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest