Процессор
Имея простейшие микросхемы И, ИЛИ, НЕ можно реализовать любую логическую функцию. Появились микросхемы: дешифраторы, сумматоры и т.д. – микросхемы, которые выполняют вполне определенную логическую или арифметическую операцию. Следующий шаг – микросхема
Функция, которую она выполняет, зависит от того, какие управляющие сигналы мы подаем на нее. Таким образом, получена так называемая программируемая логика. По сути дела это процессор потому, что значение управляющих сигналов можно рассматривать как команду, которую устройство выполняет над входными данными.
Далее надо постараться уменьшить количество выводов. х, у, F –логические входы. Если число х, у, F совпадает, то эти линии можно объединить в одну, назовем ее линией данных.
При передачи по линии всегда есть задержки. При передаче значений переменных х задержки для разных х могут быть различны. Поэтому в обязательном порядке нужен некий тактирующий сигнал CLOCK. Т.е. нас будет интересовать не то, как меняются х и у, а какие они принимают значения в определенные моменты времени.
Должна быть память, из которой берутся значения x (данные) и F (команды) и в которую заносятся значения у. Память содержит элементарные ячейки, которые хранят числа определенной разрядности. Каждой ячейке присваивается свой адрес. Чтобы пользоваться памятью, кроме линии данных, нужна линия адреса. Разрядность линии адреса может совпадать с разрядностью линии данных. Часто (особенно на первых компьютерах) пытались объединить линии данных и адреса. Передача адреса и данных по одной и той же линии возможна только в случае, если данные и адрес разделяются по времени - сначала передается адрес, а потом передаются данные.
Схема реального процессора (8086)
Линия данных – шестнадцатиразрядная, а линия адреса – двадцатиразрядная. Разработчики объединили их в линию данных и адреса. По этой линии передаются и данные, и младшие разряды адреса. Кроме этого имеется линия, по которой передаются старшие разряды адреса.
Для проведения вычислительных операций в процессоре есть АЛУ.
Число должно сначала поступить в регистр данных процессора. Только после этого процессор производит операцию над ним.
По линии АD передаются и адреса, и данные, поэтому они должны быть разделены во времени. Процессор должен выдавать определенные управляющие сигналы, чтобы внешнее устройство (память) могло понять, что ей передается – адрес или данные.
Все изменения, которые должны происходить, должны происходить под управлением тактового генератора. Устройство управления, в зависимости от того, какая команда, вырабатывает соответствующую последовательность тактовых импульсов, которые идут на все устройства процессора. Т.е. его задача – сформировать в соответствии с командой последовательность импульсов.
Чтобы этот процессор работал нужно задать адрес в памяти, прочитать из памяти команду, в соответствии с этой командой найти операнды, прочитать их, выполнить операцию.
Нужна память. При включении питания нужна начальная загрузка. Поэтому нужна постоянная память c BIOS. В соответствии с BIOS происходит какая-то начальная загрузка. Нужны внешние устройства: накопители, устройства отображения информации (монитор, принтер, …) и т.д.. Каждое из этих устройств имеет свои входы, свои выходы. Поэтому следующая задача – соединить все эти устройства. Можно соединить каждое с каждым. Но тогда при каждом нововведении (появление дополнительного устройства, …) надо перестраивать процессор. Это плохо. Поэтому была введена системная шина. К ней подсоединяются все устройства. Хотя каждое устройство по этой шине может заявить о себе, почти всегда все, что происходит на шине происходит под управлением процессора. Сигналы ЦП, и сигналы памяти, внешних устройств совершенно разные. Поэтому нельзя просто подсоединить к шине процессор и все остальные устройства. Реально каждое устройство подсоединяется к шине через соответствующий контроллер. Контроллер – устройство, которое согласует соединяемые устройства по логическим, временным и физическим свойствам (по количеству линий и т.д.).
Для шины обязателен стандарт. Должен быть известен состав шины (что за сигналы на этой шине есть), на шине должны быть заданы какие-то операции (чтения, записи, прямого доступа к памяти и т.д.), в обязательном порядке должен быть задан протокол шины (все временные последовательности сигналов). Кроме этого все должно быть физически задано (геометрические размеры, количество контактов). Все должно быть стандартизовано.
Контроллер системной шины – устройство, которое обеспечивает стандарт шины. Сигналы на шине практически никогда не совпадают с сигналами шины. Контроллер формирует сигналы, характерные для этой шины.
Первая шина – ISA.
У ISA есть адресная линия А0-:-А19.
Есть линия данных D0-:-D15.
Заданы операция чтения из памяти и операция записи в память. Соответствующие сигналы – MRD (Memory Read), MWR (Memory Write).
Есть еще 2 вида сигнала чтения и записи – из внешних устройств – I/ORD, I/OWR.
Эти сигналы обеспечивают 2 самых важных процесса – чтения и записи данных.
Кроме того на шине могут быть процессы прямого доступа к памяти. Это единственный процесс, когда шину захватывает не процессор, а внешнее устройство – контроллер прямого доступа к памяти. Соответствующие этому процессу управляющие сигналы - DRQ (Direct Request) и DACK (Direct Acknowledge). Внешнее устройство может затребовать прямой доступ к памяти. При этом в передаче данных участвует не процессор, а контроллер прямого доступа к памяти. Для того чтобы реализовать это внешнее устройство посылает сигнал – требование прямого доступа. Этот сигнал поступает на контроллер прямого доступа к памяти и на процессору. Процессор освобождает шину, и управление шиной передается контроллеру прямого доступа к памяти. Суть этого процесса в том, что производительность шины увеличивается в 2 раза потому, что под управлением процессора на шине может происходить только один процесс – либо чтение, либо запись, одновременно идти 2 процесса не могут. При прямом доступе внешнее устройство передает данные в память или память - во внешнее устройство. Поэтому одновременно должны происходить 2 процесса. Например, чтение из внешнего устройства и запись в память, но они разделены – сначала происходит чтение и выдается соответствующий сигнал для записи. Поэтому за цикл, который необходим для той или иной операции происходит и чтение, и запись (но они разделены по времени).
Есть еще процесс аппаратного прерывания. Соответствующие сигналы – IRQ (Interrupt Request), IACK (Interrupt Acknowledge). Должен быть контроллер прерываний – некое внешнее устройство. Это нужно потому, что есть медленные внешние устройства. Когда такое устройство готово оно сообщает об этом контроллеру прерываний, он посылает соответствующий сигнал требования прерывания процессору. Несколько устройств могут поставлять контроллеру запросы на прерывание. Каждый запрос может иметь свой приоритет.
С точки зрения процессора любое внешнее устройство представляет собой ячейку памяти, которая имеет вполне определенный адрес. Из этой "ячейки" можно читать данные, либо в нее записывать данные. Любое внешнее устройство имеет некоторые регистры (по сути дела – ячейки памяти). Общение процессора с этим устройством – общение процессора с этими регистрами. Таким образом часть памяти программно не доступна потому, что она отводится под регистры внешних устройств.
Пусть есть некоторое внешнее устройство. У него есть один или два регистра. Есть двадцатиразрядный адрес. Процессор обращается к этому регистру внешнего устройства. Это означает, что на внешнее устройство подается 20 адресных сигналов, которые оно должно дешифровать, и только потом происходит взаимодействие с внешним устройством. Дешифратор на 20 линий весьма сложен. Поэтому есть соответствующие сигналы I/ORD, I/OWR.
Есть еще один сигнал – WAIT. Пусть у нас есть какая-то линия.
Какие есть способы передачи информации между передатчиком и приемником?
1) Синхронный способ передачи – самый быстрый. Это означает, что передатчик выставляет сигнал данных и сигнал строба.
Строб говорит о том, что данные на линии истинны. Т.е. это признак того, что передается сигнал. Если на входе линии сигнал меняется, то на выходе линии эти изменения будут через какое-то время. Длительность сигнала строба должна быть больше, чем время распространения по линии. Через какое-то время снимается строб и снимаются данные. Если есть длина линии, то известно время распространения и можно сказать, какая должна быть длительность строба. Зная длительность строба, можно сказать какая частота передачи на этой линии.
Этот способ передачи не подходит для нашей системы потому, что возникают проблемы если устройство медленное.
2) Асинхронный способ. Передатчиком выставляются данные, в обязательном порядке - сигнал строба (иначе внешнее устройство вообще не понимает, когда передается сигнал). Внешнее устройство принимает данные, строб, записывает данные, генерирует ответный сигнал Reply (он может называться как угодно). Этот сигнал идет от приемника к передатчику. Это гарантия того, что приемник принял сигнал и записал его. Таким образом он сигнализирует, что готов к новому приему. Только после того может снимать данные и строб. Снимается сигнал ответа, происходит новая передача данных.
Эта схема рассчитана на медленные устройства.
3) Бывает полу синхронный (полу асинхронный) способ. Суть его в том, что если устройство медленное и не успевает обрабатывать информацию, то только в этом случае оно дает о себе знать, а если успевает, то – нет. Это означает, что в цикл передачи данных процессором обязательно входит определенное время, за которое определяется нужно ждать устройство или нет. Если сигнала нет, то это по сути синхронный способ передачи. В противном случае – это асинхронный способ передач.
Это обеспечивает сигнал WAIT. Он формируется внешним устройством (памятью, принтером и т.д.) в том случае, если это устройство не успевает уложиться в цикл процессора. Оно удлиняет цикл процессора за счет того, что появляются дополнительные такты в цикле процессора. Нормальный цикл процессора – 4 такта.
Максимальная тактовая частота на шине ISA совпадает с тактовой частотой процессора (единственный в мире случай) = 8 МГц.
Рассмотрим процесс передачи данных по шине (не рассматриваем сигналы управления – некоторые контрольные сигналы, которые есть на шине).
тактовая частота
Цикл обмена по шине ISA с быстрым устройством составляет 4 тактовых импульса.
Процессор имеет линию AD, по которой он выдает и сигналы и данные. На шине ISA они должны быть как-то разделены.
Передача начинается с того, что процессор по шине передает адрес (по линии адреса – А0-:-А19). Чтобы внешнее устройство поняло, что это адрес, а не данные, этот сигнал сопровождается неким сигналом строба ALE (Address Lock Enable). По этому сигналу внешнее устройство должно зафиксировать (принять и дешифровать) адрес за время передачи по линии (процессор выдает адрес только на очень короткое время). Происходит фиксация адреса. После этого процессор передает данные по линии данных D0-:-D15 и сигнал RD. Сигнал RD выставляется в такте Т2. Т.е. процессор собирается прочитать данные. По данному сигналу устройство может выставлять на шине данные. Устройство может быть медленное. По фронту Т3 процессор проверяет наличие сигнала WAIT. Если устройство быстрое и выставило данные, то все в порядке. Если данные не выставлены, то добавляются холостые такты, во время которых процессор ничего не делает, но для этого внешнее устройство должно выставить сигнал WAIT. Если устройство не готово, оно выставляет сигнал WAIT. Если были переданы данные, они читаются в такте Т3, и устройство может снимать данные.
Чем определяется быстродействие схемы процессор – шина ISA – внешнее устройство? Пусть есть простая программа выполняющая сложение : А + В = С. Числа А и В находятся в памяти. Сколько времени нужно на выполнение этой программы?
Команда прежде всего должна содержать код операции – что нужно сделать (складывать, умножать и т.д.). Во-вторых, команда должна содержать операнд (как и где его найти). Может быть очень много способов адресации (индексная, косвенная и т.д.). В команде может быть задан сам операнд, может быть задан адрес операнда, а может – адрес индекса и еще один адрес, которые складываются, и только после этого идет обращение, и т.д.. Время выполнения команды очень сильно зависит от того, как адресуются операнды. Прямая адресация – дается адрес, находится операнд. Минимальное время, которое нужно, чтобы выбрать операнд из памяти на регистр данных – 4 такта. Время, необходимое для выполнения операции (количество тактов) зависит от операции.
(n1 – число, Тclk – период, n2 – число обращений к шине, Тш – период)
Можно оценить производительность.
Команда – это некоторое число. Набор команд очень большой. Команды могут быть разной длины.
CISC (Complete Instruction Set Computer – Компьютер с полным набором команд).
RISC (Reduced Instruction Set Computer – Компьютер с уменьшенным набором команд).
Нужно сделать команды одинаковой длины. 32 бита –длина команды. Возникает проблема совместимости компьютеров с предыдущими версиями. Для решения этой проблемы аппаратно команды процессора 8086 переводятся в соответствующую тридцатидвухбитную команду.
Можно оценить максимальную скорость передачи по шине, время выполнения операции. В какой-то момент лидирующим фактором быстродействия стала шина. Введение новой шины связано с довольно большими проблемами (разработка новых стандартов, их утверждение и внедрение). Время ввода новой шины было не соизмеримо больше скорости прогресса в создании процессоров. Прогресс в схемотехнике с точки зрения уменьшения размеров и увеличения количества элементов в микросхеме подчиняется закону Мура. С увеличением количества элементов процессора, увеличиваются его возможности. 16-и разрядная шина была заменена на 32-х разрядную. Не смотря на то, что шины портят показатели быстродействия компьютера, разработчики старались улучшить показатели микропроцессоров. В 486 процессоре появилось удвоение частоты. Что можно сделать, чтобы увеличить производительность, изменяя только процессор?
В 86-ом процессоре была очередь команд. Она появилась потому, что, если процессор выполняет операцию, которая занимает много тактов, шина простаивает. Каждая команда запоминается и дешифрируется, производятся множество каких-то операций. Для быстрого выполнения команды необходимо увеличить очередь команд и попытаться организовать конвейер (все внутренние операции, которые проводит процессор, проводятся параллельно). Таким образом, если операций 5, то времени тратится в 5 раз меньше. За счет высокой степени интеграции и малого топологического размера можно сделать так, чтобы процессор работал с тактовой частотой отличной от тактовой частоты шины. Есть тактовая частота, процессор ее удваивает (утраивает, …) и работает с удвоенной (…) частотой => увеличивается скорость вычислений.
Следующий шаг – КЭШ. Введен КЭШ первого уровня (КЭШ L1). За счет того, что количество элементов в микросхеме может быть очень большим, на кристалле, на котором делается процессор, можно сделать и КЭШ L1. Он работает с той же частотой, что и процессор. Выигрыш заключается в том, что если данные находятся в КЭШ L1, то процессор их очень быстро обрабатывает. Могут быть случаи, когда от наличия КЭШ L1 никакого выйгрыша нет, но большая часть программ пользуется определенным блоком данных в течении долгого времени, потом они обновляются. Принцип работы КЭШ L1: данные, которые не используются процессором выталкиваются в память и заменяются на те, которые ему нужны. КЭШ L1 может быть и КЭШ данных и КЭШ команд. КЭШ L1 начинал развиваться с объема порядка 4 Кбайт. Далее эта цифра увеличилась. Сейчас в К-7 КЭШ L1 около 128 Кбайт. КЭШ второго уровня нужен совсем для других целей, он мало, что дает с точки зрения проведения вычислений.
Частоты современных процессоров большие – сотни МГц – ГГц.
Изменилась структура шины. Была системная шина ISA, к которой все подключалось. Сейчас есть понятия системной шины (System Bus) и шины внешних устройств (I/O Bus). Это 2 разные вещи. После КЭШ L1 данные идут на КЭШ второго уровня (КЭШ L2). КЭШ L2 находится близко, он большой. Если нужен обмен большим объемом данных между внешним устройством и процессором, то эти данные сначала записываются в КЭШ L2. Это его основное назначение.
Системная шина быстрая. Ее название PCI. Ее разрядность – 32 бита. Тактовая частота 33 МГц (при появлении, сейчас – 56 МГц). Если перемножить эти 2 значения, получим скорость передачи данных. Эта шина синхронная. PCI имеет буфер. Кроме шины PCI (системной шины) сейчас есть шины I/O устройств, и их много. Все внешние устройства подключаются к шине PCI. Процессор синхронно записывает всю информацию в буфер, а из буфера данные будут передаваться асинхронно (т.е. по мере требования внешними устройствами). Это дает процессору работать с полной скоростью. Взаимодействие процессора и памяти не тормозится внешними устройствами. Но это не принципиальный выход из положения.
Раньше через шину ISA подключались все устройства, не только медленные (принтер, …), но и относительно быстрые (CD-ROM, Hard Disc,…). Сейчас это не так.
Bridge - некий контроллер.
Внешние устройства: видеокарта, медленные устройства (принтер, …) (подключаются через LРT порт, которые в том или ином виде оперирует с шиной ISA или что-то другое), Floppy Disc, Hard Disc, CD-ROM. Есть шина EIDE, к которой подключают Hard Driver и CD-ROM. Еще есть шина USB. Клавиатура подключена к ISA. Есть COM порты, LPT порт.
Любая перестройка занимает какое-то время, особенно, если это связано с внешними устройствами. Если покупка новой Mother Board повлечет за собой необходимость покупки нового внешнего устройства, это не приветствуется пользователями. Если у меня есть принтер, который работает только через LPT, то я не куплю Mother Board, на которой вообще LPT нет. Сейчас переход намечается, потребителей приучают постепенно – сейчас если купить хороший принтер – он работает не с LPT, а с USB. Клавиатура может работать не с ISA, а с PS/2.
Есть еще другие стандарты шин. Есть последовательная шина Fire Wire. Есть SCI. Но это шины специфические, используются на вполне определенных устройствах, и в данный момент, если вам для чего-то нужна какая-то иная шина (например SCI или Fire Wire), ее можно купить.
Сейчас широкое распространение получила USB. USB может работать как с малой, так и с высокой скоростью. Появилась USB-2. Она обеспечивает скорость передачи 480 Мбит в секунду. Сейчас вопрос состоит в том, есть ли USB-2 во внешнем устройстве. В чем достоинство USB? Количество прерываний ограничено. К процессору можно подключать очень большое количество USB-устройств без конфликтов. Недостаток – процессор всегда является ведущим устройством. Т.е. внешнее устройство, имеющее USB-порт, само по себе не может передать информацию процессору. В данном случае, если есть устройство, подсоединенное к ЭВМ через USB, то процессор каждый раз проверяет, не хочет ли оно что-то передать или получить. Т.е. внешнее устройство всегда пассивное.
Появился абсолютно полный контроллер, полностью основанный на USB. Поэтому появился стимул подключать внешние устройства подключать через USB. Этого следует ожидать в ближайшее время.
Дата добавления: 2015-08-21; просмотров: 783;