При обработке информации процессором может произойти обращение к любой ячейке оперативной памяти

Обновлено: 07.07.2024

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

Устройства памяти подразделяются по двум основным критериям: по функциональному назначению (роли или месту в иерархии памяти) и принципу организации.

Классификация ЗУ по функциональному назначению (иерархия запоминающих устройств)

Память ЭВМ почти всегда является "узким местом", ограничивающим производительность компьютера. Поэтому в ее организации используется ряд приемов, улучшающих временные характеристики памяти и, следовательно, повышающих производительность ЭВМ в целом.

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

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

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

Верхнее место в иерархии памяти занимают регистровые ЗУ, которые входят в состав процессора и часто рассматриваются не как самостоятельный блок ЗУ, а просто как набор регистров процессора. Такие ЗУ в большинстве случаев реализованы на том же кристалле, что и процессор, и предназначены для хранения небольшого количества информации (до нескольких десятков слов, а в RISC-архитектурах – до сотни), которая обрабатывается в текущий момент времени или часто используется процессором. Это позволяет сократить время выполнения программы за счет использования команд типа регистр-регистр и уменьшить частоту обменов информацией с более медленными ЗУ ЭВМ. Обращение к этим ЗУ производится непосредственно по командам процессора.

Следующую позицию в иерархии занимают буферные ЗУ (кэш-память). Их назначение состоит в сокращении времени передачи информации между процессором и более медленными уровнями памяти компьютера. Буферная память может устанавливаться на различных уровнях, но здесь речь идет именно об указанном ее местоположении.

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

Следующим уровнем иерархии памяти является оперативная память. Оперативное ЗУ (ОЗУ) является основным запоминающим устройством ЭВМ, в котором хранятся выполняемые в настоящий момент процессором программы и обрабатываемые данные, резидентные программы, модули операционной системы и т.п. Информация, находящаяся в ОЗУ, непосредственно доступна командам процессора, при условии соблюдения требований защиты.

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

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

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

Все остальные запоминающие устройства можно объединить с точки зрения функционального назначения в одну общую группу, охарактеризовав ее как группу внешних ЗУ. Под словом “внешние” следует подразумевать то, что информация, хранимая в этих ЗУ, в общем случае расположена на носителях не являющихся частью собственно ЭВМ. Это дискеты, флеш-накопители, CD, DVD, BD-диски и др.

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

По функциональным возможностям ЗУ можно разделять:

простые, допускающие только хранение информации;

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

По возможности изменения информации различают ЗУ:

постоянные (или с однократной записью – CD-ROM, ПЗУ);

односторонние (с перезаписью или перепрограммируемые – CD-RW);

двусторонние (имеют близкие значения времен чтения и записи – HDD).

По способу доступа различают ЗУ:

с адресным доступом (произвольный, последовательный);

с ассоциативным доступом (по ключу).

По организации носителя различают ЗУ:

с неподвижным носителем (SDD, flash);

с подвижным носителем (HDD).

По способу подключения к системе ЗУ делятся на:

По количеству блоков, образующих модуль или ступень памяти, можно различать:

многоблочные ЗУ (позволяют обрабатывать данные параллельно).

Состав, устройство и принцип действия основной памяти

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

Запоминающие устройства делятся на:

основную память (ОП),

сверхоперативную память (СОЗУ) – устаревшее название кэш и/или регистровой памяти

внешние запоминающие устройства (ВЗУ).

Основная память включает в себя два типа устройств: оперативное запоминающее устройство (ОЗУ или RAM - Random Access Memory) и постоянное запоминающее устройство (ПЗУ или ROM - Read Only Memory).

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

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

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

В современных ЭВМ микросхемы памяти (ОП и СОЗУ) изготавливают из кремния по полупроводниковой технологии с высокой степенью интеграции элементов на кристалле (микросхемы памяти относятся к так называемым “регулярным” схемам, что позволяет сделать установку элементов памяти в кристалле (чипе) настолько плотной, что размеры элементов памяти становятся сопоставимыми с размерами отдельных атомов).

Основной составной частью микросхемы является массив элементов памяти (ЭП), объединенных в матрицу накопителя.

Каждый элемент памяти может хранить 1 бит информации и имеет свой адрес. ЗУ, позволяющие обращаться по адресу к любому ЭП в произвольном порядке, называются запоминающими устройствами с произвольным доступом.

При матричной организации памяти реализуется координатный принцип адресации ЭП, в связи с чем адрес делится на две части (две координаты) - Х и Y. На пересечении этих координат находится элемент памяти, чья информация должна быть прочитана или изменена.

ОЗУ связано с остальным микропроцессорным комплектом ЭВМ через системную магистраль (рис.1).

Рис. 1. Структурная схема ОЗУ

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

По шине данных передается информация, записываемая в память или считываемая из нее.

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

Микросхемы памяти могут строиться на статических (SRAM) и динамических (DRAM) ЭП. В качестве статического ЭП чаще всего выступает статический триггер. В качестве динамического ЭП может использоваться электрический конденсатор, сформированный внутри кремниевого кристалла.

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

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

Основными характеристиками ОЗУ являются объем и быстродействие.

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

ПЗУ (энергонезависимая память)

Микросхемы ПЗУ также построены по принципу матричной структуры накопителя. Функции элементов памяти в них выполняют перемычки в виде проводников, полупроводниковых диодов или транзисторов. В такой матрице наличие перемычки может означать “1”, а ее отсутствие - “О”. Занесение формации в микросхему ПЗУ называется еепрограммированием, а устройство, с помощью которого заносится информация, - программатором. Программирование ПЗУ заключается в устранении (прожигании) перемычек по тем адресам, где должен храниться “О”. Обычно схемы ПЗУ допускают только одно программирование, но специальные микросхемы - репрограммируемые ПЗУ (РПЗУ) - допускают их многократное стирание и занесение новой информации. Этот вид микросхем также относится к энергонезависимым, т.е. может длительное время сохранять информацию при выключенном питании (стирание микросхемы происходит либо за счет подачи специального стирающего напряжения, либо за счет воздействия на кристалл ультрафиолетового излучения, для этого в корпусе микросхемы оставляется прозрачное окно).

Сверхоперативные ЗУ(в настоящее время это кэш-память) используются для хранения небольших объемов информации и имеют значительно меньшее время (в 2 - 10 раз) считывания/записи, чем основная память. СОЗУ (или кэш) обычно строятся на регистрах и регистровых структурах.

Регистр представляет собой электронное устройство, способное хранить занесенное в него число неограниченно долго (при включенном питании). Наибольшее распространение получили регистры на статических триггерах.

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

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

Регистры могут быть объединены в единую структуру. Возможности такой структуры определяются способом доступа и адресации регистров.

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

Безадресные регистровые структуры могут образовывать два вида устройств памяти: магазинного типа и память с выборкой по содержанию (ассоциативные ЗУ).

Память магазинного типа образуется из последовательно соединенных регистров (рис. 2).

Если запись в регистровую структуру (рис.2,а) производится через один регистр, а считывание - через другой, то такая память является аналогом магазинной памяти и работает по принципу “первым вошел - первым вышел” (FIFO - first input, first output).

Если же запись и чтение осуществляются через один и тот же регистр (рис. 2,б), такое устройство называется стековой памятью, работающей по принципу “первым вошел — последним вышел” (FILO - first input, last output). При записи числа в стековую память сначала содержимое стека сдвигается в сторону последнего, К-го регистра (если стек был полностью заполнен, то число из К-го регистра теряется), а затем число заносится в вершину стека -регистр 1. Чтение осуществляется тоже через вершину стека, после того как число из вершины прочитано, стек сдвигается в сторону регистра 1.

Рис.2. Регистровая структура магазинного типа: а - типа FIFO; б - типа FILO

Стековая память получила широкое распространение. Для ее реализации в ЭВМ разработаны специальные микросхемы. Но часто работа стековой памяти эмулируется в основной памяти ЭВМ: с помощью программ операционной системы выделяется часть памяти под стек (в IBM PC для этой цели выделяется 64 Кбайта). Специальный регистр микропроцессора (указатель стека) постоянно хранит адрес ячейки ОП, выполняющей функции вершины стека. Чтение числа всегда производится из вершины стека, после чего указатель стека изменяется и указывает на очередную ячейку стековой памяти (т.е. фактически стек остается неподвижным, а перемещается вершина стека). При записи числа в стек сначала номер ячейки в указателе стека модифицируется так, чтобы он указывал на очередную свободную ячейку, после чего производится запись числа по этому адресу. Такая работа указателя стека позволяет реализовать принцип “первым вошел - последним вышел”. В стек может быть загружен в определенной последовательности ряд данных, которые впоследствии считываются из стека уже в обратном порядке, на этом свойстве построена система арифметических преобразований информации, известная под названием “логика Лукашевича”.

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

В микропроцессорах ассоциативные ЗУ используются в составе кэш-памяти для хранения адресной части команд и операндов исполняемой программы. При этом нет необходимости обращаться к ОП за следующей командой или требуемым операндом: достаточно поместить в маску необходимый адрес, если искомая информация имеется в СОЗУ, то она будет сразу выдана. Обращение к ОП будет необходимо лишь при отсутствии требуемой информации в СОЗУ. За счет такого использования СОЗУ сокращается число обращений к ОП, а это позволяет экономить время, так как обращение к СОЗУ требует в 2 - 10 раз меньше времени, чем обращение к ОП.

Рис. 3. Возможный состав системы памяти ЭВМ

Кэш 1-го уровня – 8 Кслов, ( не более 128 Кб ) 1-2 такта

Кэш 2-го уровня – 256 Кслов, (от 128 Кбайт до 1−12 Мбайт) 3-5 тактов

Кэш 3-го уровня – 1 Мслов, (более 24 Мбайт) 6-11 тактов

Основная память – 4 Гслов, 12-55 тактов

Внешняя память – к*Тслов, от 10 6 слов

Буферные ЗУ:Их назначение состоит в сокращении времени передачи информации между процессором и более медленными уровнями памяти компьютера. Буферная память может устанавливаться на различных уровнях. Ранее такие буферные ЗУ в отечественной литературе называлисверхоперативными (СОЗУ), сейчас это название практически полностью вытеснил термин "кэш-память" или простокэш.

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

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

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

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

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

По принципу действия ЭВМ делятся на три больших класса в зависимости от формы представления информации, с которой они работают:

· АВМ – аналоговые вычислительные машины непрерывного действия, работают с информацией, представленной в непрерывной (аналоговой) форме, то есть в виде непрерывного ряда значений какой-либо физической величины (чаще всего электрического напряжения);

· ЦВМ – цифровые вычислительные машины дискретного действия, работают с информацией, представленной в дискретной (цифровой) форме;

· ГВМ – гибридные вычислительные машины комбинированного действия работают с информацией, представленной как в цифровой, так и в аналоговой форме. ГВМ совмещают в себе достоинства АВМ и ЦВМ. Их целесообразно использовать для решения задач управления сложными быстродействующими техническими комплексами.

2. По назначению ЭВМ можно разделить на три группы:

· универсальные ЭВМ предназначены для решения самых различных инженерно-технических задач: экономических, математических, информационных и других задач, отличающихся сложностью алгоритмов и большим объемом обрабатываемых данных. Они широко используются в вычислительных центрах коллективного пользования и в других мощных вычислительных комплексах. Характерными чертами универсальных ЭВМ является: высокая производительность; разнообразие форм обрабатываемых данных при большом диапазоне их изменения и высокой степени их представления; обширная номенклатура выполняемых операций, как арифметических, логических, так и специальных; большая емкость оперативной памяти; развитая организация системы ввода-вывода информации, обеспечивающая подключение разнообразных видов внешних устройств;

· проблемно-ориентированные ЭВМ служат для решения более узкого круга задач, связанных, как правило, с управлением технологическими процессами. Они используются для регистрации, накопления и обработки относительно небольших объемов данных, выполнения расчетов по относительно несложным алгоритмам. Проблемно-ориентированные ЭВМ обладают ограниченными по сравнению с универсальными ЭВМ аппаратными и программными ресурсами;

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

3. По размерам и функциональным возможностям ЭВМ делятся на:

· сверхбольшие (суперЭВМ) – мощные многопроцессорные вычислительные машины с быстродействием сотни миллионов - десятки миллиардов операций в секунду с объемом оперативной памяти в десятки Гбайт. В настоящее время в мире насчитывается несколько тысяч суперЭВМ, таких как Cray 3, Cray 4, Cray Y-MP C90 фирмы Cray Research, Cyber 205 фирмы Control Data, SХ-3 и SХ-Х фирмы NЕС, VP 2000 фирмы Fujitsu (Япония), VРР 500 фирмы Siemens (ФРГ). Среди лучших суперЭВМ можно отметить и суперкомпьютер "СКИФ", созданный в рамках союзного договора между Россией и Беларусью.

· большие ЭВМ чаще всего называют мэйнфреймами (Mainframe). К мэйнфреймам относят, как правило, компьютеры, имеющие производительность десятки миллионов операций в секунду, емкость памяти до 1000 Мбайт и многопользовательский режим работы. Основные направления эффективного применения мэйнфреймов – это решение научно-технических задач, работа в вычислительных системах с пакетной обработкой информации, работа с большими базами данных, управление вычислительными сетями и их ресурсами. Родоначальником современных больших ЭВМ является фирма IBM.

малые (мини-ЭВМ) используются чаще всего для управления технологическими процессами. Они более компактны и значительно дешевле больших ЭВМ. Их появление (70 годы прошлого столетия) обусловлено, с одной стороны, прогрессом в области электронной элементной базы, а с другой – избыточностью ресурсов больших ЭВМ для ряда приложений. Мини-ЭВМ имеют быстродействие десятки миллионов операций в секунду, объем оперативной памяти 512 Мбайт, и могут также поддерживать многопользовательский режим. Первыми мини ЭВМ были компьютеры РDР-11 (Program Driven Processor – программно-управляемый процессор) фирмы DЕС, США. Они явились прообразом советских мини ЭВМ (СМ ЭВМ): CM 1, 2,3,4,1400,1700 и др.




· сверхмалые (микро-ЭВМ)обязаны своим появлением изобретению микропроцессора, наличие которого служило первоначально определяющим признаком микроЭВМ, хотя сейчас микропроцессоры используются во всех без исключения классах ЭВМ. Микро-ЭВМ делятся на универсальные и специализированные; в свою очередь и универсальные и специализированные микро-ЭВМ делятся на многопользовательские и однопользовательские:

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

- Универсальная однопользовательская микро-ЭВМ – это ничто иное, как хорошо известныйперсональный компьютер (ПК).

- Специализированные многопользовательские микро-ЭВМ используются в сетевых вычислительных системах и называются серверами.

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

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

Персональный компьютер (ПК) в первую очередь является общедоступной ЭВМ и обладает определенной универсальностью.

В общем случае, для удовлетворения потребностей пользователя ПК должен обладать следующими свойствами:

· иметь относительно небольшую стоимость, находящуюся в пределах доступности для индивидуального покупателя;

· обеспечивать автономность эксплуатации без специальных требований к условиям окружающей среды;

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

· операционная система и программное обеспечение должно быть достаточно простым, чтобы с ПК мог работать пользователь без профессиональной специальной подготовки;

· высокую надежность работы (более 5000 ч наработки на отказ).

В соответствии с международным стандартом-спецификацией PC99 ПК по назначениюделятся на следующие категории:

1. массовый ПК (Consumer);

2. деловой ПК (Office PC);

3. портативный ПК (Mobile PC);

4. рабочая станция (Workstation PC);

5. развлекательный ПК (Entertainment PC).

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

По поколениямПК подразделяются:

· ПК 2-го поколения - используют 16-битные микропроцессоры;

· ПК 3-го поколения .-используют 32-битные микропроцессоры;

· ПК 4-го поколения - используют 64-битные микропроцессоры.

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

ПЗУ (постоянное запоминающее устройство).

-ОЗУ (оперативно запоминающее устройство).

Современные модули памяти реализуются в виде специальных микросхем, емкость которых измеряется в мегабитах. А для человека проще обозначения емкости памяти в мегабайтах, например, минимальный объем оперативной памяти нового компьютера составляет 1 ГБ (1024МБ).

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

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

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

При обработке информации процессором может произойти обращение к любой ячейке оперативной памяти. Название "оперативная" получила из-за высокой скорости работы.

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

В широком смысле постоянная память означает память, которая записывается один раз, причем повторная запись в эту память невозможна. Другое, не менее широкое определение этого термина -- память, данные в которой не теряются после выключения компьютера. Однако в более узком смысле этот термин применяют в основном для обозначение микросхемы, в которую записана часть программного обеспечения, называемая BIOS (Basic Input Output System -- базовая система ввода-вывода). Микросхемы BIOS можно подразделить на три основных типа:

- память однократной записи (Read Only Memory, ROM);

- память с возможностью перезаписи (Programmable ROM, PROM;

- память с возможностью перезаписи без извлечения из компьютера (Electrically Erasable Programmable ROM, EEPROM).

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

Основные виды накопителей:

- накопители на жестких магнитных дисках (НЖМД);

- накопители на магнитной ленте (НМЛ);

- накопители CD, DVD, Blu-ray.

Основные характеристики накопителей и носителей:

- скорость обмена информацией;

- надёжность хранения информации;

Остановимся подробнее на рассмотрении вышеперечисленных накопителей и носителей. Принцип работы магнитных запоминающих устройств основан на способах хранения информации с использованием магнитных свойств материалов. Магнитные запоминающие устройства принято делить на виды в связи с исполнением, физико-техническими характеристиками носителя информации и т.д. Наиболее часто различают: дисковые и ленточные устройства. Общая технология магнитных запоминающих устройств состоит в намагничивании переменным магнитным полем участков носителя и считывания информации. Запись производится в цифровом коде.

Магнитный диск представляет собой основу с магнитным покрытием, которая вращается внутри дисковода вокруг оси. Магнитное покрытие используется в качестве запоминающего устройства. Накопитель на жестких магнитных дисках - НЖМД (HDD)

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

В этой статье мы не будем объяснять, какой тип оперативной памяти лучше or спецификации каждого , но процессор связывается с ним, чтобы иметь возможность выполнять программы.

Связь между ЦП и ОЗУ

Причина почему мы используем внешнюю память потому, что количество транзисторов, необходимых для хранения информации, не поместится в пространстве процессора , поэтому необходимо использовать память RAM, внешнюю по отношению к процессору, для хранения инструкций и данных, которые они будут выполнять.

Зачем процессору связь с ОЗУ?

Получить процесс

Стадия, на которой CPU / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР берет следующую инструкцию для выполнения из ОЗУ, называется «выборкой» и является одним из трех этапов, составляющих цикл команд: Fetch-Decode-Execute, о котором мы поговорим только в этой статье о первой, а о второй два будут оставлены на другой раз, так как оперативная память не вмешивается в них, кроме как для записи результата обратно.

  1. Счетчик команд: ПК указывает на следующую строку памяти, где находится следующая инструкция процессора. Его значение увеличивается на 1 каждый раз, когда завершается полный цикл команд или когда команда перехода изменяет значение программного счетчика.
  2. Регистр адреса памяти: MAR копирует содержимое ПК и отправляет его в RAM через адресные контакты ЦП, которые соединены с адресными контактами RAM.
  3. Регистр данных памяти : Если инструкция прочитана, то ОЗУ будет передавать через свою шину данных содержимое адреса памяти, на который указывал MAR.
  4. Реестр инструкций: Инструкция копируется в регистр инструкций, откуда блок управления расшифровывает ее, чтобы знать, как выполнить инструкцию.

Что такое память DRAM?


Освободи Себя тип памяти, используемой для RAM как системное ОЗУ, так и видеопамять или видеопамять. Память DRAM или 1T-DRAM . В этом типе памяти каждый бит хранится в комбинация конденсатора и транзистора , а не в нескольких транзисторах, таких как SRAM, отсюда и название 1T-DRAM.

Вся память RAM, используемая в настоящее время в ПК: DDR4, GDDR6, HBM2e, LPDDR4 и т. Д., Является памятью типа DRAM, в то время как внутренняя память процессоров, кеши регистров и блокноты относятся к типу SRAM.

Указанная комбинация конденсатора и транзистора называется Bitcell , когда конденсатор битовой ячейки заряжен, интерпретируется, что информация, содержащаяся в этой битовой ячейке, равна 1, когда она не заряжена, она интерпретируется как 0.

Массив DRAM

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

  • Первая половина битов выбирает строку, к которой мы хотим получить доступ
  • Вторая половина битов адресации содержит столбец, к которому мы хотим получить доступ,

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

Контакты для связи с RAM

по модулю памяти RAM

  • адресация штифты : Обычно обозначается от A0 до AN, где N - количество контактов и равно количеству бит адресации, которое всегда равно 2 ^ N.
  • Контакты данных : Здесь данные передаются в оперативную память и из нее.
  • Запись разрешена: Если вывод активен, передача данных осуществляется в память, запись, с другой стороны, если она не активна, то в сторону процессора, чтение.

Если наша система имеет несколько микросхем памяти RAM, то первые биты адресации используются для выбора, к какой из микросхем памяти мы хотим получить доступ в модуле памяти DIMM. Также были случаи, когда адрес и контакты данных совпадали. Это связано с тем, что адресация и доступ к данным не выполняются одновременно.

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

Двоичный декодер и его роль в связи с RAM

В оперативной памяти адресация передается в двух циклах: сначала отправляется строка, к которой необходимо получить доступ, а затем столбец, а не одновременно.

По этой причине обращение к оперативной памяти происходит в два этапа.

Банки памяти

Bancos Memoria

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

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

Стандартный размер банков в памяти RAM составляет 8 бит, поэтому максимальный объем памяти при адресации всегда считается как 2 ^ n байтов. Фактически, это 16-, 32-, 64-битные шины и т. Д. Они передают данные нескольких последовательных адресов памяти, начиная с первого.

Связь между RAM и CPU

Pistas PCB

  1. Выберите столбец (Адресация)
  2. Выберите строку (Адресация)
  3. Передача данных.

Для этого используется ряд специальных контактов, один из которых мы уже видели, и это запись Enable, а два других следующие:

  • Строб доступа к колонке: Этот вывод активируется, когда мы указываем оперативной памяти, что указываем столбец, к которому хотим получить доступ.
  • Строб доступа к строке :: Этот вывод активируется, когда мы указываем оперативной памяти, что указываем строку, к которой хотим получить доступ.

Обе операции можно резюмировать следующим образом:

Ввод данных

Выходные данные

  • Операция чтения очень проста, для этого у вас должен быть неактивен вывод WE, чтобы указать, что данные идут из ОЗУ в процессор, указать строку, а затем столбец, чтобы информация поступала к процессору из ОЗУ памяти. .
  • Операция записи несколько отличается, для этого вывод WE должен быть активен, но данные передаются не после выбора столбца данных, а после выбора строки и одновременно с выбором столбца, в котором находятся данные.

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

За последнюю неделю дважды объяснял людям как организована работа с памятью в х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, так как они нам не понадобятся. Итак наше небольшое отступление про регистры и стек закончилось переходим обратно к организации памяти.

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

Логический адрес --> Линейный (виртуальный)--> Физический

image


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

Линейный адрес вычисляется по формуле:
линейный адрес=Базовый адрес сегмента(на картинке это начало сегмента) + смещение
Сегмент кода

Базовый адрес сегмента кода берется из регистра CS. Значение смещения для сегмента кода берется из регистра EIP, в котором хранится адрес инструкции, после исполнения которой, значение EIP увеличивается на размер этой команды. Если команда занимает 4 байта, то значение EIP увеличивается на 4 байта и будет указывать уже на следующую инструкцию. Все это делается автоматически без участия программиста.
Сегментов кода может быть несколько в нашей памяти. В нашем случае он один.
Сегмент данных

Данные загружаются в регистры DS, ES, FS, GS
Это значит что сегментов данных может быть до 4х. На нашей картинке он один.
Смещение внутри сегмента данных задается как операнд команды. По дефолту используется сегмент на который указывает регистр DS. Для того чтобы войти в другой сегмент надо это непосредственно указать в команде префикса замены сегмента.
Сегмент стека

Используемый сегмент стека задается значением регистра SS.
Смещение внутри этого сегмента представлено регистром ESP, который указывает на вершину стека, как вы помните.
Сегменты в памяти могут друг друга перекрывать, мало того базовый адрес всех сегментов может совпадать например в нуле. Такой вырожденный случай называется линейным представлением памяти. В современных системах, память как правило так организована.

Теперь рассмотрим определение базовых адресов сегмента, я писал что они содержаться в регистрах SS, DS, CS, но это не совсем так, в них содержится некий 16 битный селектор, который указывает на некий дескриптор сегментов, в котором уже хранится необходимый адрес.

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

линейный адрес = базовый адрес + смещение
[база; база+предел)

В зависимости от 55 G-бита(гранулярити), предел может измеряться в байтах при нулевом значении бита и тогда максимальный предел составит 1 мб, или в значении 1, предел измеряется страницами, каждая из которых равна 4кб. и максимальный размер такого сегмента будет 4Гб.
Для сегмента стека предел будет в интервале:
(база+предел; вершина]

Кстати интересно почему база и предел так рвано располагаются в дескрипторе. Дело в том что процессоры х86 развивались эволюционно и во времена 286х дескрипторы были по 8 бит всего, при этом старшие 2 байта были зарезервированы, ну а в последующих моделях процессоров с увеличением разрядности дескрипторы тоже выросли, но для сохранения обратной совместимости пришлось оставить структуру как есть.
Значение адреса «вершина» зависит от 54го D бита, если он равен 0, тогда вершина равна 0xFFF(64кб-1), если D бит равен 1, тогда вершина равна 0xFFFFFFFF (4Гб-1)
С 41-43 бит кодируется тип сегмента.
000 — сегмент данных, только считывание
001 — сегмент данных, считывание и запись
010 — сегмент стека, только считывание
011 — сегмент стека, считывание и запись
100 — сегмент кода, только выполнение
101- сегмент кода, считывание и выполнение
110 — подчиненный сегмент кода, только выполнение
111 — подчиненный сегмент кода, только выполнение и считывание

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

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

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

Читайте также: