Twoja strefa:

login: hasło:
Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, szukaj
Ujednoznacznienie Ten artykuł dotyczy informatyki. Zobacz też: inne znaczenia tej nazwy.
Mergefrom.svg
Zasugerowano, aby artykuł bufor danych zintegrować z tym artykułem lub sekcją.

Cache (pamięć podręczna) to mechanizm, w którym ostatnio pobierane dane dostępne ze źródła o wysokiej latencji i niższej przepustowości są przechowywane w pamięci o lepszych parametrach.

Cache jest elementem właściwie wszystkich systemów - współczesny procesor ma 2 albo 3 poziomy pamięci cache oddzielającej go od pamięci RAM. Dostęp do dysku jest buforowany w pamięci RAM, a dokumenty HTTP są buforowane przez pośredniki HTTP oraz przez przeglądarkę.

Systemy te są tak wydajne dzięki lokalności odwołań - jeśli nastąpiło odwołanie do pewnych danych, jest duża szansa, że w najbliższej przyszłości będą one potrzebne ponownie. Niektóre systemy cache próbują przewidywać, które dane będą potrzebne i pobierają je wyprzedzając żądania. Np. cache procesora pobiera dane w pakietach po kilkadziesiąt czy też więcej bajtów, cache dysku zaś nawet do kolejnych kilkuset kilobajtów czytanego właśnie pliku.

Niektóre systemy pamięci cache umożliwiają informowanie systemu na temat charakteru danych by umożliwiać bardziej efektywne buforowanie. Służy temu np. wywołanie systemowe madvise.

Spis treści

Zasady projektowania cache

Część systemu komputerowego zajmująca się buforowaniem danych powinna charakteryzować się następującymi właściwościami:

  • powinna być jak najbardziej automatyczna
  • jej działanie nie powinno wpływać na semantykę pozostałych części systemu
  • powinna w jak największym stopniu poprawiać wydajność systemu w warunkach rzeczywistej pracy

Projektując cache rozpatruje się pewne typowe warunki, w jakich będzie on wykorzystywany. Program korzystający z cache ma więcej informacji na temat użycia pamięci w najbliższym czasie, i wydajność systemu można polepszyć jeśli zrezygnuje się z pełnej automatyzacji a pozwoli na dawanie cache'owi sugestii co do właściwego zachowania w danej sytuacji. W ten sposób działa m.in. wywołanie systemowe madvise, specjalne instrukcje asemblera na niektórych procesorach, nagłówki kontroli cache'owania w HTTP; wiele systemów zarządzania bazami danych pozwala też na przekazywanie kontrolerowi pamięci sugestii.

Zadanie cache można wyrazić w następujący sposób: mamy duży zbiór obiektów w powolnej pamięci, i niewielką ilość szybkiej pamięci, w której na pewno nie pomieszczą się wszystkie obiekty. Ciągle napływają żądania dostępu do obiektów, a cache musi je wszystkie spełnić w jak najmniejszym stopniu korzystając z pamięci powolnej.

Temperatura danych

Przy rozpatrywaniu systemu cache przydatne jest pojęcie "temperatury" - czyli prawdopodobieństwa, że w najbliższym czasie wpłynie żądanie dostępu do tego obiektu (jeśli obiekt jest duży, temperatura poszczególnych części może się różnić). Jest oczywiste, że powinniśmy w szybkiej pamięci trzymać obiekty o możliwie wysokiej temperaturze. Jednak temperatura obiektu nie jest znana, i musimy jakoś ją oszacować. Typowe heurystyki to:

  • lokalność czasowa - jeśli obiekt był ostatnio żądany, to jest duże prawdopodobieństwo, że będzie żądany ponownie w najbliższym czasie
  • lokalność przestrzenna - jeśli obiekt był ostatnio żądany, to prawdopodobnie będą też żądane obiekty leżące blisko niego. Położenie w wypadku pamięci komputera oznacza zwykle adres maszynowy. W przypadku plików na stronie internetowej, pliki linkujące do siebie leżą blisko siebie.
  • o niektórych typach obiektów wiemy, że ich średnia temperatura jest wyższa niż innych typów - np. temperatura pliku (z grubsza proporcjonalna do liczby ściągnięć) xhtml/html na stronie internetowej jest zazwyczaj wyższa niż temperatura pliku pdf.

Żeby zmaksymalizować średnią temperaturę cache, należałoby operować na poziomie jak najmniejszych jednostek, np. kilku bajtów. Byłoby to jednak bardzo niepraktyczne (obiekty zwykle są większe), więc używa się większych jednostek - np. w DBMS kilkudziesięciokilobajtowych stron. Strona taka może zawierać wiele obiektów. W miarę możliwości powinno się tak projektować strony, aby obiekty na jednej stronie miały podobną i skorelowaną temperaturę.

Jeśli na każdej stronie znajdowałyby się zarówno obiekty gorące jak i chłodne, niemożliwe byłoby uzyskanie wysokiej temperatury cache. Jeśli natomiast niektóre strony będą znacznie cieplejsze od innych, cache może zawierać te pierwsze i osiągnąć wyższą temperaturę. Na przykład w typowym drzewie indeksowym obiekty są relatywnie chłodne, natomiast wskaźniki są znacznie gorętsze. Tak więc trzymanie danych tylko na liściach pozwala na znacznie lepszą separację niż gdyby trzymać je na każdym węźle.

W miarę możliwości powinno się trzymać na stronie obiekty o skorelowanej temperaturze, np. strony pamięci wirtualnej procesora zawierają leżące po kolei bajty, które ze względu na lokalność przestrzenną mają prawdopodobnie skorelowane temperatury. Z tego też powodu używa się osobnych linii cache dla danych i dla kodu.

Przykłady cache

Cache procesora

Information icon.svg Osobny artykuł: Pamięć podręczna procesora.

Pamięć cache przyspiesza dostęp do relatywnie wolnej pamięci RAM. Charakteryzuje się bardzo krótkim czasem dostępu. Jest używana do przechowywania danych, które będą w niedługim czasie przetwarzane. Na współczesnych procesorach są 2 lub 3 poziomy pamięci cache: L1 (zintegrowana z procesorem), a także L2 i L3 (umieszczone w jednym chipie razem z procesorem, lub na płycie głównej).

Cache dysku twardego

Pamięć cache dysku twardego przyspiesza dostęp do bardzo wolnej pamięci masowej (w porównaniu do pamięci RAM do której dane są pobierane). Cache o wielkości od 128 KB do 64 MB jest zazwyczaj podzielony na dwie części: obszar podsystemu odpowiedzialnego za odczyt z wyprzedzeniem i buforowanie odczytu oraz mniejszy obszar opóźnionego zapisu. Dysk z kontrolerem komunikuje się magistralą szybszą niż najszybsze budowane dyski twarde - daje to możliwość przechowania danych w buforze i wysłania do kontrolera bez wykonywania cyklu dostępu do nośnika oraz wpływa pozytywnie na szybkość całego systemu.

Cache przeglądarki

Nazwa cache oznacza też miejsce na dysku twardym, w którym przeglądarka internetowa przechowuje odwiedzone uprzednio strony (lub części stron) WWW. Ma to na celu przyspieszenie przeglądania stron internetowych, gdyż nie ma potrzeby ściągania odwiedzonych już stron z Internetu.

Wikisłownik
Zobacz hasło w Wikisłowniku
p  d  
Pamięci cyfrowe
Pamięci masowe
Optyczne
Elektryczne
ROMPROMEPROMEEPROMOTP ROMFlashiRAMPamięć USBKartridżKarta pamięciSSD
Hybrydowe
Hdd od srodka.jpg
Pamięci operacyjne
Elektryczne
Inne
jak otworzyć sklep internetowy angielski dla dzieci noclegi zakopane wyższe harmoniczne sieci pióra parker kontenery biuro tłumaczeń zdjęcia ślubne poznań ustawa o finansach publicznych Wyższa Uczelnia Wrocław

Co nowego?


 Interaktywne kierownice PRAWDZIWA SYMULACJA SAMOCHODU , MA KLUCZYK PO PRZEKRĘCE ŚWIECĄCE. PO LEWEJ STRONIE 4 PRZYCISKI, PO NACIŚNIĘCIU KTÓRYCH WYGRYWANE SĄ DŹWIĘKI. NA DOLE 3 PRZYCISKI Z LEKARZEM,... Po sznurowadle do sukcesu Potrzeba czasu i cierpliwości, żeby dziecięce paluszki opanowały sztukę wiązania butów i używania sztućców. Jeżeli pozwolisz im trenować twoje dziecko będzie sprawniejsze, a w szkole szybciej nauczy się pisać. Pedagodzy są zgodni, im bardziej dziecko jest samodzielne, tym większą ma szansę na sukcesy w szkole. Mało sprawne rączki zamiast liter ... wózek, łózeczko, huśtawka 30.08.2010, stan idealny wózek chicco, łóżeczko i huśtawkę mam do sprzedania. Za wszystko420zł ... Konwersacja z dwulatkiem Wszystkie te miesiące twoich monologów wreszcie się opłaciły. W wieku dwóch lat większość dzieci potrafi już rozmawiać ze swoimi rodzicami. Jak zaawansowane sa te rozmowy zależy od dziecka. Przeciętny dwulatek ma w repertuarze około dwustu słów, ale w tym sa dzieci, które posługują się zaledwie paroma słowami, jak i takie, ... Przez zabawę do prostych pleców. Wady postawy- to brzmi poważnie. Tymczasem kłopotom z kręgosłupem możesz zapobiec całkiem niepoważnymi sposobami, sama dobrze się przy tym bawiąc. Nie garb się, siedź prosto – słyszy niemal każde dziecko i niewiele sobie z tego robi. A rodzicom wydaje się że nic więcej dla dziecka nie mogą zrobić. Przez to że ... Wózek spacerowy Graco Wózek używany, zapraszam do obejrzenia Sprzedam wuzko-spaceruwke 02.09.2010, sprzedam wuzko-spaceruwke,urzytkowana 1 rok,stan bardzo dobry,mozliwosc wyslania zdjec zainteresowanemu ... zadbaj o odpowiednie światło w tym zakresie. Wózek bliźniaczy Babywelt Montreal Twin Jak w temacie Babywelt Montreal twin, używany tylko przez moje bąki przez mniej niż rok. Gratis dodaję folię przeciwdeszczową i osłonkę na nóżki- zimową. Opis produktu Podwójny... sprzedam wózek 4 kolowy 23.08.2010, kolor granatowo-pomaranczowy opony debicy spacerowka + głeboki cena w sklepie 900zł ...