Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цифровые устройства и микропроцессоры

.pdf
Скачиваний:
512
Добавлен:
09.06.2015
Размер:
3.6 Mб
Скачать

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

М.М.Мичурина Н.Н.Лисовская

ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ

Курс лекций

Красноярск

2007

УДК 621.382.049.77(07)

Курс лекций по дисциплине «Цифровык устройства и микропроцессоры» для студентов специальности 210300.62 – «Радиотехника» / Сост. М.М.Мичурина, Н.Н.Лисовская. Красноярск: СибФУ, 2007. 213 с.

3

Лекция № 1

1. ОБЩИЕ МЕТОДЫ ПРЕДСТАВЛЕНИЯ ОПЕРАЦИОННОЙ ИНФОРМАЦИИ В ЭЦВУ

1.1.Краткий исторический обзор

Вразвитии человеческого общества философы выделяют 3 основных

этапа:

появление языка;

печать;

компъютеризация.

Всеобщая компъютеризация – объективная необходимость. За один год

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

Если принять средний возраст жизни человека 62 года, то можно считать, что сменилось 800 поколений. Из них:

650 жили в пещерах;

70 имеют письменность;

6 пользуются печатным словом;

2 имеют электромотор;

1 работает с вычислительной техникой.

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

Анализируя раннюю историю вычислительной техники, нередко вспоминают механическое счётное устройство «абак» (4-ое тысячелетие до н.э.) Изначально – это глиняная дощечка с желобами, в которых раскладывались камни, однако, вряд ли можно назвать это предшественником, поскольку здесь нет автоматического выполнения вычислений. Одно из первых устройств – счёты, сохранившееся до сих пор.

Первое в мире автоматическое устройство для операции сложения было создано на базе механических часов. В 1623 г. его разработал Вильгельм Шикард (Германия), это так называемые суммирующие часы. В 1642 г. Французский учёный Блез Паскаль разработал довольно компактное суммирующее устройство, первый в мире механический калькулятор, который мог выполнять четыре основных арифметических операции. Основным элементом в нём было зубчатое колесо, изобретение которого уже было событием в развитии вычислительной техники. В 1671 г. немецкий философ и математик Густав Лейбниц разработал более совершенный вариант арифмометра, также выполнявшего четыре арифметических действия.

4

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

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

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

Идея использования вычислительного устройства с программным управлением была впервые высказана английским математиком Чарльзом Бэббиджем ещё в 1833 г., однако реализовать её он не сумел. Он использовал идею Жаккарда при разработке замечательного устройства, которое он назвал «Аналитической машиной». Планировалось, что кроме вычислений машина будет выдавать результаты – печатать их на негативной пластине для фотопечати. Технические трудности не позволили ему до конца реализовать свой проект. Он умер в 1871 г., оставив более 37 кв. м подробнейших чертежей. Следует отметить, что вариант такой машины был всё же реализован другим учёным, С.Шойцом, в 1853 г. Многое из того, что известно о машине Жаккарда, дошло до нас благодаря научным трудам одарённого математикалюбителя Огасты Ады Байрон (графини Лавлайс), дочери поэта лорда Байрона, Её называют первым программистом. В 1843 г. она перевела статью об Аналитической машине, написанную одним итальянским математиком, снабдив её собственными комментариями, которые касались потенциальных возможностей машины. Она описала приёмы управления последовательностями вычислений, которые используются в программировании и сейчас. Её именем назван один из языков программирования.

Вдальнейшем на протяжении почти столетия ничего похожего на Аналитическую машину не появилось, однако идея использования перфокарт для обработки данных была опробирована довольно скоро. Спустя 20 лет после смерти Бэббиджа американский изобретатель Герман Холлерит создал электромеханическую счётную машину – табулятор, в которой перфокарты использовались для обработки результатов переписи населения, проводившейся в США в 1890 г. Табулятор получил столь широкое распространение, что Холлериту пришлось создавать собственную фирму. В конце концов, эта фирма превратилась в знаменитую корпорацию IBM (Internetional Business

5

Machines), которая сделала перфокарты стандартным средством программирования.

В 1938 г. центр разработок ненадолго смещается из Америки в Германию, где К.Цузе создаёт машину, оперирующую в отличие от своих предшественников, не десятичными числами, а двоичными. Если обратиться к истории появления двоичного кода, то уместно вспомнить, что двоичная система счисления была предложена в 1666 г. Г Лейбницем. Он пришёл к ней, занимаясь философской концепцией единства и борьбы противоположностей. Первая машина К.Цузе также была механической, но уже в 1941 году создаётся электромеханическая машина, арифметическое устройство которой выполнено на базе реле. В 1944 году в США Г.Айзен спроектировал машину, также работающую на реле, но оперирующую с данными в десятичной форме. Становится очевидным, что оптимальнее вместо реле использовать вакуумные лампы (первый триод был изобретён ещё в 1906 году Л.Форестом). В 1946 году в США в университете города Пенсильвания была создана первая универсальная ЭВМ – ENIAC. Она весила 30 тонн, занимала площадь 200 кв. м и содержала 18 тысяч ламп. С этой машиной связана разработка одной из важнейших идей вычислительной техники – принципа хранимой программы. Считается, что эта идея принадлежит математику Джону фон Нейману, хотя он скорее описал в статье то, что предложили талантливые инженерыразработчики этой машины. Впрочем, история развития вычислительной техники, как и вся история, тоже изобилует драматическими ситуациями.

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

До середины 80-х годов, говоря о вычислительных машинах, активно пользовались термином «поколение». Чем же определяются поколения машин? – Видом элементной базы и реализуемой в машине архитектурой. Приведём краткие качественные характеристики этим поколениям.

1-е поколение (1945 – 1954 гг.) – активно развиваются фоннеймановские структуры. Машины этого поколения работали на ламповой элементной базе, что требовало больших энергетических затрат и имело невысокую надёжность. В СССР в это время были разработаны вычислительные машины типа МЭСМ, БЭСМ под руковдоством академика А.С.Лебедева (8000 операций в секунду). Большой влад в развитие отечественной вычислительной техники внесли академики Келдыш М.В., Глушков В.М., Семенихин В.С. Программы для машин первого поколения уже можно было составлять не на машинном языке, а на языке ассемблера.

2-е поколение (1955 – 1964 гг.). Вычислительные машины второго поколения были выполнены на полупроводниковых элементах. Совершенствование таких машин происходило по двум направлениям: создавались маши- ны-гиганты, требующие больших помещений, систем охлаждения, дорогостоящие, поэтому необходимо было эксплуатировать эти машины круглосу-

6

точно. Для этих машин были разработаны 2 режима работы: пакетный и разделения времени. В пакетном режиме решается только одна задача, затем после окончания – другая и т.д. В режиме разделения времени одновременно решалось несколько задач. В это время появляются мини-ЭВМ, они являются не такими мощными, как ЭВМ-гиганты, но они значительно дешевле, меньше по габаритам (приблизительно, как письменный стол).В СССР это машины марки «Наири», «Мир», «Минск 22», «Минс 32», «Урал 14» и т. д. Появились языки высокого уровня – Algol, FORTRAN, COBOL. С появлением языков высокого уровня появились компиляторы для них.

3-е поколение (1965 – 1970 гг.) Вместо транзисторов в различных узлах стали использоваться интегральные микросхемы, это повысило производительность, снизило габариты и стоимость. Программное обеспечение становится дорогим, поэтому появляется тенденция к созданию семейств ЭВМ, то есть машины становятся совместимыми снизу вверх на программноаппаратном уровне.

4-е поколение (1970 – 1984 гг.). В эти годы активно разрабатываются и производятся большие и сверхбольшие интегральные схемы (БИС и СБИС), позволяющие разместить на одном кристалле десятки тысяч элементов В начале 70-х годов был выпущен первый микропроцессор. В мире вычислительной техники появилось ещё одно направление – микропроцесорное.

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

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

1.2. Общая характеристика микропроцессора, основные особенности современных микропроцессорных комплектов. Области применения

История микропроцессоров началась в 1971 году, когда фирма Intel выпустила первый микропроцессор. Он имел разрядность данных 4 бита и тактовую частоту 108 КГц, адресовал 640 байт памяти, содержал 2300 транзисторов.

В 1974 году появился 8-разрядный процессор I8080 (в нашей стране это КР580ВМ80), который стал весьма популярен, он имел частоту 2 МГц и адресовал 64 Кб памяти. Следующим этапом стал процессор I8085 (тактовая частота – 5МГц). Он сохранил совместимость с I8080, но в него добавили порт последовательного ввода и внесли некоторые другие изменения.

7

Вариацию на тему 8080 и 8085 представляет процессор Z80 фирмы Zilog, имевший более высокую производительность.

Первый 8-разрядный процессор 8086 фирма Intel выпустила в 1978 году, частота 5 МГц (позже появились процессоры 8 и 10 МГц) адресуемая память 1 Мб. Массовое распространение и открытость архитектуры привели к лавинообразному появлению программного обеспечения.

Процессор 80286 появился только в 1982 году, он адресовал до 16 Мб физической памяти. Его принципиальные новшества – защищённый режим и виртуальная память размером до 1 Гб – не нашли массового применения, процессор использовался просто как быстрый 8088.

Класс 32-разрядных процессоров был открыт в 1985 году моделью

80386.

Разрядность шины данных достигла 32 бит, адресуемая память –4 Гб. С этого времени стала заметна тенденция «положительной обратной связи»: на появление нового процессора производители программного обеспечения реагируют выпуском новых интересных программ, которым скоро становится тесно в рамках этого процессора. Появляется новый процессор, но после непродолжительного восторга и его ресурсы «съедают» и т.д. Становится очевидным интересный факт: большие ресурсы расслабляют разработчика ПО, не принуждая его напрягаться в поисках эффективных решений.

История процессора 386 напоминает историю 8086: первую модель с 32-битной шиной данных (386 DX) сменил 386 SX с 16-битной шиной. Это делается с целью адаптации ранее разработанного программного обеспечения.

Процессор Intel 486 разработан в 1989 году. В нём появляется кэшпамять и встроенный математический сопроцессор

В1993 году появились первые процессоры Pentium c частотой 60 и 66 МГц –32-разрядные процессоры с 64-битной шиной данных. Pentium продолжил развитие идеи параллельной обработки. Его внутренний кэш достиг 8 Кбайт для кода и 8 Кбайт для данных. В устройство декодирования и исполнения команд был добавлен второй конвейер. Интерес к процессору со стороны производителей и покупателей сдерживался его очень высокой стоимостью. Кроме того, возник скандал с обнаруженной ошибкой сопроцессора. Хотя фирма Intel математически обосновала невысокую вероятность её появления (раз в несколько лет), она всё-таки пошла на бесплатную замену уже проданных процессоров на исправленные.

Процессоры Pentium с частотой 75, 90 и 100 МГц, появившиеся в 1994 году, представили уже второе поколение процессоров Pentium. В этих процессорах появляются новые команды, для поддержки которых несколько изменили программную модель микропроцессора, Эти команды, получившие название ММХ-команд (MultiMediaExtention – мультемедийное расширение системы команд), позволили одновременно обрабатывать несколько единиц однотипных данных.

8

Параллельно с процессором Pentium развивался и процессор Pentium Pro, который отличался большей динамичностью исполнения команд, в частности был добавлен ещё один конвейер к имевшимся двум у микропроцессора Pentium. За один такт работы микропроцессор стал выполнять до трёх инструкций, совершенствуется его кэш-память. В Pentium Pro реализовали 36разрядную адресную шину, что позволило адресовать до 64 Гбайт оперативной памяти.

Появление Pentium Pro разделило рынок на два сектора – высокопроизводительных рабочих станций и дешёвых домашних компъютеров.

Главное достоинство процессора Pentium III наличие новых 70 команд, Эти команды дополняют группу ММХ-команд, но для чисел с плавающей точкой.

Лекция № 2

1.3. Кодирование операционной информации.

1.3.1.Системы счисления, используемые в вычислительной технике

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

Для сокращения записи двоичных чисел (например, вы хотите указать какое-то данное) целесообразно использовать системы счисления с другими основаниями, например, с основанием 8 или 16. Для программиста такое кодирование более удобно. Если в языках высокого уровня применяются десятичные числа, то в языке ассемблера они изображаются в шестнадцатеричном виде. Следовательно, для успешной работы надо приучаться думать «пошестнадцатеричному». В программах на языке ассемблера числа могут представляться также в двоично-десятичном виде, где каждая десятичная цифра от 0 до 9 представлена одной тетрадой двоичного кода. Десятичные числа, другое их название ВСД-числа (Binary Code Decimal – двоично-десятичный код), наиболее удобны для программирования прикладных задач. Недостаток этих чисел в том, что для них требуется разработка специфических алгорит-

9

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

1.3.2. Арифметические операции

Целочисленное вычислительное устройство поддерживает чуть больше десятка арифметических команд. Группа арифметических целочисленных команд работает с двумя типами чисел:

целыми двоичными числами. Числа могут, иметь знаковый разряд или не иметь такового, то есть быть числами со знаком или без знака;

целыми десятичными числами.

Целое двоичное число – это число, закодированное в двоичной системе счисления. Знак двоичного числа определяется тем, как интерпретируется старший бит в представлении числа, причём среди арифметических команд есть всего две команды, которые действительно учитывают этот старший разряд как знаковый, – это команды целочисленного умножения и деления mul и div.

Десятичное число – специальный вид представления числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырёх бит. При этом каждый байт числа содержит одну или две десятичные цифры в двоично-десятичном коде (BCD – Binary Coded Decimal). Микропроцессор хранит эти числп в двух форматах – упакованном и неупакованном.

Арифметические операции над числами в вычислительных устройствах используют специальные машинные коды: прямой, обратный (инверсия прямого) и дополнительный (обратный код плюс единица). Арифметические операции над числами со знаком производятся в дополнительном коде. Чтобы найти двоичное представление отрицательного числа (т. е. его дополнительный код), надо просто взять его положительную форму, обратить (т. е. инвертировать) каждый бит (заменить1 на 0, а 0 на 1), а затем добавить к полученному результату 1. Конечно, использование дополнительного кода приводит к тому, что отрицательное число становится трудно расшифровать. Однако только что описанной процедурой можно воспользоваться для того, чтобы получить положительную форму отрицательного числа, записанного в дополнительном коде.

10

*1.3.3. ASCII-код

С целью стандартизации в компьютерах используется американский национальный стандартный код для обмена информацией ASCII (Amerikan National Standard Code for Information Interchange). Наличие стандартного ко-

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

В ASCII-коде шестнадцатеричные цифры кодируются по следующему принципу в младшей тетраде для чисел от 0 до 9 помещается соответствующее двоичное число, а в старшей – двоичное число 0011 (признак ASCIIкода), для букв a, b, c, d, e, f – в младшей тетраде двоичные коды 0001, 0010, 0011, 0101 и т. д., а в старшей тетраде – код 0100 для заглавных букв и код

0110 – для строчных букв. Например:1h в ASCII – коде 31h, 4h – 34h; Ah – 41h; bh – 62h; Fh 46h.

Из выше сказанного следует, что для преобразования кода ASCII в шестнадцатеричное число от 0 до 9 можно:

выполнить двоичное вычитание (код ASCII)h – 30h;

обнулить старшую тетраду байта в коде ASCII.

Не следует забывать после записи шестнадцатеричной цифры ставить

символ «h». Это делается для того, чтобы транслятор мог отличить в программе одинаковые по форме записи десятичные и шестнадцатеричные числа. Таблица ASCII – кодов приведена в приложении 1.

2. ПРИНЦИПЫ ПОСТРОЕНИЯ, ОРГАНИЗАЦИИ И УПРАВЛЕНИЯ МИКРОПРОЦЕССОРНЫМ ВЫЧИСЛИТЕЛЕМ

2.1.Общие принципы построения микропроцессорного вычислителя. Структурная схема микроЭВМ

В основу построения вычислительных устройств заложены структуры фон Неймана (1902 – 1957 г.).

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

«Сердцем» вычислительного устройства является центральный процессор, в состав которого входят:

устройство управления выборкой команд из памяти и их выполнением;

регистры, осуществляющие временное хранение данных и состояний процессора;

схемы для управления и связью с памятью и устройствами ввода-вывода. Устройства ввода обеспечивают считывание информации (данные и

программа) с носителей информации (клавиатуры, магнитных дисков, телетай-