МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ВТ

Курсовой проект

по дисциплине

«Организация ЭВМ и систем»

Факультет: АВТ

Группа: АМ-411

Студент:

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

Новосибирск 2007

Содержание

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

3

2. Исходные данные к проекту

3

3. Разработка структурной схемы ЭВМ

4

3.1 Центральный процессор

5

3.2 Оперативная память (ОП)

8

3.3 Блок синхронизации

10

3.4 Система прерывания программ

10

3.5 Таймер

11

3.6 Система ввода-вывода

11

3.7 Монитор и видеоадаптер

13

3.8 Клавиатура и мышь

13

3.9 Жесткий диск и НГМД

13

4. Разработка принципиальной схемы КЭШ

14

4.1 Основные характеристики кэш-памяти

14

4.2 Способ отображения оперативной памяти на кэш-память

15

4.3 Алгоритм замещения информации в заполненной кэш-памяти

16

4.4 Алгоритм согласования содержимого кэш-памяти и основной памяти

17

4.5 Смешанная и разделенная кэш-память

17

4.6 Выбор элементной базы для принципиальной схемы КЭШа

18

4.7 Принципиальная схема КЭШ

20

5. Заключение

22

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

23


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

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

НЕ нашли? Не то? Что вы ищете?

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

2. Исходные данные к проекту

Курсовой проект состоит из двух частей.

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

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

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

Общее задание

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

центральное процессорное устройство (ЦПУ);

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

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

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

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

таймер;

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

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

НГМД;

жесткий диск.

Адресность ЭВМ – двухадресная, длина команды - переменная. Разрядность ЭВМ и минимальный объем оперативной памяти выбираются самостоятельно, но должны быть: разрядность - не менее 16; емкость ОП - не менее 16 М байт.

Индивидуальное задание

1.  Структура ЭВМ - 2-х шинная.

2.  В состав ЭВМ входит параллельный умножитель

3.  Оперативная память - многоблочная.

4.  Объединенный КЭШ команд и данных.

5.  Система прерываний - цепочечная (последовательная) с обработкой на уровне команд.

6.  Ввод - вывод: программно-управляемый.

7.  Разработке подлежат:

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

7.2  Принципиальная схема КЭШ.

3. Разработка структурной схемы ЭВМ

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

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

шина

 

Рис.1. Структура вычислительной машины на базе общей шины

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

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

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

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

3.1 Центральный процессор

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

Операционный блок (ОБ) с помощью АЛУ, которая в нем содержится, выполняет арифметические и логические операции над поданными на вход операндами. Выбор конкретной операции из всех возможных для данного ОБ определяется кодом операции команды.

Состав ОБ:

· АЛУ Am29разрядный)

· Регистровый файл Am29334 (2х16-разрядный)

· Входной регистр данных

· Выходной регистр данных и адреса

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

Состав МУУ:

· Секвенсер микрокоманд Am29331

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

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

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

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

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

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

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

Архитектура ЦП (рис.3) характеризуется наличием конвейерной обработки как команд, так и микро команд. Передача данных между системной шиной адреса/данных и ЦП выполняются через регистр команд (РгК), регистровый файл (Am29334), регистр адреса и данных (РгД/А, входной и выходной). Микропрограммное управление организовано в конвейерную структуру: регистр на выходе микропрограммной памяти работает как конвейерный, обеспечивая одновременное функционирование операционной и управляющей частей микропроцессора, т. е. совмещение выборки и выполнения микрокоманд.

Рис. 3. Структурная схема процессора

Шлюз служит для распределения потоков данных в зависимости от типа операции, внутри шлюза находится преобразователь начального адреса, регистр команд и два селектора. Регистр команд — регистр-защелка загружающий данные при CLK = “L” и выводящий при CLK = “Н”. Селекторы (сел1 и сел2) служат для выбора источника адреса для регистрового файла и данных для АЛУ и умножителя, соответственно.

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

Микропрограммная память служит, для хранения микрокоманд и является перепрограммируемой.

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

Регистровый файл Am29334 является 16-разрядным (18-разрядным, если считать два контрольных бита), а АЛУ 32-разрядным, поэтому необходимо использовать две параллельно соединенные ИС Am29334 (рис.3). Выбор источника адреса регистров организован с помощью селектора, управляемого микрокомандой, который выбирает источником либо соответствующие поля команды, либо разряды микрокоманды.

Входами задания инструкции ПЭ (I) и входами задания байтовой ширины (W) управляют поля микрокоманды. На шину задания позиции (Р) данные поступают из команды. Регистрами вывода данных в магистральную шину — РгД/А управляют биты микрокоманды.

Устройство управления задает последовательность выполнения микрокоманд. “Сердцем” МУУ является секвенсер микрокоманд Am29331, определяющий адрес следующей микрокоманды и организующий ветвление по 11 входным условиям. Причем шесть старших разрядов являются зарезервированными за флагами формируемыми ПЭ, а остальные восемь являются входами условия общего назначения.

Микропрограммная память организована на 14-ти ИС флэш-памяти Am29F010. Вывод данных и загрузка адреса всегда разрешены, запись в МПП запрещена, т. к. подразумевается, что перепрограммирование МПП будет производиться только с применением программирующих устройств.

3.2 Оперативная память (ОП)

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

Основную память образуют запоминающие устройства с произвольным доступом. Такие ЗУ образованы как массив ячеек, а «произвольный доступ» означает, что обращение к любой ячейке занимает одно и то же время и может производиться в произвольной последовательности. Каждая ячейка содержит фиксированное число запоминающих элементов и имеет уникальный адрес, позволяющий различать ячейки при обращении к ним для выполнения операций записи и считывания.

Основная память может включать в себя два типа устройств: оперативные запоминающие устройства (ОЗУ) и постоянные запоминающие устройства (ПЗУ).

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

Вторую группу полупроводниковых ЗУ основной памяти образуют энергонезависимые микросхемы ПЗУ (ROM — Read-Only Memory). ПЗУ обеспечивает считывание информации, но не допускает ее изменения (в ряде случаев информация в ПЗУ может быть изменена, но этот процесс сильно отличается от считывания и требует значительно большего времени).

Рис.4 Адресация многоблочной памяти

Емкость основной памяти современных ВМ слишком велика, чтобы ее можно было реализовать на базе единственной интегральной микросхемы (ИМС). Необходимость объединения нескольких ИМС ЗУ возникает также, когда разрядность ячеек в микросхеме ЗУ меньше разрядности слов ВМ. Увеличение разрядности ЗУ реализуется за счет объединения адресных входов объединяемых ИМС ЗУ. Информационные входы и выходы микросхем являются входами и выходами модуля ЗУ увеличенной разрядности (рис.4). Полученную совокупность микросхем называют модулем памяти. Модулем можно считать и единственную микросхему, если она уже имеет нужную разрядность. Один или несколько модулей образуют блок памяти (банк памяти).

Для получения требуемой емкости ЗУ нужно определенным образом объединить несколько банков памяти меньшей емкости. В общем случае основная память ВМ практически всегда имеет многоблочную структуру, то есть содержит несколько банков.

При использовании многоблочной памяти, состоящей из В банков, адрес ячейки А преобразуется в пару (b, w), где b — номер банка, w — адрес ячейки внутри банка.

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

Прием чередования адресов базируется на свойстве локальности по обращению, согласно которому последовательный доступ в память обычно производится к ячейкам, имеющим смежные адреса. Иными словами, если в данный момент выполняется обращение к ячейке с адресом 5, то следующее обращение, вероятнее всего, будет к ячейке с адресом 6, затем 7 и т. д. Чередование адресов обеспечивается за счет циклического разбиения адреса.

3.3 Блок синхронизации

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

3.4 Система прерывания программ

Прерывание программы – это способность ЭВМ временно прекращать выполнение текущей программы при возникновении какого-либо события, вызывать программу обработки этого события, а затем возвращаться к выполнению прерванной программы.

Прерывания могут быть двух типов:

1) Внутренние прерывания, или синхронные прерывания, или программные, или исключения (например деление на 0 или переполнение).

2) Внешние или асинхронные прерывания, связаны с организацией в/в.

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

Цепочечная структура прерываний (рис.5) характеризуется наличием единой линией запроса на прерывание, и линией подтверждения прерывания, проходящей через все источники прерываний.

Рис.5 Структура цепочечной системы прерывания

При необходимости произвести прерывание устройство выставляет запрос на прерывание (по линии INT) и разрывает линию подтверждения (INTA). После выполнения очередной инструкции процессор проверяет линию запроса на прерывание. Получив запрос, процессор сохраняет все программно доступные регистры. Затем он посылает сигнал, подтверждающий получение запроса по линии INTA, который проходит от одного устройства к другому, пока не достигнет устройства – инициатора прерывания. Тогда это устройство выставляет на шине данных свой идентификационный номер (вектор). После получения контроллером прерываний (или ЦП) вектора вызывается программа, обрабатывающая прерывание данного устройства. После завершения обработки прерывания производится восстановление программно доступных регистров и возврат в прерванную программу.

Достоинством данной структуры являются более низкие затраты программных и аппаратных средств, а недостатком – фиксированный приоритет устройств, который определяется порядком их подключения.

3.5 Таймер

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

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

3.6 Система ввода-вывода

Система ввода/вывода призвана обеспечить обмен информацией между ядром ВМ и разнообразными внешними устройствами (ВУ).

В ВМ находят применение три способа организации ввода/вывода (В/ВЫВ):

программно управляемый ввод/вывод;

ввод/вывод по прерываниям;

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

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

Иллюстрация процедуры программно управляемого ввода блока данных с устройства ввода приведена на рис.6. Данные читаются пословно. Для каждого читаемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВВ, то есть доступно для считывания.

Процедура начинается с выдачи процессором команды ввода, в которой указан адрес конкретного МВВ и конкретного ВУ. Существуют четыре типа команд В/В, которые может получить МВВ: управление, проверка, чтение и запись.

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

Команда проверки применяется для проверки различных ситуаций, возникающих в МВВ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП способен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя операция ввода/вывода и не возникли ли в ходе ее выполнения какие-либо ошибки. Действие команды сводится к установке или сбросу соответствующих разрядов регистра состояния МВВ.

Команда чтения побуждает модуль получить элемент данных из ВУ и занести его в регистр данных (РД). ЦП может получить этот элемент данных, запросив МВВ поместить его на шину данных.

Команда записи заставляет модуль принять элемент данных (байт или слово) с шины данных и переслать его в РД с последующей передачей в ВУ.

Рис. 6. Программно управляемый ввод данных

Если к МВВ подключено несколько ВУ, то в процедуре ввода/вывода нужно производить циклический опрос всех устройств, с которыми в данный момент производятся операции В/В.

Из блок-схемы (см. рис. 6) явно виден основной недостаток программно управляемого В/В — неэффективное использование процессора из-за ожидания готовности очередной порции информации, в течение которого никаких иных полезных действий ЦП не выполняет. Кроме того, пересылка даже одного слова требует выполнения нескольких команд. ЦП должен тратить время на анализ битов состояния МВВ, запись в МВВ битов управления, чтение или запись данных со скоростью, определяемой внешним устройством. Все это также отрицательно сказывается на эффективности ввода/вывода.

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

3.7 Монитор и видеоадаптер

Монитор – средство вывода графической и текстовой информации. Большинство мониторов относятся к одному из двух типов: ЭЛТ (на базе электронно-лучевой трубки), или ЖК (для вывода изображения применяются жидкие кристаллы).

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

3.8 Клавиатура и мышь

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

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

3.9 Жесткий диск и НГМД

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

4. Разработка принципиальной схемы КЭШ

4.1 Основные характеристики кэш-памяти

В качестве элементной базы основной памяти в большинстве ВМ служат микросхемы динамических ОЗУ, на порядок уступающие по быстро­действию центральному процессору. В результате процессор вынужден простаи­вать несколько тактовых периодов, пока информация из ИМС памяти установит­ся на шине данных ВМ. Если ОП выполнить на быстрых микросхемах статической памяти, стоимость ВМ возрастет весьма существенно. Экономически приемлемое решение этой проблемы было предложено М. Уилксом в 1965 году в процессе раз­работки ВМ Atlas и заключается оно в использовании двухуровневой памяти, ког­да между ОП и процессором размещается небольшая, но быстродействующая бу­ферная память. В процессе работы такой системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В обще­принятой терминологии — производится отображение участков ОП на буферную память. Выигрыш достигается за счет свойства локальнос­ти — если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться существенного повышения производительности ВМ. Уилкс называл рассматриваемую буферную память подчиненной (slave memory). Позже распространение получил термин кэш-память (от английского слова cache — убежище, тайник), поскольку такая память обычно скрыта от программиста в том смысле, что он не может ее адресовать и может даже вообще не знать о ее существовании.

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

Рис. 7. Структура системы с основной и кэш-памятью

На рис. 7 приведена структура системы с основной кэш-памятью. ОП со­стоит из 2n адресуемых слов, где каждое слово имеет уникальный n-разрядный ад­рес. При взаимодействии с кэшем эта память рассматривается как М блоков фик­сированной длины по К слов в каждом (М = 2п/К). Кэш-память состоит из С блоков аналогичного размера (блоки в кэш-памяти принято называть строками), причем их число значительно меньше числа блоков в основной памяти (С<<М). При счи­тывании слова из какого-либо блока ОП этот блок копируется в одну из строк кэша. Поскольку число блоков ОП больше числа строк, отдельная строка не мо­жет быть выделена постоянно одному и тому же блоку ОП. По этой причине каж­дой строке кэш-памяти соответствует тег (признак), содержащий сведения о том, копия какого блока ОП в данный момент хранится в данной строке. В качестве тега используется старшая часть адреса ОП.

В случае разрабатываемой ЭВМ, т. к. процессор является 32-разрядным, может быть адресовано максимум 232 = 4 Г слова. За минимальную единицу адресуемых данных, т. е. за слово, примем один байт. Каждый блок ОП и, соответственно, каждая строка кэш-памяти будет содержать 4 слова (оптимальный размер строки равняется ширине шины данных: 4 байт = 32 битам). Значит, ОП состоит из 232/22=230=10243 блоков. Установлено, что для большинства задач близкой к оптимальной является кэш-память емкостью от 1 до 512 Кбайт, исходя из этого возьмем емкость кэш-памяти равную 128 Кбайт (с организацией 32Кбайта х 4).

4.2 Способ отображения оперативной памяти на кэш-память

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

Как уже было сказано выше, основная память имеет максимальную емкостью 4 Г слов, а кэш-памяти – 128 К слов. Для адресации каждого слова основной памяти используется 32-разрядный адрес (232 = 4Г). ОП разбивается на блоки по 4. При такой организации 32-разрядный адрес можно условно разделить на две части: младшие 2 разряда определяют адрес слова в пределах блока, а старшие 30 номер одного из 10243 блоков. Эти старшие 30 разрядов в дальнейшем будем называть адресом блока основной памяти. В свою очередь, для адресации любого слова в кэш-памяти требуется 17-разрядный адрес (217 = 128К). Кэш-память разбита на строки такого же размера, что и в ОП, то есть содержит 32 = 215 строк. 17-разрядный адрес слова в кэш-памяти также можно представить состоящим из двух частей: адреса слова в строке (2 младших разряда) и адреса строки кэш-памяти (15 старших разрядов).

Поскольку ЦП всегда обращается к ОП (кэш-память для ЦП невидима) и формирует для этого 32-разрядный адрес, необходим механизм преобразования такого адреса в 17-разрядный адрес слова в кэше. Так как расположение слов в блоке ОП и строке кэш-памяти идентично, для доступа к конкретному слову в блоке ОП в строке кэш-памяти можно использовать младшие 2 разряда 32-разрядного адреса. Следовательно, остается лишь задача преобразования 30-разрядного адре­са блока основной памяти в 15-разрядный адрес строки кэша.

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

При прямом отображении адрес строки i кэш-памяти, на которую может быть ото­бражен блок j из ОП, однозначно определяется выражением: i=j mod т, где т — общее число строк в кэш-памяти. В нашем примере i =j mod 32768. Иными словами, на строку кэша с номером i отображается каждый 32768-й блок ОП. Это поясняется рис. 8, где основная па­мять условно представлена в виде двухмерного массива блоков, в котором количе­ство рядов равно числу строк в кэш-памяти, а в каждом ряду последовательно перечислены блоки, переадресуемые на одну и ту же строку кэш-памяти.

Рис. 8. Организация кэш-памяти с прямым отображением

При реализации такого отображения 30-разрядный адрес блока основной памяти условно разбивается на два поля. Логика кэш-памяти интерпретирует эти 30 бит как 15-разрядный тег и 15-разрядное поле строки. Поле строки указывает на одну из 32768 = 215 строк кэш-памяти, а именно на ту, куда может быть отображен блок с заданным адресом. В свою очередь, поле тега определяет, какой именно из списка блоков, закрепленных за данной строкой кэша, будет отображен. Когда блок фактически заносится в память данных кэша, в память тегов кэш-памяти необхо­димо записать тег этого блока, чтобы отличить его от других блоков, которые мо­гут быть загружены в ту же строку кэша. Тегом служат семь старших разрядов адреса блока.

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

4.3 Алгоритм замещения информации в заполненной кэш-памяти

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

4.4 Алгоритм согласования содержимого кэш-памяти и основной памяти

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

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

В разрабатываемом кэше будет использоваться метод сквозной записи, при котором прежде всего обновляется слово, хранящееся в ос­новной памяти. Если в кэш-памяти существует копия этого слова, то она также обновляется. Если же в кэш-памяти отсутствует нужная копия, то из основ­ной памяти в кэш-память пересылается блок, содержащий обновленное слово (сквозная запись с отображением).

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

4.5 Смешанная и разделенная кэш-память

Когда в микропроцессорах впервые стали применять внутреннюю кэш-память, ее обычно использовали как для команд, так и для данных. Такую кэш-память при­нято называть смешанной, а соответствующую архитектуру — Принстонской (Princeton architecture), по названию университета, где разрабатывались ВМ с единой памятью для команд и данных, то есть соответствующие классической архитекту­ре фон-Неймана. Сравнительно недавно стало обычным разделять кэш-память на две — отдельно для команд и отдельно для данных. Подобная архитектура получила название Гарвардской (Harvard architecture), поскольку именно в Гарвард­ском университете был создан компьютер «Марк-1» (1950 год), имевший раздельные ЗУ для команд и данных.

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

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

В соответствии с заданием разрабатываемый КЭШ будет являться смешенным.

4.6 Выбор элементной базы для принципиальной схемы КЭШа

В схеме КЭШа будут необходимы следующие компоненты (не считая вентилей):

- память с организацией 32К х 32 для храниния строк кэша

- память с организацией 32К х 15 для храниния тегов

- мультиплексор 32:8 для выбора одного слова (байта) из КЭШа

- буферы или трансиверы с тремя состояниями

- два 32-разрядных регистра

- компаратор для сравнения старшей части адреса с тегом

В качестве этих компонентов будут использоваться следующие микросхемы:

1)  CY7C056V – асинхронная память SRAM с организацией 32K Xбита из 36 использоваться не будут).

Таблица назначения выводов

Название вывода

Описание

A

Адресный вход

I/O

Вход/выход данных

R/W

Режим работы (1 – запись, 0 – чтение)

CE

Разрешение работы

2)  CY7C027V – асинхронная память SRAM с организацией 32K Xбит из 16 использоваться не будет).

Таблица назначения выводов

Название вывода

Описание

A

Адресный вход

I/O

Вход/выход данных

R/W

Режим работы (1 – запись, 0 – чтение)

CE

Разрешение работы

3)  QS3253 – двойной мультиплексор 4:1 (понадобится параллельное подключение четырех таких мультиплексоров).

Таблица назначения выводов

Название вывода

Описание

S

Адресный вход

A

Информационный вход

Y

Выход

E

Разрешение работы

4)  ALVC16244A – 16-разрядный буфер.

Таблица назначения выводов

Название вывода

Описание

A

Вход

Y

Выход

OE

Разрешение работы

5)  FCT4X374T – 32-разрядный регистр.

Таблица назначения выводов

Название вывода

Описание

D

Вход данных

O

Выход данных

CP

Вход для синхросигнала

OE0, OE1, OE2, OE3

Разрешение вывода

6)  LCX32245 – 32-разрядный трансивер.

Таблица назначения выводов

Название вывода

Описание

A

Вход

B

Выход

T/R

Задание направления передачи сигналов (1 – прямое, 0 – обратное)

OE

Разрешение вывода

7)  74HCразрядный компаратор

Таблица назначения выводов

Название вывода

Описание

A

Входы

B

=

Выход сравнения (1 – совпадение, 0 – отсутствие совпадения)

G

Разрешение вывода

4.7 Принципиальная схема КЭШ

Принципиальная схема КЭШа приведена на рис.9.

Пояснения к работе КЭШа:

Из шины команд КЭШем используются три сигнала: CLK – синхросигнал, REF – сигнал разрешения использования шины AB/DB и R/W – сигнал текущей операции (1 – чтение, 0 – запись). Т. к. шина адресов и данных (AB/DB) объединена, необходимо разделять во времени передачу по ней адресов и данных, по этой причине передача адреса производиться по фронту синхросигнала, а передача данных – по срезу. Два регистра подключенные параллельно к этой шине нужны как раз для разделения адресов и данных.

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

При записи процессором данных в ОП, КЭШ, независимо от того, хранилась ли в нем ранее строка в одно из слов которой производиться запись, записывает эту строку из ОП. Процесс записи происходит так же, как и в случае промаха при чтении, за исключением того, что запись в КЭШ инициирует низкий уровень сигнала R/W.


Рис.9 Принципиальная схема КЭШа


5. Заключение

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

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

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

1.   , Орлов ЭВМ и систем. Учебник для вузов.–СПБ.: Питер, 2005.–672 с.: ил.

2.   Каган вычислительные машины и системы. Уч. пособие для вузов. 3-е изд., перераб. и доп.–М.: Энергоатомиздат, 1991,-592 с.

3.   Угрюмов элементов и узлов ЭВМ. – Москва: «Высшая школа», 1987.-318 стр.

4.   Соболев . Руководство к курсовой работе. – Н., НГТУ, 1997, 61 стр.

5.   Лекции по дисциплине «Организация ЭВМ и систем».