Какво е кеш памет и кеширане. Организация на кеш паметта
21 септември 2010 г. 20:31 ч. (Tue, 21 Sep 2010 20:31:25 GMT). Сега е Thursday 17th of May 2012 02:44:31 AM
Когато едни данни се зареждат в кеш паметта, данните които се намират около тях също трябва да бъдат заредени. Например ако програмата изпълнява цикъл, всички инструкции от цикъла ще бъдат изпълнени многократно. Затова когато първата инструкция от цикъла се зареди в кеш паметта всички съседни инструкции също се зареждат. По този начин при следващите инструкции процесорът няма да се обръща към оперативната памет, а ще ги чете от кеш паметта.
Ето защо кеш паметите са така организирани, че когато зареждаме данни или инструкция в кеш паметта, цял блок от съседни данни или инструкции се зарежда също. Всеки блок зареждащ се в кеш паметта се идентифицира с номер наречен етикет (tag), който може да бъде използван за да определим оригиналния адрес на данните в оперативната памет. По този начин, когато процесорът търси данни или инструкции той трябва да погледне етикетите и да види дали информацията се намира в кеш паметта.
Всеки блок от байтове и съответния му етикет са комбинирани в кеш паметта и формират линия. Линиите са организирани в таблица, както е показано на Фигура 6.12. Важно е да отбележим, че когато ни трябва дума или байт, които се намират вътре в блок от оперативната памет, целият блок се зарежда в една линия на кеш паметта заедно с етикета, който се използва за да покаже от къде е взет този блок.
В оперативната памет байтовете се помнят в последователни адреси. В кеш паметта обаче няма такъв ред. Затова използваме схемата за адресиране на оперативната памет, за да дефинираме блокове от байтове и имаме методи за установяване на тези блокове в кеш паметта. Пълният адрес в оперативната памет дефинира точно едно специфично място в паметта. За да организираме паметта в блокове, адресът е логически разделен на две части, едната представлява номера на блока, а другата изместването или пози-цията вътре в блока спрямо неговото начало.
Когато процесорът иска байт от оперативната памет, той първо проверява кеш паметта. Цифровите схеми за търсене в опера-тивната памет също се задействат но ако баитът се намери в кеш паметта търсенето в оперативната памет се игнорира. Ако баитът не е намерен, от оперативната памет се зарежда цял блок съдър-жащ байта, като линия в кеш паметта и се изпраща на процесораВ зависимост от използвания кеш/процесор интерфейс са възможни два случая. При първият байтът се записва в кеш паметта, след което се изпраща на процесора. В този случай кеш паметта се контролира от интерфейса и се намира между оперативната памет и процесора. При втория случай, кеш паметта действа като допълнителна памет и е на същата магистрала както оперативна-та памет. Тогава записването в кеш паметта и изпращането на байта към процесора става едновременно.
Съществуват три метода:
Директно съответствие (direct mapping): Методът за директно съответствие привързва твърдо всеки блок от оперативната памет към само една специфична линия в кеш паметта. Ако линията вече е заета с друг блок от паметта, когато новият блок трябва да се зареди, старият блок се отстранява от кеш паметта.
Пълното асоциативно съответствие: При пълното асоциативно съответствие всеки произволен блок от паметта може да бъде записан на която и да е линия в кеш паметта.
Множествено асоциативно съответствие: Комбинира метода на директното съответствие с метода на пълното асоциативно съответствие, като групира няколко линии в множество. Множествата се идентифицират използвайки схемата на директно съответствие. Вътре в множеството е организирана миниатюрна кеш памет, работеща по метода с пълно асоциативно съответствие.
write-back cache (кеш с отложен запис)
Техника, използвана за кеширане не само при четене, но и при запис на информация в основната памет. В един кеш с отложен запис кешът съхранява променения блок от данни, но обновява основната памет само при определени условия, например когато целият блок трябва да бъде върнат обратно в паметта, тъй като се налага на негово място да се прочете нов блок, или когато контролиращият алгоритъм реши, че от последното обновяване е изминало твърде много време. Този метод е твърде сложен за изпълнение, но е доста по-бърз от други решения.
write-through cache (кеш с директен запис)
Похват за проектиране на кеш, използван при записване на информация обратно в основната RAM памет. При кеша с директен запис всеки път, когато процесорът връща променена част от информацията в кеша, кешът обновява информацията както в себе си, така и в основната памет. Този метод е лесен за реализация, но не е толкова бърз, колкото други варианти. Неминуемо се получават забавяния, тъй като се налага процесорът да изчаква приключването на операциите по записа в по-бавната основна памет.
Всеки блок от байтове и съответния му етикет са комбинирани в кеш паметта и формират линия. Линиите са организирани в таблица, както е показано на Фигура 6.12. Важно е да отбележим, че когато ни трябва дума или байт, които се намират вътре в блок от оперативната памет, целият блок се зарежда в една линия на кеш паметта заедно с етикета, който се използва за да покаже от къде е взет този блок.
Разделяне на паметта на блокове
В оперативната памет байтовете се помнят в последователни адреси. В кеш паметта обаче няма такъв ред. Затова използваме схемата за адресиране на оперативната памет, за да дефинираме блокове от байтове и имаме методи за установяване на тези блокове в кеш паметта. Пълният адрес в оперативната памет дефинира точно едно специфично място в паметта. За да организираме паметта в блокове, адресът е логически разделен на две части, едната представлява номера на блока, а другата изместването или пози-цията вътре в блока спрямо неговото начало.
Действие на кеш паметта
Когато процесорът иска байт от оперативната памет, той първо проверява кеш паметта. Цифровите схеми за търсене в опера-тивната памет също се задействат но ако баитът се намери в кеш паметта търсенето в оперативната памет се игнорира. Ако баитът не е намерен, от оперативната памет се зарежда цял блок съдър-жащ байта, като линия в кеш паметта и се изпраща на процесораВ зависимост от използвания кеш/процесор интерфейс са възможни два случая. При първият байтът се записва в кеш паметта, след което се изпраща на процесора. В този случай кеш паметта се контролира от интерфейса и се намира между оперативната памет и процесора. При втория случай, кеш паметта действа като допълнителна памет и е на същата магистрала както оперативна-та памет. Тогава записването в кеш паметта и изпращането на байта към процесора става едновременно.
Характеристики на кеш паметта
- Големина на кеш паметта;
- Големина на блока (заедно с големината на паметта определят броя линии);
- Брой кеш памети (кеш памет с различни нива, разделена кеш памет);
- Организацията на кеш паметта (Връзката между адреса на блока в оперативната памет и неговото местонахождение в кеш паметта;
- Алгоритъм за премахване от кеш паметта (Използваният метод за отстраняване на блок от кеш паметта, за да се освободи линия);
- Политика на запис (Как процесорът записва данни в кеш паметта и как се променят след това данните в оперативната памет).
Методи за съответствие между линия в кеш паметта и адрес в оперативната памет.
Съществуват три метода:
Директно съответствие (direct mapping): Методът за директно съответствие привързва твърдо всеки блок от оперативната памет към само една специфична линия в кеш паметта. Ако линията вече е заета с друг блок от паметта, когато новият блок трябва да се зареди, старият блок се отстранява от кеш паметта.
Пълното асоциативно съответствие: При пълното асоциативно съответствие всеки произволен блок от паметта може да бъде записан на която и да е линия в кеш паметта.
Множествено асоциативно съответствие: Комбинира метода на директното съответствие с метода на пълното асоциативно съответствие, като групира няколко линии в множество. Множествата се идентифицират използвайки схемата на директно съответствие. Вътре в множеството е организирана миниатюрна кеш памет, работеща по метода с пълно асоциативно съответствие.
write-back cache (кеш с отложен запис)
Техника, използвана за кеширане не само при четене, но и при запис на информация в основната памет. В един кеш с отложен запис кешът съхранява променения блок от данни, но обновява основната памет само при определени условия, например когато целият блок трябва да бъде върнат обратно в паметта, тъй като се налага на негово място да се прочете нов блок, или когато контролиращият алгоритъм реши, че от последното обновяване е изминало твърде много време. Този метод е твърде сложен за изпълнение, но е доста по-бърз от други решения.
write-through cache (кеш с директен запис)
Похват за проектиране на кеш, използван при записване на информация обратно в основната RAM памет. При кеша с директен запис всеки път, когато процесорът връща променена част от информацията в кеша, кешът обновява информацията както в себе си, така и в основната памет. Този метод е лесен за реализация, но не е толкова бърз, колкото други варианти. Неминуемо се получават забавяния, тъй като се налага процесорът да изчаква приключването на операциите по записа в по-бавната основна памет.
Още публикации...
- Поддръжка на сайт със свеж уеб дизайн и интересно потребителско изживяване
- Качествен уеб дизайн
- Какво е TCP/IP и TCP, Телнет протокол
- Уеб системи и разработка на софтуер
- Комуникации, Интернет телекомуникации
- USENET и E-mail електронна поща, новинарски групи и Интернет комуникации
- RAM памет
- Какво е кеш памет и кеширане
- Персонални компютри (PC) и хардуерни устройства
- NetworkedBlogs за Facebook
- DSL Интернет технологии
- VPN и dialup Интернет мрежи
- Архивиране на данни
- Дизайн на уеб навигация. Защо уеб дизайна е труден
- Достъпен уеб дизайн
- Ползите от кризата за Интернет потреблението и рекламирането на бизнеса онлайн
- Уеб дизайн и Уеб разработване (web design & web development)
- Отвъд границите на вашия сайт: Девет начина за изграждане на онлайн присъствие
- Графични тенденции WEB 2.0
- Какво прави дизайна на даден уеб сайт наистина ефективен

