Московский государственный инженерно-физический институт (технический университет) Факультет Автоматики и электроники И. И. Шагурин, М. О. Мокрецов основы микропроцессорной техники (учебное пособие)
Вид материала | Учебное пособие |
СодержаниеОрганизация памяти Линейная организация. Сегментная организация. Страничная организация. Внешние ЗУ. |
- Реализация креативной технологии обучения с опорой на невербальное логически структурированное, 19.01kb.
- Новосибирский Государственный Технический Университет. Факультет автоматики и вычислительной, 2544.79kb.
- «Информация», 313.2kb.
- «генотип», 408.58kb.
- Диалектика, 172.21kb.
- Новосибирский Государственный Технический Университет. Факультет автоматики и вычислительной, 1650.9kb.
- Пространство и время, 76.07kb.
- Искусственный интеллект, 12.42kb.
- Московский Государственный Институт Электроники и Математики (Технический Университет), 10.69kb.
- Московский Государственный Институт Электроники и Математики (Технический Университет), 763.07kb.
Организация памяти
Хранение информации в памяти микропроцессорных систем может быть организовано различными способами. Наиболее часто реализуются следующие варианты организации памяти:
- линейная,
- сегментная (блочная),
- страничная.
Использование того или иного способа организации памяти определяется функциями системы, объемом памяти и рядом других факторов. Многие микропроцессоры обеспечивают возможности реализации любого из этих способов.
Линейная организация. Это наиболее простой способ организации памяти, при котором формируемый процессором адрес непосредственно поступает на адресную шину, обеспечивая обращение к соответствующей ячейке памяти. В этом случае адрес, который формируется процессором в соответствии с заданным в команде способом адресации (линейный адрес), выдается на системную шину как физический адрес выбираемой ячейки памяти.
Сегментная организация. Данный способ обеспечивает разбиение памяти на отдельные сегменты (блоки), обращение к которым реализуется в соответствии с определенными правилами. В первую очередь реализуется разделение памяти на область (сегмент) команд и данных. Область данных может подразделяться на сегмент стека и несколько сегментов обрабатываемых данных. Размер сегментов может быть фиксированным (от 64 Кбайт до 4 Гбайт) или переменным (программируемым).
Рис.1.10. Реализация доступа при сегментной адресации памяти
Реализация сегментной адресации обеспечивается с помощью специальных сегментных регистров, в которых хранится базовый (начальный) адрес, определяющий позицию первого байта данного сегмента. В этом случае формируемый при выполнении программы линейный адрес выбираемой команды или операнда является относительным адресом, который определяет их положение в сегменте, начальный адрес которого задается содержимым сегментного регистра (рис.1.10). Физический адрес при сегментной организации памяти образуется путем арифметического суммирования базового адреса сегмента и относительного адреса операнда (команды).
В ряде микропроцессоров, например, в Pentium, обращение к сегментам выполняется согласно определенным правилам, которые обеспечивают защиту сегментов в соответствии с заданной системой привилегий (защищенный режим). В этом случае кроме сегментных регистров для организации обращения к сегментам используются специальные структуры данных – дескрипторы, которые задают базовый адрес и размер сегмента, а также указывают его атрибуты, определяющие возможность доступа к содержимому сегмента.
Страничная организация. Этот способ организации памяти предполагает разбиение адресуемых массивов данных или команд на относительно мелкие фрагменты – страницы. Типичный объем страницы составляет 4 Кбайт, хотя в ряде микропроцессоров обеспечивается возможность работы со страницами разного размера - от 256 байт до 4 Мбайт. Страницы могут размещаться в различных местах адресуемого пространства памяти, а их расположение определяется специальными таблицами адресов, которые обычно хранятся в ОЗУ. Страничная организация позволяет наиболее полно использовать имеющийся объем памяти, так как обеспечивает разбиение информации и ее размещение в любом свободном фрагменте памяти размером не менее одной страницы.
При страничной организации реализуется иерархический уровень разбиения информации, аналогичный принятому в печатных изданиях, когда материал разбивается на отдельные части - главы, разделы и подразделы, состоящие из страниц. Такое разбиение отражается в оглавлении печатного издания. В микропроцессорных системах со страничной организацией памяти, функции оглавления выполняют специальные таблицы адресов, которые хранятся в ОЗУ. Обычно реализуется двухступенчатое разбиение типа «раздел-страница», при котором для обращения к соответствующей странице необходимо предварительно определить адрес ее размещения с помощью соответствующих таблиц адресов (рис. 1.11).
Рис.1.11. Реализация доступа при страничной организации памяти
При страничной организации памяти формируемый процессором линейный адрес используется для получения физического адреса, который образуется путем трансляции (преобразования) с помощью обращения к соответствующим таблицам адресов. На рис. 1.11 иллюстрируется процесс страничной трансляции 32-разрядного линейного адреса, выполняемый в процессорах i486 и Pentium. При этом линейный адрес обеспечивает выбор одного из 1024 разделов, каждый из которых может содержать 1024 страницы емкостью 4 Кбайт. Каталог разделов и таблицы адресов страниц хранятся в ОЗУ системы. Поле “Раздел” линейного адреса задает номер выбираемого раздела в каталоге, базовый адрес которого обычно хранится в специальном регистре страничной адресации. При этом из каталога разделов выбирается базовый адрес одной из 1024 таблиц, в которых хранятся базовые адреса страниц, входящих в соответствующий раздел. Поле “Страница” указывает в этой таблице базовый адрес страницы раздела, к которой производится обращение. Поле «Смещение» определяет позицию выбираемого операнда или команды на данной странице. Таким образом, их физический адрес формируется после процесса трансляции путем суммирования базового адреса страницы, полученного из соответствующей таблицы, и смещения, задаваемого 12 младшими разрядами линейного адреса.
При страничной организации памяти часто реализуется ограничение доступа к определенным страницам с использованием системы привилегий, как и при сегментной организации. Во многих процессорах реализуются возможности как сегментной, так и страничной организации памяти. При этом обеспечивается возможность разбиения сегментов на отдельные разделы и страницы, размещаемые в свободных позициях
памяти.
Рассмотренная реализация страничной организации требует дополнительной памяти для хранения каталога разделов (до 4 Кбайт) и до 1024 таблиц страниц по 4 Кбайт каждая. Кроме того трансляция адреса требует двух дополнительных циклов обращения к памяти для получения базовых адресов раздела и страницы. Чтобы избежать потерь времени на выборку этих адресов в микропроцессорах обычно имеется специальная память – буфер страничной трансляции, где хранятся базовые адреса страниц, к которым производились последние обращения. При последующих обращениях к этим страницам их базовый адрес выбирается непосредственно из буфера, и не требуется затрат времени на трансляцию адреса. Обычно емкость буфера составляет несколько десятков или сотен базовых адресов. При этом трансляция адреса с обращением к таблицам страниц производится достаточно редко - только в том случае, если базовый адрес страницы отсутствует в буфере, то-есть к данной странице ранее не было обращений, или эти обращения происходили достаточно давно, и ее базовый адрес был замещен адресами других страниц. Таким образом буфер страничной трансляции обеспечивает страничную адресацию без существенной потери производительности системы.
Внешние ЗУ.
В качестве внешних ЗУ в микропроцессорных системах обычно используются накопители на жестких и гибких магнитных дисках, магнитных лентах и постоянная память на оптических компакт-дисках (CD-ROM). Эти устройства подключаются к системной шине микропроцессорной системы, как внешние устройства, и сохраняют информацию при отключении питания.
Организация хранения информации во внешних ЗУ существенно отличается от организации хранения в регистровых ЗУ и ОЗУ. Вследствие физических особенностей реализации магнитных и оптических ЗУ для них характерно использование последовательного доступа к хранящейся информации с помощью механического перемещения носителя – диска или ленты. Управление работой этих ЗУ осуществляется с помощью специализированных устройств – контроллеров, которые подключаются к системной шине и функционируют под управлением программного обеспечения процессора.
Основным типом внешних ЗУ для современных микропроцессорных систем являются накопители на жестких магнитных дисках (“винчестер”), которые имеют емкость до нескольких десятков Гбайт. Они служат для постоянного хранения используемой информации – операционной системы, пакетов прикладных программ, массивов данных, разнообразных служебных программ. Время обращения к этим ЗУ составляет несколько миллисекунд, скорость записи-чтения – десятки Мбайт/с. Контроллеры этих накопителей используют специальные протоколы обмена – IDE (применяется в большинстве персональных компьютеров) или SCSI (применяется в серверах, рабочих станциях и других высокопроизводительных системах).
Для временного хранения и переноса информации с одной системы на другую служат дискеты емкостью 1,44 Мбайт (диаметр 3,5 дюйма), которые вставляются в дисковод, работающих под управлением контроллера. Накопители на магнитных лентах - стримеры производят запись информации на кассеты емкостью до нескольких десятков Гбайт и обычно служат для создания резервных копий.
Для переноса и хранения больших объемов информации используются оптические компакт-диски, емкость которых составляет сотни Мбайт. При работе в системе производится только считывание содержимого оптического диска, так как для записи на него требуется специальное устройство – рекордер.
Обращение к внешним ЗУ требует значительных затрат времени. Обычно микропроцессорная система реализует обмен с ними в режиме прямого доступа (см. раздел 1), осуществляя загрузку в ОЗУ или пересылку из него значительных объемов информации – фрагментов программ или массивов данных. Основной процесс обработки информации выполняется с использованием ОЗУ, кэш-памяти и регистрового ЗУ, что позволяет обеспечить высокий уровень производительности систем.
4. Классификация микропроцессоров, основные варианты их архитектуры и структуры
Микропроцессор является универсальным устройством для выполнения программной обработки информации, которое может использоваться в самых разнообразных сферах человеческой деятельности. Десятки компаний-производителей выпускают несколько тысяч типов микропроцессоров, имеющих разные характеристики и предназначенных для различных областей применения. Выпускаемые микропроцессоры делятся на отдельные классы в соответствии с их архитектурой, структурой и функциональным назначением. В данном разделе дается обзор основных архитектурных и структурных вариантов реализации современных микропроцессоров, используемых в различных сферах применения. Основными направлениями развития микропроцессоров является увеличение их производительности и расширение функциональных возможностей, что достигается как повышением уровня микроэлектронной технологии, используемой для производства микропроцессоров, так и применением новых архитектурных и структурных вариантов их реализации. Развитие микроэлектронной технологии обеспечивает непрерывное уменьшение размеров полупроводниковых компонентов, размещаемых на кристалле микропроцессора. При этом уменьшаются паразитные емкости, определяющие задержку переключения логических элементов, и увеличивается число элементов, размещаемых на кристалле. В настоящее время разрешающая способность промышленной технологии изготовления микросхем обеспечивает создание компонентов с минимальными размерами 0,13-0,18 мкм. При этом обеспечивается создание микропроцессоров, работающих с тактовой частотой до 1-2 ГГц и содержащих на кристалле десятки миллионов транзисторов. В соответствии с эмпирическим правилом, которое сформулировал Гордон Мур, один из основателей компании Intel, степень интеграции микросхем удваивается каждые 1,5 – 2 года. Это правило выполнялось в течении 40 лет развития микроэлектроники, и можно прогнозировать, что оно будет выполняться и в близком будущем. Поэтому можно ожидать последующего быстрого прогресса технологии и связанного с ним повышения характеристик микропроцессоров.
Развитие технологии обеспечивает возможность создания на кристалле все большего количества активных компонентов – транзисторов, которые могут быть использованы для реализации новых архитектурных и структурных решений, обеспечивающих повышение производительности и расширение функциональных возможностей микропроцессоров. Кратко рассмотрим основные из этих решений.
Архитектурой процессора называется комплекс его аппаратных и программных средств, предоставляемых пользователю. В это общее понятие входит набор программно-доступных регистров и исполнительных (операционных) устройств, система основных команд и способов адресации, объем и структура адресуемой памяти, виды и способы обработки прерываний. Например, все модификации процессоров Pentium, Celeron, i486 и i386 имеют архитектуру IA-32 (Intel Architecture – 32 bit), которая характеризуется стандартным набором регистров, предоставляемых пользователю, общей системой основных команд и способов организации и адресации памяти, одинаковой реализацией защиты памяти и обслуживания прерываний.
При описании архитектуры и функционирования процессора обычно используется его представление в виде совокупности программно-доступных регистров, образующих регистровую или программную модель. В этих регистрах содержатся обрабатываемые данные (операнды) и управляющая информация. Соответственно, в регистровую модель входит группа регистров общего назначения, служащих для хранения операндов, и группа служебных регистров, обеспечивающих управление выполнением программы и режимом работы процессора, организацию обращения к памяти (зашита памяти, сегментная и страничная организация и др.).
Регистры общего назначения образуют РЗУ – внутреннюю регистровую память процессора (см. раздел 1.3). Состав и количество служебных регистров определяется архитектурой микропроцессора. Обычно в их состав входят:
- программный счетчик PC (или CS + IP в архитектуре микропроцессоров Intel),
- регистр состояния SR (или EFLAGS),
- регистры управления режимом работы процессора CR (Control Register),
- регистры, реализующие сегментную и страничную организацию памяти,
- регистры, обеспечивающие отладку программ и тестирование процессора.
Кроме того различные модели микропроцессоров содержат ряд других специализированных регистров.
Функционирование процессора представляется в виде реализации регистровых пересылок - процедур изменения состояния этих регистров путем чтения-записи их содержимого. В результате таких пересылок обеспечивается адресация и выбор команд и операндов, хранение и пересылка результатов, изменение последовательности команд и режимов функционирования процессора в соответствии с поступлением нового содержимого в служебные регистры, а также все другие процедуры, реализующие процесс обработки информации согласно заданным условиям.
В ряде процессоров выделяются регистры, которые используются при выполнении прикладных программ и доступны каждому пользователю, и регистры, которые управляют режимом работы всей системы и доступны только для привилегированных программ, входящих в состав операционной системы (супервизора). Соответственно, такие процессоры представляются в виде регистровой модели пользователя, в которую входят регистры, используемые при выполнении прикладных программ, или регистровой модели супервизора, которая содержит весь набор программно-доступных регистров процессора, используемых операционной системой.
Структура микропроцессора определяет состав и взаимодействие основных устройств и блоков, размещенных на его кристалле. В эту структуру входят:
- центральный процессор (процессорное ядро), состоящее из устройства управления (УУ), одного или нескольких операционных устройств (ОУ),
- внутренняя память (РЗУ, кэш-память, в микроконтроллерах - блоки оперативной и постоянной памяти),
- интерфейсный блок, обеспечивающий выход на системную шину и обмен данными с внешними устройствами через параллельные или последовательные порты ввода-вывода,
- периферийные устройства (таймерные модули, аналого-цифровые преобразователи, специализированные контроллеры),
- различные вспомогательные схемы (генератор тактовых импульсов, схемы для выполнения отладки и тестирования, сторожевой таймер и ряд других).
Состав устройств и блоков, входящих в структуру микропроцессора, и реализуемые механизмы их взаимодействия определяются функциональным назначением и областью применения микропроцессора.
Архитектура и структура микропроцессора тесно взаимосвязаны. Реализация тех или иных архитектурных особенностей требует введения в структуру микропроцессора необходимых аппаратных средств (устройств и блоков) и обеспечения соответствующих механизмов их совместного функционирования.
В современных микропроцессорах реализуются следующие варианты архитектур.
CISC (Complex Instruction Set Computer)-архитектура реализована во многих типах микропроцессоров, выполняющих большой набор разноформатных команд с использованием многочисленных способов адресации. Эта классическая архитектура процессоров, которая начала свое развитие в 40-х годах прошлого века с появлением первых компьютеров. Типичным примером CISC-процессоров являются микропроцессоры семейства Pentium. Они выполняют более 200 команд разной степени сложности, которые имеют размер от 1 до 15 байт и обеспечивают более 10 различных способов адресации. Такое большое многообразие выполняемых команд и способов адресации позволяет программисту реализовать наиболее эффективные алгоритмы решения различных задач. Однако при этом существенно усложняется структура микропроцессора, особенно его устройства управления, что приводит к увеличению размеров и стоимости кристалла, снижению производительности. В то же время многие команды и способы адресации используются достаточно редко. Поэтому, начиная с 80-х годов прошлого века, интенсивное развитие получила архитектура процессоров с сокращенным набором команд (RISC-процессоры).
RISC (Reduced Instruction Set Computer)-архитектура отличается использованием ограниченного набора команд фиксированного формата. Современные RISC-процессоры обычно реализуют около 100 команд, имеющих фиксированный формат длиной 4 байта. Также значительно сокращается число используемых способов адресации. Обычно в RISC-процессорах все команды обработки данных выполняются только с регистровой или непосредственной адресацией. При этом для сокращения количества обращений к памяти RISC-процессоры имеют увеличенный объем внутреннего РЗУ – от 32 до нескольких сотен регистров, тогда как в CISC-процессорах число регистров общего назначения обычно составляет 8-16.
Обращение к памяти в RISC-процессорах используется только в операциях загрузки данных в РЗУ или пересылки результатов из РЗУ в память. При этом используется небольшое число наиболее простых способов адресации: косвенно-регистровая, индексная и некоторые другие. В результате существенно упрощается структура микропроцессора, сокращаются его размеры и стоимость, значительно повышается
производительность.
Указанные достоинства RISC-архитектуры привели к тому, что во многих современных CISC-процессорах используется RISC-ядро, выполняющее обработку данных. При этом поступающие сложные и разноформатные команды предварительно преобразуются в последовательность простых RISC-операций, быстро выполняемых этим процессорным ядром. Таким образом работают, например, последние модели микропроцессоров Pentium и K7, которые по внешним показателям относятся к CISC-процессорам. Использование RISC-архитектуры является характерной чертой многих современных микропроцессоров.
VLIW (Very Large Instruction Word) - архитектура появилась относительно недавно – в 90-х годах. Ее особенностью является использование очень длинных команд (до 128 бит и более), отдельные поля которых содержат коды, обеспечивающие выполнение различных операций. Таким образом одна команда вызывает выполнение сразу нескольких операций, которые могут производиться параллельно в различных операционных устройствах, входящих в структуру микропроцессора. При трансляции программ, написанных на языке высокого уровня, соответствующий компилятор производит формирование «длинных» VLIW-команд, каждая из которых обеспечивает реализацию процессором целой процедуры или группы операций. Данная архитектура реализована в некоторых типах современных микропроцессоров (PA8500 компании Hewlett-Packard, Itanium – совместная разработка Intel и Hewlett-Packard, некоторые типы DSP - цифровых процессоров сигналов) и является весьма перспективной для создания нового поколения сверхвысокопроизводительных процессоров.
Кроме набора выполняемых команд и способов адресации важной архитектурной особенностью микропроцессоров является используемый вариант реализации памяти и организация выборки команд и данных. По этим признакам различаются процессоры с Принстонской и Гарвардской архитектурой. Эти архитектурные варианты были предложены в конце 40-х годов специалистами, соответственно, Принстонского и Гарвардского университетов США для разрабатываемых ими моделей компьютеров.
Принстонская архитектура, которая часто называется архитектурой Фон-Неймана, характеризуется использованием общей оперативной памяти для хранения программ, данных, а также для организации стека. Для обращения к этой памяти используется общая системная шина, по которой в процессор поступают и команды, и данные. Структура и функционирование цифровой системы с Принстонской архитектурой описаны в разделе 1. Эта архитектура имеет ряд важных достоинств. Наличие общей памяти позволяет оперативно перераспределять ее объем для хранения отдельных массивов команд, данных и реализации стека в зависимости от решаемых задач. Таким образом обеспечивается возможность более эффективного использования имеющегося объема оперативной памяти в каждом конкретном случае применения микропроцессора. Использование общей шины для передачи команд и данных значительно упрощает отладку, тестирование и текущий контроль функционирования системы, повышает ее надежность. Поэтому Принстонская архитектура в течении долгого времени доминировала в вычислительной технике.
Однако ей присущи и существенные недостатки. Основным из них является необходимость последовательной выборки команд и обрабатываемых данных по общей системной шине. При этом общая шина становится «узким местом» (bottleneck – «бутылочное горло»), которое ограничивает производительность цифровой системы. Постоянно возрастающие требования к производительности микропроцессорных систем вызвали в последние годы все более широкое применение Гарвардской архитектуры при создании многих типов современных микропроцессоров.
Гарвардская архитектура характеризуется физическим разделением памяти команд (программ) и памяти данных. В ее оригинальном варианте использовался также отдельный стек для хранения содержимого программного счетчика, который обеспечивал возможности выполнения вложенных подпрограмм. Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки реализуется более высокая производительность, чем при использовании Принстонской архитектуры.
Недостатки Гарвардской архитектуры связаны с необходимостью проведения большего числа шин, а также с фиксированным объемом памяти, выделенной для команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи. Поэтому приходиться использовать память большего объема, коэффициент использования которой при решении разнообразных задач оказывается более низким, чем в системах с Принстонской архитектурой. Однако развитие микроэлектронной технологии позволило в значительной степени преодолеть указанные недостатки, поэтому Гарвардская архитектура широко применяется во внутренней структуре современных высокопроизводительных микропроцессоров, где используется отдельная кэш-память для хранения команд и данных. В то же время во внешней структуре большинства микропроцессорных систем реализуются принципы Принстонской архитектуры (см. раздел 1.1).
Гарвардская архитектура получила также широкое применение в микроконтроллерах – специализированных микропроцессорах для управления различными объектами, рабочая программа которых обычно хранится в отдельном ПЗУ (см. раздел 1.3).
Во внутренней структуре современных высокопроизводительных микропроцессоров реализуется конвейерный принцип выполнения команд. При этом процесс выполнения команды разбивается на ряд этапов. На рис. 1.12,а приведен пример разбиения команды на шесть этапов ее выполнения:
- выборка очередной команды (ВК),
- декодирование выбранной команды (ДК),
- формирование адреса операнда (ФА),
- прием операнда из памяти (ПО),
- выполнение операции (ВО),
- размещение результата в памяти (РР).
Реализация каждого этапа занимает один такт машинного времени и производится устройствами и блоками процессора, образующими ступени исполнительного конвейера. на каждой из которых выполняется соответствующая микрооперация. При последовательной загрузке в конвейер выбираемых команд каждая его ступень реализует определенный этап выполнения очередной команды. Таким образом в конвейере одновременно находятся несколько команд, находящихся на разных этапах выполнения. В идеальном варианте при полной загрузке конвейера на его выход в каждом такте будет поступать результат выполнения очередной команды (рис.1.12,а). В этом случае производительность процессора (операций/c) будет равна его тактовой частоте (тактов/c).
-
Тактовые
импульсы
Команда 1
ВК
ДК
ФА
ПО
ВО
РР
Результат 1
Команда 2
ВК
ДК
ФА
ПО
ВО
РР
Результат 2
Команда 3
ВК
ДК
ФА
ПО
ВО
РР
Результат 3
а)
INC R2
ВК
ДК
ФА
ПО
ВО
РР
Результат 1
MOV (R2),R3
ВК
ДК
ОЖ
ОЖ
ФА
ПО
ВО
ПР
Результат 2
ADD R3,(R2)
ВК
ДК
ФА
ПО
ОЖ
ОЖ
ВО
ПР
Результат 3
б)