Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
manual-l2only.pdf
Скачиваний:
42
Добавлен:
05.06.2015
Размер:
300.19 Кб
Скачать

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

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

1.4. ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОРА С ПАМЯТЬЮ

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

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

Из сказанного ранее следует, что для организации такого взаимодействия требуется как минимум два набора сигналов, представляющих m разрядов адреса и n разрядов данных. Сами эти сигналы будем обозначать A0, A1, …, Am и D0, D1, …, Dn соответственно.

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

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

Распространённым способом является использование раздельных сигналов: один соответствует записи, а второй чтению данных из памяти.

12

Таблица 1.1: Сигналы выборки памяти

Режим

 

Сигналы

Вариант 1

Вариант 2

 

WR

RD

CS

 

WRRD

Нет доступа

0

0

0

не важно

Чтение

0

1

1

1

Запись

1

0

1

0

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

Второй подход предполагает, что есть один сигнал выбора памяти CS (от англ. Chip Select — выбор чипа) и второй сигнал WRRD, который определяет режим работы. Когда CS равен логическому нулю память находится в не выбранном положении и игнорирует значение сигнала WRRD. Когда сигнал CS переходит в состояние логической единицы режим работы памяти задаётся состоянием сигнала WRRD (при логическом нуле — запись, при единице — чтение).

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

1.4.1. Пример простейшего взаимодействия процессора с памятью

Рассмотрим пример взаимодействия процессора с памятью для некоторого воображаемого процессора с 4-разрядными данными и 6- разрядным адресом. Сложно сказать существует ли такой процессор в природе. Если читатель хочет добавить реалистичности он может дорисовать ещё 12 разряда данных и 14 разрядов адреса самостоятельно.

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

13

Процессор Память

 

 

 

 

 

 

 

 

 

Питание

A1

 

 

 

Питание

A1

 

 

 

 

 

 

 

 

 

 

 

 

D0

A2

 

 

 

D0

A2

 

 

 

 

 

 

 

 

 

D1

A3

 

 

 

D1

A3

 

 

 

 

 

 

 

 

 

D2

A4

 

 

 

D2

A4

 

 

 

 

 

 

 

 

 

D3

A5

 

 

 

D3

A5

 

 

 

 

 

 

 

 

 

A0

WR

 

 

 

A0

WR

 

 

 

 

 

 

 

 

 

Земля

RD

 

 

 

Земля

RD

 

 

 

 

 

 

 

 

Рис. 1.1: Пример подключения абстрактного процессора к памяти с сигналами выбора режима доступа

Таблица 1.2: Двоичное представление чисел 5 и 26

 

Число D = 5

 

 

Число A = 26

 

D3

 

D2

D1

 

D0

A5

A4

A3

A2

A1

A0

0

 

1

0

 

1

0

1

1

0

1

0

Итак, наш процессор имеет 4 разряда данных, что позволяет ему представлять числа от 0 до 24 1 = 15 и 6 разрядов адреса, позволяющих обращаться к 26 = 64 ячейкам памяти с адресами от 0 до 63.

Запись данных осуществляется процессором, поэтому он «заранее» знает, какое значение и по какому адресу будет записано. К примеру рассмотрим запись числа 5 по адресу 27.

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

Предположим, что в начальный момент на выходах A процессора, определяющих адрес, было установлено число 3. Откуда оно там взялось мы сказать не можем. Скорее всего это остаток какой-то предыдущей жизнедеятельности нашего процессора. Так же на выводах данных D был установлен логический ноль, как это изображено на рисунке 1.2а

Вкакой-то момент времени процессор начинает выполнение опера-

14

.RD .

.

.RD .

.

.

.

.WR

.WR

.

.

.A5

.A5

.

.

.A4

.A4

.

.

.A3

.A3

.

.

.A2

.A2

.

.

.

.

.A1

.

.A1

.

.

.

.A0

.A0

.

.

.D3

.D3

.

.

.D2

.D2

.

.

.D1

.D1

.

.

.D1

.D1

 

 

а) Цикл записи

б) Цикл чтения

Рис. 1.2: Диаграмма сигналов гипотетического процессора при выполнении чтения и записи в память

15

Таблица 1.3: Двоичное представление числа 11

Число A = 11

A5

A4

A3

A2

A1

A0

0

0

1

0

1

1

ции записи. Для этого он сначала должен подготовить информационные сигналы A и D. Впрочем, микросхему памяти это совершенно не интересовало: дело в том, что оба сигнала WR и RD были установлены в логический ноль и поэтому память не «слушала» что происходит на линиях данных и ничего на них не выдавала — просто отключилась от них. Такое состояние входов микросхемы называется третьим состоянием.

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

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

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

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

Через некоторое время после после поступления сигнала RD память производит подключение сигналов данных к внутреннему источнику сигнала. На диаграмме это изображено как сбрасывание сигнала в состо-

16

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