10. Организация памяти микропроцессорной системы.
Физическая память, к которой микропроцессов имеет доступ по шине адреса, называется оперативной памятью (или оперативным запоминающим устройством - ОЗУ).
ОП организована как последовательность байтов.
Каждому байту соответствует уникальный адрес (его номер), который называется физическим адресом.
Физический диапазон значений адресов зависит от разрядности шины адреса микропроцессора.
ОЗУ –энергозависимая память. Обязательным условием является адресуемость (каждое машинное слово имеет индивидуальный адрес) памяти
Обмен данными между процессором и оперативной памятью производится:
- непосредственно,
- либо через сверхбыструю память, 0-го уровня — регистры в АЛУ, либо при наличии кэша — через него.
Содержащиеся в оперативной памяти данные доступны только тогда, когда на модули памяти подаётся напряжение
Подключение оперативной памяти
Память динамического типа
Экономичный вид памяти. Для хранения разряда (бита или трита) используется схема, состоящая из одного конденсатора и одного транзистора (в некоторых вариациях конденсаторов два). Такой вид памяти решает, во-первых, проблему дороговизны (один конденсатор и один транзистор дешевле нескольких транзисторов) и во-вторых, компактности (там, где в SRAM размещается один триггер, то есть один бит, можно уместить восемь конденсаторов и транзисторов)
Память статического типа
ОЗУ, которое не надо регенерировать (и обычно схемотехнически собранное на триггерах), называется статической памятью с произвольным доступом или просто статической памятью. Достоинство этого вида памяти — скорость. Поскольку триггеры собраны на вентилях, а время задержки вентиля очень мало, то и переключение состояния триггера происходит очень быстро.
Организация памяти на примере МП i8086
МП 8086 имеет 20-ти разрядную шину адреса ША, позволяющую обращаться к 2^20 или примерно к одному миллиону ячеек памяти. 16-ти битовая шина данных ШД может пересылть информацию байтами или словами. Память обычно организована в виде линейного одномерного массива байтов, причем два соседних байта могут рассматриваться как слово. Все мегабайтное пространство памяти условно делится на 16 сегментов объемом по 64Kb. Микропроцессору доступны в каждый момент четыре - кодовый сегмент, где хранится программа, стековый сегмент, сегмент данных программы и дополнительный сегмент данных. Начальные адреса этих сегментов хранятся в регистрах CS,SS,DS и ES. Так как эти регистры 16-ти битовые, а все адресное пространство 20-ти битовое, то МП начальный сегментный адрес в 20-ти битовом сумматоре сдвигает на четыре бита влево (эквивалентно умножению на 16) и складывает с содержимым одного из регистров (IP,SP,DI,SI).
Полученное число называется физическим адресом. Например, извлекая из памяти очередной байт кода программы МП формирует физический адрес по формуле: Физический адрес = (IP) + (CS) * 16, где (IP) - смещение, эффективный или исполнительный адрес, (CS) - сегментный адрес, а (CS) * 16 - называется начальным сегментным адресом. Организация памяти приведена на рис.2.
Стековая память Под стек можно отвести область в любом месте памяти. Размер ее может быть любым, но не должен превосходить 64Кб, а ее начальный адрес должен быть кратным 16. Другими словами, эта область должна быть сегментом памяти; он называется сегментом стека. Начало этого сегмента (первые 16 битов начального адреса) должно обязательно храниться в сегментном регистре SS.
В стековой памяти ячейки образуют одномерный массив, в котором соседние ячейки связаны друг с другом разрядными цепями передачи слов. Запись нового слова производится в верхнюю ячейку, при этом все ранее записанные слова сдвигаются вниз, в соседние ячейки. Считывание возможно только из верхней ячейки памяти. Если производится считывание с удалением, все остальные слова в памяти сдвигаются в верх.
В этой памяти порядок считывания слов соответствует правилу FIFO: последним поступил, первым обслуживается. В ряде устройств рассматриваемого типа предусматривается также операция простого считывания слова из нулевой ячейки без его удаления и сдвига слов в памяти.
Иногда стековая память снабжается счетчиком стека, показывающим количество занесенных в память слов.
В вычислительных машинах часто стековую память организуют, используя адресную память и специальный регистр - указатель стека.