Какво представлява Translation Lookaside Buffer?

Процесорите са невероятно сложни зверове. Има огромен брой взаимосвързани части, които всички трябва да работят в перфектен унисон, за да постигнат нивата на производителност, които виждаме. Производителността на паметта е ключов фактор за производителността на съвременните процесори, по-специално като ограничаващ фактор.

Защо скоростта на паметта е толкова важна?

Процесорите са невероятно бързи, като най-новите поколения работят на 5,7 GHz при подходящо охлаждане. Това им позволява да изпълняват 5,7 милиарда операции всяка секунда. Много от тези операции извършват действие върху някакъв тип данни, които трябва да бъдат съхранени в паметта.

Основната системна памет, известна като RAM, също е много бърза. За съжаление е много бърз в сравнение с всичко друго освен процесора. Абсолютната латентност на съвременната RAM от висок клас е от порядъка на 60 наносекунди. За съжаление, това означава приблизително 342 цикъла на процесора. За да се ускори достъпът до паметта, се използва кеш на процесора, който динамично кешира данни. Този кеш се намира на самата матрица на процесора и използва SRAM клетки, а не DRAM клетки, което го прави много по-бърз. За съжаление, кешът на процесора също е много по-малък от системната RAM, като общо не достига дори 100 MB. Все пак, въпреки миниатюрния си размер, многослойната CPU кеш система значително увеличава производителността на системата.

Тук идва виртуалната памет, за да обърка всичко

Съвременните компютри използват система, наречена виртуална памет. Вместо да се разпределят адреси на физическа памет към процеси, се използват адреси на виртуална памет. Всеки процес има собствено адресно пространство на виртуалната памет. Това има две предимства. Първо, той осигурява лесно разделяне между паметта, която принадлежи на един процес, и паметта, която принадлежи на друг. Това помага за предотвратяване на атаки, при които злонамерен софтуер чете данни от паметта на друг софтуер, като потенциално има достъп до чувствителна информация. Той също така скрива структурата на физическата памет от процеса. Това позволява на процесора да премести рядко използвани битове памет към файл за виртуална памет в хранилището, без непременно да го демонтира от виртуална RAM. Това позволява на компютъра внимателно да управлява сценарии, при които е необходима повече RAM, отколкото е физически налична. Без виртуална памет,

За съжаление, ако използвате адреси на виртуална памет, компютърът трябва действително да преведе тези адреси на виртуална памет в адреси на физическа памет, за да прочете данните. Това изисква таблица за съхраняване на всички преводи на адреси на виртуална памет към адреси на физическа памет. Размерът на това директно зависи от количеството използвана RAM. Като цяло е сравнително малък, поне в сравнение с капацитета на системната RAM памет. За съжаление, ако съхранявате транслацията между виртуални адреси и физически адреси в RAM, трябва да направите две заявки към RAM за всяка заявка към RAM. Един за намиране на физическия адрес за заявка и след това друг за действителен достъп до това местоположение.

Въведете буфера за превод отстрани

Решението на този проблем е таблицата за превод да се съхранява някъде по-бързо. Кешът на процесора би паснал добре на сметката, поне от гледна точка на скоростта. Проблемът с това обаче е, че кешът на процесора е малък и вече е силно използван. Таблицата не само не се побира в кеша, но това би нарушило нейното вече определящо производителността използване.

Разбира се, ако принципът на кеша вече работи за достъп до паметта, защо не го повторите за таблицата за превод? И точно това е Translation Lookaside Buffer или TLB. Това е високоскоростен кеш за скорошни преводи на адреси. Не е достатъчно голям, за да съхрани цялата маса, но малкият му размер означава, че може да реагира много бързо, в рамките на един такт.

Всяка заявка за памет преминава през TLB. Ако има TLB хит, той може да предостави адреса на физическата памет за действителната заявка, като обикновено добавя единичен цикъл на латентност. Ако има TLB пропуск, търсенето трябва да се извърши от основната памет. Има малко нарушение на производителността при пропуск на TLB от около 5 цикъла, загуба, която е повече от засенчена от латентността на достъпа до паметта. След като преводът на адреса бъде извлечен от системната RAM памет, той се вкарва в TLB и след това заявката се повтаря с незабавно TLB попадение.

Забележка: Има различни схеми за изваждане на TLB. Някои могат да използват схема First In, First Out или FIFO. Други могат да използват схема за най-рядко използване или LFU.

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

Заключение

Translation Lookaside Buffer, или TLB, е високоскоростен кеш на процесора, предназначен за кеширане на скорошни преводи на адреси от файла на страницата в системната RAM памет. Това е необходимо, тъй като системите с виртуална памет, както са внедрени във всички съвременни компютри, биха изисквали две заявки към RAM за всяка заявка към RAM. Един за преобразуване на адреса на виртуалната памет в адрес на физическа памет, а друг за действителен достъп до физическия адрес. Чрез кеширане на скорошни преводи латентността на паметта може да бъде значително намалена за TLB хитове.

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


Leave a Comment

Основи на 3D печатањето: Совети за одржување на вашиот 3D принтер

Основи на 3D печатањето: Совети за одржување на вашиот 3D принтер

Држењето на вашите 3D принтери е многу важно за добивање на најдобри резултати. Еве некои важни совети за да се освежите.

5 Причини Защо Вашият Лаптоп Прегрява

5 Причини Защо Вашият Лаптоп Прегрява

Разберете някои от възможните причини, поради които вашият лаптоп прегрява, както и съвети и трикове за избягване на този проблем и поддържане на устройството хладно.

Основи на 3D печатането: Неправилник за поддръжка, който трябва да прочетете

Основи на 3D печатането: Неправилник за поддръжка, който трябва да прочетете

Поддържането на вашето оборудване в добро състояние е задължително. Ето някои полезни съвети, за да поддържате 3D принтера си в отлично състояние.

Как да намерите IP адреса на принтера

Как да намерите IP адреса на принтера

Имаме решение за вас как да откриете IP адреса на вашия принтер, ако имате проблеми с това.

Какво да правите, ако Powerbeats Pro не се зареждат в кутията

Какво да правите, ако Powerbeats Pro не се зареждат в кутията

Ако вашите Powerbeats Pro не се зареждат, използвайте друг източник на захранване и почистете слушалките. Оставете кутията отворена, докато зареждате слушалките.

Как да използвате AirPods с телефони Samsung

Как да използвате AirPods с телефони Samsung

Ако не сте сигурни дали да закупите AirPods за вашия телефон Samsung, това ръководство определено ще помогне. Най-очевидният въпрос е дали двете устройства са

10 Най-добри NAS устройства за съхранение за дома и професионална употреба

10 Най-добри NAS устройства за съхранение за дома и професионална употреба

Ако търсите NAS за вашия дом или офис, разгледайте този списък с най-добрите устройства за NAS съхранение.

Canon Pixma MG5220: Сканирайте без мастило

Canon Pixma MG5220: Сканирайте без мастило

Как да активирате сканирането на Canon Pixma MG5220, когато мастилото е свършило.

Как да инсталираме SSD на настолни и лаптоп компютри

Как да инсталираме SSD на настолни и лаптоп компютри

Току-що ли купихте SSD в надеждата да обновите вътрешната памет на компютър си, но не знаете как да инсталирате SSD? Прочетете тази статия сега!

Как да поправите грешка GeForce Now с код 0xC272008F

Как да поправите грешка GeForce Now с код 0xC272008F

Настройвате се за вечер на игри и тя ще бъде голяма – току-що закупихте "Star Wars Outlaws" в стрийминг услугата GeForce Now. Открийте единственото известно решение, което показва как да поправите грешката GeForce Now с код 0xC272008F, за да можете отново да започнете да играете игри на Ubisoft.