Cache ve čtečkách karet

SDuř

Cache ve čtečkách karet
« kdy: 18. 09. 2013, 16:24:58 »
Čau linuxáři. Protože ještě vytváříte stále ještě běžně různé cache ručně (přičemž jak doufám nastavujete i nějakou možnost zda využít/nevyužít vlastní paměť která je součástí disku/zařízení), možná byste mi mohli pomoci...

Potřeboval bych vědět zda, a jak rychlou, používají běžně interní USB čtečky paměťových karet cache v zařízení. Ve Windows se prostě zjeví nebo nezjeví volba (snad podle toho zda zařízení pamětí disponuje nebo ne) používat vyrovnávací paměť zařízení. Něco to dělá, ale rychlostní test jsem neměl čas udělat, ani ověřit to zda snad nejde jen o cache v RAM.

Speciální detektor HW se mi zatím používat nechce a stačila by mi obecná informace jak to běžně je. Ono se tím totiž nemá možná cenu zabývat, celé roky to bylo vypnuté a výkon byl zhruba stejný, navíc by mělo být bezpečné vyjímat paměťové karty. Takže díky za informaci.


x14

  • ***
  • 182
    • Zobrazit profil
    • E-mail
Re:Cache ve čtečkách karet
« Odpověď #1 kdy: 18. 09. 2013, 16:56:00 »
SDuř: Bylo by dobré si příště s novým dotazem udělat i nové vlákno! O jaké volbě Windows je řeč? Optimalizovat pro výkon/rychlé odebrání (případně mezipaměť, rozšířený výkon)? Tyhle věci ale nedělají nic s hardwarem, tohle nastavuje systémovou cache. Žádné cache se v Linuxu nevytvářejí ručně, paměti zabudované v HW se používají automaticky, zápisová systémová cache je v Linuxu povolená automaticky (nikdy jsem nezkoumal, jestli jde vypnout). Pokud vím, tak nic jako 'rychlé odebrání' v Linuxu neexistuje. Ve čtečkách určitě žádné větší cache nejsou (maximálně pár kilo buffer). Na rychlost zápisu to určitě nemá vliv (ale může to mást, tím, že se zdá, že už je po všem...). Při opakovaném čtení nebo zápisu/čtení je to ale prima věc.

SDuř

Re:Cache ve čtečkách karet
« Odpověď #2 kdy: 18. 09. 2013, 17:43:33 »
X14: Díky za reakci. Sdálo se mi hloupost zakládat nové vlákno když jste se cache právě dotkli. Zapoměl jsem do předmětu vložit ono OT, tak se omlouvám. Mimochodem ty taky plkáš ledas kde, a mnohdy pěkný nesmysly, tak se trochu klidni... Myšlenky prostě přicházejí a odcházejí.

Tak teď jsi mne trochu zmátl. Protože co se "zásad ukládání do mezipaměti a bezpečného odebrání" týká, tak u disku jde při "optimalizaci pro výkon" zcela evidentně o mezipaměť disku. Cache v RAM je při standardním nastavení vždy v provozu.
U čteček bývá standardním nastavením "optimalizace pro rychlé odebrání", tedy jsem měl za to že mezipaměť čtečky není používána. Jak je to v tomto případě s cache v RAM nevím. To jak velký je buffer té vlastní čtečky mne právě zajímá, kB-ty by nic moc nezměnily, ale třeba 2 MB... to už by se s tím dalo ledasco dělat.

x14

  • ***
  • 182
    • Zobrazit profil
    • E-mail
Re:Cache ve čtečkách karet
« Odpověď #3 kdy: 19. 09. 2013, 11:32:06 »
Mimochodem ty taky plkáš ledas kde, a mnohdy pěkný nesmysly, tak se trochu klidni...

Co to?  ::)

Re:Cache ve čtečkách karet
« Odpověď #4 kdy: 19. 09. 2013, 11:42:02 »
Protože co se "zásad ukládání do mezipaměti a bezpečného odebrání" týká, tak u disku jde při "optimalizaci pro výkon" zcela evidentně o mezipaměť disku.
Ano jde o mezipaměť disku, zcela evidentně v operační paměti počítače. O mezipaměti přímo v disku počítač vlastně nic neví, pro operační systém je zcela transparentní a nemyslím si, že by jí bylo možné nějak snadno vypnout.

Jinak vytahovat paměťová média bez odpojení souborového systému je nerozum _VŽDY_. Například proto, že operační systém nemá žádný přehled o stavu cache uvnitř paměťové karty. A pokud jí odpojíš napájení v průběhu Read-Erase-Write těsně po Erase fázi, můžeš se s aktuální stránkou rozloučit.


Kolemjdoucí

Re:Cache ve čtečkách karet
« Odpověď #5 kdy: 19. 09. 2013, 13:37:34 »
tak u disku jde při "optimalizaci pro výkon" zcela evidentně o mezipaměť disku.

To jak velký je buffer té vlastní čtečky mne právě zajímá, kB-ty by nic moc nezměnily

Jde o RAM normálně v PC.
Čtečky ani paměťové karty žádné větší cache nemají, pouze provozní buffery miniaturních velikostí. (Samozřejmě se to netýká SSD, tam je to jinak)

O mezipaměti přímo v disku počítač vlastně nic neví, pro operační systém je zcela transparentní a nemyslím si, že by jí bylo možné nějak snadno vypnout.

OS o RAM přímo v HDD moc dobře ví a moderní OS umožňují zapsat pouze do RAM v HDD s tím že HDD si to zapíše na plotny až uzná za vhodné. Pochopitelně Flash disky ani paměťové karty nic takového nemají.
Třeba ve Windows se to jmenuje "Povolit ukládání do mezipaměti na disku".

SDuř

Re:Cache ve čtečkách karet
« Odpověď #6 kdy: 19. 09. 2013, 16:31:29 »
V první řadě děkuji neznámému dobrodinci za přesun příspěvků do nového vlákna. Předchozí dikusi jsem narušit nechtěl, ale dotaz mne napadl právě při čtení oné diskuse.


Co se Windows týká, rozklíčoval jsem to takto.

- Optimalizovat pro rychlé odebrání = Nepožívá se cache v RAM ani cache v zařízení (pokud nad ní má systém kontrolu)
- Optimalizace pro výkon = Používá se cache v RAM
    - Povolit ukládání do mezipaměti na disku = Vyrovnávací paměť HDD se začne používat pro čtení
    - Povolit rozšířený výkon = Vyrovnávací paměť HDD se začne používat i pro zápis

Přitom u HDD je standardně cache v RAM povolena a u paměťových čteček a Flash-ek zakázána.

Pak je tu celá řada záhad:

Třeba můj pevný disk má vlastní vyrovnávací paměť, ale volba na používání je u něj nepoužitelná. Windows si ji "nepamatují" a povolení zápisu rovnou vůbec neumožňují (zešedlé pole), což je naprosto běžné a děje se u spousty HDD. Otázka je zda je tedy vyrovnávací paměť zařízení standarně používána a jak či zda používána není? Přikláním se k tomu že používána je a Windows nad ní nemají moc.

U USB 2.0 čtečky paměťových karet zase volba mezipaměti disku chybí zcela a vy říkáte že nějaký buffer tu je. Zřejmě je tedy také v provozu trvale a Windows ho vůbec nemají pod palcem.

Nejzajímavější mi ovšem příjde, že u flash-disku (paměti kterou připojíte do standardního USB portu notebooku, Kingston taveler), které má také standardně nastavené možnosti pro rychlé odebrání, lze zapnout úplně všechna urychlení. Tedy jak používání cache v RAM tak používání vyrovnávací paměti zařízení jak pro čtení tak pro zápis.

V zásadě mám ale problém pochopit i onu diskovou cache.
Pochopil jsem, že u dnešních Windows existuje jakási systémová cache, jejíž nastavení je zjistitelné a měnitelné například pomocí CacheSet (Sysinternals). Myslím, že to souvisí s oním nastavením výkonu počítače - optimalizace výkonu pro programy/programy na pozadí. Na mém počítači je její hodnota značně dynamická (250-350 MB, vrchol byl asi 416 MB). Myslím, že RAMMap (Sysinternals) toto + možná něco k tomu označuje jako "Metafile". Zda je disková cache součástí této systémové cache se mi ale zjistit nepodařilo.

Kolemjdoucí

Re:Cache ve čtečkách karet
« Odpověď #7 kdy: 19. 09. 2013, 18:11:19 »
- Optimalizovat pro rychlé odebrání = Nepožívá se cache v RAM ani cache v zařízení (pokud nad ní má systém kontrolu)

Cache v RAM se používá trvale. Při "rychlé odebrání" se zapisuje jako write-through, tedy zapíše se do cache a OS čeká se až se to zapíše i na zařízení.

- Optimalizace pro výkon = Používá se cache v RAM

Pro čtení se používá cache trvale. "Optimalizace pro výkon" = Při zápisu se to zapíše do cache a až OS uzná za vhodné, tak se to zapíše na zařízení.

    - Povolit ukládání do mezipaměti na disku = Vyrovnávací paměť HDD se začne používat pro čtení

"Ukládání do mezipaměti na disku" = OS zapíše do RAM v HDD a nečeká na to až do HDD zapíše na plotny.

Třeba můj pevný disk má vlastní vyrovnávací paměť, ale volba na používání je u něj nepoužitelná. Windows si ji "nepamatují" a povolení zápisu rovnou vůbec neumožňují (zešedlé pole), což je naprosto běžné a děje se u spousty HDD. Otázka je zda je tedy vyrovnávací paměť zařízení standarně používána a jak či zda používána není? Přikláním se k tomu že používána je a Windows nad ní nemají moc.

Není zapnut režim SATA/RAID nebo je tam špatný ovladač řadiče. Cache v HDD je v takovém případě používána pro čtení. Rozhodně se neděje "Ukládání do mezipaměti na disku".

U USB 2.0 čtečky paměťových karet zase volba mezipaměti disku chybí zcela a vy říkáte že nějaký buffer tu je. Zřejmě je tedy také v provozu trvale a Windows ho vůbec nemají pod palcem.

Na buffer můžeš s klidem zapomenout, je to proprietální provozní záležitost miniaturní velikosti a nedá se to použít jako cache v HDD.

Nejzajímavější mi ovšem příjde, že u flash-disku (paměti kterou připojíte do standardního USB portu notebooku, Kingston taveler), které má také standardně nastavené možnosti pro rychlé odebrání, lze zapnout úplně všechna urychlení. Tedy jak používání cache v RAM tak používání vyrovnávací paměti zařízení jak pro čtení tak pro zápis.

Buď jsi koupil nadstandardní Flash nebo nějaký soudruh pokazil specifikaci jak se hlásí OS.

SDuř

Re:Cache ve čtečkách karet
« Odpověď #8 kdy: 26. 09. 2013, 10:06:59 »
To že cache v RAM je pro čtení používána vždy, zní logicky. Vlastně si neumím představit, že by tomu tak nebylo. Napsal jsem to tudíž nesprávne. Tobe děkuji kolemjdoucí za opravu.

To že  se používá i cache pro zápis - tedy s okamžitým vyprázdněním a zápisem na HDD při optimalizaci pro rychlé odebrání a se zápisem "až systém uzná za vhodné" při optimalizaci pro výkon - mi zní také velmi logicky a pravděpodobně.
V minulosti jsem se kdesi dočetl (možná i na blogu MS) kdy byl tento princip popisován právě tak, že při optimalizaci pro výkon se povolí cache pro zápis. Dnes, po další várce hledání na webu MS, myslím že šlo o chybu a bylo myšleno pravidlo pro cache pro zápis (write-cache policy).

***
Co se týká nenastavitelnosti vlastní cache disku. Schválně jsem zkusil poslední (2007) dostupné originální ovladače od Intelu. OEM nabízel ty předposlední. Obě dvě verze se zdají bý úplně stejně fungující a spolehlivé jako o něco starší (2006) driver dodaný přímo instalátorem Windows (soubory také podepsané přímo Microsoftem). Dokonce ani aktualizace pro ně nebyla vydána. Intel dodal novější verzi iaStor.sys.

Žádná změna v možnostech nastavení. Podobné situace, u různých disků i řadičů, popisuje hodně lidí na Internetu. Myslím, že zařízení s cache zachází dle vlastního uvážení a bez ohledu na přání Windows. Nepoznám zásadní rozdíl ve výkonu ani na rozličných Linuxech ani při použití WinPE. Jak je zde obhospodařována cache neumím posoudit.
Jestli by něco mohlo existovat, tak možná nějaký nástroj/konfigurační aplikace, která přímo nařídí kontroleru/řadiči jak má pracovat s cache disku (v minulosti jsem takovou desku měl). Věřím, že bude existovat i nástroj který umožní disku používat nebo nepoužívat svoji cache (například WD měl v minulosti, když to bylo třeba, udělátka snad na všechno).

***
Jestli si najdu čas udělat testy toho Kingston traveler-u DTR-500 (opravdu dobrý flash-disk, mám i podle mne výborné SD ultimateX 100X) tak je sem hodím. Akorát si nejsem jistý, zda WinSAT cache neignoruje a netestuje zařízení pouze na přímo.

SDuř

Re:Cache ve čtečkách karet
« Odpověď #9 kdy: 26. 09. 2013, 10:10:13 »
To jak je to s tou "systémovou cache vs. diskovou cache" by někdo kolem jdoucí nevěděl? Díky.

Kolemjdoucí

Re:Cache ve čtečkách karet
« Odpověď #10 kdy: 26. 09. 2013, 10:39:41 »
To jak je to s tou "systémovou cache vs. diskovou cache" by někdo kolem jdoucí nevěděl? Díky.

Ve standardních podmínkách aplikace zapíše do cache v RAM. Až OS uzná za vhodné tak data z cache v RAM odešle do cache v HDD. Až HDD uzná za vhodné tak data z cache v HDD zapíše na plotny.

Speciálních utilit netřeba.
Používání cache v RAM pro zápis se vypíná položkou "Rychlé odebrání".
Používání cache na HDD pro zápis se vypíná položkou "Povolit ukládání do mezipaměti na disku".

SDuř

Re:Cache ve čtečkách karet
« Odpověď #11 kdy: 26. 09. 2013, 10:44:20 »
Snad ještě k vlastní cache disku.

Narazil jsem na tohle:
Citace
Enable write caching on the disk = "enable write caching on this storage device"
 
Enable advanced performance = "the disk will operate in write-back cache mode"
 
 
 
From what I have been abled to determine in my own research, "write caching" and "write-back cache" are synonymous. In most literature, it appears that "write-back" refers to the mode where write caching is enabled, and "write-through" refers to the mode where write caching is disabled.
 
 
 
Would you be able to explain this to me a different way so I can understand better the difference between write caching and write-back caching?

A měl bych v zásadě stejnou otázku. Přišlo by mi logické (narozdíl od toho co jsem psal dříve) kdyby:

Povolit ukládání do mezipaměti na disku (Enable write caching on the disk) = prostě povolilo tuto cache používat pro zápis dat na disk. Myslím že tato cache bude použitelná pouze pro zápis. Pro čtení, myslím tím posledně zapsaných dat, nebude buďto použitelná vůbec (disk ji vyprazdňuje podle svých potřeb), nebo to většinou bude postrádat smysl protože většina OS bude mít větší vlastní diskovou cache v RAM počítače.

Povolit rozšířený výkon (Enable advanced performance) = by potom znamenalo zprovoznit tuto cache i pro čtení dat která jsou na disku uložena (tedy ne právě zapsaných na disk) a budou z této cache dále přenesena do cache v RAM?

SDuř

Re:Cache ve čtečkách karet
« Odpověď #12 kdy: 26. 09. 2013, 11:10:41 »
Na otázku v citaci existuje i odpověď, akorát se mi nějak nezdál odkazovaný článek týkající se Windows 95.

[/quote]
Yes, "write caching" and "write-back cache" are synonymous. But, if you choose “Enable write caching on the disk”, the cache will work on disk’s side. If you choose “Enable advanced performance”, some caches will work on OS’s side.
 
The “Enable advanced performance” setting is actually a compatibility setting for software that took advantage of a bug in early versions of Windows. The bug let programs believe that a piece of data had been written to the physical layer of the disk when it could still in fact be processing in the drive buffer.

For more information, please refer to the following article:

Windows Confidential The Power of Bugs
http://technet.microsoft.com/en-us/magazine/cc162475.aspx
[/quote]

Tedy by vše bylo jinak než jsem psal. Už v tom mám guláš. Ani na TechNETu jsem žádné kloudné vysvětlení či popis nenašel. Zdá se že hodně lidí v tom tápe, celkem dobrá situace v roce 2013. V minulosti byly popisovány jen chyby a jak obejít nestandardní situace (více souběžných zápisů do cache na 64-bit Windows XP, jak cache funguje ve Windows 2000,...).

Co se systémové cache týká. Nechápu přesně čeho všeho se týká a zda disková chache je její součástí, podmnožinou. Tohle nejsou banální věci na jednoslovné odpovědi (odpovídající v maximálním zjednodušení na něco úplně jiného než bylo citováno).
Klidně neodpovídejte hned, nebo vůbec. Pokud nejste původní Kolemjdoucí, který jak se zdá dokázal porozumět psanému textu a měl znalosti, reagujte prosím pod jiným nickem.

Kolemjdoucí

Re:Cache ve čtečkách karet
« Odpověď #13 kdy: 26. 09. 2013, 11:48:41 »
Jsem původní ale nebaví mě psát to pořád znovu dokola.

Povolit ukládání do mezipaměti na disku (Enable write caching on the disk) = prostě povolilo tuto cache používat pro zápis dat na disk.

Bingo, už jsem to psal nejmíň 2x, zdá se že tomu začínáš rozumět.

Myslím že tato cache bude použitelná pouze pro zápis.

Pro čtení se cache používá vždy. Vyprázdnění je špatný překlad FLUSH, myslí se tím jenom zapsání věcí které zapsány být mají, data samozřejmě zůstávají v cache dokud se nepřepíší něčím jiným a samozřejmě že když přijde požadavek na čtení a je to zrovna v cache, tak se to vezme z cache.

Povolit rozšířený výkon (Enable advanced performance) = by potom znamenalo zprovoznit tuto cache i pro čtení dat která jsou na disku uložena (tedy ne právě zapsaných na disk) a budou z této cache dále přenesena do cache v RAM?

Špatně. "Enable advanced performance" = "Vypnout u zařízení vyprazdňování vyrovnávací paměti Windows u mezipaměti pro zápis" znamená to, že některé věci se na HDD nemusí zapsat vůbec, prostě existují jenom v RAM. Zapíšou se jenom při řádném restartu PC nebo při explicitní žádosti aplikace a podobně.

SDuř

Re:Cache ve čtečkách karet
« Odpověď #14 kdy: 26. 09. 2013, 12:10:28 »
Díky za snahu. Klidně odkaž na svůj starší text. Moc hodnotných informací není. Ani ucelených elaborátů ani zjednodušujích a srozumitelných vysvětlení. Jinak jsi zbytečně "jízlyvý". Není to zdaleka tak snadné na vysvětlení, ani pochopení, jak se to snažíš prezentovat.
Hlavně to s tím rozšířeným výkonem (advanced performance), za jehož vysvětlení děkuji. Co mi, ale není jasné (když jde evidentně jen o nastavení cache v systému Windows, která si prostě data pozdrží a nepředá je disku), proč to u některých disků nejde zapnout i když správa diskové cache (ukládání do mezipaměti na disku/write caching on the disk) je povolitelné a povolené.

***
Konečně jsem se prokousal (zatím spíše ukládám zdroje pro následné studium) do hloubi textu kolem Windows 2000 a je zde zmíněna SystemCache. Dopuručuji přečíst.

http://technet.microsoft.com/en-us/library/bb742613.aspx