Пам’ять, Архітектура ЕОМ, FANDOM powered by Wikia
В архітектурі фон Неймана пам'ять служить для зберігання даних і команд. це досить важливо.
Тех пристрій пам'яті
Асинхронна пам'ять
Синхронна пам'ять (SDRAM)
синхронна, у тому сенсі, що синхронна щодо частоти процесора (працює за таймером системи, а не тільки на вимогу).
Поліпшення архітектури:
покращимо логіку
EDO extended data output
щось про якийсь буфер і як швидко ми його викидаємо, так і не зрозумів
Rambus RDRAM
не використовувала ТТ(транзисторну?) Логіку, пропускну здатність було підвищено в 4-5 разів. мабуть не дуже хороший спосіб, коли вона здохла.
DDR — Double Data Rate
Не дуже в курсі як це все працює, але ідея в тому, що ми можемо працювати в 2 рази швидше на тій же частоті, використовуючи для сигналів не тільки передній фронт сигналу, але і задній.
DDR2 редагувати
працює ще в 2 рази швидше за DDR. тут уже взагалі магія.
чому потрібен DDR
Працює системна шина досить низької частоті, пам'ять у нас синхронна, тобто. вона включається по сигналу генератора частоти, використовуючи DDR ми як би включаємося в 2 рази частіше і тому працюємо швидше, і для цього не потрібно підвищувати частоту шини, так як це дорожче задоволення (пристроїв на ній більше), що підвищити частоту роботи пам'яті.
Розшарована пам'ять (dual-channel)
DMA (Direct memoty access)
Зазвичай в комп'ютерах використовують архітектуру із загальною шиною (вона дешевше), коли взаємодія пристроїв на платі відбувається по одній "магістралі". DMA дозволяє самим пристроям (наприклад hdd) писати дані безпосередньо на згадку). Суть приблизно в тому, щозазвичай такі речі відбуваються за участю процесора, він читає з HDD і записує на згадку. таким чином DMA дозволяє заощаджувати ресурси.Bold text
раз вже заговорили про шину
flash-memory (поміняти місцями nand та nor - вони переплутані)
Акопян радив пошукати на ixbt про пам'ять, типу добре написати )
- 1988р. Intel винайшли флешпам'ять. - N-OR
- 1989р. Toshiba - N-AND
virtual-memory
- збільшення обсягу доступної оперативної пам'яті
ми говоримо системі, що у нас більше пам'яті, ніж реально є. у вінді для цього є файл підкачування, у решти це swap. штука дуже хороша яка робить оперативку як би віконцем через яке система дивиться на велику віртуальну пам'ять, звичайно вона це робить розумніше ніж просто віконце, але так наочніше ))
- розмежування доступу до даних в оперативній пам'яті
сторінка — це область пам'яті, яка має фіксований розмір для всіх. Змішування вважається щодо початку сторінки, розмір зберігати не треба (вірніше треба зберігати один раз).
Інформація про сегменти зберігається в Global Descriptor Table(одна на всіх) та Local Descriptor Table(для кожного процесу).
КЕШ
пам'ять надто повільна: т.к. динамічна і тому що шина повільна.
Мета кешу - забезпечити швидкопрацюючий процесор даними.
У процесорів продуктивність підвищується швидше, ніж продуктивність пам'яті.
Кеш ділиться на рівні: найближчий до процесора це L1, потім L2 і т.д.
Кеші поділяються на кеш команд і кеш даних. Так як інформація про тип (команда або дані) виходять із різних джерел та обробляються різними пристроями. Бонуси відбагаторівневістю: компроміс між швидкістю та ціною. Старші рівні можна робити менш продуктивними, але більшими за розміром.
Перший рівень: коли процесор вже виконує команди
Другий використовується для багатьох процесів.
Організація кешу:
inclusive/exclusive - 1 це в L1 лежить те, що теж є в L2, а в другому якщо є в L1 то з L2 викидаємо. Останнім часом найчастіше використовують друге.
Як працює: є кеш-контолер, він стежить коли процесору необхідні дані, він перевіряє, чи є дані в «який-небудь» кеш-пам'яті, може бути cache-hit (тоді все круто, дані в кеші) або cache-miss - починаємо завантажувати дані. Є різні політики як здійснювати запис та читання: при записі у разі кеш-попадання (write through наскрізний запис - записуємо дані в кеші і одночасно в наступний рівень кешу і далі в пам'ять, write back відкладена - змінюємо тільки запис в кеші - тобто дані в кеші не рівні даних в оперативній пам'яті, треба не забути потім змінити оперативну пам'ять) при записі write-miss (write allocation записуємо дані в пам'ять і одночасно записуємо їх в кеш, так само буває read allocation коли в кеш записується при читанні).
У кеші зберігаються окремо дані, а cache-line тобто. в одному осередку кеша зберігається кілька осередків пам'яті (частіше 4)
Політики витіснення:
1 random викидаємо випадковий осередок пам'яті
2 least recently used(lru) — викидаємо те, що менше використовується
3 LRR (least recently replaced) — витісняємо того, кого записали першим (найстарішого)
4 LFU (least frequently used) - потрібно рахувати як часто звертаємося до пам'яті.