входные, выходные промежуточные данные, обрабатываемые процессором.

Структура оперативной памяти

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

Сегментная модель памяти

Когда-то давно, на заре рождения компьютерной техники, оперативная память была очень маленькой и для ее адресации использовались 2 байта (так называемое «слово»). Такой подход позволял адресовать 64 Кб памяти, и адресация была линейной - для указания адреса использовалось одно-единственное число. Позже, с усовершенствованием техники, производители поняли, что имеется возможность поддерживать большие объемы памяти, но для этого нужно сделать размер адреса больше. Для совместимости с уже написанным программным обеспечением было решено сделать так: адресация теперь двухкомпонентная (сегмент и смещение) , каждая из которых 16-битная, а старые программы как использовали одну 16-битную компоненту и ничего не знают о сегментах, так и продолжают работать


Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО
Логическое строение оперативной памяти

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



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

Логическое строение делится на 5 зон:

1. Conventional memory – основная память;

Начинается с адреса 00000 (0000:0000) и до 90000 (9000:0000). Это занимает 640 Кбайт. В эту область грузится в первую очередь таблица векторов прерываний, начиная с 00000 и занимает 1 Кбайт, далее следуют данные из BIOS (счетчик таймера, буфер клавиатуры и т. д.), а затем уж всякие 16 разрядные программы DOS (для них 640 Кбайт – барьер, за который могут выскочить только 32 разрядные программы). На данные BIOS’а отводится 768 байт.
2. UMA (Upper Memory Area) – верхняя память;

Начинается с адреса А0000 и до FFFFF. Занимает она 384 Кбайт. Сюда грузится информация, связанная с аппаратной частью компьютера. UMA можно разделить на 3 части по 128 Кбайт. Первая часть (от А0000 до BFFFF) предназначена для видеопамяти. В следующую часть (от C0000 до DFFFF) грузятся программы BIOS адаптеров. Последняя часть (от E0000 до FFFFF) зарезервирована для системной BIOS. Дело в том, что последние 128 Кбайт не полностью используются. В большинстве случаев под BIOS задействованы только последние 64 Кбайт. Свободная же часть UMB управляется драйвером EMM386.EXE и используется для нужд операционной системы.
3. HMA (High Memory Area) – область верхней памяти;

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО
История появления области HMA тянется аж к 80286 процессору, а точнее к ошибке в его схеме. Я уже говорил, что процессоры 8086 и 8087 имели 20 разрядную адресную шину, работали в реальном режиме и могли максимально обратится по адресу FFFFF (FFFF:000F). А вот 80286 процессор имел уже 24 разрядную шину адреса, работал в реальном и защищенном режимах и мог адресовать до 16 Мбайт памяти.
4. XMS (eXtended Memory Specification) – дополнительная память;

Что бы работать в XMS используя DOS, для процессоров был разработан еще один режим – виртуальный. DOS не может переплюнуть барьер в 640 Кбайт, виртуальный режим позволяет разбить дополнительную память на части по

1 Мбайту. В каждую часть грузится по программе DOS и там они варятся в реальном режиме но уже не мешая друг другу выполнятся одновременно. 32 разрядным приложениям на барьер в 640 Кбайт все равно. XMS отвечает за перевод режимов процессора драйвер EMM386.EXE, а за организацию самой области – HIMEM.SYS. Посмотреть, что творится у Вас в XMS можно с помощью SysInfo из набора Norton Utilities.
5. EMS (Expanded Memory Specification) – расширенная память;

Находится эта область в верхней памяти и занимает порядка 64 Кбайт. Использовалась она лишь в старых компах с оперативной памятью до

1 Мбайта. В силу своей спецификации это достаточно медленная область. Дело в том, что расширенная память – это один из многих коммутируемых сегментов. После того, как сегмент заполнится, происходит смена использованного сегмента новым. Но работать можно только с одним сегментом, а это, Вы сами должны понимать, не совсем хорошо, удобно и быстро. Как правило первый сегмент EMS находится по адресу D000.

Логическое строение оперативной памяти в графическом виде.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО

4. DRAM – Dynamic Random Access Memory

DRAM - это очень старый тип микросхем оперативной памяти, который сейчас уже давно не применяется. По другому DRAM – это динамическая память с произвольным порядком выборки. Минимальной единицей информации при хранении или передаче данных в компьютере является бит. Каждый бит может быть в двух состояниях: включен (да, 1) или выключен (нет, 0). Любой объем информации в конечном итоге состоит из включенных и выключенных битов. Таким образом, что бы сохранить или передать какой либо объем данных, необходимо сохранить или передать каждый бит, не зависимо от его состояния, этих данных.


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

Каждая ячейка способна хранить только один бит. Если конденсатор ячейки заряжен, то это означает, что бит включен, если разряжен – выключен. Если необходимо запомнить один байт данных, то понадобится 8 ячеек (1 байт = 8 битам). Ячейки расположены в матрицах и каждая из них имеет свой адрес, состоящий из номера строки и номера столбца.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО

Теперь рассмотрим, как происходит чтение. Сначала на все входы подается сигнал RAS (Row Address Strobe) – это адрес строки. После этого, все данные из этой строки записываются в буфер. Затем на регистр подается сигнал CAS (Column Address Strobe) – это сигнал столбца и происходит выбор бита с соответствующим адресом. Этот бит и подается на выход. Но во время считывания данные в ячейках считанной строки разрушаются и их необходимо перезаписать взяв из буфера.

Теперь запись. Подается сигнал WR (Write) и информация поступает на шину столбца не из регистра, а с информационного входа памяти через коммутатор, определенный адресом столбца. Таким образом, прохождение данных при записи определяется комбинацией сигналов адреса столбца и строки и разрешения записи данных в память. При записи данные из регистра строки на выход не поступают.

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

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО

Это означает, что за один раз будет считан не один бит, а несколько. Если параллельно расположено 8 матриц, то сразу считан будет один байт. Это называется разрядностью. Количество линий, по которым будут передаваться данные от (или на) параллельных матриц, определяется разрядностью шины ввода/вывода микросхемы.
Говоря о работе DRAM необходимо учитывать один момент. Все заключается в том, что конденсаторы не могут бесконечно долго хранить заряд и он в конце концов «стекает», Поэтому конденсаторы необходимо перезаряжать. Операция перезарядки называется Refresh или регенерацией. Происходит эта операция примерно каждые 2 мс и порой занимает до 10 % (а то и больше) рабочего времени процессора.

Важнейшей характеристикой DRAM является быстродействие, а проще говоря продолжительность цикла + время задержки + время доступа, где продолжительность цикла – время, затраченное на передачу данных, время задержки – начальная установка адреса строки и столбца, а время доступа – время поиска самой ячейки. Измеряется эта фигня в наносекундах (одна миллиардная доля секунды). Современные микросхемы памяти имеют быстродействие ниже 10 мс.

Оперативной памятью управляет контроллер, который находится в чипсете материнской платы, а точнее в той его части, которая называется North Bridge.


Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО

А теперь поняв как работает оперативная память, разберемся, зачем же она вообще нужна. После процессора, оперативную память можно считать самым быстродействующим устройством. Поэтому основной обмен данными и происходит между этими двумя девайсами. Вся информация в персональном компьютере хранится на жестком диске. При включении компа в ОЗУ (Оперативное Запоминающее Устройство) с винта записываются драйвера, специальные программы и элементы операционной системы. Затем туда будут записаны те программы – приложения, которые Вы будете запускать. При закрытии этих программ они будут стерты из ОЗУ. Данные, записанные в оперативной памяти, передаются в CPU (Central Processing Unit), там обрабатываются и записываются обратно. И так постоянно: дали команду процессору взять биты по таким то адресам, как то их там обработать и вернуть на место или записать на новое – он так и сделал.

Все это хорошо, до тех пор, пока ячеек ОЗУ хватает. А если нет? Тогда в работу вступает файл подкачки. Этот файл расположен на жестком диске и туда записывается все, что не влезает в ячейки оперативной памяти. Поскольку быстродействие винта значительно ниже ОЗУ, то работа файла подкачки сильно замедляет работу системы. Кроме этого, это снижает долговечность самого жесткого диска.

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

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО

Изм.
Лист
№ докум.
Подпись
Дата
Лист
ППП ПИ 23.00.00 ТО
Интернет ресурсы

http://nikesina.ucoz.ru/

http://www.whatis.ru/

http://wiki.mvtom.ru/

http://www.teryra.com/

http://smartronix.ru/

http://allrefs.net/

http://sonikelf.ru/

http://beginpc.ru/

Список литературы

Практическое руководство системного администратора. (2012)

Эндрю Таненбаум, Тодд Остин - Архитектура компьютера (2013)

Страница 4

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

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

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

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

Машинное слово для конкретной ЭВМ – это всегда фиксированное число разрядов. Данное число является одной из важнейших характеристик любой ЭВМ и называется разрядностью машины.

Например, самые современные персональные компьютеры являются 64-разрядным, то есть машинное слово и соответственно, ячейка памяти, состоит из 64 разрядов или битов.

Бит - минимальная единица измерения информации.

Каждый бит может принимать значение 0 или 1. Битом также называют разряд ячейки памяти ЭВМ. Стандартный размер наименьшей ячейки памяти равен восьми битам, то есть восьми двоичным разрядам. Совокупность из 8 битов является основной единицей представления данных – байт.

Байт (от английского byte – слог) – часть машинного слова, состоящая из 8 бит, обрабатываемая в ЭВМ как одно целое. На экране – ячейка памяти, состоящая из 8 разрядов – это байт. Младший разряд имеет порядковый номер 0, старший разряд – порядковый номер 7.

Для записи чисел также используют 32-разрядный формат (машинное слово), 16-разрядный формат (полуслово) и 64-разрядный формат (двойное слово).

Для измерения объема хранимой информации используются более крупные единицы объема памяти:

1 Килобайт (Кбайт) = 1024 байт = 210 байт;

1 Мегабайт (Мбайт) = 1024 Кбайт = 220 байт;

1 Гигабайт (Гбайт) = 1024 Мбайт = 230 байт;

1 Терабайт (Тбайт) = 1024 Гбайт = 240 байт;

1 Петабайт (Пбайт) = 1024 Тбайт = 250 байт.

Число 1024 как множитель при переходе к более высшей единице измерения информации имеет своим происхождением двоичную систему счисления (1024 - это десятая степень двойки).

Общие сведения о системах счисления

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

Для записи чисел могут использоваться не только цифры, но и буквы (запись римскими цифрами).

В зависимости от способа изображения чисел системы счисления делятся на позиционные и непозиционные.

В позиционной системе счисления значение каждой цифры зависит от того, в каком месте она записана.

В непозиционной системе счисления цифры не изменяют своего значения при изменении их расположения в числе. * Римская система счисления I(1), V(5), X(10), L(50), C(100), D(500), M(1000).

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

Пример:CCXXXII=232 или IX =9

Основание системы счисления – количество различных символов, используемых для изображения числа в позиционной системе счисления. (Р).

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

111111112 = 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20 = 255.

Знаковые положительные числа в байте можно представить только

от 0 до 127.

Старший (левый) разряд отводится под знак числа, остальные

7 разрядов под само число. Максимальное число в знаковом представлении соответствует семи единицам и равно:

Информация о ообразовании:

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

Качество подготовки специалистов
Требования при приёме. Порядок приема молодежи на обучение определяется законом "Об образовании" РФ, типовым положением об учреждении НПО, Уставом ГОУ НПО ПУ № 73, внутриучилищным локальным актом "Правила приема в училище и отчисления из училища". Внутренний локальный акт приним...

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

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

Основной единицей памяти является двоичный разряд, который называется битом. Бит может содержать 0 или 1. Эта самая маленькая единица памяти. (Устройство, в котором хранятся только нули, вряд ли могло быть основой памяти. Необходимы по крайней мере две величины.) Многие полагают, что в компьютерах используется бинарная арифметика, потому что это «эффективно». Они имеют в виду (хотя сами это редко осознают),

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

Считается, что некоторые компьютеры, например большие IBM, используют и десятичную, и двоичную арифметику. На самом деле здесь применяется так называемый двоично-десятичный код. Для хранения одного десятичного разряда используется 4 бита. Эти 4 бита дают 16 комбинаций для размещения 10 различных значений (от 0 до 9). При этом 6 оставшихся комбинаций не используются. Ниже показано число 1944 в двоично-десятичной и чисто двоичной системах счисления; в обоих случаях используется 16 битов:

десятичное: 0001 10010100 0100 двоичное: 0000011110011000

16 битов в двоично-десятичном формате могут хранить числа от 0 до 9999, то есть всего 10000 различных комбинаций, а 16 битов в двоичном формате - 65536 комбинаций. Именно по этой причине говорят, что двоичная система эффективнее.

Однако представим, что могло бы произойти, если бы какой-нибудь гениаль-

ный молодой инженер придумал очень надежное электронное устройство, которое могло бы хранить разряды от 0 до 9, разделив участок напряжения от 0 до 10 В на 10 интервалов. Четыре таких устройства могли бы хранить десятичное число от 0 до 9999, то есть 10 000 комбинаций. А если бы те же устройства использовались для хранения двоичных чисел, они могли бы содержать всего 16 комбинаций. Естественно, в этом случае десятичная система была бы более эффективной.

1.2.Адреса памяти

Память состоит из ячеек, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом, По адресу программы могут ссылаться на определенную ячейку. Если память содержит п ячеек, они будут иметь адреса от 0 до п-1. Все ячейки памяти содержат одинаковое число битов. Если ячейка состоит из к битов, она может содержать любую из 2к комбинаций. На рис. 2.8 показаны 3 различных способа организации 96-битной памяти. Отметим, что соседние ячейки по определению имеют последовательные адреса.

В компьютерах, где используется двоичная система счисления (включая восьмеричное и шестнадцатеричное представление двоичных чисел), адреса памяти также выражаются в двоичных числах. Если адрес состоит из m битов, максимальное число адресованных ячеек будет составлять 2П|. Например, адрес для обращения к памяти, изображенной на рис. 2.8, а, должен состоять, по крайней мере, из 4 битов, чтобы выражать все числа от 0 до 11. При устройстве памяти, показанном на рис. 2.8, 6 и 2.8, в, достаточно 3-битного адреса. Число битов в адресе определяет максимальное количество адресованных ячеек памяти и не зависит от числа битов в ячейке. 12-битные адреса нужны и памяти с 212 ячеек по 8 битов каждая, и памяти с 212 ячеек по 64 бита каждая.

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

Ячейка - минимальная единица, к которой можно обращаться, В последние

годы практически все производители выпускают компьютеры с 8-битными ячейками, которые называются байтами, Байты группируются в слова. Компьютер с 32-битными словами имеет 4 байта на каждое слово, а компьютер с 64-битными словами - 8 байтов на каждое слово. Такая единица, как слово, необходима, поскольку большинство команд производят операции над целыми словами (например, складывают два слова). Таким образом, 32-битная машина будет содержать 32-битные регистры и команды для манипуляций с 32-битными словами, тогда как 64-битная машина будет иметь 64-битные регистры и команды для перемещения, сложения, вычитания и других операций над 64-битными словами.

1.3.Упорядочение байтов

Байты в слове могут нумероваться слева направо или справа налево. На первый взгляд может показаться, что между этими двумя вариантами нет разницы, но мы скоро увидим, что выбор имеет большое значение. На рис. 2.9, а изображена часть памяти 32-битного компьютера, в котором байты пронумерованы слева направо (как у компьютеров SPARC или больших IBM). Рисунок 2.9,6 показывает аналогичную репрезентацию 32-битного компьютера с нумерацией байтов справа налево (как у компьютеров Intel).

Важно понимать, что в обеих системах 32-битное целое число (например, 6)

представлено битами 110 в трех крайних правых битах слова, а остальные 29 битов представлены нулями. Если байты нумеруются слева направо, биты 110 находятся в байте 3 (или 7, или 11 и т. д.). Если байты нумеруются справа налево, биты 110 находятся в байте 0 (или 4, или 8 и т. д.). В обоих случаях слово, содержащее это целое число, имеет адрес 0.

Если компьютеры содержат только целые числа, никаких сложностей не возникает. Однако многие прикладные задачи требуют использования не только целых чисел, но и цепочек символов и других типов данных. Рассмотрим, например, простую запись данных персонала, состоящую из цепочки символов (имя сотрудника) и двух целых чисел (возраст и номер отдела). Цепочка символов завершается одним или несколькими байтами 0, чтобы заполнить слово. На рис. 2.10, а представлена схема с нумерацией байтов слева направо, а на рис. 2.10, б - с нумерацией байтов

справа налево для записи «Jim Smith, 21 год, отдел 260» (1x256+4=260).

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

Компьютер, получивший запись, имя печатает правильно, но возраст получа-

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

Очевидное решение этой проблемы - наличие программного обеспечения, которое инвертировало бы байты в слове после того, как сделана копия. Результат такой операции изображен на рис. 2.10, г. Мы видим, что числа стали правильными, но цепочка символов превратилась в «MIJTIMS», при этом «Н» вообще поместилась отдельно. Цепочка переворачивается потому, что компьютер сначала считывает байт 0 (пробел), затем байт 1 (М) и т. д.

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

1.4.Код с исправлением ошибок

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

Пусть общая длина слова будет п (то есть п=т+г). n-битную единицу, содержащую m битов данных и г контрольных разрядов, часто называют кодированным словом. Для любых двух кодированных слов, например 10001001 и 10110001, можно определить, сколько соответствующих битов в них различается. В данном примере таких бита три. Чтобы определить количество различающихся битов, нужно над двумя кодированными словами произвести логическую операцию ИСКЛЮЧАЮЩЕЕ ИЛИ и сосчитать число битов со значением 1 в полученном результате. Число битовых позиций, по которым различаются два слова, называется интервалом Хэмминга. Если интервал Хэмминга для двух слов равен d, это значит, что достаточно d битовых ошибок, чтобы превратить одно слово в другое. Например, интервал Хэмминга кодированных слов 11110001 и 00110000 равен 3, поскольку для превращения первого слова во второе достаточно 3 ошибок в битах.

Память состоит из m-битных слов, и следовательно, существует 2т вариантов

сочетания битов. Кодированные слова состоят из п битов, но из-за способа подсчета контрольных разрядов допустимы только 2Ш из 2" кодированных слов. Если в памяти обнаруживается недопустимое кодированное слово, компьютер знает, что произошла ошибка. При наличии алгоритма для подсчета контрольных разрядов можно составить полный список допустимых кодированных слов и из этого списка найти два слова, для которых интервал Хэмминга будет минимальным. Это интервал Хэмминга полного кода.

Свойства проверки и исправления ошибок определенного кода зависят от его

интервала Хэмминга. Чтобы обнаружить d ошибок в битах, необходим код с интервалом d+1, поскольку d ошибок не могут изменить одно допустимое кодированное слово на другое допустимое кодированное слово Соответственно, чтобы исправить d ошибок в битах, необходим код с интервалом 2d+l, поскольку в этом случае допустимые кодированные слова так сильно отличаются друг от друга, что даже если произойдет d изменений, изначальное кодированное слово будет ближе к ошибочному, чем любое другое кодированное слово, поэтому его без труда можно будет определить.

В качестве простого примера кода с обнаружением ошибок рассмотрим код, в котором к данным присоединяется один бит четности. Бит четности выбирается таким образом, что число битов со значением 1 в кодированном слове четное (или нечетное). Интервал этого кода равен 2, поскольку любая ошибка в битах приводит к кодированному слову с неправильной четностью. Другими словами, достаточно двух ошибок в битах для перехода от одного допустимого кодированного слова к другому допустимому слову. Такой код может использоваться для обнаружения одиночных ошибок. Если из памяти считывается слово, содержащее неверную четность, поступает сигнал об ошибке. Программа не сможет продолжаться, но зато не будет неверных результатов. В качестве простого примера кода с исправлением ошибок рассмотрим код с четырьмя допустимыми кодированными словами:

0000000000,0000011111, ШИОООООи 1111111111

Интервал этого кода равен 5. Это значит, что он может исправлять двойные

ошибки. Если появляется кодированное слово 0000000111, компьютер знает, что изначальное слово должно быть 0000011111 (если произошло не более двух ошибок). При наличии трех ошибок, если, например, слово 0000000000 изменилось на 0000000111, этот метод недопустим.

Представим, что мы хотим разработать код с m битами данных и г контрольных разрядов, который позволил бы исправлять все ошибки в битах. Каждое из 2т допустимых слов имеет п недопустимых кодированных слов, которые отличаются от допустимого одним битом. Они образуются инвертированием каждого из п битов в n-битном кодированном слове. Следовательно, каждое из 2т допустимых слов требует п+1 возможных сочетаний битов, приписываемых этому слову (п возможных ошибочных вариантов и один правильный). Поскольку общее число различных сочетаний битов равно 2П, то (п+1)2га<2п. Так как n-ш+г, следовательно,

(т+г+ 1)<2Г. Эта формула дает нижний предел числа контрольных разрядов, необходимых для исправления одиночных ошибок. В табл 2.2 показано необходимое количество контрольных разрядов для слов разного размера.

Этого теоретического нижнего предела можно достичь, используя метод Ричарда Хэмминга. Но прежде чем обратиться к этому алгоритму, давайте рассмотрим простую графическую схему, которая четко иллюстрирует идею кода с исправлением ошибок для 4-битных слов. Диаграмма Венна на рис. 2.11 содержит 3 круга, А, В и С, которые вместе образуют семь секторов. Давайте закодируем в качестве примера слово из 4 битов 1100 в сектора АВ, ABC, AC и ВС, по одному биту в каждом секторе (в алфавитном порядке). Кодирование показано на рис. 2.11, а.

Далее мы добавим бит четности к каждому из трех пустых секторов, чтобы получилась положительная четность, как показано на рис. 2.11, б. По определению сумма битов в каждом из трех кругов, А, В, и С, должна быть четной. В круге А находится 4 числа: 0, 0, 1 и 1, которые в сумме дают четное число 2. В круге В находятся числа 1, 1, 0 и 0, которые также при сложении дают четное число 2. То же имеет силу и для круга С. В данном примере получилось так, что все суммы одинаковы, но вообще возможны случаи с суммами 0 и 4. Рисунок соответствует кодированному слову, состоящему из 4 битов данных и 3 битов четности. Предположим, что бит в секторе АС изменился с 0 на 1, как показано на рис. 2.11, в. Компьютер видит, что круги А и С имеют отрицательную четность. Единственный способ исправить ошибку, изменив только один бит, -возвраще-

ние биту АС значения 0. Таким способом компьютер может исправлять одиночные ошибки автоматически.

А теперь посмотрим, как может использоваться алгоритм Хэмминга при создании кодов с исправлением ошибок для слов любого размера. В коде Хэмминга к слову, состоящему из m битов, добавляется г битов четности, при этом образуется слово длиной т+г битов. Биты нумеруются с единицы (а не с нуля), причем первым считается крайний левый. Все биты, номера которых - степени двойки, являются битами четности; остальные используются для данных. Например, к 16-битному слову нужно добавить 5 битов четности. Биты с номерами 1, 2, 4, 8 и 16 - биты четности, а все остальные - биты данных. Всего слово содержит 21 бит (16 битов данных и 5 битов четности). В рассматриваемом примере мы будем использовать

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

Бит 1 проверяет биты 1, 3, 5,7, 9,11, 13,15,17,19, 21.

Бит 2 проверяет биты 2, 3, 6, 7,10,11,14,15,18,19.

Бит 4 проверяет биты 4, 5,6, 7,12,13,14,15, 20, 21.

Бит 8 проверяет биты 8,9,10, И, 12,13,14, 15.

Бит 16 проверяет биты 16,17,18,19, 20, 21.

В общем случае бит b проверяется битамиЪи Ь2,..., bJt такими что bi+b2+... +b,=b. Например, бит 5 проверяется битами 1 и 4, поскольку 1+4=5. Бит 6 проверяется битами 2 и 4, поскольку 2+4=6 и т. д.

На рис. 2.12 показано построение кода Хэмминга для 16-битного слова

1111000010101110 Соответствующим 21-битным кодированным словом является 001011100000101101110. Чтобы увидеть, как происходит исправление ошибок, рассмотрим, что произойдет, если бит 5 изменит значение из-за резкого скачка напряжения на линии электропередачи. В результате вместо кодированного слова 001011100000101101110 получится 001001100000101101 ПО. Будут проверены 5 битов четности.

Вот результаты проверки:

Бит четности 1 неправильный (биты 1, 3, 5, 7,9, 11, 13, 15, 17, 19, 21 содержат

пять единиц).

Бит четности 2 правильный (биты 2, 3, 6,7,10,11,14,15,18,19 содержат шесть

Бит четности 4 неправильный (биты 4,5,6,7,12,13,14,15,20,21 содержат пять

Бит четности 8 правильный (биты 8,9,10,11,12,13,14,15 содержат две единицы).

Битчетности 16 правильный (биты 16,17,18,19,20,21 содержат четыре единицы).

Общее число единиц в битах 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 и 21 должно быть

четным, поскольку в данном случае используется положительная четность. Неправильным должен быть один из битов, проверяемых битом четности 1 (а именно 1,3,5,7,9,11,13,15,17,19 и 21). Бит четности 4 тоже неправильный. Это значит, чтоизменил значение один из следующих битов: 4,5,6,7,12,13,14,15,20,21. Ошибка должна быть в бите, который содержится в обоих списках. В данном случае общими являются биты 5,7,13,15 и 21. Поскольку бит четности 2 правильный, биты 7 и 15 исключаются. Правильность бита четности 8 исключает наличие ошибки в бите 13.

Наконец, бит 21 также исключается, поскольку бит четности 16 правильный. В итоге остается бит 5, в котором и содержится ошибка. Поскольку этот бит имеет значение 1, он должен принять значение 0. Именно таким образом исправляются ошибки.

Чтобы найти неправильный бит, сначала нужно подсчитать все биты четности. Если они правильные, ошибки нет (или есть, но больше одной). Если обнаружились неправильные биты четности, то нужно сложить их номера. Сумма, полученная в результате, даст номер позиции неправильного бита. Например, если биты четности 1 и 4 неправильные, а 2,8 и 16 правильные, то ошибка произошла в бите 5 (1+4).

2.Кэш-память

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

которое ему нужно. Чем медленнее работает память, тем дольше процессору приходится ждать, тем больше циклов должно пройти.

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

Другое решение проблемы - сконструировать машину, которая не приостанавливает работу, но следит, чтобы программы-компиляторы не использовали слова до того, как они считаются из памяти. Однако это не так просто осуществить на практике. Часто при выполнении команды загрузки машина не может выполнять другие действия, поэтому компилятор вынужден вставлять пустые команды, которые не производят никаких операций, но при этом занимают место в памяти. В действительности при таком подходе простаивает не аппаратное, а программное обеспечение, но снижение производительности при этом такое же. На самом деле эта проблема не технологическая, а экономическая. Инженеры знают, как построить память, которая будет работать так же быстро, как и процессор, но при этом ее приходится помещать прямо на микросхему процессора (поскольку информация через шину поступает очень медленно). Установка большой памяти на микросхему процессора делает его больше и, следовательно, дороже, и даже если бы стоимость не имела значения, все равно существуют ограничения в размерах процессора, который можно сконструировать. Таким образом, приходится выбирать между быстрой памятью небольшого размера и медленной памятью большого размера. Мы бы предпочли память большого размера с высокой скоростью работы по низкой цене. Интересно отметить, что существуют технологии сочетания маленькой и быстрой памяти с большой и медленной, что позволяет получить и высокую скорость работы, и большую емкость по разумной цене. Маленькая память с высокой скоростью работы называется кэш-памятью (от французского слова cacher «прятать»1;читается «кэш»). Ниже мы кратко опишем, как используется кэш-память и как она работает. Более подробное описание см. в главе 4. Основная идея кэш-памяти проста: в ней находятся слова, которые чаще всего используются. Если процессору нужно какое-нибудь слово, сначала он обращается к кэш-памяти. Только в том случае, если слова там нет, он обращается к основной памяти. Если значительная часть слов находится в кэш-памяти, среднее время доступа значительно сокращается. Таким образом, успех или неудача зависит от того, какая часть слов находится в кэш-памяти. Давно известно, что программы не обращаются к памяти наугад. Если программе нужен доступ к адресу А, то скорее всего после этого ей понадобится доступ к адресу, расположенному поблизости от А. Практически все команды обычной программы (за исключением команд перехода и вызова процедур) вызываются из последовательных участков памяти. Кроме того, большую часть времени программа тратит на циклы, когда ограниченный набор команд выполняется снова и снова. Точно так же при манипулировании матрицами программа, скорее всего, будет обращаться много раз к одной и той же матрице, прежде чем перейдет к чему-либо другому. То, что при последовательных отсылках к памяти в течение некоторого промежутка времени используется только небольшой ее участок, называется принципом локальности. Этот принцип составляет основу всех систем кэш-памяти. Идея состоит в следующем: когда определенное слово вызывается из памяти, оно вместе с соседними словами переносится в кэш-память, что позволяет при очередном запросе быстро обращаться к следующим словам. Общее устройство процессора, кэш-памяти и основной памяти показано на рис. 2.13. Если слово считывается или записывается к раз, компьютеру понадобится сделать 1 обращение к медленной основной памяти и к-1 обращений к быстрой кэш-памяти. Чем больше к, тем выше общая производительность.

Мы можем сделать более строгие вычисления. Пусть с - время доступа к кэш-памяти, m - время доступа к основной памяти и h - коэффициент совпадения, который показывает соотношение числа ссылок к кэш-памяти и общего числа всех ссылок. В нашем примере h=(k~l)/k. Таким образом, мы можем вычислить среднее время доступа:

среднее время доступа =с+(1 -h)m.

Если h-И и все обращения делаются только к кэш-памяти, то время доступа стремится к с. С другой стороны, если h-»0 и каждый раз нужно обращаться к основной памяти, то время доступа стремится к с+ш: сначала требуется время с для проверки кэш-памяти (в данном случае безуспешной), а затем время m для обращения к основной памяти. В некоторых системах обращение к основной памятиможет начинаться параллельно с исследованием кэш-памяти, чтобы в случае неудачного поиска цикл обращения к основной памяти уже начался. Однако эта стратегия требует способности останавливать процесс обращения к основной памяти в случае результативного обращения к кэш-памяти, что делает разработку такого компьютера более сложной. Основная память и кэш-память делятся на блоки фиксированного размера с учетом принципа локальности. Блоки внутри кэш-памяти обычно называют строками кэш-памяти (cache lines). Если обращение к кэш-памяти нерезультативно, из основной памяти в кэш-память загружается вся строка, а не только необходимое слово. Например, если строка состоит из 64 байтов, обращение к адресу 260 повлечет за собой загрузку в кэш-память всей строки, то есть с 256-го по 319-й байт.

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

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

Первый вопрос - размер кэш-памяти. Чем больше размер, тем лучше работает память, но тем дороже она стоит.

Второй вопрос - размер строки кэш-памяти. Кэш-память объемом 16 Кбайт можно разделить на 1К строк по 16 байтов, 2К строк по 8 байтов и т. д. Третий вопрос - как устроена кэш-память, то есть, как она определяет, какие именно слова содержатся в ней в данный момент. Устройство кэш-памяти мы рассмотрим подробно в главе 4.

Четвертый вопрос - должны ли команды и данные находиться вместе в общей кэш-памяти. Проще разработать смежную кэш-память, в которой хранятся и данные, и команды. При этом вызов команд и данных автоматически уравновешивается. Тем не менее, в настоящее время существует тенденция к использованию разделенной кэш-памяти, когда команды хранятся в одной кэш-памяти, а данные - в другой. Такая структура также называется Гарвардской (Harvard Architecture), поскольку идея использования отдельной памяти для команд и отдельной памяти для данных впервые воплотилась в компьютере Маге III, который был создай Говардом Айкеном в Гарварде. Современные разработчики пошли по этому пути, поскольку сейчас широко используются процессоры с конвейерами, а при такой организации должна быть возможность одновременного доступа и к командам, и к данным (операндам). Разделенная кэш-память позволяет осуществлять параллельный доступ, а общая - нет. К тому же, поскольку команды обычно не меняются во время выполнения, содержание командной кэш-памяти никогда не приходится записывать обратно в основную память.

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

Министерство образования и науки нижегородской области

Государственное бюджетное образовательное учреждение

среднего профессионального образования

«Борский Губернский колледж»

Специальность 230701 Прикладная информатика (по отраслям)

Реферат

На тему: Структура оперативной памяти.

По дисциплине: Операционные системы и среды.

Выполнил:

студент гр. ИТ-41

Родов А.Е.

Проверил:

Марков А.В.

Городской округ города Бор

201 5

Введение

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

входные, выходные промежуточные данные, обрабатываемые процессором.

  1. Структура оперативной памяти

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

  1. Сегментная модель памяти

Когда-то давно, на заре рождения компьютерной техники, оперативная память была очень маленькой и для ее адресации использовались 2 байта (так называемое «слово»). Такой подход позволял адресовать 64 Кб памяти, и адресация была линейной - для указания адреса использовалось одно-единственное число. Позже, с усовершенствованием техники, производители поняли, что имеется возможность поддерживать большие объемы памяти, но для этого нужно сделать размер адреса больше. Для совместимости с уже написанным программным обеспечением было решено сделать так: адресация теперь двухкомпонентная (сегмент и смещение), каждая из которых 16-битная, а старые программы как использовали одну 16-битную компоненту и ничего не знают о сегментах, так и продолжают работать

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

Логическое строение оперативной памяти

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

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

Логическое строение делится на 5 зон:

1. Conventional memory – основная память;

Начинается с адреса 00000 (0000:0000) и до 90000 (9000:0000). Это занимает 640 Кбайт. В эту область грузится в первую очередь таблица векторов прерываний, начиная с 00000 и занимает 1 Кбайт, далее следуют данные из BIOS (счетчик таймера, буфер клавиатуры и т. д.), а затем уж всякие 16 разрядные программы DOS (для них 640 Кбайт – барьер, за который могут выскочить только 32 разрядные программы). На данные BIOS ’а отводится 768 байт.
2. UMA (Upper Memory Area ) – верхняя память;

Начинается с адреса А0000 и до FFFFF . Занимает она 384 Кбайт. Сюда грузится информация, связанная с аппаратной частью компьютера. UMA можно разделить на 3 части по 128 Кбайт. Первая часть (от А0000 до BFFFF ) предназначена для видеопамяти. В следующую часть (от C 0000 до DFFFF ) грузятся программы BIOS адаптеров. Последняя часть (от E 0000 до FFFFF ) зарезервирована для системной BIOS . Дело в том, что последние 128 Кбайт не полностью используются. В большинстве случаев под BIOS задействованы только последние 64 Кбайт. Свободная же часть UMB управляется драйвером EMM 386. EXE и используется для нужд операционной системы.
3. HMA (High Memory Area) – область верхней памяти ;

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

История появления области HMA тянется аж к 80286 процессору, а точнее к ошибке в его схеме. Я уже говорил, что процессоры 8086 и 8087 имели 20 разрядную адресную шину, работали в реальном режиме и могли максимально обратится по адресу FFFFF (FFFF :000 F ). А вот 80286 процессор имел уже 24 разрядную шину адреса, работал в реальном и защищенном режимах и мог адресовать до 16 Мбайт памяти.
4. XMS (eXtended Memory Specification ) – дополнительная память;

Что бы работать в XMS используя DOS , для процессоров был разработан еще один режим – виртуальный. DOS не может переплюнуть барьер в 640 Кбайт, виртуальный режим позволяет разбить дополнительную память на части по

1 Мбайту. В каждую часть грузится по программе DOS и там они варятся в реальном режиме но уже не мешая друг другу выполнятся одновременно. 32 разрядным приложениям на барьер в 640 Кбайт все равно. XMS отвечает за перевод режимов процессора драйвер EMM 386. EXE , а за организацию самой области – HIMEM . SYS . Посмотреть, что творится у Вас в XMS можно с помощью SysInfo из набора Norton Utilities.
5. EMS (Expanded Memory Specification) – расширенная память;

Находится эта область в верхней памяти и занимает порядка 64 Кбайт. Использовалась она лишь в старых компах с оперативной памятью до

1 Мбайта. В силу своей спецификации это достаточно медленная область. Дело в том, что расширенная память – это один из многих коммутируемых сегментов. После того, как сегмент заполнится, происходит смена использованного сегмента новым. Но работать можно только с одним сегментом, а это, Вы сами должны понимать, не совсем хорошо, удобно и быстро. Как правило первый сегмент EMS находится по адресу D 000.

Логическое строение оперативной памяти в графическом виде.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

4. DRAM – Dynamic Random Access Memory

DRAM - это очень старый тип микросхем оперативной памяти, который сейчас уже давно не применяется. По другому DRAM – это динамическая память с произвольным порядком выборки. Минимальной единицей информации при хранении или передаче данных в компьютере является бит. Каждый бит может быть в двух состояниях: включен (да, 1) или выключен (нет, 0). Любой объем информации в конечном итоге состоит из включенных и выключенных битов. Таким образом, что бы сохранить или передать какой либо объем данных, необходимо сохранить или передать каждый бит, не зависимо от его состояния, этих данных.

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

Каждая ячейка способна хранить только один бит. Если конденсатор ячейки заряжен, то это означает, что бит включен, если разряжен – выключен. Если необходимо запомнить один байт данных, то понадобится 8 ячеек (1 байт = 8 битам). Ячейки расположены в матрицах и каждая из них имеет свой адрес, состоящий из номера строки и номера столбца.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

Теперь рассмотрим, как происходит чтение. Сначала на все входы подается сигнал RAS (Row Address Strobe) – это адрес строки. После этого, все данные из этой строки записываются в буфер. Затем на регистр подается сигнал CAS (Column Address Strobe) – это сигнал столбца и происходит выбор бита с соответствующим адресом. Этот бит и подается на выход. Но во время считывания данные в ячейках считанной строки разрушаются и их необходимо перезаписать взяв из буфера.

Теперь запись. Подается сигнал WR (Write) и информация поступает на шину столбца не из регистра, а с информационного входа памяти через коммутатор, определенный адресом столбца. Таким образом, прохождение данных при записи определяется комбинацией сигналов адреса столбца и строки и разрешения записи данных в память. При записи данные из регистра строки на выход не поступают.

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

Это означает, что за один раз будет считан не один бит, а несколько. Если параллельно расположено 8 матриц, то сразу считан будет один байт. Это называется разрядностью. Количество линий, по которым будут передаваться данные от (или на) параллельных матриц, определяется разрядностью шины ввода/вывода микросхемы.
Говоря о работе DRAM необходимо учитывать один момент. Все заключается в том, что конденсаторы не могут бесконечно долго хранить заряд и он в конце концов «стекает», Поэтому конденсаторы необходимо перезаряжать. Операция перезарядки называется Refresh или регенерацией. Происходит эта операция примерно каждые 2 мс и порой занимает до 10 % (а то и больше) рабочего времени процессора.

Важнейшей характеристикой DRAM является быстродействие, а проще говоря продолжительность цикла + время задержки + время доступа, где продолжительность цикла – время, затраченное на передачу данных, время задержки – начальная установка адреса строки и столбца, а время доступа – время поиска самой ячейки. Измеряется эта фигня в наносекундах (одна миллиардная доля секунды). Современные микросхемы памяти имеют быстродействие ниже 10 мс.

Оперативной памятью управляет контроллер, который находится в чипсете материнской платы, а точнее в той его части, которая называется North Bridge.

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

А теперь поняв как работает оперативная память, разберемся, зачем же она вообще нужна. После процессора, оперативную память можно считать самым быстродействующим устройством. Поэтому основной обмен данными и происходит между этими двумя девайсами. Вся информация в персональном компьютере хранится на жестком диске. При включении компа в ОЗУ (Оперативное Запоминающее Устройство) с винта записываются драйвера, специальные программы и элементы операционной системы. Затем туда будут записаны те программы – приложения, которые Вы будете запускать. При закрытии этих программ они будут стерты из ОЗУ. Данные, записанные в оперативной памяти, передаются в CPU (Central Processing Unit), там обрабатываются и записываются обратно. И так постоянно: дали команду процессору взять биты по таким то адресам, как то их там обработать и вернуть на место или записать на новое – он так и сделал.

Все это хорошо, до тех пор, пока ячеек ОЗУ хватает. А если нет? Тогда в работу вступает файл подкачки. Этот файл расположен на жестком диске и туда записывается все, что не влезает в ячейки оперативной памяти. Поскольку быстродействие винта значительно ниже ОЗУ, то работа файла подкачки сильно замедляет работу системы. Кроме этого, это снижает долговечность самого жесткого диска.

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

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ППП ПИ 23.00.00 ТО

Интернет ресурсы

http://nikesina.ucoz.ru/

http://www.whatis.ru/

http://wiki.mvtom.ru/

http://www.teryra.com/

http://smartronix.ru/

http://allrefs.net/

http://sonikelf.ru/

http://beginpc.ru/

Список литературы

Практическое руководство системного администратора. (2012)

Эндрю Таненбаум, Тодд Остин - Архитектура компьютера (2013)

Архитектура компьютера

Основные элементы компьютера.

Компьютер состоит из 4-х структурных компонентов:

1) Процессор.

Осуществляет контроль за действиями компьютера, а также выполняет функции обработки данных. Если в системе есть только один процессор, он часто называется центральным процессором (CPU – central processing unit)

2) Основная память.

Здесь хранятся данные и программы. Эта память является временной. Часто её называют реальной или оперативной памятью.

3) Устройства ввода-вывода.

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

4) Системная шина. Определённые структуры и механизмы, обеспечивающие взаимодействие между процессором, основной памятью и устройствами ввода-вывода.

Основная память

PC – программный счетчик

IR – регистр команд

MAR – регистр адреса памяти

MBR – регистр буфера памяти

I/O AR – регистр адреса ввода-вывода

I/O BR – регистр буфера ввода-вывода

Рисунок 1. Компоненты компьютера: общая структура.

Одной из функций процессора является обмен данными с памятью. Для этого он обычно использует два внутренних (по отношению к процессору) регистра: регистр адреса памяти (memory address register – MAR), куда заносится адрес ячейки памяти, в которой будет производиться операция чтения – записи, и регистр буфера памяти (memory buffers register – MBR), куда заносятся данные, предназначенные для записи в память, или те, которые были прочитаны из неё. Аналогично, номер устройства ввода-вывода задается в регистре адреса ввода-вывода (I/O address register – I/O AR). Регистр буфера ввода-вывода (I/O buffer register – I/O BR) служит для обмена данными между устройством ввода-вывода и процессором.

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

Регистры процессора

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

Регистры процессора (выполняют две функции) делятся на 2 группы:

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

Регистры управления и регистры состояния. Используются в процессоре для контроля над выполняемыми операциями; с их помощью привилегированные программы операционной системы могут контролировать ход выполнения других программ.

Регистры, доступные пользователю:

Регистры данных. Могут использоваться любой машинной командой для операций с данными. Часто при этом накладываются определённые ограничения. Например, некоторые регистры предназначены для операций над числами с плавающей точкой, в то время как остальные – для хранения целых чисел.

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

Управляющие регистры и регистры состояния.

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

Кроме упомянутых регистров MAR, MBR, I/O AR, I/O BR, важными для выполнения команд, являются следующие:

Программный счетчик (program counter – PC). Содержит адрес команды, которая должна быть выбрана из памяти.

Регистр команд (instruction register – IR). Содержит последнюю выбранную из памяти команду.

В состав всех процессоров входит также регистр, известный под названием регистра слова состояния программы (program status word – PSW). В нем, как правило, содержатся коды условий и другая информация о состоянии, например, бит разрешения/запрещения прерываний или бит режима системный/пользовательский.

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