Что хранится в ячейках оперативной памяти
Оперативная память играет важную роль: во время работы компьютера в ней хранятся текущие данные, которые необходимы процессору в тот или иной момент времени. Например, когда вы запускаете какую-нибудь программу, она в первую очередь загружается с жесткого диска в оперативную память и только после этого становится доступной для процессора.
Допустим, вы поработали в какой-то программе и вдруг решили поиграть в очень интересную игру. Для простоты предположим, что вы сначала закрыли свою программу, после чего запустили игрушку. При этом данные, связанные с программой, выгружаются из оперативной памяти, а информация об игре загружается в «оперативку». То есть уже данные игры (а не программы) станут доступны для процессора, что и позволит вам насладиться именно игрой.
Усложним пример. Допустим, вы запустили несколько программ (или игр) одновременно. При этом все связанные с запущенными приложениями данные загрузятся в оперативную память (конечно, если ее объема для этого достаточно). В зависимости от того, на какую конкретно программу вы решили переключиться, процессор обратится именно к тем ячейкам памяти, в которых хранятся данные, связанные с этой программой.
Соединяем узнанное воедино
Как мы уже упоминали, процессор «общается» с оперативной памятью не напрямую, а через специальную микросхему на материнской плате, которая называется северным мостом. При этом процессор, северный мост и оперативная память соединены между собой почти сотней очень тоненьких проводников, которые и называются системной шиной (FSB), о которой мы также уже говорили.
«Для чего вообще нужна оперативная память? – спросите вы. – Почему бы процессору не работать напрямую с файлами программ, хранящимися на жестком диске компьютера?»
Дело в том, что тогда бы возникли серьезные проблемы со скоростью работы компьютера. Пока все существующие в природе жесткие диски работают медленнее оперативной памяти в тысячи раз. Вот и приходится сначала загружать необходимые данные в намного более быструю оперативную память, чтобы процессор мог с ними нормально работать.
Внимание!
Нужно четко представлять, что оперативная память является энергозависимой. Это означает, что, как только вы выключите компьютер (или вдруг пропадет электричество), все данные из оперативной памяти пропадут.
По-английски оперативная память называется Random Access Memory (RAM), что переводится как «память с произвольным доступом». Что это за произвольный доступ? Будем разбираться, как говорится, «на пальцах».
Данные в оперативной памяти хранятся в так называемых ячейках. Каждая ячейка имеет индивидуальный адрес, который состоит из номеров строки и столбца, в которых расположена эта ячейка. Таких ячеек очень много (миллионы), и вместе они составляют двумерную матрицу.
Так вот, произвольный тип доступа оперативной памяти означает то, что если процессору вдруг понадобились данные из ячейки какого-нибудь стотысячного столбца и двухсоттысячной строки, ему не нужно последовательно перебирать все предыдущие тысячи столбцов и строк, чтобы добраться до искомой ячейки. Поиск и обращение к нужной ячейке происходят непосредственно и за счет этого очень быстро, что, согласитесь, достаточно благоприятно влияет на скорость работы.
Иными словами, сочетание «произвольный доступ» означает, что скорость доступа к конкретной ячейке не зависит от ее физического расположения в памяти.
Для сравнения
К примеру, на так называемых ленточных носителях информации реализован последовательный доступ. При таком типе доступа, чтобы прочитать содержимое ячейки (блока) под номером 1000, устройству чтения первым делом необходимо обнаружить начальную ячейку (для чего перемотать магнитную ленту к началу), потом последовательно отсчитать 999 блоков и только после этого произвести чтение из нужной ячейки.
Зададимся вопросом: «Что собой представляет оперативная память или, говоря более понятным языком, как она выглядит?» Это плата с расположенными с двух сторон прямоугольными микросхемами, в которых непосредственно и находится оперативная память (рис. 4.6).
Рис. 4.6. Плата оперативной памяти (один из видов)
На материнской плате оперативная память устанавливается в специально предназначенные для этого слоты (рис. 4.7).
Рис. 4.7. Слоты для оперативной памяти
Следует иметь в виду, что для каждого вида модулей оперативной памяти существуют собственные слоты. То есть вы не сможете, к примеру, установить память SDRAM в слот для DDR SDRAM, и наоборот.
Примечание
Не пугайтесь. Чуть позже вы узнаете, что означают загадочные аббревиатуры SDRAM и DDR SDRAM.
Впрочем, как самостоятельно устанавливать оперативную память на материнскую плату, мы рассмотрим в главе 11, а пока поговорим о ее основных характеристиках и видах.
Объем оперативной памяти
Самой понятной для обычного пользователя характеристикой памяти является ее объем. Как мы уже упоминали, объем современных плат памяти измеряется сотнями мегабайт. Чтобы ваш компьютер работал эффективно, он должен быть «вооружен» достаточным количеством оперативной памяти.
Если перевести наш разговор в русло сухих фактов, то вы узнаете, что для работы в операционной системе Windows XP неплохо бы иметь минимум 256 Мбайт «оперативки» (это необходимый минимум, комфортно работать с таким объемом памяти не получится), а лучше – 512 Мбайт. Если же компьютер работает под управлением Windows Vista, памяти понадобится значительно больше, то есть никак не меньше 512 Мбайт. А если вы хотите насладиться всеми прелестями полупрозрачного и трехмерного интерфейса Vista, придется начинать плясать от 1 Гбайт.
Быстродействие и производительность
Вы уже знаете, что самым быстрым устройством компьютера является процессор. Поэтому задача роста производительности ПК сводится не столько к повышению тактовой частоты ядра процессора, сколько к увеличению скорости работы остальных устройств, чтобы процессор не так долго простаивал, ожидая своих неторопливых коллег.
Оперативная память хоть и работает намного быстрее других внутренних устройств компьютера, все равно сильно отстает от скорости процессора. В связи с этим производители памяти все время пытаются всячески увеличить ее скорость.
Основным параметром быстродействия оперативной памяти является время доступа. Это время, которое проходит между моментом, когда чипсет дает запрос о содержимом ячейки памяти, и моментом, когда к нему возвращается ответ.
Время доступа измеряется в наносекундах. Напомним, что 1 нс = 10 –9 с. Такие промежутки времени могут показаться вам неимоверно малыми, но для процессора они все равно остаются очень большими.
Величина, обратная времени доступа, называется тактовой частотой. Этот параметр является более наглядным, так как позволяет реально сравнить скорость работы процессора и оперативной памяти. Например, устаревшие уже типы «оперативки» имели время доступа около 15 нс, что соответствовало тактовой частоте 60 МГц. Современные же типы памяти могут работать с тактовыми частотами 1066 МГц и выше.
Помимо скорости, оперативная память характеризуется таким важным параметром, как производительность (она же – теоретическая пропускная способность). Как производительность процессора зависит от разрядности системной шины, так производительность оперативной памяти зависит от разрядности шины памяти.
Разрядность шины памяти – это количество бит (байт), которые память может одновременно записать или прочитать за раз. Большинство современных типов памяти имеют разрядность шины 64 бита (8 байт) (хотя есть и выше).
Производительность оперативной памяти определяет количество информации, которое память способна принять или выдать за 1 секунду. И вычисляется она простым умножением разрядности шины памяти на скорость памяти.
Но не будем слишком глубоко вдаваться в технические тонкости. Вычислять быстродействие и производительность оперативной памяти вы вряд ли будете, скорее всего, просто купите ту, которая подходит к вашей материнской плате.
Типы памяти и виды модулей памяти
• FPM RAM (Fast Page Mode RAM) – память с так называемым быстрым страничным обменом использовалась в первые годы компьютерной эры. Как мы уже упоминали, оперативная память представляет собой многомиллионную матрицу ячеек. Для ускорения доступа к оперативной памяти она разбивалась на так называемые страницы. Это позволяло увеличить скорость доступа к данным в случаях, когда изменялся только номер столбца ячейки, а номер строки оставался неизменным. Время доступа FPM RAM составляло 200 нс.
• В 1995 году появилась память EDO RAM (Extended Data Output RAM), то есть оперативная память с расширенными возможностями вывода. EDO RAM была усовершенствованной версией FPM RAM. Время доступа данной памяти составляло уже 50 нс, но все равно было еще очень и очень большим (по сравнению со скоростью работы процессоров).
Эти два типа памяти безнадежно устарели и вряд ли уже когда-либо вам встретятся. Хотя, если вам попадется один из первых компьютеров на базе процессора Pentium Pro…
• В конце 1990-х годов производители памяти осчастливили пользователей компьютеров памятью нового типа SDRAM (Synchronous Dynamic RAM) – синхронная динамическая память. Данная память функционировала значительно быстрее предшественниц (время доступа составляло 6–9 нс) за счет синхронизации своей работы с системной платой. Память SDRAM хоть и считается уже морально устаревшей, однако ее все еще довольно часто можно встретить на не очень новых компьютерах. К тому же найти данную память в продаже не так легко.
• Следующим витком эволюции оперативной памяти стала DDR SDRAM. Аббревиатура DDR означает Double Data Rate – удвоенная скорость передачи данных. Как можно догадаться из названия, данная память работает в два раза быстрее SDRAM, и это действительно так. Память DDR SDRAM (и ее потомки) используется практически на всех современных компьютерах. Такая популярность памяти DDR SDRAM объясняется тем, что она способна работать с большинством современных системных плат, функционирующих на высоких частотах.
• Нетрудно предположить, что память DDR2 SDRAM и DDR3 SDRAM – это дальнейшее развитие DDR SDRAM. Эти типы различаются некоторыми технологическими особенностями, но нам это не так интересно. Просто запомните, что DDR2 работает быстрее, чем DDR, а DDR3 – быстрее, чем DDR2.
• Некоторое время лидером в быстродействии являлась память RDRAM (Rambus Dynamic RAM) – динамическая память от компании Rambus. Она работала на частотах 400 и 533 МГц и очень дорого стоила. Из-за своей дороговизны RDRAM не получила широкого распространения и встречается в некоторых компьютерах на базе уже несколько устаревшего процессора Pentium 4. Другие же производители материнских плат решили использовать более доступную память DDR SDRAM.
Вот такие типы памяти существовали либо существуют на рынке компьютерных технологий.
Теперь поговорим о модулях оперативной памяти. Под модулем мы будем понимать плату, на которой расположены микросхемы памяти (см. рис. 4.6). Модули отличаются друг от друга размерами и формой (форм-фактором). Вам могут встретиться модули памяти трех видов: SIMM, DIMM и RIMM.
• Модули SIMM (Single Inline Memory Module – модуль памяти с однорядным расположением выводов) являются устаревшими, так как именно на них реализовывалась память FPM и EDO. Данные модули производились в двух вариантах: 30– и 72-контактные (рис. 4.8).
Рис. 4.8. 30-контактный (сверху) и 72-контактный (снизу) модули SIMM
Отличительной особенностью модулей SIMM являлось то, что их нельзя было устанавливать на материнскую плату по одиночке или в нечетном количестве: 72-контактные модули располагались только парами, а маленькие 30-контактные – группами по четыре штуки. При нарушении этого правила материнская плата просто «не видела» память.
• Модули DIMM (Dual Inline Memory Module – модуль памяти с двухрядным расположением выводов) появились вместе с памятью SDRAM. Эти модули имеют 168 контактов и поддерживают скорости работы 66, 100 и 133 МГц. С появлением памяти DDR SDRAM появились 184-контактные модули, работающие на частоте от 200 МГц. Кстати, на рис. 4.6 изображен именно модуль DIMM.
Хоть 168– и 184-контактные модули DIMM и одинаковы по размерам, они имеют некоторые различия в форме. Это сделано именно для того, чтобы нельзя было установить модуль DIMM с памятью SDRAM в слот для памяти DDR SDRAM и наоборот.
• Как вы уже догадались, модули RIMM поддерживают память RDRAM. Они имеют 184 контакта, такие же размеры, как модуль DIMM, однако и ряд специфических особенностей конструкции (рис. 4.9), которые не позволят установить их в слот для модулей DIMM.
Рис. 4.9. Модуль RIMM
Подытоживая разговор об оперативной памяти, хочется отметить, что все описанные выше параметры вы, как правило, можете найти прямо на модуле памяти. Производители указывают их на специальных наклеечках. Там должна быть приведена информация о емкости модуля памяти, ее типе, быстродействии, рабочем напряжении питания, а также название фирмы-изготовителя. Если вам кто-то попробует продать память без такой наклейки, советуем ее не покупать – наверняка вам пытаются подсунуть какую-нибудь дешевую подделку.
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРес
Как работает процессор?
Нельзя говорить о памяти, не сказав пару слов о процессоре. Процессор и оперативной память довольно похожи, так как в обоих случаях используются логические устройства, которые могут принимать лишь два состояния. Однако процессор выполняет задачи, связанные с вычислениями. Для этого у него имеется устройство управления — именно на него поступают наши инструкции, арифметико-логическое устройство — оно отвечает за все арифметические операции (сложение, вычитание и так далее) и регистры.
Помимо оперативной памяти, в компьютере имеется кэш-память. Если вам интересна эта тема, можете изучить наш недавний материал.
Так как инструкции, поступающие на процессор, работают с данными из памяти, эти данные нужно где-то хранить. Брать их постоянно из оперативной памяти — слишком долго, поэтому в процессоре имеется своя память, представленная в виде нескольких регистров — она является самой быстрой памятью в компьютере.
Что такое регистр? Регистр в процессоре представлен в виде триггера, который может хранить 1 бит информации. Триггер — это один из множества логических элементов в микрочипах. Благодаря своей логике он способен хранить информацию. Вот так выглядит D-триггер:
Это D-триггер и он способен хранить информацию. Каждое простейшее логическое устройство, включая D-триггер, состоит из логических операций. На фото выше можно заметить знак «&» — это логическое И
Таблица истинности для логического «И»
Верхний переключатель «D» в D-триггере меняет значение бита, а нижний «C» включает или отключает его хранение. Вам наверняка интересно, как устроен этот «D-триггер». Подробнее работу триггеров вы можете изучить по видеоролику ниже:
Помимо D-триггера, существуют также RS-триггер, JK-триггер и другие. Этой теме посвящена не одна книга, можете изучить логические устройства микрочипов самостоятельно. Было бы неплохо углубиться еще и в тему квантовых процессоров, потому что очевидно, что будущее именно за ними.
ПИСЬМОНОСЕЦ: Сам себе «Компьютерру»
ПИСЬМОНОСЕЦ: Сам себе «Компьютерру» Автор: Сергей ВильяновВот Евгений Антонович обрадовался, получив камеру в подарок. Приятно. А своему другу-то чего приятное не стал делать? Взял бы и подарил. Была бы дружба крепче.И еще непонятна фраза «ушел в руки друга по цене,
Оперативная память
Оперативная память Оперативная память – одно из устройств, от объема и скорости работы которого зависит быстродействие всего компьютера. Ее задача – своевременное предоставление процессору необходимой информации.Наиболее популярны модули памяти DDR2 SDRAM
Сам себе СМИ
Сам себе СМИ Метки: СМИ, пользовательский контентЖурнал Time в 2006 году присвоил звание «Человек года» интернет-пользователю как таковому, вынеся на свою обложку зеркальный монитор с надписью You, в котором отражается тот, кто взял в руки журнал. Редакция Time тем самым хотела
Убей в себе “слактивиста”[16]
Убей в себе “слактивиста”[16] Те, кого заворожили возможности “цифровой” политической деятельности, увы, редко могут отличить ее от “слактивизма”, или “диванного активизма”. Эта опасная разновидность слишком часто ведет к беспорядочным гражданским связям (обычно в
6.3. Сам себе Спилберг (DVD-студия Windows)
6.3. Сам себе Спилберг (DVD-студия Windows) DVD отличается от CD не только большой емкостью, это еще и особый формат. Он поддерживает создание меню, ускоренную и замедленную перемотку (очень ускоренную и очень замедленную), «перелистывание» разделов… Словом, если вы смотрите фильмы
Оперативная память
Оперативная память Именно оперативная память оказывает очень большое влияние на производительность системы. Компьютер даже с самым мощным процессором будет крайне медленно «ворочаться», если в его памяти тесно приложениям и данным. В таком случае система будет
Глава 12 Я противоречу сам себе
Глава 12 Я противоречу сам себе Разбираются разновидности вычислительного способа мышления, определяется реалистичный вычислительный подход к нему.Культура вычислительного подхода к природеВ Кремниевой долине можно встретить буддистов, анархистов, поклонников культа
За последнюю неделю дважды объяснял людям как организована работа с памятью в х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 содержат линейный базовый адрес описываемым данным дескриптором сегмента. Напомню нашу формулу для нахождения линейного адреса:
линейный адрес = базовый адрес + смещение
[база; база+предел)
В зависимости от 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, и производится повторное обращение к дескриптору, сегмент которого находится уже в памяти.
На этом заканчивается преобразование логического адреса в линейный, и я думаю на этом стоит прерваться. В следующий раз я расскажу вторую часть преобразования из линейного в физический.
А так же думаю стоит немного поговорить о передачи аргументов функции, и о размещении переменных в памяти, чтобы была какая-то связь с реальностью, потому размещение переменных в памяти это уже непосредственно, то с чем вам приходится сталкиваться в работе, а не просто какие-то теоретические измышления для системного программиста. Но без понимания, как устроена память невозможно понять как эти самые переменные хранятся в памяти.
В общем надеюсь было интересно и до новых встреч.
Новый Год – приятный, светлый праздник, в который мы все подводим итоги год ушедшего, смотрим с надеждой в будущее и дарим подарки. В этой связи мне хотелось бы поблагодарить всех хабра-жителей за поддержку, помощь и интерес, проявленный к моим статьям (1, 2, 3, 4). Если бы Вы когда-то не поддержали первую, не было и последующих (уже 5 статей)! Спасибо! И, конечно же, я хочу сделать подарок в виде научно-популярно-познавательной статьи о том, как можно весело, интересно и с пользой (как личной, так и общественной) применять довольно суровое на первый взгляд аналитическое оборудование. Сегодня под Новый Год на праздничном операционном столе лежат: USB-Flash накопитель от A-Data и модуль SO-DIMM SDRAM от Samsung.
Теоретическая часть
Постараюсь быть предельно краток, чтобы все мы успели приготовить салат оливье с запасом к праздничному столу, поэтому часть материала будет в виде ссылок: захотите – почитаете на досуге…
Какая память бывает?
На настоящий момент есть множество вариантов хранения информации, какие-то из них требуют постоянной подпитки электричеством (RAM), какие-то навсегда «вшиты» в управляющие микросхемы окружающей нас техники (ROM), а какие-то сочетают в себе качества и тех, и других (Hybrid). К последним, в частности, и принадлежит flash. Вроде бы и энергонезависимая память, но законы физики отменить сложно, и периодически на флешках перезаписывать информацию всё-таки приходится.
Тут можно подробнее ознакомиться с ниже приведённой схемой и сравнением характеристик различных типов «твердотельной памяти». Или тут – жаль, что я был ещё ребёнком в 2003 году, в таком проекте не дали поучаствовать…
Современные типы «твердотельной памяти». Источник
Единственное, что, пожалуй, может объединять все эти типы памяти – более-менее одинаковый принцип работы. Есть некоторая двумерная или трёхмерная матрица, которая заполняется 0 и 1 примерно таким образом и из которой мы впоследствии можем эти значения либо считать, либо заменить, т.е. всё это прямой аналог предшественника – памяти на ферритовых кольцах.
Что такое flash-память и какой она бывает (NOR и NAND)?
Начнём с flash-памяти. Когда-то давно на небезызвестном ixbt была опубликована довольно подробная статья о том, что представляет собой Flash, и какие 2 основных сорта данного вида памяти бывают. В частности, есть NOR (логическое не-или) и NAND (логическое не-и) Flash-память (тут тоже всё очень подробно описано), которые несколько отличаются по своей организации (например, NOR – двумерная, NAND может быть и трехмерной), но имеют один общий элемент – транзистор с плавающим затвором.
Схематическое представление транзистора с плавающим затвором. Источник
Итак, как же это чудо инженерной мысли работает? Вместе с некоторыми физическими формулами это описано тут. Если вкратце, то между управляющим затвором и каналом, по которому ток течёт от истока к стоку, мы помещаем тот самый плавающий затвор, окружённый тонким слоем диэлектрика. В результате, при протекании тока через такой «модифицированный» полевой транзистор часть электронов с высокой энергией туннелируют сквозь диэлектрик и оказываются внутри плавающего затвора. Понятно, что пока электроны туннелировали, бродили внутри этого затвора, они потеряли часть энергии и назад практически вернуться не могут.
NB: «практически» — ключевое слово, ведь без перезаписи, без обновления ячеек хотя бы раз в несколько лет Flash «обнуляется» так же, как оперативная память, после выключения компьютера.
Там же, на ixbt, есть ещё одна статья, которая посвящена возможности записи на один транзистор с плавающим затвором нескольких бит информации, что существенно увеличивает плотность записи.
В случае рассматриваемой нами флешки память будет, естественно, NAND и, скорее всего, multi-level cell (MLC).
Если интересно продолжить знакомиться с технологиями Flash-памяти, то тут представлен взгляд из 2004 года на данную проблематику. А здесь (1, 2, 3) некоторые лабораторные решения для памяти нового поколения. Не думаю, что эти идеи и технологии удалось реализовать на практике, но, может быть, кто-то знает лучше меня?!
Что такое DRAM?
Если кто-то забыл, что такое DRAM, то милости просим сюда.
Опять мы имеем двумерный массив, который необходимо заполнить 0 и 1. Так как на накопление заряда на плавающем затворе уходит довольно продолжительное время, то в случае RAM применяется иное решение. Ячейка памяти состоит из конденсатора и обычного полевого транзистора. При этом сам конденсатор имеет, с одной стороны, примитивное физическое устройство, но, с другой стороны, нетривиально реализован в железе:
Устройство ячейки RAM. Источник
Опять-таки на ixbt есть неплохая статья, посвящённая DRAM и SDRAM памяти. Она, конечно, не так свежа, но принципиальные моменты описаны очень хорошо.
Единственный вопрос, который меня мучает: а может ли DRAM иметь, как flash, multi-level cell? Вроде да, но всё-таки…
Часть практическая
Flash
Те, кто пользуется флешками довольно давно, наверное, уже видели «голый» накопитель, без корпуса. Но я всё-таки кратко упомяну основные части USB-Flash-накопителя:
Основные элементы USB-Flash накопителя: 1. USB-коннектор, 2. контроллер, 3. PCB-многослойная печатная плата, 4. модуль NAND памяти, 5. кварцевый генератор опорной частоты, 6. LED-индикатор (сейчас, правда, на многих флешках его нет), 7. переключатель защиты от записи (аналогично, на многих флешках отсутствует), 8. место для дополнительной микросхемы памяти. Источник
Пойдём от простого к сложному. Кварцевый генератор (подробнее о принципе работы тут). К моему глубокому сожалению, за время полировки сама кварцевая пластинка исчезла, поэтому нам остаётся любоваться только корпусом.
Корпус кварцевого генератора
Случайно, между делом, нашёл-таки, как выглядит армирующее волокно внутри текстолита и шарики, из которых в массе своей и состоит текстолит. Кстати, а волокна всё-таки уложены со скруткой, это хорошо видно на верхнем изображении:
Армирующее волокно внутри текстолита (красными стрелками указаны волокна, перпендикулярные срезу), из которого и состоит основная масса текстолита
А вот и первая важная деталь флешки – контроллер:
Контроллер. Верхнее изображение получено объединением нескольких СЭМ-микрофотографий
Признаюсь честно, не совсем понял задумку инженеров, которые в самой заливке чипа поместили ещё какие-то дополнительные проводники. Может быть, это с точки зрения технологического процесса проще и дешевле сделать.
После обработки этой картинки я кричал: «Яяяяязь!» и бегал по комнате. Итак, Вашему вниманию представляет техпроцесс 500 нм во всей свой красе с отлично прорисованными границами стока, истока, управляющего затвора и даже контакты сохранились в относительной целостности:
«Язь!» микроэлектроники – техпроцесс 500 нм контроллера с прекрасно прорисованными отдельными стоками (Drain), истоками (Source) и управляющими затворами (Gate)
Теперь приступим к десерту – чипам памяти. Начнём с контактов, которые эту память в прямом смысле этого слова питают. Помимо основного (на рисунке самого «толстого» контакта) есть ещё и множество мелких. Кстати, «толстый» < 2 диаметров человеческого волоса, так что всё в мире относительно:
СЭМ-изображения контактов, питающих чип памяти
Если говорить о самой памяти, то тут нас тоже ждёт успех. Удалось отснять отдельные блоки, границы которых выделены стрелочками. Глядя на изображение с максимальным увеличением, постарайтесь напрячь взгляд, этот контраст реально трудно различим, но он есть на изображении (для наглядности я отметил отдельную ячейку линиями):
Ячейки памяти 1. Границы блоков выделены стрелочками. Линиями обозначены отдельные ячейки
Мне самому сначала это показалось как артефакт изображения, но обработав все фото дома, я понял, что это либо вытянутые по вертикальной оси управляющие затворы при SLC-ячейке, либо это несколько ячеек, собранных в MLC. Хоть я и упомянул MLC выше, но всё-таки это вопрос. Для справки, «толщина» ячейки (т.е. расстояние между двумя светлыми точками на нижнем изображении) около 60 нм.
Чтобы не лукавить – вот аналогичные фото с другой половинки флешки. Полностью аналогичная картина:
Ячейки памяти 2. Границы блоков выделены стрелочками. Линиями обозначены отдельные ячейки
Конечно, сам чип – это не просто набор таких ячеек памяти, внутри него есть ещё какие-то структуры, принадлежность которых мне определить не удалось:
Другие структуры внутри чипов NAND памяти
Всю плату SO-DIMM от Samsung я, конечно же, не стал распиливать, лишь с помощью строительного фена «отсоединил» один из модулей памяти. Стоит отметить, что тут пригодился один из советов, предложенных ещё после первой публикации – распилить под углом. Поэтому, для детального погружения в увиденное необходимо учитывать этот факт, тем более что распил под 45 градусов позволил ещё получить как бы «томографические» срезы конденсатора.
Однако по традиции начнём с контактов. Приятно было увидеть, как выглядит «скол» BGA и что собой представляет сама пайка:
«Скол» BGA-пайки
А вот и второй раз пора кричать: «Язь!», так как удалось увидеть отдельные твердотельные конденсаторы – концентрические круги на изображении, отмеченные стрелочками. Именно они хранят наши данные во время работы компьютера в виде заряда на своих обкладках. Судя по фотографиям размеры такого конденсатора составляют около 300 нм в ширину и около 100 нм в толщину.
Из-за того, что чип разрезан под углом, одни конденсаторы рассечены аккуратно по середине, у других же срезаны только «бока»:
DRAM память во всей красе
Если кто-то сомневается в том, что эти структуры и есть конденсаторы, то тут можно посмотреть более «профессиональное» фото (правда без масштабной метки).
Единственный момент, который меня смутил, что конденсаторы расположены в 2 ряда (левое нижнее фото), т.е. получается, что на 1 ячейку приходится 2 бита информации. Как уже было сказано выше, информация по мультибитовой записи имеется, но насколько эта технология применима и используется в современной промышленности – остаётся для меня под вопросом.
Конечно, кроме самих ячеек памяти внутри модуля есть ещё и какие-то вспомогательные структуры, о предназначении которых я могу только догадываться:
Другие структуры внутри чипа DRAM-памяти
Послесловие
Помимо тех ссылок, что раскиданы по тексту, на мой взгляд, довольно интересен данный обзор (пусть и от 1997 года), сам сайт (и фотогалерея, и chip-art, и патенты, и много-много всего) и данная контора, которая фактически занимается реверс-инжинирингом.
К сожалению, большого количества видео на тему производства Flash и RAM найти не удалось, поэтому довольствоваться придётся лишь сборкой USB-Flash-накопителей:
P.S.: Ещё раз всех с наступающим Новым Годом чёрного водяного дракона.
Странно получается: статью про Flash хотел написать одной из первых, но судьба распорядилась иначе. Скрестив пальцы, будем надеяться, что последующие, как минимум 2, статьи (про биообъекты и дисплеи) увидят свет в начале 2012 года. А пока затравка — углеродный скотч:
Углеродный скотч, на котором были закреплены исследуемые образцы. Думаю, что и обычный скотч выглядит похожим образом
Во-первых, полный список опубликованных статей на Хабре:
В-третьих, если тебе, дорогой читатель, понравилась статья или ты хочешь простимулировать написание новых, то действуй согласно следующей максиме: «pay what you want»
Yandex.Money 41001234893231
WebMoney (R296920395341 или Z333281944680)
Иногда кратко, а иногда не очень о новостях науки и технологий можно почитать на моём Телеграм-канале — милости просим;)
Оперативная память это важная часть любой компьютерной системы и сейчас я объясню, почему это так.
В процессе работы память выступает в качестве буфера между накопителем и процессором, то есть данные сперва считываются с жесткого диска (или другого накопителя) в оперативную память и уже затем обрабатываются центральным процессором. Такая схема применяется, потому что процессор - очень быстрое устройство и ему требуется быстро получать доступ к нужным данным и командам, иначе он будет простаивать и производительность системы уменьшится, а так как жёсткий диск и SSD не могут обеспечить необходимую скорость, все нужные данные считываются и перемещаются в более быструю оперативную память и хранятся там, пока не понадобятся процессору для обработки.
Физически, оперативная память представляет собой набор микросхем припаянных к плате. Если посмотреть внутрь одной такой микросхемы, можно увидеть что она состоит из множества, соединённых друг с другом слоёв, каждый слой состоит из огромного количества ячеек, образующие прямоугольные матрицы.
Одна ячейка может содержать 1 бит информации, а состоит она из одного полевого транзистора и одного конденсатора.
Выглядит эта конструкция довольно сложно и может различаться в зависимости от применённых технологий, так что для наглядности лучше представить ячейку в виде схемы.
Так легче понять, что именно конденсатор хранит информацию, а транзистор выполняет роль электрического ключа, который либо удерживает заряд на конденсаторе, либо открывает для считывания. Когда конденсатор заряжен, можно получить логическую единицу, а когда разряжен, ноль. Таких конденсаторов в чипе, очень много но считать заряд с одной конкретной ячейки нельзя, считывается вся страница целиком.
Чтобы сделать это необходимо на нужную нам горизонтальную линию которая называется строка, подать сигнал, который откроет транзисторы, после чего усилители расположенные на концах вертикальных линий считают заряды которые находились на конденсаторах.
Каждое такое считывание опустошает заряды на странице, из-за чего приходится её заново переписывать, для этого на строку так же подаётся открывающий транзистор заряд, а на столбцы подаётся более высокое напряжение, тем самым заряжая конденсаторы и записывая информацию. Задержки между этими операциями называются таймингами, чем они меньше тем более быстрая будет вся система в целом
Но вернёмся к модулю памяти в макро масштабе и посмотрим что, помимо самих чипов памяти, на модуль распаиваются SMD-компоненты резисторы и конденсаторы обеспечивающие развязку сигнальных цепей и питание чипов, а также Микросхема SPD – это специальная микросхема, в которой хранятся данные о параметрах всего модуля (ёмкость, рабочее напряжение, тайминги, число банков и так далее). Это нужно чтобы во время запуска системы, BIOS на материнской плате выставил оптимальные настройки согласно информации, отображенной в микросхеме.
Так же существует несколько форм факторов модулей, модули для компьютеров называются DIMM, а для ноутбуков и компактных систем SO-DIMM, отличаются они размером и количеством контактов для подключения. Это двухрядные модули которые имеют два независимых ряда контактов по одному с каждой стороны.
Например в старых модулях Simm контакты с двух сторон были замкнуты и они могли передать только 32 бита информации за такт, в то время как dimm могут передавать 64 бита.
Ко всему этому модули делятся на одноранговые, двухранговые и четырёхранговые. Ранг — это блок данных шириной 64 бита, который может быть набран разным количеством чипов память.Одноранговая память имеет ширину 64 бита, тогда как Двухранговая память имеет ширину 128 бит. Но, так как один канал памяти имеет ширину всего 64 бита, как и одноранговый модуль, контроллер памяти может одновременно обращаться только к одному рангу. В то время как двухранговый модуль может заниматься ответом на переданную ему команду, а другой ранг уже может подготавливать информацию для следующей команды, что незначительно увеличивает производительность.
Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти, так как эти модули имеют дополнительный банк памяти на каждые 8 микросхем. Дополнительные банки и логика в модуле служат для проверки и устранения ошибок.
Использование буферов и коррекции ошибок незначительно ухудшает производительность, но сильно повышает надёжность данных. Поэтому ECC память широко используется в серверах и рабочих станциях
Ещё немного расскажу о типах памяти, так как в современных компьютерах используется синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных DDR SDRAM 4-го поколения и скоро будет распространено пятое.
Память типа ddr пришла на смену памяти типа SDR. SDR SDRAM работает синхронно с контроллером. В ней внутренняя и внешняя шина данных работает на одной и той же частоте. При подаче сигнала на микросхему происходит синхронное считывание информации и передача её в выходной буфер. Передача каждого бита из буфера происходит с каждым тактом работы ядра памяти. В SDR памяти синхронизация обмена данными происходит по фронту тактового импульса.
При подаче сигнала на микросхему происходит синхронное считывание информации и передача её в выходной буфер. Передача каждого бита из буфера происходит с каждым тактом работы ядра памяти. В SDR памяти синхронизация обмена данными происходит по фронту тактового импульса.
После SDR, вышла DDR память, в ней обмен данными по внешней шине идет не только по фронту тактового импульса, но и по спаду, из-за чего на той же частоте можно передать вдвое больше информации, а чтобы воспользоваться этим увеличением, внутреннею шину расширили вдвое. То есть работая на тех же частотах что SDR, DDR память передаёт в 2 раза больше данных.
Следующие поколения памяти DDR не сильно отличаются, увеличивается только частота работы буферов ввода вывода, а также расширяется шина, связывающая ядро памяти с буферами, сам принцип работы не меняется, но даже так, каждое новое поколение получает таким способом существенное увеличение пропускной способности, без увеличения частоты работы самих ячеек памяти.
Понятно что с каждый новым поколением улучшается работа логики, техпроцесс и многое другое. Но сам принцип работы остаётся одним и для общего понимая этого достаточно.
Любые данные в компьютере — это нули и единички. Текст, который вы читаете прямо сейчас, передался с нашего сервера прямо на ваш компьютер и записался в памяти — он представляет собой последовательность нулей и единичек. Прямо сейчас вы смотрите на ваш монитор, который состоит из пикселей и отображает наш сайт. Изображение — это тоже нули и единицы. Видео — это нули и единицы. Музыка — нули и единицы. Любой контент, доступный на вашем компьютере можно представить в виде нулей и единиц. Но как?
Оперативная память — это сложное устройство, и знать его работу будет полезно каждому
Стоит начать с того, что компьютер понимает только двоичную систему счисления. В жизни мы используем десятичную, так как у нас 10 пальцев и нам она попросту удобнее, но у компьютера нет 10 пальцев — он может работать только с логическими устройствами, которые работают только в двух состояниях — включен или выключен, есть подача тока или нет подачи тока. Если логическое устройство активно, значит подача тока есть и бит равен единице, если подачи тока нет, значит бит равен нулю. Бит — это самая маленькая единица измерения. 1 бит может иметь всего два состояния 1 и 0. 1 байт — это 8 бит. Таким образом, если перебрать все возможные комбинации нулей и единиц, получим, что в 1 байте может храниться 256 комбинаций битов или 2 в степени 8. Например, «0000001», «0000010» или «10110010» — любую букву английского алфавита можно представить в виде 8 битов (1 байта).
Двоичный код выглядит именно так!
Благодаря различным кодировкам мы можем представить любую информацию в двоичном виде. То же касается и наших программ, написанных на различных языках программирования. Чтобы запустить какую-либо программу, её необходимо скомпилировать в двоичный код. Таким образом, в двоичном виде можно представлять как данные, так и инструкции (код) для работы с этими данными. Существуют еще и интерпретируемые языки (JavaScript, Python), в этом случае интерпретатор по ходу выполнения программы анализирует код и компилирует его в язык, понятный нашему компьютеру, то есть в последовательность нулей и единиц, и в этом случае нет необходимости компилировать программу каждый раз при желании запустить её.
Оперативная память
Оперативная память Минимальным необходимым объемом оперативной памяти для работы с программой Premiere Pro считается 512 Мбайт для работы с видео формата DV и 2 Гбайт для работы с видео формата HDV.Оперативная память, как и процессор, влияет на быстродействие всей системы в целом,
Резюме: Не подпускать к себе конкурентов
Резюме: Не подпускать к себе конкурентов В данном случае проблема была обнаружена до возможного нанесения ущерба. Конечно, обнаружить такие проблемы во время профилактического аудита безопасности соседних систем удается не во всех компаниях. Многие из них вообще не
8.2. Как представлять себе программы на Прологе
8.2. Как представлять себе программы на Прологе Одной из характерных особенностей Пролога является то, что в нем допускается как процедурный, так и декларативный стиль мышления при составлении программы. Эти два подхода детально обсуждались в гл. 2 и затем многократно
Оперативная память
Оперативная память Оперативная память (оперативное запоминающее устройство, ОЗУ, «мозги», «оперативка») – микросхемы, используемые процессором для временного хранения данных при выполнении расчетов. В подавляющем большинстве случаев такая память представлена в виде
Как компьютер запоминает данные в ОЗУ?
Последовательность битов или 1 байт «01000001», записанный в ОЗУ, может означать что угодно — это может быть число «65», буква «А» или цвет картинки. Чтобы операционная система могла понимать, что означают эти биты, были придуманы различные кодировки для разных типов данных: MP3, WAV, MPEG4, ASCII, Unicode, BMP, Jpeg. Например, давайте попытаемся записать кириллическую букву «р» в нашу память. Для этого сначала необходимо перевести её в формат Unicode-символа (шестнадцатеричное число). «р» в Unicode-таблице это «0440». Далее мы должны выбрать, в какой кодировке будем сохранять число, пусть это будет UTF-16. Тогда в двоичной системе Unicode-символ примет вид «00000100 01000000». И уже это значение мы можем записывать в ОЗУ. Оно состоит из двух байт. А вот если бы мы взяли английскую «s», в двоичном виде она бы выглядела вот так «01110011».
Дело в том, что английский алфавит занимает лишь 1 байт, так как в UTF-кодировке он умещается в диапазон чисел от 0 до 255. В 256 комбинаций спокойно вмещаются числа от 0 до 9 и английский алфавит, а вот остальные символы уже нет, поэтому, например, для русских символов нужно 2 байта, а для японских или китайских символов нам понадобится уже 3 и даже 4 байта.
Вот мы и разобрались с тем, как работает оперативная память и как можно записать в неё данные. Понравился материал? Делитесь им с друзьями и давайте обсудим его в нашем чате.
Процессор и оперативная память
Процессор и оперативная память Для комфортной работы с Pinnacle Studio 11 в Windows XP разработчики рекомендуют наличие в системе процессора Intel Pentium или AMD Athlon с тактовой частотой не ниже 1,4 ГГц (для комфортной работы желателен процессор с частотой не ниже 2,4 ГГц).Для работы в Windows Vista
1.3.3. Оперативная память
1.3.3. Оперативная память Почему эта память — оперативная? Потому что она нужна при выполнении оперативных задач, например открыть Word, запустить почту, посмотреть картинку, поиграть в Квейк и т. д.В оперативную память (ОЗУ, оперативное запоминающее устройство) загружаются
Заведите себе врага
Заведите себе врага БоритесьИногда лучший способ узнать, каким должно быть ваше приложение — это узнать, каким оно не должно быть. Пусть это будет врагом вашего приложения, и вы будете видеть свет, на который вы должны идти.Когда мы решили создать систему управления
Оперативная память
Оперативная память Из предыдущего раздела должно быть понятно, что процессор – это устройство, обрабатывающее данные, которые хранятся в памяти. В этом разделе главы мы поговорим об одном из типов компьютерной памяти – оперативной памяти, или ОЗУ[4] (рис. 3.2). Рис. 3.2.
Из чего состоит оперативная память?
Теперь вернемся к нашей памяти, она представляет собой большую группу регистров, которые хранят данные. Существует SRAM (статическая память) и DRAM (динамическая память). В статической памяти регистры представлены в виде триггеров, а в динамический в виде конденсаторов, которые со временем могут терять заряд. Сегодня в ОЗУ используется именно DRAM, где каждая ячейка — это транзистор и конденсатор, который при отсутствии питания теряет все данные. Именно поэтому, когда мы отключаем компьютер, оперативная память очищается. Все драйвера и другие важные программы компьютер в выключенном состоянии хранит на SSD, а уже при включении он заносит необходимые данные в оперативную память.
Вам наверняка будет интересно узнать виды оперативной памяти. На эту тему у нас есть отличный материал
Ячейка динамической оперативной памяти, как уже было сказано выше, состоит из конденсатора и транзистора, хранит она 1 бит информации. Точнее, саму информацию хранит конденсатор, а за переключения состояния отвечает транзистор. Конденсатор мы можем представить в виде небольшого ведерка, который наполняется электронами при подаче тока. Подробнее работу динамической оперативной памяти мы рассмотрели еще 7 лет назад. С тех пор мало что изменилось в принципах её работы. Если конденсатор заполнен электронами, его состояние равно единице, то есть на выходе имеем 1 бит информации. Если же нет, то нулю.
Убей в себе “слактивиста”[16]
Убей в себе “слактивиста”[16] Те, кого заворожили возможности “цифровой” политической деятельности, увы, редко могут отличить ее от “слактивизма”, или “диванного активизма”. Эта опасная разновидность слишком часто ведет к беспорядочным гражданским связям (обычно в
Читайте также: