Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt1.doc
Скачиваний:
60
Добавлен:
21.11.2018
Размер:
3.2 Mб
Скачать
    1. Основные принципы работы

Рассмотрим адресные ЗУ. Команды, исполняемые ЭВМ при вы­полнении программы, равно как и числовые и символьные операн­ды, хранятся в памяти компьютера. Память состоит из многих мил­лионов ячеек, в каждой из которых содержится один бит информа­ции (значения 0 или 1). Биты редко обрабатываются поодиночке, а как правило, группами фиксированного размера. Для этого память организуется таким образом, что группы по п бит могут записывать­ся и считываться за одну операцию. Группа п бит называется сло­вом, а значение пдлиной слова.

Схематически память компьюте­ра можно представить в виде массива слов (рис. 2.14).

Обычно длина машинного слова компьютеров составляет от 16 до 64 бит. Если длина слова равна 32 битам, в одном слове может храниться 32-разрядное число в дополнительном коде или четыре символа ASCII, занимающих 8 бит каждый.

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

Для доступа к памяти с целью записи или чтения отдельных элементов информации, будь то слова или байты, необходимы име­на или адреса, определяющие их расположение в памяти. В качестве адресов традиционно используются числа из диапазона от 0 до 2k - 1 со значением k, достаточным для адресации всей памяти компьюте­ра. Все 2k адресов составляют адресное пространство компьютера. Следовательно, память состоит из 2к адресуемых элементов.

Напри­мер, использование 24-разрядных (как в процессоре 80286) адресов позволяет адресовать 224 (16 777 216) элементов памяти. Обычно это количество адресуемых элементов обозначается как 16 Мбайт (1 Мбайт = 220 = 1 048 576 байт).

Поскольку у процессоров 80386, 80486, Pentium и их аналогов 32-разрядные адреса, им соответствует адресное пространство из 232 байт, или 4 Гбайт элементов.

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

Па­мять, в которой каждый байт имеет отдельный адрес, называется памятью с байтовой адресацией. Последовательные байты имеют адреса 0, 1, 2 и т. д. Таким образом, при использовании слов длиной 32 бита последовательные слова имеют адреса 1, 4, 8,..., и каждое слово состоит из 4 байт.

Прямой и обратный порядок байтов.

Существует два способа ад­ресации байтов в словах:

  • в прямом порядке (рис. 2.15, а);

  • в обратном порядке (рис. 2.15, б).

Обратным порядком байтов (big-endian) называется система ад­ресации, при которой байты адресуются слева направо, так что са­мый старший байт слова (расположенный с левого края) имеет наи­меньший адрес.

Прямым порядком байтов (little-endian) называется противопо­ложная система адресации, при которой байты адресуются справа налево, так что наименьший адрес имеет самый младший байт сло­ва (расположенный с правого края). Слова «старший» и «младший» определяют вес бита, т. е. степень двойки, соответствующей данно­му биту, когда слово представляет число.

В ПЭВМ на основе 80x86 используется прямой порядок, а в ПЭВМ на основе Motoro­la 68000 — обратный. В обеих системах адреса байтов 0, 4, 8 и т. д. применяются в качестве адресов последовательных слов памяти в операциях чтения и записи слов.

Наряду с порядком байтов в слове важно также определить по­рядок битов в байте. Наиболее естественный порядок битов для ко­дирования числовых данных (непосредственно соответствующий их разрядам) «слева направо»: b32, ..., b1, Ь0. Однако существуют компь­ютеры, для которых характерен обратный порядок битов.

Расположение слов в памяти.

В случае 32-разрядных слов их ес­тественные границы располагаются по адресам 0, 4, 8 и т. д. При этом считается, что слова выровнены по адресам в памяти. Если гово­рить в общем, слова считаются выровненными в памяти в том слу­чае, если адрес начала каждого слова кратен количеству байтов в нем. По практическим причинам, связанным с манипулированием двоично-кодированными адресами, количество байтов в слове обычно является степенью двойки. Поэтому, если длина слова рав­на 16 бит (2 байтам), выровненные слова начинаются по байтовым адресам 0, 2, 4, ..., а если она равна 64 бит (23, т. е. 8 байтам), то вы­ровненные слова начинаются по байтовым адресам 0, 8, 16, ... .

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

Доступ к числам, символам и символьным строкам.

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

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

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

Операнды и результаты также должны пересылаться между па­мятью и процессором. Таким образом, для выполнения команды программы необходимо произвести две операции с памятью:

Load (также Read, или Fetch) — загрузка (или чтение, или вы­борка соответственно);

Store (или Write) — сохранение (или запись).

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

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

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

Конкретные системы оперативной памяти.

Память, хранящая об­рабатываемые в текущее время данные и выполняемые команды (программу), называется основной памятью — RAM (Random Access Memory), т. е. память с произвольным доступом. Она составляет ос­нову системной памяти. В ПК в большинстве случаях основная опе­ративная память строится на микросхемах динамического типа (DRAM — Dynamic Random Access Memory), где в качестве запоми­нающего элемента (ЗЭ) используется простейшая сборка, состоя­щая из одного транзистора и одного конденсатора. Основными при­чинами широкого применения этой памяти является высокая плот­ность интеграции (увеличение числа ЗЭ на чип и сокращение числа чипов, необходимых для одного модуля), малое потребление энер­гии (тратится минимум энергии на хранение одного бита, уменьша­ется потребляемая системой мощность, снижается стоимость) и т. д. Но имеются и недостатки: каждый ЗЭ представляет, по сути дела, разряжаемый со временем конденсатор, поэтому чтобы предотвра­тить потерю хранящейся в конденсаторах информации, микросхема RAM постоянно должна регенерироваться.

Имеется другой вид памяти, который лишен этого недостатка. Эта память называется статической (Static RAM — SRAM), где в ка­честве ЗЭ используется так называемый статический триггер (со­стоящий из 4—6 транзисторов). Из-за сложности ЗЭ плотность упа­ковки микросхем SRAM меньше, чем для DRAM. Следовательно, если бы SRAM устанавливалась в качестве оперативной памяти, то это привело бы к увеличению быстродействия ПК, однако при этом существенно изменилась бы его стоимость, поскольку стоимость микросхемы SRAM значительно выше стоимости DRAM. Для по­вышения быстродействия в настоящее время применяются различ­ные архитектурно-логические решения. Сейчас имеется множество различных типов памяти, отличающихся друг от друга своими ос­новными характеристиками.

Основная память соединяется с процессором посредством адрес­ной шины и шины данных. Каждая шина состоит из множества элек­трических цепей (линий или бит). Ширина (разрядность) адресной шины определяет, сколько адресов может быть в ОЗУ (адресное про­странство), а шины данных — сколько данных может быть передано за один цикл.

Например, в 1985 г. процессор Intel 386 имел 32-раз­рядную адресную шину, что дало возможность поддерживать адрес­ное пространство в 4 Гбайт. В процессоре Pentium (1993 г.) ширина шины данных была увеличена до 64 бит, что позволяет передавать 8 байт информации одновременно.

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

Для описания характеристик быстродействия оперативной па­мяти применяются так называемые циклы чтения/записи (или вре­менные схемы пакета). Дело в. том, что при обращении к памяти на считывание или запись первого машинного слова расходуется боль­ше тактов, чем на обращение к трем последующим словам. Так, для асинхронной SRAM чтение одного слова выполняется за 3 такта, за­пись — за 4 такта, чтение нескольких слов определяется последова­тельностью 3—2—2—2 такта, (что означает, что чтение 1-го элемен­та данных занимает 3 такта ЦП, включая 2 такта ожидания, а чте­ние последующих — по 2 временных такта), а запись — 4—3—3—3.

Лекция 20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]