Как устроена оперативная память компьютера. Как устроена память в компьютере


Память

Данные в ЭВМ - это наборы битов, байтов и записей, которые должны быть записаны в памяти машины.

В современных ЭВМ данные размещаются не только в оперативной, но и в долговременной памяти.

В долговременной памяти могут размещаться данные больших объемов, а также целые комплексы программ, используемых для управления работой ЭВМ и автоматизированных систем.

Как устроена память компьютера

Память компьютера лучше всего представить себе в виде последовательности ячеек. Количество информации в каждой ячейке – один байт.

Любая информация сохраняется в памяти компьютера в виде последовательности байтов. Байты (ячейки) памяти пронумерованы один за другим, причем номер первого от начала памяти байта приравнивается к нулю. Каждая конкретная информация, которая сохраняется в памяти, может занимать один или несколько байтов. Количество байтов, которые занимает та или иная информация в памяти, являются размером этой информации в байтах.

Например, целое плюсовое число от 0 до 28 -1=255 занимает 1 байт памяти. Для хранения целого плюсового числа от 28=256 до 216-1=65536 нужно уже два последовательных байта.

Основная задача при работе с памятью состоит в том, чтобы найти место в памяти, где находится необходимая информация.

Для того, чтобы найти человека в большом городе, необходимо знать его точный адрес. Так же, чтобы найти место той или иной информации в памяти, введено понятие адреса в памяти.

Например, если слово "информатика", которое состоит из 11 букв, занимает байты с номерами от 1234 до 1244 (всего 11 байтов), то адрес этого слова равняется 1234.

Чем больше объем памяти, тем больше файлов и программ она может вместить, тем больше задач можно развязать с помощью компьютера.

Чем же определяется объем доступной памяти компьютера или какое наибольшее число можно использовать для указания адреса?

Адрес, как и любая информация в компьютере, подается в двоичном виде. Значит, наибольшее значение адреса определяется количеством битов, которые используются для его двоичной подачи. В одном байте (8 битов) можно сохранять 28(=256) чисел от 0 до 255, в двух байтах (16 битов) - 216 чисел от 0 до 65536, в четырех байтах (32 бита) – 232 чисел от 0 до 4294967295.

Виды памяти

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

Оперативная память (ОЗУ или англ.RAM от Random Access Memory – память с произвольным доступом) – это быстро запоминающее устройство не очень большого объема, которое непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, которые обрабатываются этими программами.

Оперативная память используется только для временного хранения данных и программ, так как, когда машина выключается то все, что находилось на ОЗУ, пропадает. Доступ к элементам оперативной памяти прямой – это значит, что каждый байт памяти имеет свой индивидуальный адрес.

Объем ОЗУ обычно составляет от 32 до 512 Мбайт. Для не сложных административных задач бывает достаточно и 32 Мбайт ОЗУ, но сложные задачи компьютерного дизайна могут потребовать от 512 Мбайт до 2 Гбайт ОЗУ.

Обычно ОЗУ исполняется из интегральных микросхем памяти SDRAM (синхронное динамическое ОЗУ). Каждый информационный бит в SDRAM запоминается в виде электрического заряда крохотного конденсатора, образованного в структуре полупроводникового кристалла. Из-за утечки токов такие конденсаторы быстро разряжаются и их периодически (примерно каждые 2 миллисекунды) подзаряжают специальные устройства. Этот процесс называется регенерацией памяти (Refresh Memory). Микросхемы SDRAM имеют емкость от 16 до 256 Мбит и более. Они устанавливаются в корпусе и собираются в модули памяти. Большинство современных компьютеров комплектуются модулями типа DIMM (Dual-In-line Memory Module - модуль памяти с двухрядным расположением микросхем). В компьютерных системах на самых современных процессорах используются

Высокоскоростные модули Rambus DRAM (RIMM) и DDR DRAM.

BIOS

Сразу после включения компьютера начинают "тикать" электронные "часы" основной шины. Их импульсы расталкивают заспавшийся процессор, и тот может начинать работу. Но для работы процессора нужны команды.

Точнее говоря, нужны программы, потому что программы — это и есть упорядоченные наборы команд. Таким образом, где-то в компьютере должна быть заранее, заготовлена пусковая программа, а процессор в момент пробуждения должен твердо знать, где она лежит.

Хранить эту программу на каких-либо носителях информации нельзя, потому что в момент включения процессор ничего не знает ни о каких устройствах. Чтобы он о них узнал, ему тоже нужна какая-то программа, и мы возвращаемся к тому, с чего начали. Хранить ее в оперативной памяти тоже нельзя, потому что в ней в обесточенном состоянии ничего не хранится.

Выход здесь существует один-единственный. Такую программу надо создать аппаратными средствами. Для этого на материнской плате имеется специальная микросхема, которая называется постоянным запоминающим устройством — ПЗУ. Еще при производстве в нее "зашили" стандартный комплекс программ, с которых процессор должен начинать работу. Этот комплекс программ называется базовой системой ввода-вывода.

По конструкции микросхема ПЗУ отличается от микросхем оперативной памяти, но логически это те же самые ячейки, в которых записаны какие-то числа, разве что не стираемые при выключении питания. Каждая ячейка имеет свой адрес.

После запуска процессор обращается по фиксированному адресу (всегда одному и тому же), который указывает именно на ПЗУ. Отсюда и поступают первые данные и команды. Так начинается работа процессора, а вместе с ним и компьютера. На экране в этот момент мы видим белые символы на черном фоне.

Одной из первых исполняется подпрограмма, выполняющая самотестирование компьютера. Она так и называется: Тест при включении (по-английски — POST — Power-On Self Test). В ходе ее работы проверяется многое, но на экране мы видим только, как мелькают цифры, соответствующие проверенным ячейкам оперативной памяти.

CMOS

Программных средств BIOS достаточно, чтобы сделать первичные проверки и подключить стандартные устройства, такие как клавиатура и монитор. Слово стандартные мы выделили специально. Дело в том, что монитор и клавиатура у вас могут быть очень даже нестандартными. Но на данном этапе это не имеет значения — просто компьютер пока рассматривает их как стандартные. Ему еще не ведомы все их свойства, и он полагает, что клавиатура и монитор у нас такие, какие были в ходу двадцать лет назад, во времена первых компьютеров. Этим обеспечивается гарантия того, что вы хоть что-то увидите на экране, вне зависимости от той модели монитора, какая имеется в вашем распоряжении. BIOS предполагает, что монитор у нас черно-белый — именно поэтому первые сообщения на экранет проходят в черно-белом режиме.

Однако долго работать лишь только со стандартными устройствами компьютер не может. Ему пора бы узнать о том, что у него есть на самом деле. Истинная информация об устройствах компьютера записана на жестком диске, но и его еще надо научиться читать. У каждого человека может быть свой жесткий уникальный диск, не похожий на другие. Спрашивается, откуда программы BIOS узнают, как работать именно с вашим жестким диском?

Для этого на материнской плате есть еще одна микросхема — CMOS-память. В ней сохраняются настройки, необходимые для работы программ BIOS. В частности, здесь хранятся текущая дата и время, параметры жестких дисков и некоторых других устройств. Эта память не может быть ни оперативной (иначе она стиралась бы), ни постоянной (иначе в нее нельзя было бы вводить данные с клавиатуры). Она сделана энергонезависимой и постоянно подпитывается от небольшой аккумуляторной батарейки, тоже размещенной на материнской плате. Заряда этой батарейки хватает, чтобы компьютер не потерял настройки, даже если его не включать несколько лет.

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

Для изменения настроек, хранящихся в CMOS-памяти, в ПЗУ содержится специальная программа — SETUP. Чтобы ее запустить, надо в самый первый момент после запуска компьютера нажать и удерживать клавишу DELETE. Навигацию в системе меню программы SETUP выполняют с помощью клавиш управления курсором. Нужные пункты меню выбирают клавишей ENTER, а возврат в меню верхнего уровня — клавишей ESC. Для изменения установленных значений служат клавиши Page Up и Page Down.

Кэш-память

Кэш-память - это высокоскоростная память произвольного доступа, используемая процессором компьютера для временного хранения информации. Она увеличивает производительность, поскольку хранит наиболее часто используемые данные и команды "ближе" к процессору, откуда их можно быстрей получить.

Кэш-память напрямую влияет на скорость вычислений и помогает процессору работать с более равномерной загрузкой. Представьте себе массив информации, используемой в вашем офисе. Небольшие объемы информации, необходимой в первую очередь, скажем список телефонов подразделений, висят на стене над вашим столом. Точно так же вы храните под рукой информацию по текущим проектам. Реже используемые справочники, к примеру, городская телефонная книга, лежат на полке, рядом с рабочим столом. Литература, к которой вы обращаетесь совсем редко, занимает полки книжного шкафа. Компьютеры хранят данные в аналогичной иерархии. Когда приложение начинает работать, данные и команды переносятся с медленного жесткого диска в оперативную память произвольного доступа, откуда процессор может быстро их получить. Оперативная память играет роль КЭШа для жесткого диска. Для достаточно быстрых компьютеров необходимо обеспечить быстрый доступ к оперативной памяти, иначе микропроцессор будет простаивать, и быстродействие компьютера уменьшится. Для этого такие компьютеры могут оснащаться кэш-памятью, т.е. "сверхоперативной" памятью относительно небольшого объема (обычно от 64 до 256 Кбайт), в которой хранятся наиболее часто используемые участки оперативной памяти. Кэш-память располагается "между" микропроцессором и оперативной памятью, и при обращении микропроцессора к памяти сначала производится поиск нужных данных в кэш-памяти. Поскольку время доступа к кэш-памяти в несколько раз меньше, чем к обычной памяти, а в большинстве случаев необходимые микропроцессору данные содержаться в кэш-памяти, среднее время доступа к памяти уменьшается. Для компьютеров на основе intel-80386dx или 80486sx размер кэш-памяти в 64 кбайт является удовлетворительным, 128 кбайт - вполне достаточным. Компьютеры на основе intel-80486dx и dx2 обычно оснащаются кэш-памятью емкостью 256 Кбайт.

xn----7sbbfb7a7aej.xn--p1ai

Организация памяти / Хабр

За последнюю неделю дважды объяснял людям как организована работа с памятью в х86, с целью чтобы не объяснять в третий раз написал эту статью.

И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.

Как известно программист, когда пишет программы работает не с физическим адресом, а только с логическим. И то если он программирует на ассемблере. В том же Си ячейки памяти от программиста уже скрыты указателями, для его же удобства, но если грубо говорить указатель это другое представление логического адреса памяти, а в Java и указателей нет, совсем плохой язык. Однако грамотному программисту не помешают знания о том как организована память хотя бы на общем уровне. Меня вообще очень огорчают программисты, которые не знают как работает машина, обычно это программисты Java и прочие php-парни, с квалификацией ниже плинтуса.

Так ладно, хватит о печальном, переходим к делу. Рассмотрим адресное пространство программного режима 32 битного процессора (для 64 бит все по аналогии) Адресное пространство этого режима будет состоять из 2^32 ячеек памяти пронумерованных от 0 и до 2^32-1. Программист работает с этой памятью, если ему нужно определить переменную, он просто говорит ячейка памяти с адресом таким-то будет содержать такой-то тип данных, при этом сам програмист может и не знать какой номер у этой ячейки он просто напишет что-то вроде: int data = 10; компьютер поймет это так: нужно взять какую-то ячейку с номером стопицот и поместить в нее цело число 10. При том про адрес ячейки 18894 вы и не узнаете, он от вас будет скрыт.

Все бы хорошо, но возникает вопрос, а как компьютер ищет эту ячейку памяти, ведь память у нас может быть разная: 3 уровень кэша 2 уровень кэша 1 уровень кэша основная память жесткий диск

Это все разные памяти, но компьютер легко находит в какой из них лежит наша переменная int data. Этот вопрос решается операционной системой совместно с процессором. Вся дальнейшая статья будет посвящена разбору этого метода.

Архитектура х86 поддерживает стек. Стек это непрерывная область оперативной памяти организованная по принципу стопки тарелок, вы не можете брать тарелки из середины стопки, можете только брать верхнюю и класть тарелку вы тоже можете только на верх стопки. В процессоре для работы со стеком организованны специальные машинные коды, ассемблерные мнемоники которых выглядят так:

push operand помещает операнд в стек

pop operand изымает из вершины стека значение и помещает его в свой операнд

Стек в памяти растет сверху вниз, это значит что при добавлении значения в него адрес вершины стека уменьшается, а когда вы извлекаете из него, то адрес вершины стека увеличивается.

Теперь кратко рассмотрим что такое регистры. Это ячейки памяти в самом процессоре. Это самый быстрый и самый дорогой тип памяти, когда процессор совершает какие-то операции со значением или с памятью, он берет эти значения непосредственно из регистров. В процессоре есть несколько наборов логик, каждая из которых имеет свои машинные коды и свои наборы регистров. Basic program registers (Основные программные регистры) Эти регистры используются всеми программами с их помощью выполняется обработка целочисленных данных. Floating Point Unit registers (FPU) Эти регистры работают с данными представленными в формате с плавающей точкой. Еще есть MMX и XMM registers эти регистры используются тогда, когда вам надо выполнить одну инструкцию над большим количеством операндов.

Рассмотрим подробнее основные программные регистры. К ним относятся восемь 32 битных регистров общего назначения: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP Для того чтобы поместить в регистр данные, или для того чтобы изъять из регистра в ячейку памяти данные используется команда mov:

mov eax, 10 загружает число 10 в регистр eax.

mov data, ebx копирует число, содержащееся в регистре ebx в ячейку памяти data.

Регистр ESP содержит адрес вершины стека. Кроме регистров общего назначения, к основным программным регистрам относят шесть 16битных сегментных регистров: CS, DS, SS, ES, FS, GS, EFLAGS, EIP EFLAGS показывает биты, так называемые флаги, которые отражают состояние процессора или характеризуют ход выполнения предыдущих команд. В регистре EIP содержится адрес следующей команды, которая будет выполнятся процессором. Я не буду расписывать регистры FPU, так как они нам не понадобятся. Итак наше небольшое отступление про регистры и стек закончилось переходим обратно к организации памяти.

Как вы помните целью статьи является рассказ про преобразование логической памяти в физическую, на самом деле есть еще промежуточный этап и полная цепочка выглядит так:

Логический адрес --> Линейный (виртуальный)--> Физический Все линейное адресное пространство разбито на сегменты. Адресное пространство каждого процесса имеет по крайней мере три сегмента: Сегмент кода. (содержит команды из нашей программы, которые будут исполнятся.)Сегмент данных. (Содержит данные, то бишь переменные)Сегмент стека, про который я писал выше. Линейный адрес вычисляется по формуле:линейный адрес=Базовый адрес сегмента(на картинке это начало сегмента) + смещение
Сегмент кода
Базовый адрес сегмента кода берется из регистра CS. Значение смещения для сегмента кода берется из регистра EIP, в котором хранится адрес инструкции, после исполнения которой, значение EIP увеличивается на размер этой команды. Если команда занимает 4 байта, то значение EIP увеличивается на 4 байта и будет указывать уже на следующую инструкцию. Все это делается автоматически без участия программиста. Сегментов кода может быть несколько в нашей памяти. В нашем случае он один.
Сегмент данных
Данные загружаются в регистры DS, ES, FS, GS Это значит что сегментов данных может быть до 4х. На нашей картинке он один. Смещение внутри сегмента данных задается как операнд команды. По дефолту используется сегмент на который указывает регистр DS. Для того чтобы войти в другой сегмент надо это непосредственно указать в команде префикса замены сегмента.
Сегмент стека
Используемый сегмент стека задается значением регистра SS. Смещение внутри этого сегмента представлено регистром ESP, который указывает на вершину стека, как вы помните. Сегменты в памяти могут друг друга перекрывать, мало того базовый адрес всех сегментов может совпадать например в нуле. Такой вырожденный случай называется линейным представлением памяти. В современных системах, память как правило так организована.

Теперь рассмотрим определение базовых адресов сегмента, я писал что они содержаться в регистрах SS, DS, CS, но это не совсем так, в них содержится некий 16 битный селектор, который указывает на некий дескриптор сегментов, в котором уже хранится необходимый адрес. Так выглядит селектор, в тринадцати его битах содержится индекс дескриптора в таблице дескрипторов. Не хитро посчитать будет что 2^13 = 8192 это максимальное количество дескрипторов в таблице. Вообще дескрипторных таблиц бывает два вида GDT и LDT Первая называется глобальная таблица дескрипторов, она в системе всегда только одна, ее начальный адрес, точнее адрес ее нулевого дескриптора хранится в 48 битном системном регистре GDTR. И с момента старта системы не меняется и в свопе не принимает участия. А вот значения дескрипторов могут меняться. Если в селекторе бит TI равен нулю, тогда процессор просто идет в GDT ищет по индексу нужный дескриптор с помощью которого осуществляет доступ к этому сегменту. Пока все просто было, но если TI равен 1 тогда это означает что использоваться будет LDT. Таблиц этих много, но использоваться в данный момент будет та селектор которой загружен в системный регистр LDTR, который в отличии от GDTR может меняться. Индекс селектора указывает на дескриптор, который указывает уже не на базовый адрес сегмента, а на память в котором хранится локальная таблица дескрипторов, точнее ее нулевой элемент. Ну а дальше все так же как и с GDT. Таким образом во время работы локальные таблицы могут создаваться и уничтожаться по мере необходимости. LDT не могут содержать дескрипторы на другие LDT. Итак мы знаем как процессор добирается до дескриптора, а что содержится в этом дескрипторе посмотрим на картинке: Дескрипторы состоит из 8 байт. Биты с 15-39 и 56-63 содержат линейный базовый адрес описываемым данным дескриптором сегмента. Напомню нашу формулу для нахождения линейного адреса:

линейный адрес = базовый адрес + смещение С помощью такой нехитрой операции процессор может обращаться по нужному адресу линейной памяти. Рассмотрим другие биты дескриптора, очень важным является Segment Limit или предел, он имеет 20битное значение от 0-15 и 48-51 бит. Предел задает размер сегмента. Для сегментов данных и кода доступными являются все адреса, расположенные в интервале:[база; база+предел) В зависимости от 55 G-бита(гранулярити), предел может измеряться в байтах при нулевом значении бита и тогда максимальный предел составит 1 мб, или в значении 1, предел измеряется страницами, каждая из которых равна 4кб. и максимальный размер такого сегмента будет 4Гб. Для сегмента стека предел будет в интервале:(база+предел; вершина] Кстати интересно почему база и предел так рвано располагаются в дескрипторе. Дело в том что процессоры х86 развивались эволюционно и во времена 286х дескрипторы были по 8 бит всего, при этом старшие 2 байта были зарезервированы, ну а в последующих моделях процессоров с увеличением разрядности дескрипторы тоже выросли, но для сохранения обратной совместимости пришлось оставить структуру как есть. Значение адреса «вершина» зависит от 54го D бита, если он равен 0, тогда вершина равна 0xFFF(64кб-1), если D бит равен 1, тогда вершина равна 0xFFFFFFFF (4Гб-1) С 41-43 бит кодируется тип сегмента. 000 — сегмент данных, только считывание 001 — сегмент данных, считывание и запись 010 — сегмент стека, только считывание 011 — сегмент стека, считывание и запись 100 — сегмент кода, только выполнение 101- сегмент кода, считывание и выполнение 110 — подчиненный сегмент кода, только выполнение 111 — подчиненный сегмент кода, только выполнение и считывание

44 S бит если равен 1 тогда дескриптор описывает реальный сегмент оперативной памяти, иначе значение S бита равно 0.

Самым важным битом является 47-й P бит присутствия. Если бит равен 1 значит, что сегмент или локальная таблица дескрипторов загружена в оперативку, если этот бит равен 0, тогда это означает что данного сегмента в оперативке нет, он находится на жестком диске, случается прерывание, особый случай работы процессора запускается обработчик особого случая, который загружает нужный сегмент с жесткого диска в память, если P бит равен 0, тогда все поля дескриптора теряют смысл, и становятся свободными для сохранения в них служебной информации. После завершения работы обработчика, P бит устанавливается в значение 1, и производится повторное обращение к дескриптору, сегмент которого находится уже в памяти.

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

habr.com

Как устроена оперативная память компьютера

Знаете ли вы, что такое оперативная память? Конечно, знаете. Это такое устройство, от которого зависит скорость работы компьютера. В общем, так оно и есть, только выглядит такое определение немного дилетантски. Но что в действительности представляет собой оперативная память? Как она устроена, как работает и чем один вид памяти отличается от другого?

Компьютерная память

Оперативная память, ОЗУ она же RAM (англ.) — это энергозависимая часть компьютерной памяти, предназначенной для хранения временных данных, обрабатываемых процессором. Хранятся эти данные в виде бинарной последовательности, то есть набора нулей и единиц. Энергозависимой же она называется потому, что для её работы необходимо постоянное подключение к источнику электрического тока. Стоит только отключить её от питания, как вся хранящаяся в ней информация будет утеряна.

Компьютерная память

Но если ОЗУ это одна часть компьютерной памяти, тогда что представляет собой её другая часть? Носителем этой части памяти является жесткий диск. В отличие от ОЗУ, он может хранить информацию, не будучи подключён к источнику питания. Жесткие диски, флешки и CD-диски — все эти устройства именуются ПЗУ, что расшифровывается как постоянное запоминающее устройство. Как и ОЗУ, ПЗУ хранят данные в виде нулей и единиц.

Для чего нужна ОЗУ

Тут может возникнуть вопрос, а зачем вообще нужна оперативная память? Разве нельзя выделить на жестком диске буфер для временного помещения обрабатываемых процессором данных? В принципе можно, но это был бы очень неэффективный подход.

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

Физическое устройство оперативной памяти таково, что чтение/запись в ней производится намного быстрее. Если бы вместо ОЗУ у вас было ПЗУ, компьютер бы работал очень медленно.

Физическое устройство ОЗУ

Физически ОЗУ представляет съёмную плату (модуль) с располагающимися на ней микросхемами памяти. В основе микросхемы лежит конденсатор — устройство, известное уже больше сотни лет.

ОЗУ

Каждая микросхема содержит множество конденсаторов связанных в единую ячеистую структуру — матрицу или иначе ядро памяти. Также микросхема содержит выходной буфер — особый элемент, в который попадает информация перед тем, как быть переданной на шину памяти. Из уроков физики мы знаем, что конденсатор способен принимать только два устойчивых состояния: либо он заряжен, либо разряжен. Конденсаторы в ОЗУ играют ту же роль, что и магнитная поверхность жёсткого диска, то есть удержание в себе электрического заряда, соответствующего информационному биту. Наличие заряда в ячейке соответствует единице, а отсутствие — нулю.

Как в ОЗУ записывается и читается информация

Понять, как в ОЗУ происходит запись и считывание данных будет проще, если представить её в виде обычной таблицы. Чтобы считать данные из ячейки, на горизонтальную строку выдаётся сигнал выбора адреса строки (RAS). После того как он подготовит все конденсаторы выбранной строки к чтению, по вертикальной колонке подаётся сигнал выбора адреса столбца (CAS), что позволяет считать данные с конкретной ячейки матрицы.

Ячейки матрицы

Характеристика, определяющая количество информации, которое может быть записано или прочитано за одну операцию чтения/записи, именуется разрядностью микросхемы или по-другому шириной шины данных. Как нам уже известно, перед тем как быть переданной на шину микросхемы, а затем в центральный процессор, информация сначала попадает в выходной буфер. С ядром он связывается внутренним каналом с пропускной способностью равной ширине шины данных. Другой важной характеристикой ОЗУ является частота шины памяти. Что это такое? Это периодичность, с которой происходит считывание информации, а она совсем не обязательно должна совпадать с частотой подающегося на матрицу памяти сигнала, что мы и увидим на примере памяти DDR.

DDR

В современных компьютерах используется так называемая синхронная динамическая оперативная память — SDRAM. Для передачи данных в ней используется особый синхросигнал. При его подаче на микросхему происходит синхронное считывание информации и передача её в выходной буфер.

Представим, что у нас есть микросхема памяти с шириной шины данных 8 бит, на которую с частотой 100 МГц подаётся синхросигнал. В результате за одну транзакцию в выходной буфер по 8-битовому каналу попадает ровно 8 бит или 1 байт информации. Точно такой же синхросигнал приходит на выходной буфер, но на этот раз информация попадает на шину микросхемы памяти. Умножив частоту синхросигнала на ширину шины данных, мы получим ещё один важный параметр — пропускную способность памяти.

8 бит * 100 МГц = 100 Мб/с

Память DDR

Это был простейший пример работы SDR — памяти с однократной скоростью передачи данных. Этот тип памяти сейчас практически не используется, сегодня его место занимает DDR — память с удвоенной скоростью передачи данных. Разница между SDR и DDR заключается в том, что данные с выходного буфера такой ОЗУ читаются не только при поступлении синхросигнала, но и при его исчезновении. Также при подаче синхросигнала в выходной буфер с ядра памяти информация попадает не по одному каналу, а по двум, причём ширина шины данных и сама частота синхросигнала остаются прежними.

DDR

Для памяти DDR принято различать два типа частоты. Частота, с которой на модуль памяти подаётся синхросигнал, именуется базовой, а частота, с которой с выходного буфера считывается информация — эффективной. Рассчитывается она по следующей формуле:

эффективная частота = 2 * базовая частота

В нашем примере с микросхемой 8 бит и частотой 100 МГц это будет выглядеть следующим образом.

8 бит * (2 * 100 МГц) = 200 Мб/с

Чем отличаются DDR от DDR2, DDR3 и DDR4

Количеством связывающих ядро с выходным буфером каналов, эффективной частотой, а значит и пропускной способностью памяти. Что касается ширины шины данных (разрядности), то в большинстве современных модулей памяти она составляет 8 байт (64 бит). Допустим, что у нас есть модуль памяти стандарта DDR2-800. Как рассчитать его пропускную способность? Очень просто. Что такое 800? Это эффективная частота памяти в мегагерцах. Умножаем её на 8 байт и получаем 6400 Мб/с.

DDR3

DDR4

И последнее. Что такое пропускная способность мы уже знаем, а что такое объём оперативной памяти и зависит ли он от её пропускной способности? Прямой взаимосвязи между этим двумя характеристиками нет. Объём ОЗУ зависит от количества запоминающих элементов. И чем больше таких ячеек, тем больше данных может хранить память без их перезаписи и использования файла подкачки.

www.white-windows.ru

Как работает память компьютера

Компьютерная память представляет собой систему устройств хранения данных электронной вычислительной машины. Хранение данных может быть временным или постоянным, в зависимости от частоты запроса к данным. Каждый блок памяти состоит из чипов, которые имеют встроенные композиции миллионов транзисторов и конденсаторов. Эти крошечные элементы объединяются в ячейки памяти для хранения одного бита данных в виде двоичных цифр (0 и 1). Конденсатор действует как изолятор для двоичных данных, тогда как транзистор позволяет схемам памяти изменять значения данных, содержащихся в конденсаторе. Когда эти элементы связаны в памяти микросхемы, конденсатор способен принимать и хранить данные, передаваемые центральным процессором компьютера.

В начале 1940 года емкость памяти компьютера составляла несколько байтов. Память, основанная на линии акустической задержки была разработана Дж. Эккертом в том десятилетии, которое оказалась важной вехой в области технологий памяти. Однако этот тип памяти также был ограничен в объеме несколькими сотнями тысяч бит. В 1946 году были разработаны трубки Уильямса и трубки Селектрон, которые использовали пучки электронов в стеклянных трубках в качестве средства хранения данных. Емкость трубки Селектрон была 256 битами, в то время как трубка Уильямса может хранить тысячи бит. К концу десятилетия Джей Форрестер, Ян Рэйман и Ан Ванг разработали память на магнитных сердечниках, что позволило не терять данные даже после сбоя питания.

Компьютер включает в себя физическую память, представленную в виде чипов, которые вставлены в разъемы памяти на системной плате. Максимальный объем памяти, который может быть добавлен к компьютерной системе, зависит от типа материнской платы. Второй вид памяти компьютера называется виртуальной памятью, которая в основном занимает маленькую часть объема жесткого диска. Эта часть используется операционной системой при заполнении доступной физической памяти и может быть увеличена или уменьшена путем настройки параметров системы в Панели управления. Данные записываются в память, процессор посылает сигнал на транзистор, что позволяет записать данные на конденсаторе.

Адрес каждой ячейки памяти представлен в шестнадцатеричной системе счисления. Процессор отслеживает эти адреса и выполняет чтения и запись данных из них. Транзисторы и конденсаторы организованны в чип памяти в виде строк и столбцов. Наиболее распространенный тип памяти компьютера – RAM (Random Access Memory), которая позволяет ускорить поиск и хранение данных. Из-за его скорости RAM обеспечивает оптимальное решение для временного хранения данных. Тем не менее, она нуждается в постоянном потоке электроэнергии, и данные, хранящиеся на чипе теряются, при выключении компьютера.

Когда компьютер включается, он загружает BIOS (Basic Input Output System), а контроллер памяти проверяет все адреса в памяти, чтобы проконтролировать, нет ли в них ошибок. BIOS содержит основную информацию о последовательности загрузки устройств, хранения данных, и др. Далее OS (операционная система) загружается с жесткого диска в оперативную память, которая позволяет процессору иметь непосредственный доступ к операционной системе. Любая команда, введенная в компьютер, загружается в RAM, что увеличивает производительность компьютера через повышение скорости передачи данных.

www.moscow-faq.ru

Как работает память компьютера | Мир Знаний

Компьютер — это система, работающая на основе анализа электромагнитных волн. Любая электромагнитная волна имеет такие параметры как частота и период, то есть количество повторений за единицу времени и, время за которое, волна совершает одно полное колебание.

Волна, как правило, создается с помощью жестких дисков (винчестеров). Жесткий диск по своему устройству сильно напоминает граммофон. Тот же принцип, игла движется по канаве, создавая волну с нужным периодом и частотой. Однако в случае с винчестерами, принцип записи и чтения немного иной. В винчестерах диск представляет собой круглую пластину с ферро-магнитным напылением с множеством дорожек. Считывающая игла является электромагнитом, который изменяя форму напыления, создает канавы или же дорожки памяти, по которым и происходит считывание. Существуют 2 состояния поверхности диска «1» и «0», которые в совокупности являются двоичным кодом. Скорость передачи и приема данных зависит от скорости вращения диска.

Помимо жестких дисков в последнее время широко используются твердотельные накопители. Они способны обеспечить более высокую скорость чтения и записи, а также не имеют механических частей. Поэтому, данный тип памяти более выгоден. Основой служащей хранилищем данных является чип на транзисторно-конденсаторной архитектуре. Самая малая ячейка хранения данных — транзистор с плавающим затвором, фактическиудерживающий заряд. Аналогия проста — транзистор клетка, а затвор, управляемый иным током, является дверью. С помощью данного принципа построены такие типы памяти, как NAND и NOR. NOR, двумерный массив проводников фактически является решеткой из упорядоченных транзисторов. NAND теоретически представляет из себя, то же самое но в этом случае массив трехмерный. А названы они так из-за типа операций, которые они выполняют NOR- Not OR «НЕ-ИЛИ», NAND — «not and» «И-НЕ». Существенный недостаток данной памяти — ограниченное количество циклов перезаписи. Это связано с воздействием большого тока на плавающий затвор, что приводит к постепенному изнашиванию его. Ну и, конечно, возможная потеря данных с течением большого промежутка времени. Это происходит из-за природы зарядов. Со временем они заземляются, то есть исчезают.

Далее волна отправляется в центральный процессор — своеобразный анализатор компьютера. Для обеспечения корректного анализа и верной работы компьютера производители микропроцессоров используют различные архитектуры, например: Haswell и Skylake от Intel. Основой данных архитектур являются транзисторы — это устройства для изменения состояния волны. Фактически, транзисторы являются ключом, не требующим физического воздействия. Он управляется другим незначительным током, который распределяется контроллером на материнской плате, который согласно инструкциям будет изменять частоту и период волны. Получив новые данные, процессор путем обмена информации записывает на жесткий диск обновленные, и будет отображать их, если это требуется.

До изобретения транзисторов (триодов), потоки информации в виде электромагнитных волн анализировались в сложной системе электромеханических реле и ламп. Реле, замыкаясь или же размыкаясь, формировали волну. Механическое реле — ключ снабженный электромагнитом, который, притягивая пластину, замыкает цепь, тем самым пропуская волну и формируя «1» на поверхности диска, и размыкаясь соответственно, формирует «0». Подобные компьютеры отличались, высоким выделением тепла, очень низким быстродействием и громоздкостью. И, именно на заре компьютерных технологий, в 40-50 годы переход на компьютерные технологии казался невозможным и чем-то сверхъестественным. В 60-ые изобрели интегральные микросхемы. Главной их особенностью является возможность упаковать все составляющие части микропроцессора на одну общую плату.

Введение интегральной микросхемы способствовало бурному развитию микропроцессоров. Лучше всего оно описывается законом Мура, который гласит: «количество транзисторов, размещаемых на кристалле интегральной микросхемы удваивается каждые 24 месяца». Данная тенденция роста производительности была наиболее актуальна до 2008 года. Процессоры, выпущенные позже, несмотря на заметный прирост быстродействия в сравнении с предыдущим поколением, не имеют удвоенное количество транзисторов на кристалле.

Тенденция увеличения числа транзисторов росла с каждым поколением микропроцессоров. Сегодня наиболее популярный техпроцесс среди пользователей — 22нм. Пользователя обычно не интересует количество транзисторов на кристалле, для него важна производительность «камня». Однако, в сравнении с процессорами предыдущего поколения, более новые показывали высокие результаты в одинаковых задачах. Развитие нанотехнологий пока не позволяет уменьшать размер транзисторов в 2 раза каждые 2 года. Тенденции показывают, что либо надо идти в квантовые компьютеры, либо надо создавать технологии управления «тонким током», который будет возможен в пределах нескольких слоев вещества, так как там уже другие процессы. Поэтому, скорее всего ближайшие 6-8 лет, размер транзистора будет сохраняться на отметке 10нм. Судя по моему личному предположению для увеличения производительности, будут развиваться «многоэтажные» архитектуры процессоров, которые фактически наслоены друг на друга.

Подобные технологии будут полностью оправдывать потребность пользователей в мощном железе. Все же количество тепла, выделяемое процессорами, увеличится, и, на время, компьютеры могут стать довольно громоздкими. Однако, если это произойдет, то это будет не существенно.

В следующие 25-30 лет компьютер предположительно перестанет в полной мере включать в себя, какие либо механические части. Вплоть до активного охлаждения. Все компоненты, ранее нагревавшиеся, теперь станут холодными, из-за кардинально новой архитектуры и материалов изготовления процессоров. Новый проводник, представляющий из себя сплав металлов с абсолютно нулевым, либо с минимальным сопротивлением. Думаю эксперименты будущего сделают это возможным. Развитие технологий никогда не стоит на месте. А в случае с компьютерными технологиями все еще более серьезно. Производители центральных и графических процессоров, любой ценой будут двигать прогресс ради господства на рынке. Поэтому, в любом случае, будущее за неимоверной мощностью, немыслимыми сегодня способами визуализации и количествами вычислений за единицу времени.

    1456      

mir-znaniy.com

Как устроена память?

Память компьютера построена из двоичных запоминающих элементов— битов, объединенных в группы по 8 битов, которые называются байтами. (Единицы измерения памяти совпадают с единицами измерения информации). Все байты пронумерованы. Номер байта называется его адресом.

Байты могут объединяться в ячейки, которые называются также словами. Для каждого компьютера характерна определенная длина слова — два, четыре или восемь байтов. Это не исключает использования ячеек памяти другой длины (например, полуслово, двойное слово). Как правило, в одном машинном слове может быть представлено либо одно целое число, либо одна команда. Однако, допускаются переменные форматы представления информации. Разбиение памяти на слова для четырехбайтовых компьютеров представлено в таблице:

Байт 0 Байт 1 Байт 2 Байт 3 Байт 4 Байт 5 Байт 6 Байт 7
ПОЛУСЛОВО ПОЛУСЛОВО ПОЛУСЛОВО ПОЛУСЛОВО
СЛОВО СЛОВО
ДВОЙНОЕ СЛОВО

Широко используются и более крупные производные единицы объема памяти: Килобайт, Мегабайт, Гигабайт, а также, в последнее время, Терабайт и Петабайт.

Современные компьютеры имеют много разнообразных запоминающих устройств, которые сильно отличаются между собой по назначению, временным характеристикам, объёму хранимой информации и стоимости хранения одинакового объёма информации. Различают два основных вида памяти — внутреннюю и внешнюю.

Какие устройства образуют внутреннюю память?

В состав внутренней памяти входят оперативная память, кэш-память и специальная память.

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

Оперативная память (ОЗУ, англ. RAM, Random Access Memory — память с произвольным доступом) — это быстрое запоминающее устройство не очень большого объёма, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, обрабатываемых этими программами.

Оперативная память используется только для временного хранения данных и программ, так как, когда машина выключается, все, что находилось в ОЗУ, пропадает. Доступ к элементам оперативной памяти прямой — это означает, что каждый байт памяти имеет свой индивидуальный адрес.

Объем ОЗУ обычно составляет от 32 до 512 Мбайт. Для несложных административных задач бывает достаточно и 32 Мбайт ОЗУ, но сложные задачи компьютерного дизайна могут потребовать от 512 Мбайт до 2 Гбайт ОЗУ.

Обычно ОЗУ исполняется из интегральных микросхем памяти SDRAM (синхронное динамическое ОЗУ). Каждый информационный бит в SDRAM запоминается в виде электрического заряда крохотного конденсатора, образованного в структуре полупроводникового кристалла. Из-за токов утечки такие конденсаторы быстро разряжаются, и их периодически (примерно каждые 2 миллисекунды) подзаряжают специальные устройства. Этот процесс называется регенерацией памяти (Refresh Memory). Микросхемы SDRAM имеют ёмкость 16 — 256 Мбит и более. Они устанавливаются в корпуса и собираются в модули памяти. Большинство современных компьютеров комплектуются модулями типа DIMM (Dual-In-line Memory Module — модуль памяти с двухрядным расположением микросхем).

Модули памяти характеризуются такими параметрами, как объем —(16, 32, 64, 128, 256 или 512 Мбайт), число микросхем, паспортная частота(100 или 133 МГц), время доступа к данным (6 или 7 наносекунд) и число контактов (72, 168 или 184). В 2001 г. начинается выпуск модулей памяти на 1 Гбайт и опытных образцов модулей на 2 Гбайта.

Кэш-память

Кэш (англ. cache), или сверхоперативная память — очень быстрое ЗУ небольшого объёма, которое используется при обмене данными между микропроцессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью.

Кэш-памятью управляет специальное устройство — контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память. При этом возможны как "попадания", так и "промахи". В случае попадания, то есть, если в кэш подкачаны нужные данные, извлечение их из памяти происходит без задержки. Если же требуемая информация в кэше отсутствует, то процессор считывает её непосредственно из оперативной памяти. Соотношение числа попаданий и промахов определяет эффективность кэширования.

Кэш-память реализуется на микросхемах статической памяти SRAM (Static RAM), более быстродействующих, дорогих и малоёмких, чем DRAM (SDRAM). Современные микропроцессоры имеют встроенную кэш-память, так называемый кэш первого уровня размером 8, 16 или 32 Кбайт. Кроме того, на системной плате компьютера может быть установлен кэш второго уровня ёмкостью 256, 512 Кбайт и выше.

Специальная память

К устройствам специальной памяти относятся постоянная память (ROM), перепрограммируемая постоянная память (Flash Memory), память CMOS RAM, питаемая от батарейки, видеопамять и некоторые другие виды памяти.

Постоянная память (ПЗУ, англ. ROM, Read Only Memory — память только для чтения) — энергонезависимая память, используется для хранения данных, которые никогда не потребуют изменения. Содержание памяти специальным образом "зашивается" в устройстве при его изготовлении для постоянного хранения. Из ПЗУ можно только читать.

 

Перепрограммируемая постоянная память (Flash Memory) — энергонезависимая память, допускающая многократную перезапись своего содержимого с дискеты.

Прежде всего в постоянную память записывают программу управления работой самого процессора. В ПЗУ находятся программы управления дисплеем, клавиатурой, принтером, внешней памятью, программы запуска и остановки компьютера, тестирования устройств.

Важнейшая микросхема постоянной или Flash-памяти — модуль BIOS. Роль BIOS двоякая: с одной стороны это неотъемлемый элемент аппаратуры, а с другой строны — важный модуль любой операционной системы.

BIOS (Basic Input/Output System — базовая система ввода-вывода) — совокупность программ, предназначенных для автоматического тестирования устройств после включения питания компьютера и загрузки операционной системы в оперативную память.

Разновидность постоянного ЗУ — CMOS RAM.

CMOS RAM — это память с невысоким быстродействием и минимальным энергопотреблением от батарейки. Используется для хранения информации о конфигурации и составе оборудования компьютера, а также о режимах его работы.

Интегральные схемы BIOS и CMOS

Содержимое CMOS изменяется специальной программой Setup, находящейся в BIOS (англ. Set-up — устанавливать, читается "сетап").

Для хранения графической информации используется видеопамять.

Видеопамять (VRAM) — разновидность оперативного ЗУ, в котором хранятся закодированные изображения. Это ЗУ организовано так, что его содержимое доступно сразу двум устройствам — процессору и дисплею. Поэтому изображение на экране меняется одновременно с обновлением видеоданных в памяти.

Похожие статьи:

poznayka.org

Как работает оперативная память компьютера

Подробности Категория: Компьютеры Опубликовано 26.02.2016 21:29 Автор: Admin Просмотров: 1227

Давайте попробуем разобраться как работает оперативная память. Оперативная память – это наиболее известный вид памяти, устанавливаемой в ПК. Она носит название памяти произвольного доступа (randomaccess), так как она позволяет получить информацию с любой ее ячейки. Для получения доступа необходима строка и столбец, на их пересечении расположена необходимая ячейка.

kak-rabotaet-operativnaya-pamyat02

kak-rabotaet-operativnaya-pamyat01

Существует динамическая и статическая память. Динамическая работает по принципу «дырявого ведра». Работа статической памяти осуществляется быстро, но она дорогая.

Ячейка памяти напоминает дырявое ведро. А вот память последовательного доступа (SAM) разрешает последовательный доступ к ячейкам. Что-то на подобии магнитофонной пленки. При поиске данных осуществляется последовательная проверка каждой ячейки. Такую память можно использовать для создания буферов, например буфера текстур видеокарты. Эта память имеет смысл при расположении данных в таком порядке, в каком они будут использоваться.

Чип памяти - это интегральная микросхема (ИС, IC), на которой находятся многочисленные транзисторы и конденсаторы. Память произвольного доступа DRAM имеет спаренные транзистор и конденсатор, из которых и состоит ячейка, в которой содержится 1 бит данных. В конденсаторе имеется 1 бит данных: 0 или 1. Транзистор является переключателем, при помощи него схема чипа считывает или меняет состояние конденсатора.

Конденсатор – это своеобразное дырявое «ведро», которое в нужный момент наполняется электронами. Во время заполнения, он находится в состоянии 1, а во время опустошения - в состоянии 0. Проблема конденсатора в том, что в течении миллисекунд конденсатор опустошается (происходит утечка данных). Поэтому процессору или контроллеру памяти нужно все время заряжать конденсаторы, заставляя их оставаться наполненными. Для этого контроллер памяти сначала считывает, а после этого снова записывает данные в конденсатор.

DRAM имеет конденсатор, который может напоминать протекающее ведро. Если оно не будет заполняться электронами вновь и вновь, он получит нулевое состояние. Как раз такое обновление и дало название этому типу памяти - «динамическая». Недостатком такой памяти является именно необходимость постоянного обновления, на что уходит время и от чего память работает медленнее.

Как устроена ячейка динамической ОП (DRAM)

Структура такой памяти напоминает трехмерную сетку или лист тетради в клетку. В каждой клетке находится 1 бит информации. В первую очередь ищется столбец, а после этого производится запись информации в определенные строки через передачу сигнала по столбцу.

На таком листе часть клеток окрашены в красный цвет, а часть остается неокрашенными. Клетки красного цвета находятся в состоянии «1», а белые, в состоянии «0».

Тетрадный лист заменяет кремниевая пластина. В нее «пропечатаны» столбцы и строки. На пересечении столбца и строки находится ячейка памяти.

Динамическая память передает заряд по конкретному столбцу - это адреса столбца (CAS). Чтобы указать адрес ячейки нужно задать управляющие сигналы. При записи конденсатор принимает заряд, а при чтении усилитель считывания должен определить заряд конденсатора. Если степень заряда больше 50 %, бит следует читать как «1»; иначе он равен «0».

Кроме ячеек необходимы микросхемы, которые позволяют записывать в них данные и считывать их.

Как устроена статическая память

имеет произвольный доступ, но в ней присутствует другая технология. При помощи триггерной схемы удерживается каждый бит сохраненных в ней данных. В триггере ячейки имеются 4-6 транзисторов и тонкие провода. Этой памяти не требуется обновление заряда. Поэтому она функционирует быстрее, чем динамическая. Но из-за многочисленных компонентов, ее ячейки больше динамической памяти. В целом статическая память имеет менее емкий чип.

Статическая память более быстрая, но и более дорогостоящая. Поэтому статическую память используют в кэше ЦП, а динамическую - как системную оперативную память ПК.

Чипы памяти комплектуются в модуль, который может содержать несколько чипов. Существует память 8×32 или например 4×16. При этом первое число говорит о количестве чипов модуля, а второе - о емкости модуля в мегабитах. Результат умножения нужно разделить на 8 для получения объема модуля в мегабайтах.

Конечно говорить об этом можно очень долго, так как существует множество нюансов, а в данной статье мы уже изложили немалое количество информации. 

  • < Назад
  • Вперёд >

www.radio-magic.ru


Читайте также
  • Гиперскоростная звезда – более 1.000.000 миль в час
    Гиперскоростная звезда – более 1.000.000 миль в час
  • Астрономы обнаружили самую большую спиральную галактику
    Астрономы обнаружили самую большую спиральную галактику
  • Млечный путь содержит десятки миллиардов планет, схожих с Землей
    Млечный путь содержит десятки миллиардов планет, схожих с Землей
  • Млечный путь разорвал своего спутника на четыре отдельных хвоста
    Млечный путь разорвал своего спутника на четыре отдельных хвоста
  • Найден источник водородных газов для нашей Галактики
    Найден источник водородных газов для нашей Галактики