Машинные коды чисел

Автор работы: Пользователь скрыл имя, 26 Ноября 2014 в 14:53, контрольная работа

Краткое описание

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

Прикрепленные файлы: 1 файл

Mashinnye_kody_idrNeprochit_lektsii.doc

— 2.83 Мб (Скачать документ)

ПЗУ – используется для хранения неизменяемой информации (загрузочных программ тестирования, драйверов и пр., примером ПЗУ является BIOS – Base Input-Output System).

Логическая структура. Основная память имеет для ОЗУ и ПЗУ единое адресное пространство, которое определяет максимально возможное количество непосредственно адресуемых ячеек основной памяти. Адресное пространство зависит от разрядности адресных шин (2n).

 

Стандартная память 640 Кбайт

Верхняя память 384 Кбайта

64 Кбайта

Область служебных программ и данных ОС

576 Кбайт

Область программ и данных пользователя

256 Кбайт

Область видеопамяти и служебных программ

128 Кбайт

Область программ начальной загрузки ОС

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

ПЗУ


 

Непосредственно адресуемая память

Расширенная память

Стандартная (обычная) память (CMA)

Верхняя память (блоки UMA)

Высокая память (HMA)

 

640 Кбайт

384 Кбайта

64 Кбайта

Вся оставшаяся на ПК память


640 1024 1088 ………….

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

Стандартной памятью (CMA-Conventional Memory Area) называется непосредственно адресуемая память от 0 до 640 Кбайт. Верхняя память (UMA – Upper Memory Area) - это память от 640 до 1024 Кбайтов, которая зарезервирована в ПК для видеопамяти и ПЗУ, но может быть использована пользователем в качестве оперативной памяти. Расширенная память занимает область от 1024 Кбайт и выше, доступ к ней организуется драйверами: XMM – eXtended Memory Manager; EMM 386 – Expanded Memory Manager – отображаемая память. Расширенная память используется для хранения данных и некоторых программ ОС. Высокая память (HMA – High Memory Area) подключается драйвером HIMEM.SYS (High Memory Manager) и используется для хранения программ и данных.

 

Иерархическая организация памяти

 

Память компьютера имеет иерархическую структуру, центральным слоем которой является оперативная память — ОЗУ или RAM (Random Access Memory — память с произвольным доступом). Оперативная память непосредственно доступна процессору: в ней хранится исполняемая в данный момент часть программного кода и данные, к которым процессор может обращаться с помощью одной из многих команд. Произвольность доступа подразумевает, что процессор в любой момент может считать или записать любой байт (слово, двойное слово и пр.) из этой памяти. 32-разрядные процессоры x86 способны адресовать до 4 Гбайт физической памяти (кроме 386SX, урезанных до 16 Мбайт), а процессоры P6 (Pentium Pro, Pentium II и старше) в режиме расширения адреса — до 64 Гбайт. Из этого потенциально доступного пространства именно для оперативной памяти используется только часть: большинство системных плат пока ограничивают объем устанавливаемого ОЗУ на уровне 256 Мбайт–1 Гбайт. В этом же пространстве располагается и постоянная память — ПЗУ, или ROM (Read Only Memory), которая в обычной работе только читается. В ПЗУ располагается BIOS (базовая система ввода-вывода) компьютера и некоторые другие элементы.

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

Последняя ступень иерархии — память на внешних носителях, или просто внешняя память. Она, так же, как и дисковая, является хранилищем файлов, и доступ к ней осуществляется поблочно.

Мы перечислили программно-видимую часть “айсберга” памяти — доступную произвольно или поблочно, прямо или последовательно. Есть еще и “подводная” часть — кэш-память. Оперативная память по меркам современных процессоров обладает слишком низким быстродействием, и, обратившись за данными, процессор вынужден простаивать несколько тактов до готовности данных. Начиная с процессоров 80386, оперативную память стали кэшировать (эта идея использовалась и в “древних” больших машинах, где было СОЗУ — сверхоперативное ЗУ). Идея кэширования ОЗУ заключается в применении небольшого (по сравнению с ОЗУ) запоминающего устройства — кэш-памяти с более высоким быстродействием. Небольшого — потому, что по технико-экономическим причинам большой объем очень быстрой памяти обходится слишком дорого. В этой памяти хранится копия содержимого части ОЗУ, к которой в данный момент процессор наиболее интенсивно обращается. Определять, какую часть содержимого ОЗУ копировать в данный момент времени, должен контроллер кэша. Он это может делать, исходя из предположения о локальности обращений к данным и последовательности выборок команд. Кэш-память не дает дополнительного адресуемого пространства, ее присутствие для программы незаметно.

Организация кэш-памяти

 

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

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

 

Размер блока (строки) 

4-128 байт 

Время попадания (hit time)

1-4 такта синхронизации (обычно 1 такт)

Потери при промахе (miss penalty)

(Время доступа - access time)

(Время пересылки - transfer time)

8-32 такта синхронизации

(6-10 тактов синхронизации)

(2-22 такта синхронизации) 

Доля промахов (miss rate)

1%-20% 

Размер кэш-памяти

4 Кбайт - 16 Мбайт


 

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

 

Размещение блока в кэш-памяти

 

Принципы размещения блоков в кэш-памяти определяют три основных типа их организации:

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

 

(адрес блока кэш-памяти) =

(адрес блока основной памяти) mod (число блоков в кэше)

 

Если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным (fully associative).

Если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным (set associative). Обычно множество представляет собой группу из двух или большего числа блоков в кэше. Если множество состоит из n блоков, то такое размещение называется множественно-ассоциативным с n каналами (n-way set associative). Для размещения блока прежде всего необходимо определить множество. Множество определяется младшими разрядами адреса блока памяти (индексом):

 

(адрес множества  кэш-памяти) =

(адрес блока  основной памяти) mod (число множеств в кэш-памяти)

 

Далее, блок может размещаться на любом месте данного множества.

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

В накопителях данные записываются в виде дорожек; каждая дорожка, в свою очередь, состоит из секторов. На рисунке показан магнитный диск 5,25-дюймовой дискеты на 360 Кбайт, состоящий из 40 дорожек на каждой стороне, а каждая дорожка разделена на 9 секторов.


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

Накопители на жестких магнитных дисках

 

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

 

Данные на диске хранятся в виде файлов – именованная область внешней памяти, выделенная для хранения массива данных. На диске файл размещается в свободных кластерах в разных частях диска. Весь диск поделен на дорожки и на каждой дорожке размещается определенное число секторов. Сведения о номерах кластеров файла хранятся в FAT – File Allocation Table, таблице размещения файлов. Количество ячеек FAT – таблицы определяется количеством кластеров на диске и каждая ячейка таблицы содержит номер кластера с адресами записанных в них частей файлов. Сектор - область на диске, размер которого определяется в зависимости от используемой таблицы размещения файлов FAT:

  • FAT 12 – 128 байтов, применяется для НГМД для записи информации на дискету;
  • FAT 16 – 256 байтов;
  • FAT 32 – 512 байтов;
  • NTFS – 1024 байта, используется в ОС Windows XP и выше.

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

На одном диске могут создаваться логические диски, которые маркируются буквами С, D, E, F…, а управление их созданием осуществляется специальной программой. Выбор свободных кластеров для записи файлов происходит хаотично, т.е. информация на дисках хранится фрагментированно. Поэтому для считывания фалов больших размеров ПК тратит значительное время. Для ускорения этого процесса производят дефрагментацию дисков – перенос записанных кластеров с периферии диска к центру с перезаписью их адресов в таблице FAT.

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

 

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

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

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

В начале каждого сектора записывается его заголовок (или префикс — prefix portion), по которому определяется начало и номер сектора, а в конце — заключение (или суффикс — suffix portion), в котором находится контрольная сумма (checksum), необходимая для проверки целостности данных.

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

Информация о работе Машинные коды чисел