Направо към съдържанието

Оперативна памет

от Уикипедия, свободната енциклопедия
(пренасочване от Оперативната памет)

Оперативна памет е вид компютърна памет, която съдържа инструкциите за централния процесор и различни данни, използвани при неговата работа. В архитектурата на фон Нойман това е бързодействаща памет, с която процесорът обменя данни без посредничеството на други запаметяващи устройства. В оперативната памет се съхраняват кодът на изпълняваната програма и данните, върху които се извършват операциите. В съвременните системи се използва и кешпамет, която обикновено е разположена физически в чипа на процесора и осигурява време за достъп, съизмеримо с вътрешните за процесора операции.

Оперативна памет често се нарича първична памет (на английски: primary), вътрешна или просто памет, а паметта за съхранение на програми и данни е вторична (на английски: secondary), външна, локална или помощна[1]. Двете често се смесват, особено при смартфоните, в чиито технически спецификации са описани общо като „памет“ и се цитира обемът им в гигабайти. Оперативната (или RAM) памет е по-бърза (и по-скъпа), затова производителите са по-пестеливи с нея.

При съвременната изчислителна техника функцията на оперативна памет най-често се изпълнява от чипове памет с произволен достъп (RAM). По тази причина съкращението RAM често се използва като синоним на оперативна памет, въпреки че памет с произволен достъп се използва за много други цели. Названието „с произволен достъп“ се е появило по исторически причини като противоположно на памет с последователен достъп, използвана в зората на изчислителната техника като оперативна памет – такава е например барабанната памет.

На процесора често му се налага да контактува с паметта (обикновено DRAM). Осъществяването на тази връзка влиза в задачите на контролера на паметта. Въпреки високата скорост, с която се извършва преносът на данни, процесорът е принуден да чака, защото е няколко пъти по-бърз. За преодоляване на това забавяне в работата и по-рационално използване на процесора, служи кешпаметта, изградена на базата на SRAM. Кешпаметта е разположена много близо до процесора и е с неголям капацитет – обикновено по-малко от мегабайт. Идеята е най-често използваните команди и данни да не бъдат извличани от системната (оперативна) памет, а от по-бързата и по-близо разположена кешпамет. Затова процесорът първо проверява дали в кеша се намира това, което му трябва и едва ако го няма търси в RAM.

Идеята за кеш идва от едно емпирично наблюдение: около 20% от всички данни, програми и информация на персоналния компютър се използват през 80% от времето. Кешпаметта се опитва да прихване и задържи тези 20% за да ускори достъпа: контролерът на паметта записва в кеша всичко, което процесорът взима от паметта под формата на списък; всеки път, когато процесорът намери нужната му информация в кеша се получава „попадение“ и тя се премества в началото на списъка. Когато кешпаметта е пълна и се налага да се запише още нещо, последният запис (този който е на дъното и е най-рядко използван) се изтрива и на негово място се записва новата информация.

В съвременните компютри има повече от една кешпамет. Има такава, която се намира в корпуса на самия процесор и се нарича L1 cache (L1 – level 1, първо ниво), следва L2, L3.

Има и други ситуации, в които може да се употреби терминът кеш и кеширане. Първата е, когато говорим за swap файла (тук употребата е неправилна), който е разширение на паметта върху твърдия диск и втората – когато част от паметта се заделя, за да се подобри работата на твърдия диск. Тук вече употребата е съвсем на място, защото се заделя част от оперативната памет, която да служи за кеш на много по-бавния от нея твърд диск.

Методи за подобряване ефективността на оперативната памет

[редактиране | редактиране на кода]

Interleaving – става дума за начина, по който процесорът се обръща към паметта. Нормално е, след като процесорът адресира даден сектор от паметта, той да има нужда от един цикъл, за да се възстанови, следователно процесорът трябва да изчака. Но през това време той може да се обърне към друг сектор и така да ги сменя, за да не губи време. Interleaving се прилага и вътре в самия чип памет – клетките се разделят на две независими банки от клетки и така се осигурява непрекъснатост на потока данни

Bursting – обикновено на процесора не му трябва само една клетка от паметта, а няколко съседни. При bursting се взимат няколко клетки като цял блок. Това значително ускорява работата, макар да се случва заедно с необходимата информация да се подаде и ненужна. Тази технология може да се прилага при различни видове памети, а така също и при четене, и при запис

Pipelining – това е процес, при който някаква по-сложна задача се разбива на поредица от елементарни инструкции, които „потичат“ като по „тръба“ към процесора и той ги изпълнява една след друга в бърза последователност – без да отправя искане за нови данни и да чака да му се доставят. Така ако има няколко задачи, те се разделят на малки части и се пускат към процесора за обработка, в резултат на което е нужно по-малко време, отколкото ако се подават една по една големите задачи (процесорът ще трябва да ги извиква една по една и да чака идването им).

  1. Patterson, David, Hennessy, John. Computer Organization and Design: The Hardware/Software Interface. Elsevier, 1971. с. 23.