Структура памяти пк: Организация памяти в компьютере — Студопедия
Как устроена оперативная память компьютера
Знаете ли вы, что такое оперативная память? Конечно, знаете. Это такое устройство, от которого зависит скорость работы компьютера. В общем, так оно и есть, только выглядит такое определение немного дилетантски. Но что в действительности представляет собой оперативная память? Как она устроена, как работает и чем один вид памяти отличается от другого?
Компьютерная память
Оперативная память, ОЗУ она же RAM (англ.) — это энергозависимая часть компьютерной памяти, предназначенной для хранения временных данных, обрабатываемых процессором. Хранятся эти данные в виде бинарной последовательности, то есть набора нулей и единиц. Энергозависимой же она называется потому, что для её работы необходимо постоянное подключение к источнику электрического тока. Стоит только отключить её от питания, как вся хранящаяся в ней информация будет утеряна.
Но если ОЗУ это одна часть компьютерной памяти, тогда что представляет собой её другая часть? Носителем этой части памяти является жесткий диск. В отличие от ОЗУ, он может хранить информацию, не будучи подключён к источнику питания. Жесткие диски, флешки и CD-диски — все эти устройства именуются ПЗУ, что расшифровывается как постоянное запоминающее устройство. Как и ОЗУ, ПЗУ хранят данные в виде нулей и единиц.
Для чего нужна ОЗУ
Тут может возникнуть вопрос, а зачем вообще нужна оперативная память? Разве нельзя выделить на жестком диске буфер для временного помещения обрабатываемых процессором данных? В принципе можно, но это был бы очень неэффективный подход.
Физическое устройство оперативной памяти таково, что чтение/запись в ней производится намного быстрее. Если бы вместо ОЗУ у вас было ПЗУ, компьютер бы работал очень медленно.
Физическое устройство ОЗУ
Физически ОЗУ представляет съёмную плату (модуль) с располагающимися на ней микросхемами памяти. В основе микросхемы лежит конденсатор — устройство, известное уже больше сотни лет.
Каждая микросхема содержит множество конденсаторов связанных в единую ячеистую структуру — матрицу или иначе ядро памяти. Также микросхема содержит выходной буфер — особый элемент, в который попадает информация перед тем, как быть переданной на шину памяти. Из уроков физики мы знаем, что конденсатор способен принимать только два устойчивых состояния: либо он заряжен, либо разряжен. Конденсаторы в ОЗУ играют ту же роль, что и магнитная поверхность жёсткого диска, то есть удержание в себе электрического заряда, соответствующего информационному биту. Наличие заряда в ячейке соответствует единице, а отсутствие — нулю.
Как в ОЗУ записывается и читается информация
Понять, как в ОЗУ происходит запись и считывание данных будет проще, если представить её в виде обычной таблицы. Чтобы считать данные из ячейки, на горизонтальную строку выдаётся сигнал выбора адреса строки (RAS). После того как он подготовит все конденсаторы выбранной строки к чтению, по вертикальной колонке подаётся сигнал выбора адреса столбца (CAS), что позволяет считать данные с конкретной ячейки матрицы.
Характеристика, определяющая количество информации, которое может быть записано или прочитано за одну операцию чтения/записи, именуется разрядностью микросхемы или по-другому шириной шины данных. Как нам уже известно, перед тем как быть переданной на шину микросхемы, а затем в центральный процессор, информация сначала попадает в выходной буфер. С ядром он связывается внутренним каналом с пропускной способностью равной ширине шины данных. Другой важной характеристикой ОЗУ является частота шины памяти. Что это такое? Это периодичность, с которой происходит считывание информации, а она совсем не обязательно должна совпадать с частотой подающегося на матрицу памяти сигнала, что мы и увидим на примере памяти DDR.
В современных компьютерах используется так называемая синхронная динамическая оперативная память — SDRAM. Для передачи данных в ней используется особый синхросигнал. При его подаче на микросхему происходит синхронное считывание информации и передача её в выходной буфер.
Представим, что у нас есть микросхема памяти с шириной шины данных 8 бит, на которую с частотой 100 МГц подаётся синхросигнал. В результате за одну транзакцию в выходной буфер по 8-битовому каналу попадает ровно 8 бит или 1 байт информации. Точно такой же синхросигнал приходит на выходной буфер, но на этот раз информация попадает на шину микросхемы памяти. Умножив частоту синхросигнала на ширину шины данных, мы получим ещё один важный параметр — пропускную способность памяти.
8 бит * 100 МГц = 100 Мб/с
Память DDR
Это был простейший пример работы SDR — памяти с однократной скоростью передачи данных. Этот тип памяти сейчас практически не используется, сегодня его место занимает DDR — память с удвоенной скоростью передачи данных. Разница между SDR и DDR заключается в том, что данные с выходного буфера такой ОЗУ читаются не только при поступлении синхросигнала, но и при его исчезновении. Также при подаче синхросигнала в выходной буфер с ядра памяти информация попадает не по одному каналу, а по двум, причём ширина шины данных и сама частота синхросигнала остаются прежними.
Для памяти DDR принято различать два типа частоты. Частота, с которой на модуль памяти подаётся синхросигнал, именуется базовой, а частота, с которой с выходного буфера считывается информация — эффективной. Рассчитывается она по следующей формуле:
эффективная частота = 2 * базовая частота
В нашем примере с микросхемой 8 бит и частотой 100 МГц это будет выглядеть следующим образом.
8 бит * (2 * 100 МГц) = 200 Мб/с
Чем отличаются DDR от DDR2, DDR3 и DDR4
Количеством связывающих ядро с выходным буфером каналов, эффективной частотой, а значит и пропускной способностью памяти. Что касается ширины шины данных (разрядности), то в большинстве современных модулей памяти она составляет 8 байт (64 бит). Допустим, что у нас есть модуль памяти стандарта DDR2-800. Как рассчитать его пропускную способность? Очень просто. Что такое 800? Это эффективная частота памяти в мегагерцах. Умножаем её на 8 байт и получаем 6400 Мб/с.
И последнее. Что такое пропускная способность мы уже знаем, а что такое объём оперативной памяти и зависит ли он от её пропускной способности? Прямой взаимосвязи между этим двумя характеристиками нет. Объём ОЗУ зависит от количества запоминающих элементов. И чем больше таких ячеек, тем больше данных может хранить память без их перезаписи и использования файла подкачки.
Организация памяти / Хабр
За последнюю неделю дважды объяснял людям как организована работа с памятью в х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, и производится повторное обращение к дескриптору, сегмент которого находится уже в памяти.
На этом заканчивается преобразование логического адреса в линейный, и я думаю на этом стоит прерваться. В следующий раз я расскажу вторую часть преобразования из линейного в физический.
А так же думаю стоит немного поговорить о передачи аргументов функции, и о размещении переменных в памяти, чтобы была какая-то связь с реальностью, потому размещение переменных в памяти это уже непосредственно, то с чем вам приходится сталкиваться в работе, а не просто какие-то теоретические измышления для системного программиста. Но без понимания, как устроена память невозможно понять как эти самые переменные хранятся в памяти.
В общем надеюсь было интересно и до новых встреч.
Раздел 7. Устройство памяти компьютера
7.1. Общая структура памяти персонального компьютера
Компьютерная
память предназначена для обеспечения
длительного хранения информации.
Вместе с центральным
процессором,
компьютерная память (запоминающее
устройство, ЗУ) ЗУ являются ключевыми
звеньями, архитектуры
фон Неймана.
Память компьютера
построена из двоичных запоминающих
элементов — битов, объединённых в группы
по 8 битов, которые называются байтами.
Все байты пронумерованы. Номер байта
называется его адресом. Байты могут
объединяться в ячейки, которые также
называют словами. Для каждого компьютера
характерна длина слова — два, четыре
или восемь байтов.
Как правило в одном
машинном слове может быть представлено
либо одно целое число, либо одна команда.
Однако, допускаются переменные форматы
представления информации.
Широко используются
и более крупные производные единицы
объёма памяти: Килобайт, Мегабайт,
Гигабайт, а также, в последнее время,
Теребайт и Петабайт.
Современные компьютеры
имеют много разнообразных запоминающих
устройств, которые отличаются между
собой по назначению, временным
характеристикам, объёму хранимой
информации и стоимости хранения
одинакового объёма информации.
Различают два вида
памяти: внутреннюю и внешнюю.
В
основе работы запоминающего устройства
может лежать любой физический
эффект,
обеспечивающий приведение системы к
двум или более устойчивым состояниям.
В современной компьютерной
технике
часто используются физические свойства
полупроводников,
когда прохождение тока через полупроводник
или его отсутствие трактуются как
наличие логических сигналов 0 или 1.
Устойчивые состояния, определяемые
направлением намагниченности,
позволяют использовать для хранения
данных разнообразные магнитные материалы.
Наличие или отсутствие заряда в
конденсаторе
также может быть положено в основу
системы хранения. Отражение или рассеяние
света от поверхности CD, DVD или Blu-ray-диска
также позволяет хранить информацию.
Следует
различать классификацию
памяти и
классификацию
запоминающих устройств
(ЗУ). Первая классифицирует память по
функциональности,
вторая же — по технической
реализации.
Здесь рассматривается первая — таким
образом, в неё попадают как аппаратные
виды памяти (реализуемые на ЗУ), так и
структуры
данных,
реализуемые в большинстве случаев
программно.
Процессор – это
основная рабочая часть компьютера,
который выполняет арифметические и
логические операции, управляет
вычислительным процессом и координирует
работу всех устройств компьютера.
Общение процессора с памятью осуществляется
через шины данных, шины адресов и шины
управления. Шина адреса предназначена
для передачи адреса устройства или
ячейки памяти, к которой обращается
процессор. По шине данных передается
вся информация при записи и считывании.
Процесс взаимодействия процессора и
памяти сводится к двум операциям: записи
и считывания информации. При записи
процессор по шине адреса передает адрес
в двоичном коде, по управляющей шине –
управляющий сигнал в двоичном коде и
по шине данных передает записываемую
информацию также в двоичном коде.
Общий вид памяти
представлен на рис.7.1. На нем показаны
различные типы запоминающих устройств,
не все обязательно входят в состав ЭВМ
и характер связей может отличаться.
Рис.7.1. Состав памяти
компьютера
Энергонезависимая
память
— память, реализованная ЗУ, записи
в которых не стираются при снятии
электропитания. К этому типу памяти
относятся все виды памяти на ПЗУ и ППЗУ;
Энергозависимая
память
— память, реализованная ЗУ, записи в
которых стираются при снятии электропитания.
К этому типу памяти относятся память,
реализованная на ОЗУ, кэш-память.
Последовательный
доступ —
ячейки памяти выбираются (считываются)
последовательно, одна за другой, в
очерёдности их расположения.
Произвольный
доступ
— вычислительное устройство может
обратиться к произвольной ячейке памяти
по любому адресу.
Реальная
или физическая
память —
память, способ адресации которой
соответствует физическому расположению
её данных;
Виртуальная память
— память, способ адресации которой
не отражает физического расположения
её данных
Структура оперативной памяти — Мегаобучалка
РАЗДЕЛ 2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА
ОПЕРАЦИОННЫХ СИСТЕМ
ТЕМА 2.1: АРХИТЕКТУРНЫЕ ОСОБЕННОСТИ
МОДЕЛИ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ
Архитектурой компьютера называется его описание на некотором общем уровне, включающее в себя описания пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение их логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры компьютеров обеспечивает их совместимость с точки зрения пользователя.
Классическая архитектура (архитектура фон Неймана) – одно арифметико-логическое устройство, через которое проходит поток данных, и одно устройство управления, через которое проходит поток команд – программа
Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной. Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью или системной шиной.
Рис. 6. Упрощенная архитектура типовой микроЭВМ.
Системная магистраль (системная шина) включает в себя три многоразрядных шины: шину данных, шину адреса и шину управления.
Шина данных. По этой шине данные передаются между различными устройствами. Например, считанные из оперативной памяти данные могут быть переданы процессору для обработки, а затем полученные данные могут быть отправлены обратно в оперативную память для хранения. Таким образом, данные по шине данных могут передаваться от устройства к устройству.
Разрядность шины данных определяется разрядностью процессора, т.е. числом двоичных разрядов, которые процессор обрабатывает за один такт. Разрядность процессоров постоянно увеличивается и в настоящее время составляет 64 бит.
Шина адреса. Выбор устройства, или ячейки памяти, куда пересылаются или откуда считываются данные по шине данных, производит процессор. Каждое устройство, или ячейка оперативной памяти, имеет свой адрес. Адрес передается по адресной шине, причем сигналы по ней передаются в одном направлении: от процессора к оперативной памяти и устройствам (однонаправленная шина).
Разрядность шины адреса определяет адресное пространство процессора, т. е. число ячеек оперативной памяти, которые могут иметь уникальные адреса.
Шина управления. По шине управления передаются сигналы, определяющие характер обмена информацией по магистрали. Сигналы управления определяют, какую операцию, считывание или запись информации из памяти нужно производить; синхронизирует обмен информацией между устройствами и т.д.
Периферийные устройства (принтер и др.) подключаются к системной магистрали через специальные контроллеры.
Структура оперативной памяти.
Основная память содержит оперативное (RAM — Random Access Memory — память с произвольным доступом) и постоянное (ROM — Read-Only Memory) запоминающие устройства.
Основная (оперативная) память– единственная крупная часть памяти, к которой процессор имеет непосредственный доступ. Содержимое основной памяти не сохраняется после перезагрузки системы или после выключения компьютера.
Внешняя (вторичная) память– расширение основной памяти, обеспечивающее функциональность устойчивой (сохраняемой) памяти большого объема.
Оперативная память (ОЗУ) – память с произвольным доступом – это быстрое запоминающее устройство не очень большого объема, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, обрабатываемых этими программами.
Название «оперативная» память получила потому, что она работает очень быстро, так что процессору не приходится ждать при чтении данных из памяти или записи в память. Однако содержащиеся в ней данные сохраняются, пока компьютер включен; при выключении компьютера содержимое оперативной памяти стирается (за некоторыми исключениями).
ОЗУ — энергозависимая память: при отключении напряжения питания информация, хранящаяся в ней, теряется. Основу ОЗУ составляют большие интегральные схемы, содержащие матрицы полупроводниковых запоминающих элементов (триггеров). Запоминающие элементы расположены на пересечении вертикальных и горизонтальных шин матрицы; запись и считывание информации осуществляются подачей электрических импульсов по тем шинам матрицы, которые соединены с элементами, принадлежащими выбранной ячейке памяти.
Структурно основная память состоит из миллионов отдельных ячеек памяти емкостью 1 байт каждая. Общая емкость основной памяти современных ПК обычно лежит в пределах от 1 до 32 Мбайт. Емкость ОЗУ на один-два порядка превышает емкость ПЗУ: ПЗУ занимает 128 (реже 256) Кбайт, остальной объем — это ОЗУ.
Оперативная память (RAM – Random Access Memory – память с произвольным доступом) представляет собой множество ячеек, причем каждая ячейка имеет свой уникальный двоичный адрес (нумерация ячеек начинается с нуля). Каждая ячейка памяти имеет объем 1 байт, следовательно, максимальный объем адресуемой памяти для процессоров равен 4 294 967 296 байт = 4 194 304 Кбайт = 14096 Мбайт = 4 Гбайт.
Основная память в соответствии с методами доступа и адресации делится на отдельные, иногда частично или полностью перекрывающие друг друга области, имеющие общепринятые названия. В частности, укрупненно логическая структура основной памяти ПК обшей емкостью, например, 16 Мбайт представлена на рис.7.
Рис. 7. Распределение 1-Мбайтной области ОП
В качестве вторичной памяти чаще всего используются жесткие диски (hard disks).Физически они состоят из твердых пластин из металла или стекла, покрытых магнитным слоем для записи. Поверхность диска логически делится на дорожки (tracks),которые, в свою очередь, делятся на секторы.Контроллер диска определяет логику взаимодействия между устройством и компьютером.
Устройство жесткого диска показано на рис. 8.
Рис. 8. Устройство жесткого диска.
Как видно из рисунка, цилиндр— это группа вертикально расположенных друг под другом секторов различных магнитных дисков с одним и тем же номером дорожки.
Системы памяти организованы в иерархию, исходя из их быстродействия, стоимости и возможности сохранения информации (устойчивости). Для оптимизации работы памяти любого вида используется ассоциативная память (кэш – cache),размещаемая в более быстродействующих системах памяти и хранящая наиболее часто используемые элементы более медленной памяти. С этой точки зрения, оперативную память можно рассматривать как кэш для внешней памяти. Кэш-память – это, по сути дела, ассоциативный список пар (Адрес, Значение),причем аппаратный поиск в ней происходит по адресу как по ключу. Таким образом, перед обращением к медленной внешней памяти сначала происходит поиск по заданному адресу в кэш-памяти, и только если он не привел к успеху, выполняется стандартное обращение к внешней памяти. Принцип кэширования очень важен и позволяет существенно ускорить работу со внешней памятью. Однако он требует реализации специальной политики управления кэш-памятью, так как кэширование вводит дополнительный уровень в иерархии памяти и требует согласованности данных, хранимых одновременно на разных уровнях памяти. Аппаратура и ОС поддерживают кэш команд, кэш данных, кэш жесткого дискаи т.д. – для всех видов памяти.
Иерархия устройств памяти (в упрощенном виде) показана на рис. 9.
Рис. 9. Иерархия устройств памяти.
Более быстрые виды памяти на схеме расположены выше, более медленные – ниже. Схема особых комментариев не требует. Некоторые часто используемые виды внешней памяти:
— флэш-память (флэшка)– внешняя память компактного размера, модуль которой подключаются через USB-порт. Параметры: объем — до 128 гигабайт и более; скорость обмена через порт USB 2.0: 240 – 260 мегабит в секунду;
— внешний жесткий диск (ZIP driveи другие) – объем до 1 терабайта; работает также через порт USB;
— BluRay – диски– новая разновидность компакт-дисков большой емкости (односторонние – 25 гигабайт, двусторонние – 50 гигабайт). Для сравнения, стандартная емкость диска DVD составляет 4.7 гигабайт;
— Кэш-память — очень быстрое запоминающее устройство небольшого объема, которое используется при обмене данными между процессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью.
Кэш-памятью управляет специальный контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память, ( от англ.Cache — тайный склад).
Для доступа к данным существуют следующие виды адресации:
1) Непосредственная адресация
При непосредственной адресации операнд располагается непосредственно в адресном поле команды.
2) Прямая адресация;
При прямой адресации обращение к операнду производится по адресному коду в поле команды. При этом исполнительный адрес совпадает с адресом кода команды.
Рис. 10. Прямая адресация
3) Косвенная адресация
При косвенной адресации код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а его адрес, называемый указателем.
Рис. 11. Косвенная адресация.
Операционная система оперирует командами.
Команда – это описание элементарной операции, которую должен выполнить компьютер.
Машинная команда состоит из двух частей: операционной и адресной.
Операционная часть команды – это группа разрядов в команде, предназначенная для представления кода операции машины.
Адресная часть команды – это группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины, предназначенных для оперативного хранения информации, или иных объектов, задействованных при выполнении команды. Часто эти адреса называют адресами операндов, т.е. чисел, участвующих в операции.
По числу адресов, записываемых в команде, команды подразделяются на трех-, двух-, одноадресные и безадресные (рис.12).
Трехадресная команда | КОП | А1 | А2 | А3 |
Двухадресная команда | КОП | А1 | А2 |
Одноадресная команда | КОП | А1 |
Рис. 12. Виды команд.
В трехадресной команде:
al и а2 – адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции;
аЗ – адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.
В двухадресной команде:
al – это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции;
а2– обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
В одноадресной команде:
al – в зависимости от модификатора команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда следует поместить число – результат операции.
Безадресная команда содержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины (безадресные команды могут использоваться только совместно с командами другой адресности).
Команды хранятся в ячейках памяти в двоичном коде.
Выполнение команды разбивается на следующие этапы:
1) из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; при этом содержимое счетчика команд увеличивается на длину команды;
2) выбранная команда передается в устройство управления (УУ) на регистр команд;
3) устройство управления расшифровывает адресное поле команды;
4) по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
5) УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
6) результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
7) все предыдущие этапы повторяются до команды «стоп».
Память состоит из отдельных элементов, каждый из которых предназначен для хранения минимальной единицы информации – одного байта. Каждому элементу соответствует уникальный числовой адрес. Первому элементу присвоен адрес 0, второму – 1 и т. д., включая последний элемент, адрес которого определяется общим количеством элементов памяти минус единица. Обычно адрес задается шестнадцатеричным числом (в тексте шестнадцатеричные числа помечаются заглавной H например 10H).
Сегменты. Процессор компьютера делит память на блоки, называемые сегментами. Каждый сегмент занимает 64 Кбайт и каждому сегменту соответствует уникальный числовой адрес. Процессор имеет четыре регистра сегмента.Регистр – это участок сверхоперативной памяти процессора, предназначенной для хранения информации. Регистры сегмента предназначены для хранения адресов отдельных сегментов. Они называются CS (сегмент кода), DS (сегмент данных), SS (сегмент стека) и ES (запасной сегмент).
Кроме указанных, процессор имеет еще 9 регистров, а именно – регистры IP (указатель команды) и SP (указатель стека). Регистры CS и IP в паре составляют длинный адрес команды, которая будет выполняться следующей. Регистры SS и SP в паре составляют длинный адрес стека.
Доступ к памяти. Доступ к ячейкам памяти осуществляется посредством соединения содержимого регистра сегмента с содержимым того или другого регистра. Таким образом, определяется адрес требуемого участка памяти. Например, адрес следующей команды определяется содержимым регистров CS и IP (записывается «CS:IP»). После выполнения команды и ее удаления из памяти содержимое IP изменяется так, чтобы в регистрах CS IP находился адрес команды, которая будет выполнена после данной.
Способ объединения регистров для определения адреса ячейки памяти не накладывает ограничений на количество доступной памяти.
Сегментные регистры. Сегментные регистры используются при идентификации сегмента памяти. Сегментные регистры применяются в комбинации с регистром указателя или индексными регистрами и в этом случае идентифицируют конкретную ячейку памяти.
Всего сегментных регистра четыре. Регистр CS обычно используется при идентификации блока памяти, в котором хранится код программы. Регистр DS– при идентификации участка памяти, в котором находятся данные этой программы. С помощью регистра SS организуется доступ к стеку. (Стек – это временно выделенная область памяти,) Регистр ES – дополнительный (или запасной) сегментный регистр. На него возложены разнообразные функции, часть из которых рассматривается ниже.
Регистры стека. Имеются два регистра стека. Они применяются в комбинации с регистром SS и определяют местонахождение стека. Регистр SP называется указателем начала стека и в комбинации с регистром SS идентифицирует первый байт стека. Регистр BP называется указателем базы стека и в комбинации с регистром SS идентифицирует последний байт стека.
Индексные регистры. Индексных регистров тоже два. Регистры SI и DI применяются в комбинации с одним из сегментных регистров и определяют местонахождение конкретной ячейки памяти. Регистр si обычно комбинируют с регистром ds, регистр di – с регистром es.
Регистры общего назначения. К регистрам общего назначения (их четыре) относятся регистры ах, вх, сх и dx. Это многофункциональные регистры.
Регистр указателя команды. Регистр IP обычно применяется в комбинации с регистром CS и определяет адрес следующей команды.
Регистр флагов состояния. В регистре флагов обычно находятся девять флагов состояния процессора (каждый флаг занимает 1 бит). Эти флаги определяют результат конкретных операций, выполняемых под управлением OS.
Регистры памяти. Регистр памяти включает 2 байта данных (или 16 битов). Реально регистры общего назначения однобайтовые. Так, регистр ах включает регистр АН (который составляет старший байт регистра ах) и регистр AL (который составляет младший байт регистра ах). Аналогично регистры вн, BL, сн, CL, DH и dl – однобайтовые.
ОС поддерживает мультипрограммирование и старается эффективно использовать ресурсы, путем организации к ним очередей запроса, которые составляются тем или иным способом. Это требование достигается содержанием в памяти более одного процесса ожидающего процессор и более одного процесса готового использовать другие ресурсы. Общая схема выделения ресурсов такова: при необходимости использовать какой-либо ресурс, ОЗУ, устройство ввода/вывода процесс обращается к супервизору ОС. Супервизор ОС – центральный управляющий модуль ОС, который может состоять из нескольких модулей например, супервизор ввода/вывода, супервизор прерываний, супервизор программ, диспетчер задач и т. п.
Задача посредством специальных вызовов команд или директив сообщает о своем требовании супервизору ОС, при этом указывается вид ресурса и если надо его объем. Директива обращения к ОС передает ей управление, переводя процессор в привилегированный режим работы (если такой существует).
Не все ОС имеют 2 режима работы. Режимы работы бывают привилегированными (режим супервизора), пользовательскими, режим эмуляции.
Ресурс может быть выдан задаче по ее запросу если:
1. Ресурс свободен и в системе нет запросов от задач более высокого приоритета к этому ресурсу.
2. Текущий запрос и ранее полуученый запросы допускают совместное использование ресурса.
3. Ресурс используется задачей более низкого приоритета и может быть временно отобран.
Получив запрос, ОС либо удовлетворяет его и возвращает управление задаче, выдавшей сей запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу. Переводя задачу в состояние ожидания (блокируя) очередь к ресурсу может быть организована несколькими способами. Но чаще всего с помощью специальной структуры. После окончания работы с ресурсом задача опять с помощью специального вызова супервизора сообщает ОС об отказе от ресурса, или ОС забирает ресурс сама, если управление возвращается к супервизору после выполнения какой-либо системной функции.
НОУ ИНТУИТ | Лекция | Организация памяти компьютера. Простейшие схемы управления памятью
Аннотация: В настоящей лекции рассматриваются простейшие способы управления памятью в ОС. Физическая память компьютера имеет иерархическую структуру. Программа представляет собой набор сегментов в логическом адресном пространстве. ОС осуществляет связывание логических и физических адресных пространств.
Введение
Главная задача компьютерной системы – выполнять программы. Программы вместе с данными, к которым они имеют доступ, в процессе выполнения должны (по крайней мере частично) находиться в оперативной памяти. Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и компонентами ОС. Эта деятельность называется управлением памятью. Таким образом, память (storage, memory) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память была самым дорогим ресурсом.
Часть ОС, которая отвечает за управление памятью, называется менеджером памяти.
Физическая организация памяти компьютера
Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную, оперативную, физическую ) и вторичную (внешнюю) память.
Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти. Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов. В отличие от оперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти.
Эту схему можно дополнить еще несколькими промежуточными уровнями, как показано на рис. 8.1. Разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости.
Рис.
8.1.
Иерархия памяти
Многоуровневую схему используют следующим образом. Информация, которая находится в памяти верхнего уровня, обычно хранится также на уровнях с большими номерами. Если процессор не обнаруживает нужную информацию на i-м уровне, он начинает искать ее на следующих уровнях. Когда нужная информация найдена, она переносится в более быстрые уровни.
Локальность
Оказывается, при таком способе организации по мере снижения скорости доступа к уровню памяти снижается также и частота обращений к нему.
Ключевую роль здесь играет свойство реальных программ, в течение ограниченного отрезка времени способных работать с небольшим набором адресов памяти. Это эмпирически наблюдаемое свойство известно как принцип локальности или локализации обращений.
Свойство локальности (соседние в пространстве и времени объекты характеризуются похожими свойствами) присуще не только функционированию ОС, но и природе вообще. В случае ОС свойство локальности объяснимо, если учесть, как пишутся программы и как хранятся данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Эту часть кода и данных удается разместить в памяти с быстрым доступом. В результате реальное время доступа к памяти определяется временем доступа к верхним уровням, что и обусловливает эффективность использования иерархической схемы. Надо сказать, что описываемая организация вычислительной системы во многом имитирует деятельность человеческого мозга при переработке информации. Действительно, решая конкретную проблему, человек работает с небольшим объемом информации, храня не относящиеся к делу сведения в своей памяти или во внешней памяти (например, в книгах).
Кэш процессора обычно является частью аппаратуры, поэтому менеджер памяти ОС занимается распределением информации главным образом в основной и внешней памяти компьютера. В некоторых схемах потоки между оперативной и внешней памятью регулируются программистом (см. например, далее оверлейные структуры ), однако это связано с затратами времени программиста, так что подобную деятельность стараются возложить на ОС.
Адреса в основной памяти, характеризующие реальное расположение данных в физической памяти, называются физическими адресами. Набор физических адресов, с которым работает программа, называют физическим адресным пространством.
Логическая память
Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.
Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранятся программы и данные, называется сегментацией. Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация. Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа.
По-видимому, вначале сегменты памяти появились в связи с необходимостью обобществления процессами фрагментов программного кода (текстовый редактор, тригонометрические библиотеки и т. д.), без чего каждый процесс должен был хранить в своем адресном пространстве дублирующую информацию. Эти отдельные участки памяти, хранящие информацию, которую система отображает в память нескольких процессов, получили название сегментов. Память, таким образом, перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номер сегмента, смещение внутри сегмента. Далее оказалось удобным размещать в разных сегментах различные компоненты процесса (код программы, данные, стек и т. д.). Попутно выяснилось, что можно контролировать характер работы с конкретным сегментом, приписав ему атрибуты, например права доступа или типы операций, которые разрешается производить с данными, хранящимися в сегменте.
Рис.
8.2.
Расположение сегментов процессов в памяти компьютера
Некоторые сегменты, описывающие адресное пространство процесса, показаны на рис. 8.2. Более подробная информация о типах сегментов имеется в лекции 10.
Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием.
Адреса, к которым обращается процесс, таким образом, отличаются от адресов, реально существующих в оперативной памяти. В каждом конкретном случае используемые программой адреса могут быть представлены различными способами. Например, адреса в исходных текстах обычно символические. Компилятор связывает эти символические адреса с перемещаемыми адресами (такими, как n байт от начала модуля). Подобный адрес, сгенерированный программой, обычно называют логическим (в системах с виртуальной памятью он часто называется виртуальным) адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством.
Связывание адресов
Итак логические и физические адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора (например, 232) и в современных системах значительно превышает размер физического адресного пространства. Следовательно, процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти. Такое отображение адресов называют трансляцией (привязкой) адреса или связыванием адресов (см. рис. 8.3).
Связывание логического адреса, порожденного оператором программы, с физическим должно быть осуществлено до начала выполнения оператора или в момент его выполнения. Таким образом, привязка инструкций и данных к памяти в принципе может быть сделана на следующих шагах [Silberschatz, 2002].
- Этап компиляции (Compile time). Когда на стадии компиляции известно точное место размещения процесса в памяти, тогда непосредственно генерируются физические адреса. При изменении стартового адреса программы необходимо перекомпилировать ее код. В качестве примера можно привести .com программы MS-DOS, которые связывают ее с физическими адресами на стадии компиляции.
- Этап загрузки (Load time). Если информация о размещении программы на стадии компиляции отсутствует, компилятор генерирует перемещаемый код. В этом случае окончательное связывание откладывается до момента загрузки. Если стартовый адрес меняется, нужно всего лишь перезагрузить код с учетом измененной величины.
- Этап выполнения (Execution time). Если процесс может быть перемещен во время выполнения из одной области памяти в другую, связывание откладывается до стадии выполнения. Здесь желательно наличие специализированного оборудования, например регистров перемещения. Их значение прибавляется к каждому адресу, сгенерированному процессом. Большинство современных ОС осуществляет трансляцию адресов на этапе выполнения, используя для этого специальный аппаратный механизм (см. лекцию 9).
Рис.
8.3.
Формирование логического адреса и связывание логического адреса с физическим
НОУ ИНТУИТ | Лекция | Организация памяти компьютера. Простейшие схемы управления памятью
Аннотация: В настоящей лекции рассматриваются простейшие способы управления памятью в ОС. Физическая память компьютера имеет иерархическую структуру. Программа представляет собой набор сегментов в логическом адресном пространстве. ОС осуществляет связывание логических и физических адресных пространств.
Введение
Главная задача компьютерной системы – выполнять программы. Программы вместе с данными, к которым они имеют доступ, в процессе выполнения должны (по крайней мере частично) находиться в оперативной памяти. Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и компонентами ОС. Эта деятельность называется управлением памятью. Таким образом, память (storage, memory) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память была самым дорогим ресурсом.
Часть ОС, которая отвечает за управление памятью, называется менеджером памяти.
Физическая организация памяти компьютера
Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную, оперативную, физическую ) и вторичную (внешнюю) память.
Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти. Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов. В отличие от оперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти.
Эту схему можно дополнить еще несколькими промежуточными уровнями, как показано на рис. 8.1. Разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости.
Рис.
8.1.
Иерархия памяти
Многоуровневую схему используют следующим образом. Информация, которая находится в памяти верхнего уровня, обычно хранится также на уровнях с большими номерами. Если процессор не обнаруживает нужную информацию на i-м уровне, он начинает искать ее на следующих уровнях. Когда нужная информация найдена, она переносится в более быстрые уровни.
Локальность
Оказывается, при таком способе организации по мере снижения скорости доступа к уровню памяти снижается также и частота обращений к нему.
Ключевую роль здесь играет свойство реальных программ, в течение ограниченного отрезка времени способных работать с небольшим набором адресов памяти. Это эмпирически наблюдаемое свойство известно как принцип локальности или локализации обращений.
Свойство локальности (соседние в пространстве и времени объекты характеризуются похожими свойствами) присуще не только функционированию ОС, но и природе вообще. В случае ОС свойство локальности объяснимо, если учесть, как пишутся программы и как хранятся данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Эту часть кода и данных удается разместить в памяти с быстрым доступом. В результате реальное время доступа к памяти определяется временем доступа к верхним уровням, что и обусловливает эффективность использования иерархической схемы. Надо сказать, что описываемая организация вычислительной системы во многом имитирует деятельность человеческого мозга при переработке информации. Действительно, решая конкретную проблему, человек работает с небольшим объемом информации, храня не относящиеся к делу сведения в своей памяти или во внешней памяти (например, в книгах).
Кэш процессора обычно является частью аппаратуры, поэтому менеджер памяти ОС занимается распределением информации главным образом в основной и внешней памяти компьютера. В некоторых схемах потоки между оперативной и внешней памятью регулируются программистом (см. например, далее оверлейные структуры ), однако это связано с затратами времени программиста, так что подобную деятельность стараются возложить на ОС.
Адреса в основной памяти, характеризующие реальное расположение данных в физической памяти, называются физическими адресами. Набор физических адресов, с которым работает программа, называют физическим адресным пространством.
Логическая память
Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.
Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранятся программы и данные, называется сегментацией. Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация. Сегменты содержат процедуры, массивы, стек или скалярные величины, но обычно не содержат информацию смешанного типа.
По-видимому, вначале сегменты памяти появились в связи с необходимостью обобществления процессами фрагментов программного кода (текстовый редактор, тригонометрические библиотеки и т. д.), без чего каждый процесс должен был хранить в своем адресном пространстве дублирующую информацию. Эти отдельные участки памяти, хранящие информацию, которую система отображает в память нескольких процессов, получили название сегментов. Память, таким образом, перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номер сегмента, смещение внутри сегмента. Далее оказалось удобным размещать в разных сегментах различные компоненты процесса (код программы, данные, стек и т. д.). Попутно выяснилось, что можно контролировать характер работы с конкретным сегментом, приписав ему атрибуты, например права доступа или типы операций, которые разрешается производить с данными, хранящимися в сегменте.
Рис.
8.2.
Расположение сегментов процессов в памяти компьютера
Некоторые сегменты, описывающие адресное пространство процесса, показаны на рис. 8.2. Более подробная информация о типах сегментов имеется в лекции 10.
Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием.
Адреса, к которым обращается процесс, таким образом, отличаются от адресов, реально существующих в оперативной памяти. В каждом конкретном случае используемые программой адреса могут быть представлены различными способами. Например, адреса в исходных текстах обычно символические. Компилятор связывает эти символические адреса с перемещаемыми адресами (такими, как n байт от начала модуля). Подобный адрес, сгенерированный программой, обычно называют логическим (в системах с виртуальной памятью он часто называется виртуальным) адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством.
Связывание адресов
Итак логические и физические адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора (например, 232) и в современных системах значительно превышает размер физического адресного пространства. Следовательно, процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти. Такое отображение адресов называют трансляцией (привязкой) адреса или связыванием адресов (см. рис. 8.3).
Связывание логического адреса, порожденного оператором программы, с физическим должно быть осуществлено до начала выполнения оператора или в момент его выполнения. Таким образом, привязка инструкций и данных к памяти в принципе может быть сделана на следующих шагах [Silberschatz, 2002].
- Этап компиляции (Compile time). Когда на стадии компиляции известно точное место размещения процесса в памяти, тогда непосредственно генерируются физические адреса. При изменении стартового адреса программы необходимо перекомпилировать ее код. В качестве примера можно привести .com программы MS-DOS, которые связывают ее с физическими адресами на стадии компиляции.
- Этап загрузки (Load time). Если информация о размещении программы на стадии компиляции отсутствует, компилятор генерирует перемещаемый код. В этом случае окончательное связывание откладывается до момента загрузки. Если стартовый адрес меняется, нужно всего лишь перезагрузить код с учетом измененной величины.
- Этап выполнения (Execution time). Если процесс может быть перемещен во время выполнения из одной области памяти в другую, связывание откладывается до стадии выполнения. Здесь желательно наличие специализированного оборудования, например регистров перемещения. Их значение прибавляется к каждому адресу, сгенерированному процессом. Большинство современных ОС осуществляет трансляцию адресов на этапе выполнения, используя для этого специальный аппаратный механизм (см. лекцию 9).
Рис.
8.3.
Формирование логического адреса и связывание логического адреса с физическим
Компьютерная память — Национальная библиотека им. Н. Э. Баумана
Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:57, 24 августа 2017.
Компьютерная память (устройство хранения информации, запоминающее устройство) — часть вычислительной машины, физическое устройство или среда для хранения данных, используемых в вычислениях, в течение определённого времени. Память, как и центральный процессор, является неизменной частью компьютера с 1940-х. Память в вычислительных устройствах имеет иерархическую структуру и обычно предполагает использование нескольких запоминающих устройств, имеющих различные характеристики.
В персональных компьютерах «памятью» часто называют один из её видов — динамическая память с произвольным доступом DRAM (Dynamic Random Access Memory), — которая в настоящее время используется в качестве ОЗУ персонального компьютера.
Задачей компьютерной памяти является хранение в своих ячейках состояния внешнего воздействия, запись информации. Эти ячейки могут фиксировать самые разнообразные физические воздействия. Они функционально аналогичны обычному электромеханическому переключателю и информация в них записывается в виде двух чётко различимых состояний — 0 и 1 («выключено»/«включено»). Специальные механизмы обеспечивают доступ (считывание, произвольное или последовательное) к состоянию этих ячеек.
Процесс доступа к памяти разбит на разделённые во времени процессы — операцию записи (сленг. прошивка, в случае записи ПЗУ) и операцию чтения, во многих случаях эти операции происходят под управлением отдельного специализированного устройства — контроллера памяти.
Также различают операцию стирания памяти — занесение (запись) в ячейки памяти одинаковых значений, обычно 0016 или FF16.
Наиболее известные запоминающие устройства, используемые в персональных компьютерах: модули оперативной памяти (ОЗУ), жёсткие диски(винчестеры), дискеты (гибкие магнитные диски), CD- или DVD-диски, а также устройства флеш-памяти.
Функции памяти
Компьютерная память обеспечивает поддержку одной из функций современного компьютера, — способность длительного хранения информации. Вместе с центральным процессором запоминающее устройство являются ключевыми звеньями так называемой архитектуры фон Неймана, — принципа, заложенного в основу большинства современных компьютеров общего назначения.
Первые компьютеры использовали запоминающие устройства исключительно для хранения обрабатываемых данных. Их программы реализовывались на аппаратном уровне в виде жёстко заданных выполняемых последовательностей. Любое перепрограммирование требовало огромного объёма ручной работы по подготовке новой документации, перекоммутации, перестройки блоков и устройств и т. д. Использование архитектуры фон Неймана, предусматривающей хранение компьютерных программ и данных в общей памяти, коренным образом переменило ситуацию.
Любая информация может быть измерена в битах и потому, независимо от того, на каких физических принципах и в какой системе счисления функционирует цифровой компьютер (двоичной, троичной, десятичной и т. п.), числа, текстовая информация, изображения, звук, видео и другие виды данных можно представить последовательностями битовых строк или двоичными числами. Это позволяет компьютеру манипулировать данными при условии достаточной ёмкости системы хранения (например, для хранения текста романа среднего размера необходимо около одного мегабайта).
К настоящему времени создано множество устройств, предназначенных для хранения данных, основанных на использовании самых разных физических эффектов. Универсального решения не существует, у каждого имеются свои достоинства и свои недостатки, поэтому компьютерные системы обычно оснащаются несколькими видами систем хранения, основные свойства которых обуславливают их использование и назначение.
Физические основы функционирования
В основе работы запоминающего устройства может лежать любой физический эффект, обеспечивающий приведение системы к двум или более устойчивым состояниям. В современной компьютерной технике часто используются физические свойства полупроводников, когда прохождение тока через полупроводник или его отсутствие трактуются как наличие логических сигналов 0 или 1. Устойчивые состояния, определяемые направлением намагниченности, позволяют использовать для хранения данных разнообразные магнитные материалы. Наличие или отсутствие заряда в конденсаторе также может быть положено в основу системы хранения. Отражение или рассеяние света от поверхности CD, DVD или Blu-ray-диска также позволяет хранить информацию.
НЖМД объёмом 44 Мб 1980-х годов выпуска и CompactFlash на 2 Гб 2000-х годов выпуска
Устройство хранения информации на флеш-памяти
Классификация типов памяти
Следует различать классификацию памяти и классификацию запоминающих устройств (ЗУ). Первая классифицирует память по функциональности, вторая же — по технической реализации. Здесь рассматривается первая — таким образом, в неё попадают как аппаратные виды памяти (реализуемые на ЗУ), так и структуры данных, реализуемые в большинстве случаев программно.
Доступные операции с данными
- Память только для чтения (read-only memory, ROM)
- Память для чтения/записи
Память на программируемых и перепрограммируемых ПЗУ (ППЗУ и ПППЗУ) не имеет общепринятого места в этой классификации. Её относят либо к подвиду памяти «только для чтения», либо выделяют в отдельный вид.
Также предлагается относить память к тому или иному виду по характерной частоте её перезаписи на практике: к RAM относить виды, в которых информация часто меняется в процессе работы, а к ROM — предназначенные для хранения относительно неизменных данных.
Энергозависимость
- Энергонезависимая память (англ. nonvolatile storage) — память, реализованная ЗУ, записи в которых не стираются при снятии электропитания. К этому типу памяти относятся все виды памяти на ПЗУ и ППЗУ;
- Энергозависимая память (англ. volatile storage) — память, реализованная ЗУ, записи в которых стираются при снятии электропитания. К этому типу памяти относятся память, реализованная на ОЗУ, кэш-память.
- Статическая память (англ. static storage) — энергозависимая память, которой для хранения информации достаточно сохранения питающего напряжения;
- Динамическая память (англ. dynamic storage) — энергозависимая память, в которой информация со временем разрушается (деградирует), и, кроме подачи электропитания, необходимо производить её периодическое восстановление (регенерацию).
Метод доступа
- Последовательный доступ (англ. sequential access memory, SAM) — ячейки памяти выбираются (считываются) последовательно, одна за другой, в очерёдности их расположения. Вариант такой памяти — стековая память.
- Произвольный доступ (англ. random access memory, RAM) — вычислительное устройство может обратиться к произвольной ячейке памяти по любому адресу.
Назначение
- Буферная память (англ. buffer storage) — память, предназначенная для временного хранения данных при обмене ими между различными устройствами или программами.
- Временная (промежуточная) память (англ. temporary (intermediate) storage) — память для хранения промежуточных результатов обработки.
- Кеш-память (англ. cache memory) — часть архитектуры устройства или программного обеспечения, осуществляющая хранение часто используемых данных для предоставления их в более быстрый доступ, нежели кешируемая память.
- Корректирующая память (англ. patch memory) — часть памяти ЭВМ, предназначенная для хранения адресов неисправных ячеек основной памяти. Также используются термины relocation table и remap table.
- Управляющая память (англ. control storage) — память, содержащая управляющие программы или микропрограммы. Обычно реализуется в виде ПЗУ.
Разделяемая память или память коллективного доступа (англ. shared memory, shared access memory) — память, доступная одновременно нескольким пользователям, процессам или процессорам.
Организация адресного пространства
- Реальная или физическая память (англ. real (physical) memory) — память, способ адресации которой соответствует физическому расположению её данных;
- Виртуальная память (англ. virtual memory) — память, способ адресации которой не отражает физического расположения её данных;
- Оверлейная память (англ. overlayable storage) — память, в которой присутствует несколько областей с одинаковыми адресами, из которых в каждый момент доступна только одна.
Удалённость и доступность для процессора
Первичная память (сверхоперативная, СОЗУ) — доступна процессору без какого-либо обращения к внешним устройствам. Данная память отличается крайне малым временем доступа и тем, что неадресуема для программиста.
регистры процессора (процессорная или регистровая память) — регистры, расположенные непосредственно в АЛУ;
кэш процессора — кэш, используемый процессором для уменьшения среднего времени доступа к компьютерной памяти. Разделяется на несколько уровней, различающихся скоростью и объёмом (например, L1, L2, L3).
Вторичная память — доступна процессору путём прямой адресацией через шину адреса (адресуемая память). Таким образом доступна основная память (память, предназначенная для хранения текущих данных и выполняемых программ) и порты ввода-вывода (специальные адреса, через обращение к которым реализовано взаимодействие с прочей аппаратурой).
Третичная память — доступна только путём нетривиальной последовательности действий. Сюда входят все виды внешней памяти — доступной через устройства ввода-вывода. Взаимодействие с третичной памятью ведётся по определённым правилам (протоколам) и требует присутствия в памяти соответствующих программ. Программы, обеспечивающие минимально необходимое взаимодействие, помещаются в ПЗУ, входящее во вторичную память (у PC-совместимых ПК — это ПЗУ BIOS).
Положение структур данных, расположенных в основной памяти, в этой классификации неоднозначно. Как правило, их вообще в неё не включают, выполняя классификацию с привязкой к традиционно используемым видам ЗУ.
Управление процессором
Непосредственно управляемая (оперативно доступная) память (англ. on-line storage) — память, непосредственно доступная в данный момент времени центральному процессору.
Автономная память — память, реализованная, например при помощи службы внешних носителей в Windows 2000, предусматривающей оперативное управление библиотеками носителей и устройствами с автоматической подачей дисков, облегчающей использование съёмных носителей типа магнитных лент и съёмных дисков, магнитных или оптических.
Организация хранения данных и алгоритмы доступа к ним
Повторяет классификацию структур данных:
- Адресуемая память — адресация осуществляется по местоположению данных.
- Ассоциативная память (англ. associative memory, content-addressable memory, CAM) — адресация осуществляется по содержанию данных, а не по их местоположению.
- Магазинная (стековая) память (англ. pushdown storage) — реализация стека.
- Матричная память (англ. matrix storage) — ячейки памяти расположены так, что доступ к ним осуществляется по двум или более координатам.
- Объектная память (англ. object storage) — память, система управления которой ориентирована на хранение объектов. При этом каждый объект характеризуется типом и размером записи.
- Семантическая память (англ. semantic storage) — данные размещаются и списываются в соответствии с некоторой структурой понятийных признаков.
Физические принципы
Эта классификация повторяет соответствующую классификацию ЗУ.
Вид | Среда, хранящая информацию | Принцип чтения/записи | Примеры |
---|---|---|---|
Полупроводниковая память (англ. semiconductor storage) | сформированные в полупроводнике элементы, имеющие 2 устойчивых состояния с различными электрическими параметрами | включение в электрическую цепь | SRAM, DRAM, EEPROM, Flash-память |
Магнитная память (англ. magnetic storage) | Намагниченность участков ферромагнитного материала (доменов) | Магнитная запись | Магнитная лента, магнитный диск, магнитная карта |
Оптическая память (англ. optical storage, laser storage) | последовательность участков (питов), отражающих или рассеивающих свет | чтение: отражение либо рассеяние лазерного луча от питов;запись: точечный нагрев, изменяющий свойства отражающего слоя | CD-диск, DVD, Blu-ray, HD DVD |
Магнитооптическая память (англ. magnetooptics storage) | показатель преломления участков информационного слоя | чтение: преломление и отражение луча лазера запись: точечный нагрев и электромагнитный импульс | CD-MO, Fujitsu DynaMO |
Магниторезистивная память с произвольным доступом (англ. Spin Torque Transfer Random Access Memory, STT-RAM) | магнитные домены | В STT-RAM электрическое поле воздействует на микромагниты, заставляя их менять направление магнитного поля (спин). В свою очередь направление магнитного поля (справа — налево или сверху — вниз) вызывает изменение в сопротивлении (логические 0 и 1). | MRAM |
Память с изменением фазового состояния | молекулы халькогенида | использует изменение фазового состояния халькогенида — вещества, способного под воздействием нагрева и электрических полей переходить из непроводящего аморфного состояния (1) в проводящее кристаллическое (0). В ней применены диоды вертикального типа и трехмерная кристаллическая структура. Не требует предварительного удаления старых данных перед записью новых, не требует электропитания для сохранения своего состояния[1] | PRAM |
Ёмкостная память (англ. capacitor storage) | молекулы халькогенида (chalcogenide) | подача электрического напряжения на обкладки | DRAM |
Разновидности полупроводниковой памяти
- NOR
- NAND
- NVRAM
- SRAM
- DRAM
- FB-DIMM
- EEPROM
- Flash
Разновидности магнитной памяти
- Память на магнитной ленте (англ. magnetic tape memory) — представляет собой пластиковую узкую ленту с магнитным покрытием и механизм с блоком головок записи-воспроизведения (БГЗВ). Лента намотана на бобину, и последовательно протягивается лентопротяжным механизмом (ЛПМ) возле БГЗВ. Запись производится перемагничиванием частиц магнитного слоя ленты при прохождении их возле зазора головки записи. Считывание записанной информации происходит при прохождении намагниченного ранее участка плёнки возле зазора головки воспроизведения.
- Память на магнитных дисках (англ. magnetic disk memory) — представляет собой круглый пластиковый диск с магнитным покрытием и механизм с БГЗВ. Данные при этом наносятся радиально, при вращении диска вокруг своей оси и радиальном сдвиге БГЗВ на шаг головки. Запись производится перемагничиванием частиц магнитного слоя диска при прохождении их возле зазора головки записи. Считывание записанной информации происходит при прохождении намагниченного ранее участка возле зазора головки воспроизведения.
- Память на магнитной проволоке (англ. plated wire memory) Использовалась в магнитофонах до магнитной ленты. В настоящее время по этому принципу конструируется большинство авиационных т. н. «чёрных ящиков» — данный носитель имеет наиболее высокую устойчивость к внешним воздействиям и высокую сохранность даже при повреждениях в аварийных ситуациях.
- Ферритовая память (англ. core storage) — ячейка представляет собой ферритовый сердечник, изменение состояния которого (перемагничивание) происходит при пропускании тока через намотанный на него проводник. В настоящее время имеет ограниченное применение, в основном в военной сфере.
Разновидности оптической памяти
Фазоинверсная память (англ. Phase Change Rewritable storage, PCR) — оптическая память, в которой рабочий (отражающий) слой выполнен из полимерного вещества, способного при нагреве менять фазовое состояние (кристаллическое↔аморфное) и отражающие характеристики в зависимости от режима нагрева. Применяется в перезаписываемых оптических дисках (CD-RW, DVD-RW).
Редко используемые, устаревшие и экспериментальные виды
Вид | Описание |
---|---|
Акустическая память | использует замкнутые акустические линии задержки |
Запоминающая электронно-лучевая трубка | Использует свойство вторичной эмиссии люминофора |
Трековая память | базируется на открытых не так давно спинтронных эффектах, в частности на использовании спинового тока для перемещения наноразмерных магнитных объектов — доменных стенок — в пределах магнитных нанопроволок. Под действием такого тока доменные стенки бегут друг за другом по этой проволоке, словно бегуны по спринтерской дорожке (треку)[2] |
Голографическая память | использует пространственную графическую информацию, отображаемую в виде интерференционных структур |
Криогенная память | использует сверхпроводящие материалы |
Сегнетоэлектрическая память | Статическая оперативная память с произвольным доступом, ячейки которой сохраняют информацию, используя сегнетоэлектрический эффект. Исследованиями в этом направлении занимаются фирмы Hitachi совместно с Ramtron, Matsushita с фирмой Symetrix. По сравнению с флеш-памятью, ячейки FRAM практически не деградируют — гарантируется до {10}^{10} циклов перезаписи |
Молекулярная память | Использует технологию атомной туннельной микроскопии. Носителями информации являются специальные виды плёнок. Головки, считывающие данные, сканируют поверхность плёнки. Их чувствительность позволяет определять наличие или отсутствие в молекулах отдельных атомов, на чём и основан принцип записи-считывания данных. В середине 1999 года эта технология была продемонстрирована компанией Nanochip. В основе архитектуры устройств записи-считывания лежит технология MARE (Molecular Array Read-Write Engine). Были достигнуты следующие показатели по плотности упаковки: около 40 Гбит/см² в устройствах чтения/записи и 128 Гбит/см² в устройствах с однократной записью, что в 6 раз превосходило тогдашние экспериментальные образцы магнитных дисков и более чем в 25 раз — серийные модели. Достигнутая на 2008 год скорость записи и чтения не позволяет говорить о массовом применении этой технологии |
Электростатическая память | Носителями данных являются накопленные заряды статического электричества на поверхности диэлектрика. |
Примечание
- ↑ PRAM — «совершенная» память от Samsung [Электронный ресурс] : Daily Digital Digest : — Режим доступа: http://www.3dnews.ru/185033
- ↑ Элементы — новости науки: Магнитная память «на беговой дорожке»: быстро, дешево и надежно [Электронный ресурс] : Элементы большой науки: — Режим доступа: http://elementy.ru/news/430720?page_design=print
SAM D21 Архитектура памяти — Справка разработчика
Переключить навигацию
- Инструменты разработки
- Какие инструменты мне нужны?
- Программные средства
- Начни здесь
- MPLAB® X IDE
- Начни здесь
- Установка
- Введение в среду разработки MPLAB X
- Переход на MPLAB X IDE
- Переход с MPLAB IDE v8
- Переход с Atmel Studio
- Конфигурация
- Плагины
- Пользовательский интерфейс
- Проектов
- файлов
- Редактор
- Редактор
- Интерфейс и ярлыки
- Основные задачи
- Внешний вид
- Динамическая обратная связь
- Навигация
- Поиск, замена и рефакторинг
- Инструменты повышения производительности
- Инструменты повышения производительности
- Автоматическое форматирование кода
- Список задач
- Сравнение файлов (разница)
- Создать документацию
- Управление окнами
- Сочетания клавиш
- Отладка
- Контроль версий
- Автоматизация
- Язык управления стимулами (SCL)
- Отладчик командной строки (MDB)
- Создание сценариев IDE с помощью Groovy
- Поиск и устранение неисправностей
- Работа вне MPLAB X IDE
- Прочие ресурсы
- Улучшенная версия MPLAB Xpress
- MPLAB Xpress
- MPLAB IPE
- Программирование на C
- Компиляторы MPLAB® XC
- Начни здесь
- Компилятор MPLAB® XC8
- Компилятор MPLAB XC16
- Компилятор MPLAB XC32
- Компилятор MPLAB XC32 ++
- MPLAB
Охват кода
- Компилятор IAR C / C ++
- Конфигуратор кода MPLAB (MCC)
- Гармония MPLAB v2
- Гармония MPLAB v3
- среда разработки Atmel® Studio
- Atmel СТАРТ (ASF4)
- Advanced Software Framework v3 (ASF3)
- Начни здесь
- ASF3 Учебники
- ASF Audio Sine Tone Учебное пособие
- Интерфейс ЖК-дисплея с SAM L22 MCU Учебное пособие
- Блоки устройств MPLAB® для Simulink®
- Утилиты
- FPGA
- Аналоговый симулятор MPLAB® Mindi ™
Инструменты проектирования
- Аппаратные средства
- Начни здесь
- Сравнение аппаратных средств
- Средства отладки и память устройства
- Исполнительный отладчик
- Демо-платы и стартовые наборы
- Внутрисхемный эмулятор MPLAB® REAL ICE ™
- Эмулятор SAM-ICE JTAG
- Atmel® ICE
- Power Debugger
- Внутрисхемный отладчик MPLAB® ICD 3
- Внутрисхемный отладчик MPLAB® ICD 4
- PICkit ™ 3
- Внутрисхемный отладчик MPLAB® PICkit ™ 4
- MPLAB® Snap
- MPLAB PM3 Универсальный программатор устройств
- Принадлежности
- Заголовки эмуляции и пакеты расширения эмуляции
- Пакеты расширения процессора и отладочные заголовки
- Начни здесь
- PEP и отладочных заголовков
- Требуемый список заголовков отладки
- Таблица обязательных отладочных заголовков
- AC162050, AC162058
- AC162052, AC162055, AC162056, AC162057
- AC162053, AC162054
- AC162059, AC162070, AC162096
- AC162060
- AC162061
- AC162066
- AC162083
- AC244023, AC244024
- AC244028
- AC244045
- AC244051, AC244052, AC244061
- AC244062
- Необязательный список заголовков отладки
- Дополнительный список заголовков отладки — устройства PIC12 / 16
- Дополнительный список заголовков отладки — устройства PIC18
- Дополнительный список заголовков отладки — Устройства PIC24
- Целевые следы заголовка отладки
- Отладочные подключения заголовков
Обзор
- SEGGER J-Link
- K2L Сетевые инструментальные решения
- Рекомендации по проектированию средств разработки
- Ограничения отладки — микроконтроллеры PIC
- Инженерно-технические примечания (ETN) [[li]] Встраиваемые платформы chipKIT ™
Внутрисхемный эмулятор
Внутрисхемный отладчик
- Проектов
- Начни здесь
- Преобразование мощности
- AN2039 Четырехканальный секвенсор питания PIC16F1XXX
- 8-битные микроконтроллеры PIC®
- 8-битные микроконтроллеры AVR®
- 16-битные микроконтроллеры PIC®
- 32-битные микроконтроллеры SAM
- 32-разрядные микропроцессоры SAM
- Разработка приложений SAM MPU с MPLAB X IDE
- SAM MPU
Примеры пакетов программного обеспечения
- Запланировано дополнительное содержание…
- Продукты
- 8-битные микроконтроллеры PIC
- 8-битные микроконтроллеры AVR
- Начни здесь
- 8-битные периферийные устройства AVR®
- Осциллятор
- USART
- прерываний
- аналоговый компаратор и опорное напряжение
- Таймер / счетчики
- Внутренний датчик температуры
- Работа с низким энергопотреблением
- Сброс источников
- Начало работы с микроконтроллерами AVR®
- Использование микроконтроллеров AVR® с Atmel START
- Запланировано дополнительное содержание…
Структура 8-битного микроконтроллера AVR®
- 16-битные микроконтроллеры PIC и dsPIC DSC
- 32-битные микроконтроллеры
.Карта памяти
— Справка разработчика
Переключить навигацию
- Инструменты разработки
- Какие инструменты мне нужны?
- Программные средства
- Начни здесь
- MPLAB® X IDE
- Начни здесь
- Установка
- Введение в среду разработки MPLAB X
- Переход на MPLAB X IDE
- Переход с MPLAB IDE v8
- Переход с Atmel Studio
- Конфигурация
- Плагины
- Пользовательский интерфейс
- Проектов
- файлов
- Редактор
- Редактор
- Интерфейс и ярлыки
- Основные задачи
- Внешний вид
- Динамическая обратная связь
- Навигация
- Поиск, замена и рефакторинг
- Инструменты повышения производительности
- Инструменты повышения производительности
- Автоматическое форматирование кода
- Список задач
- Сравнение файлов (разница)
- Создать документацию
- Управление окнами
- Сочетания клавиш
- Отладка
- Контроль версий
- Автоматизация
- Язык управления стимулами (SCL)
- Отладчик командной строки (MDB)
- Создание сценариев IDE с помощью Groovy
- Поиск и устранение неисправностей
- Работа вне MPLAB X IDE
- Прочие ресурсы
- Улучшенная версия MPLAB Xpress
- MPLAB Xpress
- MPLAB IPE
- Программирование на C
- Компиляторы MPLAB® XC
- Начни здесь
- Компилятор MPLAB® XC8
- Компилятор MPLAB XC16
- Компилятор MPLAB XC32
- Компилятор MPLAB XC32 ++
- MPLAB
Охват кода
- Компилятор IAR C / C ++
- Конфигуратор кода MPLAB (MCC)
- Гармония MPLAB v2
- Гармония MPLAB v3
- среда разработки Atmel® Studio
- Atmel СТАРТ (ASF4)
- Advanced Software Framework v3 (ASF3)
- Начни здесь
- ASF3 Учебники
- ASF Audio Sine Tone Учебное пособие
- Интерфейс ЖК-дисплея с SAM L22 MCU Учебное пособие
- Блоки устройств MPLAB® для Simulink®
- Утилиты
- FPGA
- Аналоговый симулятор MPLAB® Mindi ™
Инструменты проектирования
- Аппаратные средства
- Начни здесь
- Сравнение аппаратных средств
- Средства отладки и память устройства
- Исполнительный отладчик
- Демо-платы и стартовые наборы
- Внутрисхемный эмулятор MPLAB® REAL ICE ™
- Эмулятор SAM-ICE JTAG
- Atmel® ICE
- Power Debugger
- Внутрисхемный отладчик MPLAB® ICD 3
- Внутрисхемный отладчик MPLAB® ICD 4
- PICkit ™ 3
- Внутрисхемный отладчик MPLAB® PICkit ™ 4
- MPLAB® Snap
- MPLAB PM3 Универсальный программатор устройств
- Принадлежности
- Заголовки эмуляции и пакеты расширения эмуляции
- Пакеты расширения процессора и отладочные заголовки
- Начни здесь
- PEP и отладочных заголовков
- Требуемый список заголовков отладки
- Таблица обязательных отладочных заголовков
- AC162050, AC162058
- AC162052, AC162055, AC162056, AC162057
- AC162053, AC162054
- AC162059, AC162070, AC162096
- AC162060
- AC162061
- AC162066
- AC162083
- AC244023, AC244024
- AC244028
- AC244045
- AC244051, AC244052, AC244061
- AC244062
- Необязательный список заголовков отладки
- Дополнительный список заголовков отладки — устройства PIC12 / 16
- Дополнительный список заголовков отладки — устройства PIC18
- Дополнительный список заголовков отладки — Устройства PIC24
- Целевые следы заголовка отладки
- Отладочные подключения заголовков
Обзор
- SEGGER J-Link
- K2L Сетевые инструментальные решения
- Рекомендации по проектированию средств разработки
- Ограничения отладки — микроконтроллеры PIC
- Инженерно-технические примечания (ETN) [[li]] Встраиваемые платформы chipKIT ™
Внутрисхемный эмулятор
Внутрисхемный отладчик
- Проектов
- Начни здесь
- Преобразование мощности
- AN2039 Четырехканальный секвенсор питания PIC16F1XXX
- 8-битные микроконтроллеры PIC®
- 8-битные микроконтроллеры AVR®
- 16-битные микроконтроллеры PIC®
- 32-битные микроконтроллеры SAM
- 32-разрядные микропроцессоры SAM
- Разработка приложений SAM MPU с MPLAB X IDE
- SAM MPU
Примеры пакетов программного обеспечения
- Запланировано дополнительное содержание…
- Продукты
- 8-битные микроконтроллеры PIC
- 8-битные микроконтроллеры AVR
- Начни здесь
- 8-битные периферийные устройства AVR®
- Осциллятор
- USART
- прерываний
- аналоговый компаратор и опорное напряжение
- Таймер / счетчики
- Внутренний датчик температуры
- Работа с низким энергопотреблением
- Сброс источников
- Начало работы с микроконтроллерами AVR®
- Использование микроконтроллеров AVR® с Atmel START
- Запланировано дополнительное содержание…
Структура 8-битного микроконтроллера AVR®
- 16-битные микроконтроллеры PIC и dsPIC DSC
.Выравнивание памяти
— Справка разработчика
Переключить навигацию
- Инструменты разработки
- Какие инструменты мне нужны?
- Программные средства
- Начни здесь
- MPLAB® X IDE
- Начни здесь
- Установка
- Введение в среду разработки MPLAB X
- Переход на MPLAB X IDE
- Переход с MPLAB IDE v8
- Переход с Atmel Studio
- Конфигурация
- Плагины
- Пользовательский интерфейс
- Проектов
- файлов
- Редактор
- Редактор
- Интерфейс и ярлыки
- Основные задачи
- Внешний вид
- Динамическая обратная связь
- Навигация
- Поиск, замена и рефакторинг
- Инструменты повышения производительности
- Инструменты повышения производительности
- Автоматическое форматирование кода
- Список задач
- Сравнение файлов (разница)
- Создать документацию
- Управление окнами
- Сочетания клавиш
- Отладка
- Контроль версий
- Автоматизация
- Язык управления стимулами (SCL)
- Отладчик командной строки (MDB)
- Создание сценариев IDE с помощью Groovy
- Поиск и устранение неисправностей
- Работа вне MPLAB X IDE
- Прочие ресурсы
- Улучшенная версия MPLAB Xpress
- MPLAB Xpress
- MPLAB IPE
- Программирование на C
- Компиляторы MPLAB® XC
- Начни здесь
- Компилятор MPLAB® XC8
- Компилятор MPLAB XC16
- Компилятор MPLAB XC32
- Компилятор MPLAB XC32 ++
- MPLAB
Охват кода
- Компилятор IAR C / C ++
- Конфигуратор кода MPLAB (MCC)
- Гармония MPLAB v2
- Гармония MPLAB v3
- среда разработки Atmel® Studio
- Atmel СТАРТ (ASF4)
- Advanced Software Framework v3 (ASF3)
- Начни здесь
- ASF3 Учебники
- ASF Audio Sine Tone Учебное пособие
- Интерфейс ЖК-дисплея с SAM L22 MCU Учебное пособие
- Блоки устройств MPLAB® для Simulink®
- Утилиты
- FPGA
- Аналоговый симулятор MPLAB® Mindi ™
Инструменты проектирования
- Аппаратные средства
- Начни здесь
- Сравнение аппаратных средств
- Средства отладки и память устройства
- Исполнительный отладчик
- Демо-платы и стартовые наборы
- Внутрисхемный эмулятор MPLAB® REAL ICE ™
- Эмулятор SAM-ICE JTAG
- Atmel® ICE
- Power Debugger
- Внутрисхемный отладчик MPLAB® ICD 3
- Внутрисхемный отладчик MPLAB® ICD 4
- PICkit ™ 3
- Внутрисхемный отладчик MPLAB® PICkit ™ 4
- MPLAB® Snap
- MPLAB PM3 Универсальный программатор устройств
- Принадлежности
- Заголовки эмуляции и пакеты расширения эмуляции
- Пакеты расширения процессора и отладочные заголовки
- Начни здесь
- PEP и отладочных заголовков
- Требуемый список заголовков отладки
- Таблица обязательных отладочных заголовков
- AC162050, AC162058
- AC162052, AC162055, AC162056, AC162057
- AC162053, AC162054
- AC162059, AC162070, AC162096
- AC162060
- AC162061
- AC162066
- AC162083
- AC244023, AC244024
- AC244028
- AC244045
- AC244051, AC244052, AC244061
- AC244062
- Необязательный список заголовков отладки
- Дополнительный список заголовков отладки — устройства PIC12 / 16
- Дополнительный список заголовков отладки — устройства PIC18
- Дополнительный список заголовков отладки — Устройства PIC24
- Целевые следы заголовка отладки
- Отладочные подключения заголовков
Обзор
- SEGGER J-Link
- K2L Сетевые инструментальные решения
- Рекомендации по проектированию средств разработки
- Ограничения отладки — микроконтроллеры PIC
- Инженерно-технические примечания (ETN) [[li]] Встраиваемые платформы chipKIT ™
Внутрисхемный эмулятор
Внутрисхемный отладчик
- Проектов
- Начни здесь
- Преобразование мощности
- AN2039 Четырехканальный секвенсор питания PIC16F1XXX
- 8-битные микроконтроллеры PIC®
- 8-битные микроконтроллеры AVR®
- 16-битные микроконтроллеры PIC®
- 32-битные микроконтроллеры SAM
- 32-разрядные микропроцессоры SAM
- Разработка приложений SAM MPU с MPLAB X IDE
- SAM MPU
Примеры пакетов программного обеспечения
- Запланировано дополнительное содержание…
- Продукты
- 8-битные микроконтроллеры PIC
- 8-битные микроконтроллеры AVR
- Начни здесь
- 8-битные периферийные устройства AVR®
- Осциллятор
- USART
- прерываний
- аналоговый компаратор и опорное напряжение
- Таймер / счетчики
- Внутренний датчик температуры
- Работа с низким энергопотреблением
- Сброс источников
- Начало работы с микроконтроллерами AVR®
- Использование микроконтроллеров AVR® с Atmel START
- Запланировано дополнительное содержание…
Структура 8-битного микроконтроллера AVR®
- 16-битные микроконтроллеры PIC и dsPIC DSC
- 32-битные микроконтроллеры
.