Разработка ЭВМ



 

 

 

 

 

 

 

 

Курсовая работа

по дисциплине «Организация ЭВМ»

 

 

 

 

 

 

 

Факультет:                           

Группа:                           

Студент:                           

Преподаватель:             

 

 

 

 

 

 

 

 

 

 

 

 

 

Новосибирск, 2009


1. Цель работы

2. Задание

3. Разработка гипотетической ЭВМ

3.1 Разработка центрального процессора

3.1.1 Операционный блок

3.1.2 Микропрограммное устройство управления

3.2. Система прерываний

3.3 Кэш-память

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

3.5 Прямой доступ к памяти

3.6 Контроль по Хеммингу

3.7 Блок синхронизации и таймер

3.8 Устройства ввода – вывода

Клавиатура

Монитор

Жесткий диск

4. Разработка арифметического сопроцессора

Алгоритм операции умножения.

Алгоритм операции деления.

Заключение

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


1. Цель работы

 

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

Курсовой проект посвящен разработке структурной схемы гипотетической ЭВМ, принципиальной схемы и алгоритма(ов) работы конкретного блока, входящего в состав этой ЭВМ.

 

2. Задание

 

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

В состав ЭВМ входят следующие блоки:

            центральное обрабатывающее устройство (ЦОУ);

            микропрограммное устройство управления (УУ);

            оперативная память (ОП);

            блок синхронизации (БС);

            система прерывания программ (СПП);

            таймер;

            система ввода-вывода (СВВ);

            монитор, клавиатура, мышь;

Основные параметры ЭВМ:

            адресность ЭВМ - двухадресная;

            длина команды - переменная.

Разрядность ЭВМ и минимальный объем оперативной памяти выбираются самостоятельно, но должны удовлетворять следующим ограничениям:

            разрядность - не менее 16;

            емкость ОП - не менее 1 Гб.

Индивидуальные исходные данные:

       Структура ЭВМ - 3-х шинная;

       Сопроцессор – арифметический сопроцессор;

       Система прерываний – радиальная макро;

       КЭШ – команд и данных (объединенный);

       Оперативная память – обычная (многоблочная);

       Ввод – вывод напрямую (DMA – direct memory access);

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


3. Разработка гипотетической ЭВМ

Рис. 1. Структурная схема ЭВМ

 

Для соединения нескольких функциональных устройств компьютера используют общую (системную) шину. В соответствии с вариантом задания гипотетическая ЭВМ имеет 3-х шинную организацию. Системная шина состоит из шины данных (DB), адресной шины (AB) и шины управления (CB).

В соответствии с их названиями можно понять, за что каждая из них отвечает:

1) Шина данных – на нее выставляются данные, от отправителя к получателю.

2) Адресная шина – не нее выставляются биты адреса ячейки, в которую мы хотим разместить данные.

3) Шина управления – на нее выставляются все управляющие сигналы.


3.1 Разработка центрального процессора

 

В состав центрального процессора входит операционный блок (ОБ), адресный сопроцессор и микропрограммное устройство управления (МУУ). В состав ОБ входит арифметико-логическое устройство (АЛУ), статусный регистр, логика сдвигов и интерфейсные элементы для работы на магистральные шины. ОБ выполняет арифметические, логические и сдвиговые операции. Адресный сопроцессор выполняет операции по обработке адресов. МУУ управляет работой всех устройств ЭВМ, а так же работой ОБ и адресного сопроцессора.

3.1.1 Операционный блок

 

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

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

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

Так же следует заметить, что, не смотря на то, что МПС IDT49C402 имеет 64 регистра в регистровом файле, для упрощения формата команд используется только 16 (т.е. 4 бита в адресном поле).

По фронту синхросигнала данные загружаются с шины данных DB во входной регистр RG IN, откуда они передаются в МПС. В это же время на входы выбора РОН поступает адрес либо из Рг. К., либо из Рг. МК. В зависимости от выполняемой АЛУ операции, результат может быть подан на выходную шину данных Y, где они в следующем цикле будут захвачены регистром RG OUT и переданы на шину данных (например, при операции пересылки регистр – память), либо сохранен в регистровом файле. Сформированные флаги АЛУ подаются на вход статусного регистра, но будут записаны в регистр только в начале следующего цикла, по фронту синхросигнала.

 

Рис. 2 Структурная схема ОБ

 

 

3.1.2 Микропрограммное устройство управления

 

МУУ состоит из:

 

           Регистр команд;

           Преобразователь начального адреса (ПНА);

           Секвенсор микрокоманд;

           Микропрограммная память (МПП);

           Регистр микрокоманд.

 

Структурная схема МУУ приведена на рисунке 3.

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

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

 

Рис. 3 Структурная схема МУУ

 

Адрес следующей микрокоманды может поступать из трех источников: из регистра микрокоманд, из ПНА либо из шины данных (Vector ПУ). Выбор источника контролируется выходами PL, MAP и INT. Первые два источника адреса используется при операции ветвления, а последний – при прерывании. Условие тестирования задает текущая микрокоманда.

              Секвенсор МК адресует до 4096 микрокоманд разрядностью 12 бит, может инкрементировать поступивший адрес, т.о. обеспечивая линейное выполнение микропрограммы, так же имеет стек глубиной в 9 адресов, поддерживает циклы до 4096 повторений.
3.2. Система прерываний

 

Система прерывания программ (для внешних прерываний) – радиальная макро. Это значит, что имеется индивидуальная линия запроса прерывания от каждого ПУ к контроллеру прерываний, который выдаёт на процессор сигнал прерывания, а в шину данных – вектор прерывания. Так же можно запрещать прерывания, используя маску прерываний (её можно задавать програмно для запрещения каких-либо определённых прерываний, кроме немаскируемых прерываний). Запоминание состояния процессора идет на макро уровне (уровне команд). Приоритет зависит от номера входа на контроллер прерываний.

 

                                                        Запрос 0             

                                                                                                          INT

                                                        Запрос1

                            .                            .

                            .                            .                                             VECT м

Запрос k                                              а

                                                                                                                    с

                                                                                                                    к

                                                                                                                    а                                 DB

 

 

 

Маска прерывания представляет собой двоичный код, разряды которого поставлены в соответствие запросам прерывания. Состояние «1» в данном разряде регистра маски разрешает, а состояние «0» запрещает (маскирует) прерывание от соответствующего запроса.

Способ формирования и передачи в ЦПУ вектора прерываний:

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

Принятый способ возврата из прерываний и его реализация:

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

Запоминание и восстановление состояния прерываемой программы:

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

       Регистров общего назначения

       регистр состояния

       счётчик команд IP

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


3.3 Кэш-память

 

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

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

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

 

Рис. 6. Процессор с кэш-памятью

 

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

При каждом обращении к памяти контроллер кэш-памяти проверяет, есть ли действительная копия затребованных данных в кэш-памяти и одновременно инициирует обращение к основной памяти. Если она там есть, то это случай кэш-попадания (cash hit) и обращение за данными происходит только к кэш-памяти, а обращение к основной памяти прерывается. Если действительной копии там нет, то это случай кэш-промаха (cash miss), и данные берутся из основной памяти.

Алгоритм сквозной  записи WT (Write Through): предусматривает запись как в кэш (если блок памяти там представлен), так и в основную память. При этом в ОП всегда есть последняя копия хранящейся в кэш информации. Однако в этом случае длинный цикл ОП снижает производительность процессора.

Алгоритм обратной записи WB (Write Back): если блок памяти, в который должна производится запись, отображен в кэш, то запись производится в кэш, и строка помечается как модифицированная (dirty). Данные копируются в ОП только при передаче в другие устройства или при вытеснении из кэш.

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

Кэш команд полностью ассоциативный с алгоритмом записи WB, с алгоритмом замещения строки, последнее обращение к которой было раньше LRU (Last Recently Used). Кэш данных наборно-ассоциативный с алгоритмом записи WB, алгоритм замещения строки - LRU.

 

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

 

В данной 32-х разрядной ЭВМ ЦП позволяет адресовать 4096 Mb ячеек памяти, причем необходимо использование старших битов адреса для выбора типа памяти, но это ни в коем случае не повлияет на возможности системы.

Основная память (ОП) ЭВМ должна содержать:

-  оперативную (ОЗУ) память для временного хранения данных;

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

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

Сигнал - необходим только для блока ОЗУ, т.к. при выборе блока ПЗУ операции по записи данных не возможны.

Исходя из выше сказанного, возможно построение структурной схемы основной памяти (рис. 7).

Рис.7 Структурная схема основной памяти

 

Все блоки памяти должны иметь разрядность хранимого слова равную 39 битам, 32 бита данных и контрольных 7 битов для обнаружения и исправления ошибок по коду Хемминга. В контроллер памяти входит блок контроля по Хеммингу.

3.5 Прямой доступ к памяти

 

Для обмена информацией между ОП и НГМД и «винчестером» (ПУ с блочной передачей) используется прямой доступ к памяти. Это позволяет освободить ЦП от необходимости управлять обменом данных и, следовательно, предоставлять ему возможность выполнения других задач во время пересылки (не используя магистраль), а также обеспечивает высокую скорость пересылки данных [2].

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

Мультиплексируемая шина адреса/данных подразумевает перед передачей слова в память или из памяти передачу адреса в память (п. 2.1), снижая пропускную способность шины почти в два раза. При передаче блока данных обычно используют последовательно расположенные ячейки памяти. В таком случае в память можно передавать только начальный адрес блока данных, а формирование текущего адреса возложить на устройство управления памятью [1].

Возникает также проблема длительной монополизации интерфейса контроллером ПДП. Для высокоскоростных ПУ более предпочтительна блочная передача, при которой процессор останавливается на все время передачи (без запоминания слова состояния) или работает, не используя магистраль, т.е. если информация есть в КЭШе. Для медленных ПУ предпочтителен режим захвата цикла шины [2] (одноцикловый [1]), при котором выполнение программы (процессор не блокируется) и пересылка с ПДП совмещаются во времени. Если цикл памяти нужен одновременно и ЦП и ПУ, осуществляющему пересылку с ПДП, то приоритет отдается последнему, а ЦП ожидает окончания цикла ПДП. При длительном использовании магистрали функция регенерации ОП лежит на КПДП. В контролерах ПДП для каждого устройства (распределенный ПДП [2]) реализуется один из приведенных режимов в зависимости от их скоростных характеристик: «винчестер» - блочная передача, НГМД – с захватом цикла. Достоинством распределенного ПДП является то, что аппаратные затраты для реализации ПДП увеличиваются только при добавлении устройств ввода-вывода.

       Процедура ввода-вывода с ПДП:

       ЦП опрашивает готовность ПУ.

       ЦП пересылает команду в КПДП.

       КПДП передает команду в ПУ (это команда управления ПУ).

       Процедура захвата шины:

       КПДП выставляет сигнал DMR

       ЦП предоставляет шину, выставляя DMG

       КПДП выставляет сигнал SACK (шина занята).

КПДП начинает обмен. ЦП работает в соответствии с одним из описанных выше режимов: блочная передача или с захватом цикла шины.

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

 


3.6 Контроль по Хеммингу

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

Для реализации контроля и исправления ошибок в памяти с использованием кода Хемминга возможно синтезировать схему на ПМЛ, позволяющую строить системы контроля на 32 бита.

При записи 32-разрядного слова в память корректор формирует 6-разрядный синдром и 1 разряд паритета, которые записываются в дополнительные разряды адресуемой ячейки ОЗУ (в памяти хранятся слова по 39 бит). При чтении слова из ячейки памяти информационные разряды поступают в корректор, туда же поступают и корректирующие разряды, схема вычисляет синдром.

Корректор анализирует полученную информацию и, если ошибки нет, то информационные разряды передаются на системную шину данных без изменений. В случае возникновения одиночной ошибки, корректирующая логика исправляет дефектный бит и формирует сигнал одиночной ошибки (#ERR), который дальше не нужен. Если же обнаруживается двукратная или более ошибка, то формируется сигнал «неисправимая ошибка» (#MERR), этот сигнал передается в систему прерываний, возникает соответствующее прерывание, которое должно быть обработано программой обработки такого рода ошибок.

3.7 Блок синхронизации и таймер

Блок синхронизации (БС) предназначен для обеспечения синхронной работы всех узлов ЭВМ. В его задачи входит генерация синхросигналов заданной формы и длительности для ЦПУ, таймера, контроллеров, основной памяти, кэща и других устройств, входящих в состав ЭВМ. Блок синхронизации должен обладать возможность изменения длительности синхросигналов, что бывает необходимо при отсутствии попадания в кэш, когда требуется прочитать данные из ОП, а так же при обмене с медленными периферийными устройствами.

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

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

 

3.8 Устройства ввода – вывода

Клавиатура

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

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

Монитор

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

Жесткий диск

Жесткий диск является одним из основных видов энергонезависимой памяти. Он используется для сохранения различных данных, которые генерируются исполняемыми программами. Жесткий диск подключается через контроллер ПДП, что позволяет производить запись на жесткий диск и чтение с него.


4. Разработка арифметического сопроцессора

 

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

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

Для выполнения умножения необходимо загрузить во входные регистры умножителя операнды из внутрипроцессорной шины Y или из Рг.З поочередно.

После выполнения умножения полученное 64-разрядное произведение из внутренних выходных регистров умножителя подается на вход D МПС, где происходит его запоминание в РОН. Также результат можно сразу занести в Рг.Y, что оказывается полезным например при выполнении операции возведения в степень.

Стандарт IEEE 754 о представлении чисел с плавающей точкой с одинарной точностью:

 

 

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

В отличие от общепринятого условия нормализации S = [М| < 1, в стандарте IEEE 754 используется условие i = |М| < 2.

Запись числа содержит смещенный порядок, то есть порядок, увеличенный на величину смещения, которое в стандарте IEEE 754 для одинарного формата равно 127, а для двойного — 1023.

Первой особенностью работы с числами с плавающей запятой является то, что в них операции производятся отдельно над тремя их составляющими. (знаками, мантиссами и порядками операндов) выполняются раздельно: блоком обработки знаков (БОЗ), блоком обработки порядков (БОП) и блоком обработки мантисс (БОМ).


 

 

 

 

 

 

 

 

 

                                         

 

 

 

 

 

 

 

Рис.8. Структурная схема операций умножения и деления.

 

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

Вычисление обратной величины методом Ньютона-Рафсона сводится к нахождению корня уравнения

то есть Х= 1/O. Решение может быть получено с привлечением рекуррентного соотношения: Xi+l = Xi (2 –XiD). Количество итераций определяется требуемой точностью вычисления X/D. Реализация метода для n-разрядных чисел требует 2 int(log2n) - 1 операций умножения.

Q=A/D, где A-мантисса делимого, D-мантисса делителя

Эта формула позволяет вычислять величину 1/D,

а X0 , X1 , X2 ,… - последовательные приближения этой величины.

Если первое приближение 0<X0<2/C, то Xi→1/С при i→∞. Для выбора X0 используется гипербола, зашитая в таблицу, находящуюся в МПП. При этом достигается точность y0 до 8-9 верных двоичных разрядов.

На предварительном этапе может быть также выполнена проверка на равенство нулю одного или обоих операндов (в стандарте IEEE 754 для представления нулевого значения используется такая запись числа, в которой нулю равны все Разряды порядка). Это позволяет исключить ненужные операции. Это делается в самом МПС, до попытки передачи чисел на сопроцессор.

Алгоритм операции умножения.

1.       Сумма знаков

Разработка ЭВМ