Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров_1 / 9_Процессор-конвейер.doc
Скачиваний:
41
Добавлен:
20.03.2015
Размер:
284.67 Кб
Скачать

8.4. Выборка слова из памяти

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

Соединения регистра MDR показаны на рис. 8.4. У этого регистра четыре сиг­нала: MDRin, и MDRout управляют соединением с внутренней шиной, a MDRinE, и MDRoutE — соединением с внешней шиной. В представленную на рис. 8.3 схему легко добавить дополнительные соединения. В этом случае можно применить трехвходовый мультиплексор, а линия данных шины памяти может быть соеди­нена с третьим входом. Этот вход выбирается, когда MDRinE = 1. Второй вентиль с тремя состояниями, управляемый сигналом MDRoutE, может использоваться для соединения выхода триггера с шиной памяти.

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

Прежде чем вступать во взаимодействие с какими бы то ни было устройства­ми, процессор ждет сообщения о завершении запрошенной операции считывания. Мы будем считать, что для этой цели используется управляющий сигнал MFC (Memory Function Complete). Адресуемое устройство устанавливает значение этого сигнала в 1, указывая тем самым, что содержимое заданного адреса прочи­тано и помещено на линии данных шины памяти. Такими сигналами, в частности, могут быть сигналы Slave-ready.

Рис. 8.4. Соединения и управляющие сигналы регистра MDR

Ниже показано, как можно выполнить операцию чтения данных из памяти с по­мощью команды Move R2,(R1). Ее реализацию можно разбить на пять этапов.

1. Запись MAR ← [Rl].

2. Начало операции чтения с шины памяти.

3. Ожидание сигнала MFC на шине памяти.

4. Загрузка в MDR данных на шине памяти.

5. Запись R2 ← [MDR].

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

Для простоты изложения материала мы предполагаем, что выход регистра MAR доступен всегда. Следовательно, его содержимое всегда доступно на адрес­ных линиях шины. Это случай, когда процессор является хозяином шины. Когда в MAR загружается новый адрес, он появляется на шине памяти в начале следую­щего такта, как показано на рис. 8.5. Управляющий сигнал считывания активизи­руется одновременно с загрузкой регистра. В ответ на этот сигнал схема интер­фейса шины помещает на шину команду чтения MR. При такой организации действия 1 и 2 можно объединить в один управляющий шаг. Действия 3 и 4 тоже можно объединить, если активизировать управляющий сигнал MDRinE во время ожидания ответа основной памяти. Полученные из памяти данные будут загруже­ны в MDR в конце того такта, на котором получен сигнал MFC. На следующем такте для пересылки данных в регистр R2 активизируется линия MDRout Это оз­начает, что операция чтения данных из памяти может быть выполнена за три шага.

1. R1out, MARin, Read.

2. MDRinE,WMFC.

3. MDRout, R2in.

Здесь WMFC — это управляющий сигнал, сообщающий управляющим схе­мам процессора, что они должны ждать поступления сигнала MFC.

Т.к. сигнал MDRinE устанавливается в 1 на время действия команды чтения MR, то в дальнейшем мы не будем явно указывать значение MDRinE, поскольку оно всегда совпадает с длительностью выполнения команды MR.