PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Festplattencache; Effekt und Menge?


Gast
2008-11-29, 08:59:44
Nach einem dialog in einem anderen thema, blieben einige fragen offen, deshalb eine kleine diskussion:
Was genau bringt der Festplattencache in der praxis? Wann kommt er zum tragen? Mit welcher Geschwindigkeit arbeitet er und warum gibt es nur diese paar MB?

Besonders letztere Frage erscheint mir für den heutigen Stand nicht plausibel.
Ich fasse mal kurz zusammen: Der Festplattencache ist in den letzten Jahren nur sehr langsam gegenüber den festplattengrößen angestiegen.
Kann ich mich noch gut daran erinnern, das frühere Festplatten 2 und 8 MB hatten, sind wir heute gerade einmal bei 16MB und 32MB angelangt und selbst die raptor geizt damit.
Das ganze erscheint mir deshalb so merkwürdig, weil z.B. riesige RAM Module mit 2 GB schon ab 14€ beginnen und die liefern locker ihre 6gb/s.
bei festplatten limitiert jedoch das interface sehr stark (SATAII), man bräuchte also gerade mal ein bruchteil der performance eines DRAM-Moduls, was ja eigentlich erheblich günstiger sein müsste, warum gibt es dennoch nur diese paar MB und nicht mehr?
wäre es nicht möglich, eine festplatte mit einem größeren cache zu bauen, die bei bedarf, den restlichen cachen mit zufälligen daten füllt, also sozusagen (vielbenutzte) dateiteile vorlädt, selbst wenn diese noch nicht gebraucht wurden?
ab wann genau kommt der cache überhaupt zum tragen? Beim Mehrfachzugriff auf die selben Daten oder schon früher?

noch am Rande eine weitere Frage; auch bei optischen Laufwerken gibt es einen Cache, dort habe ich schon alles zwischen 128K und 2048K gesehen. Warum gibt es diese große differenz und keinen einheitlichen wert? was genau bringt er dort?

PatkIllA
2008-11-29, 09:11:31
Möglich schon, aber kostet wieder ein paar Cent extra.
Das Betriebssystem kann auch viel Statisken und Stragegien entwickeln, welche Daten vorgehalten werden sollen.

Monger
2008-11-29, 09:42:43
Als es um diese Hybrid Festplatten ging (sprich: halb Flash, halb magnetisch) hat Microsoft mal eine ganz interessante Statistik veröffentlicht.

Die allermeisten Schreibzyklen (hab die genaue Zahl nicht mehr im Kopf, war aber mindestens drei viertel) werden durch Dateien verursacht die nur wenige Kb betragen.
Hier war das Argument: wenn man nur ein paar MB geschickt auf Flash cached, erspart man sich in 90% der Fälle das anlaufen des Festplattenmotors, was insbesondere bei Notebooks ganz deutlich die Akkuzeit verbessert...


Ich vermute, es gibt schlicht keinen Bedarf für größeres Cachen, bzw. durch größere Caches weitest du den Flaschenhals hier nur minimal auf.

mirp
2008-11-29, 09:53:59
Vielleicht wird der Cache der Festplatte eher dazu verwendet sich zu merken, wo Dateien liegen, als die Dateien selbst. Diese Informationen muss man ja auch erstmal von der Festplatte lesen, bevor eine Datei angefahren wird.

Gast
2008-11-29, 10:17:13
Diese Informationen muss man ja auch erstmal von der Festplatte lesen, bevor eine Datei angefahren wird.

Eben das verstehe ich nicht... wenn man einen riesen Cache hätte, könne man die festplatte (oder das OS) anweisen, daten "vorzuladen", z.B. in idle-zeiten.
diese platten mit flashcache sind ja offensichtlich gestorben, obwohl angekündigt.

PatkIllA
2008-11-29, 10:19:44
Eben das verstehe ich nicht... wenn man einen riesen Cache hätte, könne man die festplatte (oder das OS) anweisen, daten "vorzuladen", z.B. in idle-zeiten.
diese platten mit flashcache sind ja offensichtlich gestorben, obwohl angekündigt.
Das OS hat doch einen Riesencache, den Arbeitsspeicher. Der ist schneller und kann auch für was anderes gebraucht werden. Warum also viel Speicher auf der Festplatte verbauen.

Gast
2008-11-29, 10:33:23
Das OS hat doch einen Riesencache, den Arbeitsspeicher.

Ohja, machen wir ihn voll mit daten die wir nicht brauchen und wo kommen dann die anwendungen hin? :)

Warum also viel Speicher auf der Festplatte verbauen.

weil daten im festplattencache sofort abrufbar wären und zwar mit voller datenrate (interface), ohne das diese erst diese daten einlesen muss (=zugriffszeit).

Schon bei 64 oder 128MB würde ein gutes stück der anwendungen da rein passen. wie groß war z.B. win98 nochmal? glaube irgendwas zwischen 60 und 200MB auf der platte. in so einen cache könnte das os beispielsweise häufig genutzte anwendungen (z.B. virenscanner oft genutzt um 18:00 frühzeitig "laden" lassen).

PatkIllA
2008-11-29, 10:37:50
Ohja, machen wir ihn voll mit daten die wir nicht brauchen und wo kommen dann die anwendungen hin? :)Ebenfalls in den Arbeitsspeicher. Du willst x MB Arbeitsspeicher und y MB Cache auf der Platte. (x + y) MB Arbeitsspeicher hat nur Vorteile gegenüber deiner Verteilung


weil daten im festplattencache sofort abrufbar wären und zwar mit voller datenrate (interface), ohne das diese erst diese daten einlesen muss (=zugriffszeit).Die Daten im Arbeitsspeicher sind zigfach schneller.

Schon bei 64 oder 128MB würde ein gutes stück der anwendungen da rein passen. wie groß war z.B. win98 nochmal? glaube irgendwas zwischen 60 und 200MB auf der platte. in so einen cache könnte das os beispielsweise häufig genutzte anwendungen (z.B. virenscanner oft genutzt um 18:00 frühzeitig "laden" lassen).Machen Betriebssysteme doch schon. Es muss sowieso das OS machen, weil die Platte von Dateien keinerlei Ahnung hat. Wenn du das Programm aktualisierst würde erstmal der Block geladen, wo die alte Version lag.

Gast
2008-11-29, 10:56:45
Ebenfalls in den Arbeitsspeicher. Du willst x MB Arbeitsspeicher und y MB Cache auf der Platte. (x + y) MB Arbeitsspeicher hat nur Vorteile gegenüber deiner Verteilung

Leider nicht, das bestätigt sich doch schon daran, das die Festplatten einen eigenen Cache besitzen, trotz Speicher.

Das schöne am Festplattencache ist doch, das dieser exklusiv, auf einer eigenen ebene arbeitet. der festplattencache ist auch dann da, wenn du überhaupt kein betriebssystem geladen hast, schon beim angucken des bios. schon da wäre es unter anderem sinnvoll die daten vorzuladen (oder kurz vor dem re-start, die festplatte anweisen, diese daten vorzuladen). trotzdem rattert die platte bei jedem start nochmal herum...
software kannst du schonmal vergessen, diese muss ja erst geladen sein, damit sie etwas steuern kann! dein CPU-cache arbeitet ja auch mehr oder weniger unabhängig.

Außerdem ist nur der physikalischer speicher schneller und der ist, auch wenn du das anders sehen magst, immer knapp. ;)
das auslagern auf der festplatte ließe und das reservieren von arbeitsspeicher ließe sich ja vollständig verhindern, wenn die festplatte das selbst übernimmt.

wenn du ein spiel zockst, so brauchst du genügend speicher für dein system, für deine programme und für das spiel selbst. und davon willst du dann NOCHMAL arbeitsspeicher abzwacken? das würde vorraussetzen, das jeder mit 6 GB aufwärts arbeitet...
und noch wichtiger: das freischaufeln von arbeitsspeicher (>pagefile) kostet auch wieder zeit, wodurch performance verloren geht.

Gast
2008-11-29, 10:58:22
Es muss sowieso das OS machen, weil die Platte von Dateien keinerlei Ahnung hat.

das glaube ich nicht umbedingt. bei den flashmedien soll ja das dateisystem/die firmware die blöcke selbst so aufteilen können, das sie gleichmäßig beschrieben werden, im umkehrschluss sollte das auch bedeuten, dein laufwerk kann wissen, welche blöcke am meisten gefragt sind.

PatkIllA
2008-11-29, 11:14:54
Leider nicht, das bestätigt sich doch schon daran, das die Festplatten einen eigenen Cache besitzen, trotz Speicher.Der macht aber nicht viel mehr als kurze Pausen bei der Datenübertragung zu überbrücken oder auf Kopfbewegungen zu warten.
Wenn mehr Cache viel mehr bringen würde, warum gibt es dann bei den Platten mit gleicher Mechnik und mehr Cache keinerlei Benchmarkvorteile?

Das schöne am Festplattencache ist doch, das dieser exklusiv, auf einer eigenen ebene arbeitet.Und steht damit nicht für andere Anwendungen bereitet, der Speicher nutzen könnte.
der festplattencache ist auch dann da, wenn du überhaupt kein betriebssystem geladen hast, schon beim angucken des bios. schon da wäre es unter anderem sinnvoll die daten vorzuladen (oder kurz vor dem re-start, die festplatte anweisen, diese daten vorzuladen). trotzdem rattert die platte bei jedem start nochmal herum... Beim erstmaligen Starten idelt die Platte bestenfalls ein paar Sekunden wo sie was vorladen könnte. Und danch weiß das OS viel besser was es braucht.
Beim Neustart des Betriebssystem wäre wohl was drin, aber wie oft braucht man das?
software kannst du schonmal vergessen, diese muss ja erst geladen sein, damit sie etwas steuern kann! dein CPU-cache arbeitet ja auch mehr oder weniger unabhängig.Die paar kB Programmlogik kann man in vertretbarer Zeit starten.
Außerdem ist nur der physikalischer speicher schneller und der ist, auch wenn du das anders sehen magst, immer knapp. ;)In den meisten Fällen ist da reichlich über.
das auslagern auf der festplatte ließe und das reservieren von arbeitsspeicher ließe sich ja vollständig verhindern, wenn die festplatte das selbst übernimmt.Wenn etwas das Auslagern verhindert, dann mehr Arbeitsspeicher.
wenn du ein spiel zockst, so brauchst du genügend speicher für dein system, für deine programme und für das spiel selbst. und davon willst du dann NOCHMAL arbeitsspeicher abzwacken? das würde vorraussetzen, das jeder mit 6 GB aufwärts arbeitet...
Du willst doch die gleiche Menge Speicher, nur fest aufgeteilt.
Sicher könnte man mit 4 GB RAM und 2 GB Cache mehr rausholen als mit 4 GB und praktisch ohne Festplattencache. Mit 6 GB RAM und praktisch ohne Festplattencache hat man aber nur Vorteile gegenüber deiner Verteilung.
und noch wichtiger: das freischaufeln von arbeitsspeicher (>pagefile) kostet auch wieder zeit, wodurch performance verloren geht.Cache wird nicht in die Auslagerungsdatei verschoben sondern einfach verworfen. Aufwand gleich null.

Spasstiger
2008-11-29, 11:19:27
Wer mehr Festplattencache will, kann sich ja einen dedizierten Controller mit eigenem Speicher zulegen.
Der Festplattencache bringt ja in erster Linie Vorteile beim Schreiben und Kopieren. Daten, die gelesen werden und häufiger gebraucht werden, sind im Arbeitsspeicher besser aufgehoben als im Festplattencache.
Und bei aktiviertem Schreibcache hat man das Problem, dass bei einem Rechnerabsturz die ganzen in den Cache aber noch nicht auf die Platte geschriebenen Daten futsch sind. Je größer der Cache, desto mehr Daten gehen bei einem Absturz verloren.
Der Cache sollte nicht mit der Festplattenkapazität anwachsen, sondern mit der Festplattengeschwindigkeit. Sonst gehen bei größeren Festplatten und aktiviertem Schreibcache immer mehr Daten im Fall eines Absturz verloren als bei kleinen Festplatten.

Gast
2008-11-29, 11:31:55
Der macht aber nicht viel mehr als kurze Pausen bei der Datenübertragung zu überbrücken oder auf Kopfbewegungen zu warten.

darauf zielte das thema eigentlich ab... die kapazitäten und auch datenraten sind deutlich gestiegen, der cache nur minimal.
auch glaube ich nicht, das der nur zum überbrücken genutzt wird, bei mehrfachzugriff (datenbanken&co) wären die daten ja noch vorhanden.

Wenn mehr Cache viel mehr bringen würde, warum gibt es dann bei den Platten mit gleicher Mechnik und mehr Cache keinerlei Benchmarkvorteile?

Gibt es ja. :) habe ich vor längerer Zeit mal gelesen.
ich glaube da lässt du dich ein wenig täuschen, weil bei normalen festplattentests immer unterschiedliche hersteller miteinander verglichen werden, nur selten die gleiche serie eines herstellers mit unterschiedlichen cachegrößen.

Und steht damit nicht für andere Anwendungen bereitet, der Speicher nutzen könnte.

? klar! die anwendungen die gecached werden, sind ja die, die gerade gefragt sind oder sein werden. Das ist der Sinn dahinter...
außerdem denkst du da in die falsche richtung, in dem zeitalter in dem wir leben, wäre es möglich, das sogar noch aufzuteilen... ob fix oder dynamisch, da geht also nix verloren!

Beim Neustart des Betriebssystem wäre wohl was drin, aber wie oft braucht man das?

Jeden Tag hunderte male. ;)
Dein Betriebssystem weiß auch nicht !vorher!, welche dateien deine programme brauchen, wenn du sie startest.
es kann lediglich rückschlüsse auf die häufigkeit ziehen mit der du das tust.

Außerdem hat der RAM jetzt immer noch nix mit diesem Thema zu tun, es geht nachwievor um Cache. Bitte wenn möglich nicht darauf zurückfallen.
Ich glaube du betrachtest das aus dem falschen Winkel! Deine CPU besitzt eigene, exklusive caches, die für nichts anderes gedacht sind, als für deine CPU. das gleiche bei optischen Laufwerken und bei Festplatten. Das allein ist schon Begründung genug um diese these nicht weiter verfolgen zu müssen.
Arbeitsspeicher ersetzt einen Cache nicht vollständig, er dient lediglich als weitere Ebene.
Oder in anderen Worten auszudrücken, ich würde den Festplattencache den L1 Cache nennen und den Arbeitsspeicher "L3 Cache" (CPU-gemäß).
Das eine macht das andere nicht überflüssig. Während meine Festplatte daten bereithalten oder vorcachen kann, kann der Arbeitsspeicher diese Daten noch wesentlich länger bereithalten (NUR wenn noch genügend speicher vorhanden), aber erst wenn der vorgang einmalig stattgefunden hat. Hier gehts aber um das DAS ERSTE MAL :D
Beim ersten mal ist dieser "L3 Cache" eben noch leer...
Ein Betriebssystemgesteuerte Cache ist außerdem extrem suboptimal, was ist, wenn du mehrere betriebssysteme gleichzeitig nutzt (win und linux tauschen sich sicher nicht gegenseitig aus =)) die festplatte behält die daten unabhängig von den systemen bereit, die du gerade nutzt.

Gast
2008-11-29, 11:37:29
Der Cache sollte nicht mit der Festplattenkapazität anwachsen, sondern mit der Festplattengeschwindigkeit. Sonst gehen bei größeren Festplatten und aktiviertem Schreibcache immer mehr Daten im Fall eines Absturz verloren als bei kleinen Festplatten.

Ich glaube damit meintest du den SOFTWARE Schreibcache. Dein Festplattencache stürzt ja nicht ab, wenn dein Betriebssystem nicht mehr will, die firmware ist davon unabhängig. Sie könnten also noch geschrieben werden, so lange Strom vorhanden ist.
Das würde ich jetzt nicht als argument sehen, das Gigabyte I-RAM verliert die Daten ja auch nicht, wenn du das willst...

PatkIllA
2008-11-29, 11:39:07
Außerdem hat der RAM jetzt immer noch nix mit diesem Thema zu tun, es geht nachwievor um Cache. Bitte wenn möglich nicht darauf zurückfallen.
Ich glaube du betrachtest das aus dem falschen Winkel! Deine CPU besitzt eigene, exklusive caches, die für nichts anderes gedacht sind, als für deine CPU. das gleiche bei optischen Laufwerken und bei Festplatten. Das allein ist schon Begründung genug um diese these nicht weiter verfolgen zu müssen.
Arbeitsspeicher ersetzt einen Cache nicht vollständig, er dient lediglich als weitere Ebene.
Oder in anderen Worten auszudrücken, ich würde den Festplattencache den L1 Cache nennen und den Arbeitsspeicher "L3 Cache" (CPU-gemäß).
Die Speicher Hierachie zeichnet sich dadurch aus, dass der Speicher jedes mal größer aber langsamer wird.
L1 -> L2 (-> L3) -> RAM -> HDD.
Der Festplattenchache zwischen RAM und HDD passt da nicht rein, da er langsamer und kleiner als der RAM ist.

Gast
2008-11-29, 11:45:34
Die Speicher Hierachie zeichnet sich dadurch aus, dass der Speicher jedes mal größer aber langsamer wird.

Das ist ja auch der Fall, deswegen mein Beispiel!

Der Festplattenchache zwischen RAM und HDD passt da nicht rein, da er langsamer und kleiner als der RAM ist.

Der passt sehr gut da rein, da datenrate nicht alles ist.
dein arbeitsspeicher mag ja schneller sein, aber er bekommt die daten nicht als erstes! die festplatte und deren cache sind an der "quelle" und liefern diese dann erst aus...

außerdem kannst du das immer noch nicht so rechnen wie du das hier siehst. Der Festplattencache ist exklusiv, dein Arbeitsspeicher ist es nicht! Den Arbeitsspeicher, egal ob bandbreite oder größe teilst du dir mit tausend anderen komponenten/anwendungen. wenn da z.B. noch ne onboardgrafik drüberläufst und du gerade zockst, wieviel bleibt dann übrig... das lässt sich nie genau vorherbestimmen, daher ist der auch nicht erste wahl!

PatkIllA
2008-11-29, 12:02:57
Der passt sehr gut da rein, da datenrate nicht alles ist.
dein arbeitsspeicher mag ja schneller sein, aber er bekommt die daten nicht als erstes! die festplatte und deren cache sind an der "quelle" und liefern diese dann erst aus...

außerdem kannst du das immer noch nicht so rechnen wie du das hier siehst. Der Festplattencache ist exklusiv, dein Arbeitsspeicher ist es nicht!
Das exklusiv ist völllig egal. Bei CPU und GPU ist es auch nur aus technischer Notwendigkeit so.
So schnell kann man den Hauptspeicher nicht sinnvoll und bezahlbar anbinden.

Bei den vergleichsweise schnarchlahmen Magnetplatten reicht das SATA-Interface problemlos aus. Und die Daten aus dem Festplattencache müssen IMMER erst in den Hauptspeicher bevor der Rechner sie nutzen kann. Die Festplatte hat von geladenen Daten selbst nichts. Im Gegensatz zum L1 Cache oder dem Speicher auf der Grafikkarte.

Den Arbeitsspeicher, egal ob bandbreite oder größe teilst du dir mit tausend anderen komponenten/anwendungen. wenn da z.B. noch ne onboardgrafik drüberläufst und du gerade zockst, wieviel bleibt dann übrig... das lässt sich nie genau vorherbestimmen, daher ist der auch nicht erste wahl!
Es bleibt noch weniger über wenn du den Arbeitsspeicher verkleinerst und dafür Speicher auf die Platte packst. Zudem kann die Platte auch nur ihre eigenen Daten cachen.
Wenn du jetzt zwei Platten im Rechner hast dann liegt evtl. der schöne Cachespeicher einer Platte unnütz rum. Wieviel übrig bleibt ist auch egal, solange genug da ist und die Chance, dass er reicht steigt mit der Größe des Arbeitsspeichers.
Die optimale Cachestragie lässt sich eh erst hinterher bestimmen, aber je mehr Informationen man hat desto näher kommt man ans Optimum. Und das OS weiß deutlich mehr als die Platte.

Gast
2008-11-29, 12:14:41
warum es nicht mehr cache ein festplatten gibt?

ganz einfach weil es praktisch nichts bringt, der cache in festplatten bringt in erster linie etwas als schreibcache wenn viele kleine dateien gespeichert werden sollen, die erstmal im cache landen können, bevor sie auch die magnetplatte geschrieben werden.

als lesecache bringt der cache in der festplatte so gut wie nichts.

ein lesecache bringt nur dann etwas wenn man auf die gleichen daten mehrfach zugreift. wenn eine software allerdings die gleichen daten mehrmals braucht wird sie nicht so blöd sein, sie jedesmal aus dem hauptspeicher zu entfernen und neu zu laden, daten die mehrmals gebraucht werden liegen also eh im RAM.

wieso also mehr verbauen wenn es nichts bringt?

LOCHFRASS
2008-11-29, 12:19:53
Und bei aktiviertem Schreibcache hat man das Problem, dass bei einem Rechnerabsturz die ganzen in den Cache aber noch nicht auf die Platte geschriebenen Daten futsch sind. Je größer der Cache, desto mehr Daten gehen bei einem Absturz verloren.
Der Cache sollte nicht mit der Festplattenkapazität anwachsen, sondern mit der Festplattengeschwindigkeit. Sonst gehen bei größeren Festplatten und aktiviertem Schreibcache immer mehr Daten im Fall eines Absturz verloren als bei kleinen Festplatten.

Dann sollte man einfach das Uebertakten sein lassen.

ux-3
2008-11-29, 12:31:06
Meine Erfahrung mit Festplatten sagt mir, dass nicht der Cache sondern das Bios der Platte einen größeren Leistungsfaktor ausmacht. Ich hatte vor Jahren eine IBM und eine Samsung Platte mit gleichen technischen Eckwerten. Zu meinem größten Erstaunen war die IBM etwa 10x so schnell wie die Samsung, wenn es darum ging, Audio und Video zu muxen. (ich hab es mit mehreren Platten und Rechnern getestet, es lag tatsächlich nur an den Platten)

Bei derartigen Leistungsunterschieden bei gleichen technischen Eckdaten gibt es offenbar wichtigere Einflüsse als das Cache.

Plextor hat bei Laufwerken übrigens lange Zeit deutlich mehr Cache verbaut, als andere Hersteller. Das macht sich tatsächlich in einigen wenigen Situationen bemerkbar, dort dann allerdings deutlich.

Gast
2008-11-29, 12:32:48
Das exklusiv ist völllig egal.

Nein, das ist ganz sicher nicht egal. :) bei BlackBird sträuben sich wahrscheinlich schon die Haare...
Wäre es egal, gäbe es die verschiedenen Cachelevel nicht!

Du hast das allerwichtigste vergessen:
Ein Festplattencache arbeitet auf einer eigenen Ebene. Es ist ihm sozusagen egal, mit was du gerade arbeitest, er tut nur seinen Job und zwar immer.
Nutzt du wie bereits geschildert, mehrere Betriebssysteme, so findet da kein Datenaustausch zwischen den beiden statt. Jedes Betriebssystem muss die daten einzelnd, selbst im RAM cachen, was mit doppelten oder noch höheren speicherbedarf einhergeht.

Es bleibt noch weniger über wenn du den Arbeitsspeicher verkleinerst und dafür Speicher auf die Platte packst.

Nein, warum sollte das so sein? Liefer mal eine Begründung. Daten die im Cache liegen, können - müssen jedoch nicht gelesen werden.

Zudem kann die Platte auch nur ihre eigenen Daten cachen.

das ist ja der Sinn und Zweck :crazy:! Das gibt es kein aber, kein wenn und auch keinen Nachteil!
Du wirfst hier ALLES durcheinander gerade, bitte gehe mal kurz an die frische Luft ;)
Ein EXKLUSIVER Cache auf JEDER Platte und den Arbeitsspeicher der am Ende steht, ist IMMER besser als NUR Arbeitsspeicher und keinen Festplattencache! Das zweifelst du mit diesem Kommentar den du abgegeben hast aber an und das ist weder nachvollziehbar, noch irgendwie begründbar!

Wenn du jetzt zwei Platten im Rechner hast dann liegt evtl. der schöne Cachespeicher einer Platte unnütz rum.

Stimmt doch gar nicht, der Cache einer ungenutzten Festplatte kann die zuletzt gelesenen Daten auf Abruf bereithalten. Das ist alles der Sache der Programmierung, man kann nicht nur cachen, wenn man wollte, könnte man auch vorcachen um so die beste Auslastung zu erreichen... die technologien dafür haben wir bereits.

Ich gebe dir ein praktisches Beispiel: Ich nutze Photostop oder Packe eine Datei mit maximaler dictionary size was unter 64 Bit Systemen MEHRERE GIGABYTE an RAM verschlingen kann! Ich hatte sogar den Fall, da war mein RAM bis oben hin gefüllt und das hat man auch performancemäßig gemerkt. Im Falle des Packpackprogramms schluckt dieses auch einen Großteil der Bandbreite für sich selbst, du hast uns immer noch nicht erzählt WOHER DIESE kommen soll!! JEDES MB/s das mit beim Arbeitsspeicher dann fehlt, VERSCHLECHTERT die performance meiner gerade laufenden Anwendungen, besonders bei packprogrammen sinkt sogar die performance ab, wenn du gerade was anderes machst, egal ob extra festplatte oder nicht.
Dein Beispiel hat also einen gravierenden Performancenachteil zur Folge.

Der Festplattencache ist exklusiv, er wird nicht zweckemfremdet, dein Arbeitsspeicher ist es immer noch nicht und daher wird er auch nie eine bessere alternative sein.
Außerdem sollten meiner Meinung nach keine falschen Rückschlüsse gezogen werden. Verschiedene Cachelevel bedeuten nicht ausschließlich, das sie immer größer und langsamer werden. Das ist je nach Einsatzzweck individuell festzulegen!!
Die Größe macht Sinn, da langsamer Cache in der Regel einfacher/günstiger zu integrieren ist, aber schon bei den Größe der Cachelevel geht es vorallem um die wirtschaftlichkeit, nicht nach nach logik! Intel könnte dir auch 32MB L2 Cache draufhauen, wenn du bereit wärst, das zu zahlen... (ausbeute)!
Was beim "Cachebeispiel" dort oben noch hinzugefügt werden sollte und was man auch gerade im Markt zieht: Die dritte Ebene ist für alle Cores da, die erste hat jeweils eine einzelne für sich, aus gutem Grund! Nachdem was du hier geschrieben hast, wäre der Nehalem aber eine Fehlkonstruktion, da du denkst, der Arbeitsspeicher reicht, also weg mit den Caches :P

Gast
2008-11-29, 12:41:19
Der Festplattencache ist exklusiv, er wird nicht zweckemfremdet, dein Arbeitsspeicher ist es immer noch nicht und daher wird er auch nie eine bessere alternative sein.

genau das ist ja der fehler.

der riesen festplattencache kann nur daten der festplatte vorhalten und ist für sonst nix zu verwenden.

nur bringt das vorhalten von daten im festplattencache größtenteils nichts, man liest nicht andauernd die gleichen daten von der platte, in der realität lädt man einmal und hat die daten dann im RAM.

Gast
2008-11-29, 12:46:29
genau das ist ja der fehler.

Was ist daran ein Fehler?

der riesen festplattencache kann nur daten der festplatte vorhalten und ist für sonst nix zu verwenden.

damit hat er seinen Einsatzzweck vollkommen erfüllt!
ein Zweckemfremdeter Speicher könnte nicht jederzeit die volle Performance liefern und garantieren. Wo siehst du also den Nachteil? Stell dir mal vor, ich hätte 10 Festplatten im Rechner... woher soll den Speicher dafür hernehmen und vorallem die Bandbreite? Ich will meine Anwendungen ja auch noch ausführen, ohne das diese darunter leiden!

Der Cache wird dir direkt mit der Festplatte geliefert, keine weiteren änderungen erforderlich. Und zwar für jede einzelnd.

in der realität lädt man einmal und hat die daten dann im RAM.

So ist das auch nicht. Du behauptest also, ich würde alle Daten im RAM halten? Wenn ich also 200 GB kopiere, wo sind die dann hin? Sicher nicht mehr im RAM =)

PatkIllA
2008-11-29, 12:50:22
Nein, das ist ganz sicher nicht egal. :) bei BlackBird sträuben sich wahrscheinlich schon die Haare...
Wäre es egal, gäbe es die verschiedenen Cachelevel nicht!Bitte noch mal nachlesen warum es die Cachelevel gibt. Es ist eine Hierarchie! RAM ist schneller und kostet das gleiche. Warum eine Ebene zusätzlich einführen?

Du hast das allerwichtigste vergessen:
Ein Festplattencache arbeitet auf einer eigenen Ebene. Es ist ihm sozusagen egal, mit was du gerade arbeitest, er tut nur seinen Job und zwar immer.
Nutzt du wie bereits geschildert, mehrere Betriebssysteme, so findet da kein Datenaustausch zwischen den beiden statt. Jedes Betriebssystem muss die daten einzelnd, selbst im RAM cachen, was mit doppelten oder noch höheren speicherbedarf einhergeht.Zwei Betriebssysteme sind die absolute Ausnahme und was sollen die sich groß Austauschen? Programmdaten überschneiden sich gar nicht und riesige Nutzdaten werden da auch nicht geteilt. Und bei einer MP3 oder Video sind die ersten Daten auch so schnell genug geladen.

Nein, warum sollte das so sein? Liefer mal eine Begründung. Daten die im Cache liegen, können - müssen jedoch nicht gelesen werden.

ICH SCHREIBE DEN ABSCHNITT JETZT MAL GRÖSSER DAMIT ES KLAR IST. DU VERGLEICHST ANSCHEINEND X GB RAM MIT X GB RAM + Y GB CACHE. DER VERGLEICH KANN ABER NUR X GB RAM + Y GB CACHE MIT (X + Y) GB RAM OHNE EXTRA CACHE SEIN

das ist ja der Sinn und Zweck :crazy:! Das gibt es kein aber, kein wenn und auch keinen Nachteil!
Du wirfst hier ALLES durcheinander gerade, bitte gehe mal kurz an die frische Luft ;)
Ein EXKLUSIVER Cache auf JEDER Platte und den Arbeitsspeicher der am Ende steht, ist IMMER besser als NUR Arbeitsspeicher und keinen Festplattencache! Das zweifelst du mit diesem Kommentar den du abgegeben hast aber an und das ist weder nachvollziehbar, noch irgendwie begründbar!
Natürlich ist das begründbar und das machen auch alle anderen.
An die Luft geh ich jetzt aber auch so.

Ich gebe dir ein praktisches Beispiel: Ich nutze Photostop oder Packe eine Datei mit maximaler dictionary size was unter 64 Bit Systemen MEHRERE GIGABYTE an RAM verschlingen kann! Ich hatte sogar den Fall, da war mein RAM bis oben hin gefüllt und das hat man auch performancemäßig gemerkt. Im Falle des Packpackprogramms schluckt dieses auch einen Großteil der Bandbreite für sich selbst, du hast uns immer noch nicht erzählt WOHER DIESE kommen soll!! JEDES MB/s das mit beim Arbeitsspeicher dann fehlt, VERSCHLECHTERT die performance meiner gerade laufenden Anwendungen, besonders bei packprogrammen sinkt sogar die performance ab, wenn du gerade was anderes machst, egal ob extra festplatte oder nicht.
Dein Beispiel hat also einen gravierenden Performancenachteil zur Folge.Und mit mehr RAM wäre der RAM nicht übergelaufen.
Und was nützt der zusätzliche Cache bei deinem Anwendungsszenario? Die Daten sind genauso schnell auf Platte weil weiterhin die Magnetscheibe weiterhin die Bremse darstellt.
Die Bandbreite für die Anwendungen sinkt sogar wenn du den Cache in die Platte verlagerst. Denn zu den eigentlichen Aufgaben kommt noch die Bandbreite, um die Daten aus dem RAM in den Festplattencache zu schreiben. Nutzt man den RAM als Cache kannst du die Daten einfach dort liegenlassen wo sie ohnehin schon sind. Direkt in den Festplattencache kann das Programm nicht packen.

Der Festplattencache ist exklusiv, er wird nicht zweckemfremdet, dein Arbeitsspeicher ist es immer noch nicht und daher wird er auch nie eine bessere alternative sein.
Außerdem sollten meiner Meinung nach keine falschen Rückschlüsse gezogen werden. Verschiedene Cachelevel bedeuten nicht ausschließlich, das sie immer größer und langsamer werden. Das ist je nach Einsatzzweck individuell festzulegen!!
Der RAM ist aber der zentrale Dreh- und Angelpunkt alle Daten müssen da einmal rein.

Die Größe macht Sinn, da langsamer Cache in der Regel einfacher/günstiger zu integrieren ist, aber schon bei den Größe der Cachelevel geht es vorallem um die wirtschaftlichkeit, nicht nach nach logik! Intel könnte dir auch 32MB L2 Cache draufhauen, wenn du bereit wärst, das zu zahlen... (ausbeute)!
Und hast du mal die Benchmarks von gleichen Prozessoren mit mehr Cache rausgesucht? In praktisch allen Fällen liegt es im einstelligen Prozentbereich. Meistens im unteren.
Was beim "Cachebeispiel" dort oben noch hinzugefügt werden sollte und was man auch gerade im Markt zieht: Die dritte Ebene ist für alle Cores da, die erste hat jeweils eine einzelne für sich, aus gutem Grund! Nachdem was du hier geschrieben hast, wäre der Nehalem aber eine Fehlkonstruktion, da du denkst, der Arbeitsspeicher reicht, also weg mit den Caches :P
Cache gut und schön, aber in der Hierarchie muss es einen Vorteil geben. Festplattencache ist langsamer und nicht billiger als RAM.

Gast
2008-11-29, 12:55:13
Was ist daran ein Fehler?

dass du jede menge speicher hast der die meiste zeit sinnlose daten enthält.

klar, wenn der RAM ausgeht und ausgelagert werden muss wäre das ganze erstmals schneller, so lange man diesen cache benutzen kann. mit mehr RAM müsste aber erst garnicht ausgelagert werden und es ist nochmal deutlich schneller, da kein langsames interface bremst.

Gast
2008-11-29, 12:58:10
das glaube ich nicht umbedingt. bei den flashmedien soll ja das dateisystem/die firmware die blöcke selbst so aufteilen können, das sie gleichmäßig beschrieben werden, im umkehrschluss sollte das auch bedeuten, dein laufwerk kann wissen, welche blöcke am meisten gefragt sind.

auch eine SSD weiß nicht welche daten am häufigsten gebraucht werden, sie weiß lediglich welche physikalische speicherzellen am häufigsten beschrieben wurden, sie weiß aber nicht welche daten am häufigsten gelesen werden.

PatkIllA
2008-11-29, 13:02:12
auch eine SSD weiß nicht welche daten am häufigsten gebraucht werden, sie weiß lediglich welche physikalische speicherzellen am häufigsten beschrieben wurden, sie weiß aber nicht welche daten am häufigsten gelesen werden.
Sie könnte sich das natürlich auch merken, aber da hat sie ja nichts von. Das merken der geschrieben Blöcke geschieht ja auch nur für das Wear Leveling, damit die Platte nicht nach einigen Wochen defekt wird.
Für die Performance weiß das OS viel besser was gebraucht wird.

Lediglich bei NCQ nimmt die Platte selbsständig Rücksicht auf ihre physikalischen Eigenheiten und Datenverteilung. Dafür reichen die paar vorhanden MB aber.

Mr.Magic
2008-11-29, 13:11:51
So ist das auch nicht. Du behauptest also, ich würde alle Daten im RAM halten? Wenn ich also 200 GB kopiere, wo sind die dann hin? Sicher nicht mehr im RAM =)

Ja, wenn du 200GB in den RAM kopierst, bleiben die 200GB im RAM. Beim Umkopieren auf Datenträgern "fließen" sowieso nur "unbrauchbare" Datenstücke durch den RAM.

ps: Komm' mir jetzt nicht mit Streaming (z.B. Video). Der Sinn solcher Verfahren ist es, dass nur momentan benötigte Inhalte im Speicher sind.

Gast
2008-11-29, 13:12:09
Bitte noch mal nachlesen warum es die Cachelevel gibt.

... aus Gründen, die ich bereits aufgeführt habe.

RAM ist schneller und kostet das gleiche.

Stimmt wieder nicht, du solltest das nicht so verallgemeinern! Haste mal die Daten eines Nehalem Caches gesehen? Guck am besten erst nach bevor du sowas schreibst!
Da waren sowohl Datenrate als auch Zugriffszeit erheblich besser.

Warum eine Ebene zusätzlich einführen?

braucht nicht mehr eingeführt werden, existiert schon seit 20+ Jahren! ;)
Um die Frage zu beantworten: Weil sie auf ihren Einsatzzweck hin optimiert werden kann! Stell dir vor, deine CPU hätte gar keinen Cache und müsste allein mit dem RAM klar kommen und diesen sogar mit dutzenden Anwendungen teilen! Die CPU wäre grottenlahm, da sie erst dann weiter arbeiten könnte, wenn sie die Daten zur Verfügung hat. Und das bestätigte sich ja auch in der Realität, der Celeron(?) lässt grüßen ;)

Zwei Betriebssysteme sind die absolute Ausnahme und was sollen die sich groß Austauschen?

Bitte höre auf zu verallgemeinern! Da sträuben sich mir die Haare. Das was du als absolute Ausnahme bezeichnest, wird sowohl bei Workstations (Entwickler wollen ja auch mal was testen!), in vielen Fimen und sogar bei (v-)Servern betrieben! Also täglich x millionenfach!

Programmdaten überschneiden sich gar nicht und riesige Nutzdaten werden

ICH SCHREIBE DEN ABSCHNITT JETZT MAL GRÖSSER DAMIT ES KLAR IST. DU VERGLEICHST ANSCHEINEND X GB RAM MIT X GB RAM + Y GB CACHE. DER VERGLEICH KANN ABER NUR X GB RAM + Y GB CACHE MIT (X + Y) GB RAM OHNE EXTRA CACHE SEIN

lol! ich habe nur versucht DIR anhand eines EINFACHEREN Beispiels klar zu machen, WORUM es mir hier geht! Leider hast du das bis jetzt nicht einmal verstanden.
Ich möchte, das du GAR NICHT über den RAM sprichst, damit ich es auch NICHT tun muss, weil es hier NICHt darum geht. :D
DU denkst das jetzt nur deshalb, weil du auch mein Beispiel mißverstanden hast was sehr schade ist! Ich bin kein freund von Simplifizierungen!

Natürlich ist das begründbar und das machen auch alle anderen.

Dann liefere uns eine logische Begründung oder halte dich bitte aus diesem Thema fern, danke.

Festplattencache ist langsamer und nicht billiger als RAM.

er steht NICHT unbegrenzt zur Verfügung und die Bandbreite ist EBENSO begrenzt! Du warst bis jetzt nicht ein einziges mal in der Lage uns klar zu machen, woher du diese nehmen willst. Habe ich nun 10 Festplatten im Rechner, welche widerum Daten aus den HDD-Cache liefern können, wo bekomme ich dann meine 3 GB/s Bandbreite her und zurück? Die fehlen dann woanders und zwar bei den Anwendungen, welche LANGSAMER werden.
Und jetzt bitte nochmal informieren, wozu ein Cache gedacht ist: http://de.wikipedia.org/wiki/Cache

------------

Wenn das Thema bald abgehakt ist, könnten wir vielleicht wieder zum eigentlichen kommen...
Mir gehts nicht nur um das hier und jetzt, sondern um das WARUM UND WIESO. Das sind zwei verschiedene Dinge.

WARUM besitzt beispielweise die Raptor einen 16MB Cache, handelsübliche, sogar günstigere Platten, das doppelte? Und so weiter...

Spasstiger
2008-11-29, 13:14:35
Wer mehr Festplattencache braucht, weil er z.B. häufig Schreibzugriffe hat, der bekommt ihn auch, in dem er einen dedizierten Controller holt.
Eigentlich benötigt eine HDD gar keinen Cache, wenn der Controller das Caching übernimmt.

Für den Heim-PC nimmt man onboard-Controller oft als selbstverständlich hin und sucht erst gar nicht nach einer Alternative. Dabei ist mit einem Intel ICH10 und Co. nicht annähernd das Optimum zur Ansteuerung von Datenträgern erreicht.

Gast
2008-11-29, 13:14:40
Ja, wenn du 200GB in den RAM kopierst, bleiben die 200GB im RAM.

So viel RAM und Plattenspeicher habe ich gar nicht, trotzdem hatte ich sogar mal eine komplette 500 GB platte kopiert. Muss dir das nicht zu denken geben? :)
Der Softwarecache besitzt hat ebenfalls eine limitierte Größe, es werden lediglich Teile gecached, nicht alles und das kann ein Festplattencache eben auch.

Gast
2008-11-29, 13:17:50
dass du jede menge speicher hast der die meiste zeit sinnlose daten enthält.

dann ist also für dich auch der RAM nutzlos? Der enthält ja auch sinnlose daten, die du gerade nicht brauchst. Selbst wenn du eine Anwendung schließt, heißt das nicht, das der RAM damit geleert ist... merkst ja leicht daran, das sie danach oftmals schneller startet, ohne das die Festplatte wieder bemüht werden muss. ;)

Mr.Magic
2008-11-29, 13:22:28
So viel RAM und Plattenspeicher habe ich gar nicht, trotzdem hatte ich sogar mal eine komplette 500 GB platte kopiert. Muss dir das nicht zu denken geben?

Aufrüsten! Loslos!

nochmal gaaaanz einfach:
Kopieren =|= Laden & Benutzen

Philipus II
2008-11-29, 13:23:16
Soweit ich weis bringt das Mehr an Cache hauptsächlich beim Kopieren innerhalb der Platte Vorteile.Meist werden Daten aber nicht einfach so verschoben.

PatkIllA
2008-11-29, 13:30:17
Stimmt wieder nicht, du solltest das nicht so verallgemeinern! Haste mal die Daten eines Nehalem Caches gesehen? Guck am besten erst nach bevor du sowas schreibst!
Da waren sowohl Datenrate als auch Zugriffszeit erheblich besser.
Festplattencache ist ganz normaler DRAM. Billiger geht es nicht. Den Sinn vom CPU-Cache streite ich doch gar nicht ab.

Bitte höre auf zu verallgemeinern! Da sträuben sich mir die Haare. Das was du als absolute Ausnahme bezeichnest, wird sowohl bei Workstations (Entwickler wollen ja auch mal was testen!), in vielen Fimen und sogar bei (v-)Servern betrieben! Also täglich x millionenfach!Und auch da kann das Betriebssystem auf dem virtuellen Server laufen viel besser die Daten vorhalten.

lol! ich habe nur versucht DIR anhand eines EINFACHEREN Beispiels klar zu machen, WORUM es mir hier geht! Leider hast du das bis jetzt nicht einmal verstanden.
Und in deinem einfachen Beispiel wird durch Cache auf der Platte nichts schneller. Bestenfalls kommt es dir etwas schneller vor weil der Dialog vom Programm/eher verschwindet, aber das eigentliche Ziel die Daten auf dem nichtflüchtigen Magnetspeicher abzulegen wird überhaupt nicht schneller.

Ich möchte, das du GAR NICHT über den RAM sprichst, damit ich es auch NICHT tun muss, weil es hier NICHt darum geht. :DDa wirklich sämtliche Daten über den RAM laufen kann man den nicht auslassen.

Dann liefere uns eine logische Begründung...Mehrfach von mir und anderen getan.

er steht NICHT unbegrenzt zur Verfügung und die Bandbreite ist EBENSO begrenzt! Du warst bis jetzt nicht ein einziges mal in der Lage uns klar zu machen, woher du diese nehmen willst. Habe ich nun 10 Festplatten im Rechner, welche widerum Daten aus den HDD-Cache liefern können, wo bekomme ich dann meine 3 GB/s Bandbreite her und zurück? Die fehlen dann woanders und zwar bei den Anwendungen, welche LANGSAMER werden.Du bekommst durch den Cache keine zusätzliche Bandbreite für die Anwendungen,.weil die Daten vom Cache in den RAM kopiert werden und dann von der Anwendung genutzt werden.
Und jetzt bitte nochmal informieren, wozu ein Cache gedacht ist: http://de.wikipedia.org/wiki/Cache
Da gibt es auch super Artikel wie ein Computer funktioniert...

WARUM besitzt beispielweise die Raptor einen 16MB Cache, handelsübliche, sogar günstigere Platten, das doppelte? Und so weiter...Weil das super als Marketing verkaufen kann, weil manche glauben dass es was bringt. Warum gibt es sonst LowEnd-Karten mit 1 GiB Speicher?

Gast
2008-11-29, 13:44:54
Aufrüsten! Loslos!

Wozu einen überdimensionierten Rechner aufrüsten. ;)

nochmal gaaaanz einfach:
Kopieren =|= Laden & Benutzen

Einfacher wäre es gewesen, wenn du mich nicht zitiert hättest, wenn du ein ganz anderes Beispiel bringst, was mit den Beiträgen davor nichts zu tun hatte. Das wirft nur alles durcheinander. :)
Deine Festplatte kann auch cachen, wenn du nur kopierst... ebenso wie der Software/Schreibcache. Dieser nimmt trotzdem nicht die volle Menge des Speichers in Anspruch.
Ich kann problemlos 40 GB große Dateien kopieren, ohne über genügend RAM/Cache zu verfügen. Wichtig ist nur, das die Dateiteile zur Verfügung stehen, die gerade verarbeitet werden.

Und auch da kann das Betriebssystem auf dem virtuellen Server laufen viel besser die Daten vorhalten.

Mööp, darum ging es schließlich.
Dafür muss dieses die Daten erst einmal geliefert bekommen haben und worüber geht das? Richtig, über die Festplatte, über deren Cache und über das Interface! Das ist schließlich die Quelle an der alles beginnt..
Dann sollten wir auch nicht vergessen, das Übertragungen Zeit in Anspruch nehmen.
Vielleicht weiß da ja jemand genaueres zu SATAII, wie niedrig kann z.B. die Zugriffszeit mit USB2.0 / SATAII und DRAM maximal sein? Selbst DDR2 kommt laut EVEREST immer noch auf ca 50-90ns.
Bei CPU caches reden wir da schon von unter 2ns oder sogar 0.x ns.

Und in deinem einfachen Beispiel wird durch Cache auf der Platte nichts schneller.

Darum ging es ja niemals, also ist das vollkommen OKAY! Das Beispiel war nur dazu gedacht, DIR klar zu machen, WARUM Caches existieren. Denn du hast den Nutzen ein paar Beiträge zuvor abgestritten (siehe zitierten Stellen) und die Nehalem Passage...

Da wirklich sämtliche Daten über den RAM laufen kann man den nicht auslassen.

Hat auch keiner gesagt, deswegen würde ich begrüßen zum Thema zurückzukommen...

Du bekommst durch den Cache keine zusätzliche Bandbreite für die Anwendungen

Hat auch keiner gesagt.
Du musst aber auch keinen reservieren und jederzeit frei halten. Darum ging es. Ein Cache wird bei Bedarf genutzt. Wenn ich 10 Festplatten habe, verliere ich nicht gleich x GB RAM oder x GB/s an Bandbreite. Jetzt kommen wir der Sache schon näher =)
Etwas was eine Festplatte cachen kann, muss nicht nochmal -Zeitaufwendig- geladen werden, da die Zugriffszeit aktueller Platten ja im "ms" Bereich liegt, RAM jedoch im "ns".

PatkIllA
2008-11-29, 13:56:48
Mööp, darum ging es schließlich.
Dafür muss dieses die Daten erst einmal geliefert bekommen haben und worüber geht das? Richtig, über die Festplatte, über deren Cache und über das Interface!Und die kommen von den Magnetscheiben die langsamer als das Interface sind. Deshalb baut man an der Stelle keinen zusätzlichen Speicher als die paar MB ein. RAM ist billig und universell nutzbar. Festplattencache kostet genauso viel wie RAM und kann nur die Daten von der Festplatte halten und ist zudem per SATA noch vergleichsweise langsam angebunden.

Darum ging es ja niemals, also ist das vollkommen OKAY! Das Beispiel war nur dazu gedacht, DIR klar zu machen, WARUM Caches existieren. Denn du hast den Nutzen ein paar Beiträge zuvor abgestritten (siehe zitierten Stellen) und die Nehalem Passage...
Wusste ich vorher schon. Die Nützlichkeit von CPU Cache habe ich nie abgestritten. Die Hierachie hast du aber anscheinend immer noch nicht verstanden. Steht aber im Wiki-Artikel drin.

Hat auch keiner gesagt.
Du musst aber auch keinen reservieren und jederzeit frei halten. Darum ging es. Ein Cache wird bei Bedarf genutzt. Wenn ich 10 Festplatten habe, verliere ich nicht gleich x GB RAM oder x GB/s an Bandbreite. Jetzt kommen wir der Sache schon näher =)Du verlierst nichts wenn du den Speicher als Arbeitsspeicher statt lokal auf der Platte verlötet hast. Im Gegenteil. die Daten im Cache der Platte können zu gar nichts genutzt werden solange sie nicht im RAM liegen.
Etwas was eine Festplatte cachen kann, muss nicht nochmal -Zeitaufwendig- geladen werden, da die Zugriffszeit aktueller Platten ja im "ms" Bereich liegt, RAM jedoch im "ns".
Alles was eine Festplatte cachen kann kann auch das OS im RAM-Cachen. Und das sogar deutlich intelligenter und flexibler. Bei gleichen Kosten und höherer Geschwindigkeit. Die paar CPU-Zyklen sind dafür auch noch über. Und wenn du das nicht willst, dann ist ein Controller mit einem gemeinsamen Cache immer noch besser, weil er flexibler ist normalerweise bei wiederrum schneller angebunden ist als die Platten. Da stimmt dann wenigstens die Hierachie wieder.

Damit du Ruhe gibst gestehe ich dir ein, dass du mit mehr Cache länger mit voller SATA-Geschwindigkeit zugreifen könntest.
In der Gesamtbetrachtung ist der verwendete Speicher als Arbeitsspeicher deutlich besser aufgehoben ohne Nachteile zu haben. Die paar MB für kurzzeitige Unterbrechungen und Kopfbewegungen ausgenommen.

Gast
2008-11-29, 14:31:39
Und die kommen von den Magnetscheiben die langsamer als das Interface sind.

Darum dreht sich das thema, wenn du den ersten Beitrag nocheinmal in Erinnerung rufst!
Mir liegen kaum informationen zu aktuellen festplattencaches vor... arbeiten die bereits nach dem schema "pre-cachen" oder sind die nur darauf getrimmt, die geladenen daten zu behalten. Beides ist machbar und eben wenn nur letzteres der Fall ist, stellt sich die Frage, warum dann nicht anders / besser! ;)

Das warten ließe sich ja vollständig oder teilweise verhindern, wenn in Idle-Zeiten die Daten bereits eingelesen werden, die *wahrscheinlich* als nächstes geöffnet werden würden. Wenn dazu noch der Cache vergrößert werden würde, wäre die Masse dieser Daten auch größer. Bei einem 128MB Cache passen schon Programme wie z.B. 7zip, winamp und co dort rein und auch windows packt bereits seit Jahren häufig genutzten dateien in den Prefetch ordner, damit sie möglichst auf dem schnellsten bereich der festplatte liegen...

Du verlierst nichts wenn du den Speicher als Arbeitsspeicher statt lokal auf der Platte verlötet hast.

Das hatten wir auch schonmal und das stimmt ganz einfach nicht!
Ein Festplattencache arbeitet unabhängig vom OS. Beim Arbeitsspeicher ist das nicht so einfach, bereits gecachte Dateien von Windows kann z.B. Linux nicht verwenden. Dadurch wird das System ineffizient, da alles MEHRFACH vorgehalten werden muss. Ein Festplattencache braucht das nicht tun und spart so Unmengen an physikalischen Speicher ein.
Hast du dich schonmal über die geschützten Speicherbereiche bei Windows schlau gemacht?
Wenn jede Anwendung alles lesen könnte, gäbe das ein riesiger Sicherheitschaos. Dann könnte beispielweise dein Browser deine PIN aus der Banksoftware auslesen oder ein plugin deine zur zeit geöffneten inhalte aus dem RAM. Da gibt es Grenzen, zum glück!

Gast
2008-11-29, 14:41:38
Lediglich bei NCQ nimmt die Platte selbsständig Rücksicht auf ihre physikalischen Eigenheiten und Datenverteilung. Dafür reichen die paar vorhanden MB aber.


auf die verteilung hat NCQ auch keinen einfluss, es werden lediglich zugriffe umsortiert um den weg des schreib/lesekopfes zu minimieren.

Gast
2008-11-29, 14:45:34
dann ist also für dich auch der RAM nutzlos?

im gegensatz zum festplattencache kann der RAM dafür gebraucht werden wofür es gerade am sinnvollsten ist, der festplattencache kann nur daten der dazugehörigen festplatte vorhalten ohne zu wissen ob ich diese jemals brauche.

PatkIllA
2008-11-29, 14:47:16
Darum dreht sich das thema, wenn du den ersten Beitrag nocheinmal in Erinnerung rufst!
Mir liegen kaum informationen zu aktuellen festplattencaches vor... arbeiten die bereits nach dem schema "pre-cachen" oder sind die nur darauf getrimmt, die geladenen daten zu behalten. Beides ist machbar und eben wenn nur letzteres der Fall ist, stellt sich die Frage, warum dann nicht anders / besser! ;)
Ich hab schon ein paar mal gelesen, dass auch schon mal spekulativ weiter eingelesen wird, um den nächsten Zugriff schon parat zu haben. Das macht das OS aber mittlerweile sowieso. Zu Dos Zeiten war das noch anders, aber da war Speicher eh zu teuer um nennenswert was zu cachen.

Das warten ließe sich ja vollständig oder teilweise verhindern, wenn in Idle-Zeiten die Daten bereits eingelesen werden, die *wahrscheinlich* als nächstes geöffnet werden würden. Wenn dazu noch der Cache vergrößert werden würde, wäre die Masse dieser Daten auch größer. Bei einem 128MB Cache passen schon Programme wie z.B. 7zip, winamp und co dort rein und auch windows packt bereits seit Jahren häufig genutzten dateien in den Prefetch ordner, damit sie möglichst auf dem schnellsten bereich der festplatte liegen...Vista macht das ja jetzt endlich in größerem Ausmaß und lädt häufig benutzte Programme vor. Mit den Prefetch-Dateien ist sogar gleich ein beschleunigtes Starten möglich, da dort genau die benutzen Bereiche eines Programm auch Datei übergreifend (also auch dlls) am Stück gespeichert werden. Das übersteigt deutlichst die Fähigkeiten der Platte.

Das hatten wir auch schonmal und das stimmt ganz einfach nicht!
Ein Festplattencache arbeitet unabhängig vom OS. Beim Arbeitsspeicher ist das nicht so einfach, bereits gecachte Dateien von Windows kann z.B. Linux nicht verwenden. Dadurch wird das System ineffizient, da alles MEHRFACH vorgehalten werden muss. Ein Festplattencache braucht das nicht tun und spart so Unmengen an physikalischen Speicher ein.Du hast immer ein mehr oder weniger ausgeprägtes OS unter der Virtualisierung und das kann dann cachen. Um bei Virtualisierung speichereffizient zu arbeiten müssten sich alle Betriebssysteme absprechen und das tun sie nicht.
Außerdem geht der Festplattenzugriff immer über die Virtualisierungssoftware und damit über das Host-OS.
Direkter Zugriff auf die gleichen Daten geht alleine schon wegen des Dateissystems nicht.

Hast du dich schonmal über die geschützten Speicherbereiche bei Windows schlau gemacht?ja habe ich.
Wenn jede Anwendung alles lesen könnte, gäbe das ein riesiger Sicherheitschaos. Dann könnte beispielweise dein Browser deine PIN aus der Banksoftware auslesen oder ein plugin deine zur zeit geöffneten inhalte aus dem RAM. Da gibt es Grenzen, zum glück!Der Cache ist für die Anwendung transparent und kann auch nicht von ihr gesteuert oder beliebig ausgelesen werden. Deshalb ist das auch kein Sicherheitschaos.

PatkIllA
2008-11-29, 14:49:25
auf die verteilung hat NCQ auch keinen einfluss, es werden lediglich zugriffe umsortiert um den weg des schreib/lesekopfes zu minimieren.
Dafür braucht die Platte halt auch etwas Speicher um die Anforderungen zu speichern. Der Begriff "Cache" passt da nicht ganz.

Gast
2008-11-29, 15:00:04
Stell dir vor, deine CPU hätte gar keinen Cache und müsste allein mit dem RAM klar kommen und diesen sogar mit dutzenden Anwendungen teilen! Die CPU wäre grottenlahm, da sie erst dann weiter arbeiten könnte, wenn sie die Daten zur Verfügung hat. Und das bestätigte sich ja auch in der Realität, der Celeron(?) lässt grüßen ;)

anscheinend hast du den weder den zweck von cache noch die arbeitsweise von CPUs und festplatten verstanden, sonst wüsstest du, dass hier kein vergleich möglich ist.

Cache bringt genau dann was, wenn auf die selben daten mehrmals zugegriffen werden muss.

wenn du auf ein datum ein einziges mal zugreifst bringt dir cache rein garnichts, da dann die geschwindigkeit des speichers limitiert, auf dem das datum eigentlich liegt.

auf einer CPU wird ständig auf die gleichen daten zugegriffen, die rechenintensiven inner-loops passen oft in den L1-cache oder noch besser gar komplett in die register.

bei einer festplatte passiert das aber so gut wie garnicht, wenn du einmal auf die daten zugegriffen hast befinden sie sich eh im RAM, es gibt keinen grund nochmal auf die platte zuzugreifen.

die HDD kann man auch nicht einfach so in die speicherhierarchie einordnen, nach dem RAM ist dort im prinzip eine trennlinie.

programme können nämlich nur an dem arbeiten, was sich im RAM befindet, CPU-caches sind hier völlig transparent und werden von anwendungen garnicht wahrgenommen.

auf die festplatte dagegen muss erst zugegriffen werden, danach die nötigen daten in den RAM geladen werden, damit sie auch benutzt werden können.
es ist nicht möglich, direkt mit daten auf einer festplatte zu arbeiten.

Gast
2008-11-29, 15:05:50
Beim Arbeitsspeicher ist das nicht so einfach, bereits gecachte Dateien von Windows kann z.B. Linux nicht verwenden.

doch kann es, wenn du mehrere betriebssysteme laufen hast, braucht es immer ein hostsystem mit virtualisierungssoftware.

alle zugriffe auf die hardware, also auch auf die festplatte, laufen über das hostsystem, welches natürlich auch daten von der festplatte prefetchen kann.

merkt man übrigens deutlich wenn man unter vista eine VM betreibt, mit ausreichend ram wird sogar das gesamte image zwischengespeichert und die VM damit rasend schnell.

Xmas
2008-11-29, 15:07:41
Cache bringt genau dann was, wenn auf die selben daten mehrmals zugegriffen werden muss.

wenn du auf ein datum ein einziges mal zugreifst bringt dir cache rein garnichts, da dann die geschwindigkeit des speichers limitiert, auf dem das datum eigentlich liegt.
Cache wird natürlich auch für Prefetching verwendet, hilft also auch beim einmaligen Zugriff.

pool1892
2008-11-29, 15:27:31
erstens: wie wär es damit, dass festplattencaches ursprünglich zwecks fehlerkorrektur eingesetzt wurden? wenn ein defekter sektor geswappt werden muss, kommt es zu zeitverzug, der gepuffert werden muss.
zweitens: ncq kann iirc 32 pakete ordnen, standardmäßig je 512 byte. das ist nicht so arg viel, oder?
drittens: es gab in der c't sowohl bei 8->16 als auch 16->32 mbyte cache tests mit sonst identischen platten, jeweils mit nur punktuellen fortschritten, 16->32 nur sehr selektiv, ergo: bringt relativ wenig.
viertens: die cache strategien hingegen zeigen große unterschiede über hersteller und baureihen, hier zeigen sich wirkliche performanceunterschiede bzw. -präferenzen.
und schließlich: readyboost und turbomemory sind im prinzip versuche, genau so einen zwischencache zu schaffen, dazu noch nonvolatile und aufwendig vom os mit statistik kontrolliert. und: bringt nix, bisher (und bei turbomemory angebunden via pciE, also an einem schnellen interface)

also: für den common case scheint sich das erweitern der caches nicht zu lohnen. sonst hätten die 15000rpm enterprise server hdds mehr als 16mb cache, oder?

ps: die caches auf den genannten festplattencontrollern sind nur für raids effektiv, einzelplatten an sas zeigen da kaum ansprache.

Gast
2008-11-29, 16:44:25
also: für den common case scheint sich das erweitern der caches nicht zu lohnen. sonst hätten die 15000rpm enterprise server hdds mehr als 16mb cache, oder?

gute frage, aber die hängen doch eh an einem extra controller mit cache oder nicht?
zumindest bei der raptor kann ich's nicht verstehen,wenn schon teurer als mainstream,sollten auch mindestens mainstream features drin sein =)

Gast
2008-12-01, 12:16:57
Schaut euch mal eboostr an! (http://www.eboostr.com)

Das ist eine fantastische Caching Software die genau das macht, was ihr hier diskutiert, nämlich häufig benutzte Daten in eine Cache File zu laden, die entweder auf Flash-Speichern oder auch im RAM vorgehalten werden. Meinen XP Start beschleunigt das Teil um fast die Hälfte. Und auch unter Vista arbeitetet das Programm weit effizienter als der hauseigene Superfetch Algorithmus.

Wolfram
2008-12-02, 01:45:14
Frage mich gerade, warum der Gast diesen Thread eröffnet hat, wenn er die Antworten schon zu kennen glaubt und jede Erklärung, die den Ist-Zustand plausibel macht, ignoriert...:rolleyes:

Selbst wenn PatkIllA so ahnungslos sein sollte, sind es sämtliche mit der Entwicklung von Festplatten befaßten Ingenieure etwa auch? Noch keiner auf den Gedanken gekommen, daß man das doch alles viel besser machen könnte?

Im übrigen fände ich's auch hier ganz gut, wenn die Gäste mal von der Möglichkeit Gebrauch machen würden, unterschiedliche Gast-Namen zu benutzen, weil das die Übersichtlichkeit einfach deutlich erhöht.

Gast
2008-12-03, 18:40:11
Frage mich gerade, warum der Gast diesen Thread eröffnet hat, wenn er die Antworten schon zu kennen glaubt und jede Erklärung, die den Ist-Zustand plausibel macht, ignoriert...:rolleyes:

Frage mich gerade, warum ein Mod einen solchen Post verfasst und das Thema überhaupt nicht im geringsten wahrnimmt. Was hat dein Beitrag hier zu suchen und was trägt er zum Thema bei. In Worten: Nichts.

Sowas nennt sich im übrigen eine Diskussion; Behauptungen können widerlegt werden, wenn sie nicht stimmen. Und dabei muss auch dir aufgefallen sein, das die Zwischendiskussion rein gar nichts mit den Ursprungsfragen zu tun gehabt hatten.Mir wärs lieber gewesen, stünden die gar nicht hier,denn das lenkt nur ab!!

Wolfram
2008-12-03, 22:08:38
Frage mich gerade, warum ein Mod einen solchen Post verfasst und das Thema überhaupt nicht im geringsten wahrnimmt. Was hat dein Beitrag hier zu suchen und was trägt er zum Thema bei. In Worten: Nichts.

Sowas nennt sich im übrigen eine Diskussion; Behauptungen können widerlegt werden, wenn sie nicht stimmen. Und dabei muss auch dir aufgefallen sein, das die Zwischendiskussion rein gar nichts mit den Ursprungsfragen zu tun gehabt hatten.Mir wärs lieber gewesen, stünden die gar nicht hier,denn das lenkt nur ab!!
Wie Du an der Farbe meines Postings erkennen kannst, poste ich hier nicht als Mod. Wie Du am Sarkasmus meines Postings erkennen kannst, halte ich die Ursprungsfragen durch PatkIllAs Postings im Grundsatz für beantwortet. Für konkretere Details bräuchten wir jemand mit Entwicklerwissen. Das erübrigt sich aber, sofern schon die erläuterten abstrakten Grundprinzipien nicht nachvollzogen werden (können?). Und die Sache mit den Gast-Namen steht immer noch.